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
@@ -67,6 +67,8 @@ export class BaseGrid extends Resizable {
67
67
  this.onDidRemove = this._onDidRemove.event;
68
68
  this._onDidAdd = new Emitter();
69
69
  this.onDidAdd = this._onDidAdd.event;
70
+ this._onDidMaximizedChange = new Emitter();
71
+ this.onDidMaximizedChange = this._onDidMaximizedChange.event;
70
72
  this._onDidActiveChange = new Emitter();
71
73
  this.onDidActiveChange = this._onDidActiveChange.event;
72
74
  this._bufferOnDidLayoutChange = new AsapEvent();
@@ -82,7 +84,12 @@ export class BaseGrid extends Resizable {
82
84
  this.gridview.locked = !!options.locked;
83
85
  this.element.appendChild(this.gridview.element);
84
86
  this.layout(0, 0, true); // set some elements height/widths
85
- this.addDisposables(this.gridview.onDidViewVisibilityChange(() => this._onDidViewVisibilityChangeMicroTaskQueue.fire()), this.onDidViewVisibilityChangeMicroTaskQueue(() => {
87
+ this.addDisposables(this.gridview.onDidMaximizedNodeChange((event) => {
88
+ this._onDidMaximizedChange.fire({
89
+ panel: event.view,
90
+ isMaximized: event.isMaximized,
91
+ });
92
+ }), this.gridview.onDidViewVisibilityChange(() => this._onDidViewVisibilityChangeMicroTaskQueue.fire()), this.onDidViewVisibilityChangeMicroTaskQueue(() => {
86
93
  this.layout(this.width, this.height, true);
87
94
  }), Disposable.from(() => {
88
95
  var _a;
@@ -137,9 +144,6 @@ export class BaseGrid extends Resizable {
137
144
  hasMaximizedGroup() {
138
145
  return this.gridview.hasMaximizedView();
139
146
  }
140
- get onDidMaximizedGroupChange() {
141
- return this.gridview.onDidMaximizedNodeChange;
142
- }
143
147
  doAddGroup(group, location = [0], size) {
144
148
  this.gridview.addView(group, size !== null && size !== void 0 ? size : Sizing.Distribute, location);
145
149
  this._onDidAdd.fire(group);
@@ -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;
@@ -107,7 +107,7 @@ export class BranchNode extends CompositeDisposable {
107
107
  this._orthogonalSize = orthogonalSize;
108
108
  this._size = size;
109
109
  this.element = document.createElement('div');
110
- this.element.className = 'branch-node';
110
+ this.element.className = 'dv-branch-node';
111
111
  if (!childDescriptors) {
112
112
  this.splitview = new Splitview(this.element, {
113
113
  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);
@@ -64,7 +64,7 @@ export function getGridLocation(element) {
64
64
  if (!parentElement) {
65
65
  throw new Error('Invalid grid element');
66
66
  }
67
- if (/\bgrid-view\b/.test(parentElement.className)) {
67
+ if (/\bdv-grid-view\b/.test(parentElement.className)) {
68
68
  return [];
69
69
  }
70
70
  const index = indexInParent(parentElement);
@@ -201,6 +201,7 @@ export class Gridview {
201
201
  if (this.hasMaximizedView()) {
202
202
  this.exitMaximizedView();
203
203
  }
204
+ serializeBranchNode(this.getView(), this.orientation);
204
205
  const hiddenOnMaximize = [];
205
206
  function hideAllViewsBut(parent, exclude) {
206
207
  for (let i = 0; i < parent.children.length; i++) {
@@ -222,7 +223,10 @@ export class Gridview {
222
223
  }
223
224
  hideAllViewsBut(this.root, node);
224
225
  this._maximizedNode = { leaf: node, hiddenOnMaximize };
225
- this._onDidMaximizedNodeChange.fire();
226
+ this._onDidMaximizedNodeChange.fire({
227
+ view: node.view,
228
+ isMaximized: true,
229
+ });
226
230
  }
227
231
  exitMaximizedView() {
228
232
  if (!this._maximizedNode) {
@@ -243,24 +247,51 @@ export class Gridview {
243
247
  }
244
248
  }
245
249
  showViewsInReverseOrder(this.root);
250
+ const tmp = this._maximizedNode.leaf;
246
251
  this._maximizedNode = undefined;
247
- this._onDidMaximizedNodeChange.fire();
252
+ this._onDidMaximizedNodeChange.fire({
253
+ view: tmp.view,
254
+ isMaximized: false,
255
+ });
248
256
  }
249
257
  serialize() {
258
+ const maximizedView = this.maximizedView();
259
+ let maxmizedViewLocation;
260
+ if (maximizedView) {
261
+ /**
262
+ * The minimum information we can get away with in order to serialize a maxmized view is it's location within the grid
263
+ * which is represented as a branch of indices
264
+ */
265
+ maxmizedViewLocation = getGridLocation(maximizedView.element);
266
+ }
250
267
  if (this.hasMaximizedView()) {
251
268
  /**
252
- * do not persist maximized view state
253
- * firstly exit any maximized views to ensure the correct dimensions are persisted
269
+ * the saved layout cannot be in its maxmized state otherwise all of the underlying
270
+ * view dimensions will be wrong
271
+ *
272
+ * To counteract this we temporaily remove the maximized view to compute the serialized output
273
+ * of the grid before adding back the maxmized view as to not alter the layout from the users
274
+ * perspective when `.toJSON()` is called
254
275
  */
255
276
  this.exitMaximizedView();
256
277
  }
257
278
  const root = serializeBranchNode(this.getView(), this.orientation);
258
- return {
279
+ const resullt = {
259
280
  root,
260
281
  width: this.width,
261
282
  height: this.height,
262
283
  orientation: this.orientation,
263
284
  };
285
+ if (maxmizedViewLocation) {
286
+ resullt.maximizedNode = {
287
+ location: maxmizedViewLocation,
288
+ };
289
+ }
290
+ if (maximizedView) {
291
+ // replace any maximzied view that was removed for serialization purposes
292
+ this.maximizeView(maximizedView);
293
+ }
294
+ return resullt;
264
295
  }
265
296
  dispose() {
266
297
  this.disposable.dispose();
@@ -279,6 +310,19 @@ export class Gridview {
279
310
  const orientation = json.orientation;
280
311
  const height = orientation === Orientation.VERTICAL ? json.height : json.width;
281
312
  this._deserialize(json.root, orientation, deserializer, height);
313
+ /**
314
+ * The deserialied layout must be positioned through this.layout(...)
315
+ * before any maximizedNode can be positioned
316
+ */
317
+ this.layout(json.width, json.height);
318
+ if (json.maximizedNode) {
319
+ const location = json.maximizedNode.location;
320
+ const [_, node] = this.getNode(location);
321
+ if (!(node instanceof LeafNode)) {
322
+ return;
323
+ }
324
+ this.maximizeView(node.view);
325
+ }
282
326
  }
283
327
  _deserialize(root, orientation, deserializer, orthogonalSize) {
284
328
  this.root = this._deserializeNode(root, orientation, deserializer, orthogonalSize);
@@ -414,7 +458,7 @@ export class Gridview {
414
458
  this._onDidMaximizedNodeChange = new Emitter();
415
459
  this.onDidMaximizedNodeChange = this._onDidMaximizedNodeChange.event;
416
460
  this.element = document.createElement('div');
417
- this.element.className = 'grid-view';
461
+ this.element.className = 'dv-grid-view';
418
462
  this._locked = locked !== null && locked !== void 0 ? locked : false;
419
463
  this._margin = margin !== null && margin !== void 0 ? margin : 0;
420
464
  this.root = new BranchNode(orientation, proportionalLayout, styles, 0, 0, this.locked, this.margin);
@@ -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?: {
@@ -9,6 +9,34 @@ export class GridviewPanel extends BasePanelView {
9
9
  return this._snap;
10
10
  }
11
11
  get minimumWidth() {
12
+ /**
13
+ * defer to protected function to allow subclasses to override easily.
14
+ * see https://github.com/microsoft/TypeScript/issues/338
15
+ */
16
+ return this.__minimumWidth();
17
+ }
18
+ get minimumHeight() {
19
+ /**
20
+ * defer to protected function to allow subclasses to override easily.
21
+ * see https://github.com/microsoft/TypeScript/issues/338
22
+ */
23
+ return this.__minimumHeight();
24
+ }
25
+ get maximumHeight() {
26
+ /**
27
+ * defer to protected function to allow subclasses to override easily.
28
+ * see https://github.com/microsoft/TypeScript/issues/338
29
+ */
30
+ return this.__maximumHeight();
31
+ }
32
+ get maximumWidth() {
33
+ /**
34
+ * defer to protected function to allow subclasses to override easily.
35
+ * see https://github.com/microsoft/TypeScript/issues/338
36
+ */
37
+ return this.__maximumWidth();
38
+ }
39
+ __minimumWidth() {
12
40
  const width = typeof this._minimumWidth === 'function'
13
41
  ? this._minimumWidth()
14
42
  : this._minimumWidth;
@@ -18,7 +46,17 @@ export class GridviewPanel extends BasePanelView {
18
46
  }
19
47
  return width;
20
48
  }
21
- get minimumHeight() {
49
+ __maximumWidth() {
50
+ const width = typeof this._maximumWidth === 'function'
51
+ ? this._maximumWidth()
52
+ : this._maximumWidth;
53
+ if (width !== this._evaluatedMaximumWidth) {
54
+ this._evaluatedMaximumWidth = width;
55
+ this.updateConstraints();
56
+ }
57
+ return width;
58
+ }
59
+ __minimumHeight() {
22
60
  const height = typeof this._minimumHeight === 'function'
23
61
  ? this._minimumHeight()
24
62
  : this._minimumHeight;
@@ -28,7 +66,7 @@ export class GridviewPanel extends BasePanelView {
28
66
  }
29
67
  return height;
30
68
  }
31
- get maximumHeight() {
69
+ __maximumHeight() {
32
70
  const height = typeof this._maximumHeight === 'function'
33
71
  ? this._maximumHeight()
34
72
  : this._maximumHeight;
@@ -38,16 +76,6 @@ export class GridviewPanel extends BasePanelView {
38
76
  }
39
77
  return height;
40
78
  }
41
- get maximumWidth() {
42
- const width = typeof this._maximumWidth === 'function'
43
- ? this._maximumWidth()
44
- : this._maximumWidth;
45
- if (width !== this._evaluatedMaximumWidth) {
46
- this._evaluatedMaximumWidth = width;
47
- this.updateConstraints();
48
- }
49
- return width;
50
- }
51
79
  get isActive() {
52
80
  return this.api.isActive;
53
81
  }
@@ -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/esm/index.js CHANGED
@@ -1,4 +1,4 @@
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.
@@ -7,12 +7,11 @@ export * from './dnd/dataTransfer';
7
7
  export { Emitter as DockviewEmitter, Event as DockviewEvent } from './events';
8
8
  export { 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 * from './paneview/paneview';
13
12
  export * from './gridview/gridview';
14
13
  export * from './gridview/baseComponentGridview';
15
- export * from './paneview/draggablePaneviewPanel';
14
+ export { DraggablePaneviewPanel, } from './paneview/draggablePaneviewPanel';
16
15
  export * from './dockview/components/panel/content';
17
16
  export * from './dockview/components/tab/tab';
18
17
  export * from './dockview/dockviewGroupPanelModel';
@@ -20,14 +19,14 @@ export * from './dockview/types';
20
19
  export * from './dockview/dockviewGroupPanel';
21
20
  export * from './dockview/options';
22
21
  export * from './dockview/dockviewPanel';
23
- export * from './dockview/components/tab/defaultTab';
24
- export * from './dockview/deserializer';
22
+ export { DefaultTab } from './dockview/components/tab/defaultTab';
23
+ export { DefaultDockviewDeserialzier, } from './dockview/deserializer';
25
24
  export * from './dockview/dockviewComponent';
26
25
  export * from './gridview/gridviewComponent';
27
26
  export * from './splitview/splitviewComponent';
28
27
  export * from './paneview/paneviewComponent';
29
28
  export * from './gridview/gridviewPanel';
30
- export * from './splitview/splitviewPanel';
29
+ export { SplitviewPanel } from './splitview/splitviewPanel';
31
30
  export * from './paneview/paneviewPanel';
32
31
  export * from './dockview/types';
33
32
  export { positionToDirection, directionToPosition, } from './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;
@@ -35,6 +35,9 @@ export class Overlay extends CompositeDisposable {
35
35
  get element() {
36
36
  return this._element;
37
37
  }
38
+ get isVisible() {
39
+ return this._isVisible;
40
+ }
38
41
  constructor(options) {
39
42
  super();
40
43
  this.options = options;
@@ -45,6 +48,7 @@ export class Overlay extends CompositeDisposable {
45
48
  this.onDidChangeEnd = this._onDidChangeEnd.event;
46
49
  this.addDisposables(this._onDidChange, this._onDidChangeEnd);
47
50
  this._element.className = 'dv-resize-container';
51
+ this._isVisible = true;
48
52
  this.setupResize('top');
49
53
  this.setupResize('bottom');
50
54
  this.setupResize('left');
@@ -59,6 +63,13 @@ export class Overlay extends CompositeDisposable {
59
63
  this.setBounds(Object.assign(Object.assign(Object.assign(Object.assign({ height: this.options.height, width: this.options.width }, ('top' in this.options && { top: this.options.top })), ('bottom' in this.options && { bottom: this.options.bottom })), ('left' in this.options && { left: this.options.left })), ('right' in this.options && { right: this.options.right })));
60
64
  arialLevelTracker.push(this._element);
61
65
  }
66
+ setVisible(isVisible) {
67
+ if (isVisible === this.isVisible) {
68
+ return;
69
+ }
70
+ this._isVisible = isVisible;
71
+ toggleClass(this.element, 'dv-hidden', !this.isVisible);
72
+ }
62
73
  bringToFront() {
63
74
  arialLevelTracker.push(this._element);
64
75
  }
@@ -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 & {
@@ -11,12 +11,14 @@ export class DefaultHeader extends CompositeDisposable {
11
11
  this._expandedIcon = createExpandMoreButton();
12
12
  this._collapsedIcon = createChevronRightButton();
13
13
  this.disposable = new MutableDisposable();
14
- this.apiRef = { api: null };
14
+ this.apiRef = {
15
+ api: null,
16
+ };
15
17
  this._element = document.createElement('div');
16
- this.element.className = 'default-header';
18
+ this.element.className = 'dv-default-header';
17
19
  this._content = document.createElement('span');
18
20
  this._expander = document.createElement('div');
19
- this._expander.className = 'dockview-pane-header-icon';
21
+ this._expander.className = 'dv-pane-header-icon';
20
22
  this.element.appendChild(this._expander);
21
23
  this.element.appendChild(this._content);
22
24
  this.addDisposables(addDisposableListener(this._element, 'click', () => {
@@ -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;
@@ -33,7 +33,7 @@ export class Paneview extends CompositeDisposable {
33
33
  this.onDidChange = this._onDidChange.event;
34
34
  this._orientation = (_a = options.orientation) !== null && _a !== void 0 ? _a : Orientation.VERTICAL;
35
35
  this.element = document.createElement('div');
36
- this.element.className = 'pane-container';
36
+ this.element.className = 'dv-pane-container';
37
37
  container.appendChild(this.element);
38
38
  this.splitview = new Splitview(this.element, {
39
39
  orientation: this._orientation,
@@ -125,10 +125,10 @@ export class Paneview extends CompositeDisposable {
125
125
  clearTimeout(this.animationTimer);
126
126
  this.animationTimer = undefined;
127
127
  }
128
- addClasses(this.element, 'animated');
128
+ addClasses(this.element, 'dv-animated');
129
129
  this.animationTimer = setTimeout(() => {
130
130
  this.animationTimer = undefined;
131
- removeClasses(this.element, 'animated');
131
+ removeClasses(this.element, 'dv-animated');
132
132
  }, 200);
133
133
  }
134
134
  dispose() {
@@ -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>;
@@ -45,14 +45,14 @@ export interface IPaneviewPanel extends BasePanelViewExported<PaneviewPanelApiIm
45
45
  }
46
46
  export declare abstract class PaneviewPanel extends BasePanelView<PaneviewPanelApiImpl> implements IPaneview, IPaneviewPanel {
47
47
  private readonly headerComponent;
48
- private _onDidChangeExpansionState;
48
+ private readonly _onDidChangeExpansionState;
49
49
  onDidChangeExpansionState: Event<boolean>;
50
50
  private readonly _onDidChange;
51
51
  readonly onDidChange: Event<{
52
52
  size?: number;
53
53
  orthogonalSize?: number;
54
54
  }>;
55
- private headerSize;
55
+ private readonly headerSize;
56
56
  private _orthogonalSize;
57
57
  private _size;
58
58
  private _minimumBodySize;
@@ -71,7 +71,7 @@ export class PaneviewPanel extends BasePanelView {
71
71
  this._headerVisible = isHeaderVisible;
72
72
  this._onDidChangeExpansionState.fire(this.isExpanded()); // initialize value
73
73
  this._orientation = orientation;
74
- this.element.classList.add('pane');
74
+ this.element.classList.add('dv-pane');
75
75
  this.addDisposables(this.api.onWillVisibilityChange((event) => {
76
76
  const { isVisible } = event;
77
77
  const { accessor } = this._params;
@@ -168,14 +168,14 @@ export class PaneviewPanel extends BasePanelView {
168
168
  renderOnce() {
169
169
  this.header = document.createElement('div');
170
170
  this.header.tabIndex = 0;
171
- this.header.className = 'pane-header';
171
+ this.header.className = 'dv-pane-header';
172
172
  this.header.style.height = `${this.headerSize}px`;
173
173
  this.header.style.lineHeight = `${this.headerSize}px`;
174
174
  this.header.style.minHeight = `${this.headerSize}px`;
175
175
  this.header.style.maxHeight = `${this.headerSize}px`;
176
176
  this.element.appendChild(this.header);
177
177
  this.body = document.createElement('div');
178
- this.body.className = 'pane-body';
178
+ this.body.className = 'dv-pane-body';
179
179
  this.element.appendChild(this.body);
180
180
  }
181
181
  // TODO slightly hacky by-pass of the component to create a body and header component