dockview 1.1.0 → 1.2.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 (88) hide show
  1. package/dist/cjs/api/component.api.d.ts +1 -3
  2. package/dist/cjs/api/component.api.js +0 -14
  3. package/dist/cjs/api/component.api.js.map +1 -1
  4. package/dist/cjs/dnd/abstractDragHandler.d.ts +1 -1
  5. package/dist/cjs/dnd/abstractDragHandler.js +1 -2
  6. package/dist/cjs/dnd/abstractDragHandler.js.map +1 -1
  7. package/dist/cjs/dockview/deserializer.js.map +1 -1
  8. package/dist/cjs/dockview/dockviewComponent.d.ts +5 -3
  9. package/dist/cjs/dockview/dockviewComponent.js +45 -38
  10. package/dist/cjs/dockview/dockviewComponent.js.map +1 -1
  11. package/dist/cjs/dockview/dockviewGroupPanel.d.ts +1 -0
  12. package/dist/cjs/dockview/dockviewGroupPanel.js +8 -0
  13. package/dist/cjs/dockview/dockviewGroupPanel.js.map +1 -1
  14. package/dist/cjs/gridview/baseComponentGridview.d.ts +3 -20
  15. package/dist/cjs/gridview/baseComponentGridview.js +9 -43
  16. package/dist/cjs/gridview/baseComponentGridview.js.map +1 -1
  17. package/dist/cjs/gridview/branchNode.js +1 -1
  18. package/dist/cjs/gridview/branchNode.js.map +1 -1
  19. package/dist/cjs/gridview/gridview.js +1 -0
  20. package/dist/cjs/gridview/gridview.js.map +1 -1
  21. package/dist/cjs/gridview/gridviewComponent.js +0 -1
  22. package/dist/cjs/gridview/gridviewComponent.js.map +1 -1
  23. package/dist/cjs/gridview/leafNode.js +1 -1
  24. package/dist/cjs/gridview/leafNode.js.map +1 -1
  25. package/dist/cjs/groupview/groupPanel.d.ts +1 -0
  26. package/dist/cjs/index.d.ts +2 -2
  27. package/dist/cjs/index.js +8 -4
  28. package/dist/cjs/index.js.map +1 -1
  29. package/dist/cjs/paneview/paneview.js +3 -2
  30. package/dist/cjs/paneview/paneview.js.map +1 -1
  31. package/dist/cjs/paneview/paneviewComponent.d.ts +1 -0
  32. package/dist/cjs/paneview/paneviewComponent.js +4 -0
  33. package/dist/cjs/paneview/paneviewComponent.js.map +1 -1
  34. package/dist/cjs/react/dockview/components.js +5 -1
  35. package/dist/cjs/react/dockview/components.js.map +1 -1
  36. package/dist/cjs/react/dockview/dockview.js +14 -1
  37. package/dist/cjs/react/dockview/dockview.js.map +1 -1
  38. package/dist/cjs/react/gridview/gridview.js +9 -2
  39. package/dist/cjs/react/gridview/gridview.js.map +1 -1
  40. package/dist/cjs/react/index.js +5 -1
  41. package/dist/cjs/react/index.js.map +1 -1
  42. package/dist/cjs/react/paneview/paneview.js +5 -1
  43. package/dist/cjs/react/paneview/paneview.js.map +1 -1
  44. package/dist/cjs/react/react.js +5 -1
  45. package/dist/cjs/react/react.js.map +1 -1
  46. package/dist/cjs/react/splitview/splitview.js +8 -2
  47. package/dist/cjs/react/splitview/splitview.js.map +1 -1
  48. package/dist/cjs/splitview/core/splitview.js +1 -1
  49. package/dist/cjs/splitview/core/splitview.js.map +1 -1
  50. package/dist/cjs/splitview/splitviewComponent.js +1 -0
  51. package/dist/cjs/splitview/splitviewComponent.js.map +1 -1
  52. package/dist/dockview.amd.js +168 -207
  53. package/dist/dockview.amd.min.js +2 -2
  54. package/dist/dockview.amd.min.noStyle.js +2 -2
  55. package/dist/dockview.amd.noStyle.js +167 -206
  56. package/dist/dockview.cjs.js +168 -207
  57. package/dist/dockview.esm.js +168 -201
  58. package/dist/dockview.esm.min.js +2 -2
  59. package/dist/dockview.js +168 -207
  60. package/dist/dockview.min.js +2 -2
  61. package/dist/dockview.min.noStyle.js +2 -2
  62. package/dist/dockview.noStyle.js +167 -206
  63. package/dist/esm/api/component.api.d.ts +1 -3
  64. package/dist/esm/api/component.api.js +0 -6
  65. package/dist/esm/dnd/abstractDragHandler.d.ts +1 -1
  66. package/dist/esm/dnd/abstractDragHandler.js +1 -2
  67. package/dist/esm/dockview/dockviewComponent.d.ts +5 -3
  68. package/dist/esm/dockview/dockviewComponent.js +20 -36
  69. package/dist/esm/dockview/dockviewGroupPanel.d.ts +1 -0
  70. package/dist/esm/dockview/dockviewGroupPanel.js +4 -0
  71. package/dist/esm/gridview/baseComponentGridview.d.ts +3 -20
  72. package/dist/esm/gridview/baseComponentGridview.js +9 -43
  73. package/dist/esm/gridview/branchNode.js +1 -1
  74. package/dist/esm/gridview/gridview.js +1 -0
  75. package/dist/esm/gridview/gridviewComponent.js +1 -2
  76. package/dist/esm/groupview/groupPanel.d.ts +1 -0
  77. package/dist/esm/index.d.ts +2 -2
  78. package/dist/esm/index.js +1 -2
  79. package/dist/esm/paneview/paneview.js +1 -1
  80. package/dist/esm/paneview/paneviewComponent.d.ts +1 -0
  81. package/dist/esm/paneview/paneviewComponent.js +4 -0
  82. package/dist/esm/react/dockview/dockview.js +9 -0
  83. package/dist/esm/react/gridview/gridview.js +4 -1
  84. package/dist/esm/react/splitview/splitview.js +3 -1
  85. package/dist/esm/splitview/core/splitview.js +1 -1
  86. package/dist/esm/splitview/splitviewComponent.js +1 -0
  87. package/dist/styles/dockview.css +9 -8
  88. package/package.json +11 -11
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * dockview
3
- * @version 1.1.0
3
+ * @version 1.2.0
4
4
  * @link https://github.com/mathuo/dockview
5
5
  * @license MIT
6
6
  */
@@ -27,6 +27,76 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
27
27
  var React__namespace = /*#__PURE__*/_interopNamespace(React);
28
28
  var ReactDOM__namespace = /*#__PURE__*/_interopNamespace(ReactDOM);
29
29
 
30
+ class TransferObject {
31
+ constructor() {
32
+ //
33
+ }
34
+ }
35
+ class PanelTransfer extends TransferObject {
36
+ constructor(viewId, groupId, panelId) {
37
+ super();
38
+ this.viewId = viewId;
39
+ this.groupId = groupId;
40
+ this.panelId = panelId;
41
+ }
42
+ }
43
+ class PaneTransfer extends TransferObject {
44
+ constructor(viewId, paneId) {
45
+ super();
46
+ this.viewId = viewId;
47
+ this.paneId = paneId;
48
+ }
49
+ }
50
+ /**
51
+ * A singleton to store transfer data during drag & drop operations that are only valid within the application.
52
+ */
53
+ class LocalSelectionTransfer {
54
+ constructor() {
55
+ // protect against external instantiation
56
+ }
57
+ static getInstance() {
58
+ return LocalSelectionTransfer.INSTANCE;
59
+ }
60
+ hasData(proto) {
61
+ return proto && proto === this.proto;
62
+ }
63
+ clearData(proto) {
64
+ if (this.hasData(proto)) {
65
+ this.proto = undefined;
66
+ this.data = undefined;
67
+ }
68
+ }
69
+ getData(proto) {
70
+ if (this.hasData(proto)) {
71
+ return this.data;
72
+ }
73
+ return undefined;
74
+ }
75
+ setData(data, proto) {
76
+ if (proto) {
77
+ this.data = data;
78
+ this.proto = proto;
79
+ }
80
+ }
81
+ }
82
+ LocalSelectionTransfer.INSTANCE = new LocalSelectionTransfer();
83
+ function getPanelData() {
84
+ const panelTransfer = LocalSelectionTransfer.getInstance();
85
+ const isPanelEvent = panelTransfer.hasData(PanelTransfer.prototype);
86
+ if (!isPanelEvent) {
87
+ return undefined;
88
+ }
89
+ return panelTransfer.getData(PanelTransfer.prototype)[0];
90
+ }
91
+ function getPaneData() {
92
+ const paneTransfer = LocalSelectionTransfer.getInstance();
93
+ const isPanelEvent = paneTransfer.hasData(PaneTransfer.prototype);
94
+ if (!isPanelEvent) {
95
+ return undefined;
96
+ }
97
+ return paneTransfer.getData(PaneTransfer.prototype)[0];
98
+ }
99
+
30
100
  exports.Event = void 0;
31
101
  (function (Event) {
32
102
  Event.any = (...children) => {
@@ -116,116 +186,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
116
186
  }
117
187
  }
118
188
 
119
- exports.Disposable = void 0;
120
- (function (Disposable) {
121
- Disposable.NONE = {
122
- dispose: () => {
123
- // noop
124
- },
125
- };
126
- })(exports.Disposable || (exports.Disposable = {}));
127
- class CompositeDisposable {
128
- constructor(...args) {
129
- this.disposables = args;
130
- }
131
- static from(...args) {
132
- return new CompositeDisposable(...args);
133
- }
134
- addDisposables(...args) {
135
- args.forEach((arg) => this.disposables.push(arg));
136
- }
137
- dispose() {
138
- this.disposables.forEach((arg) => arg.dispose());
139
- }
140
- }
141
- class MutableDisposable {
142
- constructor() {
143
- this._disposable = exports.Disposable.NONE;
144
- }
145
- set value(disposable) {
146
- if (this._disposable) {
147
- this._disposable.dispose();
148
- }
149
- this._disposable = disposable;
150
- }
151
- dispose() {
152
- if (this._disposable) {
153
- this._disposable.dispose();
154
- this._disposable = exports.Disposable.NONE;
155
- }
156
- }
157
- }
158
-
159
- class TransferObject {
160
- constructor() {
161
- //
162
- }
163
- }
164
- class PanelTransfer extends TransferObject {
165
- constructor(viewId, groupId, panelId) {
166
- super();
167
- this.viewId = viewId;
168
- this.groupId = groupId;
169
- this.panelId = panelId;
170
- }
171
- }
172
- class PaneTransfer extends TransferObject {
173
- constructor(viewId, paneId) {
174
- super();
175
- this.viewId = viewId;
176
- this.paneId = paneId;
177
- }
178
- }
179
- /**
180
- * A singleton to store transfer data during drag & drop operations that are only valid within the application.
181
- */
182
- class LocalSelectionTransfer {
183
- constructor() {
184
- // protect against external instantiation
185
- }
186
- static getInstance() {
187
- return LocalSelectionTransfer.INSTANCE;
188
- }
189
- hasData(proto) {
190
- return proto && proto === this.proto;
191
- }
192
- clearData(proto) {
193
- if (this.hasData(proto)) {
194
- this.proto = undefined;
195
- this.data = undefined;
196
- }
197
- }
198
- getData(proto) {
199
- if (this.hasData(proto)) {
200
- return this.data;
201
- }
202
- return undefined;
203
- }
204
- setData(data, proto) {
205
- if (proto) {
206
- this.data = data;
207
- this.proto = proto;
208
- }
209
- }
210
- }
211
- LocalSelectionTransfer.INSTANCE = new LocalSelectionTransfer();
212
- function getPanelData() {
213
- const panelTransfer = LocalSelectionTransfer.getInstance();
214
- const isPanelEvent = panelTransfer.hasData(PanelTransfer.prototype);
215
- if (!isPanelEvent) {
216
- return undefined;
217
- }
218
- return panelTransfer.getData(PanelTransfer.prototype)[0];
219
- }
220
- function getPaneData() {
221
- const paneTransfer = LocalSelectionTransfer.getInstance();
222
- const isPanelEvent = paneTransfer.hasData(PaneTransfer.prototype);
223
- if (!isPanelEvent) {
224
- return undefined;
225
- }
226
- return paneTransfer.getData(PaneTransfer.prototype)[0];
227
- }
228
-
229
189
  class SplitviewApi {
230
190
  constructor(component) {
231
191
  this.component = component;
@@ -386,9 +346,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
386
346
  get height() {
387
347
  return this.component.height;
388
348
  }
389
- get onGridEvent() {
390
- return this.component.onGridEvent;
391
- }
392
349
  get onDidLayoutChange() {
393
350
  return this.component.onDidLayoutChange;
394
351
  }
@@ -478,9 +435,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
478
435
  get totalPanels() {
479
436
  return this.component.totalPanels;
480
437
  }
481
- get onGridEvent() {
482
- return this.component.onGridEvent;
483
- }
484
438
  get onDidActiveGroupChange() {
485
439
  return this.component.onDidActiveGroupChange;
486
440
  }
@@ -564,6 +518,46 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
564
518
  }
565
519
  }
566
520
 
521
+ var Disposable;
522
+ (function (Disposable) {
523
+ Disposable.NONE = {
524
+ dispose: () => {
525
+ // noop
526
+ },
527
+ };
528
+ })(Disposable || (Disposable = {}));
529
+ class CompositeDisposable {
530
+ constructor(...args) {
531
+ this.disposables = args;
532
+ }
533
+ static from(...args) {
534
+ return new CompositeDisposable(...args);
535
+ }
536
+ addDisposables(...args) {
537
+ args.forEach((arg) => this.disposables.push(arg));
538
+ }
539
+ dispose() {
540
+ this.disposables.forEach((arg) => arg.dispose());
541
+ }
542
+ }
543
+ class MutableDisposable {
544
+ constructor() {
545
+ this._disposable = Disposable.NONE;
546
+ }
547
+ set value(disposable) {
548
+ if (this._disposable) {
549
+ this._disposable.dispose();
550
+ }
551
+ this._disposable = disposable;
552
+ }
553
+ dispose() {
554
+ if (this._disposable) {
555
+ this._disposable.dispose();
556
+ this._disposable = Disposable.NONE;
557
+ }
558
+ }
559
+ }
560
+
567
561
  function watchElementResize(element, cb) {
568
562
  const observer = new ResizeObserver((entires) => {
569
563
  const firstEntry = entires[0];
@@ -1509,13 +1503,13 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
1509
1503
  this._onDidSashEnd.dispose();
1510
1504
  this._onDidAddView.dispose();
1511
1505
  this._onDidRemoveView.dispose();
1512
- this.element.remove();
1513
1506
  for (let i = 0; i < this.element.children.length; i++) {
1514
1507
  if (this.element.children.item(i) === this.element) {
1515
1508
  this.element.removeChild(this.element);
1516
1509
  break;
1517
1510
  }
1518
1511
  }
1512
+ this.element.remove();
1519
1513
  }
1520
1514
  }
1521
1515
 
@@ -1644,7 +1638,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
1644
1638
  }
1645
1639
  dispose() {
1646
1640
  super.dispose();
1647
- this.splitview.dispose();
1648
1641
  if (this.animationTimer) {
1649
1642
  clearTimeout(this.animationTimer);
1650
1643
  this.animationTimer = undefined;
@@ -1653,6 +1646,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
1653
1646
  paneItem.disposable.dispose();
1654
1647
  });
1655
1648
  this.paneItems = [];
1649
+ this.splitview.dispose();
1656
1650
  this.element.remove();
1657
1651
  }
1658
1652
  }
@@ -1971,7 +1965,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
1971
1965
  this.children = [];
1972
1966
  this._onDidChange = new Emitter();
1973
1967
  this.onDidChange = this._onDidChange.event;
1974
- this._childrenDisposable = exports.Disposable.NONE;
1968
+ this._childrenDisposable = Disposable.NONE;
1975
1969
  this._orthogonalSize = orthogonalSize;
1976
1970
  this._size = size;
1977
1971
  this.element = document.createElement('div');
@@ -1996,7 +1990,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
1996
1990
  : true,
1997
1991
  };
1998
1992
  }),
1999
- size: this.orthogonalSize,
1993
+ size: this.size,
2000
1994
  };
2001
1995
  this.children = childDescriptors.map((c) => c.node);
2002
1996
  this.splitview = new Splitview(this.element, {
@@ -2317,6 +2311,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
2317
2311
  this.disposable.dispose();
2318
2312
  this._onDidChange.dispose();
2319
2313
  this.root.dispose();
2314
+ this.element.remove();
2320
2315
  }
2321
2316
  clear() {
2322
2317
  const orientation = this.root.orientation;
@@ -3347,19 +3342,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3347
3342
  }
3348
3343
  }
3349
3344
 
3350
- exports.GroupChangeKind = void 0;
3351
- (function (GroupChangeKind) {
3352
- GroupChangeKind["ADD_PANEL"] = "ADD_PANEL";
3353
- GroupChangeKind["REMOVE_PANEL"] = "REMOVE_PANEL";
3354
- GroupChangeKind["PANEL_ACTIVE"] = "PANEL_ACTIVE";
3355
- //
3356
- GroupChangeKind["GROUP_ACTIVE"] = "GROUP_ACTIVE";
3357
- GroupChangeKind["ADD_GROUP"] = "ADD_GROUP";
3358
- GroupChangeKind["REMOVE_GROUP"] = "REMOVE_GROUP";
3359
- //
3360
- GroupChangeKind["LAYOUT_FROM_JSON"] = "LAYOUT_FROM_JSON";
3361
- GroupChangeKind["LAYOUT"] = "LAYOUT";
3362
- })(exports.GroupChangeKind || (exports.GroupChangeKind = {}));
3363
3345
  const nextLayoutId = sequentialNumberGenerator();
3364
3346
  function toTarget(direction) {
3365
3347
  switch (direction) {
@@ -3382,9 +3364,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3382
3364
  this._element = _element;
3383
3365
  this._id = nextLayoutId.next();
3384
3366
  this._groups = new Map();
3385
- //
3386
- this._onGridEvent = new Emitter();
3387
- this.onGridEvent = this._onGridEvent.event;
3388
3367
  this._onDidLayoutChange = new Emitter();
3389
3368
  this.onDidLayoutChange = this._onDidLayoutChange.event;
3390
3369
  this._onDidRemoveGroup = new Emitter();
@@ -3393,30 +3372,18 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3393
3372
  this.onDidAddGroup = this._onDidAddGroup.event;
3394
3373
  this._onDidActiveGroupChange = new Emitter();
3395
3374
  this.onDidActiveGroupChange = this._onDidActiveGroupChange.event;
3375
+ this._bufferOnDidLayoutChange = new TickDelayedEvent();
3396
3376
  this.gridview = new Gridview(!!options.proportionalLayout, options.styles, options.orientation);
3397
3377
  this.element.appendChild(this.gridview.element);
3398
3378
  this.layout(0, 0, true); // set some elements height/widths
3399
3379
  this.addDisposables(this.gridview.onDidChange(() => {
3400
- this._onGridEvent.fire({ kind: exports.GroupChangeKind.LAYOUT });
3380
+ this._onDidLayoutChange.fire();
3401
3381
  }));
3402
- this.addDisposables((() => {
3403
- const tickDelayedEvent = new TickDelayedEvent();
3404
- return new CompositeDisposable(this.onGridEvent((event) => {
3405
- if ([
3406
- exports.GroupChangeKind.ADD_GROUP,
3407
- exports.GroupChangeKind.REMOVE_GROUP,
3408
- exports.GroupChangeKind.ADD_PANEL,
3409
- exports.GroupChangeKind.REMOVE_PANEL,
3410
- exports.GroupChangeKind.GROUP_ACTIVE,
3411
- exports.GroupChangeKind.PANEL_ACTIVE,
3412
- exports.GroupChangeKind.LAYOUT,
3413
- ].includes(event.kind)) {
3414
- tickDelayedEvent.fire();
3415
- }
3416
- }), tickDelayedEvent.onEvent(() => {
3417
- this._onDidLayoutChange.fire();
3418
- }), tickDelayedEvent);
3419
- })());
3382
+ this.addDisposables(exports.Event.any(this.onDidAddGroup, this.onDidRemoveGroup, this.onDidActiveGroupChange)(() => {
3383
+ this._bufferOnDidLayoutChange.fire();
3384
+ }), this._bufferOnDidLayoutChange.onEvent(() => {
3385
+ this._onDidLayoutChange.fire();
3386
+ }), this._bufferOnDidLayoutChange);
3420
3387
  }
3421
3388
  get id() {
3422
3389
  return this._id;
@@ -3453,14 +3420,13 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3453
3420
  }
3454
3421
  setVisible(panel, visible) {
3455
3422
  this.gridview.setViewVisible(getGridLocation(panel.element), visible);
3456
- this._onGridEvent.fire({ kind: exports.GroupChangeKind.LAYOUT });
3423
+ this._onDidLayoutChange.fire();
3457
3424
  }
3458
3425
  isVisible(panel) {
3459
3426
  return this.gridview.isViewVisible(getGridLocation(panel.element));
3460
3427
  }
3461
3428
  doAddGroup(group, location = [0], size) {
3462
3429
  this.gridview.addView(group, size !== null && size !== void 0 ? size : exports.Sizing.Distribute, location);
3463
- this._onGridEvent.fire({ kind: exports.GroupChangeKind.ADD_GROUP });
3464
3430
  this._onDidAddGroup.fire(group);
3465
3431
  this.doSetGroupActive(group);
3466
3432
  }
@@ -3474,7 +3440,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3474
3440
  item.disposable.dispose();
3475
3441
  this._groups.delete(group.id);
3476
3442
  }
3477
- this._onGridEvent.fire({ kind: exports.GroupChangeKind.REMOVE_GROUP });
3478
3443
  this._onDidRemoveGroup.fire(group);
3479
3444
  if (!(options === null || options === void 0 ? void 0 : options.skipActive) && this._activeGroup === group) {
3480
3445
  const groups = Array.from(this._groups.values());
@@ -3503,9 +3468,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3503
3468
  }
3504
3469
  }
3505
3470
  this._activeGroup = group;
3506
- this._onGridEvent.fire({
3507
- kind: exports.GroupChangeKind.GROUP_ACTIVE,
3508
- });
3509
3471
  this._onDidActiveGroupChange.fire(group);
3510
3472
  }
3511
3473
  removeGroup(group) {
@@ -3562,7 +3524,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3562
3524
  }
3563
3525
  dispose() {
3564
3526
  super.dispose();
3565
- this._onGridEvent.dispose();
3566
3527
  this._onDidActiveGroupChange.dispose();
3567
3528
  this._onDidAddGroup.dispose();
3568
3529
  this._onDidRemoveGroup.dispose();
@@ -3744,6 +3705,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
3744
3705
  this.update({ params: { title } });
3745
3706
  }));
3746
3707
  }
3708
+ get params() {
3709
+ var _a;
3710
+ return (_a = this._params) === null || _a === void 0 ? void 0 : _a.params;
3711
+ }
3747
3712
  get title() {
3748
3713
  return this._title;
3749
3714
  }
@@ -4420,7 +4385,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4420
4385
  this.onDidLayoutfromJSON = this._onDidLayoutfromJSON.event;
4421
4386
  this._onDidActivePanelChange = new Emitter();
4422
4387
  this.onDidActivePanelChange = this._onDidActivePanelChange.event;
4423
- this.addDisposables(this._onTabInteractionEvent, this._onTabContextMenu, this._onDidDrop);
4388
+ this.addDisposables(this._onTabInteractionEvent, this._onTabContextMenu, this._onDidDrop, exports.Event.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidActivePanelChange)(() => {
4389
+ this._bufferOnDidLayoutChange.fire();
4390
+ }));
4424
4391
  this._options = options;
4425
4392
  if (!this.options.components) {
4426
4393
  this.options.components = {};
@@ -4554,11 +4521,12 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4554
4521
  };
4555
4522
  }
4556
4523
  fromJSON(data) {
4524
+ const groups = Array.from(this._groups.values()).map((_) => _.value);
4525
+ for (const group of groups) {
4526
+ // remove the group will automatically remove the panels
4527
+ this.removeGroup(group, true);
4528
+ }
4557
4529
  this.gridview.clear();
4558
- this.panels.forEach((panel) => {
4559
- panel.dispose();
4560
- });
4561
- this._groups.clear();
4562
4530
  if (!this.deserializer) {
4563
4531
  throw new Error('invalid deserializer');
4564
4532
  }
@@ -4582,7 +4550,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4582
4550
  }
4583
4551
  }
4584
4552
  this.gridview.layout(this.width, this.height);
4585
- this._onGridEvent.fire({ kind: exports.GroupChangeKind.LAYOUT_FROM_JSON });
4586
4553
  this._onDidLayoutfromJSON.fire();
4587
4554
  }
4588
4555
  closeAllGroups() {
@@ -4632,13 +4599,13 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4632
4599
  }
4633
4600
  return panel;
4634
4601
  }
4635
- removePanel(panel) {
4602
+ removePanel(panel, options = { removeEmptyGroup: true }) {
4636
4603
  const group = panel.group;
4637
4604
  if (!group) {
4638
4605
  throw new Error(`cannot remove panel ${panel.id}. it's missing a group.`);
4639
4606
  }
4640
4607
  group.model.removePanel(panel);
4641
- if (group.model.size === 0) {
4608
+ if (group.model.size === 0 && options.removeEmptyGroup) {
4642
4609
  this.removeGroup(group);
4643
4610
  }
4644
4611
  }
@@ -4670,16 +4637,14 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4670
4637
  this.doAddGroup(group);
4671
4638
  }
4672
4639
  }
4673
- removeGroup(group) {
4640
+ removeGroup(group, skipActive = false) {
4674
4641
  const panels = [...group.model.panels]; // reassign since group panels will mutate
4675
- panels.forEach((panel) => {
4676
- this.removePanel(panel);
4677
- });
4678
- if (this._groups.size === 1) {
4679
- this._activeGroup = group;
4680
- return;
4642
+ for (const panel of panels) {
4643
+ this.removePanel(panel, {
4644
+ removeEmptyGroup: false,
4645
+ });
4681
4646
  }
4682
- super.removeGroup(group);
4647
+ super.doRemoveGroup(group, { skipActive });
4683
4648
  }
4684
4649
  moveGroupOrPanel(referenceGroup, groupId, itemId, target, index) {
4685
4650
  var _a;
@@ -4734,15 +4699,11 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4734
4699
  }
4735
4700
  }
4736
4701
  doSetGroupActive(group, skipFocus) {
4737
- var _a, _b, _c;
4702
+ var _a, _b;
4738
4703
  const isGroupAlreadyFocused = this._activeGroup === group;
4739
4704
  super.doSetGroupActive(group, skipFocus);
4740
4705
  if (!isGroupAlreadyFocused && ((_a = this._activeGroup) === null || _a === void 0 ? void 0 : _a.model.activePanel)) {
4741
- this._onGridEvent.fire({
4742
- kind: exports.GroupChangeKind.PANEL_ACTIVE,
4743
- panel: (_b = this._activeGroup) === null || _b === void 0 ? void 0 : _b.model.activePanel,
4744
- });
4745
- this._onDidActivePanelChange.fire((_c = this._activeGroup) === null || _c === void 0 ? void 0 : _c.model.activePanel);
4706
+ this._onDidActivePanelChange.fire((_b = this._activeGroup) === null || _b === void 0 ? void 0 : _b.model.activePanel);
4746
4707
  }
4747
4708
  }
4748
4709
  createGroup(options) {
@@ -4773,28 +4734,16 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4773
4734
  }), view.model.onDidGroupChange((event) => {
4774
4735
  switch (event.kind) {
4775
4736
  case exports.GroupChangeKind2.ADD_PANEL:
4776
- this._onGridEvent.fire({
4777
- kind: exports.GroupChangeKind.ADD_PANEL,
4778
- panel: event.panel,
4779
- });
4780
4737
  if (event.panel) {
4781
4738
  this._onDidAddPanel.fire(event.panel);
4782
4739
  }
4783
4740
  break;
4784
4741
  case exports.GroupChangeKind2.REMOVE_PANEL:
4785
- this._onGridEvent.fire({
4786
- kind: exports.GroupChangeKind.REMOVE_PANEL,
4787
- panel: event.panel,
4788
- });
4789
4742
  if (event.panel) {
4790
4743
  this._onDidRemovePanel.fire(event.panel);
4791
4744
  }
4792
4745
  break;
4793
4746
  case exports.GroupChangeKind2.PANEL_ACTIVE:
4794
- this._onGridEvent.fire({
4795
- kind: exports.GroupChangeKind.PANEL_ACTIVE,
4796
- panel: event.panel,
4797
- });
4798
4747
  this._onDidActivePanelChange.fire(event.panel);
4799
4748
  break;
4800
4749
  }
@@ -4965,7 +4914,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
4965
4914
  this.doSetGroupActive(panel);
4966
4915
  }
4967
4916
  }
4968
- this._onGridEvent.fire({ kind: exports.GroupChangeKind.LAYOUT_FROM_JSON });
4969
4917
  this._onDidLayoutfromJSON.fire();
4970
4918
  }
4971
4919
  movePanel(panel, options) {
@@ -5326,6 +5274,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5326
5274
  value.dispose();
5327
5275
  });
5328
5276
  this.panels.clear();
5277
+ this.splitview.dispose();
5329
5278
  super.dispose();
5330
5279
  }
5331
5280
  }
@@ -5915,6 +5864,10 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
5915
5864
  queue.forEach((f) => f());
5916
5865
  }
5917
5866
  }
5867
+ dispose() {
5868
+ super.dispose();
5869
+ this.paneview.dispose();
5870
+ }
5918
5871
  }
5919
5872
 
5920
5873
  class SplitviewPanel extends BasePanelView {
@@ -6408,6 +6361,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6408
6361
  return () => {
6409
6362
  disposable.dispose();
6410
6363
  dockview.dispose();
6364
+ element.remove();
6411
6365
  };
6412
6366
  }, []);
6413
6367
  React__namespace.useEffect(() => {
@@ -6418,6 +6372,14 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6418
6372
  frameworkComponents: props.components,
6419
6373
  });
6420
6374
  }, [props.components]);
6375
+ React__namespace.useEffect(() => {
6376
+ if (!dockviewRef.current) {
6377
+ return;
6378
+ }
6379
+ dockviewRef.current.updateOptions({
6380
+ watermarkFrameworkComponent: props.watermarkComponent,
6381
+ });
6382
+ }, [props.watermarkComponent]);
6421
6383
  React__namespace.useEffect(() => {
6422
6384
  if (!dockviewRef.current) {
6423
6385
  return;
@@ -6553,7 +6515,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6553
6515
  });
6554
6516
  },
6555
6517
  },
6556
- proportionalLayout: props.proportionalLayout,
6518
+ proportionalLayout: typeof props.proportionalLayout === 'boolean'
6519
+ ? props.proportionalLayout
6520
+ : true,
6557
6521
  styles: props.hideBorders
6558
6522
  ? { separatorBorder: 'transparent' }
6559
6523
  : undefined,
@@ -6621,7 +6585,9 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6621
6585
  var _a;
6622
6586
  const element = document.createElement('div');
6623
6587
  const gridview = new GridviewComponent(element, {
6624
- proportionalLayout: !!props.proportionalLayout,
6588
+ proportionalLayout: typeof props.proportionalLayout === 'boolean'
6589
+ ? props.proportionalLayout
6590
+ : true,
6625
6591
  orientation: props.orientation,
6626
6592
  frameworkComponents: props.components,
6627
6593
  frameworkComponentFactory: {
@@ -6644,6 +6610,7 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6644
6610
  gridviewRef.current = gridview;
6645
6611
  return () => {
6646
6612
  gridview.dispose();
6613
+ element.remove();
6647
6614
  };
6648
6615
  }, []);
6649
6616
  React__namespace.useEffect(() => {
@@ -6780,13 +6747,11 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6780
6747
  PaneviewReact.displayName = 'PaneviewComponent';
6781
6748
 
6782
6749
  exports.BaseGrid = BaseGrid;
6783
- exports.CompositeDisposable = CompositeDisposable;
6784
6750
  exports.ContentContainer = ContentContainer;
6785
6751
  exports.DockviewApi = DockviewApi;
6786
6752
  exports.DockviewComponent = DockviewComponent;
6787
6753
  exports.DockviewComponents = DockviewComponents;
6788
6754
  exports.DockviewReact = DockviewReact;
6789
- exports.Emitter = Emitter;
6790
6755
  exports.Gridview = Gridview;
6791
6756
  exports.GridviewApi = GridviewApi;
6792
6757
  exports.GridviewComponent = GridviewComponent;
@@ -6794,7 +6759,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6794
6759
  exports.GridviewReact = GridviewReact;
6795
6760
  exports.Groupview = Groupview;
6796
6761
  exports.LocalSelectionTransfer = LocalSelectionTransfer;
6797
- exports.MutableDisposable = MutableDisposable;
6798
6762
  exports.PaneFramework = PaneFramework;
6799
6763
  exports.PaneTransfer = PaneTransfer;
6800
6764
  exports.PanelTransfer = PanelTransfer;
@@ -6813,9 +6777,6 @@ define(['exports', 'react', 'react-dom'], (function (exports, React, ReactDOM) {
6813
6777
  exports.SplitviewPanel = SplitviewPanel;
6814
6778
  exports.SplitviewReact = SplitviewReact;
6815
6779
  exports.Tab = Tab$1;
6816
- exports.TickDelayedEvent = TickDelayedEvent;
6817
- exports.addDisposableListener = addDisposableListener;
6818
- exports.addDisposableWindowListener = addDisposableWindowListener;
6819
6780
  exports.getDirectionOrientation = getDirectionOrientation;
6820
6781
  exports.getGridLocation = getGridLocation;
6821
6782
  exports.getLocationOrientation = getLocationOrientation;