@babylonjs/gui 5.0.0-rc.5 → 5.0.0-rc.9

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 (203) hide show
  1. package/2D/adtInstrumentation.d.ts +52 -52
  2. package/2D/adtInstrumentation.js +126 -126
  3. package/2D/advancedDynamicTexture.d.ts +448 -448
  4. package/2D/advancedDynamicTexture.js +1318 -1318
  5. package/2D/controls/button.d.ts +135 -135
  6. package/2D/controls/button.js +276 -276
  7. package/2D/controls/checkbox.d.ts +59 -59
  8. package/2D/controls/checkbox.js +188 -188
  9. package/2D/controls/colorpicker.d.ts +103 -103
  10. package/2D/controls/colorpicker.js +1417 -1417
  11. package/2D/controls/container.d.ts +175 -175
  12. package/2D/controls/container.js +570 -570
  13. package/2D/controls/control.d.ts +866 -866
  14. package/2D/controls/control.js +2433 -2433
  15. package/2D/controls/displayGrid.d.ts +53 -53
  16. package/2D/controls/displayGrid.js +245 -245
  17. package/2D/controls/ellipse.d.ts +21 -21
  18. package/2D/controls/ellipse.js +85 -85
  19. package/2D/controls/focusableButton.d.ts +59 -59
  20. package/2D/controls/focusableButton.js +99 -99
  21. package/2D/controls/focusableControl.d.ts +34 -34
  22. package/2D/controls/focusableControl.js +1 -1
  23. package/2D/controls/grid.d.ts +139 -139
  24. package/2D/controls/grid.js +529 -529
  25. package/2D/controls/image.d.ts +204 -204
  26. package/2D/controls/image.js +887 -887
  27. package/2D/controls/index.d.ts +29 -29
  28. package/2D/controls/index.js +29 -29
  29. package/2D/controls/inputPassword.d.ts +8 -8
  30. package/2D/controls/inputPassword.js +25 -25
  31. package/2D/controls/inputText.d.ts +201 -201
  32. package/2D/controls/inputText.js +1119 -1119
  33. package/2D/controls/line.d.ts +66 -66
  34. package/2D/controls/line.js +271 -271
  35. package/2D/controls/multiLine.d.ts +75 -75
  36. package/2D/controls/multiLine.js +262 -262
  37. package/2D/controls/radioButton.d.ts +49 -49
  38. package/2D/controls/radioButton.js +205 -205
  39. package/2D/controls/rectangle.d.ts +29 -29
  40. package/2D/controls/rectangle.js +150 -150
  41. package/2D/controls/scrollViewers/scrollViewer.d.ts +182 -182
  42. package/2D/controls/scrollViewers/scrollViewer.js +677 -677
  43. package/2D/controls/scrollViewers/scrollViewerWindow.d.ts +57 -57
  44. package/2D/controls/scrollViewers/scrollViewerWindow.js +278 -278
  45. package/2D/controls/selector.d.ts +263 -263
  46. package/2D/controls/selector.js +692 -692
  47. package/2D/controls/sliders/baseSlider.d.ts +82 -82
  48. package/2D/controls/sliders/baseSlider.js +347 -347
  49. package/2D/controls/sliders/imageBasedSlider.d.ts +49 -49
  50. package/2D/controls/sliders/imageBasedSlider.js +192 -192
  51. package/2D/controls/sliders/imageScrollBar.d.ts +65 -65
  52. package/2D/controls/sliders/imageScrollBar.js +263 -263
  53. package/2D/controls/sliders/scrollBar.d.ts +38 -38
  54. package/2D/controls/sliders/scrollBar.js +143 -143
  55. package/2D/controls/sliders/slider.d.ts +35 -35
  56. package/2D/controls/sliders/slider.js +271 -271
  57. package/2D/controls/stackPanel.d.ts +64 -64
  58. package/2D/controls/stackPanel.js +246 -246
  59. package/2D/controls/statics.d.ts +6 -6
  60. package/2D/controls/statics.js +49 -49
  61. package/2D/controls/textBlock.d.ts +175 -175
  62. package/2D/controls/textBlock.js +603 -603
  63. package/2D/controls/textWrapper.d.ts +13 -13
  64. package/2D/controls/textWrapper.js +101 -101
  65. package/2D/controls/toggleButton.d.ts +117 -117
  66. package/2D/controls/toggleButton.js +268 -268
  67. package/2D/controls/virtualKeyboard.d.ts +96 -96
  68. package/2D/controls/virtualKeyboard.js +256 -256
  69. package/2D/index.d.ts +9 -9
  70. package/2D/index.js +9 -9
  71. package/2D/math2D.d.ts +117 -117
  72. package/2D/math2D.js +221 -221
  73. package/2D/measure.d.ts +77 -77
  74. package/2D/measure.js +139 -139
  75. package/2D/multiLinePoint.d.ts +47 -47
  76. package/2D/multiLinePoint.js +127 -127
  77. package/2D/style.d.ts +46 -46
  78. package/2D/style.js +97 -97
  79. package/2D/valueAndUnit.d.ts +89 -89
  80. package/2D/valueAndUnit.js +226 -226
  81. package/2D/xmlLoader.d.ts +60 -60
  82. package/2D/xmlLoader.js +348 -348
  83. package/3D/behaviors/defaultBehavior.d.ts +73 -73
  84. package/3D/behaviors/defaultBehavior.js +121 -121
  85. package/3D/controls/abstractButton3D.d.ts +15 -15
  86. package/3D/controls/abstractButton3D.js +25 -25
  87. package/3D/controls/button3D.d.ts +30 -30
  88. package/3D/controls/button3D.js +93 -93
  89. package/3D/controls/container3D.d.ts +72 -72
  90. package/3D/controls/container3D.js +139 -139
  91. package/3D/controls/contentDisplay3D.d.ts +30 -30
  92. package/3D/controls/contentDisplay3D.js +79 -79
  93. package/3D/controls/control3D.d.ts +201 -201
  94. package/3D/controls/control3D.js +445 -445
  95. package/3D/controls/cylinderPanel.d.ts +17 -17
  96. package/3D/controls/cylinderPanel.js +66 -66
  97. package/3D/controls/handMenu.d.ts +28 -28
  98. package/3D/controls/handMenu.js +47 -47
  99. package/3D/controls/holographicBackplate.d.ts +49 -49
  100. package/3D/controls/holographicBackplate.js +120 -120
  101. package/3D/controls/holographicButton.d.ts +84 -84
  102. package/3D/controls/holographicButton.js +339 -339
  103. package/3D/controls/holographicSlate.d.ts +131 -131
  104. package/3D/controls/holographicSlate.js +431 -431
  105. package/3D/controls/index.d.ts +21 -21
  106. package/3D/controls/index.js +21 -21
  107. package/3D/controls/meshButton3D.d.ts +21 -21
  108. package/3D/controls/meshButton3D.js +62 -62
  109. package/3D/controls/nearMenu.d.ts +44 -44
  110. package/3D/controls/nearMenu.js +114 -114
  111. package/3D/controls/planePanel.d.ts +9 -9
  112. package/3D/controls/planePanel.js +36 -36
  113. package/3D/controls/scatterPanel.d.ts +18 -18
  114. package/3D/controls/scatterPanel.js +108 -108
  115. package/3D/controls/slider3D.d.ts +81 -81
  116. package/3D/controls/slider3D.js +268 -268
  117. package/3D/controls/spherePanel.d.ts +17 -17
  118. package/3D/controls/spherePanel.js +67 -67
  119. package/3D/controls/stackPanel3D.d.ts +22 -22
  120. package/3D/controls/stackPanel3D.js +107 -107
  121. package/3D/controls/touchButton3D.d.ts +80 -80
  122. package/3D/controls/touchButton3D.js +233 -233
  123. package/3D/controls/touchHolographicButton.d.ts +110 -110
  124. package/3D/controls/touchHolographicButton.js +445 -445
  125. package/3D/controls/touchHolographicMenu.d.ts +61 -61
  126. package/3D/controls/touchHolographicMenu.js +149 -149
  127. package/3D/controls/touchMeshButton3D.d.ts +21 -21
  128. package/3D/controls/touchMeshButton3D.js +62 -62
  129. package/3D/controls/volumeBasedPanel.d.ts +53 -53
  130. package/3D/controls/volumeBasedPanel.js +174 -174
  131. package/3D/gizmos/gizmoHandle.d.ts +108 -108
  132. package/3D/gizmos/gizmoHandle.js +209 -209
  133. package/3D/gizmos/index.d.ts +2 -2
  134. package/3D/gizmos/index.js +2 -2
  135. package/3D/gizmos/slateGizmo.d.ts +57 -57
  136. package/3D/gizmos/slateGizmo.js +369 -369
  137. package/3D/gui3DManager.d.ts +94 -94
  138. package/3D/gui3DManager.js +257 -257
  139. package/3D/index.d.ts +5 -5
  140. package/3D/index.js +5 -5
  141. package/3D/materials/fluent/fluentMaterial.d.ts +90 -90
  142. package/3D/materials/fluent/fluentMaterial.js +292 -292
  143. package/3D/materials/fluent/index.d.ts +1 -1
  144. package/3D/materials/fluent/index.js +1 -1
  145. package/3D/materials/fluent/shaders/fluent.fragment.d.ts +5 -5
  146. package/3D/materials/fluent/shaders/fluent.fragment.js +8 -8
  147. package/3D/materials/fluent/shaders/fluent.vertex.d.ts +5 -5
  148. package/3D/materials/fluent/shaders/fluent.vertex.js +8 -8
  149. package/3D/materials/fluentBackplate/fluentBackplateMaterial.d.ts +154 -154
  150. package/3D/materials/fluentBackplate/fluentBackplateMaterial.js +469 -469
  151. package/3D/materials/fluentBackplate/index.d.ts +1 -1
  152. package/3D/materials/fluentBackplate/index.js +1 -1
  153. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.d.ts +5 -5
  154. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js +8 -8
  155. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.d.ts +5 -5
  156. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js +8 -8
  157. package/3D/materials/fluentButton/fluentButtonMaterial.d.ts +189 -189
  158. package/3D/materials/fluentButton/fluentButtonMaterial.js +539 -539
  159. package/3D/materials/fluentButton/index.d.ts +1 -1
  160. package/3D/materials/fluentButton/index.js +1 -1
  161. package/3D/materials/fluentButton/shaders/fluentButton.fragment.d.ts +5 -5
  162. package/3D/materials/fluentButton/shaders/fluentButton.fragment.js +8 -8
  163. package/3D/materials/fluentButton/shaders/fluentButton.vertex.d.ts +5 -5
  164. package/3D/materials/fluentButton/shaders/fluentButton.vertex.js +8 -8
  165. package/3D/materials/fluentMaterial.d.ts +4 -4
  166. package/3D/materials/fluentMaterial.js +4 -4
  167. package/3D/materials/handle/handleMaterial.d.ts +68 -68
  168. package/3D/materials/handle/handleMaterial.js +126 -126
  169. package/3D/materials/handle/index.d.ts +1 -1
  170. package/3D/materials/handle/index.js +1 -1
  171. package/3D/materials/handle/shaders/handle.fragment.d.ts +5 -5
  172. package/3D/materials/handle/shaders/handle.fragment.js +8 -8
  173. package/3D/materials/handle/shaders/handle.vertex.d.ts +5 -5
  174. package/3D/materials/handle/shaders/handle.vertex.js +8 -8
  175. package/3D/materials/index.d.ts +5 -5
  176. package/3D/materials/index.js +5 -5
  177. package/3D/materials/mrdl/index.d.ts +3 -3
  178. package/3D/materials/mrdl/index.js +3 -3
  179. package/3D/materials/mrdl/mrdlBackplateMaterial.d.ts +147 -147
  180. package/3D/materials/mrdl/mrdlBackplateMaterial.js +436 -436
  181. package/3D/materials/mrdl/mrdlSliderBarMaterial.d.ts +333 -333
  182. package/3D/materials/mrdl/mrdlSliderBarMaterial.js +851 -851
  183. package/3D/materials/mrdl/mrdlSliderThumbMaterial.d.ts +333 -333
  184. package/3D/materials/mrdl/mrdlSliderThumbMaterial.js +851 -851
  185. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.d.ts +5 -5
  186. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js +8 -8
  187. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.d.ts +5 -5
  188. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js +8 -8
  189. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.d.ts +5 -5
  190. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js +8 -8
  191. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.d.ts +5 -5
  192. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js +8 -8
  193. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.d.ts +5 -5
  194. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js +8 -8
  195. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.d.ts +5 -5
  196. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js +8 -8
  197. package/3D/vector3WithInfo.d.ts +16 -16
  198. package/3D/vector3WithInfo.js +23 -23
  199. package/index.d.ts +2 -2
  200. package/index.js +2 -2
  201. package/legacy/legacy.d.ts +1 -1
  202. package/legacy/legacy.js +13 -13
  203. package/package.json +2 -2
@@ -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";
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);
678
678
  //# sourceMappingURL=scrollViewer.js.map