@babylonjs/gui 5.0.0-rc.1 → 5.0.0-rc.12

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 (306) hide show
  1. package/2D/adtInstrumentation.d.ts +52 -52
  2. package/2D/adtInstrumentation.js +126 -126
  3. package/2D/adtInstrumentation.js.map +1 -1
  4. package/2D/advancedDynamicTexture.d.ts +449 -423
  5. package/2D/advancedDynamicTexture.js +1318 -1286
  6. package/2D/advancedDynamicTexture.js.map +1 -1
  7. package/2D/controls/button.d.ts +135 -97
  8. package/2D/controls/button.js +276 -238
  9. package/2D/controls/button.js.map +1 -1
  10. package/2D/controls/checkbox.d.ts +59 -51
  11. package/2D/controls/checkbox.js +188 -178
  12. package/2D/controls/checkbox.js.map +1 -1
  13. package/2D/controls/colorpicker.d.ts +103 -90
  14. package/2D/controls/colorpicker.js +1417 -1400
  15. package/2D/controls/colorpicker.js.map +1 -1
  16. package/2D/controls/container.d.ts +175 -130
  17. package/2D/controls/container.js +570 -525
  18. package/2D/controls/container.js.map +1 -1
  19. package/2D/controls/control.d.ts +866 -743
  20. package/2D/controls/control.js +2433 -2308
  21. package/2D/controls/control.js.map +1 -1
  22. package/2D/controls/displayGrid.d.ts +53 -55
  23. package/2D/controls/displayGrid.js +245 -245
  24. package/2D/controls/displayGrid.js.map +1 -1
  25. package/2D/controls/ellipse.d.ts +21 -21
  26. package/2D/controls/ellipse.js +85 -85
  27. package/2D/controls/ellipse.js.map +1 -1
  28. package/2D/controls/focusableButton.d.ts +59 -52
  29. package/2D/controls/focusableButton.js +99 -92
  30. package/2D/controls/focusableButton.js.map +1 -1
  31. package/2D/controls/focusableControl.d.ts +34 -34
  32. package/2D/controls/focusableControl.js +1 -1
  33. package/2D/controls/focusableControl.js.map +1 -1
  34. package/2D/controls/grid.d.ts +139 -135
  35. package/2D/controls/grid.js +529 -525
  36. package/2D/controls/grid.js.map +1 -1
  37. package/2D/controls/image.d.ts +204 -197
  38. package/2D/controls/image.js +887 -879
  39. package/2D/controls/image.js.map +1 -1
  40. package/2D/controls/index.d.ts +29 -29
  41. package/2D/controls/index.js +29 -29
  42. package/2D/controls/index.js.map +1 -1
  43. package/2D/controls/inputPassword.d.ts +9 -8
  44. package/2D/controls/inputPassword.js +28 -25
  45. package/2D/controls/inputPassword.js.map +1 -1
  46. package/2D/controls/inputText.d.ts +201 -182
  47. package/2D/controls/inputText.js +1119 -1096
  48. package/2D/controls/inputText.js.map +1 -1
  49. package/2D/controls/line.d.ts +66 -66
  50. package/2D/controls/line.js +271 -271
  51. package/2D/controls/line.js.map +1 -1
  52. package/2D/controls/multiLine.d.ts +75 -77
  53. package/2D/controls/multiLine.js +262 -262
  54. package/2D/controls/multiLine.js.map +1 -1
  55. package/2D/controls/radioButton.d.ts +49 -49
  56. package/2D/controls/radioButton.js +205 -205
  57. package/2D/controls/radioButton.js.map +1 -1
  58. package/2D/controls/rectangle.d.ts +29 -29
  59. package/2D/controls/rectangle.js +150 -150
  60. package/2D/controls/rectangle.js.map +1 -1
  61. package/2D/controls/scrollViewers/scrollViewer.d.ts +182 -175
  62. package/2D/controls/scrollViewers/scrollViewer.js +677 -676
  63. package/2D/controls/scrollViewers/scrollViewer.js.map +1 -1
  64. package/2D/controls/scrollViewers/scrollViewerWindow.d.ts +57 -45
  65. package/2D/controls/scrollViewers/scrollViewerWindow.js +278 -263
  66. package/2D/controls/scrollViewers/scrollViewerWindow.js.map +1 -1
  67. package/2D/controls/selector.d.ts +263 -209
  68. package/2D/controls/selector.js +692 -629
  69. package/2D/controls/selector.js.map +1 -1
  70. package/2D/controls/sliders/baseSlider.d.ts +82 -78
  71. package/2D/controls/sliders/baseSlider.js +347 -343
  72. package/2D/controls/sliders/baseSlider.js.map +1 -1
  73. package/2D/controls/sliders/imageBasedSlider.d.ts +49 -47
  74. package/2D/controls/sliders/imageBasedSlider.js +192 -188
  75. package/2D/controls/sliders/imageBasedSlider.js.map +1 -1
  76. package/2D/controls/sliders/imageScrollBar.d.ts +65 -61
  77. package/2D/controls/sliders/imageScrollBar.js +263 -256
  78. package/2D/controls/sliders/imageScrollBar.js.map +1 -1
  79. package/2D/controls/sliders/scrollBar.d.ts +38 -34
  80. package/2D/controls/sliders/scrollBar.js +143 -136
  81. package/2D/controls/sliders/scrollBar.js.map +1 -1
  82. package/2D/controls/sliders/slider.d.ts +35 -37
  83. package/2D/controls/sliders/slider.js +271 -271
  84. package/2D/controls/sliders/slider.js.map +1 -1
  85. package/2D/controls/stackPanel.d.ts +64 -56
  86. package/2D/controls/stackPanel.js +246 -236
  87. package/2D/controls/stackPanel.js.map +1 -1
  88. package/2D/controls/statics.d.ts +6 -6
  89. package/2D/controls/statics.js +49 -47
  90. package/2D/controls/statics.js.map +1 -1
  91. package/2D/controls/textBlock.d.ts +175 -172
  92. package/2D/controls/textBlock.js +603 -598
  93. package/2D/controls/textBlock.js.map +1 -1
  94. package/2D/controls/textWrapper.d.ts +13 -13
  95. package/2D/controls/textWrapper.js +101 -101
  96. package/2D/controls/textWrapper.js.map +1 -1
  97. package/2D/controls/toggleButton.d.ts +117 -83
  98. package/2D/controls/toggleButton.js +268 -234
  99. package/2D/controls/toggleButton.js.map +1 -1
  100. package/2D/controls/virtualKeyboard.d.ts +96 -96
  101. package/2D/controls/virtualKeyboard.js +256 -256
  102. package/2D/controls/virtualKeyboard.js.map +1 -1
  103. package/2D/index.d.ts +9 -9
  104. package/2D/index.js +10 -9
  105. package/2D/index.js.map +1 -1
  106. package/2D/math2D.d.ts +117 -117
  107. package/2D/math2D.js +221 -221
  108. package/2D/math2D.js.map +1 -1
  109. package/2D/measure.d.ts +77 -77
  110. package/2D/measure.js +139 -149
  111. package/2D/measure.js.map +1 -1
  112. package/2D/multiLinePoint.d.ts +47 -47
  113. package/2D/multiLinePoint.js +127 -127
  114. package/2D/multiLinePoint.js.map +1 -1
  115. package/2D/style.d.ts +46 -46
  116. package/2D/style.js +97 -97
  117. package/2D/style.js.map +1 -1
  118. package/2D/valueAndUnit.d.ts +89 -89
  119. package/2D/valueAndUnit.js +226 -222
  120. package/2D/valueAndUnit.js.map +1 -1
  121. package/2D/xmlLoader.d.ts +60 -60
  122. package/2D/xmlLoader.js +348 -348
  123. package/2D/xmlLoader.js.map +1 -1
  124. package/3D/behaviors/defaultBehavior.d.ts +73 -73
  125. package/3D/behaviors/defaultBehavior.js +121 -121
  126. package/3D/behaviors/defaultBehavior.js.map +1 -1
  127. package/3D/controls/abstractButton3D.d.ts +15 -15
  128. package/3D/controls/abstractButton3D.js +25 -25
  129. package/3D/controls/abstractButton3D.js.map +1 -1
  130. package/3D/controls/button3D.d.ts +30 -30
  131. package/3D/controls/button3D.js +93 -93
  132. package/3D/controls/button3D.js.map +1 -1
  133. package/3D/controls/container3D.d.ts +72 -72
  134. package/3D/controls/container3D.js +139 -140
  135. package/3D/controls/container3D.js.map +1 -1
  136. package/3D/controls/contentDisplay3D.d.ts +30 -30
  137. package/3D/controls/contentDisplay3D.js +79 -78
  138. package/3D/controls/contentDisplay3D.js.map +1 -1
  139. package/3D/controls/control3D.d.ts +201 -165
  140. package/3D/controls/control3D.js +445 -408
  141. package/3D/controls/control3D.js.map +1 -1
  142. package/3D/controls/cylinderPanel.d.ts +17 -17
  143. package/3D/controls/cylinderPanel.js +66 -66
  144. package/3D/controls/cylinderPanel.js.map +1 -1
  145. package/3D/controls/handMenu.d.ts +28 -28
  146. package/3D/controls/handMenu.js +47 -47
  147. package/3D/controls/handMenu.js.map +1 -1
  148. package/3D/controls/holographicBackplate.d.ts +49 -48
  149. package/3D/controls/holographicBackplate.js +120 -120
  150. package/3D/controls/holographicBackplate.js.map +1 -1
  151. package/3D/controls/holographicButton.d.ts +84 -83
  152. package/3D/controls/holographicButton.js +339 -338
  153. package/3D/controls/holographicButton.js.map +1 -1
  154. package/3D/controls/holographicSlate.d.ts +131 -128
  155. package/3D/controls/holographicSlate.js +431 -428
  156. package/3D/controls/holographicSlate.js.map +1 -1
  157. package/3D/controls/index.d.ts +21 -21
  158. package/3D/controls/index.js +21 -21
  159. package/3D/controls/index.js.map +1 -1
  160. package/3D/controls/meshButton3D.d.ts +21 -21
  161. package/3D/controls/meshButton3D.js +62 -61
  162. package/3D/controls/meshButton3D.js.map +1 -1
  163. package/3D/controls/nearMenu.d.ts +44 -44
  164. package/3D/controls/nearMenu.js +114 -112
  165. package/3D/controls/nearMenu.js.map +1 -1
  166. package/3D/controls/planePanel.d.ts +9 -9
  167. package/3D/controls/planePanel.js +36 -36
  168. package/3D/controls/planePanel.js.map +1 -1
  169. package/3D/controls/scatterPanel.d.ts +18 -18
  170. package/3D/controls/scatterPanel.js +108 -108
  171. package/3D/controls/scatterPanel.js.map +1 -1
  172. package/3D/controls/slider3D.d.ts +81 -81
  173. package/3D/controls/slider3D.js +268 -267
  174. package/3D/controls/slider3D.js.map +1 -1
  175. package/3D/controls/spherePanel.d.ts +17 -17
  176. package/3D/controls/spherePanel.js +67 -67
  177. package/3D/controls/spherePanel.js.map +1 -1
  178. package/3D/controls/stackPanel3D.d.ts +22 -22
  179. package/3D/controls/stackPanel3D.js +107 -107
  180. package/3D/controls/stackPanel3D.js.map +1 -1
  181. package/3D/controls/touchButton3D.d.ts +80 -75
  182. package/3D/controls/touchButton3D.js +233 -227
  183. package/3D/controls/touchButton3D.js.map +1 -1
  184. package/3D/controls/touchHolographicButton.d.ts +110 -109
  185. package/3D/controls/touchHolographicButton.js +445 -445
  186. package/3D/controls/touchHolographicButton.js.map +1 -1
  187. package/3D/controls/touchHolographicMenu.d.ts +61 -61
  188. package/3D/controls/touchHolographicMenu.js +149 -148
  189. package/3D/controls/touchHolographicMenu.js.map +1 -1
  190. package/3D/controls/touchMeshButton3D.d.ts +21 -22
  191. package/3D/controls/touchMeshButton3D.js +62 -62
  192. package/3D/controls/touchMeshButton3D.js.map +1 -1
  193. package/3D/controls/volumeBasedPanel.d.ts +53 -52
  194. package/3D/controls/volumeBasedPanel.js +174 -174
  195. package/3D/controls/volumeBasedPanel.js.map +1 -1
  196. package/3D/gizmos/gizmoHandle.d.ts +108 -108
  197. package/3D/gizmos/gizmoHandle.js +209 -209
  198. package/3D/gizmos/gizmoHandle.js.map +1 -1
  199. package/3D/gizmos/index.d.ts +2 -2
  200. package/3D/gizmos/index.js +2 -2
  201. package/3D/gizmos/index.js.map +1 -1
  202. package/3D/gizmos/slateGizmo.d.ts +57 -57
  203. package/3D/gizmos/slateGizmo.js +369 -369
  204. package/3D/gizmos/slateGizmo.js.map +1 -1
  205. package/3D/gui3DManager.d.ts +94 -94
  206. package/3D/gui3DManager.js +257 -257
  207. package/3D/gui3DManager.js.map +1 -1
  208. package/3D/index.d.ts +5 -5
  209. package/3D/index.js +6 -5
  210. package/3D/index.js.map +1 -1
  211. package/3D/materials/fluent/fluentMaterial.d.ts +91 -90
  212. package/3D/materials/fluent/fluentMaterial.js +292 -281
  213. package/3D/materials/fluent/fluentMaterial.js.map +1 -1
  214. package/3D/materials/fluent/index.d.ts +1 -1
  215. package/3D/materials/fluent/index.js +1 -1
  216. package/3D/materials/fluent/index.js.map +1 -1
  217. package/3D/materials/fluent/shaders/fluent.fragment.d.ts +5 -5
  218. package/3D/materials/fluent/shaders/fluent.fragment.js +8 -6
  219. package/3D/materials/fluent/shaders/fluent.fragment.js.map +1 -1
  220. package/3D/materials/fluent/shaders/fluent.vertex.d.ts +5 -5
  221. package/3D/materials/fluent/shaders/fluent.vertex.js +8 -6
  222. package/3D/materials/fluent/shaders/fluent.vertex.js.map +1 -1
  223. package/3D/materials/fluentBackplate/fluentBackplateMaterial.d.ts +155 -154
  224. package/3D/materials/fluentBackplate/fluentBackplateMaterial.js +469 -434
  225. package/3D/materials/fluentBackplate/fluentBackplateMaterial.js.map +1 -1
  226. package/3D/materials/fluentBackplate/index.d.ts +1 -1
  227. package/3D/materials/fluentBackplate/index.js +1 -1
  228. package/3D/materials/fluentBackplate/index.js.map +1 -1
  229. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.d.ts +5 -5
  230. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js +8 -6
  231. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js.map +1 -1
  232. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.d.ts +5 -5
  233. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js +8 -6
  234. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js.map +1 -1
  235. package/3D/materials/fluentButton/fluentButtonMaterial.d.ts +190 -189
  236. package/3D/materials/fluentButton/fluentButtonMaterial.js +539 -537
  237. package/3D/materials/fluentButton/fluentButtonMaterial.js.map +1 -1
  238. package/3D/materials/fluentButton/index.d.ts +1 -1
  239. package/3D/materials/fluentButton/index.js +1 -1
  240. package/3D/materials/fluentButton/index.js.map +1 -1
  241. package/3D/materials/fluentButton/shaders/fluentButton.fragment.d.ts +5 -5
  242. package/3D/materials/fluentButton/shaders/fluentButton.fragment.js +8 -6
  243. package/3D/materials/fluentButton/shaders/fluentButton.fragment.js.map +1 -1
  244. package/3D/materials/fluentButton/shaders/fluentButton.vertex.d.ts +5 -5
  245. package/3D/materials/fluentButton/shaders/fluentButton.vertex.js +8 -6
  246. package/3D/materials/fluentButton/shaders/fluentButton.vertex.js.map +1 -1
  247. package/3D/materials/fluentMaterial.d.ts +4 -4
  248. package/3D/materials/fluentMaterial.js +4 -4
  249. package/3D/materials/fluentMaterial.js.map +1 -1
  250. package/3D/materials/handle/handleMaterial.d.ts +68 -68
  251. package/3D/materials/handle/handleMaterial.js +126 -126
  252. package/3D/materials/handle/handleMaterial.js.map +1 -1
  253. package/3D/materials/handle/index.d.ts +1 -1
  254. package/3D/materials/handle/index.js +1 -1
  255. package/3D/materials/handle/index.js.map +1 -1
  256. package/3D/materials/handle/shaders/handle.fragment.d.ts +5 -5
  257. package/3D/materials/handle/shaders/handle.fragment.js +8 -6
  258. package/3D/materials/handle/shaders/handle.fragment.js.map +1 -1
  259. package/3D/materials/handle/shaders/handle.vertex.d.ts +5 -5
  260. package/3D/materials/handle/shaders/handle.vertex.js +8 -6
  261. package/3D/materials/handle/shaders/handle.vertex.js.map +1 -1
  262. package/3D/materials/index.d.ts +5 -5
  263. package/3D/materials/index.js +6 -5
  264. package/3D/materials/index.js.map +1 -1
  265. package/3D/materials/mrdl/index.d.ts +3 -3
  266. package/3D/materials/mrdl/index.js +3 -3
  267. package/3D/materials/mrdl/index.js.map +1 -1
  268. package/3D/materials/mrdl/mrdlBackplateMaterial.d.ts +148 -147
  269. package/3D/materials/mrdl/mrdlBackplateMaterial.js +436 -409
  270. package/3D/materials/mrdl/mrdlBackplateMaterial.js.map +1 -1
  271. package/3D/materials/mrdl/mrdlSliderBarMaterial.d.ts +334 -333
  272. package/3D/materials/mrdl/mrdlSliderBarMaterial.js +851 -786
  273. package/3D/materials/mrdl/mrdlSliderBarMaterial.js.map +1 -1
  274. package/3D/materials/mrdl/mrdlSliderThumbMaterial.d.ts +334 -333
  275. package/3D/materials/mrdl/mrdlSliderThumbMaterial.js +851 -786
  276. package/3D/materials/mrdl/mrdlSliderThumbMaterial.js.map +1 -1
  277. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.d.ts +5 -5
  278. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js +8 -6
  279. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js.map +1 -1
  280. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.d.ts +5 -5
  281. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js +8 -6
  282. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js.map +1 -1
  283. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.d.ts +5 -5
  284. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js +8 -6
  285. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js.map +1 -1
  286. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.d.ts +5 -5
  287. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js +8 -6
  288. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js.map +1 -1
  289. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.d.ts +5 -5
  290. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js +8 -6
  291. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js.map +1 -1
  292. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.d.ts +5 -5
  293. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js +8 -6
  294. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js.map +1 -1
  295. package/3D/vector3WithInfo.d.ts +16 -16
  296. package/3D/vector3WithInfo.js +23 -23
  297. package/3D/vector3WithInfo.js.map +1 -1
  298. package/index.d.ts +2 -2
  299. package/index.js +3 -2
  300. package/index.js.map +1 -1
  301. package/legacy/legacy.d.ts +1 -1
  302. package/legacy/legacy.js +14 -13
  303. package/legacy/legacy.js.map +1 -1
  304. package/license.md +71 -0
  305. package/package.json +37 -325
  306. package/readme.md +2 -2
@@ -1,677 +1,678 @@
1
- import { __extends } from "tslib";
2
- import { Rectangle } from "../rectangle.js";
3
- import { Grid } from "../grid.js";
4
- import { Control } from "../control.js";
5
- import { _ScrollViewerWindow } from "./scrollViewerWindow.js";
6
- import { ScrollBar } from "../sliders/scrollBar.js";
7
- import { ImageScrollBar } from "../sliders/imageScrollBar.js";
8
- import { RegisterClass } from '@babylonjs/core/Misc/typeStore.js';
9
- /**
10
- * Class used to hold a viewer window and sliders in a grid
11
- */
12
- var ScrollViewer = /** @class */ (function (_super) {
13
- __extends(ScrollViewer, _super);
14
- /**
15
- * Creates a new ScrollViewer
16
- * @param name of ScrollViewer
17
- */
18
- function ScrollViewer(name, isImageBased) {
19
- var _this = _super.call(this, name) || this;
20
- _this._barSize = 20;
21
- _this._pointerIsOver = false;
22
- _this._wheelPrecision = 0.05;
23
- _this._thumbLength = 0.5;
24
- _this._thumbHeight = 1;
25
- _this._barImageHeight = 1;
26
- _this._horizontalBarImageHeight = 1;
27
- _this._verticalBarImageHeight = 1;
28
- _this._oldWindowContentsWidth = 0;
29
- _this._oldWindowContentsHeight = 0;
30
- _this._forceHorizontalBar = false;
31
- _this._forceVerticalBar = false;
32
- _this._useImageBar = isImageBased ? isImageBased : false;
33
- _this.onDirtyObservable.add(function () {
34
- _this._horizontalBarSpace.color = _this.color;
35
- _this._verticalBarSpace.color = _this.color;
36
- _this._dragSpace.color = _this.color;
37
- });
38
- _this.onPointerEnterObservable.add(function () {
39
- _this._pointerIsOver = true;
40
- });
41
- _this.onPointerOutObservable.add(function () {
42
- _this._pointerIsOver = false;
43
- });
44
- _this._grid = new Grid();
45
- if (_this._useImageBar) {
46
- _this._horizontalBar = new ImageScrollBar();
47
- _this._verticalBar = new ImageScrollBar();
48
- }
49
- else {
50
- _this._horizontalBar = new ScrollBar();
51
- _this._verticalBar = new ScrollBar();
52
- }
53
- _this._window = new _ScrollViewerWindow("scrollViewer_window");
54
- _this._window.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;
55
- _this._window.verticalAlignment = Control.VERTICAL_ALIGNMENT_TOP;
56
- _this._grid.addColumnDefinition(1);
57
- _this._grid.addColumnDefinition(0, true);
58
- _this._grid.addRowDefinition(1);
59
- _this._grid.addRowDefinition(0, true);
60
- _super.prototype.addControl.call(_this, _this._grid);
61
- _this._grid.addControl(_this._window, 0, 0);
62
- _this._verticalBarSpace = new Rectangle();
63
- _this._verticalBarSpace.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;
64
- _this._verticalBarSpace.verticalAlignment = Control.VERTICAL_ALIGNMENT_TOP;
65
- _this._verticalBarSpace.thickness = 1;
66
- _this._grid.addControl(_this._verticalBarSpace, 0, 1);
67
- _this._addBar(_this._verticalBar, _this._verticalBarSpace, true, Math.PI);
68
- _this._horizontalBarSpace = new Rectangle();
69
- _this._horizontalBarSpace.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;
70
- _this._horizontalBarSpace.verticalAlignment = Control.VERTICAL_ALIGNMENT_TOP;
71
- _this._horizontalBarSpace.thickness = 1;
72
- _this._grid.addControl(_this._horizontalBarSpace, 1, 0);
73
- _this._addBar(_this._horizontalBar, _this._horizontalBarSpace, false, 0);
74
- _this._dragSpace = new Rectangle();
75
- _this._dragSpace.thickness = 1;
76
- _this._grid.addControl(_this._dragSpace, 1, 1);
77
- // Colors
78
- if (!_this._useImageBar) {
79
- _this.barColor = "grey";
80
- _this.barBackground = "transparent";
81
- }
82
- return _this;
83
- }
84
- Object.defineProperty(ScrollViewer.prototype, "horizontalBar", {
85
- /**
86
- * Gets the horizontal scrollbar
87
- */
88
- get: function () {
89
- return this._horizontalBar;
90
- },
91
- enumerable: false,
92
- configurable: true
93
- });
94
- Object.defineProperty(ScrollViewer.prototype, "verticalBar", {
95
- /**
96
- * Gets the vertical scrollbar
97
- */
98
- get: function () {
99
- return this._verticalBar;
100
- },
101
- enumerable: false,
102
- configurable: true
103
- });
104
- /**
105
- * Adds a new control to the current container
106
- * @param control defines the control to add
107
- * @returns the current container
108
- */
109
- ScrollViewer.prototype.addControl = function (control) {
110
- if (!control) {
111
- return this;
112
- }
113
- this._window.addControl(control);
114
- return this;
115
- };
116
- /**
117
- * Removes a control from the current container
118
- * @param control defines the control to remove
119
- * @returns the current container
120
- */
121
- ScrollViewer.prototype.removeControl = function (control) {
122
- this._window.removeControl(control);
123
- return this;
124
- };
125
- Object.defineProperty(ScrollViewer.prototype, "children", {
126
- /** Gets the list of children */
127
- get: function () {
128
- return this._window.children;
129
- },
130
- enumerable: false,
131
- configurable: true
132
- });
133
- ScrollViewer.prototype._flagDescendantsAsMatrixDirty = function () {
134
- for (var _i = 0, _a = this._children; _i < _a.length; _i++) {
135
- var child = _a[_i];
136
- child._markMatrixAsDirty();
137
- }
138
- };
139
- Object.defineProperty(ScrollViewer.prototype, "freezeControls", {
140
- /**
141
- * Freezes or unfreezes the controls in the window.
142
- * When controls are frozen, the scroll viewer can render a lot more quickly but updates to positions/sizes of controls
143
- * are not taken into account. If you want to change positions/sizes, unfreeze, perform the changes then freeze again
144
- */
145
- get: function () {
146
- return this._window.freezeControls;
147
- },
148
- set: function (value) {
149
- this._window.freezeControls = value;
150
- },
151
- enumerable: false,
152
- configurable: true
153
- });
154
- Object.defineProperty(ScrollViewer.prototype, "bucketWidth", {
155
- /** Gets the bucket width */
156
- get: function () {
157
- return this._window.bucketWidth;
158
- },
159
- enumerable: false,
160
- configurable: true
161
- });
162
- Object.defineProperty(ScrollViewer.prototype, "bucketHeight", {
163
- /** Gets the bucket height */
164
- get: function () {
165
- return this._window.bucketHeight;
166
- },
167
- enumerable: false,
168
- configurable: true
169
- });
170
- /**
171
- * Sets the bucket sizes.
172
- * When freezeControls is true, setting a non-zero bucket size will improve performances by updating only
173
- * controls that are visible. The bucket sizes is used to subdivide (internally) the window area to smaller areas into which
174
- * controls are dispatched. So, the size should be roughly equals to the mean size of all the controls of
175
- * the window. To disable the usage of buckets, sets either width or height (or both) to 0.
176
- * Please note that using this option will raise the memory usage (the higher the bucket sizes, the less memory
177
- * used), that's why it is not enabled by default.
178
- * @param width width of the bucket
179
- * @param height height of the bucket
180
- */
181
- ScrollViewer.prototype.setBucketSizes = function (width, height) {
182
- this._window.setBucketSizes(width, height);
183
- };
184
- Object.defineProperty(ScrollViewer.prototype, "forceHorizontalBar", {
185
- /**
186
- * Forces the horizontal scroll bar to be displayed
187
- */
188
- get: function () {
189
- return this._forceHorizontalBar;
190
- },
191
- set: function (value) {
192
- this._grid.setRowDefinition(1, value ? this._barSize : 0, true);
193
- this._horizontalBar.isVisible = value;
194
- this._forceHorizontalBar = value;
195
- },
196
- enumerable: false,
197
- configurable: true
198
- });
199
- Object.defineProperty(ScrollViewer.prototype, "forceVerticalBar", {
200
- /**
201
- * Forces the vertical scroll bar to be displayed
202
- */
203
- get: function () {
204
- return this._forceVerticalBar;
205
- },
206
- set: function (value) {
207
- this._grid.setColumnDefinition(1, value ? this._barSize : 0, true);
208
- this._verticalBar.isVisible = value;
209
- this._forceVerticalBar = value;
210
- },
211
- enumerable: false,
212
- configurable: true
213
- });
214
- /** Reset the scroll viewer window to initial size */
215
- ScrollViewer.prototype.resetWindow = function () {
216
- this._window.width = "100%";
217
- this._window.height = "100%";
218
- };
219
- ScrollViewer.prototype._getTypeName = function () {
220
- return "ScrollViewer";
221
- };
222
- ScrollViewer.prototype._buildClientSizes = function () {
223
- var ratio = this.host.idealRatio;
224
- this._window.parentClientWidth = this._currentMeasure.width - (this._verticalBar.isVisible || this.forceVerticalBar ? this._barSize * ratio : 0) - 2 * this.thickness;
225
- this._window.parentClientHeight = this._currentMeasure.height - (this._horizontalBar.isVisible || this.forceHorizontalBar ? this._barSize * ratio : 0) - 2 * this.thickness;
226
- this._clientWidth = this._window.parentClientWidth;
227
- this._clientHeight = this._window.parentClientHeight;
228
- };
229
- ScrollViewer.prototype._additionalProcessing = function (parentMeasure, context) {
230
- _super.prototype._additionalProcessing.call(this, parentMeasure, context);
231
- this._buildClientSizes();
232
- };
233
- ScrollViewer.prototype._postMeasure = function () {
234
- _super.prototype._postMeasure.call(this);
235
- this._updateScroller();
236
- this._setWindowPosition(false);
237
- };
238
- Object.defineProperty(ScrollViewer.prototype, "wheelPrecision", {
239
- /**
240
- * Gets or sets the mouse wheel precision
241
- * from 0 to 1 with a default value of 0.05
242
- * */
243
- get: function () {
244
- return this._wheelPrecision;
245
- },
246
- set: function (value) {
247
- if (this._wheelPrecision === value) {
248
- return;
249
- }
250
- if (value < 0) {
251
- value = 0;
252
- }
253
- if (value > 1) {
254
- value = 1;
255
- }
256
- this._wheelPrecision = value;
257
- },
258
- enumerable: false,
259
- configurable: true
260
- });
261
- Object.defineProperty(ScrollViewer.prototype, "scrollBackground", {
262
- /** Gets or sets the scroll bar container background color */
263
- get: function () {
264
- return this._horizontalBarSpace.background;
265
- },
266
- set: function (color) {
267
- if (this._horizontalBarSpace.background === color) {
268
- return;
269
- }
270
- this._horizontalBarSpace.background = color;
271
- this._verticalBarSpace.background = color;
272
- },
273
- enumerable: false,
274
- configurable: true
275
- });
276
- Object.defineProperty(ScrollViewer.prototype, "barColor", {
277
- /** Gets or sets the bar color */
278
- get: function () {
279
- return this._barColor;
280
- },
281
- set: function (color) {
282
- if (this._barColor === color) {
283
- return;
284
- }
285
- this._barColor = color;
286
- this._horizontalBar.color = color;
287
- this._verticalBar.color = color;
288
- },
289
- enumerable: false,
290
- configurable: true
291
- });
292
- Object.defineProperty(ScrollViewer.prototype, "thumbImage", {
293
- /** Gets or sets the bar image */
294
- get: function () {
295
- return this._barImage;
296
- },
297
- set: function (value) {
298
- if (this._barImage === value) {
299
- return;
300
- }
301
- this._barImage = value;
302
- var hb = this._horizontalBar;
303
- var vb = this._verticalBar;
304
- hb.thumbImage = value;
305
- vb.thumbImage = value;
306
- },
307
- enumerable: false,
308
- configurable: true
309
- });
310
- Object.defineProperty(ScrollViewer.prototype, "horizontalThumbImage", {
311
- /** Gets or sets the horizontal bar image */
312
- get: function () {
313
- return this._horizontalBarImage;
314
- },
315
- set: function (value) {
316
- if (this._horizontalBarImage === value) {
317
- return;
318
- }
319
- this._horizontalBarImage = value;
320
- var hb = this._horizontalBar;
321
- hb.thumbImage = value;
322
- },
323
- enumerable: false,
324
- configurable: true
325
- });
326
- Object.defineProperty(ScrollViewer.prototype, "verticalThumbImage", {
327
- /** Gets or sets the vertical bar image */
328
- get: function () {
329
- return this._verticalBarImage;
330
- },
331
- set: function (value) {
332
- if (this._verticalBarImage === value) {
333
- return;
334
- }
335
- this._verticalBarImage = value;
336
- var vb = this._verticalBar;
337
- vb.thumbImage = value;
338
- },
339
- enumerable: false,
340
- configurable: true
341
- });
342
- Object.defineProperty(ScrollViewer.prototype, "barSize", {
343
- /** Gets or sets the size of the bar */
344
- get: function () {
345
- return this._barSize;
346
- },
347
- set: function (value) {
348
- if (this._barSize === value) {
349
- return;
350
- }
351
- this._barSize = value;
352
- this._markAsDirty();
353
- if (this._horizontalBar.isVisible) {
354
- this._grid.setRowDefinition(1, this._barSize, true);
355
- }
356
- if (this._verticalBar.isVisible) {
357
- this._grid.setColumnDefinition(1, this._barSize, true);
358
- }
359
- },
360
- enumerable: false,
361
- configurable: true
362
- });
363
- Object.defineProperty(ScrollViewer.prototype, "thumbLength", {
364
- /** Gets or sets the length of the thumb */
365
- get: function () {
366
- return this._thumbLength;
367
- },
368
- set: function (value) {
369
- if (this._thumbLength === value) {
370
- return;
371
- }
372
- if (value <= 0) {
373
- value = 0.1;
374
- }
375
- if (value > 1) {
376
- value = 1;
377
- }
378
- this._thumbLength = value;
379
- var hb = this._horizontalBar;
380
- var vb = this._verticalBar;
381
- hb.thumbLength = value;
382
- vb.thumbLength = value;
383
- this._markAsDirty();
384
- },
385
- enumerable: false,
386
- configurable: true
387
- });
388
- Object.defineProperty(ScrollViewer.prototype, "thumbHeight", {
389
- /** Gets or sets the height of the thumb */
390
- get: function () {
391
- return this._thumbHeight;
392
- },
393
- set: function (value) {
394
- if (this._thumbHeight === value) {
395
- return;
396
- }
397
- if (value <= 0) {
398
- value = 0.1;
399
- }
400
- if (value > 1) {
401
- value = 1;
402
- }
403
- this._thumbHeight = value;
404
- var hb = this._horizontalBar;
405
- var vb = this._verticalBar;
406
- hb.thumbHeight = value;
407
- vb.thumbHeight = value;
408
- this._markAsDirty();
409
- },
410
- enumerable: false,
411
- configurable: true
412
- });
413
- Object.defineProperty(ScrollViewer.prototype, "barImageHeight", {
414
- /** Gets or sets the height of the bar image */
415
- get: function () {
416
- return this._barImageHeight;
417
- },
418
- set: function (value) {
419
- if (this._barImageHeight === value) {
420
- return;
421
- }
422
- if (value <= 0) {
423
- value = 0.1;
424
- }
425
- if (value > 1) {
426
- value = 1;
427
- }
428
- this._barImageHeight = value;
429
- var hb = this._horizontalBar;
430
- var vb = this._verticalBar;
431
- hb.barImageHeight = value;
432
- vb.barImageHeight = value;
433
- this._markAsDirty();
434
- },
435
- enumerable: false,
436
- configurable: true
437
- });
438
- Object.defineProperty(ScrollViewer.prototype, "horizontalBarImageHeight", {
439
- /** Gets or sets the height of the horizontal bar image */
440
- get: function () {
441
- return this._horizontalBarImageHeight;
442
- },
443
- set: function (value) {
444
- if (this._horizontalBarImageHeight === value) {
445
- return;
446
- }
447
- if (value <= 0) {
448
- value = 0.1;
449
- }
450
- if (value > 1) {
451
- value = 1;
452
- }
453
- this._horizontalBarImageHeight = value;
454
- var hb = this._horizontalBar;
455
- hb.barImageHeight = value;
456
- this._markAsDirty();
457
- },
458
- enumerable: false,
459
- configurable: true
460
- });
461
- Object.defineProperty(ScrollViewer.prototype, "verticalBarImageHeight", {
462
- /** Gets or sets the height of the vertical bar image */
463
- get: function () {
464
- return this._verticalBarImageHeight;
465
- },
466
- set: function (value) {
467
- if (this._verticalBarImageHeight === value) {
468
- return;
469
- }
470
- if (value <= 0) {
471
- value = 0.1;
472
- }
473
- if (value > 1) {
474
- value = 1;
475
- }
476
- this._verticalBarImageHeight = value;
477
- var vb = this._verticalBar;
478
- vb.barImageHeight = value;
479
- this._markAsDirty();
480
- },
481
- enumerable: false,
482
- configurable: true
483
- });
484
- Object.defineProperty(ScrollViewer.prototype, "barBackground", {
485
- /** Gets or sets the bar background */
486
- get: function () {
487
- return this._barBackground;
488
- },
489
- set: function (color) {
490
- if (this._barBackground === color) {
491
- return;
492
- }
493
- this._barBackground = color;
494
- var hb = this._horizontalBar;
495
- var vb = this._verticalBar;
496
- hb.background = color;
497
- vb.background = color;
498
- this._dragSpace.background = color;
499
- },
500
- enumerable: false,
501
- configurable: true
502
- });
503
- Object.defineProperty(ScrollViewer.prototype, "barImage", {
504
- /** Gets or sets the bar background image */
505
- get: function () {
506
- return this._barBackgroundImage;
507
- },
508
- set: function (value) {
509
- if (this._barBackgroundImage === value) {
510
- }
511
- this._barBackgroundImage = value;
512
- var hb = this._horizontalBar;
513
- var vb = this._verticalBar;
514
- hb.backgroundImage = value;
515
- vb.backgroundImage = value;
516
- },
517
- enumerable: false,
518
- configurable: true
519
- });
520
- Object.defineProperty(ScrollViewer.prototype, "horizontalBarImage", {
521
- /** Gets or sets the horizontal bar background image */
522
- get: function () {
523
- return this._horizontalBarBackgroundImage;
524
- },
525
- set: function (value) {
526
- if (this._horizontalBarBackgroundImage === value) {
527
- }
528
- this._horizontalBarBackgroundImage = value;
529
- var hb = this._horizontalBar;
530
- hb.backgroundImage = value;
531
- },
532
- enumerable: false,
533
- configurable: true
534
- });
535
- Object.defineProperty(ScrollViewer.prototype, "verticalBarImage", {
536
- /** Gets or sets the vertical bar background image */
537
- get: function () {
538
- return this._verticalBarBackgroundImage;
539
- },
540
- set: function (value) {
541
- if (this._verticalBarBackgroundImage === value) {
542
- }
543
- this._verticalBarBackgroundImage = value;
544
- var vb = this._verticalBar;
545
- vb.backgroundImage = value;
546
- },
547
- enumerable: false,
548
- configurable: true
549
- });
550
- ScrollViewer.prototype._setWindowPosition = function (force) {
551
- if (force === void 0) { force = true; }
552
- var ratio = this.host.idealRatio;
553
- var windowContentsWidth = this._window._currentMeasure.width;
554
- var windowContentsHeight = this._window._currentMeasure.height;
555
- if (!force && this._oldWindowContentsWidth === windowContentsWidth && this._oldWindowContentsHeight === windowContentsHeight) {
556
- return;
557
- }
558
- this._oldWindowContentsWidth = windowContentsWidth;
559
- this._oldWindowContentsHeight = windowContentsHeight;
560
- var _endLeft = this._clientWidth - windowContentsWidth;
561
- var _endTop = this._clientHeight - windowContentsHeight;
562
- var newLeft = (this._horizontalBar.value / ratio) * _endLeft + "px";
563
- var newTop = (this._verticalBar.value / ratio) * _endTop + "px";
564
- if (newLeft !== this._window.left) {
565
- this._window.left = newLeft;
566
- if (!this.freezeControls) {
567
- this._rebuildLayout = true;
568
- }
569
- }
570
- if (newTop !== this._window.top) {
571
- this._window.top = newTop;
572
- if (!this.freezeControls) {
573
- this._rebuildLayout = true;
574
- }
575
- }
576
- };
577
- /** @hidden */
578
- ScrollViewer.prototype._updateScroller = function () {
579
- var windowContentsWidth = this._window._currentMeasure.width;
580
- var windowContentsHeight = this._window._currentMeasure.height;
581
- if (this._horizontalBar.isVisible && windowContentsWidth <= this._clientWidth && !this.forceHorizontalBar) {
582
- this._grid.setRowDefinition(1, 0, true);
583
- this._horizontalBar.isVisible = false;
584
- this._horizontalBar.value = 0;
585
- this._rebuildLayout = true;
586
- }
587
- else if (!this._horizontalBar.isVisible && (windowContentsWidth > this._clientWidth || this.forceHorizontalBar)) {
588
- this._grid.setRowDefinition(1, this._barSize, true);
589
- this._horizontalBar.isVisible = true;
590
- this._rebuildLayout = true;
591
- }
592
- if (this._verticalBar.isVisible && windowContentsHeight <= this._clientHeight && !this.forceVerticalBar) {
593
- this._grid.setColumnDefinition(1, 0, true);
594
- this._verticalBar.isVisible = false;
595
- this._verticalBar.value = 0;
596
- this._rebuildLayout = true;
597
- }
598
- else if (!this._verticalBar.isVisible && (windowContentsHeight > this._clientHeight || this.forceVerticalBar)) {
599
- this._grid.setColumnDefinition(1, this._barSize, true);
600
- this._verticalBar.isVisible = true;
601
- this._rebuildLayout = true;
602
- }
603
- this._buildClientSizes();
604
- var ratio = this.host.idealRatio;
605
- this._horizontalBar.thumbWidth = this._thumbLength * 0.9 * (this._clientWidth / ratio) + "px";
606
- this._verticalBar.thumbWidth = this._thumbLength * 0.9 * (this._clientHeight / ratio) + "px";
607
- };
608
- ScrollViewer.prototype._link = function (host) {
609
- _super.prototype._link.call(this, host);
610
- this._attachWheel();
611
- };
612
- /** @hidden */
613
- ScrollViewer.prototype._addBar = function (barControl, barContainer, isVertical, rotation) {
614
- var _this = this;
615
- barControl.paddingLeft = 0;
616
- barControl.width = "100%";
617
- barControl.height = "100%";
618
- barControl.barOffset = 0;
619
- barControl.value = 0;
620
- barControl.maximum = 1;
621
- barControl.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_CENTER;
622
- barControl.verticalAlignment = Control.VERTICAL_ALIGNMENT_CENTER;
623
- barControl.isVertical = isVertical;
624
- barControl.rotation = rotation;
625
- barControl.isVisible = false;
626
- barContainer.addControl(barControl);
627
- barControl.onValueChangedObservable.add(function (value) {
628
- _this._setWindowPosition();
629
- });
630
- };
631
- /** @hidden */
632
- ScrollViewer.prototype._attachWheel = function () {
633
- var _this = this;
634
- if (!this._host || this._onWheelObserver) {
635
- return;
636
- }
637
- this._onWheelObserver = this.onWheelObservable.add(function (pi) {
638
- if (!_this._pointerIsOver || _this.isReadOnly) {
639
- return;
640
- }
641
- if (_this._verticalBar.isVisible == true) {
642
- if (pi.y < 0 && _this._verticalBar.value > 0) {
643
- _this._verticalBar.value -= _this._wheelPrecision;
644
- }
645
- else if (pi.y > 0 && _this._verticalBar.value < _this._verticalBar.maximum) {
646
- _this._verticalBar.value += _this._wheelPrecision;
647
- }
648
- }
649
- if (_this._horizontalBar.isVisible == true) {
650
- if (pi.x < 0 && _this._horizontalBar.value < _this._horizontalBar.maximum) {
651
- _this._horizontalBar.value += _this._wheelPrecision;
652
- }
653
- else if (pi.x > 0 && _this._horizontalBar.value > 0) {
654
- _this._horizontalBar.value -= _this._wheelPrecision;
655
- }
656
- }
657
- });
658
- };
659
- ScrollViewer.prototype._renderHighlightSpecific = function (context) {
660
- if (!this.isHighlighted) {
661
- return;
662
- }
663
- _super.prototype._renderHighlightSpecific.call(this, context);
664
- this._grid._renderHighlightSpecific(context);
665
- context.restore();
666
- };
667
- /** Releases associated resources */
668
- ScrollViewer.prototype.dispose = function () {
669
- this.onWheelObservable.remove(this._onWheelObserver);
670
- this._onWheelObserver = null;
671
- _super.prototype.dispose.call(this);
672
- };
673
- return ScrollViewer;
674
- }(Rectangle));
675
- export { ScrollViewer };
676
- RegisterClass("BABYLON.GUI.ScrollViewer", ScrollViewer);
1
+ import { __extends } from "tslib";
2
+ import { Rectangle } from "../rectangle";
3
+ import { Grid } from "../grid";
4
+ import { Control } from "../control";
5
+ import { _ScrollViewerWindow } from "./scrollViewerWindow";
6
+ import { ScrollBar } from "../sliders/scrollBar";
7
+ import { ImageScrollBar } from "../sliders/imageScrollBar";
8
+ import { RegisterClass } from "@babylonjs/core/Misc/typeStore.js";
9
+ /**
10
+ * Class used to hold a viewer window and sliders in a grid
11
+ */
12
+ var ScrollViewer = /** @class */ (function (_super) {
13
+ __extends(ScrollViewer, _super);
14
+ /**
15
+ * Creates a new ScrollViewer
16
+ * @param name of ScrollViewer
17
+ * @param isImageBased
18
+ */
19
+ function ScrollViewer(name, isImageBased) {
20
+ var _this = _super.call(this, name) || this;
21
+ _this._barSize = 20;
22
+ _this._pointerIsOver = false;
23
+ _this._wheelPrecision = 0.05;
24
+ _this._thumbLength = 0.5;
25
+ _this._thumbHeight = 1;
26
+ _this._barImageHeight = 1;
27
+ _this._horizontalBarImageHeight = 1;
28
+ _this._verticalBarImageHeight = 1;
29
+ _this._oldWindowContentsWidth = 0;
30
+ _this._oldWindowContentsHeight = 0;
31
+ _this._forceHorizontalBar = false;
32
+ _this._forceVerticalBar = false;
33
+ _this._useImageBar = isImageBased ? isImageBased : false;
34
+ _this.onDirtyObservable.add(function () {
35
+ _this._horizontalBarSpace.color = _this.color;
36
+ _this._verticalBarSpace.color = _this.color;
37
+ _this._dragSpace.color = _this.color;
38
+ });
39
+ _this.onPointerEnterObservable.add(function () {
40
+ _this._pointerIsOver = true;
41
+ });
42
+ _this.onPointerOutObservable.add(function () {
43
+ _this._pointerIsOver = false;
44
+ });
45
+ _this._grid = new Grid();
46
+ if (_this._useImageBar) {
47
+ _this._horizontalBar = new ImageScrollBar();
48
+ _this._verticalBar = new ImageScrollBar();
49
+ }
50
+ else {
51
+ _this._horizontalBar = new ScrollBar();
52
+ _this._verticalBar = new ScrollBar();
53
+ }
54
+ _this._window = new _ScrollViewerWindow("scrollViewer_window");
55
+ _this._window.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;
56
+ _this._window.verticalAlignment = Control.VERTICAL_ALIGNMENT_TOP;
57
+ _this._grid.addColumnDefinition(1);
58
+ _this._grid.addColumnDefinition(0, true);
59
+ _this._grid.addRowDefinition(1);
60
+ _this._grid.addRowDefinition(0, true);
61
+ _super.prototype.addControl.call(_this, _this._grid);
62
+ _this._grid.addControl(_this._window, 0, 0);
63
+ _this._verticalBarSpace = new Rectangle();
64
+ _this._verticalBarSpace.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;
65
+ _this._verticalBarSpace.verticalAlignment = Control.VERTICAL_ALIGNMENT_TOP;
66
+ _this._verticalBarSpace.thickness = 1;
67
+ _this._grid.addControl(_this._verticalBarSpace, 0, 1);
68
+ _this._addBar(_this._verticalBar, _this._verticalBarSpace, true, Math.PI);
69
+ _this._horizontalBarSpace = new Rectangle();
70
+ _this._horizontalBarSpace.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_LEFT;
71
+ _this._horizontalBarSpace.verticalAlignment = Control.VERTICAL_ALIGNMENT_TOP;
72
+ _this._horizontalBarSpace.thickness = 1;
73
+ _this._grid.addControl(_this._horizontalBarSpace, 1, 0);
74
+ _this._addBar(_this._horizontalBar, _this._horizontalBarSpace, false, 0);
75
+ _this._dragSpace = new Rectangle();
76
+ _this._dragSpace.thickness = 1;
77
+ _this._grid.addControl(_this._dragSpace, 1, 1);
78
+ // Colors
79
+ if (!_this._useImageBar) {
80
+ _this.barColor = "grey";
81
+ _this.barBackground = "transparent";
82
+ }
83
+ return _this;
84
+ }
85
+ Object.defineProperty(ScrollViewer.prototype, "horizontalBar", {
86
+ /**
87
+ * Gets the horizontal scrollbar
88
+ */
89
+ get: function () {
90
+ return this._horizontalBar;
91
+ },
92
+ enumerable: false,
93
+ configurable: true
94
+ });
95
+ Object.defineProperty(ScrollViewer.prototype, "verticalBar", {
96
+ /**
97
+ * Gets the vertical scrollbar
98
+ */
99
+ get: function () {
100
+ return this._verticalBar;
101
+ },
102
+ enumerable: false,
103
+ configurable: true
104
+ });
105
+ /**
106
+ * Adds a new control to the current container
107
+ * @param control defines the control to add
108
+ * @returns the current container
109
+ */
110
+ ScrollViewer.prototype.addControl = function (control) {
111
+ if (!control) {
112
+ return this;
113
+ }
114
+ this._window.addControl(control);
115
+ return this;
116
+ };
117
+ /**
118
+ * Removes a control from the current container
119
+ * @param control defines the control to remove
120
+ * @returns the current container
121
+ */
122
+ ScrollViewer.prototype.removeControl = function (control) {
123
+ this._window.removeControl(control);
124
+ return this;
125
+ };
126
+ Object.defineProperty(ScrollViewer.prototype, "children", {
127
+ /** Gets the list of children */
128
+ get: function () {
129
+ return this._window.children;
130
+ },
131
+ enumerable: false,
132
+ configurable: true
133
+ });
134
+ ScrollViewer.prototype._flagDescendantsAsMatrixDirty = function () {
135
+ for (var _i = 0, _a = this._children; _i < _a.length; _i++) {
136
+ var child = _a[_i];
137
+ child._markMatrixAsDirty();
138
+ }
139
+ };
140
+ Object.defineProperty(ScrollViewer.prototype, "freezeControls", {
141
+ /**
142
+ * Freezes or unfreezes the controls in the window.
143
+ * When controls are frozen, the scroll viewer can render a lot more quickly but updates to positions/sizes of controls
144
+ * are not taken into account. If you want to change positions/sizes, unfreeze, perform the changes then freeze again
145
+ */
146
+ get: function () {
147
+ return this._window.freezeControls;
148
+ },
149
+ set: function (value) {
150
+ this._window.freezeControls = value;
151
+ },
152
+ enumerable: false,
153
+ configurable: true
154
+ });
155
+ Object.defineProperty(ScrollViewer.prototype, "bucketWidth", {
156
+ /** Gets the bucket width */
157
+ get: function () {
158
+ return this._window.bucketWidth;
159
+ },
160
+ enumerable: false,
161
+ configurable: true
162
+ });
163
+ Object.defineProperty(ScrollViewer.prototype, "bucketHeight", {
164
+ /** Gets the bucket height */
165
+ get: function () {
166
+ return this._window.bucketHeight;
167
+ },
168
+ enumerable: false,
169
+ configurable: true
170
+ });
171
+ /**
172
+ * Sets the bucket sizes.
173
+ * When freezeControls is true, setting a non-zero bucket size will improve performances by updating only
174
+ * controls that are visible. The bucket sizes is used to subdivide (internally) the window area to smaller areas into which
175
+ * controls are dispatched. So, the size should be roughly equals to the mean size of all the controls of
176
+ * the window. To disable the usage of buckets, sets either width or height (or both) to 0.
177
+ * Please note that using this option will raise the memory usage (the higher the bucket sizes, the less memory
178
+ * used), that's why it is not enabled by default.
179
+ * @param width width of the bucket
180
+ * @param height height of the bucket
181
+ */
182
+ ScrollViewer.prototype.setBucketSizes = function (width, height) {
183
+ this._window.setBucketSizes(width, height);
184
+ };
185
+ Object.defineProperty(ScrollViewer.prototype, "forceHorizontalBar", {
186
+ /**
187
+ * Forces the horizontal scroll bar to be displayed
188
+ */
189
+ get: function () {
190
+ return this._forceHorizontalBar;
191
+ },
192
+ set: function (value) {
193
+ this._grid.setRowDefinition(1, value ? this._barSize : 0, true);
194
+ this._horizontalBar.isVisible = value;
195
+ this._forceHorizontalBar = value;
196
+ },
197
+ enumerable: false,
198
+ configurable: true
199
+ });
200
+ Object.defineProperty(ScrollViewer.prototype, "forceVerticalBar", {
201
+ /**
202
+ * Forces the vertical scroll bar to be displayed
203
+ */
204
+ get: function () {
205
+ return this._forceVerticalBar;
206
+ },
207
+ set: function (value) {
208
+ this._grid.setColumnDefinition(1, value ? this._barSize : 0, true);
209
+ this._verticalBar.isVisible = value;
210
+ this._forceVerticalBar = value;
211
+ },
212
+ enumerable: false,
213
+ configurable: true
214
+ });
215
+ /** Reset the scroll viewer window to initial size */
216
+ ScrollViewer.prototype.resetWindow = function () {
217
+ this._window.width = "100%";
218
+ this._window.height = "100%";
219
+ };
220
+ ScrollViewer.prototype._getTypeName = function () {
221
+ return "ScrollViewer";
222
+ };
223
+ ScrollViewer.prototype._buildClientSizes = function () {
224
+ var ratio = this.host.idealRatio;
225
+ this._window.parentClientWidth = this._currentMeasure.width - (this._verticalBar.isVisible || this.forceVerticalBar ? this._barSize * ratio : 0) - 2 * this.thickness;
226
+ this._window.parentClientHeight = this._currentMeasure.height - (this._horizontalBar.isVisible || this.forceHorizontalBar ? this._barSize * ratio : 0) - 2 * this.thickness;
227
+ this._clientWidth = this._window.parentClientWidth;
228
+ this._clientHeight = this._window.parentClientHeight;
229
+ };
230
+ ScrollViewer.prototype._additionalProcessing = function (parentMeasure, context) {
231
+ _super.prototype._additionalProcessing.call(this, parentMeasure, context);
232
+ this._buildClientSizes();
233
+ };
234
+ ScrollViewer.prototype._postMeasure = function () {
235
+ _super.prototype._postMeasure.call(this);
236
+ this._updateScroller();
237
+ this._setWindowPosition(false);
238
+ };
239
+ Object.defineProperty(ScrollViewer.prototype, "wheelPrecision", {
240
+ /**
241
+ * Gets or sets the mouse wheel precision
242
+ * from 0 to 1 with a default value of 0.05
243
+ * */
244
+ get: function () {
245
+ return this._wheelPrecision;
246
+ },
247
+ set: function (value) {
248
+ if (this._wheelPrecision === value) {
249
+ return;
250
+ }
251
+ if (value < 0) {
252
+ value = 0;
253
+ }
254
+ if (value > 1) {
255
+ value = 1;
256
+ }
257
+ this._wheelPrecision = value;
258
+ },
259
+ enumerable: false,
260
+ configurable: true
261
+ });
262
+ Object.defineProperty(ScrollViewer.prototype, "scrollBackground", {
263
+ /** Gets or sets the scroll bar container background color */
264
+ get: function () {
265
+ return this._horizontalBarSpace.background;
266
+ },
267
+ set: function (color) {
268
+ if (this._horizontalBarSpace.background === color) {
269
+ return;
270
+ }
271
+ this._horizontalBarSpace.background = color;
272
+ this._verticalBarSpace.background = color;
273
+ },
274
+ enumerable: false,
275
+ configurable: true
276
+ });
277
+ Object.defineProperty(ScrollViewer.prototype, "barColor", {
278
+ /** Gets or sets the bar color */
279
+ get: function () {
280
+ return this._barColor;
281
+ },
282
+ set: function (color) {
283
+ if (this._barColor === color) {
284
+ return;
285
+ }
286
+ this._barColor = color;
287
+ this._horizontalBar.color = color;
288
+ this._verticalBar.color = color;
289
+ },
290
+ enumerable: false,
291
+ configurable: true
292
+ });
293
+ Object.defineProperty(ScrollViewer.prototype, "thumbImage", {
294
+ /** Gets or sets the bar image */
295
+ get: function () {
296
+ return this._barImage;
297
+ },
298
+ set: function (value) {
299
+ if (this._barImage === value) {
300
+ return;
301
+ }
302
+ this._barImage = value;
303
+ var hb = this._horizontalBar;
304
+ var vb = this._verticalBar;
305
+ hb.thumbImage = value;
306
+ vb.thumbImage = value;
307
+ },
308
+ enumerable: false,
309
+ configurable: true
310
+ });
311
+ Object.defineProperty(ScrollViewer.prototype, "horizontalThumbImage", {
312
+ /** Gets or sets the horizontal bar image */
313
+ get: function () {
314
+ return this._horizontalBarImage;
315
+ },
316
+ set: function (value) {
317
+ if (this._horizontalBarImage === value) {
318
+ return;
319
+ }
320
+ this._horizontalBarImage = value;
321
+ var hb = this._horizontalBar;
322
+ hb.thumbImage = value;
323
+ },
324
+ enumerable: false,
325
+ configurable: true
326
+ });
327
+ Object.defineProperty(ScrollViewer.prototype, "verticalThumbImage", {
328
+ /** Gets or sets the vertical bar image */
329
+ get: function () {
330
+ return this._verticalBarImage;
331
+ },
332
+ set: function (value) {
333
+ if (this._verticalBarImage === value) {
334
+ return;
335
+ }
336
+ this._verticalBarImage = value;
337
+ var vb = this._verticalBar;
338
+ vb.thumbImage = value;
339
+ },
340
+ enumerable: false,
341
+ configurable: true
342
+ });
343
+ Object.defineProperty(ScrollViewer.prototype, "barSize", {
344
+ /** Gets or sets the size of the bar */
345
+ get: function () {
346
+ return this._barSize;
347
+ },
348
+ set: function (value) {
349
+ if (this._barSize === value) {
350
+ return;
351
+ }
352
+ this._barSize = value;
353
+ this._markAsDirty();
354
+ if (this._horizontalBar.isVisible) {
355
+ this._grid.setRowDefinition(1, this._barSize, true);
356
+ }
357
+ if (this._verticalBar.isVisible) {
358
+ this._grid.setColumnDefinition(1, this._barSize, true);
359
+ }
360
+ },
361
+ enumerable: false,
362
+ configurable: true
363
+ });
364
+ Object.defineProperty(ScrollViewer.prototype, "thumbLength", {
365
+ /** Gets or sets the length of the thumb */
366
+ get: function () {
367
+ return this._thumbLength;
368
+ },
369
+ set: function (value) {
370
+ if (this._thumbLength === value) {
371
+ return;
372
+ }
373
+ if (value <= 0) {
374
+ value = 0.1;
375
+ }
376
+ if (value > 1) {
377
+ value = 1;
378
+ }
379
+ this._thumbLength = value;
380
+ var hb = this._horizontalBar;
381
+ var vb = this._verticalBar;
382
+ hb.thumbLength = value;
383
+ vb.thumbLength = value;
384
+ this._markAsDirty();
385
+ },
386
+ enumerable: false,
387
+ configurable: true
388
+ });
389
+ Object.defineProperty(ScrollViewer.prototype, "thumbHeight", {
390
+ /** Gets or sets the height of the thumb */
391
+ get: function () {
392
+ return this._thumbHeight;
393
+ },
394
+ set: function (value) {
395
+ if (this._thumbHeight === value) {
396
+ return;
397
+ }
398
+ if (value <= 0) {
399
+ value = 0.1;
400
+ }
401
+ if (value > 1) {
402
+ value = 1;
403
+ }
404
+ this._thumbHeight = value;
405
+ var hb = this._horizontalBar;
406
+ var vb = this._verticalBar;
407
+ hb.thumbHeight = value;
408
+ vb.thumbHeight = value;
409
+ this._markAsDirty();
410
+ },
411
+ enumerable: false,
412
+ configurable: true
413
+ });
414
+ Object.defineProperty(ScrollViewer.prototype, "barImageHeight", {
415
+ /** Gets or sets the height of the bar image */
416
+ get: function () {
417
+ return this._barImageHeight;
418
+ },
419
+ set: function (value) {
420
+ if (this._barImageHeight === value) {
421
+ return;
422
+ }
423
+ if (value <= 0) {
424
+ value = 0.1;
425
+ }
426
+ if (value > 1) {
427
+ value = 1;
428
+ }
429
+ this._barImageHeight = value;
430
+ var hb = this._horizontalBar;
431
+ var vb = this._verticalBar;
432
+ hb.barImageHeight = value;
433
+ vb.barImageHeight = value;
434
+ this._markAsDirty();
435
+ },
436
+ enumerable: false,
437
+ configurable: true
438
+ });
439
+ Object.defineProperty(ScrollViewer.prototype, "horizontalBarImageHeight", {
440
+ /** Gets or sets the height of the horizontal bar image */
441
+ get: function () {
442
+ return this._horizontalBarImageHeight;
443
+ },
444
+ set: function (value) {
445
+ if (this._horizontalBarImageHeight === value) {
446
+ return;
447
+ }
448
+ if (value <= 0) {
449
+ value = 0.1;
450
+ }
451
+ if (value > 1) {
452
+ value = 1;
453
+ }
454
+ this._horizontalBarImageHeight = value;
455
+ var hb = this._horizontalBar;
456
+ hb.barImageHeight = value;
457
+ this._markAsDirty();
458
+ },
459
+ enumerable: false,
460
+ configurable: true
461
+ });
462
+ Object.defineProperty(ScrollViewer.prototype, "verticalBarImageHeight", {
463
+ /** Gets or sets the height of the vertical bar image */
464
+ get: function () {
465
+ return this._verticalBarImageHeight;
466
+ },
467
+ set: function (value) {
468
+ if (this._verticalBarImageHeight === value) {
469
+ return;
470
+ }
471
+ if (value <= 0) {
472
+ value = 0.1;
473
+ }
474
+ if (value > 1) {
475
+ value = 1;
476
+ }
477
+ this._verticalBarImageHeight = value;
478
+ var vb = this._verticalBar;
479
+ vb.barImageHeight = value;
480
+ this._markAsDirty();
481
+ },
482
+ enumerable: false,
483
+ configurable: true
484
+ });
485
+ Object.defineProperty(ScrollViewer.prototype, "barBackground", {
486
+ /** Gets or sets the bar background */
487
+ get: function () {
488
+ return this._barBackground;
489
+ },
490
+ set: function (color) {
491
+ if (this._barBackground === color) {
492
+ return;
493
+ }
494
+ this._barBackground = color;
495
+ var hb = this._horizontalBar;
496
+ var vb = this._verticalBar;
497
+ hb.background = color;
498
+ vb.background = color;
499
+ this._dragSpace.background = color;
500
+ },
501
+ enumerable: false,
502
+ configurable: true
503
+ });
504
+ Object.defineProperty(ScrollViewer.prototype, "barImage", {
505
+ /** Gets or sets the bar background image */
506
+ get: function () {
507
+ return this._barBackgroundImage;
508
+ },
509
+ set: function (value) {
510
+ this._barBackgroundImage = value;
511
+ var hb = this._horizontalBar;
512
+ var vb = this._verticalBar;
513
+ hb.backgroundImage = value;
514
+ vb.backgroundImage = value;
515
+ },
516
+ enumerable: false,
517
+ configurable: true
518
+ });
519
+ Object.defineProperty(ScrollViewer.prototype, "horizontalBarImage", {
520
+ /** Gets or sets the horizontal bar background image */
521
+ get: function () {
522
+ return this._horizontalBarBackgroundImage;
523
+ },
524
+ set: function (value) {
525
+ this._horizontalBarBackgroundImage = value;
526
+ var hb = this._horizontalBar;
527
+ hb.backgroundImage = value;
528
+ },
529
+ enumerable: false,
530
+ configurable: true
531
+ });
532
+ Object.defineProperty(ScrollViewer.prototype, "verticalBarImage", {
533
+ /** Gets or sets the vertical bar background image */
534
+ get: function () {
535
+ return this._verticalBarBackgroundImage;
536
+ },
537
+ set: function (value) {
538
+ this._verticalBarBackgroundImage = value;
539
+ var vb = this._verticalBar;
540
+ vb.backgroundImage = value;
541
+ },
542
+ enumerable: false,
543
+ configurable: true
544
+ });
545
+ ScrollViewer.prototype._setWindowPosition = function (force) {
546
+ if (force === void 0) { force = true; }
547
+ var ratio = this.host.idealRatio;
548
+ var windowContentsWidth = this._window._currentMeasure.width;
549
+ var windowContentsHeight = this._window._currentMeasure.height;
550
+ if (!force && this._oldWindowContentsWidth === windowContentsWidth && this._oldWindowContentsHeight === windowContentsHeight) {
551
+ return;
552
+ }
553
+ this._oldWindowContentsWidth = windowContentsWidth;
554
+ this._oldWindowContentsHeight = windowContentsHeight;
555
+ var _endLeft = this._clientWidth - windowContentsWidth;
556
+ var _endTop = this._clientHeight - windowContentsHeight;
557
+ var newLeft = (this._horizontalBar.value / ratio) * _endLeft + "px";
558
+ var newTop = (this._verticalBar.value / ratio) * _endTop + "px";
559
+ if (newLeft !== this._window.left) {
560
+ this._window.left = newLeft;
561
+ if (!this.freezeControls) {
562
+ this._rebuildLayout = true;
563
+ }
564
+ }
565
+ if (newTop !== this._window.top) {
566
+ this._window.top = newTop;
567
+ if (!this.freezeControls) {
568
+ this._rebuildLayout = true;
569
+ }
570
+ }
571
+ };
572
+ /** @hidden */
573
+ ScrollViewer.prototype._updateScroller = function () {
574
+ var windowContentsWidth = this._window._currentMeasure.width;
575
+ var windowContentsHeight = this._window._currentMeasure.height;
576
+ if (this._horizontalBar.isVisible && windowContentsWidth <= this._clientWidth && !this.forceHorizontalBar) {
577
+ this._grid.setRowDefinition(1, 0, true);
578
+ this._horizontalBar.isVisible = false;
579
+ this._horizontalBar.value = 0;
580
+ this._rebuildLayout = true;
581
+ }
582
+ else if (!this._horizontalBar.isVisible && (windowContentsWidth > this._clientWidth || this.forceHorizontalBar)) {
583
+ this._grid.setRowDefinition(1, this._barSize, true);
584
+ this._horizontalBar.isVisible = true;
585
+ this._rebuildLayout = true;
586
+ }
587
+ if (this._verticalBar.isVisible && windowContentsHeight <= this._clientHeight && !this.forceVerticalBar) {
588
+ this._grid.setColumnDefinition(1, 0, true);
589
+ this._verticalBar.isVisible = false;
590
+ this._verticalBar.value = 0;
591
+ this._rebuildLayout = true;
592
+ }
593
+ else if (!this._verticalBar.isVisible && (windowContentsHeight > this._clientHeight || this.forceVerticalBar)) {
594
+ this._grid.setColumnDefinition(1, this._barSize, true);
595
+ this._verticalBar.isVisible = true;
596
+ this._rebuildLayout = true;
597
+ }
598
+ this._buildClientSizes();
599
+ var ratio = this.host.idealRatio;
600
+ this._horizontalBar.thumbWidth = this._thumbLength * 0.9 * (this._clientWidth / ratio) + "px";
601
+ this._verticalBar.thumbWidth = this._thumbLength * 0.9 * (this._clientHeight / ratio) + "px";
602
+ };
603
+ ScrollViewer.prototype._link = function (host) {
604
+ _super.prototype._link.call(this, host);
605
+ this._attachWheel();
606
+ };
607
+ /**
608
+ * @param barControl
609
+ * @param barContainer
610
+ * @param isVertical
611
+ * @param rotation
612
+ * @hidden
613
+ */
614
+ ScrollViewer.prototype._addBar = function (barControl, barContainer, isVertical, rotation) {
615
+ var _this = this;
616
+ barControl.paddingLeft = 0;
617
+ barControl.width = "100%";
618
+ barControl.height = "100%";
619
+ barControl.barOffset = 0;
620
+ barControl.value = 0;
621
+ barControl.maximum = 1;
622
+ barControl.horizontalAlignment = Control.HORIZONTAL_ALIGNMENT_CENTER;
623
+ barControl.verticalAlignment = Control.VERTICAL_ALIGNMENT_CENTER;
624
+ barControl.isVertical = isVertical;
625
+ barControl.rotation = rotation;
626
+ barControl.isVisible = false;
627
+ barContainer.addControl(barControl);
628
+ barControl.onValueChangedObservable.add(function () {
629
+ _this._setWindowPosition();
630
+ });
631
+ };
632
+ /** @hidden */
633
+ ScrollViewer.prototype._attachWheel = function () {
634
+ var _this = this;
635
+ if (!this._host || this._onWheelObserver) {
636
+ return;
637
+ }
638
+ this._onWheelObserver = this.onWheelObservable.add(function (pi) {
639
+ if (!_this._pointerIsOver || _this.isReadOnly) {
640
+ return;
641
+ }
642
+ if (_this._verticalBar.isVisible == true) {
643
+ if (pi.y < 0 && _this._verticalBar.value > 0) {
644
+ _this._verticalBar.value -= _this._wheelPrecision;
645
+ }
646
+ else if (pi.y > 0 && _this._verticalBar.value < _this._verticalBar.maximum) {
647
+ _this._verticalBar.value += _this._wheelPrecision;
648
+ }
649
+ }
650
+ if (_this._horizontalBar.isVisible == true) {
651
+ if (pi.x < 0 && _this._horizontalBar.value < _this._horizontalBar.maximum) {
652
+ _this._horizontalBar.value += _this._wheelPrecision;
653
+ }
654
+ else if (pi.x > 0 && _this._horizontalBar.value > 0) {
655
+ _this._horizontalBar.value -= _this._wheelPrecision;
656
+ }
657
+ }
658
+ });
659
+ };
660
+ ScrollViewer.prototype._renderHighlightSpecific = function (context) {
661
+ if (!this.isHighlighted) {
662
+ return;
663
+ }
664
+ _super.prototype._renderHighlightSpecific.call(this, context);
665
+ this._grid._renderHighlightSpecific(context);
666
+ context.restore();
667
+ };
668
+ /** Releases associated resources */
669
+ ScrollViewer.prototype.dispose = function () {
670
+ this.onWheelObservable.remove(this._onWheelObserver);
671
+ this._onWheelObserver = null;
672
+ _super.prototype.dispose.call(this);
673
+ };
674
+ return ScrollViewer;
675
+ }(Rectangle));
676
+ export { ScrollViewer };
677
+ RegisterClass("BABYLON.GUI.ScrollViewer", ScrollViewer);
677
678
  //# sourceMappingURL=scrollViewer.js.map