dockview 1.5.1 → 1.5.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 (329) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +52 -52
  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 +144 -144
  6. package/dist/cjs/api/component.api.js +571 -571
  7. package/dist/cjs/api/gridviewPanelApi.d.ts +36 -36
  8. package/dist/cjs/api/gridviewPanelApi.js +47 -47
  9. package/dist/cjs/api/groupPanelApi.d.ts +34 -34
  10. package/dist/cjs/api/groupPanelApi.js +85 -85
  11. package/dist/cjs/api/panelApi.d.ts +81 -81
  12. package/dist/cjs/api/panelApi.js +121 -121
  13. package/dist/cjs/api/paneviewPanelApi.d.ts +26 -26
  14. package/dist/cjs/api/paneviewPanelApi.js +57 -57
  15. package/dist/cjs/api/splitviewPanelApi.d.ts +32 -32
  16. package/dist/cjs/api/splitviewPanelApi.js +47 -47
  17. package/dist/cjs/array.d.ts +13 -13
  18. package/dist/cjs/array.js +77 -77
  19. package/dist/cjs/dnd/abstractDragHandler.d.ts +11 -11
  20. package/dist/cjs/dnd/abstractDragHandler.js +115 -115
  21. package/dist/cjs/dnd/dataTransfer.d.ts +31 -31
  22. package/dist/cjs/dnd/dataTransfer.js +100 -100
  23. package/dist/cjs/dnd/dnd.d.ts +27 -27
  24. package/dist/cjs/dnd/dnd.js +64 -64
  25. package/dist/cjs/dnd/droptarget.d.ts +37 -37
  26. package/dist/cjs/dnd/droptarget.js +201 -201
  27. package/dist/cjs/dockview/components/tab/defaultTab.d.ts +27 -27
  28. package/dist/cjs/dockview/components/tab/defaultTab.js +121 -121
  29. package/dist/cjs/dockview/components/watermark/watermark.d.ts +20 -20
  30. package/dist/cjs/dockview/components/watermark/watermark.js +101 -101
  31. package/dist/cjs/dockview/defaultGroupPanelView.d.ts +29 -29
  32. package/dist/cjs/dockview/defaultGroupPanelView.js +68 -68
  33. package/dist/cjs/dockview/deserializer.d.ts +5 -5
  34. package/dist/cjs/dockview/deserializer.js +2 -2
  35. package/dist/cjs/dockview/dockviewComponent.d.ts +125 -125
  36. package/dist/cjs/dockview/dockviewComponent.js +614 -614
  37. package/dist/cjs/dockview/dockviewComponent.js.map +1 -1
  38. package/dist/cjs/dockview/dockviewGroupPanel.d.ts +31 -31
  39. package/dist/cjs/dockview/dockviewGroupPanel.js +156 -156
  40. package/dist/cjs/dockview/options.d.ts +88 -88
  41. package/dist/cjs/dockview/options.js +2 -2
  42. package/dist/cjs/dom.d.ts +14 -14
  43. package/dist/cjs/dom.js +182 -182
  44. package/dist/cjs/events.d.ts +30 -30
  45. package/dist/cjs/events.js +129 -129
  46. package/dist/cjs/gridview/baseComponentGridview.d.ts +87 -87
  47. package/dist/cjs/gridview/baseComponentGridview.js +279 -279
  48. package/dist/cjs/gridview/basePanelView.d.ts +43 -43
  49. package/dist/cjs/gridview/basePanelView.js +123 -123
  50. package/dist/cjs/gridview/branchNode.d.ts +49 -46
  51. package/dist/cjs/gridview/branchNode.js +342 -342
  52. package/dist/cjs/gridview/branchNode.js.map +1 -1
  53. package/dist/cjs/gridview/gridview.d.ts +126 -123
  54. package/dist/cjs/gridview/gridview.js +479 -479
  55. package/dist/cjs/gridview/gridview.js.map +1 -1
  56. package/dist/cjs/gridview/gridviewComponent.d.ts +85 -85
  57. package/dist/cjs/gridview/gridviewComponent.js +325 -325
  58. package/dist/cjs/gridview/gridviewPanel.d.ts +60 -60
  59. package/dist/cjs/gridview/gridviewPanel.js +202 -202
  60. package/dist/cjs/gridview/leafNode.d.ts +34 -31
  61. package/dist/cjs/gridview/leafNode.js +170 -165
  62. package/dist/cjs/gridview/leafNode.js.map +1 -1
  63. package/dist/cjs/gridview/options.d.ts +18 -18
  64. package/dist/cjs/gridview/options.js +2 -2
  65. package/dist/cjs/gridview/types.d.ts +3 -3
  66. package/dist/cjs/gridview/types.js +2 -2
  67. package/dist/cjs/groupview/dnd.d.ts +5 -5
  68. package/dist/cjs/groupview/dnd.js +9 -9
  69. package/dist/cjs/groupview/groupPanel.d.ts +32 -32
  70. package/dist/cjs/groupview/groupPanel.js +2 -2
  71. package/dist/cjs/groupview/groupview.d.ts +177 -177
  72. package/dist/cjs/groupview/groupview.js +589 -589
  73. package/dist/cjs/groupview/groupviewPanel.d.ts +35 -35
  74. package/dist/cjs/groupview/groupviewPanel.js +128 -128
  75. package/dist/cjs/groupview/panel/content.d.ts +30 -30
  76. package/dist/cjs/groupview/panel/content.js +100 -100
  77. package/dist/cjs/groupview/tab.d.ts +41 -41
  78. package/dist/cjs/groupview/tab.js +120 -120
  79. package/dist/cjs/groupview/titlebar/tabsContainer.d.ts +68 -68
  80. package/dist/cjs/groupview/titlebar/tabsContainer.js +258 -258
  81. package/dist/cjs/groupview/types.d.ts +52 -52
  82. package/dist/cjs/groupview/types.js +2 -2
  83. package/dist/cjs/hostedContainer.d.ts +23 -23
  84. package/dist/cjs/hostedContainer.js +73 -73
  85. package/dist/cjs/index.d.ts +30 -30
  86. package/dist/cjs/index.js +46 -46
  87. package/dist/cjs/lifecycle.d.ts +22 -22
  88. package/dist/cjs/lifecycle.js +88 -88
  89. package/dist/cjs/math.d.ts +4 -4
  90. package/dist/cjs/math.js +15 -15
  91. package/dist/cjs/panel/componentFactory.d.ts +8 -8
  92. package/dist/cjs/panel/componentFactory.js +30 -30
  93. package/dist/cjs/panel/types.d.ts +33 -33
  94. package/dist/cjs/panel/types.js +2 -2
  95. package/dist/cjs/paneview/defaultPaneviewHeader.d.ts +21 -21
  96. package/dist/cjs/paneview/defaultPaneviewHeader.js +90 -90
  97. package/dist/cjs/paneview/draggablePaneviewPanel.d.ts +19 -19
  98. package/dist/cjs/paneview/draggablePaneviewPanel.js +129 -129
  99. package/dist/cjs/paneview/options.d.ts +27 -27
  100. package/dist/cjs/paneview/options.js +2 -2
  101. package/dist/cjs/paneview/paneview.d.ts +40 -40
  102. package/dist/cjs/paneview/paneview.js +201 -201
  103. package/dist/cjs/paneview/paneviewComponent.d.ts +129 -129
  104. package/dist/cjs/paneview/paneviewComponent.js +394 -394
  105. package/dist/cjs/paneview/paneviewPanel.d.ts +92 -89
  106. package/dist/cjs/paneview/paneviewPanel.js +274 -274
  107. package/dist/cjs/paneview/paneviewPanel.js.map +1 -1
  108. package/dist/cjs/react/deserializer.d.ts +9 -9
  109. package/dist/cjs/react/deserializer.js +43 -43
  110. package/dist/cjs/react/dockview/defaultTab.d.ts +4 -4
  111. package/dist/cjs/react/dockview/defaultTab.js +72 -72
  112. package/dist/cjs/react/dockview/dockview.d.ts +34 -34
  113. package/dist/cjs/react/dockview/dockview.js +212 -212
  114. package/dist/cjs/react/dockview/groupControlsRenderer.d.ts +43 -43
  115. package/dist/cjs/react/dockview/groupControlsRenderer.js +86 -86
  116. package/dist/cjs/react/dockview/reactContentPart.d.ts +30 -30
  117. package/dist/cjs/react/dockview/reactContentPart.js +58 -58
  118. package/dist/cjs/react/dockview/reactHeaderPart.d.ts +26 -26
  119. package/dist/cjs/react/dockview/reactHeaderPart.js +55 -55
  120. package/dist/cjs/react/dockview/reactWatermarkPart.d.ts +29 -29
  121. package/dist/cjs/react/dockview/reactWatermarkPart.js +65 -65
  122. package/dist/cjs/react/dockview/v2/reactContentRenderer.d.ts +29 -29
  123. package/dist/cjs/react/dockview/v2/reactContentRenderer.js +87 -87
  124. package/dist/cjs/react/dockview/v2/reactGroupPanelView.d.ts +7 -7
  125. package/dist/cjs/react/dockview/v2/reactGroupPanelView.js +34 -34
  126. package/dist/cjs/react/dockview/v2/webviewContentRenderer.d.ts +18 -18
  127. package/dist/cjs/react/dockview/v2/webviewContentRenderer.js +45 -45
  128. package/dist/cjs/react/gridview/gridview.d.ts +24 -24
  129. package/dist/cjs/react/gridview/gridview.js +112 -112
  130. package/dist/cjs/react/gridview/view.d.ts +11 -11
  131. package/dist/cjs/react/gridview/view.js +40 -40
  132. package/dist/cjs/react/index.d.ts +9 -9
  133. package/dist/cjs/react/index.js +23 -23
  134. package/dist/cjs/react/paneview/paneview.d.ts +30 -30
  135. package/dist/cjs/react/paneview/paneview.js +155 -155
  136. package/dist/cjs/react/paneview/view.d.ts +20 -20
  137. package/dist/cjs/react/paneview/view.js +44 -44
  138. package/dist/cjs/react/react.d.ts +36 -36
  139. package/dist/cjs/react/react.js +194 -194
  140. package/dist/cjs/react/splitview/splitview.d.ts +24 -24
  141. package/dist/cjs/react/splitview/splitview.js +108 -108
  142. package/dist/cjs/react/splitview/view.d.ts +10 -10
  143. package/dist/cjs/react/splitview/view.js +40 -40
  144. package/dist/cjs/react/svg.d.ts +3 -3
  145. package/dist/cjs/react/svg.js +35 -35
  146. package/dist/cjs/react/types.d.ts +7 -7
  147. package/dist/cjs/react/types.js +2 -2
  148. package/dist/cjs/splitview/core/options.d.ts +26 -26
  149. package/dist/cjs/splitview/core/options.js +2 -2
  150. package/dist/cjs/splitview/core/splitview.d.ts +127 -124
  151. package/dist/cjs/splitview/core/splitview.js +908 -908
  152. package/dist/cjs/splitview/core/splitview.js.map +1 -1
  153. package/dist/cjs/splitview/core/viewItem.d.ts +25 -25
  154. package/dist/cjs/splitview/core/viewItem.js +124 -124
  155. package/dist/cjs/splitview/splitviewComponent.d.ts +101 -101
  156. package/dist/cjs/splitview/splitviewComponent.js +373 -373
  157. package/dist/cjs/splitview/splitviewPanel.d.ts +45 -42
  158. package/dist/cjs/splitview/splitviewPanel.js +178 -178
  159. package/dist/cjs/splitview/splitviewPanel.js.map +1 -1
  160. package/dist/cjs/svg.d.ts +3 -3
  161. package/dist/cjs/svg.js +43 -43
  162. package/dist/cjs/types.d.ts +7 -7
  163. package/dist/cjs/types.js +2 -2
  164. package/dist/dockview.amd.js +6737 -6732
  165. package/dist/dockview.amd.min.js +2 -2
  166. package/dist/dockview.amd.min.noStyle.js +2 -2
  167. package/dist/dockview.amd.noStyle.js +6743 -6738
  168. package/dist/dockview.cjs.js +6736 -6731
  169. package/dist/dockview.esm.js +6731 -6726
  170. package/dist/dockview.esm.min.js +2 -2
  171. package/dist/dockview.js +6737 -6732
  172. package/dist/dockview.min.js +2 -2
  173. package/dist/dockview.min.noStyle.js +2 -2
  174. package/dist/dockview.noStyle.js +6743 -6738
  175. package/dist/esm/actionbar/actionsContainer.d.ts +7 -7
  176. package/dist/esm/actionbar/actionsContainer.js +17 -17
  177. package/dist/esm/api/component.api.d.ts +144 -144
  178. package/dist/esm/api/component.api.js +326 -326
  179. package/dist/esm/api/gridviewPanelApi.d.ts +36 -36
  180. package/dist/esm/api/gridviewPanelApi.js +25 -25
  181. package/dist/esm/api/groupPanelApi.d.ts +34 -34
  182. package/dist/esm/api/groupPanelApi.js +50 -50
  183. package/dist/esm/api/panelApi.d.ts +81 -81
  184. package/dist/esm/api/panelApi.js +79 -79
  185. package/dist/esm/api/paneviewPanelApi.d.ts +26 -26
  186. package/dist/esm/api/paneviewPanelApi.js +27 -27
  187. package/dist/esm/api/splitviewPanelApi.d.ts +32 -32
  188. package/dist/esm/api/splitviewPanelApi.js +25 -25
  189. package/dist/esm/array.d.ts +13 -13
  190. package/dist/esm/array.js +67 -67
  191. package/dist/esm/dnd/abstractDragHandler.d.ts +11 -11
  192. package/dist/esm/dnd/abstractDragHandler.js +37 -37
  193. package/dist/esm/dnd/dataTransfer.d.ts +31 -31
  194. package/dist/esm/dnd/dataTransfer.js +69 -69
  195. package/dist/esm/dnd/dnd.d.ts +27 -27
  196. package/dist/esm/dnd/dnd.js +41 -41
  197. package/dist/esm/dnd/droptarget.d.ts +37 -37
  198. package/dist/esm/dnd/droptarget.js +167 -167
  199. package/dist/esm/dockview/components/tab/defaultTab.d.ts +27 -27
  200. package/dist/esm/dockview/components/tab/defaultTab.js +79 -79
  201. package/dist/esm/dockview/components/watermark/watermark.d.ts +20 -20
  202. package/dist/esm/dockview/components/watermark/watermark.js +70 -70
  203. package/dist/esm/dockview/defaultGroupPanelView.d.ts +29 -29
  204. package/dist/esm/dockview/defaultGroupPanelView.js +44 -44
  205. package/dist/esm/dockview/deserializer.d.ts +5 -5
  206. package/dist/esm/dockview/deserializer.js +1 -1
  207. package/dist/esm/dockview/dockviewComponent.d.ts +125 -125
  208. package/dist/esm/dockview/dockviewComponent.js +468 -468
  209. package/dist/esm/dockview/dockviewGroupPanel.d.ts +31 -31
  210. package/dist/esm/dockview/dockviewGroupPanel.js +107 -107
  211. package/dist/esm/dockview/options.d.ts +88 -88
  212. package/dist/esm/dockview/options.js +1 -1
  213. package/dist/esm/dom.d.ts +14 -14
  214. package/dist/esm/dom.js +113 -113
  215. package/dist/esm/events.d.ts +30 -30
  216. package/dist/esm/events.js +88 -88
  217. package/dist/esm/gridview/baseComponentGridview.d.ts +87 -87
  218. package/dist/esm/gridview/baseComponentGridview.js +189 -189
  219. package/dist/esm/gridview/basePanelView.d.ts +43 -43
  220. package/dist/esm/gridview/basePanelView.js +74 -74
  221. package/dist/esm/gridview/branchNode.d.ts +49 -46
  222. package/dist/esm/gridview/branchNode.js +218 -218
  223. package/dist/esm/gridview/gridview.d.ts +126 -123
  224. package/dist/esm/gridview/gridview.js +397 -397
  225. package/dist/esm/gridview/gridviewComponent.d.ts +85 -85
  226. package/dist/esm/gridview/gridviewComponent.js +238 -238
  227. package/dist/esm/gridview/gridviewPanel.d.ts +60 -60
  228. package/dist/esm/gridview/gridviewPanel.js +138 -138
  229. package/dist/esm/gridview/leafNode.d.ts +34 -31
  230. package/dist/esm/gridview/leafNode.js +103 -98
  231. package/dist/esm/gridview/options.d.ts +18 -18
  232. package/dist/esm/gridview/options.js +1 -1
  233. package/dist/esm/gridview/types.d.ts +3 -3
  234. package/dist/esm/gridview/types.js +1 -1
  235. package/dist/esm/groupview/dnd.d.ts +5 -5
  236. package/dist/esm/groupview/dnd.js +6 -6
  237. package/dist/esm/groupview/groupPanel.d.ts +32 -32
  238. package/dist/esm/groupview/groupPanel.js +1 -1
  239. package/dist/esm/groupview/groupview.d.ts +177 -177
  240. package/dist/esm/groupview/groupview.js +444 -444
  241. package/dist/esm/groupview/groupviewPanel.d.ts +35 -35
  242. package/dist/esm/groupview/groupviewPanel.js +61 -61
  243. package/dist/esm/groupview/panel/content.d.ts +30 -30
  244. package/dist/esm/groupview/panel/content.js +73 -73
  245. package/dist/esm/groupview/tab.d.ts +41 -41
  246. package/dist/esm/groupview/tab.js +90 -90
  247. package/dist/esm/groupview/titlebar/tabsContainer.d.ts +68 -68
  248. package/dist/esm/groupview/titlebar/tabsContainer.js +190 -190
  249. package/dist/esm/groupview/types.d.ts +52 -52
  250. package/dist/esm/groupview/types.js +1 -1
  251. package/dist/esm/hostedContainer.d.ts +23 -23
  252. package/dist/esm/hostedContainer.js +63 -63
  253. package/dist/esm/index.d.ts +30 -30
  254. package/dist/esm/index.js +23 -23
  255. package/dist/esm/lifecycle.d.ts +22 -22
  256. package/dist/esm/lifecycle.js +39 -39
  257. package/dist/esm/math.d.ts +4 -4
  258. package/dist/esm/math.js +10 -10
  259. package/dist/esm/panel/componentFactory.d.ts +8 -8
  260. package/dist/esm/panel/componentFactory.js +24 -24
  261. package/dist/esm/panel/types.d.ts +33 -33
  262. package/dist/esm/panel/types.js +1 -1
  263. package/dist/esm/paneview/defaultPaneviewHeader.d.ts +21 -21
  264. package/dist/esm/paneview/defaultPaneviewHeader.js +63 -63
  265. package/dist/esm/paneview/draggablePaneviewPanel.d.ts +19 -19
  266. package/dist/esm/paneview/draggablePaneviewPanel.js +90 -90
  267. package/dist/esm/paneview/options.d.ts +27 -27
  268. package/dist/esm/paneview/options.js +1 -1
  269. package/dist/esm/paneview/paneview.d.ts +40 -40
  270. package/dist/esm/paneview/paneview.js +145 -145
  271. package/dist/esm/paneview/paneviewComponent.d.ts +129 -129
  272. package/dist/esm/paneview/paneviewComponent.js +270 -270
  273. package/dist/esm/paneview/paneviewPanel.d.ts +92 -89
  274. package/dist/esm/paneview/paneviewPanel.js +191 -191
  275. package/dist/esm/react/deserializer.d.ts +9 -9
  276. package/dist/esm/react/deserializer.js +38 -38
  277. package/dist/esm/react/dockview/defaultTab.d.ts +4 -4
  278. package/dist/esm/react/dockview/defaultTab.js +34 -34
  279. package/dist/esm/react/dockview/dockview.d.ts +34 -34
  280. package/dist/esm/react/dockview/dockview.js +157 -157
  281. package/dist/esm/react/dockview/groupControlsRenderer.d.ts +43 -43
  282. package/dist/esm/react/dockview/groupControlsRenderer.js +68 -68
  283. package/dist/esm/react/dockview/reactContentPart.d.ts +30 -30
  284. package/dist/esm/react/dockview/reactContentPart.js +49 -49
  285. package/dist/esm/react/dockview/reactHeaderPart.d.ts +26 -26
  286. package/dist/esm/react/dockview/reactHeaderPart.js +46 -46
  287. package/dist/esm/react/dockview/reactWatermarkPart.d.ts +29 -29
  288. package/dist/esm/react/dockview/reactWatermarkPart.js +55 -55
  289. package/dist/esm/react/dockview/v2/reactContentRenderer.d.ts +29 -29
  290. package/dist/esm/react/dockview/v2/reactContentRenderer.js +69 -69
  291. package/dist/esm/react/dockview/v2/reactGroupPanelView.d.ts +7 -7
  292. package/dist/esm/react/dockview/v2/reactGroupPanelView.js +12 -12
  293. package/dist/esm/react/dockview/v2/webviewContentRenderer.d.ts +18 -18
  294. package/dist/esm/react/dockview/v2/webviewContentRenderer.js +36 -36
  295. package/dist/esm/react/gridview/gridview.d.ts +24 -24
  296. package/dist/esm/react/gridview/gridview.js +70 -70
  297. package/dist/esm/react/gridview/view.d.ts +11 -11
  298. package/dist/esm/react/gridview/view.js +18 -18
  299. package/dist/esm/react/index.d.ts +9 -9
  300. package/dist/esm/react/index.js +7 -7
  301. package/dist/esm/react/paneview/paneview.d.ts +30 -30
  302. package/dist/esm/react/paneview/paneview.js +100 -100
  303. package/dist/esm/react/paneview/view.d.ts +20 -20
  304. package/dist/esm/react/paneview/view.js +35 -35
  305. package/dist/esm/react/react.d.ts +36 -36
  306. package/dist/esm/react/react.js +125 -125
  307. package/dist/esm/react/splitview/splitview.d.ts +24 -24
  308. package/dist/esm/react/splitview/splitview.js +66 -66
  309. package/dist/esm/react/splitview/view.d.ts +10 -10
  310. package/dist/esm/react/splitview/view.js +18 -18
  311. package/dist/esm/react/svg.d.ts +3 -3
  312. package/dist/esm/react/svg.js +7 -7
  313. package/dist/esm/react/types.d.ts +7 -7
  314. package/dist/esm/react/types.js +1 -1
  315. package/dist/esm/splitview/core/options.d.ts +26 -26
  316. package/dist/esm/splitview/core/options.js +1 -1
  317. package/dist/esm/splitview/core/splitview.d.ts +127 -124
  318. package/dist/esm/splitview/core/splitview.js +689 -689
  319. package/dist/esm/splitview/core/viewItem.d.ts +25 -25
  320. package/dist/esm/splitview/core/viewItem.js +79 -79
  321. package/dist/esm/splitview/splitviewComponent.d.ts +101 -101
  322. package/dist/esm/splitview/splitviewComponent.js +249 -249
  323. package/dist/esm/splitview/splitviewPanel.d.ts +45 -42
  324. package/dist/esm/splitview/splitviewPanel.js +107 -107
  325. package/dist/esm/svg.d.ts +3 -3
  326. package/dist/esm/svg.js +31 -31
  327. package/dist/esm/types.d.ts +7 -7
  328. package/dist/esm/types.js +1 -1
  329. package/package.json +2 -2
@@ -1,125 +1,125 @@
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._initialProps = {};
45
- this.disposed = false;
46
- this.createPortal();
47
- }
48
- update(props) {
49
- if (this.disposed) {
50
- throw new Error('invalid operation: resource is already disposed');
51
- }
52
- if (!this.componentInstance) {
53
- // if the component is yet to be mounted store the props
54
- this._initialProps = Object.assign(Object.assign({}, this._initialProps), props);
55
- }
56
- else {
57
- this.componentInstance.update(props);
58
- }
59
- }
60
- createPortal() {
61
- if (this.disposed) {
62
- throw new Error('invalid operation: resource is already disposed');
63
- }
64
- if (typeof this.component !== 'function') {
65
- /**
66
- * we know this isn't a React.FunctionComponent so throw an error here.
67
- * if we do not intercept this the React library will throw a very obsure error
68
- * for the same reason, at least at this point we will emit a sensible stacktrace.
69
- */
70
- throw new Error('Invalid Operation. dockview only supports React Functional Components.');
71
- }
72
- const bridgeComponent = React.createElement(React.forwardRef(ReactComponentBridge), {
73
- component: this
74
- .component,
75
- componentProps: this.parameters,
76
- ref: (element) => {
77
- this.componentInstance = element;
78
- if (Object.keys(this._initialProps).length > 0) {
79
- this.componentInstance.update(this._initialProps);
80
- this._initialProps = {}; // don't keep a reference to the users object once no longer required
81
- }
82
- },
83
- });
84
- const node = this.context
85
- ? React.createElement(ReactPartContext.Provider, { value: this.context }, bridgeComponent)
86
- : bridgeComponent;
87
- const portal = ReactDOM.createPortal(node, this.parent, uniquePortalKeyGenerator.next());
88
- this.ref = {
89
- portal,
90
- disposable: this.portalStore.addPortal(portal),
91
- };
92
- }
93
- dispose() {
94
- var _a;
95
- (_a = this.ref) === null || _a === void 0 ? void 0 : _a.disposable.dispose();
96
- this.disposed = true;
97
- }
98
- }
99
- /**
100
- * A React Hook that returns an array of portals to be rendered by the user of this hook
101
- * and a disposable function to add a portal. Calling dispose removes this portal from the
102
- * portal array
103
- */
104
- export const usePortalsLifecycle = () => {
105
- const [portals, setPortals] = React.useState([]);
106
- React.useDebugValue(`Portal count: ${portals.length}`);
107
- const addPortal = React.useCallback((portal) => {
108
- setPortals((existingPortals) => [...existingPortals, portal]);
109
- let disposed = false;
110
- return {
111
- dispose: () => {
112
- if (disposed) {
113
- throw new Error('invalid operation: resource already disposed');
114
- }
115
- disposed = true;
116
- setPortals((existingPortals) => existingPortals.filter((p) => p !== portal));
117
- },
118
- };
119
- }, []);
120
- return [portals, addPortal];
121
- };
122
- // it does the job...
123
- export function isReactElement(element) {
124
- return element === null || element === void 0 ? void 0 : element.type;
125
- }
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._initialProps = {};
45
+ this.disposed = false;
46
+ this.createPortal();
47
+ }
48
+ update(props) {
49
+ if (this.disposed) {
50
+ throw new Error('invalid operation: resource is already disposed');
51
+ }
52
+ if (!this.componentInstance) {
53
+ // if the component is yet to be mounted store the props
54
+ this._initialProps = Object.assign(Object.assign({}, this._initialProps), props);
55
+ }
56
+ else {
57
+ this.componentInstance.update(props);
58
+ }
59
+ }
60
+ createPortal() {
61
+ if (this.disposed) {
62
+ throw new Error('invalid operation: resource is already disposed');
63
+ }
64
+ if (typeof this.component !== 'function') {
65
+ /**
66
+ * we know this isn't a React.FunctionComponent so throw an error here.
67
+ * if we do not intercept this the React library will throw a very obsure error
68
+ * for the same reason, at least at this point we will emit a sensible stacktrace.
69
+ */
70
+ throw new Error('Invalid Operation. dockview only supports React Functional Components.');
71
+ }
72
+ const bridgeComponent = React.createElement(React.forwardRef(ReactComponentBridge), {
73
+ component: this
74
+ .component,
75
+ componentProps: this.parameters,
76
+ ref: (element) => {
77
+ this.componentInstance = element;
78
+ if (Object.keys(this._initialProps).length > 0) {
79
+ this.componentInstance.update(this._initialProps);
80
+ this._initialProps = {}; // don't keep a reference to the users object once no longer required
81
+ }
82
+ },
83
+ });
84
+ const node = this.context
85
+ ? React.createElement(ReactPartContext.Provider, { value: this.context }, bridgeComponent)
86
+ : bridgeComponent;
87
+ const portal = ReactDOM.createPortal(node, this.parent, uniquePortalKeyGenerator.next());
88
+ this.ref = {
89
+ portal,
90
+ disposable: this.portalStore.addPortal(portal),
91
+ };
92
+ }
93
+ dispose() {
94
+ var _a;
95
+ (_a = this.ref) === null || _a === void 0 ? void 0 : _a.disposable.dispose();
96
+ this.disposed = true;
97
+ }
98
+ }
99
+ /**
100
+ * A React Hook that returns an array of portals to be rendered by the user of this hook
101
+ * and a disposable function to add a portal. Calling dispose removes this portal from the
102
+ * portal array
103
+ */
104
+ export const usePortalsLifecycle = () => {
105
+ const [portals, setPortals] = React.useState([]);
106
+ React.useDebugValue(`Portal count: ${portals.length}`);
107
+ const addPortal = React.useCallback((portal) => {
108
+ setPortals((existingPortals) => [...existingPortals, portal]);
109
+ let disposed = false;
110
+ return {
111
+ dispose: () => {
112
+ if (disposed) {
113
+ throw new Error('invalid operation: resource already disposed');
114
+ }
115
+ disposed = true;
116
+ setPortals((existingPortals) => existingPortals.filter((p) => p !== portal));
117
+ },
118
+ };
119
+ }, []);
120
+ return [portals, addPortal];
121
+ };
122
+ // it does the job...
123
+ export function isReactElement(element) {
124
+ return element === null || element === void 0 ? void 0 : element.type;
125
+ }
@@ -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,66 +1,66 @@
1
- import * as React from 'react';
2
- import { SplitviewApi } from '../../api/component.api';
3
- import { SplitviewComponent, } from '../../splitview/splitviewComponent';
4
- import { Orientation } from '../../splitview/core/splitview';
5
- import { usePortalsLifecycle } from '../react';
6
- import { ReactPanelView } from './view';
7
- import { watchElementResize } from '../../dom';
8
- export const SplitviewReact = React.forwardRef((props, ref) => {
9
- const domRef = React.useRef(null);
10
- const splitviewRef = React.useRef();
11
- const [portals, addPortal] = usePortalsLifecycle();
12
- React.useImperativeHandle(ref, () => domRef.current, []);
13
- React.useEffect(() => {
14
- if (props.disableAutoResizing) {
15
- return () => {
16
- //
17
- };
18
- }
19
- const watcher = watchElementResize(domRef.current, (entry) => {
20
- var _a;
21
- const { width, height } = entry.contentRect;
22
- (_a = splitviewRef.current) === null || _a === void 0 ? void 0 : _a.layout(width, height);
23
- });
24
- return () => {
25
- watcher.dispose();
26
- };
27
- }, [props.disableAutoResizing]);
28
- React.useEffect(() => {
29
- const splitview = new SplitviewComponent(domRef.current, {
30
- orientation: props.orientation || Orientation.HORIZONTAL,
31
- frameworkComponents: props.components,
32
- frameworkWrapper: {
33
- createComponent: (id, componentId, component) => {
34
- return new ReactPanelView(id, componentId, component, {
35
- addPortal,
36
- });
37
- },
38
- },
39
- proportionalLayout: typeof props.proportionalLayout === 'boolean'
40
- ? props.proportionalLayout
41
- : true,
42
- styles: props.hideBorders
43
- ? { separatorBorder: 'transparent' }
44
- : undefined,
45
- });
46
- const { clientWidth, clientHeight } = domRef.current;
47
- splitview.layout(clientWidth, clientHeight);
48
- if (props.onReady) {
49
- props.onReady({ api: new SplitviewApi(splitview) });
50
- }
51
- splitviewRef.current = splitview;
52
- return () => {
53
- splitview.dispose();
54
- };
55
- }, []);
56
- React.useEffect(() => {
57
- if (!splitviewRef.current) {
58
- return;
59
- }
60
- splitviewRef.current.updateOptions({
61
- frameworkComponents: props.components,
62
- });
63
- }, [props.components]);
64
- return (React.createElement("div", { className: props.className, style: { height: '100%', width: '100%' }, ref: domRef }, portals));
65
- });
66
- SplitviewReact.displayName = 'SplitviewComponent';
1
+ import * as React from 'react';
2
+ import { SplitviewApi } from '../../api/component.api';
3
+ import { SplitviewComponent, } from '../../splitview/splitviewComponent';
4
+ import { Orientation } from '../../splitview/core/splitview';
5
+ import { usePortalsLifecycle } from '../react';
6
+ import { ReactPanelView } from './view';
7
+ import { watchElementResize } from '../../dom';
8
+ export const SplitviewReact = React.forwardRef((props, ref) => {
9
+ const domRef = React.useRef(null);
10
+ const splitviewRef = React.useRef();
11
+ const [portals, addPortal] = usePortalsLifecycle();
12
+ React.useImperativeHandle(ref, () => domRef.current, []);
13
+ React.useEffect(() => {
14
+ if (props.disableAutoResizing) {
15
+ return () => {
16
+ //
17
+ };
18
+ }
19
+ const watcher = watchElementResize(domRef.current, (entry) => {
20
+ var _a;
21
+ const { width, height } = entry.contentRect;
22
+ (_a = splitviewRef.current) === null || _a === void 0 ? void 0 : _a.layout(width, height);
23
+ });
24
+ return () => {
25
+ watcher.dispose();
26
+ };
27
+ }, [props.disableAutoResizing]);
28
+ React.useEffect(() => {
29
+ const splitview = new SplitviewComponent(domRef.current, {
30
+ orientation: props.orientation || Orientation.HORIZONTAL,
31
+ frameworkComponents: props.components,
32
+ frameworkWrapper: {
33
+ createComponent: (id, componentId, component) => {
34
+ return new ReactPanelView(id, componentId, component, {
35
+ addPortal,
36
+ });
37
+ },
38
+ },
39
+ proportionalLayout: typeof props.proportionalLayout === 'boolean'
40
+ ? props.proportionalLayout
41
+ : true,
42
+ styles: props.hideBorders
43
+ ? { separatorBorder: 'transparent' }
44
+ : undefined,
45
+ });
46
+ const { clientWidth, clientHeight } = domRef.current;
47
+ splitview.layout(clientWidth, clientHeight);
48
+ if (props.onReady) {
49
+ props.onReady({ api: new SplitviewApi(splitview) });
50
+ }
51
+ splitviewRef.current = splitview;
52
+ return () => {
53
+ splitview.dispose();
54
+ };
55
+ }, []);
56
+ React.useEffect(() => {
57
+ if (!splitviewRef.current) {
58
+ return;
59
+ }
60
+ splitviewRef.current.updateOptions({
61
+ frameworkComponents: props.components,
62
+ });
63
+ }, [props.components]);
64
+ return (React.createElement("div", { className: props.className, style: { height: '100%', width: '100%' }, ref: domRef }, portals));
65
+ });
66
+ 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 { SplitviewApi } from '../../api/component.api';
2
- import { SplitviewPanel } from '../../splitview/splitviewPanel';
3
- import { ReactPart } from '../react';
4
- export class ReactPanelView extends SplitviewPanel {
5
- constructor(id, component, reactComponent, reactPortalStore) {
6
- super(id, component);
7
- this.reactComponent = reactComponent;
8
- this.reactPortalStore = reactPortalStore;
9
- }
10
- getComponent() {
11
- var _a;
12
- return new ReactPart(this.element, this.reactPortalStore, this.reactComponent, {
13
- params: ((_a = this._params) === null || _a === void 0 ? void 0 : _a.params) || {},
14
- api: this.api,
15
- containerApi: new SplitviewApi(this._params.accessor),
16
- });
17
- }
18
- }
1
+ import { SplitviewApi } from '../../api/component.api';
2
+ import { SplitviewPanel } from '../../splitview/splitviewPanel';
3
+ import { ReactPart } from '../react';
4
+ export class ReactPanelView extends SplitviewPanel {
5
+ constructor(id, component, reactComponent, reactPortalStore) {
6
+ super(id, component);
7
+ this.reactComponent = reactComponent;
8
+ this.reactPortalStore = reactPortalStore;
9
+ }
10
+ getComponent() {
11
+ var _a;
12
+ return new ReactPart(this.element, this.reactPortalStore, this.reactComponent, {
13
+ params: ((_a = this._params) === null || _a === void 0 ? void 0 : _a.params) || {},
14
+ api: this.api,
15
+ containerApi: new SplitviewApi(this._params.accessor),
16
+ });
17
+ }
18
+ }
@@ -1,3 +1,3 @@
1
- /// <reference types="react" />
2
- export declare const CloseButton: () => JSX.Element;
3
- export declare const ExpandMore: () => JSX.Element;
1
+ /// <reference types="react" />
2
+ export declare const CloseButton: () => JSX.Element;
3
+ export declare const ExpandMore: () => JSX.Element;
@@ -1,7 +1,7 @@
1
- import * as React from 'react';
2
- export const CloseButton = () => (React.createElement("svg", { height: "11", width: "11", viewBox: "0 0 28 28", "aria-hidden": 'false', focusable: false, className: "dockview-svg" },
3
- React.createElement("path", { d: "M2.1 27.3L0 25.2L11.55 13.65L0 2.1L2.1 0L13.65 11.55L25.2 0L27.3 2.1L15.75 13.65L27.3 25.2L25.2 27.3L13.65 15.75L2.1 27.3Z" })));
4
- export const ExpandMore = () => {
5
- return (React.createElement("svg", { width: "11", height: "11", viewBox: "0 0 24 15", "aria-hidden": 'false', focusable: false, className: "dockview-svg" },
6
- React.createElement("path", { d: "M12 14.15L0 2.15L2.15 0L12 9.9L21.85 0.0499992L24 2.2L12 14.15Z" })));
7
- };
1
+ import * as React from 'react';
2
+ export const CloseButton = () => (React.createElement("svg", { height: "11", width: "11", viewBox: "0 0 28 28", "aria-hidden": 'false', focusable: false, className: "dockview-svg" },
3
+ React.createElement("path", { d: "M2.1 27.3L0 25.2L11.55 13.65L0 2.1L2.1 0L13.65 11.55L25.2 0L27.3 2.1L15.75 13.65L27.3 25.2L25.2 27.3L13.65 15.75L2.1 27.3Z" })));
4
+ export const ExpandMore = () => {
5
+ return (React.createElement("svg", { width: "11", height: "11", viewBox: "0 0 24 15", "aria-hidden": 'false', focusable: false, className: "dockview-svg" },
6
+ React.createElement("path", { d: "M12 14.15L0 2.15L2.15 0L12 9.9L21.85 0.0499992L24 2.2L12 14.15Z" })));
7
+ };
@@ -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 { SplitviewComponent } from '../splitviewComponent';
6
- export interface PanelViewInitParameters extends PanelInitParameters {
7
- minimumSize?: number;
8
- maximumSize?: number;
9
- snap?: boolean;
10
- priority?: LayoutPriority;
11
- accessor: SplitviewComponent;
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 { SplitviewComponent } from '../splitviewComponent';
6
+ export interface PanelViewInitParameters extends PanelInitParameters {
7
+ minimumSize?: number;
8
+ maximumSize?: number;
9
+ snap?: boolean;
10
+ priority?: LayoutPriority;
11
+ accessor: SplitviewComponent;
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 {};