dockview-core 1.7.6 → 1.8.1

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 (214) hide show
  1. package/README.md +2 -1
  2. package/dist/cjs/api/component.api.d.ts +6 -1
  3. package/dist/cjs/api/component.api.d.ts.map +1 -1
  4. package/dist/cjs/api/component.api.js +6 -0
  5. package/dist/cjs/api/component.api.js.map +1 -1
  6. package/dist/cjs/api/dockviewGroupPanelApi.d.ts +30 -0
  7. package/dist/cjs/api/dockviewGroupPanelApi.d.ts.map +1 -0
  8. package/dist/cjs/api/dockviewGroupPanelApi.js +54 -0
  9. package/dist/cjs/api/dockviewGroupPanelApi.js.map +1 -0
  10. package/dist/cjs/api/dockviewPanelApi.d.ts +14 -1
  11. package/dist/cjs/api/dockviewPanelApi.d.ts.map +1 -1
  12. package/dist/cjs/api/dockviewPanelApi.js +6 -1
  13. package/dist/cjs/api/dockviewPanelApi.js.map +1 -1
  14. package/dist/cjs/array.d.ts +1 -0
  15. package/dist/cjs/array.d.ts.map +1 -1
  16. package/dist/cjs/array.js +10 -1
  17. package/dist/cjs/array.js.map +1 -1
  18. package/dist/cjs/dnd/abstractDragHandler.d.ts +1 -0
  19. package/dist/cjs/dnd/abstractDragHandler.d.ts.map +1 -1
  20. package/dist/cjs/dnd/abstractDragHandler.js +7 -0
  21. package/dist/cjs/dnd/abstractDragHandler.js.map +1 -1
  22. package/dist/cjs/dnd/droptarget.d.ts +11 -0
  23. package/dist/cjs/dnd/droptarget.d.ts.map +1 -1
  24. package/dist/cjs/dnd/droptarget.js +32 -9
  25. package/dist/cjs/dnd/droptarget.js.map +1 -1
  26. package/dist/cjs/dnd/groupDragHandler.d.ts +1 -0
  27. package/dist/cjs/dnd/groupDragHandler.d.ts.map +1 -1
  28. package/dist/cjs/dnd/groupDragHandler.js +18 -0
  29. package/dist/cjs/dnd/groupDragHandler.js.map +1 -1
  30. package/dist/cjs/dnd/overlay.d.ts +40 -0
  31. package/dist/cjs/dnd/overlay.d.ts.map +1 -0
  32. package/dist/cjs/dnd/overlay.js +382 -0
  33. package/dist/cjs/dnd/overlay.js.map +1 -0
  34. package/dist/cjs/dockview/components/tab/tab.d.ts +2 -2
  35. package/dist/cjs/dockview/components/tab/tab.d.ts.map +1 -1
  36. package/dist/cjs/dockview/components/tab/tab.js +0 -7
  37. package/dist/cjs/dockview/components/tab/tab.js.map +1 -1
  38. package/dist/cjs/dockview/components/titlebar/tabsContainer.d.ts +8 -4
  39. package/dist/cjs/dockview/components/titlebar/tabsContainer.d.ts.map +1 -1
  40. package/dist/cjs/dockview/components/titlebar/tabsContainer.js +54 -10
  41. package/dist/cjs/dockview/components/titlebar/tabsContainer.js.map +1 -1
  42. package/dist/cjs/dockview/deserializer.d.ts +2 -2
  43. package/dist/cjs/dockview/deserializer.d.ts.map +1 -1
  44. package/dist/cjs/dockview/deserializer.js.map +1 -1
  45. package/dist/cjs/dockview/dockviewComponent.d.ts +41 -9
  46. package/dist/cjs/dockview/dockviewComponent.d.ts.map +1 -1
  47. package/dist/cjs/dockview/dockviewComponent.js +285 -76
  48. package/dist/cjs/dockview/dockviewComponent.js.map +1 -1
  49. package/dist/cjs/dockview/dockviewFloatingGroupPanel.d.ts +24 -0
  50. package/dist/cjs/dockview/dockviewFloatingGroupPanel.d.ts.map +1 -0
  51. package/dist/cjs/dockview/dockviewFloatingGroupPanel.js +35 -0
  52. package/dist/cjs/dockview/dockviewFloatingGroupPanel.js.map +1 -0
  53. package/dist/cjs/dockview/dockviewGroupPanel.d.ts +5 -6
  54. package/dist/cjs/dockview/dockviewGroupPanel.d.ts.map +1 -1
  55. package/dist/cjs/dockview/dockviewGroupPanel.js +3 -2
  56. package/dist/cjs/dockview/dockviewGroupPanel.js.map +1 -1
  57. package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +5 -1
  58. package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts.map +1 -1
  59. package/dist/cjs/dockview/dockviewGroupPanelModel.js +43 -12
  60. package/dist/cjs/dockview/dockviewGroupPanelModel.js.map +1 -1
  61. package/dist/cjs/dockview/dockviewPanel.d.ts +2 -2
  62. package/dist/cjs/dockview/dockviewPanel.d.ts.map +1 -1
  63. package/dist/cjs/dockview/dockviewPanel.js +1 -1
  64. package/dist/cjs/dockview/dockviewPanel.js.map +1 -1
  65. package/dist/cjs/dockview/options.d.ts +22 -6
  66. package/dist/cjs/dockview/options.d.ts.map +1 -1
  67. package/dist/cjs/dockview/options.js.map +1 -1
  68. package/dist/cjs/dom.d.ts +5 -3
  69. package/dist/cjs/dom.d.ts.map +1 -1
  70. package/dist/cjs/dom.js +13 -1
  71. package/dist/cjs/dom.js.map +1 -1
  72. package/dist/cjs/events.d.ts.map +1 -1
  73. package/dist/cjs/gridview/branchNode.js +2 -2
  74. package/dist/cjs/gridview/branchNode.js.map +1 -1
  75. package/dist/cjs/gridview/gridview.d.ts.map +1 -1
  76. package/dist/cjs/gridview/gridview.js +9 -7
  77. package/dist/cjs/gridview/gridview.js.map +1 -1
  78. package/dist/cjs/gridview/gridviewComponent.d.ts.map +1 -1
  79. package/dist/cjs/gridview/gridviewComponent.js +4 -1
  80. package/dist/cjs/gridview/gridviewComponent.js.map +1 -1
  81. package/dist/cjs/gridview/gridviewPanel.d.ts +3 -3
  82. package/dist/cjs/gridview/gridviewPanel.d.ts.map +1 -1
  83. package/dist/cjs/gridview/gridviewPanel.js +2 -2
  84. package/dist/cjs/gridview/gridviewPanel.js.map +1 -1
  85. package/dist/cjs/index.d.ts +1 -1
  86. package/dist/cjs/index.d.ts.map +1 -1
  87. package/dist/cjs/index.js +1 -3
  88. package/dist/cjs/index.js.map +1 -1
  89. package/dist/cjs/math.d.ts.map +1 -1
  90. package/dist/cjs/paneview/paneviewComponent.d.ts.map +1 -1
  91. package/dist/cjs/paneview/paneviewComponent.js +4 -1
  92. package/dist/cjs/paneview/paneviewComponent.js.map +1 -1
  93. package/dist/cjs/splitview/splitviewComponent.d.ts.map +1 -1
  94. package/dist/cjs/splitview/splitviewComponent.js +4 -1
  95. package/dist/cjs/splitview/splitviewComponent.js.map +1 -1
  96. package/dist/dockview-core.amd.js +772 -133
  97. package/dist/dockview-core.amd.js.map +1 -0
  98. package/dist/dockview-core.amd.min.js +3 -2
  99. package/dist/dockview-core.amd.min.js.map +1 -0
  100. package/dist/dockview-core.amd.min.noStyle.js +3 -2
  101. package/dist/dockview-core.amd.min.noStyle.js.map +1 -0
  102. package/dist/dockview-core.amd.noStyle.js +771 -132
  103. package/dist/dockview-core.amd.noStyle.js.map +1 -0
  104. package/dist/dockview-core.cjs.js +772 -133
  105. package/dist/dockview-core.cjs.js.map +1 -0
  106. package/dist/dockview-core.esm.js +773 -133
  107. package/dist/dockview-core.esm.js.map +1 -0
  108. package/dist/dockview-core.esm.min.js +3 -2
  109. package/dist/dockview-core.esm.min.js.map +1 -0
  110. package/dist/dockview-core.js +772 -133
  111. package/dist/dockview-core.js.map +1 -0
  112. package/dist/dockview-core.min.js +3 -2
  113. package/dist/dockview-core.min.js.map +1 -0
  114. package/dist/dockview-core.min.noStyle.js +3 -2
  115. package/dist/dockview-core.min.noStyle.js.map +1 -0
  116. package/dist/dockview-core.noStyle.js +771 -132
  117. package/dist/dockview-core.noStyle.js.map +1 -0
  118. package/dist/esm/api/component.api.d.ts +6 -1
  119. package/dist/esm/api/component.api.d.ts.map +1 -1
  120. package/dist/esm/api/component.api.js +6 -0
  121. package/dist/esm/api/component.api.js.map +1 -1
  122. package/dist/esm/api/dockviewGroupPanelApi.d.ts +30 -0
  123. package/dist/esm/api/dockviewGroupPanelApi.d.ts.map +1 -0
  124. package/dist/esm/api/dockviewGroupPanelApi.js +28 -0
  125. package/dist/esm/api/dockviewGroupPanelApi.js.map +1 -0
  126. package/dist/esm/api/dockviewPanelApi.d.ts +14 -1
  127. package/dist/esm/api/dockviewPanelApi.d.ts.map +1 -1
  128. package/dist/esm/api/dockviewPanelApi.js +6 -1
  129. package/dist/esm/api/dockviewPanelApi.js.map +1 -1
  130. package/dist/esm/array.d.ts +1 -0
  131. package/dist/esm/array.d.ts.map +1 -1
  132. package/dist/esm/array.js +8 -0
  133. package/dist/esm/array.js.map +1 -1
  134. package/dist/esm/dnd/abstractDragHandler.d.ts +1 -0
  135. package/dist/esm/dnd/abstractDragHandler.d.ts.map +1 -1
  136. package/dist/esm/dnd/abstractDragHandler.js +7 -0
  137. package/dist/esm/dnd/abstractDragHandler.js.map +1 -1
  138. package/dist/esm/dnd/droptarget.d.ts +11 -0
  139. package/dist/esm/dnd/droptarget.d.ts.map +1 -1
  140. package/dist/esm/dnd/droptarget.js +32 -9
  141. package/dist/esm/dnd/droptarget.js.map +1 -1
  142. package/dist/esm/dnd/groupDragHandler.d.ts +1 -0
  143. package/dist/esm/dnd/groupDragHandler.d.ts.map +1 -1
  144. package/dist/esm/dnd/groupDragHandler.js +18 -0
  145. package/dist/esm/dnd/groupDragHandler.js.map +1 -1
  146. package/dist/esm/dnd/overlay.d.ts +40 -0
  147. package/dist/esm/dnd/overlay.d.ts.map +1 -0
  148. package/dist/esm/dnd/overlay.js +282 -0
  149. package/dist/esm/dnd/overlay.js.map +1 -0
  150. package/dist/esm/dockview/components/tab/tab.d.ts +2 -2
  151. package/dist/esm/dockview/components/tab/tab.d.ts.map +1 -1
  152. package/dist/esm/dockview/components/tab/tab.js +0 -7
  153. package/dist/esm/dockview/components/tab/tab.js.map +1 -1
  154. package/dist/esm/dockview/components/titlebar/tabsContainer.d.ts +8 -4
  155. package/dist/esm/dockview/components/titlebar/tabsContainer.d.ts.map +1 -1
  156. package/dist/esm/dockview/components/titlebar/tabsContainer.js +54 -10
  157. package/dist/esm/dockview/components/titlebar/tabsContainer.js.map +1 -1
  158. package/dist/esm/dockview/deserializer.d.ts +2 -2
  159. package/dist/esm/dockview/deserializer.d.ts.map +1 -1
  160. package/dist/esm/dockview/deserializer.js.map +1 -1
  161. package/dist/esm/dockview/dockviewComponent.d.ts +41 -9
  162. package/dist/esm/dockview/dockviewComponent.d.ts.map +1 -1
  163. package/dist/esm/dockview/dockviewComponent.js +231 -54
  164. package/dist/esm/dockview/dockviewComponent.js.map +1 -1
  165. package/dist/esm/dockview/dockviewFloatingGroupPanel.d.ts +24 -0
  166. package/dist/esm/dockview/dockviewFloatingGroupPanel.d.ts.map +1 -0
  167. package/dist/esm/dockview/dockviewFloatingGroupPanel.js +13 -0
  168. package/dist/esm/dockview/dockviewFloatingGroupPanel.js.map +1 -0
  169. package/dist/esm/dockview/dockviewGroupPanel.d.ts +5 -6
  170. package/dist/esm/dockview/dockviewGroupPanel.d.ts.map +1 -1
  171. package/dist/esm/dockview/dockviewGroupPanel.js +3 -2
  172. package/dist/esm/dockview/dockviewGroupPanel.js.map +1 -1
  173. package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +5 -1
  174. package/dist/esm/dockview/dockviewGroupPanelModel.d.ts.map +1 -1
  175. package/dist/esm/dockview/dockviewGroupPanelModel.js +36 -9
  176. package/dist/esm/dockview/dockviewGroupPanelModel.js.map +1 -1
  177. package/dist/esm/dockview/dockviewPanel.d.ts +2 -2
  178. package/dist/esm/dockview/dockviewPanel.d.ts.map +1 -1
  179. package/dist/esm/dockview/dockviewPanel.js +1 -1
  180. package/dist/esm/dockview/dockviewPanel.js.map +1 -1
  181. package/dist/esm/dockview/options.d.ts +22 -6
  182. package/dist/esm/dockview/options.d.ts.map +1 -1
  183. package/dist/esm/dockview/options.js.map +1 -1
  184. package/dist/esm/dom.d.ts +5 -3
  185. package/dist/esm/dom.d.ts.map +1 -1
  186. package/dist/esm/dom.js +10 -0
  187. package/dist/esm/dom.js.map +1 -1
  188. package/dist/esm/events.d.ts.map +1 -1
  189. package/dist/esm/gridview/branchNode.js +2 -2
  190. package/dist/esm/gridview/branchNode.js.map +1 -1
  191. package/dist/esm/gridview/gridview.d.ts.map +1 -1
  192. package/dist/esm/gridview/gridview.js +9 -6
  193. package/dist/esm/gridview/gridview.js.map +1 -1
  194. package/dist/esm/gridview/gridviewComponent.d.ts.map +1 -1
  195. package/dist/esm/gridview/gridviewComponent.js +4 -1
  196. package/dist/esm/gridview/gridviewComponent.js.map +1 -1
  197. package/dist/esm/gridview/gridviewPanel.d.ts +3 -3
  198. package/dist/esm/gridview/gridviewPanel.d.ts.map +1 -1
  199. package/dist/esm/gridview/gridviewPanel.js +2 -2
  200. package/dist/esm/gridview/gridviewPanel.js.map +1 -1
  201. package/dist/esm/index.d.ts +1 -1
  202. package/dist/esm/index.d.ts.map +1 -1
  203. package/dist/esm/index.js +0 -1
  204. package/dist/esm/index.js.map +1 -1
  205. package/dist/esm/math.d.ts.map +1 -1
  206. package/dist/esm/math.js.map +1 -1
  207. package/dist/esm/paneview/paneviewComponent.d.ts.map +1 -1
  208. package/dist/esm/paneview/paneviewComponent.js +4 -1
  209. package/dist/esm/paneview/paneviewComponent.js.map +1 -1
  210. package/dist/esm/splitview/splitviewComponent.d.ts.map +1 -1
  211. package/dist/esm/splitview/splitviewComponent.js +4 -1
  212. package/dist/esm/splitview/splitviewComponent.js.map +1 -1
  213. package/dist/styles/dockview.css +216 -1
  214. package/package.json +5 -5
@@ -1,6 +1,6 @@
1
1
  import { SerializedGridObject } from '../gridview/gridview';
2
2
  import { Position } from '../dnd/droptarget';
3
- import { IDockviewPanel } from './dockviewPanel';
3
+ import { DockviewPanel, IDockviewPanel } from './dockviewPanel';
4
4
  import { Event } from '../events';
5
5
  import { IWatermarkRenderer, GroupviewPanelState } from './types';
6
6
  import { AddGroupOptions, AddPanelOptions, DockviewComponentOptions, MovementOptions } from './options';
@@ -8,7 +8,8 @@ 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, GroupviewDropEvent } from './dockviewGroupPanelModel';
11
- import { DockviewGroupPanel, IDockviewGroupPanel } from './dockviewGroupPanel';
11
+ import { DockviewGroupPanel } from './dockviewGroupPanel';
12
+ import { DockviewFloatingGroupPanel, IDockviewFloatingGroupPanel } from './dockviewFloatingGroupPanel';
12
13
  export interface PanelReference {
13
14
  update: (event: {
14
15
  params: {
@@ -17,6 +18,15 @@ export interface PanelReference {
17
18
  }) => void;
18
19
  remove: () => void;
19
20
  }
21
+ export interface SerializedFloatingGroup {
22
+ data: GroupPanelViewState;
23
+ position: {
24
+ height: number;
25
+ width: number;
26
+ left: number;
27
+ top: number;
28
+ };
29
+ }
20
30
  export interface SerializedDockview {
21
31
  grid: {
22
32
  root: SerializedGridObject<GroupPanelViewState>;
@@ -24,12 +34,11 @@ export interface SerializedDockview {
24
34
  width: number;
25
35
  orientation: Orientation;
26
36
  };
27
- panels: {
28
- [key: string]: GroupviewPanelState;
29
- };
37
+ panels: Record<string, GroupviewPanelState>;
30
38
  activeGroup?: string;
39
+ floatingGroups?: SerializedFloatingGroup[];
31
40
  }
32
- export type DockviewComponentUpdateOptions = Pick<DockviewComponentOptions, 'orientation' | 'components' | 'frameworkComponents' | 'tabComponents' | 'frameworkTabComponents' | 'showDndOverlay' | 'watermarkFrameworkComponent' | 'defaultTabComponent' | 'createGroupControlElement'>;
41
+ export type DockviewComponentUpdateOptions = Pick<DockviewComponentOptions, 'orientation' | 'components' | 'frameworkComponents' | 'tabComponents' | 'frameworkTabComponents' | 'showDndOverlay' | 'watermarkFrameworkComponent' | 'defaultTabComponent' | 'createLeftHeaderActionsElement' | 'createRightHeaderActionsElement' | 'disableFloatingGroups'>;
33
42
  export interface DockviewDropEvent extends GroupviewDropEvent {
34
43
  api: DockviewApi;
35
44
  group: DockviewGroupPanel | null;
@@ -38,6 +47,7 @@ export interface IDockviewComponent extends IBaseGrid<DockviewGroupPanel> {
38
47
  readonly activePanel: IDockviewPanel | undefined;
39
48
  readonly totalPanels: number;
40
49
  readonly panels: IDockviewPanel[];
50
+ readonly floatingGroups: IDockviewFloatingGroupPanel[];
41
51
  readonly onDidDrop: Event<DockviewDropEvent>;
42
52
  readonly orientation: Orientation;
43
53
  updateOptions(options: DockviewComponentUpdateOptions): void;
@@ -49,7 +59,7 @@ export interface IDockviewComponent extends IBaseGrid<DockviewGroupPanel> {
49
59
  removePanel(panel: IDockviewPanel): void;
50
60
  getGroupPanel: (id: string) => IDockviewPanel | undefined;
51
61
  createWatermarkComponent(): IWatermarkRenderer;
52
- addGroup(options?: AddGroupOptions): IDockviewGroupPanel;
62
+ addGroup(options?: AddGroupOptions): DockviewGroupPanel;
53
63
  closeAllGroups(): void;
54
64
  moveToNext(options?: MovementOptions): void;
55
65
  moveToPrevious(options?: MovementOptions): void;
@@ -61,6 +71,10 @@ export interface IDockviewComponent extends IBaseGrid<DockviewGroupPanel> {
61
71
  readonly onDidAddPanel: Event<IDockviewPanel>;
62
72
  readonly onDidLayoutFromJSON: Event<void>;
63
73
  readonly onDidActivePanelChange: Event<IDockviewPanel | undefined>;
74
+ addFloatingGroup(item: IDockviewPanel | DockviewGroupPanel, coord?: {
75
+ x: number;
76
+ y: number;
77
+ }): void;
64
78
  }
65
79
  export declare class DockviewComponent extends BaseGrid<DockviewGroupPanel> implements IDockviewComponent {
66
80
  private readonly nextGroupId;
@@ -78,14 +92,25 @@ export declare class DockviewComponent extends BaseGrid<DockviewGroupPanel> impl
78
92
  readonly onDidLayoutFromJSON: Event<void>;
79
93
  private readonly _onDidActivePanelChange;
80
94
  readonly onDidActivePanelChange: Event<IDockviewPanel | undefined>;
95
+ readonly floatingGroups: DockviewFloatingGroupPanel[];
81
96
  get orientation(): Orientation;
82
97
  get totalPanels(): number;
83
98
  get panels(): IDockviewPanel[];
84
99
  get options(): DockviewComponentOptions;
85
100
  get activePanel(): IDockviewPanel | undefined;
86
101
  constructor(options: DockviewComponentOptions);
102
+ addFloatingGroup(item: DockviewPanel | DockviewGroupPanel, coord?: {
103
+ x?: number;
104
+ y?: number;
105
+ height?: number;
106
+ width?: number;
107
+ }, options?: {
108
+ skipRemoveGroup?: boolean;
109
+ inDragMode: boolean;
110
+ }): void;
87
111
  private orthogonalize;
88
112
  updateOptions(options: DockviewComponentUpdateOptions): void;
113
+ layout(width: number, height: number, forceResize?: boolean | undefined): void;
89
114
  focus(): void;
90
115
  getGroupPanel(id: string): IDockviewPanel | undefined;
91
116
  setActivePanel(panel: IDockviewPanel): void;
@@ -100,7 +125,7 @@ export declare class DockviewComponent extends BaseGrid<DockviewGroupPanel> impl
100
125
  fromJSON(data: SerializedDockview): void;
101
126
  clear(): void;
102
127
  closeAllGroups(): void;
103
- addPanel(options: AddPanelOptions): IDockviewPanel;
128
+ addPanel(options: AddPanelOptions): DockviewPanel;
104
129
  removePanel(panel: IDockviewPanel, options?: {
105
130
  removeEmptyGroup: boolean;
106
131
  skipDispose: boolean;
@@ -108,7 +133,14 @@ export declare class DockviewComponent extends BaseGrid<DockviewGroupPanel> impl
108
133
  createWatermarkComponent(): IWatermarkRenderer;
109
134
  private updateWatermark;
110
135
  addGroup(options?: AddGroupOptions): DockviewGroupPanel;
111
- removeGroup(group: DockviewGroupPanel, skipActive?: boolean): void;
136
+ removeGroup(group: DockviewGroupPanel, options?: {
137
+ skipActive?: boolean;
138
+ skipDispose?: boolean;
139
+ } | undefined): void;
140
+ protected doRemoveGroup(group: DockviewGroupPanel, options?: {
141
+ skipActive?: boolean;
142
+ skipDispose?: boolean;
143
+ } | undefined): DockviewGroupPanel;
112
144
  moveGroupOrPanel(destinationGroup: DockviewGroupPanel, sourceGroupId: string, sourceItemId: string | undefined, destinationTarget: Position, destinationIndex?: number): void;
113
145
  private moveGroup;
114
146
  doSetGroupActive(group: DockviewGroupPanel | undefined, skipFocus?: boolean): void;
@@ -1 +1 @@
1
- {"version":3,"file":"dockviewComponent.d.ts","sourceRoot":"","sources":["../../../src/dockview/dockviewComponent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dockviewComponent.d.ts","sourceRoot":"","sources":["../../../src/dockview/dockviewComponent.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { getRelativeLocation, getGridLocation, } from '../gridview/gridview';
2
2
  import { directionToPosition, Droptarget } from '../dnd/droptarget';
3
- import { tail, sequenceEquals } from '../array';
3
+ import { tail, sequenceEquals, remove } from '../array';
4
4
  import { DockviewPanel } from './dockviewPanel';
5
5
  import { CompositeDisposable } from '../lifecycle';
6
6
  import { Event, Emitter } from '../events';
@@ -16,6 +16,9 @@ import { Orientation, Sizing } from '../splitview/splitview';
16
16
  import { DockviewGroupPanel } from './dockviewGroupPanel';
17
17
  import { DockviewPanelModel } from './dockviewPanelModel';
18
18
  import { getPanelData } from '../dnd/dataTransfer';
19
+ import { Overlay } from '../dnd/overlay';
20
+ import { toggleClass, watchElementResize } from '../dom';
21
+ import { DockviewFloatingGroupPanel, } from './dockviewFloatingGroupPanel';
19
22
  export class DockviewComponent extends BaseGrid {
20
23
  get orientation() {
21
24
  return this.gridview.orientation;
@@ -56,7 +59,8 @@ export class DockviewComponent extends BaseGrid {
56
59
  this.onDidLayoutFromJSON = this._onDidLayoutFromJSON.event;
57
60
  this._onDidActivePanelChange = new Emitter();
58
61
  this.onDidActivePanelChange = this._onDidActivePanelChange.event;
59
- this.element.classList.add('dv-dockview');
62
+ this.floatingGroups = [];
63
+ toggleClass(this.gridview.element, 'dv-dockview', true);
60
64
  this.addDisposables(this._onDidDrop, Event.any(this.onDidAddGroup, this.onDidRemoveGroup)(() => {
61
65
  this.updateWatermark();
62
66
  }), Event.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidActivePanelChange)(() => {
@@ -86,9 +90,22 @@ export class DockviewComponent extends BaseGrid {
86
90
  if (data.viewId !== this.id) {
87
91
  return false;
88
92
  }
93
+ if (position === 'center') {
94
+ // center drop target is only allowed if there are no panels in the grid
95
+ // floating panels are allowed
96
+ return this.gridview.length === 0;
97
+ }
89
98
  return true;
90
99
  }
91
100
  if (this.options.showDndOverlay) {
101
+ if (position === 'center') {
102
+ /**
103
+ * for external events only show the four-corner drag overlays, disable
104
+ * the center position so that external drag events can fall through to the group
105
+ * and panel drop target handlers
106
+ */
107
+ return false;
108
+ }
92
109
  return this.options.showDndOverlay({
93
110
  nativeEvent: event,
94
111
  position: position,
@@ -98,7 +115,7 @@ export class DockviewComponent extends BaseGrid {
98
115
  }
99
116
  return false;
100
117
  },
101
- acceptedTargetZones: ['top', 'bottom', 'left', 'right'],
118
+ acceptedTargetZones: ['top', 'bottom', 'left', 'right', 'center'],
102
119
  overlayModel: {
103
120
  activationSize: { type: 'pixels', value: 10 },
104
121
  size: { type: 'pixels', value: 20 },
@@ -116,6 +133,75 @@ export class DockviewComponent extends BaseGrid {
116
133
  this._api = new DockviewApi(this);
117
134
  this.updateWatermark();
118
135
  }
136
+ addFloatingGroup(item, coord, options) {
137
+ var _a, _b;
138
+ let group;
139
+ if (item instanceof DockviewPanel) {
140
+ group = this.createGroup();
141
+ this.removePanel(item, {
142
+ removeEmptyGroup: true,
143
+ skipDispose: true,
144
+ });
145
+ group.model.openPanel(item);
146
+ }
147
+ else {
148
+ group = item;
149
+ const skip = typeof (options === null || options === void 0 ? void 0 : options.skipRemoveGroup) === 'boolean' &&
150
+ options.skipRemoveGroup;
151
+ if (!skip) {
152
+ this.doRemoveGroup(item, { skipDispose: true });
153
+ }
154
+ }
155
+ group.model.isFloating = true;
156
+ const overlayLeft = typeof (coord === null || coord === void 0 ? void 0 : coord.x) === 'number' ? Math.max(coord.x, 0) : 100;
157
+ const overlayTop = typeof (coord === null || coord === void 0 ? void 0 : coord.y) === 'number' ? Math.max(coord.y, 0) : 100;
158
+ const overlay = new Overlay({
159
+ container: this.gridview.element,
160
+ content: group.element,
161
+ height: (_a = coord === null || coord === void 0 ? void 0 : coord.height) !== null && _a !== void 0 ? _a : 300,
162
+ width: (_b = coord === null || coord === void 0 ? void 0 : coord.width) !== null && _b !== void 0 ? _b : 300,
163
+ left: overlayLeft,
164
+ top: overlayTop,
165
+ minimumInViewportWidth: 100,
166
+ minimumInViewportHeight: 100,
167
+ });
168
+ const el = group.element.querySelector('.void-container');
169
+ if (!el) {
170
+ throw new Error('failed to find drag handle');
171
+ }
172
+ overlay.setupDrag(el, {
173
+ inDragMode: typeof (options === null || options === void 0 ? void 0 : options.inDragMode) === 'boolean'
174
+ ? options.inDragMode
175
+ : false,
176
+ });
177
+ const floatingGroupPanel = new DockviewFloatingGroupPanel(group, overlay);
178
+ const disposable = watchElementResize(group.element, (entry) => {
179
+ const { width, height } = entry.contentRect;
180
+ group.layout(width, height); // let the group know it's size is changing so it can fire events to the panel
181
+ });
182
+ floatingGroupPanel.addDisposables(overlay.onDidChange(() => {
183
+ // this is either a resize or a move
184
+ // to inform the panels .layout(...) the group with it's current size
185
+ // don't care about resize since the above watcher handles that
186
+ group.layout(group.height, group.width);
187
+ }), overlay.onDidChangeEnd(() => {
188
+ this._bufferOnDidLayoutChange.fire();
189
+ }), group.onDidChange((event) => {
190
+ overlay.setBounds({
191
+ height: event === null || event === void 0 ? void 0 : event.height,
192
+ width: event === null || event === void 0 ? void 0 : event.width,
193
+ });
194
+ }), {
195
+ dispose: () => {
196
+ disposable.dispose();
197
+ group.model.isFloating = false;
198
+ remove(this.floatingGroups, floatingGroupPanel);
199
+ this.updateWatermark();
200
+ },
201
+ });
202
+ this.floatingGroups.push(floatingGroupPanel);
203
+ this.updateWatermark();
204
+ }
119
205
  orthogonalize(position) {
120
206
  switch (position) {
121
207
  case 'top':
@@ -140,6 +226,7 @@ export class DockviewComponent extends BaseGrid {
140
226
  switch (position) {
141
227
  case 'top':
142
228
  case 'left':
229
+ case 'center':
143
230
  return this.createGroupAtLocation([0]); // insert into first position
144
231
  case 'bottom':
145
232
  case 'right':
@@ -157,6 +244,15 @@ export class DockviewComponent extends BaseGrid {
157
244
  }
158
245
  this.layout(this.gridview.width, this.gridview.height, true);
159
246
  }
247
+ layout(width, height, forceResize) {
248
+ super.layout(width, height, forceResize);
249
+ if (this.floatingGroups) {
250
+ for (const floating of this.floatingGroups) {
251
+ // ensure floting groups stay within visible boundaries
252
+ floating.overlay.setBounds();
253
+ }
254
+ }
255
+ }
160
256
  focus() {
161
257
  var _a;
162
258
  (_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.focus();
@@ -219,51 +315,81 @@ export class DockviewComponent extends BaseGrid {
219
315
  collection[panel.id] = panel.toJSON();
220
316
  return collection;
221
317
  }, {});
222
- return {
318
+ const floats = this.floatingGroups.map((floatingGroup) => {
319
+ return {
320
+ data: floatingGroup.group.toJSON(),
321
+ position: floatingGroup.overlay.toJSON(),
322
+ };
323
+ });
324
+ const result = {
223
325
  grid: data,
224
326
  panels,
225
327
  activeGroup: (_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.id,
226
328
  };
329
+ if (floats.length > 0) {
330
+ result.floatingGroups = floats;
331
+ }
332
+ return result;
227
333
  }
228
334
  fromJSON(data) {
335
+ var _a;
229
336
  this.clear();
230
337
  const { grid, panels, activeGroup } = data;
231
338
  if (grid.root.type !== 'branch' || !Array.isArray(grid.root.data)) {
232
339
  throw new Error('root must be of type branch');
233
340
  }
341
+ // take note of the existing dimensions
342
+ const width = this.width;
343
+ const height = this.height;
344
+ const createGroupFromSerializedState = (data) => {
345
+ const { id, locked, hideHeader, views, activeView } = data;
346
+ const group = this.createGroup({
347
+ id,
348
+ locked: !!locked,
349
+ hideHeader: !!hideHeader,
350
+ });
351
+ this._onDidAddGroup.fire(group);
352
+ for (const child of views) {
353
+ const panel = this._deserializer.fromJSON(panels[child], group);
354
+ const isActive = typeof activeView === 'string' && activeView === panel.id;
355
+ group.model.openPanel(panel, {
356
+ skipSetPanelActive: !isActive,
357
+ skipSetGroupActive: true,
358
+ });
359
+ }
360
+ if (!group.activePanel && group.panels.length > 0) {
361
+ group.model.openPanel(group.panels[group.panels.length - 1], {
362
+ skipSetGroupActive: true,
363
+ });
364
+ }
365
+ return group;
366
+ };
234
367
  this.gridview.deserialize(grid, {
235
368
  fromJSON: (node) => {
236
- const { id, locked, hideHeader, views, activeView } = node.data;
237
- const group = this.createGroup({
238
- id,
239
- locked: !!locked,
240
- hideHeader: !!hideHeader,
241
- });
242
- this._onDidAddGroup.fire(group);
243
- for (const child of views) {
244
- const panel = this._deserializer.fromJSON(panels[child], group);
245
- const isActive = typeof activeView === 'string' &&
246
- activeView === panel.id;
247
- group.model.openPanel(panel, {
248
- skipSetPanelActive: !isActive,
249
- skipSetGroupActive: true,
250
- });
251
- }
252
- if (!group.activePanel && group.panels.length > 0) {
253
- group.model.openPanel(group.panels[group.panels.length - 1], {
254
- skipSetGroupActive: true,
255
- });
256
- }
257
- return group;
369
+ return createGroupFromSerializedState(node.data);
258
370
  },
259
371
  });
372
+ this.layout(width, height, true);
373
+ const serializedFloatingGroups = (_a = data.floatingGroups) !== null && _a !== void 0 ? _a : [];
374
+ for (const serializedFloatingGroup of serializedFloatingGroups) {
375
+ const { data, position } = serializedFloatingGroup;
376
+ const group = createGroupFromSerializedState(data);
377
+ this.addFloatingGroup(group, {
378
+ x: position.left,
379
+ y: position.top,
380
+ height: position.height,
381
+ width: position.width,
382
+ }, { skipRemoveGroup: true, inDragMode: false });
383
+ }
384
+ for (const floatingGroup of this.floatingGroups) {
385
+ floatingGroup.overlay.setBounds();
386
+ }
260
387
  if (typeof activeGroup === 'string') {
261
388
  const panel = this.getPanel(activeGroup);
262
389
  if (panel) {
263
390
  this.doSetGroupActive(panel);
264
391
  }
265
392
  }
266
- this.gridview.layout(this.width, this.height);
267
393
  this._onDidLayoutFromJSON.fire();
268
394
  }
269
395
  clear() {
@@ -272,7 +398,7 @@ export class DockviewComponent extends BaseGrid {
272
398
  const hasActivePanel = !!this.activePanel;
273
399
  for (const group of groups) {
274
400
  // remove the group will automatically remove the panels
275
- this.removeGroup(group, true);
401
+ this.removeGroup(group, { skipActive: true });
276
402
  }
277
403
  if (hasActiveGroup) {
278
404
  this.doSetGroupActive(undefined);
@@ -294,6 +420,9 @@ export class DockviewComponent extends BaseGrid {
294
420
  throw new Error(`panel with id ${options.id} already exists`);
295
421
  }
296
422
  let referenceGroup;
423
+ if (options.position && options.floating) {
424
+ throw new Error('you can only provide one of: position, floating as arguments to .addPanel(...)');
425
+ }
297
426
  if (options.position) {
298
427
  if (isPanelOptionsWithPanel(options.position)) {
299
428
  const referencePanel = typeof options.position.referencePanel === 'string'
@@ -326,7 +455,20 @@ export class DockviewComponent extends BaseGrid {
326
455
  let panel;
327
456
  if (referenceGroup) {
328
457
  const target = toTarget(((_b = options.position) === null || _b === void 0 ? void 0 : _b.direction) || 'within');
329
- if (target === 'center') {
458
+ if (options.floating) {
459
+ const group = this.createGroup();
460
+ panel = this.createPanel(options, group);
461
+ group.model.openPanel(panel);
462
+ const o = typeof options.floating === 'object' &&
463
+ options.floating !== null
464
+ ? options.floating
465
+ : {};
466
+ this.addFloatingGroup(group, o, {
467
+ inDragMode: false,
468
+ skipRemoveGroup: true,
469
+ });
470
+ }
471
+ else if (referenceGroup.api.isFloating || target === 'center') {
330
472
  panel = this.createPanel(options, referenceGroup);
331
473
  referenceGroup.model.openPanel(panel);
332
474
  }
@@ -338,6 +480,19 @@ export class DockviewComponent extends BaseGrid {
338
480
  group.model.openPanel(panel);
339
481
  }
340
482
  }
483
+ else if (options.floating) {
484
+ const group = this.createGroup();
485
+ panel = this.createPanel(options, group);
486
+ group.model.openPanel(panel);
487
+ const o = typeof options.floating === 'object' &&
488
+ options.floating !== null
489
+ ? options.floating
490
+ : {};
491
+ this.addFloatingGroup(group, o, {
492
+ inDragMode: false,
493
+ skipRemoveGroup: true,
494
+ });
495
+ }
341
496
  else {
342
497
  const group = this.createGroupAtLocation();
343
498
  panel = this.createPanel(options, group);
@@ -354,7 +509,9 @@ export class DockviewComponent extends BaseGrid {
354
509
  throw new Error(`cannot remove panel ${panel.id}. it's missing a group.`);
355
510
  }
356
511
  group.model.removePanel(panel);
357
- panel.dispose();
512
+ if (!options.skipDispose) {
513
+ panel.dispose();
514
+ }
358
515
  if (group.size === 0 && options.removeEmptyGroup) {
359
516
  this.removeGroup(group);
360
517
  }
@@ -369,7 +526,7 @@ export class DockviewComponent extends BaseGrid {
369
526
  }
370
527
  updateWatermark() {
371
528
  var _a, _b;
372
- if (this.groups.length === 0) {
529
+ if (this.groups.filter((x) => !x.api.isFloating).length === 0) {
373
530
  if (!this.watermark) {
374
531
  this.watermark = this.createWatermarkComponent();
375
532
  this.watermark.init({
@@ -378,7 +535,7 @@ export class DockviewComponent extends BaseGrid {
378
535
  const watermarkContainer = document.createElement('div');
379
536
  watermarkContainer.className = 'dv-watermark-container';
380
537
  watermarkContainer.appendChild(this.watermark.element);
381
- this.element.appendChild(watermarkContainer);
538
+ this.gridview.element.appendChild(watermarkContainer);
382
539
  }
383
540
  }
384
541
  else if (this.watermark) {
@@ -428,15 +585,28 @@ export class DockviewComponent extends BaseGrid {
428
585
  return group;
429
586
  }
430
587
  }
431
- removeGroup(group, skipActive = false) {
588
+ removeGroup(group, options) {
589
+ var _a;
432
590
  const panels = [...group.panels]; // reassign since group panels will mutate
433
591
  for (const panel of panels) {
434
592
  this.removePanel(panel, {
435
593
  removeEmptyGroup: false,
436
- skipDispose: false,
594
+ skipDispose: (_a = options === null || options === void 0 ? void 0 : options.skipDispose) !== null && _a !== void 0 ? _a : false,
437
595
  });
438
596
  }
439
- super.doRemoveGroup(group, { skipActive });
597
+ this.doRemoveGroup(group, options);
598
+ }
599
+ doRemoveGroup(group, options) {
600
+ const floatingGroup = this.floatingGroups.find((_) => _.group === group);
601
+ if (floatingGroup) {
602
+ if (!(options === null || options === void 0 ? void 0 : options.skipDispose)) {
603
+ floatingGroup.group.dispose();
604
+ this._groups.delete(group.id);
605
+ }
606
+ floatingGroup.dispose();
607
+ return floatingGroup.group;
608
+ }
609
+ return super.doRemoveGroup(group, options);
440
610
  }
441
611
  moveGroupOrPanel(destinationGroup, sourceGroupId, sourceItemId, destinationTarget, destinationIndex) {
442
612
  var _a;
@@ -467,25 +637,26 @@ export class DockviewComponent extends BaseGrid {
467
637
  const targetLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, destinationTarget);
468
638
  if (sourceGroup && sourceGroup.size < 2) {
469
639
  const [targetParentLocation, to] = tail(targetLocation);
470
- const sourceLocation = getGridLocation(sourceGroup.element);
471
- const [sourceParentLocation, from] = tail(sourceLocation);
472
- if (sequenceEquals(sourceParentLocation, targetParentLocation)) {
473
- // special case when 'swapping' two views within same grid location
474
- // if a group has one tab - we are essentially moving the 'group'
475
- // which is equivalent to swapping two views in this case
476
- this.gridview.moveView(sourceParentLocation, from, to);
477
- }
478
- else {
479
- // source group will become empty so delete the group
480
- const targetGroup = this.doRemoveGroup(sourceGroup, {
481
- skipActive: true,
482
- skipDispose: true,
483
- });
484
- // after deleting the group we need to re-evaulate the ref location
485
- const updatedReferenceLocation = getGridLocation(destinationGroup.element);
486
- const location = getRelativeLocation(this.gridview.orientation, updatedReferenceLocation, destinationTarget);
487
- this.doAddGroup(targetGroup, location);
640
+ const isFloating = this.floatingGroups.find((x) => x.group === sourceGroup);
641
+ if (!isFloating) {
642
+ const sourceLocation = getGridLocation(sourceGroup.element);
643
+ const [sourceParentLocation, from] = tail(sourceLocation);
644
+ if (sequenceEquals(sourceParentLocation, targetParentLocation)) {
645
+ // special case when 'swapping' two views within same grid location
646
+ // if a group has one tab - we are essentially moving the 'group'
647
+ // which is equivalent to swapping two views in this case
648
+ this.gridview.moveView(sourceParentLocation, from, to);
649
+ }
488
650
  }
651
+ // source group will become empty so delete the group
652
+ const targetGroup = this.doRemoveGroup(sourceGroup, {
653
+ skipActive: true,
654
+ skipDispose: true,
655
+ });
656
+ // after deleting the group we need to re-evaulate the ref location
657
+ const updatedReferenceLocation = getGridLocation(destinationGroup.element);
658
+ const location = getRelativeLocation(this.gridview.orientation, updatedReferenceLocation, destinationTarget);
659
+ this.doAddGroup(targetGroup, location);
489
660
  }
490
661
  else {
491
662
  const groupItem = (sourceGroup === null || sourceGroup === void 0 ? void 0 : sourceGroup.model.removePanel(sourceItemId)) ||
@@ -514,7 +685,13 @@ export class DockviewComponent extends BaseGrid {
514
685
  }
515
686
  }
516
687
  else {
517
- this.gridview.removeView(getGridLocation(sourceGroup.element));
688
+ const floatingGroup = this.floatingGroups.find((x) => x.group === sourceGroup);
689
+ if (floatingGroup) {
690
+ floatingGroup.dispose();
691
+ }
692
+ else {
693
+ this.gridview.removeView(getGridLocation(sourceGroup.element));
694
+ }
518
695
  const referenceLocation = getGridLocation(referenceGroup.element);
519
696
  const dropLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, target);
520
697
  this.gridview.addView(sourceGroup, Sizing.Distribute, dropLocation);