dockview-core 1.6.0 → 1.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (428) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +50 -52
  3. package/dist/cjs/api/component.api.d.ts +144 -145
  4. package/dist/cjs/api/component.api.d.ts.map +1 -0
  5. package/dist/cjs/api/component.api.js +572 -578
  6. package/dist/cjs/api/component.api.js.map +1 -1
  7. package/dist/cjs/api/dockviewPanelApi.d.ts +35 -34
  8. package/dist/cjs/api/dockviewPanelApi.d.ts.map +1 -0
  9. package/dist/cjs/api/dockviewPanelApi.js +83 -83
  10. package/dist/cjs/api/gridviewPanelApi.d.ts +38 -37
  11. package/dist/cjs/api/gridviewPanelApi.d.ts.map +1 -0
  12. package/dist/cjs/api/gridviewPanelApi.js +47 -47
  13. package/dist/cjs/api/panelApi.d.ts +89 -88
  14. package/dist/cjs/api/panelApi.d.ts.map +1 -0
  15. package/dist/cjs/api/panelApi.js +137 -137
  16. package/dist/cjs/api/paneviewPanelApi.d.ts +27 -26
  17. package/dist/cjs/api/paneviewPanelApi.d.ts.map +1 -0
  18. package/dist/cjs/api/paneviewPanelApi.js +57 -57
  19. package/dist/cjs/api/splitviewPanelApi.d.ts +33 -32
  20. package/dist/cjs/api/splitviewPanelApi.d.ts.map +1 -0
  21. package/dist/cjs/api/splitviewPanelApi.js +47 -47
  22. package/dist/cjs/array.d.ts +13 -12
  23. package/dist/cjs/array.d.ts.map +1 -0
  24. package/dist/cjs/array.js +58 -58
  25. package/dist/cjs/dnd/abstractDragHandler.d.ts +12 -11
  26. package/dist/cjs/dnd/abstractDragHandler.d.ts.map +1 -0
  27. package/dist/cjs/dnd/abstractDragHandler.js +125 -125
  28. package/dist/cjs/dnd/dataTransfer.d.ts +32 -31
  29. package/dist/cjs/dnd/dataTransfer.d.ts.map +1 -0
  30. package/dist/cjs/dnd/dataTransfer.js +100 -100
  31. package/dist/cjs/dnd/dnd.d.ts +28 -27
  32. package/dist/cjs/dnd/dnd.d.ts.map +1 -0
  33. package/dist/cjs/dnd/dnd.js +59 -59
  34. package/dist/cjs/dnd/droptarget.d.ts +43 -42
  35. package/dist/cjs/dnd/droptarget.d.ts.map +1 -0
  36. package/dist/cjs/dnd/droptarget.js +280 -280
  37. package/dist/cjs/dnd/ghost.d.ts +2 -1
  38. package/dist/cjs/dnd/ghost.d.ts.map +1 -0
  39. package/dist/cjs/dnd/ghost.js +15 -15
  40. package/dist/cjs/dnd/groupDragHandler.d.ts +12 -11
  41. package/dist/cjs/dnd/groupDragHandler.d.ts.map +1 -0
  42. package/dist/cjs/dnd/groupDragHandler.js +61 -61
  43. package/dist/cjs/dockview/components/panel/content.d.ts +31 -30
  44. package/dist/cjs/dockview/components/panel/content.d.ts.map +1 -0
  45. package/dist/cjs/dockview/components/panel/content.js +100 -100
  46. package/dist/cjs/dockview/components/tab/defaultTab.d.ts +22 -21
  47. package/dist/cjs/dockview/components/tab/defaultTab.d.ts.map +1 -0
  48. package/dist/cjs/dockview/components/tab/defaultTab.js +105 -105
  49. package/dist/cjs/dockview/components/tab/tab.d.ts +32 -31
  50. package/dist/cjs/dockview/components/tab/tab.d.ts.map +1 -0
  51. package/dist/cjs/dockview/components/tab/tab.js +124 -124
  52. package/dist/cjs/dockview/components/titlebar/tabsContainer.d.ts +60 -63
  53. package/dist/cjs/dockview/components/titlebar/tabsContainer.d.ts.map +1 -0
  54. package/dist/cjs/dockview/components/titlebar/tabsContainer.js +230 -247
  55. package/dist/cjs/dockview/components/titlebar/tabsContainer.js.map +1 -1
  56. package/dist/cjs/dockview/components/titlebar/voidContainer.d.ts +16 -15
  57. package/dist/cjs/dockview/components/titlebar/voidContainer.d.ts.map +1 -0
  58. package/dist/cjs/dockview/components/titlebar/voidContainer.js +73 -73
  59. package/dist/cjs/dockview/components/watermark/watermark.d.ts +19 -18
  60. package/dist/cjs/dockview/components/watermark/watermark.d.ts.map +1 -0
  61. package/dist/cjs/dockview/components/watermark/watermark.js +87 -86
  62. package/dist/cjs/dockview/components/watermark/watermark.js.map +1 -1
  63. package/dist/cjs/dockview/deserializer.d.ts +13 -12
  64. package/dist/cjs/dockview/deserializer.d.ts.map +1 -0
  65. package/dist/cjs/dockview/deserializer.js +45 -45
  66. package/dist/cjs/dockview/dockviewComponent.d.ts +121 -126
  67. package/dist/cjs/dockview/dockviewComponent.d.ts.map +1 -0
  68. package/dist/cjs/dockview/dockviewComponent.js +749 -771
  69. package/dist/cjs/dockview/dockviewComponent.js.map +1 -1
  70. package/dist/cjs/dockview/dockviewGroupPanel.d.ts +32 -31
  71. package/dist/cjs/dockview/dockviewGroupPanel.d.ts.map +1 -0
  72. package/dist/cjs/dockview/dockviewGroupPanel.js +96 -96
  73. package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +175 -176
  74. package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts.map +1 -0
  75. package/dist/cjs/dockview/dockviewGroupPanelModel.js +578 -578
  76. package/dist/cjs/dockview/dockviewGroupPanelModel.js.map +1 -1
  77. package/dist/cjs/dockview/dockviewPanel.d.ts +41 -40
  78. package/dist/cjs/dockview/dockviewPanel.d.ts.map +1 -0
  79. package/dist/cjs/dockview/dockviewPanel.js +146 -149
  80. package/dist/cjs/dockview/dockviewPanel.js.map +1 -1
  81. package/dist/cjs/dockview/dockviewPanelModel.d.ts +35 -34
  82. package/dist/cjs/dockview/dockviewPanelModel.d.ts.map +1 -0
  83. package/dist/cjs/dockview/dockviewPanelModel.js +92 -92
  84. package/dist/cjs/dockview/options.d.ts +117 -116
  85. package/dist/cjs/dockview/options.d.ts.map +1 -0
  86. package/dist/cjs/dockview/options.js +31 -31
  87. package/dist/cjs/dockview/types.d.ts +68 -67
  88. package/dist/cjs/dockview/types.d.ts.map +1 -0
  89. package/dist/cjs/dockview/types.js +10 -10
  90. package/dist/cjs/dom.d.ts +15 -14
  91. package/dist/cjs/dom.d.ts.map +1 -0
  92. package/dist/cjs/dom.js +189 -182
  93. package/dist/cjs/dom.js.map +1 -1
  94. package/dist/cjs/events.d.ts +31 -30
  95. package/dist/cjs/events.d.ts.map +1 -0
  96. package/dist/cjs/events.js +129 -129
  97. package/dist/cjs/gridview/baseComponentGridview.d.ts +88 -87
  98. package/dist/cjs/gridview/baseComponentGridview.d.ts.map +1 -0
  99. package/dist/cjs/gridview/baseComponentGridview.js +271 -279
  100. package/dist/cjs/gridview/baseComponentGridview.js.map +1 -1
  101. package/dist/cjs/gridview/basePanelView.d.ts +41 -40
  102. package/dist/cjs/gridview/basePanelView.d.ts.map +1 -0
  103. package/dist/cjs/gridview/basePanelView.js +123 -123
  104. package/dist/cjs/gridview/branchNode.d.ts +50 -49
  105. package/dist/cjs/gridview/branchNode.d.ts.map +1 -0
  106. package/dist/cjs/gridview/branchNode.js +342 -342
  107. package/dist/cjs/gridview/gridview.d.ts +134 -133
  108. package/dist/cjs/gridview/gridview.d.ts.map +1 -0
  109. package/dist/cjs/gridview/gridview.js +517 -510
  110. package/dist/cjs/gridview/gridview.js.map +1 -1
  111. package/dist/cjs/gridview/gridviewComponent.d.ts +81 -80
  112. package/dist/cjs/gridview/gridviewComponent.d.ts.map +1 -0
  113. package/dist/cjs/gridview/gridviewComponent.js +325 -324
  114. package/dist/cjs/gridview/gridviewComponent.js.map +1 -1
  115. package/dist/cjs/gridview/gridviewPanel.d.ts +66 -65
  116. package/dist/cjs/gridview/gridviewPanel.d.ts.map +1 -0
  117. package/dist/cjs/gridview/gridviewPanel.js +214 -214
  118. package/dist/cjs/gridview/leafNode.d.ts +35 -34
  119. package/dist/cjs/gridview/leafNode.d.ts.map +1 -0
  120. package/dist/cjs/gridview/leafNode.js +170 -170
  121. package/dist/cjs/gridview/options.d.ts +19 -18
  122. package/dist/cjs/gridview/options.d.ts.map +1 -0
  123. package/dist/cjs/gridview/options.js +2 -2
  124. package/dist/cjs/gridview/types.d.ts +4 -3
  125. package/dist/cjs/gridview/types.d.ts.map +1 -0
  126. package/dist/cjs/gridview/types.js +2 -2
  127. package/dist/cjs/index.d.ts +42 -41
  128. package/dist/cjs/index.d.ts.map +1 -0
  129. package/dist/cjs/index.js +63 -63
  130. package/dist/cjs/lifecycle.d.ts +25 -22
  131. package/dist/cjs/lifecycle.d.ts.map +1 -0
  132. package/dist/cjs/lifecycle.js +97 -88
  133. package/dist/cjs/lifecycle.js.map +1 -1
  134. package/dist/cjs/math.d.ts +6 -5
  135. package/dist/cjs/math.d.ts.map +1 -0
  136. package/dist/cjs/math.js +34 -34
  137. package/dist/cjs/panel/componentFactory.d.ts +11 -10
  138. package/dist/cjs/panel/componentFactory.d.ts.map +1 -0
  139. package/dist/cjs/panel/componentFactory.js +30 -30
  140. package/dist/cjs/panel/types.d.ts +34 -33
  141. package/dist/cjs/panel/types.d.ts.map +1 -0
  142. package/dist/cjs/panel/types.js +2 -2
  143. package/dist/cjs/paneview/defaultPaneviewHeader.d.ts +22 -21
  144. package/dist/cjs/paneview/defaultPaneviewHeader.d.ts.map +1 -0
  145. package/dist/cjs/paneview/defaultPaneviewHeader.js +90 -90
  146. package/dist/cjs/paneview/draggablePaneviewPanel.d.ts +22 -21
  147. package/dist/cjs/paneview/draggablePaneviewPanel.d.ts.map +1 -0
  148. package/dist/cjs/paneview/draggablePaneviewPanel.js +131 -131
  149. package/dist/cjs/paneview/options.d.ts +29 -27
  150. package/dist/cjs/paneview/options.d.ts.map +1 -0
  151. package/dist/cjs/paneview/options.js +2 -2
  152. package/dist/cjs/paneview/paneview.d.ts +41 -40
  153. package/dist/cjs/paneview/paneview.d.ts.map +1 -0
  154. package/dist/cjs/paneview/paneview.js +201 -201
  155. package/dist/cjs/paneview/paneviewComponent.d.ts +130 -129
  156. package/dist/cjs/paneview/paneviewComponent.d.ts.map +1 -0
  157. package/dist/cjs/paneview/paneviewComponent.js +394 -394
  158. package/dist/cjs/paneview/paneviewComponent.js.map +1 -1
  159. package/dist/cjs/paneview/paneviewPanel.d.ts +93 -92
  160. package/dist/cjs/paneview/paneviewPanel.d.ts.map +1 -0
  161. package/dist/cjs/paneview/paneviewPanel.js +275 -275
  162. package/dist/cjs/resizable.d.ts +8 -0
  163. package/dist/cjs/resizable.d.ts.map +1 -0
  164. package/dist/cjs/resizable.js +57 -0
  165. package/dist/cjs/resizable.js.map +1 -0
  166. package/dist/cjs/splitview/options.d.ts +28 -26
  167. package/dist/cjs/splitview/options.d.ts.map +1 -0
  168. package/dist/cjs/splitview/options.js +2 -2
  169. package/dist/cjs/splitview/splitview.d.ts +128 -127
  170. package/dist/cjs/splitview/splitview.d.ts.map +1 -0
  171. package/dist/cjs/splitview/splitview.js +908 -908
  172. package/dist/cjs/splitview/splitviewComponent.d.ts +102 -101
  173. package/dist/cjs/splitview/splitviewComponent.d.ts.map +1 -0
  174. package/dist/cjs/splitview/splitviewComponent.js +373 -373
  175. package/dist/cjs/splitview/splitviewComponent.js.map +1 -1
  176. package/dist/cjs/splitview/splitviewPanel.d.ts +46 -45
  177. package/dist/cjs/splitview/splitviewPanel.d.ts.map +1 -0
  178. package/dist/cjs/splitview/splitviewPanel.js +179 -179
  179. package/dist/cjs/splitview/viewItem.d.ts +26 -25
  180. package/dist/cjs/splitview/viewItem.d.ts.map +1 -0
  181. package/dist/cjs/splitview/viewItem.js +119 -119
  182. package/dist/cjs/svg.d.ts +4 -3
  183. package/dist/cjs/svg.d.ts.map +1 -0
  184. package/dist/cjs/svg.js +43 -43
  185. package/dist/cjs/types.d.ts +3 -2
  186. package/dist/cjs/types.d.ts.map +1 -0
  187. package/dist/cjs/types.js +2 -2
  188. package/dist/dockview-core.amd.js +6343 -6339
  189. package/dist/dockview-core.amd.min.js +2 -2
  190. package/dist/dockview-core.amd.min.noStyle.js +2 -2
  191. package/dist/dockview-core.amd.noStyle.js +6310 -6306
  192. package/dist/dockview-core.cjs.js +6339 -6335
  193. package/dist/dockview-core.esm.js +6339 -6335
  194. package/dist/dockview-core.esm.min.js +2 -2
  195. package/dist/dockview-core.js +6343 -6339
  196. package/dist/dockview-core.min.js +2 -2
  197. package/dist/dockview-core.min.noStyle.js +2 -2
  198. package/dist/dockview-core.noStyle.js +6310 -6306
  199. package/dist/esm/api/component.api.d.ts +144 -145
  200. package/dist/esm/api/component.api.d.ts.map +1 -0
  201. package/dist/esm/api/component.api.js +324 -329
  202. package/dist/esm/api/component.api.js.map +1 -0
  203. package/dist/esm/api/dockviewPanelApi.d.ts +35 -34
  204. package/dist/esm/api/dockviewPanelApi.d.ts.map +1 -0
  205. package/dist/esm/api/dockviewPanelApi.js +49 -48
  206. package/dist/esm/api/dockviewPanelApi.js.map +1 -0
  207. package/dist/esm/api/gridviewPanelApi.d.ts +38 -37
  208. package/dist/esm/api/gridviewPanelApi.d.ts.map +1 -0
  209. package/dist/esm/api/gridviewPanelApi.js +26 -25
  210. package/dist/esm/api/gridviewPanelApi.js.map +1 -0
  211. package/dist/esm/api/panelApi.d.ts +89 -88
  212. package/dist/esm/api/panelApi.d.ts.map +1 -0
  213. package/dist/esm/api/panelApi.js +96 -95
  214. package/dist/esm/api/panelApi.js.map +1 -0
  215. package/dist/esm/api/paneviewPanelApi.d.ts +27 -26
  216. package/dist/esm/api/paneviewPanelApi.d.ts.map +1 -0
  217. package/dist/esm/api/paneviewPanelApi.js +28 -27
  218. package/dist/esm/api/paneviewPanelApi.js.map +1 -0
  219. package/dist/esm/api/splitviewPanelApi.d.ts +33 -32
  220. package/dist/esm/api/splitviewPanelApi.d.ts.map +1 -0
  221. package/dist/esm/api/splitviewPanelApi.js +26 -25
  222. package/dist/esm/api/splitviewPanelApi.js.map +1 -0
  223. package/dist/esm/array.d.ts +13 -12
  224. package/dist/esm/array.d.ts.map +1 -0
  225. package/dist/esm/array.js +50 -49
  226. package/dist/esm/array.js.map +1 -0
  227. package/dist/esm/dnd/abstractDragHandler.d.ts +12 -11
  228. package/dist/esm/dnd/abstractDragHandler.d.ts.map +1 -0
  229. package/dist/esm/dnd/abstractDragHandler.js +48 -47
  230. package/dist/esm/dnd/abstractDragHandler.js.map +1 -0
  231. package/dist/esm/dnd/dataTransfer.d.ts +32 -31
  232. package/dist/esm/dnd/dataTransfer.d.ts.map +1 -0
  233. package/dist/esm/dnd/dataTransfer.js +70 -69
  234. package/dist/esm/dnd/dataTransfer.js.map +1 -0
  235. package/dist/esm/dnd/dnd.d.ts +28 -27
  236. package/dist/esm/dnd/dnd.d.ts.map +1 -0
  237. package/dist/esm/dnd/dnd.js +37 -36
  238. package/dist/esm/dnd/dnd.js.map +1 -0
  239. package/dist/esm/dnd/droptarget.d.ts +43 -42
  240. package/dist/esm/dnd/droptarget.d.ts.map +1 -0
  241. package/dist/esm/dnd/droptarget.js +251 -250
  242. package/dist/esm/dnd/droptarget.js.map +1 -0
  243. package/dist/esm/dnd/ghost.d.ts +2 -1
  244. package/dist/esm/dnd/ghost.d.ts.map +1 -0
  245. package/dist/esm/dnd/ghost.js +12 -11
  246. package/dist/esm/dnd/ghost.js.map +1 -0
  247. package/dist/esm/dnd/groupDragHandler.d.ts +12 -11
  248. package/dist/esm/dnd/groupDragHandler.d.ts.map +1 -0
  249. package/dist/esm/dnd/groupDragHandler.js +39 -38
  250. package/dist/esm/dnd/groupDragHandler.js.map +1 -0
  251. package/dist/esm/dockview/components/panel/content.d.ts +31 -30
  252. package/dist/esm/dockview/components/panel/content.d.ts.map +1 -0
  253. package/dist/esm/dockview/components/panel/content.js +74 -73
  254. package/dist/esm/dockview/components/panel/content.js.map +1 -0
  255. package/dist/esm/dockview/components/tab/defaultTab.d.ts +22 -21
  256. package/dist/esm/dockview/components/tab/defaultTab.d.ts.map +1 -0
  257. package/dist/esm/dockview/components/tab/defaultTab.js +68 -67
  258. package/dist/esm/dockview/components/tab/defaultTab.js.map +1 -0
  259. package/dist/esm/dockview/components/tab/tab.d.ts +32 -31
  260. package/dist/esm/dockview/components/tab/tab.d.ts.map +1 -0
  261. package/dist/esm/dockview/components/tab/tab.js +95 -94
  262. package/dist/esm/dockview/components/tab/tab.js.map +1 -0
  263. package/dist/esm/dockview/components/titlebar/tabsContainer.d.ts +60 -63
  264. package/dist/esm/dockview/components/titlebar/tabsContainer.d.ts.map +1 -0
  265. package/dist/esm/dockview/components/titlebar/tabsContainer.js +167 -179
  266. package/dist/esm/dockview/components/titlebar/tabsContainer.js.map +1 -0
  267. package/dist/esm/dockview/components/titlebar/voidContainer.d.ts +16 -15
  268. package/dist/esm/dockview/components/titlebar/voidContainer.d.ts.map +1 -0
  269. package/dist/esm/dockview/components/titlebar/voidContainer.js +48 -47
  270. package/dist/esm/dockview/components/titlebar/voidContainer.js.map +1 -0
  271. package/dist/esm/dockview/components/watermark/watermark.d.ts +19 -18
  272. package/dist/esm/dockview/components/watermark/watermark.d.ts.map +1 -0
  273. package/dist/esm/dockview/components/watermark/watermark.js +62 -60
  274. package/dist/esm/dockview/components/watermark/watermark.js.map +1 -0
  275. package/dist/esm/dockview/deserializer.d.ts +13 -12
  276. package/dist/esm/dockview/deserializer.d.ts.map +1 -0
  277. package/dist/esm/dockview/deserializer.js +41 -40
  278. package/dist/esm/dockview/deserializer.js.map +1 -0
  279. package/dist/esm/dockview/dockviewComponent.d.ts +121 -126
  280. package/dist/esm/dockview/dockviewComponent.d.ts.map +1 -0
  281. package/dist/esm/dockview/dockviewComponent.js +595 -612
  282. package/dist/esm/dockview/dockviewComponent.js.map +1 -0
  283. package/dist/esm/dockview/dockviewGroupPanel.d.ts +32 -31
  284. package/dist/esm/dockview/dockviewGroupPanel.d.ts.map +1 -0
  285. package/dist/esm/dockview/dockviewGroupPanel.js +51 -50
  286. package/dist/esm/dockview/dockviewGroupPanel.js.map +1 -0
  287. package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +175 -176
  288. package/dist/esm/dockview/dockviewGroupPanelModel.d.ts.map +1 -0
  289. package/dist/esm/dockview/dockviewGroupPanelModel.js +450 -449
  290. package/dist/esm/dockview/dockviewGroupPanelModel.js.map +1 -0
  291. package/dist/esm/dockview/dockviewPanel.d.ts +41 -40
  292. package/dist/esm/dockview/dockviewPanel.d.ts.map +1 -0
  293. package/dist/esm/dockview/dockviewPanel.js +102 -104
  294. package/dist/esm/dockview/dockviewPanel.js.map +1 -0
  295. package/dist/esm/dockview/dockviewPanelModel.d.ts +35 -34
  296. package/dist/esm/dockview/dockviewPanelModel.d.ts.map +1 -0
  297. package/dist/esm/dockview/dockviewPanelModel.js +69 -68
  298. package/dist/esm/dockview/dockviewPanelModel.js.map +1 -0
  299. package/dist/esm/dockview/options.d.ts +117 -116
  300. package/dist/esm/dockview/options.d.ts.map +1 -0
  301. package/dist/esm/dockview/options.js +25 -24
  302. package/dist/esm/dockview/options.js.map +1 -0
  303. package/dist/esm/dockview/types.d.ts +68 -67
  304. package/dist/esm/dockview/types.d.ts.map +1 -0
  305. package/dist/esm/dockview/types.js +8 -7
  306. package/dist/esm/dockview/types.js.map +1 -0
  307. package/dist/esm/dom.d.ts +15 -14
  308. package/dist/esm/dom.d.ts.map +1 -0
  309. package/dist/esm/dom.js +121 -113
  310. package/dist/esm/dom.js.map +1 -0
  311. package/dist/esm/events.d.ts +31 -30
  312. package/dist/esm/events.d.ts.map +1 -0
  313. package/dist/esm/events.js +89 -88
  314. package/dist/esm/events.js.map +1 -0
  315. package/dist/esm/gridview/baseComponentGridview.d.ts +88 -87
  316. package/dist/esm/gridview/baseComponentGridview.d.ts.map +1 -0
  317. package/dist/esm/gridview/baseComponentGridview.js +186 -189
  318. package/dist/esm/gridview/baseComponentGridview.js.map +1 -0
  319. package/dist/esm/gridview/basePanelView.d.ts +41 -40
  320. package/dist/esm/gridview/basePanelView.d.ts.map +1 -0
  321. package/dist/esm/gridview/basePanelView.js +75 -74
  322. package/dist/esm/gridview/basePanelView.js.map +1 -0
  323. package/dist/esm/gridview/branchNode.d.ts +50 -49
  324. package/dist/esm/gridview/branchNode.d.ts.map +1 -0
  325. package/dist/esm/gridview/branchNode.js +219 -218
  326. package/dist/esm/gridview/branchNode.js.map +1 -0
  327. package/dist/esm/gridview/gridview.d.ts +134 -133
  328. package/dist/esm/gridview/gridview.d.ts.map +1 -0
  329. package/dist/esm/gridview/gridview.js +431 -423
  330. package/dist/esm/gridview/gridview.js.map +1 -0
  331. package/dist/esm/gridview/gridviewComponent.d.ts +81 -80
  332. package/dist/esm/gridview/gridviewComponent.d.ts.map +1 -0
  333. package/dist/esm/gridview/gridviewComponent.js +239 -237
  334. package/dist/esm/gridview/gridviewComponent.js.map +1 -0
  335. package/dist/esm/gridview/gridviewPanel.d.ts +66 -65
  336. package/dist/esm/gridview/gridviewPanel.d.ts.map +1 -0
  337. package/dist/esm/gridview/gridviewPanel.js +152 -151
  338. package/dist/esm/gridview/gridviewPanel.js.map +1 -0
  339. package/dist/esm/gridview/leafNode.d.ts +35 -34
  340. package/dist/esm/gridview/leafNode.d.ts.map +1 -0
  341. package/dist/esm/gridview/leafNode.js +104 -103
  342. package/dist/esm/gridview/leafNode.js.map +1 -0
  343. package/dist/esm/gridview/options.d.ts +19 -18
  344. package/dist/esm/gridview/options.d.ts.map +1 -0
  345. package/dist/esm/gridview/options.js +2 -1
  346. package/dist/esm/gridview/options.js.map +1 -0
  347. package/dist/esm/gridview/types.d.ts +4 -3
  348. package/dist/esm/gridview/types.d.ts.map +1 -0
  349. package/dist/esm/gridview/types.js +2 -1
  350. package/dist/esm/gridview/types.js.map +1 -0
  351. package/dist/esm/index.d.ts +42 -41
  352. package/dist/esm/index.d.ts.map +1 -0
  353. package/dist/esm/index.js +36 -35
  354. package/dist/esm/index.js.map +1 -0
  355. package/dist/esm/lifecycle.d.ts +25 -22
  356. package/dist/esm/lifecycle.d.ts.map +1 -0
  357. package/dist/esm/lifecycle.js +45 -39
  358. package/dist/esm/lifecycle.js.map +1 -0
  359. package/dist/esm/math.d.ts +6 -5
  360. package/dist/esm/math.d.ts.map +1 -0
  361. package/dist/esm/math.js +29 -28
  362. package/dist/esm/math.js.map +1 -0
  363. package/dist/esm/panel/componentFactory.d.ts +11 -10
  364. package/dist/esm/panel/componentFactory.d.ts.map +1 -0
  365. package/dist/esm/panel/componentFactory.js +25 -24
  366. package/dist/esm/panel/componentFactory.js.map +1 -0
  367. package/dist/esm/panel/types.d.ts +34 -33
  368. package/dist/esm/panel/types.d.ts.map +1 -0
  369. package/dist/esm/panel/types.js +2 -1
  370. package/dist/esm/panel/types.js.map +1 -0
  371. package/dist/esm/paneview/defaultPaneviewHeader.d.ts +22 -21
  372. package/dist/esm/paneview/defaultPaneviewHeader.d.ts.map +1 -0
  373. package/dist/esm/paneview/defaultPaneviewHeader.js +64 -63
  374. package/dist/esm/paneview/defaultPaneviewHeader.js.map +1 -0
  375. package/dist/esm/paneview/draggablePaneviewPanel.d.ts +22 -21
  376. package/dist/esm/paneview/draggablePaneviewPanel.d.ts.map +1 -0
  377. package/dist/esm/paneview/draggablePaneviewPanel.js +93 -92
  378. package/dist/esm/paneview/draggablePaneviewPanel.js.map +1 -0
  379. package/dist/esm/paneview/options.d.ts +29 -27
  380. package/dist/esm/paneview/options.d.ts.map +1 -0
  381. package/dist/esm/paneview/options.js +2 -1
  382. package/dist/esm/paneview/options.js.map +1 -0
  383. package/dist/esm/paneview/paneview.d.ts +41 -40
  384. package/dist/esm/paneview/paneview.d.ts.map +1 -0
  385. package/dist/esm/paneview/paneview.js +146 -145
  386. package/dist/esm/paneview/paneview.js.map +1 -0
  387. package/dist/esm/paneview/paneviewComponent.d.ts +130 -129
  388. package/dist/esm/paneview/paneviewComponent.d.ts.map +1 -0
  389. package/dist/esm/paneview/paneviewComponent.js +271 -270
  390. package/dist/esm/paneview/paneviewComponent.js.map +1 -0
  391. package/dist/esm/paneview/paneviewPanel.d.ts +93 -92
  392. package/dist/esm/paneview/paneviewPanel.d.ts.map +1 -0
  393. package/dist/esm/paneview/paneviewPanel.js +193 -192
  394. package/dist/esm/paneview/paneviewPanel.js.map +1 -0
  395. package/dist/esm/resizable.d.ts +8 -0
  396. package/dist/esm/resizable.d.ts.map +1 -0
  397. package/dist/esm/resizable.js +31 -0
  398. package/dist/esm/resizable.js.map +1 -0
  399. package/dist/esm/splitview/options.d.ts +28 -26
  400. package/dist/esm/splitview/options.d.ts.map +1 -0
  401. package/dist/esm/splitview/options.js +2 -1
  402. package/dist/esm/splitview/options.js.map +1 -0
  403. package/dist/esm/splitview/splitview.d.ts +128 -127
  404. package/dist/esm/splitview/splitview.d.ts.map +1 -0
  405. package/dist/esm/splitview/splitview.js +690 -689
  406. package/dist/esm/splitview/splitview.js.map +1 -0
  407. package/dist/esm/splitview/splitviewComponent.d.ts +102 -101
  408. package/dist/esm/splitview/splitviewComponent.d.ts.map +1 -0
  409. package/dist/esm/splitview/splitviewComponent.js +250 -249
  410. package/dist/esm/splitview/splitviewComponent.js.map +1 -0
  411. package/dist/esm/splitview/splitviewPanel.d.ts +46 -45
  412. package/dist/esm/splitview/splitviewPanel.d.ts.map +1 -0
  413. package/dist/esm/splitview/splitviewPanel.js +109 -108
  414. package/dist/esm/splitview/splitviewPanel.js.map +1 -0
  415. package/dist/esm/splitview/viewItem.d.ts +26 -25
  416. package/dist/esm/splitview/viewItem.d.ts.map +1 -0
  417. package/dist/esm/splitview/viewItem.js +75 -74
  418. package/dist/esm/splitview/viewItem.js.map +1 -0
  419. package/dist/esm/svg.d.ts +4 -3
  420. package/dist/esm/svg.d.ts.map +1 -0
  421. package/dist/esm/svg.js +32 -31
  422. package/dist/esm/svg.js.map +1 -0
  423. package/dist/esm/types.d.ts +3 -2
  424. package/dist/esm/types.d.ts.map +1 -0
  425. package/dist/esm/types.js +2 -1
  426. package/dist/esm/types.js.map +1 -0
  427. package/dist/styles/dockview.css +54 -54
  428. package/package.json +6 -5
@@ -1,772 +1,750 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
- var __assign = (this && this.__assign) || function () {
18
- __assign = Object.assign || function(t) {
19
- for (var s, i = 1, n = arguments.length; i < n; i++) {
20
- s = arguments[i];
21
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22
- t[p] = s[p];
23
- }
24
- return t;
25
- };
26
- return __assign.apply(this, arguments);
27
- };
28
- var __values = (this && this.__values) || function(o) {
29
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
30
- if (m) return m.call(o);
31
- if (o && typeof o.length === "number") return {
32
- next: function () {
33
- if (o && i >= o.length) o = void 0;
34
- return { value: o && o[i++], done: !o };
35
- }
36
- };
37
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
38
- };
39
- var __read = (this && this.__read) || function (o, n) {
40
- var m = typeof Symbol === "function" && o[Symbol.iterator];
41
- if (!m) return o;
42
- var i = m.call(o), r, ar = [], e;
43
- try {
44
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
45
- }
46
- catch (error) { e = { error: error }; }
47
- finally {
48
- try {
49
- if (r && !r.done && (m = i["return"])) m.call(i);
50
- }
51
- finally { if (e) throw e.error; }
52
- }
53
- return ar;
54
- };
55
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
56
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
57
- if (ar || !(i in from)) {
58
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
59
- ar[i] = from[i];
60
- }
61
- }
62
- return to.concat(ar || Array.prototype.slice.call(from));
63
- };
64
- Object.defineProperty(exports, "__esModule", { value: true });
65
- exports.DockviewComponent = void 0;
66
- var gridview_1 = require("../gridview/gridview");
67
- var droptarget_1 = require("../dnd/droptarget");
68
- var array_1 = require("../array");
69
- var dockviewPanel_1 = require("./dockviewPanel");
70
- var lifecycle_1 = require("../lifecycle");
71
- var events_1 = require("../events");
72
- var watermark_1 = require("./components/watermark/watermark");
73
- var types_1 = require("./types");
74
- var math_1 = require("../math");
75
- var deserializer_1 = require("./deserializer");
76
- var componentFactory_1 = require("../panel/componentFactory");
77
- var options_1 = require("./options");
78
- var baseComponentGridview_1 = require("../gridview/baseComponentGridview");
79
- var component_api_1 = require("../api/component.api");
80
- var splitview_1 = require("../splitview/splitview");
81
- var dockviewGroupPanel_1 = require("./dockviewGroupPanel");
82
- var dockviewPanelModel_1 = require("./dockviewPanelModel");
83
- var dataTransfer_1 = require("../dnd/dataTransfer");
84
- var DockviewComponent = /** @class */ (function (_super) {
85
- __extends(DockviewComponent, _super);
86
- function DockviewComponent(element, options) {
87
- var _this = _super.call(this, element, {
88
- proportionalLayout: true,
89
- orientation: options.orientation || splitview_1.Orientation.HORIZONTAL,
90
- styles: options.styles,
91
- }) || this;
92
- _this.nextGroupId = (0, math_1.sequentialNumberGenerator)();
93
- _this._deserializer = new deserializer_1.DefaultDockviewDeserialzier(_this);
94
- _this.watermark = null;
95
- _this._onDidDrop = new events_1.Emitter();
96
- _this.onDidDrop = _this._onDidDrop.event;
97
- _this._onDidRemovePanel = new events_1.Emitter();
98
- _this.onDidRemovePanel = _this._onDidRemovePanel.event;
99
- _this._onDidAddPanel = new events_1.Emitter();
100
- _this.onDidAddPanel = _this._onDidAddPanel.event;
101
- _this._onDidLayoutFromJSON = new events_1.Emitter();
102
- _this.onDidLayoutFromJSON = _this._onDidLayoutFromJSON.event;
103
- _this._onDidActivePanelChange = new events_1.Emitter();
104
- _this.onDidActivePanelChange = _this._onDidActivePanelChange.event;
105
- _this.element.classList.add('dv-dockview');
106
- _this.addDisposables(_this._onDidDrop, events_1.Event.any(_this.onDidAddGroup, _this.onDidRemoveGroup)(function () {
107
- _this.updateWatermark();
108
- }), events_1.Event.any(_this.onDidAddPanel, _this.onDidRemovePanel, _this.onDidActivePanelChange)(function () {
109
- _this._bufferOnDidLayoutChange.fire();
110
- }));
111
- _this._options = options;
112
- if (!_this.options.components) {
113
- _this.options.components = {};
114
- }
115
- if (!_this.options.frameworkComponents) {
116
- _this.options.frameworkComponents = {};
117
- }
118
- if (!_this.options.frameworkTabComponents) {
119
- _this.options.frameworkTabComponents = {};
120
- }
121
- if (!_this.options.tabComponents) {
122
- _this.options.tabComponents = {};
123
- }
124
- if (!_this.options.watermarkComponent &&
125
- !_this.options.watermarkFrameworkComponent) {
126
- _this.options.watermarkComponent = watermark_1.Watermark;
127
- }
128
- var dropTarget = new droptarget_1.Droptarget(_this.element, {
129
- canDisplayOverlay: function (event, position) {
130
- var data = (0, dataTransfer_1.getPanelData)();
131
- if (data) {
132
- if (data.viewId !== _this.id) {
133
- return false;
134
- }
135
- return true;
136
- }
137
- if (_this.options.showDndOverlay) {
138
- return _this.options.showDndOverlay({
139
- nativeEvent: event,
140
- position: position,
141
- target: types_1.DockviewDropTargets.Edge,
142
- getData: dataTransfer_1.getPanelData,
143
- });
144
- }
145
- return false;
146
- },
147
- acceptedTargetZones: ['top', 'bottom', 'left', 'right'],
148
- overlayModel: {
149
- activationSize: { type: 'pixels', value: 10 },
150
- size: { type: 'pixels', value: 20 },
151
- },
152
- });
153
- _this.addDisposables(dropTarget, dropTarget.onDrop(function (event) {
154
- var data = (0, dataTransfer_1.getPanelData)();
155
- if (data) {
156
- _this.moveGroupOrPanel(_this.orthogonalize(event.position), data.groupId, data.panelId || undefined, 'center');
157
- }
158
- else {
159
- _this._onDidDrop.fire(__assign(__assign({}, event), { api: _this._api, group: null, getData: dataTransfer_1.getPanelData }));
160
- }
161
- }));
162
- _this._api = new component_api_1.DockviewApi(_this);
163
- _this.updateWatermark();
164
- return _this;
165
- }
166
- Object.defineProperty(DockviewComponent.prototype, "orientation", {
167
- get: function () {
168
- return this.gridview.orientation;
169
- },
170
- enumerable: false,
171
- configurable: true
172
- });
173
- Object.defineProperty(DockviewComponent.prototype, "totalPanels", {
174
- get: function () {
175
- return this.panels.length;
176
- },
177
- enumerable: false,
178
- configurable: true
179
- });
180
- Object.defineProperty(DockviewComponent.prototype, "panels", {
181
- get: function () {
182
- return this.groups.flatMap(function (group) { return group.panels; });
183
- },
184
- enumerable: false,
185
- configurable: true
186
- });
187
- Object.defineProperty(DockviewComponent.prototype, "options", {
188
- get: function () {
189
- return this._options;
190
- },
191
- enumerable: false,
192
- configurable: true
193
- });
194
- Object.defineProperty(DockviewComponent.prototype, "activePanel", {
195
- get: function () {
196
- var activeGroup = this.activeGroup;
197
- if (!activeGroup) {
198
- return undefined;
199
- }
200
- return activeGroup.activePanel;
201
- },
202
- enumerable: false,
203
- configurable: true
204
- });
205
- Object.defineProperty(DockviewComponent.prototype, "tabHeight", {
206
- get: function () {
207
- return this.options.tabHeight;
208
- },
209
- set: function (height) {
210
- this.options.tabHeight = height;
211
- this._groups.forEach(function (value) {
212
- value.value.model.header.height = height;
213
- });
214
- },
215
- enumerable: false,
216
- configurable: true
217
- });
218
- DockviewComponent.prototype.orthogonalize = function (position) {
219
- switch (position) {
220
- case 'top':
221
- case 'bottom':
222
- if (this.gridview.orientation === splitview_1.Orientation.HORIZONTAL) {
223
- // we need to add to a vertical splitview but the current root is a horizontal splitview.
224
- // insert a vertical splitview at the root level and add the existing view as a child
225
- this.gridview.insertOrthogonalSplitviewAtRoot();
226
- }
227
- break;
228
- case 'left':
229
- case 'right':
230
- if (this.gridview.orientation === splitview_1.Orientation.VERTICAL) {
231
- // we need to add to a horizontal splitview but the current root is a vertical splitview.
232
- // insert a horiziontal splitview at the root level and add the existing view as a child
233
- this.gridview.insertOrthogonalSplitviewAtRoot();
234
- }
235
- break;
236
- default:
237
- break;
238
- }
239
- switch (position) {
240
- case 'top':
241
- case 'left':
242
- return this.createGroupAtLocation([0]); // insert into first position
243
- case 'bottom':
244
- case 'right':
245
- return this.createGroupAtLocation([this.gridview.length]); // insert into last position
246
- default:
247
- throw new Error("unsupported position ".concat(position));
248
- }
249
- };
250
- DockviewComponent.prototype.updateOptions = function (options) {
251
- var hasOrientationChanged = typeof options.orientation === 'string' &&
252
- this.gridview.orientation !== options.orientation;
253
- this._options = __assign(__assign({}, this.options), options);
254
- if (hasOrientationChanged) {
255
- this.gridview.orientation = options.orientation;
256
- }
257
- this.layout(this.gridview.width, this.gridview.height, true);
258
- };
259
- DockviewComponent.prototype.focus = function () {
260
- var _a;
261
- (_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.focus();
262
- };
263
- DockviewComponent.prototype.getGroupPanel = function (id) {
264
- return this.panels.find(function (panel) { return panel.id === id; });
265
- };
266
- DockviewComponent.prototype.setActivePanel = function (panel) {
267
- this.doSetGroupActive(panel.group);
268
- panel.group.model.openPanel(panel);
269
- };
270
- DockviewComponent.prototype.moveToNext = function (options) {
271
- var _a;
272
- if (options === void 0) { options = {}; }
273
- if (!options.group) {
274
- if (!this.activeGroup) {
275
- return;
276
- }
277
- options.group = this.activeGroup;
278
- }
279
- if (options.includePanel && options.group) {
280
- if (options.group.activePanel !==
281
- options.group.panels[options.group.panels.length - 1]) {
282
- options.group.model.moveToNext({ suppressRoll: true });
283
- return;
284
- }
285
- }
286
- var location = (0, gridview_1.getGridLocation)(options.group.element);
287
- var next = (_a = this.gridview.next(location)) === null || _a === void 0 ? void 0 : _a.view;
288
- this.doSetGroupActive(next);
289
- };
290
- DockviewComponent.prototype.moveToPrevious = function (options) {
291
- var _a;
292
- if (options === void 0) { options = {}; }
293
- if (!options.group) {
294
- if (!this.activeGroup) {
295
- return;
296
- }
297
- options.group = this.activeGroup;
298
- }
299
- if (options.includePanel && options.group) {
300
- if (options.group.activePanel !== options.group.panels[0]) {
301
- options.group.model.moveToPrevious({ suppressRoll: true });
302
- return;
303
- }
304
- }
305
- var location = (0, gridview_1.getGridLocation)(options.group.element);
306
- var next = (_a = this.gridview.previous(location)) === null || _a === void 0 ? void 0 : _a.view;
307
- if (next) {
308
- this.doSetGroupActive(next);
309
- }
310
- };
311
- /**
312
- * Serialize the current state of the layout
313
- *
314
- * @returns A JSON respresentation of the layout
315
- */
316
- DockviewComponent.prototype.toJSON = function () {
317
- var _a;
318
- var data = this.gridview.serialize();
319
- var panels = this.panels.reduce(function (collection, panel) {
320
- collection[panel.id] = panel.toJSON();
321
- return collection;
322
- }, {});
323
- return {
324
- grid: data,
325
- panels: panels,
326
- activeGroup: (_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.id,
327
- options: { tabHeight: this.tabHeight },
328
- };
329
- };
330
- DockviewComponent.prototype.fromJSON = function (data) {
331
- var _this = this;
332
- this.clear();
333
- var grid = data.grid, panels = data.panels, options = data.options, activeGroup = data.activeGroup;
334
- if (typeof (options === null || options === void 0 ? void 0 : options.tabHeight) === 'number') {
335
- this.tabHeight = options.tabHeight;
336
- }
337
- if (grid.root.type !== 'branch' || !Array.isArray(grid.root.data)) {
338
- throw new Error('root must be of type branch');
339
- }
340
- this.gridview.deserialize(grid, {
341
- fromJSON: function (node) {
342
- var e_1, _a;
343
- var _b = node.data, id = _b.id, locked = _b.locked, hideHeader = _b.hideHeader, views = _b.views, activeView = _b.activeView;
344
- var group = _this.createGroup({
345
- id: id,
346
- locked: !!locked,
347
- hideHeader: !!hideHeader,
348
- });
349
- _this._onDidAddGroup.fire(group);
350
- try {
351
- for (var views_1 = __values(views), views_1_1 = views_1.next(); !views_1_1.done; views_1_1 = views_1.next()) {
352
- var child = views_1_1.value;
353
- var panel = _this._deserializer.fromJSON(panels[child], group);
354
- var isActive = typeof activeView === 'string' &&
355
- activeView === panel.id;
356
- group.model.openPanel(panel, {
357
- skipSetPanelActive: !isActive,
358
- skipSetGroupActive: true,
359
- });
360
- }
361
- }
362
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
363
- finally {
364
- try {
365
- if (views_1_1 && !views_1_1.done && (_a = views_1.return)) _a.call(views_1);
366
- }
367
- finally { if (e_1) throw e_1.error; }
368
- }
369
- if (!group.activePanel && group.panels.length > 0) {
370
- group.model.openPanel(group.panels[group.panels.length - 1], {
371
- skipSetGroupActive: true,
372
- });
373
- }
374
- return group;
375
- },
376
- });
377
- if (typeof activeGroup === 'string') {
378
- var panel = this.getPanel(activeGroup);
379
- if (panel) {
380
- this.doSetGroupActive(panel);
381
- }
382
- }
383
- this.gridview.layout(this.width, this.height);
384
- this._onDidLayoutFromJSON.fire();
385
- };
386
- DockviewComponent.prototype.clear = function () {
387
- var e_2, _a;
388
- var groups = Array.from(this._groups.values()).map(function (_) { return _.value; });
389
- var hasActiveGroup = !!this.activeGroup;
390
- var hasActivePanel = !!this.activePanel;
391
- try {
392
- for (var groups_1 = __values(groups), groups_1_1 = groups_1.next(); !groups_1_1.done; groups_1_1 = groups_1.next()) {
393
- var group = groups_1_1.value;
394
- // remove the group will automatically remove the panels
395
- this.removeGroup(group, true);
396
- }
397
- }
398
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
399
- finally {
400
- try {
401
- if (groups_1_1 && !groups_1_1.done && (_a = groups_1.return)) _a.call(groups_1);
402
- }
403
- finally { if (e_2) throw e_2.error; }
404
- }
405
- if (hasActiveGroup) {
406
- this.doSetGroupActive(undefined);
407
- }
408
- if (hasActivePanel) {
409
- this._onDidActivePanelChange.fire(undefined);
410
- }
411
- this.gridview.clear();
412
- };
413
- DockviewComponent.prototype.closeAllGroups = function () {
414
- var e_3, _a;
415
- try {
416
- for (var _b = __values(this._groups.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {
417
- var entry = _c.value;
418
- var _d = __read(entry, 2), _ = _d[0], group = _d[1];
419
- group.value.model.closeAllPanels();
420
- }
421
- }
422
- catch (e_3_1) { e_3 = { error: e_3_1 }; }
423
- finally {
424
- try {
425
- if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
426
- }
427
- finally { if (e_3) throw e_3.error; }
428
- }
429
- };
430
- DockviewComponent.prototype.addPanel = function (options) {
431
- var _a, _b;
432
- if (this.panels.find(function (_) { return _.id === options.id; })) {
433
- throw new Error("panel with id ".concat(options.id, " already exists"));
434
- }
435
- var referenceGroup;
436
- if (options.position) {
437
- if ((0, options_1.isPanelOptionsWithPanel)(options.position)) {
438
- var referencePanel = typeof options.position.referencePanel === 'string'
439
- ? this.getGroupPanel(options.position.referencePanel)
440
- : options.position.referencePanel;
441
- if (!referencePanel) {
442
- throw new Error("referencePanel ".concat(options.position.referencePanel, " does not exist"));
443
- }
444
- referenceGroup = this.findGroup(referencePanel);
445
- }
446
- else if ((0, options_1.isPanelOptionsWithGroup)(options.position)) {
447
- referenceGroup =
448
- typeof options.position.referenceGroup === 'string'
449
- ? (_a = this._groups.get(options.position.referenceGroup)) === null || _a === void 0 ? void 0 : _a.value
450
- : options.position.referenceGroup;
451
- if (!referenceGroup) {
452
- throw new Error("referencePanel ".concat(options.position.referenceGroup, " does not exist"));
453
- }
454
- }
455
- else {
456
- var group = this.orthogonalize((0, droptarget_1.directionToPosition)(options.position.direction));
457
- var panel_1 = this.createPanel(options, group);
458
- group.model.openPanel(panel_1);
459
- return panel_1;
460
- }
461
- }
462
- else {
463
- referenceGroup = this.activeGroup;
464
- }
465
- var panel;
466
- if (referenceGroup) {
467
- var target = (0, baseComponentGridview_1.toTarget)(((_b = options.position) === null || _b === void 0 ? void 0 : _b.direction) || 'within');
468
- if (target === 'center') {
469
- panel = this.createPanel(options, referenceGroup);
470
- referenceGroup.model.openPanel(panel);
471
- }
472
- else {
473
- var location_1 = (0, gridview_1.getGridLocation)(referenceGroup.element);
474
- var relativeLocation = (0, gridview_1.getRelativeLocation)(this.gridview.orientation, location_1, target);
475
- var group = this.createGroupAtLocation(relativeLocation);
476
- panel = this.createPanel(options, group);
477
- group.model.openPanel(panel);
478
- }
479
- }
480
- else {
481
- var group = this.createGroupAtLocation();
482
- panel = this.createPanel(options, group);
483
- group.model.openPanel(panel);
484
- }
485
- return panel;
486
- };
487
- DockviewComponent.prototype.removePanel = function (panel, options) {
488
- if (options === void 0) { options = {
489
- removeEmptyGroup: true,
490
- skipDispose: false,
491
- }; }
492
- var group = panel.group;
493
- if (!group) {
494
- throw new Error("cannot remove panel ".concat(panel.id, ". it's missing a group."));
495
- }
496
- group.model.removePanel(panel);
497
- panel.dispose();
498
- if (group.size === 0 && options.removeEmptyGroup) {
499
- this.removeGroup(group);
500
- }
501
- };
502
- DockviewComponent.prototype.createWatermarkComponent = function () {
503
- var _a;
504
- return (0, componentFactory_1.createComponent)('watermark-id', 'watermark-name', this.options.watermarkComponent
505
- ? { 'watermark-name': this.options.watermarkComponent }
506
- : {}, this.options.watermarkFrameworkComponent
507
- ? { 'watermark-name': this.options.watermarkFrameworkComponent }
508
- : {}, (_a = this.options.frameworkComponentFactory) === null || _a === void 0 ? void 0 : _a.watermark);
509
- };
510
- DockviewComponent.prototype.updateWatermark = function () {
511
- var _a, _b;
512
- if (this.groups.length === 0) {
513
- if (!this.watermark) {
514
- this.watermark = this.createWatermarkComponent();
515
- this.watermark.init({
516
- containerApi: new component_api_1.DockviewApi(this),
517
- });
518
- var watermarkContainer = document.createElement('div');
519
- watermarkContainer.className = 'dv-watermark-container';
520
- watermarkContainer.appendChild(this.watermark.element);
521
- this.element.appendChild(watermarkContainer);
522
- }
523
- }
524
- else if (this.watermark) {
525
- this.watermark.element.parentElement.remove();
526
- (_b = (_a = this.watermark).dispose) === null || _b === void 0 ? void 0 : _b.call(_a);
527
- this.watermark = null;
528
- }
529
- };
530
- DockviewComponent.prototype.addGroup = function (options) {
531
- var _a;
532
- var group = this.createGroup();
533
- if (options) {
534
- var referenceGroup = void 0;
535
- if ((0, options_1.isGroupOptionsWithPanel)(options)) {
536
- var referencePanel = typeof options.referencePanel === 'string'
537
- ? this.panels.find(function (panel) { return panel.id === options.referencePanel; })
538
- : options.referencePanel;
539
- if (!referencePanel) {
540
- throw new Error("reference panel ".concat(options.referencePanel, " does not exist"));
541
- }
542
- referenceGroup = this.findGroup(referencePanel);
543
- if (!referenceGroup) {
544
- throw new Error("reference group for reference panel ".concat(options.referencePanel, " does not exist"));
545
- }
546
- }
547
- else if ((0, options_1.isGroupOptionsWithGroup)(options)) {
548
- referenceGroup =
549
- typeof options.referenceGroup === 'string'
550
- ? (_a = this._groups.get(options.referenceGroup)) === null || _a === void 0 ? void 0 : _a.value
551
- : options.referenceGroup;
552
- if (!referenceGroup) {
553
- throw new Error("reference group ".concat(options.referenceGroup, " does not exist"));
554
- }
555
- }
556
- else {
557
- var group_1 = this.orthogonalize((0, droptarget_1.directionToPosition)(options.direction));
558
- return group_1;
559
- }
560
- var target = (0, baseComponentGridview_1.toTarget)(options.direction || 'within');
561
- var location_2 = (0, gridview_1.getGridLocation)(referenceGroup.element);
562
- var relativeLocation = (0, gridview_1.getRelativeLocation)(this.gridview.orientation, location_2, target);
563
- this.doAddGroup(group, relativeLocation);
564
- return group;
565
- }
566
- else {
567
- this.doAddGroup(group);
568
- return group;
569
- }
570
- };
571
- DockviewComponent.prototype.removeGroup = function (group, skipActive) {
572
- var e_4, _a;
573
- if (skipActive === void 0) { skipActive = false; }
574
- var panels = __spreadArray([], __read(group.panels), false); // reassign since group panels will mutate
575
- try {
576
- for (var panels_1 = __values(panels), panels_1_1 = panels_1.next(); !panels_1_1.done; panels_1_1 = panels_1.next()) {
577
- var panel = panels_1_1.value;
578
- this.removePanel(panel, {
579
- removeEmptyGroup: false,
580
- skipDispose: false,
581
- });
582
- }
583
- }
584
- catch (e_4_1) { e_4 = { error: e_4_1 }; }
585
- finally {
586
- try {
587
- if (panels_1_1 && !panels_1_1.done && (_a = panels_1.return)) _a.call(panels_1);
588
- }
589
- finally { if (e_4) throw e_4.error; }
590
- }
591
- _super.prototype.doRemoveGroup.call(this, group, { skipActive: skipActive });
592
- };
593
- DockviewComponent.prototype.moveGroupOrPanel = function (referenceGroup, groupId, itemId, target, index) {
594
- var _a;
595
- var sourceGroup = groupId
596
- ? (_a = this._groups.get(groupId)) === null || _a === void 0 ? void 0 : _a.value
597
- : undefined;
598
- if (itemId === undefined) {
599
- if (sourceGroup) {
600
- this.moveGroup(sourceGroup, referenceGroup, target);
601
- }
602
- return;
603
- }
604
- if (!target || target === 'center') {
605
- var groupItem = (sourceGroup === null || sourceGroup === void 0 ? void 0 : sourceGroup.model.removePanel(itemId)) ||
606
- this.panels.find(function (panel) { return panel.id === itemId; });
607
- if (!groupItem) {
608
- throw new Error("No panel with id ".concat(itemId));
609
- }
610
- if ((sourceGroup === null || sourceGroup === void 0 ? void 0 : sourceGroup.model.size) === 0) {
611
- this.doRemoveGroup(sourceGroup);
612
- }
613
- referenceGroup.model.openPanel(groupItem, { index: index });
614
- }
615
- else {
616
- var referenceLocation = (0, gridview_1.getGridLocation)(referenceGroup.element);
617
- var targetLocation = (0, gridview_1.getRelativeLocation)(this.gridview.orientation, referenceLocation, target);
618
- if (sourceGroup && sourceGroup.size < 2) {
619
- var _b = __read((0, array_1.tail)(targetLocation), 2), targetParentLocation = _b[0], to = _b[1];
620
- var sourceLocation = (0, gridview_1.getGridLocation)(sourceGroup.element);
621
- var _c = __read((0, array_1.tail)(sourceLocation), 2), sourceParentLocation = _c[0], from = _c[1];
622
- if ((0, array_1.sequenceEquals)(sourceParentLocation, targetParentLocation)) {
623
- // special case when 'swapping' two views within same grid location
624
- // if a group has one tab - we are essentially moving the 'group'
625
- // which is equivalent to swapping two views in this case
626
- this.gridview.moveView(sourceParentLocation, from, to);
627
- }
628
- else {
629
- // source group will become empty so delete the group
630
- var targetGroup = this.doRemoveGroup(sourceGroup, {
631
- skipActive: true,
632
- skipDispose: true,
633
- });
634
- // after deleting the group we need to re-evaulate the ref location
635
- var updatedReferenceLocation = (0, gridview_1.getGridLocation)(referenceGroup.element);
636
- var location_3 = (0, gridview_1.getRelativeLocation)(this.gridview.orientation, updatedReferenceLocation, target);
637
- this.doAddGroup(targetGroup, location_3);
638
- }
639
- }
640
- else {
641
- var groupItem = (sourceGroup === null || sourceGroup === void 0 ? void 0 : sourceGroup.model.removePanel(itemId)) ||
642
- this.panels.find(function (panel) { return panel.id === itemId; });
643
- if (!groupItem) {
644
- throw new Error("No panel with id ".concat(itemId));
645
- }
646
- var dropLocation = (0, gridview_1.getRelativeLocation)(this.gridview.orientation, referenceLocation, target);
647
- var group = this.createGroupAtLocation(dropLocation);
648
- group.model.openPanel(groupItem);
649
- }
650
- }
651
- };
652
- DockviewComponent.prototype.moveGroup = function (sourceGroup, referenceGroup, target) {
653
- var e_5, _a;
654
- if (sourceGroup) {
655
- if (!target || target === 'center') {
656
- var activePanel = sourceGroup.activePanel;
657
- var panels = __spreadArray([], __read(sourceGroup.panels), false).map(function (p) {
658
- return sourceGroup.model.removePanel(p.id);
659
- });
660
- if ((sourceGroup === null || sourceGroup === void 0 ? void 0 : sourceGroup.model.size) === 0) {
661
- this.doRemoveGroup(sourceGroup);
662
- }
663
- try {
664
- for (var panels_2 = __values(panels), panels_2_1 = panels_2.next(); !panels_2_1.done; panels_2_1 = panels_2.next()) {
665
- var panel = panels_2_1.value;
666
- referenceGroup.model.openPanel(panel, {
667
- skipSetPanelActive: panel !== activePanel,
668
- });
669
- }
670
- }
671
- catch (e_5_1) { e_5 = { error: e_5_1 }; }
672
- finally {
673
- try {
674
- if (panels_2_1 && !panels_2_1.done && (_a = panels_2.return)) _a.call(panels_2);
675
- }
676
- finally { if (e_5) throw e_5.error; }
677
- }
678
- }
679
- else {
680
- this.gridview.removeView((0, gridview_1.getGridLocation)(sourceGroup.element));
681
- var referenceLocation = (0, gridview_1.getGridLocation)(referenceGroup.element);
682
- var dropLocation = (0, gridview_1.getRelativeLocation)(this.gridview.orientation, referenceLocation, target);
683
- this.gridview.addView(sourceGroup, splitview_1.Sizing.Distribute, dropLocation);
684
- }
685
- }
686
- };
687
- DockviewComponent.prototype.doSetGroupActive = function (group, skipFocus) {
688
- var _a, _b;
689
- var isGroupAlreadyFocused = this._activeGroup === group;
690
- _super.prototype.doSetGroupActive.call(this, group, skipFocus);
691
- if (!isGroupAlreadyFocused && ((_a = this._activeGroup) === null || _a === void 0 ? void 0 : _a.activePanel)) {
692
- this._onDidActivePanelChange.fire((_b = this._activeGroup) === null || _b === void 0 ? void 0 : _b.activePanel);
693
- }
694
- };
695
- DockviewComponent.prototype.createGroup = function (options) {
696
- var _this = this;
697
- if (!options) {
698
- options = { tabHeight: this.tabHeight };
699
- }
700
- if (typeof options.tabHeight !== 'number') {
701
- options.tabHeight = this.tabHeight;
702
- }
703
- var id = options === null || options === void 0 ? void 0 : options.id;
704
- if (id && this._groups.has(options.id)) {
705
- console.warn("Duplicate group id ".concat(options === null || options === void 0 ? void 0 : options.id, ". reassigning group id to avoid errors"));
706
- id = undefined;
707
- }
708
- if (!id) {
709
- id = this.nextGroupId.next();
710
- while (this._groups.has(id)) {
711
- id = this.nextGroupId.next();
712
- }
713
- }
714
- var view = new dockviewGroupPanel_1.DockviewGroupPanel(this, id, options);
715
- view.init({ params: {}, accessor: null }); // required to initialized .part and allow for correct disposal of group
716
- if (!this._groups.has(view.id)) {
717
- var disposable = new lifecycle_1.CompositeDisposable(view.model.onMove(function (event) {
718
- var groupId = event.groupId, itemId = event.itemId, target = event.target, index = event.index;
719
- _this.moveGroupOrPanel(view, groupId, itemId, target, index);
720
- }), view.model.onDidDrop(function (event) {
721
- _this._onDidDrop.fire(__assign(__assign({}, event), { api: _this._api, group: view }));
722
- }), view.model.onDidAddPanel(function (event) {
723
- _this._onDidAddPanel.fire(event.panel);
724
- }), view.model.onDidRemovePanel(function (event) {
725
- _this._onDidRemovePanel.fire(event.panel);
726
- }), view.model.onDidActivePanelChange(function (event) {
727
- _this._onDidActivePanelChange.fire(event.panel);
728
- }));
729
- this._groups.set(view.id, { value: view, disposable: disposable });
730
- }
731
- // TODO: must be called after the above listeners have been setup,
732
- // not an ideal pattern
733
- view.initialize();
734
- if (typeof this.options.tabHeight === 'number') {
735
- view.model.header.height = this.options.tabHeight;
736
- }
737
- return view;
738
- };
739
- DockviewComponent.prototype.createPanel = function (options, group) {
740
- var contentComponent = options.component;
741
- var tabComponent = options.tabComponent || this.options.defaultTabComponent;
742
- var view = new dockviewPanelModel_1.DockviewPanelModel(this, options.id, contentComponent, tabComponent);
743
- var panel = new dockviewPanel_1.DockviewPanel(options.id, this, this._api, group, view);
744
- panel.init({
745
- title: options.title || options.id,
746
- params: (options === null || options === void 0 ? void 0 : options.params) || {},
747
- });
748
- return panel;
749
- };
750
- DockviewComponent.prototype.createGroupAtLocation = function (location) {
751
- if (location === void 0) { location = [0]; }
752
- var group = this.createGroup();
753
- this.doAddGroup(group, location);
754
- return group;
755
- };
756
- DockviewComponent.prototype.findGroup = function (panel) {
757
- var _a;
758
- return (_a = Array.from(this._groups.values()).find(function (group) {
759
- return group.value.model.containsPanel(panel);
760
- })) === null || _a === void 0 ? void 0 : _a.value;
761
- };
762
- DockviewComponent.prototype.dispose = function () {
763
- _super.prototype.dispose.call(this);
764
- this._onDidActivePanelChange.dispose();
765
- this._onDidAddPanel.dispose();
766
- this._onDidRemovePanel.dispose();
767
- this._onDidLayoutFromJSON.dispose();
768
- };
769
- return DockviewComponent;
770
- }(baseComponentGridview_1.BaseGrid));
771
- exports.DockviewComponent = DockviewComponent;
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __assign = (this && this.__assign) || function () {
18
+ __assign = Object.assign || function(t) {
19
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
20
+ s = arguments[i];
21
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22
+ t[p] = s[p];
23
+ }
24
+ return t;
25
+ };
26
+ return __assign.apply(this, arguments);
27
+ };
28
+ var __values = (this && this.__values) || function(o) {
29
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
30
+ if (m) return m.call(o);
31
+ if (o && typeof o.length === "number") return {
32
+ next: function () {
33
+ if (o && i >= o.length) o = void 0;
34
+ return { value: o && o[i++], done: !o };
35
+ }
36
+ };
37
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
38
+ };
39
+ var __read = (this && this.__read) || function (o, n) {
40
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
41
+ if (!m) return o;
42
+ var i = m.call(o), r, ar = [], e;
43
+ try {
44
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
45
+ }
46
+ catch (error) { e = { error: error }; }
47
+ finally {
48
+ try {
49
+ if (r && !r.done && (m = i["return"])) m.call(i);
50
+ }
51
+ finally { if (e) throw e.error; }
52
+ }
53
+ return ar;
54
+ };
55
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
56
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
57
+ if (ar || !(i in from)) {
58
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
59
+ ar[i] = from[i];
60
+ }
61
+ }
62
+ return to.concat(ar || Array.prototype.slice.call(from));
63
+ };
64
+ Object.defineProperty(exports, "__esModule", { value: true });
65
+ exports.DockviewComponent = void 0;
66
+ var gridview_1 = require("../gridview/gridview");
67
+ var droptarget_1 = require("../dnd/droptarget");
68
+ var array_1 = require("../array");
69
+ var dockviewPanel_1 = require("./dockviewPanel");
70
+ var lifecycle_1 = require("../lifecycle");
71
+ var events_1 = require("../events");
72
+ var watermark_1 = require("./components/watermark/watermark");
73
+ var types_1 = require("./types");
74
+ var math_1 = require("../math");
75
+ var deserializer_1 = require("./deserializer");
76
+ var componentFactory_1 = require("../panel/componentFactory");
77
+ var options_1 = require("./options");
78
+ var baseComponentGridview_1 = require("../gridview/baseComponentGridview");
79
+ var component_api_1 = require("../api/component.api");
80
+ var splitview_1 = require("../splitview/splitview");
81
+ var dockviewGroupPanel_1 = require("./dockviewGroupPanel");
82
+ var dockviewPanelModel_1 = require("./dockviewPanelModel");
83
+ var dataTransfer_1 = require("../dnd/dataTransfer");
84
+ var DockviewComponent = /** @class */ (function (_super) {
85
+ __extends(DockviewComponent, _super);
86
+ function DockviewComponent(options) {
87
+ var _this = _super.call(this, {
88
+ proportionalLayout: true,
89
+ orientation: options.orientation || splitview_1.Orientation.HORIZONTAL,
90
+ styles: options.styles,
91
+ parentElement: options.parentElement,
92
+ }) || this;
93
+ _this.nextGroupId = (0, math_1.sequentialNumberGenerator)();
94
+ _this._deserializer = new deserializer_1.DefaultDockviewDeserialzier(_this);
95
+ _this.watermark = null;
96
+ _this._onDidDrop = new events_1.Emitter();
97
+ _this.onDidDrop = _this._onDidDrop.event;
98
+ _this._onDidRemovePanel = new events_1.Emitter();
99
+ _this.onDidRemovePanel = _this._onDidRemovePanel.event;
100
+ _this._onDidAddPanel = new events_1.Emitter();
101
+ _this.onDidAddPanel = _this._onDidAddPanel.event;
102
+ _this._onDidLayoutFromJSON = new events_1.Emitter();
103
+ _this.onDidLayoutFromJSON = _this._onDidLayoutFromJSON.event;
104
+ _this._onDidActivePanelChange = new events_1.Emitter();
105
+ _this.onDidActivePanelChange = _this._onDidActivePanelChange.event;
106
+ _this.element.classList.add('dv-dockview');
107
+ _this.addDisposables(_this._onDidDrop, events_1.Event.any(_this.onDidAddGroup, _this.onDidRemoveGroup)(function () {
108
+ _this.updateWatermark();
109
+ }), events_1.Event.any(_this.onDidAddPanel, _this.onDidRemovePanel, _this.onDidActivePanelChange)(function () {
110
+ _this._bufferOnDidLayoutChange.fire();
111
+ }));
112
+ _this._options = options;
113
+ if (!_this.options.components) {
114
+ _this.options.components = {};
115
+ }
116
+ if (!_this.options.frameworkComponents) {
117
+ _this.options.frameworkComponents = {};
118
+ }
119
+ if (!_this.options.frameworkTabComponents) {
120
+ _this.options.frameworkTabComponents = {};
121
+ }
122
+ if (!_this.options.tabComponents) {
123
+ _this.options.tabComponents = {};
124
+ }
125
+ if (!_this.options.watermarkComponent &&
126
+ !_this.options.watermarkFrameworkComponent) {
127
+ _this.options.watermarkComponent = watermark_1.Watermark;
128
+ }
129
+ var dropTarget = new droptarget_1.Droptarget(_this.element, {
130
+ canDisplayOverlay: function (event, position) {
131
+ var data = (0, dataTransfer_1.getPanelData)();
132
+ if (data) {
133
+ if (data.viewId !== _this.id) {
134
+ return false;
135
+ }
136
+ return true;
137
+ }
138
+ if (_this.options.showDndOverlay) {
139
+ return _this.options.showDndOverlay({
140
+ nativeEvent: event,
141
+ position: position,
142
+ target: types_1.DockviewDropTargets.Edge,
143
+ getData: dataTransfer_1.getPanelData,
144
+ });
145
+ }
146
+ return false;
147
+ },
148
+ acceptedTargetZones: ['top', 'bottom', 'left', 'right'],
149
+ overlayModel: {
150
+ activationSize: { type: 'pixels', value: 10 },
151
+ size: { type: 'pixels', value: 20 },
152
+ },
153
+ });
154
+ _this.addDisposables(dropTarget, dropTarget.onDrop(function (event) {
155
+ var data = (0, dataTransfer_1.getPanelData)();
156
+ if (data) {
157
+ _this.moveGroupOrPanel(_this.orthogonalize(event.position), data.groupId, data.panelId || undefined, 'center');
158
+ }
159
+ else {
160
+ _this._onDidDrop.fire(__assign(__assign({}, event), { api: _this._api, group: null, getData: dataTransfer_1.getPanelData }));
161
+ }
162
+ }));
163
+ _this._api = new component_api_1.DockviewApi(_this);
164
+ _this.updateWatermark();
165
+ return _this;
166
+ }
167
+ Object.defineProperty(DockviewComponent.prototype, "orientation", {
168
+ get: function () {
169
+ return this.gridview.orientation;
170
+ },
171
+ enumerable: false,
172
+ configurable: true
173
+ });
174
+ Object.defineProperty(DockviewComponent.prototype, "totalPanels", {
175
+ get: function () {
176
+ return this.panels.length;
177
+ },
178
+ enumerable: false,
179
+ configurable: true
180
+ });
181
+ Object.defineProperty(DockviewComponent.prototype, "panels", {
182
+ get: function () {
183
+ return this.groups.flatMap(function (group) { return group.panels; });
184
+ },
185
+ enumerable: false,
186
+ configurable: true
187
+ });
188
+ Object.defineProperty(DockviewComponent.prototype, "options", {
189
+ get: function () {
190
+ return this._options;
191
+ },
192
+ enumerable: false,
193
+ configurable: true
194
+ });
195
+ Object.defineProperty(DockviewComponent.prototype, "activePanel", {
196
+ get: function () {
197
+ var activeGroup = this.activeGroup;
198
+ if (!activeGroup) {
199
+ return undefined;
200
+ }
201
+ return activeGroup.activePanel;
202
+ },
203
+ enumerable: false,
204
+ configurable: true
205
+ });
206
+ DockviewComponent.prototype.orthogonalize = function (position) {
207
+ switch (position) {
208
+ case 'top':
209
+ case 'bottom':
210
+ if (this.gridview.orientation === splitview_1.Orientation.HORIZONTAL) {
211
+ // we need to add to a vertical splitview but the current root is a horizontal splitview.
212
+ // insert a vertical splitview at the root level and add the existing view as a child
213
+ this.gridview.insertOrthogonalSplitviewAtRoot();
214
+ }
215
+ break;
216
+ case 'left':
217
+ case 'right':
218
+ if (this.gridview.orientation === splitview_1.Orientation.VERTICAL) {
219
+ // we need to add to a horizontal splitview but the current root is a vertical splitview.
220
+ // insert a horiziontal splitview at the root level and add the existing view as a child
221
+ this.gridview.insertOrthogonalSplitviewAtRoot();
222
+ }
223
+ break;
224
+ default:
225
+ break;
226
+ }
227
+ switch (position) {
228
+ case 'top':
229
+ case 'left':
230
+ return this.createGroupAtLocation([0]); // insert into first position
231
+ case 'bottom':
232
+ case 'right':
233
+ return this.createGroupAtLocation([this.gridview.length]); // insert into last position
234
+ default:
235
+ throw new Error("unsupported position ".concat(position));
236
+ }
237
+ };
238
+ DockviewComponent.prototype.updateOptions = function (options) {
239
+ var hasOrientationChanged = typeof options.orientation === 'string' &&
240
+ this.gridview.orientation !== options.orientation;
241
+ this._options = __assign(__assign({}, this.options), options);
242
+ if (hasOrientationChanged) {
243
+ this.gridview.orientation = options.orientation;
244
+ }
245
+ this.layout(this.gridview.width, this.gridview.height, true);
246
+ };
247
+ DockviewComponent.prototype.focus = function () {
248
+ var _a;
249
+ (_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.focus();
250
+ };
251
+ DockviewComponent.prototype.getGroupPanel = function (id) {
252
+ return this.panels.find(function (panel) { return panel.id === id; });
253
+ };
254
+ DockviewComponent.prototype.setActivePanel = function (panel) {
255
+ this.doSetGroupActive(panel.group);
256
+ panel.group.model.openPanel(panel);
257
+ };
258
+ DockviewComponent.prototype.moveToNext = function (options) {
259
+ var _a;
260
+ if (options === void 0) { options = {}; }
261
+ if (!options.group) {
262
+ if (!this.activeGroup) {
263
+ return;
264
+ }
265
+ options.group = this.activeGroup;
266
+ }
267
+ if (options.includePanel && options.group) {
268
+ if (options.group.activePanel !==
269
+ options.group.panels[options.group.panels.length - 1]) {
270
+ options.group.model.moveToNext({ suppressRoll: true });
271
+ return;
272
+ }
273
+ }
274
+ var location = (0, gridview_1.getGridLocation)(options.group.element);
275
+ var next = (_a = this.gridview.next(location)) === null || _a === void 0 ? void 0 : _a.view;
276
+ this.doSetGroupActive(next);
277
+ };
278
+ DockviewComponent.prototype.moveToPrevious = function (options) {
279
+ var _a;
280
+ if (options === void 0) { options = {}; }
281
+ if (!options.group) {
282
+ if (!this.activeGroup) {
283
+ return;
284
+ }
285
+ options.group = this.activeGroup;
286
+ }
287
+ if (options.includePanel && options.group) {
288
+ if (options.group.activePanel !== options.group.panels[0]) {
289
+ options.group.model.moveToPrevious({ suppressRoll: true });
290
+ return;
291
+ }
292
+ }
293
+ var location = (0, gridview_1.getGridLocation)(options.group.element);
294
+ var next = (_a = this.gridview.previous(location)) === null || _a === void 0 ? void 0 : _a.view;
295
+ if (next) {
296
+ this.doSetGroupActive(next);
297
+ }
298
+ };
299
+ /**
300
+ * Serialize the current state of the layout
301
+ *
302
+ * @returns A JSON respresentation of the layout
303
+ */
304
+ DockviewComponent.prototype.toJSON = function () {
305
+ var _a;
306
+ var data = this.gridview.serialize();
307
+ var panels = this.panels.reduce(function (collection, panel) {
308
+ collection[panel.id] = panel.toJSON();
309
+ return collection;
310
+ }, {});
311
+ return {
312
+ grid: data,
313
+ panels: panels,
314
+ activeGroup: (_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.id,
315
+ };
316
+ };
317
+ DockviewComponent.prototype.fromJSON = function (data) {
318
+ var _this = this;
319
+ this.clear();
320
+ var grid = data.grid, panels = data.panels, activeGroup = data.activeGroup;
321
+ if (grid.root.type !== 'branch' || !Array.isArray(grid.root.data)) {
322
+ throw new Error('root must be of type branch');
323
+ }
324
+ this.gridview.deserialize(grid, {
325
+ fromJSON: function (node) {
326
+ var e_1, _a;
327
+ var _b = node.data, id = _b.id, locked = _b.locked, hideHeader = _b.hideHeader, views = _b.views, activeView = _b.activeView;
328
+ var group = _this.createGroup({
329
+ id: id,
330
+ locked: !!locked,
331
+ hideHeader: !!hideHeader,
332
+ });
333
+ _this._onDidAddGroup.fire(group);
334
+ try {
335
+ for (var views_1 = __values(views), views_1_1 = views_1.next(); !views_1_1.done; views_1_1 = views_1.next()) {
336
+ var child = views_1_1.value;
337
+ var panel = _this._deserializer.fromJSON(panels[child], group);
338
+ var isActive = typeof activeView === 'string' &&
339
+ activeView === panel.id;
340
+ group.model.openPanel(panel, {
341
+ skipSetPanelActive: !isActive,
342
+ skipSetGroupActive: true,
343
+ });
344
+ }
345
+ }
346
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
347
+ finally {
348
+ try {
349
+ if (views_1_1 && !views_1_1.done && (_a = views_1.return)) _a.call(views_1);
350
+ }
351
+ finally { if (e_1) throw e_1.error; }
352
+ }
353
+ if (!group.activePanel && group.panels.length > 0) {
354
+ group.model.openPanel(group.panels[group.panels.length - 1], {
355
+ skipSetGroupActive: true,
356
+ });
357
+ }
358
+ return group;
359
+ },
360
+ });
361
+ if (typeof activeGroup === 'string') {
362
+ var panel = this.getPanel(activeGroup);
363
+ if (panel) {
364
+ this.doSetGroupActive(panel);
365
+ }
366
+ }
367
+ this.gridview.layout(this.width, this.height);
368
+ this._onDidLayoutFromJSON.fire();
369
+ };
370
+ DockviewComponent.prototype.clear = function () {
371
+ var e_2, _a;
372
+ var groups = Array.from(this._groups.values()).map(function (_) { return _.value; });
373
+ var hasActiveGroup = !!this.activeGroup;
374
+ var hasActivePanel = !!this.activePanel;
375
+ try {
376
+ for (var groups_1 = __values(groups), groups_1_1 = groups_1.next(); !groups_1_1.done; groups_1_1 = groups_1.next()) {
377
+ var group = groups_1_1.value;
378
+ // remove the group will automatically remove the panels
379
+ this.removeGroup(group, true);
380
+ }
381
+ }
382
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
383
+ finally {
384
+ try {
385
+ if (groups_1_1 && !groups_1_1.done && (_a = groups_1.return)) _a.call(groups_1);
386
+ }
387
+ finally { if (e_2) throw e_2.error; }
388
+ }
389
+ if (hasActiveGroup) {
390
+ this.doSetGroupActive(undefined);
391
+ }
392
+ if (hasActivePanel) {
393
+ this._onDidActivePanelChange.fire(undefined);
394
+ }
395
+ this.gridview.clear();
396
+ };
397
+ DockviewComponent.prototype.closeAllGroups = function () {
398
+ var e_3, _a;
399
+ try {
400
+ for (var _b = __values(this._groups.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {
401
+ var entry = _c.value;
402
+ var _d = __read(entry, 2), _ = _d[0], group = _d[1];
403
+ group.value.model.closeAllPanels();
404
+ }
405
+ }
406
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
407
+ finally {
408
+ try {
409
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
410
+ }
411
+ finally { if (e_3) throw e_3.error; }
412
+ }
413
+ };
414
+ DockviewComponent.prototype.addPanel = function (options) {
415
+ var _a, _b;
416
+ if (this.panels.find(function (_) { return _.id === options.id; })) {
417
+ throw new Error("panel with id ".concat(options.id, " already exists"));
418
+ }
419
+ var referenceGroup;
420
+ if (options.position) {
421
+ if ((0, options_1.isPanelOptionsWithPanel)(options.position)) {
422
+ var referencePanel = typeof options.position.referencePanel === 'string'
423
+ ? this.getGroupPanel(options.position.referencePanel)
424
+ : options.position.referencePanel;
425
+ if (!referencePanel) {
426
+ throw new Error("referencePanel ".concat(options.position.referencePanel, " does not exist"));
427
+ }
428
+ referenceGroup = this.findGroup(referencePanel);
429
+ }
430
+ else if ((0, options_1.isPanelOptionsWithGroup)(options.position)) {
431
+ referenceGroup =
432
+ typeof options.position.referenceGroup === 'string'
433
+ ? (_a = this._groups.get(options.position.referenceGroup)) === null || _a === void 0 ? void 0 : _a.value
434
+ : options.position.referenceGroup;
435
+ if (!referenceGroup) {
436
+ throw new Error("referencePanel ".concat(options.position.referenceGroup, " does not exist"));
437
+ }
438
+ }
439
+ else {
440
+ var group = this.orthogonalize((0, droptarget_1.directionToPosition)(options.position.direction));
441
+ var panel_1 = this.createPanel(options, group);
442
+ group.model.openPanel(panel_1);
443
+ return panel_1;
444
+ }
445
+ }
446
+ else {
447
+ referenceGroup = this.activeGroup;
448
+ }
449
+ var panel;
450
+ if (referenceGroup) {
451
+ var target = (0, baseComponentGridview_1.toTarget)(((_b = options.position) === null || _b === void 0 ? void 0 : _b.direction) || 'within');
452
+ if (target === 'center') {
453
+ panel = this.createPanel(options, referenceGroup);
454
+ referenceGroup.model.openPanel(panel);
455
+ }
456
+ else {
457
+ var location_1 = (0, gridview_1.getGridLocation)(referenceGroup.element);
458
+ var relativeLocation = (0, gridview_1.getRelativeLocation)(this.gridview.orientation, location_1, target);
459
+ var group = this.createGroupAtLocation(relativeLocation);
460
+ panel = this.createPanel(options, group);
461
+ group.model.openPanel(panel);
462
+ }
463
+ }
464
+ else {
465
+ var group = this.createGroupAtLocation();
466
+ panel = this.createPanel(options, group);
467
+ group.model.openPanel(panel);
468
+ }
469
+ return panel;
470
+ };
471
+ DockviewComponent.prototype.removePanel = function (panel, options) {
472
+ if (options === void 0) { options = {
473
+ removeEmptyGroup: true,
474
+ skipDispose: false,
475
+ }; }
476
+ var group = panel.group;
477
+ if (!group) {
478
+ throw new Error("cannot remove panel ".concat(panel.id, ". it's missing a group."));
479
+ }
480
+ group.model.removePanel(panel);
481
+ panel.dispose();
482
+ if (group.size === 0 && options.removeEmptyGroup) {
483
+ this.removeGroup(group);
484
+ }
485
+ };
486
+ DockviewComponent.prototype.createWatermarkComponent = function () {
487
+ var _a;
488
+ return (0, componentFactory_1.createComponent)('watermark-id', 'watermark-name', this.options.watermarkComponent
489
+ ? { 'watermark-name': this.options.watermarkComponent }
490
+ : {}, this.options.watermarkFrameworkComponent
491
+ ? { 'watermark-name': this.options.watermarkFrameworkComponent }
492
+ : {}, (_a = this.options.frameworkComponentFactory) === null || _a === void 0 ? void 0 : _a.watermark);
493
+ };
494
+ DockviewComponent.prototype.updateWatermark = function () {
495
+ var _a, _b;
496
+ if (this.groups.length === 0) {
497
+ if (!this.watermark) {
498
+ this.watermark = this.createWatermarkComponent();
499
+ this.watermark.init({
500
+ containerApi: new component_api_1.DockviewApi(this),
501
+ });
502
+ var watermarkContainer = document.createElement('div');
503
+ watermarkContainer.className = 'dv-watermark-container';
504
+ watermarkContainer.appendChild(this.watermark.element);
505
+ this.element.appendChild(watermarkContainer);
506
+ }
507
+ }
508
+ else if (this.watermark) {
509
+ this.watermark.element.parentElement.remove();
510
+ (_b = (_a = this.watermark).dispose) === null || _b === void 0 ? void 0 : _b.call(_a);
511
+ this.watermark = null;
512
+ }
513
+ };
514
+ DockviewComponent.prototype.addGroup = function (options) {
515
+ var _a;
516
+ var group = this.createGroup();
517
+ if (options) {
518
+ var referenceGroup = void 0;
519
+ if ((0, options_1.isGroupOptionsWithPanel)(options)) {
520
+ var referencePanel = typeof options.referencePanel === 'string'
521
+ ? this.panels.find(function (panel) { return panel.id === options.referencePanel; })
522
+ : options.referencePanel;
523
+ if (!referencePanel) {
524
+ throw new Error("reference panel ".concat(options.referencePanel, " does not exist"));
525
+ }
526
+ referenceGroup = this.findGroup(referencePanel);
527
+ if (!referenceGroup) {
528
+ throw new Error("reference group for reference panel ".concat(options.referencePanel, " does not exist"));
529
+ }
530
+ }
531
+ else if ((0, options_1.isGroupOptionsWithGroup)(options)) {
532
+ referenceGroup =
533
+ typeof options.referenceGroup === 'string'
534
+ ? (_a = this._groups.get(options.referenceGroup)) === null || _a === void 0 ? void 0 : _a.value
535
+ : options.referenceGroup;
536
+ if (!referenceGroup) {
537
+ throw new Error("reference group ".concat(options.referenceGroup, " does not exist"));
538
+ }
539
+ }
540
+ else {
541
+ var group_1 = this.orthogonalize((0, droptarget_1.directionToPosition)(options.direction));
542
+ return group_1;
543
+ }
544
+ var target = (0, baseComponentGridview_1.toTarget)(options.direction || 'within');
545
+ var location_2 = (0, gridview_1.getGridLocation)(referenceGroup.element);
546
+ var relativeLocation = (0, gridview_1.getRelativeLocation)(this.gridview.orientation, location_2, target);
547
+ this.doAddGroup(group, relativeLocation);
548
+ return group;
549
+ }
550
+ else {
551
+ this.doAddGroup(group);
552
+ return group;
553
+ }
554
+ };
555
+ DockviewComponent.prototype.removeGroup = function (group, skipActive) {
556
+ var e_4, _a;
557
+ if (skipActive === void 0) { skipActive = false; }
558
+ var panels = __spreadArray([], __read(group.panels), false); // reassign since group panels will mutate
559
+ try {
560
+ for (var panels_1 = __values(panels), panels_1_1 = panels_1.next(); !panels_1_1.done; panels_1_1 = panels_1.next()) {
561
+ var panel = panels_1_1.value;
562
+ this.removePanel(panel, {
563
+ removeEmptyGroup: false,
564
+ skipDispose: false,
565
+ });
566
+ }
567
+ }
568
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
569
+ finally {
570
+ try {
571
+ if (panels_1_1 && !panels_1_1.done && (_a = panels_1.return)) _a.call(panels_1);
572
+ }
573
+ finally { if (e_4) throw e_4.error; }
574
+ }
575
+ _super.prototype.doRemoveGroup.call(this, group, { skipActive: skipActive });
576
+ };
577
+ DockviewComponent.prototype.moveGroupOrPanel = function (referenceGroup, groupId, itemId, target, index) {
578
+ var _a;
579
+ var sourceGroup = groupId
580
+ ? (_a = this._groups.get(groupId)) === null || _a === void 0 ? void 0 : _a.value
581
+ : undefined;
582
+ if (itemId === undefined) {
583
+ if (sourceGroup) {
584
+ this.moveGroup(sourceGroup, referenceGroup, target);
585
+ }
586
+ return;
587
+ }
588
+ if (!target || target === 'center') {
589
+ var groupItem = (sourceGroup === null || sourceGroup === void 0 ? void 0 : sourceGroup.model.removePanel(itemId)) ||
590
+ this.panels.find(function (panel) { return panel.id === itemId; });
591
+ if (!groupItem) {
592
+ throw new Error("No panel with id ".concat(itemId));
593
+ }
594
+ if ((sourceGroup === null || sourceGroup === void 0 ? void 0 : sourceGroup.model.size) === 0) {
595
+ this.doRemoveGroup(sourceGroup);
596
+ }
597
+ referenceGroup.model.openPanel(groupItem, { index: index });
598
+ }
599
+ else {
600
+ var referenceLocation = (0, gridview_1.getGridLocation)(referenceGroup.element);
601
+ var targetLocation = (0, gridview_1.getRelativeLocation)(this.gridview.orientation, referenceLocation, target);
602
+ if (sourceGroup && sourceGroup.size < 2) {
603
+ var _b = __read((0, array_1.tail)(targetLocation), 2), targetParentLocation = _b[0], to = _b[1];
604
+ var sourceLocation = (0, gridview_1.getGridLocation)(sourceGroup.element);
605
+ var _c = __read((0, array_1.tail)(sourceLocation), 2), sourceParentLocation = _c[0], from = _c[1];
606
+ if ((0, array_1.sequenceEquals)(sourceParentLocation, targetParentLocation)) {
607
+ // special case when 'swapping' two views within same grid location
608
+ // if a group has one tab - we are essentially moving the 'group'
609
+ // which is equivalent to swapping two views in this case
610
+ this.gridview.moveView(sourceParentLocation, from, to);
611
+ }
612
+ else {
613
+ // source group will become empty so delete the group
614
+ var targetGroup = this.doRemoveGroup(sourceGroup, {
615
+ skipActive: true,
616
+ skipDispose: true,
617
+ });
618
+ // after deleting the group we need to re-evaulate the ref location
619
+ var updatedReferenceLocation = (0, gridview_1.getGridLocation)(referenceGroup.element);
620
+ var location_3 = (0, gridview_1.getRelativeLocation)(this.gridview.orientation, updatedReferenceLocation, target);
621
+ this.doAddGroup(targetGroup, location_3);
622
+ }
623
+ }
624
+ else {
625
+ var groupItem = (sourceGroup === null || sourceGroup === void 0 ? void 0 : sourceGroup.model.removePanel(itemId)) ||
626
+ this.panels.find(function (panel) { return panel.id === itemId; });
627
+ if (!groupItem) {
628
+ throw new Error("No panel with id ".concat(itemId));
629
+ }
630
+ var dropLocation = (0, gridview_1.getRelativeLocation)(this.gridview.orientation, referenceLocation, target);
631
+ var group = this.createGroupAtLocation(dropLocation);
632
+ group.model.openPanel(groupItem);
633
+ }
634
+ }
635
+ };
636
+ DockviewComponent.prototype.moveGroup = function (sourceGroup, referenceGroup, target) {
637
+ var e_5, _a;
638
+ if (sourceGroup) {
639
+ if (!target || target === 'center') {
640
+ var activePanel = sourceGroup.activePanel;
641
+ var panels = __spreadArray([], __read(sourceGroup.panels), false).map(function (p) {
642
+ return sourceGroup.model.removePanel(p.id);
643
+ });
644
+ if ((sourceGroup === null || sourceGroup === void 0 ? void 0 : sourceGroup.model.size) === 0) {
645
+ this.doRemoveGroup(sourceGroup);
646
+ }
647
+ try {
648
+ for (var panels_2 = __values(panels), panels_2_1 = panels_2.next(); !panels_2_1.done; panels_2_1 = panels_2.next()) {
649
+ var panel = panels_2_1.value;
650
+ referenceGroup.model.openPanel(panel, {
651
+ skipSetPanelActive: panel !== activePanel,
652
+ });
653
+ }
654
+ }
655
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
656
+ finally {
657
+ try {
658
+ if (panels_2_1 && !panels_2_1.done && (_a = panels_2.return)) _a.call(panels_2);
659
+ }
660
+ finally { if (e_5) throw e_5.error; }
661
+ }
662
+ }
663
+ else {
664
+ this.gridview.removeView((0, gridview_1.getGridLocation)(sourceGroup.element));
665
+ var referenceLocation = (0, gridview_1.getGridLocation)(referenceGroup.element);
666
+ var dropLocation = (0, gridview_1.getRelativeLocation)(this.gridview.orientation, referenceLocation, target);
667
+ this.gridview.addView(sourceGroup, splitview_1.Sizing.Distribute, dropLocation);
668
+ }
669
+ }
670
+ };
671
+ DockviewComponent.prototype.doSetGroupActive = function (group, skipFocus) {
672
+ var _a, _b;
673
+ var isGroupAlreadyFocused = this._activeGroup === group;
674
+ _super.prototype.doSetGroupActive.call(this, group, skipFocus);
675
+ if (!isGroupAlreadyFocused && ((_a = this._activeGroup) === null || _a === void 0 ? void 0 : _a.activePanel)) {
676
+ this._onDidActivePanelChange.fire((_b = this._activeGroup) === null || _b === void 0 ? void 0 : _b.activePanel);
677
+ }
678
+ };
679
+ DockviewComponent.prototype.createGroup = function (options) {
680
+ var _this = this;
681
+ if (!options) {
682
+ options = {};
683
+ }
684
+ var id = options === null || options === void 0 ? void 0 : options.id;
685
+ if (id && this._groups.has(options.id)) {
686
+ console.warn("Duplicate group id ".concat(options === null || options === void 0 ? void 0 : options.id, ". reassigning group id to avoid errors"));
687
+ id = undefined;
688
+ }
689
+ if (!id) {
690
+ id = this.nextGroupId.next();
691
+ while (this._groups.has(id)) {
692
+ id = this.nextGroupId.next();
693
+ }
694
+ }
695
+ var view = new dockviewGroupPanel_1.DockviewGroupPanel(this, id, options);
696
+ view.init({ params: {}, accessor: null }); // required to initialized .part and allow for correct disposal of group
697
+ if (!this._groups.has(view.id)) {
698
+ var disposable = new lifecycle_1.CompositeDisposable(view.model.onMove(function (event) {
699
+ var groupId = event.groupId, itemId = event.itemId, target = event.target, index = event.index;
700
+ _this.moveGroupOrPanel(view, groupId, itemId, target, index);
701
+ }), view.model.onDidDrop(function (event) {
702
+ _this._onDidDrop.fire(__assign(__assign({}, event), { api: _this._api, group: view }));
703
+ }), view.model.onDidAddPanel(function (event) {
704
+ _this._onDidAddPanel.fire(event.panel);
705
+ }), view.model.onDidRemovePanel(function (event) {
706
+ _this._onDidRemovePanel.fire(event.panel);
707
+ }), view.model.onDidActivePanelChange(function (event) {
708
+ _this._onDidActivePanelChange.fire(event.panel);
709
+ }));
710
+ this._groups.set(view.id, { value: view, disposable: disposable });
711
+ }
712
+ // TODO: must be called after the above listeners have been setup,
713
+ // not an ideal pattern
714
+ view.initialize();
715
+ return view;
716
+ };
717
+ DockviewComponent.prototype.createPanel = function (options, group) {
718
+ var contentComponent = options.component;
719
+ var tabComponent = options.tabComponent || this.options.defaultTabComponent;
720
+ var view = new dockviewPanelModel_1.DockviewPanelModel(this, options.id, contentComponent, tabComponent);
721
+ var panel = new dockviewPanel_1.DockviewPanel(options.id, this, this._api, group, view);
722
+ panel.init({
723
+ title: options.title || options.id,
724
+ params: (options === null || options === void 0 ? void 0 : options.params) || {},
725
+ });
726
+ return panel;
727
+ };
728
+ DockviewComponent.prototype.createGroupAtLocation = function (location) {
729
+ if (location === void 0) { location = [0]; }
730
+ var group = this.createGroup();
731
+ this.doAddGroup(group, location);
732
+ return group;
733
+ };
734
+ DockviewComponent.prototype.findGroup = function (panel) {
735
+ var _a;
736
+ return (_a = Array.from(this._groups.values()).find(function (group) {
737
+ return group.value.model.containsPanel(panel);
738
+ })) === null || _a === void 0 ? void 0 : _a.value;
739
+ };
740
+ DockviewComponent.prototype.dispose = function () {
741
+ _super.prototype.dispose.call(this);
742
+ this._onDidActivePanelChange.dispose();
743
+ this._onDidAddPanel.dispose();
744
+ this._onDidRemovePanel.dispose();
745
+ this._onDidLayoutFromJSON.dispose();
746
+ };
747
+ return DockviewComponent;
748
+ }(baseComponentGridview_1.BaseGrid));
749
+ exports.DockviewComponent = DockviewComponent;
772
750
  //# sourceMappingURL=dockviewComponent.js.map