dockview-core 3.0.1 → 3.0.2

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.
Files changed (47) hide show
  1. package/dist/cjs/dockview/dockviewComponent.d.ts +1 -1
  2. package/dist/cjs/dockview/dockviewComponent.js +12 -2
  3. package/dist/cjs/gridview/baseComponentGridview.d.ts +1 -1
  4. package/dist/cjs/gridview/baseComponentGridview.js +4 -2
  5. package/dist/cjs/gridview/gridviewComponent.d.ts +1 -1
  6. package/dist/cjs/gridview/gridviewComponent.js +2 -2
  7. package/dist/cjs/paneview/paneviewComponent.d.ts +1 -1
  8. package/dist/cjs/paneview/paneviewComponent.js +6 -2
  9. package/dist/cjs/splitview/splitview.d.ts +1 -1
  10. package/dist/cjs/splitview/splitview.js +3 -3
  11. package/dist/cjs/splitview/splitviewComponent.d.ts +1 -1
  12. package/dist/cjs/splitview/splitviewComponent.js +6 -2
  13. package/dist/dockview-core.amd.js +34 -14
  14. package/dist/dockview-core.amd.js.map +1 -1
  15. package/dist/dockview-core.amd.min.js +2 -2
  16. package/dist/dockview-core.amd.min.js.map +1 -1
  17. package/dist/dockview-core.amd.min.noStyle.js +2 -2
  18. package/dist/dockview-core.amd.min.noStyle.js.map +1 -1
  19. package/dist/dockview-core.amd.noStyle.js +34 -14
  20. package/dist/dockview-core.amd.noStyle.js.map +1 -1
  21. package/dist/dockview-core.cjs.js +34 -14
  22. package/dist/dockview-core.cjs.js.map +1 -1
  23. package/dist/dockview-core.esm.js +34 -14
  24. package/dist/dockview-core.esm.js.map +1 -1
  25. package/dist/dockview-core.esm.min.js +2 -2
  26. package/dist/dockview-core.esm.min.js.map +1 -1
  27. package/dist/dockview-core.js +34 -14
  28. package/dist/dockview-core.js.map +1 -1
  29. package/dist/dockview-core.min.js +2 -2
  30. package/dist/dockview-core.min.js.map +1 -1
  31. package/dist/dockview-core.min.noStyle.js +2 -2
  32. package/dist/dockview-core.min.noStyle.js.map +1 -1
  33. package/dist/dockview-core.noStyle.js +34 -14
  34. package/dist/dockview-core.noStyle.js.map +1 -1
  35. package/dist/esm/dockview/dockviewComponent.d.ts +1 -1
  36. package/dist/esm/dockview/dockviewComponent.js +12 -2
  37. package/dist/esm/gridview/baseComponentGridview.d.ts +1 -1
  38. package/dist/esm/gridview/baseComponentGridview.js +4 -2
  39. package/dist/esm/gridview/gridviewComponent.d.ts +1 -1
  40. package/dist/esm/gridview/gridviewComponent.js +2 -2
  41. package/dist/esm/paneview/paneviewComponent.d.ts +1 -1
  42. package/dist/esm/paneview/paneviewComponent.js +6 -2
  43. package/dist/esm/splitview/splitview.d.ts +1 -1
  44. package/dist/esm/splitview/splitview.js +3 -3
  45. package/dist/esm/splitview/splitviewComponent.d.ts +1 -1
  46. package/dist/esm/splitview/splitviewComponent.js +6 -2
  47. package/package.json +1 -1
@@ -207,7 +207,7 @@ export declare class DockviewComponent extends BaseGrid<DockviewGroupPanel> impl
207
207
  get api(): DockviewApi;
208
208
  get gap(): number;
209
209
  get floatingGroups(): DockviewFloatingGroupPanel[];
210
- constructor(parentElement: HTMLElement, options: DockviewComponentOptions);
210
+ constructor(container: HTMLElement, options: DockviewComponentOptions);
211
211
  setVisible(panel: DockviewGroupPanel, visible: boolean): void;
212
212
  addPopoutGroup(itemToPopout: DockviewPanel | DockviewGroupPanel, options?: DockviewPopoutGroupOptions): Promise<boolean>;
213
213
  addFloatingGroup(item: DockviewPanel | DockviewGroupPanel, options?: FloatingGroupOptionsInternal): void;
@@ -107,9 +107,9 @@ function moveGroupWithoutDestroying(options) {
107
107
  }
108
108
  var DockviewComponent = /** @class */ (function (_super) {
109
109
  __extends(DockviewComponent, _super);
110
- function DockviewComponent(parentElement, options) {
110
+ function DockviewComponent(container, options) {
111
111
  var _a;
112
- var _this = _super.call(this, parentElement, {
112
+ var _this = _super.call(this, container, {
113
113
  proportionalLayout: true,
114
114
  orientation: splitview_1.Orientation.HORIZONTAL,
115
115
  styles: options.hideBorders
@@ -562,6 +562,16 @@ var DockviewComponent = /** @class */ (function (_super) {
562
562
  group.model.renderContainer =
563
563
  _this.overlayRenderContainer;
564
564
  returnedGroup = group;
565
+ var alreadyRemoved = !_this._popoutGroups.find(function (p) { return p.popoutGroup === group; });
566
+ if (alreadyRemoved) {
567
+ /**
568
+ * If this popout group was explicitly removed then we shouldn't run the additional
569
+ * steps. To tell if the running of this disposable is the result of this popout group
570
+ * being explicitly removed we can check if this popout group is still referenced in
571
+ * the `this._popoutGroups` list.
572
+ */
573
+ return;
574
+ }
565
575
  if (floatingBox) {
566
576
  _this.addFloatingGroup(group, {
567
577
  height: floatingBox.height,
@@ -81,7 +81,7 @@ export declare abstract class BaseGrid<T extends IGridPanelView> extends Resizab
81
81
  get activeGroup(): T | undefined;
82
82
  get locked(): boolean;
83
83
  set locked(value: boolean);
84
- constructor(parentElement: HTMLElement, options: BaseGridOptions);
84
+ constructor(container: HTMLElement, options: BaseGridOptions);
85
85
  abstract toJSON(): object;
86
86
  abstract fromJSON(data: any): void;
87
87
  abstract clear(): void;
@@ -53,9 +53,9 @@ function toTarget(direction) {
53
53
  exports.toTarget = toTarget;
54
54
  var BaseGrid = /** @class */ (function (_super) {
55
55
  __extends(BaseGrid, _super);
56
- function BaseGrid(parentElement, options) {
56
+ function BaseGrid(container, options) {
57
57
  var _a;
58
- var _this = _super.call(this, parentElement, options.disableAutoResizing) || this;
58
+ var _this = _super.call(this, document.createElement('div'), options.disableAutoResizing) || this;
59
59
  _this._id = nextLayoutId.next();
60
60
  _this._groups = new Map();
61
61
  _this._onDidRemove = new events_1.Emitter();
@@ -74,6 +74,8 @@ var BaseGrid = /** @class */ (function (_super) {
74
74
  _this.element.style.width = '100%';
75
75
  _this._classNames = new dom_1.Classnames(_this.element);
76
76
  _this._classNames.setClassNames((_a = options.className) !== null && _a !== void 0 ? _a : '');
77
+ // the container is owned by the third-party, do not modify/delete it
78
+ container.appendChild(_this.element);
77
79
  _this.gridview = new gridview_1.Gridview(!!options.proportionalLayout, options.styles, options.orientation, options.locked, options.margin);
78
80
  _this.gridview.locked = !!options.locked;
79
81
  _this.element.appendChild(_this.gridview.element);
@@ -61,7 +61,7 @@ export declare class GridviewComponent extends BaseGrid<GridviewPanel> implement
61
61
  get options(): GridviewComponentOptions;
62
62
  get deserializer(): IPanelDeserializer | undefined;
63
63
  set deserializer(value: IPanelDeserializer | undefined);
64
- constructor(parentElement: HTMLElement, options: GridviewComponentOptions);
64
+ constructor(container: HTMLElement, options: GridviewComponentOptions);
65
65
  updateOptions(options: Partial<GridviewComponentOptions>): void;
66
66
  removePanel(panel: GridviewPanel): void;
67
67
  /**
@@ -61,9 +61,9 @@ var baseComponentGridview_1 = require("./baseComponentGridview");
61
61
  var events_1 = require("../events");
62
62
  var GridviewComponent = /** @class */ (function (_super) {
63
63
  __extends(GridviewComponent, _super);
64
- function GridviewComponent(parentElement, options) {
64
+ function GridviewComponent(container, options) {
65
65
  var _a;
66
- var _this = _super.call(this, parentElement, {
66
+ var _this = _super.call(this, container, {
67
67
  proportionalLayout: (_a = options.proportionalLayout) !== null && _a !== void 0 ? _a : true,
68
68
  orientation: options.orientation,
69
69
  styles: options.hideBorders
@@ -110,7 +110,7 @@ export declare class PaneviewComponent extends Resizable implements IPaneviewCom
110
110
  get height(): number;
111
111
  get width(): number;
112
112
  get options(): PaneviewComponentOptions;
113
- constructor(parentElement: HTMLElement, options: PaneviewComponentOptions);
113
+ constructor(container: HTMLElement, options: PaneviewComponentOptions);
114
114
  setVisible(panel: PaneviewPanel, visible: boolean): void;
115
115
  focus(): void;
116
116
  updateOptions(options: Partial<PaneviewComponentOptions>): void;
@@ -83,9 +83,9 @@ var PaneFramework = /** @class */ (function (_super) {
83
83
  exports.PaneFramework = PaneFramework;
84
84
  var PaneviewComponent = /** @class */ (function (_super) {
85
85
  __extends(PaneviewComponent, _super);
86
- function PaneviewComponent(parentElement, options) {
86
+ function PaneviewComponent(container, options) {
87
87
  var _a;
88
- var _this = _super.call(this, parentElement, options.disableAutoResizing) || this;
88
+ var _this = _super.call(this, document.createElement('div'), options.disableAutoResizing) || this;
89
89
  _this._id = nextLayoutId.next();
90
90
  _this._disposable = new lifecycle_1.MutableDisposable();
91
91
  _this._viewDisposables = new Map();
@@ -101,9 +101,13 @@ var PaneviewComponent = /** @class */ (function (_super) {
101
101
  _this.onDidRemoveView = _this._onDidRemoveView.event;
102
102
  _this._onUnhandledDragOverEvent = new events_1.Emitter();
103
103
  _this.onUnhandledDragOverEvent = _this._onUnhandledDragOverEvent.event;
104
+ _this.element.style.height = '100%';
105
+ _this.element.style.width = '100%';
104
106
  _this.addDisposables(_this._onDidLayoutChange, _this._onDidLayoutfromJSON, _this._onDidDrop, _this._onDidAddView, _this._onDidRemoveView, _this._onUnhandledDragOverEvent);
105
107
  _this._classNames = new dom_1.Classnames(_this.element);
106
108
  _this._classNames.setClassNames((_a = options.className) !== null && _a !== void 0 ? _a : '');
109
+ // the container is owned by the third-party, do not modify/delete it
110
+ container.appendChild(_this.element);
107
111
  _this._options = options;
108
112
  _this.paneview = new paneview_1.Paneview(_this.element, {
109
113
  // only allow paneview in the vertical orientation for now
@@ -14,7 +14,7 @@ export interface ISplitviewStyles {
14
14
  separatorBorder: string;
15
15
  }
16
16
  export interface SplitViewOptions {
17
- orientation: Orientation;
17
+ orientation?: Orientation;
18
18
  descriptor?: ISplitViewDescriptor;
19
19
  proportionalLayout?: boolean;
20
20
  styles?: ISplitviewStyles;
@@ -79,7 +79,7 @@ var Sizing;
79
79
  var Splitview = /** @class */ (function () {
80
80
  function Splitview(container, options) {
81
81
  var _this = this;
82
- var _a;
82
+ var _a, _b;
83
83
  this.container = container;
84
84
  this.viewItems = [];
85
85
  this.sashes = [];
@@ -201,9 +201,9 @@ var Splitview = /** @class */ (function () {
201
201
  //
202
202
  return delta;
203
203
  };
204
- this._orientation = options.orientation;
204
+ this._orientation = (_a = options.orientation) !== null && _a !== void 0 ? _a : Orientation.VERTICAL;
205
205
  this.element = this.createContainer();
206
- this.margin = (_a = options.margin) !== null && _a !== void 0 ? _a : 0;
206
+ this.margin = (_b = options.margin) !== null && _b !== void 0 ? _b : 0;
207
207
  this.proportionalLayout =
208
208
  options.proportionalLayout === undefined
209
209
  ? true
@@ -83,7 +83,7 @@ export declare class SplitviewComponent extends Resizable implements ISplitviewC
83
83
  get maximumSize(): number;
84
84
  get height(): number;
85
85
  get width(): number;
86
- constructor(parentElement: HTMLElement, options: SplitviewComponentOptions);
86
+ constructor(container: HTMLElement, options: SplitviewComponentOptions);
87
87
  updateOptions(options: Partial<SplitviewComponentOptions>): void;
88
88
  focus(): void;
89
89
  movePanel(from: number, to: number): void;
@@ -64,9 +64,9 @@ var dom_1 = require("../dom");
64
64
  */
65
65
  var SplitviewComponent = /** @class */ (function (_super) {
66
66
  __extends(SplitviewComponent, _super);
67
- function SplitviewComponent(parentElement, options) {
67
+ function SplitviewComponent(container, options) {
68
68
  var _a;
69
- var _this = _super.call(this, parentElement, options.disableAutoResizing) || this;
69
+ var _this = _super.call(this, document.createElement('div'), options.disableAutoResizing) || this;
70
70
  _this._splitviewChangeDisposable = new lifecycle_1.MutableDisposable();
71
71
  _this._panels = new Map();
72
72
  _this._onDidLayoutfromJSON = new events_1.Emitter();
@@ -77,8 +77,12 @@ var SplitviewComponent = /** @class */ (function (_super) {
77
77
  _this.onDidRemoveView = _this._onDidRemoveView.event;
78
78
  _this._onDidLayoutChange = new events_1.Emitter();
79
79
  _this.onDidLayoutChange = _this._onDidLayoutChange.event;
80
+ _this.element.style.height = '100%';
81
+ _this.element.style.width = '100%';
80
82
  _this._classNames = new dom_1.Classnames(_this.element);
81
83
  _this._classNames.setClassNames((_a = options.className) !== null && _a !== void 0 ? _a : '');
84
+ // the container is owned by the third-party, do not modify/delete it
85
+ container.appendChild(_this.element);
82
86
  _this._options = options;
83
87
  _this.splitview = new splitview_1.Splitview(_this.element, options);
84
88
  _this.addDisposables(_this._onDidAddView, _this._onDidLayoutfromJSON, _this._onDidRemoveView, _this._onDidLayoutChange);
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * dockview-core
3
- * @version 3.0.1
3
+ * @version 3.0.2
4
4
  * @link https://github.com/mathuo/dockview
5
5
  * @license MIT
6
6
  */
@@ -880,7 +880,7 @@ define(['exports'], (function (exports) { 'use strict';
880
880
  this._margin = value;
881
881
  }
882
882
  constructor(container, options) {
883
- var _a;
883
+ var _a, _b;
884
884
  this.container = container;
885
885
  this.viewItems = [];
886
886
  this.sashes = [];
@@ -978,9 +978,9 @@ define(['exports'], (function (exports) { 'use strict';
978
978
  //
979
979
  return delta;
980
980
  };
981
- this._orientation = options.orientation;
981
+ this._orientation = (_a = options.orientation) !== null && _a !== void 0 ? _a : exports.Orientation.VERTICAL;
982
982
  this.element = this.createContainer();
983
- this.margin = (_a = options.margin) !== null && _a !== void 0 ? _a : 0;
983
+ this.margin = (_b = options.margin) !== null && _b !== void 0 ? _b : 0;
984
984
  this.proportionalLayout =
985
985
  options.proportionalLayout === undefined
986
986
  ? true
@@ -2799,9 +2799,9 @@ define(['exports'], (function (exports) { 'use strict';
2799
2799
  set locked(value) {
2800
2800
  this.gridview.locked = value;
2801
2801
  }
2802
- constructor(parentElement, options) {
2802
+ constructor(container, options) {
2803
2803
  var _a;
2804
- super(parentElement, options.disableAutoResizing);
2804
+ super(document.createElement('div'), options.disableAutoResizing);
2805
2805
  this._id = nextLayoutId$1.next();
2806
2806
  this._groups = new Map();
2807
2807
  this._onDidRemove = new Emitter();
@@ -2820,6 +2820,8 @@ define(['exports'], (function (exports) { 'use strict';
2820
2820
  this.element.style.width = '100%';
2821
2821
  this._classNames = new Classnames(this.element);
2822
2822
  this._classNames.setClassNames((_a = options.className) !== null && _a !== void 0 ? _a : '');
2823
+ // the container is owned by the third-party, do not modify/delete it
2824
+ container.appendChild(this.element);
2823
2825
  this.gridview = new Gridview(!!options.proportionalLayout, options.styles, options.orientation, options.locked, options.margin);
2824
2826
  this.gridview.locked = !!options.locked;
2825
2827
  this.element.appendChild(this.gridview.element);
@@ -7539,9 +7541,9 @@ define(['exports'], (function (exports) { 'use strict';
7539
7541
  get floatingGroups() {
7540
7542
  return this._floatingGroups;
7541
7543
  }
7542
- constructor(parentElement, options) {
7544
+ constructor(container, options) {
7543
7545
  var _a;
7544
- super(parentElement, {
7546
+ super(container, {
7545
7547
  proportionalLayout: true,
7546
7548
  orientation: exports.Orientation.HORIZONTAL,
7547
7549
  styles: options.hideBorders
@@ -7897,6 +7899,16 @@ define(['exports'], (function (exports) { 'use strict';
7897
7899
  group.model.renderContainer =
7898
7900
  this.overlayRenderContainer;
7899
7901
  returnedGroup = group;
7902
+ const alreadyRemoved = !this._popoutGroups.find((p) => p.popoutGroup === group);
7903
+ if (alreadyRemoved) {
7904
+ /**
7905
+ * If this popout group was explicitly removed then we shouldn't run the additional
7906
+ * steps. To tell if the running of this disposable is the result of this popout group
7907
+ * being explicitly removed we can check if this popout group is still referenced in
7908
+ * the `this._popoutGroups` list.
7909
+ */
7910
+ return;
7911
+ }
7900
7912
  if (floatingBox) {
7901
7913
  this.addFloatingGroup(group, {
7902
7914
  height: floatingBox.height,
@@ -9073,9 +9085,9 @@ define(['exports'], (function (exports) { 'use strict';
9073
9085
  set deserializer(value) {
9074
9086
  this._deserializer = value;
9075
9087
  }
9076
- constructor(parentElement, options) {
9088
+ constructor(container, options) {
9077
9089
  var _a;
9078
- super(parentElement, {
9090
+ super(container, {
9079
9091
  proportionalLayout: (_a = options.proportionalLayout) !== null && _a !== void 0 ? _a : true,
9080
9092
  orientation: options.orientation,
9081
9093
  styles: options.hideBorders
@@ -9364,9 +9376,9 @@ define(['exports'], (function (exports) { 'use strict';
9364
9376
  ? this.splitview.size
9365
9377
  : this.splitview.orthogonalSize;
9366
9378
  }
9367
- constructor(parentElement, options) {
9379
+ constructor(container, options) {
9368
9380
  var _a;
9369
- super(parentElement, options.disableAutoResizing);
9381
+ super(document.createElement('div'), options.disableAutoResizing);
9370
9382
  this._splitviewChangeDisposable = new MutableDisposable();
9371
9383
  this._panels = new Map();
9372
9384
  this._onDidLayoutfromJSON = new Emitter();
@@ -9377,8 +9389,12 @@ define(['exports'], (function (exports) { 'use strict';
9377
9389
  this.onDidRemoveView = this._onDidRemoveView.event;
9378
9390
  this._onDidLayoutChange = new Emitter();
9379
9391
  this.onDidLayoutChange = this._onDidLayoutChange.event;
9392
+ this.element.style.height = '100%';
9393
+ this.element.style.width = '100%';
9380
9394
  this._classNames = new Classnames(this.element);
9381
9395
  this._classNames.setClassNames((_a = options.className) !== null && _a !== void 0 ? _a : '');
9396
+ // the container is owned by the third-party, do not modify/delete it
9397
+ container.appendChild(this.element);
9382
9398
  this._options = options;
9383
9399
  this.splitview = new Splitview(this.element, options);
9384
9400
  this.addDisposables(this._onDidAddView, this._onDidLayoutfromJSON, this._onDidRemoveView, this._onDidLayoutChange);
@@ -9688,9 +9704,9 @@ define(['exports'], (function (exports) { 'use strict';
9688
9704
  get options() {
9689
9705
  return this._options;
9690
9706
  }
9691
- constructor(parentElement, options) {
9707
+ constructor(container, options) {
9692
9708
  var _a;
9693
- super(parentElement, options.disableAutoResizing);
9709
+ super(document.createElement('div'), options.disableAutoResizing);
9694
9710
  this._id = nextLayoutId.next();
9695
9711
  this._disposable = new MutableDisposable();
9696
9712
  this._viewDisposables = new Map();
@@ -9706,9 +9722,13 @@ define(['exports'], (function (exports) { 'use strict';
9706
9722
  this.onDidRemoveView = this._onDidRemoveView.event;
9707
9723
  this._onUnhandledDragOverEvent = new Emitter();
9708
9724
  this.onUnhandledDragOverEvent = this._onUnhandledDragOverEvent.event;
9725
+ this.element.style.height = '100%';
9726
+ this.element.style.width = '100%';
9709
9727
  this.addDisposables(this._onDidLayoutChange, this._onDidLayoutfromJSON, this._onDidDrop, this._onDidAddView, this._onDidRemoveView, this._onUnhandledDragOverEvent);
9710
9728
  this._classNames = new Classnames(this.element);
9711
9729
  this._classNames.setClassNames((_a = options.className) !== null && _a !== void 0 ? _a : '');
9730
+ // the container is owned by the third-party, do not modify/delete it
9731
+ container.appendChild(this.element);
9712
9732
  this._options = options;
9713
9733
  this.paneview = new Paneview(this.element, {
9714
9734
  // only allow paneview in the vertical orientation for now