dockview-core 4.11.0 → 4.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 (67) hide show
  1. package/dist/cjs/api/component.api.d.ts +5 -3
  2. package/dist/cjs/api/component.api.js +2 -2
  3. package/dist/cjs/api/dockviewGroupPanelApi.d.ts +3 -1
  4. package/dist/cjs/api/dockviewGroupPanelApi.js +24 -1
  5. package/dist/cjs/dockview/components/panel/content.d.ts +7 -0
  6. package/dist/cjs/dockview/components/panel/content.js +11 -0
  7. package/dist/cjs/dockview/components/titlebar/tabs.d.ts +2 -2
  8. package/dist/cjs/dockview/components/titlebar/tabs.js +1 -1
  9. package/dist/cjs/dockview/components/titlebar/tabsContainer.d.ts +3 -3
  10. package/dist/cjs/dockview/components/titlebar/tabsContainer.js +1 -1
  11. package/dist/cjs/dockview/dockviewComponent.d.ts +10 -4
  12. package/dist/cjs/dockview/dockviewComponent.js +167 -85
  13. package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +2 -2
  14. package/dist/cjs/dockview/dockviewGroupPanelModel.js +4 -1
  15. package/dist/cjs/dockview/dockviewPanel.d.ts +6 -4
  16. package/dist/cjs/dockview/dockviewPanel.js +12 -0
  17. package/dist/cjs/dockview/events.d.ts +4 -4
  18. package/dist/cjs/dockview/events.js +14 -14
  19. package/dist/cjs/index.d.ts +2 -1
  20. package/dist/cjs/index.js +7 -2
  21. package/dist/cjs/overlay/overlay.js +25 -14
  22. package/dist/cjs/splitview/splitview.js +2 -0
  23. package/dist/dockview-core.amd.js +172 -54
  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 +172 -54
  30. package/dist/dockview-core.amd.noStyle.js.map +1 -1
  31. package/dist/dockview-core.cjs.js +172 -54
  32. package/dist/dockview-core.cjs.js.map +1 -1
  33. package/dist/dockview-core.esm.js +172 -55
  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 +172 -54
  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 +172 -54
  44. package/dist/dockview-core.noStyle.js.map +1 -1
  45. package/dist/esm/api/component.api.d.ts +5 -3
  46. package/dist/esm/api/component.api.js +2 -2
  47. package/dist/esm/api/dockviewGroupPanelApi.d.ts +3 -1
  48. package/dist/esm/api/dockviewGroupPanelApi.js +13 -1
  49. package/dist/esm/dockview/components/panel/content.d.ts +7 -0
  50. package/dist/esm/dockview/components/panel/content.js +11 -0
  51. package/dist/esm/dockview/components/titlebar/tabs.d.ts +2 -2
  52. package/dist/esm/dockview/components/titlebar/tabs.js +2 -2
  53. package/dist/esm/dockview/components/titlebar/tabsContainer.d.ts +3 -3
  54. package/dist/esm/dockview/components/titlebar/tabsContainer.js +2 -2
  55. package/dist/esm/dockview/dockviewComponent.d.ts +10 -4
  56. package/dist/esm/dockview/dockviewComponent.js +99 -33
  57. package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +2 -2
  58. package/dist/esm/dockview/dockviewGroupPanelModel.js +5 -2
  59. package/dist/esm/dockview/dockviewPanel.d.ts +6 -4
  60. package/dist/esm/dockview/dockviewPanel.js +12 -0
  61. package/dist/esm/dockview/events.d.ts +4 -4
  62. package/dist/esm/dockview/events.js +1 -1
  63. package/dist/esm/index.d.ts +2 -1
  64. package/dist/esm/index.js +2 -1
  65. package/dist/esm/overlay/overlay.js +26 -15
  66. package/dist/esm/splitview/splitview.js +2 -0
  67. package/package.json +1 -1
@@ -16,7 +16,7 @@ import { PaneviewDidDropEvent } from '../paneview/draggablePaneviewPanel';
16
16
  import { GroupDragEvent, TabDragEvent } from '../dockview/components/titlebar/tabsContainer';
17
17
  import { Box } from '../types';
18
18
  import { DockviewDidDropEvent, DockviewWillDropEvent } from '../dockview/dockviewGroupPanelModel';
19
- import { WillShowOverlayLocationEvent } from '../dockview/events';
19
+ import { DockviewWillShowOverlayLocationEvent } from '../dockview/events';
20
20
  import { PaneviewComponentOptions, PaneviewDndOverlayEvent } from '../paneview/options';
21
21
  import { SplitviewComponentOptions } from '../splitview/options';
22
22
  import { GridviewComponentOptions } from '../gridview/options';
@@ -403,7 +403,7 @@ export declare class DockviewApi implements CommonApi<SerializedDockview> {
403
403
  * Calling `event.preventDefault()` will prevent the overlay being shown and prevent
404
404
  * the any subsequent drop event.
405
405
  */
406
- get onWillShowOverlay(): Event<WillShowOverlayLocationEvent>;
406
+ get onWillShowOverlay(): Event<DockviewWillShowOverlayLocationEvent>;
407
407
  /**
408
408
  * Invoked before a group is dragged.
409
409
  *
@@ -481,7 +481,9 @@ export declare class DockviewApi implements CommonApi<SerializedDockview> {
481
481
  /**
482
482
  * Create a component from a serialized object.
483
483
  */
484
- fromJSON(data: SerializedDockview): void;
484
+ fromJSON(data: SerializedDockview, options?: {
485
+ reuseExistingPanels: boolean;
486
+ }): void;
485
487
  /**
486
488
  * Create a serialized object of the current component.
487
489
  */
@@ -942,8 +942,8 @@ var DockviewApi = /** @class */ (function () {
942
942
  /**
943
943
  * Create a component from a serialized object.
944
944
  */
945
- DockviewApi.prototype.fromJSON = function (data) {
946
- this.component.fromJSON(data);
945
+ DockviewApi.prototype.fromJSON = function (data, options) {
946
+ this.component.fromJSON(data, options);
947
947
  };
948
948
  /**
949
949
  * Create a serialized object of the current component.
@@ -3,7 +3,7 @@ import { DockviewComponent } from '../dockview/dockviewComponent';
3
3
  import { DockviewGroupPanel } from '../dockview/dockviewGroupPanel';
4
4
  import { DockviewGroupChangeEvent, DockviewGroupLocation } from '../dockview/dockviewGroupPanelModel';
5
5
  import { Emitter, Event } from '../events';
6
- import { GridviewPanelApi, GridviewPanelApiImpl } from './gridviewPanelApi';
6
+ import { GridviewPanelApi, GridviewPanelApiImpl, SizeEvent } from './gridviewPanelApi';
7
7
  export interface DockviewGroupMoveParams {
8
8
  group?: DockviewGroupPanel;
9
9
  position?: Position;
@@ -36,12 +36,14 @@ export interface DockviewGroupPanelFloatingChangeEvent {
36
36
  export declare class DockviewGroupPanelApiImpl extends GridviewPanelApiImpl {
37
37
  private readonly accessor;
38
38
  private _group;
39
+ private _pendingSize;
39
40
  readonly _onDidLocationChange: Emitter<DockviewGroupPanelFloatingChangeEvent>;
40
41
  readonly onDidLocationChange: Event<DockviewGroupPanelFloatingChangeEvent>;
41
42
  readonly _onDidActivePanelChange: Emitter<DockviewGroupChangeEvent>;
42
43
  readonly onDidActivePanelChange: Event<DockviewGroupChangeEvent>;
43
44
  get location(): DockviewGroupLocation;
44
45
  constructor(id: string, accessor: DockviewComponent);
46
+ setSize(event: SizeEvent): void;
45
47
  close(): void;
46
48
  getWindow(): Window;
47
49
  moveTo(options: DockviewGroupMoveParams): void;
@@ -14,6 +14,17 @@ var __extends = (this && this.__extends) || (function () {
14
14
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
15
  };
16
16
  })();
17
+ var __assign = (this && this.__assign) || function () {
18
+ __assign = Object.assign || function(t) {
19
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
20
+ s = arguments[i];
21
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22
+ t[p] = s[p];
23
+ }
24
+ return t;
25
+ };
26
+ return __assign.apply(this, arguments);
27
+ };
17
28
  Object.defineProperty(exports, "__esModule", { value: true });
18
29
  exports.DockviewGroupPanelApiImpl = void 0;
19
30
  var droptarget_1 = require("../dnd/droptarget");
@@ -29,7 +40,13 @@ var DockviewGroupPanelApiImpl = /** @class */ (function (_super) {
29
40
  _this.onDidLocationChange = _this._onDidLocationChange.event;
30
41
  _this._onDidActivePanelChange = new events_1.Emitter();
31
42
  _this.onDidActivePanelChange = _this._onDidActivePanelChange.event;
32
- _this.addDisposables(_this._onDidLocationChange, _this._onDidActivePanelChange);
43
+ _this.addDisposables(_this._onDidLocationChange, _this._onDidActivePanelChange, _this._onDidVisibilityChange.event(function (event) {
44
+ // When becoming visible, apply any pending size change
45
+ if (event.isVisible && _this._pendingSize) {
46
+ _super.prototype.setSize.call(_this, _this._pendingSize);
47
+ _this._pendingSize = undefined;
48
+ }
49
+ }));
33
50
  return _this;
34
51
  }
35
52
  Object.defineProperty(DockviewGroupPanelApiImpl.prototype, "location", {
@@ -42,6 +59,12 @@ var DockviewGroupPanelApiImpl = /** @class */ (function (_super) {
42
59
  enumerable: false,
43
60
  configurable: true
44
61
  });
62
+ DockviewGroupPanelApiImpl.prototype.setSize = function (event) {
63
+ // Always store the requested size
64
+ this._pendingSize = __assign({}, event);
65
+ // Apply the size change immediately
66
+ _super.prototype.setSize.call(this, event);
67
+ };
45
68
  DockviewGroupPanelApiImpl.prototype.close = function () {
46
69
  if (!this._group) {
47
70
  return;
@@ -17,6 +17,7 @@ export interface IContentContainer extends IDisposable {
17
17
  renderPanel(panel: IDockviewPanel, options: {
18
18
  asActive: boolean;
19
19
  }): void;
20
+ refreshFocusState(): void;
20
21
  }
21
22
  export declare class ContentContainer extends CompositeDisposable implements IContentContainer {
22
23
  private readonly accessor;
@@ -24,6 +25,7 @@ export declare class ContentContainer extends CompositeDisposable implements ICo
24
25
  private readonly _element;
25
26
  private panel;
26
27
  private readonly disposable;
28
+ private focusTracker;
27
29
  private readonly _onDidFocus;
28
30
  readonly onDidFocus: Event<void>;
29
31
  private readonly _onDidBlur;
@@ -40,4 +42,9 @@ export declare class ContentContainer extends CompositeDisposable implements ICo
40
42
  layout(_width: number, _height: number): void;
41
43
  closePanel(): void;
42
44
  dispose(): void;
45
+ /**
46
+ * Refresh the focus tracker state to handle cases where focus state
47
+ * gets out of sync due to programmatic panel activation
48
+ */
49
+ refreshFocusState(): void;
43
50
  }
@@ -118,6 +118,7 @@ var ContentContainer = /** @class */ (function (_super) {
118
118
  }
119
119
  if (doRender) {
120
120
  var focusTracker = (0, dom_1.trackFocus)(container);
121
+ this.focusTracker = focusTracker;
121
122
  var disposable = new lifecycle_1.CompositeDisposable();
122
123
  disposable.addDisposables(focusTracker, focusTracker.onDidFocus(function () { return _this._onDidFocus.fire(); }), focusTracker.onDidBlur(function () { return _this._onDidBlur.fire(); }));
123
124
  this.disposable.value = disposable;
@@ -145,6 +146,16 @@ var ContentContainer = /** @class */ (function (_super) {
145
146
  this.disposable.dispose();
146
147
  _super.prototype.dispose.call(this);
147
148
  };
149
+ /**
150
+ * Refresh the focus tracker state to handle cases where focus state
151
+ * gets out of sync due to programmatic panel activation
152
+ */
153
+ ContentContainer.prototype.refreshFocusState = function () {
154
+ var _a;
155
+ if ((_a = this.focusTracker) === null || _a === void 0 ? void 0 : _a.refreshState) {
156
+ this.focusTracker.refreshState();
157
+ }
158
+ };
148
159
  return ContentContainer;
149
160
  }(lifecycle_1.CompositeDisposable));
150
161
  exports.ContentContainer = ContentContainer;
@@ -2,7 +2,7 @@ import { Event } from '../../../events';
2
2
  import { CompositeDisposable } from '../../../lifecycle';
3
3
  import { DockviewComponent } from '../../dockviewComponent';
4
4
  import { DockviewGroupPanel } from '../../dockviewGroupPanel';
5
- import { WillShowOverlayLocationEvent } from '../../events';
5
+ import { DockviewWillShowOverlayLocationEvent } from '../../events';
6
6
  import { IDockviewPanel } from '../../dockviewPanel';
7
7
  import { Tab } from '../tab/tab';
8
8
  import { TabDragEvent, TabDropIndexEvent } from './tabsContainer';
@@ -20,7 +20,7 @@ export declare class Tabs extends CompositeDisposable {
20
20
  private readonly _onDrop;
21
21
  readonly onDrop: Event<TabDropIndexEvent>;
22
22
  private readonly _onWillShowOverlay;
23
- readonly onWillShowOverlay: Event<WillShowOverlayLocationEvent>;
23
+ readonly onWillShowOverlay: Event<DockviewWillShowOverlayLocationEvent>;
24
24
  private readonly _onOverflowTabsChange;
25
25
  readonly onOverflowTabsChange: Event<{
26
26
  tabs: string[];
@@ -246,7 +246,7 @@ var Tabs = /** @class */ (function (_super) {
246
246
  index: _this._tabs.findIndex(function (x) { return x.value === tab; }),
247
247
  });
248
248
  }), tab.onWillShowOverlay(function (event) {
249
- _this._onWillShowOverlay.fire(new events_2.WillShowOverlayLocationEvent(event, {
249
+ _this._onWillShowOverlay.fire(new events_2.DockviewWillShowOverlayLocationEvent(event, {
250
250
  kind: 'tab',
251
251
  panel: _this.group.activePanel,
252
252
  api: _this.accessor.api,
@@ -4,7 +4,7 @@ import { Tab } from '../tab/tab';
4
4
  import { DockviewGroupPanel } from '../../dockviewGroupPanel';
5
5
  import { IDockviewPanel } from '../../dockviewPanel';
6
6
  import { DockviewComponent } from '../../dockviewComponent';
7
- import { WillShowOverlayLocationEvent } from '../../events';
7
+ import { DockviewWillShowOverlayLocationEvent } from '../../events';
8
8
  export interface TabDropIndexEvent {
9
9
  readonly event: DragEvent;
10
10
  readonly index: number;
@@ -24,7 +24,7 @@ export interface ITabsContainer extends IDisposable {
24
24
  readonly onDrop: Event<TabDropIndexEvent>;
25
25
  readonly onTabDragStart: Event<TabDragEvent>;
26
26
  readonly onGroupDragStart: Event<GroupDragEvent>;
27
- readonly onWillShowOverlay: Event<WillShowOverlayLocationEvent>;
27
+ readonly onWillShowOverlay: Event<DockviewWillShowOverlayLocationEvent>;
28
28
  hidden: boolean;
29
29
  delete(id: string): void;
30
30
  indexOf(id: string): number;
@@ -62,7 +62,7 @@ export declare class TabsContainer extends CompositeDisposable implements ITabsC
62
62
  private readonly _onGroupDragStart;
63
63
  readonly onGroupDragStart: Event<GroupDragEvent>;
64
64
  private readonly _onWillShowOverlay;
65
- readonly onWillShowOverlay: Event<WillShowOverlayLocationEvent>;
65
+ readonly onWillShowOverlay: Event<DockviewWillShowOverlayLocationEvent>;
66
66
  get panels(): string[];
67
67
  get size(): number;
68
68
  get hidden(): boolean;
@@ -85,7 +85,7 @@ var TabsContainer = /** @class */ (function (_super) {
85
85
  index: _this.tabs.size,
86
86
  });
87
87
  }), _this.voidContainer.onWillShowOverlay(function (event) {
88
- _this._onWillShowOverlay.fire(new events_2.WillShowOverlayLocationEvent(event, {
88
+ _this._onWillShowOverlay.fire(new events_2.DockviewWillShowOverlayLocationEvent(event, {
89
89
  kind: 'header_space',
90
90
  panel: _this.group.activePanel,
91
91
  api: _this.accessor.api,
@@ -8,7 +8,7 @@ import { BaseGrid, IBaseGrid } from '../gridview/baseComponentGridview';
8
8
  import { DockviewApi } from '../api/component.api';
9
9
  import { Orientation } from '../splitview/splitview';
10
10
  import { GroupOptions, GroupPanelViewState, DockviewDidDropEvent, DockviewWillDropEvent } from './dockviewGroupPanelModel';
11
- import { WillShowOverlayLocationEvent } from './events';
11
+ import { DockviewWillShowOverlayLocationEvent } from './events';
12
12
  import { DockviewGroupPanel } from './dockviewGroupPanel';
13
13
  import { Parameters } from '../panel/types';
14
14
  import { DockviewFloatingGroupPanel } from './dockviewFloatingGroupPanel';
@@ -94,6 +94,7 @@ type MoveGroupOrPanelOptions = {
94
94
  index?: number;
95
95
  };
96
96
  skipSetActive?: boolean;
97
+ keepEmptyGroups?: boolean;
97
98
  };
98
99
  export interface FloatingGroupOptions {
99
100
  x?: number;
@@ -128,7 +129,7 @@ export interface IDockviewComponent extends IBaseGrid<DockviewGroupPanel> {
128
129
  readonly orientation: Orientation;
129
130
  readonly onDidDrop: Event<DockviewDidDropEvent>;
130
131
  readonly onWillDrop: Event<DockviewWillDropEvent>;
131
- readonly onWillShowOverlay: Event<WillShowOverlayLocationEvent>;
132
+ readonly onWillShowOverlay: Event<DockviewWillShowOverlayLocationEvent>;
132
133
  readonly onDidRemovePanel: Event<IDockviewPanel>;
133
134
  readonly onDidAddPanel: Event<IDockviewPanel>;
134
135
  readonly onDidLayoutFromJSON: Event<void>;
@@ -175,6 +176,9 @@ export interface IDockviewComponent extends IBaseGrid<DockviewGroupPanel> {
175
176
  window: Window;
176
177
  }) => void;
177
178
  }): Promise<boolean>;
179
+ fromJSON(data: any, options?: {
180
+ reuseExistingPanels: boolean;
181
+ }): void;
178
182
  }
179
183
  export declare class DockviewComponent extends BaseGrid<DockviewGroupPanel> implements IDockviewComponent {
180
184
  private readonly nextGroupId;
@@ -195,7 +199,7 @@ export declare class DockviewComponent extends BaseGrid<DockviewGroupPanel> impl
195
199
  private readonly _onWillDrop;
196
200
  readonly onWillDrop: Event<DockviewWillDropEvent>;
197
201
  private readonly _onWillShowOverlay;
198
- readonly onWillShowOverlay: Event<WillShowOverlayLocationEvent>;
202
+ readonly onWillShowOverlay: Event<DockviewWillShowOverlayLocationEvent>;
199
203
  private readonly _onUnhandledDragOverEvent;
200
204
  readonly onUnhandledDragOverEvent: Event<DockviewDndOverlayEvent>;
201
205
  private readonly _onDidRemovePanel;
@@ -260,7 +264,9 @@ export declare class DockviewComponent extends BaseGrid<DockviewGroupPanel> impl
260
264
  * @returns A JSON respresentation of the layout
261
265
  */
262
266
  toJSON(): SerializedDockview;
263
- fromJSON(data: SerializedDockview): void;
267
+ fromJSON(data: SerializedDockview, options?: {
268
+ reuseExistingPanels: boolean;
269
+ }): void;
264
270
  clear(): void;
265
271
  closeAllGroups(): void;
266
272
  addPanel<T extends object = Parameters>(options: AddPanelOptions<T>): DockviewPanel;