dockview 0.0.28 → 1.0.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 (355) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +60 -0
  3. package/dist/cjs/actionbar/actionsContainer.d.ts +7 -7
  4. package/dist/cjs/actionbar/actionsContainer.js +26 -26
  5. package/dist/cjs/api/component.api.d.ts +135 -131
  6. package/dist/cjs/api/component.api.js +486 -444
  7. package/dist/cjs/api/component.api.js.map +1 -1
  8. package/dist/cjs/api/gridviewPanelApi.d.ts +36 -36
  9. package/dist/cjs/api/gridviewPanelApi.js +46 -46
  10. package/dist/cjs/api/groupPanelApi.d.ts +44 -44
  11. package/dist/cjs/api/groupPanelApi.js +94 -94
  12. package/dist/cjs/api/groupPanelApi.js.map +1 -1
  13. package/dist/cjs/api/panelApi.d.ts +107 -107
  14. package/dist/cjs/api/panelApi.js +140 -140
  15. package/dist/cjs/api/paneviewPanelApi.d.ts +26 -26
  16. package/dist/cjs/api/paneviewPanelApi.js +56 -56
  17. package/dist/cjs/api/splitviewPanelApi.d.ts +33 -33
  18. package/dist/cjs/api/splitviewPanelApi.js +51 -51
  19. package/dist/cjs/array.d.ts +13 -13
  20. package/dist/cjs/array.js +77 -77
  21. package/dist/cjs/dnd/abstractDragHandler.d.ts +11 -11
  22. package/dist/cjs/dnd/abstractDragHandler.js +115 -115
  23. package/dist/cjs/dnd/dataTransfer.d.ts +56 -56
  24. package/dist/cjs/dnd/dataTransfer.js +144 -144
  25. package/dist/cjs/dnd/dataTransfer.js.map +1 -1
  26. package/dist/cjs/dnd/dnd.d.ts +40 -40
  27. package/dist/cjs/dnd/dnd.js +142 -142
  28. package/dist/cjs/dnd/droptarget.d.ts +33 -37
  29. package/dist/cjs/dnd/droptarget.js +177 -177
  30. package/dist/cjs/dnd/droptarget.js.map +1 -1
  31. package/dist/cjs/dockview/components/tab/defaultTab.d.ts +44 -44
  32. package/dist/cjs/dockview/components/tab/defaultTab.js +186 -186
  33. package/dist/cjs/dockview/components/watermark/watermark.d.ts +20 -20
  34. package/dist/cjs/dockview/components/watermark/watermark.js +99 -99
  35. package/dist/cjs/dockview/defaultGroupPanelView.d.ts +34 -34
  36. package/dist/cjs/dockview/defaultGroupPanelView.js +85 -83
  37. package/dist/cjs/dockview/defaultGroupPanelView.js.map +1 -1
  38. package/dist/cjs/dockview/deserializer.d.ts +14 -14
  39. package/dist/cjs/dockview/deserializer.js +47 -47
  40. package/dist/cjs/dockview/dockviewComponent.d.ts +121 -121
  41. package/dist/cjs/dockview/dockviewComponent.js +692 -692
  42. package/dist/cjs/dockview/dockviewComponent.js.map +1 -1
  43. package/dist/cjs/dockview/dockviewGroupPanel.d.ts +35 -35
  44. package/dist/cjs/dockview/dockviewGroupPanel.js +195 -195
  45. package/dist/cjs/dockview/options.d.ts +79 -79
  46. package/dist/cjs/dockview/options.js +2 -2
  47. package/dist/cjs/dom.d.ts +14 -14
  48. package/dist/cjs/dom.js +182 -182
  49. package/dist/cjs/events.d.ts +30 -23
  50. package/dist/cjs/events.js +108 -87
  51. package/dist/cjs/events.js.map +1 -1
  52. package/dist/cjs/functions.d.ts +1 -1
  53. package/dist/cjs/functions.js +41 -41
  54. package/dist/cjs/gridview/baseComponentGridview.d.ts +98 -98
  55. package/dist/cjs/gridview/baseComponentGridview.js +285 -292
  56. package/dist/cjs/gridview/baseComponentGridview.js.map +1 -1
  57. package/dist/cjs/gridview/basePanelView.d.ts +46 -46
  58. package/dist/cjs/gridview/basePanelView.js +115 -115
  59. package/dist/cjs/gridview/branchNode.d.ts +46 -46
  60. package/dist/cjs/gridview/branchNode.js +342 -342
  61. package/dist/cjs/gridview/gridview.d.ts +123 -123
  62. package/dist/cjs/gridview/gridview.js +476 -477
  63. package/dist/cjs/gridview/gridview.js.map +1 -1
  64. package/dist/cjs/gridview/gridviewComponent.d.ts +88 -88
  65. package/dist/cjs/gridview/gridviewComponent.js +303 -303
  66. package/dist/cjs/gridview/gridviewComponent.js.map +1 -1
  67. package/dist/cjs/gridview/gridviewPanel.d.ts +62 -62
  68. package/dist/cjs/gridview/gridviewPanel.js +205 -205
  69. package/dist/cjs/gridview/leafNode.d.ts +31 -31
  70. package/dist/cjs/gridview/leafNode.js +164 -164
  71. package/dist/cjs/gridview/options.d.ts +18 -18
  72. package/dist/cjs/gridview/options.js +2 -2
  73. package/dist/cjs/gridview/types.d.ts +3 -3
  74. package/dist/cjs/gridview/types.js +2 -2
  75. package/dist/cjs/groupview/dnd.d.ts +5 -5
  76. package/dist/cjs/groupview/dnd.js +9 -9
  77. package/dist/cjs/groupview/groupPanel.d.ts +41 -41
  78. package/dist/cjs/groupview/groupPanel.js +2 -2
  79. package/dist/cjs/groupview/groupview.d.ts +154 -154
  80. package/dist/cjs/groupview/groupview.js +633 -633
  81. package/dist/cjs/groupview/groupview.js.map +1 -1
  82. package/dist/cjs/groupview/groupviewPanel.d.ts +18 -18
  83. package/dist/cjs/groupview/groupviewPanel.js +83 -83
  84. package/dist/cjs/groupview/panel/content.d.ts +30 -30
  85. package/dist/cjs/groupview/panel/content.js +99 -99
  86. package/dist/cjs/groupview/panel/hostedPanel.d.ts +22 -22
  87. package/dist/cjs/groupview/panel/hostedPanel.js +56 -56
  88. package/dist/cjs/groupview/panel/hostedPanel.js.map +1 -1
  89. package/dist/cjs/groupview/tab.d.ts +44 -44
  90. package/dist/cjs/groupview/tab.js +182 -182
  91. package/dist/cjs/groupview/titlebar/tabsContainer.d.ts +66 -66
  92. package/dist/cjs/groupview/titlebar/tabsContainer.js +260 -260
  93. package/dist/cjs/groupview/titlebar/tabsContainer.js.map +1 -1
  94. package/dist/cjs/groupview/types.d.ts +59 -59
  95. package/dist/cjs/groupview/types.js +2 -2
  96. package/dist/cjs/hostedContainer.d.ts +23 -23
  97. package/dist/cjs/hostedContainer.js +73 -73
  98. package/dist/cjs/hostedContainer.js.map +1 -1
  99. package/dist/cjs/index.d.ts +28 -26
  100. package/dist/cjs/index.js +37 -35
  101. package/dist/cjs/index.js.map +1 -1
  102. package/dist/cjs/json.d.ts +1 -1
  103. package/dist/cjs/json.js +13 -13
  104. package/dist/cjs/lifecycle.d.ts +22 -22
  105. package/dist/cjs/lifecycle.js +87 -87
  106. package/dist/cjs/math.d.ts +4 -4
  107. package/dist/cjs/math.js +15 -15
  108. package/dist/cjs/math.js.map +1 -1
  109. package/dist/cjs/panel/componentFactory.d.ts +8 -8
  110. package/dist/cjs/panel/componentFactory.js +30 -30
  111. package/dist/cjs/panel/componentFactory.js.map +1 -1
  112. package/dist/cjs/panel/types.d.ts +34 -34
  113. package/dist/cjs/panel/types.js +2 -2
  114. package/dist/cjs/paneview/defaultPaneviewHeader.d.ts +18 -18
  115. package/dist/cjs/paneview/defaultPaneviewHeader.js +64 -64
  116. package/dist/cjs/paneview/draggablePaneviewPanel.d.ts +17 -17
  117. package/dist/cjs/paneview/draggablePaneviewPanel.js +111 -111
  118. package/dist/cjs/paneview/options.d.ts +25 -25
  119. package/dist/cjs/paneview/options.js +2 -2
  120. package/dist/cjs/paneview/paneview.d.ts +38 -38
  121. package/dist/cjs/paneview/paneview.js +195 -198
  122. package/dist/cjs/paneview/paneview.js.map +1 -1
  123. package/dist/cjs/paneview/paneviewComponent.d.ts +115 -113
  124. package/dist/cjs/paneview/paneviewComponent.js +338 -338
  125. package/dist/cjs/paneview/paneviewComponent.js.map +1 -1
  126. package/dist/cjs/paneview/paneviewPanel.d.ts +85 -85
  127. package/dist/cjs/paneview/paneviewPanel.js +262 -262
  128. package/dist/cjs/paneview/paneviewPanel.js.map +1 -1
  129. package/dist/cjs/react/deserializer.d.ts +8 -8
  130. package/dist/cjs/react/deserializer.js +39 -39
  131. package/dist/cjs/react/dockview/components.d.ts +11 -11
  132. package/dist/cjs/react/dockview/components.js +76 -76
  133. package/dist/cjs/react/dockview/dockview.d.ts +34 -34
  134. package/dist/cjs/react/dockview/dockview.js +151 -135
  135. package/dist/cjs/react/dockview/dockview.js.map +1 -1
  136. package/dist/cjs/react/dockview/reactContentPart.d.ts +47 -47
  137. package/dist/cjs/react/dockview/reactContentPart.js +88 -88
  138. package/dist/cjs/react/dockview/reactHeaderPart.d.ts +24 -24
  139. package/dist/cjs/react/dockview/reactHeaderPart.js +50 -50
  140. package/dist/cjs/react/dockview/reactWatermarkPart.d.ts +30 -30
  141. package/dist/cjs/react/dockview/reactWatermarkPart.js +66 -66
  142. package/dist/cjs/react/dockview/v2/reactContentRenderer.d.ts +30 -30
  143. package/dist/cjs/react/dockview/v2/reactContentRenderer.js +90 -90
  144. package/dist/cjs/react/dockview/v2/reactGroupPanelView.d.ts +7 -7
  145. package/dist/cjs/react/dockview/v2/reactGroupPanelView.js +34 -34
  146. package/dist/cjs/react/dockview/v2/webviewContentRenderer.d.ts +18 -18
  147. package/dist/cjs/react/dockview/v2/webviewContentRenderer.js +45 -45
  148. package/dist/cjs/react/gridview/gridview.d.ts +24 -24
  149. package/dist/cjs/react/gridview/gridview.js +104 -96
  150. package/dist/cjs/react/gridview/gridview.js.map +1 -1
  151. package/dist/cjs/react/gridview/view.d.ts +10 -10
  152. package/dist/cjs/react/gridview/view.js +40 -40
  153. package/dist/cjs/react/index.d.ts +9 -9
  154. package/dist/cjs/react/index.js +21 -21
  155. package/dist/cjs/react/paneview/paneview.d.ts +28 -28
  156. package/dist/cjs/react/paneview/paneview.js +142 -138
  157. package/dist/cjs/react/paneview/paneview.js.map +1 -1
  158. package/dist/cjs/react/paneview/view.d.ts +20 -20
  159. package/dist/cjs/react/paneview/view.js +44 -44
  160. package/dist/cjs/react/react.d.ts +35 -35
  161. package/dist/cjs/react/react.js +181 -181
  162. package/dist/cjs/react/react.js.map +1 -1
  163. package/dist/cjs/react/splitview/splitview.d.ts +24 -24
  164. package/dist/cjs/react/splitview/splitview.js +101 -93
  165. package/dist/cjs/react/splitview/splitview.js.map +1 -1
  166. package/dist/cjs/react/splitview/view.d.ts +10 -10
  167. package/dist/cjs/react/splitview/view.js +40 -40
  168. package/dist/cjs/react/types.d.ts +7 -7
  169. package/dist/cjs/react/types.js +2 -2
  170. package/dist/cjs/splitview/core/options.d.ts +26 -26
  171. package/dist/cjs/splitview/core/options.js +2 -2
  172. package/dist/cjs/splitview/core/splitview.d.ts +124 -124
  173. package/dist/cjs/splitview/core/splitview.js +908 -908
  174. package/dist/cjs/splitview/core/splitview.js.map +1 -1
  175. package/dist/cjs/splitview/core/viewItem.d.ts +25 -25
  176. package/dist/cjs/splitview/core/viewItem.js +124 -124
  177. package/dist/cjs/splitview/splitviewComponent.d.ts +100 -100
  178. package/dist/cjs/splitview/splitviewComponent.js +327 -327
  179. package/dist/cjs/splitview/splitviewComponent.js.map +1 -1
  180. package/dist/cjs/splitview/splitviewPanel.d.ts +47 -47
  181. package/dist/cjs/splitview/splitviewPanel.js +178 -178
  182. package/dist/cjs/types.d.ts +7 -7
  183. package/dist/cjs/types.js +2 -2
  184. package/dist/dockview.amd.js +6759 -6712
  185. package/dist/dockview.amd.min.js +3 -3
  186. package/dist/dockview.amd.min.noStyle.js +3 -3
  187. package/dist/dockview.amd.noStyle.js +6752 -6705
  188. package/dist/dockview.cjs.js +6755 -6708
  189. package/dist/dockview.esm.js +6750 -6707
  190. package/dist/dockview.esm.min.js +3 -3
  191. package/dist/dockview.js +6759 -6712
  192. package/dist/dockview.min.js +3 -3
  193. package/dist/dockview.min.noStyle.js +3 -3
  194. package/dist/dockview.noStyle.js +6752 -6705
  195. package/dist/esm/actionbar/actionsContainer.d.ts +7 -7
  196. package/dist/esm/actionbar/actionsContainer.js +17 -17
  197. package/dist/esm/api/component.api.d.ts +135 -131
  198. package/dist/esm/api/component.api.js +305 -287
  199. package/dist/esm/api/gridviewPanelApi.d.ts +36 -36
  200. package/dist/esm/api/gridviewPanelApi.js +24 -24
  201. package/dist/esm/api/groupPanelApi.d.ts +44 -44
  202. package/dist/esm/api/groupPanelApi.js +52 -52
  203. package/dist/esm/api/panelApi.d.ts +107 -107
  204. package/dist/esm/api/panelApi.js +98 -98
  205. package/dist/esm/api/paneviewPanelApi.d.ts +26 -26
  206. package/dist/esm/api/paneviewPanelApi.js +26 -26
  207. package/dist/esm/api/splitviewPanelApi.d.ts +33 -33
  208. package/dist/esm/api/splitviewPanelApi.js +29 -29
  209. package/dist/esm/array.d.ts +13 -13
  210. package/dist/esm/array.js +67 -67
  211. package/dist/esm/dnd/abstractDragHandler.d.ts +11 -11
  212. package/dist/esm/dnd/abstractDragHandler.js +37 -37
  213. package/dist/esm/dnd/dataTransfer.d.ts +56 -56
  214. package/dist/esm/dnd/dataTransfer.js +109 -109
  215. package/dist/esm/dnd/dnd.d.ts +40 -40
  216. package/dist/esm/dnd/dnd.js +109 -109
  217. package/dist/esm/dnd/droptarget.d.ts +33 -37
  218. package/dist/esm/dnd/droptarget.js +143 -143
  219. package/dist/esm/dockview/components/tab/defaultTab.d.ts +44 -44
  220. package/dist/esm/dockview/components/tab/defaultTab.js +130 -130
  221. package/dist/esm/dockview/components/watermark/watermark.d.ts +20 -20
  222. package/dist/esm/dockview/components/watermark/watermark.js +68 -68
  223. package/dist/esm/dockview/defaultGroupPanelView.d.ts +34 -34
  224. package/dist/esm/dockview/defaultGroupPanelView.js +57 -55
  225. package/dist/esm/dockview/deserializer.d.ts +14 -14
  226. package/dist/esm/dockview/deserializer.js +20 -20
  227. package/dist/esm/dockview/dockviewComponent.d.ts +121 -121
  228. package/dist/esm/dockview/dockviewComponent.js +533 -533
  229. package/dist/esm/dockview/dockviewGroupPanel.d.ts +35 -35
  230. package/dist/esm/dockview/dockviewGroupPanel.js +145 -145
  231. package/dist/esm/dockview/options.d.ts +79 -79
  232. package/dist/esm/dockview/options.js +1 -1
  233. package/dist/esm/dom.d.ts +14 -14
  234. package/dist/esm/dom.js +113 -113
  235. package/dist/esm/events.d.ts +30 -23
  236. package/dist/esm/events.js +89 -71
  237. package/dist/esm/functions.d.ts +1 -1
  238. package/dist/esm/functions.js +8 -8
  239. package/dist/esm/gridview/baseComponentGridview.d.ts +98 -98
  240. package/dist/esm/gridview/baseComponentGridview.js +217 -224
  241. package/dist/esm/gridview/basePanelView.d.ts +46 -46
  242. package/dist/esm/gridview/basePanelView.js +70 -70
  243. package/dist/esm/gridview/branchNode.d.ts +46 -46
  244. package/dist/esm/gridview/branchNode.js +218 -218
  245. package/dist/esm/gridview/gridview.d.ts +123 -123
  246. package/dist/esm/gridview/gridview.js +395 -396
  247. package/dist/esm/gridview/gridviewComponent.d.ts +88 -88
  248. package/dist/esm/gridview/gridviewComponent.js +238 -238
  249. package/dist/esm/gridview/gridviewPanel.d.ts +62 -62
  250. package/dist/esm/gridview/gridviewPanel.js +141 -141
  251. package/dist/esm/gridview/leafNode.d.ts +31 -31
  252. package/dist/esm/gridview/leafNode.js +97 -97
  253. package/dist/esm/gridview/options.d.ts +18 -18
  254. package/dist/esm/gridview/options.js +1 -1
  255. package/dist/esm/gridview/types.d.ts +3 -3
  256. package/dist/esm/gridview/types.js +1 -1
  257. package/dist/esm/groupview/dnd.d.ts +5 -5
  258. package/dist/esm/groupview/dnd.js +6 -6
  259. package/dist/esm/groupview/groupPanel.d.ts +41 -41
  260. package/dist/esm/groupview/groupPanel.js +1 -1
  261. package/dist/esm/groupview/groupview.d.ts +154 -154
  262. package/dist/esm/groupview/groupview.js +448 -448
  263. package/dist/esm/groupview/groupviewPanel.d.ts +18 -18
  264. package/dist/esm/groupview/groupviewPanel.js +41 -41
  265. package/dist/esm/groupview/panel/content.d.ts +30 -30
  266. package/dist/esm/groupview/panel/content.js +72 -72
  267. package/dist/esm/groupview/panel/hostedPanel.d.ts +22 -22
  268. package/dist/esm/groupview/panel/hostedPanel.js +43 -43
  269. package/dist/esm/groupview/tab.d.ts +44 -44
  270. package/dist/esm/groupview/tab.js +101 -101
  271. package/dist/esm/groupview/titlebar/tabsContainer.d.ts +66 -66
  272. package/dist/esm/groupview/titlebar/tabsContainer.js +185 -185
  273. package/dist/esm/groupview/types.d.ts +59 -59
  274. package/dist/esm/groupview/types.js +1 -1
  275. package/dist/esm/hostedContainer.d.ts +23 -23
  276. package/dist/esm/hostedContainer.js +63 -63
  277. package/dist/esm/index.d.ts +28 -26
  278. package/dist/esm/index.js +23 -21
  279. package/dist/esm/json.d.ts +1 -1
  280. package/dist/esm/json.js +9 -9
  281. package/dist/esm/lifecycle.d.ts +22 -22
  282. package/dist/esm/lifecycle.js +38 -38
  283. package/dist/esm/math.d.ts +4 -4
  284. package/dist/esm/math.js +10 -10
  285. package/dist/esm/panel/componentFactory.d.ts +8 -8
  286. package/dist/esm/panel/componentFactory.js +24 -24
  287. package/dist/esm/panel/types.d.ts +34 -34
  288. package/dist/esm/panel/types.js +1 -1
  289. package/dist/esm/paneview/defaultPaneviewHeader.d.ts +18 -18
  290. package/dist/esm/paneview/defaultPaneviewHeader.js +37 -37
  291. package/dist/esm/paneview/draggablePaneviewPanel.d.ts +17 -17
  292. package/dist/esm/paneview/draggablePaneviewPanel.js +72 -72
  293. package/dist/esm/paneview/options.d.ts +25 -25
  294. package/dist/esm/paneview/options.js +1 -1
  295. package/dist/esm/paneview/paneview.d.ts +38 -38
  296. package/dist/esm/paneview/paneview.js +141 -144
  297. package/dist/esm/paneview/paneviewComponent.d.ts +115 -113
  298. package/dist/esm/paneview/paneviewComponent.js +247 -247
  299. package/dist/esm/paneview/paneviewPanel.d.ts +85 -85
  300. package/dist/esm/paneview/paneviewPanel.js +183 -183
  301. package/dist/esm/react/deserializer.d.ts +8 -8
  302. package/dist/esm/react/deserializer.js +34 -34
  303. package/dist/esm/react/dockview/components.d.ts +11 -11
  304. package/dist/esm/react/dockview/components.js +54 -54
  305. package/dist/esm/react/dockview/dockview.d.ts +34 -34
  306. package/dist/esm/react/dockview/dockview.js +113 -97
  307. package/dist/esm/react/dockview/reactContentPart.d.ts +47 -47
  308. package/dist/esm/react/dockview/reactContentPart.js +75 -75
  309. package/dist/esm/react/dockview/reactHeaderPart.d.ts +24 -24
  310. package/dist/esm/react/dockview/reactHeaderPart.js +41 -41
  311. package/dist/esm/react/dockview/reactWatermarkPart.d.ts +30 -30
  312. package/dist/esm/react/dockview/reactWatermarkPart.js +56 -56
  313. package/dist/esm/react/dockview/v2/reactContentRenderer.d.ts +30 -30
  314. package/dist/esm/react/dockview/v2/reactContentRenderer.js +72 -72
  315. package/dist/esm/react/dockview/v2/reactGroupPanelView.d.ts +7 -7
  316. package/dist/esm/react/dockview/v2/reactGroupPanelView.js +12 -12
  317. package/dist/esm/react/dockview/v2/webviewContentRenderer.d.ts +18 -18
  318. package/dist/esm/react/dockview/v2/webviewContentRenderer.js +36 -36
  319. package/dist/esm/react/gridview/gridview.d.ts +24 -24
  320. package/dist/esm/react/gridview/gridview.js +66 -58
  321. package/dist/esm/react/gridview/view.d.ts +10 -10
  322. package/dist/esm/react/gridview/view.js +18 -18
  323. package/dist/esm/react/index.d.ts +9 -9
  324. package/dist/esm/react/index.js +9 -9
  325. package/dist/esm/react/paneview/paneview.d.ts +28 -28
  326. package/dist/esm/react/paneview/paneview.js +91 -87
  327. package/dist/esm/react/paneview/view.d.ts +20 -20
  328. package/dist/esm/react/paneview/view.js +35 -35
  329. package/dist/esm/react/react.d.ts +35 -35
  330. package/dist/esm/react/react.js +116 -116
  331. package/dist/esm/react/splitview/splitview.d.ts +24 -24
  332. package/dist/esm/react/splitview/splitview.js +63 -55
  333. package/dist/esm/react/splitview/view.d.ts +10 -10
  334. package/dist/esm/react/splitview/view.js +18 -18
  335. package/dist/esm/react/types.d.ts +7 -7
  336. package/dist/esm/react/types.js +1 -1
  337. package/dist/esm/splitview/core/options.d.ts +26 -26
  338. package/dist/esm/splitview/core/options.js +1 -1
  339. package/dist/esm/splitview/core/splitview.d.ts +124 -124
  340. package/dist/esm/splitview/core/splitview.js +689 -689
  341. package/dist/esm/splitview/core/viewItem.d.ts +25 -25
  342. package/dist/esm/splitview/core/viewItem.js +79 -79
  343. package/dist/esm/splitview/splitviewComponent.d.ts +100 -100
  344. package/dist/esm/splitview/splitviewComponent.js +241 -241
  345. package/dist/esm/splitview/splitviewPanel.d.ts +47 -47
  346. package/dist/esm/splitview/splitviewPanel.js +107 -107
  347. package/dist/esm/types.d.ts +7 -7
  348. package/dist/esm/types.js +1 -1
  349. package/dist/styles/dockview.css +45 -45
  350. package/package.json +75 -75
  351. package/dist/cjs/footnote.d.ts +0 -1
  352. package/dist/cjs/footnote.js +0 -20
  353. package/dist/cjs/footnote.js.map +0 -1
  354. package/dist/esm/footnote.d.ts +0 -1
  355. package/dist/esm/footnote.js +0 -19
@@ -1,693 +1,693 @@
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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
29
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
30
- return new (P || (P = Promise))(function (resolve, reject) {
31
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
32
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
33
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
34
- step((generator = generator.apply(thisArg, _arguments || [])).next());
35
- });
36
- };
37
- var __generator = (this && this.__generator) || function (thisArg, body) {
38
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
39
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
40
- function verb(n) { return function (v) { return step([n, v]); }; }
41
- function step(op) {
42
- if (f) throw new TypeError("Generator is already executing.");
43
- while (_) try {
44
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
45
- if (y = 0, t) op = [op[0] & 2, t.value];
46
- switch (op[0]) {
47
- case 0: case 1: t = op; break;
48
- case 4: _.label++; return { value: op[1], done: false };
49
- case 5: _.label++; y = op[1]; op = [0]; continue;
50
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
51
- default:
52
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
53
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
54
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
55
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
56
- if (t[2]) _.ops.pop();
57
- _.trys.pop(); continue;
58
- }
59
- op = body.call(thisArg, _);
60
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
61
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
62
- }
63
- };
64
- var __values = (this && this.__values) || function(o) {
65
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
66
- if (m) return m.call(o);
67
- if (o && typeof o.length === "number") return {
68
- next: function () {
69
- if (o && i >= o.length) o = void 0;
70
- return { value: o && o[i++], done: !o };
71
- }
72
- };
73
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
74
- };
75
- var __read = (this && this.__read) || function (o, n) {
76
- var m = typeof Symbol === "function" && o[Symbol.iterator];
77
- if (!m) return o;
78
- var i = m.call(o), r, ar = [], e;
79
- try {
80
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
81
- }
82
- catch (error) { e = { error: error }; }
83
- finally {
84
- try {
85
- if (r && !r.done && (m = i["return"])) m.call(i);
86
- }
87
- finally { if (e) throw e.error; }
88
- }
89
- return ar;
90
- };
91
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
92
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
93
- if (ar || !(i in from)) {
94
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
95
- ar[i] = from[i];
96
- }
97
- }
98
- return to.concat(ar || Array.prototype.slice.call(from));
99
- };
100
- Object.defineProperty(exports, "__esModule", { value: true });
101
- exports.DockviewComponent = void 0;
102
- var gridview_1 = require("../gridview/gridview");
103
- var droptarget_1 = require("../dnd/droptarget");
104
- var array_1 = require("../array");
105
- var dockviewGroupPanel_1 = require("./dockviewGroupPanel");
106
- var lifecycle_1 = require("../lifecycle");
107
- var events_1 = require("../events");
108
- var watermark_1 = require("./components/watermark/watermark");
109
- var functions_1 = require("../functions");
110
- var math_1 = require("../math");
111
- var deserializer_1 = require("./deserializer");
112
- var componentFactory_1 = require("../panel/componentFactory");
113
- var baseComponentGridview_1 = require("../gridview/baseComponentGridview");
114
- var component_api_1 = require("../api/component.api");
115
- var tab_1 = require("../groupview/tab");
116
- var splitview_1 = require("../splitview/core/splitview");
117
- var defaultTab_1 = require("./components/tab/defaultTab");
118
- var groupview_1 = require("../groupview/groupview");
119
- var groupviewPanel_1 = require("../groupview/groupviewPanel");
120
- var defaultGroupPanelView_1 = require("./defaultGroupPanelView");
121
- var nextGroupId = (0, math_1.sequentialNumberGenerator)();
122
- var DockviewComponent = /** @class */ (function (_super) {
123
- __extends(DockviewComponent, _super);
124
- function DockviewComponent(element, options) {
125
- var _this = _super.call(this, element, {
126
- proportionalLayout: true,
127
- orientation: options.orientation || splitview_1.Orientation.HORIZONTAL,
128
- styles: options.styles,
129
- }) || this;
130
- _this._panels = new Map();
131
- _this.dirtyPanels = new Set();
132
- _this.debouncedDeque = (0, functions_1.debounce)(_this.syncConfigs.bind(_this), 5000);
133
- // events
134
- _this._onTabInteractionEvent = new events_1.Emitter();
135
- _this.onTabInteractionEvent = _this._onTabInteractionEvent.event;
136
- _this._onTabContextMenu = new events_1.Emitter();
137
- _this.onTabContextMenu = _this._onTabContextMenu.event;
138
- _this.panelState = {};
139
- _this._options = options;
140
- if (!_this.options.components) {
141
- _this.options.components = {};
142
- }
143
- if (!_this.options.frameworkComponents) {
144
- _this.options.frameworkComponents = {};
145
- }
146
- if (!_this.options.frameworkTabComponents) {
147
- _this.options.frameworkTabComponents = {};
148
- }
149
- if (!_this.options.tabComponents) {
150
- _this.options.tabComponents = {};
151
- }
152
- if (!_this.options.watermarkComponent &&
153
- !_this.options.watermarkFrameworkComponent) {
154
- _this.options.watermarkComponent = watermark_1.Watermark;
155
- }
156
- _this._api = new component_api_1.DockviewApi(_this);
157
- return _this;
158
- }
159
- Object.defineProperty(DockviewComponent.prototype, "totalPanels", {
160
- get: function () {
161
- return this._panels.size;
162
- },
163
- enumerable: false,
164
- configurable: true
165
- });
166
- Object.defineProperty(DockviewComponent.prototype, "panels", {
167
- get: function () {
168
- return Array.from(this._panels.values()).map(function (_) { return _.value; });
169
- },
170
- enumerable: false,
171
- configurable: true
172
- });
173
- Object.defineProperty(DockviewComponent.prototype, "deserializer", {
174
- get: function () {
175
- return this._deserializer;
176
- },
177
- set: function (value) {
178
- this._deserializer = value;
179
- },
180
- enumerable: false,
181
- configurable: true
182
- });
183
- Object.defineProperty(DockviewComponent.prototype, "options", {
184
- get: function () {
185
- return this._options;
186
- },
187
- enumerable: false,
188
- configurable: true
189
- });
190
- Object.defineProperty(DockviewComponent.prototype, "activePanel", {
191
- get: function () {
192
- var activeGroup = this.activeGroup;
193
- if (!activeGroup) {
194
- return undefined;
195
- }
196
- return activeGroup.model.activePanel;
197
- },
198
- enumerable: false,
199
- configurable: true
200
- });
201
- Object.defineProperty(DockviewComponent.prototype, "tabHeight", {
202
- get: function () {
203
- return this.options.tabHeight;
204
- },
205
- set: function (height) {
206
- this.options.tabHeight = height;
207
- this._groups.forEach(function (value) {
208
- value.value.model.tabHeight = height;
209
- });
210
- },
211
- enumerable: false,
212
- configurable: true
213
- });
214
- DockviewComponent.prototype.updateOptions = function (options) {
215
- var hasOrientationChanged = typeof options.orientation === 'string' &&
216
- this.options.orientation !== options.orientation;
217
- // TODO support style update
218
- // const hasStylesChanged =
219
- // typeof options.styles === 'object' &&
220
- // this.options.styles !== options.styles;
221
- this._options = __assign(__assign({}, this.options), options);
222
- if (hasOrientationChanged) {
223
- this.gridview.orientation = options.orientation;
224
- }
225
- this.layout(this.gridview.width, this.gridview.height, true);
226
- };
227
- DockviewComponent.prototype.focus = function () {
228
- var _a;
229
- (_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.focus();
230
- };
231
- DockviewComponent.prototype.getGroupPanel = function (id) {
232
- var _a;
233
- return (_a = this._panels.get(id)) === null || _a === void 0 ? void 0 : _a.value;
234
- };
235
- DockviewComponent.prototype.setActivePanel = function (panel) {
236
- if (!panel.group) {
237
- throw new Error("Panel " + panel.id + " has no associated group");
238
- }
239
- this.doSetGroupActive(panel.group);
240
- panel.group.model.openPanel(panel);
241
- };
242
- DockviewComponent.prototype.moveToNext = function (options) {
243
- var _a;
244
- if (options === void 0) { options = {}; }
245
- if (!options.group) {
246
- if (!this.activeGroup) {
247
- return;
248
- }
249
- options.group = this.activeGroup;
250
- }
251
- if (options.includePanel && options.group) {
252
- if (options.group.model.activePanel !==
253
- options.group.model.panels[options.group.model.panels.length - 1]) {
254
- options.group.model.moveToNext({ suppressRoll: true });
255
- return;
256
- }
257
- }
258
- var location = (0, gridview_1.getGridLocation)(options.group.element);
259
- var next = (_a = this.gridview.next(location)) === null || _a === void 0 ? void 0 : _a.view;
260
- this.doSetGroupActive(next);
261
- };
262
- DockviewComponent.prototype.moveToPrevious = function (options) {
263
- var _a;
264
- if (options === void 0) { options = {}; }
265
- if (!options.group) {
266
- if (!this.activeGroup) {
267
- return;
268
- }
269
- options.group = this.activeGroup;
270
- }
271
- if (options.includePanel && options.group) {
272
- if (options.group.model.activePanel !==
273
- options.group.model.panels[0]) {
274
- options.group.model.moveToPrevious({ suppressRoll: true });
275
- return;
276
- }
277
- }
278
- var location = (0, gridview_1.getGridLocation)(options.group.element);
279
- var next = (_a = this.gridview.previous(location)) === null || _a === void 0 ? void 0 : _a.view;
280
- if (next) {
281
- this.doSetGroupActive(next);
282
- }
283
- };
284
- DockviewComponent.prototype.registerPanel = function (panel) {
285
- var _this = this;
286
- if (this._panels.has(panel.id)) {
287
- throw new Error("panel " + panel.id + " already exists");
288
- }
289
- var disposable = new lifecycle_1.CompositeDisposable(panel.onDidStateChange(function () { return _this.addDirtyPanel(panel); }));
290
- this._panels.set(panel.id, { value: panel, disposable: disposable });
291
- };
292
- DockviewComponent.prototype.unregisterPanel = function (panel) {
293
- if (!this._panels.has(panel.id)) {
294
- throw new Error("panel " + panel.id + " doesn't exist");
295
- }
296
- var item = this._panels.get(panel.id);
297
- if (item) {
298
- item.disposable.dispose();
299
- item.value.dispose();
300
- }
301
- this._panels.delete(panel.id);
302
- };
303
- /**
304
- * Serialize the current state of the layout
305
- *
306
- * @returns A JSON respresentation of the layout
307
- */
308
- DockviewComponent.prototype.toJSON = function () {
309
- var _this = this;
310
- var _a;
311
- this.syncConfigs();
312
- var data = this.gridview.serialize();
313
- var panels = Array.from(this._panels.values()).reduce(function (collection, panel) {
314
- if (!_this.panelState[panel.value.id]) {
315
- collection[panel.value.id] = panel.value.toJSON();
316
- }
317
- return collection;
318
- }, {});
319
- return {
320
- grid: data,
321
- panels: panels,
322
- activeGroup: (_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.id,
323
- options: { tabHeight: this.tabHeight },
324
- };
325
- };
326
- DockviewComponent.prototype.fromJSON = function (data) {
327
- var _this = this;
328
- this.gridview.clear();
329
- this._panels.forEach(function (panel) {
330
- panel.disposable.dispose();
331
- panel.value.dispose();
332
- });
333
- this._panels.clear();
334
- this._groups.clear();
335
- if (!this.deserializer) {
336
- throw new Error('invalid deserializer');
337
- }
338
- var grid = data.grid, panels = data.panels, options = data.options, activeGroup = data.activeGroup;
339
- if (typeof (options === null || options === void 0 ? void 0 : options.tabHeight) === 'number') {
340
- this.tabHeight = options.tabHeight;
341
- }
342
- if (!this.deserializer) {
343
- throw new Error('no deserializer provided');
344
- }
345
- this.gridview.deserialize(grid, new deserializer_1.DefaultDeserializer(this, {
346
- createPanel: function (id) {
347
- var panelData = panels[id];
348
- var panel = _this.deserializer.fromJSON(panelData);
349
- _this.registerPanel(panel);
350
- return panel;
351
- },
352
- }));
353
- if (typeof activeGroup === 'string') {
354
- var panel = this.getPanel(activeGroup);
355
- if (panel) {
356
- this.doSetGroupActive(panel);
357
- }
358
- }
359
- this.gridview.layout(this.width, this.height);
360
- this._onGridEvent.fire({ kind: baseComponentGridview_1.GroupChangeKind.LAYOUT_FROM_JSON });
361
- };
362
- DockviewComponent.prototype.closeAllGroups = function () {
363
- return __awaiter(this, void 0, void 0, function () {
364
- var _a, _b, entry, _c, _, group, didCloseAll, e_1_1;
365
- var e_1, _d;
366
- return __generator(this, function (_e) {
367
- switch (_e.label) {
368
- case 0:
369
- _e.trys.push([0, 5, 6, 7]);
370
- _a = __values(this._groups.entries()), _b = _a.next();
371
- _e.label = 1;
372
- case 1:
373
- if (!!_b.done) return [3 /*break*/, 4];
374
- entry = _b.value;
375
- _c = __read(entry, 2), _ = _c[0], group = _c[1];
376
- return [4 /*yield*/, group.value.model.closeAllPanels()];
377
- case 2:
378
- didCloseAll = _e.sent();
379
- if (!didCloseAll) {
380
- return [2 /*return*/, false];
381
- }
382
- _e.label = 3;
383
- case 3:
384
- _b = _a.next();
385
- return [3 /*break*/, 1];
386
- case 4: return [3 /*break*/, 7];
387
- case 5:
388
- e_1_1 = _e.sent();
389
- e_1 = { error: e_1_1 };
390
- return [3 /*break*/, 7];
391
- case 6:
392
- try {
393
- if (_b && !_b.done && (_d = _a.return)) _d.call(_a);
394
- }
395
- finally { if (e_1) throw e_1.error; }
396
- return [7 /*endfinally*/];
397
- case 7: return [2 /*return*/, true];
398
- }
399
- });
400
- });
401
- };
402
- DockviewComponent.prototype.fireMouseEvent = function (event) {
403
- switch (event.kind) {
404
- case tab_1.MouseEventKind.CONTEXT_MENU:
405
- if (event.tab && event.panel) {
406
- this._onTabContextMenu.fire({
407
- event: event.event,
408
- api: this._api,
409
- panel: event.panel,
410
- });
411
- }
412
- break;
413
- }
414
- };
415
- DockviewComponent.prototype.addPanel = function (options) {
416
- var _a, _b;
417
- var panel = this._addPanel(options);
418
- var referenceGroup;
419
- if ((_a = options.position) === null || _a === void 0 ? void 0 : _a.referencePanel) {
420
- var referencePanel = this.getGroupPanel(options.position.referencePanel);
421
- if (!referencePanel) {
422
- throw new Error("referencePanel " + options.position.referencePanel + " does not exist");
423
- }
424
- referenceGroup = this.findGroup(referencePanel);
425
- }
426
- else {
427
- referenceGroup = this.activeGroup;
428
- }
429
- if (referenceGroup) {
430
- var target = (0, baseComponentGridview_1.toTarget)(((_b = options.position) === null || _b === void 0 ? void 0 : _b.direction) || 'within');
431
- if (target === droptarget_1.Position.Center) {
432
- referenceGroup.model.openPanel(panel);
433
- }
434
- else {
435
- var location_1 = (0, gridview_1.getGridLocation)(referenceGroup.element);
436
- var relativeLocation = (0, gridview_1.getRelativeLocation)(this.gridview.orientation, location_1, target);
437
- this.addPanelToNewGroup(panel, relativeLocation);
438
- }
439
- }
440
- else {
441
- this.addPanelToNewGroup(panel);
442
- }
443
- return panel;
444
- };
445
- DockviewComponent.prototype.removePanel = function (panel) {
446
- this.unregisterPanel(panel);
447
- var group = panel.group;
448
- if (!group) {
449
- throw new Error("cannot remove panel " + panel.id + ". it's missing a group.");
450
- }
451
- group.model.removePanel(panel);
452
- if (group.model.size === 0) {
453
- this.removeGroup(group);
454
- }
455
- };
456
- DockviewComponent.prototype.createWatermarkComponent = function () {
457
- var _a;
458
- return (0, componentFactory_1.createComponent)('watermark-id', 'watermark-name', this.options.watermarkComponent
459
- ? { 'watermark-name': this.options.watermarkComponent }
460
- : {}, this.options.watermarkFrameworkComponent
461
- ? { 'watermark-name': this.options.watermarkFrameworkComponent }
462
- : {}, (_a = this.options.frameworkComponentFactory) === null || _a === void 0 ? void 0 : _a.watermark);
463
- };
464
- DockviewComponent.prototype.addEmptyGroup = function (options) {
465
- var _a;
466
- var group = this.createGroup();
467
- if (options) {
468
- var referencePanel = (_a = this._panels.get(options.referencePanel)) === null || _a === void 0 ? void 0 : _a.value;
469
- if (!referencePanel) {
470
- throw new Error("reference panel " + options.referencePanel + " does not exist");
471
- }
472
- var referenceGroup = this.findGroup(referencePanel);
473
- if (!referenceGroup) {
474
- throw new Error("reference group for reference panel " + options.referencePanel + " does not exist");
475
- }
476
- var target = (0, baseComponentGridview_1.toTarget)(options.direction || 'within');
477
- var location_2 = (0, gridview_1.getGridLocation)(referenceGroup.element);
478
- var relativeLocation = (0, gridview_1.getRelativeLocation)(this.gridview.orientation, location_2, target);
479
- this.doAddGroup(group, relativeLocation);
480
- }
481
- else {
482
- this.doAddGroup(group);
483
- }
484
- };
485
- DockviewComponent.prototype.removeGroup = function (group) {
486
- var _this = this;
487
- var panels = __spreadArray([], __read(group.model.panels), false); // reassign since group panels will mutate
488
- panels.forEach(function (panel) {
489
- _this.removePanel(panel);
490
- });
491
- if (this._groups.size === 1) {
492
- this._activeGroup = group;
493
- return;
494
- }
495
- _super.prototype.removeGroup.call(this, group);
496
- };
497
- DockviewComponent.prototype.moveGroupOrPanel = function (referenceGroup, groupId, itemId, target, index) {
498
- var _a, _b, _c;
499
- var sourceGroup = groupId
500
- ? (_a = this._groups.get(groupId)) === null || _a === void 0 ? void 0 : _a.value
501
- : undefined;
502
- if (!target || target === droptarget_1.Position.Center) {
503
- var groupItem = (sourceGroup === null || sourceGroup === void 0 ? void 0 : sourceGroup.model.removePanel(itemId)) ||
504
- ((_b = this._panels.get(itemId)) === null || _b === void 0 ? void 0 : _b.value);
505
- if (!groupItem) {
506
- throw new Error("No panel with id " + itemId);
507
- }
508
- if ((sourceGroup === null || sourceGroup === void 0 ? void 0 : sourceGroup.model.size) === 0) {
509
- this.doRemoveGroup(sourceGroup);
510
- }
511
- referenceGroup.model.openPanel(groupItem, { index: index });
512
- }
513
- else {
514
- var referenceLocation = (0, gridview_1.getGridLocation)(referenceGroup.element);
515
- var targetLocation = (0, gridview_1.getRelativeLocation)(this.gridview.orientation, referenceLocation, target);
516
- if (sourceGroup && sourceGroup.model.size < 2) {
517
- var _d = __read((0, array_1.tail)(targetLocation), 2), targetParentLocation = _d[0], to = _d[1];
518
- var sourceLocation = (0, gridview_1.getGridLocation)(sourceGroup.element);
519
- var _e = __read((0, array_1.tail)(sourceLocation), 2), sourceParentLocation = _e[0], from = _e[1];
520
- if ((0, array_1.sequenceEquals)(sourceParentLocation, targetParentLocation)) {
521
- // special case when 'swapping' two views within same grid location
522
- // if a group has one tab - we are essentially moving the 'group'
523
- // which is equivalent to swapping two views in this case
524
- this.gridview.moveView(sourceParentLocation, from, to);
525
- }
526
- else {
527
- // source group will become empty so delete the group
528
- var targetGroup = this.doRemoveGroup(sourceGroup, {
529
- skipActive: true,
530
- skipDispose: true,
531
- });
532
- // after deleting the group we need to re-evaulate the ref location
533
- var updatedReferenceLocation = (0, gridview_1.getGridLocation)(referenceGroup.element);
534
- var location_3 = (0, gridview_1.getRelativeLocation)(this.gridview.orientation, updatedReferenceLocation, target);
535
- this.doAddGroup(targetGroup, location_3);
536
- }
537
- }
538
- else {
539
- var groupItem = (sourceGroup === null || sourceGroup === void 0 ? void 0 : sourceGroup.model.removePanel(itemId)) ||
540
- ((_c = this._panels.get(itemId)) === null || _c === void 0 ? void 0 : _c.value);
541
- if (!groupItem) {
542
- throw new Error("No panel with id " + itemId);
543
- }
544
- var dropLocation = (0, gridview_1.getRelativeLocation)(this.gridview.orientation, referenceLocation, target);
545
- this.addPanelToNewGroup(groupItem, dropLocation);
546
- }
547
- }
548
- };
549
- DockviewComponent.prototype.doSetGroupActive = function (group, skipFocus) {
550
- var _a, _b;
551
- var isGroupAlreadyFocused = this._activeGroup === group;
552
- _super.prototype.doSetGroupActive.call(this, group, skipFocus);
553
- if (!isGroupAlreadyFocused && ((_a = this._activeGroup) === null || _a === void 0 ? void 0 : _a.model.activePanel)) {
554
- this._onGridEvent.fire({
555
- kind: baseComponentGridview_1.GroupChangeKind.PANEL_ACTIVE,
556
- panel: (_b = this._activeGroup) === null || _b === void 0 ? void 0 : _b.model.activePanel,
557
- });
558
- }
559
- };
560
- DockviewComponent.prototype.createGroup = function (options) {
561
- var _this = this;
562
- if (!options) {
563
- options = { tabHeight: this.tabHeight };
564
- }
565
- if (typeof options.tabHeight !== 'number') {
566
- options.tabHeight = this.tabHeight;
567
- }
568
- var id = options === null || options === void 0 ? void 0 : options.id;
569
- if (id && this._groups.has(options.id)) {
570
- console.warn("Duplicate group id " + (options === null || options === void 0 ? void 0 : options.id) + ". reassigning group id to avoid errors");
571
- id = undefined;
572
- }
573
- if (!id) {
574
- id = nextGroupId.next();
575
- while (this._groups.has(id)) {
576
- id = nextGroupId.next();
577
- }
578
- }
579
- var view = new groupviewPanel_1.GroupviewPanel(this, id, options);
580
- if (!this._groups.has(view.id)) {
581
- var disposable = new lifecycle_1.CompositeDisposable(view.model.onMove(function (event) {
582
- var groupId = event.groupId, itemId = event.itemId, target = event.target, index = event.index;
583
- _this.moveGroupOrPanel(view, groupId, itemId, target, index);
584
- }), view.model.onDidGroupChange(function (event) {
585
- switch (event.kind) {
586
- case groupview_1.GroupChangeKind2.ADD_PANEL:
587
- _this._onGridEvent.fire({
588
- kind: baseComponentGridview_1.GroupChangeKind.ADD_PANEL,
589
- panel: event.panel,
590
- });
591
- break;
592
- case groupview_1.GroupChangeKind2.GROUP_ACTIVE:
593
- _this._onGridEvent.fire({
594
- kind: baseComponentGridview_1.GroupChangeKind.GROUP_ACTIVE,
595
- panel: event.panel,
596
- });
597
- break;
598
- case groupview_1.GroupChangeKind2.REMOVE_PANEL:
599
- _this._onGridEvent.fire({
600
- kind: baseComponentGridview_1.GroupChangeKind.REMOVE_PANEL,
601
- panel: event.panel,
602
- });
603
- break;
604
- case groupview_1.GroupChangeKind2.PANEL_ACTIVE:
605
- _this._onGridEvent.fire({
606
- kind: baseComponentGridview_1.GroupChangeKind.PANEL_ACTIVE,
607
- panel: event.panel,
608
- });
609
- break;
610
- }
611
- }));
612
- this._groups.set(view.id, { value: view, disposable: disposable });
613
- }
614
- // TODO: must be called after the above listeners have been setup,
615
- // not an ideal pattern
616
- view.initialize();
617
- if (typeof this.options.tabHeight === 'number') {
618
- view.model.tabHeight = this.options.tabHeight;
619
- }
620
- return view;
621
- };
622
- DockviewComponent.prototype.dispose = function () {
623
- _super.prototype.dispose.call(this);
624
- this._onGridEvent.dispose();
625
- };
626
- /**
627
- * Ensure the local copy of the layout state is up-to-date
628
- */
629
- DockviewComponent.prototype.syncConfigs = function () {
630
- var _this = this;
631
- var dirtyPanels = Array.from(this.dirtyPanels);
632
- if (dirtyPanels.length === 0) {
633
- //
634
- }
635
- this.dirtyPanels.clear();
636
- var partialPanelState = dirtyPanels
637
- .map(function (panel) { return _this._panels.get(panel.id); })
638
- .filter(function (_) { return !!_; })
639
- .reduce(function (collection, panel) {
640
- collection[panel.value.id] = panel.value.toJSON();
641
- return collection;
642
- }, {});
643
- this.panelState = __assign(__assign({}, this.panelState), partialPanelState);
644
- dirtyPanels
645
- .filter(function (p) { return _this._panels.has(p.id); })
646
- .forEach(function (panel) {
647
- panel.setDirty(false);
648
- });
649
- };
650
- DockviewComponent.prototype._addPanel = function (options) {
651
- var view = new defaultGroupPanelView_1.DefaultGroupPanelView({
652
- content: this.createContentComponent(options.id, options.component),
653
- tab: this.createTabComponent(options.id, options.tabComponent),
654
- });
655
- var panel = new dockviewGroupPanel_1.DockviewGroupPanel(options.id, this._api);
656
- panel.init({
657
- view: view,
658
- title: options.title || options.id,
659
- suppressClosable: options === null || options === void 0 ? void 0 : options.suppressClosable,
660
- params: (options === null || options === void 0 ? void 0 : options.params) || {},
661
- });
662
- this.registerPanel(panel);
663
- return panel;
664
- };
665
- DockviewComponent.prototype.createContentComponent = function (id, componentName) {
666
- var _a;
667
- return (0, componentFactory_1.createComponent)(id, componentName, this.options.components || {}, this.options.frameworkComponents, (_a = this.options.frameworkComponentFactory) === null || _a === void 0 ? void 0 : _a.content);
668
- };
669
- DockviewComponent.prototype.createTabComponent = function (id, componentName) {
670
- var _a;
671
- return (0, componentFactory_1.createComponent)(id, componentName, this.options.tabComponents || {}, this.options.frameworkTabComponents, (_a = this.options.frameworkComponentFactory) === null || _a === void 0 ? void 0 : _a.tab, function () { return new defaultTab_1.DefaultTab(); });
672
- };
673
- DockviewComponent.prototype.addPanelToNewGroup = function (panel, location) {
674
- if (location === void 0) { location = [0]; }
675
- var group = this.createGroup();
676
- this.doAddGroup(group, location);
677
- group.model.openPanel(panel);
678
- };
679
- DockviewComponent.prototype.findGroup = function (panel) {
680
- var _a;
681
- return (_a = Array.from(this._groups.values()).find(function (group) {
682
- return group.value.model.containsPanel(panel);
683
- })) === null || _a === void 0 ? void 0 : _a.value;
684
- };
685
- DockviewComponent.prototype.addDirtyPanel = function (panel) {
686
- this.dirtyPanels.add(panel);
687
- panel.setDirty(true);
688
- this.debouncedDeque();
689
- };
690
- return DockviewComponent;
691
- }(baseComponentGridview_1.BaseGrid));
692
- 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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
29
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
30
+ return new (P || (P = Promise))(function (resolve, reject) {
31
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
32
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
33
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
34
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
35
+ });
36
+ };
37
+ var __generator = (this && this.__generator) || function (thisArg, body) {
38
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
39
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
40
+ function verb(n) { return function (v) { return step([n, v]); }; }
41
+ function step(op) {
42
+ if (f) throw new TypeError("Generator is already executing.");
43
+ while (_) try {
44
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
45
+ if (y = 0, t) op = [op[0] & 2, t.value];
46
+ switch (op[0]) {
47
+ case 0: case 1: t = op; break;
48
+ case 4: _.label++; return { value: op[1], done: false };
49
+ case 5: _.label++; y = op[1]; op = [0]; continue;
50
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
51
+ default:
52
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
53
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
54
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
55
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
56
+ if (t[2]) _.ops.pop();
57
+ _.trys.pop(); continue;
58
+ }
59
+ op = body.call(thisArg, _);
60
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
61
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
62
+ }
63
+ };
64
+ var __values = (this && this.__values) || function(o) {
65
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
66
+ if (m) return m.call(o);
67
+ if (o && typeof o.length === "number") return {
68
+ next: function () {
69
+ if (o && i >= o.length) o = void 0;
70
+ return { value: o && o[i++], done: !o };
71
+ }
72
+ };
73
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
74
+ };
75
+ var __read = (this && this.__read) || function (o, n) {
76
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
77
+ if (!m) return o;
78
+ var i = m.call(o), r, ar = [], e;
79
+ try {
80
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
81
+ }
82
+ catch (error) { e = { error: error }; }
83
+ finally {
84
+ try {
85
+ if (r && !r.done && (m = i["return"])) m.call(i);
86
+ }
87
+ finally { if (e) throw e.error; }
88
+ }
89
+ return ar;
90
+ };
91
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
92
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
93
+ if (ar || !(i in from)) {
94
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
95
+ ar[i] = from[i];
96
+ }
97
+ }
98
+ return to.concat(ar || Array.prototype.slice.call(from));
99
+ };
100
+ Object.defineProperty(exports, "__esModule", { value: true });
101
+ exports.DockviewComponent = void 0;
102
+ var gridview_1 = require("../gridview/gridview");
103
+ var droptarget_1 = require("../dnd/droptarget");
104
+ var array_1 = require("../array");
105
+ var dockviewGroupPanel_1 = require("./dockviewGroupPanel");
106
+ var lifecycle_1 = require("../lifecycle");
107
+ var events_1 = require("../events");
108
+ var watermark_1 = require("./components/watermark/watermark");
109
+ var functions_1 = require("../functions");
110
+ var math_1 = require("../math");
111
+ var deserializer_1 = require("./deserializer");
112
+ var componentFactory_1 = require("../panel/componentFactory");
113
+ var baseComponentGridview_1 = require("../gridview/baseComponentGridview");
114
+ var component_api_1 = require("../api/component.api");
115
+ var tab_1 = require("../groupview/tab");
116
+ var splitview_1 = require("../splitview/core/splitview");
117
+ var defaultTab_1 = require("./components/tab/defaultTab");
118
+ var groupview_1 = require("../groupview/groupview");
119
+ var groupviewPanel_1 = require("../groupview/groupviewPanel");
120
+ var defaultGroupPanelView_1 = require("./defaultGroupPanelView");
121
+ var nextGroupId = (0, math_1.sequentialNumberGenerator)();
122
+ var DockviewComponent = /** @class */ (function (_super) {
123
+ __extends(DockviewComponent, _super);
124
+ function DockviewComponent(element, options) {
125
+ var _this = _super.call(this, element, {
126
+ proportionalLayout: true,
127
+ orientation: options.orientation || splitview_1.Orientation.HORIZONTAL,
128
+ styles: options.styles,
129
+ }) || this;
130
+ _this._panels = new Map();
131
+ _this.dirtyPanels = new Set();
132
+ _this.debouncedDeque = (0, functions_1.debounce)(_this.syncConfigs.bind(_this), 5000);
133
+ // events
134
+ _this._onTabInteractionEvent = new events_1.Emitter();
135
+ _this.onTabInteractionEvent = _this._onTabInteractionEvent.event;
136
+ _this._onTabContextMenu = new events_1.Emitter();
137
+ _this.onTabContextMenu = _this._onTabContextMenu.event;
138
+ _this.panelState = {};
139
+ _this._options = options;
140
+ if (!_this.options.components) {
141
+ _this.options.components = {};
142
+ }
143
+ if (!_this.options.frameworkComponents) {
144
+ _this.options.frameworkComponents = {};
145
+ }
146
+ if (!_this.options.frameworkTabComponents) {
147
+ _this.options.frameworkTabComponents = {};
148
+ }
149
+ if (!_this.options.tabComponents) {
150
+ _this.options.tabComponents = {};
151
+ }
152
+ if (!_this.options.watermarkComponent &&
153
+ !_this.options.watermarkFrameworkComponent) {
154
+ _this.options.watermarkComponent = watermark_1.Watermark;
155
+ }
156
+ _this._api = new component_api_1.DockviewApi(_this);
157
+ return _this;
158
+ }
159
+ Object.defineProperty(DockviewComponent.prototype, "totalPanels", {
160
+ get: function () {
161
+ return this._panels.size;
162
+ },
163
+ enumerable: false,
164
+ configurable: true
165
+ });
166
+ Object.defineProperty(DockviewComponent.prototype, "panels", {
167
+ get: function () {
168
+ return Array.from(this._panels.values()).map(function (_) { return _.value; });
169
+ },
170
+ enumerable: false,
171
+ configurable: true
172
+ });
173
+ Object.defineProperty(DockviewComponent.prototype, "deserializer", {
174
+ get: function () {
175
+ return this._deserializer;
176
+ },
177
+ set: function (value) {
178
+ this._deserializer = value;
179
+ },
180
+ enumerable: false,
181
+ configurable: true
182
+ });
183
+ Object.defineProperty(DockviewComponent.prototype, "options", {
184
+ get: function () {
185
+ return this._options;
186
+ },
187
+ enumerable: false,
188
+ configurable: true
189
+ });
190
+ Object.defineProperty(DockviewComponent.prototype, "activePanel", {
191
+ get: function () {
192
+ var activeGroup = this.activeGroup;
193
+ if (!activeGroup) {
194
+ return undefined;
195
+ }
196
+ return activeGroup.model.activePanel;
197
+ },
198
+ enumerable: false,
199
+ configurable: true
200
+ });
201
+ Object.defineProperty(DockviewComponent.prototype, "tabHeight", {
202
+ get: function () {
203
+ return this.options.tabHeight;
204
+ },
205
+ set: function (height) {
206
+ this.options.tabHeight = height;
207
+ this._groups.forEach(function (value) {
208
+ value.value.model.tabHeight = height;
209
+ });
210
+ },
211
+ enumerable: false,
212
+ configurable: true
213
+ });
214
+ DockviewComponent.prototype.updateOptions = function (options) {
215
+ var hasOrientationChanged = typeof options.orientation === 'string' &&
216
+ this.options.orientation !== options.orientation;
217
+ // TODO support style update
218
+ // const hasStylesChanged =
219
+ // typeof options.styles === 'object' &&
220
+ // this.options.styles !== options.styles;
221
+ this._options = __assign(__assign({}, this.options), options);
222
+ if (hasOrientationChanged) {
223
+ this.gridview.orientation = options.orientation;
224
+ }
225
+ this.layout(this.gridview.width, this.gridview.height, true);
226
+ };
227
+ DockviewComponent.prototype.focus = function () {
228
+ var _a;
229
+ (_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.focus();
230
+ };
231
+ DockviewComponent.prototype.getGroupPanel = function (id) {
232
+ var _a;
233
+ return (_a = this._panels.get(id)) === null || _a === void 0 ? void 0 : _a.value;
234
+ };
235
+ DockviewComponent.prototype.setActivePanel = function (panel) {
236
+ if (!panel.group) {
237
+ throw new Error("Panel ".concat(panel.id, " has no associated group"));
238
+ }
239
+ this.doSetGroupActive(panel.group);
240
+ panel.group.model.openPanel(panel);
241
+ };
242
+ DockviewComponent.prototype.moveToNext = function (options) {
243
+ var _a;
244
+ if (options === void 0) { options = {}; }
245
+ if (!options.group) {
246
+ if (!this.activeGroup) {
247
+ return;
248
+ }
249
+ options.group = this.activeGroup;
250
+ }
251
+ if (options.includePanel && options.group) {
252
+ if (options.group.model.activePanel !==
253
+ options.group.model.panels[options.group.model.panels.length - 1]) {
254
+ options.group.model.moveToNext({ suppressRoll: true });
255
+ return;
256
+ }
257
+ }
258
+ var location = (0, gridview_1.getGridLocation)(options.group.element);
259
+ var next = (_a = this.gridview.next(location)) === null || _a === void 0 ? void 0 : _a.view;
260
+ this.doSetGroupActive(next);
261
+ };
262
+ DockviewComponent.prototype.moveToPrevious = function (options) {
263
+ var _a;
264
+ if (options === void 0) { options = {}; }
265
+ if (!options.group) {
266
+ if (!this.activeGroup) {
267
+ return;
268
+ }
269
+ options.group = this.activeGroup;
270
+ }
271
+ if (options.includePanel && options.group) {
272
+ if (options.group.model.activePanel !==
273
+ options.group.model.panels[0]) {
274
+ options.group.model.moveToPrevious({ suppressRoll: true });
275
+ return;
276
+ }
277
+ }
278
+ var location = (0, gridview_1.getGridLocation)(options.group.element);
279
+ var next = (_a = this.gridview.previous(location)) === null || _a === void 0 ? void 0 : _a.view;
280
+ if (next) {
281
+ this.doSetGroupActive(next);
282
+ }
283
+ };
284
+ DockviewComponent.prototype.registerPanel = function (panel) {
285
+ var _this = this;
286
+ if (this._panels.has(panel.id)) {
287
+ throw new Error("panel ".concat(panel.id, " already exists"));
288
+ }
289
+ var disposable = new lifecycle_1.CompositeDisposable(panel.onDidStateChange(function () { return _this.addDirtyPanel(panel); }));
290
+ this._panels.set(panel.id, { value: panel, disposable: disposable });
291
+ };
292
+ DockviewComponent.prototype.unregisterPanel = function (panel) {
293
+ if (!this._panels.has(panel.id)) {
294
+ throw new Error("panel ".concat(panel.id, " doesn't exist"));
295
+ }
296
+ var item = this._panels.get(panel.id);
297
+ if (item) {
298
+ item.disposable.dispose();
299
+ item.value.dispose();
300
+ }
301
+ this._panels.delete(panel.id);
302
+ };
303
+ /**
304
+ * Serialize the current state of the layout
305
+ *
306
+ * @returns A JSON respresentation of the layout
307
+ */
308
+ DockviewComponent.prototype.toJSON = function () {
309
+ var _this = this;
310
+ var _a;
311
+ this.syncConfigs();
312
+ var data = this.gridview.serialize();
313
+ var panels = Array.from(this._panels.values()).reduce(function (collection, panel) {
314
+ if (!_this.panelState[panel.value.id]) {
315
+ collection[panel.value.id] = panel.value.toJSON();
316
+ }
317
+ return collection;
318
+ }, {});
319
+ return {
320
+ grid: data,
321
+ panels: panels,
322
+ activeGroup: (_a = this.activeGroup) === null || _a === void 0 ? void 0 : _a.id,
323
+ options: { tabHeight: this.tabHeight },
324
+ };
325
+ };
326
+ DockviewComponent.prototype.fromJSON = function (data) {
327
+ var _this = this;
328
+ this.gridview.clear();
329
+ this._panels.forEach(function (panel) {
330
+ panel.disposable.dispose();
331
+ panel.value.dispose();
332
+ });
333
+ this._panels.clear();
334
+ this._groups.clear();
335
+ if (!this.deserializer) {
336
+ throw new Error('invalid deserializer');
337
+ }
338
+ var grid = data.grid, panels = data.panels, options = data.options, activeGroup = data.activeGroup;
339
+ if (typeof (options === null || options === void 0 ? void 0 : options.tabHeight) === 'number') {
340
+ this.tabHeight = options.tabHeight;
341
+ }
342
+ if (!this.deserializer) {
343
+ throw new Error('no deserializer provided');
344
+ }
345
+ this.gridview.deserialize(grid, new deserializer_1.DefaultDeserializer(this, {
346
+ createPanel: function (id) {
347
+ var panelData = panels[id];
348
+ var panel = _this.deserializer.fromJSON(panelData);
349
+ _this.registerPanel(panel);
350
+ return panel;
351
+ },
352
+ }));
353
+ if (typeof activeGroup === 'string') {
354
+ var panel = this.getPanel(activeGroup);
355
+ if (panel) {
356
+ this.doSetGroupActive(panel);
357
+ }
358
+ }
359
+ this.gridview.layout(this.width, this.height);
360
+ this._onGridEvent.fire({ kind: baseComponentGridview_1.GroupChangeKind.LAYOUT_FROM_JSON });
361
+ };
362
+ DockviewComponent.prototype.closeAllGroups = function () {
363
+ return __awaiter(this, void 0, void 0, function () {
364
+ var _a, _b, entry, _c, _, group, didCloseAll, e_1_1;
365
+ var e_1, _d;
366
+ return __generator(this, function (_e) {
367
+ switch (_e.label) {
368
+ case 0:
369
+ _e.trys.push([0, 5, 6, 7]);
370
+ _a = __values(this._groups.entries()), _b = _a.next();
371
+ _e.label = 1;
372
+ case 1:
373
+ if (!!_b.done) return [3 /*break*/, 4];
374
+ entry = _b.value;
375
+ _c = __read(entry, 2), _ = _c[0], group = _c[1];
376
+ return [4 /*yield*/, group.value.model.closeAllPanels()];
377
+ case 2:
378
+ didCloseAll = _e.sent();
379
+ if (!didCloseAll) {
380
+ return [2 /*return*/, false];
381
+ }
382
+ _e.label = 3;
383
+ case 3:
384
+ _b = _a.next();
385
+ return [3 /*break*/, 1];
386
+ case 4: return [3 /*break*/, 7];
387
+ case 5:
388
+ e_1_1 = _e.sent();
389
+ e_1 = { error: e_1_1 };
390
+ return [3 /*break*/, 7];
391
+ case 6:
392
+ try {
393
+ if (_b && !_b.done && (_d = _a.return)) _d.call(_a);
394
+ }
395
+ finally { if (e_1) throw e_1.error; }
396
+ return [7 /*endfinally*/];
397
+ case 7: return [2 /*return*/, true];
398
+ }
399
+ });
400
+ });
401
+ };
402
+ DockviewComponent.prototype.fireMouseEvent = function (event) {
403
+ switch (event.kind) {
404
+ case tab_1.MouseEventKind.CONTEXT_MENU:
405
+ if (event.tab && event.panel) {
406
+ this._onTabContextMenu.fire({
407
+ event: event.event,
408
+ api: this._api,
409
+ panel: event.panel,
410
+ });
411
+ }
412
+ break;
413
+ }
414
+ };
415
+ DockviewComponent.prototype.addPanel = function (options) {
416
+ var _a, _b;
417
+ var panel = this._addPanel(options);
418
+ var referenceGroup;
419
+ if ((_a = options.position) === null || _a === void 0 ? void 0 : _a.referencePanel) {
420
+ var referencePanel = this.getGroupPanel(options.position.referencePanel);
421
+ if (!referencePanel) {
422
+ throw new Error("referencePanel ".concat(options.position.referencePanel, " does not exist"));
423
+ }
424
+ referenceGroup = this.findGroup(referencePanel);
425
+ }
426
+ else {
427
+ referenceGroup = this.activeGroup;
428
+ }
429
+ if (referenceGroup) {
430
+ var target = (0, baseComponentGridview_1.toTarget)(((_b = options.position) === null || _b === void 0 ? void 0 : _b.direction) || 'within');
431
+ if (target === droptarget_1.Position.Center) {
432
+ referenceGroup.model.openPanel(panel);
433
+ }
434
+ else {
435
+ var location_1 = (0, gridview_1.getGridLocation)(referenceGroup.element);
436
+ var relativeLocation = (0, gridview_1.getRelativeLocation)(this.gridview.orientation, location_1, target);
437
+ this.addPanelToNewGroup(panel, relativeLocation);
438
+ }
439
+ }
440
+ else {
441
+ this.addPanelToNewGroup(panel);
442
+ }
443
+ return panel;
444
+ };
445
+ DockviewComponent.prototype.removePanel = function (panel) {
446
+ this.unregisterPanel(panel);
447
+ var group = panel.group;
448
+ if (!group) {
449
+ throw new Error("cannot remove panel ".concat(panel.id, ". it's missing a group."));
450
+ }
451
+ group.model.removePanel(panel);
452
+ if (group.model.size === 0) {
453
+ this.removeGroup(group);
454
+ }
455
+ };
456
+ DockviewComponent.prototype.createWatermarkComponent = function () {
457
+ var _a;
458
+ return (0, componentFactory_1.createComponent)('watermark-id', 'watermark-name', this.options.watermarkComponent
459
+ ? { 'watermark-name': this.options.watermarkComponent }
460
+ : {}, this.options.watermarkFrameworkComponent
461
+ ? { 'watermark-name': this.options.watermarkFrameworkComponent }
462
+ : {}, (_a = this.options.frameworkComponentFactory) === null || _a === void 0 ? void 0 : _a.watermark);
463
+ };
464
+ DockviewComponent.prototype.addEmptyGroup = function (options) {
465
+ var _a;
466
+ var group = this.createGroup();
467
+ if (options) {
468
+ var referencePanel = (_a = this._panels.get(options.referencePanel)) === null || _a === void 0 ? void 0 : _a.value;
469
+ if (!referencePanel) {
470
+ throw new Error("reference panel ".concat(options.referencePanel, " does not exist"));
471
+ }
472
+ var referenceGroup = this.findGroup(referencePanel);
473
+ if (!referenceGroup) {
474
+ throw new Error("reference group for reference panel ".concat(options.referencePanel, " does not exist"));
475
+ }
476
+ var target = (0, baseComponentGridview_1.toTarget)(options.direction || 'within');
477
+ var location_2 = (0, gridview_1.getGridLocation)(referenceGroup.element);
478
+ var relativeLocation = (0, gridview_1.getRelativeLocation)(this.gridview.orientation, location_2, target);
479
+ this.doAddGroup(group, relativeLocation);
480
+ }
481
+ else {
482
+ this.doAddGroup(group);
483
+ }
484
+ };
485
+ DockviewComponent.prototype.removeGroup = function (group) {
486
+ var _this = this;
487
+ var panels = __spreadArray([], __read(group.model.panels), false); // reassign since group panels will mutate
488
+ panels.forEach(function (panel) {
489
+ _this.removePanel(panel);
490
+ });
491
+ if (this._groups.size === 1) {
492
+ this._activeGroup = group;
493
+ return;
494
+ }
495
+ _super.prototype.removeGroup.call(this, group);
496
+ };
497
+ DockviewComponent.prototype.moveGroupOrPanel = function (referenceGroup, groupId, itemId, target, index) {
498
+ var _a, _b, _c;
499
+ var sourceGroup = groupId
500
+ ? (_a = this._groups.get(groupId)) === null || _a === void 0 ? void 0 : _a.value
501
+ : undefined;
502
+ if (!target || target === droptarget_1.Position.Center) {
503
+ var groupItem = (sourceGroup === null || sourceGroup === void 0 ? void 0 : sourceGroup.model.removePanel(itemId)) ||
504
+ ((_b = this._panels.get(itemId)) === null || _b === void 0 ? void 0 : _b.value);
505
+ if (!groupItem) {
506
+ throw new Error("No panel with id ".concat(itemId));
507
+ }
508
+ if ((sourceGroup === null || sourceGroup === void 0 ? void 0 : sourceGroup.model.size) === 0) {
509
+ this.doRemoveGroup(sourceGroup);
510
+ }
511
+ referenceGroup.model.openPanel(groupItem, { index: index });
512
+ }
513
+ else {
514
+ var referenceLocation = (0, gridview_1.getGridLocation)(referenceGroup.element);
515
+ var targetLocation = (0, gridview_1.getRelativeLocation)(this.gridview.orientation, referenceLocation, target);
516
+ if (sourceGroup && sourceGroup.model.size < 2) {
517
+ var _d = __read((0, array_1.tail)(targetLocation), 2), targetParentLocation = _d[0], to = _d[1];
518
+ var sourceLocation = (0, gridview_1.getGridLocation)(sourceGroup.element);
519
+ var _e = __read((0, array_1.tail)(sourceLocation), 2), sourceParentLocation = _e[0], from = _e[1];
520
+ if ((0, array_1.sequenceEquals)(sourceParentLocation, targetParentLocation)) {
521
+ // special case when 'swapping' two views within same grid location
522
+ // if a group has one tab - we are essentially moving the 'group'
523
+ // which is equivalent to swapping two views in this case
524
+ this.gridview.moveView(sourceParentLocation, from, to);
525
+ }
526
+ else {
527
+ // source group will become empty so delete the group
528
+ var targetGroup = this.doRemoveGroup(sourceGroup, {
529
+ skipActive: true,
530
+ skipDispose: true,
531
+ });
532
+ // after deleting the group we need to re-evaulate the ref location
533
+ var updatedReferenceLocation = (0, gridview_1.getGridLocation)(referenceGroup.element);
534
+ var location_3 = (0, gridview_1.getRelativeLocation)(this.gridview.orientation, updatedReferenceLocation, target);
535
+ this.doAddGroup(targetGroup, location_3);
536
+ }
537
+ }
538
+ else {
539
+ var groupItem = (sourceGroup === null || sourceGroup === void 0 ? void 0 : sourceGroup.model.removePanel(itemId)) ||
540
+ ((_c = this._panels.get(itemId)) === null || _c === void 0 ? void 0 : _c.value);
541
+ if (!groupItem) {
542
+ throw new Error("No panel with id ".concat(itemId));
543
+ }
544
+ var dropLocation = (0, gridview_1.getRelativeLocation)(this.gridview.orientation, referenceLocation, target);
545
+ this.addPanelToNewGroup(groupItem, dropLocation);
546
+ }
547
+ }
548
+ };
549
+ DockviewComponent.prototype.doSetGroupActive = function (group, skipFocus) {
550
+ var _a, _b;
551
+ var isGroupAlreadyFocused = this._activeGroup === group;
552
+ _super.prototype.doSetGroupActive.call(this, group, skipFocus);
553
+ if (!isGroupAlreadyFocused && ((_a = this._activeGroup) === null || _a === void 0 ? void 0 : _a.model.activePanel)) {
554
+ this._onGridEvent.fire({
555
+ kind: baseComponentGridview_1.GroupChangeKind.PANEL_ACTIVE,
556
+ panel: (_b = this._activeGroup) === null || _b === void 0 ? void 0 : _b.model.activePanel,
557
+ });
558
+ }
559
+ };
560
+ DockviewComponent.prototype.createGroup = function (options) {
561
+ var _this = this;
562
+ if (!options) {
563
+ options = { tabHeight: this.tabHeight };
564
+ }
565
+ if (typeof options.tabHeight !== 'number') {
566
+ options.tabHeight = this.tabHeight;
567
+ }
568
+ var id = options === null || options === void 0 ? void 0 : options.id;
569
+ if (id && this._groups.has(options.id)) {
570
+ console.warn("Duplicate group id ".concat(options === null || options === void 0 ? void 0 : options.id, ". reassigning group id to avoid errors"));
571
+ id = undefined;
572
+ }
573
+ if (!id) {
574
+ id = nextGroupId.next();
575
+ while (this._groups.has(id)) {
576
+ id = nextGroupId.next();
577
+ }
578
+ }
579
+ var view = new groupviewPanel_1.GroupviewPanel(this, id, options);
580
+ if (!this._groups.has(view.id)) {
581
+ var disposable = new lifecycle_1.CompositeDisposable(view.model.onMove(function (event) {
582
+ var groupId = event.groupId, itemId = event.itemId, target = event.target, index = event.index;
583
+ _this.moveGroupOrPanel(view, groupId, itemId, target, index);
584
+ }), view.model.onDidGroupChange(function (event) {
585
+ switch (event.kind) {
586
+ case groupview_1.GroupChangeKind2.ADD_PANEL:
587
+ _this._onGridEvent.fire({
588
+ kind: baseComponentGridview_1.GroupChangeKind.ADD_PANEL,
589
+ panel: event.panel,
590
+ });
591
+ break;
592
+ case groupview_1.GroupChangeKind2.GROUP_ACTIVE:
593
+ _this._onGridEvent.fire({
594
+ kind: baseComponentGridview_1.GroupChangeKind.GROUP_ACTIVE,
595
+ panel: event.panel,
596
+ });
597
+ break;
598
+ case groupview_1.GroupChangeKind2.REMOVE_PANEL:
599
+ _this._onGridEvent.fire({
600
+ kind: baseComponentGridview_1.GroupChangeKind.REMOVE_PANEL,
601
+ panel: event.panel,
602
+ });
603
+ break;
604
+ case groupview_1.GroupChangeKind2.PANEL_ACTIVE:
605
+ _this._onGridEvent.fire({
606
+ kind: baseComponentGridview_1.GroupChangeKind.PANEL_ACTIVE,
607
+ panel: event.panel,
608
+ });
609
+ break;
610
+ }
611
+ }));
612
+ this._groups.set(view.id, { value: view, disposable: disposable });
613
+ }
614
+ // TODO: must be called after the above listeners have been setup,
615
+ // not an ideal pattern
616
+ view.initialize();
617
+ if (typeof this.options.tabHeight === 'number') {
618
+ view.model.tabHeight = this.options.tabHeight;
619
+ }
620
+ return view;
621
+ };
622
+ DockviewComponent.prototype.dispose = function () {
623
+ _super.prototype.dispose.call(this);
624
+ this._onGridEvent.dispose();
625
+ };
626
+ /**
627
+ * Ensure the local copy of the layout state is up-to-date
628
+ */
629
+ DockviewComponent.prototype.syncConfigs = function () {
630
+ var _this = this;
631
+ var dirtyPanels = Array.from(this.dirtyPanels);
632
+ if (dirtyPanels.length === 0) {
633
+ //
634
+ }
635
+ this.dirtyPanels.clear();
636
+ var partialPanelState = dirtyPanels
637
+ .map(function (panel) { return _this._panels.get(panel.id); })
638
+ .filter(function (_) { return !!_; })
639
+ .reduce(function (collection, panel) {
640
+ collection[panel.value.id] = panel.value.toJSON();
641
+ return collection;
642
+ }, {});
643
+ this.panelState = __assign(__assign({}, this.panelState), partialPanelState);
644
+ dirtyPanels
645
+ .filter(function (p) { return _this._panels.has(p.id); })
646
+ .forEach(function (panel) {
647
+ panel.setDirty(false);
648
+ });
649
+ };
650
+ DockviewComponent.prototype._addPanel = function (options) {
651
+ var view = new defaultGroupPanelView_1.DefaultGroupPanelView({
652
+ content: this.createContentComponent(options.id, options.component),
653
+ tab: this.createTabComponent(options.id, options.tabComponent),
654
+ });
655
+ var panel = new dockviewGroupPanel_1.DockviewGroupPanel(options.id, this._api);
656
+ panel.init({
657
+ view: view,
658
+ title: options.title || options.id,
659
+ suppressClosable: options === null || options === void 0 ? void 0 : options.suppressClosable,
660
+ params: (options === null || options === void 0 ? void 0 : options.params) || {},
661
+ });
662
+ this.registerPanel(panel);
663
+ return panel;
664
+ };
665
+ DockviewComponent.prototype.createContentComponent = function (id, componentName) {
666
+ var _a;
667
+ return (0, componentFactory_1.createComponent)(id, componentName, this.options.components || {}, this.options.frameworkComponents, (_a = this.options.frameworkComponentFactory) === null || _a === void 0 ? void 0 : _a.content);
668
+ };
669
+ DockviewComponent.prototype.createTabComponent = function (id, componentName) {
670
+ var _a;
671
+ return (0, componentFactory_1.createComponent)(id, componentName, this.options.tabComponents || {}, this.options.frameworkTabComponents, (_a = this.options.frameworkComponentFactory) === null || _a === void 0 ? void 0 : _a.tab, function () { return new defaultTab_1.DefaultTab(); });
672
+ };
673
+ DockviewComponent.prototype.addPanelToNewGroup = function (panel, location) {
674
+ if (location === void 0) { location = [0]; }
675
+ var group = this.createGroup();
676
+ this.doAddGroup(group, location);
677
+ group.model.openPanel(panel);
678
+ };
679
+ DockviewComponent.prototype.findGroup = function (panel) {
680
+ var _a;
681
+ return (_a = Array.from(this._groups.values()).find(function (group) {
682
+ return group.value.model.containsPanel(panel);
683
+ })) === null || _a === void 0 ? void 0 : _a.value;
684
+ };
685
+ DockviewComponent.prototype.addDirtyPanel = function (panel) {
686
+ this.dirtyPanels.add(panel);
687
+ panel.setDirty(true);
688
+ this.debouncedDeque();
689
+ };
690
+ return DockviewComponent;
691
+ }(baseComponentGridview_1.BaseGrid));
692
+ exports.DockviewComponent = DockviewComponent;
693
693
  //# sourceMappingURL=dockviewComponent.js.map