dockview 1.0.3 → 1.3.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 +31 -25
- package/dist/cjs/api/component.api.js +97 -40
- 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 +15 -15
- 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 +72 -48
- package/dist/cjs/dnd/droptarget.js.map +1 -1
- package/dist/cjs/dockview/components/tab/defaultTab.d.ts +1 -2
- package/dist/cjs/dockview/components/tab/defaultTab.js +1 -9
- package/dist/cjs/dockview/components/tab/defaultTab.js.map +1 -1
- package/dist/cjs/dockview/components/watermark/watermark.d.ts +3 -3
- package/dist/cjs/dockview/components/watermark/watermark.js +4 -4
- package/dist/cjs/dockview/components/watermark/watermark.js.map +1 -1
- package/dist/cjs/dockview/deserializer.js.map +1 -1
- package/dist/cjs/dockview/dockviewComponent.d.ts +34 -23
- package/dist/cjs/dockview/dockviewComponent.js +117 -209
- 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 +49 -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 +16 -8
- package/dist/cjs/gridview/basePanelView.js.map +1 -1
- package/dist/cjs/gridview/branchNode.js +3 -3
- package/dist/cjs/gridview/branchNode.js.map +1 -1
- package/dist/cjs/gridview/gridview.js +21 -18
- package/dist/cjs/gridview/gridview.js.map +1 -1
- package/dist/cjs/gridview/gridviewComponent.d.ts +5 -6
- package/dist/cjs/gridview/gridviewComponent.js +33 -9
- 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 +18 -10
- package/dist/cjs/groupview/groupview.js +51 -129
- 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.d.ts +1 -1
- package/dist/cjs/groupview/panel/content.js +2 -1
- 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/hostedContainer.js +2 -2
- package/dist/cjs/hostedContainer.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/defaultPaneviewHeader.d.ts +1 -1
- package/dist/cjs/paneview/defaultPaneviewHeader.js +1 -1
- package/dist/cjs/paneview/defaultPaneviewHeader.js.map +1 -1
- 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.d.ts +3 -1
- package/dist/cjs/paneview/paneview.js +13 -7
- package/dist/cjs/paneview/paneview.js.map +1 -1
- package/dist/cjs/paneview/paneviewComponent.d.ts +7 -6
- package/dist/cjs/paneview/paneviewComponent.js +65 -8
- package/dist/cjs/paneview/paneviewComponent.js.map +1 -1
- package/dist/cjs/paneview/paneviewPanel.js +1 -1
- 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 +40 -5
- package/dist/cjs/react/dockview/dockview.js.map +1 -1
- package/dist/cjs/react/dockview/reactContentPart.d.ts +2 -2
- package/dist/cjs/react/dockview/reactContentPart.js +6 -17
- package/dist/cjs/react/dockview/reactContentPart.js.map +1 -1
- package/dist/cjs/react/dockview/reactHeaderPart.d.ts +2 -2
- package/dist/cjs/react/dockview/reactHeaderPart.js +3 -2
- package/dist/cjs/react/dockview/reactHeaderPart.js.map +1 -1
- package/dist/cjs/react/dockview/reactWatermarkPart.d.ts +3 -4
- package/dist/cjs/react/dockview/reactWatermarkPart.js +3 -4
- package/dist/cjs/react/dockview/reactWatermarkPart.js.map +1 -1
- package/dist/cjs/react/dockview/v2/reactContentRenderer.d.ts +2 -2
- package/dist/cjs/react/dockview/v2/reactContentRenderer.js +2 -2
- package/dist/cjs/react/dockview/v2/reactContentRenderer.js.map +1 -1
- package/dist/cjs/react/dockview/v2/webviewContentRenderer.d.ts +2 -2
- package/dist/cjs/react/dockview/v2/webviewContentRenderer.js +2 -2
- package/dist/cjs/react/dockview/v2/webviewContentRenderer.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.d.ts +3 -2
- 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 +6 -2
- 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 +1 -1
- package/dist/cjs/splitview/core/splitview.js.map +1 -1
- package/dist/cjs/splitview/splitviewComponent.d.ts +0 -3
- package/dist/cjs/splitview/splitviewComponent.js +50 -6
- 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 +666 -791
- package/dist/dockview.amd.min.js +2 -16
- package/dist/dockview.amd.min.noStyle.js +2 -16
- package/dist/dockview.amd.noStyle.js +665 -790
- package/dist/dockview.cjs.js +666 -791
- package/dist/dockview.esm.js +666 -780
- package/dist/dockview.esm.min.js +2 -16
- package/dist/dockview.js +666 -791
- package/dist/dockview.min.js +2 -16
- package/dist/dockview.min.noStyle.js +2 -16
- package/dist/dockview.noStyle.js +665 -790
- package/dist/esm/api/component.api.d.ts +31 -25
- package/dist/esm/api/component.api.js +47 -26
- 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 +10 -10
- 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 +72 -48
- package/dist/esm/dockview/components/tab/defaultTab.d.ts +1 -2
- package/dist/esm/dockview/components/tab/defaultTab.js +2 -10
- package/dist/esm/dockview/components/watermark/watermark.d.ts +3 -3
- package/dist/esm/dockview/components/watermark/watermark.js +4 -4
- package/dist/esm/dockview/dockviewComponent.d.ts +34 -23
- package/dist/esm/dockview/dockviewComponent.js +82 -150
- 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 +27 -45
- package/dist/esm/gridview/basePanelView.d.ts +5 -8
- package/dist/esm/gridview/basePanelView.js +12 -8
- package/dist/esm/gridview/branchNode.js +3 -3
- package/dist/esm/gridview/gridview.js +18 -16
- package/dist/esm/gridview/gridviewComponent.d.ts +5 -6
- package/dist/esm/gridview/gridviewComponent.js +12 -10
- 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 +18 -10
- package/dist/esm/groupview/groupview.js +30 -59
- package/dist/esm/groupview/groupviewPanel.d.ts +5 -2
- package/dist/esm/groupview/panel/content.d.ts +1 -1
- package/dist/esm/groupview/panel/content.js +2 -1
- 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/hostedContainer.js +2 -2
- 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/defaultPaneviewHeader.d.ts +1 -1
- package/dist/esm/paneview/defaultPaneviewHeader.js +1 -1
- package/dist/esm/paneview/draggablePaneviewPanel.d.ts +2 -2
- package/dist/esm/paneview/draggablePaneviewPanel.js +32 -29
- package/dist/esm/paneview/paneview.d.ts +3 -1
- package/dist/esm/paneview/paneview.js +10 -6
- package/dist/esm/paneview/paneviewComponent.d.ts +7 -6
- package/dist/esm/paneview/paneviewComponent.js +31 -7
- package/dist/esm/paneview/paneviewPanel.js +1 -1
- 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 +36 -5
- package/dist/esm/react/dockview/reactContentPart.d.ts +2 -2
- package/dist/esm/react/dockview/reactContentPart.js +6 -17
- package/dist/esm/react/dockview/reactHeaderPart.d.ts +2 -2
- package/dist/esm/react/dockview/reactHeaderPart.js +3 -2
- package/dist/esm/react/dockview/reactWatermarkPart.d.ts +3 -4
- package/dist/esm/react/dockview/reactWatermarkPart.js +3 -4
- package/dist/esm/react/dockview/v2/reactContentRenderer.d.ts +2 -2
- package/dist/esm/react/dockview/v2/reactContentRenderer.js +2 -2
- package/dist/esm/react/dockview/v2/webviewContentRenderer.d.ts +2 -2
- package/dist/esm/react/dockview/v2/webviewContentRenderer.js +2 -2
- package/dist/esm/react/gridview/gridview.js +4 -1
- package/dist/esm/react/gridview/view.d.ts +3 -2
- package/dist/esm/react/gridview/view.js +2 -2
- package/dist/esm/react/index.d.ts +1 -0
- package/dist/esm/react/paneview/paneview.js +1 -1
- 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 +1 -1
- package/dist/esm/splitview/splitviewComponent.d.ts +0 -3
- package/dist/esm/splitview/splitviewComponent.js +17 -6
- package/dist/esm/splitview/splitviewPanel.d.ts +1 -6
- package/dist/esm/splitview/splitviewPanel.js +5 -3
- package/dist/styles/dockview.css +14 -17
- package/package.json +13 -13
- 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,12 +1,3 @@
|
|
|
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 { DockviewApi } from '../api/component.api';
|
|
11
2
|
import { getPanelData } from '../dnd/dataTransfer';
|
|
12
3
|
import { Droptarget, Position } from '../dnd/droptarget';
|
|
@@ -21,7 +12,6 @@ export var GroupChangeKind2;
|
|
|
21
12
|
GroupChangeKind2["ADD_PANEL"] = "ADD_PANEL";
|
|
22
13
|
GroupChangeKind2["REMOVE_PANEL"] = "REMOVE_PANEL";
|
|
23
14
|
GroupChangeKind2["PANEL_ACTIVE"] = "PANEL_ACTIVE";
|
|
24
|
-
GroupChangeKind2["GROUP_ACTIVE"] = "GROUP_ACTIVE";
|
|
25
15
|
})(GroupChangeKind2 || (GroupChangeKind2 = {}));
|
|
26
16
|
export class Groupview extends CompositeDisposable {
|
|
27
17
|
constructor(container, accessor, id, options, parent) {
|
|
@@ -42,15 +32,10 @@ export class Groupview extends CompositeDisposable {
|
|
|
42
32
|
this.onMove = this._onMove.event;
|
|
43
33
|
this._onDidGroupChange = new Emitter();
|
|
44
34
|
this.onDidGroupChange = this._onDidGroupChange.event;
|
|
45
|
-
this.
|
|
46
|
-
|
|
47
|
-
return false;
|
|
48
|
-
}
|
|
49
|
-
this.doClose(panel);
|
|
50
|
-
return true;
|
|
51
|
-
});
|
|
35
|
+
this._onDidDrop = new Emitter();
|
|
36
|
+
this.onDidDrop = this._onDidDrop.event;
|
|
52
37
|
this.container.classList.add('groupview');
|
|
53
|
-
this.addDisposables(this._onMove, this._onDidGroupChange);
|
|
38
|
+
this.addDisposables(this._onMove, this._onDidGroupChange, this._onDidChange, this._onDidDrop);
|
|
54
39
|
this.tabsContainer = new TabsContainer(this.accessor, this.parent, {
|
|
55
40
|
tabHeight: options.tabHeight,
|
|
56
41
|
});
|
|
@@ -114,6 +99,9 @@ export class Groupview extends CompositeDisposable {
|
|
|
114
99
|
get maximumWidth() {
|
|
115
100
|
return Number.MAX_SAFE_INTEGER;
|
|
116
101
|
}
|
|
102
|
+
get hasWatermark() {
|
|
103
|
+
return !!(this.watermark && this.container.contains(this.watermark.element));
|
|
104
|
+
}
|
|
117
105
|
initialize() {
|
|
118
106
|
var _a, _b;
|
|
119
107
|
if ((_a = this.options) === null || _a === void 0 ? void 0 : _a.panels) {
|
|
@@ -192,10 +180,10 @@ export class Groupview extends CompositeDisposable {
|
|
|
192
180
|
containsPanel(panel) {
|
|
193
181
|
return this.panels.includes(panel);
|
|
194
182
|
}
|
|
195
|
-
init(
|
|
183
|
+
init(_params) {
|
|
196
184
|
//noop
|
|
197
185
|
}
|
|
198
|
-
update(
|
|
186
|
+
update(_params) {
|
|
199
187
|
//noop
|
|
200
188
|
}
|
|
201
189
|
focus() {
|
|
@@ -207,6 +195,8 @@ export class Groupview extends CompositeDisposable {
|
|
|
207
195
|
options.index > this.panels.length) {
|
|
208
196
|
options.index = this.panels.length;
|
|
209
197
|
}
|
|
198
|
+
// ensure the group is updated before we fire any events
|
|
199
|
+
panel.updateParentGroup(this.parent, true);
|
|
210
200
|
if (this._activePanel === panel) {
|
|
211
201
|
this.accessor.doSetGroupActive(this.parent);
|
|
212
202
|
return;
|
|
@@ -227,43 +217,19 @@ export class Groupview extends CompositeDisposable {
|
|
|
227
217
|
return this._removePanel(panelToRemove);
|
|
228
218
|
}
|
|
229
219
|
closeAllPanels() {
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
const
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
if (this._activePanel && index > -1) {
|
|
236
|
-
if (this.panels.indexOf(this._activePanel) < 0) {
|
|
237
|
-
console.warn('active panel not tracked');
|
|
238
|
-
}
|
|
239
|
-
const canClose = !((_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.close) || (yield this._activePanel.close());
|
|
240
|
-
if (!canClose) {
|
|
241
|
-
return false;
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
for (let i = 0; i < this.panels.length; i++) {
|
|
245
|
-
if (i === index) {
|
|
246
|
-
continue;
|
|
247
|
-
}
|
|
248
|
-
const panel = this.panels[i];
|
|
249
|
-
this.openPanel(panel);
|
|
250
|
-
if (panel.close) {
|
|
251
|
-
const canClose = yield panel.close();
|
|
252
|
-
if (!canClose) {
|
|
253
|
-
return false;
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
if (this.panels.length > 0) {
|
|
258
|
-
// take a copy since we will be edting the array as we iterate through
|
|
259
|
-
const arrPanelCpy = [...this.panels];
|
|
260
|
-
yield Promise.all(arrPanelCpy.map((p) => this.doClose(p)));
|
|
220
|
+
if (this.panels.length > 0) {
|
|
221
|
+
// take a copy since we will be edting the array as we iterate through
|
|
222
|
+
const arrPanelCpy = [...this.panels];
|
|
223
|
+
for (const panel of arrPanelCpy) {
|
|
224
|
+
this.doClose(panel);
|
|
261
225
|
}
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
226
|
+
}
|
|
227
|
+
else {
|
|
228
|
+
this.accessor.removeGroup(this.parent);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
closePanel(panel) {
|
|
232
|
+
this.doClose(panel);
|
|
267
233
|
}
|
|
268
234
|
doClose(panel) {
|
|
269
235
|
this.accessor.removePanel(panel);
|
|
@@ -406,8 +372,11 @@ export class Groupview extends CompositeDisposable {
|
|
|
406
372
|
this.tabsContainer.show();
|
|
407
373
|
}
|
|
408
374
|
}
|
|
409
|
-
canDisplayOverlay(
|
|
375
|
+
canDisplayOverlay(event, target) {
|
|
410
376
|
// custom overlay handler
|
|
377
|
+
if (this.accessor.options.showDndOverlay) {
|
|
378
|
+
return this.accessor.options.showDndOverlay(event, target);
|
|
379
|
+
}
|
|
411
380
|
return false;
|
|
412
381
|
}
|
|
413
382
|
handleDropEvent(event, position, index) {
|
|
@@ -433,14 +402,16 @@ export class Groupview extends CompositeDisposable {
|
|
|
433
402
|
});
|
|
434
403
|
}
|
|
435
404
|
else {
|
|
436
|
-
|
|
405
|
+
this._onDidDrop.fire({ nativeEvent: event, position, index });
|
|
437
406
|
}
|
|
438
407
|
}
|
|
439
408
|
dispose() {
|
|
409
|
+
var _a;
|
|
410
|
+
super.dispose();
|
|
411
|
+
(_a = this.watermark) === null || _a === void 0 ? void 0 : _a.dispose();
|
|
440
412
|
for (const panel of this.panels) {
|
|
441
413
|
panel.dispose();
|
|
442
414
|
}
|
|
443
|
-
super.dispose();
|
|
444
415
|
this.dropTarget.dispose();
|
|
445
416
|
this.tabsContainer.dispose();
|
|
446
417
|
this.contentContainer.dispose();
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { IFrameworkPart } from '../panel/types';
|
|
2
2
|
import { IDockviewComponent } from '../dockview/dockviewComponent';
|
|
3
3
|
import { Groupview, GroupOptions } from './groupview';
|
|
4
|
-
import { GridviewPanel } from '../gridview/gridviewPanel';
|
|
5
|
-
export
|
|
4
|
+
import { GridviewPanel, IGridviewPanel } from '../gridview/gridviewPanel';
|
|
5
|
+
export interface IGroupviewPanel extends IGridviewPanel {
|
|
6
|
+
model: Groupview;
|
|
7
|
+
}
|
|
8
|
+
export declare class GroupviewPanel extends GridviewPanel implements IGroupviewPanel {
|
|
6
9
|
private readonly _model;
|
|
7
10
|
get model(): Groupview;
|
|
8
11
|
get minimumHeight(): number;
|
|
@@ -24,7 +24,7 @@ export declare class ContentContainer extends CompositeDisposable implements ICo
|
|
|
24
24
|
show(): void;
|
|
25
25
|
hide(): void;
|
|
26
26
|
openPanel(panel: IGroupPanel): void;
|
|
27
|
-
layout(
|
|
27
|
+
layout(_width: number, _height: number): void;
|
|
28
28
|
closePanel(): void;
|
|
29
29
|
dispose(): void;
|
|
30
30
|
}
|
|
@@ -12,6 +12,7 @@ export class ContentContainer extends CompositeDisposable {
|
|
|
12
12
|
this._element = document.createElement('div');
|
|
13
13
|
this._element.className = 'content-container';
|
|
14
14
|
this._element.tabIndex = -1;
|
|
15
|
+
this.addDisposables(this._onDidFocus, this._onDidBlur);
|
|
15
16
|
// for hosted containers
|
|
16
17
|
// 1) register a drop target on the host
|
|
17
18
|
// 2) register window dragStart events to disable pointer events
|
|
@@ -55,7 +56,7 @@ export class ContentContainer extends CompositeDisposable {
|
|
|
55
56
|
}
|
|
56
57
|
this.disposable.value = disposable;
|
|
57
58
|
}
|
|
58
|
-
layout(
|
|
59
|
+
layout(_width, _height) {
|
|
59
60
|
// noop
|
|
60
61
|
}
|
|
61
62
|
closePanel() {
|
|
@@ -10,33 +10,30 @@ export declare enum MouseEventKind {
|
|
|
10
10
|
CONTEXT_MENU = "CONTEXT_MENU"
|
|
11
11
|
}
|
|
12
12
|
export interface LayoutMouseEvent {
|
|
13
|
-
kind: MouseEventKind;
|
|
14
|
-
event: MouseEvent;
|
|
15
|
-
panel?: IGroupPanel;
|
|
16
|
-
tab?: boolean;
|
|
13
|
+
readonly kind: MouseEventKind;
|
|
14
|
+
readonly event: MouseEvent;
|
|
15
|
+
readonly panel?: IGroupPanel;
|
|
16
|
+
readonly tab?: boolean;
|
|
17
17
|
}
|
|
18
18
|
export interface ITab {
|
|
19
|
-
panelId: string;
|
|
20
|
-
element: HTMLElement;
|
|
19
|
+
readonly panelId: string;
|
|
20
|
+
readonly element: HTMLElement;
|
|
21
21
|
setContent: (element: ITabRenderer) => void;
|
|
22
22
|
onChanged: Event<LayoutMouseEvent>;
|
|
23
23
|
onDrop: Event<DroptargetEvent>;
|
|
24
24
|
setActive(isActive: boolean): void;
|
|
25
25
|
}
|
|
26
26
|
export declare class Tab extends CompositeDisposable implements ITab {
|
|
27
|
-
panelId: string;
|
|
28
|
-
private readonly
|
|
29
|
-
private
|
|
30
|
-
private
|
|
31
|
-
private droptarget;
|
|
27
|
+
readonly panelId: string;
|
|
28
|
+
private readonly group;
|
|
29
|
+
private readonly _element;
|
|
30
|
+
private readonly droptarget;
|
|
32
31
|
private content?;
|
|
33
32
|
private readonly _onChanged;
|
|
34
33
|
readonly onChanged: Event<LayoutMouseEvent>;
|
|
35
34
|
private readonly _onDropped;
|
|
36
35
|
readonly onDrop: Event<DroptargetEvent>;
|
|
37
|
-
private readonly panelTransfer;
|
|
38
36
|
get element(): HTMLElement;
|
|
39
|
-
private iframes;
|
|
40
37
|
constructor(panelId: string, accessor: IDockviewComponent, group: GroupviewPanel);
|
|
41
38
|
setActive(isActive: boolean): void;
|
|
42
39
|
setContent(part: ITabRenderer): void;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { addDisposableListener, Emitter } from '../events';
|
|
2
2
|
import { CompositeDisposable } from '../lifecycle';
|
|
3
3
|
import { getPanelData, LocalSelectionTransfer, PanelTransfer, } from '../dnd/dataTransfer';
|
|
4
|
-
import {
|
|
4
|
+
import { toggleClass } from '../dom';
|
|
5
5
|
import { Droptarget } from '../dnd/droptarget';
|
|
6
6
|
import { DockviewDropTargets } from './dnd';
|
|
7
|
+
import { DragHandler } from '../dnd/abstractDragHandler';
|
|
7
8
|
export var MouseEventKind;
|
|
8
9
|
(function (MouseEventKind) {
|
|
9
10
|
MouseEventKind["CLICK"] = "CLICK";
|
|
@@ -13,42 +14,34 @@ export class Tab extends CompositeDisposable {
|
|
|
13
14
|
constructor(panelId, accessor, group) {
|
|
14
15
|
super();
|
|
15
16
|
this.panelId = panelId;
|
|
16
|
-
this.accessor = accessor;
|
|
17
17
|
this.group = group;
|
|
18
18
|
this._onChanged = new Emitter();
|
|
19
19
|
this.onChanged = this._onChanged.event;
|
|
20
20
|
this._onDropped = new Emitter();
|
|
21
21
|
this.onDrop = this._onDropped.event;
|
|
22
|
-
this.panelTransfer = LocalSelectionTransfer.getInstance();
|
|
23
|
-
this.iframes = [];
|
|
24
22
|
this.addDisposables(this._onChanged, this._onDropped);
|
|
25
23
|
this._element = document.createElement('div');
|
|
26
24
|
this._element.className = 'tab';
|
|
27
25
|
this._element.tabIndex = 0;
|
|
28
26
|
this._element.draggable = true;
|
|
29
|
-
this.addDisposables(
|
|
30
|
-
|
|
31
|
-
...
|
|
32
|
-
|
|
33
|
-
];
|
|
34
|
-
for (const iframe of this.iframes) {
|
|
35
|
-
iframe.style.pointerEvents = 'none';
|
|
27
|
+
this.addDisposables(new (class Handler extends DragHandler {
|
|
28
|
+
constructor() {
|
|
29
|
+
super(...arguments);
|
|
30
|
+
this.panelTransfer = LocalSelectionTransfer.getInstance();
|
|
36
31
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
32
|
+
getData() {
|
|
33
|
+
this.panelTransfer.setData([new PanelTransfer(accessor.id, group.id, panelId)], PanelTransfer.prototype);
|
|
34
|
+
return {
|
|
35
|
+
dispose: () => {
|
|
36
|
+
this.panelTransfer.clearData(PanelTransfer.prototype);
|
|
37
|
+
},
|
|
38
|
+
};
|
|
44
39
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
iframe.style.pointerEvents = 'auto';
|
|
40
|
+
dispose() {
|
|
41
|
+
//
|
|
48
42
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
}), addDisposableListener(this._element, 'mousedown', (event) => {
|
|
43
|
+
})(this._element));
|
|
44
|
+
this.addDisposables(addDisposableListener(this._element, 'mousedown', (event) => {
|
|
52
45
|
if (event.defaultPrevented) {
|
|
53
46
|
return;
|
|
54
47
|
}
|
|
@@ -155,12 +155,10 @@ export class TabsContainer extends CompositeDisposable {
|
|
|
155
155
|
if (!isLeftClick || event.event.defaultPrevented) {
|
|
156
156
|
return;
|
|
157
157
|
}
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
});
|
|
163
|
-
break;
|
|
158
|
+
if (event.kind === MouseEventKind.CLICK) {
|
|
159
|
+
this.group.model.openPanel(panel, {
|
|
160
|
+
skipFocus: alreadyFocused,
|
|
161
|
+
});
|
|
164
162
|
}
|
|
165
163
|
}), tabToAdd.onDrop((event) => {
|
|
166
164
|
this._onDrop.fire({
|
|
@@ -23,10 +23,10 @@ export class HostedContainer {
|
|
|
23
23
|
/**
|
|
24
24
|
* When dragging somebody
|
|
25
25
|
*/
|
|
26
|
-
window.addEventListener('dragstart', (
|
|
26
|
+
window.addEventListener('dragstart', () => {
|
|
27
27
|
this.element.style.pointerEvents = 'none';
|
|
28
28
|
});
|
|
29
|
-
window.addEventListener('dragend', (
|
|
29
|
+
window.addEventListener('dragend', () => {
|
|
30
30
|
this.element.style.pointerEvents = '';
|
|
31
31
|
});
|
|
32
32
|
window.addEventListener('mousemove', (ev) => {
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
export * from './events';
|
|
2
|
-
export * from './lifecycle';
|
|
3
1
|
export * from './dnd/dataTransfer';
|
|
4
2
|
export * from './api/component.api';
|
|
5
3
|
export * from './splitview/core/splitview';
|
|
@@ -20,8 +18,10 @@ export * from './splitview/splitviewPanel';
|
|
|
20
18
|
export * from './paneview/paneviewPanel';
|
|
21
19
|
export * from './groupview/groupPanel';
|
|
22
20
|
export * from './react';
|
|
21
|
+
export { Event } from './events';
|
|
22
|
+
export { IDisposable } from './lifecycle';
|
|
23
23
|
export { Position } from './dnd/droptarget';
|
|
24
|
-
export {
|
|
24
|
+
export { FocusEvent, PanelDimensionChangeEvent, VisibilityEvent, ActiveEvent, PanelApi, } from './api/panelApi';
|
|
25
25
|
export { SizeEvent, GridviewPanelApi, GridConstraintChangeEvent, } from './api/gridviewPanelApi';
|
|
26
26
|
export { TitleEvent, SuppressClosableEvent, DockviewPanelApi, } from './api/groupPanelApi';
|
|
27
27
|
export { PanelSizeEvent, PanelConstraintChangeEvent, SplitviewPanelApi, } from './api/splitviewPanelApi';
|
package/dist/esm/index.js
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
export * from './events';
|
|
2
|
-
export * from './lifecycle';
|
|
3
1
|
export * from './dnd/dataTransfer';
|
|
4
2
|
export * from './api/component.api';
|
|
5
3
|
export * from './splitview/core/splitview';
|
|
@@ -20,4 +18,5 @@ export * from './splitview/splitviewPanel';
|
|
|
20
18
|
export * from './paneview/paneviewPanel';
|
|
21
19
|
export * from './groupview/groupPanel';
|
|
22
20
|
export * from './react'; // TODO: should be conditional on whether user wants the React wrappers
|
|
21
|
+
export { Event } from './events';
|
|
23
22
|
export { Position } from './dnd/droptarget';
|
package/dist/esm/lifecycle.js
CHANGED
|
@@ -14,7 +14,7 @@ export class CompositeDisposable {
|
|
|
14
14
|
return new CompositeDisposable(...args);
|
|
15
15
|
}
|
|
16
16
|
addDisposables(...args) {
|
|
17
|
-
args
|
|
17
|
+
args.forEach((arg) => this.disposables.push(arg));
|
|
18
18
|
}
|
|
19
19
|
dispose() {
|
|
20
20
|
this.disposables.forEach((arg) => arg.dispose());
|
|
@@ -33,6 +33,7 @@ export class MutableDisposable {
|
|
|
33
33
|
dispose() {
|
|
34
34
|
if (this._disposable) {
|
|
35
35
|
this._disposable.dispose();
|
|
36
|
+
this._disposable = Disposable.NONE;
|
|
36
37
|
}
|
|
37
38
|
}
|
|
38
39
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { State } from '../api/panelApi';
|
|
2
1
|
import { IDisposable } from '../lifecycle';
|
|
3
2
|
import { LayoutPriority } from '../splitview/core/splitview';
|
|
4
3
|
/**
|
|
@@ -9,7 +8,6 @@ export interface Parameters {
|
|
|
9
8
|
}
|
|
10
9
|
export interface PanelInitParameters {
|
|
11
10
|
params: Parameters;
|
|
12
|
-
state?: State;
|
|
13
11
|
}
|
|
14
12
|
export interface PanelUpdateEvent<T extends Parameters = Parameters> {
|
|
15
13
|
params: Partial<T>;
|
|
@@ -13,6 +13,6 @@ export declare class DefaultHeader extends CompositeDisposable implements IPaneH
|
|
|
13
13
|
init(params: PanePanelInitParameter & {
|
|
14
14
|
api: PaneviewPanelApiImpl;
|
|
15
15
|
}): void;
|
|
16
|
-
update(
|
|
16
|
+
update(_params: PanelUpdateEvent): void;
|
|
17
17
|
dispose(): void;
|
|
18
18
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { PaneTransfer } from '../dnd/dataTransfer';
|
|
2
2
|
import { DroptargetEvent } from '../dnd/droptarget';
|
|
3
|
-
import { Event } from '../events';
|
|
4
3
|
import { Orientation } from '../splitview/core/splitview';
|
|
5
4
|
import { IPaneviewPanel, PaneviewPanel } from './paneviewPanel';
|
|
6
5
|
export interface PaneviewDropEvent2 extends DroptargetEvent {
|
|
@@ -11,7 +10,8 @@ export declare abstract class DraggablePaneviewPanel extends PaneviewPanel {
|
|
|
11
10
|
private handler;
|
|
12
11
|
private target;
|
|
13
12
|
private readonly _onDidDrop;
|
|
14
|
-
readonly onDidDrop: Event<PaneviewDropEvent2>;
|
|
13
|
+
readonly onDidDrop: import("../events").Event<PaneviewDropEvent2>;
|
|
15
14
|
constructor(id: string, component: string, headerComponent: string | undefined, orientation: Orientation, isExpanded: boolean, disableDnd: boolean);
|
|
16
15
|
private initDragFeatures;
|
|
16
|
+
private onDrop;
|
|
17
17
|
}
|
|
@@ -30,7 +30,7 @@ export class DraggablePaneviewPanel extends PaneviewPanel {
|
|
|
30
30
|
})(this.header);
|
|
31
31
|
this.target = new Droptarget(this.element, {
|
|
32
32
|
validOverlays: 'vertical',
|
|
33
|
-
canDisplayOverlay: (
|
|
33
|
+
canDisplayOverlay: () => {
|
|
34
34
|
const data = getPaneData();
|
|
35
35
|
if (!data) {
|
|
36
36
|
return true;
|
|
@@ -39,34 +39,37 @@ export class DraggablePaneviewPanel extends PaneviewPanel {
|
|
|
39
39
|
},
|
|
40
40
|
});
|
|
41
41
|
this.addDisposables(this._onDidDrop, this.handler, this.target, this.target.onDrop((event) => {
|
|
42
|
-
|
|
43
|
-
if (!data) {
|
|
44
|
-
this._onDidDrop.fire(Object.assign(Object.assign({}, event), { panel: this, getData: () => getPaneData() }));
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
const containerApi = this.params
|
|
48
|
-
.containerApi;
|
|
49
|
-
const panelId = data.paneId;
|
|
50
|
-
const existingPanel = containerApi.getPanel(panelId);
|
|
51
|
-
if (!existingPanel) {
|
|
52
|
-
this._onDidDrop.fire(Object.assign(Object.assign({}, event), { panel: this, getData: () => getPaneData() }));
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
const allPanels = containerApi.getPanels();
|
|
56
|
-
const fromIndex = allPanels.indexOf(existingPanel);
|
|
57
|
-
let toIndex = containerApi.getPanels().indexOf(this);
|
|
58
|
-
if (event.position === Position.Left ||
|
|
59
|
-
event.position === Position.Top) {
|
|
60
|
-
toIndex = Math.max(0, toIndex - 1);
|
|
61
|
-
}
|
|
62
|
-
if (event.position === Position.Right ||
|
|
63
|
-
event.position === Position.Bottom) {
|
|
64
|
-
if (fromIndex > toIndex) {
|
|
65
|
-
toIndex++;
|
|
66
|
-
}
|
|
67
|
-
toIndex = Math.min(allPanels.length - 1, toIndex);
|
|
68
|
-
}
|
|
69
|
-
containerApi.movePanel(fromIndex, toIndex);
|
|
42
|
+
this.onDrop(event);
|
|
70
43
|
}));
|
|
71
44
|
}
|
|
45
|
+
onDrop(event) {
|
|
46
|
+
const data = getPaneData();
|
|
47
|
+
if (!data) {
|
|
48
|
+
this._onDidDrop.fire(Object.assign(Object.assign({}, event), { panel: this, getData: () => getPaneData() }));
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
const containerApi = this._params
|
|
52
|
+
.containerApi;
|
|
53
|
+
const panelId = data.paneId;
|
|
54
|
+
const existingPanel = containerApi.getPanel(panelId);
|
|
55
|
+
if (!existingPanel) {
|
|
56
|
+
this._onDidDrop.fire(Object.assign(Object.assign({}, event), { panel: this, getData: () => getPaneData() }));
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
const allPanels = containerApi.getPanels();
|
|
60
|
+
const fromIndex = allPanels.indexOf(existingPanel);
|
|
61
|
+
let toIndex = containerApi.getPanels().indexOf(this);
|
|
62
|
+
if (event.position === Position.Left ||
|
|
63
|
+
event.position === Position.Top) {
|
|
64
|
+
toIndex = Math.max(0, toIndex - 1);
|
|
65
|
+
}
|
|
66
|
+
if (event.position === Position.Right ||
|
|
67
|
+
event.position === Position.Bottom) {
|
|
68
|
+
if (fromIndex > toIndex) {
|
|
69
|
+
toIndex++;
|
|
70
|
+
}
|
|
71
|
+
toIndex = Math.min(allPanels.length - 1, toIndex);
|
|
72
|
+
}
|
|
73
|
+
containerApi.movePanel(fromIndex, toIndex);
|
|
74
|
+
}
|
|
72
75
|
}
|
|
@@ -29,7 +29,9 @@ export declare class Paneview extends CompositeDisposable implements IDisposable
|
|
|
29
29
|
addPane(pane: PaneviewPanel, size?: number | Sizing, index?: number, skipLayout?: boolean): void;
|
|
30
30
|
getViewSize(index: number): number;
|
|
31
31
|
getPanes(): PaneviewPanel[];
|
|
32
|
-
removePane(index: number
|
|
32
|
+
removePane(index: number, options?: {
|
|
33
|
+
skipDispose: boolean;
|
|
34
|
+
}): PaneItem;
|
|
33
35
|
moveView(from: number, to: number): void;
|
|
34
36
|
layout(size: number, orthogonalSize: number): void;
|
|
35
37
|
private setupAnimation;
|
|
@@ -21,7 +21,7 @@ export class Paneview extends CompositeDisposable {
|
|
|
21
21
|
});
|
|
22
22
|
// if we've added views from the descriptor we need to
|
|
23
23
|
// add the panes to our Pane array and setup animation
|
|
24
|
-
this.getPanes().forEach((pane
|
|
24
|
+
this.getPanes().forEach((pane) => {
|
|
25
25
|
const disposable = new CompositeDisposable(pane.onDidChangeExpansionState(() => {
|
|
26
26
|
this.setupAnimation();
|
|
27
27
|
this._onDidChange.fire(undefined);
|
|
@@ -37,7 +37,7 @@ export class Paneview extends CompositeDisposable {
|
|
|
37
37
|
this.paneItems.push(paneItem);
|
|
38
38
|
pane.orthogonalSize = this.splitview.orthogonalSize;
|
|
39
39
|
});
|
|
40
|
-
this.addDisposables(this.splitview.onDidSashEnd(() => {
|
|
40
|
+
this.addDisposables(this._onDidChange, this.splitview.onDidSashEnd(() => {
|
|
41
41
|
this._onDidChange.fire(undefined);
|
|
42
42
|
}), this.splitview.onDidAddView(() => {
|
|
43
43
|
this._onDidChange.fire();
|
|
@@ -89,17 +89,20 @@ export class Paneview extends CompositeDisposable {
|
|
|
89
89
|
getPanes() {
|
|
90
90
|
return this.splitview.getViews();
|
|
91
91
|
}
|
|
92
|
-
removePane(index) {
|
|
92
|
+
removePane(index, options = { skipDispose: false }) {
|
|
93
93
|
const paneItem = this.paneItems.splice(index, 1)[0];
|
|
94
94
|
this.splitview.removeView(index);
|
|
95
|
-
|
|
95
|
+
if (!options.skipDispose) {
|
|
96
|
+
paneItem.disposable.dispose();
|
|
97
|
+
paneItem.pane.dispose();
|
|
98
|
+
}
|
|
96
99
|
return paneItem;
|
|
97
100
|
}
|
|
98
101
|
moveView(from, to) {
|
|
99
102
|
if (from === to) {
|
|
100
103
|
return;
|
|
101
104
|
}
|
|
102
|
-
const view = this.removePane(from);
|
|
105
|
+
const view = this.removePane(from, { skipDispose: true });
|
|
103
106
|
this.skipAnimation = true;
|
|
104
107
|
try {
|
|
105
108
|
this.addPane(view.pane, view.pane.size, to, false);
|
|
@@ -127,15 +130,16 @@ export class Paneview extends CompositeDisposable {
|
|
|
127
130
|
}
|
|
128
131
|
dispose() {
|
|
129
132
|
super.dispose();
|
|
130
|
-
this.splitview.dispose();
|
|
131
133
|
if (this.animationTimer) {
|
|
132
134
|
clearTimeout(this.animationTimer);
|
|
133
135
|
this.animationTimer = undefined;
|
|
134
136
|
}
|
|
135
137
|
this.paneItems.forEach((paneItem) => {
|
|
136
138
|
paneItem.disposable.dispose();
|
|
139
|
+
paneItem.pane.dispose();
|
|
137
140
|
});
|
|
138
141
|
this.paneItems = [];
|
|
142
|
+
this.splitview.dispose();
|
|
139
143
|
this.element.remove();
|
|
140
144
|
}
|
|
141
145
|
}
|
|
@@ -18,9 +18,6 @@ export interface SerializedPaneviewPanel {
|
|
|
18
18
|
params?: {
|
|
19
19
|
[index: string]: any;
|
|
20
20
|
};
|
|
21
|
-
state?: {
|
|
22
|
-
[index: string]: any;
|
|
23
|
-
};
|
|
24
21
|
};
|
|
25
22
|
size: number;
|
|
26
23
|
expanded?: boolean;
|
|
@@ -44,7 +41,7 @@ export declare class PaneFramework extends DraggablePaneviewPanel {
|
|
|
44
41
|
getBodyComponent(): IPaneBodyPart;
|
|
45
42
|
getHeaderComponent(): IPaneHeaderPart;
|
|
46
43
|
}
|
|
47
|
-
export interface
|
|
44
|
+
export interface AddPaneviewComponentOptions {
|
|
48
45
|
id: string;
|
|
49
46
|
component: string;
|
|
50
47
|
headerComponent?: string;
|
|
@@ -67,7 +64,7 @@ export interface IPaneviewComponent extends IDisposable {
|
|
|
67
64
|
readonly onDidRemoveView: Event<PaneviewPanel>;
|
|
68
65
|
readonly onDidDrop: Event<PaneviewDropEvent2>;
|
|
69
66
|
readonly onDidLayoutChange: Event<void>;
|
|
70
|
-
addPanel(options:
|
|
67
|
+
addPanel(options: AddPaneviewComponentOptions): IPaneviewPanel;
|
|
71
68
|
layout(width: number, height: number): void;
|
|
72
69
|
toJSON(): SerializedPaneview;
|
|
73
70
|
fromJSON(serializedPaneview: SerializedPaneview, deferComponentLayout?: boolean): void;
|
|
@@ -82,6 +79,7 @@ export interface IPaneviewComponent extends IDisposable {
|
|
|
82
79
|
export declare class PaneviewComponent extends CompositeDisposable implements IPaneviewComponent {
|
|
83
80
|
private element;
|
|
84
81
|
private _disposable;
|
|
82
|
+
private _viewDisposables;
|
|
85
83
|
private _paneview;
|
|
86
84
|
private readonly _onDidLayoutChange;
|
|
87
85
|
readonly onDidLayoutChange: Event<void>;
|
|
@@ -102,7 +100,7 @@ export declare class PaneviewComponent extends CompositeDisposable implements IP
|
|
|
102
100
|
constructor(element: HTMLElement, options: PaneviewComponentOptions);
|
|
103
101
|
focus(): void;
|
|
104
102
|
updateOptions(options: Partial<PaneviewComponentOptions>): void;
|
|
105
|
-
addPanel(options:
|
|
103
|
+
addPanel(options: AddPaneviewComponentOptions): IPaneviewPanel;
|
|
106
104
|
getPanels(): PaneviewPanel[];
|
|
107
105
|
removePanel(panel: PaneviewPanel): void;
|
|
108
106
|
movePanel(from: number, to: number): void;
|
|
@@ -114,4 +112,7 @@ export declare class PaneviewComponent extends CompositeDisposable implements IP
|
|
|
114
112
|
resizeToFit(): void;
|
|
115
113
|
toJSON(): SerializedPaneview;
|
|
116
114
|
fromJSON(serializedPaneview: SerializedPaneview, deferComponentLayout?: boolean): void;
|
|
115
|
+
private doAddPanel;
|
|
116
|
+
private doRemovePanel;
|
|
117
|
+
dispose(): void;
|
|
117
118
|
}
|