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
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * dockview-core
3
- * @version 1.17.2
3
+ * @version 2.1.0
4
4
  * @link https://github.com/mathuo/dockview
5
5
  * @license MIT
6
6
  */
@@ -324,31 +324,6 @@ define(['exports'], (function (exports) { 'use strict';
324
324
  }
325
325
  }
326
326
 
327
- function createComponent(id, componentName, components = {}, frameworkComponents = {}, createFrameworkComponent, fallback) {
328
- const Component = typeof componentName === 'string'
329
- ? components[componentName]
330
- : undefined;
331
- const FrameworkComponent = typeof componentName === 'string'
332
- ? frameworkComponents[componentName]
333
- : undefined;
334
- if (Component && FrameworkComponent) {
335
- throw new Error(`Cannot create '${id}'. component '${componentName}' registered as both a component and frameworkComponent`);
336
- }
337
- if (FrameworkComponent) {
338
- if (!createFrameworkComponent) {
339
- throw new Error(`Cannot create '${id}' for framework component '${componentName}'. you must register a frameworkPanelWrapper to use framework components`);
340
- }
341
- return createFrameworkComponent.createComponent(id, componentName, FrameworkComponent);
342
- }
343
- if (!Component) {
344
- if (fallback) {
345
- return fallback();
346
- }
347
- throw new Error(`Cannot create '${id}', no component '${componentName}' provided`);
348
- }
349
- return new Component(id, componentName);
350
- }
351
-
352
327
  function watchElementResize(element, cb) {
353
328
  const observer = new ResizeObserver((entires) => {
354
329
  /**
@@ -817,10 +792,10 @@ define(['exports'], (function (exports) { 'use strict';
817
792
  const tmp = this.size;
818
793
  this.size = this.orthogonalSize;
819
794
  this.orthogonalSize = tmp;
820
- removeClasses(this.element, 'horizontal', 'vertical');
795
+ removeClasses(this.element, 'dv-horizontal', 'dv-vertical');
821
796
  this.element.classList.add(this.orientation == exports.Orientation.HORIZONTAL
822
- ? 'horizontal'
823
- : 'vertical');
797
+ ? 'dv-horizontal'
798
+ : 'dv-vertical');
824
799
  }
825
800
  get minimumSize() {
826
801
  return this.viewItems.reduce((r, item) => r + item.minimumSize, 0);
@@ -998,11 +973,11 @@ define(['exports'], (function (exports) { 'use strict';
998
973
  }
999
974
  style(styles) {
1000
975
  if ((styles === null || styles === void 0 ? void 0 : styles.separatorBorder) === 'transparent') {
1001
- removeClasses(this.element, 'separator-border');
976
+ removeClasses(this.element, 'dv-separator-border');
1002
977
  this.element.style.removeProperty('--dv-separator-border');
1003
978
  }
1004
979
  else {
1005
- addClasses(this.element, 'separator-border');
980
+ addClasses(this.element, 'dv-separator-border');
1006
981
  if (styles === null || styles === void 0 ? void 0 : styles.separatorBorder) {
1007
982
  this.element.style.setProperty('--dv-separator-border', styles.separatorBorder);
1008
983
  }
@@ -1072,7 +1047,7 @@ define(['exports'], (function (exports) { 'use strict';
1072
1047
  }
1073
1048
  addView(view, size = { type: 'distribute' }, index = this.viewItems.length, skipLayout) {
1074
1049
  const container = document.createElement('div');
1075
- container.className = 'view';
1050
+ container.className = 'dv-view';
1076
1051
  container.appendChild(view.element);
1077
1052
  let viewSize;
1078
1053
  if (typeof size === 'number') {
@@ -1104,7 +1079,7 @@ define(['exports'], (function (exports) { 'use strict';
1104
1079
  if (this.viewItems.length > 1) {
1105
1080
  //add sash
1106
1081
  const sash = document.createElement('div');
1107
- sash.className = 'sash';
1082
+ sash.className = 'dv-sash';
1108
1083
  const onPointerStart = (event) => {
1109
1084
  for (const item of this.viewItems) {
1110
1085
  item.enabled = false;
@@ -1363,7 +1338,8 @@ define(['exports'], (function (exports) { 'use strict';
1363
1338
  const offset = i === 0 || visiblePanelsBeforeThisView === 0
1364
1339
  ? 0
1365
1340
  : viewLeftOffsets[i - 1] +
1366
- (visiblePanelsBeforeThisView / sashCount) * marginReducedSize;
1341
+ (visiblePanelsBeforeThisView / sashCount) *
1342
+ marginReducedSize;
1367
1343
  if (i < this.viewItems.length - 1) {
1368
1344
  // calculate sash position
1369
1345
  const newSize = view.visible
@@ -1474,27 +1450,27 @@ define(['exports'], (function (exports) { 'use strict';
1474
1450
  }
1475
1451
  }
1476
1452
  updateSash(sash, state) {
1477
- toggleClass(sash.container, 'disabled', state === exports.SashState.DISABLED);
1478
- toggleClass(sash.container, 'enabled', state === exports.SashState.ENABLED);
1479
- toggleClass(sash.container, 'maximum', state === exports.SashState.MAXIMUM);
1480
- toggleClass(sash.container, 'minimum', state === exports.SashState.MINIMUM);
1453
+ toggleClass(sash.container, 'dv-disabled', state === exports.SashState.DISABLED);
1454
+ toggleClass(sash.container, 'dv-enabled', state === exports.SashState.ENABLED);
1455
+ toggleClass(sash.container, 'dv-maximum', state === exports.SashState.MAXIMUM);
1456
+ toggleClass(sash.container, 'dv-minimum', state === exports.SashState.MINIMUM);
1481
1457
  }
1482
1458
  createViewContainer() {
1483
1459
  const element = document.createElement('div');
1484
- element.className = 'view-container';
1460
+ element.className = 'dv-view-container';
1485
1461
  return element;
1486
1462
  }
1487
1463
  createSashContainer() {
1488
1464
  const element = document.createElement('div');
1489
- element.className = 'sash-container';
1465
+ element.className = 'dv-sash-container';
1490
1466
  return element;
1491
1467
  }
1492
1468
  createContainer() {
1493
1469
  const element = document.createElement('div');
1494
1470
  const orientationClassname = this._orientation === exports.Orientation.HORIZONTAL
1495
- ? 'horizontal'
1496
- : 'vertical';
1497
- element.className = `split-view-container ${orientationClassname}`;
1471
+ ? 'dv-horizontal'
1472
+ : 'dv-vertical';
1473
+ element.className = `dv-split-view-container ${orientationClassname}`;
1498
1474
  return element;
1499
1475
  }
1500
1476
  dispose() {
@@ -1545,7 +1521,7 @@ define(['exports'], (function (exports) { 'use strict';
1545
1521
  this.onDidChange = this._onDidChange.event;
1546
1522
  this._orientation = (_a = options.orientation) !== null && _a !== void 0 ? _a : exports.Orientation.VERTICAL;
1547
1523
  this.element = document.createElement('div');
1548
- this.element.className = 'pane-container';
1524
+ this.element.className = 'dv-pane-container';
1549
1525
  container.appendChild(this.element);
1550
1526
  this.splitview = new Splitview(this.element, {
1551
1527
  orientation: this._orientation,
@@ -1637,10 +1613,10 @@ define(['exports'], (function (exports) { 'use strict';
1637
1613
  clearTimeout(this.animationTimer);
1638
1614
  this.animationTimer = undefined;
1639
1615
  }
1640
- addClasses(this.element, 'animated');
1616
+ addClasses(this.element, 'dv-animated');
1641
1617
  this.animationTimer = setTimeout(() => {
1642
1618
  this.animationTimer = undefined;
1643
- removeClasses(this.element, 'animated');
1619
+ removeClasses(this.element, 'dv-animated');
1644
1620
  }, 200);
1645
1621
  }
1646
1622
  dispose() {
@@ -1865,7 +1841,7 @@ define(['exports'], (function (exports) { 'use strict';
1865
1841
  this._orthogonalSize = orthogonalSize;
1866
1842
  this._size = size;
1867
1843
  this.element = document.createElement('div');
1868
- this.element.className = 'branch-node';
1844
+ this.element.className = 'dv-branch-node';
1869
1845
  if (!childDescriptors) {
1870
1846
  this.splitview = new Splitview(this.element, {
1871
1847
  orientation: this.orientation,
@@ -2076,7 +2052,7 @@ define(['exports'], (function (exports) { 'use strict';
2076
2052
  if (!parentElement) {
2077
2053
  throw new Error('Invalid grid element');
2078
2054
  }
2079
- if (/\bgrid-view\b/.test(parentElement.className)) {
2055
+ if (/\bdv-grid-view\b/.test(parentElement.className)) {
2080
2056
  return [];
2081
2057
  }
2082
2058
  const index = indexInParent(parentElement);
@@ -2213,6 +2189,7 @@ define(['exports'], (function (exports) { 'use strict';
2213
2189
  if (this.hasMaximizedView()) {
2214
2190
  this.exitMaximizedView();
2215
2191
  }
2192
+ serializeBranchNode(this.getView(), this.orientation);
2216
2193
  const hiddenOnMaximize = [];
2217
2194
  function hideAllViewsBut(parent, exclude) {
2218
2195
  for (let i = 0; i < parent.children.length; i++) {
@@ -2234,7 +2211,10 @@ define(['exports'], (function (exports) { 'use strict';
2234
2211
  }
2235
2212
  hideAllViewsBut(this.root, node);
2236
2213
  this._maximizedNode = { leaf: node, hiddenOnMaximize };
2237
- this._onDidMaximizedNodeChange.fire();
2214
+ this._onDidMaximizedNodeChange.fire({
2215
+ view: node.view,
2216
+ isMaximized: true,
2217
+ });
2238
2218
  }
2239
2219
  exitMaximizedView() {
2240
2220
  if (!this._maximizedNode) {
@@ -2255,24 +2235,51 @@ define(['exports'], (function (exports) { 'use strict';
2255
2235
  }
2256
2236
  }
2257
2237
  showViewsInReverseOrder(this.root);
2238
+ const tmp = this._maximizedNode.leaf;
2258
2239
  this._maximizedNode = undefined;
2259
- this._onDidMaximizedNodeChange.fire();
2240
+ this._onDidMaximizedNodeChange.fire({
2241
+ view: tmp.view,
2242
+ isMaximized: false,
2243
+ });
2260
2244
  }
2261
2245
  serialize() {
2246
+ const maximizedView = this.maximizedView();
2247
+ let maxmizedViewLocation;
2248
+ if (maximizedView) {
2249
+ /**
2250
+ * The minimum information we can get away with in order to serialize a maxmized view is it's location within the grid
2251
+ * which is represented as a branch of indices
2252
+ */
2253
+ maxmizedViewLocation = getGridLocation(maximizedView.element);
2254
+ }
2262
2255
  if (this.hasMaximizedView()) {
2263
2256
  /**
2264
- * do not persist maximized view state
2265
- * firstly exit any maximized views to ensure the correct dimensions are persisted
2257
+ * the saved layout cannot be in its maxmized state otherwise all of the underlying
2258
+ * view dimensions will be wrong
2259
+ *
2260
+ * To counteract this we temporaily remove the maximized view to compute the serialized output
2261
+ * of the grid before adding back the maxmized view as to not alter the layout from the users
2262
+ * perspective when `.toJSON()` is called
2266
2263
  */
2267
2264
  this.exitMaximizedView();
2268
2265
  }
2269
2266
  const root = serializeBranchNode(this.getView(), this.orientation);
2270
- return {
2267
+ const resullt = {
2271
2268
  root,
2272
2269
  width: this.width,
2273
2270
  height: this.height,
2274
2271
  orientation: this.orientation,
2275
2272
  };
2273
+ if (maxmizedViewLocation) {
2274
+ resullt.maximizedNode = {
2275
+ location: maxmizedViewLocation,
2276
+ };
2277
+ }
2278
+ if (maximizedView) {
2279
+ // replace any maximzied view that was removed for serialization purposes
2280
+ this.maximizeView(maximizedView);
2281
+ }
2282
+ return resullt;
2276
2283
  }
2277
2284
  dispose() {
2278
2285
  this.disposable.dispose();
@@ -2291,6 +2298,19 @@ define(['exports'], (function (exports) { 'use strict';
2291
2298
  const orientation = json.orientation;
2292
2299
  const height = orientation === exports.Orientation.VERTICAL ? json.height : json.width;
2293
2300
  this._deserialize(json.root, orientation, deserializer, height);
2301
+ /**
2302
+ * The deserialied layout must be positioned through this.layout(...)
2303
+ * before any maximizedNode can be positioned
2304
+ */
2305
+ this.layout(json.width, json.height);
2306
+ if (json.maximizedNode) {
2307
+ const location = json.maximizedNode.location;
2308
+ const [_, node] = this.getNode(location);
2309
+ if (!(node instanceof LeafNode)) {
2310
+ return;
2311
+ }
2312
+ this.maximizeView(node.view);
2313
+ }
2294
2314
  }
2295
2315
  _deserialize(root, orientation, deserializer, orthogonalSize) {
2296
2316
  this.root = this._deserializeNode(root, orientation, deserializer, orthogonalSize);
@@ -2424,7 +2444,7 @@ define(['exports'], (function (exports) { 'use strict';
2424
2444
  this._onDidMaximizedNodeChange = new Emitter();
2425
2445
  this.onDidMaximizedNodeChange = this._onDidMaximizedNodeChange.event;
2426
2446
  this.element = document.createElement('div');
2427
- this.element.className = 'grid-view';
2447
+ this.element.className = 'dv-grid-view';
2428
2448
  this._locked = locked !== null && locked !== void 0 ? locked : false;
2429
2449
  this._margin = margin !== null && margin !== void 0 ? margin : 0;
2430
2450
  this.root = new BranchNode(orientation, proportionalLayout, styles, 0, 0, this.locked, this.margin);
@@ -2715,6 +2735,8 @@ define(['exports'], (function (exports) { 'use strict';
2715
2735
  this.onDidRemove = this._onDidRemove.event;
2716
2736
  this._onDidAdd = new Emitter();
2717
2737
  this.onDidAdd = this._onDidAdd.event;
2738
+ this._onDidMaximizedChange = new Emitter();
2739
+ this.onDidMaximizedChange = this._onDidMaximizedChange.event;
2718
2740
  this._onDidActiveChange = new Emitter();
2719
2741
  this.onDidActiveChange = this._onDidActiveChange.event;
2720
2742
  this._bufferOnDidLayoutChange = new AsapEvent();
@@ -2730,7 +2752,12 @@ define(['exports'], (function (exports) { 'use strict';
2730
2752
  this.gridview.locked = !!options.locked;
2731
2753
  this.element.appendChild(this.gridview.element);
2732
2754
  this.layout(0, 0, true); // set some elements height/widths
2733
- this.addDisposables(this.gridview.onDidViewVisibilityChange(() => this._onDidViewVisibilityChangeMicroTaskQueue.fire()), this.onDidViewVisibilityChangeMicroTaskQueue(() => {
2755
+ this.addDisposables(this.gridview.onDidMaximizedNodeChange((event) => {
2756
+ this._onDidMaximizedChange.fire({
2757
+ panel: event.view,
2758
+ isMaximized: event.isMaximized,
2759
+ });
2760
+ }), this.gridview.onDidViewVisibilityChange(() => this._onDidViewVisibilityChangeMicroTaskQueue.fire()), this.onDidViewVisibilityChangeMicroTaskQueue(() => {
2734
2761
  this.layout(this.width, this.height, true);
2735
2762
  }), exports.DockviewDisposable.from(() => {
2736
2763
  var _a;
@@ -2780,9 +2807,6 @@ define(['exports'], (function (exports) { 'use strict';
2780
2807
  hasMaximizedGroup() {
2781
2808
  return this.gridview.hasMaximizedView();
2782
2809
  }
2783
- get onDidMaximizedGroupChange() {
2784
- return this.gridview.onDidMaximizedNodeChange;
2785
- }
2786
2810
  doAddGroup(group, location = [0], size) {
2787
2811
  this.gridview.addView(group, size !== null && size !== void 0 ? size : exports.Sizing.Distribute, location);
2788
2812
  this._onDidAdd.fire(group);
@@ -3646,7 +3670,7 @@ define(['exports'], (function (exports) { 'use strict';
3646
3670
  * dnd logic. You can see the code at
3647
3671
  * https://github.com/react-dnd/react-dnd/blob/main/packages/backend-html5/src/HTML5BackendImpl.ts#L542
3648
3672
  */
3649
- event.dataTransfer.setData('text/plain', '__dockview_internal_drag_event__');
3673
+ event.dataTransfer.setData('text/plain', '');
3650
3674
  }
3651
3675
  }
3652
3676
  }), addDisposableListener(this.el, 'dragend', () => {
@@ -3820,12 +3844,12 @@ define(['exports'], (function (exports) { 'use strict';
3820
3844
  this.markAsUsed(e);
3821
3845
  if (!this.targetElement) {
3822
3846
  this.targetElement = document.createElement('div');
3823
- this.targetElement.className = 'drop-target-dropzone';
3847
+ this.targetElement.className = 'dv-drop-target-dropzone';
3824
3848
  this.overlayElement = document.createElement('div');
3825
- this.overlayElement.className = 'drop-target-selection';
3849
+ this.overlayElement.className = 'dv-drop-target-selection';
3826
3850
  this._state = 'center';
3827
3851
  this.targetElement.appendChild(this.overlayElement);
3828
- this.element.classList.add('drop-target');
3852
+ this.element.classList.add('dv-drop-target');
3829
3853
  this.element.append(this.targetElement);
3830
3854
  }
3831
3855
  this.toggleClasses(quadrant, width, height);
@@ -3963,7 +3987,7 @@ define(['exports'], (function (exports) { 'use strict';
3963
3987
  this.element.removeChild(this.targetElement);
3964
3988
  this.targetElement = undefined;
3965
3989
  this.overlayElement = undefined;
3966
- this.element.classList.remove('drop-target');
3990
+ this.element.classList.remove('dv-drop-target');
3967
3991
  }
3968
3992
  }
3969
3993
  }
@@ -4300,7 +4324,7 @@ define(['exports'], (function (exports) { 'use strict';
4300
4324
  this._headerVisible = isHeaderVisible;
4301
4325
  this._onDidChangeExpansionState.fire(this.isExpanded()); // initialize value
4302
4326
  this._orientation = orientation;
4303
- this.element.classList.add('pane');
4327
+ this.element.classList.add('dv-pane');
4304
4328
  this.addDisposables(this.api.onWillVisibilityChange((event) => {
4305
4329
  const { isVisible } = event;
4306
4330
  const { accessor } = this._params;
@@ -4397,14 +4421,14 @@ define(['exports'], (function (exports) { 'use strict';
4397
4421
  renderOnce() {
4398
4422
  this.header = document.createElement('div');
4399
4423
  this.header.tabIndex = 0;
4400
- this.header.className = 'pane-header';
4424
+ this.header.className = 'dv-pane-header';
4401
4425
  this.header.style.height = `${this.headerSize}px`;
4402
4426
  this.header.style.lineHeight = `${this.headerSize}px`;
4403
4427
  this.header.style.minHeight = `${this.headerSize}px`;
4404
4428
  this.header.style.maxHeight = `${this.headerSize}px`;
4405
4429
  this.element.appendChild(this.header);
4406
4430
  this.body = document.createElement('div');
4407
- this.body.className = 'pane-body';
4431
+ this.body.className = 'dv-pane-body';
4408
4432
  this.element.appendChild(this.body);
4409
4433
  }
4410
4434
  // TODO slightly hacky by-pass of the component to create a body and header component
@@ -4525,7 +4549,7 @@ define(['exports'], (function (exports) { 'use strict';
4525
4549
  this._onDidBlur = new Emitter();
4526
4550
  this.onDidBlur = this._onDidBlur.event;
4527
4551
  this._element = document.createElement('div');
4528
- this._element.className = 'content-container';
4552
+ this._element.className = 'dv-content-container';
4529
4553
  this._element.tabIndex = -1;
4530
4554
  this.addDisposables(this._onDidFocus, this._onDidBlur);
4531
4555
  this.dropTarget = new Droptarget(this.element, {
@@ -4598,6 +4622,8 @@ define(['exports'], (function (exports) { 'use strict';
4598
4622
  referenceContainer: this,
4599
4623
  });
4600
4624
  break;
4625
+ default:
4626
+ throw new Error(`dockview: invalid renderer type '${panel.api.renderer}'`);
4601
4627
  }
4602
4628
  if (doRender) {
4603
4629
  const focusTracker = trackFocus(container);
@@ -4664,10 +4690,10 @@ define(['exports'], (function (exports) { 'use strict';
4664
4690
  this._onDragStart = new Emitter();
4665
4691
  this.onDragStart = this._onDragStart.event;
4666
4692
  this._element = document.createElement('div');
4667
- this._element.className = 'tab';
4693
+ this._element.className = 'dv-tab';
4668
4694
  this._element.tabIndex = 0;
4669
4695
  this._element.draggable = true;
4670
- toggleClass(this.element, 'inactive-tab', true);
4696
+ toggleClass(this.element, 'dv-inactive-tab', true);
4671
4697
  const dragHandler = new TabDragHandler(this._element, this.accessor, this.group, this.panel);
4672
4698
  this.dropTarget = new Droptarget(this._element, {
4673
4699
  acceptedTargetZones: ['center'],
@@ -4700,8 +4726,8 @@ define(['exports'], (function (exports) { 'use strict';
4700
4726
  }), this.dropTarget);
4701
4727
  }
4702
4728
  setActive(isActive) {
4703
- toggleClass(this.element, 'active-tab', isActive);
4704
- toggleClass(this.element, 'inactive-tab', !isActive);
4729
+ toggleClass(this.element, 'dv-active-tab', isActive);
4730
+ toggleClass(this.element, 'dv-inactive-tab', !isActive);
4705
4731
  }
4706
4732
  setContent(part) {
4707
4733
  if (this.content) {
@@ -4789,8 +4815,7 @@ define(['exports'], (function (exports) { 'use strict';
4789
4815
  this._onDragStart = new Emitter();
4790
4816
  this.onDragStart = this._onDragStart.event;
4791
4817
  this._element = document.createElement('div');
4792
- this._element.className = 'void-container';
4793
- this._element.tabIndex = 0;
4818
+ this._element.className = 'dv-void-container';
4794
4819
  this._element.draggable = true;
4795
4820
  this.addDisposables(this._onDrop, this._onDragStart, addDisposableListener(this._element, 'pointerdown', () => {
4796
4821
  this.accessor.doSetGroupActive(this.group);
@@ -4909,16 +4934,16 @@ define(['exports'], (function (exports) { 'use strict';
4909
4934
  this._onWillShowOverlay = new Emitter();
4910
4935
  this.onWillShowOverlay = this._onWillShowOverlay.event;
4911
4936
  this._element = document.createElement('div');
4912
- this._element.className = 'tabs-and-actions-container';
4937
+ this._element.className = 'dv-tabs-and-actions-container';
4913
4938
  toggleClass(this._element, 'dv-full-width-single-tab', this.accessor.options.singleTabMode === 'fullwidth');
4914
4939
  this.rightActionsContainer = document.createElement('div');
4915
- this.rightActionsContainer.className = 'right-actions-container';
4940
+ this.rightActionsContainer.className = 'dv-right-actions-container';
4916
4941
  this.leftActionsContainer = document.createElement('div');
4917
- this.leftActionsContainer.className = 'left-actions-container';
4942
+ this.leftActionsContainer.className = 'dv-left-actions-container';
4918
4943
  this.preActionsContainer = document.createElement('div');
4919
- this.preActionsContainer.className = 'pre-actions-container';
4944
+ this.preActionsContainer.className = 'dv-pre-actions-container';
4920
4945
  this.tabContainer = document.createElement('div');
4921
- this.tabContainer.className = 'tabs-container';
4946
+ this.tabContainer.className = 'dv-tabs-container';
4922
4947
  this.voidContainer = new VoidContainer(this.accessor, this.group);
4923
4948
  this._element.appendChild(this.preActionsContainer);
4924
4949
  this._element.appendChild(this.tabContainer);
@@ -5007,14 +5032,10 @@ define(['exports'], (function (exports) { 'use strict';
5007
5032
  });
5008
5033
  }
5009
5034
  openPanel(panel, index = this.tabs.length) {
5010
- var _a;
5011
5035
  if (this.tabs.find((tab) => tab.value.panel.id === panel.id)) {
5012
5036
  return;
5013
5037
  }
5014
5038
  const tab = new Tab(panel, this.accessor, this.group);
5015
- if (!((_a = panel.view) === null || _a === void 0 ? void 0 : _a.tab)) {
5016
- throw new Error('invalid header component');
5017
- }
5018
5039
  tab.setContent(panel.view.tab);
5019
5040
  const disposable = new CompositeDisposable(tab.onDragStart((event) => {
5020
5041
  this._onTabDragStart.fire({ nativeEvent: event, panel });
@@ -5108,6 +5129,7 @@ define(['exports'], (function (exports) { 'use strict';
5108
5129
  disableDnd: undefined,
5109
5130
  gap: undefined,
5110
5131
  className: undefined,
5132
+ noPanelsOverlay: undefined,
5111
5133
  };
5112
5134
  return Object.keys(properties);
5113
5135
  })();
@@ -5204,7 +5226,7 @@ define(['exports'], (function (exports) { 'use strict';
5204
5226
  }
5205
5227
  class DockviewGroupPanelModel extends CompositeDisposable {
5206
5228
  get element() {
5207
- throw new Error('not supported');
5229
+ throw new Error('dockview: not supported');
5208
5230
  }
5209
5231
  get activePanel() {
5210
5232
  return this._activePanel;
@@ -5214,7 +5236,7 @@ define(['exports'], (function (exports) { 'use strict';
5214
5236
  }
5215
5237
  set locked(value) {
5216
5238
  this._locked = value;
5217
- toggleClass(this.container, 'locked-groupview', value === 'no-drop-target' || value);
5239
+ toggleClass(this.container, 'dv-locked-groupview', value === 'no-drop-target' || value);
5218
5240
  }
5219
5241
  get isActive() {
5220
5242
  return this._isGroupActive;
@@ -5285,6 +5307,7 @@ define(['exports'], (function (exports) { 'use strict';
5285
5307
  this._locked = false;
5286
5308
  this._location = { type: 'grid' };
5287
5309
  this.mostRecentlyUsed = [];
5310
+ this._overwriteRenderContainer = null;
5288
5311
  this._onDidChange = new Emitter();
5289
5312
  this.onDidChange = this._onDidChange.event;
5290
5313
  this._width = 0;
@@ -5315,8 +5338,7 @@ define(['exports'], (function (exports) { 'use strict';
5315
5338
  this.onDidActivePanelChange = this._onDidActivePanelChange.event;
5316
5339
  this._onUnhandledDragOverEvent = new Emitter();
5317
5340
  this.onUnhandledDragOverEvent = this._onUnhandledDragOverEvent.event;
5318
- this._overwriteRenderContainer = null;
5319
- toggleClass(this.container, 'groupview', true);
5341
+ toggleClass(this.container, 'dv-groupview', true);
5320
5342
  this._api = new DockviewApi(this.accessor);
5321
5343
  this.tabsContainer = new TabsContainer(this.accessor, this.groupPanel);
5322
5344
  this.contentContainer = new ContentContainer(this.accessor, this);
@@ -5548,7 +5570,10 @@ define(['exports'], (function (exports) { 'use strict';
5548
5570
  this.doClose(panel);
5549
5571
  }
5550
5572
  doClose(panel) {
5551
- this.accessor.removePanel(panel);
5573
+ const isLast = this.panels.length === 1 && this.accessor.groups.length === 1;
5574
+ this.accessor.removePanel(panel, isLast && this.accessor.options.noPanelsOverlay === 'emptyGroup'
5575
+ ? { removeEmptyGroup: false }
5576
+ : undefined);
5552
5577
  }
5553
5578
  isPanelActive(panel) {
5554
5579
  return this._activePanel === panel;
@@ -5561,8 +5586,8 @@ define(['exports'], (function (exports) { 'use strict';
5561
5586
  return;
5562
5587
  }
5563
5588
  this._isGroupActive = isGroupActive;
5564
- toggleClass(this.container, 'active-group', isGroupActive);
5565
- toggleClass(this.container, 'inactive-group', !isGroupActive);
5589
+ toggleClass(this.container, 'dv-active-group', isGroupActive);
5590
+ toggleClass(this.container, 'dv-inactive-group', !isGroupActive);
5566
5591
  this.tabsContainer.setActive(this.isActive);
5567
5592
  if (!this._activePanel && this.panels.length > 0) {
5568
5593
  this.doSetActivePanel(this.panels[0]);
@@ -5654,7 +5679,6 @@ define(['exports'], (function (exports) { 'use strict';
5654
5679
  }
5655
5680
  updateContainer() {
5656
5681
  var _a, _b;
5657
- toggleClass(this.container, 'empty', this.isEmpty);
5658
5682
  this.panels.forEach((panel) => panel.runEvents());
5659
5683
  if (this.isEmpty && !this.watermark) {
5660
5684
  const watermark = this.accessor.createWatermarkComponent();
@@ -5668,14 +5692,12 @@ define(['exports'], (function (exports) { 'use strict';
5668
5692
  this.accessor.doSetGroupActive(this.groupPanel);
5669
5693
  }
5670
5694
  });
5671
- this.tabsContainer.hide();
5672
5695
  this.contentContainer.element.appendChild(this.watermark.element);
5673
5696
  }
5674
5697
  if (!this.isEmpty && this.watermark) {
5675
5698
  this.watermark.element.remove();
5676
5699
  (_b = (_a = this.watermark).dispose) === null || _b === void 0 ? void 0 : _b.call(_a);
5677
5700
  this.watermark = undefined;
5678
- this.tabsContainer.show();
5679
5701
  }
5680
5702
  }
5681
5703
  canDisplayOverlay(event, position, target) {
@@ -5795,6 +5817,34 @@ define(['exports'], (function (exports) { 'use strict';
5795
5817
  return this._snap;
5796
5818
  }
5797
5819
  get minimumWidth() {
5820
+ /**
5821
+ * defer to protected function to allow subclasses to override easily.
5822
+ * see https://github.com/microsoft/TypeScript/issues/338
5823
+ */
5824
+ return this.__minimumWidth();
5825
+ }
5826
+ get minimumHeight() {
5827
+ /**
5828
+ * defer to protected function to allow subclasses to override easily.
5829
+ * see https://github.com/microsoft/TypeScript/issues/338
5830
+ */
5831
+ return this.__minimumHeight();
5832
+ }
5833
+ get maximumHeight() {
5834
+ /**
5835
+ * defer to protected function to allow subclasses to override easily.
5836
+ * see https://github.com/microsoft/TypeScript/issues/338
5837
+ */
5838
+ return this.__maximumHeight();
5839
+ }
5840
+ get maximumWidth() {
5841
+ /**
5842
+ * defer to protected function to allow subclasses to override easily.
5843
+ * see https://github.com/microsoft/TypeScript/issues/338
5844
+ */
5845
+ return this.__maximumWidth();
5846
+ }
5847
+ __minimumWidth() {
5798
5848
  const width = typeof this._minimumWidth === 'function'
5799
5849
  ? this._minimumWidth()
5800
5850
  : this._minimumWidth;
@@ -5804,7 +5854,17 @@ define(['exports'], (function (exports) { 'use strict';
5804
5854
  }
5805
5855
  return width;
5806
5856
  }
5807
- get minimumHeight() {
5857
+ __maximumWidth() {
5858
+ const width = typeof this._maximumWidth === 'function'
5859
+ ? this._maximumWidth()
5860
+ : this._maximumWidth;
5861
+ if (width !== this._evaluatedMaximumWidth) {
5862
+ this._evaluatedMaximumWidth = width;
5863
+ this.updateConstraints();
5864
+ }
5865
+ return width;
5866
+ }
5867
+ __minimumHeight() {
5808
5868
  const height = typeof this._minimumHeight === 'function'
5809
5869
  ? this._minimumHeight()
5810
5870
  : this._minimumHeight;
@@ -5814,7 +5874,7 @@ define(['exports'], (function (exports) { 'use strict';
5814
5874
  }
5815
5875
  return height;
5816
5876
  }
5817
- get maximumHeight() {
5877
+ __maximumHeight() {
5818
5878
  const height = typeof this._maximumHeight === 'function'
5819
5879
  ? this._maximumHeight()
5820
5880
  : this._maximumHeight;
@@ -5824,16 +5884,6 @@ define(['exports'], (function (exports) { 'use strict';
5824
5884
  }
5825
5885
  return height;
5826
5886
  }
5827
- get maximumWidth() {
5828
- const width = typeof this._maximumWidth === 'function'
5829
- ? this._maximumWidth()
5830
- : this._maximumWidth;
5831
- if (width !== this._evaluatedMaximumWidth) {
5832
- this._evaluatedMaximumWidth = width;
5833
- this.updateConstraints();
5834
- }
5835
- return width;
5836
- }
5837
5887
  get isActive() {
5838
5888
  return this.api.isActive;
5839
5889
  }
@@ -5984,6 +6034,7 @@ define(['exports'], (function (exports) { 'use strict';
5984
6034
  position: options.group
5985
6035
  ? (_c = options.position) !== null && _c !== void 0 ? _c : 'center'
5986
6036
  : 'center',
6037
+ index: options.index,
5987
6038
  },
5988
6039
  });
5989
6040
  }
@@ -6035,30 +6086,34 @@ define(['exports'], (function (exports) { 'use strict';
6035
6086
  get minimumWidth() {
6036
6087
  var _a;
6037
6088
  const activePanelMinimumWidth = (_a = this.activePanel) === null || _a === void 0 ? void 0 : _a.minimumWidth;
6038
- return typeof activePanelMinimumWidth === 'number'
6039
- ? activePanelMinimumWidth
6040
- : MINIMUM_DOCKVIEW_GROUP_PANEL_WIDTH;
6089
+ if (typeof activePanelMinimumWidth === 'number') {
6090
+ return activePanelMinimumWidth;
6091
+ }
6092
+ return super.__minimumWidth();
6041
6093
  }
6042
6094
  get minimumHeight() {
6043
6095
  var _a;
6044
6096
  const activePanelMinimumHeight = (_a = this.activePanel) === null || _a === void 0 ? void 0 : _a.minimumHeight;
6045
- return typeof activePanelMinimumHeight === 'number'
6046
- ? activePanelMinimumHeight
6047
- : MINIMUM_DOCKVIEW_GROUP_PANEL_HEIGHT;
6097
+ if (typeof activePanelMinimumHeight === 'number') {
6098
+ return activePanelMinimumHeight;
6099
+ }
6100
+ return super.__minimumHeight();
6048
6101
  }
6049
6102
  get maximumWidth() {
6050
6103
  var _a;
6051
6104
  const activePanelMaximumWidth = (_a = this.activePanel) === null || _a === void 0 ? void 0 : _a.maximumWidth;
6052
- return typeof activePanelMaximumWidth === 'number'
6053
- ? activePanelMaximumWidth
6054
- : Number.MAX_SAFE_INTEGER;
6105
+ if (typeof activePanelMaximumWidth === 'number') {
6106
+ return activePanelMaximumWidth;
6107
+ }
6108
+ return super.__maximumWidth();
6055
6109
  }
6056
6110
  get maximumHeight() {
6057
6111
  var _a;
6058
6112
  const activePanelMaximumHeight = (_a = this.activePanel) === null || _a === void 0 ? void 0 : _a.maximumHeight;
6059
- return typeof activePanelMaximumHeight === 'number'
6060
- ? activePanelMaximumHeight
6061
- : Number.MAX_SAFE_INTEGER;
6113
+ if (typeof activePanelMaximumHeight === 'number') {
6114
+ return activePanelMaximumHeight;
6115
+ }
6116
+ return super.__maximumHeight();
6062
6117
  }
6063
6118
  get panels() {
6064
6119
  return this._model.panels;
@@ -6172,12 +6227,14 @@ define(['exports'], (function (exports) { 'use strict';
6172
6227
  return this.group.api.getWindow();
6173
6228
  }
6174
6229
  moveTo(options) {
6175
- var _a;
6230
+ var _a, _b;
6176
6231
  this.accessor.moveGroupOrPanel({
6177
6232
  from: { groupId: this._group.id, panelId: this.panel.id },
6178
6233
  to: {
6179
- group: options.group,
6180
- position: (_a = options.position) !== null && _a !== void 0 ? _a : 'center',
6234
+ group: (_a = options.group) !== null && _a !== void 0 ? _a : this._group,
6235
+ position: options.group
6236
+ ? (_b = options.position) !== null && _b !== void 0 ? _b : 'center'
6237
+ : 'center',
6181
6238
  index: options.index,
6182
6239
  },
6183
6240
  });
@@ -6396,7 +6453,7 @@ define(['exports'], (function (exports) { 'use strict';
6396
6453
  svg.setAttributeNS(null, 'viewBox', params.viewbox);
6397
6454
  svg.setAttributeNS(null, 'aria-hidden', 'false');
6398
6455
  svg.setAttributeNS(null, 'focusable', 'false');
6399
- svg.classList.add('dockview-svg');
6456
+ svg.classList.add('dv-svg');
6400
6457
  const path = document.createElementNS('http://www.w3.org/2000/svg', 'path');
6401
6458
  path.setAttributeNS(null, 'd', params.path);
6402
6459
  svg.appendChild(path);
@@ -6567,39 +6624,10 @@ define(['exports'], (function (exports) { 'use strict';
6567
6624
  constructor() {
6568
6625
  super();
6569
6626
  this._element = document.createElement('div');
6570
- this._element.className = 'watermark';
6571
- const title = document.createElement('div');
6572
- title.className = 'watermark-title';
6573
- const emptySpace = document.createElement('span');
6574
- emptySpace.style.flexGrow = '1';
6575
- const content = document.createElement('div');
6576
- content.className = 'watermark-content';
6577
- this._element.appendChild(title);
6578
- this._element.appendChild(content);
6579
- const actionsContainer = document.createElement('div');
6580
- actionsContainer.className = 'actions-container';
6581
- const closeAnchor = document.createElement('div');
6582
- closeAnchor.className = 'close-action';
6583
- closeAnchor.appendChild(createCloseButton());
6584
- actionsContainer.appendChild(closeAnchor);
6585
- title.appendChild(emptySpace);
6586
- title.appendChild(actionsContainer);
6587
- this.addDisposables(addDisposableListener(closeAnchor, 'click', (event) => {
6588
- var _a;
6589
- event.preventDefault();
6590
- if (this._group) {
6591
- (_a = this._api) === null || _a === void 0 ? void 0 : _a.removeGroup(this._group);
6592
- }
6593
- }));
6627
+ this._element.className = 'dv-watermark';
6594
6628
  }
6595
6629
  init(_params) {
6596
- this._api = _params.containerApi;
6597
- this._group = _params.group;
6598
- this.render();
6599
- }
6600
- render() {
6601
- const isOneGroup = !!(this._api && this._api.size <= 1);
6602
- toggleClass(this.element, 'has-actions', isOneGroup);
6630
+ // noop
6603
6631
  }
6604
6632
  }
6605
6633
 
@@ -6636,6 +6664,9 @@ define(['exports'], (function (exports) { 'use strict';
6636
6664
  get element() {
6637
6665
  return this._element;
6638
6666
  }
6667
+ get isVisible() {
6668
+ return this._isVisible;
6669
+ }
6639
6670
  constructor(options) {
6640
6671
  super();
6641
6672
  this.options = options;
@@ -6646,6 +6677,7 @@ define(['exports'], (function (exports) { 'use strict';
6646
6677
  this.onDidChangeEnd = this._onDidChangeEnd.event;
6647
6678
  this.addDisposables(this._onDidChange, this._onDidChangeEnd);
6648
6679
  this._element.className = 'dv-resize-container';
6680
+ this._isVisible = true;
6649
6681
  this.setupResize('top');
6650
6682
  this.setupResize('bottom');
6651
6683
  this.setupResize('left');
@@ -6660,6 +6692,13 @@ define(['exports'], (function (exports) { 'use strict';
6660
6692
  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 })));
6661
6693
  arialLevelTracker.push(this._element);
6662
6694
  }
6695
+ setVisible(isVisible) {
6696
+ if (isVisible === this.isVisible) {
6697
+ return;
6698
+ }
6699
+ this._isVisible = isVisible;
6700
+ toggleClass(this.element, 'dv-hidden', !this.isVisible);
6701
+ }
6663
6702
  bringToFront() {
6664
6703
  arialLevelTracker.push(this._element);
6665
6704
  }
@@ -7233,7 +7272,6 @@ define(['exports'], (function (exports) { 'use strict';
7233
7272
  window: this._window.value,
7234
7273
  });
7235
7274
  this._window.disposable.dispose();
7236
- this._window.value.close();
7237
7275
  this._window = null;
7238
7276
  this._onDidClose.fire();
7239
7277
  }
@@ -7265,7 +7303,9 @@ define(['exports'], (function (exports) { 'use strict';
7265
7303
  }
7266
7304
  const disposable = new CompositeDisposable();
7267
7305
  this._window = { value: externalWindow, disposable };
7268
- disposable.addDisposables(addDisposableWindowListener(window, 'beforeunload', () => {
7306
+ disposable.addDisposables(exports.DockviewDisposable.from(() => {
7307
+ externalWindow.close();
7308
+ }), addDisposableWindowListener(window, 'beforeunload', () => {
7269
7309
  /**
7270
7310
  * before the main window closes we should close this popup too
7271
7311
  * to be good citizens
@@ -7282,7 +7322,7 @@ define(['exports'], (function (exports) { 'use strict';
7282
7322
  id: this.target,
7283
7323
  window: externalWindow,
7284
7324
  });
7285
- return new Promise((resolve) => {
7325
+ return new Promise((resolve, reject) => {
7286
7326
  externalWindow.addEventListener('unload', (e) => {
7287
7327
  // if page fails to load before unloading
7288
7328
  // this.close();
@@ -7291,21 +7331,27 @@ define(['exports'], (function (exports) { 'use strict';
7291
7331
  /**
7292
7332
  * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/load_event
7293
7333
  */
7294
- const externalDocument = externalWindow.document;
7295
- externalDocument.title = document.title;
7296
- externalDocument.body.appendChild(container);
7297
- addStyles(externalDocument, window.document.styleSheets);
7298
- /**
7299
- * beforeunload must be registered after load for reasons I could not determine
7300
- * otherwise the beforeunload event will not fire when the window is closed
7301
- */
7302
- addDisposableWindowListener(externalWindow, 'beforeunload', () => {
7334
+ try {
7335
+ const externalDocument = externalWindow.document;
7336
+ externalDocument.title = document.title;
7337
+ externalDocument.body.appendChild(container);
7338
+ addStyles(externalDocument, window.document.styleSheets);
7303
7339
  /**
7304
- * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event
7340
+ * beforeunload must be registered after load for reasons I could not determine
7341
+ * otherwise the beforeunload event will not fire when the window is closed
7305
7342
  */
7306
- this.close();
7307
- });
7308
- resolve(container);
7343
+ addDisposableWindowListener(externalWindow, 'beforeunload', () => {
7344
+ /**
7345
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event
7346
+ */
7347
+ this.close();
7348
+ });
7349
+ resolve(container);
7350
+ }
7351
+ catch (err) {
7352
+ // only except this is the DOM isn't setup. e.g. in a in correctly configured test
7353
+ reject(err);
7354
+ }
7309
7355
  });
7310
7356
  });
7311
7357
  });
@@ -7412,6 +7458,8 @@ define(['exports'], (function (exports) { 'use strict';
7412
7458
  this.onDidActivePanelChange = this._onDidActivePanelChange.event;
7413
7459
  this._onDidMovePanel = new Emitter();
7414
7460
  this.onDidMovePanel = this._onDidMovePanel.event;
7461
+ this._onDidMaximizedGroupChange = new Emitter();
7462
+ this.onDidMaximizedGroupChange = this._onDidMaximizedGroupChange.event;
7415
7463
  this._floatingGroups = [];
7416
7464
  this._popoutGroups = [];
7417
7465
  this._onDidRemoveGroup = new Emitter();
@@ -7438,6 +7486,11 @@ define(['exports'], (function (exports) { 'use strict';
7438
7486
  if (!this._moving) {
7439
7487
  this._onDidActiveGroupChange.fire(event);
7440
7488
  }
7489
+ }), this.onDidMaximizedChange((event) => {
7490
+ this._onDidMaximizedGroupChange.fire({
7491
+ group: event.panel,
7492
+ isMaximized: event.isMaximized,
7493
+ });
7441
7494
  }), exports.DockviewEvent.any(this.onDidAdd, this.onDidRemove)(() => {
7442
7495
  this.updateWatermark();
7443
7496
  }), exports.DockviewEvent.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidAddGroup, this.onDidRemove, this.onDidMovePanel, this.onDidActivePanelChange)(() => {
@@ -7536,8 +7589,28 @@ define(['exports'], (function (exports) { 'use strict';
7536
7589
  this._api = new DockviewApi(this);
7537
7590
  this.updateWatermark();
7538
7591
  }
7592
+ setVisible(panel, visible) {
7593
+ switch (panel.api.location.type) {
7594
+ case 'grid':
7595
+ super.setVisible(panel, visible);
7596
+ break;
7597
+ case 'floating': {
7598
+ const item = this.floatingGroups.find((floatingGroup) => floatingGroup.group === panel);
7599
+ if (item) {
7600
+ item.overlay.setVisible(visible);
7601
+ panel.api._onDidVisibilityChange.fire({
7602
+ isVisible: visible,
7603
+ });
7604
+ }
7605
+ break;
7606
+ }
7607
+ case 'popout':
7608
+ console.warn('dockview: You cannot hide a group that is in a popout window');
7609
+ break;
7610
+ }
7611
+ }
7539
7612
  addPopoutGroup(itemToPopout, options) {
7540
- var _a, _b, _c;
7613
+ var _a, _b, _c, _d, _e;
7541
7614
  if (itemToPopout instanceof DockviewPanel &&
7542
7615
  itemToPopout.group.size === 1) {
7543
7616
  return this.addPopoutGroup(itemToPopout.group, options);
@@ -7558,12 +7631,9 @@ define(['exports'], (function (exports) { 'use strict';
7558
7631
  }
7559
7632
  const box = getBox();
7560
7633
  const groupId = (_b = (_a = options === null || options === void 0 ? void 0 : options.overridePopoutGroup) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : this.getNextGroupId();
7561
- if (itemToPopout.api.location.type === 'grid') {
7562
- itemToPopout.api.setVisible(false);
7563
- }
7564
7634
  const _window = new PopoutWindow(`${this.id}-${groupId}`, // unique id
7565
7635
  theme !== null && theme !== void 0 ? theme : '', {
7566
- url: (_c = options === null || options === void 0 ? void 0 : options.popoutUrl) !== null && _c !== void 0 ? _c : '/popout.html',
7636
+ url: (_e = (_c = options === null || options === void 0 ? void 0 : options.popoutUrl) !== null && _c !== void 0 ? _c : (_d = this.options) === null || _d === void 0 ? void 0 : _d.popoutUrl) !== null && _e !== void 0 ? _e : '/popout.html',
7567
7637
  left: window.screenX + box.left,
7568
7638
  top: window.screenY + box.top,
7569
7639
  width: box.width,
@@ -7577,13 +7647,12 @@ define(['exports'], (function (exports) { 'use strict';
7577
7647
  return _window
7578
7648
  .open()
7579
7649
  .then((popoutContainer) => {
7580
- var _a;
7581
7650
  if (_window.isDisposed) {
7582
- return;
7651
+ return false;
7583
7652
  }
7584
7653
  if (popoutContainer === null) {
7585
7654
  popoutWindowDisposable.dispose();
7586
- return;
7655
+ return false;
7587
7656
  }
7588
7657
  const gready = document.createElement('div');
7589
7658
  gready.className = 'dv-overlay-render-container';
@@ -7592,30 +7661,45 @@ define(['exports'], (function (exports) { 'use strict';
7592
7661
  ? itemToPopout.group
7593
7662
  : itemToPopout;
7594
7663
  const referenceLocation = itemToPopout.api.location.type;
7595
- const group = (_a = options === null || options === void 0 ? void 0 : options.overridePopoutGroup) !== null && _a !== void 0 ? _a : this.createGroup({ id: groupId });
7596
- group.model.renderContainer = overlayRenderContainer;
7597
- if (!(options === null || options === void 0 ? void 0 : options.overridePopoutGroup)) {
7598
- this._onDidAddGroup.fire(group);
7664
+ /**
7665
+ * The group that is being added doesn't already exist within the DOM, the most likely occurance
7666
+ * of this case is when being called from the `fromJSON(...)` method
7667
+ */
7668
+ const isGroupAddedToDom = referenceGroup.element.parentElement !== null;
7669
+ let group;
7670
+ if (!isGroupAddedToDom) {
7671
+ group = referenceGroup;
7599
7672
  }
7600
- if (itemToPopout instanceof DockviewPanel) {
7601
- this.movingLock(() => {
7602
- const panel = referenceGroup.model.removePanel(itemToPopout);
7603
- group.model.openPanel(panel);
7604
- });
7673
+ else if (options === null || options === void 0 ? void 0 : options.overridePopoutGroup) {
7674
+ group = options.overridePopoutGroup;
7605
7675
  }
7606
7676
  else {
7607
- this.movingLock(() => moveGroupWithoutDestroying({
7608
- from: referenceGroup,
7609
- to: group,
7610
- }));
7611
- switch (referenceLocation) {
7612
- case 'grid':
7613
- referenceGroup.api.setVisible(false);
7614
- break;
7615
- case 'floating':
7616
- case 'popout':
7617
- this.removeGroup(referenceGroup);
7618
- break;
7677
+ group = this.createGroup({ id: groupId });
7678
+ this._onDidAddGroup.fire(group);
7679
+ }
7680
+ group.model.renderContainer = overlayRenderContainer;
7681
+ group.layout(_window.window.innerWidth, _window.window.innerHeight);
7682
+ if (!(options === null || options === void 0 ? void 0 : options.overridePopoutGroup) && isGroupAddedToDom) {
7683
+ if (itemToPopout instanceof DockviewPanel) {
7684
+ this.movingLock(() => {
7685
+ const panel = referenceGroup.model.removePanel(itemToPopout);
7686
+ group.model.openPanel(panel);
7687
+ });
7688
+ }
7689
+ else {
7690
+ this.movingLock(() => moveGroupWithoutDestroying({
7691
+ from: referenceGroup,
7692
+ to: group,
7693
+ }));
7694
+ switch (referenceLocation) {
7695
+ case 'grid':
7696
+ referenceGroup.api.setVisible(false);
7697
+ break;
7698
+ case 'floating':
7699
+ case 'popout':
7700
+ this.removeGroup(referenceGroup);
7701
+ break;
7702
+ }
7619
7703
  }
7620
7704
  }
7621
7705
  popoutContainer.classList.add('dv-dockview');
@@ -7625,7 +7709,12 @@ define(['exports'], (function (exports) { 'use strict';
7625
7709
  group.model.location = {
7626
7710
  type: 'popout',
7627
7711
  getWindow: () => _window.window,
7712
+ popoutUrl: options === null || options === void 0 ? void 0 : options.popoutUrl,
7628
7713
  };
7714
+ if (isGroupAddedToDom &&
7715
+ itemToPopout.api.location.type === 'grid') {
7716
+ itemToPopout.api.setVisible(false);
7717
+ }
7629
7718
  this.doSetGroupAndPanelActive(group);
7630
7719
  popoutWindowDisposable.addDisposables(group.api.onDidActiveChange((event) => {
7631
7720
  var _a;
@@ -7637,10 +7726,13 @@ define(['exports'], (function (exports) { 'use strict';
7637
7726
  (_a = _window.window) === null || _a === void 0 ? void 0 : _a.focus();
7638
7727
  }));
7639
7728
  let returnedGroup;
7729
+ const isValidReferenceGroup = isGroupAddedToDom &&
7730
+ referenceGroup &&
7731
+ this.getPanel(referenceGroup.id);
7640
7732
  const value = {
7641
7733
  window: _window,
7642
7734
  popoutGroup: group,
7643
- referenceGroup: this.getPanel(referenceGroup.id)
7735
+ referenceGroup: isValidReferenceGroup
7644
7736
  ? referenceGroup.id
7645
7737
  : undefined,
7646
7738
  disposable: {
@@ -7657,9 +7749,10 @@ define(['exports'], (function (exports) { 'use strict';
7657
7749
  * window dimensions
7658
7750
  */
7659
7751
  addDisposableWindowListener(_window.window, 'resize', () => {
7660
- group.layout(window.innerWidth, window.innerHeight);
7752
+ group.layout(_window.window.innerWidth, _window.window.innerHeight);
7661
7753
  }), overlayRenderContainer, exports.DockviewDisposable.from(() => {
7662
- if (this.getPanel(referenceGroup.id)) {
7754
+ if (isGroupAddedToDom &&
7755
+ this.getPanel(referenceGroup.id)) {
7663
7756
  this.movingLock(() => moveGroupWithoutDestroying({
7664
7757
  from: group,
7665
7758
  to: referenceGroup,
@@ -7674,21 +7767,27 @@ define(['exports'], (function (exports) { 'use strict';
7674
7767
  }
7675
7768
  }
7676
7769
  else if (this.getPanel(group.id)) {
7677
- const removedGroup = this.doRemoveGroup(group, {
7770
+ this.doRemoveGroup(group, {
7678
7771
  skipDispose: true,
7679
7772
  skipActive: true,
7773
+ skipPopoutReturn: true,
7680
7774
  });
7775
+ const removedGroup = group;
7681
7776
  removedGroup.model.renderContainer =
7682
7777
  this.overlayRenderContainer;
7683
7778
  removedGroup.model.location = { type: 'grid' };
7684
7779
  returnedGroup = removedGroup;
7780
+ this.doAddGroup(removedGroup, [0]);
7781
+ this.doSetGroupAndPanelActive(removedGroup);
7685
7782
  }
7686
7783
  }));
7687
7784
  this._popoutGroups.push(value);
7688
7785
  this.updateWatermark();
7786
+ return true;
7689
7787
  })
7690
7788
  .catch((err) => {
7691
7789
  console.error('dockview: failed to create popout window', err);
7790
+ return false;
7692
7791
  });
7693
7792
  }
7694
7793
  addFloatingGroup(item, options) {
@@ -7792,7 +7891,7 @@ define(['exports'], (function (exports) { 'use strict';
7792
7891
  : (_c = (_b = this.options.floatingGroupBounds) === null || _b === void 0 ? void 0 : _b.minimumWidthWithinViewport) !== null && _c !== void 0 ? _c : DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE, minimumInViewportHeight: this.options.floatingGroupBounds === 'boundedWithinViewport'
7793
7892
  ? undefined
7794
7893
  : (_e = (_d = this.options.floatingGroupBounds) === null || _d === void 0 ? void 0 : _d.minimumHeightWithinViewport) !== null && _e !== void 0 ? _e : DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE }));
7795
- const el = group.element.querySelector('.void-container');
7894
+ const el = group.element.querySelector('.dv-void-container');
7796
7895
  if (!el) {
7797
7896
  throw new Error('failed to find drag handle');
7798
7897
  }
@@ -7984,6 +8083,9 @@ define(['exports'], (function (exports) { 'use strict';
7984
8083
  data: group.popoutGroup.toJSON(),
7985
8084
  gridReferenceGroup: group.referenceGroup,
7986
8085
  position: group.window.dimensions(),
8086
+ url: group.popoutGroup.api.location.type === 'popout'
8087
+ ? group.popoutGroup.api.location.popoutUrl
8088
+ : undefined,
7987
8089
  };
7988
8090
  });
7989
8091
  const result = {
@@ -8070,16 +8172,16 @@ define(['exports'], (function (exports) { 'use strict';
8070
8172
  }
8071
8173
  const serializedPopoutGroups = (_b = data.popoutGroups) !== null && _b !== void 0 ? _b : [];
8072
8174
  for (const serializedPopoutGroup of serializedPopoutGroups) {
8073
- const { data, position, gridReferenceGroup } = serializedPopoutGroup;
8175
+ const { data, position, gridReferenceGroup, url } = serializedPopoutGroup;
8074
8176
  const group = createGroupFromSerializedState(data);
8075
8177
  this.addPopoutGroup((_c = (gridReferenceGroup
8076
8178
  ? this.getPanel(gridReferenceGroup)
8077
8179
  : undefined)) !== null && _c !== void 0 ? _c : group, {
8078
- skipRemoveGroup: true,
8079
8180
  position: position !== null && position !== void 0 ? position : undefined,
8080
8181
  overridePopoutGroup: gridReferenceGroup
8081
8182
  ? group
8082
8183
  : undefined,
8184
+ popoutUrl: url,
8083
8185
  });
8084
8186
  }
8085
8187
  for (const floatingGroup of this._floatingGroups) {
@@ -8093,6 +8195,7 @@ define(['exports'], (function (exports) { 'use strict';
8093
8195
  }
8094
8196
  }
8095
8197
  catch (err) {
8198
+ console.error('dockview: failed to deserialize layout. Reverting changes', err);
8096
8199
  /**
8097
8200
  * Takes all the successfully created groups and remove all of their panels.
8098
8201
  */
@@ -8160,11 +8263,13 @@ define(['exports'], (function (exports) { 'use strict';
8160
8263
  width: options.initialWidth,
8161
8264
  height: options.initialHeight,
8162
8265
  };
8266
+ let index;
8163
8267
  if (options.position) {
8164
8268
  if (isPanelOptionsWithPanel(options.position)) {
8165
8269
  const referencePanel = typeof options.position.referencePanel === 'string'
8166
8270
  ? this.getGroupPanel(options.position.referencePanel)
8167
8271
  : options.position.referencePanel;
8272
+ index = options.position.index;
8168
8273
  if (!referencePanel) {
8169
8274
  throw new Error(`referencePanel '${options.position.referencePanel}' does not exist`);
8170
8275
  }
@@ -8175,6 +8280,7 @@ define(['exports'], (function (exports) { 'use strict';
8175
8280
  typeof options.position.referenceGroup === 'string'
8176
8281
  ? (_a = this._groups.get(options.position.referenceGroup)) === null || _a === void 0 ? void 0 : _a.value
8177
8282
  : options.position.referenceGroup;
8283
+ index = options.position.index;
8178
8284
  if (!referenceGroup) {
8179
8285
  throw new Error(`referenceGroup '${options.position.referenceGroup}' does not exist`);
8180
8286
  }
@@ -8185,6 +8291,7 @@ define(['exports'], (function (exports) { 'use strict';
8185
8291
  group.model.openPanel(panel, {
8186
8292
  skipSetActive: options.inactive,
8187
8293
  skipSetGroupActive: options.inactive,
8294
+ index,
8188
8295
  });
8189
8296
  if (!options.inactive) {
8190
8297
  this.doSetGroupAndPanelActive(group);
@@ -8214,6 +8321,7 @@ define(['exports'], (function (exports) { 'use strict';
8214
8321
  group.model.openPanel(panel, {
8215
8322
  skipSetActive: options.inactive,
8216
8323
  skipSetGroupActive: options.inactive,
8324
+ index,
8217
8325
  });
8218
8326
  }
8219
8327
  else if (referenceGroup.api.location.type === 'floating' ||
@@ -8222,6 +8330,7 @@ define(['exports'], (function (exports) { 'use strict';
8222
8330
  referenceGroup.model.openPanel(panel, {
8223
8331
  skipSetActive: options.inactive,
8224
8332
  skipSetGroupActive: options.inactive,
8333
+ index,
8225
8334
  });
8226
8335
  referenceGroup.api.setSize({
8227
8336
  width: initial === null || initial === void 0 ? void 0 : initial.width,
@@ -8242,6 +8351,7 @@ define(['exports'], (function (exports) { 'use strict';
8242
8351
  group.model.openPanel(panel, {
8243
8352
  skipSetActive: options.inactive,
8244
8353
  skipSetGroupActive: options.inactive,
8354
+ index,
8245
8355
  });
8246
8356
  if (!options.inactive) {
8247
8357
  this.doSetGroupAndPanelActive(group);
@@ -8260,6 +8370,7 @@ define(['exports'], (function (exports) { 'use strict';
8260
8370
  group.model.openPanel(panel, {
8261
8371
  skipSetActive: options.inactive,
8262
8372
  skipSetGroupActive: options.inactive,
8373
+ index,
8263
8374
  });
8264
8375
  }
8265
8376
  else {
@@ -8270,6 +8381,7 @@ define(['exports'], (function (exports) { 'use strict';
8270
8381
  group.model.openPanel(panel, {
8271
8382
  skipSetActive: options.inactive,
8272
8383
  skipSetGroupActive: options.inactive,
8384
+ index,
8273
8385
  });
8274
8386
  if (!options.inactive) {
8275
8387
  this.doSetGroupAndPanelActive(group);
@@ -8279,7 +8391,6 @@ define(['exports'], (function (exports) { 'use strict';
8279
8391
  }
8280
8392
  removePanel(panel, options = {
8281
8393
  removeEmptyGroup: true,
8282
- skipDispose: false,
8283
8394
  }) {
8284
8395
  const group = panel.group;
8285
8396
  if (!group) {
@@ -8810,6 +8921,31 @@ define(['exports'], (function (exports) { 'use strict';
8810
8921
  }
8811
8922
  }
8812
8923
 
8924
+ function createComponent(id, componentName, components = {}, frameworkComponents = {}, createFrameworkComponent, fallback) {
8925
+ const Component = typeof componentName === 'string'
8926
+ ? components[componentName]
8927
+ : undefined;
8928
+ const FrameworkComponent = typeof componentName === 'string'
8929
+ ? frameworkComponents[componentName]
8930
+ : undefined;
8931
+ if (Component && FrameworkComponent) {
8932
+ throw new Error(`Cannot create '${id}'. component '${componentName}' registered as both a component and frameworkComponent`);
8933
+ }
8934
+ if (FrameworkComponent) {
8935
+ if (!createFrameworkComponent) {
8936
+ throw new Error(`Cannot create '${id}' for framework component '${componentName}'. you must register a frameworkPanelWrapper to use framework components`);
8937
+ }
8938
+ return createFrameworkComponent.createComponent(id, componentName, FrameworkComponent);
8939
+ }
8940
+ if (!Component) {
8941
+ if (fallback) {
8942
+ return fallback();
8943
+ }
8944
+ throw new Error(`Cannot create '${id}', no component '${componentName}' provided`);
8945
+ }
8946
+ return new Component(id, componentName);
8947
+ }
8948
+
8813
8949
  class GridviewComponent extends BaseGrid {
8814
8950
  get orientation() {
8815
8951
  return this.gridview.orientation;
@@ -9358,12 +9494,14 @@ define(['exports'], (function (exports) { 'use strict';
9358
9494
  this._expandedIcon = createExpandMoreButton();
9359
9495
  this._collapsedIcon = createChevronRightButton();
9360
9496
  this.disposable = new MutableDisposable();
9361
- this.apiRef = { api: null };
9497
+ this.apiRef = {
9498
+ api: null,
9499
+ };
9362
9500
  this._element = document.createElement('div');
9363
- this.element.className = 'default-header';
9501
+ this.element.className = 'dv-default-header';
9364
9502
  this._content = document.createElement('span');
9365
9503
  this._expander = document.createElement('div');
9366
- this._expander.className = 'dockview-pane-header-icon';
9504
+ this._expander.className = 'dv-pane-header-icon';
9367
9505
  this.element.appendChild(this._expander);
9368
9506
  this.element.appendChild(this._content);
9369
9507
  this.addDisposables(addDisposableListener(this._element, 'click', () => {
@@ -9834,7 +9972,6 @@ define(['exports'], (function (exports) { 'use strict';
9834
9972
  exports.GridviewApi = GridviewApi;
9835
9973
  exports.GridviewComponent = GridviewComponent;
9836
9974
  exports.GridviewPanel = GridviewPanel;
9837
- exports.LocalSelectionTransfer = LocalSelectionTransfer;
9838
9975
  exports.PROPERTY_KEYS = PROPERTY_KEYS;
9839
9976
  exports.PaneFramework = PaneFramework;
9840
9977
  exports.PaneTransfer = PaneTransfer;
@@ -9849,7 +9986,6 @@ define(['exports'], (function (exports) { 'use strict';
9849
9986
  exports.SplitviewPanel = SplitviewPanel;
9850
9987
  exports.Tab = Tab;
9851
9988
  exports.WillShowOverlayLocationEvent = WillShowOverlayLocationEvent;
9852
- exports.createComponent = createComponent;
9853
9989
  exports.createDockview = createDockview;
9854
9990
  exports.createGridview = createGridview;
9855
9991
  exports.createPaneview = createPaneview;