dockview-core 1.10.1 → 1.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) 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/components/tab/defaultTab.d.ts +0 -2
  13. package/dist/cjs/dockview/components/tab/defaultTab.js +5 -14
  14. package/dist/cjs/dockview/deserializer.js +1 -1
  15. package/dist/cjs/dockview/dockviewComponent.js +3 -1
  16. package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +7 -1
  17. package/dist/cjs/dockview/dockviewGroupPanelModel.js +16 -0
  18. package/dist/cjs/dockview/dockviewPanel.d.ts +1 -1
  19. package/dist/cjs/dockview/dockviewPanel.js +2 -2
  20. package/dist/cjs/gridview/gridviewPanel.js +1 -1
  21. package/dist/cjs/paneview/paneviewPanel.js +1 -1
  22. package/dist/cjs/splitview/splitviewPanel.js +1 -1
  23. package/dist/dockview-core.amd.js +52 -38
  24. package/dist/dockview-core.amd.js.map +1 -1
  25. package/dist/dockview-core.amd.min.js +2 -2
  26. package/dist/dockview-core.amd.min.js.map +1 -1
  27. package/dist/dockview-core.amd.min.noStyle.js +2 -2
  28. package/dist/dockview-core.amd.min.noStyle.js.map +1 -1
  29. package/dist/dockview-core.amd.noStyle.js +51 -37
  30. package/dist/dockview-core.amd.noStyle.js.map +1 -1
  31. package/dist/dockview-core.cjs.js +52 -38
  32. package/dist/dockview-core.cjs.js.map +1 -1
  33. package/dist/dockview-core.esm.js +52 -38
  34. package/dist/dockview-core.esm.js.map +1 -1
  35. package/dist/dockview-core.esm.min.js +2 -2
  36. package/dist/dockview-core.esm.min.js.map +1 -1
  37. package/dist/dockview-core.js +52 -38
  38. package/dist/dockview-core.js.map +1 -1
  39. package/dist/dockview-core.min.js +2 -2
  40. package/dist/dockview-core.min.js.map +1 -1
  41. package/dist/dockview-core.min.noStyle.js +2 -2
  42. package/dist/dockview-core.min.noStyle.js.map +1 -1
  43. package/dist/dockview-core.noStyle.js +51 -37
  44. package/dist/dockview-core.noStyle.js.map +1 -1
  45. package/dist/esm/api/dockviewGroupPanelApi.js +1 -1
  46. package/dist/esm/api/dockviewPanelApi.d.ts +4 -1
  47. package/dist/esm/api/dockviewPanelApi.js +6 -2
  48. package/dist/esm/api/gridviewPanelApi.d.ts +1 -1
  49. package/dist/esm/api/gridviewPanelApi.js +2 -2
  50. package/dist/esm/api/panelApi.d.ts +8 -3
  51. package/dist/esm/api/panelApi.js +12 -6
  52. package/dist/esm/api/paneviewPanelApi.d.ts +1 -1
  53. package/dist/esm/api/paneviewPanelApi.js +2 -2
  54. package/dist/esm/api/splitviewPanelApi.d.ts +1 -1
  55. package/dist/esm/api/splitviewPanelApi.js +2 -2
  56. package/dist/esm/dockview/components/tab/defaultTab.d.ts +0 -2
  57. package/dist/esm/dockview/components/tab/defaultTab.js +5 -14
  58. package/dist/esm/dockview/deserializer.js +1 -1
  59. package/dist/esm/dockview/dockviewComponent.js +3 -1
  60. package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +7 -1
  61. package/dist/esm/dockview/dockviewGroupPanelModel.js +11 -0
  62. package/dist/esm/dockview/dockviewPanel.d.ts +1 -1
  63. package/dist/esm/dockview/dockviewPanel.js +2 -2
  64. package/dist/esm/gridview/gridviewPanel.js +1 -1
  65. package/dist/esm/paneview/paneviewPanel.js +1 -1
  66. package/dist/esm/splitview/splitviewPanel.js +1 -1
  67. package/dist/styles/dockview.css +8 -18
  68. 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
  //
@@ -5,8 +5,6 @@ import { DockviewGroupPanel } from '../../dockviewGroupPanel';
5
5
  export declare class DefaultTab extends CompositeDisposable implements ITabRenderer {
6
6
  private _element;
7
7
  private _content;
8
- private _actionContainer;
9
- private _list;
10
8
  private action;
11
9
  private params;
12
10
  get element(): HTMLElement;
@@ -37,27 +37,18 @@ var DefaultTab = /** @class */ (function (_super) {
37
37
  //
38
38
  _this.params = {};
39
39
  _this._element = document.createElement('div');
40
- _this._element.className = 'default-tab';
40
+ _this._element.className = 'dv-default-tab';
41
41
  //
42
42
  _this._content = document.createElement('div');
43
- _this._content.className = 'tab-content';
44
- //
45
- _this._actionContainer = document.createElement('div');
46
- _this._actionContainer.className = 'action-container';
47
- //
48
- _this._list = document.createElement('ul');
49
- _this._list.className = 'tab-list';
50
- //
43
+ _this._content.className = 'dv-default-tab-content';
51
44
  _this.action = document.createElement('div');
52
- _this.action.className = 'tab-action';
45
+ _this.action.className = 'dv-default-tab-action';
53
46
  _this.action.appendChild((0, svg_1.createCloseButton)());
54
47
  //
55
48
  _this._element.appendChild(_this._content);
56
- _this._element.appendChild(_this._actionContainer);
57
- _this._actionContainer.appendChild(_this._list);
58
- _this._list.appendChild(_this.action);
49
+ _this._element.appendChild(_this.action);
59
50
  //
60
- _this.addDisposables((0, events_1.addDisposableListener)(_this._actionContainer, 'mousedown', function (ev) {
51
+ _this.addDisposables((0, events_1.addDisposableListener)(_this.action, 'mousedown', function (ev) {
61
52
  ev.preventDefault();
62
53
  }));
63
54
  _this.render();
@@ -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;