352 lines
169 KiB
JavaScript
352 lines
169 KiB
JavaScript
(function(){"use strict";/**
|
||
* @vue/shared v3.5.42
|
||
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
||
* @license MIT
|
||
**/function Ps(e){const t=Object.create(null);for(const s of e.split(","))t[s]=1;return s=>s in t}const U={},it=[],$e=()=>{},Co=()=>!1,Bt=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Wt=e=>e.startsWith("onUpdate:"),Z=Object.assign,Rs=(e,t)=>{const s=e.indexOf(t);s>-1&&e.splice(s,1)},Hi=Object.prototype.hasOwnProperty,D=(e,t)=>Hi.call(e,t),A=Array.isArray,qe=e=>vt(e)==="[object Map]",qt=e=>vt(e)==="[object Set]",To=e=>vt(e)==="[object Date]",R=e=>typeof e=="function",G=e=>typeof e=="string",me=e=>typeof e=="symbol",V=e=>e!==null&&typeof e=="object",Oo=e=>(V(e)||R(e))&&R(e.then)&&R(e.catch),Ao=Object.prototype.toString,vt=e=>Ao.call(e),Di=e=>vt(e).slice(8,-1),Gt=e=>vt(e)==="[object Object]",Ns=e=>G(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,mt=Ps(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Xt=e=>{const t=Object.create(null);return s=>t[s]||(t[s]=e(s))},Fi=/-\w/g,oe=Xt(e=>e.replace(Fi,t=>t.slice(1).toUpperCase())),ji=/\B([A-Z])/g,be=Xt(e=>e.replace(ji,"-$1").toLowerCase()),Yt=Xt(e=>e.charAt(0).toUpperCase()+e.slice(1)),Is=Xt(e=>e?`on${Yt(e)}`:""),He=(e,t)=>!Object.is(e,t),Jt=(e,...t)=>{for(let s=0;s<e.length;s++)e[s](...t)},Mo=(e,t,s,o=!1)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:o,value:s})},Hs=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Po=e=>{const t=G(e)?Number(e):NaN;return isNaN(t)?e:t};let Ro;const Zt=()=>Ro||(Ro=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function xt(e){if(A(e)){const t={};for(let s=0;s<e.length;s++){const o=e[s],n=G(o)?Ui(o):xt(o);if(n)for(const i in n)t[i]=n[i]}return t}else if(G(e)||V(e))return e}const Vi=/;(?![^(]*\))/g,zi=/:([^]+)/,Ki=/\/\*[^]*?\*\//g;function Ui(e){const t={};return e.replace(Ki,"").split(Vi).forEach(s=>{if(s){const o=s.split(zi);o.length>1&&(t[o[0].trim()]=o[1].trim())}}),t}function _e(e){let t="";if(G(e))t=e;else if(A(e))for(let s=0;s<e.length;s++){const o=_e(e[s]);o&&(t+=o+" ")}else if(V(e))for(const s in e)e[s]&&(t+=s+" ");return t.trim()}const Bi=Ps("itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly");function No(e){return!!e||e===""}function Wi(e,t){if(e.length!==t.length)return!1;let s=!0;for(let o=0;s&&o<e.length;o++)s=Qt(e[o],t[o]);return s}function Io(e,t){if(e.size!==t.size)return!1;const s=Array.from(t),o=new Uint8Array(s.length);for(const n of e){let i=-1;for(let l=0;l<s.length;l++)if(!o[l]&&Qt(n,s[l])){i=l;break}if(i<0)return!1;o[i]=1}return!0}function Qt(e,t){if(e===t)return!0;let s=To(e),o=To(t);if(s||o)return s&&o?e.getTime()===t.getTime():!1;if(s=me(e),o=me(t),s||o)return e===t;if(s=A(e),o=A(t),s||o)return s&&o?Wi(e,t):!1;if(s=V(e),o=V(t),s||o){if(!s||!o)return!1;if(s=qe(e),o=qe(t),s||o||(s=qt(e),o=qt(t),s||o))return s&&o?Io(e,t):!1;const n=Object.keys(e).length,i=Object.keys(t).length;if(n!==i)return!1;for(const l in e){const r=e.hasOwnProperty(l),a=t.hasOwnProperty(l);if(r&&!a||!r&&a||!Qt(e[l],t[l]))return!1}}return String(e)===String(t)}const Ho=e=>!!(e&&e.__v_isRef===!0),M=e=>G(e)?e:e==null?"":A(e)||V(e)&&(e.toString===Ao||!R(e.toString))?Ho(e)?M(e.value):JSON.stringify(e,Do,2):String(e),Do=(e,t)=>Ho(t)?Do(e,t.value):qe(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((s,[o,n],i)=>(s[Ds(o,i)+" =>"]=n,s),{})}:qt(t)?{[`Set(${t.size})`]:[...t.values()].map(s=>Ds(s))}:me(t)?Ds(t):V(t)&&!A(t)&&!Gt(t)?String(t):t,Ds=(e,t="")=>{var s;return me(e)?`Symbol(${(s=e.description)!=null?s:t})`:e};/**
|
||
* @vue/reactivity v3.5.42
|
||
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
||
* @license MIT
|
||
**/let ne;class qi{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&ne&&(ne.active?(this.parent=ne,this.index=(ne.scopes||(ne.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,s;if(this.scopes){const o=this.scopes.slice();for(t=0,s=o.length;t<s;t++)o[t].pause()}for(t=0,s=this.effects.length;t<s;t++)this.effects[t].pause()}}resume(){if(this._active&&this._isPaused){this._isPaused=!1;let t,s;if(this.scopes){const n=this.scopes.slice();for(t=0,s=n.length;t<s;t++)n[t].resume()}const o=this.effects.slice();for(t=0,s=o.length;t<s;t++)o[t].resume()}}run(t){if(this._active){const s=ne;try{return ne=this,t()}finally{ne=s}}}on(){++this._on===1&&(this.prevScope=ne,ne=this)}off(){if(this._on>0&&--this._on===0){if(ne===this)ne=this.prevScope;else{let t=ne;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let s,o;for(s=0,o=this.effects.length;s<o;s++)this.effects[s].stop();for(this.effects.length=0,s=0,o=this.cleanups.length;s<o;s++)this.cleanups[s]();if(this.cleanups.length=0,this.scopes){const n=this.scopes.slice();for(s=0,o=n.length;s<o;s++)n[s].stop(!0);this.scopes.length=0}if(!this.detached&&this.parent&&!t){const n=this.parent.scopes.pop();n&&n!==this&&(this.parent.scopes[this.index]=n,n.index=this.index)}this.parent=void 0}}}function Gi(){return ne}let W;const Fs=new WeakSet;class Fo{constructor(t){this.fn=t,this.deps=void 0,this.depsTail=void 0,this.flags=5,this.next=void 0,this.cleanup=void 0,this.scheduler=void 0,ne&&(ne.active?ne.effects.push(this):this.flags&=-2)}pause(){this.flags|=64}resume(){this.flags&64&&(this.flags&=-65,Fs.has(this)&&(Fs.delete(this),this.trigger()))}notify(){this.flags&2&&!(this.flags&32)||this.flags&8||Vo(this)}run(){if(!(this.flags&1))return this.fn();this.flags|=2,Wo(this),zo(this);const t=W,s=xe;W=this,xe=!0;try{return this.fn()}finally{Ko(this),W=t,xe=s,this.flags&=-3}}stop(){if(this.flags&1){for(let t=this.deps;t;t=t.nextDep)Ks(t);this.deps=this.depsTail=void 0,Wo(this),this.onStop&&this.onStop(),this.flags&=-2}}trigger(){this.flags&64?Fs.add(this):this.scheduler?this.scheduler():this.runIfDirty()}runIfDirty(){zs(this)&&this.run()}get dirty(){return zs(this)}}let jo=0,yt,wt;function Vo(e,t=!1){if(e.flags|=8,t){e.next=wt,wt=e;return}e.next=yt,yt=e}function js(){jo++}function Vs(){if(--jo>0)return;if(wt){let t=wt;for(wt=void 0;t;){const s=t.next;t.next=void 0,t.flags&=-9,t=s}}let e;for(;yt;){let t=yt;for(yt=void 0;t;){const s=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(o){e||(e=o)}t=s}}if(e)throw e}function zo(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Ko(e){let t,s=e.depsTail,o=s;for(;o;){const n=o.prevDep;o.version===-1?(o===s&&(s=n),Ks(o),Xi(o)):t=o,o.dep.activeLink=o.prevActiveLink,o.prevActiveLink=void 0,o=n}e.deps=t,e.depsTail=s}function zs(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Uo(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Uo(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===$t)||(e.globalVersion=$t,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!zs(e))))return;e.flags|=2;const t=e.dep,s=W,o=xe;W=e,xe=!0;try{zo(e);const n=e.fn(e._value);(t.version===0||He(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(n){throw t.version++,n}finally{W=s,xe=o,Ko(e),e.flags&=-3}}function Ks(e,t=!1){const{dep:s,prevSub:o,nextSub:n}=e;if(o&&(o.nextSub=n,e.prevSub=void 0),n&&(n.prevSub=o,e.nextSub=void 0),s.subs===e&&(s.subs=o,!o&&s.computed)){s.computed.flags&=-5;for(let i=s.computed.deps;i;i=i.nextDep)Ks(i,!0)}!t&&!--s.sc&&s.map&&s.map.delete(s.key)}function Xi(e){const{prevDep:t,nextDep:s}=e;t&&(t.nextDep=s,e.prevDep=void 0),s&&(s.prevDep=t,e.nextDep=void 0)}let xe=!0;const Bo=[];function Se(){Bo.push(xe),xe=!1}function Le(){const e=Bo.pop();xe=e===void 0?!0:e}function Wo(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const s=W;W=void 0;try{t()}finally{W=s}}}let $t=0;class Yi{constructor(t,s){this.sub=t,this.dep=s,this.version=s.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class qo{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!W||!xe||W===this.computed)return;let s=this.activeLink;if(s===void 0||s.sub!==W)s=this.activeLink=new Yi(W,this),W.deps?(s.prevDep=W.depsTail,W.depsTail.nextDep=s,W.depsTail=s):W.deps=W.depsTail=s,Go(s);else if(s.version===-1&&(s.version=this.version,s.nextDep)){const o=s.nextDep;o.prevDep=s.prevDep,s.prevDep&&(s.prevDep.nextDep=o),s.prevDep=W.depsTail,s.nextDep=void 0,W.depsTail.nextDep=s,W.depsTail=s,W.deps===s&&(W.deps=o)}return s}trigger(t){this.version++,$t++,this.notify(t)}notify(t){js();try{for(let s=this.subs;s;s=s.prevSub)s.sub.notify()&&s.sub.dep.notify()}finally{Vs()}}}function Go(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let o=t.deps;o;o=o.nextDep)Go(o)}const s=e.dep.subs;s!==e&&(e.prevSub=s,s&&(s.nextSub=e)),e.dep.subs=e}}const Us=new WeakMap,Je=Symbol(""),Bs=Symbol(""),_t=Symbol("");function re(e,t,s){if(xe&&W){let o=Us.get(e);o||Us.set(e,o=new Map);let n=o.get(s);n||(o.set(s,n=new qo),n.map=o,n.key=s),n.track()}}function De(e,t,s,o,n,i){const l=Us.get(e);if(!l){$t++;return}const r=a=>{a&&a.trigger()};if(js(),t==="clear")l.forEach(r);else{const a=A(e),f=a&&Ns(s);if(a&&s==="length"){const p=Number(o);l.forEach((h,y)=>{(y==="length"||y===_t||!me(y)&&y>=p)&&r(h)})}else switch((s!==void 0||l.has(void 0))&&r(l.get(s)),f&&r(l.get(_t)),t){case"add":a?f&&r(l.get("length")):(r(l.get(Je)),qe(e)&&r(l.get(Bs)));break;case"delete":a||(r(l.get(Je)),qe(e)&&r(l.get(Bs)));break;case"set":qe(e)&&r(l.get(Je));break}}Vs()}function lt(e){const t=F(e);return t===e?t:(re(t,"iterate",_t),ye(e)?t:t.map(je))}function es(e){return re(e=F(e),"iterate",_t),e}function Ee(e,t){return Ge(e)?rt(Ze(e)?je(t):t):je(t)}const Ji={__proto__:null,[Symbol.iterator](){return Ws(this,Symbol.iterator,e=>Ee(this,e))},concat(...e){return lt(this).concat(...e.map(t=>A(t)?lt(t):t))},entries(){return Ws(this,"entries",e=>(e[1]=Ee(this,e[1]),e))},every(e,t){return Fe(this,"every",e,t,void 0,arguments)},filter(e,t){return Fe(this,"filter",e,t,s=>s.map(o=>Ee(this,o)),arguments)},find(e,t){return Fe(this,"find",e,t,s=>Ee(this,s),arguments)},findIndex(e,t){return Fe(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Fe(this,"findLast",e,t,s=>Ee(this,s),arguments)},findLastIndex(e,t){return Fe(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Fe(this,"forEach",e,t,void 0,arguments)},includes(...e){return qs(this,"includes",e)},indexOf(...e){return qs(this,"indexOf",e)},join(e){return lt(this).join(e)},lastIndexOf(...e){return qs(this,"lastIndexOf",e)},map(e,t){return Fe(this,"map",e,t,void 0,arguments)},pop(){return St(this,"pop")},push(...e){return St(this,"push",e)},reduce(e,...t){return Xo(this,"reduce",e,t)},reduceRight(e,...t){return Xo(this,"reduceRight",e,t)},shift(){return St(this,"shift")},some(e,t){return Fe(this,"some",e,t,void 0,arguments)},splice(...e){return St(this,"splice",e)},toReversed(){return lt(this).toReversed()},toSorted(e){return lt(this).toSorted(e)},toSpliced(...e){return lt(this).toSpliced(...e)},unshift(...e){return St(this,"unshift",e)},values(){return Ws(this,"values",e=>Ee(this,e))}};function Ws(e,t,s){const o=es(e),n=o[t]();return o!==e&&!ye(e)&&(n._next=n.next,n.next=()=>{const i=n._next();return i.done||(i.value=s(i.value)),i}),n}const Zi=Array.prototype;function Fe(e,t,s,o,n,i){const l=es(e),r=l!==e&&!ye(e),a=l[t];if(a!==Zi[t]){const h=a.apply(e,i);return r?je(h):h}let f=s;l!==e&&(r?f=function(h,y){return s.call(this,Ee(e,h),y,e)}:s.length>2&&(f=function(h,y){return s.call(this,h,y,e)}));const p=a.call(l,f,o);return r&&n?n(p):p}function Xo(e,t,s,o){const n=es(e),i=n!==e&&!ye(e);let l=s,r=!1;n!==e&&(i?(r=o.length===0,l=function(f,p,h){return r&&(r=!1,f=Ee(e,f)),s.call(this,f,Ee(e,p),h,e)}):s.length>3&&(l=function(f,p,h){return s.call(this,f,p,h,e)}));const a=n[t](l,...o);return r?Ee(e,a):a}function qs(e,t,s){const o=F(e);re(o,"iterate",_t);const n=o[t](...s);return(n===-1||n===!1)&&Js(s[0])?(s[0]=F(s[0]),o[t](...s)):n}function St(e,t,s=[]){Se(),js();const o=F(e)[t].apply(e,s);return Vs(),Le(),o}const Qi=Ps("__proto__,__v_isRef,__isVue"),Yo=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(me));function el(e){me(e)||(e=String(e));const t=F(this);return re(t,"has",e),t.hasOwnProperty(e)}class Jo{constructor(t=!1,s=!1){this._isReadonly=t,this._isShallow=s}get(t,s,o){if(s==="__v_skip")return t.__v_skip;const n=this._isReadonly,i=this._isShallow;if(s==="__v_isReactive")return!n;if(s==="__v_isReadonly")return n;if(s==="__v_isShallow")return i;if(s==="__v_raw")return o===(n?i?on:sn:i?tn:en).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(o)?t:void 0;const l=A(t);if(!n){let a;if(l&&(a=Ji[s]))return a;if(s==="hasOwnProperty")return el}const r=Reflect.get(t,s,ae(t)?t:o);if((me(s)?Yo.has(s):Qi(s))||(n||re(t,"get",s),i))return r;if(ae(r)){const a=l&&Ns(s)?r:r.value;return n&&V(a)?Ys(a):a}return V(r)?n?Ys(r):Xs(r):r}}class Zo extends Jo{constructor(t=!1){super(!1,t)}set(t,s,o,n){let i=t[s];const l=A(t)&&Ns(s);if(!this._isShallow){const f=Ge(i);if(!ye(o)&&!Ge(o)&&(i=F(i),o=F(o)),!l&&ae(i)&&!ae(o))return f||(i.value=o),!0}const r=l?Number(s)<t.length:D(t,s),a=Reflect.set(t,s,o,ae(t)?t:n);return t===F(n)&&a&&(r?He(o,i)&&De(t,"set",s,o):De(t,"add",s,o)),a}deleteProperty(t,s){const o=D(t,s);t[s];const n=Reflect.deleteProperty(t,s);return n&&o&&De(t,"delete",s,void 0),n}has(t,s){const o=Reflect.has(t,s);return(!me(s)||!Yo.has(s))&&re(t,"has",s),o}ownKeys(t){return re(t,"iterate",A(t)?"length":Je),Reflect.ownKeys(t)}}class Qo extends Jo{constructor(t=!1){super(!0,t)}set(t,s){return!0}deleteProperty(t,s){return!0}}const tl=new Zo,sl=new Qo,ol=new Zo(!0),nl=new Qo(!0),Gs=e=>e,ts=e=>Reflect.getPrototypeOf(e);function il(e,t,s){return function(...o){const n=this.__v_raw,i=F(n),l=qe(i),r=e==="entries"||e===Symbol.iterator&&l,a=e==="keys"&&l,f=n[e](...o),p=s?Gs:t?rt:je;return!t&&re(i,"iterate",a?Bs:Je),Z(Object.create(f),{next(){const{value:h,done:y}=f.next();return y?{value:h,done:y}:{value:r?[p(h[0]),p(h[1])]:p(h),done:y}}})}}function ss(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function ll(e,t){const s={get(n){const i=this.__v_raw,l=F(i),r=F(n);e||(He(n,r)&&re(l,"get",n),re(l,"get",r));const{has:a}=ts(l),f=t?Gs:e?rt:je;if(a.call(l,n))return f(i.get(n));if(a.call(l,r))return f(i.get(r));i!==l&&i.get(n)},get size(){const n=this.__v_raw;return!e&&re(F(n),"iterate",Je),n.size},has(n){const i=this.__v_raw,l=F(i),r=F(n);return e||(He(n,r)&&re(l,"has",n),re(l,"has",r)),n===r?i.has(n):i.has(n)||i.has(r)},forEach(n,i){const l=this,r=l.__v_raw,a=F(r),f=t?Gs:e?rt:je;return!e&&re(a,"iterate",Je),r.forEach((p,h)=>n.call(i,f(p),f(h),l))}};return Z(s,e?{add:ss("add"),set:ss("set"),delete:ss("delete"),clear:ss("clear")}:{add(n){const i=F(this),l=ts(i),r=F(n),a=!t&&!ye(n)&&!Ge(n)?r:n;return l.has.call(i,a)||He(n,a)&&l.has.call(i,n)||He(r,a)&&l.has.call(i,r)||(i.add(a),De(i,"add",a,a)),this},set(n,i){!t&&!ye(i)&&!Ge(i)&&(i=F(i));const l=F(this),{has:r,get:a}=ts(l);let f=r.call(l,n);f||(n=F(n),f=r.call(l,n));const p=a.call(l,n);return l.set(n,i),f?He(i,p)&&De(l,"set",n,i):De(l,"add",n,i),this},delete(n){const i=F(this),{has:l,get:r}=ts(i);let a=l.call(i,n);a||(n=F(n),a=l.call(i,n)),r&&r.call(i,n);const f=i.delete(n);return a&&De(i,"delete",n,void 0),f},clear(){const n=F(this),i=n.size!==0,l=n.clear();return i&&De(n,"clear",void 0,void 0),l}}),["keys","values","entries",Symbol.iterator].forEach(n=>{s[n]=il(n,e,t)}),s}function os(e,t){const s=ll(e,t);return(o,n,i)=>n==="__v_isReactive"?!e:n==="__v_isReadonly"?e:n==="__v_raw"?o:Reflect.get(D(s,n)&&n in o?s:o,n,i)}const rl={get:os(!1,!1)},al={get:os(!1,!0)},cl={get:os(!0,!1)},dl={get:os(!0,!0)},en=new WeakMap,tn=new WeakMap,sn=new WeakMap,on=new WeakMap;function pl(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function Xs(e){return Ge(e)?e:ns(e,!1,tl,rl,en)}function fl(e){return ns(e,!1,ol,al,tn)}function Ys(e){return ns(e,!0,sl,cl,sn)}function zd(e){return ns(e,!0,nl,dl,on)}function ns(e,t,s,o,n){if(!V(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;const i=n.get(e);if(i)return i;const l=pl(Di(e));if(l===0)return e;const r=new Proxy(e,l===2?o:s);return n.set(e,r),r}function Ze(e){return Ge(e)?Ze(e.__v_raw):!!(e&&e.__v_isReactive)}function Ge(e){return!!(e&&e.__v_isReadonly)}function ye(e){return!!(e&&e.__v_isShallow)}function Js(e){return e?!!e.__v_raw:!1}function F(e){const t=e&&e.__v_raw;return t?F(t):e}function ul(e){return!D(e,"__v_skip")&&Object.isExtensible(e)&&Mo(e,"__v_skip",!0),e}const je=e=>V(e)?Xs(e):e,rt=e=>V(e)?Ys(e):e;function ae(e){return e?e.__v_isRef===!0:!1}function nn(e){return ae(e)?e.value:e}const hl={get:(e,t,s)=>t==="__v_raw"?e:nn(Reflect.get(e,t,s)),set:(e,t,s,o)=>{const n=e[t];return ae(n)&&!ae(s)?(n.value=s,!0):Reflect.set(e,t,s,o)}};function ln(e){return Ze(e)?e:new Proxy(e,hl)}class gl{constructor(t,s,o){this.fn=t,this.setter=s,this._value=void 0,this.dep=new qo(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=$t-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!s,this.isSSR=o}notify(){if(this.flags|=16,!(this.flags&8)&&W!==this)return Vo(this,!0),!0}get value(){const t=this.dep.track();return Uo(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function bl(e,t,s=!1){let o,n;return R(e)?o=e:(o=e.get,n=e.set),new gl(o,n,s)}const is={},ls=new WeakMap;let Qe;function vl(e,t=!1,s=Qe){if(s){let o=ls.get(s);o||ls.set(s,o=[]),o.push(e)}}function ml(e,t,s=U){const{immediate:o,deep:n,once:i,scheduler:l,augmentJob:r,call:a}=s,f=O=>n?O:ye(O)||n===!1||n===0?Ve(O,1):Ve(O);let p,h,y,S,j=!1,N=!1;if(ae(e)?(h=()=>e.value,j=ye(e)):Ze(e)?(h=()=>f(e),j=!0):A(e)?(N=!0,j=e.some(O=>Ze(O)||ye(O)),h=()=>e.map(O=>{if(ae(O))return O.value;if(Ze(O))return f(O);if(R(O))return a?a(O,2):O()})):R(e)?t?h=a?()=>a(e,2):e:h=()=>{if(y){Se();try{y()}finally{Le()}}const O=Qe;Qe=p;try{return a?a(e,3,[S]):e(S)}finally{Qe=O}}:h=$e,t&&n){const O=h,se=n===!0?1/0:n;h=()=>Ve(O(),se)}const ee=Gi(),Y=()=>{p.stop(),ee&&ee.active&&Rs(ee.effects,p)};if(i&&t){const O=t;t=(...se)=>{const Ae=O(...se);return Y(),Ae}}let H=N?new Array(e.length).fill(is):is;const z=O=>{if(!(!(p.flags&1)||!p.dirty&&!O))if(t){const se=p.run();if(O||n||j||(N?se.some((Ae,Me)=>He(Ae,H[Me])):He(se,H))){y&&y();const Ae=Qe;Qe=p;try{const Me=[se,H===is?void 0:N&&H[0]===is?[]:H,S];H=se,a?a(t,3,Me):t(...Me)}finally{Qe=Ae}}}else p.run()};return r&&r(z),p=new Fo(h),p.scheduler=l?()=>l(z,!1):z,S=O=>vl(O,!1,p),y=p.onStop=()=>{const O=ls.get(p);if(O){if(a)a(O,4);else for(const se of O)se();ls.delete(p)}},t?o?z(!0):H=p.run():l?l(z.bind(null,!0),!0):p.run(),Y.pause=p.pause.bind(p),Y.resume=p.resume.bind(p),Y.stop=Y,Y}function Ve(e,t=1/0,s){if(t<=0||!V(e)||e.__v_skip||(s=s||new Map,(s.get(e)||0)>=t))return e;if(s.set(e,t),t--,ae(e))Ve(e.value,t,s);else if(A(e))for(let o=0;o<e.length;o++)Ve(e[o],t,s);else if(qt(e)||qe(e))e.forEach(o=>{Ve(o,t,s)});else if(Gt(e)){for(const o in e)Ve(e[o],t,s);for(const o of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,o)&&Ve(e[o],t,s)}return e}/**
|
||
* @vue/runtime-core v3.5.42
|
||
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
||
* @license MIT
|
||
**/const Lt=[];let Zs=!1;function Kd(e,...t){if(Zs)return;Zs=!0,Se();const s=Lt.length?Lt[Lt.length-1].component:null,o=s&&s.appContext.config.warnHandler,n=xl();if(o)at(o,s,11,[e+t.map(i=>{var l,r;return(r=(l=i.toString)==null?void 0:l.call(i))!=null?r:JSON.stringify(i)}).join(""),s&&s.proxy,n.map(({vnode:i})=>`at <${ri(s,i.type)}>`).join(`
|
||
`),n]);else{const i=[`[Vue warn]: ${e}`,...t];n.length&&i.push(`
|
||
`,...yl(n)),console.warn(...i)}Le(),Zs=!1}function xl(){let e=Lt[Lt.length-1];if(!e)return[];const t=[];for(;e;){const s=t[0];s&&s.vnode===e?s.recurseCount++:t.push({vnode:e,recurseCount:0});const o=e.component&&e.component.parent;e=o&&o.vnode}return t}function yl(e){const t=[];return e.forEach((s,o)=>{t.push(...o===0?[]:[`
|
||
`],...wl(s))}),t}function wl({vnode:e,recurseCount:t}){const s=t>0?`... (${t} recursive calls)`:"",o=e.component?e.component.parent==null:!1,n=` at <${ri(e.component,e.type,o)}`,i=">"+s;return e.props?[n,...$l(e.props),i]:[n+i]}function $l(e){const t=[],s=Object.keys(e);return s.slice(0,3).forEach(o=>{t.push(...rn(o,e[o]))}),s.length>3&&t.push(" ..."),t}function rn(e,t,s){return G(t)?(t=JSON.stringify(t),s?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?s?t:[`${e}=${t}`]:ae(t)?(t=rn(e,F(t.value),!0),s?t:[`${e}=Ref<`,t,">"]):R(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=F(t),s?t:[`${e}=`,t])}function at(e,t,s,o){try{return o?e(...o):e()}catch(n){rs(n,t,s)}}function we(e,t,s,o){if(R(e)){const n=at(e,t,s,o);return n&&Oo(n)&&n.catch(i=>{rs(i,t,s)}),n}if(A(e)){const n=[];for(let i=0;i<e.length;i++)n.push(we(e[i],t,s,o));return n}}function rs(e,t,s,o=!0){const n=t?t.vnode:null,{errorHandler:i,throwUnhandledErrorInProduction:l}=t&&t.appContext.config||U;if(t){let r=t.parent;const a=t.proxy,f=`https://vuejs.org/error-reference/#runtime-${s}`;for(;r;){const p=r.ec;if(p){for(let h=0;h<p.length;h++)if(p[h](e,a,f)===!1)return}r=r.parent}if(i){Se(),at(i,null,10,[e,a,f]),Le();return}}_l(e,s,n,o,l)}function _l(e,t,s,o=!0,n=!1){if(n)throw e;console.error(e)}const de=[];let ke=-1;const ct=[];let Xe=null,dt=0;const an=Promise.resolve();let as=null;function cn(e){const t=as||an;return e?t.then(this?e.bind(this):e):t}function Sl(e){let t=ke+1,s=de.length;for(;t<s;){const o=t+s>>>1,n=de[o],i=Et(n);i<e||i===e&&n.flags&2?t=o+1:s=o}return t}function Qs(e){if(!(e.flags&1)){const t=Et(e),s=de[de.length-1];!s||!(e.flags&2)&&t>=Et(s)?de.push(e):de.splice(Sl(t),0,e),e.flags|=1,dn()}}function dn(){as||(as=an.then(un))}function Ll(e){if(!A(e))Xe&&e.id===-1?Xe.splice(dt+1,0,e):e.flags&1||(ct.push(e),e.flags|=1);else for(let t=0;t<e.length;t++)ct.push(e[t]);dn()}function pn(e,t,s=ke+1){for(;s<de.length;s++){const o=de[s];if(o&&o.flags&2){if(e&&o.id!==e.uid)continue;de.splice(s,1),s--,o.flags&4&&(o.flags&=-2),o(),o.flags&4||(o.flags&=-2)}}}function fn(e){if(ct.length){const t=[...new Set(ct)].sort((s,o)=>Et(s)-Et(o));if(ct.length=0,Xe){for(let s=0;s<t.length;s++)Xe.push(t[s]);return}for(Xe=t,dt=0;dt<Xe.length;dt++){const s=Xe[dt];s.flags&4&&(s.flags&=-2),s.flags&8||s(),s.flags&=-2}Xe=null,dt=0}}const Et=e=>e.id==null?e.flags&2?-1:1/0:e.id;function un(e){try{for(ke=0;ke<de.length;ke++){const t=de[ke];t&&!(t.flags&8)&&(t.flags&4&&(t.flags&=-2),at(t,t.i,t.i?15:14),t.flags&4||(t.flags&=-2))}}finally{for(;ke<de.length;ke++){const t=de[ke];t&&(t.flags&=-2)}ke=-1,de.length=0,fn(),as=null,(de.length||ct.length)&&un()}}let ie=null,hn=null;function cs(e){const t=ie;return ie=e,hn=e&&e.type.__scopeId||null,t}function pt(e,t=ie,s){if(!t||e._n)return e;const o=(...n)=>{o._d&&Zn(-1);const i=cs(t),l=Ue.length;let r;try{r=e(...n)}finally{for(let a=Ue.length;a>l;a--)ho();cs(i),o._d&&Zn(1)}return r};return o._n=!0,o._c=!0,o._d=!0,o}function ds(e,t){if(ie===null)return e;const s=$s(ie),o=e.dirs||(e.dirs=[]);for(let n=0;n<t.length;n++){let[i,l,r,a=U]=t[n];i&&(R(i)&&(i={mounted:i,updated:i}),i.deep&&Ve(l),o.push({dir:i,instance:s,value:l,oldValue:void 0,arg:r,modifiers:a}))}return e}function et(e,t,s,o){const n=e.dirs,i=t&&t.dirs;for(let l=0;l<n.length;l++){const r=n[l];i&&(r.oldValue=i[l].value);let a=r.dir[o];a&&(Se(),we(a,s,8,[e.el,r,e,t]),Le())}}function El(e,t){if(ce){let s=ce.provides;const o=ce.parent&&ce.parent.provides;o===s&&(s=ce.provides=Object.create(o)),s[e]=t}}function kt(e,t,s=!1){const o=ti();if(o||ut){let n=ut?ut._context.provides:o?o.parent==null||o.ce?o.vnode.appContext&&o.vnode.appContext.provides:o.parent.provides:void 0;if(n&&e in n)return n[e];if(arguments.length>1)return s&&R(t)?t.call(o&&o.proxy):t}}const kl=Symbol.for("v-scx"),Cl=()=>kt(kl);function eo(e,t,s){return gn(e,t,s)}function gn(e,t,s=U){const{immediate:o,deep:n,flush:i,once:l}=s,r=Z({},s),a=t&&o||!t&&i!=="post";let f;if(It){if(i==="sync"){const S=Cl();f=S.__watcherHandles||(S.__watcherHandles=[])}else if(!a){const S=()=>{};return S.stop=$e,S.resume=$e,S.pause=$e,S}}const p=ce;r.call=(S,j,N)=>we(S,p,j,N);let h=!1;i==="post"?r.scheduler=S=>{ue(S,p&&p.suspense)}:i!=="sync"&&(h=!0,r.scheduler=(S,j)=>{j?S():Qs(S)}),r.augmentJob=S=>{t&&(S.flags|=4),h&&(S.flags|=2,p&&(S.id=p.uid,S.i=p))};const y=ml(e,t,r);return It&&(f?f.push(y):a&&y()),y}function Tl(e,t,s){const o=this.proxy,n=G(e)?e.includes(".")?bn(o,e):()=>o[e]:e.bind(o,o);let i;R(t)?i=t:(i=t.handler,s=t);const l=Nt(this),r=gn(n,i.bind(o),s);return l(),r}function bn(e,t){const s=t.split(".");return()=>{let o=e;for(let n=0;n<s.length&&o;n++)o=o[s[n]];return o}}const Ol=Symbol("_vte"),ps=e=>e.__isTeleport,to=Symbol("_leaveCb");function Al(e){let t=e[0];if(e.length>1){for(const s of e)if(s.type!==Ce){t=s;break}}return t}function vn(e){if(!oo(e))return ps(e.type)&&e.children?Al(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:s}=e;if(s){if(t&16)return s[0];if(t&32&&R(s.default))return s.default()}}function so(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;const s=e.component.subTree;so(ps(s.type)&&vn(s)||s,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function fs(e,t){return R(e)?Z({name:e.name},t,{setup:e}):e}function mn(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function xn(e,t){let s;return!!((s=Object.getOwnPropertyDescriptor(e,t))&&!s.configurable)}const us=new WeakMap;function Ct(e,t,s,o,n=!1){if(A(e)){e.forEach((N,ee)=>Ct(N,t&&(A(t)?t[ee]:t),s,o,n));return}if(ft(o)&&!n){o.shapeFlag&512&&o.type.__asyncResolved&&o.component.subTree.component&&Ct(e,t,s,o.component.subTree);return}const i=o.shapeFlag&4?$s(o.component):o.el,l=n?null:i,{i:r,r:a}=e,f=t&&t.r,p=r.refs===U?r.refs={}:r.refs,h=r.setupState,y=F(h),S=h===U?Co:N=>xn(p,N)?!1:D(y,N),j=(N,ee)=>!(ee&&xn(p,ee));if(f!=null&&f!==a){if(yn(t),G(f))p[f]=null,S(f)&&(h[f]=null);else if(ae(f)){const N=t;j(f,N.k)&&(f.value=null),N.k&&(p[N.k]=null)}}if(R(a))at(a,r,12,[l,p]);else{const N=G(a),ee=ae(a);if(N||ee){const Y=()=>{if(e.f){const H=N?S(a)?h[a]:p[a]:j()||!e.k?a.value:p[e.k];if(n)A(H)&&Rs(H,i);else if(A(H))H.includes(i)||H.push(i);else if(N)p[a]=[i],S(a)&&(h[a]=p[a]);else{const z=[i];j(a,e.k)&&(a.value=z),e.k&&(p[e.k]=z)}}else N?(p[a]=l,S(a)&&(h[a]=l)):ee&&(j(a,e.k)&&(a.value=l),e.k&&(p[e.k]=l))};if(l){const H=()=>{Y(),us.delete(e)};H.id=-1,us.set(e,H),ue(H,s)}else yn(e),Y()}}}function yn(e){const t=us.get(e);t&&(t.flags|=8,us.delete(e))}Zt().requestIdleCallback,Zt().cancelIdleCallback;const ft=e=>!!e.type.__asyncLoader,oo=e=>e.type.__isKeepAlive;function Ml(e,t){wn(e,"a",t)}function Pl(e,t){wn(e,"da",t)}function wn(e,t,s=ce){const o=e.__wdc||(e.__wdc=()=>{let n=s;for(;n;){if(n.isDeactivated)return;n=n.parent}return e()});if(hs(t,o,s),s){let n=s.parent;for(;n&&n.parent;)oo(n.parent.vnode)&&Rl(o,t,s,n),n=n.parent}}function Rl(e,t,s,o){const n=hs(t,e,o,!0);_n(()=>{Rs(o[t],n)},s)}function hs(e,t,s=ce,o=!1){if(s){const n=s[e]||(s[e]=[]),i=t.__weh||(t.__weh=(...l)=>{Se();const r=Nt(s),a=we(t,s,e,l);return r(),Le(),a});return o?n.unshift(i):n.push(i),i}}const ze=e=>(t,s=ce)=>{(!It||e==="sp")&&hs(e,(...o)=>t(...o),s)},Nl=ze("bm"),$n=ze("m"),Il=ze("bu"),Hl=ze("u"),Dl=ze("bum"),_n=ze("um"),Fl=ze("sp"),jl=ze("rtg"),Vl=ze("rtc");function zl(e,t=ce){hs("ec",e,t)}const Kl="components";function Sn(e,t){return Bl(Kl,e,!0,t)||e}const Ul=Symbol.for("v-ndc");function Bl(e,t,s=!0,o=!1){const n=ie||ce;if(n){const i=n.type;{const r=li(i,!1);if(r&&(r===t||r===oe(t)||r===Yt(oe(t))))return i}const l=Ln(n[e]||i[e],t)||Ln(n.appContext[e],t);return!l&&o?i:l}}function Ln(e,t){return e&&(e[t]||e[oe(t)]||e[Yt(oe(t))])}function Ke(e,t,s,o){let n;const i=s,l=A(e);if(l||G(e)){const r=l&&Ze(e);let a=!1,f=!1;r&&(a=!ye(e),f=Ge(e),e=es(e)),n=new Array(e.length);for(let p=0,h=e.length;p<h;p++)n[p]=t(a?f?rt(je(e[p])):je(e[p]):e[p],p,void 0,i)}else if(typeof e=="number"){n=new Array(e);for(let r=0;r<e;r++)n[r]=t(r+1,r,void 0,i)}else if(V(e))if(e[Symbol.iterator])n=Array.from(e,(r,a)=>t(r,a,void 0,i));else{const r=Object.keys(e);n=new Array(r.length);for(let a=0,f=r.length;a<f;a++){const p=r[a];n[a]=t(e[p],p,a,i)}}else n=[];return n}function Tt(e,t,s,o,n,i){if(s==null&&(s={}),ie.ce||ie.parent&&ft(ie.parent)&&ie.parent.ce){const f=i!=null&&s.key==null?Z({},s,{key:i}):s,p=Object.keys(f).length>0;return t!=="default"&&(f.name=t),E(),ms(X,null,[ve("slot",f,o)],p?-2:64)}let l=e[t];l&&l._c&&(l._d=!1);const r=Ue.length;E();let a;try{const f=l&&En(l(s)),p=s.key||i||f&&f.key;a=ms(X,{key:(p&&!me(p)?p:`_${t}`)+(!f&&o?"_fb":"")},f||(o?o():[]),f&&e._===1?64:-2)}catch(f){for(let p=Ue.length;p>r;p--)ho();throw f}finally{l&&l._c&&(l._d=!0)}return a.scopeId&&(a.slotScopeIds=[a.scopeId+"-s"]),a}function En(e){return e.some(t=>go(t)?!(t.type===Ce||t.type===X&&!En(t.children)):!0)?e:null}const no=e=>e?oi(e)?$s(e):no(e.parent):null,Ot=Z(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=>no(e.parent),$root:e=>no(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>On(e),$forceUpdate:e=>e.f||(e.f=()=>{Qs(e.update)}),$nextTick:e=>e.n||(e.n=cn.bind(e.proxy)),$watch:e=>Tl.bind(e)}),io=(e,t)=>e!==U&&!e.__isScriptSetup&&D(e,t),Wl={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:s,setupState:o,data:n,props:i,accessCache:l,type:r,appContext:a}=e;if(t[0]!=="$"){const y=l[t];if(y!==void 0)switch(y){case 1:return o[t];case 2:return n[t];case 4:return s[t];case 3:return i[t]}else{if(io(o,t))return l[t]=1,o[t];if(n!==U&&D(n,t))return l[t]=2,n[t];if(D(i,t))return l[t]=3,i[t];if(s!==U&&D(s,t))return l[t]=4,s[t];lo&&(l[t]=0)}}const f=Ot[t];let p,h;if(f)return t==="$attrs"&&re(e.attrs,"get",""),f(e);if((p=r.__cssModules)&&(p=p[t]))return p;if(s!==U&&D(s,t))return l[t]=4,s[t];if(h=a.config.globalProperties,D(h,t))return h[t]},set({_:e},t,s){const{data:o,setupState:n,ctx:i}=e;return io(n,t)?(n[t]=s,!0):o!==U&&D(o,t)?(o[t]=s,!0):D(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=s,!0)},has({_:{data:e,setupState:t,accessCache:s,ctx:o,appContext:n,props:i,type:l}},r){let a;return!!(s[r]||e!==U&&r[0]!=="$"&&D(e,r)||io(t,r)||D(i,r)||D(o,r)||D(Ot,r)||D(n.config.globalProperties,r)||(a=l.__cssModules)&&a[r])},defineProperty(e,t,s){return s.get!=null?e._.accessCache[t]=0:D(s,"value")&&this.set(e,t,s.value,null),Reflect.defineProperty(e,t,s)}};function kn(e){return A(e)?e.reduce((t,s)=>(t[s]=null,t),{}):e}let lo=!0;function ql(e){const t=On(e),s=e.proxy,o=e.ctx;lo=!1,t.beforeCreate&&Cn(t.beforeCreate,e,"bc");const{data:n,computed:i,methods:l,watch:r,provide:a,inject:f,created:p,beforeMount:h,mounted:y,beforeUpdate:S,updated:j,activated:N,deactivated:ee,beforeDestroy:Y,beforeUnmount:H,destroyed:z,unmounted:O,render:se,renderTracked:Ae,renderTriggered:Me,errorCaptured:Ye,serverPrefetch:Cs,expose:st,inheritAttrs:Vt,components:Ts,directives:Os,filters:Eo}=t;if(f&&Gl(f,o,null),l)for(const J in l){const q=l[J];R(q)&&(o[J]=q.bind(s))}if(n){const J=n.call(s,s);V(J)&&(e.data=Xs(J))}if(lo=!0,i)for(const J in i){const q=i[J],ot=R(q)?q.bind(s,s):R(q.get)?q.get.bind(s,s):$e,As=!R(q)&&R(q.set)?q.set.bind(s):$e,nt=Ar({get:ot,set:As});Object.defineProperty(o,J,{enumerable:!0,configurable:!0,get:()=>nt.value,set:Pe=>nt.value=Pe})}if(r)for(const J in r)Tn(r[J],o,s,J);if(a){const J=R(a)?a.call(s):a;Reflect.ownKeys(J).forEach(q=>{El(q,J[q])})}p&&Cn(p,e,"c");function fe(J,q){A(q)?q.forEach(ot=>J(ot.bind(s))):q&&J(q.bind(s))}if(fe(Nl,h),fe($n,y),fe(Il,S),fe(Hl,j),fe(Ml,N),fe(Pl,ee),fe(zl,Ye),fe(Vl,Ae),fe(jl,Me),fe(Dl,H),fe(_n,O),fe(Fl,Cs),A(st))if(st.length){const J=e.exposed||(e.exposed={});st.forEach(q=>{Object.defineProperty(J,q,{get:()=>s[q],set:ot=>s[q]=ot,enumerable:!0})})}else e.exposed||(e.exposed={});se&&e.render===$e&&(e.render=se),Vt!=null&&(e.inheritAttrs=Vt),Ts&&(e.components=Ts),Os&&(e.directives=Os),Cs&&mn(e)}function Gl(e,t,s=$e){A(e)&&(e=ro(e));for(const o in e){const n=e[o];let i;V(n)?"default"in n?i=kt(n.from||o,n.default,!0):i=kt(n.from||o):i=kt(n),ae(i)?Object.defineProperty(t,o,{enumerable:!0,configurable:!0,get:()=>i.value,set:l=>i.value=l}):t[o]=i}}function Cn(e,t,s){we(A(e)?e.map(o=>o.bind(t.proxy)):e.bind(t.proxy),t,s)}function Tn(e,t,s,o){let n=o.includes(".")?bn(s,o):()=>s[o];if(G(e)){const i=t[e];R(i)&&eo(n,i)}else if(R(e))eo(n,e.bind(s));else if(V(e))if(A(e))e.forEach(i=>Tn(i,t,s,o));else{const i=R(e.handler)?e.handler.bind(s):t[e.handler];R(i)&&eo(n,i,e)}}function On(e){const t=e.type,{mixins:s,extends:o}=t,{mixins:n,optionsCache:i,config:{optionMergeStrategies:l}}=e.appContext,r=i.get(t);let a;return r?a=r:!n.length&&!s&&!o?a=t:(a={},n.length&&n.forEach(f=>gs(a,f,l,!0)),gs(a,t,l)),V(t)&&i.set(t,a),a}function gs(e,t,s,o=!1){const{mixins:n,extends:i}=t;i&&gs(e,i,s,!0),n&&n.forEach(l=>gs(e,l,s,!0));for(const l in t)if(!(o&&l==="expose")){const r=Xl[l]||s&&s[l];e[l]=r?r(e[l],t[l]):t[l]}return e}const Xl={data:An,props:Mn,emits:Mn,methods:At,computed:At,beforeCreate:pe,created:pe,beforeMount:pe,mounted:pe,beforeUpdate:pe,updated:pe,beforeDestroy:pe,beforeUnmount:pe,destroyed:pe,unmounted:pe,activated:pe,deactivated:pe,errorCaptured:pe,serverPrefetch:pe,components:At,directives:At,watch:Jl,provide:An,inject:Yl};function An(e,t){return t?e?function(){return Z(R(e)?e.call(this,this):e,R(t)?t.call(this,this):t)}:t:e}function Yl(e,t){return At(ro(e),ro(t))}function ro(e){if(A(e)){const t={};for(let s=0;s<e.length;s++)t[e[s]]=e[s];return t}return e}function pe(e,t){return e?[...new Set([].concat(e,t))]:t}function At(e,t){return e?Z(Object.create(null),e,t):t}function Mn(e,t){return e?A(e)&&A(t)?[...new Set([...e,...t])]:Z(Object.create(null),kn(e),kn(t??{})):t}function Jl(e,t){if(!e)return t;if(!t)return e;const s=Z(Object.create(null),e);for(const o in t)s[o]=pe(e[o],t[o]);return s}function Pn(){return{app:null,config:{isNativeTag:Co,performance:!1,globalProperties:{},optionMergeStrategies:{},errorHandler:void 0,warnHandler:void 0,compilerOptions:{}},mixins:[],components:{},directives:{},provides:Object.create(null),optionsCache:new WeakMap,propsCache:new WeakMap,emitsCache:new WeakMap}}let Zl=0;function Ql(e,t){return function(o,n=null){R(o)||(o=Z({},o)),n!=null&&!V(n)&&(n=null);const i=Pn(),l=new WeakSet,r=[];let a=!1;const f=i.app={_uid:Zl++,_component:o,_props:n,_container:null,_context:i,_instance:null,version:Mr,get config(){return i.config},set config(p){},use(p,...h){return l.has(p)||(p&&R(p.install)?(l.add(p),p.install(f,...h)):R(p)&&(l.add(p),p(f,...h))),f},mixin(p){return i.mixins.includes(p)||i.mixins.push(p),f},component(p,h){return h?(i.components[p]=h,f):i.components[p]},directive(p,h){return h?(i.directives[p]=h,f):i.directives[p]},mount(p,h,y){if(!a){const S=f._ceVNode||ve(o,n);return S.appContext=i,y===!0?y="svg":y===!1&&(y=void 0),e(S,p,y),a=!0,f._container=p,p.__vue_app__=f,$s(S.component)}},onUnmount(p){r.push(p)},unmount(){a&&(we(r,f._instance,16),e(null,f._container),delete f._container.__vue_app__)},provide(p,h){return i.provides[p]=h,f},runWithContext(p){const h=ut;ut=f;try{return p()}finally{ut=h}}};return f}}let ut=null;const er=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${oe(t)}Modifiers`]||e[`${be(t)}Modifiers`];function tr(e,t,...s){if(e.isUnmounted)return;const o=e.vnode.props||U;let n=s;const i=t.startsWith("update:"),l=i&&er(o,t.slice(7));l&&(l.trim&&(n=s.map(p=>G(p)?p.trim():p)),l.number&&(n=n.map(Hs)));let r,a=o[r=Is(t)]||o[r=Is(oe(t))];!a&&i&&(a=o[r=Is(be(t))]),a&&we(a,e,6,n);const f=o[r+"Once"];if(f){if(!e.emitted)e.emitted={};else if(e.emitted[r])return;e.emitted[r]=!0,we(f,e,6,n)}}const sr=new WeakMap;function Rn(e,t,s=!1){const o=s?sr:t.emitsCache,n=o.get(e);if(n!==void 0)return n;const i=e.emits;let l={},r=!1;if(!R(e)){const a=f=>{const p=Rn(f,t,!0);p&&(r=!0,Z(l,p))};!s&&t.mixins.length&&t.mixins.forEach(a),e.extends&&a(e.extends),e.mixins&&e.mixins.forEach(a)}return!i&&!r?(V(e)&&o.set(e,null),null):(A(i)?i.forEach(a=>l[a]=null):Z(l,i),V(e)&&o.set(e,l),l)}function bs(e,t){return!e||!Bt(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),D(e,t[0].toLowerCase()+t.slice(1))||D(e,be(t))||D(e,t))}function Ud(){}function Nn(e){const{type:t,vnode:s,proxy:o,withProxy:n,propsOptions:[i],slots:l,attrs:r,emit:a,render:f,renderCache:p,props:h,data:y,setupState:S,ctx:j,inheritAttrs:N}=e,ee=cs(e);let Y,H;try{if(s.shapeFlag&4){const O=n||o,se=O;Y=Te(f.call(se,O,p,h,S,y,j)),H=r}else{const O=t;Y=Te(O.length>1?O(h,{attrs:r,slots:l,emit:a}):O(h,null)),H=t.props?r:or(r)}}catch(O){Ue.length=0,rs(O,e,1),Y=ve(Ce)}let z=Y;if(H&&N!==!1){const O=Object.keys(H),{shapeFlag:se}=z;O.length&&se&7&&(i&&O.some(Wt)&&(H=nr(H,i)),z=ht(z,H,!1,!0))}if(s.dirs&&(z=ht(z,null,!1,!0),z.dirs=z.dirs?z.dirs.concat(s.dirs):s.dirs),s.transition){const O=ps(z.type)&&vn(z)||z;so(O,s.transition)}return Y=z,cs(ee),Y}const or=e=>{let t;for(const s in e)(s==="class"||s==="style"||Bt(s))&&((t||(t={}))[s]=e[s]);return t},nr=(e,t)=>{const s={};for(const o in e)(!Wt(o)||!(o.slice(9)in t))&&(s[o]=e[o]);return s};function ir(e,t,s){const{props:o,children:n,component:i}=e,{props:l,children:r,patchFlag:a}=t,f=i.emitsOptions;if(t.dirs||t.transition)return!0;if(s&&a>=0){if(a&1024)return!0;if(a&16)return o?In(o,l,f):!!l;if(a&8){const p=t.dynamicProps;for(let h=0;h<p.length;h++){const y=p[h];if(Hn(l,o,y)&&!bs(f,y))return!0}}}else return(n||r)&&(!r||!r.$stable)?!0:o===l?!1:o?l?In(o,l,f):!0:!!l;return!1}function In(e,t,s){const o=Object.keys(t);if(o.length!==Object.keys(e).length)return!0;for(let n=0;n<o.length;n++){const i=o[n];if(Hn(t,e,i)&&!bs(s,i))return!0}return!1}function Hn(e,t,s){const o=e[s],n=t[s];return s==="style"&&V(o)&&V(n)?!Qt(o,n):o!==n}function lr({vnode:e,parent:t,suspense:s},o){for(;t;){const n=t.subTree;if(n.suspense&&n.suspense.activeBranch===e&&(n.suspense.vnode.el=n.el=o,e=n),n===e)(e=t.vnode).el=o,t=t.parent;else break}s&&s.activeBranch===e&&(s.vnode.el=o)}const Dn={},Fn=()=>Object.create(Dn),jn=e=>Object.getPrototypeOf(e)===Dn;function rr(e,t,s,o=!1){const n={},i=Fn();e.propsDefaults=Object.create(null),Vn(e,t,n,i);for(const l in e.propsOptions[0])l in n||(n[l]=void 0);s?e.props=o?n:fl(n):e.type.props?e.props=n:e.props=i,e.attrs=i}function ar(e,t,s,o){const{props:n,attrs:i,vnode:{patchFlag:l}}=e,r=F(n),[a]=e.propsOptions;let f=!1;if((o||l>0)&&!(l&16)){if(l&8){const p=e.vnode.dynamicProps;for(let h=0;h<p.length;h++){let y=p[h];if(bs(e.emitsOptions,y))continue;const S=t[y];if(a)if(D(i,y))S!==i[y]&&(i[y]=S,f=!0);else{const j=oe(y);n[j]=ao(a,r,j,S,e,!1)}else S!==i[y]&&(i[y]=S,f=!0)}}}else{Vn(e,t,n,i)&&(f=!0);let p;for(const h in r)(!t||!D(t,h)&&((p=be(h))===h||!D(t,p)))&&(a?s&&(s[h]!==void 0||s[p]!==void 0)&&(n[h]=ao(a,r,h,void 0,e,!0)):delete n[h]);if(i!==r)for(const h in i)(!t||!D(t,h))&&(delete i[h],f=!0)}f&&De(e.attrs,"set","")}function Vn(e,t,s,o){const[n,i]=e.propsOptions;let l=!1,r;if(t)for(let a in t){if(mt(a))continue;const f=t[a];let p;n&&D(n,p=oe(a))?!i||!i.includes(p)?s[p]=f:(r||(r={}))[p]=f:bs(e.emitsOptions,a)||(!(a in o)||f!==o[a])&&(o[a]=f,l=!0)}if(i){const a=F(s),f=r||U;for(let p=0;p<i.length;p++){const h=i[p];s[h]=ao(n,a,h,f[h],e,!D(f,h))}}return l}function ao(e,t,s,o,n,i){const l=e[s];if(l!=null){const r=D(l,"default");if(r&&o===void 0){const a=l.default;if(l.type!==Function&&!l.skipFactory&&R(a)){const{propsDefaults:f}=n;if(s in f)o=f[s];else{const p=Nt(n);o=f[s]=a.call(null,t),p()}}else o=a;n.ce&&n.ce._setProp(s,o)}l[0]&&(i&&!r?o=!1:l[1]&&(o===""||o===be(s))&&(o=!0))}return o}const cr=new WeakMap;function zn(e,t,s=!1){const o=s?cr:t.propsCache,n=o.get(e);if(n)return n;const i=e.props,l={},r=[];let a=!1;if(!R(e)){const p=h=>{a=!0;const[y,S]=zn(h,t,!0);Z(l,y),S&&r.push(...S)};!s&&t.mixins.length&&t.mixins.forEach(p),e.extends&&p(e.extends),e.mixins&&e.mixins.forEach(p)}if(!i&&!a)return V(e)&&o.set(e,it),it;if(A(i))for(let p=0;p<i.length;p++){const h=oe(i[p]);Kn(h)&&(l[h]=U)}else if(i)for(const p in i){const h=oe(p);if(Kn(h)){const y=i[p],S=l[h]=A(y)||R(y)?{type:y}:Z({},y),j=S.type;let N=!1,ee=!0;if(A(j))for(let Y=0;Y<j.length;++Y){const H=j[Y],z=R(H)&&H.name;if(z==="Boolean"){N=!0;break}else z==="String"&&(ee=!1)}else N=R(j)&&j.name==="Boolean";S[0]=N,S[1]=ee,(N||D(S,"default"))&&r.push(h)}}const f=[l,r];return V(e)&&o.set(e,f),f}function Kn(e){return e[0]!=="$"&&!mt(e)}const co=e=>e==="_"||e==="_ctx"||e==="$stable",po=e=>A(e)?e.map(Te):[Te(e)],dr=(e,t,s)=>{if(t._n)return t;const o=pt((...n)=>po(t(...n)),s);return o._c=!1,o},Un=(e,t,s)=>{const o=e._ctx;for(const n in e){if(co(n))continue;const i=e[n];if(R(i))t[n]=dr(n,i,o);else if(i!=null){const l=po(i);t[n]=()=>l}}},Bn=(e,t)=>{const s=po(t);e.slots.default=()=>s},Wn=(e,t,s)=>{for(const o in t)(s||!co(o))&&(e[o]=t[o])},pr=(e,t,s)=>{const o=e.slots=Fn();if(e.vnode.shapeFlag&32){const n=t._;n?(Wn(o,t,s),s&&Mo(o,"_",n,!0)):Un(t,o)}else t&&Bn(e,t)},fr=(e,t,s)=>{const{vnode:o,slots:n}=e;let i=!0,l=U;if(o.shapeFlag&32){const r=t._;r?s&&r===1?i=!1:Wn(n,t,s):(i=!t.$stable,Un(t,n)),l=t}else t&&(Bn(e,t),l={default:1});if(i)for(const r in n)!co(r)&&l[r]==null&&delete n[r]},ue=vr;function ur(e){return hr(e)}function hr(e,t){const s=Zt();s.__VUE__=!0;const{insert:o,remove:n,patchProp:i,createElement:l,createText:r,createComment:a,setText:f,setElementText:p,parentNode:h,nextSibling:y,setScopeId:S=$e,insertStaticContent:j}=e,N=(c,d,u,m=null,v=null,g=null,$=void 0,w=null,x=!!d.dynamicChildren)=>{if(c===d)return;c&&!Pt(c,d)&&(m=Ms(c),Pe(c,v,g,!0),c=null),d.patchFlag===-2&&(x=!1,d.dynamicChildren=null);const{type:b,ref:T,shapeFlag:_}=d;switch(b){case vs:ee(c,d,u,m);break;case Ce:Y(c,d,u,m);break;case uo:c==null&&H(d,u,m,$);break;case X:Ts(c,d,u,m,v,g,$,w,x);break;default:_&1?se(c,d,u,m,v,g,$,w,x):_&6?Os(c,d,u,m,v,g,$,w,x):(_&64||_&128)&&b.process(c,d,u,m,v,g,$,w,x,Kt)}T!=null&&v?Ct(T,c&&c.ref,g,d||c,!d):T==null&&c&&c.ref!=null&&Ct(c.ref,null,g,c,!0)},ee=(c,d,u,m)=>{if(c==null)o(d.el=r(d.children),u,m);else{const v=d.el=c.el;d.children!==c.children&&f(v,d.children)}},Y=(c,d,u,m)=>{c==null?o(d.el=a(d.children||""),u,m):d.el=c.el},H=(c,d,u,m)=>{[c.el,c.anchor]=j(c.children,d,u,m,c.el,c.anchor)},z=({el:c,anchor:d},u,m)=>{let v;for(;c&&c!==d;)v=y(c),o(c,u,m),c=v;o(d,u,m)},O=({el:c,anchor:d})=>{let u;for(;c&&c!==d;)u=y(c),n(c),c=u;n(d)},se=(c,d,u,m,v,g,$,w,x)=>{if(d.type==="svg"?$="svg":d.type==="math"&&($="mathml"),c==null)Ae(d,u,m,v,g,$,w,x);else{const b=c.el&&c.el._isVueCE?c.el:null;try{b&&b._beginPatch(),Cs(c,d,v,g,$,w,x)}finally{b&&b._endPatch()}}},Ae=(c,d,u,m,v,g,$,w)=>{let x,b;const{props:T,shapeFlag:_,transition:C,dirs:P}=c;if(x=c.el=l(c.type,g,T&&T.is,T),_&8?p(x,c.children):_&16&&Ye(c.children,x,null,m,v,fo(c,g),$,w),P&&et(c,null,m,"created"),Me(x,c,c.scopeId,$,m),T){for(const B in T)B!=="value"&&!mt(B)&&i(x,B,null,T[B],g,m);"value"in T&&i(x,"value",null,T.value,g),(b=T.onVnodeBeforeMount)&&Oe(b,m,c)}P&&et(c,null,m,"beforeMount");const I=gr(v,C);I&&C.beforeEnter(x),o(x,d,u),((b=T&&T.onVnodeMounted)||I||P)&&ue(()=>{try{b&&Oe(b,m,c),I&&C.enter(x),P&&et(c,null,m,"mounted")}finally{}},v)},Me=(c,d,u,m,v)=>{if(u&&S(c,u),m)for(let g=0;g<m.length;g++)S(c,m[g]);if(v){let g=v.subTree;if(d===g||Jn(g.type)&&(g.ssContent===d||g.ssFallback===d)){const $=v.vnode;Me(c,$,$.scopeId,$.slotScopeIds,v.parent)}}},Ye=(c,d,u,m,v,g,$,w,x=0)=>{for(let b=x;b<c.length;b++){const T=c[b]=w?Be(c[b]):Te(c[b]);N(null,T,d,u,m,v,g,$,w)}},Cs=(c,d,u,m,v,g,$)=>{const w=d.el=c.el;let{patchFlag:x,dynamicChildren:b,dirs:T}=d;x|=c.patchFlag&16;const _=c.props||U,C=d.props||U;let P;if(u&&tt(u,!1),(P=C.onVnodeBeforeUpdate)&&Oe(P,u,d,c),T&&et(d,c,u,"beforeUpdate"),u&&tt(u,!0),b&&(!c.dynamicChildren||c.dynamicChildren.length!==b.length)&&(x=0,$=!1,b=null),(_.innerHTML&&C.innerHTML==null||_.textContent&&C.textContent==null)&&p(w,""),b?st(c.dynamicChildren,b,w,u,m,fo(d,v),g):$||q(c,d,w,null,u,m,fo(d,v),g,!1),x>0){if(x&16)Vt(w,_,C,u,v);else if(x&2&&_.class!==C.class&&i(w,"class",null,C.class,v),x&4&&i(w,"style",_.style,C.style,v),x&8){const I=d.dynamicProps;for(let B=0;B<I.length;B++){const K=I[B],te=_[K],le=C[K];(le!==te||K==="value")&&i(w,K,te,le,v,u)}}x&1&&c.children!==d.children&&p(w,d.children)}else!$&&b==null&&Vt(w,_,C,u,v);((P=C.onVnodeUpdated)||T)&&ue(()=>{P&&Oe(P,u,d,c),T&&et(d,c,u,"updated")},m)},st=(c,d,u,m,v,g,$)=>{for(let w=0;w<d.length;w++){const x=c[w],b=d[w],T=x.el&&(x.type===X||!Pt(x,b)||x.shapeFlag&198)?h(x.el):u;N(x,b,T,null,m,v,g,$,!0)}},Vt=(c,d,u,m,v)=>{if(d!==u){if(d!==U)for(const g in d)!mt(g)&&!(g in u)&&i(c,g,d[g],null,v,m);for(const g in u){if(mt(g))continue;const $=u[g],w=d[g];$!==w&&g!=="value"&&i(c,g,w,$,v,m)}"value"in u&&i(c,"value",d.value,u.value,v)}},Ts=(c,d,u,m,v,g,$,w,x)=>{const b=d.el=c?c.el:r(""),T=d.anchor=c?c.anchor:r("");let{patchFlag:_,dynamicChildren:C,slotScopeIds:P}=d;P&&(w=w?w.concat(P):P),c==null?(o(b,u,m),o(T,u,m),Ye(d.children||[],u,T,v,g,$,w,x)):_>0&&_&64&&C&&c.dynamicChildren&&c.dynamicChildren.length===C.length?(st(c.dynamicChildren,C,u,v,g,$,w),(d.key!=null||v&&d===v.subTree)&&qn(c,d,!0)):q(c,d,u,T,v,g,$,w,x)},Os=(c,d,u,m,v,g,$,w,x)=>{d.slotScopeIds=w,c==null?d.shapeFlag&512?v.ctx.activate(d,u,m,$,x):Eo(d,u,m,v,g,$,x):Ai(c,d,x)},Eo=(c,d,u,m,v,g,$)=>{const w=c.component=_r(c,m,v);if(oo(c)&&(w.ctx.renderer=Kt),Sr(w,!1,$),w.asyncDep){if(v&&v.registerDep(w,fe,$),!c.el){const x=w.subTree=ve(Ce);Y(null,x,d,u),c.placeholder=x.el}}else fe(w,c,d,u,v,g,$)},Ai=(c,d,u)=>{const m=d.component=c.component;if(ir(c,d,u))if(m.asyncDep&&!m.asyncResolved){J(m,d,u);return}else m.next=d,m.update();else d.el=c.el,m.vnode=d},fe=(c,d,u,m,v,g,$)=>{const w=()=>{if(c.isMounted){let{next:_,bu:C,u:P,parent:I,vnode:B}=c;{const Ne=Gn(c);if(Ne){_&&(_.el=B.el,J(c,_,$)),Ne.asyncDep.then(()=>{ue(()=>{c.isUnmounted||b()},v)});return}}let K=_,te;tt(c,!1),_?(_.el=B.el,J(c,_,$)):_=B,C&&Jt(C),(te=_.props&&_.props.onVnodeBeforeUpdate)&&Oe(te,I,_,B),tt(c,!0);const le=Nn(c),Re=c.subTree;c.subTree=le,N(Re,le,h(Re.el),Ms(Re),c,v,g),_.el=le.el,K===null&&lr(c,le.el),P&&ue(P,v),(te=_.props&&_.props.onVnodeUpdated)&&ue(()=>Oe(te,I,_,B),v)}else{let _;const{el:C,props:P}=d,{bm:I,m:B,parent:K,root:te,type:le}=c,Re=ft(d);tt(c,!1),I&&Jt(I),!Re&&(_=P&&P.onVnodeBeforeMount)&&Oe(_,K,d),tt(c,!0);{te.ce&&te.ce._hasShadowRoot()&&te.ce._injectChildStyle(le,c.parent?c.parent.type:void 0);const Ne=c.subTree=Nn(c);N(null,Ne,u,m,c,v,g),d.el=Ne.el}if(B&&ue(B,v),!Re&&(_=P&&P.onVnodeMounted)){const Ne=d;ue(()=>Oe(_,K,Ne),v)}(d.shapeFlag&256||K&&ft(K.vnode)&&K.vnode.shapeFlag&256)&&c.a&&ue(c.a,v),c.isMounted=!0,d=u=m=null}};c.scope.on();const x=c.effect=new Fo(w);c.scope.off();const b=c.update=x.run.bind(x),T=c.job=x.runIfDirty.bind(x);T.i=c,T.id=c.uid,x.scheduler=()=>Qs(T),tt(c,!0),b()},J=(c,d,u)=>{d.component=c;const m=c.vnode.props;c.vnode=d,c.next=null,ar(c,d.props,m,u),fr(c,d.children,u),Se(),pn(c),Le()},q=(c,d,u,m,v,g,$,w,x=!1)=>{const b=c&&c.children,T=c?c.shapeFlag:0,_=d.children,{patchFlag:C,shapeFlag:P}=d;if(C>0){if(C&128){As(b,_,u,m,v,g,$,w,x);return}else if(C&256){ot(b,_,u,m,v,g,$,w,x);return}}P&8?(T&16&&zt(b,v,g),_!==b&&p(u,_)):T&16?P&16?As(b,_,u,m,v,g,$,w,x):zt(b,v,g,!0):(T&8&&p(u,""),P&16&&Ye(_,u,m,v,g,$,w,x))},ot=(c,d,u,m,v,g,$,w,x)=>{c=c||it,d=d||it;const b=c.length,T=d.length,_=Math.min(b,T);let C;for(C=0;C<_;C++){const P=d[C]=x?Be(d[C]):Te(d[C]);N(c[C],P,u,null,v,g,$,w,x)}b>T?zt(c,v,g,!0,!1,_):Ye(d,u,m,v,g,$,w,x,_)},As=(c,d,u,m,v,g,$,w,x)=>{let b=0;const T=d.length;let _=c.length-1,C=T-1;for(;b<=_&&b<=C;){const P=c[b],I=d[b]=x?Be(d[b]):Te(d[b]);if(Pt(P,I))N(P,I,u,null,v,g,$,w,x);else break;b++}for(;b<=_&&b<=C;){const P=c[_],I=d[C]=x?Be(d[C]):Te(d[C]);if(Pt(P,I))N(P,I,u,null,v,g,$,w,x);else break;_--,C--}if(b>_){if(b<=C){const P=C+1,I=P<T?d[P].el:m;for(;b<=C;)N(null,d[b]=x?Be(d[b]):Te(d[b]),u,I,v,g,$,w,x),b++}}else if(b>C)for(;b<=_;)Pe(c[b],v,g,!0),b++;else{const P=b,I=b,B=new Map;for(b=I;b<=C;b++){const ge=d[b]=x?Be(d[b]):Te(d[b]);ge.key!=null&&B.set(ge.key,b)}let K,te=0;const le=C-I+1;let Re=!1,Ne=0;const Ut=new Array(le);for(b=0;b<le;b++)Ut[b]=0;for(b=P;b<=_;b++){const ge=c[b];if(te>=le){Pe(ge,v,g,!0);continue}let Ie;if(ge.key!=null)Ie=B.get(ge.key);else for(K=I;K<=C;K++)if(Ut[K-I]===0&&Pt(ge,d[K])){Ie=K;break}Ie===void 0?Pe(ge,v,g,!0):(Ut[Ie-I]=b+1,Ie>=Ne?Ne=Ie:Re=!0,N(ge,d[Ie],u,null,v,g,$,w,x),te++)}const Ri=Re?br(Ut):it;for(K=Ri.length-1,b=le-1;b>=0;b--){const ge=I+b,Ie=d[ge],Ni=d[ge+1],Ii=ge+1<T?Ni.el||Yn(Ni):m;Ut[b]===0?N(null,Ie,u,Ii,v,g,$,w,x):Re&&(K<0||b!==Ri[K]?nt(Ie,u,Ii,2):K--)}}},nt=(c,d,u,m,v=null)=>{const{el:g,type:$,transition:w,children:x,shapeFlag:b}=c;if(b&6){nt(c.component.subTree,d,u,m);return}if(b&128){c.suspense.move(d,u,m);return}if(b&64){$.move(c,d,u,Kt);return}if($===X){o(g,d,u);for(let _=0;_<x.length;_++)nt(x[_],d,u,m);o(c.anchor,d,u);return}if($===uo){z(c,d,u);return}if(m!==2&&b&1&&w)if(m===0)w.persisted&&!g[to]?o(g,d,u):(w.beforeEnter(g),o(g,d,u),ue(()=>w.enter(g),v));else{const{leave:_,delayLeave:C,afterLeave:P}=w,I=()=>{c.ctx.isUnmounted?n(g):o(g,d,u)},B=()=>{const K=g._isLeaving||!!g[to];g._isLeaving&&g[to](!0),w.persisted&&!K?I():_(g,()=>{I(),P&&P()})};C?C(g,I,B):B()}else o(g,d,u)},Pe=(c,d,u,m=!1,v=!1)=>{const{type:g,props:$,ref:w,children:x,dynamicChildren:b,shapeFlag:T,patchFlag:_,dirs:C,cacheIndex:P,memo:I}=c;if(_===-2&&(v=!1),w!=null&&(Se(),Ct(w,null,u,c,!0),Le()),P!=null&&(d.renderCache[P]=void 0),T&256){d.ctx.deactivate(c);return}const B=T&1&&C,K=!ft(c);let te;if(K&&(te=$&&$.onVnodeBeforeUnmount)&&Oe(te,d,c),T&6)jd(c.component,u,m);else{if(T&128){c.suspense.unmount(u,m);return}B&&et(c,null,d,"beforeUnmount"),T&64?c.type.remove(c,d,u,Kt,m):b&&!b.hasOnce&&(g!==X||_>0&&_&64)?zt(b,d,u,!1,!0):(g===X&&_&384||!v&&T&16)&&zt(x,d,u),m&&Mi(c)}const le=I!=null&&P==null;(K&&(te=$&&$.onVnodeUnmounted)||B||le)&&ue(()=>{te&&Oe(te,d,c),B&&et(c,null,d,"unmounted"),le&&(c.el=null)},u)},Mi=c=>{const{type:d,el:u,anchor:m,transition:v}=c;if(d===X){Fd(u,m);return}if(d===uo){O(c);return}const g=()=>{n(u),v&&!v.persisted&&v.afterLeave&&v.afterLeave()};if(c.shapeFlag&1&&v&&!v.persisted){const{leave:$,delayLeave:w}=v,x=()=>$(u,g);w?w(c.el,g,x):x()}else g()},Fd=(c,d)=>{let u;for(;c!==d;)u=y(c),n(c),c=u;n(d)},jd=(c,d,u)=>{const{bum:m,scope:v,job:g,subTree:$,um:w,m:x,a:b}=c;Xn(x),Xn(b),m&&Jt(m),v.stop(),g&&(g.flags|=8,Pe($,c,d,u)),w&&ue(w,d),ue(()=>{c.isUnmounted=!0},d)},zt=(c,d,u,m=!1,v=!1,g=0)=>{for(let $=g;$<c.length;$++)Pe(c[$],d,u,m,v)},Ms=c=>{if(c.shapeFlag&6)return Ms(c.component.subTree);if(c.shapeFlag&128)return c.suspense.next();const d=y(c.anchor||c.el),u=d&&d[Ol];return u?y(u):d};let ko=!1;const Pi=(c,d,u)=>{let m;c==null?d._vnode&&(Pe(d._vnode,null,null,!0),m=d._vnode.component):N(d._vnode||null,c,d,null,null,null,u),d._vnode=c,ko||(ko=!0,pn(m),fn(),ko=!1)},Kt={p:N,um:Pe,m:nt,r:Mi,mt:Eo,mc:Ye,pc:q,pbc:st,n:Ms,o:e};return{render:Pi,hydrate:void 0,createApp:Ql(Pi)}}function fo({type:e,props:t},s){return s==="svg"&&e==="foreignObject"||s==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:s}function tt({effect:e,job:t},s){s?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function gr(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function qn(e,t,s=!1){const o=e.children,n=t.children;if(A(o)&&A(n))for(let i=0;i<o.length;i++){const l=o[i];let r=n[i];r.shapeFlag&1&&!r.dynamicChildren&&((r.patchFlag<=0||r.patchFlag===32)&&(r=n[i]=Be(n[i]),r.el=l.el),!s&&r.patchFlag!==-2&&qn(l,r)),r.type===vs&&(r.patchFlag===-1&&(r=n[i]=Be(r)),r.el=l.el),r.type===Ce&&!r.el&&(r.el=l.el)}}function br(e){const t=e.slice(),s=[0];let o,n,i,l,r;const a=e.length;for(o=0;o<a;o++){const f=e[o];if(f!==0){if(n=s[s.length-1],e[n]<f){t[o]=n,s.push(o);continue}for(i=0,l=s.length-1;i<l;)r=i+l>>1,e[s[r]]<f?i=r+1:l=r;f<e[s[i]]&&(i>0&&(t[o]=s[i-1]),s[i]=o)}}for(i=s.length,l=s[i-1];i-- >0;)s[i]=l,l=t[l];return s}function Gn(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Gn(t)}function Xn(e){if(e)for(let t=0;t<e.length;t++)e[t].flags|=8}function Yn(e){if(e.placeholder)return e.placeholder;const t=e.component;return t?Yn(t.subTree):null}const Jn=e=>e.__isSuspense;function vr(e,t){t&&t.pendingBranch?A(e)?t.effects.push(...e):t.effects.push(e):Ll(e)}const X=Symbol.for("v-fgt"),vs=Symbol.for("v-txt"),Ce=Symbol.for("v-cmt"),uo=Symbol.for("v-stc"),Ue=[];let he=null;function E(e=!1){Ue.push(he=e?null:[])}function ho(){Ue.pop(),he=Ue[Ue.length-1]||null}let Mt=1;function Zn(e,t=!1){Mt+=e,e<0&&he&&t&&(he.hasOnce=!0)}function Qn(e){return e.dynamicChildren=Mt>0?he||it:null,ho(),Mt>0&&he&&he.push(e),e}function k(e,t,s,o,n,i){return Qn(L(e,t,s,o,n,i,!0))}function ms(e,t,s,o,n){return Qn(ve(e,t,s,o,n,!0))}function go(e){return e?e.__v_isVNode===!0:!1}function Pt(e,t){return e.type===t.type&&e.key===t.key}const ei=({key:e})=>e??null,xs=({ref:e,ref_key:t,ref_for:s})=>(typeof e=="number"&&(e=""+e),e!=null?G(e)||ae(e)||R(e)?{i:ie,r:e,k:t,f:!!s}:e:null);function L(e,t=null,s=null,o=0,n=null,i=e===X?0:1,l=!1,r=!1){const a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&ei(t),ref:t&&xs(t),scopeId:hn,slotScopeIds:null,children:s,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:o,dynamicProps:n,dynamicChildren:null,appContext:null,ctx:ie};return r?(ys(a,s),i&128&&e.normalize(a)):s&&(a.shapeFlag|=G(s)?8:16),Mt>0&&!l&&he&&(a.patchFlag>0||i&6)&&a.patchFlag!==32&&he.push(a),a}const ve=mr;function mr(e,t=null,s=null,o=0,n=null,i=!1){if((!e||e===Ul)&&(e=Ce),go(e)){const r=ht(e,t,!0);return s&&ys(r,s),Mt>0&&!i&&he&&(r.shapeFlag&6?he[he.indexOf(e)]=r:he.push(r)),r.patchFlag=-2,r}if(Or(e)&&(e=e.__vccOpts),t){t=xr(t);let{class:r,style:a}=t;r&&!G(r)&&(t.class=_e(r)),V(a)&&(Js(a)&&!A(a)&&(a=Z({},a)),t.style=xt(a))}const l=G(e)?1:Jn(e)?128:ps(e)?64:V(e)?4:R(e)?2:0;return L(e,t,s,o,n,l,i,!0)}function xr(e){return e?Js(e)||jn(e)?Z({},e):e:null}function ht(e,t,s=!1,o=!1){const{props:n,ref:i,patchFlag:l,children:r,transition:a}=e,f=t?yr(n||{},t):n,p={__v_isVNode:!0,__v_skip:!0,type:e.type,props:f,key:f&&ei(f),ref:t&&t.ref?s&&i?A(i)?i.concat(xs(t)):[i,xs(t)]:xs(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:r,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==X?l===-1?16:l|16:l,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:a,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&ht(e.ssContent),ssFallback:e.ssFallback&&ht(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return a&&o&&so(p,a.clone(p)),p}function gt(e=" ",t=0){return ve(vs,null,e,t)}function Q(e="",t=!1){return t?(E(),ms(Ce,null,e)):ve(Ce,null,e)}function Te(e){return e==null||typeof e=="boolean"?ve(Ce):A(e)?ve(X,null,e.slice()):go(e)?Be(e):ve(vs,null,String(e))}function Be(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:ht(e)}function ys(e,t){let s=0;const{shapeFlag:o}=e;if(t==null)t=null;else if(A(t))s=16;else if(typeof t=="object")if(o&65){const n=t.default;n&&(n._c&&(n._d=!1),ys(e,n()),n._c&&(n._d=!0));return}else{s=32;const n=t._;!n&&!jn(t)?t._ctx=ie:n===3&&ie&&(ie.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(R(t)){if(o&65){ys(e,{default:t});return}t={default:t,_ctx:ie},s=32}else t=String(t),o&64?(s=16,t=[gt(t)]):s=8;e.children=t,e.shapeFlag|=s}function yr(...e){const t={};for(let s=0;s<e.length;s++){const o=e[s];for(const n in o)if(n==="class")t.class!==o.class&&(t.class=_e([t.class,o.class]));else if(n==="style")t.style=xt([t.style,o.style]);else if(Bt(n)){const i=t[n],l=o[n];l&&i!==l&&!(A(i)&&i.includes(l))?t[n]=i?[].concat(i,l):l:l==null&&i==null&&!Wt(n)&&(t[n]=l)}else n!==""&&(t[n]=o[n])}return t}function Oe(e,t,s,o=null){we(e,t,7,[s,o])}const wr=Pn();let $r=0;function _r(e,t,s){const o=e.type,n=(t?t.appContext:e.appContext)||wr,i={uid:$r++,vnode:e,type:o,parent:t,appContext:n,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new qi(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(n.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:zn(o,n),emitsOptions:Rn(o,n),emit:null,emitted:null,propsDefaults:U,inheritAttrs:o.inheritAttrs,ctx:U,data:U,props:U,attrs:U,slots:U,refs:U,setupState:U,setupContext:null,suspense:s,suspenseId:s?s.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,bc:null,c:null,bm:null,m:null,bu:null,u:null,um:null,bum:null,da:null,a:null,rtg:null,rtc:null,ec:null,sp:null};return i.ctx={_:i},i.root=t?t.root:i,i.emit=tr.bind(null,i),e.ce&&e.ce(i),i}let ce=null;const ti=()=>ce||ie;let ws,Rt;{const e=Zt(),t=(s,o)=>{let n;return(n=e[s])||(n=e[s]=[]),n.push(o),i=>{n.length>1?n.forEach(l=>l(i)):n[0](i)}};ws=t("__VUE_INSTANCE_SETTERS__",s=>ce=s),Rt=t("__VUE_SSR_SETTERS__",s=>It=s)}const Nt=e=>{const t=ce;return ws(e),e.scope.on(),()=>{e.scope.off(),ws(t)}},si=()=>{ce&&ce.scope.off(),ws(null)};function oi(e){return e.vnode.shapeFlag&4}let It=!1;function Sr(e,t=!1,s=!1){t&&Rt(t);const{props:o,children:n}=e.vnode,i=oi(e);rr(e,o,i,t),pr(e,n,s||t);const l=i?Lr(e,t):void 0;return t&&Rt(!1),l}function Lr(e,t){const s=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Wl);const{setup:o}=s;if(o){Se();const n=e.setupContext=o.length>1?kr(e):null,i=Nt(e),l=at(o,e,0,[e.props,n]),r=Oo(l);if(Le(),i(),(r||e.sp)&&!ft(e)&&mn(e),r){if(l.then(si,si),t)return l.then(a=>{Rt(!0);try{ni(e,a,t)}finally{Rt(!1)}}).catch(a=>{rs(a,e,0)});e.asyncDep=l}else ni(e,l)}else ii(e)}function ni(e,t,s){R(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:V(t)&&(e.setupState=ln(t)),ii(e)}function ii(e,t,s){const o=e.type;e.render||(e.render=o.render||$e);{const n=Nt(e);Se();try{ql(e)}finally{Le(),n()}}}const Er={get(e,t){return re(e,"get",""),e[t]}};function kr(e){const t=s=>{e.exposed=s||{}};return{attrs:new Proxy(e.attrs,Er),slots:e.slots,emit:e.emit,expose:t}}function $s(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(ln(ul(e.exposed)),{get(t,s){if(s in t)return t[s];if(s in Ot)return Ot[s](e)},has(t,s){return s in t||s in Ot}})):e.proxy}const Cr=/(?:^|[-_])\w/g,Tr=e=>e.replace(Cr,t=>t.toUpperCase()).replace(/[-_]/g,"");function li(e,t=!0){return R(e)?e.displayName||e.name:e.name||t&&e.__name}function ri(e,t,s=!1){let o=li(t);if(!o&&t.__file){const n=t.__file.match(/([^/\\]+)\.\w+$/);n&&(o=n[1])}if(!o&&e){const n=i=>{for(const l in i)if(i[l]===t)return l};o=n(e.components)||e.parent&&n(e.parent.type.components)||n(e.appContext.components)}return o?Tr(o):s?"App":"Anonymous"}function Or(e){return R(e)&&"__vccOpts"in e}const Ar=(e,t)=>bl(e,t,It),Mr="3.5.42";/**
|
||
* @vue/runtime-dom v3.5.42
|
||
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
||
* @license MIT
|
||
**/let bo;const ai=typeof window<"u"&&window.trustedTypes;if(ai)try{bo=ai.createPolicy("vue",{createHTML:e=>e})}catch{}const ci=bo?e=>bo.createHTML(e):e=>e,Pr="http://www.w3.org/2000/svg",Rr="http://www.w3.org/1998/Math/MathML",We=typeof document<"u"?document:null,di=We&&We.createElement("template"),Nr={insert:(e,t,s)=>{t.insertBefore(e,s||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,s,o)=>{const n=t==="svg"?We.createElementNS(Pr,e):t==="mathml"?We.createElementNS(Rr,e):s?We.createElement(e,{is:s}):We.createElement(e);return e==="select"&&o&&o.multiple!=null&&n.setAttribute("multiple",o.multiple),n},createText:e=>We.createTextNode(e),createComment:e=>We.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>We.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,s,o,n,i){const l=s?s.previousSibling:t.lastChild;if(n&&(n===i||n.nextSibling))for(;t.insertBefore(n.cloneNode(!0),s),!(n===i||!(n=n.nextSibling)););else{di.innerHTML=ci(o==="svg"?`<svg>${e}</svg>`:o==="mathml"?`<math>${e}</math>`:e);const r=di.content;if(o==="svg"||o==="mathml"){const a=r.firstChild;for(;a.firstChild;)r.appendChild(a.firstChild);r.removeChild(a)}t.insertBefore(r,s)}return[l?l.nextSibling:t.firstChild,s?s.previousSibling:t.lastChild]}},Ir=Symbol("_vtc");function Hr(e,t,s){const o=e[Ir];o&&(t=(t?[t,...o]:[...o]).join(" ")),t==null?e.removeAttribute("class"):s?e.setAttribute("class",t):e.className=t}const _s=Symbol("_vod"),pi=Symbol("_vsh"),vo={name:"show",beforeMount(e,{value:t},{transition:s}){e[_s]=e.style.display==="none"?"":e.style.display,s&&t?s.beforeEnter(e):Ht(e,t)},mounted(e,{value:t},{transition:s}){s&&t&&s.enter(e)},updated(e,{value:t,oldValue:s},{transition:o}){!t!=!s&&(o?t?(o.beforeEnter(e),Ht(e,!0),o.enter(e)):o.leave(e,()=>{Ht(e,!1)}):Ht(e,t))},beforeUnmount(e,{value:t}){Ht(e,t)}};function Ht(e,t){e.style.display=t?e[_s]:"none",e[pi]=!t}const Dr=Symbol(""),Fr=/(?:^|;)\s*display\s*:/;function jr(e,t,s){const o=e.style,n=G(s);let i=!1;if(s&&!n){if(t)if(G(t))for(const l of t.split(";")){const r=l.slice(0,l.indexOf(":")).trim();s[r]==null&&Dt(o,r,"")}else for(const l in t)s[l]==null&&Dt(o,l,"");for(const l in s){l==="display"&&(i=!0);const r=s[l];r!=null?zr(e,l,!G(t)&&t?t[l]:void 0,r)||Dt(o,l,r):Dt(o,l,"")}}else if(n){if(t!==s){const l=o[Dr];l&&(s+=";"+l),o.cssText=s,i=Fr.test(s)}}else t&&e.removeAttribute("style");_s in e&&(e[_s]=i?o.display:"",e[pi]&&(o.display="none"))}const Ss=/\s*!important$/;function Dt(e,t,s){if(A(s))s.forEach(o=>Dt(e,t,o));else if(s==null&&(s=""),t.startsWith("--"))Ss.test(s)?e.setProperty(t,s.replace(Ss,""),"important"):e.setProperty(t,s);else{const o=Vr(e,t);Ss.test(s)?e.setProperty(be(o),s.replace(Ss,""),"important"):e[o]=s}}const fi=["Webkit","Moz","ms"],mo={};function Vr(e,t){const s=mo[t];if(s)return s;let o=oe(t);if(o!=="filter"&&o in e)return mo[t]=o;o=Yt(o);for(let n=0;n<fi.length;n++){const i=fi[n]+o;if(i in e)return mo[t]=i}return t}function zr(e,t,s,o){return e.tagName==="TEXTAREA"&&(t==="width"||t==="height")&&G(o)&&s===o}const ui="http://www.w3.org/1999/xlink";function hi(e,t,s,o,n,i=Bi(t)){o&&t.startsWith("xlink:")?s==null?e.removeAttributeNS(ui,t.slice(6,t.length)):e.setAttributeNS(ui,t,s):s==null||i&&!No(s)?e.removeAttribute(t):e.setAttribute(t,i?"":me(s)?String(s):s)}function gi(e,t,s,o,n){if(t==="innerHTML"||t==="textContent"){s!=null&&(e[t]=t==="innerHTML"?ci(s):s);return}const i=e.tagName;if(t==="value"&&i!=="PROGRESS"&&!i.includes("-")){const r=i==="OPTION"?e.getAttribute("value")||"":e.value,a=s==null?e.type==="checkbox"?"on":"":String(s);(r!==a||!("_value"in e))&&(e.value=a),s==null&&e.removeAttribute(t),e._value=s;return}let l=!1;if(s===""||s==null){const r=typeof e[t];r==="boolean"?s=No(s):s==null&&r==="string"?(s="",l=!0):r==="number"&&(s=0,l=!0)}try{e[t]=s}catch{}l&&e.removeAttribute(n||t)}function bt(e,t,s,o){e.addEventListener(t,s,o)}function Kr(e,t,s,o){e.removeEventListener(t,s,o)}const bi=Symbol("_vei");function Ur(e,t,s,o,n=null){const i=e[bi]||(e[bi]={}),l=i[t];if(o&&l)l.value=o;else{const[r,a]=qr(t);if(o){const f=i[t]=Yr(o,n);bt(e,r,f,a)}else l&&(Kr(e,r,l,a),i[t]=void 0)}}const Br=/(Once|Passive|Capture)$/,Wr=/^on:?(?:Once|Passive|Capture)$/;function qr(e){let t,s;for(;(s=e.match(Br))&&!Wr.test(e);)t||(t={}),e=e.slice(0,e.length-s[1].length),t[s[1].toLowerCase()]=!0;return[e[2]===":"?e.slice(3):be(e.slice(2)),t]}let xo=0;const Gr=Promise.resolve(),Xr=()=>xo||(Gr.then(()=>xo=0),xo=Date.now());function Yr(e,t){const s=o=>{if(!o._vts)o._vts=Date.now();else if(o._vts<=s.attached)return;const n=s.value;if(A(n)){const i=o.stopImmediatePropagation;o.stopImmediatePropagation=()=>{i.call(o),o._stopped=!0};const l=n.slice(),r=[o];for(let a=0;a<l.length&&!o._stopped;a++){const f=l[a];f&&we(f,t,5,r)}}else we(n,t,5,[o])};return s.value=e,s.attached=Xr(),s}const vi=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Jr=(e,t,s,o,n,i)=>{const l=n==="svg";t==="class"?Hr(e,o,l):t==="style"?jr(e,s,o):Bt(t)?Wt(t)||Ur(e,t,s,o,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Zr(e,t,o,l))?(gi(e,t,o),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&hi(e,t,o,l,i,t!=="value")):e._isVueCE&&(Qr(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!G(o)))?gi(e,oe(t),o,i,t):(t==="true-value"?e._trueValue=o:t==="false-value"&&(e._falseValue=o),hi(e,t,o,l))};function Zr(e,t,s,o){if(o)return!!(t==="innerHTML"||t==="textContent"||t in e&&vi(t)&&R(s));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const n=e.tagName;if(n==="IMG"||n==="VIDEO"||n==="CANVAS"||n==="SOURCE")return!1}return vi(t)&&G(s)?!1:t in e}function Qr(e,t){const s=e._def.props;if(!s)return!1;const o=oe(t);return Array.isArray(s)?s.some(n=>oe(n)===o):Object.keys(s).some(n=>oe(n)===o)}const mi={};function ea(e,t,s){let o=fs(e,t);Gt(o)&&(o=Z({},o,t));class n extends yo{constructor(l){super(o,l,s)}}return n.def=o,n}const ta=typeof HTMLElement<"u"?HTMLElement:class{};class yo extends ta{constructor(t,s={},o=_i){super(),this._def=t,this._props=s,this._createApp=o,this._isVueCE=!0,this._instance=null,this._app=null,this._nonce=this._def.nonce,this._connected=!1,this._resolved=!1,this._patching=!1,this._dirty=!1,this._numberProps=null,this._styleChildren=new WeakSet,this._styleAnchors=new WeakMap,this._ob=null,this.shadowRoot&&o!==_i?this._root=this.shadowRoot:t.shadowRoot!==!1?(this.attachShadow(Z({},t.shadowRootOptions,{mode:"open"})),this._root=this.shadowRoot):this._root=this}connectedCallback(){if(!this.isConnected)return;!this.shadowRoot&&!this._resolved&&this._parseSlots(),this._connected=!0;let t=this;for(;t=t&&(t.assignedSlot||t.parentNode||t.host);)if(t instanceof yo){this._parent=t;break}this._instance||(this._resolved?this._mount(this._def):t&&t._pendingResolve?this._pendingResolve=t._pendingResolve.then(()=>{if(this._pendingResolve=void 0,this.isConnected)return this._resolveDef()}):this._resolveDef())}_setParent(t=this._parent){t&&(this._instance.parent=t._instance,this._inheritParentContext(t))}_inheritParentContext(t=this._parent){t&&this._app&&Object.setPrototypeOf(this._app._context.provides,t._instance.provides)}disconnectedCallback(){this._connected=!1,cn(()=>{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,this._teleportTargets&&(this._teleportTargets.clear(),this._teleportTargets=void 0))})}_processMutations(t){for(const s of t)this._setAttr(s.attributeName)}_resolveDef(){if(this._pendingResolve)return this._pendingResolve;for(let o=0;o<this.attributes.length;o++)this._setAttr(this.attributes[o].name);this._ob=new MutationObserver(this._processMutations.bind(this)),this._ob.observe(this,{attributes:!0});const t=(o,n=!1)=>{this._resolved=!0,this._pendingResolve=void 0;const{props:i,styles:l}=o;let r;if(i&&!A(i))for(const a in i){const f=i[a];(f===Number||f&&f.type===Number)&&(a in this._props&&(this._props[a]=Po(this._props[a])),(r||(r=Object.create(null)))[oe(a)]=!0)}this._numberProps=r,this._resolveProps(o),this.shadowRoot&&this._applyStyles(l),this._mount(o)},s=this._def.__asyncLoader;if(s)return this._pendingResolve=s().then(o=>{o.configureApp=this._def.configureApp,t(this._def=o,!0)}),this._pendingResolve;t(this._def)}_mount(t){this._app=this._createApp(t),this._inheritParentContext(),t.configureApp&&t.configureApp(this._app),this._app._ceVNode=this._createVNode(),this._app.mount(this._root);const s=this._instance&&this._instance.exposed;if(s)for(const o in s)D(this,o)||Object.defineProperty(this,o,{get:()=>nn(s[o])})}_resolveProps(t){const{props:s}=t,o=A(s)?s:Object.keys(s||{});for(const n of Object.keys(this))n[0]!=="_"&&o.includes(n)&&this._setProp(n,this[n]);for(const n of o.map(oe))Object.defineProperty(this,n,{get(){return this._getProp(n)},set(i){this._setProp(n,i,!0,!this._patching)}})}_setAttr(t){if(t.startsWith("data-v-"))return;const s=this.hasAttribute(t);let o=s?this.getAttribute(t):mi;const n=oe(t);s&&this._numberProps&&this._numberProps[n]&&(o=Po(o)),this._setProp(n,o,!1,!0)}_getProp(t){return this._props[t]}_setProp(t,s,o=!0,n=!1){if(s!==this._props[t]&&(this._dirty=!0,s===mi?delete this._props[t]:(this._props[t]=s,t==="key"&&this._app&&(this._app._ceVNode.key=s)),n&&this._instance&&this._update(),o)){const i=this._ob;i&&(this._processMutations(i.takeRecords()),i.disconnect()),s===!0?this.setAttribute(be(t),""):typeof s=="string"||typeof s=="number"?this.setAttribute(be(t),s+""):s||this.removeAttribute(be(t)),i&&i.observe(this,{attributes:!0})}}_update(){const t=this._createVNode();this._app&&(t.appContext=this._app._context),aa(t,this._root)}_createVNode(){const t={};this.shadowRoot||(t.onVnodeMounted=t.onVnodeUpdated=this._renderSlots.bind(this));const s=ve(this._def,Z(t,this._props));return this._instance||(s.ce=o=>{this._instance=o,o.ce=this,o.isCE=!0;const n=(i,l)=>{this.dispatchEvent(new CustomEvent(i,Gt(l[0])?Z({detail:l},l[0]):{detail:l}))};o.emit=(i,...l)=>{n(i,l),be(i)!==i&&n(be(i),l)},this._setParent()}),s}_applyStyles(t,s,o){if(!t)return;if(s){if(s===this._def||this._styleChildren.has(s))return;this._styleChildren.add(s)}const n=this._nonce,i=this.shadowRoot,l=o?this._getStyleAnchor(o)||this._getStyleAnchor(this._def):this._getRootStyleInsertionAnchor(i);let r=null;for(let a=t.length-1;a>=0;a--){const f=document.createElement("style");n&&f.setAttribute("nonce",n),f.textContent=t[a],i.insertBefore(f,r||l),r=f,a===0&&(o||this._styleAnchors.set(this._def,f),s&&this._styleAnchors.set(s,f))}}_getStyleAnchor(t){if(!t)return null;const s=this._styleAnchors.get(t);return s&&s.parentNode===this.shadowRoot?s:(s&&this._styleAnchors.delete(t),null)}_getRootStyleInsertionAnchor(t){for(let s=0;s<t.childNodes.length;s++){const o=t.childNodes[s];if(!(o instanceof HTMLStyleElement))return o}return null}_parseSlots(){const t=this._slots={};let s;for(;s=this.firstChild;){const o=s.nodeType===1&&s.getAttribute("slot")||"default";(t[o]||(t[o]=[])).push(s),this.removeChild(s)}}_renderSlots(){const t=this._getSlots(),s=this._instance.type.__scopeId;for(let o=0;o<t.length;o++){const n=t[o],i=n.getAttribute("name")||"default",l=this._slots[i],r=n.parentNode;if(l)for(const a of l){if(s&&a.nodeType===1){const f=s+"-s",p=document.createTreeWalker(a,1);a.setAttribute(f,"");let h;for(;h=p.nextNode();)h.setAttribute(f,"")}r.insertBefore(a,n)}else for(;n.firstChild;)r.insertBefore(n.firstChild,n);r.removeChild(n)}}_getSlots(){const t=[this];this._teleportTargets&&t.push(...this._teleportTargets);const s=new Set;for(const o of t){const n=o.querySelectorAll("slot");for(let i=0;i<n.length;i++)s.add(n[i])}return Array.from(s)}_injectChildStyle(t,s){this._applyStyles(t.styles,t,s)}_beginPatch(){this._patching=!0,this._dirty=!1}_endPatch(){this._patching=!1,this._dirty&&this._instance&&this._update()}_hasShadowRoot(){return this._def.shadowRoot!==!1}_removeChildStyle(t){}}const xi=e=>{const t=e.props["onUpdate:modelValue"]||!1;return A(t)?s=>Jt(t,s):t};function sa(e){e.target.composing=!0}function yi(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Ls=Symbol("_assign"),Es=Symbol("_initialValue");function wo(e,t,s){return t&&(e=e.trim()),s&&(e=Hs(e)),e}const oa={created(e,{modifiers:{lazy:t,trim:s,number:o}},n){e.parentNode&&(e.type==="text"?e[Es]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[Es]=e.defaultValue.replace(/\r\n?/g,`
|
||
`))),e[Ls]=xi(n);const i=o||n.props&&n.props.type==="number";bt(e,t?"change":"input",l=>{l.target.composing||e[Ls](wo(e.value,s,i))}),(s||i)&&bt(e,"change",()=>{e.value=wo(e.value,s,i)}),t||(bt(e,"compositionstart",sa),bt(e,"compositionend",yi),bt(e,"change",yi))},mounted(e,{value:t,modifiers:{trim:s,number:o}}){const n=t??"",i=e[Es];delete e[Es],i!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==i?e[Ls](wo(e.value,s,o)):e.value=n},beforeUpdate(e,{value:t,oldValue:s,modifiers:{lazy:o,trim:n,number:i}},l){if(e[Ls]=xi(l),e.composing)return;const r=(i||e.type==="number")&&!/^0\d/.test(e.value)?Hs(e.value):e.value,a=t??"";if(r===a)return;const f=e.getRootNode();(f instanceof Document||f instanceof ShadowRoot)&&f.activeElement===e&&e.type!=="range"&&(o&&t===s||n&&e.value.trim()===a)||(e.value=a)}},na=["ctrl","shift","alt","meta"],ia={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)=>na.some(s=>e[`${s}Key`]&&!t.includes(s))},la=(e,t)=>{if(!e)return e;const s=e._withMods||(e._withMods={}),o=t.join(".");return s[o]||(s[o]=(n,...i)=>{for(let l=0;l<t.length;l++){const r=ia[t[l]];if(r&&r(n,t))return}return e(n,...i)})},ra=Z({patchProp:Jr},Nr);let wi;function $i(){return wi||(wi=ur(ra))}const aa=(...e)=>{$i().render(...e)},_i=(...e)=>{const t=$i().createApp(...e),{mount:s}=t;return t.mount=o=>{const n=da(o);if(!n)return;const i=t._component;!R(i)&&!i.render&&!i.template&&(i.template=n.innerHTML),n.nodeType===1&&(n.textContent="");const l=s(n,!1,ca(n));return n instanceof Element&&(n.removeAttribute("v-cloak"),n.setAttribute("data-v-app","")),l},t};function ca(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function da(e){return G(e)?document.querySelector(e):e}const pa={title:"استوديو الإضافات",navLabel:"الإضافات حسب القدرة",countLabel:"{bundles} حزمة · {elements} إضافة مدرجة هنا",changeLanguage:"تغيير اللغة",copyEmbed:"نسخ رمز التضمين",copy:"نسخ",copied:"تم النسخ",scriptEmbed:"تضمين عبر سكربت",loading:"جارٍ تحميل {name}…",couldNotLoad:"تعذّر تحميل {name}.",chooseElement:"اختر إضافة من القائمة.",filterPlaceholder:"تصفية الإضافات",collapseAll:"طي الكل",noMatch:"لا توجد إضافة تطابق «{query}».",openSection:"فتح {cap}، {label}",part:"جزء",noStandalone:"بلا صفحة مستقلة",cap5:"هيكل التطبيق",cap4:"مركّب",cap3:"متعدد العروض",cap2:"إعداد مسبق",cap1:"مفرد",toggleList:"إظهار القائمة أو إخفاؤها",openViews:"فتح قائمة العروض",expandList:"توسيع القائمة",collapseList:"طي القائمة",collapse:"طي",partOf:"جزء من {name}، غير منشور بمفرده"},fa={title:"Plugin-Studio",navLabel:"Plugins nach Fähigkeit",countLabel:"{bundles} Bundles · {elements} Plugins hier aufgeführt",changeLanguage:"Sprache ändern",copyEmbed:"Einbettung kopieren",copy:"Kopieren",copied:"Kopiert",scriptEmbed:"Skript-Einbettung",loading:"{name} wird geladen…",couldNotLoad:"{name} konnte nicht geladen werden.",chooseElement:"Wählen Sie ein Plugin aus der Liste.",filterPlaceholder:"Plugins filtern",collapseAll:"Alle einklappen",noMatch:"Kein Plugin entspricht „{query}“.",openSection:"{cap} öffnen, {label}",part:"Teil",noStandalone:"keine eigene Seite",cap5:"App-Shell",cap4:"Komposit",cap3:"Mehrfachansicht",cap2:"Voreinstellung",cap1:"Einzeln",toggleList:"Liste ein-/ausblenden",openViews:"Ansichtsliste öffnen",expandList:"Liste ausklappen",collapseList:"Liste einklappen",collapse:"Einklappen",partOf:"Teil von {name}, nicht eigenständig veröffentlicht"},ua={title:"Plugin Studio",navLabel:"Plugins by capability",countLabel:"{bundles} bundles · {elements} plugins listed here",changeLanguage:"Change language",copyEmbed:"Copy embed",copy:"Copy",copied:"Copied",scriptEmbed:"Script embed",loading:"Loading {name}…",couldNotLoad:"Could not load {name}.",chooseElement:"Choose a plugin from the list.",filterPlaceholder:"Filter plugins",collapseAll:"Collapse all",noMatch:"No plugin matches “{query}”.",openSection:"Open {cap}, {label}",part:"part",noStandalone:"no standalone page",cap5:"App shell",cap4:"Composite",cap3:"Multi-view",cap2:"Preset",cap1:"Single",toggleList:"Toggle list",openViews:"Open the list of views",expandList:"Expand list",collapseList:"Collapse list",collapse:"Collapse",partOf:"part of {name}, not published on its own"},ha={title:"Estudio de plugins",navLabel:"Plugins por capacidad",countLabel:"{bundles} paquetes · {elements} plugins listados aquí",changeLanguage:"Cambiar idioma",copyEmbed:"Copiar código de inserción",copy:"Copiar",copied:"Copiado",scriptEmbed:"Inserción por script",loading:"Cargando {name}…",couldNotLoad:"No se pudo cargar {name}.",chooseElement:"Elija un plugin de la lista.",filterPlaceholder:"Filtrar plugins",collapseAll:"Contraer todo",noMatch:"Ningún plugin coincide con «{query}».",openSection:"Abrir {cap}, {label}",part:"parte",noStandalone:"sin página propia",cap5:"Contenedor de aplicación",cap4:"Compuesto",cap3:"Multivista",cap2:"Preajuste",cap1:"Individual",toggleList:"Mostrar u ocultar la lista",openViews:"Abrir la lista de vistas",expandList:"Expandir la lista",collapseList:"Contraer la lista",collapse:"Contraer",partOf:"parte de {name}, no publicada por separado"},ga={title:"Studio de plugins",navLabel:"Plugins par capacité",countLabel:"{bundles} paquets · {elements} plugins listés ici",changeLanguage:"Changer de langue",copyEmbed:"Copier le code d’intégration",copy:"Copier",copied:"Copié",scriptEmbed:"Intégration par script",loading:"Chargement de {name}…",couldNotLoad:"Impossible de charger {name}.",chooseElement:"Choisissez un plugin dans la liste.",filterPlaceholder:"Filtrer les plugins",collapseAll:"Tout replier",noMatch:"Aucun plugin ne correspond à « {query} ».",openSection:"Ouvrir {cap}, {label}",part:"partie",noStandalone:"pas de page autonome",cap5:"Coquille d’application",cap4:"Composite",cap3:"Multivue",cap2:"Préréglage",cap1:"Simple",toggleList:"Afficher ou masquer la liste",openViews:"Ouvrir la liste des vues",expandList:"Déplier la liste",collapseList:"Replier la liste",collapse:"Replier",partOf:"partie de {name}, non publiée seule"},ba={title:"प्लगइन स्टूडियो",navLabel:"क्षमता के अनुसार प्लगइन",countLabel:"{bundles} बंडल · यहाँ {elements} प्लगइन सूचीबद्ध",changeLanguage:"भाषा बदलें",copyEmbed:"एम्बेड कोड कॉपी करें",copy:"कॉपी करें",copied:"कॉपी हो गया",scriptEmbed:"स्क्रिप्ट एम्बेड",loading:"{name} लोड हो रहा है…",couldNotLoad:"{name} लोड नहीं हो सका।",chooseElement:"सूची से कोई प्लगइन चुनें।",filterPlaceholder:"प्लगइन फ़िल्टर करें",collapseAll:"सभी संक्षिप्त करें",noMatch:"“{query}” से कोई प्लगइन मेल नहीं खाता।",openSection:"{cap} खोलें, {label}",part:"भाग",noStandalone:"कोई अलग पेज नहीं",cap5:"ऐप शेल",cap4:"संयुक्त",cap3:"बहु-दृश्य",cap2:"प्रीसेट",cap1:"एकल",toggleList:"सूची दिखाएँ या छिपाएँ",openViews:"दृश्यों की सूची खोलें",expandList:"सूची फैलाएँ",collapseList:"सूची संक्षिप्त करें",collapse:"संक्षिप्त करें",partOf:"{name} का भाग, अलग से प्रकाशित नहीं"},va={title:"Studio dei plugin",navLabel:"Plugin per capacità",countLabel:"{bundles} pacchetti · {elements} plugin elencati qui",changeLanguage:"Cambia lingua",copyEmbed:"Copia codice di incorporamento",copy:"Copia",copied:"Copiato",scriptEmbed:"Incorporamento tramite script",loading:"Caricamento di {name}…",couldNotLoad:"Impossibile caricare {name}.",chooseElement:"Scegli un plugin dall’elenco.",filterPlaceholder:"Filtra i plugin",collapseAll:"Comprimi tutto",noMatch:"Nessun plugin corrisponde a «{query}».",openSection:"Apri {cap}, {label}",part:"parte",noStandalone:"nessuna pagina propria",cap5:"Shell dell’app",cap4:"Composito",cap3:"Multivista",cap2:"Preimpostato",cap1:"Singolo",toggleList:"Mostra o nascondi l’elenco",openViews:"Apri l’elenco delle viste",expandList:"Espandi l’elenco",collapseList:"Comprimi l’elenco",collapse:"Comprimi",partOf:"parte di {name}, non pubblicata da sola"},ma={title:"Estúdio de plugins",navLabel:"Plugins por capacidade",countLabel:"{bundles} pacotes · {elements} plugins listados aqui",changeLanguage:"Mudar idioma",copyEmbed:"Copiar código de incorporação",copy:"Copiar",copied:"Copiado",scriptEmbed:"Incorporação por script",loading:"Carregando {name}…",couldNotLoad:"Não foi possível carregar {name}.",chooseElement:"Escolha um plugin na lista.",filterPlaceholder:"Filtrar plugins",collapseAll:"Recolher tudo",noMatch:"Nenhum plugin corresponde a “{query}”.",openSection:"Abrir {cap}, {label}",part:"parte",noStandalone:"sem página própria",cap5:"Shell do aplicativo",cap4:"Composto",cap3:"Multivisualização",cap2:"Predefinição",cap1:"Único",toggleList:"Mostrar ou ocultar a lista",openViews:"Abrir a lista de visualizações",expandList:"Expandir a lista",collapseList:"Recolher a lista",collapse:"Recolher",partOf:"parte de {name}, não publicada separadamente"},xa={title:"Studio de pluginuri",navLabel:"Pluginuri după capacitate",countLabel:"{bundles} pachete · {elements} pluginuri listate aici",changeLanguage:"Schimbă limba",copyEmbed:"Copiază codul de încorporare",copy:"Copiază",copied:"Copiat",scriptEmbed:"Încorporare prin script",loading:"Se încarcă {name}…",couldNotLoad:"{name} nu a putut fi încărcat.",chooseElement:"Alegeți un plugin din listă.",filterPlaceholder:"Filtrează pluginurile",collapseAll:"Restrânge tot",noMatch:"Niciun plugin nu corespunde cu „{query}”.",openSection:"Deschide {cap}, {label}",part:"parte",noStandalone:"fără pagină proprie",cap5:"Cadru de aplicație",cap4:"Compus",cap3:"Vizualizări multiple",cap2:"Presetat",cap1:"Simplu",toggleList:"Afișează sau ascunde lista",openViews:"Deschide lista de vizualizări",expandList:"Extinde lista",collapseList:"Restrânge lista",collapse:"Restrânge",partOf:"parte din {name}, nepublicată separat"},ya={title:"Студия плагинов",navLabel:"Плагины по возможностям",countLabel:"Здесь: пакетов {bundles} · плагинов {elements}",changeLanguage:"Сменить язык",copyEmbed:"Скопировать код встраивания",copy:"Копировать",copied:"Скопировано",scriptEmbed:"Встраивание через скрипт",loading:"Загрузка {name}…",couldNotLoad:"Не удалось загрузить {name}.",chooseElement:"Выберите плагин из списка.",filterPlaceholder:"Фильтр плагинов",collapseAll:"Свернуть всё",noMatch:"Нет плагинов, соответствующих «{query}».",openSection:"Открыть {cap}, {label}",part:"часть",noStandalone:"нет отдельной страницы",cap5:"Оболочка приложения",cap4:"Составной",cap3:"Несколько видов",cap2:"Предустановка",cap1:"Одиночный",toggleList:"Показать или скрыть список",openViews:"Открыть список представлений",expandList:"Развернуть список",collapseList:"Свернуть список",collapse:"Свернуть",partOf:"часть {name}, не публикуется отдельно"},wa={title:"插件工作室",navLabel:"按能力分类的插件",countLabel:"此处列出 {bundles} 个包 · {elements} 个插件",changeLanguage:"切换语言",copyEmbed:"复制嵌入代码",copy:"复制",copied:"已复制",scriptEmbed:"脚本嵌入",loading:"正在加载 {name}…",couldNotLoad:"无法加载 {name}。",chooseElement:"请从列表中选择一个插件。",filterPlaceholder:"筛选插件",collapseAll:"全部折叠",noMatch:"没有与“{query}”匹配的插件。",openSection:"打开 {cap},{label}",part:"部分",noStandalone:"无独立页面",cap5:"应用外壳",cap4:"组合",cap3:"多视图",cap2:"预设",cap1:"单一",toggleList:"显示或隐藏列表",openViews:"打开视图列表",expandList:"展开列表",collapseList:"折叠列表",collapse:"折叠",partOf:"{name} 的一部分,不单独发布"};function $o(e,t){const s=t||$a(e);$n(()=>{var r;const o=ti();if(!o)return;const n=(r=o.proxy)==null?void 0:r.$el;if(!n)return;const i=n.getRootNode();if(!(i instanceof ShadowRoot)||i.querySelector(`style[data-shadow-styles="${s}"]`))return;const l=document.createElement("style");l.setAttribute("data-shadow-styles",s),l.textContent=e,i.appendChild(l)})}function $a(e){let t=0;for(let s=0;s<e.length;s++)t=(t<<5)-t+e.charCodeAt(s),t|=0;return"s"+Math.abs(t).toString(36)}const Si={menu:'<line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="18" x2="21" y2="18"/>',map:'<polygon points="3 6 9 3 15 6 21 3 21 18 15 21 9 18 3 21"/><line x1="9" y1="3" x2="9" y2="18"/><line x1="15" y1="6" x2="15" y2="21"/>',globe:'<circle cx="12" cy="12" r="9"/><path d="M3 12h18"/><path d="M12 3a15 15 0 0 1 0 18a15 15 0 0 1 0-18"/>',heart:'<path d="M19 14c1.5-1.5 3-3.5 3-5.5A4.5 4.5 0 0 0 12 6a4.5 4.5 0 0 0-10 2.5C2 10.5 3.5 12.5 5 14l7 7Z"/>',prayer:'<path d="M12 4.2c-.9 1.4-1.9 2.6-2.9 3.8-1 1.2-1.6 2.6-1.6 4.2v3.3c0 1.3.7 2.4 1.8 3 .5.3 1.1-.1 1.1-.7"/><path d="M12 4.2c.9 1.4 1.9 2.6 2.9 3.8 1 1.2 1.6 2.6 1.6 4.2v3.3c0 1.3-.7 2.4-1.8 3-.5.3-1.1-.1-1.1-.7"/><path d="M12 4.2V17"/>',list:'<line x1="8" y1="6" x2="21" y2="6"/><line x1="8" y1="12" x2="21" y2="12"/><line x1="8" y1="18" x2="21" y2="18"/><circle cx="4" cy="6" r="1"/><circle cx="4" cy="12" r="1"/><circle cx="4" cy="18" r="1"/>',users:'<path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M22 21v-2a4 4 0 0 0-3-3.9"/><path d="M16 3.1a4 4 0 0 1 0 7.8"/>',flag:'<path d="M4 15s1-1 4-1 5 2 8 2 4-1 4-1V4s-1 1-4 1-5-2-8-2-4 1-4 1z"/><line x1="4" y1="22" x2="4" y2="15"/>',target:'<circle cx="12" cy="12" r="9"/><circle cx="12" cy="12" r="5"/><circle cx="12" cy="12" r="1"/>',pin:'<path d="M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0z"/><circle cx="12" cy="10" r="3"/>',monitor:'<rect x="2" y="3" width="20" height="14" rx="2"/><line x1="8" y1="21" x2="16" y2="21"/><line x1="12" y1="17" x2="12" y2="21"/>',chart:'<line x1="18" y1="20" x2="18" y2="10"/><line x1="12" y1="20" x2="12" y2="4"/><line x1="6" y1="20" x2="6" y2="14"/>',layers:'<polygon points="12 2 2 7 12 12 22 7 12 2"/><polyline points="2 17 12 22 22 17"/><polyline points="2 12 12 17 22 12"/>',flask:'<path d="M9 3h6v5l5 11a2 2 0 0 1-2 3H6a2 2 0 0 1-2-3l5-11z"/><line x1="9" y1="3" x2="15" y2="3"/><line x1="6" y1="15" x2="18" y2="15"/>',share:'<circle cx="18" cy="5" r="3"/><circle cx="6" cy="12" r="3"/><circle cx="18" cy="19" r="3"/><line x1="8.6" y1="13.5" x2="15.4" y2="17.5"/><line x1="15.4" y1="6.5" x2="8.6" y2="10.5"/>',beaker:'<path d="M6 3h12"/><path d="M8 3v7l-3 8a2 2 0 0 0 2 3h10a2 2 0 0 0 2-3l-3-8V3"/>',chevron:'<polyline points="9 18 15 12 9 6"/>',grid:'<rect x="3" y="3" width="7" height="7"/><rect x="14" y="3" width="7" height="7"/><rect x="14" y="14" width="7" height="7"/><rect x="3" y="14" width="7" height="7"/>',tree:'<rect x="9" y="3" width="6" height="5" rx="1"/><rect x="2" y="16" width="6" height="5" rx="1"/><rect x="16" y="16" width="6" height="5" rx="1"/><path d="M12 8v4M5 16v-2h14v2"/>',dots:'<circle cx="12" cy="5" r="1.5"/><circle cx="12" cy="12" r="1.5"/><circle cx="12" cy="19" r="1.5"/>',embed:'<polyline points="9 7 4 12 9 17"/><polyline points="15 7 20 12 15 17"/>',send:'<path d="M21 3 L3 10.5 L9.5 13.5 L12.5 20 Z"/><line x1="21" y1="3" x2="9.5" y2="13.5"/>',poster:'<rect x="4" y="3" width="16" height="18" rx="2"/><circle cx="12" cy="10" r="2.5"/><path d="M8 17h8"/>',search:'<circle cx="10.5" cy="10.5" r="7.5"/><line x1="15.8" y1="15.8" x2="20.5" y2="20.5"/>',book:'<path d="M12 6.5C12 6.5 9.5 4.5 4 4.5v13C9.5 17.5 12 19.5 12 19.5"/><path d="M12 6.5C12 6.5 14.5 4.5 20 4.5v13C14.5 17.5 12 19.5 12 19.5"/>',wifi:'<path d="M3.5 9a13 13 0 0 1 17 0"/><path d="M6.8 12.4a8.5 8.5 0 0 1 10.4 0"/><path d="M10 15.7a4 4 0 0 1 4 0"/><circle cx="12" cy="19" r="1"/>'};function Li(e,t=""){const s=Si[e]||Si.map;return`<svg class="ic ${t}" viewBox="0 0 24 24" fill="none" stroke="currentColor"
|
||
stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">${s}</svg>`}const _a=".vtl{position:absolute;top:0;right:0;bottom:0;left:0;display:grid!important;grid-template-rows:auto 1fr;height:100%;width:100%;min-height:420px;background:#f3f3f1;color:#3b463d;font-family:Public Sans,-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;-webkit-font-smoothing:antialiased;--vtl-accent:#92b195;--vtl-border:#d1d4cd;--vtl-elevated:#ffffff;--vtl-accented:#d1d4cd;--vtl-muted:#6d766e;--vtl-rail:256px}.vtl.no-header{grid-template-rows:1fr}.vtl-top{flex:0 0 auto;display:flex;align-items:center;gap:10px;box-sizing:border-box;min-height:64px;padding:8px 16px;border-bottom:1px solid var(--vtl-border);background:#fff}.vtl-menu{display:none;font:16px/1 system-ui;color:#3b463d;background:#d1d4cd;border:1px solid #d1d4cd;border-radius:8px;padding:5px 10px;cursor:pointer}.vtl-fab{position:absolute;z-index:15;left:calc(12px + env(safe-area-inset-left));bottom:calc(12px + env(safe-area-inset-bottom));width:44px;height:44px;display:flex;align-items:center;justify-content:center;font:18px/1 system-ui;color:#3b463d;background:#fff;border:1px solid var(--vtl-border);border-radius:50%;box-shadow:0 2px 10px #0000002e;cursor:pointer}.vtl-fab:hover{background:#d1d4cd}.vtl-fab:focus-visible{outline:2px solid var(--vtl-accent);outline-offset:2px}.vtl-menu:hover{background:#d1d4cd}.vtl-brand{display:inline-flex;align-items:center}.vtl-brand:empty{display:none}.vtl-title{font-size:15px;font-weight:600;letter-spacing:-.01em;color:#3b463d}.vtl-meta{color:var(--vtl-muted);font-size:12px;margin-left:auto;display:inline-flex;align-items:center;gap:8px}.vtl-body{min-height:0;position:relative;display:flex}.vtl-nav{position:absolute;top:0;bottom:0;left:0;z-index:5;width:256px;box-sizing:border-box;overflow-y:auto;overflow-x:hidden;border-right:1px solid var(--vtl-border);padding:12px 12px 20px;background:#fff;scrollbar-width:thin;scrollbar-color:#c4c8c0 transparent;contain:layout paint;transform:translate(0);transition:transform .2s cubic-bezier(.4,0,.2,1);will-change:transform}.vtl-nav::-webkit-scrollbar{width:8px;height:8px}.vtl-nav::-webkit-scrollbar-track{background:transparent}.vtl-nav::-webkit-scrollbar-thumb{background:#c4c8c0;border-radius:8px}.vtl-nav::-webkit-scrollbar-thumb:hover{background:#9aa197}.vtl-collapse{display:flex;align-items:center;gap:8px;width:100%;box-sizing:border-box;margin:0 0 8px;padding:7px 10px;border:1px solid var(--vtl-border);border-radius:8px;background:#d1d4cd;color:var(--vtl-muted);font:inherit;font-size:12px;cursor:pointer}.vtl-collapse:hover{background:var(--vtl-accented);color:#3b463d}.vtl-collapse:focus-visible{outline:2px solid var(--vtl-accent);outline-offset:-2px}.vtl-collapse-ic{flex:0 0 auto;display:inline-flex;transition:transform .16s ease;transform:rotate(180deg)}.vtl-collapse-ic svg{width:16px;height:16px}.vtl-collapse-tx{white-space:nowrap}.vtl-grp{margin-bottom:2px}.vtl-grp+.vtl-grp{margin-top:8px;padding-top:8px;border-top:1px solid var(--vtl-border)}.vtl-tier{width:100%;padding:8px 8px 6px;display:flex;align-items:center;gap:8px;box-sizing:border-box}.vtl-tier-btn{border:0;background:none;color:inherit;font:inherit;cursor:pointer;text-align:left;border-radius:8px}.vtl-tier-btn:hover{background:var(--vtl-accented)}.vtl-tier-btn:focus-visible{outline:2px solid var(--vtl-accent);outline-offset:-2px}.vtl-tier-ic{flex:0 0 auto;display:inline-flex;color:var(--vtl-muted)}.vtl-tier-ic svg{width:15px;height:15px}.vtl-cap{font:700 10px/1 system-ui;letter-spacing:.4px;color:#052e16;background:var(--vtl-accent);border-radius:999px;padding:3px 7px}.vtl-tl{font-weight:600;font-size:11px;letter-spacing:.03em;text-transform:uppercase;color:var(--vtl-muted)}.vtl-td{color:#6b6b6b;font-size:11px;margin-left:auto}.vtl-chev{margin-left:auto;display:inline-flex;color:var(--vtl-muted);transition:transform .16s ease}.vtl-chev svg{width:15px;height:15px}.vtl-chev.open{transform:rotate(90deg)}.vtl-rows{display:flex;flex-direction:column;gap:1px}.vtl-tab{display:flex;align-items:center;gap:11px;width:100%;min-height:48px;text-align:left;border:0;background:none;color:var(--vtl-muted);padding:8px 12px;cursor:pointer;border-radius:var(--vtl-radius,8px);font:inherit;margin:0;transition:background .13s ease,color .13s ease}.vtl-tab:hover{background:var(--vtl-accented);color:#3b463d}.vtl-tab:focus-visible{outline:2px solid var(--vtl-accent);outline-offset:-2px}.vtl-tab.active{background:var(--vtl-accented);color:#3b463d;font-weight:500}.vtl-tab.active .vtl-tab-ic{color:var(--vtl-accent)}.vtl-tab-ic{flex:0 0 auto;display:inline-flex;color:var(--vtl-muted)}.vtl-tab-ic svg{width:20px;height:20px}.vtl-tab-emoji{font-size:17px;line-height:1;flex:0 0 auto}.vtl-tab-fallback{display:none;flex:0 0 auto;width:20px;height:20px;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:var(--vtl-muted);background:var(--vtl-accented);border-radius:6px}.vtl-tab.active .vtl-tab-fallback{color:var(--vtl-accent)}.vtl-tab-text{display:flex;flex-direction:column;min-width:0}.vtl-tab-label{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:6px}.vtl-tab-badge{font:600 9px/1 system-ui;letter-spacing:.3px;text-transform:uppercase;color:var(--vtl-accent);border:1px solid var(--vtl-accent);border-radius:var(--vtl-radius,8px);padding:2px 5px}.vtl-tab-sub{font-size:11px;color:#6b6b6b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vtl-tab-sub code{font-family:ui-monospace,Menlo,monospace}.vtl-tab.active .vtl-tab-sub{color:var(--vtl-muted)}.vtl-main{position:absolute;top:0;bottom:0;right:0;left:256px;min-width:0;display:flex;flex-direction:column}.vtl-content{flex:1 1 auto;position:relative;min-height:0}.vtl-host{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;--profile-min-h:0}.vtl-host-slot{position:relative;min-height:100%}.vtl-host-slot>*{min-height:0;max-height:none}.vtl-host-hint{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center;color:var(--dx-muted, #6d766e);font-size:13px;padding:20px}.vtl-host-hint.err{color:#f87171}.vtl-host-hint small{color:var(--dx-muted, #6d766e)}.vtl.rail-collapsed .vtl-nav{transform:translate(-184px)}.vtl.rail-collapsed .vtl-main{left:72px}.vtl.rail-collapsed .vtl-collapse{padding-left:184px;justify-content:flex-start}.vtl.rail-collapsed .vtl-collapse-ic{transform:rotate(0)}.vtl.rail-collapsed .vtl-collapse-tx{display:none}.vtl.rail-collapsed .vtl-tab{padding-left:188px;gap:0}.vtl.rail-collapsed .vtl-tab-text{display:none}.vtl.rail-collapsed .vtl-tab-emoji{font-size:19px}.vtl.rail-collapsed .vtl-tab-fallback{display:inline-flex}.vtl.rail-collapsed .vtl-tier{padding-left:196px}.vtl.rail-collapsed .vtl-tl,.vtl.rail-collapsed .vtl-td,.vtl.rail-collapsed .vtl-cap,.vtl.rail-collapsed .vtl-chev{display:none}.vtl.rail-collapsed .vtl-grp+.vtl-grp{margin-top:6px;padding-top:6px}@media (max-width: 760px){.vtl-top{min-height:56px}.vtl-menu{display:inline-block}.vtl-meta{display:none}.vtl-nav{z-index:20;width:256px;box-shadow:0 0 28px #0000008c;transform:translate(-100%)}.vtl.nav-open .vtl-nav{transform:translate(0);z-index:1000}.vtl-main{left:0}.vtl.rail-collapsed .vtl-nav{transform:translate(-100%)}.vtl.rail-collapsed.nav-open .vtl-nav{transform:translate(0)}.vtl.rail-collapsed .vtl-main{left:0}.vtl.rail-collapsed .vtl-collapse{padding-left:10px;justify-content:flex-start}.vtl.rail-collapsed .vtl-collapse-ic{transform:rotate(180deg)}.vtl.rail-collapsed .vtl-collapse-tx{display:inline}.vtl.rail-collapsed .vtl-tab{padding-left:10px;gap:11px}.vtl.rail-collapsed .vtl-tab-text{display:flex}.vtl.rail-collapsed .vtl-tab-fallback{display:none}.vtl.rail-collapsed .vtl-tier{padding-left:8px}.vtl.rail-collapsed .vtl-tl,.vtl.rail-collapsed .vtl-td,.vtl.rail-collapsed .vtl-cap,.vtl.rail-collapsed .vtl-chev{display:inline}}.vtl:dir(rtl) .vtl-nav{left:auto;right:0;border-right:0;border-left:1px solid var(--vtl-border)}.vtl:dir(rtl) .vtl-main{left:0;right:256px}.vtl:dir(rtl) .vtl-tab,.vtl:dir(rtl) .vtl-tier-btn{text-align:right}.vtl:dir(rtl) .vtl-meta,.vtl:dir(rtl) .vtl-td,.vtl:dir(rtl) .vtl-chev{margin-left:0;margin-right:auto}.vtl:dir(rtl) .vtl-chev:not(.open){transform:scaleX(-1)}.vtl:dir(rtl) .vtl-collapse-ic svg{transform:scaleX(-1)}.vtl:dir(rtl) .vtl-fab{left:auto;right:calc(12px + env(safe-area-inset-right))}.vtl.rail-collapsed:dir(rtl) .vtl-nav{transform:translate(184px)}.vtl.rail-collapsed:dir(rtl) .vtl-main{left:0;right:72px}.vtl.rail-collapsed:dir(rtl) .vtl-collapse{padding-left:10px;padding-right:184px}.vtl.rail-collapsed:dir(rtl) .vtl-tab{padding-left:12px;padding-right:188px}.vtl.rail-collapsed:dir(rtl) .vtl-tier{padding-left:8px;padding-right:196px}@media (max-width: 760px){.vtl:dir(rtl) .vtl-nav{transform:translate(100%)}.vtl.nav-open:dir(rtl) .vtl-nav{transform:translate(0)}.vtl:dir(rtl) .vtl-main,.vtl.rail-collapsed:dir(rtl) .vtl-main{left:0;right:0}.vtl.rail-collapsed:dir(rtl) .vtl-nav{transform:translate(100%)}.vtl.rail-collapsed.nav-open:dir(rtl) .vtl-nav{transform:translate(0)}.vtl.rail-collapsed:dir(rtl) .vtl-collapse{padding-left:10px;padding-right:10px}.vtl.rail-collapsed:dir(rtl) .vtl-tab{padding-left:12px;padding-right:10px}.vtl.rail-collapsed:dir(rtl) .vtl-tier{padding-left:8px;padding-right:8px}}",_o=(e,t)=>{const s=e.__vccOpts||e;for(const[o,n]of t)s[o]=n;return s},Ft={};function Sa(e){return e?(Ft[e]||(Ft[e]=new Promise((t,s)=>{const o=document.createElement("script");o.src=e,o.onload=()=>t(),o.onerror=()=>{delete Ft[e],s(new Error("failed to load "+e))},document.head.appendChild(o)})),Ft[e]):Promise.resolve()}function La(e,t=5e3){return typeof customElements>"u"||customElements.get(e)?Promise.resolve():customElements.whenDefined?Promise.race([customElements.whenDefined(e),new Promise((s,o)=>setTimeout(()=>o(new Error("timeout waiting for <"+e+">")),t))]):Promise.resolve()}const Ea=`
|
||
/* STRUCTURAL DISPLAY — the !important is deliberate, not a hack. This layout's display mode is
|
||
load-bearing: it CANNOT function as a block. As a library/ (high-bar) component it ships across
|
||
all 5 deployment methods, and a host (app-shell direct-mount, WordPress, mobile webview) may force
|
||
its own inline display onto the element. Declaring it non-overridable is the correct contract.
|
||
grid-template-rows: auto 1fr = header takes its natural height, .vtl-body gets a DEFINITE
|
||
remaining track — no dependence on in-flow children (nav/main are absolute for the rail slide). */
|
||
.vtl { position:absolute; inset:0; display:grid !important; grid-template-rows:auto 1fr; height:100%; width:100%; min-height:420px; background:#f3f3f1; color:#3b463d; font-family:'Public Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif; -webkit-font-smoothing:antialiased; --vtl-accent:#92b195; --vtl-border:#d1d4cd; --vtl-elevated:#ffffff; --vtl-accented:#d1d4cd; --vtl-muted:#6d766e; --vtl-rail:256px; }
|
||
/* HEADER-OFF (header=false, e.g. the cap-5 doxa-maps-spa): the .vtl-top element is NOT rendered, so
|
||
.vtl-body becomes the ONLY grid child and auto-places into row 1 — the auto row — which has no
|
||
content to size it and collapses to 0 (the 1fr row sits empty) → the same 0-height black screen.
|
||
With no header there is only one region, so declare a single 1fr row and the body fills. */
|
||
.vtl.no-header { grid-template-rows:1fr; }
|
||
/* MATERIAL APP BAR = 64px desktop / 56px mobile (2026-09-21), was 51px from 11px padding.
|
||
Stated as an explicit min-height rather than left to padding arithmetic, so the number a
|
||
reader sees is the number that renders. min-height keeps a wrapping title from clipping.
|
||
★ box-sizing:border-box IS LOAD-BEARING HERE. Without it this element is content-box, so
|
||
min-height:64px MEASURED 81px live: 64 + 16px vertical padding + 1px border. A height stated
|
||
in a comment is worth nothing if the box model adds to it — measure the rendered value, do not
|
||
trust the declaration. (Found exactly that way: the probe read 81 against a 64 target.)
|
||
THIS RULE EXISTS TWICE (VTL_SHADOW_CSS and the scoped style block); keep them identical. */
|
||
.vtl-top { flex:0 0 auto; display:flex; align-items:center; gap:10px; box-sizing:border-box; min-height:64px; padding:8px 16px; border-bottom:1px solid var(--vtl-border); background:#ffffff; }
|
||
.vtl-menu { display:none; font:16px/1 system-ui; color:#3b463d; background:#d1d4cd; border:1px solid #d1d4cd; border-radius:8px; padding:5px 10px; cursor:pointer; }
|
||
/* Headerless-mobile drawer opener. Only ever rendered when narrow AND header-off AND the drawer is
|
||
shut, so it cannot appear in any layout that already has a working toggle. z-index sits ABOVE the
|
||
content but BELOW the drawer (.vtl-nav is z-index:20) so the drawer covers it when it slides in.
|
||
44px is the minimum comfortable touch target; the safe-area insets keep it clear of an iOS home
|
||
indicator and a notch in landscape. */
|
||
.vtl-fab { position:absolute; z-index:15; left:calc(12px + env(safe-area-inset-left)); bottom:calc(12px + env(safe-area-inset-bottom)); width:44px; height:44px; display:flex; align-items:center; justify-content:center; font:18px/1 system-ui; color:#3b463d; background:#ffffff; border:1px solid var(--vtl-border); border-radius:50%; box-shadow:0 2px 10px rgba(0,0,0,.18); cursor:pointer; }
|
||
.vtl-fab:hover { background:#d1d4cd; }
|
||
.vtl-fab:focus-visible { outline:2px solid var(--vtl-accent); outline-offset:2px; }
|
||
.vtl-menu:hover { background:#d1d4cd; }
|
||
.vtl-brand { display:inline-flex; align-items:center; }
|
||
.vtl-brand:empty { display:none; }
|
||
.vtl-title { font-size:15px; font-weight:600; letter-spacing:-0.01em; color:#3b463d; }
|
||
.vtl-meta { color:var(--vtl-muted); font-size:12px; margin-left:auto; display:inline-flex; align-items:center; gap:8px; }
|
||
/* GRID ROWS, not flex (BUG-EMBEDDED-PLUGIN-STUDIO-BLACK-SCREEN). The collapsible-rail design makes
|
||
.vtl-nav and .vtl-main position:absolute (so the rail slides by transform without reflowing the
|
||
heavy map sibling). That leaves .vtl-body with NO in-flow children → ZERO intrinsic height, so it
|
||
could only fill via flex:1 from a flex parent. A host that forces display:block on .vtl (the
|
||
app-shell direct-mounts cap-5 elements that way) made that flex inert → .vtl-body collapsed to 0
|
||
→ black screen. The auto/1fr grid on .vtl gives this row a DEFINITE height by construction, so
|
||
it no longer depends on the parent's display mode NOR on in-flow children. Header-off
|
||
(header=false) still works: the auto row collapses to 0 and 1fr takes the full height. */
|
||
.vtl-body { min-height:0; position:relative; display:flex; }
|
||
.vtl-nav { position:absolute; top:0; bottom:0; left:0; z-index:5; width:256px; box-sizing:border-box; overflow-y:auto; overflow-x:hidden; border-right:1px solid var(--vtl-border); padding:12px 12px 20px; background:#ffffff; scrollbar-width:thin; scrollbar-color:#c4c8c0 transparent; contain:layout paint; transform:translateX(0); transition:transform .2s cubic-bezier(.4,0,.2,1); will-change:transform; }
|
||
/* Thin OVERLAY scrollbar: transparent track so the bar costs no visual space and sits flush to
|
||
the nav edge; low-contrast thumb that darkens on hover. Matches the research-dashboard rails. */
|
||
.vtl-nav::-webkit-scrollbar { width:8px; height:8px; }
|
||
.vtl-nav::-webkit-scrollbar-track { background:transparent; }
|
||
.vtl-nav::-webkit-scrollbar-thumb { background:#c4c8c0; border-radius:8px; }
|
||
.vtl-nav::-webkit-scrollbar-thumb:hover { background:#9aa197; }
|
||
.vtl-collapse { display:flex; align-items:center; gap:8px; width:100%; box-sizing:border-box; margin:0 0 8px; padding:7px 10px; border:1px solid var(--vtl-border); border-radius:8px; background:#d1d4cd; color:var(--vtl-muted); font:inherit; font-size:12px; cursor:pointer; }
|
||
.vtl-collapse:hover { background:var(--vtl-accented); color:#3b463d; }
|
||
.vtl-collapse:focus-visible { outline:2px solid var(--vtl-accent); outline-offset:-2px; }
|
||
.vtl-collapse-ic { flex:0 0 auto; display:inline-flex; transition:transform .16s ease; transform:rotate(180deg); }
|
||
.vtl-collapse-ic svg { width:16px; height:16px; }
|
||
.vtl-collapse-tx { white-space:nowrap; }
|
||
.vtl-grp { margin-bottom:2px; }
|
||
.vtl-grp + .vtl-grp { margin-top:8px; padding-top:8px; border-top:1px solid var(--vtl-border); }
|
||
.vtl-tier { width:100%; padding:8px 8px 6px; display:flex; align-items:center; gap:8px; box-sizing:border-box; }
|
||
.vtl-tier-btn { border:0; background:none; color:inherit; font:inherit; cursor:pointer; text-align:left; border-radius:8px; }
|
||
.vtl-tier-btn:hover { background:var(--vtl-accented); }
|
||
.vtl-tier-btn:focus-visible { outline:2px solid var(--vtl-accent); outline-offset:-2px; }
|
||
.vtl-tier-ic { flex:0 0 auto; display:inline-flex; color:var(--vtl-muted); }
|
||
.vtl-tier-ic svg { width:15px; height:15px; }
|
||
.vtl-cap { font:700 10px/1 system-ui; letter-spacing:.4px; color:#052e16; background:var(--vtl-accent); border-radius:999px; padding:3px 7px; }
|
||
.vtl-tl { font-weight:600; font-size:11px; letter-spacing:.03em; text-transform:uppercase; color:var(--vtl-muted); }
|
||
.vtl-td { color:#6b6b6b; font-size:11px; margin-left:auto; }
|
||
.vtl-chev { margin-left:auto; display:inline-flex; color:var(--vtl-muted); transition:transform .16s ease; }
|
||
.vtl-chev svg { width:15px; height:15px; }
|
||
.vtl-chev.open { transform:rotate(90deg); }
|
||
.vtl-rows { display:flex; flex-direction:column; gap:1px; }
|
||
/* MATERIAL NAV-ROW METRICS (2026-09-21). Driver: "people are used to the YouTube layout, Google
|
||
layout is just way better. We do not need to create custom styles people are not used to."
|
||
Measured before this change: 44px rows with an 8px radius.
|
||
min-height:48px the Material list-item height. min-height, not height, so a wrapping
|
||
label still grows instead of clipping.
|
||
border-radius var(--vtl-radius,8px) — SUPERSEDED THE FULL PILL (2026-09-23).
|
||
The 999px stadium above was a real instruction ("imitate the YouTube
|
||
active row") and it shipped. The Driver then measured it against the
|
||
rest of the product and reversed it: "the roundedness of the tabs is a
|
||
little bit too round because there is nowhere else in the app that has
|
||
that same roundedness. Even the collapse button is not that round...
|
||
it looks more material UI to have a more rounded tab than a less
|
||
circular tab." He is right on the facts — .vtl-collapse is 8px, the
|
||
filter toggles in @map/components/search are 8px, and 8px is already
|
||
the most common radius in this file. A 999px radius on a 48px row is a
|
||
stadium, which is why it reads as foreign beside everything else.
|
||
★ DO NOT "RESTORE" THE PILL on the strength of the YouTube rationale
|
||
above — that rationale is kept because it is true history, not because
|
||
it is current. The 48px Material row height is unaffected and stays.
|
||
NOT VENDORED: the card's law is to imitate the metrics in our own CSS, never to add Quasar or
|
||
MUI. Same clone-dont-edit rule the library follows everywhere else.
|
||
THIS RULE EXISTS TWICE (VTL_SHADOW_CSS and the scoped style block) and the two copies must stay
|
||
byte-identical — edit both or neither. */
|
||
.vtl-tab { display:flex; align-items:center; gap:11px; width:100%; min-height:48px; text-align:left; border:0; background:none; color:var(--vtl-muted); padding:8px 12px; cursor:pointer; border-radius:var(--vtl-radius,8px); font:inherit; margin:0; transition:background .13s ease,color .13s ease; }
|
||
.vtl-tab:hover { background:var(--vtl-accented); color:#3b463d; }
|
||
.vtl-tab:focus-visible { outline:2px solid var(--vtl-accent); outline-offset:-2px; }
|
||
.vtl-tab.active { background:var(--vtl-accented); color:#3b463d; font-weight:500; }
|
||
.vtl-tab.active .vtl-tab-ic { color:var(--vtl-accent); }
|
||
.vtl-tab-ic { flex:0 0 auto; display:inline-flex; color:var(--vtl-muted); }
|
||
.vtl-tab-ic svg { width:20px; height:20px; }
|
||
.vtl-tab-emoji { font-size:17px; line-height:1; flex:0 0 auto; }
|
||
.vtl-tab-fallback { display:none; flex:0 0 auto; width:20px; height:20px; align-items:center; justify-content:center; font-size:12px; font-weight:600; color:var(--vtl-muted); background:var(--vtl-accented); border-radius:6px; }
|
||
.vtl-tab.active .vtl-tab-fallback { color:var(--vtl-accent); }
|
||
.vtl-tab-text { display:flex; flex-direction:column; min-width:0; }
|
||
.vtl-tab-label { font-size:13px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; display:flex; align-items:center; gap:6px; }
|
||
.vtl-tab-badge { font:600 9px/1 system-ui; letter-spacing:.3px; text-transform:uppercase; color:var(--vtl-accent); border:1px solid var(--vtl-accent); border-radius:var(--vtl-radius,8px); padding:2px 5px; }
|
||
.vtl-tab-sub { font-size:11px; color:#6b6b6b; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
|
||
.vtl-tab-sub code { font-family:ui-monospace,Menlo,monospace; }
|
||
.vtl-tab.active .vtl-tab-sub { color:var(--vtl-muted); }
|
||
.vtl-main { position:absolute; top:0; bottom:0; right:0; left:256px; min-width:0; display:flex; flex-direction:column; }
|
||
/* ★ contain:layout, NOT layout paint (BUG-STILL-CANNOT-SCROLL-DOWN-TO-THE-GRID, measured
|
||
2026-09-22). layout is the half that does the work the rail collapse needs — it isolates this
|
||
subtree so sliding the rail never reflows a heavy mounted map. paint additionally CLIPS the
|
||
subtree to this box, which silently swallowed every pixel a scroll-stack composite rendered below
|
||
one viewport. The clipping now belongs to .vtl-host, which owns a real scrollbar, so the content
|
||
is both contained AND reachable. Dropping paint costs the collapse nothing: paint never
|
||
contributed reflow isolation, only clipping. */
|
||
.vtl-content { flex:1 1 auto; position:relative; min-height:0; }
|
||
/* ★ NO containment AT ALL on .vtl-content (BUG-FULLSCREEN-MODALS-UNDERSIZED-INSIDE-THE-CAP5-SHELL,
|
||
measured 2026-09-23). contain:paint was dropped earlier for the scroll bug; contain:layout
|
||
stayed -- but LAYOUT containment ALSO makes this element the containing block for every
|
||
position:fixed descendant (CSS Containment spec), so all six modal scrims hosted in the shell
|
||
(PosterDialog, DataTable .dt-scrim, LegendTools .lt-overlay, SemanticTreeLegend export
|
||
backdrop, both poster-wall .modal-scrim) resolved inset:0 to the CONTENT PANE: measured, a
|
||
fixed inset:0 probe here read x=256 w=1184 on a 1440 viewport, leaving the 256px nav rail
|
||
uncovered and CLICKABLE behind an open modal. Visibly almost right, interactively wrong.
|
||
The perf rationale it was kept for does not hold: when the nav collapses, this element's own
|
||
width changes, and a width change re-lays-out the subtree with or without containment. */
|
||
/* ★ THE PANE OWNS THE SCROLL (BUG-STILL-CANNOT-SCROLL-DOWN-TO-THE-GRID). Measured in the cap-5
|
||
shell: the dashboard-plus-grid composite mounted here reported scrollHeight 3380 / clientHeight
|
||
769 — 2611px of real, mounted, populated content (the people-groups grid, h=2586) that NO element
|
||
could scroll to, because this box was position:absolute; inset:0 with the default
|
||
overflow:visible. The document itself measured scrollHeight 900 === clientHeight 900, so a
|
||
wheel gesture anywhere had nothing to move and the page simply sat still.
|
||
THIS IS A HOST GAP, NOT A PLUGIN BUG. The same composite is PERFECT standalone (document
|
||
2960/900, wheel scrolls to 2060, grid reachable) because its generated leaf sets
|
||
body{overflow-y:auto} — the document owns the scroll there. In this shell the pane is pinned to
|
||
viewport height and no ancestor scrolls, so the layout must own it. generate-tree.mjs keeps cap-5
|
||
leaves fixed-viewport on the reasoning that "any scroll-stack it hosts is its OWN iframe leaf" —
|
||
but the studio documents "there is NO iframe mode": every tab mounts its REAL custom element
|
||
directly into this pane. So the scroll has to land here.
|
||
WHY THIS IS SAFE FOR THE FIXED-VIEWPORT MAP TABS, which are the majority. A map element ships
|
||
position:absolute; inset:0 (or height:100%) and therefore fills this box exactly:
|
||
scrollHeight === clientHeight, so auto yields NO scrollbar and NOTHING changes for them. Only a
|
||
pane whose content genuinely exceeds one viewport — i.e. a StackLayout scroll-stack, which is the
|
||
composite that is meant to scroll — gets one. auto is load-bearing; scroll would paint a dead
|
||
scrollbar on all 19 map tabs.
|
||
overscroll-behavior:contain stops a wheel that bottoms out here from chaining to the document. */
|
||
.vtl-host { position:absolute; inset:0; overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain; --profile-min-h:0; }
|
||
/* The slot is the element's mount point. It must NOT be position:absolute; inset:0 any more: that
|
||
pinned it to the pane's height and re-created the exact trap one level down — an absolutely
|
||
positioned child cannot grow a scroll container. min-height:100% keeps a fixed-viewport map
|
||
filling the pane (the behaviour absolute-inset gave it) while letting a taller scroll-stack
|
||
composite push the pane's scrollHeight past its clientHeight, which is what produces the
|
||
scrollbar. */
|
||
.vtl-host-slot { position:relative; min-height:100%; }
|
||
/* ★ THE dvh FLOOR, NEUTRALISED FOR HOSTED ELEMENTS (measured 2026-09-22 in the studio, same layout
|
||
shape). A hosted map ships .profile-loader { height:100%; min-height:100dvh }, and the two resolve
|
||
against DIFFERENT bases: height:100% against this pane, min-height:100dvh against the VIEWPORT.
|
||
Wherever the pane is shorter than the viewport (any header/toolbar chrome above it), the floor
|
||
wins, the element overflows by exactly that chrome height, and the overflow-y:auto above then
|
||
correctly paints a scrollbar on a fixed-viewport map that should never have one.
|
||
The floor is DELIBERATE and must stay in the element (standalone it prevents a collapse to 0
|
||
against an auto-height body). It is only wrong HERE, against a definite shorter pane. A genuine
|
||
scroll-stack composite is unaffected: it exceeds the pane on its own content, not on this floor. */
|
||
.vtl-host-slot > * { min-height:0; max-height:none; }
|
||
.vtl-host-hint { position:absolute; inset:0; display:grid; place-items:center; text-align:center; color:var(--dx-muted, #6d766e); font-size:13px; padding:20px; }
|
||
.vtl-host-hint.err { color:#f87171; }
|
||
.vtl-host-hint small { color:var(--dx-muted, #6d766e); }
|
||
/* MATERIAL MINI-VARIANT RAIL = 72px (2026-09-21), up from 60px.
|
||
★ THE COLLAPSE IS A TRANSLATE, NOT A WIDTH CHANGE — so FOUR numbers are coupled and must move
|
||
together, which is precisely where a partial edit would break the layout:
|
||
nav translate -184px the 256px rail slides left, leaving 256-184 = 72px visible
|
||
main left 72px the content pane starts exactly where the rail ends
|
||
collapse pad 184px pushes the toggle's icon into the 72px strip that stays on screen
|
||
tab pad 188px the same for each row's icon (4px more, matching the old 196/200 pair)
|
||
Change one without the others and the icons drift out of the visible strip or the content
|
||
overlaps the rail. Old values were -196 / 60 / 196 / 200.
|
||
THIS BLOCK EXISTS TWICE (VTL_SHADOW_CSS and the scoped style block); keep them byte-identical. */
|
||
.vtl.rail-collapsed .vtl-nav { transform:translateX(-184px); }
|
||
.vtl.rail-collapsed .vtl-main { left:72px; }
|
||
.vtl.rail-collapsed .vtl-collapse { padding-left:184px; justify-content:flex-start; }
|
||
.vtl.rail-collapsed .vtl-collapse-ic { transform:rotate(0deg); }
|
||
.vtl.rail-collapsed .vtl-collapse-tx { display:none; }
|
||
.vtl.rail-collapsed .vtl-tab { padding-left:188px; gap:0; }
|
||
.vtl.rail-collapsed .vtl-tab-text { display:none; }
|
||
.vtl.rail-collapsed .vtl-tab-emoji { font-size:19px; }
|
||
.vtl.rail-collapsed .vtl-tab-fallback { display:inline-flex; }
|
||
.vtl.rail-collapsed .vtl-tier { padding-left:196px; }
|
||
.vtl.rail-collapsed .vtl-tl, .vtl.rail-collapsed .vtl-td, .vtl.rail-collapsed .vtl-cap, .vtl.rail-collapsed .vtl-chev { display:none; }
|
||
.vtl.rail-collapsed .vtl-grp + .vtl-grp { margin-top:6px; padding-top:6px; }
|
||
@media (max-width: 760px) {
|
||
/* Material app bar is 56px on mobile, 64px on desktop — the desktop value is set above. */
|
||
.vtl-top { min-height:56px; }
|
||
.vtl-menu { display:inline-block; }
|
||
.vtl-meta { display:none; }
|
||
/* MOBILE = the SAME composited-transform model, taken to its full-off-canvas extreme: a full-width
|
||
drawer that slides in/out via transform (never a layout property), so opening/closing the drawer
|
||
never reflows the content. Content is full-width (left:0) and stays put; the drawer floats over it. */
|
||
.vtl-nav { z-index:20; width:256px; box-shadow:0 0 28px rgba(0,0,0,.55); transform:translateX(-100%); }
|
||
/* OPEN DRAWER ABOVE THE PLUGIN'S OWN LAYERS. Mounted content shares this stacking context, and
|
||
plugins raise their chrome (the research dashboard's filter bar is z-index:55), so at z-index 20
|
||
the open drawer had a plugin's filter row painted across it — measured 2026-09-25 at 390px.
|
||
Only while OPEN on a phone: that is when the drawer is the one thing you can use, and desktop
|
||
and plugin modal scrims keep their existing order. */
|
||
.vtl.nav-open .vtl-nav { transform:translateX(0); z-index:1000; }
|
||
.vtl-main { left:0; }
|
||
/* The desktop slim-rail collapse has no meaning on a phone — reconcileForWidth() clears railCollapsed
|
||
at this width, but neutralize its CSS too (belt-and-suspenders) so a full labelled drawer always
|
||
shows: no partial slide, no icon-column padding, labels/sections visible. */
|
||
.vtl.rail-collapsed .vtl-nav { transform:translateX(-100%); }
|
||
.vtl.rail-collapsed.nav-open .vtl-nav { transform:translateX(0); }
|
||
.vtl.rail-collapsed .vtl-main { left:0; }
|
||
.vtl.rail-collapsed .vtl-collapse { padding-left:10px; justify-content:flex-start; }
|
||
.vtl.rail-collapsed .vtl-collapse-ic { transform:rotate(180deg); }
|
||
.vtl.rail-collapsed .vtl-collapse-tx { display:inline; }
|
||
.vtl.rail-collapsed .vtl-tab { padding-left:10px; gap:11px; }
|
||
.vtl.rail-collapsed .vtl-tab-text { display:flex; }
|
||
.vtl.rail-collapsed .vtl-tab-fallback { display:none; }
|
||
.vtl.rail-collapsed .vtl-tier { padding-left:8px; }
|
||
.vtl.rail-collapsed .vtl-tl, .vtl.rail-collapsed .vtl-td, .vtl.rail-collapsed .vtl-cap, .vtl.rail-collapsed .vtl-chev { display:inline; }
|
||
}
|
||
|
||
/* ★ RIGHT-TO-LEFT (ar). THIS BLOCK EXISTS TWICE (VTL_SHADOW_CSS and the scoped style block); keep them
|
||
byte-identical. Everything above is written in PHYSICAL terms (left:0 rail, left:256px content,
|
||
translateX(-…) slides), so an Arabic shell kept the rail on the left with LTR geometry (reported by
|
||
studio for cell E, 2026-09-25). These are ADDITIVE overrides scoped by :dir(rtl), so an LTR consumer
|
||
matches none of them and renders exactly as before. :dir() follows the dir attribute through the
|
||
shadow boundary, so either a consumer setting dir="rtl" on the layout or an RTL host page flips it.
|
||
translateX has no logical form, which is why this is a mirror block rather than logical properties. */
|
||
.vtl:dir(rtl) .vtl-nav { left:auto; right:0; border-right:0; border-left:1px solid var(--vtl-border); }
|
||
.vtl:dir(rtl) .vtl-main { left:0; right:256px; }
|
||
.vtl:dir(rtl) .vtl-tab, .vtl:dir(rtl) .vtl-tier-btn { text-align:right; }
|
||
.vtl:dir(rtl) .vtl-meta, .vtl:dir(rtl) .vtl-td, .vtl:dir(rtl) .vtl-chev { margin-left:0; margin-right:auto; }
|
||
.vtl:dir(rtl) .vtl-chev:not(.open) { transform:scaleX(-1); }
|
||
.vtl:dir(rtl) .vtl-collapse-ic svg { transform:scaleX(-1); }
|
||
.vtl:dir(rtl) .vtl-fab { left:auto; right:calc(12px + env(safe-area-inset-right)); }
|
||
.vtl.rail-collapsed:dir(rtl) .vtl-nav { transform:translateX(184px); }
|
||
.vtl.rail-collapsed:dir(rtl) .vtl-main { left:0; right:72px; }
|
||
.vtl.rail-collapsed:dir(rtl) .vtl-collapse { padding-left:10px; padding-right:184px; }
|
||
.vtl.rail-collapsed:dir(rtl) .vtl-tab { padding-left:12px; padding-right:188px; }
|
||
.vtl.rail-collapsed:dir(rtl) .vtl-tier { padding-left:8px; padding-right:196px; }
|
||
@media (max-width: 760px) {
|
||
.vtl:dir(rtl) .vtl-nav { transform:translateX(100%); }
|
||
.vtl.nav-open:dir(rtl) .vtl-nav { transform:translateX(0); }
|
||
.vtl:dir(rtl) .vtl-main, .vtl.rail-collapsed:dir(rtl) .vtl-main { left:0; right:0; }
|
||
.vtl.rail-collapsed:dir(rtl) .vtl-nav { transform:translateX(100%); }
|
||
.vtl.rail-collapsed.nav-open:dir(rtl) .vtl-nav { transform:translateX(0); }
|
||
.vtl.rail-collapsed:dir(rtl) .vtl-collapse { padding-left:10px; padding-right:10px; }
|
||
.vtl.rail-collapsed:dir(rtl) .vtl-tab { padding-left:12px; padding-right:10px; }
|
||
.vtl.rail-collapsed:dir(rtl) .vtl-tier { padding-left:8px; padding-right:8px; }
|
||
}
|
||
`,ka=fs({name:"VerticalTabsLayout",props:{active:{type:String,default:""},title:{type:String,default:""},items:{type:Array,default:()=>[]},groups:{type:Array,default:()=>[]},navLabel:{type:String,default:"Sections"},labels:{type:Object,default:()=>({})},initialNavOpen:{type:Boolean,default:!0},header:{type:Boolean,default:!0},initialRailCollapsed:{type:Boolean,default:!1}},emits:["update:active"],setup(){$o(Ea,"vertical-tabs-layout")},data(){return{navOpen:this.initialNavOpen,railCollapsed:this.initialRailCollapsed,_tabEls:{},folderOverride:{},narrow:!1,_mql:null,_onMedia:null,activatedKeys:{},hostState:{},hostError:{},_hostSlots:{},_hostMounted:{}}},computed:{railShown(){return this.narrow?this.navOpen:!0},allRows(){if(this.groups&&this.groups.length){const e=[];for(const t of this.groups)for(const s of t.rows||[])e.push(s);return e}return this.items},orderedKeys(){return this.allRows.map(e=>e.key)},elementRows(){return this.allRows.filter(e=>e&&e.element)},mountedElementRows(){return this.elementRows.filter(e=>this.activatedKeys[e.key])}},watch:{active:{immediate:!0,handler(e){this.activateElement(e)}}},mounted(){try{window.matchMedia&&(this._mql=window.matchMedia("(max-width: 760px)"),this.narrow=this._mql.matches,this.reconcileForWidth(),this._onMedia=e=>{this.narrow=e.matches,this.reconcileForWidth()},this._mql.addEventListener?this._mql.addEventListener("change",this._onMedia):this._mql.addListener&&this._mql.addListener(this._onMedia))}catch{}this.$nextTick(()=>this.activateElement(this.active))},beforeUnmount(){try{this._mql&&this._onMedia&&(this._mql.removeEventListener?this._mql.removeEventListener("change",this._onMedia):this._mql.removeListener&&this._mql.removeListener(this._onMedia))}catch{}this._mql=null,this._onMedia=null},methods:{registerTab(e,t){t&&(this._tabEls[e]=t)},isNarrow(){return this.narrow},reconcileForWidth(){this.narrow?(this.navOpen=!1,this.railCollapsed=!1):this.navOpen=!0},label(e){const t={toggleList:"Toggle list",openViews:"Open the list of views",expandList:"Expand list",collapseList:"Collapse list",collapse:"Collapse"};return this.labels&&this.labels[e]||t[e]},expandRail(){!this.narrow&&this.railCollapsed&&(this.railCollapsed=!1)},toggleRail(){this.narrow?this.navOpen=!this.navOpen:this.railCollapsed=!this.railCollapsed},setHostSlot(e,t){t&&(this._hostSlots[e]=t,this.$nextTick(()=>this.mountHostElement(e)))},activateElement(e){!e||!this.elementRows.find(s=>s.key===e)||(this.activatedKeys[e]||(this.activatedKeys={...this.activatedKeys,[e]:!0},this.hostState={...this.hostState,[e]:"loading"}),this.$nextTick(()=>this.mountHostElement(e)))},mountHostElement(e){if(this._hostMounted[e])return;const t=this.elementRows.find(o=>o.key===e),s=this._hostSlots[e];!t||!s||(this._hostMounted[e]=!0,this.hostState={...this.hostState,[e]:"loading"},Sa(t.src).then(()=>La(t.element)).then(()=>{s.innerHTML="";const o=document.createElement(t.element),n=t.attrs||{};for(const i in n){const l=n[i],r=l!=null&&typeof l=="object"?JSON.stringify(l):String(l);try{o[i]=l}catch{}try{o.setAttribute(i,r)}catch{}}o.style.cssText="display:block;position:absolute;inset:0;width:100%;height:100%;",s.appendChild(o),this.hostState={...this.hostState,[e]:"ready"}}).catch(o=>{this._hostMounted[e]=!1,this.hostState={...this.hostState,[e]:"error"},this.hostError={...this.hostError,[e]:o&&o.message||String(o)}}))},iconSvg(e){return e?Li(e):""},initial(e){const t=(e||"").trim();return t?t.charAt(0).toUpperCase():"•"},isFolderClosed(e){const t=this.folderOverride[e.key];return t!=null?!t:e.open!==!0},toggleFolder(e){const t=this.folderOverride[e],s=(this.groups||[]).find(n=>n.key===e),o=t??(s&&s.open===!0);this.folderOverride={...this.folderOverride,[e]:!o}},pick(e){this.$emit("update:active",e),this.narrow&&(this.navOpen=!1)},onKey(e){const t=this.orderedKeys;if(!t.length)return;const s=t.indexOf(this.active);let o=-1;if(e.key==="ArrowDown"||e.key==="ArrowRight")o=(s+1)%t.length;else if(e.key==="ArrowUp"||e.key==="ArrowLeft")o=(s-1+t.length)%t.length;else if(e.key==="Home")o=0;else if(e.key==="End")o=t.length-1;else return;e.preventDefault();const n=t[o];this.pick(n),this.$nextTick(()=>{const i=this._tabEls[n];i&&i.focus&&i.focus()})}}}),Ca={key:0,class:"vtl-top"},Ta=["aria-expanded","aria-label"],Oa={class:"vtl-brand"},Aa={class:"vtl-title"},Ma={class:"vtl-meta"},Pa=["aria-expanded","aria-label"],Ra={class:"vtl-body"},Na=["aria-label","aria-hidden","role","aria-orientation"],Ia=["aria-expanded","aria-label"],Ha=["innerHTML"],Da={class:"vtl-collapse-tx"},Fa=["aria-expanded","onClick"],ja={key:0,class:"vtl-cap"},Va={class:"vtl-tl"},za={key:1,class:"vtl-td"},Ka=["innerHTML"],Ua={key:1,class:"vtl-tier"},Ba={key:0,class:"vtl-cap"},Wa={class:"vtl-tl"},qa={key:1,class:"vtl-td"},Ga={class:"vtl-rows"},Xa=["aria-selected","tabindex","onClick"],Ya=["innerHTML"],Ja={key:1,class:"vtl-tab-emoji","aria-hidden":"true"},Za={key:2,class:"vtl-tab-fallback","aria-hidden":"true"},Qa={class:"vtl-tab-text"},ec={class:"vtl-tab-label"},tc={key:0,class:"vtl-tab-badge"},sc={key:0,class:"vtl-tab-sub"},oc=["innerHTML"],nc=["aria-selected","tabindex","onClick"],ic=["innerHTML"],lc={key:1,class:"vtl-tab-emoji","aria-hidden":"true"},rc={key:2,class:"vtl-tab-fallback","aria-hidden":"true"},ac={class:"vtl-tab-text"},cc={class:"vtl-tab-label"},dc={key:0,class:"vtl-tab-sub"},pc={class:"vtl-main"},fc={class:"vtl-content"},uc=["hidden"],hc={key:0,class:"vtl-host-hint"},gc={key:1,class:"vtl-host-hint err"};function bc(e,t,s,o,n,i){return E(),k("div",{class:_e(["vtl",{"nav-open":e.navOpen,"rail-collapsed":e.railCollapsed,"no-header":!e.header}])},[e.header?(E(),k("header",Ca,[L("button",{class:"vtl-menu",type:"button","aria-expanded":String(e.navOpen),onClick:t[0]||(t[0]=l=>e.navOpen=!e.navOpen),"aria-label":e.label("toggleList")},"☰",8,Ta),L("span",Oa,[Tt(e.$slots,"brand")]),L("b",Aa,M(e.title),1),L("span",Ma,[Tt(e.$slots,"meta")])])):Q("",!0),e.narrow&&!e.header&&!e.navOpen?(E(),k("button",{key:1,class:"vtl-fab",type:"button","aria-expanded":String(e.navOpen),onClick:t[1]||(t[1]=l=>e.navOpen=!0),"aria-label":e.label("openViews")},"☰",8,Pa)):Q("",!0),L("div",Ra,[L("nav",{class:"vtl-nav","aria-label":e.navLabel,"aria-hidden":String(!e.railShown),role:e.$slots.rail?null:"tablist","aria-orientation":e.$slots.rail?null:"vertical"},[L("button",{type:"button",class:"vtl-collapse","aria-expanded":String(!e.railCollapsed),"aria-label":e.railCollapsed?e.label("expandList"):e.label("collapseList"),onClick:t[2]||(t[2]=(...l)=>e.toggleRail&&e.toggleRail(...l))},[L("span",{class:"vtl-collapse-ic","aria-hidden":"true",innerHTML:e.iconSvg("chevron")},null,8,Ha),L("span",Da,M(e.label("collapse")),1)],8,Ia),e.$slots.rail?Tt(e.$slots,"rail",{collapsed:e.railCollapsed&&!e.narrow,expand:e.expandRail,pick:e.pick},void 0,void 0,0):e.groups&&e.groups.length?(E(!0),k(X,{key:1},Ke(e.groups,l=>(E(),k("div",{class:"vtl-grp",key:l.key},[l.folder?(E(),k("button",{key:0,type:"button",class:"vtl-tier vtl-tier-btn","aria-expanded":String(!e.isFolderClosed(l)),onClick:r=>e.toggleFolder(l.key)},[l.badge?(E(),k("span",ja,M(l.badge),1)):Q("",!0),L("span",Va,M(l.label),1),l.count!=null?(E(),k("span",za,M(l.count),1)):Q("",!0),L("span",{class:_e(["vtl-chev",{open:!e.isFolderClosed(l)}]),"aria-hidden":"true",innerHTML:e.iconSvg("chevron")},null,10,Ka)],8,Fa)):(E(),k("div",Ua,[l.badge?(E(),k("span",Ba,M(l.badge),1)):Q("",!0),L("span",Wa,M(l.label),1),l.count!=null?(E(),k("span",qa,M(l.count),1)):Q("",!0)])),ds(L("div",Ga,[(E(!0),k(X,null,Ke(l.rows,r=>(E(),k("button",{key:r.key,type:"button",role:"tab",class:_e(["vtl-tab",{active:r.key===e.active}]),"aria-selected":String(r.key===e.active),tabindex:r.key===e.active?0:-1,ref_for:!0,ref:a=>e.registerTab(r.key,a),onClick:a=>e.pick(r.key),onKeydown:t[3]||(t[3]=a=>e.onKey(a))},[r.icon?(E(),k("span",{key:0,class:"vtl-tab-ic","aria-hidden":"true",innerHTML:e.iconSvg(r.icon)},null,8,Ya)):r.emoji?(E(),k("span",Ja,M(r.emoji),1)):(E(),k("span",Za,M(e.initial(r.label)),1)),L("span",Qa,[L("span",ec,[gt(M(r.label),1),r.badge?(E(),k("span",tc,M(r.badge),1)):Q("",!0)]),r.sub?(E(),k("span",sc,[L("span",{innerHTML:r.sub},null,8,oc)])):Q("",!0)])],42,Xa))),128))],512),[[vo,!l.folder||!e.isFolderClosed(l)]])]))),128)):(E(!0),k(X,{key:2},Ke(e.items,l=>(E(),k("button",{key:l.key,type:"button",role:"tab",class:_e(["vtl-tab",{active:l.key===e.active}]),"aria-selected":String(l.key===e.active),tabindex:l.key===e.active?0:-1,ref_for:!0,ref:r=>e.registerTab(l.key,r),onClick:r=>e.pick(l.key),onKeydown:t[4]||(t[4]=r=>e.onKey(r))},[l.icon?(E(),k("span",{key:0,class:"vtl-tab-ic","aria-hidden":"true",innerHTML:e.iconSvg(l.icon)},null,8,ic)):l.emoji?(E(),k("span",lc,M(l.emoji),1)):(E(),k("span",rc,M(e.initial(l.label)),1)),L("span",ac,[L("span",cc,M(l.label),1),l.sub?(E(),k("span",dc,M(l.sub),1)):Q("",!0)])],42,nc))),128))],8,Na),L("main",pc,[e.header?Tt(e.$slots,"toolbar",{},void 0,void 0,0):Q("",!0),L("div",fc,[(E(!0),k(X,null,Ke(e.mountedElementRows,l=>ds((E(),k("section",{key:l.key,class:"vtl-host",hidden:l.key!==e.active},[L("div",{class:"vtl-host-slot",ref_for:!0,ref:r=>e.setHostSlot(l.key,r)},null,512),e.hostState[l.key]==="loading"?(E(),k("div",hc,"Loading "+M(l.label)+"…",1)):e.hostState[l.key]==="error"?(E(),k("div",gc,[gt(" Could not load "+M(l.label)+".",1),t[5]||(t[5]=L("br",null,null,-1)),L("small",null,M(e.hostError[l.key]),1)])):Q("",!0)],8,uc)),[[vo,l.key===e.active]])),128)),Tt(e.$slots,"default")])])])],2)}const vc=_o(ka,[["render",bc],["styles",[_a]]]),mc='.st{display:flex;flex-direction:column;margin:0 -12px}.st-bar{position:sticky;top:0;z-index:3;display:flex;align-items:center;gap:6px;padding:8px 12px;background:#fff}.st-find{flex:1 1 auto;min-width:0;display:flex;align-items:center;gap:6px;height:30px;padding:0 8px;border:1px solid #d1d4cd;border-radius:8px;background:#f3f3f1;color:#6d766e}.st-find:focus-within{border-color:#92b195;background:#fff}.st-find-ic{display:inline-flex}.st-find-ic svg{width:14px;height:14px}.st-find-in{flex:1 1 auto;min-width:0;border:0;outline:0;background:none;font:inherit;font-size:13px;color:#3b463d}.st-tool{flex:0 0 auto;width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:8px;background:none;color:#6d766e;cursor:pointer}.st-tool:hover{background:#f3f3f1;color:#3b463d}.st-tool:focus-visible{outline:2px solid #92b195;outline-offset:-2px}.st-tool svg{width:16px;height:16px}.st-tree{display:flex;flex-direction:column;padding:0 0 8px;outline:0}.st-row{position:relative;display:flex;align-items:center;gap:6px;height:28px;box-sizing:border-box;padding-block:0;padding-inline:calc(8px + var(--st-depth) * 14px) 10px;font-size:13px;color:#3b463d;cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;outline:0}.st-row:hover{background:#f3f3f1}.st-row:focus-visible{box-shadow:inset 0 0 0 1px #92b195}.st-row.active{background:#92b1953d}.st-row.active:after{content:"";position:absolute;inset-inline-start:0;top:4px;bottom:4px;width:3px;border-start-end-radius:3px;border-end-end-radius:3px;background:#92b195}.st-row.alias.active{background:#92b1951f}.st-sec{position:sticky;top:46px;z-index:2;height:30px;margin-top:6px;background:#fff;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#6d766e;border-top:1px solid #eceee9}.st-sec:first-child{margin-top:0;border-top:0}.st-sec:hover{background:#fff;color:#3b463d}.st-cap{flex:0 0 auto;font:700 10px/1 system-ui,sans-serif;letter-spacing:.3px;padding:3px 6px;border-radius:999px;background:#92b195;color:#1d2a1f}.st-sec-label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.st-twisty,.st-twisty-sp{flex:0 0 16px;width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;color:#6d766e}.st-twisty svg{width:14px;height:14px;transition:transform .12s ease}.st-row[aria-expanded=true]>.st-twisty svg{transform:rotate(90deg)}.st:dir(rtl) .st-twisty svg{transform:scaleX(-1)}.st:dir(rtl) .st-row[aria-expanded=true]>.st-twisty svg{transform:rotate(90deg)}.st-ic{flex:0 0 16px;display:inline-flex;color:#6d766e}.st-ic svg{width:16px;height:16px}.st-row.active .st-ic{color:#5f8a63}.st-label{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.st-desc{flex:1 1 0;min-width:0;overflow:hidden;text-overflow:ellipsis;font:11px/1 ui-monospace,Menlo,monospace;color:#8a928b}.st-part{flex:0 0 auto;font:600 9px/1 system-ui,sans-serif;text-transform:uppercase;letter-spacing:.3px;padding:2px 4px;border:1px solid #92b195;border-radius:4px;color:#5f8a63}.st-count{flex:0 0 auto;margin-inline-start:auto;min-width:18px;text-align:right;font-size:11px;font-weight:500;letter-spacing:0;color:#6d766e}.st-guide{position:absolute;top:0;bottom:0;inset-inline-start:calc(15px + var(--st-g) * 14px);border-inline-start:1px solid #dfe2db;pointer-events:none}.st-row:hover>.st-guide{border-inline-start-color:#c4c8c0}.st-empty{margin:12px;font-size:13px;color:#6d766e}.st-activity{display:flex;flex-direction:column;gap:4px}.st-act{position:relative;display:flex;align-items:center;justify-content:center;width:48px;height:44px;margin-inline-start:172px;padding:0;border:0;border-radius:10px;background:none;color:#6d766e;cursor:pointer}.st-act:hover,.st-act.active{background:#f3f3f1;color:#3b463d}.st-act:focus-visible{outline:2px solid #92b195;outline-offset:-2px}.st-act-ic{display:inline-flex}.st-act-ic svg{width:20px;height:20px}.st-act-n{position:absolute;right:6px;bottom:5px;font:700 9px/1 system-ui,sans-serif;color:#5f8a63}',xc='.st { display:flex; flex-direction:column; margin:0 -12px; }.st-bar { position:sticky; top:0; z-index:3; display:flex; align-items:center; gap:6px; padding:8px 12px 8px; background:#ffffff; }.st-find { flex:1 1 auto; min-width:0; display:flex; align-items:center; gap:6px; height:30px; padding:0 8px; border:1px solid #d1d4cd; border-radius:8px; background:#f3f3f1; color:#6d766e; }.st-find:focus-within { border-color:#92b195; background:#ffffff; }.st-find-ic { display:inline-flex; } .st-find-ic svg { width:14px; height:14px; }.st-find-in { flex:1 1 auto; min-width:0; border:0; outline:0; background:none; font:inherit; font-size:13px; color:#3b463d; }.st-tool { flex:0 0 auto; width:30px; height:30px; display:inline-flex; align-items:center; justify-content:center; padding:0; border:0; border-radius:8px; background:none; color:#6d766e; cursor:pointer; }.st-tool:hover { background:#f3f3f1; color:#3b463d; } .st-tool:focus-visible { outline:2px solid #92b195; outline-offset:-2px; }.st-tool svg { width:16px; height:16px; }.st-tree { display:flex; flex-direction:column; padding:0 0 8px; outline:0; }.st-row { position:relative; display:flex; align-items:center; gap:6px; height:28px; box-sizing:border-box; padding-block:0; padding-inline:calc(8px + var(--st-depth) * 14px) 10px; font-size:13px; color:#3b463d; cursor:pointer; white-space:nowrap; user-select:none; outline:0; }.st-row:hover { background:#f3f3f1; }.st-row:focus-visible { box-shadow:inset 0 0 0 1px #92b195; }.st-row.active { background:rgba(146,177,149,.24); }.st-row.active::after { content:""; position:absolute; inset-inline-start:0; top:4px; bottom:4px; width:3px; border-start-end-radius:3px; border-end-end-radius:3px; background:#92b195; }.st-row.alias.active { background:rgba(146,177,149,.12); }.st-sec { position:sticky; top:46px; z-index:2; height:30px; margin-top:6px; background:#ffffff; font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:#6d766e; border-top:1px solid #eceee9; }.st-sec:first-child { margin-top:0; border-top:0; }.st-sec:hover { background:#ffffff; color:#3b463d; }.st-cap { flex:0 0 auto; font:700 10px/1 system-ui,sans-serif; letter-spacing:.3px; padding:3px 6px; border-radius:999px; background:#92b195; color:#1d2a1f; }.st-sec-label { flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; }.st-twisty, .st-twisty-sp { flex:0 0 16px; width:16px; height:16px; display:inline-flex; align-items:center; justify-content:center; color:#6d766e; }.st-twisty svg { width:14px; height:14px; transition:transform .12s ease; }.st-row[aria-expanded="true"] > .st-twisty svg { transform:rotate(90deg); }.st:dir(rtl) .st-twisty svg { transform:scaleX(-1); } .st:dir(rtl) .st-row[aria-expanded="true"] > .st-twisty svg { transform:rotate(90deg); }.st-ic { flex:0 0 16px; display:inline-flex; color:#6d766e; } .st-ic svg { width:16px; height:16px; }.st-row.active .st-ic { color:#5f8a63; }.st-label { flex:0 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; }.st-desc { flex:1 1 0; min-width:0; overflow:hidden; text-overflow:ellipsis; font:11px/1 ui-monospace,Menlo,monospace; color:#8a928b; }.st-part { flex:0 0 auto; font:600 9px/1 system-ui,sans-serif; text-transform:uppercase; letter-spacing:.3px; padding:2px 4px; border:1px solid #92b195; border-radius:4px; color:#5f8a63; }.st-count { flex:0 0 auto; margin-inline-start:auto; min-width:18px; text-align:right; font-size:11px; font-weight:500; letter-spacing:0; color:#6d766e; }.st-guide { position:absolute; top:0; bottom:0; inset-inline-start:calc(15px + var(--st-g) * 14px); border-inline-start:1px solid #dfe2db; pointer-events:none; }.st-row:hover > .st-guide { border-inline-start-color:#c4c8c0; }.st-empty { margin:12px; font-size:13px; color:#6d766e; }.st-activity { display:flex; flex-direction:column; gap:4px; }.st-act { position:relative; display:flex; align-items:center; justify-content:center; width:48px; height:44px; margin-inline-start:172px; padding:0; border:0; border-radius:10px; background:none; color:#6d766e; cursor:pointer; }.st-act:hover, .st-act.active { background:#f3f3f1; color:#3b463d; }.st-act:focus-visible { outline:2px solid #92b195; outline-offset:-2px; }.st-act-ic { display:inline-flex; } .st-act-ic svg { width:20px; height:20px; }.st-act-n { position:absolute; right:6px; bottom:5px; font:700 9px/1 system-ui,sans-serif; color:#5f8a63; }',yc='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="4" width="16" height="16" rx="3"/><line x1="8.5" y1="12" x2="15.5" y2="12"/></svg>',wc={filterPlaceholder:"Filter plugins",collapseAll:"Collapse all",noMatch:"No plugin matches “{query}”.",treeLabel:"Plugins by capability",openSection:"Open {cap}, {label}",part:"part"},$c='<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 6 15 12 9 18"/></svg>',_c=fs({name:"StudioTree",props:{sections:{type:Array,default:()=>[]},active:{type:String,default:""},collapsed:{type:Boolean,default:!1},pick:{type:Function,default:null},expand:{type:Function,default:null},strings:{type:Object,default:()=>({})}},emits:["select"],setup(){$o(xc,"studio-tree")},data(){const e=this.readState();return{query:"",focusId:"",secClosed:e.sec||{},nodeOpen:e.node||{},chev:$c,collapseAllSvg:yc}},computed:{byId(){const e=new Map;for(const t of this.sections)for(const s of t.nodes)e.set(s.id,s);return e},q(){return this.query.trim().toLowerCase()},kept(){if(!this.q)return null;const e=new Set;for(const t of this.sections)for(const s of t.nodes){if(!(s.label.toLowerCase().includes(this.q)||String(s.desc||"").toLowerCase().includes(this.q)))continue;e.add(s.id);let n=s.parent;for(;n;)e.add(n),n=this.byId.get(n)&&this.byId.get(n).parent}return e},visible(){const e=[];for(const t of this.sections){const s=this.kept?t.nodes.filter(o=>this.kept.has(o.id)):t.nodes;if(!(this.kept&&!s.length)&&(e.push({id:"sec:"+t.id,section:!0,sectionId:t.id,level:1,depth:0,expandable:!0,cap:t.cap,label:t.label,title:t.title||"",count:t.nodes.filter(o=>o.depth===0).length}),!(!this.kept&&this.secClosed[t.id])))for(const o of s)!this.kept&&!this.ancestorsOpen(o)||e.push({...o,sectionId:t.id,level:o.depth+2,expandable:!!o.kids,alias:o.depth>0})}return e},activeSectionId(){for(const e of this.sections)if(e.nodes.some(t=>t.depth===0&&t.target===this.active))return e.id;return""}},watch:{active:{handler(){this.reveal()},immediate:!0},sections(){this.reveal()},query(e){e&&this.visible.length&&(this.focusId=this.visible[0].id)}},methods:{svg(e){return e?Li(e):""},str(e,t){let s=this.strings[e]||wc[e]||e;if(t)for(const o in t)s=s.split("{"+o+"}").join(String(t[o]));return s},storageKey(){return"dx-studio-tree:"+(typeof location<"u"&&location.pathname||"")},readState(){try{return JSON.parse(window.localStorage.getItem(this.storageKey())||"{}")||{}}catch{return{}}},saveState(){try{window.localStorage.setItem(this.storageKey(),JSON.stringify({sec:this.secClosed,node:this.nodeOpen}))}catch{}},ancestorsOpen(e){let t=e.parent;for(;t;){if(!this.nodeOpen[t])return!1;t=this.byId.get(t)&&this.byId.get(t).parent}return!0},isOpen(e){return this.kept?!0:e.section?!this.secClosed[e.sectionId]:!!this.nodeOpen[e.id]},setOpen(e,t){e.section?this.secClosed={...this.secClosed,[e.sectionId]:!t}:this.nodeOpen={...this.nodeOpen,[e.id]:t},this.saveState()},toggle(e){e.expandable&&this.setOpen(e,!this.isOpen(e))},collapseAll(){this.nodeOpen={},this.saveState();const e=this.visible.find(t=>!t.section&&t.target===this.active&&t.depth===0);e&&(this.focusId=e.id)},rowClass(e){return{"st-row":!0,"st-sec":!!e.section,active:!e.section&&e.target===this.active,alias:!!e.alias}},setRow(e,t){this._rows||(this._rows={}),t?this._rows[e]=t:delete this._rows[e]},activate(e){if(e.section){this.toggle(e);return}e.expandable&&!this.isOpen(e)&&this.setOpen(e,!0),e.target&&(this.pick?this.pick(e.target):this.$emit("select",e.target))},onRowClick(e){this.focusId=e.id,this.activate(e)},focusRow(e){e&&(this.focusId=e,this.$nextTick(()=>{const t=this._rows&&this._rows[e];t&&(t.focus({preventScroll:!0}),t.scrollIntoView({block:"nearest"}))}))},onTreeKey(e){const t=this.visible;if(!t.length)return;const s=Math.max(0,t.findIndex(i=>i.id===this.focusId)),o=t[s],n=i=>i.section?"":i.parent||"sec:"+i.sectionId;switch(e.key){case"ArrowDown":this.focusRow((t[s+1]||o).id);break;case"ArrowUp":this.focusRow((t[s-1]||o).id);break;case"Home":this.focusRow(t[0].id);break;case"End":this.focusRow(t[t.length-1].id);break;case"ArrowRight":if(!o.expandable)break;this.isOpen(o)?t[s+1]&&t[s+1].level>o.level&&this.focusRow(t[s+1].id):this.setOpen(o,!0);break;case"ArrowLeft":o.expandable&&this.isOpen(o)&&!this.kept?this.setOpen(o,!1):this.focusRow(n(o));break;case"Enter":case" ":this.activate(o);break;default:if(e.key.length===1&&/\S/.test(e.key)&&!e.ctrlKey&&!e.metaKey&&!e.altKey){const i=e.key.toLowerCase(),r=t.slice(s+1).concat(t.slice(0,s+1)).find(a=>String(a.label).toLowerCase().startsWith(i));r&&this.focusRow(r.id);break}return}e.preventDefault()},onFindKey(e){e.key==="Escape"?(this.query="",e.preventDefault()):e.key==="ArrowDown"&&this.visible.length&&(this.focusRow(this.visible[0].id),e.preventDefault())},reveal(){if(!this.active||!this.sections.length)return;let e=null;for(const t of this.sections)if(e=t.nodes.find(s=>s.depth===0&&s.target===this.active),e){this.secClosed[t.id]&&(this.secClosed={...this.secClosed,[t.id]:!1},this.saveState());break}e&&((!this.focusId||!this.byId.has(this.focusId)||this.byId.get(this.focusId).target!==this.active)&&(this.focusId=e.id),this.$nextTick(()=>{const t=this._rows&&this._rows[e.id];t&&t.scrollIntoView&&t.scrollIntoView({block:"nearest"})}))},openSectionFromActivity(e){this.secClosed[e]&&(this.secClosed={...this.secClosed,[e]:!1},this.saveState()),this.expand&&this.expand(),this.$nextTick(()=>this.focusRow("sec:"+e))}}}),Sc={key:0,class:"st-activity"},Lc=["aria-label","onClick"],Ec=["innerHTML"],kc={class:"st-act-n","aria-hidden":"true"},Cc={key:1,class:"st"},Tc={class:"st-bar"},Oc={class:"st-find"},Ac=["innerHTML"],Mc=["placeholder","aria-label"],Pc=["aria-label","title"],Rc=["innerHTML"],Nc=["aria-label"],Ic=["aria-level","aria-expanded","aria-selected","tabindex","title","onClick","onFocus"],Hc=["innerHTML"],Dc={class:"st-cap"},Fc={class:"st-sec-label"},jc={class:"st-count"},Vc=["innerHTML","onClick"],zc={key:1,class:"st-twisty-sp","aria-hidden":"true"},Kc=["innerHTML"],Uc={class:"st-label"},Bc={key:2,class:"st-part"},Wc={class:"st-desc"},qc={key:3,class:"st-count"},Gc={key:0,class:"st-empty"};function Xc(e,t,s,o,n,i){return e.collapsed?(E(),k("div",Sc,[(E(!0),k(X,null,Ke(e.sections,l=>(E(),k("button",{key:l.id,type:"button",class:_e(["st-act",{active:l.id===e.activeSectionId}]),"aria-label":e.str("openSection",{cap:"CAP "+l.cap,label:l.label}),onClick:r=>e.openSectionFromActivity(l.id)},[L("span",{class:"st-act-ic","aria-hidden":"true",innerHTML:e.svg(l.icon)},null,8,Ec),L("span",kc,M(l.cap),1)],10,Lc))),128))])):(E(),k("div",Cc,[L("div",Tc,[L("label",Oc,[L("span",{class:"st-find-ic","aria-hidden":"true",innerHTML:e.svg("search")},null,8,Ac),ds(L("input",{ref:"find",type:"search",class:"st-find-in","onUpdate:modelValue":t[0]||(t[0]=l=>e.query=l),placeholder:e.str("filterPlaceholder"),"aria-label":e.str("filterPlaceholder"),onKeydown:t[1]||(t[1]=(...l)=>e.onFindKey&&e.onFindKey(...l))},null,40,Mc),[[oa,e.query]])]),L("button",{type:"button",class:"st-tool","aria-label":e.str("collapseAll"),title:e.str("collapseAll"),onClick:t[2]||(t[2]=(...l)=>e.collapseAll&&e.collapseAll(...l))},[L("span",{"aria-hidden":"true",innerHTML:e.collapseAllSvg},null,8,Rc)],8,Pc)]),L("div",{class:"st-tree",role:"tree","aria-label":e.str("treeLabel"),onKeydown:t[3]||(t[3]=(...l)=>e.onTreeKey&&e.onTreeKey(...l))},[(E(!0),k(X,null,Ke(e.visible,l=>(E(),k("div",{key:l.id,ref_for:!0,ref:r=>e.setRow(l.id,r),role:"treeitem","aria-level":l.level,"aria-expanded":l.expandable?String(e.isOpen(l)):null,"aria-selected":l.section?null:String(l.target===e.active),tabindex:l.id===e.focusId?0:-1,class:_e(e.rowClass(l)),style:xt({"--st-depth":l.depth}),title:l.title||null,onClick:r=>e.onRowClick(l),onFocus:r=>e.focusId=l.id},[l.section?(E(),k(X,{key:0},[L("span",{class:"st-twisty","aria-hidden":"true",innerHTML:e.chev},null,8,Hc),L("span",Dc,"CAP "+M(l.cap),1),L("span",Fc,M(l.label),1),L("span",jc,M(l.count),1)],64)):(E(),k(X,{key:1},[(E(!0),k(X,null,Ke(l.depth,r=>(E(),k("span",{key:r,class:"st-guide",style:xt({"--st-g":r-1}),"aria-hidden":"true"},null,4))),128)),l.expandable?(E(),k("span",{key:0,class:"st-twisty","aria-hidden":"true",innerHTML:e.chev,onClick:la(r=>e.toggle(l),["stop"])},null,8,Vc)):(E(),k("span",zc)),L("span",{class:"st-ic","aria-hidden":"true",innerHTML:e.svg(l.icon)},null,8,Kc),L("span",Uc,M(l.label),1),l.part?(E(),k("span",Bc,M(e.str("part")),1)):Q("",!0),L("span",Wc,M(l.desc),1),l.expandable?(E(),k("span",qc,M(l.kids),1)):Q("",!0)],64))],46,Ic))),128)),e.query&&!e.visible.length?(E(),k("p",Gc,M(e.str("noMatch",{query:e.query})),1)):Q("",!0)],40,Nc)]))}const Yc=_o(_c,[["render",Xc],["styles",[mc]]]),So=[{code:"en",name:"English",nativeName:"English",flag:"🇺🇸"},{code:"es",name:"Spanish",nativeName:"Español",flag:"🇪🇸"},{code:"fr",name:"French",nativeName:"Français",flag:"🇫🇷"},{code:"pt",name:"Portuguese",nativeName:"Português",flag:"🇵🇹"},{code:"ar",name:"Arabic",nativeName:"العربية",flag:"🇸🇦",dir:"rtl"},{code:"ru",name:"Russian",nativeName:"Русский",flag:"🇷🇺"},{code:"de",name:"German",nativeName:"Deutsch",flag:"🇩🇪",hideFromSwitcher:!0},{code:"hi",name:"Hindi",nativeName:"हिन्दी",flag:"🇮🇳",hideFromSwitcher:!0}],Jc=So.filter(e=>!e.hideFromSwitcher);function Zc(e){return So.find(t=>t.code===e)}function Ei(e){const t=String(e||"").split("-")[0].toLowerCase();return So.some(s=>s.code===t)?t:"en"}const ki="doxa-maps:locale";function Qc(){try{const e=localStorage.getItem(ki);if(e)return Ei(e)}catch{}return Ei(navigator==null?void 0:navigator.language)}function ed(e){try{localStorage.setItem(ki,e)}catch{}}const td=":host{display:block;position:relative;height:var(--plugin-studio-height, 85vh);min-height:480px}:host([hidden]){display:none}.ps-logo{display:inline-flex;align-items:center}.ps-logo svg{display:block}.ps-count{color:#6d766e}.ps-locale{position:relative;display:inline-flex}.ps-locale-btn{display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:12px;padding:4px 9px;border:1px solid #d1d4cd;border-radius:8px;background:#d1d4cd;color:#3b463d;cursor:pointer}.ps-locale-btn:hover{background:#d1d4cd}.ps-flag{font-size:13px;line-height:1}.ps-locale-name{max-width:11ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ps-dots{color:#6d766e}.ps-locale-menu{position:absolute;top:100%;right:0;margin-top:4px;z-index:30;min-width:180px;list-style:none;padding:6px;border:1px solid #d1d4cd;border-radius:10px;background:#fff;box-shadow:0 12px 32px #00000080;max-height:320px;overflow:auto}.ps-locale-opt{display:flex;align-items:center;gap:8px;width:100%;text-align:left;font:inherit;font-size:13px;padding:7px 9px;border:0;border-radius:7px;background:none;color:#3b463d;cursor:pointer}.ps-locale-opt:hover,.ps-locale-opt.active{background:#d1d4cd;color:#3b463d}.ps-locale-opt.active .ps-locale-name{color:#92b195}.ps-locale-en{margin-left:auto;font-size:11px;color:#6d766e}.ps-toolbar{display:flex;flex-direction:column;gap:8px;padding:10px 12px 0}.ps-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ps-bar-t{flex:1 1 auto;min-width:0}.ps-bar-t b{font-size:15px;color:#3b463d}.ps-bar-sub{display:block;font-size:12px;color:#6d766e}.ps-btn{font:inherit;font-size:12px;padding:5px 10px;border:1px solid #d1d4cd;border-radius:8px;background:#d1d4cd;color:#3b463d;cursor:pointer;white-space:nowrap}.ps-btn:hover{background:#d1d4cd}.ps-embed{display:flex;flex-direction:column;gap:6px;padding:8px;border:1px solid #d1d4cd;border-radius:8px;background:#f3f3f1}.ps-embed label{font-size:12px;color:#6d766e;display:flex;justify-content:space-between;align-items:center}.ps-embed textarea{width:100%;height:58px;font:11px/1.35 ui-monospace,Menlo,monospace;border:1px solid #d1d4cd;border-radius:6px;background:#fff;color:#3b463d;padding:6px;resize:vertical}.ps-stage{position:absolute;top:10px;right:12px;bottom:12px;left:12px;border:1px solid #d1d4cd;border-radius:10px;overflow:hidden;background:#f3f3f1}.ps-pane{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;--profile-min-h: 0}.ps-slot{position:relative;min-height:100%}.ps-slot>*{min-height:0;max-height:none}.ps-hint{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;text-align:center;color:#6d766e;font-size:13px;padding:20px}.ps-hint.err{color:#f87171}.ps-hint small{color:#6d766e}",sd=`
|
||
:host { display:block; position:relative; height:var(--plugin-studio-height, 85vh); min-height:480px; }
|
||
:host([hidden]) { display:none; }
|
||
.ps-logo { display:inline-flex; align-items:center; }
|
||
.ps-logo svg { display:block; }
|
||
.ps-count { color:#6d766e; }
|
||
.ps-locale { position:relative; display:inline-flex; }
|
||
.ps-locale-btn { display:inline-flex; align-items:center; gap:6px; font:inherit; font-size:12px; padding:4px 9px; border:1px solid #d1d4cd; border-radius:8px; background:#d1d4cd; color:#3b463d; cursor:pointer; }
|
||
.ps-locale-btn:hover { background:#d1d4cd; }
|
||
.ps-flag { font-size:13px; line-height:1; }
|
||
.ps-locale-name { max-width:11ch; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
|
||
.ps-dots { color:#6d766e; }
|
||
.ps-locale-menu { position:absolute; top:100%; right:0; margin-top:4px; z-index:30; min-width:180px; list-style:none; padding:6px; border:1px solid #d1d4cd; border-radius:10px; background:#ffffff; box-shadow:0 12px 32px rgba(0,0,0,.5); max-height:320px; overflow:auto; }
|
||
.ps-locale-opt { display:flex; align-items:center; gap:8px; width:100%; text-align:left; font:inherit; font-size:13px; padding:7px 9px; border:0; border-radius:7px; background:none; color:#3b463d; cursor:pointer; }
|
||
.ps-locale-opt:hover { background:#d1d4cd; color:#3b463d; }
|
||
.ps-locale-opt.active { background:#d1d4cd; color:#3b463d; }
|
||
.ps-locale-opt.active .ps-locale-name { color:#92b195; }
|
||
.ps-locale-en { margin-left:auto; font-size:11px; color:#6d766e; }
|
||
.ps-toolbar { display:flex; flex-direction:column; gap:8px; padding:10px 12px 0; }
|
||
.ps-bar { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
|
||
.ps-bar-t { flex:1 1 auto; min-width:0; }
|
||
.ps-bar-t b { font-size:15px; color:#3b463d; }
|
||
.ps-bar-sub { display:block; font-size:12px; color:#6d766e; }
|
||
.ps-btn { font:inherit; font-size:12px; padding:5px 10px; border:1px solid #d1d4cd; border-radius:8px; background:#d1d4cd; color:#3b463d; cursor:pointer; white-space:nowrap; }
|
||
.ps-btn:hover { background:#d1d4cd; }
|
||
.ps-embed { display:flex; flex-direction:column; gap:6px; padding:8px; border:1px solid #d1d4cd; border-radius:8px; background:#f3f3f1; }
|
||
.ps-embed label { font-size:12px; color:#6d766e; display:flex; justify-content:space-between; align-items:center; }
|
||
.ps-embed textarea { width:100%; height:58px; font:11px/1.35 ui-monospace,Menlo,monospace; border:1px solid #d1d4cd; border-radius:6px; background:#ffffff; color:#3b463d; padding:6px; resize:vertical; }
|
||
.ps-stage { position:absolute; inset:10px 12px 12px; border:1px solid #d1d4cd; border-radius:10px; overflow:hidden; background:#f3f3f1; }
|
||
/* ★ THE PANE OWNS THE SCROLL (BUG-STILL-CANNOT-SCROLL-DOWN-TO-THE-GRID, measured 2026-09-22).
|
||
A scroll-stack composite (dashboard-plus-grid: an 88svh dashboard band + the people-groups grid
|
||
below it) mounted here measured scrollHeight 3380 / clientHeight 769 — 2611px of real, mounted,
|
||
populated content that NO element could scroll to, because this pane was position:absolute;
|
||
inset:0 with the default overflow:visible inside a .ps-stage that is overflow:hidden.
|
||
Document scrollHeight was 900, exactly === clientHeight, so a wheel gesture had nothing to move.
|
||
The identical composite is PERFECT standalone (document 2960/900, wheel reaches 2060) because its
|
||
generated leaf gives the DOCUMENT the scroll — a host that pins the pane to viewport height has
|
||
to own that scroll itself.
|
||
auto, not scroll: only a pane whose content really exceeds its box gets a scrollbar, so the map
|
||
tabs stay scrollbar-free (see the dvh floor note below, which is what makes that true). */
|
||
.ps-pane { position:absolute; inset:0; overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain; --profile-min-h:0; }
|
||
/* NOT absolute-inset: that pinned the mount point to the pane's height and re-created the same trap
|
||
one level down (an absolutely positioned child cannot grow a scroll container). min-height:100%
|
||
keeps a fixed-viewport map filling the pane while letting a taller composite grow it. */
|
||
.ps-slot { position:relative; min-height:100%; }
|
||
/* ★ THE dvh FLOOR, NEUTRALISED FOR HOSTED ELEMENTS (measured 2026-09-22, caught by the regression
|
||
check on this very fix — my first version of the rule above was WRONG about this).
|
||
I claimed a fixed-viewport map "fills this box exactly, so auto is a no-op for it". It is not.
|
||
doxa-research-map ships .profile-loader { height:100%; min-height:100dvh }, and those two resolve
|
||
against DIFFERENT bases: height:100% against the pane (769px here, because the pane sits inside a
|
||
.ps-stage inset by the studio chrome), min-height:100dvh against the VIEWPORT (900px). The floor
|
||
wins, the element is 131px taller than its container, and overflow:auto then correctly reported a
|
||
scrollbar on a map tab that should never have one — a real regression my reasoning had ruled out.
|
||
The dvh floor is deliberate and must stay for the STANDALONE leaf, where it fixes the opposite
|
||
bug (BUG-UPG100-NESTED-ELEMENTS-ZERO-HEIGHT: min-height:100% against a body with no definite
|
||
height collapses to 0). It is only wrong HERE, where the pane is a definite box shorter than the
|
||
viewport. So neutralise it on the hosted subtree rather than editing the map: a direct child of a
|
||
studio pane is bounded by the PANE. A taller-than-viewport scroll-stack composite is unaffected —
|
||
it grows past this floor on its own content, which is what makes the grid reachable.
|
||
|
||
★ AND --profile-min-h:0 ON THE PANE, which is the half that actually does the work. Sizing the
|
||
host is NOT enough, and measuring proved it: the host correctly became 769px while the pane still
|
||
overflowed by exactly 131px, because .profile-loader lives INSIDE the map's SHADOW ROOT at
|
||
min-height:100dvh and a host-page SELECTOR cannot reach into a shadow tree. Inherited properties
|
||
CAN, so ProfileLoader.vue now reads min-height:var(--profile-min-h, 100dvh) and this pane sets it
|
||
to 0 — the floor keeps its default everywhere else, including every standalone leaf where it
|
||
still fixes BUG-UPG100.
|
||
★ NOT overflow:clip, which I tried first and MEASURED as wrong: it bounded the map (good) but
|
||
ALSO bounded the scroll-stack composite, whose host box is the pane height while its content is
|
||
3380px — so the grid became unreachable again and the gate went straight back to 0px scrolled.
|
||
One blanket rule cannot serve both; the variable targets the actual culprit instead. */
|
||
.ps-slot > * { min-height:0; max-height:none; }
|
||
.ps-hint { position:absolute; inset:0; display:grid; place-items:center; text-align:center; color:#6d766e; font-size:13px; padding:20px; }
|
||
.ps-hint.err { color:#f87171; }
|
||
.ps-hint small { color:#6d766e; }
|
||
`,od={5:"App shell · nested-mfe-spa",4:"Composite element",3:"Multi-view element",2:"Preset element",1:"Single element"},Ci={"nested-mfe-spa":0,"nested-elements-mfe":1,monolithic:2,parameterized:3,single:4},nd=e=>Ci[e]!=null?5-Ci[e]:1,id={5:"nested-mfe-spa",4:"nested-elements-mfe",3:"monolithic",2:"parameterized",1:"single"},Lo={5:"monitor",4:"tree",3:"layers",2:"grid",1:"embed"},Ti=new Set(["doxa-research-map","doxa-simple-map","cities-internet-map","gospel-resources-map","my-upg-100-list-map","doxa-map","doxa-maps-spa","dashboard-plus-grid","research-dashboard-map","demo-map","all-people-groups","country-posters-map","key-cities-map","research-map-plus-grid"]),Oi=new Set(["big-picture"]),ks={};for(const[e,t]of Object.entries(Object.assign({"../../library/i18n/locales/ar/studio.json":pa,"../../library/i18n/locales/de/studio.json":fa,"../../library/i18n/locales/en/studio.json":ua,"../../library/i18n/locales/es/studio.json":ha,"../../library/i18n/locales/fr/studio.json":ga,"../../library/i18n/locales/hi/studio.json":ba,"../../library/i18n/locales/it/studio.json":va,"../../library/i18n/locales/pt/studio.json":ma,"../../library/i18n/locales/ro/studio.json":xa,"../../library/i18n/locales/ru/studio.json":ya,"../../library/i18n/locales/zh/studio.json":wa}))){const s=e.match(/locales\/([^/]+)\/studio\.json$/);s&&(ks[s[1]]=t)}const ld={"doxa-maps-spa/doxa-maps-spa":"Research Gallery"},jt={};function rd(e,t){return jt[e]||(jt[e]=new Promise((s,o)=>{const n=document.createElement("script");n.src=e,(/^\/plugin-designs\//.test(e)||/\/index\.js(\?|$)/.test(e))&&(n.type="module"),n.onload=()=>s(),n.onerror=()=>{delete jt[e],o(new Error("failed to load "+e))},document.head.appendChild(n)})),jt[e]}function ad(e,t){return typeof customElements>"u"||customElements.get(e)?Promise.resolve():Promise.race([customElements.whenDefined(e),new Promise((s,o)=>setTimeout(()=>{customElements.get(e)||o(new Error("<"+e+"> never registered (bundle loaded but defined no element)"))},15e3))])}const cd=fs({name:"PluginStudio",inheritAttrs:!1,components:{VerticalTabsLayout:vc,StudioTree:Yc},props:{treeBase:{type:String,default:""},profileConfig:{type:[String,Object],default:""},provider:{type:String,default:""},heading:{type:String,default:""},tokenUrl:{type:String,default:""},tk:{type:String,default:""}},setup(){return $o(sd,"plugin-studio"),{injectedBase:kt("psTreeBase","")}},data(){return{activeKey:"",embedOpen:!1,locale:Qc(),localeOpen:!1,switcherLangs:Jc,rows:[],manifestBundles:[]}},computed:{cfg(){let e=this.profileConfig;if(typeof e=="string")try{e=e?JSON.parse(e):{}}catch{e={}}return e&&typeof e=="object"?e:{}},base(){const e=(this.treeBase||this.cfg.treeBase||this.injectedBase||"").trim();return e?e.replace(/\/+$/,"")+"/":""},flatRows(){return this.rows},groups(){const e={};for(const t of this.rows)(e[t.cap]=e[t.cap]||[]).push(t);return[5,4,3,2,1].filter(t=>e[t]&&e[t].length).map(t=>({cap:t,label:od[t]||"capability "+t,rows:e[t]}))},treeSections(){const e=new Map(this.compositionTrees.map(t=>[t.nodes[0].selects,t]));return this.groups.map(t=>{const s=[];for(const o of t.rows){const n=e.get(o.key);if(s.push({id:o.key,parent:"",depth:0,label:o.label,desc:o.tag,icon:o.icon,target:o.key,kids:n?n.nodes[0].kids:0,title:o.label+" · <"+o.tag+"> · CAP "+o.cap+" "+this.tr("cap"+o.cap)}),!n)continue;const i=l=>l===0?o.key:o.key+">"+l;for(const l of n.nodes.slice(1))s.push({id:i(l.id),parent:i(l.ancestors[l.ancestors.length-1]),depth:l.depth,label:l.label,part:!!l.part,target:l.selects||"",icon:l.part?"dots":Lo[l.cap]||"embed",desc:l.part?this.tr("noStandalone"):"cap "+l.cap+" · "+l.tag,kids:l.kids||0,title:l.part?l.label+" · "+this.tr("partOf",{name:o.label}):l.label+" · <"+l.tag+"> · CAP "+l.cap+" "+this.tr("cap"+l.cap)})}return{id:"cap-"+t.cap,cap:t.cap,label:this.tr("cap"+t.cap),title:this.tr("cap"+t.cap)+" · "+(id[t.cap]||""),icon:Lo[t.cap]||"embed",nodes:s}})},compositionTrees(){const e=[],t=(s,o,n,i,l)=>{const r=this.manifestBundles.find(y=>y.bundle===s.bundle),a=s.cap>=4&&r&&r.composes||[],f=[],p=[],h=new Set;for(const y of a){const S=this.resolveRef(y,s.bundle);if(!S){p.push(y);continue}S.key===s.key||h.has(S.key)||(h.add(S.key),f.push(S))}f.sort((y,S)=>S.cap-y.cap||y.label.localeCompare(S.label));for(const y of f){const S={id:i.length,label:y.label,tag:y.tag,cap:y.cap,selects:y.key,depth:o+1,ancestors:l,kids:0};i.push(S);const j=i.length;n.has(y.key)||t(y,o+1,new Set([...n,y.key]),i,[...l,S.id]),S.kids=i.filter((N,ee)=>ee>=j&&N.depth===o+2).length}for(const y of p)i.push({id:i.length,label:y,part:!0,selects:s.key,depth:o+1,ancestors:l,kids:0})};for(const s of this.manifestBundles){if(!s.composes||!s.composes.length||Oi.has(s.bundle))continue;const o=this.rows.find(i=>i.bundle===s.bundle);if(!o)continue;const n=[{id:0,label:o.label,tag:o.tag,cap:o.cap,selects:o.key,depth:0,ancestors:[]}];t(o,0,new Set([o.key]),n,[0]),n[0].kids=n.filter(i=>i.depth===1).length,n.length>1&&e.push({bundle:s.bundle,nodes:n})}return e},active(){return this.rows.find(e=>e.key===this.activeKey)||null},countLabel(){const e=new Set(this.rows.map(t=>t.bundle)).size;return this.tr("countLabel",{bundles:e,elements:this.rows.length})},activeLang(){return Zc(this.locale)||{code:this.locale,flag:"🌐",nativeName:this.locale}},uiDir(){return(this.activeLang&&this.activeLang.dir)==="rtl"?"rtl":"ltr"}},mounted(){this.loadManifest()},methods:{tr(e,t){const s=(this.locale||"en").split("-")[0];let o=(ks[this.locale]||{})[e]||(ks[s]||{})[e]||(ks.en||{})[e]||e;if(t)for(const n in t)o=o.split("{"+n+"}").join(String(t[n]));return o},resolveRef(e,t){return t&&this.rows.find(s=>s.key===t+"/"+e)||this.rows.find(s=>s.key===e)||this.rows.find(s=>s.tag===e)||this.rows.find(s=>s.bundle===e)||null},setSlot(e,t){t&&(this._slots=Object.assign(this._slots||{},{[e]:t}))},setLocale(e){this.locale=e,this.localeOpen=!1,ed(e);try{const t=this.active,s=this._slots&&this._slots[this.activeKey],o=s&&s.firstElementChild;if(o&&o.setAttribute&&t){const n={profile:t.profile,instanceId:"ps-"+this.activeKey.replace(/\//g,"-"),locale:e};(this.tk||this.cfg.tk)&&(n.tk=this.tk||this.cfg.tk),o.setAttribute("profile-config",JSON.stringify(n))}}catch{}},resolve(e){const t=String(e);if(/^(https?:)?\/\//.test(t)||t.startsWith("/"))return t;const s=t.replace(/^\.\//,"");return this.base?this.base.replace(/\/+$/,"")+"/"+s:"../"+s},loadManifest(){const e=s=>{this.manifestBundles=s&&s.bundles||[],this.rows=this.rowsFromManifest(s),this.route()},t=typeof window<"u"&&window.__psBaked||null;if(typeof fetch=="function"&&typeof location<"u"&&location.protocol!=="file:"){const s=this.base?this.resolve("manifest.json"):"../manifest.json";fetch(s,{cache:"no-cache"}).then(o=>o.ok?o.json():null).then(o=>e(o||t||{bundles:[]})).catch(()=>e(t||{bundles:[]}))}else e(t||{bundles:[]})},rowsFromManifest(e){const t=[];for(const s of e.bundles||[])if(!(s.bundle==="plugin-studio"||Oi.has(s.bundle)))for(const o of s.profiles||[]){const n=s.elements&&s.elements.length?s.elements:null,i=(o.element&&(!n||n.includes(o.element))?o.element:null)||n&&n[0]||o.element||s.bundle,l=nd(o.type||"single"),r=Ti.has(i)||Ti.has(s.bundle);t.push({key:s.bundle+"/"+o.profile,bundle:s.bundle,label:ld[s.bundle+"/"+o.profile]||o.profile,profile:o.profile,tag:i,cap:l,icon:Lo[l]||"embed",description:o.description||"",heavy:r,bundleJs:s.scriptUrl||s.bundle+"/"+s.bundle+".js",embed:o.embed&&o.embed.script||"",mounted:!1,state:"idle",error:""})}return t.sort((s,o)=>o.cap-s.cap||s.bundle.localeCompare(o.bundle)||s.label.localeCompare(o.label)),t},route(){const e=(typeof location<"u"&&location.hash||"").replace(/^#\/?/,"");if(e&&this.rows.some(s=>s.key===e)){this.select(e);return}const t=this.readLastTab();if(t&&this.rows.some(s=>s.key===t)){this.select(t);return}this.rows.length&&this.select(this.rows[0].key)},storageKey(){return"dx-studio-tab:"+(typeof location<"u"&&location.pathname||"")},readLastTab(){try{return window.localStorage.getItem(this.storageKey())||""}catch{return""}},writeLastTab(e){try{window.localStorage.setItem(this.storageKey(),e)}catch{}},select(e){if(!this.rows.some(o=>o.key===e))return;const t=this.activeKey;if(this.activeKey=e,this.embedOpen=!1,t&&t!==e){const o=this.rows.find(n=>n.key===t);o&&o.heavy&&o.mounted&&this.releaseRow(o)}const s=this.rows.find(o=>o.key===e);s&&(this.writeLastTab(e),s.mounted||this.$nextTick(()=>{this.activeKey===s.key&&this.mountElement(s)}))},releaseRow(e){try{const t=this._slots&&this._slots[e.key];t&&(t.innerHTML="")}catch{}this._slots&&delete this._slots[e.key],e.mounted=!1,e.state="idle",e.error=""},mountElement(e){e.mounted=!0,e.state="loading";const t=this.resolve(e.bundleJs);rd(t).then(()=>ad(e.tag)).then(()=>{try{if(e.heavy&&this.activeKey!==e.key){e.mounted=!1,e.state="idle";return}const s=this._slots&&this._slots[e.key];if(!s){e.state="error",e.error="no slot";return}s.innerHTML="";const o=document.createElement(e.tag),n={profile:e.profile,instanceId:"ps-"+e.key.replace(/\//g,"-"),locale:this.locale};(this.tk||this.cfg.tk)&&(n.tk=this.tk||this.cfg.tk),(this.tokenUrl||this.cfg.tokenUrl)&&(n.tokenUrl=this.tokenUrl||this.cfg.tokenUrl);const i=this.provider||this.cfg.provider;(i==="maplibre"||i==="mapbox")&&(n.provider=i),this.base&&(n.treeBase=this.base),o.setAttribute("profile-config",JSON.stringify(n)),this.base&&o.setAttribute("tree-base",this.base.replace(/\/+$/,"")),o.style.cssText="display:block;position:absolute;inset:0;width:100%;height:100%;",s.appendChild(o),e.state="ready"}catch(s){e.state="error",e.error="mount failed: "+(s&&s.message||String(s))}}).catch(s=>{e.state="error",e.error=s&&s.message||String(s)})},copyText(e,t){const s=()=>{const o=t.textContent;t.textContent=this.tr("copied"),setTimeout(()=>{t.textContent=o},1200)};if(navigator.clipboard&&navigator.clipboard.writeText)navigator.clipboard.writeText(e).then(s,()=>{});else try{const o=document.createElement("textarea");o.value=e,document.body.appendChild(o),o.select(),document.execCommand("copy"),document.body.removeChild(o),s()}catch{}}}}),dd={class:"ps-count"},pd={class:"ps-locale"},fd=["aria-expanded","aria-label"],ud={class:"ps-flag"},hd={class:"ps-locale-name"},gd={key:0,class:"ps-locale-menu",role:"listbox"},bd=["aria-selected"],vd=["onClick"],md={class:"ps-flag"},xd={class:"ps-locale-name"},yd={class:"ps-locale-en"},wd={key:0,class:"ps-toolbar"},$d={class:"ps-bar"},_d={class:"ps-bar-t"},Sd={class:"ps-bar-sub"},Ld={key:0},Ed=["aria-expanded"],kd={key:0,class:"ps-embed"},Cd=["value"],Td={class:"ps-stage"},Od=["hidden"],Ad={key:0,class:"ps-hint"},Md={key:1,class:"ps-hint err"},Pd={key:0,class:"ps-hint"};function Rd(e,t,s,o,n,i){const l=Sn("StudioTree"),r=Sn("VerticalTabsLayout");return E(),ms(r,{title:e.heading||e.tr("title"),dir:e.uiDir,"nav-label":e.tr("navLabel"),labels:{toggleList:e.tr("toggleList"),openViews:e.tr("openViews"),expandList:e.tr("expandList"),collapseList:e.tr("collapseList"),collapse:e.tr("collapse")},header:!0,active:e.activeKey,"onUpdate:active":e.select},{rail:pt(({collapsed:a,expand:f,pick:p})=>[ve(l,{sections:e.treeSections,active:e.activeKey,collapsed:a,expand:f,pick:p,strings:{filterPlaceholder:e.tr("filterPlaceholder"),collapseAll:e.tr("collapseAll"),noMatch:e.tr("noMatch"),treeLabel:e.tr("navLabel"),openSection:e.tr("openSection"),part:e.tr("part")}},null,8,["sections","active","collapsed","expand","pick","strings"])]),brand:pt(()=>[...t[3]||(t[3]=[L("span",{class:"ps-logo","aria-hidden":"true"},[L("svg",{viewBox:"0 0 24 24",width:"22",height:"22",fill:"none",stroke:"#92b195","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[L("path",{d:"M10 3v3M14 3v3M7 6h10v5a5 5 0 0 1-10 0V6Z"}),L("path",{d:"M12 16v5"})])],-1)])]),meta:pt(()=>[L("span",dd,M(e.countLabel),1),L("span",pd,[L("button",{type:"button",class:"ps-locale-btn","aria-expanded":String(e.localeOpen),"aria-label":e.tr("changeLanguage"),onClick:t[0]||(t[0]=a=>e.localeOpen=!e.localeOpen)},[L("span",ud,M(e.activeLang.flag),1),L("span",hd,M(e.activeLang.nativeName),1),t[4]||(t[4]=L("span",{class:"ps-dots","aria-hidden":"true"},"⋮",-1))],8,fd),e.localeOpen?(E(),k("ul",gd,[(E(!0),k(X,null,Ke(e.switcherLangs,a=>(E(),k("li",{key:a.code,role:"option","aria-selected":String(a.code===e.locale)},[L("button",{type:"button",class:_e(["ps-locale-opt",{active:a.code===e.locale}]),onClick:f=>e.setLocale(a.code)},[L("span",md,M(a.flag),1),L("span",xd,M(a.nativeName),1),L("span",yd,M(a.name),1)],10,vd)],8,bd))),128))])):Q("",!0)])]),toolbar:pt(()=>[e.active?(E(),k("div",wd,[L("div",$d,[L("div",_d,[L("b",null,M(e.active.label),1),L("span",Sd,[gt(M(e.active.bundle)+" · <"+M(e.active.tag)+">",1),e.active.description?(E(),k("span",Ld," · "+M(e.active.description),1)):Q("",!0)])]),e.active.embed?(E(),k("button",{key:0,type:"button",class:"ps-btn","aria-expanded":String(e.embedOpen),onClick:t[1]||(t[1]=a=>e.embedOpen=!e.embedOpen)},M(e.tr("copyEmbed")),9,Ed)):Q("",!0)]),e.embedOpen&&e.active.embed?(E(),k("div",kd,[L("label",null,[gt(M(e.tr("scriptEmbed"))+" ",1),L("button",{type:"button",class:"ps-btn",onClick:t[2]||(t[2]=a=>e.copyText(e.active.embed,a.target))},M(e.tr("copy")),1)]),L("textarea",{readonly:"",value:e.active.embed},null,8,Cd)])):Q("",!0)])):Q("",!0)]),default:pt(()=>[L("div",Td,[(E(!0),k(X,null,Ke(e.flatRows,a=>ds((E(),k("section",{key:a.key,class:"ps-pane",hidden:a.key!==e.activeKey},[!a.heavy||a.key===e.activeKey?(E(),k(X,{key:0},[L("div",{class:"ps-slot",ref_for:!0,ref:f=>e.setSlot(a.key,f)},null,512),a.state==="loading"?(E(),k("div",Ad,M(e.tr("loading",{name:a.label})),1)):a.state==="error"?(E(),k("div",Md,[gt(M(e.tr("couldNotLoad",{name:a.label})),1),t[5]||(t[5]=L("br",null,null,-1)),L("small",null,M(a.error),1)])):Q("",!0)],64)):Q("",!0)],8,Od)),[[vo,a.key===e.activeKey]])),128)),e.activeKey?Q("",!0):(E(),k("div",Pd,M(e.tr("chooseElement")),1))])]),_:1},8,["title","dir","nav-label","labels","active","onUpdate:active"])}const Nd=_o(cd,[["render",Rd],["styles",[td]]]);function Id(){try{const e=typeof document<"u"&&document.currentScript&&document.currentScript.src||"";return e?e.replace(/[^/]+\/[^/]+$/,"").replace(/\/+$/,"")+"/":""}catch{return""}}const Hd=Id(),Dd=ea(Nd,{configureApp(e){e.provide("psTreeBase",Hd)}});typeof customElements<"u"&&!customElements.get("plugin-studio")&&customElements.define("plugin-studio",Dd)})();
|