dockview-core 1.10.1 → 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 (63) hide show
  1. package/dist/cjs/api/dockviewGroupPanelApi.js +1 -1
  2. package/dist/cjs/api/dockviewPanelApi.d.ts +4 -1
  3. package/dist/cjs/api/dockviewPanelApi.js +10 -2
  4. package/dist/cjs/api/gridviewPanelApi.d.ts +1 -1
  5. package/dist/cjs/api/gridviewPanelApi.js +2 -2
  6. package/dist/cjs/api/panelApi.d.ts +8 -3
  7. package/dist/cjs/api/panelApi.js +13 -6
  8. package/dist/cjs/api/paneviewPanelApi.d.ts +1 -1
  9. package/dist/cjs/api/paneviewPanelApi.js +2 -2
  10. package/dist/cjs/api/splitviewPanelApi.d.ts +1 -1
  11. package/dist/cjs/api/splitviewPanelApi.js +2 -2
  12. package/dist/cjs/dockview/deserializer.js +1 -1
  13. package/dist/cjs/dockview/dockviewComponent.js +3 -1
  14. package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +7 -1
  15. package/dist/cjs/dockview/dockviewGroupPanelModel.js +16 -0
  16. package/dist/cjs/dockview/dockviewPanel.d.ts +1 -1
  17. package/dist/cjs/dockview/dockviewPanel.js +2 -2
  18. package/dist/cjs/gridview/gridviewPanel.js +1 -1
  19. package/dist/cjs/paneview/paneviewPanel.js +1 -1
  20. package/dist/cjs/splitview/splitviewPanel.js +1 -1
  21. package/dist/dockview-core.amd.js +46 -23
  22. package/dist/dockview-core.amd.js.map +1 -1
  23. package/dist/dockview-core.amd.min.js +2 -2
  24. package/dist/dockview-core.amd.min.js.map +1 -1
  25. package/dist/dockview-core.amd.min.noStyle.js +2 -2
  26. package/dist/dockview-core.amd.min.noStyle.js.map +1 -1
  27. package/dist/dockview-core.amd.noStyle.js +46 -23
  28. package/dist/dockview-core.amd.noStyle.js.map +1 -1
  29. package/dist/dockview-core.cjs.js +46 -23
  30. package/dist/dockview-core.cjs.js.map +1 -1
  31. package/dist/dockview-core.esm.js +46 -23
  32. package/dist/dockview-core.esm.js.map +1 -1
  33. package/dist/dockview-core.esm.min.js +2 -2
  34. package/dist/dockview-core.esm.min.js.map +1 -1
  35. package/dist/dockview-core.js +46 -23
  36. package/dist/dockview-core.js.map +1 -1
  37. package/dist/dockview-core.min.js +2 -2
  38. package/dist/dockview-core.min.js.map +1 -1
  39. package/dist/dockview-core.min.noStyle.js +2 -2
  40. package/dist/dockview-core.min.noStyle.js.map +1 -1
  41. package/dist/dockview-core.noStyle.js +46 -23
  42. package/dist/dockview-core.noStyle.js.map +1 -1
  43. package/dist/esm/api/dockviewGroupPanelApi.js +1 -1
  44. package/dist/esm/api/dockviewPanelApi.d.ts +4 -1
  45. package/dist/esm/api/dockviewPanelApi.js +6 -2
  46. package/dist/esm/api/gridviewPanelApi.d.ts +1 -1
  47. package/dist/esm/api/gridviewPanelApi.js +2 -2
  48. package/dist/esm/api/panelApi.d.ts +8 -3
  49. package/dist/esm/api/panelApi.js +12 -6
  50. package/dist/esm/api/paneviewPanelApi.d.ts +1 -1
  51. package/dist/esm/api/paneviewPanelApi.js +2 -2
  52. package/dist/esm/api/splitviewPanelApi.d.ts +1 -1
  53. package/dist/esm/api/splitviewPanelApi.js +2 -2
  54. package/dist/esm/dockview/deserializer.js +1 -1
  55. package/dist/esm/dockview/dockviewComponent.js +3 -1
  56. package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +7 -1
  57. package/dist/esm/dockview/dockviewGroupPanelModel.js +11 -0
  58. package/dist/esm/dockview/dockviewPanel.d.ts +1 -1
  59. package/dist/esm/dockview/dockviewPanel.js +2 -2
  60. package/dist/esm/gridview/gridviewPanel.js +1 -1
  61. package/dist/esm/paneview/paneviewPanel.js +1 -1
  62. package/dist/esm/splitview/splitviewPanel.js +1 -1
  63. package/package.json +1 -1
@@ -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;
@@ -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,6 +36,7 @@ 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;
41
42
  _this.setupGroupEventListeners();
@@ -88,6 +89,13 @@ var DockviewPanelApiImpl = /** @class */ (function (_super) {
88
89
  enumerable: false,
89
90
  configurable: true
90
91
  });
92
+ Object.defineProperty(DockviewPanelApiImpl.prototype, "tabComponent", {
93
+ get: function () {
94
+ return this._tabComponent;
95
+ },
96
+ enumerable: false,
97
+ configurable: true
98
+ });
91
99
  DockviewPanelApiImpl.prototype.getWindow = function () {
92
100
  return this.group.api.getWindow();
93
101
  };
@@ -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();
@@ -19,6 +19,7 @@ export interface PanelApi {
19
19
  readonly onDidFocusChange: Event<FocusEvent>;
20
20
  readonly onDidVisibilityChange: Event<VisibilityEvent>;
21
21
  readonly onDidActiveChange: Event<ActiveEvent>;
22
+ readonly onDidParametersChange: Event<Parameters>;
22
23
  setActive(): void;
23
24
  setVisible(isVisible: boolean): void;
24
25
  updateParameters(parameters: Parameters): void;
@@ -47,6 +48,7 @@ export interface PanelApi {
47
48
  */
48
49
  readonly height: number;
49
50
  readonly onWillFocus: Event<WillFocusEvent>;
51
+ getParameters<T extends Parameters = Parameters>(): T;
50
52
  }
51
53
  export declare class WillFocusEvent extends DockviewEvent {
52
54
  constructor();
@@ -56,11 +58,13 @@ export declare class WillFocusEvent extends DockviewEvent {
56
58
  */
57
59
  export declare class PanelApiImpl extends CompositeDisposable implements PanelApi {
58
60
  readonly id: string;
61
+ readonly component: string;
59
62
  private _isFocused;
60
63
  private _isActive;
61
64
  private _isVisible;
62
65
  private _width;
63
66
  private _height;
67
+ private _parameters;
64
68
  private readonly panelUpdatesDisposable;
65
69
  readonly _onDidDimensionChange: Emitter<PanelDimensionChangeEvent>;
66
70
  readonly onDidDimensionsChange: Event<PanelDimensionChangeEvent>;
@@ -76,14 +80,15 @@ export declare class PanelApiImpl extends CompositeDisposable implements PanelAp
76
80
  readonly onDidActiveChange: Event<ActiveEvent>;
77
81
  readonly _onActiveChange: Emitter<void>;
78
82
  readonly onActiveChange: Event<void>;
79
- readonly _onUpdateParameters: Emitter<Parameters>;
80
- readonly onUpdateParameters: Event<Parameters>;
83
+ readonly _onDidParametersChange: Emitter<Parameters>;
84
+ readonly onDidParametersChange: Event<Parameters>;
81
85
  get isFocused(): boolean;
82
86
  get isActive(): boolean;
83
87
  get isVisible(): boolean;
84
88
  get width(): number;
85
89
  get height(): number;
86
- constructor(id: string);
90
+ constructor(id: string, component: string);
91
+ getParameters<T extends Parameters = Parameters>(): T;
87
92
  initialize(panel: IPanel): void;
88
93
  setVisible(isVisible: boolean): void;
89
94
  setActive(): void;
@@ -31,14 +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
41
  _this._width = 0;
41
42
  _this._height = 0;
43
+ _this._parameters = {};
42
44
  _this.panelUpdatesDisposable = new lifecycle_1.MutableDisposable();
43
45
  _this._onDidDimensionChange = new events_1.Emitter();
44
46
  _this.onDidDimensionsChange = _this._onDidDimensionChange.event;
@@ -56,8 +58,8 @@ var PanelApiImpl = /** @class */ (function (_super) {
56
58
  _this.onDidActiveChange = _this._onDidActiveChange.event;
57
59
  _this._onActiveChange = new events_1.Emitter();
58
60
  _this.onActiveChange = _this._onActiveChange.event;
59
- _this._onUpdateParameters = new events_1.Emitter();
60
- _this.onUpdateParameters = _this._onUpdateParameters.event;
61
+ _this._onDidParametersChange = new events_1.Emitter();
62
+ _this.onDidParametersChange = _this._onDidParametersChange.event;
61
63
  _this.addDisposables(_this.onDidFocusChange(function (event) {
62
64
  _this._isFocused = event.isFocused;
63
65
  }), _this.onDidActiveChange(function (event) {
@@ -67,7 +69,7 @@ var PanelApiImpl = /** @class */ (function (_super) {
67
69
  }), _this.onDidDimensionsChange(function (event) {
68
70
  _this._width = event.width;
69
71
  _this._height = event.height;
70
- }), _this.panelUpdatesDisposable, _this._onDidDimensionChange, _this._onDidChangeFocus, _this._onDidVisibilityChange, _this._onDidActiveChange, _this._onWillFocus, _this._onActiveChange, _this._onUpdateParameters, _this._onWillFocus, _this._onWillVisibilityChange, _this._onUpdateParameters);
72
+ }), _this.panelUpdatesDisposable, _this._onDidDimensionChange, _this._onDidChangeFocus, _this._onDidVisibilityChange, _this._onDidActiveChange, _this._onWillFocus, _this._onActiveChange, _this._onWillFocus, _this._onWillVisibilityChange, _this._onDidParametersChange);
71
73
  return _this;
72
74
  }
73
75
  Object.defineProperty(PanelApiImpl.prototype, "isFocused", {
@@ -105,8 +107,13 @@ var PanelApiImpl = /** @class */ (function (_super) {
105
107
  enumerable: false,
106
108
  configurable: true
107
109
  });
110
+ PanelApiImpl.prototype.getParameters = function () {
111
+ return this._parameters;
112
+ };
108
113
  PanelApiImpl.prototype.initialize = function (panel) {
109
- 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;
110
117
  panel.update({
111
118
  params: parameters,
112
119
  });
@@ -119,7 +126,7 @@ var PanelApiImpl = /** @class */ (function (_super) {
119
126
  this._onActiveChange.fire();
120
127
  };
121
128
  PanelApiImpl.prototype.updateParameters = function (parameters) {
122
- this._onUpdateParameters.fire(parameters);
129
+ this._onDidParametersChange.fire(parameters);
123
130
  };
124
131
  return PanelApiImpl;
125
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
  //
@@ -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({
@@ -1713,6 +1713,8 @@ var DockviewComponent = /** @class */ (function (_super) {
1713
1713
  if (_this._onDidActivePanelChange.value !== event.panel) {
1714
1714
  _this._onDidActivePanelChange.fire(event.panel);
1715
1715
  }
1716
+ }), events_1.Event.any(view.model.onDidPanelTitleChange, view.model.onDidPanelParametersChange)(function () {
1717
+ _this._bufferOnDidLayoutChange.fire();
1716
1718
  }));
1717
1719
  this._groups.set(view.id, { value: view, disposable: disposable });
1718
1720
  }
@@ -1725,7 +1727,7 @@ var DockviewComponent = /** @class */ (function (_super) {
1725
1727
  var contentComponent = options.component;
1726
1728
  var tabComponent = (_a = options.tabComponent) !== null && _a !== void 0 ? _a : this.options.defaultTabComponent;
1727
1729
  var view = new dockviewPanelModel_1.DockviewPanelModel(this, options.id, contentComponent, tabComponent);
1728
- 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 });
1729
1731
  panel.init({
1730
1732
  title: (_b = options.title) !== null && _b !== void 0 ? _b : options.id,
1731
1733
  params: (_c = options === null || options === void 0 ? void 0 : options.params) !== null && _c !== void 0 ? _c : {},
@@ -5,11 +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
10
  import { DockviewGroupPanel } from './dockviewGroupPanel';
11
11
  import { IDockviewPanel } from './dockviewPanel';
12
12
  import { OverlayRenderContainer } from '../overlayRenderContainer';
13
+ import { TitleEvent } from '../api/dockviewPanelApi';
13
14
  interface GroupMoveEvent {
14
15
  groupId: string;
15
16
  itemId?: string;
@@ -149,6 +150,7 @@ export declare class DockviewGroupPanelModel extends CompositeDisposable impleme
149
150
  private _width;
150
151
  private _height;
151
152
  private _panels;
153
+ private readonly _panelDisposables;
152
154
  private readonly _onMove;
153
155
  readonly onMove: Event<GroupMoveEvent>;
154
156
  private readonly _onDidDrop;
@@ -163,6 +165,10 @@ export declare class DockviewGroupPanelModel extends CompositeDisposable impleme
163
165
  readonly onGroupDragStart: Event<GroupDragEvent>;
164
166
  private readonly _onDidAddPanel;
165
167
  readonly onDidAddPanel: Event<DockviewGroupChangeEvent>;
168
+ private readonly _onDidPanelTitleChange;
169
+ readonly onDidPanelTitleChange: Event<TitleEvent>;
170
+ private readonly _onDidPanelParametersChange;
171
+ readonly onDidPanelParametersChange: Event<Parameters>;
166
172
  private readonly _onDidRemovePanel;
167
173
  readonly onDidRemovePanel: Event<DockviewGroupChangeEvent>;
168
174
  private readonly _onDidActivePanelChange;
@@ -182,6 +182,7 @@ var DockviewGroupPanelModel = /** @class */ (function (_super) {
182
182
  _this._width = 0;
183
183
  _this._height = 0;
184
184
  _this._panels = [];
185
+ _this._panelDisposables = new Map();
185
186
  _this._onMove = new events_1.Emitter();
186
187
  _this.onMove = _this._onMove.event;
187
188
  _this._onDidDrop = new events_1.Emitter();
@@ -196,6 +197,10 @@ var DockviewGroupPanelModel = /** @class */ (function (_super) {
196
197
  _this.onGroupDragStart = _this._onGroupDragStart.event;
197
198
  _this._onDidAddPanel = new events_1.Emitter();
198
199
  _this.onDidAddPanel = _this._onDidAddPanel.event;
200
+ _this._onDidPanelTitleChange = new events_1.Emitter();
201
+ _this.onDidPanelTitleChange = _this._onDidPanelTitleChange.event;
202
+ _this._onDidPanelParametersChange = new events_1.Emitter();
203
+ _this.onDidPanelParametersChange = _this._onDidPanelParametersChange.event;
199
204
  _this._onDidRemovePanel = new events_1.Emitter();
200
205
  _this.onDidRemovePanel = _this._onDidRemovePanel.event;
201
206
  _this._onDidActivePanelChange = new events_1.Emitter();
@@ -619,9 +624,15 @@ var DockviewGroupPanelModel = /** @class */ (function (_super) {
619
624
  if (this.mostRecentlyUsed.includes(panel)) {
620
625
  this.mostRecentlyUsed.splice(this.mostRecentlyUsed.indexOf(panel), 1);
621
626
  }
627
+ var disposable = this._panelDisposables.get(panel.id);
628
+ if (disposable) {
629
+ disposable.dispose();
630
+ this._panelDisposables.delete(panel.id);
631
+ }
622
632
  this._onDidRemovePanel.fire({ panel: panel });
623
633
  };
624
634
  DockviewGroupPanelModel.prototype.doAddPanel = function (panel, index, options) {
635
+ var _this = this;
625
636
  if (index === void 0) { index = this.panels.length; }
626
637
  if (options === void 0) { options = { skipSetActive: false }; }
627
638
  var existingPanel = this._panels.indexOf(panel);
@@ -638,6 +649,11 @@ var DockviewGroupPanelModel = /** @class */ (function (_super) {
638
649
  }
639
650
  this.updateMru(panel);
640
651
  this.panels.splice(index, 0, panel);
652
+ this._panelDisposables.set(panel.id, new lifecycle_1.CompositeDisposable(panel.api.onDidTitleChange(function (event) {
653
+ return _this._onDidPanelTitleChange.fire(event);
654
+ }), panel.api.onDidParametersChange(function (event) {
655
+ return _this._onDidPanelParametersChange.fire(event);
656
+ })));
641
657
  this._onDidAddPanel.fire({ panel: panel });
642
658
  };
643
659
  DockviewGroupPanelModel.prototype.doSetActivePanel = function (panel) {
@@ -36,7 +36,7 @@ export declare class DockviewPanel extends CompositeDisposable implements IDockv
36
36
  get title(): string | undefined;
37
37
  get group(): DockviewGroupPanel;
38
38
  get renderer(): DockviewPanelRenderer;
39
- constructor(id: string, accessor: DockviewComponent, containerApi: DockviewApi, group: DockviewGroupPanel, view: IDockviewPanelModel, options: {
39
+ constructor(id: string, component: string, tabComponent: string | undefined, accessor: DockviewComponent, containerApi: DockviewApi, group: DockviewGroupPanel, view: IDockviewPanelModel, options: {
40
40
  renderer?: DockviewPanelRenderer;
41
41
  });
42
42
  init(params: IGroupPanelInitParameters): void;
@@ -43,7 +43,7 @@ var lifecycle_1 = require("../lifecycle");
43
43
  var panelApi_1 = require("../api/panelApi");
44
44
  var DockviewPanel = /** @class */ (function (_super) {
45
45
  __extends(DockviewPanel, _super);
46
- function DockviewPanel(id, accessor, containerApi, group, view, options) {
46
+ function DockviewPanel(id, component, tabComponent, accessor, containerApi, group, view, options) {
47
47
  var _this = _super.call(this) || this;
48
48
  _this.id = id;
49
49
  _this.accessor = accessor;
@@ -51,7 +51,7 @@ var DockviewPanel = /** @class */ (function (_super) {
51
51
  _this.view = view;
52
52
  _this._renderer = options.renderer;
53
53
  _this._group = group;
54
- _this.api = new dockviewPanelApi_1.DockviewPanelApiImpl(_this, _this._group, accessor);
54
+ _this.api = new dockviewPanelApi_1.DockviewPanelApiImpl(_this, _this._group, accessor, component, tabComponent);
55
55
  _this.addDisposables(_this.api.onActiveChange(function () {
56
56
  accessor.setActivePanel(_this);
57
57
  }), _this.api.onDidSizeChange(function (event) {
@@ -33,7 +33,7 @@ var events_1 = require("../events");
33
33
  var GridviewPanel = /** @class */ (function (_super) {
34
34
  __extends(GridviewPanel, _super);
35
35
  function GridviewPanel(id, component, options, api) {
36
- var _this = _super.call(this, id, component, api !== null && api !== void 0 ? api : new gridviewPanelApi_1.GridviewPanelApiImpl(id)) || this;
36
+ var _this = _super.call(this, id, component, api !== null && api !== void 0 ? api : new gridviewPanelApi_1.GridviewPanelApiImpl(id, component)) || this;
37
37
  _this._evaluatedMinimumWidth = 0;
38
38
  _this._evaluatedMaximumWidth = Number.MAX_SAFE_INTEGER;
39
39
  _this._evaluatedMinimumHeight = 0;
@@ -51,7 +51,7 @@ var splitview_1 = require("../splitview/splitview");
51
51
  var PaneviewPanel = /** @class */ (function (_super) {
52
52
  __extends(PaneviewPanel, _super);
53
53
  function PaneviewPanel(id, component, headerComponent, orientation, isExpanded, isHeaderVisible) {
54
- var _this = _super.call(this, id, component, new paneviewPanelApi_1.PaneviewPanelApiImpl(id)) || this;
54
+ var _this = _super.call(this, id, component, new paneviewPanelApi_1.PaneviewPanelApiImpl(id, component)) || this;
55
55
  _this.headerComponent = headerComponent;
56
56
  _this._onDidChangeExpansionState = new events_1.Emitter({ replay: true });
57
57
  _this.onDidChangeExpansionState = _this._onDidChangeExpansionState.event;
@@ -50,7 +50,7 @@ var events_1 = require("../events");
50
50
  var SplitviewPanel = /** @class */ (function (_super) {
51
51
  __extends(SplitviewPanel, _super);
52
52
  function SplitviewPanel(id, componentName) {
53
- var _this = _super.call(this, id, componentName, new splitviewPanelApi_1.SplitviewPanelApiImpl(id)) || this;
53
+ var _this = _super.call(this, id, componentName, new splitviewPanelApi_1.SplitviewPanelApiImpl(id, componentName)) || this;
54
54
  _this._evaluatedMinimumSize = 0;
55
55
  _this._evaluatedMaximumSize = Number.POSITIVE_INFINITY;
56
56
  _this._minimumSize = 0;
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * dockview-core
3
- * @version 1.10.1
3
+ * @version 1.10.2
4
4
  * @link https://github.com/mathuo/dockview
5
5
  * @license MIT
6
6
  */
@@ -4265,6 +4265,7 @@ define(['exports'], (function (exports) { 'use strict';
4265
4265
  this._width = 0;
4266
4266
  this._height = 0;
4267
4267
  this._panels = [];
4268
+ this._panelDisposables = new Map();
4268
4269
  this._onMove = new Emitter();
4269
4270
  this.onMove = this._onMove.event;
4270
4271
  this._onDidDrop = new Emitter();
@@ -4279,6 +4280,10 @@ define(['exports'], (function (exports) { 'use strict';
4279
4280
  this.onGroupDragStart = this._onGroupDragStart.event;
4280
4281
  this._onDidAddPanel = new Emitter();
4281
4282
  this.onDidAddPanel = this._onDidAddPanel.event;
4283
+ this._onDidPanelTitleChange = new Emitter();
4284
+ this.onDidPanelTitleChange = this._onDidPanelTitleChange.event;
4285
+ this._onDidPanelParametersChange = new Emitter();
4286
+ this.onDidPanelParametersChange = this._onDidPanelParametersChange.event;
4282
4287
  this._onDidRemovePanel = new Emitter();
4283
4288
  this.onDidRemovePanel = this._onDidRemovePanel.event;
4284
4289
  this._onDidActivePanelChange = new Emitter();
@@ -4567,6 +4572,11 @@ define(['exports'], (function (exports) { 'use strict';
4567
4572
  if (this.mostRecentlyUsed.includes(panel)) {
4568
4573
  this.mostRecentlyUsed.splice(this.mostRecentlyUsed.indexOf(panel), 1);
4569
4574
  }
4575
+ const disposable = this._panelDisposables.get(panel.id);
4576
+ if (disposable) {
4577
+ disposable.dispose();
4578
+ this._panelDisposables.delete(panel.id);
4579
+ }
4570
4580
  this._onDidRemovePanel.fire({ panel });
4571
4581
  }
4572
4582
  doAddPanel(panel, index = this.panels.length, options = { skipSetActive: false }) {
@@ -4584,6 +4594,7 @@ define(['exports'], (function (exports) { 'use strict';
4584
4594
  }
4585
4595
  this.updateMru(panel);
4586
4596
  this.panels.splice(index, 0, panel);
4597
+ this._panelDisposables.set(panel.id, new CompositeDisposable(panel.api.onDidTitleChange((event) => this._onDidPanelTitleChange.fire(event)), panel.api.onDidParametersChange((event) => this._onDidPanelParametersChange.fire(event))));
4587
4598
  this._onDidAddPanel.fire({ panel });
4588
4599
  }
4589
4600
  doSetActivePanel(panel) {
@@ -5007,14 +5018,16 @@ define(['exports'], (function (exports) { 'use strict';
5007
5018
  get height() {
5008
5019
  return this._height;
5009
5020
  }
5010
- constructor(id) {
5021
+ constructor(id, component) {
5011
5022
  super();
5012
5023
  this.id = id;
5024
+ this.component = component;
5013
5025
  this._isFocused = false;
5014
5026
  this._isActive = false;
5015
5027
  this._isVisible = true;
5016
5028
  this._width = 0;
5017
5029
  this._height = 0;
5030
+ this._parameters = {};
5018
5031
  this.panelUpdatesDisposable = new MutableDisposable();
5019
5032
  this._onDidDimensionChange = new Emitter();
5020
5033
  this.onDidDimensionsChange = this._onDidDimensionChange.event;
@@ -5032,8 +5045,8 @@ define(['exports'], (function (exports) { 'use strict';
5032
5045
  this.onDidActiveChange = this._onDidActiveChange.event;
5033
5046
  this._onActiveChange = new Emitter();
5034
5047
  this.onActiveChange = this._onActiveChange.event;
5035
- this._onUpdateParameters = new Emitter();
5036
- this.onUpdateParameters = this._onUpdateParameters.event;
5048
+ this._onDidParametersChange = new Emitter();
5049
+ this.onDidParametersChange = this._onDidParametersChange.event;
5037
5050
  this.addDisposables(this.onDidFocusChange((event) => {
5038
5051
  this._isFocused = event.isFocused;
5039
5052
  }), this.onDidActiveChange((event) => {
@@ -5043,10 +5056,14 @@ define(['exports'], (function (exports) { 'use strict';
5043
5056
  }), this.onDidDimensionsChange((event) => {
5044
5057
  this._width = event.width;
5045
5058
  this._height = event.height;
5046
- }), this.panelUpdatesDisposable, this._onDidDimensionChange, this._onDidChangeFocus, this._onDidVisibilityChange, this._onDidActiveChange, this._onWillFocus, this._onActiveChange, this._onUpdateParameters, this._onWillFocus, this._onWillVisibilityChange, this._onUpdateParameters);
5059
+ }), this.panelUpdatesDisposable, this._onDidDimensionChange, this._onDidChangeFocus, this._onDidVisibilityChange, this._onDidActiveChange, this._onWillFocus, this._onActiveChange, this._onWillFocus, this._onWillVisibilityChange, this._onDidParametersChange);
5060
+ }
5061
+ getParameters() {
5062
+ return this._parameters;
5047
5063
  }
5048
5064
  initialize(panel) {
5049
- this.panelUpdatesDisposable.value = this._onUpdateParameters.event((parameters) => {
5065
+ this.panelUpdatesDisposable.value = this._onDidParametersChange.event((parameters) => {
5066
+ this._parameters = parameters;
5050
5067
  panel.update({
5051
5068
  params: parameters,
5052
5069
  });
@@ -5059,14 +5076,14 @@ define(['exports'], (function (exports) { 'use strict';
5059
5076
  this._onActiveChange.fire();
5060
5077
  }
5061
5078
  updateParameters(parameters) {
5062
- this._onUpdateParameters.fire(parameters);
5079
+ this._onDidParametersChange.fire(parameters);
5063
5080
  }
5064
5081
  }
5065
5082
 
5066
5083
  class SplitviewPanelApiImpl extends PanelApiImpl {
5067
5084
  //
5068
- constructor(id) {
5069
- super(id);
5085
+ constructor(id, component) {
5086
+ super(id, component);
5070
5087
  this._onDidConstraintsChangeInternal = new Emitter();
5071
5088
  this.onDidConstraintsChangeInternal = this._onDidConstraintsChangeInternal.event;
5072
5089
  //
@@ -5091,8 +5108,8 @@ define(['exports'], (function (exports) { 'use strict';
5091
5108
  set pane(pane) {
5092
5109
  this._pane = pane;
5093
5110
  }
5094
- constructor(id) {
5095
- super(id);
5111
+ constructor(id, component) {
5112
+ super(id, component);
5096
5113
  this._onDidExpansionChange = new Emitter({
5097
5114
  replay: true,
5098
5115
  });
@@ -5251,7 +5268,7 @@ define(['exports'], (function (exports) { 'use strict';
5251
5268
  this.header.style.display = value ? '' : 'none';
5252
5269
  }
5253
5270
  constructor(id, component, headerComponent, orientation, isExpanded, isHeaderVisible) {
5254
- super(id, component, new PaneviewPanelApiImpl(id));
5271
+ super(id, component, new PaneviewPanelApiImpl(id, component));
5255
5272
  this.headerComponent = headerComponent;
5256
5273
  this._onDidChangeExpansionState = new Emitter({ replay: true });
5257
5274
  this.onDidChangeExpansionState = this._onDidChangeExpansionState.event;
@@ -5482,8 +5499,8 @@ define(['exports'], (function (exports) { 'use strict';
5482
5499
  }
5483
5500
 
5484
5501
  class GridviewPanelApiImpl extends PanelApiImpl {
5485
- constructor(id, panel) {
5486
- super(id);
5502
+ constructor(id, component, panel) {
5503
+ super(id, component);
5487
5504
  this._onDidConstraintsChangeInternal = new Emitter();
5488
5505
  this.onDidConstraintsChangeInternal = this._onDidConstraintsChangeInternal.event;
5489
5506
  this._onDidConstraintsChange = new Emitter();
@@ -5554,7 +5571,7 @@ define(['exports'], (function (exports) { 'use strict';
5554
5571
  return this.api.isActive;
5555
5572
  }
5556
5573
  constructor(id, component, options, api) {
5557
- super(id, component, api !== null && api !== void 0 ? api : new GridviewPanelApiImpl(id));
5574
+ super(id, component, api !== null && api !== void 0 ? api : new GridviewPanelApiImpl(id, component));
5558
5575
  this._evaluatedMinimumWidth = 0;
5559
5576
  this._evaluatedMaximumWidth = Number.MAX_SAFE_INTEGER;
5560
5577
  this._evaluatedMinimumHeight = 0;
@@ -5662,7 +5679,7 @@ define(['exports'], (function (exports) { 'use strict';
5662
5679
  return this._group.model.location;
5663
5680
  }
5664
5681
  constructor(id, accessor) {
5665
- super(id);
5682
+ super(id, '__dockviewgroup__');
5666
5683
  this.accessor = accessor;
5667
5684
  this._onDidLocationChange = new Emitter();
5668
5685
  this.onDidLocationChange = this._onDidLocationChange.event;
@@ -5836,8 +5853,11 @@ define(['exports'], (function (exports) { 'use strict';
5836
5853
  get group() {
5837
5854
  return this._group;
5838
5855
  }
5839
- constructor(panel, group, accessor) {
5840
- super(panel.id);
5856
+ get tabComponent() {
5857
+ return this._tabComponent;
5858
+ }
5859
+ constructor(panel, group, accessor, component, tabComponent) {
5860
+ super(panel.id, component);
5841
5861
  this.panel = panel;
5842
5862
  this.accessor = accessor;
5843
5863
  this._onDidTitleChange = new Emitter();
@@ -5851,6 +5871,7 @@ define(['exports'], (function (exports) { 'use strict';
5851
5871
  this._onDidLocationChange = new Emitter();
5852
5872
  this.onDidLocationChange = this._onDidLocationChange.event;
5853
5873
  this.groupEventsDisposable = new MutableDisposable();
5874
+ this._tabComponent = tabComponent;
5854
5875
  this.initialize(panel);
5855
5876
  this._group = group;
5856
5877
  this.setupGroupEventListeners();
@@ -5933,7 +5954,7 @@ define(['exports'], (function (exports) { 'use strict';
5933
5954
  var _a;
5934
5955
  return (_a = this._renderer) !== null && _a !== void 0 ? _a : this.accessor.renderer;
5935
5956
  }
5936
- constructor(id, accessor, containerApi, group, view, options) {
5957
+ constructor(id, component, tabComponent, accessor, containerApi, group, view, options) {
5937
5958
  super();
5938
5959
  this.id = id;
5939
5960
  this.accessor = accessor;
@@ -5941,7 +5962,7 @@ define(['exports'], (function (exports) { 'use strict';
5941
5962
  this.view = view;
5942
5963
  this._renderer = options.renderer;
5943
5964
  this._group = group;
5944
- this.api = new DockviewPanelApiImpl(this, this._group, accessor);
5965
+ this.api = new DockviewPanelApiImpl(this, this._group, accessor, component, tabComponent);
5945
5966
  this.addDisposables(this.api.onActiveChange(() => {
5946
5967
  accessor.setActivePanel(this);
5947
5968
  }), this.api.onDidSizeChange((event) => {
@@ -6236,7 +6257,7 @@ define(['exports'], (function (exports) { 'use strict';
6236
6257
  ? (_b = viewData.tab) === null || _b === void 0 ? void 0 : _b.id
6237
6258
  : panelData.tabComponent;
6238
6259
  const view = new DockviewPanelModel(this.accessor, panelId, contentComponent, tabComponent);
6239
- const panel = new DockviewPanel(panelId, this.accessor, new DockviewApi(this.accessor), group, view, {
6260
+ const panel = new DockviewPanel(panelId, contentComponent, tabComponent, this.accessor, new DockviewApi(this.accessor), group, view, {
6240
6261
  renderer: panelData.renderer,
6241
6262
  });
6242
6263
  panel.init({
@@ -8246,6 +8267,8 @@ define(['exports'], (function (exports) { 'use strict';
8246
8267
  if (this._onDidActivePanelChange.value !== event.panel) {
8247
8268
  this._onDidActivePanelChange.fire(event.panel);
8248
8269
  }
8270
+ }), exports.DockviewEvent.any(view.model.onDidPanelTitleChange, view.model.onDidPanelParametersChange)(() => {
8271
+ this._bufferOnDidLayoutChange.fire();
8249
8272
  }));
8250
8273
  this._groups.set(view.id, { value: view, disposable });
8251
8274
  }
@@ -8258,7 +8281,7 @@ define(['exports'], (function (exports) { 'use strict';
8258
8281
  const contentComponent = options.component;
8259
8282
  const tabComponent = (_a = options.tabComponent) !== null && _a !== void 0 ? _a : this.options.defaultTabComponent;
8260
8283
  const view = new DockviewPanelModel(this, options.id, contentComponent, tabComponent);
8261
- const panel = new DockviewPanel(options.id, this, this._api, group, view, { renderer: options.renderer });
8284
+ const panel = new DockviewPanel(options.id, contentComponent, tabComponent, this, this._api, group, view, { renderer: options.renderer });
8262
8285
  panel.init({
8263
8286
  title: (_b = options.title) !== null && _b !== void 0 ? _b : options.id,
8264
8287
  params: (_c = options === null || options === void 0 ? void 0 : options.params) !== null && _c !== void 0 ? _c : {},
@@ -9173,7 +9196,7 @@ define(['exports'], (function (exports) { 'use strict';
9173
9196
  return this._snap;
9174
9197
  }
9175
9198
  constructor(id, componentName) {
9176
- super(id, componentName, new SplitviewPanelApiImpl(id));
9199
+ super(id, componentName, new SplitviewPanelApiImpl(id, componentName));
9177
9200
  this._evaluatedMinimumSize = 0;
9178
9201
  this._evaluatedMaximumSize = Number.POSITIVE_INFINITY;
9179
9202
  this._minimumSize = 0;