dockview-core 1.10.0 → 1.10.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 (69) hide show
  1. package/dist/cjs/api/component.api.d.ts +10 -2
  2. package/dist/cjs/api/component.api.js +10 -2
  3. package/dist/cjs/api/dockviewPanelApi.d.ts +1 -0
  4. package/dist/cjs/api/dockviewPanelApi.js +33 -24
  5. package/dist/cjs/api/panelApi.d.ts +4 -13
  6. package/dist/cjs/api/panelApi.js +5 -15
  7. package/dist/cjs/dockview/components/panel/content.js +1 -1
  8. package/dist/cjs/dockview/components/titlebar/voidContainer.js +1 -1
  9. package/dist/cjs/dockview/dockviewComponent.js +15 -7
  10. package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +3 -4
  11. package/dist/cjs/dockview/options.d.ts +3 -3
  12. package/dist/cjs/dockview/types.d.ts +0 -1
  13. package/dist/cjs/gridview/gridviewPanel.js +3 -3
  14. package/dist/cjs/lifecycle.d.ts +1 -1
  15. package/dist/cjs/paneview/paneview.d.ts +1 -0
  16. package/dist/cjs/paneview/paneview.js +3 -0
  17. package/dist/cjs/paneview/paneviewComponent.d.ts +2 -0
  18. package/dist/cjs/paneview/paneviewComponent.js +6 -0
  19. package/dist/cjs/paneview/paneviewPanel.d.ts +2 -0
  20. package/dist/cjs/paneview/paneviewPanel.js +5 -1
  21. package/dist/cjs/splitview/splitviewComponent.d.ts +1 -1
  22. package/dist/cjs/splitview/splitviewComponent.js +5 -5
  23. package/dist/cjs/splitview/splitviewPanel.js +3 -3
  24. package/dist/dockview-core.amd.js +90 -58
  25. package/dist/dockview-core.amd.js.map +1 -1
  26. package/dist/dockview-core.amd.min.js +2 -2
  27. package/dist/dockview-core.amd.min.js.map +1 -1
  28. package/dist/dockview-core.amd.min.noStyle.js +2 -2
  29. package/dist/dockview-core.amd.min.noStyle.js.map +1 -1
  30. package/dist/dockview-core.amd.noStyle.js +90 -58
  31. package/dist/dockview-core.amd.noStyle.js.map +1 -1
  32. package/dist/dockview-core.cjs.js +90 -58
  33. package/dist/dockview-core.cjs.js.map +1 -1
  34. package/dist/dockview-core.esm.js +90 -58
  35. package/dist/dockview-core.esm.js.map +1 -1
  36. package/dist/dockview-core.esm.min.js +2 -2
  37. package/dist/dockview-core.esm.min.js.map +1 -1
  38. package/dist/dockview-core.js +90 -58
  39. package/dist/dockview-core.js.map +1 -1
  40. package/dist/dockview-core.min.js +2 -2
  41. package/dist/dockview-core.min.js.map +1 -1
  42. package/dist/dockview-core.min.noStyle.js +2 -2
  43. package/dist/dockview-core.min.noStyle.js.map +1 -1
  44. package/dist/dockview-core.noStyle.js +90 -58
  45. package/dist/dockview-core.noStyle.js.map +1 -1
  46. package/dist/esm/api/component.api.d.ts +10 -2
  47. package/dist/esm/api/component.api.js +10 -2
  48. package/dist/esm/api/dockviewPanelApi.d.ts +1 -0
  49. package/dist/esm/api/dockviewPanelApi.js +32 -23
  50. package/dist/esm/api/panelApi.d.ts +4 -13
  51. package/dist/esm/api/panelApi.js +5 -11
  52. package/dist/esm/dockview/components/panel/content.js +1 -1
  53. package/dist/esm/dockview/components/titlebar/voidContainer.js +1 -1
  54. package/dist/esm/dockview/dockviewComponent.js +16 -8
  55. package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +3 -4
  56. package/dist/esm/dockview/options.d.ts +3 -3
  57. package/dist/esm/dockview/types.d.ts +0 -1
  58. package/dist/esm/gridview/gridviewPanel.js +3 -3
  59. package/dist/esm/lifecycle.d.ts +1 -1
  60. package/dist/esm/paneview/paneview.d.ts +1 -0
  61. package/dist/esm/paneview/paneview.js +3 -0
  62. package/dist/esm/paneview/paneviewComponent.d.ts +2 -0
  63. package/dist/esm/paneview/paneviewComponent.js +6 -0
  64. package/dist/esm/paneview/paneviewPanel.d.ts +2 -0
  65. package/dist/esm/paneview/paneviewPanel.js +5 -1
  66. package/dist/esm/splitview/splitviewComponent.d.ts +1 -1
  67. package/dist/esm/splitview/splitviewComponent.js +5 -5
  68. package/dist/esm/splitview/splitviewPanel.js +3 -3
  69. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * dockview-core
3
- * @version 1.10.0
3
+ * @version 1.10.1
4
4
  * @link https://github.com/mathuo/dockview
5
5
  * @license MIT
6
6
  */
@@ -1448,6 +1448,9 @@ define(['exports'], (function (exports) { 'use strict';
1448
1448
  this._onDidChange.fire();
1449
1449
  }));
1450
1450
  }
1451
+ setViewVisible(index, visible) {
1452
+ this.splitview.setViewVisible(index, visible);
1453
+ }
1451
1454
  addPane(pane, size, index = this.splitview.length, skipLayout = false) {
1452
1455
  const disposable = pane.onDidChangeExpansionState(() => {
1453
1456
  this.setupAnimation();
@@ -2952,19 +2955,27 @@ define(['exports'], (function (exports) { 'use strict';
2952
2955
  return this.component.onWillDrop;
2953
2956
  }
2954
2957
  /**
2958
+ * Invoked before an overlay is shown indicating a drop target.
2955
2959
  *
2960
+ * Calling `event.preventDefault()` will prevent the overlay being shown and prevent
2961
+ * the any subsequent drop event.
2956
2962
  */
2957
2963
  get onWillShowOverlay() {
2958
2964
  return this.component.onWillShowOverlay;
2959
2965
  }
2960
2966
  /**
2961
- * Invoked before a group is dragged. Exposed for custom Drag'n'Drop functionality.
2967
+ * Invoked before a group is dragged.
2968
+ *
2969
+ * Calling `event.nativeEvent.preventDefault()` will prevent the group drag starting.
2970
+ *
2962
2971
  */
2963
2972
  get onWillDragGroup() {
2964
2973
  return this.component.onWillDragGroup;
2965
2974
  }
2966
2975
  /**
2967
- * Invoked before a panel is dragged. Exposed for custom Drag'n'Drop functionality.
2976
+ * Invoked before a panel is dragged.
2977
+ *
2978
+ * Calling `event.nativeEvent.preventDefault()` will prevent the panel drag starting.
2968
2979
  */
2969
2980
  get onWillDragPanel() {
2970
2981
  return this.component.onWillDragPanel;
@@ -3508,7 +3519,7 @@ define(['exports'], (function (exports) { 'use strict';
3508
3519
  data.groupId === this.group.id;
3509
3520
  return !groupHasOnePanelAndIsActiveDragElement;
3510
3521
  }
3511
- return this.group.canDisplayOverlay(event, position, 'panel');
3522
+ return this.group.canDisplayOverlay(event, position, 'content');
3512
3523
  },
3513
3524
  });
3514
3525
  this.addDisposables(this.dropTarget);
@@ -3831,7 +3842,7 @@ define(['exports'], (function (exports) { 'use strict';
3831
3842
  // don't show the overlay if the tab being dragged is the last panel of this group
3832
3843
  return ((_a = last(this.group.panels)) === null || _a === void 0 ? void 0 : _a.id) !== data.panelId;
3833
3844
  }
3834
- return group.model.canDisplayOverlay(event, position, 'panel');
3845
+ return group.model.canDisplayOverlay(event, position, 'header_space');
3835
3846
  },
3836
3847
  });
3837
3848
  this.onWillShowOverlay = this.dropTraget.onWillShowOverlay;
@@ -4960,9 +4971,6 @@ define(['exports'], (function (exports) { 'use strict';
4960
4971
  get isVisible() {
4961
4972
  return this._isVisible;
4962
4973
  }
4963
- get isHidden() {
4964
- return this._isHidden;
4965
- }
4966
4974
  get width() {
4967
4975
  return this._width;
4968
4976
  }
@@ -4975,7 +4983,6 @@ define(['exports'], (function (exports) { 'use strict';
4975
4983
  this._isFocused = false;
4976
4984
  this._isActive = false;
4977
4985
  this._isVisible = true;
4978
- this._isHidden = false;
4979
4986
  this._width = 0;
4980
4987
  this._height = 0;
4981
4988
  this.panelUpdatesDisposable = new MutableDisposable();
@@ -4989,8 +4996,8 @@ define(['exports'], (function (exports) { 'use strict';
4989
4996
  //
4990
4997
  this._onDidVisibilityChange = new Emitter();
4991
4998
  this.onDidVisibilityChange = this._onDidVisibilityChange.event;
4992
- this._onDidHiddenChange = new Emitter();
4993
- this.onDidHiddenChange = this._onDidHiddenChange.event;
4999
+ this._onWillVisibilityChange = new Emitter();
5000
+ this.onWillVisibilityChange = this._onWillVisibilityChange.event;
4994
5001
  this._onDidActiveChange = new Emitter();
4995
5002
  this.onDidActiveChange = this._onDidActiveChange.event;
4996
5003
  this._onActiveChange = new Emitter();
@@ -5003,12 +5010,10 @@ define(['exports'], (function (exports) { 'use strict';
5003
5010
  this._isActive = event.isActive;
5004
5011
  }), this.onDidVisibilityChange((event) => {
5005
5012
  this._isVisible = event.isVisible;
5006
- }), this.onDidHiddenChange((event) => {
5007
- this._isHidden = event.isHidden;
5008
5013
  }), this.onDidDimensionsChange((event) => {
5009
5014
  this._width = event.width;
5010
5015
  this._height = event.height;
5011
- }), this.panelUpdatesDisposable, this._onDidDimensionChange, this._onDidChangeFocus, this._onDidVisibilityChange, this._onDidActiveChange, this._onWillFocus, this._onActiveChange, this._onUpdateParameters, this._onWillFocus, this._onDidHiddenChange, this._onUpdateParameters);
5016
+ }), this.panelUpdatesDisposable, this._onDidDimensionChange, this._onDidChangeFocus, this._onDidVisibilityChange, this._onDidActiveChange, this._onWillFocus, this._onActiveChange, this._onUpdateParameters, this._onWillFocus, this._onWillVisibilityChange, this._onUpdateParameters);
5012
5017
  }
5013
5018
  initialize(panel) {
5014
5019
  this.panelUpdatesDisposable.value = this._onUpdateParameters.event((parameters) => {
@@ -5017,8 +5022,8 @@ define(['exports'], (function (exports) { 'use strict';
5017
5022
  });
5018
5023
  });
5019
5024
  }
5020
- setHidden(isHidden) {
5021
- this._onDidHiddenChange.fire({ isHidden });
5025
+ setVisible(isVisible) {
5026
+ this._onWillVisibilityChange.fire({ isVisible });
5022
5027
  }
5023
5028
  setActive() {
5024
5029
  this._onActiveChange.fire();
@@ -5236,7 +5241,11 @@ define(['exports'], (function (exports) { 'use strict';
5236
5241
  this._onDidChangeExpansionState.fire(this.isExpanded()); // initialize value
5237
5242
  this._orientation = orientation;
5238
5243
  this.element.classList.add('pane');
5239
- this.addDisposables(this.api.onDidSizeChange((event) => {
5244
+ this.addDisposables(this.api.onWillVisibilityChange((event) => {
5245
+ const { isVisible } = event;
5246
+ const { accessor } = this._params;
5247
+ accessor.setVisible(this, isVisible);
5248
+ }), this.api.onDidSizeChange((event) => {
5240
5249
  this._onDidChange.fire({ size: event.size });
5241
5250
  }), addDisposableListener(this.element, 'mouseenter', (ev) => {
5242
5251
  this.api._onMouseEnter.fire(ev);
@@ -5540,10 +5549,10 @@ define(['exports'], (function (exports) { 'use strict';
5540
5549
  this._maximumHeight = options.maximumHeight;
5541
5550
  }
5542
5551
  this.api.initialize(this); // TODO: required to by-pass 'super before this' requirement
5543
- this.addDisposables(this.api.onDidHiddenChange((event) => {
5544
- const { isHidden } = event;
5552
+ this.addDisposables(this.api.onWillVisibilityChange((event) => {
5553
+ const { isVisible } = event;
5545
5554
  const { accessor } = this._params;
5546
- accessor.setVisible(this, !isHidden);
5555
+ accessor.setVisible(this, isVisible);
5547
5556
  }), this.api.onActiveChange(() => {
5548
5557
  const { accessor } = this._params;
5549
5558
  accessor.doSetGroupActive(this);
@@ -5784,32 +5793,11 @@ define(['exports'], (function (exports) { 'use strict';
5784
5793
  return this.panel.renderer;
5785
5794
  }
5786
5795
  set group(value) {
5787
- const isOldGroupActive = this.isGroupActive;
5796
+ const oldGroup = this._group;
5788
5797
  if (this._group !== value) {
5789
5798
  this._group = value;
5790
5799
  this._onDidGroupChange.fire({});
5791
- let _trackGroupActive = isOldGroupActive; // prevent duplicate events with same state
5792
- this.groupEventsDisposable.value = new CompositeDisposable(this.group.api.onDidLocationChange((event) => {
5793
- if (this.group !== this.panel.group) {
5794
- return;
5795
- }
5796
- this._onDidLocationChange.fire(event);
5797
- }), this.group.api.onDidActiveChange(() => {
5798
- if (this.group !== this.panel.group) {
5799
- return;
5800
- }
5801
- if (_trackGroupActive !== this.isGroupActive) {
5802
- _trackGroupActive = this.isGroupActive;
5803
- this._onDidActiveGroupChange.fire({
5804
- isActive: this.isGroupActive,
5805
- });
5806
- }
5807
- }));
5808
- // if (this.isGroupActive !== isOldGroupActive) {
5809
- // this._onDidActiveGroupChange.fire({
5810
- // isActive: this.isGroupActive,
5811
- // });
5812
- // }
5800
+ this.setupGroupEventListeners(oldGroup);
5813
5801
  this._onDidLocationChange.fire({
5814
5802
  location: this.group.api.location,
5815
5803
  });
@@ -5835,6 +5823,7 @@ define(['exports'], (function (exports) { 'use strict';
5835
5823
  this.groupEventsDisposable = new MutableDisposable();
5836
5824
  this.initialize(panel);
5837
5825
  this._group = group;
5826
+ this.setupGroupEventListeners();
5838
5827
  this.addDisposables(this.groupEventsDisposable, this._onDidRendererChange, this._onDidTitleChange, this._onDidGroupChange, this._onDidActiveGroupChange, this._onDidLocationChange);
5839
5828
  }
5840
5829
  getWindow() {
@@ -5869,6 +5858,35 @@ define(['exports'], (function (exports) { 'use strict';
5869
5858
  exitMaximized() {
5870
5859
  this.group.api.exitMaximized();
5871
5860
  }
5861
+ setupGroupEventListeners(previousGroup) {
5862
+ var _a;
5863
+ let _trackGroupActive = (_a = previousGroup === null || previousGroup === void 0 ? void 0 : previousGroup.isActive) !== null && _a !== void 0 ? _a : false; // prevent duplicate events with same state
5864
+ this.groupEventsDisposable.value = new CompositeDisposable(this.group.api.onDidVisibilityChange((event) => {
5865
+ if (!event.isVisible && this.isVisible) {
5866
+ this._onDidVisibilityChange.fire(event);
5867
+ }
5868
+ else if (event.isVisible &&
5869
+ !this.isVisible &&
5870
+ this.group.model.isPanelActive(this.panel)) {
5871
+ this._onDidVisibilityChange.fire(event);
5872
+ }
5873
+ }), this.group.api.onDidLocationChange((event) => {
5874
+ if (this.group !== this.panel.group) {
5875
+ return;
5876
+ }
5877
+ this._onDidLocationChange.fire(event);
5878
+ }), this.group.api.onDidActiveChange(() => {
5879
+ if (this.group !== this.panel.group) {
5880
+ return;
5881
+ }
5882
+ if (_trackGroupActive !== this.isGroupActive) {
5883
+ _trackGroupActive = this.isGroupActive;
5884
+ this._onDidActiveGroupChange.fire({
5885
+ isActive: this.isGroupActive,
5886
+ });
5887
+ }
5888
+ }));
5889
+ }
5872
5890
  }
5873
5891
 
5874
5892
  class DockviewPanel extends CompositeDisposable {
@@ -7049,7 +7067,15 @@ define(['exports'], (function (exports) { 'use strict';
7049
7067
  acceptedTargetZones: ['top', 'bottom', 'left', 'right', 'center'],
7050
7068
  overlayModel: (_b = this.options.rootOverlayModel) !== null && _b !== void 0 ? _b : DEFAULT_ROOT_OVERLAY_MODEL,
7051
7069
  });
7052
- this.addDisposables(this._rootDropTarget.onDrop((event) => {
7070
+ this.addDisposables(this._rootDropTarget, this._rootDropTarget.onWillShowOverlay((event) => {
7071
+ if (this.gridview.length > 0 && event.position === 'center') {
7072
+ // option only available when no panels in primary grid
7073
+ return;
7074
+ }
7075
+ this._onWillShowOverlay.fire(new WillShowOverlayLocationEvent(event, {
7076
+ kind: 'edge',
7077
+ }));
7078
+ }), this._rootDropTarget.onDrop((event) => {
7053
7079
  var _a;
7054
7080
  const willDropEvent = new DockviewWillDropEvent({
7055
7081
  nativeEvent: event.nativeEvent,
@@ -7058,7 +7084,7 @@ define(['exports'], (function (exports) { 'use strict';
7058
7084
  api: this._api,
7059
7085
  group: undefined,
7060
7086
  getData: getPanelData,
7061
- kind: 'content',
7087
+ kind: 'edge',
7062
7088
  });
7063
7089
  this._onWillDrop.fire(willDropEvent);
7064
7090
  if (willDropEvent.defaultPrevented) {
@@ -7114,7 +7140,7 @@ define(['exports'], (function (exports) { 'use strict';
7114
7140
  const box = getBox();
7115
7141
  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;
7116
7142
  if (itemToPopout.api.location.type === 'grid') {
7117
- itemToPopout.api.setHidden(true);
7143
+ itemToPopout.api.setVisible(false);
7118
7144
  }
7119
7145
  const _window = new PopoutWindow(`${this.id}-${groupId}`, // unique id
7120
7146
  theme !== null && theme !== void 0 ? theme : '', {
@@ -7165,7 +7191,7 @@ define(['exports'], (function (exports) { 'use strict';
7165
7191
  }));
7166
7192
  switch (referenceLocation) {
7167
7193
  case 'grid':
7168
- referenceGroup.api.setHidden(true);
7194
+ referenceGroup.api.setVisible(false);
7169
7195
  break;
7170
7196
  case 'floating':
7171
7197
  case 'popout':
@@ -7219,8 +7245,8 @@ define(['exports'], (function (exports) { 'use strict';
7219
7245
  from: group,
7220
7246
  to: referenceGroup,
7221
7247
  }));
7222
- if (referenceGroup.api.isHidden) {
7223
- referenceGroup.api.setHidden(false);
7248
+ if (!referenceGroup.api.isVisible) {
7249
+ referenceGroup.api.setVisible(true);
7224
7250
  }
7225
7251
  if (this.getPanel(group.id)) {
7226
7252
  this.doRemoveGroup(group, {
@@ -7793,7 +7819,7 @@ define(['exports'], (function (exports) { 'use strict';
7793
7819
  }
7794
7820
  updateWatermark() {
7795
7821
  var _a, _b;
7796
- if (this.groups.filter((x) => x.api.location.type === 'grid' && !x.api.isHidden).length === 0) {
7822
+ if (this.groups.filter((x) => x.api.location.type === 'grid' && x.api.isVisible).length === 0) {
7797
7823
  if (!this.watermark) {
7798
7824
  this.watermark = this.createWatermarkComponent();
7799
7825
  this.watermark.init({
@@ -8576,19 +8602,19 @@ define(['exports'], (function (exports) { 'use strict';
8576
8602
  const index = this.panels.indexOf(panel);
8577
8603
  this.splitview.setViewVisible(index, visible);
8578
8604
  }
8579
- setActive(view, skipFocus) {
8580
- this._activePanel = view;
8605
+ setActive(panel, skipFocus) {
8606
+ this._activePanel = panel;
8581
8607
  this.panels
8582
- .filter((v) => v !== view)
8608
+ .filter((v) => v !== panel)
8583
8609
  .forEach((v) => {
8584
8610
  v.api._onDidActiveChange.fire({ isActive: false });
8585
8611
  if (!skipFocus) {
8586
8612
  v.focus();
8587
8613
  }
8588
8614
  });
8589
- view.api._onDidActiveChange.fire({ isActive: true });
8615
+ panel.api._onDidActiveChange.fire({ isActive: true });
8590
8616
  if (!skipFocus) {
8591
- view.focus();
8617
+ panel.focus();
8592
8618
  }
8593
8619
  }
8594
8620
  removePanel(panel, sizing) {
@@ -8887,6 +8913,10 @@ define(['exports'], (function (exports) { 'use strict';
8887
8913
  });
8888
8914
  this.addDisposables(this._disposable);
8889
8915
  }
8916
+ setVisible(panel, visible) {
8917
+ const index = this.panels.indexOf(panel);
8918
+ this.paneview.setViewVisible(index, visible);
8919
+ }
8890
8920
  focus() {
8891
8921
  //noop
8892
8922
  }
@@ -8933,6 +8963,7 @@ define(['exports'], (function (exports) { 'use strict';
8933
8963
  isExpanded: options.isExpanded,
8934
8964
  title: options.title,
8935
8965
  containerApi: new PaneviewApi(this),
8966
+ accessor: this,
8936
8967
  });
8937
8968
  this.paneview.addPane(view, size, index);
8938
8969
  view.orientation = this.paneview.orientation;
@@ -9032,6 +9063,7 @@ define(['exports'], (function (exports) { 'use strict';
9032
9063
  title: data.title,
9033
9064
  isExpanded: !!view.expanded,
9034
9065
  containerApi: new PaneviewApi(this),
9066
+ accessor: this,
9035
9067
  });
9036
9068
  panel.orientation = this.paneview.orientation;
9037
9069
  });
@@ -9120,10 +9152,10 @@ define(['exports'], (function (exports) { 'use strict';
9120
9152
  this._onDidChange = new Emitter();
9121
9153
  this.onDidChange = this._onDidChange.event;
9122
9154
  this.api.initialize(this);
9123
- this.addDisposables(this._onDidChange, this.api.onDidHiddenChange((event) => {
9124
- const { isHidden } = event;
9155
+ this.addDisposables(this._onDidChange, this.api.onWillVisibilityChange((event) => {
9156
+ const { isVisible } = event;
9125
9157
  const { accessor } = this._params;
9126
- accessor.setVisible(this, !isHidden);
9158
+ accessor.setVisible(this, isVisible);
9127
9159
  }), this.api.onActiveChange(() => {
9128
9160
  const { accessor } = this._params;
9129
9161
  accessor.setActive(this);