@babylonjs/gui 5.19.0 → 5.22.0
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.
- package/2D/adtInstrumentation.js +70 -90
- package/2D/adtInstrumentation.js.map +1 -1
- package/2D/advancedDynamicTexture.d.ts +8 -0
- package/2D/advancedDynamicTexture.js +559 -620
- package/2D/advancedDynamicTexture.js.map +1 -1
- package/2D/controls/button.js +76 -90
- package/2D/controls/button.js.map +1 -1
- package/2D/controls/checkbox.js +86 -106
- package/2D/controls/checkbox.js.map +1 -1
- package/2D/controls/colorpicker.js +395 -415
- package/2D/controls/colorpicker.js.map +1 -1
- package/2D/controls/container.js +187 -230
- package/2D/controls/container.js.map +1 -1
- package/2D/controls/control.js +1073 -1353
- package/2D/controls/control.js.map +1 -1
- package/2D/controls/displayGrid.js +152 -196
- package/2D/controls/displayGrid.js.map +1 -1
- package/2D/controls/ellipse.js +32 -40
- package/2D/controls/ellipse.js.map +1 -1
- package/2D/controls/focusableButton.js +30 -35
- package/2D/controls/focusableButton.js.map +1 -1
- package/2D/controls/grid.js +172 -212
- package/2D/controls/grid.js.map +1 -1
- package/2D/controls/image.js +489 -592
- package/2D/controls/image.js.map +1 -1
- package/2D/controls/inputPassword.js +9 -16
- package/2D/controls/inputPassword.js.map +1 -1
- package/2D/controls/inputText.js +380 -467
- package/2D/controls/inputText.js.map +1 -1
- package/2D/controls/inputTextArea.js +234 -273
- package/2D/controls/inputTextArea.js.map +1 -1
- package/2D/controls/line.js +147 -198
- package/2D/controls/line.js.map +1 -1
- package/2D/controls/multiLine.js +87 -113
- package/2D/controls/multiLine.js.map +1 -1
- package/2D/controls/radioButton.js +106 -127
- package/2D/controls/radioButton.js.map +1 -1
- package/2D/controls/rectangle.js +64 -76
- package/2D/controls/rectangle.js.map +1 -1
- package/2D/controls/scrollViewers/scrollViewer.js +439 -543
- package/2D/controls/scrollViewers/scrollViewer.js.map +1 -1
- package/2D/controls/scrollViewers/scrollViewerWindow.js +99 -118
- package/2D/controls/scrollViewers/scrollViewerWindow.js.map +1 -1
- package/2D/controls/selector.js +241 -329
- package/2D/controls/selector.js.map +1 -1
- package/2D/controls/sliders/baseSlider.js +182 -230
- package/2D/controls/sliders/baseSlider.js.map +1 -1
- package/2D/controls/sliders/imageBasedSlider.js +86 -109
- package/2D/controls/sliders/imageBasedSlider.js.map +1 -1
- package/2D/controls/sliders/imageScrollBar.d.ts +4 -0
- package/2D/controls/sliders/imageScrollBar.js +149 -163
- package/2D/controls/sliders/imageScrollBar.js.map +1 -1
- package/2D/controls/sliders/scrollBar.d.ts +4 -0
- package/2D/controls/sliders/scrollBar.js +65 -65
- package/2D/controls/sliders/scrollBar.js.map +1 -1
- package/2D/controls/sliders/slider.js +91 -115
- package/2D/controls/sliders/slider.js.map +1 -1
- package/2D/controls/stackPanel.js +114 -135
- package/2D/controls/stackPanel.js.map +1 -1
- package/2D/controls/statics.js +5 -5
- package/2D/controls/statics.js.map +1 -1
- package/2D/controls/textBlock.js +322 -384
- package/2D/controls/textBlock.js.map +1 -1
- package/2D/controls/textWrapper.js +27 -41
- package/2D/controls/textWrapper.js.map +1 -1
- package/2D/controls/toggleButton.js +105 -121
- package/2D/controls/toggleButton.js.map +1 -1
- package/2D/controls/virtualKeyboard.js +101 -123
- package/2D/controls/virtualKeyboard.js.map +1 -1
- package/2D/math2D.js +62 -70
- package/2D/math2D.js.map +1 -1
- package/2D/measure.js +30 -32
- package/2D/measure.js.map +1 -1
- package/2D/multiLinePoint.js +71 -89
- package/2D/multiLinePoint.js.map +1 -1
- package/2D/style.js +55 -73
- package/2D/style.js.map +1 -1
- package/2D/valueAndUnit.js +71 -104
- package/2D/valueAndUnit.js.map +1 -1
- package/2D/xmlLoader.js +70 -84
- package/2D/xmlLoader.js.map +1 -1
- package/3D/behaviors/defaultBehavior.js +40 -59
- package/3D/behaviors/defaultBehavior.js.map +1 -1
- package/3D/controls/abstractButton3D.js +8 -12
- package/3D/controls/abstractButton3D.js.map +1 -1
- package/3D/controls/button3D.js +30 -35
- package/3D/controls/button3D.js.map +1 -1
- package/3D/controls/container3D.js +57 -71
- package/3D/controls/container3D.js.map +1 -1
- package/3D/controls/contentDisplay3D.js +47 -60
- package/3D/controls/contentDisplay3D.js.map +1 -1
- package/3D/controls/control3D.js +123 -158
- package/3D/controls/control3D.js.map +1 -1
- package/3D/controls/cylinderPanel.js +28 -38
- package/3D/controls/cylinderPanel.js.map +1 -1
- package/3D/controls/handMenu.js +20 -29
- package/3D/controls/handMenu.js.map +1 -1
- package/3D/controls/holographicBackplate.js +52 -72
- package/3D/controls/holographicBackplate.js.map +1 -1
- package/3D/controls/holographicButton.js +160 -200
- package/3D/controls/holographicButton.js.map +1 -1
- package/3D/controls/holographicSlate.js +176 -206
- package/3D/controls/holographicSlate.js.map +1 -1
- package/3D/controls/meshButton3D.js +24 -30
- package/3D/controls/meshButton3D.js.map +1 -1
- package/3D/controls/nearMenu.js +57 -71
- package/3D/controls/nearMenu.js.map +1 -1
- package/3D/controls/planePanel.js +6 -13
- package/3D/controls/planePanel.js.map +1 -1
- package/3D/controls/scatterPanel.js +43 -54
- package/3D/controls/scatterPanel.js.map +1 -1
- package/3D/controls/slider3D.js +168 -222
- package/3D/controls/slider3D.js.map +1 -1
- package/3D/controls/spherePanel.js +29 -39
- package/3D/controls/spherePanel.js.map +1 -1
- package/3D/controls/stackPanel3D.js +36 -49
- package/3D/controls/stackPanel3D.js.map +1 -1
- package/3D/controls/touchButton3D.js +126 -154
- package/3D/controls/touchButton3D.js.map +1 -1
- package/3D/controls/touchHolographicButton.js +223 -272
- package/3D/controls/touchHolographicButton.js.map +1 -1
- package/3D/controls/touchHolographicMenu.js +55 -66
- package/3D/controls/touchHolographicMenu.js.map +1 -1
- package/3D/controls/touchMeshButton3D.js +24 -30
- package/3D/controls/touchMeshButton3D.js.map +1 -1
- package/3D/controls/volumeBasedPanel.js +85 -107
- package/3D/controls/volumeBasedPanel.js.map +1 -1
- package/3D/gizmos/gizmoHandle.js +68 -103
- package/3D/gizmos/gizmoHandle.js.map +1 -1
- package/3D/gizmos/slateGizmo.js +165 -182
- package/3D/gizmos/slateGizmo.js.map +1 -1
- package/3D/gui3DManager.js +76 -101
- package/3D/gui3DManager.js.map +1 -1
- package/3D/materials/fluent/fluentMaterial.js +110 -119
- package/3D/materials/fluent/fluentMaterial.js.map +1 -1
- package/3D/materials/fluent/shaders/fluent.fragment.js +20 -3
- package/3D/materials/fluent/shaders/fluent.fragment.js.map +1 -1
- package/3D/materials/fluent/shaders/fluent.vertex.js +11 -3
- package/3D/materials/fluent/shaders/fluent.vertex.js.map +1 -1
- package/3D/materials/fluentBackplate/fluentBackplateMaterial.js +168 -177
- package/3D/materials/fluentBackplate/fluentBackplateMaterial.js.map +1 -1
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js +9 -3
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js.map +1 -1
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js +15 -3
- package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js.map +1 -1
- package/3D/materials/fluentButton/fluentButtonMaterial.js +205 -213
- package/3D/materials/fluentButton/fluentButtonMaterial.js.map +1 -1
- package/3D/materials/fluentButton/shaders/fluentButton.fragment.js +6 -3
- package/3D/materials/fluentButton/shaders/fluentButton.fragment.js.map +1 -1
- package/3D/materials/fluentButton/shaders/fluentButton.vertex.js +6 -3
- package/3D/materials/fluentButton/shaders/fluentButton.vertex.js.map +1 -1
- package/3D/materials/handle/handleMaterial.js +56 -69
- package/3D/materials/handle/handleMaterial.js.map +1 -1
- package/3D/materials/handle/shaders/handle.fragment.js +3 -3
- package/3D/materials/handle/shaders/handle.fragment.js.map +1 -1
- package/3D/materials/handle/shaders/handle.vertex.js +3 -3
- package/3D/materials/handle/shaders/handle.vertex.js.map +1 -1
- package/3D/materials/mrdl/mrdlBackplateMaterial.js +158 -166
- package/3D/materials/mrdl/mrdlBackplateMaterial.js.map +1 -1
- package/3D/materials/mrdl/mrdlSliderBarMaterial.js +322 -330
- package/3D/materials/mrdl/mrdlSliderBarMaterial.js.map +1 -1
- package/3D/materials/mrdl/mrdlSliderThumbMaterial.js +322 -330
- package/3D/materials/mrdl/mrdlSliderThumbMaterial.js.map +1 -1
- package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js +9 -3
- package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js.map +1 -1
- package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js +6 -3
- package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js.map +1 -1
- package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js +24 -3
- package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js.map +1 -1
- package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js +12 -3
- package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js.map +1 -1
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js +24 -3
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js.map +1 -1
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js +12 -3
- package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js.map +1 -1
- package/3D/vector3WithInfo.js +6 -12
- package/3D/vector3WithInfo.js.map +1 -1
- package/legacy/legacy.js +1 -1
- package/legacy/legacy.js.map +1 -1
- package/package.json +2 -5
package/2D/valueAndUnit.js
CHANGED
|
@@ -2,20 +2,18 @@ import { Observable } from "@babylonjs/core/Misc/observable.js";
|
|
|
2
2
|
/**
|
|
3
3
|
* Class used to specific a value and its associated unit
|
|
4
4
|
*/
|
|
5
|
-
|
|
5
|
+
export class ValueAndUnit {
|
|
6
6
|
/**
|
|
7
7
|
* Creates a new ValueAndUnit
|
|
8
8
|
* @param value defines the value to store
|
|
9
9
|
* @param unit defines the unit to store - defaults to ValueAndUnit.UNITMODE_PIXEL
|
|
10
10
|
* @param negativeValueAllowed defines a boolean indicating if the value can be negative
|
|
11
11
|
*/
|
|
12
|
-
|
|
12
|
+
constructor(value,
|
|
13
13
|
/** defines the unit to store */
|
|
14
|
-
unit,
|
|
14
|
+
unit = ValueAndUnit.UNITMODE_PIXEL,
|
|
15
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; }
|
|
16
|
+
negativeValueAllowed = true) {
|
|
19
17
|
this.negativeValueAllowed = negativeValueAllowed;
|
|
20
18
|
this._value = 1;
|
|
21
19
|
this._unit = ValueAndUnit.UNITMODE_PIXEL;
|
|
@@ -32,83 +30,62 @@ var ValueAndUnit = /** @class */ (function () {
|
|
|
32
30
|
this._unit = unit;
|
|
33
31
|
this._originalUnit = unit;
|
|
34
32
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
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
|
-
});
|
|
33
|
+
/** Gets a boolean indicating if the value is a percentage */
|
|
34
|
+
get isPercentage() {
|
|
35
|
+
return this._unit === ValueAndUnit.UNITMODE_PERCENTAGE;
|
|
36
|
+
}
|
|
37
|
+
/** Gets a boolean indicating if the value is store as pixel */
|
|
38
|
+
get isPixel() {
|
|
39
|
+
return this._unit === ValueAndUnit.UNITMODE_PIXEL;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Gets value (without units)
|
|
43
|
+
* @deprecated use value property instead
|
|
44
|
+
*/
|
|
45
|
+
get internalValue() {
|
|
46
|
+
return this._value;
|
|
47
|
+
}
|
|
48
|
+
/** Gets value (without units) */
|
|
49
|
+
get value() {
|
|
50
|
+
return this._value;
|
|
51
|
+
}
|
|
52
|
+
/** Sets value (without units) */
|
|
53
|
+
set value(value) {
|
|
54
|
+
if (value !== this._value) {
|
|
55
|
+
this._value = value;
|
|
56
|
+
this.onChangedObservable.notifyObservers();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/** Gets units (without value) */
|
|
60
|
+
get unit() {
|
|
61
|
+
return this._unit;
|
|
62
|
+
}
|
|
63
|
+
/** Sets units (without value) */
|
|
64
|
+
set unit(value) {
|
|
65
|
+
if (value !== this._unit) {
|
|
66
|
+
this._unit = value;
|
|
67
|
+
this.onChangedObservable.notifyObservers();
|
|
68
|
+
}
|
|
69
|
+
}
|
|
92
70
|
/**
|
|
93
71
|
* Gets value as pixel
|
|
94
72
|
* @param host defines the root host
|
|
95
73
|
* @param refValue defines the reference value for percentages
|
|
96
74
|
* @returns the value as pixel
|
|
97
75
|
*/
|
|
98
|
-
|
|
76
|
+
getValueInPixel(host, refValue) {
|
|
99
77
|
if (this.isPixel) {
|
|
100
78
|
return this.getValue(host);
|
|
101
79
|
}
|
|
102
80
|
return this.getValue(host) * refValue;
|
|
103
|
-
}
|
|
81
|
+
}
|
|
104
82
|
/**
|
|
105
83
|
* Update the current value and unit.
|
|
106
84
|
* @param value defines the value to store
|
|
107
85
|
* @param unit defines the unit to store
|
|
108
86
|
* @returns the current ValueAndUnit
|
|
109
87
|
*/
|
|
110
|
-
|
|
111
|
-
if (unit === void 0) { unit = ValueAndUnit.UNITMODE_PIXEL; }
|
|
88
|
+
updateInPlace(value, unit = ValueAndUnit.UNITMODE_PIXEL) {
|
|
112
89
|
if (this.value !== value || this.unit !== unit) {
|
|
113
90
|
// set member variables to notify only once
|
|
114
91
|
this._value = value;
|
|
@@ -116,16 +93,16 @@ var ValueAndUnit = /** @class */ (function () {
|
|
|
116
93
|
this.onChangedObservable.notifyObservers();
|
|
117
94
|
}
|
|
118
95
|
return this;
|
|
119
|
-
}
|
|
96
|
+
}
|
|
120
97
|
/**
|
|
121
98
|
* Gets the value accordingly to its unit
|
|
122
99
|
* @param host defines the root host
|
|
123
100
|
* @returns the value
|
|
124
101
|
*/
|
|
125
|
-
|
|
102
|
+
getValue(host) {
|
|
126
103
|
if (host && !this.ignoreAdaptiveScaling && this.unit !== ValueAndUnit.UNITMODE_PERCENTAGE) {
|
|
127
|
-
|
|
128
|
-
|
|
104
|
+
let width = 0;
|
|
105
|
+
let height = 0;
|
|
129
106
|
if (host.idealWidth) {
|
|
130
107
|
width = (this._value * host.getSize().width) / host.idealWidth;
|
|
131
108
|
}
|
|
@@ -145,38 +122,38 @@ var ValueAndUnit = /** @class */ (function () {
|
|
|
145
122
|
}
|
|
146
123
|
}
|
|
147
124
|
return this._value;
|
|
148
|
-
}
|
|
125
|
+
}
|
|
149
126
|
/**
|
|
150
127
|
* Gets a string representation of the value
|
|
151
128
|
* @param host defines the root host
|
|
152
129
|
* @param decimals defines an optional number of decimals to display
|
|
153
130
|
* @returns a string
|
|
154
131
|
*/
|
|
155
|
-
|
|
132
|
+
toString(host, decimals) {
|
|
156
133
|
switch (this._unit) {
|
|
157
134
|
case ValueAndUnit.UNITMODE_PERCENTAGE: {
|
|
158
|
-
|
|
135
|
+
const percentage = this.getValue(host) * 100;
|
|
159
136
|
return (decimals ? percentage.toFixed(decimals) : percentage) + "%";
|
|
160
137
|
}
|
|
161
138
|
case ValueAndUnit.UNITMODE_PIXEL: {
|
|
162
|
-
|
|
139
|
+
const pixels = this.getValue(host);
|
|
163
140
|
return (decimals ? pixels.toFixed(decimals) : pixels) + "px";
|
|
164
141
|
}
|
|
165
142
|
}
|
|
166
143
|
return this._unit.toString();
|
|
167
|
-
}
|
|
144
|
+
}
|
|
168
145
|
/**
|
|
169
146
|
* Store a value parsed from a string
|
|
170
147
|
* @param source defines the source string
|
|
171
148
|
* @returns true if the value was successfully parsed and updated
|
|
172
149
|
*/
|
|
173
|
-
|
|
174
|
-
|
|
150
|
+
fromString(source) {
|
|
151
|
+
const match = ValueAndUnit._Regex.exec(source.toString());
|
|
175
152
|
if (!match || match.length === 0) {
|
|
176
153
|
return false;
|
|
177
154
|
}
|
|
178
|
-
|
|
179
|
-
|
|
155
|
+
let sourceValue = parseFloat(match[1]);
|
|
156
|
+
let sourceUnit = this._originalUnit;
|
|
180
157
|
if (!this.negativeValueAllowed) {
|
|
181
158
|
if (sourceValue < 0) {
|
|
182
159
|
sourceValue = 0;
|
|
@@ -200,28 +177,18 @@ var ValueAndUnit = /** @class */ (function () {
|
|
|
200
177
|
this._unit = sourceUnit;
|
|
201
178
|
this.onChangedObservable.notifyObservers();
|
|
202
179
|
return true;
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
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 };
|
|
180
|
+
}
|
|
181
|
+
/** UNITMODE_PERCENTAGE */
|
|
182
|
+
static get UNITMODE_PERCENTAGE() {
|
|
183
|
+
return ValueAndUnit._UNITMODE_PERCENTAGE;
|
|
184
|
+
}
|
|
185
|
+
/** UNITMODE_PIXEL */
|
|
186
|
+
static get UNITMODE_PIXEL() {
|
|
187
|
+
return ValueAndUnit._UNITMODE_PIXEL;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
// Static
|
|
191
|
+
ValueAndUnit._Regex = /(^-?\d*(\.\d+)?)(%|px)?/;
|
|
192
|
+
ValueAndUnit._UNITMODE_PERCENTAGE = 0;
|
|
193
|
+
ValueAndUnit._UNITMODE_PIXEL = 1;
|
|
227
194
|
//# sourceMappingURL=valueAndUnit.js.map
|
package/2D/valueAndUnit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valueAndUnit.js","sourceRoot":"","sources":["../../../../../lts/gui/generated/2D/valueAndUnit.ts"],"names":[],"mappings":"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","sourcesContent":["import { Observable } from \"core/Misc/observable\";\r\nimport type { AdvancedDynamicTexture } from \"./advancedDynamicTexture\";\r\n\r\n/**\r\n * Class used to specific a value and its associated unit\r\n */\r\nexport class ValueAndUnit {\r\n private _value = 1;\r\n private _unit = ValueAndUnit.UNITMODE_PIXEL;\r\n private _originalUnit: number;\r\n\r\n /**\r\n * Gets or sets a value indicating that this value will not scale accordingly with adaptive scaling property\r\n * @see https://doc.babylonjs.com/how_to/gui#adaptive-scaling\r\n */\r\n public ignoreAdaptiveScaling = false;\r\n\r\n /**\r\n * Observable event triggered each time the value or unit changes\r\n */\r\n public onChangedObservable = new Observable<void>();\r\n\r\n /**\r\n * Creates a new ValueAndUnit\r\n * @param value defines the value to store\r\n * @param unit defines the unit to store - defaults to ValueAndUnit.UNITMODE_PIXEL\r\n * @param negativeValueAllowed defines a boolean indicating if the value can be negative\r\n */\r\n public constructor(\r\n value: number,\r\n /** defines the unit to store */\r\n unit = ValueAndUnit.UNITMODE_PIXEL,\r\n /** defines a boolean indicating if the value can be negative */\r\n public negativeValueAllowed = true\r\n ) {\r\n this._value = value;\r\n this._unit = unit;\r\n this._originalUnit = unit;\r\n }\r\n\r\n /** Gets a boolean indicating if the value is a percentage */\r\n public get isPercentage(): boolean {\r\n return this._unit === ValueAndUnit.UNITMODE_PERCENTAGE;\r\n }\r\n\r\n /** Gets a boolean indicating if the value is store as pixel */\r\n public get isPixel(): boolean {\r\n return this._unit === ValueAndUnit.UNITMODE_PIXEL;\r\n }\r\n\r\n /**\r\n * Gets value (without units)\r\n * @deprecated use value property instead\r\n */\r\n public get internalValue(): number {\r\n return this._value;\r\n }\r\n\r\n /** Gets value (without units) */\r\n public get value(): number {\r\n return this._value;\r\n }\r\n\r\n /** Sets value (without units) */\r\n public set value(value: number) {\r\n if (value !== this._value) {\r\n this._value = value;\r\n this.onChangedObservable.notifyObservers();\r\n }\r\n }\r\n\r\n /** Gets units (without value) */\r\n public get unit(): number {\r\n return this._unit;\r\n }\r\n\r\n /** Sets units (without value) */\r\n public set unit(value: number) {\r\n if (value !== this._unit) {\r\n this._unit = value;\r\n this.onChangedObservable.notifyObservers();\r\n }\r\n }\r\n\r\n /**\r\n * Gets value as pixel\r\n * @param host defines the root host\r\n * @param refValue defines the reference value for percentages\r\n * @returns the value as pixel\r\n */\r\n public getValueInPixel(host: AdvancedDynamicTexture, refValue: number): number {\r\n if (this.isPixel) {\r\n return this.getValue(host);\r\n }\r\n\r\n return this.getValue(host) * refValue;\r\n }\r\n\r\n /**\r\n * Update the current value and unit.\r\n * @param value defines the value to store\r\n * @param unit defines the unit to store\r\n * @returns the current ValueAndUnit\r\n */\r\n public updateInPlace(value: number, unit = ValueAndUnit.UNITMODE_PIXEL): ValueAndUnit {\r\n if (this.value !== value || this.unit !== unit) {\r\n // set member variables to notify only once\r\n this._value = value;\r\n this._unit = unit;\r\n this.onChangedObservable.notifyObservers();\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Gets the value accordingly to its unit\r\n * @param host defines the root host\r\n * @returns the value\r\n */\r\n public getValue(host: AdvancedDynamicTexture): number {\r\n if (host && !this.ignoreAdaptiveScaling && this.unit !== ValueAndUnit.UNITMODE_PERCENTAGE) {\r\n let width: number = 0;\r\n let height: number = 0;\r\n\r\n if (host.idealWidth) {\r\n width = (this._value * host.getSize().width) / host.idealWidth;\r\n }\r\n\r\n if (host.idealHeight) {\r\n height = (this._value * host.getSize().height) / host.idealHeight;\r\n }\r\n\r\n if (host.useSmallestIdeal && host.idealWidth && host.idealHeight) {\r\n return window.innerWidth < window.innerHeight ? width : height;\r\n }\r\n\r\n if (host.idealWidth) {\r\n // horizontal\r\n return width;\r\n }\r\n\r\n if (host.idealHeight) {\r\n // vertical\r\n return height;\r\n }\r\n }\r\n return this._value;\r\n }\r\n\r\n /**\r\n * Gets a string representation of the value\r\n * @param host defines the root host\r\n * @param decimals defines an optional number of decimals to display\r\n * @returns a string\r\n */\r\n public toString(host: AdvancedDynamicTexture, decimals?: number): string {\r\n switch (this._unit) {\r\n case ValueAndUnit.UNITMODE_PERCENTAGE: {\r\n const percentage = this.getValue(host) * 100;\r\n return (decimals ? percentage.toFixed(decimals) : percentage) + \"%\";\r\n }\r\n case ValueAndUnit.UNITMODE_PIXEL: {\r\n const pixels = this.getValue(host);\r\n return (decimals ? pixels.toFixed(decimals) : pixels) + \"px\";\r\n }\r\n }\r\n\r\n return this._unit.toString();\r\n }\r\n\r\n /**\r\n * Store a value parsed from a string\r\n * @param source defines the source string\r\n * @returns true if the value was successfully parsed and updated\r\n */\r\n public fromString(source: string | number): boolean {\r\n const match = ValueAndUnit._Regex.exec(source.toString());\r\n\r\n if (!match || match.length === 0) {\r\n return false;\r\n }\r\n\r\n let sourceValue = parseFloat(match[1]);\r\n let sourceUnit = this._originalUnit;\r\n\r\n if (!this.negativeValueAllowed) {\r\n if (sourceValue < 0) {\r\n sourceValue = 0;\r\n }\r\n }\r\n\r\n if (match.length === 4) {\r\n switch (match[3]) {\r\n case \"px\":\r\n sourceUnit = ValueAndUnit.UNITMODE_PIXEL;\r\n break;\r\n case \"%\":\r\n sourceUnit = ValueAndUnit.UNITMODE_PERCENTAGE;\r\n sourceValue /= 100.0;\r\n break;\r\n }\r\n }\r\n\r\n if (sourceValue === this._value && sourceUnit === this._unit) {\r\n return false;\r\n }\r\n\r\n this._value = sourceValue;\r\n this._unit = sourceUnit;\r\n this.onChangedObservable.notifyObservers();\r\n\r\n return true;\r\n }\r\n\r\n // Static\r\n private static _Regex = /(^-?\\d*(\\.\\d+)?)(%|px)?/;\r\n private static _UNITMODE_PERCENTAGE = 0;\r\n private static _UNITMODE_PIXEL = 1;\r\n\r\n /** UNITMODE_PERCENTAGE */\r\n public static get UNITMODE_PERCENTAGE(): number {\r\n return ValueAndUnit._UNITMODE_PERCENTAGE;\r\n }\r\n\r\n /** UNITMODE_PIXEL */\r\n public static get UNITMODE_PIXEL(): number {\r\n return ValueAndUnit._UNITMODE_PIXEL;\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"valueAndUnit.js","sourceRoot":"","sources":["../../../../../lts/gui/generated/2D/valueAndUnit.ts"],"names":[],"mappings":"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","sourcesContent":["import { Observable } from \"core/Misc/observable\";\r\nimport type { AdvancedDynamicTexture } from \"./advancedDynamicTexture\";\r\n\r\n/**\r\n * Class used to specific a value and its associated unit\r\n */\r\nexport class ValueAndUnit {\r\n private _value = 1;\r\n private _unit = ValueAndUnit.UNITMODE_PIXEL;\r\n private _originalUnit: number;\r\n\r\n /**\r\n * Gets or sets a value indicating that this value will not scale accordingly with adaptive scaling property\r\n * @see https://doc.babylonjs.com/how_to/gui#adaptive-scaling\r\n */\r\n public ignoreAdaptiveScaling = false;\r\n\r\n /**\r\n * Observable event triggered each time the value or unit changes\r\n */\r\n public onChangedObservable = new Observable<void>();\r\n\r\n /**\r\n * Creates a new ValueAndUnit\r\n * @param value defines the value to store\r\n * @param unit defines the unit to store - defaults to ValueAndUnit.UNITMODE_PIXEL\r\n * @param negativeValueAllowed defines a boolean indicating if the value can be negative\r\n */\r\n public constructor(\r\n value: number,\r\n /** defines the unit to store */\r\n unit = ValueAndUnit.UNITMODE_PIXEL,\r\n /** defines a boolean indicating if the value can be negative */\r\n public negativeValueAllowed = true\r\n ) {\r\n this._value = value;\r\n this._unit = unit;\r\n this._originalUnit = unit;\r\n }\r\n\r\n /** Gets a boolean indicating if the value is a percentage */\r\n public get isPercentage(): boolean {\r\n return this._unit === ValueAndUnit.UNITMODE_PERCENTAGE;\r\n }\r\n\r\n /** Gets a boolean indicating if the value is store as pixel */\r\n public get isPixel(): boolean {\r\n return this._unit === ValueAndUnit.UNITMODE_PIXEL;\r\n }\r\n\r\n /**\r\n * Gets value (without units)\r\n * @deprecated use value property instead\r\n */\r\n public get internalValue(): number {\r\n return this._value;\r\n }\r\n\r\n /** Gets value (without units) */\r\n public get value(): number {\r\n return this._value;\r\n }\r\n\r\n /** Sets value (without units) */\r\n public set value(value: number) {\r\n if (value !== this._value) {\r\n this._value = value;\r\n this.onChangedObservable.notifyObservers();\r\n }\r\n }\r\n\r\n /** Gets units (without value) */\r\n public get unit(): number {\r\n return this._unit;\r\n }\r\n\r\n /** Sets units (without value) */\r\n public set unit(value: number) {\r\n if (value !== this._unit) {\r\n this._unit = value;\r\n this.onChangedObservable.notifyObservers();\r\n }\r\n }\r\n\r\n /**\r\n * Gets value as pixel\r\n * @param host defines the root host\r\n * @param refValue defines the reference value for percentages\r\n * @returns the value as pixel\r\n */\r\n public getValueInPixel(host: AdvancedDynamicTexture, refValue: number): number {\r\n if (this.isPixel) {\r\n return this.getValue(host);\r\n }\r\n\r\n return this.getValue(host) * refValue;\r\n }\r\n\r\n /**\r\n * Update the current value and unit.\r\n * @param value defines the value to store\r\n * @param unit defines the unit to store\r\n * @returns the current ValueAndUnit\r\n */\r\n public updateInPlace(value: number, unit = ValueAndUnit.UNITMODE_PIXEL): ValueAndUnit {\r\n if (this.value !== value || this.unit !== unit) {\r\n // set member variables to notify only once\r\n this._value = value;\r\n this._unit = unit;\r\n this.onChangedObservable.notifyObservers();\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Gets the value accordingly to its unit\r\n * @param host defines the root host\r\n * @returns the value\r\n */\r\n public getValue(host: AdvancedDynamicTexture): number {\r\n if (host && !this.ignoreAdaptiveScaling && this.unit !== ValueAndUnit.UNITMODE_PERCENTAGE) {\r\n let width: number = 0;\r\n let height: number = 0;\r\n\r\n if (host.idealWidth) {\r\n width = (this._value * host.getSize().width) / host.idealWidth;\r\n }\r\n\r\n if (host.idealHeight) {\r\n height = (this._value * host.getSize().height) / host.idealHeight;\r\n }\r\n\r\n if (host.useSmallestIdeal && host.idealWidth && host.idealHeight) {\r\n return window.innerWidth < window.innerHeight ? width : height;\r\n }\r\n\r\n if (host.idealWidth) {\r\n // horizontal\r\n return width;\r\n }\r\n\r\n if (host.idealHeight) {\r\n // vertical\r\n return height;\r\n }\r\n }\r\n return this._value;\r\n }\r\n\r\n /**\r\n * Gets a string representation of the value\r\n * @param host defines the root host\r\n * @param decimals defines an optional number of decimals to display\r\n * @returns a string\r\n */\r\n public toString(host: AdvancedDynamicTexture, decimals?: number): string {\r\n switch (this._unit) {\r\n case ValueAndUnit.UNITMODE_PERCENTAGE: {\r\n const percentage = this.getValue(host) * 100;\r\n return (decimals ? percentage.toFixed(decimals) : percentage) + \"%\";\r\n }\r\n case ValueAndUnit.UNITMODE_PIXEL: {\r\n const pixels = this.getValue(host);\r\n return (decimals ? pixels.toFixed(decimals) : pixels) + \"px\";\r\n }\r\n }\r\n\r\n return this._unit.toString();\r\n }\r\n\r\n /**\r\n * Store a value parsed from a string\r\n * @param source defines the source string\r\n * @returns true if the value was successfully parsed and updated\r\n */\r\n public fromString(source: string | number): boolean {\r\n const match = ValueAndUnit._Regex.exec(source.toString());\r\n\r\n if (!match || match.length === 0) {\r\n return false;\r\n }\r\n\r\n let sourceValue = parseFloat(match[1]);\r\n let sourceUnit = this._originalUnit;\r\n\r\n if (!this.negativeValueAllowed) {\r\n if (sourceValue < 0) {\r\n sourceValue = 0;\r\n }\r\n }\r\n\r\n if (match.length === 4) {\r\n switch (match[3]) {\r\n case \"px\":\r\n sourceUnit = ValueAndUnit.UNITMODE_PIXEL;\r\n break;\r\n case \"%\":\r\n sourceUnit = ValueAndUnit.UNITMODE_PERCENTAGE;\r\n sourceValue /= 100.0;\r\n break;\r\n }\r\n }\r\n\r\n if (sourceValue === this._value && sourceUnit === this._unit) {\r\n return false;\r\n }\r\n\r\n this._value = sourceValue;\r\n this._unit = sourceUnit;\r\n this.onChangedObservable.notifyObservers();\r\n\r\n return true;\r\n }\r\n\r\n // Static\r\n private static _Regex = /(^-?\\d*(\\.\\d+)?)(%|px)?/;\r\n private static _UNITMODE_PERCENTAGE = 0;\r\n private static _UNITMODE_PIXEL = 1;\r\n\r\n /** UNITMODE_PERCENTAGE */\r\n public static get UNITMODE_PERCENTAGE(): number {\r\n return ValueAndUnit._UNITMODE_PERCENTAGE;\r\n }\r\n\r\n /** UNITMODE_PIXEL */\r\n public static get UNITMODE_PIXEL(): number {\r\n return ValueAndUnit._UNITMODE_PIXEL;\r\n }\r\n}\r\n"]}
|
package/2D/xmlLoader.js
CHANGED
|
@@ -1,16 +1,14 @@
|
|
|
1
|
-
import { __awaiter, __generator } from "tslib";
|
|
2
1
|
import { GetClass } from "@babylonjs/core/Misc/typeStore.js";
|
|
3
|
-
|
|
2
|
+
const XmlLoaderError = "XmlLoader Exception : XML file is malformed or corrupted.";
|
|
4
3
|
/**
|
|
5
4
|
* Class used to load GUI via XML.
|
|
6
5
|
*/
|
|
7
|
-
|
|
6
|
+
export class XmlLoader {
|
|
8
7
|
/**
|
|
9
8
|
* Create a new xml loader
|
|
10
9
|
* @param parentClass Sets the class context. Used when the loader is instanced inside a class and not in a global context
|
|
11
10
|
*/
|
|
12
|
-
|
|
13
|
-
if (parentClass === void 0) { parentClass = null; }
|
|
11
|
+
constructor(parentClass = null) {
|
|
14
12
|
this._nodes = {};
|
|
15
13
|
this._nodeTypes = {
|
|
16
14
|
element: 1,
|
|
@@ -29,37 +27,36 @@ var XmlLoader = /** @class */ (function () {
|
|
|
29
27
|
this._parentClass = parentClass;
|
|
30
28
|
}
|
|
31
29
|
}
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
_getChainElement(attributeValue) {
|
|
31
|
+
let element = window;
|
|
34
32
|
if (this._parentClass) {
|
|
35
33
|
element = this._parentClass;
|
|
36
34
|
}
|
|
37
|
-
|
|
35
|
+
let value = attributeValue;
|
|
38
36
|
value = value.split(".");
|
|
39
|
-
for (
|
|
37
|
+
for (let i = 0; i < value.length; i++) {
|
|
40
38
|
element = element[value[i]];
|
|
41
39
|
}
|
|
42
40
|
return element;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
41
|
+
}
|
|
42
|
+
_getClassAttribute(attributeName) {
|
|
43
|
+
const attribute = attributeName.split(".");
|
|
44
|
+
const className = GetClass("BABYLON.GUI." + attribute[0]);
|
|
47
45
|
return className[attribute[1]];
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
if (linkParent === void 0) { linkParent = true; }
|
|
46
|
+
}
|
|
47
|
+
_createGuiElement(node, parent, linkParent = true) {
|
|
51
48
|
try {
|
|
52
|
-
|
|
53
|
-
|
|
49
|
+
const className = GetClass("BABYLON.GUI." + node.nodeName);
|
|
50
|
+
const guiNode = new className();
|
|
54
51
|
if (parent && linkParent) {
|
|
55
52
|
parent.addControl(guiNode);
|
|
56
53
|
}
|
|
57
|
-
for (
|
|
54
|
+
for (let i = 0; i < node.attributes.length; i++) {
|
|
58
55
|
if (node.attributes[i].name.toLowerCase().includes("datasource")) {
|
|
59
56
|
continue;
|
|
60
57
|
}
|
|
61
58
|
if (node.attributes[i].name.toLowerCase().includes("observable")) {
|
|
62
|
-
|
|
59
|
+
const element = this._getChainElement(node.attributes[i].value);
|
|
63
60
|
guiNode[node.attributes[i].name].add(element);
|
|
64
61
|
continue;
|
|
65
62
|
}
|
|
@@ -72,7 +69,7 @@ var XmlLoader = /** @class */ (function () {
|
|
|
72
69
|
}
|
|
73
70
|
}
|
|
74
71
|
else if (node.attributes[i].value.startsWith("{{") && node.attributes[i].value.endsWith("}}")) {
|
|
75
|
-
|
|
72
|
+
const element = this._getChainElement(node.attributes[i].value.substring(2, node.attributes[i].value.length - 2));
|
|
76
73
|
guiNode[node.attributes[i].name] = element;
|
|
77
74
|
}
|
|
78
75
|
else if (!this._objectAttributes[node.attributes[i].name]) {
|
|
@@ -91,7 +88,7 @@ var XmlLoader = /** @class */ (function () {
|
|
|
91
88
|
this._nodes[node.nodeName + Object.keys(this._nodes).length + "_gen"] = guiNode;
|
|
92
89
|
return guiNode;
|
|
93
90
|
}
|
|
94
|
-
|
|
91
|
+
let id = node.attributes.getNamedItem("id").value;
|
|
95
92
|
if (id.startsWith("{{") && id.endsWith("}}")) {
|
|
96
93
|
id = this._getChainElement(id.substring(2, id.length - 2));
|
|
97
94
|
}
|
|
@@ -106,19 +103,19 @@ var XmlLoader = /** @class */ (function () {
|
|
|
106
103
|
catch (exception) {
|
|
107
104
|
throw "XmlLoader Exception : Error parsing Control " + node.nodeName + "," + exception + ".";
|
|
108
105
|
}
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
for (
|
|
106
|
+
}
|
|
107
|
+
_parseGrid(node, guiNode, parent) {
|
|
108
|
+
let width;
|
|
109
|
+
let height;
|
|
110
|
+
let columns;
|
|
111
|
+
const rows = node.children;
|
|
112
|
+
let cells;
|
|
113
|
+
let isPixel = false;
|
|
114
|
+
let cellNode;
|
|
115
|
+
let rowNumber = -1;
|
|
116
|
+
let columnNumber = -1;
|
|
117
|
+
let totalColumnsNumber = 0;
|
|
118
|
+
for (let i = 0; i < rows.length; i++) {
|
|
122
119
|
if (rows[i].nodeType != this._nodeTypes.element) {
|
|
123
120
|
continue;
|
|
124
121
|
}
|
|
@@ -133,7 +130,7 @@ var XmlLoader = /** @class */ (function () {
|
|
|
133
130
|
height = Number(rows[i].attributes.getNamedItem("height").nodeValue);
|
|
134
131
|
isPixel = rows[i].attributes.getNamedItem("isPixel") ? JSON.parse(rows[i].attributes.getNamedItem("isPixel").nodeValue) : false;
|
|
135
132
|
guiNode.addRowDefinition(height, isPixel);
|
|
136
|
-
for (
|
|
133
|
+
for (let j = 0; j < columns.length; j++) {
|
|
137
134
|
if (columns[j].nodeType != this._nodeTypes.element) {
|
|
138
135
|
continue;
|
|
139
136
|
}
|
|
@@ -153,7 +150,7 @@ var XmlLoader = /** @class */ (function () {
|
|
|
153
150
|
guiNode.addColumnDefinition(width, isPixel);
|
|
154
151
|
}
|
|
155
152
|
cells = columns[j].children;
|
|
156
|
-
for (
|
|
153
|
+
for (let k = 0; k < cells.length; k++) {
|
|
157
154
|
if (cells[k].nodeType != this._nodeTypes.element) {
|
|
158
155
|
continue;
|
|
159
156
|
}
|
|
@@ -172,16 +169,16 @@ var XmlLoader = /** @class */ (function () {
|
|
|
172
169
|
if (node.nextSibling) {
|
|
173
170
|
this._parseXml(node.nextSibling, parent);
|
|
174
171
|
}
|
|
175
|
-
}
|
|
176
|
-
|
|
172
|
+
}
|
|
173
|
+
_parseElement(node, guiNode, parent) {
|
|
177
174
|
if (node.firstChild) {
|
|
178
175
|
this._parseXml(node.firstChild, guiNode);
|
|
179
176
|
}
|
|
180
177
|
if (node.nextSibling) {
|
|
181
178
|
this._parseXml(node.nextSibling, parent);
|
|
182
179
|
}
|
|
183
|
-
}
|
|
184
|
-
|
|
180
|
+
}
|
|
181
|
+
_prepareSourceElement(node, guiNode, variable, source, iterator) {
|
|
185
182
|
if (this._parentClass) {
|
|
186
183
|
this._parentClass[variable] = source[iterator];
|
|
187
184
|
}
|
|
@@ -191,19 +188,19 @@ var XmlLoader = /** @class */ (function () {
|
|
|
191
188
|
if (node.firstChild) {
|
|
192
189
|
this._parseXml(node.firstChild, guiNode, true);
|
|
193
190
|
}
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
|
|
191
|
+
}
|
|
192
|
+
_parseElementsFromSource(node, guiNode, parent) {
|
|
193
|
+
const dataSource = node.attributes.getNamedItem("dataSource").value;
|
|
197
194
|
if (!dataSource.includes(" in ")) {
|
|
198
195
|
throw "XmlLoader Exception : Malformed XML, Data Source must include an in";
|
|
199
196
|
}
|
|
200
197
|
else {
|
|
201
|
-
|
|
202
|
-
|
|
198
|
+
let isArray = true;
|
|
199
|
+
const splittedSource = dataSource.split(" in ");
|
|
203
200
|
if (splittedSource.length < 2) {
|
|
204
201
|
throw "XmlLoader Exception : Malformed XML, Data Source must have an iterator and a source";
|
|
205
202
|
}
|
|
206
|
-
|
|
203
|
+
let source = splittedSource[1];
|
|
207
204
|
if (source.startsWith("{") && source.endsWith("}")) {
|
|
208
205
|
isArray = false;
|
|
209
206
|
}
|
|
@@ -217,12 +214,12 @@ var XmlLoader = /** @class */ (function () {
|
|
|
217
214
|
source = window[source];
|
|
218
215
|
}
|
|
219
216
|
if (isArray) {
|
|
220
|
-
for (
|
|
217
|
+
for (let i = 0; i < source.length; i++) {
|
|
221
218
|
this._prepareSourceElement(node, guiNode, splittedSource[0], source, i);
|
|
222
219
|
}
|
|
223
220
|
}
|
|
224
221
|
else {
|
|
225
|
-
for (
|
|
222
|
+
for (const i in source) {
|
|
226
223
|
this._prepareSourceElement(node, guiNode, splittedSource[0], source, i);
|
|
227
224
|
}
|
|
228
225
|
}
|
|
@@ -230,9 +227,8 @@ var XmlLoader = /** @class */ (function () {
|
|
|
230
227
|
this._parseXml(node.nextSibling, parent);
|
|
231
228
|
}
|
|
232
229
|
}
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
if (generated === void 0) { generated = false; }
|
|
230
|
+
}
|
|
231
|
+
_parseXml(node, parent, generated = false) {
|
|
236
232
|
if (node.nodeType != this._nodeTypes.element) {
|
|
237
233
|
if (node.nextSibling) {
|
|
238
234
|
this._parseXml(node.nextSibling, parent, generated);
|
|
@@ -242,7 +238,7 @@ var XmlLoader = /** @class */ (function () {
|
|
|
242
238
|
if (generated) {
|
|
243
239
|
node.setAttribute("id", parent.id + (parent._children.length + 1));
|
|
244
240
|
}
|
|
245
|
-
|
|
241
|
+
const guiNode = this._createGuiElement(node, parent);
|
|
246
242
|
if (!this._rootNode) {
|
|
247
243
|
this._rootNode = guiNode;
|
|
248
244
|
}
|
|
@@ -255,39 +251,39 @@ var XmlLoader = /** @class */ (function () {
|
|
|
255
251
|
else {
|
|
256
252
|
this._parseElementsFromSource(node, guiNode, parent);
|
|
257
253
|
}
|
|
258
|
-
}
|
|
254
|
+
}
|
|
259
255
|
/**
|
|
260
256
|
* Gets if the loading has finished.
|
|
261
257
|
* @returns whether the loading has finished or not
|
|
262
258
|
*/
|
|
263
|
-
|
|
259
|
+
isLoaded() {
|
|
264
260
|
return this._isLoaded;
|
|
265
|
-
}
|
|
261
|
+
}
|
|
266
262
|
/**
|
|
267
263
|
* Gets a loaded node / control by id.
|
|
268
264
|
* @param id the Controls id set in the xml
|
|
269
265
|
* @returns element of type Control
|
|
270
266
|
*/
|
|
271
|
-
|
|
267
|
+
getNodeById(id) {
|
|
272
268
|
return this._nodes[id];
|
|
273
|
-
}
|
|
269
|
+
}
|
|
274
270
|
/**
|
|
275
271
|
* Gets all loaded nodes / controls
|
|
276
272
|
* @returns Array of controls
|
|
277
273
|
*/
|
|
278
|
-
|
|
274
|
+
getNodes() {
|
|
279
275
|
return this._nodes;
|
|
280
|
-
}
|
|
276
|
+
}
|
|
281
277
|
/**
|
|
282
278
|
* Disposes the loaded layout
|
|
283
279
|
*/
|
|
284
|
-
|
|
280
|
+
dispose() {
|
|
285
281
|
if (this._rootNode) {
|
|
286
282
|
this._rootNode.dispose();
|
|
287
283
|
this._rootNode = null;
|
|
288
284
|
this._nodes = {};
|
|
289
285
|
}
|
|
290
|
-
}
|
|
286
|
+
}
|
|
291
287
|
/**
|
|
292
288
|
* Initiates the xml layout loading
|
|
293
289
|
* @param xmlFile defines the xml layout to load
|
|
@@ -295,12 +291,9 @@ var XmlLoader = /** @class */ (function () {
|
|
|
295
291
|
* @param onSuccess defines the callback called on layout load successfully.
|
|
296
292
|
* @param onError defines the callback called on layout load failure.
|
|
297
293
|
*/
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
if (onError === void 0) { onError = null; }
|
|
302
|
-
var xhttp = new XMLHttpRequest();
|
|
303
|
-
xhttp.onload = function () {
|
|
294
|
+
loadLayout(xmlFile, rootNode, onSuccess = null, onError = null) {
|
|
295
|
+
const xhttp = new XMLHttpRequest();
|
|
296
|
+
xhttp.onload = () => {
|
|
304
297
|
if (xhttp.readyState === 4 && xhttp.status === 200) {
|
|
305
298
|
if (!xhttp.responseXML) {
|
|
306
299
|
if (onError) {
|
|
@@ -311,9 +304,9 @@ var XmlLoader = /** @class */ (function () {
|
|
|
311
304
|
throw XmlLoaderError;
|
|
312
305
|
}
|
|
313
306
|
}
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
307
|
+
const xmlDoc = xhttp.responseXML.documentElement;
|
|
308
|
+
this._parseXml(xmlDoc.firstChild, rootNode);
|
|
309
|
+
this._isLoaded = true;
|
|
317
310
|
if (onSuccess) {
|
|
318
311
|
onSuccess();
|
|
319
312
|
}
|
|
@@ -326,24 +319,17 @@ var XmlLoader = /** @class */ (function () {
|
|
|
326
319
|
};
|
|
327
320
|
xhttp.open("GET", xmlFile, true);
|
|
328
321
|
xhttp.send();
|
|
329
|
-
}
|
|
322
|
+
}
|
|
330
323
|
/**
|
|
331
324
|
* Initiates the xml layout loading asynchronously
|
|
332
325
|
* @param xmlFile defines the xml layout to load
|
|
333
326
|
* @param rootNode defines the node / control to use as a parent for the loaded layout controls.
|
|
334
327
|
* @returns Promise
|
|
335
328
|
*/
|
|
336
|
-
|
|
337
|
-
return
|
|
338
|
-
|
|
339
|
-
return __generator(this, function (_a) {
|
|
340
|
-
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
341
|
-
_this.loadLayout(xmlFile, rootNode, resolve, reject);
|
|
342
|
-
})];
|
|
343
|
-
});
|
|
329
|
+
async loadLayoutAsync(xmlFile, rootNode) {
|
|
330
|
+
return new Promise((resolve, reject) => {
|
|
331
|
+
this.loadLayout(xmlFile, rootNode, resolve, reject);
|
|
344
332
|
});
|
|
345
|
-
}
|
|
346
|
-
|
|
347
|
-
}());
|
|
348
|
-
export { XmlLoader };
|
|
333
|
+
}
|
|
334
|
+
}
|
|
349
335
|
//# sourceMappingURL=xmlLoader.js.map
|