dockview 0.0.28 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (342) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +60 -0
  3. package/dist/cjs/actionbar/actionsContainer.d.ts +7 -7
  4. package/dist/cjs/actionbar/actionsContainer.js +26 -26
  5. package/dist/cjs/api/component.api.d.ts +131 -131
  6. package/dist/cjs/api/component.api.js +444 -444
  7. package/dist/cjs/api/gridviewPanelApi.d.ts +36 -36
  8. package/dist/cjs/api/gridviewPanelApi.js +46 -46
  9. package/dist/cjs/api/groupPanelApi.d.ts +44 -44
  10. package/dist/cjs/api/groupPanelApi.js +94 -94
  11. package/dist/cjs/api/groupPanelApi.js.map +1 -1
  12. package/dist/cjs/api/panelApi.d.ts +107 -107
  13. package/dist/cjs/api/panelApi.js +140 -140
  14. package/dist/cjs/api/paneviewPanelApi.d.ts +26 -26
  15. package/dist/cjs/api/paneviewPanelApi.js +56 -56
  16. package/dist/cjs/api/splitviewPanelApi.d.ts +33 -33
  17. package/dist/cjs/api/splitviewPanelApi.js +51 -51
  18. package/dist/cjs/array.d.ts +13 -13
  19. package/dist/cjs/array.js +77 -77
  20. package/dist/cjs/dnd/abstractDragHandler.d.ts +11 -11
  21. package/dist/cjs/dnd/abstractDragHandler.js +115 -115
  22. package/dist/cjs/dnd/dataTransfer.d.ts +56 -56
  23. package/dist/cjs/dnd/dataTransfer.js +144 -144
  24. package/dist/cjs/dnd/dataTransfer.js.map +1 -1
  25. package/dist/cjs/dnd/dnd.d.ts +40 -40
  26. package/dist/cjs/dnd/dnd.js +142 -142
  27. package/dist/cjs/dnd/droptarget.d.ts +37 -37
  28. package/dist/cjs/dnd/droptarget.js +177 -177
  29. package/dist/cjs/dockview/components/tab/defaultTab.d.ts +44 -44
  30. package/dist/cjs/dockview/components/tab/defaultTab.js +186 -186
  31. package/dist/cjs/dockview/components/watermark/watermark.d.ts +20 -20
  32. package/dist/cjs/dockview/components/watermark/watermark.js +99 -99
  33. package/dist/cjs/dockview/defaultGroupPanelView.d.ts +34 -34
  34. package/dist/cjs/dockview/defaultGroupPanelView.js +83 -83
  35. package/dist/cjs/dockview/deserializer.d.ts +14 -14
  36. package/dist/cjs/dockview/deserializer.js +47 -47
  37. package/dist/cjs/dockview/dockviewComponent.d.ts +121 -121
  38. package/dist/cjs/dockview/dockviewComponent.js +692 -692
  39. package/dist/cjs/dockview/dockviewComponent.js.map +1 -1
  40. package/dist/cjs/dockview/dockviewGroupPanel.d.ts +35 -35
  41. package/dist/cjs/dockview/dockviewGroupPanel.js +195 -195
  42. package/dist/cjs/dockview/options.d.ts +79 -79
  43. package/dist/cjs/dockview/options.js +2 -2
  44. package/dist/cjs/dom.d.ts +14 -14
  45. package/dist/cjs/dom.js +182 -182
  46. package/dist/cjs/events.d.ts +23 -23
  47. package/dist/cjs/events.js +87 -87
  48. package/dist/cjs/footnote.d.ts +1 -1
  49. package/dist/cjs/footnote.js +19 -19
  50. package/dist/cjs/footnote.js.map +1 -1
  51. package/dist/cjs/functions.d.ts +1 -1
  52. package/dist/cjs/functions.js +41 -41
  53. package/dist/cjs/gridview/baseComponentGridview.d.ts +98 -98
  54. package/dist/cjs/gridview/baseComponentGridview.js +292 -292
  55. package/dist/cjs/gridview/baseComponentGridview.js.map +1 -1
  56. package/dist/cjs/gridview/basePanelView.d.ts +46 -46
  57. package/dist/cjs/gridview/basePanelView.js +115 -115
  58. package/dist/cjs/gridview/branchNode.d.ts +46 -46
  59. package/dist/cjs/gridview/branchNode.js +342 -342
  60. package/dist/cjs/gridview/gridview.d.ts +123 -123
  61. package/dist/cjs/gridview/gridview.js +477 -477
  62. package/dist/cjs/gridview/gridviewComponent.d.ts +88 -88
  63. package/dist/cjs/gridview/gridviewComponent.js +303 -303
  64. package/dist/cjs/gridview/gridviewComponent.js.map +1 -1
  65. package/dist/cjs/gridview/gridviewPanel.d.ts +62 -62
  66. package/dist/cjs/gridview/gridviewPanel.js +205 -205
  67. package/dist/cjs/gridview/leafNode.d.ts +31 -31
  68. package/dist/cjs/gridview/leafNode.js +164 -164
  69. package/dist/cjs/gridview/options.d.ts +18 -18
  70. package/dist/cjs/gridview/options.js +2 -2
  71. package/dist/cjs/gridview/types.d.ts +3 -3
  72. package/dist/cjs/gridview/types.js +2 -2
  73. package/dist/cjs/groupview/dnd.d.ts +5 -5
  74. package/dist/cjs/groupview/dnd.js +9 -9
  75. package/dist/cjs/groupview/groupPanel.d.ts +41 -41
  76. package/dist/cjs/groupview/groupPanel.js +2 -2
  77. package/dist/cjs/groupview/groupview.d.ts +154 -154
  78. package/dist/cjs/groupview/groupview.js +633 -633
  79. package/dist/cjs/groupview/groupviewPanel.d.ts +18 -18
  80. package/dist/cjs/groupview/groupviewPanel.js +83 -83
  81. package/dist/cjs/groupview/panel/content.d.ts +30 -30
  82. package/dist/cjs/groupview/panel/content.js +99 -99
  83. package/dist/cjs/groupview/panel/hostedPanel.d.ts +22 -22
  84. package/dist/cjs/groupview/panel/hostedPanel.js +56 -56
  85. package/dist/cjs/groupview/panel/hostedPanel.js.map +1 -1
  86. package/dist/cjs/groupview/tab.d.ts +44 -44
  87. package/dist/cjs/groupview/tab.js +182 -182
  88. package/dist/cjs/groupview/titlebar/tabsContainer.d.ts +66 -66
  89. package/dist/cjs/groupview/titlebar/tabsContainer.js +260 -260
  90. package/dist/cjs/groupview/titlebar/tabsContainer.js.map +1 -1
  91. package/dist/cjs/groupview/types.d.ts +59 -59
  92. package/dist/cjs/groupview/types.js +2 -2
  93. package/dist/cjs/hostedContainer.d.ts +23 -23
  94. package/dist/cjs/hostedContainer.js +73 -73
  95. package/dist/cjs/hostedContainer.js.map +1 -1
  96. package/dist/cjs/index.d.ts +29 -26
  97. package/dist/cjs/index.js +38 -35
  98. package/dist/cjs/index.js.map +1 -1
  99. package/dist/cjs/json.d.ts +1 -1
  100. package/dist/cjs/json.js +13 -13
  101. package/dist/cjs/lifecycle.d.ts +22 -22
  102. package/dist/cjs/lifecycle.js +87 -87
  103. package/dist/cjs/math.d.ts +4 -4
  104. package/dist/cjs/math.js +15 -15
  105. package/dist/cjs/math.js.map +1 -1
  106. package/dist/cjs/panel/componentFactory.d.ts +8 -8
  107. package/dist/cjs/panel/componentFactory.js +30 -30
  108. package/dist/cjs/panel/componentFactory.js.map +1 -1
  109. package/dist/cjs/panel/types.d.ts +34 -34
  110. package/dist/cjs/panel/types.js +2 -2
  111. package/dist/cjs/paneview/defaultPaneviewHeader.d.ts +18 -18
  112. package/dist/cjs/paneview/defaultPaneviewHeader.js +64 -64
  113. package/dist/cjs/paneview/draggablePaneviewPanel.d.ts +17 -17
  114. package/dist/cjs/paneview/draggablePaneviewPanel.js +111 -111
  115. package/dist/cjs/paneview/options.d.ts +25 -25
  116. package/dist/cjs/paneview/options.js +2 -2
  117. package/dist/cjs/paneview/paneview.d.ts +38 -38
  118. package/dist/cjs/paneview/paneview.js +198 -198
  119. package/dist/cjs/paneview/paneviewComponent.d.ts +113 -113
  120. package/dist/cjs/paneview/paneviewComponent.js +338 -338
  121. package/dist/cjs/paneview/paneviewPanel.d.ts +85 -85
  122. package/dist/cjs/paneview/paneviewPanel.js +262 -262
  123. package/dist/cjs/paneview/paneviewPanel.js.map +1 -1
  124. package/dist/cjs/react/deserializer.d.ts +8 -8
  125. package/dist/cjs/react/deserializer.js +39 -39
  126. package/dist/cjs/react/dockview/components.d.ts +11 -11
  127. package/dist/cjs/react/dockview/components.js +76 -76
  128. package/dist/cjs/react/dockview/dockview.d.ts +34 -34
  129. package/dist/cjs/react/dockview/dockview.js +135 -135
  130. package/dist/cjs/react/dockview/reactContentPart.d.ts +47 -47
  131. package/dist/cjs/react/dockview/reactContentPart.js +88 -88
  132. package/dist/cjs/react/dockview/reactHeaderPart.d.ts +24 -24
  133. package/dist/cjs/react/dockview/reactHeaderPart.js +50 -50
  134. package/dist/cjs/react/dockview/reactWatermarkPart.d.ts +30 -30
  135. package/dist/cjs/react/dockview/reactWatermarkPart.js +66 -66
  136. package/dist/cjs/react/dockview/v2/reactContentRenderer.d.ts +30 -30
  137. package/dist/cjs/react/dockview/v2/reactContentRenderer.js +90 -90
  138. package/dist/cjs/react/dockview/v2/reactGroupPanelView.d.ts +7 -7
  139. package/dist/cjs/react/dockview/v2/reactGroupPanelView.js +34 -34
  140. package/dist/cjs/react/dockview/v2/webviewContentRenderer.d.ts +18 -18
  141. package/dist/cjs/react/dockview/v2/webviewContentRenderer.js +45 -45
  142. package/dist/cjs/react/gridview/gridview.d.ts +24 -24
  143. package/dist/cjs/react/gridview/gridview.js +96 -96
  144. package/dist/cjs/react/gridview/view.d.ts +10 -10
  145. package/dist/cjs/react/gridview/view.js +40 -40
  146. package/dist/cjs/react/index.d.ts +9 -9
  147. package/dist/cjs/react/index.js +21 -21
  148. package/dist/cjs/react/paneview/paneview.d.ts +28 -28
  149. package/dist/cjs/react/paneview/paneview.js +138 -138
  150. package/dist/cjs/react/paneview/view.d.ts +20 -20
  151. package/dist/cjs/react/paneview/view.js +44 -44
  152. package/dist/cjs/react/react.d.ts +35 -35
  153. package/dist/cjs/react/react.js +181 -181
  154. package/dist/cjs/react/react.js.map +1 -1
  155. package/dist/cjs/react/splitview/splitview.d.ts +24 -24
  156. package/dist/cjs/react/splitview/splitview.js +93 -93
  157. package/dist/cjs/react/splitview/view.d.ts +10 -10
  158. package/dist/cjs/react/splitview/view.js +40 -40
  159. package/dist/cjs/react/types.d.ts +7 -7
  160. package/dist/cjs/react/types.js +2 -2
  161. package/dist/cjs/splitview/core/options.d.ts +26 -26
  162. package/dist/cjs/splitview/core/options.js +2 -2
  163. package/dist/cjs/splitview/core/splitview.d.ts +124 -124
  164. package/dist/cjs/splitview/core/splitview.js +908 -908
  165. package/dist/cjs/splitview/core/splitview.js.map +1 -1
  166. package/dist/cjs/splitview/core/viewItem.d.ts +25 -25
  167. package/dist/cjs/splitview/core/viewItem.js +124 -124
  168. package/dist/cjs/splitview/splitviewComponent.d.ts +100 -100
  169. package/dist/cjs/splitview/splitviewComponent.js +327 -327
  170. package/dist/cjs/splitview/splitviewComponent.js.map +1 -1
  171. package/dist/cjs/splitview/splitviewPanel.d.ts +47 -47
  172. package/dist/cjs/splitview/splitviewPanel.js +178 -178
  173. package/dist/cjs/types.d.ts +7 -7
  174. package/dist/cjs/types.js +2 -2
  175. package/dist/dockview.amd.js +6714 -6711
  176. package/dist/dockview.amd.min.js +3 -3
  177. package/dist/dockview.amd.min.noStyle.js +3 -3
  178. package/dist/dockview.amd.noStyle.js +6706 -6703
  179. package/dist/dockview.cjs.js +6708 -6705
  180. package/dist/dockview.esm.js +6706 -6706
  181. package/dist/dockview.esm.min.js +3 -3
  182. package/dist/dockview.js +6714 -6711
  183. package/dist/dockview.min.js +3 -3
  184. package/dist/dockview.min.noStyle.js +3 -3
  185. package/dist/dockview.noStyle.js +6706 -6703
  186. package/dist/esm/actionbar/actionsContainer.d.ts +7 -7
  187. package/dist/esm/actionbar/actionsContainer.js +17 -17
  188. package/dist/esm/api/component.api.d.ts +131 -131
  189. package/dist/esm/api/component.api.js +287 -287
  190. package/dist/esm/api/gridviewPanelApi.d.ts +36 -36
  191. package/dist/esm/api/gridviewPanelApi.js +24 -24
  192. package/dist/esm/api/groupPanelApi.d.ts +44 -44
  193. package/dist/esm/api/groupPanelApi.js +52 -52
  194. package/dist/esm/api/panelApi.d.ts +107 -107
  195. package/dist/esm/api/panelApi.js +98 -98
  196. package/dist/esm/api/paneviewPanelApi.d.ts +26 -26
  197. package/dist/esm/api/paneviewPanelApi.js +26 -26
  198. package/dist/esm/api/splitviewPanelApi.d.ts +33 -33
  199. package/dist/esm/api/splitviewPanelApi.js +29 -29
  200. package/dist/esm/array.d.ts +13 -13
  201. package/dist/esm/array.js +67 -67
  202. package/dist/esm/dnd/abstractDragHandler.d.ts +11 -11
  203. package/dist/esm/dnd/abstractDragHandler.js +37 -37
  204. package/dist/esm/dnd/dataTransfer.d.ts +56 -56
  205. package/dist/esm/dnd/dataTransfer.js +109 -109
  206. package/dist/esm/dnd/dnd.d.ts +40 -40
  207. package/dist/esm/dnd/dnd.js +109 -109
  208. package/dist/esm/dnd/droptarget.d.ts +37 -37
  209. package/dist/esm/dnd/droptarget.js +143 -143
  210. package/dist/esm/dockview/components/tab/defaultTab.d.ts +44 -44
  211. package/dist/esm/dockview/components/tab/defaultTab.js +130 -130
  212. package/dist/esm/dockview/components/watermark/watermark.d.ts +20 -20
  213. package/dist/esm/dockview/components/watermark/watermark.js +68 -68
  214. package/dist/esm/dockview/defaultGroupPanelView.d.ts +34 -34
  215. package/dist/esm/dockview/defaultGroupPanelView.js +55 -55
  216. package/dist/esm/dockview/deserializer.d.ts +14 -14
  217. package/dist/esm/dockview/deserializer.js +20 -20
  218. package/dist/esm/dockview/dockviewComponent.d.ts +121 -121
  219. package/dist/esm/dockview/dockviewComponent.js +533 -533
  220. package/dist/esm/dockview/dockviewGroupPanel.d.ts +35 -35
  221. package/dist/esm/dockview/dockviewGroupPanel.js +145 -145
  222. package/dist/esm/dockview/options.d.ts +79 -79
  223. package/dist/esm/dockview/options.js +1 -1
  224. package/dist/esm/dom.d.ts +14 -14
  225. package/dist/esm/dom.js +113 -113
  226. package/dist/esm/events.d.ts +23 -23
  227. package/dist/esm/events.js +71 -71
  228. package/dist/esm/footnote.d.ts +1 -1
  229. package/dist/esm/footnote.js +19 -19
  230. package/dist/esm/functions.d.ts +1 -1
  231. package/dist/esm/functions.js +8 -8
  232. package/dist/esm/gridview/baseComponentGridview.d.ts +98 -98
  233. package/dist/esm/gridview/baseComponentGridview.js +224 -224
  234. package/dist/esm/gridview/basePanelView.d.ts +46 -46
  235. package/dist/esm/gridview/basePanelView.js +70 -70
  236. package/dist/esm/gridview/branchNode.d.ts +46 -46
  237. package/dist/esm/gridview/branchNode.js +218 -218
  238. package/dist/esm/gridview/gridview.d.ts +123 -123
  239. package/dist/esm/gridview/gridview.js +396 -396
  240. package/dist/esm/gridview/gridviewComponent.d.ts +88 -88
  241. package/dist/esm/gridview/gridviewComponent.js +238 -238
  242. package/dist/esm/gridview/gridviewPanel.d.ts +62 -62
  243. package/dist/esm/gridview/gridviewPanel.js +141 -141
  244. package/dist/esm/gridview/leafNode.d.ts +31 -31
  245. package/dist/esm/gridview/leafNode.js +97 -97
  246. package/dist/esm/gridview/options.d.ts +18 -18
  247. package/dist/esm/gridview/options.js +1 -1
  248. package/dist/esm/gridview/types.d.ts +3 -3
  249. package/dist/esm/gridview/types.js +1 -1
  250. package/dist/esm/groupview/dnd.d.ts +5 -5
  251. package/dist/esm/groupview/dnd.js +6 -6
  252. package/dist/esm/groupview/groupPanel.d.ts +41 -41
  253. package/dist/esm/groupview/groupPanel.js +1 -1
  254. package/dist/esm/groupview/groupview.d.ts +154 -154
  255. package/dist/esm/groupview/groupview.js +448 -448
  256. package/dist/esm/groupview/groupviewPanel.d.ts +18 -18
  257. package/dist/esm/groupview/groupviewPanel.js +41 -41
  258. package/dist/esm/groupview/panel/content.d.ts +30 -30
  259. package/dist/esm/groupview/panel/content.js +72 -72
  260. package/dist/esm/groupview/panel/hostedPanel.d.ts +22 -22
  261. package/dist/esm/groupview/panel/hostedPanel.js +43 -43
  262. package/dist/esm/groupview/tab.d.ts +44 -44
  263. package/dist/esm/groupview/tab.js +101 -101
  264. package/dist/esm/groupview/titlebar/tabsContainer.d.ts +66 -66
  265. package/dist/esm/groupview/titlebar/tabsContainer.js +185 -185
  266. package/dist/esm/groupview/types.d.ts +59 -59
  267. package/dist/esm/groupview/types.js +1 -1
  268. package/dist/esm/hostedContainer.d.ts +23 -23
  269. package/dist/esm/hostedContainer.js +63 -63
  270. package/dist/esm/index.d.ts +29 -26
  271. package/dist/esm/index.js +24 -21
  272. package/dist/esm/json.d.ts +1 -1
  273. package/dist/esm/json.js +9 -9
  274. package/dist/esm/lifecycle.d.ts +22 -22
  275. package/dist/esm/lifecycle.js +38 -38
  276. package/dist/esm/math.d.ts +4 -4
  277. package/dist/esm/math.js +10 -10
  278. package/dist/esm/panel/componentFactory.d.ts +8 -8
  279. package/dist/esm/panel/componentFactory.js +24 -24
  280. package/dist/esm/panel/types.d.ts +34 -34
  281. package/dist/esm/panel/types.js +1 -1
  282. package/dist/esm/paneview/defaultPaneviewHeader.d.ts +18 -18
  283. package/dist/esm/paneview/defaultPaneviewHeader.js +37 -37
  284. package/dist/esm/paneview/draggablePaneviewPanel.d.ts +17 -17
  285. package/dist/esm/paneview/draggablePaneviewPanel.js +72 -72
  286. package/dist/esm/paneview/options.d.ts +25 -25
  287. package/dist/esm/paneview/options.js +1 -1
  288. package/dist/esm/paneview/paneview.d.ts +38 -38
  289. package/dist/esm/paneview/paneview.js +144 -144
  290. package/dist/esm/paneview/paneviewComponent.d.ts +113 -113
  291. package/dist/esm/paneview/paneviewComponent.js +247 -247
  292. package/dist/esm/paneview/paneviewPanel.d.ts +85 -85
  293. package/dist/esm/paneview/paneviewPanel.js +183 -183
  294. package/dist/esm/react/deserializer.d.ts +8 -8
  295. package/dist/esm/react/deserializer.js +34 -34
  296. package/dist/esm/react/dockview/components.d.ts +11 -11
  297. package/dist/esm/react/dockview/components.js +54 -54
  298. package/dist/esm/react/dockview/dockview.d.ts +34 -34
  299. package/dist/esm/react/dockview/dockview.js +97 -97
  300. package/dist/esm/react/dockview/reactContentPart.d.ts +47 -47
  301. package/dist/esm/react/dockview/reactContentPart.js +75 -75
  302. package/dist/esm/react/dockview/reactHeaderPart.d.ts +24 -24
  303. package/dist/esm/react/dockview/reactHeaderPart.js +41 -41
  304. package/dist/esm/react/dockview/reactWatermarkPart.d.ts +30 -30
  305. package/dist/esm/react/dockview/reactWatermarkPart.js +56 -56
  306. package/dist/esm/react/dockview/v2/reactContentRenderer.d.ts +30 -30
  307. package/dist/esm/react/dockview/v2/reactContentRenderer.js +72 -72
  308. package/dist/esm/react/dockview/v2/reactGroupPanelView.d.ts +7 -7
  309. package/dist/esm/react/dockview/v2/reactGroupPanelView.js +12 -12
  310. package/dist/esm/react/dockview/v2/webviewContentRenderer.d.ts +18 -18
  311. package/dist/esm/react/dockview/v2/webviewContentRenderer.js +36 -36
  312. package/dist/esm/react/gridview/gridview.d.ts +24 -24
  313. package/dist/esm/react/gridview/gridview.js +58 -58
  314. package/dist/esm/react/gridview/view.d.ts +10 -10
  315. package/dist/esm/react/gridview/view.js +18 -18
  316. package/dist/esm/react/index.d.ts +9 -9
  317. package/dist/esm/react/index.js +9 -9
  318. package/dist/esm/react/paneview/paneview.d.ts +28 -28
  319. package/dist/esm/react/paneview/paneview.js +87 -87
  320. package/dist/esm/react/paneview/view.d.ts +20 -20
  321. package/dist/esm/react/paneview/view.js +35 -35
  322. package/dist/esm/react/react.d.ts +35 -35
  323. package/dist/esm/react/react.js +116 -116
  324. package/dist/esm/react/splitview/splitview.d.ts +24 -24
  325. package/dist/esm/react/splitview/splitview.js +55 -55
  326. package/dist/esm/react/splitview/view.d.ts +10 -10
  327. package/dist/esm/react/splitview/view.js +18 -18
  328. package/dist/esm/react/types.d.ts +7 -7
  329. package/dist/esm/react/types.js +1 -1
  330. package/dist/esm/splitview/core/options.d.ts +26 -26
  331. package/dist/esm/splitview/core/options.js +1 -1
  332. package/dist/esm/splitview/core/splitview.d.ts +124 -124
  333. package/dist/esm/splitview/core/splitview.js +689 -689
  334. package/dist/esm/splitview/core/viewItem.d.ts +25 -25
  335. package/dist/esm/splitview/core/viewItem.js +79 -79
  336. package/dist/esm/splitview/splitviewComponent.d.ts +100 -100
  337. package/dist/esm/splitview/splitviewComponent.js +241 -241
  338. package/dist/esm/splitview/splitviewPanel.d.ts +47 -47
  339. package/dist/esm/splitview/splitviewPanel.js +107 -107
  340. package/dist/esm/types.d.ts +7 -7
  341. package/dist/esm/types.js +1 -1
  342. package/package.json +75 -75
@@ -1,241 +1,241 @@
1
- import { CompositeDisposable, MutableDisposable, } from '../lifecycle';
2
- import { Orientation, Sizing, Splitview, } from './core/splitview';
3
- import { Emitter } from '../events';
4
- import { SplitviewApi } from '../api/component.api';
5
- import { createComponent } from '../panel/componentFactory';
6
- /**
7
- * A high-level implementation of splitview that works using 'panels'
8
- */
9
- export class SplitviewComponent extends CompositeDisposable {
10
- constructor(element, options) {
11
- super();
12
- this.element = element;
13
- this._disposable = new MutableDisposable();
14
- this.panels = new Map();
15
- this._onDidLayoutChange = new Emitter();
16
- this.onDidLayoutChange = this._onDidLayoutChange.event;
17
- this._options = options;
18
- if (!options.components) {
19
- options.components = {};
20
- }
21
- if (!options.frameworkComponents) {
22
- options.frameworkComponents = {};
23
- }
24
- this.splitview = new Splitview(this.element, options);
25
- this.addDisposables(this._disposable);
26
- }
27
- get options() {
28
- return this._options;
29
- }
30
- get orientation() {
31
- return this.splitview.orientation;
32
- }
33
- get splitview() {
34
- return this._splitview;
35
- }
36
- set splitview(value) {
37
- this._splitview = value;
38
- this._disposable.value = new CompositeDisposable(this._splitview.onDidSashEnd(() => {
39
- this._onDidLayoutChange.fire(undefined);
40
- }));
41
- }
42
- get minimumSize() {
43
- return this.splitview.minimumSize;
44
- }
45
- get maximumSize() {
46
- return this.splitview.maximumSize;
47
- }
48
- get height() {
49
- return this.splitview.orientation === Orientation.HORIZONTAL
50
- ? this.splitview.orthogonalSize
51
- : this.splitview.size;
52
- }
53
- get width() {
54
- return this.splitview.orientation === Orientation.HORIZONTAL
55
- ? this.splitview.size
56
- : this.splitview.orthogonalSize;
57
- }
58
- get length() {
59
- return this.panels.size;
60
- }
61
- updateOptions(options) {
62
- const hasOrientationChanged = typeof options.orientation === 'string' &&
63
- this.options.orientation !== options.orientation;
64
- this._options = Object.assign(Object.assign({}, this.options), options);
65
- if (hasOrientationChanged) {
66
- this.splitview.orientation = options.orientation;
67
- }
68
- this.splitview.layout(this.splitview.size, this.splitview.orthogonalSize);
69
- }
70
- focus() {
71
- var _a;
72
- (_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.focus();
73
- }
74
- movePanel(from, to) {
75
- this.splitview.moveView(from, to);
76
- }
77
- setVisible(panel, visible) {
78
- const index = this.getPanels().indexOf(panel);
79
- this.splitview.setViewVisible(index, visible);
80
- }
81
- setActive(view, skipFocus) {
82
- this._activePanel = view;
83
- this.getPanels()
84
- .filter((v) => v !== view)
85
- .forEach((v) => {
86
- v.api._onDidActiveChange.fire({ isActive: false });
87
- if (!skipFocus) {
88
- v.focus();
89
- }
90
- });
91
- view.api._onDidActiveChange.fire({ isActive: true });
92
- if (!skipFocus) {
93
- view.focus();
94
- }
95
- }
96
- getPanels() {
97
- return this.splitview.getViews();
98
- }
99
- removePanel(panel, sizing) {
100
- const disposable = this.panels.get(panel.id);
101
- disposable === null || disposable === void 0 ? void 0 : disposable.dispose();
102
- this.panels.delete(panel.id);
103
- const index = this.getPanels().findIndex((_) => _ === panel);
104
- this.splitview.removeView(index, sizing);
105
- const panels = this.getPanels();
106
- if (panels.length > 0) {
107
- this.setActive(panels[panels.length - 1]);
108
- }
109
- }
110
- getPanel(id) {
111
- return this.getPanels().find((view) => view.id === id);
112
- }
113
- addPanel(options) {
114
- if (this.panels.has(options.id)) {
115
- throw new Error(`panel ${options.id} already exists`);
116
- }
117
- const view = createComponent(options.id, options.component, this.options.components || {}, this.options.frameworkComponents || {}, this.options.frameworkWrapper
118
- ? {
119
- createComponent: this.options.frameworkWrapper.createComponent,
120
- }
121
- : undefined);
122
- view.orientation = this.splitview.orientation;
123
- view.init({
124
- params: options.params || {},
125
- minimumSize: options.minimumSize,
126
- maximumSize: options.maximumSize,
127
- snap: options.snap,
128
- priority: options.priority,
129
- containerApi: new SplitviewApi(this),
130
- });
131
- const size = typeof options.size === 'number' ? options.size : Sizing.Distribute;
132
- const index = typeof options.index === 'number' ? options.index : undefined;
133
- this.splitview.addView(view, size, index);
134
- this.doAddView(view);
135
- this.setActive(view);
136
- }
137
- /**
138
- * Resize the layout to fit the parent container
139
- */
140
- resizeToFit() {
141
- if (!this.element.parentElement) {
142
- return;
143
- }
144
- const { width, height } = this.element.parentElement.getBoundingClientRect();
145
- this.layout(width, height);
146
- }
147
- layout(width, height) {
148
- const [size, orthogonalSize] = this.splitview.orientation === Orientation.HORIZONTAL
149
- ? [width, height]
150
- : [height, width];
151
- this.splitview.layout(size, orthogonalSize);
152
- }
153
- doAddView(view) {
154
- const disposable = view.api.onDidFocusChange((event) => {
155
- if (!event.isFocused) {
156
- return;
157
- }
158
- this.setActive(view, true);
159
- });
160
- this.panels.set(view.id, disposable);
161
- }
162
- toJSON() {
163
- var _a;
164
- const views = this.splitview
165
- .getViews()
166
- .map((view, i) => {
167
- const size = this.splitview.getViewSize(i);
168
- return {
169
- size,
170
- data: view.toJSON(),
171
- snap: !!view.snap,
172
- priority: view.priority,
173
- };
174
- });
175
- return {
176
- views,
177
- activeView: (_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.id,
178
- size: this.splitview.size,
179
- orientation: this.splitview.orientation,
180
- };
181
- }
182
- fromJSON(serializedSplitview, deferComponentLayout = false) {
183
- const { views, orientation, size, activeView } = serializedSplitview;
184
- this.splitview.dispose();
185
- const queue = [];
186
- this.splitview = new Splitview(this.element, {
187
- orientation,
188
- proportionalLayout: this.options.proportionalLayout,
189
- descriptor: {
190
- size,
191
- views: views.map((view) => {
192
- const data = view.data;
193
- if (this.panels.has(data.id)) {
194
- throw new Error(`panel ${data.id} already exists`);
195
- }
196
- const panel = createComponent(data.id, data.component, this.options.components || {}, this.options.frameworkComponents || {}, this.options.frameworkWrapper
197
- ? {
198
- createComponent: this.options.frameworkWrapper
199
- .createComponent,
200
- }
201
- : undefined);
202
- queue.push(() => {
203
- panel.init({
204
- params: data.params || {},
205
- minimumSize: data.minimumSize,
206
- maximumSize: data.maximumSize,
207
- snap: view.snap,
208
- priority: view.priority,
209
- containerApi: new SplitviewApi(this),
210
- });
211
- });
212
- panel.orientation = orientation;
213
- this.doAddView(panel);
214
- return { size: view.size, view: panel };
215
- }),
216
- },
217
- });
218
- this.layout(this.width, this.height);
219
- if (deferComponentLayout) {
220
- setTimeout(() => {
221
- queue.forEach((f) => f());
222
- }, 0);
223
- }
224
- else {
225
- queue.forEach((f) => f());
226
- }
227
- if (typeof activeView === 'string') {
228
- const panel = this.getPanel(activeView);
229
- if (panel) {
230
- this.setActive(panel);
231
- }
232
- }
233
- }
234
- dispose() {
235
- Array.from(this.panels.values()).forEach((value) => {
236
- value.dispose();
237
- });
238
- this.panels.clear();
239
- super.dispose();
240
- }
241
- }
1
+ import { CompositeDisposable, MutableDisposable, } from '../lifecycle';
2
+ import { Orientation, Sizing, Splitview, } from './core/splitview';
3
+ import { Emitter } from '../events';
4
+ import { SplitviewApi } from '../api/component.api';
5
+ import { createComponent } from '../panel/componentFactory';
6
+ /**
7
+ * A high-level implementation of splitview that works using 'panels'
8
+ */
9
+ export class SplitviewComponent extends CompositeDisposable {
10
+ constructor(element, options) {
11
+ super();
12
+ this.element = element;
13
+ this._disposable = new MutableDisposable();
14
+ this.panels = new Map();
15
+ this._onDidLayoutChange = new Emitter();
16
+ this.onDidLayoutChange = this._onDidLayoutChange.event;
17
+ this._options = options;
18
+ if (!options.components) {
19
+ options.components = {};
20
+ }
21
+ if (!options.frameworkComponents) {
22
+ options.frameworkComponents = {};
23
+ }
24
+ this.splitview = new Splitview(this.element, options);
25
+ this.addDisposables(this._disposable);
26
+ }
27
+ get options() {
28
+ return this._options;
29
+ }
30
+ get orientation() {
31
+ return this.splitview.orientation;
32
+ }
33
+ get splitview() {
34
+ return this._splitview;
35
+ }
36
+ set splitview(value) {
37
+ this._splitview = value;
38
+ this._disposable.value = new CompositeDisposable(this._splitview.onDidSashEnd(() => {
39
+ this._onDidLayoutChange.fire(undefined);
40
+ }));
41
+ }
42
+ get minimumSize() {
43
+ return this.splitview.minimumSize;
44
+ }
45
+ get maximumSize() {
46
+ return this.splitview.maximumSize;
47
+ }
48
+ get height() {
49
+ return this.splitview.orientation === Orientation.HORIZONTAL
50
+ ? this.splitview.orthogonalSize
51
+ : this.splitview.size;
52
+ }
53
+ get width() {
54
+ return this.splitview.orientation === Orientation.HORIZONTAL
55
+ ? this.splitview.size
56
+ : this.splitview.orthogonalSize;
57
+ }
58
+ get length() {
59
+ return this.panels.size;
60
+ }
61
+ updateOptions(options) {
62
+ const hasOrientationChanged = typeof options.orientation === 'string' &&
63
+ this.options.orientation !== options.orientation;
64
+ this._options = Object.assign(Object.assign({}, this.options), options);
65
+ if (hasOrientationChanged) {
66
+ this.splitview.orientation = options.orientation;
67
+ }
68
+ this.splitview.layout(this.splitview.size, this.splitview.orthogonalSize);
69
+ }
70
+ focus() {
71
+ var _a;
72
+ (_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.focus();
73
+ }
74
+ movePanel(from, to) {
75
+ this.splitview.moveView(from, to);
76
+ }
77
+ setVisible(panel, visible) {
78
+ const index = this.getPanels().indexOf(panel);
79
+ this.splitview.setViewVisible(index, visible);
80
+ }
81
+ setActive(view, skipFocus) {
82
+ this._activePanel = view;
83
+ this.getPanels()
84
+ .filter((v) => v !== view)
85
+ .forEach((v) => {
86
+ v.api._onDidActiveChange.fire({ isActive: false });
87
+ if (!skipFocus) {
88
+ v.focus();
89
+ }
90
+ });
91
+ view.api._onDidActiveChange.fire({ isActive: true });
92
+ if (!skipFocus) {
93
+ view.focus();
94
+ }
95
+ }
96
+ getPanels() {
97
+ return this.splitview.getViews();
98
+ }
99
+ removePanel(panel, sizing) {
100
+ const disposable = this.panels.get(panel.id);
101
+ disposable === null || disposable === void 0 ? void 0 : disposable.dispose();
102
+ this.panels.delete(panel.id);
103
+ const index = this.getPanels().findIndex((_) => _ === panel);
104
+ this.splitview.removeView(index, sizing);
105
+ const panels = this.getPanels();
106
+ if (panels.length > 0) {
107
+ this.setActive(panels[panels.length - 1]);
108
+ }
109
+ }
110
+ getPanel(id) {
111
+ return this.getPanels().find((view) => view.id === id);
112
+ }
113
+ addPanel(options) {
114
+ if (this.panels.has(options.id)) {
115
+ throw new Error(`panel ${options.id} already exists`);
116
+ }
117
+ const view = createComponent(options.id, options.component, this.options.components || {}, this.options.frameworkComponents || {}, this.options.frameworkWrapper
118
+ ? {
119
+ createComponent: this.options.frameworkWrapper.createComponent,
120
+ }
121
+ : undefined);
122
+ view.orientation = this.splitview.orientation;
123
+ view.init({
124
+ params: options.params || {},
125
+ minimumSize: options.minimumSize,
126
+ maximumSize: options.maximumSize,
127
+ snap: options.snap,
128
+ priority: options.priority,
129
+ containerApi: new SplitviewApi(this),
130
+ });
131
+ const size = typeof options.size === 'number' ? options.size : Sizing.Distribute;
132
+ const index = typeof options.index === 'number' ? options.index : undefined;
133
+ this.splitview.addView(view, size, index);
134
+ this.doAddView(view);
135
+ this.setActive(view);
136
+ }
137
+ /**
138
+ * Resize the layout to fit the parent container
139
+ */
140
+ resizeToFit() {
141
+ if (!this.element.parentElement) {
142
+ return;
143
+ }
144
+ const { width, height } = this.element.parentElement.getBoundingClientRect();
145
+ this.layout(width, height);
146
+ }
147
+ layout(width, height) {
148
+ const [size, orthogonalSize] = this.splitview.orientation === Orientation.HORIZONTAL
149
+ ? [width, height]
150
+ : [height, width];
151
+ this.splitview.layout(size, orthogonalSize);
152
+ }
153
+ doAddView(view) {
154
+ const disposable = view.api.onDidFocusChange((event) => {
155
+ if (!event.isFocused) {
156
+ return;
157
+ }
158
+ this.setActive(view, true);
159
+ });
160
+ this.panels.set(view.id, disposable);
161
+ }
162
+ toJSON() {
163
+ var _a;
164
+ const views = this.splitview
165
+ .getViews()
166
+ .map((view, i) => {
167
+ const size = this.splitview.getViewSize(i);
168
+ return {
169
+ size,
170
+ data: view.toJSON(),
171
+ snap: !!view.snap,
172
+ priority: view.priority,
173
+ };
174
+ });
175
+ return {
176
+ views,
177
+ activeView: (_a = this._activePanel) === null || _a === void 0 ? void 0 : _a.id,
178
+ size: this.splitview.size,
179
+ orientation: this.splitview.orientation,
180
+ };
181
+ }
182
+ fromJSON(serializedSplitview, deferComponentLayout = false) {
183
+ const { views, orientation, size, activeView } = serializedSplitview;
184
+ this.splitview.dispose();
185
+ const queue = [];
186
+ this.splitview = new Splitview(this.element, {
187
+ orientation,
188
+ proportionalLayout: this.options.proportionalLayout,
189
+ descriptor: {
190
+ size,
191
+ views: views.map((view) => {
192
+ const data = view.data;
193
+ if (this.panels.has(data.id)) {
194
+ throw new Error(`panel ${data.id} already exists`);
195
+ }
196
+ const panel = createComponent(data.id, data.component, this.options.components || {}, this.options.frameworkComponents || {}, this.options.frameworkWrapper
197
+ ? {
198
+ createComponent: this.options.frameworkWrapper
199
+ .createComponent,
200
+ }
201
+ : undefined);
202
+ queue.push(() => {
203
+ panel.init({
204
+ params: data.params || {},
205
+ minimumSize: data.minimumSize,
206
+ maximumSize: data.maximumSize,
207
+ snap: view.snap,
208
+ priority: view.priority,
209
+ containerApi: new SplitviewApi(this),
210
+ });
211
+ });
212
+ panel.orientation = orientation;
213
+ this.doAddView(panel);
214
+ return { size: view.size, view: panel };
215
+ }),
216
+ },
217
+ });
218
+ this.layout(this.width, this.height);
219
+ if (deferComponentLayout) {
220
+ setTimeout(() => {
221
+ queue.forEach((f) => f());
222
+ }, 0);
223
+ }
224
+ else {
225
+ queue.forEach((f) => f());
226
+ }
227
+ if (typeof activeView === 'string') {
228
+ const panel = this.getPanel(activeView);
229
+ if (panel) {
230
+ this.setActive(panel);
231
+ }
232
+ }
233
+ }
234
+ dispose() {
235
+ Array.from(this.panels.values()).forEach((value) => {
236
+ value.dispose();
237
+ });
238
+ this.panels.clear();
239
+ super.dispose();
240
+ }
241
+ }
@@ -1,47 +1,47 @@
1
- import { ISerializableView, PanelViewInitParameters } from './core/options';
2
- import { BasePanelView, BasePanelViewExported } from '../gridview/basePanelView';
3
- import { SplitviewPanelApiImpl } from '../api/splitviewPanelApi';
4
- import { LayoutPriority, Orientation } from './core/splitview';
5
- import { Event } from '../events';
6
- export interface ISplitviewPanel extends BasePanelViewExported<SplitviewPanelApiImpl> {
7
- readonly priority: LayoutPriority | undefined;
8
- readonly minimumSize: number;
9
- readonly maximumSize: number;
10
- readonly snap: boolean;
11
- readonly orientation: Orientation;
12
- }
13
- export declare abstract class SplitviewPanel extends BasePanelView<SplitviewPanelApiImpl> implements ISerializableView, ISplitviewPanel {
14
- private _evaluatedMinimumSize;
15
- private _evaluatedMaximumSize;
16
- private _minimumSize;
17
- private _maximumSize;
18
- private _priority?;
19
- private _snap;
20
- private _orientation?;
21
- private readonly _onDidChange;
22
- readonly onDidChange: Event<number | undefined>;
23
- get priority(): LayoutPriority | undefined;
24
- set orientation(value: Orientation);
25
- get orientation(): Orientation;
26
- get minimumSize(): number;
27
- get maximumSize(): number;
28
- get snap(): boolean;
29
- constructor(id: string, componentName: string);
30
- setVisible(isVisible: boolean): void;
31
- setActive(isActive: boolean): void;
32
- layout(size: number, orthogonalSize: number): void;
33
- init(parameters: PanelViewInitParameters): void;
34
- toJSON(): {
35
- minimumSize: number | undefined;
36
- maximumSize: number | undefined;
37
- id: string;
38
- component: string;
39
- params?: {
40
- [key: string]: any;
41
- } | undefined;
42
- state?: {
43
- [key: string]: any;
44
- } | undefined;
45
- };
46
- private updateConstraints;
47
- }
1
+ import { ISerializableView, PanelViewInitParameters } from './core/options';
2
+ import { BasePanelView, BasePanelViewExported } from '../gridview/basePanelView';
3
+ import { SplitviewPanelApiImpl } from '../api/splitviewPanelApi';
4
+ import { LayoutPriority, Orientation } from './core/splitview';
5
+ import { Event } from '../events';
6
+ export interface ISplitviewPanel extends BasePanelViewExported<SplitviewPanelApiImpl> {
7
+ readonly priority: LayoutPriority | undefined;
8
+ readonly minimumSize: number;
9
+ readonly maximumSize: number;
10
+ readonly snap: boolean;
11
+ readonly orientation: Orientation;
12
+ }
13
+ export declare abstract class SplitviewPanel extends BasePanelView<SplitviewPanelApiImpl> implements ISerializableView, ISplitviewPanel {
14
+ private _evaluatedMinimumSize;
15
+ private _evaluatedMaximumSize;
16
+ private _minimumSize;
17
+ private _maximumSize;
18
+ private _priority?;
19
+ private _snap;
20
+ private _orientation?;
21
+ private readonly _onDidChange;
22
+ readonly onDidChange: Event<number | undefined>;
23
+ get priority(): LayoutPriority | undefined;
24
+ set orientation(value: Orientation);
25
+ get orientation(): Orientation;
26
+ get minimumSize(): number;
27
+ get maximumSize(): number;
28
+ get snap(): boolean;
29
+ constructor(id: string, componentName: string);
30
+ setVisible(isVisible: boolean): void;
31
+ setActive(isActive: boolean): void;
32
+ layout(size: number, orthogonalSize: number): void;
33
+ init(parameters: PanelViewInitParameters): void;
34
+ toJSON(): {
35
+ minimumSize: number | undefined;
36
+ maximumSize: number | undefined;
37
+ id: string;
38
+ component: string;
39
+ params?: {
40
+ [key: string]: any;
41
+ } | undefined;
42
+ state?: {
43
+ [key: string]: any;
44
+ } | undefined;
45
+ };
46
+ private updateConstraints;
47
+ }