dockview-core 1.13.1 → 1.14.1

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 (48) hide show
  1. package/README.md +1 -21
  2. package/dist/cjs/api/dockviewGroupPanelApi.js +4 -5
  3. package/dist/cjs/api/dockviewPanelApi.js +4 -6
  4. package/dist/cjs/dockview/dockviewComponent.js +13 -76
  5. package/dist/cjs/dockview/dockviewPanel.js +1 -10
  6. package/dist/cjs/dockview/options.d.ts +1 -1
  7. package/dist/cjs/dockview/types.d.ts +5 -10
  8. package/dist/cjs/dockview/validate.d.ts +0 -0
  9. package/dist/cjs/dockview/validate.js +76 -0
  10. package/dist/cjs/events.js +3 -3
  11. package/dist/cjs/index.d.ts +4 -3
  12. package/dist/cjs/index.js +5 -3
  13. package/dist/dockview-core.amd.js +38 -53
  14. package/dist/dockview-core.amd.js.map +1 -1
  15. package/dist/dockview-core.amd.min.js +2 -2
  16. package/dist/dockview-core.amd.min.js.map +1 -1
  17. package/dist/dockview-core.amd.min.noStyle.js +2 -2
  18. package/dist/dockview-core.amd.min.noStyle.js.map +1 -1
  19. package/dist/dockview-core.amd.noStyle.js +37 -52
  20. package/dist/dockview-core.amd.noStyle.js.map +1 -1
  21. package/dist/dockview-core.cjs.js +38 -53
  22. package/dist/dockview-core.cjs.js.map +1 -1
  23. package/dist/dockview-core.esm.js +26 -41
  24. package/dist/dockview-core.esm.js.map +1 -1
  25. package/dist/dockview-core.esm.min.js +2 -2
  26. package/dist/dockview-core.esm.min.js.map +1 -1
  27. package/dist/dockview-core.js +38 -53
  28. package/dist/dockview-core.js.map +1 -1
  29. package/dist/dockview-core.min.js +2 -2
  30. package/dist/dockview-core.min.js.map +1 -1
  31. package/dist/dockview-core.min.noStyle.js +2 -2
  32. package/dist/dockview-core.min.noStyle.js.map +1 -1
  33. package/dist/dockview-core.noStyle.js +37 -52
  34. package/dist/dockview-core.noStyle.js.map +1 -1
  35. package/dist/esm/api/dockviewGroupPanelApi.js +3 -4
  36. package/dist/esm/api/dockviewPanelApi.js +4 -6
  37. package/dist/esm/dockview/components/titlebar/tabsContainer.js +1 -1
  38. package/dist/esm/dockview/dockviewComponent.js +13 -76
  39. package/dist/esm/dockview/dockviewPanel.js +1 -10
  40. package/dist/esm/dockview/options.d.ts +1 -1
  41. package/dist/esm/dockview/types.d.ts +5 -10
  42. package/dist/esm/dockview/validate.d.ts +0 -0
  43. package/dist/esm/dockview/validate.js +76 -0
  44. package/dist/esm/events.js +3 -3
  45. package/dist/esm/index.d.ts +4 -3
  46. package/dist/esm/index.js +4 -3
  47. package/dist/styles/dockview.css +4 -4
  48. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * dockview-core
3
- * @version 1.13.1
3
+ * @version 1.14.1
4
4
  * @link https://github.com/mathuo/dockview
5
5
  * @license MIT
6
6
  */
@@ -125,7 +125,7 @@ define(['exports'], (function (exports) { 'use strict';
125
125
  this.value = value;
126
126
  }
127
127
  print() {
128
- console.warn(this.value);
128
+ console.warn('dockview: stacktrace', this.value);
129
129
  }
130
130
  }
131
131
  class Listener {
@@ -190,7 +190,7 @@ define(['exports'], (function (exports) { 'use strict';
190
190
  var _a;
191
191
  // don't check until stack of execution is completed to allow for out-of-order disposals within the same execution block
192
192
  for (const listener of this._listeners) {
193
- console.warn((_a = listener.stacktrace) === null || _a === void 0 ? void 0 : _a.print());
193
+ console.warn('dockview: stacktrace', (_a = listener.stacktrace) === null || _a === void 0 ? void 0 : _a.print());
194
194
  }
195
195
  });
196
196
  }
@@ -270,7 +270,7 @@ define(['exports'], (function (exports) { 'use strict';
270
270
  }
271
271
  }
272
272
 
273
- var Disposable;
273
+ exports.DockviewDisposable = void 0;
274
274
  (function (Disposable) {
275
275
  Disposable.NONE = {
276
276
  dispose: () => {
@@ -285,7 +285,7 @@ define(['exports'], (function (exports) { 'use strict';
285
285
  };
286
286
  }
287
287
  Disposable.from = from;
288
- })(Disposable || (Disposable = {}));
288
+ })(exports.DockviewDisposable || (exports.DockviewDisposable = {}));
289
289
  class CompositeDisposable {
290
290
  get isDisposed() {
291
291
  return this._isDisposed;
@@ -308,7 +308,7 @@ define(['exports'], (function (exports) { 'use strict';
308
308
  }
309
309
  class MutableDisposable {
310
310
  constructor() {
311
- this._disposable = Disposable.NONE;
311
+ this._disposable = exports.DockviewDisposable.NONE;
312
312
  }
313
313
  set value(disposable) {
314
314
  if (this._disposable) {
@@ -319,7 +319,7 @@ define(['exports'], (function (exports) { 'use strict';
319
319
  dispose() {
320
320
  if (this._disposable) {
321
321
  this._disposable.dispose();
322
- this._disposable = Disposable.NONE;
322
+ this._disposable = exports.DockviewDisposable.NONE;
323
323
  }
324
324
  }
325
325
  }
@@ -1746,7 +1746,7 @@ define(['exports'], (function (exports) { 'use strict';
1746
1746
  this.orientation = orientation;
1747
1747
  this.proportionalLayout = proportionalLayout;
1748
1748
  this.styles = styles;
1749
- this._childrenDisposable = Disposable.NONE;
1749
+ this._childrenDisposable = exports.DockviewDisposable.NONE;
1750
1750
  this.children = [];
1751
1751
  this._onDidChange = new Emitter();
1752
1752
  this.onDidChange = this._onDidChange.event;
@@ -1894,7 +1894,7 @@ define(['exports'], (function (exports) { 'use strict';
1894
1894
  this.setChildVisible(i, visible);
1895
1895
  });
1896
1896
  }
1897
- return Disposable.NONE;
1897
+ return exports.DockviewDisposable.NONE;
1898
1898
  }));
1899
1899
  }
1900
1900
  dispose() {
@@ -2595,7 +2595,7 @@ define(['exports'], (function (exports) { 'use strict';
2595
2595
  this.gridview.locked = !!options.locked;
2596
2596
  this.element.appendChild(this.gridview.element);
2597
2597
  this.layout(0, 0, true); // set some elements height/widths
2598
- this.addDisposables(Disposable.from(() => {
2598
+ this.addDisposables(exports.DockviewDisposable.from(() => {
2599
2599
  var _a;
2600
2600
  (_a = this.element.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(this.element);
2601
2601
  }), this.gridview.onDidChange(() => {
@@ -5740,8 +5740,7 @@ define(['exports'], (function (exports) { 'use strict';
5740
5740
  }
5741
5741
  }
5742
5742
 
5743
- // TODO find a better way to initialize and avoid needing null checks
5744
- const NOT_INITIALIZED_MESSAGE = 'DockviewGroupPanelApiImpl not initialized';
5743
+ const NOT_INITIALIZED_MESSAGE = 'dockview: DockviewGroupPanelApiImpl not initialized';
5745
5744
  class DockviewGroupPanelApiImpl extends GridviewPanelApiImpl {
5746
5745
  get location() {
5747
5746
  if (!this._group) {
@@ -5814,14 +5813,14 @@ define(['exports'], (function (exports) { 'use strict';
5814
5813
  }
5815
5814
  }
5816
5815
  initialize(group) {
5817
- this._group = group;
5818
5816
  /**
5819
- * TODO: Annoying initialization order caveat
5817
+ * TODO: Annoying initialization order caveat, find a better way to initialize and avoid needing null checks
5820
5818
  *
5821
5819
  * Due to the order on initialization we know that the model isn't defined until later in the same stack-frame of setup.
5822
5820
  * By queuing a microtask we can ensure the setup is completed within the same stack-frame, but after everything else has
5823
5821
  * finished ensuring the `model` is defined.
5824
5822
  */
5823
+ this._group = group;
5825
5824
  queueMicrotask(() => {
5826
5825
  this._mutableDisposable.value =
5827
5826
  this._group.model.onDidActivePanelChange((event) => {
@@ -5975,12 +5974,10 @@ define(['exports'], (function (exports) { 'use strict';
5975
5974
  var _a;
5976
5975
  let _trackGroupActive = (_a = previousGroup === null || previousGroup === void 0 ? void 0 : previousGroup.isActive) !== null && _a !== void 0 ? _a : false; // prevent duplicate events with same state
5977
5976
  this.groupEventsDisposable.value = new CompositeDisposable(this.group.api.onDidVisibilityChange((event) => {
5978
- if (!event.isVisible && this.isVisible) {
5979
- this._onDidVisibilityChange.fire(event);
5980
- }
5981
- else if (event.isVisible &&
5982
- !this.isVisible &&
5983
- this.group.model.isPanelActive(this.panel)) {
5977
+ const hasBecomeHidden = !event.isVisible && this.isVisible;
5978
+ const hasBecomeVisible = event.isVisible && !this.isVisible;
5979
+ const isActivePanel = this.group.model.isPanelActive(this.panel);
5980
+ if (hasBecomeHidden || (hasBecomeVisible && isActivePanel)) {
5984
5981
  this._onDidVisibilityChange.fire(event);
5985
5982
  }
5986
5983
  }), this.group.api.onDidLocationChange((event) => {
@@ -6066,12 +6063,6 @@ define(['exports'], (function (exports) { 'use strict';
6066
6063
  const didTitleChange = title !== this.title;
6067
6064
  if (didTitleChange) {
6068
6065
  this._title = title;
6069
- this.view.update({
6070
- params: {
6071
- params: this._params,
6072
- title: this.title,
6073
- },
6074
- });
6075
6066
  this.api._onDidTitleChange.fire({ title });
6076
6067
  }
6077
6068
  }
@@ -6099,10 +6090,7 @@ define(['exports'], (function (exports) { 'use strict';
6099
6090
  }
6100
6091
  // update the view with the updated props
6101
6092
  this.view.update({
6102
- params: {
6103
- params: this._params,
6104
- title: this.title,
6105
- },
6093
+ params: this._params,
6106
6094
  });
6107
6095
  }
6108
6096
  updateParentGroup(group, options) {
@@ -6715,7 +6703,7 @@ define(['exports'], (function (exports) { 'use strict';
6715
6703
  this.element = element;
6716
6704
  this.map = {};
6717
6705
  this._disposed = false;
6718
- this.addDisposables(Disposable.from(() => {
6706
+ this.addDisposables(exports.DockviewDisposable.from(() => {
6719
6707
  for (const value of Object.values(this.map)) {
6720
6708
  value.disposable.dispose();
6721
6709
  value.destroy.dispose();
@@ -6740,8 +6728,8 @@ define(['exports'], (function (exports) { 'use strict';
6740
6728
  element.className = 'dv-render-overlay';
6741
6729
  this.map[panel.api.id] = {
6742
6730
  panel,
6743
- disposable: Disposable.NONE,
6744
- destroy: Disposable.NONE,
6731
+ disposable: exports.DockviewDisposable.NONE,
6732
+ destroy: exports.DockviewDisposable.NONE,
6745
6733
  element,
6746
6734
  };
6747
6735
  }
@@ -6805,7 +6793,7 @@ define(['exports'], (function (exports) { 'use strict';
6805
6793
  }
6806
6794
  resize();
6807
6795
  }));
6808
- this.map[panel.api.id].destroy = Disposable.from(() => {
6796
+ this.map[panel.api.id].destroy = exports.DockviewDisposable.from(() => {
6809
6797
  var _a;
6810
6798
  if (panel.view.content.element.parentElement === focusContainer) {
6811
6799
  focusContainer.removeChild(panel.view.content.element);
@@ -7125,7 +7113,7 @@ define(['exports'], (function (exports) { 'use strict';
7125
7113
  this.updateWatermark();
7126
7114
  }), exports.DockviewEvent.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidActivePanelChange)(() => {
7127
7115
  this._bufferOnDidLayoutChange.fire();
7128
- }), Disposable.from(() => {
7116
+ }), exports.DockviewDisposable.from(() => {
7129
7117
  // iterate over a copy of the array since .dispose() mutates the original array
7130
7118
  for (const group of [...this._floatingGroups]) {
7131
7119
  group.dispose();
@@ -7240,7 +7228,7 @@ define(['exports'], (function (exports) { 'use strict';
7240
7228
  return element.getBoundingClientRect();
7241
7229
  }
7242
7230
  const box = getBox();
7243
- 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(); //item.id;
7231
+ 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();
7244
7232
  if (itemToPopout.api.location.type === 'grid') {
7245
7233
  itemToPopout.api.setVisible(false);
7246
7234
  }
@@ -7341,7 +7329,7 @@ define(['exports'], (function (exports) { 'use strict';
7341
7329
  */
7342
7330
  addDisposableWindowListener(_window.window, 'resize', () => {
7343
7331
  group.layout(window.innerWidth, window.innerHeight);
7344
- }), overlayRenderContainer, Disposable.from(() => {
7332
+ }), overlayRenderContainer, exports.DockviewDisposable.from(() => {
7345
7333
  if (this.getPanel(referenceGroup.id)) {
7346
7334
  this.movingLock(() => moveGroupWithoutDestroying({
7347
7335
  from: group,
@@ -7356,24 +7344,22 @@ define(['exports'], (function (exports) { 'use strict';
7356
7344
  });
7357
7345
  }
7358
7346
  }
7359
- else {
7360
- if (this.getPanel(group.id)) {
7361
- const removedGroup = this.doRemoveGroup(group, {
7362
- skipDispose: true,
7363
- skipActive: true,
7364
- });
7365
- removedGroup.model.renderContainer =
7366
- this.overlayRenderContainer;
7367
- removedGroup.model.location = { type: 'grid' };
7368
- returnedGroup = removedGroup;
7369
- }
7347
+ else if (this.getPanel(group.id)) {
7348
+ const removedGroup = this.doRemoveGroup(group, {
7349
+ skipDispose: true,
7350
+ skipActive: true,
7351
+ });
7352
+ removedGroup.model.renderContainer =
7353
+ this.overlayRenderContainer;
7354
+ removedGroup.model.location = { type: 'grid' };
7355
+ returnedGroup = removedGroup;
7370
7356
  }
7371
7357
  }));
7372
7358
  this._popoutGroups.push(value);
7373
7359
  this.updateWatermark();
7374
7360
  })
7375
7361
  .catch((err) => {
7376
- console.error(err);
7362
+ console.error('dockview: failed to create popout window', err);
7377
7363
  });
7378
7364
  }
7379
7365
  addFloatingGroup(item, coord, options) {
@@ -7416,7 +7402,7 @@ define(['exports'], (function (exports) { 'use strict';
7416
7402
  this.doRemoveGroup(item, {
7417
7403
  skipDispose: true,
7418
7404
  skipPopoutReturn: true,
7419
- skipPopoutAssociated: !!popoutReferenceGroup,
7405
+ skipPopoutAssociated: false,
7420
7406
  });
7421
7407
  }
7422
7408
  }
@@ -7776,7 +7762,6 @@ define(['exports'], (function (exports) { 'use strict';
7776
7762
  clear() {
7777
7763
  const groups = Array.from(this._groups.values()).map((_) => _.value);
7778
7764
  const hasActiveGroup = !!this.activeGroup;
7779
- !!this.activePanel;
7780
7765
  for (const group of groups) {
7781
7766
  // remove the group will automatically remove the panels
7782
7767
  this.removeGroup(group, { skipActive: true });
@@ -8282,7 +8267,7 @@ define(['exports'], (function (exports) { 'use strict';
8282
8267
  }
8283
8268
  let id = options === null || options === void 0 ? void 0 : options.id;
8284
8269
  if (id && this._groups.has(options.id)) {
8285
- console.warn(`Duplicate group id ${options === null || options === void 0 ? void 0 : options.id}. reassigning group id to avoid errors`);
8270
+ console.warn(`dockview: Duplicate group id ${options === null || options === void 0 ? void 0 : options.id}. reassigning group id to avoid errors`);
8286
8271
  id = undefined;
8287
8272
  }
8288
8273
  if (!id) {