dockview 1.12.0 → 1.13.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 (51) hide show
  1. package/dist/cjs/dockview/defaultTab.d.ts +1 -1
  2. package/dist/cjs/dockview/dockview.d.ts +12 -40
  3. package/dist/cjs/dockview/dockview.js +102 -112
  4. package/dist/cjs/dockview/headerActionsRenderer.d.ts +3 -13
  5. package/dist/cjs/dockview/headerActionsRenderer.js +4 -14
  6. package/dist/cjs/dockview/reactContentPart.d.ts +2 -3
  7. package/dist/cjs/dockview/reactHeaderPart.d.ts +1 -2
  8. package/dist/cjs/dockview/reactWatermarkPart.d.ts +1 -6
  9. package/dist/cjs/dockview/reactWatermarkPart.js +0 -5
  10. package/dist/cjs/gridview/gridview.d.ts +2 -2
  11. package/dist/cjs/index.d.ts +0 -2
  12. package/dist/cjs/paneview/paneview.d.ts +3 -3
  13. package/dist/cjs/splitview/splitview.d.ts +2 -2
  14. package/dist/cjs/types.d.ts +0 -4
  15. package/dist/dockview.amd.js +2072 -2054
  16. package/dist/dockview.amd.js.map +1 -1
  17. package/dist/dockview.amd.min.js +2 -2
  18. package/dist/dockview.amd.min.js.map +1 -1
  19. package/dist/dockview.amd.min.noStyle.js +2 -2
  20. package/dist/dockview.amd.min.noStyle.js.map +1 -1
  21. package/dist/dockview.amd.noStyle.js +2072 -2054
  22. package/dist/dockview.amd.noStyle.js.map +1 -1
  23. package/dist/dockview.cjs.js +2072 -2054
  24. package/dist/dockview.cjs.js.map +1 -1
  25. package/dist/dockview.esm.js +2071 -2055
  26. package/dist/dockview.esm.js.map +1 -1
  27. package/dist/dockview.esm.min.js +2 -2
  28. package/dist/dockview.esm.min.js.map +1 -1
  29. package/dist/dockview.js +2072 -2054
  30. package/dist/dockview.js.map +1 -1
  31. package/dist/dockview.min.js +2 -2
  32. package/dist/dockview.min.js.map +1 -1
  33. package/dist/dockview.min.noStyle.js +2 -2
  34. package/dist/dockview.min.noStyle.js.map +1 -1
  35. package/dist/dockview.noStyle.js +2072 -2054
  36. package/dist/dockview.noStyle.js.map +1 -1
  37. package/dist/esm/dockview/defaultTab.d.ts +1 -1
  38. package/dist/esm/dockview/dockview.d.ts +12 -40
  39. package/dist/esm/dockview/dockview.js +93 -114
  40. package/dist/esm/dockview/headerActionsRenderer.d.ts +3 -13
  41. package/dist/esm/dockview/headerActionsRenderer.js +4 -10
  42. package/dist/esm/dockview/reactContentPart.d.ts +2 -3
  43. package/dist/esm/dockview/reactHeaderPart.d.ts +1 -2
  44. package/dist/esm/dockview/reactWatermarkPart.d.ts +1 -6
  45. package/dist/esm/dockview/reactWatermarkPart.js +0 -5
  46. package/dist/esm/gridview/gridview.d.ts +2 -2
  47. package/dist/esm/index.d.ts +0 -2
  48. package/dist/esm/paneview/paneview.d.ts +3 -3
  49. package/dist/esm/splitview/splitview.d.ts +2 -2
  50. package/dist/esm/types.d.ts +0 -4
  51. package/package.json +3 -3
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { IDockviewPanelHeaderProps } from './dockview';
2
+ import { IDockviewPanelHeaderProps } from 'dockview-core';
3
3
  export type IDockviewDefaultTabProps = IDockviewPanelHeaderProps & React.DOMAttributes<HTMLDivElement> & {
4
4
  hideClose?: boolean;
5
5
  closeActionOverride?: () => void;
@@ -1,48 +1,20 @@
1
1
  import React from 'react';
2
- import { DockviewWillDropEvent, DockviewDndOverlayEvent, DockviewPanelApi, DockviewApi, DockviewPanelRenderer, DroptargetOverlayModel, DockviewDidDropEvent } from 'dockview-core';
3
- import { IWatermarkPanelProps } from './reactWatermarkPart';
4
- import { PanelCollection, PanelParameters } from '../types';
5
- import { IDockviewHeaderActionsProps } from './headerActionsRenderer';
6
- export interface IGroupPanelBaseProps<T extends {
7
- [index: string]: any;
8
- } = any> extends PanelParameters<T> {
9
- api: DockviewPanelApi;
10
- containerApi: DockviewApi;
11
- }
12
- export type IDockviewPanelHeaderProps<T extends {
13
- [index: string]: any;
14
- } = any> = IGroupPanelBaseProps<T>;
15
- export type IDockviewPanelProps<T extends {
16
- [index: string]: any;
17
- } = any> = IGroupPanelBaseProps<T>;
18
- export interface DockviewReadyEvent {
19
- api: DockviewApi;
20
- }
21
- export interface IDockviewReactProps {
22
- onReady: (event: DockviewReadyEvent) => void;
23
- components: PanelCollection<IDockviewPanelProps>;
24
- tabComponents?: PanelCollection<IDockviewPanelHeaderProps>;
25
- watermarkComponent?: React.FunctionComponent<IWatermarkPanelProps>;
26
- onDidDrop?: (event: DockviewDidDropEvent) => void;
27
- onWillDrop?: (event: DockviewWillDropEvent) => void;
28
- showDndOverlay?: (event: DockviewDndOverlayEvent) => boolean;
29
- hideBorders?: boolean;
2
+ import { DockviewWillDropEvent, DockviewDidDropEvent, IWatermarkPanelProps, IDockviewHeaderActionsProps, IDockviewPanelHeaderProps, IDockviewPanelProps, DockviewOptions, DockviewDndOverlayEvent, DockviewReadyEvent } from 'dockview-core';
3
+ export interface IDockviewReactProps extends DockviewOptions {
30
4
  className?: string;
31
- disableAutoResizing?: boolean;
5
+ tabComponents?: Record<string, React.FunctionComponent<IDockviewPanelHeaderProps>>;
6
+ components: Record<string, React.FunctionComponent<IDockviewPanelProps>>;
7
+ watermarkComponent?: React.FunctionComponent<IWatermarkPanelProps>;
32
8
  defaultTabComponent?: React.FunctionComponent<IDockviewPanelHeaderProps>;
33
9
  rightHeaderActionsComponent?: React.FunctionComponent<IDockviewHeaderActionsProps>;
34
10
  leftHeaderActionsComponent?: React.FunctionComponent<IDockviewHeaderActionsProps>;
35
11
  prefixHeaderActionsComponent?: React.FunctionComponent<IDockviewHeaderActionsProps>;
36
- singleTabMode?: 'fullwidth' | 'default';
37
- disableFloatingGroups?: boolean;
38
- floatingGroupBounds?: 'boundedWithinViewport' | {
39
- minimumHeightWithinViewport?: number;
40
- minimumWidthWithinViewport?: number;
41
- };
42
- debug?: boolean;
43
- defaultRenderer?: DockviewPanelRenderer;
44
- rootOverlayModel?: DroptargetOverlayModel;
45
- locked?: boolean;
46
- disableDnd?: boolean;
12
+ onReady: (event: DockviewReadyEvent) => void;
13
+ onDidDrop?: (event: DockviewDidDropEvent) => void;
14
+ onWillDrop?: (event: DockviewWillDropEvent) => void;
15
+ /**
16
+ * @deprecated use `api.onUnhandledDragOverEvent` instead. This will be removed in the next release.
17
+ */
18
+ showDndOverlay?: (event: DockviewDndOverlayEvent) => boolean;
47
19
  }
48
20
  export declare const DockviewReact: React.ForwardRefExoticComponent<IDockviewReactProps & React.RefAttributes<HTMLDivElement>>;
@@ -1,4 +1,15 @@
1
1
  "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
2
13
  var __read = (this && this.__read) || function (o, n) {
3
14
  var m = typeof Symbol === "function" && o[Symbol.iterator];
4
15
  if (!m) return o;
@@ -35,72 +46,75 @@ function createGroupControlElement(component, store) {
35
46
  : undefined;
36
47
  }
37
48
  var DEFAULT_REACT_TAB = 'props.defaultTabComponent';
49
+ function extractCoreOptions(props) {
50
+ var coreOptions = dockview_core_1.PROPERTY_KEYS.reduce(function (obj, key) {
51
+ if (key in props) {
52
+ obj[key] = props[key];
53
+ }
54
+ return obj;
55
+ }, {});
56
+ return coreOptions;
57
+ }
38
58
  exports.DockviewReact = react_1.default.forwardRef(function (props, ref) {
39
59
  var domRef = react_1.default.useRef(null);
40
60
  var dockviewRef = react_1.default.useRef();
41
61
  var _a = __read((0, react_2.usePortalsLifecycle)(), 2), portals = _a[0], addPortal = _a[1];
42
62
  react_1.default.useImperativeHandle(ref, function () { return domRef.current; }, []);
63
+ var prevProps = react_1.default.useRef({});
64
+ react_1.default.useEffect(function () {
65
+ var changes = {};
66
+ dockview_core_1.PROPERTY_KEYS.forEach(function (propKey) {
67
+ var key = propKey;
68
+ var propValue = props[key];
69
+ if (key in props && propValue !== prevProps.current[key]) {
70
+ changes[key] = propValue;
71
+ }
72
+ });
73
+ if (dockviewRef.current) {
74
+ dockviewRef.current.updateOptions(changes);
75
+ }
76
+ else {
77
+ // not yet fully initialized
78
+ }
79
+ prevProps.current = props;
80
+ }, dockview_core_1.PROPERTY_KEYS.map(function (key) { return props[key]; }));
43
81
  react_1.default.useEffect(function () {
44
82
  var _a;
45
83
  if (!domRef.current) {
46
- return function () {
47
- // noop
48
- };
84
+ return;
49
85
  }
50
- var factory = {
51
- content: {
52
- createComponent: function (_id, componentId, component) {
53
- return new reactContentPart_1.ReactPanelContentPart(componentId, component, {
54
- addPortal: addPortal,
55
- });
56
- },
57
- },
58
- tab: {
59
- createComponent: function (_id, componentId, component) {
60
- return new reactHeaderPart_1.ReactPanelHeaderPart(componentId, component, {
61
- addPortal: addPortal,
62
- });
63
- },
64
- },
65
- watermark: {
66
- createComponent: function (_id, componentId, component) {
67
- return new reactWatermarkPart_1.ReactWatermarkPart(componentId, component, {
68
- addPortal: addPortal,
69
- });
70
- },
71
- },
72
- };
73
86
  var frameworkTabComponents = (_a = props.tabComponents) !== null && _a !== void 0 ? _a : {};
74
87
  if (props.defaultTabComponent) {
75
88
  frameworkTabComponents[DEFAULT_REACT_TAB] =
76
89
  props.defaultTabComponent;
77
90
  }
78
- var dockview = new dockview_core_1.DockviewComponent({
91
+ var frameworkOptions = {
92
+ createLeftHeaderActionComponent: createGroupControlElement(props.leftHeaderActionsComponent, { addPortal: addPortal }),
93
+ createRightHeaderActionComponent: createGroupControlElement(props.rightHeaderActionsComponent, { addPortal: addPortal }),
94
+ createPrefixHeaderActionComponent: createGroupControlElement(props.prefixHeaderActionsComponent, { addPortal: addPortal }),
95
+ createComponent: function (options) {
96
+ return new reactContentPart_1.ReactPanelContentPart(options.id, props.components[options.name], {
97
+ addPortal: addPortal,
98
+ });
99
+ },
100
+ createTabComponent: function (options) {
101
+ return new reactHeaderPart_1.ReactPanelHeaderPart(options.id, frameworkTabComponents[options.name], {
102
+ addPortal: addPortal,
103
+ });
104
+ },
105
+ createWatermarkComponent: props.watermarkComponent
106
+ ? function () {
107
+ return new reactWatermarkPart_1.ReactWatermarkPart('watermark', props.watermarkComponent, {
108
+ addPortal: addPortal,
109
+ });
110
+ }
111
+ : undefined,
79
112
  parentElement: domRef.current,
80
- frameworkComponentFactory: factory,
81
- frameworkComponents: props.components,
82
- disableAutoResizing: props.disableAutoResizing,
83
- frameworkTabComponents: frameworkTabComponents,
84
- watermarkFrameworkComponent: props.watermarkComponent,
85
113
  defaultTabComponent: props.defaultTabComponent
86
114
  ? DEFAULT_REACT_TAB
87
115
  : undefined,
88
- styles: props.hideBorders
89
- ? { separatorBorder: 'transparent' }
90
- : undefined,
91
- showDndOverlay: props.showDndOverlay,
92
- createLeftHeaderActionsElement: createGroupControlElement(props.leftHeaderActionsComponent, { addPortal: addPortal }),
93
- createRightHeaderActionsElement: createGroupControlElement(props.rightHeaderActionsComponent, { addPortal: addPortal }),
94
- createPrefixHeaderActionsElement: createGroupControlElement(props.prefixHeaderActionsComponent, { addPortal: addPortal }),
95
- singleTabMode: props.singleTabMode,
96
- disableFloatingGroups: props.disableFloatingGroups,
97
- floatingGroupBounds: props.floatingGroupBounds,
98
- defaultRenderer: props.defaultRenderer,
99
- debug: props.debug,
100
- rootOverlayModel: props.rootOverlayModel,
101
- locked: props.locked,
102
- disableDnd: props.disableDnd,
103
- });
116
+ };
117
+ var dockview = new dockview_core_1.DockviewComponent(__assign(__assign({}, extractCoreOptions(props)), frameworkOptions));
104
118
  var _b = domRef.current, clientWidth = _b.clientWidth, clientHeight = _b.clientHeight;
105
119
  dockview.layout(clientWidth, clientHeight);
106
120
  if (props.onReady) {
@@ -111,20 +125,6 @@ exports.DockviewReact = react_1.default.forwardRef(function (props, ref) {
111
125
  dockview.dispose();
112
126
  };
113
127
  }, []);
114
- react_1.default.useEffect(function () {
115
- if (!dockviewRef.current) {
116
- return;
117
- }
118
- dockviewRef.current.locked = !!props.locked;
119
- }, [props.locked]);
120
- react_1.default.useEffect(function () {
121
- if (!dockviewRef.current) {
122
- return;
123
- }
124
- dockviewRef.current.updateOptions({
125
- disableDnd: props.disableDnd,
126
- });
127
- }, [props.disableDnd]);
128
128
  react_1.default.useEffect(function () {
129
129
  if (!dockviewRef.current) {
130
130
  return function () {
@@ -146,63 +146,43 @@ exports.DockviewReact = react_1.default.forwardRef(function (props, ref) {
146
146
  // noop
147
147
  };
148
148
  }
149
- var disposable = dockviewRef.current.onWillDrop(function (event) {
150
- if (props.onWillDrop) {
151
- props.onWillDrop(event);
149
+ var disposable = dockviewRef.current.onUnhandledDragOverEvent(function (event) {
150
+ var _a;
151
+ if ((_a = props.showDndOverlay) === null || _a === void 0 ? void 0 : _a.call(props, event)) {
152
+ event.accept();
152
153
  }
153
154
  });
154
155
  return function () {
155
156
  disposable.dispose();
156
157
  };
157
- }, [props.onWillDrop]);
158
- react_1.default.useEffect(function () {
159
- if (!dockviewRef.current) {
160
- return;
161
- }
162
- dockviewRef.current.updateOptions({
163
- frameworkComponents: props.components,
164
- });
165
- }, [props.components]);
166
- react_1.default.useEffect(function () {
167
- if (!dockviewRef.current) {
168
- return;
169
- }
170
- dockviewRef.current.updateOptions({
171
- floatingGroupBounds: props.floatingGroupBounds,
172
- });
173
- }, [props.floatingGroupBounds]);
174
- react_1.default.useEffect(function () {
175
- if (!dockviewRef.current) {
176
- return;
177
- }
178
- dockviewRef.current.updateOptions({
179
- watermarkFrameworkComponent: props.watermarkComponent,
180
- });
181
- }, [props.watermarkComponent]);
182
- react_1.default.useEffect(function () {
183
- if (!dockviewRef.current) {
184
- return;
185
- }
186
- dockviewRef.current.updateOptions({
187
- showDndOverlay: props.showDndOverlay,
188
- });
189
158
  }, [props.showDndOverlay]);
190
159
  react_1.default.useEffect(function () {
191
160
  if (!dockviewRef.current) {
192
- return;
161
+ return function () {
162
+ // noop
163
+ };
193
164
  }
194
- dockviewRef.current.updateOptions({
195
- frameworkTabComponents: props.tabComponents,
165
+ var disposable = dockviewRef.current.onWillDrop(function (event) {
166
+ if (props.onWillDrop) {
167
+ props.onWillDrop(event);
168
+ }
196
169
  });
197
- }, [props.tabComponents]);
170
+ return function () {
171
+ disposable.dispose();
172
+ };
173
+ }, [props.onWillDrop]);
198
174
  react_1.default.useEffect(function () {
199
175
  if (!dockviewRef.current) {
200
176
  return;
201
177
  }
202
178
  dockviewRef.current.updateOptions({
203
- disableFloatingGroups: props.disableFloatingGroups,
179
+ createComponent: function (options) {
180
+ return new reactContentPart_1.ReactPanelContentPart(options.id, props.components[options.name], {
181
+ addPortal: addPortal,
182
+ });
183
+ },
204
184
  });
205
- }, [props.disableFloatingGroups]);
185
+ }, [props.components]);
206
186
  react_1.default.useEffect(function () {
207
187
  var _a;
208
188
  if (!dockviewRef.current) {
@@ -217,39 +197,49 @@ exports.DockviewReact = react_1.default.forwardRef(function (props, ref) {
217
197
  defaultTabComponent: props.defaultTabComponent
218
198
  ? DEFAULT_REACT_TAB
219
199
  : undefined,
220
- frameworkTabComponents: frameworkTabComponents,
200
+ createTabComponent: function (options) {
201
+ return new reactHeaderPart_1.ReactPanelHeaderPart(options.id, frameworkTabComponents[options.name], {
202
+ addPortal: addPortal,
203
+ });
204
+ },
221
205
  });
222
- }, [props.defaultTabComponent]);
206
+ }, [props.tabComponents, props.defaultTabComponent]);
223
207
  react_1.default.useEffect(function () {
224
208
  if (!dockviewRef.current) {
225
209
  return;
226
210
  }
227
211
  dockviewRef.current.updateOptions({
228
- createRightHeaderActionsElement: createGroupControlElement(props.rightHeaderActionsComponent, { addPortal: addPortal }),
212
+ createWatermarkComponent: props.watermarkComponent
213
+ ? function () {
214
+ return new reactWatermarkPart_1.ReactWatermarkPart('watermark', props.watermarkComponent, {
215
+ addPortal: addPortal,
216
+ });
217
+ }
218
+ : undefined,
229
219
  });
230
- }, [props.rightHeaderActionsComponent]);
220
+ }, [props.watermarkComponent]);
231
221
  react_1.default.useEffect(function () {
232
222
  if (!dockviewRef.current) {
233
223
  return;
234
224
  }
235
225
  dockviewRef.current.updateOptions({
236
- createLeftHeaderActionsElement: createGroupControlElement(props.leftHeaderActionsComponent, { addPortal: addPortal }),
226
+ createRightHeaderActionComponent: createGroupControlElement(props.rightHeaderActionsComponent, { addPortal: addPortal }),
237
227
  });
238
- }, [props.leftHeaderActionsComponent]);
228
+ }, [props.rightHeaderActionsComponent]);
239
229
  react_1.default.useEffect(function () {
240
230
  if (!dockviewRef.current) {
241
231
  return;
242
232
  }
243
233
  dockviewRef.current.updateOptions({
244
- rootOverlayModel: props.rootOverlayModel,
234
+ createLeftHeaderActionComponent: createGroupControlElement(props.leftHeaderActionsComponent, { addPortal: addPortal }),
245
235
  });
246
- }, [props.rootOverlayModel]);
236
+ }, [props.leftHeaderActionsComponent]);
247
237
  react_1.default.useEffect(function () {
248
238
  if (!dockviewRef.current) {
249
239
  return;
250
240
  }
251
241
  dockviewRef.current.updateOptions({
252
- createPrefixHeaderActionsElement: createGroupControlElement(props.prefixHeaderActionsComponent, { addPortal: addPortal }),
242
+ createPrefixHeaderActionComponent: createGroupControlElement(props.prefixHeaderActionsComponent, { addPortal: addPortal }),
253
243
  });
254
244
  }, [props.prefixHeaderActionsComponent]);
255
245
  return (react_1.default.createElement("div", { className: props.className, style: { height: '100%', width: '100%' }, ref: domRef }, portals));
@@ -1,15 +1,7 @@
1
1
  import React from 'react';
2
2
  import { ReactPart, ReactPortalStore } from '../react';
3
- import { IDockviewPanel, DockviewApi, DockviewGroupPanel, DockviewGroupPanelApi, PanelUpdateEvent } from 'dockview-core';
4
- export interface IDockviewHeaderActionsProps {
5
- api: DockviewGroupPanelApi;
6
- containerApi: DockviewApi;
7
- panels: IDockviewPanel[];
8
- activePanel: IDockviewPanel | undefined;
9
- isGroupActive: boolean;
10
- group: DockviewGroupPanel;
11
- }
12
- export declare class ReactHeaderActionsRendererPart {
3
+ import { DockviewApi, DockviewGroupPanel, DockviewGroupPanelApi, PanelUpdateEvent, IHeaderActionsRenderer, IDockviewHeaderActionsProps } from 'dockview-core';
4
+ export declare class ReactHeaderActionsRendererPart implements IHeaderActionsRenderer {
13
5
  private readonly component;
14
6
  private readonly reactPortalStore;
15
7
  private readonly _group;
@@ -18,15 +10,13 @@ export declare class ReactHeaderActionsRendererPart {
18
10
  private _part?;
19
11
  get element(): HTMLElement;
20
12
  get part(): ReactPart<IDockviewHeaderActionsProps> | undefined;
21
- get group(): DockviewGroupPanel;
22
13
  constructor(component: React.FunctionComponent<IDockviewHeaderActionsProps>, reactPortalStore: ReactPortalStore, _group: DockviewGroupPanel);
23
- focus(): void;
24
14
  init(parameters: {
25
15
  containerApi: DockviewApi;
26
16
  api: DockviewGroupPanelApi;
27
17
  }): void;
28
- update(event: PanelUpdateEvent): void;
29
18
  dispose(): void;
19
+ update(event: PanelUpdateEvent): void;
30
20
  private updatePanels;
31
21
  private updateActivePanel;
32
22
  private updateGroupActive;
@@ -28,16 +28,6 @@ var ReactHeaderActionsRendererPart = /** @class */ (function () {
28
28
  enumerable: false,
29
29
  configurable: true
30
30
  });
31
- Object.defineProperty(ReactHeaderActionsRendererPart.prototype, "group", {
32
- get: function () {
33
- return this._group;
34
- },
35
- enumerable: false,
36
- configurable: true
37
- });
38
- ReactHeaderActionsRendererPart.prototype.focus = function () {
39
- // TODO
40
- };
41
31
  ReactHeaderActionsRendererPart.prototype.init = function (parameters) {
42
32
  var _this = this;
43
33
  this.mutableDisposable.value = new dockview_core_1.DockviewCompositeDisposable(this._group.model.onDidAddPanel(function () {
@@ -58,15 +48,15 @@ var ReactHeaderActionsRendererPart = /** @class */ (function () {
58
48
  group: this._group,
59
49
  });
60
50
  };
61
- ReactHeaderActionsRendererPart.prototype.update = function (event) {
62
- var _a;
63
- (_a = this._part) === null || _a === void 0 ? void 0 : _a.update(event.params);
64
- };
65
51
  ReactHeaderActionsRendererPart.prototype.dispose = function () {
66
52
  var _a;
67
53
  this.mutableDisposable.dispose();
68
54
  (_a = this._part) === null || _a === void 0 ? void 0 : _a.dispose();
69
55
  };
56
+ ReactHeaderActionsRendererPart.prototype.update = function (event) {
57
+ var _a;
58
+ (_a = this._part) === null || _a === void 0 ? void 0 : _a.update(event.params);
59
+ };
70
60
  ReactHeaderActionsRendererPart.prototype.updatePanels = function () {
71
61
  this.update({ params: { panels: this._group.model.panels } });
72
62
  };
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
2
  import { ReactPortalStore } from '../react';
3
- import { IDockviewPanelProps } from '../dockview/dockview';
4
- import { DockviewEvent, PanelUpdateEvent, IContentRenderer, GroupPanelContentPartInitParameters } from 'dockview-core';
3
+ import { DockviewEvent, PanelUpdateEvent, IContentRenderer, GroupPanelPartInitParameters, IDockviewPanelProps } from 'dockview-core';
5
4
  export declare class ReactPanelContentPart implements IContentRenderer {
6
5
  readonly id: string;
7
6
  private readonly component;
@@ -15,7 +14,7 @@ export declare class ReactPanelContentPart implements IContentRenderer {
15
14
  get element(): HTMLElement;
16
15
  constructor(id: string, component: React.FunctionComponent<IDockviewPanelProps>, reactPortalStore: ReactPortalStore);
17
16
  focus(): void;
18
- init(parameters: GroupPanelContentPartInitParameters): void;
17
+ init(parameters: GroupPanelPartInitParameters): void;
19
18
  update(event: PanelUpdateEvent): void;
20
19
  layout(_width: number, _height: number): void;
21
20
  dispose(): void;
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
2
  import { ReactPortalStore } from '../react';
3
- import { IGroupPanelBaseProps } from './dockview';
4
- import { PanelUpdateEvent, ITabRenderer, GroupPanelPartInitParameters } from 'dockview-core';
3
+ import { PanelUpdateEvent, ITabRenderer, GroupPanelPartInitParameters, IGroupPanelBaseProps } from 'dockview-core';
5
4
  export declare class ReactPanelHeaderPart implements ITabRenderer {
6
5
  readonly id: string;
7
6
  private readonly component;
@@ -1,11 +1,6 @@
1
1
  import React from 'react';
2
2
  import { ReactPortalStore } from '../react';
3
- import { PanelUpdateEvent, DockviewGroupPanel, IWatermarkRenderer, WatermarkRendererInitParameters, DockviewApi, IDockviewGroupPanel } from 'dockview-core';
4
- export interface IWatermarkPanelProps {
5
- containerApi: DockviewApi;
6
- group?: IDockviewGroupPanel;
7
- close: () => void;
8
- }
3
+ import { PanelUpdateEvent, DockviewGroupPanel, IWatermarkRenderer, WatermarkRendererInitParameters, IWatermarkPanelProps } from 'dockview-core';
9
4
  export declare class ReactWatermarkPart implements IWatermarkRenderer {
10
5
  readonly id: string;
11
6
  private readonly component;
@@ -23,11 +23,6 @@ var ReactWatermarkPart = /** @class */ (function () {
23
23
  this.part = new react_1.ReactPart(this.element, this.reactPortalStore, this.component, {
24
24
  group: parameters.group,
25
25
  containerApi: parameters.containerApi,
26
- close: function () {
27
- if (parameters.group) {
28
- parameters.containerApi.removeGroup(parameters.group);
29
- }
30
- },
31
26
  });
32
27
  };
33
28
  ReactWatermarkPart.prototype.focus = function () {
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { GridviewPanelApi, Orientation, GridviewApi } from 'dockview-core';
3
- import { PanelCollection, PanelParameters } from '../types';
3
+ import { PanelParameters } from '../types';
4
4
  export interface GridviewReadyEvent {
5
5
  api: GridviewApi;
6
6
  }
@@ -13,7 +13,7 @@ export interface IGridviewPanelProps<T extends {
13
13
  export interface IGridviewReactProps {
14
14
  orientation?: Orientation;
15
15
  onReady: (event: GridviewReadyEvent) => void;
16
- components: PanelCollection<IGridviewPanelProps>;
16
+ components: Record<string, React.FunctionComponent<IGridviewPanelProps>>;
17
17
  hideBorders?: boolean;
18
18
  className?: string;
19
19
  proportionalLayout?: boolean;
@@ -3,8 +3,6 @@ export * from './dockview/dockview';
3
3
  export * from './dockview/defaultTab';
4
4
  export * from './splitview/splitview';
5
5
  export * from './gridview/gridview';
6
- export { IDockviewHeaderActionsProps } from './dockview/headerActionsRenderer';
7
- export { IWatermarkPanelProps } from './dockview/reactWatermarkPart';
8
6
  export * from './paneview/paneview';
9
7
  export * from './types';
10
8
  export * from './react';
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { PaneviewPanelApi, PaneviewDndOverlayEvent, PaneviewApi, PaneviewDropEvent } from 'dockview-core';
3
- import { PanelCollection, PanelParameters } from '../types';
3
+ import { PanelParameters } from '../types';
4
4
  export interface PaneviewReadyEvent {
5
5
  api: PaneviewApi;
6
6
  }
@@ -13,8 +13,8 @@ export interface IPaneviewPanelProps<T extends {
13
13
  }
14
14
  export interface IPaneviewReactProps {
15
15
  onReady: (event: PaneviewReadyEvent) => void;
16
- components: PanelCollection<IPaneviewPanelProps>;
17
- headerComponents?: PanelCollection<IPaneviewPanelProps>;
16
+ components: Record<string, React.FunctionComponent<IPaneviewPanelProps>>;
17
+ headerComponents?: Record<string, React.FunctionComponent<IPaneviewPanelProps>>;
18
18
  className?: string;
19
19
  disableAutoResizing?: boolean;
20
20
  disableDnd?: boolean;
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { SplitviewApi, SplitviewPanelApi, Orientation } from 'dockview-core';
3
- import { PanelCollection, PanelParameters } from '../types';
3
+ import { PanelParameters } from '../types';
4
4
  export interface SplitviewReadyEvent {
5
5
  api: SplitviewApi;
6
6
  }
@@ -13,7 +13,7 @@ export interface ISplitviewPanelProps<T extends {
13
13
  export interface ISplitviewReactProps {
14
14
  orientation?: Orientation;
15
15
  onReady: (event: SplitviewReadyEvent) => void;
16
- components: PanelCollection<ISplitviewPanelProps>;
16
+ components: Record<string, React.FunctionComponent<ISplitviewPanelProps>>;
17
17
  proportionalLayout?: boolean;
18
18
  hideBorders?: boolean;
19
19
  className?: string;
@@ -1,8 +1,4 @@
1
- import * as React from 'react';
2
1
  import { Parameters } from 'dockview-core';
3
- export interface PanelCollection<T extends object> {
4
- [name: string]: React.FunctionComponent<T>;
5
- }
6
2
  export interface PanelParameters<T extends {} = Parameters> {
7
3
  params: T;
8
4
  }