dockview-core 1.10.0 → 1.10.2

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 (91) 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/dockviewGroupPanelApi.js +1 -1
  4. package/dist/cjs/api/dockviewPanelApi.d.ts +5 -1
  5. package/dist/cjs/api/dockviewPanelApi.js +43 -26
  6. package/dist/cjs/api/gridviewPanelApi.d.ts +1 -1
  7. package/dist/cjs/api/gridviewPanelApi.js +2 -2
  8. package/dist/cjs/api/panelApi.d.ts +12 -16
  9. package/dist/cjs/api/panelApi.js +17 -20
  10. package/dist/cjs/api/paneviewPanelApi.d.ts +1 -1
  11. package/dist/cjs/api/paneviewPanelApi.js +2 -2
  12. package/dist/cjs/api/splitviewPanelApi.d.ts +1 -1
  13. package/dist/cjs/api/splitviewPanelApi.js +2 -2
  14. package/dist/cjs/dockview/components/panel/content.js +1 -1
  15. package/dist/cjs/dockview/components/titlebar/voidContainer.js +1 -1
  16. package/dist/cjs/dockview/deserializer.js +1 -1
  17. package/dist/cjs/dockview/dockviewComponent.js +18 -8
  18. package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +10 -5
  19. package/dist/cjs/dockview/dockviewGroupPanelModel.js +16 -0
  20. package/dist/cjs/dockview/dockviewPanel.d.ts +1 -1
  21. package/dist/cjs/dockview/dockviewPanel.js +2 -2
  22. package/dist/cjs/dockview/options.d.ts +3 -3
  23. package/dist/cjs/dockview/types.d.ts +0 -1
  24. package/dist/cjs/gridview/gridviewPanel.js +4 -4
  25. package/dist/cjs/lifecycle.d.ts +1 -1
  26. package/dist/cjs/paneview/paneview.d.ts +1 -0
  27. package/dist/cjs/paneview/paneview.js +3 -0
  28. package/dist/cjs/paneview/paneviewComponent.d.ts +2 -0
  29. package/dist/cjs/paneview/paneviewComponent.js +6 -0
  30. package/dist/cjs/paneview/paneviewPanel.d.ts +2 -0
  31. package/dist/cjs/paneview/paneviewPanel.js +6 -2
  32. package/dist/cjs/splitview/splitviewComponent.d.ts +1 -1
  33. package/dist/cjs/splitview/splitviewComponent.js +5 -5
  34. package/dist/cjs/splitview/splitviewPanel.js +4 -4
  35. package/dist/dockview-core.amd.js +134 -79
  36. package/dist/dockview-core.amd.js.map +1 -1
  37. package/dist/dockview-core.amd.min.js +2 -2
  38. package/dist/dockview-core.amd.min.js.map +1 -1
  39. package/dist/dockview-core.amd.min.noStyle.js +2 -2
  40. package/dist/dockview-core.amd.min.noStyle.js.map +1 -1
  41. package/dist/dockview-core.amd.noStyle.js +134 -79
  42. package/dist/dockview-core.amd.noStyle.js.map +1 -1
  43. package/dist/dockview-core.cjs.js +134 -79
  44. package/dist/dockview-core.cjs.js.map +1 -1
  45. package/dist/dockview-core.esm.js +134 -79
  46. package/dist/dockview-core.esm.js.map +1 -1
  47. package/dist/dockview-core.esm.min.js +2 -2
  48. package/dist/dockview-core.esm.min.js.map +1 -1
  49. package/dist/dockview-core.js +134 -79
  50. package/dist/dockview-core.js.map +1 -1
  51. package/dist/dockview-core.min.js +2 -2
  52. package/dist/dockview-core.min.js.map +1 -1
  53. package/dist/dockview-core.min.noStyle.js +2 -2
  54. package/dist/dockview-core.min.noStyle.js.map +1 -1
  55. package/dist/dockview-core.noStyle.js +134 -79
  56. package/dist/dockview-core.noStyle.js.map +1 -1
  57. package/dist/esm/api/component.api.d.ts +10 -2
  58. package/dist/esm/api/component.api.js +10 -2
  59. package/dist/esm/api/dockviewGroupPanelApi.js +1 -1
  60. package/dist/esm/api/dockviewPanelApi.d.ts +5 -1
  61. package/dist/esm/api/dockviewPanelApi.js +38 -25
  62. package/dist/esm/api/gridviewPanelApi.d.ts +1 -1
  63. package/dist/esm/api/gridviewPanelApi.js +2 -2
  64. package/dist/esm/api/panelApi.d.ts +12 -16
  65. package/dist/esm/api/panelApi.js +16 -16
  66. package/dist/esm/api/paneviewPanelApi.d.ts +1 -1
  67. package/dist/esm/api/paneviewPanelApi.js +2 -2
  68. package/dist/esm/api/splitviewPanelApi.d.ts +1 -1
  69. package/dist/esm/api/splitviewPanelApi.js +2 -2
  70. package/dist/esm/dockview/components/panel/content.js +1 -1
  71. package/dist/esm/dockview/components/titlebar/voidContainer.js +1 -1
  72. package/dist/esm/dockview/deserializer.js +1 -1
  73. package/dist/esm/dockview/dockviewComponent.js +19 -9
  74. package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +10 -5
  75. package/dist/esm/dockview/dockviewGroupPanelModel.js +11 -0
  76. package/dist/esm/dockview/dockviewPanel.d.ts +1 -1
  77. package/dist/esm/dockview/dockviewPanel.js +2 -2
  78. package/dist/esm/dockview/options.d.ts +3 -3
  79. package/dist/esm/dockview/types.d.ts +0 -1
  80. package/dist/esm/gridview/gridviewPanel.js +4 -4
  81. package/dist/esm/lifecycle.d.ts +1 -1
  82. package/dist/esm/paneview/paneview.d.ts +1 -0
  83. package/dist/esm/paneview/paneview.js +3 -0
  84. package/dist/esm/paneview/paneviewComponent.d.ts +2 -0
  85. package/dist/esm/paneview/paneviewComponent.js +6 -0
  86. package/dist/esm/paneview/paneviewPanel.d.ts +2 -0
  87. package/dist/esm/paneview/paneviewPanel.js +6 -2
  88. package/dist/esm/splitview/splitviewComponent.d.ts +1 -1
  89. package/dist/esm/splitview/splitviewComponent.js +5 -5
  90. package/dist/esm/splitview/splitviewPanel.js +4 -4
  91. package/package.json +1 -1
@@ -374,15 +374,23 @@ export declare class DockviewApi implements CommonApi<SerializedDockview> {
374
374
  */
375
375
  get onWillDrop(): Event<DockviewWillDropEvent>;
376
376
  /**
377
+ * Invoked before an overlay is shown indicating a drop target.
377
378
  *
379
+ * Calling `event.preventDefault()` will prevent the overlay being shown and prevent
380
+ * the any subsequent drop event.
378
381
  */
379
382
  get onWillShowOverlay(): Event<WillShowOverlayLocationEvent>;
380
383
  /**
381
- * Invoked before a group is dragged. Exposed for custom Drag'n'Drop functionality.
384
+ * Invoked before a group is dragged.
385
+ *
386
+ * Calling `event.nativeEvent.preventDefault()` will prevent the group drag starting.
387
+ *
382
388
  */
383
389
  get onWillDragGroup(): Event<GroupDragEvent>;
384
390
  /**
385
- * Invoked before a panel is dragged. Exposed for custom Drag'n'Drop functionality.
391
+ * Invoked before a panel is dragged.
392
+ *
393
+ * Calling `event.nativeEvent.preventDefault()` will prevent the panel drag starting.
386
394
  */
387
395
  get onWillDragPanel(): Event<TabDragEvent>;
388
396
  /**
@@ -754,7 +754,10 @@ var DockviewApi = /** @class */ (function () {
754
754
  });
755
755
  Object.defineProperty(DockviewApi.prototype, "onWillShowOverlay", {
756
756
  /**
757
+ * Invoked before an overlay is shown indicating a drop target.
757
758
  *
759
+ * Calling `event.preventDefault()` will prevent the overlay being shown and prevent
760
+ * the any subsequent drop event.
758
761
  */
759
762
  get: function () {
760
763
  return this.component.onWillShowOverlay;
@@ -764,7 +767,10 @@ var DockviewApi = /** @class */ (function () {
764
767
  });
765
768
  Object.defineProperty(DockviewApi.prototype, "onWillDragGroup", {
766
769
  /**
767
- * Invoked before a group is dragged. Exposed for custom Drag'n'Drop functionality.
770
+ * Invoked before a group is dragged.
771
+ *
772
+ * Calling `event.nativeEvent.preventDefault()` will prevent the group drag starting.
773
+ *
768
774
  */
769
775
  get: function () {
770
776
  return this.component.onWillDragGroup;
@@ -774,7 +780,9 @@ var DockviewApi = /** @class */ (function () {
774
780
  });
775
781
  Object.defineProperty(DockviewApi.prototype, "onWillDragPanel", {
776
782
  /**
777
- * Invoked before a panel is dragged. Exposed for custom Drag'n'Drop functionality.
783
+ * Invoked before a panel is dragged.
784
+ *
785
+ * Calling `event.nativeEvent.preventDefault()` will prevent the panel drag starting.
778
786
  */
779
787
  get: function () {
780
788
  return this.component.onWillDragPanel;
@@ -24,7 +24,7 @@ var NOT_INITIALIZED_MESSAGE = 'DockviewGroupPanelApiImpl not initialized';
24
24
  var DockviewGroupPanelApiImpl = /** @class */ (function (_super) {
25
25
  __extends(DockviewGroupPanelApiImpl, _super);
26
26
  function DockviewGroupPanelApiImpl(id, accessor) {
27
- var _this = _super.call(this, id) || this;
27
+ var _this = _super.call(this, id, '__dockviewgroup__') || this;
28
28
  _this.accessor = accessor;
29
29
  _this._onDidLocationChange = new events_1.Emitter();
30
30
  _this.onDidLocationChange = _this._onDidLocationChange.event;
@@ -25,6 +25,7 @@ export interface DockviewPanelApi extends Omit<GridviewPanelApi, 'setVisible' |
25
25
  readonly title: string | undefined;
26
26
  readonly onDidActiveGroupChange: Event<ActiveGroupEvent>;
27
27
  readonly onDidGroupChange: Event<GroupChangedEvent>;
28
+ readonly onDidTitleChange: Event<TitleEvent>;
28
29
  readonly onDidRendererChange: Event<RendererChangedEvent>;
29
30
  readonly location: DockviewGroupLocation;
30
31
  readonly onDidLocationChange: Event<DockviewGroupPanelFloatingChangeEvent>;
@@ -48,6 +49,7 @@ export declare class DockviewPanelApiImpl extends GridviewPanelApiImpl implement
48
49
  private panel;
49
50
  private readonly accessor;
50
51
  private _group;
52
+ private _tabComponent;
51
53
  readonly _onDidTitleChange: Emitter<TitleEvent>;
52
54
  readonly onDidTitleChange: Event<TitleEvent>;
53
55
  private readonly _onDidActiveGroupChange;
@@ -65,7 +67,8 @@ export declare class DockviewPanelApiImpl extends GridviewPanelApiImpl implement
65
67
  get renderer(): DockviewPanelRenderer;
66
68
  set group(value: DockviewGroupPanel);
67
69
  get group(): DockviewGroupPanel;
68
- constructor(panel: DockviewPanel, group: DockviewGroupPanel, accessor: DockviewComponent);
70
+ get tabComponent(): string | undefined;
71
+ constructor(panel: DockviewPanel, group: DockviewGroupPanel, accessor: DockviewComponent, component: string, tabComponent?: string);
69
72
  getWindow(): Window;
70
73
  moveTo(options: {
71
74
  group: DockviewGroupPanel;
@@ -78,4 +81,5 @@ export declare class DockviewPanelApiImpl extends GridviewPanelApiImpl implement
78
81
  maximize(): void;
79
82
  isMaximized(): boolean;
80
83
  exitMaximized(): void;
84
+ private setupGroupEventListeners;
81
85
  }
@@ -21,8 +21,8 @@ var gridviewPanelApi_1 = require("./gridviewPanelApi");
21
21
  var lifecycle_1 = require("../lifecycle");
22
22
  var DockviewPanelApiImpl = /** @class */ (function (_super) {
23
23
  __extends(DockviewPanelApiImpl, _super);
24
- function DockviewPanelApiImpl(panel, group, accessor) {
25
- var _this = _super.call(this, panel.id) || this;
24
+ function DockviewPanelApiImpl(panel, group, accessor, component, tabComponent) {
25
+ var _this = _super.call(this, panel.id, component) || this;
26
26
  _this.panel = panel;
27
27
  _this.accessor = accessor;
28
28
  _this._onDidTitleChange = new events_1.Emitter();
@@ -36,8 +36,10 @@ var DockviewPanelApiImpl = /** @class */ (function (_super) {
36
36
  _this._onDidLocationChange = new events_1.Emitter();
37
37
  _this.onDidLocationChange = _this._onDidLocationChange.event;
38
38
  _this.groupEventsDisposable = new lifecycle_1.MutableDisposable();
39
+ _this._tabComponent = tabComponent;
39
40
  _this.initialize(panel);
40
41
  _this._group = group;
42
+ _this.setupGroupEventListeners();
41
43
  _this.addDisposables(_this.groupEventsDisposable, _this._onDidRendererChange, _this._onDidTitleChange, _this._onDidGroupChange, _this._onDidActiveGroupChange, _this._onDidLocationChange);
42
44
  return _this;
43
45
  }
@@ -74,33 +76,11 @@ var DockviewPanelApiImpl = /** @class */ (function (_super) {
74
76
  return this._group;
75
77
  },
76
78
  set: function (value) {
77
- var _this = this;
78
- var isOldGroupActive = this.isGroupActive;
79
+ var oldGroup = this._group;
79
80
  if (this._group !== value) {
80
81
  this._group = value;
81
82
  this._onDidGroupChange.fire({});
82
- var _trackGroupActive_1 = isOldGroupActive; // prevent duplicate events with same state
83
- this.groupEventsDisposable.value = new lifecycle_1.CompositeDisposable(this.group.api.onDidLocationChange(function (event) {
84
- if (_this.group !== _this.panel.group) {
85
- return;
86
- }
87
- _this._onDidLocationChange.fire(event);
88
- }), this.group.api.onDidActiveChange(function () {
89
- if (_this.group !== _this.panel.group) {
90
- return;
91
- }
92
- if (_trackGroupActive_1 !== _this.isGroupActive) {
93
- _trackGroupActive_1 = _this.isGroupActive;
94
- _this._onDidActiveGroupChange.fire({
95
- isActive: _this.isGroupActive,
96
- });
97
- }
98
- }));
99
- // if (this.isGroupActive !== isOldGroupActive) {
100
- // this._onDidActiveGroupChange.fire({
101
- // isActive: this.isGroupActive,
102
- // });
103
- // }
83
+ this.setupGroupEventListeners(oldGroup);
104
84
  this._onDidLocationChange.fire({
105
85
  location: this.group.api.location,
106
86
  });
@@ -109,6 +89,13 @@ var DockviewPanelApiImpl = /** @class */ (function (_super) {
109
89
  enumerable: false,
110
90
  configurable: true
111
91
  });
92
+ Object.defineProperty(DockviewPanelApiImpl.prototype, "tabComponent", {
93
+ get: function () {
94
+ return this._tabComponent;
95
+ },
96
+ enumerable: false,
97
+ configurable: true
98
+ });
112
99
  DockviewPanelApiImpl.prototype.getWindow = function () {
113
100
  return this.group.api.getWindow();
114
101
  };
@@ -141,6 +128,36 @@ var DockviewPanelApiImpl = /** @class */ (function (_super) {
141
128
  DockviewPanelApiImpl.prototype.exitMaximized = function () {
142
129
  this.group.api.exitMaximized();
143
130
  };
131
+ DockviewPanelApiImpl.prototype.setupGroupEventListeners = function (previousGroup) {
132
+ var _this = this;
133
+ var _a;
134
+ var _trackGroupActive = (_a = previousGroup === null || previousGroup === void 0 ? void 0 : previousGroup.isActive) !== null && _a !== void 0 ? _a : false; // prevent duplicate events with same state
135
+ this.groupEventsDisposable.value = new lifecycle_1.CompositeDisposable(this.group.api.onDidVisibilityChange(function (event) {
136
+ if (!event.isVisible && _this.isVisible) {
137
+ _this._onDidVisibilityChange.fire(event);
138
+ }
139
+ else if (event.isVisible &&
140
+ !_this.isVisible &&
141
+ _this.group.model.isPanelActive(_this.panel)) {
142
+ _this._onDidVisibilityChange.fire(event);
143
+ }
144
+ }), this.group.api.onDidLocationChange(function (event) {
145
+ if (_this.group !== _this.panel.group) {
146
+ return;
147
+ }
148
+ _this._onDidLocationChange.fire(event);
149
+ }), this.group.api.onDidActiveChange(function () {
150
+ if (_this.group !== _this.panel.group) {
151
+ return;
152
+ }
153
+ if (_trackGroupActive !== _this.isGroupActive) {
154
+ _trackGroupActive = _this.isGroupActive;
155
+ _this._onDidActiveGroupChange.fire({
156
+ isActive: _this.isGroupActive,
157
+ });
158
+ }
159
+ }));
160
+ };
144
161
  return DockviewPanelApiImpl;
145
162
  }(gridviewPanelApi_1.GridviewPanelApiImpl));
146
163
  exports.DockviewPanelApiImpl = DockviewPanelApiImpl;
@@ -30,7 +30,7 @@ export declare class GridviewPanelApiImpl extends PanelApiImpl implements Gridvi
30
30
  readonly onDidConstraintsChange: Event<GridConstraintChangeEvent>;
31
31
  private readonly _onDidSizeChange;
32
32
  readonly onDidSizeChange: Event<SizeEvent>;
33
- constructor(id: string, panel?: IPanel);
33
+ constructor(id: string, component: string, panel?: IPanel);
34
34
  setConstraints(value: GridConstraintChangeEvent): void;
35
35
  setSize(event: SizeEvent): void;
36
36
  }
@@ -20,8 +20,8 @@ var events_1 = require("../events");
20
20
  var panelApi_1 = require("./panelApi");
21
21
  var GridviewPanelApiImpl = /** @class */ (function (_super) {
22
22
  __extends(GridviewPanelApiImpl, _super);
23
- function GridviewPanelApiImpl(id, panel) {
24
- var _this = _super.call(this, id) || this;
23
+ function GridviewPanelApiImpl(id, component, panel) {
24
+ var _this = _super.call(this, id, component) || this;
25
25
  _this._onDidConstraintsChangeInternal = new events_1.Emitter();
26
26
  _this.onDidConstraintsChangeInternal = _this._onDidConstraintsChangeInternal.event;
27
27
  _this._onDidConstraintsChange = new events_1.Emitter();
@@ -11,9 +11,6 @@ export interface PanelDimensionChangeEvent {
11
11
  export interface VisibilityEvent {
12
12
  readonly isVisible: boolean;
13
13
  }
14
- export interface HiddenEvent {
15
- readonly isHidden: boolean;
16
- }
17
14
  export interface ActiveEvent {
18
15
  readonly isActive: boolean;
19
16
  }
@@ -22,8 +19,9 @@ export interface PanelApi {
22
19
  readonly onDidFocusChange: Event<FocusEvent>;
23
20
  readonly onDidVisibilityChange: Event<VisibilityEvent>;
24
21
  readonly onDidActiveChange: Event<ActiveEvent>;
25
- readonly onDidHiddenChange: Event<HiddenEvent>;
22
+ readonly onDidParametersChange: Event<Parameters>;
26
23
  setActive(): void;
24
+ setVisible(isVisible: boolean): void;
27
25
  updateParameters(parameters: Parameters): void;
28
26
  /**
29
27
  * The id of the panel that would have been assigned when the panel was created
@@ -41,10 +39,6 @@ export interface PanelApi {
41
39
  * Whether the panel is visible
42
40
  */
43
41
  readonly isVisible: boolean;
44
- /**
45
- * Whether the panel is hidden
46
- */
47
- readonly isHidden: boolean;
48
42
  /**
49
43
  * The panel width in pixels
50
44
  */
@@ -54,6 +48,7 @@ export interface PanelApi {
54
48
  */
55
49
  readonly height: number;
56
50
  readonly onWillFocus: Event<WillFocusEvent>;
51
+ getParameters<T extends Parameters = Parameters>(): T;
57
52
  }
58
53
  export declare class WillFocusEvent extends DockviewEvent {
59
54
  constructor();
@@ -63,12 +58,13 @@ export declare class WillFocusEvent extends DockviewEvent {
63
58
  */
64
59
  export declare class PanelApiImpl extends CompositeDisposable implements PanelApi {
65
60
  readonly id: string;
61
+ readonly component: string;
66
62
  private _isFocused;
67
63
  private _isActive;
68
64
  private _isVisible;
69
- private _isHidden;
70
65
  private _width;
71
66
  private _height;
67
+ private _parameters;
72
68
  private readonly panelUpdatesDisposable;
73
69
  readonly _onDidDimensionChange: Emitter<PanelDimensionChangeEvent>;
74
70
  readonly onDidDimensionsChange: Event<PanelDimensionChangeEvent>;
@@ -78,23 +74,23 @@ export declare class PanelApiImpl extends CompositeDisposable implements PanelAp
78
74
  readonly onWillFocus: Event<WillFocusEvent>;
79
75
  readonly _onDidVisibilityChange: Emitter<VisibilityEvent>;
80
76
  readonly onDidVisibilityChange: Event<VisibilityEvent>;
81
- readonly _onDidHiddenChange: Emitter<HiddenEvent>;
82
- readonly onDidHiddenChange: Event<HiddenEvent>;
77
+ readonly _onWillVisibilityChange: Emitter<VisibilityEvent>;
78
+ readonly onWillVisibilityChange: Event<VisibilityEvent>;
83
79
  readonly _onDidActiveChange: Emitter<ActiveEvent>;
84
80
  readonly onDidActiveChange: Event<ActiveEvent>;
85
81
  readonly _onActiveChange: Emitter<void>;
86
82
  readonly onActiveChange: Event<void>;
87
- readonly _onUpdateParameters: Emitter<Parameters>;
88
- readonly onUpdateParameters: Event<Parameters>;
83
+ readonly _onDidParametersChange: Emitter<Parameters>;
84
+ readonly onDidParametersChange: Event<Parameters>;
89
85
  get isFocused(): boolean;
90
86
  get isActive(): boolean;
91
87
  get isVisible(): boolean;
92
- get isHidden(): boolean;
93
88
  get width(): number;
94
89
  get height(): number;
95
- constructor(id: string);
90
+ constructor(id: string, component: string);
91
+ getParameters<T extends Parameters = Parameters>(): T;
96
92
  initialize(panel: IPanel): void;
97
- setHidden(isHidden: boolean): void;
93
+ setVisible(isVisible: boolean): void;
98
94
  setActive(): void;
99
95
  updateParameters(parameters: Parameters): void;
100
96
  }
@@ -31,15 +31,16 @@ exports.WillFocusEvent = WillFocusEvent;
31
31
  */
32
32
  var PanelApiImpl = /** @class */ (function (_super) {
33
33
  __extends(PanelApiImpl, _super);
34
- function PanelApiImpl(id) {
34
+ function PanelApiImpl(id, component) {
35
35
  var _this = _super.call(this) || this;
36
36
  _this.id = id;
37
+ _this.component = component;
37
38
  _this._isFocused = false;
38
39
  _this._isActive = false;
39
40
  _this._isVisible = true;
40
- _this._isHidden = false;
41
41
  _this._width = 0;
42
42
  _this._height = 0;
43
+ _this._parameters = {};
43
44
  _this.panelUpdatesDisposable = new lifecycle_1.MutableDisposable();
44
45
  _this._onDidDimensionChange = new events_1.Emitter();
45
46
  _this.onDidDimensionsChange = _this._onDidDimensionChange.event;
@@ -51,26 +52,24 @@ var PanelApiImpl = /** @class */ (function (_super) {
51
52
  //
52
53
  _this._onDidVisibilityChange = new events_1.Emitter();
53
54
  _this.onDidVisibilityChange = _this._onDidVisibilityChange.event;
54
- _this._onDidHiddenChange = new events_1.Emitter();
55
- _this.onDidHiddenChange = _this._onDidHiddenChange.event;
55
+ _this._onWillVisibilityChange = new events_1.Emitter();
56
+ _this.onWillVisibilityChange = _this._onWillVisibilityChange.event;
56
57
  _this._onDidActiveChange = new events_1.Emitter();
57
58
  _this.onDidActiveChange = _this._onDidActiveChange.event;
58
59
  _this._onActiveChange = new events_1.Emitter();
59
60
  _this.onActiveChange = _this._onActiveChange.event;
60
- _this._onUpdateParameters = new events_1.Emitter();
61
- _this.onUpdateParameters = _this._onUpdateParameters.event;
61
+ _this._onDidParametersChange = new events_1.Emitter();
62
+ _this.onDidParametersChange = _this._onDidParametersChange.event;
62
63
  _this.addDisposables(_this.onDidFocusChange(function (event) {
63
64
  _this._isFocused = event.isFocused;
64
65
  }), _this.onDidActiveChange(function (event) {
65
66
  _this._isActive = event.isActive;
66
67
  }), _this.onDidVisibilityChange(function (event) {
67
68
  _this._isVisible = event.isVisible;
68
- }), _this.onDidHiddenChange(function (event) {
69
- _this._isHidden = event.isHidden;
70
69
  }), _this.onDidDimensionsChange(function (event) {
71
70
  _this._width = event.width;
72
71
  _this._height = event.height;
73
- }), _this.panelUpdatesDisposable, _this._onDidDimensionChange, _this._onDidChangeFocus, _this._onDidVisibilityChange, _this._onDidActiveChange, _this._onWillFocus, _this._onActiveChange, _this._onUpdateParameters, _this._onWillFocus, _this._onDidHiddenChange, _this._onUpdateParameters);
72
+ }), _this.panelUpdatesDisposable, _this._onDidDimensionChange, _this._onDidChangeFocus, _this._onDidVisibilityChange, _this._onDidActiveChange, _this._onWillFocus, _this._onActiveChange, _this._onWillFocus, _this._onWillVisibilityChange, _this._onDidParametersChange);
74
73
  return _this;
75
74
  }
76
75
  Object.defineProperty(PanelApiImpl.prototype, "isFocused", {
@@ -94,13 +93,6 @@ var PanelApiImpl = /** @class */ (function (_super) {
94
93
  enumerable: false,
95
94
  configurable: true
96
95
  });
97
- Object.defineProperty(PanelApiImpl.prototype, "isHidden", {
98
- get: function () {
99
- return this._isHidden;
100
- },
101
- enumerable: false,
102
- configurable: true
103
- });
104
96
  Object.defineProperty(PanelApiImpl.prototype, "width", {
105
97
  get: function () {
106
98
  return this._width;
@@ -115,21 +107,26 @@ var PanelApiImpl = /** @class */ (function (_super) {
115
107
  enumerable: false,
116
108
  configurable: true
117
109
  });
110
+ PanelApiImpl.prototype.getParameters = function () {
111
+ return this._parameters;
112
+ };
118
113
  PanelApiImpl.prototype.initialize = function (panel) {
119
- this.panelUpdatesDisposable.value = this._onUpdateParameters.event(function (parameters) {
114
+ var _this = this;
115
+ this.panelUpdatesDisposable.value = this._onDidParametersChange.event(function (parameters) {
116
+ _this._parameters = parameters;
120
117
  panel.update({
121
118
  params: parameters,
122
119
  });
123
120
  });
124
121
  };
125
- PanelApiImpl.prototype.setHidden = function (isHidden) {
126
- this._onDidHiddenChange.fire({ isHidden: isHidden });
122
+ PanelApiImpl.prototype.setVisible = function (isVisible) {
123
+ this._onWillVisibilityChange.fire({ isVisible: isVisible });
127
124
  };
128
125
  PanelApiImpl.prototype.setActive = function () {
129
126
  this._onActiveChange.fire();
130
127
  };
131
128
  PanelApiImpl.prototype.updateParameters = function (parameters) {
132
- this._onUpdateParameters.fire(parameters);
129
+ this._onDidParametersChange.fire(parameters);
133
130
  };
134
131
  return PanelApiImpl;
135
132
  }(lifecycle_1.CompositeDisposable));
@@ -20,7 +20,7 @@ export declare class PaneviewPanelApiImpl extends SplitviewPanelApiImpl implemen
20
20
  readonly onMouseLeave: Event<MouseEvent>;
21
21
  private _pane;
22
22
  set pane(pane: PaneviewPanel);
23
- constructor(id: string);
23
+ constructor(id: string, component: string);
24
24
  setExpanded(isExpanded: boolean): void;
25
25
  get isExpanded(): boolean;
26
26
  }
@@ -20,8 +20,8 @@ var events_1 = require("../events");
20
20
  var splitviewPanelApi_1 = require("./splitviewPanelApi");
21
21
  var PaneviewPanelApiImpl = /** @class */ (function (_super) {
22
22
  __extends(PaneviewPanelApiImpl, _super);
23
- function PaneviewPanelApiImpl(id) {
24
- var _this = _super.call(this, id) || this;
23
+ function PaneviewPanelApiImpl(id, component) {
24
+ var _this = _super.call(this, id, component) || this;
25
25
  _this._onDidExpansionChange = new events_1.Emitter({
26
26
  replay: true,
27
27
  });
@@ -25,7 +25,7 @@ export declare class SplitviewPanelApiImpl extends PanelApiImpl implements Split
25
25
  readonly onDidConstraintsChange: Event<PanelConstraintChangeEvent>;
26
26
  readonly _onDidSizeChange: Emitter<PanelSizeEvent>;
27
27
  readonly onDidSizeChange: Event<PanelSizeEvent>;
28
- constructor(id: string);
28
+ constructor(id: string, component: string);
29
29
  setConstraints(value: PanelConstraintChangeEvent2): void;
30
30
  setSize(event: PanelSizeEvent): void;
31
31
  }
@@ -21,8 +21,8 @@ var panelApi_1 = require("./panelApi");
21
21
  var SplitviewPanelApiImpl = /** @class */ (function (_super) {
22
22
  __extends(SplitviewPanelApiImpl, _super);
23
23
  //
24
- function SplitviewPanelApiImpl(id) {
25
- var _this = _super.call(this, id) || this;
24
+ function SplitviewPanelApiImpl(id, component) {
25
+ var _this = _super.call(this, id, component) || this;
26
26
  _this._onDidConstraintsChangeInternal = new events_1.Emitter();
27
27
  _this.onDidConstraintsChangeInternal = _this._onDidConstraintsChangeInternal.event;
28
28
  //
@@ -64,7 +64,7 @@ var ContentContainer = /** @class */ (function (_super) {
64
64
  data.groupId === _this.group.id;
65
65
  return !groupHasOnePanelAndIsActiveDragElement;
66
66
  }
67
- return _this.group.canDisplayOverlay(event, position, 'panel');
67
+ return _this.group.canDisplayOverlay(event, position, 'content');
68
68
  },
69
69
  });
70
70
  _this.addDisposables(_this.dropTarget);
@@ -54,7 +54,7 @@ var VoidContainer = /** @class */ (function (_super) {
54
54
  // don't show the overlay if the tab being dragged is the last panel of this group
55
55
  return ((_a = (0, array_1.last)(_this.group.panels)) === null || _a === void 0 ? void 0 : _a.id) !== data.panelId;
56
56
  }
57
- return group.model.canDisplayOverlay(event, position, 'panel');
57
+ return group.model.canDisplayOverlay(event, position, 'header_space');
58
58
  },
59
59
  });
60
60
  _this.onWillShowOverlay = _this.dropTraget.onWillShowOverlay;
@@ -21,7 +21,7 @@ var DefaultDockviewDeserialzier = /** @class */ (function () {
21
21
  ? (_b = viewData.tab) === null || _b === void 0 ? void 0 : _b.id
22
22
  : panelData.tabComponent;
23
23
  var view = new dockviewPanelModel_1.DockviewPanelModel(this.accessor, panelId, contentComponent, tabComponent);
24
- var panel = new dockviewPanel_1.DockviewPanel(panelId, this.accessor, new component_api_1.DockviewApi(this.accessor), group, view, {
24
+ var panel = new dockviewPanel_1.DockviewPanel(panelId, contentComponent, tabComponent, this.accessor, new component_api_1.DockviewApi(this.accessor), group, view, {
25
25
  renderer: panelData.renderer,
26
26
  });
27
27
  panel.init({
@@ -335,7 +335,15 @@ var DockviewComponent = /** @class */ (function (_super) {
335
335
  acceptedTargetZones: ['top', 'bottom', 'left', 'right', 'center'],
336
336
  overlayModel: (_b = _this.options.rootOverlayModel) !== null && _b !== void 0 ? _b : DEFAULT_ROOT_OVERLAY_MODEL,
337
337
  });
338
- _this.addDisposables(_this._rootDropTarget.onDrop(function (event) {
338
+ _this.addDisposables(_this._rootDropTarget, _this._rootDropTarget.onWillShowOverlay(function (event) {
339
+ if (_this.gridview.length > 0 && event.position === 'center') {
340
+ // option only available when no panels in primary grid
341
+ return;
342
+ }
343
+ _this._onWillShowOverlay.fire(new dockviewGroupPanelModel_1.WillShowOverlayLocationEvent(event, {
344
+ kind: 'edge',
345
+ }));
346
+ }), _this._rootDropTarget.onDrop(function (event) {
339
347
  var _a;
340
348
  var willDropEvent = new dockviewGroupPanelModel_1.DockviewWillDropEvent({
341
349
  nativeEvent: event.nativeEvent,
@@ -344,7 +352,7 @@ var DockviewComponent = /** @class */ (function (_super) {
344
352
  api: _this._api,
345
353
  group: undefined,
346
354
  getData: dataTransfer_1.getPanelData,
347
- kind: 'content',
355
+ kind: 'edge',
348
356
  });
349
357
  _this._onWillDrop.fire(willDropEvent);
350
358
  if (willDropEvent.defaultPrevented) {
@@ -449,7 +457,7 @@ var DockviewComponent = /** @class */ (function (_super) {
449
457
  var box = getBox();
450
458
  var 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;
451
459
  if (itemToPopout.api.location.type === 'grid') {
452
- itemToPopout.api.setHidden(true);
460
+ itemToPopout.api.setVisible(false);
453
461
  }
454
462
  var _window = new popoutWindow_1.PopoutWindow("".concat(this.id, "-").concat(groupId), // unique id
455
463
  theme !== null && theme !== void 0 ? theme : '', {
@@ -502,7 +510,7 @@ var DockviewComponent = /** @class */ (function (_super) {
502
510
  });
503
511
  switch (referenceLocation) {
504
512
  case 'grid':
505
- referenceGroup.api.setHidden(true);
513
+ referenceGroup.api.setVisible(false);
506
514
  break;
507
515
  case 'floating':
508
516
  case 'popout':
@@ -558,8 +566,8 @@ var DockviewComponent = /** @class */ (function (_super) {
558
566
  to: referenceGroup,
559
567
  });
560
568
  });
561
- if (referenceGroup.api.isHidden) {
562
- referenceGroup.api.setHidden(false);
569
+ if (!referenceGroup.api.isVisible) {
570
+ referenceGroup.api.setVisible(true);
563
571
  }
564
572
  if (_this.getPanel(group.id)) {
565
573
  _this.doRemoveGroup(group, {
@@ -1269,7 +1277,7 @@ var DockviewComponent = /** @class */ (function (_super) {
1269
1277
  };
1270
1278
  DockviewComponent.prototype.updateWatermark = function () {
1271
1279
  var _a, _b;
1272
- if (this.groups.filter(function (x) { return x.api.location.type === 'grid' && !x.api.isHidden; }).length === 0) {
1280
+ if (this.groups.filter(function (x) { return x.api.location.type === 'grid' && x.api.isVisible; }).length === 0) {
1273
1281
  if (!this.watermark) {
1274
1282
  this.watermark = this.createWatermarkComponent();
1275
1283
  this.watermark.init({
@@ -1705,6 +1713,8 @@ var DockviewComponent = /** @class */ (function (_super) {
1705
1713
  if (_this._onDidActivePanelChange.value !== event.panel) {
1706
1714
  _this._onDidActivePanelChange.fire(event.panel);
1707
1715
  }
1716
+ }), events_1.Event.any(view.model.onDidPanelTitleChange, view.model.onDidPanelParametersChange)(function () {
1717
+ _this._bufferOnDidLayoutChange.fire();
1708
1718
  }));
1709
1719
  this._groups.set(view.id, { value: view, disposable: disposable });
1710
1720
  }
@@ -1717,7 +1727,7 @@ var DockviewComponent = /** @class */ (function (_super) {
1717
1727
  var contentComponent = options.component;
1718
1728
  var tabComponent = (_a = options.tabComponent) !== null && _a !== void 0 ? _a : this.options.defaultTabComponent;
1719
1729
  var view = new dockviewPanelModel_1.DockviewPanelModel(this, options.id, contentComponent, tabComponent);
1720
- var panel = new dockviewPanel_1.DockviewPanel(options.id, this, this._api, group, view, { renderer: options.renderer });
1730
+ var panel = new dockviewPanel_1.DockviewPanel(options.id, contentComponent, tabComponent, this, this._api, group, view, { renderer: options.renderer });
1721
1731
  panel.init({
1722
1732
  title: (_b = options.title) !== null && _b !== void 0 ? _b : options.id,
1723
1733
  params: (_c = options === null || options === void 0 ? void 0 : options.params) !== null && _c !== void 0 ? _c : {},
@@ -5,12 +5,12 @@ import { DockviewComponent } from './dockviewComponent';
5
5
  import { DockviewEvent, Event, IDockviewEvent } from '../events';
6
6
  import { IViewSize } from '../gridview/gridview';
7
7
  import { CompositeDisposable } from '../lifecycle';
8
- import { IPanel, PanelInitParameters, PanelUpdateEvent } from '../panel/types';
8
+ import { IPanel, PanelInitParameters, PanelUpdateEvent, Parameters } from '../panel/types';
9
9
  import { GroupDragEvent, TabDragEvent } from './components/titlebar/tabsContainer';
10
- import { DockviewDropTargets } from './types';
11
10
  import { DockviewGroupPanel } from './dockviewGroupPanel';
12
11
  import { IDockviewPanel } from './dockviewPanel';
13
12
  import { OverlayRenderContainer } from '../overlayRenderContainer';
13
+ import { TitleEvent } from '../api/dockviewPanelApi';
14
14
  interface GroupMoveEvent {
15
15
  groupId: string;
16
16
  itemId?: string;
@@ -69,7 +69,7 @@ export interface IHeader {
69
69
  hidden: boolean;
70
70
  }
71
71
  export type DockviewGroupPanelLocked = boolean | 'no-drop-target';
72
- export type DockviewGroupDropLocation = 'tab' | 'header_space' | 'content';
72
+ export type DockviewGroupDropLocation = 'tab' | 'header_space' | 'content' | 'edge';
73
73
  export interface IDockviewGroupPanelModel extends IPanel {
74
74
  readonly isActive: boolean;
75
75
  readonly size: number;
@@ -106,7 +106,7 @@ export interface IDockviewGroupPanelModel extends IPanel {
106
106
  panel?: IDockviewPanel;
107
107
  suppressRoll?: boolean;
108
108
  }): void;
109
- canDisplayOverlay(event: DragEvent, position: Position, target: DockviewDropTargets): boolean;
109
+ canDisplayOverlay(event: DragEvent, position: Position, target: DockviewGroupDropLocation): boolean;
110
110
  }
111
111
  export type DockviewGroupLocation = {
112
112
  type: 'grid';
@@ -150,6 +150,7 @@ export declare class DockviewGroupPanelModel extends CompositeDisposable impleme
150
150
  private _width;
151
151
  private _height;
152
152
  private _panels;
153
+ private readonly _panelDisposables;
153
154
  private readonly _onMove;
154
155
  readonly onMove: Event<GroupMoveEvent>;
155
156
  private readonly _onDidDrop;
@@ -164,6 +165,10 @@ export declare class DockviewGroupPanelModel extends CompositeDisposable impleme
164
165
  readonly onGroupDragStart: Event<GroupDragEvent>;
165
166
  private readonly _onDidAddPanel;
166
167
  readonly onDidAddPanel: Event<DockviewGroupChangeEvent>;
168
+ private readonly _onDidPanelTitleChange;
169
+ readonly onDidPanelTitleChange: Event<TitleEvent>;
170
+ private readonly _onDidPanelParametersChange;
171
+ readonly onDidPanelParametersChange: Event<Parameters>;
167
172
  private readonly _onDidRemovePanel;
168
173
  readonly onDidRemovePanel: Event<DockviewGroupChangeEvent>;
169
174
  private readonly _onDidActivePanelChange;
@@ -225,7 +230,7 @@ export declare class DockviewGroupPanelModel extends CompositeDisposable impleme
225
230
  private doSetActivePanel;
226
231
  private updateMru;
227
232
  private updateContainer;
228
- canDisplayOverlay(event: DragEvent, position: Position, target: DockviewDropTargets): boolean;
233
+ canDisplayOverlay(event: DragEvent, position: Position, target: DockviewGroupDropLocation): boolean;
229
234
  private handleDropEvent;
230
235
  dispose(): void;
231
236
  }