dockview-core 4.4.0 → 4.5.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/dist/cjs/api/dockviewGroupPanelApi.d.ts +4 -0
- package/dist/cjs/api/dockviewGroupPanelApi.js +4 -3
- package/dist/cjs/api/dockviewPanelApi.js +1 -0
- package/dist/cjs/dockview/components/tab/tab.d.ts +1 -0
- package/dist/cjs/dockview/components/tab/tab.js +4 -1
- package/dist/cjs/dockview/components/titlebar/tabs.d.ts +1 -0
- package/dist/cjs/dockview/components/titlebar/tabs.js +16 -0
- package/dist/cjs/dockview/components/titlebar/tabsContainer.d.ts +2 -0
- package/dist/cjs/dockview/components/titlebar/tabsContainer.js +4 -0
- package/dist/cjs/dockview/components/titlebar/voidContainer.d.ts +1 -0
- package/dist/cjs/dockview/components/titlebar/voidContainer.js +4 -1
- package/dist/cjs/dockview/dockviewComponent.d.ts +3 -0
- package/dist/cjs/dockview/dockviewComponent.js +142 -37
- package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +10 -8
- package/dist/cjs/dockview/dockviewGroupPanelModel.js +3 -0
- package/dist/dockview-core.amd.js +131 -15
- 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 +131 -15
- package/dist/dockview-core.amd.noStyle.js.map +1 -1
- package/dist/dockview-core.cjs.js +131 -15
- package/dist/dockview-core.cjs.js.map +1 -1
- package/dist/dockview-core.esm.js +131 -15
- 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 +131 -15
- 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 +131 -15
- package/dist/dockview-core.noStyle.js.map +1 -1
- package/dist/esm/api/dockviewGroupPanelApi.d.ts +4 -0
- package/dist/esm/api/dockviewGroupPanelApi.js +4 -3
- package/dist/esm/api/dockviewPanelApi.js +1 -0
- package/dist/esm/dockview/components/tab/tab.d.ts +1 -0
- package/dist/esm/dockview/components/tab/tab.js +4 -1
- package/dist/esm/dockview/components/titlebar/tabs.d.ts +1 -0
- package/dist/esm/dockview/components/titlebar/tabs.js +5 -0
- package/dist/esm/dockview/components/titlebar/tabsContainer.d.ts +2 -0
- package/dist/esm/dockview/components/titlebar/tabsContainer.js +4 -0
- package/dist/esm/dockview/components/titlebar/voidContainer.d.ts +1 -0
- package/dist/esm/dockview/components/titlebar/voidContainer.js +4 -1
- package/dist/esm/dockview/dockviewComponent.d.ts +3 -0
- package/dist/esm/dockview/dockviewComponent.js +105 -9
- package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +10 -8
- package/dist/esm/dockview/dockviewGroupPanelModel.js +3 -0
- package/package.json +1 -1
|
@@ -11,6 +11,10 @@ export interface DockviewGroupMoveParams {
|
|
|
11
11
|
* The index to place the panel within a group, only applicable if the placement is within an existing group
|
|
12
12
|
*/
|
|
13
13
|
index?: number;
|
|
14
|
+
/**
|
|
15
|
+
* Whether to skip setting the group as active after moving
|
|
16
|
+
*/
|
|
17
|
+
skipSetActive?: boolean;
|
|
14
18
|
}
|
|
15
19
|
export interface DockviewGroupPanelApi extends GridviewPanelApi {
|
|
16
20
|
readonly onDidLocationChange: Event<DockviewGroupPanelFloatingChangeEvent>;
|
|
@@ -54,23 +54,24 @@ var DockviewGroupPanelApiImpl = /** @class */ (function (_super) {
|
|
|
54
54
|
: window;
|
|
55
55
|
};
|
|
56
56
|
DockviewGroupPanelApiImpl.prototype.moveTo = function (options) {
|
|
57
|
-
var _a, _b, _c;
|
|
57
|
+
var _a, _b, _c, _d;
|
|
58
58
|
if (!this._group) {
|
|
59
59
|
throw new Error(NOT_INITIALIZED_MESSAGE);
|
|
60
60
|
}
|
|
61
61
|
var group = (_a = options.group) !== null && _a !== void 0 ? _a : this.accessor.addGroup({
|
|
62
62
|
direction: (0, droptarget_1.positionToDirection)((_b = options.position) !== null && _b !== void 0 ? _b : 'right'),
|
|
63
|
-
skipSetActive:
|
|
63
|
+
skipSetActive: (_c = options.skipSetActive) !== null && _c !== void 0 ? _c : false,
|
|
64
64
|
});
|
|
65
65
|
this.accessor.moveGroupOrPanel({
|
|
66
66
|
from: { groupId: this._group.id },
|
|
67
67
|
to: {
|
|
68
68
|
group: group,
|
|
69
69
|
position: options.group
|
|
70
|
-
? (
|
|
70
|
+
? (_d = options.position) !== null && _d !== void 0 ? _d : 'center'
|
|
71
71
|
: 'center',
|
|
72
72
|
index: options.index,
|
|
73
73
|
},
|
|
74
|
+
skipSetActive: options.skipSetActive,
|
|
74
75
|
});
|
|
75
76
|
};
|
|
76
77
|
DockviewGroupPanelApiImpl.prototype.maximize = function () {
|
|
@@ -23,5 +23,6 @@ export declare class Tab extends CompositeDisposable {
|
|
|
23
23
|
constructor(panel: IDockviewPanel, accessor: DockviewComponent, group: DockviewGroupPanel);
|
|
24
24
|
setActive(isActive: boolean): void;
|
|
25
25
|
setContent(part: ITabRenderer): void;
|
|
26
|
+
updateDragAndDropState(): void;
|
|
26
27
|
dispose(): void;
|
|
27
28
|
}
|
|
@@ -61,7 +61,7 @@ var Tab = /** @class */ (function (_super) {
|
|
|
61
61
|
_this._element = document.createElement('div');
|
|
62
62
|
_this._element.className = 'dv-tab';
|
|
63
63
|
_this._element.tabIndex = 0;
|
|
64
|
-
_this._element.draggable =
|
|
64
|
+
_this._element.draggable = !_this.accessor.options.disableDnd;
|
|
65
65
|
(0, dom_1.toggleClass)(_this.element, 'dv-inactive-tab', true);
|
|
66
66
|
var dragHandler = new TabDragHandler(_this._element, _this.accessor, _this.group, _this.panel);
|
|
67
67
|
_this.dropTarget = new droptarget_1.Droptarget(_this._element, {
|
|
@@ -119,6 +119,9 @@ var Tab = /** @class */ (function (_super) {
|
|
|
119
119
|
this.content = part;
|
|
120
120
|
this._element.appendChild(this.content.element);
|
|
121
121
|
};
|
|
122
|
+
Tab.prototype.updateDragAndDropState = function () {
|
|
123
|
+
this._element.draggable = !this.accessor.options.disableDnd;
|
|
124
|
+
};
|
|
122
125
|
Tab.prototype.dispose = function () {
|
|
123
126
|
_super.prototype.dispose.call(this);
|
|
124
127
|
};
|
|
@@ -289,6 +289,22 @@ var Tabs = /** @class */ (function (_super) {
|
|
|
289
289
|
.map(function (x) { return x.value.panel.id; });
|
|
290
290
|
this._onOverflowTabsChange.fire({ tabs: tabs, reset: options.reset });
|
|
291
291
|
};
|
|
292
|
+
Tabs.prototype.updateDragAndDropState = function () {
|
|
293
|
+
var e_3, _a;
|
|
294
|
+
try {
|
|
295
|
+
for (var _b = __values(this._tabs), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
296
|
+
var tab = _c.value;
|
|
297
|
+
tab.value.updateDragAndDropState();
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
301
|
+
finally {
|
|
302
|
+
try {
|
|
303
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
304
|
+
}
|
|
305
|
+
finally { if (e_3) throw e_3.error; }
|
|
306
|
+
}
|
|
307
|
+
};
|
|
292
308
|
return Tabs;
|
|
293
309
|
}(lifecycle_1.CompositeDisposable));
|
|
294
310
|
exports.Tabs = Tabs;
|
|
@@ -38,6 +38,7 @@ export interface ITabsContainer extends IDisposable {
|
|
|
38
38
|
setPrefixActionsElement(element: HTMLElement | undefined): void;
|
|
39
39
|
show(): void;
|
|
40
40
|
hide(): void;
|
|
41
|
+
updateDragAndDropState(): void;
|
|
41
42
|
}
|
|
42
43
|
export declare class TabsContainer extends CompositeDisposable implements ITabsContainer {
|
|
43
44
|
private readonly accessor;
|
|
@@ -82,4 +83,5 @@ export declare class TabsContainer extends CompositeDisposable implements ITabsC
|
|
|
82
83
|
closePanel(panel: IDockviewPanel): void;
|
|
83
84
|
private updateClassnames;
|
|
84
85
|
private toggleDropdown;
|
|
86
|
+
updateDragAndDropState(): void;
|
|
85
87
|
}
|
|
@@ -297,6 +297,10 @@ var TabsContainer = /** @class */ (function (_super) {
|
|
|
297
297
|
});
|
|
298
298
|
}));
|
|
299
299
|
};
|
|
300
|
+
TabsContainer.prototype.updateDragAndDropState = function () {
|
|
301
|
+
this.tabs.updateDragAndDropState();
|
|
302
|
+
this.voidContainer.updateDragAndDropState();
|
|
303
|
+
};
|
|
300
304
|
return TabsContainer;
|
|
301
305
|
}(lifecycle_1.CompositeDisposable));
|
|
302
306
|
exports.TabsContainer = TabsContainer;
|
|
@@ -33,7 +33,7 @@ var VoidContainer = /** @class */ (function (_super) {
|
|
|
33
33
|
_this.onDragStart = _this._onDragStart.event;
|
|
34
34
|
_this._element = document.createElement('div');
|
|
35
35
|
_this._element.className = 'dv-void-container';
|
|
36
|
-
_this._element.draggable =
|
|
36
|
+
_this._element.draggable = !_this.accessor.options.disableDnd;
|
|
37
37
|
_this.addDisposables(_this._onDrop, _this._onDragStart, (0, events_1.addDisposableListener)(_this._element, 'pointerdown', function () {
|
|
38
38
|
_this.accessor.doSetGroupActive(_this.group);
|
|
39
39
|
}));
|
|
@@ -64,6 +64,9 @@ var VoidContainer = /** @class */ (function (_super) {
|
|
|
64
64
|
enumerable: false,
|
|
65
65
|
configurable: true
|
|
66
66
|
});
|
|
67
|
+
VoidContainer.prototype.updateDragAndDropState = function () {
|
|
68
|
+
this._element.draggable = !this.accessor.options.disableDnd;
|
|
69
|
+
};
|
|
67
70
|
return VoidContainer;
|
|
68
71
|
}(lifecycle_1.CompositeDisposable));
|
|
69
72
|
exports.VoidContainer = VoidContainer;
|
|
@@ -80,6 +80,7 @@ type MoveGroupOptions = {
|
|
|
80
80
|
group: DockviewGroupPanel;
|
|
81
81
|
position: Position;
|
|
82
82
|
};
|
|
83
|
+
skipSetActive?: boolean;
|
|
83
84
|
};
|
|
84
85
|
type MoveGroupOrPanelOptions = {
|
|
85
86
|
from: {
|
|
@@ -91,6 +92,7 @@ type MoveGroupOrPanelOptions = {
|
|
|
91
92
|
position: Position;
|
|
92
93
|
index?: number;
|
|
93
94
|
};
|
|
95
|
+
skipSetActive?: boolean;
|
|
94
96
|
};
|
|
95
97
|
export interface FloatingGroupOptions {
|
|
96
98
|
x?: number;
|
|
@@ -239,6 +241,7 @@ export declare class DockviewComponent extends BaseGrid<DockviewGroupPanel> impl
|
|
|
239
241
|
private orthogonalize;
|
|
240
242
|
updateOptions(options: Partial<DockviewComponentOptions>): void;
|
|
241
243
|
layout(width: number, height: number, forceResize?: boolean | undefined): void;
|
|
244
|
+
private updateDragAndDropState;
|
|
242
245
|
focus(): void;
|
|
243
246
|
getGroupPanel(id: string): IDockviewPanel | undefined;
|
|
244
247
|
setActivePanel(panel: IDockviewPanel): void;
|
|
@@ -875,7 +875,12 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
875
875
|
}
|
|
876
876
|
}
|
|
877
877
|
this.updateDropTargetModel(options);
|
|
878
|
+
var oldDisableDnd = this.options.disableDnd;
|
|
878
879
|
this._options = __assign(__assign({}, this.options), options);
|
|
880
|
+
var newDisableDnd = this.options.disableDnd;
|
|
881
|
+
if (oldDisableDnd !== newDisableDnd) {
|
|
882
|
+
this.updateDragAndDropState();
|
|
883
|
+
}
|
|
879
884
|
if ('theme' in options) {
|
|
880
885
|
this.updateTheme();
|
|
881
886
|
}
|
|
@@ -901,6 +906,23 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
901
906
|
}
|
|
902
907
|
}
|
|
903
908
|
};
|
|
909
|
+
DockviewComponent.prototype.updateDragAndDropState = function () {
|
|
910
|
+
var e_5, _a;
|
|
911
|
+
try {
|
|
912
|
+
// Update draggable state for all tabs and void containers
|
|
913
|
+
for (var _b = __values(this.groups), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
914
|
+
var group = _c.value;
|
|
915
|
+
group.model.updateDragAndDropState();
|
|
916
|
+
}
|
|
917
|
+
}
|
|
918
|
+
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
919
|
+
finally {
|
|
920
|
+
try {
|
|
921
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
922
|
+
}
|
|
923
|
+
finally { if (e_5) throw e_5.error; }
|
|
924
|
+
}
|
|
925
|
+
};
|
|
904
926
|
DockviewComponent.prototype.focus = function () {
|
|
905
927
|
var _a;
|
|
906
928
|
(_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.focus();
|
|
@@ -995,7 +1017,7 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
995
1017
|
return result;
|
|
996
1018
|
};
|
|
997
1019
|
DockviewComponent.prototype.fromJSON = function (data) {
|
|
998
|
-
var
|
|
1020
|
+
var e_6, _a, e_7, _b, e_8, _c, e_9, _d, e_10, _e, e_11, _f, e_12, _g;
|
|
999
1021
|
var _this = this;
|
|
1000
1022
|
var _h, _j;
|
|
1001
1023
|
this.clear();
|
|
@@ -1011,7 +1033,7 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
1011
1033
|
var width = this.width;
|
|
1012
1034
|
var height = this.height;
|
|
1013
1035
|
var createGroupFromSerializedState_1 = function (data) {
|
|
1014
|
-
var
|
|
1036
|
+
var e_13, _a;
|
|
1015
1037
|
var id = data.id, locked = data.locked, hideHeader = data.hideHeader, views = data.views, activeView = data.activeView;
|
|
1016
1038
|
if (typeof id !== 'string') {
|
|
1017
1039
|
throw new Error('group id must be of type string');
|
|
@@ -1035,12 +1057,12 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
1035
1057
|
createdPanels.push(panel);
|
|
1036
1058
|
}
|
|
1037
1059
|
}
|
|
1038
|
-
catch (
|
|
1060
|
+
catch (e_13_1) { e_13 = { error: e_13_1 }; }
|
|
1039
1061
|
finally {
|
|
1040
1062
|
try {
|
|
1041
1063
|
if (views_1_1 && !views_1_1.done && (_a = views_1.return)) _a.call(views_1);
|
|
1042
1064
|
}
|
|
1043
|
-
finally { if (
|
|
1065
|
+
finally { if (e_13) throw e_13.error; }
|
|
1044
1066
|
}
|
|
1045
1067
|
for (var i = 0; i < views.length; i++) {
|
|
1046
1068
|
var panel = createdPanels[i];
|
|
@@ -1079,12 +1101,12 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
1079
1101
|
});
|
|
1080
1102
|
}
|
|
1081
1103
|
}
|
|
1082
|
-
catch (
|
|
1104
|
+
catch (e_6_1) { e_6 = { error: e_6_1 }; }
|
|
1083
1105
|
finally {
|
|
1084
1106
|
try {
|
|
1085
1107
|
if (serializedFloatingGroups_1_1 && !serializedFloatingGroups_1_1.done && (_a = serializedFloatingGroups_1.return)) _a.call(serializedFloatingGroups_1);
|
|
1086
1108
|
}
|
|
1087
|
-
finally { if (
|
|
1109
|
+
finally { if (e_6) throw e_6.error; }
|
|
1088
1110
|
}
|
|
1089
1111
|
var serializedPopoutGroups = (_j = data.popoutGroups) !== null && _j !== void 0 ? _j : [];
|
|
1090
1112
|
try {
|
|
@@ -1102,12 +1124,12 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
1102
1124
|
});
|
|
1103
1125
|
}
|
|
1104
1126
|
}
|
|
1105
|
-
catch (
|
|
1127
|
+
catch (e_7_1) { e_7 = { error: e_7_1 }; }
|
|
1106
1128
|
finally {
|
|
1107
1129
|
try {
|
|
1108
1130
|
if (serializedPopoutGroups_1_1 && !serializedPopoutGroups_1_1.done && (_b = serializedPopoutGroups_1.return)) _b.call(serializedPopoutGroups_1);
|
|
1109
1131
|
}
|
|
1110
|
-
finally { if (
|
|
1132
|
+
finally { if (e_7) throw e_7.error; }
|
|
1111
1133
|
}
|
|
1112
1134
|
try {
|
|
1113
1135
|
for (var _k = __values(this._floatingGroups), _l = _k.next(); !_l.done; _l = _k.next()) {
|
|
@@ -1115,12 +1137,12 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
1115
1137
|
floatingGroup.overlay.setBounds();
|
|
1116
1138
|
}
|
|
1117
1139
|
}
|
|
1118
|
-
catch (
|
|
1140
|
+
catch (e_8_1) { e_8 = { error: e_8_1 }; }
|
|
1119
1141
|
finally {
|
|
1120
1142
|
try {
|
|
1121
1143
|
if (_l && !_l.done && (_c = _k.return)) _c.call(_k);
|
|
1122
1144
|
}
|
|
1123
|
-
finally { if (
|
|
1145
|
+
finally { if (e_8) throw e_8.error; }
|
|
1124
1146
|
}
|
|
1125
1147
|
if (typeof activeGroup === 'string') {
|
|
1126
1148
|
var panel = this.getPanel(activeGroup);
|
|
@@ -1138,7 +1160,7 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
1138
1160
|
for (var _m = __values(this.groups), _o = _m.next(); !_o.done; _o = _m.next()) {
|
|
1139
1161
|
var group = _o.value;
|
|
1140
1162
|
try {
|
|
1141
|
-
for (var _p = (
|
|
1163
|
+
for (var _p = (e_10 = void 0, __values(group.panels)), _q = _p.next(); !_q.done; _q = _p.next()) {
|
|
1142
1164
|
var panel = _q.value;
|
|
1143
1165
|
this.removePanel(panel, {
|
|
1144
1166
|
removeEmptyGroup: false,
|
|
@@ -1146,21 +1168,21 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
1146
1168
|
});
|
|
1147
1169
|
}
|
|
1148
1170
|
}
|
|
1149
|
-
catch (
|
|
1171
|
+
catch (e_10_1) { e_10 = { error: e_10_1 }; }
|
|
1150
1172
|
finally {
|
|
1151
1173
|
try {
|
|
1152
1174
|
if (_q && !_q.done && (_e = _p.return)) _e.call(_p);
|
|
1153
1175
|
}
|
|
1154
|
-
finally { if (
|
|
1176
|
+
finally { if (e_10) throw e_10.error; }
|
|
1155
1177
|
}
|
|
1156
1178
|
}
|
|
1157
1179
|
}
|
|
1158
|
-
catch (
|
|
1180
|
+
catch (e_9_1) { e_9 = { error: e_9_1 }; }
|
|
1159
1181
|
finally {
|
|
1160
1182
|
try {
|
|
1161
1183
|
if (_o && !_o.done && (_d = _m.return)) _d.call(_m);
|
|
1162
1184
|
}
|
|
1163
|
-
finally { if (
|
|
1185
|
+
finally { if (e_9) throw e_9.error; }
|
|
1164
1186
|
}
|
|
1165
1187
|
try {
|
|
1166
1188
|
/**
|
|
@@ -1174,12 +1196,12 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
1174
1196
|
this._onDidRemoveGroup.fire(group);
|
|
1175
1197
|
}
|
|
1176
1198
|
}
|
|
1177
|
-
catch (
|
|
1199
|
+
catch (e_11_1) { e_11 = { error: e_11_1 }; }
|
|
1178
1200
|
finally {
|
|
1179
1201
|
try {
|
|
1180
1202
|
if (_s && !_s.done && (_f = _r.return)) _f.call(_r);
|
|
1181
1203
|
}
|
|
1182
|
-
finally { if (
|
|
1204
|
+
finally { if (e_11) throw e_11.error; }
|
|
1183
1205
|
}
|
|
1184
1206
|
try {
|
|
1185
1207
|
// iterate over a reassigned array since original array will be modified
|
|
@@ -1188,12 +1210,12 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
1188
1210
|
floatingGroup.dispose();
|
|
1189
1211
|
}
|
|
1190
1212
|
}
|
|
1191
|
-
catch (
|
|
1213
|
+
catch (e_12_1) { e_12 = { error: e_12_1 }; }
|
|
1192
1214
|
finally {
|
|
1193
1215
|
try {
|
|
1194
1216
|
if (_u && !_u.done && (_g = _t.return)) _g.call(_t);
|
|
1195
1217
|
}
|
|
1196
|
-
finally { if (
|
|
1218
|
+
finally { if (e_12) throw e_12.error; }
|
|
1197
1219
|
}
|
|
1198
1220
|
// fires clean-up events and clears the underlying HTML gridview.
|
|
1199
1221
|
this.clear();
|
|
@@ -1208,7 +1230,7 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
1208
1230
|
this._onDidLayoutFromJSON.fire();
|
|
1209
1231
|
};
|
|
1210
1232
|
DockviewComponent.prototype.clear = function () {
|
|
1211
|
-
var
|
|
1233
|
+
var e_14, _a;
|
|
1212
1234
|
var groups = Array.from(this._groups.values()).map(function (_) { return _.value; });
|
|
1213
1235
|
var hasActiveGroup = !!this.activeGroup;
|
|
1214
1236
|
try {
|
|
@@ -1218,12 +1240,12 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
1218
1240
|
this.removeGroup(group, { skipActive: true });
|
|
1219
1241
|
}
|
|
1220
1242
|
}
|
|
1221
|
-
catch (
|
|
1243
|
+
catch (e_14_1) { e_14 = { error: e_14_1 }; }
|
|
1222
1244
|
finally {
|
|
1223
1245
|
try {
|
|
1224
1246
|
if (groups_1_1 && !groups_1_1.done && (_a = groups_1.return)) _a.call(groups_1);
|
|
1225
1247
|
}
|
|
1226
|
-
finally { if (
|
|
1248
|
+
finally { if (e_14) throw e_14.error; }
|
|
1227
1249
|
}
|
|
1228
1250
|
if (hasActiveGroup) {
|
|
1229
1251
|
this.doSetGroupAndPanelActive(undefined);
|
|
@@ -1231,7 +1253,7 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
1231
1253
|
this.gridview.clear();
|
|
1232
1254
|
};
|
|
1233
1255
|
DockviewComponent.prototype.closeAllGroups = function () {
|
|
1234
|
-
var
|
|
1256
|
+
var e_15, _a;
|
|
1235
1257
|
try {
|
|
1236
1258
|
for (var _b = __values(this._groups.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
1237
1259
|
var entry = _c.value;
|
|
@@ -1239,12 +1261,12 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
1239
1261
|
group.value.model.closeAllPanels();
|
|
1240
1262
|
}
|
|
1241
1263
|
}
|
|
1242
|
-
catch (
|
|
1264
|
+
catch (e_15_1) { e_15 = { error: e_15_1 }; }
|
|
1243
1265
|
finally {
|
|
1244
1266
|
try {
|
|
1245
1267
|
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
1246
1268
|
}
|
|
1247
|
-
finally { if (
|
|
1269
|
+
finally { if (e_15) throw e_15.error; }
|
|
1248
1270
|
}
|
|
1249
1271
|
};
|
|
1250
1272
|
DockviewComponent.prototype.addPanel = function (options) {
|
|
@@ -1495,7 +1517,7 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
1495
1517
|
this.doRemoveGroup(group, options);
|
|
1496
1518
|
};
|
|
1497
1519
|
DockviewComponent.prototype.doRemoveGroup = function (group, options) {
|
|
1498
|
-
var
|
|
1520
|
+
var e_16, _a;
|
|
1499
1521
|
var _b;
|
|
1500
1522
|
var panels = __spreadArray([], __read(group.panels), false); // reassign since group panels will mutate
|
|
1501
1523
|
if (!(options === null || options === void 0 ? void 0 : options.skipDispose)) {
|
|
@@ -1508,12 +1530,12 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
1508
1530
|
});
|
|
1509
1531
|
}
|
|
1510
1532
|
}
|
|
1511
|
-
catch (
|
|
1533
|
+
catch (e_16_1) { e_16 = { error: e_16_1 }; }
|
|
1512
1534
|
finally {
|
|
1513
1535
|
try {
|
|
1514
1536
|
if (panels_1_1 && !panels_1_1.done && (_a = panels_1.return)) _a.call(panels_1);
|
|
1515
1537
|
}
|
|
1516
|
-
finally { if (
|
|
1538
|
+
finally { if (e_16) throw e_16.error; }
|
|
1517
1539
|
}
|
|
1518
1540
|
}
|
|
1519
1541
|
var activePanel = this.activePanel;
|
|
@@ -1608,6 +1630,7 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
1608
1630
|
group: destinationGroup,
|
|
1609
1631
|
position: destinationTarget,
|
|
1610
1632
|
},
|
|
1633
|
+
skipSetActive: options.skipSetActive,
|
|
1611
1634
|
});
|
|
1612
1635
|
return;
|
|
1613
1636
|
}
|
|
@@ -1629,12 +1652,16 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
1629
1652
|
this.doRemoveGroup(sourceGroup, { skipActive: true });
|
|
1630
1653
|
}
|
|
1631
1654
|
this.movingLock(function () {
|
|
1655
|
+
var _a;
|
|
1632
1656
|
return destinationGroup.model.openPanel(removedPanel_1, {
|
|
1633
1657
|
index: destinationIndex,
|
|
1658
|
+
skipSetActive: (_a = options.skipSetActive) !== null && _a !== void 0 ? _a : false,
|
|
1634
1659
|
skipSetGroupActive: true,
|
|
1635
1660
|
});
|
|
1636
1661
|
});
|
|
1637
|
-
|
|
1662
|
+
if (!options.skipSetActive) {
|
|
1663
|
+
this.doSetGroupAndPanelActive(destinationGroup);
|
|
1664
|
+
}
|
|
1638
1665
|
this._onDidMovePanel.fire({
|
|
1639
1666
|
panel: removedPanel_1,
|
|
1640
1667
|
from: sourceGroup,
|
|
@@ -1747,7 +1774,8 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
1747
1774
|
var to = options.to.group;
|
|
1748
1775
|
var target = options.to.position;
|
|
1749
1776
|
if (target === 'center') {
|
|
1750
|
-
var
|
|
1777
|
+
var activePanel = from.activePanel;
|
|
1778
|
+
var targetActivePanel = to.activePanel;
|
|
1751
1779
|
var panels_2 = this.movingLock(function () {
|
|
1752
1780
|
return __spreadArray([], __read(from.panels), false).map(function (p) {
|
|
1753
1781
|
return from.model.removePanel(p.id, {
|
|
@@ -1759,25 +1787,36 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
1759
1787
|
this.doRemoveGroup(from, { skipActive: true });
|
|
1760
1788
|
}
|
|
1761
1789
|
this.movingLock(function () {
|
|
1762
|
-
var
|
|
1790
|
+
var e_17, _a;
|
|
1763
1791
|
try {
|
|
1764
1792
|
for (var panels_3 = __values(panels_2), panels_3_1 = panels_3.next(); !panels_3_1.done; panels_3_1 = panels_3.next()) {
|
|
1765
1793
|
var panel = panels_3_1.value;
|
|
1766
1794
|
to.model.openPanel(panel, {
|
|
1767
|
-
skipSetActive:
|
|
1795
|
+
skipSetActive: true, // Always skip setting panels active during move
|
|
1768
1796
|
skipSetGroupActive: true,
|
|
1769
1797
|
});
|
|
1770
1798
|
}
|
|
1771
1799
|
}
|
|
1772
|
-
catch (
|
|
1800
|
+
catch (e_17_1) { e_17 = { error: e_17_1 }; }
|
|
1773
1801
|
finally {
|
|
1774
1802
|
try {
|
|
1775
1803
|
if (panels_3_1 && !panels_3_1.done && (_a = panels_3.return)) _a.call(panels_3);
|
|
1776
1804
|
}
|
|
1777
|
-
finally { if (
|
|
1805
|
+
finally { if (e_17) throw e_17.error; }
|
|
1778
1806
|
}
|
|
1779
1807
|
});
|
|
1780
|
-
|
|
1808
|
+
if (!options.skipSetActive) {
|
|
1809
|
+
// Make the moved panel (from the source group) active
|
|
1810
|
+
if (activePanel) {
|
|
1811
|
+
this.doSetGroupAndPanelActive(to);
|
|
1812
|
+
}
|
|
1813
|
+
}
|
|
1814
|
+
else if (targetActivePanel) {
|
|
1815
|
+
// Ensure the target group's original active panel remains active
|
|
1816
|
+
to.model.openPanel(targetActivePanel, {
|
|
1817
|
+
skipSetGroupActive: true
|
|
1818
|
+
});
|
|
1819
|
+
}
|
|
1781
1820
|
}
|
|
1782
1821
|
else {
|
|
1783
1822
|
switch (from.api.location.type) {
|
|
@@ -1797,12 +1836,39 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
1797
1836
|
if (!selectedPopoutGroup) {
|
|
1798
1837
|
throw new Error('failed to find popout group');
|
|
1799
1838
|
}
|
|
1800
|
-
|
|
1839
|
+
// Remove from popout groups list to prevent automatic restoration
|
|
1840
|
+
var index = this._popoutGroups.indexOf(selectedPopoutGroup);
|
|
1841
|
+
if (index >= 0) {
|
|
1842
|
+
this._popoutGroups.splice(index, 1);
|
|
1843
|
+
}
|
|
1844
|
+
// Clean up the reference group (ghost) if it exists and is hidden
|
|
1845
|
+
if (selectedPopoutGroup.referenceGroup) {
|
|
1846
|
+
var referenceGroup = this.getPanel(selectedPopoutGroup.referenceGroup);
|
|
1847
|
+
if (referenceGroup && !referenceGroup.api.isVisible) {
|
|
1848
|
+
this.doRemoveGroup(referenceGroup, { skipActive: true });
|
|
1849
|
+
}
|
|
1850
|
+
}
|
|
1851
|
+
// Manually dispose the window without triggering restoration
|
|
1852
|
+
selectedPopoutGroup.window.dispose();
|
|
1853
|
+
// Update group's location and containers for target
|
|
1854
|
+
if (to.api.location.type === 'grid') {
|
|
1855
|
+
from.model.renderContainer = this.overlayRenderContainer;
|
|
1856
|
+
from.model.dropTargetContainer = this.rootDropTargetContainer;
|
|
1857
|
+
from.model.location = { type: 'grid' };
|
|
1858
|
+
}
|
|
1859
|
+
else if (to.api.location.type === 'floating') {
|
|
1860
|
+
from.model.renderContainer = this.overlayRenderContainer;
|
|
1861
|
+
from.model.dropTargetContainer = this.rootDropTargetContainer;
|
|
1862
|
+
from.model.location = { type: 'floating' };
|
|
1863
|
+
}
|
|
1864
|
+
break;
|
|
1801
1865
|
}
|
|
1802
1866
|
}
|
|
1803
|
-
|
|
1867
|
+
// For moves to grid locations
|
|
1868
|
+
if (to.api.location.type === 'grid') {
|
|
1804
1869
|
var referenceLocation = (0, gridview_1.getGridLocation)(to.element);
|
|
1805
1870
|
var dropLocation = (0, gridview_1.getRelativeLocation)(this.gridview.orientation, referenceLocation, target);
|
|
1871
|
+
// Add to grid for all moves targeting grid location
|
|
1806
1872
|
var size = void 0;
|
|
1807
1873
|
switch (this.gridview.orientation) {
|
|
1808
1874
|
case splitview_1.Orientation.VERTICAL:
|
|
@@ -1820,10 +1886,49 @@ var DockviewComponent = /** @class */ (function (_super) {
|
|
|
1820
1886
|
}
|
|
1821
1887
|
this.gridview.addView(from, size, dropLocation);
|
|
1822
1888
|
}
|
|
1889
|
+
else if (to.api.location.type === 'floating') {
|
|
1890
|
+
// For moves to floating locations, add as floating group
|
|
1891
|
+
// Get the position/size from the target floating group
|
|
1892
|
+
var targetFloatingGroup = this._floatingGroups.find(function (x) { return x.group === to; });
|
|
1893
|
+
if (targetFloatingGroup) {
|
|
1894
|
+
var box = targetFloatingGroup.overlay.toJSON();
|
|
1895
|
+
// Calculate position based on available properties
|
|
1896
|
+
var left = void 0, top_1;
|
|
1897
|
+
if ('left' in box) {
|
|
1898
|
+
left = box.left + 50;
|
|
1899
|
+
}
|
|
1900
|
+
else if ('right' in box) {
|
|
1901
|
+
left = Math.max(0, box.right - box.width - 50);
|
|
1902
|
+
}
|
|
1903
|
+
else {
|
|
1904
|
+
left = 50; // Default fallback
|
|
1905
|
+
}
|
|
1906
|
+
if ('top' in box) {
|
|
1907
|
+
top_1 = box.top + 50;
|
|
1908
|
+
}
|
|
1909
|
+
else if ('bottom' in box) {
|
|
1910
|
+
top_1 = Math.max(0, box.bottom - box.height - 50);
|
|
1911
|
+
}
|
|
1912
|
+
else {
|
|
1913
|
+
top_1 = 50; // Default fallback
|
|
1914
|
+
}
|
|
1915
|
+
this.addFloatingGroup(from, {
|
|
1916
|
+
height: box.height,
|
|
1917
|
+
width: box.width,
|
|
1918
|
+
position: {
|
|
1919
|
+
left: left,
|
|
1920
|
+
top: top_1,
|
|
1921
|
+
},
|
|
1922
|
+
});
|
|
1923
|
+
}
|
|
1924
|
+
}
|
|
1823
1925
|
}
|
|
1824
1926
|
from.panels.forEach(function (panel) {
|
|
1825
1927
|
_this._onDidMovePanel.fire({ panel: panel, from: from });
|
|
1826
1928
|
});
|
|
1929
|
+
if (!options.skipSetActive) {
|
|
1930
|
+
this.doSetGroupAndPanelActive(from);
|
|
1931
|
+
}
|
|
1827
1932
|
};
|
|
1828
1933
|
DockviewComponent.prototype.doSetGroupActive = function (group) {
|
|
1829
1934
|
_super.prototype.doSetGroupActive.call(this, group);
|
|
@@ -123,9 +123,16 @@ export type DockviewGroupLocation = {
|
|
|
123
123
|
getWindow: () => Window;
|
|
124
124
|
popoutUrl?: string;
|
|
125
125
|
};
|
|
126
|
+
export interface WillShowOverlayLocationEventOptions {
|
|
127
|
+
readonly kind: DockviewGroupDropLocation;
|
|
128
|
+
readonly panel: IDockviewPanel | undefined;
|
|
129
|
+
readonly api: DockviewApi;
|
|
130
|
+
readonly group: DockviewGroupPanel | undefined;
|
|
131
|
+
getData: () => PanelTransfer | undefined;
|
|
132
|
+
}
|
|
126
133
|
export declare class WillShowOverlayLocationEvent implements IDockviewEvent {
|
|
127
134
|
private readonly event;
|
|
128
|
-
|
|
135
|
+
readonly options: WillShowOverlayLocationEventOptions;
|
|
129
136
|
get kind(): DockviewGroupDropLocation;
|
|
130
137
|
get nativeEvent(): DragEvent;
|
|
131
138
|
get position(): Position;
|
|
@@ -135,13 +142,7 @@ export declare class WillShowOverlayLocationEvent implements IDockviewEvent {
|
|
|
135
142
|
get group(): DockviewGroupPanel | undefined;
|
|
136
143
|
preventDefault(): void;
|
|
137
144
|
getData(): PanelTransfer | undefined;
|
|
138
|
-
constructor(event: WillShowOverlayEvent, options:
|
|
139
|
-
kind: DockviewGroupDropLocation;
|
|
140
|
-
panel: IDockviewPanel | undefined;
|
|
141
|
-
api: DockviewApi;
|
|
142
|
-
group: DockviewGroupPanel | undefined;
|
|
143
|
-
getData: () => PanelTransfer | undefined;
|
|
144
|
-
});
|
|
145
|
+
constructor(event: WillShowOverlayEvent, options: WillShowOverlayLocationEventOptions);
|
|
145
146
|
}
|
|
146
147
|
export declare class DockviewGroupPanelModel extends CompositeDisposable implements IDockviewGroupPanelModel {
|
|
147
148
|
private readonly container;
|
|
@@ -252,6 +253,7 @@ export declare class DockviewGroupPanelModel extends CompositeDisposable impleme
|
|
|
252
253
|
private updateContainer;
|
|
253
254
|
canDisplayOverlay(event: DragEvent, position: Position, target: DockviewGroupDropLocation): boolean;
|
|
254
255
|
private handleDropEvent;
|
|
256
|
+
updateDragAndDropState(): void;
|
|
255
257
|
dispose(): void;
|
|
256
258
|
}
|
|
257
259
|
export {};
|
|
@@ -842,6 +842,9 @@ var DockviewGroupPanelModel = /** @class */ (function (_super) {
|
|
|
842
842
|
}));
|
|
843
843
|
}
|
|
844
844
|
};
|
|
845
|
+
DockviewGroupPanelModel.prototype.updateDragAndDropState = function () {
|
|
846
|
+
this.tabsContainer.updateDragAndDropState();
|
|
847
|
+
};
|
|
845
848
|
DockviewGroupPanelModel.prototype.dispose = function () {
|
|
846
849
|
var e_2, _a;
|
|
847
850
|
var _b, _c, _d;
|