dockview-core 1.17.2 → 2.1.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.
Files changed (132) hide show
  1. package/dist/cjs/api/component.api.d.ts +3 -3
  2. package/dist/cjs/api/dockviewGroupPanelApi.d.ts +10 -8
  3. package/dist/cjs/api/dockviewGroupPanelApi.js +1 -0
  4. package/dist/cjs/api/dockviewPanelApi.d.ts +6 -14
  5. package/dist/cjs/api/dockviewPanelApi.js +5 -3
  6. package/dist/cjs/dnd/abstractDragHandler.js +1 -1
  7. package/dist/cjs/dnd/dnd.d.ts +2 -2
  8. package/dist/cjs/dnd/droptarget.js +4 -4
  9. package/dist/cjs/dockview/components/panel/content.d.ts +2 -2
  10. package/dist/cjs/dockview/components/panel/content.js +3 -1
  11. package/dist/cjs/dockview/components/tab/defaultTab.d.ts +3 -3
  12. package/dist/cjs/dockview/components/tab/tab.js +4 -4
  13. package/dist/cjs/dockview/components/titlebar/tabsContainer.js +5 -9
  14. package/dist/cjs/dockview/components/titlebar/voidContainer.js +1 -2
  15. package/dist/cjs/dockview/components/watermark/watermark.d.ts +1 -4
  16. package/dist/cjs/dockview/components/watermark/watermark.js +2 -34
  17. package/dist/cjs/dockview/dockviewComponent.d.ts +33 -16
  18. package/dist/cjs/dockview/dockviewComponent.js +103 -38
  19. package/dist/cjs/dockview/dockviewGroupPanel.js +16 -12
  20. package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +4 -3
  21. package/dist/cjs/dockview/dockviewGroupPanelModel.js +10 -10
  22. package/dist/cjs/dockview/dockviewPanel.d.ts +4 -4
  23. package/dist/cjs/dockview/dockviewPanelModel.d.ts +1 -1
  24. package/dist/cjs/dockview/options.d.ts +12 -0
  25. package/dist/cjs/dockview/options.js +1 -0
  26. package/dist/cjs/dom.d.ts +11 -1
  27. package/dist/cjs/dom.js +19 -1
  28. package/dist/cjs/gridview/baseComponentGridview.d.ts +8 -3
  29. package/dist/cjs/gridview/baseComponentGridview.js +8 -8
  30. package/dist/cjs/gridview/basePanelView.d.ts +1 -1
  31. package/dist/cjs/gridview/branchNode.d.ts +1 -1
  32. package/dist/cjs/gridview/branchNode.js +1 -1
  33. package/dist/cjs/gridview/gridview.d.ts +9 -1
  34. package/dist/cjs/gridview/gridview.js +51 -7
  35. package/dist/cjs/gridview/gridviewPanel.d.ts +4 -0
  36. package/dist/cjs/gridview/gridviewPanel.js +60 -32
  37. package/dist/cjs/gridview/leafNode.d.ts +1 -1
  38. package/dist/cjs/index.d.ts +8 -9
  39. package/dist/cjs/index.js +14 -7
  40. package/dist/cjs/overlay/overlay.d.ts +6 -3
  41. package/dist/cjs/overlay/overlay.js +15 -0
  42. package/dist/cjs/paneview/defaultPaneviewHeader.d.ts +1 -1
  43. package/dist/cjs/paneview/defaultPaneviewHeader.js +5 -3
  44. package/dist/cjs/paneview/paneview.d.ts +3 -3
  45. package/dist/cjs/paneview/paneview.js +3 -3
  46. package/dist/cjs/paneview/paneviewComponent.d.ts +2 -2
  47. package/dist/cjs/paneview/paneviewPanel.d.ts +2 -2
  48. package/dist/cjs/paneview/paneviewPanel.js +3 -3
  49. package/dist/cjs/popoutWindow.js +23 -16
  50. package/dist/cjs/splitview/splitview.d.ts +6 -6
  51. package/dist/cjs/splitview/splitview.js +18 -17
  52. package/dist/cjs/splitview/splitviewComponent.d.ts +2 -2
  53. package/dist/cjs/splitview/viewItem.d.ts +1 -1
  54. package/dist/cjs/svg.js +1 -1
  55. package/dist/dockview-core.amd.js +346 -210
  56. package/dist/dockview-core.amd.js.map +1 -1
  57. package/dist/dockview-core.amd.min.js +2 -2
  58. package/dist/dockview-core.amd.min.js.map +1 -1
  59. package/dist/dockview-core.amd.min.noStyle.js +2 -2
  60. package/dist/dockview-core.amd.min.noStyle.js.map +1 -1
  61. package/dist/dockview-core.amd.noStyle.js +345 -209
  62. package/dist/dockview-core.amd.noStyle.js.map +1 -1
  63. package/dist/dockview-core.cjs.js +346 -210
  64. package/dist/dockview-core.cjs.js.map +1 -1
  65. package/dist/dockview-core.esm.js +347 -209
  66. package/dist/dockview-core.esm.js.map +1 -1
  67. package/dist/dockview-core.esm.min.js +2 -2
  68. package/dist/dockview-core.esm.min.js.map +1 -1
  69. package/dist/dockview-core.js +346 -210
  70. package/dist/dockview-core.js.map +1 -1
  71. package/dist/dockview-core.min.js +2 -2
  72. package/dist/dockview-core.min.js.map +1 -1
  73. package/dist/dockview-core.min.noStyle.js +2 -2
  74. package/dist/dockview-core.min.noStyle.js.map +1 -1
  75. package/dist/dockview-core.noStyle.js +345 -209
  76. package/dist/dockview-core.noStyle.js.map +1 -1
  77. package/dist/esm/api/component.api.d.ts +3 -3
  78. package/dist/esm/api/dockviewGroupPanelApi.d.ts +10 -8
  79. package/dist/esm/api/dockviewGroupPanelApi.js +1 -0
  80. package/dist/esm/api/dockviewPanelApi.d.ts +6 -14
  81. package/dist/esm/api/dockviewPanelApi.js +5 -3
  82. package/dist/esm/dnd/abstractDragHandler.js +1 -1
  83. package/dist/esm/dnd/dnd.d.ts +2 -2
  84. package/dist/esm/dnd/droptarget.js +4 -4
  85. package/dist/esm/dockview/components/panel/content.d.ts +2 -2
  86. package/dist/esm/dockview/components/panel/content.js +4 -2
  87. package/dist/esm/dockview/components/tab/defaultTab.d.ts +3 -3
  88. package/dist/esm/dockview/components/tab/tab.js +4 -4
  89. package/dist/esm/dockview/components/titlebar/tabsContainer.js +5 -9
  90. package/dist/esm/dockview/components/titlebar/voidContainer.js +1 -2
  91. package/dist/esm/dockview/components/watermark/watermark.d.ts +1 -4
  92. package/dist/esm/dockview/components/watermark/watermark.js +2 -34
  93. package/dist/esm/dockview/dockviewComponent.d.ts +33 -16
  94. package/dist/esm/dockview/dockviewComponent.js +102 -37
  95. package/dist/esm/dockview/dockviewGroupPanel.js +16 -12
  96. package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +4 -3
  97. package/dist/esm/dockview/dockviewGroupPanelModel.js +10 -10
  98. package/dist/esm/dockview/dockviewPanel.d.ts +4 -4
  99. package/dist/esm/dockview/dockviewPanelModel.d.ts +1 -1
  100. package/dist/esm/dockview/options.d.ts +12 -0
  101. package/dist/esm/dockview/options.js +1 -0
  102. package/dist/esm/dom.d.ts +11 -1
  103. package/dist/esm/dom.js +14 -0
  104. package/dist/esm/gridview/baseComponentGridview.d.ts +8 -3
  105. package/dist/esm/gridview/baseComponentGridview.js +8 -4
  106. package/dist/esm/gridview/basePanelView.d.ts +1 -1
  107. package/dist/esm/gridview/branchNode.d.ts +1 -1
  108. package/dist/esm/gridview/branchNode.js +1 -1
  109. package/dist/esm/gridview/gridview.d.ts +9 -1
  110. package/dist/esm/gridview/gridview.js +51 -7
  111. package/dist/esm/gridview/gridviewPanel.d.ts +4 -0
  112. package/dist/esm/gridview/gridviewPanel.js +40 -12
  113. package/dist/esm/gridview/leafNode.d.ts +1 -1
  114. package/dist/esm/index.d.ts +8 -9
  115. package/dist/esm/index.js +5 -6
  116. package/dist/esm/overlay/overlay.d.ts +6 -3
  117. package/dist/esm/overlay/overlay.js +11 -0
  118. package/dist/esm/paneview/defaultPaneviewHeader.d.ts +1 -1
  119. package/dist/esm/paneview/defaultPaneviewHeader.js +5 -3
  120. package/dist/esm/paneview/paneview.d.ts +3 -3
  121. package/dist/esm/paneview/paneview.js +3 -3
  122. package/dist/esm/paneview/paneviewComponent.d.ts +2 -2
  123. package/dist/esm/paneview/paneviewPanel.d.ts +2 -2
  124. package/dist/esm/paneview/paneviewPanel.js +3 -3
  125. package/dist/esm/popoutWindow.js +24 -17
  126. package/dist/esm/splitview/splitview.d.ts +6 -6
  127. package/dist/esm/splitview/splitview.js +18 -17
  128. package/dist/esm/splitview/splitviewComponent.d.ts +2 -2
  129. package/dist/esm/splitview/viewItem.d.ts +1 -1
  130. package/dist/esm/svg.js +1 -1
  131. package/dist/styles/dockview.css +111 -151
  132. package/package.json +1 -1
@@ -8,6 +8,10 @@ import { MovementOptions2 } from '../dockview/options';
8
8
  import { Resizable } from '../resizable';
9
9
  export type Direction = 'left' | 'right' | 'above' | 'below' | 'within';
10
10
  export declare function toTarget(direction: Direction): Position;
11
+ export interface MaximizedChanged<T extends IGridPanelView> {
12
+ panel: T;
13
+ isMaximized: boolean;
14
+ }
11
15
  export interface BaseGridOptions {
12
16
  readonly proportionalLayout: boolean;
13
17
  readonly orientation: Orientation;
@@ -33,6 +37,8 @@ export interface IBaseGrid<T extends IGridPanelView> extends IDisposable {
33
37
  readonly activeGroup: T | undefined;
34
38
  readonly size: number;
35
39
  readonly groups: T[];
40
+ readonly onDidMaximizedChange: Event<MaximizedChanged<T>>;
41
+ readonly onDidLayoutChange: Event<void>;
36
42
  getPanel(id: string): T | undefined;
37
43
  toJSON(): object;
38
44
  fromJSON(data: any): void;
@@ -44,8 +50,6 @@ export interface IBaseGrid<T extends IGridPanelView> extends IDisposable {
44
50
  isMaximizedGroup(panel: T): boolean;
45
51
  exitMaximizedGroup(): void;
46
52
  hasMaximizedGroup(): boolean;
47
- readonly onDidMaximizedGroupChange: Event<void>;
48
- readonly onDidLayoutChange: Event<void>;
49
53
  }
50
54
  export declare abstract class BaseGrid<T extends IGridPanelView> extends Resizable implements IBaseGrid<T> {
51
55
  private readonly _id;
@@ -56,6 +60,8 @@ export declare abstract class BaseGrid<T extends IGridPanelView> extends Resizab
56
60
  readonly onDidRemove: Event<T>;
57
61
  private readonly _onDidAdd;
58
62
  readonly onDidAdd: Event<T>;
63
+ private readonly _onDidMaximizedChange;
64
+ readonly onDidMaximizedChange: Event<MaximizedChanged<T>>;
59
65
  private readonly _onDidActiveChange;
60
66
  readonly onDidActiveChange: Event<T | undefined>;
61
67
  protected readonly _bufferOnDidLayoutChange: AsapEvent;
@@ -86,7 +92,6 @@ export declare abstract class BaseGrid<T extends IGridPanelView> extends Resizab
86
92
  isMaximizedGroup(panel: T): boolean;
87
93
  exitMaximizedGroup(): void;
88
94
  hasMaximizedGroup(): boolean;
89
- get onDidMaximizedGroupChange(): Event<void>;
90
95
  protected doAddGroup(group: T, location?: number[], size?: number): void;
91
96
  protected doRemoveGroup(group: T, options?: {
92
97
  skipActive?: boolean;
@@ -62,6 +62,8 @@ var BaseGrid = /** @class */ (function (_super) {
62
62
  _this.onDidRemove = _this._onDidRemove.event;
63
63
  _this._onDidAdd = new events_1.Emitter();
64
64
  _this.onDidAdd = _this._onDidAdd.event;
65
+ _this._onDidMaximizedChange = new events_1.Emitter();
66
+ _this.onDidMaximizedChange = _this._onDidMaximizedChange.event;
65
67
  _this._onDidActiveChange = new events_1.Emitter();
66
68
  _this.onDidActiveChange = _this._onDidActiveChange.event;
67
69
  _this._bufferOnDidLayoutChange = new events_1.AsapEvent();
@@ -77,7 +79,12 @@ var BaseGrid = /** @class */ (function (_super) {
77
79
  _this.gridview.locked = !!options.locked;
78
80
  _this.element.appendChild(_this.gridview.element);
79
81
  _this.layout(0, 0, true); // set some elements height/widths
80
- _this.addDisposables(_this.gridview.onDidViewVisibilityChange(function () {
82
+ _this.addDisposables(_this.gridview.onDidMaximizedNodeChange(function (event) {
83
+ _this._onDidMaximizedChange.fire({
84
+ panel: event.view,
85
+ isMaximized: event.isMaximized,
86
+ });
87
+ }), _this.gridview.onDidViewVisibilityChange(function () {
81
88
  return _this._onDidViewVisibilityChangeMicroTaskQueue.fire();
82
89
  }), _this.onDidViewVisibilityChangeMicroTaskQueue(function () {
83
90
  _this.layout(_this.width, _this.height, true);
@@ -215,13 +222,6 @@ var BaseGrid = /** @class */ (function (_super) {
215
222
  BaseGrid.prototype.hasMaximizedGroup = function () {
216
223
  return this.gridview.hasMaximizedView();
217
224
  };
218
- Object.defineProperty(BaseGrid.prototype, "onDidMaximizedGroupChange", {
219
- get: function () {
220
- return this.gridview.onDidMaximizedNodeChange;
221
- },
222
- enumerable: false,
223
- configurable: true
224
- });
225
225
  BaseGrid.prototype.doAddGroup = function (group, location, size) {
226
226
  if (location === void 0) { location = [0]; }
227
227
  this.gridview.addView(group, size !== null && size !== void 0 ? size : splitview_1.Sizing.Distribute, location);
@@ -22,7 +22,7 @@ export declare abstract class BasePanelView<T extends PanelApiImpl> extends Comp
22
22
  readonly api: T;
23
23
  private _height;
24
24
  private _width;
25
- private _element;
25
+ private readonly _element;
26
26
  protected part?: IFrameworkPart;
27
27
  protected _params?: PanelInitParameters;
28
28
  protected abstract getComponent(): IFrameworkPart;
@@ -8,7 +8,7 @@ export declare class BranchNode extends CompositeDisposable implements IView {
8
8
  readonly proportionalLayout: boolean;
9
9
  readonly styles: ISplitviewStyles | undefined;
10
10
  readonly element: HTMLElement;
11
- private splitview;
11
+ private readonly splitview;
12
12
  private _orthogonalSize;
13
13
  private _size;
14
14
  private _childrenDisposable;
@@ -65,7 +65,7 @@ var BranchNode = /** @class */ (function (_super) {
65
65
  _this._orthogonalSize = orthogonalSize;
66
66
  _this._size = size;
67
67
  _this.element = document.createElement('div');
68
- _this.element.className = 'branch-node';
68
+ _this.element.className = 'dv-branch-node';
69
69
  if (!childDescriptors) {
70
70
  _this.splitview = new splitview_1.Splitview(_this.element, {
71
71
  orientation: _this.orientation,
@@ -77,11 +77,19 @@ export interface INodeDescriptor {
77
77
  export interface IViewDeserializer {
78
78
  fromJSON: (data: ISerializedLeafNode) => IGridView;
79
79
  }
80
+ export interface SerializedNodeDescriptor {
81
+ location: number[];
82
+ }
80
83
  export interface SerializedGridview<T> {
81
84
  root: SerializedGridObject<T>;
82
85
  width: number;
83
86
  height: number;
84
87
  orientation: Orientation;
88
+ maximizedNode?: SerializedNodeDescriptor;
89
+ }
90
+ export interface MaximizedViewChanged {
91
+ view: IGridView;
92
+ isMaximized: boolean;
85
93
  }
86
94
  export declare class Gridview implements IDisposable {
87
95
  readonly proportionalLayout: boolean;
@@ -100,7 +108,7 @@ export declare class Gridview implements IDisposable {
100
108
  private readonly _onDidViewVisibilityChange;
101
109
  readonly onDidViewVisibilityChange: Event<void>;
102
110
  private readonly _onDidMaximizedNodeChange;
103
- readonly onDidMaximizedNodeChange: Event<void>;
111
+ readonly onDidMaximizedNodeChange: Event<MaximizedViewChanged>;
104
112
  get length(): number;
105
113
  get orientation(): Orientation;
106
114
  set orientation(orientation: Orientation);
@@ -93,7 +93,7 @@ function getGridLocation(element) {
93
93
  if (!parentElement) {
94
94
  throw new Error('Invalid grid element');
95
95
  }
96
- if (/\bgrid-view\b/.test(parentElement.className)) {
96
+ if (/\bdv-grid-view\b/.test(parentElement.className)) {
97
97
  return [];
98
98
  }
99
99
  var index = indexInParent(parentElement);
@@ -176,7 +176,7 @@ var Gridview = /** @class */ (function () {
176
176
  this._onDidMaximizedNodeChange = new events_1.Emitter();
177
177
  this.onDidMaximizedNodeChange = this._onDidMaximizedNodeChange.event;
178
178
  this.element = document.createElement('div');
179
- this.element.className = 'grid-view';
179
+ this.element.className = 'dv-grid-view';
180
180
  this._locked = locked !== null && locked !== void 0 ? locked : false;
181
181
  this._margin = margin !== null && margin !== void 0 ? margin : 0;
182
182
  this.root = new branchNode_1.BranchNode(orientation, proportionalLayout, styles, 0, 0, this.locked, this.margin);
@@ -299,6 +299,7 @@ var Gridview = /** @class */ (function () {
299
299
  if (this.hasMaximizedView()) {
300
300
  this.exitMaximizedView();
301
301
  }
302
+ serializeBranchNode(this.getView(), this.orientation);
302
303
  var hiddenOnMaximize = [];
303
304
  function hideAllViewsBut(parent, exclude) {
304
305
  for (var i = 0; i < parent.children.length; i++) {
@@ -320,7 +321,10 @@ var Gridview = /** @class */ (function () {
320
321
  }
321
322
  hideAllViewsBut(this.root, node);
322
323
  this._maximizedNode = { leaf: node, hiddenOnMaximize: hiddenOnMaximize };
323
- this._onDidMaximizedNodeChange.fire();
324
+ this._onDidMaximizedNodeChange.fire({
325
+ view: node.view,
326
+ isMaximized: true,
327
+ });
324
328
  };
325
329
  Gridview.prototype.exitMaximizedView = function () {
326
330
  if (!this._maximizedNode) {
@@ -341,24 +345,51 @@ var Gridview = /** @class */ (function () {
341
345
  }
342
346
  }
343
347
  showViewsInReverseOrder(this.root);
348
+ var tmp = this._maximizedNode.leaf;
344
349
  this._maximizedNode = undefined;
345
- this._onDidMaximizedNodeChange.fire();
350
+ this._onDidMaximizedNodeChange.fire({
351
+ view: tmp.view,
352
+ isMaximized: false,
353
+ });
346
354
  };
347
355
  Gridview.prototype.serialize = function () {
356
+ var maximizedView = this.maximizedView();
357
+ var maxmizedViewLocation;
358
+ if (maximizedView) {
359
+ /**
360
+ * The minimum information we can get away with in order to serialize a maxmized view is it's location within the grid
361
+ * which is represented as a branch of indices
362
+ */
363
+ maxmizedViewLocation = getGridLocation(maximizedView.element);
364
+ }
348
365
  if (this.hasMaximizedView()) {
349
366
  /**
350
- * do not persist maximized view state
351
- * firstly exit any maximized views to ensure the correct dimensions are persisted
367
+ * the saved layout cannot be in its maxmized state otherwise all of the underlying
368
+ * view dimensions will be wrong
369
+ *
370
+ * To counteract this we temporaily remove the maximized view to compute the serialized output
371
+ * of the grid before adding back the maxmized view as to not alter the layout from the users
372
+ * perspective when `.toJSON()` is called
352
373
  */
353
374
  this.exitMaximizedView();
354
375
  }
355
376
  var root = serializeBranchNode(this.getView(), this.orientation);
356
- return {
377
+ var resullt = {
357
378
  root: root,
358
379
  width: this.width,
359
380
  height: this.height,
360
381
  orientation: this.orientation,
361
382
  };
383
+ if (maxmizedViewLocation) {
384
+ resullt.maximizedNode = {
385
+ location: maxmizedViewLocation,
386
+ };
387
+ }
388
+ if (maximizedView) {
389
+ // replace any maximzied view that was removed for serialization purposes
390
+ this.maximizeView(maximizedView);
391
+ }
392
+ return resullt;
362
393
  };
363
394
  Gridview.prototype.dispose = function () {
364
395
  this.disposable.dispose();
@@ -377,6 +408,19 @@ var Gridview = /** @class */ (function () {
377
408
  var orientation = json.orientation;
378
409
  var height = orientation === splitview_1.Orientation.VERTICAL ? json.height : json.width;
379
410
  this._deserialize(json.root, orientation, deserializer, height);
411
+ /**
412
+ * The deserialied layout must be positioned through this.layout(...)
413
+ * before any maximizedNode can be positioned
414
+ */
415
+ this.layout(json.width, json.height);
416
+ if (json.maximizedNode) {
417
+ var location_1 = json.maximizedNode.location;
418
+ var _a = __read(this.getNode(location_1), 2), _ = _a[0], node = _a[1];
419
+ if (!(node instanceof leafNode_1.LeafNode)) {
420
+ return;
421
+ }
422
+ this.maximizeView(node.view);
423
+ }
380
424
  };
381
425
  Gridview.prototype._deserialize = function (root, orientation, deserializer, orthogonalSize) {
382
426
  this.root = this._deserializeNode(root, orientation, deserializer, orthogonalSize);
@@ -49,6 +49,10 @@ export declare abstract class GridviewPanel<T extends GridviewPanelApiImpl = Gri
49
49
  get minimumHeight(): number;
50
50
  get maximumHeight(): number;
51
51
  get maximumWidth(): number;
52
+ protected __minimumWidth(): number;
53
+ protected __maximumWidth(): number;
54
+ protected __minimumHeight(): number;
55
+ protected __maximumHeight(): number;
52
56
  get isActive(): boolean;
53
57
  get isVisible(): boolean;
54
58
  constructor(id: string, component: string, options?: {
@@ -106,60 +106,88 @@ var GridviewPanel = /** @class */ (function (_super) {
106
106
  });
107
107
  Object.defineProperty(GridviewPanel.prototype, "minimumWidth", {
108
108
  get: function () {
109
- var width = typeof this._minimumWidth === 'function'
110
- ? this._minimumWidth()
111
- : this._minimumWidth;
112
- if (width !== this._evaluatedMinimumWidth) {
113
- this._evaluatedMinimumWidth = width;
114
- this.updateConstraints();
115
- }
116
- return width;
109
+ /**
110
+ * defer to protected function to allow subclasses to override easily.
111
+ * see https://github.com/microsoft/TypeScript/issues/338
112
+ */
113
+ return this.__minimumWidth();
117
114
  },
118
115
  enumerable: false,
119
116
  configurable: true
120
117
  });
121
118
  Object.defineProperty(GridviewPanel.prototype, "minimumHeight", {
122
119
  get: function () {
123
- var height = typeof this._minimumHeight === 'function'
124
- ? this._minimumHeight()
125
- : this._minimumHeight;
126
- if (height !== this._evaluatedMinimumHeight) {
127
- this._evaluatedMinimumHeight = height;
128
- this.updateConstraints();
129
- }
130
- return height;
120
+ /**
121
+ * defer to protected function to allow subclasses to override easily.
122
+ * see https://github.com/microsoft/TypeScript/issues/338
123
+ */
124
+ return this.__minimumHeight();
131
125
  },
132
126
  enumerable: false,
133
127
  configurable: true
134
128
  });
135
129
  Object.defineProperty(GridviewPanel.prototype, "maximumHeight", {
136
130
  get: function () {
137
- var height = typeof this._maximumHeight === 'function'
138
- ? this._maximumHeight()
139
- : this._maximumHeight;
140
- if (height !== this._evaluatedMaximumHeight) {
141
- this._evaluatedMaximumHeight = height;
142
- this.updateConstraints();
143
- }
144
- return height;
131
+ /**
132
+ * defer to protected function to allow subclasses to override easily.
133
+ * see https://github.com/microsoft/TypeScript/issues/338
134
+ */
135
+ return this.__maximumHeight();
145
136
  },
146
137
  enumerable: false,
147
138
  configurable: true
148
139
  });
149
140
  Object.defineProperty(GridviewPanel.prototype, "maximumWidth", {
150
141
  get: function () {
151
- var width = typeof this._maximumWidth === 'function'
152
- ? this._maximumWidth()
153
- : this._maximumWidth;
154
- if (width !== this._evaluatedMaximumWidth) {
155
- this._evaluatedMaximumWidth = width;
156
- this.updateConstraints();
157
- }
158
- return width;
142
+ /**
143
+ * defer to protected function to allow subclasses to override easily.
144
+ * see https://github.com/microsoft/TypeScript/issues/338
145
+ */
146
+ return this.__maximumWidth();
159
147
  },
160
148
  enumerable: false,
161
149
  configurable: true
162
150
  });
151
+ GridviewPanel.prototype.__minimumWidth = function () {
152
+ var width = typeof this._minimumWidth === 'function'
153
+ ? this._minimumWidth()
154
+ : this._minimumWidth;
155
+ if (width !== this._evaluatedMinimumWidth) {
156
+ this._evaluatedMinimumWidth = width;
157
+ this.updateConstraints();
158
+ }
159
+ return width;
160
+ };
161
+ GridviewPanel.prototype.__maximumWidth = function () {
162
+ var width = typeof this._maximumWidth === 'function'
163
+ ? this._maximumWidth()
164
+ : this._maximumWidth;
165
+ if (width !== this._evaluatedMaximumWidth) {
166
+ this._evaluatedMaximumWidth = width;
167
+ this.updateConstraints();
168
+ }
169
+ return width;
170
+ };
171
+ GridviewPanel.prototype.__minimumHeight = function () {
172
+ var height = typeof this._minimumHeight === 'function'
173
+ ? this._minimumHeight()
174
+ : this._minimumHeight;
175
+ if (height !== this._evaluatedMinimumHeight) {
176
+ this._evaluatedMinimumHeight = height;
177
+ this.updateConstraints();
178
+ }
179
+ return height;
180
+ };
181
+ GridviewPanel.prototype.__maximumHeight = function () {
182
+ var height = typeof this._maximumHeight === 'function'
183
+ ? this._maximumHeight()
184
+ : this._maximumHeight;
185
+ if (height !== this._evaluatedMaximumHeight) {
186
+ this._evaluatedMaximumHeight = height;
187
+ this.updateConstraints();
188
+ }
189
+ return height;
190
+ };
163
191
  Object.defineProperty(GridviewPanel.prototype, "isActive", {
164
192
  get: function () {
165
193
  return this.api.isActive;
@@ -11,7 +11,7 @@ export declare class LeafNode implements IView {
11
11
  }>;
12
12
  private _size;
13
13
  private _orthogonalSize;
14
- private _disposable;
14
+ private readonly _disposable;
15
15
  private get minimumWidth();
16
16
  private get maximumWidth();
17
17
  private get minimumHeight();
@@ -1,20 +1,19 @@
1
- export * from './dnd/dataTransfer';
1
+ export { getPaneData, getPanelData, PaneTransfer, PanelTransfer, } from './dnd/dataTransfer';
2
2
  /**
3
3
  * Events, Emitters and Disposables are very common concepts that many codebases will contain, however we need
4
4
  * to export them for dockview framework packages to use.
5
5
  * To be a good citizen these are exported with a `Dockview` prefix to prevent accidental use by others.
6
6
  */
7
7
  export { Emitter as DockviewEmitter, Event as DockviewEvent } from './events';
8
- export { IDisposable as IDockviewDisposable, MutableDisposable as DockviewMutableDisposable, CompositeDisposable as DockviewCompositeDisposable, Disposable as DockviewDisposable, } from './lifecycle';
8
+ export { IDisposable as DockviewIDisposable, MutableDisposable as DockviewMutableDisposable, CompositeDisposable as DockviewCompositeDisposable, Disposable as DockviewDisposable, } from './lifecycle';
9
9
  export * from './panel/types';
10
- export * from './panel/componentFactory';
11
10
  export * from './splitview/splitview';
12
11
  export { SplitviewComponentOptions, PanelViewInitParameters, } from './splitview/options';
13
12
  export * from './paneview/paneview';
14
13
  export * from './gridview/gridview';
15
14
  export { GridviewComponentOptions } from './gridview/options';
16
15
  export * from './gridview/baseComponentGridview';
17
- export * from './paneview/draggablePaneviewPanel';
16
+ export { DraggablePaneviewPanel, PaneviewDropEvent, } from './paneview/draggablePaneviewPanel';
18
17
  export * from './dockview/components/panel/content';
19
18
  export * from './dockview/components/tab/tab';
20
19
  export * from './dockview/dockviewGroupPanelModel';
@@ -24,24 +23,24 @@ export * from './dockview/dockviewGroupPanel';
24
23
  export { IGroupPanelBaseProps, IDockviewPanelHeaderProps, IDockviewPanelProps, IDockviewHeaderActionsProps, IGroupHeaderProps, IWatermarkPanelProps, DockviewReadyEvent, } from './dockview/framework';
25
24
  export * from './dockview/options';
26
25
  export * from './dockview/dockviewPanel';
27
- export * from './dockview/components/tab/defaultTab';
28
- export * from './dockview/deserializer';
26
+ export { DefaultTab } from './dockview/components/tab/defaultTab';
27
+ export { DefaultDockviewDeserialzier, IPanelDeserializer, } from './dockview/deserializer';
29
28
  export * from './dockview/dockviewComponent';
30
29
  export * from './gridview/gridviewComponent';
31
30
  export * from './splitview/splitviewComponent';
32
31
  export * from './paneview/paneviewComponent';
33
32
  export { PaneviewComponentOptions } from './paneview/options';
34
33
  export * from './gridview/gridviewPanel';
35
- export * from './splitview/splitviewPanel';
34
+ export { SplitviewPanel, ISplitviewPanel } from './splitview/splitviewPanel';
36
35
  export * from './paneview/paneviewPanel';
37
36
  export * from './dockview/types';
38
37
  export { DockviewPanelRenderer } from './overlay/overlayRenderContainer';
39
38
  export { Position, positionToDirection, directionToPosition, MeasuredValue, DroptargetOverlayModel, } from './dnd/droptarget';
40
39
  export { FocusEvent, PanelDimensionChangeEvent, VisibilityEvent, ActiveEvent, PanelApi, } from './api/panelApi';
41
40
  export { SizeEvent, GridviewPanelApi, GridConstraintChangeEvent, } from './api/gridviewPanelApi';
42
- export { TitleEvent, RendererChangedEvent, DockviewPanelApi, } from './api/dockviewPanelApi';
41
+ export { TitleEvent, RendererChangedEvent, DockviewPanelApi, DockviewPanelMoveParams, } from './api/dockviewPanelApi';
43
42
  export { PanelSizeEvent, PanelConstraintChangeEvent, SplitviewPanelApi, } from './api/splitviewPanelApi';
44
43
  export { ExpansionEvent, PaneviewPanelApi } from './api/paneviewPanelApi';
45
- export { DockviewGroupPanelApi, DockviewGroupPanelFloatingChangeEvent, } from './api/dockviewGroupPanelApi';
44
+ export { DockviewGroupPanelApi, DockviewGroupPanelFloatingChangeEvent, DockviewGroupMoveParams, } from './api/dockviewGroupPanelApi';
46
45
  export { CommonApi, SplitviewApi, PaneviewApi, GridviewApi, DockviewApi, } from './api/component.api';
47
46
  export { createDockview, createGridview, createPaneview, createSplitview, } from './api/entryPoints';
package/dist/cjs/index.js CHANGED
@@ -14,8 +14,12 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.createSplitview = exports.createPaneview = exports.createGridview = exports.createDockview = exports.DockviewApi = exports.GridviewApi = exports.PaneviewApi = exports.SplitviewApi = exports.directionToPosition = exports.positionToDirection = exports.DockviewDisposable = exports.DockviewCompositeDisposable = exports.DockviewMutableDisposable = exports.DockviewEvent = exports.DockviewEmitter = void 0;
18
- __exportStar(require("./dnd/dataTransfer"), exports);
17
+ exports.createSplitview = exports.createPaneview = exports.createGridview = exports.createDockview = exports.DockviewApi = exports.GridviewApi = exports.PaneviewApi = exports.SplitviewApi = exports.directionToPosition = exports.positionToDirection = exports.SplitviewPanel = exports.DefaultDockviewDeserialzier = exports.DefaultTab = exports.DraggablePaneviewPanel = exports.DockviewDisposable = exports.DockviewCompositeDisposable = exports.DockviewMutableDisposable = exports.DockviewEvent = exports.DockviewEmitter = exports.PanelTransfer = exports.PaneTransfer = exports.getPanelData = exports.getPaneData = void 0;
18
+ var dataTransfer_1 = require("./dnd/dataTransfer");
19
+ Object.defineProperty(exports, "getPaneData", { enumerable: true, get: function () { return dataTransfer_1.getPaneData; } });
20
+ Object.defineProperty(exports, "getPanelData", { enumerable: true, get: function () { return dataTransfer_1.getPanelData; } });
21
+ Object.defineProperty(exports, "PaneTransfer", { enumerable: true, get: function () { return dataTransfer_1.PaneTransfer; } });
22
+ Object.defineProperty(exports, "PanelTransfer", { enumerable: true, get: function () { return dataTransfer_1.PanelTransfer; } });
19
23
  /**
20
24
  * Events, Emitters and Disposables are very common concepts that many codebases will contain, however we need
21
25
  * to export them for dockview framework packages to use.
@@ -29,12 +33,12 @@ Object.defineProperty(exports, "DockviewMutableDisposable", { enumerable: true,
29
33
  Object.defineProperty(exports, "DockviewCompositeDisposable", { enumerable: true, get: function () { return lifecycle_1.CompositeDisposable; } });
30
34
  Object.defineProperty(exports, "DockviewDisposable", { enumerable: true, get: function () { return lifecycle_1.Disposable; } });
31
35
  __exportStar(require("./panel/types"), exports);
32
- __exportStar(require("./panel/componentFactory"), exports);
33
36
  __exportStar(require("./splitview/splitview"), exports);
34
37
  __exportStar(require("./paneview/paneview"), exports);
35
38
  __exportStar(require("./gridview/gridview"), exports);
36
39
  __exportStar(require("./gridview/baseComponentGridview"), exports);
37
- __exportStar(require("./paneview/draggablePaneviewPanel"), exports);
40
+ var draggablePaneviewPanel_1 = require("./paneview/draggablePaneviewPanel");
41
+ Object.defineProperty(exports, "DraggablePaneviewPanel", { enumerable: true, get: function () { return draggablePaneviewPanel_1.DraggablePaneviewPanel; } });
38
42
  __exportStar(require("./dockview/components/panel/content"), exports);
39
43
  __exportStar(require("./dockview/components/tab/tab"), exports);
40
44
  __exportStar(require("./dockview/dockviewGroupPanelModel"), exports);
@@ -42,14 +46,17 @@ __exportStar(require("./dockview/types"), exports);
42
46
  __exportStar(require("./dockview/dockviewGroupPanel"), exports);
43
47
  __exportStar(require("./dockview/options"), exports);
44
48
  __exportStar(require("./dockview/dockviewPanel"), exports);
45
- __exportStar(require("./dockview/components/tab/defaultTab"), exports);
46
- __exportStar(require("./dockview/deserializer"), exports);
49
+ var defaultTab_1 = require("./dockview/components/tab/defaultTab");
50
+ Object.defineProperty(exports, "DefaultTab", { enumerable: true, get: function () { return defaultTab_1.DefaultTab; } });
51
+ var deserializer_1 = require("./dockview/deserializer");
52
+ Object.defineProperty(exports, "DefaultDockviewDeserialzier", { enumerable: true, get: function () { return deserializer_1.DefaultDockviewDeserialzier; } });
47
53
  __exportStar(require("./dockview/dockviewComponent"), exports);
48
54
  __exportStar(require("./gridview/gridviewComponent"), exports);
49
55
  __exportStar(require("./splitview/splitviewComponent"), exports);
50
56
  __exportStar(require("./paneview/paneviewComponent"), exports);
51
57
  __exportStar(require("./gridview/gridviewPanel"), exports);
52
- __exportStar(require("./splitview/splitviewPanel"), exports);
58
+ var splitviewPanel_1 = require("./splitview/splitviewPanel");
59
+ Object.defineProperty(exports, "SplitviewPanel", { enumerable: true, get: function () { return splitviewPanel_1.SplitviewPanel; } });
53
60
  __exportStar(require("./paneview/paneviewPanel"), exports);
54
61
  __exportStar(require("./dockview/types"), exports);
55
62
  var droptarget_1 = require("./dnd/droptarget");
@@ -3,24 +3,27 @@ import { CompositeDisposable } from '../lifecycle';
3
3
  import { AnchoredBox } from '../types';
4
4
  export declare class Overlay extends CompositeDisposable {
5
5
  private readonly options;
6
- private _element;
6
+ private readonly _element;
7
7
  private readonly _onDidChange;
8
8
  readonly onDidChange: Event<void>;
9
9
  private readonly _onDidChangeEnd;
10
10
  readonly onDidChangeEnd: Event<void>;
11
- private static MINIMUM_HEIGHT;
12
- private static MINIMUM_WIDTH;
11
+ private static readonly MINIMUM_HEIGHT;
12
+ private static readonly MINIMUM_WIDTH;
13
13
  private verticalAlignment;
14
14
  private horiziontalAlignment;
15
+ private _isVisible;
15
16
  set minimumInViewportWidth(value: number | undefined);
16
17
  set minimumInViewportHeight(value: number | undefined);
17
18
  get element(): HTMLElement;
19
+ get isVisible(): boolean;
18
20
  constructor(options: AnchoredBox & {
19
21
  container: HTMLElement;
20
22
  content: HTMLElement;
21
23
  minimumInViewportWidth?: number;
22
24
  minimumInViewportHeight?: number;
23
25
  });
26
+ setVisible(isVisible: boolean): void;
24
27
  bringToFront(): void;
25
28
  setBounds(bounds?: Partial<AnchoredBox>): void;
26
29
  toJSON(): AnchoredBox;
@@ -91,6 +91,7 @@ var Overlay = /** @class */ (function (_super) {
91
91
  _this.onDidChangeEnd = _this._onDidChangeEnd.event;
92
92
  _this.addDisposables(_this._onDidChange, _this._onDidChangeEnd);
93
93
  _this._element.className = 'dv-resize-container';
94
+ _this._isVisible = true;
94
95
  _this.setupResize('top');
95
96
  _this.setupResize('bottom');
96
97
  _this.setupResize('left');
@@ -127,6 +128,20 @@ var Overlay = /** @class */ (function (_super) {
127
128
  enumerable: false,
128
129
  configurable: true
129
130
  });
131
+ Object.defineProperty(Overlay.prototype, "isVisible", {
132
+ get: function () {
133
+ return this._isVisible;
134
+ },
135
+ enumerable: false,
136
+ configurable: true
137
+ });
138
+ Overlay.prototype.setVisible = function (isVisible) {
139
+ if (isVisible === this.isVisible) {
140
+ return;
141
+ }
142
+ this._isVisible = isVisible;
143
+ (0, dom_1.toggleClass)(this.element, 'dv-hidden', !this.isVisible);
144
+ };
130
145
  Overlay.prototype.bringToFront = function () {
131
146
  arialLevelTracker.push(this._element);
132
147
  };
@@ -9,7 +9,7 @@ export declare class DefaultHeader extends CompositeDisposable implements IPaneH
9
9
  private readonly _element;
10
10
  private readonly _content;
11
11
  private readonly _expander;
12
- private apiRef;
12
+ private readonly apiRef;
13
13
  get element(): HTMLElement;
14
14
  constructor();
15
15
  init(params: PanePanelInitParameter & {
@@ -27,12 +27,14 @@ var DefaultHeader = /** @class */ (function (_super) {
27
27
  _this._expandedIcon = (0, svg_1.createExpandMoreButton)();
28
28
  _this._collapsedIcon = (0, svg_1.createChevronRightButton)();
29
29
  _this.disposable = new lifecycle_1.MutableDisposable();
30
- _this.apiRef = { api: null };
30
+ _this.apiRef = {
31
+ api: null,
32
+ };
31
33
  _this._element = document.createElement('div');
32
- _this.element.className = 'default-header';
34
+ _this.element.className = 'dv-default-header';
33
35
  _this._content = document.createElement('span');
34
36
  _this._expander = document.createElement('div');
35
- _this._expander.className = 'dockview-pane-header-icon';
37
+ _this._expander.className = 'dv-pane-header-icon';
36
38
  _this.element.appendChild(_this._expander);
37
39
  _this.element.appendChild(_this._content);
38
40
  _this.addDisposables((0, events_1.addDisposableListener)(_this._element, 'click', function () {
@@ -7,10 +7,10 @@ interface PaneItem {
7
7
  disposable: IDisposable;
8
8
  }
9
9
  export declare class Paneview extends CompositeDisposable implements IDisposable {
10
- private element;
11
- private splitview;
10
+ private readonly element;
11
+ private readonly splitview;
12
12
  private paneItems;
13
- private _orientation;
13
+ private readonly _orientation;
14
14
  private animationTimer;
15
15
  private skipAnimation;
16
16
  private readonly _onDidChange;
@@ -31,7 +31,7 @@ var Paneview = /** @class */ (function (_super) {
31
31
  _this.onDidChange = _this._onDidChange.event;
32
32
  _this._orientation = (_a = options.orientation) !== null && _a !== void 0 ? _a : splitview_1.Orientation.VERTICAL;
33
33
  _this.element = document.createElement('div');
34
- _this.element.className = 'pane-container';
34
+ _this.element.className = 'dv-pane-container';
35
35
  container.appendChild(_this.element);
36
36
  _this.splitview = new splitview_1.Splitview(_this.element, {
37
37
  orientation: _this._orientation,
@@ -178,10 +178,10 @@ var Paneview = /** @class */ (function (_super) {
178
178
  clearTimeout(this.animationTimer);
179
179
  this.animationTimer = undefined;
180
180
  }
181
- (0, dom_1.addClasses)(this.element, 'animated');
181
+ (0, dom_1.addClasses)(this.element, 'dv-animated');
182
182
  this.animationTimer = setTimeout(function () {
183
183
  _this.animationTimer = undefined;
184
- (0, dom_1.removeClasses)(_this.element, 'animated');
184
+ (0, dom_1.removeClasses)(_this.element, 'dv-animated');
185
185
  }, 200);
186
186
  };
187
187
  Paneview.prototype.dispose = function () {
@@ -90,8 +90,8 @@ export interface IPaneviewComponent extends IDisposable {
90
90
  export declare class PaneviewComponent extends Resizable implements IPaneviewComponent {
91
91
  private readonly _id;
92
92
  private _options;
93
- private _disposable;
94
- private _viewDisposables;
93
+ private readonly _disposable;
94
+ private readonly _viewDisposables;
95
95
  private _paneview;
96
96
  private readonly _onDidLayoutfromJSON;
97
97
  readonly onDidLayoutFromJSON: Event<void>;