@perspective-dev/workspace 4.1.1 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- var di=Object.create;var Rt=Object.defineProperty;var ci=Object.getOwnPropertyDescriptor;var hi=Object.getOwnPropertyNames;var ui=Object.getPrototypeOf,mi=Object.prototype.hasOwnProperty;var Wt=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports);var fi=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of hi(e))!mi.call(n,s)&&s!==t&&Rt(n,s,{get:()=>e[s],enumerable:!(i=ci(e,s))||i.enumerable});return n};var ye=(n,e,t)=>(t=n!=null?di(ui(n)):{},fi(e||!n||!n.__esModule?Rt(t,"default",{value:n,enumerable:!0}):t,n));var Se=Wt((dt,Nt)=>{(function(n,e){typeof dt=="object"&&typeof Nt<"u"?e(dt):typeof define=="function"&&define.amd?define(["exports"],e):(n=typeof globalThis<"u"?globalThis:n||self,e(n.lumino_algorithm={}))})(dt,(function(n){"use strict";n.ArrayExt=void 0,(function(x){function I(B,W,C=0,k=-1){let T=B.length;if(T===0)return-1;C<0?C=Math.max(0,C+T):C=Math.min(C,T-1),k<0?k=Math.max(0,k+T):k=Math.min(k,T-1);let N;k<C?N=k+1+(T-C):N=k-C+1;for(let H=0;H<N;++H){let Y=(C+H)%T;if(B[Y]===W)return Y}return-1}x.firstIndexOf=I;function L(B,W,C=-1,k=0){let T=B.length;if(T===0)return-1;C<0?C=Math.max(0,C+T):C=Math.min(C,T-1),k<0?k=Math.max(0,k+T):k=Math.min(k,T-1);let N;C<k?N=C+1+(T-k):N=C-k+1;for(let H=0;H<N;++H){let Y=(C-H+T)%T;if(B[Y]===W)return Y}return-1}x.lastIndexOf=L;function R(B,W,C=0,k=-1){let T=B.length;if(T===0)return-1;C<0?C=Math.max(0,C+T):C=Math.min(C,T-1),k<0?k=Math.max(0,k+T):k=Math.min(k,T-1);let N;k<C?N=k+1+(T-C):N=k-C+1;for(let H=0;H<N;++H){let Y=(C+H)%T;if(W(B[Y],Y))return Y}return-1}x.findFirstIndex=R;function O(B,W,C=-1,k=0){let T=B.length;if(T===0)return-1;C<0?C=Math.max(0,C+T):C=Math.min(C,T-1),k<0?k=Math.max(0,k+T):k=Math.min(k,T-1);let N;C<k?N=C+1+(T-k):N=C-k+1;for(let H=0;H<N;++H){let Y=(C-H+T)%T;if(W(B[Y],Y))return Y}return-1}x.findLastIndex=O;function K(B,W,C=0,k=-1){let T=R(B,W,C,k);return T!==-1?B[T]:void 0}x.findFirstValue=K;function F(B,W,C=-1,k=0){let T=O(B,W,C,k);return T!==-1?B[T]:void 0}x.findLastValue=F;function V(B,W,C,k=0,T=-1){let N=B.length;if(N===0)return 0;k<0?k=Math.max(0,k+N):k=Math.min(k,N-1),T<0?T=Math.max(0,T+N):T=Math.min(T,N-1);let H=k,Y=T-k+1;for(;Y>0;){let me=Y>>1,Je=H+me;C(B[Je],W)<0?(H=Je+1,Y-=me+1):Y=me}return H}x.lowerBound=V;function Z(B,W,C,k=0,T=-1){let N=B.length;if(N===0)return 0;k<0?k=Math.max(0,k+N):k=Math.min(k,N-1),T<0?T=Math.max(0,T+N):T=Math.min(T,N-1);let H=k,Y=T-k+1;for(;Y>0;){let me=Y>>1,Je=H+me;C(B[Je],W)>0?Y=me:(H=Je+1,Y-=me+1)}return H}x.upperBound=Z;function j(B,W,C){if(B===W)return!0;if(B.length!==W.length)return!1;for(let k=0,T=B.length;k<T;++k)if(C?!C(B[k],W[k]):B[k]!==W[k])return!1;return!0}x.shallowEqual=j;function X(B,W={}){let{start:C,stop:k,step:T}=W;if(T===void 0&&(T=1),T===0)throw new Error("Slice `step` cannot be zero.");let N=B.length;C===void 0?C=T<0?N-1:0:C<0?C=Math.max(C+N,T<0?-1:0):C>=N&&(C=T<0?N-1:N),k===void 0?k=T<0?-1:N:k<0?k=Math.max(k+N,T<0?-1:0):k>=N&&(k=T<0?N-1:N);let H;T<0&&k>=C||T>0&&C>=k?H=0:T<0?H=Math.floor((k-C+1)/T+1):H=Math.floor((k-C-1)/T+1);let Y=[];for(let me=0;me<H;++me)Y[me]=B[C+me*T];return Y}x.slice=X;function G(B,W,C){let k=B.length;if(k<=1||(W<0?W=Math.max(0,W+k):W=Math.min(W,k-1),C<0?C=Math.max(0,C+k):C=Math.min(C,k-1),W===C))return;let T=B[W],N=W<C?1:-1;for(let H=W;H!==C;H+=N)B[H]=B[H+N];B[C]=T}x.move=G;function ee(B,W=0,C=-1){let k=B.length;if(!(k<=1))for(W<0?W=Math.max(0,W+k):W=Math.min(W,k-1),C<0?C=Math.max(0,C+k):C=Math.min(C,k-1);W<C;){let T=B[W],N=B[C];B[W++]=N,B[C--]=T}}x.reverse=ee;function ie(B,W,C=0,k=-1){let T=B.length;if(T<=1||(C<0?C=Math.max(0,C+T):C=Math.min(C,T-1),k<0?k=Math.max(0,k+T):k=Math.min(k,T-1),C>=k))return;let N=k-C+1;if(W>0?W=W%N:W<0&&(W=(W%N+N)%N),W===0)return;let H=C+W;ee(B,C,H-1),ee(B,H,k),ee(B,C,k)}x.rotate=ie;function we(B,W,C=0,k=-1){let T=B.length;if(T===0)return;C<0?C=Math.max(0,C+T):C=Math.min(C,T-1),k<0?k=Math.max(0,k+T):k=Math.min(k,T-1);let N;k<C?N=k+1+(T-C):N=k-C+1;for(let H=0;H<N;++H)B[(C+H)%T]=W}x.fill=we;function ii(B,W,C){let k=B.length;W<0?W=Math.max(0,W+k):W=Math.min(W,k);for(let T=k;T>W;--T)B[T]=B[T-1];B[W]=C}x.insert=ii;function Ze(B,W){let C=B.length;if(W<0&&(W+=C),W<0||W>=C)return;let k=B[W];for(let T=W+1;T<C;++T)B[T-1]=B[T];return B.length=C-1,k}x.removeAt=Ze;function ni(B,W,C=0,k=-1){let T=I(B,W,C,k);return T!==-1&&Ze(B,T),T}x.removeFirstOf=ni;function si(B,W,C=-1,k=0){let T=L(B,W,C,k);return T!==-1&&Ze(B,T),T}x.removeLastOf=si;function ri(B,W,C=0,k=-1){let T=B.length;if(T===0)return 0;C<0?C=Math.max(0,C+T):C=Math.min(C,T-1),k<0?k=Math.max(0,k+T):k=Math.min(k,T-1);let N=0;for(let H=0;H<T;++H)C<=k&&H>=C&&H<=k&&B[H]===W||k<C&&(H<=k||H>=C)&&B[H]===W?N++:N>0&&(B[H-N]=B[H]);return N>0&&(B.length=T-N),N}x.removeAllOf=ri;function ai(B,W,C=0,k=-1){let T,N=R(B,W,C,k);return N!==-1&&(T=Ze(B,N)),{index:N,value:T}}x.removeFirstWhere=ai;function oi(B,W,C=-1,k=0){let T,N=O(B,W,C,k);return N!==-1&&(T=Ze(B,N)),{index:N,value:T}}x.removeLastWhere=oi;function li(B,W,C=0,k=-1){let T=B.length;if(T===0)return 0;C<0?C=Math.max(0,C+T):C=Math.min(C,T-1),k<0?k=Math.max(0,k+T):k=Math.min(k,T-1);let N=0;for(let H=0;H<T;++H)C<=k&&H>=C&&H<=k&&W(B[H],H)||k<C&&(H<=k||H>=C)&&W(B[H],H)?N++:N>0&&(B[H-N]=B[H]);return N>0&&(B.length=T-N),N}x.removeAllWhere=li})(n.ArrayExt||(n.ArrayExt={}));function*e(...x){for(let I of x)yield*I}function*t(){}function*i(x,I=0){for(let L of x)yield[I++,L]}function*s(x,I){let L=0;for(let R of x)I(R,L++)&&(yield R)}function r(x,I){let L=0;for(let R of x)if(I(R,L++))return R}function o(x,I){let L=0;for(let R of x)if(I(R,L++))return L-1;return-1}function a(x,I){let L;for(let R of x){if(L===void 0){L=R;continue}I(R,L)<0&&(L=R)}return L}function l(x,I){let L;for(let R of x){if(L===void 0){L=R;continue}I(R,L)>0&&(L=R)}return L}function u(x,I){let L=!0,R,O;for(let K of x)L?(R=K,O=K,L=!1):I(K,R)<0?R=K:I(K,O)>0&&(O=K);return L?void 0:[R,O]}function d(x){return Array.from(x)}function c(x){let I={};for(let[L,R]of x)I[L]=R;return I}function f(x,I){let L=0;for(let R of x)if(I(R,L++)===!1)return}function h(x,I){let L=0;for(let R of x)if(I(R,L++)===!1)return!1;return!0}function m(x,I){let L=0;for(let R of x)if(I(R,L++))return!0;return!1}function*p(x,I){let L=0;for(let R of x)yield I(R,L++)}function*_(x,I,L){I===void 0?(I=x,x=0,L=1):L===void 0&&(L=1);let R=w.rangeLength(x,I,L);for(let O=0;O<R;O++)yield x+L*O}var w;(function(x){function I(L,R,O){return O===0?1/0:L>R&&O>0||L<R&&O<0?0:Math.ceil((R-L)/O)}x.rangeLength=I})(w||(w={}));function v(x,I,L){let R=x[Symbol.iterator](),O=0,K=R.next();if(K.done&&L===void 0)throw new TypeError("Reduce of empty iterable with no initial value.");if(K.done)return L;let F=R.next();if(F.done&&L===void 0)return K.value;if(F.done)return I(L,K.value,O++);let V;L===void 0?V=I(K.value,F.value,O++):V=I(I(L,K.value,O++),F.value,O++);let Z;for(;!(Z=R.next()).done;)V=I(V,Z.value,O++);return V}function*g(x,I){for(;0<I--;)yield x}function*b(x){yield x}function*y(x){if(typeof x.retro=="function")yield*x.retro();else for(let I=x.length-1;I>-1;I--)yield x[I]}function M(x){let I=[],L=new Set,R=new Map;for(let F of x)O(F);for(let[F]of R)K(F);return I;function O(F){let[V,Z]=F,j=R.get(Z);j?j.push(V):R.set(Z,[V])}function K(F){if(L.has(F))return;L.add(F);let V=R.get(F);if(V)for(let Z of V)K(Z);I.push(F)}}function*S(x,I){let L=0;for(let R of x)L++%I===0&&(yield R)}n.StringExt=void 0,(function(x){function I(F,V,Z=0){let j=new Array(V.length);for(let X=0,G=Z,ee=V.length;X<ee;++X,++G){if(G=F.indexOf(V[X],G),G===-1)return null;j[X]=G}return j}x.findIndices=I;function L(F,V,Z=0){let j=I(F,V,Z);if(!j)return null;let X=0;for(let G=0,ee=j.length;G<ee;++G){let ie=j[G]-Z;X+=ie*ie}return{score:X,indices:j}}x.matchSumOfSquares=L;function R(F,V,Z=0){let j=I(F,V,Z);if(!j)return null;let X=0,G=Z-1;for(let ee=0,ie=j.length;ee<ie;++ee){let we=j[ee];X+=we-G-1,G=we}return{score:X,indices:j}}x.matchSumOfDeltas=R;function O(F,V,Z){let j=[],X=0,G=0,ee=V.length;for(;X<ee;){let ie=V[X],we=V[X];for(;++X<ee&&V[X]===we+1;)we++;G<ie&&j.push(F.slice(G,ie)),ie<we+1&&j.push(Z(F.slice(ie,we+1))),G=we+1}return G<F.length&&j.push(F.slice(G)),j}x.highlight=O;function K(F,V){return F<V?-1:F>V?1:0}x.cmp=K})(n.StringExt||(n.StringExt={}));function*E(x,I){if(I<1)return;let L=x[Symbol.iterator](),R;for(;0<I--&&!(R=L.next()).done;)yield R.value}function*P(...x){let I=x.map(R=>R[Symbol.iterator]()),L=I.map(R=>R.next());for(;h(L,R=>!R.done);L=I.map(R=>R.next()))yield L.map(R=>R.value)}n.chain=e,n.each=f,n.empty=t,n.enumerate=i,n.every=h,n.filter=s,n.find=r,n.findIndex=o,n.map=p,n.max=l,n.min=a,n.minmax=u,n.once=b,n.range=_,n.reduce=v,n.repeat=g,n.retro=y,n.some=m,n.stride=S,n.take=E,n.toArray=d,n.toObject=c,n.topologicSort=M,n.zip=P}))});var ht=Wt((ct,Ht)=>{(function(n,e){typeof ct=="object"&&typeof Ht<"u"?e(ct,Se()):typeof define=="function"&&define.amd?define(["exports","@lumino/algorithm"],e):(n=typeof globalThis<"u"?globalThis:n||self,e(n.lumino_coreutils={},n.lumino_algorithm))})(ct,(function(n,e){"use strict";n.JSONExt=void 0,(function(u){u.emptyObject=Object.freeze({}),u.emptyArray=Object.freeze([]);function d(g){return g===null||typeof g=="boolean"||typeof g=="number"||typeof g=="string"}u.isPrimitive=d;function c(g){return Array.isArray(g)}u.isArray=c;function f(g){return!d(g)&&!c(g)}u.isObject=f;function h(g,b){if(g===b)return!0;if(d(g)||d(b))return!1;let y=c(g),M=c(b);return y!==M?!1:y&&M?p(g,b):_(g,b)}u.deepEqual=h;function m(g){return d(g)?g:c(g)?w(g):v(g)}u.deepCopy=m;function p(g,b){if(g===b)return!0;if(g.length!==b.length)return!1;for(let y=0,M=g.length;y<M;++y)if(!h(g[y],b[y]))return!1;return!0}function _(g,b){if(g===b)return!0;for(let y in g)if(g[y]!==void 0&&!(y in b))return!1;for(let y in b)if(b[y]!==void 0&&!(y in g))return!1;for(let y in g){let M=g[y],S=b[y];if(!(M===void 0&&S===void 0)&&(M===void 0||S===void 0||!h(M,S)))return!1}return!0}function w(g){let b=new Array(g.length);for(let y=0,M=g.length;y<M;++y)b[y]=m(g[y]);return b}function v(g){let b={};for(let y in g){let M=g[y];M!==void 0&&(b[y]=m(M))}return b}})(n.JSONExt||(n.JSONExt={}));class t{constructor(){this._types=[],this._values=[]}types(){return this._types.slice()}hasData(d){return this._types.indexOf(d)!==-1}getData(d){let c=this._types.indexOf(d);return c!==-1?this._values[c]:void 0}setData(d,c){this.clearData(d),this._types.push(d),this._values.push(c)}clearData(d){let c=this._types.indexOf(d);c!==-1&&(this._types.splice(c,1),this._values.splice(c,1))}clear(){this._types.length=0,this._values.length=0}}class i{constructor(d={}){this._application=null,this._validatePlugin=()=>!0,this._plugins=new Map,this._services=new Map,d.validatePlugin&&(console.info("Plugins may be rejected by the custom validation plugin method."),this._validatePlugin=d.validatePlugin)}get application(){return this._application}set application(d){if(this._application!==null)throw Error("PluginRegistry.application is already set. It cannot be overridden.");this._application=d}get deferredPlugins(){return Array.from(this._plugins).filter(([d,c])=>c.autoStart==="defer").map(([d,c])=>d)}getPluginDescription(d){var c,f;return(f=(c=this._plugins.get(d))===null||c===void 0?void 0:c.description)!==null&&f!==void 0?f:""}hasPlugin(d){return this._plugins.has(d)}isPluginActivated(d){var c,f;return(f=(c=this._plugins.get(d))===null||c===void 0?void 0:c.activated)!==null&&f!==void 0?f:!1}listPlugins(){return Array.from(this._plugins.keys())}registerPlugin(d){if(this._plugins.has(d.id))throw new TypeError(`Plugin '${d.id}' is already registered.`);if(!this._validatePlugin(d))throw new Error(`Plugin '${d.id}' is not valid.`);let c=s.createPluginData(d);s.ensureNoCycle(c,this._plugins,this._services),c.provides&&this._services.set(c.provides,c.id),this._plugins.set(c.id,c)}registerPlugins(d){for(let c of d)this.registerPlugin(c)}deregisterPlugin(d,c){let f=this._plugins.get(d);if(f){if(f.activated&&!c)throw new Error(`Plugin '${d}' is still active.`);this._plugins.delete(d)}}async activatePlugin(d){let c=this._plugins.get(d);if(!c)throw new ReferenceError(`Plugin '${d}' is not registered.`);if(c.activated)return;if(c.promise)return c.promise;let f=c.requires.map(m=>this.resolveRequiredService(m)),h=c.optional.map(m=>this.resolveOptionalService(m));return c.promise=Promise.all([...f,...h]).then(m=>c.activate.apply(void 0,[this.application,...m])).then(m=>{c.service=m,c.activated=!0,c.promise=null}).catch(m=>{throw c.promise=null,m}),c.promise}async activatePlugins(d,c={}){switch(d){case"defer":{let f=this.deferredPlugins.filter(h=>this._plugins.get(h).autoStart).map(h=>this.activatePlugin(h));await Promise.all(f);break}case"startUp":{let h=s.collectStartupPlugins(this._plugins,c).map(async m=>{try{return await this.activatePlugin(m)}catch(p){console.error(`Plugin '${m}' failed to activate.`,p)}});await Promise.all(h);break}}}async deactivatePlugin(d){let c=this._plugins.get(d);if(!c)throw new ReferenceError(`Plugin '${d}' is not registered.`);if(!c.activated)return[];if(!c.deactivate)throw new TypeError(`Plugin '${d}'#deactivate() method missing`);let f=s.findDependents(d,this._plugins,this._services),h=f.map(m=>this._plugins.get(m));for(let m of h)if(!m.deactivate)throw new TypeError(`Plugin ${m.id}#deactivate() method missing (depends on ${d})`);for(let m of h){let p=[...m.requires,...m.optional].map(_=>{let w=this._services.get(_);return w?this._plugins.get(w).service:null});await m.deactivate(this.application,...p),m.service=null,m.activated=!1}return f.pop(),f}async resolveRequiredService(d){let c=this._services.get(d);if(!c)throw new TypeError(`No provider for: ${d.name}.`);let f=this._plugins.get(c);return f.activated||await this.activatePlugin(c),f.service}async resolveOptionalService(d){let c=this._services.get(d);if(!c)return null;let f=this._plugins.get(c);if(!f.activated)try{await this.activatePlugin(c)}catch(h){return console.error(h),null}return f.service}}var s;(function(u){class d{constructor(_){var w,v,g,b;this._activated=!1,this._promise=null,this._service=null,this.id=_.id,this.description=(w=_.description)!==null&&w!==void 0?w:"",this.activate=_.activate,this.deactivate=(v=_.deactivate)!==null&&v!==void 0?v:null,this.provides=(g=_.provides)!==null&&g!==void 0?g:null,this.autoStart=(b=_.autoStart)!==null&&b!==void 0?b:!1,this.requires=_.requires?_.requires.slice():[],this.optional=_.optional?_.optional.slice():[]}get activated(){return this._activated}set activated(_){this._activated=_}get service(){return this._service}set service(_){this._service=_}get promise(){return this._promise}set promise(_){this._promise=_}}function c(p){return new d(p)}u.createPluginData=c;function f(p,_,w){let v=[...p.requires,...p.optional],g=y=>{if(y===p.provides)return!0;let M=w.get(y);if(!M)return!1;let S=_.get(M),E=[...S.requires,...S.optional];return E.length===0?!1:(b.push(M),E.some(g)?!0:(b.pop(),!1))};if(!p.provides||v.length===0)return;let b=[p.id];if(v.some(g))throw new ReferenceError(`Cycle detected: ${b.join(" -> ")}.`)}u.ensureNoCycle=f;function h(p,_,w){let v=new Array,g=E=>{let P=_.get(E),x=[...P.requires,...P.optional];v.push(...x.reduce((I,L)=>{let R=w.get(L);return R&&I.push([E,R]),I},[]))};for(let E of _.keys())g(E);let b=v.filter(E=>E[1]===p),y=0;for(;b.length>y;){let E=b.length,P=new Set(b.map(x=>x[0]));for(let x of P)v.filter(I=>I[1]===x).forEach(I=>{b.includes(I)||b.push(I)});y=E}let M=e.topologicSort(b),S=M.findIndex(E=>E===p);return S===-1?[p]:M.slice(0,S+1)}u.findDependents=h;function m(p,_){let w=new Set;for(let v of p.keys())p.get(v).autoStart===!0&&w.add(v);if(_.startPlugins)for(let v of _.startPlugins)w.add(v);if(_.ignorePlugins)for(let v of _.ignorePlugins)w.delete(v);return Array.from(w)}u.collectStartupPlugins=m})(s||(s={}));class r{constructor(){this.promise=new Promise((d,c)=>{this._resolve=d,this._reject=c})}resolve(d){let c=this._resolve;c(d)}reject(d){let c=this._reject;c(d)}}class o{constructor(d,c){this.name=d,this.description=c??"",this._tokenStructuralPropertyT=null}}function a(u){let d=0;for(let c=0,f=u.length;c<f;++c)c%4===0&&(d=Math.random()*4294967295>>>0),u[c]=d&255,d>>>=8}n.Random=void 0,(function(u){u.getRandomValues=(()=>{let d=typeof window<"u"&&(window.crypto||window.msCrypto)||null;return d&&typeof d.getRandomValues=="function"?function(f){return d.getRandomValues(f)}:a})()})(n.Random||(n.Random={}));function l(u){let d=new Uint8Array(16),c=new Array(256);for(let f=0;f<16;++f)c[f]="0"+f.toString(16);for(let f=16;f<256;++f)c[f]=f.toString(16);return function(){return u(d),d[6]=64|d[6]&15,d[8]=128|d[8]&63,c[d[0]]+c[d[1]]+c[d[2]]+c[d[3]]+"-"+c[d[4]]+c[d[5]]+"-"+c[d[6]]+c[d[7]]+"-"+c[d[8]]+c[d[9]]+"-"+c[d[10]]+c[d[11]]+c[d[12]]+c[d[13]]+c[d[14]]+c[d[15]]}}n.UUID=void 0,(function(u){u.uuid4=l(n.Random.getRandomValues)})(n.UUID||(n.UUID={})),n.MimeData=t,n.PluginRegistry=i,n.PromiseDelegate=r,n.Token=o}))});var Ie=ye(Se());var $e=class{constructor(){this._first=null,this._last=null,this._size=0}get isEmpty(){return this._size===0}get size(){return this._size}get length(){return this._size}get first(){return this._first?this._first.value:void 0}get last(){return this._last?this._last.value:void 0}get firstNode(){return this._first}get lastNode(){return this._last}*[Symbol.iterator](){let e=this._first;for(;e;)yield e.value,e=e.next}*retro(){let e=this._last;for(;e;)yield e.value,e=e.prev}*nodes(){let e=this._first;for(;e;)yield e,e=e.next}*retroNodes(){let e=this._last;for(;e;)yield e,e=e.prev}assign(e){this.clear();for(let t of e)this.addLast(t)}push(e){this.addLast(e)}pop(){return this.removeLast()}shift(e){this.addFirst(e)}unshift(){return this.removeFirst()}addFirst(e){let t=new Ee.LinkedListNode(this,e);return this._first?(t.next=this._first,this._first.prev=t,this._first=t):(this._first=t,this._last=t),this._size++,t}addLast(e){let t=new Ee.LinkedListNode(this,e);return this._last?(t.prev=this._last,this._last.next=t,this._last=t):(this._first=t,this._last=t),this._size++,t}insertBefore(e,t){if(!t||t===this._first)return this.addFirst(e);if(!(t instanceof Ee.LinkedListNode)||t.list!==this)throw new Error("Reference node is not owned by the list.");let i=new Ee.LinkedListNode(this,e),s=t,r=s.prev;return i.next=s,i.prev=r,s.prev=i,r.next=i,this._size++,i}insertAfter(e,t){if(!t||t===this._last)return this.addLast(e);if(!(t instanceof Ee.LinkedListNode)||t.list!==this)throw new Error("Reference node is not owned by the list.");let i=new Ee.LinkedListNode(this,e),s=t,r=s.next;return i.next=r,i.prev=s,s.next=i,r.prev=i,this._size++,i}removeFirst(){let e=this._first;if(e)return e===this._last?(this._first=null,this._last=null):(this._first=e.next,this._first.prev=null),e.list=null,e.next=null,e.prev=null,this._size--,e.value}removeLast(){let e=this._last;if(e)return e===this._first?(this._first=null,this._last=null):(this._last=e.prev,this._last.next=null),e.list=null,e.next=null,e.prev=null,this._size--,e.value}removeNode(e){if(!(e instanceof Ee.LinkedListNode)||e.list!==this)throw new Error("Node is not owned by the list.");let t=e;t===this._first&&t===this._last?(this._first=null,this._last=null):t===this._first?(this._first=t.next,this._first.prev=null):t===this._last?(this._last=t.prev,this._last.next=null):(t.next.prev=t.prev,t.prev.next=t.next),t.list=null,t.next=null,t.prev=null,this._size--}clear(){let e=this._first;for(;e;){let t=e.next;e.list=null,e.prev=null,e.next=null,e=t}this._first=null,this._last=null,this._size=0}};(function(n){function e(t){let i=new n;return i.assign(t),i}n.from=e})($e||($e={}));var Ee;(function(n){class e{constructor(i,s){this.list=null,this.next=null,this.prev=null,this.list=i,this.value=s}}n.LinkedListNode=e})(Ee||(Ee={}));var ae=class{constructor(e){this.type=e}get isConflatable(){return!1}conflate(e){return!1}},Pe=class extends ae{get isConflatable(){return!0}conflate(e){return!0}},z;(function(n){let e=null,t=(E=>P=>{let x=!1;return E.then(()=>!x&&P()),()=>{x=!0}})(Promise.resolve());function i(E,P){let x=f.get(E);if(!x||x.length===0){w(E,P);return}(0,Ie.every)((0,Ie.retro)(x),L=>L?_(L,E,P):!0)&&w(E,P)}n.sendMessage=i;function s(E,P){if(!P.isConflatable){v(E,P);return}(0,Ie.some)(c,I=>I.handler!==E||!I.msg||I.msg.type!==P.type||!I.msg.isConflatable?!1:I.msg.conflate(P))||v(E,P)}n.postMessage=s;function r(E,P){let x=f.get(E);x&&x.indexOf(P)!==-1||(x?x.push(P):f.set(E,[P]))}n.installMessageHook=r;function o(E,P){let x=f.get(E);if(!x)return;let I=x.indexOf(P);I!==-1&&(x[I]=null,b(x))}n.removeMessageHook=o;function a(E){let P=f.get(E);P&&P.length>0&&(Ie.ArrayExt.fill(P,null),b(P));for(let x of c)x.handler===E&&(x.handler=null,x.msg=null)}n.clearData=a;function l(){p||e===null||(e(),e=null,p=!0,g(),p=!1)}n.flush=l;function u(){return m}n.getExceptionHandler=u;function d(E){let P=m;return m=E,P}n.setExceptionHandler=d;let c=new $e,f=new WeakMap,h=new Set,m=E=>{console.error(E)},p=!1;function _(E,P,x){let I=!0;try{typeof E=="function"?I=E(P,x):I=E.messageHook(P,x)}catch(L){m(L)}return I}function w(E,P){try{E.processMessage(P)}catch(x){m(x)}}function v(E,P){c.addLast({handler:E,msg:P}),e===null&&(e=t(g))}function g(){if(e=null,c.isEmpty)return;let E={handler:null,msg:null};for(c.addLast(E);;){let P=c.removeFirst();if(P===E)return;P.handler&&P.msg&&i(P.handler,P.msg)}}function b(E){h.size===0&&t(y),h.add(E)}function y(){h.forEach(M),h.clear()}function M(E){Ie.ArrayExt.removeAllWhere(E,S)}function S(E){return E===null}})(z||(z={}));var A=ye(Se()),Le=ye(ht());var Ot;(function(n){function e(t){let i=document.body,s=r=>{r.preventDefault(),r.stopPropagation(),r.clipboardData.setData("text",t),i.removeEventListener("copy",s,!0)};i.addEventListener("copy",s,!0),document.execCommand("copy")}n.copyText=e})(Ot||(Ot={}));var $;(function(n){function e(r){let o=window.getComputedStyle(r),a=parseFloat(o.borderTopWidth)||0,l=parseFloat(o.borderLeftWidth)||0,u=parseFloat(o.borderRightWidth)||0,d=parseFloat(o.borderBottomWidth)||0,c=parseFloat(o.paddingTop)||0,f=parseFloat(o.paddingLeft)||0,h=parseFloat(o.paddingRight)||0,m=parseFloat(o.paddingBottom)||0,p=l+f+h+u,_=a+c+m+d;return{borderTop:a,borderLeft:l,borderRight:u,borderBottom:d,paddingTop:c,paddingLeft:f,paddingRight:h,paddingBottom:m,horizontalSum:p,verticalSum:_}}n.boxSizing=e;function t(r){let o=window.getComputedStyle(r),a=parseFloat(o.minWidth)||0,l=parseFloat(o.minHeight)||0,u=parseFloat(o.maxWidth)||1/0,d=parseFloat(o.maxHeight)||1/0;return u=Math.max(a,u),d=Math.max(l,d),{minWidth:a,minHeight:l,maxWidth:u,maxHeight:d}}n.sizeLimits=t;function i(r,o,a){let l=r.getBoundingClientRect();return o>=l.left&&o<l.right&&a>=l.top&&a<l.bottom}n.hitTest=i;function s(r,o){let a=r.getBoundingClientRect(),l=o.getBoundingClientRect();if(!(l.top<=a.top&&l.bottom>=a.bottom)){if(l.top<a.top&&l.height<=a.height){r.scrollTop-=a.top-l.top;return}if(l.bottom>a.bottom&&l.height>=a.height){r.scrollTop-=a.top-l.top;return}if(l.top<a.top&&l.height>a.height){r.scrollTop-=a.bottom-l.bottom;return}if(l.bottom>a.bottom&&l.height<a.height){r.scrollTop-=a.bottom-l.bottom;return}}}n.scrollIntoViewIfNeeded=s})($||($={}));var se;(function(n){n.IS_MAC=!!navigator.platform.match(/Mac/i),n.IS_WIN=!!navigator.platform.match(/Win/i),n.IS_IE=/Trident/.test(navigator.userAgent),n.IS_EDGE=/Edge/.test(navigator.userAgent);function e(t){return n.IS_MAC?t.metaKey:t.ctrlKey}n.accelKey=e})(se||(se={}));var _e;(function(n){function e(s){if(s in ge.specificityCache)return ge.specificityCache[s];let r=ge.calculateSingle(s);return ge.specificityCache[s]=r}n.calculateSpecificity=e;function t(s){if(s in ge.validityCache)return ge.validityCache[s];let r=!0;try{ge.testElem.querySelector(s)}catch{r=!1}return ge.validityCache[s]=r}n.isValid=t;function i(s,r){return ge.protoMatchFunc.call(s,r)}n.matches=i})(_e||(_e={}));var ge;(function(n){n.specificityCache=Object.create(null),n.validityCache=Object.create(null),n.testElem=document.createElement("div"),n.protoMatchFunc=(()=>{let d=Element.prototype;return d.matches||d.matchesSelector||d.mozMatchesSelector||d.msMatchesSelector||d.oMatchesSelector||d.webkitMatchesSelector||function(c){let f=this,h=f.ownerDocument?f.ownerDocument.querySelectorAll(c):[];return Array.prototype.indexOf.call(h,f)!==-1}})();function e(d){d=d.split(",",1)[0];let c=0,f=0,h=0;function m(p){let _=d.match(p);return _===null?!1:(d=d.slice(_[0].length),!0)}for(d=d.replace(u," $1 ");d.length>0;){if(m(t)){c++;continue}if(m(i)){f++;continue}if(m(s)){f++;continue}if(m(o)){h++;continue}if(m(a)){f++;continue}if(m(r)){h++;continue}if(!m(l))return 0}return c=Math.min(c,255),f=Math.min(f,255),h=Math.min(h,255),c<<16|f<<8|h}n.calculateSingle=e;let t=/^#[^\s\+>~#\.\[:]+/,i=/^\.[^\s\+>~#\.\[:]+/,s=/^\[[^\]]+\]/,r=/^[^\s\+>~#\.\[:]+/,o=/^(::[^\s\+>~#\.\[:]+|:first-line|:first-letter|:before|:after)/,a=/^:[^\s\+>~#\.\[:]+/,l=/^[\s\+>~\*]+/,u=/:not\(([^\)]+)\)/g})(ge||(ge={}));var oe=class{constructor(e){this._pid=We.nextPID(),this.name=e.name,this._create=e.create,this._coerce=e.coerce||null,this._compare=e.compare||null,this._changed=e.changed||null}get(e){let t,i=We.ensureMap(e);return this._pid in i?t=i[this._pid]:t=i[this._pid]=this._createValue(e),t}set(e,t){let i,s=We.ensureMap(e);this._pid in s?i=s[this._pid]:i=s[this._pid]=this._createValue(e);let r=this._coerceValue(e,t);this._maybeNotify(e,i,s[this._pid]=r)}coerce(e){let t,i=We.ensureMap(e);this._pid in i?t=i[this._pid]:t=i[this._pid]=this._createValue(e);let s=this._coerceValue(e,t);this._maybeNotify(e,t,i[this._pid]=s)}_createValue(e){let t=this._create;return t(e)}_coerceValue(e,t){let i=this._coerce;return i?i(e,t):t}_compareValue(e,t){let i=this._compare;return i?i(e,t):e===t}_maybeNotify(e,t,i){let s=this._changed;s&&!this._compareValue(t,i)&&s(e,t,i)}};(function(n){function e(t){We.ownerData.delete(t)}n.clearData=e})(oe||(oe={}));var We;(function(n){n.ownerData=new WeakMap,n.nextPID=(()=>{let t=0;return()=>`pid-${`${Math.random()}`.slice(2)}-${t++}`})();function e(t){let i=n.ownerData.get(t);return i||(i=Object.create(null),n.ownerData.set(t,i),i)}n.ensureMap=e})(We||(We={}));var ut=ye(Se()),gi=ye(ht()),U=class{constructor(e){this.sender=e}connect(e,t){return ce.connect(this,e,t)}disconnect(e,t){return ce.disconnect(this,e,t)}emit(e){ce.emit(this,e)}};(function(n){function e(l,u){ce.disconnectBetween(l,u)}n.disconnectBetween=e;function t(l){ce.disconnectSender(l)}n.disconnectSender=t;function i(l){ce.disconnectReceiver(l)}n.disconnectReceiver=i;function s(l){ce.disconnectAll(l)}n.disconnectAll=s;function r(l){ce.disconnectAll(l)}n.clearData=r;function o(){return ce.exceptionHandler}n.getExceptionHandler=o;function a(l){let u=ce.exceptionHandler;return ce.exceptionHandler=l,u}n.setExceptionHandler=a})(U||(U={}));var ce;(function(n){n.exceptionHandler=v=>{console.error(v)};function e(v,g,b){b=b||void 0;let y=l.get(v.sender);if(y||(y=[],l.set(v.sender,y)),f(y,v,g,b))return!1;let M=b||g,S=u.get(M);S||(S=[],u.set(M,S));let E={signal:v,slot:g,thisArg:b};return y.push(E),S.push(E),!0}n.connect=e;function t(v,g,b){b=b||void 0;let y=l.get(v.sender);if(!y||y.length===0)return!1;let M=f(y,v,g,b);if(!M)return!1;let S=b||g,E=u.get(S);return M.signal=null,m(y),m(E),!0}n.disconnect=t;function i(v,g){let b=l.get(v);if(!b||b.length===0)return;let y=u.get(g);if(!(!y||y.length===0)){for(let M of y)M.signal&&M.signal.sender===v&&(M.signal=null);m(b),m(y)}}n.disconnectBetween=i;function s(v){let g=l.get(v);if(!(!g||g.length===0)){for(let b of g){if(!b.signal)continue;let y=b.thisArg||b.slot;b.signal=null,m(u.get(y))}m(g)}}n.disconnectSender=s;function r(v){let g=u.get(v);if(!(!g||g.length===0)){for(let b of g){if(!b.signal)continue;let y=b.signal.sender;b.signal=null,m(l.get(y))}m(g)}}n.disconnectReceiver=r;function o(v){s(v),r(v)}n.disconnectAll=o;function a(v,g){let b=l.get(v.sender);if(!(!b||b.length===0))for(let y=0,M=b.length;y<M;++y){let S=b[y];S.signal===v&&h(S,g)}}n.emit=a;let l=new WeakMap,u=new WeakMap,d=new Set,c=typeof requestAnimationFrame=="function"?requestAnimationFrame:setImmediate;function f(v,g,b,y){return(0,ut.find)(v,M=>M.signal===g&&M.slot===b&&M.thisArg===y)}function h(v,g){let{signal:b,slot:y,thisArg:M}=v;try{y.call(M,b.sender,g)}catch(S){n.exceptionHandler(S)}}function m(v){d.size===0&&c(p),d.add(v)}function p(){d.forEach(_),d.clear()}function _(v){ut.ArrayExt.removeAllWhere(v,w)}function w(v){return v.signal===null}})(ce||(ce={}));var Re=class{constructor(e){this._fn=e}get isDisposed(){return!this._fn}dispose(){if(!this._fn)return;let e=this._fn;this._fn=null,e()}};var Qe=class{constructor(){this._isDisposed=!1,this._items=new Set}get isDisposed(){return this._isDisposed}dispose(){this._isDisposed||(this._isDisposed=!0,this._items.forEach(e=>{e.dispose()}),this._items.clear())}contains(e){return this._items.has(e)}add(e){this._items.add(e)}remove(e){this._items.delete(e)}clear(){this._items.clear()}};(function(n){function e(t){let i=new n;for(let s of t)i.add(s);return i}n.from=e})(Qe||(Qe={}));var mt=class extends Qe{constructor(){super(...arguments),this._disposed=new U(this)}get disposed(){return this._disposed}dispose(){this.isDisposed||(super.dispose(),this._disposed.emit(void 0),U.clearData(this))}};(function(n){function e(t){let i=new n;for(let s of t)i.add(s);return i}n.from=e})(mt||(mt={}));var le=class n{constructor(e){this._onScrollFrame=()=>{if(!this._scrollTarget)return;let{element:t,edge:i,distance:s}=this._scrollTarget,r=re.SCROLL_EDGE_SIZE-s,o=Math.pow(r/re.SCROLL_EDGE_SIZE,2),a=Math.max(1,Math.round(o*re.SCROLL_EDGE_SIZE));switch(i){case"top":t.scrollTop-=a;break;case"left":t.scrollLeft-=a;break;case"right":t.scrollLeft+=a;break;case"bottom":t.scrollTop+=a;break}requestAnimationFrame(this._onScrollFrame)},this._disposed=!1,this._dropAction="none",this._override=null,this._currentTarget=null,this._currentElement=null,this._promise=null,this._scrollTarget=null,this._resolve=null,this.document=e.document||document,this.mimeData=e.mimeData,this.dragImage=e.dragImage||null,this.proposedAction=e.proposedAction||"copy",this.supportedActions=e.supportedActions||"all",this.source=e.source||null}dispose(){if(!this._disposed){if(this._disposed=!0,this._currentTarget){let e=new PointerEvent("pointerup",{bubbles:!0,cancelable:!0,clientX:-1,clientY:-1});re.dispatchDragLeave(this,this._currentTarget,null,e)}this._finalize("none")}}get isDisposed(){return this._disposed}start(e,t){if(this._disposed)return Promise.resolve("none");if(this._promise)return this._promise;this._addListeners(),this._attachDragImage(e,t),this._promise=new Promise(s=>{this._resolve=s});let i=new PointerEvent("pointermove",{bubbles:!0,cancelable:!0,clientX:e,clientY:t});return document.dispatchEvent(i),this._promise}handleEvent(e){switch(e.type){case"pointermove":this._evtPointerMove(e);break;case"pointerup":this._evtPointerUp(e);break;case"keydown":this._evtKeyDown(e);break;default:e.preventDefault(),e.stopPropagation();break}}moveDragImage(e,t){if(!this.dragImage)return;let i=this.dragImage.style;i.transform=`translate(${e}px, ${t}px)`}_evtPointerMove(e){e.preventDefault(),e.stopPropagation(),this._updateCurrentTarget(e),this._updateDragScroll(e),this.moveDragImage(e.clientX,e.clientY)}_evtPointerUp(e){if(e.preventDefault(),e.stopPropagation(),e.button!==0)return;if(this._updateCurrentTarget(e),!this._currentTarget){this._finalize("none");return}if(this._dropAction==="none"){re.dispatchDragLeave(this,this._currentTarget,null,e),this._finalize("none");return}let t=re.dispatchDrop(this,this._currentTarget,e);this._finalize(t)}_evtKeyDown(e){e.preventDefault(),e.stopPropagation(),e.keyCode===27&&this.dispose()}_addListeners(){document.addEventListener("pointerdown",this,!0),document.addEventListener("pointermove",this,!0),document.addEventListener("pointerup",this,!0),document.addEventListener("pointerenter",this,!0),document.addEventListener("pointerleave",this,!0),document.addEventListener("pointerover",this,!0),document.addEventListener("pointerout",this,!0),document.addEventListener("keydown",this,!0),document.addEventListener("keyup",this,!0),document.addEventListener("keypress",this,!0),document.addEventListener("contextmenu",this,!0)}_removeListeners(){document.removeEventListener("pointerdown",this,!0),document.removeEventListener("pointermove",this,!0),document.removeEventListener("pointerup",this,!0),document.removeEventListener("pointerenter",this,!0),document.removeEventListener("pointerleave",this,!0),document.removeEventListener("pointerover",this,!0),document.removeEventListener("pointerout",this,!0),document.removeEventListener("keydown",this,!0),document.removeEventListener("keyup",this,!0),document.removeEventListener("keypress",this,!0),document.removeEventListener("contextmenu",this,!0)}_updateDragScroll(e){let t=re.findScrollTarget(e);!this._scrollTarget&&!t||(this._scrollTarget||setTimeout(this._onScrollFrame,500),this._scrollTarget=t)}_updateCurrentTarget(e){let t=this._currentTarget,i=this._currentTarget,s=this._currentElement,r=re.findElementBehindBackdrop(e,this.document);this._currentElement=r,r!==s&&r!==i&&re.dispatchDragExit(this,i,r,e),r!==s&&r!==i&&(i=re.dispatchDragEnter(this,r,i,e)),i!==t&&(this._currentTarget=i,re.dispatchDragLeave(this,t,i,e));let o=re.dispatchDragOver(this,i,e);this._setDropAction(o)}_attachDragImage(e,t){if(!this.dragImage)return;this.dragImage.classList.add("lm-mod-drag-image");let i=this.dragImage.style;i.pointerEvents="none",i.position="fixed",i.transform=`translate(${e}px, ${t}px)`,(this.document instanceof Document?this.document.body:this.document.firstElementChild).appendChild(this.dragImage)}_detachDragImage(){if(!this.dragImage)return;let e=this.dragImage.parentNode;e&&e.removeChild(this.dragImage)}_setDropAction(e){if(e=re.validateAction(e,this.supportedActions),!(this._override&&this._dropAction===e))switch(e){case"none":this._dropAction=e,this._override=n.overrideCursor("no-drop",this.document);break;case"copy":this._dropAction=e,this._override=n.overrideCursor("copy",this.document);break;case"link":this._dropAction=e,this._override=n.overrideCursor("alias",this.document);break;case"move":this._dropAction=e,this._override=n.overrideCursor("move",this.document);break}}_finalize(e){let t=this._resolve;this._removeListeners(),this._detachDragImage(),this._override&&(this._override.dispose(),this._override=null),this.mimeData.clear(),this._disposed=!0,this._dropAction="none",this._currentTarget=null,this._currentElement=null,this._scrollTarget=null,this._promise=null,this._resolve=null,t&&t(e)}};(function(n){class e extends DragEvent{constructor(s,r){super(r.type,{bubbles:!0,cancelable:!0,altKey:s.altKey,button:s.button,clientX:s.clientX,clientY:s.clientY,ctrlKey:s.ctrlKey,detail:0,metaKey:s.metaKey,relatedTarget:r.related,screenX:s.screenX,screenY:s.screenY,shiftKey:s.shiftKey,view:window});let{drag:o}=r;this.dropAction="none",this.mimeData=o.mimeData,this.proposedAction=o.proposedAction,this.supportedActions=o.supportedActions,this.source=o.source}}n.Event=e;function t(i,s=document){return re.overrideCursor(i,s)}n.overrideCursor=t})(le||(le={}));var re;(function(n){n.SCROLL_EDGE_SIZE=20;function e(b,y){return c[b]&f[y]?b:"none"}n.validateAction=e;function t(b,y=document){if(b){if(i&&b==i.event)return i.element;n.cursorBackdrop.style.zIndex="-1000";let M=y.elementFromPoint(b.clientX,b.clientY);return n.cursorBackdrop.style.zIndex="",i={event:b,element:M},M}else{let M=n.cursorBackdrop.style.transform;if(s&&M===s.transform)return s.element;let S=n.cursorBackdrop.getBoundingClientRect();n.cursorBackdrop.style.zIndex="-1000";let E=y.elementFromPoint(S.left+S.width/2,S.top+S.height/2);return n.cursorBackdrop.style.zIndex="",s={transform:M,element:E},E}}n.findElementBehindBackdrop=t;let i=null,s=null;function r(b){let y=b.clientX,M=b.clientY,S=t(b);for(;S;S=S.parentElement){if(!S.hasAttribute("data-lm-dragscroll"))continue;let E=0,P=0;S===document.body&&(E=window.pageXOffset,P=window.pageYOffset);let x=S.getBoundingClientRect(),I=x.top+P,L=x.left+E,R=L+x.width,O=I+x.height;if(y<L||y>=R||M<I||M>=O)continue;let K=y-L+1,F=M-I+1,V=R-y,Z=O-M,j=Math.min(K,F,V,Z);if(j>n.SCROLL_EDGE_SIZE)continue;let X;switch(j){case Z:X="bottom";break;case F:X="top";break;case V:X="right";break;case K:X="left";break;default:throw"unreachable"}let G=S.scrollWidth-S.clientWidth,ee=S.scrollHeight-S.clientHeight,ie;switch(X){case"top":ie=ee>0&&S.scrollTop>0;break;case"left":ie=G>0&&S.scrollLeft>0;break;case"right":ie=G>0&&S.scrollLeft<G;break;case"bottom":ie=ee>0&&S.scrollTop<ee;break;default:throw"unreachable"}if(ie)return{element:S,edge:X,distance:j}}return null}n.findScrollTarget=r;function o(b,y,M,S){if(!y)return null;let E=new le.Event(S,{drag:b,related:M,type:"lm-dragenter"});if(!y.dispatchEvent(E))return y;let x=b.document instanceof Document?b.document.body:b.document.firstElementChild;return y===x?M:(E=new le.Event(S,{drag:b,related:M,type:"lm-dragenter"}),x.dispatchEvent(E),x)}n.dispatchDragEnter=o;function a(b,y,M,S){if(!y)return;let E=new le.Event(S,{drag:b,related:M,type:"lm-dragexit"});y.dispatchEvent(E)}n.dispatchDragExit=a;function l(b,y,M,S){if(!y)return;let E=new le.Event(S,{drag:b,related:M,type:"lm-dragleave"});y.dispatchEvent(E)}n.dispatchDragLeave=l;function u(b,y,M){if(!y)return"none";let S=new le.Event(M,{drag:b,related:null,type:"lm-dragover"});return y.dispatchEvent(S)?"none":S.dropAction}n.dispatchDragOver=u;function d(b,y,M){if(!y)return"none";let S=new le.Event(M,{drag:b,related:null,type:"lm-drop"});return y.dispatchEvent(S)?"none":S.dropAction}n.dispatchDrop=d;let c={none:0,copy:1,link:2,move:4},f={none:c.none,copy:c.copy,link:c.link,move:c.move,"copy-link":c.copy|c.link,"copy-move":c.copy|c.move,"link-move":c.link|c.move,all:c.copy|c.link|c.move};function h(b,y=document){let M=++g,S=y instanceof Document?y.body:y.firstElementChild;return n.cursorBackdrop.isConnected||(n.cursorBackdrop.style.transform="scale(0)",S.appendChild(n.cursorBackdrop),_(),document.addEventListener("pointermove",m,{capture:!0,passive:!0}),n.cursorBackdrop.addEventListener("scroll",p,{capture:!0,passive:!0})),n.cursorBackdrop.style.cursor=b,new Re(()=>{M===g&&n.cursorBackdrop.isConnected&&(document.removeEventListener("pointermove",m,!0),n.cursorBackdrop.removeEventListener("scroll",p,!0),S.removeChild(n.cursorBackdrop))})}n.overrideCursor=h;function m(b){n.cursorBackdrop&&(n.cursorBackdrop.style.transform=`translate(${b.clientX}px, ${b.clientY}px)`)}function p(b){if(!n.cursorBackdrop)return;let y=t();if(!y)return;let M=y.closest("[data-lm-dragscroll]");M&&(M.scrollTop+=n.cursorBackdrop.scrollTop-w,M.scrollLeft+=n.cursorBackdrop.scrollLeft-w,_())}function _(){n.cursorBackdrop.scrollTop=w,n.cursorBackdrop.scrollLeft=w}let w=500;function v(){let b=document.createElement("div");return b.classList.add("lm-cursor-backdrop"),b}let g=0;n.cursorBackdrop=v()})(re||(re={}));var Ft=ye(Se()),ne=ye(ht());function Ke(){return Mt.keyboardLayout}var et=class n{constructor(e,t,i=[]){this.name=e,this._codes=t,this._keys=n.extractKeys(t),this._modifierKeys=n.convertToKeySet(i)}keys(){return Object.keys(this._keys)}isValidKey(e){return e in this._keys}isModifierKey(e){return e in this._modifierKeys}keyForKeydownEvent(e){return this._codes[e.keyCode]||""}};(function(n){function e(i){let s=Object.create(null);for(let r in i)s[i[r]]=!0;return s}n.extractKeys=e;function t(i){let s=Object(null);for(let r=0,o=i.length;r<o;++r)s[i[r]]=!0;return s}n.convertToKeySet=t})(et||(et={}));var _i=new et("en-us",{8:"Backspace",9:"Tab",13:"Enter",16:"Shift",17:"Ctrl",18:"Alt",19:"Pause",27:"Escape",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"A",66:"B",67:"C",68:"D",69:"E",70:"F",71:"G",72:"H",73:"I",74:"J",75:"K",76:"L",77:"M",78:"N",79:"O",80:"P",81:"Q",82:"R",83:"S",84:"T",85:"U",86:"V",87:"W",88:"X",89:"Y",90:"Z",91:"Meta",93:"ContextMenu",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9",106:"*",107:"+",109:"-",110:".",111:"/",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",224:"Meta"},["Shift","Ctrl","Alt","Meta"]),Mt;(function(n){n.keyboardLayout=_i})(Mt||(Mt={}));var he=class n{constructor(){this._timerID=0,this._timerModifierID=0,this._replaying=!1,this._keystrokes=[],this._keydownEvents=[],this._keyBindings=[],this._exactKeyMatch=null,this._commands=new Map,this._commandChanged=new U(this),this._commandExecuted=new U(this),this._keyBindingChanged=new U(this),this._holdKeyBindingPromises=new Map}get commandChanged(){return this._commandChanged}get commandExecuted(){return this._commandExecuted}get keyBindingChanged(){return this._keyBindingChanged}get keyBindings(){return this._keyBindings}listCommands(){return Array.from(this._commands.keys())}hasCommand(e){return this._commands.has(e)}addCommand(e,t){if(this._commands.has(e))throw new Error(`Command '${e}' already registered.`);return this._commands.set(e,be.createCommand(t)),this._commandChanged.emit({id:e,type:"added"}),new Re(()=>{this._commands.delete(e),this._commandChanged.emit({id:e,type:"removed"})})}notifyCommandChanged(e){if(e!==void 0&&!this._commands.has(e))throw new Error(`Command '${e}' is not registered.`);this._commandChanged.emit({id:e,type:e?"changed":"many-changed"})}describedBy(e,t=ne.JSONExt.emptyObject){var i;let s=this._commands.get(e);return Promise.resolve((i=s?.describedBy.call(void 0,t))!==null&&i!==void 0?i:{args:null})}label(e,t=ne.JSONExt.emptyObject){var i;let s=this._commands.get(e);return(i=s?.label.call(void 0,t))!==null&&i!==void 0?i:""}mnemonic(e,t=ne.JSONExt.emptyObject){let i=this._commands.get(e);return i?i.mnemonic.call(void 0,t):-1}icon(e,t=ne.JSONExt.emptyObject){var i;return(i=this._commands.get(e))===null||i===void 0?void 0:i.icon.call(void 0,t)}iconClass(e,t=ne.JSONExt.emptyObject){let i=this._commands.get(e);return i?i.iconClass.call(void 0,t):""}iconLabel(e,t=ne.JSONExt.emptyObject){let i=this._commands.get(e);return i?i.iconLabel.call(void 0,t):""}caption(e,t=ne.JSONExt.emptyObject){let i=this._commands.get(e);return i?i.caption.call(void 0,t):""}usage(e,t=ne.JSONExt.emptyObject){let i=this._commands.get(e);return i?i.usage.call(void 0,t):""}className(e,t=ne.JSONExt.emptyObject){let i=this._commands.get(e);return i?i.className.call(void 0,t):""}dataset(e,t=ne.JSONExt.emptyObject){let i=this._commands.get(e);return i?i.dataset.call(void 0,t):{}}isEnabled(e,t=ne.JSONExt.emptyObject){let i=this._commands.get(e);return i?i.isEnabled.call(void 0,t):!1}isToggled(e,t=ne.JSONExt.emptyObject){let i=this._commands.get(e);return i?i.isToggled.call(void 0,t):!1}isToggleable(e,t=ne.JSONExt.emptyObject){let i=this._commands.get(e);return i?i.isToggleable:!1}isVisible(e,t=ne.JSONExt.emptyObject){let i=this._commands.get(e);return i?i.isVisible.call(void 0,t):!1}execute(e,t=ne.JSONExt.emptyObject){let i=this._commands.get(e);if(!i)return Promise.reject(new Error(`Command '${e}' not registered.`));let s;try{s=i.execute.call(void 0,t)}catch(o){s=Promise.reject(o)}let r=Promise.resolve(s);return this._commandExecuted.emit({id:e,args:t,result:r}),r}addKeyBinding(e){let t=be.createKeyBinding(e);return this._keyBindings.push(t),this._keyBindingChanged.emit({binding:t,type:"added"}),new Re(()=>{Ft.ArrayExt.removeFirstOf(this._keyBindings,t),this._keyBindingChanged.emit({binding:t,type:"removed"})})}processKeydownEvent(e){if(e.defaultPrevented||this._replaying)return;let t=n.keystrokeForKeydownEvent(e);if(!t){this._replayKeydownEvents(),this._clearPendingState();return}if(n.isModifierKeyPressed(e)){let{exact:o}=be.matchKeyBinding(this._keyBindings,[t],e);o?(e.preventDefault(),e.stopPropagation(),this._startModifierTimer(o)):this._clearModifierTimer();return}this._keystrokes.push(t);let{exact:i,partial:s}=be.matchKeyBinding(this._keyBindings,this._keystrokes,e),r=s.length!==0;if(!i&&!r){this._replayKeydownEvents(),this._clearPendingState();return}if((i?.preventDefault||s.some(o=>o.preventDefault))&&(e.preventDefault(),e.stopPropagation()),this._keydownEvents.push(e),i&&!r){this._executeKeyBinding(i),this._clearPendingState();return}i&&(this._exactKeyMatch=i),this._startTimer()}holdKeyBindingExecution(e,t){this._holdKeyBindingPromises.set(e,t)}processKeyupEvent(e){this._clearModifierTimer()}_startModifierTimer(e){this._clearModifierTimer(),this._timerModifierID=window.setTimeout(()=>{this._executeKeyBinding(e)},be.modifierkeyTimeOut)}_clearModifierTimer(){this._timerModifierID!==0&&(clearTimeout(this._timerModifierID),this._timerModifierID=0)}_startTimer(){this._clearTimer(),this._timerID=window.setTimeout(()=>{this._onPendingTimeout()},be.CHORD_TIMEOUT)}_clearTimer(){this._timerID!==0&&(clearTimeout(this._timerID),this._timerID=0)}_replayKeydownEvents(){this._keydownEvents.length!==0&&(this._replaying=!0,this._keydownEvents.forEach(be.replayKeyEvent),this._replaying=!1)}async _executeKeyBinding(e){if(this._holdKeyBindingPromises.size!==0){let r=[...this._keydownEvents],o=(await Promise.race([Promise.all(r.map(async a=>{var l;return(l=this._holdKeyBindingPromises.get(a))!==null&&l!==void 0?l:Promise.resolve(!0)})),new Promise(a=>{setTimeout(()=>a([!1]),be.KEYBINDING_HOLD_TIMEOUT)})])).every(Boolean);if(this._holdKeyBindingPromises.clear(),!o)return}let{command:t,args:i}=e,s={_luminoEvent:{type:"keybinding",keys:e.keys},...i};if(!this.hasCommand(t)||!this.isEnabled(t,s)){let r=this.hasCommand(t)?"enabled":"registered",a=`Cannot execute key binding '${e.keys.join(", ")}':`,l=`command '${t}' is not ${r}.`;console.warn(`${a} ${l}`);return}await this.execute(t,s)}_clearPendingState(){this._clearTimer(),this._clearModifierTimer(),this._exactKeyMatch=null,this._keystrokes.length=0,this._keydownEvents.length=0}_onPendingTimeout(){this._timerID=0,this._exactKeyMatch?this._executeKeyBinding(this._exactKeyMatch):this._replayKeydownEvents(),this._clearPendingState()}};(function(n){function e(a){let l="",u=!1,d=!1,c=!1,f=!1;for(let h of a.split(/\s+/))h==="Accel"?se.IS_MAC?d=!0:c=!0:h==="Alt"?u=!0:h==="Cmd"?d=!0:h==="Ctrl"?c=!0:h==="Shift"?f=!0:h.length>0&&(l=h);return{cmd:d,ctrl:c,alt:u,shift:f,key:l}}n.parseKeystroke=e;function t(a){let l="",u=e(a);return u.ctrl&&(l+="Ctrl "),u.alt&&(l+="Alt "),u.shift&&(l+="Shift "),u.cmd&&se.IS_MAC&&(l+="Cmd "),u.key?l+u.key:l.trim()}n.normalizeKeystroke=t;function i(a){let l;return se.IS_WIN?l=a.winKeys||a.keys:se.IS_MAC?l=a.macKeys||a.keys:l=a.linuxKeys||a.keys,l.map(t)}n.normalizeKeys=i;function s(a){return typeof a=="string"?l(a):a.map(l).join(", ");function l(u){let d=[],c=se.IS_MAC?" ":"+",f=e(u);return f.ctrl&&d.push("Ctrl"),f.alt&&d.push("Alt"),f.shift&&d.push("Shift"),se.IS_MAC&&f.cmd&&d.push("Cmd"),d.push(f.key),d.map(be.formatKey).join(c)}}n.formatKeystroke=s;function r(a){let l=Ke(),u=l.keyForKeydownEvent(a);return l.isModifierKey(u)}n.isModifierKeyPressed=r;function o(a){let l=Ke(),u=l.keyForKeydownEvent(a),d=[];return a.ctrlKey&&d.push("Ctrl"),a.altKey&&d.push("Alt"),a.shiftKey&&d.push("Shift"),a.metaKey&&se.IS_MAC&&d.push("Cmd"),l.isModifierKey(u)||d.push(u),d.join(" ")}n.keystrokeForKeydownEvent=o})(he||(he={}));var be;(function(n){n.CHORD_TIMEOUT=1e3,n.KEYBINDING_HOLD_TIMEOUT=1e3,n.modifierkeyTimeOut=500;function e(g){return{execute:g.execute,describedBy:m(typeof g.describedBy=="function"?g.describedBy:{args:null,...g.describedBy},()=>({args:null})),label:m(g.label,l),mnemonic:m(g.mnemonic,u),icon:m(g.icon,h),iconClass:m(g.iconClass,l),iconLabel:m(g.iconLabel,l),caption:m(g.caption,l),usage:m(g.usage,l),className:m(g.className,l),dataset:m(g.dataset,f),isEnabled:g.isEnabled||d,isToggled:g.isToggled||c,isToggleable:g.isToggleable||!!g.isToggled,isVisible:g.isVisible||d}}n.createCommand=e;function t(g){var b;return{keys:he.normalizeKeys(g),selector:p(g),command:g.command,args:g.args||ne.JSONExt.emptyObject,preventDefault:(b=g.preventDefault)!==null&&b!==void 0?b:!0}}n.createKeyBinding=t;function i(g,b,y){let M=null,S=[],E=1/0,P=0;for(let x=0,I=g.length;x<I;++x){let L=g[x],R=_(L.keys,b);if(R===0)continue;if(R===2){w(L.selector,y)!==-1&&S.push(L);continue}let O=w(L.selector,y);if(O===-1||O>E)continue;let K=_e.calculateSpecificity(L.selector);(!M||O<E||K>=P)&&(M=L,E=O,P=K)}return{exact:M,partial:S}}n.matchKeyBinding=i;function s(g){g.target.dispatchEvent(v(g))}n.replayKeyEvent=s;function r(g){return se.IS_MAC?o.hasOwnProperty(g)?o[g]:g:a.hasOwnProperty(g)?a[g]:g}n.formatKey=r;let o={Backspace:"\u232B",Tab:"\u21E5",Enter:"\u23CE",Shift:"\u21E7",Ctrl:"\u2303",Alt:"\u2325",Escape:"\u238B",PageUp:"\u21DE",PageDown:"\u21DF",End:"\u2198",Home:"\u2196",ArrowLeft:"\u2190",ArrowUp:"\u2191",ArrowRight:"\u2192",ArrowDown:"\u2193",Delete:"\u2326",Cmd:"\u2318"},a={Escape:"Esc",PageUp:"Page Up",PageDown:"Page Down",ArrowLeft:"Left",ArrowUp:"Up",ArrowRight:"Right",ArrowDown:"Down",Delete:"Del"},l=()=>"",u=()=>-1,d=()=>!0,c=()=>!1,f=()=>({}),h=()=>{};function m(g,b){return g===void 0?b:typeof g=="function"?g:()=>g}function p(g){if(g.selector.indexOf(",")!==-1)throw new Error(`Selector cannot contain commas: ${g.selector}`);if(!_e.isValid(g.selector))throw new Error(`Invalid selector: ${g.selector}`);return g.selector}function _(g,b){if(g.length<b.length)return 0;for(let y=0,M=b.length;y<M;++y)if(g[y]!==b[y])return 0;return g.length>b.length?2:1}function w(g,b){let y=b.target,M=b.currentTarget;for(let S=0;y!==null;y=y.parentElement,++S){if(y.hasAttribute("data-lm-suppress-shortcuts"))return-1;if(_e.matches(y,g))return S;if(y===M)return-1}return-1}function v(g){let b=document.createEvent("Event"),y=g.bubbles||!0,M=g.cancelable||!0;return b.initEvent(g.type||"keydown",y,M),b.key=g.key||"",b.keyCode=g.keyCode||0,b.which=g.keyCode||0,b.ctrlKey=g.ctrlKey||!1,b.altKey=g.altKey||!1,b.shiftKey=g.shiftKey||!1,b.metaKey=g.metaKey||!1,b.view=g.view||window,b}})(be||(be={}));var Ue=ye(Se()),je=class{constructor(e){this.type="text",this.content=e}},tt=class{constructor(e,t,i,s){this.type="element",this.tag=e,this.attrs=t,this.children=i,this.renderer=s}};function q(n){let e={},t,i=[];for(let r=1,o=arguments.length;r<o;++r){let a=arguments[r];typeof a=="string"?i.push(new je(a)):a instanceof je||a instanceof tt?i.push(a):a instanceof Array?s(i,a):(r===1||r===2)&&a&&typeof a=="object"&&("render"in a?t=a:e=a)}return new tt(n,e,i,t);function s(r,o){for(let a of o)typeof a=="string"?r.push(new je(a)):(a instanceof je||a instanceof tt)&&r.push(a)}}(function(n){n.a=n.bind(void 0,"a"),n.abbr=n.bind(void 0,"abbr"),n.address=n.bind(void 0,"address"),n.area=n.bind(void 0,"area"),n.article=n.bind(void 0,"article"),n.aside=n.bind(void 0,"aside"),n.audio=n.bind(void 0,"audio"),n.b=n.bind(void 0,"b"),n.bdi=n.bind(void 0,"bdi"),n.bdo=n.bind(void 0,"bdo"),n.blockquote=n.bind(void 0,"blockquote"),n.br=n.bind(void 0,"br"),n.button=n.bind(void 0,"button"),n.canvas=n.bind(void 0,"canvas"),n.caption=n.bind(void 0,"caption"),n.cite=n.bind(void 0,"cite"),n.code=n.bind(void 0,"code"),n.col=n.bind(void 0,"col"),n.colgroup=n.bind(void 0,"colgroup"),n.data=n.bind(void 0,"data"),n.datalist=n.bind(void 0,"datalist"),n.dd=n.bind(void 0,"dd"),n.del=n.bind(void 0,"del"),n.dfn=n.bind(void 0,"dfn"),n.div=n.bind(void 0,"div"),n.dl=n.bind(void 0,"dl"),n.dt=n.bind(void 0,"dt"),n.em=n.bind(void 0,"em"),n.embed=n.bind(void 0,"embed"),n.fieldset=n.bind(void 0,"fieldset"),n.figcaption=n.bind(void 0,"figcaption"),n.figure=n.bind(void 0,"figure"),n.footer=n.bind(void 0,"footer"),n.form=n.bind(void 0,"form"),n.h1=n.bind(void 0,"h1"),n.h2=n.bind(void 0,"h2"),n.h3=n.bind(void 0,"h3"),n.h4=n.bind(void 0,"h4"),n.h5=n.bind(void 0,"h5"),n.h6=n.bind(void 0,"h6"),n.header=n.bind(void 0,"header"),n.hr=n.bind(void 0,"hr"),n.i=n.bind(void 0,"i"),n.iframe=n.bind(void 0,"iframe"),n.img=n.bind(void 0,"img"),n.input=n.bind(void 0,"input"),n.ins=n.bind(void 0,"ins"),n.kbd=n.bind(void 0,"kbd"),n.label=n.bind(void 0,"label"),n.legend=n.bind(void 0,"legend"),n.li=n.bind(void 0,"li"),n.main=n.bind(void 0,"main"),n.map=n.bind(void 0,"map"),n.mark=n.bind(void 0,"mark"),n.meter=n.bind(void 0,"meter"),n.nav=n.bind(void 0,"nav"),n.noscript=n.bind(void 0,"noscript"),n.object=n.bind(void 0,"object"),n.ol=n.bind(void 0,"ol"),n.optgroup=n.bind(void 0,"optgroup"),n.option=n.bind(void 0,"option"),n.output=n.bind(void 0,"output"),n.p=n.bind(void 0,"p"),n.param=n.bind(void 0,"param"),n.pre=n.bind(void 0,"pre"),n.progress=n.bind(void 0,"progress"),n.q=n.bind(void 0,"q"),n.rp=n.bind(void 0,"rp"),n.rt=n.bind(void 0,"rt"),n.ruby=n.bind(void 0,"ruby"),n.s=n.bind(void 0,"s"),n.samp=n.bind(void 0,"samp"),n.section=n.bind(void 0,"section"),n.select=n.bind(void 0,"select"),n.small=n.bind(void 0,"small"),n.source=n.bind(void 0,"source"),n.span=n.bind(void 0,"span"),n.strong=n.bind(void 0,"strong"),n.sub=n.bind(void 0,"sub"),n.summary=n.bind(void 0,"summary"),n.sup=n.bind(void 0,"sup"),n.table=n.bind(void 0,"table"),n.tbody=n.bind(void 0,"tbody"),n.td=n.bind(void 0,"td"),n.textarea=n.bind(void 0,"textarea"),n.tfoot=n.bind(void 0,"tfoot"),n.th=n.bind(void 0,"th"),n.thead=n.bind(void 0,"thead"),n.time=n.bind(void 0,"time"),n.title=n.bind(void 0,"title"),n.tr=n.bind(void 0,"tr"),n.track=n.bind(void 0,"track"),n.u=n.bind(void 0,"u"),n.ul=n.bind(void 0,"ul"),n.var_=n.bind(void 0,"var"),n.video=n.bind(void 0,"video"),n.wbr=n.bind(void 0,"wbr")})(q||(q={}));var fe;(function(n){function e(i){return Ne.createDOMNode(i)}n.realize=e;function t(i,s){let r=Ne.hostMap.get(s)||[],o=Ne.asContentArray(i);Ne.hostMap.set(s,o),Ne.updateContent(s,r,o)}n.render=t})(fe||(fe={}));var Ne;(function(n){n.hostMap=new WeakMap;function e(h){return h?h instanceof Array?h:[h]:[]}n.asContentArray=e;function t(h){let m=arguments[1]||null,p=arguments[2]||null;if(m)m.insertBefore(t(h),p);else{if(h.type==="text")return document.createTextNode(h.content);if(m=document.createElement(h.tag),o(m,h.attrs),h.renderer)return h.renderer.render(m,{attrs:h.attrs,children:h.children}),m;for(let _=0,w=h.children.length;_<w;++_)t(h.children[_],m)}return m}n.createDOMNode=t;function i(h,m,p){if(m===p)return;let _=f(h,m),w=m.slice(),v=h.firstChild,g=p.length;for(let b=0;b<g;++b){if(b>=w.length){t(p[b],h);continue}let y=w[b],M=p[b];if(y===M){v=v.nextSibling;continue}if(y.type==="text"&&M.type==="text"){v.textContent!==M.content&&(v.textContent=M.content),v=v.nextSibling;continue}if(y.type==="text"||M.type==="text"){Ue.ArrayExt.insert(w,b,M),t(M,h,v);continue}if(!y.renderer!=!M.renderer){Ue.ArrayExt.insert(w,b,M),t(M,h,v);continue}let S=M.attrs.key;if(S&&S in _){let P=_[S];P.vNode!==y&&(Ue.ArrayExt.move(w,w.indexOf(P.vNode,b+1),b),h.insertBefore(P.element,v),y=P.vNode,v=P.element)}if(y===M){v=v.nextSibling;continue}let E=y.attrs.key;if(E&&E!==S){Ue.ArrayExt.insert(w,b,M),t(M,h,v);continue}if(y.tag!==M.tag){Ue.ArrayExt.insert(w,b,M),t(M,h,v);continue}a(v,y.attrs,M.attrs),M.renderer?M.renderer.render(v,{attrs:M.attrs,children:M.children}):i(v,y.children,M.children),v=v.nextSibling}s(h,w,g,!0)}n.updateContent=i;function s(h,m,p,_){for(let w=m.length-1;w>=p;--w){let v=m[w],g=_?h.lastChild:h.childNodes[w];v.type==="text"||(v.renderer&&v.renderer.unrender?v.renderer.unrender(g,{attrs:v.attrs,children:v.children}):s(g,v.children,0,!1)),_&&h.removeChild(g)}}let r={key:!0,className:!0,htmlFor:!0,dataset:!0,style:!0};function o(h,m){for(let p in m)p in r||(p.substr(0,2)==="on"?h[p]=m[p]:h.setAttribute(p,m[p]));m.className!==void 0&&h.setAttribute("class",m.className),m.htmlFor!==void 0&&h.setAttribute("for",m.htmlFor),m.dataset&&l(h,m.dataset),m.style&&d(h,m.style)}function a(h,m,p){if(m===p)return;let _;for(_ in m)_ in r||_ in p||(_.substr(0,2)==="on"?h[_]=null:h.removeAttribute(_));for(_ in p)_ in r||m[_]===p[_]||(_.substr(0,2)==="on"?h[_]=p[_]:h.setAttribute(_,p[_]));m.className!==p.className&&(p.className!==void 0?h.setAttribute("class",p.className):h.removeAttribute("class")),m.htmlFor!==p.htmlFor&&(p.htmlFor!==void 0?h.setAttribute("for",p.htmlFor):h.removeAttribute("for")),m.dataset!==p.dataset&&u(h,m.dataset||{},p.dataset||{}),m.style!==p.style&&c(h,m.style||{},p.style||{})}function l(h,m){for(let p in m)h.setAttribute(`data-${p}`,m[p])}function u(h,m,p){for(let _ in m)_ in p||h.removeAttribute(`data-${_}`);for(let _ in p)m[_]!==p[_]&&h.setAttribute(`data-${_}`,p[_])}function d(h,m){let p=h.style,_;for(_ in m)p[_]=m[_]}function c(h,m,p){let _=h.style,w;for(w in m)w in p||(_[w]="");for(w in p)m[w]!==p[w]&&(_[w]=p[w])}function f(h,m){let p=h.firstChild,_=Object.create(null);for(let w of m)w.type==="element"&&w.attrs.key&&(_[w.attrs.key]={vNode:w,element:p}),p=p.nextSibling;return _}})(Ne||(Ne={}));var Me=class{constructor(){this.sizeHint=0,this.minSize=0,this.maxSize=1/0,this.stretch=1,this.size=0,this.done=!1}},ue;(function(n){function e(r,o){let a=r.length;if(a===0)return o;let l=0,u=0,d=0,c=0,f=0;for(let p=0;p<a;++p){let _=r[p],w=_.minSize,v=_.maxSize,g=_.sizeHint;_.done=!1,_.size=Math.max(w,Math.min(g,v)),d+=_.size,l+=w,u+=v,_.stretch>0&&(c+=_.stretch,f++)}if(o===d)return 0;if(o<=l){for(let p=0;p<a;++p){let _=r[p];_.size=_.minSize}return o-l}if(o>=u){for(let p=0;p<a;++p){let _=r[p];_.size=_.maxSize}return o-u}let h=.01,m=a;if(o<d){let p=d-o;for(;f>0&&p>h;){let _=p,w=c;for(let v=0;v<a;++v){let g=r[v];if(g.done||g.stretch===0)continue;let b=g.stretch*_/w;g.size-b<=g.minSize?(p-=g.size-g.minSize,c-=g.stretch,g.size=g.minSize,g.done=!0,m--,f--):(p-=b,g.size-=b)}}for(;m>0&&p>h;){let _=p/m;for(let w=0;w<a;++w){let v=r[w];v.done||(v.size-_<=v.minSize?(p-=v.size-v.minSize,v.size=v.minSize,v.done=!0,m--):(p-=_,v.size-=_))}}}else{let p=o-d;for(;f>0&&p>h;){let _=p,w=c;for(let v=0;v<a;++v){let g=r[v];if(g.done||g.stretch===0)continue;let b=g.stretch*_/w;g.size+b>=g.maxSize?(p-=g.maxSize-g.size,c-=g.stretch,g.size=g.maxSize,g.done=!0,m--,f--):(p-=b,g.size+=b)}}for(;m>0&&p>h;){let _=p/m;for(let w=0;w<a;++w){let v=r[w];v.done||(v.size+_>=v.maxSize?(p-=v.maxSize-v.size,v.size=v.maxSize,v.done=!0,m--):(p-=_,v.size+=_))}}}return 0}n.calc=e;function t(r,o,a){r.length===0||a===0||(a>0?i(r,o,a):s(r,o,-a))}n.adjust=t;function i(r,o,a){let l=0;for(let f=0;f<=o;++f){let h=r[f];l+=h.maxSize-h.size}let u=0;for(let f=o+1,h=r.length;f<h;++f){let m=r[f];u+=m.size-m.minSize}a=Math.min(a,l,u);let d=a;for(let f=o;f>=0&&d>0;--f){let h=r[f],m=h.maxSize-h.size;m>=d?(h.sizeHint=h.size+d,d=0):(h.sizeHint=h.size+m,d-=m)}let c=a;for(let f=o+1,h=r.length;f<h&&c>0;++f){let m=r[f],p=m.size-m.minSize;p>=c?(m.sizeHint=m.size-c,c=0):(m.sizeHint=m.size-p,c-=p)}}function s(r,o,a){let l=0;for(let f=o+1,h=r.length;f<h;++f){let m=r[f];l+=m.maxSize-m.size}let u=0;for(let f=0;f<=o;++f){let h=r[f];u+=h.size-h.minSize}a=Math.min(a,l,u);let d=a;for(let f=o+1,h=r.length;f<h&&d>0;++f){let m=r[f],p=m.maxSize-m.size;p>=d?(m.sizeHint=m.size+d,d=0):(m.sizeHint=m.size+p,d-=p)}let c=a;for(let f=o;f>=0&&c>0;--f){let h=r[f],m=h.size-h.minSize;m>=c?(h.sizeHint=h.size-c,c=0):(h.sizeHint=h.size-m,c-=m)}}})(ue||(ue={}));var it=class{constructor(e){this._label="",this._caption="",this._mnemonic=-1,this._icon=void 0,this._iconClass="",this._iconLabel="",this._className="",this._closable=!1,this._changed=new U(this),this._isDisposed=!1,this.owner=e.owner,e.label!==void 0&&(this._label=e.label),e.mnemonic!==void 0&&(this._mnemonic=e.mnemonic),e.icon!==void 0&&(this._icon=e.icon),e.iconClass!==void 0&&(this._iconClass=e.iconClass),e.iconLabel!==void 0&&(this._iconLabel=e.iconLabel),e.caption!==void 0&&(this._caption=e.caption),e.className!==void 0&&(this._className=e.className),e.closable!==void 0&&(this._closable=e.closable),this._dataset=e.dataset||{}}get changed(){return this._changed}get label(){return this._label}set label(e){this._label!==e&&(this._label=e,this._changed.emit(void 0))}get mnemonic(){return this._mnemonic}set mnemonic(e){this._mnemonic!==e&&(this._mnemonic=e,this._changed.emit(void 0))}get icon(){return this._icon}set icon(e){this._icon!==e&&(this._icon=e,this._changed.emit(void 0))}get iconClass(){return this._iconClass}set iconClass(e){this._iconClass!==e&&(this._iconClass=e,this._changed.emit(void 0))}get iconLabel(){return this._iconLabel}set iconLabel(e){this._iconLabel!==e&&(this._iconLabel=e,this._changed.emit(void 0))}get caption(){return this._caption}set caption(e){this._caption!==e&&(this._caption=e,this._changed.emit(void 0))}get className(){return this._className}set className(e){this._className!==e&&(this._className=e,this._changed.emit(void 0))}get closable(){return this._closable}set closable(e){this._closable!==e&&(this._closable=e,this._changed.emit(void 0))}get dataset(){return this._dataset}set dataset(e){this._dataset!==e&&(this._dataset=e,this._changed.emit(void 0))}get isDisposed(){return this._isDisposed}dispose(){this.isDisposed||(this._isDisposed=!0,U.clearData(this))}},D=class n{constructor(e={}){this._flags=0,this._layout=null,this._parent=null,this._disposed=new U(this),this._hiddenMode=n.HiddenMode.Display,this.node=ft.createNode(e),this.addClass("lm-Widget")}dispose(){this.isDisposed||(this.setFlag(n.Flag.IsDisposed),this._disposed.emit(void 0),this.parent?this.parent=null:this.isAttached&&n.detach(this),this._layout&&(this._layout.dispose(),this._layout=null),this.title.dispose(),U.clearData(this),z.clearData(this),oe.clearData(this))}get disposed(){return this._disposed}get isDisposed(){return this.testFlag(n.Flag.IsDisposed)}get isAttached(){return this.testFlag(n.Flag.IsAttached)}get isHidden(){return this.testFlag(n.Flag.IsHidden)}get isVisible(){let e=this;do{if(e.isHidden||!e.isAttached)return!1;e=e.parent}while(e!=null);return!0}get title(){return ft.titleProperty.get(this)}get id(){return this.node.id}set id(e){this.node.id=e}get dataset(){return this.node.dataset}get hiddenMode(){return this._hiddenMode}set hiddenMode(e){this._hiddenMode!==e&&(this.isHidden&&this._toggleHidden(!1),e==n.HiddenMode.Scale?this.node.style.willChange="transform":this.node.style.willChange="auto",this._hiddenMode=e,this.isHidden&&this._toggleHidden(!0))}get parent(){return this._parent}set parent(e){if(this._parent!==e){if(e&&this.contains(e))throw new Error("Invalid parent widget.");if(this._parent&&!this._parent.isDisposed){let t=new n.ChildMessage("child-removed",this);z.sendMessage(this._parent,t)}if(this._parent=e,this._parent&&!this._parent.isDisposed){let t=new n.ChildMessage("child-added",this);z.sendMessage(this._parent,t)}this.isDisposed||z.sendMessage(this,n.Msg.ParentChanged)}}get layout(){return this._layout}set layout(e){if(this._layout!==e){if(this.testFlag(n.Flag.DisallowLayout))throw new Error("Cannot set widget layout.");if(this._layout)throw new Error("Cannot change widget layout.");if(e.parent)throw new Error("Cannot change layout parent.");this._layout=e,e.parent=this}}*children(){this._layout&&(yield*this._layout)}contains(e){for(let t=e;t;t=t._parent)if(t===this)return!0;return!1}hasClass(e){return this.node.classList.contains(e)}addClass(e){this.node.classList.add(e)}removeClass(e){this.node.classList.remove(e)}toggleClass(e,t){return t===!0?(this.node.classList.add(e),!0):t===!1?(this.node.classList.remove(e),!1):this.node.classList.toggle(e)}update(){z.postMessage(this,n.Msg.UpdateRequest)}fit(){z.postMessage(this,n.Msg.FitRequest)}activate(){z.postMessage(this,n.Msg.ActivateRequest)}close(){z.sendMessage(this,n.Msg.CloseRequest)}show(){if(this.testFlag(n.Flag.IsHidden)&&(this.isAttached&&(!this.parent||this.parent.isVisible)&&z.sendMessage(this,n.Msg.BeforeShow),this.clearFlag(n.Flag.IsHidden),this._toggleHidden(!1),this.isAttached&&(!this.parent||this.parent.isVisible)&&z.sendMessage(this,n.Msg.AfterShow),this.parent)){let e=new n.ChildMessage("child-shown",this);z.sendMessage(this.parent,e)}}hide(){if(!this.testFlag(n.Flag.IsHidden)&&(this.isAttached&&(!this.parent||this.parent.isVisible)&&z.sendMessage(this,n.Msg.BeforeHide),this.setFlag(n.Flag.IsHidden),this._toggleHidden(!0),this.isAttached&&(!this.parent||this.parent.isVisible)&&z.sendMessage(this,n.Msg.AfterHide),this.parent)){let e=new n.ChildMessage("child-hidden",this);z.sendMessage(this.parent,e)}}setHidden(e){e?this.hide():this.show()}testFlag(e){return(this._flags&e)!==0}setFlag(e){this._flags|=e}clearFlag(e){this._flags&=~e}processMessage(e){switch(e.type){case"resize":this.notifyLayout(e),this.onResize(e);break;case"update-request":this.notifyLayout(e),this.onUpdateRequest(e);break;case"fit-request":this.notifyLayout(e),this.onFitRequest(e);break;case"before-show":this.notifyLayout(e),this.onBeforeShow(e);break;case"after-show":this.setFlag(n.Flag.IsVisible),this.notifyLayout(e),this.onAfterShow(e);break;case"before-hide":this.notifyLayout(e),this.onBeforeHide(e);break;case"after-hide":this.clearFlag(n.Flag.IsVisible),this.notifyLayout(e),this.onAfterHide(e);break;case"before-attach":this.notifyLayout(e),this.onBeforeAttach(e);break;case"after-attach":!this.isHidden&&(!this.parent||this.parent.isVisible)&&this.setFlag(n.Flag.IsVisible),this.setFlag(n.Flag.IsAttached),this.notifyLayout(e),this.onAfterAttach(e);break;case"before-detach":this.notifyLayout(e),this.onBeforeDetach(e);break;case"after-detach":this.clearFlag(n.Flag.IsVisible),this.clearFlag(n.Flag.IsAttached),this.notifyLayout(e),this.onAfterDetach(e);break;case"activate-request":this.notifyLayout(e),this.onActivateRequest(e);break;case"close-request":this.notifyLayout(e),this.onCloseRequest(e);break;case"child-added":this.notifyLayout(e),this.onChildAdded(e);break;case"child-removed":this.notifyLayout(e),this.onChildRemoved(e);break;default:this.notifyLayout(e);break}}notifyLayout(e){this._layout&&this._layout.processParentMessage(e)}onCloseRequest(e){this.parent?this.parent=null:this.isAttached&&n.detach(this)}onResize(e){}onUpdateRequest(e){}onFitRequest(e){}onActivateRequest(e){}onBeforeShow(e){}onAfterShow(e){}onBeforeHide(e){}onAfterHide(e){}onBeforeAttach(e){}onAfterAttach(e){}onBeforeDetach(e){}onAfterDetach(e){}onChildAdded(e){}onChildRemoved(e){}_toggleHidden(e){if(e)switch(this._hiddenMode){case n.HiddenMode.Display:this.addClass("lm-mod-hidden");break;case n.HiddenMode.Scale:this.node.style.transform="scale(0)",this.node.setAttribute("aria-hidden","true");break;case n.HiddenMode.ContentVisibility:this.node.style.contentVisibility="hidden",this.node.style.zIndex="-1";break}else switch(this._hiddenMode){case n.HiddenMode.Display:this.removeClass("lm-mod-hidden");break;case n.HiddenMode.Scale:this.node.style.transform="",this.node.removeAttribute("aria-hidden");break;case n.HiddenMode.ContentVisibility:this.node.style.contentVisibility="",this.node.style.zIndex="";break}}};(function(n){(function(r){r[r.Display=0]="Display",r[r.Scale=1]="Scale",r[r.ContentVisibility=2]="ContentVisibility"})(n.HiddenMode||(n.HiddenMode={})),(function(r){r[r.IsDisposed=1]="IsDisposed",r[r.IsAttached=2]="IsAttached",r[r.IsHidden=4]="IsHidden",r[r.IsVisible=8]="IsVisible",r[r.DisallowLayout=16]="DisallowLayout"})(n.Flag||(n.Flag={})),(function(r){r.BeforeShow=new ae("before-show"),r.AfterShow=new ae("after-show"),r.BeforeHide=new ae("before-hide"),r.AfterHide=new ae("after-hide"),r.BeforeAttach=new ae("before-attach"),r.AfterAttach=new ae("after-attach"),r.BeforeDetach=new ae("before-detach"),r.AfterDetach=new ae("after-detach"),r.ParentChanged=new ae("parent-changed"),r.UpdateRequest=new Pe("update-request"),r.FitRequest=new Pe("fit-request"),r.ActivateRequest=new Pe("activate-request"),r.CloseRequest=new Pe("close-request")})(n.Msg||(n.Msg={}));class e extends ae{constructor(o,a){super(o),this.child=a}}n.ChildMessage=e;class t extends ae{constructor(o,a){super("resize"),this.width=o,this.height=a}}n.ResizeMessage=t,(function(r){r.UnknownSize=new r(-1,-1)})(t=n.ResizeMessage||(n.ResizeMessage={}));function i(r,o,a=null){if(r.parent)throw new Error("Cannot attach a child widget.");if(r.isAttached||r.node.isConnected)throw new Error("Widget is already attached.");if(!o.isConnected)throw new Error("Host is not attached.");z.sendMessage(r,n.Msg.BeforeAttach),o.insertBefore(r.node,a),z.sendMessage(r,n.Msg.AfterAttach)}n.attach=i;function s(r){if(r.parent)throw new Error("Cannot detach a child widget.");if(!r.isAttached||!r.node.isConnected)throw new Error("Widget is not attached.");z.sendMessage(r,n.Msg.BeforeDetach),r.node.parentNode.removeChild(r.node),z.sendMessage(r,n.Msg.AfterDetach)}n.detach=s})(D||(D={}));var ft;(function(n){n.titleProperty=new oe({name:"title",create:t=>new it({owner:t})});function e(t){return t.node||document.createElement(t.tag||"div")}n.createNode=e})(ft||(ft={}));var Be=class{constructor(e={}){this._disposed=!1,this._parent=null,this._fitPolicy=e.fitPolicy||"set-min-size"}dispose(){this._parent=null,this._disposed=!0,U.clearData(this),oe.clearData(this)}get isDisposed(){return this._disposed}get parent(){return this._parent}set parent(e){if(this._parent!==e){if(this._parent)throw new Error("Cannot change parent widget.");if(e.layout!==this)throw new Error("Invalid parent widget.");this._parent=e,this.init()}}get fitPolicy(){return this._fitPolicy}set fitPolicy(e){if(this._fitPolicy!==e&&(this._fitPolicy=e,this._parent)){let t=this._parent.node.style;t.minWidth="",t.minHeight="",t.maxWidth="",t.maxHeight="",this._parent.fit()}}processParentMessage(e){switch(e.type){case"resize":this.onResize(e);break;case"update-request":this.onUpdateRequest(e);break;case"fit-request":this.onFitRequest(e);break;case"before-show":this.onBeforeShow(e);break;case"after-show":this.onAfterShow(e);break;case"before-hide":this.onBeforeHide(e);break;case"after-hide":this.onAfterHide(e);break;case"before-attach":this.onBeforeAttach(e);break;case"after-attach":this.onAfterAttach(e);break;case"before-detach":this.onBeforeDetach(e);break;case"after-detach":this.onAfterDetach(e);break;case"child-removed":this.onChildRemoved(e);break;case"child-shown":this.onChildShown(e);break;case"child-hidden":this.onChildHidden(e);break}}init(){for(let e of this)e.parent=this.parent}onResize(e){for(let t of this)z.sendMessage(t,D.ResizeMessage.UnknownSize)}onUpdateRequest(e){for(let t of this)z.sendMessage(t,D.ResizeMessage.UnknownSize)}onBeforeAttach(e){for(let t of this)z.sendMessage(t,e)}onAfterAttach(e){for(let t of this)z.sendMessage(t,e)}onBeforeDetach(e){for(let t of this)z.sendMessage(t,e)}onAfterDetach(e){for(let t of this)z.sendMessage(t,e)}onBeforeShow(e){for(let t of this)t.isHidden||z.sendMessage(t,e)}onAfterShow(e){for(let t of this)t.isHidden||z.sendMessage(t,e)}onBeforeHide(e){for(let t of this)t.isHidden||z.sendMessage(t,e)}onAfterHide(e){for(let t of this)t.isHidden||z.sendMessage(t,e)}onChildRemoved(e){this.removeWidget(e.child)}onFitRequest(e){}onChildShown(e){}onChildHidden(e){}};(function(n){function e(r){return Ye.horizontalAlignmentProperty.get(r)}n.getHorizontalAlignment=e;function t(r,o){Ye.horizontalAlignmentProperty.set(r,o)}n.setHorizontalAlignment=t;function i(r){return Ye.verticalAlignmentProperty.get(r)}n.getVerticalAlignment=i;function s(r,o){Ye.verticalAlignmentProperty.set(r,o)}n.setVerticalAlignment=s})(Be||(Be={}));var Oe=class{constructor(e){this._top=NaN,this._left=NaN,this._width=NaN,this._height=NaN,this._minWidth=0,this._minHeight=0,this._maxWidth=1/0,this._maxHeight=1/0,this._disposed=!1,this.widget=e,this.widget.node.style.position="absolute",this.widget.node.style.contain="strict"}dispose(){if(this._disposed)return;this._disposed=!0;let e=this.widget.node.style;e.position="",e.top="",e.left="",e.width="",e.height="",e.contain=""}get minWidth(){return this._minWidth}get minHeight(){return this._minHeight}get maxWidth(){return this._maxWidth}get maxHeight(){return this._maxHeight}get isDisposed(){return this._disposed}get isHidden(){return this.widget.isHidden}get isVisible(){return this.widget.isVisible}get isAttached(){return this.widget.isAttached}fit(){let e=$.sizeLimits(this.widget.node);this._minWidth=e.minWidth,this._minHeight=e.minHeight,this._maxWidth=e.maxWidth,this._maxHeight=e.maxHeight}update(e,t,i,s){let r=Math.max(this._minWidth,Math.min(i,this._maxWidth)),o=Math.max(this._minHeight,Math.min(s,this._maxHeight));if(r<i)switch(Be.getHorizontalAlignment(this.widget)){case"left":break;case"center":e+=(i-r)/2;break;case"right":e+=i-r;break;default:throw"unreachable"}if(o<s)switch(Be.getVerticalAlignment(this.widget)){case"top":break;case"center":t+=(s-o)/2;break;case"bottom":t+=s-o;break;default:throw"unreachable"}let a=!1,l=this.widget.node.style;if(this._top!==t&&(this._top=t,l.top=`${t}px`),this._left!==e&&(this._left=e,l.left=`${e}px`),this._width!==r&&(a=!0,this._width=r,l.width=`${r}px`),this._height!==o&&(a=!0,this._height=o,l.height=`${o}px`),a){let u=new D.ResizeMessage(r,o);z.sendMessage(this.widget,u)}}},Ye;(function(n){n.horizontalAlignmentProperty=new oe({name:"horizontalAlignment",create:()=>"center",changed:e}),n.verticalAlignmentProperty=new oe({name:"verticalAlignment",create:()=>"top",changed:e});function e(t){t.parent&&t.parent.layout&&t.parent.update()}})(Ye||(Ye={}));var Xe=class extends Be{constructor(){super(...arguments),this._widgets=[]}dispose(){for(;this._widgets.length>0;)this._widgets.pop().dispose();super.dispose()}get widgets(){return this._widgets}*[Symbol.iterator](){yield*this._widgets}addWidget(e){this.insertWidget(this._widgets.length,e)}insertWidget(e,t){t.parent=this.parent;let i=this._widgets.indexOf(t),s=Math.max(0,Math.min(e,this._widgets.length));if(i===-1){A.ArrayExt.insert(this._widgets,s,t),this.parent&&this.attachWidget(s,t);return}s===this._widgets.length&&s--,i!==s&&(A.ArrayExt.move(this._widgets,i,s),this.parent&&this.moveWidget(i,s,t))}removeWidget(e){this.removeWidgetAt(this._widgets.indexOf(e))}removeWidgetAt(e){let t=A.ArrayExt.removeAt(this._widgets,e);t&&this.parent&&this.detachWidget(e,t)}init(){super.init();let e=0;for(let t of this)this.attachWidget(e++,t)}attachWidget(e,t){let i=this.parent.node.children[e];this.parent.isAttached&&z.sendMessage(t,D.Msg.BeforeAttach),this.parent.node.insertBefore(t.node,i),this.parent.isAttached&&z.sendMessage(t,D.Msg.AfterAttach)}moveWidget(e,t,i){this.parent.isAttached&&z.sendMessage(i,D.Msg.BeforeDetach),this.parent.node.removeChild(i.node),this.parent.isAttached&&z.sendMessage(i,D.Msg.AfterDetach);let s=this.parent.node.children[t];this.parent.isAttached&&z.sendMessage(i,D.Msg.BeforeAttach),this.parent.node.insertBefore(i.node,s),this.parent.isAttached&&z.sendMessage(i,D.Msg.AfterAttach)}detachWidget(e,t){this.parent.isAttached&&z.sendMessage(t,D.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.isAttached&&z.sendMessage(t,D.Msg.AfterDetach)}},nt;(function(n){function e(t){return Math.max(0,Math.floor(t))}n.clampDimension=e})(nt||(nt={}));var st=nt,De=class n extends Xe{constructor(e){super(),this.widgetOffset=0,this._fixed=0,this._spacing=4,this._dirty=!1,this._hasNormedSizes=!1,this._sizers=[],this._items=[],this._handles=[],this._box=null,this._alignment="start",this._orientation="horizontal",this.renderer=e.renderer,e.orientation!==void 0&&(this._orientation=e.orientation),e.alignment!==void 0&&(this._alignment=e.alignment),e.spacing!==void 0&&(this._spacing=nt.clampDimension(e.spacing))}dispose(){for(let e of this._items)e.dispose();this._box=null,this._items.length=0,this._sizers.length=0,this._handles.length=0,super.dispose()}get orientation(){return this._orientation}set orientation(e){this._orientation!==e&&(this._orientation=e,this.parent&&(this.parent.dataset.orientation=e,this.parent.fit()))}get alignment(){return this._alignment}set alignment(e){this._alignment!==e&&(this._alignment=e,this.parent&&(this.parent.dataset.alignment=e,this.parent.update()))}get spacing(){return this._spacing}set spacing(e){e=nt.clampDimension(e),this._spacing!==e&&(this._spacing=e,this.parent&&this.parent.fit())}get handles(){return this._handles}absoluteSizes(){return this._sizers.map(e=>e.size)}relativeSizes(){return Ae.normalize(this._sizers.map(e=>e.size))}setRelativeSizes(e,t=!0){let i=this._sizers.length,s=e.slice(0,i);for(;s.length<i;)s.push(0);let r=Ae.normalize(s);for(let o=0;o<i;++o){let a=this._sizers[o];a.sizeHint=r[o],a.size=r[o]}this._hasNormedSizes=!0,t&&this.parent&&this.parent.update()}moveHandle(e,t){let i=this._handles[e];if(!i||i.classList.contains("lm-mod-hidden"))return;let s;if(this._orientation==="horizontal"?s=t-i.offsetLeft:s=t-i.offsetTop,s!==0){for(let r of this._sizers)r.size>0&&(r.sizeHint=r.size);ue.adjust(this._sizers,e,s),this.parent&&this.parent.update()}}init(){this.parent.dataset.orientation=this.orientation,this.parent.dataset.alignment=this.alignment,super.init()}attachWidget(e,t){let i=new Oe(t),s=Ae.createHandle(this.renderer),r=Ae.averageSize(this._sizers),o=Ae.createSizer(r);A.ArrayExt.insert(this._items,e,i),A.ArrayExt.insert(this._sizers,e,o),A.ArrayExt.insert(this._handles,e,s),this.parent.isAttached&&z.sendMessage(t,D.Msg.BeforeAttach),this.parent.node.appendChild(t.node),this.parent.node.appendChild(s),this.parent.isAttached&&z.sendMessage(t,D.Msg.AfterAttach),this.parent.fit()}moveWidget(e,t,i){A.ArrayExt.move(this._items,e,t),A.ArrayExt.move(this._sizers,e,t),A.ArrayExt.move(this._handles,e,t),this.parent.fit()}detachWidget(e,t){let i=A.ArrayExt.removeAt(this._items,e),s=A.ArrayExt.removeAt(this._handles,e);A.ArrayExt.removeAt(this._sizers,e),this.parent.isAttached&&z.sendMessage(t,D.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.node.removeChild(s),this.parent.isAttached&&z.sendMessage(t,D.Msg.AfterDetach),i.dispose(),this.parent.fit()}onBeforeShow(e){super.onBeforeShow(e),this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e),this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){this.parent.isVisible&&this._update(e.width,e.height)}onUpdateRequest(e){this.parent.isVisible&&this._update(-1,-1)}onFitRequest(e){this.parent.isAttached&&this._fit()}updateItemPosition(e,t,i,s,r,o,a){let l=this._items[e];if(l.isHidden)return;let u=this._handles[e].style;t?(i+=this.widgetOffset,l.update(i,s,a,r),i+=a,u.top=`${s}px`,u.left=`${i}px`,u.width=`${this._spacing}px`,u.height=`${r}px`):(s+=this.widgetOffset,l.update(i,s,o,a),s+=a,u.top=`${s}px`,u.left=`${i}px`,u.width=`${o}px`,u.height=`${this._spacing}px`)}_fit(){let e=0,t=-1;for(let l=0,u=this._items.length;l<u;++l)this._items[l].isHidden?this._handles[l].classList.add("lm-mod-hidden"):(this._handles[l].classList.remove("lm-mod-hidden"),t=l,e++);t!==-1&&this._handles[t].classList.add("lm-mod-hidden"),this._fixed=this._spacing*Math.max(0,e-1)+this.widgetOffset*this._items.length;let i=this._orientation==="horizontal",s=i?this._fixed:0,r=i?0:this._fixed;for(let l=0,u=this._items.length;l<u;++l){let d=this._items[l],c=this._sizers[l];if(c.size>0&&(c.sizeHint=c.size),d.isHidden){c.minSize=0,c.maxSize=0;continue}d.fit(),c.stretch=n.getStretch(d.widget),i?(c.minSize=d.minWidth,c.maxSize=d.maxWidth,s+=d.minWidth,r=Math.max(r,d.minHeight)):(c.minSize=d.minHeight,c.maxSize=d.maxHeight,r+=d.minHeight,s=Math.max(s,d.minWidth))}let o=this._box=$.boxSizing(this.parent.node);s+=o.horizontalSum,r+=o.verticalSum;let a=this.parent.node.style;a.minWidth=`${s}px`,a.minHeight=`${r}px`,this._dirty=!0,this.parent.parent&&z.sendMessage(this.parent.parent,D.Msg.FitRequest),this._dirty&&z.sendMessage(this.parent,D.Msg.UpdateRequest)}_update(e,t){this._dirty=!1;let i=0;for(let c=0,f=this._items.length;c<f;++c)i+=+!this._items[c].isHidden;if(i===0&&this.widgetOffset===0)return;e<0&&(e=this.parent.node.offsetWidth),t<0&&(t=this.parent.node.offsetHeight),this._box||(this._box=$.boxSizing(this.parent.node));let s=this._box.paddingTop,r=this._box.paddingLeft,o=e-this._box.horizontalSum,a=t-this._box.verticalSum,l=0,u=0,d=this._orientation==="horizontal";if(i>0){let c;if(d?c=Math.max(0,o-this._fixed):c=Math.max(0,a-this._fixed),this._hasNormedSizes){for(let h of this._sizers)h.sizeHint*=c;this._hasNormedSizes=!1}let f=ue.calc(this._sizers,c);if(f>0)switch(this._alignment){case"start":break;case"center":l=0,u=f/2;break;case"end":l=0,u=f;break;case"justify":l=f/i,u=0;break;default:throw"unreachable"}}for(let c=0,f=this._items.length;c<f;++c){let m=this._items[c].isHidden?0:this._sizers[c].size+l;this.updateItemPosition(c,d,d?r+u:r,d?s:s+u,a,o,m);let p=this.widgetOffset+(this._handles[c].classList.contains("lm-mod-hidden")?0:this._spacing);d?r+=m+p:s+=m+p}}};(function(n){function e(i){return Ae.stretchProperty.get(i)}n.getStretch=e;function t(i,s){Ae.stretchProperty.set(i,s)}n.setStretch=t})(De||(De={}));var Ae;(function(n){n.stretchProperty=new oe({name:"stretch",create:()=>0,coerce:(o,a)=>Math.max(0,Math.floor(a)),changed:r});function e(o){let a=new Me;return a.sizeHint=Math.floor(o),a}n.createSizer=e;function t(o){let a=o.createHandle();return a.style.position="absolute",a.style.contain="style",a}n.createHandle=t;function i(o){return o.reduce((a,l)=>a+l.size,0)/o.length||0}n.averageSize=i;function s(o){let a=o.length;if(a===0)return[];let l=o.reduce((u,d)=>u+Math.abs(d),0);return l===0?o.map(u=>1/a):o.map(u=>u/l)}n.normalize=s;function r(o){o.parent&&o.parent.layout instanceof De&&o.parent.fit()}})(Ae||(Ae={}));var kt=class extends De{constructor(e){super({...e,orientation:e.orientation||"vertical"}),this._titles=[],this.titleSpace=e.titleSpace||22}get titleSpace(){return this.widgetOffset}set titleSpace(e){e=st.clampDimension(e),this.widgetOffset!==e&&(this.widgetOffset=e,this.parent&&this.parent.fit())}get titles(){return this._titles}dispose(){this.isDisposed||(this._titles.length=0,super.dispose())}updateTitle(e,t){let i=this._titles[e],s=i.classList.contains("lm-mod-expanded"),r=pt.createTitle(this.renderer,t.title,s);this._titles[e]=r,this.parent.node.replaceChild(r,i)}insertWidget(e,t){t.id||(t.id=`id-${Le.UUID.uuid4()}`),super.insertWidget(e,t)}attachWidget(e,t){let i=pt.createTitle(this.renderer,t.title);A.ArrayExt.insert(this._titles,e,i),this.parent.node.appendChild(i),t.node.setAttribute("role","region"),t.node.setAttribute("aria-labelledby",i.id),super.attachWidget(e,t)}moveWidget(e,t,i){A.ArrayExt.move(this._titles,e,t),super.moveWidget(e,t,i)}detachWidget(e,t){let i=A.ArrayExt.removeAt(this._titles,e);this.parent.node.removeChild(i),super.detachWidget(e,t)}updateItemPosition(e,t,i,s,r,o,a){let l=this._titles[e].style;l.top=`${s}px`,l.left=`${i}px`,l.height=`${this.widgetOffset}px`,t?l.width=`${r}px`:l.width=`${o}px`,super.updateItemPosition(e,t,i,s,r,o,a)}},pt;(function(n){function e(t,i,s=!0){let r=t.createSectionTitle(i);return r.style.position="absolute",r.style.contain="strict",r.setAttribute("aria-label",`${i.label} Section`),r.setAttribute("aria-expanded",s?"true":"false"),r.setAttribute("aria-controls",i.owner.id),s&&r.classList.add("lm-mod-expanded"),r}n.createTitle=e})(pt||(pt={}));var Ge=class extends D{constructor(e={}){super(),this.addClass("lm-Panel"),this.layout=Ct.createLayout(e)}get widgets(){return this.layout.widgets}addWidget(e){this.layout.addWidget(e)}insertWidget(e,t){this.layout.insertWidget(e,t)}},Ct;(function(n){function e(t){return t.layout||new Xe}n.createLayout=e})(Ct||(Ct={}));var ke=class extends Ge{constructor(e={}){super({layout:Tt.createLayout(e)}),this._handleMoved=new U(this),this._pressData=null,this.addClass("lm-SplitPanel")}dispose(){this._releaseMouse(),super.dispose()}get orientation(){return this.layout.orientation}set orientation(e){this.layout.orientation=e}get alignment(){return this.layout.alignment}set alignment(e){this.layout.alignment=e}get spacing(){return this.layout.spacing}set spacing(e){this.layout.spacing=e}get renderer(){return this.layout.renderer}get handleMoved(){return this._handleMoved}get handles(){return this.layout.handles}relativeSizes(){return this.layout.relativeSizes()}setRelativeSizes(e,t=!0){this.layout.setRelativeSizes(e,t)}handleEvent(e){switch(e.type){case"pointerdown":this._evtPointerDown(e);break;case"pointermove":this._evtPointerMove(e);break;case"pointerup":this._evtPointerUp(e);break;case"keydown":this._evtKeyDown(e);break;case"contextmenu":e.preventDefault(),e.stopPropagation();break}}onBeforeAttach(e){this.node.addEventListener("pointerdown",this)}onAfterDetach(e){this.node.removeEventListener("pointerdown",this),this._releaseMouse()}onChildAdded(e){e.child.addClass("lm-SplitPanel-child"),this._releaseMouse()}onChildRemoved(e){e.child.removeClass("lm-SplitPanel-child"),this._releaseMouse()}_evtKeyDown(e){this._pressData&&(e.preventDefault(),e.stopPropagation()),e.keyCode===27&&this._releaseMouse()}_evtPointerDown(e){if(e.button!==0)return;let t=this.layout,i=A.ArrayExt.findFirstIndex(t.handles,u=>u.contains(e.target));if(i===-1)return;e.preventDefault(),e.stopPropagation(),document.addEventListener("pointerup",this,!0),document.addEventListener("pointermove",this,!0),document.addEventListener("keydown",this,!0),document.addEventListener("contextmenu",this,!0);let s,r=t.handles[i],o=r.getBoundingClientRect();t.orientation==="horizontal"?s=e.clientX-o.left:s=e.clientY-o.top;let a=window.getComputedStyle(r),l=le.overrideCursor(a.cursor);this._pressData={index:i,delta:s,override:l}}_evtPointerMove(e){e.preventDefault(),e.stopPropagation();let t,i=this.layout,s=this.node.getBoundingClientRect();i.orientation==="horizontal"?t=e.clientX-s.left-this._pressData.delta:t=e.clientY-s.top-this._pressData.delta,i.moveHandle(this._pressData.index,t)}_evtPointerUp(e){e.button===0&&(e.preventDefault(),e.stopPropagation(),this._releaseMouse())}_releaseMouse(){this._pressData&&(this._pressData.override.dispose(),this._pressData=null,this._handleMoved.emit(),document.removeEventListener("keydown",this,!0),document.removeEventListener("pointerup",this,!0),document.removeEventListener("pointermove",this,!0),document.removeEventListener("contextmenu",this,!0))}};(function(n){class e{createHandle(){let r=document.createElement("div");return r.className="lm-SplitPanel-handle",r}}n.Renderer=e,n.defaultRenderer=new e;function t(s){return De.getStretch(s)}n.getStretch=t;function i(s,r){De.setStretch(s,r)}n.setStretch=i})(ke||(ke={}));var Tt;(function(n){function e(t){return t.layout||new De({renderer:t.renderer||ke.defaultRenderer,orientation:t.orientation,alignment:t.alignment,spacing:t.spacing})}n.createLayout=e})(Tt||(Tt={}));var rt=class extends ke{constructor(e={}){super({...e,layout:St.createLayout(e)}),this._widgetSizesCache=new WeakMap,this._expansionToggled=new U(this),this.addClass("lm-AccordionPanel")}get renderer(){return this.layout.renderer}get titleSpace(){return this.layout.titleSpace}set titleSpace(e){this.layout.titleSpace=e}get titles(){return this.layout.titles}get expansionToggled(){return this._expansionToggled}addWidget(e){super.addWidget(e),e.title.changed.connect(this._onTitleChanged,this)}collapse(e){let t=this.layout.widgets[e];t&&!t.isHidden&&this._toggleExpansion(e)}expand(e){let t=this.layout.widgets[e];t&&t.isHidden&&this._toggleExpansion(e)}insertWidget(e,t){super.insertWidget(e,t),t.title.changed.connect(this._onTitleChanged,this)}handleEvent(e){switch(super.handleEvent(e),e.type){case"click":this._evtClick(e);break;case"keydown":this._eventKeyDown(e);break}}onBeforeAttach(e){this.node.addEventListener("click",this),this.node.addEventListener("keydown",this),super.onBeforeAttach(e)}onAfterDetach(e){super.onAfterDetach(e),this.node.removeEventListener("click",this),this.node.removeEventListener("keydown",this)}_onTitleChanged(e){let t=A.ArrayExt.findFirstIndex(this.widgets,i=>i.contains(e.owner));t>=0&&(this.layout.updateTitle(t,e.owner),this.update())}_computeWidgetSize(e){let t=this.layout,i=t.widgets[e];if(!i)return;let s=i.isHidden,r=t.absoluteSizes(),o=(s?-1:1)*this.spacing,a=r.reduce((u,d)=>u+d),l=[...r];if(s){let u=this._widgetSizesCache.get(i);if(!u)return;l[e]+=u;let d=l.map(c=>c-u>0).lastIndexOf(!0);d===-1?l.forEach((c,f)=>{f!==e&&(l[f]-=r[f]/a*(u-o))}):l[d]-=u-o}else{let u=r[e];this._widgetSizesCache.set(i,u),l[e]=0;let d=l.map(c=>c>0).lastIndexOf(!0);if(d===-1)return;l[d]=r[d]+u+o}return l.map(u=>u/(a+o))}_evtClick(e){let t=e.target;if(t){let i=A.ArrayExt.findFirstIndex(this.titles,s=>s.contains(t));i>=0&&(e.preventDefault(),e.stopPropagation(),this._toggleExpansion(i))}}_eventKeyDown(e){if(e.defaultPrevented)return;let t=e.target,i=!1;if(t){let s=A.ArrayExt.findFirstIndex(this.titles,r=>r.contains(t));if(s>=0){let r=e.keyCode.toString();if(e.key.match(/Space|Enter/)||r.match(/13|32/))t.click(),i=!0;else if(this.orientation==="horizontal"?e.key.match(/ArrowLeft|ArrowRight/)||r.match(/37|39/):e.key.match(/ArrowUp|ArrowDown/)||r.match(/38|40/)){let o=e.key.match(/ArrowLeft|ArrowUp/)||r.match(/37|38/)?-1:1,a=this.titles.length,l=(s+a+o)%a;this.titles[l].focus(),i=!0}else e.key==="End"||r==="35"?(this.titles[this.titles.length-1].focus(),i=!0):(e.key==="Home"||r==="36")&&(this.titles[0].focus(),i=!0)}i&&e.preventDefault()}}_toggleExpansion(e){let t=this.titles[e],i=this.layout.widgets[e],s=this._computeWidgetSize(e);s&&this.setRelativeSizes(s,!1),i.isHidden?(t.classList.add("lm-mod-expanded"),t.setAttribute("aria-expanded","true"),i.show()):(t.classList.remove("lm-mod-expanded"),t.setAttribute("aria-expanded","false"),i.hide()),this._expansionToggled.emit(e)}};(function(n){class e extends ke.Renderer{constructor(){super(),this.titleClassName="lm-AccordionPanel-title",this._titleID=0,this._titleKeys=new WeakMap,this._uuid=++e._nInstance}createCollapseIcon(i){return document.createElement("span")}createSectionTitle(i){let s=document.createElement("h3");s.setAttribute("tabindex","0"),s.id=this.createTitleKey(i),s.className=this.titleClassName;for(let a in i.dataset)s.dataset[a]=i.dataset[a];let r=s.appendChild(this.createCollapseIcon(i));r.className="lm-AccordionPanel-titleCollapser";let o=s.appendChild(document.createElement("span"));return o.className="lm-AccordionPanel-titleLabel",o.textContent=i.label,o.title=i.caption||i.label,s}createTitleKey(i){let s=this._titleKeys.get(i);return s===void 0&&(s=`title-key-${this._uuid}-${this._titleID++}`,this._titleKeys.set(i,s)),s}}e._nInstance=0,n.Renderer=e,n.defaultRenderer=new e})(rt||(rt={}));var St;(function(n){function e(t){return t.layout||new kt({renderer:t.renderer||rt.defaultRenderer,orientation:t.orientation,alignment:t.alignment,spacing:t.spacing,titleSpace:t.titleSpace})}n.createLayout=e})(St||(St={}));var xe=class n extends Xe{constructor(e={}){super(),this._fixed=0,this._spacing=4,this._dirty=!1,this._sizers=[],this._items=[],this._box=null,this._alignment="start",this._direction="top-to-bottom",e.direction!==void 0&&(this._direction=e.direction),e.alignment!==void 0&&(this._alignment=e.alignment),e.spacing!==void 0&&(this._spacing=st.clampDimension(e.spacing))}dispose(){for(let e of this._items)e.dispose();this._box=null,this._items.length=0,this._sizers.length=0,super.dispose()}get direction(){return this._direction}set direction(e){this._direction!==e&&(this._direction=e,this.parent&&(this.parent.dataset.direction=e,this.parent.fit()))}get alignment(){return this._alignment}set alignment(e){this._alignment!==e&&(this._alignment=e,this.parent&&(this.parent.dataset.alignment=e,this.parent.update()))}get spacing(){return this._spacing}set spacing(e){e=st.clampDimension(e),this._spacing!==e&&(this._spacing=e,this.parent&&this.parent.fit())}init(){this.parent.dataset.direction=this.direction,this.parent.dataset.alignment=this.alignment,super.init()}attachWidget(e,t){A.ArrayExt.insert(this._items,e,new Oe(t)),A.ArrayExt.insert(this._sizers,e,new Me),this.parent.isAttached&&z.sendMessage(t,D.Msg.BeforeAttach),this.parent.node.appendChild(t.node),this.parent.isAttached&&z.sendMessage(t,D.Msg.AfterAttach),this.parent.fit()}moveWidget(e,t,i){A.ArrayExt.move(this._items,e,t),A.ArrayExt.move(this._sizers,e,t),this.parent.update()}detachWidget(e,t){let i=A.ArrayExt.removeAt(this._items,e);A.ArrayExt.removeAt(this._sizers,e),this.parent.isAttached&&z.sendMessage(t,D.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.isAttached&&z.sendMessage(t,D.Msg.AfterDetach),i.dispose(),this.parent.fit()}onBeforeShow(e){super.onBeforeShow(e),this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e),this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){this.parent.isVisible&&this._update(e.width,e.height)}onUpdateRequest(e){this.parent.isVisible&&this._update(-1,-1)}onFitRequest(e){this.parent.isAttached&&this._fit()}_fit(){let e=0;for(let a=0,l=this._items.length;a<l;++a)e+=+!this._items[a].isHidden;this._fixed=this._spacing*Math.max(0,e-1);let t=He.isHorizontal(this._direction),i=t?this._fixed:0,s=t?0:this._fixed;for(let a=0,l=this._items.length;a<l;++a){let u=this._items[a],d=this._sizers[a];if(u.isHidden){d.minSize=0,d.maxSize=0;continue}u.fit(),d.sizeHint=n.getSizeBasis(u.widget),d.stretch=n.getStretch(u.widget),t?(d.minSize=u.minWidth,d.maxSize=u.maxWidth,i+=u.minWidth,s=Math.max(s,u.minHeight)):(d.minSize=u.minHeight,d.maxSize=u.maxHeight,s+=u.minHeight,i=Math.max(i,u.minWidth))}let r=this._box=$.boxSizing(this.parent.node);i+=r.horizontalSum,s+=r.verticalSum;let o=this.parent.node.style;o.minWidth=`${i}px`,o.minHeight=`${s}px`,this._dirty=!0,this.parent.parent&&z.sendMessage(this.parent.parent,D.Msg.FitRequest),this._dirty&&z.sendMessage(this.parent,D.Msg.UpdateRequest)}_update(e,t){this._dirty=!1;let i=0;for(let c=0,f=this._items.length;c<f;++c)i+=+!this._items[c].isHidden;if(i===0)return;e<0&&(e=this.parent.node.offsetWidth),t<0&&(t=this.parent.node.offsetHeight),this._box||(this._box=$.boxSizing(this.parent.node));let s=this._box.paddingTop,r=this._box.paddingLeft,o=e-this._box.horizontalSum,a=t-this._box.verticalSum,l;switch(this._direction){case"left-to-right":l=ue.calc(this._sizers,Math.max(0,o-this._fixed));break;case"top-to-bottom":l=ue.calc(this._sizers,Math.max(0,a-this._fixed));break;case"right-to-left":l=ue.calc(this._sizers,Math.max(0,o-this._fixed)),r+=o;break;case"bottom-to-top":l=ue.calc(this._sizers,Math.max(0,a-this._fixed)),s+=a;break;default:throw"unreachable"}let u=0,d=0;if(l>0)switch(this._alignment){case"start":break;case"center":u=0,d=l/2;break;case"end":u=0,d=l;break;case"justify":u=l/i,d=0;break;default:throw"unreachable"}for(let c=0,f=this._items.length;c<f;++c){let h=this._items[c];if(h.isHidden)continue;let m=this._sizers[c].size;switch(this._direction){case"left-to-right":h.update(r+d,s,m+u,a),r+=m+u+this._spacing;break;case"top-to-bottom":h.update(r,s+d,o,m+u),s+=m+u+this._spacing;break;case"right-to-left":h.update(r-d-m-u,s,m+u,a),r-=m+u+this._spacing;break;case"bottom-to-top":h.update(r,s-d-m-u,o,m+u),s-=m+u+this._spacing;break;default:throw"unreachable"}}}};(function(n){function e(r){return He.stretchProperty.get(r)}n.getStretch=e;function t(r,o){He.stretchProperty.set(r,o)}n.setStretch=t;function i(r){return He.sizeBasisProperty.get(r)}n.getSizeBasis=i;function s(r,o){He.sizeBasisProperty.set(r,o)}n.setSizeBasis=s})(xe||(xe={}));var He;(function(n){n.stretchProperty=new oe({name:"stretch",create:()=>0,coerce:(s,r)=>Math.max(0,Math.floor(r)),changed:i}),n.sizeBasisProperty=new oe({name:"sizeBasis",create:()=>0,coerce:(s,r)=>Math.max(0,Math.floor(r)),changed:i});function e(s){return s==="left-to-right"||s==="right-to-left"}n.isHorizontal=e;function t(s){return Math.max(0,Math.floor(s))}n.clampSpacing=t;function i(s){s.parent&&s.parent.layout instanceof xe&&s.parent.fit()}})(He||(He={}));var gt=class extends Ge{constructor(e={}){super({layout:Et.createLayout(e)}),this.addClass("lm-BoxPanel")}get direction(){return this.layout.direction}set direction(e){this.layout.direction=e}get alignment(){return this.layout.alignment}set alignment(e){this.layout.alignment=e}get spacing(){return this.layout.spacing}set spacing(e){this.layout.spacing=e}onChildAdded(e){e.child.addClass("lm-BoxPanel-child")}onChildRemoved(e){e.child.removeClass("lm-BoxPanel-child")}};(function(n){function e(r){return xe.getStretch(r)}n.getStretch=e;function t(r,o){xe.setStretch(r,o)}n.setStretch=t;function i(r){return xe.getSizeBasis(r)}n.getSizeBasis=i;function s(r,o){xe.setSizeBasis(r,o)}n.setSizeBasis=s})(gt||(gt={}));var Et;(function(n){function e(t){return t.layout||new xe(t)}n.createLayout=e})(Et||(Et={}));var _t=class n extends D{constructor(e){super({node:ze.createNode()}),this._activeIndex=-1,this._items=[],this._results=null,this.addClass("lm-CommandPalette"),this.setFlag(D.Flag.DisallowLayout),this.commands=e.commands,this.renderer=e.renderer||n.defaultRenderer,this.commands.commandChanged.connect(this._onGenericChange,this),this.commands.keyBindingChanged.connect(this._onGenericChange,this)}dispose(){this._items.length=0,this._results=null,super.dispose()}get searchNode(){return this.node.getElementsByClassName("lm-CommandPalette-search")[0]}get inputNode(){return this.node.getElementsByClassName("lm-CommandPalette-input")[0]}get contentNode(){return this.node.getElementsByClassName("lm-CommandPalette-content")[0]}get items(){return this._items}addItem(e){let t=ze.createItem(this.commands,e);return this._items.push(t),this.refresh(),t}addItems(e){let t=e.map(i=>ze.createItem(this.commands,i));return t.forEach(i=>this._items.push(i)),this.refresh(),t}removeItem(e){this.removeItemAt(this._items.indexOf(e))}removeItemAt(e){A.ArrayExt.removeAt(this._items,e)&&this.refresh()}clearItems(){this._items.length!==0&&(this._items.length=0,this.refresh())}refresh(){if(this._results=null,this.inputNode.value!==""){let e=this.node.getElementsByClassName("lm-close-icon")[0];e.style.display="inherit"}else{let e=this.node.getElementsByClassName("lm-close-icon")[0];e.style.display="none"}this.update()}handleEvent(e){switch(e.type){case"click":this._evtClick(e);break;case"keydown":this._evtKeyDown(e);break;case"input":this.refresh();break;case"focus":case"blur":this._toggleFocused();break}}onBeforeAttach(e){this.node.addEventListener("click",this),this.node.addEventListener("keydown",this),this.node.addEventListener("input",this),this.node.addEventListener("focus",this,!0),this.node.addEventListener("blur",this,!0)}onAfterDetach(e){this.node.removeEventListener("click",this),this.node.removeEventListener("keydown",this),this.node.removeEventListener("input",this),this.node.removeEventListener("focus",this,!0),this.node.removeEventListener("blur",this,!0)}onAfterShow(e){this.update(),super.onAfterShow(e)}onActivateRequest(e){if(this.isAttached){let t=this.inputNode;t.focus(),t.select()}}onUpdateRequest(e){if(!this.isVisible){fe.render(null,this.contentNode);return}let t=this.inputNode.value,i=this.contentNode,s=this._results;if(s||(s=this._results=ze.search(this._items,t),this._activeIndex=t?A.ArrayExt.findFirstIndex(s,ze.canActivate):-1),!t&&s.length===0){fe.render(null,i);return}if(t&&s.length===0){let l=this.renderer.renderEmptyMessage({query:t});fe.render(l,i);return}let r=this.renderer,o=this._activeIndex,a=new Array(s.length);for(let l=0,u=s.length;l<u;++l){let d=s[l];if(d.type==="header"){let c=d.indices,f=d.category;a[l]=r.renderHeader({category:f,indices:c})}else{let c=d.item,f=d.indices,h=l===o;a[l]=r.renderItem({item:c,indices:f,active:h})}}if(fe.render(a,i),o<0||o>=s.length)i.scrollTop=0;else{let l=i.children[o];$.scrollIntoViewIfNeeded(i,l)}}_evtClick(e){if(e.button!==0)return;if(e.target.classList.contains("lm-close-icon")){this.inputNode.value="",this.refresh();return}let t=A.ArrayExt.findFirstIndex(this.contentNode.children,i=>i.contains(e.target));t!==-1&&(e.preventDefault(),e.stopPropagation(),this._execute(t))}_evtKeyDown(e){if(!(e.altKey||e.ctrlKey||e.metaKey||e.shiftKey))switch(e.keyCode){case 13:e.preventDefault(),e.stopPropagation(),this._execute(this._activeIndex);break;case 38:e.preventDefault(),e.stopPropagation(),this._activatePreviousItem();break;case 40:e.preventDefault(),e.stopPropagation(),this._activateNextItem();break}}_activateNextItem(){if(!this._results||this._results.length===0)return;let e=this._activeIndex,t=this._results.length,i=e<t-1?e+1:0,s=i===0?t-1:i-1;this._activeIndex=A.ArrayExt.findFirstIndex(this._results,ze.canActivate,i,s),this.update()}_activatePreviousItem(){if(!this._results||this._results.length===0)return;let e=this._activeIndex,t=this._results.length,i=e<=0?t-1:e-1,s=i===t-1?0:i+1;this._activeIndex=A.ArrayExt.findLastIndex(this._results,ze.canActivate,i,s),this.update()}_execute(e){if(!this._results)return;let t=this._results[e];if(t){if(t.type==="header"){let i=this.inputNode;i.value=`${t.category.toLowerCase()} `,i.focus(),this.refresh();return}t.item.isEnabled&&(this.commands.execute(t.item.command,t.item.args),this.inputNode.value="",this.refresh())}}_toggleFocused(){let e=document.activeElement===this.inputNode;this.toggleClass("lm-mod-focused",e)}_onGenericChange(){this.refresh()}};(function(n){class e{renderHeader(i){let s=this.formatHeader(i);return q.li({className:"lm-CommandPalette-header"},s)}renderItem(i){let s=this.createItemClass(i),r=this.createItemDataset(i);return i.item.isToggleable?q.li({className:s,dataset:r,role:"menuitemcheckbox","aria-checked":`${i.item.isToggled}`},this.renderItemIcon(i),this.renderItemContent(i),this.renderItemShortcut(i)):q.li({className:s,dataset:r,role:"menuitem"},this.renderItemIcon(i),this.renderItemContent(i),this.renderItemShortcut(i))}renderEmptyMessage(i){let s=this.formatEmptyMessage(i);return q.li({className:"lm-CommandPalette-emptyMessage"},s)}renderItemIcon(i){let s=this.createIconClass(i);return q.div({className:s},i.item.icon,i.item.iconLabel)}renderItemContent(i){return q.div({className:"lm-CommandPalette-itemContent"},this.renderItemLabel(i),this.renderItemCaption(i))}renderItemLabel(i){let s=this.formatItemLabel(i);return q.div({className:"lm-CommandPalette-itemLabel"},s)}renderItemCaption(i){let s=this.formatItemCaption(i);return q.div({className:"lm-CommandPalette-itemCaption"},s)}renderItemShortcut(i){let s=this.formatItemShortcut(i);return q.div({className:"lm-CommandPalette-itemShortcut"},s)}createItemClass(i){let s="lm-CommandPalette-item";i.item.isEnabled||(s+=" lm-mod-disabled"),i.item.isToggled&&(s+=" lm-mod-toggled"),i.active&&(s+=" lm-mod-active");let r=i.item.className;return r&&(s+=` ${r}`),s}createItemDataset(i){return{...i.item.dataset,command:i.item.command}}createIconClass(i){let s="lm-CommandPalette-itemIcon",r=i.item.iconClass;return r?`${s} ${r}`:s}formatHeader(i){return!i.indices||i.indices.length===0?i.category:A.StringExt.highlight(i.category,i.indices,q.mark)}formatEmptyMessage(i){return`No commands found that match '${i.query}'`}formatItemShortcut(i){let s=i.item.keyBinding;return s?he.formatKeystroke(s.keys):null}formatItemLabel(i){return!i.indices||i.indices.length===0?i.item.label:A.StringExt.highlight(i.item.label,i.indices,q.mark)}formatItemCaption(i){return i.item.caption}}n.Renderer=e,n.defaultRenderer=new e})(_t||(_t={}));var ze;(function(n){function e(){let f=document.createElement("div"),h=document.createElement("div"),m=document.createElement("div"),p=document.createElement("input"),_=document.createElement("ul"),w=document.createElement("button");return h.className="lm-CommandPalette-search",m.className="lm-CommandPalette-wrapper",p.className="lm-CommandPalette-input",w.className="lm-close-icon",_.className="lm-CommandPalette-content",_.setAttribute("role","menu"),p.spellcheck=!1,m.appendChild(p),m.appendChild(w),h.appendChild(m),f.appendChild(h),f.appendChild(_),f}n.createNode=e;function t(f,h){return new c(f,h)}n.createItem=t;function i(f,h){let m=a(f,h);return m.sort(u),d(m)}n.search=i;function s(f){return f.type==="item"&&f.item.isEnabled}n.canActivate=s;function r(f){return f.trim().replace(/\s+/g," ")}function o(f){return f.replace(/\s+/g,"").toLowerCase()}function a(f,h){h=o(h);let m=[];for(let p=0,_=f.length;p<_;++p){let w=f[p];if(!w.isVisible)continue;if(!h){m.push({matchType:3,categoryIndices:null,labelIndices:null,score:0,item:w});continue}let v=l(w,h);v&&(w.isEnabled||(v.score+=1e3),m.push(v))}return m}function l(f,h){let m=f.category.toLowerCase(),p=f.label.toLowerCase(),_=`${m} ${p}`,w=1/0,v=null,g=/\b\w/g;for(;;){let E=g.exec(_);if(!E)break;let P=A.StringExt.matchSumOfDeltas(_,h,E.index);if(!P)break;P.score<=w&&(w=P.score,v=P.indices)}if(!v||w===1/0)return null;let b=m.length+1,y=A.ArrayExt.lowerBound(v,b,(E,P)=>E-P),M=v.slice(0,y),S=v.slice(y);for(let E=0,P=S.length;E<P;++E)S[E]-=b;return M.length===0?{matchType:0,categoryIndices:null,labelIndices:S,score:w,item:f}:S.length===0?{matchType:1,categoryIndices:M,labelIndices:null,score:w,item:f}:{matchType:2,categoryIndices:M,labelIndices:S,score:w,item:f}}function u(f,h){let m=f.matchType-h.matchType;if(m!==0)return m;let p=f.score-h.score;if(p!==0)return p;let _=0,w=0;switch(f.matchType){case 0:_=f.labelIndices[0],w=h.labelIndices[0];break;case 1:case 2:_=f.categoryIndices[0],w=h.categoryIndices[0];break}if(_!==w)return _-w;let v=f.item.category.localeCompare(h.item.category);if(v!==0)return v;let g=f.item.rank,b=h.item.rank;return g!==b?g<b?-1:1:f.item.label.localeCompare(h.item.label)}function d(f){let h=[];for(let m=0,p=f.length;m<p;++m){let{item:_,categoryIndices:w,labelIndices:v}=f[m],g=_.category;(m===0||g!==f[m-1].item.category)&&h.push({type:"header",category:g,indices:w}),h.push({type:"item",item:_,indices:v})}return h}class c{constructor(h,m){this._commands=h,this.category=r(m.category),this.command=m.command,this.args=m.args||Le.JSONExt.emptyObject,this.rank=m.rank!==void 0?m.rank:1/0}get label(){return this._commands.label(this.command,this.args)}get icon(){return this._commands.icon(this.command,this.args)}get iconClass(){return this._commands.iconClass(this.command,this.args)}get iconLabel(){return this._commands.iconLabel(this.command,this.args)}get caption(){return this._commands.caption(this.command,this.args)}get className(){return this._commands.className(this.command,this.args)}get dataset(){return this._commands.dataset(this.command,this.args)}get isEnabled(){return this._commands.isEnabled(this.command,this.args)}get isToggled(){return this._commands.isToggled(this.command,this.args)}get isToggleable(){return this._commands.isToggleable(this.command,this.args)}get isVisible(){return this._commands.isVisible(this.command,this.args)}get keyBinding(){let{command:h,args:m}=this;return A.ArrayExt.findLastValue(this._commands.keyBindings,p=>p.command===h&&Le.JSONExt.deepEqual(p.args,m))||null}}})(ze||(ze={}));var ve=class n extends D{constructor(e){super({node:de.createNode()}),this._childIndex=-1,this._activeIndex=-1,this._openTimerID=0,this._closeTimerID=0,this._items=[],this._childMenu=null,this._parentMenu=null,this._aboutToClose=new U(this),this._menuRequested=new U(this),this.addClass("lm-Menu"),this.setFlag(D.Flag.DisallowLayout),this.commands=e.commands,this.renderer=e.renderer||n.defaultRenderer}dispose(){this.close(),this._items.length=0,super.dispose()}get aboutToClose(){return this._aboutToClose}get menuRequested(){return this._menuRequested}get parentMenu(){return this._parentMenu}get childMenu(){return this._childMenu}get rootMenu(){let e=this;for(;e._parentMenu;)e=e._parentMenu;return e}get leafMenu(){let e=this;for(;e._childMenu;)e=e._childMenu;return e}get contentNode(){return this.node.getElementsByClassName("lm-Menu-content")[0]}get activeItem(){return this._items[this._activeIndex]||null}set activeItem(e){this.activeIndex=e?this._items.indexOf(e):-1}get activeIndex(){return this._activeIndex}set activeIndex(e){(e<0||e>=this._items.length)&&(e=-1),e!==-1&&!de.canActivate(this._items[e])&&(e=-1),this._activeIndex!==e&&(this._activeIndex=e,this._activeIndex>=0&&this.contentNode.childNodes[this._activeIndex]&&this.contentNode.childNodes[this._activeIndex].focus(),this.update())}get items(){return this._items}activateNextItem(){let e=this._items.length,t=this._activeIndex,i=t<e-1?t+1:0,s=i===0?e-1:i-1;this.activeIndex=A.ArrayExt.findFirstIndex(this._items,de.canActivate,i,s)}activatePreviousItem(){let e=this._items.length,t=this._activeIndex,i=t<=0?e-1:t-1,s=i===e-1?0:i+1;this.activeIndex=A.ArrayExt.findLastIndex(this._items,de.canActivate,i,s)}triggerActiveItem(){if(!this.isAttached)return;let e=this.activeItem;if(!e)return;if(this._cancelOpenTimer(),this._cancelCloseTimer(),e.type==="submenu"){this._openChildMenu(!0);return}this.rootMenu.close();let{command:t,args:i}=e;this.commands.isEnabled(t,i)?this.commands.execute(t,i):console.log(`Command '${t}' is disabled.`)}addItem(e){return this.insertItem(this._items.length,e)}insertItem(e,t){this.isAttached&&this.close(),this.activeIndex=-1;let i=Math.max(0,Math.min(e,this._items.length)),s=de.createItem(this,t);return A.ArrayExt.insert(this._items,i,s),this.update(),s}removeItem(e){this.removeItemAt(this._items.indexOf(e))}removeItemAt(e){this.isAttached&&this.close(),this.activeIndex=-1,A.ArrayExt.removeAt(this._items,e)&&this.update()}clearItems(){this.isAttached&&this.close(),this.activeIndex=-1,this._items.length!==0&&(this._items.length=0,this.update())}open(e,t,i={}){var s,r,o;if(this.isAttached)return;let a=i.forceX||!1,l=i.forceY||!1,u=(s=i.host)!==null&&s!==void 0?s:null,d=(r=i.ref)!==null&&r!==void 0?r:null,c=(o=i.horizontalAlignment)!==null&&o!==void 0?o:document.documentElement.dir==="rtl"?"right":"left";de.openRootMenu(this,e,t,a,l,c,u,d),this.activate()}handleEvent(e){switch(e.type){case"keydown":this._evtKeyDown(e);break;case"mouseup":this._evtMouseUp(e);break;case"mousemove":this._evtMouseMove(e);break;case"mouseenter":this._evtMouseEnter(e);break;case"mouseleave":this._evtMouseLeave(e);break;case"mousedown":this._evtMouseDown(e);break;case"contextmenu":e.preventDefault(),e.stopPropagation();break}}onBeforeAttach(e){this.node.addEventListener("keydown",this),this.node.addEventListener("mouseup",this),this.node.addEventListener("mousemove",this),this.node.addEventListener("mouseenter",this),this.node.addEventListener("mouseleave",this),this.node.addEventListener("contextmenu",this),document.addEventListener("mousedown",this,!0)}onAfterDetach(e){this.node.removeEventListener("keydown",this),this.node.removeEventListener("mouseup",this),this.node.removeEventListener("mousemove",this),this.node.removeEventListener("mouseenter",this),this.node.removeEventListener("mouseleave",this),this.node.removeEventListener("contextmenu",this),document.removeEventListener("mousedown",this,!0)}onActivateRequest(e){this.isAttached&&this.node.focus()}onUpdateRequest(e){let t=this._items,i=this.renderer,s=this._activeIndex,r=de.computeCollapsed(t),o=new Array(t.length);for(let a=0,l=t.length;a<l;++a){let u=t[a],d=a===s,c=r[a];o[a]=i.renderItem({item:u,active:d,collapsed:c,onfocus:()=>{this.activeIndex=a}})}fe.render(o,this.contentNode)}onCloseRequest(e){this._cancelOpenTimer(),this._cancelCloseTimer(),this.activeIndex=-1;let t=this._childMenu;t&&(this._childIndex=-1,this._childMenu=null,t._parentMenu=null,t.close());let i=this._parentMenu;i&&(this._parentMenu=null,i._childIndex=-1,i._childMenu=null,i.activate()),this.isAttached&&this._aboutToClose.emit(void 0),super.onCloseRequest(e)}_evtKeyDown(e){e.preventDefault(),e.stopPropagation();let t=e.keyCode;if(t===13){this.triggerActiveItem();return}if(t===27){this.close();return}if(t===37){this._parentMenu?this.close():this._menuRequested.emit("previous");return}if(t===38){this.activatePreviousItem();return}if(t===39){let o=this.activeItem;o&&o.type==="submenu"?this.triggerActiveItem():this.rootMenu._menuRequested.emit("next");return}if(t===40){this.activateNextItem();return}let i=Ke().keyForKeydownEvent(e);if(!i)return;let s=this._activeIndex+1,r=de.findMnemonic(this._items,i,s);r.index!==-1&&!r.multiple?(this.activeIndex=r.index,this.triggerActiveItem()):r.index!==-1?this.activeIndex=r.index:r.auto!==-1&&(this.activeIndex=r.auto)}_evtMouseUp(e){e.button===0&&(e.preventDefault(),e.stopPropagation(),this.triggerActiveItem())}_evtMouseMove(e){let t=A.ArrayExt.findFirstIndex(this.contentNode.children,s=>$.hitTest(s,e.clientX,e.clientY));if(t===this._activeIndex)return;if(this.activeIndex=t,t=this.activeIndex,t===this._childIndex){this._cancelOpenTimer(),this._cancelCloseTimer();return}this._childIndex!==-1&&this._startCloseTimer(),this._cancelOpenTimer();let i=this.activeItem;!i||i.type!=="submenu"||!i.submenu||this._startOpenTimer()}_evtMouseEnter(e){for(let t=this._parentMenu;t;t=t._parentMenu)t._cancelOpenTimer(),t._cancelCloseTimer(),t.activeIndex=t._childIndex}_evtMouseLeave(e){if(this._cancelOpenTimer(),!this._childMenu){this.activeIndex=-1;return}let{clientX:t,clientY:i}=e;if($.hitTest(this._childMenu.node,t,i)){this._cancelCloseTimer();return}this.activeIndex=-1,this._startCloseTimer()}_evtMouseDown(e){this._parentMenu||(de.hitTestMenus(this,e.clientX,e.clientY)?(e.preventDefault(),e.stopPropagation()):this.close())}_openChildMenu(e=!1){let t=this.activeItem;if(!t||t.type!=="submenu"||!t.submenu){this._closeChildMenu();return}let i=t.submenu;if(i===this._childMenu)return;n.saveWindowData(),this._closeChildMenu(),this._childMenu=i,this._childIndex=this._activeIndex,i._parentMenu=this,z.sendMessage(this,D.Msg.UpdateRequest);let s=this.contentNode.children[this._activeIndex];de.openSubmenu(i,s),e&&(i.activeIndex=-1,i.activateNextItem()),i.activate()}_closeChildMenu(){this._childMenu&&this._childMenu.close()}_startOpenTimer(){this._openTimerID===0&&(this._openTimerID=window.setTimeout(()=>{this._openTimerID=0,this._openChildMenu()},de.TIMER_DELAY))}_startCloseTimer(){this._closeTimerID===0&&(this._closeTimerID=window.setTimeout(()=>{this._closeTimerID=0,this._closeChildMenu()},de.TIMER_DELAY))}_cancelOpenTimer(){this._openTimerID!==0&&(clearTimeout(this._openTimerID),this._openTimerID=0)}_cancelCloseTimer(){this._closeTimerID!==0&&(clearTimeout(this._closeTimerID),this._closeTimerID=0)}static saveWindowData(){de.saveWindowData()}};(function(n){class e{renderItem(i){let s=this.createItemClass(i),r=this.createItemDataset(i),o=this.createItemARIA(i);return q.li({className:s,dataset:r,tabindex:"0",onfocus:i.onfocus,...o},this.renderIcon(i),this.renderLabel(i),this.renderShortcut(i),this.renderSubmenu(i))}renderIcon(i){let s=this.createIconClass(i);return q.div({className:s},i.item.icon,i.item.iconLabel)}renderLabel(i){let s=this.formatLabel(i);return q.div({className:"lm-Menu-itemLabel"},s)}renderShortcut(i){let s=this.formatShortcut(i);return q.div({className:"lm-Menu-itemShortcut"},s)}renderSubmenu(i){return q.div({className:"lm-Menu-itemSubmenuIcon"})}createItemClass(i){let s="lm-Menu-item";i.item.isEnabled||(s+=" lm-mod-disabled"),i.item.isToggled&&(s+=" lm-mod-toggled"),i.item.isVisible||(s+=" lm-mod-hidden"),i.active&&(s+=" lm-mod-active"),i.collapsed&&(s+=" lm-mod-collapsed");let r=i.item.className;return r&&(s+=` ${r}`),s}createItemDataset(i){let s,{type:r,command:o,dataset:a}=i.item;return r==="command"?s={...a,type:r,command:o}:s={...a,type:r},s}createIconClass(i){let s="lm-Menu-itemIcon",r=i.item.iconClass;return r?`${s} ${r}`:s}createItemARIA(i){let s={};switch(i.item.type){case"separator":s.role="presentation";break;case"submenu":s["aria-haspopup"]="true",i.item.isEnabled||(s["aria-disabled"]="true");break;default:i.item.isEnabled||(s["aria-disabled"]="true"),i.item.isToggled?(s.role="menuitemcheckbox",s["aria-checked"]="true"):s.role="menuitem"}return s}formatLabel(i){let{label:s,mnemonic:r}=i.item;if(r<0||r>=s.length)return s;let o=s.slice(0,r),a=s.slice(r+1),l=s[r],u=q.span({className:"lm-Menu-itemMnemonic"},l);return[o,u,a]}formatShortcut(i){let s=i.item.keyBinding;return s?he.formatKeystroke(s.keys):null}}n.Renderer=e,n.defaultRenderer=new e})(ve||(ve={}));var de;(function(n){n.TIMER_DELAY=300,n.SUBMENU_OVERLAP=3;let e=null,t=0;function i(){return t>0?(t--,e):d()}function s(){e=d(),t++}n.saveWindowData=s;function r(){let p=document.createElement("div"),_=document.createElement("ul");return _.className="lm-Menu-content",p.appendChild(_),_.setAttribute("role","menu"),p.tabIndex=0,p}n.createNode=r;function o(p){return p.type!=="separator"&&p.isEnabled&&p.isVisible}n.canActivate=o;function a(p,_){return new m(p.commands,_)}n.createItem=a;function l(p,_,w){for(let v=p;v;v=v.childMenu)if($.hitTest(v.node,_,w))return!0;return!1}n.hitTestMenus=l;function u(p){let _=new Array(p.length);A.ArrayExt.fill(_,!1);let w=0,v=p.length;for(;w<v;++w){let y=p[w];if(y.isVisible){if(y.type!=="separator")break;_[w]=!0}}let g=v-1;for(;g>=0;--g){let y=p[g];if(y.isVisible){if(y.type!=="separator")break;_[g]=!0}}let b=!1;for(;++w<g;){let y=p[w];y.isVisible&&(y.type!=="separator"?b=!1:b?_[w]=!0:b=!0)}return _}n.computeCollapsed=u;function d(){return{pageXOffset:window.pageXOffset,pageYOffset:window.pageYOffset,clientWidth:document.documentElement.clientWidth,clientHeight:document.documentElement.clientHeight}}function c(p,_,w,v,g,b,y,M){let S=i(),E=S.pageXOffset,P=S.pageYOffset,x=S.clientWidth,I=S.clientHeight;z.sendMessage(p,D.Msg.UpdateRequest);let L=I-(g?w:0),R=p.node,O=R.style;O.opacity="0",O.maxHeight=`${L}px`,D.attach(p,y||document.body,M);let{width:K,height:F}=R.getBoundingClientRect();b==="right"&&(_-=K),!v&&_+K>E+x&&(_=E+x-K),!g&&w+F>P+I&&(w>P+I?w=P+I-F:w=w-F),O.transform=`translate(${Math.max(0,_)}px, ${Math.max(0,w)}px`,O.opacity="1"}n.openRootMenu=c;function f(p,_){let w=i(),v=w.pageXOffset,g=w.pageYOffset,b=w.clientWidth,y=w.clientHeight;z.sendMessage(p,D.Msg.UpdateRequest);let M=y,S=p.node,E=S.style;E.opacity="0",E.maxHeight=`${M}px`,D.attach(p,document.body);let{width:P,height:x}=S.getBoundingClientRect(),I=$.boxSizing(p.node),L=_.getBoundingClientRect(),R=L.right-n.SUBMENU_OVERLAP;R+P>v+b&&(R=L.left+n.SUBMENU_OVERLAP-P);let O=L.top-I.borderTop-I.paddingTop;O+x>g+y&&(O=L.bottom+I.borderBottom+I.paddingBottom-x),E.transform=`translate(${Math.max(0,R)}px, ${Math.max(0,O)}px`,E.opacity="1"}n.openSubmenu=f;function h(p,_,w){let v=-1,g=-1,b=!1,y=_.toUpperCase();for(let M=0,S=p.length;M<S;++M){let E=(M+w)%S,P=p[E];if(!o(P))continue;let x=P.label;if(x.length===0)continue;let I=P.mnemonic;if(I>=0&&I<x.length){x[I].toUpperCase()===y&&(v===-1?v=E:b=!0);continue}g===-1&&x[0].toUpperCase()===y&&(g=E)}return{index:v,multiple:b,auto:g}}n.findMnemonic=h;class m{constructor(_,w){this._commands=_,this.type=w.type||"command",this.command=w.command||"",this.args=w.args||Le.JSONExt.emptyObject,this.submenu=w.submenu||null}get label(){return this.type==="command"?this._commands.label(this.command,this.args):this.type==="submenu"&&this.submenu?this.submenu.title.label:""}get mnemonic(){return this.type==="command"?this._commands.mnemonic(this.command,this.args):this.type==="submenu"&&this.submenu?this.submenu.title.mnemonic:-1}get icon(){if(this.type==="command")return this._commands.icon(this.command,this.args);if(this.type==="submenu"&&this.submenu)return this.submenu.title.icon}get iconClass(){return this.type==="command"?this._commands.iconClass(this.command,this.args):this.type==="submenu"&&this.submenu?this.submenu.title.iconClass:""}get iconLabel(){return this.type==="command"?this._commands.iconLabel(this.command,this.args):this.type==="submenu"&&this.submenu?this.submenu.title.iconLabel:""}get caption(){return this.type==="command"?this._commands.caption(this.command,this.args):this.type==="submenu"&&this.submenu?this.submenu.title.caption:""}get className(){return this.type==="command"?this._commands.className(this.command,this.args):this.type==="submenu"&&this.submenu?this.submenu.title.className:""}get dataset(){return this.type==="command"?this._commands.dataset(this.command,this.args):this.type==="submenu"&&this.submenu?this.submenu.title.dataset:{}}get isEnabled(){return this.type==="command"?this._commands.isEnabled(this.command,this.args):this.type==="submenu"?this.submenu!==null:!0}get isToggled(){return this.type==="command"?this._commands.isToggled(this.command,this.args):!1}get isVisible(){return this.type==="command"?this._commands.isVisible(this.command,this.args):this.type==="submenu"?this.submenu!==null:!0}get keyBinding(){if(this.type==="command"){let{command:_,args:w}=this;return A.ArrayExt.findLastValue(this._commands.keyBindings,v=>v.command===_&&Le.JSONExt.deepEqual(v.args,w))||null}return null}}})(de||(de={}));var qt;(function(n){function e(o,a){let l=i(o.selector),u=o.rank!==void 0?o.rank:1/0;return{...o,selector:l,rank:u,id:a}}n.createItem=e;function t(o,a,l,u){let d=a.target;if(!d)return null;let c=a.currentTarget;if(!c||!c.contains(d)&&(d=document.elementFromPoint(a.clientX,a.clientY),!d||!c.contains(d)))return null;let f=[],h=o.slice();for(;d!==null;){let m=[];for(let p=0,_=h.length;p<_;++p){let w=h[p];w&&_e.matches(d,w.selector)&&(m.push(w),h[p]=null)}if(m.length!==0&&(l&&m.sort(u?r:s),f.push(...m)),d===c)break;d=d.parentElement}return l||f.sort(u?r:s),f}n.matchItems=t;function i(o){if(o.indexOf(",")!==-1)throw new Error(`Selector cannot contain commas: ${o}`);if(!_e.isValid(o))throw new Error(`Invalid selector: ${o}`);return o}function s(o,a){let l=o.rank,u=a.rank;return l!==u?l<u?-1:1:o.id-a.id}function r(o,a){let l=_e.calculateSpecificity(o.selector),u=_e.calculateSpecificity(a.selector);return l!==u?u-l:s(o,a)}})(qt||(qt={}));var bi=["ArrowLeft","ArrowUp","ArrowRight","ArrowDown","Home","End"],Ce=class n extends D{constructor(e={}){super({node:pe.createNode()}),this._currentIndex=-1,this._titles=[],this._titlesEditable=!1,this._previousTitle=null,this._dragData=null,this._addButtonEnabled=!1,this._tabMoved=new U(this),this._currentChanged=new U(this),this._addRequested=new U(this),this._tabCloseRequested=new U(this),this._tabDetachRequested=new U(this),this._tabActivateRequested=new U(this),this.addClass("lm-TabBar"),this.contentNode.setAttribute("role","tablist"),this.setFlag(D.Flag.DisallowLayout),this._document=e.document||document,this.tabsMovable=e.tabsMovable||!1,this.titlesEditable=e.titlesEditable||!1,this.allowDeselect=e.allowDeselect||!1,this.addButtonEnabled=e.addButtonEnabled||!1,this.insertBehavior=e.insertBehavior||"select-tab-if-needed",this.name=e.name||"",this.orientation=e.orientation||"horizontal",this.removeBehavior=e.removeBehavior||"select-tab-after",this.renderer=e.renderer||n.defaultRenderer}dispose(){this._releaseMouse(),this._titles.length=0,this._previousTitle=null,super.dispose()}get currentChanged(){return this._currentChanged}get tabMoved(){return this._tabMoved}get tabActivateRequested(){return this._tabActivateRequested}get addRequested(){return this._addRequested}get tabCloseRequested(){return this._tabCloseRequested}get tabDetachRequested(){return this._tabDetachRequested}get document(){return this._document}get titlesEditable(){return this._titlesEditable}set titlesEditable(e){this._titlesEditable=e}get currentTitle(){return this._titles[this._currentIndex]||null}set currentTitle(e){this.currentIndex=e?this._titles.indexOf(e):-1}get currentIndex(){return this._currentIndex}set currentIndex(e){if((e<0||e>=this._titles.length)&&(e=-1),this._currentIndex===e)return;let t=this._currentIndex,i=this._titles[t]||null,s=e,r=this._titles[s]||null;this._currentIndex=s,this._previousTitle=i,this.update(),this._currentChanged.emit({previousIndex:t,previousTitle:i,currentIndex:s,currentTitle:r})}get name(){return this._name}set name(e){this._name=e,e?this.contentNode.setAttribute("aria-label",e):this.contentNode.removeAttribute("aria-label")}get orientation(){return this._orientation}set orientation(e){this._orientation!==e&&(this._releaseMouse(),this._orientation=e,this.dataset.orientation=e,this.contentNode.setAttribute("aria-orientation",e))}get addButtonEnabled(){return this._addButtonEnabled}set addButtonEnabled(e){this._addButtonEnabled!==e&&(this._addButtonEnabled=e,e?this.addButtonNode.classList.remove("lm-mod-hidden"):this.addButtonNode.classList.add("lm-mod-hidden"))}get titles(){return this._titles}get contentNode(){return this.node.getElementsByClassName("lm-TabBar-content")[0]}get addButtonNode(){return this.node.getElementsByClassName("lm-TabBar-addButton")[0]}addTab(e){return this.insertTab(this._titles.length,e)}insertTab(e,t){this._releaseMouse();let i=pe.asTitle(t),s=this._titles.indexOf(i),r=Math.max(0,Math.min(e,this._titles.length));return s===-1?(A.ArrayExt.insert(this._titles,r,i),i.changed.connect(this._onTitleChanged,this),this.update(),this._adjustCurrentForInsert(r,i),i):(r===this._titles.length&&r--,s===r||(A.ArrayExt.move(this._titles,s,r),this.update(),this._adjustCurrentForMove(s,r)),i)}removeTab(e){this.removeTabAt(this._titles.indexOf(e))}removeTabAt(e){this._releaseMouse();let t=A.ArrayExt.removeAt(this._titles,e);t&&(t.changed.disconnect(this._onTitleChanged,this),t===this._previousTitle&&(this._previousTitle=null),this.update(),this._adjustCurrentForRemove(e,t))}clearTabs(){if(this._titles.length===0)return;this._releaseMouse();for(let i of this._titles)i.changed.disconnect(this._onTitleChanged,this);let e=this.currentIndex,t=this.currentTitle;this._currentIndex=-1,this._previousTitle=null,this._titles.length=0,this.update(),e!==-1&&this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:-1,currentTitle:null})}releaseMouse(){this._releaseMouse()}handleEvent(e){switch(e.type){case"pointerdown":this._evtPointerDown(e);break;case"pointermove":this._evtPointerMove(e);break;case"pointerup":this._evtPointerUp(e);break;case"dblclick":this._evtDblClick(e);break;case"keydown":e.eventPhase===Event.CAPTURING_PHASE?this._evtKeyDownCapturing(e):this._evtKeyDown(e);break;case"contextmenu":e.preventDefault(),e.stopPropagation();break}}onBeforeAttach(e){this.node.addEventListener("pointerdown",this),this.node.addEventListener("dblclick",this),this.node.addEventListener("keydown",this)}onAfterDetach(e){this.node.removeEventListener("pointerdown",this),this.node.removeEventListener("dblclick",this),this.node.removeEventListener("keydown",this),this._releaseMouse()}onUpdateRequest(e){var t;let i=this._titles,s=this.renderer,r=this.currentTitle,o=new Array(i.length),a=(t=this._getCurrentTabindex())!==null&&t!==void 0?t:this._currentIndex>-1?this._currentIndex:0;for(let l=0,u=i.length;l<u;++l){let d=i[l],c=d===r,f=c?u:u-l-1,h=a===l?0:-1;o[l]=s.renderTab({title:d,current:c,zIndex:f,tabIndex:h})}fe.render(o,this.contentNode)}_getCurrentTabindex(){let e=null,t=this.contentNode.querySelector('li[tabindex="0"]');return t?e=[...this.contentNode.children].indexOf(t):this._addButtonEnabled&&this.addButtonNode.getAttribute("tabindex")==="0"&&(e=-1),e}_evtDblClick(e){if(!this.titlesEditable)return;let t=this.contentNode.children,i=A.ArrayExt.findFirstIndex(t,o=>$.hitTest(o,e.clientX,e.clientY));if(i===-1)return;let s=this.titles[i],r=t[i].querySelector(".lm-TabBar-tabLabel");if(r&&r.contains(e.target)){let o=s.label||"",a=r.innerHTML;r.innerHTML="";let l=document.createElement("input");l.classList.add("lm-TabBar-tabInput"),l.value=o,r.appendChild(l);let u=()=>{l.removeEventListener("blur",u),r.innerHTML=a,this.node.addEventListener("keydown",this)};l.addEventListener("dblclick",d=>d.stopPropagation()),l.addEventListener("blur",u),l.addEventListener("keydown",d=>{d.key==="Enter"?(l.value!==""&&(s.label=s.caption=l.value),u()):d.key==="Escape"&&u()}),this.node.removeEventListener("keydown",this),l.select(),l.focus(),r.children.length>0&&r.children[0].focus()}}_evtKeyDownCapturing(e){e.eventPhase===Event.CAPTURING_PHASE&&(e.preventDefault(),e.stopPropagation(),e.key==="Escape"&&this._releaseMouse())}_evtKeyDown(e){var t,i,s;if(!(e.key==="Tab"||e.eventPhase===Event.CAPTURING_PHASE)){if(e.key==="Enter"||e.key==="Spacebar"||e.key===" "){let r=document.activeElement;if(this.addButtonEnabled&&this.addButtonNode.contains(r))e.preventDefault(),e.stopPropagation(),this._addRequested.emit();else{let o=A.ArrayExt.findFirstIndex(this.contentNode.children,a=>a.contains(r));o>=0&&(e.preventDefault(),e.stopPropagation(),this.currentIndex=o)}}else if(bi.includes(e.key)){let r=[...this.contentNode.children];if(this.addButtonEnabled&&r.push(this.addButtonNode),r.length<=1)return;e.preventDefault(),e.stopPropagation();let o=r.indexOf(document.activeElement);o===-1&&(o=this._currentIndex);let a;e.key==="ArrowRight"&&this._orientation==="horizontal"||e.key==="ArrowDown"&&this._orientation==="vertical"?a=(t=r[o+1])!==null&&t!==void 0?t:r[0]:e.key==="ArrowLeft"&&this._orientation==="horizontal"||e.key==="ArrowUp"&&this._orientation==="vertical"?a=(i=r[o-1])!==null&&i!==void 0?i:r[r.length-1]:e.key==="Home"?a=r[0]:e.key==="End"&&(a=r[r.length-1]),a&&((s=r[o])===null||s===void 0||s.setAttribute("tabindex","-1"),a?.setAttribute("tabindex","0"),a.focus())}}}_evtPointerDown(e){if(e.button!==0&&e.button!==1||this._dragData||e.target.classList.contains("lm-TabBar-tabInput"))return;let t=this.addButtonEnabled&&this.addButtonNode.contains(e.target),i=this.contentNode.children,s=A.ArrayExt.findFirstIndex(i,o=>$.hitTest(o,e.clientX,e.clientY));if(s===-1&&!t||(e.preventDefault(),e.stopPropagation(),this._dragData={tab:i[s],index:s,pressX:e.clientX,pressY:e.clientY,tabPos:-1,tabSize:-1,tabPressPos:-1,targetIndex:-1,tabLayout:null,contentRect:null,override:null,dragActive:!1,dragAborted:!1,detachRequested:!1},this.document.addEventListener("pointerup",this,!0),e.button===1||t))return;let r=i[s].querySelector(this.renderer.closeIconSelector);r&&r.contains(e.target)||(this.tabsMovable&&(this.document.addEventListener("pointermove",this,!0),this.document.addEventListener("keydown",this,!0),this.document.addEventListener("contextmenu",this,!0)),this.allowDeselect&&this.currentIndex===s?this.currentIndex=-1:this.currentIndex=s,this.currentIndex!==-1&&this._tabActivateRequested.emit({index:this.currentIndex,title:this.currentTitle}))}_evtPointerMove(e){let t=this._dragData;if(!t)return;e.preventDefault(),e.stopPropagation();let i=this.contentNode.children;if(!(!t.dragActive&&!pe.dragExceeded(t,e))){if(!t.dragActive){let s=t.tab.getBoundingClientRect();this._orientation==="horizontal"?(t.tabPos=t.tab.offsetLeft,t.tabSize=s.width,t.tabPressPos=t.pressX-s.left):(t.tabPos=t.tab.offsetTop,t.tabSize=s.height,t.tabPressPos=t.pressY-s.top),t.tabPressOffset={x:t.pressX-s.left,y:t.pressY-s.top},t.tabLayout=pe.snapTabLayout(i,this._orientation),t.contentRect=this.contentNode.getBoundingClientRect(),t.override=le.overrideCursor("default"),t.tab.classList.add("lm-mod-dragging"),this.addClass("lm-mod-dragging"),t.dragActive=!0}if(!t.detachRequested&&pe.detachExceeded(t,e)){t.detachRequested=!0;let s=t.index,r=e.clientX,o=e.clientY,a=i[s],l=this._titles[s];if(this._tabDetachRequested.emit({index:s,title:l,tab:a,clientX:r,clientY:o,offset:t.tabPressOffset}),t.dragAborted)return}pe.layoutTabs(i,t,e,this._orientation)}}_evtPointerUp(e){if(e.button!==0&&e.button!==1)return;let t=this._dragData;if(!t)return;if(e.preventDefault(),e.stopPropagation(),this.document.removeEventListener("pointermove",this,!0),this.document.removeEventListener("pointerup",this,!0),this.document.removeEventListener("keydown",this,!0),this.document.removeEventListener("contextmenu",this,!0),!t.dragActive){if(this._dragData=null,this.addButtonEnabled&&this.addButtonNode.contains(e.target)){this._addRequested.emit(void 0);return}let r=this.contentNode.children,o=A.ArrayExt.findFirstIndex(r,u=>$.hitTest(u,e.clientX,e.clientY));if(o!==t.index)return;let a=this._titles[o];if(!a.closable)return;if(e.button===1){this._tabCloseRequested.emit({index:o,title:a});return}let l=r[o].querySelector(this.renderer.closeIconSelector);if(l&&l.contains(e.target)){this._tabCloseRequested.emit({index:o,title:a});return}return}if(e.button!==0)return;pe.finalizeTabPosition(t,this._orientation),t.tab.classList.remove("lm-mod-dragging");let i=pe.parseTransitionDuration(t.tab);setTimeout(()=>{if(t.dragAborted)return;this._dragData=null,pe.resetTabPositions(this.contentNode.children,this._orientation),t.override.dispose(),this.removeClass("lm-mod-dragging");let s=t.index,r=t.targetIndex;r===-1||s===r||(A.ArrayExt.move(this._titles,s,r),this._adjustCurrentForMove(s,r),this._tabMoved.emit({fromIndex:s,toIndex:r,title:this._titles[r]}),z.sendMessage(this,D.Msg.UpdateRequest))},i)}_releaseMouse(){let e=this._dragData;e&&(this._dragData=null,this.document.removeEventListener("pointermove",this,!0),this.document.removeEventListener("pointerup",this,!0),this.document.removeEventListener("keydown",this,!0),this.document.removeEventListener("contextmenu",this,!0),e.dragAborted=!0,e.dragActive&&(pe.resetTabPositions(this.contentNode.children,this._orientation),e.override.dispose(),e.tab.classList.remove("lm-mod-dragging"),this.removeClass("lm-mod-dragging")))}_adjustCurrentForInsert(e,t){let i=this.currentTitle,s=this._currentIndex,r=this.insertBehavior;if(r==="select-tab"||r==="select-tab-if-needed"&&s===-1){this._currentIndex=e,this._previousTitle=i,this._currentChanged.emit({previousIndex:s,previousTitle:i,currentIndex:e,currentTitle:t});return}s>=e&&this._currentIndex++}_adjustCurrentForMove(e,t){this._currentIndex===e?this._currentIndex=t:this._currentIndex<e&&this._currentIndex>=t?this._currentIndex++:this._currentIndex>e&&this._currentIndex<=t&&this._currentIndex--}_adjustCurrentForRemove(e,t){let i=this._currentIndex,s=this.removeBehavior;if(i!==e){i>e&&this._currentIndex--;return}if(this._titles.length===0){this._currentIndex=-1,this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:-1,currentTitle:null});return}if(s==="select-tab-after"){this._currentIndex=Math.min(e,this._titles.length-1),this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:this._currentIndex,currentTitle:this.currentTitle});return}if(s==="select-tab-before"){this._currentIndex=Math.max(0,e-1),this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:this._currentIndex,currentTitle:this.currentTitle});return}if(s==="select-previous-tab"){this._previousTitle?(this._currentIndex=this._titles.indexOf(this._previousTitle),this._previousTitle=null):this._currentIndex=Math.min(e,this._titles.length-1),this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:this._currentIndex,currentTitle:this.currentTitle});return}this._currentIndex=-1,this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:-1,currentTitle:null})}_onTitleChanged(e){this.update()}};(function(n){class e{constructor(){this.closeIconSelector=".lm-TabBar-tabCloseIcon",this._tabID=0,this._tabKeys=new WeakMap,this._uuid=++e._nInstance}renderTab(i){let s=i.title.caption,r=this.createTabKey(i),o=r,a=this.createTabStyle(i),l=this.createTabClass(i),u=this.createTabDataset(i),d=this.createTabARIA(i);return i.title.closable?q.li({id:o,key:r,className:l,title:s,style:a,dataset:u,...d},this.renderIcon(i),this.renderLabel(i),this.renderCloseIcon(i)):q.li({id:o,key:r,className:l,title:s,style:a,dataset:u,...d},this.renderIcon(i),this.renderLabel(i))}renderIcon(i){let{title:s}=i,r=this.createIconClass(i);return q.div({className:r},s.icon,s.iconLabel)}renderLabel(i){return q.div({className:"lm-TabBar-tabLabel"},i.title.label)}renderCloseIcon(i){return q.div({className:"lm-TabBar-tabCloseIcon"})}createTabKey(i){let s=this._tabKeys.get(i.title);return s===void 0&&(s=`tab-key-${this._uuid}-${this._tabID++}`,this._tabKeys.set(i.title,s)),s}createTabStyle(i){return{zIndex:`${i.zIndex}`}}createTabClass(i){let s="lm-TabBar-tab";return i.title.className&&(s+=` ${i.title.className}`),i.title.closable&&(s+=" lm-mod-closable"),i.current&&(s+=" lm-mod-current"),s}createTabDataset(i){return i.title.dataset}createTabARIA(i){var s;return{role:"tab","aria-selected":i.current.toString(),tabindex:`${(s=i.tabIndex)!==null&&s!==void 0?s:"-1"}`}}createIconClass(i){let s="lm-TabBar-tabIcon",r=i.title.iconClass;return r?`${s} ${r}`:s}}e._nInstance=0,n.Renderer=e,n.defaultRenderer=new e,n.addButtonSelector=".lm-TabBar-addButton"})(Ce||(Ce={}));var pe;(function(n){n.DRAG_THRESHOLD=5,n.DETACH_THRESHOLD=20;function e(){let d=document.createElement("div"),c=document.createElement("ul");c.setAttribute("role","tablist"),c.className="lm-TabBar-content",d.appendChild(c);let f=document.createElement("div");return f.className="lm-TabBar-addButton lm-mod-hidden",f.setAttribute("tabindex","-1"),f.setAttribute("role","button"),d.appendChild(f),d}n.createNode=e;function t(d){return d instanceof it?d:new it(d)}n.asTitle=t;function i(d){let c=window.getComputedStyle(d);return 1e3*(parseFloat(c.transitionDuration)||0)}n.parseTransitionDuration=i;function s(d,c){let f=new Array(d.length);for(let h=0,m=d.length;h<m;++h){let p=d[h],_=window.getComputedStyle(p);c==="horizontal"?f[h]={pos:p.offsetLeft,size:p.offsetWidth,margin:parseFloat(_.marginLeft)||0}:f[h]={pos:p.offsetTop,size:p.offsetHeight,margin:parseFloat(_.marginTop)||0}}return f}n.snapTabLayout=s;function r(d,c){let f=Math.abs(c.clientX-d.pressX),h=Math.abs(c.clientY-d.pressY);return f>=n.DRAG_THRESHOLD||h>=n.DRAG_THRESHOLD}n.dragExceeded=r;function o(d,c){let f=d.contentRect;return c.clientX<f.left-n.DETACH_THRESHOLD||c.clientX>=f.right+n.DETACH_THRESHOLD||c.clientY<f.top-n.DETACH_THRESHOLD||c.clientY>=f.bottom+n.DETACH_THRESHOLD}n.detachExceeded=o;function a(d,c,f,h){let m,p,_,w;h==="horizontal"?(m=c.pressX,p=f.clientX-c.contentRect.left,_=f.clientX,w=c.contentRect.width):(m=c.pressY,p=f.clientY-c.contentRect.top,_=f.clientY,w=c.contentRect.height);let v=c.index,g=p-c.tabPressPos,b=g+c.tabSize;for(let y=0,M=d.length;y<M;++y){let S,E=c.tabLayout[y],P=E.pos+(E.size>>1);if(y<c.index&&g<P)S=`${c.tabSize+c.tabLayout[y+1].margin}px`,v=Math.min(v,y);else if(y>c.index&&b>P)S=`${-c.tabSize-E.margin}px`,v=Math.max(v,y);else if(y===c.index){let x=_-m,I=w-(c.tabPos+c.tabSize);S=`${Math.max(-c.tabPos,Math.min(x,I))}px`}else S="";h==="horizontal"?d[y].style.left=S:d[y].style.top=S}c.targetIndex=v}n.layoutTabs=a;function l(d,c){let f;c==="horizontal"?f=d.contentRect.width:f=d.contentRect.height;let h;if(d.targetIndex===d.index)h=0;else if(d.targetIndex>d.index){let _=d.tabLayout[d.targetIndex];h=_.pos+_.size-d.tabSize-d.tabPos}else h=d.tabLayout[d.targetIndex].pos-d.tabPos;let m=f-(d.tabPos+d.tabSize),p=Math.max(-d.tabPos,Math.min(h,m));c==="horizontal"?d.tab.style.left=`${p}px`:d.tab.style.top=`${p}px`}n.finalizeTabPosition=l;function u(d,c){for(let f of d)c==="horizontal"?f.style.left="":f.style.top=""}n.resetTabPositions=u})(pe||(pe={}));var It=class extends Be{constructor(e){super(),this._spacing=4,this._dirty=!1,this._root=null,this._box=null,this._items=new Map,this.renderer=e.renderer,e.spacing!==void 0&&(this._spacing=st.clampDimension(e.spacing)),this._document=e.document||document,this._hiddenMode=e.hiddenMode!==void 0?e.hiddenMode:D.HiddenMode.Display}dispose(){let e=this[Symbol.iterator]();this._items.forEach(t=>{t.dispose()}),this._box=null,this._root=null,this._items.clear();for(let t of e)t.dispose();super.dispose()}get hiddenMode(){return this._hiddenMode}set hiddenMode(e){if(this._hiddenMode!==e){this._hiddenMode=e;for(let t of this.tabBars())if(t.titles.length>1)for(let i of t.titles)i.owner.hiddenMode=this._hiddenMode}}get spacing(){return this._spacing}set spacing(e){e=st.clampDimension(e),this._spacing!==e&&(this._spacing=e,this.parent&&this.parent.fit())}get isEmpty(){return this._root===null}[Symbol.iterator](){return this._root?this._root.iterAllWidgets():(0,A.empty)()}widgets(){return this._root?this._root.iterUserWidgets():(0,A.empty)()}selectedWidgets(){return this._root?this._root.iterSelectedWidgets():(0,A.empty)()}tabBars(){return this._root?this._root.iterTabBars():(0,A.empty)()}handles(){return this._root?this._root.iterHandles():(0,A.empty)()}moveHandle(e,t,i){let s=e.classList.contains("lm-mod-hidden");if(!this._root||s)return;let r=this._root.findSplitNode(e);if(!r)return;let o;r.node.orientation==="horizontal"?o=t-e.offsetLeft:o=i-e.offsetTop,o!==0&&(r.node.holdSizes(),ue.adjust(r.node.sizers,r.index,o),this.parent&&this.parent.update())}saveLayout(){return this._root?(this._root.holdAllSizes(),{main:this._root.createConfig()}):{main:null}}restoreLayout(e){let t=new Set,i;e.main?i=Q.normalizeAreaConfig(e.main,t):i=null;let s=this.widgets(),r=this.tabBars(),o=this.handles();this._root=null;for(let a of s)t.has(a)||(a.parent=null);for(let a of r)a.dispose();for(let a of o)a.parentNode&&a.parentNode.removeChild(a);for(let a of t)a.parent=this.parent;i?this._root=Q.realizeAreaConfig(i,{createTabBar:a=>this._createTabBar(),createHandle:()=>this._createHandle()},this._document):this._root=null,this.parent&&(t.forEach(a=>{this.attachWidget(a)}),this.parent.fit())}addWidget(e,t={}){let i=t.ref||null,s=t.mode||"tab-after",r=null;if(this._root&&i&&(r=this._root.findTabNode(i)),i&&!r)throw new Error("Reference widget is not in the layout.");switch(e.parent=this.parent,s){case"tab-after":this._insertTab(e,i,r,!0);break;case"tab-before":this._insertTab(e,i,r,!1);break;case"split-top":this._insertSplit(e,i,r,"vertical",!1);break;case"split-left":this._insertSplit(e,i,r,"horizontal",!1);break;case"split-right":this._insertSplit(e,i,r,"horizontal",!0);break;case"split-bottom":this._insertSplit(e,i,r,"vertical",!0);break;case"merge-top":this._insertSplit(e,i,r,"vertical",!1,!0);break;case"merge-left":this._insertSplit(e,i,r,"horizontal",!1,!0);break;case"merge-right":this._insertSplit(e,i,r,"horizontal",!0,!0);break;case"merge-bottom":this._insertSplit(e,i,r,"vertical",!0,!0);break}this.parent&&(this.attachWidget(e),this.parent.fit())}removeWidget(e){this._removeWidget(e),this.parent&&(this.detachWidget(e),this.parent.fit())}hitTestTabAreas(e,t){if(!this._root||!this.parent||!this.parent.isVisible)return null;this._box||(this._box=$.boxSizing(this.parent.node));let i=this.parent.node.getBoundingClientRect(),s=e-i.left-this._box.borderLeft,r=t-i.top-this._box.borderTop,o=this._root.hitTestTabNodes(s,r);if(!o)return null;let{tabBar:a,top:l,left:u,width:d,height:c}=o,f=this._box.borderLeft+this._box.borderRight,h=this._box.borderTop+this._box.borderBottom,m=i.width-f-(u+d),p=i.height-h-(l+c);return{tabBar:a,x:s,y:r,top:l,left:u,right:m,bottom:p,width:d,height:c}}init(){super.init();for(let e of this)this.attachWidget(e);for(let e of this.handles())this.parent.node.appendChild(e);this.parent.fit()}attachWidget(e){this.parent.node!==e.node.parentNode&&(this._items.set(e,new Oe(e)),this.parent.isAttached&&z.sendMessage(e,D.Msg.BeforeAttach),this.parent.node.appendChild(e.node),this.parent.isAttached&&z.sendMessage(e,D.Msg.AfterAttach))}detachWidget(e){if(this.parent.node!==e.node.parentNode)return;this.parent.isAttached&&z.sendMessage(e,D.Msg.BeforeDetach),this.parent.node.removeChild(e.node),this.parent.isAttached&&z.sendMessage(e,D.Msg.AfterDetach);let t=this._items.get(e);t&&(this._items.delete(e),t.dispose())}onBeforeShow(e){super.onBeforeShow(e),this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e),this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){this.parent.isVisible&&this._update(e.width,e.height)}onUpdateRequest(e){this.parent.isVisible&&this._update(-1,-1)}onFitRequest(e){this.parent.isAttached&&this._fit()}_removeWidget(e){if(!this._root)return;let t=this._root.findTabNode(e);if(!t)return;if(Q.removeAria(e),t.tabBar.titles.length>1){if(t.tabBar.removeTab(e.title),this._hiddenMode===D.HiddenMode.Scale&&t.tabBar.titles.length==1){let f=t.tabBar.titles[0].owner;f.hiddenMode=D.HiddenMode.Display}return}if(t.tabBar.dispose(),this._root===t){this._root=null;return}this._root.holdAllSizes();let i=t.parent;t.parent=null;let s=A.ArrayExt.removeFirstOf(i.children,t),r=A.ArrayExt.removeAt(i.handles,s);if(A.ArrayExt.removeAt(i.sizers,s),r.parentNode&&r.parentNode.removeChild(r),i.children.length>1){i.syncHandles();return}let o=i.parent;i.parent=null;let a=i.children[0],l=i.handles[0];if(i.children.length=0,i.handles.length=0,i.sizers.length=0,l.parentNode&&l.parentNode.removeChild(l),this._root===i){a.parent=null,this._root=a;return}let u=o,d=u.children.indexOf(i);if(a instanceof Q.TabLayoutNode){a.parent=u,u.children[d]=a;return}let c=A.ArrayExt.removeAt(u.handles,d);A.ArrayExt.removeAt(u.children,d),A.ArrayExt.removeAt(u.sizers,d),c.parentNode&&c.parentNode.removeChild(c);for(let f=0,h=a.children.length;f<h;++f){let m=a.children[f],p=a.handles[f],_=a.sizers[f];A.ArrayExt.insert(u.children,d+f,m),A.ArrayExt.insert(u.handles,d+f,p),A.ArrayExt.insert(u.sizers,d+f,_),m.parent=u}a.children.length=0,a.handles.length=0,a.sizers.length=0,a.parent=null,u.syncHandles()}_createTabNode(e){let t=new Q.TabLayoutNode(this._createTabBar());return t.tabBar.addTab(e.title),Q.addAria(e,t.tabBar),t}_insertTab(e,t,i,s){if(e===t)return;if(!this._root){let o=new Q.TabLayoutNode(this._createTabBar());o.tabBar.addTab(e.title),this._root=o,Q.addAria(e,o.tabBar);return}i||(i=this._root.findFirstTabNode()),i.tabBar.titles.indexOf(e.title)===-1&&(this._removeWidget(e),e.hide());let r;if(t?r=i.tabBar.titles.indexOf(t.title):r=i.tabBar.currentIndex,this._hiddenMode===D.HiddenMode.Scale)if(i.tabBar.titles.length===0)e.hiddenMode=D.HiddenMode.Display;else if(i.tabBar.titles.length==1){let o=i.tabBar.titles[0].owner;o.hiddenMode=D.HiddenMode.Scale}else e.hiddenMode=D.HiddenMode.Scale;else e.hiddenMode=this._hiddenMode;i.tabBar.insertTab(r+(s?1:0),e.title),Q.addAria(e,i.tabBar)}_insertSplit(e,t,i,s,r,o=!1){if(e===t&&i&&i.tabBar.titles.length===1)return;if(this._removeWidget(e),!this._root){this._root=this._createTabNode(e);return}if(!i||!i.parent){let f=this._splitRoot(s),h=r?f.children.length:0;f.normalizeSizes();let m=Q.createSizer(i?1:Q.GOLDEN_RATIO),p=this._createTabNode(e);A.ArrayExt.insert(f.children,h,p),A.ArrayExt.insert(f.sizers,h,m),A.ArrayExt.insert(f.handles,h,this._createHandle()),p.parent=f,f.normalizeSizes(),f.syncHandles();return}let a=i.parent;if(a.orientation===s){let f=a.children.indexOf(i);if(o){let _=f+(r?1:-1),w=a.children[_];if(w instanceof Q.TabLayoutNode){this._insertTab(e,null,w,!0),++w.tabBar.currentIndex;return}}a.normalizeSizes();let h=a.sizers[f].sizeHint/=2,m=f+(r?1:0),p=this._createTabNode(e);A.ArrayExt.insert(a.children,m,p),A.ArrayExt.insert(a.sizers,m,Q.createSizer(h)),A.ArrayExt.insert(a.handles,m,this._createHandle()),p.parent=a,a.syncHandles();return}let l=A.ArrayExt.removeFirstOf(a.children,i),u=new Q.SplitLayoutNode(s);u.normalized=!0,u.children.push(i),u.sizers.push(Q.createSizer(.5)),u.handles.push(this._createHandle()),i.parent=u;let d=r?1:0,c=this._createTabNode(e);A.ArrayExt.insert(u.children,d,c),A.ArrayExt.insert(u.sizers,d,Q.createSizer(.5)),A.ArrayExt.insert(u.handles,d,this._createHandle()),c.parent=u,u.syncHandles(),A.ArrayExt.insert(a.children,l,u),u.parent=a}_splitRoot(e){let t=this._root;if(t instanceof Q.SplitLayoutNode&&t.orientation===e)return t;let i=this._root=new Q.SplitLayoutNode(e);return t&&(i.children.push(t),i.sizers.push(Q.createSizer(0)),i.handles.push(this._createHandle()),t.parent=i),i}_fit(){let e=0,t=0;if(this._root){let r=this._root.fit(this._spacing,this._items);e=r.minWidth,t=r.minHeight}let i=this._box=$.boxSizing(this.parent.node);e+=i.horizontalSum,t+=i.verticalSum;let s=this.parent.node.style;s.minWidth=`${e}px`,s.minHeight=`${t}px`,this._dirty=!0,this.parent.parent&&z.sendMessage(this.parent.parent,D.Msg.FitRequest),this._dirty&&z.sendMessage(this.parent,D.Msg.UpdateRequest)}_update(e,t){if(this._dirty=!1,!this._root)return;e<0&&(e=this.parent.node.offsetWidth),t<0&&(t=this.parent.node.offsetHeight),this._box||(this._box=$.boxSizing(this.parent.node));let i=this._box.paddingTop,s=this._box.paddingLeft,r=e-this._box.horizontalSum,o=t-this._box.verticalSum;this._root.update(i,s,r,o,this._spacing,this._items)}_createTabBar(){let e=this.renderer.createTabBar(this._document);return e.orientation="horizontal",this.parent&&this.attachWidget(e),e}_createHandle(){let e=this.renderer.createHandle(),t=e.style;return t.position="absolute",t.contain="strict",t.top="0",t.left="0",t.width="0",t.height="0",this.parent&&this.parent.node.appendChild(e),e}},Q;(function(n){n.GOLDEN_RATIO=.618;function e(f){let h=new Me;return h.sizeHint=f,h.size=f,h}n.createSizer=e;function t(f,h){let m;return f.type==="tab-area"?m=l(f,h):m=u(f,h),m}n.normalizeAreaConfig=t;function i(f,h,m){let p;return f.type==="tab-area"?p=d(f,h,m):p=c(f,h,m),p}n.realizeAreaConfig=i;class s{constructor(h){this.parent=null,this._top=0,this._left=0,this._width=0,this._height=0;let m=new Me,p=new Me;m.stretch=0,p.stretch=1,this.tabBar=h,this.sizers=[m,p]}get top(){return this._top}get left(){return this._left}get width(){return this._width}get height(){return this._height}*iterAllWidgets(){yield this.tabBar,yield*this.iterUserWidgets()}*iterUserWidgets(){for(let h of this.tabBar.titles)yield h.owner}*iterSelectedWidgets(){let h=this.tabBar.currentTitle;h&&(yield h.owner)}*iterTabBars(){yield this.tabBar}*iterHandles(){}findTabNode(h){return this.tabBar.titles.indexOf(h.title)!==-1?this:null}findSplitNode(h){return null}findFirstTabNode(){return this}hitTestTabNodes(h,m){return h<this._left||h>=this._left+this._width||m<this._top||m>=this._top+this._height?null:this}createConfig(){let h=this.tabBar.titles.map(p=>p.owner),m=this.tabBar.currentIndex;return{type:"tab-area",widgets:h,currentIndex:m}}holdAllSizes(){}fit(h,m){let p=0,_=0,w=1/0,v=1/0,g=m.get(this.tabBar),b=this.tabBar.currentTitle,y=b?m.get(b.owner):void 0,[M,S]=this.sizers;return g&&g.fit(),y&&y.fit(),g&&!g.isHidden?(p=Math.max(p,g.minWidth),_+=g.minHeight,M.minSize=g.minHeight,M.maxSize=g.maxHeight):(M.minSize=0,M.maxSize=0),y&&!y.isHidden?(p=Math.max(p,y.minWidth),_+=y.minHeight,S.minSize=y.minHeight,S.maxSize=1/0):(S.minSize=0,S.maxSize=1/0),{minWidth:p,minHeight:_,maxWidth:w,maxHeight:v}}update(h,m,p,_,w,v){this._top=m,this._left=h,this._width=p,this._height=_;let g=v.get(this.tabBar),b=this.tabBar.currentTitle,y=b?v.get(b.owner):void 0;if(ue.calc(this.sizers,_),g&&!g.isHidden){let M=this.sizers[0].size;g.update(h,m,p,M),m+=M}if(y&&!y.isHidden){let M=this.sizers[1].size;y.update(h,m,p,M)}}}n.TabLayoutNode=s;class r{constructor(h){this.parent=null,this.normalized=!1,this.children=[],this.sizers=[],this.handles=[],this.orientation=h}*iterAllWidgets(){for(let h of this.children)yield*h.iterAllWidgets()}*iterUserWidgets(){for(let h of this.children)yield*h.iterUserWidgets()}*iterSelectedWidgets(){for(let h of this.children)yield*h.iterSelectedWidgets()}*iterTabBars(){for(let h of this.children)yield*h.iterTabBars()}*iterHandles(){yield*this.handles;for(let h of this.children)yield*h.iterHandles()}findTabNode(h){for(let m=0,p=this.children.length;m<p;++m){let _=this.children[m].findTabNode(h);if(_)return _}return null}findSplitNode(h){let m=this.handles.indexOf(h);if(m!==-1)return{index:m,node:this};for(let p=0,_=this.children.length;p<_;++p){let w=this.children[p].findSplitNode(h);if(w)return w}return null}findFirstTabNode(){return this.children.length===0?null:this.children[0].findFirstTabNode()}hitTestTabNodes(h,m){for(let p=0,_=this.children.length;p<_;++p){let w=this.children[p].hitTestTabNodes(h,m);if(w)return w}return null}createConfig(){let h=this.orientation,m=this.createNormalizedSizes(),p=this.children.map(_=>_.createConfig());return{type:"split-area",orientation:h,children:p,sizes:m}}syncHandles(){this.handles.forEach((h,m)=>{h.setAttribute("data-orientation",this.orientation),m===this.handles.length-1?h.classList.add("lm-mod-hidden"):h.classList.remove("lm-mod-hidden")})}holdSizes(){for(let h of this.sizers)h.sizeHint=h.size}holdAllSizes(){for(let h of this.children)h.holdAllSizes();this.holdSizes()}normalizeSizes(){let h=this.sizers.length;if(h===0)return;this.holdSizes();let m=this.sizers.reduce((p,_)=>p+_.sizeHint,0);if(m===0)for(let p of this.sizers)p.size=p.sizeHint=1/h;else for(let p of this.sizers)p.size=p.sizeHint/=m;this.normalized=!0}createNormalizedSizes(){let h=this.sizers.length;if(h===0)return[];let m=this.sizers.map(_=>_.size),p=m.reduce((_,w)=>_+w,0);if(p===0)for(let _=m.length-1;_>-1;_--)m[_]=1/h;else for(let _=m.length-1;_>-1;_--)m[_]/=p;return m}fit(h,m){let p=this.orientation==="horizontal",_=Math.max(0,this.children.length-1)*h,w=p?_:0,v=p?0:_,g=1/0,b=1/0;for(let y=0,M=this.children.length;y<M;++y){let S=this.children[y].fit(h,m);p?(v=Math.max(v,S.minHeight),w+=S.minWidth,this.sizers[y].minSize=S.minWidth):(w=Math.max(w,S.minWidth),v+=S.minHeight,this.sizers[y].minSize=S.minHeight)}return{minWidth:w,minHeight:v,maxWidth:g,maxHeight:b}}update(h,m,p,_,w,v){let g=this.orientation==="horizontal",b=Math.max(0,this.children.length-1)*w,y=Math.max(0,(g?p:_)-b);if(this.normalized){for(let M of this.sizers)M.sizeHint*=y;this.normalized=!1}ue.calc(this.sizers,y);for(let M=0,S=this.children.length;M<S;++M){let E=this.children[M],P=this.sizers[M].size,x=this.handles[M].style;g?(E.update(h,m,P,_,w,v),h+=P,x.top=`${m}px`,x.left=`${h}px`,x.width=`${w}px`,x.height=`${_}px`,h+=w):(E.update(h,m,p,P,w,v),m+=P,x.top=`${m}px`,x.left=`${h}px`,x.width=`${p}px`,x.height=`${w}px`,m+=w)}}}n.SplitLayoutNode=r;function o(f,h){f.node.setAttribute("role","tabpanel");let m=h.renderer;if(m instanceof Ce.Renderer){let p=m.createTabKey({title:f.title,current:!1,zIndex:0});f.node.setAttribute("aria-labelledby",p)}}n.addAria=o;function a(f){f.node.removeAttribute("role"),f.node.removeAttribute("aria-labelledby")}n.removeAria=a;function l(f,h){if(f.widgets.length===0)return null;let m=[];for(let _ of f.widgets)h.has(_)||(h.add(_),m.push(_));if(m.length===0)return null;let p=f.currentIndex;return p!==-1&&(p<0||p>=m.length)&&(p=0),{type:"tab-area",widgets:m,currentIndex:p}}function u(f,h){let m=f.orientation,p=[],_=[];for(let w=0,v=f.children.length;w<v;++w){let g=t(f.children[w],h);g&&(g.type==="tab-area"||g.orientation!==m?(p.push(g),_.push(Math.abs(f.sizes[w]||0))):(p.push(...g.children),_.push(...g.sizes)))}return p.length===0?null:p.length===1?p[0]:{type:"split-area",orientation:m,children:p,sizes:_}}function d(f,h,m){let p=h.createTabBar(m);for(let _ of f.widgets)_.hide(),p.addTab(_.title),n.addAria(_,p);return p.currentIndex=f.currentIndex,new s(p)}function c(f,h,m){let p=new r(f.orientation);return f.children.forEach((_,w)=>{let v=i(_,h,m),g=e(f.sizes[w]),b=h.createHandle();p.children.push(v),p.handles.push(b),p.sizers.push(g),v.parent=p}),p.syncHandles(),p.normalizeSizes(),p}})(Q||(Q={}));var Fe=class n extends D{constructor(e={}){super(),this._drag=null,this._tabsMovable=!0,this._tabsConstrained=!1,this._addButtonEnabled=!1,this._pressData=null,this._layoutModified=new U(this),this._addRequested=new U(this),this.addClass("lm-DockPanel"),this._document=e.document||document,this._mode=e.mode||"multiple-document",this._renderer=e.renderer||n.defaultRenderer,this._edges=e.edges||J.DEFAULT_EDGES,e.tabsMovable!==void 0&&(this._tabsMovable=e.tabsMovable),e.tabsConstrained!==void 0&&(this._tabsConstrained=e.tabsConstrained),e.addButtonEnabled!==void 0&&(this._addButtonEnabled=e.addButtonEnabled),this.dataset.mode=this._mode;let t={createTabBar:()=>this._createTabBar(),createHandle:()=>this._createHandle()};this.layout=new It({document:this._document,renderer:t,spacing:e.spacing,hiddenMode:e.hiddenMode}),this.overlay=e.overlay||new n.Overlay,this.node.appendChild(this.overlay.node)}dispose(){this._releaseMouse(),this.overlay.hide(0),this._drag&&this._drag.dispose(),super.dispose()}get hiddenMode(){return this.layout.hiddenMode}set hiddenMode(e){this.layout.hiddenMode=e}get layoutModified(){return this._layoutModified}get addRequested(){return this._addRequested}get renderer(){return this.layout.renderer}get spacing(){return this.layout.spacing}set spacing(e){this.layout.spacing=e}get mode(){return this._mode}set mode(e){if(this._mode===e)return;this._mode=e,this.dataset.mode=e;let t=this.layout;switch(e){case"multiple-document":for(let i of t.tabBars())i.show();break;case"single-document":t.restoreLayout(J.createSingleDocumentConfig(this));break;default:throw"unreachable"}z.postMessage(this,J.LayoutModified)}get tabsMovable(){return this._tabsMovable}set tabsMovable(e){this._tabsMovable=e;for(let t of this.tabBars())t.tabsMovable=e}get tabsConstrained(){return this._tabsConstrained}set tabsConstrained(e){this._tabsConstrained=e}get addButtonEnabled(){return this._addButtonEnabled}set addButtonEnabled(e){this._addButtonEnabled=e;for(let t of this.tabBars())t.addButtonEnabled=e}get isEmpty(){return this.layout.isEmpty}*widgets(){yield*this.layout.widgets()}*selectedWidgets(){yield*this.layout.selectedWidgets()}*tabBars(){yield*this.layout.tabBars()}*handles(){yield*this.layout.handles()}selectWidget(e){let t=(0,A.find)(this.tabBars(),i=>i.titles.indexOf(e.title)!==-1);if(!t)throw new Error("Widget is not contained in the dock panel.");t.currentTitle=e.title}activateWidget(e){this.selectWidget(e),e.activate()}saveLayout(){return this.layout.saveLayout()}restoreLayout(e){this._mode="multiple-document",this.layout.restoreLayout(e),(se.IS_EDGE||se.IS_IE)&&z.flush(),z.postMessage(this,J.LayoutModified)}addWidget(e,t={}){this._mode==="single-document"?this.layout.addWidget(e):this.layout.addWidget(e,t),z.postMessage(this,J.LayoutModified)}processMessage(e){e.type==="layout-modified"?this._layoutModified.emit(void 0):super.processMessage(e)}handleEvent(e){switch(e.type){case"lm-dragenter":this._evtDragEnter(e);break;case"lm-dragleave":this._evtDragLeave(e);break;case"lm-dragover":this._evtDragOver(e);break;case"lm-drop":this._evtDrop(e);break;case"pointerdown":this._evtPointerDown(e);break;case"pointermove":this._evtPointerMove(e);break;case"pointerup":this._evtPointerUp(e);break;case"keydown":this._evtKeyDown(e);break;case"contextmenu":e.preventDefault(),e.stopPropagation();break}}onBeforeAttach(e){this.node.addEventListener("lm-dragenter",this),this.node.addEventListener("lm-dragleave",this),this.node.addEventListener("lm-dragover",this),this.node.addEventListener("lm-drop",this),this.node.addEventListener("pointerdown",this)}onAfterDetach(e){this.node.removeEventListener("lm-dragenter",this),this.node.removeEventListener("lm-dragleave",this),this.node.removeEventListener("lm-dragover",this),this.node.removeEventListener("lm-drop",this),this.node.removeEventListener("pointerdown",this),this._releaseMouse()}onChildAdded(e){J.isGeneratedTabBarProperty.get(e.child)||e.child.addClass("lm-DockPanel-widget")}onChildRemoved(e){J.isGeneratedTabBarProperty.get(e.child)||(e.child.removeClass("lm-DockPanel-widget"),z.postMessage(this,J.LayoutModified))}_evtDragEnter(e){e.mimeData.hasData("application/vnd.lumino.widget-factory")&&(e.preventDefault(),e.stopPropagation())}_evtDragLeave(e){e.preventDefault(),!(this._tabsConstrained&&e.source!==this)&&(e.stopPropagation(),this.overlay.hide(1))}_evtDragOver(e){e.preventDefault(),this._tabsConstrained&&e.source!==this||this._showOverlay(e.clientX,e.clientY)==="invalid"?e.dropAction="none":(e.stopPropagation(),e.dropAction=e.proposedAction)}_evtDrop(e){if(e.preventDefault(),this.overlay.hide(0),e.proposedAction==="none"){e.dropAction="none";return}let{clientX:t,clientY:i}=e,{zone:s,target:r}=J.findDropTarget(this,t,i,this._edges);if(this._tabsConstrained&&e.source!==this||s==="invalid"){e.dropAction="none";return}let a=e.mimeData.getData("application/vnd.lumino.widget-factory");if(typeof a!="function"){e.dropAction="none";return}let l=a();if(!(l instanceof D)){e.dropAction="none";return}if(l.contains(this)){e.dropAction="none";return}let u=r?J.getDropRef(r.tabBar):null;switch(s){case"root-all":this.addWidget(l);break;case"root-top":this.addWidget(l,{mode:"split-top"});break;case"root-left":this.addWidget(l,{mode:"split-left"});break;case"root-right":this.addWidget(l,{mode:"split-right"});break;case"root-bottom":this.addWidget(l,{mode:"split-bottom"});break;case"widget-all":this.addWidget(l,{mode:"tab-after",ref:u});break;case"widget-top":this.addWidget(l,{mode:"split-top",ref:u});break;case"widget-left":this.addWidget(l,{mode:"split-left",ref:u});break;case"widget-right":this.addWidget(l,{mode:"split-right",ref:u});break;case"widget-bottom":this.addWidget(l,{mode:"split-bottom",ref:u});break;case"widget-tab":this.addWidget(l,{mode:"tab-after",ref:u});break;default:throw"unreachable"}e.dropAction=e.proposedAction,e.stopPropagation(),this.activateWidget(l)}_evtKeyDown(e){e.preventDefault(),e.stopPropagation(),e.keyCode===27&&(this._releaseMouse(),z.postMessage(this,J.LayoutModified))}_evtPointerDown(e){if(e.button!==0)return;let t=this.layout,i=e.target,s=(0,A.find)(t.handles(),d=>d.contains(i));if(!s)return;e.preventDefault(),e.stopPropagation(),this._document.addEventListener("keydown",this,!0),this._document.addEventListener("pointerup",this,!0),this._document.addEventListener("pointermove",this,!0),this._document.addEventListener("contextmenu",this,!0);let r=s.getBoundingClientRect(),o=e.clientX-r.left,a=e.clientY-r.top,l=window.getComputedStyle(s),u=le.overrideCursor(l.cursor,this._document);this._pressData={handle:s,deltaX:o,deltaY:a,override:u}}_evtPointerMove(e){if(!this._pressData)return;e.preventDefault(),e.stopPropagation();let t=this.node.getBoundingClientRect(),i=e.clientX-t.left-this._pressData.deltaX,s=e.clientY-t.top-this._pressData.deltaY;this.layout.moveHandle(this._pressData.handle,i,s)}_evtPointerUp(e){e.button===0&&(e.preventDefault(),e.stopPropagation(),this._releaseMouse(),z.postMessage(this,J.LayoutModified))}_releaseMouse(){this._pressData&&(this._pressData.override.dispose(),this._pressData=null,this._document.removeEventListener("keydown",this,!0),this._document.removeEventListener("pointerup",this,!0),this._document.removeEventListener("pointermove",this,!0),this._document.removeEventListener("contextmenu",this,!0))}_showOverlay(e,t){let{zone:i,target:s}=J.findDropTarget(this,e,t,this._edges);if(i==="invalid")return this.overlay.hide(100),i;let r,o,a,l,u=$.boxSizing(this.node),d=this.node.getBoundingClientRect();switch(i){case"root-all":r=u.paddingTop,o=u.paddingLeft,a=u.paddingRight,l=u.paddingBottom;break;case"root-top":r=u.paddingTop,o=u.paddingLeft,a=u.paddingRight,l=d.height*J.GOLDEN_RATIO;break;case"root-left":r=u.paddingTop,o=u.paddingLeft,a=d.width*J.GOLDEN_RATIO,l=u.paddingBottom;break;case"root-right":r=u.paddingTop,o=d.width*J.GOLDEN_RATIO,a=u.paddingRight,l=u.paddingBottom;break;case"root-bottom":r=d.height*J.GOLDEN_RATIO,o=u.paddingLeft,a=u.paddingRight,l=u.paddingBottom;break;case"widget-all":r=s.top,o=s.left,a=s.right,l=s.bottom;break;case"widget-top":r=s.top,o=s.left,a=s.right,l=s.bottom+s.height/2;break;case"widget-left":r=s.top,o=s.left,a=s.right+s.width/2,l=s.bottom;break;case"widget-right":r=s.top,o=s.left+s.width/2,a=s.right,l=s.bottom;break;case"widget-bottom":r=s.top+s.height/2,o=s.left,a=s.right,l=s.bottom;break;case"widget-tab":{let c=s.tabBar.node.getBoundingClientRect().height;r=s.top,o=s.left,a=s.right,l=s.bottom+s.height-c;break}default:throw"unreachable"}return this.overlay.show({top:r,left:o,right:a,bottom:l}),i}_createTabBar(){let e=this._renderer.createTabBar(this._document);return J.isGeneratedTabBarProperty.set(e,!0),this._mode==="single-document"&&e.hide(),e.tabsMovable=this._tabsMovable,e.allowDeselect=!1,e.addButtonEnabled=this._addButtonEnabled,e.removeBehavior="select-previous-tab",e.insertBehavior="select-tab-if-needed",e.tabMoved.connect(this._onTabMoved,this),e.currentChanged.connect(this._onCurrentChanged,this),e.tabCloseRequested.connect(this._onTabCloseRequested,this),e.tabDetachRequested.connect(this._onTabDetachRequested,this),e.tabActivateRequested.connect(this._onTabActivateRequested,this),e.addRequested.connect(this._onTabAddRequested,this),e}_createHandle(){return this._renderer.createHandle()}_onTabMoved(){z.postMessage(this,J.LayoutModified)}_onCurrentChanged(e,t){let{previousTitle:i,currentTitle:s}=t;i&&i.owner.hide(),s&&s.owner.show(),(se.IS_EDGE||se.IS_IE)&&z.flush(),z.postMessage(this,J.LayoutModified)}_onTabAddRequested(e){this._addRequested.emit(e)}_onTabActivateRequested(e,t){t.title.owner.activate()}_onTabCloseRequested(e,t){t.title.owner.close()}_onTabDetachRequested(e,t){if(this._drag)return;e.releaseMouse();let{title:i,tab:s,clientX:r,clientY:o,offset:a}=t,l=new Le.MimeData,u=()=>i.owner;l.setData("application/vnd.lumino.widget-factory",u);let d=s.cloneNode(!0);a&&(d.style.top=`-${a.y}px`,d.style.left=`-${a.x}px`),this._drag=new le({document:this._document,mimeData:l,dragImage:d,proposedAction:"move",supportedActions:"move",source:this}),s.classList.add("lm-mod-hidden");let c=()=>{this._drag=null,s.classList.remove("lm-mod-hidden")};this._drag.start(r,o).then(c)}};(function(n){class e{constructor(){this._timer=-1,this._hidden=!0,this.node=document.createElement("div"),this.node.classList.add("lm-DockPanel-overlay"),this.node.classList.add("lm-mod-hidden"),this.node.style.position="absolute",this.node.style.contain="strict"}show(s){let r=this.node.style;r.top=`${s.top}px`,r.left=`${s.left}px`,r.right=`${s.right}px`,r.bottom=`${s.bottom}px`,clearTimeout(this._timer),this._timer=-1,this._hidden&&(this._hidden=!1,this.node.classList.remove("lm-mod-hidden"))}hide(s){if(!this._hidden){if(s<=0){clearTimeout(this._timer),this._timer=-1,this._hidden=!0,this.node.classList.add("lm-mod-hidden");return}this._timer===-1&&(this._timer=window.setTimeout(()=>{this._timer=-1,this._hidden=!0,this.node.classList.add("lm-mod-hidden")},s))}}}n.Overlay=e;class t{createTabBar(s){let r=new Ce({document:s});return r.addClass("lm-DockPanel-tabBar"),r}createHandle(){let s=document.createElement("div");return s.className="lm-DockPanel-handle",s}}n.Renderer=t,n.defaultRenderer=new t})(Fe||(Fe={}));var J;(function(n){n.GOLDEN_RATIO=.618,n.DEFAULT_EDGES={top:12,right:40,bottom:40,left:40},n.LayoutModified=new Pe("layout-modified"),n.isGeneratedTabBarProperty=new oe({name:"isGeneratedTabBar",create:()=>!1});function e(s){if(s.isEmpty)return{main:null};let r=Array.from(s.widgets()),o=s.selectedWidgets().next().value,a=o?r.indexOf(o):-1;return{main:{type:"tab-area",widgets:r,currentIndex:a}}}n.createSingleDocumentConfig=e;function t(s,r,o,a){if(!$.hitTest(s.node,r,o))return{zone:"invalid",target:null};let l=s.layout;if(l.isEmpty)return{zone:"root-all",target:null};if(s.mode==="multiple-document"){let g=s.node.getBoundingClientRect(),b=r-g.left+1,y=o-g.top+1,M=g.right-r,S=g.bottom-o;switch(Math.min(y,M,S,b)){case y:if(y<a.top)return{zone:"root-top",target:null};break;case M:if(M<a.right)return{zone:"root-right",target:null};break;case S:if(S<a.bottom)return{zone:"root-bottom",target:null};break;case b:if(b<a.left)return{zone:"root-left",target:null};break;default:throw"unreachable"}}let u=l.hitTestTabAreas(r,o);if(!u)return{zone:"invalid",target:null};if(s.mode==="single-document")return{zone:"widget-all",target:u};let d=u.x-u.left+1,c=u.y-u.top+1,f=u.left+u.width-u.x,h=u.top+u.height-u.y,m=u.tabBar.node.getBoundingClientRect().height;if(c<m)return{zone:"widget-tab",target:u};let p=Math.round(u.width/3),_=Math.round(u.height/3);if(d>p&&f>p&&c>_&&h>_)return{zone:"widget-all",target:u};d/=p,c/=_,f/=p,h/=_;let w=Math.min(d,c,f,h),v;switch(w){case d:v="widget-left";break;case c:v="widget-top";break;case f:v="widget-right";break;case h:v="widget-bottom";break;default:throw"unreachable"}return{zone:v,target:u}}n.findDropTarget=t;function i(s){return s.titles.length===0?null:s.currentTitle?s.currentTitle.owner:s.titles[s.titles.length-1].owner}n.getDropRef=i})(J||(J={}));var at=class n extends Be{constructor(e={}){super(e),this._dirty=!1,this._rowSpacing=4,this._columnSpacing=4,this._items=[],this._rowStarts=[],this._columnStarts=[],this._rowSizers=[new Me],this._columnSizers=[new Me],this._box=null,e.rowCount!==void 0&&te.reallocSizers(this._rowSizers,e.rowCount),e.columnCount!==void 0&&te.reallocSizers(this._columnSizers,e.columnCount),e.rowSpacing!==void 0&&(this._rowSpacing=te.clampValue(e.rowSpacing)),e.columnSpacing!==void 0&&(this._columnSpacing=te.clampValue(e.columnSpacing))}dispose(){for(let e of this._items){let t=e.widget;e.dispose(),t.dispose()}this._box=null,this._items.length=0,this._rowStarts.length=0,this._rowSizers.length=0,this._columnStarts.length=0,this._columnSizers.length=0,super.dispose()}get rowCount(){return this._rowSizers.length}set rowCount(e){e!==this.rowCount&&(te.reallocSizers(this._rowSizers,e),this.parent&&this.parent.fit())}get columnCount(){return this._columnSizers.length}set columnCount(e){e!==this.columnCount&&(te.reallocSizers(this._columnSizers,e),this.parent&&this.parent.fit())}get rowSpacing(){return this._rowSpacing}set rowSpacing(e){e=te.clampValue(e),this._rowSpacing!==e&&(this._rowSpacing=e,this.parent&&this.parent.fit())}get columnSpacing(){return this._columnSpacing}set columnSpacing(e){e=te.clampValue(e),this._columnSpacing!==e&&(this._columnSpacing=e,this.parent&&this.parent.fit())}rowStretch(e){let t=this._rowSizers[e];return t?t.stretch:-1}setRowStretch(e,t){let i=this._rowSizers[e];i&&(t=te.clampValue(t),i.stretch!==t&&(i.stretch=t,this.parent&&this.parent.update()))}columnStretch(e){let t=this._columnSizers[e];return t?t.stretch:-1}setColumnStretch(e,t){let i=this._columnSizers[e];i&&(t=te.clampValue(t),i.stretch!==t&&(i.stretch=t,this.parent&&this.parent.update()))}*[Symbol.iterator](){for(let e of this._items)yield e.widget}addWidget(e){A.ArrayExt.findFirstIndex(this._items,i=>i.widget===e)===-1&&(this._items.push(new Oe(e)),this.parent&&this.attachWidget(e))}removeWidget(e){let t=A.ArrayExt.findFirstIndex(this._items,s=>s.widget===e);if(t===-1)return;let i=A.ArrayExt.removeAt(this._items,t);this.parent&&this.detachWidget(e),i.dispose()}init(){super.init();for(let e of this)this.attachWidget(e)}attachWidget(e){this.parent.isAttached&&z.sendMessage(e,D.Msg.BeforeAttach),this.parent.node.appendChild(e.node),this.parent.isAttached&&z.sendMessage(e,D.Msg.AfterAttach),this.parent.fit()}detachWidget(e){this.parent.isAttached&&z.sendMessage(e,D.Msg.BeforeDetach),this.parent.node.removeChild(e.node),this.parent.isAttached&&z.sendMessage(e,D.Msg.AfterDetach),this.parent.fit()}onBeforeShow(e){super.onBeforeShow(e),this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e),this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){this.parent.isVisible&&this._update(e.width,e.height)}onUpdateRequest(e){this.parent.isVisible&&this._update(-1,-1)}onFitRequest(e){this.parent.isAttached&&this._fit()}_fit(){for(let l=0,u=this.rowCount;l<u;++l)this._rowSizers[l].minSize=0;for(let l=0,u=this.columnCount;l<u;++l)this._columnSizers[l].minSize=0;let e=this._items.filter(l=>!l.isHidden);for(let l=0,u=e.length;l<u;++l)e[l].fit();let t=this.rowCount-1,i=this.columnCount-1;e.sort(te.rowSpanCmp);for(let l=0,u=e.length;l<u;++l){let d=e[l],c=n.getCellConfig(d.widget),f=Math.min(c.row,t),h=Math.min(c.row+c.rowSpan-1,t);te.distributeMin(this._rowSizers,f,h,d.minHeight)}e.sort(te.columnSpanCmp);for(let l=0,u=e.length;l<u;++l){let d=e[l],c=n.getCellConfig(d.widget),f=Math.min(c.column,i),h=Math.min(c.column+c.columnSpan-1,i);te.distributeMin(this._columnSizers,f,h,d.minWidth)}if(this.fitPolicy==="set-no-constraint"){z.sendMessage(this.parent,D.Msg.UpdateRequest);return}let s=t*this._rowSpacing,r=i*this._columnSpacing;for(let l=0,u=this.rowCount;l<u;++l)s+=this._rowSizers[l].minSize;for(let l=0,u=this.columnCount;l<u;++l)r+=this._columnSizers[l].minSize;let o=this._box=$.boxSizing(this.parent.node);r+=o.horizontalSum,s+=o.verticalSum;let a=this.parent.node.style;a.minWidth=`${r}px`,a.minHeight=`${s}px`,this._dirty=!0,this.parent.parent&&z.sendMessage(this.parent.parent,D.Msg.FitRequest),this._dirty&&z.sendMessage(this.parent,D.Msg.UpdateRequest)}_update(e,t){this._dirty=!1,e<0&&(e=this.parent.node.offsetWidth),t<0&&(t=this.parent.node.offsetHeight),this._box||(this._box=$.boxSizing(this.parent.node));let i=this._box.paddingTop,s=this._box.paddingLeft,r=e-this._box.horizontalSum,o=t-this._box.verticalSum,a=this.rowCount-1,l=this.columnCount-1,u=a*this._rowSpacing,d=l*this._columnSpacing;ue.calc(this._rowSizers,Math.max(0,o-u)),ue.calc(this._columnSizers,Math.max(0,r-d));for(let c=0,f=i,h=this.rowCount;c<h;++c)this._rowStarts[c]=f,f+=this._rowSizers[c].size+this._rowSpacing;for(let c=0,f=s,h=this.columnCount;c<h;++c)this._columnStarts[c]=f,f+=this._columnSizers[c].size+this._columnSpacing;for(let c=0,f=this._items.length;c<f;++c){let h=this._items[c];if(h.isHidden)continue;let m=n.getCellConfig(h.widget),p=Math.min(m.row,a),_=Math.min(m.column,l),w=Math.min(m.row+m.rowSpan-1,a),v=Math.min(m.column+m.columnSpan-1,l),g=this._columnStarts[_],b=this._rowStarts[p],y=this._columnStarts[v]+this._columnSizers[v].size-g,M=this._rowStarts[w]+this._rowSizers[w].size-b;h.update(g,b,y,M)}}};(function(n){function e(i){return te.cellConfigProperty.get(i)}n.getCellConfig=e;function t(i,s){te.cellConfigProperty.set(i,te.normalizeConfig(s))}n.setCellConfig=t})(at||(at={}));var te;(function(n){n.cellConfigProperty=new oe({name:"cellConfig",create:()=>({row:0,column:0,rowSpan:1,columnSpan:1}),changed:a});function e(l){let u=Math.max(0,Math.floor(l.row||0)),d=Math.max(0,Math.floor(l.column||0)),c=Math.max(1,Math.floor(l.rowSpan||0)),f=Math.max(1,Math.floor(l.columnSpan||0));return{row:u,column:d,rowSpan:c,columnSpan:f}}n.normalizeConfig=e;function t(l){return Math.max(0,Math.floor(l))}n.clampValue=t;function i(l,u){let d=n.cellConfigProperty.get(l.widget),c=n.cellConfigProperty.get(u.widget);return d.rowSpan-c.rowSpan}n.rowSpanCmp=i;function s(l,u){let d=n.cellConfigProperty.get(l.widget),c=n.cellConfigProperty.get(u.widget);return d.columnSpan-c.columnSpan}n.columnSpanCmp=s;function r(l,u){for(u=Math.max(1,Math.floor(u));l.length<u;)l.push(new Me);l.length>u&&(l.length=u)}n.reallocSizers=r;function o(l,u,d,c){if(d<u)return;if(u===d){let m=l[u];m.minSize=Math.max(m.minSize,c);return}let f=0;for(let m=u;m<=d;++m)f+=l[m].minSize;if(f>=c)return;let h=(c-f)/(d-u+1);for(let m=u;m<=d;++m)l[m].minSize+=h}n.distributeMin=o;function a(l){l.parent&&l.parent.layout instanceof at&&l.parent.fit()}})(te||(te={}));var bt=class n extends D{constructor(e={}){super({node:vt.createNode()}),this._activeIndex=-1,this._tabFocusIndex=0,this._menus=[],this._childMenu=null,this._overflowMenu=null,this._menuItemSizes=[],this._overflowIndex=-1,this.addClass("lm-MenuBar"),this.setFlag(D.Flag.DisallowLayout),this.renderer=e.renderer||n.defaultRenderer,this._forceItemsPosition=e.forceItemsPosition||{forceX:!0,forceY:!0},this._overflowMenuOptions=e.overflowMenuOptions||{isVisible:!0}}dispose(){this._closeChildMenu(),this._menus.length=0,super.dispose()}get childMenu(){return this._childMenu}get overflowIndex(){return this._overflowIndex}get overflowMenu(){return this._overflowMenu}get contentNode(){return this.node.getElementsByClassName("lm-MenuBar-content")[0]}get activeMenu(){return this._menus[this._activeIndex]||null}set activeMenu(e){this.activeIndex=e?this._menus.indexOf(e):-1}get activeIndex(){return this._activeIndex}set activeIndex(e){(e<0||e>=this._menus.length)&&(e=-1),e>-1&&this._menus[e].items.length===0&&(e=-1),this._activeIndex!==e&&(this._activeIndex=e,this.update())}get menus(){return this._menus}openActiveMenu(){this._activeIndex!==-1&&(this._openChildMenu(),this._childMenu&&(this._childMenu.activeIndex=-1,this._childMenu.activateNextItem()))}addMenu(e,t=!0){this.insertMenu(this._menus.length,e,t)}insertMenu(e,t,i=!0){this._closeChildMenu();let s=this._menus.indexOf(t),r=Math.max(0,Math.min(e,this._menus.length));if(s===-1){A.ArrayExt.insert(this._menus,r,t),t.addClass("lm-MenuBar-menu"),t.aboutToClose.connect(this._onMenuAboutToClose,this),t.menuRequested.connect(this._onMenuMenuRequested,this),t.title.changed.connect(this._onTitleChanged,this),i&&this.update();return}r===this._menus.length&&r--,s!==r&&(A.ArrayExt.move(this._menus,s,r),i&&this.update())}removeMenu(e,t=!0){this.removeMenuAt(this._menus.indexOf(e),t)}removeMenuAt(e,t=!0){this._closeChildMenu();let i=A.ArrayExt.removeAt(this._menus,e);i&&(i.aboutToClose.disconnect(this._onMenuAboutToClose,this),i.menuRequested.disconnect(this._onMenuMenuRequested,this),i.title.changed.disconnect(this._onTitleChanged,this),i.removeClass("lm-MenuBar-menu"),t&&this.update())}clearMenus(){if(this._menus.length!==0){this._closeChildMenu();for(let e of this._menus)e.aboutToClose.disconnect(this._onMenuAboutToClose,this),e.menuRequested.disconnect(this._onMenuMenuRequested,this),e.title.changed.disconnect(this._onTitleChanged,this),e.removeClass("lm-MenuBar-menu");this._menus.length=0,this.update()}}handleEvent(e){switch(e.type){case"keydown":this._evtKeyDown(e);break;case"mousedown":this._evtMouseDown(e);break;case"mousemove":this._evtMouseMove(e);break;case"focusout":this._evtFocusOut(e);break;case"contextmenu":e.preventDefault(),e.stopPropagation();break}}onBeforeAttach(e){this.node.addEventListener("keydown",this),this.node.addEventListener("mousedown",this),this.node.addEventListener("mousemove",this),this.node.addEventListener("focusout",this),this.node.addEventListener("contextmenu",this)}onAfterDetach(e){this.node.removeEventListener("keydown",this),this.node.removeEventListener("mousedown",this),this.node.removeEventListener("mousemove",this),this.node.removeEventListener("focusout",this),this.node.removeEventListener("contextmenu",this),this._closeChildMenu()}onActivateRequest(e){this.isAttached&&this._focusItemAt(0)}onResize(e){this.update(),super.onResize(e)}onUpdateRequest(e){var t;let i=this._menus,s=this.renderer,r=this._activeIndex,o=this._tabFocusIndex>=0&&this._tabFocusIndex<i.length?this._tabFocusIndex:0,a=this._overflowIndex>-1?this._overflowIndex:i.length,l=0,u=!1;a=this._overflowMenu!==null?a-1:a;let d=new Array(a);for(let c=0;c<a;++c)d[c]=s.renderItem({title:i[c].title,active:c===r,tabbable:c===o,disabled:i[c].items.length===0,onfocus:()=>{this._tabFocusIndex=c,this.activeIndex=c}}),l+=this._menuItemSizes[c],i[c].title.label===this._overflowMenuOptions.title&&(u=!0,a--);if(this._overflowMenuOptions.isVisible){if(this._overflowIndex>-1&&!u){if(this._overflowMenu===null){let c=(t=this._overflowMenuOptions.title)!==null&&t!==void 0?t:"...";this._overflowMenu=new ve({commands:new he}),this._overflowMenu.title.label=c,this._overflowMenu.title.mnemonic=0,this.addMenu(this._overflowMenu,!1)}for(let c=i.length-2;c>=a;c--){let f=this.menus[c];f.title.mnemonic=0,this._overflowMenu.insertItem(0,{type:"submenu",submenu:f}),this.removeMenu(f,!1)}d[a]=s.renderItem({title:this._overflowMenu.title,active:a===r&&i[a].items.length!==0,tabbable:a===o,disabled:i[a].items.length===0,onfocus:()=>{this._tabFocusIndex=a,this.activeIndex=a}}),a++}else if(this._overflowMenu!==null){let c=this._overflowMenu.items,f=this.node.offsetWidth,h=this._overflowMenu.items.length;for(let m=0;m<h;++m){let p=i.length-1-m;if(f-l>this._menuItemSizes[p]){let _=c[0].submenu;this._overflowMenu.removeItemAt(0),this.insertMenu(a,_,!1),d[a]=s.renderItem({title:_.title,active:!1,tabbable:a===o,disabled:i[a].items.length===0,onfocus:()=>{this._tabFocusIndex=a,this.activeIndex=a}}),a++}}this._overflowMenu.items.length===0&&(this.removeMenu(this._overflowMenu,!1),d.pop(),this._overflowMenu=null,this._overflowIndex=-1)}}fe.render(d,this.contentNode),this._updateOverflowIndex()}_updateOverflowIndex(){if(!this._overflowMenuOptions.isVisible)return;let e=this.contentNode.childNodes,t=this.node.offsetWidth,i=0,s=-1,r=e.length;if(this._menuItemSizes.length==0)for(let o=0;o<r;o++){let a=e[o];i+=a.offsetWidth,this._menuItemSizes.push(a.offsetWidth),i>t&&s===-1&&(s=o)}else for(let o=0;o<this._menuItemSizes.length;o++)if(i+=this._menuItemSizes[o],i>t){s=o;break}this._overflowIndex=s}_evtKeyDown(e){let t=e.keyCode;if(t===9){this.activeIndex=-1;return}if(e.preventDefault(),e.stopPropagation(),t===13||t===32||t===38||t===40){if(this.activeIndex=this._tabFocusIndex,this.activeIndex!==this._tabFocusIndex)return;this.openActiveMenu();return}if(t===27){this._closeChildMenu(),this._focusItemAt(this.activeIndex);return}if(t===37||t===39){let o=t===37?-1:1,a=this._tabFocusIndex+o,l=this._menus.length;for(let u=0;u<l;u++){let d=(l+a+o*u)%l;if(this._menus[d].items.length){this._focusItemAt(d);return}}return}let i=Ke().keyForKeydownEvent(e);if(!i)return;let s=this._activeIndex+1,r=vt.findMnemonic(this._menus,i,s);r.index!==-1&&!r.multiple?(this.activeIndex=r.index,this.openActiveMenu()):r.index!==-1?(this.activeIndex=r.index,this._focusItemAt(this.activeIndex)):r.auto!==-1&&(this.activeIndex=r.auto,this._focusItemAt(this.activeIndex))}_evtMouseDown(e){if(!$.hitTest(this.node,e.clientX,e.clientY))return;e.stopPropagation(),e.stopImmediatePropagation();let t=A.ArrayExt.findFirstIndex(this.contentNode.children,i=>$.hitTest(i,e.clientX,e.clientY));if(t===-1){this._closeChildMenu();return}if(e.button===0)if(this._childMenu)this._closeChildMenu(),this.activeIndex=t;else{e.preventDefault();let i=this._positionForMenu(t);ve.saveWindowData(),this.activeIndex=t,this._openChildMenu(i)}}_evtMouseMove(e){let t=A.ArrayExt.findFirstIndex(this.contentNode.children,s=>$.hitTest(s,e.clientX,e.clientY));if(t===this._activeIndex||t===-1&&this._childMenu)return;let i=t>=0&&this._childMenu?this._positionForMenu(t):null;ve.saveWindowData(),this.activeIndex=t,i&&this._openChildMenu(i)}_positionForMenu(e){let t=this.contentNode.children[e],{left:i,bottom:s}=t.getBoundingClientRect();return{top:s,left:i}}_evtFocusOut(e){!this._childMenu&&!this.node.contains(e.relatedTarget)&&(this.activeIndex=-1)}_focusItemAt(e){let t=this.contentNode.childNodes[e];t&&t.focus()}_openChildMenu(e={}){let t=this.activeMenu;if(!t){this._closeChildMenu();return}let i=this._childMenu;if(i===t)return;this._childMenu=t,i?i.close():document.addEventListener("mousedown",this,!0),this._tabFocusIndex=this.activeIndex,z.sendMessage(this,D.Msg.UpdateRequest);let{left:s,top:r}=e;(typeof s>"u"||typeof r>"u")&&({left:s,top:r}=this._positionForMenu(this._activeIndex)),i||this.addClass("lm-mod-active"),t.items.length>0&&t.open(s,r,this._forceItemsPosition)}_closeChildMenu(){if(!this._childMenu)return;this.removeClass("lm-mod-active"),document.removeEventListener("mousedown",this,!0);let e=this._childMenu;this._childMenu=null,e.close(),this.activeIndex=-1}_onMenuAboutToClose(e){e===this._childMenu&&(this.removeClass("lm-mod-active"),document.removeEventListener("mousedown",this,!0),this._childMenu=null,this.activeIndex=-1)}_onMenuMenuRequested(e,t){if(e!==this._childMenu)return;let i=this._activeIndex,s=this._menus.length;switch(t){case"next":this.activeIndex=i===s-1?0:i+1;break;case"previous":this.activeIndex=i===0?s-1:i-1;break}this.openActiveMenu()}_onTitleChanged(){this.update()}};(function(n){class e{renderItem(i){let s=this.createItemClass(i),r=this.createItemDataset(i),o=this.createItemARIA(i);return q.li({className:s,dataset:r,...i.disabled?{}:{tabindex:i.tabbable?"0":"-1"},onfocus:i.onfocus,...o},this.renderIcon(i),this.renderLabel(i))}renderIcon(i){let s=this.createIconClass(i);return q.div({className:s},i.title.icon,i.title.iconLabel)}renderLabel(i){let s=this.formatLabel(i);return q.div({className:"lm-MenuBar-itemLabel"},s)}createItemClass(i){let s="lm-MenuBar-item";return i.title.className&&(s+=` ${i.title.className}`),i.active&&!i.disabled&&(s+=" lm-mod-active"),s}createItemDataset(i){return i.title.dataset}createItemARIA(i){return{role:"menuitem","aria-haspopup":"true","aria-disabled":i.disabled?"true":"false"}}createIconClass(i){let s="lm-MenuBar-itemIcon",r=i.title.iconClass;return r?`${s} ${r}`:s}formatLabel(i){let{label:s,mnemonic:r}=i.title;if(r<0||r>=s.length)return s;let o=s.slice(0,r),a=s.slice(r+1),l=s[r],u=q.span({className:"lm-MenuBar-itemMnemonic"},l);return[o,u,a]}}n.Renderer=e,n.defaultRenderer=new e})(bt||(bt={}));var vt;(function(n){function e(){let i=document.createElement("div"),s=document.createElement("ul");return s.className="lm-MenuBar-content",i.appendChild(s),s.setAttribute("role","menubar"),i}n.createNode=e;function t(i,s,r){let o=-1,a=-1,l=!1,u=s.toUpperCase();for(let d=0,c=i.length;d<c;++d){let f=(d+r)%c,h=i[f].title;if(h.label.length===0)continue;let m=h.mnemonic;if(m>=0&&m<h.label.length){h.label[m].toUpperCase()===u&&(o===-1?o=f:l=!0);continue}a===-1&&h.label[0].toUpperCase()===u&&(a=f)}return{index:o,multiple:l,auto:a}}n.findMnemonic=t})(vt||(vt={}));var Vt;(function(n){function e(){let i=document.createElement("div"),s=document.createElement("div"),r=document.createElement("div"),o=document.createElement("div"),a=document.createElement("div");return s.className="lm-ScrollBar-button",r.className="lm-ScrollBar-button",s.dataset.action="decrement",r.dataset.action="increment",o.className="lm-ScrollBar-track",a.className="lm-ScrollBar-thumb",o.appendChild(a),i.appendChild(s),i.appendChild(o),i.appendChild(r),i}n.createNode=e;function t(i,s){return i.thumbNode.contains(s)?"thumb":i.trackNode.contains(s)?"track":i.decrementNode.contains(s)?"decrement":i.incrementNode.contains(s)?"increment":null}n.findPart=t})(Vt||(Vt={}));var zt=class extends Xe{constructor(e={}){super(e),this._dirty=!1,this._items=[],this._box=null,this._hiddenMode=e.hiddenMode!==void 0?e.hiddenMode:D.HiddenMode.Display}get hiddenMode(){return this._hiddenMode}set hiddenMode(e){this._hiddenMode!==e&&(this._hiddenMode=e,this.widgets.length>1&&this.widgets.forEach(t=>{t.hiddenMode=this._hiddenMode}))}dispose(){for(let e of this._items)e.dispose();this._box=null,this._items.length=0,super.dispose()}attachWidget(e,t){this._hiddenMode===D.HiddenMode.Scale&&this._items.length>0?(this._items.length===1&&(this.widgets[0].hiddenMode=D.HiddenMode.Scale),t.hiddenMode=D.HiddenMode.Scale):t.hiddenMode=D.HiddenMode.Display,A.ArrayExt.insert(this._items,e,new Oe(t)),this.parent.isAttached&&z.sendMessage(t,D.Msg.BeforeAttach),this.parent.node.appendChild(t.node),this.parent.isAttached&&z.sendMessage(t,D.Msg.AfterAttach),this.parent.fit()}moveWidget(e,t,i){A.ArrayExt.move(this._items,e,t),this.parent.update()}detachWidget(e,t){let i=A.ArrayExt.removeAt(this._items,e);this.parent.isAttached&&z.sendMessage(t,D.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.isAttached&&z.sendMessage(t,D.Msg.AfterDetach),i.widget.node.style.zIndex="",this._hiddenMode===D.HiddenMode.Scale&&(t.hiddenMode=D.HiddenMode.Display,this._items.length===1&&(this._items[0].widget.hiddenMode=D.HiddenMode.Display)),i.dispose(),this.parent.fit()}onBeforeShow(e){super.onBeforeShow(e),this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e),this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){this.parent.isVisible&&this._update(e.width,e.height)}onUpdateRequest(e){this.parent.isVisible&&this._update(-1,-1)}onFitRequest(e){this.parent.isAttached&&this._fit()}_fit(){let e=0,t=0;for(let r=0,o=this._items.length;r<o;++r){let a=this._items[r];a.isHidden||(a.fit(),e=Math.max(e,a.minWidth),t=Math.max(t,a.minHeight))}let i=this._box=$.boxSizing(this.parent.node);e+=i.horizontalSum,t+=i.verticalSum;let s=this.parent.node.style;s.minWidth=`${e}px`,s.minHeight=`${t}px`,this._dirty=!0,this.parent.parent&&z.sendMessage(this.parent.parent,D.Msg.FitRequest),this._dirty&&z.sendMessage(this.parent,D.Msg.UpdateRequest)}_update(e,t){this._dirty=!1;let i=0;for(let l=0,u=this._items.length;l<u;++l)i+=+!this._items[l].isHidden;if(i===0)return;e<0&&(e=this.parent.node.offsetWidth),t<0&&(t=this.parent.node.offsetHeight),this._box||(this._box=$.boxSizing(this.parent.node));let s=this._box.paddingTop,r=this._box.paddingLeft,o=e-this._box.horizontalSum,a=t-this._box.verticalSum;for(let l=0,u=this._items.length;l<u;++l){let d=this._items[l];d.isHidden||(d.widget.node.style.zIndex=`${l}`,d.update(r,s,o,a))}}};var $t;(function(n){function e(t){return t.layout||new zt}n.createLayout=e})($t||($t={}));var Kt;(function(n){function e(r){return i[r]}n.orientationFromPlacement=e;function t(r){return s[r]}n.directionFromPlacement=t;let i={top:"horizontal",left:"vertical",right:"vertical",bottom:"horizontal"},s={top:"top-to-bottom",left:"left-to-right",right:"right-to-left",bottom:"bottom-to-top"}})(Kt||(Kt={}));var lt=ye(Se(),1);import Ci from"lodash/uniqBy";import{isEqual as Ti}from"lodash";var Ut='::slotted(.workspace-master-widget){--status-bar--display:none;--config-button-icon--content:var(--open-settings-button--content,"\\1F527")!important;}.workspace-master-widget[settings]{--config-button-icon--content:var(--close-settings-button--content,"\\1F527")!important;}.widget-maximize:not(.workspace-master-widget){--config-button-icon--content:var(--open-settings-button--content,"\\1F527")!important;}.widget-maximize[settings]:not(.workspace-master-widget){--config-button-icon--content:var(--close-settings-button--content,"\\1F527")!important;}.lm-DockPanel-widget{border:1px solid#eaeaea;border-width:0px!important;min-width:300px;min-height:200px;}.workspace-master-widget:not{--config-button-icon--content:""!important;}.context-menu>perspective-viewer.context-focus{opacity:1;filter:none;}.context-menu>perspective-viewer{filter:saturate(0);}.context-menu>perspective-viewer>*{pointer-events:none;}:host{--bookmarks--mask-image:url("../svg/bookmark-icon.svg");}::slotted(perspective-viewer){flex:1;position:relative;display:block;align-items:center;justify-content:center;flex-direction:column;width:100%;height:100%;overflow:visible!important;--close-button--display:flex;}::slotted(perspective-viewer.bookmarks-container:not([settings])){--status-ok-icon--mask-image:var(--bookmarks--mask-image)!important;--status-ok-icon--border-color:var(--inactive--color);--status-ok-icon--hover--border-color:var(--icon--color);--status-ok-icon--hover--background-color:var(--icon--color);--status-ok-icon--hover--color:var(--plugin--background);--status-ok-icon--cursor:pointer;--status-indicator--pointer-events:all;}::slotted(perspective-viewer::part(status-indicator)){background-color:red;border:1px solid red;}::slotted(perspective-viewer:not(.widget-maximize)){--status-bar--padding:0 36px 0 8px;}:host-context(.lm-mod-override-cursor){cursor:grabbing!important;}:host-context(.lm-mod-override-cursor) ::slotted(perspective-viewer),.context-menu ::slotted(perspective-viewer){--override-content-pointer-events:none;}.lm-Menu{z-index:10000;position:absolute;white-space:nowrap;overflow-x:hidden;overflow-y:auto;outline:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}.lm-Menu-content{margin:0;padding:0;display:table;list-style-type:none;}.lm-Menu-item{display:table-row;}.lm-Menu-item.lm-mod-hidden,.lm-Menu-item.lm-mod-collapsed{display:none!important;}.lm-Menu-itemIcon,.lm-Menu-itemSubmenuIcon{display:table-cell;text-align:center;}.lm-Menu-itemLabel{display:table-cell;text-align:left;}.lm-Menu-itemShortcut{display:table-cell;text-align:right;}.lm-Menu{font-size:12px;padding:8px;background-color:var(--plugin--background);color:var(--icon--color);border:1px solid var(--inactive--color);border-radius:3px;max-width:350px;top:0;left:0;}.lm-Menu.perspective-workspace-menu .lm-Menu-item{padding-left:37px!important;min-width:var(--min-width);}.lm-Menu-item.lm-mod-active{background-color:var(--icon--color);color:var(--plugin--background);}.lm-Menu-item.lm-mod-disabled{opacity:0.5;}.lm-Menu-itemIcon{width:24px;height:12px;margin-right:4px;}.lm-Menu-itemLabel{flex:1 1;padding:4px 2px 4px 2px;}.lm-Menu-itemMnemonic{text-decoration:underline;}.lm-Menu-itemShortcut{padding:4px 0px;}.lm-Menu-itemSubmenuIcon{width:24px;height:18px;}.lm-Menu-item{display:flex;align-items:center;outline:none;margin:0 -8px;padding:0 8px;}.lm-Menu-item[data-type="separator"]>div{padding:0;height:9px;}.lm-Menu-item[data-type="separator"]>div::after{content:"";display:block;position:relative;top:4px;border-top:1px solid;}.lm-MenuBar-menu{transform:translateY(-1px);}.lm-MenuBar-item{padding:10px 32px;border-left:1px solid transparent;border-right:1px solid transparent;color:#737373!important;}.lm-MenuBar-item.lm-mod-active{background:rgba(0,0,0,0.2);}.lm-MenuBar.lm-mod-active .lm-MenuBar-item.lm-mod-active{z-index:10001;background:rgba(0,0,0,0.2);}.lm-Menu-itemIcon:before{content:attr(content);font-family:"ui-monospace","SFMono-Regular","SF Mono","Menlo","Consolas","Liberation Mono",monospace;}[data-type="submenu"] .lm-Menu-itemSubmenuIcon:before{content:">";font-family:"ui-monospace","SFMono-Regular","SF Mono","Menlo","Consolas","Liberation Mono",monospace;height:18px;}.lm-mod-drag-image.lm-TabBar-tab{display:none;}';var Xt=ye(Se(),1);var yt={Config:"config",Label:"label"},wi="untitled",wt=class extends Ce.Renderer{maximized;constructor(e){super(),this.maximized=e}renderLabel(e){return q.span({className:"lm-TabBar-tabLabel",id:yt.Label},e.title.label||wi)}renderInert(){return q.div()}renderTab(e,t){let i=e.title.caption,s=this.createTabKey(e),r=this.createTabStyle(e),o=this.createTabClass(e),a=this.createTabDataset(e),l=[];return t?(e.title.owner.setCallback(t),e.title.owner.addClass("bookmarks-container")):(e.title.owner.setCallback(void 0),e.title.owner.removeClass("bookmarks-container")),q.li({key:s,className:o,title:i,style:r,dataset:a})}};var qe=class extends ve{_host;_workspace;init_overlay;constructor(e,t,i){i.renderer=new At,super(i),this._host=e,this._workspace=t,this._openChildMenu=this._overrideOpenChildMenu.bind(this)}open(e,t,i){i||={},i.host=this._host;let s=this._workspace.getBoundingClientRect();super.open(e,t,i);let r=this.node.getBoundingClientRect();r.height+t>s.height&&r.height+t<document.documentElement.clientHeight&&(this.node.style.top=`-${r.height}`),r.width+e>s.width&&(r.width+e<document.documentElement.clientWidth?this.node.style.left=`-${r.width+e-s.width}px`:this.node.style.left=`-${document.documentElement.clientWidth-s.width}px`)}_overrideOpenChildMenu(e=!1){let t=this,i=this.activeItem;if(!i||i.type!=="submenu"||!i.submenu){t._closeChildMenu();return}let s=i.submenu;if(s===t._childMenu)return;ve.saveWindowData(),t._closeChildMenu(),t._childMenu=s,t._childIndex=t._activeIndex,s._parentMenu=this,z.sendMessage(this,D.Msg.UpdateRequest);let r=this.contentNode.children[t._activeIndex];yi(s,r,t._host),e&&(s.activeIndex=-1,s.activateNextItem()),s.activate()}},At=class extends ve.Renderer{formatLabel(e){let{label:t,mnemonic:i}=e.item;if(i<0||i>=t.length)return t;let s=t.slice(0,i),r=t.slice(i+1),o=t[i],a=q.span({className:"lm-Menu-itemMnemonic p-Menu-itemMnemonic"},o);return[s,a,r]}renderLabel(e){let t=this.formatLabel(e);return q.div({className:"lm-Menu-itemLabel p-Menu-itemLabel"},t)}renderSubmenu(e){return q.div({className:"lm-Menu-itemSubmenuIcon p-Menu-itemSubmenuIcon"})}renderItem(e){let t=this.createItemClass(e),i=this.createItemDataset(e),s=this.createItemARIA(e);return q.li({className:t,dataset:i,tabindex:"0",onfocus:e.onfocus,...s},this.renderLabel(e),this.renderShortcut(e),this.renderSubmenu(e))}};function yi(n,e,t){let i=Mi(),s=i.pageXOffset,r=i.pageYOffset,o=i.clientWidth,a=i.clientHeight,l=t.host.getBoundingClientRect(),u=l.x,d=l.y;z.sendMessage(n,D.Msg.UpdateRequest);let c=a,f=n.node,h=f.style;h.opacity="0",h.maxHeight=`${c}px`,D.attach(n,t);let{width:m,height:p}=f.getBoundingClientRect(),_=$.boxSizing(n.node),w=e.getBoundingClientRect(),v=w.right-jt-u;v+m>s+o+u&&(v=w.left+jt-m);let g=w.top-_.borderTop-_.paddingTop-d;g+p>r+a+d&&(g=w.bottom+_.borderBottom+_.paddingBottom-p),h.transform=`translate(${Math.max(0,v)}px, ${Math.max(0,g)}px`,h.opacity="1"}var jt=3,xi=null,Yt=0;function Mi(){return Yt>0?(Yt--,xi):ki()}function ki(){return{pageXOffset:window.pageXOffset,pageYOffset:window.pageYOffset,clientWidth:document.documentElement.clientWidth,clientHeight:document.documentElement.clientHeight}}var xt=class extends Ce{_workspace;__content_node__;_menu;__titles;constructor(e,t={}){super(t),this._addEventListeners(),this.__content_node__=void 0,this._workspace=e,this.__titles=[]}get private_titles(){return this._titles}onUpdateRequest(e){this.__content_node__=this.contentNode,this.node.style.contain="";let t=this._titles,i=this.renderer,s=this.currentTitle,r=new Array;for(let o=0,a=t.length;o<a;++o){let l=t[o];l.owner._titlebar=this;let u=l===s,d=t.filter(f=>f!==s),c;d.length>0&&(c=this.onClick.bind(this,d,o)),u?r[o]=i.renderTab({title:l,zIndex:t.length+1,current:u},c):r[o]=i.renderInert()}fe.render(r,this.contentNode),this._check_shade()}onClick(e,t,i){let s=new he;this._menu=new qe(this._workspace.menu_elem.shadowRoot,this._workspace.element,{commands:s}),this._menu.addClass("perspective-workspace-menu"),this._menu.dataset.minwidth=this.__titles[t];for(let a of e)this._menu.addItem({command:"tabbar:switch",args:{title:a}});s.addCommand("tabbar:switch",{execute:async({title:a})=>{let l=a,u=this.__titles.findIndex(d=>d===a);this.currentTitle=l,this.tabActivateRequested.emit({index:u,title:l})},label:({title:a})=>a.label||"untitled",mnemonic:0});let r=(i.target.shadowRoot?.querySelector("#status_reconnect")).getBoundingClientRect(),o=this._workspace.element.getBoundingClientRect();this._menu.open(r.x-o.x,r.y+r.height-o.y),this._menu.aboutToClose.connect(()=>{this._menu=void 0}),i.preventDefault(),i.stopPropagation()}_check_shade(){Array.from(this.contentNode.children).filter(e=>e.classList.contains("settings_open")&&e.classList.contains("lm-mod-current")).length>0?this.contentNode.classList.add("inactive-blur"):this.contentNode.classList.remove("inactive-blur")}handleEvent(e){switch(this._menu?.close(),this.retargetEvent(e),e.type){case"contextmenu":let t=this.currentTitle?.owner,i=t.parent;for(;i&&!(i instanceof Ve);)i=i.parent;i.showContextMenu(t,e),e.shiftKey||e.preventDefault();break;case"mousedown":if(e.target.id===yt.Label)return;break;case"pointerdown":if(e.target.id===yt.Label){let s=this.contentNode.children,r=Xt.ArrayExt.findFirstIndex(s,a=>$.hitTest(a,e.clientX,e.clientY));if(r<0)break;let o=this.titles[r];this._workspace._maximize(o.owner),requestAnimationFrame(()=>o.owner.viewer.toggleConfig());return}break}super.handleEvent(e)}retargetEvent(e){return Object.defineProperty(e,"target",{value:e.composedPath()[0],enumerable:!0}),e}_addEventListeners(){this.node.addEventListener("dblclick",this),this.node.addEventListener("contextmenu",this)}};var Lt=class extends Fe.Renderer{_workspace;constructor(e){super(),this._workspace=e}createTabBar(){let e=new xt(this._workspace,{renderer:new wt(!1)});return e.addClass("lm-DockPanel-tabBar"),e}},Te=class n extends Fe{_workspace;constructor(e){super({renderer:new Lt(e)}),this._renderer.dock=this,this._workspace=e}_onTabDetachRequested(e,t){super._onTabDetachRequested(e,t);let i=e.titles[t.index].owner,s=this.layout,r=s.saveLayout();Array.from(s.widgets()).length>1&&s.removeWidget(i),i.addClass("widget-blur"),document.body.classList.add("lm-mod-override-cursor");let o=this._drag;o&&(o.dragImage?.parentElement?.removeChild?.(o.dragImage),o.dragImage=null,o._promise.then(()=>{i.node.isConnected||s.restoreLayout(r),document.body.classList.remove("lm-mod-override-cursor"),i.removeClass("widget-blur")}))}static getWidgets(e){return e.main?n.getAreaWidgets(e.main):[]}static getAreaWidgets(e){return e?.hasOwnProperty("children")?e.children.flatMap(i=>n.getAreaWidgets(i)):e?.hasOwnProperty("widgets")?e.widgets:[]}widgets(){return super.widgets()}static async mapWidgets(e,t){return t.main&&(t.main=await n.mapAreaWidgets(e,t.main)),t}static async mapAreaWidgets(e,t){if(t.hasOwnProperty("children")){let i=t;i.children=await Promise.all(i.children.map(s=>n.mapAreaWidgets(e,s)))}else if(t.hasOwnProperty("widgets")){let i=t;i.widgets=await Promise.all(i.widgets.map(e))}return t}onAfterAttach(){this.spacing=parseInt(window.getComputedStyle(this._workspace.element).getPropertyValue("--workspace-spacing"))||0}};var Gt=(n,e)=>{let t=new he;return t.addCommand("workspace:export",{execute:async i=>{let s=document.createElement("perspective-export-menu");n.apply_indicator_theme();let r=n.getWidgetByName(i.widget_name);s.__set_model(r.viewer.__get_model()),s.open(e),n.get_context_menu()?.init_overlay?.(),s.addEventListener("blur",()=>{n.get_context_menu().aboutToClose.emit({})})},isEnabled:i=>{if(n.get_context_menu()?.node.isConnected){let s=n.get_context_menu()?.node.getBoundingClientRect();s&&(e.style.top=s.top+"px",e.style.left=s.left+"px")}return!0},label:"Export",mnemonic:0}),t.addCommand("workspace:copy",{execute:async i=>{let s=document.createElement("perspective-copy-menu");n.apply_indicator_theme();let r=n.getWidgetByName(i.widget_name);s.__set_model(r.viewer.__get_model()),s.open(e),n.get_context_menu()?.init_overlay?.(),s.addEventListener("blur",()=>{n.get_context_menu()?.aboutToClose?.emit({})})},isEnabled:i=>{if(n.get_context_menu()?.node.isConnected){let s=n.get_context_menu()?.node.getBoundingClientRect();s&&(e.style.top=s.top+"px",e.style.left=s.left+"px")}return!0},label:"Copy",mnemonic:0}),t.addCommand("workspace:new",{execute:async i=>{let s=await n._createWidgetAndNode({config:{table:i.table},slot:void 0});n.get_dock_panel().addWidget(s,{mode:"split-right",ref:n.getWidgetByName(i.widget_name)})},label:i=>i.table}),t.addCommand("workspace:newview",{execute:async i=>{let s=n.getWidgetByName(i.widget_name),o=await n.getWidgetByName(i.target_widget_name).save(),a=await n._createWidgetAndNode({config:o,slot:void 0});n.get_dock_panel().addWidget(a,{mode:"split-right",ref:s})},isVisible:i=>n.getWidgetByName(i.target_widget_name).title.label!=="",label:i=>n.getWidgetByName(i.target_widget_name).title.label||"untitled"}),t.addCommand("workspace:reset",{execute:i=>{n.getWidgetByName(i.widget_name).viewer.reset()},label:"Reset",mnemonic:0}),t.addCommand("workspace:settings",{execute:async({widget_name:i})=>{let s=n.getWidgetByName(i);if(!s)throw new Error(`No widget ${i}`);requestAnimationFrame(()=>s.viewer.toggleConfig())},isVisible:i=>n.getWidgetByName(i.widget_name)?.parent===n.get_dock_panel(),label:i=>n.getWidgetByName(i.widget_name).viewer.hasAttribute("settings")?"Close Settings":"Open Settings",mnemonic:0}),t.addCommand("workspace:duplicate",{execute:({widget_name:i})=>n.duplicate(n.getWidgetByName(i)),isVisible:i=>n.getWidgetByName(i.widget_name)?.parent===n.get_dock_panel(),label:"Duplicate",mnemonic:0}),t.addCommand("workspace:master",{execute:i=>n.toggleMasterDetail(n.getWidgetByName(i.widget_name)),isVisible:i=>!!n.getWidgetByName(i.widget_name)?._is_pivoted,label:i=>n.getWidgetByName(i.widget_name).parent===n.get_dock_panel()?"Create Global Filter":"Remove Global Filter",mnemonic:0}),t.addCommand("workspace:close",{execute:i=>{n.getWidgetByName(i.widget_name).close()},label:()=>"Close",mnemonic:0}),t.addCommand("workspace:help",{execute:()=>{},label:"Shift+Click for Browser Menu",isEnabled:()=>!1}),t};var ot=class extends D{viewer;_title;_is_pivoted;_restore_config;_onAttach;_titlebar;_deleted;_titlebar_callback;constructor({viewer:e,node:t,onAttach:i}){super({node:t}),this.viewer=e,this._title="",this._is_pivoted=!1,this._onAttach=i,this._deleted=!1}get name(){return this._title}toggleConfig(){return this.viewer.toggleConfig()}async load(e){let t=[this.viewer.load(e)];this._restore_config&&t.push(this._restore_config()),await Promise.all(t)}restore(e){return this._title=e.title,this.title.label=e.title,this._is_pivoted=(e.group_by?.length||0)>0,this.viewer.restore({...e})}async save(){let e={...await this.viewer.save()};return delete e.settings,e}addClass(e){super.addClass(e),this.viewer?.classList?.add?.(e)}removeClass(e){super.removeClass(e),this.viewer?.classList?.remove?.(e)}setCallback(e){this._titlebar_callback=e}onAfterAttach(e){super.onAfterAttach(e),this._onAttach?.()}onCloseRequest(e){return super.onCloseRequest(e),(async()=>{this.viewer.parentElement&&this.viewer.parentElement.removeChild(this.viewer),this._deleted||(await this.viewer.delete(),this._deleted=!0)})()}};var Dt=class{_lock;constructor(){this._lock=null}lock(e){return this._lock!==null?this._lock.then(()=>this.lock(e)):(this._lock=new Promise((t,i)=>e().then(s=>{this._lock=null,t(s)}).catch(s=>{this._lock=null,i(s)})),this._lock)}},Bt=[1,3],Zt=0;function Jt(n){let e=`PERSPECTIVE_GENERATED_ID_${Zt++}`;return Object.keys(n.viewers).includes(e)&&(e=Jt(n)),e}function Si(n,e,t){function s(r){let o=r.reduce((a,l)=>a+l,0);return o===1?r:r.map(a=>a/o)}if(n.detail.main===null)return{sizes:n.sizes,viewers:{...n.viewers,[t]:e},detail:{main:{type:"split-area",sizes:[1],orientation:"horizontal",children:[{type:"tab-area",currentIndex:0,widgets:[t]}]}},master:n.master};if(n.detail.main.type==="tab-area"||n.detail.main.type==="split-area"&&n.detail.main.orientation==="vertical")return{sizes:n.sizes,viewers:{...n.viewers,[t]:e},detail:{main:{type:"split-area",sizes:[.5,.5],orientation:"horizontal",children:[n.detail.main,{type:"tab-area",currentIndex:0,widgets:[t]}]}},master:n.master};if(n.detail.main.type==="split-area"&&n.detail.main.orientation==="horizontal")return{sizes:n.sizes,viewers:{...n.viewers,[t]:e},detail:{main:{type:"split-area",sizes:s([...s(n.detail.main.sizes),.618]),orientation:"horizontal",children:[...n.detail.main.children,{type:"tab-area",currentIndex:0,widgets:[t]}]}},master:n.master};throw new Error("Unknown workspace state")}var Ve=class extends ke{dockpanel;detailPanel;masterPanel;client;element;menu_elem;listeners;indicator;commands;_menu;_minimizedLayoutSlots;_minimizedLayout;_maximizedWidget;_last_updated_state;_mutex;constructor(e){super({orientation:"horizontal"}),this.addClass("perspective-workspace"),this.dockpanel=new Te(this),this.detailPanel=new Ge,this.detailPanel.layout.fitPolicy="set-no-constraint",this.detailPanel.addClass("perspective-scroll-panel"),this.detailPanel.addWidget(this.dockpanel),this.masterPanel=new ke({orientation:"vertical"}),this.masterPanel.addClass("master-panel"),this._mutex=new Dt,this.dockpanel.layoutModified.connect(()=>{this.workspaceUpdated()}),this.addWidget(this.detailPanel),this.element=e,this.listeners=new WeakMap,this.client=[],this.indicator=this.init_indicator(),this.commands=Gt(this,this.indicator),this.menu_elem=document.createElement("perspective-workspace-menu"),this.menu_elem.attachShadow({mode:"open"}),this.menu_elem.shadowRoot.innerHTML=`<style>:host{position:absolute;}${Ut}</style>`,this.element.shadowRoot.insertBefore(this.menu_elem,this.element.shadowRoot.lastElementChild),e.addEventListener("contextmenu",t=>this.showContextMenu(null,t))}get_context_menu(){return this._menu}get_dock_panel(){return this.dockpanel}init_indicator(){let e=document.querySelector("body > perspective-indicator");if(e)return e;let t=document.createElement("perspective-indicator");return t.style.position="fixed",t.style.pointerEvents="none",document.body.appendChild(t),t}apply_indicator_theme(){let e=JSON.parse(window.getComputedStyle(this.element).getPropertyValue("--theme-name").trim());this.indicator.setAttribute("theme",e)}async save(){return await this._mutex.lock(async()=>{let e=this.dockpanel.mode==="single-document",t=e?await this._minimizedLayoutSlots:await Te.mapWidgets(async r=>r.viewer.getAttribute("slot"),this.dockpanel.saveLayout()),i={sizes:[...this.relativeSizes()],detail:t,viewers:{},master:void 0};if(this.masterPanel.isAttached){let r={widgets:this.masterPanel.widgets.map(o=>o.viewer.getAttribute("slot")),sizes:[...this.masterPanel.relativeSizes()]};i.master=r}for(let r of this.masterPanel.widgets){let o=r;i.viewers[o.viewer.getAttribute("slot")]=await o.save()}let s=Te.getWidgets(e?this._minimizedLayout:this.dockpanel.saveLayout());return await Promise.all(s.map(async r=>{let o=r,a=o.viewer.getAttribute("slot");i.viewers[a]=await o.save(),i.viewers[a].settings=!1})),i})}async restore(e){await this._mutex.lock(async()=>{let{sizes:t,master:i,detail:s,viewers:r={}}=structuredClone(e);i&&i.widgets.length>0?this.setupMasterPanel(t||Bt):(this.masterPanel.isAttached&&(this.detailPanel.removeClass("has-master-panel"),this.masterPanel.close()),this.addWidget(this.detailPanel));let o=[];for(let a of this._capture_viewers())for(let l of this._capture_widgets()){for(let d of a)d.removeAttribute("class");let u=this._restore_callback.bind(this,r,a,l);if(s){let d=await Te.mapWidgets(c=>u.bind(this,!1)(c),s);this.dockpanel.mode="multiple-document",this.dockpanel.restoreLayout(d),o=o.concat(Te.getWidgets(d).map(c=>c.viewer.flush()))}if(i){let d=[],c=[];i.widgets.map(f=>(c.push(f),d.push(u.bind(this,!0)(f)),f)),o.push(Promise.all(d).then(f=>{i.widgets=i.widgets.map(h=>{let m=c.indexOf(h);return f[m]})})),i.sizes&&this.masterPanel.setRelativeSizes(i.sizes)}}await Promise.all(o)})}*_capture_widgets(){let e=this.getAllWidgets();yield e;for(let t of e)t.node.isConnected||t.close()}*_capture_viewers(){let e=Array.from(this.element.children);yield e;let t=this.getAllWidgets();for(let i of e)!t.find(r=>r.viewer===i)&&Array.from(this.element.children).indexOf(i)>-1&&(this.element.removeChild(i),i.delete(),i.free())}async _restore_callback(e,t,i,s,r){let o;o=e[r];let a=!!r&&t.find(u=>u.getAttribute("slot")===r),l;if(a)l=i.find(u=>u.viewer===a),l?await l.restore({...o}):l=await this._createWidget({config:{...o},viewer:a});else if(o)l=await this._createWidgetAndNode({config:{...o},slot:r});else throw new Error(`Could not find or create <perspective-viewer> for slot "${r}"`);return s&&(l.viewer.classList.add("workspace-master-widget"),l.viewer.toggleAttribute("selectable",!0),l.viewer.addEventListener("perspective-select",this.onPerspectiveSelect.bind(this)),this.masterPanel.addWidget(l)),l}_validate(e){if(!e||!("view"in e)||typeof e?.view!="function")throw new Error("Only `perspective.Table()` instances can be added to `tables`");return e}_set_listener(e,t){t instanceof Promise?t=t.then(this._validate):this._validate(t)}_delete_listener(e){this.getAllWidgets().some(t=>{let i=t;i.viewer.getAttribute("table")===e&&i.viewer.eject()})}async update_widget_for_viewer(e){let t=e.getAttribute("slot");if(t||(t=this._gen_id(),e.setAttribute("slot",t)),e.getAttribute("table")){if(!this.node.querySelector(`slot[name=${t}]`)){console.warn(`Undocked ${e.outerHTML}, creating default layout`);let r=await this._createWidget({viewer:e});this.dockpanel.addWidget(r),this.dockpanel.activateWidget(r)}}else console.warn(`No table set for ${e.outerHTML}`)}remove_unslotted_widgets(e){let t=this.getAllWidgets();for(let i of t){let s=i;e.indexOf(s.viewer)===-1&&s.close()}}update_details_panel(e){this.masterPanel.widgets.length===0&&this.masterPanel.close()}async duplicate(e){if(this.dockpanel.mode==="single-document"){let s=await this._maximizedWidget.viewer.toggleConfig(!1);this._unmaximize()}let t=await e.save();t.settings=!1,t.title=t.title?`${t.title} (*)`:"";let i=await this._createWidgetAndNode({config:t,slot:void 0});this.dockpanel.addWidget(i,{mode:"split-right",ref:e}),await i.viewer.flush()}toggleMasterDetail(e){let t=e.parent!==this.dockpanel;this.element.dispatchEvent(new CustomEvent("workspace-toggle-global-filter",{detail:{widget:e,isGlobalFilter:!t}})),t?this.makeDetail(e):(this.dockpanel.mode==="single-document"&&this.toggleSingleDocument(e),this.makeMaster(e))}_maximize(e){e.viewer.classList.add("widget-maximize"),this._minimizedLayout||(this._minimizedLayout=this.dockpanel.saveLayout(),this._minimizedLayoutSlots=Te.mapWidgets(async t=>t.viewer.getAttribute("slot"),this.dockpanel.saveLayout())),this._maximizedWidget=e,this.dockpanel.mode="single-document",this.dockpanel.activateWidget(e)}_unmaximize(){this._maximizedWidget.viewer.classList.remove("widget-maximize"),this.dockpanel.mode="multiple-document",this.dockpanel.restoreLayout(this._minimizedLayout),this._minimizedLayout=void 0}toggleSingleDocument(e){this.dockpanel.mode!=="single-document"?this._maximize(e):this._unmaximize()}async _filterViewer(e,t,i){let s=await e.save(),r=await e.getTable(),o=Object.keys(await r.schema()),a=s.filter||[],l=c=>c[0]&&o.includes(c[0]),u=t.filter(l);u.push(...a.filter(c=>!i.has(c[0])));let d=Ci(u,c=>c[0]);await e.restore({filter:d})}async onPerspectiveSelect(e){let t=await e.target.save(),i=new Set([...t.group_by||[],...t.split_by||[],...(t.filter||[]).map(r=>r[0])]),s=[...e.detail.config.filter];(0,lt.toArray)(this.dockpanel.widgets()).forEach(r=>{this._filterViewer(r.viewer,s,i)})}async makeMaster(e){e.viewer.hasAttribute("settings")&&await e.toggleConfig(),e.viewer.classList.add("workspace-master-widget"),e.viewer.toggleAttribute("selectable",!0),this.masterPanel.isAttached||(this.detailPanel.close(),this.setupMasterPanel(Bt)),this.masterPanel.addWidget(e),e.isHidden&&e.show(),e.viewer.restyleElement(),e.viewer.addEventListener("perspective-select",this.onPerspectiveSelect.bind(this))}makeDetail(e){e.viewer.classList.remove("workspace-master-widget"),e.viewer.toggleAttribute("selectable",!1),this.dockpanel.addWidget(e,{mode:"split-left"}),this.masterPanel.widgets.length===0&&(this.detailPanel.close(),this.masterPanel.close(),this.detailPanel.removeClass("has-master-panel"),this.addWidget(this.detailPanel)),e.viewer.restyleElement(),e.viewer.removeEventListener("perspective-select",this.onPerspectiveSelect.bind(this))}createContextMenu(e){this._menu=new qe(this.menu_elem.shadowRoot,this.element,{commands:this.commands});let t=(0,lt.find)(this.dockpanel.tabBars(),i=>i.currentTitle?.owner===e);if(this._menu.init_overlay=()=>{e&&(e.addClass("context-focus"),e.viewer.classList.add("context-focus"),t&&t.node.classList.add("context-focus"),this.element.classList.add("context-menu"),this.addClass("context-menu"),e.viewer.classList.contains("workspace-master-widget")?this._menu.node.classList.add("workspace-master-menu"):this._menu.node.classList.remove("workspace-master-menu"))},(e?.parent===this.dockpanel||e===null)&&this._menu.addItem({type:"submenu",command:"workspace:newmenu",submenu:(()=>{let i=new qe(this.menu_elem.shadowRoot,this.element,{commands:this.commands});(async()=>{let o=await Promise.all(this.client.map(a=>a.get_hosted_table_names())).then(a=>a.flat());for(let a of o){let l;e!==null?l={table:a,widget_name:e.viewer.getAttribute("slot")}:l={table:a},i.insertItem(0,{command:"workspace:new",args:l})}})();let s=Te.getWidgets(this.dockpanel.saveLayout());s.length>0&&i.addItem({type:"separator"});let r=new Set;for(let o of s)if(!r.has(o.title.label)){let a;e!==null?a={target_widget_name:o.viewer.getAttribute("slot"),widget_name:e.viewer.getAttribute("slot")}:a={target_widget_name:o.viewer.getAttribute("slot")},i.addItem({command:"workspace:newview",args:a}),r.add(o.title.label)}return i.title.label="New Table",i})()}),e){let i=e.viewer.getAttribute("slot");e?.parent===this.dockpanel&&this._menu.addItem({type:"separator"}),this._menu.addItem({command:"workspace:duplicate",args:{widget_name:i}}),this._menu.addItem({command:"workspace:master",args:{widget_name:i}}),this._menu.addItem({type:"separator"}),this._menu.addItem({command:"workspace:settings",args:{widget_name:i}}),this._menu.addItem({command:"workspace:reset",args:{widget_name:i}}),this._menu.addItem({command:"workspace:export",args:{widget_name:i}}),this._menu.addItem({command:"workspace:copy",args:{widget_name:i}}),this._menu.addItem({type:"separator"}),this._menu.addItem({command:"workspace:close",args:{widget_name:i}}),this._menu.addItem({command:"workspace:help"})}return this._menu.aboutToClose.connect(()=>{e&&(this.element.classList.remove("context-menu"),this.removeClass("context-menu"),e.removeClass("context-focus"),t?.node?.classList.remove("context-focus"))}),this._menu}showContextMenu(e,t){if(!t.shiftKey){let i=this.createContextMenu(e);i.init_overlay?.();let s=this.element.getBoundingClientRect();i.open(t.clientX-s.x,t.clientY-s.y,{host:this.menu_elem.shadowRoot}),t.preventDefault(),t.stopPropagation()}}clearLayout(){this.getAllWidgets().forEach(e=>e.close()),this.widgets.forEach(e=>e.close()),this.detailPanel.close(),this.masterPanel.isAttached&&(this.detailPanel.removeClass("has-master-panel"),this.masterPanel.close())}setupMasterPanel(e){this.detailPanel.addClass("has-master-panel"),this.addWidget(this.masterPanel),this.addWidget(this.detailPanel),this.setRelativeSizes(e)}async addViewer(e,t){await this._mutex.lock(async()=>{if(this.dockpanel.mode==="single-document"){let s=this._maximizedWidget.viewer.toggleConfig(!1);this._unmaximize()}let i=await this._createWidgetAndNode({config:e});t?(this.masterPanel.isAttached||this.setupMasterPanel(Bt),this.masterPanel.addWidget(i)):(this.detailPanel.isAttached||this.addWidget(this.detailPanel),this.dockpanel.addWidget(i,{mode:"split-right"})),this.update()})}async _createWidgetAndNode({config:e,slot:t}){let i=this._createNode(t),s=e.table,r=document.createElement("perspective-viewer");r.setAttribute("slot",i.querySelector("slot").getAttribute("name")),s&&r.setAttribute("table",s);for(let o of this.client){let a=await o.get_hosted_table_names();if(s&&a.indexOf(s)>-1)return await r.load(o),await this._createWidget({config:e,elem:i,viewer:r})}throw new Error(`Table "${s}" not found`)}_gen_id(){let e=`PERSPECTIVE_GENERATED_ID_${Zt++}`;return this.element.querySelector(`[slot=${e}]`)&&(e=this._gen_id()),e}_createNode(e){let t=this.node.querySelector(`slot[name=${e}]`);if(e===void 0||!t){let i=document.createElement("slot");e=e||this._gen_id(),i.setAttribute("name",e);let s=document.createElement("div");s.classList.add("viewer-container"),s.appendChild(i),t=document.createElement("div"),t.classList.add("workspace-widget"),t.appendChild(s)}else t=t.parentElement.parentElement;return t}async _createWidget({config:e,elem:t,viewer:i}){let s=t;if(!s){let a=i.getAttribute("slot")||void 0;s=this.node.querySelector(`slot[name=${a}]`),s?s=s.parentElement.parentElement:s=this._createNode(a)}let r=()=>{o.viewer.parentElement!==this.element&&this.element.appendChild(o.viewer);let a=new CustomEvent("workspace-new-view",{detail:{config:e,widget:o}});this.element.dispatchEvent(a)},o=new ot({node:s,viewer:i,onAttach:r});return e&&await o.restore(e),o.title.closable=!0,this._addWidgetEventListeners(o),o}_addWidgetEventListeners(e){this.listeners.has(e)&&this.listeners.get(e)();let t=l=>this.showContextMenu(e,l),i=async l=>{this.workspaceUpdated();let u=typeof l.detail>"u"?await e.viewer.save():l.detail;e.title.label=u.title,e._title=u.title,e._is_pivoted=u.group_by?.length>0};e.node.addEventListener("contextmenu",t);let s=l=>{l.detail&&this.dockpanel.mode!=="single-document"&&this._maximize(e)},r=l=>{!l.detail&&this.dockpanel.mode==="single-document"&&this._unmaximize()};e.viewer.addEventListener("perspective-status-indicator-click",l=>{e._titlebar_callback?.(l)}),e.viewer.addEventListener("perspective-toggle-settings-before",s),e.viewer.addEventListener("perspective-toggle-settings",r);let o=()=>{e._deleted||(e._deleted=!0,e.close())},a=l=>{e._titlebar?.handleEvent(l.detail)};e.viewer.addEventListener("perspective-table-delete-before",o),e.viewer.addEventListener("perspective-statusbar-pointerdown",a),e.viewer.addEventListener("perspective-config-update",i),this.listeners.set(e,()=>{e.node.removeEventListener("contextmenu",t),e.viewer.removeEventListener("perspective-table-delete-before",o),e.viewer.removeEventListener("perspective-table-delete",a),e.viewer.removeEventListener("perspective-toggle-settings",s),e.viewer.removeEventListener("perspective-toggle-settings",r),e.viewer.removeEventListener("perspective-config-update",i)})}getWidgetByName(e){return this.getAllWidgets().find(t=>t.viewer.getAttribute("slot")===e)||null}getAllWidgets(){return[...this.masterPanel.widgets,...(0,lt.toArray)(this.dockpanel.widgets())]}_throttle;async workspaceUpdated(){let e=await this.save();if(e){if(this._last_updated_state&&Ti(this._last_updated_state,e))return;this._last_updated_state=e,this.element.dispatchEvent(new CustomEvent("workspace-layout-update",{detail:{layout:e}}))}}};function Ei(n){let e=document.createElement("div");return e.innerHTML=n,Array.prototype.slice.call(e.children)[0]}function Ii(n,e,t){let i=Ei(n);e&&(i.innerHTML=`<style>${e.toString()}</style>`+i.innerHTML);let s=class extends t{_initialized;_initializing;constructor(){super(),this._initialized=!1,this._initializing=!1}connectedCallback(){if(this._initialized)return;this._initializing=!0;let o=document.importNode(i.content,!0);this.attachShadow({mode:"open"}).appendChild(o),t.prototype.connectedCallback&&t.prototype.connectedCallback.call(this),this._initializing=!1,this._initialized=!0}static get observedAttributes(){return Object.getOwnPropertyNames(t.prototype)}},r=i.getAttribute("id");window.customElements.define(r,s)}function Qt(n,...e){let t=e.map(i=>i.toString()).join(`
1
+ var di=Object.create;var Rt=Object.defineProperty;var ci=Object.getOwnPropertyDescriptor;var hi=Object.getOwnPropertyNames;var ui=Object.getPrototypeOf,mi=Object.prototype.hasOwnProperty;var Wt=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports);var fi=(n,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of hi(e))!mi.call(n,s)&&s!==t&&Rt(n,s,{get:()=>e[s],enumerable:!(i=ci(e,s))||i.enumerable});return n};var ye=(n,e,t)=>(t=n!=null?di(ui(n)):{},fi(e||!n||!n.__esModule?Rt(t,"default",{value:n,enumerable:!0}):t,n));var Se=Wt((dt,Nt)=>{(function(n,e){typeof dt=="object"&&typeof Nt<"u"?e(dt):typeof define=="function"&&define.amd?define(["exports"],e):(n=typeof globalThis<"u"?globalThis:n||self,e(n.lumino_algorithm={}))})(dt,(function(n){"use strict";n.ArrayExt=void 0,(function(x){function I(B,W,C=0,k=-1){let T=B.length;if(T===0)return-1;C<0?C=Math.max(0,C+T):C=Math.min(C,T-1),k<0?k=Math.max(0,k+T):k=Math.min(k,T-1);let N;k<C?N=k+1+(T-C):N=k-C+1;for(let H=0;H<N;++H){let Y=(C+H)%T;if(B[Y]===W)return Y}return-1}x.firstIndexOf=I;function L(B,W,C=-1,k=0){let T=B.length;if(T===0)return-1;C<0?C=Math.max(0,C+T):C=Math.min(C,T-1),k<0?k=Math.max(0,k+T):k=Math.min(k,T-1);let N;C<k?N=C+1+(T-k):N=C-k+1;for(let H=0;H<N;++H){let Y=(C-H+T)%T;if(B[Y]===W)return Y}return-1}x.lastIndexOf=L;function R(B,W,C=0,k=-1){let T=B.length;if(T===0)return-1;C<0?C=Math.max(0,C+T):C=Math.min(C,T-1),k<0?k=Math.max(0,k+T):k=Math.min(k,T-1);let N;k<C?N=k+1+(T-C):N=k-C+1;for(let H=0;H<N;++H){let Y=(C+H)%T;if(W(B[Y],Y))return Y}return-1}x.findFirstIndex=R;function O(B,W,C=-1,k=0){let T=B.length;if(T===0)return-1;C<0?C=Math.max(0,C+T):C=Math.min(C,T-1),k<0?k=Math.max(0,k+T):k=Math.min(k,T-1);let N;C<k?N=C+1+(T-k):N=C-k+1;for(let H=0;H<N;++H){let Y=(C-H+T)%T;if(W(B[Y],Y))return Y}return-1}x.findLastIndex=O;function K(B,W,C=0,k=-1){let T=R(B,W,C,k);return T!==-1?B[T]:void 0}x.findFirstValue=K;function F(B,W,C=-1,k=0){let T=O(B,W,C,k);return T!==-1?B[T]:void 0}x.findLastValue=F;function V(B,W,C,k=0,T=-1){let N=B.length;if(N===0)return 0;k<0?k=Math.max(0,k+N):k=Math.min(k,N-1),T<0?T=Math.max(0,T+N):T=Math.min(T,N-1);let H=k,Y=T-k+1;for(;Y>0;){let me=Y>>1,Je=H+me;C(B[Je],W)<0?(H=Je+1,Y-=me+1):Y=me}return H}x.lowerBound=V;function Z(B,W,C,k=0,T=-1){let N=B.length;if(N===0)return 0;k<0?k=Math.max(0,k+N):k=Math.min(k,N-1),T<0?T=Math.max(0,T+N):T=Math.min(T,N-1);let H=k,Y=T-k+1;for(;Y>0;){let me=Y>>1,Je=H+me;C(B[Je],W)>0?Y=me:(H=Je+1,Y-=me+1)}return H}x.upperBound=Z;function j(B,W,C){if(B===W)return!0;if(B.length!==W.length)return!1;for(let k=0,T=B.length;k<T;++k)if(C?!C(B[k],W[k]):B[k]!==W[k])return!1;return!0}x.shallowEqual=j;function X(B,W={}){let{start:C,stop:k,step:T}=W;if(T===void 0&&(T=1),T===0)throw new Error("Slice `step` cannot be zero.");let N=B.length;C===void 0?C=T<0?N-1:0:C<0?C=Math.max(C+N,T<0?-1:0):C>=N&&(C=T<0?N-1:N),k===void 0?k=T<0?-1:N:k<0?k=Math.max(k+N,T<0?-1:0):k>=N&&(k=T<0?N-1:N);let H;T<0&&k>=C||T>0&&C>=k?H=0:T<0?H=Math.floor((k-C+1)/T+1):H=Math.floor((k-C-1)/T+1);let Y=[];for(let me=0;me<H;++me)Y[me]=B[C+me*T];return Y}x.slice=X;function G(B,W,C){let k=B.length;if(k<=1||(W<0?W=Math.max(0,W+k):W=Math.min(W,k-1),C<0?C=Math.max(0,C+k):C=Math.min(C,k-1),W===C))return;let T=B[W],N=W<C?1:-1;for(let H=W;H!==C;H+=N)B[H]=B[H+N];B[C]=T}x.move=G;function ee(B,W=0,C=-1){let k=B.length;if(!(k<=1))for(W<0?W=Math.max(0,W+k):W=Math.min(W,k-1),C<0?C=Math.max(0,C+k):C=Math.min(C,k-1);W<C;){let T=B[W],N=B[C];B[W++]=N,B[C--]=T}}x.reverse=ee;function ie(B,W,C=0,k=-1){let T=B.length;if(T<=1||(C<0?C=Math.max(0,C+T):C=Math.min(C,T-1),k<0?k=Math.max(0,k+T):k=Math.min(k,T-1),C>=k))return;let N=k-C+1;if(W>0?W=W%N:W<0&&(W=(W%N+N)%N),W===0)return;let H=C+W;ee(B,C,H-1),ee(B,H,k),ee(B,C,k)}x.rotate=ie;function we(B,W,C=0,k=-1){let T=B.length;if(T===0)return;C<0?C=Math.max(0,C+T):C=Math.min(C,T-1),k<0?k=Math.max(0,k+T):k=Math.min(k,T-1);let N;k<C?N=k+1+(T-C):N=k-C+1;for(let H=0;H<N;++H)B[(C+H)%T]=W}x.fill=we;function ii(B,W,C){let k=B.length;W<0?W=Math.max(0,W+k):W=Math.min(W,k);for(let T=k;T>W;--T)B[T]=B[T-1];B[W]=C}x.insert=ii;function Ze(B,W){let C=B.length;if(W<0&&(W+=C),W<0||W>=C)return;let k=B[W];for(let T=W+1;T<C;++T)B[T-1]=B[T];return B.length=C-1,k}x.removeAt=Ze;function ni(B,W,C=0,k=-1){let T=I(B,W,C,k);return T!==-1&&Ze(B,T),T}x.removeFirstOf=ni;function si(B,W,C=-1,k=0){let T=L(B,W,C,k);return T!==-1&&Ze(B,T),T}x.removeLastOf=si;function ri(B,W,C=0,k=-1){let T=B.length;if(T===0)return 0;C<0?C=Math.max(0,C+T):C=Math.min(C,T-1),k<0?k=Math.max(0,k+T):k=Math.min(k,T-1);let N=0;for(let H=0;H<T;++H)C<=k&&H>=C&&H<=k&&B[H]===W||k<C&&(H<=k||H>=C)&&B[H]===W?N++:N>0&&(B[H-N]=B[H]);return N>0&&(B.length=T-N),N}x.removeAllOf=ri;function ai(B,W,C=0,k=-1){let T,N=R(B,W,C,k);return N!==-1&&(T=Ze(B,N)),{index:N,value:T}}x.removeFirstWhere=ai;function oi(B,W,C=-1,k=0){let T,N=O(B,W,C,k);return N!==-1&&(T=Ze(B,N)),{index:N,value:T}}x.removeLastWhere=oi;function li(B,W,C=0,k=-1){let T=B.length;if(T===0)return 0;C<0?C=Math.max(0,C+T):C=Math.min(C,T-1),k<0?k=Math.max(0,k+T):k=Math.min(k,T-1);let N=0;for(let H=0;H<T;++H)C<=k&&H>=C&&H<=k&&W(B[H],H)||k<C&&(H<=k||H>=C)&&W(B[H],H)?N++:N>0&&(B[H-N]=B[H]);return N>0&&(B.length=T-N),N}x.removeAllWhere=li})(n.ArrayExt||(n.ArrayExt={}));function*e(...x){for(let I of x)yield*I}function*t(){}function*i(x,I=0){for(let L of x)yield[I++,L]}function*s(x,I){let L=0;for(let R of x)I(R,L++)&&(yield R)}function r(x,I){let L=0;for(let R of x)if(I(R,L++))return R}function o(x,I){let L=0;for(let R of x)if(I(R,L++))return L-1;return-1}function a(x,I){let L;for(let R of x){if(L===void 0){L=R;continue}I(R,L)<0&&(L=R)}return L}function l(x,I){let L;for(let R of x){if(L===void 0){L=R;continue}I(R,L)>0&&(L=R)}return L}function u(x,I){let L=!0,R,O;for(let K of x)L?(R=K,O=K,L=!1):I(K,R)<0?R=K:I(K,O)>0&&(O=K);return L?void 0:[R,O]}function d(x){return Array.from(x)}function c(x){let I={};for(let[L,R]of x)I[L]=R;return I}function f(x,I){let L=0;for(let R of x)if(I(R,L++)===!1)return}function h(x,I){let L=0;for(let R of x)if(I(R,L++)===!1)return!1;return!0}function m(x,I){let L=0;for(let R of x)if(I(R,L++))return!0;return!1}function*p(x,I){let L=0;for(let R of x)yield I(R,L++)}function*_(x,I,L){I===void 0?(I=x,x=0,L=1):L===void 0&&(L=1);let R=w.rangeLength(x,I,L);for(let O=0;O<R;O++)yield x+L*O}var w;(function(x){function I(L,R,O){return O===0?1/0:L>R&&O>0||L<R&&O<0?0:Math.ceil((R-L)/O)}x.rangeLength=I})(w||(w={}));function v(x,I,L){let R=x[Symbol.iterator](),O=0,K=R.next();if(K.done&&L===void 0)throw new TypeError("Reduce of empty iterable with no initial value.");if(K.done)return L;let F=R.next();if(F.done&&L===void 0)return K.value;if(F.done)return I(L,K.value,O++);let V;L===void 0?V=I(K.value,F.value,O++):V=I(I(L,K.value,O++),F.value,O++);let Z;for(;!(Z=R.next()).done;)V=I(V,Z.value,O++);return V}function*g(x,I){for(;0<I--;)yield x}function*b(x){yield x}function*y(x){if(typeof x.retro=="function")yield*x.retro();else for(let I=x.length-1;I>-1;I--)yield x[I]}function M(x){let I=[],L=new Set,R=new Map;for(let F of x)O(F);for(let[F]of R)K(F);return I;function O(F){let[V,Z]=F,j=R.get(Z);j?j.push(V):R.set(Z,[V])}function K(F){if(L.has(F))return;L.add(F);let V=R.get(F);if(V)for(let Z of V)K(Z);I.push(F)}}function*S(x,I){let L=0;for(let R of x)L++%I===0&&(yield R)}n.StringExt=void 0,(function(x){function I(F,V,Z=0){let j=new Array(V.length);for(let X=0,G=Z,ee=V.length;X<ee;++X,++G){if(G=F.indexOf(V[X],G),G===-1)return null;j[X]=G}return j}x.findIndices=I;function L(F,V,Z=0){let j=I(F,V,Z);if(!j)return null;let X=0;for(let G=0,ee=j.length;G<ee;++G){let ie=j[G]-Z;X+=ie*ie}return{score:X,indices:j}}x.matchSumOfSquares=L;function R(F,V,Z=0){let j=I(F,V,Z);if(!j)return null;let X=0,G=Z-1;for(let ee=0,ie=j.length;ee<ie;++ee){let we=j[ee];X+=we-G-1,G=we}return{score:X,indices:j}}x.matchSumOfDeltas=R;function O(F,V,Z){let j=[],X=0,G=0,ee=V.length;for(;X<ee;){let ie=V[X],we=V[X];for(;++X<ee&&V[X]===we+1;)we++;G<ie&&j.push(F.slice(G,ie)),ie<we+1&&j.push(Z(F.slice(ie,we+1))),G=we+1}return G<F.length&&j.push(F.slice(G)),j}x.highlight=O;function K(F,V){return F<V?-1:F>V?1:0}x.cmp=K})(n.StringExt||(n.StringExt={}));function*E(x,I){if(I<1)return;let L=x[Symbol.iterator](),R;for(;0<I--&&!(R=L.next()).done;)yield R.value}function*P(...x){let I=x.map(R=>R[Symbol.iterator]()),L=I.map(R=>R.next());for(;h(L,R=>!R.done);L=I.map(R=>R.next()))yield L.map(R=>R.value)}n.chain=e,n.each=f,n.empty=t,n.enumerate=i,n.every=h,n.filter=s,n.find=r,n.findIndex=o,n.map=p,n.max=l,n.min=a,n.minmax=u,n.once=b,n.range=_,n.reduce=v,n.repeat=g,n.retro=y,n.some=m,n.stride=S,n.take=E,n.toArray=d,n.toObject=c,n.topologicSort=M,n.zip=P}))});var ht=Wt((ct,Ht)=>{(function(n,e){typeof ct=="object"&&typeof Ht<"u"?e(ct,Se()):typeof define=="function"&&define.amd?define(["exports","@lumino/algorithm"],e):(n=typeof globalThis<"u"?globalThis:n||self,e(n.lumino_coreutils={},n.lumino_algorithm))})(ct,(function(n,e){"use strict";n.JSONExt=void 0,(function(u){u.emptyObject=Object.freeze({}),u.emptyArray=Object.freeze([]);function d(g){return g===null||typeof g=="boolean"||typeof g=="number"||typeof g=="string"}u.isPrimitive=d;function c(g){return Array.isArray(g)}u.isArray=c;function f(g){return!d(g)&&!c(g)}u.isObject=f;function h(g,b){if(g===b)return!0;if(d(g)||d(b))return!1;let y=c(g),M=c(b);return y!==M?!1:y&&M?p(g,b):_(g,b)}u.deepEqual=h;function m(g){return d(g)?g:c(g)?w(g):v(g)}u.deepCopy=m;function p(g,b){if(g===b)return!0;if(g.length!==b.length)return!1;for(let y=0,M=g.length;y<M;++y)if(!h(g[y],b[y]))return!1;return!0}function _(g,b){if(g===b)return!0;for(let y in g)if(g[y]!==void 0&&!(y in b))return!1;for(let y in b)if(b[y]!==void 0&&!(y in g))return!1;for(let y in g){let M=g[y],S=b[y];if(!(M===void 0&&S===void 0)&&(M===void 0||S===void 0||!h(M,S)))return!1}return!0}function w(g){let b=new Array(g.length);for(let y=0,M=g.length;y<M;++y)b[y]=m(g[y]);return b}function v(g){let b={};for(let y in g){let M=g[y];M!==void 0&&(b[y]=m(M))}return b}})(n.JSONExt||(n.JSONExt={}));class t{constructor(){this._types=[],this._values=[]}types(){return this._types.slice()}hasData(d){return this._types.indexOf(d)!==-1}getData(d){let c=this._types.indexOf(d);return c!==-1?this._values[c]:void 0}setData(d,c){this.clearData(d),this._types.push(d),this._values.push(c)}clearData(d){let c=this._types.indexOf(d);c!==-1&&(this._types.splice(c,1),this._values.splice(c,1))}clear(){this._types.length=0,this._values.length=0}}class i{constructor(d={}){this._application=null,this._validatePlugin=()=>!0,this._plugins=new Map,this._services=new Map,d.validatePlugin&&(console.info("Plugins may be rejected by the custom validation plugin method."),this._validatePlugin=d.validatePlugin)}get application(){return this._application}set application(d){if(this._application!==null)throw Error("PluginRegistry.application is already set. It cannot be overridden.");this._application=d}get deferredPlugins(){return Array.from(this._plugins).filter(([d,c])=>c.autoStart==="defer").map(([d,c])=>d)}getPluginDescription(d){var c,f;return(f=(c=this._plugins.get(d))===null||c===void 0?void 0:c.description)!==null&&f!==void 0?f:""}hasPlugin(d){return this._plugins.has(d)}isPluginActivated(d){var c,f;return(f=(c=this._plugins.get(d))===null||c===void 0?void 0:c.activated)!==null&&f!==void 0?f:!1}listPlugins(){return Array.from(this._plugins.keys())}registerPlugin(d){if(this._plugins.has(d.id))throw new TypeError(`Plugin '${d.id}' is already registered.`);if(!this._validatePlugin(d))throw new Error(`Plugin '${d.id}' is not valid.`);let c=s.createPluginData(d);s.ensureNoCycle(c,this._plugins,this._services),c.provides&&this._services.set(c.provides,c.id),this._plugins.set(c.id,c)}registerPlugins(d){for(let c of d)this.registerPlugin(c)}deregisterPlugin(d,c){let f=this._plugins.get(d);if(f){if(f.activated&&!c)throw new Error(`Plugin '${d}' is still active.`);this._plugins.delete(d)}}async activatePlugin(d){let c=this._plugins.get(d);if(!c)throw new ReferenceError(`Plugin '${d}' is not registered.`);if(c.activated)return;if(c.promise)return c.promise;let f=c.requires.map(m=>this.resolveRequiredService(m)),h=c.optional.map(m=>this.resolveOptionalService(m));return c.promise=Promise.all([...f,...h]).then(m=>c.activate.apply(void 0,[this.application,...m])).then(m=>{c.service=m,c.activated=!0,c.promise=null}).catch(m=>{throw c.promise=null,m}),c.promise}async activatePlugins(d,c={}){switch(d){case"defer":{let f=this.deferredPlugins.filter(h=>this._plugins.get(h).autoStart).map(h=>this.activatePlugin(h));await Promise.all(f);break}case"startUp":{let h=s.collectStartupPlugins(this._plugins,c).map(async m=>{try{return await this.activatePlugin(m)}catch(p){console.error(`Plugin '${m}' failed to activate.`,p)}});await Promise.all(h);break}}}async deactivatePlugin(d){let c=this._plugins.get(d);if(!c)throw new ReferenceError(`Plugin '${d}' is not registered.`);if(!c.activated)return[];if(!c.deactivate)throw new TypeError(`Plugin '${d}'#deactivate() method missing`);let f=s.findDependents(d,this._plugins,this._services),h=f.map(m=>this._plugins.get(m));for(let m of h)if(!m.deactivate)throw new TypeError(`Plugin ${m.id}#deactivate() method missing (depends on ${d})`);for(let m of h){let p=[...m.requires,...m.optional].map(_=>{let w=this._services.get(_);return w?this._plugins.get(w).service:null});await m.deactivate(this.application,...p),m.service=null,m.activated=!1}return f.pop(),f}async resolveRequiredService(d){let c=this._services.get(d);if(!c)throw new TypeError(`No provider for: ${d.name}.`);let f=this._plugins.get(c);return f.activated||await this.activatePlugin(c),f.service}async resolveOptionalService(d){let c=this._services.get(d);if(!c)return null;let f=this._plugins.get(c);if(!f.activated)try{await this.activatePlugin(c)}catch(h){return console.error(h),null}return f.service}}var s;(function(u){class d{constructor(_){var w,v,g,b;this._activated=!1,this._promise=null,this._service=null,this.id=_.id,this.description=(w=_.description)!==null&&w!==void 0?w:"",this.activate=_.activate,this.deactivate=(v=_.deactivate)!==null&&v!==void 0?v:null,this.provides=(g=_.provides)!==null&&g!==void 0?g:null,this.autoStart=(b=_.autoStart)!==null&&b!==void 0?b:!1,this.requires=_.requires?_.requires.slice():[],this.optional=_.optional?_.optional.slice():[]}get activated(){return this._activated}set activated(_){this._activated=_}get service(){return this._service}set service(_){this._service=_}get promise(){return this._promise}set promise(_){this._promise=_}}function c(p){return new d(p)}u.createPluginData=c;function f(p,_,w){let v=[...p.requires,...p.optional],g=y=>{if(y===p.provides)return!0;let M=w.get(y);if(!M)return!1;let S=_.get(M),E=[...S.requires,...S.optional];return E.length===0?!1:(b.push(M),E.some(g)?!0:(b.pop(),!1))};if(!p.provides||v.length===0)return;let b=[p.id];if(v.some(g))throw new ReferenceError(`Cycle detected: ${b.join(" -> ")}.`)}u.ensureNoCycle=f;function h(p,_,w){let v=new Array,g=E=>{let P=_.get(E),x=[...P.requires,...P.optional];v.push(...x.reduce((I,L)=>{let R=w.get(L);return R&&I.push([E,R]),I},[]))};for(let E of _.keys())g(E);let b=v.filter(E=>E[1]===p),y=0;for(;b.length>y;){let E=b.length,P=new Set(b.map(x=>x[0]));for(let x of P)v.filter(I=>I[1]===x).forEach(I=>{b.includes(I)||b.push(I)});y=E}let M=e.topologicSort(b),S=M.findIndex(E=>E===p);return S===-1?[p]:M.slice(0,S+1)}u.findDependents=h;function m(p,_){let w=new Set;for(let v of p.keys())p.get(v).autoStart===!0&&w.add(v);if(_.startPlugins)for(let v of _.startPlugins)w.add(v);if(_.ignorePlugins)for(let v of _.ignorePlugins)w.delete(v);return Array.from(w)}u.collectStartupPlugins=m})(s||(s={}));class r{constructor(){this.promise=new Promise((d,c)=>{this._resolve=d,this._reject=c})}resolve(d){let c=this._resolve;c(d)}reject(d){let c=this._reject;c(d)}}class o{constructor(d,c){this.name=d,this.description=c??"",this._tokenStructuralPropertyT=null}}function a(u){let d=0;for(let c=0,f=u.length;c<f;++c)c%4===0&&(d=Math.random()*4294967295>>>0),u[c]=d&255,d>>>=8}n.Random=void 0,(function(u){u.getRandomValues=(()=>{let d=typeof window<"u"&&(window.crypto||window.msCrypto)||null;return d&&typeof d.getRandomValues=="function"?function(f){return d.getRandomValues(f)}:a})()})(n.Random||(n.Random={}));function l(u){let d=new Uint8Array(16),c=new Array(256);for(let f=0;f<16;++f)c[f]="0"+f.toString(16);for(let f=16;f<256;++f)c[f]=f.toString(16);return function(){return u(d),d[6]=64|d[6]&15,d[8]=128|d[8]&63,c[d[0]]+c[d[1]]+c[d[2]]+c[d[3]]+"-"+c[d[4]]+c[d[5]]+"-"+c[d[6]]+c[d[7]]+"-"+c[d[8]]+c[d[9]]+"-"+c[d[10]]+c[d[11]]+c[d[12]]+c[d[13]]+c[d[14]]+c[d[15]]}}n.UUID=void 0,(function(u){u.uuid4=l(n.Random.getRandomValues)})(n.UUID||(n.UUID={})),n.MimeData=t,n.PluginRegistry=i,n.PromiseDelegate=r,n.Token=o}))});var Ie=ye(Se());var $e=class{constructor(){this._first=null,this._last=null,this._size=0}get isEmpty(){return this._size===0}get size(){return this._size}get length(){return this._size}get first(){return this._first?this._first.value:void 0}get last(){return this._last?this._last.value:void 0}get firstNode(){return this._first}get lastNode(){return this._last}*[Symbol.iterator](){let e=this._first;for(;e;)yield e.value,e=e.next}*retro(){let e=this._last;for(;e;)yield e.value,e=e.prev}*nodes(){let e=this._first;for(;e;)yield e,e=e.next}*retroNodes(){let e=this._last;for(;e;)yield e,e=e.prev}assign(e){this.clear();for(let t of e)this.addLast(t)}push(e){this.addLast(e)}pop(){return this.removeLast()}shift(e){this.addFirst(e)}unshift(){return this.removeFirst()}addFirst(e){let t=new Ee.LinkedListNode(this,e);return this._first?(t.next=this._first,this._first.prev=t,this._first=t):(this._first=t,this._last=t),this._size++,t}addLast(e){let t=new Ee.LinkedListNode(this,e);return this._last?(t.prev=this._last,this._last.next=t,this._last=t):(this._first=t,this._last=t),this._size++,t}insertBefore(e,t){if(!t||t===this._first)return this.addFirst(e);if(!(t instanceof Ee.LinkedListNode)||t.list!==this)throw new Error("Reference node is not owned by the list.");let i=new Ee.LinkedListNode(this,e),s=t,r=s.prev;return i.next=s,i.prev=r,s.prev=i,r.next=i,this._size++,i}insertAfter(e,t){if(!t||t===this._last)return this.addLast(e);if(!(t instanceof Ee.LinkedListNode)||t.list!==this)throw new Error("Reference node is not owned by the list.");let i=new Ee.LinkedListNode(this,e),s=t,r=s.next;return i.next=r,i.prev=s,s.next=i,r.prev=i,this._size++,i}removeFirst(){let e=this._first;if(e)return e===this._last?(this._first=null,this._last=null):(this._first=e.next,this._first.prev=null),e.list=null,e.next=null,e.prev=null,this._size--,e.value}removeLast(){let e=this._last;if(e)return e===this._first?(this._first=null,this._last=null):(this._last=e.prev,this._last.next=null),e.list=null,e.next=null,e.prev=null,this._size--,e.value}removeNode(e){if(!(e instanceof Ee.LinkedListNode)||e.list!==this)throw new Error("Node is not owned by the list.");let t=e;t===this._first&&t===this._last?(this._first=null,this._last=null):t===this._first?(this._first=t.next,this._first.prev=null):t===this._last?(this._last=t.prev,this._last.next=null):(t.next.prev=t.prev,t.prev.next=t.next),t.list=null,t.next=null,t.prev=null,this._size--}clear(){let e=this._first;for(;e;){let t=e.next;e.list=null,e.prev=null,e.next=null,e=t}this._first=null,this._last=null,this._size=0}};(function(n){function e(t){let i=new n;return i.assign(t),i}n.from=e})($e||($e={}));var Ee;(function(n){class e{constructor(i,s){this.list=null,this.next=null,this.prev=null,this.list=i,this.value=s}}n.LinkedListNode=e})(Ee||(Ee={}));var ae=class{constructor(e){this.type=e}get isConflatable(){return!1}conflate(e){return!1}},Pe=class extends ae{get isConflatable(){return!0}conflate(e){return!0}},z;(function(n){let e=null,t=(E=>P=>{let x=!1;return E.then(()=>!x&&P()),()=>{x=!0}})(Promise.resolve());function i(E,P){let x=f.get(E);if(!x||x.length===0){w(E,P);return}(0,Ie.every)((0,Ie.retro)(x),L=>L?_(L,E,P):!0)&&w(E,P)}n.sendMessage=i;function s(E,P){if(!P.isConflatable){v(E,P);return}(0,Ie.some)(c,I=>I.handler!==E||!I.msg||I.msg.type!==P.type||!I.msg.isConflatable?!1:I.msg.conflate(P))||v(E,P)}n.postMessage=s;function r(E,P){let x=f.get(E);x&&x.indexOf(P)!==-1||(x?x.push(P):f.set(E,[P]))}n.installMessageHook=r;function o(E,P){let x=f.get(E);if(!x)return;let I=x.indexOf(P);I!==-1&&(x[I]=null,b(x))}n.removeMessageHook=o;function a(E){let P=f.get(E);P&&P.length>0&&(Ie.ArrayExt.fill(P,null),b(P));for(let x of c)x.handler===E&&(x.handler=null,x.msg=null)}n.clearData=a;function l(){p||e===null||(e(),e=null,p=!0,g(),p=!1)}n.flush=l;function u(){return m}n.getExceptionHandler=u;function d(E){let P=m;return m=E,P}n.setExceptionHandler=d;let c=new $e,f=new WeakMap,h=new Set,m=E=>{console.error(E)},p=!1;function _(E,P,x){let I=!0;try{typeof E=="function"?I=E(P,x):I=E.messageHook(P,x)}catch(L){m(L)}return I}function w(E,P){try{E.processMessage(P)}catch(x){m(x)}}function v(E,P){c.addLast({handler:E,msg:P}),e===null&&(e=t(g))}function g(){if(e=null,c.isEmpty)return;let E={handler:null,msg:null};for(c.addLast(E);;){let P=c.removeFirst();if(P===E)return;P.handler&&P.msg&&i(P.handler,P.msg)}}function b(E){h.size===0&&t(y),h.add(E)}function y(){h.forEach(M),h.clear()}function M(E){Ie.ArrayExt.removeAllWhere(E,S)}function S(E){return E===null}})(z||(z={}));var A=ye(Se()),Le=ye(ht());var Ot;(function(n){function e(t){let i=document.body,s=r=>{r.preventDefault(),r.stopPropagation(),r.clipboardData.setData("text",t),i.removeEventListener("copy",s,!0)};i.addEventListener("copy",s,!0),document.execCommand("copy")}n.copyText=e})(Ot||(Ot={}));var $;(function(n){function e(r){let o=window.getComputedStyle(r),a=parseFloat(o.borderTopWidth)||0,l=parseFloat(o.borderLeftWidth)||0,u=parseFloat(o.borderRightWidth)||0,d=parseFloat(o.borderBottomWidth)||0,c=parseFloat(o.paddingTop)||0,f=parseFloat(o.paddingLeft)||0,h=parseFloat(o.paddingRight)||0,m=parseFloat(o.paddingBottom)||0,p=l+f+h+u,_=a+c+m+d;return{borderTop:a,borderLeft:l,borderRight:u,borderBottom:d,paddingTop:c,paddingLeft:f,paddingRight:h,paddingBottom:m,horizontalSum:p,verticalSum:_}}n.boxSizing=e;function t(r){let o=window.getComputedStyle(r),a=parseFloat(o.minWidth)||0,l=parseFloat(o.minHeight)||0,u=parseFloat(o.maxWidth)||1/0,d=parseFloat(o.maxHeight)||1/0;return u=Math.max(a,u),d=Math.max(l,d),{minWidth:a,minHeight:l,maxWidth:u,maxHeight:d}}n.sizeLimits=t;function i(r,o,a){let l=r.getBoundingClientRect();return o>=l.left&&o<l.right&&a>=l.top&&a<l.bottom}n.hitTest=i;function s(r,o){let a=r.getBoundingClientRect(),l=o.getBoundingClientRect();if(!(l.top<=a.top&&l.bottom>=a.bottom)){if(l.top<a.top&&l.height<=a.height){r.scrollTop-=a.top-l.top;return}if(l.bottom>a.bottom&&l.height>=a.height){r.scrollTop-=a.top-l.top;return}if(l.top<a.top&&l.height>a.height){r.scrollTop-=a.bottom-l.bottom;return}if(l.bottom>a.bottom&&l.height<a.height){r.scrollTop-=a.bottom-l.bottom;return}}}n.scrollIntoViewIfNeeded=s})($||($={}));var se;(function(n){n.IS_MAC=!!navigator.platform.match(/Mac/i),n.IS_WIN=!!navigator.platform.match(/Win/i),n.IS_IE=/Trident/.test(navigator.userAgent),n.IS_EDGE=/Edge/.test(navigator.userAgent);function e(t){return n.IS_MAC?t.metaKey:t.ctrlKey}n.accelKey=e})(se||(se={}));var _e;(function(n){function e(s){if(s in ge.specificityCache)return ge.specificityCache[s];let r=ge.calculateSingle(s);return ge.specificityCache[s]=r}n.calculateSpecificity=e;function t(s){if(s in ge.validityCache)return ge.validityCache[s];let r=!0;try{ge.testElem.querySelector(s)}catch{r=!1}return ge.validityCache[s]=r}n.isValid=t;function i(s,r){return ge.protoMatchFunc.call(s,r)}n.matches=i})(_e||(_e={}));var ge;(function(n){n.specificityCache=Object.create(null),n.validityCache=Object.create(null),n.testElem=document.createElement("div"),n.protoMatchFunc=(()=>{let d=Element.prototype;return d.matches||d.matchesSelector||d.mozMatchesSelector||d.msMatchesSelector||d.oMatchesSelector||d.webkitMatchesSelector||function(c){let f=this,h=f.ownerDocument?f.ownerDocument.querySelectorAll(c):[];return Array.prototype.indexOf.call(h,f)!==-1}})();function e(d){d=d.split(",",1)[0];let c=0,f=0,h=0;function m(p){let _=d.match(p);return _===null?!1:(d=d.slice(_[0].length),!0)}for(d=d.replace(u," $1 ");d.length>0;){if(m(t)){c++;continue}if(m(i)){f++;continue}if(m(s)){f++;continue}if(m(o)){h++;continue}if(m(a)){f++;continue}if(m(r)){h++;continue}if(!m(l))return 0}return c=Math.min(c,255),f=Math.min(f,255),h=Math.min(h,255),c<<16|f<<8|h}n.calculateSingle=e;let t=/^#[^\s\+>~#\.\[:]+/,i=/^\.[^\s\+>~#\.\[:]+/,s=/^\[[^\]]+\]/,r=/^[^\s\+>~#\.\[:]+/,o=/^(::[^\s\+>~#\.\[:]+|:first-line|:first-letter|:before|:after)/,a=/^:[^\s\+>~#\.\[:]+/,l=/^[\s\+>~\*]+/,u=/:not\(([^\)]+)\)/g})(ge||(ge={}));var oe=class{constructor(e){this._pid=We.nextPID(),this.name=e.name,this._create=e.create,this._coerce=e.coerce||null,this._compare=e.compare||null,this._changed=e.changed||null}get(e){let t,i=We.ensureMap(e);return this._pid in i?t=i[this._pid]:t=i[this._pid]=this._createValue(e),t}set(e,t){let i,s=We.ensureMap(e);this._pid in s?i=s[this._pid]:i=s[this._pid]=this._createValue(e);let r=this._coerceValue(e,t);this._maybeNotify(e,i,s[this._pid]=r)}coerce(e){let t,i=We.ensureMap(e);this._pid in i?t=i[this._pid]:t=i[this._pid]=this._createValue(e);let s=this._coerceValue(e,t);this._maybeNotify(e,t,i[this._pid]=s)}_createValue(e){let t=this._create;return t(e)}_coerceValue(e,t){let i=this._coerce;return i?i(e,t):t}_compareValue(e,t){let i=this._compare;return i?i(e,t):e===t}_maybeNotify(e,t,i){let s=this._changed;s&&!this._compareValue(t,i)&&s(e,t,i)}};(function(n){function e(t){We.ownerData.delete(t)}n.clearData=e})(oe||(oe={}));var We;(function(n){n.ownerData=new WeakMap,n.nextPID=(()=>{let t=0;return()=>`pid-${`${Math.random()}`.slice(2)}-${t++}`})();function e(t){let i=n.ownerData.get(t);return i||(i=Object.create(null),n.ownerData.set(t,i),i)}n.ensureMap=e})(We||(We={}));var ut=ye(Se()),gi=ye(ht()),U=class{constructor(e){this.sender=e}connect(e,t){return ce.connect(this,e,t)}disconnect(e,t){return ce.disconnect(this,e,t)}emit(e){ce.emit(this,e)}};(function(n){function e(l,u){ce.disconnectBetween(l,u)}n.disconnectBetween=e;function t(l){ce.disconnectSender(l)}n.disconnectSender=t;function i(l){ce.disconnectReceiver(l)}n.disconnectReceiver=i;function s(l){ce.disconnectAll(l)}n.disconnectAll=s;function r(l){ce.disconnectAll(l)}n.clearData=r;function o(){return ce.exceptionHandler}n.getExceptionHandler=o;function a(l){let u=ce.exceptionHandler;return ce.exceptionHandler=l,u}n.setExceptionHandler=a})(U||(U={}));var ce;(function(n){n.exceptionHandler=v=>{console.error(v)};function e(v,g,b){b=b||void 0;let y=l.get(v.sender);if(y||(y=[],l.set(v.sender,y)),f(y,v,g,b))return!1;let M=b||g,S=u.get(M);S||(S=[],u.set(M,S));let E={signal:v,slot:g,thisArg:b};return y.push(E),S.push(E),!0}n.connect=e;function t(v,g,b){b=b||void 0;let y=l.get(v.sender);if(!y||y.length===0)return!1;let M=f(y,v,g,b);if(!M)return!1;let S=b||g,E=u.get(S);return M.signal=null,m(y),m(E),!0}n.disconnect=t;function i(v,g){let b=l.get(v);if(!b||b.length===0)return;let y=u.get(g);if(!(!y||y.length===0)){for(let M of y)M.signal&&M.signal.sender===v&&(M.signal=null);m(b),m(y)}}n.disconnectBetween=i;function s(v){let g=l.get(v);if(!(!g||g.length===0)){for(let b of g){if(!b.signal)continue;let y=b.thisArg||b.slot;b.signal=null,m(u.get(y))}m(g)}}n.disconnectSender=s;function r(v){let g=u.get(v);if(!(!g||g.length===0)){for(let b of g){if(!b.signal)continue;let y=b.signal.sender;b.signal=null,m(l.get(y))}m(g)}}n.disconnectReceiver=r;function o(v){s(v),r(v)}n.disconnectAll=o;function a(v,g){let b=l.get(v.sender);if(!(!b||b.length===0))for(let y=0,M=b.length;y<M;++y){let S=b[y];S.signal===v&&h(S,g)}}n.emit=a;let l=new WeakMap,u=new WeakMap,d=new Set,c=typeof requestAnimationFrame=="function"?requestAnimationFrame:setImmediate;function f(v,g,b,y){return(0,ut.find)(v,M=>M.signal===g&&M.slot===b&&M.thisArg===y)}function h(v,g){let{signal:b,slot:y,thisArg:M}=v;try{y.call(M,b.sender,g)}catch(S){n.exceptionHandler(S)}}function m(v){d.size===0&&c(p),d.add(v)}function p(){d.forEach(_),d.clear()}function _(v){ut.ArrayExt.removeAllWhere(v,w)}function w(v){return v.signal===null}})(ce||(ce={}));var Re=class{constructor(e){this._fn=e}get isDisposed(){return!this._fn}dispose(){if(!this._fn)return;let e=this._fn;this._fn=null,e()}};var Qe=class{constructor(){this._isDisposed=!1,this._items=new Set}get isDisposed(){return this._isDisposed}dispose(){this._isDisposed||(this._isDisposed=!0,this._items.forEach(e=>{e.dispose()}),this._items.clear())}contains(e){return this._items.has(e)}add(e){this._items.add(e)}remove(e){this._items.delete(e)}clear(){this._items.clear()}};(function(n){function e(t){let i=new n;for(let s of t)i.add(s);return i}n.from=e})(Qe||(Qe={}));var mt=class extends Qe{constructor(){super(...arguments),this._disposed=new U(this)}get disposed(){return this._disposed}dispose(){this.isDisposed||(super.dispose(),this._disposed.emit(void 0),U.clearData(this))}};(function(n){function e(t){let i=new n;for(let s of t)i.add(s);return i}n.from=e})(mt||(mt={}));var le=class n{constructor(e){this._onScrollFrame=()=>{if(!this._scrollTarget)return;let{element:t,edge:i,distance:s}=this._scrollTarget,r=re.SCROLL_EDGE_SIZE-s,o=Math.pow(r/re.SCROLL_EDGE_SIZE,2),a=Math.max(1,Math.round(o*re.SCROLL_EDGE_SIZE));switch(i){case"top":t.scrollTop-=a;break;case"left":t.scrollLeft-=a;break;case"right":t.scrollLeft+=a;break;case"bottom":t.scrollTop+=a;break}requestAnimationFrame(this._onScrollFrame)},this._disposed=!1,this._dropAction="none",this._override=null,this._currentTarget=null,this._currentElement=null,this._promise=null,this._scrollTarget=null,this._resolve=null,this.document=e.document||document,this.mimeData=e.mimeData,this.dragImage=e.dragImage||null,this.proposedAction=e.proposedAction||"copy",this.supportedActions=e.supportedActions||"all",this.source=e.source||null}dispose(){if(!this._disposed){if(this._disposed=!0,this._currentTarget){let e=new PointerEvent("pointerup",{bubbles:!0,cancelable:!0,clientX:-1,clientY:-1});re.dispatchDragLeave(this,this._currentTarget,null,e)}this._finalize("none")}}get isDisposed(){return this._disposed}start(e,t){if(this._disposed)return Promise.resolve("none");if(this._promise)return this._promise;this._addListeners(),this._attachDragImage(e,t),this._promise=new Promise(s=>{this._resolve=s});let i=new PointerEvent("pointermove",{bubbles:!0,cancelable:!0,clientX:e,clientY:t});return document.dispatchEvent(i),this._promise}handleEvent(e){switch(e.type){case"pointermove":this._evtPointerMove(e);break;case"pointerup":this._evtPointerUp(e);break;case"keydown":this._evtKeyDown(e);break;default:e.preventDefault(),e.stopPropagation();break}}moveDragImage(e,t){if(!this.dragImage)return;let i=this.dragImage.style;i.transform=`translate(${e}px, ${t}px)`}_evtPointerMove(e){e.preventDefault(),e.stopPropagation(),this._updateCurrentTarget(e),this._updateDragScroll(e),this.moveDragImage(e.clientX,e.clientY)}_evtPointerUp(e){if(e.preventDefault(),e.stopPropagation(),e.button!==0)return;if(this._updateCurrentTarget(e),!this._currentTarget){this._finalize("none");return}if(this._dropAction==="none"){re.dispatchDragLeave(this,this._currentTarget,null,e),this._finalize("none");return}let t=re.dispatchDrop(this,this._currentTarget,e);this._finalize(t)}_evtKeyDown(e){e.preventDefault(),e.stopPropagation(),e.keyCode===27&&this.dispose()}_addListeners(){document.addEventListener("pointerdown",this,!0),document.addEventListener("pointermove",this,!0),document.addEventListener("pointerup",this,!0),document.addEventListener("pointerenter",this,!0),document.addEventListener("pointerleave",this,!0),document.addEventListener("pointerover",this,!0),document.addEventListener("pointerout",this,!0),document.addEventListener("keydown",this,!0),document.addEventListener("keyup",this,!0),document.addEventListener("keypress",this,!0),document.addEventListener("contextmenu",this,!0)}_removeListeners(){document.removeEventListener("pointerdown",this,!0),document.removeEventListener("pointermove",this,!0),document.removeEventListener("pointerup",this,!0),document.removeEventListener("pointerenter",this,!0),document.removeEventListener("pointerleave",this,!0),document.removeEventListener("pointerover",this,!0),document.removeEventListener("pointerout",this,!0),document.removeEventListener("keydown",this,!0),document.removeEventListener("keyup",this,!0),document.removeEventListener("keypress",this,!0),document.removeEventListener("contextmenu",this,!0)}_updateDragScroll(e){let t=re.findScrollTarget(e);!this._scrollTarget&&!t||(this._scrollTarget||setTimeout(this._onScrollFrame,500),this._scrollTarget=t)}_updateCurrentTarget(e){let t=this._currentTarget,i=this._currentTarget,s=this._currentElement,r=re.findElementBehindBackdrop(e,this.document);this._currentElement=r,r!==s&&r!==i&&re.dispatchDragExit(this,i,r,e),r!==s&&r!==i&&(i=re.dispatchDragEnter(this,r,i,e)),i!==t&&(this._currentTarget=i,re.dispatchDragLeave(this,t,i,e));let o=re.dispatchDragOver(this,i,e);this._setDropAction(o)}_attachDragImage(e,t){if(!this.dragImage)return;this.dragImage.classList.add("lm-mod-drag-image");let i=this.dragImage.style;i.pointerEvents="none",i.position="fixed",i.transform=`translate(${e}px, ${t}px)`,(this.document instanceof Document?this.document.body:this.document.firstElementChild).appendChild(this.dragImage)}_detachDragImage(){if(!this.dragImage)return;let e=this.dragImage.parentNode;e&&e.removeChild(this.dragImage)}_setDropAction(e){if(e=re.validateAction(e,this.supportedActions),!(this._override&&this._dropAction===e))switch(e){case"none":this._dropAction=e,this._override=n.overrideCursor("no-drop",this.document);break;case"copy":this._dropAction=e,this._override=n.overrideCursor("copy",this.document);break;case"link":this._dropAction=e,this._override=n.overrideCursor("alias",this.document);break;case"move":this._dropAction=e,this._override=n.overrideCursor("move",this.document);break}}_finalize(e){let t=this._resolve;this._removeListeners(),this._detachDragImage(),this._override&&(this._override.dispose(),this._override=null),this.mimeData.clear(),this._disposed=!0,this._dropAction="none",this._currentTarget=null,this._currentElement=null,this._scrollTarget=null,this._promise=null,this._resolve=null,t&&t(e)}};(function(n){class e extends DragEvent{constructor(s,r){super(r.type,{bubbles:!0,cancelable:!0,altKey:s.altKey,button:s.button,clientX:s.clientX,clientY:s.clientY,ctrlKey:s.ctrlKey,detail:0,metaKey:s.metaKey,relatedTarget:r.related,screenX:s.screenX,screenY:s.screenY,shiftKey:s.shiftKey,view:window});let{drag:o}=r;this.dropAction="none",this.mimeData=o.mimeData,this.proposedAction=o.proposedAction,this.supportedActions=o.supportedActions,this.source=o.source}}n.Event=e;function t(i,s=document){return re.overrideCursor(i,s)}n.overrideCursor=t})(le||(le={}));var re;(function(n){n.SCROLL_EDGE_SIZE=20;function e(b,y){return c[b]&f[y]?b:"none"}n.validateAction=e;function t(b,y=document){if(b){if(i&&b==i.event)return i.element;n.cursorBackdrop.style.zIndex="-1000";let M=y.elementFromPoint(b.clientX,b.clientY);return n.cursorBackdrop.style.zIndex="",i={event:b,element:M},M}else{let M=n.cursorBackdrop.style.transform;if(s&&M===s.transform)return s.element;let S=n.cursorBackdrop.getBoundingClientRect();n.cursorBackdrop.style.zIndex="-1000";let E=y.elementFromPoint(S.left+S.width/2,S.top+S.height/2);return n.cursorBackdrop.style.zIndex="",s={transform:M,element:E},E}}n.findElementBehindBackdrop=t;let i=null,s=null;function r(b){let y=b.clientX,M=b.clientY,S=t(b);for(;S;S=S.parentElement){if(!S.hasAttribute("data-lm-dragscroll"))continue;let E=0,P=0;S===document.body&&(E=window.pageXOffset,P=window.pageYOffset);let x=S.getBoundingClientRect(),I=x.top+P,L=x.left+E,R=L+x.width,O=I+x.height;if(y<L||y>=R||M<I||M>=O)continue;let K=y-L+1,F=M-I+1,V=R-y,Z=O-M,j=Math.min(K,F,V,Z);if(j>n.SCROLL_EDGE_SIZE)continue;let X;switch(j){case Z:X="bottom";break;case F:X="top";break;case V:X="right";break;case K:X="left";break;default:throw"unreachable"}let G=S.scrollWidth-S.clientWidth,ee=S.scrollHeight-S.clientHeight,ie;switch(X){case"top":ie=ee>0&&S.scrollTop>0;break;case"left":ie=G>0&&S.scrollLeft>0;break;case"right":ie=G>0&&S.scrollLeft<G;break;case"bottom":ie=ee>0&&S.scrollTop<ee;break;default:throw"unreachable"}if(ie)return{element:S,edge:X,distance:j}}return null}n.findScrollTarget=r;function o(b,y,M,S){if(!y)return null;let E=new le.Event(S,{drag:b,related:M,type:"lm-dragenter"});if(!y.dispatchEvent(E))return y;let x=b.document instanceof Document?b.document.body:b.document.firstElementChild;return y===x?M:(E=new le.Event(S,{drag:b,related:M,type:"lm-dragenter"}),x.dispatchEvent(E),x)}n.dispatchDragEnter=o;function a(b,y,M,S){if(!y)return;let E=new le.Event(S,{drag:b,related:M,type:"lm-dragexit"});y.dispatchEvent(E)}n.dispatchDragExit=a;function l(b,y,M,S){if(!y)return;let E=new le.Event(S,{drag:b,related:M,type:"lm-dragleave"});y.dispatchEvent(E)}n.dispatchDragLeave=l;function u(b,y,M){if(!y)return"none";let S=new le.Event(M,{drag:b,related:null,type:"lm-dragover"});return y.dispatchEvent(S)?"none":S.dropAction}n.dispatchDragOver=u;function d(b,y,M){if(!y)return"none";let S=new le.Event(M,{drag:b,related:null,type:"lm-drop"});return y.dispatchEvent(S)?"none":S.dropAction}n.dispatchDrop=d;let c={none:0,copy:1,link:2,move:4},f={none:c.none,copy:c.copy,link:c.link,move:c.move,"copy-link":c.copy|c.link,"copy-move":c.copy|c.move,"link-move":c.link|c.move,all:c.copy|c.link|c.move};function h(b,y=document){let M=++g,S=y instanceof Document?y.body:y.firstElementChild;return n.cursorBackdrop.isConnected||(n.cursorBackdrop.style.transform="scale(0)",S.appendChild(n.cursorBackdrop),_(),document.addEventListener("pointermove",m,{capture:!0,passive:!0}),n.cursorBackdrop.addEventListener("scroll",p,{capture:!0,passive:!0})),n.cursorBackdrop.style.cursor=b,new Re(()=>{M===g&&n.cursorBackdrop.isConnected&&(document.removeEventListener("pointermove",m,!0),n.cursorBackdrop.removeEventListener("scroll",p,!0),S.removeChild(n.cursorBackdrop))})}n.overrideCursor=h;function m(b){n.cursorBackdrop&&(n.cursorBackdrop.style.transform=`translate(${b.clientX}px, ${b.clientY}px)`)}function p(b){if(!n.cursorBackdrop)return;let y=t();if(!y)return;let M=y.closest("[data-lm-dragscroll]");M&&(M.scrollTop+=n.cursorBackdrop.scrollTop-w,M.scrollLeft+=n.cursorBackdrop.scrollLeft-w,_())}function _(){n.cursorBackdrop.scrollTop=w,n.cursorBackdrop.scrollLeft=w}let w=500;function v(){let b=document.createElement("div");return b.classList.add("lm-cursor-backdrop"),b}let g=0;n.cursorBackdrop=v()})(re||(re={}));var Ft=ye(Se()),ne=ye(ht());function Ke(){return Mt.keyboardLayout}var et=class n{constructor(e,t,i=[]){this.name=e,this._codes=t,this._keys=n.extractKeys(t),this._modifierKeys=n.convertToKeySet(i)}keys(){return Object.keys(this._keys)}isValidKey(e){return e in this._keys}isModifierKey(e){return e in this._modifierKeys}keyForKeydownEvent(e){return this._codes[e.keyCode]||""}};(function(n){function e(i){let s=Object.create(null);for(let r in i)s[i[r]]=!0;return s}n.extractKeys=e;function t(i){let s=Object(null);for(let r=0,o=i.length;r<o;++r)s[i[r]]=!0;return s}n.convertToKeySet=t})(et||(et={}));var _i=new et("en-us",{8:"Backspace",9:"Tab",13:"Enter",16:"Shift",17:"Ctrl",18:"Alt",19:"Pause",27:"Escape",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"A",66:"B",67:"C",68:"D",69:"E",70:"F",71:"G",72:"H",73:"I",74:"J",75:"K",76:"L",77:"M",78:"N",79:"O",80:"P",81:"Q",82:"R",83:"S",84:"T",85:"U",86:"V",87:"W",88:"X",89:"Y",90:"Z",91:"Meta",93:"ContextMenu",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9",106:"*",107:"+",109:"-",110:".",111:"/",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",224:"Meta"},["Shift","Ctrl","Alt","Meta"]),Mt;(function(n){n.keyboardLayout=_i})(Mt||(Mt={}));var he=class n{constructor(){this._timerID=0,this._timerModifierID=0,this._replaying=!1,this._keystrokes=[],this._keydownEvents=[],this._keyBindings=[],this._exactKeyMatch=null,this._commands=new Map,this._commandChanged=new U(this),this._commandExecuted=new U(this),this._keyBindingChanged=new U(this),this._holdKeyBindingPromises=new Map}get commandChanged(){return this._commandChanged}get commandExecuted(){return this._commandExecuted}get keyBindingChanged(){return this._keyBindingChanged}get keyBindings(){return this._keyBindings}listCommands(){return Array.from(this._commands.keys())}hasCommand(e){return this._commands.has(e)}addCommand(e,t){if(this._commands.has(e))throw new Error(`Command '${e}' already registered.`);return this._commands.set(e,be.createCommand(t)),this._commandChanged.emit({id:e,type:"added"}),new Re(()=>{this._commands.delete(e),this._commandChanged.emit({id:e,type:"removed"})})}notifyCommandChanged(e){if(e!==void 0&&!this._commands.has(e))throw new Error(`Command '${e}' is not registered.`);this._commandChanged.emit({id:e,type:e?"changed":"many-changed"})}describedBy(e,t=ne.JSONExt.emptyObject){var i;let s=this._commands.get(e);return Promise.resolve((i=s?.describedBy.call(void 0,t))!==null&&i!==void 0?i:{args:null})}label(e,t=ne.JSONExt.emptyObject){var i;let s=this._commands.get(e);return(i=s?.label.call(void 0,t))!==null&&i!==void 0?i:""}mnemonic(e,t=ne.JSONExt.emptyObject){let i=this._commands.get(e);return i?i.mnemonic.call(void 0,t):-1}icon(e,t=ne.JSONExt.emptyObject){var i;return(i=this._commands.get(e))===null||i===void 0?void 0:i.icon.call(void 0,t)}iconClass(e,t=ne.JSONExt.emptyObject){let i=this._commands.get(e);return i?i.iconClass.call(void 0,t):""}iconLabel(e,t=ne.JSONExt.emptyObject){let i=this._commands.get(e);return i?i.iconLabel.call(void 0,t):""}caption(e,t=ne.JSONExt.emptyObject){let i=this._commands.get(e);return i?i.caption.call(void 0,t):""}usage(e,t=ne.JSONExt.emptyObject){let i=this._commands.get(e);return i?i.usage.call(void 0,t):""}className(e,t=ne.JSONExt.emptyObject){let i=this._commands.get(e);return i?i.className.call(void 0,t):""}dataset(e,t=ne.JSONExt.emptyObject){let i=this._commands.get(e);return i?i.dataset.call(void 0,t):{}}isEnabled(e,t=ne.JSONExt.emptyObject){let i=this._commands.get(e);return i?i.isEnabled.call(void 0,t):!1}isToggled(e,t=ne.JSONExt.emptyObject){let i=this._commands.get(e);return i?i.isToggled.call(void 0,t):!1}isToggleable(e,t=ne.JSONExt.emptyObject){let i=this._commands.get(e);return i?i.isToggleable:!1}isVisible(e,t=ne.JSONExt.emptyObject){let i=this._commands.get(e);return i?i.isVisible.call(void 0,t):!1}execute(e,t=ne.JSONExt.emptyObject){let i=this._commands.get(e);if(!i)return Promise.reject(new Error(`Command '${e}' not registered.`));let s;try{s=i.execute.call(void 0,t)}catch(o){s=Promise.reject(o)}let r=Promise.resolve(s);return this._commandExecuted.emit({id:e,args:t,result:r}),r}addKeyBinding(e){let t=be.createKeyBinding(e);return this._keyBindings.push(t),this._keyBindingChanged.emit({binding:t,type:"added"}),new Re(()=>{Ft.ArrayExt.removeFirstOf(this._keyBindings,t),this._keyBindingChanged.emit({binding:t,type:"removed"})})}processKeydownEvent(e){if(e.defaultPrevented||this._replaying)return;let t=n.keystrokeForKeydownEvent(e);if(!t){this._replayKeydownEvents(),this._clearPendingState();return}if(n.isModifierKeyPressed(e)){let{exact:o}=be.matchKeyBinding(this._keyBindings,[t],e);o?(e.preventDefault(),e.stopPropagation(),this._startModifierTimer(o)):this._clearModifierTimer();return}this._keystrokes.push(t);let{exact:i,partial:s}=be.matchKeyBinding(this._keyBindings,this._keystrokes,e),r=s.length!==0;if(!i&&!r){this._replayKeydownEvents(),this._clearPendingState();return}if((i?.preventDefault||s.some(o=>o.preventDefault))&&(e.preventDefault(),e.stopPropagation()),this._keydownEvents.push(e),i&&!r){this._executeKeyBinding(i),this._clearPendingState();return}i&&(this._exactKeyMatch=i),this._startTimer()}holdKeyBindingExecution(e,t){this._holdKeyBindingPromises.set(e,t)}processKeyupEvent(e){this._clearModifierTimer()}_startModifierTimer(e){this._clearModifierTimer(),this._timerModifierID=window.setTimeout(()=>{this._executeKeyBinding(e)},be.modifierkeyTimeOut)}_clearModifierTimer(){this._timerModifierID!==0&&(clearTimeout(this._timerModifierID),this._timerModifierID=0)}_startTimer(){this._clearTimer(),this._timerID=window.setTimeout(()=>{this._onPendingTimeout()},be.CHORD_TIMEOUT)}_clearTimer(){this._timerID!==0&&(clearTimeout(this._timerID),this._timerID=0)}_replayKeydownEvents(){this._keydownEvents.length!==0&&(this._replaying=!0,this._keydownEvents.forEach(be.replayKeyEvent),this._replaying=!1)}async _executeKeyBinding(e){if(this._holdKeyBindingPromises.size!==0){let r=[...this._keydownEvents],o=(await Promise.race([Promise.all(r.map(async a=>{var l;return(l=this._holdKeyBindingPromises.get(a))!==null&&l!==void 0?l:Promise.resolve(!0)})),new Promise(a=>{setTimeout(()=>a([!1]),be.KEYBINDING_HOLD_TIMEOUT)})])).every(Boolean);if(this._holdKeyBindingPromises.clear(),!o)return}let{command:t,args:i}=e,s={_luminoEvent:{type:"keybinding",keys:e.keys},...i};if(!this.hasCommand(t)||!this.isEnabled(t,s)){let r=this.hasCommand(t)?"enabled":"registered",a=`Cannot execute key binding '${e.keys.join(", ")}':`,l=`command '${t}' is not ${r}.`;console.warn(`${a} ${l}`);return}await this.execute(t,s)}_clearPendingState(){this._clearTimer(),this._clearModifierTimer(),this._exactKeyMatch=null,this._keystrokes.length=0,this._keydownEvents.length=0}_onPendingTimeout(){this._timerID=0,this._exactKeyMatch?this._executeKeyBinding(this._exactKeyMatch):this._replayKeydownEvents(),this._clearPendingState()}};(function(n){function e(a){let l="",u=!1,d=!1,c=!1,f=!1;for(let h of a.split(/\s+/))h==="Accel"?se.IS_MAC?d=!0:c=!0:h==="Alt"?u=!0:h==="Cmd"?d=!0:h==="Ctrl"?c=!0:h==="Shift"?f=!0:h.length>0&&(l=h);return{cmd:d,ctrl:c,alt:u,shift:f,key:l}}n.parseKeystroke=e;function t(a){let l="",u=e(a);return u.ctrl&&(l+="Ctrl "),u.alt&&(l+="Alt "),u.shift&&(l+="Shift "),u.cmd&&se.IS_MAC&&(l+="Cmd "),u.key?l+u.key:l.trim()}n.normalizeKeystroke=t;function i(a){let l;return se.IS_WIN?l=a.winKeys||a.keys:se.IS_MAC?l=a.macKeys||a.keys:l=a.linuxKeys||a.keys,l.map(t)}n.normalizeKeys=i;function s(a){return typeof a=="string"?l(a):a.map(l).join(", ");function l(u){let d=[],c=se.IS_MAC?" ":"+",f=e(u);return f.ctrl&&d.push("Ctrl"),f.alt&&d.push("Alt"),f.shift&&d.push("Shift"),se.IS_MAC&&f.cmd&&d.push("Cmd"),d.push(f.key),d.map(be.formatKey).join(c)}}n.formatKeystroke=s;function r(a){let l=Ke(),u=l.keyForKeydownEvent(a);return l.isModifierKey(u)}n.isModifierKeyPressed=r;function o(a){let l=Ke(),u=l.keyForKeydownEvent(a),d=[];return a.ctrlKey&&d.push("Ctrl"),a.altKey&&d.push("Alt"),a.shiftKey&&d.push("Shift"),a.metaKey&&se.IS_MAC&&d.push("Cmd"),l.isModifierKey(u)||d.push(u),d.join(" ")}n.keystrokeForKeydownEvent=o})(he||(he={}));var be;(function(n){n.CHORD_TIMEOUT=1e3,n.KEYBINDING_HOLD_TIMEOUT=1e3,n.modifierkeyTimeOut=500;function e(g){return{execute:g.execute,describedBy:m(typeof g.describedBy=="function"?g.describedBy:{args:null,...g.describedBy},()=>({args:null})),label:m(g.label,l),mnemonic:m(g.mnemonic,u),icon:m(g.icon,h),iconClass:m(g.iconClass,l),iconLabel:m(g.iconLabel,l),caption:m(g.caption,l),usage:m(g.usage,l),className:m(g.className,l),dataset:m(g.dataset,f),isEnabled:g.isEnabled||d,isToggled:g.isToggled||c,isToggleable:g.isToggleable||!!g.isToggled,isVisible:g.isVisible||d}}n.createCommand=e;function t(g){var b;return{keys:he.normalizeKeys(g),selector:p(g),command:g.command,args:g.args||ne.JSONExt.emptyObject,preventDefault:(b=g.preventDefault)!==null&&b!==void 0?b:!0}}n.createKeyBinding=t;function i(g,b,y){let M=null,S=[],E=1/0,P=0;for(let x=0,I=g.length;x<I;++x){let L=g[x],R=_(L.keys,b);if(R===0)continue;if(R===2){w(L.selector,y)!==-1&&S.push(L);continue}let O=w(L.selector,y);if(O===-1||O>E)continue;let K=_e.calculateSpecificity(L.selector);(!M||O<E||K>=P)&&(M=L,E=O,P=K)}return{exact:M,partial:S}}n.matchKeyBinding=i;function s(g){g.target.dispatchEvent(v(g))}n.replayKeyEvent=s;function r(g){return se.IS_MAC?o.hasOwnProperty(g)?o[g]:g:a.hasOwnProperty(g)?a[g]:g}n.formatKey=r;let o={Backspace:"\u232B",Tab:"\u21E5",Enter:"\u23CE",Shift:"\u21E7",Ctrl:"\u2303",Alt:"\u2325",Escape:"\u238B",PageUp:"\u21DE",PageDown:"\u21DF",End:"\u2198",Home:"\u2196",ArrowLeft:"\u2190",ArrowUp:"\u2191",ArrowRight:"\u2192",ArrowDown:"\u2193",Delete:"\u2326",Cmd:"\u2318"},a={Escape:"Esc",PageUp:"Page Up",PageDown:"Page Down",ArrowLeft:"Left",ArrowUp:"Up",ArrowRight:"Right",ArrowDown:"Down",Delete:"Del"},l=()=>"",u=()=>-1,d=()=>!0,c=()=>!1,f=()=>({}),h=()=>{};function m(g,b){return g===void 0?b:typeof g=="function"?g:()=>g}function p(g){if(g.selector.indexOf(",")!==-1)throw new Error(`Selector cannot contain commas: ${g.selector}`);if(!_e.isValid(g.selector))throw new Error(`Invalid selector: ${g.selector}`);return g.selector}function _(g,b){if(g.length<b.length)return 0;for(let y=0,M=b.length;y<M;++y)if(g[y]!==b[y])return 0;return g.length>b.length?2:1}function w(g,b){let y=b.target,M=b.currentTarget;for(let S=0;y!==null;y=y.parentElement,++S){if(y.hasAttribute("data-lm-suppress-shortcuts"))return-1;if(_e.matches(y,g))return S;if(y===M)return-1}return-1}function v(g){let b=document.createEvent("Event"),y=g.bubbles||!0,M=g.cancelable||!0;return b.initEvent(g.type||"keydown",y,M),b.key=g.key||"",b.keyCode=g.keyCode||0,b.which=g.keyCode||0,b.ctrlKey=g.ctrlKey||!1,b.altKey=g.altKey||!1,b.shiftKey=g.shiftKey||!1,b.metaKey=g.metaKey||!1,b.view=g.view||window,b}})(be||(be={}));var Ue=ye(Se()),je=class{constructor(e){this.type="text",this.content=e}},tt=class{constructor(e,t,i,s){this.type="element",this.tag=e,this.attrs=t,this.children=i,this.renderer=s}};function q(n){let e={},t,i=[];for(let r=1,o=arguments.length;r<o;++r){let a=arguments[r];typeof a=="string"?i.push(new je(a)):a instanceof je||a instanceof tt?i.push(a):a instanceof Array?s(i,a):(r===1||r===2)&&a&&typeof a=="object"&&("render"in a?t=a:e=a)}return new tt(n,e,i,t);function s(r,o){for(let a of o)typeof a=="string"?r.push(new je(a)):(a instanceof je||a instanceof tt)&&r.push(a)}}(function(n){n.a=n.bind(void 0,"a"),n.abbr=n.bind(void 0,"abbr"),n.address=n.bind(void 0,"address"),n.area=n.bind(void 0,"area"),n.article=n.bind(void 0,"article"),n.aside=n.bind(void 0,"aside"),n.audio=n.bind(void 0,"audio"),n.b=n.bind(void 0,"b"),n.bdi=n.bind(void 0,"bdi"),n.bdo=n.bind(void 0,"bdo"),n.blockquote=n.bind(void 0,"blockquote"),n.br=n.bind(void 0,"br"),n.button=n.bind(void 0,"button"),n.canvas=n.bind(void 0,"canvas"),n.caption=n.bind(void 0,"caption"),n.cite=n.bind(void 0,"cite"),n.code=n.bind(void 0,"code"),n.col=n.bind(void 0,"col"),n.colgroup=n.bind(void 0,"colgroup"),n.data=n.bind(void 0,"data"),n.datalist=n.bind(void 0,"datalist"),n.dd=n.bind(void 0,"dd"),n.del=n.bind(void 0,"del"),n.dfn=n.bind(void 0,"dfn"),n.div=n.bind(void 0,"div"),n.dl=n.bind(void 0,"dl"),n.dt=n.bind(void 0,"dt"),n.em=n.bind(void 0,"em"),n.embed=n.bind(void 0,"embed"),n.fieldset=n.bind(void 0,"fieldset"),n.figcaption=n.bind(void 0,"figcaption"),n.figure=n.bind(void 0,"figure"),n.footer=n.bind(void 0,"footer"),n.form=n.bind(void 0,"form"),n.h1=n.bind(void 0,"h1"),n.h2=n.bind(void 0,"h2"),n.h3=n.bind(void 0,"h3"),n.h4=n.bind(void 0,"h4"),n.h5=n.bind(void 0,"h5"),n.h6=n.bind(void 0,"h6"),n.header=n.bind(void 0,"header"),n.hr=n.bind(void 0,"hr"),n.i=n.bind(void 0,"i"),n.iframe=n.bind(void 0,"iframe"),n.img=n.bind(void 0,"img"),n.input=n.bind(void 0,"input"),n.ins=n.bind(void 0,"ins"),n.kbd=n.bind(void 0,"kbd"),n.label=n.bind(void 0,"label"),n.legend=n.bind(void 0,"legend"),n.li=n.bind(void 0,"li"),n.main=n.bind(void 0,"main"),n.map=n.bind(void 0,"map"),n.mark=n.bind(void 0,"mark"),n.meter=n.bind(void 0,"meter"),n.nav=n.bind(void 0,"nav"),n.noscript=n.bind(void 0,"noscript"),n.object=n.bind(void 0,"object"),n.ol=n.bind(void 0,"ol"),n.optgroup=n.bind(void 0,"optgroup"),n.option=n.bind(void 0,"option"),n.output=n.bind(void 0,"output"),n.p=n.bind(void 0,"p"),n.param=n.bind(void 0,"param"),n.pre=n.bind(void 0,"pre"),n.progress=n.bind(void 0,"progress"),n.q=n.bind(void 0,"q"),n.rp=n.bind(void 0,"rp"),n.rt=n.bind(void 0,"rt"),n.ruby=n.bind(void 0,"ruby"),n.s=n.bind(void 0,"s"),n.samp=n.bind(void 0,"samp"),n.section=n.bind(void 0,"section"),n.select=n.bind(void 0,"select"),n.small=n.bind(void 0,"small"),n.source=n.bind(void 0,"source"),n.span=n.bind(void 0,"span"),n.strong=n.bind(void 0,"strong"),n.sub=n.bind(void 0,"sub"),n.summary=n.bind(void 0,"summary"),n.sup=n.bind(void 0,"sup"),n.table=n.bind(void 0,"table"),n.tbody=n.bind(void 0,"tbody"),n.td=n.bind(void 0,"td"),n.textarea=n.bind(void 0,"textarea"),n.tfoot=n.bind(void 0,"tfoot"),n.th=n.bind(void 0,"th"),n.thead=n.bind(void 0,"thead"),n.time=n.bind(void 0,"time"),n.title=n.bind(void 0,"title"),n.tr=n.bind(void 0,"tr"),n.track=n.bind(void 0,"track"),n.u=n.bind(void 0,"u"),n.ul=n.bind(void 0,"ul"),n.var_=n.bind(void 0,"var"),n.video=n.bind(void 0,"video"),n.wbr=n.bind(void 0,"wbr")})(q||(q={}));var fe;(function(n){function e(i){return Ne.createDOMNode(i)}n.realize=e;function t(i,s){let r=Ne.hostMap.get(s)||[],o=Ne.asContentArray(i);Ne.hostMap.set(s,o),Ne.updateContent(s,r,o)}n.render=t})(fe||(fe={}));var Ne;(function(n){n.hostMap=new WeakMap;function e(h){return h?h instanceof Array?h:[h]:[]}n.asContentArray=e;function t(h){let m=arguments[1]||null,p=arguments[2]||null;if(m)m.insertBefore(t(h),p);else{if(h.type==="text")return document.createTextNode(h.content);if(m=document.createElement(h.tag),o(m,h.attrs),h.renderer)return h.renderer.render(m,{attrs:h.attrs,children:h.children}),m;for(let _=0,w=h.children.length;_<w;++_)t(h.children[_],m)}return m}n.createDOMNode=t;function i(h,m,p){if(m===p)return;let _=f(h,m),w=m.slice(),v=h.firstChild,g=p.length;for(let b=0;b<g;++b){if(b>=w.length){t(p[b],h);continue}let y=w[b],M=p[b];if(y===M){v=v.nextSibling;continue}if(y.type==="text"&&M.type==="text"){v.textContent!==M.content&&(v.textContent=M.content),v=v.nextSibling;continue}if(y.type==="text"||M.type==="text"){Ue.ArrayExt.insert(w,b,M),t(M,h,v);continue}if(!y.renderer!=!M.renderer){Ue.ArrayExt.insert(w,b,M),t(M,h,v);continue}let S=M.attrs.key;if(S&&S in _){let P=_[S];P.vNode!==y&&(Ue.ArrayExt.move(w,w.indexOf(P.vNode,b+1),b),h.insertBefore(P.element,v),y=P.vNode,v=P.element)}if(y===M){v=v.nextSibling;continue}let E=y.attrs.key;if(E&&E!==S){Ue.ArrayExt.insert(w,b,M),t(M,h,v);continue}if(y.tag!==M.tag){Ue.ArrayExt.insert(w,b,M),t(M,h,v);continue}a(v,y.attrs,M.attrs),M.renderer?M.renderer.render(v,{attrs:M.attrs,children:M.children}):i(v,y.children,M.children),v=v.nextSibling}s(h,w,g,!0)}n.updateContent=i;function s(h,m,p,_){for(let w=m.length-1;w>=p;--w){let v=m[w],g=_?h.lastChild:h.childNodes[w];v.type==="text"||(v.renderer&&v.renderer.unrender?v.renderer.unrender(g,{attrs:v.attrs,children:v.children}):s(g,v.children,0,!1)),_&&h.removeChild(g)}}let r={key:!0,className:!0,htmlFor:!0,dataset:!0,style:!0};function o(h,m){for(let p in m)p in r||(p.substr(0,2)==="on"?h[p]=m[p]:h.setAttribute(p,m[p]));m.className!==void 0&&h.setAttribute("class",m.className),m.htmlFor!==void 0&&h.setAttribute("for",m.htmlFor),m.dataset&&l(h,m.dataset),m.style&&d(h,m.style)}function a(h,m,p){if(m===p)return;let _;for(_ in m)_ in r||_ in p||(_.substr(0,2)==="on"?h[_]=null:h.removeAttribute(_));for(_ in p)_ in r||m[_]===p[_]||(_.substr(0,2)==="on"?h[_]=p[_]:h.setAttribute(_,p[_]));m.className!==p.className&&(p.className!==void 0?h.setAttribute("class",p.className):h.removeAttribute("class")),m.htmlFor!==p.htmlFor&&(p.htmlFor!==void 0?h.setAttribute("for",p.htmlFor):h.removeAttribute("for")),m.dataset!==p.dataset&&u(h,m.dataset||{},p.dataset||{}),m.style!==p.style&&c(h,m.style||{},p.style||{})}function l(h,m){for(let p in m)h.setAttribute(`data-${p}`,m[p])}function u(h,m,p){for(let _ in m)_ in p||h.removeAttribute(`data-${_}`);for(let _ in p)m[_]!==p[_]&&h.setAttribute(`data-${_}`,p[_])}function d(h,m){let p=h.style,_;for(_ in m)p[_]=m[_]}function c(h,m,p){let _=h.style,w;for(w in m)w in p||(_[w]="");for(w in p)m[w]!==p[w]&&(_[w]=p[w])}function f(h,m){let p=h.firstChild,_=Object.create(null);for(let w of m)w.type==="element"&&w.attrs.key&&(_[w.attrs.key]={vNode:w,element:p}),p=p.nextSibling;return _}})(Ne||(Ne={}));var Me=class{constructor(){this.sizeHint=0,this.minSize=0,this.maxSize=1/0,this.stretch=1,this.size=0,this.done=!1}},ue;(function(n){function e(r,o){let a=r.length;if(a===0)return o;let l=0,u=0,d=0,c=0,f=0;for(let p=0;p<a;++p){let _=r[p],w=_.minSize,v=_.maxSize,g=_.sizeHint;_.done=!1,_.size=Math.max(w,Math.min(g,v)),d+=_.size,l+=w,u+=v,_.stretch>0&&(c+=_.stretch,f++)}if(o===d)return 0;if(o<=l){for(let p=0;p<a;++p){let _=r[p];_.size=_.minSize}return o-l}if(o>=u){for(let p=0;p<a;++p){let _=r[p];_.size=_.maxSize}return o-u}let h=.01,m=a;if(o<d){let p=d-o;for(;f>0&&p>h;){let _=p,w=c;for(let v=0;v<a;++v){let g=r[v];if(g.done||g.stretch===0)continue;let b=g.stretch*_/w;g.size-b<=g.minSize?(p-=g.size-g.minSize,c-=g.stretch,g.size=g.minSize,g.done=!0,m--,f--):(p-=b,g.size-=b)}}for(;m>0&&p>h;){let _=p/m;for(let w=0;w<a;++w){let v=r[w];v.done||(v.size-_<=v.minSize?(p-=v.size-v.minSize,v.size=v.minSize,v.done=!0,m--):(p-=_,v.size-=_))}}}else{let p=o-d;for(;f>0&&p>h;){let _=p,w=c;for(let v=0;v<a;++v){let g=r[v];if(g.done||g.stretch===0)continue;let b=g.stretch*_/w;g.size+b>=g.maxSize?(p-=g.maxSize-g.size,c-=g.stretch,g.size=g.maxSize,g.done=!0,m--,f--):(p-=b,g.size+=b)}}for(;m>0&&p>h;){let _=p/m;for(let w=0;w<a;++w){let v=r[w];v.done||(v.size+_>=v.maxSize?(p-=v.maxSize-v.size,v.size=v.maxSize,v.done=!0,m--):(p-=_,v.size+=_))}}}return 0}n.calc=e;function t(r,o,a){r.length===0||a===0||(a>0?i(r,o,a):s(r,o,-a))}n.adjust=t;function i(r,o,a){let l=0;for(let f=0;f<=o;++f){let h=r[f];l+=h.maxSize-h.size}let u=0;for(let f=o+1,h=r.length;f<h;++f){let m=r[f];u+=m.size-m.minSize}a=Math.min(a,l,u);let d=a;for(let f=o;f>=0&&d>0;--f){let h=r[f],m=h.maxSize-h.size;m>=d?(h.sizeHint=h.size+d,d=0):(h.sizeHint=h.size+m,d-=m)}let c=a;for(let f=o+1,h=r.length;f<h&&c>0;++f){let m=r[f],p=m.size-m.minSize;p>=c?(m.sizeHint=m.size-c,c=0):(m.sizeHint=m.size-p,c-=p)}}function s(r,o,a){let l=0;for(let f=o+1,h=r.length;f<h;++f){let m=r[f];l+=m.maxSize-m.size}let u=0;for(let f=0;f<=o;++f){let h=r[f];u+=h.size-h.minSize}a=Math.min(a,l,u);let d=a;for(let f=o+1,h=r.length;f<h&&d>0;++f){let m=r[f],p=m.maxSize-m.size;p>=d?(m.sizeHint=m.size+d,d=0):(m.sizeHint=m.size+p,d-=p)}let c=a;for(let f=o;f>=0&&c>0;--f){let h=r[f],m=h.size-h.minSize;m>=c?(h.sizeHint=h.size-c,c=0):(h.sizeHint=h.size-m,c-=m)}}})(ue||(ue={}));var it=class{constructor(e){this._label="",this._caption="",this._mnemonic=-1,this._icon=void 0,this._iconClass="",this._iconLabel="",this._className="",this._closable=!1,this._changed=new U(this),this._isDisposed=!1,this.owner=e.owner,e.label!==void 0&&(this._label=e.label),e.mnemonic!==void 0&&(this._mnemonic=e.mnemonic),e.icon!==void 0&&(this._icon=e.icon),e.iconClass!==void 0&&(this._iconClass=e.iconClass),e.iconLabel!==void 0&&(this._iconLabel=e.iconLabel),e.caption!==void 0&&(this._caption=e.caption),e.className!==void 0&&(this._className=e.className),e.closable!==void 0&&(this._closable=e.closable),this._dataset=e.dataset||{}}get changed(){return this._changed}get label(){return this._label}set label(e){this._label!==e&&(this._label=e,this._changed.emit(void 0))}get mnemonic(){return this._mnemonic}set mnemonic(e){this._mnemonic!==e&&(this._mnemonic=e,this._changed.emit(void 0))}get icon(){return this._icon}set icon(e){this._icon!==e&&(this._icon=e,this._changed.emit(void 0))}get iconClass(){return this._iconClass}set iconClass(e){this._iconClass!==e&&(this._iconClass=e,this._changed.emit(void 0))}get iconLabel(){return this._iconLabel}set iconLabel(e){this._iconLabel!==e&&(this._iconLabel=e,this._changed.emit(void 0))}get caption(){return this._caption}set caption(e){this._caption!==e&&(this._caption=e,this._changed.emit(void 0))}get className(){return this._className}set className(e){this._className!==e&&(this._className=e,this._changed.emit(void 0))}get closable(){return this._closable}set closable(e){this._closable!==e&&(this._closable=e,this._changed.emit(void 0))}get dataset(){return this._dataset}set dataset(e){this._dataset!==e&&(this._dataset=e,this._changed.emit(void 0))}get isDisposed(){return this._isDisposed}dispose(){this.isDisposed||(this._isDisposed=!0,U.clearData(this))}},D=class n{constructor(e={}){this._flags=0,this._layout=null,this._parent=null,this._disposed=new U(this),this._hiddenMode=n.HiddenMode.Display,this.node=ft.createNode(e),this.addClass("lm-Widget")}dispose(){this.isDisposed||(this.setFlag(n.Flag.IsDisposed),this._disposed.emit(void 0),this.parent?this.parent=null:this.isAttached&&n.detach(this),this._layout&&(this._layout.dispose(),this._layout=null),this.title.dispose(),U.clearData(this),z.clearData(this),oe.clearData(this))}get disposed(){return this._disposed}get isDisposed(){return this.testFlag(n.Flag.IsDisposed)}get isAttached(){return this.testFlag(n.Flag.IsAttached)}get isHidden(){return this.testFlag(n.Flag.IsHidden)}get isVisible(){let e=this;do{if(e.isHidden||!e.isAttached)return!1;e=e.parent}while(e!=null);return!0}get title(){return ft.titleProperty.get(this)}get id(){return this.node.id}set id(e){this.node.id=e}get dataset(){return this.node.dataset}get hiddenMode(){return this._hiddenMode}set hiddenMode(e){this._hiddenMode!==e&&(this.isHidden&&this._toggleHidden(!1),e==n.HiddenMode.Scale?this.node.style.willChange="transform":this.node.style.willChange="auto",this._hiddenMode=e,this.isHidden&&this._toggleHidden(!0))}get parent(){return this._parent}set parent(e){if(this._parent!==e){if(e&&this.contains(e))throw new Error("Invalid parent widget.");if(this._parent&&!this._parent.isDisposed){let t=new n.ChildMessage("child-removed",this);z.sendMessage(this._parent,t)}if(this._parent=e,this._parent&&!this._parent.isDisposed){let t=new n.ChildMessage("child-added",this);z.sendMessage(this._parent,t)}this.isDisposed||z.sendMessage(this,n.Msg.ParentChanged)}}get layout(){return this._layout}set layout(e){if(this._layout!==e){if(this.testFlag(n.Flag.DisallowLayout))throw new Error("Cannot set widget layout.");if(this._layout)throw new Error("Cannot change widget layout.");if(e.parent)throw new Error("Cannot change layout parent.");this._layout=e,e.parent=this}}*children(){this._layout&&(yield*this._layout)}contains(e){for(let t=e;t;t=t._parent)if(t===this)return!0;return!1}hasClass(e){return this.node.classList.contains(e)}addClass(e){this.node.classList.add(e)}removeClass(e){this.node.classList.remove(e)}toggleClass(e,t){return t===!0?(this.node.classList.add(e),!0):t===!1?(this.node.classList.remove(e),!1):this.node.classList.toggle(e)}update(){z.postMessage(this,n.Msg.UpdateRequest)}fit(){z.postMessage(this,n.Msg.FitRequest)}activate(){z.postMessage(this,n.Msg.ActivateRequest)}close(){z.sendMessage(this,n.Msg.CloseRequest)}show(){if(this.testFlag(n.Flag.IsHidden)&&(this.isAttached&&(!this.parent||this.parent.isVisible)&&z.sendMessage(this,n.Msg.BeforeShow),this.clearFlag(n.Flag.IsHidden),this._toggleHidden(!1),this.isAttached&&(!this.parent||this.parent.isVisible)&&z.sendMessage(this,n.Msg.AfterShow),this.parent)){let e=new n.ChildMessage("child-shown",this);z.sendMessage(this.parent,e)}}hide(){if(!this.testFlag(n.Flag.IsHidden)&&(this.isAttached&&(!this.parent||this.parent.isVisible)&&z.sendMessage(this,n.Msg.BeforeHide),this.setFlag(n.Flag.IsHidden),this._toggleHidden(!0),this.isAttached&&(!this.parent||this.parent.isVisible)&&z.sendMessage(this,n.Msg.AfterHide),this.parent)){let e=new n.ChildMessage("child-hidden",this);z.sendMessage(this.parent,e)}}setHidden(e){e?this.hide():this.show()}testFlag(e){return(this._flags&e)!==0}setFlag(e){this._flags|=e}clearFlag(e){this._flags&=~e}processMessage(e){switch(e.type){case"resize":this.notifyLayout(e),this.onResize(e);break;case"update-request":this.notifyLayout(e),this.onUpdateRequest(e);break;case"fit-request":this.notifyLayout(e),this.onFitRequest(e);break;case"before-show":this.notifyLayout(e),this.onBeforeShow(e);break;case"after-show":this.setFlag(n.Flag.IsVisible),this.notifyLayout(e),this.onAfterShow(e);break;case"before-hide":this.notifyLayout(e),this.onBeforeHide(e);break;case"after-hide":this.clearFlag(n.Flag.IsVisible),this.notifyLayout(e),this.onAfterHide(e);break;case"before-attach":this.notifyLayout(e),this.onBeforeAttach(e);break;case"after-attach":!this.isHidden&&(!this.parent||this.parent.isVisible)&&this.setFlag(n.Flag.IsVisible),this.setFlag(n.Flag.IsAttached),this.notifyLayout(e),this.onAfterAttach(e);break;case"before-detach":this.notifyLayout(e),this.onBeforeDetach(e);break;case"after-detach":this.clearFlag(n.Flag.IsVisible),this.clearFlag(n.Flag.IsAttached),this.notifyLayout(e),this.onAfterDetach(e);break;case"activate-request":this.notifyLayout(e),this.onActivateRequest(e);break;case"close-request":this.notifyLayout(e),this.onCloseRequest(e);break;case"child-added":this.notifyLayout(e),this.onChildAdded(e);break;case"child-removed":this.notifyLayout(e),this.onChildRemoved(e);break;default:this.notifyLayout(e);break}}notifyLayout(e){this._layout&&this._layout.processParentMessage(e)}onCloseRequest(e){this.parent?this.parent=null:this.isAttached&&n.detach(this)}onResize(e){}onUpdateRequest(e){}onFitRequest(e){}onActivateRequest(e){}onBeforeShow(e){}onAfterShow(e){}onBeforeHide(e){}onAfterHide(e){}onBeforeAttach(e){}onAfterAttach(e){}onBeforeDetach(e){}onAfterDetach(e){}onChildAdded(e){}onChildRemoved(e){}_toggleHidden(e){if(e)switch(this._hiddenMode){case n.HiddenMode.Display:this.addClass("lm-mod-hidden");break;case n.HiddenMode.Scale:this.node.style.transform="scale(0)",this.node.setAttribute("aria-hidden","true");break;case n.HiddenMode.ContentVisibility:this.node.style.contentVisibility="hidden",this.node.style.zIndex="-1";break}else switch(this._hiddenMode){case n.HiddenMode.Display:this.removeClass("lm-mod-hidden");break;case n.HiddenMode.Scale:this.node.style.transform="",this.node.removeAttribute("aria-hidden");break;case n.HiddenMode.ContentVisibility:this.node.style.contentVisibility="",this.node.style.zIndex="";break}}};(function(n){(function(r){r[r.Display=0]="Display",r[r.Scale=1]="Scale",r[r.ContentVisibility=2]="ContentVisibility"})(n.HiddenMode||(n.HiddenMode={})),(function(r){r[r.IsDisposed=1]="IsDisposed",r[r.IsAttached=2]="IsAttached",r[r.IsHidden=4]="IsHidden",r[r.IsVisible=8]="IsVisible",r[r.DisallowLayout=16]="DisallowLayout"})(n.Flag||(n.Flag={})),(function(r){r.BeforeShow=new ae("before-show"),r.AfterShow=new ae("after-show"),r.BeforeHide=new ae("before-hide"),r.AfterHide=new ae("after-hide"),r.BeforeAttach=new ae("before-attach"),r.AfterAttach=new ae("after-attach"),r.BeforeDetach=new ae("before-detach"),r.AfterDetach=new ae("after-detach"),r.ParentChanged=new ae("parent-changed"),r.UpdateRequest=new Pe("update-request"),r.FitRequest=new Pe("fit-request"),r.ActivateRequest=new Pe("activate-request"),r.CloseRequest=new Pe("close-request")})(n.Msg||(n.Msg={}));class e extends ae{constructor(o,a){super(o),this.child=a}}n.ChildMessage=e;class t extends ae{constructor(o,a){super("resize"),this.width=o,this.height=a}}n.ResizeMessage=t,(function(r){r.UnknownSize=new r(-1,-1)})(t=n.ResizeMessage||(n.ResizeMessage={}));function i(r,o,a=null){if(r.parent)throw new Error("Cannot attach a child widget.");if(r.isAttached||r.node.isConnected)throw new Error("Widget is already attached.");if(!o.isConnected)throw new Error("Host is not attached.");z.sendMessage(r,n.Msg.BeforeAttach),o.insertBefore(r.node,a),z.sendMessage(r,n.Msg.AfterAttach)}n.attach=i;function s(r){if(r.parent)throw new Error("Cannot detach a child widget.");if(!r.isAttached||!r.node.isConnected)throw new Error("Widget is not attached.");z.sendMessage(r,n.Msg.BeforeDetach),r.node.parentNode.removeChild(r.node),z.sendMessage(r,n.Msg.AfterDetach)}n.detach=s})(D||(D={}));var ft;(function(n){n.titleProperty=new oe({name:"title",create:t=>new it({owner:t})});function e(t){return t.node||document.createElement(t.tag||"div")}n.createNode=e})(ft||(ft={}));var Be=class{constructor(e={}){this._disposed=!1,this._parent=null,this._fitPolicy=e.fitPolicy||"set-min-size"}dispose(){this._parent=null,this._disposed=!0,U.clearData(this),oe.clearData(this)}get isDisposed(){return this._disposed}get parent(){return this._parent}set parent(e){if(this._parent!==e){if(this._parent)throw new Error("Cannot change parent widget.");if(e.layout!==this)throw new Error("Invalid parent widget.");this._parent=e,this.init()}}get fitPolicy(){return this._fitPolicy}set fitPolicy(e){if(this._fitPolicy!==e&&(this._fitPolicy=e,this._parent)){let t=this._parent.node.style;t.minWidth="",t.minHeight="",t.maxWidth="",t.maxHeight="",this._parent.fit()}}processParentMessage(e){switch(e.type){case"resize":this.onResize(e);break;case"update-request":this.onUpdateRequest(e);break;case"fit-request":this.onFitRequest(e);break;case"before-show":this.onBeforeShow(e);break;case"after-show":this.onAfterShow(e);break;case"before-hide":this.onBeforeHide(e);break;case"after-hide":this.onAfterHide(e);break;case"before-attach":this.onBeforeAttach(e);break;case"after-attach":this.onAfterAttach(e);break;case"before-detach":this.onBeforeDetach(e);break;case"after-detach":this.onAfterDetach(e);break;case"child-removed":this.onChildRemoved(e);break;case"child-shown":this.onChildShown(e);break;case"child-hidden":this.onChildHidden(e);break}}init(){for(let e of this)e.parent=this.parent}onResize(e){for(let t of this)z.sendMessage(t,D.ResizeMessage.UnknownSize)}onUpdateRequest(e){for(let t of this)z.sendMessage(t,D.ResizeMessage.UnknownSize)}onBeforeAttach(e){for(let t of this)z.sendMessage(t,e)}onAfterAttach(e){for(let t of this)z.sendMessage(t,e)}onBeforeDetach(e){for(let t of this)z.sendMessage(t,e)}onAfterDetach(e){for(let t of this)z.sendMessage(t,e)}onBeforeShow(e){for(let t of this)t.isHidden||z.sendMessage(t,e)}onAfterShow(e){for(let t of this)t.isHidden||z.sendMessage(t,e)}onBeforeHide(e){for(let t of this)t.isHidden||z.sendMessage(t,e)}onAfterHide(e){for(let t of this)t.isHidden||z.sendMessage(t,e)}onChildRemoved(e){this.removeWidget(e.child)}onFitRequest(e){}onChildShown(e){}onChildHidden(e){}};(function(n){function e(r){return Ye.horizontalAlignmentProperty.get(r)}n.getHorizontalAlignment=e;function t(r,o){Ye.horizontalAlignmentProperty.set(r,o)}n.setHorizontalAlignment=t;function i(r){return Ye.verticalAlignmentProperty.get(r)}n.getVerticalAlignment=i;function s(r,o){Ye.verticalAlignmentProperty.set(r,o)}n.setVerticalAlignment=s})(Be||(Be={}));var Oe=class{constructor(e){this._top=NaN,this._left=NaN,this._width=NaN,this._height=NaN,this._minWidth=0,this._minHeight=0,this._maxWidth=1/0,this._maxHeight=1/0,this._disposed=!1,this.widget=e,this.widget.node.style.position="absolute",this.widget.node.style.contain="strict"}dispose(){if(this._disposed)return;this._disposed=!0;let e=this.widget.node.style;e.position="",e.top="",e.left="",e.width="",e.height="",e.contain=""}get minWidth(){return this._minWidth}get minHeight(){return this._minHeight}get maxWidth(){return this._maxWidth}get maxHeight(){return this._maxHeight}get isDisposed(){return this._disposed}get isHidden(){return this.widget.isHidden}get isVisible(){return this.widget.isVisible}get isAttached(){return this.widget.isAttached}fit(){let e=$.sizeLimits(this.widget.node);this._minWidth=e.minWidth,this._minHeight=e.minHeight,this._maxWidth=e.maxWidth,this._maxHeight=e.maxHeight}update(e,t,i,s){let r=Math.max(this._minWidth,Math.min(i,this._maxWidth)),o=Math.max(this._minHeight,Math.min(s,this._maxHeight));if(r<i)switch(Be.getHorizontalAlignment(this.widget)){case"left":break;case"center":e+=(i-r)/2;break;case"right":e+=i-r;break;default:throw"unreachable"}if(o<s)switch(Be.getVerticalAlignment(this.widget)){case"top":break;case"center":t+=(s-o)/2;break;case"bottom":t+=s-o;break;default:throw"unreachable"}let a=!1,l=this.widget.node.style;if(this._top!==t&&(this._top=t,l.top=`${t}px`),this._left!==e&&(this._left=e,l.left=`${e}px`),this._width!==r&&(a=!0,this._width=r,l.width=`${r}px`),this._height!==o&&(a=!0,this._height=o,l.height=`${o}px`),a){let u=new D.ResizeMessage(r,o);z.sendMessage(this.widget,u)}}},Ye;(function(n){n.horizontalAlignmentProperty=new oe({name:"horizontalAlignment",create:()=>"center",changed:e}),n.verticalAlignmentProperty=new oe({name:"verticalAlignment",create:()=>"top",changed:e});function e(t){t.parent&&t.parent.layout&&t.parent.update()}})(Ye||(Ye={}));var Xe=class extends Be{constructor(){super(...arguments),this._widgets=[]}dispose(){for(;this._widgets.length>0;)this._widgets.pop().dispose();super.dispose()}get widgets(){return this._widgets}*[Symbol.iterator](){yield*this._widgets}addWidget(e){this.insertWidget(this._widgets.length,e)}insertWidget(e,t){t.parent=this.parent;let i=this._widgets.indexOf(t),s=Math.max(0,Math.min(e,this._widgets.length));if(i===-1){A.ArrayExt.insert(this._widgets,s,t),this.parent&&this.attachWidget(s,t);return}s===this._widgets.length&&s--,i!==s&&(A.ArrayExt.move(this._widgets,i,s),this.parent&&this.moveWidget(i,s,t))}removeWidget(e){this.removeWidgetAt(this._widgets.indexOf(e))}removeWidgetAt(e){let t=A.ArrayExt.removeAt(this._widgets,e);t&&this.parent&&this.detachWidget(e,t)}init(){super.init();let e=0;for(let t of this)this.attachWidget(e++,t)}attachWidget(e,t){let i=this.parent.node.children[e];this.parent.isAttached&&z.sendMessage(t,D.Msg.BeforeAttach),this.parent.node.insertBefore(t.node,i),this.parent.isAttached&&z.sendMessage(t,D.Msg.AfterAttach)}moveWidget(e,t,i){this.parent.isAttached&&z.sendMessage(i,D.Msg.BeforeDetach),this.parent.node.removeChild(i.node),this.parent.isAttached&&z.sendMessage(i,D.Msg.AfterDetach);let s=this.parent.node.children[t];this.parent.isAttached&&z.sendMessage(i,D.Msg.BeforeAttach),this.parent.node.insertBefore(i.node,s),this.parent.isAttached&&z.sendMessage(i,D.Msg.AfterAttach)}detachWidget(e,t){this.parent.isAttached&&z.sendMessage(t,D.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.isAttached&&z.sendMessage(t,D.Msg.AfterDetach)}},nt;(function(n){function e(t){return Math.max(0,Math.floor(t))}n.clampDimension=e})(nt||(nt={}));var st=nt,De=class n extends Xe{constructor(e){super(),this.widgetOffset=0,this._fixed=0,this._spacing=4,this._dirty=!1,this._hasNormedSizes=!1,this._sizers=[],this._items=[],this._handles=[],this._box=null,this._alignment="start",this._orientation="horizontal",this.renderer=e.renderer,e.orientation!==void 0&&(this._orientation=e.orientation),e.alignment!==void 0&&(this._alignment=e.alignment),e.spacing!==void 0&&(this._spacing=nt.clampDimension(e.spacing))}dispose(){for(let e of this._items)e.dispose();this._box=null,this._items.length=0,this._sizers.length=0,this._handles.length=0,super.dispose()}get orientation(){return this._orientation}set orientation(e){this._orientation!==e&&(this._orientation=e,this.parent&&(this.parent.dataset.orientation=e,this.parent.fit()))}get alignment(){return this._alignment}set alignment(e){this._alignment!==e&&(this._alignment=e,this.parent&&(this.parent.dataset.alignment=e,this.parent.update()))}get spacing(){return this._spacing}set spacing(e){e=nt.clampDimension(e),this._spacing!==e&&(this._spacing=e,this.parent&&this.parent.fit())}get handles(){return this._handles}absoluteSizes(){return this._sizers.map(e=>e.size)}relativeSizes(){return Ae.normalize(this._sizers.map(e=>e.size))}setRelativeSizes(e,t=!0){let i=this._sizers.length,s=e.slice(0,i);for(;s.length<i;)s.push(0);let r=Ae.normalize(s);for(let o=0;o<i;++o){let a=this._sizers[o];a.sizeHint=r[o],a.size=r[o]}this._hasNormedSizes=!0,t&&this.parent&&this.parent.update()}moveHandle(e,t){let i=this._handles[e];if(!i||i.classList.contains("lm-mod-hidden"))return;let s;if(this._orientation==="horizontal"?s=t-i.offsetLeft:s=t-i.offsetTop,s!==0){for(let r of this._sizers)r.size>0&&(r.sizeHint=r.size);ue.adjust(this._sizers,e,s),this.parent&&this.parent.update()}}init(){this.parent.dataset.orientation=this.orientation,this.parent.dataset.alignment=this.alignment,super.init()}attachWidget(e,t){let i=new Oe(t),s=Ae.createHandle(this.renderer),r=Ae.averageSize(this._sizers),o=Ae.createSizer(r);A.ArrayExt.insert(this._items,e,i),A.ArrayExt.insert(this._sizers,e,o),A.ArrayExt.insert(this._handles,e,s),this.parent.isAttached&&z.sendMessage(t,D.Msg.BeforeAttach),this.parent.node.appendChild(t.node),this.parent.node.appendChild(s),this.parent.isAttached&&z.sendMessage(t,D.Msg.AfterAttach),this.parent.fit()}moveWidget(e,t,i){A.ArrayExt.move(this._items,e,t),A.ArrayExt.move(this._sizers,e,t),A.ArrayExt.move(this._handles,e,t),this.parent.fit()}detachWidget(e,t){let i=A.ArrayExt.removeAt(this._items,e),s=A.ArrayExt.removeAt(this._handles,e);A.ArrayExt.removeAt(this._sizers,e),this.parent.isAttached&&z.sendMessage(t,D.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.node.removeChild(s),this.parent.isAttached&&z.sendMessage(t,D.Msg.AfterDetach),i.dispose(),this.parent.fit()}onBeforeShow(e){super.onBeforeShow(e),this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e),this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){this.parent.isVisible&&this._update(e.width,e.height)}onUpdateRequest(e){this.parent.isVisible&&this._update(-1,-1)}onFitRequest(e){this.parent.isAttached&&this._fit()}updateItemPosition(e,t,i,s,r,o,a){let l=this._items[e];if(l.isHidden)return;let u=this._handles[e].style;t?(i+=this.widgetOffset,l.update(i,s,a,r),i+=a,u.top=`${s}px`,u.left=`${i}px`,u.width=`${this._spacing}px`,u.height=`${r}px`):(s+=this.widgetOffset,l.update(i,s,o,a),s+=a,u.top=`${s}px`,u.left=`${i}px`,u.width=`${o}px`,u.height=`${this._spacing}px`)}_fit(){let e=0,t=-1;for(let l=0,u=this._items.length;l<u;++l)this._items[l].isHidden?this._handles[l].classList.add("lm-mod-hidden"):(this._handles[l].classList.remove("lm-mod-hidden"),t=l,e++);t!==-1&&this._handles[t].classList.add("lm-mod-hidden"),this._fixed=this._spacing*Math.max(0,e-1)+this.widgetOffset*this._items.length;let i=this._orientation==="horizontal",s=i?this._fixed:0,r=i?0:this._fixed;for(let l=0,u=this._items.length;l<u;++l){let d=this._items[l],c=this._sizers[l];if(c.size>0&&(c.sizeHint=c.size),d.isHidden){c.minSize=0,c.maxSize=0;continue}d.fit(),c.stretch=n.getStretch(d.widget),i?(c.minSize=d.minWidth,c.maxSize=d.maxWidth,s+=d.minWidth,r=Math.max(r,d.minHeight)):(c.minSize=d.minHeight,c.maxSize=d.maxHeight,r+=d.minHeight,s=Math.max(s,d.minWidth))}let o=this._box=$.boxSizing(this.parent.node);s+=o.horizontalSum,r+=o.verticalSum;let a=this.parent.node.style;a.minWidth=`${s}px`,a.minHeight=`${r}px`,this._dirty=!0,this.parent.parent&&z.sendMessage(this.parent.parent,D.Msg.FitRequest),this._dirty&&z.sendMessage(this.parent,D.Msg.UpdateRequest)}_update(e,t){this._dirty=!1;let i=0;for(let c=0,f=this._items.length;c<f;++c)i+=+!this._items[c].isHidden;if(i===0&&this.widgetOffset===0)return;e<0&&(e=this.parent.node.offsetWidth),t<0&&(t=this.parent.node.offsetHeight),this._box||(this._box=$.boxSizing(this.parent.node));let s=this._box.paddingTop,r=this._box.paddingLeft,o=e-this._box.horizontalSum,a=t-this._box.verticalSum,l=0,u=0,d=this._orientation==="horizontal";if(i>0){let c;if(d?c=Math.max(0,o-this._fixed):c=Math.max(0,a-this._fixed),this._hasNormedSizes){for(let h of this._sizers)h.sizeHint*=c;this._hasNormedSizes=!1}let f=ue.calc(this._sizers,c);if(f>0)switch(this._alignment){case"start":break;case"center":l=0,u=f/2;break;case"end":l=0,u=f;break;case"justify":l=f/i,u=0;break;default:throw"unreachable"}}for(let c=0,f=this._items.length;c<f;++c){let m=this._items[c].isHidden?0:this._sizers[c].size+l;this.updateItemPosition(c,d,d?r+u:r,d?s:s+u,a,o,m);let p=this.widgetOffset+(this._handles[c].classList.contains("lm-mod-hidden")?0:this._spacing);d?r+=m+p:s+=m+p}}};(function(n){function e(i){return Ae.stretchProperty.get(i)}n.getStretch=e;function t(i,s){Ae.stretchProperty.set(i,s)}n.setStretch=t})(De||(De={}));var Ae;(function(n){n.stretchProperty=new oe({name:"stretch",create:()=>0,coerce:(o,a)=>Math.max(0,Math.floor(a)),changed:r});function e(o){let a=new Me;return a.sizeHint=Math.floor(o),a}n.createSizer=e;function t(o){let a=o.createHandle();return a.style.position="absolute",a.style.contain="style",a}n.createHandle=t;function i(o){return o.reduce((a,l)=>a+l.size,0)/o.length||0}n.averageSize=i;function s(o){let a=o.length;if(a===0)return[];let l=o.reduce((u,d)=>u+Math.abs(d),0);return l===0?o.map(u=>1/a):o.map(u=>u/l)}n.normalize=s;function r(o){o.parent&&o.parent.layout instanceof De&&o.parent.fit()}})(Ae||(Ae={}));var kt=class extends De{constructor(e){super({...e,orientation:e.orientation||"vertical"}),this._titles=[],this.titleSpace=e.titleSpace||22}get titleSpace(){return this.widgetOffset}set titleSpace(e){e=st.clampDimension(e),this.widgetOffset!==e&&(this.widgetOffset=e,this.parent&&this.parent.fit())}get titles(){return this._titles}dispose(){this.isDisposed||(this._titles.length=0,super.dispose())}updateTitle(e,t){let i=this._titles[e],s=i.classList.contains("lm-mod-expanded"),r=pt.createTitle(this.renderer,t.title,s);this._titles[e]=r,this.parent.node.replaceChild(r,i)}insertWidget(e,t){t.id||(t.id=`id-${Le.UUID.uuid4()}`),super.insertWidget(e,t)}attachWidget(e,t){let i=pt.createTitle(this.renderer,t.title);A.ArrayExt.insert(this._titles,e,i),this.parent.node.appendChild(i),t.node.setAttribute("role","region"),t.node.setAttribute("aria-labelledby",i.id),super.attachWidget(e,t)}moveWidget(e,t,i){A.ArrayExt.move(this._titles,e,t),super.moveWidget(e,t,i)}detachWidget(e,t){let i=A.ArrayExt.removeAt(this._titles,e);this.parent.node.removeChild(i),super.detachWidget(e,t)}updateItemPosition(e,t,i,s,r,o,a){let l=this._titles[e].style;l.top=`${s}px`,l.left=`${i}px`,l.height=`${this.widgetOffset}px`,t?l.width=`${r}px`:l.width=`${o}px`,super.updateItemPosition(e,t,i,s,r,o,a)}},pt;(function(n){function e(t,i,s=!0){let r=t.createSectionTitle(i);return r.style.position="absolute",r.style.contain="strict",r.setAttribute("aria-label",`${i.label} Section`),r.setAttribute("aria-expanded",s?"true":"false"),r.setAttribute("aria-controls",i.owner.id),s&&r.classList.add("lm-mod-expanded"),r}n.createTitle=e})(pt||(pt={}));var Ge=class extends D{constructor(e={}){super(),this.addClass("lm-Panel"),this.layout=Ct.createLayout(e)}get widgets(){return this.layout.widgets}addWidget(e){this.layout.addWidget(e)}insertWidget(e,t){this.layout.insertWidget(e,t)}},Ct;(function(n){function e(t){return t.layout||new Xe}n.createLayout=e})(Ct||(Ct={}));var ke=class extends Ge{constructor(e={}){super({layout:Tt.createLayout(e)}),this._handleMoved=new U(this),this._pressData=null,this.addClass("lm-SplitPanel")}dispose(){this._releaseMouse(),super.dispose()}get orientation(){return this.layout.orientation}set orientation(e){this.layout.orientation=e}get alignment(){return this.layout.alignment}set alignment(e){this.layout.alignment=e}get spacing(){return this.layout.spacing}set spacing(e){this.layout.spacing=e}get renderer(){return this.layout.renderer}get handleMoved(){return this._handleMoved}get handles(){return this.layout.handles}relativeSizes(){return this.layout.relativeSizes()}setRelativeSizes(e,t=!0){this.layout.setRelativeSizes(e,t)}handleEvent(e){switch(e.type){case"pointerdown":this._evtPointerDown(e);break;case"pointermove":this._evtPointerMove(e);break;case"pointerup":this._evtPointerUp(e);break;case"keydown":this._evtKeyDown(e);break;case"contextmenu":e.preventDefault(),e.stopPropagation();break}}onBeforeAttach(e){this.node.addEventListener("pointerdown",this)}onAfterDetach(e){this.node.removeEventListener("pointerdown",this),this._releaseMouse()}onChildAdded(e){e.child.addClass("lm-SplitPanel-child"),this._releaseMouse()}onChildRemoved(e){e.child.removeClass("lm-SplitPanel-child"),this._releaseMouse()}_evtKeyDown(e){this._pressData&&(e.preventDefault(),e.stopPropagation()),e.keyCode===27&&this._releaseMouse()}_evtPointerDown(e){if(e.button!==0)return;let t=this.layout,i=A.ArrayExt.findFirstIndex(t.handles,u=>u.contains(e.target));if(i===-1)return;e.preventDefault(),e.stopPropagation(),document.addEventListener("pointerup",this,!0),document.addEventListener("pointermove",this,!0),document.addEventListener("keydown",this,!0),document.addEventListener("contextmenu",this,!0);let s,r=t.handles[i],o=r.getBoundingClientRect();t.orientation==="horizontal"?s=e.clientX-o.left:s=e.clientY-o.top;let a=window.getComputedStyle(r),l=le.overrideCursor(a.cursor);this._pressData={index:i,delta:s,override:l}}_evtPointerMove(e){e.preventDefault(),e.stopPropagation();let t,i=this.layout,s=this.node.getBoundingClientRect();i.orientation==="horizontal"?t=e.clientX-s.left-this._pressData.delta:t=e.clientY-s.top-this._pressData.delta,i.moveHandle(this._pressData.index,t)}_evtPointerUp(e){e.button===0&&(e.preventDefault(),e.stopPropagation(),this._releaseMouse())}_releaseMouse(){this._pressData&&(this._pressData.override.dispose(),this._pressData=null,this._handleMoved.emit(),document.removeEventListener("keydown",this,!0),document.removeEventListener("pointerup",this,!0),document.removeEventListener("pointermove",this,!0),document.removeEventListener("contextmenu",this,!0))}};(function(n){class e{createHandle(){let r=document.createElement("div");return r.className="lm-SplitPanel-handle",r}}n.Renderer=e,n.defaultRenderer=new e;function t(s){return De.getStretch(s)}n.getStretch=t;function i(s,r){De.setStretch(s,r)}n.setStretch=i})(ke||(ke={}));var Tt;(function(n){function e(t){return t.layout||new De({renderer:t.renderer||ke.defaultRenderer,orientation:t.orientation,alignment:t.alignment,spacing:t.spacing})}n.createLayout=e})(Tt||(Tt={}));var rt=class extends ke{constructor(e={}){super({...e,layout:St.createLayout(e)}),this._widgetSizesCache=new WeakMap,this._expansionToggled=new U(this),this.addClass("lm-AccordionPanel")}get renderer(){return this.layout.renderer}get titleSpace(){return this.layout.titleSpace}set titleSpace(e){this.layout.titleSpace=e}get titles(){return this.layout.titles}get expansionToggled(){return this._expansionToggled}addWidget(e){super.addWidget(e),e.title.changed.connect(this._onTitleChanged,this)}collapse(e){let t=this.layout.widgets[e];t&&!t.isHidden&&this._toggleExpansion(e)}expand(e){let t=this.layout.widgets[e];t&&t.isHidden&&this._toggleExpansion(e)}insertWidget(e,t){super.insertWidget(e,t),t.title.changed.connect(this._onTitleChanged,this)}handleEvent(e){switch(super.handleEvent(e),e.type){case"click":this._evtClick(e);break;case"keydown":this._eventKeyDown(e);break}}onBeforeAttach(e){this.node.addEventListener("click",this),this.node.addEventListener("keydown",this),super.onBeforeAttach(e)}onAfterDetach(e){super.onAfterDetach(e),this.node.removeEventListener("click",this),this.node.removeEventListener("keydown",this)}_onTitleChanged(e){let t=A.ArrayExt.findFirstIndex(this.widgets,i=>i.contains(e.owner));t>=0&&(this.layout.updateTitle(t,e.owner),this.update())}_computeWidgetSize(e){let t=this.layout,i=t.widgets[e];if(!i)return;let s=i.isHidden,r=t.absoluteSizes(),o=(s?-1:1)*this.spacing,a=r.reduce((u,d)=>u+d),l=[...r];if(s){let u=this._widgetSizesCache.get(i);if(!u)return;l[e]+=u;let d=l.map(c=>c-u>0).lastIndexOf(!0);d===-1?l.forEach((c,f)=>{f!==e&&(l[f]-=r[f]/a*(u-o))}):l[d]-=u-o}else{let u=r[e];this._widgetSizesCache.set(i,u),l[e]=0;let d=l.map(c=>c>0).lastIndexOf(!0);if(d===-1)return;l[d]=r[d]+u+o}return l.map(u=>u/(a+o))}_evtClick(e){let t=e.target;if(t){let i=A.ArrayExt.findFirstIndex(this.titles,s=>s.contains(t));i>=0&&(e.preventDefault(),e.stopPropagation(),this._toggleExpansion(i))}}_eventKeyDown(e){if(e.defaultPrevented)return;let t=e.target,i=!1;if(t){let s=A.ArrayExt.findFirstIndex(this.titles,r=>r.contains(t));if(s>=0){let r=e.keyCode.toString();if(e.key.match(/Space|Enter/)||r.match(/13|32/))t.click(),i=!0;else if(this.orientation==="horizontal"?e.key.match(/ArrowLeft|ArrowRight/)||r.match(/37|39/):e.key.match(/ArrowUp|ArrowDown/)||r.match(/38|40/)){let o=e.key.match(/ArrowLeft|ArrowUp/)||r.match(/37|38/)?-1:1,a=this.titles.length,l=(s+a+o)%a;this.titles[l].focus(),i=!0}else e.key==="End"||r==="35"?(this.titles[this.titles.length-1].focus(),i=!0):(e.key==="Home"||r==="36")&&(this.titles[0].focus(),i=!0)}i&&e.preventDefault()}}_toggleExpansion(e){let t=this.titles[e],i=this.layout.widgets[e],s=this._computeWidgetSize(e);s&&this.setRelativeSizes(s,!1),i.isHidden?(t.classList.add("lm-mod-expanded"),t.setAttribute("aria-expanded","true"),i.show()):(t.classList.remove("lm-mod-expanded"),t.setAttribute("aria-expanded","false"),i.hide()),this._expansionToggled.emit(e)}};(function(n){class e extends ke.Renderer{constructor(){super(),this.titleClassName="lm-AccordionPanel-title",this._titleID=0,this._titleKeys=new WeakMap,this._uuid=++e._nInstance}createCollapseIcon(i){return document.createElement("span")}createSectionTitle(i){let s=document.createElement("h3");s.setAttribute("tabindex","0"),s.id=this.createTitleKey(i),s.className=this.titleClassName;for(let a in i.dataset)s.dataset[a]=i.dataset[a];let r=s.appendChild(this.createCollapseIcon(i));r.className="lm-AccordionPanel-titleCollapser";let o=s.appendChild(document.createElement("span"));return o.className="lm-AccordionPanel-titleLabel",o.textContent=i.label,o.title=i.caption||i.label,s}createTitleKey(i){let s=this._titleKeys.get(i);return s===void 0&&(s=`title-key-${this._uuid}-${this._titleID++}`,this._titleKeys.set(i,s)),s}}e._nInstance=0,n.Renderer=e,n.defaultRenderer=new e})(rt||(rt={}));var St;(function(n){function e(t){return t.layout||new kt({renderer:t.renderer||rt.defaultRenderer,orientation:t.orientation,alignment:t.alignment,spacing:t.spacing,titleSpace:t.titleSpace})}n.createLayout=e})(St||(St={}));var xe=class n extends Xe{constructor(e={}){super(),this._fixed=0,this._spacing=4,this._dirty=!1,this._sizers=[],this._items=[],this._box=null,this._alignment="start",this._direction="top-to-bottom",e.direction!==void 0&&(this._direction=e.direction),e.alignment!==void 0&&(this._alignment=e.alignment),e.spacing!==void 0&&(this._spacing=st.clampDimension(e.spacing))}dispose(){for(let e of this._items)e.dispose();this._box=null,this._items.length=0,this._sizers.length=0,super.dispose()}get direction(){return this._direction}set direction(e){this._direction!==e&&(this._direction=e,this.parent&&(this.parent.dataset.direction=e,this.parent.fit()))}get alignment(){return this._alignment}set alignment(e){this._alignment!==e&&(this._alignment=e,this.parent&&(this.parent.dataset.alignment=e,this.parent.update()))}get spacing(){return this._spacing}set spacing(e){e=st.clampDimension(e),this._spacing!==e&&(this._spacing=e,this.parent&&this.parent.fit())}init(){this.parent.dataset.direction=this.direction,this.parent.dataset.alignment=this.alignment,super.init()}attachWidget(e,t){A.ArrayExt.insert(this._items,e,new Oe(t)),A.ArrayExt.insert(this._sizers,e,new Me),this.parent.isAttached&&z.sendMessage(t,D.Msg.BeforeAttach),this.parent.node.appendChild(t.node),this.parent.isAttached&&z.sendMessage(t,D.Msg.AfterAttach),this.parent.fit()}moveWidget(e,t,i){A.ArrayExt.move(this._items,e,t),A.ArrayExt.move(this._sizers,e,t),this.parent.update()}detachWidget(e,t){let i=A.ArrayExt.removeAt(this._items,e);A.ArrayExt.removeAt(this._sizers,e),this.parent.isAttached&&z.sendMessage(t,D.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.isAttached&&z.sendMessage(t,D.Msg.AfterDetach),i.dispose(),this.parent.fit()}onBeforeShow(e){super.onBeforeShow(e),this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e),this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){this.parent.isVisible&&this._update(e.width,e.height)}onUpdateRequest(e){this.parent.isVisible&&this._update(-1,-1)}onFitRequest(e){this.parent.isAttached&&this._fit()}_fit(){let e=0;for(let a=0,l=this._items.length;a<l;++a)e+=+!this._items[a].isHidden;this._fixed=this._spacing*Math.max(0,e-1);let t=He.isHorizontal(this._direction),i=t?this._fixed:0,s=t?0:this._fixed;for(let a=0,l=this._items.length;a<l;++a){let u=this._items[a],d=this._sizers[a];if(u.isHidden){d.minSize=0,d.maxSize=0;continue}u.fit(),d.sizeHint=n.getSizeBasis(u.widget),d.stretch=n.getStretch(u.widget),t?(d.minSize=u.minWidth,d.maxSize=u.maxWidth,i+=u.minWidth,s=Math.max(s,u.minHeight)):(d.minSize=u.minHeight,d.maxSize=u.maxHeight,s+=u.minHeight,i=Math.max(i,u.minWidth))}let r=this._box=$.boxSizing(this.parent.node);i+=r.horizontalSum,s+=r.verticalSum;let o=this.parent.node.style;o.minWidth=`${i}px`,o.minHeight=`${s}px`,this._dirty=!0,this.parent.parent&&z.sendMessage(this.parent.parent,D.Msg.FitRequest),this._dirty&&z.sendMessage(this.parent,D.Msg.UpdateRequest)}_update(e,t){this._dirty=!1;let i=0;for(let c=0,f=this._items.length;c<f;++c)i+=+!this._items[c].isHidden;if(i===0)return;e<0&&(e=this.parent.node.offsetWidth),t<0&&(t=this.parent.node.offsetHeight),this._box||(this._box=$.boxSizing(this.parent.node));let s=this._box.paddingTop,r=this._box.paddingLeft,o=e-this._box.horizontalSum,a=t-this._box.verticalSum,l;switch(this._direction){case"left-to-right":l=ue.calc(this._sizers,Math.max(0,o-this._fixed));break;case"top-to-bottom":l=ue.calc(this._sizers,Math.max(0,a-this._fixed));break;case"right-to-left":l=ue.calc(this._sizers,Math.max(0,o-this._fixed)),r+=o;break;case"bottom-to-top":l=ue.calc(this._sizers,Math.max(0,a-this._fixed)),s+=a;break;default:throw"unreachable"}let u=0,d=0;if(l>0)switch(this._alignment){case"start":break;case"center":u=0,d=l/2;break;case"end":u=0,d=l;break;case"justify":u=l/i,d=0;break;default:throw"unreachable"}for(let c=0,f=this._items.length;c<f;++c){let h=this._items[c];if(h.isHidden)continue;let m=this._sizers[c].size;switch(this._direction){case"left-to-right":h.update(r+d,s,m+u,a),r+=m+u+this._spacing;break;case"top-to-bottom":h.update(r,s+d,o,m+u),s+=m+u+this._spacing;break;case"right-to-left":h.update(r-d-m-u,s,m+u,a),r-=m+u+this._spacing;break;case"bottom-to-top":h.update(r,s-d-m-u,o,m+u),s-=m+u+this._spacing;break;default:throw"unreachable"}}}};(function(n){function e(r){return He.stretchProperty.get(r)}n.getStretch=e;function t(r,o){He.stretchProperty.set(r,o)}n.setStretch=t;function i(r){return He.sizeBasisProperty.get(r)}n.getSizeBasis=i;function s(r,o){He.sizeBasisProperty.set(r,o)}n.setSizeBasis=s})(xe||(xe={}));var He;(function(n){n.stretchProperty=new oe({name:"stretch",create:()=>0,coerce:(s,r)=>Math.max(0,Math.floor(r)),changed:i}),n.sizeBasisProperty=new oe({name:"sizeBasis",create:()=>0,coerce:(s,r)=>Math.max(0,Math.floor(r)),changed:i});function e(s){return s==="left-to-right"||s==="right-to-left"}n.isHorizontal=e;function t(s){return Math.max(0,Math.floor(s))}n.clampSpacing=t;function i(s){s.parent&&s.parent.layout instanceof xe&&s.parent.fit()}})(He||(He={}));var gt=class extends Ge{constructor(e={}){super({layout:Et.createLayout(e)}),this.addClass("lm-BoxPanel")}get direction(){return this.layout.direction}set direction(e){this.layout.direction=e}get alignment(){return this.layout.alignment}set alignment(e){this.layout.alignment=e}get spacing(){return this.layout.spacing}set spacing(e){this.layout.spacing=e}onChildAdded(e){e.child.addClass("lm-BoxPanel-child")}onChildRemoved(e){e.child.removeClass("lm-BoxPanel-child")}};(function(n){function e(r){return xe.getStretch(r)}n.getStretch=e;function t(r,o){xe.setStretch(r,o)}n.setStretch=t;function i(r){return xe.getSizeBasis(r)}n.getSizeBasis=i;function s(r,o){xe.setSizeBasis(r,o)}n.setSizeBasis=s})(gt||(gt={}));var Et;(function(n){function e(t){return t.layout||new xe(t)}n.createLayout=e})(Et||(Et={}));var _t=class n extends D{constructor(e){super({node:ze.createNode()}),this._activeIndex=-1,this._items=[],this._results=null,this.addClass("lm-CommandPalette"),this.setFlag(D.Flag.DisallowLayout),this.commands=e.commands,this.renderer=e.renderer||n.defaultRenderer,this.commands.commandChanged.connect(this._onGenericChange,this),this.commands.keyBindingChanged.connect(this._onGenericChange,this)}dispose(){this._items.length=0,this._results=null,super.dispose()}get searchNode(){return this.node.getElementsByClassName("lm-CommandPalette-search")[0]}get inputNode(){return this.node.getElementsByClassName("lm-CommandPalette-input")[0]}get contentNode(){return this.node.getElementsByClassName("lm-CommandPalette-content")[0]}get items(){return this._items}addItem(e){let t=ze.createItem(this.commands,e);return this._items.push(t),this.refresh(),t}addItems(e){let t=e.map(i=>ze.createItem(this.commands,i));return t.forEach(i=>this._items.push(i)),this.refresh(),t}removeItem(e){this.removeItemAt(this._items.indexOf(e))}removeItemAt(e){A.ArrayExt.removeAt(this._items,e)&&this.refresh()}clearItems(){this._items.length!==0&&(this._items.length=0,this.refresh())}refresh(){if(this._results=null,this.inputNode.value!==""){let e=this.node.getElementsByClassName("lm-close-icon")[0];e.style.display="inherit"}else{let e=this.node.getElementsByClassName("lm-close-icon")[0];e.style.display="none"}this.update()}handleEvent(e){switch(e.type){case"click":this._evtClick(e);break;case"keydown":this._evtKeyDown(e);break;case"input":this.refresh();break;case"focus":case"blur":this._toggleFocused();break}}onBeforeAttach(e){this.node.addEventListener("click",this),this.node.addEventListener("keydown",this),this.node.addEventListener("input",this),this.node.addEventListener("focus",this,!0),this.node.addEventListener("blur",this,!0)}onAfterDetach(e){this.node.removeEventListener("click",this),this.node.removeEventListener("keydown",this),this.node.removeEventListener("input",this),this.node.removeEventListener("focus",this,!0),this.node.removeEventListener("blur",this,!0)}onAfterShow(e){this.update(),super.onAfterShow(e)}onActivateRequest(e){if(this.isAttached){let t=this.inputNode;t.focus(),t.select()}}onUpdateRequest(e){if(!this.isVisible){fe.render(null,this.contentNode);return}let t=this.inputNode.value,i=this.contentNode,s=this._results;if(s||(s=this._results=ze.search(this._items,t),this._activeIndex=t?A.ArrayExt.findFirstIndex(s,ze.canActivate):-1),!t&&s.length===0){fe.render(null,i);return}if(t&&s.length===0){let l=this.renderer.renderEmptyMessage({query:t});fe.render(l,i);return}let r=this.renderer,o=this._activeIndex,a=new Array(s.length);for(let l=0,u=s.length;l<u;++l){let d=s[l];if(d.type==="header"){let c=d.indices,f=d.category;a[l]=r.renderHeader({category:f,indices:c})}else{let c=d.item,f=d.indices,h=l===o;a[l]=r.renderItem({item:c,indices:f,active:h})}}if(fe.render(a,i),o<0||o>=s.length)i.scrollTop=0;else{let l=i.children[o];$.scrollIntoViewIfNeeded(i,l)}}_evtClick(e){if(e.button!==0)return;if(e.target.classList.contains("lm-close-icon")){this.inputNode.value="",this.refresh();return}let t=A.ArrayExt.findFirstIndex(this.contentNode.children,i=>i.contains(e.target));t!==-1&&(e.preventDefault(),e.stopPropagation(),this._execute(t))}_evtKeyDown(e){if(!(e.altKey||e.ctrlKey||e.metaKey||e.shiftKey))switch(e.keyCode){case 13:e.preventDefault(),e.stopPropagation(),this._execute(this._activeIndex);break;case 38:e.preventDefault(),e.stopPropagation(),this._activatePreviousItem();break;case 40:e.preventDefault(),e.stopPropagation(),this._activateNextItem();break}}_activateNextItem(){if(!this._results||this._results.length===0)return;let e=this._activeIndex,t=this._results.length,i=e<t-1?e+1:0,s=i===0?t-1:i-1;this._activeIndex=A.ArrayExt.findFirstIndex(this._results,ze.canActivate,i,s),this.update()}_activatePreviousItem(){if(!this._results||this._results.length===0)return;let e=this._activeIndex,t=this._results.length,i=e<=0?t-1:e-1,s=i===t-1?0:i+1;this._activeIndex=A.ArrayExt.findLastIndex(this._results,ze.canActivate,i,s),this.update()}_execute(e){if(!this._results)return;let t=this._results[e];if(t){if(t.type==="header"){let i=this.inputNode;i.value=`${t.category.toLowerCase()} `,i.focus(),this.refresh();return}t.item.isEnabled&&(this.commands.execute(t.item.command,t.item.args),this.inputNode.value="",this.refresh())}}_toggleFocused(){let e=document.activeElement===this.inputNode;this.toggleClass("lm-mod-focused",e)}_onGenericChange(){this.refresh()}};(function(n){class e{renderHeader(i){let s=this.formatHeader(i);return q.li({className:"lm-CommandPalette-header"},s)}renderItem(i){let s=this.createItemClass(i),r=this.createItemDataset(i);return i.item.isToggleable?q.li({className:s,dataset:r,role:"menuitemcheckbox","aria-checked":`${i.item.isToggled}`},this.renderItemIcon(i),this.renderItemContent(i),this.renderItemShortcut(i)):q.li({className:s,dataset:r,role:"menuitem"},this.renderItemIcon(i),this.renderItemContent(i),this.renderItemShortcut(i))}renderEmptyMessage(i){let s=this.formatEmptyMessage(i);return q.li({className:"lm-CommandPalette-emptyMessage"},s)}renderItemIcon(i){let s=this.createIconClass(i);return q.div({className:s},i.item.icon,i.item.iconLabel)}renderItemContent(i){return q.div({className:"lm-CommandPalette-itemContent"},this.renderItemLabel(i),this.renderItemCaption(i))}renderItemLabel(i){let s=this.formatItemLabel(i);return q.div({className:"lm-CommandPalette-itemLabel"},s)}renderItemCaption(i){let s=this.formatItemCaption(i);return q.div({className:"lm-CommandPalette-itemCaption"},s)}renderItemShortcut(i){let s=this.formatItemShortcut(i);return q.div({className:"lm-CommandPalette-itemShortcut"},s)}createItemClass(i){let s="lm-CommandPalette-item";i.item.isEnabled||(s+=" lm-mod-disabled"),i.item.isToggled&&(s+=" lm-mod-toggled"),i.active&&(s+=" lm-mod-active");let r=i.item.className;return r&&(s+=` ${r}`),s}createItemDataset(i){return{...i.item.dataset,command:i.item.command}}createIconClass(i){let s="lm-CommandPalette-itemIcon",r=i.item.iconClass;return r?`${s} ${r}`:s}formatHeader(i){return!i.indices||i.indices.length===0?i.category:A.StringExt.highlight(i.category,i.indices,q.mark)}formatEmptyMessage(i){return`No commands found that match '${i.query}'`}formatItemShortcut(i){let s=i.item.keyBinding;return s?he.formatKeystroke(s.keys):null}formatItemLabel(i){return!i.indices||i.indices.length===0?i.item.label:A.StringExt.highlight(i.item.label,i.indices,q.mark)}formatItemCaption(i){return i.item.caption}}n.Renderer=e,n.defaultRenderer=new e})(_t||(_t={}));var ze;(function(n){function e(){let f=document.createElement("div"),h=document.createElement("div"),m=document.createElement("div"),p=document.createElement("input"),_=document.createElement("ul"),w=document.createElement("button");return h.className="lm-CommandPalette-search",m.className="lm-CommandPalette-wrapper",p.className="lm-CommandPalette-input",w.className="lm-close-icon",_.className="lm-CommandPalette-content",_.setAttribute("role","menu"),p.spellcheck=!1,m.appendChild(p),m.appendChild(w),h.appendChild(m),f.appendChild(h),f.appendChild(_),f}n.createNode=e;function t(f,h){return new c(f,h)}n.createItem=t;function i(f,h){let m=a(f,h);return m.sort(u),d(m)}n.search=i;function s(f){return f.type==="item"&&f.item.isEnabled}n.canActivate=s;function r(f){return f.trim().replace(/\s+/g," ")}function o(f){return f.replace(/\s+/g,"").toLowerCase()}function a(f,h){h=o(h);let m=[];for(let p=0,_=f.length;p<_;++p){let w=f[p];if(!w.isVisible)continue;if(!h){m.push({matchType:3,categoryIndices:null,labelIndices:null,score:0,item:w});continue}let v=l(w,h);v&&(w.isEnabled||(v.score+=1e3),m.push(v))}return m}function l(f,h){let m=f.category.toLowerCase(),p=f.label.toLowerCase(),_=`${m} ${p}`,w=1/0,v=null,g=/\b\w/g;for(;;){let E=g.exec(_);if(!E)break;let P=A.StringExt.matchSumOfDeltas(_,h,E.index);if(!P)break;P.score<=w&&(w=P.score,v=P.indices)}if(!v||w===1/0)return null;let b=m.length+1,y=A.ArrayExt.lowerBound(v,b,(E,P)=>E-P),M=v.slice(0,y),S=v.slice(y);for(let E=0,P=S.length;E<P;++E)S[E]-=b;return M.length===0?{matchType:0,categoryIndices:null,labelIndices:S,score:w,item:f}:S.length===0?{matchType:1,categoryIndices:M,labelIndices:null,score:w,item:f}:{matchType:2,categoryIndices:M,labelIndices:S,score:w,item:f}}function u(f,h){let m=f.matchType-h.matchType;if(m!==0)return m;let p=f.score-h.score;if(p!==0)return p;let _=0,w=0;switch(f.matchType){case 0:_=f.labelIndices[0],w=h.labelIndices[0];break;case 1:case 2:_=f.categoryIndices[0],w=h.categoryIndices[0];break}if(_!==w)return _-w;let v=f.item.category.localeCompare(h.item.category);if(v!==0)return v;let g=f.item.rank,b=h.item.rank;return g!==b?g<b?-1:1:f.item.label.localeCompare(h.item.label)}function d(f){let h=[];for(let m=0,p=f.length;m<p;++m){let{item:_,categoryIndices:w,labelIndices:v}=f[m],g=_.category;(m===0||g!==f[m-1].item.category)&&h.push({type:"header",category:g,indices:w}),h.push({type:"item",item:_,indices:v})}return h}class c{constructor(h,m){this._commands=h,this.category=r(m.category),this.command=m.command,this.args=m.args||Le.JSONExt.emptyObject,this.rank=m.rank!==void 0?m.rank:1/0}get label(){return this._commands.label(this.command,this.args)}get icon(){return this._commands.icon(this.command,this.args)}get iconClass(){return this._commands.iconClass(this.command,this.args)}get iconLabel(){return this._commands.iconLabel(this.command,this.args)}get caption(){return this._commands.caption(this.command,this.args)}get className(){return this._commands.className(this.command,this.args)}get dataset(){return this._commands.dataset(this.command,this.args)}get isEnabled(){return this._commands.isEnabled(this.command,this.args)}get isToggled(){return this._commands.isToggled(this.command,this.args)}get isToggleable(){return this._commands.isToggleable(this.command,this.args)}get isVisible(){return this._commands.isVisible(this.command,this.args)}get keyBinding(){let{command:h,args:m}=this;return A.ArrayExt.findLastValue(this._commands.keyBindings,p=>p.command===h&&Le.JSONExt.deepEqual(p.args,m))||null}}})(ze||(ze={}));var ve=class n extends D{constructor(e){super({node:de.createNode()}),this._childIndex=-1,this._activeIndex=-1,this._openTimerID=0,this._closeTimerID=0,this._items=[],this._childMenu=null,this._parentMenu=null,this._aboutToClose=new U(this),this._menuRequested=new U(this),this.addClass("lm-Menu"),this.setFlag(D.Flag.DisallowLayout),this.commands=e.commands,this.renderer=e.renderer||n.defaultRenderer}dispose(){this.close(),this._items.length=0,super.dispose()}get aboutToClose(){return this._aboutToClose}get menuRequested(){return this._menuRequested}get parentMenu(){return this._parentMenu}get childMenu(){return this._childMenu}get rootMenu(){let e=this;for(;e._parentMenu;)e=e._parentMenu;return e}get leafMenu(){let e=this;for(;e._childMenu;)e=e._childMenu;return e}get contentNode(){return this.node.getElementsByClassName("lm-Menu-content")[0]}get activeItem(){return this._items[this._activeIndex]||null}set activeItem(e){this.activeIndex=e?this._items.indexOf(e):-1}get activeIndex(){return this._activeIndex}set activeIndex(e){(e<0||e>=this._items.length)&&(e=-1),e!==-1&&!de.canActivate(this._items[e])&&(e=-1),this._activeIndex!==e&&(this._activeIndex=e,this._activeIndex>=0&&this.contentNode.childNodes[this._activeIndex]&&this.contentNode.childNodes[this._activeIndex].focus(),this.update())}get items(){return this._items}activateNextItem(){let e=this._items.length,t=this._activeIndex,i=t<e-1?t+1:0,s=i===0?e-1:i-1;this.activeIndex=A.ArrayExt.findFirstIndex(this._items,de.canActivate,i,s)}activatePreviousItem(){let e=this._items.length,t=this._activeIndex,i=t<=0?e-1:t-1,s=i===e-1?0:i+1;this.activeIndex=A.ArrayExt.findLastIndex(this._items,de.canActivate,i,s)}triggerActiveItem(){if(!this.isAttached)return;let e=this.activeItem;if(!e)return;if(this._cancelOpenTimer(),this._cancelCloseTimer(),e.type==="submenu"){this._openChildMenu(!0);return}this.rootMenu.close();let{command:t,args:i}=e;this.commands.isEnabled(t,i)?this.commands.execute(t,i):console.log(`Command '${t}' is disabled.`)}addItem(e){return this.insertItem(this._items.length,e)}insertItem(e,t){this.isAttached&&this.close(),this.activeIndex=-1;let i=Math.max(0,Math.min(e,this._items.length)),s=de.createItem(this,t);return A.ArrayExt.insert(this._items,i,s),this.update(),s}removeItem(e){this.removeItemAt(this._items.indexOf(e))}removeItemAt(e){this.isAttached&&this.close(),this.activeIndex=-1,A.ArrayExt.removeAt(this._items,e)&&this.update()}clearItems(){this.isAttached&&this.close(),this.activeIndex=-1,this._items.length!==0&&(this._items.length=0,this.update())}open(e,t,i={}){var s,r,o;if(this.isAttached)return;let a=i.forceX||!1,l=i.forceY||!1,u=(s=i.host)!==null&&s!==void 0?s:null,d=(r=i.ref)!==null&&r!==void 0?r:null,c=(o=i.horizontalAlignment)!==null&&o!==void 0?o:document.documentElement.dir==="rtl"?"right":"left";de.openRootMenu(this,e,t,a,l,c,u,d),this.activate()}handleEvent(e){switch(e.type){case"keydown":this._evtKeyDown(e);break;case"mouseup":this._evtMouseUp(e);break;case"mousemove":this._evtMouseMove(e);break;case"mouseenter":this._evtMouseEnter(e);break;case"mouseleave":this._evtMouseLeave(e);break;case"mousedown":this._evtMouseDown(e);break;case"contextmenu":e.preventDefault(),e.stopPropagation();break}}onBeforeAttach(e){this.node.addEventListener("keydown",this),this.node.addEventListener("mouseup",this),this.node.addEventListener("mousemove",this),this.node.addEventListener("mouseenter",this),this.node.addEventListener("mouseleave",this),this.node.addEventListener("contextmenu",this),document.addEventListener("mousedown",this,!0)}onAfterDetach(e){this.node.removeEventListener("keydown",this),this.node.removeEventListener("mouseup",this),this.node.removeEventListener("mousemove",this),this.node.removeEventListener("mouseenter",this),this.node.removeEventListener("mouseleave",this),this.node.removeEventListener("contextmenu",this),document.removeEventListener("mousedown",this,!0)}onActivateRequest(e){this.isAttached&&this.node.focus()}onUpdateRequest(e){let t=this._items,i=this.renderer,s=this._activeIndex,r=de.computeCollapsed(t),o=new Array(t.length);for(let a=0,l=t.length;a<l;++a){let u=t[a],d=a===s,c=r[a];o[a]=i.renderItem({item:u,active:d,collapsed:c,onfocus:()=>{this.activeIndex=a}})}fe.render(o,this.contentNode)}onCloseRequest(e){this._cancelOpenTimer(),this._cancelCloseTimer(),this.activeIndex=-1;let t=this._childMenu;t&&(this._childIndex=-1,this._childMenu=null,t._parentMenu=null,t.close());let i=this._parentMenu;i&&(this._parentMenu=null,i._childIndex=-1,i._childMenu=null,i.activate()),this.isAttached&&this._aboutToClose.emit(void 0),super.onCloseRequest(e)}_evtKeyDown(e){e.preventDefault(),e.stopPropagation();let t=e.keyCode;if(t===13){this.triggerActiveItem();return}if(t===27){this.close();return}if(t===37){this._parentMenu?this.close():this._menuRequested.emit("previous");return}if(t===38){this.activatePreviousItem();return}if(t===39){let o=this.activeItem;o&&o.type==="submenu"?this.triggerActiveItem():this.rootMenu._menuRequested.emit("next");return}if(t===40){this.activateNextItem();return}let i=Ke().keyForKeydownEvent(e);if(!i)return;let s=this._activeIndex+1,r=de.findMnemonic(this._items,i,s);r.index!==-1&&!r.multiple?(this.activeIndex=r.index,this.triggerActiveItem()):r.index!==-1?this.activeIndex=r.index:r.auto!==-1&&(this.activeIndex=r.auto)}_evtMouseUp(e){e.button===0&&(e.preventDefault(),e.stopPropagation(),this.triggerActiveItem())}_evtMouseMove(e){let t=A.ArrayExt.findFirstIndex(this.contentNode.children,s=>$.hitTest(s,e.clientX,e.clientY));if(t===this._activeIndex)return;if(this.activeIndex=t,t=this.activeIndex,t===this._childIndex){this._cancelOpenTimer(),this._cancelCloseTimer();return}this._childIndex!==-1&&this._startCloseTimer(),this._cancelOpenTimer();let i=this.activeItem;!i||i.type!=="submenu"||!i.submenu||this._startOpenTimer()}_evtMouseEnter(e){for(let t=this._parentMenu;t;t=t._parentMenu)t._cancelOpenTimer(),t._cancelCloseTimer(),t.activeIndex=t._childIndex}_evtMouseLeave(e){if(this._cancelOpenTimer(),!this._childMenu){this.activeIndex=-1;return}let{clientX:t,clientY:i}=e;if($.hitTest(this._childMenu.node,t,i)){this._cancelCloseTimer();return}this.activeIndex=-1,this._startCloseTimer()}_evtMouseDown(e){this._parentMenu||(de.hitTestMenus(this,e.clientX,e.clientY)?(e.preventDefault(),e.stopPropagation()):this.close())}_openChildMenu(e=!1){let t=this.activeItem;if(!t||t.type!=="submenu"||!t.submenu){this._closeChildMenu();return}let i=t.submenu;if(i===this._childMenu)return;n.saveWindowData(),this._closeChildMenu(),this._childMenu=i,this._childIndex=this._activeIndex,i._parentMenu=this,z.sendMessage(this,D.Msg.UpdateRequest);let s=this.contentNode.children[this._activeIndex];de.openSubmenu(i,s),e&&(i.activeIndex=-1,i.activateNextItem()),i.activate()}_closeChildMenu(){this._childMenu&&this._childMenu.close()}_startOpenTimer(){this._openTimerID===0&&(this._openTimerID=window.setTimeout(()=>{this._openTimerID=0,this._openChildMenu()},de.TIMER_DELAY))}_startCloseTimer(){this._closeTimerID===0&&(this._closeTimerID=window.setTimeout(()=>{this._closeTimerID=0,this._closeChildMenu()},de.TIMER_DELAY))}_cancelOpenTimer(){this._openTimerID!==0&&(clearTimeout(this._openTimerID),this._openTimerID=0)}_cancelCloseTimer(){this._closeTimerID!==0&&(clearTimeout(this._closeTimerID),this._closeTimerID=0)}static saveWindowData(){de.saveWindowData()}};(function(n){class e{renderItem(i){let s=this.createItemClass(i),r=this.createItemDataset(i),o=this.createItemARIA(i);return q.li({className:s,dataset:r,tabindex:"0",onfocus:i.onfocus,...o},this.renderIcon(i),this.renderLabel(i),this.renderShortcut(i),this.renderSubmenu(i))}renderIcon(i){let s=this.createIconClass(i);return q.div({className:s},i.item.icon,i.item.iconLabel)}renderLabel(i){let s=this.formatLabel(i);return q.div({className:"lm-Menu-itemLabel"},s)}renderShortcut(i){let s=this.formatShortcut(i);return q.div({className:"lm-Menu-itemShortcut"},s)}renderSubmenu(i){return q.div({className:"lm-Menu-itemSubmenuIcon"})}createItemClass(i){let s="lm-Menu-item";i.item.isEnabled||(s+=" lm-mod-disabled"),i.item.isToggled&&(s+=" lm-mod-toggled"),i.item.isVisible||(s+=" lm-mod-hidden"),i.active&&(s+=" lm-mod-active"),i.collapsed&&(s+=" lm-mod-collapsed");let r=i.item.className;return r&&(s+=` ${r}`),s}createItemDataset(i){let s,{type:r,command:o,dataset:a}=i.item;return r==="command"?s={...a,type:r,command:o}:s={...a,type:r},s}createIconClass(i){let s="lm-Menu-itemIcon",r=i.item.iconClass;return r?`${s} ${r}`:s}createItemARIA(i){let s={};switch(i.item.type){case"separator":s.role="presentation";break;case"submenu":s["aria-haspopup"]="true",i.item.isEnabled||(s["aria-disabled"]="true");break;default:i.item.isEnabled||(s["aria-disabled"]="true"),i.item.isToggled?(s.role="menuitemcheckbox",s["aria-checked"]="true"):s.role="menuitem"}return s}formatLabel(i){let{label:s,mnemonic:r}=i.item;if(r<0||r>=s.length)return s;let o=s.slice(0,r),a=s.slice(r+1),l=s[r],u=q.span({className:"lm-Menu-itemMnemonic"},l);return[o,u,a]}formatShortcut(i){let s=i.item.keyBinding;return s?he.formatKeystroke(s.keys):null}}n.Renderer=e,n.defaultRenderer=new e})(ve||(ve={}));var de;(function(n){n.TIMER_DELAY=300,n.SUBMENU_OVERLAP=3;let e=null,t=0;function i(){return t>0?(t--,e):d()}function s(){e=d(),t++}n.saveWindowData=s;function r(){let p=document.createElement("div"),_=document.createElement("ul");return _.className="lm-Menu-content",p.appendChild(_),_.setAttribute("role","menu"),p.tabIndex=0,p}n.createNode=r;function o(p){return p.type!=="separator"&&p.isEnabled&&p.isVisible}n.canActivate=o;function a(p,_){return new m(p.commands,_)}n.createItem=a;function l(p,_,w){for(let v=p;v;v=v.childMenu)if($.hitTest(v.node,_,w))return!0;return!1}n.hitTestMenus=l;function u(p){let _=new Array(p.length);A.ArrayExt.fill(_,!1);let w=0,v=p.length;for(;w<v;++w){let y=p[w];if(y.isVisible){if(y.type!=="separator")break;_[w]=!0}}let g=v-1;for(;g>=0;--g){let y=p[g];if(y.isVisible){if(y.type!=="separator")break;_[g]=!0}}let b=!1;for(;++w<g;){let y=p[w];y.isVisible&&(y.type!=="separator"?b=!1:b?_[w]=!0:b=!0)}return _}n.computeCollapsed=u;function d(){return{pageXOffset:window.pageXOffset,pageYOffset:window.pageYOffset,clientWidth:document.documentElement.clientWidth,clientHeight:document.documentElement.clientHeight}}function c(p,_,w,v,g,b,y,M){let S=i(),E=S.pageXOffset,P=S.pageYOffset,x=S.clientWidth,I=S.clientHeight;z.sendMessage(p,D.Msg.UpdateRequest);let L=I-(g?w:0),R=p.node,O=R.style;O.opacity="0",O.maxHeight=`${L}px`,D.attach(p,y||document.body,M);let{width:K,height:F}=R.getBoundingClientRect();b==="right"&&(_-=K),!v&&_+K>E+x&&(_=E+x-K),!g&&w+F>P+I&&(w>P+I?w=P+I-F:w=w-F),O.transform=`translate(${Math.max(0,_)}px, ${Math.max(0,w)}px`,O.opacity="1"}n.openRootMenu=c;function f(p,_){let w=i(),v=w.pageXOffset,g=w.pageYOffset,b=w.clientWidth,y=w.clientHeight;z.sendMessage(p,D.Msg.UpdateRequest);let M=y,S=p.node,E=S.style;E.opacity="0",E.maxHeight=`${M}px`,D.attach(p,document.body);let{width:P,height:x}=S.getBoundingClientRect(),I=$.boxSizing(p.node),L=_.getBoundingClientRect(),R=L.right-n.SUBMENU_OVERLAP;R+P>v+b&&(R=L.left+n.SUBMENU_OVERLAP-P);let O=L.top-I.borderTop-I.paddingTop;O+x>g+y&&(O=L.bottom+I.borderBottom+I.paddingBottom-x),E.transform=`translate(${Math.max(0,R)}px, ${Math.max(0,O)}px`,E.opacity="1"}n.openSubmenu=f;function h(p,_,w){let v=-1,g=-1,b=!1,y=_.toUpperCase();for(let M=0,S=p.length;M<S;++M){let E=(M+w)%S,P=p[E];if(!o(P))continue;let x=P.label;if(x.length===0)continue;let I=P.mnemonic;if(I>=0&&I<x.length){x[I].toUpperCase()===y&&(v===-1?v=E:b=!0);continue}g===-1&&x[0].toUpperCase()===y&&(g=E)}return{index:v,multiple:b,auto:g}}n.findMnemonic=h;class m{constructor(_,w){this._commands=_,this.type=w.type||"command",this.command=w.command||"",this.args=w.args||Le.JSONExt.emptyObject,this.submenu=w.submenu||null}get label(){return this.type==="command"?this._commands.label(this.command,this.args):this.type==="submenu"&&this.submenu?this.submenu.title.label:""}get mnemonic(){return this.type==="command"?this._commands.mnemonic(this.command,this.args):this.type==="submenu"&&this.submenu?this.submenu.title.mnemonic:-1}get icon(){if(this.type==="command")return this._commands.icon(this.command,this.args);if(this.type==="submenu"&&this.submenu)return this.submenu.title.icon}get iconClass(){return this.type==="command"?this._commands.iconClass(this.command,this.args):this.type==="submenu"&&this.submenu?this.submenu.title.iconClass:""}get iconLabel(){return this.type==="command"?this._commands.iconLabel(this.command,this.args):this.type==="submenu"&&this.submenu?this.submenu.title.iconLabel:""}get caption(){return this.type==="command"?this._commands.caption(this.command,this.args):this.type==="submenu"&&this.submenu?this.submenu.title.caption:""}get className(){return this.type==="command"?this._commands.className(this.command,this.args):this.type==="submenu"&&this.submenu?this.submenu.title.className:""}get dataset(){return this.type==="command"?this._commands.dataset(this.command,this.args):this.type==="submenu"&&this.submenu?this.submenu.title.dataset:{}}get isEnabled(){return this.type==="command"?this._commands.isEnabled(this.command,this.args):this.type==="submenu"?this.submenu!==null:!0}get isToggled(){return this.type==="command"?this._commands.isToggled(this.command,this.args):!1}get isVisible(){return this.type==="command"?this._commands.isVisible(this.command,this.args):this.type==="submenu"?this.submenu!==null:!0}get keyBinding(){if(this.type==="command"){let{command:_,args:w}=this;return A.ArrayExt.findLastValue(this._commands.keyBindings,v=>v.command===_&&Le.JSONExt.deepEqual(v.args,w))||null}return null}}})(de||(de={}));var qt;(function(n){function e(o,a){let l=i(o.selector),u=o.rank!==void 0?o.rank:1/0;return{...o,selector:l,rank:u,id:a}}n.createItem=e;function t(o,a,l,u){let d=a.target;if(!d)return null;let c=a.currentTarget;if(!c||!c.contains(d)&&(d=document.elementFromPoint(a.clientX,a.clientY),!d||!c.contains(d)))return null;let f=[],h=o.slice();for(;d!==null;){let m=[];for(let p=0,_=h.length;p<_;++p){let w=h[p];w&&_e.matches(d,w.selector)&&(m.push(w),h[p]=null)}if(m.length!==0&&(l&&m.sort(u?r:s),f.push(...m)),d===c)break;d=d.parentElement}return l||f.sort(u?r:s),f}n.matchItems=t;function i(o){if(o.indexOf(",")!==-1)throw new Error(`Selector cannot contain commas: ${o}`);if(!_e.isValid(o))throw new Error(`Invalid selector: ${o}`);return o}function s(o,a){let l=o.rank,u=a.rank;return l!==u?l<u?-1:1:o.id-a.id}function r(o,a){let l=_e.calculateSpecificity(o.selector),u=_e.calculateSpecificity(a.selector);return l!==u?u-l:s(o,a)}})(qt||(qt={}));var bi=["ArrowLeft","ArrowUp","ArrowRight","ArrowDown","Home","End"],Ce=class n extends D{constructor(e={}){super({node:pe.createNode()}),this._currentIndex=-1,this._titles=[],this._titlesEditable=!1,this._previousTitle=null,this._dragData=null,this._addButtonEnabled=!1,this._tabMoved=new U(this),this._currentChanged=new U(this),this._addRequested=new U(this),this._tabCloseRequested=new U(this),this._tabDetachRequested=new U(this),this._tabActivateRequested=new U(this),this.addClass("lm-TabBar"),this.contentNode.setAttribute("role","tablist"),this.setFlag(D.Flag.DisallowLayout),this._document=e.document||document,this.tabsMovable=e.tabsMovable||!1,this.titlesEditable=e.titlesEditable||!1,this.allowDeselect=e.allowDeselect||!1,this.addButtonEnabled=e.addButtonEnabled||!1,this.insertBehavior=e.insertBehavior||"select-tab-if-needed",this.name=e.name||"",this.orientation=e.orientation||"horizontal",this.removeBehavior=e.removeBehavior||"select-tab-after",this.renderer=e.renderer||n.defaultRenderer}dispose(){this._releaseMouse(),this._titles.length=0,this._previousTitle=null,super.dispose()}get currentChanged(){return this._currentChanged}get tabMoved(){return this._tabMoved}get tabActivateRequested(){return this._tabActivateRequested}get addRequested(){return this._addRequested}get tabCloseRequested(){return this._tabCloseRequested}get tabDetachRequested(){return this._tabDetachRequested}get document(){return this._document}get titlesEditable(){return this._titlesEditable}set titlesEditable(e){this._titlesEditable=e}get currentTitle(){return this._titles[this._currentIndex]||null}set currentTitle(e){this.currentIndex=e?this._titles.indexOf(e):-1}get currentIndex(){return this._currentIndex}set currentIndex(e){if((e<0||e>=this._titles.length)&&(e=-1),this._currentIndex===e)return;let t=this._currentIndex,i=this._titles[t]||null,s=e,r=this._titles[s]||null;this._currentIndex=s,this._previousTitle=i,this.update(),this._currentChanged.emit({previousIndex:t,previousTitle:i,currentIndex:s,currentTitle:r})}get name(){return this._name}set name(e){this._name=e,e?this.contentNode.setAttribute("aria-label",e):this.contentNode.removeAttribute("aria-label")}get orientation(){return this._orientation}set orientation(e){this._orientation!==e&&(this._releaseMouse(),this._orientation=e,this.dataset.orientation=e,this.contentNode.setAttribute("aria-orientation",e))}get addButtonEnabled(){return this._addButtonEnabled}set addButtonEnabled(e){this._addButtonEnabled!==e&&(this._addButtonEnabled=e,e?this.addButtonNode.classList.remove("lm-mod-hidden"):this.addButtonNode.classList.add("lm-mod-hidden"))}get titles(){return this._titles}get contentNode(){return this.node.getElementsByClassName("lm-TabBar-content")[0]}get addButtonNode(){return this.node.getElementsByClassName("lm-TabBar-addButton")[0]}addTab(e){return this.insertTab(this._titles.length,e)}insertTab(e,t){this._releaseMouse();let i=pe.asTitle(t),s=this._titles.indexOf(i),r=Math.max(0,Math.min(e,this._titles.length));return s===-1?(A.ArrayExt.insert(this._titles,r,i),i.changed.connect(this._onTitleChanged,this),this.update(),this._adjustCurrentForInsert(r,i),i):(r===this._titles.length&&r--,s===r||(A.ArrayExt.move(this._titles,s,r),this.update(),this._adjustCurrentForMove(s,r)),i)}removeTab(e){this.removeTabAt(this._titles.indexOf(e))}removeTabAt(e){this._releaseMouse();let t=A.ArrayExt.removeAt(this._titles,e);t&&(t.changed.disconnect(this._onTitleChanged,this),t===this._previousTitle&&(this._previousTitle=null),this.update(),this._adjustCurrentForRemove(e,t))}clearTabs(){if(this._titles.length===0)return;this._releaseMouse();for(let i of this._titles)i.changed.disconnect(this._onTitleChanged,this);let e=this.currentIndex,t=this.currentTitle;this._currentIndex=-1,this._previousTitle=null,this._titles.length=0,this.update(),e!==-1&&this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:-1,currentTitle:null})}releaseMouse(){this._releaseMouse()}handleEvent(e){switch(e.type){case"pointerdown":this._evtPointerDown(e);break;case"pointermove":this._evtPointerMove(e);break;case"pointerup":this._evtPointerUp(e);break;case"dblclick":this._evtDblClick(e);break;case"keydown":e.eventPhase===Event.CAPTURING_PHASE?this._evtKeyDownCapturing(e):this._evtKeyDown(e);break;case"contextmenu":e.preventDefault(),e.stopPropagation();break}}onBeforeAttach(e){this.node.addEventListener("pointerdown",this),this.node.addEventListener("dblclick",this),this.node.addEventListener("keydown",this)}onAfterDetach(e){this.node.removeEventListener("pointerdown",this),this.node.removeEventListener("dblclick",this),this.node.removeEventListener("keydown",this),this._releaseMouse()}onUpdateRequest(e){var t;let i=this._titles,s=this.renderer,r=this.currentTitle,o=new Array(i.length),a=(t=this._getCurrentTabindex())!==null&&t!==void 0?t:this._currentIndex>-1?this._currentIndex:0;for(let l=0,u=i.length;l<u;++l){let d=i[l],c=d===r,f=c?u:u-l-1,h=a===l?0:-1;o[l]=s.renderTab({title:d,current:c,zIndex:f,tabIndex:h})}fe.render(o,this.contentNode)}_getCurrentTabindex(){let e=null,t=this.contentNode.querySelector('li[tabindex="0"]');return t?e=[...this.contentNode.children].indexOf(t):this._addButtonEnabled&&this.addButtonNode.getAttribute("tabindex")==="0"&&(e=-1),e}_evtDblClick(e){if(!this.titlesEditable)return;let t=this.contentNode.children,i=A.ArrayExt.findFirstIndex(t,o=>$.hitTest(o,e.clientX,e.clientY));if(i===-1)return;let s=this.titles[i],r=t[i].querySelector(".lm-TabBar-tabLabel");if(r&&r.contains(e.target)){let o=s.label||"",a=r.innerHTML;r.innerHTML="";let l=document.createElement("input");l.classList.add("lm-TabBar-tabInput"),l.value=o,r.appendChild(l);let u=()=>{l.removeEventListener("blur",u),r.innerHTML=a,this.node.addEventListener("keydown",this)};l.addEventListener("dblclick",d=>d.stopPropagation()),l.addEventListener("blur",u),l.addEventListener("keydown",d=>{d.key==="Enter"?(l.value!==""&&(s.label=s.caption=l.value),u()):d.key==="Escape"&&u()}),this.node.removeEventListener("keydown",this),l.select(),l.focus(),r.children.length>0&&r.children[0].focus()}}_evtKeyDownCapturing(e){e.eventPhase===Event.CAPTURING_PHASE&&(e.preventDefault(),e.stopPropagation(),e.key==="Escape"&&this._releaseMouse())}_evtKeyDown(e){var t,i,s;if(!(e.key==="Tab"||e.eventPhase===Event.CAPTURING_PHASE)){if(e.key==="Enter"||e.key==="Spacebar"||e.key===" "){let r=document.activeElement;if(this.addButtonEnabled&&this.addButtonNode.contains(r))e.preventDefault(),e.stopPropagation(),this._addRequested.emit();else{let o=A.ArrayExt.findFirstIndex(this.contentNode.children,a=>a.contains(r));o>=0&&(e.preventDefault(),e.stopPropagation(),this.currentIndex=o)}}else if(bi.includes(e.key)){let r=[...this.contentNode.children];if(this.addButtonEnabled&&r.push(this.addButtonNode),r.length<=1)return;e.preventDefault(),e.stopPropagation();let o=r.indexOf(document.activeElement);o===-1&&(o=this._currentIndex);let a;e.key==="ArrowRight"&&this._orientation==="horizontal"||e.key==="ArrowDown"&&this._orientation==="vertical"?a=(t=r[o+1])!==null&&t!==void 0?t:r[0]:e.key==="ArrowLeft"&&this._orientation==="horizontal"||e.key==="ArrowUp"&&this._orientation==="vertical"?a=(i=r[o-1])!==null&&i!==void 0?i:r[r.length-1]:e.key==="Home"?a=r[0]:e.key==="End"&&(a=r[r.length-1]),a&&((s=r[o])===null||s===void 0||s.setAttribute("tabindex","-1"),a?.setAttribute("tabindex","0"),a.focus())}}}_evtPointerDown(e){if(e.button!==0&&e.button!==1||this._dragData||e.target.classList.contains("lm-TabBar-tabInput"))return;let t=this.addButtonEnabled&&this.addButtonNode.contains(e.target),i=this.contentNode.children,s=A.ArrayExt.findFirstIndex(i,o=>$.hitTest(o,e.clientX,e.clientY));if(s===-1&&!t||(e.preventDefault(),e.stopPropagation(),this._dragData={tab:i[s],index:s,pressX:e.clientX,pressY:e.clientY,tabPos:-1,tabSize:-1,tabPressPos:-1,targetIndex:-1,tabLayout:null,contentRect:null,override:null,dragActive:!1,dragAborted:!1,detachRequested:!1},this.document.addEventListener("pointerup",this,!0),e.button===1||t))return;let r=i[s].querySelector(this.renderer.closeIconSelector);r&&r.contains(e.target)||(this.tabsMovable&&(this.document.addEventListener("pointermove",this,!0),this.document.addEventListener("keydown",this,!0),this.document.addEventListener("contextmenu",this,!0)),this.allowDeselect&&this.currentIndex===s?this.currentIndex=-1:this.currentIndex=s,this.currentIndex!==-1&&this._tabActivateRequested.emit({index:this.currentIndex,title:this.currentTitle}))}_evtPointerMove(e){let t=this._dragData;if(!t)return;e.preventDefault(),e.stopPropagation();let i=this.contentNode.children;if(!(!t.dragActive&&!pe.dragExceeded(t,e))){if(!t.dragActive){let s=t.tab.getBoundingClientRect();this._orientation==="horizontal"?(t.tabPos=t.tab.offsetLeft,t.tabSize=s.width,t.tabPressPos=t.pressX-s.left):(t.tabPos=t.tab.offsetTop,t.tabSize=s.height,t.tabPressPos=t.pressY-s.top),t.tabPressOffset={x:t.pressX-s.left,y:t.pressY-s.top},t.tabLayout=pe.snapTabLayout(i,this._orientation),t.contentRect=this.contentNode.getBoundingClientRect(),t.override=le.overrideCursor("default"),t.tab.classList.add("lm-mod-dragging"),this.addClass("lm-mod-dragging"),t.dragActive=!0}if(!t.detachRequested&&pe.detachExceeded(t,e)){t.detachRequested=!0;let s=t.index,r=e.clientX,o=e.clientY,a=i[s],l=this._titles[s];if(this._tabDetachRequested.emit({index:s,title:l,tab:a,clientX:r,clientY:o,offset:t.tabPressOffset}),t.dragAborted)return}pe.layoutTabs(i,t,e,this._orientation)}}_evtPointerUp(e){if(e.button!==0&&e.button!==1)return;let t=this._dragData;if(!t)return;if(e.preventDefault(),e.stopPropagation(),this.document.removeEventListener("pointermove",this,!0),this.document.removeEventListener("pointerup",this,!0),this.document.removeEventListener("keydown",this,!0),this.document.removeEventListener("contextmenu",this,!0),!t.dragActive){if(this._dragData=null,this.addButtonEnabled&&this.addButtonNode.contains(e.target)){this._addRequested.emit(void 0);return}let r=this.contentNode.children,o=A.ArrayExt.findFirstIndex(r,u=>$.hitTest(u,e.clientX,e.clientY));if(o!==t.index)return;let a=this._titles[o];if(!a.closable)return;if(e.button===1){this._tabCloseRequested.emit({index:o,title:a});return}let l=r[o].querySelector(this.renderer.closeIconSelector);if(l&&l.contains(e.target)){this._tabCloseRequested.emit({index:o,title:a});return}return}if(e.button!==0)return;pe.finalizeTabPosition(t,this._orientation),t.tab.classList.remove("lm-mod-dragging");let i=pe.parseTransitionDuration(t.tab);setTimeout(()=>{if(t.dragAborted)return;this._dragData=null,pe.resetTabPositions(this.contentNode.children,this._orientation),t.override.dispose(),this.removeClass("lm-mod-dragging");let s=t.index,r=t.targetIndex;r===-1||s===r||(A.ArrayExt.move(this._titles,s,r),this._adjustCurrentForMove(s,r),this._tabMoved.emit({fromIndex:s,toIndex:r,title:this._titles[r]}),z.sendMessage(this,D.Msg.UpdateRequest))},i)}_releaseMouse(){let e=this._dragData;e&&(this._dragData=null,this.document.removeEventListener("pointermove",this,!0),this.document.removeEventListener("pointerup",this,!0),this.document.removeEventListener("keydown",this,!0),this.document.removeEventListener("contextmenu",this,!0),e.dragAborted=!0,e.dragActive&&(pe.resetTabPositions(this.contentNode.children,this._orientation),e.override.dispose(),e.tab.classList.remove("lm-mod-dragging"),this.removeClass("lm-mod-dragging")))}_adjustCurrentForInsert(e,t){let i=this.currentTitle,s=this._currentIndex,r=this.insertBehavior;if(r==="select-tab"||r==="select-tab-if-needed"&&s===-1){this._currentIndex=e,this._previousTitle=i,this._currentChanged.emit({previousIndex:s,previousTitle:i,currentIndex:e,currentTitle:t});return}s>=e&&this._currentIndex++}_adjustCurrentForMove(e,t){this._currentIndex===e?this._currentIndex=t:this._currentIndex<e&&this._currentIndex>=t?this._currentIndex++:this._currentIndex>e&&this._currentIndex<=t&&this._currentIndex--}_adjustCurrentForRemove(e,t){let i=this._currentIndex,s=this.removeBehavior;if(i!==e){i>e&&this._currentIndex--;return}if(this._titles.length===0){this._currentIndex=-1,this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:-1,currentTitle:null});return}if(s==="select-tab-after"){this._currentIndex=Math.min(e,this._titles.length-1),this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:this._currentIndex,currentTitle:this.currentTitle});return}if(s==="select-tab-before"){this._currentIndex=Math.max(0,e-1),this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:this._currentIndex,currentTitle:this.currentTitle});return}if(s==="select-previous-tab"){this._previousTitle?(this._currentIndex=this._titles.indexOf(this._previousTitle),this._previousTitle=null):this._currentIndex=Math.min(e,this._titles.length-1),this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:this._currentIndex,currentTitle:this.currentTitle});return}this._currentIndex=-1,this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:-1,currentTitle:null})}_onTitleChanged(e){this.update()}};(function(n){class e{constructor(){this.closeIconSelector=".lm-TabBar-tabCloseIcon",this._tabID=0,this._tabKeys=new WeakMap,this._uuid=++e._nInstance}renderTab(i){let s=i.title.caption,r=this.createTabKey(i),o=r,a=this.createTabStyle(i),l=this.createTabClass(i),u=this.createTabDataset(i),d=this.createTabARIA(i);return i.title.closable?q.li({id:o,key:r,className:l,title:s,style:a,dataset:u,...d},this.renderIcon(i),this.renderLabel(i),this.renderCloseIcon(i)):q.li({id:o,key:r,className:l,title:s,style:a,dataset:u,...d},this.renderIcon(i),this.renderLabel(i))}renderIcon(i){let{title:s}=i,r=this.createIconClass(i);return q.div({className:r},s.icon,s.iconLabel)}renderLabel(i){return q.div({className:"lm-TabBar-tabLabel"},i.title.label)}renderCloseIcon(i){return q.div({className:"lm-TabBar-tabCloseIcon"})}createTabKey(i){let s=this._tabKeys.get(i.title);return s===void 0&&(s=`tab-key-${this._uuid}-${this._tabID++}`,this._tabKeys.set(i.title,s)),s}createTabStyle(i){return{zIndex:`${i.zIndex}`}}createTabClass(i){let s="lm-TabBar-tab";return i.title.className&&(s+=` ${i.title.className}`),i.title.closable&&(s+=" lm-mod-closable"),i.current&&(s+=" lm-mod-current"),s}createTabDataset(i){return i.title.dataset}createTabARIA(i){var s;return{role:"tab","aria-selected":i.current.toString(),tabindex:`${(s=i.tabIndex)!==null&&s!==void 0?s:"-1"}`}}createIconClass(i){let s="lm-TabBar-tabIcon",r=i.title.iconClass;return r?`${s} ${r}`:s}}e._nInstance=0,n.Renderer=e,n.defaultRenderer=new e,n.addButtonSelector=".lm-TabBar-addButton"})(Ce||(Ce={}));var pe;(function(n){n.DRAG_THRESHOLD=5,n.DETACH_THRESHOLD=20;function e(){let d=document.createElement("div"),c=document.createElement("ul");c.setAttribute("role","tablist"),c.className="lm-TabBar-content",d.appendChild(c);let f=document.createElement("div");return f.className="lm-TabBar-addButton lm-mod-hidden",f.setAttribute("tabindex","-1"),f.setAttribute("role","button"),d.appendChild(f),d}n.createNode=e;function t(d){return d instanceof it?d:new it(d)}n.asTitle=t;function i(d){let c=window.getComputedStyle(d);return 1e3*(parseFloat(c.transitionDuration)||0)}n.parseTransitionDuration=i;function s(d,c){let f=new Array(d.length);for(let h=0,m=d.length;h<m;++h){let p=d[h],_=window.getComputedStyle(p);c==="horizontal"?f[h]={pos:p.offsetLeft,size:p.offsetWidth,margin:parseFloat(_.marginLeft)||0}:f[h]={pos:p.offsetTop,size:p.offsetHeight,margin:parseFloat(_.marginTop)||0}}return f}n.snapTabLayout=s;function r(d,c){let f=Math.abs(c.clientX-d.pressX),h=Math.abs(c.clientY-d.pressY);return f>=n.DRAG_THRESHOLD||h>=n.DRAG_THRESHOLD}n.dragExceeded=r;function o(d,c){let f=d.contentRect;return c.clientX<f.left-n.DETACH_THRESHOLD||c.clientX>=f.right+n.DETACH_THRESHOLD||c.clientY<f.top-n.DETACH_THRESHOLD||c.clientY>=f.bottom+n.DETACH_THRESHOLD}n.detachExceeded=o;function a(d,c,f,h){let m,p,_,w;h==="horizontal"?(m=c.pressX,p=f.clientX-c.contentRect.left,_=f.clientX,w=c.contentRect.width):(m=c.pressY,p=f.clientY-c.contentRect.top,_=f.clientY,w=c.contentRect.height);let v=c.index,g=p-c.tabPressPos,b=g+c.tabSize;for(let y=0,M=d.length;y<M;++y){let S,E=c.tabLayout[y],P=E.pos+(E.size>>1);if(y<c.index&&g<P)S=`${c.tabSize+c.tabLayout[y+1].margin}px`,v=Math.min(v,y);else if(y>c.index&&b>P)S=`${-c.tabSize-E.margin}px`,v=Math.max(v,y);else if(y===c.index){let x=_-m,I=w-(c.tabPos+c.tabSize);S=`${Math.max(-c.tabPos,Math.min(x,I))}px`}else S="";h==="horizontal"?d[y].style.left=S:d[y].style.top=S}c.targetIndex=v}n.layoutTabs=a;function l(d,c){let f;c==="horizontal"?f=d.contentRect.width:f=d.contentRect.height;let h;if(d.targetIndex===d.index)h=0;else if(d.targetIndex>d.index){let _=d.tabLayout[d.targetIndex];h=_.pos+_.size-d.tabSize-d.tabPos}else h=d.tabLayout[d.targetIndex].pos-d.tabPos;let m=f-(d.tabPos+d.tabSize),p=Math.max(-d.tabPos,Math.min(h,m));c==="horizontal"?d.tab.style.left=`${p}px`:d.tab.style.top=`${p}px`}n.finalizeTabPosition=l;function u(d,c){for(let f of d)c==="horizontal"?f.style.left="":f.style.top=""}n.resetTabPositions=u})(pe||(pe={}));var It=class extends Be{constructor(e){super(),this._spacing=4,this._dirty=!1,this._root=null,this._box=null,this._items=new Map,this.renderer=e.renderer,e.spacing!==void 0&&(this._spacing=st.clampDimension(e.spacing)),this._document=e.document||document,this._hiddenMode=e.hiddenMode!==void 0?e.hiddenMode:D.HiddenMode.Display}dispose(){let e=this[Symbol.iterator]();this._items.forEach(t=>{t.dispose()}),this._box=null,this._root=null,this._items.clear();for(let t of e)t.dispose();super.dispose()}get hiddenMode(){return this._hiddenMode}set hiddenMode(e){if(this._hiddenMode!==e){this._hiddenMode=e;for(let t of this.tabBars())if(t.titles.length>1)for(let i of t.titles)i.owner.hiddenMode=this._hiddenMode}}get spacing(){return this._spacing}set spacing(e){e=st.clampDimension(e),this._spacing!==e&&(this._spacing=e,this.parent&&this.parent.fit())}get isEmpty(){return this._root===null}[Symbol.iterator](){return this._root?this._root.iterAllWidgets():(0,A.empty)()}widgets(){return this._root?this._root.iterUserWidgets():(0,A.empty)()}selectedWidgets(){return this._root?this._root.iterSelectedWidgets():(0,A.empty)()}tabBars(){return this._root?this._root.iterTabBars():(0,A.empty)()}handles(){return this._root?this._root.iterHandles():(0,A.empty)()}moveHandle(e,t,i){let s=e.classList.contains("lm-mod-hidden");if(!this._root||s)return;let r=this._root.findSplitNode(e);if(!r)return;let o;r.node.orientation==="horizontal"?o=t-e.offsetLeft:o=i-e.offsetTop,o!==0&&(r.node.holdSizes(),ue.adjust(r.node.sizers,r.index,o),this.parent&&this.parent.update())}saveLayout(){return this._root?(this._root.holdAllSizes(),{main:this._root.createConfig()}):{main:null}}restoreLayout(e){let t=new Set,i;e.main?i=Q.normalizeAreaConfig(e.main,t):i=null;let s=this.widgets(),r=this.tabBars(),o=this.handles();this._root=null;for(let a of s)t.has(a)||(a.parent=null);for(let a of r)a.dispose();for(let a of o)a.parentNode&&a.parentNode.removeChild(a);for(let a of t)a.parent=this.parent;i?this._root=Q.realizeAreaConfig(i,{createTabBar:a=>this._createTabBar(),createHandle:()=>this._createHandle()},this._document):this._root=null,this.parent&&(t.forEach(a=>{this.attachWidget(a)}),this.parent.fit())}addWidget(e,t={}){let i=t.ref||null,s=t.mode||"tab-after",r=null;if(this._root&&i&&(r=this._root.findTabNode(i)),i&&!r)throw new Error("Reference widget is not in the layout.");switch(e.parent=this.parent,s){case"tab-after":this._insertTab(e,i,r,!0);break;case"tab-before":this._insertTab(e,i,r,!1);break;case"split-top":this._insertSplit(e,i,r,"vertical",!1);break;case"split-left":this._insertSplit(e,i,r,"horizontal",!1);break;case"split-right":this._insertSplit(e,i,r,"horizontal",!0);break;case"split-bottom":this._insertSplit(e,i,r,"vertical",!0);break;case"merge-top":this._insertSplit(e,i,r,"vertical",!1,!0);break;case"merge-left":this._insertSplit(e,i,r,"horizontal",!1,!0);break;case"merge-right":this._insertSplit(e,i,r,"horizontal",!0,!0);break;case"merge-bottom":this._insertSplit(e,i,r,"vertical",!0,!0);break}this.parent&&(this.attachWidget(e),this.parent.fit())}removeWidget(e){this._removeWidget(e),this.parent&&(this.detachWidget(e),this.parent.fit())}hitTestTabAreas(e,t){if(!this._root||!this.parent||!this.parent.isVisible)return null;this._box||(this._box=$.boxSizing(this.parent.node));let i=this.parent.node.getBoundingClientRect(),s=e-i.left-this._box.borderLeft,r=t-i.top-this._box.borderTop,o=this._root.hitTestTabNodes(s,r);if(!o)return null;let{tabBar:a,top:l,left:u,width:d,height:c}=o,f=this._box.borderLeft+this._box.borderRight,h=this._box.borderTop+this._box.borderBottom,m=i.width-f-(u+d),p=i.height-h-(l+c);return{tabBar:a,x:s,y:r,top:l,left:u,right:m,bottom:p,width:d,height:c}}init(){super.init();for(let e of this)this.attachWidget(e);for(let e of this.handles())this.parent.node.appendChild(e);this.parent.fit()}attachWidget(e){this.parent.node!==e.node.parentNode&&(this._items.set(e,new Oe(e)),this.parent.isAttached&&z.sendMessage(e,D.Msg.BeforeAttach),this.parent.node.appendChild(e.node),this.parent.isAttached&&z.sendMessage(e,D.Msg.AfterAttach))}detachWidget(e){if(this.parent.node!==e.node.parentNode)return;this.parent.isAttached&&z.sendMessage(e,D.Msg.BeforeDetach),this.parent.node.removeChild(e.node),this.parent.isAttached&&z.sendMessage(e,D.Msg.AfterDetach);let t=this._items.get(e);t&&(this._items.delete(e),t.dispose())}onBeforeShow(e){super.onBeforeShow(e),this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e),this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){this.parent.isVisible&&this._update(e.width,e.height)}onUpdateRequest(e){this.parent.isVisible&&this._update(-1,-1)}onFitRequest(e){this.parent.isAttached&&this._fit()}_removeWidget(e){if(!this._root)return;let t=this._root.findTabNode(e);if(!t)return;if(Q.removeAria(e),t.tabBar.titles.length>1){if(t.tabBar.removeTab(e.title),this._hiddenMode===D.HiddenMode.Scale&&t.tabBar.titles.length==1){let f=t.tabBar.titles[0].owner;f.hiddenMode=D.HiddenMode.Display}return}if(t.tabBar.dispose(),this._root===t){this._root=null;return}this._root.holdAllSizes();let i=t.parent;t.parent=null;let s=A.ArrayExt.removeFirstOf(i.children,t),r=A.ArrayExt.removeAt(i.handles,s);if(A.ArrayExt.removeAt(i.sizers,s),r.parentNode&&r.parentNode.removeChild(r),i.children.length>1){i.syncHandles();return}let o=i.parent;i.parent=null;let a=i.children[0],l=i.handles[0];if(i.children.length=0,i.handles.length=0,i.sizers.length=0,l.parentNode&&l.parentNode.removeChild(l),this._root===i){a.parent=null,this._root=a;return}let u=o,d=u.children.indexOf(i);if(a instanceof Q.TabLayoutNode){a.parent=u,u.children[d]=a;return}let c=A.ArrayExt.removeAt(u.handles,d);A.ArrayExt.removeAt(u.children,d),A.ArrayExt.removeAt(u.sizers,d),c.parentNode&&c.parentNode.removeChild(c);for(let f=0,h=a.children.length;f<h;++f){let m=a.children[f],p=a.handles[f],_=a.sizers[f];A.ArrayExt.insert(u.children,d+f,m),A.ArrayExt.insert(u.handles,d+f,p),A.ArrayExt.insert(u.sizers,d+f,_),m.parent=u}a.children.length=0,a.handles.length=0,a.sizers.length=0,a.parent=null,u.syncHandles()}_createTabNode(e){let t=new Q.TabLayoutNode(this._createTabBar());return t.tabBar.addTab(e.title),Q.addAria(e,t.tabBar),t}_insertTab(e,t,i,s){if(e===t)return;if(!this._root){let o=new Q.TabLayoutNode(this._createTabBar());o.tabBar.addTab(e.title),this._root=o,Q.addAria(e,o.tabBar);return}i||(i=this._root.findFirstTabNode()),i.tabBar.titles.indexOf(e.title)===-1&&(this._removeWidget(e),e.hide());let r;if(t?r=i.tabBar.titles.indexOf(t.title):r=i.tabBar.currentIndex,this._hiddenMode===D.HiddenMode.Scale)if(i.tabBar.titles.length===0)e.hiddenMode=D.HiddenMode.Display;else if(i.tabBar.titles.length==1){let o=i.tabBar.titles[0].owner;o.hiddenMode=D.HiddenMode.Scale}else e.hiddenMode=D.HiddenMode.Scale;else e.hiddenMode=this._hiddenMode;i.tabBar.insertTab(r+(s?1:0),e.title),Q.addAria(e,i.tabBar)}_insertSplit(e,t,i,s,r,o=!1){if(e===t&&i&&i.tabBar.titles.length===1)return;if(this._removeWidget(e),!this._root){this._root=this._createTabNode(e);return}if(!i||!i.parent){let f=this._splitRoot(s),h=r?f.children.length:0;f.normalizeSizes();let m=Q.createSizer(i?1:Q.GOLDEN_RATIO),p=this._createTabNode(e);A.ArrayExt.insert(f.children,h,p),A.ArrayExt.insert(f.sizers,h,m),A.ArrayExt.insert(f.handles,h,this._createHandle()),p.parent=f,f.normalizeSizes(),f.syncHandles();return}let a=i.parent;if(a.orientation===s){let f=a.children.indexOf(i);if(o){let _=f+(r?1:-1),w=a.children[_];if(w instanceof Q.TabLayoutNode){this._insertTab(e,null,w,!0),++w.tabBar.currentIndex;return}}a.normalizeSizes();let h=a.sizers[f].sizeHint/=2,m=f+(r?1:0),p=this._createTabNode(e);A.ArrayExt.insert(a.children,m,p),A.ArrayExt.insert(a.sizers,m,Q.createSizer(h)),A.ArrayExt.insert(a.handles,m,this._createHandle()),p.parent=a,a.syncHandles();return}let l=A.ArrayExt.removeFirstOf(a.children,i),u=new Q.SplitLayoutNode(s);u.normalized=!0,u.children.push(i),u.sizers.push(Q.createSizer(.5)),u.handles.push(this._createHandle()),i.parent=u;let d=r?1:0,c=this._createTabNode(e);A.ArrayExt.insert(u.children,d,c),A.ArrayExt.insert(u.sizers,d,Q.createSizer(.5)),A.ArrayExt.insert(u.handles,d,this._createHandle()),c.parent=u,u.syncHandles(),A.ArrayExt.insert(a.children,l,u),u.parent=a}_splitRoot(e){let t=this._root;if(t instanceof Q.SplitLayoutNode&&t.orientation===e)return t;let i=this._root=new Q.SplitLayoutNode(e);return t&&(i.children.push(t),i.sizers.push(Q.createSizer(0)),i.handles.push(this._createHandle()),t.parent=i),i}_fit(){let e=0,t=0;if(this._root){let r=this._root.fit(this._spacing,this._items);e=r.minWidth,t=r.minHeight}let i=this._box=$.boxSizing(this.parent.node);e+=i.horizontalSum,t+=i.verticalSum;let s=this.parent.node.style;s.minWidth=`${e}px`,s.minHeight=`${t}px`,this._dirty=!0,this.parent.parent&&z.sendMessage(this.parent.parent,D.Msg.FitRequest),this._dirty&&z.sendMessage(this.parent,D.Msg.UpdateRequest)}_update(e,t){if(this._dirty=!1,!this._root)return;e<0&&(e=this.parent.node.offsetWidth),t<0&&(t=this.parent.node.offsetHeight),this._box||(this._box=$.boxSizing(this.parent.node));let i=this._box.paddingTop,s=this._box.paddingLeft,r=e-this._box.horizontalSum,o=t-this._box.verticalSum;this._root.update(i,s,r,o,this._spacing,this._items)}_createTabBar(){let e=this.renderer.createTabBar(this._document);return e.orientation="horizontal",this.parent&&this.attachWidget(e),e}_createHandle(){let e=this.renderer.createHandle(),t=e.style;return t.position="absolute",t.contain="strict",t.top="0",t.left="0",t.width="0",t.height="0",this.parent&&this.parent.node.appendChild(e),e}},Q;(function(n){n.GOLDEN_RATIO=.618;function e(f){let h=new Me;return h.sizeHint=f,h.size=f,h}n.createSizer=e;function t(f,h){let m;return f.type==="tab-area"?m=l(f,h):m=u(f,h),m}n.normalizeAreaConfig=t;function i(f,h,m){let p;return f.type==="tab-area"?p=d(f,h,m):p=c(f,h,m),p}n.realizeAreaConfig=i;class s{constructor(h){this.parent=null,this._top=0,this._left=0,this._width=0,this._height=0;let m=new Me,p=new Me;m.stretch=0,p.stretch=1,this.tabBar=h,this.sizers=[m,p]}get top(){return this._top}get left(){return this._left}get width(){return this._width}get height(){return this._height}*iterAllWidgets(){yield this.tabBar,yield*this.iterUserWidgets()}*iterUserWidgets(){for(let h of this.tabBar.titles)yield h.owner}*iterSelectedWidgets(){let h=this.tabBar.currentTitle;h&&(yield h.owner)}*iterTabBars(){yield this.tabBar}*iterHandles(){}findTabNode(h){return this.tabBar.titles.indexOf(h.title)!==-1?this:null}findSplitNode(h){return null}findFirstTabNode(){return this}hitTestTabNodes(h,m){return h<this._left||h>=this._left+this._width||m<this._top||m>=this._top+this._height?null:this}createConfig(){let h=this.tabBar.titles.map(p=>p.owner),m=this.tabBar.currentIndex;return{type:"tab-area",widgets:h,currentIndex:m}}holdAllSizes(){}fit(h,m){let p=0,_=0,w=1/0,v=1/0,g=m.get(this.tabBar),b=this.tabBar.currentTitle,y=b?m.get(b.owner):void 0,[M,S]=this.sizers;return g&&g.fit(),y&&y.fit(),g&&!g.isHidden?(p=Math.max(p,g.minWidth),_+=g.minHeight,M.minSize=g.minHeight,M.maxSize=g.maxHeight):(M.minSize=0,M.maxSize=0),y&&!y.isHidden?(p=Math.max(p,y.minWidth),_+=y.minHeight,S.minSize=y.minHeight,S.maxSize=1/0):(S.minSize=0,S.maxSize=1/0),{minWidth:p,minHeight:_,maxWidth:w,maxHeight:v}}update(h,m,p,_,w,v){this._top=m,this._left=h,this._width=p,this._height=_;let g=v.get(this.tabBar),b=this.tabBar.currentTitle,y=b?v.get(b.owner):void 0;if(ue.calc(this.sizers,_),g&&!g.isHidden){let M=this.sizers[0].size;g.update(h,m,p,M),m+=M}if(y&&!y.isHidden){let M=this.sizers[1].size;y.update(h,m,p,M)}}}n.TabLayoutNode=s;class r{constructor(h){this.parent=null,this.normalized=!1,this.children=[],this.sizers=[],this.handles=[],this.orientation=h}*iterAllWidgets(){for(let h of this.children)yield*h.iterAllWidgets()}*iterUserWidgets(){for(let h of this.children)yield*h.iterUserWidgets()}*iterSelectedWidgets(){for(let h of this.children)yield*h.iterSelectedWidgets()}*iterTabBars(){for(let h of this.children)yield*h.iterTabBars()}*iterHandles(){yield*this.handles;for(let h of this.children)yield*h.iterHandles()}findTabNode(h){for(let m=0,p=this.children.length;m<p;++m){let _=this.children[m].findTabNode(h);if(_)return _}return null}findSplitNode(h){let m=this.handles.indexOf(h);if(m!==-1)return{index:m,node:this};for(let p=0,_=this.children.length;p<_;++p){let w=this.children[p].findSplitNode(h);if(w)return w}return null}findFirstTabNode(){return this.children.length===0?null:this.children[0].findFirstTabNode()}hitTestTabNodes(h,m){for(let p=0,_=this.children.length;p<_;++p){let w=this.children[p].hitTestTabNodes(h,m);if(w)return w}return null}createConfig(){let h=this.orientation,m=this.createNormalizedSizes(),p=this.children.map(_=>_.createConfig());return{type:"split-area",orientation:h,children:p,sizes:m}}syncHandles(){this.handles.forEach((h,m)=>{h.setAttribute("data-orientation",this.orientation),m===this.handles.length-1?h.classList.add("lm-mod-hidden"):h.classList.remove("lm-mod-hidden")})}holdSizes(){for(let h of this.sizers)h.sizeHint=h.size}holdAllSizes(){for(let h of this.children)h.holdAllSizes();this.holdSizes()}normalizeSizes(){let h=this.sizers.length;if(h===0)return;this.holdSizes();let m=this.sizers.reduce((p,_)=>p+_.sizeHint,0);if(m===0)for(let p of this.sizers)p.size=p.sizeHint=1/h;else for(let p of this.sizers)p.size=p.sizeHint/=m;this.normalized=!0}createNormalizedSizes(){let h=this.sizers.length;if(h===0)return[];let m=this.sizers.map(_=>_.size),p=m.reduce((_,w)=>_+w,0);if(p===0)for(let _=m.length-1;_>-1;_--)m[_]=1/h;else for(let _=m.length-1;_>-1;_--)m[_]/=p;return m}fit(h,m){let p=this.orientation==="horizontal",_=Math.max(0,this.children.length-1)*h,w=p?_:0,v=p?0:_,g=1/0,b=1/0;for(let y=0,M=this.children.length;y<M;++y){let S=this.children[y].fit(h,m);p?(v=Math.max(v,S.minHeight),w+=S.minWidth,this.sizers[y].minSize=S.minWidth):(w=Math.max(w,S.minWidth),v+=S.minHeight,this.sizers[y].minSize=S.minHeight)}return{minWidth:w,minHeight:v,maxWidth:g,maxHeight:b}}update(h,m,p,_,w,v){let g=this.orientation==="horizontal",b=Math.max(0,this.children.length-1)*w,y=Math.max(0,(g?p:_)-b);if(this.normalized){for(let M of this.sizers)M.sizeHint*=y;this.normalized=!1}ue.calc(this.sizers,y);for(let M=0,S=this.children.length;M<S;++M){let E=this.children[M],P=this.sizers[M].size,x=this.handles[M].style;g?(E.update(h,m,P,_,w,v),h+=P,x.top=`${m}px`,x.left=`${h}px`,x.width=`${w}px`,x.height=`${_}px`,h+=w):(E.update(h,m,p,P,w,v),m+=P,x.top=`${m}px`,x.left=`${h}px`,x.width=`${p}px`,x.height=`${w}px`,m+=w)}}}n.SplitLayoutNode=r;function o(f,h){f.node.setAttribute("role","tabpanel");let m=h.renderer;if(m instanceof Ce.Renderer){let p=m.createTabKey({title:f.title,current:!1,zIndex:0});f.node.setAttribute("aria-labelledby",p)}}n.addAria=o;function a(f){f.node.removeAttribute("role"),f.node.removeAttribute("aria-labelledby")}n.removeAria=a;function l(f,h){if(f.widgets.length===0)return null;let m=[];for(let _ of f.widgets)h.has(_)||(h.add(_),m.push(_));if(m.length===0)return null;let p=f.currentIndex;return p!==-1&&(p<0||p>=m.length)&&(p=0),{type:"tab-area",widgets:m,currentIndex:p}}function u(f,h){let m=f.orientation,p=[],_=[];for(let w=0,v=f.children.length;w<v;++w){let g=t(f.children[w],h);g&&(g.type==="tab-area"||g.orientation!==m?(p.push(g),_.push(Math.abs(f.sizes[w]||0))):(p.push(...g.children),_.push(...g.sizes)))}return p.length===0?null:p.length===1?p[0]:{type:"split-area",orientation:m,children:p,sizes:_}}function d(f,h,m){let p=h.createTabBar(m);for(let _ of f.widgets)_.hide(),p.addTab(_.title),n.addAria(_,p);return p.currentIndex=f.currentIndex,new s(p)}function c(f,h,m){let p=new r(f.orientation);return f.children.forEach((_,w)=>{let v=i(_,h,m),g=e(f.sizes[w]),b=h.createHandle();p.children.push(v),p.handles.push(b),p.sizers.push(g),v.parent=p}),p.syncHandles(),p.normalizeSizes(),p}})(Q||(Q={}));var Fe=class n extends D{constructor(e={}){super(),this._drag=null,this._tabsMovable=!0,this._tabsConstrained=!1,this._addButtonEnabled=!1,this._pressData=null,this._layoutModified=new U(this),this._addRequested=new U(this),this.addClass("lm-DockPanel"),this._document=e.document||document,this._mode=e.mode||"multiple-document",this._renderer=e.renderer||n.defaultRenderer,this._edges=e.edges||J.DEFAULT_EDGES,e.tabsMovable!==void 0&&(this._tabsMovable=e.tabsMovable),e.tabsConstrained!==void 0&&(this._tabsConstrained=e.tabsConstrained),e.addButtonEnabled!==void 0&&(this._addButtonEnabled=e.addButtonEnabled),this.dataset.mode=this._mode;let t={createTabBar:()=>this._createTabBar(),createHandle:()=>this._createHandle()};this.layout=new It({document:this._document,renderer:t,spacing:e.spacing,hiddenMode:e.hiddenMode}),this.overlay=e.overlay||new n.Overlay,this.node.appendChild(this.overlay.node)}dispose(){this._releaseMouse(),this.overlay.hide(0),this._drag&&this._drag.dispose(),super.dispose()}get hiddenMode(){return this.layout.hiddenMode}set hiddenMode(e){this.layout.hiddenMode=e}get layoutModified(){return this._layoutModified}get addRequested(){return this._addRequested}get renderer(){return this.layout.renderer}get spacing(){return this.layout.spacing}set spacing(e){this.layout.spacing=e}get mode(){return this._mode}set mode(e){if(this._mode===e)return;this._mode=e,this.dataset.mode=e;let t=this.layout;switch(e){case"multiple-document":for(let i of t.tabBars())i.show();break;case"single-document":t.restoreLayout(J.createSingleDocumentConfig(this));break;default:throw"unreachable"}z.postMessage(this,J.LayoutModified)}get tabsMovable(){return this._tabsMovable}set tabsMovable(e){this._tabsMovable=e;for(let t of this.tabBars())t.tabsMovable=e}get tabsConstrained(){return this._tabsConstrained}set tabsConstrained(e){this._tabsConstrained=e}get addButtonEnabled(){return this._addButtonEnabled}set addButtonEnabled(e){this._addButtonEnabled=e;for(let t of this.tabBars())t.addButtonEnabled=e}get isEmpty(){return this.layout.isEmpty}*widgets(){yield*this.layout.widgets()}*selectedWidgets(){yield*this.layout.selectedWidgets()}*tabBars(){yield*this.layout.tabBars()}*handles(){yield*this.layout.handles()}selectWidget(e){let t=(0,A.find)(this.tabBars(),i=>i.titles.indexOf(e.title)!==-1);if(!t)throw new Error("Widget is not contained in the dock panel.");t.currentTitle=e.title}activateWidget(e){this.selectWidget(e),e.activate()}saveLayout(){return this.layout.saveLayout()}restoreLayout(e){this._mode="multiple-document",this.layout.restoreLayout(e),(se.IS_EDGE||se.IS_IE)&&z.flush(),z.postMessage(this,J.LayoutModified)}addWidget(e,t={}){this._mode==="single-document"?this.layout.addWidget(e):this.layout.addWidget(e,t),z.postMessage(this,J.LayoutModified)}processMessage(e){e.type==="layout-modified"?this._layoutModified.emit(void 0):super.processMessage(e)}handleEvent(e){switch(e.type){case"lm-dragenter":this._evtDragEnter(e);break;case"lm-dragleave":this._evtDragLeave(e);break;case"lm-dragover":this._evtDragOver(e);break;case"lm-drop":this._evtDrop(e);break;case"pointerdown":this._evtPointerDown(e);break;case"pointermove":this._evtPointerMove(e);break;case"pointerup":this._evtPointerUp(e);break;case"keydown":this._evtKeyDown(e);break;case"contextmenu":e.preventDefault(),e.stopPropagation();break}}onBeforeAttach(e){this.node.addEventListener("lm-dragenter",this),this.node.addEventListener("lm-dragleave",this),this.node.addEventListener("lm-dragover",this),this.node.addEventListener("lm-drop",this),this.node.addEventListener("pointerdown",this)}onAfterDetach(e){this.node.removeEventListener("lm-dragenter",this),this.node.removeEventListener("lm-dragleave",this),this.node.removeEventListener("lm-dragover",this),this.node.removeEventListener("lm-drop",this),this.node.removeEventListener("pointerdown",this),this._releaseMouse()}onChildAdded(e){J.isGeneratedTabBarProperty.get(e.child)||e.child.addClass("lm-DockPanel-widget")}onChildRemoved(e){J.isGeneratedTabBarProperty.get(e.child)||(e.child.removeClass("lm-DockPanel-widget"),z.postMessage(this,J.LayoutModified))}_evtDragEnter(e){e.mimeData.hasData("application/vnd.lumino.widget-factory")&&(e.preventDefault(),e.stopPropagation())}_evtDragLeave(e){e.preventDefault(),!(this._tabsConstrained&&e.source!==this)&&(e.stopPropagation(),this.overlay.hide(1))}_evtDragOver(e){e.preventDefault(),this._tabsConstrained&&e.source!==this||this._showOverlay(e.clientX,e.clientY)==="invalid"?e.dropAction="none":(e.stopPropagation(),e.dropAction=e.proposedAction)}_evtDrop(e){if(e.preventDefault(),this.overlay.hide(0),e.proposedAction==="none"){e.dropAction="none";return}let{clientX:t,clientY:i}=e,{zone:s,target:r}=J.findDropTarget(this,t,i,this._edges);if(this._tabsConstrained&&e.source!==this||s==="invalid"){e.dropAction="none";return}let a=e.mimeData.getData("application/vnd.lumino.widget-factory");if(typeof a!="function"){e.dropAction="none";return}let l=a();if(!(l instanceof D)){e.dropAction="none";return}if(l.contains(this)){e.dropAction="none";return}let u=r?J.getDropRef(r.tabBar):null;switch(s){case"root-all":this.addWidget(l);break;case"root-top":this.addWidget(l,{mode:"split-top"});break;case"root-left":this.addWidget(l,{mode:"split-left"});break;case"root-right":this.addWidget(l,{mode:"split-right"});break;case"root-bottom":this.addWidget(l,{mode:"split-bottom"});break;case"widget-all":this.addWidget(l,{mode:"tab-after",ref:u});break;case"widget-top":this.addWidget(l,{mode:"split-top",ref:u});break;case"widget-left":this.addWidget(l,{mode:"split-left",ref:u});break;case"widget-right":this.addWidget(l,{mode:"split-right",ref:u});break;case"widget-bottom":this.addWidget(l,{mode:"split-bottom",ref:u});break;case"widget-tab":this.addWidget(l,{mode:"tab-after",ref:u});break;default:throw"unreachable"}e.dropAction=e.proposedAction,e.stopPropagation(),this.activateWidget(l)}_evtKeyDown(e){e.preventDefault(),e.stopPropagation(),e.keyCode===27&&(this._releaseMouse(),z.postMessage(this,J.LayoutModified))}_evtPointerDown(e){if(e.button!==0)return;let t=this.layout,i=e.target,s=(0,A.find)(t.handles(),d=>d.contains(i));if(!s)return;e.preventDefault(),e.stopPropagation(),this._document.addEventListener("keydown",this,!0),this._document.addEventListener("pointerup",this,!0),this._document.addEventListener("pointermove",this,!0),this._document.addEventListener("contextmenu",this,!0);let r=s.getBoundingClientRect(),o=e.clientX-r.left,a=e.clientY-r.top,l=window.getComputedStyle(s),u=le.overrideCursor(l.cursor,this._document);this._pressData={handle:s,deltaX:o,deltaY:a,override:u}}_evtPointerMove(e){if(!this._pressData)return;e.preventDefault(),e.stopPropagation();let t=this.node.getBoundingClientRect(),i=e.clientX-t.left-this._pressData.deltaX,s=e.clientY-t.top-this._pressData.deltaY;this.layout.moveHandle(this._pressData.handle,i,s)}_evtPointerUp(e){e.button===0&&(e.preventDefault(),e.stopPropagation(),this._releaseMouse(),z.postMessage(this,J.LayoutModified))}_releaseMouse(){this._pressData&&(this._pressData.override.dispose(),this._pressData=null,this._document.removeEventListener("keydown",this,!0),this._document.removeEventListener("pointerup",this,!0),this._document.removeEventListener("pointermove",this,!0),this._document.removeEventListener("contextmenu",this,!0))}_showOverlay(e,t){let{zone:i,target:s}=J.findDropTarget(this,e,t,this._edges);if(i==="invalid")return this.overlay.hide(100),i;let r,o,a,l,u=$.boxSizing(this.node),d=this.node.getBoundingClientRect();switch(i){case"root-all":r=u.paddingTop,o=u.paddingLeft,a=u.paddingRight,l=u.paddingBottom;break;case"root-top":r=u.paddingTop,o=u.paddingLeft,a=u.paddingRight,l=d.height*J.GOLDEN_RATIO;break;case"root-left":r=u.paddingTop,o=u.paddingLeft,a=d.width*J.GOLDEN_RATIO,l=u.paddingBottom;break;case"root-right":r=u.paddingTop,o=d.width*J.GOLDEN_RATIO,a=u.paddingRight,l=u.paddingBottom;break;case"root-bottom":r=d.height*J.GOLDEN_RATIO,o=u.paddingLeft,a=u.paddingRight,l=u.paddingBottom;break;case"widget-all":r=s.top,o=s.left,a=s.right,l=s.bottom;break;case"widget-top":r=s.top,o=s.left,a=s.right,l=s.bottom+s.height/2;break;case"widget-left":r=s.top,o=s.left,a=s.right+s.width/2,l=s.bottom;break;case"widget-right":r=s.top,o=s.left+s.width/2,a=s.right,l=s.bottom;break;case"widget-bottom":r=s.top+s.height/2,o=s.left,a=s.right,l=s.bottom;break;case"widget-tab":{let c=s.tabBar.node.getBoundingClientRect().height;r=s.top,o=s.left,a=s.right,l=s.bottom+s.height-c;break}default:throw"unreachable"}return this.overlay.show({top:r,left:o,right:a,bottom:l}),i}_createTabBar(){let e=this._renderer.createTabBar(this._document);return J.isGeneratedTabBarProperty.set(e,!0),this._mode==="single-document"&&e.hide(),e.tabsMovable=this._tabsMovable,e.allowDeselect=!1,e.addButtonEnabled=this._addButtonEnabled,e.removeBehavior="select-previous-tab",e.insertBehavior="select-tab-if-needed",e.tabMoved.connect(this._onTabMoved,this),e.currentChanged.connect(this._onCurrentChanged,this),e.tabCloseRequested.connect(this._onTabCloseRequested,this),e.tabDetachRequested.connect(this._onTabDetachRequested,this),e.tabActivateRequested.connect(this._onTabActivateRequested,this),e.addRequested.connect(this._onTabAddRequested,this),e}_createHandle(){return this._renderer.createHandle()}_onTabMoved(){z.postMessage(this,J.LayoutModified)}_onCurrentChanged(e,t){let{previousTitle:i,currentTitle:s}=t;i&&i.owner.hide(),s&&s.owner.show(),(se.IS_EDGE||se.IS_IE)&&z.flush(),z.postMessage(this,J.LayoutModified)}_onTabAddRequested(e){this._addRequested.emit(e)}_onTabActivateRequested(e,t){t.title.owner.activate()}_onTabCloseRequested(e,t){t.title.owner.close()}_onTabDetachRequested(e,t){if(this._drag)return;e.releaseMouse();let{title:i,tab:s,clientX:r,clientY:o,offset:a}=t,l=new Le.MimeData,u=()=>i.owner;l.setData("application/vnd.lumino.widget-factory",u);let d=s.cloneNode(!0);a&&(d.style.top=`-${a.y}px`,d.style.left=`-${a.x}px`),this._drag=new le({document:this._document,mimeData:l,dragImage:d,proposedAction:"move",supportedActions:"move",source:this}),s.classList.add("lm-mod-hidden");let c=()=>{this._drag=null,s.classList.remove("lm-mod-hidden")};this._drag.start(r,o).then(c)}};(function(n){class e{constructor(){this._timer=-1,this._hidden=!0,this.node=document.createElement("div"),this.node.classList.add("lm-DockPanel-overlay"),this.node.classList.add("lm-mod-hidden"),this.node.style.position="absolute",this.node.style.contain="strict"}show(s){let r=this.node.style;r.top=`${s.top}px`,r.left=`${s.left}px`,r.right=`${s.right}px`,r.bottom=`${s.bottom}px`,clearTimeout(this._timer),this._timer=-1,this._hidden&&(this._hidden=!1,this.node.classList.remove("lm-mod-hidden"))}hide(s){if(!this._hidden){if(s<=0){clearTimeout(this._timer),this._timer=-1,this._hidden=!0,this.node.classList.add("lm-mod-hidden");return}this._timer===-1&&(this._timer=window.setTimeout(()=>{this._timer=-1,this._hidden=!0,this.node.classList.add("lm-mod-hidden")},s))}}}n.Overlay=e;class t{createTabBar(s){let r=new Ce({document:s});return r.addClass("lm-DockPanel-tabBar"),r}createHandle(){let s=document.createElement("div");return s.className="lm-DockPanel-handle",s}}n.Renderer=t,n.defaultRenderer=new t})(Fe||(Fe={}));var J;(function(n){n.GOLDEN_RATIO=.618,n.DEFAULT_EDGES={top:12,right:40,bottom:40,left:40},n.LayoutModified=new Pe("layout-modified"),n.isGeneratedTabBarProperty=new oe({name:"isGeneratedTabBar",create:()=>!1});function e(s){if(s.isEmpty)return{main:null};let r=Array.from(s.widgets()),o=s.selectedWidgets().next().value,a=o?r.indexOf(o):-1;return{main:{type:"tab-area",widgets:r,currentIndex:a}}}n.createSingleDocumentConfig=e;function t(s,r,o,a){if(!$.hitTest(s.node,r,o))return{zone:"invalid",target:null};let l=s.layout;if(l.isEmpty)return{zone:"root-all",target:null};if(s.mode==="multiple-document"){let g=s.node.getBoundingClientRect(),b=r-g.left+1,y=o-g.top+1,M=g.right-r,S=g.bottom-o;switch(Math.min(y,M,S,b)){case y:if(y<a.top)return{zone:"root-top",target:null};break;case M:if(M<a.right)return{zone:"root-right",target:null};break;case S:if(S<a.bottom)return{zone:"root-bottom",target:null};break;case b:if(b<a.left)return{zone:"root-left",target:null};break;default:throw"unreachable"}}let u=l.hitTestTabAreas(r,o);if(!u)return{zone:"invalid",target:null};if(s.mode==="single-document")return{zone:"widget-all",target:u};let d=u.x-u.left+1,c=u.y-u.top+1,f=u.left+u.width-u.x,h=u.top+u.height-u.y,m=u.tabBar.node.getBoundingClientRect().height;if(c<m)return{zone:"widget-tab",target:u};let p=Math.round(u.width/3),_=Math.round(u.height/3);if(d>p&&f>p&&c>_&&h>_)return{zone:"widget-all",target:u};d/=p,c/=_,f/=p,h/=_;let w=Math.min(d,c,f,h),v;switch(w){case d:v="widget-left";break;case c:v="widget-top";break;case f:v="widget-right";break;case h:v="widget-bottom";break;default:throw"unreachable"}return{zone:v,target:u}}n.findDropTarget=t;function i(s){return s.titles.length===0?null:s.currentTitle?s.currentTitle.owner:s.titles[s.titles.length-1].owner}n.getDropRef=i})(J||(J={}));var at=class n extends Be{constructor(e={}){super(e),this._dirty=!1,this._rowSpacing=4,this._columnSpacing=4,this._items=[],this._rowStarts=[],this._columnStarts=[],this._rowSizers=[new Me],this._columnSizers=[new Me],this._box=null,e.rowCount!==void 0&&te.reallocSizers(this._rowSizers,e.rowCount),e.columnCount!==void 0&&te.reallocSizers(this._columnSizers,e.columnCount),e.rowSpacing!==void 0&&(this._rowSpacing=te.clampValue(e.rowSpacing)),e.columnSpacing!==void 0&&(this._columnSpacing=te.clampValue(e.columnSpacing))}dispose(){for(let e of this._items){let t=e.widget;e.dispose(),t.dispose()}this._box=null,this._items.length=0,this._rowStarts.length=0,this._rowSizers.length=0,this._columnStarts.length=0,this._columnSizers.length=0,super.dispose()}get rowCount(){return this._rowSizers.length}set rowCount(e){e!==this.rowCount&&(te.reallocSizers(this._rowSizers,e),this.parent&&this.parent.fit())}get columnCount(){return this._columnSizers.length}set columnCount(e){e!==this.columnCount&&(te.reallocSizers(this._columnSizers,e),this.parent&&this.parent.fit())}get rowSpacing(){return this._rowSpacing}set rowSpacing(e){e=te.clampValue(e),this._rowSpacing!==e&&(this._rowSpacing=e,this.parent&&this.parent.fit())}get columnSpacing(){return this._columnSpacing}set columnSpacing(e){e=te.clampValue(e),this._columnSpacing!==e&&(this._columnSpacing=e,this.parent&&this.parent.fit())}rowStretch(e){let t=this._rowSizers[e];return t?t.stretch:-1}setRowStretch(e,t){let i=this._rowSizers[e];i&&(t=te.clampValue(t),i.stretch!==t&&(i.stretch=t,this.parent&&this.parent.update()))}columnStretch(e){let t=this._columnSizers[e];return t?t.stretch:-1}setColumnStretch(e,t){let i=this._columnSizers[e];i&&(t=te.clampValue(t),i.stretch!==t&&(i.stretch=t,this.parent&&this.parent.update()))}*[Symbol.iterator](){for(let e of this._items)yield e.widget}addWidget(e){A.ArrayExt.findFirstIndex(this._items,i=>i.widget===e)===-1&&(this._items.push(new Oe(e)),this.parent&&this.attachWidget(e))}removeWidget(e){let t=A.ArrayExt.findFirstIndex(this._items,s=>s.widget===e);if(t===-1)return;let i=A.ArrayExt.removeAt(this._items,t);this.parent&&this.detachWidget(e),i.dispose()}init(){super.init();for(let e of this)this.attachWidget(e)}attachWidget(e){this.parent.isAttached&&z.sendMessage(e,D.Msg.BeforeAttach),this.parent.node.appendChild(e.node),this.parent.isAttached&&z.sendMessage(e,D.Msg.AfterAttach),this.parent.fit()}detachWidget(e){this.parent.isAttached&&z.sendMessage(e,D.Msg.BeforeDetach),this.parent.node.removeChild(e.node),this.parent.isAttached&&z.sendMessage(e,D.Msg.AfterDetach),this.parent.fit()}onBeforeShow(e){super.onBeforeShow(e),this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e),this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){this.parent.isVisible&&this._update(e.width,e.height)}onUpdateRequest(e){this.parent.isVisible&&this._update(-1,-1)}onFitRequest(e){this.parent.isAttached&&this._fit()}_fit(){for(let l=0,u=this.rowCount;l<u;++l)this._rowSizers[l].minSize=0;for(let l=0,u=this.columnCount;l<u;++l)this._columnSizers[l].minSize=0;let e=this._items.filter(l=>!l.isHidden);for(let l=0,u=e.length;l<u;++l)e[l].fit();let t=this.rowCount-1,i=this.columnCount-1;e.sort(te.rowSpanCmp);for(let l=0,u=e.length;l<u;++l){let d=e[l],c=n.getCellConfig(d.widget),f=Math.min(c.row,t),h=Math.min(c.row+c.rowSpan-1,t);te.distributeMin(this._rowSizers,f,h,d.minHeight)}e.sort(te.columnSpanCmp);for(let l=0,u=e.length;l<u;++l){let d=e[l],c=n.getCellConfig(d.widget),f=Math.min(c.column,i),h=Math.min(c.column+c.columnSpan-1,i);te.distributeMin(this._columnSizers,f,h,d.minWidth)}if(this.fitPolicy==="set-no-constraint"){z.sendMessage(this.parent,D.Msg.UpdateRequest);return}let s=t*this._rowSpacing,r=i*this._columnSpacing;for(let l=0,u=this.rowCount;l<u;++l)s+=this._rowSizers[l].minSize;for(let l=0,u=this.columnCount;l<u;++l)r+=this._columnSizers[l].minSize;let o=this._box=$.boxSizing(this.parent.node);r+=o.horizontalSum,s+=o.verticalSum;let a=this.parent.node.style;a.minWidth=`${r}px`,a.minHeight=`${s}px`,this._dirty=!0,this.parent.parent&&z.sendMessage(this.parent.parent,D.Msg.FitRequest),this._dirty&&z.sendMessage(this.parent,D.Msg.UpdateRequest)}_update(e,t){this._dirty=!1,e<0&&(e=this.parent.node.offsetWidth),t<0&&(t=this.parent.node.offsetHeight),this._box||(this._box=$.boxSizing(this.parent.node));let i=this._box.paddingTop,s=this._box.paddingLeft,r=e-this._box.horizontalSum,o=t-this._box.verticalSum,a=this.rowCount-1,l=this.columnCount-1,u=a*this._rowSpacing,d=l*this._columnSpacing;ue.calc(this._rowSizers,Math.max(0,o-u)),ue.calc(this._columnSizers,Math.max(0,r-d));for(let c=0,f=i,h=this.rowCount;c<h;++c)this._rowStarts[c]=f,f+=this._rowSizers[c].size+this._rowSpacing;for(let c=0,f=s,h=this.columnCount;c<h;++c)this._columnStarts[c]=f,f+=this._columnSizers[c].size+this._columnSpacing;for(let c=0,f=this._items.length;c<f;++c){let h=this._items[c];if(h.isHidden)continue;let m=n.getCellConfig(h.widget),p=Math.min(m.row,a),_=Math.min(m.column,l),w=Math.min(m.row+m.rowSpan-1,a),v=Math.min(m.column+m.columnSpan-1,l),g=this._columnStarts[_],b=this._rowStarts[p],y=this._columnStarts[v]+this._columnSizers[v].size-g,M=this._rowStarts[w]+this._rowSizers[w].size-b;h.update(g,b,y,M)}}};(function(n){function e(i){return te.cellConfigProperty.get(i)}n.getCellConfig=e;function t(i,s){te.cellConfigProperty.set(i,te.normalizeConfig(s))}n.setCellConfig=t})(at||(at={}));var te;(function(n){n.cellConfigProperty=new oe({name:"cellConfig",create:()=>({row:0,column:0,rowSpan:1,columnSpan:1}),changed:a});function e(l){let u=Math.max(0,Math.floor(l.row||0)),d=Math.max(0,Math.floor(l.column||0)),c=Math.max(1,Math.floor(l.rowSpan||0)),f=Math.max(1,Math.floor(l.columnSpan||0));return{row:u,column:d,rowSpan:c,columnSpan:f}}n.normalizeConfig=e;function t(l){return Math.max(0,Math.floor(l))}n.clampValue=t;function i(l,u){let d=n.cellConfigProperty.get(l.widget),c=n.cellConfigProperty.get(u.widget);return d.rowSpan-c.rowSpan}n.rowSpanCmp=i;function s(l,u){let d=n.cellConfigProperty.get(l.widget),c=n.cellConfigProperty.get(u.widget);return d.columnSpan-c.columnSpan}n.columnSpanCmp=s;function r(l,u){for(u=Math.max(1,Math.floor(u));l.length<u;)l.push(new Me);l.length>u&&(l.length=u)}n.reallocSizers=r;function o(l,u,d,c){if(d<u)return;if(u===d){let m=l[u];m.minSize=Math.max(m.minSize,c);return}let f=0;for(let m=u;m<=d;++m)f+=l[m].minSize;if(f>=c)return;let h=(c-f)/(d-u+1);for(let m=u;m<=d;++m)l[m].minSize+=h}n.distributeMin=o;function a(l){l.parent&&l.parent.layout instanceof at&&l.parent.fit()}})(te||(te={}));var bt=class n extends D{constructor(e={}){super({node:vt.createNode()}),this._activeIndex=-1,this._tabFocusIndex=0,this._menus=[],this._childMenu=null,this._overflowMenu=null,this._menuItemSizes=[],this._overflowIndex=-1,this.addClass("lm-MenuBar"),this.setFlag(D.Flag.DisallowLayout),this.renderer=e.renderer||n.defaultRenderer,this._forceItemsPosition=e.forceItemsPosition||{forceX:!0,forceY:!0},this._overflowMenuOptions=e.overflowMenuOptions||{isVisible:!0}}dispose(){this._closeChildMenu(),this._menus.length=0,super.dispose()}get childMenu(){return this._childMenu}get overflowIndex(){return this._overflowIndex}get overflowMenu(){return this._overflowMenu}get contentNode(){return this.node.getElementsByClassName("lm-MenuBar-content")[0]}get activeMenu(){return this._menus[this._activeIndex]||null}set activeMenu(e){this.activeIndex=e?this._menus.indexOf(e):-1}get activeIndex(){return this._activeIndex}set activeIndex(e){(e<0||e>=this._menus.length)&&(e=-1),e>-1&&this._menus[e].items.length===0&&(e=-1),this._activeIndex!==e&&(this._activeIndex=e,this.update())}get menus(){return this._menus}openActiveMenu(){this._activeIndex!==-1&&(this._openChildMenu(),this._childMenu&&(this._childMenu.activeIndex=-1,this._childMenu.activateNextItem()))}addMenu(e,t=!0){this.insertMenu(this._menus.length,e,t)}insertMenu(e,t,i=!0){this._closeChildMenu();let s=this._menus.indexOf(t),r=Math.max(0,Math.min(e,this._menus.length));if(s===-1){A.ArrayExt.insert(this._menus,r,t),t.addClass("lm-MenuBar-menu"),t.aboutToClose.connect(this._onMenuAboutToClose,this),t.menuRequested.connect(this._onMenuMenuRequested,this),t.title.changed.connect(this._onTitleChanged,this),i&&this.update();return}r===this._menus.length&&r--,s!==r&&(A.ArrayExt.move(this._menus,s,r),i&&this.update())}removeMenu(e,t=!0){this.removeMenuAt(this._menus.indexOf(e),t)}removeMenuAt(e,t=!0){this._closeChildMenu();let i=A.ArrayExt.removeAt(this._menus,e);i&&(i.aboutToClose.disconnect(this._onMenuAboutToClose,this),i.menuRequested.disconnect(this._onMenuMenuRequested,this),i.title.changed.disconnect(this._onTitleChanged,this),i.removeClass("lm-MenuBar-menu"),t&&this.update())}clearMenus(){if(this._menus.length!==0){this._closeChildMenu();for(let e of this._menus)e.aboutToClose.disconnect(this._onMenuAboutToClose,this),e.menuRequested.disconnect(this._onMenuMenuRequested,this),e.title.changed.disconnect(this._onTitleChanged,this),e.removeClass("lm-MenuBar-menu");this._menus.length=0,this.update()}}handleEvent(e){switch(e.type){case"keydown":this._evtKeyDown(e);break;case"mousedown":this._evtMouseDown(e);break;case"mousemove":this._evtMouseMove(e);break;case"focusout":this._evtFocusOut(e);break;case"contextmenu":e.preventDefault(),e.stopPropagation();break}}onBeforeAttach(e){this.node.addEventListener("keydown",this),this.node.addEventListener("mousedown",this),this.node.addEventListener("mousemove",this),this.node.addEventListener("focusout",this),this.node.addEventListener("contextmenu",this)}onAfterDetach(e){this.node.removeEventListener("keydown",this),this.node.removeEventListener("mousedown",this),this.node.removeEventListener("mousemove",this),this.node.removeEventListener("focusout",this),this.node.removeEventListener("contextmenu",this),this._closeChildMenu()}onActivateRequest(e){this.isAttached&&this._focusItemAt(0)}onResize(e){this.update(),super.onResize(e)}onUpdateRequest(e){var t;let i=this._menus,s=this.renderer,r=this._activeIndex,o=this._tabFocusIndex>=0&&this._tabFocusIndex<i.length?this._tabFocusIndex:0,a=this._overflowIndex>-1?this._overflowIndex:i.length,l=0,u=!1;a=this._overflowMenu!==null?a-1:a;let d=new Array(a);for(let c=0;c<a;++c)d[c]=s.renderItem({title:i[c].title,active:c===r,tabbable:c===o,disabled:i[c].items.length===0,onfocus:()=>{this._tabFocusIndex=c,this.activeIndex=c}}),l+=this._menuItemSizes[c],i[c].title.label===this._overflowMenuOptions.title&&(u=!0,a--);if(this._overflowMenuOptions.isVisible){if(this._overflowIndex>-1&&!u){if(this._overflowMenu===null){let c=(t=this._overflowMenuOptions.title)!==null&&t!==void 0?t:"...";this._overflowMenu=new ve({commands:new he}),this._overflowMenu.title.label=c,this._overflowMenu.title.mnemonic=0,this.addMenu(this._overflowMenu,!1)}for(let c=i.length-2;c>=a;c--){let f=this.menus[c];f.title.mnemonic=0,this._overflowMenu.insertItem(0,{type:"submenu",submenu:f}),this.removeMenu(f,!1)}d[a]=s.renderItem({title:this._overflowMenu.title,active:a===r&&i[a].items.length!==0,tabbable:a===o,disabled:i[a].items.length===0,onfocus:()=>{this._tabFocusIndex=a,this.activeIndex=a}}),a++}else if(this._overflowMenu!==null){let c=this._overflowMenu.items,f=this.node.offsetWidth,h=this._overflowMenu.items.length;for(let m=0;m<h;++m){let p=i.length-1-m;if(f-l>this._menuItemSizes[p]){let _=c[0].submenu;this._overflowMenu.removeItemAt(0),this.insertMenu(a,_,!1),d[a]=s.renderItem({title:_.title,active:!1,tabbable:a===o,disabled:i[a].items.length===0,onfocus:()=>{this._tabFocusIndex=a,this.activeIndex=a}}),a++}}this._overflowMenu.items.length===0&&(this.removeMenu(this._overflowMenu,!1),d.pop(),this._overflowMenu=null,this._overflowIndex=-1)}}fe.render(d,this.contentNode),this._updateOverflowIndex()}_updateOverflowIndex(){if(!this._overflowMenuOptions.isVisible)return;let e=this.contentNode.childNodes,t=this.node.offsetWidth,i=0,s=-1,r=e.length;if(this._menuItemSizes.length==0)for(let o=0;o<r;o++){let a=e[o];i+=a.offsetWidth,this._menuItemSizes.push(a.offsetWidth),i>t&&s===-1&&(s=o)}else for(let o=0;o<this._menuItemSizes.length;o++)if(i+=this._menuItemSizes[o],i>t){s=o;break}this._overflowIndex=s}_evtKeyDown(e){let t=e.keyCode;if(t===9){this.activeIndex=-1;return}if(e.preventDefault(),e.stopPropagation(),t===13||t===32||t===38||t===40){if(this.activeIndex=this._tabFocusIndex,this.activeIndex!==this._tabFocusIndex)return;this.openActiveMenu();return}if(t===27){this._closeChildMenu(),this._focusItemAt(this.activeIndex);return}if(t===37||t===39){let o=t===37?-1:1,a=this._tabFocusIndex+o,l=this._menus.length;for(let u=0;u<l;u++){let d=(l+a+o*u)%l;if(this._menus[d].items.length){this._focusItemAt(d);return}}return}let i=Ke().keyForKeydownEvent(e);if(!i)return;let s=this._activeIndex+1,r=vt.findMnemonic(this._menus,i,s);r.index!==-1&&!r.multiple?(this.activeIndex=r.index,this.openActiveMenu()):r.index!==-1?(this.activeIndex=r.index,this._focusItemAt(this.activeIndex)):r.auto!==-1&&(this.activeIndex=r.auto,this._focusItemAt(this.activeIndex))}_evtMouseDown(e){if(!$.hitTest(this.node,e.clientX,e.clientY))return;e.stopPropagation(),e.stopImmediatePropagation();let t=A.ArrayExt.findFirstIndex(this.contentNode.children,i=>$.hitTest(i,e.clientX,e.clientY));if(t===-1){this._closeChildMenu();return}if(e.button===0)if(this._childMenu)this._closeChildMenu(),this.activeIndex=t;else{e.preventDefault();let i=this._positionForMenu(t);ve.saveWindowData(),this.activeIndex=t,this._openChildMenu(i)}}_evtMouseMove(e){let t=A.ArrayExt.findFirstIndex(this.contentNode.children,s=>$.hitTest(s,e.clientX,e.clientY));if(t===this._activeIndex||t===-1&&this._childMenu)return;let i=t>=0&&this._childMenu?this._positionForMenu(t):null;ve.saveWindowData(),this.activeIndex=t,i&&this._openChildMenu(i)}_positionForMenu(e){let t=this.contentNode.children[e],{left:i,bottom:s}=t.getBoundingClientRect();return{top:s,left:i}}_evtFocusOut(e){!this._childMenu&&!this.node.contains(e.relatedTarget)&&(this.activeIndex=-1)}_focusItemAt(e){let t=this.contentNode.childNodes[e];t&&t.focus()}_openChildMenu(e={}){let t=this.activeMenu;if(!t){this._closeChildMenu();return}let i=this._childMenu;if(i===t)return;this._childMenu=t,i?i.close():document.addEventListener("mousedown",this,!0),this._tabFocusIndex=this.activeIndex,z.sendMessage(this,D.Msg.UpdateRequest);let{left:s,top:r}=e;(typeof s>"u"||typeof r>"u")&&({left:s,top:r}=this._positionForMenu(this._activeIndex)),i||this.addClass("lm-mod-active"),t.items.length>0&&t.open(s,r,this._forceItemsPosition)}_closeChildMenu(){if(!this._childMenu)return;this.removeClass("lm-mod-active"),document.removeEventListener("mousedown",this,!0);let e=this._childMenu;this._childMenu=null,e.close(),this.activeIndex=-1}_onMenuAboutToClose(e){e===this._childMenu&&(this.removeClass("lm-mod-active"),document.removeEventListener("mousedown",this,!0),this._childMenu=null,this.activeIndex=-1)}_onMenuMenuRequested(e,t){if(e!==this._childMenu)return;let i=this._activeIndex,s=this._menus.length;switch(t){case"next":this.activeIndex=i===s-1?0:i+1;break;case"previous":this.activeIndex=i===0?s-1:i-1;break}this.openActiveMenu()}_onTitleChanged(){this.update()}};(function(n){class e{renderItem(i){let s=this.createItemClass(i),r=this.createItemDataset(i),o=this.createItemARIA(i);return q.li({className:s,dataset:r,...i.disabled?{}:{tabindex:i.tabbable?"0":"-1"},onfocus:i.onfocus,...o},this.renderIcon(i),this.renderLabel(i))}renderIcon(i){let s=this.createIconClass(i);return q.div({className:s},i.title.icon,i.title.iconLabel)}renderLabel(i){let s=this.formatLabel(i);return q.div({className:"lm-MenuBar-itemLabel"},s)}createItemClass(i){let s="lm-MenuBar-item";return i.title.className&&(s+=` ${i.title.className}`),i.active&&!i.disabled&&(s+=" lm-mod-active"),s}createItemDataset(i){return i.title.dataset}createItemARIA(i){return{role:"menuitem","aria-haspopup":"true","aria-disabled":i.disabled?"true":"false"}}createIconClass(i){let s="lm-MenuBar-itemIcon",r=i.title.iconClass;return r?`${s} ${r}`:s}formatLabel(i){let{label:s,mnemonic:r}=i.title;if(r<0||r>=s.length)return s;let o=s.slice(0,r),a=s.slice(r+1),l=s[r],u=q.span({className:"lm-MenuBar-itemMnemonic"},l);return[o,u,a]}}n.Renderer=e,n.defaultRenderer=new e})(bt||(bt={}));var vt;(function(n){function e(){let i=document.createElement("div"),s=document.createElement("ul");return s.className="lm-MenuBar-content",i.appendChild(s),s.setAttribute("role","menubar"),i}n.createNode=e;function t(i,s,r){let o=-1,a=-1,l=!1,u=s.toUpperCase();for(let d=0,c=i.length;d<c;++d){let f=(d+r)%c,h=i[f].title;if(h.label.length===0)continue;let m=h.mnemonic;if(m>=0&&m<h.label.length){h.label[m].toUpperCase()===u&&(o===-1?o=f:l=!0);continue}a===-1&&h.label[0].toUpperCase()===u&&(a=f)}return{index:o,multiple:l,auto:a}}n.findMnemonic=t})(vt||(vt={}));var Vt;(function(n){function e(){let i=document.createElement("div"),s=document.createElement("div"),r=document.createElement("div"),o=document.createElement("div"),a=document.createElement("div");return s.className="lm-ScrollBar-button",r.className="lm-ScrollBar-button",s.dataset.action="decrement",r.dataset.action="increment",o.className="lm-ScrollBar-track",a.className="lm-ScrollBar-thumb",o.appendChild(a),i.appendChild(s),i.appendChild(o),i.appendChild(r),i}n.createNode=e;function t(i,s){return i.thumbNode.contains(s)?"thumb":i.trackNode.contains(s)?"track":i.decrementNode.contains(s)?"decrement":i.incrementNode.contains(s)?"increment":null}n.findPart=t})(Vt||(Vt={}));var zt=class extends Xe{constructor(e={}){super(e),this._dirty=!1,this._items=[],this._box=null,this._hiddenMode=e.hiddenMode!==void 0?e.hiddenMode:D.HiddenMode.Display}get hiddenMode(){return this._hiddenMode}set hiddenMode(e){this._hiddenMode!==e&&(this._hiddenMode=e,this.widgets.length>1&&this.widgets.forEach(t=>{t.hiddenMode=this._hiddenMode}))}dispose(){for(let e of this._items)e.dispose();this._box=null,this._items.length=0,super.dispose()}attachWidget(e,t){this._hiddenMode===D.HiddenMode.Scale&&this._items.length>0?(this._items.length===1&&(this.widgets[0].hiddenMode=D.HiddenMode.Scale),t.hiddenMode=D.HiddenMode.Scale):t.hiddenMode=D.HiddenMode.Display,A.ArrayExt.insert(this._items,e,new Oe(t)),this.parent.isAttached&&z.sendMessage(t,D.Msg.BeforeAttach),this.parent.node.appendChild(t.node),this.parent.isAttached&&z.sendMessage(t,D.Msg.AfterAttach),this.parent.fit()}moveWidget(e,t,i){A.ArrayExt.move(this._items,e,t),this.parent.update()}detachWidget(e,t){let i=A.ArrayExt.removeAt(this._items,e);this.parent.isAttached&&z.sendMessage(t,D.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.isAttached&&z.sendMessage(t,D.Msg.AfterDetach),i.widget.node.style.zIndex="",this._hiddenMode===D.HiddenMode.Scale&&(t.hiddenMode=D.HiddenMode.Display,this._items.length===1&&(this._items[0].widget.hiddenMode=D.HiddenMode.Display)),i.dispose(),this.parent.fit()}onBeforeShow(e){super.onBeforeShow(e),this.parent.update()}onBeforeAttach(e){super.onBeforeAttach(e),this.parent.fit()}onChildShown(e){this.parent.fit()}onChildHidden(e){this.parent.fit()}onResize(e){this.parent.isVisible&&this._update(e.width,e.height)}onUpdateRequest(e){this.parent.isVisible&&this._update(-1,-1)}onFitRequest(e){this.parent.isAttached&&this._fit()}_fit(){let e=0,t=0;for(let r=0,o=this._items.length;r<o;++r){let a=this._items[r];a.isHidden||(a.fit(),e=Math.max(e,a.minWidth),t=Math.max(t,a.minHeight))}let i=this._box=$.boxSizing(this.parent.node);e+=i.horizontalSum,t+=i.verticalSum;let s=this.parent.node.style;s.minWidth=`${e}px`,s.minHeight=`${t}px`,this._dirty=!0,this.parent.parent&&z.sendMessage(this.parent.parent,D.Msg.FitRequest),this._dirty&&z.sendMessage(this.parent,D.Msg.UpdateRequest)}_update(e,t){this._dirty=!1;let i=0;for(let l=0,u=this._items.length;l<u;++l)i+=+!this._items[l].isHidden;if(i===0)return;e<0&&(e=this.parent.node.offsetWidth),t<0&&(t=this.parent.node.offsetHeight),this._box||(this._box=$.boxSizing(this.parent.node));let s=this._box.paddingTop,r=this._box.paddingLeft,o=e-this._box.horizontalSum,a=t-this._box.verticalSum;for(let l=0,u=this._items.length;l<u;++l){let d=this._items[l];d.isHidden||(d.widget.node.style.zIndex=`${l}`,d.update(r,s,o,a))}}};var $t;(function(n){function e(t){return t.layout||new zt}n.createLayout=e})($t||($t={}));var Kt;(function(n){function e(r){return i[r]}n.orientationFromPlacement=e;function t(r){return s[r]}n.directionFromPlacement=t;let i={top:"horizontal",left:"vertical",right:"vertical",bottom:"horizontal"},s={top:"top-to-bottom",left:"left-to-right",right:"right-to-left",bottom:"bottom-to-top"}})(Kt||(Kt={}));var lt=ye(Se(),1);import Ci from"lodash/uniqBy";import{isEqual as Ti}from"lodash";var Ut='::slotted(.workspace-master-widget){--status-bar--display:none;--config-button-icon--content:var(--open-settings-button--content,"\\1F527")!important;}.workspace-master-widget[settings]{--config-button-icon--content:var(--close-settings-button--content,"\\1F527")!important;}.widget-maximize:not(.workspace-master-widget){--config-button-icon--content:var(--open-settings-button--content,"\\1F527")!important;}.widget-maximize[settings]:not(.workspace-master-widget){--config-button-icon--content:var(--close-settings-button--content,"\\1F527")!important;}.lm-DockPanel-widget{border:1px solid#eaeaea;border-width:0px!important;min-width:300px;min-height:200px;}.workspace-master-widget:not{--config-button-icon--content:""!important;}.context-menu>perspective-viewer.context-focus{opacity:1;filter:none;}.context-menu>perspective-viewer{filter:saturate(0);}.context-menu>perspective-viewer>*{pointer-events:none;}:host{--bookmarks--mask-image:url("../svg/bookmark-icon.svg");}::slotted(perspective-viewer){flex:1;position:relative;display:block;align-items:center;justify-content:center;flex-direction:column;width:100%;height:100%;overflow:visible!important;--close-button--display:flex;}::slotted(perspective-viewer.bookmarks-container:not([settings])){--status-ok-icon--mask-image:var(--bookmarks--mask-image)!important;--status-ok-icon--border-color:var(--inactive--color);--status-ok-icon--hover--border-color:var(--icon--color);--status-ok-icon--hover--background-color:var(--icon--color);--status-ok-icon--hover--color:var(--plugin--background);--status-ok-icon--cursor:pointer;--status-indicator--pointer-events:all;}::slotted(perspective-viewer::part(status-indicator)){background-color:red;border:1px solid red;}::slotted(perspective-viewer:not(.widget-maximize)){--status-bar--padding:0 36px 0 8px;}:host-context(.lm-mod-override-cursor){cursor:grabbing!important;}:host-context(.lm-mod-override-cursor) ::slotted(perspective-viewer),.context-menu ::slotted(perspective-viewer){--override-content-pointer-events:none;}.lm-Menu{z-index:10000;position:absolute;white-space:nowrap;overflow-x:hidden;overflow-y:auto;outline:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}.lm-Menu-content{margin:0;padding:0;display:table;list-style-type:none;}.lm-Menu-item{display:table-row;}.lm-Menu-item.lm-mod-hidden,.lm-Menu-item.lm-mod-collapsed{display:none!important;}.lm-Menu-itemIcon,.lm-Menu-itemSubmenuIcon{display:table-cell;text-align:center;}.lm-Menu-itemLabel{display:table-cell;text-align:left;}.lm-Menu-itemShortcut{display:table-cell;text-align:right;}.lm-Menu{font-size:12px;padding:8px;background-color:var(--plugin--background);color:var(--icon--color);border:1px solid var(--inactive--color);border-radius:3px;max-width:350px;top:0;left:0;}.lm-Menu.perspective-workspace-menu .lm-Menu-item{padding-left:37px!important;min-width:var(--min-width);}.lm-Menu-item.lm-mod-active{background-color:var(--icon--color);color:var(--plugin--background);}.lm-Menu-item.lm-mod-disabled{opacity:0.5;}.lm-Menu-itemIcon{width:24px;height:12px;margin-right:4px;}.lm-Menu-itemLabel{flex:1 1;padding:4px 2px 4px 2px;}.lm-Menu-itemMnemonic{text-decoration:underline;}.lm-Menu-itemShortcut{padding:4px 0px;}.lm-Menu-itemSubmenuIcon{width:24px;height:18px;}.lm-Menu-item{display:flex;align-items:center;outline:none;margin:0 -8px;padding:0 8px;}.lm-Menu-item[data-type="separator"]>div{padding:0;height:9px;}.lm-Menu-item[data-type="separator"]>div::after{content:"";display:block;position:relative;top:4px;border-top:1px solid;}.lm-MenuBar-menu{transform:translateY(-1px);}.lm-MenuBar-item{padding:10px 32px;border-left:1px solid transparent;border-right:1px solid transparent;color:#737373!important;}.lm-MenuBar-item.lm-mod-active{background:rgba(0,0,0,0.2);}.lm-MenuBar.lm-mod-active .lm-MenuBar-item.lm-mod-active{z-index:10001;background:rgba(0,0,0,0.2);}.lm-Menu-itemIcon:before{content:attr(content);font-family:"ui-monospace","SFMono-Regular","SF Mono","Menlo","Consolas","Liberation Mono",monospace;}[data-type="submenu"] .lm-Menu-itemSubmenuIcon:before{content:">";font-family:"ui-monospace","SFMono-Regular","SF Mono","Menlo","Consolas","Liberation Mono",monospace;height:18px;}.lm-mod-drag-image.lm-TabBar-tab{display:none;}';var Xt=ye(Se(),1);var yt={Config:"config",Label:"label"},wi="untitled",wt=class extends Ce.Renderer{maximized;constructor(e){super(),this.maximized=e}renderLabel(e){return q.span({className:"lm-TabBar-tabLabel",id:yt.Label},e.title.label||wi)}renderInert(){return q.div()}renderTab(e,t){let i=e.title.caption,s=this.createTabKey(e),r=this.createTabStyle(e),o=this.createTabClass(e),a=this.createTabDataset(e),l=[];return t?(e.title.owner.setCallback(t),e.title.owner.addClass("bookmarks-container")):(e.title.owner.setCallback(void 0),e.title.owner.removeClass("bookmarks-container")),q.li({key:s,className:o,title:i,style:r,dataset:a})}};var qe=class extends ve{_host;_workspace;init_overlay;constructor(e,t,i){i.renderer=new At,super(i),this._host=e,this._workspace=t,this._openChildMenu=this._overrideOpenChildMenu.bind(this)}open(e,t,i){i||={},i.host=this._host;let s=this._workspace.getBoundingClientRect();super.open(e,t,i);let r=this.node.getBoundingClientRect();r.height+t>s.height&&r.height+t<document.documentElement.clientHeight&&(this.node.style.top=`-${r.height}`),r.width+e>s.width&&(r.width+e<document.documentElement.clientWidth?this.node.style.left=`-${r.width+e-s.width}px`:this.node.style.left=`-${document.documentElement.clientWidth-s.width}px`)}_overrideOpenChildMenu(e=!1){let t=this,i=this.activeItem;if(!i||i.type!=="submenu"||!i.submenu){t._closeChildMenu();return}let s=i.submenu;if(s===t._childMenu)return;ve.saveWindowData(),t._closeChildMenu(),t._childMenu=s,t._childIndex=t._activeIndex,s._parentMenu=this,z.sendMessage(this,D.Msg.UpdateRequest);let r=this.contentNode.children[t._activeIndex];yi(s,r,t._host),e&&(s.activeIndex=-1,s.activateNextItem()),s.activate()}},At=class extends ve.Renderer{formatLabel(e){let{label:t,mnemonic:i}=e.item;if(i<0||i>=t.length)return t;let s=t.slice(0,i),r=t.slice(i+1),o=t[i],a=q.span({className:"lm-Menu-itemMnemonic p-Menu-itemMnemonic"},o);return[s,a,r]}renderLabel(e){let t=this.formatLabel(e);return q.div({className:"lm-Menu-itemLabel p-Menu-itemLabel"},t)}renderSubmenu(e){return q.div({className:"lm-Menu-itemSubmenuIcon p-Menu-itemSubmenuIcon"})}renderItem(e){let t=this.createItemClass(e),i=this.createItemDataset(e),s=this.createItemARIA(e);return q.li({className:t,dataset:i,tabindex:"0",onfocus:e.onfocus,...s},this.renderLabel(e),this.renderShortcut(e),this.renderSubmenu(e))}};function yi(n,e,t){let i=Mi(),s=i.pageXOffset,r=i.pageYOffset,o=i.clientWidth,a=i.clientHeight,l=t.host.getBoundingClientRect(),u=l.x,d=l.y;z.sendMessage(n,D.Msg.UpdateRequest);let c=a,f=n.node,h=f.style;h.opacity="0",h.maxHeight=`${c}px`,D.attach(n,t);let{width:m,height:p}=f.getBoundingClientRect(),_=$.boxSizing(n.node),w=e.getBoundingClientRect(),v=w.right-jt-u;v+m>s+o+u&&(v=w.left+jt-m);let g=w.top-_.borderTop-_.paddingTop-d;g+p>r+a+d&&(g=w.bottom+_.borderBottom+_.paddingBottom-p),h.transform=`translate(${Math.max(0,v)}px, ${Math.max(0,g)}px`,h.opacity="1"}var jt=3,xi=null,Yt=0;function Mi(){return Yt>0?(Yt--,xi):ki()}function ki(){return{pageXOffset:window.pageXOffset,pageYOffset:window.pageYOffset,clientWidth:document.documentElement.clientWidth,clientHeight:document.documentElement.clientHeight}}var xt=class extends Ce{_workspace;__content_node__;_menu;__titles;constructor(e,t={}){super(t),this._addEventListeners(),this.__content_node__=void 0,this._workspace=e,this.__titles=[]}get private_titles(){return this._titles}onUpdateRequest(e){this.__content_node__=this.contentNode,this.node.style.contain="";let t=this._titles,i=this.renderer,s=this.currentTitle,r=new Array;for(let o=0,a=t.length;o<a;++o){let l=t[o];l.owner._titlebar=this;let u=l===s,d=t.filter(f=>f!==s),c;d.length>0&&(c=this.onClick.bind(this,d,o)),u?r[o]=i.renderTab({title:l,zIndex:t.length+1,current:u},c):r[o]=i.renderInert()}fe.render(r,this.contentNode),this._check_shade()}onClick(e,t,i){let s=new he;this._menu=new qe(this._workspace.menu_elem.shadowRoot,this._workspace.element,{commands:s}),this._menu.addClass("perspective-workspace-menu"),this._menu.dataset.minwidth=this.__titles[t];for(let a of e)this._menu.addItem({command:"tabbar:switch",args:{title:a}});s.addCommand("tabbar:switch",{execute:async({title:a})=>{let l=a,u=this.__titles.findIndex(d=>d===a);this.currentTitle=l,this.tabActivateRequested.emit({index:u,title:l})},label:({title:a})=>a.label||"untitled",mnemonic:0});let r=(i.target.shadowRoot?.querySelector("#status_reconnect")).getBoundingClientRect(),o=this._workspace.element.getBoundingClientRect();this._menu.open(r.x-o.x,r.y+r.height-o.y),this._menu.aboutToClose.connect(()=>{this._menu=void 0}),i.preventDefault(),i.stopPropagation()}_check_shade(){Array.from(this.contentNode.children).filter(e=>e.classList.contains("settings_open")&&e.classList.contains("lm-mod-current")).length>0?this.contentNode.classList.add("inactive-blur"):this.contentNode.classList.remove("inactive-blur")}handleEvent(e){switch(this._menu?.close(),this.retargetEvent(e),e.type){case"contextmenu":let t=this.currentTitle?.owner,i=t.parent;for(;i&&!(i instanceof Ve);)i=i.parent;i.showContextMenu(t,e),e.shiftKey||e.preventDefault();break;case"mousedown":if(e.target.id===yt.Label)return;break;case"pointerdown":if(e.target.id===yt.Label){let s=this.contentNode.children,r=Xt.ArrayExt.findFirstIndex(s,a=>$.hitTest(a,e.clientX,e.clientY));if(r<0)break;let o=this.titles[r];this._workspace._maximize(o.owner),requestAnimationFrame(()=>o.owner.viewer.toggleConfig());return}break}super.handleEvent(e)}retargetEvent(e){return Object.defineProperty(e,"target",{value:e.composedPath()[0],enumerable:!0}),e}_addEventListeners(){this.node.addEventListener("dblclick",this),this.node.addEventListener("contextmenu",this)}};var Lt=class extends Fe.Renderer{_workspace;constructor(e){super(),this._workspace=e}createTabBar(){let e=new xt(this._workspace,{renderer:new wt(!1)});return e.addClass("lm-DockPanel-tabBar"),e}},Te=class n extends Fe{_workspace;constructor(e){super({renderer:new Lt(e)}),this._renderer.dock=this,this._workspace=e}_onTabDetachRequested(e,t){super._onTabDetachRequested(e,t);let i=e.titles[t.index].owner,s=this.layout,r=s.saveLayout();Array.from(s.widgets()).length>1&&s.removeWidget(i),i.addClass("widget-blur"),document.body.classList.add("lm-mod-override-cursor");let o=this._drag;o&&(o.dragImage?.parentElement?.removeChild?.(o.dragImage),o.dragImage=null,o._promise.then(()=>{i.node.isConnected||s.restoreLayout(r),document.body.classList.remove("lm-mod-override-cursor"),i.removeClass("widget-blur")}))}static getWidgets(e){return e.main?n.getAreaWidgets(e.main):[]}static getAreaWidgets(e){return e?.hasOwnProperty("children")?e.children.flatMap(i=>n.getAreaWidgets(i)):e?.hasOwnProperty("widgets")?e.widgets:[]}widgets(){return super.widgets()}static async mapWidgets(e,t){return t.main&&(t.main=await n.mapAreaWidgets(e,t.main)),t}static async mapAreaWidgets(e,t){if(t.hasOwnProperty("children")){let i=t;i.children=await Promise.all(i.children.map(s=>n.mapAreaWidgets(e,s)))}else if(t.hasOwnProperty("widgets")){let i=t;i.widgets=await Promise.all(i.widgets.map(e))}return t}onAfterAttach(){this.spacing=parseInt(window.getComputedStyle(this._workspace.element).getPropertyValue("--workspace-spacing"))||0}};var Gt=(n,e)=>{let t=new he;return t.addCommand("workspace:export",{execute:async i=>{let s=document.createElement("perspective-export-menu");n.apply_indicator_theme();let r=n.getWidgetByName(i.widget_name);s.__set_model(r.viewer.__get_model()),s.open(e),n.get_context_menu()?.init_overlay?.(),s.addEventListener("blur",()=>{n.get_context_menu().aboutToClose.emit({})})},isEnabled:i=>{if(n.get_context_menu()?.node.isConnected){let s=n.get_context_menu()?.node.getBoundingClientRect();s&&(e.style.top=s.top+"px",e.style.left=s.left+"px")}return!0},label:"Export",mnemonic:0}),t.addCommand("workspace:copy",{execute:async i=>{let s=document.createElement("perspective-copy-menu");n.apply_indicator_theme();let r=n.getWidgetByName(i.widget_name);s.__set_model(r.viewer.__get_model()),s.open(e),n.get_context_menu()?.init_overlay?.(),s.addEventListener("blur",()=>{n.get_context_menu()?.aboutToClose?.emit({})})},isEnabled:i=>{if(n.get_context_menu()?.node.isConnected){let s=n.get_context_menu()?.node.getBoundingClientRect();s&&(e.style.top=s.top+"px",e.style.left=s.left+"px")}return!0},label:"Copy",mnemonic:0}),t.addCommand("workspace:new",{execute:async i=>{let s=await n._createWidgetAndNode({config:{table:i.table},slot:void 0});n.get_dock_panel().addWidget(s,{mode:"split-right",ref:n.getWidgetByName(i.widget_name)})},label:i=>i.table}),t.addCommand("workspace:newview",{execute:async i=>{let s=n.getWidgetByName(i.widget_name),o=await n.getWidgetByName(i.target_widget_name).save(),a=await n._createWidgetAndNode({config:o,slot:void 0});n.get_dock_panel().addWidget(a,{mode:"split-right",ref:s})},isVisible:i=>n.getWidgetByName(i.target_widget_name).title.label!=="",label:i=>n.getWidgetByName(i.target_widget_name).title.label||"untitled"}),t.addCommand("workspace:reset",{execute:i=>{n.getWidgetByName(i.widget_name).viewer.reset()},label:"Reset",mnemonic:0}),t.addCommand("workspace:settings",{execute:async({widget_name:i})=>{let s=n.getWidgetByName(i);if(!s)throw new Error(`No widget ${i}`);requestAnimationFrame(()=>s.viewer.toggleConfig())},isVisible:i=>n.getWidgetByName(i.widget_name)?.parent===n.get_dock_panel(),label:i=>n.getWidgetByName(i.widget_name).viewer.hasAttribute("settings")?"Close Settings":"Open Settings",mnemonic:0}),t.addCommand("workspace:duplicate",{execute:({widget_name:i})=>n.duplicate(n.getWidgetByName(i)),isVisible:i=>n.getWidgetByName(i.widget_name)?.parent===n.get_dock_panel(),label:"Duplicate",mnemonic:0}),t.addCommand("workspace:master",{execute:i=>n.toggleMasterDetail(n.getWidgetByName(i.widget_name)),isVisible:i=>!!n.getWidgetByName(i.widget_name)?._is_pivoted,label:i=>n.getWidgetByName(i.widget_name).parent===n.get_dock_panel()?"Create Global Filter":"Remove Global Filter",mnemonic:0}),t.addCommand("workspace:close",{execute:i=>{n.getWidgetByName(i.widget_name).close()},label:()=>"Close",mnemonic:0}),t.addCommand("workspace:help",{execute:()=>{},label:"Shift+Click for Browser Menu",isEnabled:()=>!1}),t};var ot=class extends D{viewer;_title;_is_pivoted;_restore_config;_onAttach;_titlebar;_deleted;_titlebar_callback;constructor({viewer:e,node:t,onAttach:i}){super({node:t}),this.viewer=e,this._title="",this._is_pivoted=!1,this._onAttach=i,this._deleted=!1}get name(){return this._title}toggleConfig(){return this.viewer.toggleConfig()}async load(e){let t=[this.viewer.load(e)];this._restore_config&&t.push(this._restore_config()),await Promise.all(t)}restore(e){return this._title=e.title,this.title.label=e.title,this._is_pivoted=(e.group_by?.length||0)>0,this.viewer.restore({...e})}async save(){let e={...await this.viewer.save()};return delete e.settings,e}addClass(e){super.addClass(e),this.viewer?.classList?.add?.(e)}removeClass(e){super.removeClass(e),this.viewer?.classList?.remove?.(e)}setCallback(e){this._titlebar_callback=e}onAfterAttach(e){super.onAfterAttach(e),this._onAttach?.()}onCloseRequest(e){return super.onCloseRequest(e),(async()=>{this.viewer.parentElement&&this.viewer.parentElement.removeChild(this.viewer),this._deleted||(await this.viewer.delete(),this._deleted=!0)})()}};var Dt=class{_lock;constructor(){this._lock=null}lock(e){return this._lock!==null?this._lock.then(()=>this.lock(e)):(this._lock=new Promise((t,i)=>e().then(s=>{this._lock=null,t(s)}).catch(s=>{this._lock=null,i(s)})),this._lock)}},Bt=[1,3],Zt=0;function Jt(n){let e=`PERSPECTIVE_GENERATED_ID_${Zt++}`;return Object.keys(n.viewers).includes(e)&&(e=Jt(n)),e}function Si(n,e,t){function s(r){let o=r.reduce((a,l)=>a+l,0);return o===1?r:r.map(a=>a/o)}if(n.detail.main===null)return{sizes:n.sizes,viewers:{...n.viewers,[t]:e},detail:{main:{type:"split-area",sizes:[1],orientation:"horizontal",children:[{type:"tab-area",currentIndex:0,widgets:[t]}]}},master:n.master};if(n.detail.main.type==="tab-area"||n.detail.main.type==="split-area"&&n.detail.main.orientation==="vertical")return{sizes:n.sizes,viewers:{...n.viewers,[t]:e},detail:{main:{type:"split-area",sizes:[.5,.5],orientation:"horizontal",children:[n.detail.main,{type:"tab-area",currentIndex:0,widgets:[t]}]}},master:n.master};if(n.detail.main.type==="split-area"&&n.detail.main.orientation==="horizontal")return{sizes:n.sizes,viewers:{...n.viewers,[t]:e},detail:{main:{type:"split-area",sizes:s([...s(n.detail.main.sizes),.618]),orientation:"horizontal",children:[...n.detail.main.children,{type:"tab-area",currentIndex:0,widgets:[t]}]}},master:n.master};throw new Error("Unknown workspace state")}var Ve=class extends ke{dockpanel;detailPanel;masterPanel;client;element;menu_elem;listeners;indicator;commands;_menu;_minimizedLayoutSlots;_minimizedLayout;_maximizedWidget;_last_updated_state;_mutex;constructor(e){super({orientation:"horizontal"}),this.addClass("perspective-workspace"),this.dockpanel=new Te(this),this.detailPanel=new Ge,this.detailPanel.layout.fitPolicy="set-no-constraint",this.detailPanel.addClass("perspective-scroll-panel"),this.detailPanel.addWidget(this.dockpanel),this.masterPanel=new ke({orientation:"vertical"}),this.masterPanel.addClass("master-panel"),this._mutex=new Dt,this.dockpanel.layoutModified.connect(()=>{this.workspaceUpdated()}),this.addWidget(this.detailPanel),this.element=e,this.listeners=new WeakMap,this.client=[],this.indicator=this.init_indicator(),this.commands=Gt(this,this.indicator),this.menu_elem=document.createElement("perspective-workspace-menu"),this.menu_elem.attachShadow({mode:"open"}),this.menu_elem.shadowRoot.innerHTML=`<style>:host{position:absolute;}${Ut}</style>`,this.element.shadowRoot.insertBefore(this.menu_elem,this.element.shadowRoot.lastElementChild),e.addEventListener("contextmenu",t=>this.showContextMenu(null,t))}get_context_menu(){return this._menu}get_dock_panel(){return this.dockpanel}init_indicator(){let e=document.querySelector("body > perspective-indicator");if(e)return e;let t=document.createElement("perspective-indicator");return t.style.position="fixed",t.style.pointerEvents="none",document.body.appendChild(t),t}apply_indicator_theme(){let e=JSON.parse(window.getComputedStyle(this.element).getPropertyValue("--theme-name").trim());this.indicator.setAttribute("theme",e)}async save(){return await this._mutex.lock(async()=>{let e=this.dockpanel.mode==="single-document",t=e?await this._minimizedLayoutSlots:await Te.mapWidgets(async r=>r.viewer.getAttribute("slot"),this.dockpanel.saveLayout()),i={sizes:[...this.relativeSizes()],detail:t,viewers:{},master:void 0};if(this.masterPanel.isAttached){let r={widgets:this.masterPanel.widgets.map(o=>o.viewer.getAttribute("slot")),sizes:[...this.masterPanel.relativeSizes()]};i.master=r}for(let r of this.masterPanel.widgets){let o=r;i.viewers[o.viewer.getAttribute("slot")]=await o.save()}let s=Te.getWidgets(e?this._minimizedLayout:this.dockpanel.saveLayout());return await Promise.all(s.map(async r=>{let o=r,a=o.viewer.getAttribute("slot");i.viewers[a]=await o.save(),i.viewers[a].settings=!1})),i})}async restore(e){await this._mutex.lock(async()=>{let{sizes:t,master:i,detail:s,viewers:r={}}=structuredClone(e);i&&i.widgets.length>0?this.setupMasterPanel(t||Bt):(this.masterPanel.isAttached&&(this.detailPanel.removeClass("has-master-panel"),this.masterPanel.close()),this.addWidget(this.detailPanel));let o=[];for(let a of this._capture_viewers())for(let l of this._capture_widgets()){for(let d of a)d.removeAttribute("class");let u=this._restore_callback.bind(this,r,a,l);if(s){let d=await Te.mapWidgets(c=>u.bind(this,!1)(c),s);this.dockpanel.mode="multiple-document",this.dockpanel.restoreLayout(d),o=o.concat(Te.getWidgets(d).map(c=>c.viewer.flush()))}if(i){let d=[],c=[];i.widgets.map(f=>(c.push(f),d.push(u.bind(this,!0)(f)),f)),o.push(Promise.all(d).then(f=>{i.widgets=i.widgets.map(h=>{let m=c.indexOf(h);return f[m]})})),i.sizes&&this.masterPanel.setRelativeSizes(i.sizes)}}await Promise.all(o)})}*_capture_widgets(){let e=this.getAllWidgets();yield e;for(let t of e)t.node.isConnected||t.close()}*_capture_viewers(){let e=Array.from(this.element.children);yield e;let t=this.getAllWidgets();for(let i of e)!t.find(r=>r.viewer===i)&&Array.from(this.element.children).indexOf(i)>-1&&(this.element.removeChild(i),i.delete(),i.free())}async _restore_callback(e,t,i,s,r){let o;o=e[r];let a=!!r&&t.find(u=>u.getAttribute("slot")===r),l;if(a)l=i.find(u=>u.viewer===a),l?await l.restore({...o}):l=await this._createWidget({config:{...o},viewer:a});else if(o)l=await this._createWidgetAndNode({config:{...o},slot:r});else throw new Error(`Could not find or create <perspective-viewer> for slot "${r}"`);return s&&(l.viewer.classList.add("workspace-master-widget"),l.viewer.toggleAttribute("selectable",!0),l.viewer.addEventListener("perspective-select",this.onPerspectiveSelect.bind(this)),this.masterPanel.addWidget(l)),l}_validate(e){if(!e||!("view"in e)||typeof e?.view!="function")throw new Error("Only `perspective.Table()` instances can be added to `tables`");return e}_set_listener(e,t){t instanceof Promise?t=t.then(this._validate):this._validate(t)}_delete_listener(e){this.getAllWidgets().some(t=>{let i=t;i.viewer.getAttribute("table")===e&&i.viewer.eject()})}async update_widget_for_viewer(e){let t=e.getAttribute("slot");if(t||(t=this._gen_id(),e.setAttribute("slot",t)),e.getAttribute("table")){if(!this.node.querySelector(`slot[name=${t}]`)){console.warn(`Undocked ${e.outerHTML}, creating default layout`);let r=await this._createWidget({viewer:e});this.dockpanel.addWidget(r),this.dockpanel.activateWidget(r)}}else console.warn(`No table set for ${e.outerHTML}`)}remove_unslotted_widgets(e){let t=this.getAllWidgets();for(let i of t){let s=i;e.indexOf(s.viewer)===-1&&s.close()}}update_details_panel(e){this.masterPanel.widgets.length===0&&this.masterPanel.close()}async duplicate(e){if(this.dockpanel.mode==="single-document"){let s=await this._maximizedWidget.viewer.toggleConfig(!1);this._unmaximize()}let t=await e.save();t.settings=!1,t.title=t.title?`${t.title} (*)`:"";let i=await this._createWidgetAndNode({config:t,slot:void 0});this.dockpanel.addWidget(i,{mode:"split-right",ref:e}),await i.viewer.flush()}toggleMasterDetail(e){let t=e.parent!==this.dockpanel;this.element.dispatchEvent(new CustomEvent("workspace-toggle-global-filter",{detail:{widget:e,isGlobalFilter:!t}})),t?this.makeDetail(e):(this.dockpanel.mode==="single-document"&&this.toggleSingleDocument(e),this.makeMaster(e))}_maximize(e){e.viewer.classList.add("widget-maximize"),this._minimizedLayout||(this._minimizedLayout=this.dockpanel.saveLayout(),this._minimizedLayoutSlots=Te.mapWidgets(async t=>t.viewer.getAttribute("slot"),this.dockpanel.saveLayout())),this._maximizedWidget=e,this.dockpanel.mode="single-document",this.dockpanel.activateWidget(e)}_unmaximize(){this._maximizedWidget.viewer.classList.remove("widget-maximize"),this.dockpanel.mode="multiple-document",this.dockpanel.restoreLayout(this._minimizedLayout),this._minimizedLayout=void 0}toggleSingleDocument(e){this.dockpanel.mode!=="single-document"?this._maximize(e):this._unmaximize()}async _filterViewer(e,t,i,s){let r=await e.save(),o=await e.getTable(),a=Object.keys(await o.schema()),l=r.filter||[],u=h=>h[0]&&a.includes(h[0]),d=new Set(t.map(h=>h[0])),c=i.filter(u);c.push(...l.filter(h=>!s.has(h[0])&&!d.has(h[0])));let f=Ci(c,h=>h[0]);await e.restore({filter:f})}async onPerspectiveSelect(e){let t=await e.target.save(),i=new Set([...t.group_by||[],...t.split_by||[],...(t.filter||[]).map(o=>o[0])]),s=(e.detail.removeConfigs??[]).flatMap(o=>o.filter??[]),r=(e.detail.insertConfigs??[]).flatMap(o=>o.filter??[]);(0,lt.toArray)(this.dockpanel.widgets()).forEach(o=>{this._filterViewer(o.viewer,s,r,i)})}async makeMaster(e){e.viewer.hasAttribute("settings")&&await e.toggleConfig(),e.viewer.classList.add("workspace-master-widget"),e.viewer.toggleAttribute("selectable",!0),this.masterPanel.isAttached||(this.detailPanel.close(),this.setupMasterPanel(Bt)),this.masterPanel.addWidget(e),e.isHidden&&e.show(),e.viewer.restyleElement(),e.viewer.addEventListener("perspective-select",this.onPerspectiveSelect.bind(this))}makeDetail(e){e.viewer.classList.remove("workspace-master-widget"),e.viewer.toggleAttribute("selectable",!1),this.dockpanel.addWidget(e,{mode:"split-left"}),this.masterPanel.widgets.length===0&&(this.detailPanel.close(),this.masterPanel.close(),this.detailPanel.removeClass("has-master-panel"),this.addWidget(this.detailPanel)),e.viewer.restyleElement(),e.viewer.removeEventListener("perspective-select",this.onPerspectiveSelect.bind(this))}createContextMenu(e){this._menu=new qe(this.menu_elem.shadowRoot,this.element,{commands:this.commands});let t=(0,lt.find)(this.dockpanel.tabBars(),i=>i.currentTitle?.owner===e);if(this._menu.init_overlay=()=>{e&&(e.addClass("context-focus"),e.viewer.classList.add("context-focus"),t&&t.node.classList.add("context-focus"),this.element.classList.add("context-menu"),this.addClass("context-menu"),e.viewer.classList.contains("workspace-master-widget")?this._menu.node.classList.add("workspace-master-menu"):this._menu.node.classList.remove("workspace-master-menu"))},(e?.parent===this.dockpanel||e===null)&&this._menu.addItem({type:"submenu",command:"workspace:newmenu",submenu:(()=>{let i=new qe(this.menu_elem.shadowRoot,this.element,{commands:this.commands});(async()=>{let o=await Promise.all(this.client.map(a=>a.get_hosted_table_names())).then(a=>a.flat());for(let a of o){let l;e!==null?l={table:a,widget_name:e.viewer.getAttribute("slot")}:l={table:a},i.insertItem(0,{command:"workspace:new",args:l})}})();let s=Te.getWidgets(this.dockpanel.saveLayout());s.length>0&&i.addItem({type:"separator"});let r=new Set;for(let o of s)if(!r.has(o.title.label)){let a;e!==null?a={target_widget_name:o.viewer.getAttribute("slot"),widget_name:e.viewer.getAttribute("slot")}:a={target_widget_name:o.viewer.getAttribute("slot")},i.addItem({command:"workspace:newview",args:a}),r.add(o.title.label)}return i.title.label="New Table",i})()}),e){let i=e.viewer.getAttribute("slot");e?.parent===this.dockpanel&&this._menu.addItem({type:"separator"}),this._menu.addItem({command:"workspace:duplicate",args:{widget_name:i}}),this._menu.addItem({command:"workspace:master",args:{widget_name:i}}),this._menu.addItem({type:"separator"}),this._menu.addItem({command:"workspace:settings",args:{widget_name:i}}),this._menu.addItem({command:"workspace:reset",args:{widget_name:i}}),this._menu.addItem({command:"workspace:export",args:{widget_name:i}}),this._menu.addItem({command:"workspace:copy",args:{widget_name:i}}),this._menu.addItem({type:"separator"}),this._menu.addItem({command:"workspace:close",args:{widget_name:i}}),this._menu.addItem({command:"workspace:help"})}return this._menu.aboutToClose.connect(()=>{e&&(this.element.classList.remove("context-menu"),this.removeClass("context-menu"),e.removeClass("context-focus"),t?.node?.classList.remove("context-focus"))}),this._menu}showContextMenu(e,t){if(!t.shiftKey){let i=this.createContextMenu(e);i.init_overlay?.();let s=this.element.getBoundingClientRect();i.open(t.clientX-s.x,t.clientY-s.y,{host:this.menu_elem.shadowRoot}),t.preventDefault(),t.stopPropagation()}}clearLayout(){this.getAllWidgets().forEach(e=>e.close()),this.widgets.forEach(e=>e.close()),this.detailPanel.close(),this.masterPanel.isAttached&&(this.detailPanel.removeClass("has-master-panel"),this.masterPanel.close())}setupMasterPanel(e){this.detailPanel.addClass("has-master-panel"),this.addWidget(this.masterPanel),this.addWidget(this.detailPanel),this.setRelativeSizes(e)}async addViewer(e,t){await this._mutex.lock(async()=>{if(this.dockpanel.mode==="single-document"){let s=this._maximizedWidget.viewer.toggleConfig(!1);this._unmaximize()}let i=await this._createWidgetAndNode({config:e});t?(this.masterPanel.isAttached||this.setupMasterPanel(Bt),this.masterPanel.addWidget(i)):(this.detailPanel.isAttached||this.addWidget(this.detailPanel),this.dockpanel.addWidget(i,{mode:"split-right"})),this.update()})}async _createWidgetAndNode({config:e,slot:t}){let i=this._createNode(t),s=e.table,r=document.createElement("perspective-viewer");r.setAttribute("slot",i.querySelector("slot").getAttribute("name")),s&&r.setAttribute("table",s);for(let o of this.client){let a=await o.get_hosted_table_names();if(s&&a.indexOf(s)>-1)return await r.load(o),await this._createWidget({config:e,elem:i,viewer:r})}throw new Error(`Table "${s}" not found`)}_gen_id(){let e=`PERSPECTIVE_GENERATED_ID_${Zt++}`;return this.element.querySelector(`[slot=${e}]`)&&(e=this._gen_id()),e}_createNode(e){let t=this.node.querySelector(`slot[name=${e}]`);if(e===void 0||!t){let i=document.createElement("slot");e=e||this._gen_id(),i.setAttribute("name",e);let s=document.createElement("div");s.classList.add("viewer-container"),s.appendChild(i),t=document.createElement("div"),t.classList.add("workspace-widget"),t.appendChild(s)}else t=t.parentElement.parentElement;return t}async _createWidget({config:e,elem:t,viewer:i}){let s=t;if(!s){let a=i.getAttribute("slot")||void 0;s=this.node.querySelector(`slot[name=${a}]`),s?s=s.parentElement.parentElement:s=this._createNode(a)}let r=()=>{o.viewer.parentElement!==this.element&&this.element.appendChild(o.viewer);let a=new CustomEvent("workspace-new-view",{detail:{config:e,widget:o}});this.element.dispatchEvent(a)},o=new ot({node:s,viewer:i,onAttach:r});return e&&await o.restore(e),o.title.closable=!0,this._addWidgetEventListeners(o),o}_addWidgetEventListeners(e){this.listeners.has(e)&&this.listeners.get(e)();let t=l=>this.showContextMenu(e,l),i=async l=>{this.workspaceUpdated();let u=typeof l.detail>"u"?await e.viewer.save():l.detail;e.title.label=u.title,e._title=u.title,e._is_pivoted=u.group_by?.length>0};e.node.addEventListener("contextmenu",t);let s=l=>{l.detail&&this.dockpanel.mode!=="single-document"&&this._maximize(e)},r=l=>{!l.detail&&this.dockpanel.mode==="single-document"&&this._unmaximize()};e.viewer.addEventListener("perspective-status-indicator-click",l=>{e._titlebar_callback?.(l)}),e.viewer.addEventListener("perspective-toggle-settings-before",s),e.viewer.addEventListener("perspective-toggle-settings",r);let o=()=>{e._deleted||(e._deleted=!0,e.close())},a=l=>{e._titlebar?.handleEvent(l.detail)};e.viewer.addEventListener("perspective-table-delete-before",o),e.viewer.addEventListener("perspective-statusbar-pointerdown",a),e.viewer.addEventListener("perspective-config-update",i),this.listeners.set(e,()=>{e.node.removeEventListener("contextmenu",t),e.viewer.removeEventListener("perspective-table-delete-before",o),e.viewer.removeEventListener("perspective-table-delete",a),e.viewer.removeEventListener("perspective-toggle-settings",s),e.viewer.removeEventListener("perspective-toggle-settings",r),e.viewer.removeEventListener("perspective-config-update",i)})}getWidgetByName(e){return this.getAllWidgets().find(t=>t.viewer.getAttribute("slot")===e)||null}getAllWidgets(){return[...this.masterPanel.widgets,...(0,lt.toArray)(this.dockpanel.widgets())]}_throttle;async workspaceUpdated(){let e=await this.save();if(e){if(this._last_updated_state&&Ti(this._last_updated_state,e))return;this._last_updated_state=e,this.element.dispatchEvent(new CustomEvent("workspace-layout-update",{detail:{layout:e}}))}}};function Ei(n){let e=document.createElement("div");return e.innerHTML=n,Array.prototype.slice.call(e.children)[0]}function Ii(n,e,t){let i=Ei(n);e&&(i.innerHTML=`<style>${e.toString()}</style>`+i.innerHTML);let s=class extends t{_initialized;_initializing;constructor(){super(),this._initialized=!1,this._initializing=!1}connectedCallback(){if(this._initialized)return;this._initializing=!0;let o=document.importNode(i.content,!0);this.attachShadow({mode:"open"}).appendChild(o),t.prototype.connectedCallback&&t.prototype.connectedCallback.call(this),this._initializing=!1,this._initialized=!0}static get observedAttributes(){return Object.getOwnPropertyNames(t.prototype)}},r=i.getAttribute("id");window.customElements.define(r,s)}function Qt(n,...e){let t=e.map(i=>i.toString()).join(`
2
2
  `);return function(i){return Ii(n,t,i)}}var ei=`.lm-Widget{box-sizing:border-box;position:relative;}.lm-Widget.lm-mod-hidden{display:none!important;}.lm-AccordionPanel[data-orientation='horizontal']>.lm-AccordionPanel-title{display:block;transform-origin:top left;transform:rotate(-90deg) translate(-100%);}.lm-CommandPalette{display:flex;flex-direction:column;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}.lm-CommandPalette-search{flex:0 0 auto;}.lm-CommandPalette-content{flex:1 1 auto;margin:0;padding:0;min-height:0;overflow:auto;list-style-type:none;}.lm-CommandPalette-header{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}.lm-CommandPalette-item{display:flex;flex-direction:row;}.lm-CommandPalette-itemIcon{flex:0 0 auto;}.lm-CommandPalette-itemContent{flex:1 1 auto;overflow:hidden;}.lm-CommandPalette-itemShortcut{flex:0 0 auto;}.lm-CommandPalette-itemLabel{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}.lm-close-icon{border:1px solid transparent;background-color:transparent;position:absolute;z-index:1;right:3%;top:0;bottom:0;margin:auto;padding:7px 0;display:none;vertical-align:middle;outline:0;cursor:pointer;}.lm-close-icon:after{content:'X';display:block;width:15px;height:15px;text-align:center;color:#000;font-weight:normal;font-size:12px;cursor:pointer;}.lm-DockPanel{z-index:0;}.lm-DockPanel-widget{z-index:0;}.lm-DockPanel-tabBar{z-index:1;}.lm-DockPanel-handle{z-index:2;}.lm-DockPanel-handle.lm-mod-hidden{display:none!important;}.lm-DockPanel-handle:after{position:absolute;top:0;left:0;width:100%;height:100%;content:'';}.lm-DockPanel-handle[data-orientation='horizontal']{cursor:ew-resize;}.lm-DockPanel-handle[data-orientation='vertical']{cursor:ns-resize;}.lm-DockPanel-handle[data-orientation='horizontal']:after{left:50%;min-width:8px;transform:translateX(-50%);}.lm-DockPanel-handle[data-orientation='vertical']:after{top:50%;min-height:8px;transform:translateY(-50%);}.lm-DockPanel-overlay{z-index:3;box-sizing:border-box;pointer-events:none;}.lm-DockPanel-overlay.lm-mod-hidden{display:none!important;}.lm-Menu{z-index:10000;position:absolute;white-space:nowrap;overflow-x:hidden;overflow-y:auto;outline:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}.lm-Menu-content{margin:0;padding:0;display:table;list-style-type:none;}.lm-Menu-item{display:table-row;}.lm-Menu-item.lm-mod-hidden,.lm-Menu-item.lm-mod-collapsed{display:none!important;}.lm-Menu-itemIcon,.lm-Menu-itemSubmenuIcon{display:table-cell;text-align:center;}.lm-Menu-itemLabel{display:table-cell;text-align:left;}.lm-Menu-itemShortcut{display:table-cell;text-align:right;}.lm-MenuBar{outline:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}.lm-MenuBar-content{margin:0;padding:0;display:flex;flex-direction:row;list-style-type:none;}.lm-MenuBar-item{box-sizing:border-box;}.lm-MenuBar-itemIcon,.lm-MenuBar-itemLabel{display:inline-block;}.lm-ScrollBar{display:flex;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}.lm-ScrollBar[data-orientation='horizontal']{flex-direction:row;}.lm-ScrollBar[data-orientation='vertical']{flex-direction:column;}.lm-ScrollBar-button{box-sizing:border-box;flex:0 0 auto;}.lm-ScrollBar-track{box-sizing:border-box;position:relative;overflow:hidden;flex:1 1 auto;}.lm-ScrollBar-thumb{box-sizing:border-box;position:absolute;}.lm-SplitPanel-child{z-index:0;}.lm-SplitPanel-handle{z-index:1;}.lm-SplitPanel-handle.lm-mod-hidden{display:none!important;}.lm-SplitPanel-handle:after{position:absolute;top:0;left:0;width:100%;height:100%;content:'';}.lm-SplitPanel[data-orientation='horizontal']>.lm-SplitPanel-handle{cursor:ew-resize;}.lm-SplitPanel[data-orientation='vertical']>.lm-SplitPanel-handle{cursor:ns-resize;}.lm-SplitPanel[data-orientation='horizontal']>.lm-SplitPanel-handle:after{left:50%;min-width:8px;transform:translateX(-50%);}.lm-SplitPanel[data-orientation='vertical']>.lm-SplitPanel-handle:after{top:50%;min-height:8px;transform:translateY(-50%);}.lm-TabBar{display:flex;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}.lm-TabBar[data-orientation='horizontal']{flex-direction:row;align-items:flex-end;}.lm-TabBar[data-orientation='vertical']{flex-direction:column;align-items:flex-end;}.lm-TabBar-content{margin:0;padding:0;display:flex;flex:1 1 auto;list-style-type:none;}.lm-TabBar[data-orientation='horizontal']>.lm-TabBar-content{flex-direction:row;}.lm-TabBar[data-orientation='vertical']>.lm-TabBar-content{flex-direction:column;}.lm-TabBar-tab{display:flex;flex-direction:row;box-sizing:border-box;overflow:hidden;touch-action:none;}.lm-TabBar-tabIcon,.lm-TabBar-tabCloseIcon{flex:0 0 auto;}.lm-TabBar-tabLabel{flex:1 1 auto;overflow:hidden;white-space:nowrap;}.lm-TabBar-tabInput{user-select:all;width:100%;box-sizing:border-box;}.lm-TabBar-tab.lm-mod-hidden{display:none!important;}.lm-TabBar-addButton.lm-mod-hidden{display:none!important;}.lm-TabBar.lm-mod-dragging .lm-TabBar-tab{position:relative;}.lm-TabBar.lm-mod-dragging[data-orientation='horizontal'] .lm-TabBar-tab{left:0;transition:left 150ms ease;}.lm-TabBar.lm-mod-dragging[data-orientation='vertical'] .lm-TabBar-tab{top:0;transition:top 150ms ease;}.lm-TabBar.lm-mod-dragging .lm-TabBar-tab.lm-mod-dragging{transition:none;}.lm-TabBar-tabLabel .lm-TabBar-tabInput{user-select:all;width:100%;box-sizing:border-box;background:inherit;}.lm-TabPanel-tabBar{z-index:1;}.lm-TabPanel-stackedPanel{z-index:0;}::slotted(.workspace-master-widget){--status-bar--display:none;--config-button-icon--content:var(--open-settings-button--content,"\\1F527")!important;}.workspace-master-widget[settings]{--config-button-icon--content:var(--close-settings-button--content,"\\1F527")!important;}.widget-maximize:not(.workspace-master-widget){--config-button-icon--content:var(--open-settings-button--content,"\\1F527")!important;}.widget-maximize[settings]:not(.workspace-master-widget){--config-button-icon--content:var(--close-settings-button--content,"\\1F527")!important;}.lm-DockPanel-widget{border:1px solid#eaeaea;border-width:0px!important;min-width:300px;min-height:200px;}.workspace-master-widget:not{--config-button-icon--content:""!important;}.context-menu>perspective-viewer.context-focus{opacity:1;filter:none;}.context-menu>perspective-viewer{filter:saturate(0);}.context-menu>perspective-viewer>*{pointer-events:none;}:host{--bookmarks--mask-image:url("../svg/bookmark-icon.svg");}::slotted(perspective-viewer){flex:1;position:relative;display:block;align-items:center;justify-content:center;flex-direction:column;width:100%;height:100%;overflow:visible!important;--close-button--display:flex;}::slotted(perspective-viewer.bookmarks-container:not([settings])){--status-ok-icon--mask-image:var(--bookmarks--mask-image)!important;--status-ok-icon--border-color:var(--inactive--color);--status-ok-icon--hover--border-color:var(--icon--color);--status-ok-icon--hover--background-color:var(--icon--color);--status-ok-icon--hover--color:var(--plugin--background);--status-ok-icon--cursor:pointer;--status-indicator--pointer-events:all;}::slotted(perspective-viewer::part(status-indicator)){background-color:red;border:1px solid red;}::slotted(perspective-viewer:not(.widget-maximize)){--status-bar--padding:0 36px 0 8px;}:host-context(.lm-mod-override-cursor){cursor:grabbing!important;}:host-context(.lm-mod-override-cursor) ::slotted(perspective-viewer),.context-menu ::slotted(perspective-viewer){--override-content-pointer-events:none;}.lm-Menu{font-size:12px;padding:8px;background-color:var(--plugin--background);color:var(--icon--color);border:1px solid var(--inactive--color);border-radius:3px;max-width:350px;top:0;left:0;}.lm-Menu.perspective-workspace-menu .lm-Menu-item{padding-left:37px!important;min-width:var(--min-width);}.lm-Menu-item.lm-mod-active{background-color:var(--icon--color);color:var(--plugin--background);}.lm-Menu-item.lm-mod-disabled{opacity:0.5;}.lm-Menu-itemIcon{width:24px;height:12px;margin-right:4px;}.lm-Menu-itemLabel{flex:1 1;padding:4px 2px 4px 2px;}.lm-Menu-itemMnemonic{text-decoration:underline;}.lm-Menu-itemShortcut{padding:4px 0px;}.lm-Menu-itemSubmenuIcon{width:24px;height:18px;}.lm-Menu-item{display:flex;align-items:center;outline:none;margin:0 -8px;padding:0 8px;}.lm-Menu-item[data-type="separator"]>div{padding:0;height:9px;}.lm-Menu-item[data-type="separator"]>div::after{content:"";display:block;position:relative;top:4px;border-top:1px solid;}.lm-MenuBar-menu{transform:translateY(-1px);}.lm-MenuBar-item{padding:10px 32px;border-left:1px solid transparent;border-right:1px solid transparent;color:#737373!important;}.lm-MenuBar-item.lm-mod-active{background:rgba(0,0,0,0.2);}.lm-MenuBar.lm-mod-active .lm-MenuBar-item.lm-mod-active{z-index:10001;background:rgba(0,0,0,0.2);}.lm-Menu-itemIcon:before{content:attr(content);font-family:"ui-monospace","SFMono-Regular","SF Mono","Menlo","Consolas","Liberation Mono",monospace;}[data-type="submenu"] .lm-Menu-itemSubmenuIcon:before{content:">";font-family:"ui-monospace","SFMono-Regular","SF Mono","Menlo","Consolas","Liberation Mono",monospace;height:18px;}.lm-mod-drag-image.lm-TabBar-tab{display:none;}:host .lm-TabBar-tabLabel{background-color:transparent;border:none;color:var(--icon--color,#666);cursor:pointer;padding:0px 6px;margin:0;margin-left:15.5px;margin-right:auto;flex:0 1 auto;border-radius:3px;}:host .lm-TabBar-tabLabel:hover{background-color:var(--icon--color);color:var(--plugin--background);}:host .lm-TabBar-tabLabel:focus{outline:none;color:var(--workspace-secondary--color,#666)!important;cursor:text;}:host .lm-TabBar-tab.lm-mod-closable>.lm-TabBar-tabCloseIcon:before{content:var(--close-button--content,"\\2715");}:host .lm-TabBar-tab>.lm-TabBar-tabConfigIcon:before{content:var(--open-settings-button--content,"\\1F527");font-family:var(--settings--font-family,"Arial");transition:color 0.5s ease;}:host .lm-TabBar-tab.lm-mod-current.settings_open>.lm-TabBar-tabConfigIcon:before{content:var(--close-settings-button--content,"\\1F527");}:host .lm-TabBar-tab.lm-mod-current.linked>.lm-TabBar-tabConfigIcon:before{color:#22a0ce;}:host .lm-TabBar-tab>.lm-TabBar-tabConfigIcon{opacity:0;pointer-events:none;}:host .lm-TabBar-tab.lm-mod-current>.lm-TabBar-tabConfigIcon{opacity:1;pointer-events:all;}:host .lm-mod-current .lm-TabBar-tabConfigIcon,:host .lm-mod-current .lm-TabBar-tabCloseIcon{color:inherit;transition:color 0.2s ease-out;}:host .lm-mod-current .lm-TabBar-tabConfigIcon:hover,:host .lm-mod-current .lm-TabBar-tabCloseIcon:hover{color:#1a7da1;transition:color 0.2s ease-out;}:host .lm-BoxPanel{overflow:scroll!important;}:host .lm-TabBar,:host .lm-TabBar-tab{position:relative;overflow:visible!important;}:host .lm-TabBar-tabLabel:empty::after{content:"untitled";color:#aaa;}:host .lm-mod-current .lm-TabBar-tabLabel:empty::after{color:#ddd;}:host .lm-TabBar-tabLabel:empty::after{content:"untitled";}:host .divider{left:32px;bottom:0;position:absolute;right:32px;height:1px;background-color:var(--workspace-tabbar--border-color);margin-bottom:0px;}:host .lm-TabBar-tab .drag-handle{pointer-events:all;height:12px;width:14px;-webkit-mask-image:var(--column-drag-handle--mask-image);mask-image:var(--column-drag-handle--mask-image);padding:12px 0 12px 12px;background-repeat:no-repeat;background-color:var(--icon--color,red);content:"";display:inline-block;-webkit-mask-size:cover;mask-size:auto;mask-position:center;mask-repeat:no-repeat;}:host .lm-TabBar{pointer-events:none;}:host .lm-TabBar .lm-TabBar-tabCloseIcon{pointer-events:all;}:host .lm-TabBar .bookmarks-button{pointer-events:all;}:host .lm-TabBar-tab.lm-mod-hidden{display:flex!important;opacity:0.5;}:host .lm-TabBar-tab.lm-mod-current .divider{display:block;}:host .pfm-button-base{background:white!important;}:host .pfm-button-base:active{background:#016bc6!important;}:host .lm-TabBar-content{padding:0px;border-bottom:0px solid#fff!important;border-left:#eaeaea;border-right:#eaeaea;}:host .lm-TabBar-tab.lm-mod-current .shadow{margin:-1px;position:absolute;width:calc(100% + 2px);height:200%;pointer-events:none;left:0px;}:host .lm-TabBar-tab.lm-mod-current.settings_open .shadow{box-shadow:none;}:host .lm-TabBar-tab{border-color:#eaeaea;align-items:center;}:host .lm-TabBar-content.inactive-blur>.lm-TabBar-tab{background-color:var(--workspace-inactive-blur--background-color,transparent);}:host .condensed .lm-TabBar-content>.lm-TabBar-tab.lm-mod-current .lm-TabBar-tabConfigIcon{display:block;}:host .condensed .lm-TabBar-content>.lm-TabBar-tab.lm-mod-current.settings_open .lm-TabBar-tabLabel{margin-left:0px;}:host .lm-TabBar-content>.lm-TabBar-tab.lm-mod-current.settings_open{border-width:1px 1px 0px 1px!important;border-color:var(--workspace-tabbar--border-color,#ddd);}:host .lm-TabBar-content>.lm-TabBar-tab.lm-mod-current.settings_open .lm-TabBar-tabToolbar{display:flex;}:host .lm-TabBar-content>.lm-TabBar-tab.lm-mod-current.settings_open .divider{height:1px;margin-bottom:0px;background-color:var(--workspace-tabbar--border-color,#ddd);}:host .lm-TabBar-content>.lm-TabBar-tab.lm-mod-current.settings_open:last-child:first-child .divider{transition:none;}:host .lm-TabBar-content>.lm-TabBar-tab.lm-mod-current.perspective_updating .lm-TabBar-tabConfigIcon{display:none;}:host .lm-TabBar-content>.lm-TabBar-tab.lm-mod-current.perspective_updating .lm-TabBar-tabLoadingIcon{display:block;}:host .lm-TabBar-content>.lm-TabBar-tab{max-width:100000px!important;flex:0 1 100000px!important;background:none;color:#737373;height:40px!important;max-height:40px!important;margin-bottom:-40px;transform:none!important;transition:color 0.2s ease-out;color:#ccc;color:#ccc;}:host .lm-TabBar-content>.lm-TabBar-tab:hover{color:#ccc;}:host .lm-TabBar-content>.lm-TabBar-tab.lm-mod-current{color:var(--workspace-secondary--color,#666);}:host .lm-TabBar-tab.lm-mod-current .lm-TabBar-tabLabel{white-space:nowrap!important;}:host .lm-TabBar-tabLabel{font-family:inherit;font-size:12px;line-height:22px;text-align:start;white-space:normal!important;word-break:break-all;}:host .lm-TabBar-tabCloseIcon,:host .lm-TabBar-tabConfigIcon{cursor:pointer!important;line-height:22px!important;padding-right:16.5px!important;}:host .lm-TabBar-tabConfigIcon{padding-left:8px;padding-right:8px!important;}:host .lm-TabBar-tabLoadingIcon{padding-left:11px;padding-right:12px;}:host .bottom .lm-TabBar-tab{flex-basis:10000px!important;max-width:10000px!important;}:host .lm-TabBar-content>.lm-TabBar-tab.lm-mod-current{color:var(--workspace-tabbar--color,#666)!important;background:none;height:40px!important;max-height:40px!important;margin-bottom:-40px;border:0 solid transparent;border-width:1px 1px 0px 1px;}:host .bottom .lm-TabBar-tab.lm-mod-current{border:none;}:host ::-webkit-scrollbar-thumb{background-color:#ccc;}:host .perspective-workspace.context-menu * .lm-TabBar.context-focus{opacity:1;}:host .perspective-workspace.context-menu * .lm-TabBar,:host .perspective-workspace.context-menu .lm-Widget.workspace-widget:not(.context-focus) .viewer-container{opacity:0.2;}:host .bookmarks-button{margin-left:11px;margin-right:-13px;height:20px;border-radius:3px;border:1px solid var(--inactive--color);background-color:var(--plugin--background);}:host .bookmarks-button:hover{background-color:var(--icon--color);border-color:var(--icon--color);}:host .bookmarks{background-repeat:no-repeat;background-color:var(--icon--color);content:"";display:inline-block;-webkit-mask-size:cover;mask-size:cover;cursor:pointer;width:20px;height:12px;-webkit-mask-image:var(--bookmarks--mask-image);mask-image:var(--bookmarks--mask-image);-webkit-mask-position:center;mask-position:center;-webkit-mask-size:auto;mask-size:auto;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;padding:4px 6px;}:host .bookmarks:hover{background-color:var(--plugin--background);}:host .lm-DockPanel{overflow:var(--dock-panel--overflow,hidden);position:absolute;background-color:var(--detail--background-color,transparent);padding:var(--workspace-spacing);top:0;left:0;right:0;bottom:0;}:host .lm-DockPanel[data-mode="single-document"]{padding:0px;}:host .lm-Widget,:host .lm-Widget{cursor:inherit;}:host .lm-DockPanel.ew,:host .lm-DockPanel.ew .lm-Widget,:host .lm-SplitPanel.ew,:host .lm-SplitPanel.ew .lm-Widget{cursor:ew-resize!important;}:host .lm-DockPanel.ns,:host .lm-DockPanel.ns .lm-Widget,:host .lm-SplitPanel.ns,:host .lm-SplitPanel.ns .lm-Widget{cursor:ns-resize!important;}:host .workspace-master-widget{min-width:100px!important;}:host .lm-DockPanel.resizing ::slotted(perspective-viewer),:host .lm-SplitPanel.resizing ::slotted(perspective-viewer){pointer-events:none;}:host .widget-blur ::slotted(perspective-viewer){opacity:0.5;}:host .lm-DockPanel-handle.resizing{background-color:rgba(0,0,0,0.05);}:host .perspective-scroll-panel{overflow:auto!important;}:host .lm-Panel{min-height:100%;}:host .lm-DockPanel-handle{background-color:none;}:host .lm-SplitPanel-handle{background-color:var(--workspace-split-panel-handle--background-color);}:host .lm-SplitPanel-handle,:host .lm-DockPanel-handle{transition:background-color 0.3s ease-out;}:host .lm-SplitPanel-handle:hover,:host .lm-DockPanel-handle:hover{background-color:rgba(0,0,0,0.05);}:host .lm-DockPanel-handle[data-orientation="horizontal"]{width:10px!important;margin-left:-5px;}:host .lm-DockPanel-handle[data-orientation="vertical"]{height:10px!important;margin-top:-5px;}:host .lm-DockPanel-overlay{background:rgba(75,75,75,0.2);border:1px dashed#666;border-radius:6px;transition-property:top,left,right,bottom;transition-duration:50ms;transition-timing-function:linear;margin:0px;}:host .lm-DockPanel:not([data-mode="single-document"]) .viewer-container{border:var(--workspace-tabbar--border,1px solid var(--inactive--color));border-width:var(--workspace-tabbar--border-width);border-radius:var(--workspace-tabbar--border-radius,6px) var(--workspace-tabbar--border-radius,6px) var(--workspace-tabbar--border-radius,6px) var(--workspace-tabbar--border-radius,6px);}:host .viewer-container{flex:1;height:100%;overflow:hidden;}:host .perspective-scroll-panel .workspace-widget{min-width:300px;min-height:200px;}:host .workspace-widget{display:flex;flex-direction:column;border:1px solid#eaedef;border-width:0px!important;}:host{--workspace-spacing:3px;}:host .workspace{width:100%;height:100%;}:host .lm-SplitPanel{height:100%;width:100%;}:host div.lm-SplitPanel-handle{background-color:var(--workspace-split-panel-handle--background-color);}:host .master-panel{background-color:var(--workspace-master--background-color,inherit);padding:0px 0px 0px 0px;}:host .master-panel .viewer-container{border-width:0px;}:host .perspective-workspace.context-menu * .lm-SplitPanel-handle{opacity:0.2;}:host .perspective-workspace.context-menu>.lm-SplitPanel-handle{opacity:0.2;}:host .context-menu .lm-TabBar:not(.context-focus){pointer-events:none;}`;var ti=`<!--
3
3
 
4
4
  Copyright (c) 2017, the Perspective Authors.