dockview-core 1.9.2 → 1.10.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 (536) hide show
  1. package/dist/cjs/api/component.api.d.ts +35 -8
  2. package/dist/cjs/api/component.api.js +37 -7
  3. package/dist/cjs/api/dockviewGroupPanelApi.d.ts +7 -1
  4. package/dist/cjs/api/dockviewGroupPanelApi.js +22 -3
  5. package/dist/cjs/api/dockviewPanelApi.d.ts +24 -7
  6. package/dist/cjs/api/dockviewPanelApi.js +60 -14
  7. package/dist/cjs/api/gridviewPanelApi.d.ts +0 -1
  8. package/dist/cjs/api/gridviewPanelApi.js +1 -4
  9. package/dist/cjs/api/panelApi.d.ts +10 -8
  10. package/dist/cjs/api/panelApi.js +19 -29
  11. package/dist/cjs/api/paneviewPanelApi.d.ts +0 -1
  12. package/dist/cjs/api/paneviewPanelApi.js +0 -1
  13. package/dist/cjs/api/splitviewPanelApi.d.ts +0 -1
  14. package/dist/cjs/api/splitviewPanelApi.js +0 -1
  15. package/dist/cjs/array.d.ts +0 -1
  16. package/dist/cjs/array.js +0 -1
  17. package/dist/cjs/constants.d.ts +0 -1
  18. package/dist/cjs/constants.js +0 -1
  19. package/dist/cjs/dnd/abstractDragHandler.d.ts +0 -1
  20. package/dist/cjs/dnd/abstractDragHandler.js +0 -1
  21. package/dist/cjs/dnd/dataTransfer.d.ts +0 -1
  22. package/dist/cjs/dnd/dataTransfer.js +0 -1
  23. package/dist/cjs/dnd/dnd.d.ts +0 -1
  24. package/dist/cjs/dnd/dnd.js +0 -1
  25. package/dist/cjs/dnd/droptarget.d.ts +20 -9
  26. package/dist/cjs/dnd/droptarget.js +71 -14
  27. package/dist/cjs/dnd/ghost.d.ts +0 -1
  28. package/dist/cjs/dnd/ghost.js +0 -1
  29. package/dist/cjs/dnd/groupDragHandler.d.ts +0 -1
  30. package/dist/cjs/dnd/groupDragHandler.js +1 -2
  31. package/dist/cjs/dnd/overlay.d.ts +0 -1
  32. package/dist/cjs/dnd/overlay.js +0 -1
  33. package/dist/cjs/dockview/components/panel/content.d.ts +0 -1
  34. package/dist/cjs/dockview/components/panel/content.js +6 -7
  35. package/dist/cjs/dockview/components/tab/defaultTab.d.ts +0 -1
  36. package/dist/cjs/dockview/components/tab/defaultTab.js +0 -1
  37. package/dist/cjs/dockview/components/tab/tab.d.ts +5 -13
  38. package/dist/cjs/dockview/components/tab/tab.js +5 -6
  39. package/dist/cjs/dockview/components/titlebar/tabsContainer.d.ts +17 -14
  40. package/dist/cjs/dockview/components/titlebar/tabsContainer.js +26 -22
  41. package/dist/cjs/dockview/components/titlebar/voidContainer.d.ts +3 -3
  42. package/dist/cjs/dockview/components/titlebar/voidContainer.js +5 -6
  43. package/dist/cjs/dockview/components/watermark/watermark.d.ts +0 -1
  44. package/dist/cjs/dockview/components/watermark/watermark.js +0 -1
  45. package/dist/cjs/dockview/deserializer.d.ts +0 -1
  46. package/dist/cjs/dockview/deserializer.js +0 -1
  47. package/dist/cjs/dockview/dockviewComponent.d.ts +86 -25
  48. package/dist/cjs/dockview/dockviewComponent.js +586 -198
  49. package/dist/cjs/dockview/dockviewFloatingGroupPanel.d.ts +0 -1
  50. package/dist/cjs/dockview/dockviewFloatingGroupPanel.js +0 -1
  51. package/dist/cjs/dockview/dockviewGroupPanel.d.ts +1 -1
  52. package/dist/cjs/dockview/dockviewGroupPanel.js +6 -1
  53. package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +81 -37
  54. package/dist/cjs/dockview/dockviewGroupPanelModel.js +226 -57
  55. package/dist/cjs/dockview/dockviewPanel.d.ts +8 -3
  56. package/dist/cjs/dockview/dockviewPanel.js +39 -12
  57. package/dist/cjs/dockview/dockviewPanelModel.d.ts +1 -4
  58. package/dist/cjs/dockview/dockviewPanelModel.js +2 -22
  59. package/dist/cjs/dockview/options.d.ts +10 -6
  60. package/dist/cjs/dockview/options.js +0 -1
  61. package/dist/cjs/dockview/types.d.ts +0 -11
  62. package/dist/cjs/dockview/types.js +0 -9
  63. package/dist/cjs/dom.d.ts +0 -1
  64. package/dist/cjs/dom.js +0 -1
  65. package/dist/cjs/events.d.ts +10 -1
  66. package/dist/cjs/events.js +25 -2
  67. package/dist/cjs/gridview/baseComponentGridview.d.ts +15 -16
  68. package/dist/cjs/gridview/baseComponentGridview.js +37 -27
  69. package/dist/cjs/gridview/basePanelView.d.ts +0 -1
  70. package/dist/cjs/gridview/basePanelView.js +7 -2
  71. package/dist/cjs/gridview/branchNode.d.ts +3 -2
  72. package/dist/cjs/gridview/branchNode.js +12 -2
  73. package/dist/cjs/gridview/gridview.d.ts +5 -3
  74. package/dist/cjs/gridview/gridview.js +54 -21
  75. package/dist/cjs/gridview/gridviewComponent.d.ts +10 -2
  76. package/dist/cjs/gridview/gridviewComponent.js +14 -1
  77. package/dist/cjs/gridview/gridviewPanel.d.ts +3 -3
  78. package/dist/cjs/gridview/gridviewPanel.js +2 -3
  79. package/dist/cjs/gridview/leafNode.d.ts +0 -1
  80. package/dist/cjs/gridview/leafNode.js +0 -1
  81. package/dist/cjs/gridview/options.d.ts +1 -2
  82. package/dist/cjs/gridview/options.js +0 -1
  83. package/dist/cjs/gridview/types.d.ts +0 -1
  84. package/dist/cjs/gridview/types.js +0 -1
  85. package/dist/cjs/index.d.ts +2 -2
  86. package/dist/cjs/index.js +0 -2
  87. package/dist/cjs/lifecycle.d.ts +3 -4
  88. package/dist/cjs/lifecycle.js +5 -2
  89. package/dist/cjs/math.d.ts +0 -1
  90. package/dist/cjs/math.js +0 -1
  91. package/dist/cjs/overlayRenderContainer.d.ts +1 -1
  92. package/dist/cjs/overlayRenderContainer.js +8 -4
  93. package/dist/cjs/panel/componentFactory.d.ts +0 -1
  94. package/dist/cjs/panel/componentFactory.js +0 -1
  95. package/dist/cjs/panel/types.d.ts +1 -2
  96. package/dist/cjs/panel/types.js +0 -1
  97. package/dist/cjs/paneview/defaultPaneviewHeader.d.ts +0 -1
  98. package/dist/cjs/paneview/defaultPaneviewHeader.js +0 -1
  99. package/dist/cjs/paneview/draggablePaneviewPanel.d.ts +0 -1
  100. package/dist/cjs/paneview/draggablePaneviewPanel.js +0 -1
  101. package/dist/cjs/paneview/options.d.ts +1 -2
  102. package/dist/cjs/paneview/options.js +0 -1
  103. package/dist/cjs/paneview/paneview.d.ts +1 -1
  104. package/dist/cjs/paneview/paneview.js +3 -1
  105. package/dist/cjs/paneview/paneviewComponent.d.ts +2 -1
  106. package/dist/cjs/paneview/paneviewComponent.js +6 -1
  107. package/dist/cjs/paneview/paneviewPanel.d.ts +2 -1
  108. package/dist/cjs/paneview/paneviewPanel.js +5 -2
  109. package/dist/cjs/popoutWindow.d.ts +15 -4
  110. package/dist/cjs/popoutWindow.js +140 -56
  111. package/dist/cjs/resizable.d.ts +1 -2
  112. package/dist/cjs/resizable.js +1 -10
  113. package/dist/cjs/splitview/options.d.ts +3 -7
  114. package/dist/cjs/splitview/options.js +0 -1
  115. package/dist/cjs/splitview/splitview.d.ts +3 -1
  116. package/dist/cjs/splitview/splitview.js +12 -1
  117. package/dist/cjs/splitview/splitviewComponent.d.ts +1 -2
  118. package/dist/cjs/splitview/splitviewComponent.js +5 -6
  119. package/dist/cjs/splitview/splitviewPanel.d.ts +2 -3
  120. package/dist/cjs/splitview/splitviewPanel.js +1 -2
  121. package/dist/cjs/splitview/viewItem.d.ts +0 -1
  122. package/dist/cjs/splitview/viewItem.js +0 -1
  123. package/dist/cjs/svg.d.ts +0 -1
  124. package/dist/cjs/svg.js +0 -1
  125. package/dist/cjs/types.d.ts +0 -1
  126. package/dist/cjs/types.js +0 -1
  127. package/dist/dockview-core.amd.js +1298 -531
  128. package/dist/dockview-core.amd.js.map +1 -1
  129. package/dist/dockview-core.amd.min.js +2 -2
  130. package/dist/dockview-core.amd.min.js.map +1 -1
  131. package/dist/dockview-core.amd.min.noStyle.js +2 -2
  132. package/dist/dockview-core.amd.min.noStyle.js.map +1 -1
  133. package/dist/dockview-core.amd.noStyle.js +1297 -530
  134. package/dist/dockview-core.amd.noStyle.js.map +1 -1
  135. package/dist/dockview-core.cjs.js +1298 -531
  136. package/dist/dockview-core.cjs.js.map +1 -1
  137. package/dist/dockview-core.esm.js +1296 -532
  138. package/dist/dockview-core.esm.js.map +1 -1
  139. package/dist/dockview-core.esm.min.js +2 -2
  140. package/dist/dockview-core.esm.min.js.map +1 -1
  141. package/dist/dockview-core.js +1298 -531
  142. package/dist/dockview-core.js.map +1 -1
  143. package/dist/dockview-core.min.js +2 -2
  144. package/dist/dockview-core.min.js.map +1 -1
  145. package/dist/dockview-core.min.noStyle.js +2 -2
  146. package/dist/dockview-core.min.noStyle.js.map +1 -1
  147. package/dist/dockview-core.noStyle.js +1297 -530
  148. package/dist/dockview-core.noStyle.js.map +1 -1
  149. package/dist/esm/api/component.api.d.ts +35 -8
  150. package/dist/esm/api/component.api.js +29 -7
  151. package/dist/esm/api/dockviewGroupPanelApi.d.ts +7 -1
  152. package/dist/esm/api/dockviewGroupPanelApi.js +22 -3
  153. package/dist/esm/api/dockviewPanelApi.d.ts +24 -7
  154. package/dist/esm/api/dockviewPanelApi.js +56 -14
  155. package/dist/esm/api/gridviewPanelApi.d.ts +0 -1
  156. package/dist/esm/api/gridviewPanelApi.js +1 -4
  157. package/dist/esm/api/panelApi.d.ts +10 -8
  158. package/dist/esm/api/panelApi.js +16 -29
  159. package/dist/esm/api/paneviewPanelApi.d.ts +0 -1
  160. package/dist/esm/api/paneviewPanelApi.js +0 -1
  161. package/dist/esm/api/splitviewPanelApi.d.ts +0 -1
  162. package/dist/esm/api/splitviewPanelApi.js +0 -1
  163. package/dist/esm/array.d.ts +0 -1
  164. package/dist/esm/array.js +0 -1
  165. package/dist/esm/constants.d.ts +0 -1
  166. package/dist/esm/constants.js +0 -1
  167. package/dist/esm/dnd/abstractDragHandler.d.ts +0 -1
  168. package/dist/esm/dnd/abstractDragHandler.js +0 -1
  169. package/dist/esm/dnd/dataTransfer.d.ts +0 -1
  170. package/dist/esm/dnd/dataTransfer.js +0 -1
  171. package/dist/esm/dnd/dnd.d.ts +0 -1
  172. package/dist/esm/dnd/dnd.js +0 -1
  173. package/dist/esm/dnd/droptarget.d.ts +20 -9
  174. package/dist/esm/dnd/droptarget.js +59 -14
  175. package/dist/esm/dnd/ghost.d.ts +0 -1
  176. package/dist/esm/dnd/ghost.js +0 -1
  177. package/dist/esm/dnd/groupDragHandler.d.ts +0 -1
  178. package/dist/esm/dnd/groupDragHandler.js +1 -2
  179. package/dist/esm/dnd/overlay.d.ts +0 -1
  180. package/dist/esm/dnd/overlay.js +0 -1
  181. package/dist/esm/dockview/components/panel/content.d.ts +0 -1
  182. package/dist/esm/dockview/components/panel/content.js +6 -7
  183. package/dist/esm/dockview/components/tab/defaultTab.d.ts +0 -1
  184. package/dist/esm/dockview/components/tab/defaultTab.js +0 -1
  185. package/dist/esm/dockview/components/tab/tab.d.ts +5 -13
  186. package/dist/esm/dockview/components/tab/tab.js +6 -7
  187. package/dist/esm/dockview/components/titlebar/tabsContainer.d.ts +17 -14
  188. package/dist/esm/dockview/components/titlebar/tabsContainer.js +24 -20
  189. package/dist/esm/dockview/components/titlebar/voidContainer.d.ts +3 -3
  190. package/dist/esm/dockview/components/titlebar/voidContainer.js +6 -7
  191. package/dist/esm/dockview/components/watermark/watermark.d.ts +0 -1
  192. package/dist/esm/dockview/components/watermark/watermark.js +0 -1
  193. package/dist/esm/dockview/deserializer.d.ts +0 -1
  194. package/dist/esm/dockview/deserializer.js +0 -1
  195. package/dist/esm/dockview/dockviewComponent.d.ts +86 -25
  196. package/dist/esm/dockview/dockviewComponent.js +529 -163
  197. package/dist/esm/dockview/dockviewFloatingGroupPanel.d.ts +0 -1
  198. package/dist/esm/dockview/dockviewFloatingGroupPanel.js +0 -1
  199. package/dist/esm/dockview/dockviewGroupPanel.d.ts +1 -1
  200. package/dist/esm/dockview/dockviewGroupPanel.js +6 -1
  201. package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +81 -37
  202. package/dist/esm/dockview/dockviewGroupPanelModel.js +169 -53
  203. package/dist/esm/dockview/dockviewPanel.d.ts +8 -3
  204. package/dist/esm/dockview/dockviewPanel.js +39 -12
  205. package/dist/esm/dockview/dockviewPanelModel.d.ts +1 -4
  206. package/dist/esm/dockview/dockviewPanelModel.js +2 -22
  207. package/dist/esm/dockview/options.d.ts +10 -6
  208. package/dist/esm/dockview/options.js +0 -1
  209. package/dist/esm/dockview/types.d.ts +0 -11
  210. package/dist/esm/dockview/types.js +1 -8
  211. package/dist/esm/dom.d.ts +0 -1
  212. package/dist/esm/dom.js +0 -1
  213. package/dist/esm/events.d.ts +10 -1
  214. package/dist/esm/events.js +14 -1
  215. package/dist/esm/gridview/baseComponentGridview.d.ts +15 -16
  216. package/dist/esm/gridview/baseComponentGridview.js +33 -27
  217. package/dist/esm/gridview/basePanelView.d.ts +0 -1
  218. package/dist/esm/gridview/basePanelView.js +7 -2
  219. package/dist/esm/gridview/branchNode.d.ts +3 -2
  220. package/dist/esm/gridview/branchNode.js +8 -2
  221. package/dist/esm/gridview/gridview.d.ts +5 -3
  222. package/dist/esm/gridview/gridview.js +49 -20
  223. package/dist/esm/gridview/gridviewComponent.d.ts +10 -2
  224. package/dist/esm/gridview/gridviewComponent.js +14 -1
  225. package/dist/esm/gridview/gridviewPanel.d.ts +3 -3
  226. package/dist/esm/gridview/gridviewPanel.js +2 -3
  227. package/dist/esm/gridview/leafNode.d.ts +0 -1
  228. package/dist/esm/gridview/leafNode.js +0 -1
  229. package/dist/esm/gridview/options.d.ts +1 -2
  230. package/dist/esm/gridview/options.js +0 -1
  231. package/dist/esm/gridview/types.d.ts +0 -1
  232. package/dist/esm/gridview/types.js +0 -1
  233. package/dist/esm/index.d.ts +2 -2
  234. package/dist/esm/index.js +0 -2
  235. package/dist/esm/lifecycle.d.ts +3 -4
  236. package/dist/esm/lifecycle.js +5 -2
  237. package/dist/esm/math.d.ts +0 -1
  238. package/dist/esm/math.js +0 -1
  239. package/dist/esm/overlayRenderContainer.d.ts +1 -1
  240. package/dist/esm/overlayRenderContainer.js +8 -4
  241. package/dist/esm/panel/componentFactory.d.ts +0 -1
  242. package/dist/esm/panel/componentFactory.js +0 -1
  243. package/dist/esm/panel/types.d.ts +1 -2
  244. package/dist/esm/panel/types.js +0 -1
  245. package/dist/esm/paneview/defaultPaneviewHeader.d.ts +0 -1
  246. package/dist/esm/paneview/defaultPaneviewHeader.js +0 -1
  247. package/dist/esm/paneview/draggablePaneviewPanel.d.ts +0 -1
  248. package/dist/esm/paneview/draggablePaneviewPanel.js +0 -1
  249. package/dist/esm/paneview/options.d.ts +1 -2
  250. package/dist/esm/paneview/options.js +0 -1
  251. package/dist/esm/paneview/paneview.d.ts +1 -1
  252. package/dist/esm/paneview/paneview.js +3 -1
  253. package/dist/esm/paneview/paneviewComponent.d.ts +2 -1
  254. package/dist/esm/paneview/paneviewComponent.js +6 -1
  255. package/dist/esm/paneview/paneviewPanel.d.ts +2 -1
  256. package/dist/esm/paneview/paneviewPanel.js +5 -2
  257. package/dist/esm/popoutWindow.d.ts +15 -4
  258. package/dist/esm/popoutWindow.js +105 -52
  259. package/dist/esm/resizable.d.ts +1 -2
  260. package/dist/esm/resizable.js +1 -10
  261. package/dist/esm/splitview/options.d.ts +3 -7
  262. package/dist/esm/splitview/options.js +0 -1
  263. package/dist/esm/splitview/splitview.d.ts +3 -1
  264. package/dist/esm/splitview/splitview.js +8 -1
  265. package/dist/esm/splitview/splitviewComponent.d.ts +1 -2
  266. package/dist/esm/splitview/splitviewComponent.js +5 -6
  267. package/dist/esm/splitview/splitviewPanel.d.ts +2 -3
  268. package/dist/esm/splitview/splitviewPanel.js +1 -2
  269. package/dist/esm/splitview/viewItem.d.ts +0 -1
  270. package/dist/esm/splitview/viewItem.js +0 -1
  271. package/dist/esm/svg.d.ts +0 -1
  272. package/dist/esm/svg.js +0 -1
  273. package/dist/esm/types.d.ts +0 -1
  274. package/dist/esm/types.js +0 -1
  275. package/dist/styles/dockview.css +20 -6
  276. package/package.json +3 -3
  277. package/dist/cjs/api/component.api.d.ts.map +0 -1
  278. package/dist/cjs/api/component.api.js.map +0 -1
  279. package/dist/cjs/api/dockviewGroupPanelApi.d.ts.map +0 -1
  280. package/dist/cjs/api/dockviewGroupPanelApi.js.map +0 -1
  281. package/dist/cjs/api/dockviewPanelApi.d.ts.map +0 -1
  282. package/dist/cjs/api/dockviewPanelApi.js.map +0 -1
  283. package/dist/cjs/api/gridviewPanelApi.d.ts.map +0 -1
  284. package/dist/cjs/api/gridviewPanelApi.js.map +0 -1
  285. package/dist/cjs/api/panelApi.d.ts.map +0 -1
  286. package/dist/cjs/api/panelApi.js.map +0 -1
  287. package/dist/cjs/api/paneviewPanelApi.d.ts.map +0 -1
  288. package/dist/cjs/api/paneviewPanelApi.js.map +0 -1
  289. package/dist/cjs/api/splitviewPanelApi.d.ts.map +0 -1
  290. package/dist/cjs/api/splitviewPanelApi.js.map +0 -1
  291. package/dist/cjs/array.d.ts.map +0 -1
  292. package/dist/cjs/array.js.map +0 -1
  293. package/dist/cjs/constants.d.ts.map +0 -1
  294. package/dist/cjs/constants.js.map +0 -1
  295. package/dist/cjs/dnd/abstractDragHandler.d.ts.map +0 -1
  296. package/dist/cjs/dnd/abstractDragHandler.js.map +0 -1
  297. package/dist/cjs/dnd/dataTransfer.d.ts.map +0 -1
  298. package/dist/cjs/dnd/dataTransfer.js.map +0 -1
  299. package/dist/cjs/dnd/dnd.d.ts.map +0 -1
  300. package/dist/cjs/dnd/dnd.js.map +0 -1
  301. package/dist/cjs/dnd/droptarget.d.ts.map +0 -1
  302. package/dist/cjs/dnd/droptarget.js.map +0 -1
  303. package/dist/cjs/dnd/ghost.d.ts.map +0 -1
  304. package/dist/cjs/dnd/ghost.js.map +0 -1
  305. package/dist/cjs/dnd/groupDragHandler.d.ts.map +0 -1
  306. package/dist/cjs/dnd/groupDragHandler.js.map +0 -1
  307. package/dist/cjs/dnd/overlay.d.ts.map +0 -1
  308. package/dist/cjs/dnd/overlay.js.map +0 -1
  309. package/dist/cjs/dockview/components/panel/content.d.ts.map +0 -1
  310. package/dist/cjs/dockview/components/panel/content.js.map +0 -1
  311. package/dist/cjs/dockview/components/tab/defaultTab.d.ts.map +0 -1
  312. package/dist/cjs/dockview/components/tab/defaultTab.js.map +0 -1
  313. package/dist/cjs/dockview/components/tab/tab.d.ts.map +0 -1
  314. package/dist/cjs/dockview/components/tab/tab.js.map +0 -1
  315. package/dist/cjs/dockview/components/titlebar/tabsContainer.d.ts.map +0 -1
  316. package/dist/cjs/dockview/components/titlebar/tabsContainer.js.map +0 -1
  317. package/dist/cjs/dockview/components/titlebar/voidContainer.d.ts.map +0 -1
  318. package/dist/cjs/dockview/components/titlebar/voidContainer.js.map +0 -1
  319. package/dist/cjs/dockview/components/watermark/watermark.d.ts.map +0 -1
  320. package/dist/cjs/dockview/components/watermark/watermark.js.map +0 -1
  321. package/dist/cjs/dockview/deserializer.d.ts.map +0 -1
  322. package/dist/cjs/dockview/deserializer.js.map +0 -1
  323. package/dist/cjs/dockview/dockviewComponent.d.ts.map +0 -1
  324. package/dist/cjs/dockview/dockviewComponent.js.map +0 -1
  325. package/dist/cjs/dockview/dockviewFloatingGroupPanel.d.ts.map +0 -1
  326. package/dist/cjs/dockview/dockviewFloatingGroupPanel.js.map +0 -1
  327. package/dist/cjs/dockview/dockviewGroupPanel.d.ts.map +0 -1
  328. package/dist/cjs/dockview/dockviewGroupPanel.js.map +0 -1
  329. package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts.map +0 -1
  330. package/dist/cjs/dockview/dockviewGroupPanelModel.js.map +0 -1
  331. package/dist/cjs/dockview/dockviewPanel.d.ts.map +0 -1
  332. package/dist/cjs/dockview/dockviewPanel.js.map +0 -1
  333. package/dist/cjs/dockview/dockviewPanelModel.d.ts.map +0 -1
  334. package/dist/cjs/dockview/dockviewPanelModel.js.map +0 -1
  335. package/dist/cjs/dockview/dockviewPopoutGroupPanel.d.ts +0 -16
  336. package/dist/cjs/dockview/dockviewPopoutGroupPanel.d.ts.map +0 -1
  337. package/dist/cjs/dockview/dockviewPopoutGroupPanel.js +0 -50
  338. package/dist/cjs/dockview/dockviewPopoutGroupPanel.js.map +0 -1
  339. package/dist/cjs/dockview/options.d.ts.map +0 -1
  340. package/dist/cjs/dockview/options.js.map +0 -1
  341. package/dist/cjs/dockview/types.d.ts.map +0 -1
  342. package/dist/cjs/dockview/types.js.map +0 -1
  343. package/dist/cjs/dom.d.ts.map +0 -1
  344. package/dist/cjs/dom.js.map +0 -1
  345. package/dist/cjs/events.d.ts.map +0 -1
  346. package/dist/cjs/events.js.map +0 -1
  347. package/dist/cjs/gridview/baseComponentGridview.d.ts.map +0 -1
  348. package/dist/cjs/gridview/baseComponentGridview.js.map +0 -1
  349. package/dist/cjs/gridview/basePanelView.d.ts.map +0 -1
  350. package/dist/cjs/gridview/basePanelView.js.map +0 -1
  351. package/dist/cjs/gridview/branchNode.d.ts.map +0 -1
  352. package/dist/cjs/gridview/branchNode.js.map +0 -1
  353. package/dist/cjs/gridview/gridview.d.ts.map +0 -1
  354. package/dist/cjs/gridview/gridview.js.map +0 -1
  355. package/dist/cjs/gridview/gridviewComponent.d.ts.map +0 -1
  356. package/dist/cjs/gridview/gridviewComponent.js.map +0 -1
  357. package/dist/cjs/gridview/gridviewPanel.d.ts.map +0 -1
  358. package/dist/cjs/gridview/gridviewPanel.js.map +0 -1
  359. package/dist/cjs/gridview/leafNode.d.ts.map +0 -1
  360. package/dist/cjs/gridview/leafNode.js.map +0 -1
  361. package/dist/cjs/gridview/options.d.ts.map +0 -1
  362. package/dist/cjs/gridview/options.js.map +0 -1
  363. package/dist/cjs/gridview/types.d.ts.map +0 -1
  364. package/dist/cjs/gridview/types.js.map +0 -1
  365. package/dist/cjs/index.d.ts.map +0 -1
  366. package/dist/cjs/index.js.map +0 -1
  367. package/dist/cjs/lifecycle.d.ts.map +0 -1
  368. package/dist/cjs/lifecycle.js.map +0 -1
  369. package/dist/cjs/math.d.ts.map +0 -1
  370. package/dist/cjs/math.js.map +0 -1
  371. package/dist/cjs/overlayRenderContainer.d.ts.map +0 -1
  372. package/dist/cjs/overlayRenderContainer.js.map +0 -1
  373. package/dist/cjs/panel/componentFactory.d.ts.map +0 -1
  374. package/dist/cjs/panel/componentFactory.js.map +0 -1
  375. package/dist/cjs/panel/types.d.ts.map +0 -1
  376. package/dist/cjs/panel/types.js.map +0 -1
  377. package/dist/cjs/paneview/defaultPaneviewHeader.d.ts.map +0 -1
  378. package/dist/cjs/paneview/defaultPaneviewHeader.js.map +0 -1
  379. package/dist/cjs/paneview/draggablePaneviewPanel.d.ts.map +0 -1
  380. package/dist/cjs/paneview/draggablePaneviewPanel.js.map +0 -1
  381. package/dist/cjs/paneview/options.d.ts.map +0 -1
  382. package/dist/cjs/paneview/options.js.map +0 -1
  383. package/dist/cjs/paneview/paneview.d.ts.map +0 -1
  384. package/dist/cjs/paneview/paneview.js.map +0 -1
  385. package/dist/cjs/paneview/paneviewComponent.d.ts.map +0 -1
  386. package/dist/cjs/paneview/paneviewComponent.js.map +0 -1
  387. package/dist/cjs/paneview/paneviewPanel.d.ts.map +0 -1
  388. package/dist/cjs/paneview/paneviewPanel.js.map +0 -1
  389. package/dist/cjs/popoutWindow.d.ts.map +0 -1
  390. package/dist/cjs/popoutWindow.js.map +0 -1
  391. package/dist/cjs/resizable.d.ts.map +0 -1
  392. package/dist/cjs/resizable.js.map +0 -1
  393. package/dist/cjs/splitview/options.d.ts.map +0 -1
  394. package/dist/cjs/splitview/options.js.map +0 -1
  395. package/dist/cjs/splitview/splitview.d.ts.map +0 -1
  396. package/dist/cjs/splitview/splitview.js.map +0 -1
  397. package/dist/cjs/splitview/splitviewComponent.d.ts.map +0 -1
  398. package/dist/cjs/splitview/splitviewComponent.js.map +0 -1
  399. package/dist/cjs/splitview/splitviewPanel.d.ts.map +0 -1
  400. package/dist/cjs/splitview/splitviewPanel.js.map +0 -1
  401. package/dist/cjs/splitview/viewItem.d.ts.map +0 -1
  402. package/dist/cjs/splitview/viewItem.js.map +0 -1
  403. package/dist/cjs/svg.d.ts.map +0 -1
  404. package/dist/cjs/svg.js.map +0 -1
  405. package/dist/cjs/types.d.ts.map +0 -1
  406. package/dist/cjs/types.js.map +0 -1
  407. package/dist/esm/api/component.api.d.ts.map +0 -1
  408. package/dist/esm/api/component.api.js.map +0 -1
  409. package/dist/esm/api/dockviewGroupPanelApi.d.ts.map +0 -1
  410. package/dist/esm/api/dockviewGroupPanelApi.js.map +0 -1
  411. package/dist/esm/api/dockviewPanelApi.d.ts.map +0 -1
  412. package/dist/esm/api/dockviewPanelApi.js.map +0 -1
  413. package/dist/esm/api/gridviewPanelApi.d.ts.map +0 -1
  414. package/dist/esm/api/gridviewPanelApi.js.map +0 -1
  415. package/dist/esm/api/panelApi.d.ts.map +0 -1
  416. package/dist/esm/api/panelApi.js.map +0 -1
  417. package/dist/esm/api/paneviewPanelApi.d.ts.map +0 -1
  418. package/dist/esm/api/paneviewPanelApi.js.map +0 -1
  419. package/dist/esm/api/splitviewPanelApi.d.ts.map +0 -1
  420. package/dist/esm/api/splitviewPanelApi.js.map +0 -1
  421. package/dist/esm/array.d.ts.map +0 -1
  422. package/dist/esm/array.js.map +0 -1
  423. package/dist/esm/constants.d.ts.map +0 -1
  424. package/dist/esm/constants.js.map +0 -1
  425. package/dist/esm/dnd/abstractDragHandler.d.ts.map +0 -1
  426. package/dist/esm/dnd/abstractDragHandler.js.map +0 -1
  427. package/dist/esm/dnd/dataTransfer.d.ts.map +0 -1
  428. package/dist/esm/dnd/dataTransfer.js.map +0 -1
  429. package/dist/esm/dnd/dnd.d.ts.map +0 -1
  430. package/dist/esm/dnd/dnd.js.map +0 -1
  431. package/dist/esm/dnd/droptarget.d.ts.map +0 -1
  432. package/dist/esm/dnd/droptarget.js.map +0 -1
  433. package/dist/esm/dnd/ghost.d.ts.map +0 -1
  434. package/dist/esm/dnd/ghost.js.map +0 -1
  435. package/dist/esm/dnd/groupDragHandler.d.ts.map +0 -1
  436. package/dist/esm/dnd/groupDragHandler.js.map +0 -1
  437. package/dist/esm/dnd/overlay.d.ts.map +0 -1
  438. package/dist/esm/dnd/overlay.js.map +0 -1
  439. package/dist/esm/dockview/components/panel/content.d.ts.map +0 -1
  440. package/dist/esm/dockview/components/panel/content.js.map +0 -1
  441. package/dist/esm/dockview/components/tab/defaultTab.d.ts.map +0 -1
  442. package/dist/esm/dockview/components/tab/defaultTab.js.map +0 -1
  443. package/dist/esm/dockview/components/tab/tab.d.ts.map +0 -1
  444. package/dist/esm/dockview/components/tab/tab.js.map +0 -1
  445. package/dist/esm/dockview/components/titlebar/tabsContainer.d.ts.map +0 -1
  446. package/dist/esm/dockview/components/titlebar/tabsContainer.js.map +0 -1
  447. package/dist/esm/dockview/components/titlebar/voidContainer.d.ts.map +0 -1
  448. package/dist/esm/dockview/components/titlebar/voidContainer.js.map +0 -1
  449. package/dist/esm/dockview/components/watermark/watermark.d.ts.map +0 -1
  450. package/dist/esm/dockview/components/watermark/watermark.js.map +0 -1
  451. package/dist/esm/dockview/deserializer.d.ts.map +0 -1
  452. package/dist/esm/dockview/deserializer.js.map +0 -1
  453. package/dist/esm/dockview/dockviewComponent.d.ts.map +0 -1
  454. package/dist/esm/dockview/dockviewComponent.js.map +0 -1
  455. package/dist/esm/dockview/dockviewFloatingGroupPanel.d.ts.map +0 -1
  456. package/dist/esm/dockview/dockviewFloatingGroupPanel.js.map +0 -1
  457. package/dist/esm/dockview/dockviewGroupPanel.d.ts.map +0 -1
  458. package/dist/esm/dockview/dockviewGroupPanel.js.map +0 -1
  459. package/dist/esm/dockview/dockviewGroupPanelModel.d.ts.map +0 -1
  460. package/dist/esm/dockview/dockviewGroupPanelModel.js.map +0 -1
  461. package/dist/esm/dockview/dockviewPanel.d.ts.map +0 -1
  462. package/dist/esm/dockview/dockviewPanel.js.map +0 -1
  463. package/dist/esm/dockview/dockviewPanelModel.d.ts.map +0 -1
  464. package/dist/esm/dockview/dockviewPanelModel.js.map +0 -1
  465. package/dist/esm/dockview/dockviewPopoutGroupPanel.d.ts +0 -16
  466. package/dist/esm/dockview/dockviewPopoutGroupPanel.d.ts.map +0 -1
  467. package/dist/esm/dockview/dockviewPopoutGroupPanel.js +0 -28
  468. package/dist/esm/dockview/dockviewPopoutGroupPanel.js.map +0 -1
  469. package/dist/esm/dockview/options.d.ts.map +0 -1
  470. package/dist/esm/dockview/options.js.map +0 -1
  471. package/dist/esm/dockview/types.d.ts.map +0 -1
  472. package/dist/esm/dockview/types.js.map +0 -1
  473. package/dist/esm/dom.d.ts.map +0 -1
  474. package/dist/esm/dom.js.map +0 -1
  475. package/dist/esm/events.d.ts.map +0 -1
  476. package/dist/esm/events.js.map +0 -1
  477. package/dist/esm/gridview/baseComponentGridview.d.ts.map +0 -1
  478. package/dist/esm/gridview/baseComponentGridview.js.map +0 -1
  479. package/dist/esm/gridview/basePanelView.d.ts.map +0 -1
  480. package/dist/esm/gridview/basePanelView.js.map +0 -1
  481. package/dist/esm/gridview/branchNode.d.ts.map +0 -1
  482. package/dist/esm/gridview/branchNode.js.map +0 -1
  483. package/dist/esm/gridview/gridview.d.ts.map +0 -1
  484. package/dist/esm/gridview/gridview.js.map +0 -1
  485. package/dist/esm/gridview/gridviewComponent.d.ts.map +0 -1
  486. package/dist/esm/gridview/gridviewComponent.js.map +0 -1
  487. package/dist/esm/gridview/gridviewPanel.d.ts.map +0 -1
  488. package/dist/esm/gridview/gridviewPanel.js.map +0 -1
  489. package/dist/esm/gridview/leafNode.d.ts.map +0 -1
  490. package/dist/esm/gridview/leafNode.js.map +0 -1
  491. package/dist/esm/gridview/options.d.ts.map +0 -1
  492. package/dist/esm/gridview/options.js.map +0 -1
  493. package/dist/esm/gridview/types.d.ts.map +0 -1
  494. package/dist/esm/gridview/types.js.map +0 -1
  495. package/dist/esm/index.d.ts.map +0 -1
  496. package/dist/esm/index.js.map +0 -1
  497. package/dist/esm/lifecycle.d.ts.map +0 -1
  498. package/dist/esm/lifecycle.js.map +0 -1
  499. package/dist/esm/math.d.ts.map +0 -1
  500. package/dist/esm/math.js.map +0 -1
  501. package/dist/esm/overlayRenderContainer.d.ts.map +0 -1
  502. package/dist/esm/overlayRenderContainer.js.map +0 -1
  503. package/dist/esm/panel/componentFactory.d.ts.map +0 -1
  504. package/dist/esm/panel/componentFactory.js.map +0 -1
  505. package/dist/esm/panel/types.d.ts.map +0 -1
  506. package/dist/esm/panel/types.js.map +0 -1
  507. package/dist/esm/paneview/defaultPaneviewHeader.d.ts.map +0 -1
  508. package/dist/esm/paneview/defaultPaneviewHeader.js.map +0 -1
  509. package/dist/esm/paneview/draggablePaneviewPanel.d.ts.map +0 -1
  510. package/dist/esm/paneview/draggablePaneviewPanel.js.map +0 -1
  511. package/dist/esm/paneview/options.d.ts.map +0 -1
  512. package/dist/esm/paneview/options.js.map +0 -1
  513. package/dist/esm/paneview/paneview.d.ts.map +0 -1
  514. package/dist/esm/paneview/paneview.js.map +0 -1
  515. package/dist/esm/paneview/paneviewComponent.d.ts.map +0 -1
  516. package/dist/esm/paneview/paneviewComponent.js.map +0 -1
  517. package/dist/esm/paneview/paneviewPanel.d.ts.map +0 -1
  518. package/dist/esm/paneview/paneviewPanel.js.map +0 -1
  519. package/dist/esm/popoutWindow.d.ts.map +0 -1
  520. package/dist/esm/popoutWindow.js.map +0 -1
  521. package/dist/esm/resizable.d.ts.map +0 -1
  522. package/dist/esm/resizable.js.map +0 -1
  523. package/dist/esm/splitview/options.d.ts.map +0 -1
  524. package/dist/esm/splitview/options.js.map +0 -1
  525. package/dist/esm/splitview/splitview.d.ts.map +0 -1
  526. package/dist/esm/splitview/splitview.js.map +0 -1
  527. package/dist/esm/splitview/splitviewComponent.d.ts.map +0 -1
  528. package/dist/esm/splitview/splitviewComponent.js.map +0 -1
  529. package/dist/esm/splitview/splitviewPanel.d.ts.map +0 -1
  530. package/dist/esm/splitview/splitviewPanel.js.map +0 -1
  531. package/dist/esm/splitview/viewItem.d.ts.map +0 -1
  532. package/dist/esm/splitview/viewItem.js.map +0 -1
  533. package/dist/esm/svg.d.ts.map +0 -1
  534. package/dist/esm/svg.js.map +0 -1
  535. package/dist/esm/types.d.ts.map +0 -1
  536. package/dist/esm/types.js.map +0 -1
@@ -70,7 +70,6 @@ var dockviewPanel_1 = require("./dockviewPanel");
70
70
  var lifecycle_1 = require("../lifecycle");
71
71
  var events_1 = require("../events");
72
72
  var watermark_1 = require("./components/watermark/watermark");
73
- var types_1 = require("./types");
74
73
  var math_1 = require("../math");
75
74
  var deserializer_1 = require("./deserializer");
76
75
  var componentFactory_1 = require("../panel/componentFactory");
@@ -78,20 +77,35 @@ var options_1 = require("./options");
78
77
  var baseComponentGridview_1 = require("../gridview/baseComponentGridview");
79
78
  var component_api_1 = require("../api/component.api");
80
79
  var splitview_1 = require("../splitview/splitview");
80
+ var dockviewGroupPanelModel_1 = require("./dockviewGroupPanelModel");
81
81
  var dockviewGroupPanel_1 = require("./dockviewGroupPanel");
82
82
  var dockviewPanelModel_1 = require("./dockviewPanelModel");
83
83
  var dataTransfer_1 = require("../dnd/dataTransfer");
84
84
  var overlay_1 = require("../dnd/overlay");
85
85
  var dom_1 = require("../dom");
86
86
  var dockviewFloatingGroupPanel_1 = require("./dockviewFloatingGroupPanel");
87
- var dockviewPopoutGroupPanel_1 = require("./dockviewPopoutGroupPanel");
88
87
  var constants_1 = require("../constants");
89
88
  var overlayRenderContainer_1 = require("../overlayRenderContainer");
89
+ var popoutWindow_1 = require("../popoutWindow");
90
90
  var DEFAULT_ROOT_OVERLAY_MODEL = {
91
91
  activationSize: { type: 'pixels', value: 10 },
92
92
  size: { type: 'pixels', value: 20 },
93
93
  };
94
- function getTheme(element) {
94
+ function moveGroupWithoutDestroying(options) {
95
+ var activePanel = options.from.activePanel;
96
+ var panels = __spreadArray([], __read(options.from.panels), false).map(function (panel) {
97
+ var removedPanel = options.from.model.removePanel(panel);
98
+ options.from.model.renderContainer.detatch(panel);
99
+ return removedPanel;
100
+ });
101
+ panels.forEach(function (panel) {
102
+ options.to.model.openPanel(panel, {
103
+ skipSetActive: activePanel !== panel,
104
+ skipSetGroupActive: true,
105
+ });
106
+ });
107
+ }
108
+ function getDockviewTheme(element) {
95
109
  function toClassList(element) {
96
110
  var list = [];
97
111
  for (var i = 0; i < element.classList.length; i++) {
@@ -182,6 +196,7 @@ var DockviewComponent = /** @class */ (function (_super) {
182
196
  styles: options.styles,
183
197
  parentElement: options.parentElement,
184
198
  disableAutoResizing: options.disableAutoResizing,
199
+ locked: options.locked,
185
200
  }) || this;
186
201
  _this.nextGroupId = (0, math_1.sequentialNumberGenerator)();
187
202
  _this._deserializer = new deserializer_1.DefaultDockviewDeserialzier(_this);
@@ -192,6 +207,10 @@ var DockviewComponent = /** @class */ (function (_super) {
192
207
  _this.onWillDragGroup = _this._onWillDragGroup.event;
193
208
  _this._onDidDrop = new events_1.Emitter();
194
209
  _this.onDidDrop = _this._onDidDrop.event;
210
+ _this._onWillDrop = new events_1.Emitter();
211
+ _this.onWillDrop = _this._onWillDrop.event;
212
+ _this._onWillShowOverlay = new events_1.Emitter();
213
+ _this.onWillShowOverlay = _this._onWillShowOverlay.event;
195
214
  _this._onDidRemovePanel = new events_1.Emitter();
196
215
  _this.onDidRemovePanel = _this._onDidRemovePanel.event;
197
216
  _this._onDidAddPanel = new events_1.Emitter();
@@ -200,15 +219,36 @@ var DockviewComponent = /** @class */ (function (_super) {
200
219
  _this.onDidLayoutFromJSON = _this._onDidLayoutFromJSON.event;
201
220
  _this._onDidActivePanelChange = new events_1.Emitter();
202
221
  _this.onDidActivePanelChange = _this._onDidActivePanelChange.event;
222
+ _this._onDidMovePanel = new events_1.Emitter();
203
223
  _this._floatingGroups = [];
204
224
  _this._popoutGroups = [];
225
+ _this._ignoreEvents = 0;
226
+ _this._onDidRemoveGroup = new events_1.Emitter();
227
+ _this.onDidRemoveGroup = _this._onDidRemoveGroup.event;
228
+ _this._onDidAddGroup = new events_1.Emitter();
229
+ _this.onDidAddGroup = _this._onDidAddGroup.event;
230
+ _this._onDidActiveGroupChange = new events_1.Emitter();
231
+ _this.onDidActiveGroupChange = _this._onDidActiveGroupChange.event;
232
+ _this._moving = false;
205
233
  var gready = document.createElement('div');
206
234
  gready.className = 'dv-overlay-render-container';
207
235
  _this.gridview.element.appendChild(gready);
208
236
  _this.overlayRenderContainer = new overlayRenderContainer_1.OverlayRenderContainer(gready);
209
237
  (0, dom_1.toggleClass)(_this.gridview.element, 'dv-dockview', true);
210
238
  (0, dom_1.toggleClass)(_this.element, 'dv-debug', !!options.debug);
211
- _this.addDisposables(_this.overlayRenderContainer, _this._onWillDragPanel, _this._onWillDragGroup, _this._onDidActivePanelChange, _this._onDidAddPanel, _this._onDidRemovePanel, _this._onDidLayoutFromJSON, _this._onDidDrop, events_1.Event.any(_this.onDidAddGroup, _this.onDidRemoveGroup)(function () {
239
+ _this.addDisposables(_this.overlayRenderContainer, _this._onWillDragPanel, _this._onWillDragGroup, _this._onWillShowOverlay, _this._onDidActivePanelChange, _this._onDidAddPanel, _this._onDidRemovePanel, _this._onDidLayoutFromJSON, _this._onDidDrop, _this._onWillDrop, _this._onDidMovePanel, _this._onDidAddGroup, _this._onDidRemoveGroup, _this._onDidActiveGroupChange, _this.onDidAdd(function (event) {
240
+ if (!_this._moving) {
241
+ _this._onDidAddGroup.fire(event);
242
+ }
243
+ }), _this.onDidRemove(function (event) {
244
+ if (!_this._moving) {
245
+ _this._onDidRemoveGroup.fire(event);
246
+ }
247
+ }), _this.onDidActiveChange(function (event) {
248
+ if (!_this._moving) {
249
+ _this._onDidActiveGroupChange.fire(event);
250
+ }
251
+ }), events_1.Event.any(_this.onDidAdd, _this.onDidRemove)(function () {
212
252
  _this.updateWatermark();
213
253
  }), events_1.Event.any(_this.onDidAddPanel, _this.onDidRemovePanel, _this.onDidActivePanelChange)(function () {
214
254
  _this._bufferOnDidLayoutChange.fire();
@@ -232,7 +272,7 @@ var DockviewComponent = /** @class */ (function (_super) {
232
272
  // iterate over a copy of the array since .dispose() mutates the original array
233
273
  for (var _e = __values(__spreadArray([], __read(_this._popoutGroups), false)), _f = _e.next(); !_f.done; _f = _e.next()) {
234
274
  var group = _f.value;
235
- group.dispose();
275
+ group.disposable.dispose();
236
276
  }
237
277
  }
238
278
  catch (e_2_1) { e_2 = { error: e_2_1 }; }
@@ -286,7 +326,7 @@ var DockviewComponent = /** @class */ (function (_super) {
286
326
  return _this.options.showDndOverlay({
287
327
  nativeEvent: event,
288
328
  position: position,
289
- target: types_1.DockviewDropTargets.Edge,
329
+ target: 'edge',
290
330
  getData: dataTransfer_1.getPanelData,
291
331
  });
292
332
  }
@@ -295,14 +335,51 @@ var DockviewComponent = /** @class */ (function (_super) {
295
335
  acceptedTargetZones: ['top', 'bottom', 'left', 'right', 'center'],
296
336
  overlayModel: (_b = _this.options.rootOverlayModel) !== null && _b !== void 0 ? _b : DEFAULT_ROOT_OVERLAY_MODEL,
297
337
  });
298
- _this.addDisposables(_this._rootDropTarget.onDrop(function (event) {
338
+ _this.addDisposables(_this._rootDropTarget, _this._rootDropTarget.onWillShowOverlay(function (event) {
339
+ if (_this.gridview.length > 0 && event.position === 'center') {
340
+ // option only available when no panels in primary grid
341
+ return;
342
+ }
343
+ _this._onWillShowOverlay.fire(new dockviewGroupPanelModel_1.WillShowOverlayLocationEvent(event, {
344
+ kind: 'edge',
345
+ }));
346
+ }), _this._rootDropTarget.onDrop(function (event) {
299
347
  var _a;
348
+ var willDropEvent = new dockviewGroupPanelModel_1.DockviewWillDropEvent({
349
+ nativeEvent: event.nativeEvent,
350
+ position: event.position,
351
+ panel: undefined,
352
+ api: _this._api,
353
+ group: undefined,
354
+ getData: dataTransfer_1.getPanelData,
355
+ kind: 'edge',
356
+ });
357
+ _this._onWillDrop.fire(willDropEvent);
358
+ if (willDropEvent.defaultPrevented) {
359
+ return;
360
+ }
300
361
  var data = (0, dataTransfer_1.getPanelData)();
301
362
  if (data) {
302
- _this.moveGroupOrPanel(_this.orthogonalize(event.position), data.groupId, (_a = data.panelId) !== null && _a !== void 0 ? _a : undefined, 'center');
363
+ _this.moveGroupOrPanel({
364
+ from: {
365
+ groupId: data.groupId,
366
+ panelId: (_a = data.panelId) !== null && _a !== void 0 ? _a : undefined,
367
+ },
368
+ to: {
369
+ group: _this.orthogonalize(event.position),
370
+ position: 'center',
371
+ },
372
+ });
303
373
  }
304
374
  else {
305
- _this._onDidDrop.fire(__assign(__assign({}, event), { api: _this._api, group: null, getData: dataTransfer_1.getPanelData }));
375
+ _this._onDidDrop.fire(new dockviewGroupPanelModel_1.DockviewDidDropEvent({
376
+ nativeEvent: event.nativeEvent,
377
+ position: event.position,
378
+ panel: undefined,
379
+ api: _this._api,
380
+ group: undefined,
381
+ getData: dataTransfer_1.getPanelData,
382
+ }));
306
383
  }
307
384
  }), _this._rootDropTarget);
308
385
  _this._api = new component_api_1.DockviewApi(_this);
@@ -356,77 +433,219 @@ var DockviewComponent = /** @class */ (function (_super) {
356
433
  enumerable: false,
357
434
  configurable: true
358
435
  });
359
- DockviewComponent.prototype.addPopoutGroup = function (item, options) {
436
+ DockviewComponent.prototype.addPopoutGroup = function (itemToPopout, options) {
360
437
  var _this = this;
361
- var _a;
362
- var group;
363
- var box = options === null || options === void 0 ? void 0 : options.position;
364
- if (item instanceof dockviewPanel_1.DockviewPanel) {
365
- group = this.createGroup();
366
- this.removePanel(item, {
367
- removeEmptyGroup: true,
368
- skipDispose: true,
369
- });
370
- group.model.openPanel(item);
371
- if (!box) {
372
- box = this.element.getBoundingClientRect();
438
+ var _a, _b, _c;
439
+ if (itemToPopout instanceof dockviewPanel_1.DockviewPanel &&
440
+ itemToPopout.group.size === 1) {
441
+ return this.addPopoutGroup(itemToPopout.group);
442
+ }
443
+ var theme = getDockviewTheme(this.gridview.element);
444
+ var element = this.element;
445
+ function getBox() {
446
+ if (options === null || options === void 0 ? void 0 : options.position) {
447
+ return options.position;
373
448
  }
374
- }
375
- else {
376
- group = item;
377
- if (!box) {
378
- box = group.element.getBoundingClientRect();
449
+ if (itemToPopout instanceof dockviewGroupPanel_1.DockviewGroupPanel) {
450
+ return itemToPopout.element.getBoundingClientRect();
379
451
  }
380
- var skip = typeof (options === null || options === void 0 ? void 0 : options.skipRemoveGroup) === 'boolean' &&
381
- options.skipRemoveGroup;
382
- if (!skip) {
383
- this.doRemoveGroup(item, { skipDispose: true });
384
- }
385
- }
386
- var theme = getTheme(this.gridview.element);
387
- var popoutWindow = new dockviewPopoutGroupPanel_1.DockviewPopoutGroupPanel("".concat(this.id, "-").concat(group.id), // globally unique within dockview
388
- group, {
389
- className: theme !== null && theme !== void 0 ? theme : '',
390
- popoutUrl: (_a = options === null || options === void 0 ? void 0 : options.popoutUrl) !== null && _a !== void 0 ? _a : '/popout.html',
391
- box: {
392
- left: window.screenX + box.left,
393
- top: window.screenY + box.top,
394
- width: box.width,
395
- height: box.height,
396
- },
452
+ if (itemToPopout.group) {
453
+ return itemToPopout.group.element.getBoundingClientRect();
454
+ }
455
+ return element.getBoundingClientRect();
456
+ }
457
+ var box = getBox();
458
+ var groupId = (_b = (_a = options === null || options === void 0 ? void 0 : options.overridePopoutGroup) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : this.getNextGroupId(); //item.id;
459
+ if (itemToPopout.api.location.type === 'grid') {
460
+ itemToPopout.api.setVisible(false);
461
+ }
462
+ var _window = new popoutWindow_1.PopoutWindow("".concat(this.id, "-").concat(groupId), // unique id
463
+ theme !== null && theme !== void 0 ? theme : '', {
464
+ url: (_c = options === null || options === void 0 ? void 0 : options.popoutUrl) !== null && _c !== void 0 ? _c : '/popout.html',
465
+ left: window.screenX + box.left,
466
+ top: window.screenY + box.top,
467
+ width: box.width,
468
+ height: box.height,
469
+ onDidOpen: options === null || options === void 0 ? void 0 : options.onDidOpen,
470
+ onWillClose: options === null || options === void 0 ? void 0 : options.onWillClose,
397
471
  });
398
- popoutWindow.addDisposables({
399
- dispose: function () {
400
- (0, array_1.remove)(_this._popoutGroups, popoutWindow);
401
- _this.updateWatermark();
402
- },
403
- }, popoutWindow.window.onDidClose(function () {
404
- _this.doAddGroup(group, [0]);
472
+ var popoutWindowDisposable = new lifecycle_1.CompositeDisposable(_window, _window.onDidClose(function () {
473
+ popoutWindowDisposable.dispose();
405
474
  }));
406
- this._popoutGroups.push(popoutWindow);
407
- this.updateWatermark();
475
+ return _window
476
+ .open()
477
+ .then(function (popoutContainer) {
478
+ var _a;
479
+ if (_window.isDisposed) {
480
+ return;
481
+ }
482
+ if (popoutContainer === null) {
483
+ popoutWindowDisposable.dispose();
484
+ return;
485
+ }
486
+ var gready = document.createElement('div');
487
+ gready.className = 'dv-overlay-render-container';
488
+ var overlayRenderContainer = new overlayRenderContainer_1.OverlayRenderContainer(gready);
489
+ var referenceGroup = itemToPopout instanceof dockviewPanel_1.DockviewPanel
490
+ ? itemToPopout.group
491
+ : itemToPopout;
492
+ var referenceLocation = itemToPopout.api.location.type;
493
+ var group = (_a = options === null || options === void 0 ? void 0 : options.overridePopoutGroup) !== null && _a !== void 0 ? _a : _this.createGroup({ id: groupId });
494
+ group.model.renderContainer = overlayRenderContainer;
495
+ if (!(options === null || options === void 0 ? void 0 : options.overridePopoutGroup)) {
496
+ _this._onDidAddGroup.fire(group);
497
+ }
498
+ if (itemToPopout instanceof dockviewPanel_1.DockviewPanel) {
499
+ _this.movingLock(function () {
500
+ var panel = referenceGroup.model.removePanel(itemToPopout);
501
+ group.model.openPanel(panel);
502
+ });
503
+ }
504
+ else {
505
+ _this.movingLock(function () {
506
+ return moveGroupWithoutDestroying({
507
+ from: referenceGroup,
508
+ to: group,
509
+ });
510
+ });
511
+ switch (referenceLocation) {
512
+ case 'grid':
513
+ referenceGroup.api.setVisible(false);
514
+ break;
515
+ case 'floating':
516
+ case 'popout':
517
+ _this.removeGroup(referenceGroup);
518
+ break;
519
+ }
520
+ }
521
+ popoutContainer.classList.add('dv-dockview');
522
+ popoutContainer.style.overflow = 'hidden';
523
+ popoutContainer.appendChild(gready);
524
+ popoutContainer.appendChild(group.element);
525
+ group.model.location = {
526
+ type: 'popout',
527
+ getWindow: function () { return _window.window; },
528
+ };
529
+ _this.doSetGroupAndPanelActive(group);
530
+ popoutWindowDisposable.addDisposables(group.api.onDidActiveChange(function (event) {
531
+ var _a;
532
+ if (event.isActive) {
533
+ (_a = _window.window) === null || _a === void 0 ? void 0 : _a.focus();
534
+ }
535
+ }), group.api.onWillFocus(function () {
536
+ var _a;
537
+ (_a = _window.window) === null || _a === void 0 ? void 0 : _a.focus();
538
+ }));
539
+ var returnedGroup;
540
+ var value = {
541
+ window: _window,
542
+ popoutGroup: group,
543
+ referenceGroup: _this.getPanel(referenceGroup.id)
544
+ ? referenceGroup.id
545
+ : undefined,
546
+ disposable: {
547
+ dispose: function () {
548
+ popoutWindowDisposable.dispose();
549
+ return returnedGroup;
550
+ },
551
+ },
552
+ };
553
+ popoutWindowDisposable.addDisposables(
554
+ /**
555
+ * ResizeObserver seems slow here, I do not know why but we don't need it
556
+ * since we can reply on the window resize event as we will occupy the full
557
+ * window dimensions
558
+ */
559
+ (0, events_1.addDisposableWindowListener)(_window.window, 'resize', function () {
560
+ group.layout(window.innerWidth, window.innerHeight);
561
+ }), overlayRenderContainer, lifecycle_1.Disposable.from(function () {
562
+ if (_this.getPanel(referenceGroup.id)) {
563
+ _this.movingLock(function () {
564
+ return moveGroupWithoutDestroying({
565
+ from: group,
566
+ to: referenceGroup,
567
+ });
568
+ });
569
+ if (!referenceGroup.api.isVisible) {
570
+ referenceGroup.api.setVisible(true);
571
+ }
572
+ if (_this.getPanel(group.id)) {
573
+ _this.doRemoveGroup(group, {
574
+ skipPopoutAssociated: true,
575
+ });
576
+ }
577
+ }
578
+ else {
579
+ if (_this.getPanel(group.id)) {
580
+ var removedGroup = _this.doRemoveGroup(group, {
581
+ skipDispose: true,
582
+ skipActive: true,
583
+ });
584
+ removedGroup.model.renderContainer =
585
+ _this.overlayRenderContainer;
586
+ removedGroup.model.location = { type: 'grid' };
587
+ returnedGroup = removedGroup;
588
+ }
589
+ }
590
+ }));
591
+ _this._popoutGroups.push(value);
592
+ _this.updateWatermark();
593
+ })
594
+ .catch(function (err) {
595
+ console.error(err);
596
+ });
408
597
  };
409
598
  DockviewComponent.prototype.addFloatingGroup = function (item, coord, options) {
410
599
  var _this = this;
411
- var _a, _b, _c, _d, _e, _f;
600
+ var _a, _b, _c, _d, _e, _f, _g;
412
601
  var group;
413
602
  if (item instanceof dockviewPanel_1.DockviewPanel) {
414
603
  group = this.createGroup();
415
- this.removePanel(item, {
416
- removeEmptyGroup: true,
417
- skipDispose: true,
604
+ this._onDidAddGroup.fire(group);
605
+ this.movingLock(function () {
606
+ return _this.removePanel(item, {
607
+ removeEmptyGroup: true,
608
+ skipDispose: true,
609
+ skipSetActiveGroup: true,
610
+ });
418
611
  });
419
- group.model.openPanel(item);
612
+ group.model.openPanel(item, { skipSetGroupActive: true });
420
613
  }
421
614
  else {
422
615
  group = item;
616
+ var popoutReferenceGroupId = (_a = this._popoutGroups.find(function (_) { return _.popoutGroup === group; })) === null || _a === void 0 ? void 0 : _a.referenceGroup;
617
+ var popoutReferenceGroup_1 = popoutReferenceGroupId
618
+ ? this.getPanel(popoutReferenceGroupId)
619
+ : undefined;
423
620
  var skip = typeof (options === null || options === void 0 ? void 0 : options.skipRemoveGroup) === 'boolean' &&
424
621
  options.skipRemoveGroup;
425
622
  if (!skip) {
426
- this.doRemoveGroup(item, { skipDispose: true });
623
+ if (popoutReferenceGroup_1) {
624
+ this.movingLock(function () {
625
+ return moveGroupWithoutDestroying({
626
+ from: item,
627
+ to: popoutReferenceGroup_1,
628
+ });
629
+ });
630
+ this.doRemoveGroup(item, {
631
+ skipPopoutReturn: true,
632
+ skipPopoutAssociated: true,
633
+ });
634
+ this.doRemoveGroup(popoutReferenceGroup_1, {
635
+ skipDispose: true,
636
+ });
637
+ group = popoutReferenceGroup_1;
638
+ }
639
+ else {
640
+ this.doRemoveGroup(item, {
641
+ skipDispose: true,
642
+ skipPopoutReturn: true,
643
+ skipPopoutAssociated: !!popoutReferenceGroup_1,
644
+ });
645
+ }
427
646
  }
428
647
  }
429
- group.model.location = 'floating';
648
+ group.model.location = { type: 'floating' };
430
649
  var overlayLeft = typeof (coord === null || coord === void 0 ? void 0 : coord.x) === 'number'
431
650
  ? Math.max(coord.x, 0)
432
651
  : constants_1.DEFAULT_FLOATING_GROUP_POSITION.left;
@@ -436,16 +655,16 @@ var DockviewComponent = /** @class */ (function (_super) {
436
655
  var overlay = new overlay_1.Overlay({
437
656
  container: this.gridview.element,
438
657
  content: group.element,
439
- height: (_a = coord === null || coord === void 0 ? void 0 : coord.height) !== null && _a !== void 0 ? _a : 300,
440
- width: (_b = coord === null || coord === void 0 ? void 0 : coord.width) !== null && _b !== void 0 ? _b : 300,
658
+ height: (_b = coord === null || coord === void 0 ? void 0 : coord.height) !== null && _b !== void 0 ? _b : 300,
659
+ width: (_c = coord === null || coord === void 0 ? void 0 : coord.width) !== null && _c !== void 0 ? _c : 300,
441
660
  left: overlayLeft,
442
661
  top: overlayTop,
443
662
  minimumInViewportWidth: this.options.floatingGroupBounds === 'boundedWithinViewport'
444
663
  ? undefined
445
- : (_d = (_c = this.options.floatingGroupBounds) === null || _c === void 0 ? void 0 : _c.minimumWidthWithinViewport) !== null && _d !== void 0 ? _d : constants_1.DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE,
664
+ : (_e = (_d = this.options.floatingGroupBounds) === null || _d === void 0 ? void 0 : _d.minimumWidthWithinViewport) !== null && _e !== void 0 ? _e : constants_1.DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE,
446
665
  minimumInViewportHeight: this.options.floatingGroupBounds === 'boundedWithinViewport'
447
666
  ? undefined
448
- : (_f = (_e = this.options.floatingGroupBounds) === null || _e === void 0 ? void 0 : _e.minimumHeightWithinViewport) !== null && _f !== void 0 ? _f : constants_1.DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE,
667
+ : (_g = (_f = this.options.floatingGroupBounds) === null || _f === void 0 ? void 0 : _f.minimumHeightWithinViewport) !== null && _g !== void 0 ? _g : constants_1.DEFAULT_FLOATING_GROUP_OVERFLOW_SIZE,
449
668
  });
450
669
  var el = group.element.querySelector('.void-container');
451
670
  if (!el) {
@@ -476,12 +695,15 @@ var DockviewComponent = /** @class */ (function (_super) {
476
695
  }), {
477
696
  dispose: function () {
478
697
  disposable.dispose();
479
- group.model.location = 'grid';
698
+ group.model.location = { type: 'grid' };
480
699
  (0, array_1.remove)(_this._floatingGroups, floatingGroupPanel);
481
700
  _this.updateWatermark();
482
701
  },
483
702
  });
484
703
  this._floatingGroups.push(floatingGroupPanel);
704
+ if (!(options === null || options === void 0 ? void 0 : options.skipActiveGroup)) {
705
+ this.doSetGroupAndPanelActive(group);
706
+ }
485
707
  this.updateWatermark();
486
708
  };
487
709
  DockviewComponent.prototype.orthogonalize = function (position) {
@@ -595,8 +817,8 @@ var DockviewComponent = /** @class */ (function (_super) {
595
817
  return this.panels.find(function (panel) { return panel.id === id; });
596
818
  };
597
819
  DockviewComponent.prototype.setActivePanel = function (panel) {
598
- this.doSetGroupActive(panel.group);
599
820
  panel.group.model.openPanel(panel);
821
+ this.doSetGroupAndPanelActive(panel.group);
600
822
  };
601
823
  DockviewComponent.prototype.moveToNext = function (options) {
602
824
  var _a;
@@ -659,7 +881,8 @@ var DockviewComponent = /** @class */ (function (_super) {
659
881
  });
660
882
  var popoutGroups = this._popoutGroups.map(function (group) {
661
883
  return {
662
- data: group.group.toJSON(),
884
+ data: group.popoutGroup.toJSON(),
885
+ gridReferenceGroup: group.referenceGroup,
663
886
  position: group.window.dimensions(),
664
887
  };
665
888
  });
@@ -679,7 +902,7 @@ var DockviewComponent = /** @class */ (function (_super) {
679
902
  DockviewComponent.prototype.fromJSON = function (data) {
680
903
  var e_5, _a, e_6, _b, e_7, _c, e_8, _d, e_9, _e, e_10, _f, e_11, _g;
681
904
  var _this = this;
682
- var _h, _j;
905
+ var _h, _j, _k;
683
906
  this.clear();
684
907
  if (typeof data !== 'object' || data === null) {
685
908
  throw new Error('serialized layout must be a non-null object');
@@ -729,7 +952,7 @@ var DockviewComponent = /** @class */ (function (_super) {
729
952
  var isActive = typeof activeView === 'string' &&
730
953
  activeView === panel.id;
731
954
  group.model.openPanel(panel, {
732
- skipSetPanelActive: !isActive,
955
+ skipSetActive: !isActive,
733
956
  skipSetGroupActive: true,
734
957
  });
735
958
  }
@@ -771,11 +994,16 @@ var DockviewComponent = /** @class */ (function (_super) {
771
994
  try {
772
995
  for (var serializedPopoutGroups_1 = __values(serializedPopoutGroups), serializedPopoutGroups_1_1 = serializedPopoutGroups_1.next(); !serializedPopoutGroups_1_1.done; serializedPopoutGroups_1_1 = serializedPopoutGroups_1.next()) {
773
996
  var serializedPopoutGroup = serializedPopoutGroups_1_1.value;
774
- var data_2 = serializedPopoutGroup.data, position = serializedPopoutGroup.position;
997
+ var data_2 = serializedPopoutGroup.data, position = serializedPopoutGroup.position, gridReferenceGroup = serializedPopoutGroup.gridReferenceGroup;
775
998
  var group = createGroupFromSerializedState_1(data_2);
776
- this.addPopoutGroup(group, {
999
+ this.addPopoutGroup((_k = (gridReferenceGroup
1000
+ ? this.getPanel(gridReferenceGroup)
1001
+ : undefined)) !== null && _k !== void 0 ? _k : group, {
777
1002
  skipRemoveGroup: true,
778
1003
  position: position !== null && position !== void 0 ? position : undefined,
1004
+ overridePopoutGroup: gridReferenceGroup
1005
+ ? group
1006
+ : undefined,
779
1007
  });
780
1008
  }
781
1009
  }
@@ -787,15 +1015,15 @@ var DockviewComponent = /** @class */ (function (_super) {
787
1015
  finally { if (e_6) throw e_6.error; }
788
1016
  }
789
1017
  try {
790
- for (var _k = __values(this._floatingGroups), _l = _k.next(); !_l.done; _l = _k.next()) {
791
- var floatingGroup = _l.value;
1018
+ for (var _l = __values(this._floatingGroups), _m = _l.next(); !_m.done; _m = _l.next()) {
1019
+ var floatingGroup = _m.value;
792
1020
  floatingGroup.overlay.setBounds();
793
1021
  }
794
1022
  }
795
1023
  catch (e_7_1) { e_7 = { error: e_7_1 }; }
796
1024
  finally {
797
1025
  try {
798
- if (_l && !_l.done && (_c = _k.return)) _c.call(_k);
1026
+ if (_m && !_m.done && (_c = _l.return)) _c.call(_l);
799
1027
  }
800
1028
  finally { if (e_7) throw e_7.error; }
801
1029
  }
@@ -811,11 +1039,11 @@ var DockviewComponent = /** @class */ (function (_super) {
811
1039
  /**
812
1040
  * Takes all the successfully created groups and remove all of their panels.
813
1041
  */
814
- for (var _m = __values(this.groups), _o = _m.next(); !_o.done; _o = _m.next()) {
815
- var group = _o.value;
1042
+ for (var _o = __values(this.groups), _p = _o.next(); !_p.done; _p = _o.next()) {
1043
+ var group = _p.value;
816
1044
  try {
817
- for (var _p = (e_9 = void 0, __values(group.panels)), _q = _p.next(); !_q.done; _q = _p.next()) {
818
- var panel = _q.value;
1045
+ for (var _q = (e_9 = void 0, __values(group.panels)), _r = _q.next(); !_r.done; _r = _q.next()) {
1046
+ var panel = _r.value;
819
1047
  this.removePanel(panel, {
820
1048
  removeEmptyGroup: false,
821
1049
  skipDispose: false,
@@ -825,7 +1053,7 @@ var DockviewComponent = /** @class */ (function (_super) {
825
1053
  catch (e_9_1) { e_9 = { error: e_9_1 }; }
826
1054
  finally {
827
1055
  try {
828
- if (_q && !_q.done && (_e = _p.return)) _e.call(_p);
1056
+ if (_r && !_r.done && (_e = _q.return)) _e.call(_q);
829
1057
  }
830
1058
  finally { if (e_9) throw e_9.error; }
831
1059
  }
@@ -834,7 +1062,7 @@ var DockviewComponent = /** @class */ (function (_super) {
834
1062
  catch (e_8_1) { e_8 = { error: e_8_1 }; }
835
1063
  finally {
836
1064
  try {
837
- if (_o && !_o.done && (_d = _m.return)) _d.call(_m);
1065
+ if (_p && !_p.done && (_d = _o.return)) _d.call(_o);
838
1066
  }
839
1067
  finally { if (e_8) throw e_8.error; }
840
1068
  }
@@ -843,8 +1071,8 @@ var DockviewComponent = /** @class */ (function (_super) {
843
1071
  * To remove a group we cannot call this.removeGroup(...) since this makes assumptions about
844
1072
  * the underlying HTMLElement existing in the Gridview.
845
1073
  */
846
- for (var _r = __values(this.groups), _s = _r.next(); !_s.done; _s = _r.next()) {
847
- var group = _s.value;
1074
+ for (var _s = __values(this.groups), _t = _s.next(); !_t.done; _t = _s.next()) {
1075
+ var group = _t.value;
848
1076
  group.dispose();
849
1077
  this._groups.delete(group.id);
850
1078
  this._onDidRemoveGroup.fire(group);
@@ -853,21 +1081,21 @@ var DockviewComponent = /** @class */ (function (_super) {
853
1081
  catch (e_10_1) { e_10 = { error: e_10_1 }; }
854
1082
  finally {
855
1083
  try {
856
- if (_s && !_s.done && (_f = _r.return)) _f.call(_r);
1084
+ if (_t && !_t.done && (_f = _s.return)) _f.call(_s);
857
1085
  }
858
1086
  finally { if (e_10) throw e_10.error; }
859
1087
  }
860
1088
  try {
861
1089
  // iterate over a reassigned array since original array will be modified
862
- for (var _t = __values(__spreadArray([], __read(this._floatingGroups), false)), _u = _t.next(); !_u.done; _u = _t.next()) {
863
- var floatingGroup = _u.value;
1090
+ for (var _u = __values(__spreadArray([], __read(this._floatingGroups), false)), _v = _u.next(); !_v.done; _v = _u.next()) {
1091
+ var floatingGroup = _v.value;
864
1092
  floatingGroup.dispose();
865
1093
  }
866
1094
  }
867
1095
  catch (e_11_1) { e_11 = { error: e_11_1 }; }
868
1096
  finally {
869
1097
  try {
870
- if (_u && !_u.done && (_g = _t.return)) _g.call(_t);
1098
+ if (_v && !_v.done && (_g = _u.return)) _g.call(_u);
871
1099
  }
872
1100
  finally { if (e_11) throw e_11.error; }
873
1101
  }
@@ -880,6 +1108,7 @@ var DockviewComponent = /** @class */ (function (_super) {
880
1108
  */
881
1109
  throw err;
882
1110
  }
1111
+ this.updateWatermark();
883
1112
  this._onDidLayoutFromJSON.fire();
884
1113
  };
885
1114
  DockviewComponent.prototype.clear = function () {
@@ -904,9 +1133,6 @@ var DockviewComponent = /** @class */ (function (_super) {
904
1133
  if (hasActiveGroup) {
905
1134
  this.doSetGroupAndPanelActive(undefined);
906
1135
  }
907
- if (hasActivePanel) {
908
- this._onDidActivePanelChange.fire(undefined);
909
- }
910
1136
  this.gridview.clear();
911
1137
  };
912
1138
  DockviewComponent.prototype.closeAllGroups = function () {
@@ -958,6 +1184,7 @@ var DockviewComponent = /** @class */ (function (_super) {
958
1184
  var group = this.orthogonalize((0, droptarget_1.directionToPosition)(options.position.direction));
959
1185
  var panel_1 = this.createPanel(options, group);
960
1186
  group.model.openPanel(panel_1);
1187
+ this.doSetGroupAndPanelActive(group);
961
1188
  return panel_1;
962
1189
  }
963
1190
  }
@@ -969,6 +1196,7 @@ var DockviewComponent = /** @class */ (function (_super) {
969
1196
  var target = (0, baseComponentGridview_1.toTarget)(((_b = options.position) === null || _b === void 0 ? void 0 : _b.direction) || 'within');
970
1197
  if (options.floating) {
971
1198
  var group = this.createGroup();
1199
+ this._onDidAddGroup.fire(group);
972
1200
  var o = typeof options.floating === 'object' &&
973
1201
  options.floating !== null
974
1202
  ? options.floating
@@ -976,16 +1204,16 @@ var DockviewComponent = /** @class */ (function (_super) {
976
1204
  this.addFloatingGroup(group, o, {
977
1205
  inDragMode: false,
978
1206
  skipRemoveGroup: true,
1207
+ skipActiveGroup: true,
979
1208
  });
980
- this._onDidAddGroup.fire(group);
981
1209
  panel = this.createPanel(options, group);
982
1210
  group.model.openPanel(panel);
983
- this.doSetGroupAndPanelActive(group);
984
1211
  }
985
- else if (referenceGroup.api.location === 'floating' ||
1212
+ else if (referenceGroup.api.location.type === 'floating' ||
986
1213
  target === 'center') {
987
1214
  panel = this.createPanel(options, referenceGroup);
988
1215
  referenceGroup.model.openPanel(panel);
1216
+ this.doSetGroupAndPanelActive(referenceGroup);
989
1217
  }
990
1218
  else {
991
1219
  var location_1 = (0, gridview_1.getGridLocation)(referenceGroup.element);
@@ -993,10 +1221,12 @@ var DockviewComponent = /** @class */ (function (_super) {
993
1221
  var group = this.createGroupAtLocation(relativeLocation);
994
1222
  panel = this.createPanel(options, group);
995
1223
  group.model.openPanel(panel);
1224
+ this.doSetGroupAndPanelActive(group);
996
1225
  }
997
1226
  }
998
1227
  else if (options.floating) {
999
1228
  var group = this.createGroup();
1229
+ this._onDidAddGroup.fire(group);
1000
1230
  var o = typeof options.floating === 'object' &&
1001
1231
  options.floating !== null
1002
1232
  ? options.floating
@@ -1004,16 +1234,16 @@ var DockviewComponent = /** @class */ (function (_super) {
1004
1234
  this.addFloatingGroup(group, o, {
1005
1235
  inDragMode: false,
1006
1236
  skipRemoveGroup: true,
1237
+ skipActiveGroup: true,
1007
1238
  });
1008
- this._onDidAddGroup.fire(group);
1009
1239
  panel = this.createPanel(options, group);
1010
1240
  group.model.openPanel(panel);
1011
- this.doSetGroupAndPanelActive(group);
1012
1241
  }
1013
1242
  else {
1014
1243
  var group = this.createGroupAtLocation();
1015
1244
  panel = this.createPanel(options, group);
1016
1245
  group.model.openPanel(panel);
1246
+ this.doSetGroupAndPanelActive(group);
1017
1247
  }
1018
1248
  return panel;
1019
1249
  };
@@ -1026,13 +1256,15 @@ var DockviewComponent = /** @class */ (function (_super) {
1026
1256
  if (!group) {
1027
1257
  throw new Error("cannot remove panel ".concat(panel.id, ". it's missing a group."));
1028
1258
  }
1029
- group.model.removePanel(panel);
1259
+ group.model.removePanel(panel, {
1260
+ skipSetActiveGroup: options.skipSetActiveGroup,
1261
+ });
1030
1262
  if (!options.skipDispose) {
1031
- this.overlayRenderContainer.detatch(panel);
1263
+ panel.group.model.renderContainer.detatch(panel);
1032
1264
  panel.dispose();
1033
1265
  }
1034
1266
  if (group.size === 0 && options.removeEmptyGroup) {
1035
- this.removeGroup(group);
1267
+ this.removeGroup(group, { skipActive: options.skipSetActiveGroup });
1036
1268
  }
1037
1269
  };
1038
1270
  DockviewComponent.prototype.createWatermarkComponent = function () {
@@ -1045,7 +1277,7 @@ var DockviewComponent = /** @class */ (function (_super) {
1045
1277
  };
1046
1278
  DockviewComponent.prototype.updateWatermark = function () {
1047
1279
  var _a, _b;
1048
- if (this.groups.filter(function (x) { return x.api.location === 'grid'; }).length === 0) {
1280
+ if (this.groups.filter(function (x) { return x.api.location.type === 'grid' && x.api.isVisible; }).length === 0) {
1049
1281
  if (!this.watermark) {
1050
1282
  this.watermark = this.createWatermarkComponent();
1051
1283
  this.watermark.init({
@@ -1091,47 +1323,53 @@ var DockviewComponent = /** @class */ (function (_super) {
1091
1323
  }
1092
1324
  else {
1093
1325
  var group_1 = this.orthogonalize((0, droptarget_1.directionToPosition)(options.direction));
1326
+ if (!options.skipSetActive) {
1327
+ this.doSetGroupAndPanelActive(group_1);
1328
+ }
1094
1329
  return group_1;
1095
1330
  }
1096
1331
  var target = (0, baseComponentGridview_1.toTarget)(options.direction || 'within');
1097
1332
  var location_2 = (0, gridview_1.getGridLocation)(referenceGroup.element);
1098
1333
  var relativeLocation = (0, gridview_1.getRelativeLocation)(this.gridview.orientation, location_2, target);
1099
1334
  this.doAddGroup(group, relativeLocation);
1335
+ if (!options.skipSetActive) {
1336
+ this.doSetGroupAndPanelActive(group);
1337
+ }
1100
1338
  return group;
1101
1339
  }
1102
1340
  else {
1103
1341
  this.doAddGroup(group);
1342
+ this.doSetGroupAndPanelActive(group);
1104
1343
  return group;
1105
1344
  }
1106
1345
  };
1107
1346
  DockviewComponent.prototype.removeGroup = function (group, options) {
1347
+ this.doRemoveGroup(group, options);
1348
+ };
1349
+ DockviewComponent.prototype.doRemoveGroup = function (group, options) {
1108
1350
  var e_15, _a;
1109
1351
  var _b;
1110
1352
  var panels = __spreadArray([], __read(group.panels), false); // reassign since group panels will mutate
1111
- try {
1112
- for (var panels_1 = __values(panels), panels_1_1 = panels_1.next(); !panels_1_1.done; panels_1_1 = panels_1.next()) {
1113
- var panel = panels_1_1.value;
1114
- this.removePanel(panel, {
1115
- removeEmptyGroup: false,
1116
- skipDispose: (_b = options === null || options === void 0 ? void 0 : options.skipDispose) !== null && _b !== void 0 ? _b : false,
1117
- });
1118
- }
1119
- }
1120
- catch (e_15_1) { e_15 = { error: e_15_1 }; }
1121
- finally {
1353
+ if (!(options === null || options === void 0 ? void 0 : options.skipDispose)) {
1122
1354
  try {
1123
- if (panels_1_1 && !panels_1_1.done && (_a = panels_1.return)) _a.call(panels_1);
1355
+ for (var panels_1 = __values(panels), panels_1_1 = panels_1.next(); !panels_1_1.done; panels_1_1 = panels_1.next()) {
1356
+ var panel = panels_1_1.value;
1357
+ this.removePanel(panel, {
1358
+ removeEmptyGroup: false,
1359
+ skipDispose: (_b = options === null || options === void 0 ? void 0 : options.skipDispose) !== null && _b !== void 0 ? _b : false,
1360
+ });
1361
+ }
1362
+ }
1363
+ catch (e_15_1) { e_15 = { error: e_15_1 }; }
1364
+ finally {
1365
+ try {
1366
+ if (panels_1_1 && !panels_1_1.done && (_a = panels_1.return)) _a.call(panels_1);
1367
+ }
1368
+ finally { if (e_15) throw e_15.error; }
1124
1369
  }
1125
- finally { if (e_15) throw e_15.error; }
1126
1370
  }
1127
1371
  var activePanel = this.activePanel;
1128
- this.doRemoveGroup(group, options);
1129
- if (this.activePanel !== activePanel) {
1130
- this._onDidActivePanelChange.fire(this.activePanel);
1131
- }
1132
- };
1133
- DockviewComponent.prototype.doRemoveGroup = function (group, options) {
1134
- if (group.api.location === 'floating') {
1372
+ if (group.api.location.type === 'floating') {
1135
1373
  var floatingGroup = this._floatingGroups.find(function (_) { return _.group === group; });
1136
1374
  if (floatingGroup) {
1137
1375
  if (!(options === null || options === void 0 ? void 0 : options.skipDispose)) {
@@ -1143,152 +1381,275 @@ var DockviewComponent = /** @class */ (function (_super) {
1143
1381
  floatingGroup.dispose();
1144
1382
  if (!(options === null || options === void 0 ? void 0 : options.skipActive) && this._activeGroup === group) {
1145
1383
  var groups = Array.from(this._groups.values());
1146
- this.doSetGroupActive(groups.length > 0 ? groups[0].value : undefined);
1384
+ this.doSetGroupAndPanelActive(groups.length > 0 ? groups[0].value : undefined);
1147
1385
  }
1148
1386
  return floatingGroup.group;
1149
1387
  }
1150
1388
  throw new Error('failed to find floating group');
1151
1389
  }
1152
- if (group.api.location === 'popout') {
1153
- var selectedGroup = this._popoutGroups.find(function (_) { return _.group === group; });
1390
+ if (group.api.location.type === 'popout') {
1391
+ var selectedGroup = this._popoutGroups.find(function (_) { return _.popoutGroup === group; });
1154
1392
  if (selectedGroup) {
1155
1393
  if (!(options === null || options === void 0 ? void 0 : options.skipDispose)) {
1156
- selectedGroup.group.dispose();
1394
+ if (!(options === null || options === void 0 ? void 0 : options.skipPopoutAssociated)) {
1395
+ var refGroup = selectedGroup.referenceGroup
1396
+ ? this.getPanel(selectedGroup.referenceGroup)
1397
+ : undefined;
1398
+ if (refGroup) {
1399
+ this.removeGroup(refGroup);
1400
+ }
1401
+ }
1402
+ selectedGroup.popoutGroup.dispose();
1157
1403
  this._groups.delete(group.id);
1158
1404
  this._onDidRemoveGroup.fire(group);
1159
1405
  }
1160
- selectedGroup.dispose();
1406
+ var removedGroup = selectedGroup.disposable.dispose();
1407
+ if (!(options === null || options === void 0 ? void 0 : options.skipPopoutReturn) && removedGroup) {
1408
+ this.doAddGroup(removedGroup, [0]);
1409
+ this.doSetGroupAndPanelActive(removedGroup);
1410
+ }
1161
1411
  if (!(options === null || options === void 0 ? void 0 : options.skipActive) && this._activeGroup === group) {
1162
1412
  var groups = Array.from(this._groups.values());
1163
- this.doSetGroupActive(groups.length > 0 ? groups[0].value : undefined);
1413
+ this.doSetGroupAndPanelActive(groups.length > 0 ? groups[0].value : undefined);
1164
1414
  }
1165
- return selectedGroup.group;
1415
+ this.updateWatermark();
1416
+ return selectedGroup.popoutGroup;
1166
1417
  }
1167
1418
  throw new Error('failed to find popout group');
1168
1419
  }
1169
- return _super.prototype.doRemoveGroup.call(this, group, options);
1420
+ var re = _super.prototype.doRemoveGroup.call(this, group, options);
1421
+ if (!(options === null || options === void 0 ? void 0 : options.skipActive)) {
1422
+ if (this.activePanel !== activePanel) {
1423
+ this._onDidActivePanelChange.fire(this.activePanel);
1424
+ }
1425
+ }
1426
+ return re;
1170
1427
  };
1171
- DockviewComponent.prototype.moveGroupOrPanel = function (destinationGroup, sourceGroupId, sourceItemId, destinationTarget, destinationIndex) {
1172
- var _a, _b, _c;
1428
+ DockviewComponent.prototype.movingLock = function (func) {
1429
+ var isMoving = this._moving;
1430
+ try {
1431
+ this._moving = true;
1432
+ return func();
1433
+ }
1434
+ finally {
1435
+ this._moving = isMoving;
1436
+ }
1437
+ };
1438
+ DockviewComponent.prototype.moveGroupOrPanel = function (options) {
1439
+ var _this = this;
1440
+ var _a;
1441
+ var destinationGroup = options.to.group;
1442
+ var sourceGroupId = options.from.groupId;
1443
+ var sourceItemId = options.from.panelId;
1444
+ var destinationTarget = options.to.position;
1445
+ var destinationIndex = options.to.index;
1173
1446
  var sourceGroup = sourceGroupId
1174
1447
  ? (_a = this._groups.get(sourceGroupId)) === null || _a === void 0 ? void 0 : _a.value
1175
1448
  : undefined;
1449
+ if (!sourceGroup) {
1450
+ throw new Error("Failed to find group id ".concat(sourceGroupId));
1451
+ }
1176
1452
  if (sourceItemId === undefined) {
1177
- if (sourceGroup) {
1178
- this.moveGroup(sourceGroup, destinationGroup, destinationTarget);
1179
- }
1453
+ /**
1454
+ * Moving an entire group into another group
1455
+ */
1456
+ this.moveGroup({
1457
+ from: { group: sourceGroup },
1458
+ to: {
1459
+ group: destinationGroup,
1460
+ position: destinationTarget,
1461
+ },
1462
+ });
1180
1463
  return;
1181
1464
  }
1182
1465
  if (!destinationTarget || destinationTarget === 'center') {
1183
- var groupItem = (_b = sourceGroup === null || sourceGroup === void 0 ? void 0 : sourceGroup.model.removePanel(sourceItemId)) !== null && _b !== void 0 ? _b : this.panels.find(function (panel) { return panel.id === sourceItemId; });
1184
- if (!groupItem) {
1466
+ /**
1467
+ * Dropping a panel within another group
1468
+ */
1469
+ var removedPanel_1 = this.movingLock(function () {
1470
+ return sourceGroup.model.removePanel(sourceItemId, {
1471
+ skipSetActive: false,
1472
+ skipSetActiveGroup: true,
1473
+ });
1474
+ });
1475
+ if (!removedPanel_1) {
1185
1476
  throw new Error("No panel with id ".concat(sourceItemId));
1186
1477
  }
1187
- if ((sourceGroup === null || sourceGroup === void 0 ? void 0 : sourceGroup.model.size) === 0) {
1188
- this.doRemoveGroup(sourceGroup);
1478
+ if (sourceGroup.model.size === 0) {
1479
+ // remove the group and do not set a new group as active
1480
+ this.doRemoveGroup(sourceGroup, { skipActive: true });
1189
1481
  }
1190
- destinationGroup.model.openPanel(groupItem, {
1191
- index: destinationIndex,
1482
+ this.movingLock(function () {
1483
+ return destinationGroup.model.openPanel(removedPanel_1, {
1484
+ index: destinationIndex,
1485
+ skipSetGroupActive: true,
1486
+ });
1487
+ });
1488
+ this.doSetGroupAndPanelActive(destinationGroup);
1489
+ this._onDidMovePanel.fire({
1490
+ panel: removedPanel_1,
1192
1491
  });
1193
1492
  }
1194
1493
  else {
1494
+ /**
1495
+ * Dropping a panel to the extremities of a group which will place that panel
1496
+ * into an adjacent group
1497
+ */
1195
1498
  var referenceLocation = (0, gridview_1.getGridLocation)(destinationGroup.element);
1196
1499
  var targetLocation = (0, gridview_1.getRelativeLocation)(this.gridview.orientation, referenceLocation, destinationTarget);
1197
- if (sourceGroup && sourceGroup.size < 2) {
1198
- var _d = __read((0, array_1.tail)(targetLocation), 2), targetParentLocation = _d[0], to = _d[1];
1199
- if (sourceGroup.api.location === 'grid') {
1500
+ if (sourceGroup.size < 2) {
1501
+ /**
1502
+ * If we are moving from a group which only has one panel left we will consider
1503
+ * moving the group itself rather than moving the panel into a newly created group
1504
+ */
1505
+ var _b = __read((0, array_1.tail)(targetLocation), 2), targetParentLocation = _b[0], to = _b[1];
1506
+ if (sourceGroup.api.location.type === 'grid') {
1200
1507
  var sourceLocation = (0, gridview_1.getGridLocation)(sourceGroup.element);
1201
- var _e = __read((0, array_1.tail)(sourceLocation), 2), sourceParentLocation = _e[0], from = _e[1];
1508
+ var _c = __read((0, array_1.tail)(sourceLocation), 2), sourceParentLocation = _c[0], from = _c[1];
1202
1509
  if ((0, array_1.sequenceEquals)(sourceParentLocation, targetParentLocation)) {
1203
1510
  // special case when 'swapping' two views within same grid location
1204
1511
  // if a group has one tab - we are essentially moving the 'group'
1205
1512
  // which is equivalent to swapping two views in this case
1206
1513
  this.gridview.moveView(sourceParentLocation, from, to);
1514
+ return;
1207
1515
  }
1208
1516
  }
1209
1517
  // source group will become empty so delete the group
1210
- var targetGroup = this.doRemoveGroup(sourceGroup, {
1211
- skipActive: true,
1212
- skipDispose: true,
1518
+ var targetGroup_1 = this.movingLock(function () {
1519
+ return _this.doRemoveGroup(sourceGroup, {
1520
+ skipActive: true,
1521
+ skipDispose: true,
1522
+ });
1213
1523
  });
1214
1524
  // after deleting the group we need to re-evaulate the ref location
1215
1525
  var updatedReferenceLocation = (0, gridview_1.getGridLocation)(destinationGroup.element);
1216
1526
  var location_3 = (0, gridview_1.getRelativeLocation)(this.gridview.orientation, updatedReferenceLocation, destinationTarget);
1217
- this.doAddGroup(targetGroup, location_3);
1527
+ this.movingLock(function () { return _this.doAddGroup(targetGroup_1, location_3); });
1528
+ this.doSetGroupAndPanelActive(targetGroup_1);
1218
1529
  }
1219
1530
  else {
1220
- var groupItem = (_c = sourceGroup === null || sourceGroup === void 0 ? void 0 : sourceGroup.model.removePanel(sourceItemId)) !== null && _c !== void 0 ? _c : this.panels.find(function (panel) { return panel.id === sourceItemId; });
1221
- if (!groupItem) {
1531
+ /**
1532
+ * The group we are removing from has many panels, we need to remove the panels we are moving,
1533
+ * create a new group, add the panels to that new group and add the new group in an appropiate position
1534
+ */
1535
+ var removedPanel_2 = this.movingLock(function () {
1536
+ return sourceGroup.model.removePanel(sourceItemId, {
1537
+ skipSetActive: false,
1538
+ skipSetActiveGroup: true,
1539
+ });
1540
+ });
1541
+ if (!removedPanel_2) {
1222
1542
  throw new Error("No panel with id ".concat(sourceItemId));
1223
1543
  }
1224
1544
  var dropLocation = (0, gridview_1.getRelativeLocation)(this.gridview.orientation, referenceLocation, destinationTarget);
1225
- var group = this.createGroupAtLocation(dropLocation);
1226
- group.model.openPanel(groupItem);
1545
+ var group_2 = this.createGroupAtLocation(dropLocation);
1546
+ this.movingLock(function () {
1547
+ return group_2.model.openPanel(removedPanel_2, {
1548
+ skipSetGroupActive: true,
1549
+ });
1550
+ });
1551
+ this.doSetGroupAndPanelActive(group_2);
1227
1552
  }
1228
1553
  }
1229
1554
  };
1230
- DockviewComponent.prototype.moveGroup = function (sourceGroup, referenceGroup, target) {
1231
- var e_16, _a;
1232
- if (sourceGroup) {
1233
- if (!target || target === 'center') {
1234
- var activePanel = sourceGroup.activePanel;
1235
- var panels = __spreadArray([], __read(sourceGroup.panels), false).map(function (p) {
1236
- return sourceGroup.model.removePanel(p.id);
1555
+ DockviewComponent.prototype.moveGroup = function (options) {
1556
+ var _this = this;
1557
+ var from = options.from.group;
1558
+ var to = options.to.group;
1559
+ var target = options.to.position;
1560
+ if (target === 'center') {
1561
+ var activePanel_1 = from.activePanel;
1562
+ var panels_2 = this.movingLock(function () {
1563
+ return __spreadArray([], __read(from.panels), false).map(function (p) {
1564
+ return from.model.removePanel(p.id, {
1565
+ skipSetActive: true,
1566
+ });
1237
1567
  });
1238
- if ((sourceGroup === null || sourceGroup === void 0 ? void 0 : sourceGroup.model.size) === 0) {
1239
- this.doRemoveGroup(sourceGroup);
1240
- }
1568
+ });
1569
+ if ((from === null || from === void 0 ? void 0 : from.model.size) === 0) {
1570
+ this.doRemoveGroup(from, { skipActive: true });
1571
+ }
1572
+ this.movingLock(function () {
1573
+ var e_16, _a;
1241
1574
  try {
1242
- for (var panels_2 = __values(panels), panels_2_1 = panels_2.next(); !panels_2_1.done; panels_2_1 = panels_2.next()) {
1243
- var panel = panels_2_1.value;
1244
- referenceGroup.model.openPanel(panel, {
1245
- skipSetPanelActive: panel !== activePanel,
1575
+ for (var panels_3 = __values(panels_2), panels_3_1 = panels_3.next(); !panels_3_1.done; panels_3_1 = panels_3.next()) {
1576
+ var panel = panels_3_1.value;
1577
+ to.model.openPanel(panel, {
1578
+ skipSetActive: panel !== activePanel_1,
1579
+ skipSetGroupActive: true,
1246
1580
  });
1247
1581
  }
1248
1582
  }
1249
1583
  catch (e_16_1) { e_16 = { error: e_16_1 }; }
1250
1584
  finally {
1251
1585
  try {
1252
- if (panels_2_1 && !panels_2_1.done && (_a = panels_2.return)) _a.call(panels_2);
1586
+ if (panels_3_1 && !panels_3_1.done && (_a = panels_3.return)) _a.call(panels_3);
1253
1587
  }
1254
1588
  finally { if (e_16) throw e_16.error; }
1255
1589
  }
1256
- }
1257
- else {
1258
- switch (sourceGroup.api.location) {
1259
- case 'grid':
1260
- this.gridview.removeView((0, gridview_1.getGridLocation)(sourceGroup.element));
1261
- break;
1262
- case 'floating': {
1263
- var selectedFloatingGroup = this._floatingGroups.find(function (x) { return x.group === sourceGroup; });
1264
- if (!selectedFloatingGroup) {
1265
- throw new Error('failed to find floating group');
1266
- }
1267
- selectedFloatingGroup.dispose();
1268
- break;
1590
+ });
1591
+ this.doSetGroupAndPanelActive(to);
1592
+ panels_2.forEach(function (panel) {
1593
+ _this._onDidMovePanel.fire({ panel: panel });
1594
+ });
1595
+ }
1596
+ else {
1597
+ switch (from.api.location.type) {
1598
+ case 'grid':
1599
+ this.gridview.removeView((0, gridview_1.getGridLocation)(from.element));
1600
+ break;
1601
+ case 'floating': {
1602
+ var selectedFloatingGroup = this._floatingGroups.find(function (x) { return x.group === from; });
1603
+ if (!selectedFloatingGroup) {
1604
+ throw new Error('failed to find floating group');
1269
1605
  }
1270
- case 'popout': {
1271
- var selectedPopoutGroup = this._popoutGroups.find(function (x) { return x.group === sourceGroup; });
1272
- if (!selectedPopoutGroup) {
1273
- throw new Error('failed to find popout group');
1274
- }
1275
- selectedPopoutGroup.dispose();
1606
+ selectedFloatingGroup.dispose();
1607
+ break;
1608
+ }
1609
+ case 'popout': {
1610
+ var selectedPopoutGroup = this._popoutGroups.find(function (x) { return x.popoutGroup === from; });
1611
+ if (!selectedPopoutGroup) {
1612
+ throw new Error('failed to find popout group');
1276
1613
  }
1614
+ selectedPopoutGroup.disposable.dispose();
1277
1615
  }
1278
- var referenceLocation = (0, gridview_1.getGridLocation)(referenceGroup.element);
1279
- var dropLocation = (0, gridview_1.getRelativeLocation)(this.gridview.orientation, referenceLocation, target);
1280
- this.gridview.addView(sourceGroup, splitview_1.Sizing.Distribute, dropLocation);
1281
1616
  }
1617
+ var referenceLocation = (0, gridview_1.getGridLocation)(to.element);
1618
+ var dropLocation = (0, gridview_1.getRelativeLocation)(this.gridview.orientation, referenceLocation, target);
1619
+ this.gridview.addView(from, splitview_1.Sizing.Distribute, dropLocation);
1620
+ from.panels.forEach(function (panel) {
1621
+ _this._onDidMovePanel.fire({ panel: panel });
1622
+ });
1282
1623
  }
1283
1624
  };
1284
- DockviewComponent.prototype.doSetGroupAndPanelActive = function (group, skipFocus) {
1285
- var _a, _b;
1625
+ DockviewComponent.prototype.doSetGroupActive = function (group) {
1626
+ _super.prototype.doSetGroupActive.call(this, group);
1286
1627
  var activePanel = this.activePanel;
1287
- _super.prototype.doSetGroupActive.call(this, group, skipFocus);
1288
- if (((_a = this._activeGroup) === null || _a === void 0 ? void 0 : _a.activePanel) !== activePanel) {
1289
- this._onDidActivePanelChange.fire((_b = this._activeGroup) === null || _b === void 0 ? void 0 : _b.activePanel);
1628
+ if (!this._moving &&
1629
+ activePanel !== this._onDidActivePanelChange.value) {
1630
+ this._onDidActivePanelChange.fire(activePanel);
1290
1631
  }
1291
1632
  };
1633
+ DockviewComponent.prototype.doSetGroupAndPanelActive = function (group) {
1634
+ _super.prototype.doSetGroupActive.call(this, group);
1635
+ var activePanel = this.activePanel;
1636
+ if (group &&
1637
+ this.hasMaximizedGroup() &&
1638
+ !this.isMaximizedGroup(group)) {
1639
+ this.exitMaximizedGroup();
1640
+ }
1641
+ if (!this._moving &&
1642
+ activePanel !== this._onDidActivePanelChange.value) {
1643
+ this._onDidActivePanelChange.fire(activePanel);
1644
+ }
1645
+ };
1646
+ DockviewComponent.prototype.getNextGroupId = function () {
1647
+ var id = this.nextGroupId.next();
1648
+ while (this._groups.has(id)) {
1649
+ id = this.nextGroupId.next();
1650
+ }
1651
+ return id;
1652
+ };
1292
1653
  DockviewComponent.prototype.createGroup = function (options) {
1293
1654
  var _this = this;
1294
1655
  if (!options) {
@@ -1306,7 +1667,7 @@ var DockviewComponent = /** @class */ (function (_super) {
1306
1667
  }
1307
1668
  }
1308
1669
  var view = new dockviewGroupPanel_1.DockviewGroupPanel(this, id, options);
1309
- view.init({ params: {}, accessor: null }); // required to initialized .part and allow for correct disposal of group
1670
+ view.init({ params: {}, accessor: this });
1310
1671
  if (!this._groups.has(view.id)) {
1311
1672
  var disposable = new lifecycle_1.CompositeDisposable(view.model.onTabDragStart(function (event) {
1312
1673
  _this._onWillDragPanel.fire(event);
@@ -1314,20 +1675,48 @@ var DockviewComponent = /** @class */ (function (_super) {
1314
1675
  _this._onWillDragGroup.fire(event);
1315
1676
  }), view.model.onMove(function (event) {
1316
1677
  var groupId = event.groupId, itemId = event.itemId, target = event.target, index = event.index;
1317
- _this.moveGroupOrPanel(view, groupId, itemId, target, index);
1678
+ _this.moveGroupOrPanel({
1679
+ from: { groupId: groupId, panelId: itemId },
1680
+ to: {
1681
+ group: view,
1682
+ position: target,
1683
+ index: index,
1684
+ },
1685
+ });
1318
1686
  }), view.model.onDidDrop(function (event) {
1319
- _this._onDidDrop.fire(__assign(__assign({}, event), { api: _this._api, group: view }));
1687
+ _this._onDidDrop.fire(event);
1688
+ }), view.model.onWillDrop(function (event) {
1689
+ _this._onWillDrop.fire(event);
1690
+ }), view.model.onWillShowOverlay(function (event) {
1691
+ if (_this.options.disableDnd) {
1692
+ event.preventDefault();
1693
+ return;
1694
+ }
1695
+ _this._onWillShowOverlay.fire(event);
1320
1696
  }), view.model.onDidAddPanel(function (event) {
1697
+ if (_this._moving) {
1698
+ return;
1699
+ }
1321
1700
  _this._onDidAddPanel.fire(event.panel);
1322
1701
  }), view.model.onDidRemovePanel(function (event) {
1702
+ if (_this._moving) {
1703
+ return;
1704
+ }
1323
1705
  _this._onDidRemovePanel.fire(event.panel);
1324
1706
  }), view.model.onDidActivePanelChange(function (event) {
1325
- _this._onDidActivePanelChange.fire(event.panel);
1707
+ if (_this._moving) {
1708
+ return;
1709
+ }
1710
+ if (event.panel !== _this.activePanel) {
1711
+ return;
1712
+ }
1713
+ if (_this._onDidActivePanelChange.value !== event.panel) {
1714
+ _this._onDidActivePanelChange.fire(event.panel);
1715
+ }
1326
1716
  }));
1327
1717
  this._groups.set(view.id, { value: view, disposable: disposable });
1328
1718
  }
1329
- // TODO: must be called after the above listeners have been setup,
1330
- // not an ideal pattern
1719
+ // TODO: must be called after the above listeners have been setup, not an ideal pattern
1331
1720
  view.initialize();
1332
1721
  return view;
1333
1722
  };
@@ -1358,4 +1747,3 @@ var DockviewComponent = /** @class */ (function (_super) {
1358
1747
  return DockviewComponent;
1359
1748
  }(baseComponentGridview_1.BaseGrid));
1360
1749
  exports.DockviewComponent = DockviewComponent;
1361
- //# sourceMappingURL=dockviewComponent.js.map