dockview-core 5.2.0 → 6.0.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 (117) hide show
  1. package/README.md +3 -1
  2. package/dist/cjs/api/component.api.d.ts +93 -1
  3. package/dist/cjs/api/component.api.js +146 -0
  4. package/dist/cjs/api/dockviewGroupPanelApi.d.ts +26 -0
  5. package/dist/cjs/api/dockviewGroupPanelApi.js +21 -1
  6. package/dist/cjs/api/entryPoints.js +4 -5
  7. package/dist/cjs/array.js +7 -8
  8. package/dist/cjs/dnd/dataTransfer.d.ts +2 -1
  9. package/dist/cjs/dnd/dataTransfer.js +5 -4
  10. package/dist/cjs/dnd/droptarget.d.ts +12 -0
  11. package/dist/cjs/dnd/droptarget.js +38 -10
  12. package/dist/cjs/dnd/ghost.js +1 -2
  13. package/dist/cjs/dockview/components/panel/content.js +5 -1
  14. package/dist/cjs/dockview/components/popupService.d.ts +9 -2
  15. package/dist/cjs/dockview/components/popupService.js +24 -9
  16. package/dist/cjs/dockview/components/tab/tab.d.ts +6 -1
  17. package/dist/cjs/dockview/components/tab/tab.js +81 -9
  18. package/dist/cjs/dockview/components/titlebar/tabGroupChip.d.ts +30 -0
  19. package/dist/cjs/dockview/components/titlebar/tabGroupChip.js +95 -0
  20. package/dist/cjs/dockview/components/titlebar/tabGroupIndicator.d.ts +71 -0
  21. package/dist/cjs/dockview/components/titlebar/tabGroupIndicator.js +471 -0
  22. package/dist/cjs/dockview/components/titlebar/tabGroups.d.ts +57 -0
  23. package/dist/cjs/dockview/components/titlebar/tabGroups.js +612 -0
  24. package/dist/cjs/dockview/components/titlebar/tabOverflowControl.js +1 -2
  25. package/dist/cjs/dockview/components/titlebar/tabs.d.ts +59 -0
  26. package/dist/cjs/dockview/components/titlebar/tabs.js +1227 -144
  27. package/dist/cjs/dockview/components/titlebar/tabsContainer.d.ts +6 -0
  28. package/dist/cjs/dockview/components/titlebar/tabsContainer.js +132 -14
  29. package/dist/cjs/dockview/contextMenu.d.ts +10 -0
  30. package/dist/cjs/dockview/contextMenu.js +298 -0
  31. package/dist/cjs/dockview/dockviewComponent.d.ts +60 -3
  32. package/dist/cjs/dockview/dockviewComponent.js +712 -126
  33. package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +83 -0
  34. package/dist/cjs/dockview/dockviewGroupPanelModel.js +619 -27
  35. package/dist/cjs/dockview/dockviewShell.d.ts +128 -0
  36. package/dist/cjs/dockview/dockviewShell.js +681 -0
  37. package/dist/cjs/dockview/events.d.ts +9 -0
  38. package/dist/cjs/dockview/framework.d.ts +14 -0
  39. package/dist/cjs/dockview/options.d.ts +92 -10
  40. package/dist/cjs/dockview/options.js +10 -7
  41. package/dist/cjs/dockview/tabGroup.d.ts +99 -0
  42. package/dist/cjs/dockview/tabGroup.js +219 -0
  43. package/dist/cjs/dockview/tabGroupAccent.d.ts +65 -0
  44. package/dist/cjs/dockview/tabGroupAccent.js +128 -0
  45. package/dist/cjs/dockview/theme.d.ts +56 -1
  46. package/dist/cjs/dockview/theme.js +103 -6
  47. package/dist/cjs/dockview/types.d.ts +2 -0
  48. package/dist/cjs/dom.js +19 -19
  49. package/dist/cjs/events.js +2 -2
  50. package/dist/cjs/gridview/baseComponentGridview.d.ts +1 -0
  51. package/dist/cjs/gridview/baseComponentGridview.js +6 -3
  52. package/dist/cjs/gridview/gridview.js +7 -7
  53. package/dist/cjs/index.d.ts +8 -5
  54. package/dist/cjs/index.js +6 -1
  55. package/dist/cjs/popoutWindow.js +3 -3
  56. package/dist/cjs/splitview/splitviewPanel.d.ts +1 -1
  57. package/dist/dockview-core.js +6942 -2777
  58. package/dist/dockview-core.min.js +2 -2
  59. package/dist/dockview-core.min.js.map +1 -1
  60. package/dist/dockview-core.min.noStyle.js +2 -2
  61. package/dist/dockview-core.min.noStyle.js.map +1 -1
  62. package/dist/dockview-core.noStyle.js +6940 -2775
  63. package/dist/esm/api/component.api.d.ts +93 -1
  64. package/dist/esm/api/component.api.js +118 -0
  65. package/dist/esm/api/dockviewGroupPanelApi.d.ts +26 -0
  66. package/dist/esm/api/dockviewGroupPanelApi.js +21 -1
  67. package/dist/esm/dnd/dataTransfer.d.ts +2 -1
  68. package/dist/esm/dnd/dataTransfer.js +2 -1
  69. package/dist/esm/dnd/droptarget.d.ts +12 -0
  70. package/dist/esm/dnd/droptarget.js +33 -5
  71. package/dist/esm/dockview/components/panel/content.js +5 -1
  72. package/dist/esm/dockview/components/popupService.d.ts +9 -2
  73. package/dist/esm/dockview/components/popupService.js +23 -9
  74. package/dist/esm/dockview/components/tab/tab.d.ts +6 -1
  75. package/dist/esm/dockview/components/tab/tab.js +83 -9
  76. package/dist/esm/dockview/components/titlebar/tabGroupChip.d.ts +30 -0
  77. package/dist/esm/dockview/components/titlebar/tabGroupChip.js +68 -0
  78. package/dist/esm/dockview/components/titlebar/tabGroupIndicator.d.ts +71 -0
  79. package/dist/esm/dockview/components/titlebar/tabGroupIndicator.js +354 -0
  80. package/dist/esm/dockview/components/titlebar/tabGroups.d.ts +57 -0
  81. package/dist/esm/dockview/components/titlebar/tabGroups.js +406 -0
  82. package/dist/esm/dockview/components/titlebar/tabs.d.ts +59 -0
  83. package/dist/esm/dockview/components/titlebar/tabs.js +1011 -99
  84. package/dist/esm/dockview/components/titlebar/tabsContainer.d.ts +6 -0
  85. package/dist/esm/dockview/components/titlebar/tabsContainer.js +105 -7
  86. package/dist/esm/dockview/contextMenu.d.ts +10 -0
  87. package/dist/esm/dockview/contextMenu.js +213 -0
  88. package/dist/esm/dockview/dockviewComponent.d.ts +60 -3
  89. package/dist/esm/dockview/dockviewComponent.js +460 -35
  90. package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +83 -0
  91. package/dist/esm/dockview/dockviewGroupPanelModel.js +460 -4
  92. package/dist/esm/dockview/dockviewShell.d.ts +128 -0
  93. package/dist/esm/dockview/dockviewShell.js +621 -0
  94. package/dist/esm/dockview/events.d.ts +9 -0
  95. package/dist/esm/dockview/framework.d.ts +14 -0
  96. package/dist/esm/dockview/options.d.ts +92 -10
  97. package/dist/esm/dockview/options.js +5 -2
  98. package/dist/esm/dockview/tabGroup.d.ts +99 -0
  99. package/dist/esm/dockview/tabGroup.js +144 -0
  100. package/dist/esm/dockview/tabGroupAccent.d.ts +65 -0
  101. package/dist/esm/dockview/tabGroupAccent.js +116 -0
  102. package/dist/esm/dockview/theme.d.ts +56 -1
  103. package/dist/esm/dockview/theme.js +102 -5
  104. package/dist/esm/dockview/types.d.ts +2 -0
  105. package/dist/esm/dom.js +1 -1
  106. package/dist/esm/gridview/baseComponentGridview.d.ts +1 -0
  107. package/dist/esm/gridview/baseComponentGridview.js +4 -1
  108. package/dist/esm/index.d.ts +8 -5
  109. package/dist/esm/index.js +2 -1
  110. package/dist/esm/popoutWindow.js +1 -1
  111. package/dist/esm/splitview/splitviewPanel.d.ts +1 -1
  112. package/dist/package/main.cjs.js +6936 -2801
  113. package/dist/package/main.cjs.min.js +2 -2
  114. package/dist/package/main.esm.min.mjs +2 -2
  115. package/dist/package/main.esm.mjs +6922 -2800
  116. package/dist/styles/dockview.css +1945 -196
  117. package/package.json +5 -1
@@ -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 { DockviewWillShowOverlayLocationEvent } from './events';
11
+ import { DockviewWillShowOverlayLocationEvent, DockviewTabGroupChangeEvent, DockviewTabGroupCollapsedChangeEvent, DockviewTabGroupPanelChangeEvent } from './events';
12
12
  import { DockviewGroupPanel } from './dockviewGroupPanel';
13
13
  import { Parameters } from '../panel/types';
14
14
  import { DockviewFloatingGroupPanel } from './dockviewFloatingGroupPanel';
@@ -16,7 +16,11 @@ import { GroupDragEvent, TabDragEvent } from './components/titlebar/tabsContaine
16
16
  import { AnchoredBox, AnchorPosition, Box } from '../types';
17
17
  import { DockviewPanelRenderer, OverlayRenderContainer } from '../overlay/overlayRenderContainer';
18
18
  import { PopupService } from './components/popupService';
19
+ import { ContextMenuController } from './contextMenu';
19
20
  import { DropTargetAnchorContainer } from '../dnd/dropTargetAnchorContainer';
21
+ import { EdgeGroupPosition, EdgeGroupOptions, SerializedEdgeGroups } from './dockviewShell';
22
+ import { DockviewGroupPanelApi } from '../api/dockviewGroupPanelApi';
23
+ import { TabGroupColorPalette } from './tabGroupAccent';
20
24
  export interface DockviewPopoutGroupOptions {
21
25
  /**
22
26
  * The position of the popout group
@@ -68,6 +72,7 @@ export interface SerializedDockview {
68
72
  activeGroup?: string;
69
73
  floatingGroups?: SerializedFloatingGroup[];
70
74
  popoutGroups?: SerializedPopoutGroup[];
75
+ edgeGroups?: SerializedEdgeGroups;
71
76
  }
72
77
  export interface MovePanelEvent {
73
78
  panel: IDockviewPanel;
@@ -87,6 +92,7 @@ type MoveGroupOrPanelOptions = {
87
92
  from: {
88
93
  groupId: string;
89
94
  panelId?: string;
95
+ tabGroupId?: string;
90
96
  };
91
97
  to: {
92
98
  group: DockviewGroupPanel;
@@ -103,7 +109,7 @@ export interface FloatingGroupOptions {
103
109
  width?: number;
104
110
  position?: AnchorPosition;
105
111
  }
106
- export interface FloatingGroupOptionsInternal extends FloatingGroupOptions {
112
+ interface FloatingGroupOptionsInternal extends FloatingGroupOptions {
107
113
  skipRemoveGroup?: boolean;
108
114
  inDragMode?: boolean;
109
115
  skipActiveGroup?: boolean;
@@ -145,7 +151,14 @@ export interface IDockviewComponent extends IBaseGrid<DockviewGroupPanel> {
145
151
  readonly onDidPopoutGroupSizeChange: Event<PopoutGroupChangeSizeEvent>;
146
152
  readonly onDidPopoutGroupPositionChange: Event<PopoutGroupChangePositionEvent>;
147
153
  readonly onDidOpenPopoutWindowFail: Event<void>;
154
+ readonly onDidCreateTabGroup: Event<DockviewTabGroupChangeEvent>;
155
+ readonly onDidDestroyTabGroup: Event<DockviewTabGroupChangeEvent>;
156
+ readonly onDidAddPanelToTabGroup: Event<DockviewTabGroupPanelChangeEvent>;
157
+ readonly onDidRemovePanelFromTabGroup: Event<DockviewTabGroupPanelChangeEvent>;
158
+ readonly onDidTabGroupChange: Event<DockviewTabGroupChangeEvent>;
159
+ readonly onDidTabGroupCollapsedChange: Event<DockviewTabGroupCollapsedChangeEvent>;
148
160
  readonly options: DockviewComponentOptions;
161
+ readonly tabGroupColorPalette: TabGroupColorPalette;
149
162
  updateOptions(options: DockviewOptions): void;
150
163
  moveGroupOrPanel(options: MoveGroupOrPanelOptions): void;
151
164
  moveGroup(options: MoveGroupOptions): void;
@@ -179,16 +192,24 @@ export interface IDockviewComponent extends IBaseGrid<DockviewGroupPanel> {
179
192
  fromJSON(data: any, options?: {
180
193
  reuseExistingPanels: boolean;
181
194
  }): void;
195
+ addEdgeGroup(position: EdgeGroupPosition, options: EdgeGroupOptions): DockviewGroupPanelApi;
196
+ getEdgeGroup(position: EdgeGroupPosition): DockviewGroupPanelApi | undefined;
197
+ setEdgeGroupVisible(position: EdgeGroupPosition, visible: boolean): void;
198
+ isEdgeGroupVisible(position: EdgeGroupPosition): boolean;
199
+ removeEdgeGroup(position: EdgeGroupPosition): void;
182
200
  }
183
201
  export declare class DockviewComponent extends BaseGrid<DockviewGroupPanel> implements IDockviewComponent {
184
202
  private readonly nextGroupId;
185
203
  private readonly _deserializer;
186
204
  private readonly _api;
187
205
  private _options;
206
+ private _tabGroupColorPalette;
188
207
  private _watermark;
189
- private readonly _themeClassnames;
208
+ private _shellThemeClassnames;
190
209
  readonly overlayRenderContainer: OverlayRenderContainer;
191
210
  readonly popupService: PopupService;
211
+ private readonly _popoutPopupServices;
212
+ readonly contextMenuController: ContextMenuController;
192
213
  readonly rootDropTargetContainer: DropTargetAnchorContainer;
193
214
  private readonly _onWillDragPanel;
194
215
  readonly onWillDragPanel: Event<TabDragEvent>;
@@ -218,8 +239,25 @@ export declare class DockviewComponent extends BaseGrid<DockviewGroupPanel> impl
218
239
  readonly onDidActivePanelChange: Event<IDockviewPanel | undefined>;
219
240
  private readonly _onDidMovePanel;
220
241
  readonly onDidMovePanel: Event<MovePanelEvent>;
242
+ private readonly _onDidCreateTabGroup;
243
+ readonly onDidCreateTabGroup: Event<DockviewTabGroupChangeEvent>;
244
+ private readonly _onDidDestroyTabGroup;
245
+ readonly onDidDestroyTabGroup: Event<DockviewTabGroupChangeEvent>;
246
+ private readonly _onDidAddPanelToTabGroup;
247
+ readonly onDidAddPanelToTabGroup: Event<DockviewTabGroupPanelChangeEvent>;
248
+ private readonly _onDidRemovePanelFromTabGroup;
249
+ readonly onDidRemovePanelFromTabGroup: Event<DockviewTabGroupPanelChangeEvent>;
250
+ private readonly _onDidTabGroupChange;
251
+ readonly onDidTabGroupChange: Event<DockviewTabGroupChangeEvent>;
252
+ private readonly _onDidTabGroupCollapsedChange;
253
+ readonly onDidTabGroupCollapsedChange: Event<DockviewTabGroupChangeEvent>;
221
254
  private readonly _onDidMaximizedGroupChange;
222
255
  readonly onDidMaximizedGroupChange: Event<DockviewMaximizedGroupChanged>;
256
+ private _shellManager;
257
+ private _floatingOverlayHost;
258
+ private _inShellLayout;
259
+ private readonly _edgeGroups;
260
+ private readonly _edgeGroupDisposables;
223
261
  private readonly _floatingGroups;
224
262
  private readonly _popoutGroups;
225
263
  private readonly _rootDropTarget;
@@ -236,6 +274,7 @@ export declare class DockviewComponent extends BaseGrid<DockviewGroupPanel> impl
236
274
  get totalPanels(): number;
237
275
  get panels(): IDockviewPanel[];
238
276
  get options(): DockviewComponentOptions;
277
+ get tabGroupColorPalette(): TabGroupColorPalette;
239
278
  get activePanel(): IDockviewPanel | undefined;
240
279
  get renderer(): DockviewPanelRenderer;
241
280
  get defaultHeaderPosition(): DockviewHeaderPosition;
@@ -248,11 +287,28 @@ export declare class DockviewComponent extends BaseGrid<DockviewGroupPanel> impl
248
287
  get popoutRestorationPromise(): Promise<void>;
249
288
  constructor(container: HTMLElement, options: DockviewComponentOptions);
250
289
  setVisible(panel: DockviewGroupPanel, visible: boolean): void;
290
+ /**
291
+ * Returns the {@link PopupService} that should host popovers (context
292
+ * menus, tab overflow menus) for the given group. Popout groups have their
293
+ * own service rooted in their popout window so the popover renders there
294
+ * and dismisses on events from that window.
295
+ */
296
+ getPopupServiceForGroup(group: DockviewGroupPanel): PopupService;
251
297
  addPopoutGroup(itemToPopout: DockviewPanel | DockviewGroupPanel, options?: DockviewPopoutGroupOptions): Promise<boolean>;
252
298
  addFloatingGroup(item: DockviewPanel | DockviewGroupPanel, options?: FloatingGroupOptionsInternal): void;
253
299
  private orthogonalize;
254
300
  updateOptions(options: Partial<DockviewComponentOptions>): void;
255
301
  layout(width: number, height: number, forceResize?: boolean | undefined): void;
302
+ private _syncFloatingOverlayHost;
303
+ private _layoutFromShell;
304
+ protected forceRelayout(): void;
305
+ addEdgeGroup(position: EdgeGroupPosition, options: EdgeGroupOptions): DockviewGroupPanelApi;
306
+ getEdgeGroup(position: EdgeGroupPosition): DockviewGroupPanelApi | undefined;
307
+ setEdgeGroupVisible(position: EdgeGroupPosition, visible: boolean): void;
308
+ isEdgeGroupVisible(position: EdgeGroupPosition): boolean;
309
+ removeEdgeGroup(position: EdgeGroupPosition): void;
310
+ setEdgeGroupCollapsed(group: DockviewGroupPanel, collapsed: boolean): void;
311
+ isEdgeGroupCollapsed(group: DockviewGroupPanel): boolean;
256
312
  private updateDragAndDropState;
257
313
  focus(): void;
258
314
  getGroupPanel(id: string): IDockviewPanel | undefined;
@@ -297,6 +353,7 @@ export declare class DockviewComponent extends BaseGrid<DockviewGroupPanel> impl
297
353
  private debouncedUpdateAllPositions;
298
354
  movingLock<T>(func: () => T): T;
299
355
  moveGroupOrPanel(options: MoveGroupOrPanelOptions): void;
356
+ private moveTabGroupToGroup;
300
357
  moveGroup(options: MoveGroupOptions): void;
301
358
  doSetGroupActive(group: DockviewGroupPanel | undefined): void;
302
359
  doSetGroupAndPanelActive(group: DockviewGroupPanel | undefined): void;