UNPKG

@lumino/widgets

Version:
1 lines 147 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@lumino/algorithm"),require("@lumino/coreutils"),require("@lumino/domutils"),require("@lumino/messaging"),require("@lumino/properties"),require("@lumino/signaling"),require("@lumino/dragdrop"),require("@lumino/commands"),require("@lumino/virtualdom"),require("@lumino/disposable"),require("@lumino/keyboard")):"function"==typeof define&&define.amd?define(["exports","@lumino/algorithm","@lumino/coreutils","@lumino/domutils","@lumino/messaging","@lumino/properties","@lumino/signaling","@lumino/dragdrop","@lumino/commands","@lumino/virtualdom","@lumino/disposable","@lumino/keyboard"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).lumino_widgets={},e.lumino_algorithm,e.lumino_coreutils,e.lumino_domutils,e.lumino_messaging,e.lumino_properties,e.lumino_signaling,e.lumino_dragdrop,e.lumino_commands,e.lumino_virtualdom,e.lumino_disposable,e.lumino_keyboard)}(this,(function(e,t,i,s,n,a,r,o,h,d,l,c){"use strict";class u{constructor(){this.sizeHint=0,this.minSize=0,this.maxSize=1/0,this.stretch=1,this.size=0,this.done=!1}}var m,g,p,_;e.BoxEngine=void 0,(m=e.BoxEngine||(e.BoxEngine={})).calc=function(e,t){let i=e.length;if(0===i)return t;let s=0,n=0,a=0,r=0,o=0;for(let t=0;t<i;++t){let i=e[t],h=i.minSize,d=i.maxSize,l=i.sizeHint;i.done=!1,i.size=Math.max(h,Math.min(l,d)),a+=i.size,s+=h,n+=d,i.stretch>0&&(r+=i.stretch,o++)}if(t===a)return 0;if(t<=s){for(let t=0;t<i;++t){let i=e[t];i.size=i.minSize}return t-s}if(t>=n){for(let t=0;t<i;++t){let i=e[t];i.size=i.maxSize}return t-n}let h=.01,d=i;if(t<a){let s=a-t;for(;o>0&&s>h;){let t=s,n=r;for(let a=0;a<i;++a){let i=e[a];if(i.done||0===i.stretch)continue;let h=i.stretch*t/n;i.size-h<=i.minSize?(s-=i.size-i.minSize,r-=i.stretch,i.size=i.minSize,i.done=!0,d--,o--):(s-=h,i.size-=h)}}for(;d>0&&s>h;){let t=s/d;for(let n=0;n<i;++n){let i=e[n];i.done||(i.size-t<=i.minSize?(s-=i.size-i.minSize,i.size=i.minSize,i.done=!0,d--):(s-=t,i.size-=t))}}}else{let s=t-a;for(;o>0&&s>h;){let t=s,n=r;for(let a=0;a<i;++a){let i=e[a];if(i.done||0===i.stretch)continue;let h=i.stretch*t/n;i.size+h>=i.maxSize?(s-=i.maxSize-i.size,r-=i.stretch,i.size=i.maxSize,i.done=!0,d--,o--):(s-=h,i.size+=h)}}for(;d>0&&s>h;){let t=s/d;for(let n=0;n<i;++n){let i=e[n];i.done||(i.size+t>=i.maxSize?(s-=i.maxSize-i.size,i.size=i.maxSize,i.done=!0,d--):(s-=t,i.size+=t))}}}return 0},m.adjust=function(e,t,i){0!==e.length&&0!==i&&(i>0?function(e,t,i){let s=0;for(let i=0;i<=t;++i){let t=e[i];s+=t.maxSize-t.size}let n=0;for(let i=t+1,s=e.length;i<s;++i){let t=e[i];n+=t.size-t.minSize}let a=i=Math.min(i,s,n);for(let i=t;i>=0&&a>0;--i){let t=e[i],s=t.maxSize-t.size;s>=a?(t.sizeHint=t.size+a,a=0):(t.sizeHint=t.size+s,a-=s)}let r=i;for(let i=t+1,s=e.length;i<s&&r>0;++i){let t=e[i],s=t.size-t.minSize;s>=r?(t.sizeHint=t.size-r,r=0):(t.sizeHint=t.size-s,r-=s)}}(e,t,i):function(e,t,i){let s=0;for(let i=t+1,n=e.length;i<n;++i){let t=e[i];s+=t.maxSize-t.size}let n=0;for(let i=0;i<=t;++i){let t=e[i];n+=t.size-t.minSize}let a=i=Math.min(i,s,n);for(let i=t+1,s=e.length;i<s&&a>0;++i){let t=e[i],s=t.maxSize-t.size;s>=a?(t.sizeHint=t.size+a,a=0):(t.sizeHint=t.size+s,a-=s)}let r=i;for(let i=t;i>=0&&r>0;--i){let t=e[i],s=t.size-t.minSize;s>=r?(t.sizeHint=t.size-r,r=0):(t.sizeHint=t.size-s,r-=s)}}(e,t,-i))};class f{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 r.Signal(this),this._isDisposed=!1,this.owner=e.owner,void 0!==e.label&&(this._label=e.label),void 0!==e.mnemonic&&(this._mnemonic=e.mnemonic),void 0!==e.icon&&(this._icon=e.icon),void 0!==e.iconClass&&(this._iconClass=e.iconClass),void 0!==e.iconLabel&&(this._iconLabel=e.iconLabel),void 0!==e.caption&&(this._caption=e.caption),void 0!==e.className&&(this._className=e.className),void 0!==e.closable&&(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,r.Signal.clearData(this))}}class b{constructor(e={}){this._flags=0,this._layout=null,this._parent=null,this._disposed=new r.Signal(this),this._hiddenMode=b.HiddenMode.Display,this.node=g.createNode(e),this.addClass("lm-Widget")}dispose(){this.isDisposed||(this.setFlag(b.Flag.IsDisposed),this._disposed.emit(void 0),this.parent?this.parent=null:this.isAttached&&b.detach(this),this._layout&&(this._layout.dispose(),this._layout=null),this.title.dispose(),r.Signal.clearData(this),n.MessageLoop.clearData(this),a.AttachedProperty.clearData(this))}get disposed(){return this._disposed}get isDisposed(){return this.testFlag(b.Flag.IsDisposed)}get isAttached(){return this.testFlag(b.Flag.IsAttached)}get isHidden(){return this.testFlag(b.Flag.IsHidden)}get isVisible(){let e=this;do{if(e.isHidden||!e.isAttached)return!1;e=e.parent}while(null!=e);return!0}get title(){return g.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==b.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 e=new b.ChildMessage("child-removed",this);n.MessageLoop.sendMessage(this._parent,e)}if(this._parent=e,this._parent&&!this._parent.isDisposed){let e=new b.ChildMessage("child-added",this);n.MessageLoop.sendMessage(this._parent,e)}this.isDisposed||n.MessageLoop.sendMessage(this,b.Msg.ParentChanged)}}get layout(){return this._layout}set layout(e){if(this._layout!==e){if(this.testFlag(b.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!0===t?(this.node.classList.add(e),!0):!1===t?(this.node.classList.remove(e),!1):this.node.classList.toggle(e)}update(){n.MessageLoop.postMessage(this,b.Msg.UpdateRequest)}fit(){n.MessageLoop.postMessage(this,b.Msg.FitRequest)}activate(){n.MessageLoop.postMessage(this,b.Msg.ActivateRequest)}close(){n.MessageLoop.sendMessage(this,b.Msg.CloseRequest)}show(){if(this.testFlag(b.Flag.IsHidden)&&(!this.isAttached||this.parent&&!this.parent.isVisible||n.MessageLoop.sendMessage(this,b.Msg.BeforeShow),this.clearFlag(b.Flag.IsHidden),this._toggleHidden(!1),!this.isAttached||this.parent&&!this.parent.isVisible||n.MessageLoop.sendMessage(this,b.Msg.AfterShow),this.parent)){let e=new b.ChildMessage("child-shown",this);n.MessageLoop.sendMessage(this.parent,e)}}hide(){if(!this.testFlag(b.Flag.IsHidden)&&(!this.isAttached||this.parent&&!this.parent.isVisible||n.MessageLoop.sendMessage(this,b.Msg.BeforeHide),this.setFlag(b.Flag.IsHidden),this._toggleHidden(!0),!this.isAttached||this.parent&&!this.parent.isVisible||n.MessageLoop.sendMessage(this,b.Msg.AfterHide),this.parent)){let e=new b.ChildMessage("child-hidden",this);n.MessageLoop.sendMessage(this.parent,e)}}setHidden(e){e?this.hide():this.show()}testFlag(e){return 0!=(this._flags&e)}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(b.Flag.IsVisible),this.notifyLayout(e),this.onAfterShow(e);break;case"before-hide":this.notifyLayout(e),this.onBeforeHide(e);break;case"after-hide":this.clearFlag(b.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(b.Flag.IsVisible),this.setFlag(b.Flag.IsAttached),this.notifyLayout(e),this.onAfterAttach(e);break;case"before-detach":this.notifyLayout(e),this.onBeforeDetach(e);break;case"after-detach":this.clearFlag(b.Flag.IsVisible),this.clearFlag(b.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)}}notifyLayout(e){this._layout&&this._layout.processParentMessage(e)}onCloseRequest(e){this.parent?this.parent=null:this.isAttached&&b.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 b.HiddenMode.Display:this.addClass("lm-mod-hidden");break;case b.HiddenMode.Scale:this.node.style.transform="scale(0)",this.node.setAttribute("aria-hidden","true");break;case b.HiddenMode.ContentVisibility:this.node.style.contentVisibility="hidden",this.node.style.zIndex="-1"}else switch(this._hiddenMode){case b.HiddenMode.Display:this.removeClass("lm-mod-hidden");break;case b.HiddenMode.Scale:this.node.style.transform="",this.node.removeAttribute("aria-hidden");break;case b.HiddenMode.ContentVisibility:this.node.style.contentVisibility="",this.node.style.zIndex=""}}}!function(e){var t,i,s;(t=e.HiddenMode||(e.HiddenMode={}))[t.Display=0]="Display",t[t.Scale=1]="Scale",t[t.ContentVisibility=2]="ContentVisibility",(i=e.Flag||(e.Flag={}))[i.IsDisposed=1]="IsDisposed",i[i.IsAttached=2]="IsAttached",i[i.IsHidden=4]="IsHidden",i[i.IsVisible=8]="IsVisible",i[i.DisallowLayout=16]="DisallowLayout",(s=e.Msg||(e.Msg={})).BeforeShow=new n.Message("before-show"),s.AfterShow=new n.Message("after-show"),s.BeforeHide=new n.Message("before-hide"),s.AfterHide=new n.Message("after-hide"),s.BeforeAttach=new n.Message("before-attach"),s.AfterAttach=new n.Message("after-attach"),s.BeforeDetach=new n.Message("before-detach"),s.AfterDetach=new n.Message("after-detach"),s.ParentChanged=new n.Message("parent-changed"),s.UpdateRequest=new n.ConflatableMessage("update-request"),s.FitRequest=new n.ConflatableMessage("fit-request"),s.ActivateRequest=new n.ConflatableMessage("activate-request"),s.CloseRequest=new n.ConflatableMessage("close-request");class a extends n.Message{constructor(e,t){super(e),this.child=t}}e.ChildMessage=a;class r extends n.Message{constructor(e,t){super("resize"),this.width=e,this.height=t}}e.ResizeMessage=r,function(e){e.UnknownSize=new e(-1,-1)}(r=e.ResizeMessage||(e.ResizeMessage={})),e.attach=function(t,i,s=null){if(t.parent)throw new Error("Cannot attach a child widget.");if(t.isAttached||t.node.isConnected)throw new Error("Widget is already attached.");if(!i.isConnected)throw new Error("Host is not attached.");n.MessageLoop.sendMessage(t,e.Msg.BeforeAttach),i.insertBefore(t.node,s),n.MessageLoop.sendMessage(t,e.Msg.AfterAttach)},e.detach=function(t){if(t.parent)throw new Error("Cannot detach a child widget.");if(!t.isAttached||!t.node.isConnected)throw new Error("Widget is not attached.");n.MessageLoop.sendMessage(t,e.Msg.BeforeDetach),t.node.parentNode.removeChild(t.node),n.MessageLoop.sendMessage(t,e.Msg.AfterDetach)}}(b||(b={})),function(e){e.titleProperty=new a.AttachedProperty({name:"title",create:e=>new f({owner:e})}),e.createNode=function(e){return e.node||document.createElement(e.tag||"div")}}(g||(g={}));class v{constructor(e={}){this._disposed=!1,this._parent=null,this._fitPolicy=e.fitPolicy||"set-min-size"}dispose(){this._parent=null,this._disposed=!0,r.Signal.clearData(this),a.AttachedProperty.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 e=this._parent.node.style;e.minWidth="",e.minHeight="",e.maxWidth="",e.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)}}init(){for(const e of this)e.parent=this.parent}onResize(e){for(const e of this)n.MessageLoop.sendMessage(e,b.ResizeMessage.UnknownSize)}onUpdateRequest(e){for(const e of this)n.MessageLoop.sendMessage(e,b.ResizeMessage.UnknownSize)}onBeforeAttach(e){for(const t of this)n.MessageLoop.sendMessage(t,e)}onAfterAttach(e){for(const t of this)n.MessageLoop.sendMessage(t,e)}onBeforeDetach(e){for(const t of this)n.MessageLoop.sendMessage(t,e)}onAfterDetach(e){for(const t of this)n.MessageLoop.sendMessage(t,e)}onBeforeShow(e){for(const t of this)t.isHidden||n.MessageLoop.sendMessage(t,e)}onAfterShow(e){for(const t of this)t.isHidden||n.MessageLoop.sendMessage(t,e)}onBeforeHide(e){for(const t of this)t.isHidden||n.MessageLoop.sendMessage(t,e)}onAfterHide(e){for(const t of this)t.isHidden||n.MessageLoop.sendMessage(t,e)}onChildRemoved(e){this.removeWidget(e.child)}onFitRequest(e){}onChildShown(e){}onChildHidden(e){}}!function(e){e.getHorizontalAlignment=function(e){return p.horizontalAlignmentProperty.get(e)},e.setHorizontalAlignment=function(e,t){p.horizontalAlignmentProperty.set(e,t)},e.getVerticalAlignment=function(e){return p.verticalAlignmentProperty.get(e)},e.setVerticalAlignment=function(e,t){p.verticalAlignmentProperty.set(e,t)}}(v||(v={}));class x{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=s.ElementExt.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 a=Math.max(this._minWidth,Math.min(i,this._maxWidth)),r=Math.max(this._minHeight,Math.min(s,this._maxHeight));if(a<i)switch(v.getHorizontalAlignment(this.widget)){case"left":break;case"center":e+=(i-a)/2;break;case"right":e+=i-a;break;default:throw"unreachable"}if(r<s)switch(v.getVerticalAlignment(this.widget)){case"top":break;case"center":t+=(s-r)/2;break;case"bottom":t+=s-r;break;default:throw"unreachable"}let o=!1,h=this.widget.node.style;if(this._top!==t&&(this._top=t,h.top=`${t}px`),this._left!==e&&(this._left=e,h.left=`${e}px`),this._width!==a&&(o=!0,this._width=a,h.width=`${a}px`),this._height!==r&&(o=!0,this._height=r,h.height=`${r}px`),o){let e=new b.ResizeMessage(a,r);n.MessageLoop.sendMessage(this.widget,e)}}}!function(e){function t(e){e.parent&&e.parent.layout&&e.parent.update()}e.horizontalAlignmentProperty=new a.AttachedProperty({name:"horizontalAlignment",create:()=>"center",changed:t}),e.verticalAlignmentProperty=new a.AttachedProperty({name:"verticalAlignment",create:()=>"top",changed:t})}(p||(p={}));class M extends v{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,i){i.parent=this.parent;let s=this._widgets.indexOf(i),n=Math.max(0,Math.min(e,this._widgets.length));if(-1===s)return t.ArrayExt.insert(this._widgets,n,i),void(this.parent&&this.attachWidget(n,i));n===this._widgets.length&&n--,s!==n&&(t.ArrayExt.move(this._widgets,s,n),this.parent&&this.moveWidget(s,n,i))}removeWidget(e){this.removeWidgetAt(this._widgets.indexOf(e))}removeWidgetAt(e){let i=t.ArrayExt.removeAt(this._widgets,e);i&&this.parent&&this.detachWidget(e,i)}init(){super.init();let e=0;for(const t of this)this.attachWidget(e++,t)}attachWidget(e,t){let i=this.parent.node.children[e];this.parent.isAttached&&n.MessageLoop.sendMessage(t,b.Msg.BeforeAttach),this.parent.node.insertBefore(t.node,i),this.parent.isAttached&&n.MessageLoop.sendMessage(t,b.Msg.AfterAttach)}moveWidget(e,t,i){this.parent.isAttached&&n.MessageLoop.sendMessage(i,b.Msg.BeforeDetach),this.parent.node.removeChild(i.node),this.parent.isAttached&&n.MessageLoop.sendMessage(i,b.Msg.AfterDetach);let s=this.parent.node.children[t];this.parent.isAttached&&n.MessageLoop.sendMessage(i,b.Msg.BeforeAttach),this.parent.node.insertBefore(i.node,s),this.parent.isAttached&&n.MessageLoop.sendMessage(i,b.Msg.AfterAttach)}detachWidget(e,t){this.parent.isAttached&&n.MessageLoop.sendMessage(t,b.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.isAttached&&n.MessageLoop.sendMessage(t,b.Msg.AfterDetach)}}!function(e){e.clampDimension=function(e){return Math.max(0,Math.floor(e))}}(_||(_={}));var y,w,A,E,C,S,I,z,L,T,D=_;class B extends M{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,void 0!==e.orientation&&(this._orientation=e.orientation),void 0!==e.alignment&&(this._alignment=e.alignment),void 0!==e.spacing&&(this._spacing=_.clampDimension(e.spacing))}dispose(){for(const 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=_.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 y.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 n=y.normalize(s);for(let e=0;e<i;++e){let t=this._sizers[e];t.sizeHint=n[e],t.size=n[e]}this._hasNormedSizes=!0,t&&this.parent&&this.parent.update()}moveHandle(t,i){let s,n=this._handles[t];if(n&&!n.classList.contains("lm-mod-hidden")&&(s="horizontal"===this._orientation?i-n.offsetLeft:i-n.offsetTop,0!==s)){for(let e of this._sizers)e.size>0&&(e.sizeHint=e.size);e.BoxEngine.adjust(this._sizers,t,s),this.parent&&this.parent.update()}}init(){this.parent.dataset.orientation=this.orientation,this.parent.dataset.alignment=this.alignment,super.init()}attachWidget(e,i){let s=new x(i),a=y.createHandle(this.renderer),r=y.averageSize(this._sizers),o=y.createSizer(r);t.ArrayExt.insert(this._items,e,s),t.ArrayExt.insert(this._sizers,e,o),t.ArrayExt.insert(this._handles,e,a),this.parent.isAttached&&n.MessageLoop.sendMessage(i,b.Msg.BeforeAttach),this.parent.node.appendChild(i.node),this.parent.node.appendChild(a),this.parent.isAttached&&n.MessageLoop.sendMessage(i,b.Msg.AfterAttach),this.parent.fit()}moveWidget(e,i,s){t.ArrayExt.move(this._items,e,i),t.ArrayExt.move(this._sizers,e,i),t.ArrayExt.move(this._handles,e,i),this.parent.fit()}detachWidget(e,i){let s=t.ArrayExt.removeAt(this._items,e),a=t.ArrayExt.removeAt(this._handles,e);t.ArrayExt.removeAt(this._sizers,e),this.parent.isAttached&&n.MessageLoop.sendMessage(i,b.Msg.BeforeDetach),this.parent.node.removeChild(i.node),this.parent.node.removeChild(a),this.parent.isAttached&&n.MessageLoop.sendMessage(i,b.Msg.AfterDetach),s.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,n,a,r){const o=this._items[e];if(o.isHidden)return;let h=this._handles[e].style;t?(i+=this.widgetOffset,o.update(i,s,r,n),i+=r,h.top=`${s}px`,h.left=`${i}px`,h.width=`${this._spacing}px`,h.height=`${n}px`):(s+=this.widgetOffset,o.update(i,s,a,r),s+=r,h.top=`${s}px`,h.left=`${i}px`,h.width=`${a}px`,h.height=`${this._spacing}px`)}_fit(){let e=0,t=-1;for(let i=0,s=this._items.length;i<s;++i)this._items[i].isHidden?this._handles[i].classList.add("lm-mod-hidden"):(this._handles[i].classList.remove("lm-mod-hidden"),t=i,e++);-1!==t&&this._handles[t].classList.add("lm-mod-hidden"),this._fixed=this._spacing*Math.max(0,e-1)+this.widgetOffset*this._items.length;let i="horizontal"===this._orientation,a=i?this._fixed:0,r=i?0:this._fixed;for(let e=0,t=this._items.length;e<t;++e){let t=this._items[e],s=this._sizers[e];s.size>0&&(s.sizeHint=s.size),t.isHidden?(s.minSize=0,s.maxSize=0):(t.fit(),s.stretch=B.getStretch(t.widget),i?(s.minSize=t.minWidth,s.maxSize=t.maxWidth,a+=t.minWidth,r=Math.max(r,t.minHeight)):(s.minSize=t.minHeight,s.maxSize=t.maxHeight,r+=t.minHeight,a=Math.max(a,t.minWidth)))}let o=this._box=s.ElementExt.boxSizing(this.parent.node);a+=o.horizontalSum,r+=o.verticalSum;let h=this.parent.node.style;h.minWidth=`${a}px`,h.minHeight=`${r}px`,this._dirty=!0,this.parent.parent&&n.MessageLoop.sendMessage(this.parent.parent,b.Msg.FitRequest),this._dirty&&n.MessageLoop.sendMessage(this.parent,b.Msg.UpdateRequest)}_update(t,i){this._dirty=!1;let n=0;for(let e=0,t=this._items.length;e<t;++e)n+=+!this._items[e].isHidden;if(0===n&&0===this.widgetOffset)return;t<0&&(t=this.parent.node.offsetWidth),i<0&&(i=this.parent.node.offsetHeight),this._box||(this._box=s.ElementExt.boxSizing(this.parent.node));let a=this._box.paddingTop,r=this._box.paddingLeft,o=t-this._box.horizontalSum,h=i-this._box.verticalSum,d=0,l=0,c="horizontal"===this._orientation;if(n>0){let t;if(t=c?Math.max(0,o-this._fixed):Math.max(0,h-this._fixed),this._hasNormedSizes){for(let e of this._sizers)e.sizeHint*=t;this._hasNormedSizes=!1}let i=e.BoxEngine.calc(this._sizers,t);if(i>0)switch(this._alignment){case"start":break;case"center":d=0,l=i/2;break;case"end":d=0,l=i;break;case"justify":d=i/n,l=0;break;default:throw"unreachable"}}for(let e=0,t=this._items.length;e<t;++e){const t=this._items[e].isHidden?0:this._sizers[e].size+d;this.updateItemPosition(e,c,c?r+l:r,c?a:a+l,h,o,t);const i=this.widgetOffset+(this._handles[e].classList.contains("lm-mod-hidden")?0:this._spacing);c?r+=t+i:a+=t+i}}}!function(e){e.getStretch=function(e){return y.stretchProperty.get(e)},e.setStretch=function(e,t){y.stretchProperty.set(e,t)}}(B||(B={})),function(e){e.stretchProperty=new a.AttachedProperty({name:"stretch",create:()=>0,coerce:(e,t)=>Math.max(0,Math.floor(t)),changed:function(e){e.parent&&e.parent.layout instanceof B&&e.parent.fit()}}),e.createSizer=function(e){let t=new u;return t.sizeHint=Math.floor(e),t},e.createHandle=function(e){let t=e.createHandle();return t.style.position="absolute",t.style.contain="style",t},e.averageSize=function(e){return e.reduce(((e,t)=>e+t.size),0)/e.length||0},e.normalize=function(e){let t=e.length;if(0===t)return[];let i=e.reduce(((e,t)=>e+Math.abs(t)),0);return 0===i?e.map((e=>1/t)):e.map((e=>e/i))}}(y||(y={}));class k extends B{constructor(e){super({...e,orientation:e.orientation||"vertical"}),this._titles=[],this.titleSpace=e.titleSpace||22}get titleSpace(){return this.widgetOffset}set titleSpace(e){e=D.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){const i=this._titles[e],s=i.classList.contains("lm-mod-expanded"),n=w.createTitle(this.renderer,t.title,s);this._titles[e]=n,this.parent.node.replaceChild(n,i)}insertWidget(e,t){t.id||(t.id=`id-${i.UUID.uuid4()}`),super.insertWidget(e,t)}attachWidget(e,i){const s=w.createTitle(this.renderer,i.title);t.ArrayExt.insert(this._titles,e,s),this.parent.node.appendChild(s),i.node.setAttribute("role","region"),i.node.setAttribute("aria-labelledby",s.id),super.attachWidget(e,i)}moveWidget(e,i,s){t.ArrayExt.move(this._titles,e,i),super.moveWidget(e,i,s)}detachWidget(e,i){const s=t.ArrayExt.removeAt(this._titles,e);this.parent.node.removeChild(s),super.detachWidget(e,i)}updateItemPosition(e,t,i,s,n,a,r){const o=this._titles[e].style;o.top=`${s}px`,o.left=`${i}px`,o.height=`${this.widgetOffset}px`,o.width=t?`${n}px`:`${a}px`,super.updateItemPosition(e,t,i,s,n,a,r)}}!function(e){e.createTitle=function(e,t,i=!0){const s=e.createSectionTitle(t);return s.style.position="absolute",s.style.contain="strict",s.setAttribute("aria-label",`${t.label} Section`),s.setAttribute("aria-expanded",i?"true":"false"),s.setAttribute("aria-controls",t.owner.id),i&&s.classList.add("lm-mod-expanded"),s}}(w||(w={}));class R extends b{constructor(e={}){super(),this.addClass("lm-Panel"),this.layout=A.createLayout(e)}get widgets(){return this.layout.widgets}addWidget(e){this.layout.addWidget(e)}insertWidget(e,t){this.layout.insertWidget(e,t)}}!function(e){e.createLayout=function(e){return e.layout||new M}}(A||(A={}));class N extends R{constructor(e={}){super({layout:E.createLayout(e)}),this._handleMoved=new r.Signal(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()}}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()),27===e.keyCode&&this._releaseMouse()}_evtPointerDown(e){if(0!==e.button)return;let i,s=this.layout,n=t.ArrayExt.findFirstIndex(s.handles,(t=>t.contains(e.target)));if(-1===n)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 a=s.handles[n],r=a.getBoundingClientRect();i="horizontal"===s.orientation?e.clientX-r.left:e.clientY-r.top;let h=window.getComputedStyle(a),d=o.Drag.overrideCursor(h.cursor);this._pressData={index:n,delta:i,override:d}}_evtPointerMove(e){let t;e.preventDefault(),e.stopPropagation();let i=this.layout,s=this.node.getBoundingClientRect();t="horizontal"===i.orientation?e.clientX-s.left-this._pressData.delta:e.clientY-s.top-this._pressData.delta,i.moveHandle(this._pressData.index,t)}_evtPointerUp(e){0===e.button&&(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(e){class t{createHandle(){let e=document.createElement("div");return e.className="lm-SplitPanel-handle",e}}e.Renderer=t,e.defaultRenderer=new t,e.getStretch=function(e){return B.getStretch(e)},e.setStretch=function(e,t){B.setStretch(e,t)}}(N||(N={})),function(e){e.createLayout=function(e){return e.layout||new B({renderer:e.renderer||N.defaultRenderer,orientation:e.orientation,alignment:e.alignment,spacing:e.spacing})}}(E||(E={}));class H extends N{constructor(e={}){super({...e,layout:C.createLayout(e)}),this._widgetSizesCache=new WeakMap,this._expansionToggled=new r.Signal(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){const t=this.layout.widgets[e];t&&!t.isHidden&&this._toggleExpansion(e)}expand(e){const 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)}}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){const i=t.ArrayExt.findFirstIndex(this.widgets,(t=>t.contains(e.owner)));i>=0&&(this.layout.updateTitle(i,e.owner),this.update())}_computeWidgetSize(e){const t=this.layout,i=t.widgets[e];if(!i)return;const s=i.isHidden,n=t.absoluteSizes(),a=(s?-1:1)*this.spacing,r=n.reduce(((e,t)=>e+t));let o=[...n];if(s){const t=this._widgetSizesCache.get(i);if(!t)return;o[e]+=t;const s=o.map((e=>e-t>0)).lastIndexOf(!0);-1===s?o.forEach(((i,s)=>{s!==e&&(o[s]-=n[s]/r*(t-a))})):o[s]-=t-a}else{const t=n[e];this._widgetSizesCache.set(i,t),o[e]=0;const s=o.map((e=>e>0)).lastIndexOf(!0);if(-1===s)return;o[s]=n[s]+t+a}return o.map((e=>e/(r+a)))}_evtClick(e){const i=e.target;if(i){const s=t.ArrayExt.findFirstIndex(this.titles,(e=>e.contains(i)));s>=0&&(e.preventDefault(),e.stopPropagation(),this._toggleExpansion(s))}}_eventKeyDown(e){if(e.defaultPrevented)return;const i=e.target;let s=!1;if(i){const n=t.ArrayExt.findFirstIndex(this.titles,(e=>e.contains(i)));if(n>=0){const t=e.keyCode.toString();if(e.key.match(/Space|Enter/)||t.match(/13|32/))i.click(),s=!0;else if("horizontal"===this.orientation?e.key.match(/ArrowLeft|ArrowRight/)||t.match(/37|39/):e.key.match(/ArrowUp|ArrowDown/)||t.match(/38|40/)){const i=e.key.match(/ArrowLeft|ArrowUp/)||t.match(/37|38/)?-1:1,a=this.titles.length,r=(n+a+i)%a;this.titles[r].focus(),s=!0}else"End"===e.key||"35"===t?(this.titles[this.titles.length-1].focus(),s=!0):"Home"!==e.key&&"36"!==t||(this.titles[0].focus(),s=!0)}s&&e.preventDefault()}}_toggleExpansion(e){const 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(e){class t extends N.Renderer{constructor(){super(),this.titleClassName="lm-AccordionPanel-title",this._titleID=0,this._titleKeys=new WeakMap,this._uuid=++t._nInstance}createCollapseIcon(e){return document.createElement("span")}createSectionTitle(e){const t=document.createElement("h3");t.setAttribute("tabindex","0"),t.id=this.createTitleKey(e),t.className=this.titleClassName;for(const i in e.dataset)t.dataset[i]=e.dataset[i];t.appendChild(this.createCollapseIcon(e)).className="lm-AccordionPanel-titleCollapser";const i=t.appendChild(document.createElement("span"));return i.className="lm-AccordionPanel-titleLabel",i.textContent=e.label,i.title=e.caption||e.label,t}createTitleKey(e){let t=this._titleKeys.get(e);return void 0===t&&(t=`title-key-${this._uuid}-${this._titleID++}`,this._titleKeys.set(e,t)),t}}t._nInstance=0,e.Renderer=t,e.defaultRenderer=new t}(H||(H={})),function(e){e.createLayout=function(e){return e.layout||new k({renderer:e.renderer||H.defaultRenderer,orientation:e.orientation,alignment:e.alignment,spacing:e.spacing,titleSpace:e.titleSpace})}}(C||(C={}));class P extends M{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",void 0!==e.direction&&(this._direction=e.direction),void 0!==e.alignment&&(this._alignment=e.alignment),void 0!==e.spacing&&(this._spacing=D.clampDimension(e.spacing))}dispose(){for(const 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=D.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,i){t.ArrayExt.insert(this._items,e,new x(i)),t.ArrayExt.insert(this._sizers,e,new u),this.parent.isAttached&&n.MessageLoop.sendMessage(i,b.Msg.BeforeAttach),this.parent.node.appendChild(i.node),this.parent.isAttached&&n.MessageLoop.sendMessage(i,b.Msg.AfterAttach),this.parent.fit()}moveWidget(e,i,s){t.ArrayExt.move(this._items,e,i),t.ArrayExt.move(this._sizers,e,i),this.parent.update()}detachWidget(e,i){let s=t.ArrayExt.removeAt(this._items,e);t.ArrayExt.removeAt(this._sizers,e),this.parent.isAttached&&n.MessageLoop.sendMessage(i,b.Msg.BeforeDetach),this.parent.node.removeChild(i.node),this.parent.isAttached&&n.MessageLoop.sendMessage(i,b.Msg.AfterDetach),s.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 t=0,i=this._items.length;t<i;++t)e+=+!this._items[t].isHidden;this._fixed=this._spacing*Math.max(0,e-1);let t=S.isHorizontal(this._direction),i=t?this._fixed:0,a=t?0:this._fixed;for(let e=0,s=this._items.length;e<s;++e){let s=this._items[e],n=this._sizers[e];s.isHidden?(n.minSize=0,n.maxSize=0):(s.fit(),n.sizeHint=P.getSizeBasis(s.widget),n.stretch=P.getStretch(s.widget),t?(n.minSize=s.minWidth,n.maxSize=s.maxWidth,i+=s.minWidth,a=Math.max(a,s.minHeight)):(n.minSize=s.minHeight,n.maxSize=s.maxHeight,a+=s.minHeight,i=Math.max(i,s.minWidth)))}let r=this._box=s.ElementExt.boxSizing(this.parent.node);i+=r.horizontalSum,a+=r.verticalSum;let o=this.parent.node.style;o.minWidth=`${i}px`,o.minHeight=`${a}px`,this._dirty=!0,this.parent.parent&&n.MessageLoop.sendMessage(this.parent.parent,b.Msg.FitRequest),this._dirty&&n.MessageLoop.sendMessage(this.parent,b.Msg.UpdateRequest)}_update(t,i){this._dirty=!1;let n=0;for(let e=0,t=this._items.length;e<t;++e)n+=+!this._items[e].isHidden;if(0===n)return;t<0&&(t=this.parent.node.offsetWidth),i<0&&(i=this.parent.node.offsetHeight),this._box||(this._box=s.ElementExt.boxSizing(this.parent.node));let a,r=this._box.paddingTop,o=this._box.paddingLeft,h=t-this._box.horizontalSum,d=i-this._box.verticalSum;switch(this._direction){case"left-to-right":a=e.BoxEngine.calc(this._sizers,Math.max(0,h-this._fixed));break;case"top-to-bottom":a=e.BoxEngine.calc(this._sizers,Math.max(0,d-this._fixed));break;case"right-to-left":a=e.BoxEngine.calc(this._sizers,Math.max(0,h-this._fixed)),o+=h;break;case"bottom-to-top":a=e.BoxEngine.calc(this._sizers,Math.max(0,d-this._fixed)),r+=d;break;default:throw"unreachable"}let l=0,c=0;if(a>0)switch(this._alignment){case"start":break;case"center":l=0,c=a/2;break;case"end":l=0,c=a;break;case"justify":l=a/n,c=0;break;default:throw"unreachable"}for(let e=0,t=this._items.length;e<t;++e){let t=this._items[e];if(t.isHidden)continue;let i=this._sizers[e].size;switch(this._direction){case"left-to-right":t.update(o+c,r,i+l,d),o+=i+l+this._spacing;break;case"top-to-bottom":t.update(o,r+c,h,i+l),r+=i+l+this._spacing;break;case"right-to-left":t.update(o-c-i-l,r,i+l,d),o-=i+l+this._spacing;break;case"bottom-to-top":t.update(o,r-c-i-l,h,i+l),r-=i+l+this._spacing;break;default:throw"unreachable"}}}}!function(e){e.getStretch=function(e){return S.stretchProperty.get(e)},e.setStretch=function(e,t){S.stretchProperty.set(e,t)},e.getSizeBasis=function(e){return S.sizeBasisProperty.get(e)},e.setSizeBasis=function(e,t){S.sizeBasisProperty.set(e,t)}}(P||(P={})),function(e){function t(e){e.parent&&e.parent.layout instanceof P&&e.parent.fit()}e.stretchProperty=new a.AttachedProperty({name:"stretch",create:()=>0,coerce:(e,t)=>Math.max(0,Math.floor(t)),changed:t}),e.sizeBasisProperty=new a.AttachedProperty({name:"sizeBasis",create:()=>0,coerce:(e,t)=>Math.max(0,Math.floor(t)),changed:t}),e.isHorizontal=function(e){return"left-to-right"===e||"right-to-left"===e},e.clampSpacing=function(e){return Math.max(0,Math.floor(e))}}(S||(S={}));class W extends R{constructor(e={}){super({layout:I.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(e){e.getStretch=function(e){return P.getStretch(e)},e.setStretch=function(e,t){P.setStretch(e,t)},e.getSizeBasis=function(e){return P.getSizeBasis(e)},e.setSizeBasis=function(e,t){P.setSizeBasis(e,t)}}(W||(W={})),function(e){e.createLayout=function(e){return e.layout||new P(e)}}(I||(I={}));class q extends b{constructor(e){super({node:z.createNode()}),this._activeIndex=-1,this._items=[],this._results=null,this.addClass("lm-CommandPalette"),this.setFlag(b.Flag.DisallowLayout),this.commands=e.commands,this.renderer=e.renderer||q.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=z.createItem(this.commands,e);return this._items.push(t),this.refresh(),t}addItems(e){const t=e.map((e=>z.createItem(this.commands,e)));return t.forEach((e=>this._items.push(e))),this.refresh(),t}removeItem(e){this.removeItemAt(this._items.indexOf(e))}removeItemAt(e){t.ArrayExt.removeAt(this._items,e)&&this.refresh()}clearItems(){0!==this._items.length&&(this._items.length=0,this.refresh())}refresh(){if(this._results=null,""!==this.inputNode.value){this.node.getElementsByClassName("lm-close-icon")[0].style.display="inherit"}else{this.node.getElementsByClassName("lm-close-icon")[0].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()}}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 e=this.inputNode;e.focus(),e.select()}}onUpdateRequest(e){if(!this.isVisible)return void d.VirtualDOM.render(null,this.contentNode);let i=this.inputNode.value,n=this.contentNode,a=this._results;if(a||(a=this._results=z.search(this._items,i),this._activeIndex=i?t.ArrayExt.findFirstIndex(a,z.canActivate):-1),!i&&0===a.length)return void d.VirtualDOM.render(null,n);if(i&&0===a.length){let e=this.renderer.renderEmptyMessage({query:i});return void d.VirtualDOM.render(e,n)}let r=this.renderer,o=this._activeIndex,h=new Array(a.length);for(let e=0,t=a.length;e<t;++e){let t=a[e];if("header"===t.type){let i=t.indices,s=t.category;h[e]=r.renderHeader({category:s,indices:i})}else{let i=t.item,s=t.indices,n=e===o;h[e]=r.renderItem({item:i,indices:s,active:n})}}if(d.VirtualDOM.render(h,n),o<0||o>=a.length)n.scrollTop=0;else{let e=n.children[o];s.ElementExt.scrollIntoViewIfNeeded(n,e)}}_evtClick(e){if(0!==e.button)return;if(e.target.classList.contains("lm-close-icon"))return this.inputNode.value="",void this.refresh();let i=t.ArrayExt.findFirstIndex(this.contentNode.children,(t=>t.contains(e.target)));-1!==i&&(e.preventDefault(),e.stopPropagation(),this._execute(i))}_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()}}_activateNextItem(){if(!this._results||0===this._results.length)return;let e=this._activeIndex,i=this._results.length,s=e<i-1?e+1:0,n=0===s?i-1:s-1;this._activeIndex=t.ArrayExt.findFirstIndex(this._results,z.canActivate,s,n),this.update()}_activatePreviousItem(){if(!this._results||0===this._results.length)return;let e=this._activeIndex,i=this._results.length,s=e<=0?i-1:e-1,n=s===i-1?0:s+1;this._activeIndex=t.ArrayExt.findLastIndex(this._results,z.canActivate,s,n),this.update()}_execute(e){if(!this._results)return;let t=this._results[e];if(t){if("header"===t.type){let e=this.inputNode;return e.value=`${t.category.toLowerCase()} `,e.focus(),void this.refresh()}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(e){class i{renderHeader(e){let t=this.formatHeader(e);return d.h.li({className:"lm-CommandPalette-header"},t)}renderItem(e){let t=this.createItemClass(e),i=this.createItemDataset(e);return e.item.isToggleable?d.h.li({className:t,dataset:i,role:"menuitemcheckbox","aria-checked":`${e.item.isToggled}`},this.renderItemIcon(e),this.renderItemContent(e),this.renderItemShortcut(e)):d.h.li({className:t,dataset:i,role:"menuitem"},this.renderItemIcon(e),this.renderItemContent(e),this.renderItemShortcut(e))}renderEmptyMessage(e){let t=this.formatEmptyMessage(e);return d.h.li({className:"lm-CommandPalette-emptyMessage"},t)}renderItemIcon(e){let t=this.createIconClass(e);return d.h.div({className:t},e.item.icon,e.item.iconLabel)}renderItemContent(e){return d.h.div({className:"lm-CommandPalette-itemContent"},this.renderItemLabel(e),this.renderItemCaption(e))}renderItemLabel(e){let t=this.formatItemLabel(e);return d.h.div({className:"lm-CommandPalette-itemLabel"},t)}renderItemCaption(e){let t=this.formatItemCaption(e);return d.h.div({className:"lm-CommandPalette-itemCaption"},t)}renderItemShortcut(e){let t=this.formatItemShortcut(e);return d.h.div({className:"lm-CommandPalette-itemShortcut"},t)}createItemClass(e){let t="lm-CommandPalette-item";e.item.isEnabled||(t+=" lm-mod-disabled"),e.item.isToggled&&(t+=" lm-mod-toggled"),e.active&&(t+=" lm-mod-active");let i=e.item.className;return i&&(t+=` ${i}`),t}createItemDataset(e){return{...e.item.dataset,command:e.item.command}}createIconClass(e){let t="lm-CommandPalette-itemIcon",i=e.item.iconClass;return i?`${t} ${i}`:t}formatHeader(e){return e.indices&&0!==e.indices.length?t.StringExt.highlight(e.category,e.indices,d.h.mark):e.category}formatEmptyMessage(e){return`No commands found that match '${e.query}'`}formatItemShortcut(e){let t=e.item.keyBinding;return t?h.CommandRegistry.formatKeystroke(t.keys):null}formatItemLabel(e){return e.indices&&0!==e.indices.length?t.StringExt.highlight(e.item.label,e.indices,d.h.mark):e.item.label}formatItemCaption(e){return e.item.caption}}e.Renderer=i,e.defaultRenderer=new i}(q||(q={})),function(e){function s(e,i){let s=e.category.toLowerCase(),n=`${s} ${e.label.toLowerCase()}`,a=1/0,r=null,o=/\b\w/g;for(;;){let e=o.exec(n);if(!e)break;let s=t.StringExt.matchSumOfDeltas(n,i,e.index);if(!s)break;s.score<=a&&(a=s.score,r=s.indices)}if(!r||a===1/0)return null;let h=s.length+1,d=t.ArrayExt.lowerBound(r,h,((e,t)=>e-t)),l=r.slice(0,d),c=r.slice(d);for(let e=0,t=c.length;e<t;++e)c[e]-=h;return 0===l.length?{matchType:0,categoryIndices:null,labelIndices:c,score:a,item:e}:0===c.length?{matchType:1,categoryIndices:l,labelIndices:null,score:a,item:e}:{matchType:2,categoryIndices:l,labelIndices:c,score:a,item:e}}function n(e,t){let i=e.matchType-t.matchType;if(0!==i)return i;let s=e.score-t.score;if(0!==s)return s;let n=0,a=0;switch(e.matchType){case 0:n=e.labelIndices[0],a=t.labelIndices[0];break;case 1:case 2:n=e.categoryIndices[0],a=t.categoryIndices[0]}if(n!==a)return n-a;let r=e.item.category.localeCompare(t.item.category);if(0!==r)return r;let o=e.item.rank,h=t.item.rank;return o!==h?o<h?-1:1:e.item.label.localeCompare(t.item.label)}e.createNode=function(){let e=document.createElement("div"),t=document.createElement("div"),i=document.createElement("div"),s=document.createElement("input"),n=document.createElement("ul"),a=document.createElement("button");return t.className="lm-CommandPalette-search",i.className="lm-CommandPalette-wrapper",s.className="lm-CommandPalette-input",a.className="lm-close-icon",n.className="lm-CommandPalette-content",n.setAttribute("role","menu"),s.spellcheck=!1,i.appendChild(s),i.appendChild(a),t.appendChild(i),e.appendChild(t),e.appendChild(n),e},e.createItem=function(e,t){return new a(e,t)},e.search=function(e,t){let i=function(e,t){i=t,t=i.replace(/\s+/g,"").toLowerCase();var i;let n=[];for(let i=0,a=e.length;i<a;++i){let a=e[i];if(!a.isVisible)continue;if(!t){n.push({matchType:3,categoryIndices:null,labelIndices:null,score:0,item:a});continue}let r=s(a,t);r&&(a.isEnabled||(r.score+=1e3),n.push(r))}return n}(e,t);return i.sort(n),function(e){let t=[];for(let i=0,s=e.length;i<s;++i){let{item:s,categoryIndices:n,labelIndices:a}=e[i],r=s.category;0!==i&&r===e[i-1].item.category||t.push({type:"header",category:r,indices:n}),t.push({type:"item",item:s,indices:a})}return t}(i)},e.canActivate=fu