dockview-angular 4.10.0 → 4.12.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/lib/dockview/dockview-angular.component.js +2 -1
- package/dist/cjs/lib/dockview-angular.module.js +2 -4
- package/dist/cjs/lib/gridview/gridview-angular.component.js +2 -1
- package/dist/cjs/lib/paneview/paneview-angular.component.js +2 -1
- package/dist/cjs/lib/splitview/splitview-angular.component.js +2 -1
- package/dist/cjs/lib/utils/angular-renderer.js +11 -3
- package/dist/cjs/lib/utils/component-factory.js +1 -0
- package/dist/dockview-angular.amd.js +184 -46
- package/dist/dockview-angular.amd.js.map +1 -1
- package/dist/dockview-angular.amd.min.js +2 -2
- package/dist/dockview-angular.amd.min.js.map +1 -1
- package/dist/dockview-angular.amd.min.noStyle.js +2 -2
- package/dist/dockview-angular.amd.min.noStyle.js.map +1 -1
- package/dist/dockview-angular.amd.noStyle.js +184 -46
- package/dist/dockview-angular.amd.noStyle.js.map +1 -1
- package/dist/dockview-angular.cjs.js +184 -46
- package/dist/dockview-angular.cjs.js.map +1 -1
- package/dist/dockview-angular.esm.js +184 -46
- package/dist/dockview-angular.esm.js.map +1 -1
- package/dist/dockview-angular.esm.min.js +2 -2
- package/dist/dockview-angular.esm.min.js.map +1 -1
- package/dist/dockview-angular.js +184 -46
- package/dist/dockview-angular.js.map +1 -1
- package/dist/dockview-angular.min.js +2 -2
- package/dist/dockview-angular.min.js.map +1 -1
- package/dist/dockview-angular.min.noStyle.js +2 -2
- package/dist/dockview-angular.min.noStyle.js.map +1 -1
- package/dist/dockview-angular.noStyle.js +184 -46
- package/dist/dockview-angular.noStyle.js.map +1 -1
- package/dist/esm/lib/dockview/dockview-angular.component.js +2 -1
- package/dist/esm/lib/dockview-angular.module.js +2 -4
- package/dist/esm/lib/gridview/gridview-angular.component.js +2 -1
- package/dist/esm/lib/paneview/paneview-angular.component.js +2 -1
- package/dist/esm/lib/splitview/splitview-angular.component.js +2 -1
- package/dist/esm/lib/utils/angular-renderer.js +11 -3
- package/dist/esm/lib/utils/component-factory.js +1 -0
- package/package.json +2 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* dockview-angular
|
|
3
|
-
* @version 4.
|
|
3
|
+
* @version 4.12.0
|
|
4
4
|
* @link https://github.com/mathuo/dockview
|
|
5
5
|
* @license MIT
|
|
6
6
|
*/
|
|
@@ -3781,8 +3781,8 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
|
|
|
3781
3781
|
/**
|
|
3782
3782
|
* Create a component from a serialized object.
|
|
3783
3783
|
*/
|
|
3784
|
-
fromJSON(data) {
|
|
3785
|
-
this.component.fromJSON(data);
|
|
3784
|
+
fromJSON(data, options) {
|
|
3785
|
+
this.component.fromJSON(data, options);
|
|
3786
3786
|
}
|
|
3787
3787
|
/**
|
|
3788
3788
|
* Create a serialized object of the current component.
|
|
@@ -5013,6 +5013,7 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
|
|
|
5013
5013
|
}
|
|
5014
5014
|
if (doRender) {
|
|
5015
5015
|
const focusTracker = trackFocus(container);
|
|
5016
|
+
this.focusTracker = focusTracker;
|
|
5016
5017
|
const disposable = new CompositeDisposable();
|
|
5017
5018
|
disposable.addDisposables(focusTracker, focusTracker.onDidFocus(() => this._onDidFocus.fire()), focusTracker.onDidBlur(() => this._onDidBlur.fire()));
|
|
5018
5019
|
this.disposable.value = disposable;
|
|
@@ -5040,6 +5041,16 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
|
|
|
5040
5041
|
this.disposable.dispose();
|
|
5041
5042
|
super.dispose();
|
|
5042
5043
|
}
|
|
5044
|
+
/**
|
|
5045
|
+
* Refresh the focus tracker state to handle cases where focus state
|
|
5046
|
+
* gets out of sync due to programmatic panel activation
|
|
5047
|
+
*/
|
|
5048
|
+
refreshFocusState() {
|
|
5049
|
+
var _a;
|
|
5050
|
+
if ((_a = this.focusTracker) === null || _a === void 0 ? void 0 : _a.refreshState) {
|
|
5051
|
+
this.focusTracker.refreshState();
|
|
5052
|
+
}
|
|
5053
|
+
}
|
|
5043
5054
|
}
|
|
5044
5055
|
|
|
5045
5056
|
function addGhostImage(dataTransfer, ghostElement, options) {
|
|
@@ -6366,8 +6377,11 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
|
|
|
6366
6377
|
this._activePanel = panel;
|
|
6367
6378
|
if (panel) {
|
|
6368
6379
|
this.tabsContainer.setActivePanel(panel);
|
|
6380
|
+
this.contentContainer.openPanel(panel);
|
|
6369
6381
|
panel.layout(this._width, this._height);
|
|
6370
6382
|
this.updateMru(panel);
|
|
6383
|
+
// Refresh focus state to handle programmatic activation without DOM focus change
|
|
6384
|
+
this.contentContainer.refreshFocusState();
|
|
6371
6385
|
this._onDidActivePanelChange.fire({
|
|
6372
6386
|
panel,
|
|
6373
6387
|
});
|
|
@@ -6791,11 +6805,16 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
|
|
|
6791
6805
|
}
|
|
6792
6806
|
}
|
|
6793
6807
|
|
|
6808
|
+
// GridConstraintChangeEvent2 is not exported, so we'll type it manually
|
|
6794
6809
|
const MINIMUM_DOCKVIEW_GROUP_PANEL_WIDTH = 100;
|
|
6795
6810
|
const MINIMUM_DOCKVIEW_GROUP_PANEL_HEIGHT = 100;
|
|
6796
6811
|
class DockviewGroupPanel extends GridviewPanel {
|
|
6797
6812
|
get minimumWidth() {
|
|
6798
6813
|
var _a;
|
|
6814
|
+
// Check for explicitly set group constraint first
|
|
6815
|
+
if (typeof this._explicitConstraints.minimumWidth === 'number') {
|
|
6816
|
+
return this._explicitConstraints.minimumWidth;
|
|
6817
|
+
}
|
|
6799
6818
|
const activePanelMinimumWidth = (_a = this.activePanel) === null || _a === void 0 ? void 0 : _a.minimumWidth;
|
|
6800
6819
|
if (typeof activePanelMinimumWidth === 'number') {
|
|
6801
6820
|
return activePanelMinimumWidth;
|
|
@@ -6804,6 +6823,10 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
|
|
|
6804
6823
|
}
|
|
6805
6824
|
get minimumHeight() {
|
|
6806
6825
|
var _a;
|
|
6826
|
+
// Check for explicitly set group constraint first
|
|
6827
|
+
if (typeof this._explicitConstraints.minimumHeight === 'number') {
|
|
6828
|
+
return this._explicitConstraints.minimumHeight;
|
|
6829
|
+
}
|
|
6807
6830
|
const activePanelMinimumHeight = (_a = this.activePanel) === null || _a === void 0 ? void 0 : _a.minimumHeight;
|
|
6808
6831
|
if (typeof activePanelMinimumHeight === 'number') {
|
|
6809
6832
|
return activePanelMinimumHeight;
|
|
@@ -6812,6 +6835,10 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
|
|
|
6812
6835
|
}
|
|
6813
6836
|
get maximumWidth() {
|
|
6814
6837
|
var _a;
|
|
6838
|
+
// Check for explicitly set group constraint first
|
|
6839
|
+
if (typeof this._explicitConstraints.maximumWidth === 'number') {
|
|
6840
|
+
return this._explicitConstraints.maximumWidth;
|
|
6841
|
+
}
|
|
6815
6842
|
const activePanelMaximumWidth = (_a = this.activePanel) === null || _a === void 0 ? void 0 : _a.maximumWidth;
|
|
6816
6843
|
if (typeof activePanelMaximumWidth === 'number') {
|
|
6817
6844
|
return activePanelMaximumWidth;
|
|
@@ -6820,6 +6847,10 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
|
|
|
6820
6847
|
}
|
|
6821
6848
|
get maximumHeight() {
|
|
6822
6849
|
var _a;
|
|
6850
|
+
// Check for explicitly set group constraint first
|
|
6851
|
+
if (typeof this._explicitConstraints.maximumHeight === 'number') {
|
|
6852
|
+
return this._explicitConstraints.maximumHeight;
|
|
6853
|
+
}
|
|
6823
6854
|
const activePanelMaximumHeight = (_a = this.activePanel) === null || _a === void 0 ? void 0 : _a.maximumHeight;
|
|
6824
6855
|
if (typeof activePanelMaximumHeight === 'number') {
|
|
6825
6856
|
return activePanelMaximumHeight;
|
|
@@ -6851,14 +6882,39 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
|
|
|
6851
6882
|
var _a, _b, _c, _d, _e, _f;
|
|
6852
6883
|
super(id, 'groupview_default', {
|
|
6853
6884
|
minimumHeight: (_b = (_a = options.constraints) === null || _a === void 0 ? void 0 : _a.minimumHeight) !== null && _b !== void 0 ? _b : MINIMUM_DOCKVIEW_GROUP_PANEL_HEIGHT,
|
|
6854
|
-
minimumWidth: (_d = (_c = options.constraints) === null || _c === void 0 ? void 0 : _c.
|
|
6885
|
+
minimumWidth: (_d = (_c = options.constraints) === null || _c === void 0 ? void 0 : _c.minimumWidth) !== null && _d !== void 0 ? _d : MINIMUM_DOCKVIEW_GROUP_PANEL_WIDTH,
|
|
6855
6886
|
maximumHeight: (_e = options.constraints) === null || _e === void 0 ? void 0 : _e.maximumHeight,
|
|
6856
6887
|
maximumWidth: (_f = options.constraints) === null || _f === void 0 ? void 0 : _f.maximumWidth,
|
|
6857
6888
|
}, new DockviewGroupPanelApiImpl(id, accessor));
|
|
6889
|
+
// Track explicitly set constraints to override panel constraints
|
|
6890
|
+
this._explicitConstraints = {};
|
|
6858
6891
|
this.api.initialize(this); // cannot use 'this' after after 'super' call
|
|
6859
6892
|
this._model = new DockviewGroupPanelModel(this.element, accessor, id, options, this);
|
|
6860
6893
|
this.addDisposables(this.model.onDidActivePanelChange((event) => {
|
|
6861
6894
|
this.api._onDidActivePanelChange.fire(event);
|
|
6895
|
+
}), this.api.onDidConstraintsChangeInternal((event) => {
|
|
6896
|
+
// Track explicitly set constraints to override panel constraints
|
|
6897
|
+
// Extract numeric values from functions or values
|
|
6898
|
+
if (event.minimumWidth !== undefined) {
|
|
6899
|
+
this._explicitConstraints.minimumWidth = typeof event.minimumWidth === 'function'
|
|
6900
|
+
? event.minimumWidth()
|
|
6901
|
+
: event.minimumWidth;
|
|
6902
|
+
}
|
|
6903
|
+
if (event.minimumHeight !== undefined) {
|
|
6904
|
+
this._explicitConstraints.minimumHeight = typeof event.minimumHeight === 'function'
|
|
6905
|
+
? event.minimumHeight()
|
|
6906
|
+
: event.minimumHeight;
|
|
6907
|
+
}
|
|
6908
|
+
if (event.maximumWidth !== undefined) {
|
|
6909
|
+
this._explicitConstraints.maximumWidth = typeof event.maximumWidth === 'function'
|
|
6910
|
+
? event.maximumWidth()
|
|
6911
|
+
: event.maximumWidth;
|
|
6912
|
+
}
|
|
6913
|
+
if (event.maximumHeight !== undefined) {
|
|
6914
|
+
this._explicitConstraints.maximumHeight = typeof event.maximumHeight === 'function'
|
|
6915
|
+
? event.maximumHeight()
|
|
6916
|
+
: event.maximumHeight;
|
|
6917
|
+
}
|
|
6862
6918
|
}));
|
|
6863
6919
|
}
|
|
6864
6920
|
focus() {
|
|
@@ -7155,6 +7211,18 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
|
|
|
7155
7211
|
params: this._params,
|
|
7156
7212
|
});
|
|
7157
7213
|
}
|
|
7214
|
+
updateFromStateModel(state) {
|
|
7215
|
+
var _a, _b, _c;
|
|
7216
|
+
this._maximumHeight = state.maximumHeight;
|
|
7217
|
+
this._minimumHeight = state.minimumHeight;
|
|
7218
|
+
this._maximumWidth = state.maximumWidth;
|
|
7219
|
+
this._minimumWidth = state.minimumWidth;
|
|
7220
|
+
this.update({ params: (_a = state.params) !== null && _a !== void 0 ? _a : {} });
|
|
7221
|
+
this.setTitle((_b = state.title) !== null && _b !== void 0 ? _b : this.id);
|
|
7222
|
+
this.setRenderer((_c = state.renderer) !== null && _c !== void 0 ? _c : this.accessor.renderer);
|
|
7223
|
+
// state.contentComponent;
|
|
7224
|
+
// state.tabComponent;
|
|
7225
|
+
}
|
|
7158
7226
|
updateParentGroup(group, options) {
|
|
7159
7227
|
this._group = group;
|
|
7160
7228
|
this.api.group = this._group;
|
|
@@ -8918,7 +8986,7 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
|
|
|
8918
8986
|
: (_e = (_d = this.options.floatingGroupBounds) === null || _d === void 0 ? void 0 : _d.minimumHeightWithinViewport) !== null && _e !== void 0 ? _e : DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE }));
|
|
8919
8987
|
const el = group.element.querySelector('.dv-void-container');
|
|
8920
8988
|
if (!el) {
|
|
8921
|
-
throw new Error('failed to find drag handle');
|
|
8989
|
+
throw new Error('dockview: failed to find drag handle');
|
|
8922
8990
|
}
|
|
8923
8991
|
overlay.setupDrag(el, {
|
|
8924
8992
|
inDragMode: typeof (options === null || options === void 0 ? void 0 : options.inDragMode) === 'boolean'
|
|
@@ -8990,7 +9058,7 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
|
|
|
8990
9058
|
case 'right':
|
|
8991
9059
|
return this.createGroupAtLocation([this.gridview.length], undefined, options); // insert into last position
|
|
8992
9060
|
default:
|
|
8993
|
-
throw new Error(`unsupported position ${position}`);
|
|
9061
|
+
throw new Error(`dockview: unsupported position ${position}`);
|
|
8994
9062
|
}
|
|
8995
9063
|
}
|
|
8996
9064
|
updateOptions(options) {
|
|
@@ -9136,15 +9204,48 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
|
|
|
9136
9204
|
}
|
|
9137
9205
|
return result;
|
|
9138
9206
|
}
|
|
9139
|
-
fromJSON(data) {
|
|
9207
|
+
fromJSON(data, options) {
|
|
9140
9208
|
var _a, _b;
|
|
9209
|
+
const existingPanels = new Map();
|
|
9210
|
+
let tempGroup;
|
|
9211
|
+
if (options === null || options === void 0 ? void 0 : options.reuseExistingPanels) {
|
|
9212
|
+
/**
|
|
9213
|
+
* What are we doing here?
|
|
9214
|
+
*
|
|
9215
|
+
* 1. Create a temporary group to hold any panels that currently exist and that also exist in the new layout
|
|
9216
|
+
* 2. Remove that temporary group from the group mapping so that it doesn't get cleared when we clear the layout
|
|
9217
|
+
*/
|
|
9218
|
+
tempGroup = this.createGroup();
|
|
9219
|
+
this._groups.delete(tempGroup.api.id);
|
|
9220
|
+
const newPanels = Object.keys(data.panels);
|
|
9221
|
+
for (const panel of this.panels) {
|
|
9222
|
+
if (newPanels.includes(panel.api.id)) {
|
|
9223
|
+
existingPanels.set(panel.api.id, panel);
|
|
9224
|
+
}
|
|
9225
|
+
}
|
|
9226
|
+
this.movingLock(() => {
|
|
9227
|
+
Array.from(existingPanels.values()).forEach((panel) => {
|
|
9228
|
+
this.moveGroupOrPanel({
|
|
9229
|
+
from: {
|
|
9230
|
+
groupId: panel.api.group.api.id,
|
|
9231
|
+
panelId: panel.api.id,
|
|
9232
|
+
},
|
|
9233
|
+
to: {
|
|
9234
|
+
group: tempGroup,
|
|
9235
|
+
position: 'center',
|
|
9236
|
+
},
|
|
9237
|
+
keepEmptyGroups: true,
|
|
9238
|
+
});
|
|
9239
|
+
});
|
|
9240
|
+
});
|
|
9241
|
+
}
|
|
9141
9242
|
this.clear();
|
|
9142
9243
|
if (typeof data !== 'object' || data === null) {
|
|
9143
|
-
throw new Error('serialized layout must be a non-null object');
|
|
9244
|
+
throw new Error('dockview: serialized layout must be a non-null object');
|
|
9144
9245
|
}
|
|
9145
9246
|
const { grid, panels, activeGroup } = data;
|
|
9146
9247
|
if (grid.root.type !== 'branch' || !Array.isArray(grid.root.data)) {
|
|
9147
|
-
throw new Error('root must be of type branch');
|
|
9248
|
+
throw new Error('dockview: root must be of type branch');
|
|
9148
9249
|
}
|
|
9149
9250
|
try {
|
|
9150
9251
|
// take note of the existing dimensions
|
|
@@ -9153,7 +9254,7 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
|
|
|
9153
9254
|
const createGroupFromSerializedState = (data) => {
|
|
9154
9255
|
const { id, locked, hideHeader, views, activeView } = data;
|
|
9155
9256
|
if (typeof id !== 'string') {
|
|
9156
|
-
throw new Error('group id must be of type string');
|
|
9257
|
+
throw new Error('dockview: group id must be of type string');
|
|
9157
9258
|
}
|
|
9158
9259
|
const group = this.createGroup({
|
|
9159
9260
|
id,
|
|
@@ -9168,17 +9269,38 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
|
|
|
9168
9269
|
* In running this section first we avoid firing lots of 'add' events in the event of a failure
|
|
9169
9270
|
* due to a corruption of input data.
|
|
9170
9271
|
*/
|
|
9171
|
-
const
|
|
9172
|
-
|
|
9272
|
+
const existingPanel = existingPanels.get(child);
|
|
9273
|
+
if (tempGroup && existingPanel) {
|
|
9274
|
+
this.movingLock(() => {
|
|
9275
|
+
tempGroup.model.removePanel(existingPanel);
|
|
9276
|
+
});
|
|
9277
|
+
createdPanels.push(existingPanel);
|
|
9278
|
+
existingPanel.updateFromStateModel(panels[child]);
|
|
9279
|
+
}
|
|
9280
|
+
else {
|
|
9281
|
+
const panel = this._deserializer.fromJSON(panels[child], group);
|
|
9282
|
+
createdPanels.push(panel);
|
|
9283
|
+
}
|
|
9173
9284
|
}
|
|
9174
9285
|
for (let i = 0; i < views.length; i++) {
|
|
9175
9286
|
const panel = createdPanels[i];
|
|
9176
9287
|
const isActive = typeof activeView === 'string' &&
|
|
9177
9288
|
activeView === panel.id;
|
|
9178
|
-
|
|
9179
|
-
|
|
9180
|
-
|
|
9181
|
-
|
|
9289
|
+
const hasExisting = existingPanels.has(panel.api.id);
|
|
9290
|
+
if (hasExisting) {
|
|
9291
|
+
this.movingLock(() => {
|
|
9292
|
+
group.model.openPanel(panel, {
|
|
9293
|
+
skipSetActive: !isActive,
|
|
9294
|
+
skipSetGroupActive: true,
|
|
9295
|
+
});
|
|
9296
|
+
});
|
|
9297
|
+
}
|
|
9298
|
+
else {
|
|
9299
|
+
group.model.openPanel(panel, {
|
|
9300
|
+
skipSetActive: !isActive,
|
|
9301
|
+
skipSetGroupActive: true,
|
|
9302
|
+
});
|
|
9303
|
+
}
|
|
9182
9304
|
}
|
|
9183
9305
|
if (!group.activePanel && group.panels.length > 0) {
|
|
9184
9306
|
group.model.openPanel(group.panels[group.panels.length - 1], {
|
|
@@ -9217,7 +9339,9 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
|
|
|
9217
9339
|
setTimeout(() => {
|
|
9218
9340
|
this.addPopoutGroup(group, {
|
|
9219
9341
|
position: position !== null && position !== void 0 ? position : undefined,
|
|
9220
|
-
overridePopoutGroup: gridReferenceGroup
|
|
9342
|
+
overridePopoutGroup: gridReferenceGroup
|
|
9343
|
+
? group
|
|
9344
|
+
: undefined,
|
|
9221
9345
|
referenceGroup: gridReferenceGroup
|
|
9222
9346
|
? this.getPanel(gridReferenceGroup)
|
|
9223
9347
|
: undefined,
|
|
@@ -9303,11 +9427,11 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
|
|
|
9303
9427
|
addPanel(options) {
|
|
9304
9428
|
var _a, _b;
|
|
9305
9429
|
if (this.panels.find((_) => _.id === options.id)) {
|
|
9306
|
-
throw new Error(`panel with id ${options.id} already exists`);
|
|
9430
|
+
throw new Error(`dockview: panel with id ${options.id} already exists`);
|
|
9307
9431
|
}
|
|
9308
9432
|
let referenceGroup;
|
|
9309
9433
|
if (options.position && options.floating) {
|
|
9310
|
-
throw new Error('you can only provide one of: position, floating as arguments to .addPanel(...)');
|
|
9434
|
+
throw new Error('dockview: you can only provide one of: position, floating as arguments to .addPanel(...)');
|
|
9311
9435
|
}
|
|
9312
9436
|
const initial = {
|
|
9313
9437
|
width: options.initialWidth,
|
|
@@ -9321,7 +9445,7 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
|
|
|
9321
9445
|
: options.position.referencePanel;
|
|
9322
9446
|
index = options.position.index;
|
|
9323
9447
|
if (!referencePanel) {
|
|
9324
|
-
throw new Error(`referencePanel '${options.position.referencePanel}' does not exist`);
|
|
9448
|
+
throw new Error(`dockview: referencePanel '${options.position.referencePanel}' does not exist`);
|
|
9325
9449
|
}
|
|
9326
9450
|
referenceGroup = this.findGroup(referencePanel);
|
|
9327
9451
|
}
|
|
@@ -9332,7 +9456,7 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
|
|
|
9332
9456
|
: options.position.referenceGroup;
|
|
9333
9457
|
index = options.position.index;
|
|
9334
9458
|
if (!referenceGroup) {
|
|
9335
|
-
throw new Error(`referenceGroup '${options.position.referenceGroup}' does not exist`);
|
|
9459
|
+
throw new Error(`dockview: referenceGroup '${options.position.referenceGroup}' does not exist`);
|
|
9336
9460
|
}
|
|
9337
9461
|
}
|
|
9338
9462
|
else {
|
|
@@ -9444,7 +9568,7 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
|
|
|
9444
9568
|
}) {
|
|
9445
9569
|
const group = panel.group;
|
|
9446
9570
|
if (!group) {
|
|
9447
|
-
throw new Error(`cannot remove panel ${panel.id}. it's missing a group.`);
|
|
9571
|
+
throw new Error(`dockview: cannot remove panel ${panel.id}. it's missing a group.`);
|
|
9448
9572
|
}
|
|
9449
9573
|
group.model.removePanel(panel, {
|
|
9450
9574
|
skipSetActiveGroup: options.skipSetActiveGroup,
|
|
@@ -9493,11 +9617,11 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
|
|
|
9493
9617
|
? this.panels.find((panel) => panel.id === options.referencePanel)
|
|
9494
9618
|
: options.referencePanel;
|
|
9495
9619
|
if (!referencePanel) {
|
|
9496
|
-
throw new Error(`reference panel ${options.referencePanel} does not exist`);
|
|
9620
|
+
throw new Error(`dockview: reference panel ${options.referencePanel} does not exist`);
|
|
9497
9621
|
}
|
|
9498
9622
|
referenceGroup = this.findGroup(referencePanel);
|
|
9499
9623
|
if (!referenceGroup) {
|
|
9500
|
-
throw new Error(`reference group for reference panel ${options.referencePanel} does not exist`);
|
|
9624
|
+
throw new Error(`dockview: reference group for reference panel ${options.referencePanel} does not exist`);
|
|
9501
9625
|
}
|
|
9502
9626
|
}
|
|
9503
9627
|
else if (isGroupOptionsWithGroup(options)) {
|
|
@@ -9506,7 +9630,7 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
|
|
|
9506
9630
|
? (_a = this._groups.get(options.referenceGroup)) === null || _a === void 0 ? void 0 : _a.value
|
|
9507
9631
|
: options.referenceGroup;
|
|
9508
9632
|
if (!referenceGroup) {
|
|
9509
|
-
throw new Error(`reference group ${options.referenceGroup} does not exist`);
|
|
9633
|
+
throw new Error(`dockview: reference group ${options.referenceGroup} does not exist`);
|
|
9510
9634
|
}
|
|
9511
9635
|
}
|
|
9512
9636
|
else {
|
|
@@ -9574,7 +9698,7 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
|
|
|
9574
9698
|
}
|
|
9575
9699
|
return floatingGroup.group;
|
|
9576
9700
|
}
|
|
9577
|
-
throw new Error('failed to find floating group');
|
|
9701
|
+
throw new Error('dockview: failed to find floating group');
|
|
9578
9702
|
}
|
|
9579
9703
|
if (group.api.location.type === 'popout') {
|
|
9580
9704
|
const selectedGroup = this._popoutGroups.find((_) => _.popoutGroup === group);
|
|
@@ -9605,7 +9729,7 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
|
|
|
9605
9729
|
this.updateWatermark();
|
|
9606
9730
|
return selectedGroup.popoutGroup;
|
|
9607
9731
|
}
|
|
9608
|
-
throw new Error('failed to find popout group');
|
|
9732
|
+
throw new Error('dockview: failed to find popout group');
|
|
9609
9733
|
}
|
|
9610
9734
|
const re = super.doRemoveGroup(group, options);
|
|
9611
9735
|
if (!(options === null || options === void 0 ? void 0 : options.skipActive)) {
|
|
@@ -9636,7 +9760,7 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
|
|
|
9636
9760
|
? (_a = this._groups.get(sourceGroupId)) === null || _a === void 0 ? void 0 : _a.value
|
|
9637
9761
|
: undefined;
|
|
9638
9762
|
if (!sourceGroup) {
|
|
9639
|
-
throw new Error(`Failed to find group id ${sourceGroupId}`);
|
|
9763
|
+
throw new Error(`dockview: Failed to find group id ${sourceGroupId}`);
|
|
9640
9764
|
}
|
|
9641
9765
|
if (sourceItemId === undefined) {
|
|
9642
9766
|
/**
|
|
@@ -9661,9 +9785,9 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
|
|
|
9661
9785
|
skipSetActiveGroup: true,
|
|
9662
9786
|
}));
|
|
9663
9787
|
if (!removedPanel) {
|
|
9664
|
-
throw new Error(`No panel with id ${sourceItemId}`);
|
|
9788
|
+
throw new Error(`dockview: No panel with id ${sourceItemId}`);
|
|
9665
9789
|
}
|
|
9666
|
-
if (sourceGroup.model.size === 0) {
|
|
9790
|
+
if (!options.keepEmptyGroups && sourceGroup.model.size === 0) {
|
|
9667
9791
|
// remove the group and do not set a new group as active
|
|
9668
9792
|
this.doRemoveGroup(sourceGroup, { skipActive: true });
|
|
9669
9793
|
}
|
|
@@ -9673,7 +9797,8 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
|
|
|
9673
9797
|
var _a;
|
|
9674
9798
|
return destinationGroup.model.openPanel(removedPanel, {
|
|
9675
9799
|
index: destinationIndex,
|
|
9676
|
-
skipSetActive: ((_a = options.skipSetActive) !== null && _a !== void 0 ? _a : false) &&
|
|
9800
|
+
skipSetActive: ((_a = options.skipSetActive) !== null && _a !== void 0 ? _a : false) &&
|
|
9801
|
+
!isDestinationGroupEmpty,
|
|
9677
9802
|
skipSetGroupActive: true,
|
|
9678
9803
|
});
|
|
9679
9804
|
});
|
|
@@ -9728,7 +9853,9 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
|
|
|
9728
9853
|
}));
|
|
9729
9854
|
this.doRemoveGroup(sourceGroup, { skipActive: true });
|
|
9730
9855
|
const newGroup = this.createGroupAtLocation(targetLocation);
|
|
9731
|
-
this.movingLock(() => newGroup.model.openPanel(removedPanel
|
|
9856
|
+
this.movingLock(() => newGroup.model.openPanel(removedPanel, {
|
|
9857
|
+
skipSetActive: true,
|
|
9858
|
+
}));
|
|
9732
9859
|
this.doSetGroupAndPanelActive(newGroup);
|
|
9733
9860
|
this._onDidMovePanel.fire({
|
|
9734
9861
|
panel: this.getGroupPanel(sourceItemId),
|
|
@@ -9761,7 +9888,7 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
|
|
|
9761
9888
|
skipSetActiveGroup: true,
|
|
9762
9889
|
}));
|
|
9763
9890
|
if (!removedPanel) {
|
|
9764
|
-
throw new Error(`No panel with id ${sourceItemId}`);
|
|
9891
|
+
throw new Error(`dockview: No panel with id ${sourceItemId}`);
|
|
9765
9892
|
}
|
|
9766
9893
|
const dropLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, destinationTarget);
|
|
9767
9894
|
const group = this.createGroupAtLocation(dropLocation);
|
|
@@ -9816,7 +9943,7 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
|
|
|
9816
9943
|
case 'floating': {
|
|
9817
9944
|
const selectedFloatingGroup = this._floatingGroups.find((x) => x.group === from);
|
|
9818
9945
|
if (!selectedFloatingGroup) {
|
|
9819
|
-
throw new Error('failed to find floating group');
|
|
9946
|
+
throw new Error('dockview: failed to find floating group');
|
|
9820
9947
|
}
|
|
9821
9948
|
selectedFloatingGroup.dispose();
|
|
9822
9949
|
break;
|
|
@@ -9824,7 +9951,7 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
|
|
|
9824
9951
|
case 'popout': {
|
|
9825
9952
|
const selectedPopoutGroup = this._popoutGroups.find((x) => x.popoutGroup === from);
|
|
9826
9953
|
if (!selectedPopoutGroup) {
|
|
9827
|
-
throw new Error('failed to find popout group');
|
|
9954
|
+
throw new Error('dockview: failed to find popout group');
|
|
9828
9955
|
}
|
|
9829
9956
|
// Remove from popout groups list to prevent automatic restoration
|
|
9830
9957
|
const index = this._popoutGroups.indexOf(selectedPopoutGroup);
|
|
@@ -11273,12 +11400,19 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
|
|
|
11273
11400
|
return this._element;
|
|
11274
11401
|
}
|
|
11275
11402
|
init(parameters) {
|
|
11276
|
-
|
|
11403
|
+
// If already initialized, just update the parameters
|
|
11404
|
+
if (this.componentRef) {
|
|
11405
|
+
this.update(parameters);
|
|
11406
|
+
}
|
|
11407
|
+
else {
|
|
11408
|
+
this.render(parameters);
|
|
11409
|
+
}
|
|
11277
11410
|
}
|
|
11278
11411
|
update(params) {
|
|
11279
11412
|
if (this.componentRef) {
|
|
11280
11413
|
Object.keys(params).forEach(key => {
|
|
11281
|
-
|
|
11414
|
+
// Use 'in' operator instead of hasOwnProperty to support getter/setter properties
|
|
11415
|
+
if (key in this.componentRef.instance) {
|
|
11282
11416
|
this.componentRef.instance[key] = params[key];
|
|
11283
11417
|
}
|
|
11284
11418
|
});
|
|
@@ -11294,7 +11428,8 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
|
|
|
11294
11428
|
});
|
|
11295
11429
|
// Set initial parameters
|
|
11296
11430
|
Object.keys(parameters).forEach(key => {
|
|
11297
|
-
|
|
11431
|
+
// Use 'in' operator instead of hasOwnProperty to support getter/setter properties
|
|
11432
|
+
if (key in this.componentRef.instance) {
|
|
11298
11433
|
this.componentRef.instance[key] = parameters[key];
|
|
11299
11434
|
}
|
|
11300
11435
|
});
|
|
@@ -11465,6 +11600,7 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
|
|
|
11465
11600
|
injector: this.injector,
|
|
11466
11601
|
environmentInjector: this.environmentInjector
|
|
11467
11602
|
});
|
|
11603
|
+
// Initialize with empty props - dockview-core will call init() again with actual IGroupHeaderProps
|
|
11468
11604
|
renderer.init({});
|
|
11469
11605
|
return renderer;
|
|
11470
11606
|
}
|
|
@@ -12522,6 +12658,7 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
|
|
|
12522
12658
|
exports.DockviewAngularComponent = __decorate([
|
|
12523
12659
|
core.Component({
|
|
12524
12660
|
selector: 'dv-dockview',
|
|
12661
|
+
standalone: true,
|
|
12525
12662
|
template: '<div #dockviewContainer class="dockview-container"></div>',
|
|
12526
12663
|
styles: [`
|
|
12527
12664
|
:host {
|
|
@@ -12529,7 +12666,7 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
|
|
|
12529
12666
|
width: 100%;
|
|
12530
12667
|
height: 100%;
|
|
12531
12668
|
}
|
|
12532
|
-
|
|
12669
|
+
|
|
12533
12670
|
.dockview-container {
|
|
12534
12671
|
width: 100%;
|
|
12535
12672
|
height: 100%;
|
|
@@ -12645,6 +12782,7 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
|
|
|
12645
12782
|
exports.GridviewAngularComponent = __decorate([
|
|
12646
12783
|
core.Component({
|
|
12647
12784
|
selector: 'dv-gridview',
|
|
12785
|
+
standalone: true,
|
|
12648
12786
|
template: '<div #gridviewContainer class="gridview-container"></div>',
|
|
12649
12787
|
styles: [`
|
|
12650
12788
|
:host {
|
|
@@ -12652,7 +12790,7 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
|
|
|
12652
12790
|
width: 100%;
|
|
12653
12791
|
height: 100%;
|
|
12654
12792
|
}
|
|
12655
|
-
|
|
12793
|
+
|
|
12656
12794
|
.gridview-container {
|
|
12657
12795
|
width: 100%;
|
|
12658
12796
|
height: 100%;
|
|
@@ -12793,6 +12931,7 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
|
|
|
12793
12931
|
exports.PaneviewAngularComponent = __decorate([
|
|
12794
12932
|
core.Component({
|
|
12795
12933
|
selector: 'dv-paneview',
|
|
12934
|
+
standalone: true,
|
|
12796
12935
|
template: '<div #paneviewContainer class="paneview-container"></div>',
|
|
12797
12936
|
styles: [`
|
|
12798
12937
|
:host {
|
|
@@ -12800,7 +12939,7 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
|
|
|
12800
12939
|
width: 100%;
|
|
12801
12940
|
height: 100%;
|
|
12802
12941
|
}
|
|
12803
|
-
|
|
12942
|
+
|
|
12804
12943
|
.paneview-container {
|
|
12805
12944
|
width: 100%;
|
|
12806
12945
|
height: 100%;
|
|
@@ -12916,6 +13055,7 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
|
|
|
12916
13055
|
exports.SplitviewAngularComponent = __decorate([
|
|
12917
13056
|
core.Component({
|
|
12918
13057
|
selector: 'dv-splitview',
|
|
13058
|
+
standalone: true,
|
|
12919
13059
|
template: '<div #splitviewContainer class="splitview-container"></div>',
|
|
12920
13060
|
styles: [`
|
|
12921
13061
|
:host {
|
|
@@ -12923,7 +13063,7 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
|
|
|
12923
13063
|
width: 100%;
|
|
12924
13064
|
height: 100%;
|
|
12925
13065
|
}
|
|
12926
|
-
|
|
13066
|
+
|
|
12927
13067
|
.splitview-container {
|
|
12928
13068
|
width: 100%;
|
|
12929
13069
|
height: 100%;
|
|
@@ -12937,15 +13077,13 @@ define(['exports', '@angular/core', '@angular/common', 'rxjs'], (function (expor
|
|
|
12937
13077
|
};
|
|
12938
13078
|
exports.DockviewAngularModule = __decorate([
|
|
12939
13079
|
core.NgModule({
|
|
12940
|
-
|
|
13080
|
+
imports: [
|
|
13081
|
+
common.CommonModule,
|
|
12941
13082
|
exports.DockviewAngularComponent,
|
|
12942
13083
|
exports.GridviewAngularComponent,
|
|
12943
13084
|
exports.PaneviewAngularComponent,
|
|
12944
13085
|
exports.SplitviewAngularComponent
|
|
12945
13086
|
],
|
|
12946
|
-
imports: [
|
|
12947
|
-
common.CommonModule
|
|
12948
|
-
],
|
|
12949
13087
|
exports: [
|
|
12950
13088
|
exports.DockviewAngularComponent,
|
|
12951
13089
|
exports.GridviewAngularComponent,
|