@babylonjs/gui 5.0.0-rc.7 → 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,227 +1,227 @@
1
- import { Observable } from "@babylonjs/core/Misc/observable.js";
2
- /**
3
- * Class used to specific a value and its associated unit
4
- */
5
- var ValueAndUnit = /** @class */ (function () {
6
- /**
7
- * Creates a new ValueAndUnit
8
- * @param value defines the value to store
9
- * @param unit defines the unit to store - defaults to ValueAndUnit.UNITMODE_PIXEL
10
- * @param negativeValueAllowed defines a boolean indicating if the value can be negative
11
- */
12
- function ValueAndUnit(value,
13
- /** defines the unit to store */
14
- unit,
15
- /** defines a boolean indicating if the value can be negative */
16
- negativeValueAllowed) {
17
- if (unit === void 0) { unit = ValueAndUnit.UNITMODE_PIXEL; }
18
- if (negativeValueAllowed === void 0) { negativeValueAllowed = true; }
19
- this.negativeValueAllowed = negativeValueAllowed;
20
- this._value = 1;
21
- this._unit = ValueAndUnit.UNITMODE_PIXEL;
22
- /**
23
- * Gets or sets a value indicating that this value will not scale accordingly with adaptive scaling property
24
- * @see https://doc.babylonjs.com/how_to/gui#adaptive-scaling
25
- */
26
- this.ignoreAdaptiveScaling = false;
27
- /**
28
- * Observable event triggered each time the value or unit changes
29
- */
30
- this.onChangedObservable = new Observable();
31
- this._value = value;
32
- this._unit = unit;
33
- this._originalUnit = unit;
34
- }
35
- Object.defineProperty(ValueAndUnit.prototype, "isPercentage", {
36
- /** Gets a boolean indicating if the value is a percentage */
37
- get: function () {
38
- return this._unit === ValueAndUnit.UNITMODE_PERCENTAGE;
39
- },
40
- enumerable: false,
41
- configurable: true
42
- });
43
- Object.defineProperty(ValueAndUnit.prototype, "isPixel", {
44
- /** Gets a boolean indicating if the value is store as pixel */
45
- get: function () {
46
- return this._unit === ValueAndUnit.UNITMODE_PIXEL;
47
- },
48
- enumerable: false,
49
- configurable: true
50
- });
51
- Object.defineProperty(ValueAndUnit.prototype, "internalValue", {
52
- /**
53
- * Gets value (without units)
54
- * @deprecated use value property instead
55
- */
56
- get: function () {
57
- return this._value;
58
- },
59
- enumerable: false,
60
- configurable: true
61
- });
62
- Object.defineProperty(ValueAndUnit.prototype, "value", {
63
- /** Gets value (without units) */
64
- get: function () {
65
- return this._value;
66
- },
67
- /** Sets value (without units) */
68
- set: function (value) {
69
- if (value !== this._value) {
70
- this._value = value;
71
- this.onChangedObservable.notifyObservers();
72
- }
73
- },
74
- enumerable: false,
75
- configurable: true
76
- });
77
- Object.defineProperty(ValueAndUnit.prototype, "unit", {
78
- /** Gets units (without value) */
79
- get: function () {
80
- return this._unit;
81
- },
82
- /** Sets units (without value) */
83
- set: function (value) {
84
- if (value !== this._unit) {
85
- this._unit = value;
86
- this.onChangedObservable.notifyObservers();
87
- }
88
- },
89
- enumerable: false,
90
- configurable: true
91
- });
92
- /**
93
- * Gets value as pixel
94
- * @param host defines the root host
95
- * @param refValue defines the reference value for percentages
96
- * @returns the value as pixel
97
- */
98
- ValueAndUnit.prototype.getValueInPixel = function (host, refValue) {
99
- if (this.isPixel) {
100
- return this.getValue(host);
101
- }
102
- return this.getValue(host) * refValue;
103
- };
104
- /**
105
- * Update the current value and unit.
106
- * @param value defines the value to store
107
- * @param unit defines the unit to store
108
- * @returns the current ValueAndUnit
109
- */
110
- ValueAndUnit.prototype.updateInPlace = function (value, unit) {
111
- if (unit === void 0) { unit = ValueAndUnit.UNITMODE_PIXEL; }
112
- if (this.value !== value || this.unit !== unit) {
113
- // set member variables to notify only once
114
- this._value = value;
115
- this._unit = unit;
116
- this.onChangedObservable.notifyObservers();
117
- }
118
- return this;
119
- };
120
- /**
121
- * Gets the value accordingly to its unit
122
- * @param host defines the root host
123
- * @returns the value
124
- */
125
- ValueAndUnit.prototype.getValue = function (host) {
126
- if (host && !this.ignoreAdaptiveScaling && this.unit !== ValueAndUnit.UNITMODE_PERCENTAGE) {
127
- var width = 0;
128
- var height = 0;
129
- if (host.idealWidth) {
130
- width = (this._value * host.getSize().width) / host.idealWidth;
131
- }
132
- if (host.idealHeight) {
133
- height = (this._value * host.getSize().height) / host.idealHeight;
134
- }
135
- if (host.useSmallestIdeal && host.idealWidth && host.idealHeight) {
136
- return window.innerWidth < window.innerHeight ? width : height;
137
- }
138
- if (host.idealWidth) {
139
- // horizontal
140
- return width;
141
- }
142
- if (host.idealHeight) {
143
- // vertical
144
- return height;
145
- }
146
- }
147
- return this._value;
148
- };
149
- /**
150
- * Gets a string representation of the value
151
- * @param host defines the root host
152
- * @param decimals defines an optional number of decimals to display
153
- * @returns a string
154
- */
155
- ValueAndUnit.prototype.toString = function (host, decimals) {
156
- switch (this._unit) {
157
- case ValueAndUnit.UNITMODE_PERCENTAGE: {
158
- var percentage = this.getValue(host) * 100;
159
- return (decimals ? percentage.toFixed(decimals) : percentage) + "%";
160
- }
161
- case ValueAndUnit.UNITMODE_PIXEL: {
162
- var pixels = this.getValue(host);
163
- return (decimals ? pixels.toFixed(decimals) : pixels) + "px";
164
- }
165
- }
166
- return this._unit.toString();
167
- };
168
- /**
169
- * Store a value parsed from a string
170
- * @param source defines the source string
171
- * @returns true if the value was successfully parsed and updated
172
- */
173
- ValueAndUnit.prototype.fromString = function (source) {
174
- var match = ValueAndUnit._Regex.exec(source.toString());
175
- if (!match || match.length === 0) {
176
- return false;
177
- }
178
- var sourceValue = parseFloat(match[1]);
179
- var sourceUnit = this._originalUnit;
180
- if (!this.negativeValueAllowed) {
181
- if (sourceValue < 0) {
182
- sourceValue = 0;
183
- }
184
- }
185
- if (match.length === 4) {
186
- switch (match[3]) {
187
- case "px":
188
- sourceUnit = ValueAndUnit.UNITMODE_PIXEL;
189
- break;
190
- case "%":
191
- sourceUnit = ValueAndUnit.UNITMODE_PERCENTAGE;
192
- sourceValue /= 100.0;
193
- break;
194
- }
195
- }
196
- if (sourceValue === this._value && sourceUnit === this._unit) {
197
- return false;
198
- }
199
- this._value = sourceValue;
200
- this._unit = sourceUnit;
201
- this.onChangedObservable.notifyObservers();
202
- return true;
203
- };
204
- Object.defineProperty(ValueAndUnit, "UNITMODE_PERCENTAGE", {
205
- /** UNITMODE_PERCENTAGE */
206
- get: function () {
207
- return ValueAndUnit._UNITMODE_PERCENTAGE;
208
- },
209
- enumerable: false,
210
- configurable: true
211
- });
212
- Object.defineProperty(ValueAndUnit, "UNITMODE_PIXEL", {
213
- /** UNITMODE_PIXEL */
214
- get: function () {
215
- return ValueAndUnit._UNITMODE_PIXEL;
216
- },
217
- enumerable: false,
218
- configurable: true
219
- });
220
- // Static
221
- ValueAndUnit._Regex = /(^-?\d*(\.\d+)?)(%|px)?/;
222
- ValueAndUnit._UNITMODE_PERCENTAGE = 0;
223
- ValueAndUnit._UNITMODE_PIXEL = 1;
224
- return ValueAndUnit;
225
- }());
226
- export { ValueAndUnit };
1
+ import { Observable } from "@babylonjs/core/Misc/observable.js";
2
+ /**
3
+ * Class used to specific a value and its associated unit
4
+ */
5
+ var ValueAndUnit = /** @class */ (function () {
6
+ /**
7
+ * Creates a new ValueAndUnit
8
+ * @param value defines the value to store
9
+ * @param unit defines the unit to store - defaults to ValueAndUnit.UNITMODE_PIXEL
10
+ * @param negativeValueAllowed defines a boolean indicating if the value can be negative
11
+ */
12
+ function ValueAndUnit(value,
13
+ /** defines the unit to store */
14
+ unit,
15
+ /** defines a boolean indicating if the value can be negative */
16
+ negativeValueAllowed) {
17
+ if (unit === void 0) { unit = ValueAndUnit.UNITMODE_PIXEL; }
18
+ if (negativeValueAllowed === void 0) { negativeValueAllowed = true; }
19
+ this.negativeValueAllowed = negativeValueAllowed;
20
+ this._value = 1;
21
+ this._unit = ValueAndUnit.UNITMODE_PIXEL;
22
+ /**
23
+ * Gets or sets a value indicating that this value will not scale accordingly with adaptive scaling property
24
+ * @see https://doc.babylonjs.com/how_to/gui#adaptive-scaling
25
+ */
26
+ this.ignoreAdaptiveScaling = false;
27
+ /**
28
+ * Observable event triggered each time the value or unit changes
29
+ */
30
+ this.onChangedObservable = new Observable();
31
+ this._value = value;
32
+ this._unit = unit;
33
+ this._originalUnit = unit;
34
+ }
35
+ Object.defineProperty(ValueAndUnit.prototype, "isPercentage", {
36
+ /** Gets a boolean indicating if the value is a percentage */
37
+ get: function () {
38
+ return this._unit === ValueAndUnit.UNITMODE_PERCENTAGE;
39
+ },
40
+ enumerable: false,
41
+ configurable: true
42
+ });
43
+ Object.defineProperty(ValueAndUnit.prototype, "isPixel", {
44
+ /** Gets a boolean indicating if the value is store as pixel */
45
+ get: function () {
46
+ return this._unit === ValueAndUnit.UNITMODE_PIXEL;
47
+ },
48
+ enumerable: false,
49
+ configurable: true
50
+ });
51
+ Object.defineProperty(ValueAndUnit.prototype, "internalValue", {
52
+ /**
53
+ * Gets value (without units)
54
+ * @deprecated use value property instead
55
+ */
56
+ get: function () {
57
+ return this._value;
58
+ },
59
+ enumerable: false,
60
+ configurable: true
61
+ });
62
+ Object.defineProperty(ValueAndUnit.prototype, "value", {
63
+ /** Gets value (without units) */
64
+ get: function () {
65
+ return this._value;
66
+ },
67
+ /** Sets value (without units) */
68
+ set: function (value) {
69
+ if (value !== this._value) {
70
+ this._value = value;
71
+ this.onChangedObservable.notifyObservers();
72
+ }
73
+ },
74
+ enumerable: false,
75
+ configurable: true
76
+ });
77
+ Object.defineProperty(ValueAndUnit.prototype, "unit", {
78
+ /** Gets units (without value) */
79
+ get: function () {
80
+ return this._unit;
81
+ },
82
+ /** Sets units (without value) */
83
+ set: function (value) {
84
+ if (value !== this._unit) {
85
+ this._unit = value;
86
+ this.onChangedObservable.notifyObservers();
87
+ }
88
+ },
89
+ enumerable: false,
90
+ configurable: true
91
+ });
92
+ /**
93
+ * Gets value as pixel
94
+ * @param host defines the root host
95
+ * @param refValue defines the reference value for percentages
96
+ * @returns the value as pixel
97
+ */
98
+ ValueAndUnit.prototype.getValueInPixel = function (host, refValue) {
99
+ if (this.isPixel) {
100
+ return this.getValue(host);
101
+ }
102
+ return this.getValue(host) * refValue;
103
+ };
104
+ /**
105
+ * Update the current value and unit.
106
+ * @param value defines the value to store
107
+ * @param unit defines the unit to store
108
+ * @returns the current ValueAndUnit
109
+ */
110
+ ValueAndUnit.prototype.updateInPlace = function (value, unit) {
111
+ if (unit === void 0) { unit = ValueAndUnit.UNITMODE_PIXEL; }
112
+ if (this.value !== value || this.unit !== unit) {
113
+ // set member variables to notify only once
114
+ this._value = value;
115
+ this._unit = unit;
116
+ this.onChangedObservable.notifyObservers();
117
+ }
118
+ return this;
119
+ };
120
+ /**
121
+ * Gets the value accordingly to its unit
122
+ * @param host defines the root host
123
+ * @returns the value
124
+ */
125
+ ValueAndUnit.prototype.getValue = function (host) {
126
+ if (host && !this.ignoreAdaptiveScaling && this.unit !== ValueAndUnit.UNITMODE_PERCENTAGE) {
127
+ var width = 0;
128
+ var height = 0;
129
+ if (host.idealWidth) {
130
+ width = (this._value * host.getSize().width) / host.idealWidth;
131
+ }
132
+ if (host.idealHeight) {
133
+ height = (this._value * host.getSize().height) / host.idealHeight;
134
+ }
135
+ if (host.useSmallestIdeal && host.idealWidth && host.idealHeight) {
136
+ return window.innerWidth < window.innerHeight ? width : height;
137
+ }
138
+ if (host.idealWidth) {
139
+ // horizontal
140
+ return width;
141
+ }
142
+ if (host.idealHeight) {
143
+ // vertical
144
+ return height;
145
+ }
146
+ }
147
+ return this._value;
148
+ };
149
+ /**
150
+ * Gets a string representation of the value
151
+ * @param host defines the root host
152
+ * @param decimals defines an optional number of decimals to display
153
+ * @returns a string
154
+ */
155
+ ValueAndUnit.prototype.toString = function (host, decimals) {
156
+ switch (this._unit) {
157
+ case ValueAndUnit.UNITMODE_PERCENTAGE: {
158
+ var percentage = this.getValue(host) * 100;
159
+ return (decimals ? percentage.toFixed(decimals) : percentage) + "%";
160
+ }
161
+ case ValueAndUnit.UNITMODE_PIXEL: {
162
+ var pixels = this.getValue(host);
163
+ return (decimals ? pixels.toFixed(decimals) : pixels) + "px";
164
+ }
165
+ }
166
+ return this._unit.toString();
167
+ };
168
+ /**
169
+ * Store a value parsed from a string
170
+ * @param source defines the source string
171
+ * @returns true if the value was successfully parsed and updated
172
+ */
173
+ ValueAndUnit.prototype.fromString = function (source) {
174
+ var match = ValueAndUnit._Regex.exec(source.toString());
175
+ if (!match || match.length === 0) {
176
+ return false;
177
+ }
178
+ var sourceValue = parseFloat(match[1]);
179
+ var sourceUnit = this._originalUnit;
180
+ if (!this.negativeValueAllowed) {
181
+ if (sourceValue < 0) {
182
+ sourceValue = 0;
183
+ }
184
+ }
185
+ if (match.length === 4) {
186
+ switch (match[3]) {
187
+ case "px":
188
+ sourceUnit = ValueAndUnit.UNITMODE_PIXEL;
189
+ break;
190
+ case "%":
191
+ sourceUnit = ValueAndUnit.UNITMODE_PERCENTAGE;
192
+ sourceValue /= 100.0;
193
+ break;
194
+ }
195
+ }
196
+ if (sourceValue === this._value && sourceUnit === this._unit) {
197
+ return false;
198
+ }
199
+ this._value = sourceValue;
200
+ this._unit = sourceUnit;
201
+ this.onChangedObservable.notifyObservers();
202
+ return true;
203
+ };
204
+ Object.defineProperty(ValueAndUnit, "UNITMODE_PERCENTAGE", {
205
+ /** UNITMODE_PERCENTAGE */
206
+ get: function () {
207
+ return ValueAndUnit._UNITMODE_PERCENTAGE;
208
+ },
209
+ enumerable: false,
210
+ configurable: true
211
+ });
212
+ Object.defineProperty(ValueAndUnit, "UNITMODE_PIXEL", {
213
+ /** UNITMODE_PIXEL */
214
+ get: function () {
215
+ return ValueAndUnit._UNITMODE_PIXEL;
216
+ },
217
+ enumerable: false,
218
+ configurable: true
219
+ });
220
+ // Static
221
+ ValueAndUnit._Regex = /(^-?\d*(\.\d+)?)(%|px)?/;
222
+ ValueAndUnit._UNITMODE_PERCENTAGE = 0;
223
+ ValueAndUnit._UNITMODE_PIXEL = 1;
224
+ return ValueAndUnit;
225
+ }());
226
+ export { ValueAndUnit };
227
227
  //# sourceMappingURL=valueAndUnit.js.map
package/2D/xmlLoader.d.ts CHANGED
@@ -1,60 +1,60 @@
1
- import { Nullable } from "@babylonjs/core/types.js";
2
- /**
3
- * Class used to load GUI via XML.
4
- */
5
- export declare class XmlLoader {
6
- private _nodes;
7
- private _nodeTypes;
8
- private _isLoaded;
9
- private _objectAttributes;
10
- private _rootNode;
11
- private _parentClass;
12
- /**
13
- * Create a new xml loader
14
- * @param parentClass Sets the class context. Used when the loader is instanced inside a class and not in a global context
15
- */
16
- constructor(parentClass?: any);
17
- private _getChainElement;
18
- private _getClassAttribute;
19
- private _createGuiElement;
20
- private _parseGrid;
21
- private _parseElement;
22
- private _prepareSourceElement;
23
- private _parseElementsFromSource;
24
- private _parseXml;
25
- /**
26
- * Gets if the loading has finished.
27
- * @returns whether the loading has finished or not
28
- */
29
- isLoaded(): boolean;
30
- /**
31
- * Gets a loaded node / control by id.
32
- * @param id the Controls id set in the xml
33
- * @returns element of type Control
34
- */
35
- getNodeById(id: string): any;
36
- /**
37
- * Gets all loaded nodes / controls
38
- * @returns Array of controls
39
- */
40
- getNodes(): any;
41
- /**
42
- * Disposes the loaded layout
43
- */
44
- dispose(): void;
45
- /**
46
- * Initiates the xml layout loading
47
- * @param xmlFile defines the xml layout to load
48
- * @param rootNode defines the node / control to use as a parent for the loaded layout controls.
49
- * @param onSuccess defines the callback called on layout load successfully.
50
- * @param onError defines the callback called on layout load failure.
51
- */
52
- loadLayout(xmlFile: any, rootNode: any, onSuccess?: Nullable<() => void>, onError?: Nullable<(error: string) => void>): void;
53
- /**
54
- * Initiates the xml layout loading asynchronously
55
- * @param xmlFile defines the xml layout to load
56
- * @param rootNode defines the node / control to use as a parent for the loaded layout controls.
57
- * @returns Promise
58
- */
59
- loadLayoutAsync(xmlFile: any, rootNode: any): Promise<any>;
60
- }
1
+ import { Nullable } from "@babylonjs/core/types.js";
2
+ /**
3
+ * Class used to load GUI via XML.
4
+ */
5
+ export declare class XmlLoader {
6
+ private _nodes;
7
+ private _nodeTypes;
8
+ private _isLoaded;
9
+ private _objectAttributes;
10
+ private _rootNode;
11
+ private _parentClass;
12
+ /**
13
+ * Create a new xml loader
14
+ * @param parentClass Sets the class context. Used when the loader is instanced inside a class and not in a global context
15
+ */
16
+ constructor(parentClass?: any);
17
+ private _getChainElement;
18
+ private _getClassAttribute;
19
+ private _createGuiElement;
20
+ private _parseGrid;
21
+ private _parseElement;
22
+ private _prepareSourceElement;
23
+ private _parseElementsFromSource;
24
+ private _parseXml;
25
+ /**
26
+ * Gets if the loading has finished.
27
+ * @returns whether the loading has finished or not
28
+ */
29
+ isLoaded(): boolean;
30
+ /**
31
+ * Gets a loaded node / control by id.
32
+ * @param id the Controls id set in the xml
33
+ * @returns element of type Control
34
+ */
35
+ getNodeById(id: string): any;
36
+ /**
37
+ * Gets all loaded nodes / controls
38
+ * @returns Array of controls
39
+ */
40
+ getNodes(): any;
41
+ /**
42
+ * Disposes the loaded layout
43
+ */
44
+ dispose(): void;
45
+ /**
46
+ * Initiates the xml layout loading
47
+ * @param xmlFile defines the xml layout to load
48
+ * @param rootNode defines the node / control to use as a parent for the loaded layout controls.
49
+ * @param onSuccess defines the callback called on layout load successfully.
50
+ * @param onError defines the callback called on layout load failure.
51
+ */
52
+ loadLayout(xmlFile: any, rootNode: any, onSuccess?: Nullable<() => void>, onError?: Nullable<(error: string) => void>): void;
53
+ /**
54
+ * Initiates the xml layout loading asynchronously
55
+ * @param xmlFile defines the xml layout to load
56
+ * @param rootNode defines the node / control to use as a parent for the loaded layout controls.
57
+ * @returns Promise
58
+ */
59
+ loadLayoutAsync(xmlFile: any, rootNode: any): Promise<any>;
60
+ }