dockview-core 1.9.2 → 1.10.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 (536) hide show
  1. package/dist/cjs/api/component.api.d.ts +25 -6
  2. package/dist/cjs/api/component.api.js +27 -5
  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 +23 -7
  6. package/dist/cjs/api/dockviewPanelApi.js +49 -12
  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 +20 -9
  10. package/dist/cjs/api/panelApi.js +30 -30
  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 +577 -197
  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 +79 -34
  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 +7 -3
  60. package/dist/cjs/dockview/options.js +0 -1
  61. package/dist/cjs/dockview/types.d.ts +1 -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 +4 -5
  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 +2 -3
  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 +0 -1
  104. package/dist/cjs/paneview/paneview.js +0 -1
  105. package/dist/cjs/paneview/paneviewComponent.d.ts +0 -1
  106. package/dist/cjs/paneview/paneviewComponent.js +0 -1
  107. package/dist/cjs/paneview/paneviewPanel.d.ts +0 -1
  108. package/dist/cjs/paneview/paneviewPanel.js +0 -1
  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 +0 -1
  118. package/dist/cjs/splitview/splitviewComponent.js +0 -1
  119. package/dist/cjs/splitview/splitviewPanel.d.ts +2 -3
  120. package/dist/cjs/splitview/splitviewPanel.js +3 -4
  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 +1261 -526
  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 +1260 -525
  134. package/dist/dockview-core.amd.noStyle.js.map +1 -1
  135. package/dist/dockview-core.cjs.js +1261 -526
  136. package/dist/dockview-core.cjs.js.map +1 -1
  137. package/dist/dockview-core.esm.js +1259 -527
  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 +1261 -526
  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 +1260 -525
  148. package/dist/dockview-core.noStyle.js.map +1 -1
  149. package/dist/esm/api/component.api.d.ts +25 -6
  150. package/dist/esm/api/component.api.js +19 -5
  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 +23 -7
  154. package/dist/esm/api/dockviewPanelApi.js +46 -13
  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 +20 -9
  158. package/dist/esm/api/panelApi.js +23 -30
  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 +520 -162
  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 +79 -34
  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 +7 -3
  208. package/dist/esm/dockview/options.js +0 -1
  209. package/dist/esm/dockview/types.d.ts +1 -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 +4 -5
  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 +2 -3
  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 +0 -1
  252. package/dist/esm/paneview/paneview.js +0 -1
  253. package/dist/esm/paneview/paneviewComponent.d.ts +0 -1
  254. package/dist/esm/paneview/paneviewComponent.js +0 -1
  255. package/dist/esm/paneview/paneviewPanel.d.ts +0 -1
  256. package/dist/esm/paneview/paneviewPanel.js +0 -1
  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 +0 -1
  266. package/dist/esm/splitview/splitviewComponent.js +0 -1
  267. package/dist/esm/splitview/splitviewPanel.d.ts +2 -3
  268. package/dist/esm/splitview/splitviewPanel.js +3 -4
  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
  }
@@ -297,12 +337,41 @@ var DockviewComponent = /** @class */ (function (_super) {
297
337
  });
298
338
  _this.addDisposables(_this._rootDropTarget.onDrop(function (event) {
299
339
  var _a;
340
+ var willDropEvent = new dockviewGroupPanelModel_1.DockviewWillDropEvent({
341
+ nativeEvent: event.nativeEvent,
342
+ position: event.position,
343
+ panel: undefined,
344
+ api: _this._api,
345
+ group: undefined,
346
+ getData: dataTransfer_1.getPanelData,
347
+ kind: 'content',
348
+ });
349
+ _this._onWillDrop.fire(willDropEvent);
350
+ if (willDropEvent.defaultPrevented) {
351
+ return;
352
+ }
300
353
  var data = (0, dataTransfer_1.getPanelData)();
301
354
  if (data) {
302
- _this.moveGroupOrPanel(_this.orthogonalize(event.position), data.groupId, (_a = data.panelId) !== null && _a !== void 0 ? _a : undefined, 'center');
355
+ _this.moveGroupOrPanel({
356
+ from: {
357
+ groupId: data.groupId,
358
+ panelId: (_a = data.panelId) !== null && _a !== void 0 ? _a : undefined,
359
+ },
360
+ to: {
361
+ group: _this.orthogonalize(event.position),
362
+ position: 'center',
363
+ },
364
+ });
303
365
  }
304
366
  else {
305
- _this._onDidDrop.fire(__assign(__assign({}, event), { api: _this._api, group: null, getData: dataTransfer_1.getPanelData }));
367
+ _this._onDidDrop.fire(new dockviewGroupPanelModel_1.DockviewDidDropEvent({
368
+ nativeEvent: event.nativeEvent,
369
+ position: event.position,
370
+ panel: undefined,
371
+ api: _this._api,
372
+ group: undefined,
373
+ getData: dataTransfer_1.getPanelData,
374
+ }));
306
375
  }
307
376
  }), _this._rootDropTarget);
308
377
  _this._api = new component_api_1.DockviewApi(_this);
@@ -356,77 +425,219 @@ var DockviewComponent = /** @class */ (function (_super) {
356
425
  enumerable: false,
357
426
  configurable: true
358
427
  });
359
- DockviewComponent.prototype.addPopoutGroup = function (item, options) {
428
+ DockviewComponent.prototype.addPopoutGroup = function (itemToPopout, options) {
360
429
  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();
430
+ var _a, _b, _c;
431
+ if (itemToPopout instanceof dockviewPanel_1.DockviewPanel &&
432
+ itemToPopout.group.size === 1) {
433
+ return this.addPopoutGroup(itemToPopout.group);
434
+ }
435
+ var theme = getDockviewTheme(this.gridview.element);
436
+ var element = this.element;
437
+ function getBox() {
438
+ if (options === null || options === void 0 ? void 0 : options.position) {
439
+ return options.position;
373
440
  }
374
- }
375
- else {
376
- group = item;
377
- if (!box) {
378
- box = group.element.getBoundingClientRect();
441
+ if (itemToPopout instanceof dockviewGroupPanel_1.DockviewGroupPanel) {
442
+ return itemToPopout.element.getBoundingClientRect();
379
443
  }
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
- },
444
+ if (itemToPopout.group) {
445
+ return itemToPopout.group.element.getBoundingClientRect();
446
+ }
447
+ return element.getBoundingClientRect();
448
+ }
449
+ var box = getBox();
450
+ 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;
451
+ if (itemToPopout.api.location.type === 'grid') {
452
+ itemToPopout.api.setHidden(true);
453
+ }
454
+ var _window = new popoutWindow_1.PopoutWindow("".concat(this.id, "-").concat(groupId), // unique id
455
+ theme !== null && theme !== void 0 ? theme : '', {
456
+ url: (_c = options === null || options === void 0 ? void 0 : options.popoutUrl) !== null && _c !== void 0 ? _c : '/popout.html',
457
+ left: window.screenX + box.left,
458
+ top: window.screenY + box.top,
459
+ width: box.width,
460
+ height: box.height,
461
+ onDidOpen: options === null || options === void 0 ? void 0 : options.onDidOpen,
462
+ onWillClose: options === null || options === void 0 ? void 0 : options.onWillClose,
397
463
  });
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]);
464
+ var popoutWindowDisposable = new lifecycle_1.CompositeDisposable(_window, _window.onDidClose(function () {
465
+ popoutWindowDisposable.dispose();
405
466
  }));
406
- this._popoutGroups.push(popoutWindow);
407
- this.updateWatermark();
467
+ return _window
468
+ .open()
469
+ .then(function (popoutContainer) {
470
+ var _a;
471
+ if (_window.isDisposed) {
472
+ return;
473
+ }
474
+ if (popoutContainer === null) {
475
+ popoutWindowDisposable.dispose();
476
+ return;
477
+ }
478
+ var gready = document.createElement('div');
479
+ gready.className = 'dv-overlay-render-container';
480
+ var overlayRenderContainer = new overlayRenderContainer_1.OverlayRenderContainer(gready);
481
+ var referenceGroup = itemToPopout instanceof dockviewPanel_1.DockviewPanel
482
+ ? itemToPopout.group
483
+ : itemToPopout;
484
+ var referenceLocation = itemToPopout.api.location.type;
485
+ var group = (_a = options === null || options === void 0 ? void 0 : options.overridePopoutGroup) !== null && _a !== void 0 ? _a : _this.createGroup({ id: groupId });
486
+ group.model.renderContainer = overlayRenderContainer;
487
+ if (!(options === null || options === void 0 ? void 0 : options.overridePopoutGroup)) {
488
+ _this._onDidAddGroup.fire(group);
489
+ }
490
+ if (itemToPopout instanceof dockviewPanel_1.DockviewPanel) {
491
+ _this.movingLock(function () {
492
+ var panel = referenceGroup.model.removePanel(itemToPopout);
493
+ group.model.openPanel(panel);
494
+ });
495
+ }
496
+ else {
497
+ _this.movingLock(function () {
498
+ return moveGroupWithoutDestroying({
499
+ from: referenceGroup,
500
+ to: group,
501
+ });
502
+ });
503
+ switch (referenceLocation) {
504
+ case 'grid':
505
+ referenceGroup.api.setHidden(true);
506
+ break;
507
+ case 'floating':
508
+ case 'popout':
509
+ _this.removeGroup(referenceGroup);
510
+ break;
511
+ }
512
+ }
513
+ popoutContainer.classList.add('dv-dockview');
514
+ popoutContainer.style.overflow = 'hidden';
515
+ popoutContainer.appendChild(gready);
516
+ popoutContainer.appendChild(group.element);
517
+ group.model.location = {
518
+ type: 'popout',
519
+ getWindow: function () { return _window.window; },
520
+ };
521
+ _this.doSetGroupAndPanelActive(group);
522
+ popoutWindowDisposable.addDisposables(group.api.onDidActiveChange(function (event) {
523
+ var _a;
524
+ if (event.isActive) {
525
+ (_a = _window.window) === null || _a === void 0 ? void 0 : _a.focus();
526
+ }
527
+ }), group.api.onWillFocus(function () {
528
+ var _a;
529
+ (_a = _window.window) === null || _a === void 0 ? void 0 : _a.focus();
530
+ }));
531
+ var returnedGroup;
532
+ var value = {
533
+ window: _window,
534
+ popoutGroup: group,
535
+ referenceGroup: _this.getPanel(referenceGroup.id)
536
+ ? referenceGroup.id
537
+ : undefined,
538
+ disposable: {
539
+ dispose: function () {
540
+ popoutWindowDisposable.dispose();
541
+ return returnedGroup;
542
+ },
543
+ },
544
+ };
545
+ popoutWindowDisposable.addDisposables(
546
+ /**
547
+ * ResizeObserver seems slow here, I do not know why but we don't need it
548
+ * since we can reply on the window resize event as we will occupy the full
549
+ * window dimensions
550
+ */
551
+ (0, events_1.addDisposableWindowListener)(_window.window, 'resize', function () {
552
+ group.layout(window.innerWidth, window.innerHeight);
553
+ }), overlayRenderContainer, lifecycle_1.Disposable.from(function () {
554
+ if (_this.getPanel(referenceGroup.id)) {
555
+ _this.movingLock(function () {
556
+ return moveGroupWithoutDestroying({
557
+ from: group,
558
+ to: referenceGroup,
559
+ });
560
+ });
561
+ if (referenceGroup.api.isHidden) {
562
+ referenceGroup.api.setHidden(false);
563
+ }
564
+ if (_this.getPanel(group.id)) {
565
+ _this.doRemoveGroup(group, {
566
+ skipPopoutAssociated: true,
567
+ });
568
+ }
569
+ }
570
+ else {
571
+ if (_this.getPanel(group.id)) {
572
+ var removedGroup = _this.doRemoveGroup(group, {
573
+ skipDispose: true,
574
+ skipActive: true,
575
+ });
576
+ removedGroup.model.renderContainer =
577
+ _this.overlayRenderContainer;
578
+ removedGroup.model.location = { type: 'grid' };
579
+ returnedGroup = removedGroup;
580
+ }
581
+ }
582
+ }));
583
+ _this._popoutGroups.push(value);
584
+ _this.updateWatermark();
585
+ })
586
+ .catch(function (err) {
587
+ console.error(err);
588
+ });
408
589
  };
409
590
  DockviewComponent.prototype.addFloatingGroup = function (item, coord, options) {
410
591
  var _this = this;
411
- var _a, _b, _c, _d, _e, _f;
592
+ var _a, _b, _c, _d, _e, _f, _g;
412
593
  var group;
413
594
  if (item instanceof dockviewPanel_1.DockviewPanel) {
414
595
  group = this.createGroup();
415
- this.removePanel(item, {
416
- removeEmptyGroup: true,
417
- skipDispose: true,
596
+ this._onDidAddGroup.fire(group);
597
+ this.movingLock(function () {
598
+ return _this.removePanel(item, {
599
+ removeEmptyGroup: true,
600
+ skipDispose: true,
601
+ skipSetActiveGroup: true,
602
+ });
418
603
  });
419
- group.model.openPanel(item);
604
+ group.model.openPanel(item, { skipSetGroupActive: true });
420
605
  }
421
606
  else {
422
607
  group = item;
608
+ var popoutReferenceGroupId = (_a = this._popoutGroups.find(function (_) { return _.popoutGroup === group; })) === null || _a === void 0 ? void 0 : _a.referenceGroup;
609
+ var popoutReferenceGroup_1 = popoutReferenceGroupId
610
+ ? this.getPanel(popoutReferenceGroupId)
611
+ : undefined;
423
612
  var skip = typeof (options === null || options === void 0 ? void 0 : options.skipRemoveGroup) === 'boolean' &&
424
613
  options.skipRemoveGroup;
425
614
  if (!skip) {
426
- this.doRemoveGroup(item, { skipDispose: true });
615
+ if (popoutReferenceGroup_1) {
616
+ this.movingLock(function () {
617
+ return moveGroupWithoutDestroying({
618
+ from: item,
619
+ to: popoutReferenceGroup_1,
620
+ });
621
+ });
622
+ this.doRemoveGroup(item, {
623
+ skipPopoutReturn: true,
624
+ skipPopoutAssociated: true,
625
+ });
626
+ this.doRemoveGroup(popoutReferenceGroup_1, {
627
+ skipDispose: true,
628
+ });
629
+ group = popoutReferenceGroup_1;
630
+ }
631
+ else {
632
+ this.doRemoveGroup(item, {
633
+ skipDispose: true,
634
+ skipPopoutReturn: true,
635
+ skipPopoutAssociated: !!popoutReferenceGroup_1,
636
+ });
637
+ }
427
638
  }
428
639
  }
429
- group.model.location = 'floating';
640
+ group.model.location = { type: 'floating' };
430
641
  var overlayLeft = typeof (coord === null || coord === void 0 ? void 0 : coord.x) === 'number'
431
642
  ? Math.max(coord.x, 0)
432
643
  : constants_1.DEFAULT_FLOATING_GROUP_POSITION.left;
@@ -436,16 +647,16 @@ var DockviewComponent = /** @class */ (function (_super) {
436
647
  var overlay = new overlay_1.Overlay({
437
648
  container: this.gridview.element,
438
649
  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,
650
+ height: (_b = coord === null || coord === void 0 ? void 0 : coord.height) !== null && _b !== void 0 ? _b : 300,
651
+ width: (_c = coord === null || coord === void 0 ? void 0 : coord.width) !== null && _c !== void 0 ? _c : 300,
441
652
  left: overlayLeft,
442
653
  top: overlayTop,
443
654
  minimumInViewportWidth: this.options.floatingGroupBounds === 'boundedWithinViewport'
444
655
  ? 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,
656
+ : (_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
657
  minimumInViewportHeight: this.options.floatingGroupBounds === 'boundedWithinViewport'
447
658
  ? 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,
659
+ : (_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
660
  });
450
661
  var el = group.element.querySelector('.void-container');
451
662
  if (!el) {
@@ -476,12 +687,15 @@ var DockviewComponent = /** @class */ (function (_super) {
476
687
  }), {
477
688
  dispose: function () {
478
689
  disposable.dispose();
479
- group.model.location = 'grid';
690
+ group.model.location = { type: 'grid' };
480
691
  (0, array_1.remove)(_this._floatingGroups, floatingGroupPanel);
481
692
  _this.updateWatermark();
482
693
  },
483
694
  });
484
695
  this._floatingGroups.push(floatingGroupPanel);
696
+ if (!(options === null || options === void 0 ? void 0 : options.skipActiveGroup)) {
697
+ this.doSetGroupAndPanelActive(group);
698
+ }
485
699
  this.updateWatermark();
486
700
  };
487
701
  DockviewComponent.prototype.orthogonalize = function (position) {
@@ -595,8 +809,8 @@ var DockviewComponent = /** @class */ (function (_super) {
595
809
  return this.panels.find(function (panel) { return panel.id === id; });
596
810
  };
597
811
  DockviewComponent.prototype.setActivePanel = function (panel) {
598
- this.doSetGroupActive(panel.group);
599
812
  panel.group.model.openPanel(panel);
813
+ this.doSetGroupAndPanelActive(panel.group);
600
814
  };
601
815
  DockviewComponent.prototype.moveToNext = function (options) {
602
816
  var _a;
@@ -659,7 +873,8 @@ var DockviewComponent = /** @class */ (function (_super) {
659
873
  });
660
874
  var popoutGroups = this._popoutGroups.map(function (group) {
661
875
  return {
662
- data: group.group.toJSON(),
876
+ data: group.popoutGroup.toJSON(),
877
+ gridReferenceGroup: group.referenceGroup,
663
878
  position: group.window.dimensions(),
664
879
  };
665
880
  });
@@ -679,7 +894,7 @@ var DockviewComponent = /** @class */ (function (_super) {
679
894
  DockviewComponent.prototype.fromJSON = function (data) {
680
895
  var e_5, _a, e_6, _b, e_7, _c, e_8, _d, e_9, _e, e_10, _f, e_11, _g;
681
896
  var _this = this;
682
- var _h, _j;
897
+ var _h, _j, _k;
683
898
  this.clear();
684
899
  if (typeof data !== 'object' || data === null) {
685
900
  throw new Error('serialized layout must be a non-null object');
@@ -729,7 +944,7 @@ var DockviewComponent = /** @class */ (function (_super) {
729
944
  var isActive = typeof activeView === 'string' &&
730
945
  activeView === panel.id;
731
946
  group.model.openPanel(panel, {
732
- skipSetPanelActive: !isActive,
947
+ skipSetActive: !isActive,
733
948
  skipSetGroupActive: true,
734
949
  });
735
950
  }
@@ -771,11 +986,16 @@ var DockviewComponent = /** @class */ (function (_super) {
771
986
  try {
772
987
  for (var serializedPopoutGroups_1 = __values(serializedPopoutGroups), serializedPopoutGroups_1_1 = serializedPopoutGroups_1.next(); !serializedPopoutGroups_1_1.done; serializedPopoutGroups_1_1 = serializedPopoutGroups_1.next()) {
773
988
  var serializedPopoutGroup = serializedPopoutGroups_1_1.value;
774
- var data_2 = serializedPopoutGroup.data, position = serializedPopoutGroup.position;
989
+ var data_2 = serializedPopoutGroup.data, position = serializedPopoutGroup.position, gridReferenceGroup = serializedPopoutGroup.gridReferenceGroup;
775
990
  var group = createGroupFromSerializedState_1(data_2);
776
- this.addPopoutGroup(group, {
991
+ this.addPopoutGroup((_k = (gridReferenceGroup
992
+ ? this.getPanel(gridReferenceGroup)
993
+ : undefined)) !== null && _k !== void 0 ? _k : group, {
777
994
  skipRemoveGroup: true,
778
995
  position: position !== null && position !== void 0 ? position : undefined,
996
+ overridePopoutGroup: gridReferenceGroup
997
+ ? group
998
+ : undefined,
779
999
  });
780
1000
  }
781
1001
  }
@@ -787,15 +1007,15 @@ var DockviewComponent = /** @class */ (function (_super) {
787
1007
  finally { if (e_6) throw e_6.error; }
788
1008
  }
789
1009
  try {
790
- for (var _k = __values(this._floatingGroups), _l = _k.next(); !_l.done; _l = _k.next()) {
791
- var floatingGroup = _l.value;
1010
+ for (var _l = __values(this._floatingGroups), _m = _l.next(); !_m.done; _m = _l.next()) {
1011
+ var floatingGroup = _m.value;
792
1012
  floatingGroup.overlay.setBounds();
793
1013
  }
794
1014
  }
795
1015
  catch (e_7_1) { e_7 = { error: e_7_1 }; }
796
1016
  finally {
797
1017
  try {
798
- if (_l && !_l.done && (_c = _k.return)) _c.call(_k);
1018
+ if (_m && !_m.done && (_c = _l.return)) _c.call(_l);
799
1019
  }
800
1020
  finally { if (e_7) throw e_7.error; }
801
1021
  }
@@ -811,11 +1031,11 @@ var DockviewComponent = /** @class */ (function (_super) {
811
1031
  /**
812
1032
  * Takes all the successfully created groups and remove all of their panels.
813
1033
  */
814
- for (var _m = __values(this.groups), _o = _m.next(); !_o.done; _o = _m.next()) {
815
- var group = _o.value;
1034
+ for (var _o = __values(this.groups), _p = _o.next(); !_p.done; _p = _o.next()) {
1035
+ var group = _p.value;
816
1036
  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;
1037
+ for (var _q = (e_9 = void 0, __values(group.panels)), _r = _q.next(); !_r.done; _r = _q.next()) {
1038
+ var panel = _r.value;
819
1039
  this.removePanel(panel, {
820
1040
  removeEmptyGroup: false,
821
1041
  skipDispose: false,
@@ -825,7 +1045,7 @@ var DockviewComponent = /** @class */ (function (_super) {
825
1045
  catch (e_9_1) { e_9 = { error: e_9_1 }; }
826
1046
  finally {
827
1047
  try {
828
- if (_q && !_q.done && (_e = _p.return)) _e.call(_p);
1048
+ if (_r && !_r.done && (_e = _q.return)) _e.call(_q);
829
1049
  }
830
1050
  finally { if (e_9) throw e_9.error; }
831
1051
  }
@@ -834,7 +1054,7 @@ var DockviewComponent = /** @class */ (function (_super) {
834
1054
  catch (e_8_1) { e_8 = { error: e_8_1 }; }
835
1055
  finally {
836
1056
  try {
837
- if (_o && !_o.done && (_d = _m.return)) _d.call(_m);
1057
+ if (_p && !_p.done && (_d = _o.return)) _d.call(_o);
838
1058
  }
839
1059
  finally { if (e_8) throw e_8.error; }
840
1060
  }
@@ -843,8 +1063,8 @@ var DockviewComponent = /** @class */ (function (_super) {
843
1063
  * To remove a group we cannot call this.removeGroup(...) since this makes assumptions about
844
1064
  * the underlying HTMLElement existing in the Gridview.
845
1065
  */
846
- for (var _r = __values(this.groups), _s = _r.next(); !_s.done; _s = _r.next()) {
847
- var group = _s.value;
1066
+ for (var _s = __values(this.groups), _t = _s.next(); !_t.done; _t = _s.next()) {
1067
+ var group = _t.value;
848
1068
  group.dispose();
849
1069
  this._groups.delete(group.id);
850
1070
  this._onDidRemoveGroup.fire(group);
@@ -853,21 +1073,21 @@ var DockviewComponent = /** @class */ (function (_super) {
853
1073
  catch (e_10_1) { e_10 = { error: e_10_1 }; }
854
1074
  finally {
855
1075
  try {
856
- if (_s && !_s.done && (_f = _r.return)) _f.call(_r);
1076
+ if (_t && !_t.done && (_f = _s.return)) _f.call(_s);
857
1077
  }
858
1078
  finally { if (e_10) throw e_10.error; }
859
1079
  }
860
1080
  try {
861
1081
  // 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;
1082
+ for (var _u = __values(__spreadArray([], __read(this._floatingGroups), false)), _v = _u.next(); !_v.done; _v = _u.next()) {
1083
+ var floatingGroup = _v.value;
864
1084
  floatingGroup.dispose();
865
1085
  }
866
1086
  }
867
1087
  catch (e_11_1) { e_11 = { error: e_11_1 }; }
868
1088
  finally {
869
1089
  try {
870
- if (_u && !_u.done && (_g = _t.return)) _g.call(_t);
1090
+ if (_v && !_v.done && (_g = _u.return)) _g.call(_u);
871
1091
  }
872
1092
  finally { if (e_11) throw e_11.error; }
873
1093
  }
@@ -880,6 +1100,7 @@ var DockviewComponent = /** @class */ (function (_super) {
880
1100
  */
881
1101
  throw err;
882
1102
  }
1103
+ this.updateWatermark();
883
1104
  this._onDidLayoutFromJSON.fire();
884
1105
  };
885
1106
  DockviewComponent.prototype.clear = function () {
@@ -904,9 +1125,6 @@ var DockviewComponent = /** @class */ (function (_super) {
904
1125
  if (hasActiveGroup) {
905
1126
  this.doSetGroupAndPanelActive(undefined);
906
1127
  }
907
- if (hasActivePanel) {
908
- this._onDidActivePanelChange.fire(undefined);
909
- }
910
1128
  this.gridview.clear();
911
1129
  };
912
1130
  DockviewComponent.prototype.closeAllGroups = function () {
@@ -958,6 +1176,7 @@ var DockviewComponent = /** @class */ (function (_super) {
958
1176
  var group = this.orthogonalize((0, droptarget_1.directionToPosition)(options.position.direction));
959
1177
  var panel_1 = this.createPanel(options, group);
960
1178
  group.model.openPanel(panel_1);
1179
+ this.doSetGroupAndPanelActive(group);
961
1180
  return panel_1;
962
1181
  }
963
1182
  }
@@ -969,6 +1188,7 @@ var DockviewComponent = /** @class */ (function (_super) {
969
1188
  var target = (0, baseComponentGridview_1.toTarget)(((_b = options.position) === null || _b === void 0 ? void 0 : _b.direction) || 'within');
970
1189
  if (options.floating) {
971
1190
  var group = this.createGroup();
1191
+ this._onDidAddGroup.fire(group);
972
1192
  var o = typeof options.floating === 'object' &&
973
1193
  options.floating !== null
974
1194
  ? options.floating
@@ -976,16 +1196,16 @@ var DockviewComponent = /** @class */ (function (_super) {
976
1196
  this.addFloatingGroup(group, o, {
977
1197
  inDragMode: false,
978
1198
  skipRemoveGroup: true,
1199
+ skipActiveGroup: true,
979
1200
  });
980
- this._onDidAddGroup.fire(group);
981
1201
  panel = this.createPanel(options, group);
982
1202
  group.model.openPanel(panel);
983
- this.doSetGroupAndPanelActive(group);
984
1203
  }
985
- else if (referenceGroup.api.location === 'floating' ||
1204
+ else if (referenceGroup.api.location.type === 'floating' ||
986
1205
  target === 'center') {
987
1206
  panel = this.createPanel(options, referenceGroup);
988
1207
  referenceGroup.model.openPanel(panel);
1208
+ this.doSetGroupAndPanelActive(referenceGroup);
989
1209
  }
990
1210
  else {
991
1211
  var location_1 = (0, gridview_1.getGridLocation)(referenceGroup.element);
@@ -993,10 +1213,12 @@ var DockviewComponent = /** @class */ (function (_super) {
993
1213
  var group = this.createGroupAtLocation(relativeLocation);
994
1214
  panel = this.createPanel(options, group);
995
1215
  group.model.openPanel(panel);
1216
+ this.doSetGroupAndPanelActive(group);
996
1217
  }
997
1218
  }
998
1219
  else if (options.floating) {
999
1220
  var group = this.createGroup();
1221
+ this._onDidAddGroup.fire(group);
1000
1222
  var o = typeof options.floating === 'object' &&
1001
1223
  options.floating !== null
1002
1224
  ? options.floating
@@ -1004,16 +1226,16 @@ var DockviewComponent = /** @class */ (function (_super) {
1004
1226
  this.addFloatingGroup(group, o, {
1005
1227
  inDragMode: false,
1006
1228
  skipRemoveGroup: true,
1229
+ skipActiveGroup: true,
1007
1230
  });
1008
- this._onDidAddGroup.fire(group);
1009
1231
  panel = this.createPanel(options, group);
1010
1232
  group.model.openPanel(panel);
1011
- this.doSetGroupAndPanelActive(group);
1012
1233
  }
1013
1234
  else {
1014
1235
  var group = this.createGroupAtLocation();
1015
1236
  panel = this.createPanel(options, group);
1016
1237
  group.model.openPanel(panel);
1238
+ this.doSetGroupAndPanelActive(group);
1017
1239
  }
1018
1240
  return panel;
1019
1241
  };
@@ -1026,13 +1248,15 @@ var DockviewComponent = /** @class */ (function (_super) {
1026
1248
  if (!group) {
1027
1249
  throw new Error("cannot remove panel ".concat(panel.id, ". it's missing a group."));
1028
1250
  }
1029
- group.model.removePanel(panel);
1251
+ group.model.removePanel(panel, {
1252
+ skipSetActiveGroup: options.skipSetActiveGroup,
1253
+ });
1030
1254
  if (!options.skipDispose) {
1031
- this.overlayRenderContainer.detatch(panel);
1255
+ panel.group.model.renderContainer.detatch(panel);
1032
1256
  panel.dispose();
1033
1257
  }
1034
1258
  if (group.size === 0 && options.removeEmptyGroup) {
1035
- this.removeGroup(group);
1259
+ this.removeGroup(group, { skipActive: options.skipSetActiveGroup });
1036
1260
  }
1037
1261
  };
1038
1262
  DockviewComponent.prototype.createWatermarkComponent = function () {
@@ -1045,7 +1269,7 @@ var DockviewComponent = /** @class */ (function (_super) {
1045
1269
  };
1046
1270
  DockviewComponent.prototype.updateWatermark = function () {
1047
1271
  var _a, _b;
1048
- if (this.groups.filter(function (x) { return x.api.location === 'grid'; }).length === 0) {
1272
+ if (this.groups.filter(function (x) { return x.api.location.type === 'grid' && !x.api.isHidden; }).length === 0) {
1049
1273
  if (!this.watermark) {
1050
1274
  this.watermark = this.createWatermarkComponent();
1051
1275
  this.watermark.init({
@@ -1091,47 +1315,53 @@ var DockviewComponent = /** @class */ (function (_super) {
1091
1315
  }
1092
1316
  else {
1093
1317
  var group_1 = this.orthogonalize((0, droptarget_1.directionToPosition)(options.direction));
1318
+ if (!options.skipSetActive) {
1319
+ this.doSetGroupAndPanelActive(group_1);
1320
+ }
1094
1321
  return group_1;
1095
1322
  }
1096
1323
  var target = (0, baseComponentGridview_1.toTarget)(options.direction || 'within');
1097
1324
  var location_2 = (0, gridview_1.getGridLocation)(referenceGroup.element);
1098
1325
  var relativeLocation = (0, gridview_1.getRelativeLocation)(this.gridview.orientation, location_2, target);
1099
1326
  this.doAddGroup(group, relativeLocation);
1327
+ if (!options.skipSetActive) {
1328
+ this.doSetGroupAndPanelActive(group);
1329
+ }
1100
1330
  return group;
1101
1331
  }
1102
1332
  else {
1103
1333
  this.doAddGroup(group);
1334
+ this.doSetGroupAndPanelActive(group);
1104
1335
  return group;
1105
1336
  }
1106
1337
  };
1107
1338
  DockviewComponent.prototype.removeGroup = function (group, options) {
1339
+ this.doRemoveGroup(group, options);
1340
+ };
1341
+ DockviewComponent.prototype.doRemoveGroup = function (group, options) {
1108
1342
  var e_15, _a;
1109
1343
  var _b;
1110
1344
  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 {
1345
+ if (!(options === null || options === void 0 ? void 0 : options.skipDispose)) {
1122
1346
  try {
1123
- if (panels_1_1 && !panels_1_1.done && (_a = panels_1.return)) _a.call(panels_1);
1347
+ for (var panels_1 = __values(panels), panels_1_1 = panels_1.next(); !panels_1_1.done; panels_1_1 = panels_1.next()) {
1348
+ var panel = panels_1_1.value;
1349
+ this.removePanel(panel, {
1350
+ removeEmptyGroup: false,
1351
+ skipDispose: (_b = options === null || options === void 0 ? void 0 : options.skipDispose) !== null && _b !== void 0 ? _b : false,
1352
+ });
1353
+ }
1354
+ }
1355
+ catch (e_15_1) { e_15 = { error: e_15_1 }; }
1356
+ finally {
1357
+ try {
1358
+ if (panels_1_1 && !panels_1_1.done && (_a = panels_1.return)) _a.call(panels_1);
1359
+ }
1360
+ finally { if (e_15) throw e_15.error; }
1124
1361
  }
1125
- finally { if (e_15) throw e_15.error; }
1126
1362
  }
1127
1363
  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') {
1364
+ if (group.api.location.type === 'floating') {
1135
1365
  var floatingGroup = this._floatingGroups.find(function (_) { return _.group === group; });
1136
1366
  if (floatingGroup) {
1137
1367
  if (!(options === null || options === void 0 ? void 0 : options.skipDispose)) {
@@ -1143,152 +1373,275 @@ var DockviewComponent = /** @class */ (function (_super) {
1143
1373
  floatingGroup.dispose();
1144
1374
  if (!(options === null || options === void 0 ? void 0 : options.skipActive) && this._activeGroup === group) {
1145
1375
  var groups = Array.from(this._groups.values());
1146
- this.doSetGroupActive(groups.length > 0 ? groups[0].value : undefined);
1376
+ this.doSetGroupAndPanelActive(groups.length > 0 ? groups[0].value : undefined);
1147
1377
  }
1148
1378
  return floatingGroup.group;
1149
1379
  }
1150
1380
  throw new Error('failed to find floating group');
1151
1381
  }
1152
- if (group.api.location === 'popout') {
1153
- var selectedGroup = this._popoutGroups.find(function (_) { return _.group === group; });
1382
+ if (group.api.location.type === 'popout') {
1383
+ var selectedGroup = this._popoutGroups.find(function (_) { return _.popoutGroup === group; });
1154
1384
  if (selectedGroup) {
1155
1385
  if (!(options === null || options === void 0 ? void 0 : options.skipDispose)) {
1156
- selectedGroup.group.dispose();
1386
+ if (!(options === null || options === void 0 ? void 0 : options.skipPopoutAssociated)) {
1387
+ var refGroup = selectedGroup.referenceGroup
1388
+ ? this.getPanel(selectedGroup.referenceGroup)
1389
+ : undefined;
1390
+ if (refGroup) {
1391
+ this.removeGroup(refGroup);
1392
+ }
1393
+ }
1394
+ selectedGroup.popoutGroup.dispose();
1157
1395
  this._groups.delete(group.id);
1158
1396
  this._onDidRemoveGroup.fire(group);
1159
1397
  }
1160
- selectedGroup.dispose();
1398
+ var removedGroup = selectedGroup.disposable.dispose();
1399
+ if (!(options === null || options === void 0 ? void 0 : options.skipPopoutReturn) && removedGroup) {
1400
+ this.doAddGroup(removedGroup, [0]);
1401
+ this.doSetGroupAndPanelActive(removedGroup);
1402
+ }
1161
1403
  if (!(options === null || options === void 0 ? void 0 : options.skipActive) && this._activeGroup === group) {
1162
1404
  var groups = Array.from(this._groups.values());
1163
- this.doSetGroupActive(groups.length > 0 ? groups[0].value : undefined);
1405
+ this.doSetGroupAndPanelActive(groups.length > 0 ? groups[0].value : undefined);
1164
1406
  }
1165
- return selectedGroup.group;
1407
+ this.updateWatermark();
1408
+ return selectedGroup.popoutGroup;
1166
1409
  }
1167
1410
  throw new Error('failed to find popout group');
1168
1411
  }
1169
- return _super.prototype.doRemoveGroup.call(this, group, options);
1412
+ var re = _super.prototype.doRemoveGroup.call(this, group, options);
1413
+ if (!(options === null || options === void 0 ? void 0 : options.skipActive)) {
1414
+ if (this.activePanel !== activePanel) {
1415
+ this._onDidActivePanelChange.fire(this.activePanel);
1416
+ }
1417
+ }
1418
+ return re;
1170
1419
  };
1171
- DockviewComponent.prototype.moveGroupOrPanel = function (destinationGroup, sourceGroupId, sourceItemId, destinationTarget, destinationIndex) {
1172
- var _a, _b, _c;
1420
+ DockviewComponent.prototype.movingLock = function (func) {
1421
+ var isMoving = this._moving;
1422
+ try {
1423
+ this._moving = true;
1424
+ return func();
1425
+ }
1426
+ finally {
1427
+ this._moving = isMoving;
1428
+ }
1429
+ };
1430
+ DockviewComponent.prototype.moveGroupOrPanel = function (options) {
1431
+ var _this = this;
1432
+ var _a;
1433
+ var destinationGroup = options.to.group;
1434
+ var sourceGroupId = options.from.groupId;
1435
+ var sourceItemId = options.from.panelId;
1436
+ var destinationTarget = options.to.position;
1437
+ var destinationIndex = options.to.index;
1173
1438
  var sourceGroup = sourceGroupId
1174
1439
  ? (_a = this._groups.get(sourceGroupId)) === null || _a === void 0 ? void 0 : _a.value
1175
1440
  : undefined;
1441
+ if (!sourceGroup) {
1442
+ throw new Error("Failed to find group id ".concat(sourceGroupId));
1443
+ }
1176
1444
  if (sourceItemId === undefined) {
1177
- if (sourceGroup) {
1178
- this.moveGroup(sourceGroup, destinationGroup, destinationTarget);
1179
- }
1445
+ /**
1446
+ * Moving an entire group into another group
1447
+ */
1448
+ this.moveGroup({
1449
+ from: { group: sourceGroup },
1450
+ to: {
1451
+ group: destinationGroup,
1452
+ position: destinationTarget,
1453
+ },
1454
+ });
1180
1455
  return;
1181
1456
  }
1182
1457
  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) {
1458
+ /**
1459
+ * Dropping a panel within another group
1460
+ */
1461
+ var removedPanel_1 = this.movingLock(function () {
1462
+ return sourceGroup.model.removePanel(sourceItemId, {
1463
+ skipSetActive: false,
1464
+ skipSetActiveGroup: true,
1465
+ });
1466
+ });
1467
+ if (!removedPanel_1) {
1185
1468
  throw new Error("No panel with id ".concat(sourceItemId));
1186
1469
  }
1187
- if ((sourceGroup === null || sourceGroup === void 0 ? void 0 : sourceGroup.model.size) === 0) {
1188
- this.doRemoveGroup(sourceGroup);
1470
+ if (sourceGroup.model.size === 0) {
1471
+ // remove the group and do not set a new group as active
1472
+ this.doRemoveGroup(sourceGroup, { skipActive: true });
1189
1473
  }
1190
- destinationGroup.model.openPanel(groupItem, {
1191
- index: destinationIndex,
1474
+ this.movingLock(function () {
1475
+ return destinationGroup.model.openPanel(removedPanel_1, {
1476
+ index: destinationIndex,
1477
+ skipSetGroupActive: true,
1478
+ });
1479
+ });
1480
+ this.doSetGroupAndPanelActive(destinationGroup);
1481
+ this._onDidMovePanel.fire({
1482
+ panel: removedPanel_1,
1192
1483
  });
1193
1484
  }
1194
1485
  else {
1486
+ /**
1487
+ * Dropping a panel to the extremities of a group which will place that panel
1488
+ * into an adjacent group
1489
+ */
1195
1490
  var referenceLocation = (0, gridview_1.getGridLocation)(destinationGroup.element);
1196
1491
  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') {
1492
+ if (sourceGroup.size < 2) {
1493
+ /**
1494
+ * If we are moving from a group which only has one panel left we will consider
1495
+ * moving the group itself rather than moving the panel into a newly created group
1496
+ */
1497
+ var _b = __read((0, array_1.tail)(targetLocation), 2), targetParentLocation = _b[0], to = _b[1];
1498
+ if (sourceGroup.api.location.type === 'grid') {
1200
1499
  var sourceLocation = (0, gridview_1.getGridLocation)(sourceGroup.element);
1201
- var _e = __read((0, array_1.tail)(sourceLocation), 2), sourceParentLocation = _e[0], from = _e[1];
1500
+ var _c = __read((0, array_1.tail)(sourceLocation), 2), sourceParentLocation = _c[0], from = _c[1];
1202
1501
  if ((0, array_1.sequenceEquals)(sourceParentLocation, targetParentLocation)) {
1203
1502
  // special case when 'swapping' two views within same grid location
1204
1503
  // if a group has one tab - we are essentially moving the 'group'
1205
1504
  // which is equivalent to swapping two views in this case
1206
1505
  this.gridview.moveView(sourceParentLocation, from, to);
1506
+ return;
1207
1507
  }
1208
1508
  }
1209
1509
  // source group will become empty so delete the group
1210
- var targetGroup = this.doRemoveGroup(sourceGroup, {
1211
- skipActive: true,
1212
- skipDispose: true,
1510
+ var targetGroup_1 = this.movingLock(function () {
1511
+ return _this.doRemoveGroup(sourceGroup, {
1512
+ skipActive: true,
1513
+ skipDispose: true,
1514
+ });
1213
1515
  });
1214
1516
  // after deleting the group we need to re-evaulate the ref location
1215
1517
  var updatedReferenceLocation = (0, gridview_1.getGridLocation)(destinationGroup.element);
1216
1518
  var location_3 = (0, gridview_1.getRelativeLocation)(this.gridview.orientation, updatedReferenceLocation, destinationTarget);
1217
- this.doAddGroup(targetGroup, location_3);
1519
+ this.movingLock(function () { return _this.doAddGroup(targetGroup_1, location_3); });
1520
+ this.doSetGroupAndPanelActive(targetGroup_1);
1218
1521
  }
1219
1522
  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) {
1523
+ /**
1524
+ * The group we are removing from has many panels, we need to remove the panels we are moving,
1525
+ * create a new group, add the panels to that new group and add the new group in an appropiate position
1526
+ */
1527
+ var removedPanel_2 = this.movingLock(function () {
1528
+ return sourceGroup.model.removePanel(sourceItemId, {
1529
+ skipSetActive: false,
1530
+ skipSetActiveGroup: true,
1531
+ });
1532
+ });
1533
+ if (!removedPanel_2) {
1222
1534
  throw new Error("No panel with id ".concat(sourceItemId));
1223
1535
  }
1224
1536
  var dropLocation = (0, gridview_1.getRelativeLocation)(this.gridview.orientation, referenceLocation, destinationTarget);
1225
- var group = this.createGroupAtLocation(dropLocation);
1226
- group.model.openPanel(groupItem);
1537
+ var group_2 = this.createGroupAtLocation(dropLocation);
1538
+ this.movingLock(function () {
1539
+ return group_2.model.openPanel(removedPanel_2, {
1540
+ skipSetGroupActive: true,
1541
+ });
1542
+ });
1543
+ this.doSetGroupAndPanelActive(group_2);
1227
1544
  }
1228
1545
  }
1229
1546
  };
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);
1547
+ DockviewComponent.prototype.moveGroup = function (options) {
1548
+ var _this = this;
1549
+ var from = options.from.group;
1550
+ var to = options.to.group;
1551
+ var target = options.to.position;
1552
+ if (target === 'center') {
1553
+ var activePanel_1 = from.activePanel;
1554
+ var panels_2 = this.movingLock(function () {
1555
+ return __spreadArray([], __read(from.panels), false).map(function (p) {
1556
+ return from.model.removePanel(p.id, {
1557
+ skipSetActive: true,
1558
+ });
1237
1559
  });
1238
- if ((sourceGroup === null || sourceGroup === void 0 ? void 0 : sourceGroup.model.size) === 0) {
1239
- this.doRemoveGroup(sourceGroup);
1240
- }
1560
+ });
1561
+ if ((from === null || from === void 0 ? void 0 : from.model.size) === 0) {
1562
+ this.doRemoveGroup(from, { skipActive: true });
1563
+ }
1564
+ this.movingLock(function () {
1565
+ var e_16, _a;
1241
1566
  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,
1567
+ for (var panels_3 = __values(panels_2), panels_3_1 = panels_3.next(); !panels_3_1.done; panels_3_1 = panels_3.next()) {
1568
+ var panel = panels_3_1.value;
1569
+ to.model.openPanel(panel, {
1570
+ skipSetActive: panel !== activePanel_1,
1571
+ skipSetGroupActive: true,
1246
1572
  });
1247
1573
  }
1248
1574
  }
1249
1575
  catch (e_16_1) { e_16 = { error: e_16_1 }; }
1250
1576
  finally {
1251
1577
  try {
1252
- if (panels_2_1 && !panels_2_1.done && (_a = panels_2.return)) _a.call(panels_2);
1578
+ if (panels_3_1 && !panels_3_1.done && (_a = panels_3.return)) _a.call(panels_3);
1253
1579
  }
1254
1580
  finally { if (e_16) throw e_16.error; }
1255
1581
  }
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;
1582
+ });
1583
+ this.doSetGroupAndPanelActive(to);
1584
+ panels_2.forEach(function (panel) {
1585
+ _this._onDidMovePanel.fire({ panel: panel });
1586
+ });
1587
+ }
1588
+ else {
1589
+ switch (from.api.location.type) {
1590
+ case 'grid':
1591
+ this.gridview.removeView((0, gridview_1.getGridLocation)(from.element));
1592
+ break;
1593
+ case 'floating': {
1594
+ var selectedFloatingGroup = this._floatingGroups.find(function (x) { return x.group === from; });
1595
+ if (!selectedFloatingGroup) {
1596
+ throw new Error('failed to find floating group');
1269
1597
  }
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();
1598
+ selectedFloatingGroup.dispose();
1599
+ break;
1600
+ }
1601
+ case 'popout': {
1602
+ var selectedPopoutGroup = this._popoutGroups.find(function (x) { return x.popoutGroup === from; });
1603
+ if (!selectedPopoutGroup) {
1604
+ throw new Error('failed to find popout group');
1276
1605
  }
1606
+ selectedPopoutGroup.disposable.dispose();
1277
1607
  }
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
1608
  }
1609
+ var referenceLocation = (0, gridview_1.getGridLocation)(to.element);
1610
+ var dropLocation = (0, gridview_1.getRelativeLocation)(this.gridview.orientation, referenceLocation, target);
1611
+ this.gridview.addView(from, splitview_1.Sizing.Distribute, dropLocation);
1612
+ from.panels.forEach(function (panel) {
1613
+ _this._onDidMovePanel.fire({ panel: panel });
1614
+ });
1282
1615
  }
1283
1616
  };
1284
- DockviewComponent.prototype.doSetGroupAndPanelActive = function (group, skipFocus) {
1285
- var _a, _b;
1617
+ DockviewComponent.prototype.doSetGroupActive = function (group) {
1618
+ _super.prototype.doSetGroupActive.call(this, group);
1286
1619
  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);
1620
+ if (!this._moving &&
1621
+ activePanel !== this._onDidActivePanelChange.value) {
1622
+ this._onDidActivePanelChange.fire(activePanel);
1290
1623
  }
1291
1624
  };
1625
+ DockviewComponent.prototype.doSetGroupAndPanelActive = function (group) {
1626
+ _super.prototype.doSetGroupActive.call(this, group);
1627
+ var activePanel = this.activePanel;
1628
+ if (group &&
1629
+ this.hasMaximizedGroup() &&
1630
+ !this.isMaximizedGroup(group)) {
1631
+ this.exitMaximizedGroup();
1632
+ }
1633
+ if (!this._moving &&
1634
+ activePanel !== this._onDidActivePanelChange.value) {
1635
+ this._onDidActivePanelChange.fire(activePanel);
1636
+ }
1637
+ };
1638
+ DockviewComponent.prototype.getNextGroupId = function () {
1639
+ var id = this.nextGroupId.next();
1640
+ while (this._groups.has(id)) {
1641
+ id = this.nextGroupId.next();
1642
+ }
1643
+ return id;
1644
+ };
1292
1645
  DockviewComponent.prototype.createGroup = function (options) {
1293
1646
  var _this = this;
1294
1647
  if (!options) {
@@ -1306,7 +1659,7 @@ var DockviewComponent = /** @class */ (function (_super) {
1306
1659
  }
1307
1660
  }
1308
1661
  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
1662
+ view.init({ params: {}, accessor: this });
1310
1663
  if (!this._groups.has(view.id)) {
1311
1664
  var disposable = new lifecycle_1.CompositeDisposable(view.model.onTabDragStart(function (event) {
1312
1665
  _this._onWillDragPanel.fire(event);
@@ -1314,20 +1667,48 @@ var DockviewComponent = /** @class */ (function (_super) {
1314
1667
  _this._onWillDragGroup.fire(event);
1315
1668
  }), view.model.onMove(function (event) {
1316
1669
  var groupId = event.groupId, itemId = event.itemId, target = event.target, index = event.index;
1317
- _this.moveGroupOrPanel(view, groupId, itemId, target, index);
1670
+ _this.moveGroupOrPanel({
1671
+ from: { groupId: groupId, panelId: itemId },
1672
+ to: {
1673
+ group: view,
1674
+ position: target,
1675
+ index: index,
1676
+ },
1677
+ });
1318
1678
  }), view.model.onDidDrop(function (event) {
1319
- _this._onDidDrop.fire(__assign(__assign({}, event), { api: _this._api, group: view }));
1679
+ _this._onDidDrop.fire(event);
1680
+ }), view.model.onWillDrop(function (event) {
1681
+ _this._onWillDrop.fire(event);
1682
+ }), view.model.onWillShowOverlay(function (event) {
1683
+ if (_this.options.disableDnd) {
1684
+ event.preventDefault();
1685
+ return;
1686
+ }
1687
+ _this._onWillShowOverlay.fire(event);
1320
1688
  }), view.model.onDidAddPanel(function (event) {
1689
+ if (_this._moving) {
1690
+ return;
1691
+ }
1321
1692
  _this._onDidAddPanel.fire(event.panel);
1322
1693
  }), view.model.onDidRemovePanel(function (event) {
1694
+ if (_this._moving) {
1695
+ return;
1696
+ }
1323
1697
  _this._onDidRemovePanel.fire(event.panel);
1324
1698
  }), view.model.onDidActivePanelChange(function (event) {
1325
- _this._onDidActivePanelChange.fire(event.panel);
1699
+ if (_this._moving) {
1700
+ return;
1701
+ }
1702
+ if (event.panel !== _this.activePanel) {
1703
+ return;
1704
+ }
1705
+ if (_this._onDidActivePanelChange.value !== event.panel) {
1706
+ _this._onDidActivePanelChange.fire(event.panel);
1707
+ }
1326
1708
  }));
1327
1709
  this._groups.set(view.id, { value: view, disposable: disposable });
1328
1710
  }
1329
- // TODO: must be called after the above listeners have been setup,
1330
- // not an ideal pattern
1711
+ // TODO: must be called after the above listeners have been setup, not an ideal pattern
1331
1712
  view.initialize();
1332
1713
  return view;
1333
1714
  };
@@ -1358,4 +1739,3 @@ var DockviewComponent = /** @class */ (function (_super) {
1358
1739
  return DockviewComponent;
1359
1740
  }(baseComponentGridview_1.BaseGrid));
1360
1741
  exports.DockviewComponent = DockviewComponent;
1361
- //# sourceMappingURL=dockviewComponent.js.map