dockview-angular 0.0.0-beta-0 → 4.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +56 -56
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/lib/dockview/dockview-angular.component.d.ts +49 -0
- package/dist/cjs/lib/dockview/dockview-angular.component.js +255 -0
- package/dist/cjs/lib/dockview/types.d.ts +27 -0
- package/dist/cjs/lib/dockview/types.js +8 -0
- package/dist/cjs/lib/dockview-angular.module.d.ts +2 -0
- package/dist/cjs/lib/dockview-angular.module.js +37 -0
- package/dist/cjs/lib/gridview/angular-gridview-panel.d.ts +9 -0
- package/dist/cjs/lib/gridview/angular-gridview-panel.js +21 -0
- package/dist/cjs/lib/gridview/gridview-angular.component.d.ts +28 -0
- package/dist/cjs/lib/gridview/gridview-angular.component.js +139 -0
- package/dist/cjs/lib/gridview/types.d.ts +12 -0
- package/dist/cjs/lib/gridview/types.js +6 -0
- package/dist/cjs/lib/paneview/angular-pane-part.d.ts +13 -0
- package/dist/cjs/lib/paneview/angular-pane-part.js +29 -0
- package/dist/cjs/lib/paneview/paneview-angular.component.d.ts +31 -0
- package/dist/cjs/lib/paneview/paneview-angular.component.js +165 -0
- package/dist/cjs/lib/paneview/types.d.ts +14 -0
- package/dist/cjs/lib/paneview/types.js +6 -0
- package/dist/cjs/lib/splitview/angular-splitview-panel.d.ts +9 -0
- package/dist/cjs/lib/splitview/angular-splitview-panel.js +21 -0
- package/dist/cjs/lib/splitview/splitview-angular.component.d.ts +28 -0
- package/dist/cjs/lib/splitview/splitview-angular.component.js +139 -0
- package/dist/cjs/lib/splitview/types.d.ts +12 -0
- package/dist/cjs/lib/splitview/types.js +6 -0
- package/dist/cjs/lib/utils/angular-renderer.d.ts +18 -0
- package/dist/cjs/lib/utils/angular-renderer.js +62 -0
- package/dist/cjs/lib/utils/component-factory.d.ts +20 -0
- package/dist/cjs/lib/utils/component-factory.js +102 -0
- package/dist/cjs/lib/utils/lifecycle-utils.d.ts +18 -0
- package/dist/cjs/lib/utils/lifecycle-utils.js +74 -0
- package/dist/cjs/public-api.d.ts +13 -0
- package/dist/cjs/public-api.js +32 -0
- package/dist/dockview-angular.amd.js +7147 -3385
- package/dist/dockview-angular.amd.js.map +1 -1
- package/dist/dockview-angular.amd.min.js +2 -2
- package/dist/dockview-angular.amd.min.js.map +1 -1
- package/dist/dockview-angular.amd.min.noStyle.js +2 -2
- package/dist/dockview-angular.amd.min.noStyle.js.map +1 -1
- package/dist/dockview-angular.amd.noStyle.js +7146 -3384
- package/dist/dockview-angular.amd.noStyle.js.map +1 -1
- package/dist/dockview-angular.cjs.js +7130 -3364
- package/dist/dockview-angular.cjs.js.map +1 -1
- package/dist/dockview-angular.esm.js +7114 -3368
- package/dist/dockview-angular.esm.js.map +1 -1
- package/dist/dockview-angular.esm.min.js +2 -2
- package/dist/dockview-angular.esm.min.js.map +1 -1
- package/dist/dockview-angular.js +7150 -3388
- package/dist/dockview-angular.js.map +1 -1
- package/dist/dockview-angular.min.js +2 -2
- package/dist/dockview-angular.min.js.map +1 -1
- package/dist/dockview-angular.min.noStyle.js +2 -2
- package/dist/dockview-angular.min.noStyle.js.map +1 -1
- package/dist/dockview-angular.noStyle.js +7149 -3387
- package/dist/dockview-angular.noStyle.js.map +1 -1
- package/dist/dockview.css +1229 -0
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/lib/dockview/dockview-angular.component.d.ts +49 -0
- package/dist/esm/lib/dockview/dockview-angular.component.js +252 -0
- package/dist/esm/lib/dockview/types.d.ts +27 -0
- package/dist/esm/lib/dockview/types.js +2 -0
- package/dist/esm/lib/dockview-angular.module.d.ts +2 -0
- package/dist/esm/lib/dockview-angular.module.js +34 -0
- package/dist/esm/lib/gridview/angular-gridview-panel.d.ts +9 -0
- package/dist/esm/lib/gridview/angular-gridview-panel.js +17 -0
- package/dist/esm/lib/gridview/gridview-angular.component.d.ts +28 -0
- package/dist/esm/lib/gridview/gridview-angular.component.js +136 -0
- package/dist/esm/lib/gridview/types.d.ts +12 -0
- package/dist/esm/lib/gridview/types.js +2 -0
- package/dist/esm/lib/paneview/angular-pane-part.d.ts +13 -0
- package/dist/esm/lib/paneview/angular-pane-part.js +25 -0
- package/dist/esm/lib/paneview/paneview-angular.component.d.ts +31 -0
- package/dist/esm/lib/paneview/paneview-angular.component.js +162 -0
- package/dist/esm/lib/paneview/types.d.ts +14 -0
- package/dist/esm/lib/paneview/types.js +2 -0
- package/dist/esm/lib/splitview/angular-splitview-panel.d.ts +9 -0
- package/dist/esm/lib/splitview/angular-splitview-panel.js +17 -0
- package/dist/esm/lib/splitview/splitview-angular.component.d.ts +28 -0
- package/dist/esm/lib/splitview/splitview-angular.component.js +136 -0
- package/dist/esm/lib/splitview/types.d.ts +12 -0
- package/dist/esm/lib/splitview/types.js +2 -0
- package/dist/esm/lib/utils/angular-renderer.d.ts +18 -0
- package/dist/esm/lib/utils/angular-renderer.js +58 -0
- package/dist/esm/lib/utils/component-factory.d.ts +20 -0
- package/dist/esm/lib/utils/component-factory.js +98 -0
- package/dist/esm/lib/utils/lifecycle-utils.d.ts +18 -0
- package/dist/esm/lib/utils/lifecycle-utils.js +68 -0
- package/dist/esm/public-api.d.ts +13 -0
- package/dist/esm/public-api.js +16 -0
- package/package.json +21 -12
- package/dist/cjs/utils.d.ts +0 -49
- package/dist/cjs/utils.js +0 -141
- package/dist/esm/utils.d.ts +0 -49
- package/dist/esm/utils.js +0 -119
- package/dist/styles/dockview.css +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dockview-angular.amd.js","sources":["../../../node_modules/style-inject/dist/style-inject.es.js","../../dockview-core/dist/esm/dnd/dataTransfer.js","../../dockview-core/dist/esm/events.js","../../dockview-core/dist/esm/lifecycle.js","../../dockview-core/dist/esm/panel/componentFactory.js","../../dockview-core/dist/esm/dom.js","../../dockview-core/dist/esm/array.js","../../dockview-core/dist/esm/math.js","../../dockview-core/dist/esm/splitview/viewItem.js","../../dockview-core/dist/esm/splitview/splitview.js","../../dockview-core/dist/esm/paneview/paneview.js","../../dockview-core/dist/esm/gridview/leafNode.js","../../dockview-core/dist/esm/gridview/branchNode.js","../../dockview-core/dist/esm/gridview/gridview.js","../../dockview-core/dist/esm/api/component.api.js","../../dockview-core/dist/esm/dnd/dnd.js","../../dockview-core/dist/esm/dnd/droptarget.js","../../dockview-core/dist/esm/dockview/components/panel/content.js","../../dockview-core/dist/esm/dnd/abstractDragHandler.js","../../dockview-core/dist/esm/dockview/components/tab/tab.js","../../dockview-core/dist/esm/dnd/ghost.js","../../dockview-core/dist/esm/dnd/groupDragHandler.js","../../dockview-core/dist/esm/dockview/components/titlebar/voidContainer.js","../../dockview-core/dist/esm/dockview/components/titlebar/tabsContainer.js","../../dockview-core/dist/esm/dockview/dockviewGroupPanelModel.js","../../dockview-core/dist/esm/resizable.js","../../dockview-core/dist/esm/gridview/baseComponentGridview.js","../../dockview-core/dist/esm/api/panelApi.js","../../dockview-core/dist/esm/api/splitviewPanelApi.js","../../dockview-core/dist/esm/api/paneviewPanelApi.js","../../dockview-core/dist/esm/gridview/basePanelView.js","../../dockview-core/dist/esm/paneview/paneviewPanel.js","../../dockview-core/dist/esm/paneview/draggablePaneviewPanel.js","../../dockview-core/dist/esm/api/gridviewPanelApi.js","../../dockview-core/dist/esm/gridview/gridviewPanel.js","../../dockview-core/dist/esm/api/dockviewGroupPanelApi.js","../../dockview-core/dist/esm/dockview/dockviewGroupPanel.js","../../dockview-core/dist/esm/dockview/options.js","../../dockview-core/dist/esm/api/dockviewPanelApi.js","../../dockview-core/dist/esm/dockview/dockviewPanel.js","../../dockview-core/dist/esm/svg.js","../../dockview-core/dist/esm/dockview/components/tab/defaultTab.js","../../dockview-core/dist/esm/dockview/dockviewPanelModel.js","../../dockview-core/dist/esm/dockview/deserializer.js","../../dockview-core/dist/esm/dockview/components/watermark/watermark.js","../../dockview-core/dist/esm/dnd/overlay.js","../../dockview-core/dist/esm/dockview/dockviewFloatingGroupPanel.js","../../dockview-core/dist/esm/constants.js","../../dockview-core/dist/esm/overlayRenderContainer.js","../../dockview-core/dist/esm/popoutWindow.js","../../dockview-core/dist/esm/dockview/dockviewComponent.js","../../dockview-core/dist/esm/gridview/gridviewComponent.js","../../dockview-core/dist/esm/splitview/splitviewComponent.js","../../dockview-core/dist/esm/paneview/defaultPaneviewHeader.js","../../dockview-core/dist/esm/paneview/paneviewComponent.js","../../dockview-core/dist/esm/splitview/splitviewPanel.js"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","class TransferObject {\n}\nexport class PanelTransfer extends TransferObject {\n constructor(viewId, groupId, panelId) {\n super();\n this.viewId = viewId;\n this.groupId = groupId;\n this.panelId = panelId;\n }\n}\nexport class PaneTransfer extends TransferObject {\n constructor(viewId, paneId) {\n super();\n this.viewId = viewId;\n this.paneId = paneId;\n }\n}\n/**\n * A singleton to store transfer data during drag & drop operations that are only valid within the application.\n */\nexport class LocalSelectionTransfer {\n constructor() {\n // protect against external instantiation\n }\n static getInstance() {\n return LocalSelectionTransfer.INSTANCE;\n }\n hasData(proto) {\n return proto && proto === this.proto;\n }\n clearData(proto) {\n if (this.hasData(proto)) {\n this.proto = undefined;\n this.data = undefined;\n }\n }\n getData(proto) {\n if (this.hasData(proto)) {\n return this.data;\n }\n return undefined;\n }\n setData(data, proto) {\n if (proto) {\n this.data = data;\n this.proto = proto;\n }\n }\n}\nLocalSelectionTransfer.INSTANCE = new LocalSelectionTransfer();\nexport function getPanelData() {\n const panelTransfer = LocalSelectionTransfer.getInstance();\n const isPanelEvent = panelTransfer.hasData(PanelTransfer.prototype);\n if (!isPanelEvent) {\n return undefined;\n }\n return panelTransfer.getData(PanelTransfer.prototype)[0];\n}\nexport function getPaneData() {\n const paneTransfer = LocalSelectionTransfer.getInstance();\n const isPanelEvent = paneTransfer.hasData(PaneTransfer.prototype);\n if (!isPanelEvent) {\n return undefined;\n }\n return paneTransfer.getData(PaneTransfer.prototype)[0];\n}\n","export var Event;\n(function (Event) {\n Event.any = (...children) => {\n return (listener) => {\n const disposables = children.map((child) => child(listener));\n return {\n dispose: () => {\n disposables.forEach((d) => {\n d.dispose();\n });\n },\n };\n };\n };\n})(Event || (Event = {}));\nexport class DockviewEvent {\n constructor() {\n this._defaultPrevented = false;\n }\n get defaultPrevented() {\n return this._defaultPrevented;\n }\n preventDefault() {\n this._defaultPrevented = true;\n }\n}\nclass LeakageMonitor {\n constructor() {\n this.events = new Map();\n }\n get size() {\n return this.events.size;\n }\n add(event, stacktrace) {\n this.events.set(event, stacktrace);\n }\n delete(event) {\n this.events.delete(event);\n }\n clear() {\n this.events.clear();\n }\n}\nclass Stacktrace {\n static create() {\n var _a;\n return new Stacktrace((_a = new Error().stack) !== null && _a !== void 0 ? _a : '');\n }\n constructor(value) {\n this.value = value;\n }\n print() {\n console.warn(this.value);\n }\n}\nclass Listener {\n constructor(callback, stacktrace) {\n this.callback = callback;\n this.stacktrace = stacktrace;\n }\n}\n// relatively simple event emitter taken from https://github.com/microsoft/vscode/blob/master/src/vs/base/common/event.ts\nexport class Emitter {\n static setLeakageMonitorEnabled(isEnabled) {\n if (isEnabled !== Emitter.ENABLE_TRACKING) {\n Emitter.MEMORY_LEAK_WATCHER.clear();\n }\n Emitter.ENABLE_TRACKING = isEnabled;\n }\n get value() {\n return this._last;\n }\n constructor(options) {\n this.options = options;\n this._listeners = [];\n this._disposed = false;\n }\n get event() {\n if (!this._event) {\n this._event = (callback) => {\n var _a;\n if (((_a = this.options) === null || _a === void 0 ? void 0 : _a.replay) && this._last !== undefined) {\n callback(this._last);\n }\n const listener = new Listener(callback, Emitter.ENABLE_TRACKING ? Stacktrace.create() : undefined);\n this._listeners.push(listener);\n return {\n dispose: () => {\n const index = this._listeners.indexOf(listener);\n if (index > -1) {\n this._listeners.splice(index, 1);\n }\n else if (Emitter.ENABLE_TRACKING) {\n // console.warn(\n // `Listener already disposed`,\n // Stacktrace.create().print()\n // );\n }\n },\n };\n };\n if (Emitter.ENABLE_TRACKING) {\n Emitter.MEMORY_LEAK_WATCHER.add(this._event, Stacktrace.create());\n }\n }\n return this._event;\n }\n fire(e) {\n this._last = e;\n for (const listener of this._listeners) {\n listener.callback(e);\n }\n }\n dispose() {\n if (!this._disposed) {\n this._disposed = true;\n if (this._listeners.length > 0) {\n if (Emitter.ENABLE_TRACKING) {\n queueMicrotask(() => {\n var _a;\n // don't check until stack of execution is completed to allow for out-of-order disposals within the same execution block\n for (const listener of this._listeners) {\n console.warn((_a = listener.stacktrace) === null || _a === void 0 ? void 0 : _a.print());\n }\n });\n }\n this._listeners = [];\n }\n if (Emitter.ENABLE_TRACKING && this._event) {\n Emitter.MEMORY_LEAK_WATCHER.delete(this._event);\n }\n }\n }\n}\nEmitter.ENABLE_TRACKING = false;\nEmitter.MEMORY_LEAK_WATCHER = new LeakageMonitor();\nexport function addDisposableWindowListener(element, type, listener, options) {\n element.addEventListener(type, listener, options);\n return {\n dispose: () => {\n element.removeEventListener(type, listener, options);\n },\n };\n}\nexport function addDisposableListener(element, type, listener, options) {\n element.addEventListener(type, listener, options);\n return {\n dispose: () => {\n element.removeEventListener(type, listener, options);\n },\n };\n}\nexport class TickDelayedEvent {\n constructor() {\n this._onFired = new Emitter();\n this.onEvent = this._onFired.event;\n }\n fire() {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n this.timer = setTimeout(() => {\n this._onFired.fire();\n clearTimeout(this.timer);\n });\n }\n dispose() {\n this._onFired.dispose();\n }\n}\n","export var Disposable;\n(function (Disposable) {\n Disposable.NONE = {\n dispose: () => {\n // noop\n },\n };\n function from(func) {\n return {\n dispose: () => {\n func();\n },\n };\n }\n Disposable.from = from;\n})(Disposable || (Disposable = {}));\nexport class CompositeDisposable {\n get isDisposed() {\n return this._isDisposed;\n }\n constructor(...args) {\n this._isDisposed = false;\n this._disposables = args;\n }\n addDisposables(...args) {\n args.forEach((arg) => this._disposables.push(arg));\n }\n dispose() {\n if (this._isDisposed) {\n return;\n }\n this._isDisposed = true;\n this._disposables.forEach((arg) => arg.dispose());\n this._disposables = [];\n }\n}\nexport class MutableDisposable {\n constructor() {\n this._disposable = Disposable.NONE;\n }\n set value(disposable) {\n if (this._disposable) {\n this._disposable.dispose();\n }\n this._disposable = disposable;\n }\n dispose() {\n if (this._disposable) {\n this._disposable.dispose();\n this._disposable = Disposable.NONE;\n }\n }\n}\n","export function createComponent(id, componentName, components = {}, frameworkComponents = {}, createFrameworkComponent, fallback) {\n const Component = typeof componentName === 'string'\n ? components[componentName]\n : undefined;\n const FrameworkComponent = typeof componentName === 'string'\n ? frameworkComponents[componentName]\n : undefined;\n if (Component && FrameworkComponent) {\n throw new Error(`Cannot create '${id}'. component '${componentName}' registered as both a component and frameworkComponent`);\n }\n if (FrameworkComponent) {\n if (!createFrameworkComponent) {\n throw new Error(`Cannot create '${id}' for framework component '${componentName}'. you must register a frameworkPanelWrapper to use framework components`);\n }\n return createFrameworkComponent.createComponent(id, componentName, FrameworkComponent);\n }\n if (!Component) {\n if (fallback) {\n return fallback();\n }\n throw new Error(`Cannot create '${id}', no component '${componentName}' provided`);\n }\n return new Component(id, componentName);\n}\n","import { Emitter, addDisposableListener, addDisposableWindowListener, } from './events';\nimport { CompositeDisposable } from './lifecycle';\nexport function watchElementResize(element, cb) {\n const observer = new ResizeObserver((entires) => {\n /**\n * Fast browser window resize produces Error: ResizeObserver loop limit exceeded.\n * The error isn't visible in browser console, doesn't affect functionality, but degrades performance.\n * See https://stackoverflow.com/questions/49384120/resizeobserver-loop-limit-exceeded/58701523#58701523\n */\n requestAnimationFrame(() => {\n const firstEntry = entires[0];\n cb(firstEntry);\n });\n });\n observer.observe(element);\n return {\n dispose: () => {\n observer.unobserve(element);\n observer.disconnect();\n },\n };\n}\nexport const removeClasses = (element, ...classes) => {\n for (const classname of classes) {\n if (element.classList.contains(classname)) {\n element.classList.remove(classname);\n }\n }\n};\nexport const addClasses = (element, ...classes) => {\n for (const classname of classes) {\n if (!element.classList.contains(classname)) {\n element.classList.add(classname);\n }\n }\n};\nexport const toggleClass = (element, className, isToggled) => {\n const hasClass = element.classList.contains(className);\n if (isToggled && !hasClass) {\n element.classList.add(className);\n }\n if (!isToggled && hasClass) {\n element.classList.remove(className);\n }\n};\nexport function isAncestor(testChild, testAncestor) {\n while (testChild) {\n if (testChild === testAncestor) {\n return true;\n }\n testChild = testChild.parentNode;\n }\n return false;\n}\nexport function getElementsByTagName(tag) {\n return Array.prototype.slice.call(document.getElementsByTagName(tag), 0);\n}\nexport function trackFocus(element) {\n return new FocusTracker(element);\n}\n/**\n * Track focus on an element. Ensure tabIndex is set when an HTMLElement is not focusable by default\n */\nclass FocusTracker extends CompositeDisposable {\n constructor(element) {\n super();\n this._onDidFocus = new Emitter();\n this.onDidFocus = this._onDidFocus.event;\n this._onDidBlur = new Emitter();\n this.onDidBlur = this._onDidBlur.event;\n this.addDisposables(this._onDidFocus, this._onDidBlur);\n let hasFocus = isAncestor(document.activeElement, element);\n let loosingFocus = false;\n const onFocus = () => {\n loosingFocus = false;\n if (!hasFocus) {\n hasFocus = true;\n this._onDidFocus.fire();\n }\n };\n const onBlur = () => {\n if (hasFocus) {\n loosingFocus = true;\n window.setTimeout(() => {\n if (loosingFocus) {\n loosingFocus = false;\n hasFocus = false;\n this._onDidBlur.fire();\n }\n }, 0);\n }\n };\n this._refreshStateHandler = () => {\n const currentNodeHasFocus = isAncestor(document.activeElement, element);\n if (currentNodeHasFocus !== hasFocus) {\n if (hasFocus) {\n onBlur();\n }\n else {\n onFocus();\n }\n }\n };\n if (element instanceof HTMLElement) {\n this.addDisposables(addDisposableListener(element, 'focus', onFocus, true));\n this.addDisposables(addDisposableListener(element, 'blur', onBlur, true));\n }\n else {\n this.addDisposables(addDisposableWindowListener(element, 'focus', onFocus, true));\n this.addDisposables(addDisposableWindowListener(element, 'blur', onBlur, true));\n }\n }\n refreshState() {\n this._refreshStateHandler();\n }\n}\n// quasi: apparently, but not really; seemingly\nconst QUASI_PREVENT_DEFAULT_KEY = 'dv-quasiPreventDefault';\n// mark an event directly for other listeners to check\nexport function quasiPreventDefault(event) {\n event[QUASI_PREVENT_DEFAULT_KEY] = true;\n}\n// check if this event has been marked\nexport function quasiDefaultPrevented(event) {\n return event[QUASI_PREVENT_DEFAULT_KEY];\n}\nexport function addStyles(document, styleSheetList) {\n const styleSheets = Array.from(styleSheetList);\n for (const styleSheet of styleSheets) {\n if (styleSheet.href) {\n const link = document.createElement('link');\n link.href = styleSheet.href;\n link.type = styleSheet.type;\n link.rel = 'stylesheet';\n document.head.appendChild(link);\n }\n let cssTexts = [];\n try {\n if (styleSheet.cssRules) {\n cssTexts = Array.from(styleSheet.cssRules).map((rule) => rule.cssText);\n }\n }\n catch (err) {\n // security errors (lack of permissions), ignore\n }\n for (const rule of cssTexts) {\n const style = document.createElement('style');\n style.appendChild(document.createTextNode(rule));\n document.head.appendChild(style);\n }\n }\n}\nexport function getDomNodePagePosition(domNode) {\n const { left, top, width, height } = domNode.getBoundingClientRect();\n return {\n left: left + window.scrollX,\n top: top + window.scrollY,\n width: width,\n height: height,\n };\n}\n/**\n * Check whether an element is in the DOM (including the Shadow DOM)\n * @see https://terodox.tech/how-to-tell-if-an-element-is-in-the-dom-including-the-shadow-dom/\n */\nexport function isInDocument(element) {\n let currentElement = element;\n while (currentElement === null || currentElement === void 0 ? void 0 : currentElement.parentNode) {\n if (currentElement.parentNode === document) {\n return true;\n }\n else if (currentElement.parentNode instanceof DocumentFragment) {\n // handle shadow DOMs\n currentElement = currentElement.parentNode.host;\n }\n else {\n currentElement = currentElement.parentNode;\n }\n }\n return false;\n}\n","export function tail(arr) {\n if (arr.length === 0) {\n throw new Error('Invalid tail call');\n }\n return [arr.slice(0, arr.length - 1), arr[arr.length - 1]];\n}\nexport function last(arr) {\n return arr.length > 0 ? arr[arr.length - 1] : undefined;\n}\nexport function sequenceEquals(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n for (let i = 0; i < arr1.length; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n return true;\n}\n/**\n * Pushes an element to the start of the array, if found.\n */\nexport function pushToStart(arr, value) {\n const index = arr.indexOf(value);\n if (index > -1) {\n arr.splice(index, 1);\n arr.unshift(value);\n }\n}\n/**\n * Pushes an element to the end of the array, if found.\n */\nexport function pushToEnd(arr, value) {\n const index = arr.indexOf(value);\n if (index > -1) {\n arr.splice(index, 1);\n arr.push(value);\n }\n}\nexport function firstIndex(array, fn) {\n for (let i = 0; i < array.length; i++) {\n const element = array[i];\n if (fn(element)) {\n return i;\n }\n }\n return -1;\n}\nexport function remove(array, value) {\n const index = array.findIndex((t) => t === value);\n if (index > -1) {\n array.splice(index, 1);\n return true;\n }\n return false;\n}\n","export const clamp = (value, min, max) => {\n if (min > max) {\n throw new Error(`${min} > ${max} is an invalid condition`);\n }\n return Math.min(max, Math.max(value, min));\n};\nexport const sequentialNumberGenerator = () => {\n let value = 1;\n return { next: () => (value++).toString() };\n};\nexport const range = (from, to) => {\n const result = [];\n if (typeof to !== 'number') {\n to = from;\n from = 0;\n }\n if (from <= to) {\n for (let i = from; i < to; i++) {\n result.push(i);\n }\n }\n else {\n for (let i = from; i > to; i--) {\n result.push(i);\n }\n }\n return result;\n};\n","import { clamp } from '../math';\nexport class ViewItem {\n set size(size) {\n this._size = size;\n }\n get size() {\n return this._size;\n }\n get cachedVisibleSize() {\n return this._cachedVisibleSize;\n }\n get visible() {\n return typeof this._cachedVisibleSize === 'undefined';\n }\n get minimumSize() {\n return this.visible ? this.view.minimumSize : 0;\n }\n get viewMinimumSize() {\n return this.view.minimumSize;\n }\n get maximumSize() {\n return this.visible ? this.view.maximumSize : 0;\n }\n get viewMaximumSize() {\n return this.view.maximumSize;\n }\n get priority() {\n return this.view.priority;\n }\n get snap() {\n return !!this.view.snap;\n }\n set enabled(enabled) {\n this.container.style.pointerEvents = enabled ? '' : 'none';\n }\n constructor(container, view, size, disposable) {\n this.container = container;\n this.view = view;\n this.disposable = disposable;\n this._cachedVisibleSize = undefined;\n if (typeof size === 'number') {\n this._size = size;\n this._cachedVisibleSize = undefined;\n container.classList.add('visible');\n }\n else {\n this._size = 0;\n this._cachedVisibleSize = size.cachedVisibleSize;\n }\n }\n setVisible(visible, size) {\n var _a;\n if (visible === this.visible) {\n return;\n }\n if (visible) {\n this.size = clamp((_a = this._cachedVisibleSize) !== null && _a !== void 0 ? _a : 0, this.viewMinimumSize, this.viewMaximumSize);\n this._cachedVisibleSize = undefined;\n }\n else {\n this._cachedVisibleSize =\n typeof size === 'number' ? size : this.size;\n this.size = 0;\n }\n this.container.classList.toggle('visible', visible);\n if (this.view.setVisible) {\n this.view.setVisible(visible);\n }\n }\n dispose() {\n this.disposable.dispose();\n return this.view;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Accreditation: This file is largly based upon the MIT licenced VSCode sourcecode found at:\n * https://github.com/microsoft/vscode/tree/main/src/vs/base/browser/ui/splitview\n *--------------------------------------------------------------------------------------------*/\nimport { removeClasses, addClasses, toggleClass, getElementsByTagName, } from '../dom';\nimport { Emitter } from '../events';\nimport { pushToStart, pushToEnd, firstIndex } from '../array';\nimport { range, clamp } from '../math';\nimport { ViewItem } from './viewItem';\nexport var Orientation;\n(function (Orientation) {\n Orientation[\"HORIZONTAL\"] = \"HORIZONTAL\";\n Orientation[\"VERTICAL\"] = \"VERTICAL\";\n})(Orientation || (Orientation = {}));\nexport var SashState;\n(function (SashState) {\n SashState[SashState[\"MAXIMUM\"] = 0] = \"MAXIMUM\";\n SashState[SashState[\"MINIMUM\"] = 1] = \"MINIMUM\";\n SashState[SashState[\"DISABLED\"] = 2] = \"DISABLED\";\n SashState[SashState[\"ENABLED\"] = 3] = \"ENABLED\";\n})(SashState || (SashState = {}));\nexport var LayoutPriority;\n(function (LayoutPriority) {\n LayoutPriority[\"Low\"] = \"low\";\n LayoutPriority[\"High\"] = \"high\";\n LayoutPriority[\"Normal\"] = \"normal\";\n})(LayoutPriority || (LayoutPriority = {}));\nexport var Sizing;\n(function (Sizing) {\n Sizing.Distribute = { type: 'distribute' };\n function Split(index) {\n return { type: 'split', index };\n }\n Sizing.Split = Split;\n function Invisible(cachedVisibleSize) {\n return { type: 'invisible', cachedVisibleSize };\n }\n Sizing.Invisible = Invisible;\n})(Sizing || (Sizing = {}));\nexport class Splitview {\n get contentSize() {\n return this._contentSize;\n }\n get size() {\n return this._size;\n }\n set size(value) {\n this._size = value;\n }\n get orthogonalSize() {\n return this._orthogonalSize;\n }\n set orthogonalSize(value) {\n this._orthogonalSize = value;\n }\n get length() {\n return this.viewItems.length;\n }\n get proportions() {\n return this._proportions ? [...this._proportions] : undefined;\n }\n get orientation() {\n return this._orientation;\n }\n set orientation(value) {\n this._orientation = value;\n const tmp = this.size;\n this.size = this.orthogonalSize;\n this.orthogonalSize = tmp;\n removeClasses(this.element, 'horizontal', 'vertical');\n this.element.classList.add(this.orientation == Orientation.HORIZONTAL\n ? 'horizontal'\n : 'vertical');\n }\n get minimumSize() {\n return this.viewItems.reduce((r, item) => r + item.minimumSize, 0);\n }\n get maximumSize() {\n return this.length === 0\n ? Number.POSITIVE_INFINITY\n : this.viewItems.reduce((r, item) => r + item.maximumSize, 0);\n }\n get startSnappingEnabled() {\n return this._startSnappingEnabled;\n }\n set startSnappingEnabled(startSnappingEnabled) {\n if (this._startSnappingEnabled === startSnappingEnabled) {\n return;\n }\n this._startSnappingEnabled = startSnappingEnabled;\n this.updateSashEnablement();\n }\n get endSnappingEnabled() {\n return this._endSnappingEnabled;\n }\n set endSnappingEnabled(endSnappingEnabled) {\n if (this._endSnappingEnabled === endSnappingEnabled) {\n return;\n }\n this._endSnappingEnabled = endSnappingEnabled;\n this.updateSashEnablement();\n }\n get disabled() {\n return this._disabled;\n }\n set disabled(value) {\n this._disabled = value;\n toggleClass(this.element, 'dv-splitview-disabled', value);\n }\n constructor(container, options) {\n this.container = container;\n this.viewItems = [];\n this.sashes = [];\n this._size = 0;\n this._orthogonalSize = 0;\n this._contentSize = 0;\n this._proportions = undefined;\n this._startSnappingEnabled = true;\n this._endSnappingEnabled = true;\n this._disabled = false;\n this._onDidSashEnd = new Emitter();\n this.onDidSashEnd = this._onDidSashEnd.event;\n this._onDidAddView = new Emitter();\n this.onDidAddView = this._onDidAddView.event;\n this._onDidRemoveView = new Emitter();\n this.onDidRemoveView = this._onDidRemoveView.event;\n this.resize = (index, delta, sizes = this.viewItems.map((x) => x.size), lowPriorityIndexes, highPriorityIndexes, overloadMinDelta = Number.NEGATIVE_INFINITY, overloadMaxDelta = Number.POSITIVE_INFINITY, snapBefore, snapAfter) => {\n if (index < 0 || index > this.viewItems.length) {\n return 0;\n }\n const upIndexes = range(index, -1);\n const downIndexes = range(index + 1, this.viewItems.length);\n //\n if (highPriorityIndexes) {\n for (const i of highPriorityIndexes) {\n pushToStart(upIndexes, i);\n pushToStart(downIndexes, i);\n }\n }\n if (lowPriorityIndexes) {\n for (const i of lowPriorityIndexes) {\n pushToEnd(upIndexes, i);\n pushToEnd(downIndexes, i);\n }\n }\n //\n const upItems = upIndexes.map((i) => this.viewItems[i]);\n const upSizes = upIndexes.map((i) => sizes[i]);\n //\n const downItems = downIndexes.map((i) => this.viewItems[i]);\n const downSizes = downIndexes.map((i) => sizes[i]);\n //\n const minDeltaUp = upIndexes.reduce((_, i) => _ + this.viewItems[i].minimumSize - sizes[i], 0);\n const maxDeltaUp = upIndexes.reduce((_, i) => _ + this.viewItems[i].maximumSize - sizes[i], 0);\n //\n const maxDeltaDown = downIndexes.length === 0\n ? Number.POSITIVE_INFINITY\n : downIndexes.reduce((_, i) => _ + sizes[i] - this.viewItems[i].minimumSize, 0);\n const minDeltaDown = downIndexes.length === 0\n ? Number.NEGATIVE_INFINITY\n : downIndexes.reduce((_, i) => _ + sizes[i] - this.viewItems[i].maximumSize, 0);\n //\n const minDelta = Math.max(minDeltaUp, minDeltaDown);\n const maxDelta = Math.min(maxDeltaDown, maxDeltaUp);\n //\n let snapped = false;\n if (snapBefore) {\n const snapView = this.viewItems[snapBefore.index];\n const visible = delta >= snapBefore.limitDelta;\n snapped = visible !== snapView.visible;\n snapView.setVisible(visible, snapBefore.size);\n }\n if (!snapped && snapAfter) {\n const snapView = this.viewItems[snapAfter.index];\n const visible = delta < snapAfter.limitDelta;\n snapped = visible !== snapView.visible;\n snapView.setVisible(visible, snapAfter.size);\n }\n if (snapped) {\n return this.resize(index, delta, sizes, lowPriorityIndexes, highPriorityIndexes, overloadMinDelta, overloadMaxDelta);\n }\n //\n const tentativeDelta = clamp(delta, minDelta, maxDelta);\n let actualDelta = 0;\n //\n let deltaUp = tentativeDelta;\n for (let i = 0; i < upItems.length; i++) {\n const item = upItems[i];\n const size = clamp(upSizes[i] + deltaUp, item.minimumSize, item.maximumSize);\n const viewDelta = size - upSizes[i];\n actualDelta += viewDelta;\n deltaUp -= viewDelta;\n item.size = size;\n }\n //\n let deltaDown = actualDelta;\n for (let i = 0; i < downItems.length; i++) {\n const item = downItems[i];\n const size = clamp(downSizes[i] - deltaDown, item.minimumSize, item.maximumSize);\n const viewDelta = size - downSizes[i];\n deltaDown += viewDelta;\n item.size = size;\n }\n //\n return delta;\n };\n this._orientation = options.orientation;\n this.element = this.createContainer();\n this.proportionalLayout =\n options.proportionalLayout === undefined\n ? true\n : !!options.proportionalLayout;\n this.viewContainer = this.createViewContainer();\n this.sashContainer = this.createSashContainer();\n this.element.appendChild(this.sashContainer);\n this.element.appendChild(this.viewContainer);\n this.container.appendChild(this.element);\n this.style(options.styles);\n // We have an existing set of view, add them now\n if (options.descriptor) {\n this._size = options.descriptor.size;\n options.descriptor.views.forEach((viewDescriptor, index) => {\n const sizing = viewDescriptor.visible === undefined ||\n viewDescriptor.visible\n ? viewDescriptor.size\n : {\n type: 'invisible',\n cachedVisibleSize: viewDescriptor.size,\n };\n const view = viewDescriptor.view;\n this.addView(view, sizing, index, true\n // true skip layout\n );\n });\n // Initialize content size and proportions for first layout\n this._contentSize = this.viewItems.reduce((r, i) => r + i.size, 0);\n this.saveProportions();\n }\n }\n style(styles) {\n if ((styles === null || styles === void 0 ? void 0 : styles.separatorBorder) === 'transparent') {\n removeClasses(this.element, 'separator-border');\n this.element.style.removeProperty('--dv-separator-border');\n }\n else {\n addClasses(this.element, 'separator-border');\n if (styles === null || styles === void 0 ? void 0 : styles.separatorBorder) {\n this.element.style.setProperty('--dv-separator-border', styles.separatorBorder);\n }\n }\n }\n isViewVisible(index) {\n if (index < 0 || index >= this.viewItems.length) {\n throw new Error('Index out of bounds');\n }\n const viewItem = this.viewItems[index];\n return viewItem.visible;\n }\n setViewVisible(index, visible) {\n if (index < 0 || index >= this.viewItems.length) {\n throw new Error('Index out of bounds');\n }\n toggleClass(this.container, 'visible', visible);\n const viewItem = this.viewItems[index];\n toggleClass(this.container, 'visible', visible);\n viewItem.setVisible(visible, viewItem.size);\n this.distributeEmptySpace(index);\n this.layoutViews();\n this.saveProportions();\n }\n getViewSize(index) {\n if (index < 0 || index >= this.viewItems.length) {\n return -1;\n }\n return this.viewItems[index].size;\n }\n resizeView(index, size) {\n if (index < 0 || index >= this.viewItems.length) {\n return;\n }\n const indexes = range(this.viewItems.length).filter((i) => i !== index);\n const lowPriorityIndexes = [\n ...indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.Low),\n index,\n ];\n const highPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.High);\n const item = this.viewItems[index];\n size = Math.round(size);\n size = clamp(size, item.minimumSize, Math.min(item.maximumSize, this._size));\n item.size = size;\n this.relayout(lowPriorityIndexes, highPriorityIndexes);\n }\n getViews() {\n return this.viewItems.map((x) => x.view);\n }\n onDidChange(item, size) {\n const index = this.viewItems.indexOf(item);\n if (index < 0 || index >= this.viewItems.length) {\n return;\n }\n size = typeof size === 'number' ? size : item.size;\n size = clamp(size, item.minimumSize, item.maximumSize);\n item.size = size;\n const indexes = range(this.viewItems.length).filter((i) => i !== index);\n const lowPriorityIndexes = [\n ...indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.Low),\n index,\n ];\n const highPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.High);\n /**\n * add this view we are changing to the low-index list since we have determined the size\n * here and don't want it changed\n */\n this.relayout([...lowPriorityIndexes, index], highPriorityIndexes);\n }\n addView(view, size = { type: 'distribute' }, index = this.viewItems.length, skipLayout) {\n const container = document.createElement('div');\n container.className = 'view';\n container.appendChild(view.element);\n let viewSize;\n if (typeof size === 'number') {\n viewSize = size;\n }\n else if (size.type === 'split') {\n viewSize = this.getViewSize(size.index) / 2;\n }\n else if (size.type === 'invisible') {\n viewSize = { cachedVisibleSize: size.cachedVisibleSize };\n }\n else {\n viewSize = view.minimumSize;\n }\n const disposable = view.onDidChange((newSize) => this.onDidChange(viewItem, newSize.size));\n const viewItem = new ViewItem(container, view, viewSize, {\n dispose: () => {\n disposable.dispose();\n this.viewContainer.removeChild(container);\n },\n });\n if (index === this.viewItems.length) {\n this.viewContainer.appendChild(container);\n }\n else {\n this.viewContainer.insertBefore(container, this.viewContainer.children.item(index));\n }\n this.viewItems.splice(index, 0, viewItem);\n if (this.viewItems.length > 1) {\n //add sash\n const sash = document.createElement('div');\n sash.className = 'sash';\n const onPointerStart = (event) => {\n for (const item of this.viewItems) {\n item.enabled = false;\n }\n const iframes = [\n ...getElementsByTagName('iframe'),\n ...getElementsByTagName('webview'),\n ];\n for (const iframe of iframes) {\n iframe.style.pointerEvents = 'none';\n }\n const start = this._orientation === Orientation.HORIZONTAL\n ? event.clientX\n : event.clientY;\n const sashIndex = firstIndex(this.sashes, (s) => s.container === sash);\n //\n const sizes = this.viewItems.map((x) => x.size);\n //\n let snapBefore;\n let snapAfter;\n const upIndexes = range(sashIndex, -1);\n const downIndexes = range(sashIndex + 1, this.viewItems.length);\n const minDeltaUp = upIndexes.reduce((r, i) => r + (this.viewItems[i].minimumSize - sizes[i]), 0);\n const maxDeltaUp = upIndexes.reduce((r, i) => r + (this.viewItems[i].viewMaximumSize - sizes[i]), 0);\n const maxDeltaDown = downIndexes.length === 0\n ? Number.POSITIVE_INFINITY\n : downIndexes.reduce((r, i) => r +\n (sizes[i] - this.viewItems[i].minimumSize), 0);\n const minDeltaDown = downIndexes.length === 0\n ? Number.NEGATIVE_INFINITY\n : downIndexes.reduce((r, i) => r +\n (sizes[i] -\n this.viewItems[i].viewMaximumSize), 0);\n const minDelta = Math.max(minDeltaUp, minDeltaDown);\n const maxDelta = Math.min(maxDeltaDown, maxDeltaUp);\n const snapBeforeIndex = this.findFirstSnapIndex(upIndexes);\n const snapAfterIndex = this.findFirstSnapIndex(downIndexes);\n if (typeof snapBeforeIndex === 'number') {\n const snappedViewItem = this.viewItems[snapBeforeIndex];\n const halfSize = Math.floor(snappedViewItem.viewMinimumSize / 2);\n snapBefore = {\n index: snapBeforeIndex,\n limitDelta: snappedViewItem.visible\n ? minDelta - halfSize\n : minDelta + halfSize,\n size: snappedViewItem.size,\n };\n }\n if (typeof snapAfterIndex === 'number') {\n const snappedViewItem = this.viewItems[snapAfterIndex];\n const halfSize = Math.floor(snappedViewItem.viewMinimumSize / 2);\n snapAfter = {\n index: snapAfterIndex,\n limitDelta: snappedViewItem.visible\n ? maxDelta + halfSize\n : maxDelta - halfSize,\n size: snappedViewItem.size,\n };\n }\n const onPointerMove = (event) => {\n const current = this._orientation === Orientation.HORIZONTAL\n ? event.clientX\n : event.clientY;\n const delta = current - start;\n this.resize(sashIndex, delta, sizes, undefined, undefined, minDelta, maxDelta, snapBefore, snapAfter);\n this.distributeEmptySpace();\n this.layoutViews();\n };\n const end = () => {\n for (const item of this.viewItems) {\n item.enabled = true;\n }\n for (const iframe of iframes) {\n iframe.style.pointerEvents = 'auto';\n }\n this.saveProportions();\n document.removeEventListener('pointermove', onPointerMove);\n document.removeEventListener('pointerup', end);\n document.removeEventListener('pointercancel', end);\n this._onDidSashEnd.fire(undefined);\n };\n document.addEventListener('pointermove', onPointerMove);\n document.addEventListener('pointerup', end);\n document.addEventListener('pointercancel', end);\n };\n sash.addEventListener('pointerdown', onPointerStart);\n const sashItem = {\n container: sash,\n disposable: () => {\n sash.removeEventListener('pointerdown', onPointerStart);\n this.sashContainer.removeChild(sash);\n },\n };\n this.sashContainer.appendChild(sash);\n this.sashes.push(sashItem);\n }\n if (!skipLayout) {\n this.relayout([index]);\n }\n if (!skipLayout &&\n typeof size !== 'number' &&\n size.type === 'distribute') {\n this.distributeViewSizes();\n }\n this._onDidAddView.fire(view);\n }\n distributeViewSizes() {\n const flexibleViewItems = [];\n let flexibleSize = 0;\n for (const item of this.viewItems) {\n if (item.maximumSize - item.minimumSize > 0) {\n flexibleViewItems.push(item);\n flexibleSize += item.size;\n }\n }\n const size = Math.floor(flexibleSize / flexibleViewItems.length);\n for (const item of flexibleViewItems) {\n item.size = clamp(size, item.minimumSize, item.maximumSize);\n }\n const indexes = range(this.viewItems.length);\n const lowPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.Low);\n const highPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.High);\n this.relayout(lowPriorityIndexes, highPriorityIndexes);\n }\n removeView(index, sizing, skipLayout = false) {\n // Remove view\n const viewItem = this.viewItems.splice(index, 1)[0];\n viewItem.dispose();\n // Remove sash\n if (this.viewItems.length >= 1) {\n const sashIndex = Math.max(index - 1, 0);\n const sashItem = this.sashes.splice(sashIndex, 1)[0];\n sashItem.disposable();\n }\n if (!skipLayout) {\n this.relayout();\n }\n if (sizing && sizing.type === 'distribute') {\n this.distributeViewSizes();\n }\n this._onDidRemoveView.fire(viewItem.view);\n return viewItem.view;\n }\n getViewCachedVisibleSize(index) {\n if (index < 0 || index >= this.viewItems.length) {\n throw new Error('Index out of bounds');\n }\n const viewItem = this.viewItems[index];\n return viewItem.cachedVisibleSize;\n }\n moveView(from, to) {\n const cachedVisibleSize = this.getViewCachedVisibleSize(from);\n const sizing = typeof cachedVisibleSize === 'undefined'\n ? this.getViewSize(from)\n : Sizing.Invisible(cachedVisibleSize);\n const view = this.removeView(from, undefined, true);\n this.addView(view, sizing, to);\n }\n layout(size, orthogonalSize) {\n const previousSize = Math.max(this.size, this._contentSize);\n this.size = size;\n this.orthogonalSize = orthogonalSize;\n if (!this.proportions) {\n const indexes = range(this.viewItems.length);\n const lowPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.Low);\n const highPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.High);\n this.resize(this.viewItems.length - 1, size - previousSize, undefined, lowPriorityIndexes, highPriorityIndexes);\n }\n else {\n let total = 0;\n for (let i = 0; i < this.viewItems.length; i++) {\n const item = this.viewItems[i];\n const proportion = this.proportions[i];\n if (typeof proportion === 'number') {\n total += proportion;\n }\n else {\n size -= item.size;\n }\n }\n for (let i = 0; i < this.viewItems.length; i++) {\n const item = this.viewItems[i];\n const proportion = this.proportions[i];\n if (typeof proportion === 'number' && total > 0) {\n item.size = clamp(Math.round((proportion * size) / total), item.minimumSize, item.maximumSize);\n }\n }\n }\n this.distributeEmptySpace();\n this.layoutViews();\n }\n relayout(lowPriorityIndexes, highPriorityIndexes) {\n const contentSize = this.viewItems.reduce((r, i) => r + i.size, 0);\n this.resize(this.viewItems.length - 1, this._size - contentSize, undefined, lowPriorityIndexes, highPriorityIndexes);\n this.distributeEmptySpace();\n this.layoutViews();\n this.saveProportions();\n }\n distributeEmptySpace(lowPriorityIndex) {\n const contentSize = this.viewItems.reduce((r, i) => r + i.size, 0);\n let emptyDelta = this.size - contentSize;\n const indexes = range(this.viewItems.length - 1, -1);\n const lowPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.Low);\n const highPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.High);\n for (const index of highPriorityIndexes) {\n pushToStart(indexes, index);\n }\n for (const index of lowPriorityIndexes) {\n pushToEnd(indexes, index);\n }\n if (typeof lowPriorityIndex === 'number') {\n pushToEnd(indexes, lowPriorityIndex);\n }\n for (let i = 0; emptyDelta !== 0 && i < indexes.length; i++) {\n const item = this.viewItems[indexes[i]];\n const size = clamp(item.size + emptyDelta, item.minimumSize, item.maximumSize);\n const viewDelta = size - item.size;\n emptyDelta -= viewDelta;\n item.size = size;\n }\n }\n saveProportions() {\n if (this.proportionalLayout && this._contentSize > 0) {\n this._proportions = this.viewItems.map((i) => i.visible ? i.size / this._contentSize : undefined);\n }\n }\n layoutViews() {\n this._contentSize = this.viewItems.reduce((r, i) => r + i.size, 0);\n let sum = 0;\n const x = [];\n this.updateSashEnablement();\n for (let i = 0; i < this.viewItems.length - 1; i++) {\n sum += this.viewItems[i].size;\n x.push(sum);\n const offset = Math.min(Math.max(0, sum - 2), this.size - 4);\n if (this._orientation === Orientation.HORIZONTAL) {\n this.sashes[i].container.style.left = `${offset}px`;\n this.sashes[i].container.style.top = `0px`;\n }\n if (this._orientation === Orientation.VERTICAL) {\n this.sashes[i].container.style.left = `0px`;\n this.sashes[i].container.style.top = `${offset}px`;\n }\n }\n this.viewItems.forEach((view, i) => {\n if (this._orientation === Orientation.HORIZONTAL) {\n view.container.style.width = `${view.size}px`;\n view.container.style.left = i == 0 ? '0px' : `${x[i - 1]}px`;\n view.container.style.top = '';\n view.container.style.height = '';\n }\n if (this._orientation === Orientation.VERTICAL) {\n view.container.style.height = `${view.size}px`;\n view.container.style.top = i == 0 ? '0px' : `${x[i - 1]}px`;\n view.container.style.width = '';\n view.container.style.left = '';\n }\n view.view.layout(view.size, this._orthogonalSize);\n });\n }\n findFirstSnapIndex(indexes) {\n // visible views first\n for (const index of indexes) {\n const viewItem = this.viewItems[index];\n if (!viewItem.visible) {\n continue;\n }\n if (viewItem.snap) {\n return index;\n }\n }\n // then, hidden views\n for (const index of indexes) {\n const viewItem = this.viewItems[index];\n if (viewItem.visible &&\n viewItem.maximumSize - viewItem.minimumSize > 0) {\n return undefined;\n }\n if (!viewItem.visible && viewItem.snap) {\n return index;\n }\n }\n return undefined;\n }\n updateSashEnablement() {\n let previous = false;\n const collapsesDown = this.viewItems.map((i) => (previous = i.size - i.minimumSize > 0 || previous));\n previous = false;\n const expandsDown = this.viewItems.map((i) => (previous = i.maximumSize - i.size > 0 || previous));\n const reverseViews = [...this.viewItems].reverse();\n previous = false;\n const collapsesUp = reverseViews\n .map((i) => (previous = i.size - i.minimumSize > 0 || previous))\n .reverse();\n previous = false;\n const expandsUp = reverseViews\n .map((i) => (previous = i.maximumSize - i.size > 0 || previous))\n .reverse();\n let position = 0;\n for (let index = 0; index < this.sashes.length; index++) {\n const sash = this.sashes[index];\n const viewItem = this.viewItems[index];\n position += viewItem.size;\n const min = !(collapsesDown[index] && expandsUp[index + 1]);\n const max = !(expandsDown[index] && collapsesUp[index + 1]);\n if (min && max) {\n const upIndexes = range(index, -1);\n const downIndexes = range(index + 1, this.viewItems.length);\n const snapBeforeIndex = this.findFirstSnapIndex(upIndexes);\n const snapAfterIndex = this.findFirstSnapIndex(downIndexes);\n const snappedBefore = typeof snapBeforeIndex === 'number' &&\n !this.viewItems[snapBeforeIndex].visible;\n const snappedAfter = typeof snapAfterIndex === 'number' &&\n !this.viewItems[snapAfterIndex].visible;\n if (snappedBefore &&\n collapsesUp[index] &&\n (position > 0 || this.startSnappingEnabled)) {\n this.updateSash(sash, SashState.MINIMUM);\n }\n else if (snappedAfter &&\n collapsesDown[index] &&\n (position < this._contentSize || this.endSnappingEnabled)) {\n this.updateSash(sash, SashState.MAXIMUM);\n }\n else {\n this.updateSash(sash, SashState.DISABLED);\n }\n }\n else if (min && !max) {\n this.updateSash(sash, SashState.MINIMUM);\n }\n else if (!min && max) {\n this.updateSash(sash, SashState.MAXIMUM);\n }\n else {\n this.updateSash(sash, SashState.ENABLED);\n }\n }\n }\n updateSash(sash, state) {\n toggleClass(sash.container, 'disabled', state === SashState.DISABLED);\n toggleClass(sash.container, 'enabled', state === SashState.ENABLED);\n toggleClass(sash.container, 'maximum', state === SashState.MAXIMUM);\n toggleClass(sash.container, 'minimum', state === SashState.MINIMUM);\n }\n createViewContainer() {\n const element = document.createElement('div');\n element.className = 'view-container';\n return element;\n }\n createSashContainer() {\n const element = document.createElement('div');\n element.className = 'sash-container';\n return element;\n }\n createContainer() {\n const element = document.createElement('div');\n const orientationClassname = this._orientation === Orientation.HORIZONTAL\n ? 'horizontal'\n : 'vertical';\n element.className = `split-view-container ${orientationClassname}`;\n return element;\n }\n dispose() {\n this._onDidSashEnd.dispose();\n this._onDidAddView.dispose();\n this._onDidRemoveView.dispose();\n for (let i = 0; i < this.element.children.length; i++) {\n if (this.element.children.item(i) === this.element) {\n this.element.removeChild(this.element);\n break;\n }\n }\n for (const viewItem of this.viewItems) {\n viewItem.dispose();\n }\n this.element.remove();\n }\n}\n","import { Splitview, Orientation, } from '../splitview/splitview';\nimport { CompositeDisposable } from '../lifecycle';\nimport { Emitter } from '../events';\nimport { addClasses, removeClasses } from '../dom';\nexport class Paneview extends CompositeDisposable {\n get onDidAddView() {\n return this.splitview.onDidAddView;\n }\n get onDidRemoveView() {\n return this.splitview.onDidRemoveView;\n }\n get minimumSize() {\n return this.splitview.minimumSize;\n }\n get maximumSize() {\n return this.splitview.maximumSize;\n }\n get orientation() {\n return this.splitview.orientation;\n }\n get size() {\n return this.splitview.size;\n }\n get orthogonalSize() {\n return this.splitview.orthogonalSize;\n }\n constructor(container, options) {\n var _a;\n super();\n this.paneItems = [];\n this.skipAnimation = false;\n this._onDidChange = new Emitter();\n this.onDidChange = this._onDidChange.event;\n this._orientation = (_a = options.orientation) !== null && _a !== void 0 ? _a : Orientation.VERTICAL;\n this.element = document.createElement('div');\n this.element.className = 'pane-container';\n container.appendChild(this.element);\n this.splitview = new Splitview(this.element, {\n orientation: this._orientation,\n proportionalLayout: false,\n descriptor: options.descriptor,\n });\n // if we've added views from the descriptor we need to\n // add the panes to our Pane array and setup animation\n this.getPanes().forEach((pane) => {\n const disposable = new CompositeDisposable(pane.onDidChangeExpansionState(() => {\n this.setupAnimation();\n this._onDidChange.fire(undefined);\n }));\n const paneItem = {\n pane,\n disposable: {\n dispose: () => {\n disposable.dispose();\n },\n },\n };\n this.paneItems.push(paneItem);\n pane.orthogonalSize = this.splitview.orthogonalSize;\n });\n this.addDisposables(this._onDidChange, this.splitview.onDidSashEnd(() => {\n this._onDidChange.fire(undefined);\n }), this.splitview.onDidAddView(() => {\n this._onDidChange.fire();\n }), this.splitview.onDidRemoveView(() => {\n this._onDidChange.fire();\n }));\n }\n setViewVisible(index, visible) {\n this.splitview.setViewVisible(index, visible);\n }\n addPane(pane, size, index = this.splitview.length, skipLayout = false) {\n const disposable = pane.onDidChangeExpansionState(() => {\n this.setupAnimation();\n this._onDidChange.fire(undefined);\n });\n const paneItem = {\n pane,\n disposable: {\n dispose: () => {\n disposable.dispose();\n },\n },\n };\n this.paneItems.splice(index, 0, paneItem);\n pane.orthogonalSize = this.splitview.orthogonalSize;\n this.splitview.addView(pane, size, index, skipLayout);\n }\n getViewSize(index) {\n return this.splitview.getViewSize(index);\n }\n getPanes() {\n return this.splitview.getViews();\n }\n removePane(index, options = { skipDispose: false }) {\n const paneItem = this.paneItems.splice(index, 1)[0];\n this.splitview.removeView(index);\n if (!options.skipDispose) {\n paneItem.disposable.dispose();\n paneItem.pane.dispose();\n }\n return paneItem;\n }\n moveView(from, to) {\n if (from === to) {\n return;\n }\n const view = this.removePane(from, { skipDispose: true });\n this.skipAnimation = true;\n try {\n this.addPane(view.pane, view.pane.size, to, false);\n }\n finally {\n this.skipAnimation = false;\n }\n }\n layout(size, orthogonalSize) {\n this.splitview.layout(size, orthogonalSize);\n }\n setupAnimation() {\n if (this.skipAnimation) {\n return;\n }\n if (this.animationTimer) {\n clearTimeout(this.animationTimer);\n this.animationTimer = undefined;\n }\n addClasses(this.element, 'animated');\n this.animationTimer = setTimeout(() => {\n this.animationTimer = undefined;\n removeClasses(this.element, 'animated');\n }, 200);\n }\n dispose() {\n super.dispose();\n if (this.animationTimer) {\n clearTimeout(this.animationTimer);\n this.animationTimer = undefined;\n }\n this.paneItems.forEach((paneItem) => {\n paneItem.disposable.dispose();\n paneItem.pane.dispose();\n });\n this.paneItems = [];\n this.splitview.dispose();\n this.element.remove();\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Accreditation: This file is largly based upon the MIT licenced VSCode sourcecode found at:\n * https://github.com/microsoft/vscode/tree/main/src/vs/base/browser/ui/grid\n *--------------------------------------------------------------------------------------------*/\nimport { Orientation } from '../splitview/splitview';\nimport { Emitter } from '../events';\nexport class LeafNode {\n get minimumWidth() {\n return this.view.minimumWidth;\n }\n get maximumWidth() {\n return this.view.maximumWidth;\n }\n get minimumHeight() {\n return this.view.minimumHeight;\n }\n get maximumHeight() {\n return this.view.maximumHeight;\n }\n get priority() {\n return this.view.priority;\n }\n get snap() {\n return this.view.snap;\n }\n get minimumSize() {\n return this.orientation === Orientation.HORIZONTAL\n ? this.minimumHeight\n : this.minimumWidth;\n }\n get maximumSize() {\n return this.orientation === Orientation.HORIZONTAL\n ? this.maximumHeight\n : this.maximumWidth;\n }\n get minimumOrthogonalSize() {\n return this.orientation === Orientation.HORIZONTAL\n ? this.minimumWidth\n : this.minimumHeight;\n }\n get maximumOrthogonalSize() {\n return this.orientation === Orientation.HORIZONTAL\n ? this.maximumWidth\n : this.maximumHeight;\n }\n get orthogonalSize() {\n return this._orthogonalSize;\n }\n get size() {\n return this._size;\n }\n get element() {\n return this.view.element;\n }\n get width() {\n return this.orientation === Orientation.HORIZONTAL\n ? this.orthogonalSize\n : this.size;\n }\n get height() {\n return this.orientation === Orientation.HORIZONTAL\n ? this.size\n : this.orthogonalSize;\n }\n constructor(view, orientation, orthogonalSize, size = 0) {\n this.view = view;\n this.orientation = orientation;\n this._onDidChange = new Emitter();\n this.onDidChange = this._onDidChange.event;\n this._orthogonalSize = orthogonalSize;\n this._size = size;\n this._disposable = this.view.onDidChange((event) => {\n if (event) {\n this._onDidChange.fire({\n size: this.orientation === Orientation.VERTICAL\n ? event.width\n : event.height,\n orthogonalSize: this.orientation === Orientation.VERTICAL\n ? event.height\n : event.width,\n });\n }\n else {\n this._onDidChange.fire({});\n }\n });\n }\n setVisible(visible) {\n if (this.view.setVisible) {\n this.view.setVisible(visible);\n }\n }\n layout(size, orthogonalSize) {\n this._size = size;\n this._orthogonalSize = orthogonalSize;\n this.view.layout(this.width, this.height);\n }\n dispose() {\n this._onDidChange.dispose();\n this._disposable.dispose();\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Accreditation: This file is largly based upon the MIT licenced VSCode sourcecode found at:\n * https://github.com/microsoft/vscode/tree/main/src/vs/base/browser/ui/grid\n *--------------------------------------------------------------------------------------------*/\nimport { Splitview, Orientation, LayoutPriority, } from '../splitview/splitview';\nimport { Emitter, Event } from '../events';\nimport { LeafNode } from './leafNode';\nimport { CompositeDisposable, Disposable } from '../lifecycle';\nexport class BranchNode extends CompositeDisposable {\n get width() {\n return this.orientation === Orientation.HORIZONTAL\n ? this.size\n : this.orthogonalSize;\n }\n get height() {\n return this.orientation === Orientation.HORIZONTAL\n ? this.orthogonalSize\n : this.size;\n }\n get minimumSize() {\n return this.children.length === 0\n ? 0\n : Math.max(...this.children.map((c, index) => this.splitview.isViewVisible(index)\n ? c.minimumOrthogonalSize\n : 0));\n }\n get maximumSize() {\n return Math.min(...this.children.map((c, index) => this.splitview.isViewVisible(index)\n ? c.maximumOrthogonalSize\n : Number.POSITIVE_INFINITY));\n }\n get minimumOrthogonalSize() {\n return this.splitview.minimumSize;\n }\n get maximumOrthogonalSize() {\n return this.splitview.maximumSize;\n }\n get orthogonalSize() {\n return this._orthogonalSize;\n }\n get size() {\n return this._size;\n }\n get minimumWidth() {\n return this.orientation === Orientation.HORIZONTAL\n ? this.minimumOrthogonalSize\n : this.minimumSize;\n }\n get minimumHeight() {\n return this.orientation === Orientation.HORIZONTAL\n ? this.minimumSize\n : this.minimumOrthogonalSize;\n }\n get maximumWidth() {\n return this.orientation === Orientation.HORIZONTAL\n ? this.maximumOrthogonalSize\n : this.maximumSize;\n }\n get maximumHeight() {\n return this.orientation === Orientation.HORIZONTAL\n ? this.maximumSize\n : this.maximumOrthogonalSize;\n }\n get priority() {\n if (this.children.length === 0) {\n return LayoutPriority.Normal;\n }\n const priorities = this.children.map((c) => typeof c.priority === 'undefined'\n ? LayoutPriority.Normal\n : c.priority);\n if (priorities.some((p) => p === LayoutPriority.High)) {\n return LayoutPriority.High;\n }\n else if (priorities.some((p) => p === LayoutPriority.Low)) {\n return LayoutPriority.Low;\n }\n return LayoutPriority.Normal;\n }\n get disabled() {\n return this.splitview.disabled;\n }\n set disabled(value) {\n this.splitview.disabled = value;\n }\n constructor(orientation, proportionalLayout, styles, size, orthogonalSize, disabled, childDescriptors) {\n super();\n this.orientation = orientation;\n this.proportionalLayout = proportionalLayout;\n this.styles = styles;\n this._childrenDisposable = Disposable.NONE;\n this.children = [];\n this._onDidChange = new Emitter();\n this.onDidChange = this._onDidChange.event;\n this._onDidVisibilityChange = new Emitter();\n this.onDidVisibilityChange = this._onDidVisibilityChange.event;\n this._orthogonalSize = orthogonalSize;\n this._size = size;\n this.element = document.createElement('div');\n this.element.className = 'branch-node';\n if (!childDescriptors) {\n this.splitview = new Splitview(this.element, {\n orientation: this.orientation,\n proportionalLayout,\n styles,\n });\n this.splitview.layout(this.size, this.orthogonalSize);\n }\n else {\n const descriptor = {\n views: childDescriptors.map((childDescriptor) => {\n return {\n view: childDescriptor.node,\n size: childDescriptor.node.size,\n visible: childDescriptor.node instanceof LeafNode &&\n childDescriptor.visible !== undefined\n ? childDescriptor.visible\n : true,\n };\n }),\n size: this.orthogonalSize,\n };\n this.children = childDescriptors.map((c) => c.node);\n this.splitview = new Splitview(this.element, {\n orientation: this.orientation,\n descriptor,\n proportionalLayout,\n styles,\n });\n }\n this.disabled = disabled;\n this.addDisposables(this._onDidChange, this._onDidVisibilityChange, this.splitview.onDidSashEnd(() => {\n this._onDidChange.fire({});\n }));\n this.setupChildrenEvents();\n }\n setVisible(visible) {\n for (const child of this.children) {\n child.setVisible(visible);\n }\n }\n isChildVisible(index) {\n if (index < 0 || index >= this.children.length) {\n throw new Error('Invalid index');\n }\n return this.splitview.isViewVisible(index);\n }\n setChildVisible(index, visible) {\n if (index < 0 || index >= this.children.length) {\n throw new Error('Invalid index');\n }\n if (this.splitview.isViewVisible(index) === visible) {\n return;\n }\n const wereAllChildrenHidden = this.splitview.contentSize === 0;\n this.splitview.setViewVisible(index, visible);\n const areAllChildrenHidden = this.splitview.contentSize === 0;\n // If all children are hidden then the parent should hide the entire splitview\n // If the entire splitview is hidden then the parent should show the splitview when a child is shown\n if ((visible && wereAllChildrenHidden) ||\n (!visible && areAllChildrenHidden)) {\n this._onDidVisibilityChange.fire(visible);\n }\n }\n moveChild(from, to) {\n if (from === to) {\n return;\n }\n if (from < 0 || from >= this.children.length) {\n throw new Error('Invalid from index');\n }\n if (from < to) {\n to--;\n }\n this.splitview.moveView(from, to);\n const child = this._removeChild(from);\n this._addChild(child, to);\n }\n getChildSize(index) {\n if (index < 0 || index >= this.children.length) {\n throw new Error('Invalid index');\n }\n return this.splitview.getViewSize(index);\n }\n resizeChild(index, size) {\n if (index < 0 || index >= this.children.length) {\n throw new Error('Invalid index');\n }\n this.splitview.resizeView(index, size);\n }\n layout(size, orthogonalSize) {\n this._size = orthogonalSize;\n this._orthogonalSize = size;\n this.splitview.layout(orthogonalSize, size);\n }\n addChild(node, size, index, skipLayout) {\n if (index < 0 || index > this.children.length) {\n throw new Error('Invalid index');\n }\n this.splitview.addView(node, size, index, skipLayout);\n this._addChild(node, index);\n }\n getChildCachedVisibleSize(index) {\n if (index < 0 || index >= this.children.length) {\n throw new Error('Invalid index');\n }\n return this.splitview.getViewCachedVisibleSize(index);\n }\n removeChild(index, sizing) {\n if (index < 0 || index >= this.children.length) {\n throw new Error('Invalid index');\n }\n this.splitview.removeView(index, sizing);\n return this._removeChild(index);\n }\n _addChild(node, index) {\n this.children.splice(index, 0, node);\n this.setupChildrenEvents();\n }\n _removeChild(index) {\n const [child] = this.children.splice(index, 1);\n this.setupChildrenEvents();\n return child;\n }\n setupChildrenEvents() {\n this._childrenDisposable.dispose();\n this._childrenDisposable = new CompositeDisposable(Event.any(...this.children.map((c) => c.onDidChange))((e) => {\n /**\n * indicate a change has occured to allows any re-rendering but don't bubble\n * event because that was specific to this branch\n */\n this._onDidChange.fire({ size: e.orthogonalSize });\n }), ...this.children.map((c, i) => {\n if (c instanceof BranchNode) {\n return c.onDidVisibilityChange((visible) => {\n this.setChildVisible(i, visible);\n });\n }\n return Disposable.NONE;\n }));\n }\n dispose() {\n this._childrenDisposable.dispose();\n this.splitview.dispose();\n this.children.forEach((child) => child.dispose());\n super.dispose();\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Accreditation: This file is largly based upon the MIT licenced VSCode sourcecode found at:\n * https://github.com/microsoft/vscode/tree/main/src/vs/base/browser/ui/grid\n *--------------------------------------------------------------------------------------------*/\nimport { Orientation, Sizing, } from '../splitview/splitview';\nimport { tail } from '../array';\nimport { LeafNode } from './leafNode';\nimport { BranchNode } from './branchNode';\nimport { Emitter } from '../events';\nimport { MutableDisposable } from '../lifecycle';\nfunction findLeaf(candiateNode, last) {\n if (candiateNode instanceof LeafNode) {\n return candiateNode;\n }\n if (candiateNode instanceof BranchNode) {\n return findLeaf(candiateNode.children[last ? candiateNode.children.length - 1 : 0], last);\n }\n throw new Error('invalid node');\n}\nfunction flipNode(node, size, orthogonalSize) {\n if (node instanceof BranchNode) {\n const result = new BranchNode(orthogonal(node.orientation), node.proportionalLayout, node.styles, size, orthogonalSize, node.disabled);\n let totalSize = 0;\n for (let i = node.children.length - 1; i >= 0; i--) {\n const child = node.children[i];\n const childSize = child instanceof BranchNode ? child.orthogonalSize : child.size;\n let newSize = node.size === 0\n ? 0\n : Math.round((size * childSize) / node.size);\n totalSize += newSize;\n // The last view to add should adjust to rounding errors\n if (i === 0) {\n newSize += size - totalSize;\n }\n result.addChild(flipNode(child, orthogonalSize, newSize), newSize, 0, true);\n }\n return result;\n }\n else {\n return new LeafNode(node.view, orthogonal(node.orientation), orthogonalSize);\n }\n}\nexport function indexInParent(element) {\n const parentElement = element.parentElement;\n if (!parentElement) {\n throw new Error('Invalid grid element');\n }\n let el = parentElement.firstElementChild;\n let index = 0;\n while (el !== element && el !== parentElement.lastElementChild && el) {\n el = el.nextElementSibling;\n index++;\n }\n return index;\n}\n/**\n * Find the grid location of a specific DOM element by traversing the parent\n * chain and finding each child index on the way.\n *\n * This will break as soon as DOM structures of the Splitview or Gridview change.\n */\nexport function getGridLocation(element) {\n const parentElement = element.parentElement;\n if (!parentElement) {\n throw new Error('Invalid grid element');\n }\n if (/\\bgrid-view\\b/.test(parentElement.className)) {\n return [];\n }\n const index = indexInParent(parentElement);\n const ancestor = parentElement.parentElement.parentElement.parentElement;\n return [...getGridLocation(ancestor), index];\n}\nexport function getRelativeLocation(rootOrientation, location, direction) {\n const orientation = getLocationOrientation(rootOrientation, location);\n const directionOrientation = getDirectionOrientation(direction);\n if (orientation === directionOrientation) {\n const [rest, _index] = tail(location);\n let index = _index;\n if (direction === 'right' || direction === 'bottom') {\n index += 1;\n }\n return [...rest, index];\n }\n else {\n const index = direction === 'right' || direction === 'bottom' ? 1 : 0;\n return [...location, index];\n }\n}\nexport function getDirectionOrientation(direction) {\n return direction === 'top' || direction === 'bottom'\n ? Orientation.VERTICAL\n : Orientation.HORIZONTAL;\n}\nexport function getLocationOrientation(rootOrientation, location) {\n return location.length % 2 === 0\n ? orthogonal(rootOrientation)\n : rootOrientation;\n}\nexport const orthogonal = (orientation) => orientation === Orientation.HORIZONTAL\n ? Orientation.VERTICAL\n : Orientation.HORIZONTAL;\nexport function isGridBranchNode(node) {\n return !!node.children;\n}\nconst serializeBranchNode = (node, orientation) => {\n const size = orientation === Orientation.VERTICAL ? node.box.width : node.box.height;\n if (!isGridBranchNode(node)) {\n if (typeof node.cachedVisibleSize === 'number') {\n return {\n type: 'leaf',\n data: node.view.toJSON(),\n size: node.cachedVisibleSize,\n visible: false,\n };\n }\n return { type: 'leaf', data: node.view.toJSON(), size };\n }\n return {\n type: 'branch',\n data: node.children.map((c) => serializeBranchNode(c, orthogonal(orientation))),\n size,\n };\n};\nexport class Gridview {\n get length() {\n return this._root ? this._root.children.length : 0;\n }\n get orientation() {\n return this.root.orientation;\n }\n set orientation(orientation) {\n if (this.root.orientation === orientation) {\n return;\n }\n const { size, orthogonalSize } = this.root;\n this.root = flipNode(this.root, orthogonalSize, size);\n this.root.layout(size, orthogonalSize);\n }\n get width() {\n return this.root.width;\n }\n get height() {\n return this.root.height;\n }\n get minimumWidth() {\n return this.root.minimumWidth;\n }\n get minimumHeight() {\n return this.root.minimumHeight;\n }\n get maximumWidth() {\n return this.root.maximumHeight;\n }\n get maximumHeight() {\n return this.root.maximumHeight;\n }\n get locked() {\n return this._locked;\n }\n set locked(value) {\n this._locked = value;\n const branch = [this.root];\n /**\n * simple depth-first-search to cover all nodes\n *\n * @see https://en.wikipedia.org/wiki/Depth-first_search\n */\n while (branch.length > 0) {\n const node = branch.pop();\n if (node instanceof BranchNode) {\n node.disabled = value;\n branch.push(...node.children);\n }\n }\n }\n maximizedView() {\n var _a;\n return (_a = this._maximizedNode) === null || _a === void 0 ? void 0 : _a.leaf.view;\n }\n hasMaximizedView() {\n return this._maximizedNode !== undefined;\n }\n maximizeView(view) {\n var _a;\n const location = getGridLocation(view.element);\n const [_, node] = this.getNode(location);\n if (!(node instanceof LeafNode)) {\n return;\n }\n if (((_a = this._maximizedNode) === null || _a === void 0 ? void 0 : _a.leaf) === node) {\n return;\n }\n if (this.hasMaximizedView()) {\n this.exitMaximizedView();\n }\n const hiddenOnMaximize = [];\n function hideAllViewsBut(parent, exclude) {\n for (let i = 0; i < parent.children.length; i++) {\n const child = parent.children[i];\n if (child instanceof LeafNode) {\n if (child !== exclude) {\n if (parent.isChildVisible(i)) {\n parent.setChildVisible(i, false);\n }\n else {\n hiddenOnMaximize.push(child);\n }\n }\n }\n else {\n hideAllViewsBut(child, exclude);\n }\n }\n }\n hideAllViewsBut(this.root, node);\n this._maximizedNode = { leaf: node, hiddenOnMaximize };\n this._onDidMaximizedNodeChange.fire();\n }\n exitMaximizedView() {\n if (!this._maximizedNode) {\n return;\n }\n const hiddenOnMaximize = this._maximizedNode.hiddenOnMaximize;\n function showViewsInReverseOrder(parent) {\n for (let index = parent.children.length - 1; index >= 0; index--) {\n const child = parent.children[index];\n if (child instanceof LeafNode) {\n if (!hiddenOnMaximize.includes(child)) {\n parent.setChildVisible(index, true);\n }\n }\n else {\n showViewsInReverseOrder(child);\n }\n }\n }\n showViewsInReverseOrder(this.root);\n this._maximizedNode = undefined;\n this._onDidMaximizedNodeChange.fire();\n }\n serialize() {\n if (this.hasMaximizedView()) {\n /**\n * do not persist maximized view state\n * firstly exit any maximized views to ensure the correct dimensions are persisted\n */\n this.exitMaximizedView();\n }\n const root = serializeBranchNode(this.getView(), this.orientation);\n return {\n root,\n width: this.width,\n height: this.height,\n orientation: this.orientation,\n };\n }\n dispose() {\n this.disposable.dispose();\n this._onDidChange.dispose();\n this._onDidMaximizedNodeChange.dispose();\n this.root.dispose();\n this._maximizedNode = undefined;\n this.element.remove();\n }\n clear() {\n const orientation = this.root.orientation;\n this.root = new BranchNode(orientation, this.proportionalLayout, this.styles, this.root.size, this.root.orthogonalSize, this._locked);\n }\n deserialize(json, deserializer) {\n const orientation = json.orientation;\n const height = orientation === Orientation.VERTICAL ? json.height : json.width;\n this._deserialize(json.root, orientation, deserializer, height);\n }\n _deserialize(root, orientation, deserializer, orthogonalSize) {\n this.root = this._deserializeNode(root, orientation, deserializer, orthogonalSize);\n }\n _deserializeNode(node, orientation, deserializer, orthogonalSize) {\n let result;\n if (node.type === 'branch') {\n const serializedChildren = node.data;\n const children = serializedChildren.map((serializedChild) => {\n return {\n node: this._deserializeNode(serializedChild, orthogonal(orientation), deserializer, node.size),\n visible: serializedChild.visible,\n };\n });\n result = new BranchNode(orientation, this.proportionalLayout, this.styles, node.size, // <- orthogonal size - flips at each depth\n orthogonalSize, // <- size - flips at each depth,\n this._locked, children);\n }\n else {\n result = new LeafNode(deserializer.fromJSON(node), orientation, orthogonalSize, node.size);\n }\n return result;\n }\n get root() {\n return this._root;\n }\n set root(root) {\n const oldRoot = this._root;\n if (oldRoot) {\n oldRoot.dispose();\n this._maximizedNode = undefined;\n this.element.removeChild(oldRoot.element);\n }\n this._root = root;\n this.element.appendChild(this._root.element);\n this.disposable.value = this._root.onDidChange((e) => {\n this._onDidChange.fire(e);\n });\n }\n /**\n * If the root is orientated as a VERTICAL node then nest the existing root within a new HORIZIONTAL root node\n * If the root is orientated as a HORIZONTAL node then nest the existing root within a new VERITCAL root node\n */\n insertOrthogonalSplitviewAtRoot() {\n if (!this._root) {\n return;\n }\n const oldRoot = this.root;\n oldRoot.element.remove();\n this._root = new BranchNode(orthogonal(oldRoot.orientation), this.proportionalLayout, this.styles, this.root.orthogonalSize, this.root.size, this._locked);\n if (oldRoot.children.length === 0) {\n // no data so no need to add anything back in\n }\n else if (oldRoot.children.length === 1) {\n // can remove one level of redundant branching if there is only a single child\n const childReference = oldRoot.children[0];\n const child = oldRoot.removeChild(0); // remove to prevent disposal when disposing of unwanted root\n child.dispose();\n oldRoot.dispose();\n this._root.addChild(\n /**\n * the child node will have the same orientation as the new root since\n * we are removing the inbetween node.\n * the entire 'tree' must be flipped recursively to ensure that the orientation\n * flips at each level\n */\n flipNode(childReference, childReference.orthogonalSize, childReference.size), Sizing.Distribute, 0);\n }\n else {\n this._root.addChild(oldRoot, Sizing.Distribute, 0);\n }\n this.element.appendChild(this._root.element);\n this.disposable.value = this._root.onDidChange((e) => {\n this._onDidChange.fire(e);\n });\n }\n next(location) {\n return this.progmaticSelect(location);\n }\n previous(location) {\n return this.progmaticSelect(location, true);\n }\n getView(location) {\n const node = location ? this.getNode(location)[1] : this.root;\n return this._getViews(node, this.orientation);\n }\n _getViews(node, orientation, cachedVisibleSize) {\n const box = { height: node.height, width: node.width };\n if (node instanceof LeafNode) {\n return { box, view: node.view, cachedVisibleSize };\n }\n const children = [];\n for (let i = 0; i < node.children.length; i++) {\n const child = node.children[i];\n const nodeCachedVisibleSize = node.getChildCachedVisibleSize(i);\n children.push(this._getViews(child, orthogonal(orientation), nodeCachedVisibleSize));\n }\n return { box, children };\n }\n progmaticSelect(location, reverse = false) {\n const [path, node] = this.getNode(location);\n if (!(node instanceof LeafNode)) {\n throw new Error('invalid location');\n }\n for (let i = path.length - 1; i > -1; i--) {\n const n = path[i];\n const l = location[i] || 0;\n const canProgressInCurrentLevel = reverse\n ? l - 1 > -1\n : l + 1 < n.children.length;\n if (canProgressInCurrentLevel) {\n return findLeaf(n.children[reverse ? l - 1 : l + 1], reverse);\n }\n }\n return findLeaf(this.root, reverse);\n }\n constructor(proportionalLayout, styles, orientation) {\n this.proportionalLayout = proportionalLayout;\n this.styles = styles;\n this._locked = false;\n this._maximizedNode = undefined;\n this.disposable = new MutableDisposable();\n this._onDidChange = new Emitter();\n this.onDidChange = this._onDidChange.event;\n this._onDidMaximizedNodeChange = new Emitter();\n this.onDidMaximizedNodeChange = this._onDidMaximizedNodeChange.event;\n this.element = document.createElement('div');\n this.element.className = 'grid-view';\n this.root = new BranchNode(orientation, proportionalLayout, styles, 0, 0, this._locked);\n }\n isViewVisible(location) {\n const [rest, index] = tail(location);\n const [, parent] = this.getNode(rest);\n if (!(parent instanceof BranchNode)) {\n throw new Error('Invalid from location');\n }\n return parent.isChildVisible(index);\n }\n setViewVisible(location, visible) {\n if (this.hasMaximizedView()) {\n this.exitMaximizedView();\n }\n const [rest, index] = tail(location);\n const [, parent] = this.getNode(rest);\n if (!(parent instanceof BranchNode)) {\n throw new Error('Invalid from location');\n }\n parent.setChildVisible(index, visible);\n }\n moveView(parentLocation, from, to) {\n if (this.hasMaximizedView()) {\n this.exitMaximizedView();\n }\n const [, parent] = this.getNode(parentLocation);\n if (!(parent instanceof BranchNode)) {\n throw new Error('Invalid location');\n }\n parent.moveChild(from, to);\n }\n addView(view, size, location) {\n if (this.hasMaximizedView()) {\n this.exitMaximizedView();\n }\n const [rest, index] = tail(location);\n const [pathToParent, parent] = this.getNode(rest);\n if (parent instanceof BranchNode) {\n const node = new LeafNode(view, orthogonal(parent.orientation), parent.orthogonalSize);\n parent.addChild(node, size, index);\n }\n else {\n const [grandParent, ..._] = [...pathToParent].reverse();\n const [parentIndex, ...__] = [...rest].reverse();\n let newSiblingSize = 0;\n const newSiblingCachedVisibleSize = grandParent.getChildCachedVisibleSize(parentIndex);\n if (typeof newSiblingCachedVisibleSize === 'number') {\n newSiblingSize = Sizing.Invisible(newSiblingCachedVisibleSize);\n }\n const child = grandParent.removeChild(parentIndex);\n child.dispose();\n const newParent = new BranchNode(parent.orientation, this.proportionalLayout, this.styles, parent.size, parent.orthogonalSize, this._locked);\n grandParent.addChild(newParent, parent.size, parentIndex);\n const newSibling = new LeafNode(parent.view, grandParent.orientation, parent.size);\n newParent.addChild(newSibling, newSiblingSize, 0);\n if (typeof size !== 'number' && size.type === 'split') {\n size = { type: 'split', index: 0 };\n }\n const node = new LeafNode(view, grandParent.orientation, parent.size);\n newParent.addChild(node, size, index);\n }\n }\n remove(view, sizing) {\n const location = getGridLocation(view.element);\n return this.removeView(location, sizing);\n }\n removeView(location, sizing) {\n if (this.hasMaximizedView()) {\n this.exitMaximizedView();\n }\n const [rest, index] = tail(location);\n const [pathToParent, parent] = this.getNode(rest);\n if (!(parent instanceof BranchNode)) {\n throw new Error('Invalid location');\n }\n const nodeToRemove = parent.children[index];\n if (!(nodeToRemove instanceof LeafNode)) {\n throw new Error('Invalid location');\n }\n parent.removeChild(index, sizing);\n nodeToRemove.dispose();\n if (parent.children.length !== 1) {\n return nodeToRemove.view;\n }\n // if the parent has only one child and we know the parent is a BranchNode we can make the tree\n // more efficiently spaced by replacing the parent BranchNode with the child.\n // if that child is a LeafNode then we simply replace the BranchNode with the child otherwise if the child\n // is a BranchNode too we should spread it's children into the grandparent.\n // refer to the remaining child as the sibling\n const sibling = parent.children[0];\n if (pathToParent.length === 0) {\n // if the parent is root\n if (sibling instanceof LeafNode) {\n // if the sibling is a leaf node no action is required\n return nodeToRemove.view;\n }\n // otherwise the sibling is a branch node. since the parent is the root and the root has only one child\n // which is a branch node we can just set this branch node to be the new root node\n // for good housekeeping we'll removing the sibling from it's existing tree\n parent.removeChild(0, sizing);\n // and set that sibling node to be root\n this.root = sibling;\n return nodeToRemove.view;\n }\n // otherwise the parent is apart of a large sub-tree\n const [grandParent, ..._] = [...pathToParent].reverse();\n const [parentIndex, ...__] = [...rest].reverse();\n const isSiblingVisible = parent.isChildVisible(0);\n // either way we need to remove the sibling from it's existing tree\n parent.removeChild(0, sizing);\n // note the sizes of all of the grandparents children\n const sizes = grandParent.children.map((_size, i) => grandParent.getChildSize(i));\n // remove the parent from the grandparent since we are moving the sibling to take the parents place\n // this parent is no longer used and can be disposed of\n grandParent.removeChild(parentIndex, sizing).dispose();\n if (sibling instanceof BranchNode) {\n // replace the parent with the siblings children\n sizes.splice(parentIndex, 1, ...sibling.children.map((c) => c.size));\n // and add those siblings to the grandparent\n for (let i = 0; i < sibling.children.length; i++) {\n const child = sibling.children[i];\n grandParent.addChild(child, child.size, parentIndex + i);\n }\n /**\n * clean down the branch node since we need to dipose of it and\n * when .dispose() it called on a branch it will dispose of any\n * views it is holding onto.\n */\n while (sibling.children.length > 0) {\n sibling.removeChild(0);\n }\n }\n else {\n // otherwise create a new leaf node and add that to the grandparent\n const newSibling = new LeafNode(sibling.view, orthogonal(sibling.orientation), sibling.size);\n const siblingSizing = isSiblingVisible\n ? sibling.orthogonalSize\n : Sizing.Invisible(sibling.orthogonalSize);\n grandParent.addChild(newSibling, siblingSizing, parentIndex);\n }\n // the containing node of the sibling is no longer required and can be disposed of\n sibling.dispose();\n // resize everything\n for (let i = 0; i < sizes.length; i++) {\n grandParent.resizeChild(i, sizes[i]);\n }\n return nodeToRemove.view;\n }\n layout(width, height) {\n const [size, orthogonalSize] = this.root.orientation === Orientation.HORIZONTAL\n ? [height, width]\n : [width, height];\n this.root.layout(size, orthogonalSize);\n }\n getNode(location, node = this.root, path = []) {\n if (location.length === 0) {\n return [path, node];\n }\n if (!(node instanceof BranchNode)) {\n throw new Error('Invalid location');\n }\n const [index, ...rest] = location;\n if (index < 0 || index >= node.children.length) {\n throw new Error('Invalid location');\n }\n const child = node.children[index];\n path.push(node);\n return this.getNode(rest, child, path);\n }\n}\n","import { Emitter } from '../events';\nexport class SplitviewApi {\n /**\n * The minimum size the component can reach where size is measured in the direction of orientation provided.\n */\n get minimumSize() {\n return this.component.minimumSize;\n }\n /**\n * The maximum size the component can reach where size is measured in the direction of orientation provided.\n */\n get maximumSize() {\n return this.component.maximumSize;\n }\n /**\n * Width of the component.\n */\n get width() {\n return this.component.width;\n }\n /**\n * Height of the component.\n */\n get height() {\n return this.component.height;\n }\n /**\n * The current number of panels.\n */\n get length() {\n return this.component.length;\n }\n /**\n * The current orientation of the component.\n */\n get orientation() {\n return this.component.orientation;\n }\n /**\n * The list of current panels.\n */\n get panels() {\n return this.component.panels;\n }\n /**\n * Invoked after a layout is loaded through the `fromJSON` method.\n */\n get onDidLayoutFromJSON() {\n return this.component.onDidLayoutFromJSON;\n }\n /**\n * Invoked whenever any aspect of the layout changes.\n * If listening to this event it may be worth debouncing ouputs.\n */\n get onDidLayoutChange() {\n return this.component.onDidLayoutChange;\n }\n /**\n * Invoked when a view is added.\n */\n get onDidAddView() {\n return this.component.onDidAddView;\n }\n /**\n * Invoked when a view is removed.\n */\n get onDidRemoveView() {\n return this.component.onDidRemoveView;\n }\n constructor(component) {\n this.component = component;\n }\n /**\n * Update configuratable options.\n */\n updateOptions(options) {\n this.component.updateOptions(options);\n }\n /**\n * Removes an existing panel and optionally provide a `Sizing` method\n * for the subsequent resize.\n */\n removePanel(panel, sizing) {\n this.component.removePanel(panel, sizing);\n }\n /**\n * Focus the component.\n */\n focus() {\n this.component.focus();\n }\n /**\n * Get the reference to a panel given it's `string` id.\n */\n getPanel(id) {\n return this.component.getPanel(id);\n }\n /**\n * Layout the panel with a width and height.\n */\n layout(width, height) {\n return this.component.layout(width, height);\n }\n /**\n * Add a new panel and return the created instance.\n */\n addPanel(options) {\n return this.component.addPanel(options);\n }\n /**\n * Move a panel given it's current and desired index.\n */\n movePanel(from, to) {\n this.component.movePanel(from, to);\n }\n /**\n * Deserialize a layout to built a splitivew.\n */\n fromJSON(data) {\n this.component.fromJSON(data);\n }\n /** Serialize a layout */\n toJSON() {\n return this.component.toJSON();\n }\n /**\n * Remove all panels and clear the component.\n */\n clear() {\n this.component.clear();\n }\n}\nexport class PaneviewApi {\n /**\n * The minimum size the component can reach where size is measured in the direction of orientation provided.\n */\n get minimumSize() {\n return this.component.minimumSize;\n }\n /**\n * The maximum size the component can reach where size is measured in the direction of orientation provided.\n */\n get maximumSize() {\n return this.component.maximumSize;\n }\n /**\n * Width of the component.\n */\n get width() {\n return this.component.width;\n }\n /**\n * Height of the component.\n */\n get height() {\n return this.component.height;\n }\n /**\n * All panel objects.\n */\n get panels() {\n return this.component.panels;\n }\n /**\n * Invoked when any layout change occures, an aggregation of many events.\n */\n get onDidLayoutChange() {\n return this.component.onDidLayoutChange;\n }\n /**\n * Invoked after a layout is deserialzied using the `fromJSON` method.\n */\n get onDidLayoutFromJSON() {\n return this.component.onDidLayoutFromJSON;\n }\n /**\n * Invoked when a panel is added. May be called multiple times when moving panels.\n */\n get onDidAddView() {\n return this.component.onDidAddView;\n }\n /**\n * Invoked when a panel is removed. May be called multiple times when moving panels.\n */\n get onDidRemoveView() {\n return this.component.onDidRemoveView;\n }\n /**\n * Invoked when a Drag'n'Drop event occurs that the component was unable to handle. Exposed for custom Drag'n'Drop functionality.\n */\n get onDidDrop() {\n const emitter = new Emitter();\n const disposable = this.component.onDidDrop((e) => {\n emitter.fire(Object.assign(Object.assign({}, e), { api: this }));\n });\n emitter.dispose = () => {\n disposable.dispose();\n emitter.dispose();\n };\n return emitter.event;\n }\n constructor(component) {\n this.component = component;\n }\n /**\n * Remove a panel given the panel object.\n */\n removePanel(panel) {\n this.component.removePanel(panel);\n }\n /**\n * Get a panel object given a `string` id. May return `undefined`.\n */\n getPanel(id) {\n return this.component.getPanel(id);\n }\n /**\n * Move a panel given it's current and desired index.\n */\n movePanel(from, to) {\n this.component.movePanel(from, to);\n }\n /**\n * Focus the component. Will try to focus an active panel if one exists.\n */\n focus() {\n this.component.focus();\n }\n /**\n * Force resize the component to an exact width and height. Read about auto-resizing before using.\n */\n layout(width, height) {\n this.component.layout(width, height);\n }\n /**\n * Add a panel and return the created object.\n */\n addPanel(options) {\n return this.component.addPanel(options);\n }\n /**\n * Create a component from a serialized object.\n */\n fromJSON(data) {\n this.component.fromJSON(data);\n }\n /**\n * Create a serialized object of the current component.\n */\n toJSON() {\n return this.component.toJSON();\n }\n /**\n * Reset the component back to an empty and default state.\n */\n clear() {\n this.component.clear();\n }\n}\nexport class GridviewApi {\n /**\n * Width of the component.\n */\n get width() {\n return this.component.width;\n }\n /**\n * Height of the component.\n */\n get height() {\n return this.component.height;\n }\n /**\n * Minimum height of the component.\n */\n get minimumHeight() {\n return this.component.minimumHeight;\n }\n /**\n * Maximum height of the component.\n */\n get maximumHeight() {\n return this.component.maximumHeight;\n }\n /**\n * Minimum width of the component.\n */\n get minimumWidth() {\n return this.component.minimumWidth;\n }\n /**\n * Maximum width of the component.\n */\n get maximumWidth() {\n return this.component.maximumWidth;\n }\n /**\n * Invoked when any layout change occures, an aggregation of many events.\n */\n get onDidLayoutChange() {\n return this.component.onDidLayoutChange;\n }\n /**\n * Invoked when a panel is added. May be called multiple times when moving panels.\n */\n get onDidAddPanel() {\n return this.component.onDidAddGroup;\n }\n /**\n * Invoked when a panel is removed. May be called multiple times when moving panels.\n */\n get onDidRemovePanel() {\n return this.component.onDidRemoveGroup;\n }\n /**\n * Invoked when the active panel changes. May be undefined if no panel is active.\n */\n get onDidActivePanelChange() {\n return this.component.onDidActiveGroupChange;\n }\n /**\n * Invoked after a layout is deserialzied using the `fromJSON` method.\n */\n get onDidLayoutFromJSON() {\n return this.component.onDidLayoutFromJSON;\n }\n /**\n * All panel objects.\n */\n get panels() {\n return this.component.groups;\n }\n /**\n * Current orientation. Can be changed after initialization.\n */\n get orientation() {\n return this.component.orientation;\n }\n set orientation(value) {\n this.component.updateOptions({ orientation: value });\n }\n constructor(component) {\n this.component = component;\n }\n /**\n * Focus the component. Will try to focus an active panel if one exists.\n */\n focus() {\n this.component.focus();\n }\n /**\n * Force resize the component to an exact width and height. Read about auto-resizing before using.\n */\n layout(width, height, force = false) {\n this.component.layout(width, height, force);\n }\n /**\n * Add a panel and return the created object.\n */\n addPanel(options) {\n return this.component.addPanel(options);\n }\n /**\n * Remove a panel given the panel object.\n */\n removePanel(panel, sizing) {\n this.component.removePanel(panel, sizing);\n }\n /**\n * Move a panel in a particular direction relative to another panel.\n */\n movePanel(panel, options) {\n this.component.movePanel(panel, options);\n }\n /**\n * Get a panel object given a `string` id. May return `undefined`.\n */\n getPanel(id) {\n return this.component.getPanel(id);\n }\n /**\n * Create a component from a serialized object.\n */\n fromJSON(data) {\n return this.component.fromJSON(data);\n }\n /**\n * Create a serialized object of the current component.\n */\n toJSON() {\n return this.component.toJSON();\n }\n /**\n * Reset the component back to an empty and default state.\n */\n clear() {\n this.component.clear();\n }\n}\nexport class DockviewApi {\n /**\n * The unique identifier for this instance. Used to manage scope of Drag'n'Drop events.\n */\n get id() {\n return this.component.id;\n }\n /**\n * Width of the component.\n */\n get width() {\n return this.component.width;\n }\n /**\n * Height of the component.\n */\n get height() {\n return this.component.height;\n }\n /**\n * Minimum height of the component.\n */\n get minimumHeight() {\n return this.component.minimumHeight;\n }\n /**\n * Maximum height of the component.\n */\n get maximumHeight() {\n return this.component.maximumHeight;\n }\n /**\n * Minimum width of the component.\n */\n get minimumWidth() {\n return this.component.minimumWidth;\n }\n /**\n * Maximum width of the component.\n */\n get maximumWidth() {\n return this.component.maximumWidth;\n }\n /**\n * Total number of groups.\n */\n get size() {\n return this.component.size;\n }\n /**\n * Total number of panels.\n */\n get totalPanels() {\n return this.component.totalPanels;\n }\n /**\n * Invoked when the active group changes. May be undefined if no group is active.\n */\n get onDidActiveGroupChange() {\n return this.component.onDidActiveGroupChange;\n }\n /**\n * Invoked when a group is added. May be called multiple times when moving groups.\n */\n get onDidAddGroup() {\n return this.component.onDidAddGroup;\n }\n /**\n * Invoked when a group is removed. May be called multiple times when moving groups.\n */\n get onDidRemoveGroup() {\n return this.component.onDidRemoveGroup;\n }\n /**\n * Invoked when the active panel changes. May be undefined if no panel is active.\n */\n get onDidActivePanelChange() {\n return this.component.onDidActivePanelChange;\n }\n /**\n * Invoked when a panel is added. May be called multiple times when moving panels.\n */\n get onDidAddPanel() {\n return this.component.onDidAddPanel;\n }\n /**\n * Invoked when a panel is removed. May be called multiple times when moving panels.\n */\n get onDidRemovePanel() {\n return this.component.onDidRemovePanel;\n }\n /**\n * Invoked after a layout is deserialzied using the `fromJSON` method.\n */\n get onDidLayoutFromJSON() {\n return this.component.onDidLayoutFromJSON;\n }\n /**\n * Invoked when any layout change occures, an aggregation of many events.\n */\n get onDidLayoutChange() {\n return this.component.onDidLayoutChange;\n }\n /**\n * Invoked when a Drag'n'Drop event occurs that the component was unable to handle. Exposed for custom Drag'n'Drop functionality.\n */\n get onDidDrop() {\n return this.component.onDidDrop;\n }\n /**\n * Invoked when a Drag'n'Drop event occurs but before dockview handles it giving the user an opportunity to intecept and\n * prevent the event from occuring using the standard `preventDefault()` syntax.\n *\n * Preventing certain events may causes unexpected behaviours, use carefully.\n */\n get onWillDrop() {\n return this.component.onWillDrop;\n }\n /**\n * Invoked before an overlay is shown indicating a drop target.\n *\n * Calling `event.preventDefault()` will prevent the overlay being shown and prevent\n * the any subsequent drop event.\n */\n get onWillShowOverlay() {\n return this.component.onWillShowOverlay;\n }\n /**\n * Invoked before a group is dragged.\n *\n * Calling `event.nativeEvent.preventDefault()` will prevent the group drag starting.\n *\n */\n get onWillDragGroup() {\n return this.component.onWillDragGroup;\n }\n /**\n * Invoked before a panel is dragged.\n *\n * Calling `event.nativeEvent.preventDefault()` will prevent the panel drag starting.\n */\n get onWillDragPanel() {\n return this.component.onWillDragPanel;\n }\n /**\n * All panel objects.\n */\n get panels() {\n return this.component.panels;\n }\n /**\n * All group objects.\n */\n get groups() {\n return this.component.groups;\n }\n /**\n * Active panel object.\n */\n get activePanel() {\n return this.component.activePanel;\n }\n /**\n * Active group object.\n */\n get activeGroup() {\n return this.component.activeGroup;\n }\n constructor(component) {\n this.component = component;\n }\n /**\n * Focus the component. Will try to focus an active panel if one exists.\n */\n focus() {\n this.component.focus();\n }\n /**\n * Get a panel object given a `string` id. May return `undefined`.\n */\n getPanel(id) {\n return this.component.getGroupPanel(id);\n }\n /**\n * Force resize the component to an exact width and height. Read about auto-resizing before using.\n */\n layout(width, height, force = false) {\n this.component.layout(width, height, force);\n }\n /**\n * Add a panel and return the created object.\n */\n addPanel(options) {\n return this.component.addPanel(options);\n }\n /**\n * Remove a panel given the panel object.\n */\n removePanel(panel) {\n this.component.removePanel(panel);\n }\n /**\n * Add a group and return the created object.\n */\n addGroup(options) {\n return this.component.addGroup(options);\n }\n /**\n * Close all groups and panels.\n */\n closeAllGroups() {\n return this.component.closeAllGroups();\n }\n /**\n * Remove a group and any panels within the group.\n */\n removeGroup(group) {\n this.component.removeGroup(group);\n }\n /**\n * Get a group object given a `string` id. May return undefined.\n */\n getGroup(id) {\n return this.component.getPanel(id);\n }\n /**\n * Add a floating group\n */\n addFloatingGroup(item, coord) {\n return this.component.addFloatingGroup(item, coord);\n }\n /**\n * Create a component from a serialized object.\n */\n fromJSON(data) {\n this.component.fromJSON(data);\n }\n /**\n * Create a serialized object of the current component.\n */\n toJSON() {\n return this.component.toJSON();\n }\n /**\n * Reset the component back to an empty and default state.\n */\n clear() {\n this.component.clear();\n }\n /**\n * Move the focus progmatically to the next panel or group.\n */\n moveToNext(options) {\n this.component.moveToNext(options);\n }\n /**\n * Move the focus progmatically to the previous panel or group.\n */\n moveToPrevious(options) {\n this.component.moveToPrevious(options);\n }\n maximizeGroup(panel) {\n this.component.maximizeGroup(panel.group);\n }\n hasMaximizedGroup() {\n return this.component.hasMaximizedGroup();\n }\n exitMaximizedGroup() {\n this.component.exitMaximizedGroup();\n }\n get onDidMaximizedGroupChange() {\n return this.component.onDidMaximizedGroupChange;\n }\n /**\n * Add a popout group in a new Window\n */\n addPopoutGroup(item, options) {\n return this.component.addPopoutGroup(item, options);\n }\n}\n","import { addDisposableListener } from '../events';\nimport { CompositeDisposable } from '../lifecycle';\nexport class DragAndDropObserver extends CompositeDisposable {\n constructor(element, callbacks) {\n super();\n this.element = element;\n this.callbacks = callbacks;\n this.target = null;\n this.registerListeners();\n }\n onDragEnter(e) {\n this.target = e.target;\n this.callbacks.onDragEnter(e);\n }\n onDragOver(e) {\n e.preventDefault(); // needed so that the drop event fires (https://stackoverflow.com/questions/21339924/drop-event-not-firing-in-chrome)\n if (this.callbacks.onDragOver) {\n this.callbacks.onDragOver(e);\n }\n }\n onDragLeave(e) {\n if (this.target === e.target) {\n this.target = null;\n this.callbacks.onDragLeave(e);\n }\n }\n onDragEnd(e) {\n this.target = null;\n this.callbacks.onDragEnd(e);\n }\n onDrop(e) {\n this.callbacks.onDrop(e);\n }\n registerListeners() {\n this.addDisposables(addDisposableListener(this.element, 'dragenter', (e) => {\n this.onDragEnter(e);\n }, true));\n this.addDisposables(addDisposableListener(this.element, 'dragover', (e) => {\n this.onDragOver(e);\n }, true));\n this.addDisposables(addDisposableListener(this.element, 'dragleave', (e) => {\n this.onDragLeave(e);\n }));\n this.addDisposables(addDisposableListener(this.element, 'dragend', (e) => {\n this.onDragEnd(e);\n }));\n this.addDisposables(addDisposableListener(this.element, 'drop', (e) => {\n this.onDrop(e);\n }));\n }\n}\n","import { toggleClass } from '../dom';\nimport { DockviewEvent, Emitter } from '../events';\nimport { CompositeDisposable } from '../lifecycle';\nimport { DragAndDropObserver } from './dnd';\nimport { clamp } from '../math';\nexport class WillShowOverlayEvent extends DockviewEvent {\n get nativeEvent() {\n return this.options.nativeEvent;\n }\n get position() {\n return this.options.position;\n }\n constructor(options) {\n super();\n this.options = options;\n }\n}\nexport function directionToPosition(direction) {\n switch (direction) {\n case 'above':\n return 'top';\n case 'below':\n return 'bottom';\n case 'left':\n return 'left';\n case 'right':\n return 'right';\n case 'within':\n return 'center';\n default:\n throw new Error(`invalid direction '${direction}'`);\n }\n}\nexport function positionToDirection(position) {\n switch (position) {\n case 'top':\n return 'above';\n case 'bottom':\n return 'below';\n case 'left':\n return 'left';\n case 'right':\n return 'right';\n case 'center':\n return 'within';\n default:\n throw new Error(`invalid position '${position}'`);\n }\n}\nconst DEFAULT_ACTIVATION_SIZE = {\n value: 20,\n type: 'percentage',\n};\nconst DEFAULT_SIZE = {\n value: 50,\n type: 'percentage',\n};\nconst SMALL_WIDTH_BOUNDARY = 100;\nconst SMALL_HEIGHT_BOUNDARY = 100;\nexport class Droptarget extends CompositeDisposable {\n get state() {\n return this._state;\n }\n constructor(element, options) {\n super();\n this.element = element;\n this.options = options;\n this._onDrop = new Emitter();\n this.onDrop = this._onDrop.event;\n this._onWillShowOverlay = new Emitter();\n this.onWillShowOverlay = this._onWillShowOverlay.event;\n // use a set to take advantage of #<set>.has\n this._acceptedTargetZonesSet = new Set(this.options.acceptedTargetZones);\n this.dnd = new DragAndDropObserver(this.element, {\n onDragEnter: () => undefined,\n onDragOver: (e) => {\n if (this._acceptedTargetZonesSet.size === 0) {\n this.removeDropTarget();\n return;\n }\n const width = this.element.clientWidth;\n const height = this.element.clientHeight;\n if (width === 0 || height === 0) {\n return; // avoid div!0\n }\n const rect = e.currentTarget.getBoundingClientRect();\n const x = e.clientX - rect.left;\n const y = e.clientY - rect.top;\n const quadrant = this.calculateQuadrant(this._acceptedTargetZonesSet, x, y, width, height);\n /**\n * If the event has already been used by another DropTarget instance\n * then don't show a second drop target, only one target should be\n * active at any one time\n */\n if (this.isAlreadyUsed(e) || quadrant === null) {\n // no drop target should be displayed\n this.removeDropTarget();\n return;\n }\n const willShowOverlayEvent = new WillShowOverlayEvent({\n nativeEvent: e,\n position: quadrant,\n });\n /**\n * Provide an opportunity to prevent the overlay appearing and in turn\n * any dnd behaviours\n */\n this._onWillShowOverlay.fire(willShowOverlayEvent);\n if (willShowOverlayEvent.defaultPrevented) {\n this.removeDropTarget();\n return;\n }\n if (typeof this.options.canDisplayOverlay === 'boolean') {\n if (!this.options.canDisplayOverlay) {\n this.removeDropTarget();\n return;\n }\n }\n else if (!this.options.canDisplayOverlay(e, quadrant)) {\n this.removeDropTarget();\n return;\n }\n this.markAsUsed(e);\n if (!this.targetElement) {\n this.targetElement = document.createElement('div');\n this.targetElement.className = 'drop-target-dropzone';\n this.overlayElement = document.createElement('div');\n this.overlayElement.className = 'drop-target-selection';\n this._state = 'center';\n this.targetElement.appendChild(this.overlayElement);\n this.element.classList.add('drop-target');\n this.element.append(this.targetElement);\n }\n this.toggleClasses(quadrant, width, height);\n this._state = quadrant;\n },\n onDragLeave: () => {\n this.removeDropTarget();\n },\n onDragEnd: () => {\n this.removeDropTarget();\n },\n onDrop: (e) => {\n e.preventDefault();\n const state = this._state;\n this.removeDropTarget();\n if (state) {\n // only stop the propagation of the event if we are dealing with it\n // which is only when the target has state\n e.stopPropagation();\n this._onDrop.fire({ position: state, nativeEvent: e });\n }\n },\n });\n this.addDisposables(this._onDrop, this._onWillShowOverlay, this.dnd);\n }\n setTargetZones(acceptedTargetZones) {\n this._acceptedTargetZonesSet = new Set(acceptedTargetZones);\n }\n setOverlayModel(model) {\n this.options.overlayModel = model;\n }\n dispose() {\n this.removeDropTarget();\n super.dispose();\n }\n /**\n * Add a property to the event object for other potential listeners to check\n */\n markAsUsed(event) {\n event[Droptarget.USED_EVENT_ID] = true;\n }\n /**\n * Check is the event has already been used by another instance of DropTarget\n */\n isAlreadyUsed(event) {\n const value = event[Droptarget.USED_EVENT_ID];\n return typeof value === 'boolean' && value;\n }\n toggleClasses(quadrant, width, height) {\n var _a, _b;\n if (!this.overlayElement) {\n return;\n }\n const isSmallX = width < SMALL_WIDTH_BOUNDARY;\n const isSmallY = height < SMALL_HEIGHT_BOUNDARY;\n const isLeft = quadrant === 'left';\n const isRight = quadrant === 'right';\n const isTop = quadrant === 'top';\n const isBottom = quadrant === 'bottom';\n const rightClass = !isSmallX && isRight;\n const leftClass = !isSmallX && isLeft;\n const topClass = !isSmallY && isTop;\n const bottomClass = !isSmallY && isBottom;\n let size = 1;\n const sizeOptions = (_b = (_a = this.options.overlayModel) === null || _a === void 0 ? void 0 : _a.size) !== null && _b !== void 0 ? _b : DEFAULT_SIZE;\n if (sizeOptions.type === 'percentage') {\n size = clamp(sizeOptions.value, 0, 100) / 100;\n }\n else {\n if (rightClass || leftClass) {\n size = clamp(0, sizeOptions.value, width) / width;\n }\n if (topClass || bottomClass) {\n size = clamp(0, sizeOptions.value, height) / height;\n }\n }\n const box = { top: '0px', left: '0px', width: '100%', height: '100%' };\n /**\n * You can also achieve the overlay placement using the transform CSS property\n * to translate and scale the element however this has the undesired effect of\n * 'skewing' the element. Comment left here for anybody that ever revisits this.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/transform\n *\n * right\n * translateX(${100 * (1 - size) / 2}%) scaleX(${scale})\n *\n * left\n * translateX(-${100 * (1 - size) / 2}%) scaleX(${scale})\n *\n * top\n * translateY(-${100 * (1 - size) / 2}%) scaleY(${scale})\n *\n * bottom\n * translateY(${100 * (1 - size) / 2}%) scaleY(${scale})\n */\n if (rightClass) {\n box.left = `${100 * (1 - size)}%`;\n box.width = `${100 * size}%`;\n }\n else if (leftClass) {\n box.width = `${100 * size}%`;\n }\n else if (topClass) {\n box.height = `${100 * size}%`;\n }\n else if (bottomClass) {\n box.top = `${100 * (1 - size)}%`;\n box.height = `${100 * size}%`;\n }\n this.overlayElement.style.top = box.top;\n this.overlayElement.style.left = box.left;\n this.overlayElement.style.width = box.width;\n this.overlayElement.style.height = box.height;\n toggleClass(this.overlayElement, 'dv-drop-target-small-vertical', isSmallY);\n toggleClass(this.overlayElement, 'dv-drop-target-small-horizontal', isSmallX);\n toggleClass(this.overlayElement, 'dv-drop-target-left', isLeft);\n toggleClass(this.overlayElement, 'dv-drop-target-right', isRight);\n toggleClass(this.overlayElement, 'dv-drop-target-top', isTop);\n toggleClass(this.overlayElement, 'dv-drop-target-bottom', isBottom);\n toggleClass(this.overlayElement, 'dv-drop-target-center', quadrant === 'center');\n }\n calculateQuadrant(overlayType, x, y, width, height) {\n var _a, _b;\n const activationSizeOptions = (_b = (_a = this.options.overlayModel) === null || _a === void 0 ? void 0 : _a.activationSize) !== null && _b !== void 0 ? _b : DEFAULT_ACTIVATION_SIZE;\n const isPercentage = activationSizeOptions.type === 'percentage';\n if (isPercentage) {\n return calculateQuadrantAsPercentage(overlayType, x, y, width, height, activationSizeOptions.value);\n }\n return calculateQuadrantAsPixels(overlayType, x, y, width, height, activationSizeOptions.value);\n }\n removeDropTarget() {\n if (this.targetElement) {\n this._state = undefined;\n this.element.removeChild(this.targetElement);\n this.targetElement = undefined;\n this.overlayElement = undefined;\n this.element.classList.remove('drop-target');\n }\n }\n}\nDroptarget.USED_EVENT_ID = '__dockview_droptarget_event_is_used__';\nexport function calculateQuadrantAsPercentage(overlayType, x, y, width, height, threshold) {\n const xp = (100 * x) / width;\n const yp = (100 * y) / height;\n if (overlayType.has('left') && xp < threshold) {\n return 'left';\n }\n if (overlayType.has('right') && xp > 100 - threshold) {\n return 'right';\n }\n if (overlayType.has('top') && yp < threshold) {\n return 'top';\n }\n if (overlayType.has('bottom') && yp > 100 - threshold) {\n return 'bottom';\n }\n if (!overlayType.has('center')) {\n return null;\n }\n return 'center';\n}\nexport function calculateQuadrantAsPixels(overlayType, x, y, width, height, threshold) {\n if (overlayType.has('left') && x < threshold) {\n return 'left';\n }\n if (overlayType.has('right') && x > width - threshold) {\n return 'right';\n }\n if (overlayType.has('top') && y < threshold) {\n return 'top';\n }\n if (overlayType.has('bottom') && y > height - threshold) {\n return 'bottom';\n }\n if (!overlayType.has('center')) {\n return null;\n }\n return 'center';\n}\n","import { CompositeDisposable, MutableDisposable, } from '../../../lifecycle';\nimport { Emitter } from '../../../events';\nimport { trackFocus } from '../../../dom';\nimport { Droptarget } from '../../../dnd/droptarget';\nimport { getPanelData } from '../../../dnd/dataTransfer';\nexport class ContentContainer extends CompositeDisposable {\n get element() {\n return this._element;\n }\n constructor(accessor, group) {\n super();\n this.accessor = accessor;\n this.group = group;\n this.disposable = new MutableDisposable();\n this._onDidFocus = new Emitter();\n this.onDidFocus = this._onDidFocus.event;\n this._onDidBlur = new Emitter();\n this.onDidBlur = this._onDidBlur.event;\n this._element = document.createElement('div');\n this._element.className = 'content-container';\n this._element.tabIndex = -1;\n this.addDisposables(this._onDidFocus, this._onDidBlur);\n this.dropTarget = new Droptarget(this.element, {\n acceptedTargetZones: ['top', 'bottom', 'left', 'right', 'center'],\n canDisplayOverlay: (event, position) => {\n if (this.group.locked === 'no-drop-target' ||\n (this.group.locked && position === 'center')) {\n return false;\n }\n const data = getPanelData();\n if (!data &&\n event.shiftKey &&\n this.group.location.type !== 'floating') {\n return false;\n }\n if (data && data.viewId === this.accessor.id) {\n if (data.groupId === this.group.id) {\n if (position === 'center') {\n // don't allow to drop on self for center position\n return false;\n }\n if (data.panelId === null) {\n // don't allow group move to drop anywhere on self\n return false;\n }\n }\n const groupHasOnePanelAndIsActiveDragElement = this.group.panels.length === 1 &&\n data.groupId === this.group.id;\n return !groupHasOnePanelAndIsActiveDragElement;\n }\n return this.group.canDisplayOverlay(event, position, 'content');\n },\n });\n this.addDisposables(this.dropTarget);\n }\n show() {\n this.element.style.display = '';\n }\n hide() {\n this.element.style.display = 'none';\n }\n renderPanel(panel, options = { asActive: true }) {\n const doRender = options.asActive ||\n (this.panel && this.group.isPanelActive(this.panel));\n if (this.panel &&\n this.panel.view.content.element.parentElement === this._element) {\n /**\n * If the currently attached panel is mounted directly to the content then remove it\n */\n this._element.removeChild(this.panel.view.content.element);\n }\n this.panel = panel;\n let container;\n switch (panel.api.renderer) {\n case 'onlyWhenVisibile':\n this.group.renderContainer.detatch(panel);\n if (this.panel) {\n if (doRender) {\n this._element.appendChild(this.panel.view.content.element);\n }\n }\n container = this._element;\n break;\n case 'always':\n if (panel.view.content.element.parentElement === this._element) {\n this._element.removeChild(panel.view.content.element);\n }\n container = this.group.renderContainer.attach({\n panel,\n referenceContainer: this,\n });\n break;\n }\n if (doRender) {\n const focusTracker = trackFocus(container);\n const disposable = new CompositeDisposable();\n disposable.addDisposables(focusTracker, focusTracker.onDidFocus(() => this._onDidFocus.fire()), focusTracker.onDidBlur(() => this._onDidBlur.fire()));\n this.disposable.value = disposable;\n }\n }\n openPanel(panel) {\n if (this.panel === panel) {\n return;\n }\n this.renderPanel(panel);\n }\n layout(_width, _height) {\n // noop\n }\n closePanel() {\n var _a;\n if (this.panel) {\n if (this.panel.api.renderer === 'onlyWhenVisibile') {\n (_a = this.panel.view.content.element.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(this.panel.view.content.element);\n }\n }\n this.panel = undefined;\n }\n dispose() {\n this.disposable.dispose();\n super.dispose();\n }\n}\n","import { getElementsByTagName } from '../dom';\nimport { addDisposableListener, Emitter } from '../events';\nimport { CompositeDisposable, MutableDisposable, } from '../lifecycle';\nexport class DragHandler extends CompositeDisposable {\n constructor(el) {\n super();\n this.el = el;\n this.dataDisposable = new MutableDisposable();\n this.pointerEventsDisposable = new MutableDisposable();\n this._onDragStart = new Emitter();\n this.onDragStart = this._onDragStart.event;\n this.addDisposables(this._onDragStart, this.dataDisposable, this.pointerEventsDisposable);\n this.configure();\n }\n isCancelled(_event) {\n return false;\n }\n configure() {\n this.addDisposables(this._onDragStart, addDisposableListener(this.el, 'dragstart', (event) => {\n if (event.defaultPrevented || this.isCancelled(event)) {\n event.preventDefault();\n return;\n }\n const iframes = [\n ...getElementsByTagName('iframe'),\n ...getElementsByTagName('webview'),\n ];\n this.pointerEventsDisposable.value = {\n dispose: () => {\n for (const iframe of iframes) {\n iframe.style.pointerEvents = 'auto';\n }\n },\n };\n for (const iframe of iframes) {\n iframe.style.pointerEvents = 'none';\n }\n this.el.classList.add('dv-dragged');\n setTimeout(() => this.el.classList.remove('dv-dragged'), 0);\n this.dataDisposable.value = this.getData(event);\n this._onDragStart.fire(event);\n if (event.dataTransfer) {\n event.dataTransfer.effectAllowed = 'move';\n const hasData = event.dataTransfer.items.length > 0;\n if (!hasData) {\n /**\n * Although this is not used by dockview many third party dnd libraries will check\n * dataTransfer.types to determine valid drag events.\n *\n * For example: in react-dnd if dataTransfer.types is not set then the dragStart event will be cancelled\n * through .preventDefault(). Since this is applied globally to all drag events this would break dockviews\n * dnd logic. You can see the code at\n * https://github.com/react-dnd/react-dnd/blob/main/packages/backend-html5/src/HTML5BackendImpl.ts#L542\n */\n event.dataTransfer.setData('text/plain', '__dockview_internal_drag_event__');\n }\n }\n }), addDisposableListener(this.el, 'dragend', () => {\n this.pointerEventsDisposable.dispose();\n this.dataDisposable.dispose();\n }));\n }\n}\n","import { addDisposableListener, Emitter } from '../../../events';\nimport { CompositeDisposable } from '../../../lifecycle';\nimport { getPanelData, LocalSelectionTransfer, PanelTransfer, } from '../../../dnd/dataTransfer';\nimport { toggleClass } from '../../../dom';\nimport { Droptarget, } from '../../../dnd/droptarget';\nimport { DragHandler } from '../../../dnd/abstractDragHandler';\nclass TabDragHandler extends DragHandler {\n constructor(element, accessor, group, panel) {\n super(element);\n this.accessor = accessor;\n this.group = group;\n this.panel = panel;\n this.panelTransfer = LocalSelectionTransfer.getInstance();\n }\n getData(event) {\n this.panelTransfer.setData([new PanelTransfer(this.accessor.id, this.group.id, this.panel.id)], PanelTransfer.prototype);\n return {\n dispose: () => {\n this.panelTransfer.clearData(PanelTransfer.prototype);\n },\n };\n }\n}\nexport class Tab extends CompositeDisposable {\n get element() {\n return this._element;\n }\n constructor(panel, accessor, group) {\n super();\n this.panel = panel;\n this.accessor = accessor;\n this.group = group;\n this.content = undefined;\n this._onChanged = new Emitter();\n this.onChanged = this._onChanged.event;\n this._onDropped = new Emitter();\n this.onDrop = this._onDropped.event;\n this._onDragStart = new Emitter();\n this.onDragStart = this._onDragStart.event;\n this._element = document.createElement('div');\n this._element.className = 'tab';\n this._element.tabIndex = 0;\n this._element.draggable = true;\n toggleClass(this.element, 'inactive-tab', true);\n const dragHandler = new TabDragHandler(this._element, this.accessor, this.group, this.panel);\n this.dropTarget = new Droptarget(this._element, {\n acceptedTargetZones: ['center'],\n canDisplayOverlay: (event, position) => {\n if (this.group.locked) {\n return false;\n }\n const data = getPanelData();\n if (data && this.accessor.id === data.viewId) {\n if (data.panelId === null &&\n data.groupId === this.group.id) {\n // don't allow group move to drop on self\n return false;\n }\n return this.panel.id !== data.panelId;\n }\n return this.group.model.canDisplayOverlay(event, position, 'tab');\n },\n });\n this.onWillShowOverlay = this.dropTarget.onWillShowOverlay;\n this.addDisposables(this._onChanged, this._onDropped, this._onDragStart, dragHandler.onDragStart((event) => {\n this._onDragStart.fire(event);\n }), dragHandler, addDisposableListener(this._element, 'mousedown', (event) => {\n if (event.defaultPrevented) {\n return;\n }\n this._onChanged.fire(event);\n }), this.dropTarget.onDrop((event) => {\n this._onDropped.fire(event);\n }), this.dropTarget);\n }\n setActive(isActive) {\n toggleClass(this.element, 'active-tab', isActive);\n toggleClass(this.element, 'inactive-tab', !isActive);\n }\n setContent(part) {\n if (this.content) {\n this._element.removeChild(this.content.element);\n }\n this.content = part;\n this._element.appendChild(this.content.element);\n }\n dispose() {\n super.dispose();\n }\n}\n","import { addClasses, removeClasses } from '../dom';\nexport function addGhostImage(dataTransfer, ghostElement) {\n // class dockview provides to force ghost image to be drawn on a different layer and prevent weird rendering issues\n addClasses(ghostElement, 'dv-dragged');\n document.body.appendChild(ghostElement);\n dataTransfer.setDragImage(ghostElement, 0, 0);\n setTimeout(() => {\n removeClasses(ghostElement, 'dv-dragged');\n ghostElement.remove();\n }, 0);\n}\n","import { quasiPreventDefault } from '../dom';\nimport { addDisposableListener } from '../events';\nimport { DragHandler } from './abstractDragHandler';\nimport { LocalSelectionTransfer, PanelTransfer } from './dataTransfer';\nimport { addGhostImage } from './ghost';\nexport class GroupDragHandler extends DragHandler {\n constructor(element, accessor, group) {\n super(element);\n this.accessor = accessor;\n this.group = group;\n this.panelTransfer = LocalSelectionTransfer.getInstance();\n this.addDisposables(addDisposableListener(element, 'mousedown', (e) => {\n if (e.shiftKey) {\n /**\n * You cannot call e.preventDefault() because that will prevent drag events from firing\n * but we also need to stop any group overlay drag events from occuring\n * Use a custom event marker that can be checked by the overlay drag events\n */\n quasiPreventDefault(e);\n }\n }, true));\n }\n isCancelled(_event) {\n if (this.group.api.location.type === 'floating' && !_event.shiftKey) {\n return true;\n }\n return false;\n }\n getData(dragEvent) {\n const dataTransfer = dragEvent.dataTransfer;\n this.panelTransfer.setData([new PanelTransfer(this.accessor.id, this.group.id, null)], PanelTransfer.prototype);\n const style = window.getComputedStyle(this.el);\n const bgColor = style.getPropertyValue('--dv-activegroup-visiblepanel-tab-background-color');\n const color = style.getPropertyValue('--dv-activegroup-visiblepanel-tab-color');\n if (dataTransfer) {\n const ghostElement = document.createElement('div');\n ghostElement.style.backgroundColor = bgColor;\n ghostElement.style.color = color;\n ghostElement.style.padding = '2px 8px';\n ghostElement.style.height = '24px';\n ghostElement.style.fontSize = '11px';\n ghostElement.style.lineHeight = '20px';\n ghostElement.style.borderRadius = '12px';\n ghostElement.style.position = 'absolute';\n ghostElement.textContent = `Multiple Panels (${this.group.size})`;\n addGhostImage(dataTransfer, ghostElement);\n }\n return {\n dispose: () => {\n this.panelTransfer.clearData(PanelTransfer.prototype);\n },\n };\n }\n}\n","import { last } from '../../../array';\nimport { getPanelData } from '../../../dnd/dataTransfer';\nimport { Droptarget, } from '../../../dnd/droptarget';\nimport { GroupDragHandler } from '../../../dnd/groupDragHandler';\nimport { addDisposableListener, Emitter } from '../../../events';\nimport { CompositeDisposable } from '../../../lifecycle';\nexport class VoidContainer extends CompositeDisposable {\n get element() {\n return this._element;\n }\n constructor(accessor, group) {\n super();\n this.accessor = accessor;\n this.group = group;\n this._onDrop = new Emitter();\n this.onDrop = this._onDrop.event;\n this._onDragStart = new Emitter();\n this.onDragStart = this._onDragStart.event;\n this._element = document.createElement('div');\n this._element.className = 'void-container';\n this._element.tabIndex = 0;\n this._element.draggable = true;\n this.addDisposables(this._onDrop, this._onDragStart, addDisposableListener(this._element, 'click', () => {\n this.accessor.doSetGroupActive(this.group);\n }));\n const handler = new GroupDragHandler(this._element, accessor, group);\n this.dropTraget = new Droptarget(this._element, {\n acceptedTargetZones: ['center'],\n canDisplayOverlay: (event, position) => {\n var _a;\n const data = getPanelData();\n if (data && this.accessor.id === data.viewId) {\n if (data.panelId === null &&\n data.groupId === this.group.id) {\n // don't allow group move to drop on self\n return false;\n }\n // don't show the overlay if the tab being dragged is the last panel of this group\n return ((_a = last(this.group.panels)) === null || _a === void 0 ? void 0 : _a.id) !== data.panelId;\n }\n return group.model.canDisplayOverlay(event, position, 'header_space');\n },\n });\n this.onWillShowOverlay = this.dropTraget.onWillShowOverlay;\n this.addDisposables(handler, handler.onDragStart((event) => {\n this._onDragStart.fire(event);\n }), this.dropTraget.onDrop((event) => {\n this._onDrop.fire(event);\n }), this.dropTraget);\n }\n}\n","import { CompositeDisposable, } from '../../../lifecycle';\nimport { addDisposableListener, Emitter } from '../../../events';\nimport { Tab } from '../tab/tab';\nimport { VoidContainer } from './voidContainer';\nimport { toggleClass } from '../../../dom';\nimport { WillShowOverlayLocationEvent, } from '../../dockviewGroupPanelModel';\nexport class TabsContainer extends CompositeDisposable {\n get panels() {\n return this.tabs.map((_) => _.value.panel.id);\n }\n get size() {\n return this.tabs.length;\n }\n get hidden() {\n return this._hidden;\n }\n set hidden(value) {\n this._hidden = value;\n this.element.style.display = value ? 'none' : '';\n }\n show() {\n if (!this.hidden) {\n this.element.style.display = '';\n }\n }\n hide() {\n this._element.style.display = 'none';\n }\n setRightActionsElement(element) {\n if (this.rightActions === element) {\n return;\n }\n if (this.rightActions) {\n this.rightActions.remove();\n this.rightActions = undefined;\n }\n if (element) {\n this.rightActionsContainer.appendChild(element);\n this.rightActions = element;\n }\n }\n setLeftActionsElement(element) {\n if (this.leftActions === element) {\n return;\n }\n if (this.leftActions) {\n this.leftActions.remove();\n this.leftActions = undefined;\n }\n if (element) {\n this.leftActionsContainer.appendChild(element);\n this.leftActions = element;\n }\n }\n setPrefixActionsElement(element) {\n if (this.preActions === element) {\n return;\n }\n if (this.preActions) {\n this.preActions.remove();\n this.preActions = undefined;\n }\n if (element) {\n this.preActionsContainer.appendChild(element);\n this.preActions = element;\n }\n }\n get element() {\n return this._element;\n }\n isActive(tab) {\n return (this.selectedIndex > -1 &&\n this.tabs[this.selectedIndex].value === tab);\n }\n indexOf(id) {\n return this.tabs.findIndex((tab) => tab.value.panel.id === id);\n }\n constructor(accessor, group) {\n super();\n this.accessor = accessor;\n this.group = group;\n this.tabs = [];\n this.selectedIndex = -1;\n this._hidden = false;\n this._onDrop = new Emitter();\n this.onDrop = this._onDrop.event;\n this._onTabDragStart = new Emitter();\n this.onTabDragStart = this._onTabDragStart.event;\n this._onGroupDragStart = new Emitter();\n this.onGroupDragStart = this._onGroupDragStart.event;\n this._onWillShowOverlay = new Emitter();\n this.onWillShowOverlay = this._onWillShowOverlay.event;\n this._element = document.createElement('div');\n this._element.className = 'tabs-and-actions-container';\n toggleClass(this._element, 'dv-full-width-single-tab', this.accessor.options.singleTabMode === 'fullwidth');\n this.rightActionsContainer = document.createElement('div');\n this.rightActionsContainer.className = 'right-actions-container';\n this.leftActionsContainer = document.createElement('div');\n this.leftActionsContainer.className = 'left-actions-container';\n this.preActionsContainer = document.createElement('div');\n this.preActionsContainer.className = 'pre-actions-container';\n this.tabContainer = document.createElement('div');\n this.tabContainer.className = 'tabs-container';\n this.voidContainer = new VoidContainer(this.accessor, this.group);\n this._element.appendChild(this.preActionsContainer);\n this._element.appendChild(this.tabContainer);\n this._element.appendChild(this.leftActionsContainer);\n this._element.appendChild(this.voidContainer.element);\n this._element.appendChild(this.rightActionsContainer);\n this.addDisposables(this.accessor.onDidAddPanel((e) => {\n if (e.api.group === this.group) {\n toggleClass(this._element, 'dv-single-tab', this.size === 1);\n }\n }), this.accessor.onDidRemovePanel((e) => {\n if (e.api.group === this.group) {\n toggleClass(this._element, 'dv-single-tab', this.size === 1);\n }\n }), this._onWillShowOverlay, this._onDrop, this._onTabDragStart, this._onGroupDragStart, this.voidContainer, this.voidContainer.onDragStart((event) => {\n this._onGroupDragStart.fire({\n nativeEvent: event,\n group: this.group,\n });\n }), this.voidContainer.onDrop((event) => {\n this._onDrop.fire({\n event: event.nativeEvent,\n index: this.tabs.length,\n });\n }), this.voidContainer.onWillShowOverlay((event) => {\n this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {\n kind: 'header_space',\n }));\n }), addDisposableListener(this.voidContainer.element, 'mousedown', (event) => {\n const isFloatingGroupsEnabled = !this.accessor.options.disableFloatingGroups;\n if (isFloatingGroupsEnabled &&\n event.shiftKey &&\n this.group.api.location.type !== 'floating') {\n event.preventDefault();\n const { top, left } = this.element.getBoundingClientRect();\n const { top: rootTop, left: rootLeft } = this.accessor.element.getBoundingClientRect();\n this.accessor.addFloatingGroup(this.group, {\n x: left - rootLeft + 20,\n y: top - rootTop + 20,\n }, { inDragMode: true });\n }\n }), addDisposableListener(this.tabContainer, 'mousedown', (event) => {\n if (event.defaultPrevented) {\n return;\n }\n const isLeftClick = event.button === 0;\n if (isLeftClick) {\n this.accessor.doSetGroupActive(this.group);\n }\n }));\n }\n setActive(_isGroupActive) {\n // noop\n }\n addTab(tab, index = this.tabs.length) {\n if (index < 0 || index > this.tabs.length) {\n throw new Error('invalid location');\n }\n this.tabContainer.insertBefore(tab.value.element, this.tabContainer.children[index]);\n this.tabs = [\n ...this.tabs.slice(0, index),\n tab,\n ...this.tabs.slice(index),\n ];\n if (this.selectedIndex < 0) {\n this.selectedIndex = index;\n }\n }\n delete(id) {\n const index = this.tabs.findIndex((tab) => tab.value.panel.id === id);\n const tabToRemove = this.tabs.splice(index, 1)[0];\n const { value, disposable } = tabToRemove;\n disposable.dispose();\n value.dispose();\n value.element.remove();\n }\n setActivePanel(panel) {\n this.tabs.forEach((tab) => {\n const isActivePanel = panel.id === tab.value.panel.id;\n tab.value.setActive(isActivePanel);\n });\n }\n openPanel(panel, index = this.tabs.length) {\n var _a;\n if (this.tabs.find((tab) => tab.value.panel.id === panel.id)) {\n return;\n }\n const tab = new Tab(panel, this.accessor, this.group);\n if (!((_a = panel.view) === null || _a === void 0 ? void 0 : _a.tab)) {\n throw new Error('invalid header component');\n }\n tab.setContent(panel.view.tab);\n const disposable = new CompositeDisposable(tab.onDragStart((event) => {\n this._onTabDragStart.fire({ nativeEvent: event, panel });\n }), tab.onChanged((event) => {\n const isFloatingGroupsEnabled = !this.accessor.options.disableFloatingGroups;\n const isFloatingWithOnePanel = this.group.api.location.type === 'floating' &&\n this.size === 1;\n if (isFloatingGroupsEnabled &&\n !isFloatingWithOnePanel &&\n event.shiftKey) {\n event.preventDefault();\n const panel = this.accessor.getGroupPanel(tab.panel.id);\n const { top, left } = tab.element.getBoundingClientRect();\n const { top: rootTop, left: rootLeft } = this.accessor.element.getBoundingClientRect();\n this.accessor.addFloatingGroup(panel, {\n x: left - rootLeft,\n y: top - rootTop,\n }, { inDragMode: true });\n return;\n }\n const isLeftClick = event.button === 0;\n if (!isLeftClick || event.defaultPrevented) {\n return;\n }\n if (this.group.activePanel !== panel) {\n this.group.model.openPanel(panel);\n }\n }), tab.onDrop((event) => {\n this._onDrop.fire({\n event: event.nativeEvent,\n index: this.tabs.findIndex((x) => x.value === tab),\n });\n }), tab.onWillShowOverlay((event) => {\n this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, { kind: 'tab' }));\n }));\n const value = { value: tab, disposable };\n this.addTab(value, index);\n }\n closePanel(panel) {\n this.delete(panel.id);\n }\n dispose() {\n super.dispose();\n for (const { value, disposable } of this.tabs) {\n disposable.dispose();\n value.dispose();\n }\n this.tabs = [];\n }\n}\n","import { DockviewApi } from '../api/component.api';\nimport { getPanelData } from '../dnd/dataTransfer';\nimport { isAncestor, toggleClass } from '../dom';\nimport { addDisposableListener, DockviewEvent, Emitter, } from '../events';\nimport { CompositeDisposable } from '../lifecycle';\nimport { ContentContainer, } from './components/panel/content';\nimport { TabsContainer, } from './components/titlebar/tabsContainer';\nexport class DockviewDidDropEvent extends DockviewEvent {\n get nativeEvent() {\n return this.options.nativeEvent;\n }\n get position() {\n return this.options.position;\n }\n get panel() {\n return this.options.panel;\n }\n get group() {\n return this.options.group;\n }\n get api() {\n return this.options.api;\n }\n constructor(options) {\n super();\n this.options = options;\n }\n getData() {\n return this.options.getData();\n }\n}\nexport class DockviewWillDropEvent extends DockviewDidDropEvent {\n get kind() {\n return this._kind;\n }\n constructor(options) {\n super(options);\n this._kind = options.kind;\n }\n}\nexport class WillShowOverlayLocationEvent {\n get kind() {\n return this._kind;\n }\n get nativeEvent() {\n return this.event.nativeEvent;\n }\n get position() {\n return this.event.position;\n }\n get defaultPrevented() {\n return this.event.defaultPrevented;\n }\n preventDefault() {\n this.event.preventDefault();\n }\n constructor(event, options) {\n this.event = event;\n this._kind = options.kind;\n }\n}\nexport class DockviewGroupPanelModel extends CompositeDisposable {\n get element() {\n throw new Error('not supported');\n }\n get activePanel() {\n return this._activePanel;\n }\n get locked() {\n return this._locked;\n }\n set locked(value) {\n this._locked = value;\n toggleClass(this.container, 'locked-groupview', value === 'no-drop-target' || value);\n }\n get isActive() {\n return this._isGroupActive;\n }\n get panels() {\n return this._panels;\n }\n get size() {\n return this._panels.length;\n }\n get isEmpty() {\n return this._panels.length === 0;\n }\n get hasWatermark() {\n return !!(this.watermark && this.container.contains(this.watermark.element));\n }\n get header() {\n return this.tabsContainer;\n }\n get isContentFocused() {\n if (!document.activeElement) {\n return false;\n }\n return isAncestor(document.activeElement, this.contentContainer.element);\n }\n get location() {\n return this._location;\n }\n set location(value) {\n this._location = value;\n toggleClass(this.container, 'dv-groupview-floating', false);\n toggleClass(this.container, 'dv-groupview-popout', false);\n switch (value.type) {\n case 'grid':\n this.contentContainer.dropTarget.setTargetZones([\n 'top',\n 'bottom',\n 'left',\n 'right',\n 'center',\n ]);\n break;\n case 'floating':\n this.contentContainer.dropTarget.setTargetZones(['center']);\n this.contentContainer.dropTarget.setTargetZones(value\n ? ['center']\n : ['top', 'bottom', 'left', 'right', 'center']);\n toggleClass(this.container, 'dv-groupview-floating', true);\n break;\n case 'popout':\n this.contentContainer.dropTarget.setTargetZones(['center']);\n toggleClass(this.container, 'dv-groupview-popout', true);\n break;\n }\n this.groupPanel.api._onDidLocationChange.fire({\n location: this.location,\n });\n }\n constructor(container, accessor, id, options, groupPanel) {\n var _a;\n super();\n this.container = container;\n this.accessor = accessor;\n this.id = id;\n this.options = options;\n this.groupPanel = groupPanel;\n this._isGroupActive = false;\n this._locked = false;\n this._location = { type: 'grid' };\n this.mostRecentlyUsed = [];\n this._onDidChange = new Emitter();\n this.onDidChange = this._onDidChange.event;\n this._width = 0;\n this._height = 0;\n this._panels = [];\n this._onMove = new Emitter();\n this.onMove = this._onMove.event;\n this._onDidDrop = new Emitter();\n this.onDidDrop = this._onDidDrop.event;\n this._onWillDrop = new Emitter();\n this.onWillDrop = this._onWillDrop.event;\n this._onWillShowOverlay = new Emitter();\n this.onWillShowOverlay = this._onWillShowOverlay.event;\n this._onTabDragStart = new Emitter();\n this.onTabDragStart = this._onTabDragStart.event;\n this._onGroupDragStart = new Emitter();\n this.onGroupDragStart = this._onGroupDragStart.event;\n this._onDidAddPanel = new Emitter();\n this.onDidAddPanel = this._onDidAddPanel.event;\n this._onDidRemovePanel = new Emitter();\n this.onDidRemovePanel = this._onDidRemovePanel.event;\n this._onDidActivePanelChange = new Emitter();\n this.onDidActivePanelChange = this._onDidActivePanelChange.event;\n this._overwriteRenderContainer = null;\n toggleClass(this.container, 'groupview', true);\n this._api = new DockviewApi(this.accessor);\n this.tabsContainer = new TabsContainer(this.accessor, this.groupPanel);\n this.contentContainer = new ContentContainer(this.accessor, this);\n container.append(this.tabsContainer.element, this.contentContainer.element);\n this.header.hidden = !!options.hideHeader;\n this.locked = (_a = options.locked) !== null && _a !== void 0 ? _a : false;\n this.addDisposables(this._onTabDragStart, this._onGroupDragStart, this._onWillShowOverlay, this.tabsContainer.onTabDragStart((event) => {\n this._onTabDragStart.fire(event);\n }), this.tabsContainer.onGroupDragStart((event) => {\n this._onGroupDragStart.fire(event);\n }), this.tabsContainer.onDrop((event) => {\n this.handleDropEvent('header', event.event, 'center', event.index);\n }), this.contentContainer.onDidFocus(() => {\n this.accessor.doSetGroupActive(this.groupPanel);\n }), this.contentContainer.onDidBlur(() => {\n // noop\n }), this.contentContainer.dropTarget.onDrop((event) => {\n this.handleDropEvent('content', event.nativeEvent, event.position);\n }), this.tabsContainer.onWillShowOverlay((event) => {\n this._onWillShowOverlay.fire(event);\n }), this.contentContainer.dropTarget.onWillShowOverlay((event) => {\n this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {\n kind: 'content',\n }));\n }), this._onMove, this._onDidChange, this._onDidDrop, this._onWillDrop, this._onDidAddPanel, this._onDidRemovePanel, this._onDidActivePanelChange);\n }\n focusContent() {\n this.contentContainer.element.focus();\n }\n set renderContainer(value) {\n this.panels.forEach((panel) => {\n this.renderContainer.detatch(panel);\n });\n this._overwriteRenderContainer = value;\n this.panels.forEach((panel) => {\n this.rerender(panel);\n });\n }\n get renderContainer() {\n var _a;\n return ((_a = this._overwriteRenderContainer) !== null && _a !== void 0 ? _a : this.accessor.overlayRenderContainer);\n }\n initialize() {\n if (this.options.panels) {\n this.options.panels.forEach((panel) => {\n this.doAddPanel(panel);\n });\n }\n if (this.options.activePanel) {\n this.openPanel(this.options.activePanel);\n }\n // must be run after the constructor otherwise this.parent may not be\n // correctly initialized\n this.setActive(this.isActive, true);\n this.updateContainer();\n if (this.accessor.options.createRightHeaderActionsElement) {\n this._rightHeaderActions =\n this.accessor.options.createRightHeaderActionsElement(this.groupPanel);\n this.addDisposables(this._rightHeaderActions);\n this._rightHeaderActions.init({\n containerApi: this._api,\n api: this.groupPanel.api,\n });\n this.tabsContainer.setRightActionsElement(this._rightHeaderActions.element);\n }\n if (this.accessor.options.createLeftHeaderActionsElement) {\n this._leftHeaderActions =\n this.accessor.options.createLeftHeaderActionsElement(this.groupPanel);\n this.addDisposables(this._leftHeaderActions);\n this._leftHeaderActions.init({\n containerApi: this._api,\n api: this.groupPanel.api,\n });\n this.tabsContainer.setLeftActionsElement(this._leftHeaderActions.element);\n }\n if (this.accessor.options.createPrefixHeaderActionsElement) {\n this._prefixHeaderActions =\n this.accessor.options.createPrefixHeaderActionsElement(this.groupPanel);\n this.addDisposables(this._prefixHeaderActions);\n this._prefixHeaderActions.init({\n containerApi: this._api,\n api: this.groupPanel.api,\n });\n this.tabsContainer.setPrefixActionsElement(this._prefixHeaderActions.element);\n }\n }\n rerender(panel) {\n this.contentContainer.renderPanel(panel, { asActive: false });\n }\n indexOf(panel) {\n return this.tabsContainer.indexOf(panel.id);\n }\n toJSON() {\n var _a;\n const result = {\n views: this.tabsContainer.panels,\n activeView: (_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.id,\n id: this.id,\n };\n if (this.locked !== false) {\n result.locked = this.locked;\n }\n if (this.header.hidden) {\n result.hideHeader = true;\n }\n return result;\n }\n moveToNext(options) {\n if (!options) {\n options = {};\n }\n if (!options.panel) {\n options.panel = this.activePanel;\n }\n const index = options.panel ? this.panels.indexOf(options.panel) : -1;\n let normalizedIndex;\n if (index < this.panels.length - 1) {\n normalizedIndex = index + 1;\n }\n else if (!options.suppressRoll) {\n normalizedIndex = 0;\n }\n else {\n return;\n }\n this.openPanel(this.panels[normalizedIndex]);\n }\n moveToPrevious(options) {\n if (!options) {\n options = {};\n }\n if (!options.panel) {\n options.panel = this.activePanel;\n }\n if (!options.panel) {\n return;\n }\n const index = this.panels.indexOf(options.panel);\n let normalizedIndex;\n if (index > 0) {\n normalizedIndex = index - 1;\n }\n else if (!options.suppressRoll) {\n normalizedIndex = this.panels.length - 1;\n }\n else {\n return;\n }\n this.openPanel(this.panels[normalizedIndex]);\n }\n containsPanel(panel) {\n return this.panels.includes(panel);\n }\n init(_params) {\n //noop\n }\n update(_params) {\n //noop\n }\n focus() {\n var _a;\n (_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.focus();\n }\n openPanel(panel, options = {}) {\n /**\n * set the panel group\n * add the panel\n * check if group active\n * check if panel active\n */\n if (typeof options.index !== 'number' ||\n options.index > this.panels.length) {\n options.index = this.panels.length;\n }\n const skipSetActive = !!options.skipSetActive;\n // ensure the group is updated before we fire any events\n panel.updateParentGroup(this.groupPanel, {\n skipSetActive: options.skipSetActive,\n });\n this.doAddPanel(panel, options.index, {\n skipSetActive: skipSetActive,\n });\n if (this._activePanel === panel) {\n this.contentContainer.renderPanel(panel, { asActive: true });\n return;\n }\n if (!skipSetActive) {\n this.doSetActivePanel(panel);\n }\n if (!options.skipSetGroupActive) {\n this.accessor.doSetGroupActive(this.groupPanel);\n }\n if (!options.skipSetActive) {\n this.updateContainer();\n }\n }\n removePanel(groupItemOrId, options = {\n skipSetActive: false,\n }) {\n const id = typeof groupItemOrId === 'string'\n ? groupItemOrId\n : groupItemOrId.id;\n const panelToRemove = this._panels.find((panel) => panel.id === id);\n if (!panelToRemove) {\n throw new Error('invalid operation');\n }\n return this._removePanel(panelToRemove, options);\n }\n closeAllPanels() {\n if (this.panels.length > 0) {\n // take a copy since we will be edting the array as we iterate through\n const arrPanelCpy = [...this.panels];\n for (const panel of arrPanelCpy) {\n this.doClose(panel);\n }\n }\n else {\n this.accessor.removeGroup(this.groupPanel);\n }\n }\n closePanel(panel) {\n this.doClose(panel);\n }\n doClose(panel) {\n this.accessor.removePanel(panel);\n }\n isPanelActive(panel) {\n return this._activePanel === panel;\n }\n updateActions(element) {\n this.tabsContainer.setRightActionsElement(element);\n }\n setActive(isGroupActive, force = false) {\n if (!force && this.isActive === isGroupActive) {\n return;\n }\n this._isGroupActive = isGroupActive;\n toggleClass(this.container, 'active-group', isGroupActive);\n toggleClass(this.container, 'inactive-group', !isGroupActive);\n this.tabsContainer.setActive(this.isActive);\n if (!this._activePanel && this.panels.length > 0) {\n this.doSetActivePanel(this.panels[0]);\n }\n this.updateContainer();\n }\n layout(width, height) {\n var _a;\n this._width = width;\n this._height = height;\n this.contentContainer.layout(this._width, this._height);\n if ((_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.layout) {\n this._activePanel.layout(this._width, this._height);\n }\n }\n _removePanel(panel, options) {\n const isActivePanel = this._activePanel === panel;\n this.doRemovePanel(panel);\n if (isActivePanel && this.panels.length > 0) {\n const nextPanel = this.mostRecentlyUsed[0];\n this.openPanel(nextPanel, {\n skipSetActive: options.skipSetActive,\n skipSetGroupActive: options.skipSetActiveGroup,\n });\n }\n if (this._activePanel && this.panels.length === 0) {\n this.doSetActivePanel(undefined);\n }\n if (!options.skipSetActive) {\n this.updateContainer();\n }\n return panel;\n }\n doRemovePanel(panel) {\n const index = this.panels.indexOf(panel);\n if (this._activePanel === panel) {\n this.contentContainer.closePanel();\n }\n this.tabsContainer.delete(panel.id);\n this._panels.splice(index, 1);\n if (this.mostRecentlyUsed.includes(panel)) {\n this.mostRecentlyUsed.splice(this.mostRecentlyUsed.indexOf(panel), 1);\n }\n this._onDidRemovePanel.fire({ panel });\n }\n doAddPanel(panel, index = this.panels.length, options = { skipSetActive: false }) {\n const existingPanel = this._panels.indexOf(panel);\n const hasExistingPanel = existingPanel > -1;\n this.tabsContainer.show();\n this.contentContainer.show();\n this.tabsContainer.openPanel(panel, index);\n if (!options.skipSetActive) {\n this.contentContainer.openPanel(panel);\n }\n if (hasExistingPanel) {\n // TODO - need to ensure ordering hasn't changed and if it has need to re-order this.panels\n return;\n }\n this.updateMru(panel);\n this.panels.splice(index, 0, panel);\n this._onDidAddPanel.fire({ panel });\n }\n doSetActivePanel(panel) {\n if (this._activePanel === panel) {\n return;\n }\n this._activePanel = panel;\n if (panel) {\n this.tabsContainer.setActivePanel(panel);\n panel.layout(this._width, this._height);\n this.updateMru(panel);\n this._onDidActivePanelChange.fire({\n panel,\n });\n }\n }\n updateMru(panel) {\n if (this.mostRecentlyUsed.includes(panel)) {\n this.mostRecentlyUsed.splice(this.mostRecentlyUsed.indexOf(panel), 1);\n }\n this.mostRecentlyUsed = [panel, ...this.mostRecentlyUsed];\n }\n updateContainer() {\n var _a, _b;\n toggleClass(this.container, 'empty', this.isEmpty);\n this.panels.forEach((panel) => panel.runEvents());\n if (this.isEmpty && !this.watermark) {\n const watermark = this.accessor.createWatermarkComponent();\n watermark.init({\n containerApi: this._api,\n group: this.groupPanel,\n });\n this.watermark = watermark;\n addDisposableListener(this.watermark.element, 'click', () => {\n if (!this.isActive) {\n this.accessor.doSetGroupActive(this.groupPanel);\n }\n });\n this.tabsContainer.hide();\n this.contentContainer.element.appendChild(this.watermark.element);\n this.watermark.updateParentGroup(this.groupPanel, true);\n }\n if (!this.isEmpty && this.watermark) {\n this.watermark.element.remove();\n (_b = (_a = this.watermark).dispose) === null || _b === void 0 ? void 0 : _b.call(_a);\n this.watermark = undefined;\n this.tabsContainer.show();\n }\n }\n canDisplayOverlay(event, position, target) {\n // custom overlay handler\n if (this.accessor.options.showDndOverlay) {\n return this.accessor.options.showDndOverlay({\n nativeEvent: event,\n target,\n group: this.accessor.getPanel(this.id),\n position,\n getData: getPanelData,\n });\n }\n return false;\n }\n handleDropEvent(type, event, position, index) {\n if (this.locked === 'no-drop-target') {\n return;\n }\n function getKind() {\n switch (type) {\n case 'header':\n return typeof index === 'number' ? 'tab' : 'header_space';\n case 'content':\n return 'content';\n }\n }\n const panel = typeof index === 'number' ? this.panels[index] : undefined;\n const willDropEvent = new DockviewWillDropEvent({\n nativeEvent: event,\n position,\n panel,\n getData: () => getPanelData(),\n kind: getKind(),\n group: this.groupPanel,\n api: this._api,\n });\n this._onWillDrop.fire(willDropEvent);\n if (willDropEvent.defaultPrevented) {\n return;\n }\n const data = getPanelData();\n if (data && data.viewId === this.accessor.id) {\n if (data.panelId === null) {\n // this is a group move dnd event\n const { groupId } = data;\n this._onMove.fire({\n target: position,\n groupId: groupId,\n index,\n });\n return;\n }\n const fromSameGroup = this.tabsContainer.indexOf(data.panelId) !== -1;\n if (fromSameGroup && this.tabsContainer.size === 1) {\n return;\n }\n const { groupId, panelId } = data;\n const isSameGroup = this.id === groupId;\n if (isSameGroup && !position) {\n const oldIndex = this.tabsContainer.indexOf(panelId);\n if (oldIndex === index) {\n return;\n }\n }\n this._onMove.fire({\n target: position,\n groupId: data.groupId,\n itemId: data.panelId,\n index,\n });\n }\n else {\n this._onDidDrop.fire(new DockviewDidDropEvent({\n nativeEvent: event,\n position,\n panel,\n getData: () => getPanelData(),\n group: this.groupPanel,\n api: this._api,\n }));\n }\n }\n dispose() {\n var _a, _b, _c;\n super.dispose();\n (_a = this.watermark) === null || _a === void 0 ? void 0 : _a.element.remove();\n (_c = (_b = this.watermark) === null || _b === void 0 ? void 0 : _b.dispose) === null || _c === void 0 ? void 0 : _c.call(_b);\n this.watermark = undefined;\n for (const panel of this.panels) {\n panel.dispose();\n }\n this.tabsContainer.dispose();\n this.contentContainer.dispose();\n }\n}\n","import { isInDocument, watchElementResize } from './dom';\nimport { CompositeDisposable } from './lifecycle';\nexport class Resizable extends CompositeDisposable {\n get element() {\n return this._element;\n }\n get disableResizing() {\n return this._disableResizing;\n }\n set disableResizing(value) {\n this._disableResizing = value;\n }\n constructor(parentElement, disableResizing = false) {\n super();\n this._disableResizing = disableResizing;\n this._element = parentElement;\n this.addDisposables(watchElementResize(this._element, (entry) => {\n if (this.isDisposed) {\n /**\n * resize is delayed through requestAnimationFrame so there is a small chance\n * the component has already been disposed of\n */\n return;\n }\n if (this.disableResizing) {\n return;\n }\n if (!this._element.offsetParent) {\n /**\n * offsetParent === null is equivalent to display: none being set on the element or one\n * of it's parents. In the display: none case the size will become (0, 0) which we do\n * not want to propagate.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetParent\n *\n * You could use checkVisibility() but at the time of writing it's not supported across\n * all Browsers\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/checkVisibility\n */\n return;\n }\n if (!isInDocument(this._element)) {\n /**\n * since the event is dispatched through requestAnimationFrame there is a small chance\n * the component is no longer attached to the DOM, if that is the case the dimensions\n * are mostly likely all zero and meaningless. we should skip this case.\n */\n return;\n }\n const { width, height } = entry.contentRect;\n this.layout(width, height);\n }));\n }\n}\n","import { Emitter, Event, TickDelayedEvent } from '../events';\nimport { getGridLocation, Gridview } from './gridview';\nimport { Disposable } from '../lifecycle';\nimport { sequentialNumberGenerator } from '../math';\nimport { Sizing } from '../splitview/splitview';\nimport { Resizable } from '../resizable';\nconst nextLayoutId = sequentialNumberGenerator();\nexport function toTarget(direction) {\n switch (direction) {\n case 'left':\n return 'left';\n case 'right':\n return 'right';\n case 'above':\n return 'top';\n case 'below':\n return 'bottom';\n case 'within':\n default:\n return 'center';\n }\n}\nexport class BaseGrid extends Resizable {\n get id() {\n return this._id;\n }\n get size() {\n return this._groups.size;\n }\n get groups() {\n return Array.from(this._groups.values()).map((_) => _.value);\n }\n get width() {\n return this.gridview.width;\n }\n get height() {\n return this.gridview.height;\n }\n get minimumHeight() {\n return this.gridview.minimumHeight;\n }\n get maximumHeight() {\n return this.gridview.maximumHeight;\n }\n get minimumWidth() {\n return this.gridview.minimumWidth;\n }\n get maximumWidth() {\n return this.gridview.maximumWidth;\n }\n get activeGroup() {\n return this._activeGroup;\n }\n get locked() {\n return this.gridview.locked;\n }\n set locked(value) {\n this.gridview.locked = value;\n }\n constructor(options) {\n super(document.createElement('div'), options.disableAutoResizing);\n this._id = nextLayoutId.next();\n this._groups = new Map();\n this._onDidLayoutChange = new Emitter();\n this.onDidLayoutChange = this._onDidLayoutChange.event;\n this._onDidRemove = new Emitter();\n this.onDidRemove = this._onDidRemove.event;\n this._onDidAdd = new Emitter();\n this.onDidAdd = this._onDidAdd.event;\n this._onDidActiveChange = new Emitter();\n this.onDidActiveChange = this._onDidActiveChange.event;\n this._bufferOnDidLayoutChange = new TickDelayedEvent();\n this.element.style.height = '100%';\n this.element.style.width = '100%';\n options.parentElement.appendChild(this.element);\n this.gridview = new Gridview(!!options.proportionalLayout, options.styles, options.orientation);\n this.gridview.locked = !!options.locked;\n this.element.appendChild(this.gridview.element);\n this.layout(0, 0, true); // set some elements height/widths\n this.addDisposables(Disposable.from(() => {\n var _a;\n (_a = this.element.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(this.element);\n }), this.gridview.onDidChange(() => {\n this._bufferOnDidLayoutChange.fire();\n }), Event.any(this.onDidAdd, this.onDidRemove, this.onDidActiveChange)(() => {\n this._bufferOnDidLayoutChange.fire();\n }), this._bufferOnDidLayoutChange.onEvent(() => {\n this._onDidLayoutChange.fire();\n }), this._bufferOnDidLayoutChange);\n }\n setVisible(panel, visible) {\n this.gridview.setViewVisible(getGridLocation(panel.element), visible);\n this._onDidLayoutChange.fire();\n }\n isVisible(panel) {\n return this.gridview.isViewVisible(getGridLocation(panel.element));\n }\n maximizeGroup(panel) {\n this.gridview.maximizeView(panel);\n this.doSetGroupActive(panel);\n }\n isMaximizedGroup(panel) {\n return this.gridview.maximizedView() === panel;\n }\n exitMaximizedGroup() {\n this.gridview.exitMaximizedView();\n }\n hasMaximizedGroup() {\n return this.gridview.hasMaximizedView();\n }\n get onDidMaximizedGroupChange() {\n return this.gridview.onDidMaximizedNodeChange;\n }\n doAddGroup(group, location = [0], size) {\n this.gridview.addView(group, size !== null && size !== void 0 ? size : Sizing.Distribute, location);\n this._onDidAdd.fire(group);\n }\n doRemoveGroup(group, options) {\n if (!this._groups.has(group.id)) {\n throw new Error('invalid operation');\n }\n const item = this._groups.get(group.id);\n const view = this.gridview.remove(group, Sizing.Distribute);\n if (item && !(options === null || options === void 0 ? void 0 : options.skipDispose)) {\n item.disposable.dispose();\n item.value.dispose();\n this._groups.delete(group.id);\n this._onDidRemove.fire(group);\n }\n if (!(options === null || options === void 0 ? void 0 : options.skipActive) && this._activeGroup === group) {\n const groups = Array.from(this._groups.values());\n this.doSetGroupActive(groups.length > 0 ? groups[0].value : undefined);\n }\n return view;\n }\n getPanel(id) {\n var _a;\n return (_a = this._groups.get(id)) === null || _a === void 0 ? void 0 : _a.value;\n }\n doSetGroupActive(group) {\n if (this._activeGroup === group) {\n return;\n }\n if (this._activeGroup) {\n this._activeGroup.setActive(false);\n }\n if (group) {\n group.setActive(true);\n }\n this._activeGroup = group;\n this._onDidActiveChange.fire(group);\n }\n removeGroup(group) {\n this.doRemoveGroup(group);\n }\n moveToNext(options) {\n var _a;\n if (!options) {\n options = {};\n }\n if (!options.group) {\n if (!this.activeGroup) {\n return;\n }\n options.group = this.activeGroup;\n }\n const location = getGridLocation(options.group.element);\n const next = (_a = this.gridview.next(location)) === null || _a === void 0 ? void 0 : _a.view;\n this.doSetGroupActive(next);\n }\n moveToPrevious(options) {\n var _a;\n if (!options) {\n options = {};\n }\n if (!options.group) {\n if (!this.activeGroup) {\n return;\n }\n options.group = this.activeGroup;\n }\n const location = getGridLocation(options.group.element);\n const next = (_a = this.gridview.previous(location)) === null || _a === void 0 ? void 0 : _a.view;\n this.doSetGroupActive(next);\n }\n layout(width, height, forceResize) {\n const different = forceResize !== null && forceResize !== void 0 ? forceResize : (width !== this.width || height !== this.height);\n if (!different) {\n return;\n }\n this.gridview.element.style.height = `${height}px`;\n this.gridview.element.style.width = `${width}px`;\n this.gridview.layout(width, height);\n }\n dispose() {\n this._onDidActiveChange.dispose();\n this._onDidAdd.dispose();\n this._onDidRemove.dispose();\n this._onDidLayoutChange.dispose();\n for (const group of this.groups) {\n group.dispose();\n }\n this.gridview.dispose();\n super.dispose();\n }\n}\n","import { DockviewEvent, Emitter } from '../events';\nimport { CompositeDisposable, MutableDisposable } from '../lifecycle';\nexport class WillFocusEvent extends DockviewEvent {\n constructor() {\n super();\n }\n}\n/**\n * A core api implementation that should be used across all panel-like objects\n */\nexport class PanelApiImpl extends CompositeDisposable {\n get isFocused() {\n return this._isFocused;\n }\n get isActive() {\n return this._isActive;\n }\n get isVisible() {\n return this._isVisible;\n }\n get width() {\n return this._width;\n }\n get height() {\n return this._height;\n }\n constructor(id) {\n super();\n this.id = id;\n this._isFocused = false;\n this._isActive = false;\n this._isVisible = true;\n this._width = 0;\n this._height = 0;\n this.panelUpdatesDisposable = new MutableDisposable();\n this._onDidDimensionChange = new Emitter();\n this.onDidDimensionsChange = this._onDidDimensionChange.event;\n this._onDidChangeFocus = new Emitter();\n this.onDidFocusChange = this._onDidChangeFocus.event;\n //\n this._onWillFocus = new Emitter();\n this.onWillFocus = this._onWillFocus.event;\n //\n this._onDidVisibilityChange = new Emitter();\n this.onDidVisibilityChange = this._onDidVisibilityChange.event;\n this._onWillVisibilityChange = new Emitter();\n this.onWillVisibilityChange = this._onWillVisibilityChange.event;\n this._onDidActiveChange = new Emitter();\n this.onDidActiveChange = this._onDidActiveChange.event;\n this._onActiveChange = new Emitter();\n this.onActiveChange = this._onActiveChange.event;\n this._onUpdateParameters = new Emitter();\n this.onUpdateParameters = this._onUpdateParameters.event;\n this.addDisposables(this.onDidFocusChange((event) => {\n this._isFocused = event.isFocused;\n }), this.onDidActiveChange((event) => {\n this._isActive = event.isActive;\n }), this.onDidVisibilityChange((event) => {\n this._isVisible = event.isVisible;\n }), this.onDidDimensionsChange((event) => {\n this._width = event.width;\n this._height = event.height;\n }), this.panelUpdatesDisposable, this._onDidDimensionChange, this._onDidChangeFocus, this._onDidVisibilityChange, this._onDidActiveChange, this._onWillFocus, this._onActiveChange, this._onUpdateParameters, this._onWillFocus, this._onWillVisibilityChange, this._onUpdateParameters);\n }\n initialize(panel) {\n this.panelUpdatesDisposable.value = this._onUpdateParameters.event((parameters) => {\n panel.update({\n params: parameters,\n });\n });\n }\n setVisible(isVisible) {\n this._onWillVisibilityChange.fire({ isVisible });\n }\n setActive() {\n this._onActiveChange.fire();\n }\n updateParameters(parameters) {\n this._onUpdateParameters.fire(parameters);\n }\n}\n","import { Emitter } from '../events';\nimport { PanelApiImpl } from './panelApi';\nexport class SplitviewPanelApiImpl extends PanelApiImpl {\n //\n constructor(id) {\n super(id);\n this._onDidConstraintsChangeInternal = new Emitter();\n this.onDidConstraintsChangeInternal = this._onDidConstraintsChangeInternal.event;\n //\n this._onDidConstraintsChange = new Emitter({\n replay: true,\n });\n this.onDidConstraintsChange = this._onDidConstraintsChange.event;\n //\n this._onDidSizeChange = new Emitter();\n this.onDidSizeChange = this._onDidSizeChange.event;\n this.addDisposables(this._onDidConstraintsChangeInternal, this._onDidConstraintsChange, this._onDidSizeChange);\n }\n setConstraints(value) {\n this._onDidConstraintsChangeInternal.fire(value);\n }\n setSize(event) {\n this._onDidSizeChange.fire(event);\n }\n}\n","import { Emitter } from '../events';\nimport { SplitviewPanelApiImpl } from './splitviewPanelApi';\nexport class PaneviewPanelApiImpl extends SplitviewPanelApiImpl {\n set pane(pane) {\n this._pane = pane;\n }\n constructor(id) {\n super(id);\n this._onDidExpansionChange = new Emitter({\n replay: true,\n });\n this.onDidExpansionChange = this._onDidExpansionChange.event;\n this._onMouseEnter = new Emitter({});\n this.onMouseEnter = this._onMouseEnter.event;\n this._onMouseLeave = new Emitter({});\n this.onMouseLeave = this._onMouseLeave.event;\n this.addDisposables(this._onDidExpansionChange, this._onMouseEnter, this._onMouseLeave);\n }\n setExpanded(isExpanded) {\n var _a;\n (_a = this._pane) === null || _a === void 0 ? void 0 : _a.setExpanded(isExpanded);\n }\n get isExpanded() {\n var _a;\n return !!((_a = this._pane) === null || _a === void 0 ? void 0 : _a.isExpanded());\n }\n}\n","import { trackFocus } from '../dom';\nimport { CompositeDisposable } from '../lifecycle';\nimport { WillFocusEvent } from '../api/panelApi';\nexport class BasePanelView extends CompositeDisposable {\n get element() {\n return this._element;\n }\n get width() {\n return this._width;\n }\n get height() {\n return this._height;\n }\n get params() {\n var _a;\n return (_a = this._params) === null || _a === void 0 ? void 0 : _a.params;\n }\n constructor(id, component, api) {\n super();\n this.id = id;\n this.component = component;\n this.api = api;\n this._height = 0;\n this._width = 0;\n this._element = document.createElement('div');\n this._element.tabIndex = -1;\n this._element.style.outline = 'none';\n this._element.style.height = '100%';\n this._element.style.width = '100%';\n this._element.style.overflow = 'hidden';\n const focusTracker = trackFocus(this._element);\n this.addDisposables(this.api, focusTracker.onDidFocus(() => {\n this.api._onDidChangeFocus.fire({ isFocused: true });\n }), focusTracker.onDidBlur(() => {\n this.api._onDidChangeFocus.fire({ isFocused: false });\n }), focusTracker);\n }\n focus() {\n const event = new WillFocusEvent();\n this.api._onWillFocus.fire(event);\n if (event.defaultPrevented) {\n return;\n }\n this._element.focus();\n }\n layout(width, height) {\n this._width = width;\n this._height = height;\n this.api._onDidDimensionChange.fire({ width, height });\n if (this.part) {\n if (this._params) {\n this.part.update(this._params.params);\n }\n }\n }\n init(parameters) {\n this._params = parameters;\n this.part = this.getComponent();\n }\n update(event) {\n var _a, _b;\n // merge the new parameters with the existing parameters\n this._params = Object.assign(Object.assign({}, this._params), { params: Object.assign(Object.assign({}, (_a = this._params) === null || _a === void 0 ? void 0 : _a.params), event.params) });\n /**\n * delete new keys that have a value of undefined,\n * allow values of null\n */\n for (const key of Object.keys(event.params)) {\n if (event.params[key] === undefined) {\n delete this._params.params[key];\n }\n }\n // update the view with the updated props\n (_b = this.part) === null || _b === void 0 ? void 0 : _b.update({ params: this._params.params });\n }\n toJSON() {\n var _a, _b;\n const params = (_b = (_a = this._params) === null || _a === void 0 ? void 0 : _a.params) !== null && _b !== void 0 ? _b : {};\n return {\n id: this.id,\n component: this.component,\n params: Object.keys(params).length > 0 ? params : undefined,\n };\n }\n dispose() {\n var _a;\n this.api.dispose();\n (_a = this.part) === null || _a === void 0 ? void 0 : _a.dispose();\n super.dispose();\n }\n}\n","import { PaneviewPanelApiImpl } from '../api/paneviewPanelApi';\nimport { addClasses, removeClasses } from '../dom';\nimport { addDisposableListener, Emitter } from '../events';\nimport { BasePanelView, } from '../gridview/basePanelView';\nimport { Orientation } from '../splitview/splitview';\nexport class PaneviewPanel extends BasePanelView {\n set orientation(value) {\n this._orientation = value;\n }\n get orientation() {\n return this._orientation;\n }\n get minimumSize() {\n const headerSize = this.headerSize;\n const expanded = this.isExpanded();\n const minimumBodySize = expanded ? this._minimumBodySize : 0;\n return headerSize + minimumBodySize;\n }\n get maximumSize() {\n const headerSize = this.headerSize;\n const expanded = this.isExpanded();\n const maximumBodySize = expanded ? this._maximumBodySize : 0;\n return headerSize + maximumBodySize;\n }\n get size() {\n return this._size;\n }\n get orthogonalSize() {\n return this._orthogonalSize;\n }\n set orthogonalSize(size) {\n this._orthogonalSize = size;\n }\n get minimumBodySize() {\n return this._minimumBodySize;\n }\n set minimumBodySize(value) {\n this._minimumBodySize = typeof value === 'number' ? value : 0;\n }\n get maximumBodySize() {\n return this._maximumBodySize;\n }\n set maximumBodySize(value) {\n this._maximumBodySize =\n typeof value === 'number' ? value : Number.POSITIVE_INFINITY;\n }\n get headerVisible() {\n return this._headerVisible;\n }\n set headerVisible(value) {\n this._headerVisible = value;\n this.header.style.display = value ? '' : 'none';\n }\n constructor(id, component, headerComponent, orientation, isExpanded, isHeaderVisible) {\n super(id, component, new PaneviewPanelApiImpl(id));\n this.headerComponent = headerComponent;\n this._onDidChangeExpansionState = new Emitter({ replay: true });\n this.onDidChangeExpansionState = this._onDidChangeExpansionState.event;\n this._onDidChange = new Emitter();\n this.onDidChange = this._onDidChange.event;\n this.headerSize = 22;\n this._orthogonalSize = 0;\n this._size = 0;\n this._minimumBodySize = 100;\n this._maximumBodySize = Number.POSITIVE_INFINITY;\n this._isExpanded = false;\n this.expandedSize = 0;\n this.api.pane = this; // TODO cannot use 'this' before 'super'\n this.api.initialize(this);\n this._isExpanded = isExpanded;\n this._headerVisible = isHeaderVisible;\n this._onDidChangeExpansionState.fire(this.isExpanded()); // initialize value\n this._orientation = orientation;\n this.element.classList.add('pane');\n this.addDisposables(this.api.onWillVisibilityChange((event) => {\n const { isVisible } = event;\n const { accessor } = this._params;\n accessor.setVisible(this, isVisible);\n }), this.api.onDidSizeChange((event) => {\n this._onDidChange.fire({ size: event.size });\n }), addDisposableListener(this.element, 'mouseenter', (ev) => {\n this.api._onMouseEnter.fire(ev);\n }), addDisposableListener(this.element, 'mouseleave', (ev) => {\n this.api._onMouseLeave.fire(ev);\n }));\n this.addDisposables(this._onDidChangeExpansionState, this.onDidChangeExpansionState((isPanelExpanded) => {\n this.api._onDidExpansionChange.fire({\n isExpanded: isPanelExpanded,\n });\n }), this.api.onDidFocusChange((e) => {\n if (!this.header) {\n return;\n }\n if (e.isFocused) {\n addClasses(this.header, 'focused');\n }\n else {\n removeClasses(this.header, 'focused');\n }\n }));\n this.renderOnce();\n }\n setVisible(isVisible) {\n this.api._onDidVisibilityChange.fire({ isVisible });\n }\n setActive(isActive) {\n this.api._onDidActiveChange.fire({ isActive });\n }\n isExpanded() {\n return this._isExpanded;\n }\n setExpanded(expanded) {\n if (this._isExpanded === expanded) {\n return;\n }\n this._isExpanded = expanded;\n if (expanded) {\n if (this.animationTimer) {\n clearTimeout(this.animationTimer);\n }\n if (this.body) {\n this.element.appendChild(this.body);\n }\n }\n else {\n this.animationTimer = setTimeout(() => {\n var _a;\n (_a = this.body) === null || _a === void 0 ? void 0 : _a.remove();\n }, 200);\n }\n this._onDidChange.fire(expanded ? { size: this.width } : {});\n this._onDidChangeExpansionState.fire(expanded);\n }\n layout(size, orthogonalSize) {\n this._size = size;\n this._orthogonalSize = orthogonalSize;\n const [width, height] = this.orientation === Orientation.HORIZONTAL\n ? [size, orthogonalSize]\n : [orthogonalSize, size];\n if (this.isExpanded()) {\n this.expandedSize = width;\n }\n super.layout(width, height);\n }\n init(parameters) {\n var _a, _b;\n super.init(parameters);\n if (typeof parameters.minimumBodySize === 'number') {\n this.minimumBodySize = parameters.minimumBodySize;\n }\n if (typeof parameters.maximumBodySize === 'number') {\n this.maximumBodySize = parameters.maximumBodySize;\n }\n this.bodyPart = this.getBodyComponent();\n this.headerPart = this.getHeaderComponent();\n this.bodyPart.init(Object.assign(Object.assign({}, parameters), { api: this.api }));\n this.headerPart.init(Object.assign(Object.assign({}, parameters), { api: this.api }));\n (_a = this.body) === null || _a === void 0 ? void 0 : _a.append(this.bodyPart.element);\n (_b = this.header) === null || _b === void 0 ? void 0 : _b.append(this.headerPart.element);\n if (typeof parameters.isExpanded === 'boolean') {\n this.setExpanded(parameters.isExpanded);\n }\n }\n toJSON() {\n const params = this._params;\n return Object.assign(Object.assign({}, super.toJSON()), { headerComponent: this.headerComponent, title: params.title });\n }\n renderOnce() {\n this.header = document.createElement('div');\n this.header.tabIndex = 0;\n this.header.className = 'pane-header';\n this.header.style.height = `${this.headerSize}px`;\n this.header.style.lineHeight = `${this.headerSize}px`;\n this.header.style.minHeight = `${this.headerSize}px`;\n this.header.style.maxHeight = `${this.headerSize}px`;\n this.element.appendChild(this.header);\n this.body = document.createElement('div');\n this.body.className = 'pane-body';\n this.element.appendChild(this.body);\n }\n // TODO slightly hacky by-pass of the component to create a body and header component\n getComponent() {\n return {\n update: (params) => {\n var _a, _b;\n (_a = this.bodyPart) === null || _a === void 0 ? void 0 : _a.update({ params });\n (_b = this.headerPart) === null || _b === void 0 ? void 0 : _b.update({ params });\n },\n dispose: () => {\n var _a, _b;\n (_a = this.bodyPart) === null || _a === void 0 ? void 0 : _a.dispose();\n (_b = this.headerPart) === null || _b === void 0 ? void 0 : _b.dispose();\n },\n };\n }\n}\n","import { PaneviewApi } from '../api/component.api';\nimport { DragHandler } from '../dnd/abstractDragHandler';\nimport { getPaneData, LocalSelectionTransfer, PaneTransfer, } from '../dnd/dataTransfer';\nimport { Droptarget } from '../dnd/droptarget';\nimport { Emitter } from '../events';\nimport { PaneviewPanel, } from './paneviewPanel';\nexport class DraggablePaneviewPanel extends PaneviewPanel {\n constructor(accessor, id, component, headerComponent, orientation, isExpanded, disableDnd) {\n super(id, component, headerComponent, orientation, isExpanded, true);\n this.accessor = accessor;\n this._onDidDrop = new Emitter();\n this.onDidDrop = this._onDidDrop.event;\n if (!disableDnd) {\n this.initDragFeatures();\n }\n }\n initDragFeatures() {\n if (!this.header) {\n return;\n }\n const id = this.id;\n const accessorId = this.accessor.id;\n this.header.draggable = true;\n this.handler = new (class PaneDragHandler extends DragHandler {\n getData() {\n LocalSelectionTransfer.getInstance().setData([new PaneTransfer(accessorId, id)], PaneTransfer.prototype);\n return {\n dispose: () => {\n LocalSelectionTransfer.getInstance().clearData(PaneTransfer.prototype);\n },\n };\n }\n })(this.header);\n this.target = new Droptarget(this.element, {\n acceptedTargetZones: ['top', 'bottom'],\n overlayModel: {\n activationSize: { type: 'percentage', value: 50 },\n },\n canDisplayOverlay: (event) => {\n const data = getPaneData();\n if (data) {\n if (data.paneId !== this.id &&\n data.viewId === this.accessor.id) {\n return true;\n }\n }\n if (this.accessor.options.showDndOverlay) {\n return this.accessor.options.showDndOverlay({\n nativeEvent: event,\n getData: getPaneData,\n panel: this,\n });\n }\n return false;\n },\n });\n this.addDisposables(this._onDidDrop, this.handler, this.target, this.target.onDrop((event) => {\n this.onDrop(event);\n }));\n }\n onDrop(event) {\n const data = getPaneData();\n if (!data || data.viewId !== this.accessor.id) {\n // if there is no local drag event for this panel\n // or if the drag event was creating by another Paneview instance\n this._onDidDrop.fire(Object.assign(Object.assign({}, event), { panel: this, api: new PaneviewApi(this.accessor), getData: getPaneData }));\n return;\n }\n const containerApi = this._params\n .containerApi;\n const panelId = data.paneId;\n const existingPanel = containerApi.getPanel(panelId);\n if (!existingPanel) {\n // if the panel doesn't exist\n this._onDidDrop.fire(Object.assign(Object.assign({}, event), { panel: this, getData: getPaneData, api: new PaneviewApi(this.accessor) }));\n return;\n }\n const allPanels = containerApi.panels;\n const fromIndex = allPanels.indexOf(existingPanel);\n let toIndex = containerApi.panels.indexOf(this);\n if (event.position === 'left' || event.position === 'top') {\n toIndex = Math.max(0, toIndex - 1);\n }\n if (event.position === 'right' || event.position === 'bottom') {\n if (fromIndex > toIndex) {\n toIndex++;\n }\n toIndex = Math.min(allPanels.length - 1, toIndex);\n }\n containerApi.movePanel(fromIndex, toIndex);\n }\n}\n","import { Emitter } from '../events';\nimport { PanelApiImpl } from './panelApi';\nexport class GridviewPanelApiImpl extends PanelApiImpl {\n constructor(id, panel) {\n super(id);\n this._onDidConstraintsChangeInternal = new Emitter();\n this.onDidConstraintsChangeInternal = this._onDidConstraintsChangeInternal.event;\n this._onDidConstraintsChange = new Emitter();\n this.onDidConstraintsChange = this._onDidConstraintsChange.event;\n this._onDidSizeChange = new Emitter();\n this.onDidSizeChange = this._onDidSizeChange.event;\n this.addDisposables(this._onDidConstraintsChangeInternal, this._onDidConstraintsChange, this._onDidSizeChange);\n if (panel) {\n this.initialize(panel);\n }\n }\n setConstraints(value) {\n this._onDidConstraintsChangeInternal.fire(value);\n }\n setSize(event) {\n this._onDidSizeChange.fire(event);\n }\n}\n","import { BasePanelView, } from './basePanelView';\nimport { GridviewPanelApiImpl, } from '../api/gridviewPanelApi';\nimport { Emitter } from '../events';\nexport class GridviewPanel extends BasePanelView {\n get priority() {\n return this._priority;\n }\n get snap() {\n return this._snap;\n }\n get minimumWidth() {\n const width = typeof this._minimumWidth === 'function'\n ? this._minimumWidth()\n : this._minimumWidth;\n if (width !== this._evaluatedMinimumWidth) {\n this._evaluatedMinimumWidth = width;\n this.updateConstraints();\n }\n return width;\n }\n get minimumHeight() {\n const height = typeof this._minimumHeight === 'function'\n ? this._minimumHeight()\n : this._minimumHeight;\n if (height !== this._evaluatedMinimumHeight) {\n this._evaluatedMinimumHeight = height;\n this.updateConstraints();\n }\n return height;\n }\n get maximumHeight() {\n const height = typeof this._maximumHeight === 'function'\n ? this._maximumHeight()\n : this._maximumHeight;\n if (height !== this._evaluatedMaximumHeight) {\n this._evaluatedMaximumHeight = height;\n this.updateConstraints();\n }\n return height;\n }\n get maximumWidth() {\n const width = typeof this._maximumWidth === 'function'\n ? this._maximumWidth()\n : this._maximumWidth;\n if (width !== this._evaluatedMaximumWidth) {\n this._evaluatedMaximumWidth = width;\n this.updateConstraints();\n }\n return width;\n }\n get isActive() {\n return this.api.isActive;\n }\n constructor(id, component, options, api) {\n super(id, component, api !== null && api !== void 0 ? api : new GridviewPanelApiImpl(id));\n this._evaluatedMinimumWidth = 0;\n this._evaluatedMaximumWidth = Number.MAX_SAFE_INTEGER;\n this._evaluatedMinimumHeight = 0;\n this._evaluatedMaximumHeight = Number.MAX_SAFE_INTEGER;\n this._minimumWidth = 0;\n this._minimumHeight = 0;\n this._maximumWidth = Number.MAX_SAFE_INTEGER;\n this._maximumHeight = Number.MAX_SAFE_INTEGER;\n this._snap = false;\n this._onDidChange = new Emitter();\n this.onDidChange = this._onDidChange.event;\n if (typeof (options === null || options === void 0 ? void 0 : options.minimumWidth) === 'number') {\n this._minimumWidth = options.minimumWidth;\n }\n if (typeof (options === null || options === void 0 ? void 0 : options.maximumWidth) === 'number') {\n this._maximumWidth = options.maximumWidth;\n }\n if (typeof (options === null || options === void 0 ? void 0 : options.minimumHeight) === 'number') {\n this._minimumHeight = options.minimumHeight;\n }\n if (typeof (options === null || options === void 0 ? void 0 : options.maximumHeight) === 'number') {\n this._maximumHeight = options.maximumHeight;\n }\n this.api.initialize(this); // TODO: required to by-pass 'super before this' requirement\n this.addDisposables(this.api.onWillVisibilityChange((event) => {\n const { isVisible } = event;\n const { accessor } = this._params;\n accessor.setVisible(this, isVisible);\n }), this.api.onActiveChange(() => {\n const { accessor } = this._params;\n accessor.doSetGroupActive(this);\n }), this.api.onDidConstraintsChangeInternal((event) => {\n if (typeof event.minimumWidth === 'number' ||\n typeof event.minimumWidth === 'function') {\n this._minimumWidth = event.minimumWidth;\n }\n if (typeof event.minimumHeight === 'number' ||\n typeof event.minimumHeight === 'function') {\n this._minimumHeight = event.minimumHeight;\n }\n if (typeof event.maximumWidth === 'number' ||\n typeof event.maximumWidth === 'function') {\n this._maximumWidth = event.maximumWidth;\n }\n if (typeof event.maximumHeight === 'number' ||\n typeof event.maximumHeight === 'function') {\n this._maximumHeight = event.maximumHeight;\n }\n }), this.api.onDidSizeChange((event) => {\n this._onDidChange.fire({\n height: event.height,\n width: event.width,\n });\n }), this._onDidChange);\n }\n setVisible(isVisible) {\n this.api._onDidVisibilityChange.fire({ isVisible });\n }\n setActive(isActive) {\n this.api._onDidActiveChange.fire({ isActive });\n }\n init(parameters) {\n if (parameters.maximumHeight) {\n this._maximumHeight = parameters.maximumHeight;\n }\n if (parameters.minimumHeight) {\n this._minimumHeight = parameters.minimumHeight;\n }\n if (parameters.maximumWidth) {\n this._maximumWidth = parameters.maximumWidth;\n }\n if (parameters.minimumWidth) {\n this._minimumWidth = parameters.minimumWidth;\n }\n this._priority = parameters.priority;\n this._snap = !!parameters.snap;\n super.init(parameters);\n if (typeof parameters.isVisible === 'boolean') {\n this.setVisible(parameters.isVisible);\n }\n }\n updateConstraints() {\n this.api._onDidConstraintsChange.fire({\n minimumWidth: this._evaluatedMinimumWidth,\n maximumWidth: this._evaluatedMaximumWidth,\n minimumHeight: this._evaluatedMinimumHeight,\n maximumHeight: this._evaluatedMaximumHeight,\n });\n }\n toJSON() {\n const state = super.toJSON();\n const maximum = (value) => value === Number.MAX_SAFE_INTEGER ? undefined : value;\n const minimum = (value) => (value <= 0 ? undefined : value);\n return Object.assign(Object.assign({}, state), { minimumHeight: minimum(this.minimumHeight), maximumHeight: maximum(this.maximumHeight), minimumWidth: minimum(this.minimumWidth), maximumWidth: maximum(this.maximumWidth), snap: this.snap, priority: this.priority });\n }\n}\n","import { positionToDirection } from '../dnd/droptarget';\nimport { Emitter } from '../events';\nimport { GridviewPanelApiImpl } from './gridviewPanelApi';\n// TODO find a better way to initialize and avoid needing null checks\nconst NOT_INITIALIZED_MESSAGE = 'DockviewGroupPanelApiImpl not initialized';\nexport class DockviewGroupPanelApiImpl extends GridviewPanelApiImpl {\n get location() {\n if (!this._group) {\n throw new Error(NOT_INITIALIZED_MESSAGE);\n }\n return this._group.model.location;\n }\n constructor(id, accessor) {\n super(id);\n this.accessor = accessor;\n this._onDidLocationChange = new Emitter();\n this.onDidLocationChange = this._onDidLocationChange.event;\n this.addDisposables(this._onDidLocationChange);\n }\n close() {\n if (!this._group) {\n return;\n }\n return this.accessor.removeGroup(this._group);\n }\n getWindow() {\n return this.location.type === 'popout'\n ? this.location.getWindow()\n : window;\n }\n moveTo(options) {\n var _a, _b, _c;\n if (!this._group) {\n throw new Error(NOT_INITIALIZED_MESSAGE);\n }\n const group = (_a = options.group) !== null && _a !== void 0 ? _a : this.accessor.addGroup({\n direction: positionToDirection((_b = options.position) !== null && _b !== void 0 ? _b : 'right'),\n skipSetActive: true,\n });\n this.accessor.moveGroupOrPanel({\n from: { groupId: this._group.id },\n to: {\n group,\n position: options.group\n ? (_c = options.position) !== null && _c !== void 0 ? _c : 'center'\n : 'center',\n },\n });\n }\n maximize() {\n if (!this._group) {\n throw new Error(NOT_INITIALIZED_MESSAGE);\n }\n if (this.location.type !== 'grid') {\n // only grid groups can be maximized\n return;\n }\n this.accessor.maximizeGroup(this._group);\n }\n isMaximized() {\n if (!this._group) {\n throw new Error(NOT_INITIALIZED_MESSAGE);\n }\n return this.accessor.isMaximizedGroup(this._group);\n }\n exitMaximized() {\n if (!this._group) {\n throw new Error(NOT_INITIALIZED_MESSAGE);\n }\n if (this.isMaximized()) {\n this.accessor.exitMaximizedGroup();\n }\n }\n initialize(group) {\n this._group = group;\n }\n}\n","import { DockviewGroupPanelModel, } from './dockviewGroupPanelModel';\nimport { GridviewPanel } from '../gridview/gridviewPanel';\nimport { DockviewGroupPanelApiImpl, } from '../api/dockviewGroupPanelApi';\nconst MINIMUM_DOCKVIEW_GROUP_PANEL_WIDTH = 100;\nconst MINIMUM_DOCKVIEW_GROUP_PANEL_HEIGHT = 100;\nexport class DockviewGroupPanel extends GridviewPanel {\n get panels() {\n return this._model.panels;\n }\n get activePanel() {\n return this._model.activePanel;\n }\n get size() {\n return this._model.size;\n }\n get model() {\n return this._model;\n }\n get locked() {\n return this._model.locked;\n }\n set locked(value) {\n this._model.locked = value;\n }\n get header() {\n return this._model.header;\n }\n constructor(accessor, id, options) {\n super(id, 'groupview_default', {\n minimumHeight: MINIMUM_DOCKVIEW_GROUP_PANEL_HEIGHT,\n minimumWidth: MINIMUM_DOCKVIEW_GROUP_PANEL_WIDTH,\n }, new DockviewGroupPanelApiImpl(id, accessor));\n this.api.initialize(this); // cannot use 'this' after after 'super' call\n this._model = new DockviewGroupPanelModel(this.element, accessor, id, options, this);\n }\n focus() {\n if (!this.api.isActive) {\n this.api.setActive();\n }\n super.focus();\n }\n initialize() {\n this._model.initialize();\n }\n setActive(isActive) {\n super.setActive(isActive);\n this.model.setActive(isActive);\n }\n layout(width, height) {\n super.layout(width, height);\n this.model.layout(width, height);\n }\n getComponent() {\n return this._model;\n }\n toJSON() {\n return this.model.toJSON();\n }\n}\n","export function isPanelOptionsWithPanel(data) {\n if (data.referencePanel) {\n return true;\n }\n return false;\n}\nexport function isPanelOptionsWithGroup(data) {\n if (data.referenceGroup) {\n return true;\n }\n return false;\n}\nexport function isGroupOptionsWithPanel(data) {\n if (data.referencePanel) {\n return true;\n }\n return false;\n}\nexport function isGroupOptionsWithGroup(data) {\n if (data.referenceGroup) {\n return true;\n }\n return false;\n}\n","import { Emitter } from '../events';\nimport { GridviewPanelApiImpl } from './gridviewPanelApi';\nimport { CompositeDisposable, MutableDisposable } from '../lifecycle';\nexport class DockviewPanelApiImpl extends GridviewPanelApiImpl {\n get location() {\n return this.group.api.location;\n }\n get title() {\n return this.panel.title;\n }\n get isGroupActive() {\n return this.group.isActive;\n }\n get renderer() {\n return this.panel.renderer;\n }\n set group(value) {\n const oldGroup = this._group;\n if (this._group !== value) {\n this._group = value;\n this._onDidGroupChange.fire({});\n this.setupGroupEventListeners(oldGroup);\n this._onDidLocationChange.fire({\n location: this.group.api.location,\n });\n }\n }\n get group() {\n return this._group;\n }\n constructor(panel, group, accessor) {\n super(panel.id);\n this.panel = panel;\n this.accessor = accessor;\n this._onDidTitleChange = new Emitter();\n this.onDidTitleChange = this._onDidTitleChange.event;\n this._onDidActiveGroupChange = new Emitter();\n this.onDidActiveGroupChange = this._onDidActiveGroupChange.event;\n this._onDidGroupChange = new Emitter();\n this.onDidGroupChange = this._onDidGroupChange.event;\n this._onDidRendererChange = new Emitter();\n this.onDidRendererChange = this._onDidRendererChange.event;\n this._onDidLocationChange = new Emitter();\n this.onDidLocationChange = this._onDidLocationChange.event;\n this.groupEventsDisposable = new MutableDisposable();\n this.initialize(panel);\n this._group = group;\n this.setupGroupEventListeners();\n this.addDisposables(this.groupEventsDisposable, this._onDidRendererChange, this._onDidTitleChange, this._onDidGroupChange, this._onDidActiveGroupChange, this._onDidLocationChange);\n }\n getWindow() {\n return this.group.api.getWindow();\n }\n moveTo(options) {\n var _a;\n this.accessor.moveGroupOrPanel({\n from: { groupId: this._group.id, panelId: this.panel.id },\n to: {\n group: options.group,\n position: (_a = options.position) !== null && _a !== void 0 ? _a : 'center',\n index: options.index,\n },\n });\n }\n setTitle(title) {\n this.panel.setTitle(title);\n }\n setRenderer(renderer) {\n this.panel.setRenderer(renderer);\n }\n close() {\n this.group.model.closePanel(this.panel);\n }\n maximize() {\n this.group.api.maximize();\n }\n isMaximized() {\n return this.group.api.isMaximized();\n }\n exitMaximized() {\n this.group.api.exitMaximized();\n }\n setupGroupEventListeners(previousGroup) {\n var _a;\n let _trackGroupActive = (_a = previousGroup === null || previousGroup === void 0 ? void 0 : previousGroup.isActive) !== null && _a !== void 0 ? _a : false; // prevent duplicate events with same state\n this.groupEventsDisposable.value = new CompositeDisposable(this.group.api.onDidVisibilityChange((event) => {\n if (!event.isVisible && this.isVisible) {\n this._onDidVisibilityChange.fire(event);\n }\n else if (event.isVisible &&\n !this.isVisible &&\n this.group.model.isPanelActive(this.panel)) {\n this._onDidVisibilityChange.fire(event);\n }\n }), this.group.api.onDidLocationChange((event) => {\n if (this.group !== this.panel.group) {\n return;\n }\n this._onDidLocationChange.fire(event);\n }), this.group.api.onDidActiveChange(() => {\n if (this.group !== this.panel.group) {\n return;\n }\n if (_trackGroupActive !== this.isGroupActive) {\n _trackGroupActive = this.isGroupActive;\n this._onDidActiveGroupChange.fire({\n isActive: this.isGroupActive,\n });\n }\n }));\n }\n}\n","import { DockviewPanelApiImpl, } from '../api/dockviewPanelApi';\nimport { CompositeDisposable } from '../lifecycle';\nimport { WillFocusEvent } from '../api/panelApi';\nexport class DockviewPanel extends CompositeDisposable {\n get params() {\n return this._params;\n }\n get title() {\n return this._title;\n }\n get group() {\n return this._group;\n }\n get renderer() {\n var _a;\n return (_a = this._renderer) !== null && _a !== void 0 ? _a : this.accessor.renderer;\n }\n constructor(id, accessor, containerApi, group, view, options) {\n super();\n this.id = id;\n this.accessor = accessor;\n this.containerApi = containerApi;\n this.view = view;\n this._renderer = options.renderer;\n this._group = group;\n this.api = new DockviewPanelApiImpl(this, this._group, accessor);\n this.addDisposables(this.api.onActiveChange(() => {\n accessor.setActivePanel(this);\n }), this.api.onDidSizeChange((event) => {\n // forward the resize event to the group since if you want to resize a panel\n // you are actually just resizing the panels parent which is the group\n this.group.api.setSize(event);\n }), this.api.onDidRendererChange((event) => {\n this.group.model.rerender(this);\n }));\n }\n init(params) {\n this._params = params.params;\n this.view.init(Object.assign(Object.assign({}, params), { api: this.api, containerApi: this.containerApi }));\n this.setTitle(params.title);\n }\n focus() {\n const event = new WillFocusEvent();\n this.api._onWillFocus.fire(event);\n if (event.defaultPrevented) {\n return;\n }\n if (!this.api.isActive) {\n this.api.setActive();\n }\n }\n toJSON() {\n return {\n id: this.id,\n contentComponent: this.view.contentComponent,\n tabComponent: this.view.tabComponent,\n params: Object.keys(this._params || {}).length > 0\n ? this._params\n : undefined,\n title: this.title,\n renderer: this._renderer,\n };\n }\n setTitle(title) {\n const didTitleChange = title !== this.title;\n if (didTitleChange) {\n this._title = title;\n this.view.update({\n params: {\n params: this._params,\n title: this.title,\n },\n });\n this.api._onDidTitleChange.fire({ title });\n }\n }\n setRenderer(renderer) {\n const didChange = renderer !== this.renderer;\n if (didChange) {\n this._renderer = renderer;\n this.api._onDidRendererChange.fire({\n renderer: renderer,\n });\n }\n }\n update(event) {\n var _a;\n // merge the new parameters with the existing parameters\n this._params = Object.assign(Object.assign({}, ((_a = this._params) !== null && _a !== void 0 ? _a : {})), event.params);\n /**\n * delete new keys that have a value of undefined,\n * allow values of null\n */\n for (const key of Object.keys(event.params)) {\n if (event.params[key] === undefined) {\n delete this._params[key];\n }\n }\n // update the view with the updated props\n this.view.update({\n params: {\n params: this._params,\n title: this.title,\n },\n });\n }\n updateParentGroup(group, options) {\n this._group = group;\n this.api.group = this._group;\n const isPanelVisible = this._group.model.isPanelActive(this);\n const isActive = this.group.api.isActive && isPanelVisible;\n if (!(options === null || options === void 0 ? void 0 : options.skipSetActive)) {\n if (this.api.isActive !== isActive) {\n this.api._onDidActiveChange.fire({\n isActive: this.group.api.isActive && isPanelVisible,\n });\n }\n }\n if (this.api.isVisible !== isPanelVisible) {\n this.api._onDidVisibilityChange.fire({\n isVisible: isPanelVisible,\n });\n }\n }\n runEvents() {\n const isPanelVisible = this._group.model.isPanelActive(this);\n const isActive = this.group.api.isActive && isPanelVisible;\n if (this.api.isActive !== isActive) {\n this.api._onDidActiveChange.fire({\n isActive: this.group.api.isActive && isPanelVisible,\n });\n }\n if (this.api.isVisible !== isPanelVisible) {\n this.api._onDidVisibilityChange.fire({\n isVisible: isPanelVisible,\n });\n }\n }\n layout(width, height) {\n // TODO: Can we somehow do height without header height or indicate what the header height is?\n this.api._onDidDimensionChange.fire({\n width,\n height: height,\n });\n this.view.layout(width, height);\n }\n dispose() {\n this.api.dispose();\n this.view.dispose();\n }\n}\n","const createSvgElementFromPath = (params) => {\n const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n svg.setAttributeNS(null, 'height', params.height);\n svg.setAttributeNS(null, 'width', params.width);\n svg.setAttributeNS(null, 'viewBox', params.viewbox);\n svg.setAttributeNS(null, 'aria-hidden', 'false');\n svg.setAttributeNS(null, 'focusable', 'false');\n svg.classList.add('dockview-svg');\n const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n path.setAttributeNS(null, 'd', params.path);\n svg.appendChild(path);\n return svg;\n};\nexport const createCloseButton = () => createSvgElementFromPath({\n width: '11',\n height: '11',\n viewbox: '0 0 28 28',\n path: 'M2.1 27.3L0 25.2L11.55 13.65L0 2.1L2.1 0L13.65 11.55L25.2 0L27.3 2.1L15.75 13.65L27.3 25.2L25.2 27.3L13.65 15.75L2.1 27.3Z',\n});\nexport const createExpandMoreButton = () => createSvgElementFromPath({\n width: '11',\n height: '11',\n viewbox: '0 0 24 15',\n path: 'M12 14.15L0 2.15L2.15 0L12 9.9L21.85 0.0499992L24 2.2L12 14.15Z',\n});\nexport const createChevronRightButton = () => createSvgElementFromPath({\n width: '11',\n height: '11',\n viewbox: '0 0 15 25',\n path: 'M2.15 24.1L0 21.95L9.9 12.05L0 2.15L2.15 0L14.2 12.05L2.15 24.1Z',\n});\n","import { CompositeDisposable } from '../../../lifecycle';\nimport { addDisposableListener } from '../../../events';\nimport { createCloseButton } from '../../../svg';\nexport class DefaultTab extends CompositeDisposable {\n get element() {\n return this._element;\n }\n constructor() {\n super();\n //\n this.params = {};\n this._element = document.createElement('div');\n this._element.className = 'default-tab';\n //\n this._content = document.createElement('div');\n this._content.className = 'tab-content';\n //\n this._actionContainer = document.createElement('div');\n this._actionContainer.className = 'action-container';\n //\n this._list = document.createElement('ul');\n this._list.className = 'tab-list';\n //\n this.action = document.createElement('div');\n this.action.className = 'tab-action';\n this.action.appendChild(createCloseButton());\n //\n this._element.appendChild(this._content);\n this._element.appendChild(this._actionContainer);\n this._actionContainer.appendChild(this._list);\n this._list.appendChild(this.action);\n //\n this.addDisposables(addDisposableListener(this._actionContainer, 'mousedown', (ev) => {\n ev.preventDefault();\n }));\n this.render();\n }\n update(event) {\n this.params = Object.assign(Object.assign({}, this.params), event.params);\n this.render();\n }\n focus() {\n //noop\n }\n init(params) {\n this.params = params;\n this._content.textContent = params.title;\n addDisposableListener(this.action, 'click', (ev) => {\n ev.preventDefault(); //\n this.params.api.close();\n });\n }\n onGroupChange(_group) {\n this.render();\n }\n onPanelVisibleChange(_isPanelVisible) {\n this.render();\n }\n layout(_width, _height) {\n // noop\n }\n render() {\n if (this._content.textContent !== this.params.title) {\n this._content.textContent = this.params.title;\n }\n }\n}\n","import { DefaultTab } from './components/tab/defaultTab';\nimport { createComponent } from '../panel/componentFactory';\nexport class DockviewPanelModel {\n get content() {\n return this._content;\n }\n get tab() {\n return this._tab;\n }\n constructor(accessor, id, contentComponent, tabComponent) {\n this.accessor = accessor;\n this.id = id;\n this.contentComponent = contentComponent;\n this.tabComponent = tabComponent;\n this._content = this.createContentComponent(this.id, contentComponent);\n this._tab = this.createTabComponent(this.id, tabComponent);\n }\n init(params) {\n this.content.init(params);\n this.tab.init(params);\n }\n updateParentGroup(_group, _isPanelVisible) {\n // noop\n }\n layout(width, height) {\n var _a, _b;\n (_b = (_a = this.content).layout) === null || _b === void 0 ? void 0 : _b.call(_a, width, height);\n }\n update(event) {\n var _a, _b, _c, _d;\n (_b = (_a = this.content).update) === null || _b === void 0 ? void 0 : _b.call(_a, event);\n (_d = (_c = this.tab).update) === null || _d === void 0 ? void 0 : _d.call(_c, event);\n }\n dispose() {\n var _a, _b, _c, _d;\n (_b = (_a = this.content).dispose) === null || _b === void 0 ? void 0 : _b.call(_a);\n (_d = (_c = this.tab).dispose) === null || _d === void 0 ? void 0 : _d.call(_c);\n }\n createContentComponent(id, componentName) {\n var _a, _b;\n return createComponent(id, componentName, (_a = this.accessor.options.components) !== null && _a !== void 0 ? _a : {}, this.accessor.options.frameworkComponents, (_b = this.accessor.options.frameworkComponentFactory) === null || _b === void 0 ? void 0 : _b.content);\n }\n createTabComponent(id, componentName) {\n var _a, _b;\n if (componentName) {\n return createComponent(id, componentName, this.accessor.options.tabComponents, this.accessor.options.frameworkTabComponents, (_a = this.accessor.options.frameworkComponentFactory) === null || _a === void 0 ? void 0 : _a.tab, () => new DefaultTab());\n }\n else if (this.accessor.options.defaultTabComponent) {\n return createComponent(id, this.accessor.options.defaultTabComponent, this.accessor.options.tabComponents, this.accessor.options.frameworkTabComponents, (_b = this.accessor.options.frameworkComponentFactory) === null || _b === void 0 ? void 0 : _b.tab, () => new DefaultTab());\n }\n else {\n return new DefaultTab();\n }\n }\n}\n","import { DockviewPanel } from './dockviewPanel';\nimport { DockviewPanelModel } from './dockviewPanelModel';\nimport { DockviewApi } from '../api/component.api';\nexport class DefaultDockviewDeserialzier {\n constructor(accessor) {\n this.accessor = accessor;\n }\n fromJSON(panelData, group) {\n var _a, _b;\n const panelId = panelData.id;\n const params = panelData.params;\n const title = panelData.title;\n const viewData = panelData.view;\n const contentComponent = viewData\n ? viewData.content.id\n : (_a = panelData.contentComponent) !== null && _a !== void 0 ? _a : 'unknown';\n const tabComponent = viewData\n ? (_b = viewData.tab) === null || _b === void 0 ? void 0 : _b.id\n : panelData.tabComponent;\n const view = new DockviewPanelModel(this.accessor, panelId, contentComponent, tabComponent);\n const panel = new DockviewPanel(panelId, this.accessor, new DockviewApi(this.accessor), group, view, {\n renderer: panelData.renderer,\n });\n panel.init({\n title: title !== null && title !== void 0 ? title : panelId,\n params: params !== null && params !== void 0 ? params : {},\n });\n return panel;\n }\n}\n","import { addDisposableListener } from '../../../events';\nimport { toggleClass } from '../../../dom';\nimport { CompositeDisposable } from '../../../lifecycle';\nimport { createCloseButton } from '../../../svg';\nexport class Watermark extends CompositeDisposable {\n get element() {\n return this._element;\n }\n constructor() {\n super();\n this._element = document.createElement('div');\n this._element.className = 'watermark';\n const title = document.createElement('div');\n title.className = 'watermark-title';\n const emptySpace = document.createElement('span');\n emptySpace.style.flexGrow = '1';\n const content = document.createElement('div');\n content.className = 'watermark-content';\n this._element.appendChild(title);\n this._element.appendChild(content);\n const actionsContainer = document.createElement('div');\n actionsContainer.className = 'actions-container';\n const closeAnchor = document.createElement('div');\n closeAnchor.className = 'close-action';\n closeAnchor.appendChild(createCloseButton());\n actionsContainer.appendChild(closeAnchor);\n title.appendChild(emptySpace);\n title.appendChild(actionsContainer);\n this.addDisposables(addDisposableListener(closeAnchor, 'click', (ev) => {\n var _a;\n ev.preventDefault();\n if (this._group) {\n (_a = this._api) === null || _a === void 0 ? void 0 : _a.removeGroup(this._group);\n }\n }));\n }\n update(_event) {\n // noop\n }\n focus() {\n // noop\n }\n layout(_width, _height) {\n // noop\n }\n init(_params) {\n this._api = _params.containerApi;\n this.render();\n }\n updateParentGroup(group, _visible) {\n this._group = group;\n this.render();\n }\n dispose() {\n super.dispose();\n }\n render() {\n const isOneGroup = !!(this._api && this._api.size <= 1);\n toggleClass(this.element, 'has-actions', isOneGroup);\n }\n}\n","import { getElementsByTagName, quasiDefaultPrevented, toggleClass, } from '../dom';\nimport { Emitter, addDisposableListener, addDisposableWindowListener, } from '../events';\nimport { CompositeDisposable, MutableDisposable } from '../lifecycle';\nimport { clamp } from '../math';\nconst bringElementToFront = (() => {\n let previous = null;\n function pushToTop(element) {\n if (previous !== element && previous !== null) {\n toggleClass(previous, 'dv-bring-to-front', false);\n }\n toggleClass(element, 'dv-bring-to-front', true);\n previous = element;\n }\n return pushToTop;\n})();\nexport class Overlay extends CompositeDisposable {\n set minimumInViewportWidth(value) {\n this.options.minimumInViewportWidth = value;\n }\n set minimumInViewportHeight(value) {\n this.options.minimumInViewportHeight = value;\n }\n constructor(options) {\n super();\n this.options = options;\n this._element = document.createElement('div');\n this._onDidChange = new Emitter();\n this.onDidChange = this._onDidChange.event;\n this._onDidChangeEnd = new Emitter();\n this.onDidChangeEnd = this._onDidChangeEnd.event;\n this.addDisposables(this._onDidChange, this._onDidChangeEnd);\n this._element.className = 'dv-resize-container';\n this.setupResize('top');\n this.setupResize('bottom');\n this.setupResize('left');\n this.setupResize('right');\n this.setupResize('topleft');\n this.setupResize('topright');\n this.setupResize('bottomleft');\n this.setupResize('bottomright');\n this._element.appendChild(this.options.content);\n this.options.container.appendChild(this._element);\n // if input bad resize within acceptable boundaries\n this.setBounds({\n height: this.options.height,\n width: this.options.width,\n top: this.options.top,\n left: this.options.left,\n });\n }\n setBounds(bounds = {}) {\n if (typeof bounds.height === 'number') {\n this._element.style.height = `${bounds.height}px`;\n }\n if (typeof bounds.width === 'number') {\n this._element.style.width = `${bounds.width}px`;\n }\n if (typeof bounds.top === 'number') {\n this._element.style.top = `${bounds.top}px`;\n }\n if (typeof bounds.left === 'number') {\n this._element.style.left = `${bounds.left}px`;\n }\n const containerRect = this.options.container.getBoundingClientRect();\n const overlayRect = this._element.getBoundingClientRect();\n // region: ensure bounds within allowable limits\n // a minimum width of minimumViewportWidth must be inside the viewport\n const xOffset = Math.max(0, this.getMinimumWidth(overlayRect.width));\n // a minimum height of minimumViewportHeight must be inside the viewport\n const yOffset = typeof this.options.minimumInViewportHeight === 'number'\n ? Math.max(0, this.getMinimumHeight(overlayRect.height))\n : 0;\n const left = clamp(overlayRect.left - containerRect.left, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));\n const top = clamp(overlayRect.top - containerRect.top, -yOffset, Math.max(0, containerRect.height - overlayRect.height + yOffset));\n this._element.style.left = `${left}px`;\n this._element.style.top = `${top}px`;\n this._onDidChange.fire();\n }\n toJSON() {\n const container = this.options.container.getBoundingClientRect();\n const element = this._element.getBoundingClientRect();\n return {\n top: element.top - container.top,\n left: element.left - container.left,\n width: element.width,\n height: element.height,\n };\n }\n setupDrag(dragTarget, options = { inDragMode: false }) {\n const move = new MutableDisposable();\n const track = () => {\n let offset = null;\n const iframes = [\n ...getElementsByTagName('iframe'),\n ...getElementsByTagName('webview'),\n ];\n for (const iframe of iframes) {\n iframe.style.pointerEvents = 'none';\n }\n move.value = new CompositeDisposable({\n dispose: () => {\n for (const iframe of iframes) {\n iframe.style.pointerEvents = 'auto';\n }\n },\n }, addDisposableWindowListener(window, 'mousemove', (e) => {\n const containerRect = this.options.container.getBoundingClientRect();\n const x = e.clientX - containerRect.left;\n const y = e.clientY - containerRect.top;\n toggleClass(this._element, 'dv-resize-container-dragging', true);\n const overlayRect = this._element.getBoundingClientRect();\n if (offset === null) {\n offset = {\n x: e.clientX - overlayRect.left,\n y: e.clientY - overlayRect.top,\n };\n }\n const xOffset = Math.max(0, this.getMinimumWidth(overlayRect.width));\n const yOffset = Math.max(0, this.options.minimumInViewportHeight\n ? this.getMinimumHeight(overlayRect.height)\n : 0);\n const left = clamp(x - offset.x, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));\n const top = clamp(y - offset.y, -yOffset, Math.max(0, containerRect.height - overlayRect.height + yOffset));\n this.setBounds({ top, left });\n }), addDisposableWindowListener(window, 'mouseup', () => {\n toggleClass(this._element, 'dv-resize-container-dragging', false);\n move.dispose();\n this._onDidChangeEnd.fire();\n }));\n };\n this.addDisposables(move, addDisposableListener(dragTarget, 'mousedown', (event) => {\n if (event.defaultPrevented) {\n event.preventDefault();\n return;\n }\n // if somebody has marked this event then treat as a defaultPrevented\n // without actually calling event.preventDefault()\n if (quasiDefaultPrevented(event)) {\n return;\n }\n track();\n }), addDisposableListener(this.options.content, 'mousedown', (event) => {\n if (event.defaultPrevented) {\n return;\n }\n // if somebody has marked this event then treat as a defaultPrevented\n // without actually calling event.preventDefault()\n if (quasiDefaultPrevented(event)) {\n return;\n }\n if (event.shiftKey) {\n track();\n }\n }), addDisposableListener(this.options.content, 'mousedown', () => {\n bringElementToFront(this._element);\n }, true));\n bringElementToFront(this._element);\n if (options.inDragMode) {\n track();\n }\n }\n setupResize(direction) {\n const resizeHandleElement = document.createElement('div');\n resizeHandleElement.className = `dv-resize-handle-${direction}`;\n this._element.appendChild(resizeHandleElement);\n const move = new MutableDisposable();\n this.addDisposables(move, addDisposableListener(resizeHandleElement, 'mousedown', (e) => {\n e.preventDefault();\n let startPosition = null;\n const iframes = [\n ...getElementsByTagName('iframe'),\n ...getElementsByTagName('webview'),\n ];\n for (const iframe of iframes) {\n iframe.style.pointerEvents = 'none';\n }\n move.value = new CompositeDisposable(addDisposableWindowListener(window, 'mousemove', (e) => {\n const containerRect = this.options.container.getBoundingClientRect();\n const overlayRect = this._element.getBoundingClientRect();\n const y = e.clientY - containerRect.top;\n const x = e.clientX - containerRect.left;\n if (startPosition === null) {\n // record the initial dimensions since as all subsequence moves are relative to this\n startPosition = {\n originalY: y,\n originalHeight: overlayRect.height,\n originalX: x,\n originalWidth: overlayRect.width,\n };\n }\n let top = undefined;\n let height = undefined;\n let left = undefined;\n let width = undefined;\n const moveTop = () => {\n top = clamp(y, -Number.MAX_VALUE, startPosition.originalY +\n startPosition.originalHeight >\n containerRect.height\n ? this.getMinimumHeight(containerRect.height)\n : Math.max(0, startPosition.originalY +\n startPosition.originalHeight -\n Overlay.MINIMUM_HEIGHT));\n height =\n startPosition.originalY +\n startPosition.originalHeight -\n top;\n };\n const moveBottom = () => {\n top =\n startPosition.originalY -\n startPosition.originalHeight;\n height = clamp(y - top, top < 0 &&\n typeof this.options\n .minimumInViewportHeight === 'number'\n ? -top +\n this.options.minimumInViewportHeight\n : Overlay.MINIMUM_HEIGHT, Number.MAX_VALUE);\n };\n const moveLeft = () => {\n left = clamp(x, -Number.MAX_VALUE, startPosition.originalX +\n startPosition.originalWidth >\n containerRect.width\n ? this.getMinimumWidth(containerRect.width)\n : Math.max(0, startPosition.originalX +\n startPosition.originalWidth -\n Overlay.MINIMUM_WIDTH));\n width =\n startPosition.originalX +\n startPosition.originalWidth -\n left;\n };\n const moveRight = () => {\n left =\n startPosition.originalX -\n startPosition.originalWidth;\n width = clamp(x - left, left < 0 &&\n typeof this.options\n .minimumInViewportWidth === 'number'\n ? -left +\n this.options.minimumInViewportWidth\n : Overlay.MINIMUM_WIDTH, Number.MAX_VALUE);\n };\n switch (direction) {\n case 'top':\n moveTop();\n break;\n case 'bottom':\n moveBottom();\n break;\n case 'left':\n moveLeft();\n break;\n case 'right':\n moveRight();\n break;\n case 'topleft':\n moveTop();\n moveLeft();\n break;\n case 'topright':\n moveTop();\n moveRight();\n break;\n case 'bottomleft':\n moveBottom();\n moveLeft();\n break;\n case 'bottomright':\n moveBottom();\n moveRight();\n break;\n }\n this.setBounds({ height, width, top, left });\n }), {\n dispose: () => {\n for (const iframe of iframes) {\n iframe.style.pointerEvents = 'auto';\n }\n },\n }, addDisposableWindowListener(window, 'mouseup', () => {\n move.dispose();\n this._onDidChangeEnd.fire();\n }));\n }));\n }\n getMinimumWidth(width) {\n if (typeof this.options.minimumInViewportWidth === 'number') {\n return width - this.options.minimumInViewportWidth;\n }\n return 0;\n }\n getMinimumHeight(height) {\n if (typeof this.options.minimumInViewportHeight === 'number') {\n return height - this.options.minimumInViewportHeight;\n }\n return height;\n }\n dispose() {\n this._element.remove();\n super.dispose();\n }\n}\nOverlay.MINIMUM_HEIGHT = 20;\nOverlay.MINIMUM_WIDTH = 20;\n","import { CompositeDisposable } from '../lifecycle';\nexport class DockviewFloatingGroupPanel extends CompositeDisposable {\n constructor(group, overlay) {\n super();\n this.group = group;\n this.overlay = overlay;\n this.addDisposables(overlay);\n }\n position(bounds) {\n this.overlay.setBounds(bounds);\n }\n}\n","export const DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE = 100;\nexport const DEFAULT_FLOATING_GROUP_POSITION = { left: 100, top: 100 };\n","import { DragAndDropObserver } from './dnd/dnd';\nimport { getDomNodePagePosition, toggleClass } from './dom';\nimport { CompositeDisposable, Disposable } from './lifecycle';\nfunction createFocusableElement() {\n const element = document.createElement('div');\n element.tabIndex = -1;\n return element;\n}\nexport class OverlayRenderContainer extends CompositeDisposable {\n constructor(element) {\n super();\n this.element = element;\n this.map = {};\n this._disposed = false;\n this.addDisposables(Disposable.from(() => {\n for (const value of Object.values(this.map)) {\n value.disposable.dispose();\n value.destroy.dispose();\n }\n this._disposed = true;\n }));\n }\n detatch(panel) {\n if (this.map[panel.api.id]) {\n const { disposable, destroy } = this.map[panel.api.id];\n disposable.dispose();\n destroy.dispose();\n delete this.map[panel.api.id];\n return true;\n }\n return false;\n }\n attach(options) {\n const { panel, referenceContainer } = options;\n if (!this.map[panel.api.id]) {\n const element = createFocusableElement();\n element.className = 'dv-render-overlay';\n this.map[panel.api.id] = {\n panel,\n disposable: Disposable.NONE,\n destroy: Disposable.NONE,\n element,\n };\n }\n const focusContainer = this.map[panel.api.id].element;\n if (panel.view.content.element.parentElement !== focusContainer) {\n focusContainer.appendChild(panel.view.content.element);\n }\n if (focusContainer.parentElement !== this.element) {\n this.element.appendChild(focusContainer);\n }\n const resize = () => {\n // TODO propagate position to avoid getDomNodePagePosition calls, possible performance bottleneck?\n const box = getDomNodePagePosition(referenceContainer.element);\n const box2 = getDomNodePagePosition(this.element);\n focusContainer.style.left = `${box.left - box2.left}px`;\n focusContainer.style.top = `${box.top - box2.top}px`;\n focusContainer.style.width = `${box.width}px`;\n focusContainer.style.height = `${box.height}px`;\n toggleClass(focusContainer, 'dv-render-overlay-float', panel.group.api.location.type === 'floating');\n };\n const visibilityChanged = () => {\n if (panel.api.isVisible) {\n resize();\n }\n focusContainer.style.display = panel.api.isVisible ? '' : 'none';\n };\n const disposable = new CompositeDisposable(\n /**\n * since container is positioned absoutely we must explicitly forward\n * the dnd events for the expect behaviours to continue to occur in terms of dnd\n *\n * the dnd observer does not need to be conditional on whether the panel is visible since\n * non-visible panels are 'display: none' and in such case the dnd observer will not fire.\n */\n new DragAndDropObserver(focusContainer, {\n onDragEnd: (e) => {\n referenceContainer.dropTarget.dnd.onDragEnd(e);\n },\n onDragEnter: (e) => {\n referenceContainer.dropTarget.dnd.onDragEnter(e);\n },\n onDragLeave: (e) => {\n referenceContainer.dropTarget.dnd.onDragLeave(e);\n },\n onDrop: (e) => {\n referenceContainer.dropTarget.dnd.onDrop(e);\n },\n onDragOver: (e) => {\n referenceContainer.dropTarget.dnd.onDragOver(e);\n },\n }), panel.api.onDidVisibilityChange((event) => {\n /**\n * Control the visibility of the content, however even when not visible (display: none)\n * the content is still maintained within the DOM hence DOM specific attributes\n * such as scroll position are maintained when next made visible.\n */\n visibilityChanged();\n }), panel.api.onDidDimensionsChange(() => {\n if (!panel.api.isVisible) {\n return;\n }\n resize();\n }));\n this.map[panel.api.id].destroy = Disposable.from(() => {\n var _a;\n if (panel.view.content.element.parentElement === focusContainer) {\n focusContainer.removeChild(panel.view.content.element);\n }\n (_a = focusContainer.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(focusContainer);\n });\n queueMicrotask(() => {\n if (this.isDisposed) {\n return;\n }\n /**\n * wait until everything has finished in the current stack-frame call before\n * calling the first resize as other size-altering events may still occur before\n * the end of the stack-frame.\n */\n visibilityChanged();\n });\n // dispose of logic asoccciated with previous reference-container\n this.map[panel.api.id].disposable.dispose();\n // and reset the disposable to the active reference-container\n this.map[panel.api.id].disposable = disposable;\n return focusContainer;\n }\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { addStyles } from './dom';\nimport { Emitter, addDisposableWindowListener } from './events';\nimport { CompositeDisposable } from './lifecycle';\nexport class PopoutWindow extends CompositeDisposable {\n get window() {\n var _a, _b;\n return (_b = (_a = this._window) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : null;\n }\n constructor(target, className, options) {\n super();\n this.target = target;\n this.className = className;\n this.options = options;\n this._onWillClose = new Emitter();\n this.onWillClose = this._onWillClose.event;\n this._onDidClose = new Emitter();\n this.onDidClose = this._onDidClose.event;\n this._window = null;\n this.addDisposables(this._onWillClose, this._onDidClose, {\n dispose: () => {\n this.close();\n },\n });\n }\n dimensions() {\n if (!this._window) {\n return null;\n }\n const left = this._window.value.screenX;\n const top = this._window.value.screenY;\n const width = this._window.value.innerWidth;\n const height = this._window.value.innerHeight;\n return { top, left, width, height };\n }\n close() {\n var _a, _b;\n if (this._window) {\n this._onWillClose.fire();\n (_b = (_a = this.options).onWillClose) === null || _b === void 0 ? void 0 : _b.call(_a, {\n id: this.target,\n window: this._window.value,\n });\n this._window.disposable.dispose();\n this._window.value.close();\n this._window = null;\n this._onDidClose.fire();\n }\n }\n open() {\n var _a, _b;\n return __awaiter(this, void 0, void 0, function* () {\n if (this._window) {\n throw new Error('instance of popout window is already open');\n }\n const url = `${this.options.url}`;\n const features = Object.entries({\n top: this.options.top,\n left: this.options.left,\n width: this.options.width,\n height: this.options.height,\n })\n .map(([key, value]) => `${key}=${value}`)\n .join(',');\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/open\n */\n const externalWindow = window.open(url, this.target, features);\n if (!externalWindow) {\n /**\n * Popup blocked\n */\n return null;\n }\n const disposable = new CompositeDisposable();\n this._window = { value: externalWindow, disposable };\n disposable.addDisposables(addDisposableWindowListener(window, 'beforeunload', () => {\n /**\n * before the main window closes we should close this popup too\n * to be good citizens\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event\n */\n this.close();\n }));\n const container = this.createPopoutWindowContainer();\n if (this.className) {\n container.classList.add(this.className);\n }\n (_b = (_a = this.options).onDidOpen) === null || _b === void 0 ? void 0 : _b.call(_a, {\n id: this.target,\n window: externalWindow,\n });\n return new Promise((resolve) => {\n externalWindow.addEventListener('unload', (e) => {\n // if page fails to load before unloading\n // this.close();\n });\n externalWindow.addEventListener('load', () => {\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/load_event\n */\n const externalDocument = externalWindow.document;\n externalDocument.title = document.title;\n externalDocument.body.appendChild(container);\n addStyles(externalDocument, window.document.styleSheets);\n /**\n * beforeunload must be registered after load for reasons I could not determine\n * otherwise the beforeunload event will not fire when the window is closed\n */\n addDisposableWindowListener(externalWindow, 'beforeunload', () => {\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event\n */\n this.close();\n });\n resolve(container);\n });\n });\n });\n }\n createPopoutWindowContainer() {\n const el = document.createElement('div');\n el.classList.add('dv-popout-window');\n el.id = 'dv-popout-window';\n el.style.position = 'absolute';\n el.style.width = '100%';\n el.style.height = '100%';\n el.style.top = '0px';\n el.style.left = '0px';\n return el;\n }\n}\n","import { getRelativeLocation, getGridLocation, } from '../gridview/gridview';\nimport { directionToPosition, Droptarget, } from '../dnd/droptarget';\nimport { tail, sequenceEquals, remove } from '../array';\nimport { DockviewPanel } from './dockviewPanel';\nimport { CompositeDisposable, Disposable } from '../lifecycle';\nimport { Event, Emitter, addDisposableWindowListener } from '../events';\nimport { Watermark } from './components/watermark/watermark';\nimport { sequentialNumberGenerator } from '../math';\nimport { DefaultDockviewDeserialzier } from './deserializer';\nimport { createComponent } from '../panel/componentFactory';\nimport { isGroupOptionsWithGroup, isGroupOptionsWithPanel, isPanelOptionsWithGroup, isPanelOptionsWithPanel, } from './options';\nimport { BaseGrid, toTarget, } from '../gridview/baseComponentGridview';\nimport { DockviewApi } from '../api/component.api';\nimport { Orientation, Sizing } from '../splitview/splitview';\nimport { DockviewDidDropEvent, DockviewWillDropEvent, WillShowOverlayLocationEvent, } from './dockviewGroupPanelModel';\nimport { DockviewGroupPanel } from './dockviewGroupPanel';\nimport { DockviewPanelModel } from './dockviewPanelModel';\nimport { getPanelData } from '../dnd/dataTransfer';\nimport { Overlay } from '../dnd/overlay';\nimport { toggleClass, watchElementResize } from '../dom';\nimport { DockviewFloatingGroupPanel } from './dockviewFloatingGroupPanel';\nimport { DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE, DEFAULT_FLOATING_GROUP_POSITION, } from '../constants';\nimport { OverlayRenderContainer, } from '../overlayRenderContainer';\nimport { PopoutWindow } from '../popoutWindow';\nconst DEFAULT_ROOT_OVERLAY_MODEL = {\n activationSize: { type: 'pixels', value: 10 },\n size: { type: 'pixels', value: 20 },\n};\nfunction moveGroupWithoutDestroying(options) {\n const activePanel = options.from.activePanel;\n const panels = [...options.from.panels].map((panel) => {\n const removedPanel = options.from.model.removePanel(panel);\n options.from.model.renderContainer.detatch(panel);\n return removedPanel;\n });\n panels.forEach((panel) => {\n options.to.model.openPanel(panel, {\n skipSetActive: activePanel !== panel,\n skipSetGroupActive: true,\n });\n });\n}\nfunction getDockviewTheme(element) {\n function toClassList(element) {\n const list = [];\n for (let i = 0; i < element.classList.length; i++) {\n list.push(element.classList.item(i));\n }\n return list;\n }\n let theme = undefined;\n let parent = element;\n while (parent !== null) {\n theme = toClassList(parent).find((cls) => cls.startsWith('dockview-theme-'));\n if (typeof theme === 'string') {\n break;\n }\n parent = parent.parentElement;\n }\n return theme;\n}\nfunction typeValidate3(data, path) {\n if (typeof data.id !== 'string') {\n throw new Error(`${path}.id must be a string`);\n }\n if (typeof data.activeView !== 'string' ||\n typeof data.activeView !== 'undefined') {\n throw new Error(`${path}.activeView must be a string of undefined`);\n }\n}\nfunction typeValidate2(data, path) {\n if (typeof data.size !== 'number' && typeof data.size !== 'undefined') {\n throw new Error(`${path}.size must be a number or undefined`);\n }\n if (typeof data.visible !== 'boolean' &&\n typeof data.visible !== 'undefined') {\n throw new Error(`${path}.visible must be a boolean or undefined`);\n }\n if (data.type === 'leaf') {\n if (typeof data.data !== 'object' ||\n data.data === null ||\n Array.isArray(data.data)) {\n throw new Error('object must be a non-null object');\n }\n typeValidate3(data.data, `${path}.data`);\n }\n else if (data.type === 'branch') {\n if (!Array.isArray(data.data)) {\n throw new Error(`${path}.data must be an array`);\n }\n }\n else {\n throw new Error(`${path}.type must be onew of {'branch', 'leaf'}`);\n }\n}\nfunction typeValidate(data) {\n if (typeof data !== 'object' || data === null) {\n throw new Error('object must be a non-null object');\n }\n const { grid, panels, activeGroup, floatingGroups } = data;\n if (typeof grid !== 'object' || grid === null) {\n throw new Error(\"'.grid' must be a non-null object\");\n }\n if (typeof grid.height !== 'number') {\n throw new Error(\"'.grid.height' must be a number\");\n }\n if (typeof grid.width !== 'number') {\n throw new Error(\"'.grid.width' must be a number\");\n }\n if (typeof grid.root !== 'object' || grid.root === null) {\n throw new Error(\"'.grid.root' must be a non-null object\");\n }\n if (grid.root.type !== 'branch') {\n throw new Error(\".grid.root.type must be of type 'branch'\");\n }\n if (grid.orientation !== Orientation.HORIZONTAL &&\n grid.orientation !== Orientation.VERTICAL) {\n throw new Error(`'.grid.width' must be one of {${Orientation.HORIZONTAL}, ${Orientation.VERTICAL}}`);\n }\n typeValidate2(grid.root, '.grid.root');\n}\nexport class DockviewComponent extends BaseGrid {\n get orientation() {\n return this.gridview.orientation;\n }\n get totalPanels() {\n return this.panels.length;\n }\n get panels() {\n return this.groups.flatMap((group) => group.panels);\n }\n get options() {\n return this._options;\n }\n get activePanel() {\n const activeGroup = this.activeGroup;\n if (!activeGroup) {\n return undefined;\n }\n return activeGroup.activePanel;\n }\n get renderer() {\n var _a;\n return (_a = this.options.defaultRenderer) !== null && _a !== void 0 ? _a : 'onlyWhenVisibile';\n }\n constructor(options) {\n var _a, _b;\n super({\n proportionalLayout: true,\n orientation: (_a = options.orientation) !== null && _a !== void 0 ? _a : Orientation.HORIZONTAL,\n styles: options.styles,\n parentElement: options.parentElement,\n disableAutoResizing: options.disableAutoResizing,\n locked: options.locked,\n });\n this.nextGroupId = sequentialNumberGenerator();\n this._deserializer = new DefaultDockviewDeserialzier(this);\n this.watermark = null;\n this._onWillDragPanel = new Emitter();\n this.onWillDragPanel = this._onWillDragPanel.event;\n this._onWillDragGroup = new Emitter();\n this.onWillDragGroup = this._onWillDragGroup.event;\n this._onDidDrop = new Emitter();\n this.onDidDrop = this._onDidDrop.event;\n this._onWillDrop = new Emitter();\n this.onWillDrop = this._onWillDrop.event;\n this._onWillShowOverlay = new Emitter();\n this.onWillShowOverlay = this._onWillShowOverlay.event;\n this._onDidRemovePanel = new Emitter();\n this.onDidRemovePanel = this._onDidRemovePanel.event;\n this._onDidAddPanel = new Emitter();\n this.onDidAddPanel = this._onDidAddPanel.event;\n this._onDidLayoutFromJSON = new Emitter();\n this.onDidLayoutFromJSON = this._onDidLayoutFromJSON.event;\n this._onDidActivePanelChange = new Emitter();\n this.onDidActivePanelChange = this._onDidActivePanelChange.event;\n this._onDidMovePanel = new Emitter();\n this._floatingGroups = [];\n this._popoutGroups = [];\n this._ignoreEvents = 0;\n this._onDidRemoveGroup = new Emitter();\n this.onDidRemoveGroup = this._onDidRemoveGroup.event;\n this._onDidAddGroup = new Emitter();\n this.onDidAddGroup = this._onDidAddGroup.event;\n this._onDidActiveGroupChange = new Emitter();\n this.onDidActiveGroupChange = this._onDidActiveGroupChange.event;\n this._moving = false;\n const gready = document.createElement('div');\n gready.className = 'dv-overlay-render-container';\n this.gridview.element.appendChild(gready);\n this.overlayRenderContainer = new OverlayRenderContainer(gready);\n toggleClass(this.gridview.element, 'dv-dockview', true);\n toggleClass(this.element, 'dv-debug', !!options.debug);\n this.addDisposables(this.overlayRenderContainer, this._onWillDragPanel, this._onWillDragGroup, this._onWillShowOverlay, this._onDidActivePanelChange, this._onDidAddPanel, this._onDidRemovePanel, this._onDidLayoutFromJSON, this._onDidDrop, this._onWillDrop, this._onDidMovePanel, this._onDidAddGroup, this._onDidRemoveGroup, this._onDidActiveGroupChange, this.onDidAdd((event) => {\n if (!this._moving) {\n this._onDidAddGroup.fire(event);\n }\n }), this.onDidRemove((event) => {\n if (!this._moving) {\n this._onDidRemoveGroup.fire(event);\n }\n }), this.onDidActiveChange((event) => {\n if (!this._moving) {\n this._onDidActiveGroupChange.fire(event);\n }\n }), Event.any(this.onDidAdd, this.onDidRemove)(() => {\n this.updateWatermark();\n }), Event.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidActivePanelChange)(() => {\n this._bufferOnDidLayoutChange.fire();\n }), Disposable.from(() => {\n // iterate over a copy of the array since .dispose() mutates the original array\n for (const group of [...this._floatingGroups]) {\n group.dispose();\n }\n // iterate over a copy of the array since .dispose() mutates the original array\n for (const group of [...this._popoutGroups]) {\n group.disposable.dispose();\n }\n }));\n this._options = options;\n if (!this.options.components) {\n this.options.components = {};\n }\n if (!this.options.frameworkComponents) {\n this.options.frameworkComponents = {};\n }\n if (!this.options.frameworkTabComponents) {\n this.options.frameworkTabComponents = {};\n }\n if (!this.options.tabComponents) {\n this.options.tabComponents = {};\n }\n if (!this.options.watermarkComponent &&\n !this.options.watermarkFrameworkComponent) {\n this.options.watermarkComponent = Watermark;\n }\n this._rootDropTarget = new Droptarget(this.element, {\n canDisplayOverlay: (event, position) => {\n const data = getPanelData();\n if (data) {\n if (data.viewId !== this.id) {\n return false;\n }\n if (position === 'center') {\n // center drop target is only allowed if there are no panels in the grid\n // floating panels are allowed\n return this.gridview.length === 0;\n }\n return true;\n }\n if (this.options.showDndOverlay) {\n if (position === 'center' && this.gridview.length !== 0) {\n /**\n * for external events only show the four-corner drag overlays, disable\n * the center position so that external drag events can fall through to the group\n * and panel drop target handlers\n */\n return false;\n }\n return this.options.showDndOverlay({\n nativeEvent: event,\n position: position,\n target: 'edge',\n getData: getPanelData,\n });\n }\n return false;\n },\n acceptedTargetZones: ['top', 'bottom', 'left', 'right', 'center'],\n overlayModel: (_b = this.options.rootOverlayModel) !== null && _b !== void 0 ? _b : DEFAULT_ROOT_OVERLAY_MODEL,\n });\n this.addDisposables(this._rootDropTarget, this._rootDropTarget.onWillShowOverlay((event) => {\n if (this.gridview.length > 0 && event.position === 'center') {\n // option only available when no panels in primary grid\n return;\n }\n this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {\n kind: 'edge',\n }));\n }), this._rootDropTarget.onDrop((event) => {\n var _a;\n const willDropEvent = new DockviewWillDropEvent({\n nativeEvent: event.nativeEvent,\n position: event.position,\n panel: undefined,\n api: this._api,\n group: undefined,\n getData: getPanelData,\n kind: 'edge',\n });\n this._onWillDrop.fire(willDropEvent);\n if (willDropEvent.defaultPrevented) {\n return;\n }\n const data = getPanelData();\n if (data) {\n this.moveGroupOrPanel({\n from: {\n groupId: data.groupId,\n panelId: (_a = data.panelId) !== null && _a !== void 0 ? _a : undefined,\n },\n to: {\n group: this.orthogonalize(event.position),\n position: 'center',\n },\n });\n }\n else {\n this._onDidDrop.fire(new DockviewDidDropEvent({\n nativeEvent: event.nativeEvent,\n position: event.position,\n panel: undefined,\n api: this._api,\n group: undefined,\n getData: getPanelData,\n }));\n }\n }), this._rootDropTarget);\n this._api = new DockviewApi(this);\n this.updateWatermark();\n }\n addPopoutGroup(itemToPopout, options) {\n var _a, _b, _c;\n if (itemToPopout instanceof DockviewPanel &&\n itemToPopout.group.size === 1) {\n return this.addPopoutGroup(itemToPopout.group);\n }\n const theme = getDockviewTheme(this.gridview.element);\n const element = this.element;\n function getBox() {\n if (options === null || options === void 0 ? void 0 : options.position) {\n return options.position;\n }\n if (itemToPopout instanceof DockviewGroupPanel) {\n return itemToPopout.element.getBoundingClientRect();\n }\n if (itemToPopout.group) {\n return itemToPopout.group.element.getBoundingClientRect();\n }\n return element.getBoundingClientRect();\n }\n const box = getBox();\n const groupId = (_b = (_a = options === null || options === void 0 ? void 0 : options.overridePopoutGroup) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : this.getNextGroupId(); //item.id;\n if (itemToPopout.api.location.type === 'grid') {\n itemToPopout.api.setVisible(false);\n }\n const _window = new PopoutWindow(`${this.id}-${groupId}`, // unique id\n theme !== null && theme !== void 0 ? theme : '', {\n url: (_c = options === null || options === void 0 ? void 0 : options.popoutUrl) !== null && _c !== void 0 ? _c : '/popout.html',\n left: window.screenX + box.left,\n top: window.screenY + box.top,\n width: box.width,\n height: box.height,\n onDidOpen: options === null || options === void 0 ? void 0 : options.onDidOpen,\n onWillClose: options === null || options === void 0 ? void 0 : options.onWillClose,\n });\n const popoutWindowDisposable = new CompositeDisposable(_window, _window.onDidClose(() => {\n popoutWindowDisposable.dispose();\n }));\n return _window\n .open()\n .then((popoutContainer) => {\n var _a;\n if (_window.isDisposed) {\n return;\n }\n if (popoutContainer === null) {\n popoutWindowDisposable.dispose();\n return;\n }\n const gready = document.createElement('div');\n gready.className = 'dv-overlay-render-container';\n const overlayRenderContainer = new OverlayRenderContainer(gready);\n const referenceGroup = itemToPopout instanceof DockviewPanel\n ? itemToPopout.group\n : itemToPopout;\n const referenceLocation = itemToPopout.api.location.type;\n const group = (_a = options === null || options === void 0 ? void 0 : options.overridePopoutGroup) !== null && _a !== void 0 ? _a : this.createGroup({ id: groupId });\n group.model.renderContainer = overlayRenderContainer;\n if (!(options === null || options === void 0 ? void 0 : options.overridePopoutGroup)) {\n this._onDidAddGroup.fire(group);\n }\n if (itemToPopout instanceof DockviewPanel) {\n this.movingLock(() => {\n const panel = referenceGroup.model.removePanel(itemToPopout);\n group.model.openPanel(panel);\n });\n }\n else {\n this.movingLock(() => moveGroupWithoutDestroying({\n from: referenceGroup,\n to: group,\n }));\n switch (referenceLocation) {\n case 'grid':\n referenceGroup.api.setVisible(false);\n break;\n case 'floating':\n case 'popout':\n this.removeGroup(referenceGroup);\n break;\n }\n }\n popoutContainer.classList.add('dv-dockview');\n popoutContainer.style.overflow = 'hidden';\n popoutContainer.appendChild(gready);\n popoutContainer.appendChild(group.element);\n group.model.location = {\n type: 'popout',\n getWindow: () => _window.window,\n };\n this.doSetGroupAndPanelActive(group);\n popoutWindowDisposable.addDisposables(group.api.onDidActiveChange((event) => {\n var _a;\n if (event.isActive) {\n (_a = _window.window) === null || _a === void 0 ? void 0 : _a.focus();\n }\n }), group.api.onWillFocus(() => {\n var _a;\n (_a = _window.window) === null || _a === void 0 ? void 0 : _a.focus();\n }));\n let returnedGroup;\n const value = {\n window: _window,\n popoutGroup: group,\n referenceGroup: this.getPanel(referenceGroup.id)\n ? referenceGroup.id\n : undefined,\n disposable: {\n dispose: () => {\n popoutWindowDisposable.dispose();\n return returnedGroup;\n },\n },\n };\n popoutWindowDisposable.addDisposables(\n /**\n * ResizeObserver seems slow here, I do not know why but we don't need it\n * since we can reply on the window resize event as we will occupy the full\n * window dimensions\n */\n addDisposableWindowListener(_window.window, 'resize', () => {\n group.layout(window.innerWidth, window.innerHeight);\n }), overlayRenderContainer, Disposable.from(() => {\n if (this.getPanel(referenceGroup.id)) {\n this.movingLock(() => moveGroupWithoutDestroying({\n from: group,\n to: referenceGroup,\n }));\n if (!referenceGroup.api.isVisible) {\n referenceGroup.api.setVisible(true);\n }\n if (this.getPanel(group.id)) {\n this.doRemoveGroup(group, {\n skipPopoutAssociated: true,\n });\n }\n }\n else {\n if (this.getPanel(group.id)) {\n const removedGroup = this.doRemoveGroup(group, {\n skipDispose: true,\n skipActive: true,\n });\n removedGroup.model.renderContainer =\n this.overlayRenderContainer;\n removedGroup.model.location = { type: 'grid' };\n returnedGroup = removedGroup;\n }\n }\n }));\n this._popoutGroups.push(value);\n this.updateWatermark();\n })\n .catch((err) => {\n console.error(err);\n });\n }\n addFloatingGroup(item, coord, options) {\n var _a, _b, _c, _d, _e, _f, _g;\n let group;\n if (item instanceof DockviewPanel) {\n group = this.createGroup();\n this._onDidAddGroup.fire(group);\n this.movingLock(() => this.removePanel(item, {\n removeEmptyGroup: true,\n skipDispose: true,\n skipSetActiveGroup: true,\n }));\n group.model.openPanel(item, { skipSetGroupActive: true });\n }\n else {\n group = item;\n const popoutReferenceGroupId = (_a = this._popoutGroups.find((_) => _.popoutGroup === group)) === null || _a === void 0 ? void 0 : _a.referenceGroup;\n const popoutReferenceGroup = popoutReferenceGroupId\n ? this.getPanel(popoutReferenceGroupId)\n : undefined;\n const skip = typeof (options === null || options === void 0 ? void 0 : options.skipRemoveGroup) === 'boolean' &&\n options.skipRemoveGroup;\n if (!skip) {\n if (popoutReferenceGroup) {\n this.movingLock(() => moveGroupWithoutDestroying({\n from: item,\n to: popoutReferenceGroup,\n }));\n this.doRemoveGroup(item, {\n skipPopoutReturn: true,\n skipPopoutAssociated: true,\n });\n this.doRemoveGroup(popoutReferenceGroup, {\n skipDispose: true,\n });\n group = popoutReferenceGroup;\n }\n else {\n this.doRemoveGroup(item, {\n skipDispose: true,\n skipPopoutReturn: true,\n skipPopoutAssociated: !!popoutReferenceGroup,\n });\n }\n }\n }\n group.model.location = { type: 'floating' };\n const overlayLeft = typeof (coord === null || coord === void 0 ? void 0 : coord.x) === 'number'\n ? Math.max(coord.x, 0)\n : DEFAULT_FLOATING_GROUP_POSITION.left;\n const overlayTop = typeof (coord === null || coord === void 0 ? void 0 : coord.y) === 'number'\n ? Math.max(coord.y, 0)\n : DEFAULT_FLOATING_GROUP_POSITION.top;\n const overlay = new Overlay({\n container: this.gridview.element,\n content: group.element,\n height: (_b = coord === null || coord === void 0 ? void 0 : coord.height) !== null && _b !== void 0 ? _b : 300,\n width: (_c = coord === null || coord === void 0 ? void 0 : coord.width) !== null && _c !== void 0 ? _c : 300,\n left: overlayLeft,\n top: overlayTop,\n minimumInViewportWidth: this.options.floatingGroupBounds === 'boundedWithinViewport'\n ? undefined\n : (_e = (_d = this.options.floatingGroupBounds) === null || _d === void 0 ? void 0 : _d.minimumWidthWithinViewport) !== null && _e !== void 0 ? _e : DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE,\n minimumInViewportHeight: this.options.floatingGroupBounds === 'boundedWithinViewport'\n ? undefined\n : (_g = (_f = this.options.floatingGroupBounds) === null || _f === void 0 ? void 0 : _f.minimumHeightWithinViewport) !== null && _g !== void 0 ? _g : DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE,\n });\n const el = group.element.querySelector('.void-container');\n if (!el) {\n throw new Error('failed to find drag handle');\n }\n overlay.setupDrag(el, {\n inDragMode: typeof (options === null || options === void 0 ? void 0 : options.inDragMode) === 'boolean'\n ? options.inDragMode\n : false,\n });\n const floatingGroupPanel = new DockviewFloatingGroupPanel(group, overlay);\n const disposable = watchElementResize(group.element, (entry) => {\n const { width, height } = entry.contentRect;\n group.layout(width, height); // let the group know it's size is changing so it can fire events to the panel\n });\n floatingGroupPanel.addDisposables(overlay.onDidChange(() => {\n // this is either a resize or a move\n // to inform the panels .layout(...) the group with it's current size\n // don't care about resize since the above watcher handles that\n group.layout(group.height, group.width);\n }), overlay.onDidChangeEnd(() => {\n this._bufferOnDidLayoutChange.fire();\n }), group.onDidChange((event) => {\n overlay.setBounds({\n height: event === null || event === void 0 ? void 0 : event.height,\n width: event === null || event === void 0 ? void 0 : event.width,\n });\n }), {\n dispose: () => {\n disposable.dispose();\n group.model.location = { type: 'grid' };\n remove(this._floatingGroups, floatingGroupPanel);\n this.updateWatermark();\n },\n });\n this._floatingGroups.push(floatingGroupPanel);\n if (!(options === null || options === void 0 ? void 0 : options.skipActiveGroup)) {\n this.doSetGroupAndPanelActive(group);\n }\n this.updateWatermark();\n }\n orthogonalize(position) {\n switch (position) {\n case 'top':\n case 'bottom':\n if (this.gridview.orientation === Orientation.HORIZONTAL) {\n // we need to add to a vertical splitview but the current root is a horizontal splitview.\n // insert a vertical splitview at the root level and add the existing view as a child\n this.gridview.insertOrthogonalSplitviewAtRoot();\n }\n break;\n case 'left':\n case 'right':\n if (this.gridview.orientation === Orientation.VERTICAL) {\n // we need to add to a horizontal splitview but the current root is a vertical splitview.\n // insert a horiziontal splitview at the root level and add the existing view as a child\n this.gridview.insertOrthogonalSplitviewAtRoot();\n }\n break;\n default:\n break;\n }\n switch (position) {\n case 'top':\n case 'left':\n case 'center':\n return this.createGroupAtLocation([0]); // insert into first position\n case 'bottom':\n case 'right':\n return this.createGroupAtLocation([this.gridview.length]); // insert into last position\n default:\n throw new Error(`unsupported position ${position}`);\n }\n }\n updateOptions(options) {\n var _a, _b;\n const changed_orientation = typeof options.orientation === 'string' &&\n this.gridview.orientation !== options.orientation;\n const changed_floatingGroupBounds = options.floatingGroupBounds !== undefined &&\n options.floatingGroupBounds !== this.options.floatingGroupBounds;\n const changed_rootOverlayOptions = options.rootOverlayModel !== undefined &&\n options.rootOverlayModel !== this.options.rootOverlayModel;\n this._options = Object.assign(Object.assign({}, this.options), options);\n if (changed_orientation) {\n this.gridview.orientation = options.orientation;\n }\n if (changed_floatingGroupBounds) {\n for (const group of this._floatingGroups) {\n switch (this.options.floatingGroupBounds) {\n case 'boundedWithinViewport':\n group.overlay.minimumInViewportHeight = undefined;\n group.overlay.minimumInViewportWidth = undefined;\n break;\n case undefined:\n group.overlay.minimumInViewportHeight =\n DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE;\n group.overlay.minimumInViewportWidth =\n DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE;\n break;\n default:\n group.overlay.minimumInViewportHeight =\n (_a = this.options.floatingGroupBounds) === null || _a === void 0 ? void 0 : _a.minimumHeightWithinViewport;\n group.overlay.minimumInViewportWidth =\n (_b = this.options.floatingGroupBounds) === null || _b === void 0 ? void 0 : _b.minimumWidthWithinViewport;\n }\n group.overlay.setBounds({});\n }\n }\n if (changed_rootOverlayOptions) {\n this._rootDropTarget.setOverlayModel(options.rootOverlayModel);\n }\n this.layout(this.gridview.width, this.gridview.height, true);\n }\n layout(width, height, forceResize) {\n super.layout(width, height, forceResize);\n if (this._floatingGroups) {\n for (const floating of this._floatingGroups) {\n // ensure floting groups stay within visible boundaries\n floating.overlay.setBounds();\n }\n }\n }\n focus() {\n var _a;\n (_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.focus();\n }\n getGroupPanel(id) {\n return this.panels.find((panel) => panel.id === id);\n }\n setActivePanel(panel) {\n panel.group.model.openPanel(panel);\n this.doSetGroupAndPanelActive(panel.group);\n }\n moveToNext(options = {}) {\n var _a;\n if (!options.group) {\n if (!this.activeGroup) {\n return;\n }\n options.group = this.activeGroup;\n }\n if (options.includePanel && options.group) {\n if (options.group.activePanel !==\n options.group.panels[options.group.panels.length - 1]) {\n options.group.model.moveToNext({ suppressRoll: true });\n return;\n }\n }\n const location = getGridLocation(options.group.element);\n const next = (_a = this.gridview.next(location)) === null || _a === void 0 ? void 0 : _a.view;\n this.doSetGroupAndPanelActive(next);\n }\n moveToPrevious(options = {}) {\n var _a;\n if (!options.group) {\n if (!this.activeGroup) {\n return;\n }\n options.group = this.activeGroup;\n }\n if (options.includePanel && options.group) {\n if (options.group.activePanel !== options.group.panels[0]) {\n options.group.model.moveToPrevious({ suppressRoll: true });\n return;\n }\n }\n const location = getGridLocation(options.group.element);\n const next = (_a = this.gridview.previous(location)) === null || _a === void 0 ? void 0 : _a.view;\n if (next) {\n this.doSetGroupAndPanelActive(next);\n }\n }\n /**\n * Serialize the current state of the layout\n *\n * @returns A JSON respresentation of the layout\n */\n toJSON() {\n var _a;\n const data = this.gridview.serialize();\n const panels = this.panels.reduce((collection, panel) => {\n collection[panel.id] = panel.toJSON();\n return collection;\n }, {});\n const floats = this._floatingGroups.map((group) => {\n return {\n data: group.group.toJSON(),\n position: group.overlay.toJSON(),\n };\n });\n const popoutGroups = this._popoutGroups.map((group) => {\n return {\n data: group.popoutGroup.toJSON(),\n gridReferenceGroup: group.referenceGroup,\n position: group.window.dimensions(),\n };\n });\n const result = {\n grid: data,\n panels,\n activeGroup: (_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.id,\n };\n if (floats.length > 0) {\n result.floatingGroups = floats;\n }\n if (popoutGroups.length > 0) {\n result.popoutGroups = popoutGroups;\n }\n return result;\n }\n fromJSON(data) {\n var _a, _b, _c;\n this.clear();\n if (typeof data !== 'object' || data === null) {\n throw new Error('serialized layout must be a non-null object');\n }\n const { grid, panels, activeGroup } = data;\n if (grid.root.type !== 'branch' || !Array.isArray(grid.root.data)) {\n throw new Error('root must be of type branch');\n }\n try {\n // take note of the existing dimensions\n const width = this.width;\n const height = this.height;\n const createGroupFromSerializedState = (data) => {\n const { id, locked, hideHeader, views, activeView } = data;\n if (typeof id !== 'string') {\n throw new Error('group id must be of type string');\n }\n const group = this.createGroup({\n id,\n locked: !!locked,\n hideHeader: !!hideHeader,\n });\n const createdPanels = [];\n for (const child of views) {\n /**\n * Run the deserializer step seperately since this may fail to due corrupted external state.\n * In running this section first we avoid firing lots of 'add' events in the event of a failure\n * due to a corruption of input data.\n */\n const panel = this._deserializer.fromJSON(panels[child], group);\n createdPanels.push(panel);\n }\n this._onDidAddGroup.fire(group);\n for (let i = 0; i < views.length; i++) {\n const panel = createdPanels[i];\n const isActive = typeof activeView === 'string' &&\n activeView === panel.id;\n group.model.openPanel(panel, {\n skipSetActive: !isActive,\n skipSetGroupActive: true,\n });\n }\n if (!group.activePanel && group.panels.length > 0) {\n group.model.openPanel(group.panels[group.panels.length - 1], {\n skipSetGroupActive: true,\n });\n }\n return group;\n };\n this.gridview.deserialize(grid, {\n fromJSON: (node) => {\n return createGroupFromSerializedState(node.data);\n },\n });\n this.layout(width, height, true);\n const serializedFloatingGroups = (_a = data.floatingGroups) !== null && _a !== void 0 ? _a : [];\n for (const serializedFloatingGroup of serializedFloatingGroups) {\n const { data, position } = serializedFloatingGroup;\n const group = createGroupFromSerializedState(data);\n this.addFloatingGroup(group, {\n x: position.left,\n y: position.top,\n height: position.height,\n width: position.width,\n }, { skipRemoveGroup: true, inDragMode: false });\n }\n const serializedPopoutGroups = (_b = data.popoutGroups) !== null && _b !== void 0 ? _b : [];\n for (const serializedPopoutGroup of serializedPopoutGroups) {\n const { data, position, gridReferenceGroup } = serializedPopoutGroup;\n const group = createGroupFromSerializedState(data);\n this.addPopoutGroup((_c = (gridReferenceGroup\n ? this.getPanel(gridReferenceGroup)\n : undefined)) !== null && _c !== void 0 ? _c : group, {\n skipRemoveGroup: true,\n position: position !== null && position !== void 0 ? position : undefined,\n overridePopoutGroup: gridReferenceGroup\n ? group\n : undefined,\n });\n }\n for (const floatingGroup of this._floatingGroups) {\n floatingGroup.overlay.setBounds();\n }\n if (typeof activeGroup === 'string') {\n const panel = this.getPanel(activeGroup);\n if (panel) {\n this.doSetGroupAndPanelActive(panel);\n }\n }\n }\n catch (err) {\n /**\n * Takes all the successfully created groups and remove all of their panels.\n */\n for (const group of this.groups) {\n for (const panel of group.panels) {\n this.removePanel(panel, {\n removeEmptyGroup: false,\n skipDispose: false,\n });\n }\n }\n /**\n * To remove a group we cannot call this.removeGroup(...) since this makes assumptions about\n * the underlying HTMLElement existing in the Gridview.\n */\n for (const group of this.groups) {\n group.dispose();\n this._groups.delete(group.id);\n this._onDidRemoveGroup.fire(group);\n }\n // iterate over a reassigned array since original array will be modified\n for (const floatingGroup of [...this._floatingGroups]) {\n floatingGroup.dispose();\n }\n // fires clean-up events and clears the underlying HTML gridview.\n this.clear();\n /**\n * even though we have cleaned-up we still want to inform the caller of their error\n * and we'll do this through re-throwing the original error since afterall you would\n * expect trying to load a corrupted layout to result in an error and not silently fail...\n */\n throw err;\n }\n this.updateWatermark();\n this._onDidLayoutFromJSON.fire();\n }\n clear() {\n const groups = Array.from(this._groups.values()).map((_) => _.value);\n const hasActiveGroup = !!this.activeGroup;\n const hasActivePanel = !!this.activePanel;\n for (const group of groups) {\n // remove the group will automatically remove the panels\n this.removeGroup(group, { skipActive: true });\n }\n if (hasActiveGroup) {\n this.doSetGroupAndPanelActive(undefined);\n }\n this.gridview.clear();\n }\n closeAllGroups() {\n for (const entry of this._groups.entries()) {\n const [_, group] = entry;\n group.value.model.closeAllPanels();\n }\n }\n addPanel(options) {\n var _a, _b;\n if (this.panels.find((_) => _.id === options.id)) {\n throw new Error(`panel with id ${options.id} already exists`);\n }\n let referenceGroup;\n if (options.position && options.floating) {\n throw new Error('you can only provide one of: position, floating as arguments to .addPanel(...)');\n }\n if (options.position) {\n if (isPanelOptionsWithPanel(options.position)) {\n const referencePanel = typeof options.position.referencePanel === 'string'\n ? this.getGroupPanel(options.position.referencePanel)\n : options.position.referencePanel;\n if (!referencePanel) {\n throw new Error(`referencePanel ${options.position.referencePanel} does not exist`);\n }\n referenceGroup = this.findGroup(referencePanel);\n }\n else if (isPanelOptionsWithGroup(options.position)) {\n referenceGroup =\n typeof options.position.referenceGroup === 'string'\n ? (_a = this._groups.get(options.position.referenceGroup)) === null || _a === void 0 ? void 0 : _a.value\n : options.position.referenceGroup;\n if (!referenceGroup) {\n throw new Error(`referencePanel ${options.position.referenceGroup} does not exist`);\n }\n }\n else {\n const group = this.orthogonalize(directionToPosition(options.position.direction));\n const panel = this.createPanel(options, group);\n group.model.openPanel(panel);\n this.doSetGroupAndPanelActive(group);\n return panel;\n }\n }\n else {\n referenceGroup = this.activeGroup;\n }\n let panel;\n if (referenceGroup) {\n const target = toTarget(((_b = options.position) === null || _b === void 0 ? void 0 : _b.direction) || 'within');\n if (options.floating) {\n const group = this.createGroup();\n this._onDidAddGroup.fire(group);\n const o = typeof options.floating === 'object' &&\n options.floating !== null\n ? options.floating\n : {};\n this.addFloatingGroup(group, o, {\n inDragMode: false,\n skipRemoveGroup: true,\n skipActiveGroup: true,\n });\n panel = this.createPanel(options, group);\n group.model.openPanel(panel);\n }\n else if (referenceGroup.api.location.type === 'floating' ||\n target === 'center') {\n panel = this.createPanel(options, referenceGroup);\n referenceGroup.model.openPanel(panel);\n this.doSetGroupAndPanelActive(referenceGroup);\n }\n else {\n const location = getGridLocation(referenceGroup.element);\n const relativeLocation = getRelativeLocation(this.gridview.orientation, location, target);\n const group = this.createGroupAtLocation(relativeLocation);\n panel = this.createPanel(options, group);\n group.model.openPanel(panel);\n this.doSetGroupAndPanelActive(group);\n }\n }\n else if (options.floating) {\n const group = this.createGroup();\n this._onDidAddGroup.fire(group);\n const o = typeof options.floating === 'object' &&\n options.floating !== null\n ? options.floating\n : {};\n this.addFloatingGroup(group, o, {\n inDragMode: false,\n skipRemoveGroup: true,\n skipActiveGroup: true,\n });\n panel = this.createPanel(options, group);\n group.model.openPanel(panel);\n }\n else {\n const group = this.createGroupAtLocation();\n panel = this.createPanel(options, group);\n group.model.openPanel(panel);\n this.doSetGroupAndPanelActive(group);\n }\n return panel;\n }\n removePanel(panel, options = {\n removeEmptyGroup: true,\n skipDispose: false,\n }) {\n const group = panel.group;\n if (!group) {\n throw new Error(`cannot remove panel ${panel.id}. it's missing a group.`);\n }\n group.model.removePanel(panel, {\n skipSetActiveGroup: options.skipSetActiveGroup,\n });\n if (!options.skipDispose) {\n panel.group.model.renderContainer.detatch(panel);\n panel.dispose();\n }\n if (group.size === 0 && options.removeEmptyGroup) {\n this.removeGroup(group, { skipActive: options.skipSetActiveGroup });\n }\n }\n createWatermarkComponent() {\n var _a;\n return createComponent('watermark-id', 'watermark-name', this.options.watermarkComponent\n ? { 'watermark-name': this.options.watermarkComponent }\n : {}, this.options.watermarkFrameworkComponent\n ? { 'watermark-name': this.options.watermarkFrameworkComponent }\n : {}, (_a = this.options.frameworkComponentFactory) === null || _a === void 0 ? void 0 : _a.watermark);\n }\n updateWatermark() {\n var _a, _b;\n if (this.groups.filter((x) => x.api.location.type === 'grid' && x.api.isVisible).length === 0) {\n if (!this.watermark) {\n this.watermark = this.createWatermarkComponent();\n this.watermark.init({\n containerApi: new DockviewApi(this),\n });\n const watermarkContainer = document.createElement('div');\n watermarkContainer.className = 'dv-watermark-container';\n watermarkContainer.appendChild(this.watermark.element);\n this.gridview.element.appendChild(watermarkContainer);\n }\n }\n else if (this.watermark) {\n this.watermark.element.parentElement.remove();\n (_b = (_a = this.watermark).dispose) === null || _b === void 0 ? void 0 : _b.call(_a);\n this.watermark = null;\n }\n }\n addGroup(options) {\n var _a;\n const group = this.createGroup(options);\n if (options) {\n let referenceGroup;\n if (isGroupOptionsWithPanel(options)) {\n const referencePanel = typeof options.referencePanel === 'string'\n ? this.panels.find((panel) => panel.id === options.referencePanel)\n : options.referencePanel;\n if (!referencePanel) {\n throw new Error(`reference panel ${options.referencePanel} does not exist`);\n }\n referenceGroup = this.findGroup(referencePanel);\n if (!referenceGroup) {\n throw new Error(`reference group for reference panel ${options.referencePanel} does not exist`);\n }\n }\n else if (isGroupOptionsWithGroup(options)) {\n referenceGroup =\n typeof options.referenceGroup === 'string'\n ? (_a = this._groups.get(options.referenceGroup)) === null || _a === void 0 ? void 0 : _a.value\n : options.referenceGroup;\n if (!referenceGroup) {\n throw new Error(`reference group ${options.referenceGroup} does not exist`);\n }\n }\n else {\n const group = this.orthogonalize(directionToPosition(options.direction));\n if (!options.skipSetActive) {\n this.doSetGroupAndPanelActive(group);\n }\n return group;\n }\n const target = toTarget(options.direction || 'within');\n const location = getGridLocation(referenceGroup.element);\n const relativeLocation = getRelativeLocation(this.gridview.orientation, location, target);\n this.doAddGroup(group, relativeLocation);\n if (!options.skipSetActive) {\n this.doSetGroupAndPanelActive(group);\n }\n return group;\n }\n else {\n this.doAddGroup(group);\n this.doSetGroupAndPanelActive(group);\n return group;\n }\n }\n removeGroup(group, options) {\n this.doRemoveGroup(group, options);\n }\n doRemoveGroup(group, options) {\n var _a;\n const panels = [...group.panels]; // reassign since group panels will mutate\n if (!(options === null || options === void 0 ? void 0 : options.skipDispose)) {\n for (const panel of panels) {\n this.removePanel(panel, {\n removeEmptyGroup: false,\n skipDispose: (_a = options === null || options === void 0 ? void 0 : options.skipDispose) !== null && _a !== void 0 ? _a : false,\n });\n }\n }\n const activePanel = this.activePanel;\n if (group.api.location.type === 'floating') {\n const floatingGroup = this._floatingGroups.find((_) => _.group === group);\n if (floatingGroup) {\n if (!(options === null || options === void 0 ? void 0 : options.skipDispose)) {\n floatingGroup.group.dispose();\n this._groups.delete(group.id);\n this._onDidRemoveGroup.fire(group);\n }\n remove(this._floatingGroups, floatingGroup);\n floatingGroup.dispose();\n if (!(options === null || options === void 0 ? void 0 : options.skipActive) && this._activeGroup === group) {\n const groups = Array.from(this._groups.values());\n this.doSetGroupAndPanelActive(groups.length > 0 ? groups[0].value : undefined);\n }\n return floatingGroup.group;\n }\n throw new Error('failed to find floating group');\n }\n if (group.api.location.type === 'popout') {\n const selectedGroup = this._popoutGroups.find((_) => _.popoutGroup === group);\n if (selectedGroup) {\n if (!(options === null || options === void 0 ? void 0 : options.skipDispose)) {\n if (!(options === null || options === void 0 ? void 0 : options.skipPopoutAssociated)) {\n const refGroup = selectedGroup.referenceGroup\n ? this.getPanel(selectedGroup.referenceGroup)\n : undefined;\n if (refGroup) {\n this.removeGroup(refGroup);\n }\n }\n selectedGroup.popoutGroup.dispose();\n this._groups.delete(group.id);\n this._onDidRemoveGroup.fire(group);\n }\n const removedGroup = selectedGroup.disposable.dispose();\n if (!(options === null || options === void 0 ? void 0 : options.skipPopoutReturn) && removedGroup) {\n this.doAddGroup(removedGroup, [0]);\n this.doSetGroupAndPanelActive(removedGroup);\n }\n if (!(options === null || options === void 0 ? void 0 : options.skipActive) && this._activeGroup === group) {\n const groups = Array.from(this._groups.values());\n this.doSetGroupAndPanelActive(groups.length > 0 ? groups[0].value : undefined);\n }\n this.updateWatermark();\n return selectedGroup.popoutGroup;\n }\n throw new Error('failed to find popout group');\n }\n const re = super.doRemoveGroup(group, options);\n if (!(options === null || options === void 0 ? void 0 : options.skipActive)) {\n if (this.activePanel !== activePanel) {\n this._onDidActivePanelChange.fire(this.activePanel);\n }\n }\n return re;\n }\n movingLock(func) {\n const isMoving = this._moving;\n try {\n this._moving = true;\n return func();\n }\n finally {\n this._moving = isMoving;\n }\n }\n moveGroupOrPanel(options) {\n var _a;\n const destinationGroup = options.to.group;\n const sourceGroupId = options.from.groupId;\n const sourceItemId = options.from.panelId;\n const destinationTarget = options.to.position;\n const destinationIndex = options.to.index;\n const sourceGroup = sourceGroupId\n ? (_a = this._groups.get(sourceGroupId)) === null || _a === void 0 ? void 0 : _a.value\n : undefined;\n if (!sourceGroup) {\n throw new Error(`Failed to find group id ${sourceGroupId}`);\n }\n if (sourceItemId === undefined) {\n /**\n * Moving an entire group into another group\n */\n this.moveGroup({\n from: { group: sourceGroup },\n to: {\n group: destinationGroup,\n position: destinationTarget,\n },\n });\n return;\n }\n if (!destinationTarget || destinationTarget === 'center') {\n /**\n * Dropping a panel within another group\n */\n const removedPanel = this.movingLock(() => sourceGroup.model.removePanel(sourceItemId, {\n skipSetActive: false,\n skipSetActiveGroup: true,\n }));\n if (!removedPanel) {\n throw new Error(`No panel with id ${sourceItemId}`);\n }\n if (sourceGroup.model.size === 0) {\n // remove the group and do not set a new group as active\n this.doRemoveGroup(sourceGroup, { skipActive: true });\n }\n this.movingLock(() => destinationGroup.model.openPanel(removedPanel, {\n index: destinationIndex,\n skipSetGroupActive: true,\n }));\n this.doSetGroupAndPanelActive(destinationGroup);\n this._onDidMovePanel.fire({\n panel: removedPanel,\n });\n }\n else {\n /**\n * Dropping a panel to the extremities of a group which will place that panel\n * into an adjacent group\n */\n const referenceLocation = getGridLocation(destinationGroup.element);\n const targetLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, destinationTarget);\n if (sourceGroup.size < 2) {\n /**\n * If we are moving from a group which only has one panel left we will consider\n * moving the group itself rather than moving the panel into a newly created group\n */\n const [targetParentLocation, to] = tail(targetLocation);\n if (sourceGroup.api.location.type === 'grid') {\n const sourceLocation = getGridLocation(sourceGroup.element);\n const [sourceParentLocation, from] = tail(sourceLocation);\n if (sequenceEquals(sourceParentLocation, targetParentLocation)) {\n // special case when 'swapping' two views within same grid location\n // if a group has one tab - we are essentially moving the 'group'\n // which is equivalent to swapping two views in this case\n this.gridview.moveView(sourceParentLocation, from, to);\n return;\n }\n }\n // source group will become empty so delete the group\n const targetGroup = this.movingLock(() => this.doRemoveGroup(sourceGroup, {\n skipActive: true,\n skipDispose: true,\n }));\n // after deleting the group we need to re-evaulate the ref location\n const updatedReferenceLocation = getGridLocation(destinationGroup.element);\n const location = getRelativeLocation(this.gridview.orientation, updatedReferenceLocation, destinationTarget);\n this.movingLock(() => this.doAddGroup(targetGroup, location));\n this.doSetGroupAndPanelActive(targetGroup);\n }\n else {\n /**\n * The group we are removing from has many panels, we need to remove the panels we are moving,\n * create a new group, add the panels to that new group and add the new group in an appropiate position\n */\n const removedPanel = this.movingLock(() => sourceGroup.model.removePanel(sourceItemId, {\n skipSetActive: false,\n skipSetActiveGroup: true,\n }));\n if (!removedPanel) {\n throw new Error(`No panel with id ${sourceItemId}`);\n }\n const dropLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, destinationTarget);\n const group = this.createGroupAtLocation(dropLocation);\n this.movingLock(() => group.model.openPanel(removedPanel, {\n skipSetGroupActive: true,\n }));\n this.doSetGroupAndPanelActive(group);\n }\n }\n }\n moveGroup(options) {\n const from = options.from.group;\n const to = options.to.group;\n const target = options.to.position;\n if (target === 'center') {\n const activePanel = from.activePanel;\n const panels = this.movingLock(() => [...from.panels].map((p) => from.model.removePanel(p.id, {\n skipSetActive: true,\n })));\n if ((from === null || from === void 0 ? void 0 : from.model.size) === 0) {\n this.doRemoveGroup(from, { skipActive: true });\n }\n this.movingLock(() => {\n for (const panel of panels) {\n to.model.openPanel(panel, {\n skipSetActive: panel !== activePanel,\n skipSetGroupActive: true,\n });\n }\n });\n this.doSetGroupAndPanelActive(to);\n panels.forEach((panel) => {\n this._onDidMovePanel.fire({ panel });\n });\n }\n else {\n switch (from.api.location.type) {\n case 'grid':\n this.gridview.removeView(getGridLocation(from.element));\n break;\n case 'floating': {\n const selectedFloatingGroup = this._floatingGroups.find((x) => x.group === from);\n if (!selectedFloatingGroup) {\n throw new Error('failed to find floating group');\n }\n selectedFloatingGroup.dispose();\n break;\n }\n case 'popout': {\n const selectedPopoutGroup = this._popoutGroups.find((x) => x.popoutGroup === from);\n if (!selectedPopoutGroup) {\n throw new Error('failed to find popout group');\n }\n selectedPopoutGroup.disposable.dispose();\n }\n }\n const referenceLocation = getGridLocation(to.element);\n const dropLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, target);\n this.gridview.addView(from, Sizing.Distribute, dropLocation);\n from.panels.forEach((panel) => {\n this._onDidMovePanel.fire({ panel });\n });\n }\n }\n doSetGroupActive(group) {\n super.doSetGroupActive(group);\n const activePanel = this.activePanel;\n if (!this._moving &&\n activePanel !== this._onDidActivePanelChange.value) {\n this._onDidActivePanelChange.fire(activePanel);\n }\n }\n doSetGroupAndPanelActive(group) {\n super.doSetGroupActive(group);\n const activePanel = this.activePanel;\n if (group &&\n this.hasMaximizedGroup() &&\n !this.isMaximizedGroup(group)) {\n this.exitMaximizedGroup();\n }\n if (!this._moving &&\n activePanel !== this._onDidActivePanelChange.value) {\n this._onDidActivePanelChange.fire(activePanel);\n }\n }\n getNextGroupId() {\n let id = this.nextGroupId.next();\n while (this._groups.has(id)) {\n id = this.nextGroupId.next();\n }\n return id;\n }\n createGroup(options) {\n if (!options) {\n options = {};\n }\n let id = options === null || options === void 0 ? void 0 : options.id;\n if (id && this._groups.has(options.id)) {\n console.warn(`Duplicate group id ${options === null || options === void 0 ? void 0 : options.id}. reassigning group id to avoid errors`);\n id = undefined;\n }\n if (!id) {\n id = this.nextGroupId.next();\n while (this._groups.has(id)) {\n id = this.nextGroupId.next();\n }\n }\n const view = new DockviewGroupPanel(this, id, options);\n view.init({ params: {}, accessor: this });\n if (!this._groups.has(view.id)) {\n const disposable = new CompositeDisposable(view.model.onTabDragStart((event) => {\n this._onWillDragPanel.fire(event);\n }), view.model.onGroupDragStart((event) => {\n this._onWillDragGroup.fire(event);\n }), view.model.onMove((event) => {\n const { groupId, itemId, target, index } = event;\n this.moveGroupOrPanel({\n from: { groupId: groupId, panelId: itemId },\n to: {\n group: view,\n position: target,\n index,\n },\n });\n }), view.model.onDidDrop((event) => {\n this._onDidDrop.fire(event);\n }), view.model.onWillDrop((event) => {\n this._onWillDrop.fire(event);\n }), view.model.onWillShowOverlay((event) => {\n if (this.options.disableDnd) {\n event.preventDefault();\n return;\n }\n this._onWillShowOverlay.fire(event);\n }), view.model.onDidAddPanel((event) => {\n if (this._moving) {\n return;\n }\n this._onDidAddPanel.fire(event.panel);\n }), view.model.onDidRemovePanel((event) => {\n if (this._moving) {\n return;\n }\n this._onDidRemovePanel.fire(event.panel);\n }), view.model.onDidActivePanelChange((event) => {\n if (this._moving) {\n return;\n }\n if (event.panel !== this.activePanel) {\n return;\n }\n if (this._onDidActivePanelChange.value !== event.panel) {\n this._onDidActivePanelChange.fire(event.panel);\n }\n }));\n this._groups.set(view.id, { value: view, disposable });\n }\n // TODO: must be called after the above listeners have been setup, not an ideal pattern\n view.initialize();\n return view;\n }\n createPanel(options, group) {\n var _a, _b, _c;\n const contentComponent = options.component;\n const tabComponent = (_a = options.tabComponent) !== null && _a !== void 0 ? _a : this.options.defaultTabComponent;\n const view = new DockviewPanelModel(this, options.id, contentComponent, tabComponent);\n const panel = new DockviewPanel(options.id, this, this._api, group, view, { renderer: options.renderer });\n panel.init({\n title: (_b = options.title) !== null && _b !== void 0 ? _b : options.id,\n params: (_c = options === null || options === void 0 ? void 0 : options.params) !== null && _c !== void 0 ? _c : {},\n });\n return panel;\n }\n createGroupAtLocation(location = [0]) {\n const group = this.createGroup();\n this.doAddGroup(group, location);\n return group;\n }\n findGroup(panel) {\n var _a;\n return (_a = Array.from(this._groups.values()).find((group) => group.value.model.containsPanel(panel))) === null || _a === void 0 ? void 0 : _a.value;\n }\n}\n","import { getRelativeLocation, getGridLocation, } from './gridview';\nimport { tail, sequenceEquals } from '../array';\nimport { CompositeDisposable } from '../lifecycle';\nimport { BaseGrid, toTarget, } from './baseComponentGridview';\nimport { createComponent } from '../panel/componentFactory';\nimport { Emitter } from '../events';\nexport class GridviewComponent extends BaseGrid {\n get orientation() {\n return this.gridview.orientation;\n }\n set orientation(value) {\n this.gridview.orientation = value;\n }\n get options() {\n return this._options;\n }\n get deserializer() {\n return this._deserializer;\n }\n set deserializer(value) {\n this._deserializer = value;\n }\n constructor(options) {\n super({\n parentElement: options.parentElement,\n proportionalLayout: options.proportionalLayout,\n orientation: options.orientation,\n styles: options.styles,\n disableAutoResizing: options.disableAutoResizing,\n });\n this._onDidLayoutfromJSON = new Emitter();\n this.onDidLayoutFromJSON = this._onDidLayoutfromJSON.event;\n this._onDidRemoveGroup = new Emitter();\n this.onDidRemoveGroup = this._onDidRemoveGroup.event;\n this._onDidAddGroup = new Emitter();\n this.onDidAddGroup = this._onDidAddGroup.event;\n this._onDidActiveGroupChange = new Emitter();\n this.onDidActiveGroupChange = this._onDidActiveGroupChange.event;\n this._options = options;\n this.addDisposables(this._onDidAddGroup, this._onDidRemoveGroup, this._onDidActiveGroupChange, this.onDidAdd((event) => {\n this._onDidAddGroup.fire(event);\n }), this.onDidRemove((event) => {\n this._onDidRemoveGroup.fire(event);\n }), this.onDidActiveChange((event) => {\n this._onDidActiveGroupChange.fire(event);\n }));\n if (!this.options.components) {\n this.options.components = {};\n }\n if (!this.options.frameworkComponents) {\n this.options.frameworkComponents = {};\n }\n }\n updateOptions(options) {\n const hasOrientationChanged = typeof options.orientation === 'string' &&\n this.gridview.orientation !== options.orientation;\n this._options = Object.assign(Object.assign({}, this.options), options);\n if (hasOrientationChanged) {\n this.gridview.orientation = options.orientation;\n }\n this.layout(this.gridview.width, this.gridview.height, true);\n }\n removePanel(panel) {\n this.removeGroup(panel);\n }\n /**\n * Serialize the current state of the layout\n *\n * @returns A JSON respresentation of the layout\n */\n toJSON() {\n var _a;\n const data = this.gridview.serialize();\n return {\n grid: data,\n activePanel: (_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.id,\n };\n }\n setVisible(panel, visible) {\n this.gridview.setViewVisible(getGridLocation(panel.element), visible);\n }\n setActive(panel) {\n this._groups.forEach((value, _key) => {\n value.value.setActive(panel === value.value);\n });\n }\n focus() {\n var _a;\n (_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.focus();\n }\n fromJSON(serializedGridview) {\n this.clear();\n const { grid, activePanel } = serializedGridview;\n try {\n const queue = [];\n // take note of the existing dimensions\n const width = this.width;\n const height = this.height;\n this.gridview.deserialize(grid, {\n fromJSON: (node) => {\n var _a, _b;\n const { data } = node;\n const view = createComponent(data.id, data.component, (_a = this.options.components) !== null && _a !== void 0 ? _a : {}, (_b = this.options.frameworkComponents) !== null && _b !== void 0 ? _b : {}, this.options.frameworkComponentFactory\n ? {\n createComponent: this.options.frameworkComponentFactory\n .createComponent,\n }\n : undefined);\n queue.push(() => view.init({\n params: data.params,\n minimumWidth: data.minimumWidth,\n maximumWidth: data.maximumWidth,\n minimumHeight: data.minimumHeight,\n maximumHeight: data.maximumHeight,\n priority: data.priority,\n snap: !!data.snap,\n accessor: this,\n isVisible: node.visible,\n }));\n this._onDidAddGroup.fire(view);\n this.registerPanel(view);\n return view;\n },\n });\n this.layout(width, height, true);\n queue.forEach((f) => f());\n if (typeof activePanel === 'string') {\n const panel = this.getPanel(activePanel);\n if (panel) {\n this.doSetGroupActive(panel);\n }\n }\n }\n catch (err) {\n /**\n * To remove a group we cannot call this.removeGroup(...) since this makes assumptions about\n * the underlying HTMLElement existing in the Gridview.\n */\n for (const group of this.groups) {\n group.dispose();\n this._groups.delete(group.id);\n this._onDidRemoveGroup.fire(group);\n }\n // fires clean-up events and clears the underlying HTML gridview.\n this.clear();\n /**\n * even though we have cleaned-up we still want to inform the caller of their error\n * and we'll do this through re-throwing the original error since afterall you would\n * expect trying to load a corrupted layout to result in an error and not silently fail...\n */\n throw err;\n }\n this._onDidLayoutfromJSON.fire();\n }\n clear() {\n const hasActiveGroup = this.activeGroup;\n const groups = Array.from(this._groups.values()); // reassign since group panels will mutate\n for (const group of groups) {\n group.disposable.dispose();\n this.doRemoveGroup(group.value, { skipActive: true });\n }\n if (hasActiveGroup) {\n this.doSetGroupActive(undefined);\n }\n this.gridview.clear();\n }\n movePanel(panel, options) {\n var _a;\n let relativeLocation;\n const removedPanel = this.gridview.remove(panel);\n const referenceGroup = (_a = this._groups.get(options.reference)) === null || _a === void 0 ? void 0 : _a.value;\n if (!referenceGroup) {\n throw new Error(`reference group ${options.reference} does not exist`);\n }\n const target = toTarget(options.direction);\n if (target === 'center') {\n throw new Error(`${target} not supported as an option`);\n }\n else {\n const location = getGridLocation(referenceGroup.element);\n relativeLocation = getRelativeLocation(this.gridview.orientation, location, target);\n }\n this.doAddGroup(removedPanel, relativeLocation, options.size);\n }\n addPanel(options) {\n var _a, _b, _c, _d, _e, _f;\n let relativeLocation = (_a = options.location) !== null && _a !== void 0 ? _a : [0];\n if ((_b = options.position) === null || _b === void 0 ? void 0 : _b.referencePanel) {\n const referenceGroup = (_c = this._groups.get(options.position.referencePanel)) === null || _c === void 0 ? void 0 : _c.value;\n if (!referenceGroup) {\n throw new Error(`reference group ${options.position.referencePanel} does not exist`);\n }\n const target = toTarget(options.position.direction);\n if (target === 'center') {\n throw new Error(`${target} not supported as an option`);\n }\n else {\n const location = getGridLocation(referenceGroup.element);\n relativeLocation = getRelativeLocation(this.gridview.orientation, location, target);\n }\n }\n const view = createComponent(options.id, options.component, (_d = this.options.components) !== null && _d !== void 0 ? _d : {}, (_e = this.options.frameworkComponents) !== null && _e !== void 0 ? _e : {}, this.options.frameworkComponentFactory\n ? {\n createComponent: this.options.frameworkComponentFactory\n .createComponent,\n }\n : undefined);\n view.init({\n params: (_f = options.params) !== null && _f !== void 0 ? _f : {},\n minimumWidth: options.minimumWidth,\n maximumWidth: options.maximumWidth,\n minimumHeight: options.minimumHeight,\n maximumHeight: options.maximumHeight,\n priority: options.priority,\n snap: !!options.snap,\n accessor: this,\n isVisible: true,\n });\n this.registerPanel(view);\n this.doAddGroup(view, relativeLocation, options.size);\n this.doSetGroupActive(view);\n return view;\n }\n registerPanel(panel) {\n const disposable = new CompositeDisposable(panel.api.onDidFocusChange((event) => {\n if (!event.isFocused) {\n return;\n }\n this._groups.forEach((groupItem) => {\n const group = groupItem.value;\n if (group !== panel) {\n group.setActive(false);\n }\n else {\n group.setActive(true);\n }\n });\n }));\n this._groups.set(panel.id, {\n value: panel,\n disposable,\n });\n }\n moveGroup(referenceGroup, groupId, target) {\n const sourceGroup = this.getPanel(groupId);\n if (!sourceGroup) {\n throw new Error('invalid operation');\n }\n const referenceLocation = getGridLocation(referenceGroup.element);\n const targetLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, target);\n const [targetParentLocation, to] = tail(targetLocation);\n const sourceLocation = getGridLocation(sourceGroup.element);\n const [sourceParentLocation, from] = tail(sourceLocation);\n if (sequenceEquals(sourceParentLocation, targetParentLocation)) {\n // special case when 'swapping' two views within same grid location\n // if a group has one tab - we are essentially moving the 'group'\n // which is equivalent to swapping two views in this case\n this.gridview.moveView(sourceParentLocation, from, to);\n return;\n }\n // source group will become empty so delete the group\n const targetGroup = this.doRemoveGroup(sourceGroup, {\n skipActive: true,\n skipDispose: true,\n });\n // after deleting the group we need to re-evaulate the ref location\n const updatedReferenceLocation = getGridLocation(referenceGroup.element);\n const location = getRelativeLocation(this.gridview.orientation, updatedReferenceLocation, target);\n this.doAddGroup(targetGroup, location);\n }\n removeGroup(group) {\n super.removeGroup(group);\n }\n dispose() {\n super.dispose();\n this._onDidLayoutfromJSON.dispose();\n }\n}\n","import { CompositeDisposable, MutableDisposable, } from '../lifecycle';\nimport { Orientation, Sizing, Splitview, } from './splitview';\nimport { Emitter } from '../events';\nimport { createComponent } from '../panel/componentFactory';\nimport { Resizable } from '../resizable';\n/**\n * A high-level implementation of splitview that works using 'panels'\n */\nexport class SplitviewComponent extends Resizable {\n get panels() {\n return this.splitview.getViews();\n }\n get options() {\n return this._options;\n }\n get length() {\n return this._panels.size;\n }\n get orientation() {\n return this.splitview.orientation;\n }\n get splitview() {\n return this._splitview;\n }\n set splitview(value) {\n this._splitview = value;\n this._splitviewChangeDisposable.value = new CompositeDisposable(this._splitview.onDidSashEnd(() => {\n this._onDidLayoutChange.fire(undefined);\n }), this._splitview.onDidAddView((e) => this._onDidAddView.fire(e)), this._splitview.onDidRemoveView((e) => this._onDidRemoveView.fire(e)));\n }\n get minimumSize() {\n return this.splitview.minimumSize;\n }\n get maximumSize() {\n return this.splitview.maximumSize;\n }\n get height() {\n return this.splitview.orientation === Orientation.HORIZONTAL\n ? this.splitview.orthogonalSize\n : this.splitview.size;\n }\n get width() {\n return this.splitview.orientation === Orientation.HORIZONTAL\n ? this.splitview.size\n : this.splitview.orthogonalSize;\n }\n constructor(options) {\n super(options.parentElement, options.disableAutoResizing);\n this._splitviewChangeDisposable = new MutableDisposable();\n this._panels = new Map();\n this._onDidLayoutfromJSON = new Emitter();\n this.onDidLayoutFromJSON = this._onDidLayoutfromJSON.event;\n this._onDidAddView = new Emitter();\n this.onDidAddView = this._onDidAddView.event;\n this._onDidRemoveView = new Emitter();\n this.onDidRemoveView = this._onDidRemoveView.event;\n this._onDidLayoutChange = new Emitter();\n this.onDidLayoutChange = this._onDidLayoutChange.event;\n this._options = options;\n if (!options.components) {\n options.components = {};\n }\n if (!options.frameworkComponents) {\n options.frameworkComponents = {};\n }\n this.splitview = new Splitview(this.element, options);\n this.addDisposables(this._onDidAddView, this._onDidLayoutfromJSON, this._onDidRemoveView, this._onDidLayoutChange);\n }\n updateOptions(options) {\n const hasOrientationChanged = typeof options.orientation === 'string' &&\n this.options.orientation !== options.orientation;\n this._options = Object.assign(Object.assign({}, this.options), options);\n if (hasOrientationChanged) {\n this.splitview.orientation = options.orientation;\n }\n this.splitview.layout(this.splitview.size, this.splitview.orthogonalSize);\n }\n focus() {\n var _a;\n (_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.focus();\n }\n movePanel(from, to) {\n this.splitview.moveView(from, to);\n }\n setVisible(panel, visible) {\n const index = this.panels.indexOf(panel);\n this.splitview.setViewVisible(index, visible);\n }\n setActive(panel, skipFocus) {\n this._activePanel = panel;\n this.panels\n .filter((v) => v !== panel)\n .forEach((v) => {\n v.api._onDidActiveChange.fire({ isActive: false });\n if (!skipFocus) {\n v.focus();\n }\n });\n panel.api._onDidActiveChange.fire({ isActive: true });\n if (!skipFocus) {\n panel.focus();\n }\n }\n removePanel(panel, sizing) {\n const item = this._panels.get(panel.id);\n if (!item) {\n throw new Error(`unknown splitview panel ${panel.id}`);\n }\n item.dispose();\n this._panels.delete(panel.id);\n const index = this.panels.findIndex((_) => _ === panel);\n const removedView = this.splitview.removeView(index, sizing);\n removedView.dispose();\n const panels = this.panels;\n if (panels.length > 0) {\n this.setActive(panels[panels.length - 1]);\n }\n }\n getPanel(id) {\n return this.panels.find((view) => view.id === id);\n }\n addPanel(options) {\n var _a, _b, _c;\n if (this._panels.has(options.id)) {\n throw new Error(`panel ${options.id} already exists`);\n }\n const view = createComponent(options.id, options.component, (_a = this.options.components) !== null && _a !== void 0 ? _a : {}, (_b = this.options.frameworkComponents) !== null && _b !== void 0 ? _b : {}, this.options.frameworkWrapper\n ? {\n createComponent: this.options.frameworkWrapper.createComponent,\n }\n : undefined);\n view.orientation = this.splitview.orientation;\n view.init({\n params: (_c = options.params) !== null && _c !== void 0 ? _c : {},\n minimumSize: options.minimumSize,\n maximumSize: options.maximumSize,\n snap: options.snap,\n priority: options.priority,\n accessor: this,\n });\n const size = typeof options.size === 'number' ? options.size : Sizing.Distribute;\n const index = typeof options.index === 'number' ? options.index : undefined;\n this.splitview.addView(view, size, index);\n this.doAddView(view);\n this.setActive(view);\n return view;\n }\n layout(width, height) {\n const [size, orthogonalSize] = this.splitview.orientation === Orientation.HORIZONTAL\n ? [width, height]\n : [height, width];\n this.splitview.layout(size, orthogonalSize);\n }\n doAddView(view) {\n const disposable = view.api.onDidFocusChange((event) => {\n if (!event.isFocused) {\n return;\n }\n this.setActive(view, true);\n });\n this._panels.set(view.id, disposable);\n }\n toJSON() {\n var _a;\n const views = this.splitview\n .getViews()\n .map((view, i) => {\n const size = this.splitview.getViewSize(i);\n return {\n size,\n data: view.toJSON(),\n snap: !!view.snap,\n priority: view.priority,\n };\n });\n return {\n views,\n activeView: (_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.id,\n size: this.splitview.size,\n orientation: this.splitview.orientation,\n };\n }\n fromJSON(serializedSplitview) {\n this.clear();\n const { views, orientation, size, activeView } = serializedSplitview;\n const queue = [];\n // take note of the existing dimensions\n const width = this.width;\n const height = this.height;\n this.splitview = new Splitview(this.element, {\n orientation,\n proportionalLayout: this.options.proportionalLayout,\n descriptor: {\n size,\n views: views.map((view) => {\n var _a, _b;\n const data = view.data;\n if (this._panels.has(data.id)) {\n throw new Error(`panel ${data.id} already exists`);\n }\n const panel = createComponent(data.id, data.component, (_a = this.options.components) !== null && _a !== void 0 ? _a : {}, (_b = this.options.frameworkComponents) !== null && _b !== void 0 ? _b : {}, this.options.frameworkWrapper\n ? {\n createComponent: this.options.frameworkWrapper\n .createComponent,\n }\n : undefined);\n queue.push(() => {\n var _a;\n panel.init({\n params: (_a = data.params) !== null && _a !== void 0 ? _a : {},\n minimumSize: data.minimumSize,\n maximumSize: data.maximumSize,\n snap: view.snap,\n priority: view.priority,\n accessor: this,\n });\n });\n panel.orientation = orientation;\n this.doAddView(panel);\n setTimeout(() => {\n // the original onDidAddView events are missed since they are fired before we can subcribe to them\n this._onDidAddView.fire(panel);\n }, 0);\n return { size: view.size, view: panel };\n }),\n },\n });\n this.layout(width, height);\n queue.forEach((f) => f());\n if (typeof activeView === 'string') {\n const panel = this.getPanel(activeView);\n if (panel) {\n this.setActive(panel);\n }\n }\n this._onDidLayoutfromJSON.fire();\n }\n clear() {\n for (const disposable of this._panels.values()) {\n disposable.dispose();\n }\n this._panels.clear();\n while (this.splitview.length > 0) {\n const view = this.splitview.removeView(0, Sizing.Distribute, true);\n view.dispose();\n }\n }\n dispose() {\n for (const disposable of this._panels.values()) {\n disposable.dispose();\n }\n this._panels.clear();\n const views = this.splitview.getViews();\n this._splitviewChangeDisposable.dispose();\n this.splitview.dispose();\n for (const view of views) {\n view.dispose();\n }\n super.dispose();\n }\n}\n","import { addDisposableListener } from '../events';\nimport { CompositeDisposable, MutableDisposable } from '../lifecycle';\nimport { toggleClass } from '../dom';\nimport { createChevronRightButton, createExpandMoreButton } from '../svg';\nexport class DefaultHeader extends CompositeDisposable {\n get element() {\n return this._element;\n }\n constructor() {\n super();\n this._expandedIcon = createExpandMoreButton();\n this._collapsedIcon = createChevronRightButton();\n this.disposable = new MutableDisposable();\n this.apiRef = { api: null };\n this._element = document.createElement('div');\n this.element.className = 'default-header';\n this._content = document.createElement('span');\n this._expander = document.createElement('div');\n this._expander.className = 'dockview-pane-header-icon';\n this.element.appendChild(this._expander);\n this.element.appendChild(this._content);\n this.addDisposables(addDisposableListener(this._element, 'click', () => {\n var _a;\n (_a = this.apiRef.api) === null || _a === void 0 ? void 0 : _a.setExpanded(!this.apiRef.api.isExpanded);\n }));\n }\n init(params) {\n this.apiRef.api = params.api;\n this._content.textContent = params.title;\n this.updateIcon();\n this.disposable.value = params.api.onDidExpansionChange(() => {\n this.updateIcon();\n });\n }\n updateIcon() {\n var _a;\n const isExpanded = !!((_a = this.apiRef.api) === null || _a === void 0 ? void 0 : _a.isExpanded);\n toggleClass(this._expander, 'collapsed', !isExpanded);\n if (isExpanded) {\n if (this._expander.contains(this._collapsedIcon)) {\n this._collapsedIcon.remove();\n }\n if (!this._expander.contains(this._expandedIcon)) {\n this._expander.appendChild(this._expandedIcon);\n }\n }\n else {\n if (this._expander.contains(this._expandedIcon)) {\n this._expandedIcon.remove();\n }\n if (!this._expander.contains(this._collapsedIcon)) {\n this._expander.appendChild(this._collapsedIcon);\n }\n }\n }\n update(_params) {\n //\n }\n dispose() {\n this.disposable.dispose();\n super.dispose();\n }\n}\n","import { PaneviewApi } from '../api/component.api';\nimport { createComponent } from '../panel/componentFactory';\nimport { Emitter } from '../events';\nimport { CompositeDisposable, MutableDisposable, } from '../lifecycle';\nimport { Orientation, Sizing } from '../splitview/splitview';\nimport { Paneview } from './paneview';\nimport { DraggablePaneviewPanel, } from './draggablePaneviewPanel';\nimport { DefaultHeader } from './defaultPaneviewHeader';\nimport { sequentialNumberGenerator } from '../math';\nimport { Resizable } from '../resizable';\nconst nextLayoutId = sequentialNumberGenerator();\nexport class PaneFramework extends DraggablePaneviewPanel {\n constructor(options) {\n super(options.accessor, options.id, options.component, options.headerComponent, options.orientation, options.isExpanded, options.disableDnd);\n this.options = options;\n }\n getBodyComponent() {\n return this.options.body;\n }\n getHeaderComponent() {\n return this.options.header;\n }\n}\nexport class PaneviewComponent extends Resizable {\n get id() {\n return this._id;\n }\n get panels() {\n return this.paneview.getPanes();\n }\n set paneview(value) {\n this._paneview = value;\n this._disposable.value = new CompositeDisposable(this._paneview.onDidChange(() => {\n this._onDidLayoutChange.fire(undefined);\n }), this._paneview.onDidAddView((e) => this._onDidAddView.fire(e)), this._paneview.onDidRemoveView((e) => this._onDidRemoveView.fire(e)));\n }\n get paneview() {\n return this._paneview;\n }\n get minimumSize() {\n return this.paneview.minimumSize;\n }\n get maximumSize() {\n return this.paneview.maximumSize;\n }\n get height() {\n return this.paneview.orientation === Orientation.HORIZONTAL\n ? this.paneview.orthogonalSize\n : this.paneview.size;\n }\n get width() {\n return this.paneview.orientation === Orientation.HORIZONTAL\n ? this.paneview.size\n : this.paneview.orthogonalSize;\n }\n get options() {\n return this._options;\n }\n constructor(options) {\n super(options.parentElement, options.disableAutoResizing);\n this._id = nextLayoutId.next();\n this._disposable = new MutableDisposable();\n this._viewDisposables = new Map();\n this._onDidLayoutfromJSON = new Emitter();\n this.onDidLayoutFromJSON = this._onDidLayoutfromJSON.event;\n this._onDidLayoutChange = new Emitter();\n this.onDidLayoutChange = this._onDidLayoutChange.event;\n this._onDidDrop = new Emitter();\n this.onDidDrop = this._onDidDrop.event;\n this._onDidAddView = new Emitter();\n this.onDidAddView = this._onDidAddView.event;\n this._onDidRemoveView = new Emitter();\n this.onDidRemoveView = this._onDidRemoveView.event;\n this.addDisposables(this._onDidLayoutChange, this._onDidLayoutfromJSON, this._onDidDrop, this._onDidAddView, this._onDidRemoveView);\n this._options = options;\n if (!options.components) {\n options.components = {};\n }\n if (!options.frameworkComponents) {\n options.frameworkComponents = {};\n }\n this.paneview = new Paneview(this.element, {\n // only allow paneview in the vertical orientation for now\n orientation: Orientation.VERTICAL,\n });\n this.addDisposables(this._disposable);\n }\n setVisible(panel, visible) {\n const index = this.panels.indexOf(panel);\n this.paneview.setViewVisible(index, visible);\n }\n focus() {\n //noop\n }\n updateOptions(options) {\n this._options = Object.assign(Object.assign({}, this.options), options);\n }\n addPanel(options) {\n var _a, _b, _c, _d;\n const body = createComponent(options.id, options.component, (_a = this.options.components) !== null && _a !== void 0 ? _a : {}, (_b = this.options.frameworkComponents) !== null && _b !== void 0 ? _b : {}, this.options.frameworkWrapper\n ? {\n createComponent: this.options.frameworkWrapper.body.createComponent,\n }\n : undefined);\n let header;\n if (options.headerComponent) {\n header = createComponent(options.id, options.headerComponent, (_c = this.options.headerComponents) !== null && _c !== void 0 ? _c : {}, this.options.headerframeworkComponents, this.options.frameworkWrapper\n ? {\n createComponent: this.options.frameworkWrapper.header\n .createComponent,\n }\n : undefined);\n }\n else {\n header = new DefaultHeader();\n }\n const view = new PaneFramework({\n id: options.id,\n component: options.component,\n headerComponent: options.headerComponent,\n header,\n body,\n orientation: Orientation.VERTICAL,\n isExpanded: !!options.isExpanded,\n disableDnd: !!this.options.disableDnd,\n accessor: this,\n });\n this.doAddPanel(view);\n const size = typeof options.size === 'number' ? options.size : Sizing.Distribute;\n const index = typeof options.index === 'number' ? options.index : undefined;\n view.init({\n params: (_d = options.params) !== null && _d !== void 0 ? _d : {},\n minimumBodySize: options.minimumBodySize,\n maximumBodySize: options.maximumBodySize,\n isExpanded: options.isExpanded,\n title: options.title,\n containerApi: new PaneviewApi(this),\n accessor: this,\n });\n this.paneview.addPane(view, size, index);\n view.orientation = this.paneview.orientation;\n return view;\n }\n removePanel(panel) {\n const views = this.panels;\n const index = views.findIndex((_) => _ === panel);\n this.paneview.removePane(index);\n this.doRemovePanel(panel);\n }\n movePanel(from, to) {\n this.paneview.moveView(from, to);\n }\n getPanel(id) {\n return this.panels.find((view) => view.id === id);\n }\n layout(width, height) {\n const [size, orthogonalSize] = this.paneview.orientation === Orientation.HORIZONTAL\n ? [width, height]\n : [height, width];\n this.paneview.layout(size, orthogonalSize);\n }\n toJSON() {\n const maximum = (value) => value === Number.MAX_SAFE_INTEGER ||\n value === Number.POSITIVE_INFINITY\n ? undefined\n : value;\n const minimum = (value) => (value <= 0 ? undefined : value);\n const views = this.paneview\n .getPanes()\n .map((view, i) => {\n const size = this.paneview.getViewSize(i);\n return {\n size,\n data: view.toJSON(),\n minimumSize: minimum(view.minimumBodySize),\n maximumSize: maximum(view.maximumBodySize),\n expanded: view.isExpanded(),\n };\n });\n return {\n views,\n size: this.paneview.size,\n };\n }\n fromJSON(serializedPaneview) {\n this.clear();\n const { views, size } = serializedPaneview;\n const queue = [];\n // take note of the existing dimensions\n const width = this.width;\n const height = this.height;\n this.paneview = new Paneview(this.element, {\n orientation: Orientation.VERTICAL,\n descriptor: {\n size,\n views: views.map((view) => {\n var _a, _b, _c, _d;\n const data = view.data;\n const body = createComponent(data.id, data.component, (_a = this.options.components) !== null && _a !== void 0 ? _a : {}, (_b = this.options.frameworkComponents) !== null && _b !== void 0 ? _b : {}, this.options.frameworkWrapper\n ? {\n createComponent: this.options.frameworkWrapper.body\n .createComponent,\n }\n : undefined);\n let header;\n if (data.headerComponent) {\n header = createComponent(data.id, data.headerComponent, (_c = this.options.headerComponents) !== null && _c !== void 0 ? _c : {}, (_d = this.options.headerframeworkComponents) !== null && _d !== void 0 ? _d : {}, this.options.frameworkWrapper\n ? {\n createComponent: this.options.frameworkWrapper.header\n .createComponent,\n }\n : undefined);\n }\n else {\n header = new DefaultHeader();\n }\n const panel = new PaneFramework({\n id: data.id,\n component: data.component,\n headerComponent: data.headerComponent,\n header,\n body,\n orientation: Orientation.VERTICAL,\n isExpanded: !!view.expanded,\n disableDnd: !!this.options.disableDnd,\n accessor: this,\n });\n this.doAddPanel(panel);\n queue.push(() => {\n var _a;\n panel.init({\n params: (_a = data.params) !== null && _a !== void 0 ? _a : {},\n minimumBodySize: view.minimumSize,\n maximumBodySize: view.maximumSize,\n title: data.title,\n isExpanded: !!view.expanded,\n containerApi: new PaneviewApi(this),\n accessor: this,\n });\n panel.orientation = this.paneview.orientation;\n });\n setTimeout(() => {\n // the original onDidAddView events are missed since they are fired before we can subcribe to them\n this._onDidAddView.fire(panel);\n }, 0);\n return { size: view.size, view: panel };\n }),\n },\n });\n this.layout(width, height);\n queue.forEach((f) => f());\n this._onDidLayoutfromJSON.fire();\n }\n clear() {\n for (const [_, value] of this._viewDisposables.entries()) {\n value.dispose();\n }\n this._viewDisposables.clear();\n this.paneview.dispose();\n }\n doAddPanel(panel) {\n const disposable = panel.onDidDrop((event) => {\n this._onDidDrop.fire(event);\n });\n this._viewDisposables.set(panel.id, disposable);\n }\n doRemovePanel(panel) {\n const disposable = this._viewDisposables.get(panel.id);\n if (disposable) {\n disposable.dispose();\n this._viewDisposables.delete(panel.id);\n }\n }\n dispose() {\n super.dispose();\n for (const [_, value] of this._viewDisposables.entries()) {\n value.dispose();\n }\n this._viewDisposables.clear();\n this.paneview.dispose();\n }\n}\n","import { BasePanelView, } from '../gridview/basePanelView';\nimport { SplitviewPanelApiImpl } from '../api/splitviewPanelApi';\nimport { Orientation } from './splitview';\nimport { Emitter } from '../events';\nexport class SplitviewPanel extends BasePanelView {\n get priority() {\n return this._priority;\n }\n set orientation(value) {\n this._orientation = value;\n }\n get orientation() {\n return this._orientation;\n }\n get minimumSize() {\n const size = typeof this._minimumSize === 'function'\n ? this._minimumSize()\n : this._minimumSize;\n if (size !== this._evaluatedMinimumSize) {\n this._evaluatedMinimumSize = size;\n this.updateConstraints();\n }\n return size;\n }\n get maximumSize() {\n const size = typeof this._maximumSize === 'function'\n ? this._maximumSize()\n : this._maximumSize;\n if (size !== this._evaluatedMaximumSize) {\n this._evaluatedMaximumSize = size;\n this.updateConstraints();\n }\n return size;\n }\n get snap() {\n return this._snap;\n }\n constructor(id, componentName) {\n super(id, componentName, new SplitviewPanelApiImpl(id));\n this._evaluatedMinimumSize = 0;\n this._evaluatedMaximumSize = Number.POSITIVE_INFINITY;\n this._minimumSize = 0;\n this._maximumSize = Number.POSITIVE_INFINITY;\n this._snap = false;\n this._onDidChange = new Emitter();\n this.onDidChange = this._onDidChange.event;\n this.api.initialize(this);\n this.addDisposables(this._onDidChange, this.api.onWillVisibilityChange((event) => {\n const { isVisible } = event;\n const { accessor } = this._params;\n accessor.setVisible(this, isVisible);\n }), this.api.onActiveChange(() => {\n const { accessor } = this._params;\n accessor.setActive(this);\n }), this.api.onDidConstraintsChangeInternal((event) => {\n if (typeof event.minimumSize === 'number' ||\n typeof event.minimumSize === 'function') {\n this._minimumSize = event.minimumSize;\n }\n if (typeof event.maximumSize === 'number' ||\n typeof event.maximumSize === 'function') {\n this._maximumSize = event.maximumSize;\n }\n this.updateConstraints();\n }), this.api.onDidSizeChange((event) => {\n this._onDidChange.fire({ size: event.size });\n }));\n }\n setVisible(isVisible) {\n this.api._onDidVisibilityChange.fire({ isVisible });\n }\n setActive(isActive) {\n this.api._onDidActiveChange.fire({ isActive });\n }\n layout(size, orthogonalSize) {\n const [width, height] = this.orientation === Orientation.HORIZONTAL\n ? [size, orthogonalSize]\n : [orthogonalSize, size];\n super.layout(width, height);\n }\n init(parameters) {\n super.init(parameters);\n this._priority = parameters.priority;\n if (parameters.minimumSize) {\n this._minimumSize = parameters.minimumSize;\n }\n if (parameters.maximumSize) {\n this._maximumSize = parameters.maximumSize;\n }\n if (parameters.snap) {\n this._snap = parameters.snap;\n }\n }\n toJSON() {\n const maximum = (value) => value === Number.MAX_SAFE_INTEGER ||\n value === Number.POSITIVE_INFINITY\n ? undefined\n : value;\n const minimum = (value) => (value <= 0 ? undefined : value);\n return Object.assign(Object.assign({}, super.toJSON()), { minimumSize: minimum(this.minimumSize), maximumSize: maximum(this.maximumSize) });\n }\n updateConstraints() {\n this.api._onDidConstraintsChange.fire({\n maximumSize: this._evaluatedMaximumSize,\n minimumSize: this._evaluatedMinimumSize,\n });\n }\n}\n"],"names":["Event","Orientation","SashState","LayoutPriority","Sizing","nextLayoutId","this"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"dockview-angular.amd.js","sources":["../../../node_modules/style-inject/dist/style-inject.es.js","../../dockview-core/dist/esm/dnd/dataTransfer.js","../../dockview-core/dist/esm/events.js","../../dockview-core/dist/esm/lifecycle.js","../../dockview-core/dist/esm/dom.js","../../dockview-core/dist/esm/array.js","../../dockview-core/dist/esm/math.js","../../dockview-core/dist/esm/splitview/viewItem.js","../../dockview-core/dist/esm/splitview/splitview.js","../../dockview-core/dist/esm/splitview/options.js","../../dockview-core/dist/esm/paneview/paneview.js","../../dockview-core/dist/esm/gridview/leafNode.js","../../dockview-core/dist/esm/gridview/branchNode.js","../../dockview-core/dist/esm/gridview/gridview.js","../../dockview-core/dist/esm/gridview/options.js","../../dockview-core/dist/esm/resizable.js","../../dockview-core/dist/esm/gridview/baseComponentGridview.js","../../dockview-core/dist/esm/api/component.api.js","../../dockview-core/dist/esm/dnd/abstractDragHandler.js","../../dockview-core/dist/esm/dnd/dnd.js","../../dockview-core/dist/esm/dnd/droptarget.js","../../dockview-core/dist/esm/paneview/options.js","../../dockview-core/dist/esm/api/panelApi.js","../../dockview-core/dist/esm/api/splitviewPanelApi.js","../../dockview-core/dist/esm/api/paneviewPanelApi.js","../../dockview-core/dist/esm/gridview/basePanelView.js","../../dockview-core/dist/esm/paneview/paneviewPanel.js","../../dockview-core/dist/esm/paneview/draggablePaneviewPanel.js","../../dockview-core/dist/esm/dockview/components/panel/content.js","../../dockview-core/dist/esm/dnd/ghost.js","../../dockview-core/dist/esm/dockview/components/tab/tab.js","../../dockview-core/dist/esm/dockview/events.js","../../dockview-core/dist/esm/dnd/groupDragHandler.js","../../dockview-core/dist/esm/dockview/components/titlebar/voidContainer.js","../../dockview-core/dist/esm/scrollbar.js","../../dockview-core/dist/esm/dockview/components/titlebar/tabs.js","../../dockview-core/dist/esm/svg.js","../../dockview-core/dist/esm/dockview/components/titlebar/tabOverflowControl.js","../../dockview-core/dist/esm/dockview/components/titlebar/tabsContainer.js","../../dockview-core/dist/esm/dockview/options.js","../../dockview-core/dist/esm/dockview/dockviewGroupPanelModel.js","../../dockview-core/dist/esm/api/gridviewPanelApi.js","../../dockview-core/dist/esm/gridview/gridviewPanel.js","../../dockview-core/dist/esm/api/dockviewGroupPanelApi.js","../../dockview-core/dist/esm/dockview/dockviewGroupPanel.js","../../dockview-core/dist/esm/dockview/theme.js","../../dockview-core/dist/esm/api/dockviewPanelApi.js","../../dockview-core/dist/esm/dockview/dockviewPanel.js","../../dockview-core/dist/esm/dockview/components/tab/defaultTab.js","../../dockview-core/dist/esm/dockview/dockviewPanelModel.js","../../dockview-core/dist/esm/dockview/deserializer.js","../../dockview-core/dist/esm/dockview/components/watermark/watermark.js","../../dockview-core/dist/esm/overlay/overlay.js","../../dockview-core/dist/esm/dockview/dockviewFloatingGroupPanel.js","../../dockview-core/dist/esm/constants.js","../../dockview-core/dist/esm/overlay/overlayRenderContainer.js","../../dockview-core/dist/esm/popoutWindow.js","../../dockview-core/dist/esm/dockview/strictEventsSequencing.js","../../dockview-core/dist/esm/dockview/components/popupService.js","../../dockview-core/dist/esm/dnd/dropTargetAnchorContainer.js","../../dockview-core/dist/esm/dockview/dockviewComponent.js","../../dockview-core/dist/esm/gridview/gridviewComponent.js","../../dockview-core/dist/esm/splitview/splitviewComponent.js","../../dockview-core/dist/esm/paneview/defaultPaneviewHeader.js","../../dockview-core/dist/esm/paneview/paneviewComponent.js","../../dockview-core/dist/esm/splitview/splitviewPanel.js","../../dockview-core/dist/esm/api/entryPoints.js","../../../node_modules/tslib/tslib.es6.js","../../src/lib/utils/angular-renderer.ts","../../src/lib/gridview/angular-gridview-panel.ts","../../src/lib/splitview/angular-splitview-panel.ts","../../src/lib/paneview/angular-pane-part.ts","../../src/lib/utils/component-factory.ts","../../../node_modules/rxjs/dist/esm5/internal/util/isFunction.js","../../../node_modules/rxjs/dist/esm5/internal/util/lift.js","../../../node_modules/rxjs/dist/esm5/internal/util/isArrayLike.js","../../../node_modules/rxjs/dist/esm5/internal/util/isPromise.js","../../../node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js","../../../node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js","../../../node_modules/rxjs/dist/esm5/internal/util/arrRemove.js","../../../node_modules/rxjs/dist/esm5/internal/Subscription.js","../../../node_modules/rxjs/dist/esm5/internal/config.js","../../../node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js","../../../node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js","../../../node_modules/rxjs/dist/esm5/internal/util/noop.js","../../../node_modules/rxjs/dist/esm5/internal/util/errorContext.js","../../../node_modules/rxjs/dist/esm5/internal/Subscriber.js","../../../node_modules/rxjs/dist/esm5/internal/symbol/observable.js","../../../node_modules/rxjs/dist/esm5/internal/util/identity.js","../../../node_modules/rxjs/dist/esm5/internal/util/pipe.js","../../../node_modules/rxjs/dist/esm5/internal/Observable.js","../../../node_modules/rxjs/dist/esm5/internal/util/isInteropObservable.js","../../../node_modules/rxjs/dist/esm5/internal/util/isAsyncIterable.js","../../../node_modules/rxjs/dist/esm5/internal/util/throwUnobservableError.js","../../../node_modules/rxjs/dist/esm5/internal/symbol/iterator.js","../../../node_modules/rxjs/dist/esm5/internal/util/isIterable.js","../../../node_modules/rxjs/dist/esm5/internal/util/isReadableStreamLike.js","../../../node_modules/rxjs/dist/esm5/internal/observable/innerFrom.js","../../../node_modules/rxjs/dist/esm5/internal/operators/OperatorSubscriber.js","../../../node_modules/rxjs/dist/esm5/internal/operators/takeUntil.js","../../src/lib/utils/lifecycle-utils.ts","../../src/lib/dockview/dockview-angular.component.ts","../../src/lib/gridview/gridview-angular.component.ts","../../src/lib/paneview/paneview-angular.component.ts","../../src/lib/splitview/splitview-angular.component.ts","../../src/lib/dockview-angular.module.ts"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","class TransferObject {\n}\nexport class PanelTransfer extends TransferObject {\n constructor(viewId, groupId, panelId) {\n super();\n this.viewId = viewId;\n this.groupId = groupId;\n this.panelId = panelId;\n }\n}\nexport class PaneTransfer extends TransferObject {\n constructor(viewId, paneId) {\n super();\n this.viewId = viewId;\n this.paneId = paneId;\n }\n}\n/**\n * A singleton to store transfer data during drag & drop operations that are only valid within the application.\n */\nexport class LocalSelectionTransfer {\n constructor() {\n // protect against external instantiation\n }\n static getInstance() {\n return LocalSelectionTransfer.INSTANCE;\n }\n hasData(proto) {\n return proto && proto === this.proto;\n }\n clearData(proto) {\n if (this.hasData(proto)) {\n this.proto = undefined;\n this.data = undefined;\n }\n }\n getData(proto) {\n if (this.hasData(proto)) {\n return this.data;\n }\n return undefined;\n }\n setData(data, proto) {\n if (proto) {\n this.data = data;\n this.proto = proto;\n }\n }\n}\nLocalSelectionTransfer.INSTANCE = new LocalSelectionTransfer();\nexport function getPanelData() {\n const panelTransfer = LocalSelectionTransfer.getInstance();\n const isPanelEvent = panelTransfer.hasData(PanelTransfer.prototype);\n if (!isPanelEvent) {\n return undefined;\n }\n return panelTransfer.getData(PanelTransfer.prototype)[0];\n}\nexport function getPaneData() {\n const paneTransfer = LocalSelectionTransfer.getInstance();\n const isPanelEvent = paneTransfer.hasData(PaneTransfer.prototype);\n if (!isPanelEvent) {\n return undefined;\n }\n return paneTransfer.getData(PaneTransfer.prototype)[0];\n}\n","export var Event;\n(function (Event) {\n Event.any = (...children) => {\n return (listener) => {\n const disposables = children.map((child) => child(listener));\n return {\n dispose: () => {\n disposables.forEach((d) => {\n d.dispose();\n });\n },\n };\n };\n };\n})(Event || (Event = {}));\nexport class DockviewEvent {\n constructor() {\n this._defaultPrevented = false;\n }\n get defaultPrevented() {\n return this._defaultPrevented;\n }\n preventDefault() {\n this._defaultPrevented = true;\n }\n}\nexport class AcceptableEvent {\n constructor() {\n this._isAccepted = false;\n }\n get isAccepted() {\n return this._isAccepted;\n }\n accept() {\n this._isAccepted = true;\n }\n}\nclass LeakageMonitor {\n constructor() {\n this.events = new Map();\n }\n get size() {\n return this.events.size;\n }\n add(event, stacktrace) {\n this.events.set(event, stacktrace);\n }\n delete(event) {\n this.events.delete(event);\n }\n clear() {\n this.events.clear();\n }\n}\nclass Stacktrace {\n static create() {\n var _a;\n return new Stacktrace((_a = new Error().stack) !== null && _a !== void 0 ? _a : '');\n }\n constructor(value) {\n this.value = value;\n }\n print() {\n console.warn('dockview: stacktrace', this.value);\n }\n}\nclass Listener {\n constructor(callback, stacktrace) {\n this.callback = callback;\n this.stacktrace = stacktrace;\n }\n}\n// relatively simple event emitter taken from https://github.com/microsoft/vscode/blob/master/src/vs/base/common/event.ts\nexport class Emitter {\n static setLeakageMonitorEnabled(isEnabled) {\n if (isEnabled !== Emitter.ENABLE_TRACKING) {\n Emitter.MEMORY_LEAK_WATCHER.clear();\n }\n Emitter.ENABLE_TRACKING = isEnabled;\n }\n get value() {\n return this._last;\n }\n constructor(options) {\n this.options = options;\n this._listeners = [];\n this._disposed = false;\n }\n get event() {\n if (!this._event) {\n this._event = (callback) => {\n var _a;\n if (((_a = this.options) === null || _a === void 0 ? void 0 : _a.replay) && this._last !== undefined) {\n callback(this._last);\n }\n const listener = new Listener(callback, Emitter.ENABLE_TRACKING ? Stacktrace.create() : undefined);\n this._listeners.push(listener);\n return {\n dispose: () => {\n const index = this._listeners.indexOf(listener);\n if (index > -1) {\n this._listeners.splice(index, 1);\n }\n else if (Emitter.ENABLE_TRACKING) {\n // console.warn(\n // `dockview: listener already disposed`,\n // Stacktrace.create().print()\n // );\n }\n },\n };\n };\n if (Emitter.ENABLE_TRACKING) {\n Emitter.MEMORY_LEAK_WATCHER.add(this._event, Stacktrace.create());\n }\n }\n return this._event;\n }\n fire(e) {\n var _a;\n if ((_a = this.options) === null || _a === void 0 ? void 0 : _a.replay) {\n this._last = e;\n }\n for (const listener of this._listeners) {\n listener.callback(e);\n }\n }\n dispose() {\n if (!this._disposed) {\n this._disposed = true;\n if (this._listeners.length > 0) {\n if (Emitter.ENABLE_TRACKING) {\n queueMicrotask(() => {\n var _a;\n // don't check until stack of execution is completed to allow for out-of-order disposals within the same execution block\n for (const listener of this._listeners) {\n console.warn('dockview: stacktrace', (_a = listener.stacktrace) === null || _a === void 0 ? void 0 : _a.print());\n }\n });\n }\n this._listeners = [];\n }\n if (Emitter.ENABLE_TRACKING && this._event) {\n Emitter.MEMORY_LEAK_WATCHER.delete(this._event);\n }\n }\n }\n}\nEmitter.ENABLE_TRACKING = false;\nEmitter.MEMORY_LEAK_WATCHER = new LeakageMonitor();\nexport function addDisposableListener(element, type, listener, options) {\n element.addEventListener(type, listener, options);\n return {\n dispose: () => {\n element.removeEventListener(type, listener, options);\n },\n };\n}\n/**\n *\n * Event Emitter that fires events from a Microtask callback, only one event will fire per event-loop cycle.\n *\n * It's kind of like using an `asapScheduler` in RxJs with additional logic to only fire once per event-loop cycle.\n * This implementation exists to avoid external dependencies.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/queueMicrotask\n * @see https://rxjs.dev/api/index/const/asapScheduler\n */\nexport class AsapEvent {\n constructor() {\n this._onFired = new Emitter();\n this._currentFireCount = 0;\n this._queued = false;\n this.onEvent = (e) => {\n /**\n * when the event is first subscribed to take note of the current fire count\n */\n const fireCountAtTimeOfEventSubscription = this._currentFireCount;\n return this._onFired.event(() => {\n /**\n * if the current fire count is greater than the fire count at event subscription\n * then the event has been fired since we subscribed and it's ok to \"on_next\" the event.\n *\n * if the count is not greater then what we are recieving is an event from the microtask\n * queue that was triggered before we actually subscribed and therfore we should ignore it.\n */\n if (this._currentFireCount > fireCountAtTimeOfEventSubscription) {\n e();\n }\n });\n };\n }\n fire() {\n this._currentFireCount++;\n if (this._queued) {\n return;\n }\n this._queued = true;\n queueMicrotask(() => {\n this._queued = false;\n this._onFired.fire();\n });\n }\n dispose() {\n this._onFired.dispose();\n }\n}\n","export var Disposable;\n(function (Disposable) {\n Disposable.NONE = {\n dispose: () => {\n // noop\n },\n };\n function from(func) {\n return {\n dispose: () => {\n func();\n },\n };\n }\n Disposable.from = from;\n})(Disposable || (Disposable = {}));\nexport class CompositeDisposable {\n get isDisposed() {\n return this._isDisposed;\n }\n constructor(...args) {\n this._isDisposed = false;\n this._disposables = args;\n }\n addDisposables(...args) {\n args.forEach((arg) => this._disposables.push(arg));\n }\n dispose() {\n if (this._isDisposed) {\n return;\n }\n this._isDisposed = true;\n this._disposables.forEach((arg) => arg.dispose());\n this._disposables = [];\n }\n}\nexport class MutableDisposable {\n constructor() {\n this._disposable = Disposable.NONE;\n }\n set value(disposable) {\n if (this._disposable) {\n this._disposable.dispose();\n }\n this._disposable = disposable;\n }\n dispose() {\n if (this._disposable) {\n this._disposable.dispose();\n this._disposable = Disposable.NONE;\n }\n }\n}\n","import { Emitter, addDisposableListener, } from './events';\nimport { CompositeDisposable } from './lifecycle';\nexport class OverflowObserver extends CompositeDisposable {\n constructor(el) {\n super();\n this._onDidChange = new Emitter();\n this.onDidChange = this._onDidChange.event;\n this._value = null;\n this.addDisposables(this._onDidChange, watchElementResize(el, (entry) => {\n const hasScrollX = entry.target.scrollWidth > entry.target.clientWidth;\n const hasScrollY = entry.target.scrollHeight > entry.target.clientHeight;\n this._value = { hasScrollX, hasScrollY };\n this._onDidChange.fire(this._value);\n }));\n }\n}\nexport function watchElementResize(element, cb) {\n const observer = new ResizeObserver((entires) => {\n /**\n * Fast browser window resize produces Error: ResizeObserver loop limit exceeded.\n * The error isn't visible in browser console, doesn't affect functionality, but degrades performance.\n * See https://stackoverflow.com/questions/49384120/resizeobserver-loop-limit-exceeded/58701523#58701523\n */\n requestAnimationFrame(() => {\n const firstEntry = entires[0];\n cb(firstEntry);\n });\n });\n observer.observe(element);\n return {\n dispose: () => {\n observer.unobserve(element);\n observer.disconnect();\n },\n };\n}\nexport const removeClasses = (element, ...classes) => {\n for (const classname of classes) {\n if (element.classList.contains(classname)) {\n element.classList.remove(classname);\n }\n }\n};\nexport const addClasses = (element, ...classes) => {\n for (const classname of classes) {\n if (!element.classList.contains(classname)) {\n element.classList.add(classname);\n }\n }\n};\nexport const toggleClass = (element, className, isToggled) => {\n const hasClass = element.classList.contains(className);\n if (isToggled && !hasClass) {\n element.classList.add(className);\n }\n if (!isToggled && hasClass) {\n element.classList.remove(className);\n }\n};\nexport function isAncestor(testChild, testAncestor) {\n while (testChild) {\n if (testChild === testAncestor) {\n return true;\n }\n testChild = testChild.parentNode;\n }\n return false;\n}\nexport function getElementsByTagName(tag, document) {\n return Array.prototype.slice.call(document.querySelectorAll(tag), 0);\n}\nexport function trackFocus(element) {\n return new FocusTracker(element);\n}\n/**\n * Track focus on an element. Ensure tabIndex is set when an HTMLElement is not focusable by default\n */\nclass FocusTracker extends CompositeDisposable {\n constructor(element) {\n super();\n this._onDidFocus = new Emitter();\n this.onDidFocus = this._onDidFocus.event;\n this._onDidBlur = new Emitter();\n this.onDidBlur = this._onDidBlur.event;\n this.addDisposables(this._onDidFocus, this._onDidBlur);\n let hasFocus = isAncestor(document.activeElement, element);\n let loosingFocus = false;\n const onFocus = () => {\n loosingFocus = false;\n if (!hasFocus) {\n hasFocus = true;\n this._onDidFocus.fire();\n }\n };\n const onBlur = () => {\n if (hasFocus) {\n loosingFocus = true;\n window.setTimeout(() => {\n if (loosingFocus) {\n loosingFocus = false;\n hasFocus = false;\n this._onDidBlur.fire();\n }\n }, 0);\n }\n };\n this._refreshStateHandler = () => {\n const currentNodeHasFocus = isAncestor(document.activeElement, element);\n if (currentNodeHasFocus !== hasFocus) {\n if (hasFocus) {\n onBlur();\n }\n else {\n onFocus();\n }\n }\n };\n this.addDisposables(addDisposableListener(element, 'focus', onFocus, true));\n this.addDisposables(addDisposableListener(element, 'blur', onBlur, true));\n }\n refreshState() {\n this._refreshStateHandler();\n }\n}\n// quasi: apparently, but not really; seemingly\nconst QUASI_PREVENT_DEFAULT_KEY = 'dv-quasiPreventDefault';\n// mark an event directly for other listeners to check\nexport function quasiPreventDefault(event) {\n event[QUASI_PREVENT_DEFAULT_KEY] = true;\n}\n// check if this event has been marked\nexport function quasiDefaultPrevented(event) {\n return event[QUASI_PREVENT_DEFAULT_KEY];\n}\nexport function addStyles(document, styleSheetList) {\n const styleSheets = Array.from(styleSheetList);\n for (const styleSheet of styleSheets) {\n if (styleSheet.href) {\n const link = document.createElement('link');\n link.href = styleSheet.href;\n link.type = styleSheet.type;\n link.rel = 'stylesheet';\n document.head.appendChild(link);\n }\n let cssTexts = [];\n try {\n if (styleSheet.cssRules) {\n cssTexts = Array.from(styleSheet.cssRules).map((rule) => rule.cssText);\n }\n }\n catch (err) {\n // security errors (lack of permissions), ignore\n }\n for (const rule of cssTexts) {\n const style = document.createElement('style');\n style.appendChild(document.createTextNode(rule));\n document.head.appendChild(style);\n }\n }\n}\nexport function getDomNodePagePosition(domNode) {\n const { left, top, width, height } = domNode.getBoundingClientRect();\n return {\n left: left + window.scrollX,\n top: top + window.scrollY,\n width: width,\n height: height,\n };\n}\n/**\n * Check whether an element is in the DOM (including the Shadow DOM)\n * @see https://terodox.tech/how-to-tell-if-an-element-is-in-the-dom-including-the-shadow-dom/\n */\nexport function isInDocument(element) {\n let currentElement = element;\n while (currentElement === null || currentElement === void 0 ? void 0 : currentElement.parentNode) {\n if (currentElement.parentNode === document) {\n return true;\n }\n else if (currentElement.parentNode instanceof DocumentFragment) {\n // handle shadow DOMs\n currentElement = currentElement.parentNode.host;\n }\n else {\n currentElement = currentElement.parentNode;\n }\n }\n return false;\n}\nexport function addTestId(element, id) {\n element.setAttribute('data-testid', id);\n}\n/**\n * Should be more efficient than element.querySelectorAll(\"*\") since there\n * is no need to store every element in-memory using this approach\n */\nfunction allTagsNamesInclusiveOfShadowDoms(tagNames) {\n const iframes = [];\n function findIframesInNode(node) {\n if (node.nodeType === Node.ELEMENT_NODE) {\n if (tagNames.includes(node.tagName)) {\n iframes.push(node);\n }\n if (node.shadowRoot) {\n findIframesInNode(node.shadowRoot);\n }\n for (const child of node.children) {\n findIframesInNode(child);\n }\n }\n }\n findIframesInNode(document.documentElement);\n return iframes;\n}\nexport function disableIframePointEvents(rootNode = document) {\n const iframes = allTagsNamesInclusiveOfShadowDoms(['IFRAME', 'WEBVIEW']);\n const original = new WeakMap(); // don't hold onto HTMLElement references longer than required\n for (const iframe of iframes) {\n original.set(iframe, iframe.style.pointerEvents);\n iframe.style.pointerEvents = 'none';\n }\n return {\n release: () => {\n var _a;\n for (const iframe of iframes) {\n iframe.style.pointerEvents = (_a = original.get(iframe)) !== null && _a !== void 0 ? _a : 'auto';\n }\n iframes.splice(0, iframes.length); // don't hold onto HTMLElement references longer than required\n },\n };\n}\nexport function getDockviewTheme(element) {\n function toClassList(element) {\n const list = [];\n for (let i = 0; i < element.classList.length; i++) {\n list.push(element.classList.item(i));\n }\n return list;\n }\n let theme = undefined;\n let parent = element;\n while (parent !== null) {\n theme = toClassList(parent).find((cls) => cls.startsWith('dockview-theme-'));\n if (typeof theme === 'string') {\n break;\n }\n parent = parent.parentElement;\n }\n return theme;\n}\nexport class Classnames {\n constructor(element) {\n this.element = element;\n this._classNames = [];\n }\n setClassNames(classNames) {\n for (const className of this._classNames) {\n toggleClass(this.element, className, false);\n }\n this._classNames = classNames\n .split(' ')\n .filter((v) => v.trim().length > 0);\n for (const className of this._classNames) {\n toggleClass(this.element, className, true);\n }\n }\n}\nconst DEBOUCE_DELAY = 100;\nexport function isChildEntirelyVisibleWithinParent(child, parent) {\n //\n const childPosition = getDomNodePagePosition(child);\n const parentPosition = getDomNodePagePosition(parent);\n if (childPosition.left < parentPosition.left) {\n return false;\n }\n if (childPosition.left + childPosition.width >\n parentPosition.left + parentPosition.width) {\n return false;\n }\n return true;\n}\nexport function onDidWindowMoveEnd(window) {\n const emitter = new Emitter();\n let previousScreenX = window.screenX;\n let previousScreenY = window.screenY;\n let timeout;\n const checkMovement = () => {\n if (window.closed) {\n return;\n }\n const currentScreenX = window.screenX;\n const currentScreenY = window.screenY;\n if (currentScreenX !== previousScreenX ||\n currentScreenY !== previousScreenY) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n emitter.fire();\n }, DEBOUCE_DELAY);\n previousScreenX = currentScreenX;\n previousScreenY = currentScreenY;\n }\n requestAnimationFrame(checkMovement);\n };\n checkMovement();\n return emitter;\n}\nexport function onDidWindowResizeEnd(element, cb) {\n let resizeTimeout;\n const disposable = new CompositeDisposable(addDisposableListener(element, 'resize', () => {\n clearTimeout(resizeTimeout);\n resizeTimeout = setTimeout(() => {\n cb();\n }, DEBOUCE_DELAY);\n }));\n return disposable;\n}\nexport function shiftAbsoluteElementIntoView(element, root, options = { buffer: 10 }) {\n const buffer = options.buffer;\n const rect = element.getBoundingClientRect();\n const rootRect = root.getBoundingClientRect();\n let translateX = 0;\n let translateY = 0;\n const left = rect.left - rootRect.left;\n const top = rect.top - rootRect.top;\n const bottom = rect.bottom - rootRect.bottom;\n const right = rect.right - rootRect.right;\n // Check horizontal overflow\n if (left < buffer) {\n translateX = buffer - left;\n }\n else if (right > buffer) {\n translateX = -buffer - right;\n }\n // Check vertical overflow\n if (top < buffer) {\n translateY = buffer - top;\n }\n else if (bottom > buffer) {\n translateY = -bottom - buffer;\n }\n // Apply the translation if needed\n if (translateX !== 0 || translateY !== 0) {\n element.style.transform = `translate(${translateX}px, ${translateY}px)`;\n }\n}\nexport function findRelativeZIndexParent(el) {\n let tmp = el;\n while (tmp && (tmp.style.zIndex === 'auto' || tmp.style.zIndex === '')) {\n tmp = tmp.parentElement;\n }\n return tmp;\n}\n","export function tail(arr) {\n if (arr.length === 0) {\n throw new Error('Invalid tail call');\n }\n return [arr.slice(0, arr.length - 1), arr[arr.length - 1]];\n}\nexport function last(arr) {\n return arr.length > 0 ? arr[arr.length - 1] : undefined;\n}\nexport function sequenceEquals(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n for (let i = 0; i < arr1.length; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n return true;\n}\n/**\n * Pushes an element to the start of the array, if found.\n */\nexport function pushToStart(arr, value) {\n const index = arr.indexOf(value);\n if (index > -1) {\n arr.splice(index, 1);\n arr.unshift(value);\n }\n}\n/**\n * Pushes an element to the end of the array, if found.\n */\nexport function pushToEnd(arr, value) {\n const index = arr.indexOf(value);\n if (index > -1) {\n arr.splice(index, 1);\n arr.push(value);\n }\n}\nexport function firstIndex(array, fn) {\n for (let i = 0; i < array.length; i++) {\n const element = array[i];\n if (fn(element)) {\n return i;\n }\n }\n return -1;\n}\nexport function remove(array, value) {\n const index = array.findIndex((t) => t === value);\n if (index > -1) {\n array.splice(index, 1);\n return true;\n }\n return false;\n}\n","export const clamp = (value, min, max) => {\n if (min > max) {\n /**\n * caveat: an error should be thrown here if this was a proper `clamp` function but we need to handle\n * cases where `min` > `max` and in those cases return `min`.\n */\n return min;\n }\n return Math.min(max, Math.max(value, min));\n};\nexport const sequentialNumberGenerator = () => {\n let value = 1;\n return { next: () => (value++).toString() };\n};\nexport const range = (from, to) => {\n const result = [];\n if (typeof to !== 'number') {\n to = from;\n from = 0;\n }\n if (from <= to) {\n for (let i = from; i < to; i++) {\n result.push(i);\n }\n }\n else {\n for (let i = from; i > to; i--) {\n result.push(i);\n }\n }\n return result;\n};\n","import { clamp } from '../math';\nexport class ViewItem {\n set size(size) {\n this._size = size;\n }\n get size() {\n return this._size;\n }\n get cachedVisibleSize() {\n return this._cachedVisibleSize;\n }\n get visible() {\n return typeof this._cachedVisibleSize === 'undefined';\n }\n get minimumSize() {\n return this.visible ? this.view.minimumSize : 0;\n }\n get viewMinimumSize() {\n return this.view.minimumSize;\n }\n get maximumSize() {\n return this.visible ? this.view.maximumSize : 0;\n }\n get viewMaximumSize() {\n return this.view.maximumSize;\n }\n get priority() {\n return this.view.priority;\n }\n get snap() {\n return !!this.view.snap;\n }\n set enabled(enabled) {\n this.container.style.pointerEvents = enabled ? '' : 'none';\n }\n constructor(container, view, size, disposable) {\n this.container = container;\n this.view = view;\n this.disposable = disposable;\n this._cachedVisibleSize = undefined;\n if (typeof size === 'number') {\n this._size = size;\n this._cachedVisibleSize = undefined;\n container.classList.add('visible');\n }\n else {\n this._size = 0;\n this._cachedVisibleSize = size.cachedVisibleSize;\n }\n }\n setVisible(visible, size) {\n var _a;\n if (visible === this.visible) {\n return;\n }\n if (visible) {\n this.size = clamp((_a = this._cachedVisibleSize) !== null && _a !== void 0 ? _a : 0, this.viewMinimumSize, this.viewMaximumSize);\n this._cachedVisibleSize = undefined;\n }\n else {\n this._cachedVisibleSize =\n typeof size === 'number' ? size : this.size;\n this.size = 0;\n }\n this.container.classList.toggle('visible', visible);\n if (this.view.setVisible) {\n this.view.setVisible(visible);\n }\n }\n dispose() {\n this.disposable.dispose();\n return this.view;\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Accreditation: This file is largly based upon the MIT licenced VSCode sourcecode found at:\n * https://github.com/microsoft/vscode/tree/main/src/vs/base/browser/ui/splitview\n *--------------------------------------------------------------------------------------------*/\nimport { removeClasses, addClasses, toggleClass, disableIframePointEvents, } from '../dom';\nimport { Emitter } from '../events';\nimport { pushToStart, pushToEnd, firstIndex } from '../array';\nimport { range, clamp } from '../math';\nimport { ViewItem } from './viewItem';\nexport var Orientation;\n(function (Orientation) {\n Orientation[\"HORIZONTAL\"] = \"HORIZONTAL\";\n Orientation[\"VERTICAL\"] = \"VERTICAL\";\n})(Orientation || (Orientation = {}));\nexport var SashState;\n(function (SashState) {\n SashState[SashState[\"MAXIMUM\"] = 0] = \"MAXIMUM\";\n SashState[SashState[\"MINIMUM\"] = 1] = \"MINIMUM\";\n SashState[SashState[\"DISABLED\"] = 2] = \"DISABLED\";\n SashState[SashState[\"ENABLED\"] = 3] = \"ENABLED\";\n})(SashState || (SashState = {}));\nexport var LayoutPriority;\n(function (LayoutPriority) {\n LayoutPriority[\"Low\"] = \"low\";\n LayoutPriority[\"High\"] = \"high\";\n LayoutPriority[\"Normal\"] = \"normal\";\n})(LayoutPriority || (LayoutPriority = {}));\nexport var Sizing;\n(function (Sizing) {\n Sizing.Distribute = { type: 'distribute' };\n function Split(index) {\n return { type: 'split', index };\n }\n Sizing.Split = Split;\n function Invisible(cachedVisibleSize) {\n return { type: 'invisible', cachedVisibleSize };\n }\n Sizing.Invisible = Invisible;\n})(Sizing || (Sizing = {}));\nexport class Splitview {\n get contentSize() {\n return this._contentSize;\n }\n get size() {\n return this._size;\n }\n set size(value) {\n this._size = value;\n }\n get orthogonalSize() {\n return this._orthogonalSize;\n }\n set orthogonalSize(value) {\n this._orthogonalSize = value;\n }\n get length() {\n return this.viewItems.length;\n }\n get proportions() {\n return this._proportions ? [...this._proportions] : undefined;\n }\n get orientation() {\n return this._orientation;\n }\n set orientation(value) {\n this._orientation = value;\n const tmp = this.size;\n this.size = this.orthogonalSize;\n this.orthogonalSize = tmp;\n removeClasses(this.element, 'dv-horizontal', 'dv-vertical');\n this.element.classList.add(this.orientation == Orientation.HORIZONTAL\n ? 'dv-horizontal'\n : 'dv-vertical');\n }\n get minimumSize() {\n return this.viewItems.reduce((r, item) => r + item.minimumSize, 0);\n }\n get maximumSize() {\n return this.length === 0\n ? Number.POSITIVE_INFINITY\n : this.viewItems.reduce((r, item) => r + item.maximumSize, 0);\n }\n get startSnappingEnabled() {\n return this._startSnappingEnabled;\n }\n set startSnappingEnabled(startSnappingEnabled) {\n if (this._startSnappingEnabled === startSnappingEnabled) {\n return;\n }\n this._startSnappingEnabled = startSnappingEnabled;\n this.updateSashEnablement();\n }\n get endSnappingEnabled() {\n return this._endSnappingEnabled;\n }\n set endSnappingEnabled(endSnappingEnabled) {\n if (this._endSnappingEnabled === endSnappingEnabled) {\n return;\n }\n this._endSnappingEnabled = endSnappingEnabled;\n this.updateSashEnablement();\n }\n get disabled() {\n return this._disabled;\n }\n set disabled(value) {\n this._disabled = value;\n toggleClass(this.element, 'dv-splitview-disabled', value);\n }\n get margin() {\n return this._margin;\n }\n set margin(value) {\n this._margin = value;\n toggleClass(this.element, 'dv-splitview-has-margin', value !== 0);\n }\n constructor(container, options) {\n var _a, _b;\n this.container = container;\n this.viewItems = [];\n this.sashes = [];\n this._size = 0;\n this._orthogonalSize = 0;\n this._contentSize = 0;\n this._proportions = undefined;\n this._startSnappingEnabled = true;\n this._endSnappingEnabled = true;\n this._disabled = false;\n this._margin = 0;\n this._onDidSashEnd = new Emitter();\n this.onDidSashEnd = this._onDidSashEnd.event;\n this._onDidAddView = new Emitter();\n this.onDidAddView = this._onDidAddView.event;\n this._onDidRemoveView = new Emitter();\n this.onDidRemoveView = this._onDidRemoveView.event;\n this.resize = (index, delta, sizes = this.viewItems.map((x) => x.size), lowPriorityIndexes, highPriorityIndexes, overloadMinDelta = Number.NEGATIVE_INFINITY, overloadMaxDelta = Number.POSITIVE_INFINITY, snapBefore, snapAfter) => {\n if (index < 0 || index > this.viewItems.length) {\n return 0;\n }\n const upIndexes = range(index, -1);\n const downIndexes = range(index + 1, this.viewItems.length);\n //\n if (highPriorityIndexes) {\n for (const i of highPriorityIndexes) {\n pushToStart(upIndexes, i);\n pushToStart(downIndexes, i);\n }\n }\n if (lowPriorityIndexes) {\n for (const i of lowPriorityIndexes) {\n pushToEnd(upIndexes, i);\n pushToEnd(downIndexes, i);\n }\n }\n //\n const upItems = upIndexes.map((i) => this.viewItems[i]);\n const upSizes = upIndexes.map((i) => sizes[i]);\n //\n const downItems = downIndexes.map((i) => this.viewItems[i]);\n const downSizes = downIndexes.map((i) => sizes[i]);\n //\n const minDeltaUp = upIndexes.reduce((_, i) => _ + this.viewItems[i].minimumSize - sizes[i], 0);\n const maxDeltaUp = upIndexes.reduce((_, i) => _ + this.viewItems[i].maximumSize - sizes[i], 0);\n //\n const maxDeltaDown = downIndexes.length === 0\n ? Number.POSITIVE_INFINITY\n : downIndexes.reduce((_, i) => _ + sizes[i] - this.viewItems[i].minimumSize, 0);\n const minDeltaDown = downIndexes.length === 0\n ? Number.NEGATIVE_INFINITY\n : downIndexes.reduce((_, i) => _ + sizes[i] - this.viewItems[i].maximumSize, 0);\n //\n const minDelta = Math.max(minDeltaUp, minDeltaDown);\n const maxDelta = Math.min(maxDeltaDown, maxDeltaUp);\n //\n let snapped = false;\n if (snapBefore) {\n const snapView = this.viewItems[snapBefore.index];\n const visible = delta >= snapBefore.limitDelta;\n snapped = visible !== snapView.visible;\n snapView.setVisible(visible, snapBefore.size);\n }\n if (!snapped && snapAfter) {\n const snapView = this.viewItems[snapAfter.index];\n const visible = delta < snapAfter.limitDelta;\n snapped = visible !== snapView.visible;\n snapView.setVisible(visible, snapAfter.size);\n }\n if (snapped) {\n return this.resize(index, delta, sizes, lowPriorityIndexes, highPriorityIndexes, overloadMinDelta, overloadMaxDelta);\n }\n //\n const tentativeDelta = clamp(delta, minDelta, maxDelta);\n let actualDelta = 0;\n //\n let deltaUp = tentativeDelta;\n for (let i = 0; i < upItems.length; i++) {\n const item = upItems[i];\n const size = clamp(upSizes[i] + deltaUp, item.minimumSize, item.maximumSize);\n const viewDelta = size - upSizes[i];\n actualDelta += viewDelta;\n deltaUp -= viewDelta;\n item.size = size;\n }\n //\n let deltaDown = actualDelta;\n for (let i = 0; i < downItems.length; i++) {\n const item = downItems[i];\n const size = clamp(downSizes[i] - deltaDown, item.minimumSize, item.maximumSize);\n const viewDelta = size - downSizes[i];\n deltaDown += viewDelta;\n item.size = size;\n }\n //\n return delta;\n };\n this._orientation = (_a = options.orientation) !== null && _a !== void 0 ? _a : Orientation.VERTICAL;\n this.element = this.createContainer();\n this.margin = (_b = options.margin) !== null && _b !== void 0 ? _b : 0;\n this.proportionalLayout =\n options.proportionalLayout === undefined\n ? true\n : !!options.proportionalLayout;\n this.viewContainer = this.createViewContainer();\n this.sashContainer = this.createSashContainer();\n this.element.appendChild(this.sashContainer);\n this.element.appendChild(this.viewContainer);\n this.container.appendChild(this.element);\n this.style(options.styles);\n // We have an existing set of view, add them now\n if (options.descriptor) {\n this._size = options.descriptor.size;\n options.descriptor.views.forEach((viewDescriptor, index) => {\n const sizing = viewDescriptor.visible === undefined ||\n viewDescriptor.visible\n ? viewDescriptor.size\n : {\n type: 'invisible',\n cachedVisibleSize: viewDescriptor.size,\n };\n const view = viewDescriptor.view;\n this.addView(view, sizing, index, true\n // true skip layout\n );\n });\n // Initialize content size and proportions for first layout\n this._contentSize = this.viewItems.reduce((r, i) => r + i.size, 0);\n this.saveProportions();\n }\n }\n style(styles) {\n if ((styles === null || styles === void 0 ? void 0 : styles.separatorBorder) === 'transparent') {\n removeClasses(this.element, 'dv-separator-border');\n this.element.style.removeProperty('--dv-separator-border');\n }\n else {\n addClasses(this.element, 'dv-separator-border');\n if (styles === null || styles === void 0 ? void 0 : styles.separatorBorder) {\n this.element.style.setProperty('--dv-separator-border', styles.separatorBorder);\n }\n }\n }\n isViewVisible(index) {\n if (index < 0 || index >= this.viewItems.length) {\n throw new Error('Index out of bounds');\n }\n const viewItem = this.viewItems[index];\n return viewItem.visible;\n }\n setViewVisible(index, visible) {\n if (index < 0 || index >= this.viewItems.length) {\n throw new Error('Index out of bounds');\n }\n const viewItem = this.viewItems[index];\n viewItem.setVisible(visible, viewItem.size);\n this.distributeEmptySpace(index);\n this.layoutViews();\n this.saveProportions();\n }\n getViewSize(index) {\n if (index < 0 || index >= this.viewItems.length) {\n return -1;\n }\n return this.viewItems[index].size;\n }\n resizeView(index, size) {\n if (index < 0 || index >= this.viewItems.length) {\n return;\n }\n const indexes = range(this.viewItems.length).filter((i) => i !== index);\n const lowPriorityIndexes = [\n ...indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.Low),\n index,\n ];\n const highPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.High);\n const item = this.viewItems[index];\n size = Math.round(size);\n size = clamp(size, item.minimumSize, Math.min(item.maximumSize, this._size));\n item.size = size;\n this.relayout(lowPriorityIndexes, highPriorityIndexes);\n }\n getViews() {\n return this.viewItems.map((x) => x.view);\n }\n onDidChange(item, size) {\n const index = this.viewItems.indexOf(item);\n if (index < 0 || index >= this.viewItems.length) {\n return;\n }\n size = typeof size === 'number' ? size : item.size;\n size = clamp(size, item.minimumSize, item.maximumSize);\n item.size = size;\n const indexes = range(this.viewItems.length).filter((i) => i !== index);\n const lowPriorityIndexes = [\n ...indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.Low),\n index,\n ];\n const highPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.High);\n /**\n * add this view we are changing to the low-index list since we have determined the size\n * here and don't want it changed\n */\n this.relayout([...lowPriorityIndexes, index], highPriorityIndexes);\n }\n addView(view, size = { type: 'distribute' }, index = this.viewItems.length, skipLayout) {\n const container = document.createElement('div');\n container.className = 'dv-view';\n container.appendChild(view.element);\n let viewSize;\n if (typeof size === 'number') {\n viewSize = size;\n }\n else if (size.type === 'split') {\n viewSize = this.getViewSize(size.index) / 2;\n }\n else if (size.type === 'invisible') {\n viewSize = { cachedVisibleSize: size.cachedVisibleSize };\n }\n else {\n viewSize = view.minimumSize;\n }\n const disposable = view.onDidChange((newSize) => this.onDidChange(viewItem, newSize.size));\n const viewItem = new ViewItem(container, view, viewSize, {\n dispose: () => {\n disposable.dispose();\n this.viewContainer.removeChild(container);\n },\n });\n if (index === this.viewItems.length) {\n this.viewContainer.appendChild(container);\n }\n else {\n this.viewContainer.insertBefore(container, this.viewContainer.children.item(index));\n }\n this.viewItems.splice(index, 0, viewItem);\n if (this.viewItems.length > 1) {\n //add sash\n const sash = document.createElement('div');\n sash.className = 'dv-sash';\n const onPointerStart = (event) => {\n for (const item of this.viewItems) {\n item.enabled = false;\n }\n const iframes = disableIframePointEvents();\n const start = this._orientation === Orientation.HORIZONTAL\n ? event.clientX\n : event.clientY;\n const sashIndex = firstIndex(this.sashes, (s) => s.container === sash);\n //\n const sizes = this.viewItems.map((x) => x.size);\n //\n let snapBefore;\n let snapAfter;\n const upIndexes = range(sashIndex, -1);\n const downIndexes = range(sashIndex + 1, this.viewItems.length);\n const minDeltaUp = upIndexes.reduce((r, i) => r + (this.viewItems[i].minimumSize - sizes[i]), 0);\n const maxDeltaUp = upIndexes.reduce((r, i) => r + (this.viewItems[i].viewMaximumSize - sizes[i]), 0);\n const maxDeltaDown = downIndexes.length === 0\n ? Number.POSITIVE_INFINITY\n : downIndexes.reduce((r, i) => r +\n (sizes[i] - this.viewItems[i].minimumSize), 0);\n const minDeltaDown = downIndexes.length === 0\n ? Number.NEGATIVE_INFINITY\n : downIndexes.reduce((r, i) => r +\n (sizes[i] -\n this.viewItems[i].viewMaximumSize), 0);\n const minDelta = Math.max(minDeltaUp, minDeltaDown);\n const maxDelta = Math.min(maxDeltaDown, maxDeltaUp);\n const snapBeforeIndex = this.findFirstSnapIndex(upIndexes);\n const snapAfterIndex = this.findFirstSnapIndex(downIndexes);\n if (typeof snapBeforeIndex === 'number') {\n const snappedViewItem = this.viewItems[snapBeforeIndex];\n const halfSize = Math.floor(snappedViewItem.viewMinimumSize / 2);\n snapBefore = {\n index: snapBeforeIndex,\n limitDelta: snappedViewItem.visible\n ? minDelta - halfSize\n : minDelta + halfSize,\n size: snappedViewItem.size,\n };\n }\n if (typeof snapAfterIndex === 'number') {\n const snappedViewItem = this.viewItems[snapAfterIndex];\n const halfSize = Math.floor(snappedViewItem.viewMinimumSize / 2);\n snapAfter = {\n index: snapAfterIndex,\n limitDelta: snappedViewItem.visible\n ? maxDelta + halfSize\n : maxDelta - halfSize,\n size: snappedViewItem.size,\n };\n }\n const onPointerMove = (event) => {\n const current = this._orientation === Orientation.HORIZONTAL\n ? event.clientX\n : event.clientY;\n const delta = current - start;\n this.resize(sashIndex, delta, sizes, undefined, undefined, minDelta, maxDelta, snapBefore, snapAfter);\n this.distributeEmptySpace();\n this.layoutViews();\n };\n const end = () => {\n for (const item of this.viewItems) {\n item.enabled = true;\n }\n iframes.release();\n this.saveProportions();\n document.removeEventListener('pointermove', onPointerMove);\n document.removeEventListener('pointerup', end);\n document.removeEventListener('pointercancel', end);\n this._onDidSashEnd.fire(undefined);\n };\n document.addEventListener('pointermove', onPointerMove);\n document.addEventListener('pointerup', end);\n document.addEventListener('pointercancel', end);\n };\n sash.addEventListener('pointerdown', onPointerStart);\n const sashItem = {\n container: sash,\n disposable: () => {\n sash.removeEventListener('pointerdown', onPointerStart);\n this.sashContainer.removeChild(sash);\n },\n };\n this.sashContainer.appendChild(sash);\n this.sashes.push(sashItem);\n }\n if (!skipLayout) {\n this.relayout([index]);\n }\n if (!skipLayout &&\n typeof size !== 'number' &&\n size.type === 'distribute') {\n this.distributeViewSizes();\n }\n this._onDidAddView.fire(view);\n }\n distributeViewSizes() {\n const flexibleViewItems = [];\n let flexibleSize = 0;\n for (const item of this.viewItems) {\n if (item.maximumSize - item.minimumSize > 0) {\n flexibleViewItems.push(item);\n flexibleSize += item.size;\n }\n }\n const size = Math.floor(flexibleSize / flexibleViewItems.length);\n for (const item of flexibleViewItems) {\n item.size = clamp(size, item.minimumSize, item.maximumSize);\n }\n const indexes = range(this.viewItems.length);\n const lowPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.Low);\n const highPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.High);\n this.relayout(lowPriorityIndexes, highPriorityIndexes);\n }\n removeView(index, sizing, skipLayout = false) {\n // Remove view\n const viewItem = this.viewItems.splice(index, 1)[0];\n viewItem.dispose();\n // Remove sash\n if (this.viewItems.length >= 1) {\n const sashIndex = Math.max(index - 1, 0);\n const sashItem = this.sashes.splice(sashIndex, 1)[0];\n sashItem.disposable();\n }\n if (!skipLayout) {\n this.relayout();\n }\n if (sizing && sizing.type === 'distribute') {\n this.distributeViewSizes();\n }\n this._onDidRemoveView.fire(viewItem.view);\n return viewItem.view;\n }\n getViewCachedVisibleSize(index) {\n if (index < 0 || index >= this.viewItems.length) {\n throw new Error('Index out of bounds');\n }\n const viewItem = this.viewItems[index];\n return viewItem.cachedVisibleSize;\n }\n moveView(from, to) {\n const cachedVisibleSize = this.getViewCachedVisibleSize(from);\n const sizing = typeof cachedVisibleSize === 'undefined'\n ? this.getViewSize(from)\n : Sizing.Invisible(cachedVisibleSize);\n const view = this.removeView(from, undefined, true);\n this.addView(view, sizing, to);\n }\n layout(size, orthogonalSize) {\n const previousSize = Math.max(this.size, this._contentSize);\n this.size = size;\n this.orthogonalSize = orthogonalSize;\n if (!this.proportions) {\n const indexes = range(this.viewItems.length);\n const lowPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.Low);\n const highPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.High);\n this.resize(this.viewItems.length - 1, size - previousSize, undefined, lowPriorityIndexes, highPriorityIndexes);\n }\n else {\n let total = 0;\n for (let i = 0; i < this.viewItems.length; i++) {\n const item = this.viewItems[i];\n const proportion = this.proportions[i];\n if (typeof proportion === 'number') {\n total += proportion;\n }\n else {\n size -= item.size;\n }\n }\n for (let i = 0; i < this.viewItems.length; i++) {\n const item = this.viewItems[i];\n const proportion = this.proportions[i];\n if (typeof proportion === 'number' && total > 0) {\n item.size = clamp(Math.round((proportion * size) / total), item.minimumSize, item.maximumSize);\n }\n }\n }\n this.distributeEmptySpace();\n this.layoutViews();\n }\n relayout(lowPriorityIndexes, highPriorityIndexes) {\n const contentSize = this.viewItems.reduce((r, i) => r + i.size, 0);\n this.resize(this.viewItems.length - 1, this._size - contentSize, undefined, lowPriorityIndexes, highPriorityIndexes);\n this.distributeEmptySpace();\n this.layoutViews();\n this.saveProportions();\n }\n distributeEmptySpace(lowPriorityIndex) {\n const contentSize = this.viewItems.reduce((r, i) => r + i.size, 0);\n let emptyDelta = this.size - contentSize;\n const indexes = range(this.viewItems.length - 1, -1);\n const lowPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.Low);\n const highPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.High);\n for (const index of highPriorityIndexes) {\n pushToStart(indexes, index);\n }\n for (const index of lowPriorityIndexes) {\n pushToEnd(indexes, index);\n }\n if (typeof lowPriorityIndex === 'number') {\n pushToEnd(indexes, lowPriorityIndex);\n }\n for (let i = 0; emptyDelta !== 0 && i < indexes.length; i++) {\n const item = this.viewItems[indexes[i]];\n const size = clamp(item.size + emptyDelta, item.minimumSize, item.maximumSize);\n const viewDelta = size - item.size;\n emptyDelta -= viewDelta;\n item.size = size;\n }\n }\n saveProportions() {\n if (this.proportionalLayout && this._contentSize > 0) {\n this._proportions = this.viewItems.map((i) => i.visible ? i.size / this._contentSize : undefined);\n }\n }\n /**\n * Margin explain:\n *\n * For `n` views in a splitview there will be `n-1` margins `m`.\n *\n * To fit the margins each view must reduce in size by `(m * (n - 1)) / n`.\n *\n * For each view `i` the offet must be adjusted by `m * i/(n - 1)`.\n */\n layoutViews() {\n this._contentSize = this.viewItems.reduce((r, i) => r + i.size, 0);\n this.updateSashEnablement();\n if (this.viewItems.length === 0) {\n return;\n }\n const visibleViewItems = this.viewItems.filter((i) => i.visible);\n const sashCount = Math.max(0, visibleViewItems.length - 1);\n const marginReducedSize = (this.margin * sashCount) / Math.max(1, visibleViewItems.length);\n let totalLeftOffset = 0;\n const viewLeftOffsets = [];\n const sashWidth = 4; // hardcoded in css\n const runningVisiblePanelCount = this.viewItems.reduce((arr, viewItem, i) => {\n const flag = viewItem.visible ? 1 : 0;\n if (i === 0) {\n arr.push(flag);\n }\n else {\n arr.push(arr[i - 1] + flag);\n }\n return arr;\n }, []);\n // calculate both view and cash positions\n this.viewItems.forEach((view, i) => {\n totalLeftOffset += this.viewItems[i].size;\n viewLeftOffsets.push(totalLeftOffset);\n const size = view.visible ? view.size - marginReducedSize : 0;\n const visiblePanelsBeforeThisView = Math.max(0, runningVisiblePanelCount[i] - 1);\n const offset = i === 0 || visiblePanelsBeforeThisView === 0\n ? 0\n : viewLeftOffsets[i - 1] +\n (visiblePanelsBeforeThisView / sashCount) *\n marginReducedSize;\n if (i < this.viewItems.length - 1) {\n // calculate sash position\n const newSize = view.visible\n ? offset + size - sashWidth / 2 + this.margin / 2\n : offset;\n if (this._orientation === Orientation.HORIZONTAL) {\n this.sashes[i].container.style.left = `${newSize}px`;\n this.sashes[i].container.style.top = `0px`;\n }\n if (this._orientation === Orientation.VERTICAL) {\n this.sashes[i].container.style.left = `0px`;\n this.sashes[i].container.style.top = `${newSize}px`;\n }\n }\n // calculate view position\n if (this._orientation === Orientation.HORIZONTAL) {\n view.container.style.width = `${size}px`;\n view.container.style.left = `${offset}px`;\n view.container.style.top = '';\n view.container.style.height = '';\n }\n if (this._orientation === Orientation.VERTICAL) {\n view.container.style.height = `${size}px`;\n view.container.style.top = `${offset}px`;\n view.container.style.width = '';\n view.container.style.left = '';\n }\n view.view.layout(view.size - marginReducedSize, this._orthogonalSize);\n });\n }\n findFirstSnapIndex(indexes) {\n // visible views first\n for (const index of indexes) {\n const viewItem = this.viewItems[index];\n if (!viewItem.visible) {\n continue;\n }\n if (viewItem.snap) {\n return index;\n }\n }\n // then, hidden views\n for (const index of indexes) {\n const viewItem = this.viewItems[index];\n if (viewItem.visible &&\n viewItem.maximumSize - viewItem.minimumSize > 0) {\n return undefined;\n }\n if (!viewItem.visible && viewItem.snap) {\n return index;\n }\n }\n return undefined;\n }\n updateSashEnablement() {\n let previous = false;\n const collapsesDown = this.viewItems.map((i) => (previous = i.size - i.minimumSize > 0 || previous));\n previous = false;\n const expandsDown = this.viewItems.map((i) => (previous = i.maximumSize - i.size > 0 || previous));\n const reverseViews = [...this.viewItems].reverse();\n previous = false;\n const collapsesUp = reverseViews\n .map((i) => (previous = i.size - i.minimumSize > 0 || previous))\n .reverse();\n previous = false;\n const expandsUp = reverseViews\n .map((i) => (previous = i.maximumSize - i.size > 0 || previous))\n .reverse();\n let position = 0;\n for (let index = 0; index < this.sashes.length; index++) {\n const sash = this.sashes[index];\n const viewItem = this.viewItems[index];\n position += viewItem.size;\n const min = !(collapsesDown[index] && expandsUp[index + 1]);\n const max = !(expandsDown[index] && collapsesUp[index + 1]);\n if (min && max) {\n const upIndexes = range(index, -1);\n const downIndexes = range(index + 1, this.viewItems.length);\n const snapBeforeIndex = this.findFirstSnapIndex(upIndexes);\n const snapAfterIndex = this.findFirstSnapIndex(downIndexes);\n const snappedBefore = typeof snapBeforeIndex === 'number' &&\n !this.viewItems[snapBeforeIndex].visible;\n const snappedAfter = typeof snapAfterIndex === 'number' &&\n !this.viewItems[snapAfterIndex].visible;\n if (snappedBefore &&\n collapsesUp[index] &&\n (position > 0 || this.startSnappingEnabled)) {\n this.updateSash(sash, SashState.MINIMUM);\n }\n else if (snappedAfter &&\n collapsesDown[index] &&\n (position < this._contentSize || this.endSnappingEnabled)) {\n this.updateSash(sash, SashState.MAXIMUM);\n }\n else {\n this.updateSash(sash, SashState.DISABLED);\n }\n }\n else if (min && !max) {\n this.updateSash(sash, SashState.MINIMUM);\n }\n else if (!min && max) {\n this.updateSash(sash, SashState.MAXIMUM);\n }\n else {\n this.updateSash(sash, SashState.ENABLED);\n }\n }\n }\n updateSash(sash, state) {\n toggleClass(sash.container, 'dv-disabled', state === SashState.DISABLED);\n toggleClass(sash.container, 'dv-enabled', state === SashState.ENABLED);\n toggleClass(sash.container, 'dv-maximum', state === SashState.MAXIMUM);\n toggleClass(sash.container, 'dv-minimum', state === SashState.MINIMUM);\n }\n createViewContainer() {\n const element = document.createElement('div');\n element.className = 'dv-view-container';\n return element;\n }\n createSashContainer() {\n const element = document.createElement('div');\n element.className = 'dv-sash-container';\n return element;\n }\n createContainer() {\n const element = document.createElement('div');\n const orientationClassname = this._orientation === Orientation.HORIZONTAL\n ? 'dv-horizontal'\n : 'dv-vertical';\n element.className = `dv-split-view-container ${orientationClassname}`;\n return element;\n }\n dispose() {\n this._onDidSashEnd.dispose();\n this._onDidAddView.dispose();\n this._onDidRemoveView.dispose();\n for (let i = 0; i < this.element.children.length; i++) {\n if (this.element.children.item(i) === this.element) {\n this.element.removeChild(this.element);\n break;\n }\n }\n for (const viewItem of this.viewItems) {\n viewItem.dispose();\n }\n this.element.remove();\n }\n}\n","export const PROPERTY_KEYS_SPLITVIEW = (() => {\n /**\n * by readong the keys from an empty value object TypeScript will error\n * when we add or remove new properties to `DockviewOptions`\n */\n const properties = {\n orientation: undefined,\n descriptor: undefined,\n proportionalLayout: undefined,\n styles: undefined,\n margin: undefined,\n disableAutoResizing: undefined,\n className: undefined,\n };\n return Object.keys(properties);\n})();\n","import { Splitview, Orientation, } from '../splitview/splitview';\nimport { CompositeDisposable } from '../lifecycle';\nimport { Emitter } from '../events';\nimport { addClasses, removeClasses } from '../dom';\nexport class Paneview extends CompositeDisposable {\n get onDidAddView() {\n return this.splitview.onDidAddView;\n }\n get onDidRemoveView() {\n return this.splitview.onDidRemoveView;\n }\n get minimumSize() {\n return this.splitview.minimumSize;\n }\n get maximumSize() {\n return this.splitview.maximumSize;\n }\n get orientation() {\n return this.splitview.orientation;\n }\n get size() {\n return this.splitview.size;\n }\n get orthogonalSize() {\n return this.splitview.orthogonalSize;\n }\n constructor(container, options) {\n var _a;\n super();\n this.paneItems = [];\n this.skipAnimation = false;\n this._onDidChange = new Emitter();\n this.onDidChange = this._onDidChange.event;\n this._orientation = (_a = options.orientation) !== null && _a !== void 0 ? _a : Orientation.VERTICAL;\n this.element = document.createElement('div');\n this.element.className = 'dv-pane-container';\n container.appendChild(this.element);\n this.splitview = new Splitview(this.element, {\n orientation: this._orientation,\n proportionalLayout: false,\n descriptor: options.descriptor,\n });\n // if we've added views from the descriptor we need to\n // add the panes to our Pane array and setup animation\n this.getPanes().forEach((pane) => {\n const disposable = new CompositeDisposable(pane.onDidChangeExpansionState(() => {\n this.setupAnimation();\n this._onDidChange.fire(undefined);\n }));\n const paneItem = {\n pane,\n disposable: {\n dispose: () => {\n disposable.dispose();\n },\n },\n };\n this.paneItems.push(paneItem);\n pane.orthogonalSize = this.splitview.orthogonalSize;\n });\n this.addDisposables(this._onDidChange, this.splitview.onDidSashEnd(() => {\n this._onDidChange.fire(undefined);\n }), this.splitview.onDidAddView(() => {\n this._onDidChange.fire();\n }), this.splitview.onDidRemoveView(() => {\n this._onDidChange.fire();\n }));\n }\n setViewVisible(index, visible) {\n this.splitview.setViewVisible(index, visible);\n }\n addPane(pane, size, index = this.splitview.length, skipLayout = false) {\n const disposable = pane.onDidChangeExpansionState(() => {\n this.setupAnimation();\n this._onDidChange.fire(undefined);\n });\n const paneItem = {\n pane,\n disposable: {\n dispose: () => {\n disposable.dispose();\n },\n },\n };\n this.paneItems.splice(index, 0, paneItem);\n pane.orthogonalSize = this.splitview.orthogonalSize;\n this.splitview.addView(pane, size, index, skipLayout);\n }\n getViewSize(index) {\n return this.splitview.getViewSize(index);\n }\n getPanes() {\n return this.splitview.getViews();\n }\n removePane(index, options = { skipDispose: false }) {\n const paneItem = this.paneItems.splice(index, 1)[0];\n this.splitview.removeView(index);\n if (!options.skipDispose) {\n paneItem.disposable.dispose();\n paneItem.pane.dispose();\n }\n return paneItem;\n }\n moveView(from, to) {\n if (from === to) {\n return;\n }\n const view = this.removePane(from, { skipDispose: true });\n this.skipAnimation = true;\n try {\n this.addPane(view.pane, view.pane.size, to, false);\n }\n finally {\n this.skipAnimation = false;\n }\n }\n layout(size, orthogonalSize) {\n this.splitview.layout(size, orthogonalSize);\n }\n setupAnimation() {\n if (this.skipAnimation) {\n return;\n }\n if (this.animationTimer) {\n clearTimeout(this.animationTimer);\n this.animationTimer = undefined;\n }\n addClasses(this.element, 'dv-animated');\n this.animationTimer = setTimeout(() => {\n this.animationTimer = undefined;\n removeClasses(this.element, 'dv-animated');\n }, 200);\n }\n dispose() {\n super.dispose();\n if (this.animationTimer) {\n clearTimeout(this.animationTimer);\n this.animationTimer = undefined;\n }\n this.paneItems.forEach((paneItem) => {\n paneItem.disposable.dispose();\n paneItem.pane.dispose();\n });\n this.paneItems = [];\n this.splitview.dispose();\n this.element.remove();\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Accreditation: This file is largly based upon the MIT licenced VSCode sourcecode found at:\n * https://github.com/microsoft/vscode/tree/main/src/vs/base/browser/ui/grid\n *--------------------------------------------------------------------------------------------*/\nimport { Orientation } from '../splitview/splitview';\nimport { Emitter } from '../events';\nexport class LeafNode {\n get minimumWidth() {\n return this.view.minimumWidth;\n }\n get maximumWidth() {\n return this.view.maximumWidth;\n }\n get minimumHeight() {\n return this.view.minimumHeight;\n }\n get maximumHeight() {\n return this.view.maximumHeight;\n }\n get priority() {\n return this.view.priority;\n }\n get snap() {\n return this.view.snap;\n }\n get minimumSize() {\n return this.orientation === Orientation.HORIZONTAL\n ? this.minimumHeight\n : this.minimumWidth;\n }\n get maximumSize() {\n return this.orientation === Orientation.HORIZONTAL\n ? this.maximumHeight\n : this.maximumWidth;\n }\n get minimumOrthogonalSize() {\n return this.orientation === Orientation.HORIZONTAL\n ? this.minimumWidth\n : this.minimumHeight;\n }\n get maximumOrthogonalSize() {\n return this.orientation === Orientation.HORIZONTAL\n ? this.maximumWidth\n : this.maximumHeight;\n }\n get orthogonalSize() {\n return this._orthogonalSize;\n }\n get size() {\n return this._size;\n }\n get element() {\n return this.view.element;\n }\n get width() {\n return this.orientation === Orientation.HORIZONTAL\n ? this.orthogonalSize\n : this.size;\n }\n get height() {\n return this.orientation === Orientation.HORIZONTAL\n ? this.size\n : this.orthogonalSize;\n }\n constructor(view, orientation, orthogonalSize, size = 0) {\n this.view = view;\n this.orientation = orientation;\n this._onDidChange = new Emitter();\n this.onDidChange = this._onDidChange.event;\n this._orthogonalSize = orthogonalSize;\n this._size = size;\n this._disposable = this.view.onDidChange((event) => {\n if (event) {\n this._onDidChange.fire({\n size: this.orientation === Orientation.VERTICAL\n ? event.width\n : event.height,\n orthogonalSize: this.orientation === Orientation.VERTICAL\n ? event.height\n : event.width,\n });\n }\n else {\n this._onDidChange.fire({});\n }\n });\n }\n setVisible(visible) {\n if (this.view.setVisible) {\n this.view.setVisible(visible);\n }\n }\n layout(size, orthogonalSize) {\n this._size = size;\n this._orthogonalSize = orthogonalSize;\n this.view.layout(this.width, this.height);\n }\n dispose() {\n this._onDidChange.dispose();\n this._disposable.dispose();\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Accreditation: This file is largly based upon the MIT licenced VSCode sourcecode found at:\n * https://github.com/microsoft/vscode/tree/main/src/vs/base/browser/ui/grid\n *--------------------------------------------------------------------------------------------*/\nimport { Splitview, Orientation, LayoutPriority, } from '../splitview/splitview';\nimport { Emitter, Event } from '../events';\nimport { LeafNode } from './leafNode';\nimport { CompositeDisposable, Disposable } from '../lifecycle';\nexport class BranchNode extends CompositeDisposable {\n get width() {\n return this.orientation === Orientation.HORIZONTAL\n ? this.size\n : this.orthogonalSize;\n }\n get height() {\n return this.orientation === Orientation.HORIZONTAL\n ? this.orthogonalSize\n : this.size;\n }\n get minimumSize() {\n return this.children.length === 0\n ? 0\n : Math.max(...this.children.map((c, index) => this.splitview.isViewVisible(index)\n ? c.minimumOrthogonalSize\n : 0));\n }\n get maximumSize() {\n return Math.min(...this.children.map((c, index) => this.splitview.isViewVisible(index)\n ? c.maximumOrthogonalSize\n : Number.POSITIVE_INFINITY));\n }\n get minimumOrthogonalSize() {\n return this.splitview.minimumSize;\n }\n get maximumOrthogonalSize() {\n return this.splitview.maximumSize;\n }\n get orthogonalSize() {\n return this._orthogonalSize;\n }\n get size() {\n return this._size;\n }\n get minimumWidth() {\n return this.orientation === Orientation.HORIZONTAL\n ? this.minimumOrthogonalSize\n : this.minimumSize;\n }\n get minimumHeight() {\n return this.orientation === Orientation.HORIZONTAL\n ? this.minimumSize\n : this.minimumOrthogonalSize;\n }\n get maximumWidth() {\n return this.orientation === Orientation.HORIZONTAL\n ? this.maximumOrthogonalSize\n : this.maximumSize;\n }\n get maximumHeight() {\n return this.orientation === Orientation.HORIZONTAL\n ? this.maximumSize\n : this.maximumOrthogonalSize;\n }\n get priority() {\n if (this.children.length === 0) {\n return LayoutPriority.Normal;\n }\n const priorities = this.children.map((c) => typeof c.priority === 'undefined'\n ? LayoutPriority.Normal\n : c.priority);\n if (priorities.some((p) => p === LayoutPriority.High)) {\n return LayoutPriority.High;\n }\n else if (priorities.some((p) => p === LayoutPriority.Low)) {\n return LayoutPriority.Low;\n }\n return LayoutPriority.Normal;\n }\n get disabled() {\n return this.splitview.disabled;\n }\n set disabled(value) {\n this.splitview.disabled = value;\n }\n get margin() {\n return this.splitview.margin;\n }\n set margin(value) {\n this.splitview.margin = value;\n this.children.forEach((child) => {\n if (child instanceof BranchNode) {\n child.margin = value;\n }\n });\n }\n constructor(orientation, proportionalLayout, styles, size, orthogonalSize, disabled, margin, childDescriptors) {\n super();\n this.orientation = orientation;\n this.proportionalLayout = proportionalLayout;\n this.styles = styles;\n this._childrenDisposable = Disposable.NONE;\n this.children = [];\n this._onDidChange = new Emitter();\n this.onDidChange = this._onDidChange.event;\n this._onDidVisibilityChange = new Emitter();\n this.onDidVisibilityChange = this._onDidVisibilityChange.event;\n this._orthogonalSize = orthogonalSize;\n this._size = size;\n this.element = document.createElement('div');\n this.element.className = 'dv-branch-node';\n if (!childDescriptors) {\n this.splitview = new Splitview(this.element, {\n orientation: this.orientation,\n proportionalLayout,\n styles,\n margin,\n });\n this.splitview.layout(this.size, this.orthogonalSize);\n }\n else {\n const descriptor = {\n views: childDescriptors.map((childDescriptor) => {\n return {\n view: childDescriptor.node,\n size: childDescriptor.node.size,\n visible: childDescriptor.node instanceof LeafNode &&\n childDescriptor.visible !== undefined\n ? childDescriptor.visible\n : true,\n };\n }),\n size: this.orthogonalSize,\n };\n this.children = childDescriptors.map((c) => c.node);\n this.splitview = new Splitview(this.element, {\n orientation: this.orientation,\n descriptor,\n proportionalLayout,\n styles,\n margin,\n });\n }\n this.disabled = disabled;\n this.addDisposables(this._onDidChange, this._onDidVisibilityChange, this.splitview.onDidSashEnd(() => {\n this._onDidChange.fire({});\n }));\n this.setupChildrenEvents();\n }\n setVisible(_visible) {\n // noop\n }\n isChildVisible(index) {\n if (index < 0 || index >= this.children.length) {\n throw new Error('Invalid index');\n }\n return this.splitview.isViewVisible(index);\n }\n setChildVisible(index, visible) {\n if (index < 0 || index >= this.children.length) {\n throw new Error('Invalid index');\n }\n if (this.splitview.isViewVisible(index) === visible) {\n return;\n }\n const wereAllChildrenHidden = this.splitview.contentSize === 0;\n this.splitview.setViewVisible(index, visible);\n // }\n const areAllChildrenHidden = this.splitview.contentSize === 0;\n // If all children are hidden then the parent should hide the entire splitview\n // If the entire splitview is hidden then the parent should show the splitview when a child is shown\n if ((visible && wereAllChildrenHidden) ||\n (!visible && areAllChildrenHidden)) {\n this._onDidVisibilityChange.fire({ visible });\n }\n }\n moveChild(from, to) {\n if (from === to) {\n return;\n }\n if (from < 0 || from >= this.children.length) {\n throw new Error('Invalid from index');\n }\n if (from < to) {\n to--;\n }\n this.splitview.moveView(from, to);\n const child = this._removeChild(from);\n this._addChild(child, to);\n }\n getChildSize(index) {\n if (index < 0 || index >= this.children.length) {\n throw new Error('Invalid index');\n }\n return this.splitview.getViewSize(index);\n }\n resizeChild(index, size) {\n if (index < 0 || index >= this.children.length) {\n throw new Error('Invalid index');\n }\n this.splitview.resizeView(index, size);\n }\n layout(size, orthogonalSize) {\n this._size = orthogonalSize;\n this._orthogonalSize = size;\n this.splitview.layout(orthogonalSize, size);\n }\n addChild(node, size, index, skipLayout) {\n if (index < 0 || index > this.children.length) {\n throw new Error('Invalid index');\n }\n this.splitview.addView(node, size, index, skipLayout);\n this._addChild(node, index);\n }\n getChildCachedVisibleSize(index) {\n if (index < 0 || index >= this.children.length) {\n throw new Error('Invalid index');\n }\n return this.splitview.getViewCachedVisibleSize(index);\n }\n removeChild(index, sizing) {\n if (index < 0 || index >= this.children.length) {\n throw new Error('Invalid index');\n }\n this.splitview.removeView(index, sizing);\n return this._removeChild(index);\n }\n _addChild(node, index) {\n this.children.splice(index, 0, node);\n this.setupChildrenEvents();\n }\n _removeChild(index) {\n const [child] = this.children.splice(index, 1);\n this.setupChildrenEvents();\n return child;\n }\n setupChildrenEvents() {\n this._childrenDisposable.dispose();\n this._childrenDisposable = new CompositeDisposable(Event.any(...this.children.map((c) => c.onDidChange))((e) => {\n /**\n * indicate a change has occured to allows any re-rendering but don't bubble\n * event because that was specific to this branch\n */\n this._onDidChange.fire({ size: e.orthogonalSize });\n }), ...this.children.map((c, i) => {\n if (c instanceof BranchNode) {\n return c.onDidVisibilityChange(({ visible }) => {\n this.setChildVisible(i, visible);\n });\n }\n return Disposable.NONE;\n }));\n }\n dispose() {\n this._childrenDisposable.dispose();\n this.splitview.dispose();\n this.children.forEach((child) => child.dispose());\n super.dispose();\n }\n}\n","/*---------------------------------------------------------------------------------------------\n * Accreditation: This file is largly based upon the MIT licenced VSCode sourcecode found at:\n * https://github.com/microsoft/vscode/tree/main/src/vs/base/browser/ui/grid\n *--------------------------------------------------------------------------------------------*/\nimport { Orientation, Sizing, } from '../splitview/splitview';\nimport { tail } from '../array';\nimport { LeafNode } from './leafNode';\nimport { BranchNode } from './branchNode';\nimport { Emitter } from '../events';\nimport { MutableDisposable } from '../lifecycle';\nfunction findLeaf(candiateNode, last) {\n if (candiateNode instanceof LeafNode) {\n return candiateNode;\n }\n if (candiateNode instanceof BranchNode) {\n return findLeaf(candiateNode.children[last ? candiateNode.children.length - 1 : 0], last);\n }\n throw new Error('invalid node');\n}\nfunction cloneNode(node, size, orthogonalSize) {\n if (node instanceof BranchNode) {\n const result = new BranchNode(node.orientation, node.proportionalLayout, node.styles, size, orthogonalSize, node.disabled, node.margin);\n for (let i = node.children.length - 1; i >= 0; i--) {\n const child = node.children[i];\n result.addChild(cloneNode(child, child.size, child.orthogonalSize), child.size, 0, true);\n }\n return result;\n }\n else {\n return new LeafNode(node.view, node.orientation, orthogonalSize);\n }\n}\nfunction flipNode(node, size, orthogonalSize) {\n if (node instanceof BranchNode) {\n const result = new BranchNode(orthogonal(node.orientation), node.proportionalLayout, node.styles, size, orthogonalSize, node.disabled, node.margin);\n let totalSize = 0;\n for (let i = node.children.length - 1; i >= 0; i--) {\n const child = node.children[i];\n const childSize = child instanceof BranchNode ? child.orthogonalSize : child.size;\n let newSize = node.size === 0\n ? 0\n : Math.round((size * childSize) / node.size);\n totalSize += newSize;\n // The last view to add should adjust to rounding errors\n if (i === 0) {\n newSize += size - totalSize;\n }\n result.addChild(flipNode(child, orthogonalSize, newSize), newSize, 0, true);\n }\n return result;\n }\n else {\n return new LeafNode(node.view, orthogonal(node.orientation), orthogonalSize);\n }\n}\nexport function indexInParent(element) {\n const parentElement = element.parentElement;\n if (!parentElement) {\n throw new Error('Invalid grid element');\n }\n let el = parentElement.firstElementChild;\n let index = 0;\n while (el !== element && el !== parentElement.lastElementChild && el) {\n el = el.nextElementSibling;\n index++;\n }\n return index;\n}\n/**\n * Find the grid location of a specific DOM element by traversing the parent\n * chain and finding each child index on the way.\n *\n * This will break as soon as DOM structures of the Splitview or Gridview change.\n */\nexport function getGridLocation(element) {\n const parentElement = element.parentElement;\n if (!parentElement) {\n throw new Error('Invalid grid element');\n }\n if (/\\bdv-grid-view\\b/.test(parentElement.className)) {\n return [];\n }\n const index = indexInParent(parentElement);\n const ancestor = parentElement.parentElement.parentElement.parentElement;\n return [...getGridLocation(ancestor), index];\n}\nexport function getRelativeLocation(rootOrientation, location, direction) {\n const orientation = getLocationOrientation(rootOrientation, location);\n const directionOrientation = getDirectionOrientation(direction);\n if (orientation === directionOrientation) {\n const [rest, _index] = tail(location);\n let index = _index;\n if (direction === 'right' || direction === 'bottom') {\n index += 1;\n }\n return [...rest, index];\n }\n else {\n const index = direction === 'right' || direction === 'bottom' ? 1 : 0;\n return [...location, index];\n }\n}\nexport function getDirectionOrientation(direction) {\n return direction === 'top' || direction === 'bottom'\n ? Orientation.VERTICAL\n : Orientation.HORIZONTAL;\n}\nexport function getLocationOrientation(rootOrientation, location) {\n return location.length % 2 === 0\n ? orthogonal(rootOrientation)\n : rootOrientation;\n}\nexport const orthogonal = (orientation) => orientation === Orientation.HORIZONTAL\n ? Orientation.VERTICAL\n : Orientation.HORIZONTAL;\nexport function isGridBranchNode(node) {\n return !!node.children;\n}\nconst serializeBranchNode = (node, orientation) => {\n const size = orientation === Orientation.VERTICAL ? node.box.width : node.box.height;\n if (!isGridBranchNode(node)) {\n if (typeof node.cachedVisibleSize === 'number') {\n return {\n type: 'leaf',\n data: node.view.toJSON(),\n size: node.cachedVisibleSize,\n visible: false,\n };\n }\n return { type: 'leaf', data: node.view.toJSON(), size };\n }\n return {\n type: 'branch',\n data: node.children.map((c) => serializeBranchNode(c, orthogonal(orientation))),\n size,\n };\n};\nexport class Gridview {\n get length() {\n return this._root ? this._root.children.length : 0;\n }\n get orientation() {\n return this.root.orientation;\n }\n set orientation(orientation) {\n if (this.root.orientation === orientation) {\n return;\n }\n const { size, orthogonalSize } = this.root;\n this.root = flipNode(this.root, orthogonalSize, size);\n this.root.layout(size, orthogonalSize);\n }\n get width() {\n return this.root.width;\n }\n get height() {\n return this.root.height;\n }\n get minimumWidth() {\n return this.root.minimumWidth;\n }\n get minimumHeight() {\n return this.root.minimumHeight;\n }\n get maximumWidth() {\n return this.root.maximumHeight;\n }\n get maximumHeight() {\n return this.root.maximumHeight;\n }\n get locked() {\n return this._locked;\n }\n set locked(value) {\n this._locked = value;\n const branch = [this.root];\n /**\n * simple depth-first-search to cover all nodes\n *\n * @see https://en.wikipedia.org/wiki/Depth-first_search\n */\n while (branch.length > 0) {\n const node = branch.pop();\n if (node instanceof BranchNode) {\n node.disabled = value;\n branch.push(...node.children);\n }\n }\n }\n get margin() {\n return this._margin;\n }\n set margin(value) {\n this._margin = value;\n this.root.margin = value;\n }\n maximizedView() {\n var _a;\n return (_a = this._maximizedNode) === null || _a === void 0 ? void 0 : _a.leaf.view;\n }\n hasMaximizedView() {\n return this._maximizedNode !== undefined;\n }\n maximizeView(view) {\n var _a;\n const location = getGridLocation(view.element);\n const [_, node] = this.getNode(location);\n if (!(node instanceof LeafNode)) {\n return;\n }\n if (((_a = this._maximizedNode) === null || _a === void 0 ? void 0 : _a.leaf) === node) {\n return;\n }\n if (this.hasMaximizedView()) {\n this.exitMaximizedView();\n }\n serializeBranchNode(this.getView(), this.orientation);\n const hiddenOnMaximize = [];\n function hideAllViewsBut(parent, exclude) {\n for (let i = 0; i < parent.children.length; i++) {\n const child = parent.children[i];\n if (child instanceof LeafNode) {\n if (child !== exclude) {\n if (parent.isChildVisible(i)) {\n parent.setChildVisible(i, false);\n }\n else {\n hiddenOnMaximize.push(child);\n }\n }\n }\n else {\n hideAllViewsBut(child, exclude);\n }\n }\n }\n hideAllViewsBut(this.root, node);\n this._maximizedNode = { leaf: node, hiddenOnMaximize };\n this._onDidMaximizedNodeChange.fire({\n view: node.view,\n isMaximized: true,\n });\n }\n exitMaximizedView() {\n if (!this._maximizedNode) {\n return;\n }\n const hiddenOnMaximize = this._maximizedNode.hiddenOnMaximize;\n function showViewsInReverseOrder(parent) {\n for (let index = parent.children.length - 1; index >= 0; index--) {\n const child = parent.children[index];\n if (child instanceof LeafNode) {\n if (!hiddenOnMaximize.includes(child)) {\n parent.setChildVisible(index, true);\n }\n }\n else {\n showViewsInReverseOrder(child);\n }\n }\n }\n showViewsInReverseOrder(this.root);\n const tmp = this._maximizedNode.leaf;\n this._maximizedNode = undefined;\n this._onDidMaximizedNodeChange.fire({\n view: tmp.view,\n isMaximized: false,\n });\n }\n serialize() {\n const maximizedView = this.maximizedView();\n let maxmizedViewLocation;\n if (maximizedView) {\n /**\n * The minimum information we can get away with in order to serialize a maxmized view is it's location within the grid\n * which is represented as a branch of indices\n */\n maxmizedViewLocation = getGridLocation(maximizedView.element);\n }\n if (this.hasMaximizedView()) {\n /**\n * the saved layout cannot be in its maxmized state otherwise all of the underlying\n * view dimensions will be wrong\n *\n * To counteract this we temporaily remove the maximized view to compute the serialized output\n * of the grid before adding back the maxmized view as to not alter the layout from the users\n * perspective when `.toJSON()` is called\n */\n this.exitMaximizedView();\n }\n const root = serializeBranchNode(this.getView(), this.orientation);\n const resullt = {\n root,\n width: this.width,\n height: this.height,\n orientation: this.orientation,\n };\n if (maxmizedViewLocation) {\n resullt.maximizedNode = {\n location: maxmizedViewLocation,\n };\n }\n if (maximizedView) {\n // replace any maximzied view that was removed for serialization purposes\n this.maximizeView(maximizedView);\n }\n return resullt;\n }\n dispose() {\n this.disposable.dispose();\n this._onDidChange.dispose();\n this._onDidMaximizedNodeChange.dispose();\n this._onDidViewVisibilityChange.dispose();\n this.root.dispose();\n this._maximizedNode = undefined;\n this.element.remove();\n }\n clear() {\n const orientation = this.root.orientation;\n this.root = new BranchNode(orientation, this.proportionalLayout, this.styles, this.root.size, this.root.orthogonalSize, this.locked, this.margin);\n }\n deserialize(json, deserializer) {\n const orientation = json.orientation;\n const height = orientation === Orientation.VERTICAL ? json.height : json.width;\n this._deserialize(json.root, orientation, deserializer, height);\n /**\n * The deserialied layout must be positioned through this.layout(...)\n * before any maximizedNode can be positioned\n */\n this.layout(json.width, json.height);\n if (json.maximizedNode) {\n const location = json.maximizedNode.location;\n const [_, node] = this.getNode(location);\n if (!(node instanceof LeafNode)) {\n return;\n }\n this.maximizeView(node.view);\n }\n }\n _deserialize(root, orientation, deserializer, orthogonalSize) {\n this.root = this._deserializeNode(root, orientation, deserializer, orthogonalSize);\n }\n _deserializeNode(node, orientation, deserializer, orthogonalSize) {\n var _a;\n let result;\n if (node.type === 'branch') {\n const serializedChildren = node.data;\n const children = serializedChildren.map((serializedChild) => {\n return {\n node: this._deserializeNode(serializedChild, orthogonal(orientation), deserializer, node.size),\n visible: serializedChild.visible,\n };\n });\n result = new BranchNode(orientation, this.proportionalLayout, this.styles, node.size, // <- orthogonal size - flips at each depth\n orthogonalSize, // <- size - flips at each depth,\n this.locked, this.margin, children);\n }\n else {\n const view = deserializer.fromJSON(node);\n if (typeof node.visible === 'boolean') {\n (_a = view.setVisible) === null || _a === void 0 ? void 0 : _a.call(view, node.visible);\n }\n result = new LeafNode(view, orientation, orthogonalSize, node.size);\n }\n return result;\n }\n get root() {\n return this._root;\n }\n set root(root) {\n const oldRoot = this._root;\n if (oldRoot) {\n oldRoot.dispose();\n this._maximizedNode = undefined;\n this.element.removeChild(oldRoot.element);\n }\n this._root = root;\n this.element.appendChild(this._root.element);\n this.disposable.value = this._root.onDidChange((e) => {\n this._onDidChange.fire(e);\n });\n }\n normalize() {\n if (!this._root) {\n return;\n }\n if (this._root.children.length !== 1) {\n return;\n }\n const oldRoot = this.root;\n // can remove one level of redundant branching if there is only a single child\n const childReference = oldRoot.children[0];\n if (childReference instanceof LeafNode) {\n return;\n }\n oldRoot.element.remove();\n const child = oldRoot.removeChild(0); // Remove child to prevent double disposal\n oldRoot.dispose(); // Dispose old root (won't dispose removed child)\n child.dispose(); // Dispose the removed child\n this._root = cloneNode(childReference, childReference.size, childReference.orthogonalSize);\n this.element.appendChild(this._root.element);\n this.disposable.value = this._root.onDidChange((e) => {\n this._onDidChange.fire(e);\n });\n }\n /**\n * If the root is orientated as a VERTICAL node then nest the existing root within a new HORIZIONTAL root node\n * If the root is orientated as a HORIZONTAL node then nest the existing root within a new VERITCAL root node\n */\n insertOrthogonalSplitviewAtRoot() {\n if (!this._root) {\n return;\n }\n const oldRoot = this.root;\n oldRoot.element.remove();\n this._root = new BranchNode(orthogonal(oldRoot.orientation), this.proportionalLayout, this.styles, this.root.orthogonalSize, this.root.size, this.locked, this.margin);\n if (oldRoot.children.length === 0) {\n // no data so no need to add anything back in\n }\n else if (oldRoot.children.length === 1) {\n // can remove one level of redundant branching if there is only a single child\n const childReference = oldRoot.children[0];\n const child = oldRoot.removeChild(0); // remove to prevent disposal when disposing of unwanted root\n child.dispose();\n oldRoot.dispose();\n this._root.addChild(\n /**\n * the child node will have the same orientation as the new root since\n * we are removing the inbetween node.\n * the entire 'tree' must be flipped recursively to ensure that the orientation\n * flips at each level\n */\n flipNode(childReference, childReference.orthogonalSize, childReference.size), Sizing.Distribute, 0);\n }\n else {\n this._root.addChild(oldRoot, Sizing.Distribute, 0);\n }\n this.element.appendChild(this._root.element);\n this.disposable.value = this._root.onDidChange((e) => {\n this._onDidChange.fire(e);\n });\n }\n next(location) {\n return this.progmaticSelect(location);\n }\n previous(location) {\n return this.progmaticSelect(location, true);\n }\n getView(location) {\n const node = location ? this.getNode(location)[1] : this.root;\n return this._getViews(node, this.orientation);\n }\n _getViews(node, orientation, cachedVisibleSize) {\n const box = { height: node.height, width: node.width };\n if (node instanceof LeafNode) {\n return { box, view: node.view, cachedVisibleSize };\n }\n const children = [];\n for (let i = 0; i < node.children.length; i++) {\n const child = node.children[i];\n const nodeCachedVisibleSize = node.getChildCachedVisibleSize(i);\n children.push(this._getViews(child, orthogonal(orientation), nodeCachedVisibleSize));\n }\n return { box, children };\n }\n progmaticSelect(location, reverse = false) {\n const [path, node] = this.getNode(location);\n if (!(node instanceof LeafNode)) {\n throw new Error('invalid location');\n }\n for (let i = path.length - 1; i > -1; i--) {\n const n = path[i];\n const l = location[i] || 0;\n const canProgressInCurrentLevel = reverse\n ? l - 1 > -1\n : l + 1 < n.children.length;\n if (canProgressInCurrentLevel) {\n return findLeaf(n.children[reverse ? l - 1 : l + 1], reverse);\n }\n }\n return findLeaf(this.root, reverse);\n }\n constructor(proportionalLayout, styles, orientation, locked, margin) {\n this.proportionalLayout = proportionalLayout;\n this.styles = styles;\n this._locked = false;\n this._margin = 0;\n this._maximizedNode = undefined;\n this.disposable = new MutableDisposable();\n this._onDidChange = new Emitter();\n this.onDidChange = this._onDidChange.event;\n this._onDidViewVisibilityChange = new Emitter();\n this.onDidViewVisibilityChange = this._onDidViewVisibilityChange.event;\n this._onDidMaximizedNodeChange = new Emitter();\n this.onDidMaximizedNodeChange = this._onDidMaximizedNodeChange.event;\n this.element = document.createElement('div');\n this.element.className = 'dv-grid-view';\n this._locked = locked !== null && locked !== void 0 ? locked : false;\n this._margin = margin !== null && margin !== void 0 ? margin : 0;\n this.root = new BranchNode(orientation, proportionalLayout, styles, 0, 0, this.locked, this.margin);\n }\n isViewVisible(location) {\n const [rest, index] = tail(location);\n const [, parent] = this.getNode(rest);\n if (!(parent instanceof BranchNode)) {\n throw new Error('Invalid from location');\n }\n return parent.isChildVisible(index);\n }\n setViewVisible(location, visible) {\n if (this.hasMaximizedView()) {\n this.exitMaximizedView();\n }\n const [rest, index] = tail(location);\n const [, parent] = this.getNode(rest);\n if (!(parent instanceof BranchNode)) {\n throw new Error('Invalid from location');\n }\n this._onDidViewVisibilityChange.fire();\n parent.setChildVisible(index, visible);\n }\n moveView(parentLocation, from, to) {\n if (this.hasMaximizedView()) {\n this.exitMaximizedView();\n }\n const [, parent] = this.getNode(parentLocation);\n if (!(parent instanceof BranchNode)) {\n throw new Error('Invalid location');\n }\n parent.moveChild(from, to);\n }\n addView(view, size, location) {\n if (this.hasMaximizedView()) {\n this.exitMaximizedView();\n }\n const [rest, index] = tail(location);\n const [pathToParent, parent] = this.getNode(rest);\n if (parent instanceof BranchNode) {\n const node = new LeafNode(view, orthogonal(parent.orientation), parent.orthogonalSize);\n parent.addChild(node, size, index);\n }\n else {\n const [grandParent, ..._] = [...pathToParent].reverse();\n const [parentIndex, ...__] = [...rest].reverse();\n let newSiblingSize = 0;\n const newSiblingCachedVisibleSize = grandParent.getChildCachedVisibleSize(parentIndex);\n if (typeof newSiblingCachedVisibleSize === 'number') {\n newSiblingSize = Sizing.Invisible(newSiblingCachedVisibleSize);\n }\n const child = grandParent.removeChild(parentIndex);\n child.dispose();\n const newParent = new BranchNode(parent.orientation, this.proportionalLayout, this.styles, parent.size, parent.orthogonalSize, this.locked, this.margin);\n grandParent.addChild(newParent, parent.size, parentIndex);\n const newSibling = new LeafNode(parent.view, grandParent.orientation, parent.size);\n newParent.addChild(newSibling, newSiblingSize, 0);\n if (typeof size !== 'number' && size.type === 'split') {\n size = { type: 'split', index: 0 };\n }\n const node = new LeafNode(view, grandParent.orientation, parent.size);\n newParent.addChild(node, size, index);\n }\n }\n remove(view, sizing) {\n const location = getGridLocation(view.element);\n return this.removeView(location, sizing);\n }\n removeView(location, sizing) {\n if (this.hasMaximizedView()) {\n this.exitMaximizedView();\n }\n const [rest, index] = tail(location);\n const [pathToParent, parent] = this.getNode(rest);\n if (!(parent instanceof BranchNode)) {\n throw new Error('Invalid location');\n }\n const nodeToRemove = parent.children[index];\n if (!(nodeToRemove instanceof LeafNode)) {\n throw new Error('Invalid location');\n }\n parent.removeChild(index, sizing);\n nodeToRemove.dispose();\n if (parent.children.length !== 1) {\n return nodeToRemove.view;\n }\n // if the parent has only one child and we know the parent is a BranchNode we can make the tree\n // more efficiently spaced by replacing the parent BranchNode with the child.\n // if that child is a LeafNode then we simply replace the BranchNode with the child otherwise if the child\n // is a BranchNode too we should spread it's children into the grandparent.\n // refer to the remaining child as the sibling\n const sibling = parent.children[0];\n if (pathToParent.length === 0) {\n // if the parent is root\n if (sibling instanceof LeafNode) {\n // if the sibling is a leaf node no action is required\n return nodeToRemove.view;\n }\n // otherwise the sibling is a branch node. since the parent is the root and the root has only one child\n // which is a branch node we can just set this branch node to be the new root node\n // for good housekeeping we'll removing the sibling from it's existing tree\n parent.removeChild(0, sizing);\n // and set that sibling node to be root\n this.root = sibling;\n return nodeToRemove.view;\n }\n // otherwise the parent is apart of a large sub-tree\n const [grandParent, ..._] = [...pathToParent].reverse();\n const [parentIndex, ...__] = [...rest].reverse();\n const isSiblingVisible = parent.isChildVisible(0);\n // either way we need to remove the sibling from it's existing tree\n parent.removeChild(0, sizing);\n // note the sizes of all of the grandparents children\n const sizes = grandParent.children.map((_size, i) => grandParent.getChildSize(i));\n // remove the parent from the grandparent since we are moving the sibling to take the parents place\n // this parent is no longer used and can be disposed of\n grandParent.removeChild(parentIndex, sizing).dispose();\n if (sibling instanceof BranchNode) {\n // replace the parent with the siblings children\n sizes.splice(parentIndex, 1, ...sibling.children.map((c) => c.size));\n // and add those siblings to the grandparent\n for (let i = 0; i < sibling.children.length; i++) {\n const child = sibling.children[i];\n grandParent.addChild(child, child.size, parentIndex + i);\n }\n /**\n * clean down the branch node since we need to dipose of it and\n * when .dispose() it called on a branch it will dispose of any\n * views it is holding onto.\n */\n while (sibling.children.length > 0) {\n sibling.removeChild(0);\n }\n }\n else {\n // otherwise create a new leaf node and add that to the grandparent\n const newSibling = new LeafNode(sibling.view, orthogonal(sibling.orientation), sibling.size);\n const siblingSizing = isSiblingVisible\n ? sibling.orthogonalSize\n : Sizing.Invisible(sibling.orthogonalSize);\n grandParent.addChild(newSibling, siblingSizing, parentIndex);\n }\n // the containing node of the sibling is no longer required and can be disposed of\n sibling.dispose();\n // resize everything\n for (let i = 0; i < sizes.length; i++) {\n grandParent.resizeChild(i, sizes[i]);\n }\n return nodeToRemove.view;\n }\n layout(width, height) {\n const [size, orthogonalSize] = this.root.orientation === Orientation.HORIZONTAL\n ? [height, width]\n : [width, height];\n this.root.layout(size, orthogonalSize);\n }\n getNode(location, node = this.root, path = []) {\n if (location.length === 0) {\n return [path, node];\n }\n if (!(node instanceof BranchNode)) {\n throw new Error('Invalid location');\n }\n const [index, ...rest] = location;\n if (index < 0 || index >= node.children.length) {\n throw new Error('Invalid location');\n }\n const child = node.children[index];\n path.push(node);\n return this.getNode(rest, child, path);\n }\n}\n","export const PROPERTY_KEYS_GRIDVIEW = (() => {\n /**\n * by readong the keys from an empty value object TypeScript will error\n * when we add or remove new properties to `DockviewOptions`\n */\n const properties = {\n disableAutoResizing: undefined,\n proportionalLayout: undefined,\n orientation: undefined,\n hideBorders: undefined,\n className: undefined,\n };\n return Object.keys(properties);\n})();\n","import { isInDocument, watchElementResize } from './dom';\nimport { CompositeDisposable } from './lifecycle';\nexport class Resizable extends CompositeDisposable {\n get element() {\n return this._element;\n }\n get disableResizing() {\n return this._disableResizing;\n }\n set disableResizing(value) {\n this._disableResizing = value;\n }\n constructor(parentElement, disableResizing = false) {\n super();\n this._disableResizing = disableResizing;\n this._element = parentElement;\n this.addDisposables(watchElementResize(this._element, (entry) => {\n if (this.isDisposed) {\n /**\n * resize is delayed through requestAnimationFrame so there is a small chance\n * the component has already been disposed of\n */\n return;\n }\n if (this.disableResizing) {\n return;\n }\n if (!this._element.offsetParent) {\n /**\n * offsetParent === null is equivalent to display: none being set on the element or one\n * of it's parents. In the display: none case the size will become (0, 0) which we do\n * not want to propagate.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/offsetParent\n *\n * You could use checkVisibility() but at the time of writing it's not supported across\n * all Browsers\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/checkVisibility\n */\n return;\n }\n if (!isInDocument(this._element)) {\n /**\n * since the event is dispatched through requestAnimationFrame there is a small chance\n * the component is no longer attached to the DOM, if that is the case the dimensions\n * are mostly likely all zero and meaningless. we should skip this case.\n */\n return;\n }\n const { width, height } = entry.contentRect;\n this.layout(width, height);\n }));\n }\n}\n","import { Emitter, Event, AsapEvent } from '../events';\nimport { getGridLocation, Gridview } from './gridview';\nimport { Disposable } from '../lifecycle';\nimport { sequentialNumberGenerator } from '../math';\nimport { Sizing } from '../splitview/splitview';\nimport { Resizable } from '../resizable';\nimport { Classnames } from '../dom';\nconst nextLayoutId = sequentialNumberGenerator();\nexport function toTarget(direction) {\n switch (direction) {\n case 'left':\n return 'left';\n case 'right':\n return 'right';\n case 'above':\n return 'top';\n case 'below':\n return 'bottom';\n case 'within':\n default:\n return 'center';\n }\n}\nexport class BaseGrid extends Resizable {\n get id() {\n return this._id;\n }\n get size() {\n return this._groups.size;\n }\n get groups() {\n return Array.from(this._groups.values()).map((_) => _.value);\n }\n get width() {\n return this.gridview.width;\n }\n get height() {\n return this.gridview.height;\n }\n get minimumHeight() {\n return this.gridview.minimumHeight;\n }\n get maximumHeight() {\n return this.gridview.maximumHeight;\n }\n get minimumWidth() {\n return this.gridview.minimumWidth;\n }\n get maximumWidth() {\n return this.gridview.maximumWidth;\n }\n get activeGroup() {\n return this._activeGroup;\n }\n get locked() {\n return this.gridview.locked;\n }\n set locked(value) {\n this.gridview.locked = value;\n }\n constructor(container, options) {\n var _a;\n super(document.createElement('div'), options.disableAutoResizing);\n this._id = nextLayoutId.next();\n this._groups = new Map();\n this._onDidRemove = new Emitter();\n this.onDidRemove = this._onDidRemove.event;\n this._onDidAdd = new Emitter();\n this.onDidAdd = this._onDidAdd.event;\n this._onDidMaximizedChange = new Emitter();\n this.onDidMaximizedChange = this._onDidMaximizedChange.event;\n this._onDidActiveChange = new Emitter();\n this.onDidActiveChange = this._onDidActiveChange.event;\n this._bufferOnDidLayoutChange = new AsapEvent();\n this.onDidLayoutChange = this._bufferOnDidLayoutChange.onEvent;\n this._onDidViewVisibilityChangeMicroTaskQueue = new AsapEvent();\n this.onDidViewVisibilityChangeMicroTaskQueue = this._onDidViewVisibilityChangeMicroTaskQueue.onEvent;\n this.element.style.height = '100%';\n this.element.style.width = '100%';\n this._classNames = new Classnames(this.element);\n this._classNames.setClassNames((_a = options.className) !== null && _a !== void 0 ? _a : '');\n // the container is owned by the third-party, do not modify/delete it\n container.appendChild(this.element);\n this.gridview = new Gridview(!!options.proportionalLayout, options.styles, options.orientation, options.locked, options.margin);\n this.gridview.locked = !!options.locked;\n this.element.appendChild(this.gridview.element);\n this.layout(0, 0, true); // set some elements height/widths\n this.addDisposables(this.gridview.onDidMaximizedNodeChange((event) => {\n this._onDidMaximizedChange.fire({\n panel: event.view,\n isMaximized: event.isMaximized,\n });\n }), this.gridview.onDidViewVisibilityChange(() => this._onDidViewVisibilityChangeMicroTaskQueue.fire()), this.onDidViewVisibilityChangeMicroTaskQueue(() => {\n this.layout(this.width, this.height, true);\n }), Disposable.from(() => {\n var _a;\n (_a = this.element.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(this.element);\n }), this.gridview.onDidChange(() => {\n this._bufferOnDidLayoutChange.fire();\n }), Event.any(this.onDidAdd, this.onDidRemove, this.onDidActiveChange)(() => {\n this._bufferOnDidLayoutChange.fire();\n }), this._onDidMaximizedChange, this._onDidViewVisibilityChangeMicroTaskQueue, this._bufferOnDidLayoutChange);\n }\n setVisible(panel, visible) {\n this.gridview.setViewVisible(getGridLocation(panel.element), visible);\n this._bufferOnDidLayoutChange.fire();\n }\n isVisible(panel) {\n return this.gridview.isViewVisible(getGridLocation(panel.element));\n }\n updateOptions(options) {\n var _a, _b, _c, _d;\n if (typeof options.proportionalLayout === 'boolean') {\n // this.gridview.proportionalLayout = options.proportionalLayout; // not supported\n }\n if (options.orientation) {\n this.gridview.orientation = options.orientation;\n }\n if ('styles' in options) {\n // this.gridview.styles = options.styles; // not supported\n }\n if ('disableResizing' in options) {\n this.disableResizing = (_a = options.disableAutoResizing) !== null && _a !== void 0 ? _a : false;\n }\n if ('locked' in options) {\n this.locked = (_b = options.locked) !== null && _b !== void 0 ? _b : false;\n }\n if ('margin' in options) {\n this.gridview.margin = (_c = options.margin) !== null && _c !== void 0 ? _c : 0;\n }\n if ('className' in options) {\n this._classNames.setClassNames((_d = options.className) !== null && _d !== void 0 ? _d : '');\n }\n }\n maximizeGroup(panel) {\n this.gridview.maximizeView(panel);\n this.doSetGroupActive(panel);\n }\n isMaximizedGroup(panel) {\n return this.gridview.maximizedView() === panel;\n }\n exitMaximizedGroup() {\n this.gridview.exitMaximizedView();\n }\n hasMaximizedGroup() {\n return this.gridview.hasMaximizedView();\n }\n doAddGroup(group, location = [0], size) {\n this.gridview.addView(group, size !== null && size !== void 0 ? size : Sizing.Distribute, location);\n this._onDidAdd.fire(group);\n }\n doRemoveGroup(group, options) {\n if (!this._groups.has(group.id)) {\n throw new Error('invalid operation');\n }\n const item = this._groups.get(group.id);\n const view = this.gridview.remove(group, Sizing.Distribute);\n if (item && !(options === null || options === void 0 ? void 0 : options.skipDispose)) {\n item.disposable.dispose();\n item.value.dispose();\n this._groups.delete(group.id);\n this._onDidRemove.fire(group);\n }\n if (!(options === null || options === void 0 ? void 0 : options.skipActive) && this._activeGroup === group) {\n const groups = Array.from(this._groups.values());\n this.doSetGroupActive(groups.length > 0 ? groups[0].value : undefined);\n }\n return view;\n }\n getPanel(id) {\n var _a;\n return (_a = this._groups.get(id)) === null || _a === void 0 ? void 0 : _a.value;\n }\n doSetGroupActive(group) {\n if (this._activeGroup === group) {\n return;\n }\n if (this._activeGroup) {\n this._activeGroup.setActive(false);\n }\n if (group) {\n group.setActive(true);\n }\n this._activeGroup = group;\n this._onDidActiveChange.fire(group);\n }\n removeGroup(group) {\n this.doRemoveGroup(group);\n }\n moveToNext(options) {\n var _a;\n if (!options) {\n options = {};\n }\n if (!options.group) {\n if (!this.activeGroup) {\n return;\n }\n options.group = this.activeGroup;\n }\n const location = getGridLocation(options.group.element);\n const next = (_a = this.gridview.next(location)) === null || _a === void 0 ? void 0 : _a.view;\n this.doSetGroupActive(next);\n }\n moveToPrevious(options) {\n var _a;\n if (!options) {\n options = {};\n }\n if (!options.group) {\n if (!this.activeGroup) {\n return;\n }\n options.group = this.activeGroup;\n }\n const location = getGridLocation(options.group.element);\n const next = (_a = this.gridview.previous(location)) === null || _a === void 0 ? void 0 : _a.view;\n this.doSetGroupActive(next);\n }\n layout(width, height, forceResize) {\n const different = forceResize || width !== this.width || height !== this.height;\n if (!different) {\n return;\n }\n this.gridview.element.style.height = `${height}px`;\n this.gridview.element.style.width = `${width}px`;\n this.gridview.layout(width, height);\n }\n dispose() {\n this._onDidActiveChange.dispose();\n this._onDidAdd.dispose();\n this._onDidRemove.dispose();\n for (const group of this.groups) {\n group.dispose();\n }\n this.gridview.dispose();\n super.dispose();\n }\n}\n","export class SplitviewApi {\n /**\n * The minimum size the component can reach where size is measured in the direction of orientation provided.\n */\n get minimumSize() {\n return this.component.minimumSize;\n }\n /**\n * The maximum size the component can reach where size is measured in the direction of orientation provided.\n */\n get maximumSize() {\n return this.component.maximumSize;\n }\n /**\n * Width of the component.\n */\n get width() {\n return this.component.width;\n }\n /**\n * Height of the component.\n */\n get height() {\n return this.component.height;\n }\n /**\n * The current number of panels.\n */\n get length() {\n return this.component.length;\n }\n /**\n * The current orientation of the component.\n */\n get orientation() {\n return this.component.orientation;\n }\n /**\n * The list of current panels.\n */\n get panels() {\n return this.component.panels;\n }\n /**\n * Invoked after a layout is loaded through the `fromJSON` method.\n */\n get onDidLayoutFromJSON() {\n return this.component.onDidLayoutFromJSON;\n }\n /**\n * Invoked whenever any aspect of the layout changes.\n * If listening to this event it may be worth debouncing ouputs.\n */\n get onDidLayoutChange() {\n return this.component.onDidLayoutChange;\n }\n /**\n * Invoked when a view is added.\n */\n get onDidAddView() {\n return this.component.onDidAddView;\n }\n /**\n * Invoked when a view is removed.\n */\n get onDidRemoveView() {\n return this.component.onDidRemoveView;\n }\n constructor(component) {\n this.component = component;\n }\n /**\n * Removes an existing panel and optionally provide a `Sizing` method\n * for the subsequent resize.\n */\n removePanel(panel, sizing) {\n this.component.removePanel(panel, sizing);\n }\n /**\n * Focus the component.\n */\n focus() {\n this.component.focus();\n }\n /**\n * Get the reference to a panel given it's `string` id.\n */\n getPanel(id) {\n return this.component.getPanel(id);\n }\n /**\n * Layout the panel with a width and height.\n */\n layout(width, height) {\n return this.component.layout(width, height);\n }\n /**\n * Add a new panel and return the created instance.\n */\n addPanel(options) {\n return this.component.addPanel(options);\n }\n /**\n * Move a panel given it's current and desired index.\n */\n movePanel(from, to) {\n this.component.movePanel(from, to);\n }\n /**\n * Deserialize a layout to built a splitivew.\n */\n fromJSON(data) {\n this.component.fromJSON(data);\n }\n /** Serialize a layout */\n toJSON() {\n return this.component.toJSON();\n }\n /**\n * Remove all panels and clear the component.\n */\n clear() {\n this.component.clear();\n }\n /**\n * Update configuratable options.\n */\n updateOptions(options) {\n this.component.updateOptions(options);\n }\n /**\n * Release resources and teardown component. Do not call when using framework versions of dockview.\n */\n dispose() {\n this.component.dispose();\n }\n}\nexport class PaneviewApi {\n /**\n * The minimum size the component can reach where size is measured in the direction of orientation provided.\n */\n get minimumSize() {\n return this.component.minimumSize;\n }\n /**\n * The maximum size the component can reach where size is measured in the direction of orientation provided.\n */\n get maximumSize() {\n return this.component.maximumSize;\n }\n /**\n * Width of the component.\n */\n get width() {\n return this.component.width;\n }\n /**\n * Height of the component.\n */\n get height() {\n return this.component.height;\n }\n /**\n * All panel objects.\n */\n get panels() {\n return this.component.panels;\n }\n /**\n * Invoked when any layout change occures, an aggregation of many events.\n */\n get onDidLayoutChange() {\n return this.component.onDidLayoutChange;\n }\n /**\n * Invoked after a layout is deserialzied using the `fromJSON` method.\n */\n get onDidLayoutFromJSON() {\n return this.component.onDidLayoutFromJSON;\n }\n /**\n * Invoked when a panel is added. May be called multiple times when moving panels.\n */\n get onDidAddView() {\n return this.component.onDidAddView;\n }\n /**\n * Invoked when a panel is removed. May be called multiple times when moving panels.\n */\n get onDidRemoveView() {\n return this.component.onDidRemoveView;\n }\n /**\n * Invoked when a Drag'n'Drop event occurs that the component was unable to handle. Exposed for custom Drag'n'Drop functionality.\n */\n get onDidDrop() {\n return this.component.onDidDrop;\n }\n get onUnhandledDragOverEvent() {\n return this.component.onUnhandledDragOverEvent;\n }\n constructor(component) {\n this.component = component;\n }\n /**\n * Remove a panel given the panel object.\n */\n removePanel(panel) {\n this.component.removePanel(panel);\n }\n /**\n * Get a panel object given a `string` id. May return `undefined`.\n */\n getPanel(id) {\n return this.component.getPanel(id);\n }\n /**\n * Move a panel given it's current and desired index.\n */\n movePanel(from, to) {\n this.component.movePanel(from, to);\n }\n /**\n * Focus the component. Will try to focus an active panel if one exists.\n */\n focus() {\n this.component.focus();\n }\n /**\n * Force resize the component to an exact width and height. Read about auto-resizing before using.\n */\n layout(width, height) {\n this.component.layout(width, height);\n }\n /**\n * Add a panel and return the created object.\n */\n addPanel(options) {\n return this.component.addPanel(options);\n }\n /**\n * Create a component from a serialized object.\n */\n fromJSON(data) {\n this.component.fromJSON(data);\n }\n /**\n * Create a serialized object of the current component.\n */\n toJSON() {\n return this.component.toJSON();\n }\n /**\n * Reset the component back to an empty and default state.\n */\n clear() {\n this.component.clear();\n }\n /**\n * Update configuratable options.\n */\n updateOptions(options) {\n this.component.updateOptions(options);\n }\n /**\n * Release resources and teardown component. Do not call when using framework versions of dockview.\n */\n dispose() {\n this.component.dispose();\n }\n}\nexport class GridviewApi {\n /**\n * Width of the component.\n */\n get width() {\n return this.component.width;\n }\n /**\n * Height of the component.\n */\n get height() {\n return this.component.height;\n }\n /**\n * Minimum height of the component.\n */\n get minimumHeight() {\n return this.component.minimumHeight;\n }\n /**\n * Maximum height of the component.\n */\n get maximumHeight() {\n return this.component.maximumHeight;\n }\n /**\n * Minimum width of the component.\n */\n get minimumWidth() {\n return this.component.minimumWidth;\n }\n /**\n * Maximum width of the component.\n */\n get maximumWidth() {\n return this.component.maximumWidth;\n }\n /**\n * Invoked when any layout change occures, an aggregation of many events.\n */\n get onDidLayoutChange() {\n return this.component.onDidLayoutChange;\n }\n /**\n * Invoked when a panel is added. May be called multiple times when moving panels.\n */\n get onDidAddPanel() {\n return this.component.onDidAddGroup;\n }\n /**\n * Invoked when a panel is removed. May be called multiple times when moving panels.\n */\n get onDidRemovePanel() {\n return this.component.onDidRemoveGroup;\n }\n /**\n * Invoked when the active panel changes. May be undefined if no panel is active.\n */\n get onDidActivePanelChange() {\n return this.component.onDidActiveGroupChange;\n }\n /**\n * Invoked after a layout is deserialzied using the `fromJSON` method.\n */\n get onDidLayoutFromJSON() {\n return this.component.onDidLayoutFromJSON;\n }\n /**\n * All panel objects.\n */\n get panels() {\n return this.component.groups;\n }\n /**\n * Current orientation. Can be changed after initialization.\n */\n get orientation() {\n return this.component.orientation;\n }\n set orientation(value) {\n this.component.updateOptions({ orientation: value });\n }\n constructor(component) {\n this.component = component;\n }\n /**\n * Focus the component. Will try to focus an active panel if one exists.\n */\n focus() {\n this.component.focus();\n }\n /**\n * Force resize the component to an exact width and height. Read about auto-resizing before using.\n */\n layout(width, height, force = false) {\n this.component.layout(width, height, force);\n }\n /**\n * Add a panel and return the created object.\n */\n addPanel(options) {\n return this.component.addPanel(options);\n }\n /**\n * Remove a panel given the panel object.\n */\n removePanel(panel, sizing) {\n this.component.removePanel(panel, sizing);\n }\n /**\n * Move a panel in a particular direction relative to another panel.\n */\n movePanel(panel, options) {\n this.component.movePanel(panel, options);\n }\n /**\n * Get a panel object given a `string` id. May return `undefined`.\n */\n getPanel(id) {\n return this.component.getPanel(id);\n }\n /**\n * Create a component from a serialized object.\n */\n fromJSON(data) {\n return this.component.fromJSON(data);\n }\n /**\n * Create a serialized object of the current component.\n */\n toJSON() {\n return this.component.toJSON();\n }\n /**\n * Reset the component back to an empty and default state.\n */\n clear() {\n this.component.clear();\n }\n updateOptions(options) {\n this.component.updateOptions(options);\n }\n /**\n * Release resources and teardown component. Do not call when using framework versions of dockview.\n */\n dispose() {\n this.component.dispose();\n }\n}\nexport class DockviewApi {\n /**\n * The unique identifier for this instance. Used to manage scope of Drag'n'Drop events.\n */\n get id() {\n return this.component.id;\n }\n /**\n * Width of the component.\n */\n get width() {\n return this.component.width;\n }\n /**\n * Height of the component.\n */\n get height() {\n return this.component.height;\n }\n /**\n * Minimum height of the component.\n */\n get minimumHeight() {\n return this.component.minimumHeight;\n }\n /**\n * Maximum height of the component.\n */\n get maximumHeight() {\n return this.component.maximumHeight;\n }\n /**\n * Minimum width of the component.\n */\n get minimumWidth() {\n return this.component.minimumWidth;\n }\n /**\n * Maximum width of the component.\n */\n get maximumWidth() {\n return this.component.maximumWidth;\n }\n /**\n * Total number of groups.\n */\n get size() {\n return this.component.size;\n }\n /**\n * Total number of panels.\n */\n get totalPanels() {\n return this.component.totalPanels;\n }\n /**\n * Invoked when the active group changes. May be undefined if no group is active.\n */\n get onDidActiveGroupChange() {\n return this.component.onDidActiveGroupChange;\n }\n /**\n * Invoked when a group is added. May be called multiple times when moving groups.\n */\n get onDidAddGroup() {\n return this.component.onDidAddGroup;\n }\n /**\n * Invoked when a group is removed. May be called multiple times when moving groups.\n */\n get onDidRemoveGroup() {\n return this.component.onDidRemoveGroup;\n }\n /**\n * Invoked when the active panel changes. May be undefined if no panel is active.\n */\n get onDidActivePanelChange() {\n return this.component.onDidActivePanelChange;\n }\n /**\n * Invoked when a panel is added. May be called multiple times when moving panels.\n */\n get onDidAddPanel() {\n return this.component.onDidAddPanel;\n }\n /**\n * Invoked when a panel is removed. May be called multiple times when moving panels.\n */\n get onDidRemovePanel() {\n return this.component.onDidRemovePanel;\n }\n get onDidMovePanel() {\n return this.component.onDidMovePanel;\n }\n /**\n * Invoked after a layout is deserialzied using the `fromJSON` method.\n */\n get onDidLayoutFromJSON() {\n return this.component.onDidLayoutFromJSON;\n }\n /**\n * Invoked when any layout change occures, an aggregation of many events.\n */\n get onDidLayoutChange() {\n return this.component.onDidLayoutChange;\n }\n /**\n * Invoked when a Drag'n'Drop event occurs that the component was unable to handle. Exposed for custom Drag'n'Drop functionality.\n */\n get onDidDrop() {\n return this.component.onDidDrop;\n }\n /**\n * Invoked when a Drag'n'Drop event occurs but before dockview handles it giving the user an opportunity to intecept and\n * prevent the event from occuring using the standard `preventDefault()` syntax.\n *\n * Preventing certain events may causes unexpected behaviours, use carefully.\n */\n get onWillDrop() {\n return this.component.onWillDrop;\n }\n /**\n * Invoked before an overlay is shown indicating a drop target.\n *\n * Calling `event.preventDefault()` will prevent the overlay being shown and prevent\n * the any subsequent drop event.\n */\n get onWillShowOverlay() {\n return this.component.onWillShowOverlay;\n }\n /**\n * Invoked before a group is dragged.\n *\n * Calling `event.nativeEvent.preventDefault()` will prevent the group drag starting.\n *\n */\n get onWillDragGroup() {\n return this.component.onWillDragGroup;\n }\n /**\n * Invoked before a panel is dragged.\n *\n * Calling `event.nativeEvent.preventDefault()` will prevent the panel drag starting.\n */\n get onWillDragPanel() {\n return this.component.onWillDragPanel;\n }\n get onUnhandledDragOverEvent() {\n return this.component.onUnhandledDragOverEvent;\n }\n get onDidPopoutGroupSizeChange() {\n return this.component.onDidPopoutGroupSizeChange;\n }\n get onDidPopoutGroupPositionChange() {\n return this.component.onDidPopoutGroupPositionChange;\n }\n get onDidOpenPopoutWindowFail() {\n return this.component.onDidOpenPopoutWindowFail;\n }\n /**\n * All panel objects.\n */\n get panels() {\n return this.component.panels;\n }\n /**\n * All group objects.\n */\n get groups() {\n return this.component.groups;\n }\n /**\n * Active panel object.\n */\n get activePanel() {\n return this.component.activePanel;\n }\n /**\n * Active group object.\n */\n get activeGroup() {\n return this.component.activeGroup;\n }\n constructor(component) {\n this.component = component;\n }\n /**\n * Focus the component. Will try to focus an active panel if one exists.\n */\n focus() {\n this.component.focus();\n }\n /**\n * Get a panel object given a `string` id. May return `undefined`.\n */\n getPanel(id) {\n return this.component.getGroupPanel(id);\n }\n /**\n * Force resize the component to an exact width and height. Read about auto-resizing before using.\n */\n layout(width, height, force = false) {\n this.component.layout(width, height, force);\n }\n /**\n * Add a panel and return the created object.\n */\n addPanel(options) {\n return this.component.addPanel(options);\n }\n /**\n * Remove a panel given the panel object.\n */\n removePanel(panel) {\n this.component.removePanel(panel);\n }\n /**\n * Add a group and return the created object.\n */\n addGroup(options) {\n return this.component.addGroup(options);\n }\n /**\n * Close all groups and panels.\n */\n closeAllGroups() {\n return this.component.closeAllGroups();\n }\n /**\n * Remove a group and any panels within the group.\n */\n removeGroup(group) {\n this.component.removeGroup(group);\n }\n /**\n * Get a group object given a `string` id. May return undefined.\n */\n getGroup(id) {\n return this.component.getPanel(id);\n }\n /**\n * Add a floating group\n */\n addFloatingGroup(item, options) {\n return this.component.addFloatingGroup(item, options);\n }\n /**\n * Create a component from a serialized object.\n */\n fromJSON(data) {\n this.component.fromJSON(data);\n }\n /**\n * Create a serialized object of the current component.\n */\n toJSON() {\n return this.component.toJSON();\n }\n /**\n * Reset the component back to an empty and default state.\n */\n clear() {\n this.component.clear();\n }\n /**\n * Move the focus progmatically to the next panel or group.\n */\n moveToNext(options) {\n this.component.moveToNext(options);\n }\n /**\n * Move the focus progmatically to the previous panel or group.\n */\n moveToPrevious(options) {\n this.component.moveToPrevious(options);\n }\n maximizeGroup(panel) {\n this.component.maximizeGroup(panel.group);\n }\n hasMaximizedGroup() {\n return this.component.hasMaximizedGroup();\n }\n exitMaximizedGroup() {\n this.component.exitMaximizedGroup();\n }\n get onDidMaximizedGroupChange() {\n return this.component.onDidMaximizedGroupChange;\n }\n /**\n * Add a popout group in a new Window\n */\n addPopoutGroup(item, options) {\n return this.component.addPopoutGroup(item, options);\n }\n updateOptions(options) {\n this.component.updateOptions(options);\n }\n /**\n * Release resources and teardown component. Do not call when using framework versions of dockview.\n */\n dispose() {\n this.component.dispose();\n }\n}\n","import { disableIframePointEvents } from '../dom';\nimport { addDisposableListener, Emitter } from '../events';\nimport { CompositeDisposable, MutableDisposable, } from '../lifecycle';\nexport class DragHandler extends CompositeDisposable {\n constructor(el, disabled) {\n super();\n this.el = el;\n this.disabled = disabled;\n this.dataDisposable = new MutableDisposable();\n this.pointerEventsDisposable = new MutableDisposable();\n this._onDragStart = new Emitter();\n this.onDragStart = this._onDragStart.event;\n this.addDisposables(this._onDragStart, this.dataDisposable, this.pointerEventsDisposable);\n this.configure();\n }\n setDisabled(disabled) {\n this.disabled = disabled;\n }\n isCancelled(_event) {\n return false;\n }\n configure() {\n this.addDisposables(this._onDragStart, addDisposableListener(this.el, 'dragstart', (event) => {\n if (event.defaultPrevented || this.isCancelled(event) || this.disabled) {\n event.preventDefault();\n return;\n }\n const iframes = disableIframePointEvents();\n this.pointerEventsDisposable.value = {\n dispose: () => {\n iframes.release();\n },\n };\n this.el.classList.add('dv-dragged');\n setTimeout(() => this.el.classList.remove('dv-dragged'), 0);\n this.dataDisposable.value = this.getData(event);\n this._onDragStart.fire(event);\n if (event.dataTransfer) {\n event.dataTransfer.effectAllowed = 'move';\n const hasData = event.dataTransfer.items.length > 0;\n if (!hasData) {\n /**\n * Although this is not used by dockview many third party dnd libraries will check\n * dataTransfer.types to determine valid drag events.\n *\n * For example: in react-dnd if dataTransfer.types is not set then the dragStart event will be cancelled\n * through .preventDefault(). Since this is applied globally to all drag events this would break dockviews\n * dnd logic. You can see the code at\n P * https://github.com/react-dnd/react-dnd/blob/main/packages/backend-html5/src/HTML5BackendImpl.ts#L542\n */\n event.dataTransfer.setData('text/plain', '');\n }\n }\n }), addDisposableListener(this.el, 'dragend', () => {\n this.pointerEventsDisposable.dispose();\n setTimeout(() => {\n this.dataDisposable.dispose(); // allow the data to be read by other handlers before disposing\n }, 0);\n }));\n }\n}\n","import { addDisposableListener } from '../events';\nimport { CompositeDisposable } from '../lifecycle';\nexport class DragAndDropObserver extends CompositeDisposable {\n constructor(element, callbacks) {\n super();\n this.element = element;\n this.callbacks = callbacks;\n this.target = null;\n this.registerListeners();\n }\n onDragEnter(e) {\n this.target = e.target;\n this.callbacks.onDragEnter(e);\n }\n onDragOver(e) {\n e.preventDefault(); // needed so that the drop event fires (https://stackoverflow.com/questions/21339924/drop-event-not-firing-in-chrome)\n if (this.callbacks.onDragOver) {\n this.callbacks.onDragOver(e);\n }\n }\n onDragLeave(e) {\n if (this.target === e.target) {\n this.target = null;\n this.callbacks.onDragLeave(e);\n }\n }\n onDragEnd(e) {\n this.target = null;\n this.callbacks.onDragEnd(e);\n }\n onDrop(e) {\n this.callbacks.onDrop(e);\n }\n registerListeners() {\n this.addDisposables(addDisposableListener(this.element, 'dragenter', (e) => {\n this.onDragEnter(e);\n }, true));\n this.addDisposables(addDisposableListener(this.element, 'dragover', (e) => {\n this.onDragOver(e);\n }, true));\n this.addDisposables(addDisposableListener(this.element, 'dragleave', (e) => {\n this.onDragLeave(e);\n }));\n this.addDisposables(addDisposableListener(this.element, 'dragend', (e) => {\n this.onDragEnd(e);\n }));\n this.addDisposables(addDisposableListener(this.element, 'drop', (e) => {\n this.onDrop(e);\n }));\n }\n}\n","import { toggleClass } from '../dom';\nimport { DockviewEvent, Emitter } from '../events';\nimport { CompositeDisposable } from '../lifecycle';\nimport { DragAndDropObserver } from './dnd';\nimport { clamp } from '../math';\nfunction setGPUOptimizedBounds(element, bounds) {\n const { top, left, width, height } = bounds;\n const topPx = `${Math.round(top)}px`;\n const leftPx = `${Math.round(left)}px`;\n const widthPx = `${Math.round(width)}px`;\n const heightPx = `${Math.round(height)}px`;\n // Use traditional positioning but maintain GPU layer\n element.style.top = topPx;\n element.style.left = leftPx;\n element.style.width = widthPx;\n element.style.height = heightPx;\n element.style.visibility = 'visible';\n // Ensure GPU layer is maintained\n if (!element.style.transform || element.style.transform === '') {\n element.style.transform = 'translate3d(0, 0, 0)';\n }\n}\nfunction setGPUOptimizedBoundsFromStrings(element, bounds) {\n const { top, left, width, height } = bounds;\n // Use traditional positioning but maintain GPU layer\n element.style.top = top;\n element.style.left = left;\n element.style.width = width;\n element.style.height = height;\n element.style.visibility = 'visible';\n // Ensure GPU layer is maintained\n if (!element.style.transform || element.style.transform === '') {\n element.style.transform = 'translate3d(0, 0, 0)';\n }\n}\nfunction checkBoundsChanged(element, bounds) {\n const { top, left, width, height } = bounds;\n const topPx = `${Math.round(top)}px`;\n const leftPx = `${Math.round(left)}px`;\n const widthPx = `${Math.round(width)}px`;\n const heightPx = `${Math.round(height)}px`;\n // Check if position or size changed (back to traditional method)\n return element.style.top !== topPx ||\n element.style.left !== leftPx ||\n element.style.width !== widthPx ||\n element.style.height !== heightPx;\n}\nexport class WillShowOverlayEvent extends DockviewEvent {\n get nativeEvent() {\n return this.options.nativeEvent;\n }\n get position() {\n return this.options.position;\n }\n constructor(options) {\n super();\n this.options = options;\n }\n}\nexport function directionToPosition(direction) {\n switch (direction) {\n case 'above':\n return 'top';\n case 'below':\n return 'bottom';\n case 'left':\n return 'left';\n case 'right':\n return 'right';\n case 'within':\n return 'center';\n default:\n throw new Error(`invalid direction '${direction}'`);\n }\n}\nexport function positionToDirection(position) {\n switch (position) {\n case 'top':\n return 'above';\n case 'bottom':\n return 'below';\n case 'left':\n return 'left';\n case 'right':\n return 'right';\n case 'center':\n return 'within';\n default:\n throw new Error(`invalid position '${position}'`);\n }\n}\nconst DEFAULT_ACTIVATION_SIZE = {\n value: 20,\n type: 'percentage',\n};\nconst DEFAULT_SIZE = {\n value: 50,\n type: 'percentage',\n};\nconst SMALL_WIDTH_BOUNDARY = 100;\nconst SMALL_HEIGHT_BOUNDARY = 100;\nexport class Droptarget extends CompositeDisposable {\n get disabled() {\n return this._disabled;\n }\n set disabled(value) {\n this._disabled = value;\n }\n get state() {\n return this._state;\n }\n constructor(element, options) {\n super();\n this.element = element;\n this.options = options;\n this._onDrop = new Emitter();\n this.onDrop = this._onDrop.event;\n this._onWillShowOverlay = new Emitter();\n this.onWillShowOverlay = this._onWillShowOverlay.event;\n this._disabled = false;\n // use a set to take advantage of #<set>.has\n this._acceptedTargetZonesSet = new Set(this.options.acceptedTargetZones);\n this.dnd = new DragAndDropObserver(this.element, {\n onDragEnter: () => {\n var _a, _b, _c;\n (_c = (_b = (_a = this.options).getOverrideTarget) === null || _b === void 0 ? void 0 : _b.call(_a)) === null || _c === void 0 ? void 0 : _c.getElements();\n },\n onDragOver: (e) => {\n var _a, _b, _c, _d, _e, _f, _g;\n Droptarget.ACTUAL_TARGET = this;\n const overrideTarget = (_b = (_a = this.options).getOverrideTarget) === null || _b === void 0 ? void 0 : _b.call(_a);\n if (this._acceptedTargetZonesSet.size === 0) {\n if (overrideTarget) {\n return;\n }\n this.removeDropTarget();\n return;\n }\n const target = (_e = (_d = (_c = this.options).getOverlayOutline) === null || _d === void 0 ? void 0 : _d.call(_c)) !== null && _e !== void 0 ? _e : this.element;\n const width = target.offsetWidth;\n const height = target.offsetHeight;\n if (width === 0 || height === 0) {\n return; // avoid div!0\n }\n const rect = e.currentTarget.getBoundingClientRect();\n const x = ((_f = e.clientX) !== null && _f !== void 0 ? _f : 0) - rect.left;\n const y = ((_g = e.clientY) !== null && _g !== void 0 ? _g : 0) - rect.top;\n const quadrant = this.calculateQuadrant(this._acceptedTargetZonesSet, x, y, width, height);\n /**\n * If the event has already been used by another DropTarget instance\n * then don't show a second drop target, only one target should be\n * active at any one time\n */\n if (this.isAlreadyUsed(e) || quadrant === null) {\n // no drop target should be displayed\n this.removeDropTarget();\n return;\n }\n if (!this.options.canDisplayOverlay(e, quadrant)) {\n if (overrideTarget) {\n return;\n }\n this.removeDropTarget();\n return;\n }\n const willShowOverlayEvent = new WillShowOverlayEvent({\n nativeEvent: e,\n position: quadrant,\n });\n /**\n * Provide an opportunity to prevent the overlay appearing and in turn\n * any dnd behaviours\n */\n this._onWillShowOverlay.fire(willShowOverlayEvent);\n if (willShowOverlayEvent.defaultPrevented) {\n this.removeDropTarget();\n return;\n }\n this.markAsUsed(e);\n if (overrideTarget) {\n //\n }\n else if (!this.targetElement) {\n this.targetElement = document.createElement('div');\n this.targetElement.className = 'dv-drop-target-dropzone';\n this.overlayElement = document.createElement('div');\n this.overlayElement.className = 'dv-drop-target-selection';\n this._state = 'center';\n this.targetElement.appendChild(this.overlayElement);\n target.classList.add('dv-drop-target');\n target.append(this.targetElement);\n // this.overlayElement.style.opacity = '0';\n // requestAnimationFrame(() => {\n // if (this.overlayElement) {\n // this.overlayElement.style.opacity = '';\n // }\n // });\n }\n this.toggleClasses(quadrant, width, height);\n this._state = quadrant;\n },\n onDragLeave: () => {\n var _a, _b;\n const target = (_b = (_a = this.options).getOverrideTarget) === null || _b === void 0 ? void 0 : _b.call(_a);\n if (target) {\n return;\n }\n this.removeDropTarget();\n },\n onDragEnd: (e) => {\n var _a, _b;\n const target = (_b = (_a = this.options).getOverrideTarget) === null || _b === void 0 ? void 0 : _b.call(_a);\n if (target && Droptarget.ACTUAL_TARGET === this) {\n if (this._state) {\n // only stop the propagation of the event if we are dealing with it\n // which is only when the target has state\n e.stopPropagation();\n this._onDrop.fire({\n position: this._state,\n nativeEvent: e,\n });\n }\n }\n this.removeDropTarget();\n target === null || target === void 0 ? void 0 : target.clear();\n },\n onDrop: (e) => {\n var _a, _b, _c;\n e.preventDefault();\n const state = this._state;\n this.removeDropTarget();\n (_c = (_b = (_a = this.options).getOverrideTarget) === null || _b === void 0 ? void 0 : _b.call(_a)) === null || _c === void 0 ? void 0 : _c.clear();\n if (state) {\n // only stop the propagation of the event if we are dealing with it\n // which is only when the target has state\n e.stopPropagation();\n this._onDrop.fire({ position: state, nativeEvent: e });\n }\n },\n });\n this.addDisposables(this._onDrop, this._onWillShowOverlay, this.dnd);\n }\n setTargetZones(acceptedTargetZones) {\n this._acceptedTargetZonesSet = new Set(acceptedTargetZones);\n }\n setOverlayModel(model) {\n this.options.overlayModel = model;\n }\n dispose() {\n this.removeDropTarget();\n super.dispose();\n }\n /**\n * Add a property to the event object for other potential listeners to check\n */\n markAsUsed(event) {\n event[Droptarget.USED_EVENT_ID] = true;\n }\n /**\n * Check is the event has already been used by another instance of DropTarget\n */\n isAlreadyUsed(event) {\n const value = event[Droptarget.USED_EVENT_ID];\n return typeof value === 'boolean' && value;\n }\n toggleClasses(quadrant, width, height) {\n var _a, _b, _c, _d, _e, _f, _g;\n const target = (_b = (_a = this.options).getOverrideTarget) === null || _b === void 0 ? void 0 : _b.call(_a);\n if (!target && !this.overlayElement) {\n return;\n }\n const isSmallX = width < SMALL_WIDTH_BOUNDARY;\n const isSmallY = height < SMALL_HEIGHT_BOUNDARY;\n const isLeft = quadrant === 'left';\n const isRight = quadrant === 'right';\n const isTop = quadrant === 'top';\n const isBottom = quadrant === 'bottom';\n const rightClass = !isSmallX && isRight;\n const leftClass = !isSmallX && isLeft;\n const topClass = !isSmallY && isTop;\n const bottomClass = !isSmallY && isBottom;\n let size = 1;\n const sizeOptions = (_d = (_c = this.options.overlayModel) === null || _c === void 0 ? void 0 : _c.size) !== null && _d !== void 0 ? _d : DEFAULT_SIZE;\n if (sizeOptions.type === 'percentage') {\n size = clamp(sizeOptions.value, 0, 100) / 100;\n }\n else {\n if (rightClass || leftClass) {\n size = clamp(0, sizeOptions.value, width) / width;\n }\n if (topClass || bottomClass) {\n size = clamp(0, sizeOptions.value, height) / height;\n }\n }\n if (target) {\n const outlineEl = (_g = (_f = (_e = this.options).getOverlayOutline) === null || _f === void 0 ? void 0 : _f.call(_e)) !== null && _g !== void 0 ? _g : this.element;\n const elBox = outlineEl.getBoundingClientRect();\n const ta = target.getElements(undefined, outlineEl);\n const el = ta.root;\n const overlay = ta.overlay;\n const bigbox = el.getBoundingClientRect();\n const rootTop = elBox.top - bigbox.top;\n const rootLeft = elBox.left - bigbox.left;\n const box = {\n top: rootTop,\n left: rootLeft,\n width: width,\n height: height,\n };\n if (rightClass) {\n box.left = rootLeft + width * (1 - size);\n box.width = width * size;\n }\n else if (leftClass) {\n box.width = width * size;\n }\n else if (topClass) {\n box.height = height * size;\n }\n else if (bottomClass) {\n box.top = rootTop + height * (1 - size);\n box.height = height * size;\n }\n if (isSmallX && isLeft) {\n box.width = 4;\n }\n if (isSmallX && isRight) {\n box.left = rootLeft + width - 4;\n box.width = 4;\n }\n // Use GPU-optimized bounds checking and setting\n if (!checkBoundsChanged(overlay, box)) {\n return;\n }\n setGPUOptimizedBounds(overlay, box);\n overlay.className = `dv-drop-target-anchor${this.options.className ? ` ${this.options.className}` : ''}`;\n toggleClass(overlay, 'dv-drop-target-left', isLeft);\n toggleClass(overlay, 'dv-drop-target-right', isRight);\n toggleClass(overlay, 'dv-drop-target-top', isTop);\n toggleClass(overlay, 'dv-drop-target-bottom', isBottom);\n toggleClass(overlay, 'dv-drop-target-center', quadrant === 'center');\n if (ta.changed) {\n toggleClass(overlay, 'dv-drop-target-anchor-container-changed', true);\n setTimeout(() => {\n toggleClass(overlay, 'dv-drop-target-anchor-container-changed', false);\n }, 10);\n }\n return;\n }\n if (!this.overlayElement) {\n return;\n }\n const box = { top: '0px', left: '0px', width: '100%', height: '100%' };\n /**\n * You can also achieve the overlay placement using the transform CSS property\n * to translate and scale the element however this has the undesired effect of\n * 'skewing' the element. Comment left here for anybody that ever revisits this.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/transform\n *\n * right\n * translateX(${100 * (1 - size) / 2}%) scaleX(${scale})\n *\n * left\n * translateX(-${100 * (1 - size) / 2}%) scaleX(${scale})\n *\n * top\n * translateY(-${100 * (1 - size) / 2}%) scaleY(${scale})\n *\n * bottom\n * translateY(${100 * (1 - size) / 2}%) scaleY(${scale})\n */\n if (rightClass) {\n box.left = `${100 * (1 - size)}%`;\n box.width = `${100 * size}%`;\n }\n else if (leftClass) {\n box.width = `${100 * size}%`;\n }\n else if (topClass) {\n box.height = `${100 * size}%`;\n }\n else if (bottomClass) {\n box.top = `${100 * (1 - size)}%`;\n box.height = `${100 * size}%`;\n }\n setGPUOptimizedBoundsFromStrings(this.overlayElement, box);\n toggleClass(this.overlayElement, 'dv-drop-target-small-vertical', isSmallY);\n toggleClass(this.overlayElement, 'dv-drop-target-small-horizontal', isSmallX);\n toggleClass(this.overlayElement, 'dv-drop-target-left', isLeft);\n toggleClass(this.overlayElement, 'dv-drop-target-right', isRight);\n toggleClass(this.overlayElement, 'dv-drop-target-top', isTop);\n toggleClass(this.overlayElement, 'dv-drop-target-bottom', isBottom);\n toggleClass(this.overlayElement, 'dv-drop-target-center', quadrant === 'center');\n }\n calculateQuadrant(overlayType, x, y, width, height) {\n var _a, _b;\n const activationSizeOptions = (_b = (_a = this.options.overlayModel) === null || _a === void 0 ? void 0 : _a.activationSize) !== null && _b !== void 0 ? _b : DEFAULT_ACTIVATION_SIZE;\n const isPercentage = activationSizeOptions.type === 'percentage';\n if (isPercentage) {\n return calculateQuadrantAsPercentage(overlayType, x, y, width, height, activationSizeOptions.value);\n }\n return calculateQuadrantAsPixels(overlayType, x, y, width, height, activationSizeOptions.value);\n }\n removeDropTarget() {\n var _a;\n if (this.targetElement) {\n this._state = undefined;\n (_a = this.targetElement.parentElement) === null || _a === void 0 ? void 0 : _a.classList.remove('dv-drop-target');\n this.targetElement.remove();\n this.targetElement = undefined;\n this.overlayElement = undefined;\n }\n }\n}\nDroptarget.USED_EVENT_ID = '__dockview_droptarget_event_is_used__';\nexport function calculateQuadrantAsPercentage(overlayType, x, y, width, height, threshold) {\n const xp = (100 * x) / width;\n const yp = (100 * y) / height;\n if (overlayType.has('left') && xp < threshold) {\n return 'left';\n }\n if (overlayType.has('right') && xp > 100 - threshold) {\n return 'right';\n }\n if (overlayType.has('top') && yp < threshold) {\n return 'top';\n }\n if (overlayType.has('bottom') && yp > 100 - threshold) {\n return 'bottom';\n }\n if (!overlayType.has('center')) {\n return null;\n }\n return 'center';\n}\nexport function calculateQuadrantAsPixels(overlayType, x, y, width, height, threshold) {\n if (overlayType.has('left') && x < threshold) {\n return 'left';\n }\n if (overlayType.has('right') && x > width - threshold) {\n return 'right';\n }\n if (overlayType.has('top') && y < threshold) {\n return 'top';\n }\n if (overlayType.has('bottom') && y > height - threshold) {\n return 'bottom';\n }\n if (!overlayType.has('center')) {\n return null;\n }\n return 'center';\n}\n","import { AcceptableEvent } from '../events';\nexport const PROPERTY_KEYS_PANEVIEW = (() => {\n /**\n * by readong the keys from an empty value object TypeScript will error\n * when we add or remove new properties to `DockviewOptions`\n */\n const properties = {\n disableAutoResizing: undefined,\n disableDnd: undefined,\n className: undefined,\n };\n return Object.keys(properties);\n})();\nexport class PaneviewUnhandledDragOverEvent extends AcceptableEvent {\n constructor(nativeEvent, position, getData, panel) {\n super();\n this.nativeEvent = nativeEvent;\n this.position = position;\n this.getData = getData;\n this.panel = panel;\n }\n}\n","import { DockviewEvent, Emitter } from '../events';\nimport { CompositeDisposable, MutableDisposable } from '../lifecycle';\nexport class WillFocusEvent extends DockviewEvent {\n constructor() {\n super();\n }\n}\n/**\n * A core api implementation that should be used across all panel-like objects\n */\nexport class PanelApiImpl extends CompositeDisposable {\n get isFocused() {\n return this._isFocused;\n }\n get isActive() {\n return this._isActive;\n }\n get isVisible() {\n return this._isVisible;\n }\n get width() {\n return this._width;\n }\n get height() {\n return this._height;\n }\n constructor(id, component) {\n super();\n this.id = id;\n this.component = component;\n this._isFocused = false;\n this._isActive = false;\n this._isVisible = true;\n this._width = 0;\n this._height = 0;\n this._parameters = {};\n this.panelUpdatesDisposable = new MutableDisposable();\n this._onDidDimensionChange = new Emitter();\n this.onDidDimensionsChange = this._onDidDimensionChange.event;\n this._onDidChangeFocus = new Emitter();\n this.onDidFocusChange = this._onDidChangeFocus.event;\n //\n this._onWillFocus = new Emitter();\n this.onWillFocus = this._onWillFocus.event;\n //\n this._onDidVisibilityChange = new Emitter();\n this.onDidVisibilityChange = this._onDidVisibilityChange.event;\n this._onWillVisibilityChange = new Emitter();\n this.onWillVisibilityChange = this._onWillVisibilityChange.event;\n this._onDidActiveChange = new Emitter();\n this.onDidActiveChange = this._onDidActiveChange.event;\n this._onActiveChange = new Emitter();\n this.onActiveChange = this._onActiveChange.event;\n this._onDidParametersChange = new Emitter();\n this.onDidParametersChange = this._onDidParametersChange.event;\n this.addDisposables(this.onDidFocusChange((event) => {\n this._isFocused = event.isFocused;\n }), this.onDidActiveChange((event) => {\n this._isActive = event.isActive;\n }), this.onDidVisibilityChange((event) => {\n this._isVisible = event.isVisible;\n }), this.onDidDimensionsChange((event) => {\n this._width = event.width;\n this._height = event.height;\n }), this.panelUpdatesDisposable, this._onDidDimensionChange, this._onDidChangeFocus, this._onDidVisibilityChange, this._onDidActiveChange, this._onWillFocus, this._onActiveChange, this._onWillFocus, this._onWillVisibilityChange, this._onDidParametersChange);\n }\n getParameters() {\n return this._parameters;\n }\n initialize(panel) {\n this.panelUpdatesDisposable.value = this._onDidParametersChange.event((parameters) => {\n this._parameters = parameters;\n panel.update({\n params: parameters,\n });\n });\n }\n setVisible(isVisible) {\n this._onWillVisibilityChange.fire({ isVisible });\n }\n setActive() {\n this._onActiveChange.fire();\n }\n updateParameters(parameters) {\n this._onDidParametersChange.fire(parameters);\n }\n}\n","import { Emitter } from '../events';\nimport { PanelApiImpl } from './panelApi';\nexport class SplitviewPanelApiImpl extends PanelApiImpl {\n //\n constructor(id, component) {\n super(id, component);\n this._onDidConstraintsChangeInternal = new Emitter();\n this.onDidConstraintsChangeInternal = this._onDidConstraintsChangeInternal.event;\n //\n this._onDidConstraintsChange = new Emitter({\n replay: true,\n });\n this.onDidConstraintsChange = this._onDidConstraintsChange.event;\n //\n this._onDidSizeChange = new Emitter();\n this.onDidSizeChange = this._onDidSizeChange.event;\n this.addDisposables(this._onDidConstraintsChangeInternal, this._onDidConstraintsChange, this._onDidSizeChange);\n }\n setConstraints(value) {\n this._onDidConstraintsChangeInternal.fire(value);\n }\n setSize(event) {\n this._onDidSizeChange.fire(event);\n }\n}\n","import { Emitter } from '../events';\nimport { SplitviewPanelApiImpl } from './splitviewPanelApi';\nexport class PaneviewPanelApiImpl extends SplitviewPanelApiImpl {\n set pane(pane) {\n this._pane = pane;\n }\n constructor(id, component) {\n super(id, component);\n this._onDidExpansionChange = new Emitter({\n replay: true,\n });\n this.onDidExpansionChange = this._onDidExpansionChange.event;\n this._onMouseEnter = new Emitter({});\n this.onMouseEnter = this._onMouseEnter.event;\n this._onMouseLeave = new Emitter({});\n this.onMouseLeave = this._onMouseLeave.event;\n this.addDisposables(this._onDidExpansionChange, this._onMouseEnter, this._onMouseLeave);\n }\n setExpanded(isExpanded) {\n var _a;\n (_a = this._pane) === null || _a === void 0 ? void 0 : _a.setExpanded(isExpanded);\n }\n get isExpanded() {\n var _a;\n return !!((_a = this._pane) === null || _a === void 0 ? void 0 : _a.isExpanded());\n }\n}\n","import { trackFocus } from '../dom';\nimport { CompositeDisposable } from '../lifecycle';\nimport { WillFocusEvent } from '../api/panelApi';\nexport class BasePanelView extends CompositeDisposable {\n get element() {\n return this._element;\n }\n get width() {\n return this._width;\n }\n get height() {\n return this._height;\n }\n get params() {\n var _a;\n return (_a = this._params) === null || _a === void 0 ? void 0 : _a.params;\n }\n constructor(id, component, api) {\n super();\n this.id = id;\n this.component = component;\n this.api = api;\n this._height = 0;\n this._width = 0;\n this._element = document.createElement('div');\n this._element.tabIndex = -1;\n this._element.style.outline = 'none';\n this._element.style.height = '100%';\n this._element.style.width = '100%';\n this._element.style.overflow = 'hidden';\n const focusTracker = trackFocus(this._element);\n this.addDisposables(this.api, focusTracker.onDidFocus(() => {\n this.api._onDidChangeFocus.fire({ isFocused: true });\n }), focusTracker.onDidBlur(() => {\n this.api._onDidChangeFocus.fire({ isFocused: false });\n }), focusTracker);\n }\n focus() {\n const event = new WillFocusEvent();\n this.api._onWillFocus.fire(event);\n if (event.defaultPrevented) {\n return;\n }\n this._element.focus();\n }\n layout(width, height) {\n this._width = width;\n this._height = height;\n this.api._onDidDimensionChange.fire({ width, height });\n if (this.part) {\n if (this._params) {\n this.part.update(this._params.params);\n }\n }\n }\n init(parameters) {\n this._params = parameters;\n this.part = this.getComponent();\n }\n update(event) {\n var _a, _b;\n // merge the new parameters with the existing parameters\n this._params = Object.assign(Object.assign({}, this._params), { params: Object.assign(Object.assign({}, (_a = this._params) === null || _a === void 0 ? void 0 : _a.params), event.params) });\n /**\n * delete new keys that have a value of undefined,\n * allow values of null\n */\n for (const key of Object.keys(event.params)) {\n if (event.params[key] === undefined) {\n delete this._params.params[key];\n }\n }\n // update the view with the updated props\n (_b = this.part) === null || _b === void 0 ? void 0 : _b.update({ params: this._params.params });\n }\n toJSON() {\n var _a, _b;\n const params = (_b = (_a = this._params) === null || _a === void 0 ? void 0 : _a.params) !== null && _b !== void 0 ? _b : {};\n return {\n id: this.id,\n component: this.component,\n params: Object.keys(params).length > 0 ? params : undefined,\n };\n }\n dispose() {\n var _a;\n this.api.dispose();\n (_a = this.part) === null || _a === void 0 ? void 0 : _a.dispose();\n super.dispose();\n }\n}\n","import { PaneviewPanelApiImpl } from '../api/paneviewPanelApi';\nimport { addClasses, removeClasses } from '../dom';\nimport { addDisposableListener, Emitter } from '../events';\nimport { BasePanelView, } from '../gridview/basePanelView';\nimport { Orientation } from '../splitview/splitview';\nexport class PaneviewPanel extends BasePanelView {\n set orientation(value) {\n this._orientation = value;\n }\n get orientation() {\n return this._orientation;\n }\n get minimumSize() {\n const headerSize = this.headerSize;\n const expanded = this.isExpanded();\n const minimumBodySize = expanded ? this._minimumBodySize : 0;\n return headerSize + minimumBodySize;\n }\n get maximumSize() {\n const headerSize = this.headerSize;\n const expanded = this.isExpanded();\n const maximumBodySize = expanded ? this._maximumBodySize : 0;\n return headerSize + maximumBodySize;\n }\n get size() {\n return this._size;\n }\n get orthogonalSize() {\n return this._orthogonalSize;\n }\n set orthogonalSize(size) {\n this._orthogonalSize = size;\n }\n get minimumBodySize() {\n return this._minimumBodySize;\n }\n set minimumBodySize(value) {\n this._minimumBodySize = typeof value === 'number' ? value : 0;\n }\n get maximumBodySize() {\n return this._maximumBodySize;\n }\n set maximumBodySize(value) {\n this._maximumBodySize =\n typeof value === 'number' ? value : Number.POSITIVE_INFINITY;\n }\n get headerVisible() {\n return this._headerVisible;\n }\n set headerVisible(value) {\n this._headerVisible = value;\n this.header.style.display = value ? '' : 'none';\n }\n constructor(options) {\n super(options.id, options.component, new PaneviewPanelApiImpl(options.id, options.component));\n this._onDidChangeExpansionState = new Emitter({ replay: true });\n this.onDidChangeExpansionState = this._onDidChangeExpansionState.event;\n this._onDidChange = new Emitter();\n this.onDidChange = this._onDidChange.event;\n this._orthogonalSize = 0;\n this._size = 0;\n this._isExpanded = false;\n this.api.pane = this; // TODO cannot use 'this' before 'super'\n this.api.initialize(this);\n this.headerSize = options.headerSize;\n this.headerComponent = options.headerComponent;\n this._minimumBodySize = options.minimumBodySize;\n this._maximumBodySize = options.maximumBodySize;\n this._isExpanded = options.isExpanded;\n this._headerVisible = options.isHeaderVisible;\n this._onDidChangeExpansionState.fire(this.isExpanded()); // initialize value\n this._orientation = options.orientation;\n this.element.classList.add('dv-pane');\n this.addDisposables(this.api.onWillVisibilityChange((event) => {\n const { isVisible } = event;\n const { accessor } = this._params;\n accessor.setVisible(this, isVisible);\n }), this.api.onDidSizeChange((event) => {\n this._onDidChange.fire({ size: event.size });\n }), addDisposableListener(this.element, 'mouseenter', (ev) => {\n this.api._onMouseEnter.fire(ev);\n }), addDisposableListener(this.element, 'mouseleave', (ev) => {\n this.api._onMouseLeave.fire(ev);\n }));\n this.addDisposables(this._onDidChangeExpansionState, this.onDidChangeExpansionState((isPanelExpanded) => {\n this.api._onDidExpansionChange.fire({\n isExpanded: isPanelExpanded,\n });\n }), this.api.onDidFocusChange((e) => {\n if (!this.header) {\n return;\n }\n if (e.isFocused) {\n addClasses(this.header, 'focused');\n }\n else {\n removeClasses(this.header, 'focused');\n }\n }));\n this.renderOnce();\n }\n setVisible(isVisible) {\n this.api._onDidVisibilityChange.fire({ isVisible });\n }\n setActive(isActive) {\n this.api._onDidActiveChange.fire({ isActive });\n }\n isExpanded() {\n return this._isExpanded;\n }\n setExpanded(expanded) {\n if (this._isExpanded === expanded) {\n return;\n }\n this._isExpanded = expanded;\n if (expanded) {\n if (this.animationTimer) {\n clearTimeout(this.animationTimer);\n }\n if (this.body) {\n this.element.appendChild(this.body);\n }\n }\n else {\n this.animationTimer = setTimeout(() => {\n var _a;\n (_a = this.body) === null || _a === void 0 ? void 0 : _a.remove();\n }, 200);\n }\n this._onDidChange.fire(expanded ? { size: this.width } : {});\n this._onDidChangeExpansionState.fire(expanded);\n }\n layout(size, orthogonalSize) {\n this._size = size;\n this._orthogonalSize = orthogonalSize;\n const [width, height] = this.orientation === Orientation.HORIZONTAL\n ? [size, orthogonalSize]\n : [orthogonalSize, size];\n super.layout(width, height);\n }\n init(parameters) {\n var _a, _b;\n super.init(parameters);\n if (typeof parameters.minimumBodySize === 'number') {\n this.minimumBodySize = parameters.minimumBodySize;\n }\n if (typeof parameters.maximumBodySize === 'number') {\n this.maximumBodySize = parameters.maximumBodySize;\n }\n this.bodyPart = this.getBodyComponent();\n this.headerPart = this.getHeaderComponent();\n this.bodyPart.init(Object.assign(Object.assign({}, parameters), { api: this.api }));\n this.headerPart.init(Object.assign(Object.assign({}, parameters), { api: this.api }));\n (_a = this.body) === null || _a === void 0 ? void 0 : _a.append(this.bodyPart.element);\n (_b = this.header) === null || _b === void 0 ? void 0 : _b.append(this.headerPart.element);\n if (typeof parameters.isExpanded === 'boolean') {\n this.setExpanded(parameters.isExpanded);\n }\n }\n toJSON() {\n const params = this._params;\n return Object.assign(Object.assign({}, super.toJSON()), { headerComponent: this.headerComponent, title: params.title });\n }\n renderOnce() {\n this.header = document.createElement('div');\n this.header.tabIndex = 0;\n this.header.className = 'dv-pane-header';\n this.header.style.height = `${this.headerSize}px`;\n this.header.style.lineHeight = `${this.headerSize}px`;\n this.header.style.minHeight = `${this.headerSize}px`;\n this.header.style.maxHeight = `${this.headerSize}px`;\n this.element.appendChild(this.header);\n this.body = document.createElement('div');\n this.body.className = 'dv-pane-body';\n this.element.appendChild(this.body);\n }\n // TODO slightly hacky by-pass of the component to create a body and header component\n getComponent() {\n return {\n update: (params) => {\n var _a, _b;\n (_a = this.bodyPart) === null || _a === void 0 ? void 0 : _a.update({ params });\n (_b = this.headerPart) === null || _b === void 0 ? void 0 : _b.update({ params });\n },\n dispose: () => {\n var _a, _b;\n (_a = this.bodyPart) === null || _a === void 0 ? void 0 : _a.dispose();\n (_b = this.headerPart) === null || _b === void 0 ? void 0 : _b.dispose();\n },\n };\n }\n}\n","import { PaneviewApi } from '../api/component.api';\nimport { DragHandler } from '../dnd/abstractDragHandler';\nimport { getPaneData, LocalSelectionTransfer, PaneTransfer, } from '../dnd/dataTransfer';\nimport { Droptarget } from '../dnd/droptarget';\nimport { Emitter } from '../events';\nimport { PaneviewUnhandledDragOverEvent, } from './options';\nimport { PaneviewPanel, } from './paneviewPanel';\nexport class DraggablePaneviewPanel extends PaneviewPanel {\n constructor(options) {\n super({\n id: options.id,\n component: options.component,\n headerComponent: options.headerComponent,\n orientation: options.orientation,\n isExpanded: options.isExpanded,\n isHeaderVisible: true,\n headerSize: options.headerSize,\n minimumBodySize: options.minimumBodySize,\n maximumBodySize: options.maximumBodySize,\n });\n this._onDidDrop = new Emitter();\n this.onDidDrop = this._onDidDrop.event;\n this._onUnhandledDragOverEvent = new Emitter();\n this.onUnhandledDragOverEvent = this._onUnhandledDragOverEvent.event;\n this.accessor = options.accessor;\n this.addDisposables(this._onDidDrop, this._onUnhandledDragOverEvent);\n if (!options.disableDnd) {\n this.initDragFeatures();\n }\n }\n initDragFeatures() {\n if (!this.header) {\n return;\n }\n const id = this.id;\n const accessorId = this.accessor.id;\n this.header.draggable = true;\n this.handler = new (class PaneDragHandler extends DragHandler {\n getData() {\n LocalSelectionTransfer.getInstance().setData([new PaneTransfer(accessorId, id)], PaneTransfer.prototype);\n return {\n dispose: () => {\n LocalSelectionTransfer.getInstance().clearData(PaneTransfer.prototype);\n },\n };\n }\n })(this.header);\n this.target = new Droptarget(this.element, {\n acceptedTargetZones: ['top', 'bottom'],\n overlayModel: {\n activationSize: { type: 'percentage', value: 50 },\n },\n canDisplayOverlay: (event, position) => {\n const data = getPaneData();\n if (data) {\n if (data.paneId !== this.id &&\n data.viewId === this.accessor.id) {\n return true;\n }\n }\n const firedEvent = new PaneviewUnhandledDragOverEvent(event, position, getPaneData, this);\n this._onUnhandledDragOverEvent.fire(firedEvent);\n return firedEvent.isAccepted;\n },\n });\n this.addDisposables(this._onDidDrop, this.handler, this.target, this.target.onDrop((event) => {\n this.onDrop(event);\n }));\n }\n onDrop(event) {\n const data = getPaneData();\n if (!data || data.viewId !== this.accessor.id) {\n // if there is no local drag event for this panel\n // or if the drag event was creating by another Paneview instance\n this._onDidDrop.fire(Object.assign(Object.assign({}, event), { panel: this, api: new PaneviewApi(this.accessor), getData: getPaneData }));\n return;\n }\n const containerApi = this._params\n .containerApi;\n const panelId = data.paneId;\n const existingPanel = containerApi.getPanel(panelId);\n if (!existingPanel) {\n // if the panel doesn't exist\n this._onDidDrop.fire(Object.assign(Object.assign({}, event), { panel: this, getData: getPaneData, api: new PaneviewApi(this.accessor) }));\n return;\n }\n const allPanels = containerApi.panels;\n const fromIndex = allPanels.indexOf(existingPanel);\n let toIndex = containerApi.panels.indexOf(this);\n if (event.position === 'left' || event.position === 'top') {\n toIndex = Math.max(0, toIndex - 1);\n }\n if (event.position === 'right' || event.position === 'bottom') {\n if (fromIndex > toIndex) {\n toIndex++;\n }\n toIndex = Math.min(allPanels.length - 1, toIndex);\n }\n containerApi.movePanel(fromIndex, toIndex);\n }\n}\n","import { CompositeDisposable, MutableDisposable, } from '../../../lifecycle';\nimport { Emitter } from '../../../events';\nimport { trackFocus } from '../../../dom';\nimport { Droptarget } from '../../../dnd/droptarget';\nimport { getPanelData } from '../../../dnd/dataTransfer';\nexport class ContentContainer extends CompositeDisposable {\n get element() {\n return this._element;\n }\n constructor(accessor, group) {\n super();\n this.accessor = accessor;\n this.group = group;\n this.disposable = new MutableDisposable();\n this._onDidFocus = new Emitter();\n this.onDidFocus = this._onDidFocus.event;\n this._onDidBlur = new Emitter();\n this.onDidBlur = this._onDidBlur.event;\n this._element = document.createElement('div');\n this._element.className = 'dv-content-container';\n this._element.tabIndex = -1;\n this.addDisposables(this._onDidFocus, this._onDidBlur);\n const target = group.dropTargetContainer;\n this.dropTarget = new Droptarget(this.element, {\n getOverlayOutline: () => {\n var _a;\n return ((_a = accessor.options.theme) === null || _a === void 0 ? void 0 : _a.dndPanelOverlay) === 'group'\n ? this.element.parentElement\n : null;\n },\n className: 'dv-drop-target-content',\n acceptedTargetZones: ['top', 'bottom', 'left', 'right', 'center'],\n canDisplayOverlay: (event, position) => {\n if (this.group.locked === 'no-drop-target' ||\n (this.group.locked && position === 'center')) {\n return false;\n }\n const data = getPanelData();\n if (!data &&\n event.shiftKey &&\n this.group.location.type !== 'floating') {\n return false;\n }\n if (data && data.viewId === this.accessor.id) {\n return true;\n }\n return this.group.canDisplayOverlay(event, position, 'content');\n },\n getOverrideTarget: target ? () => target.model : undefined,\n });\n this.addDisposables(this.dropTarget);\n }\n show() {\n this.element.style.display = '';\n }\n hide() {\n this.element.style.display = 'none';\n }\n renderPanel(panel, options = { asActive: true }) {\n const doRender = options.asActive ||\n (this.panel && this.group.isPanelActive(this.panel));\n if (this.panel &&\n this.panel.view.content.element.parentElement === this._element) {\n /**\n * If the currently attached panel is mounted directly to the content then remove it\n */\n this._element.removeChild(this.panel.view.content.element);\n }\n this.panel = panel;\n let container;\n switch (panel.api.renderer) {\n case 'onlyWhenVisible':\n this.group.renderContainer.detatch(panel);\n if (this.panel) {\n if (doRender) {\n this._element.appendChild(this.panel.view.content.element);\n }\n }\n container = this._element;\n break;\n case 'always':\n if (panel.view.content.element.parentElement === this._element) {\n this._element.removeChild(panel.view.content.element);\n }\n container = this.group.renderContainer.attach({\n panel,\n referenceContainer: this,\n });\n break;\n default:\n throw new Error(`dockview: invalid renderer type '${panel.api.renderer}'`);\n }\n if (doRender) {\n const focusTracker = trackFocus(container);\n const disposable = new CompositeDisposable();\n disposable.addDisposables(focusTracker, focusTracker.onDidFocus(() => this._onDidFocus.fire()), focusTracker.onDidBlur(() => this._onDidBlur.fire()));\n this.disposable.value = disposable;\n }\n }\n openPanel(panel) {\n if (this.panel === panel) {\n return;\n }\n this.renderPanel(panel);\n }\n layout(_width, _height) {\n // noop\n }\n closePanel() {\n var _a;\n if (this.panel) {\n if (this.panel.api.renderer === 'onlyWhenVisible') {\n (_a = this.panel.view.content.element.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(this.panel.view.content.element);\n }\n }\n this.panel = undefined;\n }\n dispose() {\n this.disposable.dispose();\n super.dispose();\n }\n}\n","import { addClasses, removeClasses } from '../dom';\nexport function addGhostImage(dataTransfer, ghostElement, options) {\n var _a, _b;\n // class dockview provides to force ghost image to be drawn on a different layer and prevent weird rendering issues\n addClasses(ghostElement, 'dv-dragged');\n // move the element off-screen initially otherwise it may in some cases be rendered at (0,0) momentarily\n ghostElement.style.top = '-9999px';\n document.body.appendChild(ghostElement);\n dataTransfer.setDragImage(ghostElement, (_a = options === null || options === void 0 ? void 0 : options.x) !== null && _a !== void 0 ? _a : 0, (_b = options === null || options === void 0 ? void 0 : options.y) !== null && _b !== void 0 ? _b : 0);\n setTimeout(() => {\n removeClasses(ghostElement, 'dv-dragged');\n ghostElement.remove();\n }, 0);\n}\n","import { addDisposableListener, Emitter } from '../../../events';\nimport { CompositeDisposable } from '../../../lifecycle';\nimport { getPanelData, LocalSelectionTransfer, PanelTransfer, } from '../../../dnd/dataTransfer';\nimport { toggleClass } from '../../../dom';\nimport { Droptarget, } from '../../../dnd/droptarget';\nimport { DragHandler } from '../../../dnd/abstractDragHandler';\nimport { addGhostImage } from '../../../dnd/ghost';\nclass TabDragHandler extends DragHandler {\n constructor(element, accessor, group, panel, disabled) {\n super(element, disabled);\n this.accessor = accessor;\n this.group = group;\n this.panel = panel;\n this.panelTransfer = LocalSelectionTransfer.getInstance();\n }\n getData(event) {\n this.panelTransfer.setData([new PanelTransfer(this.accessor.id, this.group.id, this.panel.id)], PanelTransfer.prototype);\n return {\n dispose: () => {\n this.panelTransfer.clearData(PanelTransfer.prototype);\n },\n };\n }\n}\nexport class Tab extends CompositeDisposable {\n get element() {\n return this._element;\n }\n constructor(panel, accessor, group) {\n super();\n this.panel = panel;\n this.accessor = accessor;\n this.group = group;\n this.content = undefined;\n this._onPointDown = new Emitter();\n this.onPointerDown = this._onPointDown.event;\n this._onDropped = new Emitter();\n this.onDrop = this._onDropped.event;\n this._onDragStart = new Emitter();\n this.onDragStart = this._onDragStart.event;\n this._element = document.createElement('div');\n this._element.className = 'dv-tab';\n this._element.tabIndex = 0;\n this._element.draggable = !this.accessor.options.disableDnd;\n toggleClass(this.element, 'dv-inactive-tab', true);\n this.dragHandler = new TabDragHandler(this._element, this.accessor, this.group, this.panel, !!this.accessor.options.disableDnd);\n this.dropTarget = new Droptarget(this._element, {\n acceptedTargetZones: ['left', 'right'],\n overlayModel: { activationSize: { value: 50, type: 'percentage' } },\n canDisplayOverlay: (event, position) => {\n if (this.group.locked) {\n return false;\n }\n const data = getPanelData();\n if (data && this.accessor.id === data.viewId) {\n return true;\n }\n return this.group.model.canDisplayOverlay(event, position, 'tab');\n },\n getOverrideTarget: () => { var _a; return (_a = group.model.dropTargetContainer) === null || _a === void 0 ? void 0 : _a.model; },\n });\n this.onWillShowOverlay = this.dropTarget.onWillShowOverlay;\n this.addDisposables(this._onPointDown, this._onDropped, this._onDragStart, this.dragHandler.onDragStart((event) => {\n if (event.dataTransfer) {\n const style = getComputedStyle(this.element);\n const newNode = this.element.cloneNode(true);\n Array.from(style).forEach((key) => newNode.style.setProperty(key, style.getPropertyValue(key), style.getPropertyPriority(key)));\n newNode.style.position = 'absolute';\n addGhostImage(event.dataTransfer, newNode, {\n y: -10,\n x: 30,\n });\n }\n this._onDragStart.fire(event);\n }), this.dragHandler, addDisposableListener(this._element, 'pointerdown', (event) => {\n this._onPointDown.fire(event);\n }), this.dropTarget.onDrop((event) => {\n this._onDropped.fire(event);\n }), this.dropTarget);\n }\n setActive(isActive) {\n toggleClass(this.element, 'dv-active-tab', isActive);\n toggleClass(this.element, 'dv-inactive-tab', !isActive);\n }\n setContent(part) {\n if (this.content) {\n this._element.removeChild(this.content.element);\n }\n this.content = part;\n this._element.appendChild(this.content.element);\n }\n updateDragAndDropState() {\n this._element.draggable = !this.accessor.options.disableDnd;\n this.dragHandler.setDisabled(!!this.accessor.options.disableDnd);\n }\n dispose() {\n super.dispose();\n }\n}\n","export class WillShowOverlayLocationEvent {\n get kind() {\n return this.options.kind;\n }\n get nativeEvent() {\n return this.event.nativeEvent;\n }\n get position() {\n return this.event.position;\n }\n get defaultPrevented() {\n return this.event.defaultPrevented;\n }\n get panel() {\n return this.options.panel;\n }\n get api() {\n return this.options.api;\n }\n get group() {\n return this.options.group;\n }\n preventDefault() {\n this.event.preventDefault();\n }\n getData() {\n return this.options.getData();\n }\n constructor(event, options) {\n this.event = event;\n this.options = options;\n }\n}\n","import { quasiPreventDefault } from '../dom';\nimport { addDisposableListener } from '../events';\nimport { DragHandler } from './abstractDragHandler';\nimport { LocalSelectionTransfer, PanelTransfer } from './dataTransfer';\nimport { addGhostImage } from './ghost';\nexport class GroupDragHandler extends DragHandler {\n constructor(element, accessor, group, disabled) {\n super(element, disabled);\n this.accessor = accessor;\n this.group = group;\n this.panelTransfer = LocalSelectionTransfer.getInstance();\n this.addDisposables(addDisposableListener(element, 'pointerdown', (e) => {\n if (e.shiftKey) {\n /**\n * You cannot call e.preventDefault() because that will prevent drag events from firing\n * but we also need to stop any group overlay drag events from occuring\n * Use a custom event marker that can be checked by the overlay drag events\n */\n quasiPreventDefault(e);\n }\n }, true));\n }\n isCancelled(_event) {\n if (this.group.api.location.type === 'floating' && !_event.shiftKey) {\n return true;\n }\n return false;\n }\n getData(dragEvent) {\n const dataTransfer = dragEvent.dataTransfer;\n this.panelTransfer.setData([new PanelTransfer(this.accessor.id, this.group.id, null)], PanelTransfer.prototype);\n const style = window.getComputedStyle(this.el);\n const bgColor = style.getPropertyValue('--dv-activegroup-visiblepanel-tab-background-color');\n const color = style.getPropertyValue('--dv-activegroup-visiblepanel-tab-color');\n if (dataTransfer) {\n const ghostElement = document.createElement('div');\n ghostElement.style.backgroundColor = bgColor;\n ghostElement.style.color = color;\n ghostElement.style.padding = '2px 8px';\n ghostElement.style.height = '24px';\n ghostElement.style.fontSize = '11px';\n ghostElement.style.lineHeight = '20px';\n ghostElement.style.borderRadius = '12px';\n ghostElement.style.position = 'absolute';\n ghostElement.style.pointerEvents = 'none';\n ghostElement.style.top = '-9999px';\n ghostElement.textContent = `Multiple Panels (${this.group.size})`;\n addGhostImage(dataTransfer, ghostElement, { y: -10, x: 30 });\n }\n return {\n dispose: () => {\n this.panelTransfer.clearData(PanelTransfer.prototype);\n },\n };\n }\n}\n","import { getPanelData } from '../../../dnd/dataTransfer';\nimport { Droptarget, } from '../../../dnd/droptarget';\nimport { GroupDragHandler } from '../../../dnd/groupDragHandler';\nimport { addDisposableListener, Emitter } from '../../../events';\nimport { CompositeDisposable } from '../../../lifecycle';\nimport { toggleClass } from '../../../dom';\nexport class VoidContainer extends CompositeDisposable {\n get element() {\n return this._element;\n }\n constructor(accessor, group) {\n super();\n this.accessor = accessor;\n this.group = group;\n this._onDrop = new Emitter();\n this.onDrop = this._onDrop.event;\n this._onDragStart = new Emitter();\n this.onDragStart = this._onDragStart.event;\n this._element = document.createElement('div');\n this._element.className = 'dv-void-container';\n this._element.draggable = !this.accessor.options.disableDnd;\n toggleClass(this._element, 'dv-draggable', !this.accessor.options.disableDnd);\n this.addDisposables(this._onDrop, this._onDragStart, addDisposableListener(this._element, 'pointerdown', () => {\n this.accessor.doSetGroupActive(this.group);\n }));\n this.handler = new GroupDragHandler(this._element, accessor, group, !!this.accessor.options.disableDnd);\n this.dropTarget = new Droptarget(this._element, {\n acceptedTargetZones: ['center'],\n canDisplayOverlay: (event, position) => {\n const data = getPanelData();\n if (data && this.accessor.id === data.viewId) {\n return true;\n }\n return group.model.canDisplayOverlay(event, position, 'header_space');\n },\n getOverrideTarget: () => { var _a; return (_a = group.model.dropTargetContainer) === null || _a === void 0 ? void 0 : _a.model; },\n });\n this.onWillShowOverlay = this.dropTarget.onWillShowOverlay;\n this.addDisposables(this.handler, this.handler.onDragStart((event) => {\n this._onDragStart.fire(event);\n }), this.dropTarget.onDrop((event) => {\n this._onDrop.fire(event);\n }), this.dropTarget);\n }\n updateDragAndDropState() {\n this._element.draggable = !this.accessor.options.disableDnd;\n toggleClass(this._element, 'dv-draggable', !this.accessor.options.disableDnd);\n this.handler.setDisabled(!!this.accessor.options.disableDnd);\n }\n}\n","import { toggleClass, watchElementResize } from './dom';\nimport { addDisposableListener } from './events';\nimport { CompositeDisposable } from './lifecycle';\nimport { clamp } from './math';\nexport class Scrollbar extends CompositeDisposable {\n get element() {\n return this._element;\n }\n constructor(scrollableElement) {\n super();\n this.scrollableElement = scrollableElement;\n this._scrollLeft = 0;\n this._element = document.createElement('div');\n this._element.className = 'dv-scrollable';\n this._horizontalScrollbar = document.createElement('div');\n this._horizontalScrollbar.className = 'dv-scrollbar-horizontal';\n this.element.appendChild(scrollableElement);\n this.element.appendChild(this._horizontalScrollbar);\n this.addDisposables(addDisposableListener(this.element, 'wheel', (event) => {\n this._scrollLeft += event.deltaY * Scrollbar.MouseWheelSpeed;\n this.calculateScrollbarStyles();\n }), addDisposableListener(this._horizontalScrollbar, 'pointerdown', (event) => {\n event.preventDefault();\n toggleClass(this.element, 'dv-scrollable-scrolling', true);\n const originalClientX = event.clientX;\n const originalScrollLeft = this._scrollLeft;\n const onPointerMove = (event) => {\n const deltaX = event.clientX - originalClientX;\n const { clientWidth } = this.element;\n const { scrollWidth } = this.scrollableElement;\n const p = clientWidth / scrollWidth;\n this._scrollLeft = originalScrollLeft + deltaX / p;\n this.calculateScrollbarStyles();\n };\n const onEnd = () => {\n toggleClass(this.element, 'dv-scrollable-scrolling', false);\n document.removeEventListener('pointermove', onPointerMove);\n document.removeEventListener('pointerup', onEnd);\n document.removeEventListener('pointercancel', onEnd);\n };\n document.addEventListener('pointermove', onPointerMove);\n document.addEventListener('pointerup', onEnd);\n document.addEventListener('pointercancel', onEnd);\n }), addDisposableListener(this.element, 'scroll', () => {\n this.calculateScrollbarStyles();\n }), addDisposableListener(this.scrollableElement, 'scroll', () => {\n this._scrollLeft = this.scrollableElement.scrollLeft;\n this.calculateScrollbarStyles();\n }), watchElementResize(this.element, () => {\n toggleClass(this.element, 'dv-scrollable-resizing', true);\n if (this._animationTimer) {\n clearTimeout(this._animationTimer);\n }\n this._animationTimer = setTimeout(() => {\n clearTimeout(this._animationTimer);\n toggleClass(this.element, 'dv-scrollable-resizing', false);\n }, 500);\n this.calculateScrollbarStyles();\n }));\n }\n calculateScrollbarStyles() {\n const { clientWidth } = this.element;\n const { scrollWidth } = this.scrollableElement;\n const hasScrollbar = scrollWidth > clientWidth;\n if (hasScrollbar) {\n const px = clientWidth * (clientWidth / scrollWidth);\n this._horizontalScrollbar.style.width = `${px}px`;\n this._scrollLeft = clamp(this._scrollLeft, 0, this.scrollableElement.scrollWidth - clientWidth);\n this.scrollableElement.scrollLeft = this._scrollLeft;\n const percentageComplete = this._scrollLeft / (scrollWidth - clientWidth);\n this._horizontalScrollbar.style.left = `${(clientWidth - px) * percentageComplete}px`;\n }\n else {\n this._horizontalScrollbar.style.width = `0px`;\n this._horizontalScrollbar.style.left = `0px`;\n this._scrollLeft = 0;\n }\n }\n}\nScrollbar.MouseWheelSpeed = 1;\n","import { getPanelData } from '../../../dnd/dataTransfer';\nimport { isChildEntirelyVisibleWithinParent, OverflowObserver, } from '../../../dom';\nimport { addDisposableListener, Emitter } from '../../../events';\nimport { CompositeDisposable, Disposable, MutableDisposable, } from '../../../lifecycle';\nimport { Scrollbar } from '../../../scrollbar';\nimport { WillShowOverlayLocationEvent } from '../../events';\nimport { Tab } from '../tab/tab';\nexport class Tabs extends CompositeDisposable {\n get showTabsOverflowControl() {\n return this._showTabsOverflowControl;\n }\n set showTabsOverflowControl(value) {\n if (this._showTabsOverflowControl == value) {\n return;\n }\n this._showTabsOverflowControl = value;\n if (value) {\n const observer = new OverflowObserver(this._tabsList);\n this._observerDisposable.value = new CompositeDisposable(observer, observer.onDidChange((event) => {\n const hasOverflow = event.hasScrollX || event.hasScrollY;\n this.toggleDropdown({ reset: !hasOverflow });\n }), addDisposableListener(this._tabsList, 'scroll', () => {\n this.toggleDropdown({ reset: false });\n }));\n }\n }\n get element() {\n return this._element;\n }\n get panels() {\n return this._tabs.map((_) => _.value.panel.id);\n }\n get size() {\n return this._tabs.length;\n }\n get tabs() {\n return this._tabs.map((_) => _.value);\n }\n constructor(group, accessor, options) {\n super();\n this.group = group;\n this.accessor = accessor;\n this._observerDisposable = new MutableDisposable();\n this._tabs = [];\n this.selectedIndex = -1;\n this._showTabsOverflowControl = false;\n this._onTabDragStart = new Emitter();\n this.onTabDragStart = this._onTabDragStart.event;\n this._onDrop = new Emitter();\n this.onDrop = this._onDrop.event;\n this._onWillShowOverlay = new Emitter();\n this.onWillShowOverlay = this._onWillShowOverlay.event;\n this._onOverflowTabsChange = new Emitter();\n this.onOverflowTabsChange = this._onOverflowTabsChange.event;\n this._tabsList = document.createElement('div');\n this._tabsList.className = 'dv-tabs-container dv-horizontal';\n this.showTabsOverflowControl = options.showTabsOverflowControl;\n if (accessor.options.scrollbars === 'native') {\n this._element = this._tabsList;\n }\n else {\n const scrollbar = new Scrollbar(this._tabsList);\n this._element = scrollbar.element;\n this.addDisposables(scrollbar);\n }\n this.addDisposables(this._onOverflowTabsChange, this._observerDisposable, this._onWillShowOverlay, this._onDrop, this._onTabDragStart, addDisposableListener(this.element, 'pointerdown', (event) => {\n if (event.defaultPrevented) {\n return;\n }\n const isLeftClick = event.button === 0;\n if (isLeftClick) {\n this.accessor.doSetGroupActive(this.group);\n }\n }), Disposable.from(() => {\n for (const { value, disposable } of this._tabs) {\n disposable.dispose();\n value.dispose();\n }\n this._tabs = [];\n }));\n }\n indexOf(id) {\n return this._tabs.findIndex((tab) => tab.value.panel.id === id);\n }\n isActive(tab) {\n return (this.selectedIndex > -1 &&\n this._tabs[this.selectedIndex].value === tab);\n }\n setActivePanel(panel) {\n let runningWidth = 0;\n for (const tab of this._tabs) {\n const isActivePanel = panel.id === tab.value.panel.id;\n tab.value.setActive(isActivePanel);\n if (isActivePanel) {\n const element = tab.value.element;\n const parentElement = element.parentElement;\n if (runningWidth < parentElement.scrollLeft ||\n runningWidth + element.clientWidth >\n parentElement.scrollLeft + parentElement.clientWidth) {\n parentElement.scrollLeft = runningWidth;\n }\n }\n runningWidth += tab.value.element.clientWidth;\n }\n }\n openPanel(panel, index = this._tabs.length) {\n if (this._tabs.find((tab) => tab.value.panel.id === panel.id)) {\n return;\n }\n const tab = new Tab(panel, this.accessor, this.group);\n tab.setContent(panel.view.tab);\n const disposable = new CompositeDisposable(tab.onDragStart((event) => {\n this._onTabDragStart.fire({ nativeEvent: event, panel });\n }), tab.onPointerDown((event) => {\n if (event.defaultPrevented) {\n return;\n }\n const isFloatingGroupsEnabled = !this.accessor.options.disableFloatingGroups;\n const isFloatingWithOnePanel = this.group.api.location.type === 'floating' &&\n this.size === 1;\n if (isFloatingGroupsEnabled &&\n !isFloatingWithOnePanel &&\n event.shiftKey) {\n event.preventDefault();\n const panel = this.accessor.getGroupPanel(tab.panel.id);\n const { top, left } = tab.element.getBoundingClientRect();\n const { top: rootTop, left: rootLeft } = this.accessor.element.getBoundingClientRect();\n this.accessor.addFloatingGroup(panel, {\n x: left - rootLeft,\n y: top - rootTop,\n inDragMode: true,\n });\n return;\n }\n switch (event.button) {\n case 0: // left click or touch\n if (this.group.activePanel !== panel) {\n this.group.model.openPanel(panel);\n }\n break;\n }\n }), tab.onDrop((event) => {\n this._onDrop.fire({\n event: event.nativeEvent,\n index: this._tabs.findIndex((x) => x.value === tab),\n });\n }), tab.onWillShowOverlay((event) => {\n this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {\n kind: 'tab',\n panel: this.group.activePanel,\n api: this.accessor.api,\n group: this.group,\n getData: getPanelData,\n }));\n }));\n const value = { value: tab, disposable };\n this.addTab(value, index);\n }\n delete(id) {\n const index = this.indexOf(id);\n const tabToRemove = this._tabs.splice(index, 1)[0];\n const { value, disposable } = tabToRemove;\n disposable.dispose();\n value.dispose();\n value.element.remove();\n }\n addTab(tab, index = this._tabs.length) {\n if (index < 0 || index > this._tabs.length) {\n throw new Error('invalid location');\n }\n this._tabsList.insertBefore(tab.value.element, this._tabsList.children[index]);\n this._tabs = [\n ...this._tabs.slice(0, index),\n tab,\n ...this._tabs.slice(index),\n ];\n if (this.selectedIndex < 0) {\n this.selectedIndex = index;\n }\n }\n toggleDropdown(options) {\n const tabs = options.reset\n ? []\n : this._tabs\n .filter((tab) => !isChildEntirelyVisibleWithinParent(tab.value.element, this._tabsList))\n .map((x) => x.value.panel.id);\n this._onOverflowTabsChange.fire({ tabs, reset: options.reset });\n }\n updateDragAndDropState() {\n for (const tab of this._tabs) {\n tab.value.updateDragAndDropState();\n }\n }\n}\n","const createSvgElementFromPath = (params) => {\n const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n svg.setAttributeNS(null, 'height', params.height);\n svg.setAttributeNS(null, 'width', params.width);\n svg.setAttributeNS(null, 'viewBox', params.viewbox);\n svg.setAttributeNS(null, 'aria-hidden', 'false');\n svg.setAttributeNS(null, 'focusable', 'false');\n svg.classList.add('dv-svg');\n const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');\n path.setAttributeNS(null, 'd', params.path);\n svg.appendChild(path);\n return svg;\n};\nexport const createCloseButton = () => createSvgElementFromPath({\n width: '11',\n height: '11',\n viewbox: '0 0 28 28',\n path: 'M2.1 27.3L0 25.2L11.55 13.65L0 2.1L2.1 0L13.65 11.55L25.2 0L27.3 2.1L15.75 13.65L27.3 25.2L25.2 27.3L13.65 15.75L2.1 27.3Z',\n});\nexport const createExpandMoreButton = () => createSvgElementFromPath({\n width: '11',\n height: '11',\n viewbox: '0 0 24 15',\n path: 'M12 14.15L0 2.15L2.15 0L12 9.9L21.85 0.0499992L24 2.2L12 14.15Z',\n});\nexport const createChevronRightButton = () => createSvgElementFromPath({\n width: '11',\n height: '11',\n viewbox: '0 0 15 25',\n path: 'M2.15 24.1L0 21.95L9.9 12.05L0 2.15L2.15 0L14.2 12.05L2.15 24.1Z',\n});\n","import { createChevronRightButton } from '../../../svg';\nexport function createDropdownElementHandle() {\n const el = document.createElement('div');\n el.className = 'dv-tabs-overflow-dropdown-default';\n const text = document.createElement('span');\n text.textContent = ``;\n const icon = createChevronRightButton();\n el.appendChild(icon);\n el.appendChild(text);\n return {\n element: el,\n update: (params) => {\n text.textContent = `${params.tabs}`;\n },\n };\n}\n","import { CompositeDisposable, Disposable, MutableDisposable, } from '../../../lifecycle';\nimport { addDisposableListener, Emitter } from '../../../events';\nimport { VoidContainer } from './voidContainer';\nimport { findRelativeZIndexParent, toggleClass } from '../../../dom';\nimport { WillShowOverlayLocationEvent } from '../../events';\nimport { getPanelData } from '../../../dnd/dataTransfer';\nimport { Tabs } from './tabs';\nimport { createDropdownElementHandle, } from './tabOverflowControl';\nexport class TabsContainer extends CompositeDisposable {\n get onTabDragStart() {\n return this.tabs.onTabDragStart;\n }\n get panels() {\n return this.tabs.panels;\n }\n get size() {\n return this.tabs.size;\n }\n get hidden() {\n return this._hidden;\n }\n set hidden(value) {\n this._hidden = value;\n this.element.style.display = value ? 'none' : '';\n }\n get element() {\n return this._element;\n }\n constructor(accessor, group) {\n super();\n this.accessor = accessor;\n this.group = group;\n this._hidden = false;\n this.dropdownPart = null;\n this._overflowTabs = [];\n this._dropdownDisposable = new MutableDisposable();\n this._onDrop = new Emitter();\n this.onDrop = this._onDrop.event;\n this._onGroupDragStart = new Emitter();\n this.onGroupDragStart = this._onGroupDragStart.event;\n this._onWillShowOverlay = new Emitter();\n this.onWillShowOverlay = this._onWillShowOverlay.event;\n this._element = document.createElement('div');\n this._element.className = 'dv-tabs-and-actions-container';\n toggleClass(this._element, 'dv-full-width-single-tab', this.accessor.options.singleTabMode === 'fullwidth');\n this.rightActionsContainer = document.createElement('div');\n this.rightActionsContainer.className = 'dv-right-actions-container';\n this.leftActionsContainer = document.createElement('div');\n this.leftActionsContainer.className = 'dv-left-actions-container';\n this.preActionsContainer = document.createElement('div');\n this.preActionsContainer.className = 'dv-pre-actions-container';\n this.tabs = new Tabs(group, accessor, {\n showTabsOverflowControl: !accessor.options.disableTabsOverflowList,\n });\n this.voidContainer = new VoidContainer(this.accessor, this.group);\n this._element.appendChild(this.preActionsContainer);\n this._element.appendChild(this.tabs.element);\n this._element.appendChild(this.leftActionsContainer);\n this._element.appendChild(this.voidContainer.element);\n this._element.appendChild(this.rightActionsContainer);\n this.addDisposables(this.tabs.onDrop((e) => this._onDrop.fire(e)), this.tabs.onWillShowOverlay((e) => this._onWillShowOverlay.fire(e)), accessor.onDidOptionsChange(() => {\n this.tabs.showTabsOverflowControl =\n !accessor.options.disableTabsOverflowList;\n }), this.tabs.onOverflowTabsChange((event) => {\n this.toggleDropdown(event);\n }), this.tabs, this._onWillShowOverlay, this._onDrop, this._onGroupDragStart, this.voidContainer, this.voidContainer.onDragStart((event) => {\n this._onGroupDragStart.fire({\n nativeEvent: event,\n group: this.group,\n });\n }), this.voidContainer.onDrop((event) => {\n this._onDrop.fire({\n event: event.nativeEvent,\n index: this.tabs.size,\n });\n }), this.voidContainer.onWillShowOverlay((event) => {\n this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {\n kind: 'header_space',\n panel: this.group.activePanel,\n api: this.accessor.api,\n group: this.group,\n getData: getPanelData,\n }));\n }), addDisposableListener(this.voidContainer.element, 'pointerdown', (event) => {\n if (event.defaultPrevented) {\n return;\n }\n const isFloatingGroupsEnabled = !this.accessor.options.disableFloatingGroups;\n if (isFloatingGroupsEnabled &&\n event.shiftKey &&\n this.group.api.location.type !== 'floating') {\n event.preventDefault();\n const { top, left } = this.element.getBoundingClientRect();\n const { top: rootTop, left: rootLeft } = this.accessor.element.getBoundingClientRect();\n this.accessor.addFloatingGroup(this.group, {\n x: left - rootLeft + 20,\n y: top - rootTop + 20,\n inDragMode: true,\n });\n }\n }));\n }\n show() {\n if (!this.hidden) {\n this.element.style.display = '';\n }\n }\n hide() {\n this._element.style.display = 'none';\n }\n setRightActionsElement(element) {\n if (this.rightActions === element) {\n return;\n }\n if (this.rightActions) {\n this.rightActions.remove();\n this.rightActions = undefined;\n }\n if (element) {\n this.rightActionsContainer.appendChild(element);\n this.rightActions = element;\n }\n }\n setLeftActionsElement(element) {\n if (this.leftActions === element) {\n return;\n }\n if (this.leftActions) {\n this.leftActions.remove();\n this.leftActions = undefined;\n }\n if (element) {\n this.leftActionsContainer.appendChild(element);\n this.leftActions = element;\n }\n }\n setPrefixActionsElement(element) {\n if (this.preActions === element) {\n return;\n }\n if (this.preActions) {\n this.preActions.remove();\n this.preActions = undefined;\n }\n if (element) {\n this.preActionsContainer.appendChild(element);\n this.preActions = element;\n }\n }\n isActive(tab) {\n return this.tabs.isActive(tab);\n }\n indexOf(id) {\n return this.tabs.indexOf(id);\n }\n setActive(_isGroupActive) {\n // noop\n }\n delete(id) {\n this.tabs.delete(id);\n this.updateClassnames();\n }\n setActivePanel(panel) {\n this.tabs.setActivePanel(panel);\n }\n openPanel(panel, index = this.tabs.size) {\n this.tabs.openPanel(panel, index);\n this.updateClassnames();\n }\n closePanel(panel) {\n this.delete(panel.id);\n }\n updateClassnames() {\n toggleClass(this._element, 'dv-single-tab', this.size === 1);\n }\n toggleDropdown(options) {\n const tabs = options.reset ? [] : options.tabs;\n this._overflowTabs = tabs;\n if (this._overflowTabs.length > 0 && this.dropdownPart) {\n this.dropdownPart.update({ tabs: tabs.length });\n return;\n }\n if (this._overflowTabs.length === 0) {\n this._dropdownDisposable.dispose();\n return;\n }\n const root = document.createElement('div');\n root.className = 'dv-tabs-overflow-dropdown-root';\n const part = createDropdownElementHandle();\n part.update({ tabs: tabs.length });\n this.dropdownPart = part;\n root.appendChild(part.element);\n this.rightActionsContainer.prepend(root);\n this._dropdownDisposable.value = new CompositeDisposable(Disposable.from(() => {\n var _a, _b;\n root.remove();\n (_b = (_a = this.dropdownPart) === null || _a === void 0 ? void 0 : _a.dispose) === null || _b === void 0 ? void 0 : _b.call(_a);\n this.dropdownPart = null;\n }), addDisposableListener(root, 'pointerdown', (event) => {\n event.preventDefault();\n }, { capture: true }), addDisposableListener(root, 'click', (event) => {\n const el = document.createElement('div');\n el.style.overflow = 'auto';\n el.className = 'dv-tabs-overflow-container';\n for (const tab of this.tabs.tabs.filter((tab) => this._overflowTabs.includes(tab.panel.id))) {\n const panelObject = this.group.panels.find((panel) => panel === tab.panel);\n const tabComponent = panelObject.view.createTabRenderer('headerOverflow');\n const child = tabComponent.element;\n const wrapper = document.createElement('div');\n toggleClass(wrapper, 'dv-tab', true);\n toggleClass(wrapper, 'dv-active-tab', panelObject.api.isActive);\n toggleClass(wrapper, 'dv-inactive-tab', !panelObject.api.isActive);\n wrapper.addEventListener('click', (event) => {\n this.accessor.popupService.close();\n if (event.defaultPrevented) {\n return;\n }\n tab.element.scrollIntoView();\n tab.panel.api.setActive();\n });\n wrapper.appendChild(child);\n el.appendChild(wrapper);\n }\n const relativeParent = findRelativeZIndexParent(root);\n this.accessor.popupService.openPopover(el, {\n x: event.clientX,\n y: event.clientY,\n zIndex: (relativeParent === null || relativeParent === void 0 ? void 0 : relativeParent.style.zIndex)\n ? `calc(${relativeParent.style.zIndex} * 2)`\n : undefined,\n });\n }));\n }\n updateDragAndDropState() {\n this.tabs.updateDragAndDropState();\n this.voidContainer.updateDragAndDropState();\n }\n}\n","import { AcceptableEvent } from '../events';\nexport class DockviewUnhandledDragOverEvent extends AcceptableEvent {\n constructor(nativeEvent, target, position, getData, group) {\n super();\n this.nativeEvent = nativeEvent;\n this.target = target;\n this.position = position;\n this.getData = getData;\n this.group = group;\n }\n}\nexport const PROPERTY_KEYS_DOCKVIEW = (() => {\n /**\n * by readong the keys from an empty value object TypeScript will error\n * when we add or remove new properties to `DockviewOptions`\n */\n const properties = {\n disableAutoResizing: undefined,\n hideBorders: undefined,\n singleTabMode: undefined,\n disableFloatingGroups: undefined,\n floatingGroupBounds: undefined,\n popoutUrl: undefined,\n defaultRenderer: undefined,\n debug: undefined,\n rootOverlayModel: undefined,\n locked: undefined,\n disableDnd: undefined,\n className: undefined,\n noPanelsOverlay: undefined,\n dndEdges: undefined,\n theme: undefined,\n disableTabsOverflowList: undefined,\n scrollbars: undefined,\n };\n return Object.keys(properties);\n})();\nexport function isPanelOptionsWithPanel(data) {\n if (data.referencePanel) {\n return true;\n }\n return false;\n}\nexport function isPanelOptionsWithGroup(data) {\n if (data.referenceGroup) {\n return true;\n }\n return false;\n}\nexport function isGroupOptionsWithPanel(data) {\n if (data.referencePanel) {\n return true;\n }\n return false;\n}\nexport function isGroupOptionsWithGroup(data) {\n if (data.referenceGroup) {\n return true;\n }\n return false;\n}\n","import { DockviewApi } from '../api/component.api';\nimport { getPanelData } from '../dnd/dataTransfer';\nimport { isAncestor, toggleClass } from '../dom';\nimport { addDisposableListener, DockviewEvent, Emitter, } from '../events';\nimport { WillShowOverlayLocationEvent } from './events';\nimport { CompositeDisposable } from '../lifecycle';\nimport { ContentContainer, } from './components/panel/content';\nimport { TabsContainer, } from './components/titlebar/tabsContainer';\nimport { DockviewUnhandledDragOverEvent, } from './options';\nexport class DockviewDidDropEvent extends DockviewEvent {\n get nativeEvent() {\n return this.options.nativeEvent;\n }\n get position() {\n return this.options.position;\n }\n get panel() {\n return this.options.panel;\n }\n get group() {\n return this.options.group;\n }\n get api() {\n return this.options.api;\n }\n constructor(options) {\n super();\n this.options = options;\n }\n getData() {\n return this.options.getData();\n }\n}\nexport class DockviewWillDropEvent extends DockviewDidDropEvent {\n get kind() {\n return this._kind;\n }\n constructor(options) {\n super(options);\n this._kind = options.kind;\n }\n}\nexport class DockviewGroupPanelModel extends CompositeDisposable {\n get element() {\n throw new Error('dockview: not supported');\n }\n get activePanel() {\n return this._activePanel;\n }\n get locked() {\n return this._locked;\n }\n set locked(value) {\n this._locked = value;\n toggleClass(this.container, 'dv-locked-groupview', value === 'no-drop-target' || value);\n }\n get isActive() {\n return this._isGroupActive;\n }\n get panels() {\n return this._panels;\n }\n get size() {\n return this._panels.length;\n }\n get isEmpty() {\n return this._panels.length === 0;\n }\n get hasWatermark() {\n return !!(this.watermark && this.container.contains(this.watermark.element));\n }\n get header() {\n return this.tabsContainer;\n }\n get isContentFocused() {\n if (!document.activeElement) {\n return false;\n }\n return isAncestor(document.activeElement, this.contentContainer.element);\n }\n get location() {\n return this._location;\n }\n set location(value) {\n this._location = value;\n toggleClass(this.container, 'dv-groupview-floating', false);\n toggleClass(this.container, 'dv-groupview-popout', false);\n switch (value.type) {\n case 'grid':\n this.contentContainer.dropTarget.setTargetZones([\n 'top',\n 'bottom',\n 'left',\n 'right',\n 'center',\n ]);\n break;\n case 'floating':\n this.contentContainer.dropTarget.setTargetZones(['center']);\n this.contentContainer.dropTarget.setTargetZones(value\n ? ['center']\n : ['top', 'bottom', 'left', 'right', 'center']);\n toggleClass(this.container, 'dv-groupview-floating', true);\n break;\n case 'popout':\n this.contentContainer.dropTarget.setTargetZones(['center']);\n toggleClass(this.container, 'dv-groupview-popout', true);\n break;\n }\n this.groupPanel.api._onDidLocationChange.fire({\n location: this.location,\n });\n }\n constructor(container, accessor, id, options, groupPanel) {\n var _a;\n super();\n this.container = container;\n this.accessor = accessor;\n this.id = id;\n this.options = options;\n this.groupPanel = groupPanel;\n this._isGroupActive = false;\n this._locked = false;\n this._location = { type: 'grid' };\n this.mostRecentlyUsed = [];\n this._overwriteRenderContainer = null;\n this._overwriteDropTargetContainer = null;\n this._onDidChange = new Emitter();\n this.onDidChange = this._onDidChange.event;\n this._width = 0;\n this._height = 0;\n this._panels = [];\n this._panelDisposables = new Map();\n this._onMove = new Emitter();\n this.onMove = this._onMove.event;\n this._onDidDrop = new Emitter();\n this.onDidDrop = this._onDidDrop.event;\n this._onWillDrop = new Emitter();\n this.onWillDrop = this._onWillDrop.event;\n this._onWillShowOverlay = new Emitter();\n this.onWillShowOverlay = this._onWillShowOverlay.event;\n this._onTabDragStart = new Emitter();\n this.onTabDragStart = this._onTabDragStart.event;\n this._onGroupDragStart = new Emitter();\n this.onGroupDragStart = this._onGroupDragStart.event;\n this._onDidAddPanel = new Emitter();\n this.onDidAddPanel = this._onDidAddPanel.event;\n this._onDidPanelTitleChange = new Emitter();\n this.onDidPanelTitleChange = this._onDidPanelTitleChange.event;\n this._onDidPanelParametersChange = new Emitter();\n this.onDidPanelParametersChange = this._onDidPanelParametersChange.event;\n this._onDidRemovePanel = new Emitter();\n this.onDidRemovePanel = this._onDidRemovePanel.event;\n this._onDidActivePanelChange = new Emitter();\n this.onDidActivePanelChange = this._onDidActivePanelChange.event;\n this._onUnhandledDragOverEvent = new Emitter();\n this.onUnhandledDragOverEvent = this._onUnhandledDragOverEvent.event;\n toggleClass(this.container, 'dv-groupview', true);\n this._api = new DockviewApi(this.accessor);\n this.tabsContainer = new TabsContainer(this.accessor, this.groupPanel);\n this.contentContainer = new ContentContainer(this.accessor, this);\n container.append(this.tabsContainer.element, this.contentContainer.element);\n this.header.hidden = !!options.hideHeader;\n this.locked = (_a = options.locked) !== null && _a !== void 0 ? _a : false;\n this.addDisposables(this._onTabDragStart, this._onGroupDragStart, this._onWillShowOverlay, this.tabsContainer.onTabDragStart((event) => {\n this._onTabDragStart.fire(event);\n }), this.tabsContainer.onGroupDragStart((event) => {\n this._onGroupDragStart.fire(event);\n }), this.tabsContainer.onDrop((event) => {\n this.handleDropEvent('header', event.event, 'center', event.index);\n }), this.contentContainer.onDidFocus(() => {\n this.accessor.doSetGroupActive(this.groupPanel);\n }), this.contentContainer.onDidBlur(() => {\n // noop\n }), this.contentContainer.dropTarget.onDrop((event) => {\n this.handleDropEvent('content', event.nativeEvent, event.position);\n }), this.tabsContainer.onWillShowOverlay((event) => {\n this._onWillShowOverlay.fire(event);\n }), this.contentContainer.dropTarget.onWillShowOverlay((event) => {\n this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {\n kind: 'content',\n panel: this.activePanel,\n api: this._api,\n group: this.groupPanel,\n getData: getPanelData,\n }));\n }), this._onMove, this._onDidChange, this._onDidDrop, this._onWillDrop, this._onDidAddPanel, this._onDidRemovePanel, this._onDidActivePanelChange, this._onUnhandledDragOverEvent, this._onDidPanelTitleChange, this._onDidPanelParametersChange);\n }\n focusContent() {\n this.contentContainer.element.focus();\n }\n set renderContainer(value) {\n this.panels.forEach((panel) => {\n this.renderContainer.detatch(panel);\n });\n this._overwriteRenderContainer = value;\n this.panels.forEach((panel) => {\n this.rerender(panel);\n });\n }\n get renderContainer() {\n var _a;\n return ((_a = this._overwriteRenderContainer) !== null && _a !== void 0 ? _a : this.accessor.overlayRenderContainer);\n }\n set dropTargetContainer(value) {\n this._overwriteDropTargetContainer = value;\n }\n get dropTargetContainer() {\n var _a;\n return ((_a = this._overwriteDropTargetContainer) !== null && _a !== void 0 ? _a : this.accessor.rootDropTargetContainer);\n }\n initialize() {\n if (this.options.panels) {\n this.options.panels.forEach((panel) => {\n this.doAddPanel(panel);\n });\n }\n if (this.options.activePanel) {\n this.openPanel(this.options.activePanel);\n }\n // must be run after the constructor otherwise this.parent may not be\n // correctly initialized\n this.setActive(this.isActive, true);\n this.updateContainer();\n if (this.accessor.options.createRightHeaderActionComponent) {\n this._rightHeaderActions =\n this.accessor.options.createRightHeaderActionComponent(this.groupPanel);\n this.addDisposables(this._rightHeaderActions);\n this._rightHeaderActions.init({\n containerApi: this._api,\n api: this.groupPanel.api,\n group: this.groupPanel,\n });\n this.tabsContainer.setRightActionsElement(this._rightHeaderActions.element);\n }\n if (this.accessor.options.createLeftHeaderActionComponent) {\n this._leftHeaderActions =\n this.accessor.options.createLeftHeaderActionComponent(this.groupPanel);\n this.addDisposables(this._leftHeaderActions);\n this._leftHeaderActions.init({\n containerApi: this._api,\n api: this.groupPanel.api,\n group: this.groupPanel,\n });\n this.tabsContainer.setLeftActionsElement(this._leftHeaderActions.element);\n }\n if (this.accessor.options.createPrefixHeaderActionComponent) {\n this._prefixHeaderActions =\n this.accessor.options.createPrefixHeaderActionComponent(this.groupPanel);\n this.addDisposables(this._prefixHeaderActions);\n this._prefixHeaderActions.init({\n containerApi: this._api,\n api: this.groupPanel.api,\n group: this.groupPanel,\n });\n this.tabsContainer.setPrefixActionsElement(this._prefixHeaderActions.element);\n }\n }\n rerender(panel) {\n this.contentContainer.renderPanel(panel, { asActive: false });\n }\n indexOf(panel) {\n return this.tabsContainer.indexOf(panel.id);\n }\n toJSON() {\n var _a;\n const result = {\n views: this.tabsContainer.panels,\n activeView: (_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.id,\n id: this.id,\n };\n if (this.locked !== false) {\n result.locked = this.locked;\n }\n if (this.header.hidden) {\n result.hideHeader = true;\n }\n return result;\n }\n moveToNext(options) {\n if (!options) {\n options = {};\n }\n if (!options.panel) {\n options.panel = this.activePanel;\n }\n const index = options.panel ? this.panels.indexOf(options.panel) : -1;\n let normalizedIndex;\n if (index < this.panels.length - 1) {\n normalizedIndex = index + 1;\n }\n else if (!options.suppressRoll) {\n normalizedIndex = 0;\n }\n else {\n return;\n }\n this.openPanel(this.panels[normalizedIndex]);\n }\n moveToPrevious(options) {\n if (!options) {\n options = {};\n }\n if (!options.panel) {\n options.panel = this.activePanel;\n }\n if (!options.panel) {\n return;\n }\n const index = this.panels.indexOf(options.panel);\n let normalizedIndex;\n if (index > 0) {\n normalizedIndex = index - 1;\n }\n else if (!options.suppressRoll) {\n normalizedIndex = this.panels.length - 1;\n }\n else {\n return;\n }\n this.openPanel(this.panels[normalizedIndex]);\n }\n containsPanel(panel) {\n return this.panels.includes(panel);\n }\n init(_params) {\n //noop\n }\n update(_params) {\n //noop\n }\n focus() {\n var _a;\n (_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.focus();\n }\n openPanel(panel, options = {}) {\n /**\n * set the panel group\n * add the panel\n * check if group active\n * check if panel active\n */\n if (typeof options.index !== 'number' ||\n options.index > this.panels.length) {\n options.index = this.panels.length;\n }\n const skipSetActive = !!options.skipSetActive;\n // ensure the group is updated before we fire any events\n panel.updateParentGroup(this.groupPanel, {\n skipSetActive: options.skipSetActive,\n });\n this.doAddPanel(panel, options.index, {\n skipSetActive: skipSetActive,\n });\n if (this._activePanel === panel) {\n this.contentContainer.renderPanel(panel, { asActive: true });\n return;\n }\n if (!skipSetActive) {\n this.doSetActivePanel(panel);\n }\n if (!options.skipSetGroupActive) {\n this.accessor.doSetGroupActive(this.groupPanel);\n }\n if (!options.skipSetActive) {\n this.updateContainer();\n }\n }\n removePanel(groupItemOrId, options = {\n skipSetActive: false,\n }) {\n const id = typeof groupItemOrId === 'string'\n ? groupItemOrId\n : groupItemOrId.id;\n const panelToRemove = this._panels.find((panel) => panel.id === id);\n if (!panelToRemove) {\n throw new Error('invalid operation');\n }\n return this._removePanel(panelToRemove, options);\n }\n closeAllPanels() {\n if (this.panels.length > 0) {\n // take a copy since we will be edting the array as we iterate through\n const arrPanelCpy = [...this.panels];\n for (const panel of arrPanelCpy) {\n this.doClose(panel);\n }\n }\n else {\n this.accessor.removeGroup(this.groupPanel);\n }\n }\n closePanel(panel) {\n this.doClose(panel);\n }\n doClose(panel) {\n const isLast = this.panels.length === 1 && this.accessor.groups.length === 1;\n this.accessor.removePanel(panel, isLast && this.accessor.options.noPanelsOverlay === 'emptyGroup'\n ? { removeEmptyGroup: false }\n : undefined);\n }\n isPanelActive(panel) {\n return this._activePanel === panel;\n }\n updateActions(element) {\n this.tabsContainer.setRightActionsElement(element);\n }\n setActive(isGroupActive, force = false) {\n if (!force && this.isActive === isGroupActive) {\n return;\n }\n this._isGroupActive = isGroupActive;\n toggleClass(this.container, 'dv-active-group', isGroupActive);\n toggleClass(this.container, 'dv-inactive-group', !isGroupActive);\n this.tabsContainer.setActive(this.isActive);\n if (!this._activePanel && this.panels.length > 0) {\n this.doSetActivePanel(this.panels[0]);\n }\n this.updateContainer();\n }\n layout(width, height) {\n var _a;\n this._width = width;\n this._height = height;\n this.contentContainer.layout(this._width, this._height);\n if ((_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.layout) {\n this._activePanel.layout(this._width, this._height);\n }\n }\n _removePanel(panel, options) {\n const isActivePanel = this._activePanel === panel;\n this.doRemovePanel(panel);\n if (isActivePanel && this.panels.length > 0) {\n const nextPanel = this.mostRecentlyUsed[0];\n this.openPanel(nextPanel, {\n skipSetActive: options.skipSetActive,\n skipSetGroupActive: options.skipSetActiveGroup,\n });\n }\n if (this._activePanel && this.panels.length === 0) {\n this.doSetActivePanel(undefined);\n }\n if (!options.skipSetActive) {\n this.updateContainer();\n }\n return panel;\n }\n doRemovePanel(panel) {\n const index = this.panels.indexOf(panel);\n if (this._activePanel === panel) {\n this.contentContainer.closePanel();\n }\n this.tabsContainer.delete(panel.id);\n this._panels.splice(index, 1);\n if (this.mostRecentlyUsed.includes(panel)) {\n const index = this.mostRecentlyUsed.indexOf(panel);\n this.mostRecentlyUsed.splice(index, 1);\n }\n const disposable = this._panelDisposables.get(panel.id);\n if (disposable) {\n disposable.dispose();\n this._panelDisposables.delete(panel.id);\n }\n this._onDidRemovePanel.fire({ panel });\n }\n doAddPanel(panel, index = this.panels.length, options = { skipSetActive: false }) {\n const existingPanel = this._panels.indexOf(panel);\n const hasExistingPanel = existingPanel > -1;\n this.tabsContainer.show();\n this.contentContainer.show();\n this.tabsContainer.openPanel(panel, index);\n if (!options.skipSetActive) {\n this.contentContainer.openPanel(panel);\n }\n if (hasExistingPanel) {\n // TODO - need to ensure ordering hasn't changed and if it has need to re-order this.panels\n return;\n }\n this.updateMru(panel);\n this.panels.splice(index, 0, panel);\n this._panelDisposables.set(panel.id, new CompositeDisposable(panel.api.onDidTitleChange((event) => this._onDidPanelTitleChange.fire(event)), panel.api.onDidParametersChange((event) => this._onDidPanelParametersChange.fire(event))));\n this._onDidAddPanel.fire({ panel });\n }\n doSetActivePanel(panel) {\n if (this._activePanel === panel) {\n return;\n }\n this._activePanel = panel;\n if (panel) {\n this.tabsContainer.setActivePanel(panel);\n panel.layout(this._width, this._height);\n this.updateMru(panel);\n this._onDidActivePanelChange.fire({\n panel,\n });\n }\n }\n updateMru(panel) {\n if (this.mostRecentlyUsed.includes(panel)) {\n this.mostRecentlyUsed.splice(this.mostRecentlyUsed.indexOf(panel), 1);\n }\n this.mostRecentlyUsed = [panel, ...this.mostRecentlyUsed];\n }\n updateContainer() {\n var _a, _b;\n this.panels.forEach((panel) => panel.runEvents());\n if (this.isEmpty && !this.watermark) {\n const watermark = this.accessor.createWatermarkComponent();\n watermark.init({\n containerApi: this._api,\n group: this.groupPanel,\n });\n this.watermark = watermark;\n addDisposableListener(this.watermark.element, 'pointerdown', () => {\n if (!this.isActive) {\n this.accessor.doSetGroupActive(this.groupPanel);\n }\n });\n this.contentContainer.element.appendChild(this.watermark.element);\n }\n if (!this.isEmpty && this.watermark) {\n this.watermark.element.remove();\n (_b = (_a = this.watermark).dispose) === null || _b === void 0 ? void 0 : _b.call(_a);\n this.watermark = undefined;\n }\n }\n canDisplayOverlay(event, position, target) {\n const firedEvent = new DockviewUnhandledDragOverEvent(event, target, position, getPanelData, this.accessor.getPanel(this.id));\n this._onUnhandledDragOverEvent.fire(firedEvent);\n return firedEvent.isAccepted;\n }\n handleDropEvent(type, event, position, index) {\n if (this.locked === 'no-drop-target') {\n return;\n }\n function getKind() {\n switch (type) {\n case 'header':\n return typeof index === 'number' ? 'tab' : 'header_space';\n case 'content':\n return 'content';\n }\n }\n const panel = typeof index === 'number' ? this.panels[index] : undefined;\n const willDropEvent = new DockviewWillDropEvent({\n nativeEvent: event,\n position,\n panel,\n getData: () => getPanelData(),\n kind: getKind(),\n group: this.groupPanel,\n api: this._api,\n });\n this._onWillDrop.fire(willDropEvent);\n if (willDropEvent.defaultPrevented) {\n return;\n }\n const data = getPanelData();\n if (data && data.viewId === this.accessor.id) {\n if (type === 'content') {\n if (data.groupId === this.id) {\n // don't allow to drop on self for center position\n if (position === 'center') {\n return;\n }\n if (data.panelId === null) {\n // don't allow group move to drop anywhere on self\n return;\n }\n }\n }\n if (type === 'header') {\n if (data.groupId === this.id) {\n if (data.panelId === null) {\n return;\n }\n }\n }\n if (data.panelId === null) {\n // this is a group move dnd event\n const { groupId } = data;\n this._onMove.fire({\n target: position,\n groupId: groupId,\n index,\n });\n return;\n }\n const fromSameGroup = this.tabsContainer.indexOf(data.panelId) !== -1;\n if (fromSameGroup && this.tabsContainer.size === 1) {\n return;\n }\n const { groupId, panelId } = data;\n const isSameGroup = this.id === groupId;\n if (isSameGroup && !position) {\n const oldIndex = this.tabsContainer.indexOf(panelId);\n if (oldIndex === index) {\n return;\n }\n }\n this._onMove.fire({\n target: position,\n groupId: data.groupId,\n itemId: data.panelId,\n index,\n });\n }\n else {\n this._onDidDrop.fire(new DockviewDidDropEvent({\n nativeEvent: event,\n position,\n panel,\n getData: () => getPanelData(),\n group: this.groupPanel,\n api: this._api,\n }));\n }\n }\n updateDragAndDropState() {\n this.tabsContainer.updateDragAndDropState();\n }\n dispose() {\n var _a, _b, _c;\n super.dispose();\n (_a = this.watermark) === null || _a === void 0 ? void 0 : _a.element.remove();\n (_c = (_b = this.watermark) === null || _b === void 0 ? void 0 : _b.dispose) === null || _c === void 0 ? void 0 : _c.call(_b);\n this.watermark = undefined;\n for (const panel of this.panels) {\n panel.dispose();\n }\n this.tabsContainer.dispose();\n this.contentContainer.dispose();\n }\n}\n","import { Emitter } from '../events';\nimport { PanelApiImpl } from './panelApi';\nexport class GridviewPanelApiImpl extends PanelApiImpl {\n constructor(id, component, panel) {\n super(id, component);\n this._onDidConstraintsChangeInternal = new Emitter();\n this.onDidConstraintsChangeInternal = this._onDidConstraintsChangeInternal.event;\n this._onDidConstraintsChange = new Emitter();\n this.onDidConstraintsChange = this._onDidConstraintsChange.event;\n this._onDidSizeChange = new Emitter();\n this.onDidSizeChange = this._onDidSizeChange.event;\n this.addDisposables(this._onDidConstraintsChangeInternal, this._onDidConstraintsChange, this._onDidSizeChange);\n if (panel) {\n this.initialize(panel);\n }\n }\n setConstraints(value) {\n this._onDidConstraintsChangeInternal.fire(value);\n }\n setSize(event) {\n this._onDidSizeChange.fire(event);\n }\n}\n","import { BasePanelView, } from './basePanelView';\nimport { GridviewPanelApiImpl, } from '../api/gridviewPanelApi';\nimport { Emitter } from '../events';\nexport class GridviewPanel extends BasePanelView {\n get priority() {\n return this._priority;\n }\n get snap() {\n return this._snap;\n }\n get minimumWidth() {\n /**\n * defer to protected function to allow subclasses to override easily.\n * see https://github.com/microsoft/TypeScript/issues/338\n */\n return this.__minimumWidth();\n }\n get minimumHeight() {\n /**\n * defer to protected function to allow subclasses to override easily.\n * see https://github.com/microsoft/TypeScript/issues/338\n */\n return this.__minimumHeight();\n }\n get maximumHeight() {\n /**\n * defer to protected function to allow subclasses to override easily.\n * see https://github.com/microsoft/TypeScript/issues/338\n */\n return this.__maximumHeight();\n }\n get maximumWidth() {\n /**\n * defer to protected function to allow subclasses to override easily.\n * see https://github.com/microsoft/TypeScript/issues/338\n */\n return this.__maximumWidth();\n }\n __minimumWidth() {\n const width = typeof this._minimumWidth === 'function'\n ? this._minimumWidth()\n : this._minimumWidth;\n if (width !== this._evaluatedMinimumWidth) {\n this._evaluatedMinimumWidth = width;\n this.updateConstraints();\n }\n return width;\n }\n __maximumWidth() {\n const width = typeof this._maximumWidth === 'function'\n ? this._maximumWidth()\n : this._maximumWidth;\n if (width !== this._evaluatedMaximumWidth) {\n this._evaluatedMaximumWidth = width;\n this.updateConstraints();\n }\n return width;\n }\n __minimumHeight() {\n const height = typeof this._minimumHeight === 'function'\n ? this._minimumHeight()\n : this._minimumHeight;\n if (height !== this._evaluatedMinimumHeight) {\n this._evaluatedMinimumHeight = height;\n this.updateConstraints();\n }\n return height;\n }\n __maximumHeight() {\n const height = typeof this._maximumHeight === 'function'\n ? this._maximumHeight()\n : this._maximumHeight;\n if (height !== this._evaluatedMaximumHeight) {\n this._evaluatedMaximumHeight = height;\n this.updateConstraints();\n }\n return height;\n }\n get isActive() {\n return this.api.isActive;\n }\n get isVisible() {\n return this.api.isVisible;\n }\n constructor(id, component, options, api) {\n super(id, component, api !== null && api !== void 0 ? api : new GridviewPanelApiImpl(id, component));\n this._evaluatedMinimumWidth = 0;\n this._evaluatedMaximumWidth = Number.MAX_SAFE_INTEGER;\n this._evaluatedMinimumHeight = 0;\n this._evaluatedMaximumHeight = Number.MAX_SAFE_INTEGER;\n this._minimumWidth = 0;\n this._minimumHeight = 0;\n this._maximumWidth = Number.MAX_SAFE_INTEGER;\n this._maximumHeight = Number.MAX_SAFE_INTEGER;\n this._snap = false;\n this._onDidChange = new Emitter();\n this.onDidChange = this._onDidChange.event;\n if (typeof (options === null || options === void 0 ? void 0 : options.minimumWidth) === 'number') {\n this._minimumWidth = options.minimumWidth;\n }\n if (typeof (options === null || options === void 0 ? void 0 : options.maximumWidth) === 'number') {\n this._maximumWidth = options.maximumWidth;\n }\n if (typeof (options === null || options === void 0 ? void 0 : options.minimumHeight) === 'number') {\n this._minimumHeight = options.minimumHeight;\n }\n if (typeof (options === null || options === void 0 ? void 0 : options.maximumHeight) === 'number') {\n this._maximumHeight = options.maximumHeight;\n }\n this.api.initialize(this); // TODO: required to by-pass 'super before this' requirement\n this.addDisposables(this.api.onWillVisibilityChange((event) => {\n const { isVisible } = event;\n const { accessor } = this._params;\n accessor.setVisible(this, isVisible);\n }), this.api.onActiveChange(() => {\n const { accessor } = this._params;\n accessor.doSetGroupActive(this);\n }), this.api.onDidConstraintsChangeInternal((event) => {\n if (typeof event.minimumWidth === 'number' ||\n typeof event.minimumWidth === 'function') {\n this._minimumWidth = event.minimumWidth;\n }\n if (typeof event.minimumHeight === 'number' ||\n typeof event.minimumHeight === 'function') {\n this._minimumHeight = event.minimumHeight;\n }\n if (typeof event.maximumWidth === 'number' ||\n typeof event.maximumWidth === 'function') {\n this._maximumWidth = event.maximumWidth;\n }\n if (typeof event.maximumHeight === 'number' ||\n typeof event.maximumHeight === 'function') {\n this._maximumHeight = event.maximumHeight;\n }\n }), this.api.onDidSizeChange((event) => {\n this._onDidChange.fire({\n height: event.height,\n width: event.width,\n });\n }), this._onDidChange);\n }\n setVisible(isVisible) {\n this.api._onDidVisibilityChange.fire({ isVisible });\n }\n setActive(isActive) {\n this.api._onDidActiveChange.fire({ isActive });\n }\n init(parameters) {\n if (parameters.maximumHeight) {\n this._maximumHeight = parameters.maximumHeight;\n }\n if (parameters.minimumHeight) {\n this._minimumHeight = parameters.minimumHeight;\n }\n if (parameters.maximumWidth) {\n this._maximumWidth = parameters.maximumWidth;\n }\n if (parameters.minimumWidth) {\n this._minimumWidth = parameters.minimumWidth;\n }\n this._priority = parameters.priority;\n this._snap = !!parameters.snap;\n super.init(parameters);\n if (typeof parameters.isVisible === 'boolean') {\n this.setVisible(parameters.isVisible);\n }\n }\n updateConstraints() {\n this.api._onDidConstraintsChange.fire({\n minimumWidth: this._evaluatedMinimumWidth,\n maximumWidth: this._evaluatedMaximumWidth,\n minimumHeight: this._evaluatedMinimumHeight,\n maximumHeight: this._evaluatedMaximumHeight,\n });\n }\n toJSON() {\n const state = super.toJSON();\n const maximum = (value) => value === Number.MAX_SAFE_INTEGER ? undefined : value;\n const minimum = (value) => (value <= 0 ? undefined : value);\n return Object.assign(Object.assign({}, state), { minimumHeight: minimum(this.minimumHeight), maximumHeight: maximum(this.maximumHeight), minimumWidth: minimum(this.minimumWidth), maximumWidth: maximum(this.maximumWidth), snap: this.snap, priority: this.priority });\n }\n}\n","import { positionToDirection } from '../dnd/droptarget';\nimport { Emitter } from '../events';\nimport { GridviewPanelApiImpl } from './gridviewPanelApi';\nconst NOT_INITIALIZED_MESSAGE = 'dockview: DockviewGroupPanelApiImpl not initialized';\nexport class DockviewGroupPanelApiImpl extends GridviewPanelApiImpl {\n get location() {\n if (!this._group) {\n throw new Error(NOT_INITIALIZED_MESSAGE);\n }\n return this._group.model.location;\n }\n constructor(id, accessor) {\n super(id, '__dockviewgroup__');\n this.accessor = accessor;\n this._onDidLocationChange = new Emitter();\n this.onDidLocationChange = this._onDidLocationChange.event;\n this._onDidActivePanelChange = new Emitter();\n this.onDidActivePanelChange = this._onDidActivePanelChange.event;\n this.addDisposables(this._onDidLocationChange, this._onDidActivePanelChange);\n }\n close() {\n if (!this._group) {\n return;\n }\n return this.accessor.removeGroup(this._group);\n }\n getWindow() {\n return this.location.type === 'popout'\n ? this.location.getWindow()\n : window;\n }\n moveTo(options) {\n var _a, _b, _c, _d;\n if (!this._group) {\n throw new Error(NOT_INITIALIZED_MESSAGE);\n }\n const group = (_a = options.group) !== null && _a !== void 0 ? _a : this.accessor.addGroup({\n direction: positionToDirection((_b = options.position) !== null && _b !== void 0 ? _b : 'right'),\n skipSetActive: (_c = options.skipSetActive) !== null && _c !== void 0 ? _c : false,\n });\n this.accessor.moveGroupOrPanel({\n from: { groupId: this._group.id },\n to: {\n group,\n position: options.group\n ? (_d = options.position) !== null && _d !== void 0 ? _d : 'center'\n : 'center',\n index: options.index,\n },\n skipSetActive: options.skipSetActive,\n });\n }\n maximize() {\n if (!this._group) {\n throw new Error(NOT_INITIALIZED_MESSAGE);\n }\n if (this.location.type !== 'grid') {\n // only grid groups can be maximized\n return;\n }\n this.accessor.maximizeGroup(this._group);\n }\n isMaximized() {\n if (!this._group) {\n throw new Error(NOT_INITIALIZED_MESSAGE);\n }\n return this.accessor.isMaximizedGroup(this._group);\n }\n exitMaximized() {\n if (!this._group) {\n throw new Error(NOT_INITIALIZED_MESSAGE);\n }\n if (this.isMaximized()) {\n this.accessor.exitMaximizedGroup();\n }\n }\n initialize(group) {\n this._group = group;\n }\n}\n","import { DockviewGroupPanelModel, } from './dockviewGroupPanelModel';\nimport { GridviewPanel } from '../gridview/gridviewPanel';\nimport { DockviewGroupPanelApiImpl, } from '../api/dockviewGroupPanelApi';\nconst MINIMUM_DOCKVIEW_GROUP_PANEL_WIDTH = 100;\nconst MINIMUM_DOCKVIEW_GROUP_PANEL_HEIGHT = 100;\nexport class DockviewGroupPanel extends GridviewPanel {\n get minimumWidth() {\n var _a;\n const activePanelMinimumWidth = (_a = this.activePanel) === null || _a === void 0 ? void 0 : _a.minimumWidth;\n if (typeof activePanelMinimumWidth === 'number') {\n return activePanelMinimumWidth;\n }\n return super.__minimumWidth();\n }\n get minimumHeight() {\n var _a;\n const activePanelMinimumHeight = (_a = this.activePanel) === null || _a === void 0 ? void 0 : _a.minimumHeight;\n if (typeof activePanelMinimumHeight === 'number') {\n return activePanelMinimumHeight;\n }\n return super.__minimumHeight();\n }\n get maximumWidth() {\n var _a;\n const activePanelMaximumWidth = (_a = this.activePanel) === null || _a === void 0 ? void 0 : _a.maximumWidth;\n if (typeof activePanelMaximumWidth === 'number') {\n return activePanelMaximumWidth;\n }\n return super.__maximumWidth();\n }\n get maximumHeight() {\n var _a;\n const activePanelMaximumHeight = (_a = this.activePanel) === null || _a === void 0 ? void 0 : _a.maximumHeight;\n if (typeof activePanelMaximumHeight === 'number') {\n return activePanelMaximumHeight;\n }\n return super.__maximumHeight();\n }\n get panels() {\n return this._model.panels;\n }\n get activePanel() {\n return this._model.activePanel;\n }\n get size() {\n return this._model.size;\n }\n get model() {\n return this._model;\n }\n get locked() {\n return this._model.locked;\n }\n set locked(value) {\n this._model.locked = value;\n }\n get header() {\n return this._model.header;\n }\n constructor(accessor, id, options) {\n var _a, _b, _c, _d, _e, _f;\n super(id, 'groupview_default', {\n minimumHeight: (_b = (_a = options.constraints) === null || _a === void 0 ? void 0 : _a.minimumHeight) !== null && _b !== void 0 ? _b : MINIMUM_DOCKVIEW_GROUP_PANEL_HEIGHT,\n minimumWidth: (_d = (_c = options.constraints) === null || _c === void 0 ? void 0 : _c.maximumHeight) !== null && _d !== void 0 ? _d : MINIMUM_DOCKVIEW_GROUP_PANEL_WIDTH,\n maximumHeight: (_e = options.constraints) === null || _e === void 0 ? void 0 : _e.maximumHeight,\n maximumWidth: (_f = options.constraints) === null || _f === void 0 ? void 0 : _f.maximumWidth,\n }, new DockviewGroupPanelApiImpl(id, accessor));\n this.api.initialize(this); // cannot use 'this' after after 'super' call\n this._model = new DockviewGroupPanelModel(this.element, accessor, id, options, this);\n this.addDisposables(this.model.onDidActivePanelChange((event) => {\n this.api._onDidActivePanelChange.fire(event);\n }));\n }\n focus() {\n if (!this.api.isActive) {\n this.api.setActive();\n }\n super.focus();\n }\n initialize() {\n this._model.initialize();\n }\n setActive(isActive) {\n super.setActive(isActive);\n this.model.setActive(isActive);\n }\n layout(width, height) {\n super.layout(width, height);\n this.model.layout(width, height);\n }\n getComponent() {\n return this._model;\n }\n toJSON() {\n return this.model.toJSON();\n }\n}\n","export const themeDark = {\n name: 'dark',\n className: 'dockview-theme-dark',\n};\nexport const themeLight = {\n name: 'light',\n className: 'dockview-theme-light',\n};\nexport const themeVisualStudio = {\n name: 'visualStudio',\n className: 'dockview-theme-vs',\n};\nexport const themeAbyss = {\n name: 'abyss',\n className: 'dockview-theme-abyss',\n};\nexport const themeDracula = {\n name: 'dracula',\n className: 'dockview-theme-dracula',\n};\nexport const themeReplit = {\n name: 'replit',\n className: 'dockview-theme-replit',\n gap: 10,\n};\nexport const themeAbyssSpaced = {\n name: 'abyssSpaced',\n className: 'dockview-theme-abyss-spaced',\n gap: 10,\n dndOverlayMounting: 'absolute',\n dndPanelOverlay: 'group',\n};\nexport const themeLightSpaced = {\n name: 'lightSpaced',\n className: 'dockview-theme-light-spaced',\n gap: 10,\n dndOverlayMounting: 'absolute',\n dndPanelOverlay: 'group',\n};\n","import { Emitter } from '../events';\nimport { GridviewPanelApiImpl } from './gridviewPanelApi';\nimport { CompositeDisposable, MutableDisposable } from '../lifecycle';\nexport class DockviewPanelApiImpl extends GridviewPanelApiImpl {\n get location() {\n return this.group.api.location;\n }\n get title() {\n return this.panel.title;\n }\n get isGroupActive() {\n return this.group.isActive;\n }\n get renderer() {\n return this.panel.renderer;\n }\n set group(value) {\n const oldGroup = this._group;\n if (this._group !== value) {\n this._group = value;\n this._onDidGroupChange.fire({});\n this.setupGroupEventListeners(oldGroup);\n this._onDidLocationChange.fire({\n location: this.group.api.location,\n });\n }\n }\n get group() {\n return this._group;\n }\n get tabComponent() {\n return this._tabComponent;\n }\n constructor(panel, group, accessor, component, tabComponent) {\n super(panel.id, component);\n this.panel = panel;\n this.accessor = accessor;\n this._onDidTitleChange = new Emitter();\n this.onDidTitleChange = this._onDidTitleChange.event;\n this._onDidActiveGroupChange = new Emitter();\n this.onDidActiveGroupChange = this._onDidActiveGroupChange.event;\n this._onDidGroupChange = new Emitter();\n this.onDidGroupChange = this._onDidGroupChange.event;\n this._onDidRendererChange = new Emitter();\n this.onDidRendererChange = this._onDidRendererChange.event;\n this._onDidLocationChange = new Emitter();\n this.onDidLocationChange = this._onDidLocationChange.event;\n this.groupEventsDisposable = new MutableDisposable();\n this._tabComponent = tabComponent;\n this.initialize(panel);\n this._group = group;\n this.setupGroupEventListeners();\n this.addDisposables(this.groupEventsDisposable, this._onDidRendererChange, this._onDidTitleChange, this._onDidGroupChange, this._onDidActiveGroupChange, this._onDidLocationChange);\n }\n getWindow() {\n return this.group.api.getWindow();\n }\n moveTo(options) {\n var _a, _b;\n this.accessor.moveGroupOrPanel({\n from: { groupId: this._group.id, panelId: this.panel.id },\n to: {\n group: (_a = options.group) !== null && _a !== void 0 ? _a : this._group,\n position: options.group\n ? (_b = options.position) !== null && _b !== void 0 ? _b : 'center'\n : 'center',\n index: options.index,\n },\n skipSetActive: options.skipSetActive,\n });\n }\n setTitle(title) {\n this.panel.setTitle(title);\n }\n setRenderer(renderer) {\n this.panel.setRenderer(renderer);\n }\n close() {\n this.group.model.closePanel(this.panel);\n }\n maximize() {\n this.group.api.maximize();\n }\n isMaximized() {\n return this.group.api.isMaximized();\n }\n exitMaximized() {\n this.group.api.exitMaximized();\n }\n setupGroupEventListeners(previousGroup) {\n var _a;\n let _trackGroupActive = (_a = previousGroup === null || previousGroup === void 0 ? void 0 : previousGroup.isActive) !== null && _a !== void 0 ? _a : false; // prevent duplicate events with same state\n this.groupEventsDisposable.value = new CompositeDisposable(this.group.api.onDidVisibilityChange((event) => {\n const hasBecomeHidden = !event.isVisible && this.isVisible;\n const hasBecomeVisible = event.isVisible && !this.isVisible;\n const isActivePanel = this.group.model.isPanelActive(this.panel);\n if (hasBecomeHidden || (hasBecomeVisible && isActivePanel)) {\n this._onDidVisibilityChange.fire(event);\n }\n }), this.group.api.onDidLocationChange((event) => {\n if (this.group !== this.panel.group) {\n return;\n }\n this._onDidLocationChange.fire(event);\n }), this.group.api.onDidActiveChange(() => {\n if (this.group !== this.panel.group) {\n return;\n }\n if (_trackGroupActive !== this.isGroupActive) {\n _trackGroupActive = this.isGroupActive;\n this._onDidActiveGroupChange.fire({\n isActive: this.isGroupActive,\n });\n }\n }));\n }\n}\n","import { DockviewPanelApiImpl, } from '../api/dockviewPanelApi';\nimport { CompositeDisposable } from '../lifecycle';\nimport { WillFocusEvent } from '../api/panelApi';\nexport class DockviewPanel extends CompositeDisposable {\n get params() {\n return this._params;\n }\n get title() {\n return this._title;\n }\n get group() {\n return this._group;\n }\n get renderer() {\n var _a;\n return (_a = this._renderer) !== null && _a !== void 0 ? _a : this.accessor.renderer;\n }\n get minimumWidth() {\n return this._minimumWidth;\n }\n get minimumHeight() {\n return this._minimumHeight;\n }\n get maximumWidth() {\n return this._maximumWidth;\n }\n get maximumHeight() {\n return this._maximumHeight;\n }\n constructor(id, component, tabComponent, accessor, containerApi, group, view, options) {\n super();\n this.id = id;\n this.accessor = accessor;\n this.containerApi = containerApi;\n this.view = view;\n this._renderer = options.renderer;\n this._group = group;\n this._minimumWidth = options.minimumWidth;\n this._minimumHeight = options.minimumHeight;\n this._maximumWidth = options.maximumWidth;\n this._maximumHeight = options.maximumHeight;\n this.api = new DockviewPanelApiImpl(this, this._group, accessor, component, tabComponent);\n this.addDisposables(this.api.onActiveChange(() => {\n accessor.setActivePanel(this);\n }), this.api.onDidSizeChange((event) => {\n // forward the resize event to the group since if you want to resize a panel\n // you are actually just resizing the panels parent which is the group\n this.group.api.setSize(event);\n }), this.api.onDidRendererChange(() => {\n this.group.model.rerender(this);\n }));\n }\n init(params) {\n this._params = params.params;\n this.view.init(Object.assign(Object.assign({}, params), { api: this.api, containerApi: this.containerApi }));\n this.setTitle(params.title);\n }\n focus() {\n const event = new WillFocusEvent();\n this.api._onWillFocus.fire(event);\n if (event.defaultPrevented) {\n return;\n }\n if (!this.api.isActive) {\n this.api.setActive();\n }\n }\n toJSON() {\n return {\n id: this.id,\n contentComponent: this.view.contentComponent,\n tabComponent: this.view.tabComponent,\n params: Object.keys(this._params || {}).length > 0\n ? this._params\n : undefined,\n title: this.title,\n renderer: this._renderer,\n minimumHeight: this._minimumHeight,\n maximumHeight: this._maximumHeight,\n minimumWidth: this._minimumWidth,\n maximumWidth: this._maximumWidth,\n };\n }\n setTitle(title) {\n const didTitleChange = title !== this.title;\n if (didTitleChange) {\n this._title = title;\n this.api._onDidTitleChange.fire({ title });\n }\n }\n setRenderer(renderer) {\n const didChange = renderer !== this.renderer;\n if (didChange) {\n this._renderer = renderer;\n this.api._onDidRendererChange.fire({\n renderer: renderer,\n });\n }\n }\n update(event) {\n var _a;\n // merge the new parameters with the existing parameters\n this._params = Object.assign(Object.assign({}, ((_a = this._params) !== null && _a !== void 0 ? _a : {})), event.params);\n /**\n * delete new keys that have a value of undefined,\n * allow values of null\n */\n for (const key of Object.keys(event.params)) {\n if (event.params[key] === undefined) {\n delete this._params[key];\n }\n }\n // update the view with the updated props\n this.view.update({\n params: this._params,\n });\n }\n updateParentGroup(group, options) {\n this._group = group;\n this.api.group = this._group;\n const isPanelVisible = this._group.model.isPanelActive(this);\n const isActive = this.group.api.isActive && isPanelVisible;\n if (!(options === null || options === void 0 ? void 0 : options.skipSetActive)) {\n if (this.api.isActive !== isActive) {\n this.api._onDidActiveChange.fire({\n isActive: this.group.api.isActive && isPanelVisible,\n });\n }\n }\n if (this.api.isVisible !== isPanelVisible) {\n this.api._onDidVisibilityChange.fire({\n isVisible: isPanelVisible,\n });\n }\n }\n runEvents() {\n const isPanelVisible = this._group.model.isPanelActive(this);\n const isActive = this.group.api.isActive && isPanelVisible;\n if (this.api.isActive !== isActive) {\n this.api._onDidActiveChange.fire({\n isActive: this.group.api.isActive && isPanelVisible,\n });\n }\n if (this.api.isVisible !== isPanelVisible) {\n this.api._onDidVisibilityChange.fire({\n isVisible: isPanelVisible,\n });\n }\n }\n layout(width, height) {\n // TODO: Can we somehow do height without header height or indicate what the header height is?\n this.api._onDidDimensionChange.fire({\n width,\n height: height,\n });\n this.view.layout(width, height);\n }\n dispose() {\n this.api.dispose();\n this.view.dispose();\n }\n}\n","import { CompositeDisposable } from '../../../lifecycle';\nimport { addDisposableListener } from '../../../events';\nimport { createCloseButton } from '../../../svg';\nexport class DefaultTab extends CompositeDisposable {\n get element() {\n return this._element;\n }\n constructor() {\n super();\n this._element = document.createElement('div');\n this._element.className = 'dv-default-tab';\n this._content = document.createElement('div');\n this._content.className = 'dv-default-tab-content';\n this.action = document.createElement('div');\n this.action.className = 'dv-default-tab-action';\n this.action.appendChild(createCloseButton());\n this._element.appendChild(this._content);\n this._element.appendChild(this.action);\n this.render();\n }\n init(params) {\n this._title = params.title;\n this.addDisposables(params.api.onDidTitleChange((event) => {\n this._title = event.title;\n this.render();\n }), addDisposableListener(this.action, 'pointerdown', (ev) => {\n ev.preventDefault();\n }), addDisposableListener(this.action, 'click', (ev) => {\n if (ev.defaultPrevented) {\n return;\n }\n ev.preventDefault();\n params.api.close();\n }));\n this.render();\n }\n render() {\n var _a;\n if (this._content.textContent !== this._title) {\n this._content.textContent = (_a = this._title) !== null && _a !== void 0 ? _a : '';\n }\n }\n}\n","import { DefaultTab } from './components/tab/defaultTab';\nexport class DockviewPanelModel {\n get content() {\n return this._content;\n }\n get tab() {\n return this._tab;\n }\n constructor(accessor, id, contentComponent, tabComponent) {\n this.accessor = accessor;\n this.id = id;\n this.contentComponent = contentComponent;\n this.tabComponent = tabComponent;\n this._content = this.createContentComponent(this.id, contentComponent);\n this._tab = this.createTabComponent(this.id, tabComponent);\n }\n createTabRenderer(tabLocation) {\n var _a;\n const cmp = this.createTabComponent(this.id, this.tabComponent);\n if (this._params) {\n cmp.init(Object.assign(Object.assign({}, this._params), { tabLocation }));\n }\n if (this._updateEvent) {\n (_a = cmp.update) === null || _a === void 0 ? void 0 : _a.call(cmp, this._updateEvent);\n }\n return cmp;\n }\n init(params) {\n this._params = params;\n this.content.init(params);\n this.tab.init(Object.assign(Object.assign({}, params), { tabLocation: 'header' }));\n }\n layout(width, height) {\n var _a, _b;\n (_b = (_a = this.content).layout) === null || _b === void 0 ? void 0 : _b.call(_a, width, height);\n }\n update(event) {\n var _a, _b, _c, _d;\n this._updateEvent = event;\n (_b = (_a = this.content).update) === null || _b === void 0 ? void 0 : _b.call(_a, event);\n (_d = (_c = this.tab).update) === null || _d === void 0 ? void 0 : _d.call(_c, event);\n }\n dispose() {\n var _a, _b, _c, _d;\n (_b = (_a = this.content).dispose) === null || _b === void 0 ? void 0 : _b.call(_a);\n (_d = (_c = this.tab).dispose) === null || _d === void 0 ? void 0 : _d.call(_c);\n }\n createContentComponent(id, componentName) {\n return this.accessor.options.createComponent({\n id,\n name: componentName,\n });\n }\n createTabComponent(id, componentName) {\n const name = componentName !== null && componentName !== void 0 ? componentName : this.accessor.options.defaultTabComponent;\n if (name) {\n if (this.accessor.options.createTabComponent) {\n const component = this.accessor.options.createTabComponent({\n id,\n name,\n });\n if (component) {\n return component;\n }\n else {\n return new DefaultTab();\n }\n }\n console.warn(`dockview: tabComponent '${componentName}' was not found. falling back to the default tab.`);\n }\n return new DefaultTab();\n }\n}\n","import { DockviewPanel } from './dockviewPanel';\nimport { DockviewPanelModel } from './dockviewPanelModel';\nimport { DockviewApi } from '../api/component.api';\nexport class DefaultDockviewDeserialzier {\n constructor(accessor) {\n this.accessor = accessor;\n }\n fromJSON(panelData, group) {\n var _a, _b;\n const panelId = panelData.id;\n const params = panelData.params;\n const title = panelData.title;\n const viewData = panelData.view;\n const contentComponent = viewData\n ? viewData.content.id\n : (_a = panelData.contentComponent) !== null && _a !== void 0 ? _a : 'unknown';\n const tabComponent = viewData\n ? (_b = viewData.tab) === null || _b === void 0 ? void 0 : _b.id\n : panelData.tabComponent;\n const view = new DockviewPanelModel(this.accessor, panelId, contentComponent, tabComponent);\n const panel = new DockviewPanel(panelId, contentComponent, tabComponent, this.accessor, new DockviewApi(this.accessor), group, view, {\n renderer: panelData.renderer,\n minimumWidth: panelData.minimumWidth,\n minimumHeight: panelData.minimumHeight,\n maximumWidth: panelData.maximumWidth,\n maximumHeight: panelData.maximumHeight,\n });\n panel.init({\n title: title !== null && title !== void 0 ? title : panelId,\n params: params !== null && params !== void 0 ? params : {},\n });\n return panel;\n }\n}\n","import { CompositeDisposable } from '../../../lifecycle';\nexport class Watermark extends CompositeDisposable {\n get element() {\n return this._element;\n }\n constructor() {\n super();\n this._element = document.createElement('div');\n this._element.className = 'dv-watermark';\n }\n init(_params) {\n // noop\n }\n}\n","import { disableIframePointEvents, quasiDefaultPrevented, toggleClass, } from '../dom';\nimport { Emitter, addDisposableListener, } from '../events';\nimport { CompositeDisposable, MutableDisposable } from '../lifecycle';\nimport { clamp } from '../math';\nclass AriaLevelTracker {\n constructor() {\n this._orderedList = [];\n }\n push(element) {\n this._orderedList = [\n ...this._orderedList.filter((item) => item !== element),\n element,\n ];\n this.update();\n }\n destroy(element) {\n this._orderedList = this._orderedList.filter((item) => item !== element);\n this.update();\n }\n update() {\n for (let i = 0; i < this._orderedList.length; i++) {\n this._orderedList[i].setAttribute('aria-level', `${i}`);\n this._orderedList[i].style.zIndex = `calc(var(--dv-overlay-z-index, 999) + ${i * 2})`;\n }\n }\n}\nconst arialLevelTracker = new AriaLevelTracker();\nexport class Overlay extends CompositeDisposable {\n set minimumInViewportWidth(value) {\n this.options.minimumInViewportWidth = value;\n }\n set minimumInViewportHeight(value) {\n this.options.minimumInViewportHeight = value;\n }\n get element() {\n return this._element;\n }\n get isVisible() {\n return this._isVisible;\n }\n constructor(options) {\n super();\n this.options = options;\n this._element = document.createElement('div');\n this._onDidChange = new Emitter();\n this.onDidChange = this._onDidChange.event;\n this._onDidChangeEnd = new Emitter();\n this.onDidChangeEnd = this._onDidChangeEnd.event;\n this.addDisposables(this._onDidChange, this._onDidChangeEnd);\n this._element.className = 'dv-resize-container';\n this._isVisible = true;\n this.setupResize('top');\n this.setupResize('bottom');\n this.setupResize('left');\n this.setupResize('right');\n this.setupResize('topleft');\n this.setupResize('topright');\n this.setupResize('bottomleft');\n this.setupResize('bottomright');\n this._element.appendChild(this.options.content);\n this.options.container.appendChild(this._element);\n // if input bad resize within acceptable boundaries\n this.setBounds(Object.assign(Object.assign(Object.assign(Object.assign({ height: this.options.height, width: this.options.width }, ('top' in this.options && { top: this.options.top })), ('bottom' in this.options && { bottom: this.options.bottom })), ('left' in this.options && { left: this.options.left })), ('right' in this.options && { right: this.options.right })));\n arialLevelTracker.push(this._element);\n }\n setVisible(isVisible) {\n if (isVisible === this.isVisible) {\n return;\n }\n this._isVisible = isVisible;\n toggleClass(this.element, 'dv-hidden', !this.isVisible);\n }\n bringToFront() {\n arialLevelTracker.push(this._element);\n }\n setBounds(bounds = {}) {\n if (typeof bounds.height === 'number') {\n this._element.style.height = `${bounds.height}px`;\n }\n if (typeof bounds.width === 'number') {\n this._element.style.width = `${bounds.width}px`;\n }\n if ('top' in bounds && typeof bounds.top === 'number') {\n this._element.style.top = `${bounds.top}px`;\n this._element.style.bottom = 'auto';\n this.verticalAlignment = 'top';\n }\n if ('bottom' in bounds && typeof bounds.bottom === 'number') {\n this._element.style.bottom = `${bounds.bottom}px`;\n this._element.style.top = 'auto';\n this.verticalAlignment = 'bottom';\n }\n if ('left' in bounds && typeof bounds.left === 'number') {\n this._element.style.left = `${bounds.left}px`;\n this._element.style.right = 'auto';\n this.horiziontalAlignment = 'left';\n }\n if ('right' in bounds && typeof bounds.right === 'number') {\n this._element.style.right = `${bounds.right}px`;\n this._element.style.left = 'auto';\n this.horiziontalAlignment = 'right';\n }\n const containerRect = this.options.container.getBoundingClientRect();\n const overlayRect = this._element.getBoundingClientRect();\n // region: ensure bounds within allowable limits\n // a minimum width of minimumViewportWidth must be inside the viewport\n const xOffset = Math.max(0, this.getMinimumWidth(overlayRect.width));\n // a minimum height of minimumViewportHeight must be inside the viewport\n const yOffset = Math.max(0, this.getMinimumHeight(overlayRect.height));\n if (this.verticalAlignment === 'top') {\n const top = clamp(overlayRect.top - containerRect.top, -yOffset, Math.max(0, containerRect.height - overlayRect.height + yOffset));\n this._element.style.top = `${top}px`;\n this._element.style.bottom = 'auto';\n }\n if (this.verticalAlignment === 'bottom') {\n const bottom = clamp(containerRect.bottom - overlayRect.bottom, -yOffset, Math.max(0, containerRect.height - overlayRect.height + yOffset));\n this._element.style.bottom = `${bottom}px`;\n this._element.style.top = 'auto';\n }\n if (this.horiziontalAlignment === 'left') {\n const left = clamp(overlayRect.left - containerRect.left, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));\n this._element.style.left = `${left}px`;\n this._element.style.right = 'auto';\n }\n if (this.horiziontalAlignment === 'right') {\n const right = clamp(containerRect.right - overlayRect.right, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));\n this._element.style.right = `${right}px`;\n this._element.style.left = 'auto';\n }\n this._onDidChange.fire();\n }\n toJSON() {\n const container = this.options.container.getBoundingClientRect();\n const element = this._element.getBoundingClientRect();\n const result = {};\n if (this.verticalAlignment === 'top') {\n result.top = parseFloat(this._element.style.top);\n }\n else if (this.verticalAlignment === 'bottom') {\n result.bottom = parseFloat(this._element.style.bottom);\n }\n else {\n result.top = element.top - container.top;\n }\n if (this.horiziontalAlignment === 'left') {\n result.left = parseFloat(this._element.style.left);\n }\n else if (this.horiziontalAlignment === 'right') {\n result.right = parseFloat(this._element.style.right);\n }\n else {\n result.left = element.left - container.left;\n }\n result.width = element.width;\n result.height = element.height;\n return result;\n }\n setupDrag(dragTarget, options = { inDragMode: false }) {\n const move = new MutableDisposable();\n const track = () => {\n let offset = null;\n const iframes = disableIframePointEvents();\n move.value = new CompositeDisposable({\n dispose: () => {\n iframes.release();\n },\n }, addDisposableListener(window, 'pointermove', (e) => {\n const containerRect = this.options.container.getBoundingClientRect();\n const x = e.clientX - containerRect.left;\n const y = e.clientY - containerRect.top;\n toggleClass(this._element, 'dv-resize-container-dragging', true);\n const overlayRect = this._element.getBoundingClientRect();\n if (offset === null) {\n offset = {\n x: e.clientX - overlayRect.left,\n y: e.clientY - overlayRect.top,\n };\n }\n const xOffset = Math.max(0, this.getMinimumWidth(overlayRect.width));\n const yOffset = Math.max(0, this.getMinimumHeight(overlayRect.height));\n const top = clamp(y - offset.y, -yOffset, Math.max(0, containerRect.height - overlayRect.height + yOffset));\n const bottom = clamp(offset.y -\n y +\n containerRect.height -\n overlayRect.height, -yOffset, Math.max(0, containerRect.height - overlayRect.height + yOffset));\n const left = clamp(x - offset.x, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));\n const right = clamp(offset.x - x + containerRect.width - overlayRect.width, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));\n const bounds = {};\n // Anchor to top or to bottom depending on which one is closer\n if (top <= bottom) {\n bounds.top = top;\n }\n else {\n bounds.bottom = bottom;\n }\n // Anchor to left or to right depending on which one is closer\n if (left <= right) {\n bounds.left = left;\n }\n else {\n bounds.right = right;\n }\n this.setBounds(bounds);\n }), addDisposableListener(window, 'pointerup', () => {\n toggleClass(this._element, 'dv-resize-container-dragging', false);\n move.dispose();\n this._onDidChangeEnd.fire();\n }));\n };\n this.addDisposables(move, addDisposableListener(dragTarget, 'pointerdown', (event) => {\n if (event.defaultPrevented) {\n event.preventDefault();\n return;\n }\n // if somebody has marked this event then treat as a defaultPrevented\n // without actually calling event.preventDefault()\n if (quasiDefaultPrevented(event)) {\n return;\n }\n track();\n }), addDisposableListener(this.options.content, 'pointerdown', (event) => {\n if (event.defaultPrevented) {\n return;\n }\n // if somebody has marked this event then treat as a defaultPrevented\n // without actually calling event.preventDefault()\n if (quasiDefaultPrevented(event)) {\n return;\n }\n if (event.shiftKey) {\n track();\n }\n }), addDisposableListener(this.options.content, 'pointerdown', () => {\n arialLevelTracker.push(this._element);\n }, true));\n if (options.inDragMode) {\n track();\n }\n }\n setupResize(direction) {\n const resizeHandleElement = document.createElement('div');\n resizeHandleElement.className = `dv-resize-handle-${direction}`;\n this._element.appendChild(resizeHandleElement);\n const move = new MutableDisposable();\n this.addDisposables(move, addDisposableListener(resizeHandleElement, 'pointerdown', (e) => {\n e.preventDefault();\n let startPosition = null;\n const iframes = disableIframePointEvents();\n move.value = new CompositeDisposable(addDisposableListener(window, 'pointermove', (e) => {\n const containerRect = this.options.container.getBoundingClientRect();\n const overlayRect = this._element.getBoundingClientRect();\n const y = e.clientY - containerRect.top;\n const x = e.clientX - containerRect.left;\n if (startPosition === null) {\n // record the initial dimensions since as all subsequence moves are relative to this\n startPosition = {\n originalY: y,\n originalHeight: overlayRect.height,\n originalX: x,\n originalWidth: overlayRect.width,\n };\n }\n let top = undefined;\n let bottom = undefined;\n let height = undefined;\n let left = undefined;\n let right = undefined;\n let width = undefined;\n const moveTop = () => {\n top = clamp(y, -Number.MAX_VALUE, startPosition.originalY +\n startPosition.originalHeight >\n containerRect.height\n ? this.getMinimumHeight(containerRect.height)\n : Math.max(0, startPosition.originalY +\n startPosition.originalHeight -\n Overlay.MINIMUM_HEIGHT));\n height =\n startPosition.originalY +\n startPosition.originalHeight -\n top;\n bottom = containerRect.height - top - height;\n };\n const moveBottom = () => {\n top =\n startPosition.originalY -\n startPosition.originalHeight;\n height = clamp(y - top, top < 0 &&\n typeof this.options\n .minimumInViewportHeight === 'number'\n ? -top +\n this.options.minimumInViewportHeight\n : Overlay.MINIMUM_HEIGHT, Number.MAX_VALUE);\n bottom = containerRect.height - top - height;\n };\n const moveLeft = () => {\n left = clamp(x, -Number.MAX_VALUE, startPosition.originalX +\n startPosition.originalWidth >\n containerRect.width\n ? this.getMinimumWidth(containerRect.width)\n : Math.max(0, startPosition.originalX +\n startPosition.originalWidth -\n Overlay.MINIMUM_WIDTH));\n width =\n startPosition.originalX +\n startPosition.originalWidth -\n left;\n right = containerRect.width - left - width;\n };\n const moveRight = () => {\n left =\n startPosition.originalX -\n startPosition.originalWidth;\n width = clamp(x - left, left < 0 &&\n typeof this.options\n .minimumInViewportWidth === 'number'\n ? -left +\n this.options.minimumInViewportWidth\n : Overlay.MINIMUM_WIDTH, Number.MAX_VALUE);\n right = containerRect.width - left - width;\n };\n switch (direction) {\n case 'top':\n moveTop();\n break;\n case 'bottom':\n moveBottom();\n break;\n case 'left':\n moveLeft();\n break;\n case 'right':\n moveRight();\n break;\n case 'topleft':\n moveTop();\n moveLeft();\n break;\n case 'topright':\n moveTop();\n moveRight();\n break;\n case 'bottomleft':\n moveBottom();\n moveLeft();\n break;\n case 'bottomright':\n moveBottom();\n moveRight();\n break;\n }\n const bounds = {};\n // Anchor to top or to bottom depending on which one is closer\n if (top <= bottom) {\n bounds.top = top;\n }\n else {\n bounds.bottom = bottom;\n }\n // Anchor to left or to right depending on which one is closer\n if (left <= right) {\n bounds.left = left;\n }\n else {\n bounds.right = right;\n }\n bounds.height = height;\n bounds.width = width;\n this.setBounds(bounds);\n }), {\n dispose: () => {\n iframes.release();\n },\n }, addDisposableListener(window, 'pointerup', () => {\n move.dispose();\n this._onDidChangeEnd.fire();\n }));\n }));\n }\n getMinimumWidth(width) {\n if (typeof this.options.minimumInViewportWidth === 'number') {\n return width - this.options.minimumInViewportWidth;\n }\n return 0;\n }\n getMinimumHeight(height) {\n if (typeof this.options.minimumInViewportHeight === 'number') {\n return height - this.options.minimumInViewportHeight;\n }\n return 0;\n }\n dispose() {\n arialLevelTracker.destroy(this._element);\n this._element.remove();\n super.dispose();\n }\n}\nOverlay.MINIMUM_HEIGHT = 20;\nOverlay.MINIMUM_WIDTH = 20;\n","import { CompositeDisposable } from '../lifecycle';\nexport class DockviewFloatingGroupPanel extends CompositeDisposable {\n constructor(group, overlay) {\n super();\n this.group = group;\n this.overlay = overlay;\n this.addDisposables(overlay);\n }\n position(bounds) {\n this.overlay.setBounds(bounds);\n }\n}\n","export const DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE = 100;\nexport const DEFAULT_FLOATING_GROUP_POSITION = { left: 100, top: 100, width: 300, height: 300 };\nexport const DESERIALIZATION_POPOUT_DELAY_MS = 100;\n","import { DragAndDropObserver } from '../dnd/dnd';\nimport { getDomNodePagePosition, toggleClass } from '../dom';\nimport { CompositeDisposable, Disposable, MutableDisposable, } from '../lifecycle';\nclass PositionCache {\n constructor() {\n this.cache = new Map();\n this.currentFrameId = 0;\n this.rafId = null;\n }\n getPosition(element) {\n const cached = this.cache.get(element);\n if (cached && cached.frameId === this.currentFrameId) {\n return cached.rect;\n }\n this.scheduleFrameUpdate();\n const rect = getDomNodePagePosition(element);\n this.cache.set(element, { rect, frameId: this.currentFrameId });\n return rect;\n }\n invalidate() {\n this.currentFrameId++;\n }\n scheduleFrameUpdate() {\n if (this.rafId)\n return;\n this.rafId = requestAnimationFrame(() => {\n this.currentFrameId++;\n this.rafId = null;\n });\n }\n}\nfunction createFocusableElement() {\n const element = document.createElement('div');\n element.tabIndex = -1;\n return element;\n}\nexport class OverlayRenderContainer extends CompositeDisposable {\n constructor(element, accessor) {\n super();\n this.element = element;\n this.accessor = accessor;\n this.map = {};\n this._disposed = false;\n this.positionCache = new PositionCache();\n this.pendingUpdates = new Set();\n this.addDisposables(Disposable.from(() => {\n for (const value of Object.values(this.map)) {\n value.disposable.dispose();\n value.destroy.dispose();\n }\n this._disposed = true;\n }));\n }\n updateAllPositions() {\n if (this._disposed) {\n return;\n }\n // Invalidate position cache to force recalculation\n this.positionCache.invalidate();\n // Call resize function directly for all visible panels\n for (const entry of Object.values(this.map)) {\n if (entry.panel.api.isVisible && entry.resize) {\n entry.resize();\n }\n }\n }\n detatch(panel) {\n if (this.map[panel.api.id]) {\n const { disposable, destroy } = this.map[panel.api.id];\n disposable.dispose();\n destroy.dispose();\n delete this.map[panel.api.id];\n return true;\n }\n return false;\n }\n attach(options) {\n const { panel, referenceContainer } = options;\n if (!this.map[panel.api.id]) {\n const element = createFocusableElement();\n element.className = 'dv-render-overlay';\n this.map[panel.api.id] = {\n panel,\n disposable: Disposable.NONE,\n destroy: Disposable.NONE,\n element,\n };\n }\n const focusContainer = this.map[panel.api.id].element;\n if (panel.view.content.element.parentElement !== focusContainer) {\n focusContainer.appendChild(panel.view.content.element);\n }\n if (focusContainer.parentElement !== this.element) {\n this.element.appendChild(focusContainer);\n }\n const resize = () => {\n const panelId = panel.api.id;\n if (this.pendingUpdates.has(panelId)) {\n return; // Update already scheduled\n }\n this.pendingUpdates.add(panelId);\n requestAnimationFrame(() => {\n this.pendingUpdates.delete(panelId);\n if (this.isDisposed || !this.map[panelId]) {\n return;\n }\n const box = this.positionCache.getPosition(referenceContainer.element);\n const box2 = this.positionCache.getPosition(this.element);\n // Use traditional positioning for overlay containers\n const left = box.left - box2.left;\n const top = box.top - box2.top;\n const width = box.width;\n const height = box.height;\n focusContainer.style.left = `${left}px`;\n focusContainer.style.top = `${top}px`;\n focusContainer.style.width = `${width}px`;\n focusContainer.style.height = `${height}px`;\n toggleClass(focusContainer, 'dv-render-overlay-float', panel.group.api.location.type === 'floating');\n });\n };\n const visibilityChanged = () => {\n if (panel.api.isVisible) {\n this.positionCache.invalidate();\n resize();\n }\n focusContainer.style.display = panel.api.isVisible ? '' : 'none';\n };\n const observerDisposable = new MutableDisposable();\n const correctLayerPosition = () => {\n if (panel.api.location.type === 'floating') {\n queueMicrotask(() => {\n const floatingGroup = this.accessor.floatingGroups.find((group) => group.group === panel.api.group);\n if (!floatingGroup) {\n return;\n }\n const element = floatingGroup.overlay.element;\n const update = () => {\n const level = Number(element.getAttribute('aria-level'));\n focusContainer.style.zIndex = `calc(var(--dv-overlay-z-index, 999) + ${level * 2 + 1})`;\n };\n const observer = new MutationObserver(() => {\n update();\n });\n observerDisposable.value = Disposable.from(() => observer.disconnect());\n observer.observe(element, {\n attributeFilter: ['aria-level'],\n attributes: true,\n });\n update();\n });\n }\n else {\n focusContainer.style.zIndex = ''; // reset the z-index, perhaps CSS will take over here\n }\n };\n const disposable = new CompositeDisposable(observerDisposable, \n /**\n * since container is positioned absoutely we must explicitly forward\n * the dnd events for the expect behaviours to continue to occur in terms of dnd\n *\n * the dnd observer does not need to be conditional on whether the panel is visible since\n * non-visible panels are 'display: none' and in such case the dnd observer will not fire.\n */\n new DragAndDropObserver(focusContainer, {\n onDragEnd: (e) => {\n referenceContainer.dropTarget.dnd.onDragEnd(e);\n },\n onDragEnter: (e) => {\n referenceContainer.dropTarget.dnd.onDragEnter(e);\n },\n onDragLeave: (e) => {\n referenceContainer.dropTarget.dnd.onDragLeave(e);\n },\n onDrop: (e) => {\n referenceContainer.dropTarget.dnd.onDrop(e);\n },\n onDragOver: (e) => {\n referenceContainer.dropTarget.dnd.onDragOver(e);\n },\n }), panel.api.onDidVisibilityChange(() => {\n /**\n * Control the visibility of the content, however even when not visible (display: none)\n * the content is still maintained within the DOM hence DOM specific attributes\n * such as scroll position are maintained when next made visible.\n */\n visibilityChanged();\n }), panel.api.onDidDimensionsChange(() => {\n if (!panel.api.isVisible) {\n return;\n }\n resize();\n }), panel.api.onDidLocationChange(() => {\n correctLayerPosition();\n }));\n this.map[panel.api.id].destroy = Disposable.from(() => {\n var _a;\n if (panel.view.content.element.parentElement === focusContainer) {\n focusContainer.removeChild(panel.view.content.element);\n }\n (_a = focusContainer.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(focusContainer);\n });\n correctLayerPosition();\n queueMicrotask(() => {\n if (this.isDisposed) {\n return;\n }\n /**\n * wait until everything has finished in the current stack-frame call before\n * calling the first resize as other size-altering events may still occur before\n * the end of the stack-frame.\n */\n visibilityChanged();\n });\n // dispose of logic asoccciated with previous reference-container\n this.map[panel.api.id].disposable.dispose();\n // and reset the disposable to the active reference-container\n this.map[panel.api.id].disposable = disposable;\n // store the resize function for direct access\n this.map[panel.api.id].resize = resize;\n return focusContainer;\n }\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { addStyles } from './dom';\nimport { Emitter, addDisposableListener } from './events';\nimport { CompositeDisposable, Disposable } from './lifecycle';\nexport class PopoutWindow extends CompositeDisposable {\n get window() {\n var _a, _b;\n return (_b = (_a = this._window) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : null;\n }\n constructor(target, className, options) {\n super();\n this.target = target;\n this.className = className;\n this.options = options;\n this._onWillClose = new Emitter();\n this.onWillClose = this._onWillClose.event;\n this._onDidClose = new Emitter();\n this.onDidClose = this._onDidClose.event;\n this._window = null;\n this.addDisposables(this._onWillClose, this._onDidClose, {\n dispose: () => {\n this.close();\n },\n });\n }\n dimensions() {\n if (!this._window) {\n return null;\n }\n const left = this._window.value.screenX;\n const top = this._window.value.screenY;\n const width = this._window.value.innerWidth;\n const height = this._window.value.innerHeight;\n return { top, left, width, height };\n }\n close() {\n var _a, _b;\n if (this._window) {\n this._onWillClose.fire();\n (_b = (_a = this.options).onWillClose) === null || _b === void 0 ? void 0 : _b.call(_a, {\n id: this.target,\n window: this._window.value,\n });\n this._window.disposable.dispose();\n this._window = null;\n this._onDidClose.fire();\n }\n }\n open() {\n var _a, _b;\n return __awaiter(this, void 0, void 0, function* () {\n if (this._window) {\n throw new Error('instance of popout window is already open');\n }\n const url = `${this.options.url}`;\n const features = Object.entries({\n top: this.options.top,\n left: this.options.left,\n width: this.options.width,\n height: this.options.height,\n })\n .map(([key, value]) => `${key}=${value}`)\n .join(',');\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/open\n */\n const externalWindow = window.open(url, this.target, features);\n if (!externalWindow) {\n /**\n * Popup blocked\n */\n return null;\n }\n const disposable = new CompositeDisposable();\n this._window = { value: externalWindow, disposable };\n disposable.addDisposables(Disposable.from(() => {\n externalWindow.close();\n }), addDisposableListener(window, 'beforeunload', () => {\n /**\n * before the main window closes we should close this popup too\n * to be good citizens\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event\n */\n this.close();\n }));\n const container = this.createPopoutWindowContainer();\n if (this.className) {\n container.classList.add(this.className);\n }\n (_b = (_a = this.options).onDidOpen) === null || _b === void 0 ? void 0 : _b.call(_a, {\n id: this.target,\n window: externalWindow,\n });\n return new Promise((resolve, reject) => {\n externalWindow.addEventListener('unload', (e) => {\n // if page fails to load before unloading\n // this.close();\n });\n externalWindow.addEventListener('load', () => {\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/load_event\n */\n try {\n const externalDocument = externalWindow.document;\n externalDocument.title = document.title;\n externalDocument.body.appendChild(container);\n addStyles(externalDocument, window.document.styleSheets);\n /**\n * beforeunload must be registered after load for reasons I could not determine\n * otherwise the beforeunload event will not fire when the window is closed\n */\n addDisposableListener(externalWindow, 'beforeunload', () => {\n /**\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event\n */\n this.close();\n });\n resolve(container);\n }\n catch (err) {\n // only except this is the DOM isn't setup. e.g. in a in correctly configured test\n reject(err);\n }\n });\n });\n });\n }\n createPopoutWindowContainer() {\n const el = document.createElement('div');\n el.classList.add('dv-popout-window');\n el.id = 'dv-popout-window';\n el.style.position = 'absolute';\n el.style.width = '100%';\n el.style.height = '100%';\n el.style.top = '0px';\n el.style.left = '0px';\n return el;\n }\n}\n","import { CompositeDisposable } from '../lifecycle';\nexport class StrictEventsSequencing extends CompositeDisposable {\n constructor(accessor) {\n super();\n this.accessor = accessor;\n this.init();\n }\n init() {\n const panels = new Set();\n const groups = new Set();\n this.addDisposables(this.accessor.onDidAddPanel((panel) => {\n if (panels.has(panel.api.id)) {\n throw new Error(`dockview: Invalid event sequence. [onDidAddPanel] called for panel ${panel.api.id} but panel already exists`);\n }\n else {\n panels.add(panel.api.id);\n }\n }), this.accessor.onDidRemovePanel((panel) => {\n if (!panels.has(panel.api.id)) {\n throw new Error(`dockview: Invalid event sequence. [onDidRemovePanel] called for panel ${panel.api.id} but panel does not exists`);\n }\n else {\n panels.delete(panel.api.id);\n }\n }), this.accessor.onDidAddGroup((group) => {\n if (groups.has(group.api.id)) {\n throw new Error(`dockview: Invalid event sequence. [onDidAddGroup] called for group ${group.api.id} but group already exists`);\n }\n else {\n groups.add(group.api.id);\n }\n }), this.accessor.onDidRemoveGroup((group) => {\n if (!groups.has(group.api.id)) {\n throw new Error(`dockview: Invalid event sequence. [onDidRemoveGroup] called for group ${group.api.id} but group does not exists`);\n }\n else {\n groups.delete(group.api.id);\n }\n }));\n }\n}\n","import { shiftAbsoluteElementIntoView } from '../../dom';\nimport { addDisposableListener } from '../../events';\nimport { CompositeDisposable, Disposable, MutableDisposable, } from '../../lifecycle';\nexport class PopupService extends CompositeDisposable {\n constructor(root) {\n super();\n this.root = root;\n this._active = null;\n this._activeDisposable = new MutableDisposable();\n this._element = document.createElement('div');\n this._element.className = 'dv-popover-anchor';\n this._element.style.position = 'relative';\n this.root.prepend(this._element);\n this.addDisposables(Disposable.from(() => {\n this.close();\n }), this._activeDisposable);\n }\n openPopover(element, position) {\n var _a;\n this.close();\n const wrapper = document.createElement('div');\n wrapper.style.position = 'absolute';\n wrapper.style.zIndex = (_a = position.zIndex) !== null && _a !== void 0 ? _a : 'var(--dv-overlay-z-index)';\n wrapper.appendChild(element);\n const anchorBox = this._element.getBoundingClientRect();\n const offsetX = anchorBox.left;\n const offsetY = anchorBox.top;\n wrapper.style.top = `${position.y - offsetY}px`;\n wrapper.style.left = `${position.x - offsetX}px`;\n this._element.appendChild(wrapper);\n this._active = wrapper;\n this._activeDisposable.value = new CompositeDisposable(addDisposableListener(window, 'pointerdown', (event) => {\n var _a;\n const target = event.target;\n if (!(target instanceof HTMLElement)) {\n return;\n }\n let el = target;\n while (el && el !== wrapper) {\n el = (_a = el === null || el === void 0 ? void 0 : el.parentElement) !== null && _a !== void 0 ? _a : null;\n }\n if (el) {\n return; // clicked within popover\n }\n this.close();\n }));\n requestAnimationFrame(() => {\n shiftAbsoluteElementIntoView(wrapper, this.root);\n });\n }\n close() {\n if (this._active) {\n this._active.remove();\n this._activeDisposable.dispose();\n this._active = null;\n }\n }\n}\n","import { CompositeDisposable, Disposable } from '../lifecycle';\nexport class DropTargetAnchorContainer extends CompositeDisposable {\n get disabled() {\n return this._disabled;\n }\n set disabled(value) {\n var _a;\n if (this.disabled === value) {\n return;\n }\n this._disabled = value;\n if (value) {\n (_a = this.model) === null || _a === void 0 ? void 0 : _a.clear();\n }\n }\n get model() {\n if (this.disabled) {\n return undefined;\n }\n return {\n clear: () => {\n var _a;\n if (this._model) {\n (_a = this._model.root.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(this._model.root);\n }\n this._model = undefined;\n },\n exists: () => {\n return !!this._model;\n },\n getElements: (event, outline) => {\n const changed = this._outline !== outline;\n this._outline = outline;\n if (this._model) {\n this._model.changed = changed;\n return this._model;\n }\n const container = this.createContainer();\n const anchor = this.createAnchor();\n this._model = { root: container, overlay: anchor, changed };\n container.appendChild(anchor);\n this.element.appendChild(container);\n if ((event === null || event === void 0 ? void 0 : event.target) instanceof HTMLElement) {\n const targetBox = event.target.getBoundingClientRect();\n const box = this.element.getBoundingClientRect();\n anchor.style.left = `${targetBox.left - box.left}px`;\n anchor.style.top = `${targetBox.top - box.top}px`;\n }\n return this._model;\n },\n };\n }\n constructor(element, options) {\n super();\n this.element = element;\n this._disabled = false;\n this._disabled = options.disabled;\n this.addDisposables(Disposable.from(() => {\n var _a;\n (_a = this.model) === null || _a === void 0 ? void 0 : _a.clear();\n }));\n }\n createContainer() {\n const el = document.createElement('div');\n el.className = 'dv-drop-target-container';\n return el;\n }\n createAnchor() {\n const el = document.createElement('div');\n el.className = 'dv-drop-target-anchor';\n el.style.visibility = 'hidden';\n return el;\n }\n}\n","import { getRelativeLocation, getGridLocation, orthogonal, } from '../gridview/gridview';\nimport { directionToPosition, Droptarget, } from '../dnd/droptarget';\nimport { tail, sequenceEquals, remove } from '../array';\nimport { DockviewPanel } from './dockviewPanel';\nimport { CompositeDisposable, Disposable } from '../lifecycle';\nimport { Event, Emitter, addDisposableListener } from '../events';\nimport { Watermark } from './components/watermark/watermark';\nimport { sequentialNumberGenerator } from '../math';\nimport { DefaultDockviewDeserialzier } from './deserializer';\nimport { DockviewUnhandledDragOverEvent, isGroupOptionsWithGroup, isGroupOptionsWithPanel, isPanelOptionsWithGroup, isPanelOptionsWithPanel, } from './options';\nimport { BaseGrid, toTarget, } from '../gridview/baseComponentGridview';\nimport { DockviewApi } from '../api/component.api';\nimport { Orientation } from '../splitview/splitview';\nimport { DockviewDidDropEvent, DockviewWillDropEvent, } from './dockviewGroupPanelModel';\nimport { WillShowOverlayLocationEvent } from './events';\nimport { DockviewGroupPanel } from './dockviewGroupPanel';\nimport { DockviewPanelModel } from './dockviewPanelModel';\nimport { getPanelData } from '../dnd/dataTransfer';\nimport { Overlay } from '../overlay/overlay';\nimport { addTestId, Classnames, getDockviewTheme, onDidWindowResizeEnd, onDidWindowMoveEnd, toggleClass, watchElementResize, } from '../dom';\nimport { DockviewFloatingGroupPanel } from './dockviewFloatingGroupPanel';\nimport { DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE, DEFAULT_FLOATING_GROUP_POSITION, DESERIALIZATION_POPOUT_DELAY_MS, } from '../constants';\nimport { OverlayRenderContainer, } from '../overlay/overlayRenderContainer';\nimport { PopoutWindow } from '../popoutWindow';\nimport { StrictEventsSequencing } from './strictEventsSequencing';\nimport { PopupService } from './components/popupService';\nimport { DropTargetAnchorContainer } from '../dnd/dropTargetAnchorContainer';\nimport { themeAbyss } from './theme';\nconst DEFAULT_ROOT_OVERLAY_MODEL = {\n activationSize: { type: 'pixels', value: 10 },\n size: { type: 'pixels', value: 20 },\n};\nfunction moveGroupWithoutDestroying(options) {\n const activePanel = options.from.activePanel;\n const panels = [...options.from.panels].map((panel) => {\n const removedPanel = options.from.model.removePanel(panel);\n options.from.model.renderContainer.detatch(panel);\n return removedPanel;\n });\n panels.forEach((panel) => {\n options.to.model.openPanel(panel, {\n skipSetActive: activePanel !== panel,\n skipSetGroupActive: true,\n });\n });\n}\nexport class DockviewComponent extends BaseGrid {\n get orientation() {\n return this.gridview.orientation;\n }\n get totalPanels() {\n return this.panels.length;\n }\n get panels() {\n return this.groups.flatMap((group) => group.panels);\n }\n get options() {\n return this._options;\n }\n get activePanel() {\n const activeGroup = this.activeGroup;\n if (!activeGroup) {\n return undefined;\n }\n return activeGroup.activePanel;\n }\n get renderer() {\n var _a;\n return (_a = this.options.defaultRenderer) !== null && _a !== void 0 ? _a : 'onlyWhenVisible';\n }\n get api() {\n return this._api;\n }\n get floatingGroups() {\n return this._floatingGroups;\n }\n /**\n * Promise that resolves when all popout groups from the last fromJSON call are restored.\n * Useful for tests that need to wait for delayed popout creation.\n */\n get popoutRestorationPromise() {\n return this._popoutRestorationPromise;\n }\n constructor(container, options) {\n var _a, _b, _c;\n super(container, {\n proportionalLayout: true,\n orientation: Orientation.HORIZONTAL,\n styles: options.hideBorders\n ? { separatorBorder: 'transparent' }\n : undefined,\n disableAutoResizing: options.disableAutoResizing,\n locked: options.locked,\n margin: (_b = (_a = options.theme) === null || _a === void 0 ? void 0 : _a.gap) !== null && _b !== void 0 ? _b : 0,\n className: options.className,\n });\n this.nextGroupId = sequentialNumberGenerator();\n this._deserializer = new DefaultDockviewDeserialzier(this);\n this._watermark = null;\n this._onWillDragPanel = new Emitter();\n this.onWillDragPanel = this._onWillDragPanel.event;\n this._onWillDragGroup = new Emitter();\n this.onWillDragGroup = this._onWillDragGroup.event;\n this._onDidDrop = new Emitter();\n this.onDidDrop = this._onDidDrop.event;\n this._onWillDrop = new Emitter();\n this.onWillDrop = this._onWillDrop.event;\n this._onWillShowOverlay = new Emitter();\n this.onWillShowOverlay = this._onWillShowOverlay.event;\n this._onUnhandledDragOverEvent = new Emitter();\n this.onUnhandledDragOverEvent = this._onUnhandledDragOverEvent.event;\n this._onDidRemovePanel = new Emitter();\n this.onDidRemovePanel = this._onDidRemovePanel.event;\n this._onDidAddPanel = new Emitter();\n this.onDidAddPanel = this._onDidAddPanel.event;\n this._onDidPopoutGroupSizeChange = new Emitter();\n this.onDidPopoutGroupSizeChange = this._onDidPopoutGroupSizeChange.event;\n this._onDidPopoutGroupPositionChange = new Emitter();\n this.onDidPopoutGroupPositionChange = this._onDidPopoutGroupPositionChange.event;\n this._onDidOpenPopoutWindowFail = new Emitter();\n this.onDidOpenPopoutWindowFail = this._onDidOpenPopoutWindowFail.event;\n this._onDidLayoutFromJSON = new Emitter();\n this.onDidLayoutFromJSON = this._onDidLayoutFromJSON.event;\n this._onDidActivePanelChange = new Emitter({ replay: true });\n this.onDidActivePanelChange = this._onDidActivePanelChange.event;\n this._onDidMovePanel = new Emitter();\n this.onDidMovePanel = this._onDidMovePanel.event;\n this._onDidMaximizedGroupChange = new Emitter();\n this.onDidMaximizedGroupChange = this._onDidMaximizedGroupChange.event;\n this._floatingGroups = [];\n this._popoutGroups = [];\n this._popoutRestorationPromise = Promise.resolve();\n this._onDidRemoveGroup = new Emitter();\n this.onDidRemoveGroup = this._onDidRemoveGroup.event;\n this._onDidAddGroup = new Emitter();\n this.onDidAddGroup = this._onDidAddGroup.event;\n this._onDidOptionsChange = new Emitter();\n this.onDidOptionsChange = this._onDidOptionsChange.event;\n this._onDidActiveGroupChange = new Emitter();\n this.onDidActiveGroupChange = this._onDidActiveGroupChange.event;\n this._moving = false;\n this._options = options;\n this.popupService = new PopupService(this.element);\n this._themeClassnames = new Classnames(this.element);\n this._api = new DockviewApi(this);\n this.rootDropTargetContainer = new DropTargetAnchorContainer(this.element, { disabled: true });\n this.overlayRenderContainer = new OverlayRenderContainer(this.gridview.element, this);\n this._rootDropTarget = new Droptarget(this.element, {\n className: 'dv-drop-target-edge',\n canDisplayOverlay: (event, position) => {\n const data = getPanelData();\n if (data) {\n if (data.viewId !== this.id) {\n return false;\n }\n if (position === 'center') {\n // center drop target is only allowed if there are no panels in the grid\n // floating panels are allowed\n return this.gridview.length === 0;\n }\n return true;\n }\n if (position === 'center' && this.gridview.length !== 0) {\n /**\n * for external events only show the four-corner drag overlays, disable\n * the center position so that external drag events can fall through to the group\n * and panel drop target handlers\n */\n return false;\n }\n const firedEvent = new DockviewUnhandledDragOverEvent(event, 'edge', position, getPanelData);\n this._onUnhandledDragOverEvent.fire(firedEvent);\n return firedEvent.isAccepted;\n },\n acceptedTargetZones: ['top', 'bottom', 'left', 'right', 'center'],\n overlayModel: (_c = options.rootOverlayModel) !== null && _c !== void 0 ? _c : DEFAULT_ROOT_OVERLAY_MODEL,\n getOverrideTarget: () => { var _a; return (_a = this.rootDropTargetContainer) === null || _a === void 0 ? void 0 : _a.model; },\n });\n this.updateDropTargetModel(options);\n toggleClass(this.gridview.element, 'dv-dockview', true);\n toggleClass(this.element, 'dv-debug', !!options.debug);\n this.updateTheme();\n this.updateWatermark();\n if (options.debug) {\n this.addDisposables(new StrictEventsSequencing(this));\n }\n this.addDisposables(this.rootDropTargetContainer, this.overlayRenderContainer, this._onWillDragPanel, this._onWillDragGroup, this._onWillShowOverlay, this._onDidActivePanelChange, this._onDidAddPanel, this._onDidRemovePanel, this._onDidLayoutFromJSON, this._onDidDrop, this._onWillDrop, this._onDidMovePanel, this._onDidAddGroup, this._onDidRemoveGroup, this._onDidActiveGroupChange, this._onUnhandledDragOverEvent, this._onDidMaximizedGroupChange, this._onDidOptionsChange, this._onDidPopoutGroupSizeChange, this._onDidPopoutGroupPositionChange, this._onDidOpenPopoutWindowFail, this.onDidViewVisibilityChangeMicroTaskQueue(() => {\n this.updateWatermark();\n }), this.onDidAdd((event) => {\n if (!this._moving) {\n this._onDidAddGroup.fire(event);\n }\n }), this.onDidRemove((event) => {\n if (!this._moving) {\n this._onDidRemoveGroup.fire(event);\n }\n }), this.onDidActiveChange((event) => {\n if (!this._moving) {\n this._onDidActiveGroupChange.fire(event);\n }\n }), this.onDidMaximizedChange((event) => {\n this._onDidMaximizedGroupChange.fire({\n group: event.panel,\n isMaximized: event.isMaximized,\n });\n }), Event.any(this.onDidAdd, this.onDidRemove)(() => {\n this.updateWatermark();\n }), Event.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidAddGroup, this.onDidRemove, this.onDidMovePanel, this.onDidActivePanelChange, this.onDidPopoutGroupPositionChange, this.onDidPopoutGroupSizeChange)(() => {\n this._bufferOnDidLayoutChange.fire();\n }), Disposable.from(() => {\n // iterate over a copy of the array since .dispose() mutates the original array\n for (const group of [...this._floatingGroups]) {\n group.dispose();\n }\n // iterate over a copy of the array since .dispose() mutates the original array\n for (const group of [...this._popoutGroups]) {\n group.disposable.dispose();\n }\n }), this._rootDropTarget, this._rootDropTarget.onWillShowOverlay((event) => {\n if (this.gridview.length > 0 && event.position === 'center') {\n // option only available when no panels in primary grid\n return;\n }\n this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {\n kind: 'edge',\n panel: undefined,\n api: this._api,\n group: undefined,\n getData: getPanelData,\n }));\n }), this._rootDropTarget.onDrop((event) => {\n var _a;\n const willDropEvent = new DockviewWillDropEvent({\n nativeEvent: event.nativeEvent,\n position: event.position,\n panel: undefined,\n api: this._api,\n group: undefined,\n getData: getPanelData,\n kind: 'edge',\n });\n this._onWillDrop.fire(willDropEvent);\n if (willDropEvent.defaultPrevented) {\n return;\n }\n const data = getPanelData();\n if (data) {\n this.moveGroupOrPanel({\n from: {\n groupId: data.groupId,\n panelId: (_a = data.panelId) !== null && _a !== void 0 ? _a : undefined,\n },\n to: {\n group: this.orthogonalize(event.position),\n position: 'center',\n },\n });\n }\n else {\n this._onDidDrop.fire(new DockviewDidDropEvent({\n nativeEvent: event.nativeEvent,\n position: event.position,\n panel: undefined,\n api: this._api,\n group: undefined,\n getData: getPanelData,\n }));\n }\n }), this._rootDropTarget);\n }\n setVisible(panel, visible) {\n switch (panel.api.location.type) {\n case 'grid':\n super.setVisible(panel, visible);\n break;\n case 'floating': {\n const item = this.floatingGroups.find((floatingGroup) => floatingGroup.group === panel);\n if (item) {\n item.overlay.setVisible(visible);\n panel.api._onDidVisibilityChange.fire({\n isVisible: visible,\n });\n }\n break;\n }\n case 'popout':\n console.warn('dockview: You cannot hide a group that is in a popout window');\n break;\n }\n }\n addPopoutGroup(itemToPopout, options) {\n var _a, _b, _c, _d, _e;\n if (itemToPopout instanceof DockviewPanel &&\n itemToPopout.group.size === 1) {\n return this.addPopoutGroup(itemToPopout.group, options);\n }\n const theme = getDockviewTheme(this.gridview.element);\n const element = this.element;\n function getBox() {\n if (options === null || options === void 0 ? void 0 : options.position) {\n return options.position;\n }\n if (itemToPopout instanceof DockviewGroupPanel) {\n return itemToPopout.element.getBoundingClientRect();\n }\n if (itemToPopout.group) {\n return itemToPopout.group.element.getBoundingClientRect();\n }\n return element.getBoundingClientRect();\n }\n const box = getBox();\n const groupId = (_b = (_a = options === null || options === void 0 ? void 0 : options.overridePopoutGroup) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : this.getNextGroupId();\n const _window = new PopoutWindow(`${this.id}-${groupId}`, // unique id\n theme !== null && theme !== void 0 ? theme : '', {\n url: (_e = (_c = options === null || options === void 0 ? void 0 : options.popoutUrl) !== null && _c !== void 0 ? _c : (_d = this.options) === null || _d === void 0 ? void 0 : _d.popoutUrl) !== null && _e !== void 0 ? _e : '/popout.html',\n left: window.screenX + box.left,\n top: window.screenY + box.top,\n width: box.width,\n height: box.height,\n onDidOpen: options === null || options === void 0 ? void 0 : options.onDidOpen,\n onWillClose: options === null || options === void 0 ? void 0 : options.onWillClose,\n });\n const popoutWindowDisposable = new CompositeDisposable(_window, _window.onDidClose(() => {\n popoutWindowDisposable.dispose();\n }));\n return _window\n .open()\n .then((popoutContainer) => {\n var _a;\n if (_window.isDisposed) {\n return false;\n }\n const referenceGroup = (options === null || options === void 0 ? void 0 : options.referenceGroup)\n ? options.referenceGroup\n : itemToPopout instanceof DockviewPanel\n ? itemToPopout.group\n : itemToPopout;\n const referenceLocation = itemToPopout.api.location.type;\n /**\n * The group that is being added doesn't already exist within the DOM, the most likely occurrence\n * of this case is when being called from the `fromJSON(...)` method\n */\n const isGroupAddedToDom = referenceGroup.element.parentElement !== null;\n let group;\n if (!isGroupAddedToDom) {\n group = referenceGroup;\n }\n else if (options === null || options === void 0 ? void 0 : options.overridePopoutGroup) {\n group = options.overridePopoutGroup;\n }\n else {\n group = this.createGroup({ id: groupId });\n if (popoutContainer) {\n this._onDidAddGroup.fire(group);\n }\n }\n if (popoutContainer === null) {\n console.error('dockview: failed to create popout. perhaps you need to allow pop-ups for this website');\n popoutWindowDisposable.dispose();\n this._onDidOpenPopoutWindowFail.fire();\n // if the popout window was blocked, we need to move the group back to the reference group\n // and set it to visible\n this.movingLock(() => moveGroupWithoutDestroying({\n from: group,\n to: referenceGroup,\n }));\n if (!referenceGroup.api.isVisible) {\n referenceGroup.api.setVisible(true);\n }\n return false;\n }\n const gready = document.createElement('div');\n gready.className = 'dv-overlay-render-container';\n const overlayRenderContainer = new OverlayRenderContainer(gready, this);\n group.model.renderContainer = overlayRenderContainer;\n group.layout(_window.window.innerWidth, _window.window.innerHeight);\n let floatingBox;\n if (!(options === null || options === void 0 ? void 0 : options.overridePopoutGroup) && isGroupAddedToDom) {\n if (itemToPopout instanceof DockviewPanel) {\n this.movingLock(() => {\n const panel = referenceGroup.model.removePanel(itemToPopout);\n group.model.openPanel(panel);\n });\n }\n else {\n this.movingLock(() => moveGroupWithoutDestroying({\n from: referenceGroup,\n to: group,\n }));\n switch (referenceLocation) {\n case 'grid':\n referenceGroup.api.setVisible(false);\n break;\n case 'floating':\n case 'popout':\n floatingBox = (_a = this._floatingGroups\n .find((value) => value.group.api.id ===\n itemToPopout.api.id)) === null || _a === void 0 ? void 0 : _a.overlay.toJSON();\n this.removeGroup(referenceGroup);\n break;\n }\n }\n }\n popoutContainer.classList.add('dv-dockview');\n popoutContainer.style.overflow = 'hidden';\n popoutContainer.appendChild(gready);\n popoutContainer.appendChild(group.element);\n const anchor = document.createElement('div');\n const dropTargetContainer = new DropTargetAnchorContainer(anchor, { disabled: this.rootDropTargetContainer.disabled });\n popoutContainer.appendChild(anchor);\n group.model.dropTargetContainer = dropTargetContainer;\n group.model.location = {\n type: 'popout',\n getWindow: () => _window.window,\n popoutUrl: options === null || options === void 0 ? void 0 : options.popoutUrl,\n };\n if (isGroupAddedToDom &&\n itemToPopout.api.location.type === 'grid') {\n itemToPopout.api.setVisible(false);\n }\n this.doSetGroupAndPanelActive(group);\n popoutWindowDisposable.addDisposables(group.api.onDidActiveChange((event) => {\n var _a;\n if (event.isActive) {\n (_a = _window.window) === null || _a === void 0 ? void 0 : _a.focus();\n }\n }), group.api.onWillFocus(() => {\n var _a;\n (_a = _window.window) === null || _a === void 0 ? void 0 : _a.focus();\n }));\n let returnedGroup;\n const isValidReferenceGroup = isGroupAddedToDom &&\n referenceGroup &&\n this.getPanel(referenceGroup.id);\n const value = {\n window: _window,\n popoutGroup: group,\n referenceGroup: isValidReferenceGroup\n ? referenceGroup.id\n : undefined,\n disposable: {\n dispose: () => {\n popoutWindowDisposable.dispose();\n return returnedGroup;\n },\n },\n };\n const _onDidWindowPositionChange = onDidWindowMoveEnd(_window.window);\n popoutWindowDisposable.addDisposables(_onDidWindowPositionChange, onDidWindowResizeEnd(_window.window, () => {\n this._onDidPopoutGroupSizeChange.fire({\n width: _window.window.innerWidth,\n height: _window.window.innerHeight,\n group,\n });\n }), _onDidWindowPositionChange.event(() => {\n this._onDidPopoutGroupPositionChange.fire({\n screenX: _window.window.screenX,\n screenY: _window.window.screenX,\n group,\n });\n }), \n /**\n * ResizeObserver seems slow here, I do not know why but we don't need it\n * since we can reply on the window resize event as we will occupy the full\n * window dimensions\n */\n addDisposableListener(_window.window, 'resize', () => {\n group.layout(_window.window.innerWidth, _window.window.innerHeight);\n }), overlayRenderContainer, Disposable.from(() => {\n if (this.isDisposed) {\n return; // cleanup may run after instance is disposed\n }\n if (isGroupAddedToDom &&\n this.getPanel(referenceGroup.id)) {\n this.movingLock(() => moveGroupWithoutDestroying({\n from: group,\n to: referenceGroup,\n }));\n if (!referenceGroup.api.isVisible) {\n referenceGroup.api.setVisible(true);\n }\n if (this.getPanel(group.id)) {\n this.doRemoveGroup(group, {\n skipPopoutAssociated: true,\n });\n }\n }\n else if (this.getPanel(group.id)) {\n group.model.renderContainer =\n this.overlayRenderContainer;\n group.model.dropTargetContainer =\n this.rootDropTargetContainer;\n returnedGroup = group;\n const alreadyRemoved = !this._popoutGroups.find((p) => p.popoutGroup === group);\n if (alreadyRemoved) {\n /**\n * If this popout group was explicitly removed then we shouldn't run the additional\n * steps. To tell if the running of this disposable is the result of this popout group\n * being explicitly removed we can check if this popout group is still referenced in\n * the `this._popoutGroups` list.\n */\n return;\n }\n if (floatingBox) {\n this.addFloatingGroup(group, {\n height: floatingBox.height,\n width: floatingBox.width,\n position: floatingBox,\n });\n }\n else {\n this.doRemoveGroup(group, {\n skipDispose: true,\n skipActive: true,\n skipPopoutReturn: true,\n });\n group.model.location = { type: 'grid' };\n this.movingLock(() => {\n // suppress group add events since the group already exists\n this.doAddGroup(group, [0]);\n });\n }\n this.doSetGroupAndPanelActive(group);\n }\n }));\n this._popoutGroups.push(value);\n this.updateWatermark();\n return true;\n })\n .catch((err) => {\n console.error('dockview: failed to create popout.', err);\n return false;\n });\n }\n addFloatingGroup(item, options) {\n var _a, _b, _c, _d, _e;\n let group;\n if (item instanceof DockviewPanel) {\n group = this.createGroup();\n this._onDidAddGroup.fire(group);\n this.movingLock(() => this.removePanel(item, {\n removeEmptyGroup: true,\n skipDispose: true,\n skipSetActiveGroup: true,\n }));\n this.movingLock(() => group.model.openPanel(item, { skipSetGroupActive: true }));\n }\n else {\n group = item;\n const popoutReferenceGroupId = (_a = this._popoutGroups.find((_) => _.popoutGroup === group)) === null || _a === void 0 ? void 0 : _a.referenceGroup;\n const popoutReferenceGroup = popoutReferenceGroupId\n ? this.getPanel(popoutReferenceGroupId)\n : undefined;\n const skip = typeof (options === null || options === void 0 ? void 0 : options.skipRemoveGroup) === 'boolean' &&\n options.skipRemoveGroup;\n if (!skip) {\n if (popoutReferenceGroup) {\n this.movingLock(() => moveGroupWithoutDestroying({\n from: item,\n to: popoutReferenceGroup,\n }));\n this.doRemoveGroup(item, {\n skipPopoutReturn: true,\n skipPopoutAssociated: true,\n });\n this.doRemoveGroup(popoutReferenceGroup, {\n skipDispose: true,\n });\n group = popoutReferenceGroup;\n }\n else {\n this.doRemoveGroup(item, {\n skipDispose: true,\n skipPopoutReturn: true,\n skipPopoutAssociated: false,\n });\n }\n }\n }\n function getAnchoredBox() {\n if (options === null || options === void 0 ? void 0 : options.position) {\n const result = {};\n if ('left' in options.position) {\n result.left = Math.max(options.position.left, 0);\n }\n else if ('right' in options.position) {\n result.right = Math.max(options.position.right, 0);\n }\n else {\n result.left = DEFAULT_FLOATING_GROUP_POSITION.left;\n }\n if ('top' in options.position) {\n result.top = Math.max(options.position.top, 0);\n }\n else if ('bottom' in options.position) {\n result.bottom = Math.max(options.position.bottom, 0);\n }\n else {\n result.top = DEFAULT_FLOATING_GROUP_POSITION.top;\n }\n if (typeof options.width === 'number') {\n result.width = Math.max(options.width, 0);\n }\n else {\n result.width = DEFAULT_FLOATING_GROUP_POSITION.width;\n }\n if (typeof options.height === 'number') {\n result.height = Math.max(options.height, 0);\n }\n else {\n result.height = DEFAULT_FLOATING_GROUP_POSITION.height;\n }\n return result;\n }\n return {\n left: typeof (options === null || options === void 0 ? void 0 : options.x) === 'number'\n ? Math.max(options.x, 0)\n : DEFAULT_FLOATING_GROUP_POSITION.left,\n top: typeof (options === null || options === void 0 ? void 0 : options.y) === 'number'\n ? Math.max(options.y, 0)\n : DEFAULT_FLOATING_GROUP_POSITION.top,\n width: typeof (options === null || options === void 0 ? void 0 : options.width) === 'number'\n ? Math.max(options.width, 0)\n : DEFAULT_FLOATING_GROUP_POSITION.width,\n height: typeof (options === null || options === void 0 ? void 0 : options.height) === 'number'\n ? Math.max(options.height, 0)\n : DEFAULT_FLOATING_GROUP_POSITION.height,\n };\n }\n const anchoredBox = getAnchoredBox();\n const overlay = new Overlay(Object.assign(Object.assign({ container: this.gridview.element, content: group.element }, anchoredBox), { minimumInViewportWidth: this.options.floatingGroupBounds === 'boundedWithinViewport'\n ? undefined\n : (_c = (_b = this.options.floatingGroupBounds) === null || _b === void 0 ? void 0 : _b.minimumWidthWithinViewport) !== null && _c !== void 0 ? _c : DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE, minimumInViewportHeight: this.options.floatingGroupBounds === 'boundedWithinViewport'\n ? undefined\n : (_e = (_d = this.options.floatingGroupBounds) === null || _d === void 0 ? void 0 : _d.minimumHeightWithinViewport) !== null && _e !== void 0 ? _e : DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE }));\n const el = group.element.querySelector('.dv-void-container');\n if (!el) {\n throw new Error('failed to find drag handle');\n }\n overlay.setupDrag(el, {\n inDragMode: typeof (options === null || options === void 0 ? void 0 : options.inDragMode) === 'boolean'\n ? options.inDragMode\n : false,\n });\n const floatingGroupPanel = new DockviewFloatingGroupPanel(group, overlay);\n const disposable = new CompositeDisposable(group.api.onDidActiveChange((event) => {\n if (event.isActive) {\n overlay.bringToFront();\n }\n }), watchElementResize(group.element, (entry) => {\n const { width, height } = entry.contentRect;\n group.layout(width, height); // let the group know it's size is changing so it can fire events to the panel\n }));\n floatingGroupPanel.addDisposables(overlay.onDidChange(() => {\n // this is either a resize or a move\n // to inform the panels .layout(...) the group with it's current size\n // don't care about resize since the above watcher handles that\n group.layout(group.width, group.height);\n }), overlay.onDidChangeEnd(() => {\n this._bufferOnDidLayoutChange.fire();\n }), group.onDidChange((event) => {\n overlay.setBounds({\n height: event === null || event === void 0 ? void 0 : event.height,\n width: event === null || event === void 0 ? void 0 : event.width,\n });\n }), {\n dispose: () => {\n disposable.dispose();\n remove(this._floatingGroups, floatingGroupPanel);\n group.model.location = { type: 'grid' };\n this.updateWatermark();\n },\n });\n this._floatingGroups.push(floatingGroupPanel);\n group.model.location = { type: 'floating' };\n if (!(options === null || options === void 0 ? void 0 : options.skipActiveGroup)) {\n this.doSetGroupAndPanelActive(group);\n }\n this.updateWatermark();\n }\n orthogonalize(position, options) {\n this.gridview.normalize();\n switch (position) {\n case 'top':\n case 'bottom':\n if (this.gridview.orientation === Orientation.HORIZONTAL) {\n // we need to add to a vertical splitview but the current root is a horizontal splitview.\n // insert a vertical splitview at the root level and add the existing view as a child\n this.gridview.insertOrthogonalSplitviewAtRoot();\n }\n break;\n case 'left':\n case 'right':\n if (this.gridview.orientation === Orientation.VERTICAL) {\n // we need to add to a horizontal splitview but the current root is a vertical splitview.\n // insert a horiziontal splitview at the root level and add the existing view as a child\n this.gridview.insertOrthogonalSplitviewAtRoot();\n }\n break;\n default:\n break;\n }\n switch (position) {\n case 'top':\n case 'left':\n case 'center':\n return this.createGroupAtLocation([0], undefined, options); // insert into first position\n case 'bottom':\n case 'right':\n return this.createGroupAtLocation([this.gridview.length], undefined, options); // insert into last position\n default:\n throw new Error(`unsupported position ${position}`);\n }\n }\n updateOptions(options) {\n var _a, _b;\n super.updateOptions(options);\n if ('floatingGroupBounds' in options) {\n for (const group of this._floatingGroups) {\n switch (options.floatingGroupBounds) {\n case 'boundedWithinViewport':\n group.overlay.minimumInViewportHeight = undefined;\n group.overlay.minimumInViewportWidth = undefined;\n break;\n case undefined:\n group.overlay.minimumInViewportHeight =\n DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE;\n group.overlay.minimumInViewportWidth =\n DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE;\n break;\n default:\n group.overlay.minimumInViewportHeight =\n (_a = options.floatingGroupBounds) === null || _a === void 0 ? void 0 : _a.minimumHeightWithinViewport;\n group.overlay.minimumInViewportWidth =\n (_b = options.floatingGroupBounds) === null || _b === void 0 ? void 0 : _b.minimumWidthWithinViewport;\n }\n group.overlay.setBounds();\n }\n }\n this.updateDropTargetModel(options);\n const oldDisableDnd = this.options.disableDnd;\n this._options = Object.assign(Object.assign({}, this.options), options);\n const newDisableDnd = this.options.disableDnd;\n if (oldDisableDnd !== newDisableDnd) {\n this.updateDragAndDropState();\n }\n if ('theme' in options) {\n this.updateTheme();\n }\n this.layout(this.gridview.width, this.gridview.height, true);\n }\n layout(width, height, forceResize) {\n super.layout(width, height, forceResize);\n if (this._floatingGroups) {\n for (const floating of this._floatingGroups) {\n // ensure floting groups stay within visible boundaries\n floating.overlay.setBounds();\n }\n }\n }\n updateDragAndDropState() {\n // Update draggable state for all tabs and void containers\n for (const group of this.groups) {\n group.model.updateDragAndDropState();\n }\n }\n focus() {\n var _a;\n (_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.focus();\n }\n getGroupPanel(id) {\n return this.panels.find((panel) => panel.id === id);\n }\n setActivePanel(panel) {\n panel.group.model.openPanel(panel);\n this.doSetGroupAndPanelActive(panel.group);\n }\n moveToNext(options = {}) {\n var _a;\n if (!options.group) {\n if (!this.activeGroup) {\n return;\n }\n options.group = this.activeGroup;\n }\n if (options.includePanel && options.group) {\n if (options.group.activePanel !==\n options.group.panels[options.group.panels.length - 1]) {\n options.group.model.moveToNext({ suppressRoll: true });\n return;\n }\n }\n const location = getGridLocation(options.group.element);\n const next = (_a = this.gridview.next(location)) === null || _a === void 0 ? void 0 : _a.view;\n this.doSetGroupAndPanelActive(next);\n }\n moveToPrevious(options = {}) {\n var _a;\n if (!options.group) {\n if (!this.activeGroup) {\n return;\n }\n options.group = this.activeGroup;\n }\n if (options.includePanel && options.group) {\n if (options.group.activePanel !== options.group.panels[0]) {\n options.group.model.moveToPrevious({ suppressRoll: true });\n return;\n }\n }\n const location = getGridLocation(options.group.element);\n const next = (_a = this.gridview.previous(location)) === null || _a === void 0 ? void 0 : _a.view;\n if (next) {\n this.doSetGroupAndPanelActive(next);\n }\n }\n /**\n * Serialize the current state of the layout\n *\n * @returns A JSON respresentation of the layout\n */\n toJSON() {\n var _a;\n const data = this.gridview.serialize();\n const panels = this.panels.reduce((collection, panel) => {\n collection[panel.id] = panel.toJSON();\n return collection;\n }, {});\n const floats = this._floatingGroups.map((group) => {\n return {\n data: group.group.toJSON(),\n position: group.overlay.toJSON(),\n };\n });\n const popoutGroups = this._popoutGroups.map((group) => {\n return {\n data: group.popoutGroup.toJSON(),\n gridReferenceGroup: group.referenceGroup,\n position: group.window.dimensions(),\n url: group.popoutGroup.api.location.type === 'popout'\n ? group.popoutGroup.api.location.popoutUrl\n : undefined,\n };\n });\n const result = {\n grid: data,\n panels,\n activeGroup: (_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.id,\n };\n if (floats.length > 0) {\n result.floatingGroups = floats;\n }\n if (popoutGroups.length > 0) {\n result.popoutGroups = popoutGroups;\n }\n return result;\n }\n fromJSON(data) {\n var _a, _b;\n this.clear();\n if (typeof data !== 'object' || data === null) {\n throw new Error('serialized layout must be a non-null object');\n }\n const { grid, panels, activeGroup } = data;\n if (grid.root.type !== 'branch' || !Array.isArray(grid.root.data)) {\n throw new Error('root must be of type branch');\n }\n try {\n // take note of the existing dimensions\n const width = this.width;\n const height = this.height;\n const createGroupFromSerializedState = (data) => {\n const { id, locked, hideHeader, views, activeView } = data;\n if (typeof id !== 'string') {\n throw new Error('group id must be of type string');\n }\n const group = this.createGroup({\n id,\n locked: !!locked,\n hideHeader: !!hideHeader,\n });\n this._onDidAddGroup.fire(group);\n const createdPanels = [];\n for (const child of views) {\n /**\n * Run the deserializer step seperately since this may fail to due corrupted external state.\n * In running this section first we avoid firing lots of 'add' events in the event of a failure\n * due to a corruption of input data.\n */\n const panel = this._deserializer.fromJSON(panels[child], group);\n createdPanels.push(panel);\n }\n for (let i = 0; i < views.length; i++) {\n const panel = createdPanels[i];\n const isActive = typeof activeView === 'string' &&\n activeView === panel.id;\n group.model.openPanel(panel, {\n skipSetActive: !isActive,\n skipSetGroupActive: true,\n });\n }\n if (!group.activePanel && group.panels.length > 0) {\n group.model.openPanel(group.panels[group.panels.length - 1], {\n skipSetGroupActive: true,\n });\n }\n return group;\n };\n this.gridview.deserialize(grid, {\n fromJSON: (node) => {\n return createGroupFromSerializedState(node.data);\n },\n });\n this.layout(width, height, true);\n const serializedFloatingGroups = (_a = data.floatingGroups) !== null && _a !== void 0 ? _a : [];\n for (const serializedFloatingGroup of serializedFloatingGroups) {\n const { data, position } = serializedFloatingGroup;\n const group = createGroupFromSerializedState(data);\n this.addFloatingGroup(group, {\n position: position,\n width: position.width,\n height: position.height,\n skipRemoveGroup: true,\n inDragMode: false,\n });\n }\n const serializedPopoutGroups = (_b = data.popoutGroups) !== null && _b !== void 0 ? _b : [];\n // Create a promise that resolves when all popout groups are created\n const popoutPromises = [];\n // Queue popup group creation with delays to avoid browser blocking\n serializedPopoutGroups.forEach((serializedPopoutGroup, index) => {\n const { data, position, gridReferenceGroup, url } = serializedPopoutGroup;\n const group = createGroupFromSerializedState(data);\n // Add a small delay for each popup after the first to avoid browser popup blocking\n const popoutPromise = new Promise((resolve) => {\n setTimeout(() => {\n this.addPopoutGroup(group, {\n position: position !== null && position !== void 0 ? position : undefined,\n overridePopoutGroup: gridReferenceGroup ? group : undefined,\n referenceGroup: gridReferenceGroup\n ? this.getPanel(gridReferenceGroup)\n : undefined,\n popoutUrl: url,\n });\n resolve();\n }, index * DESERIALIZATION_POPOUT_DELAY_MS); // 100ms delay between each popup\n });\n popoutPromises.push(popoutPromise);\n });\n // Store the promise for tests to wait on\n this._popoutRestorationPromise = Promise.all(popoutPromises).then(() => void 0);\n for (const floatingGroup of this._floatingGroups) {\n floatingGroup.overlay.setBounds();\n }\n if (typeof activeGroup === 'string') {\n const panel = this.getPanel(activeGroup);\n if (panel) {\n this.doSetGroupAndPanelActive(panel);\n }\n }\n }\n catch (err) {\n console.error('dockview: failed to deserialize layout. Reverting changes', err);\n /**\n * Takes all the successfully created groups and remove all of their panels.\n */\n for (const group of this.groups) {\n for (const panel of group.panels) {\n this.removePanel(panel, {\n removeEmptyGroup: false,\n skipDispose: false,\n });\n }\n }\n /**\n * To remove a group we cannot call this.removeGroup(...) since this makes assumptions about\n * the underlying HTMLElement existing in the Gridview.\n */\n for (const group of this.groups) {\n group.dispose();\n this._groups.delete(group.id);\n this._onDidRemoveGroup.fire(group);\n }\n // iterate over a reassigned array since original array will be modified\n for (const floatingGroup of [...this._floatingGroups]) {\n floatingGroup.dispose();\n }\n // fires clean-up events and clears the underlying HTML gridview.\n this.clear();\n /**\n * even though we have cleaned-up we still want to inform the caller of their error\n * and we'll do this through re-throwing the original error since afterall you would\n * expect trying to load a corrupted layout to result in an error and not silently fail...\n */\n throw err;\n }\n this.updateWatermark();\n // Force position updates for always visible panels after DOM layout is complete\n requestAnimationFrame(() => {\n this.overlayRenderContainer.updateAllPositions();\n });\n this._onDidLayoutFromJSON.fire();\n }\n clear() {\n const groups = Array.from(this._groups.values()).map((_) => _.value);\n const hasActiveGroup = !!this.activeGroup;\n for (const group of groups) {\n // remove the group will automatically remove the panels\n this.removeGroup(group, { skipActive: true });\n }\n if (hasActiveGroup) {\n this.doSetGroupAndPanelActive(undefined);\n }\n this.gridview.clear();\n }\n closeAllGroups() {\n for (const entry of this._groups.entries()) {\n const [_, group] = entry;\n group.value.model.closeAllPanels();\n }\n }\n addPanel(options) {\n var _a, _b;\n if (this.panels.find((_) => _.id === options.id)) {\n throw new Error(`panel with id ${options.id} already exists`);\n }\n let referenceGroup;\n if (options.position && options.floating) {\n throw new Error('you can only provide one of: position, floating as arguments to .addPanel(...)');\n }\n const initial = {\n width: options.initialWidth,\n height: options.initialHeight,\n };\n let index;\n if (options.position) {\n if (isPanelOptionsWithPanel(options.position)) {\n const referencePanel = typeof options.position.referencePanel === 'string'\n ? this.getGroupPanel(options.position.referencePanel)\n : options.position.referencePanel;\n index = options.position.index;\n if (!referencePanel) {\n throw new Error(`referencePanel '${options.position.referencePanel}' does not exist`);\n }\n referenceGroup = this.findGroup(referencePanel);\n }\n else if (isPanelOptionsWithGroup(options.position)) {\n referenceGroup =\n typeof options.position.referenceGroup === 'string'\n ? (_a = this._groups.get(options.position.referenceGroup)) === null || _a === void 0 ? void 0 : _a.value\n : options.position.referenceGroup;\n index = options.position.index;\n if (!referenceGroup) {\n throw new Error(`referenceGroup '${options.position.referenceGroup}' does not exist`);\n }\n }\n else {\n const group = this.orthogonalize(directionToPosition(options.position.direction));\n const panel = this.createPanel(options, group);\n group.model.openPanel(panel, {\n skipSetActive: options.inactive,\n skipSetGroupActive: options.inactive,\n index,\n });\n if (!options.inactive) {\n this.doSetGroupAndPanelActive(group);\n }\n group.api.setSize({\n height: initial === null || initial === void 0 ? void 0 : initial.height,\n width: initial === null || initial === void 0 ? void 0 : initial.width,\n });\n return panel;\n }\n }\n else {\n referenceGroup = this.activeGroup;\n }\n let panel;\n if (referenceGroup) {\n const target = toTarget(((_b = options.position) === null || _b === void 0 ? void 0 : _b.direction) || 'within');\n if (options.floating) {\n const group = this.createGroup();\n this._onDidAddGroup.fire(group);\n const floatingGroupOptions = typeof options.floating === 'object' &&\n options.floating !== null\n ? options.floating\n : {};\n this.addFloatingGroup(group, Object.assign(Object.assign({}, floatingGroupOptions), { inDragMode: false, skipRemoveGroup: true, skipActiveGroup: true }));\n panel = this.createPanel(options, group);\n group.model.openPanel(panel, {\n skipSetActive: options.inactive,\n skipSetGroupActive: options.inactive,\n index,\n });\n }\n else if (referenceGroup.api.location.type === 'floating' ||\n target === 'center') {\n panel = this.createPanel(options, referenceGroup);\n referenceGroup.model.openPanel(panel, {\n skipSetActive: options.inactive,\n skipSetGroupActive: options.inactive,\n index,\n });\n referenceGroup.api.setSize({\n width: initial === null || initial === void 0 ? void 0 : initial.width,\n height: initial === null || initial === void 0 ? void 0 : initial.height,\n });\n if (!options.inactive) {\n this.doSetGroupAndPanelActive(referenceGroup);\n }\n }\n else {\n const location = getGridLocation(referenceGroup.element);\n const relativeLocation = getRelativeLocation(this.gridview.orientation, location, target);\n const group = this.createGroupAtLocation(relativeLocation, this.orientationAtLocation(relativeLocation) ===\n Orientation.VERTICAL\n ? initial === null || initial === void 0 ? void 0 : initial.height\n : initial === null || initial === void 0 ? void 0 : initial.width);\n panel = this.createPanel(options, group);\n group.model.openPanel(panel, {\n skipSetActive: options.inactive,\n skipSetGroupActive: options.inactive,\n index,\n });\n if (!options.inactive) {\n this.doSetGroupAndPanelActive(group);\n }\n }\n }\n else if (options.floating) {\n const group = this.createGroup();\n this._onDidAddGroup.fire(group);\n const coordinates = typeof options.floating === 'object' &&\n options.floating !== null\n ? options.floating\n : {};\n this.addFloatingGroup(group, Object.assign(Object.assign({}, coordinates), { inDragMode: false, skipRemoveGroup: true, skipActiveGroup: true }));\n panel = this.createPanel(options, group);\n group.model.openPanel(panel, {\n skipSetActive: options.inactive,\n skipSetGroupActive: options.inactive,\n index,\n });\n }\n else {\n const group = this.createGroupAtLocation([0], this.gridview.orientation === Orientation.VERTICAL\n ? initial === null || initial === void 0 ? void 0 : initial.height\n : initial === null || initial === void 0 ? void 0 : initial.width);\n panel = this.createPanel(options, group);\n group.model.openPanel(panel, {\n skipSetActive: options.inactive,\n skipSetGroupActive: options.inactive,\n index,\n });\n if (!options.inactive) {\n this.doSetGroupAndPanelActive(group);\n }\n }\n return panel;\n }\n removePanel(panel, options = {\n removeEmptyGroup: true,\n }) {\n const group = panel.group;\n if (!group) {\n throw new Error(`cannot remove panel ${panel.id}. it's missing a group.`);\n }\n group.model.removePanel(panel, {\n skipSetActiveGroup: options.skipSetActiveGroup,\n });\n if (!options.skipDispose) {\n panel.group.model.renderContainer.detatch(panel);\n panel.dispose();\n }\n if (group.size === 0 && options.removeEmptyGroup) {\n this.removeGroup(group, { skipActive: options.skipSetActiveGroup });\n }\n }\n createWatermarkComponent() {\n if (this.options.createWatermarkComponent) {\n return this.options.createWatermarkComponent();\n }\n return new Watermark();\n }\n updateWatermark() {\n var _a, _b;\n if (this.groups.filter((x) => x.api.location.type === 'grid' && x.api.isVisible).length === 0) {\n if (!this._watermark) {\n this._watermark = this.createWatermarkComponent();\n this._watermark.init({\n containerApi: new DockviewApi(this),\n });\n const watermarkContainer = document.createElement('div');\n watermarkContainer.className = 'dv-watermark-container';\n addTestId(watermarkContainer, 'watermark-component');\n watermarkContainer.appendChild(this._watermark.element);\n this.gridview.element.appendChild(watermarkContainer);\n }\n }\n else if (this._watermark) {\n this._watermark.element.parentElement.remove();\n (_b = (_a = this._watermark).dispose) === null || _b === void 0 ? void 0 : _b.call(_a);\n this._watermark = null;\n }\n }\n addGroup(options) {\n var _a;\n if (options) {\n let referenceGroup;\n if (isGroupOptionsWithPanel(options)) {\n const referencePanel = typeof options.referencePanel === 'string'\n ? this.panels.find((panel) => panel.id === options.referencePanel)\n : options.referencePanel;\n if (!referencePanel) {\n throw new Error(`reference panel ${options.referencePanel} does not exist`);\n }\n referenceGroup = this.findGroup(referencePanel);\n if (!referenceGroup) {\n throw new Error(`reference group for reference panel ${options.referencePanel} does not exist`);\n }\n }\n else if (isGroupOptionsWithGroup(options)) {\n referenceGroup =\n typeof options.referenceGroup === 'string'\n ? (_a = this._groups.get(options.referenceGroup)) === null || _a === void 0 ? void 0 : _a.value\n : options.referenceGroup;\n if (!referenceGroup) {\n throw new Error(`reference group ${options.referenceGroup} does not exist`);\n }\n }\n else {\n const group = this.orthogonalize(directionToPosition(options.direction), options);\n if (!options.skipSetActive) {\n this.doSetGroupAndPanelActive(group);\n }\n return group;\n }\n const target = toTarget(options.direction || 'within');\n const location = getGridLocation(referenceGroup.element);\n const relativeLocation = getRelativeLocation(this.gridview.orientation, location, target);\n const group = this.createGroup(options);\n const size = this.getLocationOrientation(relativeLocation) ===\n Orientation.VERTICAL\n ? options.initialHeight\n : options.initialWidth;\n this.doAddGroup(group, relativeLocation, size);\n if (!options.skipSetActive) {\n this.doSetGroupAndPanelActive(group);\n }\n return group;\n }\n else {\n const group = this.createGroup(options);\n this.doAddGroup(group);\n this.doSetGroupAndPanelActive(group);\n return group;\n }\n }\n getLocationOrientation(location) {\n return location.length % 2 == 0 &&\n this.gridview.orientation === Orientation.HORIZONTAL\n ? Orientation.HORIZONTAL\n : Orientation.VERTICAL;\n }\n removeGroup(group, options) {\n this.doRemoveGroup(group, options);\n }\n doRemoveGroup(group, options) {\n var _a;\n const panels = [...group.panels]; // reassign since group panels will mutate\n if (!(options === null || options === void 0 ? void 0 : options.skipDispose)) {\n for (const panel of panels) {\n this.removePanel(panel, {\n removeEmptyGroup: false,\n skipDispose: (_a = options === null || options === void 0 ? void 0 : options.skipDispose) !== null && _a !== void 0 ? _a : false,\n });\n }\n }\n const activePanel = this.activePanel;\n if (group.api.location.type === 'floating') {\n const floatingGroup = this._floatingGroups.find((_) => _.group === group);\n if (floatingGroup) {\n if (!(options === null || options === void 0 ? void 0 : options.skipDispose)) {\n floatingGroup.group.dispose();\n this._groups.delete(group.id);\n this._onDidRemoveGroup.fire(group);\n }\n remove(this._floatingGroups, floatingGroup);\n floatingGroup.dispose();\n if (!(options === null || options === void 0 ? void 0 : options.skipActive) && this._activeGroup === group) {\n const groups = Array.from(this._groups.values());\n this.doSetGroupAndPanelActive(groups.length > 0 ? groups[0].value : undefined);\n }\n return floatingGroup.group;\n }\n throw new Error('failed to find floating group');\n }\n if (group.api.location.type === 'popout') {\n const selectedGroup = this._popoutGroups.find((_) => _.popoutGroup === group);\n if (selectedGroup) {\n if (!(options === null || options === void 0 ? void 0 : options.skipDispose)) {\n if (!(options === null || options === void 0 ? void 0 : options.skipPopoutAssociated)) {\n const refGroup = selectedGroup.referenceGroup\n ? this.getPanel(selectedGroup.referenceGroup)\n : undefined;\n if (refGroup && refGroup.panels.length === 0) {\n this.removeGroup(refGroup);\n }\n }\n selectedGroup.popoutGroup.dispose();\n this._groups.delete(group.id);\n this._onDidRemoveGroup.fire(group);\n }\n remove(this._popoutGroups, selectedGroup);\n const removedGroup = selectedGroup.disposable.dispose();\n if (!(options === null || options === void 0 ? void 0 : options.skipPopoutReturn) && removedGroup) {\n this.doAddGroup(removedGroup, [0]);\n this.doSetGroupAndPanelActive(removedGroup);\n }\n if (!(options === null || options === void 0 ? void 0 : options.skipActive) && this._activeGroup === group) {\n const groups = Array.from(this._groups.values());\n this.doSetGroupAndPanelActive(groups.length > 0 ? groups[0].value : undefined);\n }\n this.updateWatermark();\n return selectedGroup.popoutGroup;\n }\n throw new Error('failed to find popout group');\n }\n const re = super.doRemoveGroup(group, options);\n if (!(options === null || options === void 0 ? void 0 : options.skipActive)) {\n if (this.activePanel !== activePanel) {\n this._onDidActivePanelChange.fire(this.activePanel);\n }\n }\n return re;\n }\n movingLock(func) {\n const isMoving = this._moving;\n try {\n this._moving = true;\n return func();\n }\n finally {\n this._moving = isMoving;\n }\n }\n moveGroupOrPanel(options) {\n var _a;\n const destinationGroup = options.to.group;\n const sourceGroupId = options.from.groupId;\n const sourceItemId = options.from.panelId;\n const destinationTarget = options.to.position;\n const destinationIndex = options.to.index;\n const sourceGroup = sourceGroupId\n ? (_a = this._groups.get(sourceGroupId)) === null || _a === void 0 ? void 0 : _a.value\n : undefined;\n if (!sourceGroup) {\n throw new Error(`Failed to find group id ${sourceGroupId}`);\n }\n if (sourceItemId === undefined) {\n /**\n * Moving an entire group into another group\n */\n this.moveGroup({\n from: { group: sourceGroup },\n to: {\n group: destinationGroup,\n position: destinationTarget,\n },\n skipSetActive: options.skipSetActive,\n });\n return;\n }\n if (!destinationTarget || destinationTarget === 'center') {\n /**\n * Dropping a panel within another group\n */\n const removedPanel = this.movingLock(() => sourceGroup.model.removePanel(sourceItemId, {\n skipSetActive: false,\n skipSetActiveGroup: true,\n }));\n if (!removedPanel) {\n throw new Error(`No panel with id ${sourceItemId}`);\n }\n if (sourceGroup.model.size === 0) {\n // remove the group and do not set a new group as active\n this.doRemoveGroup(sourceGroup, { skipActive: true });\n }\n // Check if destination group is empty - if so, force render the component\n const isDestinationGroupEmpty = destinationGroup.model.size === 0;\n this.movingLock(() => {\n var _a;\n return destinationGroup.model.openPanel(removedPanel, {\n index: destinationIndex,\n skipSetActive: ((_a = options.skipSetActive) !== null && _a !== void 0 ? _a : false) && !isDestinationGroupEmpty,\n skipSetGroupActive: true,\n });\n });\n if (!options.skipSetActive) {\n this.doSetGroupAndPanelActive(destinationGroup);\n }\n this._onDidMovePanel.fire({\n panel: removedPanel,\n from: sourceGroup,\n });\n }\n else {\n /**\n * Dropping a panel to the extremities of a group which will place that panel\n * into an adjacent group\n */\n const referenceLocation = getGridLocation(destinationGroup.element);\n const targetLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, destinationTarget);\n if (sourceGroup.size < 2) {\n /**\n * If we are moving from a group which only has one panel left we will consider\n * moving the group itself rather than moving the panel into a newly created group\n */\n const [targetParentLocation, to] = tail(targetLocation);\n if (sourceGroup.api.location.type === 'grid') {\n const sourceLocation = getGridLocation(sourceGroup.element);\n const [sourceParentLocation, from] = tail(sourceLocation);\n if (sequenceEquals(sourceParentLocation, targetParentLocation)) {\n // special case when 'swapping' two views within same grid location\n // if a group has one tab - we are essentially moving the 'group'\n // which is equivalent to swapping two views in this case\n this.gridview.moveView(sourceParentLocation, from, to);\n this._onDidMovePanel.fire({\n panel: this.getGroupPanel(sourceItemId),\n from: sourceGroup,\n });\n return;\n }\n }\n if (sourceGroup.api.location.type === 'popout') {\n /**\n * the source group is a popout group with a single panel\n *\n * 1. remove the panel from the group without triggering any events\n * 2. remove the popout group\n * 3. create a new group at the requested location and add that panel\n */\n const popoutGroup = this._popoutGroups.find((group) => group.popoutGroup === sourceGroup);\n const removedPanel = this.movingLock(() => popoutGroup.popoutGroup.model.removePanel(popoutGroup.popoutGroup.panels[0], {\n skipSetActive: true,\n skipSetActiveGroup: true,\n }));\n this.doRemoveGroup(sourceGroup, { skipActive: true });\n const newGroup = this.createGroupAtLocation(targetLocation);\n this.movingLock(() => newGroup.model.openPanel(removedPanel));\n this.doSetGroupAndPanelActive(newGroup);\n this._onDidMovePanel.fire({\n panel: this.getGroupPanel(sourceItemId),\n from: sourceGroup,\n });\n return;\n }\n // source group will become empty so delete the group\n const targetGroup = this.movingLock(() => this.doRemoveGroup(sourceGroup, {\n skipActive: true,\n skipDispose: true,\n }));\n // after deleting the group we need to re-evaulate the ref location\n const updatedReferenceLocation = getGridLocation(destinationGroup.element);\n const location = getRelativeLocation(this.gridview.orientation, updatedReferenceLocation, destinationTarget);\n this.movingLock(() => this.doAddGroup(targetGroup, location));\n this.doSetGroupAndPanelActive(targetGroup);\n this._onDidMovePanel.fire({\n panel: this.getGroupPanel(sourceItemId),\n from: sourceGroup,\n });\n }\n else {\n /**\n * The group we are removing from has many panels, we need to remove the panels we are moving,\n * create a new group, add the panels to that new group and add the new group in an appropiate position\n */\n const removedPanel = this.movingLock(() => sourceGroup.model.removePanel(sourceItemId, {\n skipSetActive: false,\n skipSetActiveGroup: true,\n }));\n if (!removedPanel) {\n throw new Error(`No panel with id ${sourceItemId}`);\n }\n const dropLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, destinationTarget);\n const group = this.createGroupAtLocation(dropLocation);\n this.movingLock(() => group.model.openPanel(removedPanel, {\n skipSetGroupActive: true,\n }));\n this.doSetGroupAndPanelActive(group);\n this._onDidMovePanel.fire({\n panel: removedPanel,\n from: sourceGroup,\n });\n }\n }\n }\n moveGroup(options) {\n const from = options.from.group;\n const to = options.to.group;\n const target = options.to.position;\n if (target === 'center') {\n const activePanel = from.activePanel;\n const panels = this.movingLock(() => [...from.panels].map((p) => from.model.removePanel(p.id, {\n skipSetActive: true,\n })));\n if ((from === null || from === void 0 ? void 0 : from.model.size) === 0) {\n this.doRemoveGroup(from, { skipActive: true });\n }\n this.movingLock(() => {\n for (const panel of panels) {\n to.model.openPanel(panel, {\n skipSetActive: panel !== activePanel,\n skipSetGroupActive: true,\n });\n }\n });\n // Ensure group becomes active after move\n if (options.skipSetActive !== true) {\n // For center moves (merges), we need to ensure the target group is active\n // unless explicitly told not to (skipSetActive: true)\n this.doSetGroupAndPanelActive(to);\n }\n else if (!this.activePanel) {\n // Even with skipSetActive: true, ensure there's an active panel if none exists\n // This maintains basic functionality while respecting skipSetActive\n this.doSetGroupAndPanelActive(to);\n }\n }\n else {\n switch (from.api.location.type) {\n case 'grid':\n this.gridview.removeView(getGridLocation(from.element));\n break;\n case 'floating': {\n const selectedFloatingGroup = this._floatingGroups.find((x) => x.group === from);\n if (!selectedFloatingGroup) {\n throw new Error('failed to find floating group');\n }\n selectedFloatingGroup.dispose();\n break;\n }\n case 'popout': {\n const selectedPopoutGroup = this._popoutGroups.find((x) => x.popoutGroup === from);\n if (!selectedPopoutGroup) {\n throw new Error('failed to find popout group');\n }\n // Remove from popout groups list to prevent automatic restoration\n const index = this._popoutGroups.indexOf(selectedPopoutGroup);\n if (index >= 0) {\n this._popoutGroups.splice(index, 1);\n }\n // Clean up the reference group (ghost) if it exists and is hidden\n if (selectedPopoutGroup.referenceGroup) {\n const referenceGroup = this.getPanel(selectedPopoutGroup.referenceGroup);\n if (referenceGroup && !referenceGroup.api.isVisible) {\n this.doRemoveGroup(referenceGroup, {\n skipActive: true,\n });\n }\n }\n // Manually dispose the window without triggering restoration\n selectedPopoutGroup.window.dispose();\n // Update group's location and containers for target\n if (to.api.location.type === 'grid') {\n from.model.renderContainer =\n this.overlayRenderContainer;\n from.model.dropTargetContainer =\n this.rootDropTargetContainer;\n from.model.location = { type: 'grid' };\n }\n else if (to.api.location.type === 'floating') {\n from.model.renderContainer =\n this.overlayRenderContainer;\n from.model.dropTargetContainer =\n this.rootDropTargetContainer;\n from.model.location = { type: 'floating' };\n }\n break;\n }\n }\n // For moves to grid locations\n if (to.api.location.type === 'grid') {\n const referenceLocation = getGridLocation(to.element);\n const dropLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, target);\n // Add to grid for all moves targeting grid location\n let size;\n switch (this.gridview.orientation) {\n case Orientation.VERTICAL:\n size =\n referenceLocation.length % 2 == 0\n ? from.api.width\n : from.api.height;\n break;\n case Orientation.HORIZONTAL:\n size =\n referenceLocation.length % 2 == 0\n ? from.api.height\n : from.api.width;\n break;\n }\n this.gridview.addView(from, size, dropLocation);\n }\n else if (to.api.location.type === 'floating') {\n // For moves to floating locations, add as floating group\n // Get the position/size from the target floating group\n const targetFloatingGroup = this._floatingGroups.find((x) => x.group === to);\n if (targetFloatingGroup) {\n const box = targetFloatingGroup.overlay.toJSON();\n // Calculate position based on available properties\n let left, top;\n if ('left' in box) {\n left = box.left + 50;\n }\n else if ('right' in box) {\n left = Math.max(0, box.right - box.width - 50);\n }\n else {\n left = 50; // Default fallback\n }\n if ('top' in box) {\n top = box.top + 50;\n }\n else if ('bottom' in box) {\n top = Math.max(0, box.bottom - box.height - 50);\n }\n else {\n top = 50; // Default fallback\n }\n this.addFloatingGroup(from, {\n height: box.height,\n width: box.width,\n position: {\n left,\n top,\n },\n });\n }\n }\n }\n from.panels.forEach((panel) => {\n this._onDidMovePanel.fire({ panel, from });\n });\n // Ensure group becomes active after move\n if (options.skipSetActive === false) {\n // Only activate when explicitly requested (skipSetActive: false)\n // Use 'to' group for non-center moves since 'from' may have been destroyed\n const targetGroup = to !== null && to !== void 0 ? to : from;\n this.doSetGroupAndPanelActive(targetGroup);\n }\n }\n doSetGroupActive(group) {\n super.doSetGroupActive(group);\n const activePanel = this.activePanel;\n if (!this._moving &&\n activePanel !== this._onDidActivePanelChange.value) {\n this._onDidActivePanelChange.fire(activePanel);\n }\n }\n doSetGroupAndPanelActive(group) {\n super.doSetGroupActive(group);\n const activePanel = this.activePanel;\n if (group &&\n this.hasMaximizedGroup() &&\n !this.isMaximizedGroup(group)) {\n this.exitMaximizedGroup();\n }\n if (!this._moving &&\n activePanel !== this._onDidActivePanelChange.value) {\n this._onDidActivePanelChange.fire(activePanel);\n }\n }\n getNextGroupId() {\n let id = this.nextGroupId.next();\n while (this._groups.has(id)) {\n id = this.nextGroupId.next();\n }\n return id;\n }\n createGroup(options) {\n if (!options) {\n options = {};\n }\n let id = options === null || options === void 0 ? void 0 : options.id;\n if (id && this._groups.has(options.id)) {\n console.warn(`dockview: Duplicate group id ${options === null || options === void 0 ? void 0 : options.id}. reassigning group id to avoid errors`);\n id = undefined;\n }\n if (!id) {\n id = this.nextGroupId.next();\n while (this._groups.has(id)) {\n id = this.nextGroupId.next();\n }\n }\n const view = new DockviewGroupPanel(this, id, options);\n view.init({ params: {}, accessor: this });\n if (!this._groups.has(view.id)) {\n const disposable = new CompositeDisposable(view.model.onTabDragStart((event) => {\n this._onWillDragPanel.fire(event);\n }), view.model.onGroupDragStart((event) => {\n this._onWillDragGroup.fire(event);\n }), view.model.onMove((event) => {\n const { groupId, itemId, target, index } = event;\n this.moveGroupOrPanel({\n from: { groupId: groupId, panelId: itemId },\n to: {\n group: view,\n position: target,\n index,\n },\n });\n }), view.model.onDidDrop((event) => {\n this._onDidDrop.fire(event);\n }), view.model.onWillDrop((event) => {\n this._onWillDrop.fire(event);\n }), view.model.onWillShowOverlay((event) => {\n if (this.options.disableDnd) {\n event.preventDefault();\n return;\n }\n this._onWillShowOverlay.fire(event);\n }), view.model.onUnhandledDragOverEvent((event) => {\n this._onUnhandledDragOverEvent.fire(event);\n }), view.model.onDidAddPanel((event) => {\n if (this._moving) {\n return;\n }\n this._onDidAddPanel.fire(event.panel);\n }), view.model.onDidRemovePanel((event) => {\n if (this._moving) {\n return;\n }\n this._onDidRemovePanel.fire(event.panel);\n }), view.model.onDidActivePanelChange((event) => {\n if (this._moving) {\n return;\n }\n if (event.panel !== this.activePanel) {\n return;\n }\n if (this._onDidActivePanelChange.value !== event.panel) {\n this._onDidActivePanelChange.fire(event.panel);\n }\n }), Event.any(view.model.onDidPanelTitleChange, view.model.onDidPanelParametersChange)(() => {\n this._bufferOnDidLayoutChange.fire();\n }));\n this._groups.set(view.id, { value: view, disposable });\n }\n // TODO: must be called after the above listeners have been setup, not an ideal pattern\n view.initialize();\n return view;\n }\n createPanel(options, group) {\n var _a, _b, _c;\n const contentComponent = options.component;\n const tabComponent = (_a = options.tabComponent) !== null && _a !== void 0 ? _a : this.options.defaultTabComponent;\n const view = new DockviewPanelModel(this, options.id, contentComponent, tabComponent);\n const panel = new DockviewPanel(options.id, contentComponent, tabComponent, this, this._api, group, view, {\n renderer: options.renderer,\n minimumWidth: options.minimumWidth,\n minimumHeight: options.minimumHeight,\n maximumWidth: options.maximumWidth,\n maximumHeight: options.maximumHeight,\n });\n panel.init({\n title: (_b = options.title) !== null && _b !== void 0 ? _b : options.id,\n params: (_c = options === null || options === void 0 ? void 0 : options.params) !== null && _c !== void 0 ? _c : {},\n });\n return panel;\n }\n createGroupAtLocation(location, size, options) {\n const group = this.createGroup(options);\n this.doAddGroup(group, location, size);\n return group;\n }\n findGroup(panel) {\n var _a;\n return (_a = Array.from(this._groups.values()).find((group) => group.value.model.containsPanel(panel))) === null || _a === void 0 ? void 0 : _a.value;\n }\n orientationAtLocation(location) {\n const rootOrientation = this.gridview.orientation;\n return location.length % 2 == 1\n ? rootOrientation\n : orthogonal(rootOrientation);\n }\n updateDropTargetModel(options) {\n if ('dndEdges' in options) {\n this._rootDropTarget.disabled =\n typeof options.dndEdges === 'boolean' &&\n options.dndEdges === false;\n if (typeof options.dndEdges === 'object' &&\n options.dndEdges !== null) {\n this._rootDropTarget.setOverlayModel(options.dndEdges);\n }\n else {\n this._rootDropTarget.setOverlayModel(DEFAULT_ROOT_OVERLAY_MODEL);\n }\n }\n if ('rootOverlayModel' in options) {\n this.updateDropTargetModel({ dndEdges: options.dndEdges });\n }\n }\n updateTheme() {\n var _a, _b;\n const theme = (_a = this._options.theme) !== null && _a !== void 0 ? _a : themeAbyss;\n this._themeClassnames.setClassNames(theme.className);\n this.gridview.margin = (_b = theme.gap) !== null && _b !== void 0 ? _b : 0;\n switch (theme.dndOverlayMounting) {\n case 'absolute':\n this.rootDropTargetContainer.disabled = false;\n break;\n case 'relative':\n default:\n this.rootDropTargetContainer.disabled = true;\n break;\n }\n }\n}\n","import { getRelativeLocation, getGridLocation, } from './gridview';\nimport { tail, sequenceEquals } from '../array';\nimport { CompositeDisposable } from '../lifecycle';\nimport { BaseGrid, toTarget, } from './baseComponentGridview';\nimport { Emitter } from '../events';\nexport class GridviewComponent extends BaseGrid {\n get orientation() {\n return this.gridview.orientation;\n }\n set orientation(value) {\n this.gridview.orientation = value;\n }\n get options() {\n return this._options;\n }\n get deserializer() {\n return this._deserializer;\n }\n set deserializer(value) {\n this._deserializer = value;\n }\n constructor(container, options) {\n var _a;\n super(container, {\n proportionalLayout: (_a = options.proportionalLayout) !== null && _a !== void 0 ? _a : true,\n orientation: options.orientation,\n styles: options.hideBorders\n ? { separatorBorder: 'transparent' }\n : undefined,\n disableAutoResizing: options.disableAutoResizing,\n className: options.className,\n });\n this._onDidLayoutfromJSON = new Emitter();\n this.onDidLayoutFromJSON = this._onDidLayoutfromJSON.event;\n this._onDidRemoveGroup = new Emitter();\n this.onDidRemoveGroup = this._onDidRemoveGroup.event;\n this._onDidAddGroup = new Emitter();\n this.onDidAddGroup = this._onDidAddGroup.event;\n this._onDidActiveGroupChange = new Emitter();\n this.onDidActiveGroupChange = this._onDidActiveGroupChange.event;\n this._options = options;\n this.addDisposables(this._onDidAddGroup, this._onDidRemoveGroup, this._onDidActiveGroupChange, this.onDidAdd((event) => {\n this._onDidAddGroup.fire(event);\n }), this.onDidRemove((event) => {\n this._onDidRemoveGroup.fire(event);\n }), this.onDidActiveChange((event) => {\n this._onDidActiveGroupChange.fire(event);\n }));\n }\n updateOptions(options) {\n super.updateOptions(options);\n const hasOrientationChanged = typeof options.orientation === 'string' &&\n this.gridview.orientation !== options.orientation;\n this._options = Object.assign(Object.assign({}, this.options), options);\n if (hasOrientationChanged) {\n this.gridview.orientation = options.orientation;\n }\n this.layout(this.gridview.width, this.gridview.height, true);\n }\n removePanel(panel) {\n this.removeGroup(panel);\n }\n /**\n * Serialize the current state of the layout\n *\n * @returns A JSON respresentation of the layout\n */\n toJSON() {\n var _a;\n const data = this.gridview.serialize();\n return {\n grid: data,\n activePanel: (_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.id,\n };\n }\n setVisible(panel, visible) {\n this.gridview.setViewVisible(getGridLocation(panel.element), visible);\n }\n setActive(panel) {\n this._groups.forEach((value, _key) => {\n value.value.setActive(panel === value.value);\n });\n }\n focus() {\n var _a;\n (_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.focus();\n }\n fromJSON(serializedGridview) {\n this.clear();\n const { grid, activePanel } = serializedGridview;\n try {\n const queue = [];\n // take note of the existing dimensions\n const width = this.width;\n const height = this.height;\n this.gridview.deserialize(grid, {\n fromJSON: (node) => {\n const { data } = node;\n const view = this.options.createComponent({\n id: data.id,\n name: data.component,\n });\n queue.push(() => view.init({\n params: data.params,\n minimumWidth: data.minimumWidth,\n maximumWidth: data.maximumWidth,\n minimumHeight: data.minimumHeight,\n maximumHeight: data.maximumHeight,\n priority: data.priority,\n snap: !!data.snap,\n accessor: this,\n isVisible: node.visible,\n }));\n this._onDidAddGroup.fire(view);\n this.registerPanel(view);\n return view;\n },\n });\n this.layout(width, height, true);\n queue.forEach((f) => f());\n if (typeof activePanel === 'string') {\n const panel = this.getPanel(activePanel);\n if (panel) {\n this.doSetGroupActive(panel);\n }\n }\n }\n catch (err) {\n /**\n * To remove a group we cannot call this.removeGroup(...) since this makes assumptions about\n * the underlying HTMLElement existing in the Gridview.\n */\n for (const group of this.groups) {\n group.dispose();\n this._groups.delete(group.id);\n this._onDidRemoveGroup.fire(group);\n }\n // fires clean-up events and clears the underlying HTML gridview.\n this.clear();\n /**\n * even though we have cleaned-up we still want to inform the caller of their error\n * and we'll do this through re-throwing the original error since afterall you would\n * expect trying to load a corrupted layout to result in an error and not silently fail...\n */\n throw err;\n }\n this._onDidLayoutfromJSON.fire();\n }\n clear() {\n const hasActiveGroup = this.activeGroup;\n const groups = Array.from(this._groups.values()); // reassign since group panels will mutate\n for (const group of groups) {\n group.disposable.dispose();\n this.doRemoveGroup(group.value, { skipActive: true });\n }\n if (hasActiveGroup) {\n this.doSetGroupActive(undefined);\n }\n this.gridview.clear();\n }\n movePanel(panel, options) {\n var _a;\n let relativeLocation;\n const removedPanel = this.gridview.remove(panel);\n const referenceGroup = (_a = this._groups.get(options.reference)) === null || _a === void 0 ? void 0 : _a.value;\n if (!referenceGroup) {\n throw new Error(`reference group ${options.reference} does not exist`);\n }\n const target = toTarget(options.direction);\n if (target === 'center') {\n throw new Error(`${target} not supported as an option`);\n }\n else {\n const location = getGridLocation(referenceGroup.element);\n relativeLocation = getRelativeLocation(this.gridview.orientation, location, target);\n }\n this.doAddGroup(removedPanel, relativeLocation, options.size);\n }\n addPanel(options) {\n var _a, _b, _c, _d;\n let relativeLocation = (_a = options.location) !== null && _a !== void 0 ? _a : [0];\n if ((_b = options.position) === null || _b === void 0 ? void 0 : _b.referencePanel) {\n const referenceGroup = (_c = this._groups.get(options.position.referencePanel)) === null || _c === void 0 ? void 0 : _c.value;\n if (!referenceGroup) {\n throw new Error(`reference group ${options.position.referencePanel} does not exist`);\n }\n const target = toTarget(options.position.direction);\n if (target === 'center') {\n throw new Error(`${target} not supported as an option`);\n }\n else {\n const location = getGridLocation(referenceGroup.element);\n relativeLocation = getRelativeLocation(this.gridview.orientation, location, target);\n }\n }\n const view = this.options.createComponent({\n id: options.id,\n name: options.component,\n });\n view.init({\n params: (_d = options.params) !== null && _d !== void 0 ? _d : {},\n minimumWidth: options.minimumWidth,\n maximumWidth: options.maximumWidth,\n minimumHeight: options.minimumHeight,\n maximumHeight: options.maximumHeight,\n priority: options.priority,\n snap: !!options.snap,\n accessor: this,\n isVisible: true,\n });\n this.registerPanel(view);\n this.doAddGroup(view, relativeLocation, options.size);\n this.doSetGroupActive(view);\n return view;\n }\n registerPanel(panel) {\n const disposable = new CompositeDisposable(panel.api.onDidFocusChange((event) => {\n if (!event.isFocused) {\n return;\n }\n this._groups.forEach((groupItem) => {\n const group = groupItem.value;\n if (group !== panel) {\n group.setActive(false);\n }\n else {\n group.setActive(true);\n }\n });\n }));\n this._groups.set(panel.id, {\n value: panel,\n disposable,\n });\n }\n moveGroup(referenceGroup, groupId, target) {\n const sourceGroup = this.getPanel(groupId);\n if (!sourceGroup) {\n throw new Error('invalid operation');\n }\n const referenceLocation = getGridLocation(referenceGroup.element);\n const targetLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, target);\n const [targetParentLocation, to] = tail(targetLocation);\n const sourceLocation = getGridLocation(sourceGroup.element);\n const [sourceParentLocation, from] = tail(sourceLocation);\n if (sequenceEquals(sourceParentLocation, targetParentLocation)) {\n // special case when 'swapping' two views within same grid location\n // if a group has one tab - we are essentially moving the 'group'\n // which is equivalent to swapping two views in this case\n this.gridview.moveView(sourceParentLocation, from, to);\n return;\n }\n // source group will become empty so delete the group\n const targetGroup = this.doRemoveGroup(sourceGroup, {\n skipActive: true,\n skipDispose: true,\n });\n // after deleting the group we need to re-evaulate the ref location\n const updatedReferenceLocation = getGridLocation(referenceGroup.element);\n const location = getRelativeLocation(this.gridview.orientation, updatedReferenceLocation, target);\n this.doAddGroup(targetGroup, location);\n }\n removeGroup(group) {\n super.removeGroup(group);\n }\n dispose() {\n super.dispose();\n this._onDidLayoutfromJSON.dispose();\n }\n}\n","import { CompositeDisposable, MutableDisposable, } from '../lifecycle';\nimport { Orientation, Sizing, Splitview, } from './splitview';\nimport { Emitter } from '../events';\nimport { Resizable } from '../resizable';\nimport { Classnames } from '../dom';\n/**\n * A high-level implementation of splitview that works using 'panels'\n */\nexport class SplitviewComponent extends Resizable {\n get panels() {\n return this.splitview.getViews();\n }\n get options() {\n return this._options;\n }\n get length() {\n return this._panels.size;\n }\n get orientation() {\n return this.splitview.orientation;\n }\n get splitview() {\n return this._splitview;\n }\n set splitview(value) {\n if (this._splitview) {\n this._splitview.dispose();\n }\n this._splitview = value;\n this._splitviewChangeDisposable.value = new CompositeDisposable(this._splitview.onDidSashEnd(() => {\n this._onDidLayoutChange.fire(undefined);\n }), this._splitview.onDidAddView((e) => this._onDidAddView.fire(e)), this._splitview.onDidRemoveView((e) => this._onDidRemoveView.fire(e)));\n }\n get minimumSize() {\n return this.splitview.minimumSize;\n }\n get maximumSize() {\n return this.splitview.maximumSize;\n }\n get height() {\n return this.splitview.orientation === Orientation.HORIZONTAL\n ? this.splitview.orthogonalSize\n : this.splitview.size;\n }\n get width() {\n return this.splitview.orientation === Orientation.HORIZONTAL\n ? this.splitview.size\n : this.splitview.orthogonalSize;\n }\n constructor(container, options) {\n var _a;\n super(document.createElement('div'), options.disableAutoResizing);\n this._splitviewChangeDisposable = new MutableDisposable();\n this._panels = new Map();\n this._onDidLayoutfromJSON = new Emitter();\n this.onDidLayoutFromJSON = this._onDidLayoutfromJSON.event;\n this._onDidAddView = new Emitter();\n this.onDidAddView = this._onDidAddView.event;\n this._onDidRemoveView = new Emitter();\n this.onDidRemoveView = this._onDidRemoveView.event;\n this._onDidLayoutChange = new Emitter();\n this.onDidLayoutChange = this._onDidLayoutChange.event;\n this.element.style.height = '100%';\n this.element.style.width = '100%';\n this._classNames = new Classnames(this.element);\n this._classNames.setClassNames((_a = options.className) !== null && _a !== void 0 ? _a : '');\n // the container is owned by the third-party, do not modify/delete it\n container.appendChild(this.element);\n this._options = options;\n this.splitview = new Splitview(this.element, options);\n this.addDisposables(this._onDidAddView, this._onDidLayoutfromJSON, this._onDidRemoveView, this._onDidLayoutChange);\n }\n updateOptions(options) {\n var _a, _b;\n if ('className' in options) {\n this._classNames.setClassNames((_a = options.className) !== null && _a !== void 0 ? _a : '');\n }\n if ('disableResizing' in options) {\n this.disableResizing = (_b = options.disableAutoResizing) !== null && _b !== void 0 ? _b : false;\n }\n if (typeof options.orientation === 'string') {\n this.splitview.orientation = options.orientation;\n }\n this._options = Object.assign(Object.assign({}, this.options), options);\n this.splitview.layout(this.splitview.size, this.splitview.orthogonalSize);\n }\n focus() {\n var _a;\n (_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.focus();\n }\n movePanel(from, to) {\n this.splitview.moveView(from, to);\n }\n setVisible(panel, visible) {\n const index = this.panels.indexOf(panel);\n this.splitview.setViewVisible(index, visible);\n }\n setActive(panel, skipFocus) {\n this._activePanel = panel;\n this.panels\n .filter((v) => v !== panel)\n .forEach((v) => {\n v.api._onDidActiveChange.fire({ isActive: false });\n if (!skipFocus) {\n v.focus();\n }\n });\n panel.api._onDidActiveChange.fire({ isActive: true });\n if (!skipFocus) {\n panel.focus();\n }\n }\n removePanel(panel, sizing) {\n const item = this._panels.get(panel.id);\n if (!item) {\n throw new Error(`unknown splitview panel ${panel.id}`);\n }\n item.dispose();\n this._panels.delete(panel.id);\n const index = this.panels.findIndex((_) => _ === panel);\n const removedView = this.splitview.removeView(index, sizing);\n removedView.dispose();\n const panels = this.panels;\n if (panels.length > 0) {\n this.setActive(panels[panels.length - 1]);\n }\n }\n getPanel(id) {\n return this.panels.find((view) => view.id === id);\n }\n addPanel(options) {\n var _a;\n if (this._panels.has(options.id)) {\n throw new Error(`panel ${options.id} already exists`);\n }\n const view = this.options.createComponent({\n id: options.id,\n name: options.component,\n });\n view.orientation = this.splitview.orientation;\n view.init({\n params: (_a = options.params) !== null && _a !== void 0 ? _a : {},\n minimumSize: options.minimumSize,\n maximumSize: options.maximumSize,\n snap: options.snap,\n priority: options.priority,\n accessor: this,\n });\n const size = typeof options.size === 'number' ? options.size : Sizing.Distribute;\n const index = typeof options.index === 'number' ? options.index : undefined;\n this.splitview.addView(view, size, index);\n this.doAddView(view);\n this.setActive(view);\n return view;\n }\n layout(width, height) {\n const [size, orthogonalSize] = this.splitview.orientation === Orientation.HORIZONTAL\n ? [width, height]\n : [height, width];\n this.splitview.layout(size, orthogonalSize);\n }\n doAddView(view) {\n const disposable = view.api.onDidFocusChange((event) => {\n if (!event.isFocused) {\n return;\n }\n this.setActive(view, true);\n });\n this._panels.set(view.id, disposable);\n }\n toJSON() {\n var _a;\n const views = this.splitview\n .getViews()\n .map((view, i) => {\n const size = this.splitview.getViewSize(i);\n return {\n size,\n data: view.toJSON(),\n snap: !!view.snap,\n priority: view.priority,\n };\n });\n return {\n views,\n activeView: (_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.id,\n size: this.splitview.size,\n orientation: this.splitview.orientation,\n };\n }\n fromJSON(serializedSplitview) {\n this.clear();\n const { views, orientation, size, activeView } = serializedSplitview;\n const queue = [];\n // take note of the existing dimensions\n const width = this.width;\n const height = this.height;\n this.splitview = new Splitview(this.element, {\n orientation,\n proportionalLayout: this.options.proportionalLayout,\n descriptor: {\n size,\n views: views.map((view) => {\n const data = view.data;\n if (this._panels.has(data.id)) {\n throw new Error(`panel ${data.id} already exists`);\n }\n const panel = this.options.createComponent({\n id: data.id,\n name: data.component,\n });\n queue.push(() => {\n var _a;\n panel.init({\n params: (_a = data.params) !== null && _a !== void 0 ? _a : {},\n minimumSize: data.minimumSize,\n maximumSize: data.maximumSize,\n snap: view.snap,\n priority: view.priority,\n accessor: this,\n });\n });\n panel.orientation = orientation;\n this.doAddView(panel);\n setTimeout(() => {\n // the original onDidAddView events are missed since they are fired before we can subcribe to them\n this._onDidAddView.fire(panel);\n }, 0);\n return { size: view.size, view: panel };\n }),\n },\n });\n this.layout(width, height);\n queue.forEach((f) => f());\n if (typeof activeView === 'string') {\n const panel = this.getPanel(activeView);\n if (panel) {\n this.setActive(panel);\n }\n }\n this._onDidLayoutfromJSON.fire();\n }\n clear() {\n for (const disposable of this._panels.values()) {\n disposable.dispose();\n }\n this._panels.clear();\n while (this.splitview.length > 0) {\n const view = this.splitview.removeView(0, Sizing.Distribute, true);\n view.dispose();\n }\n }\n dispose() {\n for (const disposable of this._panels.values()) {\n disposable.dispose();\n }\n this._panels.clear();\n const views = this.splitview.getViews();\n this._splitviewChangeDisposable.dispose();\n this.splitview.dispose();\n for (const view of views) {\n view.dispose();\n }\n this.element.remove();\n super.dispose();\n }\n}\n","import { addDisposableListener } from '../events';\nimport { CompositeDisposable, MutableDisposable } from '../lifecycle';\nimport { toggleClass } from '../dom';\nimport { createChevronRightButton, createExpandMoreButton } from '../svg';\nexport class DefaultHeader extends CompositeDisposable {\n get element() {\n return this._element;\n }\n constructor() {\n super();\n this._expandedIcon = createExpandMoreButton();\n this._collapsedIcon = createChevronRightButton();\n this.disposable = new MutableDisposable();\n this.apiRef = {\n api: null,\n };\n this._element = document.createElement('div');\n this.element.className = 'dv-default-header';\n this._content = document.createElement('span');\n this._expander = document.createElement('div');\n this._expander.className = 'dv-pane-header-icon';\n this.element.appendChild(this._expander);\n this.element.appendChild(this._content);\n this.addDisposables(addDisposableListener(this._element, 'click', () => {\n var _a;\n (_a = this.apiRef.api) === null || _a === void 0 ? void 0 : _a.setExpanded(!this.apiRef.api.isExpanded);\n }));\n }\n init(params) {\n this.apiRef.api = params.api;\n this._content.textContent = params.title;\n this.updateIcon();\n this.disposable.value = params.api.onDidExpansionChange(() => {\n this.updateIcon();\n });\n }\n updateIcon() {\n var _a;\n const isExpanded = !!((_a = this.apiRef.api) === null || _a === void 0 ? void 0 : _a.isExpanded);\n toggleClass(this._expander, 'collapsed', !isExpanded);\n if (isExpanded) {\n if (this._expander.contains(this._collapsedIcon)) {\n this._collapsedIcon.remove();\n }\n if (!this._expander.contains(this._expandedIcon)) {\n this._expander.appendChild(this._expandedIcon);\n }\n }\n else {\n if (this._expander.contains(this._expandedIcon)) {\n this._expandedIcon.remove();\n }\n if (!this._expander.contains(this._collapsedIcon)) {\n this._expander.appendChild(this._collapsedIcon);\n }\n }\n }\n update(_params) {\n //\n }\n dispose() {\n this.disposable.dispose();\n super.dispose();\n }\n}\n","import { PaneviewApi } from '../api/component.api';\nimport { Emitter } from '../events';\nimport { CompositeDisposable, MutableDisposable, } from '../lifecycle';\nimport { Orientation, Sizing } from '../splitview/splitview';\nimport { Paneview } from './paneview';\nimport { DraggablePaneviewPanel, } from './draggablePaneviewPanel';\nimport { DefaultHeader } from './defaultPaneviewHeader';\nimport { sequentialNumberGenerator } from '../math';\nimport { Resizable } from '../resizable';\nimport { Classnames } from '../dom';\nconst nextLayoutId = sequentialNumberGenerator();\nconst HEADER_SIZE = 22;\nconst MINIMUM_BODY_SIZE = 0;\nconst MAXIMUM_BODY_SIZE = Number.MAX_SAFE_INTEGER;\nexport class PaneFramework extends DraggablePaneviewPanel {\n constructor(options) {\n super({\n accessor: options.accessor,\n id: options.id,\n component: options.component,\n headerComponent: options.headerComponent,\n orientation: options.orientation,\n isExpanded: options.isExpanded,\n disableDnd: options.disableDnd,\n headerSize: options.headerSize,\n minimumBodySize: options.minimumBodySize,\n maximumBodySize: options.maximumBodySize,\n });\n this.options = options;\n }\n getBodyComponent() {\n return this.options.body;\n }\n getHeaderComponent() {\n return this.options.header;\n }\n}\nexport class PaneviewComponent extends Resizable {\n get id() {\n return this._id;\n }\n get panels() {\n return this.paneview.getPanes();\n }\n set paneview(value) {\n this._paneview = value;\n this._disposable.value = new CompositeDisposable(this._paneview.onDidChange(() => {\n this._onDidLayoutChange.fire(undefined);\n }), this._paneview.onDidAddView((e) => this._onDidAddView.fire(e)), this._paneview.onDidRemoveView((e) => this._onDidRemoveView.fire(e)));\n }\n get paneview() {\n return this._paneview;\n }\n get minimumSize() {\n return this.paneview.minimumSize;\n }\n get maximumSize() {\n return this.paneview.maximumSize;\n }\n get height() {\n return this.paneview.orientation === Orientation.HORIZONTAL\n ? this.paneview.orthogonalSize\n : this.paneview.size;\n }\n get width() {\n return this.paneview.orientation === Orientation.HORIZONTAL\n ? this.paneview.size\n : this.paneview.orthogonalSize;\n }\n get options() {\n return this._options;\n }\n constructor(container, options) {\n var _a;\n super(document.createElement('div'), options.disableAutoResizing);\n this._id = nextLayoutId.next();\n this._disposable = new MutableDisposable();\n this._viewDisposables = new Map();\n this._onDidLayoutfromJSON = new Emitter();\n this.onDidLayoutFromJSON = this._onDidLayoutfromJSON.event;\n this._onDidLayoutChange = new Emitter();\n this.onDidLayoutChange = this._onDidLayoutChange.event;\n this._onDidDrop = new Emitter();\n this.onDidDrop = this._onDidDrop.event;\n this._onDidAddView = new Emitter();\n this.onDidAddView = this._onDidAddView.event;\n this._onDidRemoveView = new Emitter();\n this.onDidRemoveView = this._onDidRemoveView.event;\n this._onUnhandledDragOverEvent = new Emitter();\n this.onUnhandledDragOverEvent = this._onUnhandledDragOverEvent.event;\n this.element.style.height = '100%';\n this.element.style.width = '100%';\n this.addDisposables(this._onDidLayoutChange, this._onDidLayoutfromJSON, this._onDidDrop, this._onDidAddView, this._onDidRemoveView, this._onUnhandledDragOverEvent);\n this._classNames = new Classnames(this.element);\n this._classNames.setClassNames((_a = options.className) !== null && _a !== void 0 ? _a : '');\n // the container is owned by the third-party, do not modify/delete it\n container.appendChild(this.element);\n this._options = options;\n this.paneview = new Paneview(this.element, {\n // only allow paneview in the vertical orientation for now\n orientation: Orientation.VERTICAL,\n });\n this.addDisposables(this._disposable);\n }\n setVisible(panel, visible) {\n const index = this.panels.indexOf(panel);\n this.paneview.setViewVisible(index, visible);\n }\n focus() {\n //noop\n }\n updateOptions(options) {\n var _a, _b;\n if ('className' in options) {\n this._classNames.setClassNames((_a = options.className) !== null && _a !== void 0 ? _a : '');\n }\n if ('disableResizing' in options) {\n this.disableResizing = (_b = options.disableAutoResizing) !== null && _b !== void 0 ? _b : false;\n }\n this._options = Object.assign(Object.assign({}, this.options), options);\n }\n addPanel(options) {\n var _a, _b;\n const body = this.options.createComponent({\n id: options.id,\n name: options.component,\n });\n let header;\n if (options.headerComponent && this.options.createHeaderComponent) {\n header = this.options.createHeaderComponent({\n id: options.id,\n name: options.headerComponent,\n });\n }\n if (!header) {\n header = new DefaultHeader();\n }\n const view = new PaneFramework({\n id: options.id,\n component: options.component,\n headerComponent: options.headerComponent,\n header,\n body,\n orientation: Orientation.VERTICAL,\n isExpanded: !!options.isExpanded,\n disableDnd: !!this.options.disableDnd,\n accessor: this,\n headerSize: (_a = options.headerSize) !== null && _a !== void 0 ? _a : HEADER_SIZE,\n minimumBodySize: MINIMUM_BODY_SIZE,\n maximumBodySize: MAXIMUM_BODY_SIZE,\n });\n this.doAddPanel(view);\n const size = typeof options.size === 'number' ? options.size : Sizing.Distribute;\n const index = typeof options.index === 'number' ? options.index : undefined;\n view.init({\n params: (_b = options.params) !== null && _b !== void 0 ? _b : {},\n minimumBodySize: options.minimumBodySize,\n maximumBodySize: options.maximumBodySize,\n isExpanded: options.isExpanded,\n title: options.title,\n containerApi: new PaneviewApi(this),\n accessor: this,\n });\n this.paneview.addPane(view, size, index);\n view.orientation = this.paneview.orientation;\n return view;\n }\n removePanel(panel) {\n const views = this.panels;\n const index = views.findIndex((_) => _ === panel);\n this.paneview.removePane(index);\n this.doRemovePanel(panel);\n }\n movePanel(from, to) {\n this.paneview.moveView(from, to);\n }\n getPanel(id) {\n return this.panels.find((view) => view.id === id);\n }\n layout(width, height) {\n const [size, orthogonalSize] = this.paneview.orientation === Orientation.HORIZONTAL\n ? [width, height]\n : [height, width];\n this.paneview.layout(size, orthogonalSize);\n }\n toJSON() {\n const maximum = (value) => value === Number.MAX_SAFE_INTEGER ||\n value === Number.POSITIVE_INFINITY\n ? undefined\n : value;\n const minimum = (value) => (value <= 0 ? undefined : value);\n const views = this.paneview\n .getPanes()\n .map((view, i) => {\n const size = this.paneview.getViewSize(i);\n return {\n size,\n data: view.toJSON(),\n minimumSize: minimum(view.minimumBodySize),\n maximumSize: maximum(view.maximumBodySize),\n headerSize: view.headerSize,\n expanded: view.isExpanded(),\n };\n });\n return {\n views,\n size: this.paneview.size,\n };\n }\n fromJSON(serializedPaneview) {\n this.clear();\n const { views, size } = serializedPaneview;\n const queue = [];\n // take note of the existing dimensions\n const width = this.width;\n const height = this.height;\n this.paneview = new Paneview(this.element, {\n orientation: Orientation.VERTICAL,\n descriptor: {\n size,\n views: views.map((view) => {\n var _a, _b, _c;\n const data = view.data;\n const body = this.options.createComponent({\n id: data.id,\n name: data.component,\n });\n let header;\n if (data.headerComponent &&\n this.options.createHeaderComponent) {\n header = this.options.createHeaderComponent({\n id: data.id,\n name: data.headerComponent,\n });\n }\n if (!header) {\n header = new DefaultHeader();\n }\n const panel = new PaneFramework({\n id: data.id,\n component: data.component,\n headerComponent: data.headerComponent,\n header,\n body,\n orientation: Orientation.VERTICAL,\n isExpanded: !!view.expanded,\n disableDnd: !!this.options.disableDnd,\n accessor: this,\n headerSize: (_a = view.headerSize) !== null && _a !== void 0 ? _a : HEADER_SIZE,\n minimumBodySize: (_b = view.minimumSize) !== null && _b !== void 0 ? _b : MINIMUM_BODY_SIZE,\n maximumBodySize: (_c = view.maximumSize) !== null && _c !== void 0 ? _c : MAXIMUM_BODY_SIZE,\n });\n this.doAddPanel(panel);\n queue.push(() => {\n var _a;\n panel.init({\n params: (_a = data.params) !== null && _a !== void 0 ? _a : {},\n minimumBodySize: view.minimumSize,\n maximumBodySize: view.maximumSize,\n title: data.title,\n isExpanded: !!view.expanded,\n containerApi: new PaneviewApi(this),\n accessor: this,\n });\n panel.orientation = this.paneview.orientation;\n });\n setTimeout(() => {\n // the original onDidAddView events are missed since they are fired before we can subcribe to them\n this._onDidAddView.fire(panel);\n }, 0);\n return { size: view.size, view: panel };\n }),\n },\n });\n this.layout(width, height);\n queue.forEach((f) => f());\n this._onDidLayoutfromJSON.fire();\n }\n clear() {\n for (const [_, value] of this._viewDisposables.entries()) {\n value.dispose();\n }\n this._viewDisposables.clear();\n this.paneview.dispose();\n }\n doAddPanel(panel) {\n const disposable = new CompositeDisposable(panel.onDidDrop((event) => {\n this._onDidDrop.fire(event);\n }), panel.onUnhandledDragOverEvent((event) => {\n this._onUnhandledDragOverEvent.fire(event);\n }));\n this._viewDisposables.set(panel.id, disposable);\n }\n doRemovePanel(panel) {\n const disposable = this._viewDisposables.get(panel.id);\n if (disposable) {\n disposable.dispose();\n this._viewDisposables.delete(panel.id);\n }\n }\n dispose() {\n super.dispose();\n for (const [_, value] of this._viewDisposables.entries()) {\n value.dispose();\n }\n this._viewDisposables.clear();\n this.element.remove();\n this.paneview.dispose();\n }\n}\n","import { BasePanelView, } from '../gridview/basePanelView';\nimport { SplitviewPanelApiImpl } from '../api/splitviewPanelApi';\nimport { Orientation } from './splitview';\nimport { Emitter } from '../events';\nexport class SplitviewPanel extends BasePanelView {\n get priority() {\n return this._priority;\n }\n set orientation(value) {\n this._orientation = value;\n }\n get orientation() {\n return this._orientation;\n }\n get minimumSize() {\n const size = typeof this._minimumSize === 'function'\n ? this._minimumSize()\n : this._minimumSize;\n if (size !== this._evaluatedMinimumSize) {\n this._evaluatedMinimumSize = size;\n this.updateConstraints();\n }\n return size;\n }\n get maximumSize() {\n const size = typeof this._maximumSize === 'function'\n ? this._maximumSize()\n : this._maximumSize;\n if (size !== this._evaluatedMaximumSize) {\n this._evaluatedMaximumSize = size;\n this.updateConstraints();\n }\n return size;\n }\n get snap() {\n return this._snap;\n }\n constructor(id, componentName) {\n super(id, componentName, new SplitviewPanelApiImpl(id, componentName));\n this._evaluatedMinimumSize = 0;\n this._evaluatedMaximumSize = Number.POSITIVE_INFINITY;\n this._minimumSize = 0;\n this._maximumSize = Number.POSITIVE_INFINITY;\n this._snap = false;\n this._onDidChange = new Emitter();\n this.onDidChange = this._onDidChange.event;\n this.api.initialize(this);\n this.addDisposables(this._onDidChange, this.api.onWillVisibilityChange((event) => {\n const { isVisible } = event;\n const { accessor } = this._params;\n accessor.setVisible(this, isVisible);\n }), this.api.onActiveChange(() => {\n const { accessor } = this._params;\n accessor.setActive(this);\n }), this.api.onDidConstraintsChangeInternal((event) => {\n if (typeof event.minimumSize === 'number' ||\n typeof event.minimumSize === 'function') {\n this._minimumSize = event.minimumSize;\n }\n if (typeof event.maximumSize === 'number' ||\n typeof event.maximumSize === 'function') {\n this._maximumSize = event.maximumSize;\n }\n this.updateConstraints();\n }), this.api.onDidSizeChange((event) => {\n this._onDidChange.fire({ size: event.size });\n }));\n }\n setVisible(isVisible) {\n this.api._onDidVisibilityChange.fire({ isVisible });\n }\n setActive(isActive) {\n this.api._onDidActiveChange.fire({ isActive });\n }\n layout(size, orthogonalSize) {\n const [width, height] = this.orientation === Orientation.HORIZONTAL\n ? [size, orthogonalSize]\n : [orthogonalSize, size];\n super.layout(width, height);\n }\n init(parameters) {\n super.init(parameters);\n this._priority = parameters.priority;\n if (parameters.minimumSize) {\n this._minimumSize = parameters.minimumSize;\n }\n if (parameters.maximumSize) {\n this._maximumSize = parameters.maximumSize;\n }\n if (parameters.snap) {\n this._snap = parameters.snap;\n }\n }\n toJSON() {\n const maximum = (value) => value === Number.MAX_SAFE_INTEGER ||\n value === Number.POSITIVE_INFINITY\n ? undefined\n : value;\n const minimum = (value) => (value <= 0 ? undefined : value);\n return Object.assign(Object.assign({}, super.toJSON()), { minimumSize: minimum(this.minimumSize), maximumSize: maximum(this.maximumSize) });\n }\n updateConstraints() {\n this.api._onDidConstraintsChange.fire({\n maximumSize: this._evaluatedMaximumSize,\n minimumSize: this._evaluatedMinimumSize,\n });\n }\n}\n","import { GridviewApi, PaneviewApi, SplitviewApi, } from '../api/component.api';\nimport { DockviewComponent } from '../dockview/dockviewComponent';\nimport { GridviewComponent } from '../gridview/gridviewComponent';\nimport { PaneviewComponent } from '../paneview/paneviewComponent';\nimport { SplitviewComponent } from '../splitview/splitviewComponent';\nexport function createDockview(element, options) {\n const component = new DockviewComponent(element, options);\n return component.api;\n}\nexport function createSplitview(element, options) {\n const component = new SplitviewComponent(element, options);\n return new SplitviewApi(component);\n}\nexport function createGridview(element, options) {\n const component = new GridviewComponent(element, options);\n return new GridviewApi(component);\n}\nexport function createPaneview(element, options) {\n const component = new PaneviewComponent(element, options);\n return new PaneviewApi(component);\n}\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n","import {\n ComponentRef,\n Injector,\n Type,\n ViewContainerRef,\n ApplicationRef,\n ComponentFactoryResolver,\n EmbeddedViewRef,\n createComponent,\n EnvironmentInjector\n} from '@angular/core';\nimport {\n IContentRenderer,\n IFrameworkPart,\n DockviewIDisposable,\n Parameters\n} from 'dockview-core';\n\nexport interface AngularRendererOptions {\n component: Type<any>;\n injector: Injector;\n environmentInjector?: EnvironmentInjector;\n}\n\nexport class AngularRenderer implements IContentRenderer, IFrameworkPart {\n private componentRef: ComponentRef<any> | null = null;\n private _element: HTMLElement | null = null;\n\n constructor(\n private options: AngularRendererOptions\n ) {}\n\n get element(): HTMLElement {\n if (!this._element) {\n throw new Error('Angular renderer not initialized');\n }\n return this._element;\n }\n\n init(parameters: Parameters): void {\n this.render(parameters);\n }\n\n update(params: Parameters): void {\n if (this.componentRef) {\n Object.keys(params).forEach(key => {\n if (this.componentRef!.instance.hasOwnProperty(key)) {\n this.componentRef!.instance[key] = params[key];\n }\n });\n this.componentRef.changeDetectorRef.detectChanges();\n }\n }\n\n private render(parameters: Parameters): void {\n try {\n // Create the component using modern Angular API\n this.componentRef = createComponent(this.options.component, {\n environmentInjector: this.options.environmentInjector || this.options.injector as EnvironmentInjector,\n elementInjector: this.options.injector\n });\n\n // Set initial parameters\n Object.keys(parameters).forEach(key => {\n if (this.componentRef!.instance.hasOwnProperty(key)) {\n this.componentRef!.instance[key] = parameters[key];\n }\n });\n\n // Get the DOM element\n const hostView = this.componentRef.hostView as EmbeddedViewRef<any>;\n this._element = hostView.rootNodes[0] as HTMLElement;\n\n // Trigger change detection\n this.componentRef.changeDetectorRef.detectChanges();\n\n } catch (error) {\n console.error('Error creating Angular component:', error);\n throw error;\n }\n }\n\n dispose(): void {\n if (this.componentRef) {\n this.componentRef.destroy();\n this.componentRef = null;\n }\n this._element = null;\n }\n}","import { Type, Injector, EnvironmentInjector } from '@angular/core';\nimport {\n GridviewPanel,\n GridviewApi,\n GridviewInitParameters,\n IFrameworkPart,\n GridviewComponent,\n} from 'dockview-core';\nimport { AngularRenderer } from '../utils/angular-renderer';\n\nexport class AngularGridviewPanel extends GridviewPanel {\n constructor(\n id: string,\n component: string,\n private readonly angularComponent: Type<any>,\n private readonly injector: Injector,\n private readonly environmentInjector?: EnvironmentInjector\n ) {\n super(id, component);\n }\n\n getComponent(): IFrameworkPart {\n return new AngularRenderer({\n component: this.angularComponent,\n injector: this.injector,\n environmentInjector: this.environmentInjector\n });\n }\n}","import { Type, Injector, EnvironmentInjector } from '@angular/core';\nimport {\n SplitviewPanel,\n SplitviewApi,\n IFrameworkPart,\n SplitviewComponent,\n} from 'dockview-core';\nimport { AngularRenderer } from '../utils/angular-renderer';\n\nexport class AngularSplitviewPanel extends SplitviewPanel {\n constructor(\n id: string,\n component: string,\n private readonly angularComponent: Type<any>,\n private readonly injector: Injector,\n private readonly environmentInjector?: EnvironmentInjector\n ) {\n super(id, component);\n }\n\n getComponent(): IFrameworkPart {\n return new AngularRenderer({\n component: this.angularComponent,\n injector: this.injector,\n environmentInjector: this.environmentInjector\n });\n }\n}","import { Type, Injector, EnvironmentInjector } from '@angular/core';\nimport {\n IPanePart,\n PanelUpdateEvent,\n PanePanelComponentInitParameter\n} from 'dockview-core';\nimport { AngularRenderer } from '../utils/angular-renderer';\n\nexport class AngularPanePart implements IPanePart {\n private renderer: AngularRenderer;\n\n constructor(\n private readonly angularComponent: Type<any>,\n private readonly injector: Injector,\n private readonly environmentInjector?: EnvironmentInjector\n ) {\n this.renderer = new AngularRenderer({\n component: this.angularComponent,\n injector: this.injector,\n environmentInjector: this.environmentInjector\n });\n }\n\n get element(): HTMLElement {\n return this.renderer.element;\n }\n\n init(parameters: PanePanelComponentInitParameter): void {\n this.renderer.init(parameters);\n }\n\n update(params: PanelUpdateEvent): void {\n this.renderer.update(params);\n }\n\n dispose(): void {\n this.renderer.dispose();\n }\n}","import { Type, Injector, EnvironmentInjector } from '@angular/core';\nimport {\n IFrameworkPart,\n Parameters,\n IContentRenderer,\n ITabRenderer,\n IWatermarkRenderer,\n IHeaderActionsRenderer,\n TabPartInitParameters,\n WatermarkRendererInitParameters,\n GroupPanelPartInitParameters,\n CreateComponentOptions,\n GridviewPanel,\n SplitviewPanel,\n IPanePart\n} from 'dockview-core';\nimport { AngularRenderer, AngularRendererOptions } from './angular-renderer';\nimport { AngularGridviewPanel } from '../gridview/angular-gridview-panel';\nimport { AngularSplitviewPanel } from '../splitview/angular-splitview-panel';\nimport { AngularPanePart } from '../paneview/angular-pane-part';\n\nexport class AngularFrameworkComponentFactory {\n constructor(\n private components: Record<string, Type<any>>,\n private injector: Injector,\n private environmentInjector?: EnvironmentInjector,\n private tabComponents?: Record<string, Type<any>>,\n private watermarkComponent?: Type<any>,\n private headerActionsComponents?: Record<string, Type<any>>,\n private defaultTabComponent?: Type<any>\n ) {}\n\n // For DockviewComponent\n createDockviewComponent(options: CreateComponentOptions): IContentRenderer {\n const component = this.components[options.name];\n if (!component) {\n throw new Error(`Component '${options.name}' not found in component registry`);\n }\n\n const renderer = new AngularRenderer({\n component,\n injector: this.injector,\n environmentInjector: this.environmentInjector\n });\n \n renderer.init(options);\n return renderer;\n }\n\n // For GridviewComponent \n createGridviewComponent(options: CreateComponentOptions): GridviewPanel {\n const component = this.components[options.name];\n if (!component) {\n throw new Error(`Component '${options.name}' not found in component registry`);\n }\n\n return new AngularGridviewPanel(\n options.id,\n options.name,\n component,\n this.injector,\n this.environmentInjector\n );\n }\n\n // For SplitviewComponent\n createSplitviewComponent(options: CreateComponentOptions): SplitviewPanel {\n const component = this.components[options.name];\n if (!component) {\n throw new Error(`Component '${options.name}' not found in component registry`);\n }\n\n return new AngularSplitviewPanel(\n options.id,\n options.name,\n component,\n this.injector,\n this.environmentInjector\n );\n }\n\n // For PaneviewComponent\n createPaneviewComponent(options: CreateComponentOptions): IPanePart {\n const component = this.components[options.name];\n if (!component) {\n throw new Error(`Component '${options.name}' not found in component registry`);\n }\n\n return new AngularPanePart(\n component,\n this.injector,\n this.environmentInjector\n );\n }\n\n // Legacy method for backward compatibility\n createComponent(options: CreateComponentOptions): IContentRenderer {\n return this.createDockviewComponent(options);\n }\n\n createTabComponent(options: CreateComponentOptions): ITabRenderer | undefined {\n let component = this.tabComponents?.[options.name];\n \n if (!component && this.defaultTabComponent) {\n component = this.defaultTabComponent;\n }\n \n if (!component) {\n return undefined;\n }\n\n const renderer = new AngularRenderer({\n component,\n injector: this.injector,\n environmentInjector: this.environmentInjector\n });\n \n renderer.init(options);\n return renderer;\n }\n\n createWatermarkComponent(): IWatermarkRenderer {\n if (!this.watermarkComponent) {\n throw new Error('Watermark component not provided');\n }\n\n const renderer = new AngularRenderer({\n component: this.watermarkComponent,\n injector: this.injector,\n environmentInjector: this.environmentInjector\n });\n \n renderer.init({});\n return renderer;\n }\n\n createHeaderActionsComponent(name: string): IHeaderActionsRenderer | undefined {\n const component = this.headerActionsComponents?.[name];\n if (!component) {\n return undefined;\n }\n\n const renderer = new AngularRenderer({\n component,\n injector: this.injector,\n environmentInjector: this.environmentInjector\n });\n \n renderer.init({});\n return renderer;\n }\n}","export function isFunction(value) {\n return typeof value === 'function';\n}\n//# sourceMappingURL=isFunction.js.map","import { isFunction } from './isFunction';\nexport function hasLift(source) {\n return isFunction(source === null || source === void 0 ? void 0 : source.lift);\n}\nexport function operate(init) {\n return function (source) {\n if (hasLift(source)) {\n return source.lift(function (liftedSource) {\n try {\n return init(liftedSource, this);\n }\n catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n//# sourceMappingURL=lift.js.map","export var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });\n//# sourceMappingURL=isArrayLike.js.map","import { isFunction } from \"./isFunction\";\nexport function isPromise(value) {\n return isFunction(value === null || value === void 0 ? void 0 : value.then);\n}\n//# sourceMappingURL=isPromise.js.map","export function createErrorClass(createImpl) {\n var _super = function (instance) {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n var ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n//# sourceMappingURL=createErrorClass.js.map","import { createErrorClass } from './createErrorClass';\nexport var UnsubscriptionError = createErrorClass(function (_super) {\n return function UnsubscriptionErrorImpl(errors) {\n _super(this);\n this.message = errors\n ? errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ')\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n };\n});\n//# sourceMappingURL=UnsubscriptionError.js.map","export function arrRemove(arr, item) {\n if (arr) {\n var index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n//# sourceMappingURL=arrRemove.js.map","import { __read, __spreadArray, __values } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { arrRemove } from './util/arrRemove';\nvar Subscription = (function () {\n function Subscription(initialTeardown) {\n this.initialTeardown = initialTeardown;\n this.closed = false;\n this._parentage = null;\n this._finalizers = null;\n }\n Subscription.prototype.unsubscribe = function () {\n var e_1, _a, e_2, _b;\n var errors;\n if (!this.closed) {\n this.closed = true;\n var _parentage = this._parentage;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n try {\n for (var _parentage_1 = __values(_parentage), _parentage_1_1 = _parentage_1.next(); !_parentage_1_1.done; _parentage_1_1 = _parentage_1.next()) {\n var parent_1 = _parentage_1_1.value;\n parent_1.remove(this);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return)) _a.call(_parentage_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n else {\n _parentage.remove(this);\n }\n }\n var initialFinalizer = this.initialTeardown;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n var _finalizers = this._finalizers;\n if (_finalizers) {\n this._finalizers = null;\n try {\n for (var _finalizers_1 = __values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); !_finalizers_1_1.done; _finalizers_1_1 = _finalizers_1.next()) {\n var finalizer = _finalizers_1_1.value;\n try {\n execFinalizer(finalizer);\n }\n catch (err) {\n errors = errors !== null && errors !== void 0 ? errors : [];\n if (err instanceof UnsubscriptionError) {\n errors = __spreadArray(__spreadArray([], __read(errors)), __read(err.errors));\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return)) _b.call(_finalizers_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n };\n Subscription.prototype.add = function (teardown) {\n var _a;\n if (teardown && teardown !== this) {\n if (this.closed) {\n execFinalizer(teardown);\n }\n else {\n if (teardown instanceof Subscription) {\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push(teardown);\n }\n }\n };\n Subscription.prototype._hasParent = function (parent) {\n var _parentage = this._parentage;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n };\n Subscription.prototype._addParent = function (parent) {\n var _parentage = this._parentage;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n };\n Subscription.prototype._removeParent = function (parent) {\n var _parentage = this._parentage;\n if (_parentage === parent) {\n this._parentage = null;\n }\n else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n };\n Subscription.prototype.remove = function (teardown) {\n var _finalizers = this._finalizers;\n _finalizers && arrRemove(_finalizers, teardown);\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n };\n Subscription.EMPTY = (function () {\n var empty = new Subscription();\n empty.closed = true;\n return empty;\n })();\n return Subscription;\n}());\nexport { Subscription };\nexport var EMPTY_SUBSCRIPTION = Subscription.EMPTY;\nexport function isSubscription(value) {\n return (value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe)));\n}\nfunction execFinalizer(finalizer) {\n if (isFunction(finalizer)) {\n finalizer();\n }\n else {\n finalizer.unsubscribe();\n }\n}\n//# sourceMappingURL=Subscription.js.map","export var config = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n//# sourceMappingURL=config.js.map","import { __read, __spreadArray } from \"tslib\";\nexport var timeoutProvider = {\n setTimeout: function (handler, timeout) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n var delegate = timeoutProvider.delegate;\n if (delegate === null || delegate === void 0 ? void 0 : delegate.setTimeout) {\n return delegate.setTimeout.apply(delegate, __spreadArray([handler, timeout], __read(args)));\n }\n return setTimeout.apply(void 0, __spreadArray([handler, timeout], __read(args)));\n },\n clearTimeout: function (handle) {\n var delegate = timeoutProvider.delegate;\n return ((delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout)(handle);\n },\n delegate: undefined,\n};\n//# sourceMappingURL=timeoutProvider.js.map","import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\nexport function reportUnhandledError(err) {\n timeoutProvider.setTimeout(function () {\n var onUnhandledError = config.onUnhandledError;\n if (onUnhandledError) {\n onUnhandledError(err);\n }\n else {\n throw err;\n }\n });\n}\n//# sourceMappingURL=reportUnhandledError.js.map","export function noop() { }\n//# sourceMappingURL=noop.js.map","import { config } from '../config';\nvar context = null;\nexport function errorContext(cb) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n var isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n var _a = context, errorThrown = _a.errorThrown, error = _a.error;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n }\n else {\n cb();\n }\n}\nexport function captureError(err) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n//# sourceMappingURL=errorContext.js.map","import { __extends } from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\nvar Subscriber = (function (_super) {\n __extends(Subscriber, _super);\n function Subscriber(destination) {\n var _this = _super.call(this) || this;\n _this.isStopped = false;\n if (destination) {\n _this.destination = destination;\n if (isSubscription(destination)) {\n destination.add(_this);\n }\n }\n else {\n _this.destination = EMPTY_OBSERVER;\n }\n return _this;\n }\n Subscriber.create = function (next, error, complete) {\n return new SafeSubscriber(next, error, complete);\n };\n Subscriber.prototype.next = function (value) {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n }\n else {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n }\n else {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n }\n else {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (!this.closed) {\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n this.destination = null;\n }\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n try {\n this.destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n };\n Subscriber.prototype._complete = function () {\n try {\n this.destination.complete();\n }\n finally {\n this.unsubscribe();\n }\n };\n return Subscriber;\n}(Subscription));\nexport { Subscriber };\nvar _bind = Function.prototype.bind;\nfunction bind(fn, thisArg) {\n return _bind.call(fn, thisArg);\n}\nvar ConsumerObserver = (function () {\n function ConsumerObserver(partialObserver) {\n this.partialObserver = partialObserver;\n }\n ConsumerObserver.prototype.next = function (value) {\n var partialObserver = this.partialObserver;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n ConsumerObserver.prototype.error = function (err) {\n var partialObserver = this.partialObserver;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n else {\n handleUnhandledError(err);\n }\n };\n ConsumerObserver.prototype.complete = function () {\n var partialObserver = this.partialObserver;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n }\n catch (error) {\n handleUnhandledError(error);\n }\n }\n };\n return ConsumerObserver;\n}());\nvar SafeSubscriber = (function (_super) {\n __extends(SafeSubscriber, _super);\n function SafeSubscriber(observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n var partialObserver;\n if (isFunction(observerOrNext) || !observerOrNext) {\n partialObserver = {\n next: (observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined),\n error: error !== null && error !== void 0 ? error : undefined,\n complete: complete !== null && complete !== void 0 ? complete : undefined,\n };\n }\n else {\n var context_1;\n if (_this && config.useDeprecatedNextContext) {\n context_1 = Object.create(observerOrNext);\n context_1.unsubscribe = function () { return _this.unsubscribe(); };\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context_1),\n error: observerOrNext.error && bind(observerOrNext.error, context_1),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context_1),\n };\n }\n else {\n partialObserver = observerOrNext;\n }\n }\n _this.destination = new ConsumerObserver(partialObserver);\n return _this;\n }\n return SafeSubscriber;\n}(Subscriber));\nexport { SafeSubscriber };\nfunction handleUnhandledError(error) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n }\n else {\n reportUnhandledError(error);\n }\n}\nfunction defaultErrorHandler(err) {\n throw err;\n}\nfunction handleStoppedNotification(notification, subscriber) {\n var onStoppedNotification = config.onStoppedNotification;\n onStoppedNotification && timeoutProvider.setTimeout(function () { return onStoppedNotification(notification, subscriber); });\n}\nexport var EMPTY_OBSERVER = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n//# sourceMappingURL=Subscriber.js.map","export var observable = (function () { return (typeof Symbol === 'function' && Symbol.observable) || '@@observable'; })();\n//# sourceMappingURL=observable.js.map","export function identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map","import { identity } from './identity';\nexport function pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\n//# sourceMappingURL=pipe.js.map","import { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription } from './Subscription';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\nvar Observable = (function () {\n function Observable(subscribe) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var _this = this;\n var subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n errorContext(function () {\n var _a = _this, operator = _a.operator, source = _a.source;\n subscriber.add(operator\n ?\n operator.call(subscriber, source)\n : source\n ?\n _this._subscribe(subscriber)\n :\n _this._trySubscribe(subscriber));\n });\n return subscriber;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n sink.error(err);\n }\n };\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscriber = new SafeSubscriber({\n next: function (value) {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n _this.subscribe(subscriber);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n var _a;\n return (_a = this.source) === null || _a === void 0 ? void 0 : _a.subscribe(subscriber);\n };\n Observable.prototype[Symbol_observable] = function () {\n return this;\n };\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n return pipeFromArray(operations)(this);\n };\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return (value = x); }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexport { Observable };\nfunction getPromiseCtor(promiseCtor) {\n var _a;\n return (_a = promiseCtor !== null && promiseCtor !== void 0 ? promiseCtor : config.Promise) !== null && _a !== void 0 ? _a : Promise;\n}\nfunction isObserver(value) {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\nfunction isSubscriber(value) {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n//# sourceMappingURL=Observable.js.map","import { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\nexport function isInteropObservable(input) {\n return isFunction(input[Symbol_observable]);\n}\n//# sourceMappingURL=isInteropObservable.js.map","import { isFunction } from './isFunction';\nexport function isAsyncIterable(obj) {\n return Symbol.asyncIterator && isFunction(obj === null || obj === void 0 ? void 0 : obj[Symbol.asyncIterator]);\n}\n//# sourceMappingURL=isAsyncIterable.js.map","export function createInvalidObservableTypeError(input) {\n return new TypeError(\"You provided \" + (input !== null && typeof input === 'object' ? 'an invalid object' : \"'\" + input + \"'\") + \" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.\");\n}\n//# sourceMappingURL=throwUnobservableError.js.map","export function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport var iterator = getSymbolIterator();\n//# sourceMappingURL=iterator.js.map","import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\nexport function isIterable(input) {\n return isFunction(input === null || input === void 0 ? void 0 : input[Symbol_iterator]);\n}\n//# sourceMappingURL=isIterable.js.map","import { __asyncGenerator, __await, __generator } from \"tslib\";\nimport { isFunction } from './isFunction';\nexport function readableStreamLikeToAsyncGenerator(readableStream) {\n return __asyncGenerator(this, arguments, function readableStreamLikeToAsyncGenerator_1() {\n var reader, _a, value, done;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n reader = readableStream.getReader();\n _b.label = 1;\n case 1:\n _b.trys.push([1, , 9, 10]);\n _b.label = 2;\n case 2:\n if (!true) return [3, 8];\n return [4, __await(reader.read())];\n case 3:\n _a = _b.sent(), value = _a.value, done = _a.done;\n if (!done) return [3, 5];\n return [4, __await(void 0)];\n case 4: return [2, _b.sent()];\n case 5: return [4, __await(value)];\n case 6: return [4, _b.sent()];\n case 7:\n _b.sent();\n return [3, 2];\n case 8: return [3, 10];\n case 9:\n reader.releaseLock();\n return [7];\n case 10: return [2];\n }\n });\n });\n}\nexport function isReadableStreamLike(obj) {\n return isFunction(obj === null || obj === void 0 ? void 0 : obj.getReader);\n}\n//# sourceMappingURL=isReadableStreamLike.js.map","import { __asyncValues, __awaiter, __generator, __values } from \"tslib\";\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isPromise } from '../util/isPromise';\nimport { Observable } from '../Observable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isAsyncIterable } from '../util/isAsyncIterable';\nimport { createInvalidObservableTypeError } from '../util/throwUnobservableError';\nimport { isIterable } from '../util/isIterable';\nimport { isReadableStreamLike, readableStreamLikeToAsyncGenerator } from '../util/isReadableStreamLike';\nimport { isFunction } from '../util/isFunction';\nimport { reportUnhandledError } from '../util/reportUnhandledError';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function innerFrom(input) {\n if (input instanceof Observable) {\n return input;\n }\n if (input != null) {\n if (isInteropObservable(input)) {\n return fromInteropObservable(input);\n }\n if (isArrayLike(input)) {\n return fromArrayLike(input);\n }\n if (isPromise(input)) {\n return fromPromise(input);\n }\n if (isAsyncIterable(input)) {\n return fromAsyncIterable(input);\n }\n if (isIterable(input)) {\n return fromIterable(input);\n }\n if (isReadableStreamLike(input)) {\n return fromReadableStreamLike(input);\n }\n }\n throw createInvalidObservableTypeError(input);\n}\nexport function fromInteropObservable(obj) {\n return new Observable(function (subscriber) {\n var obs = obj[Symbol_observable]();\n if (isFunction(obs.subscribe)) {\n return obs.subscribe(subscriber);\n }\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n });\n}\nexport function fromArrayLike(array) {\n return new Observable(function (subscriber) {\n for (var i = 0; i < array.length && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n });\n}\nexport function fromPromise(promise) {\n return new Observable(function (subscriber) {\n promise\n .then(function (value) {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, function (err) { return subscriber.error(err); })\n .then(null, reportUnhandledError);\n });\n}\nexport function fromIterable(iterable) {\n return new Observable(function (subscriber) {\n var e_1, _a;\n try {\n for (var iterable_1 = __values(iterable), iterable_1_1 = iterable_1.next(); !iterable_1_1.done; iterable_1_1 = iterable_1.next()) {\n var value = iterable_1_1.value;\n subscriber.next(value);\n if (subscriber.closed) {\n return;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (iterable_1_1 && !iterable_1_1.done && (_a = iterable_1.return)) _a.call(iterable_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n subscriber.complete();\n });\n}\nexport function fromAsyncIterable(asyncIterable) {\n return new Observable(function (subscriber) {\n process(asyncIterable, subscriber).catch(function (err) { return subscriber.error(err); });\n });\n}\nexport function fromReadableStreamLike(readableStream) {\n return fromAsyncIterable(readableStreamLikeToAsyncGenerator(readableStream));\n}\nfunction process(asyncIterable, subscriber) {\n var asyncIterable_1, asyncIterable_1_1;\n var e_2, _a;\n return __awaiter(this, void 0, void 0, function () {\n var value, e_2_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 5, 6, 11]);\n asyncIterable_1 = __asyncValues(asyncIterable);\n _b.label = 1;\n case 1: return [4, asyncIterable_1.next()];\n case 2:\n if (!(asyncIterable_1_1 = _b.sent(), !asyncIterable_1_1.done)) return [3, 4];\n value = asyncIterable_1_1.value;\n subscriber.next(value);\n if (subscriber.closed) {\n return [2];\n }\n _b.label = 3;\n case 3: return [3, 1];\n case 4: return [3, 11];\n case 5:\n e_2_1 = _b.sent();\n e_2 = { error: e_2_1 };\n return [3, 11];\n case 6:\n _b.trys.push([6, , 9, 10]);\n if (!(asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return))) return [3, 8];\n return [4, _a.call(asyncIterable_1)];\n case 7:\n _b.sent();\n _b.label = 8;\n case 8: return [3, 10];\n case 9:\n if (e_2) throw e_2.error;\n return [7];\n case 10: return [7];\n case 11:\n subscriber.complete();\n return [2];\n }\n });\n });\n}\n//# sourceMappingURL=innerFrom.js.map","import { __extends } from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\nvar OperatorSubscriber = (function (_super) {\n __extends(OperatorSubscriber, _super);\n function OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize, shouldUnsubscribe) {\n var _this = _super.call(this, destination) || this;\n _this.onFinalize = onFinalize;\n _this.shouldUnsubscribe = shouldUnsubscribe;\n _this._next = onNext\n ? function (value) {\n try {\n onNext(value);\n }\n catch (err) {\n destination.error(err);\n }\n }\n : _super.prototype._next;\n _this._error = onError\n ? function (err) {\n try {\n onError(err);\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : _super.prototype._error;\n _this._complete = onComplete\n ? function () {\n try {\n onComplete();\n }\n catch (err) {\n destination.error(err);\n }\n finally {\n this.unsubscribe();\n }\n }\n : _super.prototype._complete;\n return _this;\n }\n OperatorSubscriber.prototype.unsubscribe = function () {\n var _a;\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n var closed_1 = this.closed;\n _super.prototype.unsubscribe.call(this);\n !closed_1 && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this));\n }\n };\n return OperatorSubscriber;\n}(Subscriber));\nexport { OperatorSubscriber };\n//# sourceMappingURL=OperatorSubscriber.js.map","import { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nimport { innerFrom } from '../observable/innerFrom';\nimport { noop } from '../util/noop';\nexport function takeUntil(notifier) {\n return operate(function (source, subscriber) {\n innerFrom(notifier).subscribe(createOperatorSubscriber(subscriber, function () { return subscriber.complete(); }, noop));\n !subscriber.closed && source.subscribe(subscriber);\n });\n}\n//# sourceMappingURL=takeUntil.js.map","import { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { DockviewIDisposable } from 'dockview-core';\n\nexport class AngularDisposable implements DockviewIDisposable {\n private _isDisposed = false;\n private disposeCallbacks: (() => void)[] = [];\n\n get isDisposed(): boolean {\n return this._isDisposed;\n }\n\n addDisposeCallback(callback: () => void): void {\n if (this._isDisposed) {\n callback();\n return;\n }\n this.disposeCallbacks.push(callback);\n }\n\n dispose(): void {\n if (this._isDisposed) {\n return;\n }\n\n this._isDisposed = true;\n this.disposeCallbacks.forEach(callback => {\n try {\n callback();\n } catch (error) {\n console.error('Error in dispose callback:', error);\n }\n });\n this.disposeCallbacks = [];\n }\n}\n\nexport class AngularLifecycleManager {\n private destroySubject = new Subject<void>();\n private disposables: DockviewIDisposable[] = [];\n\n get destroy$(): Observable<void> {\n return this.destroySubject.asObservable();\n }\n\n addDisposable(disposable: DockviewIDisposable): void {\n this.disposables.push(disposable);\n }\n\n takeUntilDestroy<T>(): (source: Observable<T>) => Observable<T> {\n return takeUntil(this.destroySubject);\n }\n\n destroy(): void {\n this.destroySubject.next();\n this.destroySubject.complete();\n \n this.disposables.forEach(disposable => {\n try {\n disposable.dispose();\n } catch (error) {\n console.error('Error disposing resource:', error);\n }\n });\n this.disposables = [];\n }\n}\n\nexport function createAngularDisposable(disposeCallback?: () => void): AngularDisposable {\n const disposable = new AngularDisposable();\n if (disposeCallback) {\n disposable.addDisposeCallback(disposeCallback);\n }\n return disposable;\n}","import {\n Component,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Output,\n Type,\n ViewChild,\n ChangeDetectionStrategy,\n OnChanges,\n SimpleChanges,\n EnvironmentInjector,\n inject\n} from '@angular/core';\nimport {\n DockviewApi,\n DockviewOptions,\n DockviewReadyEvent,\n DockviewDidDropEvent,\n DockviewWillDropEvent,\n createDockview,\n PROPERTY_KEYS_DOCKVIEW,\n DockviewFrameworkOptions,\n DockviewComponentOptions\n} from 'dockview-core';\nimport { AngularFrameworkComponentFactory } from '../utils/component-factory';\nimport { AngularLifecycleManager } from '../utils/lifecycle-utils';\n\nexport interface DockviewAngularOptions extends DockviewOptions {\n components: Record<string, Type<any>>;\n tabComponents?: Record<string, Type<any>>;\n watermarkComponent?: Type<any>;\n defaultTabComponent?: Type<any>;\n leftHeaderActionsComponent?: Type<any>;\n rightHeaderActionsComponent?: Type<any>;\n prefixHeaderActionsComponent?: Type<any>;\n}\n\n@Component({\n selector: 'dv-dockview',\n template: '<div #dockviewContainer class=\"dockview-container\"></div>',\n styles: [`\n :host {\n display: block;\n width: 100%;\n height: 100%;\n }\n \n .dockview-container {\n width: 100%;\n height: 100%;\n }\n `],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DockviewAngularComponent implements OnInit, OnDestroy, OnChanges {\n @ViewChild('dockviewContainer', { static: true }) \n private containerRef!: ElementRef<HTMLDivElement>;\n\n @Input() components!: Record<string, Type<any>>;\n @Input() tabComponents?: Record<string, Type<any>>;\n @Input() watermarkComponent?: Type<any>;\n @Input() defaultTabComponent?: Type<any>;\n @Input() leftHeaderActionsComponent?: Type<any>;\n @Input() rightHeaderActionsComponent?: Type<any>;\n @Input() prefixHeaderActionsComponent?: Type<any>;\n\n // Core dockview options as inputs\n @Input() className?: string;\n @Input() orientation?: 'horizontal' | 'vertical';\n @Input() hideBorders?: boolean;\n @Input() rootOverlayModel?: 'always' | 'never';\n @Input() defaultTabComponent_?: string;\n @Input() tabHeight?: number;\n @Input() disableFloatingGroups?: boolean;\n @Input() floatingGroupBounds?: 'boundedWithinViewport';\n @Input() popoutUrl?: string;\n @Input() debug?: boolean;\n @Input() locked?: boolean;\n @Input() disableAutoResizing?: boolean;\n @Input() singleTabMode?: 'fullwidth' | 'default';\n\n @Output() ready = new EventEmitter<DockviewReadyEvent>();\n @Output() didDrop = new EventEmitter<DockviewDidDropEvent>();\n @Output() willDrop = new EventEmitter<DockviewWillDropEvent>();\n\n private dockviewApi?: DockviewApi;\n private lifecycleManager = new AngularLifecycleManager();\n private injector = inject(Injector);\n private environmentInjector = inject(EnvironmentInjector);\n\n ngOnInit(): void {\n this.initializeDockview();\n }\n\n ngOnDestroy(): void {\n this.lifecycleManager.destroy();\n if (this.dockviewApi) {\n this.dockviewApi.dispose();\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.dockviewApi) {\n const coreChanges: Partial<DockviewOptions> = {};\n let hasChanges = false;\n\n // Check for changes in core dockview properties\n PROPERTY_KEYS_DOCKVIEW.forEach(key => {\n if (changes[key] && !changes[key].isFirstChange()) {\n (coreChanges as any)[key] = changes[key].currentValue;\n hasChanges = true;\n }\n });\n\n if (hasChanges) {\n this.dockviewApi.updateOptions(coreChanges);\n }\n }\n }\n\n getDockviewApi(): DockviewApi | undefined {\n return this.dockviewApi;\n }\n\n private initializeDockview(): void {\n if (!this.components) {\n throw new Error('DockviewAngularComponent: components input is required');\n }\n\n const coreOptions = this.extractCoreOptions();\n const frameworkOptions = this.createFrameworkOptions();\n\n this.dockviewApi = createDockview(\n this.containerRef.nativeElement,\n {\n ...coreOptions,\n ...frameworkOptions\n }\n );\n\n // Set up event listeners\n this.setupEventListeners();\n\n // Emit ready event\n this.ready.emit({ api: this.dockviewApi });\n }\n\n private extractCoreOptions(): DockviewOptions {\n const coreOptions: Partial<DockviewComponentOptions> = {};\n\n PROPERTY_KEYS_DOCKVIEW.forEach(key => {\n const value = (this as any)[key];\n if (value !== undefined) {\n (coreOptions as any)[key] = value;\n }\n });\n\n return coreOptions as DockviewOptions;\n }\n\n private createFrameworkOptions(): DockviewFrameworkOptions {\n const headerActionsComponents: Record<string, Type<any>> = {};\n if (this.leftHeaderActionsComponent) {\n headerActionsComponents['left'] = this.leftHeaderActionsComponent;\n }\n if (this.rightHeaderActionsComponent) {\n headerActionsComponents['right'] = this.rightHeaderActionsComponent;\n }\n if (this.prefixHeaderActionsComponent) {\n headerActionsComponents['prefix'] = this.prefixHeaderActionsComponent;\n }\n\n const componentFactory = new AngularFrameworkComponentFactory(\n this.components,\n this.injector,\n this.environmentInjector,\n this.tabComponents,\n this.watermarkComponent,\n headerActionsComponents,\n this.defaultTabComponent\n );\n\n return {\n createComponent: (options) => {\n return componentFactory.createDockviewComponent(options);\n },\n createTabComponent: (options) => {\n return componentFactory.createTabComponent(options);\n },\n createWatermarkComponent: this.watermarkComponent\n ? () => {\n return componentFactory.createWatermarkComponent();\n }\n : undefined,\n createLeftHeaderActionComponent: this.leftHeaderActionsComponent\n ? (group) => {\n return componentFactory.createHeaderActionsComponent('left')!;\n }\n : undefined,\n createRightHeaderActionComponent: this.rightHeaderActionsComponent\n ? (group) => {\n return componentFactory.createHeaderActionsComponent('right')!;\n }\n : undefined,\n createPrefixHeaderActionComponent: this.prefixHeaderActionsComponent\n ? (group) => {\n return componentFactory.createHeaderActionsComponent('prefix')!;\n }\n : undefined\n };\n }\n\n private setupEventListeners(): void {\n if (!this.dockviewApi) {\n return;\n }\n\n // Set up event subscriptions using lifecycle manager\n const api = this.dockviewApi;\n\n if (this.didDrop.observers.length > 0) {\n const disposable = api.onDidDrop(event => {\n this.didDrop.emit(event);\n });\n this.lifecycleManager.addDisposable(disposable);\n }\n\n if (this.willDrop.observers.length > 0) {\n const disposable = api.onWillDrop(event => {\n this.willDrop.emit(event);\n });\n this.lifecycleManager.addDisposable(disposable);\n }\n }\n}","import {\n Component,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Output,\n Type,\n ViewChild,\n ChangeDetectionStrategy,\n OnChanges,\n SimpleChanges,\n EnvironmentInjector,\n inject\n} from '@angular/core';\nimport {\n GridviewApi,\n GridviewOptions,\n createGridview,\n PROPERTY_KEYS_GRIDVIEW,\n GridviewFrameworkOptions,\n GridviewComponentOptions\n} from 'dockview-core';\nimport { AngularFrameworkComponentFactory } from '../utils/component-factory';\nimport { AngularLifecycleManager } from '../utils/lifecycle-utils';\nimport { GridviewAngularReadyEvent } from './types';\n\nexport interface GridviewAngularOptions extends GridviewOptions {\n components: Record<string, Type<any>>;\n}\n\n@Component({\n selector: 'dv-gridview',\n template: '<div #gridviewContainer class=\"gridview-container\"></div>',\n styles: [`\n :host {\n display: block;\n width: 100%;\n height: 100%;\n }\n \n .gridview-container {\n width: 100%;\n height: 100%;\n }\n `],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class GridviewAngularComponent implements OnInit, OnDestroy, OnChanges {\n @ViewChild('gridviewContainer', { static: true }) \n private containerRef!: ElementRef<HTMLDivElement>;\n\n @Input() components!: Record<string, Type<any>>;\n\n // Core gridview options as inputs\n @Input() className?: string;\n @Input() orientation?: 'horizontal' | 'vertical';\n @Input() proportionalLayout?: boolean;\n @Input() hideBorders?: boolean;\n @Input() debug?: boolean;\n @Input() disableAutoResizing?: boolean;\n\n @Output() ready = new EventEmitter<GridviewAngularReadyEvent>();\n\n private gridviewApi?: GridviewApi;\n private lifecycleManager = new AngularLifecycleManager();\n private injector = inject(Injector);\n private environmentInjector = inject(EnvironmentInjector);\n\n ngOnInit(): void {\n this.initializeGridview();\n }\n\n ngOnDestroy(): void {\n this.lifecycleManager.destroy();\n if (this.gridviewApi) {\n this.gridviewApi.dispose();\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.gridviewApi) {\n const coreChanges: Partial<GridviewOptions> = {};\n let hasChanges = false;\n\n // Check for changes in core gridview properties\n PROPERTY_KEYS_GRIDVIEW.forEach(key => {\n if (changes[key] && !changes[key].isFirstChange()) {\n (coreChanges as any)[key] = changes[key].currentValue;\n hasChanges = true;\n }\n });\n\n if (hasChanges) {\n this.gridviewApi.updateOptions(coreChanges);\n }\n }\n }\n\n getGridviewApi(): GridviewApi | undefined {\n return this.gridviewApi;\n }\n\n private initializeGridview(): void {\n if (!this.components) {\n throw new Error('GridviewAngularComponent: components input is required');\n }\n\n const coreOptions = this.extractCoreOptions();\n const frameworkOptions = this.createFrameworkOptions();\n\n this.gridviewApi = createGridview(\n this.containerRef.nativeElement,\n {\n ...coreOptions,\n ...frameworkOptions\n }\n );\n\n // Emit ready event\n this.ready.emit({ api: this.gridviewApi });\n }\n\n private extractCoreOptions(): GridviewOptions {\n const coreOptions: Partial<GridviewComponentOptions> = {};\n\n PROPERTY_KEYS_GRIDVIEW.forEach(key => {\n const value = (this as any)[key];\n if (value !== undefined) {\n (coreOptions as any)[key] = value;\n }\n });\n\n return coreOptions as GridviewOptions;\n }\n\n private createFrameworkOptions(): GridviewFrameworkOptions {\n const componentFactory = new AngularFrameworkComponentFactory(\n this.components,\n this.injector,\n this.environmentInjector\n );\n\n return {\n createComponent: (options) => {\n return componentFactory.createGridviewComponent(options);\n }\n };\n }\n}","import {\n Component,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Output,\n Type,\n ViewChild,\n ChangeDetectionStrategy,\n OnChanges,\n SimpleChanges,\n EnvironmentInjector,\n inject\n} from '@angular/core';\nimport {\n PaneviewApi,\n PaneviewOptions,\n PaneviewDropEvent,\n createPaneview,\n PROPERTY_KEYS_PANEVIEW,\n PaneviewFrameworkOptions,\n PaneviewComponentOptions\n} from 'dockview-core';\nimport { AngularFrameworkComponentFactory } from '../utils/component-factory';\nimport { AngularLifecycleManager } from '../utils/lifecycle-utils';\nimport { PaneviewAngularReadyEvent } from './types';\nimport { AngularPanePart } from './angular-pane-part';\n\nexport interface PaneviewAngularOptions extends PaneviewOptions {\n components: Record<string, Type<any>>;\n headerComponents?: Record<string, Type<any>>;\n}\n\n@Component({\n selector: 'dv-paneview',\n template: '<div #paneviewContainer class=\"paneview-container\"></div>',\n styles: [`\n :host {\n display: block;\n width: 100%;\n height: 100%;\n }\n \n .paneview-container {\n width: 100%;\n height: 100%;\n }\n `],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class PaneviewAngularComponent implements OnInit, OnDestroy, OnChanges {\n @ViewChild('paneviewContainer', { static: true }) \n private containerRef!: ElementRef<HTMLDivElement>;\n\n @Input() components!: Record<string, Type<any>>;\n @Input() headerComponents?: Record<string, Type<any>>;\n\n // Core paneview options as inputs\n @Input() className?: string;\n @Input() orientation?: 'horizontal' | 'vertical';\n @Input() hideBorders?: boolean;\n @Input() debug?: boolean;\n @Input() disableAutoResizing?: boolean;\n\n @Output() ready = new EventEmitter<PaneviewAngularReadyEvent>();\n @Output() drop = new EventEmitter<PaneviewDropEvent>();\n\n private paneviewApi?: PaneviewApi;\n private lifecycleManager = new AngularLifecycleManager();\n private injector = inject(Injector);\n private environmentInjector = inject(EnvironmentInjector);\n\n ngOnInit(): void {\n this.initializePaneview();\n }\n\n ngOnDestroy(): void {\n this.lifecycleManager.destroy();\n if (this.paneviewApi) {\n this.paneviewApi.dispose();\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.paneviewApi) {\n const coreChanges: Partial<PaneviewOptions> = {};\n let hasChanges = false;\n\n // Check for changes in core paneview properties\n PROPERTY_KEYS_PANEVIEW.forEach(key => {\n if (changes[key] && !changes[key].isFirstChange()) {\n (coreChanges as any)[key] = changes[key].currentValue;\n hasChanges = true;\n }\n });\n\n if (hasChanges) {\n this.paneviewApi.updateOptions(coreChanges);\n }\n }\n }\n\n getPaneviewApi(): PaneviewApi | undefined {\n return this.paneviewApi;\n }\n\n private initializePaneview(): void {\n if (!this.components) {\n throw new Error('PaneviewAngularComponent: components input is required');\n }\n\n const coreOptions = this.extractCoreOptions();\n const frameworkOptions = this.createFrameworkOptions();\n\n this.paneviewApi = createPaneview(\n this.containerRef.nativeElement,\n {\n ...coreOptions,\n ...frameworkOptions\n }\n );\n\n // Set up event listeners\n this.setupEventListeners();\n\n // Emit ready event\n this.ready.emit({ api: this.paneviewApi });\n }\n\n private extractCoreOptions(): PaneviewOptions {\n const coreOptions: Partial<PaneviewComponentOptions> = {};\n\n PROPERTY_KEYS_PANEVIEW.forEach(key => {\n const value = (this as any)[key];\n if (value !== undefined) {\n (coreOptions as any)[key] = value;\n }\n });\n\n return coreOptions as PaneviewOptions;\n }\n\n private createFrameworkOptions(): PaneviewFrameworkOptions {\n const componentFactory = new AngularFrameworkComponentFactory(\n this.components,\n this.injector,\n this.environmentInjector,\n this.headerComponents\n );\n\n return {\n createComponent: (options) => {\n return componentFactory.createPaneviewComponent(options);\n },\n createHeaderComponent: this.headerComponents\n ? (options) => {\n return new AngularPanePart(\n this.headerComponents![options.name],\n this.injector,\n this.environmentInjector\n );\n }\n : undefined\n };\n }\n\n private setupEventListeners(): void {\n if (!this.paneviewApi) {\n return;\n }\n\n // Set up event subscriptions using lifecycle manager\n const api = this.paneviewApi;\n\n if (this.drop.observers.length > 0) {\n const disposable = api.onDidDrop(event => {\n this.drop.emit(event);\n });\n this.lifecycleManager.addDisposable(disposable);\n }\n }\n}","import {\n Component,\n ElementRef,\n EventEmitter,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Output,\n Type,\n ViewChild,\n ChangeDetectionStrategy,\n OnChanges,\n SimpleChanges,\n EnvironmentInjector,\n inject\n} from '@angular/core';\nimport {\n SplitviewApi,\n SplitviewOptions,\n createSplitview,\n PROPERTY_KEYS_SPLITVIEW,\n SplitviewFrameworkOptions,\n SplitviewComponentOptions\n} from 'dockview-core';\nimport { AngularFrameworkComponentFactory } from '../utils/component-factory';\nimport { AngularLifecycleManager } from '../utils/lifecycle-utils';\nimport { SplitviewAngularReadyEvent } from './types';\n\nexport interface SplitviewAngularOptions extends SplitviewOptions {\n components: Record<string, Type<any>>;\n}\n\n@Component({\n selector: 'dv-splitview',\n template: '<div #splitviewContainer class=\"splitview-container\"></div>',\n styles: [`\n :host {\n display: block;\n width: 100%;\n height: 100%;\n }\n \n .splitview-container {\n width: 100%;\n height: 100%;\n }\n `],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SplitviewAngularComponent implements OnInit, OnDestroy, OnChanges {\n @ViewChild('splitviewContainer', { static: true }) \n private containerRef!: ElementRef<HTMLDivElement>;\n\n @Input() components!: Record<string, Type<any>>;\n\n // Core splitview options as inputs\n @Input() className?: string;\n @Input() orientation?: 'horizontal' | 'vertical';\n @Input() proportionalLayout?: boolean;\n @Input() hideBorders?: boolean;\n @Input() debug?: boolean;\n @Input() disableAutoResizing?: boolean;\n\n @Output() ready = new EventEmitter<SplitviewAngularReadyEvent>();\n\n private splitviewApi?: SplitviewApi;\n private lifecycleManager = new AngularLifecycleManager();\n private injector = inject(Injector);\n private environmentInjector = inject(EnvironmentInjector);\n\n ngOnInit(): void {\n this.initializeSplitview();\n }\n\n ngOnDestroy(): void {\n this.lifecycleManager.destroy();\n if (this.splitviewApi) {\n this.splitviewApi.dispose();\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.splitviewApi) {\n const coreChanges: Partial<SplitviewOptions> = {};\n let hasChanges = false;\n\n // Check for changes in core splitview properties\n PROPERTY_KEYS_SPLITVIEW.forEach(key => {\n if (changes[key] && !changes[key].isFirstChange()) {\n (coreChanges as any)[key] = changes[key].currentValue;\n hasChanges = true;\n }\n });\n\n if (hasChanges) {\n this.splitviewApi.updateOptions(coreChanges);\n }\n }\n }\n\n getSplitviewApi(): SplitviewApi | undefined {\n return this.splitviewApi;\n }\n\n private initializeSplitview(): void {\n if (!this.components) {\n throw new Error('SplitviewAngularComponent: components input is required');\n }\n\n const coreOptions = this.extractCoreOptions();\n const frameworkOptions = this.createFrameworkOptions();\n\n this.splitviewApi = createSplitview(\n this.containerRef.nativeElement,\n {\n ...coreOptions,\n ...frameworkOptions\n }\n );\n\n // Emit ready event\n this.ready.emit({ api: this.splitviewApi });\n }\n\n private extractCoreOptions(): SplitviewOptions {\n const coreOptions: Partial<SplitviewComponentOptions> = {};\n\n PROPERTY_KEYS_SPLITVIEW.forEach(key => {\n const value = (this as any)[key];\n if (value !== undefined) {\n (coreOptions as any)[key] = value;\n }\n });\n\n return coreOptions as SplitviewOptions;\n }\n\n private createFrameworkOptions(): SplitviewFrameworkOptions {\n const componentFactory = new AngularFrameworkComponentFactory(\n this.components,\n this.injector,\n this.environmentInjector\n );\n\n return {\n createComponent: (options) => {\n return componentFactory.createSplitviewComponent(options);\n }\n };\n }\n}","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { DockviewAngularComponent } from './dockview/dockview-angular.component';\nimport { GridviewAngularComponent } from './gridview/gridview-angular.component';\nimport { PaneviewAngularComponent } from './paneview/paneview-angular.component';\nimport { SplitviewAngularComponent } from './splitview/splitview-angular.component';\n\n@NgModule({\n declarations: [\n DockviewAngularComponent,\n GridviewAngularComponent,\n PaneviewAngularComponent,\n SplitviewAngularComponent\n ],\n imports: [\n CommonModule\n ],\n exports: [\n DockviewAngularComponent,\n GridviewAngularComponent,\n PaneviewAngularComponent,\n SplitviewAngularComponent\n ]\n})\nexport class DockviewAngularModule { }"],"names":["Event","Disposable","Orientation","SashState","LayoutPriority","Sizing","nextLayoutId","__awaiter","this","createComponent","Symbol_observable","Symbol_iterator","Subject","DockviewAngularComponent","EventEmitter","inject","Injector","EnvironmentInjector","ViewChild","ElementRef","Input","Type","Output","Component","ChangeDetectionStrategy","GridviewAngularComponent","PaneviewAngularComponent","SplitviewAngularComponent","DockviewAngularModule","NgModule","CommonModule"],"mappings":"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","x_google_ignoreList":[0,67,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99]}
|