dockview 1.6.0 → 1.7.1

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 (473) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +50 -52
  3. package/dist/{esm/react → cjs}/dockview/defaultTab.d.ts +5 -4
  4. package/dist/cjs/dockview/defaultTab.d.ts.map +1 -0
  5. package/dist/cjs/{react/dockview → dockview}/defaultTab.js +72 -72
  6. package/dist/cjs/dockview/defaultTab.js.map +1 -0
  7. package/dist/{esm/react → cjs}/dockview/dockview.d.ts +36 -35
  8. package/dist/cjs/dockview/dockview.d.ts.map +1 -0
  9. package/dist/cjs/{react/dockview → dockview}/dockview.js +196 -213
  10. package/dist/cjs/dockview/dockview.js.map +1 -0
  11. package/dist/cjs/{react/dockview → dockview}/groupControlsRenderer.d.ts +33 -43
  12. package/dist/cjs/dockview/groupControlsRenderer.d.ts.map +1 -0
  13. package/dist/cjs/{react/dockview → dockview}/groupControlsRenderer.js +86 -86
  14. package/dist/cjs/dockview/groupControlsRenderer.js.map +1 -0
  15. package/dist/{esm/react → cjs}/dockview/reactContentPart.d.ts +23 -30
  16. package/dist/cjs/dockview/reactContentPart.d.ts.map +1 -0
  17. package/dist/cjs/{react/dockview → dockview}/reactContentPart.js +50 -58
  18. package/dist/cjs/dockview/reactContentPart.js.map +1 -0
  19. package/dist/cjs/{react/dockview → dockview}/reactHeaderPart.d.ts +19 -26
  20. package/dist/cjs/dockview/reactHeaderPart.d.ts.map +1 -0
  21. package/dist/cjs/{react/dockview → dockview}/reactHeaderPart.js +43 -55
  22. package/dist/cjs/dockview/reactHeaderPart.js.map +1 -0
  23. package/dist/cjs/{react/dockview → dockview}/reactWatermarkPart.d.ts +25 -29
  24. package/dist/cjs/dockview/reactWatermarkPart.d.ts.map +1 -0
  25. package/dist/cjs/{react/dockview → dockview}/reactWatermarkPart.js +53 -65
  26. package/dist/cjs/dockview/reactWatermarkPart.js.map +1 -0
  27. package/dist/cjs/gridview/gridview.d.ts +23 -132
  28. package/dist/cjs/gridview/gridview.d.ts.map +1 -0
  29. package/dist/cjs/gridview/gridview.js +96 -510
  30. package/dist/cjs/gridview/gridview.js.map +1 -1
  31. package/dist/{esm/react → cjs}/gridview/view.d.ts +11 -11
  32. package/dist/cjs/gridview/view.d.ts.map +1 -0
  33. package/dist/cjs/{react/gridview → gridview}/view.js +39 -41
  34. package/dist/cjs/gridview/view.js.map +1 -0
  35. package/dist/cjs/index.d.ts +11 -30
  36. package/dist/cjs/index.d.ts.map +1 -0
  37. package/dist/cjs/index.js +24 -47
  38. package/dist/cjs/index.js.map +1 -1
  39. package/dist/cjs/paneview/paneview.d.ts +25 -40
  40. package/dist/cjs/paneview/paneview.d.ts.map +1 -0
  41. package/dist/cjs/paneview/paneview.js +139 -201
  42. package/dist/cjs/paneview/paneview.js.map +1 -1
  43. package/dist/cjs/{react/paneview → paneview}/view.d.ts +20 -20
  44. package/dist/cjs/paneview/view.d.ts.map +1 -0
  45. package/dist/cjs/{react/paneview → paneview}/view.js +44 -44
  46. package/dist/cjs/paneview/view.js.map +1 -0
  47. package/dist/{esm/react → cjs}/react.d.ts +36 -36
  48. package/dist/cjs/react.d.ts.map +1 -0
  49. package/dist/cjs/{react/react.js → react.js} +196 -194
  50. package/dist/cjs/react.js.map +1 -0
  51. package/dist/{esm/react → cjs}/splitview/splitview.d.ts +23 -24
  52. package/dist/cjs/splitview/splitview.d.ts.map +1 -0
  53. package/dist/cjs/{react/splitview → splitview}/splitview.js +91 -108
  54. package/dist/cjs/splitview/splitview.js.map +1 -0
  55. package/dist/{esm/react → cjs}/splitview/view.d.ts +11 -10
  56. package/dist/cjs/splitview/view.d.ts.map +1 -0
  57. package/dist/cjs/{react/splitview → splitview}/view.js +39 -40
  58. package/dist/cjs/splitview/view.js.map +1 -0
  59. package/dist/cjs/svg.d.ts +4 -3
  60. package/dist/cjs/svg.d.ts.map +1 -0
  61. package/dist/cjs/svg.js +35 -43
  62. package/dist/cjs/svg.js.map +1 -1
  63. package/dist/cjs/types.d.ts +8 -8
  64. package/dist/cjs/types.d.ts.map +1 -0
  65. package/dist/cjs/types.js +2 -7
  66. package/dist/cjs/types.js.map +1 -1
  67. package/dist/dockview.amd.js +7047 -7153
  68. package/dist/dockview.amd.min.js +2 -2
  69. package/dist/dockview.amd.min.noStyle.js +2 -2
  70. package/dist/dockview.amd.noStyle.js +7043 -7149
  71. package/dist/dockview.cjs.js +7052 -7158
  72. package/dist/dockview.esm.js +7035 -7151
  73. package/dist/dockview.esm.min.js +2 -2
  74. package/dist/dockview.js +7047 -7153
  75. package/dist/dockview.min.js +2 -2
  76. package/dist/dockview.min.noStyle.js +2 -2
  77. package/dist/dockview.noStyle.js +7043 -7149
  78. package/dist/{cjs/react → esm}/dockview/defaultTab.d.ts +5 -4
  79. package/dist/esm/dockview/defaultTab.d.ts.map +1 -0
  80. package/dist/esm/{react/dockview → dockview}/defaultTab.js +35 -34
  81. package/dist/esm/dockview/defaultTab.js.map +1 -0
  82. package/dist/{cjs/react → esm}/dockview/dockview.d.ts +36 -35
  83. package/dist/esm/dockview/dockview.d.ts.map +1 -0
  84. package/dist/esm/{react/dockview → dockview}/dockview.js +155 -158
  85. package/dist/esm/dockview/dockview.js.map +1 -0
  86. package/dist/esm/{react/dockview → dockview}/groupControlsRenderer.d.ts +33 -43
  87. package/dist/esm/dockview/groupControlsRenderer.d.ts.map +1 -0
  88. package/dist/esm/{react/dockview → dockview}/groupControlsRenderer.js +69 -68
  89. package/dist/esm/dockview/groupControlsRenderer.js.map +1 -0
  90. package/dist/{cjs/react → esm}/dockview/reactContentPart.d.ts +23 -30
  91. package/dist/esm/dockview/reactContentPart.d.ts.map +1 -0
  92. package/dist/esm/{react/dockview → dockview}/reactContentPart.js +42 -49
  93. package/dist/esm/dockview/reactContentPart.js.map +1 -0
  94. package/dist/esm/{react/dockview → dockview}/reactHeaderPart.d.ts +19 -26
  95. package/dist/esm/dockview/reactHeaderPart.d.ts.map +1 -0
  96. package/dist/esm/{react/dockview → dockview}/reactHeaderPart.js +35 -46
  97. package/dist/esm/dockview/reactHeaderPart.js.map +1 -0
  98. package/dist/esm/{react/dockview → dockview}/reactWatermarkPart.d.ts +25 -29
  99. package/dist/esm/dockview/reactWatermarkPart.d.ts.map +1 -0
  100. package/dist/esm/{react/dockview → dockview}/reactWatermarkPart.js +45 -55
  101. package/dist/esm/dockview/reactWatermarkPart.js.map +1 -0
  102. package/dist/esm/gridview/gridview.d.ts +23 -132
  103. package/dist/esm/gridview/gridview.d.ts.map +1 -0
  104. package/dist/esm/gridview/gridview.js +55 -423
  105. package/dist/esm/gridview/gridview.js.map +1 -0
  106. package/dist/{cjs/react → esm}/gridview/view.d.ts +11 -11
  107. package/dist/esm/gridview/view.d.ts.map +1 -0
  108. package/dist/esm/{react/gridview → gridview}/view.js +18 -19
  109. package/dist/esm/gridview/view.js.map +1 -0
  110. package/dist/esm/index.d.ts +11 -30
  111. package/dist/esm/index.d.ts.map +1 -0
  112. package/dist/esm/index.js +9 -23
  113. package/dist/esm/index.js.map +1 -0
  114. package/dist/esm/paneview/paneview.d.ts +25 -40
  115. package/dist/esm/paneview/paneview.d.ts.map +1 -0
  116. package/dist/esm/paneview/paneview.js +85 -145
  117. package/dist/esm/paneview/paneview.js.map +1 -0
  118. package/dist/esm/{react/paneview → paneview}/view.d.ts +20 -20
  119. package/dist/esm/paneview/view.d.ts.map +1 -0
  120. package/dist/esm/{react/paneview → paneview}/view.js +36 -35
  121. package/dist/esm/paneview/view.js.map +1 -0
  122. package/dist/{cjs/react → esm}/react.d.ts +36 -36
  123. package/dist/esm/react.d.ts.map +1 -0
  124. package/dist/esm/{react/react.js → react.js} +128 -125
  125. package/dist/esm/react.js.map +1 -0
  126. package/dist/{cjs/react → esm}/splitview/splitview.d.ts +23 -24
  127. package/dist/esm/splitview/splitview.d.ts.map +1 -0
  128. package/dist/esm/{react/splitview → splitview}/splitview.js +50 -66
  129. package/dist/esm/splitview/splitview.js.map +1 -0
  130. package/dist/{cjs/react → esm}/splitview/view.d.ts +11 -10
  131. package/dist/esm/splitview/view.d.ts.map +1 -0
  132. package/dist/esm/{react/splitview → splitview}/view.js +18 -18
  133. package/dist/esm/splitview/view.js.map +1 -0
  134. package/dist/esm/svg.d.ts +4 -3
  135. package/dist/esm/svg.d.ts.map +1 -0
  136. package/dist/esm/svg.js +8 -31
  137. package/dist/esm/svg.js.map +1 -0
  138. package/dist/esm/types.d.ts +8 -8
  139. package/dist/esm/types.d.ts.map +1 -0
  140. package/dist/esm/types.js +2 -3
  141. package/dist/{cjs/panel → esm}/types.js.map +1 -1
  142. package/dist/styles/dockview.css +1 -617
  143. package/package.json +9 -5
  144. package/dist/cjs/actionbar/actionsContainer.d.ts +0 -7
  145. package/dist/cjs/actionbar/actionsContainer.js +0 -27
  146. package/dist/cjs/actionbar/actionsContainer.js.map +0 -1
  147. package/dist/cjs/api/component.api.d.ts +0 -145
  148. package/dist/cjs/api/component.api.js +0 -579
  149. package/dist/cjs/api/component.api.js.map +0 -1
  150. package/dist/cjs/api/dockviewPanelApi.d.ts +0 -34
  151. package/dist/cjs/api/dockviewPanelApi.js +0 -84
  152. package/dist/cjs/api/dockviewPanelApi.js.map +0 -1
  153. package/dist/cjs/api/gridviewPanelApi.d.ts +0 -37
  154. package/dist/cjs/api/gridviewPanelApi.js +0 -48
  155. package/dist/cjs/api/gridviewPanelApi.js.map +0 -1
  156. package/dist/cjs/api/panelApi.d.ts +0 -88
  157. package/dist/cjs/api/panelApi.js +0 -138
  158. package/dist/cjs/api/panelApi.js.map +0 -1
  159. package/dist/cjs/api/paneviewPanelApi.d.ts +0 -26
  160. package/dist/cjs/api/paneviewPanelApi.js +0 -58
  161. package/dist/cjs/api/paneviewPanelApi.js.map +0 -1
  162. package/dist/cjs/api/splitviewPanelApi.d.ts +0 -32
  163. package/dist/cjs/api/splitviewPanelApi.js +0 -48
  164. package/dist/cjs/api/splitviewPanelApi.js.map +0 -1
  165. package/dist/cjs/array.d.ts +0 -13
  166. package/dist/cjs/array.js +0 -78
  167. package/dist/cjs/array.js.map +0 -1
  168. package/dist/cjs/dnd/abstractDragHandler.d.ts +0 -11
  169. package/dist/cjs/dnd/abstractDragHandler.js +0 -116
  170. package/dist/cjs/dnd/abstractDragHandler.js.map +0 -1
  171. package/dist/cjs/dnd/dataTransfer.d.ts +0 -31
  172. package/dist/cjs/dnd/dataTransfer.js +0 -101
  173. package/dist/cjs/dnd/dataTransfer.js.map +0 -1
  174. package/dist/cjs/dnd/dnd.d.ts +0 -27
  175. package/dist/cjs/dnd/dnd.js +0 -60
  176. package/dist/cjs/dnd/dnd.js.map +0 -1
  177. package/dist/cjs/dnd/droptarget.d.ts +0 -42
  178. package/dist/cjs/dnd/droptarget.js +0 -280
  179. package/dist/cjs/dnd/droptarget.js.map +0 -1
  180. package/dist/cjs/dnd/ghost.d.ts +0 -1
  181. package/dist/cjs/dnd/ghost.js +0 -15
  182. package/dist/cjs/dnd/ghost.js.map +0 -1
  183. package/dist/cjs/dnd/groupDragHandler.d.ts +0 -11
  184. package/dist/cjs/dnd/groupDragHandler.js +0 -62
  185. package/dist/cjs/dnd/groupDragHandler.js.map +0 -1
  186. package/dist/cjs/dockview/components/tab/defaultTab.d.ts +0 -27
  187. package/dist/cjs/dockview/components/tab/defaultTab.js +0 -122
  188. package/dist/cjs/dockview/components/tab/defaultTab.js.map +0 -1
  189. package/dist/cjs/dockview/components/watermark/watermark.d.ts +0 -20
  190. package/dist/cjs/dockview/components/watermark/watermark.js +0 -102
  191. package/dist/cjs/dockview/components/watermark/watermark.js.map +0 -1
  192. package/dist/cjs/dockview/defaultGroupPanelView.d.ts +0 -29
  193. package/dist/cjs/dockview/defaultGroupPanelView.js +0 -69
  194. package/dist/cjs/dockview/defaultGroupPanelView.js.map +0 -1
  195. package/dist/cjs/dockview/deserializer.d.ts +0 -6
  196. package/dist/cjs/dockview/deserializer.js +0 -3
  197. package/dist/cjs/dockview/deserializer.js.map +0 -1
  198. package/dist/cjs/dockview/dockviewComponent.d.ts +0 -133
  199. package/dist/cjs/dockview/dockviewComponent.js +0 -796
  200. package/dist/cjs/dockview/dockviewComponent.js.map +0 -1
  201. package/dist/cjs/dockview/dockviewPanel.d.ts +0 -42
  202. package/dist/cjs/dockview/dockviewPanel.js +0 -161
  203. package/dist/cjs/dockview/dockviewPanel.js.map +0 -1
  204. package/dist/cjs/dockview/options.d.ts +0 -110
  205. package/dist/cjs/dockview/options.js +0 -32
  206. package/dist/cjs/dockview/options.js.map +0 -1
  207. package/dist/cjs/dockview/validation.d.ts +0 -2
  208. package/dist/cjs/dockview/validation.js +0 -135
  209. package/dist/cjs/dockview/validation.js.map +0 -1
  210. package/dist/cjs/dom.d.ts +0 -14
  211. package/dist/cjs/dom.js +0 -183
  212. package/dist/cjs/dom.js.map +0 -1
  213. package/dist/cjs/events.d.ts +0 -30
  214. package/dist/cjs/events.js +0 -130
  215. package/dist/cjs/events.js.map +0 -1
  216. package/dist/cjs/gridview/baseComponentGridview.d.ts +0 -87
  217. package/dist/cjs/gridview/baseComponentGridview.js +0 -279
  218. package/dist/cjs/gridview/baseComponentGridview.js.map +0 -1
  219. package/dist/cjs/gridview/basePanelView.d.ts +0 -43
  220. package/dist/cjs/gridview/basePanelView.js +0 -124
  221. package/dist/cjs/gridview/basePanelView.js.map +0 -1
  222. package/dist/cjs/gridview/branchNode.d.ts +0 -49
  223. package/dist/cjs/gridview/branchNode.js +0 -343
  224. package/dist/cjs/gridview/branchNode.js.map +0 -1
  225. package/dist/cjs/gridview/gridviewComponent.d.ts +0 -85
  226. package/dist/cjs/gridview/gridviewComponent.js +0 -325
  227. package/dist/cjs/gridview/gridviewComponent.js.map +0 -1
  228. package/dist/cjs/gridview/gridviewPanel.d.ts +0 -60
  229. package/dist/cjs/gridview/gridviewPanel.js +0 -202
  230. package/dist/cjs/gridview/gridviewPanel.js.map +0 -1
  231. package/dist/cjs/gridview/leafNode.d.ts +0 -34
  232. package/dist/cjs/gridview/leafNode.js +0 -171
  233. package/dist/cjs/gridview/leafNode.js.map +0 -1
  234. package/dist/cjs/gridview/options.d.ts +0 -18
  235. package/dist/cjs/gridview/options.js +0 -3
  236. package/dist/cjs/gridview/options.js.map +0 -1
  237. package/dist/cjs/gridview/types.d.ts +0 -3
  238. package/dist/cjs/gridview/types.js +0 -3
  239. package/dist/cjs/gridview/types.js.map +0 -1
  240. package/dist/cjs/groupview/dnd.d.ts +0 -6
  241. package/dist/cjs/groupview/dnd.js +0 -11
  242. package/dist/cjs/groupview/dnd.js.map +0 -1
  243. package/dist/cjs/groupview/groupview.d.ts +0 -177
  244. package/dist/cjs/groupview/groupview.js +0 -608
  245. package/dist/cjs/groupview/groupview.js.map +0 -1
  246. package/dist/cjs/groupview/groupviewPanel.d.ts +0 -35
  247. package/dist/cjs/groupview/groupviewPanel.js +0 -129
  248. package/dist/cjs/groupview/groupviewPanel.js.map +0 -1
  249. package/dist/cjs/groupview/panel/content.d.ts +0 -30
  250. package/dist/cjs/groupview/panel/content.js +0 -101
  251. package/dist/cjs/groupview/panel/content.js.map +0 -1
  252. package/dist/cjs/groupview/tab.d.ts +0 -31
  253. package/dist/cjs/groupview/tab.js +0 -125
  254. package/dist/cjs/groupview/tab.js.map +0 -1
  255. package/dist/cjs/groupview/titlebar/tabsContainer.d.ts +0 -65
  256. package/dist/cjs/groupview/titlebar/tabsContainer.js +0 -252
  257. package/dist/cjs/groupview/titlebar/tabsContainer.js.map +0 -1
  258. package/dist/cjs/groupview/titlebar/voidContainer.d.ts +0 -15
  259. package/dist/cjs/groupview/titlebar/voidContainer.js +0 -74
  260. package/dist/cjs/groupview/titlebar/voidContainer.js.map +0 -1
  261. package/dist/cjs/groupview/types.d.ts +0 -68
  262. package/dist/cjs/groupview/types.js +0 -3
  263. package/dist/cjs/groupview/types.js.map +0 -1
  264. package/dist/cjs/hostedContainer.d.ts +0 -23
  265. package/dist/cjs/hostedContainer.js +0 -74
  266. package/dist/cjs/hostedContainer.js.map +0 -1
  267. package/dist/cjs/lifecycle.d.ts +0 -22
  268. package/dist/cjs/lifecycle.js +0 -89
  269. package/dist/cjs/lifecycle.js.map +0 -1
  270. package/dist/cjs/math.d.ts +0 -4
  271. package/dist/cjs/math.js +0 -16
  272. package/dist/cjs/math.js.map +0 -1
  273. package/dist/cjs/panel/componentFactory.d.ts +0 -8
  274. package/dist/cjs/panel/componentFactory.js +0 -31
  275. package/dist/cjs/panel/componentFactory.js.map +0 -1
  276. package/dist/cjs/panel/types.d.ts +0 -33
  277. package/dist/cjs/panel/types.js +0 -3
  278. package/dist/cjs/paneview/defaultPaneviewHeader.d.ts +0 -21
  279. package/dist/cjs/paneview/defaultPaneviewHeader.js +0 -91
  280. package/dist/cjs/paneview/defaultPaneviewHeader.js.map +0 -1
  281. package/dist/cjs/paneview/draggablePaneviewPanel.d.ts +0 -19
  282. package/dist/cjs/paneview/draggablePaneviewPanel.js +0 -131
  283. package/dist/cjs/paneview/draggablePaneviewPanel.js.map +0 -1
  284. package/dist/cjs/paneview/options.d.ts +0 -27
  285. package/dist/cjs/paneview/options.js +0 -3
  286. package/dist/cjs/paneview/options.js.map +0 -1
  287. package/dist/cjs/paneview/paneviewComponent.d.ts +0 -129
  288. package/dist/cjs/paneview/paneviewComponent.js +0 -395
  289. package/dist/cjs/paneview/paneviewComponent.js.map +0 -1
  290. package/dist/cjs/paneview/paneviewPanel.d.ts +0 -92
  291. package/dist/cjs/paneview/paneviewPanel.js +0 -276
  292. package/dist/cjs/paneview/paneviewPanel.js.map +0 -1
  293. package/dist/cjs/react/deserializer.d.ts +0 -10
  294. package/dist/cjs/react/deserializer.js +0 -44
  295. package/dist/cjs/react/deserializer.js.map +0 -1
  296. package/dist/cjs/react/dockview/defaultTab.js.map +0 -1
  297. package/dist/cjs/react/dockview/dockview.js.map +0 -1
  298. package/dist/cjs/react/dockview/groupControlsRenderer.js.map +0 -1
  299. package/dist/cjs/react/dockview/reactContentPart.js.map +0 -1
  300. package/dist/cjs/react/dockview/reactHeaderPart.js.map +0 -1
  301. package/dist/cjs/react/dockview/reactWatermarkPart.js.map +0 -1
  302. package/dist/cjs/react/dockview/v2/reactContentRenderer.d.ts +0 -29
  303. package/dist/cjs/react/dockview/v2/reactContentRenderer.js +0 -88
  304. package/dist/cjs/react/dockview/v2/reactContentRenderer.js.map +0 -1
  305. package/dist/cjs/react/dockview/v2/reactGroupPanelView.d.ts +0 -7
  306. package/dist/cjs/react/dockview/v2/reactGroupPanelView.js +0 -35
  307. package/dist/cjs/react/dockview/v2/reactGroupPanelView.js.map +0 -1
  308. package/dist/cjs/react/dockview/v2/webviewContentRenderer.d.ts +0 -18
  309. package/dist/cjs/react/dockview/v2/webviewContentRenderer.js +0 -46
  310. package/dist/cjs/react/dockview/v2/webviewContentRenderer.js.map +0 -1
  311. package/dist/cjs/react/gridview/gridview.d.ts +0 -24
  312. package/dist/cjs/react/gridview/gridview.js +0 -113
  313. package/dist/cjs/react/gridview/gridview.js.map +0 -1
  314. package/dist/cjs/react/gridview/view.js.map +0 -1
  315. package/dist/cjs/react/index.d.ts +0 -9
  316. package/dist/cjs/react/index.js +0 -24
  317. package/dist/cjs/react/index.js.map +0 -1
  318. package/dist/cjs/react/paneview/paneview.d.ts +0 -30
  319. package/dist/cjs/react/paneview/paneview.js +0 -156
  320. package/dist/cjs/react/paneview/paneview.js.map +0 -1
  321. package/dist/cjs/react/paneview/view.js.map +0 -1
  322. package/dist/cjs/react/react.js.map +0 -1
  323. package/dist/cjs/react/splitview/splitview.js.map +0 -1
  324. package/dist/cjs/react/splitview/view.js.map +0 -1
  325. package/dist/cjs/react/svg.d.ts +0 -3
  326. package/dist/cjs/react/svg.js +0 -36
  327. package/dist/cjs/react/svg.js.map +0 -1
  328. package/dist/cjs/react/types.d.ts +0 -7
  329. package/dist/cjs/react/types.js +0 -3
  330. package/dist/cjs/react/types.js.map +0 -1
  331. package/dist/cjs/splitview/core/options.d.ts +0 -26
  332. package/dist/cjs/splitview/core/options.js +0 -3
  333. package/dist/cjs/splitview/core/options.js.map +0 -1
  334. package/dist/cjs/splitview/core/splitview.d.ts +0 -127
  335. package/dist/cjs/splitview/core/splitview.js +0 -909
  336. package/dist/cjs/splitview/core/splitview.js.map +0 -1
  337. package/dist/cjs/splitview/core/viewItem.d.ts +0 -25
  338. package/dist/cjs/splitview/core/viewItem.js +0 -125
  339. package/dist/cjs/splitview/core/viewItem.js.map +0 -1
  340. package/dist/cjs/splitview/splitviewComponent.d.ts +0 -101
  341. package/dist/cjs/splitview/splitviewComponent.js +0 -374
  342. package/dist/cjs/splitview/splitviewComponent.js.map +0 -1
  343. package/dist/cjs/splitview/splitviewPanel.d.ts +0 -45
  344. package/dist/cjs/splitview/splitviewPanel.js +0 -180
  345. package/dist/cjs/splitview/splitviewPanel.js.map +0 -1
  346. package/dist/esm/actionbar/actionsContainer.d.ts +0 -7
  347. package/dist/esm/actionbar/actionsContainer.js +0 -17
  348. package/dist/esm/api/component.api.d.ts +0 -145
  349. package/dist/esm/api/component.api.js +0 -329
  350. package/dist/esm/api/dockviewPanelApi.d.ts +0 -34
  351. package/dist/esm/api/dockviewPanelApi.js +0 -48
  352. package/dist/esm/api/gridviewPanelApi.d.ts +0 -37
  353. package/dist/esm/api/gridviewPanelApi.js +0 -25
  354. package/dist/esm/api/panelApi.d.ts +0 -88
  355. package/dist/esm/api/panelApi.js +0 -95
  356. package/dist/esm/api/paneviewPanelApi.d.ts +0 -26
  357. package/dist/esm/api/paneviewPanelApi.js +0 -27
  358. package/dist/esm/api/splitviewPanelApi.d.ts +0 -32
  359. package/dist/esm/api/splitviewPanelApi.js +0 -25
  360. package/dist/esm/array.d.ts +0 -13
  361. package/dist/esm/array.js +0 -67
  362. package/dist/esm/dnd/abstractDragHandler.d.ts +0 -11
  363. package/dist/esm/dnd/abstractDragHandler.js +0 -37
  364. package/dist/esm/dnd/dataTransfer.d.ts +0 -31
  365. package/dist/esm/dnd/dataTransfer.js +0 -69
  366. package/dist/esm/dnd/dnd.d.ts +0 -27
  367. package/dist/esm/dnd/dnd.js +0 -36
  368. package/dist/esm/dnd/droptarget.d.ts +0 -42
  369. package/dist/esm/dnd/droptarget.js +0 -249
  370. package/dist/esm/dnd/ghost.d.ts +0 -1
  371. package/dist/esm/dnd/ghost.js +0 -10
  372. package/dist/esm/dnd/groupDragHandler.d.ts +0 -11
  373. package/dist/esm/dnd/groupDragHandler.js +0 -38
  374. package/dist/esm/dockview/components/tab/defaultTab.d.ts +0 -27
  375. package/dist/esm/dockview/components/tab/defaultTab.js +0 -79
  376. package/dist/esm/dockview/components/watermark/watermark.d.ts +0 -20
  377. package/dist/esm/dockview/components/watermark/watermark.js +0 -70
  378. package/dist/esm/dockview/defaultGroupPanelView.d.ts +0 -29
  379. package/dist/esm/dockview/defaultGroupPanelView.js +0 -44
  380. package/dist/esm/dockview/deserializer.d.ts +0 -6
  381. package/dist/esm/dockview/deserializer.js +0 -1
  382. package/dist/esm/dockview/dockviewComponent.d.ts +0 -133
  383. package/dist/esm/dockview/dockviewComponent.js +0 -632
  384. package/dist/esm/dockview/dockviewPanel.d.ts +0 -42
  385. package/dist/esm/dockview/dockviewPanel.js +0 -111
  386. package/dist/esm/dockview/options.d.ts +0 -110
  387. package/dist/esm/dockview/options.js +0 -24
  388. package/dist/esm/dockview/validation.d.ts +0 -2
  389. package/dist/esm/dockview/validation.js +0 -86
  390. package/dist/esm/dom.d.ts +0 -14
  391. package/dist/esm/dom.js +0 -113
  392. package/dist/esm/events.d.ts +0 -30
  393. package/dist/esm/events.js +0 -88
  394. package/dist/esm/gridview/baseComponentGridview.d.ts +0 -87
  395. package/dist/esm/gridview/baseComponentGridview.js +0 -188
  396. package/dist/esm/gridview/basePanelView.d.ts +0 -43
  397. package/dist/esm/gridview/basePanelView.js +0 -74
  398. package/dist/esm/gridview/branchNode.d.ts +0 -49
  399. package/dist/esm/gridview/branchNode.js +0 -218
  400. package/dist/esm/gridview/gridviewComponent.d.ts +0 -85
  401. package/dist/esm/gridview/gridviewComponent.js +0 -237
  402. package/dist/esm/gridview/gridviewPanel.d.ts +0 -60
  403. package/dist/esm/gridview/gridviewPanel.js +0 -138
  404. package/dist/esm/gridview/leafNode.d.ts +0 -34
  405. package/dist/esm/gridview/leafNode.js +0 -103
  406. package/dist/esm/gridview/options.d.ts +0 -18
  407. package/dist/esm/gridview/options.js +0 -1
  408. package/dist/esm/gridview/types.d.ts +0 -3
  409. package/dist/esm/gridview/types.js +0 -1
  410. package/dist/esm/groupview/dnd.d.ts +0 -6
  411. package/dist/esm/groupview/dnd.js +0 -7
  412. package/dist/esm/groupview/groupview.d.ts +0 -177
  413. package/dist/esm/groupview/groupview.js +0 -462
  414. package/dist/esm/groupview/groupviewPanel.d.ts +0 -35
  415. package/dist/esm/groupview/groupviewPanel.js +0 -61
  416. package/dist/esm/groupview/panel/content.d.ts +0 -30
  417. package/dist/esm/groupview/panel/content.js +0 -73
  418. package/dist/esm/groupview/tab.d.ts +0 -31
  419. package/dist/esm/groupview/tab.js +0 -94
  420. package/dist/esm/groupview/titlebar/tabsContainer.d.ts +0 -65
  421. package/dist/esm/groupview/titlebar/tabsContainer.js +0 -183
  422. package/dist/esm/groupview/titlebar/voidContainer.d.ts +0 -15
  423. package/dist/esm/groupview/titlebar/voidContainer.js +0 -47
  424. package/dist/esm/groupview/types.d.ts +0 -68
  425. package/dist/esm/groupview/types.js +0 -1
  426. package/dist/esm/hostedContainer.d.ts +0 -23
  427. package/dist/esm/hostedContainer.js +0 -63
  428. package/dist/esm/lifecycle.d.ts +0 -22
  429. package/dist/esm/lifecycle.js +0 -39
  430. package/dist/esm/math.d.ts +0 -4
  431. package/dist/esm/math.js +0 -10
  432. package/dist/esm/panel/componentFactory.d.ts +0 -8
  433. package/dist/esm/panel/componentFactory.js +0 -24
  434. package/dist/esm/panel/types.d.ts +0 -33
  435. package/dist/esm/panel/types.js +0 -1
  436. package/dist/esm/paneview/defaultPaneviewHeader.d.ts +0 -21
  437. package/dist/esm/paneview/defaultPaneviewHeader.js +0 -63
  438. package/dist/esm/paneview/draggablePaneviewPanel.d.ts +0 -19
  439. package/dist/esm/paneview/draggablePaneviewPanel.js +0 -91
  440. package/dist/esm/paneview/options.d.ts +0 -27
  441. package/dist/esm/paneview/options.js +0 -1
  442. package/dist/esm/paneview/paneviewComponent.d.ts +0 -129
  443. package/dist/esm/paneview/paneviewComponent.js +0 -270
  444. package/dist/esm/paneview/paneviewPanel.d.ts +0 -92
  445. package/dist/esm/paneview/paneviewPanel.js +0 -192
  446. package/dist/esm/react/deserializer.d.ts +0 -10
  447. package/dist/esm/react/deserializer.js +0 -38
  448. package/dist/esm/react/dockview/v2/reactContentRenderer.d.ts +0 -29
  449. package/dist/esm/react/dockview/v2/reactContentRenderer.js +0 -69
  450. package/dist/esm/react/dockview/v2/reactGroupPanelView.d.ts +0 -7
  451. package/dist/esm/react/dockview/v2/reactGroupPanelView.js +0 -12
  452. package/dist/esm/react/dockview/v2/webviewContentRenderer.d.ts +0 -18
  453. package/dist/esm/react/dockview/v2/webviewContentRenderer.js +0 -36
  454. package/dist/esm/react/gridview/gridview.d.ts +0 -24
  455. package/dist/esm/react/gridview/gridview.js +0 -70
  456. package/dist/esm/react/index.d.ts +0 -9
  457. package/dist/esm/react/index.js +0 -7
  458. package/dist/esm/react/paneview/paneview.d.ts +0 -30
  459. package/dist/esm/react/paneview/paneview.js +0 -100
  460. package/dist/esm/react/svg.d.ts +0 -3
  461. package/dist/esm/react/svg.js +0 -7
  462. package/dist/esm/react/types.d.ts +0 -7
  463. package/dist/esm/react/types.js +0 -1
  464. package/dist/esm/splitview/core/options.d.ts +0 -26
  465. package/dist/esm/splitview/core/options.js +0 -1
  466. package/dist/esm/splitview/core/splitview.d.ts +0 -127
  467. package/dist/esm/splitview/core/splitview.js +0 -689
  468. package/dist/esm/splitview/core/viewItem.d.ts +0 -25
  469. package/dist/esm/splitview/core/viewItem.js +0 -79
  470. package/dist/esm/splitview/splitviewComponent.d.ts +0 -101
  471. package/dist/esm/splitview/splitviewComponent.js +0 -249
  472. package/dist/esm/splitview/splitviewPanel.d.ts +0 -45
  473. package/dist/esm/splitview/splitviewPanel.js +0 -108
@@ -1,689 +0,0 @@
1
- /*---------------------------------------------------------------------------------------------
2
- * Accreditation: This file is largly based upon the MIT licenced VSCode sourcecode found at:
3
- * https://github.com/microsoft/vscode/tree/main/src/vs/base/browser/ui/splitview
4
- *--------------------------------------------------------------------------------------------*/
5
- import { removeClasses, addClasses, toggleClass, getElementsByTagName, } from '../../dom';
6
- import { clamp } from '../../math';
7
- import { Emitter } from '../../events';
8
- import { pushToStart, pushToEnd, range, firstIndex } from '../../array';
9
- import { ViewItem } from './viewItem';
10
- export var Orientation;
11
- (function (Orientation) {
12
- Orientation["HORIZONTAL"] = "HORIZONTAL";
13
- Orientation["VERTICAL"] = "VERTICAL";
14
- })(Orientation || (Orientation = {}));
15
- export var SashState;
16
- (function (SashState) {
17
- SashState[SashState["MAXIMUM"] = 0] = "MAXIMUM";
18
- SashState[SashState["MINIMUM"] = 1] = "MINIMUM";
19
- SashState[SashState["DISABLED"] = 2] = "DISABLED";
20
- SashState[SashState["ENABLED"] = 3] = "ENABLED";
21
- })(SashState || (SashState = {}));
22
- export var LayoutPriority;
23
- (function (LayoutPriority) {
24
- LayoutPriority["Low"] = "low";
25
- LayoutPriority["High"] = "high";
26
- LayoutPriority["Normal"] = "normal";
27
- })(LayoutPriority || (LayoutPriority = {}));
28
- export var Sizing;
29
- (function (Sizing) {
30
- Sizing.Distribute = { type: 'distribute' };
31
- function Split(index) {
32
- return { type: 'split', index };
33
- }
34
- Sizing.Split = Split;
35
- function Invisible(cachedVisibleSize) {
36
- return { type: 'invisible', cachedVisibleSize };
37
- }
38
- Sizing.Invisible = Invisible;
39
- })(Sizing || (Sizing = {}));
40
- export class Splitview {
41
- get size() {
42
- return this._size;
43
- }
44
- set size(value) {
45
- this._size = value;
46
- }
47
- get orthogonalSize() {
48
- return this._orthogonalSize;
49
- }
50
- set orthogonalSize(value) {
51
- this._orthogonalSize = value;
52
- }
53
- get length() {
54
- return this.views.length;
55
- }
56
- get proportions() {
57
- return this._proportions ? [...this._proportions] : undefined;
58
- }
59
- get orientation() {
60
- return this._orientation;
61
- }
62
- set orientation(value) {
63
- this._orientation = value;
64
- const tmp = this.size;
65
- this.size = this.orthogonalSize;
66
- this.orthogonalSize = tmp;
67
- removeClasses(this.element, 'horizontal', 'vertical');
68
- this.element.classList.add(this.orientation == Orientation.HORIZONTAL
69
- ? 'horizontal'
70
- : 'vertical');
71
- }
72
- get minimumSize() {
73
- return this.views.reduce((r, item) => r + item.minimumSize, 0);
74
- }
75
- get maximumSize() {
76
- return this.length === 0
77
- ? Number.POSITIVE_INFINITY
78
- : this.views.reduce((r, item) => r + item.maximumSize, 0);
79
- }
80
- get startSnappingEnabled() {
81
- return this._startSnappingEnabled;
82
- }
83
- set startSnappingEnabled(startSnappingEnabled) {
84
- if (this._startSnappingEnabled === startSnappingEnabled) {
85
- return;
86
- }
87
- this._startSnappingEnabled = startSnappingEnabled;
88
- this.updateSashEnablement();
89
- }
90
- get endSnappingEnabled() {
91
- return this._endSnappingEnabled;
92
- }
93
- set endSnappingEnabled(endSnappingEnabled) {
94
- if (this._endSnappingEnabled === endSnappingEnabled) {
95
- return;
96
- }
97
- this._endSnappingEnabled = endSnappingEnabled;
98
- this.updateSashEnablement();
99
- }
100
- constructor(container, options) {
101
- this.container = container;
102
- this.views = [];
103
- this.sashes = [];
104
- this._size = 0;
105
- this._orthogonalSize = 0;
106
- this.contentSize = 0;
107
- this._proportions = undefined;
108
- this._onDidSashEnd = new Emitter();
109
- this.onDidSashEnd = this._onDidSashEnd.event;
110
- this._onDidAddView = new Emitter();
111
- this.onDidAddView = this._onDidAddView.event;
112
- this._onDidRemoveView = new Emitter();
113
- this.onDidRemoveView = this._onDidRemoveView.event;
114
- this._startSnappingEnabled = true;
115
- this._endSnappingEnabled = true;
116
- this.resize = (index, delta, sizes = this.views.map((x) => x.size), lowPriorityIndexes, highPriorityIndexes, overloadMinDelta = Number.NEGATIVE_INFINITY, overloadMaxDelta = Number.POSITIVE_INFINITY, snapBefore, snapAfter) => {
117
- if (index < 0 || index > this.views.length) {
118
- return 0;
119
- }
120
- const upIndexes = range(index, -1);
121
- const downIndexes = range(index + 1, this.views.length);
122
- //
123
- if (highPriorityIndexes) {
124
- for (const i of highPriorityIndexes) {
125
- pushToStart(upIndexes, i);
126
- pushToStart(downIndexes, i);
127
- }
128
- }
129
- if (lowPriorityIndexes) {
130
- for (const i of lowPriorityIndexes) {
131
- pushToEnd(upIndexes, i);
132
- pushToEnd(downIndexes, i);
133
- }
134
- }
135
- //
136
- const upItems = upIndexes.map((i) => this.views[i]);
137
- const upSizes = upIndexes.map((i) => sizes[i]);
138
- //
139
- const downItems = downIndexes.map((i) => this.views[i]);
140
- const downSizes = downIndexes.map((i) => sizes[i]);
141
- //
142
- const minDeltaUp = upIndexes.reduce((_, i) => _ + this.views[i].minimumSize - sizes[i], 0);
143
- const maxDeltaUp = upIndexes.reduce((_, i) => _ + this.views[i].maximumSize - sizes[i], 0);
144
- //
145
- const maxDeltaDown = downIndexes.length === 0
146
- ? Number.POSITIVE_INFINITY
147
- : downIndexes.reduce((_, i) => _ + sizes[i] - this.views[i].minimumSize, 0);
148
- const minDeltaDown = downIndexes.length === 0
149
- ? Number.NEGATIVE_INFINITY
150
- : downIndexes.reduce((_, i) => _ + sizes[i] - this.views[i].maximumSize, 0);
151
- //
152
- const minDelta = Math.max(minDeltaUp, minDeltaDown);
153
- const maxDelta = Math.min(maxDeltaDown, maxDeltaUp);
154
- //
155
- let snapped = false;
156
- if (snapBefore) {
157
- const snapView = this.views[snapBefore.index];
158
- const visible = delta >= snapBefore.limitDelta;
159
- snapped = visible !== snapView.visible;
160
- snapView.setVisible(visible, snapBefore.size);
161
- }
162
- if (!snapped && snapAfter) {
163
- const snapView = this.views[snapAfter.index];
164
- const visible = delta < snapAfter.limitDelta;
165
- snapped = visible !== snapView.visible;
166
- snapView.setVisible(visible, snapAfter.size);
167
- }
168
- if (snapped) {
169
- return this.resize(index, delta, sizes, lowPriorityIndexes, highPriorityIndexes, overloadMinDelta, overloadMaxDelta);
170
- }
171
- //
172
- const tentativeDelta = clamp(delta, minDelta, maxDelta);
173
- let actualDelta = 0;
174
- //
175
- let deltaUp = tentativeDelta;
176
- for (let i = 0; i < upItems.length; i++) {
177
- const item = upItems[i];
178
- const size = clamp(upSizes[i] + deltaUp, item.minimumSize, item.maximumSize);
179
- const viewDelta = size - upSizes[i];
180
- actualDelta += viewDelta;
181
- deltaUp -= viewDelta;
182
- item.size = size;
183
- }
184
- //
185
- let deltaDown = actualDelta;
186
- for (let i = 0; i < downItems.length; i++) {
187
- const item = downItems[i];
188
- const size = clamp(downSizes[i] - deltaDown, item.minimumSize, item.maximumSize);
189
- const viewDelta = size - downSizes[i];
190
- deltaDown += viewDelta;
191
- item.size = size;
192
- }
193
- //
194
- return delta;
195
- };
196
- this._orientation = options.orientation;
197
- this.element = this.createContainer();
198
- this.proportionalLayout =
199
- options.proportionalLayout === undefined
200
- ? true
201
- : !!options.proportionalLayout;
202
- this.viewContainer = this.createViewContainer();
203
- this.sashContainer = this.createSashContainer();
204
- this.element.appendChild(this.sashContainer);
205
- this.element.appendChild(this.viewContainer);
206
- this.container.appendChild(this.element);
207
- this.style(options.styles);
208
- // We have an existing set of view, add them now
209
- if (options.descriptor) {
210
- this._size = options.descriptor.size;
211
- options.descriptor.views.forEach((viewDescriptor, index) => {
212
- const sizing = viewDescriptor.visible === undefined ||
213
- viewDescriptor.visible
214
- ? viewDescriptor.size
215
- : {
216
- type: 'invisible',
217
- cachedVisibleSize: viewDescriptor.size,
218
- };
219
- const view = viewDescriptor.view;
220
- this.addView(view, sizing, index, true
221
- // true skip layout
222
- );
223
- });
224
- // Initialize content size and proportions for first layout
225
- this.contentSize = this.views.reduce((r, i) => r + i.size, 0);
226
- this.saveProportions();
227
- }
228
- }
229
- style(styles) {
230
- if ((styles === null || styles === void 0 ? void 0 : styles.separatorBorder) === 'transparent') {
231
- removeClasses(this.element, 'separator-border');
232
- this.element.style.removeProperty('--dv-separator-border');
233
- }
234
- else {
235
- addClasses(this.element, 'separator-border');
236
- if (styles === null || styles === void 0 ? void 0 : styles.separatorBorder) {
237
- this.element.style.setProperty('--dv-separator-border', styles.separatorBorder);
238
- }
239
- }
240
- }
241
- isViewVisible(index) {
242
- if (index < 0 || index >= this.views.length) {
243
- throw new Error('Index out of bounds');
244
- }
245
- const viewItem = this.views[index];
246
- return viewItem.visible;
247
- }
248
- setViewVisible(index, visible) {
249
- if (index < 0 || index >= this.views.length) {
250
- throw new Error('Index out of bounds');
251
- }
252
- toggleClass(this.container, 'visible', visible);
253
- const viewItem = this.views[index];
254
- toggleClass(this.container, 'visible', visible);
255
- viewItem.setVisible(visible, viewItem.size);
256
- this.distributeEmptySpace(index);
257
- this.layoutViews();
258
- this.saveProportions();
259
- }
260
- getViewSize(index) {
261
- if (index < 0 || index >= this.views.length) {
262
- return -1;
263
- }
264
- return this.views[index].size;
265
- }
266
- resizeView(index, size) {
267
- if (index < 0 || index >= this.views.length) {
268
- return;
269
- }
270
- const indexes = range(this.views.length).filter((i) => i !== index);
271
- const lowPriorityIndexes = [
272
- ...indexes.filter((i) => this.views[i].priority === LayoutPriority.Low),
273
- index,
274
- ];
275
- const highPriorityIndexes = indexes.filter((i) => this.views[i].priority === LayoutPriority.High);
276
- const item = this.views[index];
277
- size = Math.round(size);
278
- size = clamp(size, item.minimumSize, Math.min(item.maximumSize, this._size));
279
- item.size = size;
280
- this.relayout(lowPriorityIndexes, highPriorityIndexes);
281
- }
282
- getViews() {
283
- return this.views.map((x) => x.view);
284
- }
285
- onDidChange(item, size) {
286
- const index = this.views.indexOf(item);
287
- if (index < 0 || index >= this.views.length) {
288
- return;
289
- }
290
- size = typeof size === 'number' ? size : item.size;
291
- size = clamp(size, item.minimumSize, item.maximumSize);
292
- item.size = size;
293
- this.relayout([index]);
294
- }
295
- addView(view, size = { type: 'distribute' }, index = this.views.length, skipLayout) {
296
- const container = document.createElement('div');
297
- container.className = 'view';
298
- container.appendChild(view.element);
299
- let viewSize;
300
- if (typeof size === 'number') {
301
- viewSize = size;
302
- }
303
- else if (size.type === 'split') {
304
- viewSize = this.getViewSize(size.index) / 2;
305
- }
306
- else if (size.type === 'invisible') {
307
- viewSize = { cachedVisibleSize: size.cachedVisibleSize };
308
- }
309
- else {
310
- viewSize = view.minimumSize;
311
- }
312
- const disposable = view.onDidChange((newSize) => this.onDidChange(viewItem, newSize.size));
313
- const dispose = () => {
314
- disposable === null || disposable === void 0 ? void 0 : disposable.dispose();
315
- this.viewContainer.removeChild(container);
316
- };
317
- const viewItem = new ViewItem(container, view, viewSize, { dispose });
318
- if (index === this.views.length) {
319
- this.viewContainer.appendChild(container);
320
- }
321
- else {
322
- this.viewContainer.insertBefore(container, this.viewContainer.children.item(index));
323
- }
324
- this.views.splice(index, 0, viewItem);
325
- if (this.views.length > 1) {
326
- //add sash
327
- const sash = document.createElement('div');
328
- sash.className = 'sash';
329
- const onStart = (event) => {
330
- for (const item of this.views) {
331
- item.enabled = false;
332
- }
333
- const iframes = [
334
- ...getElementsByTagName('iframe'),
335
- ...getElementsByTagName('webview'),
336
- ];
337
- for (const iframe of iframes) {
338
- iframe.style.pointerEvents = 'none';
339
- }
340
- const start = this._orientation === Orientation.HORIZONTAL
341
- ? event.clientX
342
- : event.clientY;
343
- const sashIndex = firstIndex(this.sashes, (s) => s.container === sash);
344
- //
345
- const sizes = this.views.map((x) => x.size);
346
- //
347
- let snapBefore;
348
- let snapAfter;
349
- const upIndexes = range(sashIndex, -1);
350
- const downIndexes = range(sashIndex + 1, this.views.length);
351
- const minDeltaUp = upIndexes.reduce((r, i) => r + (this.views[i].minimumSize - sizes[i]), 0);
352
- const maxDeltaUp = upIndexes.reduce((r, i) => r + (this.views[i].viewMaximumSize - sizes[i]), 0);
353
- const maxDeltaDown = downIndexes.length === 0
354
- ? Number.POSITIVE_INFINITY
355
- : downIndexes.reduce((r, i) => r + (sizes[i] - this.views[i].minimumSize), 0);
356
- const minDeltaDown = downIndexes.length === 0
357
- ? Number.NEGATIVE_INFINITY
358
- : downIndexes.reduce((r, i) => r +
359
- (sizes[i] - this.views[i].viewMaximumSize), 0);
360
- const minDelta = Math.max(minDeltaUp, minDeltaDown);
361
- const maxDelta = Math.min(maxDeltaDown, maxDeltaUp);
362
- const snapBeforeIndex = this.findFirstSnapIndex(upIndexes);
363
- const snapAfterIndex = this.findFirstSnapIndex(downIndexes);
364
- if (typeof snapBeforeIndex === 'number') {
365
- const snappedViewItem = this.views[snapBeforeIndex];
366
- const halfSize = Math.floor(snappedViewItem.viewMinimumSize / 2);
367
- snapBefore = {
368
- index: snapBeforeIndex,
369
- limitDelta: snappedViewItem.visible
370
- ? minDelta - halfSize
371
- : minDelta + halfSize,
372
- size: snappedViewItem.size,
373
- };
374
- }
375
- if (typeof snapAfterIndex === 'number') {
376
- const snappedViewItem = this.views[snapAfterIndex];
377
- const halfSize = Math.floor(snappedViewItem.viewMinimumSize / 2);
378
- snapAfter = {
379
- index: snapAfterIndex,
380
- limitDelta: snappedViewItem.visible
381
- ? maxDelta + halfSize
382
- : maxDelta - halfSize,
383
- size: snappedViewItem.size,
384
- };
385
- }
386
- //
387
- const mousemove = (mousemoveEvent) => {
388
- const current = this._orientation === Orientation.HORIZONTAL
389
- ? mousemoveEvent.clientX
390
- : mousemoveEvent.clientY;
391
- const delta = current - start;
392
- this.resize(sashIndex, delta, sizes, undefined, undefined, minDelta, maxDelta, snapBefore, snapAfter);
393
- this.distributeEmptySpace();
394
- this.layoutViews();
395
- };
396
- const end = () => {
397
- for (const item of this.views) {
398
- item.enabled = true;
399
- }
400
- for (const iframe of iframes) {
401
- iframe.style.pointerEvents = 'auto';
402
- }
403
- this.saveProportions();
404
- document.removeEventListener('mousemove', mousemove);
405
- document.removeEventListener('mouseup', end);
406
- document.removeEventListener('mouseend', end);
407
- this._onDidSashEnd.fire(undefined);
408
- };
409
- document.addEventListener('mousemove', mousemove);
410
- document.addEventListener('mouseup', end);
411
- document.addEventListener('mouseend', end);
412
- };
413
- sash.addEventListener('mousedown', onStart);
414
- const sashItem = {
415
- container: sash,
416
- disposable: () => {
417
- sash.removeEventListener('mousedown', onStart);
418
- this.sashContainer.removeChild(sash);
419
- },
420
- };
421
- this.sashContainer.appendChild(sash);
422
- this.sashes.push(sashItem);
423
- }
424
- if (!skipLayout) {
425
- this.relayout([index]);
426
- }
427
- if (!skipLayout &&
428
- typeof size !== 'number' &&
429
- size.type === 'distribute') {
430
- this.distributeViewSizes();
431
- }
432
- this._onDidAddView.fire(view);
433
- }
434
- distributeViewSizes() {
435
- const flexibleViewItems = [];
436
- let flexibleSize = 0;
437
- for (const item of this.views) {
438
- if (item.maximumSize - item.minimumSize > 0) {
439
- flexibleViewItems.push(item);
440
- flexibleSize += item.size;
441
- }
442
- }
443
- const size = Math.floor(flexibleSize / flexibleViewItems.length);
444
- for (const item of flexibleViewItems) {
445
- item.size = clamp(size, item.minimumSize, item.maximumSize);
446
- }
447
- const indexes = range(this.views.length);
448
- const lowPriorityIndexes = indexes.filter((i) => this.views[i].priority === LayoutPriority.Low);
449
- const highPriorityIndexes = indexes.filter((i) => this.views[i].priority === LayoutPriority.High);
450
- this.relayout(lowPriorityIndexes, highPriorityIndexes);
451
- }
452
- removeView(index, sizing, skipLayout = false) {
453
- // Remove view
454
- const viewItem = this.views.splice(index, 1)[0];
455
- viewItem.dispose();
456
- // Remove sash
457
- if (this.views.length >= 1) {
458
- const sashIndex = Math.max(index - 1, 0);
459
- const sashItem = this.sashes.splice(sashIndex, 1)[0];
460
- sashItem.disposable();
461
- }
462
- if (!skipLayout) {
463
- this.relayout();
464
- }
465
- if (sizing && sizing.type === 'distribute') {
466
- this.distributeViewSizes();
467
- }
468
- this._onDidRemoveView.fire(viewItem.view);
469
- return viewItem.view;
470
- }
471
- getViewCachedVisibleSize(index) {
472
- if (index < 0 || index >= this.views.length) {
473
- throw new Error('Index out of bounds');
474
- }
475
- const viewItem = this.views[index];
476
- return viewItem.cachedVisibleSize;
477
- }
478
- moveView(from, to) {
479
- const cachedVisibleSize = this.getViewCachedVisibleSize(from);
480
- const sizing = typeof cachedVisibleSize === 'undefined'
481
- ? this.getViewSize(from)
482
- : Sizing.Invisible(cachedVisibleSize);
483
- const view = this.removeView(from, undefined, true);
484
- this.addView(view, sizing, to);
485
- }
486
- layout(size, orthogonalSize) {
487
- const previousSize = Math.max(this.size, this.contentSize);
488
- this.size = size;
489
- this.orthogonalSize = orthogonalSize;
490
- if (!this.proportions) {
491
- const indexes = range(this.views.length);
492
- const lowPriorityIndexes = indexes.filter((i) => this.views[i].priority === LayoutPriority.Low);
493
- const highPriorityIndexes = indexes.filter((i) => this.views[i].priority === LayoutPriority.High);
494
- this.resize(this.views.length - 1, size - previousSize, undefined, lowPriorityIndexes, highPriorityIndexes);
495
- }
496
- else {
497
- for (let i = 0; i < this.views.length; i++) {
498
- const item = this.views[i];
499
- item.size = clamp(Math.round(this.proportions[i] * size), item.minimumSize, item.maximumSize);
500
- }
501
- }
502
- this.distributeEmptySpace();
503
- this.layoutViews();
504
- }
505
- relayout(lowPriorityIndexes, highPriorityIndexes) {
506
- const contentSize = this.views.reduce((r, i) => r + i.size, 0);
507
- this.resize(this.views.length - 1, this._size - contentSize, undefined, lowPriorityIndexes, highPriorityIndexes);
508
- this.distributeEmptySpace();
509
- this.layoutViews();
510
- this.saveProportions();
511
- }
512
- distributeEmptySpace(lowPriorityIndex) {
513
- const contentSize = this.views.reduce((r, i) => r + i.size, 0);
514
- let emptyDelta = this.size - contentSize;
515
- const indexes = range(this.views.length - 1, -1);
516
- const lowPriorityIndexes = indexes.filter((i) => this.views[i].priority === LayoutPriority.Low);
517
- const highPriorityIndexes = indexes.filter((i) => this.views[i].priority === LayoutPriority.High);
518
- for (const index of highPriorityIndexes) {
519
- pushToStart(indexes, index);
520
- }
521
- for (const index of lowPriorityIndexes) {
522
- pushToEnd(indexes, index);
523
- }
524
- if (typeof lowPriorityIndex === 'number') {
525
- pushToEnd(indexes, lowPriorityIndex);
526
- }
527
- for (let i = 0; emptyDelta !== 0 && i < indexes.length; i++) {
528
- const item = this.views[indexes[i]];
529
- const size = clamp(item.size + emptyDelta, item.minimumSize, item.maximumSize);
530
- const viewDelta = size - item.size;
531
- emptyDelta -= viewDelta;
532
- item.size = size;
533
- }
534
- }
535
- saveProportions() {
536
- if (this.proportionalLayout && this.contentSize > 0) {
537
- this._proportions = this.views.map((i) => i.size / this.contentSize);
538
- }
539
- }
540
- layoutViews() {
541
- this.contentSize = this.views.reduce((r, i) => r + i.size, 0);
542
- let sum = 0;
543
- const x = [];
544
- this.updateSashEnablement();
545
- for (let i = 0; i < this.views.length - 1; i++) {
546
- sum += this.views[i].size;
547
- x.push(sum);
548
- const offset = Math.min(Math.max(0, sum - 2), this.size - 4);
549
- if (this._orientation === Orientation.HORIZONTAL) {
550
- this.sashes[i].container.style.left = `${offset}px`;
551
- this.sashes[i].container.style.top = `0px`;
552
- }
553
- if (this._orientation === Orientation.VERTICAL) {
554
- this.sashes[i].container.style.left = `0px`;
555
- this.sashes[i].container.style.top = `${offset}px`;
556
- }
557
- }
558
- this.views.forEach((view, i) => {
559
- if (this._orientation === Orientation.HORIZONTAL) {
560
- view.container.style.width = `${view.size}px`;
561
- view.container.style.left = i == 0 ? '0px' : `${x[i - 1]}px`;
562
- view.container.style.top = '';
563
- view.container.style.height = '';
564
- }
565
- if (this._orientation === Orientation.VERTICAL) {
566
- view.container.style.height = `${view.size}px`;
567
- view.container.style.top = i == 0 ? '0px' : `${x[i - 1]}px`;
568
- view.container.style.width = '';
569
- view.container.style.left = '';
570
- }
571
- view.view.layout(view.size, this._orthogonalSize);
572
- });
573
- }
574
- findFirstSnapIndex(indexes) {
575
- // visible views first
576
- for (const index of indexes) {
577
- const viewItem = this.views[index];
578
- if (!viewItem.visible) {
579
- continue;
580
- }
581
- if (viewItem.snap) {
582
- return index;
583
- }
584
- }
585
- // then, hidden views
586
- for (const index of indexes) {
587
- const viewItem = this.views[index];
588
- if (viewItem.visible &&
589
- viewItem.maximumSize - viewItem.minimumSize > 0) {
590
- return undefined;
591
- }
592
- if (!viewItem.visible && viewItem.snap) {
593
- return index;
594
- }
595
- }
596
- return undefined;
597
- }
598
- updateSashEnablement() {
599
- let previous = false;
600
- const collapsesDown = this.views.map((i) => (previous = i.size - i.minimumSize > 0 || previous));
601
- previous = false;
602
- const expandsDown = this.views.map((i) => (previous = i.maximumSize - i.size > 0 || previous));
603
- const reverseViews = [...this.views].reverse();
604
- previous = false;
605
- const collapsesUp = reverseViews
606
- .map((i) => (previous = i.size - i.minimumSize > 0 || previous))
607
- .reverse();
608
- previous = false;
609
- const expandsUp = reverseViews
610
- .map((i) => (previous = i.maximumSize - i.size > 0 || previous))
611
- .reverse();
612
- let position = 0;
613
- for (let index = 0; index < this.sashes.length; index++) {
614
- const sash = this.sashes[index];
615
- const viewItem = this.views[index];
616
- position += viewItem.size;
617
- const min = !(collapsesDown[index] && expandsUp[index + 1]);
618
- const max = !(expandsDown[index] && collapsesUp[index + 1]);
619
- if (min && max) {
620
- const upIndexes = range(index, -1);
621
- const downIndexes = range(index + 1, this.views.length);
622
- const snapBeforeIndex = this.findFirstSnapIndex(upIndexes);
623
- const snapAfterIndex = this.findFirstSnapIndex(downIndexes);
624
- const snappedBefore = typeof snapBeforeIndex === 'number' &&
625
- !this.views[snapBeforeIndex].visible;
626
- const snappedAfter = typeof snapAfterIndex === 'number' &&
627
- !this.views[snapAfterIndex].visible;
628
- if (snappedBefore &&
629
- collapsesUp[index] &&
630
- (position > 0 || this.startSnappingEnabled)) {
631
- this.updateSash(sash, SashState.MINIMUM);
632
- }
633
- else if (snappedAfter &&
634
- collapsesDown[index] &&
635
- (position < this.contentSize || this.endSnappingEnabled)) {
636
- this.updateSash(sash, SashState.MAXIMUM);
637
- }
638
- else {
639
- this.updateSash(sash, SashState.DISABLED);
640
- }
641
- }
642
- else if (min && !max) {
643
- this.updateSash(sash, SashState.MINIMUM);
644
- }
645
- else if (!min && max) {
646
- this.updateSash(sash, SashState.MAXIMUM);
647
- }
648
- else {
649
- this.updateSash(sash, SashState.ENABLED);
650
- }
651
- }
652
- }
653
- updateSash(sash, state) {
654
- toggleClass(sash.container, 'disabled', state === SashState.DISABLED);
655
- toggleClass(sash.container, 'enabled', state === SashState.ENABLED);
656
- toggleClass(sash.container, 'maximum', state === SashState.MAXIMUM);
657
- toggleClass(sash.container, 'minimum', state === SashState.MINIMUM);
658
- }
659
- createViewContainer() {
660
- const element = document.createElement('div');
661
- element.className = 'view-container';
662
- return element;
663
- }
664
- createSashContainer() {
665
- const element = document.createElement('div');
666
- element.className = 'sash-container';
667
- return element;
668
- }
669
- createContainer() {
670
- const element = document.createElement('div');
671
- const orientationClassname = this._orientation === Orientation.HORIZONTAL
672
- ? 'horizontal'
673
- : 'vertical';
674
- element.className = `split-view-container ${orientationClassname}`;
675
- return element;
676
- }
677
- dispose() {
678
- this._onDidSashEnd.dispose();
679
- this._onDidAddView.dispose();
680
- this._onDidRemoveView.dispose();
681
- for (let i = 0; i < this.element.children.length; i++) {
682
- if (this.element.children.item(i) === this.element) {
683
- this.element.removeChild(this.element);
684
- break;
685
- }
686
- }
687
- this.element.remove();
688
- }
689
- }