dockview-core 1.8.5 → 1.9.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 (287) hide show
  1. package/README.md +18 -11
  2. package/dist/cjs/api/component.api.d.ts +12 -0
  3. package/dist/cjs/api/component.api.d.ts.map +1 -1
  4. package/dist/cjs/api/component.api.js +22 -0
  5. package/dist/cjs/api/component.api.js.map +1 -1
  6. package/dist/cjs/api/dockviewGroupPanelApi.d.ts +15 -8
  7. package/dist/cjs/api/dockviewGroupPanelApi.d.ts.map +1 -1
  8. package/dist/cjs/api/dockviewGroupPanelApi.js +39 -9
  9. package/dist/cjs/api/dockviewGroupPanelApi.js.map +1 -1
  10. package/dist/cjs/api/dockviewPanelApi.d.ts +19 -2
  11. package/dist/cjs/api/dockviewPanelApi.d.ts.map +1 -1
  12. package/dist/cjs/api/dockviewPanelApi.js +23 -3
  13. package/dist/cjs/api/dockviewPanelApi.js.map +1 -1
  14. package/dist/cjs/api/gridviewPanelApi.js.map +1 -1
  15. package/dist/cjs/api/panelApi.js.map +1 -1
  16. package/dist/cjs/api/paneviewPanelApi.js.map +1 -1
  17. package/dist/cjs/api/splitviewPanelApi.js.map +1 -1
  18. package/dist/cjs/array.js.map +1 -1
  19. package/dist/cjs/constants.d.ts +6 -0
  20. package/dist/cjs/constants.d.ts.map +1 -0
  21. package/dist/cjs/constants.js +6 -0
  22. package/dist/cjs/constants.js.map +1 -0
  23. package/dist/cjs/dnd/abstractDragHandler.js.map +1 -1
  24. package/dist/cjs/dnd/dataTransfer.js.map +1 -1
  25. package/dist/cjs/dnd/dnd.d.ts +5 -0
  26. package/dist/cjs/dnd/dnd.d.ts.map +1 -1
  27. package/dist/cjs/dnd/dnd.js +28 -13
  28. package/dist/cjs/dnd/dnd.js.map +1 -1
  29. package/dist/cjs/dnd/droptarget.d.ts +2 -0
  30. package/dist/cjs/dnd/droptarget.d.ts.map +1 -1
  31. package/dist/cjs/dnd/droptarget.js +3 -2
  32. package/dist/cjs/dnd/droptarget.js.map +1 -1
  33. package/dist/cjs/dnd/groupDragHandler.js +1 -1
  34. package/dist/cjs/dnd/groupDragHandler.js.map +1 -1
  35. package/dist/cjs/dnd/overlay.d.ts +4 -17
  36. package/dist/cjs/dnd/overlay.d.ts.map +1 -1
  37. package/dist/cjs/dnd/overlay.js.map +1 -1
  38. package/dist/cjs/dockview/components/panel/content.d.ts +14 -1
  39. package/dist/cjs/dockview/components/panel/content.d.ts.map +1 -1
  40. package/dist/cjs/dockview/components/panel/content.js +85 -26
  41. package/dist/cjs/dockview/components/panel/content.js.map +1 -1
  42. package/dist/cjs/dockview/components/tab/defaultTab.js.map +1 -1
  43. package/dist/cjs/dockview/components/tab/tab.js.map +1 -1
  44. package/dist/cjs/dockview/components/titlebar/tabsContainer.js +2 -2
  45. package/dist/cjs/dockview/components/titlebar/tabsContainer.js.map +1 -1
  46. package/dist/cjs/dockview/components/titlebar/voidContainer.js.map +1 -1
  47. package/dist/cjs/dockview/components/watermark/watermark.js.map +1 -1
  48. package/dist/cjs/dockview/deserializer.d.ts +2 -2
  49. package/dist/cjs/dockview/deserializer.d.ts.map +1 -1
  50. package/dist/cjs/dockview/deserializer.js +6 -4
  51. package/dist/cjs/dockview/deserializer.js.map +1 -1
  52. package/dist/cjs/dockview/dockviewComponent.d.ts +21 -9
  53. package/dist/cjs/dockview/dockviewComponent.d.ts.map +1 -1
  54. package/dist/cjs/dockview/dockviewComponent.js +287 -103
  55. package/dist/cjs/dockview/dockviewComponent.js.map +1 -1
  56. package/dist/cjs/dockview/dockviewFloatingGroupPanel.js.map +1 -1
  57. package/dist/cjs/dockview/dockviewGroupPanel.d.ts.map +1 -1
  58. package/dist/cjs/dockview/dockviewGroupPanel.js +4 -2
  59. package/dist/cjs/dockview/dockviewGroupPanel.js.map +1 -1
  60. package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +5 -4
  61. package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts.map +1 -1
  62. package/dist/cjs/dockview/dockviewGroupPanelModel.js +37 -43
  63. package/dist/cjs/dockview/dockviewGroupPanelModel.js.map +1 -1
  64. package/dist/cjs/dockview/dockviewPanel.d.ts +8 -1
  65. package/dist/cjs/dockview/dockviewPanel.d.ts.map +1 -1
  66. package/dist/cjs/dockview/dockviewPanel.js +23 -1
  67. package/dist/cjs/dockview/dockviewPanel.js.map +1 -1
  68. package/dist/cjs/dockview/dockviewPanelModel.js.map +1 -1
  69. package/dist/cjs/dockview/dockviewPopoutGroupPanel.d.ts +16 -0
  70. package/dist/cjs/dockview/dockviewPopoutGroupPanel.d.ts.map +1 -0
  71. package/dist/cjs/dockview/dockviewPopoutGroupPanel.js +50 -0
  72. package/dist/cjs/dockview/dockviewPopoutGroupPanel.js.map +1 -0
  73. package/dist/cjs/dockview/options.d.ts +5 -0
  74. package/dist/cjs/dockview/options.d.ts.map +1 -1
  75. package/dist/cjs/dockview/options.js.map +1 -1
  76. package/dist/cjs/dockview/types.d.ts +2 -0
  77. package/dist/cjs/dockview/types.d.ts.map +1 -1
  78. package/dist/cjs/dockview/types.js.map +1 -1
  79. package/dist/cjs/dom.d.ts +12 -0
  80. package/dist/cjs/dom.d.ts.map +1 -1
  81. package/dist/cjs/dom.js +80 -1
  82. package/dist/cjs/dom.js.map +1 -1
  83. package/dist/cjs/events.js.map +1 -1
  84. package/dist/cjs/gridview/baseComponentGridview.d.ts +10 -0
  85. package/dist/cjs/gridview/baseComponentGridview.d.ts.map +1 -1
  86. package/dist/cjs/gridview/baseComponentGridview.js +19 -0
  87. package/dist/cjs/gridview/baseComponentGridview.js.map +1 -1
  88. package/dist/cjs/gridview/basePanelView.js.map +1 -1
  89. package/dist/cjs/gridview/branchNode.d.ts +2 -0
  90. package/dist/cjs/gridview/branchNode.d.ts.map +1 -1
  91. package/dist/cjs/gridview/branchNode.js +37 -10
  92. package/dist/cjs/gridview/branchNode.js.map +1 -1
  93. package/dist/cjs/gridview/gridview.d.ts +10 -3
  94. package/dist/cjs/gridview/gridview.d.ts.map +1 -1
  95. package/dist/cjs/gridview/gridview.js +80 -0
  96. package/dist/cjs/gridview/gridview.js.map +1 -1
  97. package/dist/cjs/gridview/gridviewComponent.js.map +1 -1
  98. package/dist/cjs/gridview/gridviewPanel.js.map +1 -1
  99. package/dist/cjs/gridview/leafNode.d.ts.map +1 -1
  100. package/dist/cjs/gridview/leafNode.js +1 -2
  101. package/dist/cjs/gridview/leafNode.js.map +1 -1
  102. package/dist/cjs/index.d.ts +2 -1
  103. package/dist/cjs/index.d.ts.map +1 -1
  104. package/dist/cjs/index.js.map +1 -1
  105. package/dist/cjs/lifecycle.d.ts +1 -0
  106. package/dist/cjs/lifecycle.d.ts.map +1 -1
  107. package/dist/cjs/lifecycle.js +8 -0
  108. package/dist/cjs/lifecycle.js.map +1 -1
  109. package/dist/cjs/math.js.map +1 -1
  110. package/dist/cjs/overlayRenderContainer.d.ts +19 -0
  111. package/dist/cjs/overlayRenderContainer.d.ts.map +1 -0
  112. package/dist/cjs/overlayRenderContainer.js +170 -0
  113. package/dist/cjs/overlayRenderContainer.js.map +1 -0
  114. package/dist/cjs/panel/componentFactory.js.map +1 -1
  115. package/dist/cjs/paneview/defaultPaneviewHeader.js.map +1 -1
  116. package/dist/cjs/paneview/draggablePaneviewPanel.js.map +1 -1
  117. package/dist/cjs/paneview/paneview.js.map +1 -1
  118. package/dist/cjs/paneview/paneviewComponent.js.map +1 -1
  119. package/dist/cjs/paneview/paneviewPanel.js.map +1 -1
  120. package/dist/cjs/popoutWindow.d.ts +18 -0
  121. package/dist/cjs/popoutWindow.d.ts.map +1 -0
  122. package/dist/cjs/popoutWindow.js +130 -0
  123. package/dist/cjs/popoutWindow.js.map +1 -0
  124. package/dist/cjs/resizable.js +1 -1
  125. package/dist/cjs/resizable.js.map +1 -1
  126. package/dist/cjs/splitview/splitview.d.ts +5 -4
  127. package/dist/cjs/splitview/splitview.d.ts.map +1 -1
  128. package/dist/cjs/splitview/splitview.js +31 -8
  129. package/dist/cjs/splitview/splitview.js.map +1 -1
  130. package/dist/cjs/splitview/splitviewComponent.js.map +1 -1
  131. package/dist/cjs/splitview/splitviewPanel.js.map +1 -1
  132. package/dist/cjs/splitview/viewItem.js.map +1 -1
  133. package/dist/cjs/types.d.ts +6 -0
  134. package/dist/cjs/types.d.ts.map +1 -1
  135. package/dist/dockview-core.amd.js +896 -170
  136. package/dist/dockview-core.amd.js.map +1 -1
  137. package/dist/dockview-core.amd.min.js +2 -2
  138. package/dist/dockview-core.amd.min.js.map +1 -1
  139. package/dist/dockview-core.amd.min.noStyle.js +2 -2
  140. package/dist/dockview-core.amd.min.noStyle.js.map +1 -1
  141. package/dist/dockview-core.amd.noStyle.js +895 -169
  142. package/dist/dockview-core.amd.noStyle.js.map +1 -1
  143. package/dist/dockview-core.cjs.js +896 -170
  144. package/dist/dockview-core.cjs.js.map +1 -1
  145. package/dist/dockview-core.esm.js +896 -170
  146. package/dist/dockview-core.esm.js.map +1 -1
  147. package/dist/dockview-core.esm.min.js +2 -2
  148. package/dist/dockview-core.esm.min.js.map +1 -1
  149. package/dist/dockview-core.js +896 -170
  150. package/dist/dockview-core.js.map +1 -1
  151. package/dist/dockview-core.min.js +2 -2
  152. package/dist/dockview-core.min.js.map +1 -1
  153. package/dist/dockview-core.min.noStyle.js +2 -2
  154. package/dist/dockview-core.min.noStyle.js.map +1 -1
  155. package/dist/dockview-core.noStyle.js +895 -169
  156. package/dist/dockview-core.noStyle.js.map +1 -1
  157. package/dist/esm/api/component.api.d.ts +12 -0
  158. package/dist/esm/api/component.api.d.ts.map +1 -1
  159. package/dist/esm/api/component.api.js +18 -0
  160. package/dist/esm/api/component.api.js.map +1 -1
  161. package/dist/esm/api/dockviewGroupPanelApi.d.ts +15 -8
  162. package/dist/esm/api/dockviewGroupPanelApi.d.ts.map +1 -1
  163. package/dist/esm/api/dockviewGroupPanelApi.js +39 -9
  164. package/dist/esm/api/dockviewGroupPanelApi.js.map +1 -1
  165. package/dist/esm/api/dockviewPanelApi.d.ts +19 -2
  166. package/dist/esm/api/dockviewPanelApi.d.ts.map +1 -1
  167. package/dist/esm/api/dockviewPanelApi.js +19 -3
  168. package/dist/esm/api/dockviewPanelApi.js.map +1 -1
  169. package/dist/esm/api/gridviewPanelApi.js.map +1 -1
  170. package/dist/esm/array.js.map +1 -1
  171. package/dist/esm/constants.d.ts +6 -0
  172. package/dist/esm/constants.d.ts.map +1 -0
  173. package/dist/esm/constants.js +3 -0
  174. package/dist/esm/constants.js.map +1 -0
  175. package/dist/esm/dnd/abstractDragHandler.js.map +1 -1
  176. package/dist/esm/dnd/dataTransfer.js.map +1 -1
  177. package/dist/esm/dnd/dnd.d.ts +5 -0
  178. package/dist/esm/dnd/dnd.d.ts.map +1 -1
  179. package/dist/esm/dnd/dnd.js +28 -13
  180. package/dist/esm/dnd/dnd.js.map +1 -1
  181. package/dist/esm/dnd/droptarget.d.ts +2 -0
  182. package/dist/esm/dnd/droptarget.d.ts.map +1 -1
  183. package/dist/esm/dnd/droptarget.js +3 -2
  184. package/dist/esm/dnd/droptarget.js.map +1 -1
  185. package/dist/esm/dnd/groupDragHandler.js +1 -1
  186. package/dist/esm/dnd/groupDragHandler.js.map +1 -1
  187. package/dist/esm/dnd/overlay.d.ts +4 -17
  188. package/dist/esm/dnd/overlay.d.ts.map +1 -1
  189. package/dist/esm/dnd/overlay.js.map +1 -1
  190. package/dist/esm/dockview/components/panel/content.d.ts +14 -1
  191. package/dist/esm/dockview/components/panel/content.d.ts.map +1 -1
  192. package/dist/esm/dockview/components/panel/content.js +84 -26
  193. package/dist/esm/dockview/components/panel/content.js.map +1 -1
  194. package/dist/esm/dockview/components/tab/defaultTab.js.map +1 -1
  195. package/dist/esm/dockview/components/tab/tab.js.map +1 -1
  196. package/dist/esm/dockview/components/titlebar/tabsContainer.js +2 -2
  197. package/dist/esm/dockview/components/titlebar/tabsContainer.js.map +1 -1
  198. package/dist/esm/dockview/components/titlebar/voidContainer.js.map +1 -1
  199. package/dist/esm/dockview/components/watermark/watermark.js.map +1 -1
  200. package/dist/esm/dockview/deserializer.d.ts +2 -2
  201. package/dist/esm/dockview/deserializer.d.ts.map +1 -1
  202. package/dist/esm/dockview/deserializer.js +6 -4
  203. package/dist/esm/dockview/deserializer.js.map +1 -1
  204. package/dist/esm/dockview/dockviewComponent.d.ts +21 -9
  205. package/dist/esm/dockview/dockviewComponent.d.ts.map +1 -1
  206. package/dist/esm/dockview/dockviewComponent.js +188 -42
  207. package/dist/esm/dockview/dockviewComponent.js.map +1 -1
  208. package/dist/esm/dockview/dockviewGroupPanel.d.ts.map +1 -1
  209. package/dist/esm/dockview/dockviewGroupPanel.js +4 -2
  210. package/dist/esm/dockview/dockviewGroupPanel.js.map +1 -1
  211. package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +5 -4
  212. package/dist/esm/dockview/dockviewGroupPanelModel.d.ts.map +1 -1
  213. package/dist/esm/dockview/dockviewGroupPanelModel.js +39 -45
  214. package/dist/esm/dockview/dockviewGroupPanelModel.js.map +1 -1
  215. package/dist/esm/dockview/dockviewPanel.d.ts +8 -1
  216. package/dist/esm/dockview/dockviewPanel.d.ts.map +1 -1
  217. package/dist/esm/dockview/dockviewPanel.js +19 -1
  218. package/dist/esm/dockview/dockviewPanel.js.map +1 -1
  219. package/dist/esm/dockview/dockviewPanelModel.js.map +1 -1
  220. package/dist/esm/dockview/dockviewPopoutGroupPanel.d.ts +16 -0
  221. package/dist/esm/dockview/dockviewPopoutGroupPanel.d.ts.map +1 -0
  222. package/dist/esm/dockview/dockviewPopoutGroupPanel.js +28 -0
  223. package/dist/esm/dockview/dockviewPopoutGroupPanel.js.map +1 -0
  224. package/dist/esm/dockview/options.d.ts +5 -0
  225. package/dist/esm/dockview/options.d.ts.map +1 -1
  226. package/dist/esm/dockview/options.js.map +1 -1
  227. package/dist/esm/dockview/types.d.ts +2 -0
  228. package/dist/esm/dockview/types.d.ts.map +1 -1
  229. package/dist/esm/dockview/types.js.map +1 -1
  230. package/dist/esm/dom.d.ts +12 -0
  231. package/dist/esm/dom.d.ts.map +1 -1
  232. package/dist/esm/dom.js +55 -0
  233. package/dist/esm/dom.js.map +1 -1
  234. package/dist/esm/events.js.map +1 -1
  235. package/dist/esm/gridview/baseComponentGridview.d.ts +10 -0
  236. package/dist/esm/gridview/baseComponentGridview.d.ts.map +1 -1
  237. package/dist/esm/gridview/baseComponentGridview.js +15 -0
  238. package/dist/esm/gridview/baseComponentGridview.js.map +1 -1
  239. package/dist/esm/gridview/basePanelView.js.map +1 -1
  240. package/dist/esm/gridview/branchNode.d.ts +2 -0
  241. package/dist/esm/gridview/branchNode.d.ts.map +1 -1
  242. package/dist/esm/gridview/branchNode.js +26 -5
  243. package/dist/esm/gridview/branchNode.js.map +1 -1
  244. package/dist/esm/gridview/gridview.d.ts +10 -3
  245. package/dist/esm/gridview/gridview.d.ts.map +1 -1
  246. package/dist/esm/gridview/gridview.js +80 -0
  247. package/dist/esm/gridview/gridview.js.map +1 -1
  248. package/dist/esm/gridview/gridviewComponent.js.map +1 -1
  249. package/dist/esm/gridview/gridviewPanel.js.map +1 -1
  250. package/dist/esm/gridview/leafNode.d.ts.map +1 -1
  251. package/dist/esm/gridview/leafNode.js +0 -1
  252. package/dist/esm/gridview/leafNode.js.map +1 -1
  253. package/dist/esm/index.d.ts +2 -1
  254. package/dist/esm/index.d.ts.map +1 -1
  255. package/dist/esm/index.js.map +1 -1
  256. package/dist/esm/lifecycle.d.ts +1 -0
  257. package/dist/esm/lifecycle.d.ts.map +1 -1
  258. package/dist/esm/lifecycle.js +8 -0
  259. package/dist/esm/lifecycle.js.map +1 -1
  260. package/dist/esm/math.js.map +1 -1
  261. package/dist/esm/overlayRenderContainer.d.ts +19 -0
  262. package/dist/esm/overlayRenderContainer.d.ts.map +1 -0
  263. package/dist/esm/overlayRenderContainer.js +125 -0
  264. package/dist/esm/overlayRenderContainer.js.map +1 -0
  265. package/dist/esm/panel/componentFactory.js.map +1 -1
  266. package/dist/esm/paneview/defaultPaneviewHeader.js.map +1 -1
  267. package/dist/esm/paneview/draggablePaneviewPanel.js.map +1 -1
  268. package/dist/esm/paneview/paneview.js.map +1 -1
  269. package/dist/esm/paneview/paneviewComponent.js.map +1 -1
  270. package/dist/esm/paneview/paneviewPanel.js.map +1 -1
  271. package/dist/esm/popoutWindow.d.ts +18 -0
  272. package/dist/esm/popoutWindow.d.ts.map +1 -0
  273. package/dist/esm/popoutWindow.js +88 -0
  274. package/dist/esm/popoutWindow.js.map +1 -0
  275. package/dist/esm/resizable.js +2 -2
  276. package/dist/esm/resizable.js.map +1 -1
  277. package/dist/esm/splitview/splitview.d.ts +5 -4
  278. package/dist/esm/splitview/splitview.d.ts.map +1 -1
  279. package/dist/esm/splitview/splitview.js +25 -8
  280. package/dist/esm/splitview/splitview.js.map +1 -1
  281. package/dist/esm/splitview/splitviewComponent.js.map +1 -1
  282. package/dist/esm/splitview/splitviewPanel.js.map +1 -1
  283. package/dist/esm/splitview/viewItem.js.map +1 -1
  284. package/dist/esm/types.d.ts +6 -0
  285. package/dist/esm/types.d.ts.map +1 -1
  286. package/dist/styles/dockview.css +33 -2
  287. package/package.json +1 -1
@@ -10,8 +10,9 @@ import { Orientation } from '../splitview/splitview';
10
10
  import { GroupOptions, GroupPanelViewState, GroupviewDropEvent } from './dockviewGroupPanelModel';
11
11
  import { DockviewGroupPanel } from './dockviewGroupPanel';
12
12
  import { Parameters } from '../panel/types';
13
- import { DockviewFloatingGroupPanel, IDockviewFloatingGroupPanel } from './dockviewFloatingGroupPanel';
14
13
  import { GroupDragEvent, TabDragEvent } from './components/titlebar/tabsContainer';
14
+ import { Box } from '../types';
15
+ import { DockviewPanelRenderer, OverlayRenderContainer } from '../overlayRenderContainer';
15
16
  export interface PanelReference {
16
17
  update: (event: {
17
18
  params: {
@@ -22,12 +23,11 @@ export interface PanelReference {
22
23
  }
23
24
  export interface SerializedFloatingGroup {
24
25
  data: GroupPanelViewState;
25
- position: {
26
- height: number;
27
- width: number;
28
- left: number;
29
- top: number;
30
- };
26
+ position: Box;
27
+ }
28
+ export interface SerializedPopoutGroup {
29
+ data: GroupPanelViewState;
30
+ position: Box | null;
31
31
  }
32
32
  export interface SerializedDockview {
33
33
  grid: {
@@ -39,6 +39,7 @@ export interface SerializedDockview {
39
39
  panels: Record<string, GroupviewPanelState>;
40
40
  activeGroup?: string;
41
41
  floatingGroups?: SerializedFloatingGroup[];
42
+ popoutGroups?: SerializedPopoutGroup[];
42
43
  }
43
44
  export type DockviewComponentUpdateOptions = Pick<DockviewComponentOptions, 'orientation' | 'components' | 'frameworkComponents' | 'tabComponents' | 'frameworkTabComponents' | 'showDndOverlay' | 'watermarkFrameworkComponent' | 'defaultTabComponent' | 'createLeftHeaderActionsElement' | 'createRightHeaderActionsElement' | 'createPrefixHeaderActionsElement' | 'disableFloatingGroups' | 'floatingGroupBounds'>;
44
45
  export interface DockviewDropEvent extends GroupviewDropEvent {
@@ -49,7 +50,6 @@ export interface IDockviewComponent extends IBaseGrid<DockviewGroupPanel> {
49
50
  readonly activePanel: IDockviewPanel | undefined;
50
51
  readonly totalPanels: number;
51
52
  readonly panels: IDockviewPanel[];
52
- readonly floatingGroups: IDockviewFloatingGroupPanel[];
53
53
  readonly onDidDrop: Event<DockviewDropEvent>;
54
54
  readonly orientation: Orientation;
55
55
  updateOptions(options: DockviewComponentUpdateOptions): void;
@@ -79,6 +79,10 @@ export interface IDockviewComponent extends IBaseGrid<DockviewGroupPanel> {
79
79
  x: number;
80
80
  y: number;
81
81
  }): void;
82
+ addPopoutGroup(item: IDockviewPanel | DockviewGroupPanel, options?: {
83
+ position?: Box;
84
+ popoutUrl?: string;
85
+ }): void;
82
86
  }
83
87
  export declare class DockviewComponent extends BaseGrid<DockviewGroupPanel> implements IDockviewComponent {
84
88
  private readonly nextGroupId;
@@ -86,6 +90,7 @@ export declare class DockviewComponent extends BaseGrid<DockviewGroupPanel> impl
86
90
  private readonly _api;
87
91
  private _options;
88
92
  private watermark;
93
+ readonly overlayRenderContainer: OverlayRenderContainer;
89
94
  private readonly _onWillDragPanel;
90
95
  readonly onWillDragPanel: Event<TabDragEvent>;
91
96
  private readonly _onWillDragGroup;
@@ -100,13 +105,20 @@ export declare class DockviewComponent extends BaseGrid<DockviewGroupPanel> impl
100
105
  readonly onDidLayoutFromJSON: Event<void>;
101
106
  private readonly _onDidActivePanelChange;
102
107
  readonly onDidActivePanelChange: Event<IDockviewPanel | undefined>;
103
- readonly floatingGroups: DockviewFloatingGroupPanel[];
108
+ private readonly _floatingGroups;
109
+ private readonly _popoutGroups;
104
110
  get orientation(): Orientation;
105
111
  get totalPanels(): number;
106
112
  get panels(): IDockviewPanel[];
107
113
  get options(): DockviewComponentOptions;
108
114
  get activePanel(): IDockviewPanel | undefined;
115
+ get renderer(): DockviewPanelRenderer;
109
116
  constructor(options: DockviewComponentOptions);
117
+ addPopoutGroup(item: DockviewPanel | DockviewGroupPanel, options?: {
118
+ skipRemoveGroup?: boolean;
119
+ position?: Box;
120
+ popoutUrl?: string;
121
+ }): void;
110
122
  addFloatingGroup(item: DockviewPanel | DockviewGroupPanel, coord?: {
111
123
  x?: number;
112
124
  y?: number;
@@ -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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"}
@@ -2,7 +2,7 @@ import { getRelativeLocation, getGridLocation, } from '../gridview/gridview';
2
2
  import { directionToPosition, Droptarget } from '../dnd/droptarget';
3
3
  import { tail, sequenceEquals, remove } from '../array';
4
4
  import { DockviewPanel } from './dockviewPanel';
5
- import { CompositeDisposable } from '../lifecycle';
5
+ import { CompositeDisposable, Disposable } from '../lifecycle';
6
6
  import { Event, Emitter } from '../events';
7
7
  import { Watermark } from './components/watermark/watermark';
8
8
  import { DockviewDropTargets, } from './types';
@@ -18,8 +18,29 @@ import { DockviewPanelModel } from './dockviewPanelModel';
18
18
  import { getPanelData } from '../dnd/dataTransfer';
19
19
  import { Overlay } from '../dnd/overlay';
20
20
  import { toggleClass, watchElementResize } from '../dom';
21
- import { DockviewFloatingGroupPanel, } from './dockviewFloatingGroupPanel';
22
- const DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE = 100;
21
+ import { DockviewFloatingGroupPanel } from './dockviewFloatingGroupPanel';
22
+ import { DockviewPopoutGroupPanel } from './dockviewPopoutGroupPanel';
23
+ import { DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE, DEFAULT_FLOATING_GROUP_POSITION, } from '../constants';
24
+ import { OverlayRenderContainer, } from '../overlayRenderContainer';
25
+ function getTheme(element) {
26
+ function toClassList(element) {
27
+ const list = [];
28
+ for (let i = 0; i < element.classList.length; i++) {
29
+ list.push(element.classList.item(i));
30
+ }
31
+ return list;
32
+ }
33
+ let theme = undefined;
34
+ let parent = element;
35
+ while (parent !== null) {
36
+ theme = toClassList(parent).find((cls) => cls.startsWith('dockview-theme-'));
37
+ if (typeof theme === 'string') {
38
+ break;
39
+ }
40
+ parent = parent.parentElement;
41
+ }
42
+ return theme;
43
+ }
23
44
  function typeValidate3(data, path) {
24
45
  if (typeof data.id !== 'string') {
25
46
  throw new Error(`${path}.id must be a string`);
@@ -100,6 +121,10 @@ export class DockviewComponent extends BaseGrid {
100
121
  }
101
122
  return activeGroup.activePanel;
102
123
  }
124
+ get renderer() {
125
+ var _a;
126
+ return (_a = this.options.defaultRenderer) !== null && _a !== void 0 ? _a : 'onlyWhenVisibile';
127
+ }
103
128
  constructor(options) {
104
129
  var _a;
105
130
  super({
@@ -126,12 +151,27 @@ export class DockviewComponent extends BaseGrid {
126
151
  this.onDidLayoutFromJSON = this._onDidLayoutFromJSON.event;
127
152
  this._onDidActivePanelChange = new Emitter();
128
153
  this.onDidActivePanelChange = this._onDidActivePanelChange.event;
129
- this.floatingGroups = [];
154
+ this._floatingGroups = [];
155
+ this._popoutGroups = [];
156
+ const gready = document.createElement('div');
157
+ gready.className = 'dv-overlay-render-container';
158
+ this.gridview.element.appendChild(gready);
159
+ this.overlayRenderContainer = new OverlayRenderContainer(gready);
130
160
  toggleClass(this.gridview.element, 'dv-dockview', true);
131
- this.addDisposables(this._onWillDragPanel, this._onWillDragGroup, this._onDidActivePanelChange, this._onDidAddPanel, this._onDidRemovePanel, this._onDidLayoutFromJSON, this._onDidDrop, Event.any(this.onDidAddGroup, this.onDidRemoveGroup)(() => {
161
+ toggleClass(this.element, 'dv-debug', !!options.debug);
162
+ this.addDisposables(this.overlayRenderContainer, this._onWillDragPanel, this._onWillDragGroup, this._onDidActivePanelChange, this._onDidAddPanel, this._onDidRemovePanel, this._onDidLayoutFromJSON, this._onDidDrop, Event.any(this.onDidAddGroup, this.onDidRemoveGroup)(() => {
132
163
  this.updateWatermark();
133
164
  }), Event.any(this.onDidAddPanel, this.onDidRemovePanel, this.onDidActivePanelChange)(() => {
134
165
  this._bufferOnDidLayoutChange.fire();
166
+ }), Disposable.from(() => {
167
+ // iterate over a copy of the array since .dispose() mutates the original array
168
+ for (const group of [...this._floatingGroups]) {
169
+ group.dispose();
170
+ }
171
+ // iterate over a copy of the array since .dispose() mutates the original array
172
+ for (const group of [...this._popoutGroups]) {
173
+ group.dispose();
174
+ }
135
175
  }));
136
176
  this._options = options;
137
177
  if (!this.options.components) {
@@ -201,6 +241,55 @@ export class DockviewComponent extends BaseGrid {
201
241
  this._api = new DockviewApi(this);
202
242
  this.updateWatermark();
203
243
  }
244
+ addPopoutGroup(item, options) {
245
+ var _a;
246
+ let group;
247
+ let box = options === null || options === void 0 ? void 0 : options.position;
248
+ if (item instanceof DockviewPanel) {
249
+ group = this.createGroup();
250
+ this.removePanel(item, {
251
+ removeEmptyGroup: true,
252
+ skipDispose: true,
253
+ });
254
+ group.model.openPanel(item);
255
+ if (!box) {
256
+ box = this.element.getBoundingClientRect();
257
+ }
258
+ }
259
+ else {
260
+ group = item;
261
+ if (!box) {
262
+ box = group.element.getBoundingClientRect();
263
+ }
264
+ const skip = typeof (options === null || options === void 0 ? void 0 : options.skipRemoveGroup) === 'boolean' &&
265
+ options.skipRemoveGroup;
266
+ if (!skip) {
267
+ this.doRemoveGroup(item, { skipDispose: true });
268
+ }
269
+ }
270
+ const theme = getTheme(this.gridview.element);
271
+ const popoutWindow = new DockviewPopoutGroupPanel(`${this.id}-${group.id}`, // globally unique within dockview
272
+ group, {
273
+ className: theme !== null && theme !== void 0 ? theme : '',
274
+ popoutUrl: (_a = options === null || options === void 0 ? void 0 : options.popoutUrl) !== null && _a !== void 0 ? _a : '/popout.html',
275
+ box: {
276
+ left: window.screenX + box.left,
277
+ top: window.screenY + box.top,
278
+ width: box.width,
279
+ height: box.height,
280
+ },
281
+ });
282
+ popoutWindow.addDisposables({
283
+ dispose: () => {
284
+ remove(this._popoutGroups, popoutWindow);
285
+ this.updateWatermark();
286
+ },
287
+ }, popoutWindow.window.onDidClose(() => {
288
+ this.doAddGroup(group, [0]);
289
+ }));
290
+ this._popoutGroups.push(popoutWindow);
291
+ this.updateWatermark();
292
+ }
204
293
  addFloatingGroup(item, coord, options) {
205
294
  var _a, _b, _c, _d, _e, _f;
206
295
  let group;
@@ -220,9 +309,13 @@ export class DockviewComponent extends BaseGrid {
220
309
  this.doRemoveGroup(item, { skipDispose: true });
221
310
  }
222
311
  }
223
- group.model.isFloating = true;
224
- const overlayLeft = typeof (coord === null || coord === void 0 ? void 0 : coord.x) === 'number' ? Math.max(coord.x, 0) : 100;
225
- const overlayTop = typeof (coord === null || coord === void 0 ? void 0 : coord.y) === 'number' ? Math.max(coord.y, 0) : 100;
312
+ group.model.location = 'floating';
313
+ const overlayLeft = typeof (coord === null || coord === void 0 ? void 0 : coord.x) === 'number'
314
+ ? Math.max(coord.x, 0)
315
+ : DEFAULT_FLOATING_GROUP_POSITION.left;
316
+ const overlayTop = typeof (coord === null || coord === void 0 ? void 0 : coord.y) === 'number'
317
+ ? Math.max(coord.y, 0)
318
+ : DEFAULT_FLOATING_GROUP_POSITION.top;
226
319
  const overlay = new Overlay({
227
320
  container: this.gridview.element,
228
321
  content: group.element,
@@ -266,12 +359,12 @@ export class DockviewComponent extends BaseGrid {
266
359
  }), {
267
360
  dispose: () => {
268
361
  disposable.dispose();
269
- group.model.isFloating = false;
270
- remove(this.floatingGroups, floatingGroupPanel);
362
+ group.model.location = 'grid';
363
+ remove(this._floatingGroups, floatingGroupPanel);
271
364
  this.updateWatermark();
272
365
  },
273
366
  });
274
- this.floatingGroups.push(floatingGroupPanel);
367
+ this._floatingGroups.push(floatingGroupPanel);
275
368
  this.updateWatermark();
276
369
  }
277
370
  orthogonalize(position) {
@@ -318,7 +411,7 @@ export class DockviewComponent extends BaseGrid {
318
411
  this.gridview.orientation = options.orientation;
319
412
  }
320
413
  if (hasFloatingGroupOptionsChanged) {
321
- for (const group of this.floatingGroups) {
414
+ for (const group of this._floatingGroups) {
322
415
  switch (this.options.floatingGroupBounds) {
323
416
  case 'boundedWithinViewport':
324
417
  group.overlay.minimumInViewportHeight = undefined;
@@ -343,8 +436,8 @@ export class DockviewComponent extends BaseGrid {
343
436
  }
344
437
  layout(width, height, forceResize) {
345
438
  super.layout(width, height, forceResize);
346
- if (this.floatingGroups) {
347
- for (const floating of this.floatingGroups) {
439
+ if (this._floatingGroups) {
440
+ for (const floating of this._floatingGroups) {
348
441
  // ensure floting groups stay within visible boundaries
349
442
  floating.overlay.setBounds();
350
443
  }
@@ -412,10 +505,16 @@ export class DockviewComponent extends BaseGrid {
412
505
  collection[panel.id] = panel.toJSON();
413
506
  return collection;
414
507
  }, {});
415
- const floats = this.floatingGroups.map((floatingGroup) => {
508
+ const floats = this._floatingGroups.map((group) => {
416
509
  return {
417
- data: floatingGroup.group.toJSON(),
418
- position: floatingGroup.overlay.toJSON(),
510
+ data: group.group.toJSON(),
511
+ position: group.overlay.toJSON(),
512
+ };
513
+ });
514
+ const popoutGroups = this._popoutGroups.map((group) => {
515
+ return {
516
+ data: group.group.toJSON(),
517
+ position: group.window.dimensions(),
419
518
  };
420
519
  });
421
520
  const result = {
@@ -426,10 +525,13 @@ export class DockviewComponent extends BaseGrid {
426
525
  if (floats.length > 0) {
427
526
  result.floatingGroups = floats;
428
527
  }
528
+ if (popoutGroups.length > 0) {
529
+ result.popoutGroups = popoutGroups;
530
+ }
429
531
  return result;
430
532
  }
431
533
  fromJSON(data) {
432
- var _a;
534
+ var _a, _b;
433
535
  this.clear();
434
536
  if (typeof data !== 'object' || data === null) {
435
537
  throw new Error('serialized layout must be a non-null object');
@@ -496,7 +598,16 @@ export class DockviewComponent extends BaseGrid {
496
598
  width: position.width,
497
599
  }, { skipRemoveGroup: true, inDragMode: false });
498
600
  }
499
- for (const floatingGroup of this.floatingGroups) {
601
+ const serializedPopoutGroups = (_b = data.popoutGroups) !== null && _b !== void 0 ? _b : [];
602
+ for (const serializedPopoutGroup of serializedPopoutGroups) {
603
+ const { data, position } = serializedPopoutGroup;
604
+ const group = createGroupFromSerializedState(data);
605
+ this.addPopoutGroup(group, {
606
+ skipRemoveGroup: true,
607
+ position: position !== null && position !== void 0 ? position : undefined,
608
+ });
609
+ }
610
+ for (const floatingGroup of this._floatingGroups) {
500
611
  floatingGroup.overlay.setBounds();
501
612
  }
502
613
  if (typeof activeGroup === 'string') {
@@ -528,7 +639,7 @@ export class DockviewComponent extends BaseGrid {
528
639
  this._onDidRemoveGroup.fire(group);
529
640
  }
530
641
  // iterate over a reassigned array since original array will be modified
531
- for (const floatingGroup of [...this.floatingGroups]) {
642
+ for (const floatingGroup of [...this._floatingGroups]) {
532
643
  floatingGroup.dispose();
533
644
  }
534
645
  // fires clean-up events and clears the underlying HTML gridview.
@@ -620,7 +731,8 @@ export class DockviewComponent extends BaseGrid {
620
731
  group.model.openPanel(panel);
621
732
  this.doSetGroupAndPanelActive(group);
622
733
  }
623
- else if (referenceGroup.api.isFloating || target === 'center') {
734
+ else if (referenceGroup.api.location === 'floating' ||
735
+ target === 'center') {
624
736
  panel = this.createPanel(options, referenceGroup);
625
737
  referenceGroup.model.openPanel(panel);
626
738
  }
@@ -664,6 +776,7 @@ export class DockviewComponent extends BaseGrid {
664
776
  }
665
777
  group.model.removePanel(panel);
666
778
  if (!options.skipDispose) {
779
+ this.overlayRenderContainer.detatch(panel);
667
780
  panel.dispose();
668
781
  }
669
782
  if (group.size === 0 && options.removeEmptyGroup) {
@@ -680,7 +793,7 @@ export class DockviewComponent extends BaseGrid {
680
793
  }
681
794
  updateWatermark() {
682
795
  var _a, _b;
683
- if (this.groups.filter((x) => !x.api.isFloating).length === 0) {
796
+ if (this.groups.filter((x) => x.api.location === 'grid').length === 0) {
684
797
  if (!this.watermark) {
685
798
  this.watermark = this.createWatermarkComponent();
686
799
  this.watermark.init({
@@ -755,19 +868,40 @@ export class DockviewComponent extends BaseGrid {
755
868
  }
756
869
  }
757
870
  doRemoveGroup(group, options) {
758
- const floatingGroup = this.floatingGroups.find((_) => _.group === group);
759
- if (floatingGroup) {
760
- if (!(options === null || options === void 0 ? void 0 : options.skipDispose)) {
761
- floatingGroup.group.dispose();
762
- this._groups.delete(group.id);
763
- this._onDidRemoveGroup.fire(group);
871
+ if (group.api.location === 'floating') {
872
+ const floatingGroup = this._floatingGroups.find((_) => _.group === group);
873
+ if (floatingGroup) {
874
+ if (!(options === null || options === void 0 ? void 0 : options.skipDispose)) {
875
+ floatingGroup.group.dispose();
876
+ this._groups.delete(group.id);
877
+ this._onDidRemoveGroup.fire(group);
878
+ }
879
+ remove(this._floatingGroups, floatingGroup);
880
+ floatingGroup.dispose();
881
+ if (!(options === null || options === void 0 ? void 0 : options.skipActive) && this._activeGroup === group) {
882
+ const groups = Array.from(this._groups.values());
883
+ this.doSetGroupActive(groups.length > 0 ? groups[0].value : undefined);
884
+ }
885
+ return floatingGroup.group;
764
886
  }
765
- floatingGroup.dispose();
766
- if (!(options === null || options === void 0 ? void 0 : options.skipActive) && this._activeGroup === group) {
767
- const groups = Array.from(this._groups.values());
768
- this.doSetGroupActive(groups.length > 0 ? groups[0].value : undefined);
887
+ throw new Error('failed to find floating group');
888
+ }
889
+ if (group.api.location === 'popout') {
890
+ const selectedGroup = this._popoutGroups.find((_) => _.group === group);
891
+ if (selectedGroup) {
892
+ if (!(options === null || options === void 0 ? void 0 : options.skipDispose)) {
893
+ selectedGroup.group.dispose();
894
+ this._groups.delete(group.id);
895
+ this._onDidRemoveGroup.fire(group);
896
+ }
897
+ selectedGroup.dispose();
898
+ if (!(options === null || options === void 0 ? void 0 : options.skipActive) && this._activeGroup === group) {
899
+ const groups = Array.from(this._groups.values());
900
+ this.doSetGroupActive(groups.length > 0 ? groups[0].value : undefined);
901
+ }
902
+ return selectedGroup.group;
769
903
  }
770
- return floatingGroup.group;
904
+ throw new Error('failed to find popout group');
771
905
  }
772
906
  return super.doRemoveGroup(group, options);
773
907
  }
@@ -799,8 +933,7 @@ export class DockviewComponent extends BaseGrid {
799
933
  const targetLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, destinationTarget);
800
934
  if (sourceGroup && sourceGroup.size < 2) {
801
935
  const [targetParentLocation, to] = tail(targetLocation);
802
- const isFloating = this.floatingGroups.find((x) => x.group === sourceGroup);
803
- if (!isFloating) {
936
+ if (sourceGroup.api.location === 'grid') {
804
937
  const sourceLocation = getGridLocation(sourceGroup.element);
805
938
  const [sourceParentLocation, from] = tail(sourceLocation);
806
939
  if (sequenceEquals(sourceParentLocation, targetParentLocation)) {
@@ -846,12 +979,25 @@ export class DockviewComponent extends BaseGrid {
846
979
  }
847
980
  }
848
981
  else {
849
- const floatingGroup = this.floatingGroups.find((x) => x.group === sourceGroup);
850
- if (floatingGroup) {
851
- floatingGroup.dispose();
852
- }
853
- else {
854
- this.gridview.removeView(getGridLocation(sourceGroup.element));
982
+ switch (sourceGroup.api.location) {
983
+ case 'grid':
984
+ this.gridview.removeView(getGridLocation(sourceGroup.element));
985
+ break;
986
+ case 'floating': {
987
+ const selectedFloatingGroup = this._floatingGroups.find((x) => x.group === sourceGroup);
988
+ if (!selectedFloatingGroup) {
989
+ throw new Error('failed to find floating group');
990
+ }
991
+ selectedFloatingGroup.dispose();
992
+ break;
993
+ }
994
+ case 'popout': {
995
+ const selectedPopoutGroup = this._popoutGroups.find((x) => x.group === sourceGroup);
996
+ if (!selectedPopoutGroup) {
997
+ throw new Error('failed to find popout group');
998
+ }
999
+ selectedPopoutGroup.dispose();
1000
+ }
855
1001
  }
856
1002
  const referenceLocation = getGridLocation(referenceGroup.element);
857
1003
  const dropLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, target);
@@ -913,7 +1059,7 @@ export class DockviewComponent extends BaseGrid {
913
1059
  const contentComponent = options.component;
914
1060
  const tabComponent = (_a = options.tabComponent) !== null && _a !== void 0 ? _a : this.options.defaultTabComponent;
915
1061
  const view = new DockviewPanelModel(this, options.id, contentComponent, tabComponent);
916
- const panel = new DockviewPanel(options.id, this, this._api, group, view);
1062
+ const panel = new DockviewPanel(options.id, this, this._api, group, view, { renderer: options.renderer });
917
1063
  panel.init({
918
1064
  title: (_b = options.title) !== null && _b !== void 0 ? _b : options.id,
919
1065
  params: (_c = options === null || options === void 0 ? void 0 : options.params) !== null && _c !== void 0 ? _c : {},