dockview 1.0.2 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +243 -186
- package/dist/cjs/api/component.api.d.ts +32 -23
- package/dist/cjs/api/component.api.js +105 -34
- package/dist/cjs/api/component.api.js.map +1 -1
- package/dist/cjs/api/gridviewPanelApi.js +1 -0
- package/dist/cjs/api/gridviewPanelApi.js.map +1 -1
- package/dist/cjs/api/groupPanelApi.d.ts +11 -14
- package/dist/cjs/api/groupPanelApi.js +19 -17
- package/dist/cjs/api/groupPanelApi.js.map +1 -1
- package/dist/cjs/api/panelApi.d.ts +0 -25
- package/dist/cjs/api/panelApi.js +1 -20
- package/dist/cjs/api/panelApi.js.map +1 -1
- package/dist/cjs/api/paneviewPanelApi.js +1 -0
- package/dist/cjs/api/paneviewPanelApi.js.map +1 -1
- package/dist/cjs/api/splitviewPanelApi.d.ts +0 -1
- package/dist/cjs/api/splitviewPanelApi.js +1 -5
- package/dist/cjs/api/splitviewPanelApi.js.map +1 -1
- package/dist/cjs/dnd/abstractDragHandler.d.ts +2 -2
- package/dist/cjs/dnd/abstractDragHandler.js +14 -14
- package/dist/cjs/dnd/abstractDragHandler.js.map +1 -1
- package/dist/cjs/dnd/dataTransfer.d.ts +0 -25
- package/dist/cjs/dnd/dataTransfer.js +1 -45
- package/dist/cjs/dnd/dataTransfer.js.map +1 -1
- package/dist/cjs/dnd/dnd.d.ts +1 -14
- package/dist/cjs/dnd/dnd.js +1 -79
- package/dist/cjs/dnd/dnd.js.map +1 -1
- package/dist/cjs/dnd/droptarget.d.ts +3 -0
- package/dist/cjs/dnd/droptarget.js +69 -45
- package/dist/cjs/dnd/droptarget.js.map +1 -1
- package/dist/cjs/dockview/components/tab/defaultTab.d.ts +0 -1
- package/dist/cjs/dockview/components/tab/defaultTab.js +0 -8
- package/dist/cjs/dockview/components/tab/defaultTab.js.map +1 -1
- package/dist/cjs/dockview/deserializer.js.map +1 -1
- package/dist/cjs/dockview/dockviewComponent.d.ts +31 -21
- package/dist/cjs/dockview/dockviewComponent.js +103 -207
- package/dist/cjs/dockview/dockviewComponent.js.map +1 -1
- package/dist/cjs/dockview/dockviewGroupPanel.d.ts +3 -5
- package/dist/cjs/dockview/dockviewGroupPanel.js +10 -31
- package/dist/cjs/dockview/dockviewGroupPanel.js.map +1 -1
- package/dist/cjs/dockview/options.d.ts +2 -1
- package/dist/cjs/events.js +25 -4
- package/dist/cjs/events.js.map +1 -1
- package/dist/cjs/gridview/baseComponentGridview.d.ts +12 -20
- package/dist/cjs/gridview/baseComponentGridview.js +23 -45
- package/dist/cjs/gridview/baseComponentGridview.js.map +1 -1
- package/dist/cjs/gridview/basePanelView.d.ts +5 -8
- package/dist/cjs/gridview/basePanelView.js +14 -8
- package/dist/cjs/gridview/basePanelView.js.map +1 -1
- package/dist/cjs/gridview/branchNode.js +2 -2
- package/dist/cjs/gridview/branchNode.js.map +1 -1
- package/dist/cjs/gridview/gridview.js +20 -17
- package/dist/cjs/gridview/gridview.js.map +1 -1
- package/dist/cjs/gridview/gridviewComponent.d.ts +4 -0
- package/dist/cjs/gridview/gridviewComponent.js +5 -1
- package/dist/cjs/gridview/gridviewComponent.js.map +1 -1
- package/dist/cjs/gridview/gridviewPanel.d.ts +0 -1
- package/dist/cjs/gridview/gridviewPanel.js +3 -6
- package/dist/cjs/gridview/gridviewPanel.js.map +1 -1
- package/dist/cjs/gridview/leafNode.js +2 -1
- package/dist/cjs/gridview/leafNode.js.map +1 -1
- package/dist/cjs/groupview/groupPanel.d.ts +1 -7
- package/dist/cjs/groupview/groupview.d.ts +15 -8
- package/dist/cjs/groupview/groupview.js +36 -123
- package/dist/cjs/groupview/groupview.js.map +1 -1
- package/dist/cjs/groupview/groupviewPanel.d.ts +5 -2
- package/dist/cjs/groupview/groupviewPanel.js.map +1 -1
- package/dist/cjs/groupview/panel/content.js +1 -0
- package/dist/cjs/groupview/panel/content.js.map +1 -1
- package/dist/cjs/groupview/tab.d.ts +10 -13
- package/dist/cjs/groupview/tab.js +22 -80
- package/dist/cjs/groupview/tab.js.map +1 -1
- package/dist/cjs/groupview/titlebar/tabsContainer.js +4 -6
- package/dist/cjs/groupview/titlebar/tabsContainer.js.map +1 -1
- package/dist/cjs/index.d.ts +3 -3
- package/dist/cjs/index.js +8 -4
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lifecycle.js +2 -1
- package/dist/cjs/lifecycle.js.map +1 -1
- package/dist/cjs/panel/types.d.ts +0 -2
- package/dist/cjs/paneview/draggablePaneviewPanel.d.ts +2 -2
- package/dist/cjs/paneview/draggablePaneviewPanel.js +32 -29
- package/dist/cjs/paneview/draggablePaneviewPanel.js.map +1 -1
- package/dist/cjs/paneview/paneview.js +4 -3
- package/dist/cjs/paneview/paneview.js.map +1 -1
- package/dist/cjs/paneview/paneviewComponent.d.ts +5 -5
- package/dist/cjs/paneview/paneviewComponent.js +15 -16
- package/dist/cjs/paneview/paneviewComponent.js.map +1 -1
- package/dist/cjs/paneview/paneviewPanel.d.ts +5 -1
- package/dist/cjs/paneview/paneviewPanel.js +14 -2
- package/dist/cjs/paneview/paneviewPanel.js.map +1 -1
- package/dist/cjs/react/deserializer.js +1 -3
- package/dist/cjs/react/deserializer.js.map +1 -1
- package/dist/cjs/react/dockview/components.js +5 -1
- package/dist/cjs/react/dockview/components.js.map +1 -1
- package/dist/cjs/react/dockview/dockview.d.ts +9 -9
- package/dist/cjs/react/dockview/dockview.js +28 -2
- package/dist/cjs/react/dockview/dockview.js.map +1 -1
- package/dist/cjs/react/dockview/reactContentPart.js +4 -4
- package/dist/cjs/react/dockview/reactContentPart.js.map +1 -1
- package/dist/cjs/react/dockview/reactHeaderPart.js +1 -0
- package/dist/cjs/react/dockview/reactHeaderPart.js.map +1 -1
- package/dist/cjs/react/dockview/reactWatermarkPart.d.ts +1 -2
- package/dist/cjs/react/dockview/reactWatermarkPart.js +1 -2
- package/dist/cjs/react/dockview/reactWatermarkPart.js.map +1 -1
- package/dist/cjs/react/gridview/gridview.js +9 -2
- package/dist/cjs/react/gridview/gridview.js.map +1 -1
- package/dist/cjs/react/gridview/view.js +2 -2
- package/dist/cjs/react/gridview/view.js.map +1 -1
- package/dist/cjs/react/index.d.ts +1 -0
- package/dist/cjs/react/index.js +5 -1
- package/dist/cjs/react/index.js.map +1 -1
- package/dist/cjs/react/paneview/paneview.js +5 -1
- package/dist/cjs/react/paneview/paneview.js.map +1 -1
- package/dist/cjs/react/react.js +6 -3
- package/dist/cjs/react/react.js.map +1 -1
- package/dist/cjs/react/splitview/splitview.js +8 -2
- package/dist/cjs/react/splitview/splitview.js.map +1 -1
- package/dist/cjs/react/splitview/view.js +2 -2
- package/dist/cjs/react/splitview/view.js.map +1 -1
- package/dist/cjs/splitview/core/splitview.js +2 -2
- package/dist/cjs/splitview/core/splitview.js.map +1 -1
- package/dist/cjs/splitview/splitviewComponent.d.ts +9 -6
- package/dist/cjs/splitview/splitviewComponent.js +12 -1
- package/dist/cjs/splitview/splitviewComponent.js.map +1 -1
- package/dist/cjs/splitview/splitviewPanel.d.ts +1 -6
- package/dist/cjs/splitview/splitviewPanel.js +5 -3
- package/dist/cjs/splitview/splitviewPanel.js.map +1 -1
- package/dist/dockview.amd.js +592 -745
- package/dist/dockview.amd.min.js +2 -16
- package/dist/dockview.amd.min.noStyle.js +2 -16
- package/dist/dockview.amd.noStyle.js +591 -744
- package/dist/dockview.cjs.js +592 -745
- package/dist/dockview.esm.js +592 -734
- package/dist/dockview.esm.min.js +2 -16
- package/dist/dockview.js +592 -745
- package/dist/dockview.min.js +2 -16
- package/dist/dockview.min.noStyle.js +2 -16
- package/dist/dockview.noStyle.js +591 -744
- package/dist/esm/api/component.api.d.ts +32 -23
- package/dist/esm/api/component.api.js +51 -24
- package/dist/esm/api/gridviewPanelApi.js +1 -0
- package/dist/esm/api/groupPanelApi.d.ts +11 -14
- package/dist/esm/api/groupPanelApi.js +18 -13
- package/dist/esm/api/panelApi.d.ts +0 -25
- package/dist/esm/api/panelApi.js +1 -20
- package/dist/esm/api/paneviewPanelApi.js +1 -0
- package/dist/esm/api/splitviewPanelApi.d.ts +0 -1
- package/dist/esm/api/splitviewPanelApi.js +1 -5
- package/dist/esm/dnd/abstractDragHandler.d.ts +2 -2
- package/dist/esm/dnd/abstractDragHandler.js +9 -9
- package/dist/esm/dnd/dataTransfer.d.ts +0 -25
- package/dist/esm/dnd/dataTransfer.js +0 -40
- package/dist/esm/dnd/dnd.d.ts +1 -14
- package/dist/esm/dnd/dnd.js +1 -69
- package/dist/esm/dnd/droptarget.d.ts +3 -0
- package/dist/esm/dnd/droptarget.js +69 -45
- package/dist/esm/dockview/components/tab/defaultTab.d.ts +0 -1
- package/dist/esm/dockview/components/tab/defaultTab.js +1 -9
- package/dist/esm/dockview/dockviewComponent.d.ts +31 -21
- package/dist/esm/dockview/dockviewComponent.js +68 -148
- package/dist/esm/dockview/dockviewGroupPanel.d.ts +3 -5
- package/dist/esm/dockview/dockviewGroupPanel.js +6 -30
- package/dist/esm/dockview/options.d.ts +2 -1
- package/dist/esm/events.js +2 -3
- package/dist/esm/gridview/baseComponentGridview.d.ts +12 -20
- package/dist/esm/gridview/baseComponentGridview.js +23 -45
- package/dist/esm/gridview/basePanelView.d.ts +5 -8
- package/dist/esm/gridview/basePanelView.js +10 -8
- package/dist/esm/gridview/branchNode.js +2 -2
- package/dist/esm/gridview/gridview.js +17 -15
- package/dist/esm/gridview/gridviewComponent.d.ts +4 -0
- package/dist/esm/gridview/gridviewComponent.js +6 -2
- package/dist/esm/gridview/gridviewPanel.d.ts +0 -1
- package/dist/esm/gridview/gridviewPanel.js +3 -6
- package/dist/esm/gridview/leafNode.js +1 -0
- package/dist/esm/groupview/groupPanel.d.ts +1 -7
- package/dist/esm/groupview/groupview.d.ts +15 -8
- package/dist/esm/groupview/groupview.js +22 -56
- package/dist/esm/groupview/groupviewPanel.d.ts +5 -2
- package/dist/esm/groupview/panel/content.js +1 -0
- package/dist/esm/groupview/tab.d.ts +10 -13
- package/dist/esm/groupview/tab.js +17 -24
- package/dist/esm/groupview/titlebar/tabsContainer.js +4 -6
- package/dist/esm/index.d.ts +3 -3
- package/dist/esm/index.js +1 -2
- package/dist/esm/lifecycle.js +2 -1
- package/dist/esm/panel/types.d.ts +0 -2
- package/dist/esm/paneview/draggablePaneviewPanel.d.ts +2 -2
- package/dist/esm/paneview/draggablePaneviewPanel.js +32 -29
- package/dist/esm/paneview/paneview.js +2 -2
- package/dist/esm/paneview/paneviewComponent.d.ts +5 -5
- package/dist/esm/paneview/paneviewComponent.js +15 -8
- package/dist/esm/paneview/paneviewPanel.d.ts +5 -1
- package/dist/esm/paneview/paneviewPanel.js +10 -2
- package/dist/esm/react/deserializer.js +1 -3
- package/dist/esm/react/dockview/dockview.d.ts +9 -9
- package/dist/esm/react/dockview/dockview.js +24 -2
- package/dist/esm/react/dockview/reactContentPart.js +4 -4
- package/dist/esm/react/dockview/reactHeaderPart.js +1 -0
- package/dist/esm/react/dockview/reactWatermarkPart.d.ts +1 -2
- package/dist/esm/react/dockview/reactWatermarkPart.js +1 -2
- package/dist/esm/react/gridview/gridview.js +4 -1
- package/dist/esm/react/gridview/view.js +2 -2
- package/dist/esm/react/index.d.ts +1 -0
- package/dist/esm/react/react.js +1 -2
- package/dist/esm/react/splitview/splitview.js +3 -1
- package/dist/esm/react/splitview/view.js +2 -2
- package/dist/esm/splitview/core/splitview.js +2 -2
- package/dist/esm/splitview/splitviewComponent.d.ts +9 -6
- package/dist/esm/splitview/splitviewComponent.js +11 -2
- package/dist/esm/splitview/splitviewPanel.d.ts +1 -6
- package/dist/esm/splitview/splitviewPanel.js +5 -3
- package/dist/styles/dockview.css +51 -54
- package/package.json +11 -11
- package/dist/cjs/functions.d.ts +0 -1
- package/dist/cjs/functions.js +0 -42
- package/dist/cjs/functions.js.map +0 -1
- package/dist/cjs/groupview/panel/hostedPanel.d.ts +0 -22
- package/dist/cjs/groupview/panel/hostedPanel.js +0 -57
- package/dist/cjs/groupview/panel/hostedPanel.js.map +0 -1
- package/dist/cjs/json.d.ts +0 -1
- package/dist/cjs/json.js +0 -14
- package/dist/cjs/json.js.map +0 -1
- package/dist/esm/functions.d.ts +0 -1
- package/dist/esm/functions.js +0 -8
- package/dist/esm/groupview/panel/hostedPanel.d.ts +0 -22
- package/dist/esm/groupview/panel/hostedPanel.js +0 -43
- package/dist/esm/json.d.ts +0 -1
- package/dist/esm/json.js +0 -9
|
@@ -1,24 +1,14 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
1
|
import { getRelativeLocation, getGridLocation, } from '../gridview/gridview';
|
|
11
2
|
import { Position } from '../dnd/droptarget';
|
|
12
3
|
import { tail, sequenceEquals } from '../array';
|
|
13
4
|
import { DockviewGroupPanel } from './dockviewGroupPanel';
|
|
14
5
|
import { CompositeDisposable } from '../lifecycle';
|
|
15
|
-
import { Emitter } from '../events';
|
|
6
|
+
import { Event, Emitter } from '../events';
|
|
16
7
|
import { Watermark } from './components/watermark/watermark';
|
|
17
|
-
import { debounce } from '../functions';
|
|
18
8
|
import { sequentialNumberGenerator } from '../math';
|
|
19
9
|
import { DefaultDeserializer } from './deserializer';
|
|
20
10
|
import { createComponent } from '../panel/componentFactory';
|
|
21
|
-
import { BaseGrid,
|
|
11
|
+
import { BaseGrid, toTarget, } from '../gridview/baseComponentGridview';
|
|
22
12
|
import { DockviewApi } from '../api/component.api';
|
|
23
13
|
import { MouseEventKind } from '../groupview/tab';
|
|
24
14
|
import { Orientation } from '../splitview/core/splitview';
|
|
@@ -34,15 +24,24 @@ export class DockviewComponent extends BaseGrid {
|
|
|
34
24
|
orientation: options.orientation || Orientation.HORIZONTAL,
|
|
35
25
|
styles: options.styles,
|
|
36
26
|
});
|
|
37
|
-
this._panels = new Map();
|
|
38
|
-
this.dirtyPanels = new Set();
|
|
39
|
-
this.debouncedDeque = debounce(this.syncConfigs.bind(this), 5000);
|
|
40
27
|
// events
|
|
41
28
|
this._onTabInteractionEvent = new Emitter();
|
|
42
29
|
this.onTabInteractionEvent = this._onTabInteractionEvent.event;
|
|
43
30
|
this._onTabContextMenu = new Emitter();
|
|
44
31
|
this.onTabContextMenu = this._onTabContextMenu.event;
|
|
45
|
-
this.
|
|
32
|
+
this._onDidDrop = new Emitter();
|
|
33
|
+
this.onDidDrop = this._onDidDrop.event;
|
|
34
|
+
this._onDidRemovePanel = new Emitter();
|
|
35
|
+
this.onDidRemovePanel = this._onDidRemovePanel.event;
|
|
36
|
+
this._onDidAddPanel = new Emitter();
|
|
37
|
+
this.onDidAddPanel = this._onDidAddPanel.event;
|
|
38
|
+
this._onDidLayoutfromJSON = new Emitter();
|
|
39
|
+
this.onDidLayoutfromJSON = this._onDidLayoutfromJSON.event;
|
|
40
|
+
this._onDidActivePanelChange = new Emitter();
|
|
41
|
+
this.onDidActivePanelChange = this._onDidActivePanelChange.event;
|
|
42
|
+
this.addDisposables(this._onTabInteractionEvent, this._onTabContextMenu, this._onDidDrop, Event.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidActivePanelChange)(() => {
|
|
43
|
+
this._bufferOnDidLayoutChange.fire();
|
|
44
|
+
}));
|
|
46
45
|
this._options = options;
|
|
47
46
|
if (!this.options.components) {
|
|
48
47
|
this.options.components = {};
|
|
@@ -63,10 +62,10 @@ export class DockviewComponent extends BaseGrid {
|
|
|
63
62
|
this._api = new DockviewApi(this);
|
|
64
63
|
}
|
|
65
64
|
get totalPanels() {
|
|
66
|
-
return this.
|
|
65
|
+
return this.panels.length;
|
|
67
66
|
}
|
|
68
67
|
get panels() {
|
|
69
|
-
return
|
|
68
|
+
return this.groups.flatMap((group) => group.model.panels);
|
|
70
69
|
}
|
|
71
70
|
get deserializer() {
|
|
72
71
|
return this._deserializer;
|
|
@@ -96,10 +95,6 @@ export class DockviewComponent extends BaseGrid {
|
|
|
96
95
|
updateOptions(options) {
|
|
97
96
|
const hasOrientationChanged = typeof options.orientation === 'string' &&
|
|
98
97
|
this.options.orientation !== options.orientation;
|
|
99
|
-
// TODO support style update
|
|
100
|
-
// const hasStylesChanged =
|
|
101
|
-
// typeof options.styles === 'object' &&
|
|
102
|
-
// this.options.styles !== options.styles;
|
|
103
98
|
this._options = Object.assign(Object.assign({}, this.options), options);
|
|
104
99
|
if (hasOrientationChanged) {
|
|
105
100
|
this.gridview.orientation = options.orientation;
|
|
@@ -111,8 +106,7 @@ export class DockviewComponent extends BaseGrid {
|
|
|
111
106
|
(_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.focus();
|
|
112
107
|
}
|
|
113
108
|
getGroupPanel(id) {
|
|
114
|
-
|
|
115
|
-
return (_a = this._panels.get(id)) === null || _a === void 0 ? void 0 : _a.value;
|
|
109
|
+
return this.panels.find((panel) => panel.id === id);
|
|
116
110
|
}
|
|
117
111
|
setActivePanel(panel) {
|
|
118
112
|
if (!panel.group) {
|
|
@@ -161,24 +155,6 @@ export class DockviewComponent extends BaseGrid {
|
|
|
161
155
|
this.doSetGroupActive(next);
|
|
162
156
|
}
|
|
163
157
|
}
|
|
164
|
-
registerPanel(panel) {
|
|
165
|
-
if (this._panels.has(panel.id)) {
|
|
166
|
-
throw new Error(`panel ${panel.id} already exists`);
|
|
167
|
-
}
|
|
168
|
-
const disposable = new CompositeDisposable(panel.onDidStateChange(() => this.addDirtyPanel(panel)));
|
|
169
|
-
this._panels.set(panel.id, { value: panel, disposable });
|
|
170
|
-
}
|
|
171
|
-
unregisterPanel(panel) {
|
|
172
|
-
if (!this._panels.has(panel.id)) {
|
|
173
|
-
throw new Error(`panel ${panel.id} doesn't exist`);
|
|
174
|
-
}
|
|
175
|
-
const item = this._panels.get(panel.id);
|
|
176
|
-
if (item) {
|
|
177
|
-
item.disposable.dispose();
|
|
178
|
-
item.value.dispose();
|
|
179
|
-
}
|
|
180
|
-
this._panels.delete(panel.id);
|
|
181
|
-
}
|
|
182
158
|
/**
|
|
183
159
|
* Serialize the current state of the layout
|
|
184
160
|
*
|
|
@@ -186,12 +162,9 @@ export class DockviewComponent extends BaseGrid {
|
|
|
186
162
|
*/
|
|
187
163
|
toJSON() {
|
|
188
164
|
var _a;
|
|
189
|
-
this.syncConfigs();
|
|
190
165
|
const data = this.gridview.serialize();
|
|
191
|
-
const panels =
|
|
192
|
-
|
|
193
|
-
collection[panel.value.id] = panel.value.toJSON();
|
|
194
|
-
}
|
|
166
|
+
const panels = this.panels.reduce((collection, panel) => {
|
|
167
|
+
collection[panel.id] = panel.toJSON();
|
|
195
168
|
return collection;
|
|
196
169
|
}, {});
|
|
197
170
|
return {
|
|
@@ -202,13 +175,12 @@ export class DockviewComponent extends BaseGrid {
|
|
|
202
175
|
};
|
|
203
176
|
}
|
|
204
177
|
fromJSON(data) {
|
|
178
|
+
const groups = Array.from(this._groups.values()).map((_) => _.value);
|
|
179
|
+
for (const group of groups) {
|
|
180
|
+
// remove the group will automatically remove the panels
|
|
181
|
+
this.removeGroup(group, true);
|
|
182
|
+
}
|
|
205
183
|
this.gridview.clear();
|
|
206
|
-
this._panels.forEach((panel) => {
|
|
207
|
-
panel.disposable.dispose();
|
|
208
|
-
panel.value.dispose();
|
|
209
|
-
});
|
|
210
|
-
this._panels.clear();
|
|
211
|
-
this._groups.clear();
|
|
212
184
|
if (!this.deserializer) {
|
|
213
185
|
throw new Error('invalid deserializer');
|
|
214
186
|
}
|
|
@@ -222,9 +194,7 @@ export class DockviewComponent extends BaseGrid {
|
|
|
222
194
|
this.gridview.deserialize(grid, new DefaultDeserializer(this, {
|
|
223
195
|
createPanel: (id) => {
|
|
224
196
|
const panelData = panels[id];
|
|
225
|
-
|
|
226
|
-
this.registerPanel(panel);
|
|
227
|
-
return panel;
|
|
197
|
+
return this.deserializer.fromJSON(panelData);
|
|
228
198
|
},
|
|
229
199
|
}));
|
|
230
200
|
if (typeof activeGroup === 'string') {
|
|
@@ -234,31 +204,23 @@ export class DockviewComponent extends BaseGrid {
|
|
|
234
204
|
}
|
|
235
205
|
}
|
|
236
206
|
this.gridview.layout(this.width, this.height);
|
|
237
|
-
this.
|
|
207
|
+
this._onDidLayoutfromJSON.fire();
|
|
238
208
|
}
|
|
239
209
|
closeAllGroups() {
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
if (!didCloseAll) {
|
|
245
|
-
return false;
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
return true;
|
|
249
|
-
});
|
|
210
|
+
for (const entry of this._groups.entries()) {
|
|
211
|
+
const [_, group] = entry;
|
|
212
|
+
group.value.model.closeAllPanels();
|
|
213
|
+
}
|
|
250
214
|
}
|
|
251
215
|
fireMouseEvent(event) {
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
}
|
|
261
|
-
break;
|
|
216
|
+
if (event.kind === MouseEventKind.CONTEXT_MENU) {
|
|
217
|
+
if (event.tab && event.panel) {
|
|
218
|
+
this._onTabContextMenu.fire({
|
|
219
|
+
event: event.event,
|
|
220
|
+
api: this._api,
|
|
221
|
+
panel: event.panel,
|
|
222
|
+
});
|
|
223
|
+
}
|
|
262
224
|
}
|
|
263
225
|
}
|
|
264
226
|
addPanel(options) {
|
|
@@ -291,14 +253,13 @@ export class DockviewComponent extends BaseGrid {
|
|
|
291
253
|
}
|
|
292
254
|
return panel;
|
|
293
255
|
}
|
|
294
|
-
removePanel(panel) {
|
|
295
|
-
this.unregisterPanel(panel);
|
|
256
|
+
removePanel(panel, options = { removeEmptyGroup: true }) {
|
|
296
257
|
const group = panel.group;
|
|
297
258
|
if (!group) {
|
|
298
259
|
throw new Error(`cannot remove panel ${panel.id}. it's missing a group.`);
|
|
299
260
|
}
|
|
300
261
|
group.model.removePanel(panel);
|
|
301
|
-
if (group.model.size === 0) {
|
|
262
|
+
if (group.model.size === 0 && options.removeEmptyGroup) {
|
|
302
263
|
this.removeGroup(group);
|
|
303
264
|
}
|
|
304
265
|
}
|
|
@@ -311,10 +272,9 @@ export class DockviewComponent extends BaseGrid {
|
|
|
311
272
|
: {}, (_a = this.options.frameworkComponentFactory) === null || _a === void 0 ? void 0 : _a.watermark);
|
|
312
273
|
}
|
|
313
274
|
addEmptyGroup(options) {
|
|
314
|
-
var _a;
|
|
315
275
|
const group = this.createGroup();
|
|
316
276
|
if (options) {
|
|
317
|
-
const referencePanel =
|
|
277
|
+
const referencePanel = this.panels.find((panel) => panel.id === options.referencePanel);
|
|
318
278
|
if (!referencePanel) {
|
|
319
279
|
throw new Error(`reference panel ${options.referencePanel} does not exist`);
|
|
320
280
|
}
|
|
@@ -331,25 +291,23 @@ export class DockviewComponent extends BaseGrid {
|
|
|
331
291
|
this.doAddGroup(group);
|
|
332
292
|
}
|
|
333
293
|
}
|
|
334
|
-
removeGroup(group) {
|
|
294
|
+
removeGroup(group, skipActive = false) {
|
|
335
295
|
const panels = [...group.model.panels]; // reassign since group panels will mutate
|
|
336
|
-
|
|
337
|
-
this.removePanel(panel
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
this._activeGroup = group;
|
|
341
|
-
return;
|
|
296
|
+
for (const panel of panels) {
|
|
297
|
+
this.removePanel(panel, {
|
|
298
|
+
removeEmptyGroup: false,
|
|
299
|
+
});
|
|
342
300
|
}
|
|
343
|
-
super.
|
|
301
|
+
super.doRemoveGroup(group, { skipActive });
|
|
344
302
|
}
|
|
345
303
|
moveGroupOrPanel(referenceGroup, groupId, itemId, target, index) {
|
|
346
|
-
var _a
|
|
304
|
+
var _a;
|
|
347
305
|
const sourceGroup = groupId
|
|
348
306
|
? (_a = this._groups.get(groupId)) === null || _a === void 0 ? void 0 : _a.value
|
|
349
307
|
: undefined;
|
|
350
308
|
if (!target || target === Position.Center) {
|
|
351
309
|
const groupItem = (sourceGroup === null || sourceGroup === void 0 ? void 0 : sourceGroup.model.removePanel(itemId)) ||
|
|
352
|
-
|
|
310
|
+
this.panels.find((panel) => panel.id === itemId);
|
|
353
311
|
if (!groupItem) {
|
|
354
312
|
throw new Error(`No panel with id ${itemId}`);
|
|
355
313
|
}
|
|
@@ -385,7 +343,7 @@ export class DockviewComponent extends BaseGrid {
|
|
|
385
343
|
}
|
|
386
344
|
else {
|
|
387
345
|
const groupItem = (sourceGroup === null || sourceGroup === void 0 ? void 0 : sourceGroup.model.removePanel(itemId)) ||
|
|
388
|
-
|
|
346
|
+
this.panels.find((panel) => panel.id === itemId);
|
|
389
347
|
if (!groupItem) {
|
|
390
348
|
throw new Error(`No panel with id ${itemId}`);
|
|
391
349
|
}
|
|
@@ -399,10 +357,7 @@ export class DockviewComponent extends BaseGrid {
|
|
|
399
357
|
const isGroupAlreadyFocused = this._activeGroup === group;
|
|
400
358
|
super.doSetGroupActive(group, skipFocus);
|
|
401
359
|
if (!isGroupAlreadyFocused && ((_a = this._activeGroup) === null || _a === void 0 ? void 0 : _a.model.activePanel)) {
|
|
402
|
-
this.
|
|
403
|
-
kind: GroupChangeKind.PANEL_ACTIVE,
|
|
404
|
-
panel: (_b = this._activeGroup) === null || _b === void 0 ? void 0 : _b.model.activePanel,
|
|
405
|
-
});
|
|
360
|
+
this._onDidActivePanelChange.fire((_b = this._activeGroup) === null || _b === void 0 ? void 0 : _b.model.activePanel);
|
|
406
361
|
}
|
|
407
362
|
}
|
|
408
363
|
createGroup(options) {
|
|
@@ -428,31 +383,22 @@ export class DockviewComponent extends BaseGrid {
|
|
|
428
383
|
const disposable = new CompositeDisposable(view.model.onMove((event) => {
|
|
429
384
|
const { groupId, itemId, target, index } = event;
|
|
430
385
|
this.moveGroupOrPanel(view, groupId, itemId, target, index);
|
|
386
|
+
}), view.model.onDidDrop((event) => {
|
|
387
|
+
this._onDidDrop.fire(Object.assign(Object.assign({}, event), { api: this._api }));
|
|
431
388
|
}), view.model.onDidGroupChange((event) => {
|
|
432
389
|
switch (event.kind) {
|
|
433
390
|
case GroupChangeKind2.ADD_PANEL:
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
});
|
|
438
|
-
break;
|
|
439
|
-
case GroupChangeKind2.GROUP_ACTIVE:
|
|
440
|
-
this._onGridEvent.fire({
|
|
441
|
-
kind: GroupChangeKind.GROUP_ACTIVE,
|
|
442
|
-
panel: event.panel,
|
|
443
|
-
});
|
|
391
|
+
if (event.panel) {
|
|
392
|
+
this._onDidAddPanel.fire(event.panel);
|
|
393
|
+
}
|
|
444
394
|
break;
|
|
445
395
|
case GroupChangeKind2.REMOVE_PANEL:
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
});
|
|
396
|
+
if (event.panel) {
|
|
397
|
+
this._onDidRemovePanel.fire(event.panel);
|
|
398
|
+
}
|
|
450
399
|
break;
|
|
451
400
|
case GroupChangeKind2.PANEL_ACTIVE:
|
|
452
|
-
this.
|
|
453
|
-
kind: GroupChangeKind.PANEL_ACTIVE,
|
|
454
|
-
panel: event.panel,
|
|
455
|
-
});
|
|
401
|
+
this._onDidActivePanelChange.fire(event.panel);
|
|
456
402
|
break;
|
|
457
403
|
}
|
|
458
404
|
}));
|
|
@@ -466,46 +412,18 @@ export class DockviewComponent extends BaseGrid {
|
|
|
466
412
|
}
|
|
467
413
|
return view;
|
|
468
414
|
}
|
|
469
|
-
dispose() {
|
|
470
|
-
super.dispose();
|
|
471
|
-
this._onGridEvent.dispose();
|
|
472
|
-
}
|
|
473
|
-
/**
|
|
474
|
-
* Ensure the local copy of the layout state is up-to-date
|
|
475
|
-
*/
|
|
476
|
-
syncConfigs() {
|
|
477
|
-
const dirtyPanels = Array.from(this.dirtyPanels);
|
|
478
|
-
if (dirtyPanels.length === 0) {
|
|
479
|
-
//
|
|
480
|
-
}
|
|
481
|
-
this.dirtyPanels.clear();
|
|
482
|
-
const partialPanelState = dirtyPanels
|
|
483
|
-
.map((panel) => this._panels.get(panel.id))
|
|
484
|
-
.filter((_) => !!_)
|
|
485
|
-
.reduce((collection, panel) => {
|
|
486
|
-
collection[panel.value.id] = panel.value.toJSON();
|
|
487
|
-
return collection;
|
|
488
|
-
}, {});
|
|
489
|
-
this.panelState = Object.assign(Object.assign({}, this.panelState), partialPanelState);
|
|
490
|
-
dirtyPanels
|
|
491
|
-
.filter((p) => this._panels.has(p.id))
|
|
492
|
-
.forEach((panel) => {
|
|
493
|
-
panel.setDirty(false);
|
|
494
|
-
});
|
|
495
|
-
}
|
|
496
415
|
_addPanel(options) {
|
|
497
416
|
const view = new DefaultGroupPanelView({
|
|
498
417
|
content: this.createContentComponent(options.id, options.component),
|
|
499
418
|
tab: this.createTabComponent(options.id, options.tabComponent),
|
|
500
419
|
});
|
|
501
|
-
const panel = new DockviewGroupPanel(options.id, this._api);
|
|
420
|
+
const panel = new DockviewGroupPanel(options.id, this, this._api);
|
|
502
421
|
panel.init({
|
|
503
422
|
view,
|
|
504
423
|
title: options.title || options.id,
|
|
505
424
|
suppressClosable: options === null || options === void 0 ? void 0 : options.suppressClosable,
|
|
506
425
|
params: (options === null || options === void 0 ? void 0 : options.params) || {},
|
|
507
426
|
});
|
|
508
|
-
this.registerPanel(panel);
|
|
509
427
|
return panel;
|
|
510
428
|
}
|
|
511
429
|
createContentComponent(id, componentName) {
|
|
@@ -525,9 +443,11 @@ export class DockviewComponent extends BaseGrid {
|
|
|
525
443
|
var _a;
|
|
526
444
|
return (_a = Array.from(this._groups.values()).find((group) => group.value.model.containsPanel(panel))) === null || _a === void 0 ? void 0 : _a.value;
|
|
527
445
|
}
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
this.
|
|
446
|
+
dispose() {
|
|
447
|
+
super.dispose();
|
|
448
|
+
this._onDidActivePanelChange.dispose();
|
|
449
|
+
this._onDidAddPanel.dispose();
|
|
450
|
+
this._onDidRemovePanel.dispose();
|
|
451
|
+
this._onDidLayoutfromJSON.dispose();
|
|
532
452
|
}
|
|
533
453
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { DockviewApi } from '../api/component.api';
|
|
2
2
|
import { DockviewPanelApiImpl } from '../api/groupPanelApi';
|
|
3
|
-
import { Event } from '../events';
|
|
4
3
|
import { GroupPanelUpdateEvent, GroupviewPanelState, IGroupPanel, IGroupPanelInitParameters } from '../groupview/groupPanel';
|
|
5
4
|
import { GroupviewPanel } from '../groupview/groupviewPanel';
|
|
6
5
|
import { CompositeDisposable } from '../lifecycle';
|
|
7
6
|
import { IGroupPanelView } from './defaultGroupPanelView';
|
|
7
|
+
import { DockviewComponent } from './dockviewComponent';
|
|
8
8
|
export declare class DockviewGroupPanel extends CompositeDisposable implements IGroupPanel {
|
|
9
9
|
readonly id: string;
|
|
10
10
|
private readonly containerApi;
|
|
@@ -12,19 +12,17 @@ export declare class DockviewGroupPanel extends CompositeDisposable implements I
|
|
|
12
12
|
readonly api: DockviewPanelApiImpl;
|
|
13
13
|
private _group;
|
|
14
14
|
private _params?;
|
|
15
|
-
readonly onDidStateChange: Event<void>;
|
|
16
15
|
private _view?;
|
|
17
16
|
private _title;
|
|
18
17
|
private _suppressClosable;
|
|
18
|
+
get params(): any;
|
|
19
19
|
get title(): string;
|
|
20
20
|
get suppressClosable(): boolean;
|
|
21
21
|
get group(): GroupviewPanel | undefined;
|
|
22
22
|
get view(): IGroupPanelView | undefined;
|
|
23
|
-
constructor(id: string, containerApi: DockviewApi);
|
|
23
|
+
constructor(id: string, accessor: DockviewComponent, containerApi: DockviewApi);
|
|
24
24
|
init(params: IGroupPanelInitParameters): void;
|
|
25
25
|
focus(): void;
|
|
26
|
-
setDirty(isDirty: boolean): void;
|
|
27
|
-
close(): Promise<boolean>;
|
|
28
26
|
toJSON(): GroupviewPanelState;
|
|
29
27
|
setTitle(title: string): void;
|
|
30
28
|
setSuppressClosable(suppressClosable: boolean): void;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { GroupChangeKind2 } from '../groupview/groupview';
|
|
2
1
|
import { DockviewPanelApiImpl } from '../api/groupPanelApi';
|
|
3
2
|
import { CompositeDisposable, MutableDisposable } from '../lifecycle';
|
|
4
3
|
export class DockviewGroupPanel extends CompositeDisposable {
|
|
5
|
-
constructor(id, containerApi) {
|
|
4
|
+
constructor(id, accessor, containerApi) {
|
|
6
5
|
super();
|
|
7
6
|
this.id = id;
|
|
8
7
|
this.containerApi = containerApi;
|
|
@@ -10,14 +9,17 @@ export class DockviewGroupPanel extends CompositeDisposable {
|
|
|
10
9
|
this._suppressClosable = false;
|
|
11
10
|
this._title = '';
|
|
12
11
|
this.api = new DockviewPanelApiImpl(this, this._group);
|
|
13
|
-
this.onDidStateChange = this.api.onDidStateChange;
|
|
14
12
|
this.addDisposables(this.api.onActiveChange(() => {
|
|
15
|
-
|
|
13
|
+
accessor.setActivePanel(this);
|
|
16
14
|
}), this.api.onDidTitleChange((event) => {
|
|
17
15
|
const title = event.title;
|
|
18
16
|
this.update({ params: { title } });
|
|
19
17
|
}));
|
|
20
18
|
}
|
|
19
|
+
get params() {
|
|
20
|
+
var _a;
|
|
21
|
+
return (_a = this._params) === null || _a === void 0 ? void 0 : _a.params;
|
|
22
|
+
}
|
|
21
23
|
get title() {
|
|
22
24
|
return this._title;
|
|
23
25
|
}
|
|
@@ -36,32 +38,18 @@ export class DockviewGroupPanel extends CompositeDisposable {
|
|
|
36
38
|
this._view = params.view;
|
|
37
39
|
this.setTitle(params.title);
|
|
38
40
|
this.setSuppressClosable(params.suppressClosable || false);
|
|
39
|
-
if (params.state) {
|
|
40
|
-
this.api.setState(params.state);
|
|
41
|
-
}
|
|
42
41
|
(_a = this.view) === null || _a === void 0 ? void 0 : _a.init(Object.assign(Object.assign({}, params), { api: this.api, containerApi: this.containerApi }));
|
|
43
42
|
}
|
|
44
43
|
focus() {
|
|
45
44
|
this.api._onFocusEvent.fire();
|
|
46
45
|
}
|
|
47
|
-
setDirty(isDirty) {
|
|
48
|
-
this.api._onDidDirtyChange.fire(isDirty);
|
|
49
|
-
}
|
|
50
|
-
close() {
|
|
51
|
-
if (this.api.tryClose) {
|
|
52
|
-
return this.api.tryClose();
|
|
53
|
-
}
|
|
54
|
-
return Promise.resolve(true);
|
|
55
|
-
}
|
|
56
46
|
toJSON() {
|
|
57
|
-
const state = this.api.getState();
|
|
58
47
|
return {
|
|
59
48
|
id: this.id,
|
|
60
49
|
view: this.view.toJSON(),
|
|
61
50
|
params: Object.keys(this._params || {}).length > 0
|
|
62
51
|
? this._params
|
|
63
52
|
: undefined,
|
|
64
|
-
state: state && Object.keys(state).length > 0 ? state : undefined,
|
|
65
53
|
suppressClosable: this.suppressClosable || undefined,
|
|
66
54
|
title: this.title,
|
|
67
55
|
};
|
|
@@ -106,18 +94,6 @@ export class DockviewGroupPanel extends CompositeDisposable {
|
|
|
106
94
|
var _a;
|
|
107
95
|
this._group = group;
|
|
108
96
|
this.api.group = group;
|
|
109
|
-
this.mutableDisposable.value = this._group.model.onDidGroupChange((ev) => {
|
|
110
|
-
var _a;
|
|
111
|
-
if (ev.kind === GroupChangeKind2.GROUP_ACTIVE) {
|
|
112
|
-
const isVisible = !!((_a = this._group) === null || _a === void 0 ? void 0 : _a.model.isPanelActive(this));
|
|
113
|
-
this.api._onDidActiveChange.fire({
|
|
114
|
-
isActive: isGroupActive && isVisible,
|
|
115
|
-
});
|
|
116
|
-
this.api._onDidVisibilityChange.fire({
|
|
117
|
-
isVisible,
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
});
|
|
121
97
|
const isPanelVisible = this._group.model.isPanelActive(this);
|
|
122
98
|
this.api._onDidActiveChange.fire({
|
|
123
99
|
isActive: isGroupActive && isPanelVisible,
|
|
@@ -6,6 +6,7 @@ import { IContentRenderer, ITabRenderer, WatermarkConstructor, IWatermarkRendere
|
|
|
6
6
|
import { GroupviewPanel } from '../groupview/groupviewPanel';
|
|
7
7
|
import { ISplitviewStyles, Orientation } from '../splitview/core/splitview';
|
|
8
8
|
import { FrameworkFactory } from '../types';
|
|
9
|
+
import { DockviewDropTargets } from '../groupview/dnd';
|
|
9
10
|
export interface GroupPanelFrameworkComponentFactory {
|
|
10
11
|
content: FrameworkFactory<IContentRenderer>;
|
|
11
12
|
tab: FrameworkFactory<ITabRenderer>;
|
|
@@ -44,9 +45,9 @@ export interface DockviewOptions extends DockviewRenderFunctions {
|
|
|
44
45
|
frameworkComponentFactory?: GroupPanelFrameworkComponentFactory;
|
|
45
46
|
tabHeight?: number;
|
|
46
47
|
debug?: boolean;
|
|
47
|
-
enableExternalDragEvents?: boolean;
|
|
48
48
|
orientation?: Orientation;
|
|
49
49
|
styles?: ISplitviewStyles;
|
|
50
|
+
showDndOverlay?: (event: DragEvent, target: DockviewDropTargets) => boolean;
|
|
50
51
|
}
|
|
51
52
|
export interface PanelOptions {
|
|
52
53
|
component: string;
|
package/dist/esm/events.js
CHANGED
|
@@ -28,7 +28,6 @@ export class Emitter {
|
|
|
28
28
|
if (((_a = this.options) === null || _a === void 0 ? void 0 : _a.replay) && this._last !== undefined) {
|
|
29
29
|
listener(this._last);
|
|
30
30
|
}
|
|
31
|
-
const firstListener = this._listeners.length === 0;
|
|
32
31
|
this._listeners.push(listener);
|
|
33
32
|
return {
|
|
34
33
|
dispose: () => {
|
|
@@ -44,9 +43,9 @@ export class Emitter {
|
|
|
44
43
|
}
|
|
45
44
|
fire(e) {
|
|
46
45
|
this._last = e;
|
|
47
|
-
this._listeners
|
|
46
|
+
for (const listener of this._listeners) {
|
|
48
47
|
listener(e);
|
|
49
|
-
}
|
|
48
|
+
}
|
|
50
49
|
}
|
|
51
50
|
dispose() {
|
|
52
51
|
this._listeners = [];
|
|
@@ -1,29 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Event, TickDelayedEvent } from '../events';
|
|
2
2
|
import { Gridview, IGridView } from './gridview';
|
|
3
3
|
import { Position } from '../dnd/droptarget';
|
|
4
4
|
import { CompositeDisposable, IValueDisposable } from '../lifecycle';
|
|
5
5
|
import { ISplitviewStyles, Orientation } from '../splitview/core/splitview';
|
|
6
6
|
import { IPanel } from '../panel/types';
|
|
7
7
|
import { MovementOptions2 } from '../dockview/options';
|
|
8
|
-
import { IGroupPanel } from '../groupview/groupPanel';
|
|
9
|
-
export declare enum GroupChangeKind {
|
|
10
|
-
ADD_PANEL = "ADD_PANEL",
|
|
11
|
-
REMOVE_PANEL = "REMOVE_PANEL",
|
|
12
|
-
PANEL_ACTIVE = "PANEL_ACTIVE",
|
|
13
|
-
GROUP_ACTIVE = "GROUP_ACTIVE",
|
|
14
|
-
ADD_GROUP = "ADD_GROUP",
|
|
15
|
-
REMOVE_GROUP = "REMOVE_GROUP",
|
|
16
|
-
LAYOUT_FROM_JSON = "LAYOUT_FROM_JSON",
|
|
17
|
-
LAYOUT = "LAYOUT"
|
|
18
|
-
}
|
|
19
|
-
export interface GroupChangeEvent {
|
|
20
|
-
readonly kind: GroupChangeKind;
|
|
21
|
-
readonly panel?: IGroupPanel;
|
|
22
|
-
}
|
|
23
8
|
export declare type Direction = 'left' | 'right' | 'above' | 'below' | 'within';
|
|
24
9
|
export declare function toTarget(direction: Direction): Position;
|
|
25
10
|
export interface BaseGridOptions {
|
|
26
|
-
readonly proportionalLayout
|
|
11
|
+
readonly proportionalLayout: boolean;
|
|
27
12
|
readonly orientation: Orientation;
|
|
28
13
|
readonly styles?: ISplitviewStyles;
|
|
29
14
|
}
|
|
@@ -43,8 +28,10 @@ export interface IBaseGrid<T extends IGridPanelView> {
|
|
|
43
28
|
readonly activeGroup: T | undefined;
|
|
44
29
|
readonly size: number;
|
|
45
30
|
readonly groups: T[];
|
|
46
|
-
readonly onGridEvent: Event<GroupChangeEvent>;
|
|
47
31
|
readonly onDidLayoutChange: Event<void>;
|
|
32
|
+
readonly onDidRemoveGroup: Event<T>;
|
|
33
|
+
readonly onDidAddGroup: Event<T>;
|
|
34
|
+
readonly onDidActiveGroupChange: Event<T | undefined>;
|
|
48
35
|
getPanel(id: string): T | undefined;
|
|
49
36
|
toJSON(): object;
|
|
50
37
|
fromJSON(data: any): void;
|
|
@@ -59,10 +46,15 @@ export declare abstract class BaseGrid<T extends IGridPanelView> extends Composi
|
|
|
59
46
|
protected readonly _groups: Map<string, IValueDisposable<T>>;
|
|
60
47
|
protected readonly gridview: Gridview;
|
|
61
48
|
protected _activeGroup: T | undefined;
|
|
62
|
-
protected readonly _onGridEvent: Emitter<GroupChangeEvent>;
|
|
63
|
-
readonly onGridEvent: Event<GroupChangeEvent>;
|
|
64
49
|
private _onDidLayoutChange;
|
|
65
50
|
readonly onDidLayoutChange: Event<void>;
|
|
51
|
+
private readonly _onDidRemoveGroup;
|
|
52
|
+
readonly onDidRemoveGroup: Event<T>;
|
|
53
|
+
private readonly _onDidAddGroup;
|
|
54
|
+
readonly onDidAddGroup: Event<T>;
|
|
55
|
+
private readonly _onDidActiveGroupChange;
|
|
56
|
+
readonly onDidActiveGroupChange: Event<T | undefined>;
|
|
57
|
+
protected readonly _bufferOnDidLayoutChange: TickDelayedEvent;
|
|
66
58
|
get id(): string;
|
|
67
59
|
get element(): HTMLElement;
|
|
68
60
|
get size(): number;
|