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