dockview 1.8.2 → 1.8.3

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.
Files changed (48) hide show
  1. package/dist/cjs/dockview/defaultTab.d.ts +4 -1
  2. package/dist/cjs/dockview/defaultTab.d.ts.map +1 -1
  3. package/dist/cjs/dockview/defaultTab.js +18 -11
  4. package/dist/cjs/dockview/defaultTab.js.map +1 -1
  5. package/dist/cjs/dockview/dockview.d.ts +4 -0
  6. package/dist/cjs/dockview/dockview.d.ts.map +1 -1
  7. package/dist/cjs/dockview/dockview.js +9 -0
  8. package/dist/cjs/dockview/dockview.js.map +1 -1
  9. package/dist/cjs/react.d.ts.map +1 -1
  10. package/dist/cjs/react.js.map +1 -1
  11. package/dist/cjs/types.d.ts +2 -1
  12. package/dist/cjs/types.d.ts.map +1 -1
  13. package/dist/dockview.amd.js +228 -115
  14. package/dist/dockview.amd.js.map +1 -1
  15. package/dist/dockview.amd.min.js +2 -2
  16. package/dist/dockview.amd.min.js.map +1 -1
  17. package/dist/dockview.amd.min.noStyle.js +2 -2
  18. package/dist/dockview.amd.min.noStyle.js.map +1 -1
  19. package/dist/dockview.amd.noStyle.js +227 -114
  20. package/dist/dockview.amd.noStyle.js.map +1 -1
  21. package/dist/dockview.cjs.js +228 -115
  22. package/dist/dockview.cjs.js.map +1 -1
  23. package/dist/dockview.esm.js +228 -115
  24. package/dist/dockview.esm.js.map +1 -1
  25. package/dist/dockview.esm.min.js +2 -2
  26. package/dist/dockview.esm.min.js.map +1 -1
  27. package/dist/dockview.js +228 -115
  28. package/dist/dockview.js.map +1 -1
  29. package/dist/dockview.min.js +2 -2
  30. package/dist/dockview.min.js.map +1 -1
  31. package/dist/dockview.min.noStyle.js +2 -2
  32. package/dist/dockview.min.noStyle.js.map +1 -1
  33. package/dist/dockview.noStyle.js +227 -114
  34. package/dist/dockview.noStyle.js.map +1 -1
  35. package/dist/esm/dockview/defaultTab.d.ts +4 -1
  36. package/dist/esm/dockview/defaultTab.d.ts.map +1 -1
  37. package/dist/esm/dockview/defaultTab.js +18 -11
  38. package/dist/esm/dockview/defaultTab.js.map +1 -1
  39. package/dist/esm/dockview/dockview.d.ts +4 -0
  40. package/dist/esm/dockview/dockview.d.ts.map +1 -1
  41. package/dist/esm/dockview/dockview.js +9 -0
  42. package/dist/esm/dockview/dockview.js.map +1 -1
  43. package/dist/esm/react.d.ts.map +1 -1
  44. package/dist/esm/react.js.map +1 -1
  45. package/dist/esm/types.d.ts +2 -1
  46. package/dist/esm/types.d.ts.map +1 -1
  47. package/dist/styles/dockview.css +3 -3
  48. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"dockview.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/dockview/types.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/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","../../src/react.ts","../../src/dockview/reactContentPart.ts","../../src/dockview/reactHeaderPart.ts","../../src/dockview/reactWatermarkPart.ts","../../src/dockview/headerActionsRenderer.ts","../../src/dockview/dockview.tsx","../../../node_modules/tslib/tslib.es6.js","../../src/svg.tsx","../../src/dockview/defaultTab.tsx","../../src/splitview/view.ts","../../src/splitview/splitview.tsx","../../src/gridview/view.ts","../../src/gridview/gridview.tsx","../../src/paneview/view.tsx","../../src/paneview/paneview.tsx"],"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 {\r\n constructor() {\r\n //\r\n }\r\n}\r\nexport class PanelTransfer extends TransferObject {\r\n constructor(viewId, groupId, panelId) {\r\n super();\r\n this.viewId = viewId;\r\n this.groupId = groupId;\r\n this.panelId = panelId;\r\n }\r\n}\r\nexport class PaneTransfer extends TransferObject {\r\n constructor(viewId, paneId) {\r\n super();\r\n this.viewId = viewId;\r\n this.paneId = paneId;\r\n }\r\n}\r\n/**\r\n * A singleton to store transfer data during drag & drop operations that are only valid within the application.\r\n */\r\nexport class LocalSelectionTransfer {\r\n constructor() {\r\n // protect against external instantiation\r\n }\r\n static getInstance() {\r\n return LocalSelectionTransfer.INSTANCE;\r\n }\r\n hasData(proto) {\r\n return proto && proto === this.proto;\r\n }\r\n clearData(proto) {\r\n if (this.hasData(proto)) {\r\n this.proto = undefined;\r\n this.data = undefined;\r\n }\r\n }\r\n getData(proto) {\r\n if (this.hasData(proto)) {\r\n return this.data;\r\n }\r\n return undefined;\r\n }\r\n setData(data, proto) {\r\n if (proto) {\r\n this.data = data;\r\n this.proto = proto;\r\n }\r\n }\r\n}\r\nLocalSelectionTransfer.INSTANCE = new LocalSelectionTransfer();\r\nexport function getPanelData() {\r\n const panelTransfer = LocalSelectionTransfer.getInstance();\r\n const isPanelEvent = panelTransfer.hasData(PanelTransfer.prototype);\r\n if (!isPanelEvent) {\r\n return undefined;\r\n }\r\n return panelTransfer.getData(PanelTransfer.prototype)[0];\r\n}\r\nexport function getPaneData() {\r\n const paneTransfer = LocalSelectionTransfer.getInstance();\r\n const isPanelEvent = paneTransfer.hasData(PaneTransfer.prototype);\r\n if (!isPanelEvent) {\r\n return undefined;\r\n }\r\n return paneTransfer.getData(PaneTransfer.prototype)[0];\r\n}\r\n//# sourceMappingURL=dataTransfer.js.map","export var Event;\r\n(function (Event) {\r\n Event.any = (...children) => {\r\n return (listener) => {\r\n const disposables = children.map((child) => child(listener));\r\n return {\r\n dispose: () => {\r\n disposables.forEach((d) => {\r\n d.dispose();\r\n });\r\n },\r\n };\r\n };\r\n };\r\n})(Event || (Event = {}));\r\nclass LeakageMonitor {\r\n constructor() {\r\n this.events = new Map();\r\n }\r\n get size() {\r\n return this.events.size;\r\n }\r\n add(event, stacktrace) {\r\n this.events.set(event, stacktrace);\r\n }\r\n delete(event) {\r\n this.events.delete(event);\r\n }\r\n clear() {\r\n this.events.clear();\r\n }\r\n}\r\nclass Stacktrace {\r\n static create() {\r\n var _a;\r\n return new Stacktrace((_a = new Error().stack) !== null && _a !== void 0 ? _a : '');\r\n }\r\n constructor(value) {\r\n this.value = value;\r\n }\r\n print() {\r\n console.warn(this.value);\r\n }\r\n}\r\nclass Listener {\r\n constructor(callback, stacktrace) {\r\n this.callback = callback;\r\n this.stacktrace = stacktrace;\r\n }\r\n}\r\n// relatively simple event emitter taken from https://github.com/microsoft/vscode/blob/master/src/vs/base/common/event.ts\r\nexport class Emitter {\r\n static setLeakageMonitorEnabled(isEnabled) {\r\n if (isEnabled !== Emitter.ENABLE_TRACKING) {\r\n Emitter.MEMORY_LEAK_WATCHER.clear();\r\n }\r\n Emitter.ENABLE_TRACKING = isEnabled;\r\n }\r\n constructor(options) {\r\n this.options = options;\r\n this._listeners = [];\r\n this._disposed = false;\r\n }\r\n get event() {\r\n if (!this._event) {\r\n this._event = (callback) => {\r\n var _a;\r\n if (((_a = this.options) === null || _a === void 0 ? void 0 : _a.replay) && this._last !== undefined) {\r\n callback(this._last);\r\n }\r\n const listener = new Listener(callback, Emitter.ENABLE_TRACKING ? Stacktrace.create() : undefined);\r\n this._listeners.push(listener);\r\n return {\r\n dispose: () => {\r\n const index = this._listeners.indexOf(listener);\r\n if (index > -1) {\r\n this._listeners.splice(index, 1);\r\n }\r\n else if (Emitter.ENABLE_TRACKING) {\r\n // console.warn(\r\n // `Listener already disposed`,\r\n // Stacktrace.create().print()\r\n // );\r\n }\r\n },\r\n };\r\n };\r\n if (Emitter.ENABLE_TRACKING) {\r\n Emitter.MEMORY_LEAK_WATCHER.add(this._event, Stacktrace.create());\r\n }\r\n }\r\n return this._event;\r\n }\r\n fire(e) {\r\n this._last = e;\r\n for (const listener of this._listeners) {\r\n listener.callback(e);\r\n }\r\n }\r\n dispose() {\r\n if (!this._disposed) {\r\n this._disposed = true;\r\n if (this._listeners.length > 0) {\r\n if (Emitter.ENABLE_TRACKING) {\r\n queueMicrotask(() => {\r\n var _a;\r\n // don't check until stack of execution is completed to allow for out-of-order disposals within the same execution block\r\n for (const listener of this._listeners) {\r\n console.warn((_a = listener.stacktrace) === null || _a === void 0 ? void 0 : _a.print());\r\n }\r\n });\r\n }\r\n this._listeners = [];\r\n }\r\n if (Emitter.ENABLE_TRACKING && this._event) {\r\n Emitter.MEMORY_LEAK_WATCHER.delete(this._event);\r\n }\r\n }\r\n }\r\n}\r\nEmitter.ENABLE_TRACKING = false;\r\nEmitter.MEMORY_LEAK_WATCHER = new LeakageMonitor();\r\nexport function addDisposableWindowListener(element, type, listener, options) {\r\n element.addEventListener(type, listener, options);\r\n return {\r\n dispose: () => {\r\n element.removeEventListener(type, listener, options);\r\n },\r\n };\r\n}\r\nexport function addDisposableListener(element, type, listener, options) {\r\n element.addEventListener(type, listener, options);\r\n return {\r\n dispose: () => {\r\n element.removeEventListener(type, listener, options);\r\n },\r\n };\r\n}\r\nexport class TickDelayedEvent {\r\n constructor() {\r\n this._onFired = new Emitter();\r\n this.onEvent = this._onFired.event;\r\n }\r\n fire() {\r\n if (this.timer) {\r\n clearTimeout(this.timer);\r\n }\r\n this.timer = setTimeout(() => {\r\n this._onFired.fire();\r\n clearTimeout(this.timer);\r\n });\r\n }\r\n dispose() {\r\n this._onFired.dispose();\r\n }\r\n}\r\n//# sourceMappingURL=events.js.map","export var Disposable;\r\n(function (Disposable) {\r\n Disposable.NONE = {\r\n dispose: () => {\r\n // noop\r\n },\r\n };\r\n})(Disposable || (Disposable = {}));\r\nexport class CompositeDisposable {\r\n get isDisposed() {\r\n return this._isDisposed;\r\n }\r\n static from(...args) {\r\n return new CompositeDisposable(...args);\r\n }\r\n constructor(...args) {\r\n this._isDisposed = false;\r\n this._disposables = args;\r\n }\r\n addDisposables(...args) {\r\n args.forEach((arg) => this._disposables.push(arg));\r\n }\r\n dispose() {\r\n this._disposables.forEach((arg) => arg.dispose());\r\n this._isDisposed = true;\r\n }\r\n}\r\nexport class MutableDisposable {\r\n constructor() {\r\n this._disposable = Disposable.NONE;\r\n }\r\n set value(disposable) {\r\n if (this._disposable) {\r\n this._disposable.dispose();\r\n }\r\n this._disposable = disposable;\r\n }\r\n dispose() {\r\n if (this._disposable) {\r\n this._disposable.dispose();\r\n this._disposable = Disposable.NONE;\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=lifecycle.js.map","export function createComponent(id, componentName, components = {}, frameworkComponents = {}, createFrameworkComponent, fallback) {\r\n const Component = typeof componentName === 'string'\r\n ? components[componentName]\r\n : undefined;\r\n const FrameworkComponent = typeof componentName === 'string'\r\n ? frameworkComponents[componentName]\r\n : undefined;\r\n if (Component && FrameworkComponent) {\r\n throw new Error(`Cannot create '${id}'. component '${componentName}' registered as both a component and frameworkComponent`);\r\n }\r\n if (FrameworkComponent) {\r\n if (!createFrameworkComponent) {\r\n throw new Error(`Cannot create '${id}' for framework component '${componentName}'. you must register a frameworkPanelWrapper to use framework components`);\r\n }\r\n return createFrameworkComponent.createComponent(id, componentName, FrameworkComponent);\r\n }\r\n if (!Component) {\r\n if (fallback) {\r\n return fallback();\r\n }\r\n throw new Error(`Cannot create '${id}', no component '${componentName}' provided`);\r\n }\r\n return new Component(id, componentName);\r\n}\r\n//# sourceMappingURL=componentFactory.js.map","import { Emitter, addDisposableListener, addDisposableWindowListener, } from './events';\r\nimport { CompositeDisposable } from './lifecycle';\r\nexport function watchElementResize(element, cb) {\r\n const observer = new ResizeObserver((entires) => {\r\n /**\r\n * Fast browser window resize produces Error: ResizeObserver loop limit exceeded.\r\n * The error isn't visible in browser console, doesn't affect functionality, but degrades performance.\r\n * See https://stackoverflow.com/questions/49384120/resizeobserver-loop-limit-exceeded/58701523#58701523\r\n */\r\n requestAnimationFrame(() => {\r\n const firstEntry = entires[0];\r\n cb(firstEntry);\r\n });\r\n });\r\n observer.observe(element);\r\n return {\r\n dispose: () => {\r\n observer.unobserve(element);\r\n observer.disconnect();\r\n },\r\n };\r\n}\r\nexport const removeClasses = (element, ...classes) => {\r\n for (const classname of classes) {\r\n if (element.classList.contains(classname)) {\r\n element.classList.remove(classname);\r\n }\r\n }\r\n};\r\nexport const addClasses = (element, ...classes) => {\r\n for (const classname of classes) {\r\n if (!element.classList.contains(classname)) {\r\n element.classList.add(classname);\r\n }\r\n }\r\n};\r\nexport const toggleClass = (element, className, isToggled) => {\r\n const hasClass = element.classList.contains(className);\r\n if (isToggled && !hasClass) {\r\n element.classList.add(className);\r\n }\r\n if (!isToggled && hasClass) {\r\n element.classList.remove(className);\r\n }\r\n};\r\nexport function isAncestor(testChild, testAncestor) {\r\n while (testChild) {\r\n if (testChild === testAncestor) {\r\n return true;\r\n }\r\n testChild = testChild.parentNode;\r\n }\r\n return false;\r\n}\r\nexport function getElementsByTagName(tag) {\r\n return Array.prototype.slice.call(document.getElementsByTagName(tag), 0);\r\n}\r\nexport function trackFocus(element) {\r\n return new FocusTracker(element);\r\n}\r\n/**\r\n * Track focus on an element. Ensure tabIndex is set when an HTMLElement is not focusable by default\r\n */\r\nclass FocusTracker extends CompositeDisposable {\r\n constructor(element) {\r\n super();\r\n this._onDidFocus = new Emitter();\r\n this.onDidFocus = this._onDidFocus.event;\r\n this._onDidBlur = new Emitter();\r\n this.onDidBlur = this._onDidBlur.event;\r\n this.addDisposables(this._onDidFocus, this._onDidBlur);\r\n let hasFocus = isAncestor(document.activeElement, element);\r\n let loosingFocus = false;\r\n const onFocus = () => {\r\n loosingFocus = false;\r\n if (!hasFocus) {\r\n hasFocus = true;\r\n this._onDidFocus.fire();\r\n }\r\n };\r\n const onBlur = () => {\r\n if (hasFocus) {\r\n loosingFocus = true;\r\n window.setTimeout(() => {\r\n if (loosingFocus) {\r\n loosingFocus = false;\r\n hasFocus = false;\r\n this._onDidBlur.fire();\r\n }\r\n }, 0);\r\n }\r\n };\r\n this._refreshStateHandler = () => {\r\n const currentNodeHasFocus = isAncestor(document.activeElement, element);\r\n if (currentNodeHasFocus !== hasFocus) {\r\n if (hasFocus) {\r\n onBlur();\r\n }\r\n else {\r\n onFocus();\r\n }\r\n }\r\n };\r\n if (element instanceof HTMLElement) {\r\n this.addDisposables(addDisposableListener(element, 'focus', onFocus, true));\r\n this.addDisposables(addDisposableListener(element, 'blur', onBlur, true));\r\n }\r\n else {\r\n this.addDisposables(addDisposableWindowListener(element, 'focus', onFocus, true));\r\n this.addDisposables(addDisposableWindowListener(element, 'blur', onBlur, true));\r\n }\r\n }\r\n refreshState() {\r\n this._refreshStateHandler();\r\n }\r\n}\r\n// quasi: apparently, but not really; seemingly\r\nconst QUASI_PREVENT_DEFAULT_KEY = 'dv-quasiPreventDefault';\r\n// mark an event directly for other listeners to check\r\nexport function quasiPreventDefault(event) {\r\n event[QUASI_PREVENT_DEFAULT_KEY] = true;\r\n}\r\n// check if this event has been marked\r\nexport function quasiDefaultPrevented(event) {\r\n return event[QUASI_PREVENT_DEFAULT_KEY];\r\n}\r\n//# sourceMappingURL=dom.js.map","export function tail(arr) {\r\n if (arr.length === 0) {\r\n throw new Error('Invalid tail call');\r\n }\r\n return [arr.slice(0, arr.length - 1), arr[arr.length - 1]];\r\n}\r\nexport function last(arr) {\r\n return arr.length > 0 ? arr[arr.length - 1] : undefined;\r\n}\r\nexport function sequenceEquals(arr1, arr2) {\r\n if (arr1.length !== arr2.length) {\r\n return false;\r\n }\r\n for (let i = 0; i < arr1.length; i++) {\r\n if (arr1[i] !== arr2[i]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\n/**\r\n * Pushes an element to the start of the array, if found.\r\n */\r\nexport function pushToStart(arr, value) {\r\n const index = arr.indexOf(value);\r\n if (index > -1) {\r\n arr.splice(index, 1);\r\n arr.unshift(value);\r\n }\r\n}\r\n/**\r\n * Pushes an element to the end of the array, if found.\r\n */\r\nexport function pushToEnd(arr, value) {\r\n const index = arr.indexOf(value);\r\n if (index > -1) {\r\n arr.splice(index, 1);\r\n arr.push(value);\r\n }\r\n}\r\nexport function firstIndex(array, fn) {\r\n for (let i = 0; i < array.length; i++) {\r\n const element = array[i];\r\n if (fn(element)) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n}\r\nexport function remove(array, value) {\r\n const index = array.findIndex((t) => t === value);\r\n if (index > -1) {\r\n array.splice(index, 1);\r\n return true;\r\n }\r\n return false;\r\n}\r\n//# sourceMappingURL=array.js.map","export const clamp = (value, min, max) => {\r\n if (min > max) {\r\n throw new Error(`${min} > ${max} is an invalid condition`);\r\n }\r\n return Math.min(max, Math.max(value, min));\r\n};\r\nexport const sequentialNumberGenerator = () => {\r\n let value = 1;\r\n return { next: () => (value++).toString() };\r\n};\r\nexport const range = (from, to) => {\r\n const result = [];\r\n if (typeof to !== 'number') {\r\n to = from;\r\n from = 0;\r\n }\r\n if (from <= to) {\r\n for (let i = from; i < to; i++) {\r\n result.push(i);\r\n }\r\n }\r\n else {\r\n for (let i = from; i > to; i--) {\r\n result.push(i);\r\n }\r\n }\r\n return result;\r\n};\r\n//# sourceMappingURL=math.js.map","import { clamp } from '../math';\r\nexport class ViewItem {\r\n set size(size) {\r\n this._size = size;\r\n }\r\n get size() {\r\n return this._size;\r\n }\r\n get cachedVisibleSize() {\r\n return this._cachedVisibleSize;\r\n }\r\n get visible() {\r\n return typeof this._cachedVisibleSize === 'undefined';\r\n }\r\n get minimumSize() {\r\n return this.visible ? this.view.minimumSize : 0;\r\n }\r\n get viewMinimumSize() {\r\n return this.view.minimumSize;\r\n }\r\n get maximumSize() {\r\n return this.visible ? this.view.maximumSize : 0;\r\n }\r\n get viewMaximumSize() {\r\n return this.view.maximumSize;\r\n }\r\n get priority() {\r\n return this.view.priority;\r\n }\r\n get snap() {\r\n return !!this.view.snap;\r\n }\r\n set enabled(enabled) {\r\n this.container.style.pointerEvents = enabled ? '' : 'none';\r\n }\r\n constructor(container, view, size, disposable) {\r\n this.container = container;\r\n this.view = view;\r\n this.disposable = disposable;\r\n this._cachedVisibleSize = undefined;\r\n if (typeof size === 'number') {\r\n this._size = size;\r\n this._cachedVisibleSize = undefined;\r\n container.classList.add('visible');\r\n }\r\n else {\r\n this._size = 0;\r\n this._cachedVisibleSize = size.cachedVisibleSize;\r\n }\r\n }\r\n setVisible(visible, size) {\r\n var _a;\r\n if (visible === this.visible) {\r\n return;\r\n }\r\n if (visible) {\r\n this.size = clamp((_a = this._cachedVisibleSize) !== null && _a !== void 0 ? _a : 0, this.viewMinimumSize, this.viewMaximumSize);\r\n this._cachedVisibleSize = undefined;\r\n }\r\n else {\r\n this._cachedVisibleSize =\r\n typeof size === 'number' ? size : this.size;\r\n this.size = 0;\r\n }\r\n this.container.classList.toggle('visible', visible);\r\n if (this.view.setVisible) {\r\n this.view.setVisible(visible);\r\n }\r\n }\r\n dispose() {\r\n this.disposable.dispose();\r\n return this.view;\r\n }\r\n}\r\n//# sourceMappingURL=viewItem.js.map","/*---------------------------------------------------------------------------------------------\r\n * Accreditation: This file is largly based upon the MIT licenced VSCode sourcecode found at:\r\n * https://github.com/microsoft/vscode/tree/main/src/vs/base/browser/ui/splitview\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { removeClasses, addClasses, toggleClass, getElementsByTagName, } from '../dom';\r\nimport { Emitter } from '../events';\r\nimport { pushToStart, pushToEnd, firstIndex } from '../array';\r\nimport { range, clamp } from '../math';\r\nimport { ViewItem } from './viewItem';\r\nexport var Orientation;\r\n(function (Orientation) {\r\n Orientation[\"HORIZONTAL\"] = \"HORIZONTAL\";\r\n Orientation[\"VERTICAL\"] = \"VERTICAL\";\r\n})(Orientation || (Orientation = {}));\r\nexport var SashState;\r\n(function (SashState) {\r\n SashState[SashState[\"MAXIMUM\"] = 0] = \"MAXIMUM\";\r\n SashState[SashState[\"MINIMUM\"] = 1] = \"MINIMUM\";\r\n SashState[SashState[\"DISABLED\"] = 2] = \"DISABLED\";\r\n SashState[SashState[\"ENABLED\"] = 3] = \"ENABLED\";\r\n})(SashState || (SashState = {}));\r\nexport var LayoutPriority;\r\n(function (LayoutPriority) {\r\n LayoutPriority[\"Low\"] = \"low\";\r\n LayoutPriority[\"High\"] = \"high\";\r\n LayoutPriority[\"Normal\"] = \"normal\";\r\n})(LayoutPriority || (LayoutPriority = {}));\r\nexport var Sizing;\r\n(function (Sizing) {\r\n Sizing.Distribute = { type: 'distribute' };\r\n function Split(index) {\r\n return { type: 'split', index };\r\n }\r\n Sizing.Split = Split;\r\n function Invisible(cachedVisibleSize) {\r\n return { type: 'invisible', cachedVisibleSize };\r\n }\r\n Sizing.Invisible = Invisible;\r\n})(Sizing || (Sizing = {}));\r\nexport class Splitview {\r\n get size() {\r\n return this._size;\r\n }\r\n set size(value) {\r\n this._size = value;\r\n }\r\n get orthogonalSize() {\r\n return this._orthogonalSize;\r\n }\r\n set orthogonalSize(value) {\r\n this._orthogonalSize = value;\r\n }\r\n get length() {\r\n return this.viewItems.length;\r\n }\r\n get proportions() {\r\n return this._proportions ? [...this._proportions] : undefined;\r\n }\r\n get orientation() {\r\n return this._orientation;\r\n }\r\n set orientation(value) {\r\n this._orientation = value;\r\n const tmp = this.size;\r\n this.size = this.orthogonalSize;\r\n this.orthogonalSize = tmp;\r\n removeClasses(this.element, 'horizontal', 'vertical');\r\n this.element.classList.add(this.orientation == Orientation.HORIZONTAL\r\n ? 'horizontal'\r\n : 'vertical');\r\n }\r\n get minimumSize() {\r\n return this.viewItems.reduce((r, item) => r + item.minimumSize, 0);\r\n }\r\n get maximumSize() {\r\n return this.length === 0\r\n ? Number.POSITIVE_INFINITY\r\n : this.viewItems.reduce((r, item) => r + item.maximumSize, 0);\r\n }\r\n get startSnappingEnabled() {\r\n return this._startSnappingEnabled;\r\n }\r\n set startSnappingEnabled(startSnappingEnabled) {\r\n if (this._startSnappingEnabled === startSnappingEnabled) {\r\n return;\r\n }\r\n this._startSnappingEnabled = startSnappingEnabled;\r\n this.updateSashEnablement();\r\n }\r\n get endSnappingEnabled() {\r\n return this._endSnappingEnabled;\r\n }\r\n set endSnappingEnabled(endSnappingEnabled) {\r\n if (this._endSnappingEnabled === endSnappingEnabled) {\r\n return;\r\n }\r\n this._endSnappingEnabled = endSnappingEnabled;\r\n this.updateSashEnablement();\r\n }\r\n constructor(container, options) {\r\n this.container = container;\r\n this.viewItems = [];\r\n this.sashes = [];\r\n this._size = 0;\r\n this._orthogonalSize = 0;\r\n this.contentSize = 0;\r\n this._proportions = undefined;\r\n this._startSnappingEnabled = true;\r\n this._endSnappingEnabled = true;\r\n this._onDidSashEnd = new Emitter();\r\n this.onDidSashEnd = this._onDidSashEnd.event;\r\n this._onDidAddView = new Emitter();\r\n this.onDidAddView = this._onDidAddView.event;\r\n this._onDidRemoveView = new Emitter();\r\n this.onDidRemoveView = this._onDidRemoveView.event;\r\n this.resize = (index, delta, sizes = this.viewItems.map((x) => x.size), lowPriorityIndexes, highPriorityIndexes, overloadMinDelta = Number.NEGATIVE_INFINITY, overloadMaxDelta = Number.POSITIVE_INFINITY, snapBefore, snapAfter) => {\r\n if (index < 0 || index > this.viewItems.length) {\r\n return 0;\r\n }\r\n const upIndexes = range(index, -1);\r\n const downIndexes = range(index + 1, this.viewItems.length);\r\n //\r\n if (highPriorityIndexes) {\r\n for (const i of highPriorityIndexes) {\r\n pushToStart(upIndexes, i);\r\n pushToStart(downIndexes, i);\r\n }\r\n }\r\n if (lowPriorityIndexes) {\r\n for (const i of lowPriorityIndexes) {\r\n pushToEnd(upIndexes, i);\r\n pushToEnd(downIndexes, i);\r\n }\r\n }\r\n //\r\n const upItems = upIndexes.map((i) => this.viewItems[i]);\r\n const upSizes = upIndexes.map((i) => sizes[i]);\r\n //\r\n const downItems = downIndexes.map((i) => this.viewItems[i]);\r\n const downSizes = downIndexes.map((i) => sizes[i]);\r\n //\r\n const minDeltaUp = upIndexes.reduce((_, i) => _ + this.viewItems[i].minimumSize - sizes[i], 0);\r\n const maxDeltaUp = upIndexes.reduce((_, i) => _ + this.viewItems[i].maximumSize - sizes[i], 0);\r\n //\r\n const maxDeltaDown = downIndexes.length === 0\r\n ? Number.POSITIVE_INFINITY\r\n : downIndexes.reduce((_, i) => _ + sizes[i] - this.viewItems[i].minimumSize, 0);\r\n const minDeltaDown = downIndexes.length === 0\r\n ? Number.NEGATIVE_INFINITY\r\n : downIndexes.reduce((_, i) => _ + sizes[i] - this.viewItems[i].maximumSize, 0);\r\n //\r\n const minDelta = Math.max(minDeltaUp, minDeltaDown);\r\n const maxDelta = Math.min(maxDeltaDown, maxDeltaUp);\r\n //\r\n let snapped = false;\r\n if (snapBefore) {\r\n const snapView = this.viewItems[snapBefore.index];\r\n const visible = delta >= snapBefore.limitDelta;\r\n snapped = visible !== snapView.visible;\r\n snapView.setVisible(visible, snapBefore.size);\r\n }\r\n if (!snapped && snapAfter) {\r\n const snapView = this.viewItems[snapAfter.index];\r\n const visible = delta < snapAfter.limitDelta;\r\n snapped = visible !== snapView.visible;\r\n snapView.setVisible(visible, snapAfter.size);\r\n }\r\n if (snapped) {\r\n return this.resize(index, delta, sizes, lowPriorityIndexes, highPriorityIndexes, overloadMinDelta, overloadMaxDelta);\r\n }\r\n //\r\n const tentativeDelta = clamp(delta, minDelta, maxDelta);\r\n let actualDelta = 0;\r\n //\r\n let deltaUp = tentativeDelta;\r\n for (let i = 0; i < upItems.length; i++) {\r\n const item = upItems[i];\r\n const size = clamp(upSizes[i] + deltaUp, item.minimumSize, item.maximumSize);\r\n const viewDelta = size - upSizes[i];\r\n actualDelta += viewDelta;\r\n deltaUp -= viewDelta;\r\n item.size = size;\r\n }\r\n //\r\n let deltaDown = actualDelta;\r\n for (let i = 0; i < downItems.length; i++) {\r\n const item = downItems[i];\r\n const size = clamp(downSizes[i] - deltaDown, item.minimumSize, item.maximumSize);\r\n const viewDelta = size - downSizes[i];\r\n deltaDown += viewDelta;\r\n item.size = size;\r\n }\r\n //\r\n return delta;\r\n };\r\n this._orientation = options.orientation;\r\n this.element = this.createContainer();\r\n this.proportionalLayout =\r\n options.proportionalLayout === undefined\r\n ? true\r\n : !!options.proportionalLayout;\r\n this.viewContainer = this.createViewContainer();\r\n this.sashContainer = this.createSashContainer();\r\n this.element.appendChild(this.sashContainer);\r\n this.element.appendChild(this.viewContainer);\r\n this.container.appendChild(this.element);\r\n this.style(options.styles);\r\n // We have an existing set of view, add them now\r\n if (options.descriptor) {\r\n this._size = options.descriptor.size;\r\n options.descriptor.views.forEach((viewDescriptor, index) => {\r\n const sizing = viewDescriptor.visible === undefined ||\r\n viewDescriptor.visible\r\n ? viewDescriptor.size\r\n : {\r\n type: 'invisible',\r\n cachedVisibleSize: viewDescriptor.size,\r\n };\r\n const view = viewDescriptor.view;\r\n this.addView(view, sizing, index, true\r\n // true skip layout\r\n );\r\n });\r\n // Initialize content size and proportions for first layout\r\n this.contentSize = this.viewItems.reduce((r, i) => r + i.size, 0);\r\n this.saveProportions();\r\n }\r\n }\r\n style(styles) {\r\n if ((styles === null || styles === void 0 ? void 0 : styles.separatorBorder) === 'transparent') {\r\n removeClasses(this.element, 'separator-border');\r\n this.element.style.removeProperty('--dv-separator-border');\r\n }\r\n else {\r\n addClasses(this.element, 'separator-border');\r\n if (styles === null || styles === void 0 ? void 0 : styles.separatorBorder) {\r\n this.element.style.setProperty('--dv-separator-border', styles.separatorBorder);\r\n }\r\n }\r\n }\r\n isViewVisible(index) {\r\n if (index < 0 || index >= this.viewItems.length) {\r\n throw new Error('Index out of bounds');\r\n }\r\n const viewItem = this.viewItems[index];\r\n return viewItem.visible;\r\n }\r\n setViewVisible(index, visible) {\r\n if (index < 0 || index >= this.viewItems.length) {\r\n throw new Error('Index out of bounds');\r\n }\r\n toggleClass(this.container, 'visible', visible);\r\n const viewItem = this.viewItems[index];\r\n toggleClass(this.container, 'visible', visible);\r\n viewItem.setVisible(visible, viewItem.size);\r\n this.distributeEmptySpace(index);\r\n this.layoutViews();\r\n this.saveProportions();\r\n }\r\n getViewSize(index) {\r\n if (index < 0 || index >= this.viewItems.length) {\r\n return -1;\r\n }\r\n return this.viewItems[index].size;\r\n }\r\n resizeView(index, size) {\r\n if (index < 0 || index >= this.viewItems.length) {\r\n return;\r\n }\r\n const indexes = range(this.viewItems.length).filter((i) => i !== index);\r\n const lowPriorityIndexes = [\r\n ...indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.Low),\r\n index,\r\n ];\r\n const highPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.High);\r\n const item = this.viewItems[index];\r\n size = Math.round(size);\r\n size = clamp(size, item.minimumSize, Math.min(item.maximumSize, this._size));\r\n item.size = size;\r\n this.relayout(lowPriorityIndexes, highPriorityIndexes);\r\n }\r\n getViews() {\r\n return this.viewItems.map((x) => x.view);\r\n }\r\n onDidChange(item, size) {\r\n const index = this.viewItems.indexOf(item);\r\n if (index < 0 || index >= this.viewItems.length) {\r\n return;\r\n }\r\n size = typeof size === 'number' ? size : item.size;\r\n size = clamp(size, item.minimumSize, item.maximumSize);\r\n item.size = size;\r\n this.relayout([index]);\r\n }\r\n addView(view, size = { type: 'distribute' }, index = this.viewItems.length, skipLayout) {\r\n const container = document.createElement('div');\r\n container.className = 'view';\r\n container.appendChild(view.element);\r\n let viewSize;\r\n if (typeof size === 'number') {\r\n viewSize = size;\r\n }\r\n else if (size.type === 'split') {\r\n viewSize = this.getViewSize(size.index) / 2;\r\n }\r\n else if (size.type === 'invisible') {\r\n viewSize = { cachedVisibleSize: size.cachedVisibleSize };\r\n }\r\n else {\r\n viewSize = view.minimumSize;\r\n }\r\n const disposable = view.onDidChange((newSize) => this.onDidChange(viewItem, newSize.size));\r\n const viewItem = new ViewItem(container, view, viewSize, {\r\n dispose: () => {\r\n disposable.dispose();\r\n this.viewContainer.removeChild(container);\r\n },\r\n });\r\n if (index === this.viewItems.length) {\r\n this.viewContainer.appendChild(container);\r\n }\r\n else {\r\n this.viewContainer.insertBefore(container, this.viewContainer.children.item(index));\r\n }\r\n this.viewItems.splice(index, 0, viewItem);\r\n if (this.viewItems.length > 1) {\r\n //add sash\r\n const sash = document.createElement('div');\r\n sash.className = 'sash';\r\n const onPointerStart = (event) => {\r\n for (const item of this.viewItems) {\r\n item.enabled = false;\r\n }\r\n const iframes = [\r\n ...getElementsByTagName('iframe'),\r\n ...getElementsByTagName('webview'),\r\n ];\r\n for (const iframe of iframes) {\r\n iframe.style.pointerEvents = 'none';\r\n }\r\n const start = this._orientation === Orientation.HORIZONTAL\r\n ? event.clientX\r\n : event.clientY;\r\n const sashIndex = firstIndex(this.sashes, (s) => s.container === sash);\r\n //\r\n const sizes = this.viewItems.map((x) => x.size);\r\n //\r\n let snapBefore;\r\n let snapAfter;\r\n const upIndexes = range(sashIndex, -1);\r\n const downIndexes = range(sashIndex + 1, this.viewItems.length);\r\n const minDeltaUp = upIndexes.reduce((r, i) => r + (this.viewItems[i].minimumSize - sizes[i]), 0);\r\n const maxDeltaUp = upIndexes.reduce((r, i) => r + (this.viewItems[i].viewMaximumSize - sizes[i]), 0);\r\n const maxDeltaDown = downIndexes.length === 0\r\n ? Number.POSITIVE_INFINITY\r\n : downIndexes.reduce((r, i) => r +\r\n (sizes[i] - this.viewItems[i].minimumSize), 0);\r\n const minDeltaDown = downIndexes.length === 0\r\n ? Number.NEGATIVE_INFINITY\r\n : downIndexes.reduce((r, i) => r +\r\n (sizes[i] -\r\n this.viewItems[i].viewMaximumSize), 0);\r\n const minDelta = Math.max(minDeltaUp, minDeltaDown);\r\n const maxDelta = Math.min(maxDeltaDown, maxDeltaUp);\r\n const snapBeforeIndex = this.findFirstSnapIndex(upIndexes);\r\n const snapAfterIndex = this.findFirstSnapIndex(downIndexes);\r\n if (typeof snapBeforeIndex === 'number') {\r\n const snappedViewItem = this.viewItems[snapBeforeIndex];\r\n const halfSize = Math.floor(snappedViewItem.viewMinimumSize / 2);\r\n snapBefore = {\r\n index: snapBeforeIndex,\r\n limitDelta: snappedViewItem.visible\r\n ? minDelta - halfSize\r\n : minDelta + halfSize,\r\n size: snappedViewItem.size,\r\n };\r\n }\r\n if (typeof snapAfterIndex === 'number') {\r\n const snappedViewItem = this.viewItems[snapAfterIndex];\r\n const halfSize = Math.floor(snappedViewItem.viewMinimumSize / 2);\r\n snapAfter = {\r\n index: snapAfterIndex,\r\n limitDelta: snappedViewItem.visible\r\n ? maxDelta + halfSize\r\n : maxDelta - halfSize,\r\n size: snappedViewItem.size,\r\n };\r\n }\r\n const onPointerMove = (event) => {\r\n const current = this._orientation === Orientation.HORIZONTAL\r\n ? event.clientX\r\n : event.clientY;\r\n const delta = current - start;\r\n this.resize(sashIndex, delta, sizes, undefined, undefined, minDelta, maxDelta, snapBefore, snapAfter);\r\n this.distributeEmptySpace();\r\n this.layoutViews();\r\n };\r\n const end = () => {\r\n for (const item of this.viewItems) {\r\n item.enabled = true;\r\n }\r\n for (const iframe of iframes) {\r\n iframe.style.pointerEvents = 'auto';\r\n }\r\n this.saveProportions();\r\n document.removeEventListener('pointermove', onPointerMove);\r\n document.removeEventListener('pointerup', end);\r\n document.removeEventListener('pointercancel', end);\r\n this._onDidSashEnd.fire(undefined);\r\n };\r\n document.addEventListener('pointermove', onPointerMove);\r\n document.addEventListener('pointerup', end);\r\n document.addEventListener('pointercancel', end);\r\n };\r\n sash.addEventListener('pointerdown', onPointerStart);\r\n const sashItem = {\r\n container: sash,\r\n disposable: () => {\r\n sash.removeEventListener('pointerdown', onPointerStart);\r\n this.sashContainer.removeChild(sash);\r\n },\r\n };\r\n this.sashContainer.appendChild(sash);\r\n this.sashes.push(sashItem);\r\n }\r\n if (!skipLayout) {\r\n this.relayout([index]);\r\n }\r\n if (!skipLayout &&\r\n typeof size !== 'number' &&\r\n size.type === 'distribute') {\r\n this.distributeViewSizes();\r\n }\r\n this._onDidAddView.fire(view);\r\n }\r\n distributeViewSizes() {\r\n const flexibleViewItems = [];\r\n let flexibleSize = 0;\r\n for (const item of this.viewItems) {\r\n if (item.maximumSize - item.minimumSize > 0) {\r\n flexibleViewItems.push(item);\r\n flexibleSize += item.size;\r\n }\r\n }\r\n const size = Math.floor(flexibleSize / flexibleViewItems.length);\r\n for (const item of flexibleViewItems) {\r\n item.size = clamp(size, item.minimumSize, item.maximumSize);\r\n }\r\n const indexes = range(this.viewItems.length);\r\n const lowPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.Low);\r\n const highPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.High);\r\n this.relayout(lowPriorityIndexes, highPriorityIndexes);\r\n }\r\n removeView(index, sizing, skipLayout = false) {\r\n // Remove view\r\n const viewItem = this.viewItems.splice(index, 1)[0];\r\n viewItem.dispose();\r\n // Remove sash\r\n if (this.viewItems.length >= 1) {\r\n const sashIndex = Math.max(index - 1, 0);\r\n const sashItem = this.sashes.splice(sashIndex, 1)[0];\r\n sashItem.disposable();\r\n }\r\n if (!skipLayout) {\r\n this.relayout();\r\n }\r\n if (sizing && sizing.type === 'distribute') {\r\n this.distributeViewSizes();\r\n }\r\n this._onDidRemoveView.fire(viewItem.view);\r\n return viewItem.view;\r\n }\r\n getViewCachedVisibleSize(index) {\r\n if (index < 0 || index >= this.viewItems.length) {\r\n throw new Error('Index out of bounds');\r\n }\r\n const viewItem = this.viewItems[index];\r\n return viewItem.cachedVisibleSize;\r\n }\r\n moveView(from, to) {\r\n const cachedVisibleSize = this.getViewCachedVisibleSize(from);\r\n const sizing = typeof cachedVisibleSize === 'undefined'\r\n ? this.getViewSize(from)\r\n : Sizing.Invisible(cachedVisibleSize);\r\n const view = this.removeView(from, undefined, true);\r\n this.addView(view, sizing, to);\r\n }\r\n layout(size, orthogonalSize) {\r\n const previousSize = Math.max(this.size, this.contentSize);\r\n this.size = size;\r\n this.orthogonalSize = orthogonalSize;\r\n if (!this.proportions) {\r\n const indexes = range(this.viewItems.length);\r\n const lowPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.Low);\r\n const highPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.High);\r\n this.resize(this.viewItems.length - 1, size - previousSize, undefined, lowPriorityIndexes, highPriorityIndexes);\r\n }\r\n else {\r\n for (let i = 0; i < this.viewItems.length; i++) {\r\n const item = this.viewItems[i];\r\n item.size = clamp(Math.round(this.proportions[i] * size), item.minimumSize, item.maximumSize);\r\n }\r\n }\r\n this.distributeEmptySpace();\r\n this.layoutViews();\r\n }\r\n relayout(lowPriorityIndexes, highPriorityIndexes) {\r\n const contentSize = this.viewItems.reduce((r, i) => r + i.size, 0);\r\n this.resize(this.viewItems.length - 1, this._size - contentSize, undefined, lowPriorityIndexes, highPriorityIndexes);\r\n this.distributeEmptySpace();\r\n this.layoutViews();\r\n this.saveProportions();\r\n }\r\n distributeEmptySpace(lowPriorityIndex) {\r\n const contentSize = this.viewItems.reduce((r, i) => r + i.size, 0);\r\n let emptyDelta = this.size - contentSize;\r\n const indexes = range(this.viewItems.length - 1, -1);\r\n const lowPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.Low);\r\n const highPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.High);\r\n for (const index of highPriorityIndexes) {\r\n pushToStart(indexes, index);\r\n }\r\n for (const index of lowPriorityIndexes) {\r\n pushToEnd(indexes, index);\r\n }\r\n if (typeof lowPriorityIndex === 'number') {\r\n pushToEnd(indexes, lowPriorityIndex);\r\n }\r\n for (let i = 0; emptyDelta !== 0 && i < indexes.length; i++) {\r\n const item = this.viewItems[indexes[i]];\r\n const size = clamp(item.size + emptyDelta, item.minimumSize, item.maximumSize);\r\n const viewDelta = size - item.size;\r\n emptyDelta -= viewDelta;\r\n item.size = size;\r\n }\r\n }\r\n saveProportions() {\r\n if (this.proportionalLayout && this.contentSize > 0) {\r\n this._proportions = this.viewItems.map((i) => i.size / this.contentSize);\r\n }\r\n }\r\n layoutViews() {\r\n this.contentSize = this.viewItems.reduce((r, i) => r + i.size, 0);\r\n let sum = 0;\r\n const x = [];\r\n this.updateSashEnablement();\r\n for (let i = 0; i < this.viewItems.length - 1; i++) {\r\n sum += this.viewItems[i].size;\r\n x.push(sum);\r\n const offset = Math.min(Math.max(0, sum - 2), this.size - 4);\r\n if (this._orientation === Orientation.HORIZONTAL) {\r\n this.sashes[i].container.style.left = `${offset}px`;\r\n this.sashes[i].container.style.top = `0px`;\r\n }\r\n if (this._orientation === Orientation.VERTICAL) {\r\n this.sashes[i].container.style.left = `0px`;\r\n this.sashes[i].container.style.top = `${offset}px`;\r\n }\r\n }\r\n this.viewItems.forEach((view, i) => {\r\n if (this._orientation === Orientation.HORIZONTAL) {\r\n view.container.style.width = `${view.size}px`;\r\n view.container.style.left = i == 0 ? '0px' : `${x[i - 1]}px`;\r\n view.container.style.top = '';\r\n view.container.style.height = '';\r\n }\r\n if (this._orientation === Orientation.VERTICAL) {\r\n view.container.style.height = `${view.size}px`;\r\n view.container.style.top = i == 0 ? '0px' : `${x[i - 1]}px`;\r\n view.container.style.width = '';\r\n view.container.style.left = '';\r\n }\r\n view.view.layout(view.size, this._orthogonalSize);\r\n });\r\n }\r\n findFirstSnapIndex(indexes) {\r\n // visible views first\r\n for (const index of indexes) {\r\n const viewItem = this.viewItems[index];\r\n if (!viewItem.visible) {\r\n continue;\r\n }\r\n if (viewItem.snap) {\r\n return index;\r\n }\r\n }\r\n // then, hidden views\r\n for (const index of indexes) {\r\n const viewItem = this.viewItems[index];\r\n if (viewItem.visible &&\r\n viewItem.maximumSize - viewItem.minimumSize > 0) {\r\n return undefined;\r\n }\r\n if (!viewItem.visible && viewItem.snap) {\r\n return index;\r\n }\r\n }\r\n return undefined;\r\n }\r\n updateSashEnablement() {\r\n let previous = false;\r\n const collapsesDown = this.viewItems.map((i) => (previous = i.size - i.minimumSize > 0 || previous));\r\n previous = false;\r\n const expandsDown = this.viewItems.map((i) => (previous = i.maximumSize - i.size > 0 || previous));\r\n const reverseViews = [...this.viewItems].reverse();\r\n previous = false;\r\n const collapsesUp = reverseViews\r\n .map((i) => (previous = i.size - i.minimumSize > 0 || previous))\r\n .reverse();\r\n previous = false;\r\n const expandsUp = reverseViews\r\n .map((i) => (previous = i.maximumSize - i.size > 0 || previous))\r\n .reverse();\r\n let position = 0;\r\n for (let index = 0; index < this.sashes.length; index++) {\r\n const sash = this.sashes[index];\r\n const viewItem = this.viewItems[index];\r\n position += viewItem.size;\r\n const min = !(collapsesDown[index] && expandsUp[index + 1]);\r\n const max = !(expandsDown[index] && collapsesUp[index + 1]);\r\n if (min && max) {\r\n const upIndexes = range(index, -1);\r\n const downIndexes = range(index + 1, this.viewItems.length);\r\n const snapBeforeIndex = this.findFirstSnapIndex(upIndexes);\r\n const snapAfterIndex = this.findFirstSnapIndex(downIndexes);\r\n const snappedBefore = typeof snapBeforeIndex === 'number' &&\r\n !this.viewItems[snapBeforeIndex].visible;\r\n const snappedAfter = typeof snapAfterIndex === 'number' &&\r\n !this.viewItems[snapAfterIndex].visible;\r\n if (snappedBefore &&\r\n collapsesUp[index] &&\r\n (position > 0 || this.startSnappingEnabled)) {\r\n this.updateSash(sash, SashState.MINIMUM);\r\n }\r\n else if (snappedAfter &&\r\n collapsesDown[index] &&\r\n (position < this.contentSize || this.endSnappingEnabled)) {\r\n this.updateSash(sash, SashState.MAXIMUM);\r\n }\r\n else {\r\n this.updateSash(sash, SashState.DISABLED);\r\n }\r\n }\r\n else if (min && !max) {\r\n this.updateSash(sash, SashState.MINIMUM);\r\n }\r\n else if (!min && max) {\r\n this.updateSash(sash, SashState.MAXIMUM);\r\n }\r\n else {\r\n this.updateSash(sash, SashState.ENABLED);\r\n }\r\n }\r\n }\r\n updateSash(sash, state) {\r\n toggleClass(sash.container, 'disabled', state === SashState.DISABLED);\r\n toggleClass(sash.container, 'enabled', state === SashState.ENABLED);\r\n toggleClass(sash.container, 'maximum', state === SashState.MAXIMUM);\r\n toggleClass(sash.container, 'minimum', state === SashState.MINIMUM);\r\n }\r\n createViewContainer() {\r\n const element = document.createElement('div');\r\n element.className = 'view-container';\r\n return element;\r\n }\r\n createSashContainer() {\r\n const element = document.createElement('div');\r\n element.className = 'sash-container';\r\n return element;\r\n }\r\n createContainer() {\r\n const element = document.createElement('div');\r\n const orientationClassname = this._orientation === Orientation.HORIZONTAL\r\n ? 'horizontal'\r\n : 'vertical';\r\n element.className = `split-view-container ${orientationClassname}`;\r\n return element;\r\n }\r\n dispose() {\r\n this._onDidSashEnd.dispose();\r\n this._onDidAddView.dispose();\r\n this._onDidRemoveView.dispose();\r\n for (let i = 0; i < this.element.children.length; i++) {\r\n if (this.element.children.item(i) === this.element) {\r\n this.element.removeChild(this.element);\r\n break;\r\n }\r\n }\r\n for (const viewItem of this.viewItems) {\r\n viewItem.dispose();\r\n }\r\n this.element.remove();\r\n }\r\n}\r\n//# sourceMappingURL=splitview.js.map","import { Splitview, Orientation, } from '../splitview/splitview';\r\nimport { CompositeDisposable } from '../lifecycle';\r\nimport { Emitter } from '../events';\r\nimport { addClasses, removeClasses } from '../dom';\r\nexport class Paneview extends CompositeDisposable {\r\n get onDidAddView() {\r\n return this.splitview.onDidAddView;\r\n }\r\n get onDidRemoveView() {\r\n return this.splitview.onDidRemoveView;\r\n }\r\n get minimumSize() {\r\n return this.splitview.minimumSize;\r\n }\r\n get maximumSize() {\r\n return this.splitview.maximumSize;\r\n }\r\n get orientation() {\r\n return this.splitview.orientation;\r\n }\r\n get size() {\r\n return this.splitview.size;\r\n }\r\n get orthogonalSize() {\r\n return this.splitview.orthogonalSize;\r\n }\r\n constructor(container, options) {\r\n var _a;\r\n super();\r\n this.paneItems = [];\r\n this.skipAnimation = false;\r\n this._onDidChange = new Emitter();\r\n this.onDidChange = this._onDidChange.event;\r\n this._orientation = (_a = options.orientation) !== null && _a !== void 0 ? _a : Orientation.VERTICAL;\r\n this.element = document.createElement('div');\r\n this.element.className = 'pane-container';\r\n container.appendChild(this.element);\r\n this.splitview = new Splitview(this.element, {\r\n orientation: this._orientation,\r\n proportionalLayout: false,\r\n descriptor: options.descriptor,\r\n });\r\n // if we've added views from the descriptor we need to\r\n // add the panes to our Pane array and setup animation\r\n this.getPanes().forEach((pane) => {\r\n const disposable = new CompositeDisposable(pane.onDidChangeExpansionState(() => {\r\n this.setupAnimation();\r\n this._onDidChange.fire(undefined);\r\n }));\r\n const paneItem = {\r\n pane,\r\n disposable: {\r\n dispose: () => {\r\n disposable.dispose();\r\n },\r\n },\r\n };\r\n this.paneItems.push(paneItem);\r\n pane.orthogonalSize = this.splitview.orthogonalSize;\r\n });\r\n this.addDisposables(this._onDidChange, this.splitview.onDidSashEnd(() => {\r\n this._onDidChange.fire(undefined);\r\n }), this.splitview.onDidAddView(() => {\r\n this._onDidChange.fire();\r\n }), this.splitview.onDidRemoveView(() => {\r\n this._onDidChange.fire();\r\n }));\r\n }\r\n addPane(pane, size, index = this.splitview.length, skipLayout = false) {\r\n const disposable = pane.onDidChangeExpansionState(() => {\r\n this.setupAnimation();\r\n this._onDidChange.fire(undefined);\r\n });\r\n const paneItem = {\r\n pane,\r\n disposable: {\r\n dispose: () => {\r\n disposable.dispose();\r\n },\r\n },\r\n };\r\n this.paneItems.splice(index, 0, paneItem);\r\n pane.orthogonalSize = this.splitview.orthogonalSize;\r\n this.splitview.addView(pane, size, index, skipLayout);\r\n }\r\n getViewSize(index) {\r\n return this.splitview.getViewSize(index);\r\n }\r\n getPanes() {\r\n return this.splitview.getViews();\r\n }\r\n removePane(index, options = { skipDispose: false }) {\r\n const paneItem = this.paneItems.splice(index, 1)[0];\r\n this.splitview.removeView(index);\r\n if (!options.skipDispose) {\r\n paneItem.disposable.dispose();\r\n paneItem.pane.dispose();\r\n }\r\n return paneItem;\r\n }\r\n moveView(from, to) {\r\n if (from === to) {\r\n return;\r\n }\r\n const view = this.removePane(from, { skipDispose: true });\r\n this.skipAnimation = true;\r\n try {\r\n this.addPane(view.pane, view.pane.size, to, false);\r\n }\r\n finally {\r\n this.skipAnimation = false;\r\n }\r\n }\r\n layout(size, orthogonalSize) {\r\n this.splitview.layout(size, orthogonalSize);\r\n }\r\n setupAnimation() {\r\n if (this.skipAnimation) {\r\n return;\r\n }\r\n if (this.animationTimer) {\r\n clearTimeout(this.animationTimer);\r\n this.animationTimer = undefined;\r\n }\r\n addClasses(this.element, 'animated');\r\n this.animationTimer = setTimeout(() => {\r\n this.animationTimer = undefined;\r\n removeClasses(this.element, 'animated');\r\n }, 200);\r\n }\r\n dispose() {\r\n super.dispose();\r\n if (this.animationTimer) {\r\n clearTimeout(this.animationTimer);\r\n this.animationTimer = undefined;\r\n }\r\n this.paneItems.forEach((paneItem) => {\r\n paneItem.disposable.dispose();\r\n paneItem.pane.dispose();\r\n });\r\n this.paneItems = [];\r\n this.splitview.dispose();\r\n this.element.remove();\r\n }\r\n}\r\n//# sourceMappingURL=paneview.js.map","/*---------------------------------------------------------------------------------------------\r\n * Accreditation: This file is largly based upon the MIT licenced VSCode sourcecode found at:\r\n * https://github.com/microsoft/vscode/tree/main/src/vs/base/browser/ui/grid\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Orientation } from '../splitview/splitview';\r\nimport { Emitter } from '../events';\r\nexport class LeafNode {\r\n get minimumWidth() {\r\n return this.view.minimumWidth;\r\n }\r\n get maximumWidth() {\r\n return this.view.maximumWidth;\r\n }\r\n get minimumHeight() {\r\n return this.view.minimumHeight;\r\n }\r\n get maximumHeight() {\r\n return this.view.maximumHeight;\r\n }\r\n get priority() {\r\n return this.view.priority;\r\n }\r\n get snap() {\r\n return this.view.snap;\r\n }\r\n get minimumSize() {\r\n return this.orientation === Orientation.HORIZONTAL\r\n ? this.minimumHeight\r\n : this.minimumWidth;\r\n }\r\n get maximumSize() {\r\n return this.orientation === Orientation.HORIZONTAL\r\n ? this.maximumHeight\r\n : this.maximumWidth;\r\n }\r\n get minimumOrthogonalSize() {\r\n return this.orientation === Orientation.HORIZONTAL\r\n ? this.minimumWidth\r\n : this.minimumHeight;\r\n }\r\n get maximumOrthogonalSize() {\r\n return this.orientation === Orientation.HORIZONTAL\r\n ? this.maximumWidth\r\n : this.maximumHeight;\r\n }\r\n get orthogonalSize() {\r\n return this._orthogonalSize;\r\n }\r\n get size() {\r\n return this._size;\r\n }\r\n get element() {\r\n return this.view.element;\r\n }\r\n get width() {\r\n return this.orientation === Orientation.HORIZONTAL\r\n ? this.orthogonalSize\r\n : this.size;\r\n }\r\n get height() {\r\n return this.orientation === Orientation.HORIZONTAL\r\n ? this.size\r\n : this.orthogonalSize;\r\n }\r\n constructor(view, orientation, orthogonalSize, size = 0) {\r\n this.view = view;\r\n this.orientation = orientation;\r\n this._onDidChange = new Emitter();\r\n this.onDidChange = this._onDidChange.event;\r\n this._orthogonalSize = orthogonalSize;\r\n this._size = size;\r\n this._disposable = this.view.onDidChange((event) => {\r\n if (event) {\r\n this._onDidChange.fire({\r\n size: this.orientation === Orientation.VERTICAL\r\n ? event.width\r\n : event.height,\r\n orthogonalSize: this.orientation === Orientation.VERTICAL\r\n ? event.height\r\n : event.width,\r\n });\r\n }\r\n else {\r\n this._onDidChange.fire({});\r\n }\r\n });\r\n }\r\n setVisible(visible) {\r\n if (this.view.setVisible) {\r\n this.view.setVisible(visible);\r\n this._onDidChange.fire({});\r\n }\r\n }\r\n layout(size, orthogonalSize) {\r\n this._size = size;\r\n this._orthogonalSize = orthogonalSize;\r\n this.view.layout(this.width, this.height);\r\n }\r\n dispose() {\r\n this._onDidChange.dispose();\r\n this._disposable.dispose();\r\n }\r\n}\r\n//# sourceMappingURL=leafNode.js.map","/*---------------------------------------------------------------------------------------------\r\n * Accreditation: This file is largly based upon the MIT licenced VSCode sourcecode found at:\r\n * https://github.com/microsoft/vscode/tree/main/src/vs/base/browser/ui/grid\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Splitview, Orientation, LayoutPriority, } from '../splitview/splitview';\r\nimport { Emitter, Event } from '../events';\r\nimport { LeafNode } from './leafNode';\r\nimport { CompositeDisposable, Disposable } from '../lifecycle';\r\nexport class BranchNode extends CompositeDisposable {\r\n get width() {\r\n return this.orientation === Orientation.HORIZONTAL\r\n ? this.size\r\n : this.orthogonalSize;\r\n }\r\n get height() {\r\n return this.orientation === Orientation.HORIZONTAL\r\n ? this.orthogonalSize\r\n : this.size;\r\n }\r\n get minimumSize() {\r\n return this.children.length === 0\r\n ? 0\r\n : Math.max(...this.children.map((c) => c.minimumOrthogonalSize));\r\n }\r\n get maximumSize() {\r\n return Math.min(...this.children.map((c) => c.maximumOrthogonalSize));\r\n }\r\n get minimumOrthogonalSize() {\r\n return this.splitview.minimumSize;\r\n }\r\n get maximumOrthogonalSize() {\r\n return this.splitview.maximumSize;\r\n }\r\n get orthogonalSize() {\r\n return this._orthogonalSize;\r\n }\r\n get size() {\r\n return this._size;\r\n }\r\n get minimumWidth() {\r\n return this.orientation === Orientation.HORIZONTAL\r\n ? this.minimumOrthogonalSize\r\n : this.minimumSize;\r\n }\r\n get minimumHeight() {\r\n return this.orientation === Orientation.HORIZONTAL\r\n ? this.minimumSize\r\n : this.minimumOrthogonalSize;\r\n }\r\n get maximumWidth() {\r\n return this.orientation === Orientation.HORIZONTAL\r\n ? this.maximumOrthogonalSize\r\n : this.maximumSize;\r\n }\r\n get maximumHeight() {\r\n return this.orientation === Orientation.HORIZONTAL\r\n ? this.maximumSize\r\n : this.maximumOrthogonalSize;\r\n }\r\n get priority() {\r\n if (this.children.length === 0) {\r\n return LayoutPriority.Normal;\r\n }\r\n const priorities = this.children.map((c) => typeof c.priority === 'undefined'\r\n ? LayoutPriority.Normal\r\n : c.priority);\r\n if (priorities.some((p) => p === LayoutPriority.High)) {\r\n return LayoutPriority.High;\r\n }\r\n else if (priorities.some((p) => p === LayoutPriority.Low)) {\r\n return LayoutPriority.Low;\r\n }\r\n return LayoutPriority.Normal;\r\n }\r\n constructor(orientation, proportionalLayout, styles, size, orthogonalSize, childDescriptors) {\r\n super();\r\n this.orientation = orientation;\r\n this.proportionalLayout = proportionalLayout;\r\n this.styles = styles;\r\n this._childrenDisposable = Disposable.NONE;\r\n this.children = [];\r\n this._onDidChange = new Emitter();\r\n this.onDidChange = this._onDidChange.event;\r\n this._orthogonalSize = orthogonalSize;\r\n this._size = size;\r\n this.element = document.createElement('div');\r\n this.element.className = 'branch-node';\r\n if (!childDescriptors) {\r\n this.splitview = new Splitview(this.element, {\r\n orientation: this.orientation,\r\n proportionalLayout,\r\n styles,\r\n });\r\n this.splitview.layout(this.size, this.orthogonalSize);\r\n }\r\n else {\r\n const descriptor = {\r\n views: childDescriptors.map((childDescriptor) => {\r\n return {\r\n view: childDescriptor.node,\r\n size: childDescriptor.node.size,\r\n visible: childDescriptor.node instanceof LeafNode &&\r\n childDescriptor.visible !== undefined\r\n ? childDescriptor.visible\r\n : true,\r\n };\r\n }),\r\n size: this.orthogonalSize,\r\n };\r\n this.children = childDescriptors.map((c) => c.node);\r\n this.splitview = new Splitview(this.element, {\r\n orientation: this.orientation,\r\n descriptor,\r\n proportionalLayout,\r\n });\r\n }\r\n this.addDisposables(this._onDidChange, this.splitview.onDidSashEnd(() => {\r\n this._onDidChange.fire({});\r\n }));\r\n this.setupChildrenEvents();\r\n }\r\n setVisible(visible) {\r\n for (const child of this.children) {\r\n child.setVisible(visible);\r\n }\r\n }\r\n isChildVisible(index) {\r\n if (index < 0 || index >= this.children.length) {\r\n throw new Error('Invalid index');\r\n }\r\n return this.splitview.isViewVisible(index);\r\n }\r\n setChildVisible(index, visible) {\r\n if (index < 0 || index >= this.children.length) {\r\n throw new Error('Invalid index');\r\n }\r\n if (this.splitview.isViewVisible(index) === visible) {\r\n return;\r\n }\r\n this.splitview.setViewVisible(index, visible);\r\n }\r\n moveChild(from, to) {\r\n if (from === to) {\r\n return;\r\n }\r\n if (from < 0 || from >= this.children.length) {\r\n throw new Error('Invalid from index');\r\n }\r\n if (from < to) {\r\n to--;\r\n }\r\n this.splitview.moveView(from, to);\r\n const child = this._removeChild(from);\r\n this._addChild(child, to);\r\n }\r\n getChildSize(index) {\r\n if (index < 0 || index >= this.children.length) {\r\n throw new Error('Invalid index');\r\n }\r\n return this.splitview.getViewSize(index);\r\n }\r\n resizeChild(index, size) {\r\n if (index < 0 || index >= this.children.length) {\r\n throw new Error('Invalid index');\r\n }\r\n this.splitview.resizeView(index, size);\r\n }\r\n layout(size, orthogonalSize) {\r\n this._size = orthogonalSize;\r\n this._orthogonalSize = size;\r\n this.splitview.layout(orthogonalSize, size);\r\n }\r\n addChild(node, size, index, skipLayout) {\r\n if (index < 0 || index > this.children.length) {\r\n throw new Error('Invalid index');\r\n }\r\n this.splitview.addView(node, size, index, skipLayout);\r\n this._addChild(node, index);\r\n }\r\n getChildCachedVisibleSize(index) {\r\n if (index < 0 || index >= this.children.length) {\r\n throw new Error('Invalid index');\r\n }\r\n return this.splitview.getViewCachedVisibleSize(index);\r\n }\r\n removeChild(index, sizing) {\r\n if (index < 0 || index >= this.children.length) {\r\n throw new Error('Invalid index');\r\n }\r\n this.splitview.removeView(index, sizing);\r\n return this._removeChild(index);\r\n }\r\n _addChild(node, index) {\r\n this.children.splice(index, 0, node);\r\n this.setupChildrenEvents();\r\n }\r\n _removeChild(index) {\r\n const [child] = this.children.splice(index, 1);\r\n this.setupChildrenEvents();\r\n return child;\r\n }\r\n setupChildrenEvents() {\r\n this._childrenDisposable.dispose();\r\n this._childrenDisposable = Event.any(...this.children.map((c) => c.onDidChange))((e) => {\r\n /**\r\n * indicate a change has occured to allows any re-rendering but don't bubble\r\n * event because that was specific to this branch\r\n */\r\n this._onDidChange.fire({ size: e.orthogonalSize });\r\n });\r\n }\r\n dispose() {\r\n this._childrenDisposable.dispose();\r\n this.splitview.dispose();\r\n this.children.forEach((child) => child.dispose());\r\n super.dispose();\r\n }\r\n}\r\n//# sourceMappingURL=branchNode.js.map","/*---------------------------------------------------------------------------------------------\r\n * Accreditation: This file is largly based upon the MIT licenced VSCode sourcecode found at:\r\n * https://github.com/microsoft/vscode/tree/main/src/vs/base/browser/ui/grid\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Orientation, Sizing, } from '../splitview/splitview';\r\nimport { tail } from '../array';\r\nimport { LeafNode } from './leafNode';\r\nimport { BranchNode } from './branchNode';\r\nimport { Emitter } from '../events';\r\nimport { MutableDisposable } from '../lifecycle';\r\nfunction findLeaf(candiateNode, last) {\r\n if (candiateNode instanceof LeafNode) {\r\n return candiateNode;\r\n }\r\n if (candiateNode instanceof BranchNode) {\r\n return findLeaf(candiateNode.children[last ? candiateNode.children.length - 1 : 0], last);\r\n }\r\n throw new Error('invalid node');\r\n}\r\nfunction flipNode(node, size, orthogonalSize) {\r\n if (node instanceof BranchNode) {\r\n const result = new BranchNode(orthogonal(node.orientation), node.proportionalLayout, node.styles, size, orthogonalSize);\r\n let totalSize = 0;\r\n for (let i = node.children.length - 1; i >= 0; i--) {\r\n const child = node.children[i];\r\n const childSize = child instanceof BranchNode ? child.orthogonalSize : child.size;\r\n let newSize = node.size === 0\r\n ? 0\r\n : Math.round((size * childSize) / node.size);\r\n totalSize += newSize;\r\n // The last view to add should adjust to rounding errors\r\n if (i === 0) {\r\n newSize += size - totalSize;\r\n }\r\n result.addChild(flipNode(child, orthogonalSize, newSize), newSize, 0, true);\r\n }\r\n return result;\r\n }\r\n else {\r\n return new LeafNode(node.view, orthogonal(node.orientation), orthogonalSize);\r\n }\r\n}\r\nexport function indexInParent(element) {\r\n const parentElement = element.parentElement;\r\n if (!parentElement) {\r\n throw new Error('Invalid grid element');\r\n }\r\n let el = parentElement.firstElementChild;\r\n let index = 0;\r\n while (el !== element && el !== parentElement.lastElementChild && el) {\r\n el = el.nextElementSibling;\r\n index++;\r\n }\r\n return index;\r\n}\r\n/**\r\n * Find the grid location of a specific DOM element by traversing the parent\r\n * chain and finding each child index on the way.\r\n *\r\n * This will break as soon as DOM structures of the Splitview or Gridview change.\r\n */\r\nexport function getGridLocation(element) {\r\n const parentElement = element.parentElement;\r\n if (!parentElement) {\r\n throw new Error('Invalid grid element');\r\n }\r\n if (/\\bgrid-view\\b/.test(parentElement.className)) {\r\n return [];\r\n }\r\n const index = indexInParent(parentElement);\r\n const ancestor = parentElement.parentElement.parentElement.parentElement;\r\n return [...getGridLocation(ancestor), index];\r\n}\r\nexport function getRelativeLocation(rootOrientation, location, direction) {\r\n const orientation = getLocationOrientation(rootOrientation, location);\r\n const directionOrientation = getDirectionOrientation(direction);\r\n if (orientation === directionOrientation) {\r\n const [rest, _index] = tail(location);\r\n let index = _index;\r\n if (direction === 'right' || direction === 'bottom') {\r\n index += 1;\r\n }\r\n return [...rest, index];\r\n }\r\n else {\r\n const index = direction === 'right' || direction === 'bottom' ? 1 : 0;\r\n return [...location, index];\r\n }\r\n}\r\nexport function getDirectionOrientation(direction) {\r\n return direction === 'top' || direction === 'bottom'\r\n ? Orientation.VERTICAL\r\n : Orientation.HORIZONTAL;\r\n}\r\nexport function getLocationOrientation(rootOrientation, location) {\r\n return location.length % 2 === 0\r\n ? orthogonal(rootOrientation)\r\n : rootOrientation;\r\n}\r\nexport const orthogonal = (orientation) => orientation === Orientation.HORIZONTAL\r\n ? Orientation.VERTICAL\r\n : Orientation.HORIZONTAL;\r\nexport function isGridBranchNode(node) {\r\n return !!node.children;\r\n}\r\nconst serializeBranchNode = (node, orientation) => {\r\n const size = orientation === Orientation.VERTICAL ? node.box.width : node.box.height;\r\n if (!isGridBranchNode(node)) {\r\n if (typeof node.cachedVisibleSize === 'number') {\r\n return {\r\n type: 'leaf',\r\n data: node.view.toJSON(),\r\n size: node.cachedVisibleSize,\r\n visible: false,\r\n };\r\n }\r\n return { type: 'leaf', data: node.view.toJSON(), size };\r\n }\r\n return {\r\n type: 'branch',\r\n data: node.children.map((c) => serializeBranchNode(c, orthogonal(orientation))),\r\n size,\r\n };\r\n};\r\nexport class Gridview {\r\n get length() {\r\n return this._root ? this._root.children.length : 0;\r\n }\r\n get orientation() {\r\n return this.root.orientation;\r\n }\r\n set orientation(orientation) {\r\n if (this.root.orientation === orientation) {\r\n return;\r\n }\r\n const { size, orthogonalSize } = this.root;\r\n this.root = flipNode(this.root, orthogonalSize, size);\r\n this.root.layout(size, orthogonalSize);\r\n }\r\n get width() {\r\n return this.root.width;\r\n }\r\n get height() {\r\n return this.root.height;\r\n }\r\n get minimumWidth() {\r\n return this.root.minimumWidth;\r\n }\r\n get minimumHeight() {\r\n return this.root.minimumHeight;\r\n }\r\n get maximumWidth() {\r\n return this.root.maximumHeight;\r\n }\r\n get maximumHeight() {\r\n return this.root.maximumHeight;\r\n }\r\n serialize() {\r\n const root = serializeBranchNode(this.getView(), this.orientation);\r\n return {\r\n root,\r\n width: this.width,\r\n height: this.height,\r\n orientation: this.orientation,\r\n };\r\n }\r\n dispose() {\r\n this.disposable.dispose();\r\n this._onDidChange.dispose();\r\n this.root.dispose();\r\n this.element.remove();\r\n }\r\n clear() {\r\n const orientation = this.root.orientation;\r\n this.root = new BranchNode(orientation, this.proportionalLayout, this.styles, this.root.size, this.root.orthogonalSize);\r\n }\r\n deserialize(json, deserializer) {\r\n const orientation = json.orientation;\r\n const height = orientation === Orientation.VERTICAL ? json.height : json.width;\r\n this._deserialize(json.root, orientation, deserializer, height);\r\n }\r\n _deserialize(root, orientation, deserializer, orthogonalSize) {\r\n this.root = this._deserializeNode(root, orientation, deserializer, orthogonalSize);\r\n }\r\n _deserializeNode(node, orientation, deserializer, orthogonalSize) {\r\n let result;\r\n if (node.type === 'branch') {\r\n const serializedChildren = node.data;\r\n const children = serializedChildren.map((serializedChild) => {\r\n return {\r\n node: this._deserializeNode(serializedChild, orthogonal(orientation), deserializer, node.size),\r\n visible: serializedChild.visible,\r\n };\r\n });\r\n result = new BranchNode(orientation, this.proportionalLayout, this.styles, node.size, // <- orthogonal size - flips at each depth\r\n orthogonalSize, // <- size - flips at each depth\r\n children);\r\n }\r\n else {\r\n result = new LeafNode(deserializer.fromJSON(node), orientation, orthogonalSize, node.size);\r\n }\r\n return result;\r\n }\r\n get root() {\r\n return this._root;\r\n }\r\n set root(root) {\r\n const oldRoot = this._root;\r\n if (oldRoot) {\r\n oldRoot.dispose();\r\n this.element.removeChild(oldRoot.element);\r\n }\r\n this._root = root;\r\n this.element.appendChild(this._root.element);\r\n this.disposable.value = this._root.onDidChange((e) => {\r\n this._onDidChange.fire(e);\r\n });\r\n }\r\n /**\r\n * If the root is orientated as a VERTICAL node then nest the existing root within a new HORIZIONTAL root node\r\n * If the root is orientated as a HORIZONTAL node then nest the existing root within a new VERITCAL root node\r\n */\r\n insertOrthogonalSplitviewAtRoot() {\r\n if (!this._root) {\r\n return;\r\n }\r\n const oldRoot = this.root;\r\n oldRoot.element.remove();\r\n this._root = new BranchNode(orthogonal(oldRoot.orientation), this.proportionalLayout, this.styles, this.root.orthogonalSize, this.root.size);\r\n if (oldRoot.children.length === 0) {\r\n // no data so no need to add anything back in\r\n }\r\n else if (oldRoot.children.length === 1) {\r\n // can remove one level of redundant branching if there is only a single child\r\n const childReference = oldRoot.children[0];\r\n const child = oldRoot.removeChild(0); // remove to prevent disposal when disposing of unwanted root\r\n child.dispose();\r\n oldRoot.dispose();\r\n this._root.addChild(\r\n /**\r\n * the child node will have the same orientation as the new root since\r\n * we are removing the inbetween node.\r\n * the entire 'tree' must be flipped recursively to ensure that the orientation\r\n * flips at each level\r\n */\r\n flipNode(childReference, childReference.orthogonalSize, childReference.size), Sizing.Distribute, 0);\r\n }\r\n else {\r\n this._root.addChild(oldRoot, Sizing.Distribute, 0);\r\n }\r\n this.element.appendChild(this._root.element);\r\n this.disposable.value = this._root.onDidChange((e) => {\r\n this._onDidChange.fire(e);\r\n });\r\n }\r\n next(location) {\r\n return this.progmaticSelect(location);\r\n }\r\n previous(location) {\r\n return this.progmaticSelect(location, true);\r\n }\r\n getView(location) {\r\n const node = location ? this.getNode(location)[1] : this.root;\r\n return this._getViews(node, this.orientation);\r\n }\r\n _getViews(node, orientation, cachedVisibleSize) {\r\n const box = { height: node.height, width: node.width };\r\n if (node instanceof LeafNode) {\r\n return { box, view: node.view, cachedVisibleSize };\r\n }\r\n const children = [];\r\n for (let i = 0; i < node.children.length; i++) {\r\n const child = node.children[i];\r\n const nodeCachedVisibleSize = node.getChildCachedVisibleSize(i);\r\n children.push(this._getViews(child, orthogonal(orientation), nodeCachedVisibleSize));\r\n }\r\n return { box, children };\r\n }\r\n progmaticSelect(location, reverse = false) {\r\n const [path, node] = this.getNode(location);\r\n if (!(node instanceof LeafNode)) {\r\n throw new Error('invalid location');\r\n }\r\n for (let i = path.length - 1; i > -1; i--) {\r\n const n = path[i];\r\n const l = location[i] || 0;\r\n const canProgressInCurrentLevel = reverse\r\n ? l - 1 > -1\r\n : l + 1 < n.children.length;\r\n if (canProgressInCurrentLevel) {\r\n return findLeaf(n.children[reverse ? l - 1 : l + 1], reverse);\r\n }\r\n }\r\n return findLeaf(this.root, reverse);\r\n }\r\n constructor(proportionalLayout, styles, orientation) {\r\n this.proportionalLayout = proportionalLayout;\r\n this.styles = styles;\r\n this.disposable = new MutableDisposable();\r\n this._onDidChange = new Emitter();\r\n this.onDidChange = this._onDidChange.event;\r\n this.element = document.createElement('div');\r\n this.element.className = 'grid-view';\r\n this.root = new BranchNode(orientation, proportionalLayout, styles, 0, 0);\r\n }\r\n isViewVisible(location) {\r\n const [rest, index] = tail(location);\r\n const [, parent] = this.getNode(rest);\r\n if (!(parent instanceof BranchNode)) {\r\n throw new Error('Invalid from location');\r\n }\r\n return parent.isChildVisible(index);\r\n }\r\n setViewVisible(location, visible) {\r\n const [rest, index] = tail(location);\r\n const [, parent] = this.getNode(rest);\r\n if (!(parent instanceof BranchNode)) {\r\n throw new Error('Invalid from location');\r\n }\r\n parent.setChildVisible(index, visible);\r\n }\r\n moveView(parentLocation, from, to) {\r\n const [, parent] = this.getNode(parentLocation);\r\n if (!(parent instanceof BranchNode)) {\r\n throw new Error('Invalid location');\r\n }\r\n parent.moveChild(from, to);\r\n }\r\n addView(view, size, location) {\r\n const [rest, index] = tail(location);\r\n const [pathToParent, parent] = this.getNode(rest);\r\n if (parent instanceof BranchNode) {\r\n const node = new LeafNode(view, orthogonal(parent.orientation), parent.orthogonalSize);\r\n parent.addChild(node, size, index);\r\n }\r\n else {\r\n const [grandParent, ..._] = [...pathToParent].reverse();\r\n const [parentIndex, ...__] = [...rest].reverse();\r\n let newSiblingSize = 0;\r\n const newSiblingCachedVisibleSize = grandParent.getChildCachedVisibleSize(parentIndex);\r\n if (typeof newSiblingCachedVisibleSize === 'number') {\r\n newSiblingSize = Sizing.Invisible(newSiblingCachedVisibleSize);\r\n }\r\n const child = grandParent.removeChild(parentIndex);\r\n child.dispose();\r\n const newParent = new BranchNode(parent.orientation, this.proportionalLayout, this.styles, parent.size, parent.orthogonalSize);\r\n grandParent.addChild(newParent, parent.size, parentIndex);\r\n const newSibling = new LeafNode(parent.view, grandParent.orientation, parent.size);\r\n newParent.addChild(newSibling, newSiblingSize, 0);\r\n if (typeof size !== 'number' && size.type === 'split') {\r\n size = { type: 'split', index: 0 };\r\n }\r\n const node = new LeafNode(view, grandParent.orientation, parent.size);\r\n newParent.addChild(node, size, index);\r\n }\r\n }\r\n remove(view, sizing) {\r\n const location = getGridLocation(view.element);\r\n return this.removeView(location, sizing);\r\n }\r\n removeView(location, sizing) {\r\n const [rest, index] = tail(location);\r\n const [pathToParent, parent] = this.getNode(rest);\r\n if (!(parent instanceof BranchNode)) {\r\n throw new Error('Invalid location');\r\n }\r\n const nodeToRemove = parent.children[index];\r\n if (!(nodeToRemove instanceof LeafNode)) {\r\n throw new Error('Invalid location');\r\n }\r\n parent.removeChild(index, sizing);\r\n nodeToRemove.dispose();\r\n if (parent.children.length !== 1) {\r\n return nodeToRemove.view;\r\n }\r\n // if the parent has only one child and we know the parent is a BranchNode we can make the tree\r\n // more efficiently spaced by replacing the parent BranchNode with the child.\r\n // if that child is a LeafNode then we simply replace the BranchNode with the child otherwise if the child\r\n // is a BranchNode too we should spread it's children into the grandparent.\r\n // refer to the remaining child as the sibling\r\n const sibling = parent.children[0];\r\n if (pathToParent.length === 0) {\r\n // if the parent is root\r\n if (sibling instanceof LeafNode) {\r\n // if the sibling is a leaf node no action is required\r\n return nodeToRemove.view;\r\n }\r\n // otherwise the sibling is a branch node. since the parent is the root and the root has only one child\r\n // which is a branch node we can just set this branch node to be the new root node\r\n // for good housekeeping we'll removing the sibling from it's existing tree\r\n parent.removeChild(0, sizing);\r\n // and set that sibling node to be root\r\n this.root = sibling;\r\n return nodeToRemove.view;\r\n }\r\n // otherwise the parent is apart of a large sub-tree\r\n const [grandParent, ..._] = [...pathToParent].reverse();\r\n const [parentIndex, ...__] = [...rest].reverse();\r\n const isSiblingVisible = parent.isChildVisible(0);\r\n // either way we need to remove the sibling from it's existing tree\r\n parent.removeChild(0, sizing);\r\n // note the sizes of all of the grandparents children\r\n const sizes = grandParent.children.map((_size, i) => grandParent.getChildSize(i));\r\n // remove the parent from the grandparent since we are moving the sibling to take the parents place\r\n // this parent is no longer used and can be disposed of\r\n grandParent.removeChild(parentIndex, sizing).dispose();\r\n if (sibling instanceof BranchNode) {\r\n // replace the parent with the siblings children\r\n sizes.splice(parentIndex, 1, ...sibling.children.map((c) => c.size));\r\n // and add those siblings to the grandparent\r\n for (let i = 0; i < sibling.children.length; i++) {\r\n const child = sibling.children[i];\r\n grandParent.addChild(child, child.size, parentIndex + i);\r\n }\r\n }\r\n else {\r\n // otherwise create a new leaf node and add that to the grandparent\r\n const newSibling = new LeafNode(sibling.view, orthogonal(sibling.orientation), sibling.size);\r\n const siblingSizing = isSiblingVisible\r\n ? sibling.orthogonalSize\r\n : Sizing.Invisible(sibling.orthogonalSize);\r\n grandParent.addChild(newSibling, siblingSizing, parentIndex);\r\n }\r\n // the containing node of the sibling is no longer required and can be disposed of\r\n sibling.dispose();\r\n // resize everything\r\n for (let i = 0; i < sizes.length; i++) {\r\n grandParent.resizeChild(i, sizes[i]);\r\n }\r\n return nodeToRemove.view;\r\n }\r\n layout(width, height) {\r\n const [size, orthogonalSize] = this.root.orientation === Orientation.HORIZONTAL\r\n ? [height, width]\r\n : [width, height];\r\n this.root.layout(size, orthogonalSize);\r\n }\r\n getNode(location, node = this.root, path = []) {\r\n if (location.length === 0) {\r\n return [path, node];\r\n }\r\n if (!(node instanceof BranchNode)) {\r\n throw new Error('Invalid location');\r\n }\r\n const [index, ...rest] = location;\r\n if (index < 0 || index >= node.children.length) {\r\n throw new Error('Invalid location');\r\n }\r\n const child = node.children[index];\r\n path.push(node);\r\n return this.getNode(rest, child, path);\r\n }\r\n}\r\n//# sourceMappingURL=gridview.js.map","import { Emitter } from '../events';\r\nexport class SplitviewApi {\r\n get minimumSize() {\r\n return this.component.minimumSize;\r\n }\r\n get maximumSize() {\r\n return this.component.maximumSize;\r\n }\r\n get height() {\r\n return this.component.height;\r\n }\r\n get width() {\r\n return this.component.width;\r\n }\r\n get length() {\r\n return this.component.length;\r\n }\r\n get orientation() {\r\n return this.component.orientation;\r\n }\r\n get panels() {\r\n return this.component.panels;\r\n }\r\n get onDidLayoutFromJSON() {\r\n return this.component.onDidLayoutFromJSON;\r\n }\r\n get onDidLayoutChange() {\r\n return this.component.onDidLayoutChange;\r\n }\r\n get onDidAddView() {\r\n return this.component.onDidAddView;\r\n }\r\n get onDidRemoveView() {\r\n return this.component.onDidRemoveView;\r\n }\r\n constructor(component) {\r\n this.component = component;\r\n }\r\n updateOptions(options) {\r\n this.component.updateOptions(options);\r\n }\r\n removePanel(panel, sizing) {\r\n this.component.removePanel(panel, sizing);\r\n }\r\n focus() {\r\n this.component.focus();\r\n }\r\n getPanel(id) {\r\n return this.component.getPanel(id);\r\n }\r\n layout(width, height) {\r\n return this.component.layout(width, height);\r\n }\r\n addPanel(options) {\r\n return this.component.addPanel(options);\r\n }\r\n movePanel(from, to) {\r\n this.component.movePanel(from, to);\r\n }\r\n fromJSON(data) {\r\n this.component.fromJSON(data);\r\n }\r\n toJSON() {\r\n return this.component.toJSON();\r\n }\r\n clear() {\r\n this.component.clear();\r\n }\r\n}\r\nexport class PaneviewApi {\r\n get minimumSize() {\r\n return this.component.minimumSize;\r\n }\r\n get maximumSize() {\r\n return this.component.maximumSize;\r\n }\r\n get height() {\r\n return this.component.height;\r\n }\r\n get width() {\r\n return this.component.width;\r\n }\r\n get panels() {\r\n return this.component.panels;\r\n }\r\n get onDidLayoutChange() {\r\n return this.component.onDidLayoutChange;\r\n }\r\n get onDidLayoutFromJSON() {\r\n return this.component.onDidLayoutFromJSON;\r\n }\r\n get onDidAddView() {\r\n return this.component.onDidAddView;\r\n }\r\n get onDidRemoveView() {\r\n return this.component.onDidRemoveView;\r\n }\r\n get onDidDrop() {\r\n const emitter = new Emitter();\r\n const disposable = this.component.onDidDrop((e) => {\r\n emitter.fire(Object.assign(Object.assign({}, e), { api: this }));\r\n });\r\n emitter.dispose = () => {\r\n disposable.dispose();\r\n emitter.dispose();\r\n };\r\n return emitter.event;\r\n }\r\n constructor(component) {\r\n this.component = component;\r\n }\r\n removePanel(panel) {\r\n this.component.removePanel(panel);\r\n }\r\n getPanel(id) {\r\n return this.component.getPanel(id);\r\n }\r\n movePanel(from, to) {\r\n this.component.movePanel(from, to);\r\n }\r\n focus() {\r\n this.component.focus();\r\n }\r\n layout(width, height) {\r\n this.component.layout(width, height);\r\n }\r\n addPanel(options) {\r\n return this.component.addPanel(options);\r\n }\r\n fromJSON(data) {\r\n this.component.fromJSON(data);\r\n }\r\n toJSON() {\r\n return this.component.toJSON();\r\n }\r\n clear() {\r\n this.component.clear();\r\n }\r\n}\r\nexport class GridviewApi {\r\n get minimumHeight() {\r\n return this.component.minimumHeight;\r\n }\r\n get maximumHeight() {\r\n return this.component.maximumHeight;\r\n }\r\n get minimumWidth() {\r\n return this.component.minimumWidth;\r\n }\r\n get maximumWidth() {\r\n return this.component.maximumWidth;\r\n }\r\n get width() {\r\n return this.component.width;\r\n }\r\n get height() {\r\n return this.component.height;\r\n }\r\n get onDidLayoutChange() {\r\n return this.component.onDidLayoutChange;\r\n }\r\n get onDidAddPanel() {\r\n return this.component.onDidAddGroup;\r\n }\r\n get onDidRemovePanel() {\r\n return this.component.onDidRemoveGroup;\r\n }\r\n get onDidActivePanelChange() {\r\n return this.component.onDidActiveGroupChange;\r\n }\r\n get onDidLayoutFromJSON() {\r\n return this.component.onDidLayoutFromJSON;\r\n }\r\n get panels() {\r\n return this.component.groups;\r\n }\r\n get orientation() {\r\n return this.component.orientation;\r\n }\r\n set orientation(value) {\r\n this.component.updateOptions({ orientation: value });\r\n }\r\n constructor(component) {\r\n this.component = component;\r\n }\r\n focus() {\r\n this.component.focus();\r\n }\r\n layout(width, height, force = false) {\r\n this.component.layout(width, height, force);\r\n }\r\n addPanel(options) {\r\n return this.component.addPanel(options);\r\n }\r\n removePanel(panel, sizing) {\r\n this.component.removePanel(panel, sizing);\r\n }\r\n movePanel(panel, options) {\r\n this.component.movePanel(panel, options);\r\n }\r\n getPanel(id) {\r\n return this.component.getPanel(id);\r\n }\r\n fromJSON(data) {\r\n return this.component.fromJSON(data);\r\n }\r\n toJSON() {\r\n return this.component.toJSON();\r\n }\r\n clear() {\r\n this.component.clear();\r\n }\r\n}\r\nexport class DockviewApi {\r\n get id() {\r\n return this.component.id;\r\n }\r\n get width() {\r\n return this.component.width;\r\n }\r\n get height() {\r\n return this.component.height;\r\n }\r\n get minimumHeight() {\r\n return this.component.minimumHeight;\r\n }\r\n get maximumHeight() {\r\n return this.component.maximumHeight;\r\n }\r\n get minimumWidth() {\r\n return this.component.minimumWidth;\r\n }\r\n get maximumWidth() {\r\n return this.component.maximumWidth;\r\n }\r\n get size() {\r\n return this.component.size;\r\n }\r\n get totalPanels() {\r\n return this.component.totalPanels;\r\n }\r\n get onDidActiveGroupChange() {\r\n return this.component.onDidActiveGroupChange;\r\n }\r\n get onDidAddGroup() {\r\n return this.component.onDidAddGroup;\r\n }\r\n get onDidRemoveGroup() {\r\n return this.component.onDidRemoveGroup;\r\n }\r\n get onDidActivePanelChange() {\r\n return this.component.onDidActivePanelChange;\r\n }\r\n get onDidAddPanel() {\r\n return this.component.onDidAddPanel;\r\n }\r\n get onDidRemovePanel() {\r\n return this.component.onDidRemovePanel;\r\n }\r\n get onDidLayoutFromJSON() {\r\n return this.component.onDidLayoutFromJSON;\r\n }\r\n get onDidLayoutChange() {\r\n return this.component.onDidLayoutChange;\r\n }\r\n get onDidDrop() {\r\n return this.component.onDidDrop;\r\n }\r\n get panels() {\r\n return this.component.panels;\r\n }\r\n get groups() {\r\n return this.component.groups;\r\n }\r\n get activePanel() {\r\n return this.component.activePanel;\r\n }\r\n get activeGroup() {\r\n return this.component.activeGroup;\r\n }\r\n constructor(component) {\r\n this.component = component;\r\n }\r\n focus() {\r\n this.component.focus();\r\n }\r\n getPanel(id) {\r\n return this.component.getGroupPanel(id);\r\n }\r\n layout(width, height, force = false) {\r\n this.component.layout(width, height, force);\r\n }\r\n addPanel(options) {\r\n return this.component.addPanel(options);\r\n }\r\n removePanel(panel) {\r\n this.component.removePanel(panel);\r\n }\r\n addGroup(options) {\r\n return this.component.addGroup(options);\r\n }\r\n moveToNext(options) {\r\n this.component.moveToNext(options);\r\n }\r\n moveToPrevious(options) {\r\n this.component.moveToPrevious(options);\r\n }\r\n closeAllGroups() {\r\n return this.component.closeAllGroups();\r\n }\r\n removeGroup(group) {\r\n this.component.removeGroup(group);\r\n }\r\n getGroup(id) {\r\n return this.component.getPanel(id);\r\n }\r\n addFloatingGroup(item, coord) {\r\n return this.component.addFloatingGroup(item, coord);\r\n }\r\n fromJSON(data) {\r\n this.component.fromJSON(data);\r\n }\r\n toJSON() {\r\n return this.component.toJSON();\r\n }\r\n clear() {\r\n this.component.clear();\r\n }\r\n}\r\n//# sourceMappingURL=component.api.js.map","import { addDisposableListener } from '../events';\r\nimport { CompositeDisposable } from '../lifecycle';\r\nexport class DragAndDropObserver extends CompositeDisposable {\r\n constructor(element, callbacks) {\r\n super();\r\n this.element = element;\r\n this.callbacks = callbacks;\r\n this.target = null;\r\n this.registerListeners();\r\n }\r\n registerListeners() {\r\n this.addDisposables(addDisposableListener(this.element, 'dragenter', (e) => {\r\n this.target = e.target;\r\n this.callbacks.onDragEnter(e);\r\n }, true));\r\n this.addDisposables(addDisposableListener(this.element, 'dragover', (e) => {\r\n e.preventDefault(); // needed so that the drop event fires (https://stackoverflow.com/questions/21339924/drop-event-not-firing-in-chrome)\r\n if (this.callbacks.onDragOver) {\r\n this.callbacks.onDragOver(e);\r\n }\r\n }, true));\r\n this.addDisposables(addDisposableListener(this.element, 'dragleave', (e) => {\r\n if (this.target === e.target) {\r\n this.target = null;\r\n this.callbacks.onDragLeave(e);\r\n }\r\n }));\r\n this.addDisposables(addDisposableListener(this.element, 'dragend', (e) => {\r\n this.target = null;\r\n this.callbacks.onDragEnd(e);\r\n }));\r\n this.addDisposables(addDisposableListener(this.element, 'drop', (e) => {\r\n this.callbacks.onDrop(e);\r\n }));\r\n }\r\n}\r\n//# sourceMappingURL=dnd.js.map","import { toggleClass } from '../dom';\r\nimport { Emitter } from '../events';\r\nimport { CompositeDisposable } from '../lifecycle';\r\nimport { DragAndDropObserver } from './dnd';\r\nimport { clamp } from '../math';\r\nfunction numberOrFallback(maybeNumber, fallback) {\r\n return typeof maybeNumber === 'number' ? maybeNumber : fallback;\r\n}\r\nexport function directionToPosition(direction) {\r\n switch (direction) {\r\n case 'above':\r\n return 'top';\r\n case 'below':\r\n return 'bottom';\r\n case 'left':\r\n return 'left';\r\n case 'right':\r\n return 'right';\r\n case 'within':\r\n return 'center';\r\n default:\r\n throw new Error(`invalid direction '${direction}'`);\r\n }\r\n}\r\nexport function positionToDirection(position) {\r\n switch (position) {\r\n case 'top':\r\n return 'above';\r\n case 'bottom':\r\n return 'below';\r\n case 'left':\r\n return 'left';\r\n case 'right':\r\n return 'right';\r\n case 'center':\r\n return 'within';\r\n default:\r\n throw new Error(`invalid position '${position}'`);\r\n }\r\n}\r\nexport class Droptarget extends CompositeDisposable {\r\n get state() {\r\n return this._state;\r\n }\r\n constructor(element, options) {\r\n super();\r\n this.element = element;\r\n this.options = options;\r\n this._onDrop = new Emitter();\r\n this.onDrop = this._onDrop.event;\r\n // use a set to take advantage of #<set>.has\r\n this._acceptedTargetZonesSet = new Set(this.options.acceptedTargetZones);\r\n this.addDisposables(this._onDrop, new DragAndDropObserver(this.element, {\r\n onDragEnter: () => undefined,\r\n onDragOver: (e) => {\r\n if (this._acceptedTargetZonesSet.size === 0) {\r\n this.removeDropTarget();\r\n return;\r\n }\r\n const width = this.element.clientWidth;\r\n const height = this.element.clientHeight;\r\n if (width === 0 || height === 0) {\r\n return; // avoid div!0\r\n }\r\n const rect = e.currentTarget.getBoundingClientRect();\r\n const x = e.clientX - rect.left;\r\n const y = e.clientY - rect.top;\r\n const quadrant = this.calculateQuadrant(this._acceptedTargetZonesSet, x, y, width, height);\r\n /**\r\n * If the event has already been used by another DropTarget instance\r\n * then don't show a second drop target, only one target should be\r\n * active at any one time\r\n */\r\n if (this.isAlreadyUsed(e) || quadrant === null) {\r\n // no drop target should be displayed\r\n this.removeDropTarget();\r\n return;\r\n }\r\n if (typeof this.options.canDisplayOverlay === 'boolean') {\r\n if (!this.options.canDisplayOverlay) {\r\n this.removeDropTarget();\r\n return;\r\n }\r\n }\r\n else if (!this.options.canDisplayOverlay(e, quadrant)) {\r\n this.removeDropTarget();\r\n return;\r\n }\r\n this.markAsUsed(e);\r\n if (!this.targetElement) {\r\n this.targetElement = document.createElement('div');\r\n this.targetElement.className = 'drop-target-dropzone';\r\n this.overlayElement = document.createElement('div');\r\n this.overlayElement.className = 'drop-target-selection';\r\n this._state = 'center';\r\n this.targetElement.appendChild(this.overlayElement);\r\n this.element.classList.add('drop-target');\r\n this.element.append(this.targetElement);\r\n }\r\n this.toggleClasses(quadrant, width, height);\r\n this.setState(quadrant);\r\n },\r\n onDragLeave: () => {\r\n this.removeDropTarget();\r\n },\r\n onDragEnd: () => {\r\n this.removeDropTarget();\r\n },\r\n onDrop: (e) => {\r\n e.preventDefault();\r\n const state = this._state;\r\n this.removeDropTarget();\r\n if (state) {\r\n // only stop the propagation of the event if we are dealing with it\r\n // which is only when the target has state\r\n e.stopPropagation();\r\n this._onDrop.fire({ position: state, nativeEvent: e });\r\n }\r\n },\r\n }));\r\n }\r\n setTargetZones(acceptedTargetZones) {\r\n this._acceptedTargetZonesSet = new Set(acceptedTargetZones);\r\n }\r\n dispose() {\r\n this.removeDropTarget();\r\n super.dispose();\r\n }\r\n /**\r\n * Add a property to the event object for other potential listeners to check\r\n */\r\n markAsUsed(event) {\r\n event[Droptarget.USED_EVENT_ID] = true;\r\n }\r\n /**\r\n * Check is the event has already been used by another instance od DropTarget\r\n */\r\n isAlreadyUsed(event) {\r\n const value = event[Droptarget.USED_EVENT_ID];\r\n return typeof value === 'boolean' && value;\r\n }\r\n toggleClasses(quadrant, width, height) {\r\n var _a, _b, _c, _d;\r\n if (!this.overlayElement) {\r\n return;\r\n }\r\n const isSmallX = width < 100;\r\n const isSmallY = height < 100;\r\n const isLeft = quadrant === 'left';\r\n const isRight = quadrant === 'right';\r\n const isTop = quadrant === 'top';\r\n const isBottom = quadrant === 'bottom';\r\n const rightClass = !isSmallX && isRight;\r\n const leftClass = !isSmallX && isLeft;\r\n const topClass = !isSmallY && isTop;\r\n const bottomClass = !isSmallY && isBottom;\r\n let size = 0.5;\r\n if (((_b = (_a = this.options.overlayModel) === null || _a === void 0 ? void 0 : _a.size) === null || _b === void 0 ? void 0 : _b.type) === 'percentage') {\r\n size = clamp(this.options.overlayModel.size.value, 0, 100) / 100;\r\n }\r\n if (((_d = (_c = this.options.overlayModel) === null || _c === void 0 ? void 0 : _c.size) === null || _d === void 0 ? void 0 : _d.type) === 'pixels') {\r\n if (rightClass || leftClass) {\r\n size =\r\n clamp(0, this.options.overlayModel.size.value, width) /\r\n width;\r\n }\r\n if (topClass || bottomClass) {\r\n size =\r\n clamp(0, this.options.overlayModel.size.value, height) /\r\n height;\r\n }\r\n }\r\n const translate = (1 - size) / 2;\r\n const scale = size;\r\n let transform;\r\n if (rightClass) {\r\n transform = `translateX(${100 * translate}%) scaleX(${scale})`;\r\n }\r\n else if (leftClass) {\r\n transform = `translateX(-${100 * translate}%) scaleX(${scale})`;\r\n }\r\n else if (topClass) {\r\n transform = `translateY(-${100 * translate}%) scaleY(${scale})`;\r\n }\r\n else if (bottomClass) {\r\n transform = `translateY(${100 * translate}%) scaleY(${scale})`;\r\n }\r\n else {\r\n transform = '';\r\n }\r\n this.overlayElement.style.transform = transform;\r\n toggleClass(this.overlayElement, 'small-right', isSmallX && isRight);\r\n toggleClass(this.overlayElement, 'small-left', isSmallX && isLeft);\r\n toggleClass(this.overlayElement, 'small-top', isSmallY && isTop);\r\n toggleClass(this.overlayElement, 'small-bottom', isSmallY && isBottom);\r\n }\r\n setState(quadrant) {\r\n switch (quadrant) {\r\n case 'top':\r\n this._state = 'top';\r\n break;\r\n case 'left':\r\n this._state = 'left';\r\n break;\r\n case 'bottom':\r\n this._state = 'bottom';\r\n break;\r\n case 'right':\r\n this._state = 'right';\r\n break;\r\n case 'center':\r\n this._state = 'center';\r\n break;\r\n }\r\n }\r\n calculateQuadrant(overlayType, x, y, width, height) {\r\n var _a, _b, _c, _d, _e, _f;\r\n const isPercentage = ((_a = this.options.overlayModel) === null || _a === void 0 ? void 0 : _a.activationSize) === undefined ||\r\n ((_c = (_b = this.options.overlayModel) === null || _b === void 0 ? void 0 : _b.activationSize) === null || _c === void 0 ? void 0 : _c.type) === 'percentage';\r\n const value = numberOrFallback((_f = (_e = (_d = this.options) === null || _d === void 0 ? void 0 : _d.overlayModel) === null || _e === void 0 ? void 0 : _e.activationSize) === null || _f === void 0 ? void 0 : _f.value, 20);\r\n if (isPercentage) {\r\n return calculateQuadrantAsPercentage(overlayType, x, y, width, height, value);\r\n }\r\n return calculateQuadrantAsPixels(overlayType, x, y, width, height, value);\r\n }\r\n removeDropTarget() {\r\n if (this.targetElement) {\r\n this._state = undefined;\r\n this.element.removeChild(this.targetElement);\r\n this.targetElement = undefined;\r\n this.overlayElement = undefined;\r\n this.element.classList.remove('drop-target');\r\n }\r\n }\r\n}\r\nDroptarget.USED_EVENT_ID = '__dockview_droptarget_event_is_used__';\r\nexport function calculateQuadrantAsPercentage(overlayType, x, y, width, height, threshold) {\r\n const xp = (100 * x) / width;\r\n const yp = (100 * y) / height;\r\n if (overlayType.has('left') && xp < threshold) {\r\n return 'left';\r\n }\r\n if (overlayType.has('right') && xp > 100 - threshold) {\r\n return 'right';\r\n }\r\n if (overlayType.has('top') && yp < threshold) {\r\n return 'top';\r\n }\r\n if (overlayType.has('bottom') && yp > 100 - threshold) {\r\n return 'bottom';\r\n }\r\n if (!overlayType.has('center')) {\r\n return null;\r\n }\r\n return 'center';\r\n}\r\nexport function calculateQuadrantAsPixels(overlayType, x, y, width, height, threshold) {\r\n if (overlayType.has('left') && x < threshold) {\r\n return 'left';\r\n }\r\n if (overlayType.has('right') && x > width - threshold) {\r\n return 'right';\r\n }\r\n if (overlayType.has('top') && y < threshold) {\r\n return 'top';\r\n }\r\n if (overlayType.has('bottom') && y > height - threshold) {\r\n return 'bottom';\r\n }\r\n if (!overlayType.has('center')) {\r\n return null;\r\n }\r\n return 'center';\r\n}\r\n//# sourceMappingURL=droptarget.js.map","import { CompositeDisposable, MutableDisposable, } from '../../../lifecycle';\r\nimport { Emitter } from '../../../events';\r\nimport { trackFocus } from '../../../dom';\r\nexport class ContentContainer extends CompositeDisposable {\r\n get element() {\r\n return this._element;\r\n }\r\n constructor() {\r\n super();\r\n this.disposable = new MutableDisposable();\r\n this._onDidFocus = new Emitter();\r\n this.onDidFocus = this._onDidFocus.event;\r\n this._onDidBlur = new Emitter();\r\n this.onDidBlur = this._onDidBlur.event;\r\n this._element = document.createElement('div');\r\n this._element.className = 'content-container';\r\n this._element.tabIndex = -1;\r\n this.addDisposables(this._onDidFocus, this._onDidBlur);\r\n // for hosted containers\r\n // 1) register a drop target on the host\r\n // 2) register window dragStart events to disable pointer events\r\n // 3) register dragEnd events\r\n // 4) register mouseMove events (if no buttons are present we take this as a dragEnd event)\r\n }\r\n show() {\r\n this.element.style.display = '';\r\n }\r\n hide() {\r\n this.element.style.display = 'none';\r\n }\r\n openPanel(panel) {\r\n var _a;\r\n if (this.panel === panel) {\r\n return;\r\n }\r\n if (this.panel) {\r\n if ((_a = this.panel.view) === null || _a === void 0 ? void 0 : _a.content) {\r\n this._element.removeChild(this.panel.view.content.element);\r\n }\r\n this.panel = undefined;\r\n }\r\n this.panel = panel;\r\n const disposable = new CompositeDisposable();\r\n if (this.panel.view) {\r\n const _onDidFocus = this.panel.view.content.onDidFocus;\r\n const _onDidBlur = this.panel.view.content.onDidBlur;\r\n const focusTracker = trackFocus(this._element);\r\n disposable.addDisposables(focusTracker, focusTracker.onDidFocus(() => this._onDidFocus.fire()), focusTracker.onDidBlur(() => this._onDidBlur.fire()));\r\n if (_onDidFocus) {\r\n disposable.addDisposables(_onDidFocus(() => this._onDidFocus.fire()));\r\n }\r\n if (_onDidBlur) {\r\n disposable.addDisposables(_onDidBlur(() => this._onDidBlur.fire()));\r\n }\r\n this._element.appendChild(this.panel.view.content.element);\r\n }\r\n this.disposable.value = disposable;\r\n }\r\n layout(_width, _height) {\r\n // noop\r\n }\r\n closePanel() {\r\n var _a, _b, _c;\r\n if ((_c = (_b = (_a = this.panel) === null || _a === void 0 ? void 0 : _a.view) === null || _b === void 0 ? void 0 : _b.content) === null || _c === void 0 ? void 0 : _c.element) {\r\n this._element.removeChild(this.panel.view.content.element);\r\n this.panel = undefined;\r\n }\r\n }\r\n dispose() {\r\n this.disposable.dispose();\r\n super.dispose();\r\n }\r\n}\r\n//# sourceMappingURL=content.js.map","export var DockviewDropTargets;\r\n(function (DockviewDropTargets) {\r\n DockviewDropTargets[DockviewDropTargets[\"Tab\"] = 0] = \"Tab\";\r\n DockviewDropTargets[DockviewDropTargets[\"Panel\"] = 1] = \"Panel\";\r\n DockviewDropTargets[DockviewDropTargets[\"TabContainer\"] = 2] = \"TabContainer\";\r\n DockviewDropTargets[DockviewDropTargets[\"Edge\"] = 3] = \"Edge\";\r\n})(DockviewDropTargets || (DockviewDropTargets = {}));\r\n//# sourceMappingURL=types.js.map","import { getElementsByTagName } from '../dom';\r\nimport { addDisposableListener, Emitter } from '../events';\r\nimport { CompositeDisposable, MutableDisposable, } from '../lifecycle';\r\nexport class DragHandler extends CompositeDisposable {\r\n constructor(el) {\r\n super();\r\n this.el = el;\r\n this.dataDisposable = new MutableDisposable();\r\n this.pointerEventsDisposable = new MutableDisposable();\r\n this._onDragStart = new Emitter();\r\n this.onDragStart = this._onDragStart.event;\r\n this.addDisposables(this._onDragStart, this.dataDisposable, this.pointerEventsDisposable);\r\n this.configure();\r\n }\r\n isCancelled(_event) {\r\n return false;\r\n }\r\n configure() {\r\n this.addDisposables(this._onDragStart, addDisposableListener(this.el, 'dragstart', (event) => {\r\n if (this.isCancelled(event)) {\r\n event.preventDefault();\r\n return;\r\n }\r\n const iframes = [\r\n ...getElementsByTagName('iframe'),\r\n ...getElementsByTagName('webview'),\r\n ];\r\n this.pointerEventsDisposable.value = {\r\n dispose: () => {\r\n for (const iframe of iframes) {\r\n iframe.style.pointerEvents = 'auto';\r\n }\r\n },\r\n };\r\n for (const iframe of iframes) {\r\n iframe.style.pointerEvents = 'none';\r\n }\r\n this.el.classList.add('dv-dragged');\r\n setTimeout(() => this.el.classList.remove('dv-dragged'), 0);\r\n this.dataDisposable.value = this.getData(event.dataTransfer);\r\n if (event.dataTransfer) {\r\n event.dataTransfer.effectAllowed = 'move';\r\n /**\r\n * Although this is not used by dockview many third party dnd libraries will check\r\n * dataTransfer.types to determine valid drag events.\r\n *\r\n * For example: in react-dnd if dataTransfer.types is not set then the dragStart event will be cancelled\r\n * through .preventDefault(). Since this is applied globally to all drag events this would break dockviews\r\n * dnd logic. You can see the code at\r\n * https://github.com/react-dnd/react-dnd/blob/main/packages/backend-html5/src/HTML5BackendImpl.ts#L542\r\n */\r\n event.dataTransfer.setData('text/plain', '__dockview_internal_drag_event__');\r\n }\r\n }), addDisposableListener(this.el, 'dragend', () => {\r\n this.pointerEventsDisposable.dispose();\r\n this.dataDisposable.dispose();\r\n }));\r\n }\r\n}\r\n//# sourceMappingURL=abstractDragHandler.js.map","import { addDisposableListener, Emitter } from '../../../events';\r\nimport { CompositeDisposable } from '../../../lifecycle';\r\nimport { getPanelData, LocalSelectionTransfer, PanelTransfer, } from '../../../dnd/dataTransfer';\r\nimport { toggleClass } from '../../../dom';\r\nimport { DockviewDropTargets } from '../../types';\r\nimport { Droptarget } from '../../../dnd/droptarget';\r\nimport { DragHandler } from '../../../dnd/abstractDragHandler';\r\nexport class Tab extends CompositeDisposable {\r\n get element() {\r\n return this._element;\r\n }\r\n constructor(panelId, accessor, group) {\r\n super();\r\n this.panelId = panelId;\r\n this.accessor = accessor;\r\n this.group = group;\r\n this._onChanged = new Emitter();\r\n this.onChanged = this._onChanged.event;\r\n this._onDropped = new Emitter();\r\n this.onDrop = this._onDropped.event;\r\n this._element = document.createElement('div');\r\n this._element.className = 'tab';\r\n this._element.tabIndex = 0;\r\n this._element.draggable = true;\r\n toggleClass(this.element, 'inactive-tab', true);\r\n this.addDisposables(this._onChanged, this._onDropped, new (class Handler extends DragHandler {\r\n constructor() {\r\n super(...arguments);\r\n this.panelTransfer = LocalSelectionTransfer.getInstance();\r\n }\r\n getData() {\r\n this.panelTransfer.setData([new PanelTransfer(accessor.id, group.id, panelId)], PanelTransfer.prototype);\r\n return {\r\n dispose: () => {\r\n this.panelTransfer.clearData(PanelTransfer.prototype);\r\n },\r\n };\r\n }\r\n })(this._element));\r\n this.addDisposables(addDisposableListener(this._element, 'mousedown', (event) => {\r\n if (event.defaultPrevented) {\r\n return;\r\n }\r\n this._onChanged.fire(event);\r\n }));\r\n this.droptarget = new Droptarget(this._element, {\r\n acceptedTargetZones: ['center'],\r\n canDisplayOverlay: (event, position) => {\r\n if (this.group.locked) {\r\n return false;\r\n }\r\n const data = getPanelData();\r\n if (data && this.accessor.id === data.viewId) {\r\n if (data.panelId === null &&\r\n data.groupId === this.group.id) {\r\n // don't allow group move to drop on self\r\n return false;\r\n }\r\n return this.panelId !== data.panelId;\r\n }\r\n return this.group.model.canDisplayOverlay(event, position, DockviewDropTargets.Tab);\r\n },\r\n });\r\n this.addDisposables(this.droptarget.onDrop((event) => {\r\n this._onDropped.fire(event);\r\n }), this.droptarget);\r\n }\r\n setActive(isActive) {\r\n toggleClass(this.element, 'active-tab', isActive);\r\n toggleClass(this.element, 'inactive-tab', !isActive);\r\n }\r\n setContent(part) {\r\n if (this.content) {\r\n this._element.removeChild(this.content.element);\r\n }\r\n this.content = part;\r\n this._element.appendChild(this.content.element);\r\n }\r\n dispose() {\r\n super.dispose();\r\n }\r\n}\r\n//# sourceMappingURL=tab.js.map","import { addClasses, removeClasses } from '../dom';\r\nexport function addGhostImage(dataTransfer, ghostElement) {\r\n // class dockview provides to force ghost image to be drawn on a different layer and prevent weird rendering issues\r\n addClasses(ghostElement, 'dv-dragged');\r\n document.body.appendChild(ghostElement);\r\n dataTransfer.setDragImage(ghostElement, 0, 0);\r\n setTimeout(() => {\r\n removeClasses(ghostElement, 'dv-dragged');\r\n ghostElement.remove();\r\n }, 0);\r\n}\r\n//# sourceMappingURL=ghost.js.map","import { quasiPreventDefault } from '../dom';\r\nimport { addDisposableListener } from '../events';\r\nimport { DragHandler } from './abstractDragHandler';\r\nimport { LocalSelectionTransfer, PanelTransfer } from './dataTransfer';\r\nimport { addGhostImage } from './ghost';\r\nexport class GroupDragHandler extends DragHandler {\r\n constructor(element, accessorId, group) {\r\n super(element);\r\n this.accessorId = accessorId;\r\n this.group = group;\r\n this.panelTransfer = LocalSelectionTransfer.getInstance();\r\n this.addDisposables(addDisposableListener(element, 'mousedown', (e) => {\r\n if (e.shiftKey) {\r\n /**\r\n * You cannot call e.preventDefault() because that will prevent drag events from firing\r\n * but we also need to stop any group overlay drag events from occuring\r\n * Use a custom event marker that can be checked by the overlay drag events\r\n */\r\n quasiPreventDefault(e);\r\n }\r\n }, true));\r\n }\r\n isCancelled(_event) {\r\n if (this.group.api.isFloating && !_event.shiftKey) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n getData(dataTransfer) {\r\n this.panelTransfer.setData([new PanelTransfer(this.accessorId, this.group.id, null)], PanelTransfer.prototype);\r\n const style = window.getComputedStyle(this.el);\r\n const bgColor = style.getPropertyValue('--dv-activegroup-visiblepanel-tab-background-color');\r\n const color = style.getPropertyValue('--dv-activegroup-visiblepanel-tab-color');\r\n if (dataTransfer) {\r\n const ghostElement = document.createElement('div');\r\n ghostElement.style.backgroundColor = bgColor;\r\n ghostElement.style.color = color;\r\n ghostElement.style.padding = '2px 8px';\r\n ghostElement.style.height = '24px';\r\n ghostElement.style.fontSize = '11px';\r\n ghostElement.style.lineHeight = '20px';\r\n ghostElement.style.borderRadius = '12px';\r\n ghostElement.style.position = 'absolute';\r\n ghostElement.textContent = `Multiple Panels (${this.group.size})`;\r\n addGhostImage(dataTransfer, ghostElement);\r\n }\r\n return {\r\n dispose: () => {\r\n this.panelTransfer.clearData(PanelTransfer.prototype);\r\n },\r\n };\r\n }\r\n}\r\n//# sourceMappingURL=groupDragHandler.js.map","import { last } from '../../../array';\r\nimport { getPanelData } from '../../../dnd/dataTransfer';\r\nimport { Droptarget } from '../../../dnd/droptarget';\r\nimport { GroupDragHandler } from '../../../dnd/groupDragHandler';\r\nimport { addDisposableListener, Emitter } from '../../../events';\r\nimport { CompositeDisposable } from '../../../lifecycle';\r\nimport { DockviewDropTargets } from '../../types';\r\nexport class VoidContainer extends CompositeDisposable {\r\n get element() {\r\n return this._element;\r\n }\r\n constructor(accessor, group) {\r\n super();\r\n this.accessor = accessor;\r\n this.group = group;\r\n this._onDrop = new Emitter();\r\n this.onDrop = this._onDrop.event;\r\n this._element = document.createElement('div');\r\n this._element.className = 'void-container';\r\n this._element.tabIndex = 0;\r\n this._element.draggable = true;\r\n this.addDisposables(this._onDrop, addDisposableListener(this._element, 'click', () => {\r\n this.accessor.doSetGroupActive(this.group);\r\n }));\r\n const handler = new GroupDragHandler(this._element, accessor.id, group);\r\n this.voidDropTarget = new Droptarget(this._element, {\r\n acceptedTargetZones: ['center'],\r\n canDisplayOverlay: (event, position) => {\r\n var _a;\r\n const data = getPanelData();\r\n if (data && this.accessor.id === data.viewId) {\r\n if (data.panelId === null &&\r\n data.groupId === this.group.id) {\r\n // don't allow group move to drop on self\r\n return false;\r\n }\r\n // don't show the overlay if the tab being dragged is the last panel of this group\r\n return ((_a = last(this.group.panels)) === null || _a === void 0 ? void 0 : _a.id) !== data.panelId;\r\n }\r\n return group.model.canDisplayOverlay(event, position, DockviewDropTargets.Panel);\r\n },\r\n });\r\n this.addDisposables(handler, this.voidDropTarget.onDrop((event) => {\r\n this._onDrop.fire(event);\r\n }), this.voidDropTarget);\r\n }\r\n}\r\n//# sourceMappingURL=voidContainer.js.map","import { CompositeDisposable, } from '../../../lifecycle';\r\nimport { addDisposableListener, Emitter } from '../../../events';\r\nimport { Tab } from '../tab/tab';\r\nimport { VoidContainer } from './voidContainer';\r\nimport { toggleClass } from '../../../dom';\r\nexport class TabsContainer extends CompositeDisposable {\r\n get panels() {\r\n return this.tabs.map((_) => _.value.panelId);\r\n }\r\n get size() {\r\n return this.tabs.length;\r\n }\r\n get hidden() {\r\n return this._hidden;\r\n }\r\n set hidden(value) {\r\n this._hidden = value;\r\n this.element.style.display = value ? 'none' : '';\r\n }\r\n show() {\r\n if (!this.hidden) {\r\n this.element.style.display = '';\r\n }\r\n }\r\n hide() {\r\n this._element.style.display = 'none';\r\n }\r\n setRightActionsElement(element) {\r\n if (this.rightActions === element) {\r\n return;\r\n }\r\n if (this.rightActions) {\r\n this.rightActions.remove();\r\n this.rightActions = undefined;\r\n }\r\n if (element) {\r\n this.rightActionsContainer.appendChild(element);\r\n this.rightActions = element;\r\n }\r\n }\r\n setLeftActionsElement(element) {\r\n if (this.leftActions === element) {\r\n return;\r\n }\r\n if (this.leftActions) {\r\n this.leftActions.remove();\r\n this.leftActions = undefined;\r\n }\r\n if (element) {\r\n this.leftActionsContainer.appendChild(element);\r\n this.leftActions = element;\r\n }\r\n }\r\n get element() {\r\n return this._element;\r\n }\r\n isActive(tab) {\r\n return (this.selectedIndex > -1 &&\r\n this.tabs[this.selectedIndex].value === tab);\r\n }\r\n indexOf(id) {\r\n return this.tabs.findIndex((tab) => tab.value.panelId === id);\r\n }\r\n constructor(accessor, group) {\r\n super();\r\n this.accessor = accessor;\r\n this.group = group;\r\n this.tabs = [];\r\n this.selectedIndex = -1;\r\n this._hidden = false;\r\n this._onDrop = new Emitter();\r\n this.onDrop = this._onDrop.event;\r\n this.addDisposables(this._onDrop);\r\n this._element = document.createElement('div');\r\n this._element.className = 'tabs-and-actions-container';\r\n toggleClass(this._element, 'dv-full-width-single-tab', this.accessor.options.singleTabMode === 'fullwidth');\r\n this.addDisposables(this.accessor.onDidAddPanel((e) => {\r\n if (e.api.group === this.group) {\r\n toggleClass(this._element, 'dv-single-tab', this.size === 1);\r\n }\r\n }), this.accessor.onDidRemovePanel((e) => {\r\n if (e.api.group === this.group) {\r\n toggleClass(this._element, 'dv-single-tab', this.size === 1);\r\n }\r\n }));\r\n this.rightActionsContainer = document.createElement('div');\r\n this.rightActionsContainer.className = 'right-actions-container';\r\n this.leftActionsContainer = document.createElement('div');\r\n this.leftActionsContainer.className = 'left-actions-container';\r\n this.tabContainer = document.createElement('div');\r\n this.tabContainer.className = 'tabs-container';\r\n this.voidContainer = new VoidContainer(this.accessor, this.group);\r\n this._element.appendChild(this.tabContainer);\r\n this._element.appendChild(this.leftActionsContainer);\r\n this._element.appendChild(this.voidContainer.element);\r\n this._element.appendChild(this.rightActionsContainer);\r\n this.addDisposables(this.voidContainer, this.voidContainer.onDrop((event) => {\r\n this._onDrop.fire({\r\n event: event.nativeEvent,\r\n index: this.tabs.length,\r\n });\r\n }), addDisposableListener(this.voidContainer.element, 'mousedown', (event) => {\r\n const isFloatingGroupsEnabled = !this.accessor.options.disableFloatingGroups;\r\n if (isFloatingGroupsEnabled &&\r\n event.shiftKey &&\r\n !this.group.api.isFloating) {\r\n event.preventDefault();\r\n const { top, left } = this.element.getBoundingClientRect();\r\n const { top: rootTop, left: rootLeft } = this.accessor.element.getBoundingClientRect();\r\n this.accessor.addFloatingGroup(this.group, {\r\n x: left - rootLeft + 20,\r\n y: top - rootTop + 20,\r\n }, { inDragMode: true });\r\n }\r\n }), addDisposableListener(this.tabContainer, 'mousedown', (event) => {\r\n if (event.defaultPrevented) {\r\n return;\r\n }\r\n const isLeftClick = event.button === 0;\r\n if (isLeftClick) {\r\n this.accessor.doSetGroupActive(this.group);\r\n }\r\n }));\r\n }\r\n setActive(_isGroupActive) {\r\n // noop\r\n }\r\n addTab(tab, index = this.tabs.length) {\r\n if (index < 0 || index > this.tabs.length) {\r\n throw new Error('invalid location');\r\n }\r\n this.tabContainer.insertBefore(tab.value.element, this.tabContainer.children[index]);\r\n this.tabs = [\r\n ...this.tabs.slice(0, index),\r\n tab,\r\n ...this.tabs.slice(index),\r\n ];\r\n if (this.selectedIndex < 0) {\r\n this.selectedIndex = index;\r\n }\r\n }\r\n delete(id) {\r\n const index = this.tabs.findIndex((tab) => tab.value.panelId === id);\r\n const tabToRemove = this.tabs.splice(index, 1)[0];\r\n const { value, disposable } = tabToRemove;\r\n disposable.dispose();\r\n value.dispose();\r\n value.element.remove();\r\n }\r\n setActivePanel(panel) {\r\n this.tabs.forEach((tab) => {\r\n const isActivePanel = panel.id === tab.value.panelId;\r\n tab.value.setActive(isActivePanel);\r\n });\r\n }\r\n openPanel(panel, index = this.tabs.length) {\r\n var _a;\r\n if (this.tabs.find((tab) => tab.value.panelId === panel.id)) {\r\n return;\r\n }\r\n const tabToAdd = new Tab(panel.id, this.accessor, this.group);\r\n if (!((_a = panel.view) === null || _a === void 0 ? void 0 : _a.tab)) {\r\n throw new Error('invalid header component');\r\n }\r\n tabToAdd.setContent(panel.view.tab);\r\n const disposable = CompositeDisposable.from(tabToAdd.onChanged((event) => {\r\n var _a;\r\n const isFloatingGroupsEnabled = !this.accessor.options.disableFloatingGroups;\r\n const isFloatingWithOnePanel = this.group.api.isFloating && this.size === 1;\r\n if (isFloatingGroupsEnabled &&\r\n !isFloatingWithOnePanel &&\r\n event.shiftKey) {\r\n event.preventDefault();\r\n const panel = this.accessor.getGroupPanel(tabToAdd.panelId);\r\n const { top, left } = tabToAdd.element.getBoundingClientRect();\r\n const { top: rootTop, left: rootLeft } = this.accessor.element.getBoundingClientRect();\r\n this.accessor.addFloatingGroup(panel, {\r\n x: left - rootLeft,\r\n y: top - rootTop,\r\n }, { inDragMode: true });\r\n return;\r\n }\r\n const alreadyFocused = panel.id === ((_a = this.group.model.activePanel) === null || _a === void 0 ? void 0 : _a.id) &&\r\n this.group.model.isContentFocused;\r\n const isLeftClick = event.button === 0;\r\n if (!isLeftClick || event.defaultPrevented) {\r\n return;\r\n }\r\n this.group.model.openPanel(panel, {\r\n skipFocus: alreadyFocused,\r\n });\r\n }), tabToAdd.onDrop((event) => {\r\n this._onDrop.fire({\r\n event: event.nativeEvent,\r\n index: this.tabs.findIndex((x) => x.value === tabToAdd),\r\n });\r\n }));\r\n const value = { value: tabToAdd, disposable };\r\n this.addTab(value, index);\r\n }\r\n closePanel(panel) {\r\n this.delete(panel.id);\r\n }\r\n dispose() {\r\n super.dispose();\r\n for (const { value, disposable } of this.tabs) {\r\n disposable.dispose();\r\n value.dispose();\r\n }\r\n this.tabs = [];\r\n }\r\n}\r\n//# sourceMappingURL=tabsContainer.js.map","import { DockviewApi } from '../api/component.api';\r\nimport { getPanelData } from '../dnd/dataTransfer';\r\nimport { Droptarget } from '../dnd/droptarget';\r\nimport { isAncestor, toggleClass } from '../dom';\r\nimport { addDisposableListener, Emitter } from '../events';\r\nimport { CompositeDisposable } from '../lifecycle';\r\nimport { ContentContainer, } from './components/panel/content';\r\nimport { TabsContainer, } from './components/titlebar/tabsContainer';\r\nimport { DockviewDropTargets } from './types';\r\nexport class DockviewGroupPanelModel extends CompositeDisposable {\r\n get element() {\r\n throw new Error('not supported');\r\n }\r\n get activePanel() {\r\n return this._activePanel;\r\n }\r\n get locked() {\r\n return this._locked;\r\n }\r\n set locked(value) {\r\n this._locked = value;\r\n toggleClass(this.container, 'locked-groupview', value);\r\n }\r\n get isActive() {\r\n return this._isGroupActive;\r\n }\r\n get panels() {\r\n return this._panels;\r\n }\r\n get size() {\r\n return this._panels.length;\r\n }\r\n get isEmpty() {\r\n return this._panels.length === 0;\r\n }\r\n get hasWatermark() {\r\n return !!(this.watermark && this.container.contains(this.watermark.element));\r\n }\r\n get header() {\r\n return this.tabsContainer;\r\n }\r\n get isContentFocused() {\r\n if (!document.activeElement) {\r\n return false;\r\n }\r\n return isAncestor(document.activeElement, this.contentContainer.element);\r\n }\r\n get isFloating() {\r\n return this._isFloating;\r\n }\r\n set isFloating(value) {\r\n this._isFloating = value;\r\n this.dropTarget.setTargetZones(value ? ['center'] : ['top', 'bottom', 'left', 'right', 'center']);\r\n toggleClass(this.container, 'dv-groupview-floating', value);\r\n this.groupPanel.api._onDidFloatingStateChange.fire({\r\n isFloating: this.isFloating,\r\n });\r\n }\r\n constructor(container, accessor, id, options, groupPanel) {\r\n super();\r\n this.container = container;\r\n this.accessor = accessor;\r\n this.id = id;\r\n this.options = options;\r\n this.groupPanel = groupPanel;\r\n this._isGroupActive = false;\r\n this._locked = false;\r\n this._isFloating = false;\r\n this.mostRecentlyUsed = [];\r\n this._onDidChange = new Emitter();\r\n this.onDidChange = this._onDidChange.event;\r\n this._width = 0;\r\n this._height = 0;\r\n this._panels = [];\r\n this._onMove = new Emitter();\r\n this.onMove = this._onMove.event;\r\n this._onDidDrop = new Emitter();\r\n this.onDidDrop = this._onDidDrop.event;\r\n this._onDidAddPanel = new Emitter();\r\n this.onDidAddPanel = this._onDidAddPanel.event;\r\n this._onDidRemovePanel = new Emitter();\r\n this.onDidRemovePanel = this._onDidRemovePanel.event;\r\n this._onDidActivePanelChange = new Emitter();\r\n this.onDidActivePanelChange = this._onDidActivePanelChange.event;\r\n toggleClass(this.container, 'groupview', true);\r\n this.tabsContainer = new TabsContainer(this.accessor, this.groupPanel);\r\n this.contentContainer = new ContentContainer();\r\n this.dropTarget = new Droptarget(this.contentContainer.element, {\r\n acceptedTargetZones: ['top', 'bottom', 'left', 'right', 'center'],\r\n canDisplayOverlay: (event, position) => {\r\n if (this.locked && position === 'center') {\r\n return false;\r\n }\r\n const data = getPanelData();\r\n if (!data && event.shiftKey && !this.isFloating) {\r\n return false;\r\n }\r\n if (data && data.viewId === this.accessor.id) {\r\n if (data.groupId === this.id) {\r\n if (position === 'center') {\r\n // don't allow to drop on self for center position\r\n return false;\r\n }\r\n if (data.panelId === null) {\r\n // don't allow group move to drop anywhere on self\r\n return false;\r\n }\r\n }\r\n const groupHasOnePanelAndIsActiveDragElement = this._panels.length === 1 && data.groupId === this.id;\r\n return !groupHasOnePanelAndIsActiveDragElement;\r\n }\r\n return this.canDisplayOverlay(event, position, DockviewDropTargets.Panel);\r\n },\r\n });\r\n container.append(this.tabsContainer.element, this.contentContainer.element);\r\n this.header.hidden = !!options.hideHeader;\r\n this.locked = !!options.locked;\r\n this.addDisposables(this.tabsContainer.onDrop((event) => {\r\n this.handleDropEvent(event.event, 'center', event.index);\r\n }), this.contentContainer.onDidFocus(() => {\r\n this.accessor.doSetGroupActive(this.groupPanel, true);\r\n }), this.contentContainer.onDidBlur(() => {\r\n // noop\r\n }), this.dropTarget.onDrop((event) => {\r\n this.handleDropEvent(event.nativeEvent, event.position);\r\n }), this._onMove, this._onDidChange, this._onDidDrop, this._onDidAddPanel, this._onDidRemovePanel, this._onDidActivePanelChange);\r\n }\r\n initialize() {\r\n var _a, _b;\r\n if ((_a = this.options) === null || _a === void 0 ? void 0 : _a.panels) {\r\n this.options.panels.forEach((panel) => {\r\n this.doAddPanel(panel);\r\n });\r\n }\r\n if ((_b = this.options) === null || _b === void 0 ? void 0 : _b.activePanel) {\r\n this.openPanel(this.options.activePanel);\r\n }\r\n // must be run after the constructor otherwise this.parent may not be\r\n // correctly initialized\r\n this.setActive(this.isActive, true, true);\r\n this.updateContainer();\r\n if (this.accessor.options.createRightHeaderActionsElement) {\r\n this._rightHeaderActions =\r\n this.accessor.options.createRightHeaderActionsElement(this.groupPanel);\r\n this.addDisposables(this._rightHeaderActions);\r\n this._rightHeaderActions.init({\r\n containerApi: new DockviewApi(this.accessor),\r\n api: this.groupPanel.api,\r\n });\r\n this.tabsContainer.setRightActionsElement(this._rightHeaderActions.element);\r\n }\r\n if (this.accessor.options.createLeftHeaderActionsElement) {\r\n this._leftHeaderActions =\r\n this.accessor.options.createLeftHeaderActionsElement(this.groupPanel);\r\n this.addDisposables(this._leftHeaderActions);\r\n this._leftHeaderActions.init({\r\n containerApi: new DockviewApi(this.accessor),\r\n api: this.groupPanel.api,\r\n });\r\n this.tabsContainer.setLeftActionsElement(this._leftHeaderActions.element);\r\n }\r\n }\r\n indexOf(panel) {\r\n return this.tabsContainer.indexOf(panel.id);\r\n }\r\n toJSON() {\r\n var _a;\r\n const result = {\r\n views: this.tabsContainer.panels,\r\n activeView: (_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.id,\r\n id: this.id,\r\n };\r\n if (this.locked) {\r\n result.locked = true;\r\n }\r\n if (this.header.hidden) {\r\n result.hideHeader = true;\r\n }\r\n return result;\r\n }\r\n moveToNext(options) {\r\n if (!options) {\r\n options = {};\r\n }\r\n if (!options.panel) {\r\n options.panel = this.activePanel;\r\n }\r\n const index = options.panel ? this.panels.indexOf(options.panel) : -1;\r\n let normalizedIndex;\r\n if (index < this.panels.length - 1) {\r\n normalizedIndex = index + 1;\r\n }\r\n else if (!options.suppressRoll) {\r\n normalizedIndex = 0;\r\n }\r\n else {\r\n return;\r\n }\r\n this.openPanel(this.panels[normalizedIndex]);\r\n }\r\n moveToPrevious(options) {\r\n if (!options) {\r\n options = {};\r\n }\r\n if (!options.panel) {\r\n options.panel = this.activePanel;\r\n }\r\n if (!options.panel) {\r\n return;\r\n }\r\n const index = this.panels.indexOf(options.panel);\r\n let normalizedIndex;\r\n if (index > 0) {\r\n normalizedIndex = index - 1;\r\n }\r\n else if (!options.suppressRoll) {\r\n normalizedIndex = this.panels.length - 1;\r\n }\r\n else {\r\n return;\r\n }\r\n this.openPanel(this.panels[normalizedIndex]);\r\n }\r\n containsPanel(panel) {\r\n return this.panels.includes(panel);\r\n }\r\n init(_params) {\r\n //noop\r\n }\r\n update(_params) {\r\n //noop\r\n }\r\n focus() {\r\n var _a, _b;\r\n (_b = (_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);\r\n }\r\n openPanel(panel, options = {}) {\r\n if (typeof options.index !== 'number' ||\r\n options.index > this.panels.length) {\r\n options.index = this.panels.length;\r\n }\r\n const skipSetPanelActive = !!options.skipSetPanelActive;\r\n const skipSetGroupActive = !!options.skipSetGroupActive;\r\n // ensure the group is updated before we fire any events\r\n panel.updateParentGroup(this.groupPanel, true);\r\n if (this._activePanel === panel) {\r\n if (!skipSetGroupActive) {\r\n this.accessor.doSetGroupActive(this.groupPanel);\r\n }\r\n return;\r\n }\r\n this.doAddPanel(panel, options.index, skipSetPanelActive);\r\n if (!skipSetPanelActive) {\r\n this.doSetActivePanel(panel);\r\n }\r\n if (!skipSetGroupActive) {\r\n this.accessor.doSetGroupActive(this.groupPanel, !!options.skipFocus);\r\n }\r\n this.updateContainer();\r\n }\r\n removePanel(groupItemOrId) {\r\n const id = typeof groupItemOrId === 'string'\r\n ? groupItemOrId\r\n : groupItemOrId.id;\r\n const panelToRemove = this._panels.find((panel) => panel.id === id);\r\n if (!panelToRemove) {\r\n throw new Error('invalid operation');\r\n }\r\n return this._removePanel(panelToRemove);\r\n }\r\n closeAllPanels() {\r\n if (this.panels.length > 0) {\r\n // take a copy since we will be edting the array as we iterate through\r\n const arrPanelCpy = [...this.panels];\r\n for (const panel of arrPanelCpy) {\r\n this.doClose(panel);\r\n }\r\n }\r\n else {\r\n this.accessor.removeGroup(this.groupPanel);\r\n }\r\n }\r\n closePanel(panel) {\r\n this.doClose(panel);\r\n }\r\n doClose(panel) {\r\n this.accessor.removePanel(panel);\r\n }\r\n isPanelActive(panel) {\r\n return this._activePanel === panel;\r\n }\r\n updateActions(element) {\r\n this.tabsContainer.setRightActionsElement(element);\r\n }\r\n setActive(isGroupActive, skipFocus = false, force = false) {\r\n var _a, _b, _c, _d;\r\n if (!force && this.isActive === isGroupActive) {\r\n if (!skipFocus) {\r\n (_b = (_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);\r\n }\r\n return;\r\n }\r\n this._isGroupActive = isGroupActive;\r\n toggleClass(this.container, 'active-group', isGroupActive);\r\n toggleClass(this.container, 'inactive-group', !isGroupActive);\r\n this.tabsContainer.setActive(this.isActive);\r\n if (!this._activePanel && this.panels.length > 0) {\r\n this.doSetActivePanel(this.panels[0]);\r\n }\r\n this.updateContainer();\r\n if (isGroupActive) {\r\n if (!skipFocus) {\r\n (_d = (_c = this._activePanel) === null || _c === void 0 ? void 0 : _c.focus) === null || _d === void 0 ? void 0 : _d.call(_c);\r\n }\r\n }\r\n }\r\n layout(width, height) {\r\n var _a;\r\n this._width = width;\r\n this._height = height;\r\n this.contentContainer.layout(this._width, this._height);\r\n if ((_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.layout) {\r\n this._activePanel.layout(this._width, this._height);\r\n }\r\n }\r\n _removePanel(panel) {\r\n const isActivePanel = this._activePanel === panel;\r\n this.doRemovePanel(panel);\r\n if (isActivePanel && this.panels.length > 0) {\r\n const nextPanel = this.mostRecentlyUsed[0];\r\n this.openPanel(nextPanel);\r\n }\r\n if (this._activePanel && this.panels.length === 0) {\r\n this.doSetActivePanel(undefined);\r\n }\r\n this.updateContainer();\r\n return panel;\r\n }\r\n doRemovePanel(panel) {\r\n const index = this.panels.indexOf(panel);\r\n if (this._activePanel === panel) {\r\n this.contentContainer.closePanel();\r\n }\r\n this.tabsContainer.delete(panel.id);\r\n this._panels.splice(index, 1);\r\n if (this.mostRecentlyUsed.includes(panel)) {\r\n this.mostRecentlyUsed.splice(this.mostRecentlyUsed.indexOf(panel), 1);\r\n }\r\n this._onDidRemovePanel.fire({ panel });\r\n }\r\n doAddPanel(panel, index = this.panels.length, skipSetActive = false) {\r\n const existingPanel = this._panels.indexOf(panel);\r\n const hasExistingPanel = existingPanel > -1;\r\n this.tabsContainer.openPanel(panel, index);\r\n if (!skipSetActive) {\r\n this.contentContainer.openPanel(panel);\r\n }\r\n this.tabsContainer.show();\r\n this.contentContainer.show();\r\n if (hasExistingPanel) {\r\n // TODO - need to ensure ordering hasn't changed and if it has need to re-order this.panels\r\n return;\r\n }\r\n this.updateMru(panel);\r\n this.panels.splice(index, 0, panel);\r\n this._onDidAddPanel.fire({ panel });\r\n }\r\n doSetActivePanel(panel) {\r\n this._activePanel = panel;\r\n if (panel) {\r\n this.tabsContainer.setActivePanel(panel);\r\n panel.layout(this._width, this._height);\r\n this.updateMru(panel);\r\n this._onDidActivePanelChange.fire({ panel });\r\n }\r\n }\r\n updateMru(panel) {\r\n if (this.mostRecentlyUsed.includes(panel)) {\r\n this.mostRecentlyUsed.splice(this.mostRecentlyUsed.indexOf(panel), 1);\r\n }\r\n this.mostRecentlyUsed = [panel, ...this.mostRecentlyUsed];\r\n }\r\n updateContainer() {\r\n var _a, _b;\r\n toggleClass(this.container, 'empty', this.isEmpty);\r\n this.panels.forEach((panel) => panel.updateParentGroup(this.groupPanel, this.isActive));\r\n if (this.isEmpty && !this.watermark) {\r\n const watermark = this.accessor.createWatermarkComponent();\r\n watermark.init({\r\n containerApi: new DockviewApi(this.accessor),\r\n group: this.groupPanel,\r\n });\r\n this.watermark = watermark;\r\n addDisposableListener(this.watermark.element, 'click', () => {\r\n if (!this.isActive) {\r\n this.accessor.doSetGroupActive(this.groupPanel);\r\n }\r\n });\r\n this.tabsContainer.hide();\r\n this.contentContainer.element.appendChild(this.watermark.element);\r\n this.watermark.updateParentGroup(this.groupPanel, true);\r\n }\r\n if (!this.isEmpty && this.watermark) {\r\n this.watermark.element.remove();\r\n (_b = (_a = this.watermark).dispose) === null || _b === void 0 ? void 0 : _b.call(_a);\r\n this.watermark = undefined;\r\n this.tabsContainer.show();\r\n }\r\n }\r\n canDisplayOverlay(event, position, target) {\r\n // custom overlay handler\r\n if (this.accessor.options.showDndOverlay) {\r\n return this.accessor.options.showDndOverlay({\r\n nativeEvent: event,\r\n target,\r\n group: this.accessor.getPanel(this.id),\r\n position,\r\n getData: getPanelData,\r\n });\r\n }\r\n return false;\r\n }\r\n handleDropEvent(event, position, index) {\r\n const data = getPanelData();\r\n if (data && data.viewId === this.accessor.id) {\r\n if (data.panelId === null) {\r\n // this is a group move dnd event\r\n const { groupId } = data;\r\n this._onMove.fire({\r\n target: position,\r\n groupId: groupId,\r\n index,\r\n });\r\n return;\r\n }\r\n const fromSameGroup = this.tabsContainer.indexOf(data.panelId) !== -1;\r\n if (fromSameGroup && this.tabsContainer.size === 1) {\r\n return;\r\n }\r\n const { groupId, panelId } = data;\r\n const isSameGroup = this.id === groupId;\r\n if (isSameGroup && !position) {\r\n const oldIndex = this.tabsContainer.indexOf(panelId);\r\n if (oldIndex === index) {\r\n return;\r\n }\r\n }\r\n this._onMove.fire({\r\n target: position,\r\n groupId: data.groupId,\r\n itemId: data.panelId,\r\n index,\r\n });\r\n }\r\n else {\r\n this._onDidDrop.fire({\r\n nativeEvent: event,\r\n position,\r\n index,\r\n getData: () => getPanelData(),\r\n });\r\n }\r\n }\r\n dispose() {\r\n var _a, _b, _c;\r\n super.dispose();\r\n (_a = this.watermark) === null || _a === void 0 ? void 0 : _a.element.remove();\r\n (_c = (_b = this.watermark) === null || _b === void 0 ? void 0 : _b.dispose) === null || _c === void 0 ? void 0 : _c.call(_b);\r\n for (const panel of this.panels) {\r\n panel.dispose();\r\n }\r\n this.dropTarget.dispose();\r\n this.tabsContainer.dispose();\r\n this.contentContainer.dispose();\r\n }\r\n}\r\n//# sourceMappingURL=dockviewGroupPanelModel.js.map","import { watchElementResize } from './dom';\r\nimport { CompositeDisposable } from './lifecycle';\r\nexport class Resizable extends CompositeDisposable {\r\n get element() {\r\n return this._element;\r\n }\r\n constructor(parentElement) {\r\n super();\r\n if (parentElement) {\r\n this._element = parentElement;\r\n }\r\n else {\r\n this._element = document.createElement('div');\r\n this._element.style.height = '100%';\r\n this._element.style.width = '100%';\r\n this._element.className = 'dv-resizable-container';\r\n }\r\n this.addDisposables(watchElementResize(this._element, (entry) => {\r\n if (this.isDisposed) {\r\n /**\r\n * resize is delayed through requestAnimationFrame so there is a small chance\r\n * the component has already been disposed of\r\n */\r\n return;\r\n }\r\n const { width, height } = entry.contentRect;\r\n this.layout(width, height);\r\n }));\r\n }\r\n}\r\n//# sourceMappingURL=resizable.js.map","import { Emitter, Event, TickDelayedEvent } from '../events';\r\nimport { getGridLocation, Gridview } from './gridview';\r\nimport { sequentialNumberGenerator } from '../math';\r\nimport { Sizing } from '../splitview/splitview';\r\nimport { Resizable } from '../resizable';\r\nconst nextLayoutId = sequentialNumberGenerator();\r\nexport function toTarget(direction) {\r\n switch (direction) {\r\n case 'left':\r\n return 'left';\r\n case 'right':\r\n return 'right';\r\n case 'above':\r\n return 'top';\r\n case 'below':\r\n return 'bottom';\r\n case 'within':\r\n default:\r\n return 'center';\r\n }\r\n}\r\nexport class BaseGrid extends Resizable {\r\n get id() {\r\n return this._id;\r\n }\r\n get size() {\r\n return this._groups.size;\r\n }\r\n get groups() {\r\n return Array.from(this._groups.values()).map((_) => _.value);\r\n }\r\n get width() {\r\n return this.gridview.width;\r\n }\r\n get height() {\r\n return this.gridview.height;\r\n }\r\n get minimumHeight() {\r\n return this.gridview.minimumHeight;\r\n }\r\n get maximumHeight() {\r\n return this.gridview.maximumHeight;\r\n }\r\n get minimumWidth() {\r\n return this.gridview.minimumWidth;\r\n }\r\n get maximumWidth() {\r\n return this.gridview.maximumWidth;\r\n }\r\n get activeGroup() {\r\n return this._activeGroup;\r\n }\r\n constructor(options) {\r\n super(options.parentElement);\r\n this._id = nextLayoutId.next();\r\n this._groups = new Map();\r\n this._onDidLayoutChange = new Emitter();\r\n this.onDidLayoutChange = this._onDidLayoutChange.event;\r\n this._onDidRemoveGroup = new Emitter();\r\n this.onDidRemoveGroup = this._onDidRemoveGroup.event;\r\n this._onDidAddGroup = new Emitter();\r\n this.onDidAddGroup = this._onDidAddGroup.event;\r\n this._onDidActiveGroupChange = new Emitter();\r\n this.onDidActiveGroupChange = this._onDidActiveGroupChange.event;\r\n this._bufferOnDidLayoutChange = new TickDelayedEvent();\r\n this.gridview = new Gridview(!!options.proportionalLayout, options.styles, options.orientation);\r\n this.element.appendChild(this.gridview.element);\r\n this.layout(0, 0, true); // set some elements height/widths\r\n this.addDisposables(this.gridview.onDidChange(() => {\r\n this._bufferOnDidLayoutChange.fire();\r\n }), Event.any(this.onDidAddGroup, this.onDidRemoveGroup, this.onDidActiveGroupChange)(() => {\r\n this._bufferOnDidLayoutChange.fire();\r\n }), this._bufferOnDidLayoutChange.onEvent(() => {\r\n this._onDidLayoutChange.fire();\r\n }), this._bufferOnDidLayoutChange);\r\n }\r\n setVisible(panel, visible) {\r\n this.gridview.setViewVisible(getGridLocation(panel.element), visible);\r\n this._onDidLayoutChange.fire();\r\n }\r\n isVisible(panel) {\r\n return this.gridview.isViewVisible(getGridLocation(panel.element));\r\n }\r\n doAddGroup(group, location = [0], size) {\r\n this.gridview.addView(group, size !== null && size !== void 0 ? size : Sizing.Distribute, location);\r\n this._onDidAddGroup.fire(group);\r\n this.doSetGroupActive(group);\r\n }\r\n doRemoveGroup(group, options) {\r\n if (!this._groups.has(group.id)) {\r\n throw new Error('invalid operation');\r\n }\r\n const item = this._groups.get(group.id);\r\n const view = this.gridview.remove(group, Sizing.Distribute);\r\n if (item && !(options === null || options === void 0 ? void 0 : options.skipDispose)) {\r\n item.disposable.dispose();\r\n item.value.dispose();\r\n this._groups.delete(group.id);\r\n }\r\n this._onDidRemoveGroup.fire(group);\r\n if (!(options === null || options === void 0 ? void 0 : options.skipActive) && this._activeGroup === group) {\r\n const groups = Array.from(this._groups.values());\r\n this.doSetGroupActive(groups.length > 0 ? groups[0].value : undefined);\r\n }\r\n return view;\r\n }\r\n getPanel(id) {\r\n var _a;\r\n return (_a = this._groups.get(id)) === null || _a === void 0 ? void 0 : _a.value;\r\n }\r\n doSetGroupActive(group, skipFocus) {\r\n var _a, _b, _c;\r\n if (this._activeGroup === group) {\r\n return;\r\n }\r\n if (this._activeGroup) {\r\n this._activeGroup.setActive(false);\r\n if (!skipFocus) {\r\n (_b = (_a = this._activeGroup).focus) === null || _b === void 0 ? void 0 : _b.call(_a);\r\n }\r\n }\r\n if (group) {\r\n group.setActive(true);\r\n if (!skipFocus) {\r\n (_c = group.focus) === null || _c === void 0 ? void 0 : _c.call(group);\r\n }\r\n }\r\n this._activeGroup = group;\r\n this._onDidActiveGroupChange.fire(group);\r\n }\r\n removeGroup(group) {\r\n this.doRemoveGroup(group);\r\n }\r\n moveToNext(options) {\r\n var _a;\r\n if (!options) {\r\n options = {};\r\n }\r\n if (!options.group) {\r\n if (!this.activeGroup) {\r\n return;\r\n }\r\n options.group = this.activeGroup;\r\n }\r\n const location = getGridLocation(options.group.element);\r\n const next = (_a = this.gridview.next(location)) === null || _a === void 0 ? void 0 : _a.view;\r\n this.doSetGroupActive(next);\r\n }\r\n moveToPrevious(options) {\r\n var _a;\r\n if (!options) {\r\n options = {};\r\n }\r\n if (!options.group) {\r\n if (!this.activeGroup) {\r\n return;\r\n }\r\n options.group = this.activeGroup;\r\n }\r\n const location = getGridLocation(options.group.element);\r\n const next = (_a = this.gridview.previous(location)) === null || _a === void 0 ? void 0 : _a.view;\r\n this.doSetGroupActive(next);\r\n }\r\n layout(width, height, forceResize) {\r\n const different = forceResize || width !== this.width || height !== this.height;\r\n if (!different) {\r\n return;\r\n }\r\n this.gridview.element.style.height = `${height}px`;\r\n this.gridview.element.style.width = `${width}px`;\r\n this.gridview.layout(width, height);\r\n }\r\n dispose() {\r\n this._onDidActiveGroupChange.dispose();\r\n this._onDidAddGroup.dispose();\r\n this._onDidRemoveGroup.dispose();\r\n this._onDidLayoutChange.dispose();\r\n for (const group of this.groups) {\r\n group.dispose();\r\n }\r\n this.gridview.dispose();\r\n super.dispose();\r\n }\r\n}\r\n//# sourceMappingURL=baseComponentGridview.js.map","import { Emitter } from '../events';\r\nimport { CompositeDisposable, MutableDisposable } from '../lifecycle';\r\n/**\r\n * A core api implementation that should be used across all panel-like objects\r\n */\r\nexport class PanelApiImpl extends CompositeDisposable {\r\n //\r\n get isFocused() {\r\n return this._isFocused;\r\n }\r\n get isActive() {\r\n return this._isActive;\r\n }\r\n get isVisible() {\r\n return this._isVisible;\r\n }\r\n get width() {\r\n return this._width;\r\n }\r\n get height() {\r\n return this._height;\r\n }\r\n constructor(id) {\r\n super();\r\n this.id = id;\r\n this._isFocused = false;\r\n this._isActive = false;\r\n this._isVisible = true;\r\n this._width = 0;\r\n this._height = 0;\r\n this.panelUpdatesDisposable = new MutableDisposable();\r\n this._onDidDimensionChange = new Emitter({\r\n replay: true,\r\n });\r\n this.onDidDimensionsChange = this._onDidDimensionChange.event;\r\n //\r\n this._onDidChangeFocus = new Emitter({\r\n replay: true,\r\n });\r\n this.onDidFocusChange = this._onDidChangeFocus.event;\r\n //\r\n this._onFocusEvent = new Emitter();\r\n this.onFocusEvent = this._onFocusEvent.event;\r\n //\r\n this._onDidVisibilityChange = new Emitter({\r\n replay: true,\r\n });\r\n this.onDidVisibilityChange = this._onDidVisibilityChange.event;\r\n //\r\n this._onVisibilityChange = new Emitter();\r\n this.onVisibilityChange = this._onVisibilityChange.event;\r\n //\r\n this._onDidActiveChange = new Emitter({\r\n replay: true,\r\n });\r\n this.onDidActiveChange = this._onDidActiveChange.event;\r\n //\r\n this._onActiveChange = new Emitter();\r\n this.onActiveChange = this._onActiveChange.event;\r\n //\r\n this._onUpdateParameters = new Emitter();\r\n this.onUpdateParameters = this._onUpdateParameters.event;\r\n this.addDisposables(this.onDidFocusChange((event) => {\r\n this._isFocused = event.isFocused;\r\n }), this.onDidActiveChange((event) => {\r\n this._isActive = event.isActive;\r\n }), this.onDidVisibilityChange((event) => {\r\n this._isVisible = event.isVisible;\r\n }), this.onDidDimensionsChange((event) => {\r\n this._width = event.width;\r\n this._height = event.height;\r\n }), this.panelUpdatesDisposable, this._onDidDimensionChange, this._onDidChangeFocus, this._onDidVisibilityChange, this._onDidActiveChange, this._onFocusEvent, this._onActiveChange, this._onVisibilityChange, this._onUpdateParameters);\r\n }\r\n initialize(panel) {\r\n this.panelUpdatesDisposable.value = this._onUpdateParameters.event((parameters) => {\r\n panel.update({\r\n params: parameters,\r\n });\r\n });\r\n }\r\n setVisible(isVisible) {\r\n this._onVisibilityChange.fire({ isVisible });\r\n }\r\n setActive() {\r\n this._onActiveChange.fire();\r\n }\r\n updateParameters(parameters) {\r\n this._onUpdateParameters.fire(parameters);\r\n }\r\n dispose() {\r\n super.dispose();\r\n }\r\n}\r\n//# sourceMappingURL=panelApi.js.map","import { Emitter } from '../events';\r\nimport { PanelApiImpl } from './panelApi';\r\nexport class SplitviewPanelApiImpl extends PanelApiImpl {\r\n //\r\n constructor(id) {\r\n super(id);\r\n this._onDidConstraintsChangeInternal = new Emitter();\r\n this.onDidConstraintsChangeInternal = this._onDidConstraintsChangeInternal.event;\r\n //\r\n this._onDidConstraintsChange = new Emitter({\r\n replay: true,\r\n });\r\n this.onDidConstraintsChange = this._onDidConstraintsChange.event;\r\n //\r\n this._onDidSizeChange = new Emitter();\r\n this.onDidSizeChange = this._onDidSizeChange.event;\r\n this.addDisposables(this._onDidConstraintsChangeInternal, this._onDidConstraintsChange, this._onDidSizeChange);\r\n }\r\n setConstraints(value) {\r\n this._onDidConstraintsChangeInternal.fire(value);\r\n }\r\n setSize(event) {\r\n this._onDidSizeChange.fire(event);\r\n }\r\n}\r\n//# sourceMappingURL=splitviewPanelApi.js.map","import { Emitter } from '../events';\r\nimport { SplitviewPanelApiImpl } from './splitviewPanelApi';\r\nexport class PaneviewPanelApiImpl extends SplitviewPanelApiImpl {\r\n set pane(pane) {\r\n this._pane = pane;\r\n }\r\n constructor(id) {\r\n super(id);\r\n this._onDidExpansionChange = new Emitter({\r\n replay: true,\r\n });\r\n this.onDidExpansionChange = this._onDidExpansionChange.event;\r\n this._onMouseEnter = new Emitter({});\r\n this.onMouseEnter = this._onMouseEnter.event;\r\n this._onMouseLeave = new Emitter({});\r\n this.onMouseLeave = this._onMouseLeave.event;\r\n this.addDisposables(this._onDidExpansionChange, this._onMouseEnter, this._onMouseLeave);\r\n }\r\n setExpanded(isExpanded) {\r\n var _a;\r\n (_a = this._pane) === null || _a === void 0 ? void 0 : _a.setExpanded(isExpanded);\r\n }\r\n get isExpanded() {\r\n var _a;\r\n return !!((_a = this._pane) === null || _a === void 0 ? void 0 : _a.isExpanded());\r\n }\r\n}\r\n//# sourceMappingURL=paneviewPanelApi.js.map","import { trackFocus } from '../dom';\r\nimport { CompositeDisposable } from '../lifecycle';\r\nexport class BasePanelView extends CompositeDisposable {\r\n get element() {\r\n return this._element;\r\n }\r\n get width() {\r\n return this._width;\r\n }\r\n get height() {\r\n return this._height;\r\n }\r\n get params() {\r\n var _a;\r\n return (_a = this._params) === null || _a === void 0 ? void 0 : _a.params;\r\n }\r\n constructor(id, component, api) {\r\n super();\r\n this.id = id;\r\n this.component = component;\r\n this.api = api;\r\n this._height = 0;\r\n this._width = 0;\r\n this._element = document.createElement('div');\r\n this._element.tabIndex = -1;\r\n this._element.style.outline = 'none';\r\n this._element.style.height = '100%';\r\n this._element.style.width = '100%';\r\n this._element.style.overflow = 'hidden';\r\n const focusTracker = trackFocus(this._element);\r\n this.addDisposables(this.api, focusTracker.onDidFocus(() => {\r\n this.api._onDidChangeFocus.fire({ isFocused: true });\r\n }), focusTracker.onDidBlur(() => {\r\n this.api._onDidChangeFocus.fire({ isFocused: false });\r\n }), focusTracker);\r\n }\r\n focus() {\r\n this.api._onFocusEvent.fire();\r\n }\r\n layout(width, height) {\r\n this._width = width;\r\n this._height = height;\r\n this.api._onDidDimensionChange.fire({ width, height });\r\n if (this.part) {\r\n if (this._params) {\r\n this.part.update(this._params.params);\r\n }\r\n }\r\n }\r\n init(parameters) {\r\n this._params = parameters;\r\n this.part = this.getComponent();\r\n }\r\n update(event) {\r\n var _a, _b;\r\n // merge the new parameters with the existing parameters\r\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) });\r\n /**\r\n * delete new keys that have a value of undefined,\r\n * allow values of null\r\n */\r\n for (const key of Object.keys(event.params)) {\r\n if (event.params[key] === undefined) {\r\n delete this._params.params[key];\r\n }\r\n }\r\n // update the view with the updated props\r\n (_b = this.part) === null || _b === void 0 ? void 0 : _b.update({ params: this._params.params });\r\n }\r\n toJSON() {\r\n var _a, _b;\r\n const params = (_b = (_a = this._params) === null || _a === void 0 ? void 0 : _a.params) !== null && _b !== void 0 ? _b : {};\r\n return {\r\n id: this.id,\r\n component: this.component,\r\n params: Object.keys(params).length > 0 ? params : undefined,\r\n };\r\n }\r\n dispose() {\r\n var _a;\r\n this.api.dispose();\r\n (_a = this.part) === null || _a === void 0 ? void 0 : _a.dispose();\r\n super.dispose();\r\n }\r\n}\r\n//# sourceMappingURL=basePanelView.js.map","import { PaneviewPanelApiImpl } from '../api/paneviewPanelApi';\r\nimport { addClasses, removeClasses } from '../dom';\r\nimport { addDisposableListener, Emitter } from '../events';\r\nimport { BasePanelView, } from '../gridview/basePanelView';\r\nimport { Orientation } from '../splitview/splitview';\r\nexport class PaneviewPanel extends BasePanelView {\r\n set orientation(value) {\r\n this._orientation = value;\r\n }\r\n get orientation() {\r\n return this._orientation;\r\n }\r\n get minimumSize() {\r\n const headerSize = this.headerSize;\r\n const expanded = this.isExpanded();\r\n const minimumBodySize = expanded ? this._minimumBodySize : 0;\r\n return headerSize + minimumBodySize;\r\n }\r\n get maximumSize() {\r\n const headerSize = this.headerSize;\r\n const expanded = this.isExpanded();\r\n const maximumBodySize = expanded ? this._maximumBodySize : 0;\r\n return headerSize + maximumBodySize;\r\n }\r\n get size() {\r\n return this._size;\r\n }\r\n get orthogonalSize() {\r\n return this._orthogonalSize;\r\n }\r\n set orthogonalSize(size) {\r\n this._orthogonalSize = size;\r\n }\r\n get minimumBodySize() {\r\n return this._minimumBodySize;\r\n }\r\n set minimumBodySize(value) {\r\n this._minimumBodySize = typeof value === 'number' ? value : 0;\r\n }\r\n get maximumBodySize() {\r\n return this._maximumBodySize;\r\n }\r\n set maximumBodySize(value) {\r\n this._maximumBodySize =\r\n typeof value === 'number' ? value : Number.POSITIVE_INFINITY;\r\n }\r\n get headerVisible() {\r\n return this._headerVisible;\r\n }\r\n set headerVisible(value) {\r\n this._headerVisible = value;\r\n this.header.style.display = value ? '' : 'none';\r\n }\r\n constructor(id, component, headerComponent, orientation, isExpanded, isHeaderVisible) {\r\n super(id, component, new PaneviewPanelApiImpl(id));\r\n this.headerComponent = headerComponent;\r\n this._onDidChangeExpansionState = new Emitter({ replay: true });\r\n this.onDidChangeExpansionState = this._onDidChangeExpansionState.event;\r\n this._onDidChange = new Emitter();\r\n this.onDidChange = this._onDidChange.event;\r\n this.headerSize = 22;\r\n this._orthogonalSize = 0;\r\n this._size = 0;\r\n this._minimumBodySize = 100;\r\n this._maximumBodySize = Number.POSITIVE_INFINITY;\r\n this._isExpanded = false;\r\n this.expandedSize = 0;\r\n this.api.pane = this; // TODO cannot use 'this' before 'super'\r\n this.api.initialize(this);\r\n this._isExpanded = isExpanded;\r\n this._headerVisible = isHeaderVisible;\r\n this._onDidChangeExpansionState.fire(this.isExpanded()); // initialize value\r\n this._orientation = orientation;\r\n this.element.classList.add('pane');\r\n this.addDisposables(this.api.onDidSizeChange((event) => {\r\n this._onDidChange.fire({ size: event.size });\r\n }), addDisposableListener(this.element, 'mouseenter', (ev) => {\r\n this.api._onMouseEnter.fire(ev);\r\n }), addDisposableListener(this.element, 'mouseleave', (ev) => {\r\n this.api._onMouseLeave.fire(ev);\r\n }));\r\n this.addDisposables(this._onDidChangeExpansionState, this.onDidChangeExpansionState((isPanelExpanded) => {\r\n this.api._onDidExpansionChange.fire({\r\n isExpanded: isPanelExpanded,\r\n });\r\n }), this.api.onDidFocusChange((e) => {\r\n if (!this.header) {\r\n return;\r\n }\r\n if (e.isFocused) {\r\n addClasses(this.header, 'focused');\r\n }\r\n else {\r\n removeClasses(this.header, 'focused');\r\n }\r\n }));\r\n this.renderOnce();\r\n }\r\n setVisible(isVisible) {\r\n this.api._onDidVisibilityChange.fire({ isVisible });\r\n }\r\n setActive(isActive) {\r\n this.api._onDidActiveChange.fire({ isActive });\r\n }\r\n isExpanded() {\r\n return this._isExpanded;\r\n }\r\n setExpanded(expanded) {\r\n if (this._isExpanded === expanded) {\r\n return;\r\n }\r\n this._isExpanded = expanded;\r\n if (expanded) {\r\n if (this.animationTimer) {\r\n clearTimeout(this.animationTimer);\r\n }\r\n if (this.body) {\r\n this.element.appendChild(this.body);\r\n }\r\n }\r\n else {\r\n this.animationTimer = setTimeout(() => {\r\n var _a;\r\n (_a = this.body) === null || _a === void 0 ? void 0 : _a.remove();\r\n }, 200);\r\n }\r\n this._onDidChange.fire(expanded ? { size: this.width } : {});\r\n this._onDidChangeExpansionState.fire(expanded);\r\n }\r\n layout(size, orthogonalSize) {\r\n this._size = size;\r\n this._orthogonalSize = orthogonalSize;\r\n const [width, height] = this.orientation === Orientation.HORIZONTAL\r\n ? [size, orthogonalSize]\r\n : [orthogonalSize, size];\r\n if (this.isExpanded()) {\r\n this.expandedSize = width;\r\n }\r\n super.layout(width, height);\r\n }\r\n init(parameters) {\r\n var _a, _b;\r\n super.init(parameters);\r\n if (typeof parameters.minimumBodySize === 'number') {\r\n this.minimumBodySize = parameters.minimumBodySize;\r\n }\r\n if (typeof parameters.maximumBodySize === 'number') {\r\n this.maximumBodySize = parameters.maximumBodySize;\r\n }\r\n this.bodyPart = this.getBodyComponent();\r\n this.headerPart = this.getHeaderComponent();\r\n this.bodyPart.init(Object.assign(Object.assign({}, parameters), { api: this.api }));\r\n this.headerPart.init(Object.assign(Object.assign({}, parameters), { api: this.api }));\r\n (_a = this.body) === null || _a === void 0 ? void 0 : _a.append(this.bodyPart.element);\r\n (_b = this.header) === null || _b === void 0 ? void 0 : _b.append(this.headerPart.element);\r\n if (typeof parameters.isExpanded === 'boolean') {\r\n this.setExpanded(parameters.isExpanded);\r\n }\r\n }\r\n toJSON() {\r\n const params = this._params;\r\n return Object.assign(Object.assign({}, super.toJSON()), { headerComponent: this.headerComponent, title: params.title });\r\n }\r\n renderOnce() {\r\n this.header = document.createElement('div');\r\n this.header.tabIndex = 0;\r\n this.header.className = 'pane-header';\r\n this.header.style.height = `${this.headerSize}px`;\r\n this.header.style.lineHeight = `${this.headerSize}px`;\r\n this.header.style.minHeight = `${this.headerSize}px`;\r\n this.header.style.maxHeight = `${this.headerSize}px`;\r\n this.element.appendChild(this.header);\r\n this.body = document.createElement('div');\r\n this.body.className = 'pane-body';\r\n this.element.appendChild(this.body);\r\n }\r\n // TODO slightly hacky by-pass of the component to create a body and header component\r\n getComponent() {\r\n return {\r\n update: (params) => {\r\n var _a, _b;\r\n (_a = this.bodyPart) === null || _a === void 0 ? void 0 : _a.update({ params });\r\n (_b = this.headerPart) === null || _b === void 0 ? void 0 : _b.update({ params });\r\n },\r\n dispose: () => {\r\n var _a, _b;\r\n (_a = this.bodyPart) === null || _a === void 0 ? void 0 : _a.dispose();\r\n (_b = this.headerPart) === null || _b === void 0 ? void 0 : _b.dispose();\r\n },\r\n };\r\n }\r\n}\r\n//# sourceMappingURL=paneviewPanel.js.map","import { PaneviewApi } from '../api/component.api';\r\nimport { DragHandler } from '../dnd/abstractDragHandler';\r\nimport { getPaneData, LocalSelectionTransfer, PaneTransfer, } from '../dnd/dataTransfer';\r\nimport { Droptarget } from '../dnd/droptarget';\r\nimport { Emitter } from '../events';\r\nimport { PaneviewPanel, } from './paneviewPanel';\r\nexport class DraggablePaneviewPanel extends PaneviewPanel {\r\n constructor(accessor, id, component, headerComponent, orientation, isExpanded, disableDnd) {\r\n super(id, component, headerComponent, orientation, isExpanded, true);\r\n this.accessor = accessor;\r\n this._onDidDrop = new Emitter();\r\n this.onDidDrop = this._onDidDrop.event;\r\n if (!disableDnd) {\r\n this.initDragFeatures();\r\n }\r\n }\r\n initDragFeatures() {\r\n if (!this.header) {\r\n return;\r\n }\r\n const id = this.id;\r\n const accessorId = this.accessor.id;\r\n this.header.draggable = true;\r\n this.handler = new (class PaneDragHandler extends DragHandler {\r\n getData() {\r\n LocalSelectionTransfer.getInstance().setData([new PaneTransfer(accessorId, id)], PaneTransfer.prototype);\r\n return {\r\n dispose: () => {\r\n LocalSelectionTransfer.getInstance().clearData(PaneTransfer.prototype);\r\n },\r\n };\r\n }\r\n })(this.header);\r\n this.target = new Droptarget(this.element, {\r\n acceptedTargetZones: ['top', 'bottom'],\r\n overlayModel: {\r\n activationSize: { type: 'percentage', value: 50 },\r\n },\r\n canDisplayOverlay: (event) => {\r\n const data = getPaneData();\r\n if (data) {\r\n if (data.paneId !== this.id &&\r\n data.viewId === this.accessor.id) {\r\n return true;\r\n }\r\n }\r\n if (this.accessor.options.showDndOverlay) {\r\n return this.accessor.options.showDndOverlay({\r\n nativeEvent: event,\r\n getData: getPaneData,\r\n panel: this,\r\n });\r\n }\r\n return false;\r\n },\r\n });\r\n this.addDisposables(this._onDidDrop, this.handler, this.target, this.target.onDrop((event) => {\r\n this.onDrop(event);\r\n }));\r\n }\r\n onDrop(event) {\r\n const data = getPaneData();\r\n if (!data || data.viewId !== this.accessor.id) {\r\n // if there is no local drag event for this panel\r\n // or if the drag event was creating by another Paneview instance\r\n this._onDidDrop.fire(Object.assign(Object.assign({}, event), { panel: this, api: new PaneviewApi(this.accessor), getData: getPaneData }));\r\n return;\r\n }\r\n const containerApi = this._params\r\n .containerApi;\r\n const panelId = data.paneId;\r\n const existingPanel = containerApi.getPanel(panelId);\r\n if (!existingPanel) {\r\n // if the panel doesn't exist\r\n this._onDidDrop.fire(Object.assign(Object.assign({}, event), { panel: this, getData: getPaneData, api: new PaneviewApi(this.accessor) }));\r\n return;\r\n }\r\n const allPanels = containerApi.panels;\r\n const fromIndex = allPanels.indexOf(existingPanel);\r\n let toIndex = containerApi.panels.indexOf(this);\r\n if (event.position === 'left' || event.position === 'top') {\r\n toIndex = Math.max(0, toIndex - 1);\r\n }\r\n if (event.position === 'right' || event.position === 'bottom') {\r\n if (fromIndex > toIndex) {\r\n toIndex++;\r\n }\r\n toIndex = Math.min(allPanels.length - 1, toIndex);\r\n }\r\n containerApi.movePanel(fromIndex, toIndex);\r\n }\r\n}\r\n//# sourceMappingURL=draggablePaneviewPanel.js.map","import { Emitter } from '../events';\r\nimport { PanelApiImpl } from './panelApi';\r\nexport class GridviewPanelApiImpl extends PanelApiImpl {\r\n constructor(id, panel) {\r\n super(id);\r\n this._onDidConstraintsChangeInternal = new Emitter();\r\n this.onDidConstraintsChangeInternal = this._onDidConstraintsChangeInternal.event;\r\n this._onDidConstraintsChange = new Emitter({\r\n replay: true,\r\n });\r\n this.onDidConstraintsChange = this._onDidConstraintsChange.event;\r\n this._onDidSizeChange = new Emitter();\r\n this.onDidSizeChange = this._onDidSizeChange.event;\r\n this.addDisposables(this._onDidConstraintsChangeInternal, this._onDidConstraintsChange, this._onDidSizeChange);\r\n if (panel) {\r\n this.initialize(panel);\r\n }\r\n }\r\n setConstraints(value) {\r\n this._onDidConstraintsChangeInternal.fire(value);\r\n }\r\n setSize(event) {\r\n this._onDidSizeChange.fire(event);\r\n }\r\n}\r\n//# sourceMappingURL=gridviewPanelApi.js.map","import { BasePanelView, } from './basePanelView';\r\nimport { GridviewPanelApiImpl, } from '../api/gridviewPanelApi';\r\nimport { Emitter } from '../events';\r\nexport class GridviewPanel extends BasePanelView {\r\n get priority() {\r\n return this._priority;\r\n }\r\n get snap() {\r\n return this._snap;\r\n }\r\n get minimumWidth() {\r\n const width = typeof this._minimumWidth === 'function'\r\n ? this._minimumWidth()\r\n : this._minimumWidth;\r\n if (width !== this._evaluatedMinimumWidth) {\r\n this._evaluatedMinimumWidth = width;\r\n this.updateConstraints();\r\n }\r\n return width;\r\n }\r\n get minimumHeight() {\r\n const height = typeof this._minimumHeight === 'function'\r\n ? this._minimumHeight()\r\n : this._minimumHeight;\r\n if (height !== this._evaluatedMinimumHeight) {\r\n this._evaluatedMinimumHeight = height;\r\n this.updateConstraints();\r\n }\r\n return height;\r\n }\r\n get maximumHeight() {\r\n const height = typeof this._maximumHeight === 'function'\r\n ? this._maximumHeight()\r\n : this._maximumHeight;\r\n if (height !== this._evaluatedMaximumHeight) {\r\n this._evaluatedMaximumHeight = height;\r\n this.updateConstraints();\r\n }\r\n return height;\r\n }\r\n get maximumWidth() {\r\n const width = typeof this._maximumWidth === 'function'\r\n ? this._maximumWidth()\r\n : this._maximumWidth;\r\n if (width !== this._evaluatedMaximumWidth) {\r\n this._evaluatedMaximumWidth = width;\r\n this.updateConstraints();\r\n }\r\n return width;\r\n }\r\n get isActive() {\r\n return this.api.isActive;\r\n }\r\n constructor(id, component, options, api) {\r\n super(id, component, api !== null && api !== void 0 ? api : new GridviewPanelApiImpl(id));\r\n this._evaluatedMinimumWidth = 0;\r\n this._evaluatedMaximumWidth = Number.MAX_SAFE_INTEGER;\r\n this._evaluatedMinimumHeight = 0;\r\n this._evaluatedMaximumHeight = Number.MAX_SAFE_INTEGER;\r\n this._minimumWidth = 0;\r\n this._minimumHeight = 0;\r\n this._maximumWidth = Number.MAX_SAFE_INTEGER;\r\n this._maximumHeight = Number.MAX_SAFE_INTEGER;\r\n this._snap = false;\r\n this._onDidChange = new Emitter();\r\n this.onDidChange = this._onDidChange.event;\r\n if (typeof (options === null || options === void 0 ? void 0 : options.minimumWidth) === 'number') {\r\n this._minimumWidth = options.minimumWidth;\r\n }\r\n if (typeof (options === null || options === void 0 ? void 0 : options.maximumWidth) === 'number') {\r\n this._maximumWidth = options.maximumWidth;\r\n }\r\n if (typeof (options === null || options === void 0 ? void 0 : options.minimumHeight) === 'number') {\r\n this._minimumHeight = options.minimumHeight;\r\n }\r\n if (typeof (options === null || options === void 0 ? void 0 : options.maximumHeight) === 'number') {\r\n this._maximumHeight = options.maximumHeight;\r\n }\r\n this.api.initialize(this); // TODO: required to by-pass 'super before this' requirement\r\n this.addDisposables(this.api.onVisibilityChange((event) => {\r\n const { isVisible } = event;\r\n const { accessor } = this._params;\r\n accessor.setVisible(this, isVisible);\r\n }), this.api.onActiveChange(() => {\r\n const { accessor } = this._params;\r\n accessor.setActive(this);\r\n }), this.api.onDidConstraintsChangeInternal((event) => {\r\n if (typeof event.minimumWidth === 'number' ||\r\n typeof event.minimumWidth === 'function') {\r\n this._minimumWidth = event.minimumWidth;\r\n }\r\n if (typeof event.minimumHeight === 'number' ||\r\n typeof event.minimumHeight === 'function') {\r\n this._minimumHeight = event.minimumHeight;\r\n }\r\n if (typeof event.maximumWidth === 'number' ||\r\n typeof event.maximumWidth === 'function') {\r\n this._maximumWidth = event.maximumWidth;\r\n }\r\n if (typeof event.maximumHeight === 'number' ||\r\n typeof event.maximumHeight === 'function') {\r\n this._maximumHeight = event.maximumHeight;\r\n }\r\n }), this.api.onDidSizeChange((event) => {\r\n this._onDidChange.fire({\r\n height: event.height,\r\n width: event.width,\r\n });\r\n }), this._onDidChange);\r\n }\r\n setVisible(isVisible) {\r\n this.api._onDidVisibilityChange.fire({ isVisible });\r\n }\r\n setActive(isActive) {\r\n this.api._onDidActiveChange.fire({ isActive });\r\n }\r\n init(parameters) {\r\n if (parameters.maximumHeight) {\r\n this._maximumHeight = parameters.maximumHeight;\r\n }\r\n if (parameters.minimumHeight) {\r\n this._minimumHeight = parameters.minimumHeight;\r\n }\r\n if (parameters.maximumWidth) {\r\n this._maximumWidth = parameters.maximumWidth;\r\n }\r\n if (parameters.minimumWidth) {\r\n this._minimumWidth = parameters.minimumWidth;\r\n }\r\n this._priority = parameters.priority;\r\n this._snap = !!parameters.snap;\r\n super.init(parameters);\r\n if (typeof parameters.isVisible === 'boolean') {\r\n this.setVisible(parameters.isVisible);\r\n }\r\n }\r\n updateConstraints() {\r\n this.api._onDidConstraintsChange.fire({\r\n minimumWidth: this._evaluatedMinimumWidth,\r\n maximumWidth: this._evaluatedMaximumWidth,\r\n minimumHeight: this._evaluatedMinimumHeight,\r\n maximumHeight: this._evaluatedMaximumHeight,\r\n });\r\n }\r\n toJSON() {\r\n const state = super.toJSON();\r\n const maximum = (value) => value === Number.MAX_SAFE_INTEGER ? undefined : value;\r\n const minimum = (value) => (value <= 0 ? undefined : value);\r\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 });\r\n }\r\n}\r\n//# sourceMappingURL=gridviewPanel.js.map","import { Emitter } from '../events';\r\nimport { GridviewPanelApiImpl } from './gridviewPanelApi';\r\nexport class DockviewGroupPanelApiImpl extends GridviewPanelApiImpl {\r\n get isFloating() {\r\n if (!this._group) {\r\n throw new Error(`DockviewGroupPanelApiImpl not initialized`);\r\n }\r\n return this._group.model.isFloating;\r\n }\r\n constructor(id, accessor) {\r\n super(id);\r\n this.accessor = accessor;\r\n this._onDidFloatingStateChange = new Emitter();\r\n this.onDidFloatingStateChange = this._onDidFloatingStateChange.event;\r\n this.addDisposables(this._onDidFloatingStateChange);\r\n }\r\n moveTo(options) {\r\n var _a;\r\n if (!this._group) {\r\n throw new Error(`DockviewGroupPanelApiImpl not initialized`);\r\n }\r\n this.accessor.moveGroupOrPanel(options.group, this._group.id, undefined, (_a = options.position) !== null && _a !== void 0 ? _a : 'center');\r\n }\r\n initialize(group) {\r\n this._group = group;\r\n }\r\n}\r\n//# sourceMappingURL=dockviewGroupPanelApi.js.map","import { DockviewGroupPanelModel, } from './dockviewGroupPanelModel';\r\nimport { GridviewPanel } from '../gridview/gridviewPanel';\r\nimport { DockviewGroupPanelApiImpl, } from '../api/dockviewGroupPanelApi';\r\nexport class DockviewGroupPanel extends GridviewPanel {\r\n get panels() {\r\n return this._model.panels;\r\n }\r\n get activePanel() {\r\n return this._model.activePanel;\r\n }\r\n get size() {\r\n return this._model.size;\r\n }\r\n get model() {\r\n return this._model;\r\n }\r\n get locked() {\r\n return this._model.locked;\r\n }\r\n set locked(value) {\r\n this._model.locked = value;\r\n }\r\n get header() {\r\n return this._model.header;\r\n }\r\n constructor(accessor, id, options) {\r\n super(id, 'groupview_default', {\r\n minimumHeight: 100,\r\n minimumWidth: 100,\r\n }, new DockviewGroupPanelApiImpl(id, accessor));\r\n this.api.initialize(this); // cannot use 'this' after after 'super' call\r\n this._model = new DockviewGroupPanelModel(this.element, accessor, id, options, this);\r\n }\r\n initialize() {\r\n this._model.initialize();\r\n }\r\n setActive(isActive) {\r\n super.setActive(isActive);\r\n this.model.setActive(isActive);\r\n }\r\n layout(width, height) {\r\n super.layout(width, height);\r\n this.model.layout(width, height);\r\n }\r\n getComponent() {\r\n return this._model;\r\n }\r\n toJSON() {\r\n return this.model.toJSON();\r\n }\r\n}\r\n//# sourceMappingURL=dockviewGroupPanel.js.map","export function isPanelOptionsWithPanel(data) {\r\n if (data.referencePanel) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nexport function isPanelOptionsWithGroup(data) {\r\n if (data.referenceGroup) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nexport function isGroupOptionsWithPanel(data) {\r\n if (data.referencePanel) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nexport function isGroupOptionsWithGroup(data) {\r\n if (data.referenceGroup) {\r\n return true;\r\n }\r\n return false;\r\n}\r\n//# sourceMappingURL=options.js.map","import { Emitter } from '../events';\r\nimport { GridviewPanelApiImpl } from './gridviewPanelApi';\r\nimport { MutableDisposable } from '../lifecycle';\r\nexport class DockviewPanelApiImpl extends GridviewPanelApiImpl {\r\n get title() {\r\n return this.panel.title;\r\n }\r\n get isGroupActive() {\r\n var _a;\r\n return !!((_a = this.group) === null || _a === void 0 ? void 0 : _a.isActive);\r\n }\r\n set group(value) {\r\n const isOldGroupActive = this.isGroupActive;\r\n this._group = value;\r\n this._onDidGroupChange.fire();\r\n if (this._group) {\r\n this.disposable.value = this._group.api.onDidActiveChange(() => {\r\n this._onDidActiveGroupChange.fire();\r\n });\r\n if (this.isGroupActive !== isOldGroupActive) {\r\n this._onDidActiveGroupChange.fire();\r\n }\r\n }\r\n }\r\n get group() {\r\n return this._group;\r\n }\r\n constructor(panel, group, accessor) {\r\n super(panel.id);\r\n this.panel = panel;\r\n this.accessor = accessor;\r\n this._onDidTitleChange = new Emitter();\r\n this.onDidTitleChange = this._onDidTitleChange.event;\r\n this._onDidActiveGroupChange = new Emitter();\r\n this.onDidActiveGroupChange = this._onDidActiveGroupChange.event;\r\n this._onDidGroupChange = new Emitter();\r\n this.onDidGroupChange = this._onDidGroupChange.event;\r\n this.disposable = new MutableDisposable();\r\n this.initialize(panel);\r\n this._group = group;\r\n this.addDisposables(this.disposable, this._onDidTitleChange, this._onDidGroupChange, this._onDidActiveGroupChange);\r\n }\r\n moveTo(options) {\r\n var _a;\r\n this.accessor.moveGroupOrPanel(options.group, this._group.id, this.panel.id, (_a = options.position) !== null && _a !== void 0 ? _a : 'center', options.index);\r\n }\r\n setTitle(title) {\r\n this.panel.setTitle(title);\r\n }\r\n close() {\r\n this.group.model.closePanel(this.panel);\r\n }\r\n}\r\n//# sourceMappingURL=dockviewPanelApi.js.map","import { DockviewPanelApiImpl, } from '../api/dockviewPanelApi';\r\nimport { CompositeDisposable } from '../lifecycle';\r\nexport class DockviewPanel extends CompositeDisposable {\r\n get params() {\r\n return this._params;\r\n }\r\n get title() {\r\n return this._title;\r\n }\r\n get group() {\r\n return this._group;\r\n }\r\n constructor(id, accessor, containerApi, group, view) {\r\n super();\r\n this.id = id;\r\n this.containerApi = containerApi;\r\n this.view = view;\r\n this._group = group;\r\n this.api = new DockviewPanelApiImpl(this, this._group, accessor);\r\n this.addDisposables(this.api.onActiveChange(() => {\r\n accessor.setActivePanel(this);\r\n }), this.api.onDidSizeChange((event) => {\r\n // forward the resize event to the group since if you want to resize a panel\r\n // you are actually just resizing the panels parent which is the group\r\n this.group.api.setSize(event);\r\n }));\r\n }\r\n init(params) {\r\n this._params = params.params;\r\n this.view.init(Object.assign(Object.assign({}, params), { api: this.api, containerApi: this.containerApi }));\r\n this.setTitle(params.title);\r\n }\r\n focus() {\r\n this.api._onFocusEvent.fire();\r\n }\r\n toJSON() {\r\n return {\r\n id: this.id,\r\n contentComponent: this.view.contentComponent,\r\n tabComponent: this.view.tabComponent,\r\n params: Object.keys(this._params || {}).length > 0\r\n ? this._params\r\n : undefined,\r\n title: this.title,\r\n };\r\n }\r\n setTitle(title) {\r\n const didTitleChange = title !== this.title;\r\n if (didTitleChange) {\r\n this._title = title;\r\n this.view.update({\r\n params: {\r\n params: this._params,\r\n title: this.title,\r\n },\r\n });\r\n this.api._onDidTitleChange.fire({ title });\r\n }\r\n }\r\n update(event) {\r\n // merge the new parameters with the existing parameters\r\n this._params = Object.assign(Object.assign({}, (this._params || {})), event.params);\r\n /**\r\n * delete new keys that have a value of undefined,\r\n * allow values of null\r\n */\r\n for (const key of Object.keys(event.params)) {\r\n if (event.params[key] === undefined) {\r\n delete this._params[key];\r\n }\r\n }\r\n // update the view with the updated props\r\n this.view.update({\r\n params: {\r\n params: this._params,\r\n title: this.title,\r\n },\r\n });\r\n }\r\n updateParentGroup(group, isGroupActive) {\r\n this._group = group;\r\n this.api.group = group;\r\n const isPanelVisible = this._group.model.isPanelActive(this);\r\n this.api._onDidActiveChange.fire({\r\n isActive: isGroupActive && isPanelVisible,\r\n });\r\n this.api._onDidVisibilityChange.fire({\r\n isVisible: isPanelVisible,\r\n });\r\n this.view.updateParentGroup(this._group, this._group.model.isPanelActive(this));\r\n }\r\n layout(width, height) {\r\n // the obtain the correct dimensions of the content panel we must deduct the tab height\r\n this.api._onDidDimensionChange.fire({\r\n width,\r\n height: height,\r\n });\r\n this.view.layout(width, height);\r\n }\r\n dispose() {\r\n this.api.dispose();\r\n this.view.dispose();\r\n }\r\n}\r\n//# sourceMappingURL=dockviewPanel.js.map","const createSvgElementFromPath = (params) => {\r\n const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\r\n svg.setAttributeNS(null, 'height', params.height);\r\n svg.setAttributeNS(null, 'width', params.width);\r\n svg.setAttributeNS(null, 'viewBox', params.viewbox);\r\n svg.setAttributeNS(null, 'aria-hidden', 'false');\r\n svg.setAttributeNS(null, 'focusable', 'false');\r\n svg.classList.add('dockview-svg');\r\n const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');\r\n path.setAttributeNS(null, 'd', params.path);\r\n svg.appendChild(path);\r\n return svg;\r\n};\r\nexport const createCloseButton = () => createSvgElementFromPath({\r\n width: '11',\r\n height: '11',\r\n viewbox: '0 0 28 28',\r\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',\r\n});\r\nexport const createExpandMoreButton = () => createSvgElementFromPath({\r\n width: '11',\r\n height: '11',\r\n viewbox: '0 0 24 15',\r\n path: 'M12 14.15L0 2.15L2.15 0L12 9.9L21.85 0.0499992L24 2.2L12 14.15Z',\r\n});\r\nexport const createChevronRightButton = () => createSvgElementFromPath({\r\n width: '11',\r\n height: '11',\r\n viewbox: '0 0 15 25',\r\n path: 'M2.15 24.1L0 21.95L9.9 12.05L0 2.15L2.15 0L14.2 12.05L2.15 24.1Z',\r\n});\r\n//# sourceMappingURL=svg.js.map","import { CompositeDisposable } from '../../../lifecycle';\r\nimport { addDisposableListener } from '../../../events';\r\nimport { createCloseButton } from '../../../svg';\r\nexport class DefaultTab extends CompositeDisposable {\r\n get element() {\r\n return this._element;\r\n }\r\n constructor() {\r\n super();\r\n //\r\n this.params = {};\r\n this._element = document.createElement('div');\r\n this._element.className = 'default-tab';\r\n //\r\n this._content = document.createElement('div');\r\n this._content.className = 'tab-content';\r\n //\r\n this._actionContainer = document.createElement('div');\r\n this._actionContainer.className = 'action-container';\r\n //\r\n this._list = document.createElement('ul');\r\n this._list.className = 'tab-list';\r\n //\r\n this.action = document.createElement('div');\r\n this.action.className = 'tab-action';\r\n this.action.appendChild(createCloseButton());\r\n //\r\n this._element.appendChild(this._content);\r\n this._element.appendChild(this._actionContainer);\r\n this._actionContainer.appendChild(this._list);\r\n this._list.appendChild(this.action);\r\n //\r\n this.addDisposables(addDisposableListener(this._actionContainer, 'mousedown', (ev) => {\r\n ev.preventDefault();\r\n }));\r\n this.render();\r\n }\r\n update(event) {\r\n this.params = Object.assign(Object.assign({}, this.params), event.params);\r\n this.render();\r\n }\r\n focus() {\r\n //noop\r\n }\r\n init(params) {\r\n this.params = params;\r\n this._content.textContent = params.title;\r\n addDisposableListener(this.action, 'click', (ev) => {\r\n ev.preventDefault(); //\r\n this.params.api.close();\r\n });\r\n }\r\n onGroupChange(_group) {\r\n this.render();\r\n }\r\n onPanelVisibleChange(_isPanelVisible) {\r\n this.render();\r\n }\r\n layout(_width, _height) {\r\n // noop\r\n }\r\n render() {\r\n if (this._content.textContent !== this.params.title) {\r\n this._content.textContent = this.params.title;\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=defaultTab.js.map","import { DefaultTab } from './components/tab/defaultTab';\r\nimport { createComponent } from '../panel/componentFactory';\r\nexport class DockviewPanelModel {\r\n get content() {\r\n return this._content;\r\n }\r\n get tab() {\r\n return this._tab;\r\n }\r\n constructor(accessor, id, contentComponent, tabComponent) {\r\n this.accessor = accessor;\r\n this.id = id;\r\n this.contentComponent = contentComponent;\r\n this.tabComponent = tabComponent;\r\n this._group = null;\r\n this._isPanelVisible = null;\r\n this._content = this.createContentComponent(this.id, contentComponent);\r\n this._tab = this.createTabComponent(this.id, tabComponent);\r\n }\r\n init(params) {\r\n this.content.init(Object.assign(Object.assign({}, params), { tab: this.tab }));\r\n this.tab.init(params);\r\n }\r\n updateParentGroup(group, isPanelVisible) {\r\n if (group !== this._group) {\r\n this._group = group;\r\n if (this._content.onGroupChange) {\r\n this._content.onGroupChange(group);\r\n }\r\n if (this._tab.onGroupChange) {\r\n this._tab.onGroupChange(group);\r\n }\r\n }\r\n if (isPanelVisible !== this._isPanelVisible) {\r\n this._isPanelVisible = isPanelVisible;\r\n if (this._content.onPanelVisibleChange) {\r\n this._content.onPanelVisibleChange(isPanelVisible);\r\n }\r\n if (this._tab.onPanelVisibleChange) {\r\n this._tab.onPanelVisibleChange(isPanelVisible);\r\n }\r\n }\r\n }\r\n layout(width, height) {\r\n var _a, _b;\r\n (_b = (_a = this.content).layout) === null || _b === void 0 ? void 0 : _b.call(_a, width, height);\r\n }\r\n update(event) {\r\n var _a, _b, _c, _d;\r\n (_b = (_a = this.content).update) === null || _b === void 0 ? void 0 : _b.call(_a, event);\r\n (_d = (_c = this.tab).update) === null || _d === void 0 ? void 0 : _d.call(_c, event);\r\n }\r\n dispose() {\r\n var _a, _b, _c, _d;\r\n (_b = (_a = this.content).dispose) === null || _b === void 0 ? void 0 : _b.call(_a);\r\n (_d = (_c = this.tab).dispose) === null || _d === void 0 ? void 0 : _d.call(_c);\r\n }\r\n createContentComponent(id, componentName) {\r\n var _a;\r\n return createComponent(id, componentName, this.accessor.options.components || {}, this.accessor.options.frameworkComponents, (_a = this.accessor.options.frameworkComponentFactory) === null || _a === void 0 ? void 0 : _a.content);\r\n }\r\n createTabComponent(id, componentName) {\r\n var _a, _b;\r\n if (componentName) {\r\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());\r\n }\r\n else if (this.accessor.options.defaultTabComponent) {\r\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());\r\n }\r\n else {\r\n return new DefaultTab();\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=dockviewPanelModel.js.map","import { DockviewPanel } from './dockviewPanel';\r\nimport { DockviewPanelModel } from './dockviewPanelModel';\r\nimport { DockviewApi } from '../api/component.api';\r\nexport class DefaultDockviewDeserialzier {\r\n constructor(layout) {\r\n this.layout = layout;\r\n }\r\n fromJSON(panelData, group) {\r\n var _a;\r\n const panelId = panelData.id;\r\n const params = panelData.params;\r\n const title = panelData.title;\r\n const viewData = panelData.view;\r\n const contentComponent = viewData\r\n ? viewData.content.id\r\n : panelData.contentComponent || 'unknown';\r\n const tabComponent = viewData\r\n ? (_a = viewData.tab) === null || _a === void 0 ? void 0 : _a.id\r\n : panelData.tabComponent;\r\n const view = new DockviewPanelModel(this.layout, panelId, contentComponent, tabComponent);\r\n const panel = new DockviewPanel(panelId, this.layout, new DockviewApi(this.layout), group, view);\r\n panel.init({\r\n title: title || panelId,\r\n params: params || {},\r\n });\r\n return panel;\r\n }\r\n}\r\n//# sourceMappingURL=deserializer.js.map","import { addDisposableListener } from '../../../events';\r\nimport { toggleClass } from '../../../dom';\r\nimport { CompositeDisposable } from '../../../lifecycle';\r\nimport { createCloseButton } from '../../../svg';\r\nexport class Watermark extends CompositeDisposable {\r\n get element() {\r\n return this._element;\r\n }\r\n constructor() {\r\n super();\r\n this._element = document.createElement('div');\r\n this._element.className = 'watermark';\r\n const title = document.createElement('div');\r\n title.className = 'watermark-title';\r\n const emptySpace = document.createElement('span');\r\n emptySpace.style.flexGrow = '1';\r\n const content = document.createElement('div');\r\n content.className = 'watermark-content';\r\n this._element.appendChild(title);\r\n this._element.appendChild(content);\r\n const actionsContainer = document.createElement('div');\r\n actionsContainer.className = 'actions-container';\r\n const closeAnchor = document.createElement('div');\r\n closeAnchor.className = 'close-action';\r\n closeAnchor.appendChild(createCloseButton());\r\n actionsContainer.appendChild(closeAnchor);\r\n title.appendChild(emptySpace);\r\n title.appendChild(actionsContainer);\r\n this.addDisposables(addDisposableListener(closeAnchor, 'click', (ev) => {\r\n var _a;\r\n ev.preventDefault();\r\n if (this._group) {\r\n (_a = this._api) === null || _a === void 0 ? void 0 : _a.removeGroup(this._group);\r\n }\r\n }));\r\n }\r\n update(_event) {\r\n // noop\r\n }\r\n focus() {\r\n // noop\r\n }\r\n layout(_width, _height) {\r\n // noop\r\n }\r\n init(_params) {\r\n this._api = _params.containerApi;\r\n this.render();\r\n }\r\n updateParentGroup(group, _visible) {\r\n this._group = group;\r\n this.render();\r\n }\r\n dispose() {\r\n super.dispose();\r\n }\r\n render() {\r\n const isOneGroup = !!(this._api && this._api.size <= 1);\r\n toggleClass(this.element, 'has-actions', isOneGroup);\r\n }\r\n}\r\n//# sourceMappingURL=watermark.js.map","import { getElementsByTagName, quasiDefaultPrevented, toggleClass, } from '../dom';\r\nimport { Emitter, addDisposableListener, addDisposableWindowListener, } from '../events';\r\nimport { CompositeDisposable, MutableDisposable } from '../lifecycle';\r\nimport { clamp } from '../math';\r\nconst bringElementToFront = (() => {\r\n let previous = null;\r\n function pushToTop(element) {\r\n if (previous !== element && previous !== null) {\r\n toggleClass(previous, 'dv-bring-to-front', false);\r\n }\r\n toggleClass(element, 'dv-bring-to-front', true);\r\n previous = element;\r\n }\r\n return pushToTop;\r\n})();\r\nexport class Overlay extends CompositeDisposable {\r\n constructor(options) {\r\n super();\r\n this.options = options;\r\n this._element = document.createElement('div');\r\n this._onDidChange = new Emitter();\r\n this.onDidChange = this._onDidChange.event;\r\n this._onDidChangeEnd = new Emitter();\r\n this.onDidChangeEnd = this._onDidChangeEnd.event;\r\n this.addDisposables(this._onDidChange, this._onDidChangeEnd);\r\n this._element.className = 'dv-resize-container';\r\n this.setupResize('top');\r\n this.setupResize('bottom');\r\n this.setupResize('left');\r\n this.setupResize('right');\r\n this.setupResize('topleft');\r\n this.setupResize('topright');\r\n this.setupResize('bottomleft');\r\n this.setupResize('bottomright');\r\n this._element.appendChild(this.options.content);\r\n this.options.container.appendChild(this._element);\r\n // if input bad resize within acceptable boundaries\r\n this.setBounds({\r\n height: this.options.height,\r\n width: this.options.width,\r\n top: this.options.top,\r\n left: this.options.left,\r\n });\r\n }\r\n setBounds(bounds = {}) {\r\n if (typeof bounds.height === 'number') {\r\n this._element.style.height = `${bounds.height}px`;\r\n }\r\n if (typeof bounds.width === 'number') {\r\n this._element.style.width = `${bounds.width}px`;\r\n }\r\n if (typeof bounds.top === 'number') {\r\n this._element.style.top = `${bounds.top}px`;\r\n }\r\n if (typeof bounds.left === 'number') {\r\n this._element.style.left = `${bounds.left}px`;\r\n }\r\n const containerRect = this.options.container.getBoundingClientRect();\r\n const overlayRect = this._element.getBoundingClientRect();\r\n // region: ensure bounds within allowable limits\r\n // a minimum width of minimumViewportWidth must be inside the viewport\r\n const xOffset = Math.max(0, overlayRect.width - this.options.minimumInViewportWidth);\r\n // a minimum height of minimumViewportHeight must be inside the viewport\r\n const yOffset = Math.max(0, overlayRect.height - this.options.minimumInViewportHeight);\r\n const left = clamp(overlayRect.left - containerRect.left, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));\r\n const top = clamp(overlayRect.top - containerRect.top, -yOffset, Math.max(0, containerRect.height - overlayRect.height + yOffset));\r\n this._element.style.left = `${left}px`;\r\n this._element.style.top = `${top}px`;\r\n this._onDidChange.fire();\r\n }\r\n toJSON() {\r\n const container = this.options.container.getBoundingClientRect();\r\n const element = this._element.getBoundingClientRect();\r\n return {\r\n top: element.top - container.top,\r\n left: element.left - container.left,\r\n width: element.width,\r\n height: element.height,\r\n };\r\n }\r\n setupDrag(dragTarget, options = { inDragMode: false }) {\r\n const move = new MutableDisposable();\r\n const track = () => {\r\n let offset = null;\r\n const iframes = [\r\n ...getElementsByTagName('iframe'),\r\n ...getElementsByTagName('webview'),\r\n ];\r\n for (const iframe of iframes) {\r\n iframe.style.pointerEvents = 'none';\r\n }\r\n move.value = new CompositeDisposable({\r\n dispose: () => {\r\n for (const iframe of iframes) {\r\n iframe.style.pointerEvents = 'auto';\r\n }\r\n },\r\n }, addDisposableWindowListener(window, 'mousemove', (e) => {\r\n const containerRect = this.options.container.getBoundingClientRect();\r\n const x = e.clientX - containerRect.left;\r\n const y = e.clientY - containerRect.top;\r\n toggleClass(this._element, 'dv-resize-container-dragging', true);\r\n const overlayRect = this._element.getBoundingClientRect();\r\n if (offset === null) {\r\n offset = {\r\n x: e.clientX - overlayRect.left,\r\n y: e.clientY - overlayRect.top,\r\n };\r\n }\r\n const xOffset = Math.max(0, overlayRect.width - this.options.minimumInViewportWidth);\r\n const yOffset = Math.max(0, overlayRect.height -\r\n this.options.minimumInViewportHeight);\r\n const left = clamp(x - offset.x, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));\r\n const top = clamp(y - offset.y, -yOffset, Math.max(0, containerRect.height - overlayRect.height + yOffset));\r\n this.setBounds({ top, left });\r\n }), addDisposableWindowListener(window, 'mouseup', () => {\r\n toggleClass(this._element, 'dv-resize-container-dragging', false);\r\n move.dispose();\r\n this._onDidChangeEnd.fire();\r\n }));\r\n };\r\n this.addDisposables(move, addDisposableListener(dragTarget, 'mousedown', (event) => {\r\n if (event.defaultPrevented) {\r\n event.preventDefault();\r\n return;\r\n }\r\n // if somebody has marked this event then treat as a defaultPrevented\r\n // without actually calling event.preventDefault()\r\n if (quasiDefaultPrevented(event)) {\r\n return;\r\n }\r\n track();\r\n }), addDisposableListener(this.options.content, 'mousedown', (event) => {\r\n if (event.defaultPrevented) {\r\n return;\r\n }\r\n // if somebody has marked this event then treat as a defaultPrevented\r\n // without actually calling event.preventDefault()\r\n if (quasiDefaultPrevented(event)) {\r\n return;\r\n }\r\n if (event.shiftKey) {\r\n track();\r\n }\r\n }), addDisposableListener(this.options.content, 'mousedown', () => {\r\n bringElementToFront(this._element);\r\n }, true));\r\n bringElementToFront(this._element);\r\n if (options.inDragMode) {\r\n track();\r\n }\r\n }\r\n setupResize(direction) {\r\n const resizeHandleElement = document.createElement('div');\r\n resizeHandleElement.className = `dv-resize-handle-${direction}`;\r\n this._element.appendChild(resizeHandleElement);\r\n const move = new MutableDisposable();\r\n this.addDisposables(move, addDisposableListener(resizeHandleElement, 'mousedown', (e) => {\r\n e.preventDefault();\r\n let startPosition = null;\r\n const iframes = [\r\n ...getElementsByTagName('iframe'),\r\n ...getElementsByTagName('webview'),\r\n ];\r\n for (const iframe of iframes) {\r\n iframe.style.pointerEvents = 'none';\r\n }\r\n move.value = new CompositeDisposable(addDisposableWindowListener(window, 'mousemove', (e) => {\r\n const containerRect = this.options.container.getBoundingClientRect();\r\n const overlayRect = this._element.getBoundingClientRect();\r\n const y = e.clientY - containerRect.top;\r\n const x = e.clientX - containerRect.left;\r\n if (startPosition === null) {\r\n // record the initial dimensions since as all subsequence moves are relative to this\r\n startPosition = {\r\n originalY: y,\r\n originalHeight: overlayRect.height,\r\n originalX: x,\r\n originalWidth: overlayRect.width,\r\n };\r\n }\r\n let top = undefined;\r\n let height = undefined;\r\n let left = undefined;\r\n let width = undefined;\r\n const minimumInViewportHeight = this.options.minimumInViewportHeight;\r\n const minimumInViewportWidth = this.options.minimumInViewportWidth;\r\n function moveTop() {\r\n top = clamp(y, -Number.MAX_VALUE, startPosition.originalY +\r\n startPosition.originalHeight >\r\n containerRect.height\r\n ? containerRect.height -\r\n minimumInViewportHeight\r\n : Math.max(0, startPosition.originalY +\r\n startPosition.originalHeight -\r\n Overlay.MINIMUM_HEIGHT));\r\n height =\r\n startPosition.originalY +\r\n startPosition.originalHeight -\r\n top;\r\n }\r\n function moveBottom() {\r\n top =\r\n startPosition.originalY -\r\n startPosition.originalHeight;\r\n height = clamp(y - top, top < 0\r\n ? -top + minimumInViewportHeight\r\n : Overlay.MINIMUM_HEIGHT, Number.MAX_VALUE);\r\n }\r\n function moveLeft() {\r\n left = clamp(x, -Number.MAX_VALUE, startPosition.originalX +\r\n startPosition.originalWidth >\r\n containerRect.width\r\n ? containerRect.width -\r\n minimumInViewportWidth\r\n : Math.max(0, startPosition.originalX +\r\n startPosition.originalWidth -\r\n Overlay.MINIMUM_WIDTH));\r\n width =\r\n startPosition.originalX +\r\n startPosition.originalWidth -\r\n left;\r\n }\r\n function moveRight() {\r\n left =\r\n startPosition.originalX -\r\n startPosition.originalWidth;\r\n width = clamp(x - left, left < 0\r\n ? -left + minimumInViewportWidth\r\n : Overlay.MINIMUM_WIDTH, Number.MAX_VALUE);\r\n }\r\n switch (direction) {\r\n case 'top':\r\n moveTop();\r\n break;\r\n case 'bottom':\r\n moveBottom();\r\n break;\r\n case 'left':\r\n moveLeft();\r\n break;\r\n case 'right':\r\n moveRight();\r\n break;\r\n case 'topleft':\r\n moveTop();\r\n moveLeft();\r\n break;\r\n case 'topright':\r\n moveTop();\r\n moveRight();\r\n break;\r\n case 'bottomleft':\r\n moveBottom();\r\n moveLeft();\r\n break;\r\n case 'bottomright':\r\n moveBottom();\r\n moveRight();\r\n break;\r\n }\r\n this.setBounds({ height, width, top, left });\r\n }), {\r\n dispose: () => {\r\n for (const iframe of iframes) {\r\n iframe.style.pointerEvents = 'auto';\r\n }\r\n },\r\n }, addDisposableWindowListener(window, 'mouseup', () => {\r\n move.dispose();\r\n this._onDidChangeEnd.fire();\r\n }));\r\n }));\r\n }\r\n dispose() {\r\n this._element.remove();\r\n super.dispose();\r\n }\r\n}\r\nOverlay.MINIMUM_HEIGHT = 20;\r\nOverlay.MINIMUM_WIDTH = 20;\r\n//# sourceMappingURL=overlay.js.map","import { CompositeDisposable } from '../lifecycle';\r\nexport class DockviewFloatingGroupPanel extends CompositeDisposable {\r\n constructor(group, overlay) {\r\n super();\r\n this.group = group;\r\n this.overlay = overlay;\r\n this.addDisposables(overlay);\r\n }\r\n position(bounds) {\r\n this.overlay.setBounds(bounds);\r\n }\r\n}\r\n//# sourceMappingURL=dockviewFloatingGroupPanel.js.map","import { getRelativeLocation, getGridLocation, } from '../gridview/gridview';\r\nimport { directionToPosition, Droptarget } from '../dnd/droptarget';\r\nimport { tail, sequenceEquals, remove } from '../array';\r\nimport { DockviewPanel } from './dockviewPanel';\r\nimport { CompositeDisposable } from '../lifecycle';\r\nimport { Event, Emitter } from '../events';\r\nimport { Watermark } from './components/watermark/watermark';\r\nimport { DockviewDropTargets, } from './types';\r\nimport { sequentialNumberGenerator } from '../math';\r\nimport { DefaultDockviewDeserialzier } from './deserializer';\r\nimport { createComponent } from '../panel/componentFactory';\r\nimport { isGroupOptionsWithGroup, isGroupOptionsWithPanel, isPanelOptionsWithGroup, isPanelOptionsWithPanel, } from './options';\r\nimport { BaseGrid, toTarget, } from '../gridview/baseComponentGridview';\r\nimport { DockviewApi } from '../api/component.api';\r\nimport { Orientation, Sizing } from '../splitview/splitview';\r\nimport { DockviewGroupPanel } from './dockviewGroupPanel';\r\nimport { DockviewPanelModel } from './dockviewPanelModel';\r\nimport { getPanelData } from '../dnd/dataTransfer';\r\nimport { Overlay } from '../dnd/overlay';\r\nimport { toggleClass, watchElementResize } from '../dom';\r\nimport { DockviewFloatingGroupPanel, } from './dockviewFloatingGroupPanel';\r\nexport class DockviewComponent extends BaseGrid {\r\n get orientation() {\r\n return this.gridview.orientation;\r\n }\r\n get totalPanels() {\r\n return this.panels.length;\r\n }\r\n get panels() {\r\n return this.groups.flatMap((group) => group.panels);\r\n }\r\n get options() {\r\n return this._options;\r\n }\r\n get activePanel() {\r\n const activeGroup = this.activeGroup;\r\n if (!activeGroup) {\r\n return undefined;\r\n }\r\n return activeGroup.activePanel;\r\n }\r\n constructor(options) {\r\n super({\r\n proportionalLayout: true,\r\n orientation: options.orientation || Orientation.HORIZONTAL,\r\n styles: options.styles,\r\n parentElement: options.parentElement,\r\n });\r\n this.nextGroupId = sequentialNumberGenerator();\r\n this._deserializer = new DefaultDockviewDeserialzier(this);\r\n this.watermark = null;\r\n this._onDidDrop = new Emitter();\r\n this.onDidDrop = this._onDidDrop.event;\r\n this._onDidRemovePanel = new Emitter();\r\n this.onDidRemovePanel = this._onDidRemovePanel.event;\r\n this._onDidAddPanel = new Emitter();\r\n this.onDidAddPanel = this._onDidAddPanel.event;\r\n this._onDidLayoutFromJSON = new Emitter();\r\n this.onDidLayoutFromJSON = this._onDidLayoutFromJSON.event;\r\n this._onDidActivePanelChange = new Emitter();\r\n this.onDidActivePanelChange = this._onDidActivePanelChange.event;\r\n this.floatingGroups = [];\r\n toggleClass(this.gridview.element, 'dv-dockview', true);\r\n this.addDisposables(this._onDidDrop, Event.any(this.onDidAddGroup, this.onDidRemoveGroup)(() => {\r\n this.updateWatermark();\r\n }), Event.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidActivePanelChange)(() => {\r\n this._bufferOnDidLayoutChange.fire();\r\n }));\r\n this._options = options;\r\n if (!this.options.components) {\r\n this.options.components = {};\r\n }\r\n if (!this.options.frameworkComponents) {\r\n this.options.frameworkComponents = {};\r\n }\r\n if (!this.options.frameworkTabComponents) {\r\n this.options.frameworkTabComponents = {};\r\n }\r\n if (!this.options.tabComponents) {\r\n this.options.tabComponents = {};\r\n }\r\n if (!this.options.watermarkComponent &&\r\n !this.options.watermarkFrameworkComponent) {\r\n this.options.watermarkComponent = Watermark;\r\n }\r\n const dropTarget = new Droptarget(this.element, {\r\n canDisplayOverlay: (event, position) => {\r\n const data = getPanelData();\r\n if (data) {\r\n if (data.viewId !== this.id) {\r\n return false;\r\n }\r\n if (position === 'center') {\r\n // center drop target is only allowed if there are no panels in the grid\r\n // floating panels are allowed\r\n return this.gridview.length === 0;\r\n }\r\n return true;\r\n }\r\n if (this.options.showDndOverlay) {\r\n if (position === 'center' && this.gridview.length !== 0) {\r\n /**\r\n * for external events only show the four-corner drag overlays, disable\r\n * the center position so that external drag events can fall through to the group\r\n * and panel drop target handlers\r\n */\r\n return false;\r\n }\r\n return this.options.showDndOverlay({\r\n nativeEvent: event,\r\n position: position,\r\n target: DockviewDropTargets.Edge,\r\n getData: getPanelData,\r\n });\r\n }\r\n return false;\r\n },\r\n acceptedTargetZones: ['top', 'bottom', 'left', 'right', 'center'],\r\n overlayModel: {\r\n activationSize: { type: 'pixels', value: 10 },\r\n size: { type: 'pixels', value: 20 },\r\n },\r\n });\r\n this.addDisposables(dropTarget.onDrop((event) => {\r\n const data = getPanelData();\r\n if (data) {\r\n this.moveGroupOrPanel(this.orthogonalize(event.position), data.groupId, data.panelId || undefined, 'center');\r\n }\r\n else {\r\n this._onDidDrop.fire(Object.assign(Object.assign({}, event), { api: this._api, group: null, getData: getPanelData }));\r\n }\r\n }), dropTarget);\r\n this._api = new DockviewApi(this);\r\n this.updateWatermark();\r\n }\r\n addFloatingGroup(item, coord, options) {\r\n var _a, _b;\r\n let group;\r\n if (item instanceof DockviewPanel) {\r\n group = this.createGroup();\r\n this.removePanel(item, {\r\n removeEmptyGroup: true,\r\n skipDispose: true,\r\n });\r\n group.model.openPanel(item);\r\n }\r\n else {\r\n group = item;\r\n const skip = typeof (options === null || options === void 0 ? void 0 : options.skipRemoveGroup) === 'boolean' &&\r\n options.skipRemoveGroup;\r\n if (!skip) {\r\n this.doRemoveGroup(item, { skipDispose: true });\r\n }\r\n }\r\n group.model.isFloating = true;\r\n const overlayLeft = typeof (coord === null || coord === void 0 ? void 0 : coord.x) === 'number' ? Math.max(coord.x, 0) : 100;\r\n const overlayTop = typeof (coord === null || coord === void 0 ? void 0 : coord.y) === 'number' ? Math.max(coord.y, 0) : 100;\r\n const overlay = new Overlay({\r\n container: this.gridview.element,\r\n content: group.element,\r\n height: (_a = coord === null || coord === void 0 ? void 0 : coord.height) !== null && _a !== void 0 ? _a : 300,\r\n width: (_b = coord === null || coord === void 0 ? void 0 : coord.width) !== null && _b !== void 0 ? _b : 300,\r\n left: overlayLeft,\r\n top: overlayTop,\r\n minimumInViewportWidth: 100,\r\n minimumInViewportHeight: 100,\r\n });\r\n const el = group.element.querySelector('.void-container');\r\n if (!el) {\r\n throw new Error('failed to find drag handle');\r\n }\r\n overlay.setupDrag(el, {\r\n inDragMode: typeof (options === null || options === void 0 ? void 0 : options.inDragMode) === 'boolean'\r\n ? options.inDragMode\r\n : false,\r\n });\r\n const floatingGroupPanel = new DockviewFloatingGroupPanel(group, overlay);\r\n const disposable = watchElementResize(group.element, (entry) => {\r\n const { width, height } = entry.contentRect;\r\n group.layout(width, height); // let the group know it's size is changing so it can fire events to the panel\r\n });\r\n floatingGroupPanel.addDisposables(overlay.onDidChange(() => {\r\n // this is either a resize or a move\r\n // to inform the panels .layout(...) the group with it's current size\r\n // don't care about resize since the above watcher handles that\r\n group.layout(group.height, group.width);\r\n }), overlay.onDidChangeEnd(() => {\r\n this._bufferOnDidLayoutChange.fire();\r\n }), group.onDidChange((event) => {\r\n overlay.setBounds({\r\n height: event === null || event === void 0 ? void 0 : event.height,\r\n width: event === null || event === void 0 ? void 0 : event.width,\r\n });\r\n }), {\r\n dispose: () => {\r\n disposable.dispose();\r\n group.model.isFloating = false;\r\n remove(this.floatingGroups, floatingGroupPanel);\r\n this.updateWatermark();\r\n },\r\n });\r\n this.floatingGroups.push(floatingGroupPanel);\r\n this.updateWatermark();\r\n }\r\n orthogonalize(position) {\r\n switch (position) {\r\n case 'top':\r\n case 'bottom':\r\n if (this.gridview.orientation === Orientation.HORIZONTAL) {\r\n // we need to add to a vertical splitview but the current root is a horizontal splitview.\r\n // insert a vertical splitview at the root level and add the existing view as a child\r\n this.gridview.insertOrthogonalSplitviewAtRoot();\r\n }\r\n break;\r\n case 'left':\r\n case 'right':\r\n if (this.gridview.orientation === Orientation.VERTICAL) {\r\n // we need to add to a horizontal splitview but the current root is a vertical splitview.\r\n // insert a horiziontal splitview at the root level and add the existing view as a child\r\n this.gridview.insertOrthogonalSplitviewAtRoot();\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n switch (position) {\r\n case 'top':\r\n case 'left':\r\n case 'center':\r\n return this.createGroupAtLocation([0]); // insert into first position\r\n case 'bottom':\r\n case 'right':\r\n return this.createGroupAtLocation([this.gridview.length]); // insert into last position\r\n default:\r\n throw new Error(`unsupported position ${position}`);\r\n }\r\n }\r\n updateOptions(options) {\r\n const hasOrientationChanged = typeof options.orientation === 'string' &&\r\n this.gridview.orientation !== options.orientation;\r\n this._options = Object.assign(Object.assign({}, this.options), options);\r\n if (hasOrientationChanged) {\r\n this.gridview.orientation = options.orientation;\r\n }\r\n this.layout(this.gridview.width, this.gridview.height, true);\r\n }\r\n layout(width, height, forceResize) {\r\n super.layout(width, height, forceResize);\r\n if (this.floatingGroups) {\r\n for (const floating of this.floatingGroups) {\r\n // ensure floting groups stay within visible boundaries\r\n floating.overlay.setBounds();\r\n }\r\n }\r\n }\r\n focus() {\r\n var _a;\r\n (_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.focus();\r\n }\r\n getGroupPanel(id) {\r\n return this.panels.find((panel) => panel.id === id);\r\n }\r\n setActivePanel(panel) {\r\n this.doSetGroupActive(panel.group);\r\n panel.group.model.openPanel(panel);\r\n }\r\n moveToNext(options = {}) {\r\n var _a;\r\n if (!options.group) {\r\n if (!this.activeGroup) {\r\n return;\r\n }\r\n options.group = this.activeGroup;\r\n }\r\n if (options.includePanel && options.group) {\r\n if (options.group.activePanel !==\r\n options.group.panels[options.group.panels.length - 1]) {\r\n options.group.model.moveToNext({ suppressRoll: true });\r\n return;\r\n }\r\n }\r\n const location = getGridLocation(options.group.element);\r\n const next = (_a = this.gridview.next(location)) === null || _a === void 0 ? void 0 : _a.view;\r\n this.doSetGroupActive(next);\r\n }\r\n moveToPrevious(options = {}) {\r\n var _a;\r\n if (!options.group) {\r\n if (!this.activeGroup) {\r\n return;\r\n }\r\n options.group = this.activeGroup;\r\n }\r\n if (options.includePanel && options.group) {\r\n if (options.group.activePanel !== options.group.panels[0]) {\r\n options.group.model.moveToPrevious({ suppressRoll: true });\r\n return;\r\n }\r\n }\r\n const location = getGridLocation(options.group.element);\r\n const next = (_a = this.gridview.previous(location)) === null || _a === void 0 ? void 0 : _a.view;\r\n if (next) {\r\n this.doSetGroupActive(next);\r\n }\r\n }\r\n /**\r\n * Serialize the current state of the layout\r\n *\r\n * @returns A JSON respresentation of the layout\r\n */\r\n toJSON() {\r\n var _a;\r\n const data = this.gridview.serialize();\r\n const panels = this.panels.reduce((collection, panel) => {\r\n collection[panel.id] = panel.toJSON();\r\n return collection;\r\n }, {});\r\n const floats = this.floatingGroups.map((floatingGroup) => {\r\n return {\r\n data: floatingGroup.group.toJSON(),\r\n position: floatingGroup.overlay.toJSON(),\r\n };\r\n });\r\n const result = {\r\n grid: data,\r\n panels,\r\n activeGroup: (_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.id,\r\n };\r\n if (floats.length > 0) {\r\n result.floatingGroups = floats;\r\n }\r\n return result;\r\n }\r\n fromJSON(data) {\r\n var _a;\r\n this.clear();\r\n const { grid, panels, activeGroup } = data;\r\n if (grid.root.type !== 'branch' || !Array.isArray(grid.root.data)) {\r\n throw new Error('root must be of type branch');\r\n }\r\n // take note of the existing dimensions\r\n const width = this.width;\r\n const height = this.height;\r\n const createGroupFromSerializedState = (data) => {\r\n const { id, locked, hideHeader, views, activeView } = data;\r\n const group = this.createGroup({\r\n id,\r\n locked: !!locked,\r\n hideHeader: !!hideHeader,\r\n });\r\n this._onDidAddGroup.fire(group);\r\n for (const child of views) {\r\n const panel = this._deserializer.fromJSON(panels[child], group);\r\n const isActive = typeof activeView === 'string' && activeView === panel.id;\r\n group.model.openPanel(panel, {\r\n skipSetPanelActive: !isActive,\r\n skipSetGroupActive: true,\r\n });\r\n }\r\n if (!group.activePanel && group.panels.length > 0) {\r\n group.model.openPanel(group.panels[group.panels.length - 1], {\r\n skipSetGroupActive: true,\r\n });\r\n }\r\n return group;\r\n };\r\n this.gridview.deserialize(grid, {\r\n fromJSON: (node) => {\r\n return createGroupFromSerializedState(node.data);\r\n },\r\n });\r\n this.layout(width, height, true);\r\n const serializedFloatingGroups = (_a = data.floatingGroups) !== null && _a !== void 0 ? _a : [];\r\n for (const serializedFloatingGroup of serializedFloatingGroups) {\r\n const { data, position } = serializedFloatingGroup;\r\n const group = createGroupFromSerializedState(data);\r\n this.addFloatingGroup(group, {\r\n x: position.left,\r\n y: position.top,\r\n height: position.height,\r\n width: position.width,\r\n }, { skipRemoveGroup: true, inDragMode: false });\r\n }\r\n for (const floatingGroup of this.floatingGroups) {\r\n floatingGroup.overlay.setBounds();\r\n }\r\n if (typeof activeGroup === 'string') {\r\n const panel = this.getPanel(activeGroup);\r\n if (panel) {\r\n this.doSetGroupActive(panel);\r\n }\r\n }\r\n this._onDidLayoutFromJSON.fire();\r\n }\r\n clear() {\r\n const groups = Array.from(this._groups.values()).map((_) => _.value);\r\n const hasActiveGroup = !!this.activeGroup;\r\n const hasActivePanel = !!this.activePanel;\r\n for (const group of groups) {\r\n // remove the group will automatically remove the panels\r\n this.removeGroup(group, { skipActive: true });\r\n }\r\n if (hasActiveGroup) {\r\n this.doSetGroupActive(undefined);\r\n }\r\n if (hasActivePanel) {\r\n this._onDidActivePanelChange.fire(undefined);\r\n }\r\n this.gridview.clear();\r\n }\r\n closeAllGroups() {\r\n for (const entry of this._groups.entries()) {\r\n const [_, group] = entry;\r\n group.value.model.closeAllPanels();\r\n }\r\n }\r\n addPanel(options) {\r\n var _a, _b;\r\n if (this.panels.find((_) => _.id === options.id)) {\r\n throw new Error(`panel with id ${options.id} already exists`);\r\n }\r\n let referenceGroup;\r\n if (options.position && options.floating) {\r\n throw new Error('you can only provide one of: position, floating as arguments to .addPanel(...)');\r\n }\r\n if (options.position) {\r\n if (isPanelOptionsWithPanel(options.position)) {\r\n const referencePanel = typeof options.position.referencePanel === 'string'\r\n ? this.getGroupPanel(options.position.referencePanel)\r\n : options.position.referencePanel;\r\n if (!referencePanel) {\r\n throw new Error(`referencePanel ${options.position.referencePanel} does not exist`);\r\n }\r\n referenceGroup = this.findGroup(referencePanel);\r\n }\r\n else if (isPanelOptionsWithGroup(options.position)) {\r\n referenceGroup =\r\n typeof options.position.referenceGroup === 'string'\r\n ? (_a = this._groups.get(options.position.referenceGroup)) === null || _a === void 0 ? void 0 : _a.value\r\n : options.position.referenceGroup;\r\n if (!referenceGroup) {\r\n throw new Error(`referencePanel ${options.position.referenceGroup} does not exist`);\r\n }\r\n }\r\n else {\r\n const group = this.orthogonalize(directionToPosition(options.position.direction));\r\n const panel = this.createPanel(options, group);\r\n group.model.openPanel(panel);\r\n return panel;\r\n }\r\n }\r\n else {\r\n referenceGroup = this.activeGroup;\r\n }\r\n let panel;\r\n if (referenceGroup) {\r\n const target = toTarget(((_b = options.position) === null || _b === void 0 ? void 0 : _b.direction) || 'within');\r\n if (options.floating) {\r\n const group = this.createGroup();\r\n panel = this.createPanel(options, group);\r\n group.model.openPanel(panel);\r\n const o = typeof options.floating === 'object' &&\r\n options.floating !== null\r\n ? options.floating\r\n : {};\r\n this.addFloatingGroup(group, o, {\r\n inDragMode: false,\r\n skipRemoveGroup: true,\r\n });\r\n }\r\n else if (referenceGroup.api.isFloating || target === 'center') {\r\n panel = this.createPanel(options, referenceGroup);\r\n referenceGroup.model.openPanel(panel);\r\n }\r\n else {\r\n const location = getGridLocation(referenceGroup.element);\r\n const relativeLocation = getRelativeLocation(this.gridview.orientation, location, target);\r\n const group = this.createGroupAtLocation(relativeLocation);\r\n panel = this.createPanel(options, group);\r\n group.model.openPanel(panel);\r\n }\r\n }\r\n else if (options.floating) {\r\n const group = this.createGroup();\r\n panel = this.createPanel(options, group);\r\n group.model.openPanel(panel);\r\n const o = typeof options.floating === 'object' &&\r\n options.floating !== null\r\n ? options.floating\r\n : {};\r\n this.addFloatingGroup(group, o, {\r\n inDragMode: false,\r\n skipRemoveGroup: true,\r\n });\r\n }\r\n else {\r\n const group = this.createGroupAtLocation();\r\n panel = this.createPanel(options, group);\r\n group.model.openPanel(panel);\r\n }\r\n return panel;\r\n }\r\n removePanel(panel, options = {\r\n removeEmptyGroup: true,\r\n skipDispose: false,\r\n }) {\r\n const group = panel.group;\r\n if (!group) {\r\n throw new Error(`cannot remove panel ${panel.id}. it's missing a group.`);\r\n }\r\n group.model.removePanel(panel);\r\n if (!options.skipDispose) {\r\n panel.dispose();\r\n }\r\n if (group.size === 0 && options.removeEmptyGroup) {\r\n this.removeGroup(group);\r\n }\r\n }\r\n createWatermarkComponent() {\r\n var _a;\r\n return createComponent('watermark-id', 'watermark-name', this.options.watermarkComponent\r\n ? { 'watermark-name': this.options.watermarkComponent }\r\n : {}, this.options.watermarkFrameworkComponent\r\n ? { 'watermark-name': this.options.watermarkFrameworkComponent }\r\n : {}, (_a = this.options.frameworkComponentFactory) === null || _a === void 0 ? void 0 : _a.watermark);\r\n }\r\n updateWatermark() {\r\n var _a, _b;\r\n if (this.groups.filter((x) => !x.api.isFloating).length === 0) {\r\n if (!this.watermark) {\r\n this.watermark = this.createWatermarkComponent();\r\n this.watermark.init({\r\n containerApi: new DockviewApi(this),\r\n });\r\n const watermarkContainer = document.createElement('div');\r\n watermarkContainer.className = 'dv-watermark-container';\r\n watermarkContainer.appendChild(this.watermark.element);\r\n this.gridview.element.appendChild(watermarkContainer);\r\n }\r\n }\r\n else if (this.watermark) {\r\n this.watermark.element.parentElement.remove();\r\n (_b = (_a = this.watermark).dispose) === null || _b === void 0 ? void 0 : _b.call(_a);\r\n this.watermark = null;\r\n }\r\n }\r\n addGroup(options) {\r\n var _a;\r\n const group = this.createGroup();\r\n if (options) {\r\n let referenceGroup;\r\n if (isGroupOptionsWithPanel(options)) {\r\n const referencePanel = typeof options.referencePanel === 'string'\r\n ? this.panels.find((panel) => panel.id === options.referencePanel)\r\n : options.referencePanel;\r\n if (!referencePanel) {\r\n throw new Error(`reference panel ${options.referencePanel} does not exist`);\r\n }\r\n referenceGroup = this.findGroup(referencePanel);\r\n if (!referenceGroup) {\r\n throw new Error(`reference group for reference panel ${options.referencePanel} does not exist`);\r\n }\r\n }\r\n else if (isGroupOptionsWithGroup(options)) {\r\n referenceGroup =\r\n typeof options.referenceGroup === 'string'\r\n ? (_a = this._groups.get(options.referenceGroup)) === null || _a === void 0 ? void 0 : _a.value\r\n : options.referenceGroup;\r\n if (!referenceGroup) {\r\n throw new Error(`reference group ${options.referenceGroup} does not exist`);\r\n }\r\n }\r\n else {\r\n const group = this.orthogonalize(directionToPosition(options.direction));\r\n return group;\r\n }\r\n const target = toTarget(options.direction || 'within');\r\n const location = getGridLocation(referenceGroup.element);\r\n const relativeLocation = getRelativeLocation(this.gridview.orientation, location, target);\r\n this.doAddGroup(group, relativeLocation);\r\n return group;\r\n }\r\n else {\r\n this.doAddGroup(group);\r\n return group;\r\n }\r\n }\r\n removeGroup(group, options) {\r\n var _a;\r\n const panels = [...group.panels]; // reassign since group panels will mutate\r\n for (const panel of panels) {\r\n this.removePanel(panel, {\r\n removeEmptyGroup: false,\r\n skipDispose: (_a = options === null || options === void 0 ? void 0 : options.skipDispose) !== null && _a !== void 0 ? _a : false,\r\n });\r\n }\r\n this.doRemoveGroup(group, options);\r\n }\r\n doRemoveGroup(group, options) {\r\n const floatingGroup = this.floatingGroups.find((_) => _.group === group);\r\n if (floatingGroup) {\r\n if (!(options === null || options === void 0 ? void 0 : options.skipDispose)) {\r\n floatingGroup.group.dispose();\r\n this._groups.delete(group.id);\r\n }\r\n floatingGroup.dispose();\r\n return floatingGroup.group;\r\n }\r\n return super.doRemoveGroup(group, options);\r\n }\r\n moveGroupOrPanel(destinationGroup, sourceGroupId, sourceItemId, destinationTarget, destinationIndex) {\r\n var _a;\r\n const sourceGroup = sourceGroupId\r\n ? (_a = this._groups.get(sourceGroupId)) === null || _a === void 0 ? void 0 : _a.value\r\n : undefined;\r\n if (sourceItemId === undefined) {\r\n if (sourceGroup) {\r\n this.moveGroup(sourceGroup, destinationGroup, destinationTarget);\r\n }\r\n return;\r\n }\r\n if (!destinationTarget || destinationTarget === 'center') {\r\n const groupItem = (sourceGroup === null || sourceGroup === void 0 ? void 0 : sourceGroup.model.removePanel(sourceItemId)) ||\r\n this.panels.find((panel) => panel.id === sourceItemId);\r\n if (!groupItem) {\r\n throw new Error(`No panel with id ${sourceItemId}`);\r\n }\r\n if ((sourceGroup === null || sourceGroup === void 0 ? void 0 : sourceGroup.model.size) === 0) {\r\n this.doRemoveGroup(sourceGroup);\r\n }\r\n destinationGroup.model.openPanel(groupItem, {\r\n index: destinationIndex,\r\n });\r\n }\r\n else {\r\n const referenceLocation = getGridLocation(destinationGroup.element);\r\n const targetLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, destinationTarget);\r\n if (sourceGroup && sourceGroup.size < 2) {\r\n const [targetParentLocation, to] = tail(targetLocation);\r\n const isFloating = this.floatingGroups.find((x) => x.group === sourceGroup);\r\n if (!isFloating) {\r\n const sourceLocation = getGridLocation(sourceGroup.element);\r\n const [sourceParentLocation, from] = tail(sourceLocation);\r\n if (sequenceEquals(sourceParentLocation, targetParentLocation)) {\r\n // special case when 'swapping' two views within same grid location\r\n // if a group has one tab - we are essentially moving the 'group'\r\n // which is equivalent to swapping two views in this case\r\n this.gridview.moveView(sourceParentLocation, from, to);\r\n }\r\n }\r\n // source group will become empty so delete the group\r\n const targetGroup = this.doRemoveGroup(sourceGroup, {\r\n skipActive: true,\r\n skipDispose: true,\r\n });\r\n // after deleting the group we need to re-evaulate the ref location\r\n const updatedReferenceLocation = getGridLocation(destinationGroup.element);\r\n const location = getRelativeLocation(this.gridview.orientation, updatedReferenceLocation, destinationTarget);\r\n this.doAddGroup(targetGroup, location);\r\n }\r\n else {\r\n const groupItem = (sourceGroup === null || sourceGroup === void 0 ? void 0 : sourceGroup.model.removePanel(sourceItemId)) ||\r\n this.panels.find((panel) => panel.id === sourceItemId);\r\n if (!groupItem) {\r\n throw new Error(`No panel with id ${sourceItemId}`);\r\n }\r\n const dropLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, destinationTarget);\r\n const group = this.createGroupAtLocation(dropLocation);\r\n group.model.openPanel(groupItem);\r\n }\r\n }\r\n }\r\n moveGroup(sourceGroup, referenceGroup, target) {\r\n if (sourceGroup) {\r\n if (!target || target === 'center') {\r\n const activePanel = sourceGroup.activePanel;\r\n const panels = [...sourceGroup.panels].map((p) => sourceGroup.model.removePanel(p.id));\r\n if ((sourceGroup === null || sourceGroup === void 0 ? void 0 : sourceGroup.model.size) === 0) {\r\n this.doRemoveGroup(sourceGroup);\r\n }\r\n for (const panel of panels) {\r\n referenceGroup.model.openPanel(panel, {\r\n skipSetPanelActive: panel !== activePanel,\r\n });\r\n }\r\n }\r\n else {\r\n const floatingGroup = this.floatingGroups.find((x) => x.group === sourceGroup);\r\n if (floatingGroup) {\r\n floatingGroup.dispose();\r\n }\r\n else {\r\n this.gridview.removeView(getGridLocation(sourceGroup.element));\r\n }\r\n const referenceLocation = getGridLocation(referenceGroup.element);\r\n const dropLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, target);\r\n this.gridview.addView(sourceGroup, Sizing.Distribute, dropLocation);\r\n }\r\n }\r\n }\r\n doSetGroupActive(group, skipFocus) {\r\n var _a, _b;\r\n const isGroupAlreadyFocused = this._activeGroup === group;\r\n super.doSetGroupActive(group, skipFocus);\r\n if (!isGroupAlreadyFocused && ((_a = this._activeGroup) === null || _a === void 0 ? void 0 : _a.activePanel)) {\r\n this._onDidActivePanelChange.fire((_b = this._activeGroup) === null || _b === void 0 ? void 0 : _b.activePanel);\r\n }\r\n }\r\n createGroup(options) {\r\n if (!options) {\r\n options = {};\r\n }\r\n let id = options === null || options === void 0 ? void 0 : options.id;\r\n if (id && this._groups.has(options.id)) {\r\n console.warn(`Duplicate group id ${options === null || options === void 0 ? void 0 : options.id}. reassigning group id to avoid errors`);\r\n id = undefined;\r\n }\r\n if (!id) {\r\n id = this.nextGroupId.next();\r\n while (this._groups.has(id)) {\r\n id = this.nextGroupId.next();\r\n }\r\n }\r\n const view = new DockviewGroupPanel(this, id, options);\r\n view.init({ params: {}, accessor: null }); // required to initialized .part and allow for correct disposal of group\r\n if (!this._groups.has(view.id)) {\r\n const disposable = new CompositeDisposable(view.model.onMove((event) => {\r\n const { groupId, itemId, target, index } = event;\r\n this.moveGroupOrPanel(view, groupId, itemId, target, index);\r\n }), view.model.onDidDrop((event) => {\r\n this._onDidDrop.fire(Object.assign(Object.assign({}, event), { api: this._api, group: view }));\r\n }), view.model.onDidAddPanel((event) => {\r\n this._onDidAddPanel.fire(event.panel);\r\n }), view.model.onDidRemovePanel((event) => {\r\n this._onDidRemovePanel.fire(event.panel);\r\n }), view.model.onDidActivePanelChange((event) => {\r\n this._onDidActivePanelChange.fire(event.panel);\r\n }));\r\n this._groups.set(view.id, { value: view, disposable });\r\n }\r\n // TODO: must be called after the above listeners have been setup,\r\n // not an ideal pattern\r\n view.initialize();\r\n return view;\r\n }\r\n createPanel(options, group) {\r\n const contentComponent = options.component;\r\n const tabComponent = options.tabComponent || this.options.defaultTabComponent;\r\n const view = new DockviewPanelModel(this, options.id, contentComponent, tabComponent);\r\n const panel = new DockviewPanel(options.id, this, this._api, group, view);\r\n panel.init({\r\n title: options.title || options.id,\r\n params: (options === null || options === void 0 ? void 0 : options.params) || {},\r\n });\r\n return panel;\r\n }\r\n createGroupAtLocation(location = [0]) {\r\n const group = this.createGroup();\r\n this.doAddGroup(group, location);\r\n return group;\r\n }\r\n findGroup(panel) {\r\n var _a;\r\n return (_a = Array.from(this._groups.values()).find((group) => group.value.model.containsPanel(panel))) === null || _a === void 0 ? void 0 : _a.value;\r\n }\r\n dispose() {\r\n this._onDidActivePanelChange.dispose();\r\n this._onDidAddPanel.dispose();\r\n this._onDidRemovePanel.dispose();\r\n this._onDidLayoutFromJSON.dispose();\r\n super.dispose();\r\n }\r\n}\r\n//# sourceMappingURL=dockviewComponent.js.map","import { getRelativeLocation, getGridLocation, } from './gridview';\r\nimport { tail, sequenceEquals } from '../array';\r\nimport { CompositeDisposable } from '../lifecycle';\r\nimport { BaseGrid, toTarget, } from './baseComponentGridview';\r\nimport { createComponent } from '../panel/componentFactory';\r\nimport { Emitter } from '../events';\r\nexport class GridviewComponent extends BaseGrid {\r\n get orientation() {\r\n return this.gridview.orientation;\r\n }\r\n set orientation(value) {\r\n this.gridview.orientation = value;\r\n }\r\n get options() {\r\n return this._options;\r\n }\r\n get deserializer() {\r\n return this._deserializer;\r\n }\r\n set deserializer(value) {\r\n this._deserializer = value;\r\n }\r\n constructor(options) {\r\n super({\r\n parentElement: options.parentElement,\r\n proportionalLayout: options.proportionalLayout,\r\n orientation: options.orientation,\r\n styles: options.styles,\r\n });\r\n this._onDidLayoutfromJSON = new Emitter();\r\n this.onDidLayoutFromJSON = this._onDidLayoutfromJSON.event;\r\n this._options = options;\r\n if (!this.options.components) {\r\n this.options.components = {};\r\n }\r\n if (!this.options.frameworkComponents) {\r\n this.options.frameworkComponents = {};\r\n }\r\n }\r\n updateOptions(options) {\r\n const hasOrientationChanged = typeof options.orientation === 'string' &&\r\n this.gridview.orientation !== options.orientation;\r\n this._options = Object.assign(Object.assign({}, this.options), options);\r\n if (hasOrientationChanged) {\r\n this.gridview.orientation = options.orientation;\r\n }\r\n this.layout(this.gridview.width, this.gridview.height, true);\r\n }\r\n removePanel(panel) {\r\n this.removeGroup(panel);\r\n }\r\n /**\r\n * Serialize the current state of the layout\r\n *\r\n * @returns A JSON respresentation of the layout\r\n */\r\n toJSON() {\r\n var _a;\r\n const data = this.gridview.serialize();\r\n return {\r\n grid: data,\r\n activePanel: (_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.id,\r\n };\r\n }\r\n setVisible(panel, visible) {\r\n this.gridview.setViewVisible(getGridLocation(panel.element), visible);\r\n }\r\n setActive(panel) {\r\n this._groups.forEach((value, _key) => {\r\n value.value.setActive(panel === value.value);\r\n });\r\n }\r\n focus() {\r\n var _a;\r\n (_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.focus();\r\n }\r\n fromJSON(serializedGridview) {\r\n this.clear();\r\n const { grid, activePanel } = serializedGridview;\r\n const queue = [];\r\n // take note of the existing dimensions\r\n const width = this.width;\r\n const height = this.height;\r\n this.gridview.deserialize(grid, {\r\n fromJSON: (node) => {\r\n const { data } = node;\r\n const view = createComponent(data.id, data.component, this.options.components || {}, this.options.frameworkComponents || {}, this.options.frameworkComponentFactory\r\n ? {\r\n createComponent: this.options.frameworkComponentFactory\r\n .createComponent,\r\n }\r\n : undefined);\r\n queue.push(() => view.init({\r\n params: data.params,\r\n minimumWidth: data.minimumWidth,\r\n maximumWidth: data.maximumWidth,\r\n minimumHeight: data.minimumHeight,\r\n maximumHeight: data.maximumHeight,\r\n priority: data.priority,\r\n snap: !!data.snap,\r\n accessor: this,\r\n isVisible: node.visible,\r\n }));\r\n this._onDidAddGroup.fire(view);\r\n this.registerPanel(view);\r\n return view;\r\n },\r\n });\r\n this.layout(width, height, true);\r\n queue.forEach((f) => f());\r\n if (typeof activePanel === 'string') {\r\n const panel = this.getPanel(activePanel);\r\n if (panel) {\r\n this.doSetGroupActive(panel);\r\n }\r\n }\r\n this._onDidLayoutfromJSON.fire();\r\n }\r\n clear() {\r\n const hasActiveGroup = this.activeGroup;\r\n const groups = Array.from(this._groups.values()); // reassign since group panels will mutate\r\n for (const group of groups) {\r\n group.disposable.dispose();\r\n this.doRemoveGroup(group.value, { skipActive: true });\r\n }\r\n if (hasActiveGroup) {\r\n this.doSetGroupActive(undefined);\r\n }\r\n this.gridview.clear();\r\n }\r\n movePanel(panel, options) {\r\n var _a;\r\n let relativeLocation;\r\n const removedPanel = this.gridview.remove(panel);\r\n const referenceGroup = (_a = this._groups.get(options.reference)) === null || _a === void 0 ? void 0 : _a.value;\r\n if (!referenceGroup) {\r\n throw new Error(`reference group ${options.reference} does not exist`);\r\n }\r\n const target = toTarget(options.direction);\r\n if (target === 'center') {\r\n throw new Error(`${target} not supported as an option`);\r\n }\r\n else {\r\n const location = getGridLocation(referenceGroup.element);\r\n relativeLocation = getRelativeLocation(this.gridview.orientation, location, target);\r\n }\r\n this.doAddGroup(removedPanel, relativeLocation, options.size);\r\n }\r\n addPanel(options) {\r\n var _a, _b;\r\n let relativeLocation = options.location || [0];\r\n if ((_a = options.position) === null || _a === void 0 ? void 0 : _a.referencePanel) {\r\n const referenceGroup = (_b = this._groups.get(options.position.referencePanel)) === null || _b === void 0 ? void 0 : _b.value;\r\n if (!referenceGroup) {\r\n throw new Error(`reference group ${options.position.referencePanel} does not exist`);\r\n }\r\n const target = toTarget(options.position.direction);\r\n if (target === 'center') {\r\n throw new Error(`${target} not supported as an option`);\r\n }\r\n else {\r\n const location = getGridLocation(referenceGroup.element);\r\n relativeLocation = getRelativeLocation(this.gridview.orientation, location, target);\r\n }\r\n }\r\n const view = createComponent(options.id, options.component, this.options.components || {}, this.options.frameworkComponents || {}, this.options.frameworkComponentFactory\r\n ? {\r\n createComponent: this.options.frameworkComponentFactory\r\n .createComponent,\r\n }\r\n : undefined);\r\n view.init({\r\n params: options.params || {},\r\n minimumWidth: options.minimumWidth,\r\n maximumWidth: options.maximumWidth,\r\n minimumHeight: options.minimumHeight,\r\n maximumHeight: options.maximumHeight,\r\n priority: options.priority,\r\n snap: !!options.snap,\r\n accessor: this,\r\n isVisible: true,\r\n });\r\n this.registerPanel(view);\r\n this.doAddGroup(view, relativeLocation, options.size);\r\n return view;\r\n }\r\n registerPanel(panel) {\r\n const disposable = new CompositeDisposable(panel.api.onDidFocusChange((event) => {\r\n if (!event.isFocused) {\r\n return;\r\n }\r\n this._groups.forEach((groupItem) => {\r\n const group = groupItem.value;\r\n if (group !== panel) {\r\n group.setActive(false);\r\n }\r\n else {\r\n group.setActive(true);\r\n }\r\n });\r\n }));\r\n this._groups.set(panel.id, {\r\n value: panel,\r\n disposable,\r\n });\r\n }\r\n moveGroup(referenceGroup, groupId, target) {\r\n const sourceGroup = this.getPanel(groupId);\r\n if (!sourceGroup) {\r\n throw new Error('invalid operation');\r\n }\r\n const referenceLocation = getGridLocation(referenceGroup.element);\r\n const targetLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, target);\r\n const [targetParentLocation, to] = tail(targetLocation);\r\n const sourceLocation = getGridLocation(sourceGroup.element);\r\n const [sourceParentLocation, from] = tail(sourceLocation);\r\n if (sequenceEquals(sourceParentLocation, targetParentLocation)) {\r\n // special case when 'swapping' two views within same grid location\r\n // if a group has one tab - we are essentially moving the 'group'\r\n // which is equivalent to swapping two views in this case\r\n this.gridview.moveView(sourceParentLocation, from, to);\r\n return;\r\n }\r\n // source group will become empty so delete the group\r\n const targetGroup = this.doRemoveGroup(sourceGroup, {\r\n skipActive: true,\r\n skipDispose: true,\r\n });\r\n // after deleting the group we need to re-evaulate the ref location\r\n const updatedReferenceLocation = getGridLocation(referenceGroup.element);\r\n const location = getRelativeLocation(this.gridview.orientation, updatedReferenceLocation, target);\r\n this.doAddGroup(targetGroup, location);\r\n }\r\n removeGroup(group) {\r\n super.removeGroup(group);\r\n }\r\n dispose() {\r\n super.dispose();\r\n this._onDidLayoutfromJSON.dispose();\r\n }\r\n}\r\n//# sourceMappingURL=gridviewComponent.js.map","import { CompositeDisposable, MutableDisposable, } from '../lifecycle';\r\nimport { Orientation, Sizing, Splitview, } from './splitview';\r\nimport { Emitter } from '../events';\r\nimport { createComponent } from '../panel/componentFactory';\r\nimport { Resizable } from '../resizable';\r\n/**\r\n * A high-level implementation of splitview that works using 'panels'\r\n */\r\nexport class SplitviewComponent extends Resizable {\r\n get panels() {\r\n return this.splitview.getViews();\r\n }\r\n get options() {\r\n return this._options;\r\n }\r\n get length() {\r\n return this._panels.size;\r\n }\r\n get orientation() {\r\n return this.splitview.orientation;\r\n }\r\n get splitview() {\r\n return this._splitview;\r\n }\r\n set splitview(value) {\r\n this._splitview = value;\r\n this._splitviewChangeDisposable.value = new CompositeDisposable(this._splitview.onDidSashEnd(() => {\r\n this._onDidLayoutChange.fire(undefined);\r\n }), this._splitview.onDidAddView((e) => this._onDidAddView.fire(e)), this._splitview.onDidRemoveView((e) => this._onDidRemoveView.fire(e)));\r\n }\r\n get minimumSize() {\r\n return this.splitview.minimumSize;\r\n }\r\n get maximumSize() {\r\n return this.splitview.maximumSize;\r\n }\r\n get height() {\r\n return this.splitview.orientation === Orientation.HORIZONTAL\r\n ? this.splitview.orthogonalSize\r\n : this.splitview.size;\r\n }\r\n get width() {\r\n return this.splitview.orientation === Orientation.HORIZONTAL\r\n ? this.splitview.size\r\n : this.splitview.orthogonalSize;\r\n }\r\n constructor(options) {\r\n super(options.parentElement);\r\n this._splitviewChangeDisposable = new MutableDisposable();\r\n this._panels = new Map();\r\n this._onDidLayoutfromJSON = new Emitter();\r\n this.onDidLayoutFromJSON = this._onDidLayoutfromJSON.event;\r\n this._onDidAddView = new Emitter();\r\n this.onDidAddView = this._onDidAddView.event;\r\n this._onDidRemoveView = new Emitter();\r\n this.onDidRemoveView = this._onDidRemoveView.event;\r\n this._onDidLayoutChange = new Emitter();\r\n this.onDidLayoutChange = this._onDidLayoutChange.event;\r\n this._options = options;\r\n if (!options.components) {\r\n options.components = {};\r\n }\r\n if (!options.frameworkComponents) {\r\n options.frameworkComponents = {};\r\n }\r\n this.splitview = new Splitview(this.element, options);\r\n this.addDisposables(this._onDidAddView, this._onDidLayoutfromJSON, this._onDidRemoveView, this._onDidLayoutChange);\r\n }\r\n updateOptions(options) {\r\n const hasOrientationChanged = typeof options.orientation === 'string' &&\r\n this.options.orientation !== options.orientation;\r\n this._options = Object.assign(Object.assign({}, this.options), options);\r\n if (hasOrientationChanged) {\r\n this.splitview.orientation = options.orientation;\r\n }\r\n this.splitview.layout(this.splitview.size, this.splitview.orthogonalSize);\r\n }\r\n focus() {\r\n var _a;\r\n (_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.focus();\r\n }\r\n movePanel(from, to) {\r\n this.splitview.moveView(from, to);\r\n }\r\n setVisible(panel, visible) {\r\n const index = this.panels.indexOf(panel);\r\n this.splitview.setViewVisible(index, visible);\r\n }\r\n setActive(view, skipFocus) {\r\n this._activePanel = view;\r\n this.panels\r\n .filter((v) => v !== view)\r\n .forEach((v) => {\r\n v.api._onDidActiveChange.fire({ isActive: false });\r\n if (!skipFocus) {\r\n v.focus();\r\n }\r\n });\r\n view.api._onDidActiveChange.fire({ isActive: true });\r\n if (!skipFocus) {\r\n view.focus();\r\n }\r\n }\r\n removePanel(panel, sizing) {\r\n const item = this._panels.get(panel.id);\r\n if (!item) {\r\n throw new Error(`unknown splitview panel ${panel.id}`);\r\n }\r\n item.dispose();\r\n this._panels.delete(panel.id);\r\n const index = this.panels.findIndex((_) => _ === panel);\r\n const removedView = this.splitview.removeView(index, sizing);\r\n removedView.dispose();\r\n const panels = this.panels;\r\n if (panels.length > 0) {\r\n this.setActive(panels[panels.length - 1]);\r\n }\r\n }\r\n getPanel(id) {\r\n return this.panels.find((view) => view.id === id);\r\n }\r\n addPanel(options) {\r\n if (this._panels.has(options.id)) {\r\n throw new Error(`panel ${options.id} already exists`);\r\n }\r\n const view = createComponent(options.id, options.component, this.options.components || {}, this.options.frameworkComponents || {}, this.options.frameworkWrapper\r\n ? {\r\n createComponent: this.options.frameworkWrapper.createComponent,\r\n }\r\n : undefined);\r\n view.orientation = this.splitview.orientation;\r\n view.init({\r\n params: options.params || {},\r\n minimumSize: options.minimumSize,\r\n maximumSize: options.maximumSize,\r\n snap: options.snap,\r\n priority: options.priority,\r\n accessor: this,\r\n });\r\n const size = typeof options.size === 'number' ? options.size : Sizing.Distribute;\r\n const index = typeof options.index === 'number' ? options.index : undefined;\r\n this.splitview.addView(view, size, index);\r\n this.doAddView(view);\r\n this.setActive(view);\r\n return view;\r\n }\r\n layout(width, height) {\r\n const [size, orthogonalSize] = this.splitview.orientation === Orientation.HORIZONTAL\r\n ? [width, height]\r\n : [height, width];\r\n this.splitview.layout(size, orthogonalSize);\r\n }\r\n doAddView(view) {\r\n const disposable = view.api.onDidFocusChange((event) => {\r\n if (!event.isFocused) {\r\n return;\r\n }\r\n this.setActive(view, true);\r\n });\r\n this._panels.set(view.id, disposable);\r\n }\r\n toJSON() {\r\n var _a;\r\n const views = this.splitview\r\n .getViews()\r\n .map((view, i) => {\r\n const size = this.splitview.getViewSize(i);\r\n return {\r\n size,\r\n data: view.toJSON(),\r\n snap: !!view.snap,\r\n priority: view.priority,\r\n };\r\n });\r\n return {\r\n views,\r\n activeView: (_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.id,\r\n size: this.splitview.size,\r\n orientation: this.splitview.orientation,\r\n };\r\n }\r\n fromJSON(serializedSplitview) {\r\n this.clear();\r\n const { views, orientation, size, activeView } = serializedSplitview;\r\n const queue = [];\r\n // take note of the existing dimensions\r\n const width = this.width;\r\n const height = this.height;\r\n this.splitview = new Splitview(this.element, {\r\n orientation,\r\n proportionalLayout: this.options.proportionalLayout,\r\n descriptor: {\r\n size,\r\n views: views.map((view) => {\r\n const data = view.data;\r\n if (this._panels.has(data.id)) {\r\n throw new Error(`panel ${data.id} already exists`);\r\n }\r\n const panel = createComponent(data.id, data.component, this.options.components || {}, this.options.frameworkComponents || {}, this.options.frameworkWrapper\r\n ? {\r\n createComponent: this.options.frameworkWrapper\r\n .createComponent,\r\n }\r\n : undefined);\r\n queue.push(() => {\r\n panel.init({\r\n params: data.params || {},\r\n minimumSize: data.minimumSize,\r\n maximumSize: data.maximumSize,\r\n snap: view.snap,\r\n priority: view.priority,\r\n accessor: this,\r\n });\r\n });\r\n panel.orientation = orientation;\r\n this.doAddView(panel);\r\n setTimeout(() => {\r\n // the original onDidAddView events are missed since they are fired before we can subcribe to them\r\n this._onDidAddView.fire(panel);\r\n }, 0);\r\n return { size: view.size, view: panel };\r\n }),\r\n },\r\n });\r\n this.layout(width, height);\r\n queue.forEach((f) => f());\r\n if (typeof activeView === 'string') {\r\n const panel = this.getPanel(activeView);\r\n if (panel) {\r\n this.setActive(panel);\r\n }\r\n }\r\n this._onDidLayoutfromJSON.fire();\r\n }\r\n clear() {\r\n for (const disposable of this._panels.values()) {\r\n disposable.dispose();\r\n }\r\n this._panels.clear();\r\n while (this.splitview.length > 0) {\r\n const view = this.splitview.removeView(0, Sizing.Distribute, true);\r\n view.dispose();\r\n }\r\n }\r\n dispose() {\r\n for (const disposable of this._panels.values()) {\r\n disposable.dispose();\r\n }\r\n this._panels.clear();\r\n const views = this.splitview.getViews();\r\n this._splitviewChangeDisposable.dispose();\r\n this.splitview.dispose();\r\n for (const view of views) {\r\n view.dispose();\r\n }\r\n super.dispose();\r\n }\r\n}\r\n//# sourceMappingURL=splitviewComponent.js.map","import { addDisposableListener } from '../events';\r\nimport { CompositeDisposable, MutableDisposable } from '../lifecycle';\r\nimport { toggleClass } from '../dom';\r\nimport { createChevronRightButton, createExpandMoreButton } from '../svg';\r\nexport class DefaultHeader extends CompositeDisposable {\r\n get element() {\r\n return this._element;\r\n }\r\n constructor() {\r\n super();\r\n this._expandedIcon = createExpandMoreButton();\r\n this._collapsedIcon = createChevronRightButton();\r\n this.disposable = new MutableDisposable();\r\n this.apiRef = { api: null };\r\n this._element = document.createElement('div');\r\n this.element.className = 'default-header';\r\n this._content = document.createElement('span');\r\n this._expander = document.createElement('div');\r\n this._expander.className = 'dockview-pane-header-icon';\r\n this.element.appendChild(this._expander);\r\n this.element.appendChild(this._content);\r\n this.addDisposables(addDisposableListener(this._element, 'click', () => {\r\n var _a;\r\n (_a = this.apiRef.api) === null || _a === void 0 ? void 0 : _a.setExpanded(!this.apiRef.api.isExpanded);\r\n }));\r\n }\r\n init(params) {\r\n this.apiRef.api = params.api;\r\n this._content.textContent = params.title;\r\n this.updateIcon();\r\n this.disposable.value = params.api.onDidExpansionChange(() => {\r\n this.updateIcon();\r\n });\r\n }\r\n updateIcon() {\r\n var _a;\r\n const isExpanded = !!((_a = this.apiRef.api) === null || _a === void 0 ? void 0 : _a.isExpanded);\r\n toggleClass(this._expander, 'collapsed', !isExpanded);\r\n if (isExpanded) {\r\n if (this._expander.contains(this._collapsedIcon)) {\r\n this._collapsedIcon.remove();\r\n }\r\n if (!this._expander.contains(this._expandedIcon)) {\r\n this._expander.appendChild(this._expandedIcon);\r\n }\r\n }\r\n else {\r\n if (this._expander.contains(this._expandedIcon)) {\r\n this._expandedIcon.remove();\r\n }\r\n if (!this._expander.contains(this._collapsedIcon)) {\r\n this._expander.appendChild(this._collapsedIcon);\r\n }\r\n }\r\n }\r\n update(_params) {\r\n //\r\n }\r\n dispose() {\r\n this.disposable.dispose();\r\n super.dispose();\r\n }\r\n}\r\n//# sourceMappingURL=defaultPaneviewHeader.js.map","import { PaneviewApi } from '../api/component.api';\r\nimport { createComponent } from '../panel/componentFactory';\r\nimport { Emitter } from '../events';\r\nimport { CompositeDisposable, MutableDisposable, } from '../lifecycle';\r\nimport { Orientation, Sizing } from '../splitview/splitview';\r\nimport { Paneview } from './paneview';\r\nimport { DraggablePaneviewPanel, } from './draggablePaneviewPanel';\r\nimport { DefaultHeader } from './defaultPaneviewHeader';\r\nimport { sequentialNumberGenerator } from '../math';\r\nimport { Resizable } from '../resizable';\r\nconst nextLayoutId = sequentialNumberGenerator();\r\nexport class PaneFramework extends DraggablePaneviewPanel {\r\n constructor(options) {\r\n super(options.accessor, options.id, options.component, options.headerComponent, options.orientation, options.isExpanded, options.disableDnd);\r\n this.options = options;\r\n }\r\n getBodyComponent() {\r\n return this.options.body;\r\n }\r\n getHeaderComponent() {\r\n return this.options.header;\r\n }\r\n}\r\nexport class PaneviewComponent extends Resizable {\r\n get id() {\r\n return this._id;\r\n }\r\n get panels() {\r\n return this.paneview.getPanes();\r\n }\r\n set paneview(value) {\r\n this._paneview = value;\r\n this._disposable.value = new CompositeDisposable(this._paneview.onDidChange(() => {\r\n this._onDidLayoutChange.fire(undefined);\r\n }), this._paneview.onDidAddView((e) => this._onDidAddView.fire(e)), this._paneview.onDidRemoveView((e) => this._onDidRemoveView.fire(e)));\r\n }\r\n get paneview() {\r\n return this._paneview;\r\n }\r\n get minimumSize() {\r\n return this.paneview.minimumSize;\r\n }\r\n get maximumSize() {\r\n return this.paneview.maximumSize;\r\n }\r\n get height() {\r\n return this.paneview.orientation === Orientation.HORIZONTAL\r\n ? this.paneview.orthogonalSize\r\n : this.paneview.size;\r\n }\r\n get width() {\r\n return this.paneview.orientation === Orientation.HORIZONTAL\r\n ? this.paneview.size\r\n : this.paneview.orthogonalSize;\r\n }\r\n get options() {\r\n return this._options;\r\n }\r\n constructor(options) {\r\n super(options.parentElement);\r\n this._id = nextLayoutId.next();\r\n this._disposable = new MutableDisposable();\r\n this._viewDisposables = new Map();\r\n this._onDidLayoutfromJSON = new Emitter();\r\n this.onDidLayoutFromJSON = this._onDidLayoutfromJSON.event;\r\n this._onDidLayoutChange = new Emitter();\r\n this.onDidLayoutChange = this._onDidLayoutChange.event;\r\n this._onDidDrop = new Emitter();\r\n this.onDidDrop = this._onDidDrop.event;\r\n this._onDidAddView = new Emitter();\r\n this.onDidAddView = this._onDidAddView.event;\r\n this._onDidRemoveView = new Emitter();\r\n this.onDidRemoveView = this._onDidRemoveView.event;\r\n this.addDisposables(this._onDidLayoutChange, this._onDidLayoutfromJSON, this._onDidDrop, this._onDidAddView, this._onDidRemoveView);\r\n this._options = options;\r\n if (!options.components) {\r\n options.components = {};\r\n }\r\n if (!options.frameworkComponents) {\r\n options.frameworkComponents = {};\r\n }\r\n this.paneview = new Paneview(this.element, {\r\n // only allow paneview in the vertical orientation for now\r\n orientation: Orientation.VERTICAL,\r\n });\r\n this.addDisposables(this._disposable);\r\n }\r\n focus() {\r\n //noop\r\n }\r\n updateOptions(options) {\r\n this._options = Object.assign(Object.assign({}, this.options), options);\r\n }\r\n addPanel(options) {\r\n const body = createComponent(options.id, options.component, this.options.components || {}, this.options.frameworkComponents || {}, this.options.frameworkWrapper\r\n ? {\r\n createComponent: this.options.frameworkWrapper.body.createComponent,\r\n }\r\n : undefined);\r\n let header;\r\n if (options.headerComponent) {\r\n header = createComponent(options.id, options.headerComponent, this.options.headerComponents || {}, this.options.headerframeworkComponents, this.options.frameworkWrapper\r\n ? {\r\n createComponent: this.options.frameworkWrapper.header\r\n .createComponent,\r\n }\r\n : undefined);\r\n }\r\n else {\r\n header = new DefaultHeader();\r\n }\r\n const view = new PaneFramework({\r\n id: options.id,\r\n component: options.component,\r\n headerComponent: options.headerComponent,\r\n header,\r\n body,\r\n orientation: Orientation.VERTICAL,\r\n isExpanded: !!options.isExpanded,\r\n disableDnd: !!this.options.disableDnd,\r\n accessor: this,\r\n });\r\n this.doAddPanel(view);\r\n const size = typeof options.size === 'number' ? options.size : Sizing.Distribute;\r\n const index = typeof options.index === 'number' ? options.index : undefined;\r\n view.init({\r\n params: options.params || {},\r\n minimumBodySize: options.minimumBodySize,\r\n maximumBodySize: options.maximumBodySize,\r\n isExpanded: options.isExpanded,\r\n title: options.title,\r\n containerApi: new PaneviewApi(this),\r\n });\r\n this.paneview.addPane(view, size, index);\r\n view.orientation = this.paneview.orientation;\r\n return view;\r\n }\r\n removePanel(panel) {\r\n const views = this.panels;\r\n const index = views.findIndex((_) => _ === panel);\r\n this.paneview.removePane(index);\r\n this.doRemovePanel(panel);\r\n }\r\n movePanel(from, to) {\r\n this.paneview.moveView(from, to);\r\n }\r\n getPanel(id) {\r\n return this.panels.find((view) => view.id === id);\r\n }\r\n layout(width, height) {\r\n const [size, orthogonalSize] = this.paneview.orientation === Orientation.HORIZONTAL\r\n ? [width, height]\r\n : [height, width];\r\n this.paneview.layout(size, orthogonalSize);\r\n }\r\n toJSON() {\r\n const maximum = (value) => value === Number.MAX_SAFE_INTEGER ||\r\n value === Number.POSITIVE_INFINITY\r\n ? undefined\r\n : value;\r\n const minimum = (value) => (value <= 0 ? undefined : value);\r\n const views = this.paneview\r\n .getPanes()\r\n .map((view, i) => {\r\n const size = this.paneview.getViewSize(i);\r\n return {\r\n size,\r\n data: view.toJSON(),\r\n minimumSize: minimum(view.minimumBodySize),\r\n maximumSize: maximum(view.maximumBodySize),\r\n expanded: view.isExpanded(),\r\n };\r\n });\r\n return {\r\n views,\r\n size: this.paneview.size,\r\n };\r\n }\r\n fromJSON(serializedPaneview) {\r\n this.clear();\r\n const { views, size } = serializedPaneview;\r\n const queue = [];\r\n // take note of the existing dimensions\r\n const width = this.width;\r\n const height = this.height;\r\n this.paneview = new Paneview(this.element, {\r\n orientation: Orientation.VERTICAL,\r\n descriptor: {\r\n size,\r\n views: views.map((view) => {\r\n const data = view.data;\r\n const body = createComponent(data.id, data.component, this.options.components || {}, this.options.frameworkComponents || {}, this.options.frameworkWrapper\r\n ? {\r\n createComponent: this.options.frameworkWrapper.body\r\n .createComponent,\r\n }\r\n : undefined);\r\n let header;\r\n if (data.headerComponent) {\r\n header = createComponent(data.id, data.headerComponent, this.options.headerComponents || {}, this.options.headerframeworkComponents || {}, this.options.frameworkWrapper\r\n ? {\r\n createComponent: this.options.frameworkWrapper.header\r\n .createComponent,\r\n }\r\n : undefined);\r\n }\r\n else {\r\n header = new DefaultHeader();\r\n }\r\n const panel = new PaneFramework({\r\n id: data.id,\r\n component: data.component,\r\n headerComponent: data.headerComponent,\r\n header,\r\n body,\r\n orientation: Orientation.VERTICAL,\r\n isExpanded: !!view.expanded,\r\n disableDnd: !!this.options.disableDnd,\r\n accessor: this,\r\n });\r\n this.doAddPanel(panel);\r\n queue.push(() => {\r\n panel.init({\r\n params: data.params || {},\r\n minimumBodySize: view.minimumSize,\r\n maximumBodySize: view.maximumSize,\r\n title: data.title,\r\n isExpanded: !!view.expanded,\r\n containerApi: new PaneviewApi(this),\r\n });\r\n panel.orientation = this.paneview.orientation;\r\n });\r\n setTimeout(() => {\r\n // the original onDidAddView events are missed since they are fired before we can subcribe to them\r\n this._onDidAddView.fire(panel);\r\n }, 0);\r\n return { size: view.size, view: panel };\r\n }),\r\n },\r\n });\r\n this.layout(width, height);\r\n queue.forEach((f) => f());\r\n this._onDidLayoutfromJSON.fire();\r\n }\r\n clear() {\r\n for (const [_, value] of this._viewDisposables.entries()) {\r\n value.dispose();\r\n }\r\n this._viewDisposables.clear();\r\n this.paneview.dispose();\r\n }\r\n doAddPanel(panel) {\r\n const disposable = panel.onDidDrop((event) => {\r\n this._onDidDrop.fire(event);\r\n });\r\n this._viewDisposables.set(panel.id, disposable);\r\n }\r\n doRemovePanel(panel) {\r\n const disposable = this._viewDisposables.get(panel.id);\r\n if (disposable) {\r\n disposable.dispose();\r\n this._viewDisposables.delete(panel.id);\r\n }\r\n }\r\n dispose() {\r\n super.dispose();\r\n for (const [_, value] of this._viewDisposables.entries()) {\r\n value.dispose();\r\n }\r\n this._viewDisposables.clear();\r\n this.paneview.dispose();\r\n }\r\n}\r\n//# sourceMappingURL=paneviewComponent.js.map","import { BasePanelView, } from '../gridview/basePanelView';\r\nimport { SplitviewPanelApiImpl } from '../api/splitviewPanelApi';\r\nimport { Orientation } from './splitview';\r\nimport { Emitter } from '../events';\r\nexport class SplitviewPanel extends BasePanelView {\r\n get priority() {\r\n return this._priority;\r\n }\r\n set orientation(value) {\r\n this._orientation = value;\r\n }\r\n get orientation() {\r\n return this._orientation;\r\n }\r\n get minimumSize() {\r\n const size = typeof this._minimumSize === 'function'\r\n ? this._minimumSize()\r\n : this._minimumSize;\r\n if (size !== this._evaluatedMinimumSize) {\r\n this._evaluatedMinimumSize = size;\r\n this.updateConstraints();\r\n }\r\n return size;\r\n }\r\n get maximumSize() {\r\n const size = typeof this._maximumSize === 'function'\r\n ? this._maximumSize()\r\n : this._maximumSize;\r\n if (size !== this._evaluatedMaximumSize) {\r\n this._evaluatedMaximumSize = size;\r\n this.updateConstraints();\r\n }\r\n return size;\r\n }\r\n get snap() {\r\n return this._snap;\r\n }\r\n constructor(id, componentName) {\r\n super(id, componentName, new SplitviewPanelApiImpl(id));\r\n this._evaluatedMinimumSize = 0;\r\n this._evaluatedMaximumSize = Number.POSITIVE_INFINITY;\r\n this._minimumSize = 0;\r\n this._maximumSize = Number.POSITIVE_INFINITY;\r\n this._snap = false;\r\n this._onDidChange = new Emitter();\r\n this.onDidChange = this._onDidChange.event;\r\n this.api.initialize(this);\r\n this.addDisposables(this._onDidChange, this.api.onVisibilityChange((event) => {\r\n const { isVisible } = event;\r\n const { accessor } = this._params;\r\n accessor.setVisible(this, isVisible);\r\n }), this.api.onActiveChange(() => {\r\n const { accessor } = this._params;\r\n accessor.setActive(this);\r\n }), this.api.onDidConstraintsChangeInternal((event) => {\r\n if (typeof event.minimumSize === 'number' ||\r\n typeof event.minimumSize === 'function') {\r\n this._minimumSize = event.minimumSize;\r\n }\r\n if (typeof event.maximumSize === 'number' ||\r\n typeof event.maximumSize === 'function') {\r\n this._maximumSize = event.maximumSize;\r\n }\r\n this.updateConstraints();\r\n }), this.api.onDidSizeChange((event) => {\r\n this._onDidChange.fire({ size: event.size });\r\n }));\r\n }\r\n setVisible(isVisible) {\r\n this.api._onDidVisibilityChange.fire({ isVisible });\r\n }\r\n setActive(isActive) {\r\n this.api._onDidActiveChange.fire({ isActive });\r\n }\r\n layout(size, orthogonalSize) {\r\n const [width, height] = this.orientation === Orientation.HORIZONTAL\r\n ? [size, orthogonalSize]\r\n : [orthogonalSize, size];\r\n super.layout(width, height);\r\n }\r\n init(parameters) {\r\n super.init(parameters);\r\n this._priority = parameters.priority;\r\n if (parameters.minimumSize) {\r\n this._minimumSize = parameters.minimumSize;\r\n }\r\n if (parameters.maximumSize) {\r\n this._maximumSize = parameters.maximumSize;\r\n }\r\n if (parameters.snap) {\r\n this._snap = parameters.snap;\r\n }\r\n }\r\n toJSON() {\r\n const maximum = (value) => value === Number.MAX_SAFE_INTEGER ||\r\n value === Number.POSITIVE_INFINITY\r\n ? undefined\r\n : value;\r\n const minimum = (value) => (value <= 0 ? undefined : value);\r\n return Object.assign(Object.assign({}, super.toJSON()), { minimumSize: minimum(this.minimumSize), maximumSize: maximum(this.maximumSize) });\r\n }\r\n updateConstraints() {\r\n this.api._onDidConstraintsChange.fire({\r\n maximumSize: this._evaluatedMaximumSize,\r\n minimumSize: this._evaluatedMinimumSize,\r\n });\r\n }\r\n}\r\n//# sourceMappingURL=splitviewPanel.js.map",null,null,null,null,null,null,"/******************************************************************************\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\") 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,\r\n __assign,\r\n __rest,\r\n __decorate,\r\n __param,\r\n __metadata,\r\n __awaiter,\r\n __generator,\r\n __createBinding,\r\n __exportStar,\r\n __values,\r\n __read,\r\n __spread,\r\n __spreadArrays,\r\n __spreadArray,\r\n __await,\r\n __asyncGenerator,\r\n __asyncDelegator,\r\n __asyncValues,\r\n __makeTemplateObject,\r\n __importStar,\r\n __importDefault,\r\n __classPrivateFieldGet,\r\n __classPrivateFieldSet,\r\n __classPrivateFieldIn,\r\n __addDisposableResource,\r\n __disposeResources,\r\n};\r\n",null,null,null,null,null,null,null,null],"names":["Event","Orientation","SashState","LayoutPriority","Sizing","DockviewDropTargets","nextLayoutId","React","ReactDOM","DockviewEmitter","DockviewMutableDisposable","DockviewCompositeDisposable"],"mappings":"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","x_google_ignoreList":[0,60]}
1
+ {"version":3,"file":"dockview.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/dockview/types.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/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","../../src/react.ts","../../src/dockview/reactContentPart.ts","../../src/dockview/reactHeaderPart.ts","../../src/dockview/reactWatermarkPart.ts","../../src/dockview/headerActionsRenderer.ts","../../src/dockview/dockview.tsx","../../../node_modules/tslib/tslib.es6.js","../../src/svg.tsx","../../src/dockview/defaultTab.tsx","../../src/splitview/view.ts","../../src/splitview/splitview.tsx","../../src/gridview/view.ts","../../src/gridview/gridview.tsx","../../src/paneview/view.tsx","../../src/paneview/paneview.tsx"],"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 {\r\n constructor() {\r\n //\r\n }\r\n}\r\nexport class PanelTransfer extends TransferObject {\r\n constructor(viewId, groupId, panelId) {\r\n super();\r\n this.viewId = viewId;\r\n this.groupId = groupId;\r\n this.panelId = panelId;\r\n }\r\n}\r\nexport class PaneTransfer extends TransferObject {\r\n constructor(viewId, paneId) {\r\n super();\r\n this.viewId = viewId;\r\n this.paneId = paneId;\r\n }\r\n}\r\n/**\r\n * A singleton to store transfer data during drag & drop operations that are only valid within the application.\r\n */\r\nexport class LocalSelectionTransfer {\r\n constructor() {\r\n // protect against external instantiation\r\n }\r\n static getInstance() {\r\n return LocalSelectionTransfer.INSTANCE;\r\n }\r\n hasData(proto) {\r\n return proto && proto === this.proto;\r\n }\r\n clearData(proto) {\r\n if (this.hasData(proto)) {\r\n this.proto = undefined;\r\n this.data = undefined;\r\n }\r\n }\r\n getData(proto) {\r\n if (this.hasData(proto)) {\r\n return this.data;\r\n }\r\n return undefined;\r\n }\r\n setData(data, proto) {\r\n if (proto) {\r\n this.data = data;\r\n this.proto = proto;\r\n }\r\n }\r\n}\r\nLocalSelectionTransfer.INSTANCE = new LocalSelectionTransfer();\r\nexport function getPanelData() {\r\n const panelTransfer = LocalSelectionTransfer.getInstance();\r\n const isPanelEvent = panelTransfer.hasData(PanelTransfer.prototype);\r\n if (!isPanelEvent) {\r\n return undefined;\r\n }\r\n return panelTransfer.getData(PanelTransfer.prototype)[0];\r\n}\r\nexport function getPaneData() {\r\n const paneTransfer = LocalSelectionTransfer.getInstance();\r\n const isPanelEvent = paneTransfer.hasData(PaneTransfer.prototype);\r\n if (!isPanelEvent) {\r\n return undefined;\r\n }\r\n return paneTransfer.getData(PaneTransfer.prototype)[0];\r\n}\r\n//# sourceMappingURL=dataTransfer.js.map","export var Event;\r\n(function (Event) {\r\n Event.any = (...children) => {\r\n return (listener) => {\r\n const disposables = children.map((child) => child(listener));\r\n return {\r\n dispose: () => {\r\n disposables.forEach((d) => {\r\n d.dispose();\r\n });\r\n },\r\n };\r\n };\r\n };\r\n})(Event || (Event = {}));\r\nclass LeakageMonitor {\r\n constructor() {\r\n this.events = new Map();\r\n }\r\n get size() {\r\n return this.events.size;\r\n }\r\n add(event, stacktrace) {\r\n this.events.set(event, stacktrace);\r\n }\r\n delete(event) {\r\n this.events.delete(event);\r\n }\r\n clear() {\r\n this.events.clear();\r\n }\r\n}\r\nclass Stacktrace {\r\n static create() {\r\n var _a;\r\n return new Stacktrace((_a = new Error().stack) !== null && _a !== void 0 ? _a : '');\r\n }\r\n constructor(value) {\r\n this.value = value;\r\n }\r\n print() {\r\n console.warn(this.value);\r\n }\r\n}\r\nclass Listener {\r\n constructor(callback, stacktrace) {\r\n this.callback = callback;\r\n this.stacktrace = stacktrace;\r\n }\r\n}\r\n// relatively simple event emitter taken from https://github.com/microsoft/vscode/blob/master/src/vs/base/common/event.ts\r\nexport class Emitter {\r\n static setLeakageMonitorEnabled(isEnabled) {\r\n if (isEnabled !== Emitter.ENABLE_TRACKING) {\r\n Emitter.MEMORY_LEAK_WATCHER.clear();\r\n }\r\n Emitter.ENABLE_TRACKING = isEnabled;\r\n }\r\n constructor(options) {\r\n this.options = options;\r\n this._listeners = [];\r\n this._disposed = false;\r\n }\r\n get event() {\r\n if (!this._event) {\r\n this._event = (callback) => {\r\n var _a;\r\n if (((_a = this.options) === null || _a === void 0 ? void 0 : _a.replay) && this._last !== undefined) {\r\n callback(this._last);\r\n }\r\n const listener = new Listener(callback, Emitter.ENABLE_TRACKING ? Stacktrace.create() : undefined);\r\n this._listeners.push(listener);\r\n return {\r\n dispose: () => {\r\n const index = this._listeners.indexOf(listener);\r\n if (index > -1) {\r\n this._listeners.splice(index, 1);\r\n }\r\n else if (Emitter.ENABLE_TRACKING) {\r\n // console.warn(\r\n // `Listener already disposed`,\r\n // Stacktrace.create().print()\r\n // );\r\n }\r\n },\r\n };\r\n };\r\n if (Emitter.ENABLE_TRACKING) {\r\n Emitter.MEMORY_LEAK_WATCHER.add(this._event, Stacktrace.create());\r\n }\r\n }\r\n return this._event;\r\n }\r\n fire(e) {\r\n this._last = e;\r\n for (const listener of this._listeners) {\r\n listener.callback(e);\r\n }\r\n }\r\n dispose() {\r\n if (!this._disposed) {\r\n this._disposed = true;\r\n if (this._listeners.length > 0) {\r\n if (Emitter.ENABLE_TRACKING) {\r\n queueMicrotask(() => {\r\n var _a;\r\n // don't check until stack of execution is completed to allow for out-of-order disposals within the same execution block\r\n for (const listener of this._listeners) {\r\n console.warn((_a = listener.stacktrace) === null || _a === void 0 ? void 0 : _a.print());\r\n }\r\n });\r\n }\r\n this._listeners = [];\r\n }\r\n if (Emitter.ENABLE_TRACKING && this._event) {\r\n Emitter.MEMORY_LEAK_WATCHER.delete(this._event);\r\n }\r\n }\r\n }\r\n}\r\nEmitter.ENABLE_TRACKING = false;\r\nEmitter.MEMORY_LEAK_WATCHER = new LeakageMonitor();\r\nexport function addDisposableWindowListener(element, type, listener, options) {\r\n element.addEventListener(type, listener, options);\r\n return {\r\n dispose: () => {\r\n element.removeEventListener(type, listener, options);\r\n },\r\n };\r\n}\r\nexport function addDisposableListener(element, type, listener, options) {\r\n element.addEventListener(type, listener, options);\r\n return {\r\n dispose: () => {\r\n element.removeEventListener(type, listener, options);\r\n },\r\n };\r\n}\r\nexport class TickDelayedEvent {\r\n constructor() {\r\n this._onFired = new Emitter();\r\n this.onEvent = this._onFired.event;\r\n }\r\n fire() {\r\n if (this.timer) {\r\n clearTimeout(this.timer);\r\n }\r\n this.timer = setTimeout(() => {\r\n this._onFired.fire();\r\n clearTimeout(this.timer);\r\n });\r\n }\r\n dispose() {\r\n this._onFired.dispose();\r\n }\r\n}\r\n//# sourceMappingURL=events.js.map","export var Disposable;\r\n(function (Disposable) {\r\n Disposable.NONE = {\r\n dispose: () => {\r\n // noop\r\n },\r\n };\r\n})(Disposable || (Disposable = {}));\r\nexport class CompositeDisposable {\r\n get isDisposed() {\r\n return this._isDisposed;\r\n }\r\n constructor(...args) {\r\n this._isDisposed = false;\r\n this._disposables = args;\r\n }\r\n addDisposables(...args) {\r\n args.forEach((arg) => this._disposables.push(arg));\r\n }\r\n dispose() {\r\n this._disposables.forEach((arg) => arg.dispose());\r\n this._isDisposed = true;\r\n }\r\n}\r\nexport class MutableDisposable {\r\n constructor() {\r\n this._disposable = Disposable.NONE;\r\n }\r\n set value(disposable) {\r\n if (this._disposable) {\r\n this._disposable.dispose();\r\n }\r\n this._disposable = disposable;\r\n }\r\n dispose() {\r\n if (this._disposable) {\r\n this._disposable.dispose();\r\n this._disposable = Disposable.NONE;\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=lifecycle.js.map","export function createComponent(id, componentName, components = {}, frameworkComponents = {}, createFrameworkComponent, fallback) {\r\n const Component = typeof componentName === 'string'\r\n ? components[componentName]\r\n : undefined;\r\n const FrameworkComponent = typeof componentName === 'string'\r\n ? frameworkComponents[componentName]\r\n : undefined;\r\n if (Component && FrameworkComponent) {\r\n throw new Error(`Cannot create '${id}'. component '${componentName}' registered as both a component and frameworkComponent`);\r\n }\r\n if (FrameworkComponent) {\r\n if (!createFrameworkComponent) {\r\n throw new Error(`Cannot create '${id}' for framework component '${componentName}'. you must register a frameworkPanelWrapper to use framework components`);\r\n }\r\n return createFrameworkComponent.createComponent(id, componentName, FrameworkComponent);\r\n }\r\n if (!Component) {\r\n if (fallback) {\r\n return fallback();\r\n }\r\n throw new Error(`Cannot create '${id}', no component '${componentName}' provided`);\r\n }\r\n return new Component(id, componentName);\r\n}\r\n//# sourceMappingURL=componentFactory.js.map","import { Emitter, addDisposableListener, addDisposableWindowListener, } from './events';\r\nimport { CompositeDisposable } from './lifecycle';\r\nexport function watchElementResize(element, cb) {\r\n const observer = new ResizeObserver((entires) => {\r\n /**\r\n * Fast browser window resize produces Error: ResizeObserver loop limit exceeded.\r\n * The error isn't visible in browser console, doesn't affect functionality, but degrades performance.\r\n * See https://stackoverflow.com/questions/49384120/resizeobserver-loop-limit-exceeded/58701523#58701523\r\n */\r\n requestAnimationFrame(() => {\r\n const firstEntry = entires[0];\r\n cb(firstEntry);\r\n });\r\n });\r\n observer.observe(element);\r\n return {\r\n dispose: () => {\r\n observer.unobserve(element);\r\n observer.disconnect();\r\n },\r\n };\r\n}\r\nexport const removeClasses = (element, ...classes) => {\r\n for (const classname of classes) {\r\n if (element.classList.contains(classname)) {\r\n element.classList.remove(classname);\r\n }\r\n }\r\n};\r\nexport const addClasses = (element, ...classes) => {\r\n for (const classname of classes) {\r\n if (!element.classList.contains(classname)) {\r\n element.classList.add(classname);\r\n }\r\n }\r\n};\r\nexport const toggleClass = (element, className, isToggled) => {\r\n const hasClass = element.classList.contains(className);\r\n if (isToggled && !hasClass) {\r\n element.classList.add(className);\r\n }\r\n if (!isToggled && hasClass) {\r\n element.classList.remove(className);\r\n }\r\n};\r\nexport function isAncestor(testChild, testAncestor) {\r\n while (testChild) {\r\n if (testChild === testAncestor) {\r\n return true;\r\n }\r\n testChild = testChild.parentNode;\r\n }\r\n return false;\r\n}\r\nexport function getElementsByTagName(tag) {\r\n return Array.prototype.slice.call(document.getElementsByTagName(tag), 0);\r\n}\r\nexport function trackFocus(element) {\r\n return new FocusTracker(element);\r\n}\r\n/**\r\n * Track focus on an element. Ensure tabIndex is set when an HTMLElement is not focusable by default\r\n */\r\nclass FocusTracker extends CompositeDisposable {\r\n constructor(element) {\r\n super();\r\n this._onDidFocus = new Emitter();\r\n this.onDidFocus = this._onDidFocus.event;\r\n this._onDidBlur = new Emitter();\r\n this.onDidBlur = this._onDidBlur.event;\r\n this.addDisposables(this._onDidFocus, this._onDidBlur);\r\n let hasFocus = isAncestor(document.activeElement, element);\r\n let loosingFocus = false;\r\n const onFocus = () => {\r\n loosingFocus = false;\r\n if (!hasFocus) {\r\n hasFocus = true;\r\n this._onDidFocus.fire();\r\n }\r\n };\r\n const onBlur = () => {\r\n if (hasFocus) {\r\n loosingFocus = true;\r\n window.setTimeout(() => {\r\n if (loosingFocus) {\r\n loosingFocus = false;\r\n hasFocus = false;\r\n this._onDidBlur.fire();\r\n }\r\n }, 0);\r\n }\r\n };\r\n this._refreshStateHandler = () => {\r\n const currentNodeHasFocus = isAncestor(document.activeElement, element);\r\n if (currentNodeHasFocus !== hasFocus) {\r\n if (hasFocus) {\r\n onBlur();\r\n }\r\n else {\r\n onFocus();\r\n }\r\n }\r\n };\r\n if (element instanceof HTMLElement) {\r\n this.addDisposables(addDisposableListener(element, 'focus', onFocus, true));\r\n this.addDisposables(addDisposableListener(element, 'blur', onBlur, true));\r\n }\r\n else {\r\n this.addDisposables(addDisposableWindowListener(element, 'focus', onFocus, true));\r\n this.addDisposables(addDisposableWindowListener(element, 'blur', onBlur, true));\r\n }\r\n }\r\n refreshState() {\r\n this._refreshStateHandler();\r\n }\r\n}\r\n// quasi: apparently, but not really; seemingly\r\nconst QUASI_PREVENT_DEFAULT_KEY = 'dv-quasiPreventDefault';\r\n// mark an event directly for other listeners to check\r\nexport function quasiPreventDefault(event) {\r\n event[QUASI_PREVENT_DEFAULT_KEY] = true;\r\n}\r\n// check if this event has been marked\r\nexport function quasiDefaultPrevented(event) {\r\n return event[QUASI_PREVENT_DEFAULT_KEY];\r\n}\r\n//# sourceMappingURL=dom.js.map","export function tail(arr) {\r\n if (arr.length === 0) {\r\n throw new Error('Invalid tail call');\r\n }\r\n return [arr.slice(0, arr.length - 1), arr[arr.length - 1]];\r\n}\r\nexport function last(arr) {\r\n return arr.length > 0 ? arr[arr.length - 1] : undefined;\r\n}\r\nexport function sequenceEquals(arr1, arr2) {\r\n if (arr1.length !== arr2.length) {\r\n return false;\r\n }\r\n for (let i = 0; i < arr1.length; i++) {\r\n if (arr1[i] !== arr2[i]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\n/**\r\n * Pushes an element to the start of the array, if found.\r\n */\r\nexport function pushToStart(arr, value) {\r\n const index = arr.indexOf(value);\r\n if (index > -1) {\r\n arr.splice(index, 1);\r\n arr.unshift(value);\r\n }\r\n}\r\n/**\r\n * Pushes an element to the end of the array, if found.\r\n */\r\nexport function pushToEnd(arr, value) {\r\n const index = arr.indexOf(value);\r\n if (index > -1) {\r\n arr.splice(index, 1);\r\n arr.push(value);\r\n }\r\n}\r\nexport function firstIndex(array, fn) {\r\n for (let i = 0; i < array.length; i++) {\r\n const element = array[i];\r\n if (fn(element)) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n}\r\nexport function remove(array, value) {\r\n const index = array.findIndex((t) => t === value);\r\n if (index > -1) {\r\n array.splice(index, 1);\r\n return true;\r\n }\r\n return false;\r\n}\r\n//# sourceMappingURL=array.js.map","export const clamp = (value, min, max) => {\r\n if (min > max) {\r\n throw new Error(`${min} > ${max} is an invalid condition`);\r\n }\r\n return Math.min(max, Math.max(value, min));\r\n};\r\nexport const sequentialNumberGenerator = () => {\r\n let value = 1;\r\n return { next: () => (value++).toString() };\r\n};\r\nexport const range = (from, to) => {\r\n const result = [];\r\n if (typeof to !== 'number') {\r\n to = from;\r\n from = 0;\r\n }\r\n if (from <= to) {\r\n for (let i = from; i < to; i++) {\r\n result.push(i);\r\n }\r\n }\r\n else {\r\n for (let i = from; i > to; i--) {\r\n result.push(i);\r\n }\r\n }\r\n return result;\r\n};\r\n//# sourceMappingURL=math.js.map","import { clamp } from '../math';\r\nexport class ViewItem {\r\n set size(size) {\r\n this._size = size;\r\n }\r\n get size() {\r\n return this._size;\r\n }\r\n get cachedVisibleSize() {\r\n return this._cachedVisibleSize;\r\n }\r\n get visible() {\r\n return typeof this._cachedVisibleSize === 'undefined';\r\n }\r\n get minimumSize() {\r\n return this.visible ? this.view.minimumSize : 0;\r\n }\r\n get viewMinimumSize() {\r\n return this.view.minimumSize;\r\n }\r\n get maximumSize() {\r\n return this.visible ? this.view.maximumSize : 0;\r\n }\r\n get viewMaximumSize() {\r\n return this.view.maximumSize;\r\n }\r\n get priority() {\r\n return this.view.priority;\r\n }\r\n get snap() {\r\n return !!this.view.snap;\r\n }\r\n set enabled(enabled) {\r\n this.container.style.pointerEvents = enabled ? '' : 'none';\r\n }\r\n constructor(container, view, size, disposable) {\r\n this.container = container;\r\n this.view = view;\r\n this.disposable = disposable;\r\n this._cachedVisibleSize = undefined;\r\n if (typeof size === 'number') {\r\n this._size = size;\r\n this._cachedVisibleSize = undefined;\r\n container.classList.add('visible');\r\n }\r\n else {\r\n this._size = 0;\r\n this._cachedVisibleSize = size.cachedVisibleSize;\r\n }\r\n }\r\n setVisible(visible, size) {\r\n var _a;\r\n if (visible === this.visible) {\r\n return;\r\n }\r\n if (visible) {\r\n this.size = clamp((_a = this._cachedVisibleSize) !== null && _a !== void 0 ? _a : 0, this.viewMinimumSize, this.viewMaximumSize);\r\n this._cachedVisibleSize = undefined;\r\n }\r\n else {\r\n this._cachedVisibleSize =\r\n typeof size === 'number' ? size : this.size;\r\n this.size = 0;\r\n }\r\n this.container.classList.toggle('visible', visible);\r\n if (this.view.setVisible) {\r\n this.view.setVisible(visible);\r\n }\r\n }\r\n dispose() {\r\n this.disposable.dispose();\r\n return this.view;\r\n }\r\n}\r\n//# sourceMappingURL=viewItem.js.map","/*---------------------------------------------------------------------------------------------\r\n * Accreditation: This file is largly based upon the MIT licenced VSCode sourcecode found at:\r\n * https://github.com/microsoft/vscode/tree/main/src/vs/base/browser/ui/splitview\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { removeClasses, addClasses, toggleClass, getElementsByTagName, } from '../dom';\r\nimport { Emitter } from '../events';\r\nimport { pushToStart, pushToEnd, firstIndex } from '../array';\r\nimport { range, clamp } from '../math';\r\nimport { ViewItem } from './viewItem';\r\nexport var Orientation;\r\n(function (Orientation) {\r\n Orientation[\"HORIZONTAL\"] = \"HORIZONTAL\";\r\n Orientation[\"VERTICAL\"] = \"VERTICAL\";\r\n})(Orientation || (Orientation = {}));\r\nexport var SashState;\r\n(function (SashState) {\r\n SashState[SashState[\"MAXIMUM\"] = 0] = \"MAXIMUM\";\r\n SashState[SashState[\"MINIMUM\"] = 1] = \"MINIMUM\";\r\n SashState[SashState[\"DISABLED\"] = 2] = \"DISABLED\";\r\n SashState[SashState[\"ENABLED\"] = 3] = \"ENABLED\";\r\n})(SashState || (SashState = {}));\r\nexport var LayoutPriority;\r\n(function (LayoutPriority) {\r\n LayoutPriority[\"Low\"] = \"low\";\r\n LayoutPriority[\"High\"] = \"high\";\r\n LayoutPriority[\"Normal\"] = \"normal\";\r\n})(LayoutPriority || (LayoutPriority = {}));\r\nexport var Sizing;\r\n(function (Sizing) {\r\n Sizing.Distribute = { type: 'distribute' };\r\n function Split(index) {\r\n return { type: 'split', index };\r\n }\r\n Sizing.Split = Split;\r\n function Invisible(cachedVisibleSize) {\r\n return { type: 'invisible', cachedVisibleSize };\r\n }\r\n Sizing.Invisible = Invisible;\r\n})(Sizing || (Sizing = {}));\r\nexport class Splitview {\r\n get size() {\r\n return this._size;\r\n }\r\n set size(value) {\r\n this._size = value;\r\n }\r\n get orthogonalSize() {\r\n return this._orthogonalSize;\r\n }\r\n set orthogonalSize(value) {\r\n this._orthogonalSize = value;\r\n }\r\n get length() {\r\n return this.viewItems.length;\r\n }\r\n get proportions() {\r\n return this._proportions ? [...this._proportions] : undefined;\r\n }\r\n get orientation() {\r\n return this._orientation;\r\n }\r\n set orientation(value) {\r\n this._orientation = value;\r\n const tmp = this.size;\r\n this.size = this.orthogonalSize;\r\n this.orthogonalSize = tmp;\r\n removeClasses(this.element, 'horizontal', 'vertical');\r\n this.element.classList.add(this.orientation == Orientation.HORIZONTAL\r\n ? 'horizontal'\r\n : 'vertical');\r\n }\r\n get minimumSize() {\r\n return this.viewItems.reduce((r, item) => r + item.minimumSize, 0);\r\n }\r\n get maximumSize() {\r\n return this.length === 0\r\n ? Number.POSITIVE_INFINITY\r\n : this.viewItems.reduce((r, item) => r + item.maximumSize, 0);\r\n }\r\n get startSnappingEnabled() {\r\n return this._startSnappingEnabled;\r\n }\r\n set startSnappingEnabled(startSnappingEnabled) {\r\n if (this._startSnappingEnabled === startSnappingEnabled) {\r\n return;\r\n }\r\n this._startSnappingEnabled = startSnappingEnabled;\r\n this.updateSashEnablement();\r\n }\r\n get endSnappingEnabled() {\r\n return this._endSnappingEnabled;\r\n }\r\n set endSnappingEnabled(endSnappingEnabled) {\r\n if (this._endSnappingEnabled === endSnappingEnabled) {\r\n return;\r\n }\r\n this._endSnappingEnabled = endSnappingEnabled;\r\n this.updateSashEnablement();\r\n }\r\n constructor(container, options) {\r\n this.container = container;\r\n this.viewItems = [];\r\n this.sashes = [];\r\n this._size = 0;\r\n this._orthogonalSize = 0;\r\n this.contentSize = 0;\r\n this._proportions = undefined;\r\n this._startSnappingEnabled = true;\r\n this._endSnappingEnabled = true;\r\n this._onDidSashEnd = new Emitter();\r\n this.onDidSashEnd = this._onDidSashEnd.event;\r\n this._onDidAddView = new Emitter();\r\n this.onDidAddView = this._onDidAddView.event;\r\n this._onDidRemoveView = new Emitter();\r\n this.onDidRemoveView = this._onDidRemoveView.event;\r\n this.resize = (index, delta, sizes = this.viewItems.map((x) => x.size), lowPriorityIndexes, highPriorityIndexes, overloadMinDelta = Number.NEGATIVE_INFINITY, overloadMaxDelta = Number.POSITIVE_INFINITY, snapBefore, snapAfter) => {\r\n if (index < 0 || index > this.viewItems.length) {\r\n return 0;\r\n }\r\n const upIndexes = range(index, -1);\r\n const downIndexes = range(index + 1, this.viewItems.length);\r\n //\r\n if (highPriorityIndexes) {\r\n for (const i of highPriorityIndexes) {\r\n pushToStart(upIndexes, i);\r\n pushToStart(downIndexes, i);\r\n }\r\n }\r\n if (lowPriorityIndexes) {\r\n for (const i of lowPriorityIndexes) {\r\n pushToEnd(upIndexes, i);\r\n pushToEnd(downIndexes, i);\r\n }\r\n }\r\n //\r\n const upItems = upIndexes.map((i) => this.viewItems[i]);\r\n const upSizes = upIndexes.map((i) => sizes[i]);\r\n //\r\n const downItems = downIndexes.map((i) => this.viewItems[i]);\r\n const downSizes = downIndexes.map((i) => sizes[i]);\r\n //\r\n const minDeltaUp = upIndexes.reduce((_, i) => _ + this.viewItems[i].minimumSize - sizes[i], 0);\r\n const maxDeltaUp = upIndexes.reduce((_, i) => _ + this.viewItems[i].maximumSize - sizes[i], 0);\r\n //\r\n const maxDeltaDown = downIndexes.length === 0\r\n ? Number.POSITIVE_INFINITY\r\n : downIndexes.reduce((_, i) => _ + sizes[i] - this.viewItems[i].minimumSize, 0);\r\n const minDeltaDown = downIndexes.length === 0\r\n ? Number.NEGATIVE_INFINITY\r\n : downIndexes.reduce((_, i) => _ + sizes[i] - this.viewItems[i].maximumSize, 0);\r\n //\r\n const minDelta = Math.max(minDeltaUp, minDeltaDown);\r\n const maxDelta = Math.min(maxDeltaDown, maxDeltaUp);\r\n //\r\n let snapped = false;\r\n if (snapBefore) {\r\n const snapView = this.viewItems[snapBefore.index];\r\n const visible = delta >= snapBefore.limitDelta;\r\n snapped = visible !== snapView.visible;\r\n snapView.setVisible(visible, snapBefore.size);\r\n }\r\n if (!snapped && snapAfter) {\r\n const snapView = this.viewItems[snapAfter.index];\r\n const visible = delta < snapAfter.limitDelta;\r\n snapped = visible !== snapView.visible;\r\n snapView.setVisible(visible, snapAfter.size);\r\n }\r\n if (snapped) {\r\n return this.resize(index, delta, sizes, lowPriorityIndexes, highPriorityIndexes, overloadMinDelta, overloadMaxDelta);\r\n }\r\n //\r\n const tentativeDelta = clamp(delta, minDelta, maxDelta);\r\n let actualDelta = 0;\r\n //\r\n let deltaUp = tentativeDelta;\r\n for (let i = 0; i < upItems.length; i++) {\r\n const item = upItems[i];\r\n const size = clamp(upSizes[i] + deltaUp, item.minimumSize, item.maximumSize);\r\n const viewDelta = size - upSizes[i];\r\n actualDelta += viewDelta;\r\n deltaUp -= viewDelta;\r\n item.size = size;\r\n }\r\n //\r\n let deltaDown = actualDelta;\r\n for (let i = 0; i < downItems.length; i++) {\r\n const item = downItems[i];\r\n const size = clamp(downSizes[i] - deltaDown, item.minimumSize, item.maximumSize);\r\n const viewDelta = size - downSizes[i];\r\n deltaDown += viewDelta;\r\n item.size = size;\r\n }\r\n //\r\n return delta;\r\n };\r\n this._orientation = options.orientation;\r\n this.element = this.createContainer();\r\n this.proportionalLayout =\r\n options.proportionalLayout === undefined\r\n ? true\r\n : !!options.proportionalLayout;\r\n this.viewContainer = this.createViewContainer();\r\n this.sashContainer = this.createSashContainer();\r\n this.element.appendChild(this.sashContainer);\r\n this.element.appendChild(this.viewContainer);\r\n this.container.appendChild(this.element);\r\n this.style(options.styles);\r\n // We have an existing set of view, add them now\r\n if (options.descriptor) {\r\n this._size = options.descriptor.size;\r\n options.descriptor.views.forEach((viewDescriptor, index) => {\r\n const sizing = viewDescriptor.visible === undefined ||\r\n viewDescriptor.visible\r\n ? viewDescriptor.size\r\n : {\r\n type: 'invisible',\r\n cachedVisibleSize: viewDescriptor.size,\r\n };\r\n const view = viewDescriptor.view;\r\n this.addView(view, sizing, index, true\r\n // true skip layout\r\n );\r\n });\r\n // Initialize content size and proportions for first layout\r\n this.contentSize = this.viewItems.reduce((r, i) => r + i.size, 0);\r\n this.saveProportions();\r\n }\r\n }\r\n style(styles) {\r\n if ((styles === null || styles === void 0 ? void 0 : styles.separatorBorder) === 'transparent') {\r\n removeClasses(this.element, 'separator-border');\r\n this.element.style.removeProperty('--dv-separator-border');\r\n }\r\n else {\r\n addClasses(this.element, 'separator-border');\r\n if (styles === null || styles === void 0 ? void 0 : styles.separatorBorder) {\r\n this.element.style.setProperty('--dv-separator-border', styles.separatorBorder);\r\n }\r\n }\r\n }\r\n isViewVisible(index) {\r\n if (index < 0 || index >= this.viewItems.length) {\r\n throw new Error('Index out of bounds');\r\n }\r\n const viewItem = this.viewItems[index];\r\n return viewItem.visible;\r\n }\r\n setViewVisible(index, visible) {\r\n if (index < 0 || index >= this.viewItems.length) {\r\n throw new Error('Index out of bounds');\r\n }\r\n toggleClass(this.container, 'visible', visible);\r\n const viewItem = this.viewItems[index];\r\n toggleClass(this.container, 'visible', visible);\r\n viewItem.setVisible(visible, viewItem.size);\r\n this.distributeEmptySpace(index);\r\n this.layoutViews();\r\n this.saveProportions();\r\n }\r\n getViewSize(index) {\r\n if (index < 0 || index >= this.viewItems.length) {\r\n return -1;\r\n }\r\n return this.viewItems[index].size;\r\n }\r\n resizeView(index, size) {\r\n if (index < 0 || index >= this.viewItems.length) {\r\n return;\r\n }\r\n const indexes = range(this.viewItems.length).filter((i) => i !== index);\r\n const lowPriorityIndexes = [\r\n ...indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.Low),\r\n index,\r\n ];\r\n const highPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.High);\r\n const item = this.viewItems[index];\r\n size = Math.round(size);\r\n size = clamp(size, item.minimumSize, Math.min(item.maximumSize, this._size));\r\n item.size = size;\r\n this.relayout(lowPriorityIndexes, highPriorityIndexes);\r\n }\r\n getViews() {\r\n return this.viewItems.map((x) => x.view);\r\n }\r\n onDidChange(item, size) {\r\n const index = this.viewItems.indexOf(item);\r\n if (index < 0 || index >= this.viewItems.length) {\r\n return;\r\n }\r\n size = typeof size === 'number' ? size : item.size;\r\n size = clamp(size, item.minimumSize, item.maximumSize);\r\n item.size = size;\r\n this.relayout([index]);\r\n }\r\n addView(view, size = { type: 'distribute' }, index = this.viewItems.length, skipLayout) {\r\n const container = document.createElement('div');\r\n container.className = 'view';\r\n container.appendChild(view.element);\r\n let viewSize;\r\n if (typeof size === 'number') {\r\n viewSize = size;\r\n }\r\n else if (size.type === 'split') {\r\n viewSize = this.getViewSize(size.index) / 2;\r\n }\r\n else if (size.type === 'invisible') {\r\n viewSize = { cachedVisibleSize: size.cachedVisibleSize };\r\n }\r\n else {\r\n viewSize = view.minimumSize;\r\n }\r\n const disposable = view.onDidChange((newSize) => this.onDidChange(viewItem, newSize.size));\r\n const viewItem = new ViewItem(container, view, viewSize, {\r\n dispose: () => {\r\n disposable.dispose();\r\n this.viewContainer.removeChild(container);\r\n },\r\n });\r\n if (index === this.viewItems.length) {\r\n this.viewContainer.appendChild(container);\r\n }\r\n else {\r\n this.viewContainer.insertBefore(container, this.viewContainer.children.item(index));\r\n }\r\n this.viewItems.splice(index, 0, viewItem);\r\n if (this.viewItems.length > 1) {\r\n //add sash\r\n const sash = document.createElement('div');\r\n sash.className = 'sash';\r\n const onPointerStart = (event) => {\r\n for (const item of this.viewItems) {\r\n item.enabled = false;\r\n }\r\n const iframes = [\r\n ...getElementsByTagName('iframe'),\r\n ...getElementsByTagName('webview'),\r\n ];\r\n for (const iframe of iframes) {\r\n iframe.style.pointerEvents = 'none';\r\n }\r\n const start = this._orientation === Orientation.HORIZONTAL\r\n ? event.clientX\r\n : event.clientY;\r\n const sashIndex = firstIndex(this.sashes, (s) => s.container === sash);\r\n //\r\n const sizes = this.viewItems.map((x) => x.size);\r\n //\r\n let snapBefore;\r\n let snapAfter;\r\n const upIndexes = range(sashIndex, -1);\r\n const downIndexes = range(sashIndex + 1, this.viewItems.length);\r\n const minDeltaUp = upIndexes.reduce((r, i) => r + (this.viewItems[i].minimumSize - sizes[i]), 0);\r\n const maxDeltaUp = upIndexes.reduce((r, i) => r + (this.viewItems[i].viewMaximumSize - sizes[i]), 0);\r\n const maxDeltaDown = downIndexes.length === 0\r\n ? Number.POSITIVE_INFINITY\r\n : downIndexes.reduce((r, i) => r +\r\n (sizes[i] - this.viewItems[i].minimumSize), 0);\r\n const minDeltaDown = downIndexes.length === 0\r\n ? Number.NEGATIVE_INFINITY\r\n : downIndexes.reduce((r, i) => r +\r\n (sizes[i] -\r\n this.viewItems[i].viewMaximumSize), 0);\r\n const minDelta = Math.max(minDeltaUp, minDeltaDown);\r\n const maxDelta = Math.min(maxDeltaDown, maxDeltaUp);\r\n const snapBeforeIndex = this.findFirstSnapIndex(upIndexes);\r\n const snapAfterIndex = this.findFirstSnapIndex(downIndexes);\r\n if (typeof snapBeforeIndex === 'number') {\r\n const snappedViewItem = this.viewItems[snapBeforeIndex];\r\n const halfSize = Math.floor(snappedViewItem.viewMinimumSize / 2);\r\n snapBefore = {\r\n index: snapBeforeIndex,\r\n limitDelta: snappedViewItem.visible\r\n ? minDelta - halfSize\r\n : minDelta + halfSize,\r\n size: snappedViewItem.size,\r\n };\r\n }\r\n if (typeof snapAfterIndex === 'number') {\r\n const snappedViewItem = this.viewItems[snapAfterIndex];\r\n const halfSize = Math.floor(snappedViewItem.viewMinimumSize / 2);\r\n snapAfter = {\r\n index: snapAfterIndex,\r\n limitDelta: snappedViewItem.visible\r\n ? maxDelta + halfSize\r\n : maxDelta - halfSize,\r\n size: snappedViewItem.size,\r\n };\r\n }\r\n const onPointerMove = (event) => {\r\n const current = this._orientation === Orientation.HORIZONTAL\r\n ? event.clientX\r\n : event.clientY;\r\n const delta = current - start;\r\n this.resize(sashIndex, delta, sizes, undefined, undefined, minDelta, maxDelta, snapBefore, snapAfter);\r\n this.distributeEmptySpace();\r\n this.layoutViews();\r\n };\r\n const end = () => {\r\n for (const item of this.viewItems) {\r\n item.enabled = true;\r\n }\r\n for (const iframe of iframes) {\r\n iframe.style.pointerEvents = 'auto';\r\n }\r\n this.saveProportions();\r\n document.removeEventListener('pointermove', onPointerMove);\r\n document.removeEventListener('pointerup', end);\r\n document.removeEventListener('pointercancel', end);\r\n this._onDidSashEnd.fire(undefined);\r\n };\r\n document.addEventListener('pointermove', onPointerMove);\r\n document.addEventListener('pointerup', end);\r\n document.addEventListener('pointercancel', end);\r\n };\r\n sash.addEventListener('pointerdown', onPointerStart);\r\n const sashItem = {\r\n container: sash,\r\n disposable: () => {\r\n sash.removeEventListener('pointerdown', onPointerStart);\r\n this.sashContainer.removeChild(sash);\r\n },\r\n };\r\n this.sashContainer.appendChild(sash);\r\n this.sashes.push(sashItem);\r\n }\r\n if (!skipLayout) {\r\n this.relayout([index]);\r\n }\r\n if (!skipLayout &&\r\n typeof size !== 'number' &&\r\n size.type === 'distribute') {\r\n this.distributeViewSizes();\r\n }\r\n this._onDidAddView.fire(view);\r\n }\r\n distributeViewSizes() {\r\n const flexibleViewItems = [];\r\n let flexibleSize = 0;\r\n for (const item of this.viewItems) {\r\n if (item.maximumSize - item.minimumSize > 0) {\r\n flexibleViewItems.push(item);\r\n flexibleSize += item.size;\r\n }\r\n }\r\n const size = Math.floor(flexibleSize / flexibleViewItems.length);\r\n for (const item of flexibleViewItems) {\r\n item.size = clamp(size, item.minimumSize, item.maximumSize);\r\n }\r\n const indexes = range(this.viewItems.length);\r\n const lowPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.Low);\r\n const highPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.High);\r\n this.relayout(lowPriorityIndexes, highPriorityIndexes);\r\n }\r\n removeView(index, sizing, skipLayout = false) {\r\n // Remove view\r\n const viewItem = this.viewItems.splice(index, 1)[0];\r\n viewItem.dispose();\r\n // Remove sash\r\n if (this.viewItems.length >= 1) {\r\n const sashIndex = Math.max(index - 1, 0);\r\n const sashItem = this.sashes.splice(sashIndex, 1)[0];\r\n sashItem.disposable();\r\n }\r\n if (!skipLayout) {\r\n this.relayout();\r\n }\r\n if (sizing && sizing.type === 'distribute') {\r\n this.distributeViewSizes();\r\n }\r\n this._onDidRemoveView.fire(viewItem.view);\r\n return viewItem.view;\r\n }\r\n getViewCachedVisibleSize(index) {\r\n if (index < 0 || index >= this.viewItems.length) {\r\n throw new Error('Index out of bounds');\r\n }\r\n const viewItem = this.viewItems[index];\r\n return viewItem.cachedVisibleSize;\r\n }\r\n moveView(from, to) {\r\n const cachedVisibleSize = this.getViewCachedVisibleSize(from);\r\n const sizing = typeof cachedVisibleSize === 'undefined'\r\n ? this.getViewSize(from)\r\n : Sizing.Invisible(cachedVisibleSize);\r\n const view = this.removeView(from, undefined, true);\r\n this.addView(view, sizing, to);\r\n }\r\n layout(size, orthogonalSize) {\r\n const previousSize = Math.max(this.size, this.contentSize);\r\n this.size = size;\r\n this.orthogonalSize = orthogonalSize;\r\n if (!this.proportions) {\r\n const indexes = range(this.viewItems.length);\r\n const lowPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.Low);\r\n const highPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.High);\r\n this.resize(this.viewItems.length - 1, size - previousSize, undefined, lowPriorityIndexes, highPriorityIndexes);\r\n }\r\n else {\r\n for (let i = 0; i < this.viewItems.length; i++) {\r\n const item = this.viewItems[i];\r\n item.size = clamp(Math.round(this.proportions[i] * size), item.minimumSize, item.maximumSize);\r\n }\r\n }\r\n this.distributeEmptySpace();\r\n this.layoutViews();\r\n }\r\n relayout(lowPriorityIndexes, highPriorityIndexes) {\r\n const contentSize = this.viewItems.reduce((r, i) => r + i.size, 0);\r\n this.resize(this.viewItems.length - 1, this._size - contentSize, undefined, lowPriorityIndexes, highPriorityIndexes);\r\n this.distributeEmptySpace();\r\n this.layoutViews();\r\n this.saveProportions();\r\n }\r\n distributeEmptySpace(lowPriorityIndex) {\r\n const contentSize = this.viewItems.reduce((r, i) => r + i.size, 0);\r\n let emptyDelta = this.size - contentSize;\r\n const indexes = range(this.viewItems.length - 1, -1);\r\n const lowPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.Low);\r\n const highPriorityIndexes = indexes.filter((i) => this.viewItems[i].priority === LayoutPriority.High);\r\n for (const index of highPriorityIndexes) {\r\n pushToStart(indexes, index);\r\n }\r\n for (const index of lowPriorityIndexes) {\r\n pushToEnd(indexes, index);\r\n }\r\n if (typeof lowPriorityIndex === 'number') {\r\n pushToEnd(indexes, lowPriorityIndex);\r\n }\r\n for (let i = 0; emptyDelta !== 0 && i < indexes.length; i++) {\r\n const item = this.viewItems[indexes[i]];\r\n const size = clamp(item.size + emptyDelta, item.minimumSize, item.maximumSize);\r\n const viewDelta = size - item.size;\r\n emptyDelta -= viewDelta;\r\n item.size = size;\r\n }\r\n }\r\n saveProportions() {\r\n if (this.proportionalLayout && this.contentSize > 0) {\r\n this._proportions = this.viewItems.map((i) => i.size / this.contentSize);\r\n }\r\n }\r\n layoutViews() {\r\n this.contentSize = this.viewItems.reduce((r, i) => r + i.size, 0);\r\n let sum = 0;\r\n const x = [];\r\n this.updateSashEnablement();\r\n for (let i = 0; i < this.viewItems.length - 1; i++) {\r\n sum += this.viewItems[i].size;\r\n x.push(sum);\r\n const offset = Math.min(Math.max(0, sum - 2), this.size - 4);\r\n if (this._orientation === Orientation.HORIZONTAL) {\r\n this.sashes[i].container.style.left = `${offset}px`;\r\n this.sashes[i].container.style.top = `0px`;\r\n }\r\n if (this._orientation === Orientation.VERTICAL) {\r\n this.sashes[i].container.style.left = `0px`;\r\n this.sashes[i].container.style.top = `${offset}px`;\r\n }\r\n }\r\n this.viewItems.forEach((view, i) => {\r\n if (this._orientation === Orientation.HORIZONTAL) {\r\n view.container.style.width = `${view.size}px`;\r\n view.container.style.left = i == 0 ? '0px' : `${x[i - 1]}px`;\r\n view.container.style.top = '';\r\n view.container.style.height = '';\r\n }\r\n if (this._orientation === Orientation.VERTICAL) {\r\n view.container.style.height = `${view.size}px`;\r\n view.container.style.top = i == 0 ? '0px' : `${x[i - 1]}px`;\r\n view.container.style.width = '';\r\n view.container.style.left = '';\r\n }\r\n view.view.layout(view.size, this._orthogonalSize);\r\n });\r\n }\r\n findFirstSnapIndex(indexes) {\r\n // visible views first\r\n for (const index of indexes) {\r\n const viewItem = this.viewItems[index];\r\n if (!viewItem.visible) {\r\n continue;\r\n }\r\n if (viewItem.snap) {\r\n return index;\r\n }\r\n }\r\n // then, hidden views\r\n for (const index of indexes) {\r\n const viewItem = this.viewItems[index];\r\n if (viewItem.visible &&\r\n viewItem.maximumSize - viewItem.minimumSize > 0) {\r\n return undefined;\r\n }\r\n if (!viewItem.visible && viewItem.snap) {\r\n return index;\r\n }\r\n }\r\n return undefined;\r\n }\r\n updateSashEnablement() {\r\n let previous = false;\r\n const collapsesDown = this.viewItems.map((i) => (previous = i.size - i.minimumSize > 0 || previous));\r\n previous = false;\r\n const expandsDown = this.viewItems.map((i) => (previous = i.maximumSize - i.size > 0 || previous));\r\n const reverseViews = [...this.viewItems].reverse();\r\n previous = false;\r\n const collapsesUp = reverseViews\r\n .map((i) => (previous = i.size - i.minimumSize > 0 || previous))\r\n .reverse();\r\n previous = false;\r\n const expandsUp = reverseViews\r\n .map((i) => (previous = i.maximumSize - i.size > 0 || previous))\r\n .reverse();\r\n let position = 0;\r\n for (let index = 0; index < this.sashes.length; index++) {\r\n const sash = this.sashes[index];\r\n const viewItem = this.viewItems[index];\r\n position += viewItem.size;\r\n const min = !(collapsesDown[index] && expandsUp[index + 1]);\r\n const max = !(expandsDown[index] && collapsesUp[index + 1]);\r\n if (min && max) {\r\n const upIndexes = range(index, -1);\r\n const downIndexes = range(index + 1, this.viewItems.length);\r\n const snapBeforeIndex = this.findFirstSnapIndex(upIndexes);\r\n const snapAfterIndex = this.findFirstSnapIndex(downIndexes);\r\n const snappedBefore = typeof snapBeforeIndex === 'number' &&\r\n !this.viewItems[snapBeforeIndex].visible;\r\n const snappedAfter = typeof snapAfterIndex === 'number' &&\r\n !this.viewItems[snapAfterIndex].visible;\r\n if (snappedBefore &&\r\n collapsesUp[index] &&\r\n (position > 0 || this.startSnappingEnabled)) {\r\n this.updateSash(sash, SashState.MINIMUM);\r\n }\r\n else if (snappedAfter &&\r\n collapsesDown[index] &&\r\n (position < this.contentSize || this.endSnappingEnabled)) {\r\n this.updateSash(sash, SashState.MAXIMUM);\r\n }\r\n else {\r\n this.updateSash(sash, SashState.DISABLED);\r\n }\r\n }\r\n else if (min && !max) {\r\n this.updateSash(sash, SashState.MINIMUM);\r\n }\r\n else if (!min && max) {\r\n this.updateSash(sash, SashState.MAXIMUM);\r\n }\r\n else {\r\n this.updateSash(sash, SashState.ENABLED);\r\n }\r\n }\r\n }\r\n updateSash(sash, state) {\r\n toggleClass(sash.container, 'disabled', state === SashState.DISABLED);\r\n toggleClass(sash.container, 'enabled', state === SashState.ENABLED);\r\n toggleClass(sash.container, 'maximum', state === SashState.MAXIMUM);\r\n toggleClass(sash.container, 'minimum', state === SashState.MINIMUM);\r\n }\r\n createViewContainer() {\r\n const element = document.createElement('div');\r\n element.className = 'view-container';\r\n return element;\r\n }\r\n createSashContainer() {\r\n const element = document.createElement('div');\r\n element.className = 'sash-container';\r\n return element;\r\n }\r\n createContainer() {\r\n const element = document.createElement('div');\r\n const orientationClassname = this._orientation === Orientation.HORIZONTAL\r\n ? 'horizontal'\r\n : 'vertical';\r\n element.className = `split-view-container ${orientationClassname}`;\r\n return element;\r\n }\r\n dispose() {\r\n this._onDidSashEnd.dispose();\r\n this._onDidAddView.dispose();\r\n this._onDidRemoveView.dispose();\r\n for (let i = 0; i < this.element.children.length; i++) {\r\n if (this.element.children.item(i) === this.element) {\r\n this.element.removeChild(this.element);\r\n break;\r\n }\r\n }\r\n for (const viewItem of this.viewItems) {\r\n viewItem.dispose();\r\n }\r\n this.element.remove();\r\n }\r\n}\r\n//# sourceMappingURL=splitview.js.map","import { Splitview, Orientation, } from '../splitview/splitview';\r\nimport { CompositeDisposable } from '../lifecycle';\r\nimport { Emitter } from '../events';\r\nimport { addClasses, removeClasses } from '../dom';\r\nexport class Paneview extends CompositeDisposable {\r\n get onDidAddView() {\r\n return this.splitview.onDidAddView;\r\n }\r\n get onDidRemoveView() {\r\n return this.splitview.onDidRemoveView;\r\n }\r\n get minimumSize() {\r\n return this.splitview.minimumSize;\r\n }\r\n get maximumSize() {\r\n return this.splitview.maximumSize;\r\n }\r\n get orientation() {\r\n return this.splitview.orientation;\r\n }\r\n get size() {\r\n return this.splitview.size;\r\n }\r\n get orthogonalSize() {\r\n return this.splitview.orthogonalSize;\r\n }\r\n constructor(container, options) {\r\n var _a;\r\n super();\r\n this.paneItems = [];\r\n this.skipAnimation = false;\r\n this._onDidChange = new Emitter();\r\n this.onDidChange = this._onDidChange.event;\r\n this._orientation = (_a = options.orientation) !== null && _a !== void 0 ? _a : Orientation.VERTICAL;\r\n this.element = document.createElement('div');\r\n this.element.className = 'pane-container';\r\n container.appendChild(this.element);\r\n this.splitview = new Splitview(this.element, {\r\n orientation: this._orientation,\r\n proportionalLayout: false,\r\n descriptor: options.descriptor,\r\n });\r\n // if we've added views from the descriptor we need to\r\n // add the panes to our Pane array and setup animation\r\n this.getPanes().forEach((pane) => {\r\n const disposable = new CompositeDisposable(pane.onDidChangeExpansionState(() => {\r\n this.setupAnimation();\r\n this._onDidChange.fire(undefined);\r\n }));\r\n const paneItem = {\r\n pane,\r\n disposable: {\r\n dispose: () => {\r\n disposable.dispose();\r\n },\r\n },\r\n };\r\n this.paneItems.push(paneItem);\r\n pane.orthogonalSize = this.splitview.orthogonalSize;\r\n });\r\n this.addDisposables(this._onDidChange, this.splitview.onDidSashEnd(() => {\r\n this._onDidChange.fire(undefined);\r\n }), this.splitview.onDidAddView(() => {\r\n this._onDidChange.fire();\r\n }), this.splitview.onDidRemoveView(() => {\r\n this._onDidChange.fire();\r\n }));\r\n }\r\n addPane(pane, size, index = this.splitview.length, skipLayout = false) {\r\n const disposable = pane.onDidChangeExpansionState(() => {\r\n this.setupAnimation();\r\n this._onDidChange.fire(undefined);\r\n });\r\n const paneItem = {\r\n pane,\r\n disposable: {\r\n dispose: () => {\r\n disposable.dispose();\r\n },\r\n },\r\n };\r\n this.paneItems.splice(index, 0, paneItem);\r\n pane.orthogonalSize = this.splitview.orthogonalSize;\r\n this.splitview.addView(pane, size, index, skipLayout);\r\n }\r\n getViewSize(index) {\r\n return this.splitview.getViewSize(index);\r\n }\r\n getPanes() {\r\n return this.splitview.getViews();\r\n }\r\n removePane(index, options = { skipDispose: false }) {\r\n const paneItem = this.paneItems.splice(index, 1)[0];\r\n this.splitview.removeView(index);\r\n if (!options.skipDispose) {\r\n paneItem.disposable.dispose();\r\n paneItem.pane.dispose();\r\n }\r\n return paneItem;\r\n }\r\n moveView(from, to) {\r\n if (from === to) {\r\n return;\r\n }\r\n const view = this.removePane(from, { skipDispose: true });\r\n this.skipAnimation = true;\r\n try {\r\n this.addPane(view.pane, view.pane.size, to, false);\r\n }\r\n finally {\r\n this.skipAnimation = false;\r\n }\r\n }\r\n layout(size, orthogonalSize) {\r\n this.splitview.layout(size, orthogonalSize);\r\n }\r\n setupAnimation() {\r\n if (this.skipAnimation) {\r\n return;\r\n }\r\n if (this.animationTimer) {\r\n clearTimeout(this.animationTimer);\r\n this.animationTimer = undefined;\r\n }\r\n addClasses(this.element, 'animated');\r\n this.animationTimer = setTimeout(() => {\r\n this.animationTimer = undefined;\r\n removeClasses(this.element, 'animated');\r\n }, 200);\r\n }\r\n dispose() {\r\n super.dispose();\r\n if (this.animationTimer) {\r\n clearTimeout(this.animationTimer);\r\n this.animationTimer = undefined;\r\n }\r\n this.paneItems.forEach((paneItem) => {\r\n paneItem.disposable.dispose();\r\n paneItem.pane.dispose();\r\n });\r\n this.paneItems = [];\r\n this.splitview.dispose();\r\n this.element.remove();\r\n }\r\n}\r\n//# sourceMappingURL=paneview.js.map","/*---------------------------------------------------------------------------------------------\r\n * Accreditation: This file is largly based upon the MIT licenced VSCode sourcecode found at:\r\n * https://github.com/microsoft/vscode/tree/main/src/vs/base/browser/ui/grid\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Orientation } from '../splitview/splitview';\r\nimport { Emitter } from '../events';\r\nexport class LeafNode {\r\n get minimumWidth() {\r\n return this.view.minimumWidth;\r\n }\r\n get maximumWidth() {\r\n return this.view.maximumWidth;\r\n }\r\n get minimumHeight() {\r\n return this.view.minimumHeight;\r\n }\r\n get maximumHeight() {\r\n return this.view.maximumHeight;\r\n }\r\n get priority() {\r\n return this.view.priority;\r\n }\r\n get snap() {\r\n return this.view.snap;\r\n }\r\n get minimumSize() {\r\n return this.orientation === Orientation.HORIZONTAL\r\n ? this.minimumHeight\r\n : this.minimumWidth;\r\n }\r\n get maximumSize() {\r\n return this.orientation === Orientation.HORIZONTAL\r\n ? this.maximumHeight\r\n : this.maximumWidth;\r\n }\r\n get minimumOrthogonalSize() {\r\n return this.orientation === Orientation.HORIZONTAL\r\n ? this.minimumWidth\r\n : this.minimumHeight;\r\n }\r\n get maximumOrthogonalSize() {\r\n return this.orientation === Orientation.HORIZONTAL\r\n ? this.maximumWidth\r\n : this.maximumHeight;\r\n }\r\n get orthogonalSize() {\r\n return this._orthogonalSize;\r\n }\r\n get size() {\r\n return this._size;\r\n }\r\n get element() {\r\n return this.view.element;\r\n }\r\n get width() {\r\n return this.orientation === Orientation.HORIZONTAL\r\n ? this.orthogonalSize\r\n : this.size;\r\n }\r\n get height() {\r\n return this.orientation === Orientation.HORIZONTAL\r\n ? this.size\r\n : this.orthogonalSize;\r\n }\r\n constructor(view, orientation, orthogonalSize, size = 0) {\r\n this.view = view;\r\n this.orientation = orientation;\r\n this._onDidChange = new Emitter();\r\n this.onDidChange = this._onDidChange.event;\r\n this._orthogonalSize = orthogonalSize;\r\n this._size = size;\r\n this._disposable = this.view.onDidChange((event) => {\r\n if (event) {\r\n this._onDidChange.fire({\r\n size: this.orientation === Orientation.VERTICAL\r\n ? event.width\r\n : event.height,\r\n orthogonalSize: this.orientation === Orientation.VERTICAL\r\n ? event.height\r\n : event.width,\r\n });\r\n }\r\n else {\r\n this._onDidChange.fire({});\r\n }\r\n });\r\n }\r\n setVisible(visible) {\r\n if (this.view.setVisible) {\r\n this.view.setVisible(visible);\r\n this._onDidChange.fire({});\r\n }\r\n }\r\n layout(size, orthogonalSize) {\r\n this._size = size;\r\n this._orthogonalSize = orthogonalSize;\r\n this.view.layout(this.width, this.height);\r\n }\r\n dispose() {\r\n this._onDidChange.dispose();\r\n this._disposable.dispose();\r\n }\r\n}\r\n//# sourceMappingURL=leafNode.js.map","/*---------------------------------------------------------------------------------------------\r\n * Accreditation: This file is largly based upon the MIT licenced VSCode sourcecode found at:\r\n * https://github.com/microsoft/vscode/tree/main/src/vs/base/browser/ui/grid\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Splitview, Orientation, LayoutPriority, } from '../splitview/splitview';\r\nimport { Emitter, Event } from '../events';\r\nimport { LeafNode } from './leafNode';\r\nimport { CompositeDisposable, Disposable } from '../lifecycle';\r\nexport class BranchNode extends CompositeDisposable {\r\n get width() {\r\n return this.orientation === Orientation.HORIZONTAL\r\n ? this.size\r\n : this.orthogonalSize;\r\n }\r\n get height() {\r\n return this.orientation === Orientation.HORIZONTAL\r\n ? this.orthogonalSize\r\n : this.size;\r\n }\r\n get minimumSize() {\r\n return this.children.length === 0\r\n ? 0\r\n : Math.max(...this.children.map((c) => c.minimumOrthogonalSize));\r\n }\r\n get maximumSize() {\r\n return Math.min(...this.children.map((c) => c.maximumOrthogonalSize));\r\n }\r\n get minimumOrthogonalSize() {\r\n return this.splitview.minimumSize;\r\n }\r\n get maximumOrthogonalSize() {\r\n return this.splitview.maximumSize;\r\n }\r\n get orthogonalSize() {\r\n return this._orthogonalSize;\r\n }\r\n get size() {\r\n return this._size;\r\n }\r\n get minimumWidth() {\r\n return this.orientation === Orientation.HORIZONTAL\r\n ? this.minimumOrthogonalSize\r\n : this.minimumSize;\r\n }\r\n get minimumHeight() {\r\n return this.orientation === Orientation.HORIZONTAL\r\n ? this.minimumSize\r\n : this.minimumOrthogonalSize;\r\n }\r\n get maximumWidth() {\r\n return this.orientation === Orientation.HORIZONTAL\r\n ? this.maximumOrthogonalSize\r\n : this.maximumSize;\r\n }\r\n get maximumHeight() {\r\n return this.orientation === Orientation.HORIZONTAL\r\n ? this.maximumSize\r\n : this.maximumOrthogonalSize;\r\n }\r\n get priority() {\r\n if (this.children.length === 0) {\r\n return LayoutPriority.Normal;\r\n }\r\n const priorities = this.children.map((c) => typeof c.priority === 'undefined'\r\n ? LayoutPriority.Normal\r\n : c.priority);\r\n if (priorities.some((p) => p === LayoutPriority.High)) {\r\n return LayoutPriority.High;\r\n }\r\n else if (priorities.some((p) => p === LayoutPriority.Low)) {\r\n return LayoutPriority.Low;\r\n }\r\n return LayoutPriority.Normal;\r\n }\r\n constructor(orientation, proportionalLayout, styles, size, orthogonalSize, childDescriptors) {\r\n super();\r\n this.orientation = orientation;\r\n this.proportionalLayout = proportionalLayout;\r\n this.styles = styles;\r\n this._childrenDisposable = Disposable.NONE;\r\n this.children = [];\r\n this._onDidChange = new Emitter();\r\n this.onDidChange = this._onDidChange.event;\r\n this._orthogonalSize = orthogonalSize;\r\n this._size = size;\r\n this.element = document.createElement('div');\r\n this.element.className = 'branch-node';\r\n if (!childDescriptors) {\r\n this.splitview = new Splitview(this.element, {\r\n orientation: this.orientation,\r\n proportionalLayout,\r\n styles,\r\n });\r\n this.splitview.layout(this.size, this.orthogonalSize);\r\n }\r\n else {\r\n const descriptor = {\r\n views: childDescriptors.map((childDescriptor) => {\r\n return {\r\n view: childDescriptor.node,\r\n size: childDescriptor.node.size,\r\n visible: childDescriptor.node instanceof LeafNode &&\r\n childDescriptor.visible !== undefined\r\n ? childDescriptor.visible\r\n : true,\r\n };\r\n }),\r\n size: this.orthogonalSize,\r\n };\r\n this.children = childDescriptors.map((c) => c.node);\r\n this.splitview = new Splitview(this.element, {\r\n orientation: this.orientation,\r\n descriptor,\r\n proportionalLayout,\r\n });\r\n }\r\n this.addDisposables(this._onDidChange, this.splitview.onDidSashEnd(() => {\r\n this._onDidChange.fire({});\r\n }));\r\n this.setupChildrenEvents();\r\n }\r\n setVisible(visible) {\r\n for (const child of this.children) {\r\n child.setVisible(visible);\r\n }\r\n }\r\n isChildVisible(index) {\r\n if (index < 0 || index >= this.children.length) {\r\n throw new Error('Invalid index');\r\n }\r\n return this.splitview.isViewVisible(index);\r\n }\r\n setChildVisible(index, visible) {\r\n if (index < 0 || index >= this.children.length) {\r\n throw new Error('Invalid index');\r\n }\r\n if (this.splitview.isViewVisible(index) === visible) {\r\n return;\r\n }\r\n this.splitview.setViewVisible(index, visible);\r\n }\r\n moveChild(from, to) {\r\n if (from === to) {\r\n return;\r\n }\r\n if (from < 0 || from >= this.children.length) {\r\n throw new Error('Invalid from index');\r\n }\r\n if (from < to) {\r\n to--;\r\n }\r\n this.splitview.moveView(from, to);\r\n const child = this._removeChild(from);\r\n this._addChild(child, to);\r\n }\r\n getChildSize(index) {\r\n if (index < 0 || index >= this.children.length) {\r\n throw new Error('Invalid index');\r\n }\r\n return this.splitview.getViewSize(index);\r\n }\r\n resizeChild(index, size) {\r\n if (index < 0 || index >= this.children.length) {\r\n throw new Error('Invalid index');\r\n }\r\n this.splitview.resizeView(index, size);\r\n }\r\n layout(size, orthogonalSize) {\r\n this._size = orthogonalSize;\r\n this._orthogonalSize = size;\r\n this.splitview.layout(orthogonalSize, size);\r\n }\r\n addChild(node, size, index, skipLayout) {\r\n if (index < 0 || index > this.children.length) {\r\n throw new Error('Invalid index');\r\n }\r\n this.splitview.addView(node, size, index, skipLayout);\r\n this._addChild(node, index);\r\n }\r\n getChildCachedVisibleSize(index) {\r\n if (index < 0 || index >= this.children.length) {\r\n throw new Error('Invalid index');\r\n }\r\n return this.splitview.getViewCachedVisibleSize(index);\r\n }\r\n removeChild(index, sizing) {\r\n if (index < 0 || index >= this.children.length) {\r\n throw new Error('Invalid index');\r\n }\r\n this.splitview.removeView(index, sizing);\r\n return this._removeChild(index);\r\n }\r\n _addChild(node, index) {\r\n this.children.splice(index, 0, node);\r\n this.setupChildrenEvents();\r\n }\r\n _removeChild(index) {\r\n const [child] = this.children.splice(index, 1);\r\n this.setupChildrenEvents();\r\n return child;\r\n }\r\n setupChildrenEvents() {\r\n this._childrenDisposable.dispose();\r\n this._childrenDisposable = Event.any(...this.children.map((c) => c.onDidChange))((e) => {\r\n /**\r\n * indicate a change has occured to allows any re-rendering but don't bubble\r\n * event because that was specific to this branch\r\n */\r\n this._onDidChange.fire({ size: e.orthogonalSize });\r\n });\r\n }\r\n dispose() {\r\n this._childrenDisposable.dispose();\r\n this.splitview.dispose();\r\n this.children.forEach((child) => child.dispose());\r\n super.dispose();\r\n }\r\n}\r\n//# sourceMappingURL=branchNode.js.map","/*---------------------------------------------------------------------------------------------\r\n * Accreditation: This file is largly based upon the MIT licenced VSCode sourcecode found at:\r\n * https://github.com/microsoft/vscode/tree/main/src/vs/base/browser/ui/grid\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Orientation, Sizing, } from '../splitview/splitview';\r\nimport { tail } from '../array';\r\nimport { LeafNode } from './leafNode';\r\nimport { BranchNode } from './branchNode';\r\nimport { Emitter } from '../events';\r\nimport { MutableDisposable } from '../lifecycle';\r\nfunction findLeaf(candiateNode, last) {\r\n if (candiateNode instanceof LeafNode) {\r\n return candiateNode;\r\n }\r\n if (candiateNode instanceof BranchNode) {\r\n return findLeaf(candiateNode.children[last ? candiateNode.children.length - 1 : 0], last);\r\n }\r\n throw new Error('invalid node');\r\n}\r\nfunction flipNode(node, size, orthogonalSize) {\r\n if (node instanceof BranchNode) {\r\n const result = new BranchNode(orthogonal(node.orientation), node.proportionalLayout, node.styles, size, orthogonalSize);\r\n let totalSize = 0;\r\n for (let i = node.children.length - 1; i >= 0; i--) {\r\n const child = node.children[i];\r\n const childSize = child instanceof BranchNode ? child.orthogonalSize : child.size;\r\n let newSize = node.size === 0\r\n ? 0\r\n : Math.round((size * childSize) / node.size);\r\n totalSize += newSize;\r\n // The last view to add should adjust to rounding errors\r\n if (i === 0) {\r\n newSize += size - totalSize;\r\n }\r\n result.addChild(flipNode(child, orthogonalSize, newSize), newSize, 0, true);\r\n }\r\n return result;\r\n }\r\n else {\r\n return new LeafNode(node.view, orthogonal(node.orientation), orthogonalSize);\r\n }\r\n}\r\nexport function indexInParent(element) {\r\n const parentElement = element.parentElement;\r\n if (!parentElement) {\r\n throw new Error('Invalid grid element');\r\n }\r\n let el = parentElement.firstElementChild;\r\n let index = 0;\r\n while (el !== element && el !== parentElement.lastElementChild && el) {\r\n el = el.nextElementSibling;\r\n index++;\r\n }\r\n return index;\r\n}\r\n/**\r\n * Find the grid location of a specific DOM element by traversing the parent\r\n * chain and finding each child index on the way.\r\n *\r\n * This will break as soon as DOM structures of the Splitview or Gridview change.\r\n */\r\nexport function getGridLocation(element) {\r\n const parentElement = element.parentElement;\r\n if (!parentElement) {\r\n throw new Error('Invalid grid element');\r\n }\r\n if (/\\bgrid-view\\b/.test(parentElement.className)) {\r\n return [];\r\n }\r\n const index = indexInParent(parentElement);\r\n const ancestor = parentElement.parentElement.parentElement.parentElement;\r\n return [...getGridLocation(ancestor), index];\r\n}\r\nexport function getRelativeLocation(rootOrientation, location, direction) {\r\n const orientation = getLocationOrientation(rootOrientation, location);\r\n const directionOrientation = getDirectionOrientation(direction);\r\n if (orientation === directionOrientation) {\r\n const [rest, _index] = tail(location);\r\n let index = _index;\r\n if (direction === 'right' || direction === 'bottom') {\r\n index += 1;\r\n }\r\n return [...rest, index];\r\n }\r\n else {\r\n const index = direction === 'right' || direction === 'bottom' ? 1 : 0;\r\n return [...location, index];\r\n }\r\n}\r\nexport function getDirectionOrientation(direction) {\r\n return direction === 'top' || direction === 'bottom'\r\n ? Orientation.VERTICAL\r\n : Orientation.HORIZONTAL;\r\n}\r\nexport function getLocationOrientation(rootOrientation, location) {\r\n return location.length % 2 === 0\r\n ? orthogonal(rootOrientation)\r\n : rootOrientation;\r\n}\r\nexport const orthogonal = (orientation) => orientation === Orientation.HORIZONTAL\r\n ? Orientation.VERTICAL\r\n : Orientation.HORIZONTAL;\r\nexport function isGridBranchNode(node) {\r\n return !!node.children;\r\n}\r\nconst serializeBranchNode = (node, orientation) => {\r\n const size = orientation === Orientation.VERTICAL ? node.box.width : node.box.height;\r\n if (!isGridBranchNode(node)) {\r\n if (typeof node.cachedVisibleSize === 'number') {\r\n return {\r\n type: 'leaf',\r\n data: node.view.toJSON(),\r\n size: node.cachedVisibleSize,\r\n visible: false,\r\n };\r\n }\r\n return { type: 'leaf', data: node.view.toJSON(), size };\r\n }\r\n return {\r\n type: 'branch',\r\n data: node.children.map((c) => serializeBranchNode(c, orthogonal(orientation))),\r\n size,\r\n };\r\n};\r\nexport class Gridview {\r\n get length() {\r\n return this._root ? this._root.children.length : 0;\r\n }\r\n get orientation() {\r\n return this.root.orientation;\r\n }\r\n set orientation(orientation) {\r\n if (this.root.orientation === orientation) {\r\n return;\r\n }\r\n const { size, orthogonalSize } = this.root;\r\n this.root = flipNode(this.root, orthogonalSize, size);\r\n this.root.layout(size, orthogonalSize);\r\n }\r\n get width() {\r\n return this.root.width;\r\n }\r\n get height() {\r\n return this.root.height;\r\n }\r\n get minimumWidth() {\r\n return this.root.minimumWidth;\r\n }\r\n get minimumHeight() {\r\n return this.root.minimumHeight;\r\n }\r\n get maximumWidth() {\r\n return this.root.maximumHeight;\r\n }\r\n get maximumHeight() {\r\n return this.root.maximumHeight;\r\n }\r\n serialize() {\r\n const root = serializeBranchNode(this.getView(), this.orientation);\r\n return {\r\n root,\r\n width: this.width,\r\n height: this.height,\r\n orientation: this.orientation,\r\n };\r\n }\r\n dispose() {\r\n this.disposable.dispose();\r\n this._onDidChange.dispose();\r\n this.root.dispose();\r\n this.element.remove();\r\n }\r\n clear() {\r\n const orientation = this.root.orientation;\r\n this.root = new BranchNode(orientation, this.proportionalLayout, this.styles, this.root.size, this.root.orthogonalSize);\r\n }\r\n deserialize(json, deserializer) {\r\n const orientation = json.orientation;\r\n const height = orientation === Orientation.VERTICAL ? json.height : json.width;\r\n this._deserialize(json.root, orientation, deserializer, height);\r\n }\r\n _deserialize(root, orientation, deserializer, orthogonalSize) {\r\n this.root = this._deserializeNode(root, orientation, deserializer, orthogonalSize);\r\n }\r\n _deserializeNode(node, orientation, deserializer, orthogonalSize) {\r\n let result;\r\n if (node.type === 'branch') {\r\n const serializedChildren = node.data;\r\n const children = serializedChildren.map((serializedChild) => {\r\n return {\r\n node: this._deserializeNode(serializedChild, orthogonal(orientation), deserializer, node.size),\r\n visible: serializedChild.visible,\r\n };\r\n });\r\n result = new BranchNode(orientation, this.proportionalLayout, this.styles, node.size, // <- orthogonal size - flips at each depth\r\n orthogonalSize, // <- size - flips at each depth\r\n children);\r\n }\r\n else {\r\n result = new LeafNode(deserializer.fromJSON(node), orientation, orthogonalSize, node.size);\r\n }\r\n return result;\r\n }\r\n get root() {\r\n return this._root;\r\n }\r\n set root(root) {\r\n const oldRoot = this._root;\r\n if (oldRoot) {\r\n oldRoot.dispose();\r\n this.element.removeChild(oldRoot.element);\r\n }\r\n this._root = root;\r\n this.element.appendChild(this._root.element);\r\n this.disposable.value = this._root.onDidChange((e) => {\r\n this._onDidChange.fire(e);\r\n });\r\n }\r\n /**\r\n * If the root is orientated as a VERTICAL node then nest the existing root within a new HORIZIONTAL root node\r\n * If the root is orientated as a HORIZONTAL node then nest the existing root within a new VERITCAL root node\r\n */\r\n insertOrthogonalSplitviewAtRoot() {\r\n if (!this._root) {\r\n return;\r\n }\r\n const oldRoot = this.root;\r\n oldRoot.element.remove();\r\n this._root = new BranchNode(orthogonal(oldRoot.orientation), this.proportionalLayout, this.styles, this.root.orthogonalSize, this.root.size);\r\n if (oldRoot.children.length === 0) {\r\n // no data so no need to add anything back in\r\n }\r\n else if (oldRoot.children.length === 1) {\r\n // can remove one level of redundant branching if there is only a single child\r\n const childReference = oldRoot.children[0];\r\n const child = oldRoot.removeChild(0); // remove to prevent disposal when disposing of unwanted root\r\n child.dispose();\r\n oldRoot.dispose();\r\n this._root.addChild(\r\n /**\r\n * the child node will have the same orientation as the new root since\r\n * we are removing the inbetween node.\r\n * the entire 'tree' must be flipped recursively to ensure that the orientation\r\n * flips at each level\r\n */\r\n flipNode(childReference, childReference.orthogonalSize, childReference.size), Sizing.Distribute, 0);\r\n }\r\n else {\r\n this._root.addChild(oldRoot, Sizing.Distribute, 0);\r\n }\r\n this.element.appendChild(this._root.element);\r\n this.disposable.value = this._root.onDidChange((e) => {\r\n this._onDidChange.fire(e);\r\n });\r\n }\r\n next(location) {\r\n return this.progmaticSelect(location);\r\n }\r\n previous(location) {\r\n return this.progmaticSelect(location, true);\r\n }\r\n getView(location) {\r\n const node = location ? this.getNode(location)[1] : this.root;\r\n return this._getViews(node, this.orientation);\r\n }\r\n _getViews(node, orientation, cachedVisibleSize) {\r\n const box = { height: node.height, width: node.width };\r\n if (node instanceof LeafNode) {\r\n return { box, view: node.view, cachedVisibleSize };\r\n }\r\n const children = [];\r\n for (let i = 0; i < node.children.length; i++) {\r\n const child = node.children[i];\r\n const nodeCachedVisibleSize = node.getChildCachedVisibleSize(i);\r\n children.push(this._getViews(child, orthogonal(orientation), nodeCachedVisibleSize));\r\n }\r\n return { box, children };\r\n }\r\n progmaticSelect(location, reverse = false) {\r\n const [path, node] = this.getNode(location);\r\n if (!(node instanceof LeafNode)) {\r\n throw new Error('invalid location');\r\n }\r\n for (let i = path.length - 1; i > -1; i--) {\r\n const n = path[i];\r\n const l = location[i] || 0;\r\n const canProgressInCurrentLevel = reverse\r\n ? l - 1 > -1\r\n : l + 1 < n.children.length;\r\n if (canProgressInCurrentLevel) {\r\n return findLeaf(n.children[reverse ? l - 1 : l + 1], reverse);\r\n }\r\n }\r\n return findLeaf(this.root, reverse);\r\n }\r\n constructor(proportionalLayout, styles, orientation) {\r\n this.proportionalLayout = proportionalLayout;\r\n this.styles = styles;\r\n this.disposable = new MutableDisposable();\r\n this._onDidChange = new Emitter();\r\n this.onDidChange = this._onDidChange.event;\r\n this.element = document.createElement('div');\r\n this.element.className = 'grid-view';\r\n this.root = new BranchNode(orientation, proportionalLayout, styles, 0, 0);\r\n }\r\n isViewVisible(location) {\r\n const [rest, index] = tail(location);\r\n const [, parent] = this.getNode(rest);\r\n if (!(parent instanceof BranchNode)) {\r\n throw new Error('Invalid from location');\r\n }\r\n return parent.isChildVisible(index);\r\n }\r\n setViewVisible(location, visible) {\r\n const [rest, index] = tail(location);\r\n const [, parent] = this.getNode(rest);\r\n if (!(parent instanceof BranchNode)) {\r\n throw new Error('Invalid from location');\r\n }\r\n parent.setChildVisible(index, visible);\r\n }\r\n moveView(parentLocation, from, to) {\r\n const [, parent] = this.getNode(parentLocation);\r\n if (!(parent instanceof BranchNode)) {\r\n throw new Error('Invalid location');\r\n }\r\n parent.moveChild(from, to);\r\n }\r\n addView(view, size, location) {\r\n const [rest, index] = tail(location);\r\n const [pathToParent, parent] = this.getNode(rest);\r\n if (parent instanceof BranchNode) {\r\n const node = new LeafNode(view, orthogonal(parent.orientation), parent.orthogonalSize);\r\n parent.addChild(node, size, index);\r\n }\r\n else {\r\n const [grandParent, ..._] = [...pathToParent].reverse();\r\n const [parentIndex, ...__] = [...rest].reverse();\r\n let newSiblingSize = 0;\r\n const newSiblingCachedVisibleSize = grandParent.getChildCachedVisibleSize(parentIndex);\r\n if (typeof newSiblingCachedVisibleSize === 'number') {\r\n newSiblingSize = Sizing.Invisible(newSiblingCachedVisibleSize);\r\n }\r\n const child = grandParent.removeChild(parentIndex);\r\n child.dispose();\r\n const newParent = new BranchNode(parent.orientation, this.proportionalLayout, this.styles, parent.size, parent.orthogonalSize);\r\n grandParent.addChild(newParent, parent.size, parentIndex);\r\n const newSibling = new LeafNode(parent.view, grandParent.orientation, parent.size);\r\n newParent.addChild(newSibling, newSiblingSize, 0);\r\n if (typeof size !== 'number' && size.type === 'split') {\r\n size = { type: 'split', index: 0 };\r\n }\r\n const node = new LeafNode(view, grandParent.orientation, parent.size);\r\n newParent.addChild(node, size, index);\r\n }\r\n }\r\n remove(view, sizing) {\r\n const location = getGridLocation(view.element);\r\n return this.removeView(location, sizing);\r\n }\r\n removeView(location, sizing) {\r\n const [rest, index] = tail(location);\r\n const [pathToParent, parent] = this.getNode(rest);\r\n if (!(parent instanceof BranchNode)) {\r\n throw new Error('Invalid location');\r\n }\r\n const nodeToRemove = parent.children[index];\r\n if (!(nodeToRemove instanceof LeafNode)) {\r\n throw new Error('Invalid location');\r\n }\r\n parent.removeChild(index, sizing);\r\n nodeToRemove.dispose();\r\n if (parent.children.length !== 1) {\r\n return nodeToRemove.view;\r\n }\r\n // if the parent has only one child and we know the parent is a BranchNode we can make the tree\r\n // more efficiently spaced by replacing the parent BranchNode with the child.\r\n // if that child is a LeafNode then we simply replace the BranchNode with the child otherwise if the child\r\n // is a BranchNode too we should spread it's children into the grandparent.\r\n // refer to the remaining child as the sibling\r\n const sibling = parent.children[0];\r\n if (pathToParent.length === 0) {\r\n // if the parent is root\r\n if (sibling instanceof LeafNode) {\r\n // if the sibling is a leaf node no action is required\r\n return nodeToRemove.view;\r\n }\r\n // otherwise the sibling is a branch node. since the parent is the root and the root has only one child\r\n // which is a branch node we can just set this branch node to be the new root node\r\n // for good housekeeping we'll removing the sibling from it's existing tree\r\n parent.removeChild(0, sizing);\r\n // and set that sibling node to be root\r\n this.root = sibling;\r\n return nodeToRemove.view;\r\n }\r\n // otherwise the parent is apart of a large sub-tree\r\n const [grandParent, ..._] = [...pathToParent].reverse();\r\n const [parentIndex, ...__] = [...rest].reverse();\r\n const isSiblingVisible = parent.isChildVisible(0);\r\n // either way we need to remove the sibling from it's existing tree\r\n parent.removeChild(0, sizing);\r\n // note the sizes of all of the grandparents children\r\n const sizes = grandParent.children.map((_size, i) => grandParent.getChildSize(i));\r\n // remove the parent from the grandparent since we are moving the sibling to take the parents place\r\n // this parent is no longer used and can be disposed of\r\n grandParent.removeChild(parentIndex, sizing).dispose();\r\n if (sibling instanceof BranchNode) {\r\n // replace the parent with the siblings children\r\n sizes.splice(parentIndex, 1, ...sibling.children.map((c) => c.size));\r\n // and add those siblings to the grandparent\r\n for (let i = 0; i < sibling.children.length; i++) {\r\n const child = sibling.children[i];\r\n grandParent.addChild(child, child.size, parentIndex + i);\r\n }\r\n }\r\n else {\r\n // otherwise create a new leaf node and add that to the grandparent\r\n const newSibling = new LeafNode(sibling.view, orthogonal(sibling.orientation), sibling.size);\r\n const siblingSizing = isSiblingVisible\r\n ? sibling.orthogonalSize\r\n : Sizing.Invisible(sibling.orthogonalSize);\r\n grandParent.addChild(newSibling, siblingSizing, parentIndex);\r\n }\r\n // the containing node of the sibling is no longer required and can be disposed of\r\n sibling.dispose();\r\n // resize everything\r\n for (let i = 0; i < sizes.length; i++) {\r\n grandParent.resizeChild(i, sizes[i]);\r\n }\r\n return nodeToRemove.view;\r\n }\r\n layout(width, height) {\r\n const [size, orthogonalSize] = this.root.orientation === Orientation.HORIZONTAL\r\n ? [height, width]\r\n : [width, height];\r\n this.root.layout(size, orthogonalSize);\r\n }\r\n getNode(location, node = this.root, path = []) {\r\n if (location.length === 0) {\r\n return [path, node];\r\n }\r\n if (!(node instanceof BranchNode)) {\r\n throw new Error('Invalid location');\r\n }\r\n const [index, ...rest] = location;\r\n if (index < 0 || index >= node.children.length) {\r\n throw new Error('Invalid location');\r\n }\r\n const child = node.children[index];\r\n path.push(node);\r\n return this.getNode(rest, child, path);\r\n }\r\n}\r\n//# sourceMappingURL=gridview.js.map","import { Emitter } from '../events';\r\nexport class SplitviewApi {\r\n get minimumSize() {\r\n return this.component.minimumSize;\r\n }\r\n get maximumSize() {\r\n return this.component.maximumSize;\r\n }\r\n get height() {\r\n return this.component.height;\r\n }\r\n get width() {\r\n return this.component.width;\r\n }\r\n get length() {\r\n return this.component.length;\r\n }\r\n get orientation() {\r\n return this.component.orientation;\r\n }\r\n get panels() {\r\n return this.component.panels;\r\n }\r\n get onDidLayoutFromJSON() {\r\n return this.component.onDidLayoutFromJSON;\r\n }\r\n get onDidLayoutChange() {\r\n return this.component.onDidLayoutChange;\r\n }\r\n get onDidAddView() {\r\n return this.component.onDidAddView;\r\n }\r\n get onDidRemoveView() {\r\n return this.component.onDidRemoveView;\r\n }\r\n constructor(component) {\r\n this.component = component;\r\n }\r\n updateOptions(options) {\r\n this.component.updateOptions(options);\r\n }\r\n removePanel(panel, sizing) {\r\n this.component.removePanel(panel, sizing);\r\n }\r\n focus() {\r\n this.component.focus();\r\n }\r\n getPanel(id) {\r\n return this.component.getPanel(id);\r\n }\r\n layout(width, height) {\r\n return this.component.layout(width, height);\r\n }\r\n addPanel(options) {\r\n return this.component.addPanel(options);\r\n }\r\n movePanel(from, to) {\r\n this.component.movePanel(from, to);\r\n }\r\n fromJSON(data) {\r\n this.component.fromJSON(data);\r\n }\r\n toJSON() {\r\n return this.component.toJSON();\r\n }\r\n clear() {\r\n this.component.clear();\r\n }\r\n}\r\nexport class PaneviewApi {\r\n get minimumSize() {\r\n return this.component.minimumSize;\r\n }\r\n get maximumSize() {\r\n return this.component.maximumSize;\r\n }\r\n get height() {\r\n return this.component.height;\r\n }\r\n get width() {\r\n return this.component.width;\r\n }\r\n get panels() {\r\n return this.component.panels;\r\n }\r\n get onDidLayoutChange() {\r\n return this.component.onDidLayoutChange;\r\n }\r\n get onDidLayoutFromJSON() {\r\n return this.component.onDidLayoutFromJSON;\r\n }\r\n get onDidAddView() {\r\n return this.component.onDidAddView;\r\n }\r\n get onDidRemoveView() {\r\n return this.component.onDidRemoveView;\r\n }\r\n get onDidDrop() {\r\n const emitter = new Emitter();\r\n const disposable = this.component.onDidDrop((e) => {\r\n emitter.fire(Object.assign(Object.assign({}, e), { api: this }));\r\n });\r\n emitter.dispose = () => {\r\n disposable.dispose();\r\n emitter.dispose();\r\n };\r\n return emitter.event;\r\n }\r\n constructor(component) {\r\n this.component = component;\r\n }\r\n removePanel(panel) {\r\n this.component.removePanel(panel);\r\n }\r\n getPanel(id) {\r\n return this.component.getPanel(id);\r\n }\r\n movePanel(from, to) {\r\n this.component.movePanel(from, to);\r\n }\r\n focus() {\r\n this.component.focus();\r\n }\r\n layout(width, height) {\r\n this.component.layout(width, height);\r\n }\r\n addPanel(options) {\r\n return this.component.addPanel(options);\r\n }\r\n fromJSON(data) {\r\n this.component.fromJSON(data);\r\n }\r\n toJSON() {\r\n return this.component.toJSON();\r\n }\r\n clear() {\r\n this.component.clear();\r\n }\r\n}\r\nexport class GridviewApi {\r\n get minimumHeight() {\r\n return this.component.minimumHeight;\r\n }\r\n get maximumHeight() {\r\n return this.component.maximumHeight;\r\n }\r\n get minimumWidth() {\r\n return this.component.minimumWidth;\r\n }\r\n get maximumWidth() {\r\n return this.component.maximumWidth;\r\n }\r\n get width() {\r\n return this.component.width;\r\n }\r\n get height() {\r\n return this.component.height;\r\n }\r\n get onDidLayoutChange() {\r\n return this.component.onDidLayoutChange;\r\n }\r\n get onDidAddPanel() {\r\n return this.component.onDidAddGroup;\r\n }\r\n get onDidRemovePanel() {\r\n return this.component.onDidRemoveGroup;\r\n }\r\n get onDidActivePanelChange() {\r\n return this.component.onDidActiveGroupChange;\r\n }\r\n get onDidLayoutFromJSON() {\r\n return this.component.onDidLayoutFromJSON;\r\n }\r\n get panels() {\r\n return this.component.groups;\r\n }\r\n get orientation() {\r\n return this.component.orientation;\r\n }\r\n set orientation(value) {\r\n this.component.updateOptions({ orientation: value });\r\n }\r\n constructor(component) {\r\n this.component = component;\r\n }\r\n focus() {\r\n this.component.focus();\r\n }\r\n layout(width, height, force = false) {\r\n this.component.layout(width, height, force);\r\n }\r\n addPanel(options) {\r\n return this.component.addPanel(options);\r\n }\r\n removePanel(panel, sizing) {\r\n this.component.removePanel(panel, sizing);\r\n }\r\n movePanel(panel, options) {\r\n this.component.movePanel(panel, options);\r\n }\r\n getPanel(id) {\r\n return this.component.getPanel(id);\r\n }\r\n fromJSON(data) {\r\n return this.component.fromJSON(data);\r\n }\r\n toJSON() {\r\n return this.component.toJSON();\r\n }\r\n clear() {\r\n this.component.clear();\r\n }\r\n}\r\nexport class DockviewApi {\r\n get id() {\r\n return this.component.id;\r\n }\r\n get width() {\r\n return this.component.width;\r\n }\r\n get height() {\r\n return this.component.height;\r\n }\r\n get minimumHeight() {\r\n return this.component.minimumHeight;\r\n }\r\n get maximumHeight() {\r\n return this.component.maximumHeight;\r\n }\r\n get minimumWidth() {\r\n return this.component.minimumWidth;\r\n }\r\n get maximumWidth() {\r\n return this.component.maximumWidth;\r\n }\r\n get size() {\r\n return this.component.size;\r\n }\r\n get totalPanels() {\r\n return this.component.totalPanels;\r\n }\r\n get onDidActiveGroupChange() {\r\n return this.component.onDidActiveGroupChange;\r\n }\r\n get onDidAddGroup() {\r\n return this.component.onDidAddGroup;\r\n }\r\n get onDidRemoveGroup() {\r\n return this.component.onDidRemoveGroup;\r\n }\r\n get onDidActivePanelChange() {\r\n return this.component.onDidActivePanelChange;\r\n }\r\n get onDidAddPanel() {\r\n return this.component.onDidAddPanel;\r\n }\r\n get onDidRemovePanel() {\r\n return this.component.onDidRemovePanel;\r\n }\r\n get onDidLayoutFromJSON() {\r\n return this.component.onDidLayoutFromJSON;\r\n }\r\n get onDidLayoutChange() {\r\n return this.component.onDidLayoutChange;\r\n }\r\n get onDidDrop() {\r\n return this.component.onDidDrop;\r\n }\r\n get onWillDragGroup() {\r\n return this.component.onWillDragGroup;\r\n }\r\n get onWillDragPanel() {\r\n return this.component.onWillDragPanel;\r\n }\r\n get panels() {\r\n return this.component.panels;\r\n }\r\n get groups() {\r\n return this.component.groups;\r\n }\r\n get activePanel() {\r\n return this.component.activePanel;\r\n }\r\n get activeGroup() {\r\n return this.component.activeGroup;\r\n }\r\n constructor(component) {\r\n this.component = component;\r\n }\r\n focus() {\r\n this.component.focus();\r\n }\r\n getPanel(id) {\r\n return this.component.getGroupPanel(id);\r\n }\r\n layout(width, height, force = false) {\r\n this.component.layout(width, height, force);\r\n }\r\n addPanel(options) {\r\n return this.component.addPanel(options);\r\n }\r\n removePanel(panel) {\r\n this.component.removePanel(panel);\r\n }\r\n addGroup(options) {\r\n return this.component.addGroup(options);\r\n }\r\n moveToNext(options) {\r\n this.component.moveToNext(options);\r\n }\r\n moveToPrevious(options) {\r\n this.component.moveToPrevious(options);\r\n }\r\n closeAllGroups() {\r\n return this.component.closeAllGroups();\r\n }\r\n removeGroup(group) {\r\n this.component.removeGroup(group);\r\n }\r\n getGroup(id) {\r\n return this.component.getPanel(id);\r\n }\r\n addFloatingGroup(item, coord) {\r\n return this.component.addFloatingGroup(item, coord);\r\n }\r\n fromJSON(data) {\r\n this.component.fromJSON(data);\r\n }\r\n toJSON() {\r\n return this.component.toJSON();\r\n }\r\n clear() {\r\n this.component.clear();\r\n }\r\n}\r\n//# sourceMappingURL=component.api.js.map","import { addDisposableListener } from '../events';\r\nimport { CompositeDisposable } from '../lifecycle';\r\nexport class DragAndDropObserver extends CompositeDisposable {\r\n constructor(element, callbacks) {\r\n super();\r\n this.element = element;\r\n this.callbacks = callbacks;\r\n this.target = null;\r\n this.registerListeners();\r\n }\r\n registerListeners() {\r\n this.addDisposables(addDisposableListener(this.element, 'dragenter', (e) => {\r\n this.target = e.target;\r\n this.callbacks.onDragEnter(e);\r\n }, true));\r\n this.addDisposables(addDisposableListener(this.element, 'dragover', (e) => {\r\n e.preventDefault(); // needed so that the drop event fires (https://stackoverflow.com/questions/21339924/drop-event-not-firing-in-chrome)\r\n if (this.callbacks.onDragOver) {\r\n this.callbacks.onDragOver(e);\r\n }\r\n }, true));\r\n this.addDisposables(addDisposableListener(this.element, 'dragleave', (e) => {\r\n if (this.target === e.target) {\r\n this.target = null;\r\n this.callbacks.onDragLeave(e);\r\n }\r\n }));\r\n this.addDisposables(addDisposableListener(this.element, 'dragend', (e) => {\r\n this.target = null;\r\n this.callbacks.onDragEnd(e);\r\n }));\r\n this.addDisposables(addDisposableListener(this.element, 'drop', (e) => {\r\n this.callbacks.onDrop(e);\r\n }));\r\n }\r\n}\r\n//# sourceMappingURL=dnd.js.map","import { toggleClass } from '../dom';\r\nimport { Emitter } from '../events';\r\nimport { CompositeDisposable } from '../lifecycle';\r\nimport { DragAndDropObserver } from './dnd';\r\nimport { clamp } from '../math';\r\nfunction numberOrFallback(maybeNumber, fallback) {\r\n return typeof maybeNumber === 'number' ? maybeNumber : fallback;\r\n}\r\nexport function directionToPosition(direction) {\r\n switch (direction) {\r\n case 'above':\r\n return 'top';\r\n case 'below':\r\n return 'bottom';\r\n case 'left':\r\n return 'left';\r\n case 'right':\r\n return 'right';\r\n case 'within':\r\n return 'center';\r\n default:\r\n throw new Error(`invalid direction '${direction}'`);\r\n }\r\n}\r\nexport function positionToDirection(position) {\r\n switch (position) {\r\n case 'top':\r\n return 'above';\r\n case 'bottom':\r\n return 'below';\r\n case 'left':\r\n return 'left';\r\n case 'right':\r\n return 'right';\r\n case 'center':\r\n return 'within';\r\n default:\r\n throw new Error(`invalid position '${position}'`);\r\n }\r\n}\r\nexport class Droptarget extends CompositeDisposable {\r\n get state() {\r\n return this._state;\r\n }\r\n constructor(element, options) {\r\n super();\r\n this.element = element;\r\n this.options = options;\r\n this._onDrop = new Emitter();\r\n this.onDrop = this._onDrop.event;\r\n // use a set to take advantage of #<set>.has\r\n this._acceptedTargetZonesSet = new Set(this.options.acceptedTargetZones);\r\n this.addDisposables(this._onDrop, new DragAndDropObserver(this.element, {\r\n onDragEnter: () => undefined,\r\n onDragOver: (e) => {\r\n if (this._acceptedTargetZonesSet.size === 0) {\r\n this.removeDropTarget();\r\n return;\r\n }\r\n const width = this.element.clientWidth;\r\n const height = this.element.clientHeight;\r\n if (width === 0 || height === 0) {\r\n return; // avoid div!0\r\n }\r\n const rect = e.currentTarget.getBoundingClientRect();\r\n const x = e.clientX - rect.left;\r\n const y = e.clientY - rect.top;\r\n const quadrant = this.calculateQuadrant(this._acceptedTargetZonesSet, x, y, width, height);\r\n /**\r\n * If the event has already been used by another DropTarget instance\r\n * then don't show a second drop target, only one target should be\r\n * active at any one time\r\n */\r\n if (this.isAlreadyUsed(e) || quadrant === null) {\r\n // no drop target should be displayed\r\n this.removeDropTarget();\r\n return;\r\n }\r\n if (typeof this.options.canDisplayOverlay === 'boolean') {\r\n if (!this.options.canDisplayOverlay) {\r\n this.removeDropTarget();\r\n return;\r\n }\r\n }\r\n else if (!this.options.canDisplayOverlay(e, quadrant)) {\r\n this.removeDropTarget();\r\n return;\r\n }\r\n this.markAsUsed(e);\r\n if (!this.targetElement) {\r\n this.targetElement = document.createElement('div');\r\n this.targetElement.className = 'drop-target-dropzone';\r\n this.overlayElement = document.createElement('div');\r\n this.overlayElement.className = 'drop-target-selection';\r\n this._state = 'center';\r\n this.targetElement.appendChild(this.overlayElement);\r\n this.element.classList.add('drop-target');\r\n this.element.append(this.targetElement);\r\n }\r\n this.toggleClasses(quadrant, width, height);\r\n this.setState(quadrant);\r\n },\r\n onDragLeave: () => {\r\n this.removeDropTarget();\r\n },\r\n onDragEnd: () => {\r\n this.removeDropTarget();\r\n },\r\n onDrop: (e) => {\r\n e.preventDefault();\r\n const state = this._state;\r\n this.removeDropTarget();\r\n if (state) {\r\n // only stop the propagation of the event if we are dealing with it\r\n // which is only when the target has state\r\n e.stopPropagation();\r\n this._onDrop.fire({ position: state, nativeEvent: e });\r\n }\r\n },\r\n }));\r\n }\r\n setTargetZones(acceptedTargetZones) {\r\n this._acceptedTargetZonesSet = new Set(acceptedTargetZones);\r\n }\r\n dispose() {\r\n this.removeDropTarget();\r\n super.dispose();\r\n }\r\n /**\r\n * Add a property to the event object for other potential listeners to check\r\n */\r\n markAsUsed(event) {\r\n event[Droptarget.USED_EVENT_ID] = true;\r\n }\r\n /**\r\n * Check is the event has already been used by another instance od DropTarget\r\n */\r\n isAlreadyUsed(event) {\r\n const value = event[Droptarget.USED_EVENT_ID];\r\n return typeof value === 'boolean' && value;\r\n }\r\n toggleClasses(quadrant, width, height) {\r\n var _a, _b, _c, _d;\r\n if (!this.overlayElement) {\r\n return;\r\n }\r\n const isSmallX = width < 100;\r\n const isSmallY = height < 100;\r\n const isLeft = quadrant === 'left';\r\n const isRight = quadrant === 'right';\r\n const isTop = quadrant === 'top';\r\n const isBottom = quadrant === 'bottom';\r\n const rightClass = !isSmallX && isRight;\r\n const leftClass = !isSmallX && isLeft;\r\n const topClass = !isSmallY && isTop;\r\n const bottomClass = !isSmallY && isBottom;\r\n let size = 0.5;\r\n if (((_b = (_a = this.options.overlayModel) === null || _a === void 0 ? void 0 : _a.size) === null || _b === void 0 ? void 0 : _b.type) === 'percentage') {\r\n size = clamp(this.options.overlayModel.size.value, 0, 100) / 100;\r\n }\r\n if (((_d = (_c = this.options.overlayModel) === null || _c === void 0 ? void 0 : _c.size) === null || _d === void 0 ? void 0 : _d.type) === 'pixels') {\r\n if (rightClass || leftClass) {\r\n size =\r\n clamp(0, this.options.overlayModel.size.value, width) /\r\n width;\r\n }\r\n if (topClass || bottomClass) {\r\n size =\r\n clamp(0, this.options.overlayModel.size.value, height) /\r\n height;\r\n }\r\n }\r\n const translate = (1 - size) / 2;\r\n const scale = size;\r\n let transform;\r\n if (rightClass) {\r\n transform = `translateX(${100 * translate}%) scaleX(${scale})`;\r\n }\r\n else if (leftClass) {\r\n transform = `translateX(-${100 * translate}%) scaleX(${scale})`;\r\n }\r\n else if (topClass) {\r\n transform = `translateY(-${100 * translate}%) scaleY(${scale})`;\r\n }\r\n else if (bottomClass) {\r\n transform = `translateY(${100 * translate}%) scaleY(${scale})`;\r\n }\r\n else {\r\n transform = '';\r\n }\r\n this.overlayElement.style.transform = transform;\r\n toggleClass(this.overlayElement, 'small-right', isSmallX && isRight);\r\n toggleClass(this.overlayElement, 'small-left', isSmallX && isLeft);\r\n toggleClass(this.overlayElement, 'small-top', isSmallY && isTop);\r\n toggleClass(this.overlayElement, 'small-bottom', isSmallY && isBottom);\r\n }\r\n setState(quadrant) {\r\n switch (quadrant) {\r\n case 'top':\r\n this._state = 'top';\r\n break;\r\n case 'left':\r\n this._state = 'left';\r\n break;\r\n case 'bottom':\r\n this._state = 'bottom';\r\n break;\r\n case 'right':\r\n this._state = 'right';\r\n break;\r\n case 'center':\r\n this._state = 'center';\r\n break;\r\n }\r\n }\r\n calculateQuadrant(overlayType, x, y, width, height) {\r\n var _a, _b, _c, _d, _e, _f;\r\n const isPercentage = ((_a = this.options.overlayModel) === null || _a === void 0 ? void 0 : _a.activationSize) === undefined ||\r\n ((_c = (_b = this.options.overlayModel) === null || _b === void 0 ? void 0 : _b.activationSize) === null || _c === void 0 ? void 0 : _c.type) === 'percentage';\r\n const value = numberOrFallback((_f = (_e = (_d = this.options) === null || _d === void 0 ? void 0 : _d.overlayModel) === null || _e === void 0 ? void 0 : _e.activationSize) === null || _f === void 0 ? void 0 : _f.value, 20);\r\n if (isPercentage) {\r\n return calculateQuadrantAsPercentage(overlayType, x, y, width, height, value);\r\n }\r\n return calculateQuadrantAsPixels(overlayType, x, y, width, height, value);\r\n }\r\n removeDropTarget() {\r\n if (this.targetElement) {\r\n this._state = undefined;\r\n this.element.removeChild(this.targetElement);\r\n this.targetElement = undefined;\r\n this.overlayElement = undefined;\r\n this.element.classList.remove('drop-target');\r\n }\r\n }\r\n}\r\nDroptarget.USED_EVENT_ID = '__dockview_droptarget_event_is_used__';\r\nexport function calculateQuadrantAsPercentage(overlayType, x, y, width, height, threshold) {\r\n const xp = (100 * x) / width;\r\n const yp = (100 * y) / height;\r\n if (overlayType.has('left') && xp < threshold) {\r\n return 'left';\r\n }\r\n if (overlayType.has('right') && xp > 100 - threshold) {\r\n return 'right';\r\n }\r\n if (overlayType.has('top') && yp < threshold) {\r\n return 'top';\r\n }\r\n if (overlayType.has('bottom') && yp > 100 - threshold) {\r\n return 'bottom';\r\n }\r\n if (!overlayType.has('center')) {\r\n return null;\r\n }\r\n return 'center';\r\n}\r\nexport function calculateQuadrantAsPixels(overlayType, x, y, width, height, threshold) {\r\n if (overlayType.has('left') && x < threshold) {\r\n return 'left';\r\n }\r\n if (overlayType.has('right') && x > width - threshold) {\r\n return 'right';\r\n }\r\n if (overlayType.has('top') && y < threshold) {\r\n return 'top';\r\n }\r\n if (overlayType.has('bottom') && y > height - threshold) {\r\n return 'bottom';\r\n }\r\n if (!overlayType.has('center')) {\r\n return null;\r\n }\r\n return 'center';\r\n}\r\n//# sourceMappingURL=droptarget.js.map","import { CompositeDisposable, MutableDisposable, } from '../../../lifecycle';\r\nimport { Emitter } from '../../../events';\r\nimport { trackFocus } from '../../../dom';\r\nexport class ContentContainer extends CompositeDisposable {\r\n get element() {\r\n return this._element;\r\n }\r\n constructor() {\r\n super();\r\n this.disposable = new MutableDisposable();\r\n this._onDidFocus = new Emitter();\r\n this.onDidFocus = this._onDidFocus.event;\r\n this._onDidBlur = new Emitter();\r\n this.onDidBlur = this._onDidBlur.event;\r\n this._element = document.createElement('div');\r\n this._element.className = 'content-container';\r\n this._element.tabIndex = -1;\r\n this.addDisposables(this._onDidFocus, this._onDidBlur);\r\n // for hosted containers\r\n // 1) register a drop target on the host\r\n // 2) register window dragStart events to disable pointer events\r\n // 3) register dragEnd events\r\n // 4) register mouseMove events (if no buttons are present we take this as a dragEnd event)\r\n }\r\n show() {\r\n this.element.style.display = '';\r\n }\r\n hide() {\r\n this.element.style.display = 'none';\r\n }\r\n openPanel(panel) {\r\n var _a;\r\n if (this.panel === panel) {\r\n return;\r\n }\r\n if (this.panel) {\r\n if ((_a = this.panel.view) === null || _a === void 0 ? void 0 : _a.content) {\r\n this._element.removeChild(this.panel.view.content.element);\r\n }\r\n this.panel = undefined;\r\n }\r\n this.panel = panel;\r\n const disposable = new CompositeDisposable();\r\n if (this.panel.view) {\r\n const _onDidFocus = this.panel.view.content.onDidFocus;\r\n const _onDidBlur = this.panel.view.content.onDidBlur;\r\n const focusTracker = trackFocus(this._element);\r\n disposable.addDisposables(focusTracker, focusTracker.onDidFocus(() => this._onDidFocus.fire()), focusTracker.onDidBlur(() => this._onDidBlur.fire()));\r\n if (_onDidFocus) {\r\n disposable.addDisposables(_onDidFocus(() => this._onDidFocus.fire()));\r\n }\r\n if (_onDidBlur) {\r\n disposable.addDisposables(_onDidBlur(() => this._onDidBlur.fire()));\r\n }\r\n this._element.appendChild(this.panel.view.content.element);\r\n }\r\n this.disposable.value = disposable;\r\n }\r\n layout(_width, _height) {\r\n // noop\r\n }\r\n closePanel() {\r\n var _a, _b, _c;\r\n if ((_c = (_b = (_a = this.panel) === null || _a === void 0 ? void 0 : _a.view) === null || _b === void 0 ? void 0 : _b.content) === null || _c === void 0 ? void 0 : _c.element) {\r\n this._element.removeChild(this.panel.view.content.element);\r\n this.panel = undefined;\r\n }\r\n }\r\n dispose() {\r\n this.disposable.dispose();\r\n super.dispose();\r\n }\r\n}\r\n//# sourceMappingURL=content.js.map","export var DockviewDropTargets;\r\n(function (DockviewDropTargets) {\r\n DockviewDropTargets[DockviewDropTargets[\"Tab\"] = 0] = \"Tab\";\r\n DockviewDropTargets[DockviewDropTargets[\"Panel\"] = 1] = \"Panel\";\r\n DockviewDropTargets[DockviewDropTargets[\"TabContainer\"] = 2] = \"TabContainer\";\r\n DockviewDropTargets[DockviewDropTargets[\"Edge\"] = 3] = \"Edge\";\r\n})(DockviewDropTargets || (DockviewDropTargets = {}));\r\n//# sourceMappingURL=types.js.map","import { getElementsByTagName } from '../dom';\r\nimport { addDisposableListener, Emitter } from '../events';\r\nimport { CompositeDisposable, MutableDisposable, } from '../lifecycle';\r\nexport class DragHandler extends CompositeDisposable {\r\n constructor(el) {\r\n super();\r\n this.el = el;\r\n this.dataDisposable = new MutableDisposable();\r\n this.pointerEventsDisposable = new MutableDisposable();\r\n this._onDragStart = new Emitter();\r\n this.onDragStart = this._onDragStart.event;\r\n this.addDisposables(this._onDragStart, this.dataDisposable, this.pointerEventsDisposable);\r\n this.configure();\r\n }\r\n isCancelled(_event) {\r\n return false;\r\n }\r\n configure() {\r\n this.addDisposables(this._onDragStart, addDisposableListener(this.el, 'dragstart', (event) => {\r\n if (event.defaultPrevented || this.isCancelled(event)) {\r\n event.preventDefault();\r\n return;\r\n }\r\n const iframes = [\r\n ...getElementsByTagName('iframe'),\r\n ...getElementsByTagName('webview'),\r\n ];\r\n this.pointerEventsDisposable.value = {\r\n dispose: () => {\r\n for (const iframe of iframes) {\r\n iframe.style.pointerEvents = 'auto';\r\n }\r\n },\r\n };\r\n for (const iframe of iframes) {\r\n iframe.style.pointerEvents = 'none';\r\n }\r\n this.el.classList.add('dv-dragged');\r\n setTimeout(() => this.el.classList.remove('dv-dragged'), 0);\r\n this.dataDisposable.value = this.getData(event);\r\n this._onDragStart.fire(event);\r\n if (event.dataTransfer) {\r\n event.dataTransfer.effectAllowed = 'move';\r\n const hasData = event.dataTransfer.items.length > 0;\r\n if (!hasData) {\r\n /**\r\n * Although this is not used by dockview many third party dnd libraries will check\r\n * dataTransfer.types to determine valid drag events.\r\n *\r\n * For example: in react-dnd if dataTransfer.types is not set then the dragStart event will be cancelled\r\n * through .preventDefault(). Since this is applied globally to all drag events this would break dockviews\r\n * dnd logic. You can see the code at\r\n * https://github.com/react-dnd/react-dnd/blob/main/packages/backend-html5/src/HTML5BackendImpl.ts#L542\r\n */\r\n event.dataTransfer.setData('text/plain', '__dockview_internal_drag_event__');\r\n }\r\n }\r\n }), addDisposableListener(this.el, 'dragend', () => {\r\n this.pointerEventsDisposable.dispose();\r\n this.dataDisposable.dispose();\r\n }));\r\n }\r\n}\r\n//# sourceMappingURL=abstractDragHandler.js.map","import { addDisposableListener, Emitter } from '../../../events';\r\nimport { CompositeDisposable } from '../../../lifecycle';\r\nimport { getPanelData, LocalSelectionTransfer, PanelTransfer, } from '../../../dnd/dataTransfer';\r\nimport { toggleClass } from '../../../dom';\r\nimport { DockviewDropTargets } from '../../types';\r\nimport { Droptarget } from '../../../dnd/droptarget';\r\nimport { DragHandler } from '../../../dnd/abstractDragHandler';\r\nclass TabDragHandler extends DragHandler {\r\n constructor(element, accessor, group, panel) {\r\n super(element);\r\n this.accessor = accessor;\r\n this.group = group;\r\n this.panel = panel;\r\n this.panelTransfer = LocalSelectionTransfer.getInstance();\r\n }\r\n getData(event) {\r\n this.panelTransfer.setData([new PanelTransfer(this.accessor.id, this.group.id, this.panel.id)], PanelTransfer.prototype);\r\n return {\r\n dispose: () => {\r\n this.panelTransfer.clearData(PanelTransfer.prototype);\r\n },\r\n };\r\n }\r\n}\r\nexport class Tab extends CompositeDisposable {\r\n get element() {\r\n return this._element;\r\n }\r\n constructor(panel, accessor, group) {\r\n super();\r\n this.panel = panel;\r\n this.accessor = accessor;\r\n this.group = group;\r\n this.content = undefined;\r\n this._onChanged = new Emitter();\r\n this.onChanged = this._onChanged.event;\r\n this._onDropped = new Emitter();\r\n this.onDrop = this._onDropped.event;\r\n this._onDragStart = new Emitter();\r\n this.onDragStart = this._onDragStart.event;\r\n this._element = document.createElement('div');\r\n this._element.className = 'tab';\r\n this._element.tabIndex = 0;\r\n this._element.draggable = true;\r\n toggleClass(this.element, 'inactive-tab', true);\r\n const dragHandler = new TabDragHandler(this._element, this.accessor, this.group, this.panel);\r\n this.droptarget = new Droptarget(this._element, {\r\n acceptedTargetZones: ['center'],\r\n canDisplayOverlay: (event, position) => {\r\n if (this.group.locked) {\r\n return false;\r\n }\r\n const data = getPanelData();\r\n if (data && this.accessor.id === data.viewId) {\r\n if (data.panelId === null &&\r\n data.groupId === this.group.id) {\r\n // don't allow group move to drop on self\r\n return false;\r\n }\r\n return this.panel.id !== data.panelId;\r\n }\r\n return this.group.model.canDisplayOverlay(event, position, DockviewDropTargets.Tab);\r\n },\r\n });\r\n this.addDisposables(this._onChanged, this._onDropped, this._onDragStart, dragHandler.onDragStart((event) => {\r\n this._onDragStart.fire(event);\r\n }), dragHandler, addDisposableListener(this._element, 'mousedown', (event) => {\r\n if (event.defaultPrevented) {\r\n return;\r\n }\r\n this._onChanged.fire(event);\r\n }), this.droptarget.onDrop((event) => {\r\n this._onDropped.fire(event);\r\n }), this.droptarget);\r\n }\r\n setActive(isActive) {\r\n toggleClass(this.element, 'active-tab', isActive);\r\n toggleClass(this.element, 'inactive-tab', !isActive);\r\n }\r\n setContent(part) {\r\n if (this.content) {\r\n this._element.removeChild(this.content.element);\r\n }\r\n this.content = part;\r\n this._element.appendChild(this.content.element);\r\n }\r\n dispose() {\r\n super.dispose();\r\n }\r\n}\r\n//# sourceMappingURL=tab.js.map","import { addClasses, removeClasses } from '../dom';\r\nexport function addGhostImage(dataTransfer, ghostElement) {\r\n // class dockview provides to force ghost image to be drawn on a different layer and prevent weird rendering issues\r\n addClasses(ghostElement, 'dv-dragged');\r\n document.body.appendChild(ghostElement);\r\n dataTransfer.setDragImage(ghostElement, 0, 0);\r\n setTimeout(() => {\r\n removeClasses(ghostElement, 'dv-dragged');\r\n ghostElement.remove();\r\n }, 0);\r\n}\r\n//# sourceMappingURL=ghost.js.map","import { quasiPreventDefault } from '../dom';\r\nimport { addDisposableListener } from '../events';\r\nimport { DragHandler } from './abstractDragHandler';\r\nimport { LocalSelectionTransfer, PanelTransfer } from './dataTransfer';\r\nimport { addGhostImage } from './ghost';\r\nexport class GroupDragHandler extends DragHandler {\r\n constructor(element, accessor, group) {\r\n super(element);\r\n this.accessor = accessor;\r\n this.group = group;\r\n this.panelTransfer = LocalSelectionTransfer.getInstance();\r\n this.addDisposables(addDisposableListener(element, 'mousedown', (e) => {\r\n if (e.shiftKey) {\r\n /**\r\n * You cannot call e.preventDefault() because that will prevent drag events from firing\r\n * but we also need to stop any group overlay drag events from occuring\r\n * Use a custom event marker that can be checked by the overlay drag events\r\n */\r\n quasiPreventDefault(e);\r\n }\r\n }, true));\r\n }\r\n isCancelled(_event) {\r\n if (this.group.api.isFloating && !_event.shiftKey) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n getData(dragEvent) {\r\n const dataTransfer = dragEvent.dataTransfer;\r\n this.panelTransfer.setData([new PanelTransfer(this.accessor.id, this.group.id, null)], PanelTransfer.prototype);\r\n const style = window.getComputedStyle(this.el);\r\n const bgColor = style.getPropertyValue('--dv-activegroup-visiblepanel-tab-background-color');\r\n const color = style.getPropertyValue('--dv-activegroup-visiblepanel-tab-color');\r\n if (dataTransfer) {\r\n const ghostElement = document.createElement('div');\r\n ghostElement.style.backgroundColor = bgColor;\r\n ghostElement.style.color = color;\r\n ghostElement.style.padding = '2px 8px';\r\n ghostElement.style.height = '24px';\r\n ghostElement.style.fontSize = '11px';\r\n ghostElement.style.lineHeight = '20px';\r\n ghostElement.style.borderRadius = '12px';\r\n ghostElement.style.position = 'absolute';\r\n ghostElement.textContent = `Multiple Panels (${this.group.size})`;\r\n addGhostImage(dataTransfer, ghostElement);\r\n }\r\n return {\r\n dispose: () => {\r\n this.panelTransfer.clearData(PanelTransfer.prototype);\r\n },\r\n };\r\n }\r\n}\r\n//# sourceMappingURL=groupDragHandler.js.map","import { last } from '../../../array';\r\nimport { getPanelData } from '../../../dnd/dataTransfer';\r\nimport { Droptarget } from '../../../dnd/droptarget';\r\nimport { GroupDragHandler } from '../../../dnd/groupDragHandler';\r\nimport { addDisposableListener, Emitter } from '../../../events';\r\nimport { CompositeDisposable } from '../../../lifecycle';\r\nimport { DockviewDropTargets } from '../../types';\r\nexport class VoidContainer extends CompositeDisposable {\r\n get element() {\r\n return this._element;\r\n }\r\n constructor(accessor, group) {\r\n super();\r\n this.accessor = accessor;\r\n this.group = group;\r\n this._onDrop = new Emitter();\r\n this.onDrop = this._onDrop.event;\r\n this._onDragStart = new Emitter();\r\n this.onDragStart = this._onDragStart.event;\r\n this._element = document.createElement('div');\r\n this._element.className = 'void-container';\r\n this._element.tabIndex = 0;\r\n this._element.draggable = true;\r\n this.addDisposables(this._onDrop, this._onDragStart, addDisposableListener(this._element, 'click', () => {\r\n this.accessor.doSetGroupActive(this.group);\r\n }));\r\n const handler = new GroupDragHandler(this._element, accessor, group);\r\n this.voidDropTarget = new Droptarget(this._element, {\r\n acceptedTargetZones: ['center'],\r\n canDisplayOverlay: (event, position) => {\r\n var _a;\r\n const data = getPanelData();\r\n if (data && this.accessor.id === data.viewId) {\r\n if (data.panelId === null &&\r\n data.groupId === this.group.id) {\r\n // don't allow group move to drop on self\r\n return false;\r\n }\r\n // don't show the overlay if the tab being dragged is the last panel of this group\r\n return ((_a = last(this.group.panels)) === null || _a === void 0 ? void 0 : _a.id) !== data.panelId;\r\n }\r\n return group.model.canDisplayOverlay(event, position, DockviewDropTargets.Panel);\r\n },\r\n });\r\n this.addDisposables(handler, handler.onDragStart((event) => {\r\n this._onDragStart.fire(event);\r\n }), this.voidDropTarget.onDrop((event) => {\r\n this._onDrop.fire(event);\r\n }), this.voidDropTarget);\r\n }\r\n}\r\n//# sourceMappingURL=voidContainer.js.map","import { CompositeDisposable, } from '../../../lifecycle';\r\nimport { addDisposableListener, Emitter } from '../../../events';\r\nimport { Tab } from '../tab/tab';\r\nimport { VoidContainer } from './voidContainer';\r\nimport { toggleClass } from '../../../dom';\r\nexport class TabsContainer extends CompositeDisposable {\r\n get panels() {\r\n return this.tabs.map((_) => _.value.panel.id);\r\n }\r\n get size() {\r\n return this.tabs.length;\r\n }\r\n get hidden() {\r\n return this._hidden;\r\n }\r\n set hidden(value) {\r\n this._hidden = value;\r\n this.element.style.display = value ? 'none' : '';\r\n }\r\n show() {\r\n if (!this.hidden) {\r\n this.element.style.display = '';\r\n }\r\n }\r\n hide() {\r\n this._element.style.display = 'none';\r\n }\r\n setRightActionsElement(element) {\r\n if (this.rightActions === element) {\r\n return;\r\n }\r\n if (this.rightActions) {\r\n this.rightActions.remove();\r\n this.rightActions = undefined;\r\n }\r\n if (element) {\r\n this.rightActionsContainer.appendChild(element);\r\n this.rightActions = element;\r\n }\r\n }\r\n setLeftActionsElement(element) {\r\n if (this.leftActions === element) {\r\n return;\r\n }\r\n if (this.leftActions) {\r\n this.leftActions.remove();\r\n this.leftActions = undefined;\r\n }\r\n if (element) {\r\n this.leftActionsContainer.appendChild(element);\r\n this.leftActions = element;\r\n }\r\n }\r\n get element() {\r\n return this._element;\r\n }\r\n isActive(tab) {\r\n return (this.selectedIndex > -1 &&\r\n this.tabs[this.selectedIndex].value === tab);\r\n }\r\n indexOf(id) {\r\n return this.tabs.findIndex((tab) => tab.value.panel.id === id);\r\n }\r\n constructor(accessor, group) {\r\n super();\r\n this.accessor = accessor;\r\n this.group = group;\r\n this.tabs = [];\r\n this.selectedIndex = -1;\r\n this._hidden = false;\r\n this._onDrop = new Emitter();\r\n this.onDrop = this._onDrop.event;\r\n this._onTabDragStart = new Emitter();\r\n this.onTabDragStart = this._onTabDragStart.event;\r\n this._onGroupDragStart = new Emitter();\r\n this.onGroupDragStart = this._onGroupDragStart.event;\r\n this.addDisposables(this._onDrop, this._onTabDragStart, this._onGroupDragStart);\r\n this._element = document.createElement('div');\r\n this._element.className = 'tabs-and-actions-container';\r\n toggleClass(this._element, 'dv-full-width-single-tab', this.accessor.options.singleTabMode === 'fullwidth');\r\n this.addDisposables(this.accessor.onDidAddPanel((e) => {\r\n if (e.api.group === this.group) {\r\n toggleClass(this._element, 'dv-single-tab', this.size === 1);\r\n }\r\n }), this.accessor.onDidRemovePanel((e) => {\r\n if (e.api.group === this.group) {\r\n toggleClass(this._element, 'dv-single-tab', this.size === 1);\r\n }\r\n }));\r\n this.rightActionsContainer = document.createElement('div');\r\n this.rightActionsContainer.className = 'right-actions-container';\r\n this.leftActionsContainer = document.createElement('div');\r\n this.leftActionsContainer.className = 'left-actions-container';\r\n this.tabContainer = document.createElement('div');\r\n this.tabContainer.className = 'tabs-container';\r\n this.voidContainer = new VoidContainer(this.accessor, this.group);\r\n this._element.appendChild(this.tabContainer);\r\n this._element.appendChild(this.leftActionsContainer);\r\n this._element.appendChild(this.voidContainer.element);\r\n this._element.appendChild(this.rightActionsContainer);\r\n this.addDisposables(this.voidContainer, this.voidContainer.onDragStart((event) => {\r\n this._onGroupDragStart.fire({\r\n nativeEvent: event,\r\n group: this.group,\r\n });\r\n }), this.voidContainer.onDrop((event) => {\r\n this._onDrop.fire({\r\n event: event.nativeEvent,\r\n index: this.tabs.length,\r\n });\r\n }), addDisposableListener(this.voidContainer.element, 'mousedown', (event) => {\r\n const isFloatingGroupsEnabled = !this.accessor.options.disableFloatingGroups;\r\n if (isFloatingGroupsEnabled &&\r\n event.shiftKey &&\r\n !this.group.api.isFloating) {\r\n event.preventDefault();\r\n const { top, left } = this.element.getBoundingClientRect();\r\n const { top: rootTop, left: rootLeft } = this.accessor.element.getBoundingClientRect();\r\n this.accessor.addFloatingGroup(this.group, {\r\n x: left - rootLeft + 20,\r\n y: top - rootTop + 20,\r\n }, { inDragMode: true });\r\n }\r\n }), addDisposableListener(this.tabContainer, 'mousedown', (event) => {\r\n if (event.defaultPrevented) {\r\n return;\r\n }\r\n const isLeftClick = event.button === 0;\r\n if (isLeftClick) {\r\n this.accessor.doSetGroupActive(this.group);\r\n }\r\n }));\r\n }\r\n setActive(_isGroupActive) {\r\n // noop\r\n }\r\n addTab(tab, index = this.tabs.length) {\r\n if (index < 0 || index > this.tabs.length) {\r\n throw new Error('invalid location');\r\n }\r\n this.tabContainer.insertBefore(tab.value.element, this.tabContainer.children[index]);\r\n this.tabs = [\r\n ...this.tabs.slice(0, index),\r\n tab,\r\n ...this.tabs.slice(index),\r\n ];\r\n if (this.selectedIndex < 0) {\r\n this.selectedIndex = index;\r\n }\r\n }\r\n delete(id) {\r\n const index = this.tabs.findIndex((tab) => tab.value.panel.id === id);\r\n const tabToRemove = this.tabs.splice(index, 1)[0];\r\n const { value, disposable } = tabToRemove;\r\n disposable.dispose();\r\n value.dispose();\r\n value.element.remove();\r\n }\r\n setActivePanel(panel) {\r\n this.tabs.forEach((tab) => {\r\n const isActivePanel = panel.id === tab.value.panel.id;\r\n tab.value.setActive(isActivePanel);\r\n });\r\n }\r\n openPanel(panel, index = this.tabs.length) {\r\n var _a;\r\n if (this.tabs.find((tab) => tab.value.panel.id === panel.id)) {\r\n return;\r\n }\r\n const tab = new Tab(panel, this.accessor, this.group);\r\n if (!((_a = panel.view) === null || _a === void 0 ? void 0 : _a.tab)) {\r\n throw new Error('invalid header component');\r\n }\r\n tab.setContent(panel.view.tab);\r\n const disposable = new CompositeDisposable(tab.onDragStart((event) => {\r\n this._onTabDragStart.fire({ nativeEvent: event, panel });\r\n }), tab.onChanged((event) => {\r\n var _a;\r\n const isFloatingGroupsEnabled = !this.accessor.options.disableFloatingGroups;\r\n const isFloatingWithOnePanel = this.group.api.isFloating && this.size === 1;\r\n if (isFloatingGroupsEnabled &&\r\n !isFloatingWithOnePanel &&\r\n event.shiftKey) {\r\n event.preventDefault();\r\n const panel = this.accessor.getGroupPanel(tab.panel.id);\r\n const { top, left } = tab.element.getBoundingClientRect();\r\n const { top: rootTop, left: rootLeft } = this.accessor.element.getBoundingClientRect();\r\n this.accessor.addFloatingGroup(panel, {\r\n x: left - rootLeft,\r\n y: top - rootTop,\r\n }, { inDragMode: true });\r\n return;\r\n }\r\n const alreadyFocused = panel.id === ((_a = this.group.model.activePanel) === null || _a === void 0 ? void 0 : _a.id) &&\r\n this.group.model.isContentFocused;\r\n const isLeftClick = event.button === 0;\r\n if (!isLeftClick || event.defaultPrevented) {\r\n return;\r\n }\r\n this.group.model.openPanel(panel, {\r\n skipFocus: alreadyFocused,\r\n });\r\n }), tab.onDrop((event) => {\r\n this._onDrop.fire({\r\n event: event.nativeEvent,\r\n index: this.tabs.findIndex((x) => x.value === tab),\r\n });\r\n }));\r\n const value = { value: tab, disposable };\r\n this.addTab(value, index);\r\n }\r\n closePanel(panel) {\r\n this.delete(panel.id);\r\n }\r\n dispose() {\r\n super.dispose();\r\n for (const { value, disposable } of this.tabs) {\r\n disposable.dispose();\r\n value.dispose();\r\n }\r\n this.tabs = [];\r\n }\r\n}\r\n//# sourceMappingURL=tabsContainer.js.map","import { DockviewApi } from '../api/component.api';\r\nimport { getPanelData } from '../dnd/dataTransfer';\r\nimport { Droptarget } from '../dnd/droptarget';\r\nimport { isAncestor, toggleClass } from '../dom';\r\nimport { addDisposableListener, Emitter } from '../events';\r\nimport { CompositeDisposable } from '../lifecycle';\r\nimport { ContentContainer, } from './components/panel/content';\r\nimport { TabsContainer, } from './components/titlebar/tabsContainer';\r\nimport { DockviewDropTargets } from './types';\r\nexport class DockviewGroupPanelModel extends CompositeDisposable {\r\n get element() {\r\n throw new Error('not supported');\r\n }\r\n get activePanel() {\r\n return this._activePanel;\r\n }\r\n get locked() {\r\n return this._locked;\r\n }\r\n set locked(value) {\r\n this._locked = value;\r\n toggleClass(this.container, 'locked-groupview', value === 'no-drop-target' || value);\r\n }\r\n get isActive() {\r\n return this._isGroupActive;\r\n }\r\n get panels() {\r\n return this._panels;\r\n }\r\n get size() {\r\n return this._panels.length;\r\n }\r\n get isEmpty() {\r\n return this._panels.length === 0;\r\n }\r\n get hasWatermark() {\r\n return !!(this.watermark && this.container.contains(this.watermark.element));\r\n }\r\n get header() {\r\n return this.tabsContainer;\r\n }\r\n get isContentFocused() {\r\n if (!document.activeElement) {\r\n return false;\r\n }\r\n return isAncestor(document.activeElement, this.contentContainer.element);\r\n }\r\n get isFloating() {\r\n return this._isFloating;\r\n }\r\n set isFloating(value) {\r\n this._isFloating = value;\r\n this.dropTarget.setTargetZones(value ? ['center'] : ['top', 'bottom', 'left', 'right', 'center']);\r\n toggleClass(this.container, 'dv-groupview-floating', value);\r\n this.groupPanel.api._onDidFloatingStateChange.fire({\r\n isFloating: this.isFloating,\r\n });\r\n }\r\n constructor(container, accessor, id, options, groupPanel) {\r\n super();\r\n this.container = container;\r\n this.accessor = accessor;\r\n this.id = id;\r\n this.options = options;\r\n this.groupPanel = groupPanel;\r\n this._isGroupActive = false;\r\n this._locked = false;\r\n this._isFloating = false;\r\n this.mostRecentlyUsed = [];\r\n this._onDidChange = new Emitter();\r\n this.onDidChange = this._onDidChange.event;\r\n this._width = 0;\r\n this._height = 0;\r\n this._panels = [];\r\n this._onMove = new Emitter();\r\n this.onMove = this._onMove.event;\r\n this._onDidDrop = new Emitter();\r\n this.onDidDrop = this._onDidDrop.event;\r\n this._onTabDragStart = new Emitter();\r\n this.onTabDragStart = this._onTabDragStart.event;\r\n this._onGroupDragStart = new Emitter();\r\n this.onGroupDragStart = this._onGroupDragStart.event;\r\n this._onDidAddPanel = new Emitter();\r\n this.onDidAddPanel = this._onDidAddPanel.event;\r\n this._onDidRemovePanel = new Emitter();\r\n this.onDidRemovePanel = this._onDidRemovePanel.event;\r\n this._onDidActivePanelChange = new Emitter();\r\n this.onDidActivePanelChange = this._onDidActivePanelChange.event;\r\n toggleClass(this.container, 'groupview', true);\r\n this.tabsContainer = new TabsContainer(this.accessor, this.groupPanel);\r\n this.contentContainer = new ContentContainer();\r\n this.dropTarget = new Droptarget(this.contentContainer.element, {\r\n acceptedTargetZones: ['top', 'bottom', 'left', 'right', 'center'],\r\n canDisplayOverlay: (event, position) => {\r\n if (this.locked === 'no-drop-target' ||\r\n (this.locked && position === 'center')) {\r\n return false;\r\n }\r\n const data = getPanelData();\r\n if (!data && event.shiftKey && !this.isFloating) {\r\n return false;\r\n }\r\n if (data && data.viewId === this.accessor.id) {\r\n if (data.groupId === this.id) {\r\n if (position === 'center') {\r\n // don't allow to drop on self for center position\r\n return false;\r\n }\r\n if (data.panelId === null) {\r\n // don't allow group move to drop anywhere on self\r\n return false;\r\n }\r\n }\r\n const groupHasOnePanelAndIsActiveDragElement = this._panels.length === 1 && data.groupId === this.id;\r\n return !groupHasOnePanelAndIsActiveDragElement;\r\n }\r\n return this.canDisplayOverlay(event, position, DockviewDropTargets.Panel);\r\n },\r\n });\r\n container.append(this.tabsContainer.element, this.contentContainer.element);\r\n this.header.hidden = !!options.hideHeader;\r\n this.locked = options.locked || false;\r\n this.addDisposables(this._onTabDragStart, this._onGroupDragStart, this.tabsContainer.onTabDragStart((event) => {\r\n this._onTabDragStart.fire(event);\r\n }), this.tabsContainer.onGroupDragStart((event) => {\r\n this._onGroupDragStart.fire(event);\r\n }), this.tabsContainer.onDrop((event) => {\r\n this.handleDropEvent(event.event, 'center', event.index);\r\n }), this.contentContainer.onDidFocus(() => {\r\n this.accessor.doSetGroupActive(this.groupPanel, true);\r\n }), this.contentContainer.onDidBlur(() => {\r\n // noop\r\n }), this.dropTarget.onDrop((event) => {\r\n this.handleDropEvent(event.nativeEvent, event.position);\r\n }), this._onMove, this._onDidChange, this._onDidDrop, this._onDidAddPanel, this._onDidRemovePanel, this._onDidActivePanelChange);\r\n }\r\n initialize() {\r\n var _a, _b;\r\n if ((_a = this.options) === null || _a === void 0 ? void 0 : _a.panels) {\r\n this.options.panels.forEach((panel) => {\r\n this.doAddPanel(panel);\r\n });\r\n }\r\n if ((_b = this.options) === null || _b === void 0 ? void 0 : _b.activePanel) {\r\n this.openPanel(this.options.activePanel);\r\n }\r\n // must be run after the constructor otherwise this.parent may not be\r\n // correctly initialized\r\n this.setActive(this.isActive, true, true);\r\n this.updateContainer();\r\n if (this.accessor.options.createRightHeaderActionsElement) {\r\n this._rightHeaderActions =\r\n this.accessor.options.createRightHeaderActionsElement(this.groupPanel);\r\n this.addDisposables(this._rightHeaderActions);\r\n this._rightHeaderActions.init({\r\n containerApi: new DockviewApi(this.accessor),\r\n api: this.groupPanel.api,\r\n });\r\n this.tabsContainer.setRightActionsElement(this._rightHeaderActions.element);\r\n }\r\n if (this.accessor.options.createLeftHeaderActionsElement) {\r\n this._leftHeaderActions =\r\n this.accessor.options.createLeftHeaderActionsElement(this.groupPanel);\r\n this.addDisposables(this._leftHeaderActions);\r\n this._leftHeaderActions.init({\r\n containerApi: new DockviewApi(this.accessor),\r\n api: this.groupPanel.api,\r\n });\r\n this.tabsContainer.setLeftActionsElement(this._leftHeaderActions.element);\r\n }\r\n }\r\n indexOf(panel) {\r\n return this.tabsContainer.indexOf(panel.id);\r\n }\r\n toJSON() {\r\n var _a;\r\n const result = {\r\n views: this.tabsContainer.panels,\r\n activeView: (_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.id,\r\n id: this.id,\r\n };\r\n if (this.locked !== false) {\r\n result.locked = this.locked;\r\n }\r\n if (this.header.hidden) {\r\n result.hideHeader = true;\r\n }\r\n return result;\r\n }\r\n moveToNext(options) {\r\n if (!options) {\r\n options = {};\r\n }\r\n if (!options.panel) {\r\n options.panel = this.activePanel;\r\n }\r\n const index = options.panel ? this.panels.indexOf(options.panel) : -1;\r\n let normalizedIndex;\r\n if (index < this.panels.length - 1) {\r\n normalizedIndex = index + 1;\r\n }\r\n else if (!options.suppressRoll) {\r\n normalizedIndex = 0;\r\n }\r\n else {\r\n return;\r\n }\r\n this.openPanel(this.panels[normalizedIndex]);\r\n }\r\n moveToPrevious(options) {\r\n if (!options) {\r\n options = {};\r\n }\r\n if (!options.panel) {\r\n options.panel = this.activePanel;\r\n }\r\n if (!options.panel) {\r\n return;\r\n }\r\n const index = this.panels.indexOf(options.panel);\r\n let normalizedIndex;\r\n if (index > 0) {\r\n normalizedIndex = index - 1;\r\n }\r\n else if (!options.suppressRoll) {\r\n normalizedIndex = this.panels.length - 1;\r\n }\r\n else {\r\n return;\r\n }\r\n this.openPanel(this.panels[normalizedIndex]);\r\n }\r\n containsPanel(panel) {\r\n return this.panels.includes(panel);\r\n }\r\n init(_params) {\r\n //noop\r\n }\r\n update(_params) {\r\n //noop\r\n }\r\n focus() {\r\n var _a, _b;\r\n (_b = (_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);\r\n }\r\n openPanel(panel, options = {}) {\r\n if (typeof options.index !== 'number' ||\r\n options.index > this.panels.length) {\r\n options.index = this.panels.length;\r\n }\r\n const skipSetPanelActive = !!options.skipSetPanelActive;\r\n const skipSetGroupActive = !!options.skipSetGroupActive;\r\n // ensure the group is updated before we fire any events\r\n panel.updateParentGroup(this.groupPanel, true);\r\n if (this._activePanel === panel) {\r\n if (!skipSetGroupActive) {\r\n this.accessor.doSetGroupActive(this.groupPanel);\r\n }\r\n return;\r\n }\r\n this.doAddPanel(panel, options.index, skipSetPanelActive);\r\n if (!skipSetPanelActive) {\r\n this.doSetActivePanel(panel);\r\n }\r\n if (!skipSetGroupActive) {\r\n this.accessor.doSetGroupActive(this.groupPanel, !!options.skipFocus);\r\n }\r\n this.updateContainer();\r\n }\r\n removePanel(groupItemOrId) {\r\n const id = typeof groupItemOrId === 'string'\r\n ? groupItemOrId\r\n : groupItemOrId.id;\r\n const panelToRemove = this._panels.find((panel) => panel.id === id);\r\n if (!panelToRemove) {\r\n throw new Error('invalid operation');\r\n }\r\n return this._removePanel(panelToRemove);\r\n }\r\n closeAllPanels() {\r\n if (this.panels.length > 0) {\r\n // take a copy since we will be edting the array as we iterate through\r\n const arrPanelCpy = [...this.panels];\r\n for (const panel of arrPanelCpy) {\r\n this.doClose(panel);\r\n }\r\n }\r\n else {\r\n this.accessor.removeGroup(this.groupPanel);\r\n }\r\n }\r\n closePanel(panel) {\r\n this.doClose(panel);\r\n }\r\n doClose(panel) {\r\n this.accessor.removePanel(panel);\r\n }\r\n isPanelActive(panel) {\r\n return this._activePanel === panel;\r\n }\r\n updateActions(element) {\r\n this.tabsContainer.setRightActionsElement(element);\r\n }\r\n setActive(isGroupActive, skipFocus = false, force = false) {\r\n var _a, _b, _c, _d;\r\n if (!force && this.isActive === isGroupActive) {\r\n if (!skipFocus) {\r\n (_b = (_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);\r\n }\r\n return;\r\n }\r\n this._isGroupActive = isGroupActive;\r\n toggleClass(this.container, 'active-group', isGroupActive);\r\n toggleClass(this.container, 'inactive-group', !isGroupActive);\r\n this.tabsContainer.setActive(this.isActive);\r\n if (!this._activePanel && this.panels.length > 0) {\r\n this.doSetActivePanel(this.panels[0]);\r\n }\r\n this.updateContainer();\r\n if (isGroupActive) {\r\n if (!skipFocus) {\r\n (_d = (_c = this._activePanel) === null || _c === void 0 ? void 0 : _c.focus) === null || _d === void 0 ? void 0 : _d.call(_c);\r\n }\r\n }\r\n }\r\n layout(width, height) {\r\n var _a;\r\n this._width = width;\r\n this._height = height;\r\n this.contentContainer.layout(this._width, this._height);\r\n if ((_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.layout) {\r\n this._activePanel.layout(this._width, this._height);\r\n }\r\n }\r\n _removePanel(panel) {\r\n const isActivePanel = this._activePanel === panel;\r\n this.doRemovePanel(panel);\r\n if (isActivePanel && this.panels.length > 0) {\r\n const nextPanel = this.mostRecentlyUsed[0];\r\n this.openPanel(nextPanel);\r\n }\r\n if (this._activePanel && this.panels.length === 0) {\r\n this.doSetActivePanel(undefined);\r\n }\r\n this.updateContainer();\r\n return panel;\r\n }\r\n doRemovePanel(panel) {\r\n const index = this.panels.indexOf(panel);\r\n if (this._activePanel === panel) {\r\n this.contentContainer.closePanel();\r\n }\r\n this.tabsContainer.delete(panel.id);\r\n this._panels.splice(index, 1);\r\n if (this.mostRecentlyUsed.includes(panel)) {\r\n this.mostRecentlyUsed.splice(this.mostRecentlyUsed.indexOf(panel), 1);\r\n }\r\n this._onDidRemovePanel.fire({ panel });\r\n }\r\n doAddPanel(panel, index = this.panels.length, skipSetActive = false) {\r\n const existingPanel = this._panels.indexOf(panel);\r\n const hasExistingPanel = existingPanel > -1;\r\n this.tabsContainer.openPanel(panel, index);\r\n if (!skipSetActive) {\r\n this.contentContainer.openPanel(panel);\r\n }\r\n this.tabsContainer.show();\r\n this.contentContainer.show();\r\n if (hasExistingPanel) {\r\n // TODO - need to ensure ordering hasn't changed and if it has need to re-order this.panels\r\n return;\r\n }\r\n this.updateMru(panel);\r\n this.panels.splice(index, 0, panel);\r\n this._onDidAddPanel.fire({ panel });\r\n }\r\n doSetActivePanel(panel) {\r\n this._activePanel = panel;\r\n if (panel) {\r\n this.tabsContainer.setActivePanel(panel);\r\n panel.layout(this._width, this._height);\r\n this.updateMru(panel);\r\n this._onDidActivePanelChange.fire({ panel });\r\n }\r\n }\r\n updateMru(panel) {\r\n if (this.mostRecentlyUsed.includes(panel)) {\r\n this.mostRecentlyUsed.splice(this.mostRecentlyUsed.indexOf(panel), 1);\r\n }\r\n this.mostRecentlyUsed = [panel, ...this.mostRecentlyUsed];\r\n }\r\n updateContainer() {\r\n var _a, _b;\r\n toggleClass(this.container, 'empty', this.isEmpty);\r\n this.panels.forEach((panel) => panel.updateParentGroup(this.groupPanel, this.isActive));\r\n if (this.isEmpty && !this.watermark) {\r\n const watermark = this.accessor.createWatermarkComponent();\r\n watermark.init({\r\n containerApi: new DockviewApi(this.accessor),\r\n group: this.groupPanel,\r\n });\r\n this.watermark = watermark;\r\n addDisposableListener(this.watermark.element, 'click', () => {\r\n if (!this.isActive) {\r\n this.accessor.doSetGroupActive(this.groupPanel);\r\n }\r\n });\r\n this.tabsContainer.hide();\r\n this.contentContainer.element.appendChild(this.watermark.element);\r\n this.watermark.updateParentGroup(this.groupPanel, true);\r\n }\r\n if (!this.isEmpty && this.watermark) {\r\n this.watermark.element.remove();\r\n (_b = (_a = this.watermark).dispose) === null || _b === void 0 ? void 0 : _b.call(_a);\r\n this.watermark = undefined;\r\n this.tabsContainer.show();\r\n }\r\n }\r\n canDisplayOverlay(event, position, target) {\r\n // custom overlay handler\r\n if (this.accessor.options.showDndOverlay) {\r\n return this.accessor.options.showDndOverlay({\r\n nativeEvent: event,\r\n target,\r\n group: this.accessor.getPanel(this.id),\r\n position,\r\n getData: getPanelData,\r\n });\r\n }\r\n return false;\r\n }\r\n handleDropEvent(event, position, index) {\r\n if (this.locked === 'no-drop-target') {\r\n return;\r\n }\r\n const data = getPanelData();\r\n if (data && data.viewId === this.accessor.id) {\r\n if (data.panelId === null) {\r\n // this is a group move dnd event\r\n const { groupId } = data;\r\n this._onMove.fire({\r\n target: position,\r\n groupId: groupId,\r\n index,\r\n });\r\n return;\r\n }\r\n const fromSameGroup = this.tabsContainer.indexOf(data.panelId) !== -1;\r\n if (fromSameGroup && this.tabsContainer.size === 1) {\r\n return;\r\n }\r\n const { groupId, panelId } = data;\r\n const isSameGroup = this.id === groupId;\r\n if (isSameGroup && !position) {\r\n const oldIndex = this.tabsContainer.indexOf(panelId);\r\n if (oldIndex === index) {\r\n return;\r\n }\r\n }\r\n this._onMove.fire({\r\n target: position,\r\n groupId: data.groupId,\r\n itemId: data.panelId,\r\n index,\r\n });\r\n }\r\n else {\r\n this._onDidDrop.fire({\r\n nativeEvent: event,\r\n position,\r\n index,\r\n getData: () => getPanelData(),\r\n });\r\n }\r\n }\r\n dispose() {\r\n var _a, _b, _c;\r\n super.dispose();\r\n (_a = this.watermark) === null || _a === void 0 ? void 0 : _a.element.remove();\r\n (_c = (_b = this.watermark) === null || _b === void 0 ? void 0 : _b.dispose) === null || _c === void 0 ? void 0 : _c.call(_b);\r\n for (const panel of this.panels) {\r\n panel.dispose();\r\n }\r\n this.dropTarget.dispose();\r\n this.tabsContainer.dispose();\r\n this.contentContainer.dispose();\r\n }\r\n}\r\n//# sourceMappingURL=dockviewGroupPanelModel.js.map","import { watchElementResize } from './dom';\r\nimport { CompositeDisposable } from './lifecycle';\r\nexport class Resizable extends CompositeDisposable {\r\n get element() {\r\n return this._element;\r\n }\r\n constructor(parentElement) {\r\n super();\r\n if (parentElement) {\r\n this._element = parentElement;\r\n }\r\n else {\r\n this._element = document.createElement('div');\r\n this._element.style.height = '100%';\r\n this._element.style.width = '100%';\r\n this._element.className = 'dv-resizable-container';\r\n }\r\n this.addDisposables(watchElementResize(this._element, (entry) => {\r\n if (this.isDisposed) {\r\n /**\r\n * resize is delayed through requestAnimationFrame so there is a small chance\r\n * the component has already been disposed of\r\n */\r\n return;\r\n }\r\n const { width, height } = entry.contentRect;\r\n this.layout(width, height);\r\n }));\r\n }\r\n}\r\n//# sourceMappingURL=resizable.js.map","import { Emitter, Event, TickDelayedEvent } from '../events';\r\nimport { getGridLocation, Gridview } from './gridview';\r\nimport { sequentialNumberGenerator } from '../math';\r\nimport { Sizing } from '../splitview/splitview';\r\nimport { Resizable } from '../resizable';\r\nconst nextLayoutId = sequentialNumberGenerator();\r\nexport function toTarget(direction) {\r\n switch (direction) {\r\n case 'left':\r\n return 'left';\r\n case 'right':\r\n return 'right';\r\n case 'above':\r\n return 'top';\r\n case 'below':\r\n return 'bottom';\r\n case 'within':\r\n default:\r\n return 'center';\r\n }\r\n}\r\nexport class BaseGrid extends Resizable {\r\n get id() {\r\n return this._id;\r\n }\r\n get size() {\r\n return this._groups.size;\r\n }\r\n get groups() {\r\n return Array.from(this._groups.values()).map((_) => _.value);\r\n }\r\n get width() {\r\n return this.gridview.width;\r\n }\r\n get height() {\r\n return this.gridview.height;\r\n }\r\n get minimumHeight() {\r\n return this.gridview.minimumHeight;\r\n }\r\n get maximumHeight() {\r\n return this.gridview.maximumHeight;\r\n }\r\n get minimumWidth() {\r\n return this.gridview.minimumWidth;\r\n }\r\n get maximumWidth() {\r\n return this.gridview.maximumWidth;\r\n }\r\n get activeGroup() {\r\n return this._activeGroup;\r\n }\r\n constructor(options) {\r\n super(options.parentElement);\r\n this._id = nextLayoutId.next();\r\n this._groups = new Map();\r\n this._onDidLayoutChange = new Emitter();\r\n this.onDidLayoutChange = this._onDidLayoutChange.event;\r\n this._onDidRemoveGroup = new Emitter();\r\n this.onDidRemoveGroup = this._onDidRemoveGroup.event;\r\n this._onDidAddGroup = new Emitter();\r\n this.onDidAddGroup = this._onDidAddGroup.event;\r\n this._onDidActiveGroupChange = new Emitter();\r\n this.onDidActiveGroupChange = this._onDidActiveGroupChange.event;\r\n this._bufferOnDidLayoutChange = new TickDelayedEvent();\r\n this.gridview = new Gridview(!!options.proportionalLayout, options.styles, options.orientation);\r\n this.element.appendChild(this.gridview.element);\r\n this.layout(0, 0, true); // set some elements height/widths\r\n this.addDisposables(this.gridview.onDidChange(() => {\r\n this._bufferOnDidLayoutChange.fire();\r\n }), Event.any(this.onDidAddGroup, this.onDidRemoveGroup, this.onDidActiveGroupChange)(() => {\r\n this._bufferOnDidLayoutChange.fire();\r\n }), this._bufferOnDidLayoutChange.onEvent(() => {\r\n this._onDidLayoutChange.fire();\r\n }), this._bufferOnDidLayoutChange);\r\n }\r\n setVisible(panel, visible) {\r\n this.gridview.setViewVisible(getGridLocation(panel.element), visible);\r\n this._onDidLayoutChange.fire();\r\n }\r\n isVisible(panel) {\r\n return this.gridview.isViewVisible(getGridLocation(panel.element));\r\n }\r\n doAddGroup(group, location = [0], size) {\r\n this.gridview.addView(group, size !== null && size !== void 0 ? size : Sizing.Distribute, location);\r\n this._onDidAddGroup.fire(group);\r\n this.doSetGroupActive(group);\r\n }\r\n doRemoveGroup(group, options) {\r\n if (!this._groups.has(group.id)) {\r\n throw new Error('invalid operation');\r\n }\r\n const item = this._groups.get(group.id);\r\n const view = this.gridview.remove(group, Sizing.Distribute);\r\n if (item && !(options === null || options === void 0 ? void 0 : options.skipDispose)) {\r\n item.disposable.dispose();\r\n item.value.dispose();\r\n this._groups.delete(group.id);\r\n }\r\n this._onDidRemoveGroup.fire(group);\r\n if (!(options === null || options === void 0 ? void 0 : options.skipActive) && this._activeGroup === group) {\r\n const groups = Array.from(this._groups.values());\r\n this.doSetGroupActive(groups.length > 0 ? groups[0].value : undefined);\r\n }\r\n return view;\r\n }\r\n getPanel(id) {\r\n var _a;\r\n return (_a = this._groups.get(id)) === null || _a === void 0 ? void 0 : _a.value;\r\n }\r\n doSetGroupActive(group, skipFocus) {\r\n var _a, _b, _c;\r\n if (this._activeGroup === group) {\r\n return;\r\n }\r\n if (this._activeGroup) {\r\n this._activeGroup.setActive(false);\r\n if (!skipFocus) {\r\n (_b = (_a = this._activeGroup).focus) === null || _b === void 0 ? void 0 : _b.call(_a);\r\n }\r\n }\r\n if (group) {\r\n group.setActive(true);\r\n if (!skipFocus) {\r\n (_c = group.focus) === null || _c === void 0 ? void 0 : _c.call(group);\r\n }\r\n }\r\n this._activeGroup = group;\r\n this._onDidActiveGroupChange.fire(group);\r\n }\r\n removeGroup(group) {\r\n this.doRemoveGroup(group);\r\n }\r\n moveToNext(options) {\r\n var _a;\r\n if (!options) {\r\n options = {};\r\n }\r\n if (!options.group) {\r\n if (!this.activeGroup) {\r\n return;\r\n }\r\n options.group = this.activeGroup;\r\n }\r\n const location = getGridLocation(options.group.element);\r\n const next = (_a = this.gridview.next(location)) === null || _a === void 0 ? void 0 : _a.view;\r\n this.doSetGroupActive(next);\r\n }\r\n moveToPrevious(options) {\r\n var _a;\r\n if (!options) {\r\n options = {};\r\n }\r\n if (!options.group) {\r\n if (!this.activeGroup) {\r\n return;\r\n }\r\n options.group = this.activeGroup;\r\n }\r\n const location = getGridLocation(options.group.element);\r\n const next = (_a = this.gridview.previous(location)) === null || _a === void 0 ? void 0 : _a.view;\r\n this.doSetGroupActive(next);\r\n }\r\n layout(width, height, forceResize) {\r\n const different = forceResize || width !== this.width || height !== this.height;\r\n if (!different) {\r\n return;\r\n }\r\n this.gridview.element.style.height = `${height}px`;\r\n this.gridview.element.style.width = `${width}px`;\r\n this.gridview.layout(width, height);\r\n }\r\n dispose() {\r\n this._onDidActiveGroupChange.dispose();\r\n this._onDidAddGroup.dispose();\r\n this._onDidRemoveGroup.dispose();\r\n this._onDidLayoutChange.dispose();\r\n for (const group of this.groups) {\r\n group.dispose();\r\n }\r\n this.gridview.dispose();\r\n super.dispose();\r\n }\r\n}\r\n//# sourceMappingURL=baseComponentGridview.js.map","import { Emitter } from '../events';\r\nimport { CompositeDisposable, MutableDisposable } from '../lifecycle';\r\n/**\r\n * A core api implementation that should be used across all panel-like objects\r\n */\r\nexport class PanelApiImpl extends CompositeDisposable {\r\n //\r\n get isFocused() {\r\n return this._isFocused;\r\n }\r\n get isActive() {\r\n return this._isActive;\r\n }\r\n get isVisible() {\r\n return this._isVisible;\r\n }\r\n get width() {\r\n return this._width;\r\n }\r\n get height() {\r\n return this._height;\r\n }\r\n constructor(id) {\r\n super();\r\n this.id = id;\r\n this._isFocused = false;\r\n this._isActive = false;\r\n this._isVisible = true;\r\n this._width = 0;\r\n this._height = 0;\r\n this.panelUpdatesDisposable = new MutableDisposable();\r\n this._onDidDimensionChange = new Emitter({\r\n replay: true,\r\n });\r\n this.onDidDimensionsChange = this._onDidDimensionChange.event;\r\n //\r\n this._onDidChangeFocus = new Emitter({\r\n replay: true,\r\n });\r\n this.onDidFocusChange = this._onDidChangeFocus.event;\r\n //\r\n this._onFocusEvent = new Emitter();\r\n this.onFocusEvent = this._onFocusEvent.event;\r\n //\r\n this._onDidVisibilityChange = new Emitter({\r\n replay: true,\r\n });\r\n this.onDidVisibilityChange = this._onDidVisibilityChange.event;\r\n //\r\n this._onVisibilityChange = new Emitter();\r\n this.onVisibilityChange = this._onVisibilityChange.event;\r\n //\r\n this._onDidActiveChange = new Emitter({\r\n replay: true,\r\n });\r\n this.onDidActiveChange = this._onDidActiveChange.event;\r\n //\r\n this._onActiveChange = new Emitter();\r\n this.onActiveChange = this._onActiveChange.event;\r\n //\r\n this._onUpdateParameters = new Emitter();\r\n this.onUpdateParameters = this._onUpdateParameters.event;\r\n this.addDisposables(this.onDidFocusChange((event) => {\r\n this._isFocused = event.isFocused;\r\n }), this.onDidActiveChange((event) => {\r\n this._isActive = event.isActive;\r\n }), this.onDidVisibilityChange((event) => {\r\n this._isVisible = event.isVisible;\r\n }), this.onDidDimensionsChange((event) => {\r\n this._width = event.width;\r\n this._height = event.height;\r\n }), this.panelUpdatesDisposable, this._onDidDimensionChange, this._onDidChangeFocus, this._onDidVisibilityChange, this._onDidActiveChange, this._onFocusEvent, this._onActiveChange, this._onVisibilityChange, this._onUpdateParameters);\r\n }\r\n initialize(panel) {\r\n this.panelUpdatesDisposable.value = this._onUpdateParameters.event((parameters) => {\r\n panel.update({\r\n params: parameters,\r\n });\r\n });\r\n }\r\n setVisible(isVisible) {\r\n this._onVisibilityChange.fire({ isVisible });\r\n }\r\n setActive() {\r\n this._onActiveChange.fire();\r\n }\r\n updateParameters(parameters) {\r\n this._onUpdateParameters.fire(parameters);\r\n }\r\n dispose() {\r\n super.dispose();\r\n }\r\n}\r\n//# sourceMappingURL=panelApi.js.map","import { Emitter } from '../events';\r\nimport { PanelApiImpl } from './panelApi';\r\nexport class SplitviewPanelApiImpl extends PanelApiImpl {\r\n //\r\n constructor(id) {\r\n super(id);\r\n this._onDidConstraintsChangeInternal = new Emitter();\r\n this.onDidConstraintsChangeInternal = this._onDidConstraintsChangeInternal.event;\r\n //\r\n this._onDidConstraintsChange = new Emitter({\r\n replay: true,\r\n });\r\n this.onDidConstraintsChange = this._onDidConstraintsChange.event;\r\n //\r\n this._onDidSizeChange = new Emitter();\r\n this.onDidSizeChange = this._onDidSizeChange.event;\r\n this.addDisposables(this._onDidConstraintsChangeInternal, this._onDidConstraintsChange, this._onDidSizeChange);\r\n }\r\n setConstraints(value) {\r\n this._onDidConstraintsChangeInternal.fire(value);\r\n }\r\n setSize(event) {\r\n this._onDidSizeChange.fire(event);\r\n }\r\n}\r\n//# sourceMappingURL=splitviewPanelApi.js.map","import { Emitter } from '../events';\r\nimport { SplitviewPanelApiImpl } from './splitviewPanelApi';\r\nexport class PaneviewPanelApiImpl extends SplitviewPanelApiImpl {\r\n set pane(pane) {\r\n this._pane = pane;\r\n }\r\n constructor(id) {\r\n super(id);\r\n this._onDidExpansionChange = new Emitter({\r\n replay: true,\r\n });\r\n this.onDidExpansionChange = this._onDidExpansionChange.event;\r\n this._onMouseEnter = new Emitter({});\r\n this.onMouseEnter = this._onMouseEnter.event;\r\n this._onMouseLeave = new Emitter({});\r\n this.onMouseLeave = this._onMouseLeave.event;\r\n this.addDisposables(this._onDidExpansionChange, this._onMouseEnter, this._onMouseLeave);\r\n }\r\n setExpanded(isExpanded) {\r\n var _a;\r\n (_a = this._pane) === null || _a === void 0 ? void 0 : _a.setExpanded(isExpanded);\r\n }\r\n get isExpanded() {\r\n var _a;\r\n return !!((_a = this._pane) === null || _a === void 0 ? void 0 : _a.isExpanded());\r\n }\r\n}\r\n//# sourceMappingURL=paneviewPanelApi.js.map","import { trackFocus } from '../dom';\r\nimport { CompositeDisposable } from '../lifecycle';\r\nexport class BasePanelView extends CompositeDisposable {\r\n get element() {\r\n return this._element;\r\n }\r\n get width() {\r\n return this._width;\r\n }\r\n get height() {\r\n return this._height;\r\n }\r\n get params() {\r\n var _a;\r\n return (_a = this._params) === null || _a === void 0 ? void 0 : _a.params;\r\n }\r\n constructor(id, component, api) {\r\n super();\r\n this.id = id;\r\n this.component = component;\r\n this.api = api;\r\n this._height = 0;\r\n this._width = 0;\r\n this._element = document.createElement('div');\r\n this._element.tabIndex = -1;\r\n this._element.style.outline = 'none';\r\n this._element.style.height = '100%';\r\n this._element.style.width = '100%';\r\n this._element.style.overflow = 'hidden';\r\n const focusTracker = trackFocus(this._element);\r\n this.addDisposables(this.api, focusTracker.onDidFocus(() => {\r\n this.api._onDidChangeFocus.fire({ isFocused: true });\r\n }), focusTracker.onDidBlur(() => {\r\n this.api._onDidChangeFocus.fire({ isFocused: false });\r\n }), focusTracker);\r\n }\r\n focus() {\r\n this.api._onFocusEvent.fire();\r\n }\r\n layout(width, height) {\r\n this._width = width;\r\n this._height = height;\r\n this.api._onDidDimensionChange.fire({ width, height });\r\n if (this.part) {\r\n if (this._params) {\r\n this.part.update(this._params.params);\r\n }\r\n }\r\n }\r\n init(parameters) {\r\n this._params = parameters;\r\n this.part = this.getComponent();\r\n }\r\n update(event) {\r\n var _a, _b;\r\n // merge the new parameters with the existing parameters\r\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) });\r\n /**\r\n * delete new keys that have a value of undefined,\r\n * allow values of null\r\n */\r\n for (const key of Object.keys(event.params)) {\r\n if (event.params[key] === undefined) {\r\n delete this._params.params[key];\r\n }\r\n }\r\n // update the view with the updated props\r\n (_b = this.part) === null || _b === void 0 ? void 0 : _b.update({ params: this._params.params });\r\n }\r\n toJSON() {\r\n var _a, _b;\r\n const params = (_b = (_a = this._params) === null || _a === void 0 ? void 0 : _a.params) !== null && _b !== void 0 ? _b : {};\r\n return {\r\n id: this.id,\r\n component: this.component,\r\n params: Object.keys(params).length > 0 ? params : undefined,\r\n };\r\n }\r\n dispose() {\r\n var _a;\r\n this.api.dispose();\r\n (_a = this.part) === null || _a === void 0 ? void 0 : _a.dispose();\r\n super.dispose();\r\n }\r\n}\r\n//# sourceMappingURL=basePanelView.js.map","import { PaneviewPanelApiImpl } from '../api/paneviewPanelApi';\r\nimport { addClasses, removeClasses } from '../dom';\r\nimport { addDisposableListener, Emitter } from '../events';\r\nimport { BasePanelView, } from '../gridview/basePanelView';\r\nimport { Orientation } from '../splitview/splitview';\r\nexport class PaneviewPanel extends BasePanelView {\r\n set orientation(value) {\r\n this._orientation = value;\r\n }\r\n get orientation() {\r\n return this._orientation;\r\n }\r\n get minimumSize() {\r\n const headerSize = this.headerSize;\r\n const expanded = this.isExpanded();\r\n const minimumBodySize = expanded ? this._minimumBodySize : 0;\r\n return headerSize + minimumBodySize;\r\n }\r\n get maximumSize() {\r\n const headerSize = this.headerSize;\r\n const expanded = this.isExpanded();\r\n const maximumBodySize = expanded ? this._maximumBodySize : 0;\r\n return headerSize + maximumBodySize;\r\n }\r\n get size() {\r\n return this._size;\r\n }\r\n get orthogonalSize() {\r\n return this._orthogonalSize;\r\n }\r\n set orthogonalSize(size) {\r\n this._orthogonalSize = size;\r\n }\r\n get minimumBodySize() {\r\n return this._minimumBodySize;\r\n }\r\n set minimumBodySize(value) {\r\n this._minimumBodySize = typeof value === 'number' ? value : 0;\r\n }\r\n get maximumBodySize() {\r\n return this._maximumBodySize;\r\n }\r\n set maximumBodySize(value) {\r\n this._maximumBodySize =\r\n typeof value === 'number' ? value : Number.POSITIVE_INFINITY;\r\n }\r\n get headerVisible() {\r\n return this._headerVisible;\r\n }\r\n set headerVisible(value) {\r\n this._headerVisible = value;\r\n this.header.style.display = value ? '' : 'none';\r\n }\r\n constructor(id, component, headerComponent, orientation, isExpanded, isHeaderVisible) {\r\n super(id, component, new PaneviewPanelApiImpl(id));\r\n this.headerComponent = headerComponent;\r\n this._onDidChangeExpansionState = new Emitter({ replay: true });\r\n this.onDidChangeExpansionState = this._onDidChangeExpansionState.event;\r\n this._onDidChange = new Emitter();\r\n this.onDidChange = this._onDidChange.event;\r\n this.headerSize = 22;\r\n this._orthogonalSize = 0;\r\n this._size = 0;\r\n this._minimumBodySize = 100;\r\n this._maximumBodySize = Number.POSITIVE_INFINITY;\r\n this._isExpanded = false;\r\n this.expandedSize = 0;\r\n this.api.pane = this; // TODO cannot use 'this' before 'super'\r\n this.api.initialize(this);\r\n this._isExpanded = isExpanded;\r\n this._headerVisible = isHeaderVisible;\r\n this._onDidChangeExpansionState.fire(this.isExpanded()); // initialize value\r\n this._orientation = orientation;\r\n this.element.classList.add('pane');\r\n this.addDisposables(this.api.onDidSizeChange((event) => {\r\n this._onDidChange.fire({ size: event.size });\r\n }), addDisposableListener(this.element, 'mouseenter', (ev) => {\r\n this.api._onMouseEnter.fire(ev);\r\n }), addDisposableListener(this.element, 'mouseleave', (ev) => {\r\n this.api._onMouseLeave.fire(ev);\r\n }));\r\n this.addDisposables(this._onDidChangeExpansionState, this.onDidChangeExpansionState((isPanelExpanded) => {\r\n this.api._onDidExpansionChange.fire({\r\n isExpanded: isPanelExpanded,\r\n });\r\n }), this.api.onDidFocusChange((e) => {\r\n if (!this.header) {\r\n return;\r\n }\r\n if (e.isFocused) {\r\n addClasses(this.header, 'focused');\r\n }\r\n else {\r\n removeClasses(this.header, 'focused');\r\n }\r\n }));\r\n this.renderOnce();\r\n }\r\n setVisible(isVisible) {\r\n this.api._onDidVisibilityChange.fire({ isVisible });\r\n }\r\n setActive(isActive) {\r\n this.api._onDidActiveChange.fire({ isActive });\r\n }\r\n isExpanded() {\r\n return this._isExpanded;\r\n }\r\n setExpanded(expanded) {\r\n if (this._isExpanded === expanded) {\r\n return;\r\n }\r\n this._isExpanded = expanded;\r\n if (expanded) {\r\n if (this.animationTimer) {\r\n clearTimeout(this.animationTimer);\r\n }\r\n if (this.body) {\r\n this.element.appendChild(this.body);\r\n }\r\n }\r\n else {\r\n this.animationTimer = setTimeout(() => {\r\n var _a;\r\n (_a = this.body) === null || _a === void 0 ? void 0 : _a.remove();\r\n }, 200);\r\n }\r\n this._onDidChange.fire(expanded ? { size: this.width } : {});\r\n this._onDidChangeExpansionState.fire(expanded);\r\n }\r\n layout(size, orthogonalSize) {\r\n this._size = size;\r\n this._orthogonalSize = orthogonalSize;\r\n const [width, height] = this.orientation === Orientation.HORIZONTAL\r\n ? [size, orthogonalSize]\r\n : [orthogonalSize, size];\r\n if (this.isExpanded()) {\r\n this.expandedSize = width;\r\n }\r\n super.layout(width, height);\r\n }\r\n init(parameters) {\r\n var _a, _b;\r\n super.init(parameters);\r\n if (typeof parameters.minimumBodySize === 'number') {\r\n this.minimumBodySize = parameters.minimumBodySize;\r\n }\r\n if (typeof parameters.maximumBodySize === 'number') {\r\n this.maximumBodySize = parameters.maximumBodySize;\r\n }\r\n this.bodyPart = this.getBodyComponent();\r\n this.headerPart = this.getHeaderComponent();\r\n this.bodyPart.init(Object.assign(Object.assign({}, parameters), { api: this.api }));\r\n this.headerPart.init(Object.assign(Object.assign({}, parameters), { api: this.api }));\r\n (_a = this.body) === null || _a === void 0 ? void 0 : _a.append(this.bodyPart.element);\r\n (_b = this.header) === null || _b === void 0 ? void 0 : _b.append(this.headerPart.element);\r\n if (typeof parameters.isExpanded === 'boolean') {\r\n this.setExpanded(parameters.isExpanded);\r\n }\r\n }\r\n toJSON() {\r\n const params = this._params;\r\n return Object.assign(Object.assign({}, super.toJSON()), { headerComponent: this.headerComponent, title: params.title });\r\n }\r\n renderOnce() {\r\n this.header = document.createElement('div');\r\n this.header.tabIndex = 0;\r\n this.header.className = 'pane-header';\r\n this.header.style.height = `${this.headerSize}px`;\r\n this.header.style.lineHeight = `${this.headerSize}px`;\r\n this.header.style.minHeight = `${this.headerSize}px`;\r\n this.header.style.maxHeight = `${this.headerSize}px`;\r\n this.element.appendChild(this.header);\r\n this.body = document.createElement('div');\r\n this.body.className = 'pane-body';\r\n this.element.appendChild(this.body);\r\n }\r\n // TODO slightly hacky by-pass of the component to create a body and header component\r\n getComponent() {\r\n return {\r\n update: (params) => {\r\n var _a, _b;\r\n (_a = this.bodyPart) === null || _a === void 0 ? void 0 : _a.update({ params });\r\n (_b = this.headerPart) === null || _b === void 0 ? void 0 : _b.update({ params });\r\n },\r\n dispose: () => {\r\n var _a, _b;\r\n (_a = this.bodyPart) === null || _a === void 0 ? void 0 : _a.dispose();\r\n (_b = this.headerPart) === null || _b === void 0 ? void 0 : _b.dispose();\r\n },\r\n };\r\n }\r\n}\r\n//# sourceMappingURL=paneviewPanel.js.map","import { PaneviewApi } from '../api/component.api';\r\nimport { DragHandler } from '../dnd/abstractDragHandler';\r\nimport { getPaneData, LocalSelectionTransfer, PaneTransfer, } from '../dnd/dataTransfer';\r\nimport { Droptarget } from '../dnd/droptarget';\r\nimport { Emitter } from '../events';\r\nimport { PaneviewPanel, } from './paneviewPanel';\r\nexport class DraggablePaneviewPanel extends PaneviewPanel {\r\n constructor(accessor, id, component, headerComponent, orientation, isExpanded, disableDnd) {\r\n super(id, component, headerComponent, orientation, isExpanded, true);\r\n this.accessor = accessor;\r\n this._onDidDrop = new Emitter();\r\n this.onDidDrop = this._onDidDrop.event;\r\n if (!disableDnd) {\r\n this.initDragFeatures();\r\n }\r\n }\r\n initDragFeatures() {\r\n if (!this.header) {\r\n return;\r\n }\r\n const id = this.id;\r\n const accessorId = this.accessor.id;\r\n this.header.draggable = true;\r\n this.handler = new (class PaneDragHandler extends DragHandler {\r\n getData() {\r\n LocalSelectionTransfer.getInstance().setData([new PaneTransfer(accessorId, id)], PaneTransfer.prototype);\r\n return {\r\n dispose: () => {\r\n LocalSelectionTransfer.getInstance().clearData(PaneTransfer.prototype);\r\n },\r\n };\r\n }\r\n })(this.header);\r\n this.target = new Droptarget(this.element, {\r\n acceptedTargetZones: ['top', 'bottom'],\r\n overlayModel: {\r\n activationSize: { type: 'percentage', value: 50 },\r\n },\r\n canDisplayOverlay: (event) => {\r\n const data = getPaneData();\r\n if (data) {\r\n if (data.paneId !== this.id &&\r\n data.viewId === this.accessor.id) {\r\n return true;\r\n }\r\n }\r\n if (this.accessor.options.showDndOverlay) {\r\n return this.accessor.options.showDndOverlay({\r\n nativeEvent: event,\r\n getData: getPaneData,\r\n panel: this,\r\n });\r\n }\r\n return false;\r\n },\r\n });\r\n this.addDisposables(this._onDidDrop, this.handler, this.target, this.target.onDrop((event) => {\r\n this.onDrop(event);\r\n }));\r\n }\r\n onDrop(event) {\r\n const data = getPaneData();\r\n if (!data || data.viewId !== this.accessor.id) {\r\n // if there is no local drag event for this panel\r\n // or if the drag event was creating by another Paneview instance\r\n this._onDidDrop.fire(Object.assign(Object.assign({}, event), { panel: this, api: new PaneviewApi(this.accessor), getData: getPaneData }));\r\n return;\r\n }\r\n const containerApi = this._params\r\n .containerApi;\r\n const panelId = data.paneId;\r\n const existingPanel = containerApi.getPanel(panelId);\r\n if (!existingPanel) {\r\n // if the panel doesn't exist\r\n this._onDidDrop.fire(Object.assign(Object.assign({}, event), { panel: this, getData: getPaneData, api: new PaneviewApi(this.accessor) }));\r\n return;\r\n }\r\n const allPanels = containerApi.panels;\r\n const fromIndex = allPanels.indexOf(existingPanel);\r\n let toIndex = containerApi.panels.indexOf(this);\r\n if (event.position === 'left' || event.position === 'top') {\r\n toIndex = Math.max(0, toIndex - 1);\r\n }\r\n if (event.position === 'right' || event.position === 'bottom') {\r\n if (fromIndex > toIndex) {\r\n toIndex++;\r\n }\r\n toIndex = Math.min(allPanels.length - 1, toIndex);\r\n }\r\n containerApi.movePanel(fromIndex, toIndex);\r\n }\r\n}\r\n//# sourceMappingURL=draggablePaneviewPanel.js.map","import { Emitter } from '../events';\r\nimport { PanelApiImpl } from './panelApi';\r\nexport class GridviewPanelApiImpl extends PanelApiImpl {\r\n constructor(id, panel) {\r\n super(id);\r\n this._onDidConstraintsChangeInternal = new Emitter();\r\n this.onDidConstraintsChangeInternal = this._onDidConstraintsChangeInternal.event;\r\n this._onDidConstraintsChange = new Emitter({\r\n replay: true,\r\n });\r\n this.onDidConstraintsChange = this._onDidConstraintsChange.event;\r\n this._onDidSizeChange = new Emitter();\r\n this.onDidSizeChange = this._onDidSizeChange.event;\r\n this.addDisposables(this._onDidConstraintsChangeInternal, this._onDidConstraintsChange, this._onDidSizeChange);\r\n if (panel) {\r\n this.initialize(panel);\r\n }\r\n }\r\n setConstraints(value) {\r\n this._onDidConstraintsChangeInternal.fire(value);\r\n }\r\n setSize(event) {\r\n this._onDidSizeChange.fire(event);\r\n }\r\n}\r\n//# sourceMappingURL=gridviewPanelApi.js.map","import { BasePanelView, } from './basePanelView';\r\nimport { GridviewPanelApiImpl, } from '../api/gridviewPanelApi';\r\nimport { Emitter } from '../events';\r\nexport class GridviewPanel extends BasePanelView {\r\n get priority() {\r\n return this._priority;\r\n }\r\n get snap() {\r\n return this._snap;\r\n }\r\n get minimumWidth() {\r\n const width = typeof this._minimumWidth === 'function'\r\n ? this._minimumWidth()\r\n : this._minimumWidth;\r\n if (width !== this._evaluatedMinimumWidth) {\r\n this._evaluatedMinimumWidth = width;\r\n this.updateConstraints();\r\n }\r\n return width;\r\n }\r\n get minimumHeight() {\r\n const height = typeof this._minimumHeight === 'function'\r\n ? this._minimumHeight()\r\n : this._minimumHeight;\r\n if (height !== this._evaluatedMinimumHeight) {\r\n this._evaluatedMinimumHeight = height;\r\n this.updateConstraints();\r\n }\r\n return height;\r\n }\r\n get maximumHeight() {\r\n const height = typeof this._maximumHeight === 'function'\r\n ? this._maximumHeight()\r\n : this._maximumHeight;\r\n if (height !== this._evaluatedMaximumHeight) {\r\n this._evaluatedMaximumHeight = height;\r\n this.updateConstraints();\r\n }\r\n return height;\r\n }\r\n get maximumWidth() {\r\n const width = typeof this._maximumWidth === 'function'\r\n ? this._maximumWidth()\r\n : this._maximumWidth;\r\n if (width !== this._evaluatedMaximumWidth) {\r\n this._evaluatedMaximumWidth = width;\r\n this.updateConstraints();\r\n }\r\n return width;\r\n }\r\n get isActive() {\r\n return this.api.isActive;\r\n }\r\n constructor(id, component, options, api) {\r\n super(id, component, api !== null && api !== void 0 ? api : new GridviewPanelApiImpl(id));\r\n this._evaluatedMinimumWidth = 0;\r\n this._evaluatedMaximumWidth = Number.MAX_SAFE_INTEGER;\r\n this._evaluatedMinimumHeight = 0;\r\n this._evaluatedMaximumHeight = Number.MAX_SAFE_INTEGER;\r\n this._minimumWidth = 0;\r\n this._minimumHeight = 0;\r\n this._maximumWidth = Number.MAX_SAFE_INTEGER;\r\n this._maximumHeight = Number.MAX_SAFE_INTEGER;\r\n this._snap = false;\r\n this._onDidChange = new Emitter();\r\n this.onDidChange = this._onDidChange.event;\r\n if (typeof (options === null || options === void 0 ? void 0 : options.minimumWidth) === 'number') {\r\n this._minimumWidth = options.minimumWidth;\r\n }\r\n if (typeof (options === null || options === void 0 ? void 0 : options.maximumWidth) === 'number') {\r\n this._maximumWidth = options.maximumWidth;\r\n }\r\n if (typeof (options === null || options === void 0 ? void 0 : options.minimumHeight) === 'number') {\r\n this._minimumHeight = options.minimumHeight;\r\n }\r\n if (typeof (options === null || options === void 0 ? void 0 : options.maximumHeight) === 'number') {\r\n this._maximumHeight = options.maximumHeight;\r\n }\r\n this.api.initialize(this); // TODO: required to by-pass 'super before this' requirement\r\n this.addDisposables(this.api.onVisibilityChange((event) => {\r\n const { isVisible } = event;\r\n const { accessor } = this._params;\r\n accessor.setVisible(this, isVisible);\r\n }), this.api.onActiveChange(() => {\r\n const { accessor } = this._params;\r\n accessor.setActive(this);\r\n }), this.api.onDidConstraintsChangeInternal((event) => {\r\n if (typeof event.minimumWidth === 'number' ||\r\n typeof event.minimumWidth === 'function') {\r\n this._minimumWidth = event.minimumWidth;\r\n }\r\n if (typeof event.minimumHeight === 'number' ||\r\n typeof event.minimumHeight === 'function') {\r\n this._minimumHeight = event.minimumHeight;\r\n }\r\n if (typeof event.maximumWidth === 'number' ||\r\n typeof event.maximumWidth === 'function') {\r\n this._maximumWidth = event.maximumWidth;\r\n }\r\n if (typeof event.maximumHeight === 'number' ||\r\n typeof event.maximumHeight === 'function') {\r\n this._maximumHeight = event.maximumHeight;\r\n }\r\n }), this.api.onDidSizeChange((event) => {\r\n this._onDidChange.fire({\r\n height: event.height,\r\n width: event.width,\r\n });\r\n }), this._onDidChange);\r\n }\r\n setVisible(isVisible) {\r\n this.api._onDidVisibilityChange.fire({ isVisible });\r\n }\r\n setActive(isActive) {\r\n this.api._onDidActiveChange.fire({ isActive });\r\n }\r\n init(parameters) {\r\n if (parameters.maximumHeight) {\r\n this._maximumHeight = parameters.maximumHeight;\r\n }\r\n if (parameters.minimumHeight) {\r\n this._minimumHeight = parameters.minimumHeight;\r\n }\r\n if (parameters.maximumWidth) {\r\n this._maximumWidth = parameters.maximumWidth;\r\n }\r\n if (parameters.minimumWidth) {\r\n this._minimumWidth = parameters.minimumWidth;\r\n }\r\n this._priority = parameters.priority;\r\n this._snap = !!parameters.snap;\r\n super.init(parameters);\r\n if (typeof parameters.isVisible === 'boolean') {\r\n this.setVisible(parameters.isVisible);\r\n }\r\n }\r\n updateConstraints() {\r\n this.api._onDidConstraintsChange.fire({\r\n minimumWidth: this._evaluatedMinimumWidth,\r\n maximumWidth: this._evaluatedMaximumWidth,\r\n minimumHeight: this._evaluatedMinimumHeight,\r\n maximumHeight: this._evaluatedMaximumHeight,\r\n });\r\n }\r\n toJSON() {\r\n const state = super.toJSON();\r\n const maximum = (value) => value === Number.MAX_SAFE_INTEGER ? undefined : value;\r\n const minimum = (value) => (value <= 0 ? undefined : value);\r\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 });\r\n }\r\n}\r\n//# sourceMappingURL=gridviewPanel.js.map","import { Emitter } from '../events';\r\nimport { GridviewPanelApiImpl } from './gridviewPanelApi';\r\nexport class DockviewGroupPanelApiImpl extends GridviewPanelApiImpl {\r\n get isFloating() {\r\n if (!this._group) {\r\n throw new Error(`DockviewGroupPanelApiImpl not initialized`);\r\n }\r\n return this._group.model.isFloating;\r\n }\r\n constructor(id, accessor) {\r\n super(id);\r\n this.accessor = accessor;\r\n this._onDidFloatingStateChange = new Emitter();\r\n this.onDidFloatingStateChange = this._onDidFloatingStateChange.event;\r\n this.addDisposables(this._onDidFloatingStateChange);\r\n }\r\n moveTo(options) {\r\n var _a;\r\n if (!this._group) {\r\n throw new Error(`DockviewGroupPanelApiImpl not initialized`);\r\n }\r\n this.accessor.moveGroupOrPanel(options.group, this._group.id, undefined, (_a = options.position) !== null && _a !== void 0 ? _a : 'center');\r\n }\r\n initialize(group) {\r\n this._group = group;\r\n }\r\n}\r\n//# sourceMappingURL=dockviewGroupPanelApi.js.map","import { DockviewGroupPanelModel, } from './dockviewGroupPanelModel';\r\nimport { GridviewPanel } from '../gridview/gridviewPanel';\r\nimport { DockviewGroupPanelApiImpl, } from '../api/dockviewGroupPanelApi';\r\nexport class DockviewGroupPanel extends GridviewPanel {\r\n get panels() {\r\n return this._model.panels;\r\n }\r\n get activePanel() {\r\n return this._model.activePanel;\r\n }\r\n get size() {\r\n return this._model.size;\r\n }\r\n get model() {\r\n return this._model;\r\n }\r\n get locked() {\r\n return this._model.locked;\r\n }\r\n set locked(value) {\r\n this._model.locked = value;\r\n }\r\n get header() {\r\n return this._model.header;\r\n }\r\n constructor(accessor, id, options) {\r\n super(id, 'groupview_default', {\r\n minimumHeight: 100,\r\n minimumWidth: 100,\r\n }, new DockviewGroupPanelApiImpl(id, accessor));\r\n this.api.initialize(this); // cannot use 'this' after after 'super' call\r\n this._model = new DockviewGroupPanelModel(this.element, accessor, id, options, this);\r\n }\r\n initialize() {\r\n this._model.initialize();\r\n }\r\n setActive(isActive) {\r\n super.setActive(isActive);\r\n this.model.setActive(isActive);\r\n }\r\n layout(width, height) {\r\n super.layout(width, height);\r\n this.model.layout(width, height);\r\n }\r\n getComponent() {\r\n return this._model;\r\n }\r\n toJSON() {\r\n return this.model.toJSON();\r\n }\r\n}\r\n//# sourceMappingURL=dockviewGroupPanel.js.map","export function isPanelOptionsWithPanel(data) {\r\n if (data.referencePanel) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nexport function isPanelOptionsWithGroup(data) {\r\n if (data.referenceGroup) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nexport function isGroupOptionsWithPanel(data) {\r\n if (data.referencePanel) {\r\n return true;\r\n }\r\n return false;\r\n}\r\nexport function isGroupOptionsWithGroup(data) {\r\n if (data.referenceGroup) {\r\n return true;\r\n }\r\n return false;\r\n}\r\n//# sourceMappingURL=options.js.map","import { Emitter } from '../events';\r\nimport { GridviewPanelApiImpl } from './gridviewPanelApi';\r\nimport { MutableDisposable } from '../lifecycle';\r\nexport class DockviewPanelApiImpl extends GridviewPanelApiImpl {\r\n get title() {\r\n return this.panel.title;\r\n }\r\n get isGroupActive() {\r\n var _a;\r\n return !!((_a = this.group) === null || _a === void 0 ? void 0 : _a.isActive);\r\n }\r\n set group(value) {\r\n const isOldGroupActive = this.isGroupActive;\r\n this._group = value;\r\n this._onDidGroupChange.fire();\r\n if (this._group) {\r\n this.disposable.value = this._group.api.onDidActiveChange(() => {\r\n this._onDidActiveGroupChange.fire();\r\n });\r\n if (this.isGroupActive !== isOldGroupActive) {\r\n this._onDidActiveGroupChange.fire();\r\n }\r\n }\r\n }\r\n get group() {\r\n return this._group;\r\n }\r\n constructor(panel, group, accessor) {\r\n super(panel.id);\r\n this.panel = panel;\r\n this.accessor = accessor;\r\n this._onDidTitleChange = new Emitter();\r\n this.onDidTitleChange = this._onDidTitleChange.event;\r\n this._onDidActiveGroupChange = new Emitter();\r\n this.onDidActiveGroupChange = this._onDidActiveGroupChange.event;\r\n this._onDidGroupChange = new Emitter();\r\n this.onDidGroupChange = this._onDidGroupChange.event;\r\n this.disposable = new MutableDisposable();\r\n this.initialize(panel);\r\n this._group = group;\r\n this.addDisposables(this.disposable, this._onDidTitleChange, this._onDidGroupChange, this._onDidActiveGroupChange);\r\n }\r\n moveTo(options) {\r\n var _a;\r\n this.accessor.moveGroupOrPanel(options.group, this._group.id, this.panel.id, (_a = options.position) !== null && _a !== void 0 ? _a : 'center', options.index);\r\n }\r\n setTitle(title) {\r\n this.panel.setTitle(title);\r\n }\r\n close() {\r\n this.group.model.closePanel(this.panel);\r\n }\r\n}\r\n//# sourceMappingURL=dockviewPanelApi.js.map","import { DockviewPanelApiImpl, } from '../api/dockviewPanelApi';\r\nimport { CompositeDisposable } from '../lifecycle';\r\nexport class DockviewPanel extends CompositeDisposable {\r\n get params() {\r\n return this._params;\r\n }\r\n get title() {\r\n return this._title;\r\n }\r\n get group() {\r\n return this._group;\r\n }\r\n constructor(id, accessor, containerApi, group, view) {\r\n super();\r\n this.id = id;\r\n this.containerApi = containerApi;\r\n this.view = view;\r\n this._group = group;\r\n this.api = new DockviewPanelApiImpl(this, this._group, accessor);\r\n this.addDisposables(this.api.onActiveChange(() => {\r\n accessor.setActivePanel(this);\r\n }), this.api.onDidSizeChange((event) => {\r\n // forward the resize event to the group since if you want to resize a panel\r\n // you are actually just resizing the panels parent which is the group\r\n this.group.api.setSize(event);\r\n }));\r\n }\r\n init(params) {\r\n this._params = params.params;\r\n this.view.init(Object.assign(Object.assign({}, params), { api: this.api, containerApi: this.containerApi }));\r\n this.setTitle(params.title);\r\n }\r\n focus() {\r\n this.api._onFocusEvent.fire();\r\n }\r\n toJSON() {\r\n return {\r\n id: this.id,\r\n contentComponent: this.view.contentComponent,\r\n tabComponent: this.view.tabComponent,\r\n params: Object.keys(this._params || {}).length > 0\r\n ? this._params\r\n : undefined,\r\n title: this.title,\r\n };\r\n }\r\n setTitle(title) {\r\n const didTitleChange = title !== this.title;\r\n if (didTitleChange) {\r\n this._title = title;\r\n this.view.update({\r\n params: {\r\n params: this._params,\r\n title: this.title,\r\n },\r\n });\r\n this.api._onDidTitleChange.fire({ title });\r\n }\r\n }\r\n update(event) {\r\n // merge the new parameters with the existing parameters\r\n this._params = Object.assign(Object.assign({}, (this._params || {})), event.params);\r\n /**\r\n * delete new keys that have a value of undefined,\r\n * allow values of null\r\n */\r\n for (const key of Object.keys(event.params)) {\r\n if (event.params[key] === undefined) {\r\n delete this._params[key];\r\n }\r\n }\r\n // update the view with the updated props\r\n this.view.update({\r\n params: {\r\n params: this._params,\r\n title: this.title,\r\n },\r\n });\r\n }\r\n updateParentGroup(group, isGroupActive) {\r\n this._group = group;\r\n this.api.group = group;\r\n const isPanelVisible = this._group.model.isPanelActive(this);\r\n this.api._onDidActiveChange.fire({\r\n isActive: isGroupActive && isPanelVisible,\r\n });\r\n this.api._onDidVisibilityChange.fire({\r\n isVisible: isPanelVisible,\r\n });\r\n this.view.updateParentGroup(this._group, this._group.model.isPanelActive(this));\r\n }\r\n layout(width, height) {\r\n // the obtain the correct dimensions of the content panel we must deduct the tab height\r\n this.api._onDidDimensionChange.fire({\r\n width,\r\n height: height,\r\n });\r\n this.view.layout(width, height);\r\n }\r\n dispose() {\r\n this.api.dispose();\r\n this.view.dispose();\r\n }\r\n}\r\n//# sourceMappingURL=dockviewPanel.js.map","const createSvgElementFromPath = (params) => {\r\n const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\r\n svg.setAttributeNS(null, 'height', params.height);\r\n svg.setAttributeNS(null, 'width', params.width);\r\n svg.setAttributeNS(null, 'viewBox', params.viewbox);\r\n svg.setAttributeNS(null, 'aria-hidden', 'false');\r\n svg.setAttributeNS(null, 'focusable', 'false');\r\n svg.classList.add('dockview-svg');\r\n const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');\r\n path.setAttributeNS(null, 'd', params.path);\r\n svg.appendChild(path);\r\n return svg;\r\n};\r\nexport const createCloseButton = () => createSvgElementFromPath({\r\n width: '11',\r\n height: '11',\r\n viewbox: '0 0 28 28',\r\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',\r\n});\r\nexport const createExpandMoreButton = () => createSvgElementFromPath({\r\n width: '11',\r\n height: '11',\r\n viewbox: '0 0 24 15',\r\n path: 'M12 14.15L0 2.15L2.15 0L12 9.9L21.85 0.0499992L24 2.2L12 14.15Z',\r\n});\r\nexport const createChevronRightButton = () => createSvgElementFromPath({\r\n width: '11',\r\n height: '11',\r\n viewbox: '0 0 15 25',\r\n path: 'M2.15 24.1L0 21.95L9.9 12.05L0 2.15L2.15 0L14.2 12.05L2.15 24.1Z',\r\n});\r\n//# sourceMappingURL=svg.js.map","import { CompositeDisposable } from '../../../lifecycle';\r\nimport { addDisposableListener } from '../../../events';\r\nimport { createCloseButton } from '../../../svg';\r\nexport class DefaultTab extends CompositeDisposable {\r\n get element() {\r\n return this._element;\r\n }\r\n constructor() {\r\n super();\r\n //\r\n this.params = {};\r\n this._element = document.createElement('div');\r\n this._element.className = 'default-tab';\r\n //\r\n this._content = document.createElement('div');\r\n this._content.className = 'tab-content';\r\n //\r\n this._actionContainer = document.createElement('div');\r\n this._actionContainer.className = 'action-container';\r\n //\r\n this._list = document.createElement('ul');\r\n this._list.className = 'tab-list';\r\n //\r\n this.action = document.createElement('div');\r\n this.action.className = 'tab-action';\r\n this.action.appendChild(createCloseButton());\r\n //\r\n this._element.appendChild(this._content);\r\n this._element.appendChild(this._actionContainer);\r\n this._actionContainer.appendChild(this._list);\r\n this._list.appendChild(this.action);\r\n //\r\n this.addDisposables(addDisposableListener(this._actionContainer, 'mousedown', (ev) => {\r\n ev.preventDefault();\r\n }));\r\n this.render();\r\n }\r\n update(event) {\r\n this.params = Object.assign(Object.assign({}, this.params), event.params);\r\n this.render();\r\n }\r\n focus() {\r\n //noop\r\n }\r\n init(params) {\r\n this.params = params;\r\n this._content.textContent = params.title;\r\n addDisposableListener(this.action, 'click', (ev) => {\r\n ev.preventDefault(); //\r\n this.params.api.close();\r\n });\r\n }\r\n onGroupChange(_group) {\r\n this.render();\r\n }\r\n onPanelVisibleChange(_isPanelVisible) {\r\n this.render();\r\n }\r\n layout(_width, _height) {\r\n // noop\r\n }\r\n render() {\r\n if (this._content.textContent !== this.params.title) {\r\n this._content.textContent = this.params.title;\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=defaultTab.js.map","import { DefaultTab } from './components/tab/defaultTab';\r\nimport { createComponent } from '../panel/componentFactory';\r\nexport class DockviewPanelModel {\r\n get content() {\r\n return this._content;\r\n }\r\n get tab() {\r\n return this._tab;\r\n }\r\n constructor(accessor, id, contentComponent, tabComponent) {\r\n this.accessor = accessor;\r\n this.id = id;\r\n this.contentComponent = contentComponent;\r\n this.tabComponent = tabComponent;\r\n this._group = null;\r\n this._isPanelVisible = null;\r\n this._content = this.createContentComponent(this.id, contentComponent);\r\n this._tab = this.createTabComponent(this.id, tabComponent);\r\n }\r\n init(params) {\r\n this.content.init(Object.assign(Object.assign({}, params), { tab: this.tab }));\r\n this.tab.init(params);\r\n }\r\n updateParentGroup(group, isPanelVisible) {\r\n if (group !== this._group) {\r\n this._group = group;\r\n if (this._content.onGroupChange) {\r\n this._content.onGroupChange(group);\r\n }\r\n if (this._tab.onGroupChange) {\r\n this._tab.onGroupChange(group);\r\n }\r\n }\r\n if (isPanelVisible !== this._isPanelVisible) {\r\n this._isPanelVisible = isPanelVisible;\r\n if (this._content.onPanelVisibleChange) {\r\n this._content.onPanelVisibleChange(isPanelVisible);\r\n }\r\n if (this._tab.onPanelVisibleChange) {\r\n this._tab.onPanelVisibleChange(isPanelVisible);\r\n }\r\n }\r\n }\r\n layout(width, height) {\r\n var _a, _b;\r\n (_b = (_a = this.content).layout) === null || _b === void 0 ? void 0 : _b.call(_a, width, height);\r\n }\r\n update(event) {\r\n var _a, _b, _c, _d;\r\n (_b = (_a = this.content).update) === null || _b === void 0 ? void 0 : _b.call(_a, event);\r\n (_d = (_c = this.tab).update) === null || _d === void 0 ? void 0 : _d.call(_c, event);\r\n }\r\n dispose() {\r\n var _a, _b, _c, _d;\r\n (_b = (_a = this.content).dispose) === null || _b === void 0 ? void 0 : _b.call(_a);\r\n (_d = (_c = this.tab).dispose) === null || _d === void 0 ? void 0 : _d.call(_c);\r\n }\r\n createContentComponent(id, componentName) {\r\n var _a;\r\n return createComponent(id, componentName, this.accessor.options.components || {}, this.accessor.options.frameworkComponents, (_a = this.accessor.options.frameworkComponentFactory) === null || _a === void 0 ? void 0 : _a.content);\r\n }\r\n createTabComponent(id, componentName) {\r\n var _a, _b;\r\n if (componentName) {\r\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());\r\n }\r\n else if (this.accessor.options.defaultTabComponent) {\r\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());\r\n }\r\n else {\r\n return new DefaultTab();\r\n }\r\n }\r\n}\r\n//# sourceMappingURL=dockviewPanelModel.js.map","import { DockviewPanel } from './dockviewPanel';\r\nimport { DockviewPanelModel } from './dockviewPanelModel';\r\nimport { DockviewApi } from '../api/component.api';\r\nexport class DefaultDockviewDeserialzier {\r\n constructor(layout) {\r\n this.layout = layout;\r\n }\r\n fromJSON(panelData, group) {\r\n var _a;\r\n const panelId = panelData.id;\r\n const params = panelData.params;\r\n const title = panelData.title;\r\n const viewData = panelData.view;\r\n const contentComponent = viewData\r\n ? viewData.content.id\r\n : panelData.contentComponent || 'unknown';\r\n const tabComponent = viewData\r\n ? (_a = viewData.tab) === null || _a === void 0 ? void 0 : _a.id\r\n : panelData.tabComponent;\r\n const view = new DockviewPanelModel(this.layout, panelId, contentComponent, tabComponent);\r\n const panel = new DockviewPanel(panelId, this.layout, new DockviewApi(this.layout), group, view);\r\n panel.init({\r\n title: title || panelId,\r\n params: params || {},\r\n });\r\n return panel;\r\n }\r\n}\r\n//# sourceMappingURL=deserializer.js.map","import { addDisposableListener } from '../../../events';\r\nimport { toggleClass } from '../../../dom';\r\nimport { CompositeDisposable } from '../../../lifecycle';\r\nimport { createCloseButton } from '../../../svg';\r\nexport class Watermark extends CompositeDisposable {\r\n get element() {\r\n return this._element;\r\n }\r\n constructor() {\r\n super();\r\n this._element = document.createElement('div');\r\n this._element.className = 'watermark';\r\n const title = document.createElement('div');\r\n title.className = 'watermark-title';\r\n const emptySpace = document.createElement('span');\r\n emptySpace.style.flexGrow = '1';\r\n const content = document.createElement('div');\r\n content.className = 'watermark-content';\r\n this._element.appendChild(title);\r\n this._element.appendChild(content);\r\n const actionsContainer = document.createElement('div');\r\n actionsContainer.className = 'actions-container';\r\n const closeAnchor = document.createElement('div');\r\n closeAnchor.className = 'close-action';\r\n closeAnchor.appendChild(createCloseButton());\r\n actionsContainer.appendChild(closeAnchor);\r\n title.appendChild(emptySpace);\r\n title.appendChild(actionsContainer);\r\n this.addDisposables(addDisposableListener(closeAnchor, 'click', (ev) => {\r\n var _a;\r\n ev.preventDefault();\r\n if (this._group) {\r\n (_a = this._api) === null || _a === void 0 ? void 0 : _a.removeGroup(this._group);\r\n }\r\n }));\r\n }\r\n update(_event) {\r\n // noop\r\n }\r\n focus() {\r\n // noop\r\n }\r\n layout(_width, _height) {\r\n // noop\r\n }\r\n init(_params) {\r\n this._api = _params.containerApi;\r\n this.render();\r\n }\r\n updateParentGroup(group, _visible) {\r\n this._group = group;\r\n this.render();\r\n }\r\n dispose() {\r\n super.dispose();\r\n }\r\n render() {\r\n const isOneGroup = !!(this._api && this._api.size <= 1);\r\n toggleClass(this.element, 'has-actions', isOneGroup);\r\n }\r\n}\r\n//# sourceMappingURL=watermark.js.map","import { getElementsByTagName, quasiDefaultPrevented, toggleClass, } from '../dom';\r\nimport { Emitter, addDisposableListener, addDisposableWindowListener, } from '../events';\r\nimport { CompositeDisposable, MutableDisposable } from '../lifecycle';\r\nimport { clamp } from '../math';\r\nconst bringElementToFront = (() => {\r\n let previous = null;\r\n function pushToTop(element) {\r\n if (previous !== element && previous !== null) {\r\n toggleClass(previous, 'dv-bring-to-front', false);\r\n }\r\n toggleClass(element, 'dv-bring-to-front', true);\r\n previous = element;\r\n }\r\n return pushToTop;\r\n})();\r\nexport class Overlay extends CompositeDisposable {\r\n set minimumInViewportWidth(value) {\r\n this.options.minimumInViewportWidth = value;\r\n }\r\n set minimumInViewportHeight(value) {\r\n this.options.minimumInViewportHeight = value;\r\n }\r\n constructor(options) {\r\n super();\r\n this.options = options;\r\n this._element = document.createElement('div');\r\n this._onDidChange = new Emitter();\r\n this.onDidChange = this._onDidChange.event;\r\n this._onDidChangeEnd = new Emitter();\r\n this.onDidChangeEnd = this._onDidChangeEnd.event;\r\n this.addDisposables(this._onDidChange, this._onDidChangeEnd);\r\n this._element.className = 'dv-resize-container';\r\n this.setupResize('top');\r\n this.setupResize('bottom');\r\n this.setupResize('left');\r\n this.setupResize('right');\r\n this.setupResize('topleft');\r\n this.setupResize('topright');\r\n this.setupResize('bottomleft');\r\n this.setupResize('bottomright');\r\n this._element.appendChild(this.options.content);\r\n this.options.container.appendChild(this._element);\r\n // if input bad resize within acceptable boundaries\r\n this.setBounds({\r\n height: this.options.height,\r\n width: this.options.width,\r\n top: this.options.top,\r\n left: this.options.left,\r\n });\r\n }\r\n setBounds(bounds = {}) {\r\n if (typeof bounds.height === 'number') {\r\n this._element.style.height = `${bounds.height}px`;\r\n }\r\n if (typeof bounds.width === 'number') {\r\n this._element.style.width = `${bounds.width}px`;\r\n }\r\n if (typeof bounds.top === 'number') {\r\n this._element.style.top = `${bounds.top}px`;\r\n }\r\n if (typeof bounds.left === 'number') {\r\n this._element.style.left = `${bounds.left}px`;\r\n }\r\n const containerRect = this.options.container.getBoundingClientRect();\r\n const overlayRect = this._element.getBoundingClientRect();\r\n // region: ensure bounds within allowable limits\r\n // a minimum width of minimumViewportWidth must be inside the viewport\r\n const xOffset = Math.max(0, this.getMinimumWidth(overlayRect.width));\r\n // a minimum height of minimumViewportHeight must be inside the viewport\r\n const yOffset = typeof this.options.minimumInViewportHeight === 'number'\r\n ? Math.max(0, this.getMinimumHeight(overlayRect.height))\r\n : 0;\r\n const left = clamp(overlayRect.left - containerRect.left, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));\r\n const top = clamp(overlayRect.top - containerRect.top, -yOffset, Math.max(0, containerRect.height - overlayRect.height + yOffset));\r\n this._element.style.left = `${left}px`;\r\n this._element.style.top = `${top}px`;\r\n this._onDidChange.fire();\r\n }\r\n toJSON() {\r\n const container = this.options.container.getBoundingClientRect();\r\n const element = this._element.getBoundingClientRect();\r\n return {\r\n top: element.top - container.top,\r\n left: element.left - container.left,\r\n width: element.width,\r\n height: element.height,\r\n };\r\n }\r\n setupDrag(dragTarget, options = { inDragMode: false }) {\r\n const move = new MutableDisposable();\r\n const track = () => {\r\n let offset = null;\r\n const iframes = [\r\n ...getElementsByTagName('iframe'),\r\n ...getElementsByTagName('webview'),\r\n ];\r\n for (const iframe of iframes) {\r\n iframe.style.pointerEvents = 'none';\r\n }\r\n move.value = new CompositeDisposable({\r\n dispose: () => {\r\n for (const iframe of iframes) {\r\n iframe.style.pointerEvents = 'auto';\r\n }\r\n },\r\n }, addDisposableWindowListener(window, 'mousemove', (e) => {\r\n const containerRect = this.options.container.getBoundingClientRect();\r\n const x = e.clientX - containerRect.left;\r\n const y = e.clientY - containerRect.top;\r\n toggleClass(this._element, 'dv-resize-container-dragging', true);\r\n const overlayRect = this._element.getBoundingClientRect();\r\n if (offset === null) {\r\n offset = {\r\n x: e.clientX - overlayRect.left,\r\n y: e.clientY - overlayRect.top,\r\n };\r\n }\r\n const xOffset = Math.max(0, this.getMinimumWidth(overlayRect.width));\r\n const yOffset = Math.max(0, this.options.minimumInViewportHeight\r\n ? this.getMinimumHeight(overlayRect.height)\r\n : 0);\r\n const left = clamp(x - offset.x, -xOffset, Math.max(0, containerRect.width - overlayRect.width + xOffset));\r\n const top = clamp(y - offset.y, -yOffset, Math.max(0, containerRect.height - overlayRect.height + yOffset));\r\n this.setBounds({ top, left });\r\n }), addDisposableWindowListener(window, 'mouseup', () => {\r\n toggleClass(this._element, 'dv-resize-container-dragging', false);\r\n move.dispose();\r\n this._onDidChangeEnd.fire();\r\n }));\r\n };\r\n this.addDisposables(move, addDisposableListener(dragTarget, 'mousedown', (event) => {\r\n if (event.defaultPrevented) {\r\n event.preventDefault();\r\n return;\r\n }\r\n // if somebody has marked this event then treat as a defaultPrevented\r\n // without actually calling event.preventDefault()\r\n if (quasiDefaultPrevented(event)) {\r\n return;\r\n }\r\n track();\r\n }), addDisposableListener(this.options.content, 'mousedown', (event) => {\r\n if (event.defaultPrevented) {\r\n return;\r\n }\r\n // if somebody has marked this event then treat as a defaultPrevented\r\n // without actually calling event.preventDefault()\r\n if (quasiDefaultPrevented(event)) {\r\n return;\r\n }\r\n if (event.shiftKey) {\r\n track();\r\n }\r\n }), addDisposableListener(this.options.content, 'mousedown', () => {\r\n bringElementToFront(this._element);\r\n }, true));\r\n bringElementToFront(this._element);\r\n if (options.inDragMode) {\r\n track();\r\n }\r\n }\r\n setupResize(direction) {\r\n const resizeHandleElement = document.createElement('div');\r\n resizeHandleElement.className = `dv-resize-handle-${direction}`;\r\n this._element.appendChild(resizeHandleElement);\r\n const move = new MutableDisposable();\r\n this.addDisposables(move, addDisposableListener(resizeHandleElement, 'mousedown', (e) => {\r\n e.preventDefault();\r\n let startPosition = null;\r\n const iframes = [\r\n ...getElementsByTagName('iframe'),\r\n ...getElementsByTagName('webview'),\r\n ];\r\n for (const iframe of iframes) {\r\n iframe.style.pointerEvents = 'none';\r\n }\r\n move.value = new CompositeDisposable(addDisposableWindowListener(window, 'mousemove', (e) => {\r\n const containerRect = this.options.container.getBoundingClientRect();\r\n const overlayRect = this._element.getBoundingClientRect();\r\n const y = e.clientY - containerRect.top;\r\n const x = e.clientX - containerRect.left;\r\n if (startPosition === null) {\r\n // record the initial dimensions since as all subsequence moves are relative to this\r\n startPosition = {\r\n originalY: y,\r\n originalHeight: overlayRect.height,\r\n originalX: x,\r\n originalWidth: overlayRect.width,\r\n };\r\n }\r\n let top = undefined;\r\n let height = undefined;\r\n let left = undefined;\r\n let width = undefined;\r\n const moveTop = () => {\r\n top = clamp(y, -Number.MAX_VALUE, startPosition.originalY +\r\n startPosition.originalHeight >\r\n containerRect.height\r\n ? this.getMinimumHeight(containerRect.height)\r\n : Math.max(0, startPosition.originalY +\r\n startPosition.originalHeight -\r\n Overlay.MINIMUM_HEIGHT));\r\n height =\r\n startPosition.originalY +\r\n startPosition.originalHeight -\r\n top;\r\n };\r\n const moveBottom = () => {\r\n top =\r\n startPosition.originalY -\r\n startPosition.originalHeight;\r\n height = clamp(y - top, top < 0 &&\r\n typeof this.options\r\n .minimumInViewportHeight === 'number'\r\n ? -top +\r\n this.options.minimumInViewportHeight\r\n : Overlay.MINIMUM_HEIGHT, Number.MAX_VALUE);\r\n };\r\n const moveLeft = () => {\r\n left = clamp(x, -Number.MAX_VALUE, startPosition.originalX +\r\n startPosition.originalWidth >\r\n containerRect.width\r\n ? this.getMinimumWidth(containerRect.width)\r\n : Math.max(0, startPosition.originalX +\r\n startPosition.originalWidth -\r\n Overlay.MINIMUM_WIDTH));\r\n width =\r\n startPosition.originalX +\r\n startPosition.originalWidth -\r\n left;\r\n };\r\n const moveRight = () => {\r\n left =\r\n startPosition.originalX -\r\n startPosition.originalWidth;\r\n width = clamp(x - left, left < 0 &&\r\n typeof this.options\r\n .minimumInViewportWidth === 'number'\r\n ? -left +\r\n this.options.minimumInViewportWidth\r\n : Overlay.MINIMUM_WIDTH, Number.MAX_VALUE);\r\n };\r\n switch (direction) {\r\n case 'top':\r\n moveTop();\r\n break;\r\n case 'bottom':\r\n moveBottom();\r\n break;\r\n case 'left':\r\n moveLeft();\r\n break;\r\n case 'right':\r\n moveRight();\r\n break;\r\n case 'topleft':\r\n moveTop();\r\n moveLeft();\r\n break;\r\n case 'topright':\r\n moveTop();\r\n moveRight();\r\n break;\r\n case 'bottomleft':\r\n moveBottom();\r\n moveLeft();\r\n break;\r\n case 'bottomright':\r\n moveBottom();\r\n moveRight();\r\n break;\r\n }\r\n this.setBounds({ height, width, top, left });\r\n }), {\r\n dispose: () => {\r\n for (const iframe of iframes) {\r\n iframe.style.pointerEvents = 'auto';\r\n }\r\n },\r\n }, addDisposableWindowListener(window, 'mouseup', () => {\r\n move.dispose();\r\n this._onDidChangeEnd.fire();\r\n }));\r\n }));\r\n }\r\n getMinimumWidth(width) {\r\n if (typeof this.options.minimumInViewportWidth === 'number') {\r\n return width - this.options.minimumInViewportWidth;\r\n }\r\n return 0;\r\n }\r\n getMinimumHeight(height) {\r\n if (typeof this.options.minimumInViewportHeight === 'number') {\r\n return height - this.options.minimumInViewportHeight;\r\n }\r\n return height;\r\n }\r\n dispose() {\r\n this._element.remove();\r\n super.dispose();\r\n }\r\n}\r\nOverlay.MINIMUM_HEIGHT = 20;\r\nOverlay.MINIMUM_WIDTH = 20;\r\n//# sourceMappingURL=overlay.js.map","import { CompositeDisposable } from '../lifecycle';\r\nexport class DockviewFloatingGroupPanel extends CompositeDisposable {\r\n constructor(group, overlay) {\r\n super();\r\n this.group = group;\r\n this.overlay = overlay;\r\n this.addDisposables(overlay);\r\n }\r\n position(bounds) {\r\n this.overlay.setBounds(bounds);\r\n }\r\n}\r\n//# sourceMappingURL=dockviewFloatingGroupPanel.js.map","import { getRelativeLocation, getGridLocation, } from '../gridview/gridview';\r\nimport { directionToPosition, Droptarget } from '../dnd/droptarget';\r\nimport { tail, sequenceEquals, remove } from '../array';\r\nimport { DockviewPanel } from './dockviewPanel';\r\nimport { CompositeDisposable } from '../lifecycle';\r\nimport { Event, Emitter } from '../events';\r\nimport { Watermark } from './components/watermark/watermark';\r\nimport { DockviewDropTargets, } from './types';\r\nimport { sequentialNumberGenerator } from '../math';\r\nimport { DefaultDockviewDeserialzier } from './deserializer';\r\nimport { createComponent } from '../panel/componentFactory';\r\nimport { isGroupOptionsWithGroup, isGroupOptionsWithPanel, isPanelOptionsWithGroup, isPanelOptionsWithPanel, } from './options';\r\nimport { BaseGrid, toTarget, } from '../gridview/baseComponentGridview';\r\nimport { DockviewApi } from '../api/component.api';\r\nimport { Orientation, Sizing } from '../splitview/splitview';\r\nimport { DockviewGroupPanel } from './dockviewGroupPanel';\r\nimport { DockviewPanelModel } from './dockviewPanelModel';\r\nimport { getPanelData } from '../dnd/dataTransfer';\r\nimport { Overlay } from '../dnd/overlay';\r\nimport { toggleClass, watchElementResize } from '../dom';\r\nimport { DockviewFloatingGroupPanel, } from './dockviewFloatingGroupPanel';\r\nconst DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE = 100;\r\nexport class DockviewComponent extends BaseGrid {\r\n get orientation() {\r\n return this.gridview.orientation;\r\n }\r\n get totalPanels() {\r\n return this.panels.length;\r\n }\r\n get panels() {\r\n return this.groups.flatMap((group) => group.panels);\r\n }\r\n get options() {\r\n return this._options;\r\n }\r\n get activePanel() {\r\n const activeGroup = this.activeGroup;\r\n if (!activeGroup) {\r\n return undefined;\r\n }\r\n return activeGroup.activePanel;\r\n }\r\n constructor(options) {\r\n super({\r\n proportionalLayout: true,\r\n orientation: options.orientation || Orientation.HORIZONTAL,\r\n styles: options.styles,\r\n parentElement: options.parentElement,\r\n });\r\n this.nextGroupId = sequentialNumberGenerator();\r\n this._deserializer = new DefaultDockviewDeserialzier(this);\r\n this.watermark = null;\r\n this._onWillDragPanel = new Emitter();\r\n this.onWillDragPanel = this._onWillDragPanel.event;\r\n this._onWillDragGroup = new Emitter();\r\n this.onWillDragGroup = this._onWillDragGroup.event;\r\n this._onDidDrop = new Emitter();\r\n this.onDidDrop = this._onDidDrop.event;\r\n this._onDidRemovePanel = new Emitter();\r\n this.onDidRemovePanel = this._onDidRemovePanel.event;\r\n this._onDidAddPanel = new Emitter();\r\n this.onDidAddPanel = this._onDidAddPanel.event;\r\n this._onDidLayoutFromJSON = new Emitter();\r\n this.onDidLayoutFromJSON = this._onDidLayoutFromJSON.event;\r\n this._onDidActivePanelChange = new Emitter();\r\n this.onDidActivePanelChange = this._onDidActivePanelChange.event;\r\n this.floatingGroups = [];\r\n toggleClass(this.gridview.element, 'dv-dockview', true);\r\n this.addDisposables(this._onWillDragPanel, this._onWillDragGroup, this._onDidActivePanelChange, this._onDidAddPanel, this._onDidRemovePanel, this._onDidLayoutFromJSON, this._onDidDrop, Event.any(this.onDidAddGroup, this.onDidRemoveGroup)(() => {\r\n this.updateWatermark();\r\n }), Event.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidActivePanelChange)(() => {\r\n this._bufferOnDidLayoutChange.fire();\r\n }));\r\n this._options = options;\r\n if (!this.options.components) {\r\n this.options.components = {};\r\n }\r\n if (!this.options.frameworkComponents) {\r\n this.options.frameworkComponents = {};\r\n }\r\n if (!this.options.frameworkTabComponents) {\r\n this.options.frameworkTabComponents = {};\r\n }\r\n if (!this.options.tabComponents) {\r\n this.options.tabComponents = {};\r\n }\r\n if (!this.options.watermarkComponent &&\r\n !this.options.watermarkFrameworkComponent) {\r\n this.options.watermarkComponent = Watermark;\r\n }\r\n const dropTarget = new Droptarget(this.element, {\r\n canDisplayOverlay: (event, position) => {\r\n const data = getPanelData();\r\n if (data) {\r\n if (data.viewId !== this.id) {\r\n return false;\r\n }\r\n if (position === 'center') {\r\n // center drop target is only allowed if there are no panels in the grid\r\n // floating panels are allowed\r\n return this.gridview.length === 0;\r\n }\r\n return true;\r\n }\r\n if (this.options.showDndOverlay) {\r\n if (position === 'center' && this.gridview.length !== 0) {\r\n /**\r\n * for external events only show the four-corner drag overlays, disable\r\n * the center position so that external drag events can fall through to the group\r\n * and panel drop target handlers\r\n */\r\n return false;\r\n }\r\n return this.options.showDndOverlay({\r\n nativeEvent: event,\r\n position: position,\r\n target: DockviewDropTargets.Edge,\r\n getData: getPanelData,\r\n });\r\n }\r\n return false;\r\n },\r\n acceptedTargetZones: ['top', 'bottom', 'left', 'right', 'center'],\r\n overlayModel: {\r\n activationSize: { type: 'pixels', value: 10 },\r\n size: { type: 'pixels', value: 20 },\r\n },\r\n });\r\n this.addDisposables(dropTarget.onDrop((event) => {\r\n const data = getPanelData();\r\n if (data) {\r\n this.moveGroupOrPanel(this.orthogonalize(event.position), data.groupId, data.panelId || undefined, 'center');\r\n }\r\n else {\r\n this._onDidDrop.fire(Object.assign(Object.assign({}, event), { api: this._api, group: null, getData: getPanelData }));\r\n }\r\n }), dropTarget);\r\n this._api = new DockviewApi(this);\r\n this.updateWatermark();\r\n }\r\n addFloatingGroup(item, coord, options) {\r\n var _a, _b, _c, _d, _e, _f;\r\n let group;\r\n if (item instanceof DockviewPanel) {\r\n group = this.createGroup();\r\n this.removePanel(item, {\r\n removeEmptyGroup: true,\r\n skipDispose: true,\r\n });\r\n group.model.openPanel(item);\r\n }\r\n else {\r\n group = item;\r\n const skip = typeof (options === null || options === void 0 ? void 0 : options.skipRemoveGroup) === 'boolean' &&\r\n options.skipRemoveGroup;\r\n if (!skip) {\r\n this.doRemoveGroup(item, { skipDispose: true });\r\n }\r\n }\r\n group.model.isFloating = true;\r\n const overlayLeft = typeof (coord === null || coord === void 0 ? void 0 : coord.x) === 'number' ? Math.max(coord.x, 0) : 100;\r\n const overlayTop = typeof (coord === null || coord === void 0 ? void 0 : coord.y) === 'number' ? Math.max(coord.y, 0) : 100;\r\n const overlay = new Overlay({\r\n container: this.gridview.element,\r\n content: group.element,\r\n height: (_a = coord === null || coord === void 0 ? void 0 : coord.height) !== null && _a !== void 0 ? _a : 300,\r\n width: (_b = coord === null || coord === void 0 ? void 0 : coord.width) !== null && _b !== void 0 ? _b : 300,\r\n left: overlayLeft,\r\n top: overlayTop,\r\n minimumInViewportWidth: this.options.floatingGroupBounds === 'boundedWithinViewport'\r\n ? undefined\r\n : (_d = (_c = this.options.floatingGroupBounds) === null || _c === void 0 ? void 0 : _c.minimumWidthWithinViewport) !== null && _d !== void 0 ? _d : DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE,\r\n minimumInViewportHeight: this.options.floatingGroupBounds === 'boundedWithinViewport'\r\n ? undefined\r\n : (_f = (_e = this.options.floatingGroupBounds) === null || _e === void 0 ? void 0 : _e.minimumHeightWithinViewport) !== null && _f !== void 0 ? _f : DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE,\r\n });\r\n const el = group.element.querySelector('.void-container');\r\n if (!el) {\r\n throw new Error('failed to find drag handle');\r\n }\r\n overlay.setupDrag(el, {\r\n inDragMode: typeof (options === null || options === void 0 ? void 0 : options.inDragMode) === 'boolean'\r\n ? options.inDragMode\r\n : false,\r\n });\r\n const floatingGroupPanel = new DockviewFloatingGroupPanel(group, overlay);\r\n const disposable = watchElementResize(group.element, (entry) => {\r\n const { width, height } = entry.contentRect;\r\n group.layout(width, height); // let the group know it's size is changing so it can fire events to the panel\r\n });\r\n floatingGroupPanel.addDisposables(overlay.onDidChange(() => {\r\n // this is either a resize or a move\r\n // to inform the panels .layout(...) the group with it's current size\r\n // don't care about resize since the above watcher handles that\r\n group.layout(group.height, group.width);\r\n }), overlay.onDidChangeEnd(() => {\r\n this._bufferOnDidLayoutChange.fire();\r\n }), group.onDidChange((event) => {\r\n overlay.setBounds({\r\n height: event === null || event === void 0 ? void 0 : event.height,\r\n width: event === null || event === void 0 ? void 0 : event.width,\r\n });\r\n }), {\r\n dispose: () => {\r\n disposable.dispose();\r\n group.model.isFloating = false;\r\n remove(this.floatingGroups, floatingGroupPanel);\r\n this.updateWatermark();\r\n },\r\n });\r\n this.floatingGroups.push(floatingGroupPanel);\r\n this.updateWatermark();\r\n }\r\n orthogonalize(position) {\r\n switch (position) {\r\n case 'top':\r\n case 'bottom':\r\n if (this.gridview.orientation === Orientation.HORIZONTAL) {\r\n // we need to add to a vertical splitview but the current root is a horizontal splitview.\r\n // insert a vertical splitview at the root level and add the existing view as a child\r\n this.gridview.insertOrthogonalSplitviewAtRoot();\r\n }\r\n break;\r\n case 'left':\r\n case 'right':\r\n if (this.gridview.orientation === Orientation.VERTICAL) {\r\n // we need to add to a horizontal splitview but the current root is a vertical splitview.\r\n // insert a horiziontal splitview at the root level and add the existing view as a child\r\n this.gridview.insertOrthogonalSplitviewAtRoot();\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n switch (position) {\r\n case 'top':\r\n case 'left':\r\n case 'center':\r\n return this.createGroupAtLocation([0]); // insert into first position\r\n case 'bottom':\r\n case 'right':\r\n return this.createGroupAtLocation([this.gridview.length]); // insert into last position\r\n default:\r\n throw new Error(`unsupported position ${position}`);\r\n }\r\n }\r\n updateOptions(options) {\r\n var _a, _b;\r\n const hasOrientationChanged = typeof options.orientation === 'string' &&\r\n this.gridview.orientation !== options.orientation;\r\n const hasFloatingGroupOptionsChanged = options.floatingGroupBounds !== undefined &&\r\n options.floatingGroupBounds !== this.options.floatingGroupBounds;\r\n this._options = Object.assign(Object.assign({}, this.options), options);\r\n if (hasOrientationChanged) {\r\n this.gridview.orientation = options.orientation;\r\n }\r\n if (hasFloatingGroupOptionsChanged) {\r\n for (const group of this.floatingGroups) {\r\n switch (this.options.floatingGroupBounds) {\r\n case 'boundedWithinViewport':\r\n group.overlay.minimumInViewportHeight = undefined;\r\n group.overlay.minimumInViewportWidth = undefined;\r\n break;\r\n case undefined:\r\n group.overlay.minimumInViewportHeight =\r\n DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE;\r\n group.overlay.minimumInViewportWidth =\r\n DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE;\r\n break;\r\n default:\r\n group.overlay.minimumInViewportHeight =\r\n (_a = this.options.floatingGroupBounds) === null || _a === void 0 ? void 0 : _a.minimumHeightWithinViewport;\r\n group.overlay.minimumInViewportWidth =\r\n (_b = this.options.floatingGroupBounds) === null || _b === void 0 ? void 0 : _b.minimumWidthWithinViewport;\r\n }\r\n group.overlay.setBounds({});\r\n }\r\n }\r\n this.layout(this.gridview.width, this.gridview.height, true);\r\n }\r\n layout(width, height, forceResize) {\r\n super.layout(width, height, forceResize);\r\n if (this.floatingGroups) {\r\n for (const floating of this.floatingGroups) {\r\n // ensure floting groups stay within visible boundaries\r\n floating.overlay.setBounds();\r\n }\r\n }\r\n }\r\n focus() {\r\n var _a;\r\n (_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.focus();\r\n }\r\n getGroupPanel(id) {\r\n return this.panels.find((panel) => panel.id === id);\r\n }\r\n setActivePanel(panel) {\r\n this.doSetGroupActive(panel.group);\r\n panel.group.model.openPanel(panel);\r\n }\r\n moveToNext(options = {}) {\r\n var _a;\r\n if (!options.group) {\r\n if (!this.activeGroup) {\r\n return;\r\n }\r\n options.group = this.activeGroup;\r\n }\r\n if (options.includePanel && options.group) {\r\n if (options.group.activePanel !==\r\n options.group.panels[options.group.panels.length - 1]) {\r\n options.group.model.moveToNext({ suppressRoll: true });\r\n return;\r\n }\r\n }\r\n const location = getGridLocation(options.group.element);\r\n const next = (_a = this.gridview.next(location)) === null || _a === void 0 ? void 0 : _a.view;\r\n this.doSetGroupActive(next);\r\n }\r\n moveToPrevious(options = {}) {\r\n var _a;\r\n if (!options.group) {\r\n if (!this.activeGroup) {\r\n return;\r\n }\r\n options.group = this.activeGroup;\r\n }\r\n if (options.includePanel && options.group) {\r\n if (options.group.activePanel !== options.group.panels[0]) {\r\n options.group.model.moveToPrevious({ suppressRoll: true });\r\n return;\r\n }\r\n }\r\n const location = getGridLocation(options.group.element);\r\n const next = (_a = this.gridview.previous(location)) === null || _a === void 0 ? void 0 : _a.view;\r\n if (next) {\r\n this.doSetGroupActive(next);\r\n }\r\n }\r\n /**\r\n * Serialize the current state of the layout\r\n *\r\n * @returns A JSON respresentation of the layout\r\n */\r\n toJSON() {\r\n var _a;\r\n const data = this.gridview.serialize();\r\n const panels = this.panels.reduce((collection, panel) => {\r\n collection[panel.id] = panel.toJSON();\r\n return collection;\r\n }, {});\r\n const floats = this.floatingGroups.map((floatingGroup) => {\r\n return {\r\n data: floatingGroup.group.toJSON(),\r\n position: floatingGroup.overlay.toJSON(),\r\n };\r\n });\r\n const result = {\r\n grid: data,\r\n panels,\r\n activeGroup: (_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.id,\r\n };\r\n if (floats.length > 0) {\r\n result.floatingGroups = floats;\r\n }\r\n return result;\r\n }\r\n fromJSON(data) {\r\n var _a;\r\n this.clear();\r\n const { grid, panels, activeGroup } = data;\r\n if (grid.root.type !== 'branch' || !Array.isArray(grid.root.data)) {\r\n throw new Error('root must be of type branch');\r\n }\r\n // take note of the existing dimensions\r\n const width = this.width;\r\n const height = this.height;\r\n const createGroupFromSerializedState = (data) => {\r\n const { id, locked, hideHeader, views, activeView } = data;\r\n const group = this.createGroup({\r\n id,\r\n locked: !!locked,\r\n hideHeader: !!hideHeader,\r\n });\r\n this._onDidAddGroup.fire(group);\r\n for (const child of views) {\r\n const panel = this._deserializer.fromJSON(panels[child], group);\r\n const isActive = typeof activeView === 'string' && activeView === panel.id;\r\n group.model.openPanel(panel, {\r\n skipSetPanelActive: !isActive,\r\n skipSetGroupActive: true,\r\n });\r\n }\r\n if (!group.activePanel && group.panels.length > 0) {\r\n group.model.openPanel(group.panels[group.panels.length - 1], {\r\n skipSetGroupActive: true,\r\n });\r\n }\r\n return group;\r\n };\r\n this.gridview.deserialize(grid, {\r\n fromJSON: (node) => {\r\n return createGroupFromSerializedState(node.data);\r\n },\r\n });\r\n this.layout(width, height, true);\r\n const serializedFloatingGroups = (_a = data.floatingGroups) !== null && _a !== void 0 ? _a : [];\r\n for (const serializedFloatingGroup of serializedFloatingGroups) {\r\n const { data, position } = serializedFloatingGroup;\r\n const group = createGroupFromSerializedState(data);\r\n this.addFloatingGroup(group, {\r\n x: position.left,\r\n y: position.top,\r\n height: position.height,\r\n width: position.width,\r\n }, { skipRemoveGroup: true, inDragMode: false });\r\n }\r\n for (const floatingGroup of this.floatingGroups) {\r\n floatingGroup.overlay.setBounds();\r\n }\r\n if (typeof activeGroup === 'string') {\r\n const panel = this.getPanel(activeGroup);\r\n if (panel) {\r\n this.doSetGroupActive(panel);\r\n }\r\n }\r\n this._onDidLayoutFromJSON.fire();\r\n }\r\n clear() {\r\n const groups = Array.from(this._groups.values()).map((_) => _.value);\r\n const hasActiveGroup = !!this.activeGroup;\r\n const hasActivePanel = !!this.activePanel;\r\n for (const group of groups) {\r\n // remove the group will automatically remove the panels\r\n this.removeGroup(group, { skipActive: true });\r\n }\r\n if (hasActiveGroup) {\r\n this.doSetGroupActive(undefined);\r\n }\r\n if (hasActivePanel) {\r\n this._onDidActivePanelChange.fire(undefined);\r\n }\r\n this.gridview.clear();\r\n }\r\n closeAllGroups() {\r\n for (const entry of this._groups.entries()) {\r\n const [_, group] = entry;\r\n group.value.model.closeAllPanels();\r\n }\r\n }\r\n addPanel(options) {\r\n var _a, _b;\r\n if (this.panels.find((_) => _.id === options.id)) {\r\n throw new Error(`panel with id ${options.id} already exists`);\r\n }\r\n let referenceGroup;\r\n if (options.position && options.floating) {\r\n throw new Error('you can only provide one of: position, floating as arguments to .addPanel(...)');\r\n }\r\n if (options.position) {\r\n if (isPanelOptionsWithPanel(options.position)) {\r\n const referencePanel = typeof options.position.referencePanel === 'string'\r\n ? this.getGroupPanel(options.position.referencePanel)\r\n : options.position.referencePanel;\r\n if (!referencePanel) {\r\n throw new Error(`referencePanel ${options.position.referencePanel} does not exist`);\r\n }\r\n referenceGroup = this.findGroup(referencePanel);\r\n }\r\n else if (isPanelOptionsWithGroup(options.position)) {\r\n referenceGroup =\r\n typeof options.position.referenceGroup === 'string'\r\n ? (_a = this._groups.get(options.position.referenceGroup)) === null || _a === void 0 ? void 0 : _a.value\r\n : options.position.referenceGroup;\r\n if (!referenceGroup) {\r\n throw new Error(`referencePanel ${options.position.referenceGroup} does not exist`);\r\n }\r\n }\r\n else {\r\n const group = this.orthogonalize(directionToPosition(options.position.direction));\r\n const panel = this.createPanel(options, group);\r\n group.model.openPanel(panel);\r\n return panel;\r\n }\r\n }\r\n else {\r\n referenceGroup = this.activeGroup;\r\n }\r\n let panel;\r\n if (referenceGroup) {\r\n const target = toTarget(((_b = options.position) === null || _b === void 0 ? void 0 : _b.direction) || 'within');\r\n if (options.floating) {\r\n const group = this.createGroup();\r\n panel = this.createPanel(options, group);\r\n group.model.openPanel(panel);\r\n const o = typeof options.floating === 'object' &&\r\n options.floating !== null\r\n ? options.floating\r\n : {};\r\n this.addFloatingGroup(group, o, {\r\n inDragMode: false,\r\n skipRemoveGroup: true,\r\n });\r\n }\r\n else if (referenceGroup.api.isFloating || target === 'center') {\r\n panel = this.createPanel(options, referenceGroup);\r\n referenceGroup.model.openPanel(panel);\r\n }\r\n else {\r\n const location = getGridLocation(referenceGroup.element);\r\n const relativeLocation = getRelativeLocation(this.gridview.orientation, location, target);\r\n const group = this.createGroupAtLocation(relativeLocation);\r\n panel = this.createPanel(options, group);\r\n group.model.openPanel(panel);\r\n }\r\n }\r\n else if (options.floating) {\r\n const group = this.createGroup();\r\n panel = this.createPanel(options, group);\r\n group.model.openPanel(panel);\r\n const o = typeof options.floating === 'object' &&\r\n options.floating !== null\r\n ? options.floating\r\n : {};\r\n this.addFloatingGroup(group, o, {\r\n inDragMode: false,\r\n skipRemoveGroup: true,\r\n });\r\n }\r\n else {\r\n const group = this.createGroupAtLocation();\r\n panel = this.createPanel(options, group);\r\n group.model.openPanel(panel);\r\n }\r\n return panel;\r\n }\r\n removePanel(panel, options = {\r\n removeEmptyGroup: true,\r\n skipDispose: false,\r\n }) {\r\n const group = panel.group;\r\n if (!group) {\r\n throw new Error(`cannot remove panel ${panel.id}. it's missing a group.`);\r\n }\r\n group.model.removePanel(panel);\r\n if (!options.skipDispose) {\r\n panel.dispose();\r\n }\r\n if (group.size === 0 && options.removeEmptyGroup) {\r\n this.removeGroup(group);\r\n }\r\n }\r\n createWatermarkComponent() {\r\n var _a;\r\n return createComponent('watermark-id', 'watermark-name', this.options.watermarkComponent\r\n ? { 'watermark-name': this.options.watermarkComponent }\r\n : {}, this.options.watermarkFrameworkComponent\r\n ? { 'watermark-name': this.options.watermarkFrameworkComponent }\r\n : {}, (_a = this.options.frameworkComponentFactory) === null || _a === void 0 ? void 0 : _a.watermark);\r\n }\r\n updateWatermark() {\r\n var _a, _b;\r\n if (this.groups.filter((x) => !x.api.isFloating).length === 0) {\r\n if (!this.watermark) {\r\n this.watermark = this.createWatermarkComponent();\r\n this.watermark.init({\r\n containerApi: new DockviewApi(this),\r\n });\r\n const watermarkContainer = document.createElement('div');\r\n watermarkContainer.className = 'dv-watermark-container';\r\n watermarkContainer.appendChild(this.watermark.element);\r\n this.gridview.element.appendChild(watermarkContainer);\r\n }\r\n }\r\n else if (this.watermark) {\r\n this.watermark.element.parentElement.remove();\r\n (_b = (_a = this.watermark).dispose) === null || _b === void 0 ? void 0 : _b.call(_a);\r\n this.watermark = null;\r\n }\r\n }\r\n addGroup(options) {\r\n var _a;\r\n const group = this.createGroup();\r\n if (options) {\r\n let referenceGroup;\r\n if (isGroupOptionsWithPanel(options)) {\r\n const referencePanel = typeof options.referencePanel === 'string'\r\n ? this.panels.find((panel) => panel.id === options.referencePanel)\r\n : options.referencePanel;\r\n if (!referencePanel) {\r\n throw new Error(`reference panel ${options.referencePanel} does not exist`);\r\n }\r\n referenceGroup = this.findGroup(referencePanel);\r\n if (!referenceGroup) {\r\n throw new Error(`reference group for reference panel ${options.referencePanel} does not exist`);\r\n }\r\n }\r\n else if (isGroupOptionsWithGroup(options)) {\r\n referenceGroup =\r\n typeof options.referenceGroup === 'string'\r\n ? (_a = this._groups.get(options.referenceGroup)) === null || _a === void 0 ? void 0 : _a.value\r\n : options.referenceGroup;\r\n if (!referenceGroup) {\r\n throw new Error(`reference group ${options.referenceGroup} does not exist`);\r\n }\r\n }\r\n else {\r\n const group = this.orthogonalize(directionToPosition(options.direction));\r\n return group;\r\n }\r\n const target = toTarget(options.direction || 'within');\r\n const location = getGridLocation(referenceGroup.element);\r\n const relativeLocation = getRelativeLocation(this.gridview.orientation, location, target);\r\n this.doAddGroup(group, relativeLocation);\r\n return group;\r\n }\r\n else {\r\n this.doAddGroup(group);\r\n return group;\r\n }\r\n }\r\n removeGroup(group, options) {\r\n var _a;\r\n const panels = [...group.panels]; // reassign since group panels will mutate\r\n for (const panel of panels) {\r\n this.removePanel(panel, {\r\n removeEmptyGroup: false,\r\n skipDispose: (_a = options === null || options === void 0 ? void 0 : options.skipDispose) !== null && _a !== void 0 ? _a : false,\r\n });\r\n }\r\n this.doRemoveGroup(group, options);\r\n }\r\n doRemoveGroup(group, options) {\r\n const floatingGroup = this.floatingGroups.find((_) => _.group === group);\r\n if (floatingGroup) {\r\n if (!(options === null || options === void 0 ? void 0 : options.skipDispose)) {\r\n floatingGroup.group.dispose();\r\n this._groups.delete(group.id);\r\n }\r\n floatingGroup.dispose();\r\n return floatingGroup.group;\r\n }\r\n return super.doRemoveGroup(group, options);\r\n }\r\n moveGroupOrPanel(destinationGroup, sourceGroupId, sourceItemId, destinationTarget, destinationIndex) {\r\n var _a;\r\n const sourceGroup = sourceGroupId\r\n ? (_a = this._groups.get(sourceGroupId)) === null || _a === void 0 ? void 0 : _a.value\r\n : undefined;\r\n if (sourceItemId === undefined) {\r\n if (sourceGroup) {\r\n this.moveGroup(sourceGroup, destinationGroup, destinationTarget);\r\n }\r\n return;\r\n }\r\n if (!destinationTarget || destinationTarget === 'center') {\r\n const groupItem = (sourceGroup === null || sourceGroup === void 0 ? void 0 : sourceGroup.model.removePanel(sourceItemId)) ||\r\n this.panels.find((panel) => panel.id === sourceItemId);\r\n if (!groupItem) {\r\n throw new Error(`No panel with id ${sourceItemId}`);\r\n }\r\n if ((sourceGroup === null || sourceGroup === void 0 ? void 0 : sourceGroup.model.size) === 0) {\r\n this.doRemoveGroup(sourceGroup);\r\n }\r\n destinationGroup.model.openPanel(groupItem, {\r\n index: destinationIndex,\r\n });\r\n }\r\n else {\r\n const referenceLocation = getGridLocation(destinationGroup.element);\r\n const targetLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, destinationTarget);\r\n if (sourceGroup && sourceGroup.size < 2) {\r\n const [targetParentLocation, to] = tail(targetLocation);\r\n const isFloating = this.floatingGroups.find((x) => x.group === sourceGroup);\r\n if (!isFloating) {\r\n const sourceLocation = getGridLocation(sourceGroup.element);\r\n const [sourceParentLocation, from] = tail(sourceLocation);\r\n if (sequenceEquals(sourceParentLocation, targetParentLocation)) {\r\n // special case when 'swapping' two views within same grid location\r\n // if a group has one tab - we are essentially moving the 'group'\r\n // which is equivalent to swapping two views in this case\r\n this.gridview.moveView(sourceParentLocation, from, to);\r\n }\r\n }\r\n // source group will become empty so delete the group\r\n const targetGroup = this.doRemoveGroup(sourceGroup, {\r\n skipActive: true,\r\n skipDispose: true,\r\n });\r\n // after deleting the group we need to re-evaulate the ref location\r\n const updatedReferenceLocation = getGridLocation(destinationGroup.element);\r\n const location = getRelativeLocation(this.gridview.orientation, updatedReferenceLocation, destinationTarget);\r\n this.doAddGroup(targetGroup, location);\r\n }\r\n else {\r\n const groupItem = (sourceGroup === null || sourceGroup === void 0 ? void 0 : sourceGroup.model.removePanel(sourceItemId)) ||\r\n this.panels.find((panel) => panel.id === sourceItemId);\r\n if (!groupItem) {\r\n throw new Error(`No panel with id ${sourceItemId}`);\r\n }\r\n const dropLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, destinationTarget);\r\n const group = this.createGroupAtLocation(dropLocation);\r\n group.model.openPanel(groupItem);\r\n }\r\n }\r\n }\r\n moveGroup(sourceGroup, referenceGroup, target) {\r\n if (sourceGroup) {\r\n if (!target || target === 'center') {\r\n const activePanel = sourceGroup.activePanel;\r\n const panels = [...sourceGroup.panels].map((p) => sourceGroup.model.removePanel(p.id));\r\n if ((sourceGroup === null || sourceGroup === void 0 ? void 0 : sourceGroup.model.size) === 0) {\r\n this.doRemoveGroup(sourceGroup);\r\n }\r\n for (const panel of panels) {\r\n referenceGroup.model.openPanel(panel, {\r\n skipSetPanelActive: panel !== activePanel,\r\n });\r\n }\r\n }\r\n else {\r\n const floatingGroup = this.floatingGroups.find((x) => x.group === sourceGroup);\r\n if (floatingGroup) {\r\n floatingGroup.dispose();\r\n }\r\n else {\r\n this.gridview.removeView(getGridLocation(sourceGroup.element));\r\n }\r\n const referenceLocation = getGridLocation(referenceGroup.element);\r\n const dropLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, target);\r\n this.gridview.addView(sourceGroup, Sizing.Distribute, dropLocation);\r\n }\r\n }\r\n }\r\n doSetGroupActive(group, skipFocus) {\r\n var _a, _b;\r\n const isGroupAlreadyFocused = this._activeGroup === group;\r\n super.doSetGroupActive(group, skipFocus);\r\n if (!isGroupAlreadyFocused && ((_a = this._activeGroup) === null || _a === void 0 ? void 0 : _a.activePanel)) {\r\n this._onDidActivePanelChange.fire((_b = this._activeGroup) === null || _b === void 0 ? void 0 : _b.activePanel);\r\n }\r\n }\r\n createGroup(options) {\r\n if (!options) {\r\n options = {};\r\n }\r\n let id = options === null || options === void 0 ? void 0 : options.id;\r\n if (id && this._groups.has(options.id)) {\r\n console.warn(`Duplicate group id ${options === null || options === void 0 ? void 0 : options.id}. reassigning group id to avoid errors`);\r\n id = undefined;\r\n }\r\n if (!id) {\r\n id = this.nextGroupId.next();\r\n while (this._groups.has(id)) {\r\n id = this.nextGroupId.next();\r\n }\r\n }\r\n const view = new DockviewGroupPanel(this, id, options);\r\n view.init({ params: {}, accessor: null }); // required to initialized .part and allow for correct disposal of group\r\n if (!this._groups.has(view.id)) {\r\n const disposable = new CompositeDisposable(view.model.onTabDragStart((event) => {\r\n this._onWillDragPanel.fire(event);\r\n }), view.model.onGroupDragStart((event) => {\r\n this._onWillDragGroup.fire(event);\r\n }), view.model.onMove((event) => {\r\n const { groupId, itemId, target, index } = event;\r\n this.moveGroupOrPanel(view, groupId, itemId, target, index);\r\n }), view.model.onDidDrop((event) => {\r\n this._onDidDrop.fire(Object.assign(Object.assign({}, event), { api: this._api, group: view }));\r\n }), view.model.onDidAddPanel((event) => {\r\n this._onDidAddPanel.fire(event.panel);\r\n }), view.model.onDidRemovePanel((event) => {\r\n this._onDidRemovePanel.fire(event.panel);\r\n }), view.model.onDidActivePanelChange((event) => {\r\n this._onDidActivePanelChange.fire(event.panel);\r\n }));\r\n this._groups.set(view.id, { value: view, disposable });\r\n }\r\n // TODO: must be called after the above listeners have been setup,\r\n // not an ideal pattern\r\n view.initialize();\r\n return view;\r\n }\r\n createPanel(options, group) {\r\n const contentComponent = options.component;\r\n const tabComponent = options.tabComponent || this.options.defaultTabComponent;\r\n const view = new DockviewPanelModel(this, options.id, contentComponent, tabComponent);\r\n const panel = new DockviewPanel(options.id, this, this._api, group, view);\r\n panel.init({\r\n title: options.title || options.id,\r\n params: (options === null || options === void 0 ? void 0 : options.params) || {},\r\n });\r\n return panel;\r\n }\r\n createGroupAtLocation(location = [0]) {\r\n const group = this.createGroup();\r\n this.doAddGroup(group, location);\r\n return group;\r\n }\r\n findGroup(panel) {\r\n var _a;\r\n return (_a = Array.from(this._groups.values()).find((group) => group.value.model.containsPanel(panel))) === null || _a === void 0 ? void 0 : _a.value;\r\n }\r\n}\r\n//# sourceMappingURL=dockviewComponent.js.map","import { getRelativeLocation, getGridLocation, } from './gridview';\r\nimport { tail, sequenceEquals } from '../array';\r\nimport { CompositeDisposable } from '../lifecycle';\r\nimport { BaseGrid, toTarget, } from './baseComponentGridview';\r\nimport { createComponent } from '../panel/componentFactory';\r\nimport { Emitter } from '../events';\r\nexport class GridviewComponent extends BaseGrid {\r\n get orientation() {\r\n return this.gridview.orientation;\r\n }\r\n set orientation(value) {\r\n this.gridview.orientation = value;\r\n }\r\n get options() {\r\n return this._options;\r\n }\r\n get deserializer() {\r\n return this._deserializer;\r\n }\r\n set deserializer(value) {\r\n this._deserializer = value;\r\n }\r\n constructor(options) {\r\n super({\r\n parentElement: options.parentElement,\r\n proportionalLayout: options.proportionalLayout,\r\n orientation: options.orientation,\r\n styles: options.styles,\r\n });\r\n this._onDidLayoutfromJSON = new Emitter();\r\n this.onDidLayoutFromJSON = this._onDidLayoutfromJSON.event;\r\n this._options = options;\r\n if (!this.options.components) {\r\n this.options.components = {};\r\n }\r\n if (!this.options.frameworkComponents) {\r\n this.options.frameworkComponents = {};\r\n }\r\n }\r\n updateOptions(options) {\r\n const hasOrientationChanged = typeof options.orientation === 'string' &&\r\n this.gridview.orientation !== options.orientation;\r\n this._options = Object.assign(Object.assign({}, this.options), options);\r\n if (hasOrientationChanged) {\r\n this.gridview.orientation = options.orientation;\r\n }\r\n this.layout(this.gridview.width, this.gridview.height, true);\r\n }\r\n removePanel(panel) {\r\n this.removeGroup(panel);\r\n }\r\n /**\r\n * Serialize the current state of the layout\r\n *\r\n * @returns A JSON respresentation of the layout\r\n */\r\n toJSON() {\r\n var _a;\r\n const data = this.gridview.serialize();\r\n return {\r\n grid: data,\r\n activePanel: (_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.id,\r\n };\r\n }\r\n setVisible(panel, visible) {\r\n this.gridview.setViewVisible(getGridLocation(panel.element), visible);\r\n }\r\n setActive(panel) {\r\n this._groups.forEach((value, _key) => {\r\n value.value.setActive(panel === value.value);\r\n });\r\n }\r\n focus() {\r\n var _a;\r\n (_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.focus();\r\n }\r\n fromJSON(serializedGridview) {\r\n this.clear();\r\n const { grid, activePanel } = serializedGridview;\r\n const queue = [];\r\n // take note of the existing dimensions\r\n const width = this.width;\r\n const height = this.height;\r\n this.gridview.deserialize(grid, {\r\n fromJSON: (node) => {\r\n const { data } = node;\r\n const view = createComponent(data.id, data.component, this.options.components || {}, this.options.frameworkComponents || {}, this.options.frameworkComponentFactory\r\n ? {\r\n createComponent: this.options.frameworkComponentFactory\r\n .createComponent,\r\n }\r\n : undefined);\r\n queue.push(() => view.init({\r\n params: data.params,\r\n minimumWidth: data.minimumWidth,\r\n maximumWidth: data.maximumWidth,\r\n minimumHeight: data.minimumHeight,\r\n maximumHeight: data.maximumHeight,\r\n priority: data.priority,\r\n snap: !!data.snap,\r\n accessor: this,\r\n isVisible: node.visible,\r\n }));\r\n this._onDidAddGroup.fire(view);\r\n this.registerPanel(view);\r\n return view;\r\n },\r\n });\r\n this.layout(width, height, true);\r\n queue.forEach((f) => f());\r\n if (typeof activePanel === 'string') {\r\n const panel = this.getPanel(activePanel);\r\n if (panel) {\r\n this.doSetGroupActive(panel);\r\n }\r\n }\r\n this._onDidLayoutfromJSON.fire();\r\n }\r\n clear() {\r\n const hasActiveGroup = this.activeGroup;\r\n const groups = Array.from(this._groups.values()); // reassign since group panels will mutate\r\n for (const group of groups) {\r\n group.disposable.dispose();\r\n this.doRemoveGroup(group.value, { skipActive: true });\r\n }\r\n if (hasActiveGroup) {\r\n this.doSetGroupActive(undefined);\r\n }\r\n this.gridview.clear();\r\n }\r\n movePanel(panel, options) {\r\n var _a;\r\n let relativeLocation;\r\n const removedPanel = this.gridview.remove(panel);\r\n const referenceGroup = (_a = this._groups.get(options.reference)) === null || _a === void 0 ? void 0 : _a.value;\r\n if (!referenceGroup) {\r\n throw new Error(`reference group ${options.reference} does not exist`);\r\n }\r\n const target = toTarget(options.direction);\r\n if (target === 'center') {\r\n throw new Error(`${target} not supported as an option`);\r\n }\r\n else {\r\n const location = getGridLocation(referenceGroup.element);\r\n relativeLocation = getRelativeLocation(this.gridview.orientation, location, target);\r\n }\r\n this.doAddGroup(removedPanel, relativeLocation, options.size);\r\n }\r\n addPanel(options) {\r\n var _a, _b;\r\n let relativeLocation = options.location || [0];\r\n if ((_a = options.position) === null || _a === void 0 ? void 0 : _a.referencePanel) {\r\n const referenceGroup = (_b = this._groups.get(options.position.referencePanel)) === null || _b === void 0 ? void 0 : _b.value;\r\n if (!referenceGroup) {\r\n throw new Error(`reference group ${options.position.referencePanel} does not exist`);\r\n }\r\n const target = toTarget(options.position.direction);\r\n if (target === 'center') {\r\n throw new Error(`${target} not supported as an option`);\r\n }\r\n else {\r\n const location = getGridLocation(referenceGroup.element);\r\n relativeLocation = getRelativeLocation(this.gridview.orientation, location, target);\r\n }\r\n }\r\n const view = createComponent(options.id, options.component, this.options.components || {}, this.options.frameworkComponents || {}, this.options.frameworkComponentFactory\r\n ? {\r\n createComponent: this.options.frameworkComponentFactory\r\n .createComponent,\r\n }\r\n : undefined);\r\n view.init({\r\n params: options.params || {},\r\n minimumWidth: options.minimumWidth,\r\n maximumWidth: options.maximumWidth,\r\n minimumHeight: options.minimumHeight,\r\n maximumHeight: options.maximumHeight,\r\n priority: options.priority,\r\n snap: !!options.snap,\r\n accessor: this,\r\n isVisible: true,\r\n });\r\n this.registerPanel(view);\r\n this.doAddGroup(view, relativeLocation, options.size);\r\n return view;\r\n }\r\n registerPanel(panel) {\r\n const disposable = new CompositeDisposable(panel.api.onDidFocusChange((event) => {\r\n if (!event.isFocused) {\r\n return;\r\n }\r\n this._groups.forEach((groupItem) => {\r\n const group = groupItem.value;\r\n if (group !== panel) {\r\n group.setActive(false);\r\n }\r\n else {\r\n group.setActive(true);\r\n }\r\n });\r\n }));\r\n this._groups.set(panel.id, {\r\n value: panel,\r\n disposable,\r\n });\r\n }\r\n moveGroup(referenceGroup, groupId, target) {\r\n const sourceGroup = this.getPanel(groupId);\r\n if (!sourceGroup) {\r\n throw new Error('invalid operation');\r\n }\r\n const referenceLocation = getGridLocation(referenceGroup.element);\r\n const targetLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, target);\r\n const [targetParentLocation, to] = tail(targetLocation);\r\n const sourceLocation = getGridLocation(sourceGroup.element);\r\n const [sourceParentLocation, from] = tail(sourceLocation);\r\n if (sequenceEquals(sourceParentLocation, targetParentLocation)) {\r\n // special case when 'swapping' two views within same grid location\r\n // if a group has one tab - we are essentially moving the 'group'\r\n // which is equivalent to swapping two views in this case\r\n this.gridview.moveView(sourceParentLocation, from, to);\r\n return;\r\n }\r\n // source group will become empty so delete the group\r\n const targetGroup = this.doRemoveGroup(sourceGroup, {\r\n skipActive: true,\r\n skipDispose: true,\r\n });\r\n // after deleting the group we need to re-evaulate the ref location\r\n const updatedReferenceLocation = getGridLocation(referenceGroup.element);\r\n const location = getRelativeLocation(this.gridview.orientation, updatedReferenceLocation, target);\r\n this.doAddGroup(targetGroup, location);\r\n }\r\n removeGroup(group) {\r\n super.removeGroup(group);\r\n }\r\n dispose() {\r\n super.dispose();\r\n this._onDidLayoutfromJSON.dispose();\r\n }\r\n}\r\n//# sourceMappingURL=gridviewComponent.js.map","import { CompositeDisposable, MutableDisposable, } from '../lifecycle';\r\nimport { Orientation, Sizing, Splitview, } from './splitview';\r\nimport { Emitter } from '../events';\r\nimport { createComponent } from '../panel/componentFactory';\r\nimport { Resizable } from '../resizable';\r\n/**\r\n * A high-level implementation of splitview that works using 'panels'\r\n */\r\nexport class SplitviewComponent extends Resizable {\r\n get panels() {\r\n return this.splitview.getViews();\r\n }\r\n get options() {\r\n return this._options;\r\n }\r\n get length() {\r\n return this._panels.size;\r\n }\r\n get orientation() {\r\n return this.splitview.orientation;\r\n }\r\n get splitview() {\r\n return this._splitview;\r\n }\r\n set splitview(value) {\r\n this._splitview = value;\r\n this._splitviewChangeDisposable.value = new CompositeDisposable(this._splitview.onDidSashEnd(() => {\r\n this._onDidLayoutChange.fire(undefined);\r\n }), this._splitview.onDidAddView((e) => this._onDidAddView.fire(e)), this._splitview.onDidRemoveView((e) => this._onDidRemoveView.fire(e)));\r\n }\r\n get minimumSize() {\r\n return this.splitview.minimumSize;\r\n }\r\n get maximumSize() {\r\n return this.splitview.maximumSize;\r\n }\r\n get height() {\r\n return this.splitview.orientation === Orientation.HORIZONTAL\r\n ? this.splitview.orthogonalSize\r\n : this.splitview.size;\r\n }\r\n get width() {\r\n return this.splitview.orientation === Orientation.HORIZONTAL\r\n ? this.splitview.size\r\n : this.splitview.orthogonalSize;\r\n }\r\n constructor(options) {\r\n super(options.parentElement);\r\n this._splitviewChangeDisposable = new MutableDisposable();\r\n this._panels = new Map();\r\n this._onDidLayoutfromJSON = new Emitter();\r\n this.onDidLayoutFromJSON = this._onDidLayoutfromJSON.event;\r\n this._onDidAddView = new Emitter();\r\n this.onDidAddView = this._onDidAddView.event;\r\n this._onDidRemoveView = new Emitter();\r\n this.onDidRemoveView = this._onDidRemoveView.event;\r\n this._onDidLayoutChange = new Emitter();\r\n this.onDidLayoutChange = this._onDidLayoutChange.event;\r\n this._options = options;\r\n if (!options.components) {\r\n options.components = {};\r\n }\r\n if (!options.frameworkComponents) {\r\n options.frameworkComponents = {};\r\n }\r\n this.splitview = new Splitview(this.element, options);\r\n this.addDisposables(this._onDidAddView, this._onDidLayoutfromJSON, this._onDidRemoveView, this._onDidLayoutChange);\r\n }\r\n updateOptions(options) {\r\n const hasOrientationChanged = typeof options.orientation === 'string' &&\r\n this.options.orientation !== options.orientation;\r\n this._options = Object.assign(Object.assign({}, this.options), options);\r\n if (hasOrientationChanged) {\r\n this.splitview.orientation = options.orientation;\r\n }\r\n this.splitview.layout(this.splitview.size, this.splitview.orthogonalSize);\r\n }\r\n focus() {\r\n var _a;\r\n (_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.focus();\r\n }\r\n movePanel(from, to) {\r\n this.splitview.moveView(from, to);\r\n }\r\n setVisible(panel, visible) {\r\n const index = this.panels.indexOf(panel);\r\n this.splitview.setViewVisible(index, visible);\r\n }\r\n setActive(view, skipFocus) {\r\n this._activePanel = view;\r\n this.panels\r\n .filter((v) => v !== view)\r\n .forEach((v) => {\r\n v.api._onDidActiveChange.fire({ isActive: false });\r\n if (!skipFocus) {\r\n v.focus();\r\n }\r\n });\r\n view.api._onDidActiveChange.fire({ isActive: true });\r\n if (!skipFocus) {\r\n view.focus();\r\n }\r\n }\r\n removePanel(panel, sizing) {\r\n const item = this._panels.get(panel.id);\r\n if (!item) {\r\n throw new Error(`unknown splitview panel ${panel.id}`);\r\n }\r\n item.dispose();\r\n this._panels.delete(panel.id);\r\n const index = this.panels.findIndex((_) => _ === panel);\r\n const removedView = this.splitview.removeView(index, sizing);\r\n removedView.dispose();\r\n const panels = this.panels;\r\n if (panels.length > 0) {\r\n this.setActive(panels[panels.length - 1]);\r\n }\r\n }\r\n getPanel(id) {\r\n return this.panels.find((view) => view.id === id);\r\n }\r\n addPanel(options) {\r\n if (this._panels.has(options.id)) {\r\n throw new Error(`panel ${options.id} already exists`);\r\n }\r\n const view = createComponent(options.id, options.component, this.options.components || {}, this.options.frameworkComponents || {}, this.options.frameworkWrapper\r\n ? {\r\n createComponent: this.options.frameworkWrapper.createComponent,\r\n }\r\n : undefined);\r\n view.orientation = this.splitview.orientation;\r\n view.init({\r\n params: options.params || {},\r\n minimumSize: options.minimumSize,\r\n maximumSize: options.maximumSize,\r\n snap: options.snap,\r\n priority: options.priority,\r\n accessor: this,\r\n });\r\n const size = typeof options.size === 'number' ? options.size : Sizing.Distribute;\r\n const index = typeof options.index === 'number' ? options.index : undefined;\r\n this.splitview.addView(view, size, index);\r\n this.doAddView(view);\r\n this.setActive(view);\r\n return view;\r\n }\r\n layout(width, height) {\r\n const [size, orthogonalSize] = this.splitview.orientation === Orientation.HORIZONTAL\r\n ? [width, height]\r\n : [height, width];\r\n this.splitview.layout(size, orthogonalSize);\r\n }\r\n doAddView(view) {\r\n const disposable = view.api.onDidFocusChange((event) => {\r\n if (!event.isFocused) {\r\n return;\r\n }\r\n this.setActive(view, true);\r\n });\r\n this._panels.set(view.id, disposable);\r\n }\r\n toJSON() {\r\n var _a;\r\n const views = this.splitview\r\n .getViews()\r\n .map((view, i) => {\r\n const size = this.splitview.getViewSize(i);\r\n return {\r\n size,\r\n data: view.toJSON(),\r\n snap: !!view.snap,\r\n priority: view.priority,\r\n };\r\n });\r\n return {\r\n views,\r\n activeView: (_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.id,\r\n size: this.splitview.size,\r\n orientation: this.splitview.orientation,\r\n };\r\n }\r\n fromJSON(serializedSplitview) {\r\n this.clear();\r\n const { views, orientation, size, activeView } = serializedSplitview;\r\n const queue = [];\r\n // take note of the existing dimensions\r\n const width = this.width;\r\n const height = this.height;\r\n this.splitview = new Splitview(this.element, {\r\n orientation,\r\n proportionalLayout: this.options.proportionalLayout,\r\n descriptor: {\r\n size,\r\n views: views.map((view) => {\r\n const data = view.data;\r\n if (this._panels.has(data.id)) {\r\n throw new Error(`panel ${data.id} already exists`);\r\n }\r\n const panel = createComponent(data.id, data.component, this.options.components || {}, this.options.frameworkComponents || {}, this.options.frameworkWrapper\r\n ? {\r\n createComponent: this.options.frameworkWrapper\r\n .createComponent,\r\n }\r\n : undefined);\r\n queue.push(() => {\r\n panel.init({\r\n params: data.params || {},\r\n minimumSize: data.minimumSize,\r\n maximumSize: data.maximumSize,\r\n snap: view.snap,\r\n priority: view.priority,\r\n accessor: this,\r\n });\r\n });\r\n panel.orientation = orientation;\r\n this.doAddView(panel);\r\n setTimeout(() => {\r\n // the original onDidAddView events are missed since they are fired before we can subcribe to them\r\n this._onDidAddView.fire(panel);\r\n }, 0);\r\n return { size: view.size, view: panel };\r\n }),\r\n },\r\n });\r\n this.layout(width, height);\r\n queue.forEach((f) => f());\r\n if (typeof activeView === 'string') {\r\n const panel = this.getPanel(activeView);\r\n if (panel) {\r\n this.setActive(panel);\r\n }\r\n }\r\n this._onDidLayoutfromJSON.fire();\r\n }\r\n clear() {\r\n for (const disposable of this._panels.values()) {\r\n disposable.dispose();\r\n }\r\n this._panels.clear();\r\n while (this.splitview.length > 0) {\r\n const view = this.splitview.removeView(0, Sizing.Distribute, true);\r\n view.dispose();\r\n }\r\n }\r\n dispose() {\r\n for (const disposable of this._panels.values()) {\r\n disposable.dispose();\r\n }\r\n this._panels.clear();\r\n const views = this.splitview.getViews();\r\n this._splitviewChangeDisposable.dispose();\r\n this.splitview.dispose();\r\n for (const view of views) {\r\n view.dispose();\r\n }\r\n super.dispose();\r\n }\r\n}\r\n//# sourceMappingURL=splitviewComponent.js.map","import { addDisposableListener } from '../events';\r\nimport { CompositeDisposable, MutableDisposable } from '../lifecycle';\r\nimport { toggleClass } from '../dom';\r\nimport { createChevronRightButton, createExpandMoreButton } from '../svg';\r\nexport class DefaultHeader extends CompositeDisposable {\r\n get element() {\r\n return this._element;\r\n }\r\n constructor() {\r\n super();\r\n this._expandedIcon = createExpandMoreButton();\r\n this._collapsedIcon = createChevronRightButton();\r\n this.disposable = new MutableDisposable();\r\n this.apiRef = { api: null };\r\n this._element = document.createElement('div');\r\n this.element.className = 'default-header';\r\n this._content = document.createElement('span');\r\n this._expander = document.createElement('div');\r\n this._expander.className = 'dockview-pane-header-icon';\r\n this.element.appendChild(this._expander);\r\n this.element.appendChild(this._content);\r\n this.addDisposables(addDisposableListener(this._element, 'click', () => {\r\n var _a;\r\n (_a = this.apiRef.api) === null || _a === void 0 ? void 0 : _a.setExpanded(!this.apiRef.api.isExpanded);\r\n }));\r\n }\r\n init(params) {\r\n this.apiRef.api = params.api;\r\n this._content.textContent = params.title;\r\n this.updateIcon();\r\n this.disposable.value = params.api.onDidExpansionChange(() => {\r\n this.updateIcon();\r\n });\r\n }\r\n updateIcon() {\r\n var _a;\r\n const isExpanded = !!((_a = this.apiRef.api) === null || _a === void 0 ? void 0 : _a.isExpanded);\r\n toggleClass(this._expander, 'collapsed', !isExpanded);\r\n if (isExpanded) {\r\n if (this._expander.contains(this._collapsedIcon)) {\r\n this._collapsedIcon.remove();\r\n }\r\n if (!this._expander.contains(this._expandedIcon)) {\r\n this._expander.appendChild(this._expandedIcon);\r\n }\r\n }\r\n else {\r\n if (this._expander.contains(this._expandedIcon)) {\r\n this._expandedIcon.remove();\r\n }\r\n if (!this._expander.contains(this._collapsedIcon)) {\r\n this._expander.appendChild(this._collapsedIcon);\r\n }\r\n }\r\n }\r\n update(_params) {\r\n //\r\n }\r\n dispose() {\r\n this.disposable.dispose();\r\n super.dispose();\r\n }\r\n}\r\n//# sourceMappingURL=defaultPaneviewHeader.js.map","import { PaneviewApi } from '../api/component.api';\r\nimport { createComponent } from '../panel/componentFactory';\r\nimport { Emitter } from '../events';\r\nimport { CompositeDisposable, MutableDisposable, } from '../lifecycle';\r\nimport { Orientation, Sizing } from '../splitview/splitview';\r\nimport { Paneview } from './paneview';\r\nimport { DraggablePaneviewPanel, } from './draggablePaneviewPanel';\r\nimport { DefaultHeader } from './defaultPaneviewHeader';\r\nimport { sequentialNumberGenerator } from '../math';\r\nimport { Resizable } from '../resizable';\r\nconst nextLayoutId = sequentialNumberGenerator();\r\nexport class PaneFramework extends DraggablePaneviewPanel {\r\n constructor(options) {\r\n super(options.accessor, options.id, options.component, options.headerComponent, options.orientation, options.isExpanded, options.disableDnd);\r\n this.options = options;\r\n }\r\n getBodyComponent() {\r\n return this.options.body;\r\n }\r\n getHeaderComponent() {\r\n return this.options.header;\r\n }\r\n}\r\nexport class PaneviewComponent extends Resizable {\r\n get id() {\r\n return this._id;\r\n }\r\n get panels() {\r\n return this.paneview.getPanes();\r\n }\r\n set paneview(value) {\r\n this._paneview = value;\r\n this._disposable.value = new CompositeDisposable(this._paneview.onDidChange(() => {\r\n this._onDidLayoutChange.fire(undefined);\r\n }), this._paneview.onDidAddView((e) => this._onDidAddView.fire(e)), this._paneview.onDidRemoveView((e) => this._onDidRemoveView.fire(e)));\r\n }\r\n get paneview() {\r\n return this._paneview;\r\n }\r\n get minimumSize() {\r\n return this.paneview.minimumSize;\r\n }\r\n get maximumSize() {\r\n return this.paneview.maximumSize;\r\n }\r\n get height() {\r\n return this.paneview.orientation === Orientation.HORIZONTAL\r\n ? this.paneview.orthogonalSize\r\n : this.paneview.size;\r\n }\r\n get width() {\r\n return this.paneview.orientation === Orientation.HORIZONTAL\r\n ? this.paneview.size\r\n : this.paneview.orthogonalSize;\r\n }\r\n get options() {\r\n return this._options;\r\n }\r\n constructor(options) {\r\n super(options.parentElement);\r\n this._id = nextLayoutId.next();\r\n this._disposable = new MutableDisposable();\r\n this._viewDisposables = new Map();\r\n this._onDidLayoutfromJSON = new Emitter();\r\n this.onDidLayoutFromJSON = this._onDidLayoutfromJSON.event;\r\n this._onDidLayoutChange = new Emitter();\r\n this.onDidLayoutChange = this._onDidLayoutChange.event;\r\n this._onDidDrop = new Emitter();\r\n this.onDidDrop = this._onDidDrop.event;\r\n this._onDidAddView = new Emitter();\r\n this.onDidAddView = this._onDidAddView.event;\r\n this._onDidRemoveView = new Emitter();\r\n this.onDidRemoveView = this._onDidRemoveView.event;\r\n this.addDisposables(this._onDidLayoutChange, this._onDidLayoutfromJSON, this._onDidDrop, this._onDidAddView, this._onDidRemoveView);\r\n this._options = options;\r\n if (!options.components) {\r\n options.components = {};\r\n }\r\n if (!options.frameworkComponents) {\r\n options.frameworkComponents = {};\r\n }\r\n this.paneview = new Paneview(this.element, {\r\n // only allow paneview in the vertical orientation for now\r\n orientation: Orientation.VERTICAL,\r\n });\r\n this.addDisposables(this._disposable);\r\n }\r\n focus() {\r\n //noop\r\n }\r\n updateOptions(options) {\r\n this._options = Object.assign(Object.assign({}, this.options), options);\r\n }\r\n addPanel(options) {\r\n const body = createComponent(options.id, options.component, this.options.components || {}, this.options.frameworkComponents || {}, this.options.frameworkWrapper\r\n ? {\r\n createComponent: this.options.frameworkWrapper.body.createComponent,\r\n }\r\n : undefined);\r\n let header;\r\n if (options.headerComponent) {\r\n header = createComponent(options.id, options.headerComponent, this.options.headerComponents || {}, this.options.headerframeworkComponents, this.options.frameworkWrapper\r\n ? {\r\n createComponent: this.options.frameworkWrapper.header\r\n .createComponent,\r\n }\r\n : undefined);\r\n }\r\n else {\r\n header = new DefaultHeader();\r\n }\r\n const view = new PaneFramework({\r\n id: options.id,\r\n component: options.component,\r\n headerComponent: options.headerComponent,\r\n header,\r\n body,\r\n orientation: Orientation.VERTICAL,\r\n isExpanded: !!options.isExpanded,\r\n disableDnd: !!this.options.disableDnd,\r\n accessor: this,\r\n });\r\n this.doAddPanel(view);\r\n const size = typeof options.size === 'number' ? options.size : Sizing.Distribute;\r\n const index = typeof options.index === 'number' ? options.index : undefined;\r\n view.init({\r\n params: options.params || {},\r\n minimumBodySize: options.minimumBodySize,\r\n maximumBodySize: options.maximumBodySize,\r\n isExpanded: options.isExpanded,\r\n title: options.title,\r\n containerApi: new PaneviewApi(this),\r\n });\r\n this.paneview.addPane(view, size, index);\r\n view.orientation = this.paneview.orientation;\r\n return view;\r\n }\r\n removePanel(panel) {\r\n const views = this.panels;\r\n const index = views.findIndex((_) => _ === panel);\r\n this.paneview.removePane(index);\r\n this.doRemovePanel(panel);\r\n }\r\n movePanel(from, to) {\r\n this.paneview.moveView(from, to);\r\n }\r\n getPanel(id) {\r\n return this.panels.find((view) => view.id === id);\r\n }\r\n layout(width, height) {\r\n const [size, orthogonalSize] = this.paneview.orientation === Orientation.HORIZONTAL\r\n ? [width, height]\r\n : [height, width];\r\n this.paneview.layout(size, orthogonalSize);\r\n }\r\n toJSON() {\r\n const maximum = (value) => value === Number.MAX_SAFE_INTEGER ||\r\n value === Number.POSITIVE_INFINITY\r\n ? undefined\r\n : value;\r\n const minimum = (value) => (value <= 0 ? undefined : value);\r\n const views = this.paneview\r\n .getPanes()\r\n .map((view, i) => {\r\n const size = this.paneview.getViewSize(i);\r\n return {\r\n size,\r\n data: view.toJSON(),\r\n minimumSize: minimum(view.minimumBodySize),\r\n maximumSize: maximum(view.maximumBodySize),\r\n expanded: view.isExpanded(),\r\n };\r\n });\r\n return {\r\n views,\r\n size: this.paneview.size,\r\n };\r\n }\r\n fromJSON(serializedPaneview) {\r\n this.clear();\r\n const { views, size } = serializedPaneview;\r\n const queue = [];\r\n // take note of the existing dimensions\r\n const width = this.width;\r\n const height = this.height;\r\n this.paneview = new Paneview(this.element, {\r\n orientation: Orientation.VERTICAL,\r\n descriptor: {\r\n size,\r\n views: views.map((view) => {\r\n const data = view.data;\r\n const body = createComponent(data.id, data.component, this.options.components || {}, this.options.frameworkComponents || {}, this.options.frameworkWrapper\r\n ? {\r\n createComponent: this.options.frameworkWrapper.body\r\n .createComponent,\r\n }\r\n : undefined);\r\n let header;\r\n if (data.headerComponent) {\r\n header = createComponent(data.id, data.headerComponent, this.options.headerComponents || {}, this.options.headerframeworkComponents || {}, this.options.frameworkWrapper\r\n ? {\r\n createComponent: this.options.frameworkWrapper.header\r\n .createComponent,\r\n }\r\n : undefined);\r\n }\r\n else {\r\n header = new DefaultHeader();\r\n }\r\n const panel = new PaneFramework({\r\n id: data.id,\r\n component: data.component,\r\n headerComponent: data.headerComponent,\r\n header,\r\n body,\r\n orientation: Orientation.VERTICAL,\r\n isExpanded: !!view.expanded,\r\n disableDnd: !!this.options.disableDnd,\r\n accessor: this,\r\n });\r\n this.doAddPanel(panel);\r\n queue.push(() => {\r\n panel.init({\r\n params: data.params || {},\r\n minimumBodySize: view.minimumSize,\r\n maximumBodySize: view.maximumSize,\r\n title: data.title,\r\n isExpanded: !!view.expanded,\r\n containerApi: new PaneviewApi(this),\r\n });\r\n panel.orientation = this.paneview.orientation;\r\n });\r\n setTimeout(() => {\r\n // the original onDidAddView events are missed since they are fired before we can subcribe to them\r\n this._onDidAddView.fire(panel);\r\n }, 0);\r\n return { size: view.size, view: panel };\r\n }),\r\n },\r\n });\r\n this.layout(width, height);\r\n queue.forEach((f) => f());\r\n this._onDidLayoutfromJSON.fire();\r\n }\r\n clear() {\r\n for (const [_, value] of this._viewDisposables.entries()) {\r\n value.dispose();\r\n }\r\n this._viewDisposables.clear();\r\n this.paneview.dispose();\r\n }\r\n doAddPanel(panel) {\r\n const disposable = panel.onDidDrop((event) => {\r\n this._onDidDrop.fire(event);\r\n });\r\n this._viewDisposables.set(panel.id, disposable);\r\n }\r\n doRemovePanel(panel) {\r\n const disposable = this._viewDisposables.get(panel.id);\r\n if (disposable) {\r\n disposable.dispose();\r\n this._viewDisposables.delete(panel.id);\r\n }\r\n }\r\n dispose() {\r\n super.dispose();\r\n for (const [_, value] of this._viewDisposables.entries()) {\r\n value.dispose();\r\n }\r\n this._viewDisposables.clear();\r\n this.paneview.dispose();\r\n }\r\n}\r\n//# sourceMappingURL=paneviewComponent.js.map","import { BasePanelView, } from '../gridview/basePanelView';\r\nimport { SplitviewPanelApiImpl } from '../api/splitviewPanelApi';\r\nimport { Orientation } from './splitview';\r\nimport { Emitter } from '../events';\r\nexport class SplitviewPanel extends BasePanelView {\r\n get priority() {\r\n return this._priority;\r\n }\r\n set orientation(value) {\r\n this._orientation = value;\r\n }\r\n get orientation() {\r\n return this._orientation;\r\n }\r\n get minimumSize() {\r\n const size = typeof this._minimumSize === 'function'\r\n ? this._minimumSize()\r\n : this._minimumSize;\r\n if (size !== this._evaluatedMinimumSize) {\r\n this._evaluatedMinimumSize = size;\r\n this.updateConstraints();\r\n }\r\n return size;\r\n }\r\n get maximumSize() {\r\n const size = typeof this._maximumSize === 'function'\r\n ? this._maximumSize()\r\n : this._maximumSize;\r\n if (size !== this._evaluatedMaximumSize) {\r\n this._evaluatedMaximumSize = size;\r\n this.updateConstraints();\r\n }\r\n return size;\r\n }\r\n get snap() {\r\n return this._snap;\r\n }\r\n constructor(id, componentName) {\r\n super(id, componentName, new SplitviewPanelApiImpl(id));\r\n this._evaluatedMinimumSize = 0;\r\n this._evaluatedMaximumSize = Number.POSITIVE_INFINITY;\r\n this._minimumSize = 0;\r\n this._maximumSize = Number.POSITIVE_INFINITY;\r\n this._snap = false;\r\n this._onDidChange = new Emitter();\r\n this.onDidChange = this._onDidChange.event;\r\n this.api.initialize(this);\r\n this.addDisposables(this._onDidChange, this.api.onVisibilityChange((event) => {\r\n const { isVisible } = event;\r\n const { accessor } = this._params;\r\n accessor.setVisible(this, isVisible);\r\n }), this.api.onActiveChange(() => {\r\n const { accessor } = this._params;\r\n accessor.setActive(this);\r\n }), this.api.onDidConstraintsChangeInternal((event) => {\r\n if (typeof event.minimumSize === 'number' ||\r\n typeof event.minimumSize === 'function') {\r\n this._minimumSize = event.minimumSize;\r\n }\r\n if (typeof event.maximumSize === 'number' ||\r\n typeof event.maximumSize === 'function') {\r\n this._maximumSize = event.maximumSize;\r\n }\r\n this.updateConstraints();\r\n }), this.api.onDidSizeChange((event) => {\r\n this._onDidChange.fire({ size: event.size });\r\n }));\r\n }\r\n setVisible(isVisible) {\r\n this.api._onDidVisibilityChange.fire({ isVisible });\r\n }\r\n setActive(isActive) {\r\n this.api._onDidActiveChange.fire({ isActive });\r\n }\r\n layout(size, orthogonalSize) {\r\n const [width, height] = this.orientation === Orientation.HORIZONTAL\r\n ? [size, orthogonalSize]\r\n : [orthogonalSize, size];\r\n super.layout(width, height);\r\n }\r\n init(parameters) {\r\n super.init(parameters);\r\n this._priority = parameters.priority;\r\n if (parameters.minimumSize) {\r\n this._minimumSize = parameters.minimumSize;\r\n }\r\n if (parameters.maximumSize) {\r\n this._maximumSize = parameters.maximumSize;\r\n }\r\n if (parameters.snap) {\r\n this._snap = parameters.snap;\r\n }\r\n }\r\n toJSON() {\r\n const maximum = (value) => value === Number.MAX_SAFE_INTEGER ||\r\n value === Number.POSITIVE_INFINITY\r\n ? undefined\r\n : value;\r\n const minimum = (value) => (value <= 0 ? undefined : value);\r\n return Object.assign(Object.assign({}, super.toJSON()), { minimumSize: minimum(this.minimumSize), maximumSize: maximum(this.maximumSize) });\r\n }\r\n updateConstraints() {\r\n this.api._onDidConstraintsChange.fire({\r\n maximumSize: this._evaluatedMaximumSize,\r\n minimumSize: this._evaluatedMinimumSize,\r\n });\r\n }\r\n}\r\n//# sourceMappingURL=splitviewPanel.js.map",null,null,null,null,null,null,"/******************************************************************************\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\") 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,\r\n __assign,\r\n __rest,\r\n __decorate,\r\n __param,\r\n __metadata,\r\n __awaiter,\r\n __generator,\r\n __createBinding,\r\n __exportStar,\r\n __values,\r\n __read,\r\n __spread,\r\n __spreadArrays,\r\n __spreadArray,\r\n __await,\r\n __asyncGenerator,\r\n __asyncDelegator,\r\n __asyncValues,\r\n __makeTemplateObject,\r\n __importStar,\r\n __importDefault,\r\n __classPrivateFieldGet,\r\n __classPrivateFieldSet,\r\n __classPrivateFieldIn,\r\n __addDisposableResource,\r\n __disposeResources,\r\n};\r\n",null,null,null,null,null,null,null,null],"names":["Event","Orientation","SashState","LayoutPriority","Sizing","DockviewDropTargets","nextLayoutId","React","ReactDOM","DockviewEmitter","DockviewMutableDisposable","DockviewCompositeDisposable"],"mappings":"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","x_google_ignoreList":[0,60]}