"use strict";(self.webpackChunk_JUPYTERLAB_CORE_OUTPUT=self.webpackChunk_JUPYTERLAB_CORE_OUTPUT||[]).push([[911],{30911:(e,t,i)=>{i.r(t),i.d(t,{AccordionLayout:()=>N,AccordionPanel:()=>W,BoxEngine:()=>s,BoxLayout:()=>q,BoxPanel:()=>F,BoxSizer:()=>b,CommandPalette:()=>O,ContextMenu:()=>U,DockLayout:()=>te,DockPanel:()=>ie,FocusTracker:()=>se,GridLayout:()=>ne,Layout:()=>x,LayoutItem:()=>y,Menu:()=>$,MenuBar:()=>ae,Panel:()=>P,PanelLayout:()=>w,ScrollBar:()=>re,SingletonLayout:()=>oe,SplitLayout:()=>R,SplitPanel:()=>H,StackedLayout:()=>he,StackedPanel:()=>de,TabBar:()=>Y,TabPanel:()=>le,Title:()=>v,Widget:()=>M});var s,n,a,r,o=i(33625),h=i(20998),d=i(18395),l=i(49503),c=i(14421),u=i(81997),m=i(99615),g=i(16934),p=i(24475),_=i(2549),f=i(80554);class b{constructor(){this.sizeHint=0,this.minSize=0,this.maxSize=1/0,this.stretch=1,this.size=0,this.done=!1}}!function(e){e.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;t0&&(r+=i.stretch,o++)}if(t===a)return 0;if(t<=s){for(let t=0;t=n){for(let t=0;t0&&s>h;){let t=s,n=r;for(let a=0;a0&&s>h;){let t=s/d;for(let n=0;n0&&s>h;){let t=s,n=r;for(let a=0;a=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.maxSize?(s-=i.maxSize-i.size,i.size=i.maxSize,i.done=!0,d--):(s-=t,i.size+=t))}}}return 0},e.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=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;i0;++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;i0;++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))}}(s||(s={}));class v{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.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,u.Signal.clearData(this))}}class M{constructor(e={}){this._flags=0,this._layout=null,this._parent=null,this._disposed=new u.Signal(this),this._hiddenMode=M.HiddenMode.Display,this.node=n.createNode(e),this.addClass("lm-Widget")}dispose(){this.isDisposed||(this.setFlag(M.Flag.IsDisposed),this._disposed.emit(void 0),this.parent?this.parent=null:this.isAttached&&M.detach(this),this._layout&&(this._layout.dispose(),this._layout=null),this.title.dispose(),u.Signal.clearData(this),l.MessageLoop.clearData(this),c.AttachedProperty.clearData(this))}get disposed(){return this._disposed}get isDisposed(){return this.testFlag(M.Flag.IsDisposed)}get isAttached(){return this.testFlag(M.Flag.IsAttached)}get isHidden(){return this.testFlag(M.Flag.IsHidden)}get isVisible(){return this.testFlag(M.Flag.IsVisible)}get title(){return n.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==M.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 M.ChildMessage("child-removed",this);l.MessageLoop.sendMessage(this._parent,e)}if(this._parent=e,this._parent&&!this._parent.isDisposed){let e=new M.ChildMessage("child-added",this);l.MessageLoop.sendMessage(this._parent,e)}this.isDisposed||l.MessageLoop.sendMessage(this,M.Msg.ParentChanged)}}get layout(){return this._layout}set layout(e){if(this._layout!==e){if(this.testFlag(M.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(){l.MessageLoop.postMessage(this,M.Msg.UpdateRequest)}fit(){l.MessageLoop.postMessage(this,M.Msg.FitRequest)}activate(){l.MessageLoop.postMessage(this,M.Msg.ActivateRequest)}close(){l.MessageLoop.sendMessage(this,M.Msg.CloseRequest)}show(){if(this.testFlag(M.Flag.IsHidden)&&(!this.isAttached||this.parent&&!this.parent.isVisible||l.MessageLoop.sendMessage(this,M.Msg.BeforeShow),this.clearFlag(M.Flag.IsHidden),this._toggleHidden(!1),!this.isAttached||this.parent&&!this.parent.isVisible||l.MessageLoop.sendMessage(this,M.Msg.AfterShow),this.parent)){let e=new M.ChildMessage("child-shown",this);l.MessageLoop.sendMessage(this.parent,e)}}hide(){if(!this.testFlag(M.Flag.IsHidden)&&(!this.isAttached||this.parent&&!this.parent.isVisible||l.MessageLoop.sendMessage(this,M.Msg.BeforeHide),this.setFlag(M.Flag.IsHidden),this._toggleHidden(!0),!this.isAttached||this.parent&&!this.parent.isVisible||l.MessageLoop.sendMessage(this,M.Msg.AfterHide),this.parent)){let e=new M.ChildMessage("child-hidden",this);l.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(M.Flag.IsVisible),this.notifyLayout(e),this.onAfterShow(e);break;case"before-hide":this.notifyLayout(e),this.onBeforeHide(e);break;case"after-hide":this.clearFlag(M.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(M.Flag.IsVisible),this.setFlag(M.Flag.IsAttached),this.notifyLayout(e),this.onAfterAttach(e);break;case"before-detach":this.notifyLayout(e),this.onBeforeDetach(e);break;case"after-detach":this.clearFlag(M.Flag.IsVisible),this.clearFlag(M.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&&M.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 M.HiddenMode.Display:this.addClass("lm-mod-hidden");break;case M.HiddenMode.Scale:this.node.style.transform="scale(0)",this.node.setAttribute("aria-hidden","true");break;case M.HiddenMode.ContentVisibility:this.node.style.contentVisibility="hidden",this.node.style.zIndex="-1"}else switch(this._hiddenMode){case M.HiddenMode.Display:this.removeClass("lm-mod-hidden");break;case M.HiddenMode.Scale:this.node.style.transform="",this.node.removeAttribute("aria-hidden");break;case M.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 l.Message("before-show"),s.AfterShow=new l.Message("after-show"),s.BeforeHide=new l.Message("before-hide"),s.AfterHide=new l.Message("after-hide"),s.BeforeAttach=new l.Message("before-attach"),s.AfterAttach=new l.Message("after-attach"),s.BeforeDetach=new l.Message("before-detach"),s.AfterDetach=new l.Message("after-detach"),s.ParentChanged=new l.Message("parent-changed"),s.UpdateRequest=new l.ConflatableMessage("update-request"),s.FitRequest=new l.ConflatableMessage("fit-request"),s.ActivateRequest=new l.ConflatableMessage("activate-request"),s.CloseRequest=new l.ConflatableMessage("close-request");class n extends l.Message{constructor(e,t){super(e),this.child=t}}e.ChildMessage=n;class a extends l.Message{constructor(e,t){super("resize"),this.width=e,this.height=t}}e.ResizeMessage=a,function(e){e.UnknownSize=new e(-1,-1)}(a=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.");l.MessageLoop.sendMessage(t,e.Msg.BeforeAttach),i.insertBefore(t.node,s),l.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.");l.MessageLoop.sendMessage(t,e.Msg.BeforeDetach),t.node.parentNode.removeChild(t.node),l.MessageLoop.sendMessage(t,e.Msg.AfterDetach)}}(M||(M={})),function(e){e.titleProperty=new c.AttachedProperty({name:"title",create:e=>new v({owner:e})}),e.createNode=function(e){return e.node||document.createElement(e.tag||"div")}}(n||(n={}));class x{constructor(e={}){this._disposed=!1,this._parent=null,this._fitPolicy=e.fitPolicy||"set-min-size"}dispose(){this._parent=null,this._disposed=!0,u.Signal.clearData(this),c.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)l.MessageLoop.sendMessage(e,M.ResizeMessage.UnknownSize)}onUpdateRequest(e){for(const e of this)l.MessageLoop.sendMessage(e,M.ResizeMessage.UnknownSize)}onBeforeAttach(e){for(const t of this)l.MessageLoop.sendMessage(t,e)}onAfterAttach(e){for(const t of this)l.MessageLoop.sendMessage(t,e)}onBeforeDetach(e){for(const t of this)l.MessageLoop.sendMessage(t,e)}onAfterDetach(e){for(const t of this)l.MessageLoop.sendMessage(t,e)}onBeforeShow(e){for(const t of this)t.isHidden||l.MessageLoop.sendMessage(t,e)}onAfterShow(e){for(const t of this)t.isHidden||l.MessageLoop.sendMessage(t,e)}onBeforeHide(e){for(const t of this)t.isHidden||l.MessageLoop.sendMessage(t,e)}onAfterHide(e){for(const t of this)t.isHidden||l.MessageLoop.sendMessage(t,e)}onChildRemoved(e){this.removeWidget(e.child)}onFitRequest(e){}onChildShown(e){}onChildHidden(e){}}!function(e){e.getHorizontalAlignment=function(e){return a.horizontalAlignmentProperty.get(e)},e.setHorizontalAlignment=function(e,t){a.horizontalAlignmentProperty.set(e,t)},e.getVerticalAlignment=function(e){return a.verticalAlignmentProperty.get(e)},e.setVerticalAlignment=function(e,t){a.verticalAlignmentProperty.set(e,t)}}(x||(x={}));class y{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=d.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 n=Math.max(this._minWidth,Math.min(i,this._maxWidth)),a=Math.max(this._minHeight,Math.min(s,this._maxHeight));if(n"center",changed:t}),e.verticalAlignmentProperty=new c.AttachedProperty({name:"verticalAlignment",create:()=>"top",changed:t})}(a||(a={}));class w extends x{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(-1===i)return o.ArrayExt.insert(this._widgets,s,t),void(this.parent&&this.attachWidget(s,t));s===this._widgets.length&&s--,i!==s&&(o.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=o.ArrayExt.removeAt(this._widgets,e);t&&this.parent&&this.detachWidget(e,t)}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&&l.MessageLoop.sendMessage(t,M.Msg.BeforeAttach),this.parent.node.insertBefore(t.node,i),this.parent.isAttached&&l.MessageLoop.sendMessage(t,M.Msg.AfterAttach)}moveWidget(e,t,i){this.parent.isAttached&&l.MessageLoop.sendMessage(i,M.Msg.BeforeDetach),this.parent.node.removeChild(i.node),this.parent.isAttached&&l.MessageLoop.sendMessage(i,M.Msg.AfterDetach);let s=this.parent.node.children[t];this.parent.isAttached&&l.MessageLoop.sendMessage(i,M.Msg.BeforeAttach),this.parent.node.insertBefore(i.node,s),this.parent.isAttached&&l.MessageLoop.sendMessage(i,M.Msg.AfterAttach)}detachWidget(e,t){this.parent.isAttached&&l.MessageLoop.sendMessage(t,M.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.isAttached&&l.MessageLoop.sendMessage(t,M.Msg.AfterDetach)}}!function(e){e.clampDimension=function(e){return Math.max(0,Math.floor(e))}}(r||(r={}));var A,C,E,S,I,z,L,T,D,B,k=r;class R extends w{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=r.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=r.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 A.normalize(this._sizers.map((e=>e.size)))}setRelativeSizes(e,t=!0){let i=this._sizers.length,s=e.slice(0,i);for(;s.length0&&(e.sizeHint=e.size);s.adjust(this._sizers,e,i),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 y(t),s=A.createHandle(this.renderer),n=A.averageSize(this._sizers),a=A.createSizer(n);o.ArrayExt.insert(this._items,e,i),o.ArrayExt.insert(this._sizers,e,a),o.ArrayExt.insert(this._handles,e,s),this.parent.isAttached&&l.MessageLoop.sendMessage(t,M.Msg.BeforeAttach),this.parent.node.appendChild(t.node),this.parent.node.appendChild(s),this.parent.isAttached&&l.MessageLoop.sendMessage(t,M.Msg.AfterAttach),this.parent.fit()}moveWidget(e,t,i){o.ArrayExt.move(this._items,e,t),o.ArrayExt.move(this._sizers,e,t),o.ArrayExt.move(this._handles,e,t),this.parent.fit()}detachWidget(e,t){let i=o.ArrayExt.removeAt(this._items,e),s=o.ArrayExt.removeAt(this._handles,e);o.ArrayExt.removeAt(this._sizers,e),this.parent.isAttached&&l.MessageLoop.sendMessage(t,M.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.node.removeChild(s),this.parent.isAttached&&l.MessageLoop.sendMessage(t,M.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,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;i0&&(a.sizeHint=a.size),t.isHidden?(a.minSize=0,a.maxSize=0):(t.fit(),a.stretch=R.getStretch(t.widget),i?(a.minSize=t.minWidth,a.maxSize=t.maxWidth,s+=t.minWidth,n=Math.max(n,t.minHeight)):(a.minSize=t.minHeight,a.maxSize=t.maxHeight,n+=t.minHeight,s=Math.max(s,t.minWidth)))}let a=this._box=d.ElementExt.boxSizing(this.parent.node);s+=a.horizontalSum,n+=a.verticalSum;let r=this.parent.node.style;r.minWidth=`${s}px`,r.minHeight=`${n}px`,this._dirty=!0,this.parent.parent&&l.MessageLoop.sendMessage(this.parent.parent,M.Msg.FitRequest),this._dirty&&l.MessageLoop.sendMessage(this.parent,M.Msg.UpdateRequest)}_update(e,t){this._dirty=!1;let i=0;for(let e=0,t=this._items.length;e0){let e;if(e=c?Math.max(0,r-this._fixed):Math.max(0,o-this._fixed),this._hasNormedSizes){for(let t of this._sizers)t.sizeHint*=e;this._hasNormedSizes=!1}let t=s.calc(this._sizers,e);if(t>0)switch(this._alignment){case"start":break;case"center":h=0,l=t/2;break;case"end":h=0,l=t;break;case"justify":h=t/i,l=0;break;default:throw"unreachable"}}for(let e=0,t=this._items.length;e0,coerce:(e,t)=>Math.max(0,Math.floor(t)),changed:function(e){e.parent&&e.parent.layout instanceof R&&e.parent.fit()}}),e.createSizer=function(e){let t=new b;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))}}(A||(A={}));class N extends R{constructor(e){super({...e,orientation:e.orientation||"vertical"}),this._titles=[],this.titleSpace=e.titleSpace||22}get titleSpace(){return this.widgetOffset}set titleSpace(e){e=k.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=C.createTitle(this.renderer,t.title,s);this._titles[e]=n,this.parent.node.replaceChild(n,i)}insertWidget(e,t){t.id||(t.id=`id-${h.UUID.uuid4()}`),super.insertWidget(e,t)}attachWidget(e,t){const i=C.createTitle(this.renderer,t.title);o.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){o.ArrayExt.move(this._titles,e,t),super.moveWidget(e,t,i)}detachWidget(e,t){const i=o.ArrayExt.removeAt(this._titles,e);this.parent.node.removeChild(i),super.detachWidget(e,t)}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}}(C||(C={}));class P extends M{constructor(e={}){super(),this.addClass("lm-Panel"),this.layout=E.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 w}}(E||(E={}));class H extends P{constructor(e={}){super({layout:S.createLayout(e)}),this._handleMoved=new u.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 t,i=this.layout,s=o.ArrayExt.findFirstIndex(i.handles,(t=>t.contains(e.target)));if(-1===s)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 n=i.handles[s],a=n.getBoundingClientRect();t="horizontal"===i.orientation?e.clientX-a.left:e.clientY-a.top;let r=window.getComputedStyle(n),h=m.Drag.overrideCursor(r.cursor);this._pressData={index:s,delta:t,override:h}}_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 R.getStretch(e)},e.setStretch=function(e,t){R.setStretch(e,t)}}(H||(H={})),function(e){e.createLayout=function(e){return e.layout||new R({renderer:e.renderer||H.defaultRenderer,orientation:e.orientation,alignment:e.alignment,spacing:e.spacing})}}(S||(S={}));class W extends H{constructor(e={}){super({...e,layout:I.createLayout(e)}),this._widgetSizesCache=new WeakMap,this._expansionToggled=new u.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 t=o.ArrayExt.findFirstIndex(this.widgets,(t=>t.contains(e.owner)));t>=0&&(this.layout.updateTitle(t,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 t=e.target;if(t){const i=o.ArrayExt.findFirstIndex(this.titles,(e=>e.contains(t)));i>=0&&(e.preventDefault(),e.stopPropagation(),this._toggleExpansion(i))}}_eventKeyDown(e){if(e.defaultPrevented)return;const t=e.target;let i=!1;if(t){const s=o.ArrayExt.findFirstIndex(this.titles,(e=>e.contains(t)));if(s>=0){const n=e.keyCode.toString();if(e.key.match(/Space|Enter/)||n.match(/13|32/))t.click(),i=!0;else if("horizontal"===this.orientation?e.key.match(/ArrowLeft|ArrowRight/)||n.match(/37|39/):e.key.match(/ArrowUp|ArrowDown/)||n.match(/38|40/)){const t=e.key.match(/ArrowLeft|ArrowUp/)||n.match(/37|38/)?-1:1,a=this.titles.length,r=(s+a+t)%a;this.titles[r].focus(),i=!0}else"End"===e.key||"35"===n?(this.titles[this.titles.length-1].focus(),i=!0):"Home"!==e.key&&"36"!==n||(this.titles[0].focus(),i=!0)}i&&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 H.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}(W||(W={})),function(e){e.createLayout=function(e){return e.layout||new N({renderer:e.renderer||W.defaultRenderer,orientation:e.orientation,alignment:e.alignment,spacing:e.spacing,titleSpace:e.titleSpace})}}(I||(I={}));class q extends w{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=k.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=k.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){o.ArrayExt.insert(this._items,e,new y(t)),o.ArrayExt.insert(this._sizers,e,new b),this.parent.isAttached&&l.MessageLoop.sendMessage(t,M.Msg.BeforeAttach),this.parent.node.appendChild(t.node),this.parent.isAttached&&l.MessageLoop.sendMessage(t,M.Msg.AfterAttach),this.parent.fit()}moveWidget(e,t,i){o.ArrayExt.move(this._items,e,t),o.ArrayExt.move(this._sizers,e,t),this.parent.update()}detachWidget(e,t){let i=o.ArrayExt.removeAt(this._items,e);o.ArrayExt.removeAt(this._sizers,e),this.parent.isAttached&&l.MessageLoop.sendMessage(t,M.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.isAttached&&l.MessageLoop.sendMessage(t,M.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 t=0,i=this._items.length;t0)switch(this._alignment){case"start":break;case"center":l=0,c=n/2;break;case"end":l=0,c=n;break;case"justify":l=n/i,c=0;break;default:throw"unreachable"}for(let e=0,t=this._items.length;e0,coerce:(e,t)=>Math.max(0,Math.floor(t)),changed:t}),e.sizeBasisProperty=new c.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))}}(z||(z={}));class F extends P{constructor(e={}){super({layout:L.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 q.getStretch(e)},e.setStretch=function(e,t){q.setStretch(e,t)},e.getSizeBasis=function(e){return q.getSizeBasis(e)},e.setSizeBasis=function(e,t){q.setSizeBasis(e,t)}}(F||(F={})),function(e){e.createLayout=function(e){return e.layout||new q(e)}}(L||(L={}));class O extends M{constructor(e){super({node:T.createNode()}),this._activeIndex=-1,this._items=[],this._results=null,this.addClass("lm-CommandPalette"),this.setFlag(M.Flag.DisallowLayout),this.commands=e.commands,this.renderer=e.renderer||O.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=T.createItem(this.commands,e);return this._items.push(t),this.refresh(),t}addItems(e){const t=e.map((e=>T.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){o.ArrayExt.removeAt(this._items,e)&&this.refresh()}clearItems(){0!==this._items.length&&(this._items.length=0,this.refresh())}refresh(){this._results=null,""!==this.inputNode.value?this.node.getElementsByClassName("lm-close-icon")[0].style.display="inherit":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.isHidden)return;let t=this.inputNode.value,i=this.contentNode,s=this._results;if(s||(s=this._results=T.search(this._items,t),this._activeIndex=t?o.ArrayExt.findFirstIndex(s,T.canActivate):-1),!t&&0===s.length)return void p.VirtualDOM.render(null,i);if(t&&0===s.length){let e=this.renderer.renderEmptyMessage({query:t});return void p.VirtualDOM.render(e,i)}let n=this.renderer,a=this._activeIndex,r=new Array(s.length);for(let e=0,t=s.length;e=s.length)i.scrollTop=0;else{let e=i.children[a];d.ElementExt.scrollIntoViewIfNeeded(i,e)}}_evtClick(e){if(0!==e.button)return;if(e.target.classList.contains("lm-close-icon"))return this.inputNode.value="",void this.refresh();let t=o.ArrayExt.findFirstIndex(this.contentNode.children,(t=>t.contains(e.target)));-1!==t&&(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()}}_activateNextItem(){if(!this._results||0===this._results.length)return;let e=this._activeIndex,t=this._results.length,i=ee-t)),l=a.slice(0,d),c=a.slice(d);for(let e=0,t=c.length;ei.command===e&&h.JSONExt.deepEqual(i.args,t)))||null}}}(T||(T={}));class $ extends M{constructor(e){super({node:D.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.Signal(this),this._menuRequested=new u.Signal(this),this.addClass("lm-Menu"),this.setFlag(M.Flag.DisallowLayout),this.commands=e.commands,this.renderer=e.renderer||$.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),-1===e||D.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{this.activeIndex=e}})}p.VirtualDOM.render(a,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(13===t)return void this.triggerActiveItem();if(27===t)return void this.close();if(37===t)return void(this._parentMenu?this.close():this._menuRequested.emit("previous"));if(38===t)return void this.activatePreviousItem();if(39===t){let e=this.activeItem;return void(e&&"submenu"===e.type?this.triggerActiveItem():this.rootMenu._menuRequested.emit("next"))}if(40===t)return void this.activateNextItem();let i=(0,f.getKeyboardLayout)().keyForKeydownEvent(e);if(!i)return;let s=this._activeIndex+1,n=D.findMnemonic(this._items,i,s);-1===n.index||n.multiple?-1!==n.index?this.activeIndex=n.index:-1!==n.auto&&(this.activeIndex=n.auto):(this.activeIndex=n.index,this.triggerActiveItem())}_evtMouseUp(e){0===e.button&&(e.preventDefault(),e.stopPropagation(),this.triggerActiveItem())}_evtMouseMove(e){let t=o.ArrayExt.findFirstIndex(this.contentNode.children,(t=>d.ElementExt.hitTest(t,e.clientX,e.clientY)));if(t===this._activeIndex)return;if(this.activeIndex=t,t=this.activeIndex,t===this._childIndex)return this._cancelOpenTimer(),void this._cancelCloseTimer();-1!==this._childIndex&&this._startCloseTimer(),this._cancelOpenTimer();let i=this.activeItem;i&&"submenu"===i.type&&i.submenu&&this._startOpenTimer()}_evtMouseEnter(e){for(let e=this._parentMenu;e;e=e._parentMenu)e._cancelOpenTimer(),e._cancelCloseTimer(),e.activeIndex=e._childIndex}_evtMouseLeave(e){if(this._cancelOpenTimer(),!this._childMenu)return void(this.activeIndex=-1);let{clientX:t,clientY:i}=e;d.ElementExt.hitTest(this._childMenu.node,t,i)?this._cancelCloseTimer():(this.activeIndex=-1,this._startCloseTimer())}_evtMouseDown(e){this._parentMenu||(D.hitTestMenus(this,e.clientX,e.clientY)?(e.preventDefault(),e.stopPropagation()):this.close())}_openChildMenu(e=!1){let t=this.activeItem;if(!t||"submenu"!==t.type||!t.submenu)return void this._closeChildMenu();let i=t.submenu;if(i===this._childMenu)return;$.saveWindowData(),this._closeChildMenu(),this._childMenu=i,this._childIndex=this._activeIndex,i._parentMenu=this,l.MessageLoop.sendMessage(this,M.Msg.UpdateRequest);let s=this.contentNode.children[this._activeIndex];D.openSubmenu(i,s),e&&(i.activeIndex=-1,i.activateNextItem()),i.activate()}_closeChildMenu(){this._childMenu&&this._childMenu.close()}_startOpenTimer(){0===this._openTimerID&&(this._openTimerID=window.setTimeout((()=>{this._openTimerID=0,this._openChildMenu()}),D.TIMER_DELAY))}_startCloseTimer(){0===this._closeTimerID&&(this._closeTimerID=window.setTimeout((()=>{this._closeTimerID=0,this._closeChildMenu()}),D.TIMER_DELAY))}_cancelOpenTimer(){0!==this._openTimerID&&(clearTimeout(this._openTimerID),this._openTimerID=0)}_cancelCloseTimer(){0!==this._closeTimerID&&(clearTimeout(this._closeTimerID),this._closeTimerID=0)}static saveWindowData(){D.saveWindowData()}}!function(e){class t{renderItem(e){let t=this.createItemClass(e),i=this.createItemDataset(e),s=this.createItemARIA(e);return p.h.li({className:t,dataset:i,tabindex:"0",onfocus:e.onfocus,...s},this.renderIcon(e),this.renderLabel(e),this.renderShortcut(e),this.renderSubmenu(e))}renderIcon(e){let t=this.createIconClass(e);return p.h.div({className:t},e.item.icon,e.item.iconLabel)}renderLabel(e){let t=this.formatLabel(e);return p.h.div({className:"lm-Menu-itemLabel"},t)}renderShortcut(e){let t=this.formatShortcut(e);return p.h.div({className:"lm-Menu-itemShortcut"},t)}renderSubmenu(e){return p.h.div({className:"lm-Menu-itemSubmenuIcon"})}createItemClass(e){let t="lm-Menu-item";e.item.isEnabled||(t+=" lm-mod-disabled"),e.item.isToggled&&(t+=" lm-mod-toggled"),e.item.isVisible||(t+=" lm-mod-hidden"),e.active&&(t+=" lm-mod-active"),e.collapsed&&(t+=" lm-mod-collapsed");let i=e.item.className;return i&&(t+=` ${i}`),t}createItemDataset(e){let t,{type:i,command:s,dataset:n}=e.item;return t="command"===i?{...n,type:i,command:s}:{...n,type:i},t}createIconClass(e){let t="lm-Menu-itemIcon",i=e.item.iconClass;return i?`${t} ${i}`:t}createItemARIA(e){let t={};switch(e.item.type){case"separator":t.role="presentation";break;case"submenu":t["aria-haspopup"]="true",e.item.isEnabled||(t["aria-disabled"]="true");break;default:e.item.isEnabled||(t["aria-disabled"]="true"),t.role="menuitem"}return t}formatLabel(e){let{label:t,mnemonic:i}=e.item;if(i<0||i>=t.length)return t;let s=t.slice(0,i),n=t.slice(i+1),a=t[i];return[s,p.h.span({className:"lm-Menu-itemMnemonic"},a),n]}formatShortcut(e){let t=e.item.keyBinding;return t?g.CommandRegistry.formatKeystroke(t.keys):null}}e.Renderer=t,e.defaultRenderer=new t}($||($={})),function(e){e.TIMER_DELAY=300,e.SUBMENU_OVERLAP=3;let t=null,i=0;function s(){return i>0?(i--,t):a()}function n(e){return"separator"!==e.type&&e.isEnabled&&e.isVisible}function a(){return{pageXOffset:window.pageXOffset,pageYOffset:window.pageYOffset,clientWidth:document.documentElement.clientWidth,clientHeight:document.documentElement.clientHeight}}e.saveWindowData=function(){t=a(),i++},e.createNode=function(){let e=document.createElement("div"),t=document.createElement("ul");return t.className="lm-Menu-content",e.appendChild(t),t.setAttribute("role","menu"),e.tabIndex=0,e},e.canActivate=n,e.createItem=function(e,t){return new r(e.commands,t)},e.hitTestMenus=function(e,t,i){for(let s=e;s;s=s.childMenu)if(d.ElementExt.hitTest(s.node,t,i))return!0;return!1},e.computeCollapsed=function(e){let t=new Array(e.length);o.ArrayExt.fill(t,!1);let i=0,s=e.length;for(;i=0;--n){let i=e[n];if(i.isVisible){if("separator"!==i.type)break;t[n]=!0}}let a=!1;for(;++io+d&&(t=o+d-p),!a&&i+_>h+c&&(i>h+c?i=h+c-_:i-=_),g.transform=`translate(${Math.max(0,t)}px, ${Math.max(0,i)}px`,g.opacity="1"},e.openSubmenu=function(t,i){const n=s();let a=n.pageXOffset,r=n.pageYOffset,o=n.clientWidth,h=n.clientHeight;l.MessageLoop.sendMessage(t,M.Msg.UpdateRequest);let c=h,u=t.node,m=u.style;m.opacity="0",m.maxHeight=`${c}px`,M.attach(t,document.body);let{width:g,height:p}=u.getBoundingClientRect(),_=d.ElementExt.boxSizing(t.node),f=i.getBoundingClientRect(),b=f.right-e.SUBMENU_OVERLAP;b+g>a+o&&(b=f.left+e.SUBMENU_OVERLAP-g);let v=f.top-_.borderTop-_.paddingTop;v+p>r+h&&(v=f.bottom+_.borderBottom+_.paddingBottom-p),m.transform=`translate(${Math.max(0,b)}px, ${Math.max(0,v)}px`,m.opacity="1"},e.findMnemonic=function(e,t,i){let s=-1,a=-1,r=!1,o=t.toUpperCase();for(let t=0,h=e.length;t=0&&ui.command===e&&h.JSONExt.deepEqual(i.args,t)))||null}return null}}}(D||(D={}));class U{constructor(e){this._groupByTarget=!0,this._idTick=0,this._items=[],this._sortBySelector=!0;const{groupByTarget:t,sortBySelector:i,...s}=e;this.menu=new $(s),this._groupByTarget=!1!==t,this._sortBySelector=!1!==i}addItem(e){let t=B.createItem(e,this._idTick++);return this._items.push(t),new _.DisposableDelegate((()=>{o.ArrayExt.removeFirstOf(this._items,t)}))}open(e){if($.saveWindowData(),this.menu.clearItems(),0===this._items.length)return!1;let t=B.matchItems(this._items,e,this._groupByTarget,this._sortBySelector);if(!t||0===t.length)return!1;for(const e of t)this.menu.addItem(e);return this.menu.open(e.clientX,e.clientY),!0}}!function(e){function t(e,t){let i=e.rank,s=t.rank;return i!==s?i=this._titles.length)&&(e=-1),this._currentIndex===e)return;let t=this._currentIndex,i=this._titles[t]||null,s=e,n=this._titles[s]||null;this._currentIndex=s,this._previousTitle=i,this.update(),this._currentChanged.emit({previousIndex:t,previousTitle:i,currentIndex:s,currentTitle:n})}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=X.asTitle(t),s=this._titles.indexOf(i),n=Math.max(0,Math.min(e,this._titles.length));return-1===s?(o.ArrayExt.insert(this._titles,n,i),i.changed.connect(this._onTitleChanged,this),this.update(),this._adjustCurrentForInsert(n,i),i):(n===this._titles.length&&n--,s===n||(o.ArrayExt.move(this._titles,s,n),this.update(),this._adjustCurrentForMove(s,n)),i)}removeTab(e){this.removeTabAt(this._titles.indexOf(e))}removeTabAt(e){this._releaseMouse();let t=o.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(0===this._titles.length)return;this._releaseMouse();for(let e of this._titles)e.changed.disconnect(this._onTitleChanged,this);let e=this.currentIndex,t=this.currentTitle;this._currentIndex=-1,this._previousTitle=null,this._titles.length=0,this.update(),-1!==e&&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()}}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,n=this.currentTitle,a=new Array(i.length);const r=null!==(t=this._getCurrentTabindex())&&void 0!==t?t:this._currentIndex>-1?this._currentIndex:0;for(let e=0,t=i.length;ed.ElementExt.hitTest(t,e.clientX,e.clientY)));if(-1===i)return;let s=this.titles[i],n=t[i].querySelector(".lm-TabBar-tabLabel");if(n&&n.contains(e.target)){let e=s.label||"",t=n.innerHTML;n.innerHTML="";let i=document.createElement("input");i.classList.add("lm-TabBar-tabInput"),i.value=e,n.appendChild(i);let a=()=>{i.removeEventListener("blur",a),n.innerHTML=t,this.node.addEventListener("keydown",this)};i.addEventListener("dblclick",(e=>e.stopPropagation())),i.addEventListener("blur",a),i.addEventListener("keydown",(e=>{"Enter"===e.key?(""!==i.value&&(s.label=s.caption=i.value),a()):"Escape"===e.key&&a()})),this.node.removeEventListener("keydown",this),i.select(),i.focus(),n.children.length>0&&n.children[0].focus()}}_evtKeyDownCapturing(e){e.eventPhase===Event.CAPTURING_PHASE&&(e.preventDefault(),e.stopPropagation(),"Escape"===e.key&&this._releaseMouse())}_evtKeyDown(e){var t,i,s;if("Tab"!==e.key&&e.eventPhase!==Event.CAPTURING_PHASE)if("Enter"===e.key||"Spacebar"===e.key||" "===e.key){const t=document.activeElement;if(this.addButtonEnabled&&this.addButtonNode.contains(t))e.preventDefault(),e.stopPropagation(),this._addRequested.emit();else{const i=o.ArrayExt.findFirstIndex(this.contentNode.children,(e=>e.contains(t)));i>=0&&(e.preventDefault(),e.stopPropagation(),this.currentIndex=i)}}else if(V.includes(e.key)){const n=[...this.contentNode.children];if(this.addButtonEnabled&&n.push(this.addButtonNode),n.length<=1)return;e.preventDefault(),e.stopPropagation();let a,r=n.indexOf(document.activeElement);-1===r&&(r=this._currentIndex),"ArrowRight"===e.key&&"horizontal"===this._orientation||"ArrowDown"===e.key&&"vertical"===this._orientation?a=null!==(t=n[r+1])&&void 0!==t?t:n[0]:"ArrowLeft"===e.key&&"horizontal"===this._orientation||"ArrowUp"===e.key&&"vertical"===this._orientation?a=null!==(i=n[r-1])&&void 0!==i?i:n[n.length-1]:"Home"===e.key?a=n[0]:"End"===e.key&&(a=n[n.length-1]),a&&(null===(s=n[r])||void 0===s||s.setAttribute("tabindex","-1"),null==a||a.setAttribute("tabindex","0"),a.focus())}}_evtPointerDown(e){if(0!==e.button&&1!==e.button)return;if(this._dragData)return;if(e.target.classList.contains("lm-TabBar-tabInput"))return;let t=this.addButtonEnabled&&this.addButtonNode.contains(e.target),i=this.contentNode.children,s=o.ArrayExt.findFirstIndex(i,(t=>d.ElementExt.hitTest(t,e.clientX,e.clientY)));if(-1===s&&!t)return;if(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),1===e.button||t)return;let n=i[s].querySelector(this.renderer.closeIconSelector);n&&n.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,-1!==this.currentIndex&&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||X.dragExceeded(t,e)){if(!t.dragActive){let e=t.tab.getBoundingClientRect();"horizontal"===this._orientation?(t.tabPos=t.tab.offsetLeft,t.tabSize=e.width,t.tabPressPos=t.pressX-e.left):(t.tabPos=t.tab.offsetTop,t.tabSize=e.height,t.tabPressPos=t.pressY-e.top),t.tabPressOffset={x:t.pressX-e.left,y:t.pressY-e.top},t.tabLayout=X.snapTabLayout(i,this._orientation),t.contentRect=this.contentNode.getBoundingClientRect(),t.override=m.Drag.overrideCursor("default"),t.tab.classList.add("lm-mod-dragging"),this.addClass("lm-mod-dragging"),t.dragActive=!0}if(!t.detachRequested&&X.detachExceeded(t,e)){t.detachRequested=!0;let s=t.index,n=e.clientX,a=e.clientY,r=i[s],o=this._titles[s];if(this._tabDetachRequested.emit({index:s,title:o,tab:r,clientX:n,clientY:a,offset:t.tabPressOffset}),t.dragAborted)return}X.layoutTabs(i,t,e,this._orientation)}}_evtPointerUp(e){if(0!==e.button&&1!==e.button)return;const 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))return void this._addRequested.emit(void 0);let i=this.contentNode.children,s=o.ArrayExt.findFirstIndex(i,(t=>d.ElementExt.hitTest(t,e.clientX,e.clientY)));if(s!==t.index)return;let n=this._titles[s];if(!n.closable)return;if(1===e.button)return void this._tabCloseRequested.emit({index:s,title:n});let a=i[s].querySelector(this.renderer.closeIconSelector);return a&&a.contains(e.target)?void this._tabCloseRequested.emit({index:s,title:n}):void 0}if(0!==e.button)return;X.finalizeTabPosition(t,this._orientation),t.tab.classList.remove("lm-mod-dragging");let i=X.parseTransitionDuration(t.tab);setTimeout((()=>{if(t.dragAborted)return;this._dragData=null,X.resetTabPositions(this.contentNode.children,this._orientation),t.override.dispose(),this.removeClass("lm-mod-dragging");let e=t.index,i=t.targetIndex;-1!==i&&e!==i&&(o.ArrayExt.move(this._titles,e,i),this._adjustCurrentForMove(e,i),this._tabMoved.emit({fromIndex:e,toIndex:i,title:this._titles[i]}),l.MessageLoop.sendMessage(this,M.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&&(X.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,n=this.insertBehavior;if("select-tab"===n||"select-tab-if-needed"===n&&-1===s)return this._currentIndex=e,this._previousTitle=i,void this._currentChanged.emit({previousIndex:s,previousTitle:i,currentIndex:e,currentTitle:t});s>=e&&this._currentIndex++}_adjustCurrentForMove(e,t){this._currentIndex===e?this._currentIndex=t: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){if(0===this._titles.length)return this._currentIndex=-1,void this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:-1,currentTitle:null});if("select-tab-after"===s)return this._currentIndex=Math.min(e,this._titles.length-1),void this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:this._currentIndex,currentTitle:this.currentTitle});if("select-tab-before"===s)return this._currentIndex=Math.max(0,e-1),void this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:this._currentIndex,currentTitle:this.currentTitle});if("select-previous-tab"===s)return this._previousTitle?(this._currentIndex=this._titles.indexOf(this._previousTitle),this._previousTitle=null):this._currentIndex=Math.min(e,this._titles.length-1),void this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:this._currentIndex,currentTitle:this.currentTitle});this._currentIndex=-1,this._currentChanged.emit({previousIndex:e,previousTitle:t,currentIndex:-1,currentTitle:null})}else i>e&&this._currentIndex--}_onTitleChanged(e){this.update()}}var X,K,G,j,J,Q,Z,ee;!function(e){class t{constructor(){this.closeIconSelector=".lm-TabBar-tabCloseIcon",this._tabID=0,this._tabKeys=new WeakMap,this._uuid=++t._nInstance}renderTab(e){let t=e.title.caption,i=this.createTabKey(e),s=i,n=this.createTabStyle(e),a=this.createTabClass(e),r=this.createTabDataset(e),o=this.createTabARIA(e);return e.title.closable?p.h.li({id:s,key:i,className:a,title:t,style:n,dataset:r,...o},this.renderIcon(e),this.renderLabel(e),this.renderCloseIcon(e)):p.h.li({id:s,key:i,className:a,title:t,style:n,dataset:r,...o},this.renderIcon(e),this.renderLabel(e))}renderIcon(e){const{title:t}=e;let i=this.createIconClass(e);return p.h.div({className:i},t.icon,t.iconLabel)}renderLabel(e){return p.h.div({className:"lm-TabBar-tabLabel"},e.title.label)}renderCloseIcon(e){return p.h.div({className:"lm-TabBar-tabCloseIcon"})}createTabKey(e){let t=this._tabKeys.get(e.title);return void 0===t&&(t=`tab-key-${this._uuid}-${this._tabID++}`,this._tabKeys.set(e.title,t)),t}createTabStyle(e){return{zIndex:`${e.zIndex}`}}createTabClass(e){let t="lm-TabBar-tab";return e.title.className&&(t+=` ${e.title.className}`),e.title.closable&&(t+=" lm-mod-closable"),e.current&&(t+=" lm-mod-current"),t}createTabDataset(e){return e.title.dataset}createTabARIA(e){var t;return{role:"tab","aria-selected":e.current.toString(),tabindex:`${null!==(t=e.tabIndex)&&void 0!==t?t:"-1"}`}}createIconClass(e){let t="lm-TabBar-tabIcon",i=e.title.iconClass;return i?`${t} ${i}`:t}}t._nInstance=0,e.Renderer=t,e.defaultRenderer=new t,e.addButtonSelector=".lm-TabBar-addButton"}(Y||(Y={})),function(e){e.DRAG_THRESHOLD=5,e.DETACH_THRESHOLD=20,e.createNode=function(){let e=document.createElement("div"),t=document.createElement("ul");t.setAttribute("role","tablist"),t.className="lm-TabBar-content",e.appendChild(t);let i=document.createElement("div");return i.className="lm-TabBar-addButton lm-mod-hidden",i.setAttribute("tabindex","-1"),i.setAttribute("role","button"),e.appendChild(i),e},e.asTitle=function(e){return e instanceof v?e:new v(e)},e.parseTransitionDuration=function(e){let t=window.getComputedStyle(e);return 1e3*(parseFloat(t.transitionDuration)||0)},e.snapTabLayout=function(e,t){let i=new Array(e.length);for(let s=0,n=e.length;s=e.DRAG_THRESHOLD||n>=e.DRAG_THRESHOLD},e.detachExceeded=function(t,i){let s=t.contentRect;return i.clientX=s.right+e.DETACH_THRESHOLD||i.clientY=s.bottom+e.DETACH_THRESHOLD},e.layoutTabs=function(e,t,i,s){let n,a,r,o;"horizontal"===s?(n=t.pressX,a=i.clientX-t.contentRect.left,r=i.clientX,o=t.contentRect.width):(n=t.pressY,a=i.clientY-t.contentRect.top,r=i.clientY,o=t.contentRect.height);let h=t.index,d=a-t.tabPressPos,l=d+t.tabSize;for(let i=0,a=e.length;i>1);if(it.index&&l>u)a=-t.tabSize-c.margin+"px",h=Math.max(h,i);else if(i===t.index){let e=r-n,i=o-(t.tabPos+t.tabSize);a=`${Math.max(-t.tabPos,Math.min(e,i))}px`}else a="";"horizontal"===s?e[i].style.left=a:e[i].style.top=a}t.targetIndex=h},e.finalizeTabPosition=function(e,t){let i,s;if(i="horizontal"===t?e.contentRect.width:e.contentRect.height,e.targetIndex===e.index)s=0;else if(e.targetIndex>e.index){let t=e.tabLayout[e.targetIndex];s=t.pos+t.size-e.tabSize-e.tabPos}else s=e.tabLayout[e.targetIndex].pos-e.tabPos;let n=i-(e.tabPos+e.tabSize),a=Math.max(-e.tabPos,Math.min(s,n));"horizontal"===t?e.tab.style.left=`${a}px`:e.tab.style.top=`${a}px`},e.resetTabPositions=function(e,t){for(const i of e)"horizontal"===t?i.style.left="":i.style.top=""}}(X||(X={}));class te extends x{constructor(e){super(),this._spacing=4,this._dirty=!1,this._root=null,this._box=null,this._items=new Map,this.renderer=e.renderer,void 0!==e.spacing&&(this._spacing=k.clampDimension(e.spacing)),this._document=e.document||document,this._hiddenMode=void 0!==e.hiddenMode?e.hiddenMode:M.HiddenMode.Display}dispose(){let e=this[Symbol.iterator]();this._items.forEach((e=>{e.dispose()})),this._box=null,this._root=null,this._items.clear();for(const t of e)t.dispose();super.dispose()}get hiddenMode(){return this._hiddenMode}set hiddenMode(e){if(this._hiddenMode!==e){this._hiddenMode=e;for(const e of this.tabBars())if(e.titles.length>1)for(const t of e.titles)t.owner.hiddenMode=this._hiddenMode}}get spacing(){return this._spacing}set spacing(e){e=k.clampDimension(e),this._spacing!==e&&(this._spacing=e,this.parent&&this.parent.fit())}get isEmpty(){return null===this._root}[Symbol.iterator](){return this._root?this._root.iterAllWidgets():(0,o.empty)()}widgets(){return this._root?this._root.iterUserWidgets():(0,o.empty)()}selectedWidgets(){return this._root?this._root.iterSelectedWidgets():(0,o.empty)()}tabBars(){return this._root?this._root.iterTabBars():(0,o.empty)()}handles(){return this._root?this._root.iterHandles():(0,o.empty)()}moveHandle(e,t,i){let n=e.classList.contains("lm-mod-hidden");if(!this._root||n)return;let a,r=this._root.findSplitNode(e);r&&(a="horizontal"===r.node.orientation?t-e.offsetLeft:i-e.offsetTop,0!==a&&(r.node.holdSizes(),s.adjust(r.node.sizers,r.index,a),this.parent&&this.parent.update()))}saveLayout(){return this._root?(this._root.holdAllSizes(),{main:this._root.createConfig()}):{main:null}}restoreLayout(e){let t,i=new Set;t=e.main?K.normalizeAreaConfig(e.main,i):null;let s=this.widgets(),n=this.tabBars(),a=this.handles();this._root=null;for(const e of s)i.has(e)||(e.parent=null);for(const e of n)e.dispose();for(const e of a)e.parentNode&&e.parentNode.removeChild(e);for(const e of i)e.parent=this.parent;this._root=t?K.realizeAreaConfig(t,{createTabBar:e=>this._createTabBar(),createHandle:()=>this._createHandle()},this._document):null,this.parent&&(i.forEach((e=>{this.attachWidget(e)})),this.parent.fit())}addWidget(e,t={}){let i=t.ref||null,s=t.mode||"tab-after",n=null;if(this._root&&i&&(n=this._root.findTabNode(i)),i&&!n)throw new Error("Reference widget is not in the layout.");switch(e.parent=this.parent,s){case"tab-after":this._insertTab(e,i,n,!0);break;case"tab-before":this._insertTab(e,i,n,!1);break;case"split-top":this._insertSplit(e,i,n,"vertical",!1);break;case"split-left":this._insertSplit(e,i,n,"horizontal",!1);break;case"split-right":this._insertSplit(e,i,n,"horizontal",!0);break;case"split-bottom":this._insertSplit(e,i,n,"vertical",!0);break;case"merge-top":this._insertSplit(e,i,n,"vertical",!1,!0);break;case"merge-left":this._insertSplit(e,i,n,"horizontal",!1,!0);break;case"merge-right":this._insertSplit(e,i,n,"horizontal",!0,!0);break;case"merge-bottom":this._insertSplit(e,i,n,"vertical",!0,!0)}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=d.ElementExt.boxSizing(this.parent.node));let i=this.parent.node.getBoundingClientRect(),s=e-i.left-this._box.borderLeft,n=t-i.top-this._box.borderTop,a=this._root.hitTestTabNodes(s,n);if(!a)return null;let{tabBar:r,top:o,left:h,width:l,height:c}=a,u=this._box.borderLeft+this._box.borderRight,m=this._box.borderTop+this._box.borderBottom;return{tabBar:r,x:s,y:n,top:o,left:h,right:i.width-u-(h+l),bottom:i.height-m-(o+c),width:l,height:c}}init(){super.init();for(const e of this)this.attachWidget(e);for(const 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 y(e)),this.parent.isAttached&&l.MessageLoop.sendMessage(e,M.Msg.BeforeAttach),this.parent.node.appendChild(e.node),this.parent.isAttached&&l.MessageLoop.sendMessage(e,M.Msg.AfterAttach))}detachWidget(e){if(this.parent.node!==e.node.parentNode)return;this.parent.isAttached&&l.MessageLoop.sendMessage(e,M.Msg.BeforeDetach),this.parent.node.removeChild(e.node),this.parent.isAttached&&l.MessageLoop.sendMessage(e,M.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(K.removeAria(e),t.tabBar.titles.length>1)return t.tabBar.removeTab(e.title),void(this._hiddenMode===M.HiddenMode.Scale&&1==t.tabBar.titles.length&&(t.tabBar.titles[0].owner.hiddenMode=M.HiddenMode.Display));if(t.tabBar.dispose(),this._root===t)return void(this._root=null);this._root.holdAllSizes();let i=t.parent;t.parent=null;let s=o.ArrayExt.removeFirstOf(i.children,t),n=o.ArrayExt.removeAt(i.handles,s);if(o.ArrayExt.removeAt(i.sizers,s),n.parentNode&&n.parentNode.removeChild(n),i.children.length>1)return void i.syncHandles();let a=i.parent;i.parent=null;let r=i.children[0],h=i.handles[0];if(i.children.length=0,i.handles.length=0,i.sizers.length=0,h.parentNode&&h.parentNode.removeChild(h),this._root===i)return r.parent=null,void(this._root=r);let d=a,l=d.children.indexOf(i);if(r instanceof K.TabLayoutNode)return r.parent=d,void(d.children[l]=r);let c=o.ArrayExt.removeAt(d.handles,l);o.ArrayExt.removeAt(d.children,l),o.ArrayExt.removeAt(d.sizers,l),c.parentNode&&c.parentNode.removeChild(c);for(let e=0,t=r.children.length;e=i.length)&&(s=0),{type:"tab-area",widgets:i,currentIndex:s}}(t,i):function(t,i){let s=t.orientation,n=[],a=[];for(let r=0,o=t.children.length;r{let h=s(n,i,a),d=t(e.sizes[o]),l=i.createHandle();r.children.push(h),r.handles.push(l),r.sizers.push(d),h.parent=r})),r.syncHandles(),r.normalizeSizes(),r}(a,r,o),h};class i{constructor(e){this.parent=null,this._top=0,this._left=0,this._width=0,this._height=0;let t=new b,i=new b;t.stretch=0,i.stretch=1,this.tabBar=e,this.sizers=[t,i]}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(const e of this.tabBar.titles)yield e.owner}*iterSelectedWidgets(){let e=this.tabBar.currentTitle;e&&(yield e.owner)}*iterTabBars(){yield this.tabBar}*iterHandles(){}findTabNode(e){return-1!==this.tabBar.titles.indexOf(e.title)?this:null}findSplitNode(e){return null}findFirstTabNode(){return this}hitTestTabNodes(e,t){return e=this._left+this._width||t=this._top+this._height?null:this}createConfig(){return{type:"tab-area",widgets:this.tabBar.titles.map((e=>e.owner)),currentIndex:this.tabBar.currentIndex}}holdAllSizes(){}fit(e,t){let i=0,s=0,n=t.get(this.tabBar),a=this.tabBar.currentTitle,r=a?t.get(a.owner):void 0,[o,h]=this.sizers;return n&&n.fit(),r&&r.fit(),n&&!n.isHidden?(i=Math.max(i,n.minWidth),s+=n.minHeight,o.minSize=n.minHeight,o.maxSize=n.maxHeight):(o.minSize=0,o.maxSize=0),r&&!r.isHidden?(i=Math.max(i,r.minWidth),s+=r.minHeight,h.minSize=r.minHeight,h.maxSize=1/0):(h.minSize=0,h.maxSize=1/0),{minWidth:i,minHeight:s,maxWidth:1/0,maxHeight:1/0}}update(e,t,i,n,a,r){this._top=t,this._left=e,this._width=i,this._height=n;let o=r.get(this.tabBar),h=this.tabBar.currentTitle,d=h?r.get(h.owner):void 0;if(s.calc(this.sizers,n),o&&!o.isHidden){let s=this.sizers[0].size;o.update(e,t,i,s),t+=s}if(d&&!d.isHidden){let s=this.sizers[1].size;d.update(e,t,i,s)}}}e.TabLayoutNode=i;class n{constructor(e){this.parent=null,this.normalized=!1,this.children=[],this.sizers=[],this.handles=[],this.orientation=e}*iterAllWidgets(){for(const e of this.children)yield*e.iterAllWidgets()}*iterUserWidgets(){for(const e of this.children)yield*e.iterUserWidgets()}*iterSelectedWidgets(){for(const e of this.children)yield*e.iterSelectedWidgets()}*iterTabBars(){for(const e of this.children)yield*e.iterTabBars()}*iterHandles(){yield*this.handles;for(const e of this.children)yield*e.iterHandles()}findTabNode(e){for(let t=0,i=this.children.length;te.createConfig())),sizes:t}}syncHandles(){this.handles.forEach(((e,t)=>{e.setAttribute("data-orientation",this.orientation),t===this.handles.length-1?e.classList.add("lm-mod-hidden"):e.classList.remove("lm-mod-hidden")}))}holdSizes(){for(const e of this.sizers)e.sizeHint=e.size}holdAllSizes(){for(const e of this.children)e.holdAllSizes();this.holdSizes()}normalizeSizes(){let e=this.sizers.length;if(0===e)return;this.holdSizes();let t=this.sizers.reduce(((e,t)=>e+t.sizeHint),0);if(0===t)for(const t of this.sizers)t.size=t.sizeHint=1/e;else for(const e of this.sizers)e.size=e.sizeHint/=t;this.normalized=!0}createNormalizedSizes(){let e=this.sizers.length;if(0===e)return[];let t=this.sizers.map((e=>e.size)),i=t.reduce(((e,t)=>e+t),0);if(0===i)for(let i=t.length-1;i>-1;i--)t[i]=1/e;else for(let e=t.length-1;e>-1;e--)t[e]/=i;return t}fit(e,t){let i="horizontal"===this.orientation,s=Math.max(0,this.children.length-1)*e,n=i?s:0,a=i?0:s;for(let s=0,r=this.children.length;sthis._createTabBar(),createHandle:()=>this._createHandle()};this.layout=new te({document:this._document,renderer:t,spacing:e.spacing,hiddenMode:e.hiddenMode}),this.overlay=e.overlay||new ie.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(const e of t.tabBars())e.show();break;case"single-document":t.restoreLayout(G.createSingleDocumentConfig(this));break;default:throw"unreachable"}l.MessageLoop.postMessage(this,G.LayoutModified)}get tabsMovable(){return this._tabsMovable}set tabsMovable(e){this._tabsMovable=e;for(const 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(const 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,o.find)(this.tabBars(),(t=>-1!==t.titles.indexOf(e.title)));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),(d.Platform.IS_EDGE||d.Platform.IS_IE)&&l.MessageLoop.flush(),l.MessageLoop.postMessage(this,G.LayoutModified)}addWidget(e,t={}){"single-document"===this._mode?this.layout.addWidget(e):this.layout.addWidget(e,t),l.MessageLoop.postMessage(this,G.LayoutModified)}processMessage(e){"layout-modified"===e.type?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()}}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){G.isGeneratedTabBarProperty.get(e.child)||e.child.addClass("lm-DockPanel-widget")}onChildRemoved(e){G.isGeneratedTabBarProperty.get(e.child)||(e.child.removeClass("lm-DockPanel-widget"),l.MessageLoop.postMessage(this,G.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||"invalid"===this._showOverlay(e.clientX,e.clientY)?e.dropAction="none":(e.stopPropagation(),e.dropAction=e.proposedAction)}_evtDrop(e){if(e.preventDefault(),this.overlay.hide(0),"none"===e.proposedAction)return void(e.dropAction="none");let{clientX:t,clientY:i}=e,{zone:s,target:n}=G.findDropTarget(this,t,i,this._edges);if(this._tabsConstrained&&e.source!==this||"invalid"===s)return void(e.dropAction="none");let a=e.mimeData.getData("application/vnd.lumino.widget-factory");if("function"!=typeof a)return void(e.dropAction="none");let r=a();if(!(r instanceof M))return void(e.dropAction="none");if(r.contains(this))return void(e.dropAction="none");let o=n?G.getDropRef(n.tabBar):null;switch(s){case"root-all":this.addWidget(r);break;case"root-top":this.addWidget(r,{mode:"split-top"});break;case"root-left":this.addWidget(r,{mode:"split-left"});break;case"root-right":this.addWidget(r,{mode:"split-right"});break;case"root-bottom":this.addWidget(r,{mode:"split-bottom"});break;case"widget-all":case"widget-tab":this.addWidget(r,{mode:"tab-after",ref:o});break;case"widget-top":this.addWidget(r,{mode:"split-top",ref:o});break;case"widget-left":this.addWidget(r,{mode:"split-left",ref:o});break;case"widget-right":this.addWidget(r,{mode:"split-right",ref:o});break;case"widget-bottom":this.addWidget(r,{mode:"split-bottom",ref:o});break;default:throw"unreachable"}e.dropAction=e.proposedAction,e.stopPropagation(),this.activateWidget(r)}_evtKeyDown(e){e.preventDefault(),e.stopPropagation(),27===e.keyCode&&(this._releaseMouse(),l.MessageLoop.postMessage(this,G.LayoutModified))}_evtPointerDown(e){if(0!==e.button)return;let t=this.layout,i=e.target,s=(0,o.find)(t.handles(),(e=>e.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 n=s.getBoundingClientRect(),a=e.clientX-n.left,r=e.clientY-n.top,h=window.getComputedStyle(s),d=m.Drag.overrideCursor(h.cursor,this._document);this._pressData={handle:s,deltaX:a,deltaY:r,override:d}}_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){0===e.button&&(e.preventDefault(),e.stopPropagation(),this._releaseMouse(),l.MessageLoop.postMessage(this,G.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 i,s,n,a,{zone:r,target:o}=G.findDropTarget(this,e,t,this._edges);if("invalid"===r)return this.overlay.hide(100),r;let h=d.ElementExt.boxSizing(this.node),l=this.node.getBoundingClientRect();switch(r){case"root-all":i=h.paddingTop,s=h.paddingLeft,n=h.paddingRight,a=h.paddingBottom;break;case"root-top":i=h.paddingTop,s=h.paddingLeft,n=h.paddingRight,a=l.height*G.GOLDEN_RATIO;break;case"root-left":i=h.paddingTop,s=h.paddingLeft,n=l.width*G.GOLDEN_RATIO,a=h.paddingBottom;break;case"root-right":i=h.paddingTop,s=l.width*G.GOLDEN_RATIO,n=h.paddingRight,a=h.paddingBottom;break;case"root-bottom":i=l.height*G.GOLDEN_RATIO,s=h.paddingLeft,n=h.paddingRight,a=h.paddingBottom;break;case"widget-all":i=o.top,s=o.left,n=o.right,a=o.bottom;break;case"widget-top":i=o.top,s=o.left,n=o.right,a=o.bottom+o.height/2;break;case"widget-left":i=o.top,s=o.left,n=o.right+o.width/2,a=o.bottom;break;case"widget-right":i=o.top,s=o.left+o.width/2,n=o.right,a=o.bottom;break;case"widget-bottom":i=o.top+o.height/2,s=o.left,n=o.right,a=o.bottom;break;case"widget-tab":{const e=o.tabBar.node.getBoundingClientRect().height;i=o.top,s=o.left,n=o.right,a=o.bottom+o.height-e;break}default:throw"unreachable"}return this.overlay.show({top:i,left:s,right:n,bottom:a}),r}_createTabBar(){let e=this._renderer.createTabBar(this._document);return G.isGeneratedTabBarProperty.set(e,!0),"single-document"===this._mode&&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(){l.MessageLoop.postMessage(this,G.LayoutModified)}_onCurrentChanged(e,t){let{previousTitle:i,currentTitle:s}=t;i&&i.owner.hide(),s&&s.owner.show(),(d.Platform.IS_EDGE||d.Platform.IS_IE)&&l.MessageLoop.flush(),l.MessageLoop.postMessage(this,G.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:n,clientY:a,offset:r}=t,o=new h.MimeData;o.setData("application/vnd.lumino.widget-factory",(()=>i.owner));let d=s.cloneNode(!0);r&&(d.style.top=`-${r.y}px`,d.style.left=`-${r.x}px`),this._drag=new m.Drag({document:this._document,mimeData:o,dragImage:d,proposedAction:"move",supportedActions:"move",source:this}),s.classList.add("lm-mod-hidden"),this._drag.start(n,a).then((()=>{this._drag=null,s.classList.remove("lm-mod-hidden")}))}}!function(e){e.Overlay=class{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(e){let t=this.node.style;t.top=`${e.top}px`,t.left=`${e.left}px`,t.right=`${e.right}px`,t.bottom=`${e.bottom}px`,clearTimeout(this._timer),this._timer=-1,this._hidden&&(this._hidden=!1,this.node.classList.remove("lm-mod-hidden"))}hide(e){if(!this._hidden)return e<=0?(clearTimeout(this._timer),this._timer=-1,this._hidden=!0,void this.node.classList.add("lm-mod-hidden")):void(-1===this._timer&&(this._timer=window.setTimeout((()=>{this._timer=-1,this._hidden=!0,this.node.classList.add("lm-mod-hidden")}),e)))}};class t{createTabBar(e){let t=new Y({document:e});return t.addClass("lm-DockPanel-tabBar"),t}createHandle(){let e=document.createElement("div");return e.className="lm-DockPanel-handle",e}}e.Renderer=t,e.defaultRenderer=new t}(ie||(ie={})),function(e){e.GOLDEN_RATIO=.618,e.DEFAULT_EDGES={top:12,right:40,bottom:40,left:40},e.LayoutModified=new l.ConflatableMessage("layout-modified"),e.isGeneratedTabBarProperty=new c.AttachedProperty({name:"isGeneratedTabBar",create:()=>!1}),e.createSingleDocumentConfig=function(e){if(e.isEmpty)return{main:null};let t=Array.from(e.widgets()),i=e.selectedWidgets().next().value,s=i?t.indexOf(i):-1;return{main:{type:"tab-area",widgets:t,currentIndex:s}}},e.findDropTarget=function(e,t,i,s){if(!d.ElementExt.hitTest(e.node,t,i))return{zone:"invalid",target:null};let n=e.layout;if(n.isEmpty)return{zone:"root-all",target:null};if("multiple-document"===e.mode){let n=e.node.getBoundingClientRect(),a=t-n.left+1,r=i-n.top+1,o=n.right-t,h=n.bottom-i;switch(Math.min(r,o,h,a)){case r:if(ru&&h>u&&o>m&&l>m)return{zone:"widget-all",target:a};switch(r/=u,o/=m,h/=u,l/=m,Math.min(r,o,h,l)){case r:c="widget-left";break;case o:c="widget-top";break;case h:c="widget-right";break;case l:c="widget-bottom";break;default:throw"unreachable"}return{zone:c,target:a}},e.getDropRef=function(e){return 0===e.titles.length?null:e.currentTitle?e.currentTitle.owner:e.titles[e.titles.length-1].owner}}(G||(G={}));class se{constructor(){this._counter=0,this._widgets=[],this._activeWidget=null,this._currentWidget=null,this._numbers=new Map,this._nodes=new Map,this._activeChanged=new u.Signal(this),this._currentChanged=new u.Signal(this)}dispose(){if(!(this._counter<0)){this._counter=-1,u.Signal.clearData(this);for(const e of this._widgets)e.node.removeEventListener("focus",this,!0),e.node.removeEventListener("blur",this,!0);this._activeWidget=null,this._currentWidget=null,this._nodes.clear(),this._numbers.clear(),this._widgets.length=0}}get currentChanged(){return this._currentChanged}get activeChanged(){return this._activeChanged}get isDisposed(){return this._counter<0}get currentWidget(){return this._currentWidget}get activeWidget(){return this._activeWidget}get widgets(){return this._widgets}focusNumber(e){let t=this._numbers.get(e);return void 0===t?-1:t}has(e){return this._numbers.has(e)}add(e){if(this._numbers.has(e))return;let t=e.node.contains(document.activeElement),i=t?this._counter++:-1;this._widgets.push(e),this._numbers.set(e,i),this._nodes.set(e.node,e),e.node.addEventListener("focus",this,!0),e.node.addEventListener("blur",this,!0),e.disposed.connect(this._onWidgetDisposed,this),t&&this._setWidgets(e,e)}remove(e){if(!this._numbers.has(e))return;if(e.disposed.disconnect(this._onWidgetDisposed,this),e.node.removeEventListener("focus",this,!0),e.node.removeEventListener("blur",this,!0),o.ArrayExt.removeFirstOf(this._widgets,e),this._nodes.delete(e.node),this._numbers.delete(e),this._currentWidget!==e)return;let t=this._widgets.filter((e=>-1!==this._numbers.get(e))),i=(0,o.max)(t,((e,t)=>this._numbers.get(e)-this._numbers.get(t)))||null;this._setWidgets(i,null)}handleEvent(e){switch(e.type){case"focus":this._evtFocus(e);break;case"blur":this._evtBlur(e)}}_setWidgets(e,t){let i=this._currentWidget;this._currentWidget=e;let s=this._activeWidget;this._activeWidget=t,i!==e&&this._currentChanged.emit({oldValue:i,newValue:e}),s!==t&&this._activeChanged.emit({oldValue:s,newValue:t})}_evtFocus(e){let t=this._nodes.get(e.currentTarget);t!==this._currentWidget&&this._numbers.set(t,this._counter++),this._setWidgets(t,t)}_evtBlur(e){let t=this._nodes.get(e.currentTarget),i=e.relatedTarget;i&&(t.node.contains(i)||(0,o.find)(this._widgets,(e=>e.node.contains(i))))||this._setWidgets(this._currentWidget,null)}_onWidgetDisposed(e){this.remove(e)}}class ne extends x{constructor(e={}){super(e),this._dirty=!1,this._rowSpacing=4,this._columnSpacing=4,this._items=[],this._rowStarts=[],this._columnStarts=[],this._rowSizers=[new b],this._columnSizers=[new b],this._box=null,void 0!==e.rowCount&&j.reallocSizers(this._rowSizers,e.rowCount),void 0!==e.columnCount&&j.reallocSizers(this._columnSizers,e.columnCount),void 0!==e.rowSpacing&&(this._rowSpacing=j.clampValue(e.rowSpacing)),void 0!==e.columnSpacing&&(this._columnSpacing=j.clampValue(e.columnSpacing))}dispose(){for(const 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&&(j.reallocSizers(this._rowSizers,e),this.parent&&this.parent.fit())}get columnCount(){return this._columnSizers.length}set columnCount(e){e!==this.columnCount&&(j.reallocSizers(this._columnSizers,e),this.parent&&this.parent.fit())}get rowSpacing(){return this._rowSpacing}set rowSpacing(e){e=j.clampValue(e),this._rowSpacing!==e&&(this._rowSpacing=e,this.parent&&this.parent.fit())}get columnSpacing(){return this._columnSpacing}set columnSpacing(e){e=j.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=j.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=j.clampValue(t),i.stretch!==t&&(i.stretch=t,this.parent&&this.parent.update()))}*[Symbol.iterator](){for(const e of this._items)yield e.widget}addWidget(e){-1===o.ArrayExt.findFirstIndex(this._items,(t=>t.widget===e))&&(this._items.push(new y(e)),this.parent&&this.attachWidget(e))}removeWidget(e){let t=o.ArrayExt.findFirstIndex(this._items,(t=>t.widget===e));if(-1===t)return;let i=o.ArrayExt.removeAt(this._items,t);this.parent&&this.detachWidget(e),i.dispose()}init(){super.init();for(const e of this)this.attachWidget(e)}attachWidget(e){this.parent.isAttached&&l.MessageLoop.sendMessage(e,M.Msg.BeforeAttach),this.parent.node.appendChild(e.node),this.parent.isAttached&&l.MessageLoop.sendMessage(e,M.Msg.AfterAttach),this.parent.fit()}detachWidget(e){this.parent.isAttached&&l.MessageLoop.sendMessage(e,M.Msg.BeforeDetach),this.parent.node.removeChild(e.node),this.parent.isAttached&&l.MessageLoop.sendMessage(e,M.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 e=0,t=this.rowCount;e!e.isHidden));for(let t=0,i=e.length;t({row:0,column:0,rowSpan:1,columnSpan:1}),changed:function(e){e.parent&&e.parent.layout instanceof ne&&e.parent.fit()}}),e.normalizeConfig=function(e){return{row:Math.max(0,Math.floor(e.row||0)),column:Math.max(0,Math.floor(e.column||0)),rowSpan:Math.max(1,Math.floor(e.rowSpan||0)),columnSpan:Math.max(1,Math.floor(e.columnSpan||0))}},e.clampValue=function(e){return Math.max(0,Math.floor(e))},e.rowSpanCmp=function(t,i){let s=e.cellConfigProperty.get(t.widget),n=e.cellConfigProperty.get(i.widget);return s.rowSpan-n.rowSpan},e.columnSpanCmp=function(t,i){let s=e.cellConfigProperty.get(t.widget),n=e.cellConfigProperty.get(i.widget);return s.columnSpan-n.columnSpan},e.reallocSizers=function(e,t){for(t=Math.max(1,Math.floor(t));e.lengtht&&(e.length=t)},e.distributeMin=function(e,t,i,s){if(i=s)return;let a=(s-n)/(i-t+1);for(let s=t;s<=i;++s)e[s].minSize+=a}}(j||(j={}));class ae extends M{constructor(e={}){super({node:J.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(M.Flag.DisallowLayout),this.renderer=e.renderer||ae.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&&0===this._menus[e].items.length&&(e=-1),this._activeIndex!==e&&(this._activeIndex=e,this.update())}get menus(){return this._menus}openActiveMenu(){-1!==this._activeIndex&&(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),n=Math.max(0,Math.min(e,this._menus.length));if(-1===s)return o.ArrayExt.insert(this._menus,n,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),void(i&&this.update());n===this._menus.length&&n--,s!==n&&(o.ArrayExt.move(this._menus,s,n),i&&this.update())}removeMenu(e,t=!0){this.removeMenuAt(this._menus.indexOf(e),t)}removeMenuAt(e,t=!0){this._closeChildMenu();let i=o.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(0!==this._menus.length){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()}}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,n=this._activeIndex,a=this._tabFocusIndex>=0&&this._tabFocusIndex-1?this._overflowIndex:i.length,o=0,h=!1;r=null!==this._overflowMenu?r-1:r;let d=new Array(r);for(let e=0;e{this._tabFocusIndex=e,this.activeIndex=e}}),o+=this._menuItemSizes[e],i[e].title.label===this._overflowMenuOptions.title&&(h=!0,r--);if(this._overflowMenuOptions.isVisible)if(this._overflowIndex>-1&&!h){if(null===this._overflowMenu){const e=null!==(t=this._overflowMenuOptions.title)&&void 0!==t?t:"...";this._overflowMenu=new $({commands:new g.CommandRegistry}),this._overflowMenu.title.label=e,this._overflowMenu.title.mnemonic=0,this.addMenu(this._overflowMenu,!1)}for(let e=i.length-2;e>=r;e--){const t=this.menus[e];t.title.mnemonic=0,this._overflowMenu.insertItem(0,{type:"submenu",submenu:t}),this.removeMenu(t,!1)}d[r]=s.renderItem({title:this._overflowMenu.title,active:r===n&&0!==i[r].items.length,tabbable:r===a,disabled:0===i[r].items.length,onfocus:()=>{this._tabFocusIndex=r,this.activeIndex=r}}),r++}else if(null!==this._overflowMenu){let e=this._overflowMenu.items,t=this.node.offsetWidth,n=this._overflowMenu.items.length;for(let h=0;hthis._menuItemSizes[n]){let t=e[0].submenu;this._overflowMenu.removeItemAt(0),this.insertMenu(r,t,!1),d[r]=s.renderItem({title:t.title,active:!1,tabbable:r===a,disabled:0===i[r].items.length,onfocus:()=>{this._tabFocusIndex=r,this.activeIndex=r}}),r++}}0===this._overflowMenu.items.length&&(this.removeMenu(this._overflowMenu,!1),d.pop(),this._overflowMenu=null,this._overflowIndex=-1)}p.VirtualDOM.render(d,this.contentNode),this._updateOverflowIndex()}_updateOverflowIndex(){if(!this._overflowMenuOptions.isVisible)return;const e=this.contentNode.childNodes;let t=this.node.offsetWidth,i=0,s=-1,n=e.length;if(0==this._menuItemSizes.length)for(let a=0;at&&-1===s&&(s=a)}else for(let e=0;et){s=e;break}this._overflowIndex=s}_evtKeyDown(e){let t=e.keyCode;if(9===t)return void(this.activeIndex=-1);if(e.preventDefault(),e.stopPropagation(),13===t||32===t||38===t||40===t){if(this.activeIndex=this._tabFocusIndex,this.activeIndex!==this._tabFocusIndex)return;return void this.openActiveMenu()}if(27===t)return this._closeChildMenu(),void this._focusItemAt(this.activeIndex);if(37===t||39===t){let e=37===t?-1:1,i=this._tabFocusIndex+e,s=this._menus.length;for(let t=0;td.ElementExt.hitTest(t,e.clientX,e.clientY)));if(-1!==t){if(0===e.button)if(this._childMenu)this._closeChildMenu(),this.activeIndex=t;else{e.preventDefault();const i=this._positionForMenu(t);$.saveWindowData(),this.activeIndex=t,this._openChildMenu(i)}}else this._closeChildMenu()}_evtMouseMove(e){let t=o.ArrayExt.findFirstIndex(this.contentNode.children,(t=>d.ElementExt.hitTest(t,e.clientX,e.clientY)));if(t===this._activeIndex)return;if(-1===t&&this._childMenu)return;const i=t>=0&&this._childMenu?this._positionForMenu(t):null;$.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){const t=this.contentNode.childNodes[e];t&&t.focus()}_openChildMenu(e={}){let t=this.activeMenu;if(!t)return void this._closeChildMenu();let i=this._childMenu;if(i===t)return;this._childMenu=t,i?i.close():document.addEventListener("mousedown",this,!0),this._tabFocusIndex=this.activeIndex,l.MessageLoop.sendMessage(this,M.Msg.UpdateRequest);let{left:s,top:n}=e;void 0!==s&&void 0!==n||({left:s,top:n}=this._positionForMenu(this._activeIndex)),i||this.addClass("lm-mod-active"),t.items.length>0&&t.open(s,n,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=0===i?s-1:i-1}this.openActiveMenu()}_onTitleChanged(){this.update()}}!function(e){class t{renderItem(e){let t=this.createItemClass(e),i=this.createItemDataset(e),s=this.createItemARIA(e);return p.h.li({className:t,dataset:i,...e.disabled?{}:{tabindex:e.tabbable?"0":"-1"},onfocus:e.onfocus,...s},this.renderIcon(e),this.renderLabel(e))}renderIcon(e){let t=this.createIconClass(e);return p.h.div({className:t},e.title.icon,e.title.iconLabel)}renderLabel(e){let t=this.formatLabel(e);return p.h.div({className:"lm-MenuBar-itemLabel"},t)}createItemClass(e){let t="lm-MenuBar-item";return e.title.className&&(t+=` ${e.title.className}`),e.active&&!e.disabled&&(t+=" lm-mod-active"),t}createItemDataset(e){return e.title.dataset}createItemARIA(e){return{role:"menuitem","aria-haspopup":"true","aria-disabled":e.disabled?"true":"false"}}createIconClass(e){let t="lm-MenuBar-itemIcon",i=e.title.iconClass;return i?`${t} ${i}`:t}formatLabel(e){let{label:t,mnemonic:i}=e.title;if(i<0||i>=t.length)return t;let s=t.slice(0,i),n=t.slice(i+1),a=t[i];return[s,p.h.span({className:"lm-MenuBar-itemMnemonic"},a),n]}}e.Renderer=t,e.defaultRenderer=new t}(ae||(ae={})),function(e){e.createNode=function(){let e=document.createElement("div"),t=document.createElement("ul");return t.className="lm-MenuBar-content",e.appendChild(t),t.setAttribute("role","menubar"),e},e.findMnemonic=function(e,t,i){let s=-1,n=-1,a=!1,r=t.toUpperCase();for(let t=0,o=e.length;t=0&&l{if(this._repeatTimer=-1,!this._pressData)return;let e=this._pressData.part;if("thumb"===e)return;this._repeatTimer=window.setTimeout(this._onRepeat,20);let t=this._pressData.mouseX,i=this._pressData.mouseY;if("decrement"!==e)if("increment"!==e){if("track"===e){if(!d.ElementExt.hitTest(this.trackNode,t,i))return;let e=this.thumbNode;if(d.ElementExt.hitTest(e,t,i))return;let s,n=e.getBoundingClientRect();return s="horizontal"===this._orientation?t1&&this.widgets.forEach((e=>{e.hiddenMode=this._hiddenMode})))}dispose(){for(const e of this._items)e.dispose();this._box=null,this._items.length=0,super.dispose()}attachWidget(e,t){this._hiddenMode===M.HiddenMode.Scale&&this._items.length>0?(1===this._items.length&&(this.widgets[0].hiddenMode=M.HiddenMode.Scale),t.hiddenMode=M.HiddenMode.Scale):t.hiddenMode=M.HiddenMode.Display,o.ArrayExt.insert(this._items,e,new y(t)),this.parent.isAttached&&l.MessageLoop.sendMessage(t,M.Msg.BeforeAttach),this.parent.node.appendChild(t.node),this.parent.isAttached&&l.MessageLoop.sendMessage(t,M.Msg.AfterAttach),this.parent.fit()}moveWidget(e,t,i){o.ArrayExt.move(this._items,e,t),this.parent.update()}detachWidget(e,t){let i=o.ArrayExt.removeAt(this._items,e);this.parent.isAttached&&l.MessageLoop.sendMessage(t,M.Msg.BeforeDetach),this.parent.node.removeChild(t.node),this.parent.isAttached&&l.MessageLoop.sendMessage(t,M.Msg.AfterDetach),i.widget.node.style.zIndex="",this._hiddenMode===M.HiddenMode.Scale&&(t.hiddenMode=M.HiddenMode.Display,1===this._items.length&&(this._items[0].widget.hiddenMode=M.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 i=0,s=this._items.length;i