dockview-core 1.7.0 → 1.7.2

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 (430) 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 +33 -45
  66. package/dist/cjs/dockview/deserializer.js.map +1 -1
  67. package/dist/cjs/dockview/dockviewComponent.d.ts +121 -126
  68. package/dist/cjs/dockview/dockviewComponent.d.ts.map +1 -0
  69. package/dist/cjs/dockview/dockviewComponent.js +749 -771
  70. package/dist/cjs/dockview/dockviewComponent.js.map +1 -1
  71. package/dist/cjs/dockview/dockviewGroupPanel.d.ts +32 -31
  72. package/dist/cjs/dockview/dockviewGroupPanel.d.ts.map +1 -0
  73. package/dist/cjs/dockview/dockviewGroupPanel.js +96 -96
  74. package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts +175 -176
  75. package/dist/cjs/dockview/dockviewGroupPanelModel.d.ts.map +1 -0
  76. package/dist/cjs/dockview/dockviewGroupPanelModel.js +578 -578
  77. package/dist/cjs/dockview/dockviewGroupPanelModel.js.map +1 -1
  78. package/dist/cjs/dockview/dockviewPanel.d.ts +41 -40
  79. package/dist/cjs/dockview/dockviewPanel.d.ts.map +1 -0
  80. package/dist/cjs/dockview/dockviewPanel.js +146 -149
  81. package/dist/cjs/dockview/dockviewPanel.js.map +1 -1
  82. package/dist/cjs/dockview/dockviewPanelModel.d.ts +35 -34
  83. package/dist/cjs/dockview/dockviewPanelModel.d.ts.map +1 -0
  84. package/dist/cjs/dockview/dockviewPanelModel.js +98 -92
  85. package/dist/cjs/dockview/dockviewPanelModel.js.map +1 -1
  86. package/dist/cjs/dockview/options.d.ts +117 -116
  87. package/dist/cjs/dockview/options.d.ts.map +1 -0
  88. package/dist/cjs/dockview/options.js +31 -31
  89. package/dist/cjs/dockview/types.d.ts +68 -67
  90. package/dist/cjs/dockview/types.d.ts.map +1 -0
  91. package/dist/cjs/dockview/types.js +10 -10
  92. package/dist/cjs/dom.d.ts +15 -14
  93. package/dist/cjs/dom.d.ts.map +1 -0
  94. package/dist/cjs/dom.js +189 -182
  95. package/dist/cjs/dom.js.map +1 -1
  96. package/dist/cjs/events.d.ts +31 -30
  97. package/dist/cjs/events.d.ts.map +1 -0
  98. package/dist/cjs/events.js +129 -129
  99. package/dist/cjs/gridview/baseComponentGridview.d.ts +88 -87
  100. package/dist/cjs/gridview/baseComponentGridview.d.ts.map +1 -0
  101. package/dist/cjs/gridview/baseComponentGridview.js +271 -279
  102. package/dist/cjs/gridview/baseComponentGridview.js.map +1 -1
  103. package/dist/cjs/gridview/basePanelView.d.ts +41 -40
  104. package/dist/cjs/gridview/basePanelView.d.ts.map +1 -0
  105. package/dist/cjs/gridview/basePanelView.js +123 -123
  106. package/dist/cjs/gridview/branchNode.d.ts +50 -49
  107. package/dist/cjs/gridview/branchNode.d.ts.map +1 -0
  108. package/dist/cjs/gridview/branchNode.js +342 -342
  109. package/dist/cjs/gridview/gridview.d.ts +134 -133
  110. package/dist/cjs/gridview/gridview.d.ts.map +1 -0
  111. package/dist/cjs/gridview/gridview.js +517 -510
  112. package/dist/cjs/gridview/gridview.js.map +1 -1
  113. package/dist/cjs/gridview/gridviewComponent.d.ts +81 -80
  114. package/dist/cjs/gridview/gridviewComponent.d.ts.map +1 -0
  115. package/dist/cjs/gridview/gridviewComponent.js +325 -324
  116. package/dist/cjs/gridview/gridviewComponent.js.map +1 -1
  117. package/dist/cjs/gridview/gridviewPanel.d.ts +66 -65
  118. package/dist/cjs/gridview/gridviewPanel.d.ts.map +1 -0
  119. package/dist/cjs/gridview/gridviewPanel.js +214 -214
  120. package/dist/cjs/gridview/leafNode.d.ts +35 -34
  121. package/dist/cjs/gridview/leafNode.d.ts.map +1 -0
  122. package/dist/cjs/gridview/leafNode.js +170 -170
  123. package/dist/cjs/gridview/options.d.ts +19 -18
  124. package/dist/cjs/gridview/options.d.ts.map +1 -0
  125. package/dist/cjs/gridview/options.js +2 -2
  126. package/dist/cjs/gridview/types.d.ts +4 -3
  127. package/dist/cjs/gridview/types.d.ts.map +1 -0
  128. package/dist/cjs/gridview/types.js +2 -2
  129. package/dist/cjs/index.d.ts +42 -41
  130. package/dist/cjs/index.d.ts.map +1 -0
  131. package/dist/cjs/index.js +63 -63
  132. package/dist/cjs/lifecycle.d.ts +25 -22
  133. package/dist/cjs/lifecycle.d.ts.map +1 -0
  134. package/dist/cjs/lifecycle.js +97 -88
  135. package/dist/cjs/lifecycle.js.map +1 -1
  136. package/dist/cjs/math.d.ts +6 -5
  137. package/dist/cjs/math.d.ts.map +1 -0
  138. package/dist/cjs/math.js +34 -34
  139. package/dist/cjs/panel/componentFactory.d.ts +11 -10
  140. package/dist/cjs/panel/componentFactory.d.ts.map +1 -0
  141. package/dist/cjs/panel/componentFactory.js +30 -30
  142. package/dist/cjs/panel/types.d.ts +34 -33
  143. package/dist/cjs/panel/types.d.ts.map +1 -0
  144. package/dist/cjs/panel/types.js +2 -2
  145. package/dist/cjs/paneview/defaultPaneviewHeader.d.ts +22 -21
  146. package/dist/cjs/paneview/defaultPaneviewHeader.d.ts.map +1 -0
  147. package/dist/cjs/paneview/defaultPaneviewHeader.js +90 -90
  148. package/dist/cjs/paneview/draggablePaneviewPanel.d.ts +22 -21
  149. package/dist/cjs/paneview/draggablePaneviewPanel.d.ts.map +1 -0
  150. package/dist/cjs/paneview/draggablePaneviewPanel.js +131 -131
  151. package/dist/cjs/paneview/options.d.ts +29 -27
  152. package/dist/cjs/paneview/options.d.ts.map +1 -0
  153. package/dist/cjs/paneview/options.js +2 -2
  154. package/dist/cjs/paneview/paneview.d.ts +41 -40
  155. package/dist/cjs/paneview/paneview.d.ts.map +1 -0
  156. package/dist/cjs/paneview/paneview.js +201 -201
  157. package/dist/cjs/paneview/paneviewComponent.d.ts +130 -129
  158. package/dist/cjs/paneview/paneviewComponent.d.ts.map +1 -0
  159. package/dist/cjs/paneview/paneviewComponent.js +394 -394
  160. package/dist/cjs/paneview/paneviewComponent.js.map +1 -1
  161. package/dist/cjs/paneview/paneviewPanel.d.ts +93 -92
  162. package/dist/cjs/paneview/paneviewPanel.d.ts.map +1 -0
  163. package/dist/cjs/paneview/paneviewPanel.js +275 -275
  164. package/dist/cjs/resizable.d.ts +8 -0
  165. package/dist/cjs/resizable.d.ts.map +1 -0
  166. package/dist/cjs/resizable.js +57 -0
  167. package/dist/cjs/resizable.js.map +1 -0
  168. package/dist/cjs/splitview/options.d.ts +28 -26
  169. package/dist/cjs/splitview/options.d.ts.map +1 -0
  170. package/dist/cjs/splitview/options.js +2 -2
  171. package/dist/cjs/splitview/splitview.d.ts +128 -127
  172. package/dist/cjs/splitview/splitview.d.ts.map +1 -0
  173. package/dist/cjs/splitview/splitview.js +908 -908
  174. package/dist/cjs/splitview/splitviewComponent.d.ts +102 -101
  175. package/dist/cjs/splitview/splitviewComponent.d.ts.map +1 -0
  176. package/dist/cjs/splitview/splitviewComponent.js +373 -373
  177. package/dist/cjs/splitview/splitviewComponent.js.map +1 -1
  178. package/dist/cjs/splitview/splitviewPanel.d.ts +46 -45
  179. package/dist/cjs/splitview/splitviewPanel.d.ts.map +1 -0
  180. package/dist/cjs/splitview/splitviewPanel.js +179 -179
  181. package/dist/cjs/splitview/viewItem.d.ts +26 -25
  182. package/dist/cjs/splitview/viewItem.d.ts.map +1 -0
  183. package/dist/cjs/splitview/viewItem.js +119 -119
  184. package/dist/cjs/svg.d.ts +4 -3
  185. package/dist/cjs/svg.d.ts.map +1 -0
  186. package/dist/cjs/svg.js +43 -43
  187. package/dist/cjs/types.d.ts +3 -2
  188. package/dist/cjs/types.d.ts.map +1 -0
  189. package/dist/cjs/types.js +2 -2
  190. package/dist/dockview-core.amd.js +6340 -6339
  191. package/dist/dockview-core.amd.min.js +2 -2
  192. package/dist/dockview-core.amd.min.noStyle.js +2 -2
  193. package/dist/dockview-core.amd.noStyle.js +6307 -6306
  194. package/dist/dockview-core.cjs.js +6336 -6335
  195. package/dist/dockview-core.esm.js +6336 -6335
  196. package/dist/dockview-core.esm.min.js +2 -2
  197. package/dist/dockview-core.js +6340 -6339
  198. package/dist/dockview-core.min.js +2 -2
  199. package/dist/dockview-core.min.noStyle.js +2 -2
  200. package/dist/dockview-core.noStyle.js +6307 -6306
  201. package/dist/esm/api/component.api.d.ts +144 -145
  202. package/dist/esm/api/component.api.d.ts.map +1 -0
  203. package/dist/esm/api/component.api.js +324 -329
  204. package/dist/esm/api/component.api.js.map +1 -0
  205. package/dist/esm/api/dockviewPanelApi.d.ts +35 -34
  206. package/dist/esm/api/dockviewPanelApi.d.ts.map +1 -0
  207. package/dist/esm/api/dockviewPanelApi.js +49 -48
  208. package/dist/esm/api/dockviewPanelApi.js.map +1 -0
  209. package/dist/esm/api/gridviewPanelApi.d.ts +38 -37
  210. package/dist/esm/api/gridviewPanelApi.d.ts.map +1 -0
  211. package/dist/esm/api/gridviewPanelApi.js +26 -25
  212. package/dist/esm/api/gridviewPanelApi.js.map +1 -0
  213. package/dist/esm/api/panelApi.d.ts +89 -88
  214. package/dist/esm/api/panelApi.d.ts.map +1 -0
  215. package/dist/esm/api/panelApi.js +96 -95
  216. package/dist/esm/api/panelApi.js.map +1 -0
  217. package/dist/esm/api/paneviewPanelApi.d.ts +27 -26
  218. package/dist/esm/api/paneviewPanelApi.d.ts.map +1 -0
  219. package/dist/esm/api/paneviewPanelApi.js +28 -27
  220. package/dist/esm/api/paneviewPanelApi.js.map +1 -0
  221. package/dist/esm/api/splitviewPanelApi.d.ts +33 -32
  222. package/dist/esm/api/splitviewPanelApi.d.ts.map +1 -0
  223. package/dist/esm/api/splitviewPanelApi.js +26 -25
  224. package/dist/esm/api/splitviewPanelApi.js.map +1 -0
  225. package/dist/esm/array.d.ts +13 -12
  226. package/dist/esm/array.d.ts.map +1 -0
  227. package/dist/esm/array.js +50 -49
  228. package/dist/esm/array.js.map +1 -0
  229. package/dist/esm/dnd/abstractDragHandler.d.ts +12 -11
  230. package/dist/esm/dnd/abstractDragHandler.d.ts.map +1 -0
  231. package/dist/esm/dnd/abstractDragHandler.js +48 -47
  232. package/dist/esm/dnd/abstractDragHandler.js.map +1 -0
  233. package/dist/esm/dnd/dataTransfer.d.ts +32 -31
  234. package/dist/esm/dnd/dataTransfer.d.ts.map +1 -0
  235. package/dist/esm/dnd/dataTransfer.js +70 -69
  236. package/dist/esm/dnd/dataTransfer.js.map +1 -0
  237. package/dist/esm/dnd/dnd.d.ts +28 -27
  238. package/dist/esm/dnd/dnd.d.ts.map +1 -0
  239. package/dist/esm/dnd/dnd.js +37 -36
  240. package/dist/esm/dnd/dnd.js.map +1 -0
  241. package/dist/esm/dnd/droptarget.d.ts +43 -42
  242. package/dist/esm/dnd/droptarget.d.ts.map +1 -0
  243. package/dist/esm/dnd/droptarget.js +251 -250
  244. package/dist/esm/dnd/droptarget.js.map +1 -0
  245. package/dist/esm/dnd/ghost.d.ts +2 -1
  246. package/dist/esm/dnd/ghost.d.ts.map +1 -0
  247. package/dist/esm/dnd/ghost.js +12 -11
  248. package/dist/esm/dnd/ghost.js.map +1 -0
  249. package/dist/esm/dnd/groupDragHandler.d.ts +12 -11
  250. package/dist/esm/dnd/groupDragHandler.d.ts.map +1 -0
  251. package/dist/esm/dnd/groupDragHandler.js +39 -38
  252. package/dist/esm/dnd/groupDragHandler.js.map +1 -0
  253. package/dist/esm/dockview/components/panel/content.d.ts +31 -30
  254. package/dist/esm/dockview/components/panel/content.d.ts.map +1 -0
  255. package/dist/esm/dockview/components/panel/content.js +74 -73
  256. package/dist/esm/dockview/components/panel/content.js.map +1 -0
  257. package/dist/esm/dockview/components/tab/defaultTab.d.ts +22 -21
  258. package/dist/esm/dockview/components/tab/defaultTab.d.ts.map +1 -0
  259. package/dist/esm/dockview/components/tab/defaultTab.js +68 -67
  260. package/dist/esm/dockview/components/tab/defaultTab.js.map +1 -0
  261. package/dist/esm/dockview/components/tab/tab.d.ts +32 -31
  262. package/dist/esm/dockview/components/tab/tab.d.ts.map +1 -0
  263. package/dist/esm/dockview/components/tab/tab.js +95 -94
  264. package/dist/esm/dockview/components/tab/tab.js.map +1 -0
  265. package/dist/esm/dockview/components/titlebar/tabsContainer.d.ts +60 -63
  266. package/dist/esm/dockview/components/titlebar/tabsContainer.d.ts.map +1 -0
  267. package/dist/esm/dockview/components/titlebar/tabsContainer.js +167 -179
  268. package/dist/esm/dockview/components/titlebar/tabsContainer.js.map +1 -0
  269. package/dist/esm/dockview/components/titlebar/voidContainer.d.ts +16 -15
  270. package/dist/esm/dockview/components/titlebar/voidContainer.d.ts.map +1 -0
  271. package/dist/esm/dockview/components/titlebar/voidContainer.js +48 -47
  272. package/dist/esm/dockview/components/titlebar/voidContainer.js.map +1 -0
  273. package/dist/esm/dockview/components/watermark/watermark.d.ts +19 -18
  274. package/dist/esm/dockview/components/watermark/watermark.d.ts.map +1 -0
  275. package/dist/esm/dockview/components/watermark/watermark.js +62 -60
  276. package/dist/esm/dockview/components/watermark/watermark.js.map +1 -0
  277. package/dist/esm/dockview/deserializer.d.ts +13 -12
  278. package/dist/esm/dockview/deserializer.d.ts.map +1 -0
  279. package/dist/esm/dockview/deserializer.js +29 -40
  280. package/dist/esm/dockview/deserializer.js.map +1 -0
  281. package/dist/esm/dockview/dockviewComponent.d.ts +121 -126
  282. package/dist/esm/dockview/dockviewComponent.d.ts.map +1 -0
  283. package/dist/esm/dockview/dockviewComponent.js +595 -612
  284. package/dist/esm/dockview/dockviewComponent.js.map +1 -0
  285. package/dist/esm/dockview/dockviewGroupPanel.d.ts +32 -31
  286. package/dist/esm/dockview/dockviewGroupPanel.d.ts.map +1 -0
  287. package/dist/esm/dockview/dockviewGroupPanel.js +51 -50
  288. package/dist/esm/dockview/dockviewGroupPanel.js.map +1 -0
  289. package/dist/esm/dockview/dockviewGroupPanelModel.d.ts +175 -176
  290. package/dist/esm/dockview/dockviewGroupPanelModel.d.ts.map +1 -0
  291. package/dist/esm/dockview/dockviewGroupPanelModel.js +450 -449
  292. package/dist/esm/dockview/dockviewGroupPanelModel.js.map +1 -0
  293. package/dist/esm/dockview/dockviewPanel.d.ts +41 -40
  294. package/dist/esm/dockview/dockviewPanel.d.ts.map +1 -0
  295. package/dist/esm/dockview/dockviewPanel.js +102 -104
  296. package/dist/esm/dockview/dockviewPanel.js.map +1 -0
  297. package/dist/esm/dockview/dockviewPanelModel.d.ts +35 -34
  298. package/dist/esm/dockview/dockviewPanelModel.d.ts.map +1 -0
  299. package/dist/esm/dockview/dockviewPanelModel.js +75 -68
  300. package/dist/esm/dockview/dockviewPanelModel.js.map +1 -0
  301. package/dist/esm/dockview/options.d.ts +117 -116
  302. package/dist/esm/dockview/options.d.ts.map +1 -0
  303. package/dist/esm/dockview/options.js +25 -24
  304. package/dist/esm/dockview/options.js.map +1 -0
  305. package/dist/esm/dockview/types.d.ts +68 -67
  306. package/dist/esm/dockview/types.d.ts.map +1 -0
  307. package/dist/esm/dockview/types.js +8 -7
  308. package/dist/esm/dockview/types.js.map +1 -0
  309. package/dist/esm/dom.d.ts +15 -14
  310. package/dist/esm/dom.d.ts.map +1 -0
  311. package/dist/esm/dom.js +121 -113
  312. package/dist/esm/dom.js.map +1 -0
  313. package/dist/esm/events.d.ts +31 -30
  314. package/dist/esm/events.d.ts.map +1 -0
  315. package/dist/esm/events.js +89 -88
  316. package/dist/esm/events.js.map +1 -0
  317. package/dist/esm/gridview/baseComponentGridview.d.ts +88 -87
  318. package/dist/esm/gridview/baseComponentGridview.d.ts.map +1 -0
  319. package/dist/esm/gridview/baseComponentGridview.js +186 -189
  320. package/dist/esm/gridview/baseComponentGridview.js.map +1 -0
  321. package/dist/esm/gridview/basePanelView.d.ts +41 -40
  322. package/dist/esm/gridview/basePanelView.d.ts.map +1 -0
  323. package/dist/esm/gridview/basePanelView.js +75 -74
  324. package/dist/esm/gridview/basePanelView.js.map +1 -0
  325. package/dist/esm/gridview/branchNode.d.ts +50 -49
  326. package/dist/esm/gridview/branchNode.d.ts.map +1 -0
  327. package/dist/esm/gridview/branchNode.js +219 -218
  328. package/dist/esm/gridview/branchNode.js.map +1 -0
  329. package/dist/esm/gridview/gridview.d.ts +134 -133
  330. package/dist/esm/gridview/gridview.d.ts.map +1 -0
  331. package/dist/esm/gridview/gridview.js +431 -423
  332. package/dist/esm/gridview/gridview.js.map +1 -0
  333. package/dist/esm/gridview/gridviewComponent.d.ts +81 -80
  334. package/dist/esm/gridview/gridviewComponent.d.ts.map +1 -0
  335. package/dist/esm/gridview/gridviewComponent.js +239 -237
  336. package/dist/esm/gridview/gridviewComponent.js.map +1 -0
  337. package/dist/esm/gridview/gridviewPanel.d.ts +66 -65
  338. package/dist/esm/gridview/gridviewPanel.d.ts.map +1 -0
  339. package/dist/esm/gridview/gridviewPanel.js +152 -151
  340. package/dist/esm/gridview/gridviewPanel.js.map +1 -0
  341. package/dist/esm/gridview/leafNode.d.ts +35 -34
  342. package/dist/esm/gridview/leafNode.d.ts.map +1 -0
  343. package/dist/esm/gridview/leafNode.js +104 -103
  344. package/dist/esm/gridview/leafNode.js.map +1 -0
  345. package/dist/esm/gridview/options.d.ts +19 -18
  346. package/dist/esm/gridview/options.d.ts.map +1 -0
  347. package/dist/esm/gridview/options.js +2 -1
  348. package/dist/esm/gridview/options.js.map +1 -0
  349. package/dist/esm/gridview/types.d.ts +4 -3
  350. package/dist/esm/gridview/types.d.ts.map +1 -0
  351. package/dist/esm/gridview/types.js +2 -1
  352. package/dist/esm/gridview/types.js.map +1 -0
  353. package/dist/esm/index.d.ts +42 -41
  354. package/dist/esm/index.d.ts.map +1 -0
  355. package/dist/esm/index.js +36 -35
  356. package/dist/esm/index.js.map +1 -0
  357. package/dist/esm/lifecycle.d.ts +25 -22
  358. package/dist/esm/lifecycle.d.ts.map +1 -0
  359. package/dist/esm/lifecycle.js +45 -39
  360. package/dist/esm/lifecycle.js.map +1 -0
  361. package/dist/esm/math.d.ts +6 -5
  362. package/dist/esm/math.d.ts.map +1 -0
  363. package/dist/esm/math.js +29 -28
  364. package/dist/esm/math.js.map +1 -0
  365. package/dist/esm/panel/componentFactory.d.ts +11 -10
  366. package/dist/esm/panel/componentFactory.d.ts.map +1 -0
  367. package/dist/esm/panel/componentFactory.js +25 -24
  368. package/dist/esm/panel/componentFactory.js.map +1 -0
  369. package/dist/esm/panel/types.d.ts +34 -33
  370. package/dist/esm/panel/types.d.ts.map +1 -0
  371. package/dist/esm/panel/types.js +2 -1
  372. package/dist/esm/panel/types.js.map +1 -0
  373. package/dist/esm/paneview/defaultPaneviewHeader.d.ts +22 -21
  374. package/dist/esm/paneview/defaultPaneviewHeader.d.ts.map +1 -0
  375. package/dist/esm/paneview/defaultPaneviewHeader.js +64 -63
  376. package/dist/esm/paneview/defaultPaneviewHeader.js.map +1 -0
  377. package/dist/esm/paneview/draggablePaneviewPanel.d.ts +22 -21
  378. package/dist/esm/paneview/draggablePaneviewPanel.d.ts.map +1 -0
  379. package/dist/esm/paneview/draggablePaneviewPanel.js +93 -92
  380. package/dist/esm/paneview/draggablePaneviewPanel.js.map +1 -0
  381. package/dist/esm/paneview/options.d.ts +29 -27
  382. package/dist/esm/paneview/options.d.ts.map +1 -0
  383. package/dist/esm/paneview/options.js +2 -1
  384. package/dist/esm/paneview/options.js.map +1 -0
  385. package/dist/esm/paneview/paneview.d.ts +41 -40
  386. package/dist/esm/paneview/paneview.d.ts.map +1 -0
  387. package/dist/esm/paneview/paneview.js +146 -145
  388. package/dist/esm/paneview/paneview.js.map +1 -0
  389. package/dist/esm/paneview/paneviewComponent.d.ts +130 -129
  390. package/dist/esm/paneview/paneviewComponent.d.ts.map +1 -0
  391. package/dist/esm/paneview/paneviewComponent.js +271 -270
  392. package/dist/esm/paneview/paneviewComponent.js.map +1 -0
  393. package/dist/esm/paneview/paneviewPanel.d.ts +93 -92
  394. package/dist/esm/paneview/paneviewPanel.d.ts.map +1 -0
  395. package/dist/esm/paneview/paneviewPanel.js +193 -192
  396. package/dist/esm/paneview/paneviewPanel.js.map +1 -0
  397. package/dist/esm/resizable.d.ts +8 -0
  398. package/dist/esm/resizable.d.ts.map +1 -0
  399. package/dist/esm/resizable.js +31 -0
  400. package/dist/esm/resizable.js.map +1 -0
  401. package/dist/esm/splitview/options.d.ts +28 -26
  402. package/dist/esm/splitview/options.d.ts.map +1 -0
  403. package/dist/esm/splitview/options.js +2 -1
  404. package/dist/esm/splitview/options.js.map +1 -0
  405. package/dist/esm/splitview/splitview.d.ts +128 -127
  406. package/dist/esm/splitview/splitview.d.ts.map +1 -0
  407. package/dist/esm/splitview/splitview.js +690 -689
  408. package/dist/esm/splitview/splitview.js.map +1 -0
  409. package/dist/esm/splitview/splitviewComponent.d.ts +102 -101
  410. package/dist/esm/splitview/splitviewComponent.d.ts.map +1 -0
  411. package/dist/esm/splitview/splitviewComponent.js +250 -249
  412. package/dist/esm/splitview/splitviewComponent.js.map +1 -0
  413. package/dist/esm/splitview/splitviewPanel.d.ts +46 -45
  414. package/dist/esm/splitview/splitviewPanel.d.ts.map +1 -0
  415. package/dist/esm/splitview/splitviewPanel.js +109 -108
  416. package/dist/esm/splitview/splitviewPanel.js.map +1 -0
  417. package/dist/esm/splitview/viewItem.d.ts +26 -25
  418. package/dist/esm/splitview/viewItem.d.ts.map +1 -0
  419. package/dist/esm/splitview/viewItem.js +75 -74
  420. package/dist/esm/splitview/viewItem.js.map +1 -0
  421. package/dist/esm/svg.d.ts +4 -3
  422. package/dist/esm/svg.d.ts.map +1 -0
  423. package/dist/esm/svg.js +32 -31
  424. package/dist/esm/svg.js.map +1 -0
  425. package/dist/esm/types.d.ts +3 -2
  426. package/dist/esm/types.d.ts.map +1 -0
  427. package/dist/esm/types.js +2 -1
  428. package/dist/esm/types.js.map +1 -0
  429. package/dist/styles/dockview.css +4 -0
  430. package/package.json +4 -4
@@ -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