dockview 0.0.28 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (342) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +60 -0
  3. package/dist/cjs/actionbar/actionsContainer.d.ts +7 -7
  4. package/dist/cjs/actionbar/actionsContainer.js +26 -26
  5. package/dist/cjs/api/component.api.d.ts +131 -131
  6. package/dist/cjs/api/component.api.js +444 -444
  7. package/dist/cjs/api/gridviewPanelApi.d.ts +36 -36
  8. package/dist/cjs/api/gridviewPanelApi.js +46 -46
  9. package/dist/cjs/api/groupPanelApi.d.ts +44 -44
  10. package/dist/cjs/api/groupPanelApi.js +94 -94
  11. package/dist/cjs/api/groupPanelApi.js.map +1 -1
  12. package/dist/cjs/api/panelApi.d.ts +107 -107
  13. package/dist/cjs/api/panelApi.js +140 -140
  14. package/dist/cjs/api/paneviewPanelApi.d.ts +26 -26
  15. package/dist/cjs/api/paneviewPanelApi.js +56 -56
  16. package/dist/cjs/api/splitviewPanelApi.d.ts +33 -33
  17. package/dist/cjs/api/splitviewPanelApi.js +51 -51
  18. package/dist/cjs/array.d.ts +13 -13
  19. package/dist/cjs/array.js +77 -77
  20. package/dist/cjs/dnd/abstractDragHandler.d.ts +11 -11
  21. package/dist/cjs/dnd/abstractDragHandler.js +115 -115
  22. package/dist/cjs/dnd/dataTransfer.d.ts +56 -56
  23. package/dist/cjs/dnd/dataTransfer.js +144 -144
  24. package/dist/cjs/dnd/dataTransfer.js.map +1 -1
  25. package/dist/cjs/dnd/dnd.d.ts +40 -40
  26. package/dist/cjs/dnd/dnd.js +142 -142
  27. package/dist/cjs/dnd/droptarget.d.ts +37 -37
  28. package/dist/cjs/dnd/droptarget.js +177 -177
  29. package/dist/cjs/dockview/components/tab/defaultTab.d.ts +44 -44
  30. package/dist/cjs/dockview/components/tab/defaultTab.js +186 -186
  31. package/dist/cjs/dockview/components/watermark/watermark.d.ts +20 -20
  32. package/dist/cjs/dockview/components/watermark/watermark.js +99 -99
  33. package/dist/cjs/dockview/defaultGroupPanelView.d.ts +34 -34
  34. package/dist/cjs/dockview/defaultGroupPanelView.js +83 -83
  35. package/dist/cjs/dockview/deserializer.d.ts +14 -14
  36. package/dist/cjs/dockview/deserializer.js +47 -47
  37. package/dist/cjs/dockview/dockviewComponent.d.ts +121 -121
  38. package/dist/cjs/dockview/dockviewComponent.js +692 -692
  39. package/dist/cjs/dockview/dockviewComponent.js.map +1 -1
  40. package/dist/cjs/dockview/dockviewGroupPanel.d.ts +35 -35
  41. package/dist/cjs/dockview/dockviewGroupPanel.js +195 -195
  42. package/dist/cjs/dockview/options.d.ts +79 -79
  43. package/dist/cjs/dockview/options.js +2 -2
  44. package/dist/cjs/dom.d.ts +14 -14
  45. package/dist/cjs/dom.js +182 -182
  46. package/dist/cjs/events.d.ts +23 -23
  47. package/dist/cjs/events.js +87 -87
  48. package/dist/cjs/footnote.d.ts +1 -1
  49. package/dist/cjs/footnote.js +19 -19
  50. package/dist/cjs/footnote.js.map +1 -1
  51. package/dist/cjs/functions.d.ts +1 -1
  52. package/dist/cjs/functions.js +41 -41
  53. package/dist/cjs/gridview/baseComponentGridview.d.ts +98 -98
  54. package/dist/cjs/gridview/baseComponentGridview.js +292 -292
  55. package/dist/cjs/gridview/baseComponentGridview.js.map +1 -1
  56. package/dist/cjs/gridview/basePanelView.d.ts +46 -46
  57. package/dist/cjs/gridview/basePanelView.js +115 -115
  58. package/dist/cjs/gridview/branchNode.d.ts +46 -46
  59. package/dist/cjs/gridview/branchNode.js +342 -342
  60. package/dist/cjs/gridview/gridview.d.ts +123 -123
  61. package/dist/cjs/gridview/gridview.js +477 -477
  62. package/dist/cjs/gridview/gridviewComponent.d.ts +88 -88
  63. package/dist/cjs/gridview/gridviewComponent.js +303 -303
  64. package/dist/cjs/gridview/gridviewComponent.js.map +1 -1
  65. package/dist/cjs/gridview/gridviewPanel.d.ts +62 -62
  66. package/dist/cjs/gridview/gridviewPanel.js +205 -205
  67. package/dist/cjs/gridview/leafNode.d.ts +31 -31
  68. package/dist/cjs/gridview/leafNode.js +164 -164
  69. package/dist/cjs/gridview/options.d.ts +18 -18
  70. package/dist/cjs/gridview/options.js +2 -2
  71. package/dist/cjs/gridview/types.d.ts +3 -3
  72. package/dist/cjs/gridview/types.js +2 -2
  73. package/dist/cjs/groupview/dnd.d.ts +5 -5
  74. package/dist/cjs/groupview/dnd.js +9 -9
  75. package/dist/cjs/groupview/groupPanel.d.ts +41 -41
  76. package/dist/cjs/groupview/groupPanel.js +2 -2
  77. package/dist/cjs/groupview/groupview.d.ts +154 -154
  78. package/dist/cjs/groupview/groupview.js +633 -633
  79. package/dist/cjs/groupview/groupviewPanel.d.ts +18 -18
  80. package/dist/cjs/groupview/groupviewPanel.js +83 -83
  81. package/dist/cjs/groupview/panel/content.d.ts +30 -30
  82. package/dist/cjs/groupview/panel/content.js +99 -99
  83. package/dist/cjs/groupview/panel/hostedPanel.d.ts +22 -22
  84. package/dist/cjs/groupview/panel/hostedPanel.js +56 -56
  85. package/dist/cjs/groupview/panel/hostedPanel.js.map +1 -1
  86. package/dist/cjs/groupview/tab.d.ts +44 -44
  87. package/dist/cjs/groupview/tab.js +182 -182
  88. package/dist/cjs/groupview/titlebar/tabsContainer.d.ts +66 -66
  89. package/dist/cjs/groupview/titlebar/tabsContainer.js +260 -260
  90. package/dist/cjs/groupview/titlebar/tabsContainer.js.map +1 -1
  91. package/dist/cjs/groupview/types.d.ts +59 -59
  92. package/dist/cjs/groupview/types.js +2 -2
  93. package/dist/cjs/hostedContainer.d.ts +23 -23
  94. package/dist/cjs/hostedContainer.js +73 -73
  95. package/dist/cjs/hostedContainer.js.map +1 -1
  96. package/dist/cjs/index.d.ts +29 -26
  97. package/dist/cjs/index.js +38 -35
  98. package/dist/cjs/index.js.map +1 -1
  99. package/dist/cjs/json.d.ts +1 -1
  100. package/dist/cjs/json.js +13 -13
  101. package/dist/cjs/lifecycle.d.ts +22 -22
  102. package/dist/cjs/lifecycle.js +87 -87
  103. package/dist/cjs/math.d.ts +4 -4
  104. package/dist/cjs/math.js +15 -15
  105. package/dist/cjs/math.js.map +1 -1
  106. package/dist/cjs/panel/componentFactory.d.ts +8 -8
  107. package/dist/cjs/panel/componentFactory.js +30 -30
  108. package/dist/cjs/panel/componentFactory.js.map +1 -1
  109. package/dist/cjs/panel/types.d.ts +34 -34
  110. package/dist/cjs/panel/types.js +2 -2
  111. package/dist/cjs/paneview/defaultPaneviewHeader.d.ts +18 -18
  112. package/dist/cjs/paneview/defaultPaneviewHeader.js +64 -64
  113. package/dist/cjs/paneview/draggablePaneviewPanel.d.ts +17 -17
  114. package/dist/cjs/paneview/draggablePaneviewPanel.js +111 -111
  115. package/dist/cjs/paneview/options.d.ts +25 -25
  116. package/dist/cjs/paneview/options.js +2 -2
  117. package/dist/cjs/paneview/paneview.d.ts +38 -38
  118. package/dist/cjs/paneview/paneview.js +198 -198
  119. package/dist/cjs/paneview/paneviewComponent.d.ts +113 -113
  120. package/dist/cjs/paneview/paneviewComponent.js +338 -338
  121. package/dist/cjs/paneview/paneviewPanel.d.ts +85 -85
  122. package/dist/cjs/paneview/paneviewPanel.js +262 -262
  123. package/dist/cjs/paneview/paneviewPanel.js.map +1 -1
  124. package/dist/cjs/react/deserializer.d.ts +8 -8
  125. package/dist/cjs/react/deserializer.js +39 -39
  126. package/dist/cjs/react/dockview/components.d.ts +11 -11
  127. package/dist/cjs/react/dockview/components.js +76 -76
  128. package/dist/cjs/react/dockview/dockview.d.ts +34 -34
  129. package/dist/cjs/react/dockview/dockview.js +135 -135
  130. package/dist/cjs/react/dockview/reactContentPart.d.ts +47 -47
  131. package/dist/cjs/react/dockview/reactContentPart.js +88 -88
  132. package/dist/cjs/react/dockview/reactHeaderPart.d.ts +24 -24
  133. package/dist/cjs/react/dockview/reactHeaderPart.js +50 -50
  134. package/dist/cjs/react/dockview/reactWatermarkPart.d.ts +30 -30
  135. package/dist/cjs/react/dockview/reactWatermarkPart.js +66 -66
  136. package/dist/cjs/react/dockview/v2/reactContentRenderer.d.ts +30 -30
  137. package/dist/cjs/react/dockview/v2/reactContentRenderer.js +90 -90
  138. package/dist/cjs/react/dockview/v2/reactGroupPanelView.d.ts +7 -7
  139. package/dist/cjs/react/dockview/v2/reactGroupPanelView.js +34 -34
  140. package/dist/cjs/react/dockview/v2/webviewContentRenderer.d.ts +18 -18
  141. package/dist/cjs/react/dockview/v2/webviewContentRenderer.js +45 -45
  142. package/dist/cjs/react/gridview/gridview.d.ts +24 -24
  143. package/dist/cjs/react/gridview/gridview.js +96 -96
  144. package/dist/cjs/react/gridview/view.d.ts +10 -10
  145. package/dist/cjs/react/gridview/view.js +40 -40
  146. package/dist/cjs/react/index.d.ts +9 -9
  147. package/dist/cjs/react/index.js +21 -21
  148. package/dist/cjs/react/paneview/paneview.d.ts +28 -28
  149. package/dist/cjs/react/paneview/paneview.js +138 -138
  150. package/dist/cjs/react/paneview/view.d.ts +20 -20
  151. package/dist/cjs/react/paneview/view.js +44 -44
  152. package/dist/cjs/react/react.d.ts +35 -35
  153. package/dist/cjs/react/react.js +181 -181
  154. package/dist/cjs/react/react.js.map +1 -1
  155. package/dist/cjs/react/splitview/splitview.d.ts +24 -24
  156. package/dist/cjs/react/splitview/splitview.js +93 -93
  157. package/dist/cjs/react/splitview/view.d.ts +10 -10
  158. package/dist/cjs/react/splitview/view.js +40 -40
  159. package/dist/cjs/react/types.d.ts +7 -7
  160. package/dist/cjs/react/types.js +2 -2
  161. package/dist/cjs/splitview/core/options.d.ts +26 -26
  162. package/dist/cjs/splitview/core/options.js +2 -2
  163. package/dist/cjs/splitview/core/splitview.d.ts +124 -124
  164. package/dist/cjs/splitview/core/splitview.js +908 -908
  165. package/dist/cjs/splitview/core/splitview.js.map +1 -1
  166. package/dist/cjs/splitview/core/viewItem.d.ts +25 -25
  167. package/dist/cjs/splitview/core/viewItem.js +124 -124
  168. package/dist/cjs/splitview/splitviewComponent.d.ts +100 -100
  169. package/dist/cjs/splitview/splitviewComponent.js +327 -327
  170. package/dist/cjs/splitview/splitviewComponent.js.map +1 -1
  171. package/dist/cjs/splitview/splitviewPanel.d.ts +47 -47
  172. package/dist/cjs/splitview/splitviewPanel.js +178 -178
  173. package/dist/cjs/types.d.ts +7 -7
  174. package/dist/cjs/types.js +2 -2
  175. package/dist/dockview.amd.js +6714 -6711
  176. package/dist/dockview.amd.min.js +3 -3
  177. package/dist/dockview.amd.min.noStyle.js +3 -3
  178. package/dist/dockview.amd.noStyle.js +6706 -6703
  179. package/dist/dockview.cjs.js +6708 -6705
  180. package/dist/dockview.esm.js +6706 -6706
  181. package/dist/dockview.esm.min.js +3 -3
  182. package/dist/dockview.js +6714 -6711
  183. package/dist/dockview.min.js +3 -3
  184. package/dist/dockview.min.noStyle.js +3 -3
  185. package/dist/dockview.noStyle.js +6706 -6703
  186. package/dist/esm/actionbar/actionsContainer.d.ts +7 -7
  187. package/dist/esm/actionbar/actionsContainer.js +17 -17
  188. package/dist/esm/api/component.api.d.ts +131 -131
  189. package/dist/esm/api/component.api.js +287 -287
  190. package/dist/esm/api/gridviewPanelApi.d.ts +36 -36
  191. package/dist/esm/api/gridviewPanelApi.js +24 -24
  192. package/dist/esm/api/groupPanelApi.d.ts +44 -44
  193. package/dist/esm/api/groupPanelApi.js +52 -52
  194. package/dist/esm/api/panelApi.d.ts +107 -107
  195. package/dist/esm/api/panelApi.js +98 -98
  196. package/dist/esm/api/paneviewPanelApi.d.ts +26 -26
  197. package/dist/esm/api/paneviewPanelApi.js +26 -26
  198. package/dist/esm/api/splitviewPanelApi.d.ts +33 -33
  199. package/dist/esm/api/splitviewPanelApi.js +29 -29
  200. package/dist/esm/array.d.ts +13 -13
  201. package/dist/esm/array.js +67 -67
  202. package/dist/esm/dnd/abstractDragHandler.d.ts +11 -11
  203. package/dist/esm/dnd/abstractDragHandler.js +37 -37
  204. package/dist/esm/dnd/dataTransfer.d.ts +56 -56
  205. package/dist/esm/dnd/dataTransfer.js +109 -109
  206. package/dist/esm/dnd/dnd.d.ts +40 -40
  207. package/dist/esm/dnd/dnd.js +109 -109
  208. package/dist/esm/dnd/droptarget.d.ts +37 -37
  209. package/dist/esm/dnd/droptarget.js +143 -143
  210. package/dist/esm/dockview/components/tab/defaultTab.d.ts +44 -44
  211. package/dist/esm/dockview/components/tab/defaultTab.js +130 -130
  212. package/dist/esm/dockview/components/watermark/watermark.d.ts +20 -20
  213. package/dist/esm/dockview/components/watermark/watermark.js +68 -68
  214. package/dist/esm/dockview/defaultGroupPanelView.d.ts +34 -34
  215. package/dist/esm/dockview/defaultGroupPanelView.js +55 -55
  216. package/dist/esm/dockview/deserializer.d.ts +14 -14
  217. package/dist/esm/dockview/deserializer.js +20 -20
  218. package/dist/esm/dockview/dockviewComponent.d.ts +121 -121
  219. package/dist/esm/dockview/dockviewComponent.js +533 -533
  220. package/dist/esm/dockview/dockviewGroupPanel.d.ts +35 -35
  221. package/dist/esm/dockview/dockviewGroupPanel.js +145 -145
  222. package/dist/esm/dockview/options.d.ts +79 -79
  223. package/dist/esm/dockview/options.js +1 -1
  224. package/dist/esm/dom.d.ts +14 -14
  225. package/dist/esm/dom.js +113 -113
  226. package/dist/esm/events.d.ts +23 -23
  227. package/dist/esm/events.js +71 -71
  228. package/dist/esm/footnote.d.ts +1 -1
  229. package/dist/esm/footnote.js +19 -19
  230. package/dist/esm/functions.d.ts +1 -1
  231. package/dist/esm/functions.js +8 -8
  232. package/dist/esm/gridview/baseComponentGridview.d.ts +98 -98
  233. package/dist/esm/gridview/baseComponentGridview.js +224 -224
  234. package/dist/esm/gridview/basePanelView.d.ts +46 -46
  235. package/dist/esm/gridview/basePanelView.js +70 -70
  236. package/dist/esm/gridview/branchNode.d.ts +46 -46
  237. package/dist/esm/gridview/branchNode.js +218 -218
  238. package/dist/esm/gridview/gridview.d.ts +123 -123
  239. package/dist/esm/gridview/gridview.js +396 -396
  240. package/dist/esm/gridview/gridviewComponent.d.ts +88 -88
  241. package/dist/esm/gridview/gridviewComponent.js +238 -238
  242. package/dist/esm/gridview/gridviewPanel.d.ts +62 -62
  243. package/dist/esm/gridview/gridviewPanel.js +141 -141
  244. package/dist/esm/gridview/leafNode.d.ts +31 -31
  245. package/dist/esm/gridview/leafNode.js +97 -97
  246. package/dist/esm/gridview/options.d.ts +18 -18
  247. package/dist/esm/gridview/options.js +1 -1
  248. package/dist/esm/gridview/types.d.ts +3 -3
  249. package/dist/esm/gridview/types.js +1 -1
  250. package/dist/esm/groupview/dnd.d.ts +5 -5
  251. package/dist/esm/groupview/dnd.js +6 -6
  252. package/dist/esm/groupview/groupPanel.d.ts +41 -41
  253. package/dist/esm/groupview/groupPanel.js +1 -1
  254. package/dist/esm/groupview/groupview.d.ts +154 -154
  255. package/dist/esm/groupview/groupview.js +448 -448
  256. package/dist/esm/groupview/groupviewPanel.d.ts +18 -18
  257. package/dist/esm/groupview/groupviewPanel.js +41 -41
  258. package/dist/esm/groupview/panel/content.d.ts +30 -30
  259. package/dist/esm/groupview/panel/content.js +72 -72
  260. package/dist/esm/groupview/panel/hostedPanel.d.ts +22 -22
  261. package/dist/esm/groupview/panel/hostedPanel.js +43 -43
  262. package/dist/esm/groupview/tab.d.ts +44 -44
  263. package/dist/esm/groupview/tab.js +101 -101
  264. package/dist/esm/groupview/titlebar/tabsContainer.d.ts +66 -66
  265. package/dist/esm/groupview/titlebar/tabsContainer.js +185 -185
  266. package/dist/esm/groupview/types.d.ts +59 -59
  267. package/dist/esm/groupview/types.js +1 -1
  268. package/dist/esm/hostedContainer.d.ts +23 -23
  269. package/dist/esm/hostedContainer.js +63 -63
  270. package/dist/esm/index.d.ts +29 -26
  271. package/dist/esm/index.js +24 -21
  272. package/dist/esm/json.d.ts +1 -1
  273. package/dist/esm/json.js +9 -9
  274. package/dist/esm/lifecycle.d.ts +22 -22
  275. package/dist/esm/lifecycle.js +38 -38
  276. package/dist/esm/math.d.ts +4 -4
  277. package/dist/esm/math.js +10 -10
  278. package/dist/esm/panel/componentFactory.d.ts +8 -8
  279. package/dist/esm/panel/componentFactory.js +24 -24
  280. package/dist/esm/panel/types.d.ts +34 -34
  281. package/dist/esm/panel/types.js +1 -1
  282. package/dist/esm/paneview/defaultPaneviewHeader.d.ts +18 -18
  283. package/dist/esm/paneview/defaultPaneviewHeader.js +37 -37
  284. package/dist/esm/paneview/draggablePaneviewPanel.d.ts +17 -17
  285. package/dist/esm/paneview/draggablePaneviewPanel.js +72 -72
  286. package/dist/esm/paneview/options.d.ts +25 -25
  287. package/dist/esm/paneview/options.js +1 -1
  288. package/dist/esm/paneview/paneview.d.ts +38 -38
  289. package/dist/esm/paneview/paneview.js +144 -144
  290. package/dist/esm/paneview/paneviewComponent.d.ts +113 -113
  291. package/dist/esm/paneview/paneviewComponent.js +247 -247
  292. package/dist/esm/paneview/paneviewPanel.d.ts +85 -85
  293. package/dist/esm/paneview/paneviewPanel.js +183 -183
  294. package/dist/esm/react/deserializer.d.ts +8 -8
  295. package/dist/esm/react/deserializer.js +34 -34
  296. package/dist/esm/react/dockview/components.d.ts +11 -11
  297. package/dist/esm/react/dockview/components.js +54 -54
  298. package/dist/esm/react/dockview/dockview.d.ts +34 -34
  299. package/dist/esm/react/dockview/dockview.js +97 -97
  300. package/dist/esm/react/dockview/reactContentPart.d.ts +47 -47
  301. package/dist/esm/react/dockview/reactContentPart.js +75 -75
  302. package/dist/esm/react/dockview/reactHeaderPart.d.ts +24 -24
  303. package/dist/esm/react/dockview/reactHeaderPart.js +41 -41
  304. package/dist/esm/react/dockview/reactWatermarkPart.d.ts +30 -30
  305. package/dist/esm/react/dockview/reactWatermarkPart.js +56 -56
  306. package/dist/esm/react/dockview/v2/reactContentRenderer.d.ts +30 -30
  307. package/dist/esm/react/dockview/v2/reactContentRenderer.js +72 -72
  308. package/dist/esm/react/dockview/v2/reactGroupPanelView.d.ts +7 -7
  309. package/dist/esm/react/dockview/v2/reactGroupPanelView.js +12 -12
  310. package/dist/esm/react/dockview/v2/webviewContentRenderer.d.ts +18 -18
  311. package/dist/esm/react/dockview/v2/webviewContentRenderer.js +36 -36
  312. package/dist/esm/react/gridview/gridview.d.ts +24 -24
  313. package/dist/esm/react/gridview/gridview.js +58 -58
  314. package/dist/esm/react/gridview/view.d.ts +10 -10
  315. package/dist/esm/react/gridview/view.js +18 -18
  316. package/dist/esm/react/index.d.ts +9 -9
  317. package/dist/esm/react/index.js +9 -9
  318. package/dist/esm/react/paneview/paneview.d.ts +28 -28
  319. package/dist/esm/react/paneview/paneview.js +87 -87
  320. package/dist/esm/react/paneview/view.d.ts +20 -20
  321. package/dist/esm/react/paneview/view.js +35 -35
  322. package/dist/esm/react/react.d.ts +35 -35
  323. package/dist/esm/react/react.js +116 -116
  324. package/dist/esm/react/splitview/splitview.d.ts +24 -24
  325. package/dist/esm/react/splitview/splitview.js +55 -55
  326. package/dist/esm/react/splitview/view.d.ts +10 -10
  327. package/dist/esm/react/splitview/view.js +18 -18
  328. package/dist/esm/react/types.d.ts +7 -7
  329. package/dist/esm/react/types.js +1 -1
  330. package/dist/esm/splitview/core/options.d.ts +26 -26
  331. package/dist/esm/splitview/core/options.js +1 -1
  332. package/dist/esm/splitview/core/splitview.d.ts +124 -124
  333. package/dist/esm/splitview/core/splitview.js +689 -689
  334. package/dist/esm/splitview/core/viewItem.d.ts +25 -25
  335. package/dist/esm/splitview/core/viewItem.js +79 -79
  336. package/dist/esm/splitview/splitviewComponent.d.ts +100 -100
  337. package/dist/esm/splitview/splitviewComponent.js +241 -241
  338. package/dist/esm/splitview/splitviewPanel.d.ts +47 -47
  339. package/dist/esm/splitview/splitviewPanel.js +107 -107
  340. package/dist/esm/types.d.ts +7 -7
  341. package/dist/esm/types.js +1 -1
  342. package/package.json +75 -75
@@ -1,88 +1,88 @@
1
- import { SerializedGridObject } from './gridview';
2
- import { Position } from '../dnd/droptarget';
3
- import { IPanelDeserializer } from '../dockview/deserializer';
4
- import { GridviewComponentOptions } from './options';
5
- import { BaseGrid, Direction, IBaseGrid, IGridPanelView } from './baseComponentGridview';
6
- import { GridviewPanel, GridviewInitParameters, GridPanelViewState, IGridviewPanel } from './gridviewPanel';
7
- import { BaseComponentOptions } from '../panel/types';
8
- import { GridviewPanelApiImpl } from '../api/gridviewPanelApi';
9
- import { Orientation, Sizing } from '../splitview/core/splitview';
10
- interface PanelReference {
11
- api: GridviewPanelApiImpl;
12
- }
13
- export interface SerializedGridview {
14
- grid: {
15
- height: number;
16
- width: number;
17
- orientation: Orientation;
18
- root: SerializedGridObject<GridPanelViewState>;
19
- };
20
- activePanel?: string;
21
- }
22
- export interface AddComponentOptions extends BaseComponentOptions {
23
- size?: number;
24
- minimumWidth?: number;
25
- maximumWidth?: number;
26
- minimumHeight?: number;
27
- maximumHeight?: number;
28
- position?: {
29
- direction: Direction;
30
- reference: string;
31
- };
32
- location?: number[];
33
- }
34
- export interface IGridPanelComponentView extends IGridPanelView {
35
- init: (params: GridviewInitParameters) => void;
36
- }
37
- export declare type GridviewComponentUpdateOptions = Pick<GridviewComponentOptions, 'orientation' | 'components' | 'frameworkComponents'>;
38
- export interface IGridviewComponent extends IBaseGrid<GridviewPanel> {
39
- readonly orientation: Orientation;
40
- updateOptions(options: GridviewComponentUpdateOptions): void;
41
- addPanel(options: AddComponentOptions): void;
42
- removePanel(panel: IGridviewPanel, sizing?: Sizing): void;
43
- toggleVisibility(panel: IGridviewPanel): void;
44
- focus(): void;
45
- fromJSON(serializedGridview: SerializedGridview, deferComponentLayout?: boolean): void;
46
- toJSON(): SerializedGridview;
47
- movePanel(panel: IGridviewPanel, options: {
48
- direction: Direction;
49
- reference: string;
50
- size?: number;
51
- }): void;
52
- setVisible(panel: IGridviewPanel, visible: boolean): void;
53
- setActive(panel: IGridviewPanel): void;
54
- }
55
- export declare class GridviewComponent extends BaseGrid<GridviewPanel> implements IGridviewComponent {
56
- private _options;
57
- private _deserializer;
58
- get orientation(): Orientation;
59
- set orientation(value: Orientation);
60
- get options(): GridviewComponentOptions;
61
- get deserializer(): IPanelDeserializer | undefined;
62
- set deserializer(value: IPanelDeserializer | undefined);
63
- constructor(element: HTMLElement, options: GridviewComponentOptions);
64
- updateOptions(options: GridviewComponentUpdateOptions): void;
65
- removePanel(panel: GridviewPanel): void;
66
- /**
67
- * Serialize the current state of the layout
68
- *
69
- * @returns A JSON respresentation of the layout
70
- */
71
- toJSON(): SerializedGridview;
72
- setVisible(panel: GridviewPanel, visible: boolean): void;
73
- setActive(panel: GridviewPanel): void;
74
- toggleVisibility(panel: GridviewPanel): void;
75
- focus(): void;
76
- fromJSON(serializedGridview: SerializedGridview, deferComponentLayout?: boolean): void;
77
- movePanel(panel: GridviewPanel, options: {
78
- direction: Direction;
79
- reference: string;
80
- size?: number;
81
- }): void;
82
- addPanel(options: AddComponentOptions): PanelReference;
83
- private registerPanel;
84
- moveGroup(referenceGroup: IGridPanelComponentView, groupId: string, target: Position): void;
85
- removeGroup(group: GridviewPanel): void;
86
- dispose(): void;
87
- }
88
- export {};
1
+ import { SerializedGridObject } from './gridview';
2
+ import { Position } from '../dnd/droptarget';
3
+ import { IPanelDeserializer } from '../dockview/deserializer';
4
+ import { GridviewComponentOptions } from './options';
5
+ import { BaseGrid, Direction, IBaseGrid, IGridPanelView } from './baseComponentGridview';
6
+ import { GridviewPanel, GridviewInitParameters, GridPanelViewState, IGridviewPanel } from './gridviewPanel';
7
+ import { BaseComponentOptions } from '../panel/types';
8
+ import { GridviewPanelApiImpl } from '../api/gridviewPanelApi';
9
+ import { Orientation, Sizing } from '../splitview/core/splitview';
10
+ interface PanelReference {
11
+ api: GridviewPanelApiImpl;
12
+ }
13
+ export interface SerializedGridview {
14
+ grid: {
15
+ height: number;
16
+ width: number;
17
+ orientation: Orientation;
18
+ root: SerializedGridObject<GridPanelViewState>;
19
+ };
20
+ activePanel?: string;
21
+ }
22
+ export interface AddComponentOptions extends BaseComponentOptions {
23
+ size?: number;
24
+ minimumWidth?: number;
25
+ maximumWidth?: number;
26
+ minimumHeight?: number;
27
+ maximumHeight?: number;
28
+ position?: {
29
+ direction: Direction;
30
+ reference: string;
31
+ };
32
+ location?: number[];
33
+ }
34
+ export interface IGridPanelComponentView extends IGridPanelView {
35
+ init: (params: GridviewInitParameters) => void;
36
+ }
37
+ export declare type GridviewComponentUpdateOptions = Pick<GridviewComponentOptions, 'orientation' | 'components' | 'frameworkComponents'>;
38
+ export interface IGridviewComponent extends IBaseGrid<GridviewPanel> {
39
+ readonly orientation: Orientation;
40
+ updateOptions(options: GridviewComponentUpdateOptions): void;
41
+ addPanel(options: AddComponentOptions): void;
42
+ removePanel(panel: IGridviewPanel, sizing?: Sizing): void;
43
+ toggleVisibility(panel: IGridviewPanel): void;
44
+ focus(): void;
45
+ fromJSON(serializedGridview: SerializedGridview, deferComponentLayout?: boolean): void;
46
+ toJSON(): SerializedGridview;
47
+ movePanel(panel: IGridviewPanel, options: {
48
+ direction: Direction;
49
+ reference: string;
50
+ size?: number;
51
+ }): void;
52
+ setVisible(panel: IGridviewPanel, visible: boolean): void;
53
+ setActive(panel: IGridviewPanel): void;
54
+ }
55
+ export declare class GridviewComponent extends BaseGrid<GridviewPanel> implements IGridviewComponent {
56
+ private _options;
57
+ private _deserializer;
58
+ get orientation(): Orientation;
59
+ set orientation(value: Orientation);
60
+ get options(): GridviewComponentOptions;
61
+ get deserializer(): IPanelDeserializer | undefined;
62
+ set deserializer(value: IPanelDeserializer | undefined);
63
+ constructor(element: HTMLElement, options: GridviewComponentOptions);
64
+ updateOptions(options: GridviewComponentUpdateOptions): void;
65
+ removePanel(panel: GridviewPanel): void;
66
+ /**
67
+ * Serialize the current state of the layout
68
+ *
69
+ * @returns A JSON respresentation of the layout
70
+ */
71
+ toJSON(): SerializedGridview;
72
+ setVisible(panel: GridviewPanel, visible: boolean): void;
73
+ setActive(panel: GridviewPanel): void;
74
+ toggleVisibility(panel: GridviewPanel): void;
75
+ focus(): void;
76
+ fromJSON(serializedGridview: SerializedGridview, deferComponentLayout?: boolean): void;
77
+ movePanel(panel: GridviewPanel, options: {
78
+ direction: Direction;
79
+ reference: string;
80
+ size?: number;
81
+ }): void;
82
+ addPanel(options: AddComponentOptions): PanelReference;
83
+ private registerPanel;
84
+ moveGroup(referenceGroup: IGridPanelComponentView, groupId: string, target: Position): void;
85
+ removeGroup(group: GridviewPanel): void;
86
+ dispose(): void;
87
+ }
88
+ export {};
@@ -1,238 +1,238 @@
1
- import { getRelativeLocation, getGridLocation, } from './gridview';
2
- import { Position } from '../dnd/droptarget';
3
- import { tail, sequenceEquals } from '../array';
4
- import { CompositeDisposable } from '../lifecycle';
5
- import { BaseGrid, GroupChangeKind, toTarget, } from './baseComponentGridview';
6
- import { GridviewApi } from '../api/component.api';
7
- import { createComponent } from '../panel/componentFactory';
8
- export class GridviewComponent extends BaseGrid {
9
- constructor(element, options) {
10
- super(element, {
11
- proportionalLayout: options.proportionalLayout,
12
- orientation: options.orientation,
13
- styles: options.styles,
14
- });
15
- this._options = options;
16
- if (!this.options.components) {
17
- this.options.components = {};
18
- }
19
- if (!this.options.frameworkComponents) {
20
- this.options.frameworkComponents = {};
21
- }
22
- }
23
- get orientation() {
24
- return this.gridview.orientation;
25
- }
26
- set orientation(value) {
27
- this.gridview.orientation = value;
28
- }
29
- get options() {
30
- return this._options;
31
- }
32
- get deserializer() {
33
- return this._deserializer;
34
- }
35
- set deserializer(value) {
36
- this._deserializer = value;
37
- }
38
- updateOptions(options) {
39
- const hasOrientationChanged = typeof options.orientation === 'string' &&
40
- this.options.orientation !== options.orientation;
41
- this._options = Object.assign(Object.assign({}, this.options), options);
42
- if (hasOrientationChanged) {
43
- this.gridview.orientation = options.orientation;
44
- }
45
- this.layout(this.gridview.width, this.gridview.height, true);
46
- }
47
- removePanel(panel) {
48
- this.removeGroup(panel);
49
- }
50
- /**
51
- * Serialize the current state of the layout
52
- *
53
- * @returns A JSON respresentation of the layout
54
- */
55
- toJSON() {
56
- var _a;
57
- const data = this.gridview.serialize();
58
- return {
59
- grid: data,
60
- activePanel: (_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.id,
61
- };
62
- }
63
- setVisible(panel, visible) {
64
- this.gridview.setViewVisible(getGridLocation(panel.element), visible);
65
- }
66
- setActive(panel) {
67
- this._groups.forEach((value, key) => {
68
- value.value.setActive(panel === value.value);
69
- });
70
- }
71
- toggleVisibility(panel) {
72
- this.setVisible(panel, !this.isVisible(panel));
73
- }
74
- focus() {
75
- var _a;
76
- (_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.focus();
77
- }
78
- fromJSON(serializedGridview, deferComponentLayout) {
79
- const { grid, activePanel } = serializedGridview;
80
- this.gridview.clear();
81
- this._groups.clear();
82
- const queue = [];
83
- this.gridview.deserialize(grid, {
84
- fromJSON: (node) => {
85
- const { data } = node;
86
- const view = createComponent(data.id, data.component, this.options.components || {}, this.options.frameworkComponents || {}, this.options.frameworkComponentFactory
87
- ? {
88
- createComponent: this.options.frameworkComponentFactory
89
- .createComponent,
90
- }
91
- : undefined);
92
- queue.push(() => view.init({
93
- params: data.params,
94
- minimumWidth: data.minimumWidth,
95
- maximumWidth: data.maximumWidth,
96
- minimumHeight: data.minimumHeight,
97
- maximumHeight: data.maximumHeight,
98
- priority: data.priority,
99
- snap: !!data.snap,
100
- containerApi: new GridviewApi(this),
101
- isVisible: node.visible,
102
- }));
103
- this.registerPanel(view);
104
- return view;
105
- },
106
- });
107
- this.layout(this.width, this.height, true);
108
- if (deferComponentLayout) {
109
- setTimeout(() => {
110
- queue.forEach((f) => f());
111
- }, 0);
112
- }
113
- else {
114
- queue.forEach((f) => f());
115
- }
116
- if (typeof activePanel === 'string') {
117
- const panel = this.getPanel(activePanel);
118
- if (panel) {
119
- this.doSetGroupActive(panel);
120
- }
121
- }
122
- this._onGridEvent.fire({ kind: GroupChangeKind.LAYOUT_FROM_JSON });
123
- }
124
- movePanel(panel, options) {
125
- var _a;
126
- let relativeLocation;
127
- const removedPanel = this.gridview.remove(panel);
128
- const referenceGroup = (_a = this._groups.get(options.reference)) === null || _a === void 0 ? void 0 : _a.value;
129
- if (!referenceGroup) {
130
- throw new Error(`reference group ${options.reference} does not exist`);
131
- }
132
- const target = toTarget(options.direction);
133
- if (target === Position.Center) {
134
- throw new Error(`${target} not supported as an option`);
135
- }
136
- else {
137
- const location = getGridLocation(referenceGroup.element);
138
- relativeLocation = getRelativeLocation(this.gridview.orientation, location, target);
139
- }
140
- this.doAddGroup(removedPanel, relativeLocation, options.size);
141
- }
142
- addPanel(options) {
143
- var _a, _b;
144
- let relativeLocation = options.location || [0];
145
- if ((_a = options.position) === null || _a === void 0 ? void 0 : _a.reference) {
146
- const referenceGroup = (_b = this._groups.get(options.position.reference)) === null || _b === void 0 ? void 0 : _b.value;
147
- if (!referenceGroup) {
148
- throw new Error(`reference group ${options.position.reference} does not exist`);
149
- }
150
- const target = toTarget(options.position.direction);
151
- if (target === Position.Center) {
152
- throw new Error(`${target} not supported as an option`);
153
- }
154
- else {
155
- const location = getGridLocation(referenceGroup.element);
156
- relativeLocation = getRelativeLocation(this.gridview.orientation, location, target);
157
- }
158
- }
159
- const view = createComponent(options.id, options.component, this.options.components || {}, this.options.frameworkComponents || {}, this.options.frameworkComponentFactory
160
- ? {
161
- createComponent: this.options.frameworkComponentFactory
162
- .createComponent,
163
- }
164
- : undefined);
165
- view.init({
166
- params: options.params || {},
167
- minimumWidth: options.minimumWidth,
168
- maximumWidth: options.maximumWidth,
169
- minimumHeight: options.minimumHeight,
170
- maximumHeight: options.maximumHeight,
171
- priority: options.priority,
172
- snap: !!options.snap,
173
- containerApi: new GridviewApi(this),
174
- isVisible: true,
175
- });
176
- this.registerPanel(view);
177
- this.doAddGroup(view, relativeLocation, options.size);
178
- return { api: view.api };
179
- }
180
- registerPanel(panel) {
181
- const disposable = new CompositeDisposable(panel.api.onDidFocusChange((event) => {
182
- if (!event.isFocused) {
183
- return;
184
- }
185
- this._groups.forEach((groupItem) => {
186
- const group = groupItem.value;
187
- if (group !== panel) {
188
- group.setActive(false);
189
- }
190
- else {
191
- group.setActive(true);
192
- }
193
- });
194
- }));
195
- this._groups.set(panel.id, {
196
- value: panel,
197
- disposable,
198
- });
199
- }
200
- moveGroup(referenceGroup, groupId, target) {
201
- const sourceGroup = this.getPanel(groupId);
202
- if (!sourceGroup) {
203
- throw new Error('invalid operation');
204
- }
205
- const referenceLocation = getGridLocation(referenceGroup.element);
206
- const targetLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, target);
207
- const [targetParentLocation, to] = tail(targetLocation);
208
- const sourceLocation = getGridLocation(sourceGroup.element);
209
- const [sourceParentLocation, from] = tail(sourceLocation);
210
- if (sequenceEquals(sourceParentLocation, targetParentLocation)) {
211
- // special case when 'swapping' two views within same grid location
212
- // if a group has one tab - we are essentially moving the 'group'
213
- // which is equivalent to swapping two views in this case
214
- this.gridview.moveView(sourceParentLocation, from, to);
215
- return;
216
- }
217
- // source group will become empty so delete the group
218
- const targetGroup = this.doRemoveGroup(sourceGroup, {
219
- skipActive: true,
220
- skipDispose: true,
221
- });
222
- // after deleting the group we need to re-evaulate the ref location
223
- const updatedReferenceLocation = getGridLocation(referenceGroup.element);
224
- const location = getRelativeLocation(this.gridview.orientation, updatedReferenceLocation, target);
225
- this.doAddGroup(targetGroup, location);
226
- }
227
- removeGroup(group) {
228
- super.removeGroup(group);
229
- const panel = this._groups.get(group.id);
230
- if (panel) {
231
- panel.disposable.dispose();
232
- this._groups.delete(group.id);
233
- }
234
- }
235
- dispose() {
236
- super.dispose();
237
- }
238
- }
1
+ import { getRelativeLocation, getGridLocation, } from './gridview';
2
+ import { Position } from '../dnd/droptarget';
3
+ import { tail, sequenceEquals } from '../array';
4
+ import { CompositeDisposable } from '../lifecycle';
5
+ import { BaseGrid, GroupChangeKind, toTarget, } from './baseComponentGridview';
6
+ import { GridviewApi } from '../api/component.api';
7
+ import { createComponent } from '../panel/componentFactory';
8
+ export class GridviewComponent extends BaseGrid {
9
+ constructor(element, options) {
10
+ super(element, {
11
+ proportionalLayout: options.proportionalLayout,
12
+ orientation: options.orientation,
13
+ styles: options.styles,
14
+ });
15
+ this._options = options;
16
+ if (!this.options.components) {
17
+ this.options.components = {};
18
+ }
19
+ if (!this.options.frameworkComponents) {
20
+ this.options.frameworkComponents = {};
21
+ }
22
+ }
23
+ get orientation() {
24
+ return this.gridview.orientation;
25
+ }
26
+ set orientation(value) {
27
+ this.gridview.orientation = value;
28
+ }
29
+ get options() {
30
+ return this._options;
31
+ }
32
+ get deserializer() {
33
+ return this._deserializer;
34
+ }
35
+ set deserializer(value) {
36
+ this._deserializer = value;
37
+ }
38
+ updateOptions(options) {
39
+ const hasOrientationChanged = typeof options.orientation === 'string' &&
40
+ this.options.orientation !== options.orientation;
41
+ this._options = Object.assign(Object.assign({}, this.options), options);
42
+ if (hasOrientationChanged) {
43
+ this.gridview.orientation = options.orientation;
44
+ }
45
+ this.layout(this.gridview.width, this.gridview.height, true);
46
+ }
47
+ removePanel(panel) {
48
+ this.removeGroup(panel);
49
+ }
50
+ /**
51
+ * Serialize the current state of the layout
52
+ *
53
+ * @returns A JSON respresentation of the layout
54
+ */
55
+ toJSON() {
56
+ var _a;
57
+ const data = this.gridview.serialize();
58
+ return {
59
+ grid: data,
60
+ activePanel: (_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.id,
61
+ };
62
+ }
63
+ setVisible(panel, visible) {
64
+ this.gridview.setViewVisible(getGridLocation(panel.element), visible);
65
+ }
66
+ setActive(panel) {
67
+ this._groups.forEach((value, key) => {
68
+ value.value.setActive(panel === value.value);
69
+ });
70
+ }
71
+ toggleVisibility(panel) {
72
+ this.setVisible(panel, !this.isVisible(panel));
73
+ }
74
+ focus() {
75
+ var _a;
76
+ (_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.focus();
77
+ }
78
+ fromJSON(serializedGridview, deferComponentLayout) {
79
+ const { grid, activePanel } = serializedGridview;
80
+ this.gridview.clear();
81
+ this._groups.clear();
82
+ const queue = [];
83
+ this.gridview.deserialize(grid, {
84
+ fromJSON: (node) => {
85
+ const { data } = node;
86
+ const view = createComponent(data.id, data.component, this.options.components || {}, this.options.frameworkComponents || {}, this.options.frameworkComponentFactory
87
+ ? {
88
+ createComponent: this.options.frameworkComponentFactory
89
+ .createComponent,
90
+ }
91
+ : undefined);
92
+ queue.push(() => view.init({
93
+ params: data.params,
94
+ minimumWidth: data.minimumWidth,
95
+ maximumWidth: data.maximumWidth,
96
+ minimumHeight: data.minimumHeight,
97
+ maximumHeight: data.maximumHeight,
98
+ priority: data.priority,
99
+ snap: !!data.snap,
100
+ containerApi: new GridviewApi(this),
101
+ isVisible: node.visible,
102
+ }));
103
+ this.registerPanel(view);
104
+ return view;
105
+ },
106
+ });
107
+ this.layout(this.width, this.height, true);
108
+ if (deferComponentLayout) {
109
+ setTimeout(() => {
110
+ queue.forEach((f) => f());
111
+ }, 0);
112
+ }
113
+ else {
114
+ queue.forEach((f) => f());
115
+ }
116
+ if (typeof activePanel === 'string') {
117
+ const panel = this.getPanel(activePanel);
118
+ if (panel) {
119
+ this.doSetGroupActive(panel);
120
+ }
121
+ }
122
+ this._onGridEvent.fire({ kind: GroupChangeKind.LAYOUT_FROM_JSON });
123
+ }
124
+ movePanel(panel, options) {
125
+ var _a;
126
+ let relativeLocation;
127
+ const removedPanel = this.gridview.remove(panel);
128
+ const referenceGroup = (_a = this._groups.get(options.reference)) === null || _a === void 0 ? void 0 : _a.value;
129
+ if (!referenceGroup) {
130
+ throw new Error(`reference group ${options.reference} does not exist`);
131
+ }
132
+ const target = toTarget(options.direction);
133
+ if (target === Position.Center) {
134
+ throw new Error(`${target} not supported as an option`);
135
+ }
136
+ else {
137
+ const location = getGridLocation(referenceGroup.element);
138
+ relativeLocation = getRelativeLocation(this.gridview.orientation, location, target);
139
+ }
140
+ this.doAddGroup(removedPanel, relativeLocation, options.size);
141
+ }
142
+ addPanel(options) {
143
+ var _a, _b;
144
+ let relativeLocation = options.location || [0];
145
+ if ((_a = options.position) === null || _a === void 0 ? void 0 : _a.reference) {
146
+ const referenceGroup = (_b = this._groups.get(options.position.reference)) === null || _b === void 0 ? void 0 : _b.value;
147
+ if (!referenceGroup) {
148
+ throw new Error(`reference group ${options.position.reference} does not exist`);
149
+ }
150
+ const target = toTarget(options.position.direction);
151
+ if (target === Position.Center) {
152
+ throw new Error(`${target} not supported as an option`);
153
+ }
154
+ else {
155
+ const location = getGridLocation(referenceGroup.element);
156
+ relativeLocation = getRelativeLocation(this.gridview.orientation, location, target);
157
+ }
158
+ }
159
+ const view = createComponent(options.id, options.component, this.options.components || {}, this.options.frameworkComponents || {}, this.options.frameworkComponentFactory
160
+ ? {
161
+ createComponent: this.options.frameworkComponentFactory
162
+ .createComponent,
163
+ }
164
+ : undefined);
165
+ view.init({
166
+ params: options.params || {},
167
+ minimumWidth: options.minimumWidth,
168
+ maximumWidth: options.maximumWidth,
169
+ minimumHeight: options.minimumHeight,
170
+ maximumHeight: options.maximumHeight,
171
+ priority: options.priority,
172
+ snap: !!options.snap,
173
+ containerApi: new GridviewApi(this),
174
+ isVisible: true,
175
+ });
176
+ this.registerPanel(view);
177
+ this.doAddGroup(view, relativeLocation, options.size);
178
+ return { api: view.api };
179
+ }
180
+ registerPanel(panel) {
181
+ const disposable = new CompositeDisposable(panel.api.onDidFocusChange((event) => {
182
+ if (!event.isFocused) {
183
+ return;
184
+ }
185
+ this._groups.forEach((groupItem) => {
186
+ const group = groupItem.value;
187
+ if (group !== panel) {
188
+ group.setActive(false);
189
+ }
190
+ else {
191
+ group.setActive(true);
192
+ }
193
+ });
194
+ }));
195
+ this._groups.set(panel.id, {
196
+ value: panel,
197
+ disposable,
198
+ });
199
+ }
200
+ moveGroup(referenceGroup, groupId, target) {
201
+ const sourceGroup = this.getPanel(groupId);
202
+ if (!sourceGroup) {
203
+ throw new Error('invalid operation');
204
+ }
205
+ const referenceLocation = getGridLocation(referenceGroup.element);
206
+ const targetLocation = getRelativeLocation(this.gridview.orientation, referenceLocation, target);
207
+ const [targetParentLocation, to] = tail(targetLocation);
208
+ const sourceLocation = getGridLocation(sourceGroup.element);
209
+ const [sourceParentLocation, from] = tail(sourceLocation);
210
+ if (sequenceEquals(sourceParentLocation, targetParentLocation)) {
211
+ // special case when 'swapping' two views within same grid location
212
+ // if a group has one tab - we are essentially moving the 'group'
213
+ // which is equivalent to swapping two views in this case
214
+ this.gridview.moveView(sourceParentLocation, from, to);
215
+ return;
216
+ }
217
+ // source group will become empty so delete the group
218
+ const targetGroup = this.doRemoveGroup(sourceGroup, {
219
+ skipActive: true,
220
+ skipDispose: true,
221
+ });
222
+ // after deleting the group we need to re-evaulate the ref location
223
+ const updatedReferenceLocation = getGridLocation(referenceGroup.element);
224
+ const location = getRelativeLocation(this.gridview.orientation, updatedReferenceLocation, target);
225
+ this.doAddGroup(targetGroup, location);
226
+ }
227
+ removeGroup(group) {
228
+ super.removeGroup(group);
229
+ const panel = this._groups.get(group.id);
230
+ if (panel) {
231
+ panel.disposable.dispose();
232
+ this._groups.delete(group.id);
233
+ }
234
+ }
235
+ dispose() {
236
+ super.dispose();
237
+ }
238
+ }