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,116 +1,116 @@
1
- import * as React from 'react';
2
- import * as ReactDOM from 'react-dom';
3
- import { sequentialNumberGenerator } from '../math';
4
- /**
5
- * This component is intended to interface between vanilla-js and React hence we need to be
6
- * creative in how we update props.
7
- * A ref of the component is exposed with an update method; which when called stores the props
8
- * as a ref within this component and forcefully triggers a re-render of the component using
9
- * the ref of props we just set on the renderered component as the props passed to the inner
10
- * component
11
- */
12
- const ReactComponentBridge = (props, ref) => {
13
- const [_, triggerRender] = React.useState();
14
- const _props = React.useRef(props.componentProps);
15
- React.useImperativeHandle(ref, () => ({
16
- update: (componentProps) => {
17
- _props.current = Object.assign(Object.assign({}, _props.current), componentProps);
18
- /**
19
- * setting a arbitrary piece of state within this component will
20
- * trigger a re-render.
21
- * we use this rather than updating through a prop since we can
22
- * pass a ref into the vanilla-js world.
23
- */
24
- triggerRender(Date.now());
25
- },
26
- }), []);
27
- return React.createElement(props.component, _props.current);
28
- };
29
- ReactComponentBridge.displayName = 'DockviewReactJsBridge';
30
- /**
31
- * Since we are storing the React.Portal references in a rendered array they
32
- * require a key property like any other React element rendered in an array
33
- * to prevent excessive re-rendering
34
- */
35
- const uniquePortalKeyGenerator = sequentialNumberGenerator();
36
- export const ReactPartContext = React.createContext({});
37
- export class ReactPart {
38
- constructor(parent, portalStore, component, parameters, context) {
39
- this.parent = parent;
40
- this.portalStore = portalStore;
41
- this.component = component;
42
- this.parameters = parameters;
43
- this.context = context;
44
- this.disposed = false;
45
- this.createPortal();
46
- }
47
- update(props) {
48
- var _a;
49
- if (this.disposed) {
50
- throw new Error('invalid operation: resource is already disposed');
51
- }
52
- (_a = this.componentInstance) === null || _a === void 0 ? void 0 : _a.update(props);
53
- }
54
- createPortal() {
55
- if (this.disposed) {
56
- throw new Error('invalid operation: resource is already disposed');
57
- }
58
- // TODO use a better check for isReactFunctionalComponent
59
- if (typeof this.component !== 'function') {
60
- /**
61
- * we know this isn't a React.FunctionComponent so throw an error here.
62
- * if we do not intercept this the React library will throw a very obsure error
63
- * for the same reason, at least at this point we will emit a sensible stacktrace.
64
- */
65
- throw new Error('invalid operation: only functional components are supported');
66
- }
67
- const bridgeComponent = React.createElement(React.forwardRef(ReactComponentBridge), {
68
- component: this
69
- .component,
70
- componentProps: this.parameters,
71
- ref: (element) => {
72
- this.componentInstance = element;
73
- },
74
- });
75
- const node = this.context
76
- ? React.createElement(ReactPartContext.Provider, { value: this.context }, bridgeComponent)
77
- : bridgeComponent;
78
- const portal = ReactDOM.createPortal(node, this.parent, uniquePortalKeyGenerator.next());
79
- this.ref = {
80
- portal,
81
- disposable: this.portalStore.addPortal(portal),
82
- };
83
- }
84
- dispose() {
85
- var _a;
86
- (_a = this.ref) === null || _a === void 0 ? void 0 : _a.disposable.dispose();
87
- this.disposed = true;
88
- }
89
- }
90
- /**
91
- * A React Hook that returns an array of portals to be rendered by the user of this hook
92
- * and a disposable function to add a portal. Calling dispose removes this portal from the
93
- * portal array
94
- */
95
- export const usePortalsLifecycle = () => {
96
- const [portals, setPortals] = React.useState([]);
97
- React.useDebugValue(`Portal count: ${portals.length}`);
98
- const addPortal = React.useCallback((portal) => {
99
- setPortals((existingPortals) => [...existingPortals, portal]);
100
- let disposed = false;
101
- return {
102
- dispose: () => {
103
- if (disposed) {
104
- throw new Error('invalid operation: resource already disposed');
105
- }
106
- disposed = true;
107
- setPortals((existingPortals) => existingPortals.filter((p) => p !== portal));
108
- },
109
- };
110
- }, []);
111
- return [portals, addPortal];
112
- };
113
- // it does the job...
114
- export function isReactElement(element) {
115
- return element === null || element === void 0 ? void 0 : element.type;
116
- }
1
+ import * as React from 'react';
2
+ import * as ReactDOM from 'react-dom';
3
+ import { sequentialNumberGenerator } from '../math';
4
+ /**
5
+ * This component is intended to interface between vanilla-js and React hence we need to be
6
+ * creative in how we update props.
7
+ * A ref of the component is exposed with an update method; which when called stores the props
8
+ * as a ref within this component and forcefully triggers a re-render of the component using
9
+ * the ref of props we just set on the renderered component as the props passed to the inner
10
+ * component
11
+ */
12
+ const ReactComponentBridge = (props, ref) => {
13
+ const [_, triggerRender] = React.useState();
14
+ const _props = React.useRef(props.componentProps);
15
+ React.useImperativeHandle(ref, () => ({
16
+ update: (componentProps) => {
17
+ _props.current = Object.assign(Object.assign({}, _props.current), componentProps);
18
+ /**
19
+ * setting a arbitrary piece of state within this component will
20
+ * trigger a re-render.
21
+ * we use this rather than updating through a prop since we can
22
+ * pass a ref into the vanilla-js world.
23
+ */
24
+ triggerRender(Date.now());
25
+ },
26
+ }), []);
27
+ return React.createElement(props.component, _props.current);
28
+ };
29
+ ReactComponentBridge.displayName = 'DockviewReactJsBridge';
30
+ /**
31
+ * Since we are storing the React.Portal references in a rendered array they
32
+ * require a key property like any other React element rendered in an array
33
+ * to prevent excessive re-rendering
34
+ */
35
+ const uniquePortalKeyGenerator = sequentialNumberGenerator();
36
+ export const ReactPartContext = React.createContext({});
37
+ export class ReactPart {
38
+ constructor(parent, portalStore, component, parameters, context) {
39
+ this.parent = parent;
40
+ this.portalStore = portalStore;
41
+ this.component = component;
42
+ this.parameters = parameters;
43
+ this.context = context;
44
+ this.disposed = false;
45
+ this.createPortal();
46
+ }
47
+ update(props) {
48
+ var _a;
49
+ if (this.disposed) {
50
+ throw new Error('invalid operation: resource is already disposed');
51
+ }
52
+ (_a = this.componentInstance) === null || _a === void 0 ? void 0 : _a.update(props);
53
+ }
54
+ createPortal() {
55
+ if (this.disposed) {
56
+ throw new Error('invalid operation: resource is already disposed');
57
+ }
58
+ // TODO use a better check for isReactFunctionalComponent
59
+ if (typeof this.component !== 'function') {
60
+ /**
61
+ * we know this isn't a React.FunctionComponent so throw an error here.
62
+ * if we do not intercept this the React library will throw a very obsure error
63
+ * for the same reason, at least at this point we will emit a sensible stacktrace.
64
+ */
65
+ throw new Error('invalid operation: only functional components are supported');
66
+ }
67
+ const bridgeComponent = React.createElement(React.forwardRef(ReactComponentBridge), {
68
+ component: this
69
+ .component,
70
+ componentProps: this.parameters,
71
+ ref: (element) => {
72
+ this.componentInstance = element;
73
+ },
74
+ });
75
+ const node = this.context
76
+ ? React.createElement(ReactPartContext.Provider, { value: this.context }, bridgeComponent)
77
+ : bridgeComponent;
78
+ const portal = ReactDOM.createPortal(node, this.parent, uniquePortalKeyGenerator.next());
79
+ this.ref = {
80
+ portal,
81
+ disposable: this.portalStore.addPortal(portal),
82
+ };
83
+ }
84
+ dispose() {
85
+ var _a;
86
+ (_a = this.ref) === null || _a === void 0 ? void 0 : _a.disposable.dispose();
87
+ this.disposed = true;
88
+ }
89
+ }
90
+ /**
91
+ * A React Hook that returns an array of portals to be rendered by the user of this hook
92
+ * and a disposable function to add a portal. Calling dispose removes this portal from the
93
+ * portal array
94
+ */
95
+ export const usePortalsLifecycle = () => {
96
+ const [portals, setPortals] = React.useState([]);
97
+ React.useDebugValue(`Portal count: ${portals.length}`);
98
+ const addPortal = React.useCallback((portal) => {
99
+ setPortals((existingPortals) => [...existingPortals, portal]);
100
+ let disposed = false;
101
+ return {
102
+ dispose: () => {
103
+ if (disposed) {
104
+ throw new Error('invalid operation: resource already disposed');
105
+ }
106
+ disposed = true;
107
+ setPortals((existingPortals) => existingPortals.filter((p) => p !== portal));
108
+ },
109
+ };
110
+ }, []);
111
+ return [portals, addPortal];
112
+ };
113
+ // it does the job...
114
+ export function isReactElement(element) {
115
+ return element === null || element === void 0 ? void 0 : element.type;
116
+ }
@@ -1,24 +1,24 @@
1
- import * as React from 'react';
2
- import { SplitviewApi } from '../../api/component.api';
3
- import { SplitviewPanelApi } from '../../api/splitviewPanelApi';
4
- import { Orientation } from '../../splitview/core/splitview';
5
- import { PanelCollection, PanelParameters } from '../types';
6
- export interface SplitviewReadyEvent {
7
- api: SplitviewApi;
8
- }
9
- export interface ISplitviewPanelProps<T extends {
10
- [index: string]: any;
11
- } = any> extends PanelParameters<T> {
12
- api: SplitviewPanelApi;
13
- containerApi: SplitviewApi;
14
- }
15
- export interface ISplitviewReactProps {
16
- orientation: Orientation;
17
- onReady?: (event: SplitviewReadyEvent) => void;
18
- components: PanelCollection<ISplitviewPanelProps>;
19
- proportionalLayout?: boolean;
20
- hideBorders?: boolean;
21
- className?: string;
22
- disableAutoResizing?: boolean;
23
- }
24
- export declare const SplitviewReact: React.ForwardRefExoticComponent<ISplitviewReactProps & React.RefAttributes<HTMLDivElement>>;
1
+ import * as React from 'react';
2
+ import { SplitviewApi } from '../../api/component.api';
3
+ import { SplitviewPanelApi } from '../../api/splitviewPanelApi';
4
+ import { Orientation } from '../../splitview/core/splitview';
5
+ import { PanelCollection, PanelParameters } from '../types';
6
+ export interface SplitviewReadyEvent {
7
+ api: SplitviewApi;
8
+ }
9
+ export interface ISplitviewPanelProps<T extends {
10
+ [index: string]: any;
11
+ } = any> extends PanelParameters<T> {
12
+ api: SplitviewPanelApi;
13
+ containerApi: SplitviewApi;
14
+ }
15
+ export interface ISplitviewReactProps {
16
+ orientation: Orientation;
17
+ onReady?: (event: SplitviewReadyEvent) => void;
18
+ components: PanelCollection<ISplitviewPanelProps>;
19
+ proportionalLayout?: boolean;
20
+ hideBorders?: boolean;
21
+ className?: string;
22
+ disableAutoResizing?: boolean;
23
+ }
24
+ export declare const SplitviewReact: React.ForwardRefExoticComponent<ISplitviewReactProps & React.RefAttributes<HTMLDivElement>>;
@@ -1,55 +1,55 @@
1
- import * as React from 'react';
2
- import { SplitviewApi } from '../../api/component.api';
3
- import { SplitviewComponent, } from '../../splitview/splitviewComponent';
4
- import { usePortalsLifecycle } from '../react';
5
- import { ReactPanelView } from './view';
6
- import { watchElementResize } from '../../dom';
7
- export const SplitviewReact = React.forwardRef((props, ref) => {
8
- const domRef = React.useRef(null);
9
- const splitviewRef = React.useRef();
10
- const [portals, addPortal] = usePortalsLifecycle();
11
- React.useImperativeHandle(ref, () => domRef.current, []);
12
- React.useEffect(() => {
13
- if (props.disableAutoResizing) {
14
- return () => {
15
- //
16
- };
17
- }
18
- const watcher = watchElementResize(domRef.current, (entry) => {
19
- var _a;
20
- const { width, height } = entry.contentRect;
21
- (_a = splitviewRef.current) === null || _a === void 0 ? void 0 : _a.layout(width, height);
22
- });
23
- return () => {
24
- watcher.dispose();
25
- };
26
- }, [props.disableAutoResizing]);
27
- React.useEffect(() => {
28
- const splitview = new SplitviewComponent(domRef.current, {
29
- orientation: props.orientation,
30
- frameworkComponents: props.components,
31
- frameworkWrapper: {
32
- createComponent: (id, componentId, component) => {
33
- return new ReactPanelView(id, componentId, component, {
34
- addPortal,
35
- });
36
- },
37
- },
38
- proportionalLayout: props.proportionalLayout,
39
- styles: props.hideBorders
40
- ? { separatorBorder: 'transparent' }
41
- : undefined,
42
- });
43
- const { clientWidth, clientHeight } = domRef.current;
44
- splitview.layout(clientWidth, clientHeight);
45
- if (props.onReady) {
46
- props.onReady({ api: new SplitviewApi(splitview) });
47
- }
48
- splitviewRef.current = splitview;
49
- return () => {
50
- splitview.dispose();
51
- };
52
- }, []);
53
- return (React.createElement("div", { className: props.className, style: { height: '100%', width: '100%' }, ref: domRef }, portals));
54
- });
55
- SplitviewReact.displayName = 'SplitviewComponent';
1
+ import * as React from 'react';
2
+ import { SplitviewApi } from '../../api/component.api';
3
+ import { SplitviewComponent, } from '../../splitview/splitviewComponent';
4
+ import { usePortalsLifecycle } from '../react';
5
+ import { ReactPanelView } from './view';
6
+ import { watchElementResize } from '../../dom';
7
+ export const SplitviewReact = React.forwardRef((props, ref) => {
8
+ const domRef = React.useRef(null);
9
+ const splitviewRef = React.useRef();
10
+ const [portals, addPortal] = usePortalsLifecycle();
11
+ React.useImperativeHandle(ref, () => domRef.current, []);
12
+ React.useEffect(() => {
13
+ if (props.disableAutoResizing) {
14
+ return () => {
15
+ //
16
+ };
17
+ }
18
+ const watcher = watchElementResize(domRef.current, (entry) => {
19
+ var _a;
20
+ const { width, height } = entry.contentRect;
21
+ (_a = splitviewRef.current) === null || _a === void 0 ? void 0 : _a.layout(width, height);
22
+ });
23
+ return () => {
24
+ watcher.dispose();
25
+ };
26
+ }, [props.disableAutoResizing]);
27
+ React.useEffect(() => {
28
+ const splitview = new SplitviewComponent(domRef.current, {
29
+ orientation: props.orientation,
30
+ frameworkComponents: props.components,
31
+ frameworkWrapper: {
32
+ createComponent: (id, componentId, component) => {
33
+ return new ReactPanelView(id, componentId, component, {
34
+ addPortal,
35
+ });
36
+ },
37
+ },
38
+ proportionalLayout: props.proportionalLayout,
39
+ styles: props.hideBorders
40
+ ? { separatorBorder: 'transparent' }
41
+ : undefined,
42
+ });
43
+ const { clientWidth, clientHeight } = domRef.current;
44
+ splitview.layout(clientWidth, clientHeight);
45
+ if (props.onReady) {
46
+ props.onReady({ api: new SplitviewApi(splitview) });
47
+ }
48
+ splitviewRef.current = splitview;
49
+ return () => {
50
+ splitview.dispose();
51
+ };
52
+ }, []);
53
+ return (React.createElement("div", { className: props.className, style: { height: '100%', width: '100%' }, ref: domRef }, portals));
54
+ });
55
+ SplitviewReact.displayName = 'SplitviewComponent';
@@ -1,10 +1,10 @@
1
- /// <reference types="react" />
2
- import { SplitviewPanel } from '../../splitview/splitviewPanel';
3
- import { ReactPart, ReactPortalStore } from '../react';
4
- import { ISplitviewPanelProps } from './splitview';
5
- export declare class ReactPanelView extends SplitviewPanel {
6
- private readonly reactComponent;
7
- private readonly reactPortalStore;
8
- constructor(id: string, component: string, reactComponent: React.FunctionComponent<ISplitviewPanelProps>, reactPortalStore: ReactPortalStore);
9
- getComponent(): ReactPart<ISplitviewPanelProps<any>, {}>;
10
- }
1
+ /// <reference types="react" />
2
+ import { SplitviewPanel } from '../../splitview/splitviewPanel';
3
+ import { ReactPart, ReactPortalStore } from '../react';
4
+ import { ISplitviewPanelProps } from './splitview';
5
+ export declare class ReactPanelView extends SplitviewPanel {
6
+ private readonly reactComponent;
7
+ private readonly reactPortalStore;
8
+ constructor(id: string, component: string, reactComponent: React.FunctionComponent<ISplitviewPanelProps>, reactPortalStore: ReactPortalStore);
9
+ getComponent(): ReactPart<ISplitviewPanelProps<any>, {}>;
10
+ }
@@ -1,18 +1,18 @@
1
- import { SplitviewPanel } from '../../splitview/splitviewPanel';
2
- import { ReactPart } from '../react';
3
- export class ReactPanelView extends SplitviewPanel {
4
- constructor(id, component, reactComponent, reactPortalStore) {
5
- super(id, component);
6
- this.reactComponent = reactComponent;
7
- this.reactPortalStore = reactPortalStore;
8
- }
9
- getComponent() {
10
- var _a;
11
- return new ReactPart(this.element, this.reactPortalStore, this.reactComponent, {
12
- params: ((_a = this.params) === null || _a === void 0 ? void 0 : _a.params) || {},
13
- api: this.api,
14
- containerApi: this.params
15
- .containerApi,
16
- });
17
- }
18
- }
1
+ import { SplitviewPanel } from '../../splitview/splitviewPanel';
2
+ import { ReactPart } from '../react';
3
+ export class ReactPanelView extends SplitviewPanel {
4
+ constructor(id, component, reactComponent, reactPortalStore) {
5
+ super(id, component);
6
+ this.reactComponent = reactComponent;
7
+ this.reactPortalStore = reactPortalStore;
8
+ }
9
+ getComponent() {
10
+ var _a;
11
+ return new ReactPart(this.element, this.reactPortalStore, this.reactComponent, {
12
+ params: ((_a = this.params) === null || _a === void 0 ? void 0 : _a.params) || {},
13
+ api: this.api,
14
+ containerApi: this.params
15
+ .containerApi,
16
+ });
17
+ }
18
+ }
@@ -1,7 +1,7 @@
1
- import * as React from 'react';
2
- export interface PanelCollection<T extends object> {
3
- [name: string]: React.FunctionComponent<T>;
4
- }
5
- export interface PanelParameters<T extends {} = Record<string, any>> {
6
- params: T;
7
- }
1
+ import * as React from 'react';
2
+ export interface PanelCollection<T extends object> {
3
+ [name: string]: React.FunctionComponent<T>;
4
+ }
5
+ export interface PanelParameters<T extends {} = Record<string, any>> {
6
+ params: T;
7
+ }
@@ -1 +1 @@
1
- export {};
1
+ export {};
@@ -1,26 +1,26 @@
1
- import { IPanel, PanelInitParameters } from '../../panel/types';
2
- import { IView, SplitViewOptions, LayoutPriority } from './splitview';
3
- import { FrameworkFactory } from '../../types';
4
- import { SplitviewPanel } from '../splitviewPanel';
5
- import { SplitviewApi } from '../../api/component.api';
6
- export interface PanelViewInitParameters extends PanelInitParameters {
7
- minimumSize?: number;
8
- maximumSize?: number;
9
- snap?: boolean;
10
- priority?: LayoutPriority;
11
- containerApi: SplitviewApi;
12
- }
13
- export interface ISerializableView extends IView, IPanel {
14
- init: (params: PanelViewInitParameters) => void;
15
- }
16
- export interface SplitviewComponentOptions extends SplitViewOptions {
17
- components?: {
18
- [componentName: string]: {
19
- new (id: string, componentName: string): SplitviewPanel;
20
- };
21
- };
22
- frameworkComponents?: {
23
- [componentName: string]: any;
24
- };
25
- frameworkWrapper?: FrameworkFactory<SplitviewPanel>;
26
- }
1
+ import { IPanel, PanelInitParameters } from '../../panel/types';
2
+ import { IView, SplitViewOptions, LayoutPriority } from './splitview';
3
+ import { FrameworkFactory } from '../../types';
4
+ import { SplitviewPanel } from '../splitviewPanel';
5
+ import { SplitviewApi } from '../../api/component.api';
6
+ export interface PanelViewInitParameters extends PanelInitParameters {
7
+ minimumSize?: number;
8
+ maximumSize?: number;
9
+ snap?: boolean;
10
+ priority?: LayoutPriority;
11
+ containerApi: SplitviewApi;
12
+ }
13
+ export interface ISerializableView extends IView, IPanel {
14
+ init: (params: PanelViewInitParameters) => void;
15
+ }
16
+ export interface SplitviewComponentOptions extends SplitViewOptions {
17
+ components?: {
18
+ [componentName: string]: {
19
+ new (id: string, componentName: string): SplitviewPanel;
20
+ };
21
+ };
22
+ frameworkComponents?: {
23
+ [componentName: string]: any;
24
+ };
25
+ frameworkWrapper?: FrameworkFactory<SplitviewPanel>;
26
+ }
@@ -1 +1 @@
1
- export {};
1
+ export {};