dockview 1.5.1 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (378) 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 +145 -144
  6. package/dist/cjs/api/component.api.js +578 -571
  7. package/dist/cjs/api/component.api.js.map +1 -1
  8. package/dist/cjs/api/{groupPanelApi.d.ts → dockviewPanelApi.d.ts} +34 -34
  9. package/dist/cjs/api/{groupPanelApi.js → dockviewPanelApi.js} +84 -86
  10. package/dist/cjs/api/dockviewPanelApi.js.map +1 -0
  11. package/dist/cjs/api/gridviewPanelApi.d.ts +37 -36
  12. package/dist/cjs/api/gridviewPanelApi.js +47 -47
  13. package/dist/cjs/api/gridviewPanelApi.js.map +1 -1
  14. package/dist/cjs/api/panelApi.d.ts +88 -81
  15. package/dist/cjs/api/panelApi.js +137 -121
  16. package/dist/cjs/api/panelApi.js.map +1 -1
  17. package/dist/cjs/api/paneviewPanelApi.d.ts +26 -26
  18. package/dist/cjs/api/paneviewPanelApi.js +57 -57
  19. package/dist/cjs/api/splitviewPanelApi.d.ts +32 -32
  20. package/dist/cjs/api/splitviewPanelApi.js +47 -47
  21. package/dist/cjs/array.d.ts +13 -13
  22. package/dist/cjs/array.js +77 -77
  23. package/dist/cjs/dnd/abstractDragHandler.d.ts +11 -11
  24. package/dist/cjs/dnd/abstractDragHandler.js +115 -115
  25. package/dist/cjs/dnd/abstractDragHandler.js.map +1 -1
  26. package/dist/cjs/dnd/dataTransfer.d.ts +31 -31
  27. package/dist/cjs/dnd/dataTransfer.js +100 -100
  28. package/dist/cjs/dnd/dataTransfer.js.map +1 -1
  29. package/dist/cjs/dnd/dnd.d.ts +27 -27
  30. package/dist/cjs/dnd/dnd.js +59 -64
  31. package/dist/cjs/dnd/dnd.js.map +1 -1
  32. package/dist/cjs/dnd/droptarget.d.ts +42 -37
  33. package/dist/cjs/dnd/droptarget.js +279 -201
  34. package/dist/cjs/dnd/droptarget.js.map +1 -1
  35. package/dist/cjs/dnd/ghost.d.ts +1 -0
  36. package/dist/cjs/dnd/ghost.js +15 -0
  37. package/dist/cjs/dnd/ghost.js.map +1 -0
  38. package/dist/cjs/dnd/groupDragHandler.d.ts +11 -0
  39. package/dist/cjs/dnd/groupDragHandler.js +62 -0
  40. package/dist/cjs/dnd/groupDragHandler.js.map +1 -0
  41. package/dist/cjs/dockview/components/tab/defaultTab.d.ts +27 -27
  42. package/dist/cjs/dockview/components/tab/defaultTab.js +121 -121
  43. package/dist/cjs/dockview/components/watermark/watermark.d.ts +20 -20
  44. package/dist/cjs/dockview/components/watermark/watermark.js +101 -101
  45. package/dist/cjs/dockview/defaultGroupPanelView.d.ts +29 -29
  46. package/dist/cjs/dockview/defaultGroupPanelView.js +68 -68
  47. package/dist/cjs/dockview/deserializer.d.ts +6 -5
  48. package/dist/cjs/dockview/deserializer.js +2 -2
  49. package/dist/cjs/dockview/dockviewComponent.d.ts +133 -125
  50. package/dist/cjs/dockview/dockviewComponent.js +795 -614
  51. package/dist/cjs/dockview/dockviewComponent.js.map +1 -1
  52. package/dist/{esm/dockview/dockviewGroupPanel.d.ts → cjs/dockview/dockviewPanel.d.ts} +42 -31
  53. package/dist/cjs/dockview/{dockviewGroupPanel.js → dockviewPanel.js} +161 -157
  54. package/dist/cjs/dockview/dockviewPanel.js.map +1 -0
  55. package/dist/cjs/dockview/options.d.ts +110 -88
  56. package/dist/cjs/dockview/options.js +31 -2
  57. package/dist/cjs/dockview/options.js.map +1 -1
  58. package/dist/cjs/dockview/validation.d.ts +2 -0
  59. package/dist/cjs/dockview/validation.js +135 -0
  60. package/dist/cjs/dockview/validation.js.map +1 -0
  61. package/dist/cjs/dom.d.ts +14 -14
  62. package/dist/cjs/dom.js +182 -182
  63. package/dist/cjs/events.d.ts +30 -30
  64. package/dist/cjs/events.js +129 -129
  65. package/dist/cjs/gridview/baseComponentGridview.d.ts +87 -87
  66. package/dist/cjs/gridview/baseComponentGridview.js +278 -279
  67. package/dist/cjs/gridview/baseComponentGridview.js.map +1 -1
  68. package/dist/cjs/gridview/basePanelView.d.ts +43 -43
  69. package/dist/cjs/gridview/basePanelView.js +123 -123
  70. package/dist/cjs/gridview/branchNode.d.ts +49 -46
  71. package/dist/cjs/gridview/branchNode.js +342 -342
  72. package/dist/cjs/gridview/branchNode.js.map +1 -1
  73. package/dist/cjs/gridview/gridview.d.ts +132 -123
  74. package/dist/cjs/gridview/gridview.js +510 -479
  75. package/dist/cjs/gridview/gridview.js.map +1 -1
  76. package/dist/cjs/gridview/gridviewComponent.d.ts +85 -85
  77. package/dist/cjs/gridview/gridviewComponent.js +324 -325
  78. package/dist/cjs/gridview/gridviewComponent.js.map +1 -1
  79. package/dist/cjs/gridview/gridviewPanel.d.ts +60 -60
  80. package/dist/cjs/gridview/gridviewPanel.js +201 -202
  81. package/dist/cjs/gridview/gridviewPanel.js.map +1 -1
  82. package/dist/cjs/gridview/leafNode.d.ts +34 -31
  83. package/dist/cjs/gridview/leafNode.js +170 -165
  84. package/dist/cjs/gridview/leafNode.js.map +1 -1
  85. package/dist/cjs/gridview/options.d.ts +18 -18
  86. package/dist/cjs/gridview/options.js +2 -2
  87. package/dist/cjs/gridview/types.d.ts +3 -3
  88. package/dist/cjs/gridview/types.js +2 -2
  89. package/dist/cjs/groupview/dnd.d.ts +6 -5
  90. package/dist/cjs/groupview/dnd.js +10 -9
  91. package/dist/cjs/groupview/dnd.js.map +1 -1
  92. package/dist/cjs/groupview/groupview.d.ts +177 -177
  93. package/dist/cjs/groupview/groupview.js +607 -589
  94. package/dist/cjs/groupview/groupview.js.map +1 -1
  95. package/dist/cjs/groupview/groupviewPanel.d.ts +35 -35
  96. package/dist/cjs/groupview/groupviewPanel.js +128 -128
  97. package/dist/cjs/groupview/panel/content.d.ts +30 -30
  98. package/dist/cjs/groupview/panel/content.js +100 -100
  99. package/dist/cjs/groupview/tab.d.ts +31 -41
  100. package/dist/cjs/groupview/tab.js +124 -120
  101. package/dist/cjs/groupview/tab.js.map +1 -1
  102. package/dist/cjs/groupview/titlebar/tabsContainer.d.ts +65 -68
  103. package/dist/cjs/groupview/titlebar/tabsContainer.js +251 -258
  104. package/dist/cjs/groupview/titlebar/tabsContainer.js.map +1 -1
  105. package/dist/cjs/groupview/titlebar/voidContainer.d.ts +15 -0
  106. package/dist/cjs/groupview/titlebar/voidContainer.js +74 -0
  107. package/dist/cjs/groupview/titlebar/voidContainer.js.map +1 -0
  108. package/dist/cjs/groupview/types.d.ts +68 -52
  109. package/dist/cjs/groupview/types.js +2 -2
  110. package/dist/cjs/hostedContainer.d.ts +23 -23
  111. package/dist/cjs/hostedContainer.js +73 -73
  112. package/dist/cjs/index.d.ts +30 -30
  113. package/dist/cjs/index.js +47 -46
  114. package/dist/cjs/index.js.map +1 -1
  115. package/dist/cjs/lifecycle.d.ts +22 -22
  116. package/dist/cjs/lifecycle.js +88 -88
  117. package/dist/cjs/math.d.ts +4 -4
  118. package/dist/cjs/math.js +15 -15
  119. package/dist/cjs/panel/componentFactory.d.ts +8 -8
  120. package/dist/cjs/panel/componentFactory.js +30 -30
  121. package/dist/cjs/panel/types.d.ts +33 -33
  122. package/dist/cjs/panel/types.js +2 -2
  123. package/dist/cjs/paneview/defaultPaneviewHeader.d.ts +21 -21
  124. package/dist/cjs/paneview/defaultPaneviewHeader.js +90 -90
  125. package/dist/cjs/paneview/draggablePaneviewPanel.d.ts +19 -19
  126. package/dist/cjs/paneview/draggablePaneviewPanel.js +130 -129
  127. package/dist/cjs/paneview/draggablePaneviewPanel.js.map +1 -1
  128. package/dist/cjs/paneview/options.d.ts +27 -27
  129. package/dist/cjs/paneview/options.js +2 -2
  130. package/dist/cjs/paneview/paneview.d.ts +40 -40
  131. package/dist/cjs/paneview/paneview.js +201 -201
  132. package/dist/cjs/paneview/paneviewComponent.d.ts +129 -129
  133. package/dist/cjs/paneview/paneviewComponent.js +394 -394
  134. package/dist/cjs/paneview/paneviewComponent.js.map +1 -1
  135. package/dist/cjs/paneview/paneviewPanel.d.ts +92 -89
  136. package/dist/cjs/paneview/paneviewPanel.js +275 -274
  137. package/dist/cjs/paneview/paneviewPanel.js.map +1 -1
  138. package/dist/cjs/react/deserializer.d.ts +10 -9
  139. package/dist/cjs/react/deserializer.js +43 -43
  140. package/dist/cjs/react/deserializer.js.map +1 -1
  141. package/dist/cjs/react/dockview/defaultTab.d.ts +4 -4
  142. package/dist/cjs/react/dockview/defaultTab.js +72 -72
  143. package/dist/cjs/react/dockview/dockview.d.ts +35 -34
  144. package/dist/cjs/react/dockview/dockview.js +213 -212
  145. package/dist/cjs/react/dockview/dockview.js.map +1 -1
  146. package/dist/cjs/react/dockview/groupControlsRenderer.d.ts +43 -43
  147. package/dist/cjs/react/dockview/groupControlsRenderer.js +86 -86
  148. package/dist/cjs/react/dockview/reactContentPart.d.ts +30 -30
  149. package/dist/cjs/react/dockview/reactContentPart.js +58 -58
  150. package/dist/cjs/react/dockview/reactHeaderPart.d.ts +26 -26
  151. package/dist/cjs/react/dockview/reactHeaderPart.js +55 -55
  152. package/dist/cjs/react/dockview/reactWatermarkPart.d.ts +29 -29
  153. package/dist/cjs/react/dockview/reactWatermarkPart.js +65 -65
  154. package/dist/cjs/react/dockview/v2/reactContentRenderer.d.ts +29 -29
  155. package/dist/cjs/react/dockview/v2/reactContentRenderer.js +87 -87
  156. package/dist/cjs/react/dockview/v2/reactGroupPanelView.d.ts +7 -7
  157. package/dist/cjs/react/dockview/v2/reactGroupPanelView.js +34 -34
  158. package/dist/cjs/react/dockview/v2/webviewContentRenderer.d.ts +18 -18
  159. package/dist/cjs/react/dockview/v2/webviewContentRenderer.js +45 -45
  160. package/dist/cjs/react/gridview/gridview.d.ts +24 -24
  161. package/dist/cjs/react/gridview/gridview.js +112 -112
  162. package/dist/cjs/react/gridview/view.d.ts +11 -11
  163. package/dist/cjs/react/gridview/view.js +41 -40
  164. package/dist/cjs/react/gridview/view.js.map +1 -1
  165. package/dist/cjs/react/index.d.ts +9 -9
  166. package/dist/cjs/react/index.js +23 -23
  167. package/dist/cjs/react/paneview/paneview.d.ts +30 -30
  168. package/dist/cjs/react/paneview/paneview.js +155 -155
  169. package/dist/cjs/react/paneview/view.d.ts +20 -20
  170. package/dist/cjs/react/paneview/view.js +44 -44
  171. package/dist/cjs/react/react.d.ts +36 -36
  172. package/dist/cjs/react/react.js +194 -194
  173. package/dist/cjs/react/splitview/splitview.d.ts +24 -24
  174. package/dist/cjs/react/splitview/splitview.js +108 -108
  175. package/dist/cjs/react/splitview/view.d.ts +10 -10
  176. package/dist/cjs/react/splitview/view.js +40 -40
  177. package/dist/cjs/react/svg.d.ts +3 -3
  178. package/dist/cjs/react/svg.js +35 -35
  179. package/dist/cjs/react/types.d.ts +7 -7
  180. package/dist/cjs/react/types.js +2 -2
  181. package/dist/cjs/splitview/core/options.d.ts +26 -26
  182. package/dist/cjs/splitview/core/options.js +2 -2
  183. package/dist/cjs/splitview/core/splitview.d.ts +127 -124
  184. package/dist/cjs/splitview/core/splitview.js +908 -908
  185. package/dist/cjs/splitview/core/splitview.js.map +1 -1
  186. package/dist/cjs/splitview/core/viewItem.d.ts +25 -25
  187. package/dist/cjs/splitview/core/viewItem.js +124 -124
  188. package/dist/cjs/splitview/splitviewComponent.d.ts +101 -101
  189. package/dist/cjs/splitview/splitviewComponent.js +373 -373
  190. package/dist/cjs/splitview/splitviewComponent.js.map +1 -1
  191. package/dist/cjs/splitview/splitviewPanel.d.ts +45 -42
  192. package/dist/cjs/splitview/splitviewPanel.js +179 -178
  193. package/dist/cjs/splitview/splitviewPanel.js.map +1 -1
  194. package/dist/cjs/svg.d.ts +3 -3
  195. package/dist/cjs/svg.js +43 -43
  196. package/dist/cjs/types.d.ts +8 -7
  197. package/dist/cjs/types.js +7 -2
  198. package/dist/cjs/types.js.map +1 -1
  199. package/dist/dockview.amd.js +7168 -6739
  200. package/dist/dockview.amd.min.js +2 -2
  201. package/dist/dockview.amd.min.noStyle.js +2 -2
  202. package/dist/dockview.amd.noStyle.js +7176 -6747
  203. package/dist/dockview.cjs.js +7167 -6738
  204. package/dist/dockview.esm.js +7152 -6726
  205. package/dist/dockview.esm.min.js +2 -2
  206. package/dist/dockview.js +7168 -6739
  207. package/dist/dockview.min.js +2 -2
  208. package/dist/dockview.min.noStyle.js +2 -2
  209. package/dist/dockview.noStyle.js +7176 -6747
  210. package/dist/esm/actionbar/actionsContainer.d.ts +7 -7
  211. package/dist/esm/actionbar/actionsContainer.js +17 -17
  212. package/dist/esm/api/component.api.d.ts +145 -144
  213. package/dist/esm/api/component.api.js +329 -326
  214. package/dist/esm/api/{groupPanelApi.d.ts → dockviewPanelApi.d.ts} +34 -34
  215. package/dist/esm/api/{groupPanelApi.js → dockviewPanelApi.js} +48 -50
  216. package/dist/esm/api/gridviewPanelApi.d.ts +37 -36
  217. package/dist/esm/api/gridviewPanelApi.js +25 -25
  218. package/dist/esm/api/panelApi.d.ts +88 -81
  219. package/dist/esm/api/panelApi.js +95 -79
  220. package/dist/esm/api/paneviewPanelApi.d.ts +26 -26
  221. package/dist/esm/api/paneviewPanelApi.js +27 -27
  222. package/dist/esm/api/splitviewPanelApi.d.ts +32 -32
  223. package/dist/esm/api/splitviewPanelApi.js +25 -25
  224. package/dist/esm/array.d.ts +13 -13
  225. package/dist/esm/array.js +67 -67
  226. package/dist/esm/dnd/abstractDragHandler.d.ts +11 -11
  227. package/dist/esm/dnd/abstractDragHandler.js +37 -37
  228. package/dist/esm/dnd/dataTransfer.d.ts +31 -31
  229. package/dist/esm/dnd/dataTransfer.js +69 -69
  230. package/dist/esm/dnd/dnd.d.ts +27 -27
  231. package/dist/esm/dnd/dnd.js +36 -41
  232. package/dist/esm/dnd/droptarget.d.ts +42 -37
  233. package/dist/esm/dnd/droptarget.js +249 -167
  234. package/dist/esm/dnd/ghost.d.ts +1 -0
  235. package/dist/esm/dnd/ghost.js +10 -0
  236. package/dist/esm/dnd/groupDragHandler.d.ts +11 -0
  237. package/dist/esm/dnd/groupDragHandler.js +38 -0
  238. package/dist/esm/dockview/components/tab/defaultTab.d.ts +27 -27
  239. package/dist/esm/dockview/components/tab/defaultTab.js +79 -79
  240. package/dist/esm/dockview/components/watermark/watermark.d.ts +20 -20
  241. package/dist/esm/dockview/components/watermark/watermark.js +70 -70
  242. package/dist/esm/dockview/defaultGroupPanelView.d.ts +29 -29
  243. package/dist/esm/dockview/defaultGroupPanelView.js +44 -44
  244. package/dist/esm/dockview/deserializer.d.ts +6 -5
  245. package/dist/esm/dockview/deserializer.js +1 -1
  246. package/dist/esm/dockview/dockviewComponent.d.ts +133 -125
  247. package/dist/esm/dockview/dockviewComponent.js +632 -468
  248. package/dist/{cjs/dockview/dockviewGroupPanel.d.ts → esm/dockview/dockviewPanel.d.ts} +42 -31
  249. package/dist/esm/dockview/{dockviewGroupPanel.js → dockviewPanel.js} +111 -107
  250. package/dist/esm/dockview/options.d.ts +110 -88
  251. package/dist/esm/dockview/options.js +24 -1
  252. package/dist/esm/dockview/validation.d.ts +2 -0
  253. package/dist/esm/dockview/validation.js +86 -0
  254. package/dist/esm/dom.d.ts +14 -14
  255. package/dist/esm/dom.js +113 -113
  256. package/dist/esm/events.d.ts +30 -30
  257. package/dist/esm/events.js +88 -88
  258. package/dist/esm/gridview/baseComponentGridview.d.ts +87 -87
  259. package/dist/esm/gridview/baseComponentGridview.js +188 -189
  260. package/dist/esm/gridview/basePanelView.d.ts +43 -43
  261. package/dist/esm/gridview/basePanelView.js +74 -74
  262. package/dist/esm/gridview/branchNode.d.ts +49 -46
  263. package/dist/esm/gridview/branchNode.js +218 -218
  264. package/dist/esm/gridview/gridview.d.ts +132 -123
  265. package/dist/esm/gridview/gridview.js +423 -397
  266. package/dist/esm/gridview/gridviewComponent.d.ts +85 -85
  267. package/dist/esm/gridview/gridviewComponent.js +237 -238
  268. package/dist/esm/gridview/gridviewPanel.d.ts +60 -60
  269. package/dist/esm/gridview/gridviewPanel.js +138 -138
  270. package/dist/esm/gridview/leafNode.d.ts +34 -31
  271. package/dist/esm/gridview/leafNode.js +103 -98
  272. package/dist/esm/gridview/options.d.ts +18 -18
  273. package/dist/esm/gridview/options.js +1 -1
  274. package/dist/esm/gridview/types.d.ts +3 -3
  275. package/dist/esm/gridview/types.js +1 -1
  276. package/dist/esm/groupview/dnd.d.ts +6 -5
  277. package/dist/esm/groupview/dnd.js +7 -6
  278. package/dist/esm/groupview/groupview.d.ts +177 -177
  279. package/dist/esm/groupview/groupview.js +462 -444
  280. package/dist/esm/groupview/groupviewPanel.d.ts +35 -35
  281. package/dist/esm/groupview/groupviewPanel.js +61 -61
  282. package/dist/esm/groupview/panel/content.d.ts +30 -30
  283. package/dist/esm/groupview/panel/content.js +73 -73
  284. package/dist/esm/groupview/tab.d.ts +31 -41
  285. package/dist/esm/groupview/tab.js +94 -90
  286. package/dist/esm/groupview/titlebar/tabsContainer.d.ts +65 -68
  287. package/dist/esm/groupview/titlebar/tabsContainer.js +183 -190
  288. package/dist/esm/groupview/titlebar/voidContainer.d.ts +15 -0
  289. package/dist/esm/groupview/titlebar/voidContainer.js +47 -0
  290. package/dist/esm/groupview/types.d.ts +68 -52
  291. package/dist/esm/groupview/types.js +1 -1
  292. package/dist/esm/hostedContainer.d.ts +23 -23
  293. package/dist/esm/hostedContainer.js +63 -63
  294. package/dist/esm/index.d.ts +30 -30
  295. package/dist/esm/index.js +23 -23
  296. package/dist/esm/lifecycle.d.ts +22 -22
  297. package/dist/esm/lifecycle.js +39 -39
  298. package/dist/esm/math.d.ts +4 -4
  299. package/dist/esm/math.js +10 -10
  300. package/dist/esm/panel/componentFactory.d.ts +8 -8
  301. package/dist/esm/panel/componentFactory.js +24 -24
  302. package/dist/esm/panel/types.d.ts +33 -33
  303. package/dist/esm/panel/types.js +1 -1
  304. package/dist/esm/paneview/defaultPaneviewHeader.d.ts +21 -21
  305. package/dist/esm/paneview/defaultPaneviewHeader.js +63 -63
  306. package/dist/esm/paneview/draggablePaneviewPanel.d.ts +19 -19
  307. package/dist/esm/paneview/draggablePaneviewPanel.js +91 -90
  308. package/dist/esm/paneview/options.d.ts +27 -27
  309. package/dist/esm/paneview/options.js +1 -1
  310. package/dist/esm/paneview/paneview.d.ts +40 -40
  311. package/dist/esm/paneview/paneview.js +145 -145
  312. package/dist/esm/paneview/paneviewComponent.d.ts +129 -129
  313. package/dist/esm/paneview/paneviewComponent.js +270 -270
  314. package/dist/esm/paneview/paneviewPanel.d.ts +92 -89
  315. package/dist/esm/paneview/paneviewPanel.js +192 -191
  316. package/dist/esm/react/deserializer.d.ts +10 -9
  317. package/dist/esm/react/deserializer.js +38 -38
  318. package/dist/esm/react/dockview/defaultTab.d.ts +4 -4
  319. package/dist/esm/react/dockview/defaultTab.js +34 -34
  320. package/dist/esm/react/dockview/dockview.d.ts +35 -34
  321. package/dist/esm/react/dockview/dockview.js +158 -157
  322. package/dist/esm/react/dockview/groupControlsRenderer.d.ts +43 -43
  323. package/dist/esm/react/dockview/groupControlsRenderer.js +68 -68
  324. package/dist/esm/react/dockview/reactContentPart.d.ts +30 -30
  325. package/dist/esm/react/dockview/reactContentPart.js +49 -49
  326. package/dist/esm/react/dockview/reactHeaderPart.d.ts +26 -26
  327. package/dist/esm/react/dockview/reactHeaderPart.js +46 -46
  328. package/dist/esm/react/dockview/reactWatermarkPart.d.ts +29 -29
  329. package/dist/esm/react/dockview/reactWatermarkPart.js +55 -55
  330. package/dist/esm/react/dockview/v2/reactContentRenderer.d.ts +29 -29
  331. package/dist/esm/react/dockview/v2/reactContentRenderer.js +69 -69
  332. package/dist/esm/react/dockview/v2/reactGroupPanelView.d.ts +7 -7
  333. package/dist/esm/react/dockview/v2/reactGroupPanelView.js +12 -12
  334. package/dist/esm/react/dockview/v2/webviewContentRenderer.d.ts +18 -18
  335. package/dist/esm/react/dockview/v2/webviewContentRenderer.js +36 -36
  336. package/dist/esm/react/gridview/gridview.d.ts +24 -24
  337. package/dist/esm/react/gridview/gridview.js +70 -70
  338. package/dist/esm/react/gridview/view.d.ts +11 -11
  339. package/dist/esm/react/gridview/view.js +19 -18
  340. package/dist/esm/react/index.d.ts +9 -9
  341. package/dist/esm/react/index.js +7 -7
  342. package/dist/esm/react/paneview/paneview.d.ts +30 -30
  343. package/dist/esm/react/paneview/paneview.js +100 -100
  344. package/dist/esm/react/paneview/view.d.ts +20 -20
  345. package/dist/esm/react/paneview/view.js +35 -35
  346. package/dist/esm/react/react.d.ts +36 -36
  347. package/dist/esm/react/react.js +125 -125
  348. package/dist/esm/react/splitview/splitview.d.ts +24 -24
  349. package/dist/esm/react/splitview/splitview.js +66 -66
  350. package/dist/esm/react/splitview/view.d.ts +10 -10
  351. package/dist/esm/react/splitview/view.js +18 -18
  352. package/dist/esm/react/svg.d.ts +3 -3
  353. package/dist/esm/react/svg.js +7 -7
  354. package/dist/esm/react/types.d.ts +7 -7
  355. package/dist/esm/react/types.js +1 -1
  356. package/dist/esm/splitview/core/options.d.ts +26 -26
  357. package/dist/esm/splitview/core/options.js +1 -1
  358. package/dist/esm/splitview/core/splitview.d.ts +127 -124
  359. package/dist/esm/splitview/core/splitview.js +689 -689
  360. package/dist/esm/splitview/core/viewItem.d.ts +25 -25
  361. package/dist/esm/splitview/core/viewItem.js +79 -79
  362. package/dist/esm/splitview/splitviewComponent.d.ts +101 -101
  363. package/dist/esm/splitview/splitviewComponent.js +249 -249
  364. package/dist/esm/splitview/splitviewPanel.d.ts +45 -42
  365. package/dist/esm/splitview/splitviewPanel.js +108 -107
  366. package/dist/esm/svg.d.ts +3 -3
  367. package/dist/esm/svg.js +31 -31
  368. package/dist/esm/types.d.ts +8 -7
  369. package/dist/esm/types.js +3 -1
  370. package/dist/styles/dockview.css +23 -26
  371. package/package.json +12 -16
  372. package/dist/cjs/api/groupPanelApi.js.map +0 -1
  373. package/dist/cjs/dockview/dockviewGroupPanel.js.map +0 -1
  374. package/dist/cjs/groupview/groupPanel.d.ts +0 -32
  375. package/dist/cjs/groupview/groupPanel.js +0 -3
  376. package/dist/cjs/groupview/groupPanel.js.map +0 -1
  377. package/dist/esm/groupview/groupPanel.d.ts +0 -32
  378. package/dist/esm/groupview/groupPanel.js +0 -1
@@ -1,909 +1,909 @@
1
- "use strict";
2
- /*---------------------------------------------------------------------------------------------
3
- * Accreditation: This file is largly based upon the MIT licenced VSCode sourcecode found at:
4
- * https://github.com/microsoft/vscode/tree/main/src/vs/base/browser/ui/splitview
5
- *--------------------------------------------------------------------------------------------*/
6
- var __values = (this && this.__values) || function(o) {
7
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
8
- if (m) return m.call(o);
9
- if (o && typeof o.length === "number") return {
10
- next: function () {
11
- if (o && i >= o.length) o = void 0;
12
- return { value: o && o[i++], done: !o };
13
- }
14
- };
15
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
16
- };
17
- var __read = (this && this.__read) || function (o, n) {
18
- var m = typeof Symbol === "function" && o[Symbol.iterator];
19
- if (!m) return o;
20
- var i = m.call(o), r, ar = [], e;
21
- try {
22
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
23
- }
24
- catch (error) { e = { error: error }; }
25
- finally {
26
- try {
27
- if (r && !r.done && (m = i["return"])) m.call(i);
28
- }
29
- finally { if (e) throw e.error; }
30
- }
31
- return ar;
32
- };
33
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
34
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
35
- if (ar || !(i in from)) {
36
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
37
- ar[i] = from[i];
38
- }
39
- }
40
- return to.concat(ar || Array.prototype.slice.call(from));
41
- };
42
- Object.defineProperty(exports, "__esModule", { value: true });
43
- exports.Splitview = exports.Sizing = exports.LayoutPriority = exports.SashState = exports.Orientation = void 0;
44
- var dom_1 = require("../../dom");
45
- var math_1 = require("../../math");
46
- var events_1 = require("../../events");
47
- var array_1 = require("../../array");
48
- var viewItem_1 = require("./viewItem");
49
- var Orientation;
50
- (function (Orientation) {
51
- Orientation["HORIZONTAL"] = "HORIZONTAL";
52
- Orientation["VERTICAL"] = "VERTICAL";
53
- })(Orientation = exports.Orientation || (exports.Orientation = {}));
54
- var SashState;
55
- (function (SashState) {
56
- SashState[SashState["MAXIMUM"] = 0] = "MAXIMUM";
57
- SashState[SashState["MINIMUM"] = 1] = "MINIMUM";
58
- SashState[SashState["DISABLED"] = 2] = "DISABLED";
59
- SashState[SashState["ENABLED"] = 3] = "ENABLED";
60
- })(SashState = exports.SashState || (exports.SashState = {}));
61
- var LayoutPriority;
62
- (function (LayoutPriority) {
63
- LayoutPriority["Low"] = "low";
64
- LayoutPriority["High"] = "high";
65
- LayoutPriority["Normal"] = "normal";
66
- })(LayoutPriority = exports.LayoutPriority || (exports.LayoutPriority = {}));
67
- var Sizing;
68
- (function (Sizing) {
69
- Sizing.Distribute = { type: 'distribute' };
70
- function Split(index) {
71
- return { type: 'split', index: index };
72
- }
73
- Sizing.Split = Split;
74
- function Invisible(cachedVisibleSize) {
75
- return { type: 'invisible', cachedVisibleSize: cachedVisibleSize };
76
- }
77
- Sizing.Invisible = Invisible;
78
- })(Sizing = exports.Sizing || (exports.Sizing = {}));
79
- var Splitview = /** @class */ (function () {
80
- function Splitview(container, options) {
81
- var _this = this;
82
- this.container = container;
83
- this.views = [];
84
- this.sashes = [];
85
- this._size = 0;
86
- this._orthogonalSize = 0;
87
- this.contentSize = 0;
88
- this._proportions = undefined;
89
- this._onDidSashEnd = new events_1.Emitter();
90
- this.onDidSashEnd = this._onDidSashEnd.event;
91
- this._onDidAddView = new events_1.Emitter();
92
- this.onDidAddView = this._onDidAddView.event;
93
- this._onDidRemoveView = new events_1.Emitter();
94
- this.onDidRemoveView = this._onDidRemoveView.event;
95
- this._startSnappingEnabled = true;
96
- this._endSnappingEnabled = true;
97
- this.resize = function (index, delta, sizes, lowPriorityIndexes, highPriorityIndexes, overloadMinDelta, overloadMaxDelta, snapBefore, snapAfter) {
98
- var e_1, _a, e_2, _b;
99
- if (sizes === void 0) { sizes = _this.views.map(function (x) { return x.size; }); }
100
- if (overloadMinDelta === void 0) { overloadMinDelta = Number.NEGATIVE_INFINITY; }
101
- if (overloadMaxDelta === void 0) { overloadMaxDelta = Number.POSITIVE_INFINITY; }
102
- if (index < 0 || index > _this.views.length) {
103
- return 0;
104
- }
105
- var upIndexes = (0, array_1.range)(index, -1);
106
- var downIndexes = (0, array_1.range)(index + 1, _this.views.length);
107
- //
108
- if (highPriorityIndexes) {
109
- try {
110
- for (var highPriorityIndexes_1 = __values(highPriorityIndexes), highPriorityIndexes_1_1 = highPriorityIndexes_1.next(); !highPriorityIndexes_1_1.done; highPriorityIndexes_1_1 = highPriorityIndexes_1.next()) {
111
- var i = highPriorityIndexes_1_1.value;
112
- (0, array_1.pushToStart)(upIndexes, i);
113
- (0, array_1.pushToStart)(downIndexes, i);
114
- }
115
- }
116
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
117
- finally {
118
- try {
119
- if (highPriorityIndexes_1_1 && !highPriorityIndexes_1_1.done && (_a = highPriorityIndexes_1.return)) _a.call(highPriorityIndexes_1);
120
- }
121
- finally { if (e_1) throw e_1.error; }
122
- }
123
- }
124
- if (lowPriorityIndexes) {
125
- try {
126
- for (var lowPriorityIndexes_1 = __values(lowPriorityIndexes), lowPriorityIndexes_1_1 = lowPriorityIndexes_1.next(); !lowPriorityIndexes_1_1.done; lowPriorityIndexes_1_1 = lowPriorityIndexes_1.next()) {
127
- var i = lowPriorityIndexes_1_1.value;
128
- (0, array_1.pushToEnd)(upIndexes, i);
129
- (0, array_1.pushToEnd)(downIndexes, i);
130
- }
131
- }
132
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
133
- finally {
134
- try {
135
- if (lowPriorityIndexes_1_1 && !lowPriorityIndexes_1_1.done && (_b = lowPriorityIndexes_1.return)) _b.call(lowPriorityIndexes_1);
136
- }
137
- finally { if (e_2) throw e_2.error; }
138
- }
139
- }
140
- //
141
- var upItems = upIndexes.map(function (i) { return _this.views[i]; });
142
- var upSizes = upIndexes.map(function (i) { return sizes[i]; });
143
- //
144
- var downItems = downIndexes.map(function (i) { return _this.views[i]; });
145
- var downSizes = downIndexes.map(function (i) { return sizes[i]; });
146
- //
147
- var minDeltaUp = upIndexes.reduce(function (_, i) { return _ + _this.views[i].minimumSize - sizes[i]; }, 0);
148
- var maxDeltaUp = upIndexes.reduce(function (_, i) { return _ + _this.views[i].maximumSize - sizes[i]; }, 0);
149
- //
150
- var maxDeltaDown = downIndexes.length === 0
151
- ? Number.POSITIVE_INFINITY
152
- : downIndexes.reduce(function (_, i) { return _ + sizes[i] - _this.views[i].minimumSize; }, 0);
153
- var minDeltaDown = downIndexes.length === 0
154
- ? Number.NEGATIVE_INFINITY
155
- : downIndexes.reduce(function (_, i) { return _ + sizes[i] - _this.views[i].maximumSize; }, 0);
156
- //
157
- var minDelta = Math.max(minDeltaUp, minDeltaDown);
158
- var maxDelta = Math.min(maxDeltaDown, maxDeltaUp);
159
- //
160
- var snapped = false;
161
- if (snapBefore) {
162
- var snapView = _this.views[snapBefore.index];
163
- var visible = delta >= snapBefore.limitDelta;
164
- snapped = visible !== snapView.visible;
165
- snapView.setVisible(visible, snapBefore.size);
166
- }
167
- if (!snapped && snapAfter) {
168
- var snapView = _this.views[snapAfter.index];
169
- var visible = delta < snapAfter.limitDelta;
170
- snapped = visible !== snapView.visible;
171
- snapView.setVisible(visible, snapAfter.size);
172
- }
173
- if (snapped) {
174
- return _this.resize(index, delta, sizes, lowPriorityIndexes, highPriorityIndexes, overloadMinDelta, overloadMaxDelta);
175
- }
176
- //
177
- var tentativeDelta = (0, math_1.clamp)(delta, minDelta, maxDelta);
178
- var actualDelta = 0;
179
- //
180
- var deltaUp = tentativeDelta;
181
- for (var i = 0; i < upItems.length; i++) {
182
- var item = upItems[i];
183
- var size = (0, math_1.clamp)(upSizes[i] + deltaUp, item.minimumSize, item.maximumSize);
184
- var viewDelta = size - upSizes[i];
185
- actualDelta += viewDelta;
186
- deltaUp -= viewDelta;
187
- item.size = size;
188
- }
189
- //
190
- var deltaDown = actualDelta;
191
- for (var i = 0; i < downItems.length; i++) {
192
- var item = downItems[i];
193
- var size = (0, math_1.clamp)(downSizes[i] - deltaDown, item.minimumSize, item.maximumSize);
194
- var viewDelta = size - downSizes[i];
195
- deltaDown += viewDelta;
196
- item.size = size;
197
- }
198
- //
199
- return delta;
200
- };
201
- this._orientation = options.orientation;
202
- this.element = this.createContainer();
203
- this.proportionalLayout =
204
- options.proportionalLayout === undefined
205
- ? true
206
- : !!options.proportionalLayout;
207
- this.viewContainer = this.createViewContainer();
208
- this.sashContainer = this.createSashContainer();
209
- this.element.appendChild(this.sashContainer);
210
- this.element.appendChild(this.viewContainer);
211
- this.container.appendChild(this.element);
212
- this.style(options.styles);
213
- // We have an existing set of view, add them now
214
- if (options.descriptor) {
215
- this._size = options.descriptor.size;
216
- options.descriptor.views.forEach(function (viewDescriptor, index) {
217
- var sizing = viewDescriptor.visible === undefined ||
218
- viewDescriptor.visible
219
- ? viewDescriptor.size
220
- : {
221
- type: 'invisible',
222
- cachedVisibleSize: viewDescriptor.size,
223
- };
224
- var view = viewDescriptor.view;
225
- _this.addView(view, sizing, index, true
226
- // true skip layout
227
- );
228
- });
229
- // Initialize content size and proportions for first layout
230
- this.contentSize = this.views.reduce(function (r, i) { return r + i.size; }, 0);
231
- this.saveProportions();
232
- }
233
- }
234
- Object.defineProperty(Splitview.prototype, "size", {
235
- get: function () {
236
- return this._size;
237
- },
238
- set: function (value) {
239
- this._size = value;
240
- },
241
- enumerable: false,
242
- configurable: true
243
- });
244
- Object.defineProperty(Splitview.prototype, "orthogonalSize", {
245
- get: function () {
246
- return this._orthogonalSize;
247
- },
248
- set: function (value) {
249
- this._orthogonalSize = value;
250
- },
251
- enumerable: false,
252
- configurable: true
253
- });
254
- Object.defineProperty(Splitview.prototype, "length", {
255
- get: function () {
256
- return this.views.length;
257
- },
258
- enumerable: false,
259
- configurable: true
260
- });
261
- Object.defineProperty(Splitview.prototype, "proportions", {
262
- get: function () {
263
- return this._proportions ? __spreadArray([], __read(this._proportions), false) : undefined;
264
- },
265
- enumerable: false,
266
- configurable: true
267
- });
268
- Object.defineProperty(Splitview.prototype, "orientation", {
269
- get: function () {
270
- return this._orientation;
271
- },
272
- set: function (value) {
273
- this._orientation = value;
274
- var tmp = this.size;
275
- this.size = this.orthogonalSize;
276
- this.orthogonalSize = tmp;
277
- (0, dom_1.removeClasses)(this.element, 'horizontal', 'vertical');
278
- this.element.classList.add(this.orientation == Orientation.HORIZONTAL
279
- ? 'horizontal'
280
- : 'vertical');
281
- },
282
- enumerable: false,
283
- configurable: true
284
- });
285
- Object.defineProperty(Splitview.prototype, "minimumSize", {
286
- get: function () {
287
- return this.views.reduce(function (r, item) { return r + item.minimumSize; }, 0);
288
- },
289
- enumerable: false,
290
- configurable: true
291
- });
292
- Object.defineProperty(Splitview.prototype, "maximumSize", {
293
- get: function () {
294
- return this.length === 0
295
- ? Number.POSITIVE_INFINITY
296
- : this.views.reduce(function (r, item) { return r + item.maximumSize; }, 0);
297
- },
298
- enumerable: false,
299
- configurable: true
300
- });
301
- Object.defineProperty(Splitview.prototype, "startSnappingEnabled", {
302
- get: function () {
303
- return this._startSnappingEnabled;
304
- },
305
- set: function (startSnappingEnabled) {
306
- if (this._startSnappingEnabled === startSnappingEnabled) {
307
- return;
308
- }
309
- this._startSnappingEnabled = startSnappingEnabled;
310
- this.updateSashEnablement();
311
- },
312
- enumerable: false,
313
- configurable: true
314
- });
315
- Object.defineProperty(Splitview.prototype, "endSnappingEnabled", {
316
- get: function () {
317
- return this._endSnappingEnabled;
318
- },
319
- set: function (endSnappingEnabled) {
320
- if (this._endSnappingEnabled === endSnappingEnabled) {
321
- return;
322
- }
323
- this._endSnappingEnabled = endSnappingEnabled;
324
- this.updateSashEnablement();
325
- },
326
- enumerable: false,
327
- configurable: true
328
- });
329
- Splitview.prototype.style = function (styles) {
330
- if ((styles === null || styles === void 0 ? void 0 : styles.separatorBorder) === 'transparent') {
331
- (0, dom_1.removeClasses)(this.element, 'separator-border');
332
- this.element.style.removeProperty('--dv-separator-border');
333
- }
334
- else {
335
- (0, dom_1.addClasses)(this.element, 'separator-border');
336
- if (styles === null || styles === void 0 ? void 0 : styles.separatorBorder) {
337
- this.element.style.setProperty('--dv-separator-border', styles.separatorBorder);
338
- }
339
- }
340
- };
341
- Splitview.prototype.isViewVisible = function (index) {
342
- if (index < 0 || index >= this.views.length) {
343
- throw new Error('Index out of bounds');
344
- }
345
- var viewItem = this.views[index];
346
- return viewItem.visible;
347
- };
348
- Splitview.prototype.setViewVisible = function (index, visible) {
349
- if (index < 0 || index >= this.views.length) {
350
- throw new Error('Index out of bounds');
351
- }
352
- (0, dom_1.toggleClass)(this.container, 'visible', visible);
353
- var viewItem = this.views[index];
354
- (0, dom_1.toggleClass)(this.container, 'visible', visible);
355
- viewItem.setVisible(visible, viewItem.size);
356
- this.distributeEmptySpace(index);
357
- this.layoutViews();
358
- this.saveProportions();
359
- };
360
- Splitview.prototype.getViewSize = function (index) {
361
- if (index < 0 || index >= this.views.length) {
362
- return -1;
363
- }
364
- return this.views[index].size;
365
- };
366
- Splitview.prototype.resizeView = function (index, size) {
367
- var _this = this;
368
- if (index < 0 || index >= this.views.length) {
369
- return;
370
- }
371
- var indexes = (0, array_1.range)(this.views.length).filter(function (i) { return i !== index; });
372
- var lowPriorityIndexes = __spreadArray(__spreadArray([], __read(indexes.filter(function (i) { return _this.views[i].priority === LayoutPriority.Low; })), false), [
373
- index,
374
- ], false);
375
- var highPriorityIndexes = indexes.filter(function (i) { return _this.views[i].priority === LayoutPriority.High; });
376
- var item = this.views[index];
377
- size = Math.round(size);
378
- size = (0, math_1.clamp)(size, item.minimumSize, Math.min(item.maximumSize, this._size));
379
- item.size = size;
380
- this.relayout(lowPriorityIndexes, highPriorityIndexes);
381
- };
382
- Splitview.prototype.getViews = function () {
383
- return this.views.map(function (x) { return x.view; });
384
- };
385
- Splitview.prototype.onDidChange = function (item, size) {
386
- var index = this.views.indexOf(item);
387
- if (index < 0 || index >= this.views.length) {
388
- return;
389
- }
390
- size = typeof size === 'number' ? size : item.size;
391
- size = (0, math_1.clamp)(size, item.minimumSize, item.maximumSize);
392
- item.size = size;
393
- this.relayout([index]);
394
- };
395
- Splitview.prototype.addView = function (view, size, index, skipLayout) {
396
- var _this = this;
397
- if (size === void 0) { size = { type: 'distribute' }; }
398
- if (index === void 0) { index = this.views.length; }
399
- var container = document.createElement('div');
400
- container.className = 'view';
401
- container.appendChild(view.element);
402
- var viewSize;
403
- if (typeof size === 'number') {
404
- viewSize = size;
405
- }
406
- else if (size.type === 'split') {
407
- viewSize = this.getViewSize(size.index) / 2;
408
- }
409
- else if (size.type === 'invisible') {
410
- viewSize = { cachedVisibleSize: size.cachedVisibleSize };
411
- }
412
- else {
413
- viewSize = view.minimumSize;
414
- }
415
- var disposable = view.onDidChange(function (newSize) {
416
- return _this.onDidChange(viewItem, newSize);
417
- });
418
- var dispose = function () {
419
- disposable === null || disposable === void 0 ? void 0 : disposable.dispose();
420
- _this.viewContainer.removeChild(container);
421
- };
422
- var viewItem = new viewItem_1.ViewItem(container, view, viewSize, { dispose: dispose });
423
- if (index === this.views.length) {
424
- this.viewContainer.appendChild(container);
425
- }
426
- else {
427
- this.viewContainer.insertBefore(container, this.viewContainer.children.item(index));
428
- }
429
- this.views.splice(index, 0, viewItem);
430
- if (this.views.length > 1) {
431
- //add sash
432
- var sash_1 = document.createElement('div');
433
- sash_1.className = 'sash';
434
- var onStart_1 = function (event) {
435
- var e_3, _a, e_4, _b;
436
- try {
437
- for (var _c = __values(_this.views), _d = _c.next(); !_d.done; _d = _c.next()) {
438
- var item = _d.value;
439
- item.enabled = false;
440
- }
441
- }
442
- catch (e_3_1) { e_3 = { error: e_3_1 }; }
443
- finally {
444
- try {
445
- if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
446
- }
447
- finally { if (e_3) throw e_3.error; }
448
- }
449
- var iframes = __spreadArray(__spreadArray([], __read((0, dom_1.getElementsByTagName)('iframe')), false), __read((0, dom_1.getElementsByTagName)('webview')), false);
450
- try {
451
- for (var iframes_1 = __values(iframes), iframes_1_1 = iframes_1.next(); !iframes_1_1.done; iframes_1_1 = iframes_1.next()) {
452
- var iframe = iframes_1_1.value;
453
- iframe.style.pointerEvents = 'none';
454
- }
455
- }
456
- catch (e_4_1) { e_4 = { error: e_4_1 }; }
457
- finally {
458
- try {
459
- if (iframes_1_1 && !iframes_1_1.done && (_b = iframes_1.return)) _b.call(iframes_1);
460
- }
461
- finally { if (e_4) throw e_4.error; }
462
- }
463
- var start = _this._orientation === Orientation.HORIZONTAL
464
- ? event.clientX
465
- : event.clientY;
466
- var sashIndex = (0, array_1.firstIndex)(_this.sashes, function (s) { return s.container === sash_1; });
467
- //
468
- var sizes = _this.views.map(function (x) { return x.size; });
469
- //
470
- var snapBefore;
471
- var snapAfter;
472
- var upIndexes = (0, array_1.range)(sashIndex, -1);
473
- var downIndexes = (0, array_1.range)(sashIndex + 1, _this.views.length);
474
- var minDeltaUp = upIndexes.reduce(function (r, i) { return r + (_this.views[i].minimumSize - sizes[i]); }, 0);
475
- var maxDeltaUp = upIndexes.reduce(function (r, i) { return r + (_this.views[i].viewMaximumSize - sizes[i]); }, 0);
476
- var maxDeltaDown = downIndexes.length === 0
477
- ? Number.POSITIVE_INFINITY
478
- : downIndexes.reduce(function (r, i) {
479
- return r + (sizes[i] - _this.views[i].minimumSize);
480
- }, 0);
481
- var minDeltaDown = downIndexes.length === 0
482
- ? Number.NEGATIVE_INFINITY
483
- : downIndexes.reduce(function (r, i) {
484
- return r +
485
- (sizes[i] - _this.views[i].viewMaximumSize);
486
- }, 0);
487
- var minDelta = Math.max(minDeltaUp, minDeltaDown);
488
- var maxDelta = Math.min(maxDeltaDown, maxDeltaUp);
489
- var snapBeforeIndex = _this.findFirstSnapIndex(upIndexes);
490
- var snapAfterIndex = _this.findFirstSnapIndex(downIndexes);
491
- if (typeof snapBeforeIndex === 'number') {
492
- var snappedViewItem = _this.views[snapBeforeIndex];
493
- var halfSize = Math.floor(snappedViewItem.viewMinimumSize / 2);
494
- snapBefore = {
495
- index: snapBeforeIndex,
496
- limitDelta: snappedViewItem.visible
497
- ? minDelta - halfSize
498
- : minDelta + halfSize,
499
- size: snappedViewItem.size,
500
- };
501
- }
502
- if (typeof snapAfterIndex === 'number') {
503
- var snappedViewItem = _this.views[snapAfterIndex];
504
- var halfSize = Math.floor(snappedViewItem.viewMinimumSize / 2);
505
- snapAfter = {
506
- index: snapAfterIndex,
507
- limitDelta: snappedViewItem.visible
508
- ? maxDelta + halfSize
509
- : maxDelta - halfSize,
510
- size: snappedViewItem.size,
511
- };
512
- }
513
- //
514
- var mousemove = function (mousemoveEvent) {
515
- var current = _this._orientation === Orientation.HORIZONTAL
516
- ? mousemoveEvent.clientX
517
- : mousemoveEvent.clientY;
518
- var delta = current - start;
519
- _this.resize(sashIndex, delta, sizes, undefined, undefined, minDelta, maxDelta, snapBefore, snapAfter);
520
- _this.distributeEmptySpace();
521
- _this.layoutViews();
522
- };
523
- var end = function () {
524
- var e_5, _a, e_6, _b;
525
- try {
526
- for (var _c = __values(_this.views), _d = _c.next(); !_d.done; _d = _c.next()) {
527
- var item = _d.value;
528
- item.enabled = true;
529
- }
530
- }
531
- catch (e_5_1) { e_5 = { error: e_5_1 }; }
532
- finally {
533
- try {
534
- if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
535
- }
536
- finally { if (e_5) throw e_5.error; }
537
- }
538
- try {
539
- for (var iframes_2 = __values(iframes), iframes_2_1 = iframes_2.next(); !iframes_2_1.done; iframes_2_1 = iframes_2.next()) {
540
- var iframe = iframes_2_1.value;
541
- iframe.style.pointerEvents = 'auto';
542
- }
543
- }
544
- catch (e_6_1) { e_6 = { error: e_6_1 }; }
545
- finally {
546
- try {
547
- if (iframes_2_1 && !iframes_2_1.done && (_b = iframes_2.return)) _b.call(iframes_2);
548
- }
549
- finally { if (e_6) throw e_6.error; }
550
- }
551
- _this.saveProportions();
552
- document.removeEventListener('mousemove', mousemove);
553
- document.removeEventListener('mouseup', end);
554
- document.removeEventListener('mouseend', end);
555
- _this._onDidSashEnd.fire(undefined);
556
- };
557
- document.addEventListener('mousemove', mousemove);
558
- document.addEventListener('mouseup', end);
559
- document.addEventListener('mouseend', end);
560
- };
561
- sash_1.addEventListener('mousedown', onStart_1);
562
- var sashItem = {
563
- container: sash_1,
564
- disposable: function () {
565
- sash_1.removeEventListener('mousedown', onStart_1);
566
- _this.sashContainer.removeChild(sash_1);
567
- },
568
- };
569
- this.sashContainer.appendChild(sash_1);
570
- this.sashes.push(sashItem);
571
- }
572
- if (!skipLayout) {
573
- this.relayout([index]);
574
- }
575
- if (!skipLayout &&
576
- typeof size !== 'number' &&
577
- size.type === 'distribute') {
578
- this.distributeViewSizes();
579
- }
580
- this._onDidAddView.fire(view);
581
- };
582
- Splitview.prototype.distributeViewSizes = function () {
583
- var e_7, _a, e_8, _b;
584
- var _this = this;
585
- var flexibleViewItems = [];
586
- var flexibleSize = 0;
587
- try {
588
- for (var _c = __values(this.views), _d = _c.next(); !_d.done; _d = _c.next()) {
589
- var item = _d.value;
590
- if (item.maximumSize - item.minimumSize > 0) {
591
- flexibleViewItems.push(item);
592
- flexibleSize += item.size;
593
- }
594
- }
595
- }
596
- catch (e_7_1) { e_7 = { error: e_7_1 }; }
597
- finally {
598
- try {
599
- if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
600
- }
601
- finally { if (e_7) throw e_7.error; }
602
- }
603
- var size = Math.floor(flexibleSize / flexibleViewItems.length);
604
- try {
605
- for (var flexibleViewItems_1 = __values(flexibleViewItems), flexibleViewItems_1_1 = flexibleViewItems_1.next(); !flexibleViewItems_1_1.done; flexibleViewItems_1_1 = flexibleViewItems_1.next()) {
606
- var item = flexibleViewItems_1_1.value;
607
- item.size = (0, math_1.clamp)(size, item.minimumSize, item.maximumSize);
608
- }
609
- }
610
- catch (e_8_1) { e_8 = { error: e_8_1 }; }
611
- finally {
612
- try {
613
- if (flexibleViewItems_1_1 && !flexibleViewItems_1_1.done && (_b = flexibleViewItems_1.return)) _b.call(flexibleViewItems_1);
614
- }
615
- finally { if (e_8) throw e_8.error; }
616
- }
617
- var indexes = (0, array_1.range)(this.views.length);
618
- var lowPriorityIndexes = indexes.filter(function (i) { return _this.views[i].priority === LayoutPriority.Low; });
619
- var highPriorityIndexes = indexes.filter(function (i) { return _this.views[i].priority === LayoutPriority.High; });
620
- this.relayout(lowPriorityIndexes, highPriorityIndexes);
621
- };
622
- Splitview.prototype.removeView = function (index, sizing, skipLayout) {
623
- if (skipLayout === void 0) { skipLayout = false; }
624
- // Remove view
625
- var viewItem = this.views.splice(index, 1)[0];
626
- viewItem.dispose();
627
- // Remove sash
628
- if (this.views.length >= 1) {
629
- var sashIndex = Math.max(index - 1, 0);
630
- var sashItem = this.sashes.splice(sashIndex, 1)[0];
631
- sashItem.disposable();
632
- }
633
- if (!skipLayout) {
634
- this.relayout();
635
- }
636
- if (sizing && sizing.type === 'distribute') {
637
- this.distributeViewSizes();
638
- }
639
- this._onDidRemoveView.fire(viewItem.view);
640
- return viewItem.view;
641
- };
642
- Splitview.prototype.getViewCachedVisibleSize = function (index) {
643
- if (index < 0 || index >= this.views.length) {
644
- throw new Error('Index out of bounds');
645
- }
646
- var viewItem = this.views[index];
647
- return viewItem.cachedVisibleSize;
648
- };
649
- Splitview.prototype.moveView = function (from, to) {
650
- var cachedVisibleSize = this.getViewCachedVisibleSize(from);
651
- var sizing = typeof cachedVisibleSize === 'undefined'
652
- ? this.getViewSize(from)
653
- : Sizing.Invisible(cachedVisibleSize);
654
- var view = this.removeView(from, undefined, true);
655
- this.addView(view, sizing, to);
656
- };
657
- Splitview.prototype.layout = function (size, orthogonalSize) {
658
- var _this = this;
659
- var previousSize = Math.max(this.size, this.contentSize);
660
- this.size = size;
661
- this.orthogonalSize = orthogonalSize;
662
- if (!this.proportions) {
663
- var indexes = (0, array_1.range)(this.views.length);
664
- var lowPriorityIndexes = indexes.filter(function (i) { return _this.views[i].priority === LayoutPriority.Low; });
665
- var highPriorityIndexes = indexes.filter(function (i) { return _this.views[i].priority === LayoutPriority.High; });
666
- this.resize(this.views.length - 1, size - previousSize, undefined, lowPriorityIndexes, highPriorityIndexes);
667
- }
668
- else {
669
- for (var i = 0; i < this.views.length; i++) {
670
- var item = this.views[i];
671
- item.size = (0, math_1.clamp)(Math.round(this.proportions[i] * size), item.minimumSize, item.maximumSize);
672
- }
673
- }
674
- this.distributeEmptySpace();
675
- this.layoutViews();
676
- };
677
- Splitview.prototype.relayout = function (lowPriorityIndexes, highPriorityIndexes) {
678
- var contentSize = this.views.reduce(function (r, i) { return r + i.size; }, 0);
679
- this.resize(this.views.length - 1, this._size - contentSize, undefined, lowPriorityIndexes, highPriorityIndexes);
680
- this.distributeEmptySpace();
681
- this.layoutViews();
682
- this.saveProportions();
683
- };
684
- Splitview.prototype.distributeEmptySpace = function (lowPriorityIndex) {
685
- var e_9, _a, e_10, _b;
686
- var _this = this;
687
- var contentSize = this.views.reduce(function (r, i) { return r + i.size; }, 0);
688
- var emptyDelta = this.size - contentSize;
689
- var indexes = (0, array_1.range)(this.views.length - 1, -1);
690
- var lowPriorityIndexes = indexes.filter(function (i) { return _this.views[i].priority === LayoutPriority.Low; });
691
- var highPriorityIndexes = indexes.filter(function (i) { return _this.views[i].priority === LayoutPriority.High; });
692
- try {
693
- for (var highPriorityIndexes_2 = __values(highPriorityIndexes), highPriorityIndexes_2_1 = highPriorityIndexes_2.next(); !highPriorityIndexes_2_1.done; highPriorityIndexes_2_1 = highPriorityIndexes_2.next()) {
694
- var index = highPriorityIndexes_2_1.value;
695
- (0, array_1.pushToStart)(indexes, index);
696
- }
697
- }
698
- catch (e_9_1) { e_9 = { error: e_9_1 }; }
699
- finally {
700
- try {
701
- if (highPriorityIndexes_2_1 && !highPriorityIndexes_2_1.done && (_a = highPriorityIndexes_2.return)) _a.call(highPriorityIndexes_2);
702
- }
703
- finally { if (e_9) throw e_9.error; }
704
- }
705
- try {
706
- for (var lowPriorityIndexes_2 = __values(lowPriorityIndexes), lowPriorityIndexes_2_1 = lowPriorityIndexes_2.next(); !lowPriorityIndexes_2_1.done; lowPriorityIndexes_2_1 = lowPriorityIndexes_2.next()) {
707
- var index = lowPriorityIndexes_2_1.value;
708
- (0, array_1.pushToEnd)(indexes, index);
709
- }
710
- }
711
- catch (e_10_1) { e_10 = { error: e_10_1 }; }
712
- finally {
713
- try {
714
- if (lowPriorityIndexes_2_1 && !lowPriorityIndexes_2_1.done && (_b = lowPriorityIndexes_2.return)) _b.call(lowPriorityIndexes_2);
715
- }
716
- finally { if (e_10) throw e_10.error; }
717
- }
718
- if (typeof lowPriorityIndex === 'number') {
719
- (0, array_1.pushToEnd)(indexes, lowPriorityIndex);
720
- }
721
- for (var i = 0; emptyDelta !== 0 && i < indexes.length; i++) {
722
- var item = this.views[indexes[i]];
723
- var size = (0, math_1.clamp)(item.size + emptyDelta, item.minimumSize, item.maximumSize);
724
- var viewDelta = size - item.size;
725
- emptyDelta -= viewDelta;
726
- item.size = size;
727
- }
728
- };
729
- Splitview.prototype.saveProportions = function () {
730
- var _this = this;
731
- if (this.proportionalLayout && this.contentSize > 0) {
732
- this._proportions = this.views.map(function (i) { return i.size / _this.contentSize; });
733
- }
734
- };
735
- Splitview.prototype.layoutViews = function () {
736
- var _this = this;
737
- this.contentSize = this.views.reduce(function (r, i) { return r + i.size; }, 0);
738
- var sum = 0;
739
- var x = [];
740
- this.updateSashEnablement();
741
- for (var i = 0; i < this.views.length - 1; i++) {
742
- sum += this.views[i].size;
743
- x.push(sum);
744
- var offset = Math.min(Math.max(0, sum - 2), this.size - 4);
745
- if (this._orientation === Orientation.HORIZONTAL) {
746
- this.sashes[i].container.style.left = "".concat(offset, "px");
747
- this.sashes[i].container.style.top = "0px";
748
- }
749
- if (this._orientation === Orientation.VERTICAL) {
750
- this.sashes[i].container.style.left = "0px";
751
- this.sashes[i].container.style.top = "".concat(offset, "px");
752
- }
753
- }
754
- this.views.forEach(function (view, i) {
755
- if (_this._orientation === Orientation.HORIZONTAL) {
756
- view.container.style.width = "".concat(view.size, "px");
757
- view.container.style.left = i == 0 ? '0px' : "".concat(x[i - 1], "px");
758
- view.container.style.top = '';
759
- view.container.style.height = '';
760
- }
761
- if (_this._orientation === Orientation.VERTICAL) {
762
- view.container.style.height = "".concat(view.size, "px");
763
- view.container.style.top = i == 0 ? '0px' : "".concat(x[i - 1], "px");
764
- view.container.style.width = '';
765
- view.container.style.left = '';
766
- }
767
- view.view.layout(view.size, _this._orthogonalSize);
768
- });
769
- };
770
- Splitview.prototype.findFirstSnapIndex = function (indexes) {
771
- var e_11, _a, e_12, _b;
772
- try {
773
- // visible views first
774
- for (var indexes_1 = __values(indexes), indexes_1_1 = indexes_1.next(); !indexes_1_1.done; indexes_1_1 = indexes_1.next()) {
775
- var index = indexes_1_1.value;
776
- var viewItem = this.views[index];
777
- if (!viewItem.visible) {
778
- continue;
779
- }
780
- if (viewItem.snap) {
781
- return index;
782
- }
783
- }
784
- }
785
- catch (e_11_1) { e_11 = { error: e_11_1 }; }
786
- finally {
787
- try {
788
- if (indexes_1_1 && !indexes_1_1.done && (_a = indexes_1.return)) _a.call(indexes_1);
789
- }
790
- finally { if (e_11) throw e_11.error; }
791
- }
792
- try {
793
- // then, hidden views
794
- for (var indexes_2 = __values(indexes), indexes_2_1 = indexes_2.next(); !indexes_2_1.done; indexes_2_1 = indexes_2.next()) {
795
- var index = indexes_2_1.value;
796
- var viewItem = this.views[index];
797
- if (viewItem.visible &&
798
- viewItem.maximumSize - viewItem.minimumSize > 0) {
799
- return undefined;
800
- }
801
- if (!viewItem.visible && viewItem.snap) {
802
- return index;
803
- }
804
- }
805
- }
806
- catch (e_12_1) { e_12 = { error: e_12_1 }; }
807
- finally {
808
- try {
809
- if (indexes_2_1 && !indexes_2_1.done && (_b = indexes_2.return)) _b.call(indexes_2);
810
- }
811
- finally { if (e_12) throw e_12.error; }
812
- }
813
- return undefined;
814
- };
815
- Splitview.prototype.updateSashEnablement = function () {
816
- var previous = false;
817
- var collapsesDown = this.views.map(function (i) { return (previous = i.size - i.minimumSize > 0 || previous); });
818
- previous = false;
819
- var expandsDown = this.views.map(function (i) { return (previous = i.maximumSize - i.size > 0 || previous); });
820
- var reverseViews = __spreadArray([], __read(this.views), false).reverse();
821
- previous = false;
822
- var collapsesUp = reverseViews
823
- .map(function (i) { return (previous = i.size - i.minimumSize > 0 || previous); })
824
- .reverse();
825
- previous = false;
826
- var expandsUp = reverseViews
827
- .map(function (i) { return (previous = i.maximumSize - i.size > 0 || previous); })
828
- .reverse();
829
- var position = 0;
830
- for (var index = 0; index < this.sashes.length; index++) {
831
- var sash = this.sashes[index];
832
- var viewItem = this.views[index];
833
- position += viewItem.size;
834
- var min = !(collapsesDown[index] && expandsUp[index + 1]);
835
- var max = !(expandsDown[index] && collapsesUp[index + 1]);
836
- if (min && max) {
837
- var upIndexes = (0, array_1.range)(index, -1);
838
- var downIndexes = (0, array_1.range)(index + 1, this.views.length);
839
- var snapBeforeIndex = this.findFirstSnapIndex(upIndexes);
840
- var snapAfterIndex = this.findFirstSnapIndex(downIndexes);
841
- var snappedBefore = typeof snapBeforeIndex === 'number' &&
842
- !this.views[snapBeforeIndex].visible;
843
- var snappedAfter = typeof snapAfterIndex === 'number' &&
844
- !this.views[snapAfterIndex].visible;
845
- if (snappedBefore &&
846
- collapsesUp[index] &&
847
- (position > 0 || this.startSnappingEnabled)) {
848
- this.updateSash(sash, SashState.MINIMUM);
849
- }
850
- else if (snappedAfter &&
851
- collapsesDown[index] &&
852
- (position < this.contentSize || this.endSnappingEnabled)) {
853
- this.updateSash(sash, SashState.MAXIMUM);
854
- }
855
- else {
856
- this.updateSash(sash, SashState.DISABLED);
857
- }
858
- }
859
- else if (min && !max) {
860
- this.updateSash(sash, SashState.MINIMUM);
861
- }
862
- else if (!min && max) {
863
- this.updateSash(sash, SashState.MAXIMUM);
864
- }
865
- else {
866
- this.updateSash(sash, SashState.ENABLED);
867
- }
868
- }
869
- };
870
- Splitview.prototype.updateSash = function (sash, state) {
871
- (0, dom_1.toggleClass)(sash.container, 'disabled', state === SashState.DISABLED);
872
- (0, dom_1.toggleClass)(sash.container, 'enabled', state === SashState.ENABLED);
873
- (0, dom_1.toggleClass)(sash.container, 'maximum', state === SashState.MAXIMUM);
874
- (0, dom_1.toggleClass)(sash.container, 'minimum', state === SashState.MINIMUM);
875
- };
876
- Splitview.prototype.createViewContainer = function () {
877
- var element = document.createElement('div');
878
- element.className = 'view-container';
879
- return element;
880
- };
881
- Splitview.prototype.createSashContainer = function () {
882
- var element = document.createElement('div');
883
- element.className = 'sash-container';
884
- return element;
885
- };
886
- Splitview.prototype.createContainer = function () {
887
- var element = document.createElement('div');
888
- var orientationClassname = this._orientation === Orientation.HORIZONTAL
889
- ? 'horizontal'
890
- : 'vertical';
891
- element.className = "split-view-container ".concat(orientationClassname);
892
- return element;
893
- };
894
- Splitview.prototype.dispose = function () {
895
- this._onDidSashEnd.dispose();
896
- this._onDidAddView.dispose();
897
- this._onDidRemoveView.dispose();
898
- for (var i = 0; i < this.element.children.length; i++) {
899
- if (this.element.children.item(i) === this.element) {
900
- this.element.removeChild(this.element);
901
- break;
902
- }
903
- }
904
- this.element.remove();
905
- };
906
- return Splitview;
907
- }());
908
- exports.Splitview = Splitview;
1
+ "use strict";
2
+ /*---------------------------------------------------------------------------------------------
3
+ * Accreditation: This file is largly based upon the MIT licenced VSCode sourcecode found at:
4
+ * https://github.com/microsoft/vscode/tree/main/src/vs/base/browser/ui/splitview
5
+ *--------------------------------------------------------------------------------------------*/
6
+ var __values = (this && this.__values) || function(o) {
7
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
8
+ if (m) return m.call(o);
9
+ if (o && typeof o.length === "number") return {
10
+ next: function () {
11
+ if (o && i >= o.length) o = void 0;
12
+ return { value: o && o[i++], done: !o };
13
+ }
14
+ };
15
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
16
+ };
17
+ var __read = (this && this.__read) || function (o, n) {
18
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
19
+ if (!m) return o;
20
+ var i = m.call(o), r, ar = [], e;
21
+ try {
22
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
23
+ }
24
+ catch (error) { e = { error: error }; }
25
+ finally {
26
+ try {
27
+ if (r && !r.done && (m = i["return"])) m.call(i);
28
+ }
29
+ finally { if (e) throw e.error; }
30
+ }
31
+ return ar;
32
+ };
33
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
34
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
35
+ if (ar || !(i in from)) {
36
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
37
+ ar[i] = from[i];
38
+ }
39
+ }
40
+ return to.concat(ar || Array.prototype.slice.call(from));
41
+ };
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.Splitview = exports.Sizing = exports.LayoutPriority = exports.SashState = exports.Orientation = void 0;
44
+ var dom_1 = require("../../dom");
45
+ var math_1 = require("../../math");
46
+ var events_1 = require("../../events");
47
+ var array_1 = require("../../array");
48
+ var viewItem_1 = require("./viewItem");
49
+ var Orientation;
50
+ (function (Orientation) {
51
+ Orientation["HORIZONTAL"] = "HORIZONTAL";
52
+ Orientation["VERTICAL"] = "VERTICAL";
53
+ })(Orientation = exports.Orientation || (exports.Orientation = {}));
54
+ var SashState;
55
+ (function (SashState) {
56
+ SashState[SashState["MAXIMUM"] = 0] = "MAXIMUM";
57
+ SashState[SashState["MINIMUM"] = 1] = "MINIMUM";
58
+ SashState[SashState["DISABLED"] = 2] = "DISABLED";
59
+ SashState[SashState["ENABLED"] = 3] = "ENABLED";
60
+ })(SashState = exports.SashState || (exports.SashState = {}));
61
+ var LayoutPriority;
62
+ (function (LayoutPriority) {
63
+ LayoutPriority["Low"] = "low";
64
+ LayoutPriority["High"] = "high";
65
+ LayoutPriority["Normal"] = "normal";
66
+ })(LayoutPriority = exports.LayoutPriority || (exports.LayoutPriority = {}));
67
+ var Sizing;
68
+ (function (Sizing) {
69
+ Sizing.Distribute = { type: 'distribute' };
70
+ function Split(index) {
71
+ return { type: 'split', index: index };
72
+ }
73
+ Sizing.Split = Split;
74
+ function Invisible(cachedVisibleSize) {
75
+ return { type: 'invisible', cachedVisibleSize: cachedVisibleSize };
76
+ }
77
+ Sizing.Invisible = Invisible;
78
+ })(Sizing = exports.Sizing || (exports.Sizing = {}));
79
+ var Splitview = /** @class */ (function () {
80
+ function Splitview(container, options) {
81
+ var _this = this;
82
+ this.container = container;
83
+ this.views = [];
84
+ this.sashes = [];
85
+ this._size = 0;
86
+ this._orthogonalSize = 0;
87
+ this.contentSize = 0;
88
+ this._proportions = undefined;
89
+ this._onDidSashEnd = new events_1.Emitter();
90
+ this.onDidSashEnd = this._onDidSashEnd.event;
91
+ this._onDidAddView = new events_1.Emitter();
92
+ this.onDidAddView = this._onDidAddView.event;
93
+ this._onDidRemoveView = new events_1.Emitter();
94
+ this.onDidRemoveView = this._onDidRemoveView.event;
95
+ this._startSnappingEnabled = true;
96
+ this._endSnappingEnabled = true;
97
+ this.resize = function (index, delta, sizes, lowPriorityIndexes, highPriorityIndexes, overloadMinDelta, overloadMaxDelta, snapBefore, snapAfter) {
98
+ var e_1, _a, e_2, _b;
99
+ if (sizes === void 0) { sizes = _this.views.map(function (x) { return x.size; }); }
100
+ if (overloadMinDelta === void 0) { overloadMinDelta = Number.NEGATIVE_INFINITY; }
101
+ if (overloadMaxDelta === void 0) { overloadMaxDelta = Number.POSITIVE_INFINITY; }
102
+ if (index < 0 || index > _this.views.length) {
103
+ return 0;
104
+ }
105
+ var upIndexes = (0, array_1.range)(index, -1);
106
+ var downIndexes = (0, array_1.range)(index + 1, _this.views.length);
107
+ //
108
+ if (highPriorityIndexes) {
109
+ try {
110
+ for (var highPriorityIndexes_1 = __values(highPriorityIndexes), highPriorityIndexes_1_1 = highPriorityIndexes_1.next(); !highPriorityIndexes_1_1.done; highPriorityIndexes_1_1 = highPriorityIndexes_1.next()) {
111
+ var i = highPriorityIndexes_1_1.value;
112
+ (0, array_1.pushToStart)(upIndexes, i);
113
+ (0, array_1.pushToStart)(downIndexes, i);
114
+ }
115
+ }
116
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
117
+ finally {
118
+ try {
119
+ if (highPriorityIndexes_1_1 && !highPriorityIndexes_1_1.done && (_a = highPriorityIndexes_1.return)) _a.call(highPriorityIndexes_1);
120
+ }
121
+ finally { if (e_1) throw e_1.error; }
122
+ }
123
+ }
124
+ if (lowPriorityIndexes) {
125
+ try {
126
+ for (var lowPriorityIndexes_1 = __values(lowPriorityIndexes), lowPriorityIndexes_1_1 = lowPriorityIndexes_1.next(); !lowPriorityIndexes_1_1.done; lowPriorityIndexes_1_1 = lowPriorityIndexes_1.next()) {
127
+ var i = lowPriorityIndexes_1_1.value;
128
+ (0, array_1.pushToEnd)(upIndexes, i);
129
+ (0, array_1.pushToEnd)(downIndexes, i);
130
+ }
131
+ }
132
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
133
+ finally {
134
+ try {
135
+ if (lowPriorityIndexes_1_1 && !lowPriorityIndexes_1_1.done && (_b = lowPriorityIndexes_1.return)) _b.call(lowPriorityIndexes_1);
136
+ }
137
+ finally { if (e_2) throw e_2.error; }
138
+ }
139
+ }
140
+ //
141
+ var upItems = upIndexes.map(function (i) { return _this.views[i]; });
142
+ var upSizes = upIndexes.map(function (i) { return sizes[i]; });
143
+ //
144
+ var downItems = downIndexes.map(function (i) { return _this.views[i]; });
145
+ var downSizes = downIndexes.map(function (i) { return sizes[i]; });
146
+ //
147
+ var minDeltaUp = upIndexes.reduce(function (_, i) { return _ + _this.views[i].minimumSize - sizes[i]; }, 0);
148
+ var maxDeltaUp = upIndexes.reduce(function (_, i) { return _ + _this.views[i].maximumSize - sizes[i]; }, 0);
149
+ //
150
+ var maxDeltaDown = downIndexes.length === 0
151
+ ? Number.POSITIVE_INFINITY
152
+ : downIndexes.reduce(function (_, i) { return _ + sizes[i] - _this.views[i].minimumSize; }, 0);
153
+ var minDeltaDown = downIndexes.length === 0
154
+ ? Number.NEGATIVE_INFINITY
155
+ : downIndexes.reduce(function (_, i) { return _ + sizes[i] - _this.views[i].maximumSize; }, 0);
156
+ //
157
+ var minDelta = Math.max(minDeltaUp, minDeltaDown);
158
+ var maxDelta = Math.min(maxDeltaDown, maxDeltaUp);
159
+ //
160
+ var snapped = false;
161
+ if (snapBefore) {
162
+ var snapView = _this.views[snapBefore.index];
163
+ var visible = delta >= snapBefore.limitDelta;
164
+ snapped = visible !== snapView.visible;
165
+ snapView.setVisible(visible, snapBefore.size);
166
+ }
167
+ if (!snapped && snapAfter) {
168
+ var snapView = _this.views[snapAfter.index];
169
+ var visible = delta < snapAfter.limitDelta;
170
+ snapped = visible !== snapView.visible;
171
+ snapView.setVisible(visible, snapAfter.size);
172
+ }
173
+ if (snapped) {
174
+ return _this.resize(index, delta, sizes, lowPriorityIndexes, highPriorityIndexes, overloadMinDelta, overloadMaxDelta);
175
+ }
176
+ //
177
+ var tentativeDelta = (0, math_1.clamp)(delta, minDelta, maxDelta);
178
+ var actualDelta = 0;
179
+ //
180
+ var deltaUp = tentativeDelta;
181
+ for (var i = 0; i < upItems.length; i++) {
182
+ var item = upItems[i];
183
+ var size = (0, math_1.clamp)(upSizes[i] + deltaUp, item.minimumSize, item.maximumSize);
184
+ var viewDelta = size - upSizes[i];
185
+ actualDelta += viewDelta;
186
+ deltaUp -= viewDelta;
187
+ item.size = size;
188
+ }
189
+ //
190
+ var deltaDown = actualDelta;
191
+ for (var i = 0; i < downItems.length; i++) {
192
+ var item = downItems[i];
193
+ var size = (0, math_1.clamp)(downSizes[i] - deltaDown, item.minimumSize, item.maximumSize);
194
+ var viewDelta = size - downSizes[i];
195
+ deltaDown += viewDelta;
196
+ item.size = size;
197
+ }
198
+ //
199
+ return delta;
200
+ };
201
+ this._orientation = options.orientation;
202
+ this.element = this.createContainer();
203
+ this.proportionalLayout =
204
+ options.proportionalLayout === undefined
205
+ ? true
206
+ : !!options.proportionalLayout;
207
+ this.viewContainer = this.createViewContainer();
208
+ this.sashContainer = this.createSashContainer();
209
+ this.element.appendChild(this.sashContainer);
210
+ this.element.appendChild(this.viewContainer);
211
+ this.container.appendChild(this.element);
212
+ this.style(options.styles);
213
+ // We have an existing set of view, add them now
214
+ if (options.descriptor) {
215
+ this._size = options.descriptor.size;
216
+ options.descriptor.views.forEach(function (viewDescriptor, index) {
217
+ var sizing = viewDescriptor.visible === undefined ||
218
+ viewDescriptor.visible
219
+ ? viewDescriptor.size
220
+ : {
221
+ type: 'invisible',
222
+ cachedVisibleSize: viewDescriptor.size,
223
+ };
224
+ var view = viewDescriptor.view;
225
+ _this.addView(view, sizing, index, true
226
+ // true skip layout
227
+ );
228
+ });
229
+ // Initialize content size and proportions for first layout
230
+ this.contentSize = this.views.reduce(function (r, i) { return r + i.size; }, 0);
231
+ this.saveProportions();
232
+ }
233
+ }
234
+ Object.defineProperty(Splitview.prototype, "size", {
235
+ get: function () {
236
+ return this._size;
237
+ },
238
+ set: function (value) {
239
+ this._size = value;
240
+ },
241
+ enumerable: false,
242
+ configurable: true
243
+ });
244
+ Object.defineProperty(Splitview.prototype, "orthogonalSize", {
245
+ get: function () {
246
+ return this._orthogonalSize;
247
+ },
248
+ set: function (value) {
249
+ this._orthogonalSize = value;
250
+ },
251
+ enumerable: false,
252
+ configurable: true
253
+ });
254
+ Object.defineProperty(Splitview.prototype, "length", {
255
+ get: function () {
256
+ return this.views.length;
257
+ },
258
+ enumerable: false,
259
+ configurable: true
260
+ });
261
+ Object.defineProperty(Splitview.prototype, "proportions", {
262
+ get: function () {
263
+ return this._proportions ? __spreadArray([], __read(this._proportions), false) : undefined;
264
+ },
265
+ enumerable: false,
266
+ configurable: true
267
+ });
268
+ Object.defineProperty(Splitview.prototype, "orientation", {
269
+ get: function () {
270
+ return this._orientation;
271
+ },
272
+ set: function (value) {
273
+ this._orientation = value;
274
+ var tmp = this.size;
275
+ this.size = this.orthogonalSize;
276
+ this.orthogonalSize = tmp;
277
+ (0, dom_1.removeClasses)(this.element, 'horizontal', 'vertical');
278
+ this.element.classList.add(this.orientation == Orientation.HORIZONTAL
279
+ ? 'horizontal'
280
+ : 'vertical');
281
+ },
282
+ enumerable: false,
283
+ configurable: true
284
+ });
285
+ Object.defineProperty(Splitview.prototype, "minimumSize", {
286
+ get: function () {
287
+ return this.views.reduce(function (r, item) { return r + item.minimumSize; }, 0);
288
+ },
289
+ enumerable: false,
290
+ configurable: true
291
+ });
292
+ Object.defineProperty(Splitview.prototype, "maximumSize", {
293
+ get: function () {
294
+ return this.length === 0
295
+ ? Number.POSITIVE_INFINITY
296
+ : this.views.reduce(function (r, item) { return r + item.maximumSize; }, 0);
297
+ },
298
+ enumerable: false,
299
+ configurable: true
300
+ });
301
+ Object.defineProperty(Splitview.prototype, "startSnappingEnabled", {
302
+ get: function () {
303
+ return this._startSnappingEnabled;
304
+ },
305
+ set: function (startSnappingEnabled) {
306
+ if (this._startSnappingEnabled === startSnappingEnabled) {
307
+ return;
308
+ }
309
+ this._startSnappingEnabled = startSnappingEnabled;
310
+ this.updateSashEnablement();
311
+ },
312
+ enumerable: false,
313
+ configurable: true
314
+ });
315
+ Object.defineProperty(Splitview.prototype, "endSnappingEnabled", {
316
+ get: function () {
317
+ return this._endSnappingEnabled;
318
+ },
319
+ set: function (endSnappingEnabled) {
320
+ if (this._endSnappingEnabled === endSnappingEnabled) {
321
+ return;
322
+ }
323
+ this._endSnappingEnabled = endSnappingEnabled;
324
+ this.updateSashEnablement();
325
+ },
326
+ enumerable: false,
327
+ configurable: true
328
+ });
329
+ Splitview.prototype.style = function (styles) {
330
+ if ((styles === null || styles === void 0 ? void 0 : styles.separatorBorder) === 'transparent') {
331
+ (0, dom_1.removeClasses)(this.element, 'separator-border');
332
+ this.element.style.removeProperty('--dv-separator-border');
333
+ }
334
+ else {
335
+ (0, dom_1.addClasses)(this.element, 'separator-border');
336
+ if (styles === null || styles === void 0 ? void 0 : styles.separatorBorder) {
337
+ this.element.style.setProperty('--dv-separator-border', styles.separatorBorder);
338
+ }
339
+ }
340
+ };
341
+ Splitview.prototype.isViewVisible = function (index) {
342
+ if (index < 0 || index >= this.views.length) {
343
+ throw new Error('Index out of bounds');
344
+ }
345
+ var viewItem = this.views[index];
346
+ return viewItem.visible;
347
+ };
348
+ Splitview.prototype.setViewVisible = function (index, visible) {
349
+ if (index < 0 || index >= this.views.length) {
350
+ throw new Error('Index out of bounds');
351
+ }
352
+ (0, dom_1.toggleClass)(this.container, 'visible', visible);
353
+ var viewItem = this.views[index];
354
+ (0, dom_1.toggleClass)(this.container, 'visible', visible);
355
+ viewItem.setVisible(visible, viewItem.size);
356
+ this.distributeEmptySpace(index);
357
+ this.layoutViews();
358
+ this.saveProportions();
359
+ };
360
+ Splitview.prototype.getViewSize = function (index) {
361
+ if (index < 0 || index >= this.views.length) {
362
+ return -1;
363
+ }
364
+ return this.views[index].size;
365
+ };
366
+ Splitview.prototype.resizeView = function (index, size) {
367
+ var _this = this;
368
+ if (index < 0 || index >= this.views.length) {
369
+ return;
370
+ }
371
+ var indexes = (0, array_1.range)(this.views.length).filter(function (i) { return i !== index; });
372
+ var lowPriorityIndexes = __spreadArray(__spreadArray([], __read(indexes.filter(function (i) { return _this.views[i].priority === LayoutPriority.Low; })), false), [
373
+ index,
374
+ ], false);
375
+ var highPriorityIndexes = indexes.filter(function (i) { return _this.views[i].priority === LayoutPriority.High; });
376
+ var item = this.views[index];
377
+ size = Math.round(size);
378
+ size = (0, math_1.clamp)(size, item.minimumSize, Math.min(item.maximumSize, this._size));
379
+ item.size = size;
380
+ this.relayout(lowPriorityIndexes, highPriorityIndexes);
381
+ };
382
+ Splitview.prototype.getViews = function () {
383
+ return this.views.map(function (x) { return x.view; });
384
+ };
385
+ Splitview.prototype.onDidChange = function (item, size) {
386
+ var index = this.views.indexOf(item);
387
+ if (index < 0 || index >= this.views.length) {
388
+ return;
389
+ }
390
+ size = typeof size === 'number' ? size : item.size;
391
+ size = (0, math_1.clamp)(size, item.minimumSize, item.maximumSize);
392
+ item.size = size;
393
+ this.relayout([index]);
394
+ };
395
+ Splitview.prototype.addView = function (view, size, index, skipLayout) {
396
+ var _this = this;
397
+ if (size === void 0) { size = { type: 'distribute' }; }
398
+ if (index === void 0) { index = this.views.length; }
399
+ var container = document.createElement('div');
400
+ container.className = 'view';
401
+ container.appendChild(view.element);
402
+ var viewSize;
403
+ if (typeof size === 'number') {
404
+ viewSize = size;
405
+ }
406
+ else if (size.type === 'split') {
407
+ viewSize = this.getViewSize(size.index) / 2;
408
+ }
409
+ else if (size.type === 'invisible') {
410
+ viewSize = { cachedVisibleSize: size.cachedVisibleSize };
411
+ }
412
+ else {
413
+ viewSize = view.minimumSize;
414
+ }
415
+ var disposable = view.onDidChange(function (newSize) {
416
+ return _this.onDidChange(viewItem, newSize.size);
417
+ });
418
+ var dispose = function () {
419
+ disposable === null || disposable === void 0 ? void 0 : disposable.dispose();
420
+ _this.viewContainer.removeChild(container);
421
+ };
422
+ var viewItem = new viewItem_1.ViewItem(container, view, viewSize, { dispose: dispose });
423
+ if (index === this.views.length) {
424
+ this.viewContainer.appendChild(container);
425
+ }
426
+ else {
427
+ this.viewContainer.insertBefore(container, this.viewContainer.children.item(index));
428
+ }
429
+ this.views.splice(index, 0, viewItem);
430
+ if (this.views.length > 1) {
431
+ //add sash
432
+ var sash_1 = document.createElement('div');
433
+ sash_1.className = 'sash';
434
+ var onStart_1 = function (event) {
435
+ var e_3, _a, e_4, _b;
436
+ try {
437
+ for (var _c = __values(_this.views), _d = _c.next(); !_d.done; _d = _c.next()) {
438
+ var item = _d.value;
439
+ item.enabled = false;
440
+ }
441
+ }
442
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
443
+ finally {
444
+ try {
445
+ if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
446
+ }
447
+ finally { if (e_3) throw e_3.error; }
448
+ }
449
+ var iframes = __spreadArray(__spreadArray([], __read((0, dom_1.getElementsByTagName)('iframe')), false), __read((0, dom_1.getElementsByTagName)('webview')), false);
450
+ try {
451
+ for (var iframes_1 = __values(iframes), iframes_1_1 = iframes_1.next(); !iframes_1_1.done; iframes_1_1 = iframes_1.next()) {
452
+ var iframe = iframes_1_1.value;
453
+ iframe.style.pointerEvents = 'none';
454
+ }
455
+ }
456
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
457
+ finally {
458
+ try {
459
+ if (iframes_1_1 && !iframes_1_1.done && (_b = iframes_1.return)) _b.call(iframes_1);
460
+ }
461
+ finally { if (e_4) throw e_4.error; }
462
+ }
463
+ var start = _this._orientation === Orientation.HORIZONTAL
464
+ ? event.clientX
465
+ : event.clientY;
466
+ var sashIndex = (0, array_1.firstIndex)(_this.sashes, function (s) { return s.container === sash_1; });
467
+ //
468
+ var sizes = _this.views.map(function (x) { return x.size; });
469
+ //
470
+ var snapBefore;
471
+ var snapAfter;
472
+ var upIndexes = (0, array_1.range)(sashIndex, -1);
473
+ var downIndexes = (0, array_1.range)(sashIndex + 1, _this.views.length);
474
+ var minDeltaUp = upIndexes.reduce(function (r, i) { return r + (_this.views[i].minimumSize - sizes[i]); }, 0);
475
+ var maxDeltaUp = upIndexes.reduce(function (r, i) { return r + (_this.views[i].viewMaximumSize - sizes[i]); }, 0);
476
+ var maxDeltaDown = downIndexes.length === 0
477
+ ? Number.POSITIVE_INFINITY
478
+ : downIndexes.reduce(function (r, i) {
479
+ return r + (sizes[i] - _this.views[i].minimumSize);
480
+ }, 0);
481
+ var minDeltaDown = downIndexes.length === 0
482
+ ? Number.NEGATIVE_INFINITY
483
+ : downIndexes.reduce(function (r, i) {
484
+ return r +
485
+ (sizes[i] - _this.views[i].viewMaximumSize);
486
+ }, 0);
487
+ var minDelta = Math.max(minDeltaUp, minDeltaDown);
488
+ var maxDelta = Math.min(maxDeltaDown, maxDeltaUp);
489
+ var snapBeforeIndex = _this.findFirstSnapIndex(upIndexes);
490
+ var snapAfterIndex = _this.findFirstSnapIndex(downIndexes);
491
+ if (typeof snapBeforeIndex === 'number') {
492
+ var snappedViewItem = _this.views[snapBeforeIndex];
493
+ var halfSize = Math.floor(snappedViewItem.viewMinimumSize / 2);
494
+ snapBefore = {
495
+ index: snapBeforeIndex,
496
+ limitDelta: snappedViewItem.visible
497
+ ? minDelta - halfSize
498
+ : minDelta + halfSize,
499
+ size: snappedViewItem.size,
500
+ };
501
+ }
502
+ if (typeof snapAfterIndex === 'number') {
503
+ var snappedViewItem = _this.views[snapAfterIndex];
504
+ var halfSize = Math.floor(snappedViewItem.viewMinimumSize / 2);
505
+ snapAfter = {
506
+ index: snapAfterIndex,
507
+ limitDelta: snappedViewItem.visible
508
+ ? maxDelta + halfSize
509
+ : maxDelta - halfSize,
510
+ size: snappedViewItem.size,
511
+ };
512
+ }
513
+ //
514
+ var mousemove = function (mousemoveEvent) {
515
+ var current = _this._orientation === Orientation.HORIZONTAL
516
+ ? mousemoveEvent.clientX
517
+ : mousemoveEvent.clientY;
518
+ var delta = current - start;
519
+ _this.resize(sashIndex, delta, sizes, undefined, undefined, minDelta, maxDelta, snapBefore, snapAfter);
520
+ _this.distributeEmptySpace();
521
+ _this.layoutViews();
522
+ };
523
+ var end = function () {
524
+ var e_5, _a, e_6, _b;
525
+ try {
526
+ for (var _c = __values(_this.views), _d = _c.next(); !_d.done; _d = _c.next()) {
527
+ var item = _d.value;
528
+ item.enabled = true;
529
+ }
530
+ }
531
+ catch (e_5_1) { e_5 = { error: e_5_1 }; }
532
+ finally {
533
+ try {
534
+ if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
535
+ }
536
+ finally { if (e_5) throw e_5.error; }
537
+ }
538
+ try {
539
+ for (var iframes_2 = __values(iframes), iframes_2_1 = iframes_2.next(); !iframes_2_1.done; iframes_2_1 = iframes_2.next()) {
540
+ var iframe = iframes_2_1.value;
541
+ iframe.style.pointerEvents = 'auto';
542
+ }
543
+ }
544
+ catch (e_6_1) { e_6 = { error: e_6_1 }; }
545
+ finally {
546
+ try {
547
+ if (iframes_2_1 && !iframes_2_1.done && (_b = iframes_2.return)) _b.call(iframes_2);
548
+ }
549
+ finally { if (e_6) throw e_6.error; }
550
+ }
551
+ _this.saveProportions();
552
+ document.removeEventListener('mousemove', mousemove);
553
+ document.removeEventListener('mouseup', end);
554
+ document.removeEventListener('mouseend', end);
555
+ _this._onDidSashEnd.fire(undefined);
556
+ };
557
+ document.addEventListener('mousemove', mousemove);
558
+ document.addEventListener('mouseup', end);
559
+ document.addEventListener('mouseend', end);
560
+ };
561
+ sash_1.addEventListener('mousedown', onStart_1);
562
+ var sashItem = {
563
+ container: sash_1,
564
+ disposable: function () {
565
+ sash_1.removeEventListener('mousedown', onStart_1);
566
+ _this.sashContainer.removeChild(sash_1);
567
+ },
568
+ };
569
+ this.sashContainer.appendChild(sash_1);
570
+ this.sashes.push(sashItem);
571
+ }
572
+ if (!skipLayout) {
573
+ this.relayout([index]);
574
+ }
575
+ if (!skipLayout &&
576
+ typeof size !== 'number' &&
577
+ size.type === 'distribute') {
578
+ this.distributeViewSizes();
579
+ }
580
+ this._onDidAddView.fire(view);
581
+ };
582
+ Splitview.prototype.distributeViewSizes = function () {
583
+ var e_7, _a, e_8, _b;
584
+ var _this = this;
585
+ var flexibleViewItems = [];
586
+ var flexibleSize = 0;
587
+ try {
588
+ for (var _c = __values(this.views), _d = _c.next(); !_d.done; _d = _c.next()) {
589
+ var item = _d.value;
590
+ if (item.maximumSize - item.minimumSize > 0) {
591
+ flexibleViewItems.push(item);
592
+ flexibleSize += item.size;
593
+ }
594
+ }
595
+ }
596
+ catch (e_7_1) { e_7 = { error: e_7_1 }; }
597
+ finally {
598
+ try {
599
+ if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
600
+ }
601
+ finally { if (e_7) throw e_7.error; }
602
+ }
603
+ var size = Math.floor(flexibleSize / flexibleViewItems.length);
604
+ try {
605
+ for (var flexibleViewItems_1 = __values(flexibleViewItems), flexibleViewItems_1_1 = flexibleViewItems_1.next(); !flexibleViewItems_1_1.done; flexibleViewItems_1_1 = flexibleViewItems_1.next()) {
606
+ var item = flexibleViewItems_1_1.value;
607
+ item.size = (0, math_1.clamp)(size, item.minimumSize, item.maximumSize);
608
+ }
609
+ }
610
+ catch (e_8_1) { e_8 = { error: e_8_1 }; }
611
+ finally {
612
+ try {
613
+ if (flexibleViewItems_1_1 && !flexibleViewItems_1_1.done && (_b = flexibleViewItems_1.return)) _b.call(flexibleViewItems_1);
614
+ }
615
+ finally { if (e_8) throw e_8.error; }
616
+ }
617
+ var indexes = (0, array_1.range)(this.views.length);
618
+ var lowPriorityIndexes = indexes.filter(function (i) { return _this.views[i].priority === LayoutPriority.Low; });
619
+ var highPriorityIndexes = indexes.filter(function (i) { return _this.views[i].priority === LayoutPriority.High; });
620
+ this.relayout(lowPriorityIndexes, highPriorityIndexes);
621
+ };
622
+ Splitview.prototype.removeView = function (index, sizing, skipLayout) {
623
+ if (skipLayout === void 0) { skipLayout = false; }
624
+ // Remove view
625
+ var viewItem = this.views.splice(index, 1)[0];
626
+ viewItem.dispose();
627
+ // Remove sash
628
+ if (this.views.length >= 1) {
629
+ var sashIndex = Math.max(index - 1, 0);
630
+ var sashItem = this.sashes.splice(sashIndex, 1)[0];
631
+ sashItem.disposable();
632
+ }
633
+ if (!skipLayout) {
634
+ this.relayout();
635
+ }
636
+ if (sizing && sizing.type === 'distribute') {
637
+ this.distributeViewSizes();
638
+ }
639
+ this._onDidRemoveView.fire(viewItem.view);
640
+ return viewItem.view;
641
+ };
642
+ Splitview.prototype.getViewCachedVisibleSize = function (index) {
643
+ if (index < 0 || index >= this.views.length) {
644
+ throw new Error('Index out of bounds');
645
+ }
646
+ var viewItem = this.views[index];
647
+ return viewItem.cachedVisibleSize;
648
+ };
649
+ Splitview.prototype.moveView = function (from, to) {
650
+ var cachedVisibleSize = this.getViewCachedVisibleSize(from);
651
+ var sizing = typeof cachedVisibleSize === 'undefined'
652
+ ? this.getViewSize(from)
653
+ : Sizing.Invisible(cachedVisibleSize);
654
+ var view = this.removeView(from, undefined, true);
655
+ this.addView(view, sizing, to);
656
+ };
657
+ Splitview.prototype.layout = function (size, orthogonalSize) {
658
+ var _this = this;
659
+ var previousSize = Math.max(this.size, this.contentSize);
660
+ this.size = size;
661
+ this.orthogonalSize = orthogonalSize;
662
+ if (!this.proportions) {
663
+ var indexes = (0, array_1.range)(this.views.length);
664
+ var lowPriorityIndexes = indexes.filter(function (i) { return _this.views[i].priority === LayoutPriority.Low; });
665
+ var highPriorityIndexes = indexes.filter(function (i) { return _this.views[i].priority === LayoutPriority.High; });
666
+ this.resize(this.views.length - 1, size - previousSize, undefined, lowPriorityIndexes, highPriorityIndexes);
667
+ }
668
+ else {
669
+ for (var i = 0; i < this.views.length; i++) {
670
+ var item = this.views[i];
671
+ item.size = (0, math_1.clamp)(Math.round(this.proportions[i] * size), item.minimumSize, item.maximumSize);
672
+ }
673
+ }
674
+ this.distributeEmptySpace();
675
+ this.layoutViews();
676
+ };
677
+ Splitview.prototype.relayout = function (lowPriorityIndexes, highPriorityIndexes) {
678
+ var contentSize = this.views.reduce(function (r, i) { return r + i.size; }, 0);
679
+ this.resize(this.views.length - 1, this._size - contentSize, undefined, lowPriorityIndexes, highPriorityIndexes);
680
+ this.distributeEmptySpace();
681
+ this.layoutViews();
682
+ this.saveProportions();
683
+ };
684
+ Splitview.prototype.distributeEmptySpace = function (lowPriorityIndex) {
685
+ var e_9, _a, e_10, _b;
686
+ var _this = this;
687
+ var contentSize = this.views.reduce(function (r, i) { return r + i.size; }, 0);
688
+ var emptyDelta = this.size - contentSize;
689
+ var indexes = (0, array_1.range)(this.views.length - 1, -1);
690
+ var lowPriorityIndexes = indexes.filter(function (i) { return _this.views[i].priority === LayoutPriority.Low; });
691
+ var highPriorityIndexes = indexes.filter(function (i) { return _this.views[i].priority === LayoutPriority.High; });
692
+ try {
693
+ for (var highPriorityIndexes_2 = __values(highPriorityIndexes), highPriorityIndexes_2_1 = highPriorityIndexes_2.next(); !highPriorityIndexes_2_1.done; highPriorityIndexes_2_1 = highPriorityIndexes_2.next()) {
694
+ var index = highPriorityIndexes_2_1.value;
695
+ (0, array_1.pushToStart)(indexes, index);
696
+ }
697
+ }
698
+ catch (e_9_1) { e_9 = { error: e_9_1 }; }
699
+ finally {
700
+ try {
701
+ if (highPriorityIndexes_2_1 && !highPriorityIndexes_2_1.done && (_a = highPriorityIndexes_2.return)) _a.call(highPriorityIndexes_2);
702
+ }
703
+ finally { if (e_9) throw e_9.error; }
704
+ }
705
+ try {
706
+ for (var lowPriorityIndexes_2 = __values(lowPriorityIndexes), lowPriorityIndexes_2_1 = lowPriorityIndexes_2.next(); !lowPriorityIndexes_2_1.done; lowPriorityIndexes_2_1 = lowPriorityIndexes_2.next()) {
707
+ var index = lowPriorityIndexes_2_1.value;
708
+ (0, array_1.pushToEnd)(indexes, index);
709
+ }
710
+ }
711
+ catch (e_10_1) { e_10 = { error: e_10_1 }; }
712
+ finally {
713
+ try {
714
+ if (lowPriorityIndexes_2_1 && !lowPriorityIndexes_2_1.done && (_b = lowPriorityIndexes_2.return)) _b.call(lowPriorityIndexes_2);
715
+ }
716
+ finally { if (e_10) throw e_10.error; }
717
+ }
718
+ if (typeof lowPriorityIndex === 'number') {
719
+ (0, array_1.pushToEnd)(indexes, lowPriorityIndex);
720
+ }
721
+ for (var i = 0; emptyDelta !== 0 && i < indexes.length; i++) {
722
+ var item = this.views[indexes[i]];
723
+ var size = (0, math_1.clamp)(item.size + emptyDelta, item.minimumSize, item.maximumSize);
724
+ var viewDelta = size - item.size;
725
+ emptyDelta -= viewDelta;
726
+ item.size = size;
727
+ }
728
+ };
729
+ Splitview.prototype.saveProportions = function () {
730
+ var _this = this;
731
+ if (this.proportionalLayout && this.contentSize > 0) {
732
+ this._proportions = this.views.map(function (i) { return i.size / _this.contentSize; });
733
+ }
734
+ };
735
+ Splitview.prototype.layoutViews = function () {
736
+ var _this = this;
737
+ this.contentSize = this.views.reduce(function (r, i) { return r + i.size; }, 0);
738
+ var sum = 0;
739
+ var x = [];
740
+ this.updateSashEnablement();
741
+ for (var i = 0; i < this.views.length - 1; i++) {
742
+ sum += this.views[i].size;
743
+ x.push(sum);
744
+ var offset = Math.min(Math.max(0, sum - 2), this.size - 4);
745
+ if (this._orientation === Orientation.HORIZONTAL) {
746
+ this.sashes[i].container.style.left = "".concat(offset, "px");
747
+ this.sashes[i].container.style.top = "0px";
748
+ }
749
+ if (this._orientation === Orientation.VERTICAL) {
750
+ this.sashes[i].container.style.left = "0px";
751
+ this.sashes[i].container.style.top = "".concat(offset, "px");
752
+ }
753
+ }
754
+ this.views.forEach(function (view, i) {
755
+ if (_this._orientation === Orientation.HORIZONTAL) {
756
+ view.container.style.width = "".concat(view.size, "px");
757
+ view.container.style.left = i == 0 ? '0px' : "".concat(x[i - 1], "px");
758
+ view.container.style.top = '';
759
+ view.container.style.height = '';
760
+ }
761
+ if (_this._orientation === Orientation.VERTICAL) {
762
+ view.container.style.height = "".concat(view.size, "px");
763
+ view.container.style.top = i == 0 ? '0px' : "".concat(x[i - 1], "px");
764
+ view.container.style.width = '';
765
+ view.container.style.left = '';
766
+ }
767
+ view.view.layout(view.size, _this._orthogonalSize);
768
+ });
769
+ };
770
+ Splitview.prototype.findFirstSnapIndex = function (indexes) {
771
+ var e_11, _a, e_12, _b;
772
+ try {
773
+ // visible views first
774
+ for (var indexes_1 = __values(indexes), indexes_1_1 = indexes_1.next(); !indexes_1_1.done; indexes_1_1 = indexes_1.next()) {
775
+ var index = indexes_1_1.value;
776
+ var viewItem = this.views[index];
777
+ if (!viewItem.visible) {
778
+ continue;
779
+ }
780
+ if (viewItem.snap) {
781
+ return index;
782
+ }
783
+ }
784
+ }
785
+ catch (e_11_1) { e_11 = { error: e_11_1 }; }
786
+ finally {
787
+ try {
788
+ if (indexes_1_1 && !indexes_1_1.done && (_a = indexes_1.return)) _a.call(indexes_1);
789
+ }
790
+ finally { if (e_11) throw e_11.error; }
791
+ }
792
+ try {
793
+ // then, hidden views
794
+ for (var indexes_2 = __values(indexes), indexes_2_1 = indexes_2.next(); !indexes_2_1.done; indexes_2_1 = indexes_2.next()) {
795
+ var index = indexes_2_1.value;
796
+ var viewItem = this.views[index];
797
+ if (viewItem.visible &&
798
+ viewItem.maximumSize - viewItem.minimumSize > 0) {
799
+ return undefined;
800
+ }
801
+ if (!viewItem.visible && viewItem.snap) {
802
+ return index;
803
+ }
804
+ }
805
+ }
806
+ catch (e_12_1) { e_12 = { error: e_12_1 }; }
807
+ finally {
808
+ try {
809
+ if (indexes_2_1 && !indexes_2_1.done && (_b = indexes_2.return)) _b.call(indexes_2);
810
+ }
811
+ finally { if (e_12) throw e_12.error; }
812
+ }
813
+ return undefined;
814
+ };
815
+ Splitview.prototype.updateSashEnablement = function () {
816
+ var previous = false;
817
+ var collapsesDown = this.views.map(function (i) { return (previous = i.size - i.minimumSize > 0 || previous); });
818
+ previous = false;
819
+ var expandsDown = this.views.map(function (i) { return (previous = i.maximumSize - i.size > 0 || previous); });
820
+ var reverseViews = __spreadArray([], __read(this.views), false).reverse();
821
+ previous = false;
822
+ var collapsesUp = reverseViews
823
+ .map(function (i) { return (previous = i.size - i.minimumSize > 0 || previous); })
824
+ .reverse();
825
+ previous = false;
826
+ var expandsUp = reverseViews
827
+ .map(function (i) { return (previous = i.maximumSize - i.size > 0 || previous); })
828
+ .reverse();
829
+ var position = 0;
830
+ for (var index = 0; index < this.sashes.length; index++) {
831
+ var sash = this.sashes[index];
832
+ var viewItem = this.views[index];
833
+ position += viewItem.size;
834
+ var min = !(collapsesDown[index] && expandsUp[index + 1]);
835
+ var max = !(expandsDown[index] && collapsesUp[index + 1]);
836
+ if (min && max) {
837
+ var upIndexes = (0, array_1.range)(index, -1);
838
+ var downIndexes = (0, array_1.range)(index + 1, this.views.length);
839
+ var snapBeforeIndex = this.findFirstSnapIndex(upIndexes);
840
+ var snapAfterIndex = this.findFirstSnapIndex(downIndexes);
841
+ var snappedBefore = typeof snapBeforeIndex === 'number' &&
842
+ !this.views[snapBeforeIndex].visible;
843
+ var snappedAfter = typeof snapAfterIndex === 'number' &&
844
+ !this.views[snapAfterIndex].visible;
845
+ if (snappedBefore &&
846
+ collapsesUp[index] &&
847
+ (position > 0 || this.startSnappingEnabled)) {
848
+ this.updateSash(sash, SashState.MINIMUM);
849
+ }
850
+ else if (snappedAfter &&
851
+ collapsesDown[index] &&
852
+ (position < this.contentSize || this.endSnappingEnabled)) {
853
+ this.updateSash(sash, SashState.MAXIMUM);
854
+ }
855
+ else {
856
+ this.updateSash(sash, SashState.DISABLED);
857
+ }
858
+ }
859
+ else if (min && !max) {
860
+ this.updateSash(sash, SashState.MINIMUM);
861
+ }
862
+ else if (!min && max) {
863
+ this.updateSash(sash, SashState.MAXIMUM);
864
+ }
865
+ else {
866
+ this.updateSash(sash, SashState.ENABLED);
867
+ }
868
+ }
869
+ };
870
+ Splitview.prototype.updateSash = function (sash, state) {
871
+ (0, dom_1.toggleClass)(sash.container, 'disabled', state === SashState.DISABLED);
872
+ (0, dom_1.toggleClass)(sash.container, 'enabled', state === SashState.ENABLED);
873
+ (0, dom_1.toggleClass)(sash.container, 'maximum', state === SashState.MAXIMUM);
874
+ (0, dom_1.toggleClass)(sash.container, 'minimum', state === SashState.MINIMUM);
875
+ };
876
+ Splitview.prototype.createViewContainer = function () {
877
+ var element = document.createElement('div');
878
+ element.className = 'view-container';
879
+ return element;
880
+ };
881
+ Splitview.prototype.createSashContainer = function () {
882
+ var element = document.createElement('div');
883
+ element.className = 'sash-container';
884
+ return element;
885
+ };
886
+ Splitview.prototype.createContainer = function () {
887
+ var element = document.createElement('div');
888
+ var orientationClassname = this._orientation === Orientation.HORIZONTAL
889
+ ? 'horizontal'
890
+ : 'vertical';
891
+ element.className = "split-view-container ".concat(orientationClassname);
892
+ return element;
893
+ };
894
+ Splitview.prototype.dispose = function () {
895
+ this._onDidSashEnd.dispose();
896
+ this._onDidAddView.dispose();
897
+ this._onDidRemoveView.dispose();
898
+ for (var i = 0; i < this.element.children.length; i++) {
899
+ if (this.element.children.item(i) === this.element) {
900
+ this.element.removeChild(this.element);
901
+ break;
902
+ }
903
+ }
904
+ this.element.remove();
905
+ };
906
+ return Splitview;
907
+ }());
908
+ exports.Splitview = Splitview;
909
909
  //# sourceMappingURL=splitview.js.map