dockview-core 1.8.2 → 1.8.4
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/dist/cjs/api/component.api.d.ts +8 -4
- package/dist/cjs/api/component.api.d.ts.map +1 -1
- package/dist/cjs/api/component.api.js +14 -0
- package/dist/cjs/api/component.api.js.map +1 -1
- package/dist/cjs/dnd/abstractDragHandler.d.ts +2 -2
- package/dist/cjs/dnd/abstractDragHandler.d.ts.map +1 -1
- package/dist/cjs/dnd/abstractDragHandler.js +16 -12
- package/dist/cjs/dnd/abstractDragHandler.js.map +1 -1
- package/dist/cjs/dnd/groupDragHandler.d.ts +4 -3
- package/dist/cjs/dnd/groupDragHandler.d.ts.map +1 -1
- package/dist/cjs/dnd/groupDragHandler.js +5 -4
- package/dist/cjs/dnd/groupDragHandler.js.map +1 -1
- package/dist/cjs/dnd/overlay.d.ts +6 -2
- package/dist/cjs/dnd/overlay.d.ts.map +1 -1
- package/dist/cjs/dnd/overlay.js +54 -23
- package/dist/cjs/dnd/overlay.js.map +1 -1
- package/dist/cjs/dockview/components/tab/tab.d.ts +7 -4
- package/dist/cjs/dockview/components/tab/tab.d.ts.map +1 -1
- package/dist/cjs/dockview/components/tab/tab.js +36 -28
- package/dist/cjs/dockview/components/tab/tab.js.map +1 -1
- package/dist/cjs/dockview/components/titlebar/tabsContainer.d.ts +19 -1
- package/dist/cjs/dockview/components/titlebar/tabsContainer.d.ts.map +1 -1
- package/dist/cjs/dockview/components/titlebar/tabsContainer.js +42 -15
- package/dist/cjs/dockview/components/titlebar/tabsContainer.js.map +1 -1
- package/dist/cjs/dockview/components/titlebar/voidContainer.d.ts +2 -0
- package/dist/cjs/dockview/components/titlebar/voidContainer.d.ts.map +1 -1
- package/dist/cjs/dockview/components/titlebar/voidContainer.js +7 -3
- package/dist/cjs/dockview/components/titlebar/voidContainer.js.map +1 -1
- package/dist/cjs/dockview/dockviewComponent.d.ts +11 -4
- package/dist/cjs/dockview/dockviewComponent.d.ts.map +1 -1
- package/dist/cjs/dockview/dockviewComponent.js +288 -92
- package/dist/cjs/dockview/dockviewComponent.js.map +1 -1
- package/dist/cjs/dockview/dockviewGroupPanel.d.ts +4 -4
- package/dist/cjs/dockview/dockviewGroupPanel.d.ts.map +1 -1
- package/dist/cjs/dockview/dockviewGroupPanel.js.map +1 -1
- package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +11 -4
- package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts.map +1 -1
- package/dist/cjs/dockview/dockviewGroupPanelModel.js +28 -6
- package/dist/cjs/dockview/dockviewGroupPanelModel.js.map +1 -1
- package/dist/cjs/dockview/dockviewPanel.d.ts +1 -1
- package/dist/cjs/dockview/dockviewPanel.d.ts.map +1 -1
- package/dist/cjs/dockview/options.d.ts +9 -5
- package/dist/cjs/dockview/options.d.ts.map +1 -1
- package/dist/cjs/dockview/options.js.map +1 -1
- package/dist/cjs/gridview/baseComponentGridview.d.ts +1 -1
- package/dist/cjs/gridview/baseComponentGridview.d.ts.map +1 -1
- package/dist/cjs/gridview/baseComponentGridview.js.map +1 -1
- package/dist/cjs/gridview/basePanelView.d.ts +4 -4
- package/dist/cjs/gridview/basePanelView.d.ts.map +1 -1
- package/dist/cjs/gridview/basePanelView.js.map +1 -1
- package/dist/cjs/gridview/branchNode.d.ts.map +1 -1
- package/dist/cjs/gridview/branchNode.js +1 -0
- package/dist/cjs/gridview/branchNode.js.map +1 -1
- package/dist/cjs/gridview/gridview.d.ts.map +1 -1
- package/dist/cjs/gridview/gridview.js +8 -0
- package/dist/cjs/gridview/gridview.js.map +1 -1
- package/dist/cjs/gridview/gridviewComponent.d.ts +4 -4
- package/dist/cjs/gridview/gridviewComponent.d.ts.map +1 -1
- package/dist/cjs/gridview/gridviewComponent.js +71 -39
- package/dist/cjs/gridview/gridviewComponent.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lifecycle.d.ts +0 -1
- package/dist/cjs/lifecycle.d.ts.map +1 -1
- package/dist/cjs/lifecycle.js +0 -32
- package/dist/cjs/lifecycle.js.map +1 -1
- package/dist/cjs/panel/types.d.ts +2 -2
- package/dist/cjs/panel/types.d.ts.map +1 -1
- package/dist/cjs/paneview/paneviewComponent.d.ts +5 -6
- package/dist/cjs/paneview/paneviewComponent.d.ts.map +1 -1
- package/dist/cjs/paneview/paneviewComponent.js.map +1 -1
- package/dist/cjs/resizable.d.ts.map +1 -1
- package/dist/cjs/resizable.js +8 -0
- package/dist/cjs/resizable.js.map +1 -1
- package/dist/cjs/splitview/splitview.d.ts.map +1 -1
- package/dist/cjs/splitview/splitview.js +11 -1
- package/dist/cjs/splitview/splitview.js.map +1 -1
- package/dist/cjs/splitview/splitviewComponent.d.ts +4 -4
- package/dist/cjs/splitview/splitviewComponent.d.ts.map +1 -1
- package/dist/cjs/splitview/splitviewComponent.js.map +1 -1
- package/dist/cjs/splitview/splitviewPanel.d.ts +1 -1
- package/dist/dockview-core.amd.js +411 -186
- package/dist/dockview-core.amd.js.map +1 -1
- package/dist/dockview-core.amd.min.js +2 -2
- package/dist/dockview-core.amd.min.js.map +1 -1
- package/dist/dockview-core.amd.min.noStyle.js +2 -2
- package/dist/dockview-core.amd.min.noStyle.js.map +1 -1
- package/dist/dockview-core.amd.noStyle.js +411 -186
- package/dist/dockview-core.amd.noStyle.js.map +1 -1
- package/dist/dockview-core.cjs.js +411 -186
- package/dist/dockview-core.cjs.js.map +1 -1
- package/dist/dockview-core.esm.js +411 -186
- package/dist/dockview-core.esm.js.map +1 -1
- package/dist/dockview-core.esm.min.js +2 -2
- package/dist/dockview-core.esm.min.js.map +1 -1
- package/dist/dockview-core.js +411 -186
- package/dist/dockview-core.js.map +1 -1
- package/dist/dockview-core.min.js +2 -2
- package/dist/dockview-core.min.js.map +1 -1
- package/dist/dockview-core.min.noStyle.js +2 -2
- package/dist/dockview-core.min.noStyle.js.map +1 -1
- package/dist/dockview-core.noStyle.js +411 -186
- package/dist/dockview-core.noStyle.js.map +1 -1
- package/dist/esm/api/component.api.d.ts +8 -4
- package/dist/esm/api/component.api.d.ts.map +1 -1
- package/dist/esm/api/component.api.js +6 -0
- package/dist/esm/api/component.api.js.map +1 -1
- package/dist/esm/dnd/abstractDragHandler.d.ts +2 -2
- package/dist/esm/dnd/abstractDragHandler.d.ts.map +1 -1
- package/dist/esm/dnd/abstractDragHandler.js +16 -12
- package/dist/esm/dnd/abstractDragHandler.js.map +1 -1
- package/dist/esm/dnd/groupDragHandler.d.ts +4 -3
- package/dist/esm/dnd/groupDragHandler.d.ts.map +1 -1
- package/dist/esm/dnd/groupDragHandler.js +5 -4
- package/dist/esm/dnd/groupDragHandler.js.map +1 -1
- package/dist/esm/dnd/overlay.d.ts +6 -2
- package/dist/esm/dnd/overlay.d.ts.map +1 -1
- package/dist/esm/dnd/overlay.js +46 -23
- package/dist/esm/dnd/overlay.js.map +1 -1
- package/dist/esm/dockview/components/tab/tab.d.ts +7 -4
- package/dist/esm/dockview/components/tab/tab.d.ts.map +1 -1
- package/dist/esm/dockview/components/tab/tab.js +32 -24
- package/dist/esm/dockview/components/tab/tab.js.map +1 -1
- package/dist/esm/dockview/components/titlebar/tabsContainer.d.ts +19 -1
- package/dist/esm/dockview/components/titlebar/tabsContainer.d.ts.map +1 -1
- package/dist/esm/dockview/components/titlebar/tabsContainer.js +42 -15
- package/dist/esm/dockview/components/titlebar/tabsContainer.js.map +1 -1
- package/dist/esm/dockview/components/titlebar/voidContainer.d.ts +2 -0
- package/dist/esm/dockview/components/titlebar/voidContainer.d.ts.map +1 -1
- package/dist/esm/dockview/components/titlebar/voidContainer.js +7 -3
- package/dist/esm/dockview/components/titlebar/voidContainer.js.map +1 -1
- package/dist/esm/dockview/dockviewComponent.d.ts +11 -4
- package/dist/esm/dockview/dockviewComponent.d.ts.map +1 -1
- package/dist/esm/dockview/dockviewComponent.js +204 -59
- package/dist/esm/dockview/dockviewComponent.js.map +1 -1
- package/dist/esm/dockview/dockviewGroupPanel.d.ts +4 -4
- package/dist/esm/dockview/dockviewGroupPanel.d.ts.map +1 -1
- package/dist/esm/dockview/dockviewGroupPanel.js.map +1 -1
- package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +11 -4
- package/dist/esm/dockview/dockviewGroupPanelModel.d.ts.map +1 -1
- package/dist/esm/dockview/dockviewGroupPanelModel.js +28 -6
- package/dist/esm/dockview/dockviewGroupPanelModel.js.map +1 -1
- package/dist/esm/dockview/dockviewPanel.d.ts +1 -1
- package/dist/esm/dockview/dockviewPanel.d.ts.map +1 -1
- package/dist/esm/dockview/options.d.ts +9 -5
- package/dist/esm/dockview/options.d.ts.map +1 -1
- package/dist/esm/dockview/options.js.map +1 -1
- package/dist/esm/gridview/baseComponentGridview.d.ts +1 -1
- package/dist/esm/gridview/baseComponentGridview.d.ts.map +1 -1
- package/dist/esm/gridview/baseComponentGridview.js.map +1 -1
- package/dist/esm/gridview/basePanelView.d.ts +4 -4
- package/dist/esm/gridview/basePanelView.d.ts.map +1 -1
- package/dist/esm/gridview/basePanelView.js.map +1 -1
- package/dist/esm/gridview/branchNode.d.ts.map +1 -1
- package/dist/esm/gridview/branchNode.js +1 -0
- package/dist/esm/gridview/branchNode.js.map +1 -1
- package/dist/esm/gridview/gridview.d.ts.map +1 -1
- package/dist/esm/gridview/gridview.js +8 -0
- package/dist/esm/gridview/gridview.js.map +1 -1
- package/dist/esm/gridview/gridviewComponent.d.ts +4 -4
- package/dist/esm/gridview/gridviewComponent.d.ts.map +1 -1
- package/dist/esm/gridview/gridviewComponent.js +56 -35
- package/dist/esm/gridview/gridviewComponent.js.map +1 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lifecycle.d.ts +0 -1
- package/dist/esm/lifecycle.d.ts.map +1 -1
- package/dist/esm/lifecycle.js +0 -3
- package/dist/esm/lifecycle.js.map +1 -1
- package/dist/esm/panel/types.d.ts +2 -2
- package/dist/esm/panel/types.d.ts.map +1 -1
- package/dist/esm/paneview/paneviewComponent.d.ts +5 -6
- package/dist/esm/paneview/paneviewComponent.d.ts.map +1 -1
- package/dist/esm/paneview/paneviewComponent.js.map +1 -1
- package/dist/esm/resizable.d.ts.map +1 -1
- package/dist/esm/resizable.js +8 -0
- package/dist/esm/resizable.js.map +1 -1
- package/dist/esm/splitview/splitview.d.ts.map +1 -1
- package/dist/esm/splitview/splitview.js +11 -1
- package/dist/esm/splitview/splitview.js.map +1 -1
- package/dist/esm/splitview/splitviewComponent.d.ts +4 -4
- package/dist/esm/splitview/splitviewComponent.d.ts.map +1 -1
- package/dist/esm/splitview/splitviewComponent.js.map +1 -1
- package/dist/esm/splitview/splitviewPanel.d.ts +1 -1
- package/package.json +3 -4
|
@@ -84,6 +84,67 @@ var dataTransfer_1 = require("../dnd/dataTransfer");
|
|
|
84
84
|
var overlay_1 = require("../dnd/overlay");
|
|
85
85
|
var dom_1 = require("../dom");
|
|
86
86
|
var dockviewFloatingGroupPanel_1 = require("./dockviewFloatingGroupPanel");
|
|
87
|
+
var DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE = 100;
|
|
88
|
+
function typeValidate3(data, path) {
|
|
89
|
+
if (typeof data.id !== 'string') {
|
|
90
|
+
throw new Error("".concat(path, ".id must be a string"));
|
|
91
|
+
}
|
|
92
|
+
if (typeof data.activeView !== 'string' ||
|
|
93
|
+
typeof data.activeView !== 'undefined') {
|
|
94
|
+
throw new Error("".concat(path, ".activeView must be a string of undefined"));
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
function typeValidate2(data, path) {
|
|
98
|
+
if (typeof data.size !== 'number' && typeof data.size !== 'undefined') {
|
|
99
|
+
throw new Error("".concat(path, ".size must be a number or undefined"));
|
|
100
|
+
}
|
|
101
|
+
if (typeof data.visible !== 'boolean' &&
|
|
102
|
+
typeof data.visible !== 'undefined') {
|
|
103
|
+
throw new Error("".concat(path, ".visible must be a boolean or undefined"));
|
|
104
|
+
}
|
|
105
|
+
if (data.type === 'leaf') {
|
|
106
|
+
if (typeof data.data !== 'object' ||
|
|
107
|
+
data.data === null ||
|
|
108
|
+
Array.isArray(data.data)) {
|
|
109
|
+
throw new Error('object must be a non-null object');
|
|
110
|
+
}
|
|
111
|
+
typeValidate3(data.data, "".concat(path, ".data"));
|
|
112
|
+
}
|
|
113
|
+
else if (data.type === 'branch') {
|
|
114
|
+
if (!Array.isArray(data.data)) {
|
|
115
|
+
throw new Error("".concat(path, ".data must be an array"));
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
throw new Error("".concat(path, ".type must be onew of {'branch', 'leaf'}"));
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
function typeValidate(data) {
|
|
123
|
+
if (typeof data !== 'object' || data === null) {
|
|
124
|
+
throw new Error('object must be a non-null object');
|
|
125
|
+
}
|
|
126
|
+
var grid = data.grid, panels = data.panels, activeGroup = data.activeGroup, floatingGroups = data.floatingGroups;
|
|
127
|
+
if (typeof grid !== 'object' || grid === null) {
|
|
128
|
+
throw new Error("'.grid' must be a non-null object");
|
|
129
|
+
}
|
|
130
|
+
if (typeof grid.height !== 'number') {
|
|
131
|
+
throw new Error("'.grid.height' must be a number");
|
|
132
|
+
}
|
|
133
|
+
if (typeof grid.width !== 'number') {
|
|
134
|
+
throw new Error("'.grid.width' must be a number");
|
|
135
|
+
}
|
|
136
|
+
if (typeof grid.root !== 'object' || grid.root === null) {
|
|
137
|
+
throw new Error("'.grid.root' must be a non-null object");
|
|
138
|
+
}
|
|
139
|
+
if (grid.root.type !== 'branch') {
|
|
140
|
+
throw new Error(".grid.root.type must be of type 'branch'");
|
|
141
|
+
}
|
|
142
|
+
if (grid.orientation !== splitview_1.Orientation.HORIZONTAL &&
|
|
143
|
+
grid.orientation !== splitview_1.Orientation.VERTICAL) {
|
|
144
|
+
throw new Error("'.grid.width' must be one of {".concat(splitview_1.Orientation.HORIZONTAL, ", ").concat(splitview_1.Orientation.VERTICAL, "}"));
|
|
145
|
+
}
|
|
146
|
+
typeValidate2(grid.root, '.grid.root');
|
|
147
|
+
}
|
|
87
148
|
var DockviewComponent = /** @class */ (function (_super) {
|
|
88
149
|
__extends(DockviewComponent, _super);
|
|
89
150
|
function DockviewComponent(options) {
|
|
@@ -96,6 +157,10 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
96
157
|
_this.nextGroupId = (0, math_1.sequentialNumberGenerator)();
|
|
97
158
|
_this._deserializer = new deserializer_1.DefaultDockviewDeserialzier(_this);
|
|
98
159
|
_this.watermark = null;
|
|
160
|
+
_this._onWillDragPanel = new events_1.Emitter();
|
|
161
|
+
_this.onWillDragPanel = _this._onWillDragPanel.event;
|
|
162
|
+
_this._onWillDragGroup = new events_1.Emitter();
|
|
163
|
+
_this.onWillDragGroup = _this._onWillDragGroup.event;
|
|
99
164
|
_this._onDidDrop = new events_1.Emitter();
|
|
100
165
|
_this.onDidDrop = _this._onDidDrop.event;
|
|
101
166
|
_this._onDidRemovePanel = new events_1.Emitter();
|
|
@@ -108,7 +173,7 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
108
173
|
_this.onDidActivePanelChange = _this._onDidActivePanelChange.event;
|
|
109
174
|
_this.floatingGroups = [];
|
|
110
175
|
(0, dom_1.toggleClass)(_this.gridview.element, 'dv-dockview', true);
|
|
111
|
-
_this.addDisposables(_this._onDidDrop, events_1.Event.any(_this.onDidAddGroup, _this.onDidRemoveGroup)(function () {
|
|
176
|
+
_this.addDisposables(_this._onWillDragPanel, _this._onWillDragGroup, _this._onDidActivePanelChange, _this._onDidAddPanel, _this._onDidRemovePanel, _this._onDidLayoutFromJSON, _this._onDidDrop, events_1.Event.any(_this.onDidAddGroup, _this.onDidRemoveGroup)(function () {
|
|
112
177
|
_this.updateWatermark();
|
|
113
178
|
}), events_1.Event.any(_this.onDidAddPanel, _this.onDidRemovePanel, _this.onDidActivePanelChange)(function () {
|
|
114
179
|
_this._bufferOnDidLayoutChange.fire();
|
|
@@ -222,7 +287,7 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
222
287
|
});
|
|
223
288
|
DockviewComponent.prototype.addFloatingGroup = function (item, coord, options) {
|
|
224
289
|
var _this = this;
|
|
225
|
-
var _a, _b;
|
|
290
|
+
var _a, _b, _c, _d, _e, _f;
|
|
226
291
|
var group;
|
|
227
292
|
if (item instanceof dockviewPanel_1.DockviewPanel) {
|
|
228
293
|
group = this.createGroup();
|
|
@@ -250,8 +315,12 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
250
315
|
width: (_b = coord === null || coord === void 0 ? void 0 : coord.width) !== null && _b !== void 0 ? _b : 300,
|
|
251
316
|
left: overlayLeft,
|
|
252
317
|
top: overlayTop,
|
|
253
|
-
minimumInViewportWidth:
|
|
254
|
-
|
|
318
|
+
minimumInViewportWidth: this.options.floatingGroupBounds === 'boundedWithinViewport'
|
|
319
|
+
? undefined
|
|
320
|
+
: (_d = (_c = this.options.floatingGroupBounds) === null || _c === void 0 ? void 0 : _c.minimumWidthWithinViewport) !== null && _d !== void 0 ? _d : DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE,
|
|
321
|
+
minimumInViewportHeight: this.options.floatingGroupBounds === 'boundedWithinViewport'
|
|
322
|
+
? undefined
|
|
323
|
+
: (_f = (_e = this.options.floatingGroupBounds) === null || _e === void 0 ? void 0 : _e.minimumHeightWithinViewport) !== null && _f !== void 0 ? _f : DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE,
|
|
255
324
|
});
|
|
256
325
|
var el = group.element.querySelector('.void-container');
|
|
257
326
|
if (!el) {
|
|
@@ -324,16 +393,52 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
324
393
|
}
|
|
325
394
|
};
|
|
326
395
|
DockviewComponent.prototype.updateOptions = function (options) {
|
|
396
|
+
var e_1, _a;
|
|
397
|
+
var _b, _c;
|
|
327
398
|
var hasOrientationChanged = typeof options.orientation === 'string' &&
|
|
328
399
|
this.gridview.orientation !== options.orientation;
|
|
400
|
+
var hasFloatingGroupOptionsChanged = options.floatingGroupBounds !== undefined &&
|
|
401
|
+
options.floatingGroupBounds !== this.options.floatingGroupBounds;
|
|
329
402
|
this._options = __assign(__assign({}, this.options), options);
|
|
330
403
|
if (hasOrientationChanged) {
|
|
331
404
|
this.gridview.orientation = options.orientation;
|
|
332
405
|
}
|
|
406
|
+
if (hasFloatingGroupOptionsChanged) {
|
|
407
|
+
try {
|
|
408
|
+
for (var _d = __values(this.floatingGroups), _e = _d.next(); !_e.done; _e = _d.next()) {
|
|
409
|
+
var group = _e.value;
|
|
410
|
+
switch (this.options.floatingGroupBounds) {
|
|
411
|
+
case 'boundedWithinViewport':
|
|
412
|
+
group.overlay.minimumInViewportHeight = undefined;
|
|
413
|
+
group.overlay.minimumInViewportWidth = undefined;
|
|
414
|
+
break;
|
|
415
|
+
case undefined:
|
|
416
|
+
group.overlay.minimumInViewportHeight =
|
|
417
|
+
DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE;
|
|
418
|
+
group.overlay.minimumInViewportWidth =
|
|
419
|
+
DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE;
|
|
420
|
+
break;
|
|
421
|
+
default:
|
|
422
|
+
group.overlay.minimumInViewportHeight =
|
|
423
|
+
(_b = this.options.floatingGroupBounds) === null || _b === void 0 ? void 0 : _b.minimumHeightWithinViewport;
|
|
424
|
+
group.overlay.minimumInViewportWidth =
|
|
425
|
+
(_c = this.options.floatingGroupBounds) === null || _c === void 0 ? void 0 : _c.minimumWidthWithinViewport;
|
|
426
|
+
}
|
|
427
|
+
group.overlay.setBounds({});
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
431
|
+
finally {
|
|
432
|
+
try {
|
|
433
|
+
if (_e && !_e.done && (_a = _d.return)) _a.call(_d);
|
|
434
|
+
}
|
|
435
|
+
finally { if (e_1) throw e_1.error; }
|
|
436
|
+
}
|
|
437
|
+
}
|
|
333
438
|
this.layout(this.gridview.width, this.gridview.height, true);
|
|
334
439
|
};
|
|
335
440
|
DockviewComponent.prototype.layout = function (width, height, forceResize) {
|
|
336
|
-
var
|
|
441
|
+
var e_2, _a;
|
|
337
442
|
_super.prototype.layout.call(this, width, height, forceResize);
|
|
338
443
|
if (this.floatingGroups) {
|
|
339
444
|
try {
|
|
@@ -343,12 +448,12 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
343
448
|
floating.overlay.setBounds();
|
|
344
449
|
}
|
|
345
450
|
}
|
|
346
|
-
catch (
|
|
451
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
347
452
|
finally {
|
|
348
453
|
try {
|
|
349
454
|
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
350
455
|
}
|
|
351
|
-
finally { if (
|
|
456
|
+
finally { if (e_2) throw e_2.error; }
|
|
352
457
|
}
|
|
353
458
|
}
|
|
354
459
|
};
|
|
@@ -433,101 +538,194 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
433
538
|
return result;
|
|
434
539
|
};
|
|
435
540
|
DockviewComponent.prototype.fromJSON = function (data) {
|
|
436
|
-
var
|
|
541
|
+
var e_3, _a, e_4, _b, e_5, _c, e_6, _d, e_7, _e, e_8, _f;
|
|
437
542
|
var _this = this;
|
|
438
|
-
var
|
|
543
|
+
var _g;
|
|
439
544
|
this.clear();
|
|
545
|
+
if (typeof data !== 'object' || data === null) {
|
|
546
|
+
throw new Error('serialized layout must be a non-null object');
|
|
547
|
+
}
|
|
440
548
|
var grid = data.grid, panels = data.panels, activeGroup = data.activeGroup;
|
|
441
549
|
if (grid.root.type !== 'branch' || !Array.isArray(grid.root.data)) {
|
|
442
550
|
throw new Error('root must be of type branch');
|
|
443
551
|
}
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
var
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
id
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
552
|
+
try {
|
|
553
|
+
// take note of the existing dimensions
|
|
554
|
+
var width = this.width;
|
|
555
|
+
var height = this.height;
|
|
556
|
+
var createGroupFromSerializedState_1 = function (data) {
|
|
557
|
+
var e_9, _a;
|
|
558
|
+
var id = data.id, locked = data.locked, hideHeader = data.hideHeader, views = data.views, activeView = data.activeView;
|
|
559
|
+
if (typeof id !== 'string') {
|
|
560
|
+
throw new Error('group id must be of type string');
|
|
561
|
+
}
|
|
562
|
+
var group = _this.createGroup({
|
|
563
|
+
id: id,
|
|
564
|
+
locked: !!locked,
|
|
565
|
+
hideHeader: !!hideHeader,
|
|
566
|
+
});
|
|
567
|
+
var createdPanels = [];
|
|
568
|
+
try {
|
|
569
|
+
for (var views_1 = __values(views), views_1_1 = views_1.next(); !views_1_1.done; views_1_1 = views_1.next()) {
|
|
570
|
+
var child = views_1_1.value;
|
|
571
|
+
/**
|
|
572
|
+
* Run the deserializer step seperately since this may fail to due corrupted external state.
|
|
573
|
+
* In running this section first we avoid firing lots of 'add' events in the event of a failure
|
|
574
|
+
* due to a corruption of input data.
|
|
575
|
+
*/
|
|
576
|
+
var panel = _this._deserializer.fromJSON(panels[child], group);
|
|
577
|
+
createdPanels.push(panel);
|
|
578
|
+
}
|
|
579
|
+
}
|
|
580
|
+
catch (e_9_1) { e_9 = { error: e_9_1 }; }
|
|
581
|
+
finally {
|
|
582
|
+
try {
|
|
583
|
+
if (views_1_1 && !views_1_1.done && (_a = views_1.return)) _a.call(views_1);
|
|
584
|
+
}
|
|
585
|
+
finally { if (e_9) throw e_9.error; }
|
|
586
|
+
}
|
|
587
|
+
_this._onDidAddGroup.fire(group);
|
|
588
|
+
for (var i = 0; i < views.length; i++) {
|
|
589
|
+
var panel = createdPanels[i];
|
|
590
|
+
var isActive = typeof activeView === 'string' &&
|
|
591
|
+
activeView === panel.id;
|
|
461
592
|
group.model.openPanel(panel, {
|
|
462
593
|
skipSetPanelActive: !isActive,
|
|
463
594
|
skipSetGroupActive: true,
|
|
464
595
|
});
|
|
465
596
|
}
|
|
597
|
+
if (!group.activePanel && group.panels.length > 0) {
|
|
598
|
+
group.model.openPanel(group.panels[group.panels.length - 1], {
|
|
599
|
+
skipSetGroupActive: true,
|
|
600
|
+
});
|
|
601
|
+
}
|
|
602
|
+
return group;
|
|
603
|
+
};
|
|
604
|
+
this.gridview.deserialize(grid, {
|
|
605
|
+
fromJSON: function (node) {
|
|
606
|
+
return createGroupFromSerializedState_1(node.data);
|
|
607
|
+
},
|
|
608
|
+
});
|
|
609
|
+
this.layout(width, height, true);
|
|
610
|
+
var serializedFloatingGroups = (_g = data.floatingGroups) !== null && _g !== void 0 ? _g : [];
|
|
611
|
+
try {
|
|
612
|
+
for (var serializedFloatingGroups_1 = __values(serializedFloatingGroups), serializedFloatingGroups_1_1 = serializedFloatingGroups_1.next(); !serializedFloatingGroups_1_1.done; serializedFloatingGroups_1_1 = serializedFloatingGroups_1.next()) {
|
|
613
|
+
var serializedFloatingGroup = serializedFloatingGroups_1_1.value;
|
|
614
|
+
var data_1 = serializedFloatingGroup.data, position = serializedFloatingGroup.position;
|
|
615
|
+
var group = createGroupFromSerializedState_1(data_1);
|
|
616
|
+
this.addFloatingGroup(group, {
|
|
617
|
+
x: position.left,
|
|
618
|
+
y: position.top,
|
|
619
|
+
height: position.height,
|
|
620
|
+
width: position.width,
|
|
621
|
+
}, { skipRemoveGroup: true, inDragMode: false });
|
|
622
|
+
}
|
|
623
|
+
}
|
|
624
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
625
|
+
finally {
|
|
626
|
+
try {
|
|
627
|
+
if (serializedFloatingGroups_1_1 && !serializedFloatingGroups_1_1.done && (_a = serializedFloatingGroups_1.return)) _a.call(serializedFloatingGroups_1);
|
|
628
|
+
}
|
|
629
|
+
finally { if (e_3) throw e_3.error; }
|
|
630
|
+
}
|
|
631
|
+
try {
|
|
632
|
+
for (var _h = __values(this.floatingGroups), _j = _h.next(); !_j.done; _j = _h.next()) {
|
|
633
|
+
var floatingGroup = _j.value;
|
|
634
|
+
floatingGroup.overlay.setBounds();
|
|
635
|
+
}
|
|
466
636
|
}
|
|
467
637
|
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
468
638
|
finally {
|
|
469
639
|
try {
|
|
470
|
-
if (
|
|
640
|
+
if (_j && !_j.done && (_b = _h.return)) _b.call(_h);
|
|
471
641
|
}
|
|
472
642
|
finally { if (e_4) throw e_4.error; }
|
|
473
643
|
}
|
|
474
|
-
if (
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
644
|
+
if (typeof activeGroup === 'string') {
|
|
645
|
+
var panel = this.getPanel(activeGroup);
|
|
646
|
+
if (panel) {
|
|
647
|
+
this.doSetGroupActive(panel);
|
|
648
|
+
}
|
|
478
649
|
}
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
this.gridview.deserialize(grid, {
|
|
482
|
-
fromJSON: function (node) {
|
|
483
|
-
return createGroupFromSerializedState(node.data);
|
|
484
|
-
},
|
|
485
|
-
});
|
|
486
|
-
this.layout(width, height, true);
|
|
487
|
-
var serializedFloatingGroups = (_c = data.floatingGroups) !== null && _c !== void 0 ? _c : [];
|
|
488
|
-
try {
|
|
489
|
-
for (var serializedFloatingGroups_1 = __values(serializedFloatingGroups), serializedFloatingGroups_1_1 = serializedFloatingGroups_1.next(); !serializedFloatingGroups_1_1.done; serializedFloatingGroups_1_1 = serializedFloatingGroups_1.next()) {
|
|
490
|
-
var serializedFloatingGroup = serializedFloatingGroups_1_1.value;
|
|
491
|
-
var data_1 = serializedFloatingGroup.data, position = serializedFloatingGroup.position;
|
|
492
|
-
var group = createGroupFromSerializedState(data_1);
|
|
493
|
-
this.addFloatingGroup(group, {
|
|
494
|
-
x: position.left,
|
|
495
|
-
y: position.top,
|
|
496
|
-
height: position.height,
|
|
497
|
-
width: position.width,
|
|
498
|
-
}, { skipRemoveGroup: true, inDragMode: false });
|
|
499
|
-
}
|
|
500
|
-
}
|
|
501
|
-
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
502
|
-
finally {
|
|
650
|
+
}
|
|
651
|
+
catch (err) {
|
|
503
652
|
try {
|
|
504
|
-
|
|
653
|
+
/**
|
|
654
|
+
* Takes all the successfully created groups and remove all of their panels.
|
|
655
|
+
*/
|
|
656
|
+
for (var _k = __values(this.groups), _l = _k.next(); !_l.done; _l = _k.next()) {
|
|
657
|
+
var group = _l.value;
|
|
658
|
+
try {
|
|
659
|
+
for (var _m = (e_6 = void 0, __values(group.panels)), _o = _m.next(); !_o.done; _o = _m.next()) {
|
|
660
|
+
var panel = _o.value;
|
|
661
|
+
this.removePanel(panel, {
|
|
662
|
+
removeEmptyGroup: false,
|
|
663
|
+
skipDispose: false,
|
|
664
|
+
});
|
|
665
|
+
}
|
|
666
|
+
}
|
|
667
|
+
catch (e_6_1) { e_6 = { error: e_6_1 }; }
|
|
668
|
+
finally {
|
|
669
|
+
try {
|
|
670
|
+
if (_o && !_o.done && (_d = _m.return)) _d.call(_m);
|
|
671
|
+
}
|
|
672
|
+
finally { if (e_6) throw e_6.error; }
|
|
673
|
+
}
|
|
674
|
+
}
|
|
505
675
|
}
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
676
|
+
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
677
|
+
finally {
|
|
678
|
+
try {
|
|
679
|
+
if (_l && !_l.done && (_c = _k.return)) _c.call(_k);
|
|
680
|
+
}
|
|
681
|
+
finally { if (e_5) throw e_5.error; }
|
|
512
682
|
}
|
|
513
|
-
}
|
|
514
|
-
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
515
|
-
finally {
|
|
516
683
|
try {
|
|
517
|
-
|
|
684
|
+
/**
|
|
685
|
+
* To remove a group we cannot call this.removeGroup(...) since this makes assumptions about
|
|
686
|
+
* the underlying HTMLElement existing in the Gridview.
|
|
687
|
+
*/
|
|
688
|
+
for (var _p = __values(this.groups), _q = _p.next(); !_q.done; _q = _p.next()) {
|
|
689
|
+
var group = _q.value;
|
|
690
|
+
group.dispose();
|
|
691
|
+
this._groups.delete(group.id);
|
|
692
|
+
this._onDidRemoveGroup.fire(group);
|
|
693
|
+
}
|
|
518
694
|
}
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
695
|
+
catch (e_7_1) { e_7 = { error: e_7_1 }; }
|
|
696
|
+
finally {
|
|
697
|
+
try {
|
|
698
|
+
if (_q && !_q.done && (_e = _p.return)) _e.call(_p);
|
|
699
|
+
}
|
|
700
|
+
finally { if (e_7) throw e_7.error; }
|
|
701
|
+
}
|
|
702
|
+
try {
|
|
703
|
+
// iterate over a reassigned array since original array will be modified
|
|
704
|
+
for (var _r = __values(__spreadArray([], __read(this.floatingGroups), false)), _s = _r.next(); !_s.done; _s = _r.next()) {
|
|
705
|
+
var floatingGroup = _s.value;
|
|
706
|
+
floatingGroup.dispose();
|
|
707
|
+
}
|
|
525
708
|
}
|
|
709
|
+
catch (e_8_1) { e_8 = { error: e_8_1 }; }
|
|
710
|
+
finally {
|
|
711
|
+
try {
|
|
712
|
+
if (_s && !_s.done && (_f = _r.return)) _f.call(_r);
|
|
713
|
+
}
|
|
714
|
+
finally { if (e_8) throw e_8.error; }
|
|
715
|
+
}
|
|
716
|
+
// fires clean-up events and clears the underlying HTML gridview.
|
|
717
|
+
this.clear();
|
|
718
|
+
/**
|
|
719
|
+
* even though we have cleaned-up we still want to inform the caller of their error
|
|
720
|
+
* and we'll do this through re-throwing the original error since afterall you would
|
|
721
|
+
* expect trying to load a corrupted layout to result in an error and not silently fail...
|
|
722
|
+
*/
|
|
723
|
+
throw err;
|
|
526
724
|
}
|
|
527
725
|
this._onDidLayoutFromJSON.fire();
|
|
528
726
|
};
|
|
529
727
|
DockviewComponent.prototype.clear = function () {
|
|
530
|
-
var
|
|
728
|
+
var e_10, _a;
|
|
531
729
|
var groups = Array.from(this._groups.values()).map(function (_) { return _.value; });
|
|
532
730
|
var hasActiveGroup = !!this.activeGroup;
|
|
533
731
|
var hasActivePanel = !!this.activePanel;
|
|
@@ -538,12 +736,12 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
538
736
|
this.removeGroup(group, { skipActive: true });
|
|
539
737
|
}
|
|
540
738
|
}
|
|
541
|
-
catch (
|
|
739
|
+
catch (e_10_1) { e_10 = { error: e_10_1 }; }
|
|
542
740
|
finally {
|
|
543
741
|
try {
|
|
544
742
|
if (groups_1_1 && !groups_1_1.done && (_a = groups_1.return)) _a.call(groups_1);
|
|
545
743
|
}
|
|
546
|
-
finally { if (
|
|
744
|
+
finally { if (e_10) throw e_10.error; }
|
|
547
745
|
}
|
|
548
746
|
if (hasActiveGroup) {
|
|
549
747
|
this.doSetGroupActive(undefined);
|
|
@@ -554,7 +752,7 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
554
752
|
this.gridview.clear();
|
|
555
753
|
};
|
|
556
754
|
DockviewComponent.prototype.closeAllGroups = function () {
|
|
557
|
-
var
|
|
755
|
+
var e_11, _a;
|
|
558
756
|
try {
|
|
559
757
|
for (var _b = __values(this._groups.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
560
758
|
var entry = _c.value;
|
|
@@ -562,12 +760,12 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
562
760
|
group.value.model.closeAllPanels();
|
|
563
761
|
}
|
|
564
762
|
}
|
|
565
|
-
catch (
|
|
763
|
+
catch (e_11_1) { e_11 = { error: e_11_1 }; }
|
|
566
764
|
finally {
|
|
567
765
|
try {
|
|
568
766
|
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
569
767
|
}
|
|
570
|
-
finally { if (
|
|
768
|
+
finally { if (e_11) throw e_11.error; }
|
|
571
769
|
}
|
|
572
770
|
};
|
|
573
771
|
DockviewComponent.prototype.addPanel = function (options) {
|
|
@@ -743,7 +941,7 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
743
941
|
}
|
|
744
942
|
};
|
|
745
943
|
DockviewComponent.prototype.removeGroup = function (group, options) {
|
|
746
|
-
var
|
|
944
|
+
var e_12, _a;
|
|
747
945
|
var _b;
|
|
748
946
|
var panels = __spreadArray([], __read(group.panels), false); // reassign since group panels will mutate
|
|
749
947
|
try {
|
|
@@ -755,12 +953,12 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
755
953
|
});
|
|
756
954
|
}
|
|
757
955
|
}
|
|
758
|
-
catch (
|
|
956
|
+
catch (e_12_1) { e_12 = { error: e_12_1 }; }
|
|
759
957
|
finally {
|
|
760
958
|
try {
|
|
761
959
|
if (panels_1_1 && !panels_1_1.done && (_a = panels_1.return)) _a.call(panels_1);
|
|
762
960
|
}
|
|
763
|
-
finally { if (
|
|
961
|
+
finally { if (e_12) throw e_12.error; }
|
|
764
962
|
}
|
|
765
963
|
this.doRemoveGroup(group, options);
|
|
766
964
|
};
|
|
@@ -770,6 +968,7 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
770
968
|
if (!(options === null || options === void 0 ? void 0 : options.skipDispose)) {
|
|
771
969
|
floatingGroup.group.dispose();
|
|
772
970
|
this._groups.delete(group.id);
|
|
971
|
+
// TODO: fire group removed event?
|
|
773
972
|
}
|
|
774
973
|
floatingGroup.dispose();
|
|
775
974
|
return floatingGroup.group;
|
|
@@ -839,7 +1038,7 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
839
1038
|
}
|
|
840
1039
|
};
|
|
841
1040
|
DockviewComponent.prototype.moveGroup = function (sourceGroup, referenceGroup, target) {
|
|
842
|
-
var
|
|
1041
|
+
var e_13, _a;
|
|
843
1042
|
if (sourceGroup) {
|
|
844
1043
|
if (!target || target === 'center') {
|
|
845
1044
|
var activePanel = sourceGroup.activePanel;
|
|
@@ -857,12 +1056,12 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
857
1056
|
});
|
|
858
1057
|
}
|
|
859
1058
|
}
|
|
860
|
-
catch (
|
|
1059
|
+
catch (e_13_1) { e_13 = { error: e_13_1 }; }
|
|
861
1060
|
finally {
|
|
862
1061
|
try {
|
|
863
1062
|
if (panels_2_1 && !panels_2_1.done && (_a = panels_2.return)) _a.call(panels_2);
|
|
864
1063
|
}
|
|
865
|
-
finally { if (
|
|
1064
|
+
finally { if (e_13) throw e_13.error; }
|
|
866
1065
|
}
|
|
867
1066
|
}
|
|
868
1067
|
else {
|
|
@@ -906,7 +1105,11 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
906
1105
|
var view = new dockviewGroupPanel_1.DockviewGroupPanel(this, id, options);
|
|
907
1106
|
view.init({ params: {}, accessor: null }); // required to initialized .part and allow for correct disposal of group
|
|
908
1107
|
if (!this._groups.has(view.id)) {
|
|
909
|
-
var disposable = new lifecycle_1.CompositeDisposable(view.model.
|
|
1108
|
+
var disposable = new lifecycle_1.CompositeDisposable(view.model.onTabDragStart(function (event) {
|
|
1109
|
+
_this._onWillDragPanel.fire(event);
|
|
1110
|
+
}), view.model.onGroupDragStart(function (event) {
|
|
1111
|
+
_this._onWillDragGroup.fire(event);
|
|
1112
|
+
}), view.model.onMove(function (event) {
|
|
910
1113
|
var groupId = event.groupId, itemId = event.itemId, target = event.target, index = event.index;
|
|
911
1114
|
_this.moveGroupOrPanel(view, groupId, itemId, target, index);
|
|
912
1115
|
}), view.model.onDidDrop(function (event) {
|
|
@@ -948,13 +1151,6 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
948
1151
|
return group.value.model.containsPanel(panel);
|
|
949
1152
|
})) === null || _a === void 0 ? void 0 : _a.value;
|
|
950
1153
|
};
|
|
951
|
-
DockviewComponent.prototype.dispose = function () {
|
|
952
|
-
this._onDidActivePanelChange.dispose();
|
|
953
|
-
this._onDidAddPanel.dispose();
|
|
954
|
-
this._onDidRemovePanel.dispose();
|
|
955
|
-
this._onDidLayoutFromJSON.dispose();
|
|
956
|
-
_super.prototype.dispose.call(this);
|
|
957
|
-
};
|
|
958
1154
|
return DockviewComponent;
|
|
959
1155
|
}(baseComponentGridview_1.BaseGrid));
|
|
960
1156
|
exports.DockviewComponent = DockviewComponent;
|