dockview-core 1.8.4 → 1.8.5

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