@babylonjs/gui 5.0.0-rc.7 → 5.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (277) 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 -448
  5. package/2D/advancedDynamicTexture.js +1318 -1318
  6. package/2D/advancedDynamicTexture.js.map +1 -1
  7. package/2D/controls/button.d.ts +135 -135
  8. package/2D/controls/button.js +276 -276
  9. package/2D/controls/button.js.map +1 -1
  10. package/2D/controls/checkbox.d.ts +59 -59
  11. package/2D/controls/checkbox.js +188 -188
  12. package/2D/controls/checkbox.js.map +1 -1
  13. package/2D/controls/colorpicker.d.ts +103 -103
  14. package/2D/controls/colorpicker.js +1417 -1417
  15. package/2D/controls/colorpicker.js.map +1 -1
  16. package/2D/controls/container.d.ts +175 -175
  17. package/2D/controls/container.js +570 -570
  18. package/2D/controls/container.js.map +1 -1
  19. package/2D/controls/control.d.ts +866 -866
  20. package/2D/controls/control.js +2433 -2433
  21. package/2D/controls/control.js.map +1 -1
  22. package/2D/controls/displayGrid.d.ts +53 -53
  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 -59
  29. package/2D/controls/focusableButton.js +99 -99
  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 -139
  35. package/2D/controls/grid.js +529 -529
  36. package/2D/controls/grid.js.map +1 -1
  37. package/2D/controls/image.d.ts +204 -204
  38. package/2D/controls/image.js +887 -887
  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/inputPassword.d.ts +9 -8
  43. package/2D/controls/inputPassword.js +28 -25
  44. package/2D/controls/inputPassword.js.map +1 -1
  45. package/2D/controls/inputText.d.ts +201 -201
  46. package/2D/controls/inputText.js +1119 -1119
  47. package/2D/controls/inputText.js.map +1 -1
  48. package/2D/controls/line.d.ts +66 -66
  49. package/2D/controls/line.js +271 -271
  50. package/2D/controls/line.js.map +1 -1
  51. package/2D/controls/multiLine.d.ts +75 -75
  52. package/2D/controls/multiLine.js +262 -262
  53. package/2D/controls/multiLine.js.map +1 -1
  54. package/2D/controls/radioButton.d.ts +49 -49
  55. package/2D/controls/radioButton.js +205 -205
  56. package/2D/controls/radioButton.js.map +1 -1
  57. package/2D/controls/rectangle.d.ts +29 -29
  58. package/2D/controls/rectangle.js +150 -150
  59. package/2D/controls/rectangle.js.map +1 -1
  60. package/2D/controls/scrollViewers/scrollViewer.d.ts +182 -182
  61. package/2D/controls/scrollViewers/scrollViewer.js +677 -677
  62. package/2D/controls/scrollViewers/scrollViewer.js.map +1 -1
  63. package/2D/controls/scrollViewers/scrollViewerWindow.d.ts +57 -57
  64. package/2D/controls/scrollViewers/scrollViewerWindow.js +278 -278
  65. package/2D/controls/scrollViewers/scrollViewerWindow.js.map +1 -1
  66. package/2D/controls/selector.d.ts +263 -263
  67. package/2D/controls/selector.js +692 -692
  68. package/2D/controls/sliders/baseSlider.d.ts +82 -82
  69. package/2D/controls/sliders/baseSlider.js +347 -347
  70. package/2D/controls/sliders/baseSlider.js.map +1 -1
  71. package/2D/controls/sliders/imageBasedSlider.d.ts +49 -49
  72. package/2D/controls/sliders/imageBasedSlider.js +192 -192
  73. package/2D/controls/sliders/imageBasedSlider.js.map +1 -1
  74. package/2D/controls/sliders/imageScrollBar.d.ts +65 -65
  75. package/2D/controls/sliders/imageScrollBar.js +263 -263
  76. package/2D/controls/sliders/imageScrollBar.js.map +1 -1
  77. package/2D/controls/sliders/scrollBar.d.ts +38 -38
  78. package/2D/controls/sliders/scrollBar.js +143 -143
  79. package/2D/controls/sliders/scrollBar.js.map +1 -1
  80. package/2D/controls/sliders/slider.d.ts +35 -35
  81. package/2D/controls/sliders/slider.js +271 -271
  82. package/2D/controls/sliders/slider.js.map +1 -1
  83. package/2D/controls/stackPanel.d.ts +64 -64
  84. package/2D/controls/stackPanel.js +246 -246
  85. package/2D/controls/stackPanel.js.map +1 -1
  86. package/2D/controls/statics.d.ts +6 -6
  87. package/2D/controls/statics.js +49 -49
  88. package/2D/controls/textBlock.d.ts +175 -175
  89. package/2D/controls/textBlock.js +603 -603
  90. package/2D/controls/textBlock.js.map +1 -1
  91. package/2D/controls/textWrapper.d.ts +13 -13
  92. package/2D/controls/textWrapper.js +101 -101
  93. package/2D/controls/toggleButton.d.ts +117 -117
  94. package/2D/controls/toggleButton.js +268 -268
  95. package/2D/controls/toggleButton.js.map +1 -1
  96. package/2D/controls/virtualKeyboard.d.ts +96 -96
  97. package/2D/controls/virtualKeyboard.js +256 -256
  98. package/2D/controls/virtualKeyboard.js.map +1 -1
  99. package/2D/index.d.ts +9 -9
  100. package/2D/index.js +10 -9
  101. package/2D/index.js.map +1 -1
  102. package/2D/math2D.d.ts +117 -117
  103. package/2D/math2D.js +221 -221
  104. package/2D/math2D.js.map +1 -1
  105. package/2D/measure.d.ts +77 -77
  106. package/2D/measure.js +139 -139
  107. package/2D/measure.js.map +1 -1
  108. package/2D/multiLinePoint.d.ts +47 -47
  109. package/2D/multiLinePoint.js +127 -127
  110. package/2D/multiLinePoint.js.map +1 -1
  111. package/2D/style.d.ts +46 -46
  112. package/2D/style.js +97 -97
  113. package/2D/style.js.map +1 -1
  114. package/2D/valueAndUnit.d.ts +89 -89
  115. package/2D/valueAndUnit.js +226 -226
  116. package/2D/valueAndUnit.js.map +1 -1
  117. package/2D/xmlLoader.d.ts +60 -60
  118. package/2D/xmlLoader.js +348 -348
  119. package/2D/xmlLoader.js.map +1 -1
  120. package/3D/behaviors/defaultBehavior.d.ts +73 -73
  121. package/3D/behaviors/defaultBehavior.js +121 -121
  122. package/3D/behaviors/defaultBehavior.js.map +1 -1
  123. package/3D/controls/abstractButton3D.d.ts +15 -15
  124. package/3D/controls/abstractButton3D.js +25 -25
  125. package/3D/controls/abstractButton3D.js.map +1 -1
  126. package/3D/controls/button3D.d.ts +30 -30
  127. package/3D/controls/button3D.js +93 -93
  128. package/3D/controls/button3D.js.map +1 -1
  129. package/3D/controls/container3D.d.ts +72 -72
  130. package/3D/controls/container3D.js +139 -139
  131. package/3D/controls/container3D.js.map +1 -1
  132. package/3D/controls/contentDisplay3D.d.ts +30 -30
  133. package/3D/controls/contentDisplay3D.js +79 -79
  134. package/3D/controls/contentDisplay3D.js.map +1 -1
  135. package/3D/controls/control3D.d.ts +201 -201
  136. package/3D/controls/control3D.js +445 -445
  137. package/3D/controls/control3D.js.map +1 -1
  138. package/3D/controls/cylinderPanel.d.ts +17 -17
  139. package/3D/controls/cylinderPanel.js +66 -66
  140. package/3D/controls/cylinderPanel.js.map +1 -1
  141. package/3D/controls/handMenu.d.ts +28 -28
  142. package/3D/controls/handMenu.js +47 -47
  143. package/3D/controls/handMenu.js.map +1 -1
  144. package/3D/controls/holographicBackplate.d.ts +49 -49
  145. package/3D/controls/holographicBackplate.js +120 -120
  146. package/3D/controls/holographicBackplate.js.map +1 -1
  147. package/3D/controls/holographicButton.d.ts +84 -84
  148. package/3D/controls/holographicButton.js +339 -339
  149. package/3D/controls/holographicButton.js.map +1 -1
  150. package/3D/controls/holographicSlate.d.ts +131 -131
  151. package/3D/controls/holographicSlate.js +431 -431
  152. package/3D/controls/holographicSlate.js.map +1 -1
  153. package/3D/controls/index.d.ts +21 -21
  154. package/3D/controls/index.js +21 -21
  155. package/3D/controls/meshButton3D.d.ts +21 -21
  156. package/3D/controls/meshButton3D.js +62 -62
  157. package/3D/controls/meshButton3D.js.map +1 -1
  158. package/3D/controls/nearMenu.d.ts +44 -44
  159. package/3D/controls/nearMenu.js +114 -114
  160. package/3D/controls/nearMenu.js.map +1 -1
  161. package/3D/controls/planePanel.d.ts +9 -9
  162. package/3D/controls/planePanel.js +36 -36
  163. package/3D/controls/planePanel.js.map +1 -1
  164. package/3D/controls/scatterPanel.d.ts +18 -18
  165. package/3D/controls/scatterPanel.js +108 -108
  166. package/3D/controls/scatterPanel.js.map +1 -1
  167. package/3D/controls/slider3D.d.ts +81 -81
  168. package/3D/controls/slider3D.js +268 -268
  169. package/3D/controls/slider3D.js.map +1 -1
  170. package/3D/controls/spherePanel.d.ts +17 -17
  171. package/3D/controls/spherePanel.js +67 -67
  172. package/3D/controls/spherePanel.js.map +1 -1
  173. package/3D/controls/stackPanel3D.d.ts +22 -22
  174. package/3D/controls/stackPanel3D.js +107 -107
  175. package/3D/controls/touchButton3D.d.ts +80 -80
  176. package/3D/controls/touchButton3D.js +233 -233
  177. package/3D/controls/touchButton3D.js.map +1 -1
  178. package/3D/controls/touchHolographicButton.d.ts +110 -110
  179. package/3D/controls/touchHolographicButton.js +445 -445
  180. package/3D/controls/touchHolographicButton.js.map +1 -1
  181. package/3D/controls/touchHolographicMenu.d.ts +61 -61
  182. package/3D/controls/touchHolographicMenu.js +149 -149
  183. package/3D/controls/touchHolographicMenu.js.map +1 -1
  184. package/3D/controls/touchMeshButton3D.d.ts +21 -21
  185. package/3D/controls/touchMeshButton3D.js +62 -62
  186. package/3D/controls/touchMeshButton3D.js.map +1 -1
  187. package/3D/controls/volumeBasedPanel.d.ts +53 -53
  188. package/3D/controls/volumeBasedPanel.js +174 -174
  189. package/3D/controls/volumeBasedPanel.js.map +1 -1
  190. package/3D/gizmos/gizmoHandle.d.ts +108 -108
  191. package/3D/gizmos/gizmoHandle.js +209 -209
  192. package/3D/gizmos/gizmoHandle.js.map +1 -1
  193. package/3D/gizmos/index.d.ts +2 -2
  194. package/3D/gizmos/index.js +2 -2
  195. package/3D/gizmos/slateGizmo.d.ts +57 -57
  196. package/3D/gizmos/slateGizmo.js +369 -369
  197. package/3D/gizmos/slateGizmo.js.map +1 -1
  198. package/3D/gui3DManager.d.ts +94 -94
  199. package/3D/gui3DManager.js +257 -257
  200. package/3D/gui3DManager.js.map +1 -1
  201. package/3D/index.d.ts +5 -5
  202. package/3D/index.js +6 -5
  203. package/3D/index.js.map +1 -1
  204. package/3D/materials/fluent/fluentMaterial.d.ts +91 -90
  205. package/3D/materials/fluent/fluentMaterial.js +292 -292
  206. package/3D/materials/fluent/fluentMaterial.js.map +1 -1
  207. package/3D/materials/fluent/index.d.ts +1 -1
  208. package/3D/materials/fluent/index.js +1 -1
  209. package/3D/materials/fluent/shaders/fluent.fragment.d.ts +5 -5
  210. package/3D/materials/fluent/shaders/fluent.fragment.js +8 -8
  211. package/3D/materials/fluent/shaders/fluent.vertex.d.ts +5 -5
  212. package/3D/materials/fluent/shaders/fluent.vertex.js +8 -8
  213. package/3D/materials/fluentBackplate/fluentBackplateMaterial.d.ts +155 -154
  214. package/3D/materials/fluentBackplate/fluentBackplateMaterial.js +469 -469
  215. package/3D/materials/fluentBackplate/fluentBackplateMaterial.js.map +1 -1
  216. package/3D/materials/fluentBackplate/index.d.ts +1 -1
  217. package/3D/materials/fluentBackplate/index.js +1 -1
  218. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.d.ts +5 -5
  219. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js +8 -8
  220. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.d.ts +5 -5
  221. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js +8 -8
  222. package/3D/materials/fluentButton/fluentButtonMaterial.d.ts +190 -189
  223. package/3D/materials/fluentButton/fluentButtonMaterial.js +539 -539
  224. package/3D/materials/fluentButton/fluentButtonMaterial.js.map +1 -1
  225. package/3D/materials/fluentButton/index.d.ts +1 -1
  226. package/3D/materials/fluentButton/index.js +1 -1
  227. package/3D/materials/fluentButton/shaders/fluentButton.fragment.d.ts +5 -5
  228. package/3D/materials/fluentButton/shaders/fluentButton.fragment.js +8 -8
  229. package/3D/materials/fluentButton/shaders/fluentButton.vertex.d.ts +5 -5
  230. package/3D/materials/fluentButton/shaders/fluentButton.vertex.js +8 -8
  231. package/3D/materials/fluentMaterial.d.ts +4 -4
  232. package/3D/materials/fluentMaterial.js +4 -4
  233. package/3D/materials/handle/handleMaterial.d.ts +68 -68
  234. package/3D/materials/handle/handleMaterial.js +126 -126
  235. package/3D/materials/handle/handleMaterial.js.map +1 -1
  236. package/3D/materials/handle/index.d.ts +1 -1
  237. package/3D/materials/handle/index.js +1 -1
  238. package/3D/materials/handle/shaders/handle.fragment.d.ts +5 -5
  239. package/3D/materials/handle/shaders/handle.fragment.js +8 -8
  240. package/3D/materials/handle/shaders/handle.vertex.d.ts +5 -5
  241. package/3D/materials/handle/shaders/handle.vertex.js +8 -8
  242. package/3D/materials/index.d.ts +5 -5
  243. package/3D/materials/index.js +6 -5
  244. package/3D/materials/index.js.map +1 -1
  245. package/3D/materials/mrdl/index.d.ts +3 -3
  246. package/3D/materials/mrdl/index.js +3 -3
  247. package/3D/materials/mrdl/mrdlBackplateMaterial.d.ts +148 -147
  248. package/3D/materials/mrdl/mrdlBackplateMaterial.js +436 -436
  249. package/3D/materials/mrdl/mrdlBackplateMaterial.js.map +1 -1
  250. package/3D/materials/mrdl/mrdlSliderBarMaterial.d.ts +334 -333
  251. package/3D/materials/mrdl/mrdlSliderBarMaterial.js +851 -851
  252. package/3D/materials/mrdl/mrdlSliderBarMaterial.js.map +1 -1
  253. package/3D/materials/mrdl/mrdlSliderThumbMaterial.d.ts +334 -333
  254. package/3D/materials/mrdl/mrdlSliderThumbMaterial.js +851 -851
  255. package/3D/materials/mrdl/mrdlSliderThumbMaterial.js.map +1 -1
  256. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.d.ts +5 -5
  257. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js +8 -8
  258. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.d.ts +5 -5
  259. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js +8 -8
  260. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.d.ts +5 -5
  261. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js +8 -8
  262. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.d.ts +5 -5
  263. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js +8 -8
  264. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.d.ts +5 -5
  265. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js +8 -8
  266. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.d.ts +5 -5
  267. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js +8 -8
  268. package/3D/vector3WithInfo.d.ts +16 -16
  269. package/3D/vector3WithInfo.js +23 -23
  270. package/index.d.ts +2 -2
  271. package/index.js +3 -2
  272. package/index.js.map +1 -1
  273. package/legacy/legacy.d.ts +1 -1
  274. package/legacy/legacy.js +14 -13
  275. package/legacy/legacy.js.map +1 -1
  276. package/license.md +71 -0
  277. package/package.json +24 -5
@@ -1,678 +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
- * @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);
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
+ * @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);
678
678
  //# sourceMappingURL=scrollViewer.js.map