@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,257 +1,257 @@
1
- import { __extends } from "tslib";
2
- import { Observable } from "@babylonjs/core/Misc/observable.js";
3
- import { StackPanel } from "./stackPanel.js";
4
- import { Button } from "./button.js";
5
- import { RegisterClass } from "@babylonjs/core/Misc/typeStore.js";
6
- /**
7
- * Class used to store key control properties
8
- */
9
- var KeyPropertySet = /** @class */ (function () {
10
- function KeyPropertySet() {
11
- }
12
- return KeyPropertySet;
13
- }());
14
- export { KeyPropertySet };
15
- /**
16
- * Class used to create virtual keyboard
17
- */
18
- var VirtualKeyboard = /** @class */ (function (_super) {
19
- __extends(VirtualKeyboard, _super);
20
- function VirtualKeyboard() {
21
- var _this = _super !== null && _super.apply(this, arguments) || this;
22
- /** Observable raised when a key is pressed */
23
- _this.onKeyPressObservable = new Observable();
24
- /** Gets or sets default key button width */
25
- _this.defaultButtonWidth = "40px";
26
- /** Gets or sets default key button height */
27
- _this.defaultButtonHeight = "40px";
28
- /** Gets or sets default key button left padding */
29
- _this.defaultButtonPaddingLeft = "2px";
30
- /** Gets or sets default key button right padding */
31
- _this.defaultButtonPaddingRight = "2px";
32
- /** Gets or sets default key button top padding */
33
- _this.defaultButtonPaddingTop = "2px";
34
- /** Gets or sets default key button bottom padding */
35
- _this.defaultButtonPaddingBottom = "2px";
36
- /** Gets or sets default key button foreground color */
37
- _this.defaultButtonColor = "#DDD";
38
- /** Gets or sets default key button background color */
39
- _this.defaultButtonBackground = "#070707";
40
- /** Gets or sets shift button foreground color */
41
- _this.shiftButtonColor = "#7799FF";
42
- /** Gets or sets shift button thickness*/
43
- _this.selectedShiftThickness = 1;
44
- /** Gets shift key state */
45
- _this.shiftState = 0;
46
- _this._currentlyConnectedInputText = null;
47
- _this._connectedInputTexts = [];
48
- _this._onKeyPressObserver = null;
49
- return _this;
50
- }
51
- VirtualKeyboard.prototype._getTypeName = function () {
52
- return "VirtualKeyboard";
53
- };
54
- VirtualKeyboard.prototype._createKey = function (key, propertySet) {
55
- var _this = this;
56
- var button = Button.CreateSimpleButton(key, key);
57
- button.width = propertySet && propertySet.width ? propertySet.width : this.defaultButtonWidth;
58
- button.height = propertySet && propertySet.height ? propertySet.height : this.defaultButtonHeight;
59
- button.color = propertySet && propertySet.color ? propertySet.color : this.defaultButtonColor;
60
- button.background = propertySet && propertySet.background ? propertySet.background : this.defaultButtonBackground;
61
- button.paddingLeft = propertySet && propertySet.paddingLeft ? propertySet.paddingLeft : this.defaultButtonPaddingLeft;
62
- button.paddingRight = propertySet && propertySet.paddingRight ? propertySet.paddingRight : this.defaultButtonPaddingRight;
63
- button.paddingTop = propertySet && propertySet.paddingTop ? propertySet.paddingTop : this.defaultButtonPaddingTop;
64
- button.paddingBottom = propertySet && propertySet.paddingBottom ? propertySet.paddingBottom : this.defaultButtonPaddingBottom;
65
- button.thickness = 0;
66
- button.isFocusInvisible = true;
67
- button.shadowColor = this.shadowColor;
68
- button.shadowBlur = this.shadowBlur;
69
- button.shadowOffsetX = this.shadowOffsetX;
70
- button.shadowOffsetY = this.shadowOffsetY;
71
- button.onPointerUpObservable.add(function () {
72
- _this.onKeyPressObservable.notifyObservers(key);
73
- });
74
- return button;
75
- };
76
- /**
77
- * Adds a new row of keys
78
- * @param keys defines the list of keys to add
79
- * @param propertySets defines the associated property sets
80
- */
81
- VirtualKeyboard.prototype.addKeysRow = function (keys, propertySets) {
82
- var panel = new StackPanel();
83
- panel.isVertical = false;
84
- panel.isFocusInvisible = true;
85
- var maxKey = null;
86
- for (var i = 0; i < keys.length; i++) {
87
- var properties = null;
88
- if (propertySets && propertySets.length === keys.length) {
89
- properties = propertySets[i];
90
- }
91
- var key = this._createKey(keys[i], properties);
92
- if (!maxKey || key.heightInPixels > maxKey.heightInPixels) {
93
- maxKey = key;
94
- }
95
- panel.addControl(key);
96
- }
97
- panel.height = maxKey ? maxKey.height : this.defaultButtonHeight;
98
- this.addControl(panel);
99
- };
100
- /**
101
- * Set the shift key to a specific state
102
- * @param shiftState defines the new shift state
103
- */
104
- VirtualKeyboard.prototype.applyShiftState = function (shiftState) {
105
- if (!this.children) {
106
- return;
107
- }
108
- for (var i = 0; i < this.children.length; i++) {
109
- var row = this.children[i];
110
- if (!row || !row.children) {
111
- continue;
112
- }
113
- var rowContainer = row;
114
- for (var j = 0; j < rowContainer.children.length; j++) {
115
- var button = rowContainer.children[j];
116
- if (!button || !button.children[0]) {
117
- continue;
118
- }
119
- var button_tblock = button.children[0];
120
- if (button_tblock.text === "\u21E7") {
121
- button.color = shiftState ? this.shiftButtonColor : this.defaultButtonColor;
122
- button.thickness = shiftState > 1 ? this.selectedShiftThickness : 0;
123
- }
124
- button_tblock.text = shiftState > 0 ? button_tblock.text.toUpperCase() : button_tblock.text.toLowerCase();
125
- }
126
- }
127
- };
128
- Object.defineProperty(VirtualKeyboard.prototype, "connectedInputText", {
129
- /** Gets the input text control currently attached to the keyboard */
130
- get: function () {
131
- return this._currentlyConnectedInputText;
132
- },
133
- enumerable: false,
134
- configurable: true
135
- });
136
- /**
137
- * Connects the keyboard with an input text control
138
- *
139
- * @param input defines the target control
140
- */
141
- VirtualKeyboard.prototype.connect = function (input) {
142
- var _this = this;
143
- var inputTextAlreadyConnected = this._connectedInputTexts.some(function (a) { return a.input === input; });
144
- if (inputTextAlreadyConnected) {
145
- return;
146
- }
147
- if (this._onKeyPressObserver === null) {
148
- this._onKeyPressObserver = this.onKeyPressObservable.add(function (key) {
149
- if (!_this._currentlyConnectedInputText) {
150
- return;
151
- }
152
- _this._currentlyConnectedInputText._host.focusedControl = _this._currentlyConnectedInputText;
153
- switch (key) {
154
- case "\u21E7":
155
- _this.shiftState++;
156
- if (_this.shiftState > 2) {
157
- _this.shiftState = 0;
158
- }
159
- _this.applyShiftState(_this.shiftState);
160
- return;
161
- case "\u2190":
162
- _this._currentlyConnectedInputText.processKey(8);
163
- return;
164
- case "\u21B5":
165
- _this._currentlyConnectedInputText.processKey(13);
166
- return;
167
- }
168
- _this._currentlyConnectedInputText.processKey(-1, _this.shiftState ? key.toUpperCase() : key);
169
- if (_this.shiftState === 1) {
170
- _this.shiftState = 0;
171
- _this.applyShiftState(_this.shiftState);
172
- }
173
- });
174
- }
175
- this.isVisible = false;
176
- this._currentlyConnectedInputText = input;
177
- input._connectedVirtualKeyboard = this;
178
- // Events hooking
179
- var onFocusObserver = input.onFocusObservable.add(function () {
180
- _this._currentlyConnectedInputText = input;
181
- input._connectedVirtualKeyboard = _this;
182
- _this.isVisible = true;
183
- });
184
- var onBlurObserver = input.onBlurObservable.add(function () {
185
- input._connectedVirtualKeyboard = null;
186
- _this._currentlyConnectedInputText = null;
187
- _this.isVisible = false;
188
- });
189
- this._connectedInputTexts.push({
190
- input: input,
191
- onBlurObserver: onBlurObserver,
192
- onFocusObserver: onFocusObserver,
193
- });
194
- };
195
- /**
196
- * Disconnects the keyboard from connected InputText controls
197
- *
198
- * @param input optionally defines a target control, otherwise all are disconnected
199
- */
200
- VirtualKeyboard.prototype.disconnect = function (input) {
201
- var _this = this;
202
- if (input) {
203
- // .find not available on IE
204
- var filtered = this._connectedInputTexts.filter(function (a) { return a.input === input; });
205
- if (filtered.length === 1) {
206
- this._removeConnectedInputObservables(filtered[0]);
207
- this._connectedInputTexts = this._connectedInputTexts.filter(function (a) { return a.input !== input; });
208
- if (this._currentlyConnectedInputText === input) {
209
- this._currentlyConnectedInputText = null;
210
- }
211
- }
212
- }
213
- else {
214
- this._connectedInputTexts.forEach(function (connectedInputText) {
215
- _this._removeConnectedInputObservables(connectedInputText);
216
- });
217
- this._connectedInputTexts = [];
218
- }
219
- if (this._connectedInputTexts.length === 0) {
220
- this._currentlyConnectedInputText = null;
221
- this.onKeyPressObservable.remove(this._onKeyPressObserver);
222
- this._onKeyPressObserver = null;
223
- }
224
- };
225
- VirtualKeyboard.prototype._removeConnectedInputObservables = function (connectedInputText) {
226
- connectedInputText.input._connectedVirtualKeyboard = null;
227
- connectedInputText.input.onFocusObservable.remove(connectedInputText.onFocusObserver);
228
- connectedInputText.input.onBlurObservable.remove(connectedInputText.onBlurObserver);
229
- };
230
- /**
231
- * Release all resources
232
- */
233
- VirtualKeyboard.prototype.dispose = function () {
234
- _super.prototype.dispose.call(this);
235
- this.disconnect();
236
- };
237
- // Statics
238
- /**
239
- * Creates a new keyboard using a default layout
240
- *
241
- * @param name defines control name
242
- * @returns a new VirtualKeyboard
243
- */
244
- VirtualKeyboard.CreateDefaultLayout = function (name) {
245
- var returnValue = new VirtualKeyboard(name);
246
- returnValue.addKeysRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "\u2190"]);
247
- returnValue.addKeysRow(["q", "w", "e", "r", "t", "y", "u", "i", "o", "p"]);
248
- returnValue.addKeysRow(["a", "s", "d", "f", "g", "h", "j", "k", "l", ";", "'", "\u21B5"]);
249
- returnValue.addKeysRow(["\u21E7", "z", "x", "c", "v", "b", "n", "m", ",", ".", "/"]);
250
- returnValue.addKeysRow([" "], [{ width: "200px" }]);
251
- return returnValue;
252
- };
253
- return VirtualKeyboard;
254
- }(StackPanel));
255
- export { VirtualKeyboard };
256
- RegisterClass("BABYLON.GUI.VirtualKeyboard", VirtualKeyboard);
1
+ import { __extends } from "tslib";
2
+ import { Observable } from "@babylonjs/core/Misc/observable.js";
3
+ import { StackPanel } from "./stackPanel";
4
+ import { Button } from "./button";
5
+ import { RegisterClass } from "@babylonjs/core/Misc/typeStore.js";
6
+ /**
7
+ * Class used to store key control properties
8
+ */
9
+ var KeyPropertySet = /** @class */ (function () {
10
+ function KeyPropertySet() {
11
+ }
12
+ return KeyPropertySet;
13
+ }());
14
+ export { KeyPropertySet };
15
+ /**
16
+ * Class used to create virtual keyboard
17
+ */
18
+ var VirtualKeyboard = /** @class */ (function (_super) {
19
+ __extends(VirtualKeyboard, _super);
20
+ function VirtualKeyboard() {
21
+ var _this = _super !== null && _super.apply(this, arguments) || this;
22
+ /** Observable raised when a key is pressed */
23
+ _this.onKeyPressObservable = new Observable();
24
+ /** Gets or sets default key button width */
25
+ _this.defaultButtonWidth = "40px";
26
+ /** Gets or sets default key button height */
27
+ _this.defaultButtonHeight = "40px";
28
+ /** Gets or sets default key button left padding */
29
+ _this.defaultButtonPaddingLeft = "2px";
30
+ /** Gets or sets default key button right padding */
31
+ _this.defaultButtonPaddingRight = "2px";
32
+ /** Gets or sets default key button top padding */
33
+ _this.defaultButtonPaddingTop = "2px";
34
+ /** Gets or sets default key button bottom padding */
35
+ _this.defaultButtonPaddingBottom = "2px";
36
+ /** Gets or sets default key button foreground color */
37
+ _this.defaultButtonColor = "#DDD";
38
+ /** Gets or sets default key button background color */
39
+ _this.defaultButtonBackground = "#070707";
40
+ /** Gets or sets shift button foreground color */
41
+ _this.shiftButtonColor = "#7799FF";
42
+ /** Gets or sets shift button thickness*/
43
+ _this.selectedShiftThickness = 1;
44
+ /** Gets shift key state */
45
+ _this.shiftState = 0;
46
+ _this._currentlyConnectedInputText = null;
47
+ _this._connectedInputTexts = [];
48
+ _this._onKeyPressObserver = null;
49
+ return _this;
50
+ }
51
+ VirtualKeyboard.prototype._getTypeName = function () {
52
+ return "VirtualKeyboard";
53
+ };
54
+ VirtualKeyboard.prototype._createKey = function (key, propertySet) {
55
+ var _this = this;
56
+ var button = Button.CreateSimpleButton(key, key);
57
+ button.width = propertySet && propertySet.width ? propertySet.width : this.defaultButtonWidth;
58
+ button.height = propertySet && propertySet.height ? propertySet.height : this.defaultButtonHeight;
59
+ button.color = propertySet && propertySet.color ? propertySet.color : this.defaultButtonColor;
60
+ button.background = propertySet && propertySet.background ? propertySet.background : this.defaultButtonBackground;
61
+ button.paddingLeft = propertySet && propertySet.paddingLeft ? propertySet.paddingLeft : this.defaultButtonPaddingLeft;
62
+ button.paddingRight = propertySet && propertySet.paddingRight ? propertySet.paddingRight : this.defaultButtonPaddingRight;
63
+ button.paddingTop = propertySet && propertySet.paddingTop ? propertySet.paddingTop : this.defaultButtonPaddingTop;
64
+ button.paddingBottom = propertySet && propertySet.paddingBottom ? propertySet.paddingBottom : this.defaultButtonPaddingBottom;
65
+ button.thickness = 0;
66
+ button.isFocusInvisible = true;
67
+ button.shadowColor = this.shadowColor;
68
+ button.shadowBlur = this.shadowBlur;
69
+ button.shadowOffsetX = this.shadowOffsetX;
70
+ button.shadowOffsetY = this.shadowOffsetY;
71
+ button.onPointerUpObservable.add(function () {
72
+ _this.onKeyPressObservable.notifyObservers(key);
73
+ });
74
+ return button;
75
+ };
76
+ /**
77
+ * Adds a new row of keys
78
+ * @param keys defines the list of keys to add
79
+ * @param propertySets defines the associated property sets
80
+ */
81
+ VirtualKeyboard.prototype.addKeysRow = function (keys, propertySets) {
82
+ var panel = new StackPanel();
83
+ panel.isVertical = false;
84
+ panel.isFocusInvisible = true;
85
+ var maxKey = null;
86
+ for (var i = 0; i < keys.length; i++) {
87
+ var properties = null;
88
+ if (propertySets && propertySets.length === keys.length) {
89
+ properties = propertySets[i];
90
+ }
91
+ var key = this._createKey(keys[i], properties);
92
+ if (!maxKey || key.heightInPixels > maxKey.heightInPixels) {
93
+ maxKey = key;
94
+ }
95
+ panel.addControl(key);
96
+ }
97
+ panel.height = maxKey ? maxKey.height : this.defaultButtonHeight;
98
+ this.addControl(panel);
99
+ };
100
+ /**
101
+ * Set the shift key to a specific state
102
+ * @param shiftState defines the new shift state
103
+ */
104
+ VirtualKeyboard.prototype.applyShiftState = function (shiftState) {
105
+ if (!this.children) {
106
+ return;
107
+ }
108
+ for (var i = 0; i < this.children.length; i++) {
109
+ var row = this.children[i];
110
+ if (!row || !row.children) {
111
+ continue;
112
+ }
113
+ var rowContainer = row;
114
+ for (var j = 0; j < rowContainer.children.length; j++) {
115
+ var button = rowContainer.children[j];
116
+ if (!button || !button.children[0]) {
117
+ continue;
118
+ }
119
+ var button_tblock = button.children[0];
120
+ if (button_tblock.text === "\u21E7") {
121
+ button.color = shiftState ? this.shiftButtonColor : this.defaultButtonColor;
122
+ button.thickness = shiftState > 1 ? this.selectedShiftThickness : 0;
123
+ }
124
+ button_tblock.text = shiftState > 0 ? button_tblock.text.toUpperCase() : button_tblock.text.toLowerCase();
125
+ }
126
+ }
127
+ };
128
+ Object.defineProperty(VirtualKeyboard.prototype, "connectedInputText", {
129
+ /** Gets the input text control currently attached to the keyboard */
130
+ get: function () {
131
+ return this._currentlyConnectedInputText;
132
+ },
133
+ enumerable: false,
134
+ configurable: true
135
+ });
136
+ /**
137
+ * Connects the keyboard with an input text control
138
+ *
139
+ * @param input defines the target control
140
+ */
141
+ VirtualKeyboard.prototype.connect = function (input) {
142
+ var _this = this;
143
+ var inputTextAlreadyConnected = this._connectedInputTexts.some(function (a) { return a.input === input; });
144
+ if (inputTextAlreadyConnected) {
145
+ return;
146
+ }
147
+ if (this._onKeyPressObserver === null) {
148
+ this._onKeyPressObserver = this.onKeyPressObservable.add(function (key) {
149
+ if (!_this._currentlyConnectedInputText) {
150
+ return;
151
+ }
152
+ _this._currentlyConnectedInputText._host.focusedControl = _this._currentlyConnectedInputText;
153
+ switch (key) {
154
+ case "\u21E7":
155
+ _this.shiftState++;
156
+ if (_this.shiftState > 2) {
157
+ _this.shiftState = 0;
158
+ }
159
+ _this.applyShiftState(_this.shiftState);
160
+ return;
161
+ case "\u2190":
162
+ _this._currentlyConnectedInputText.processKey(8);
163
+ return;
164
+ case "\u21B5":
165
+ _this._currentlyConnectedInputText.processKey(13);
166
+ return;
167
+ }
168
+ _this._currentlyConnectedInputText.processKey(-1, _this.shiftState ? key.toUpperCase() : key);
169
+ if (_this.shiftState === 1) {
170
+ _this.shiftState = 0;
171
+ _this.applyShiftState(_this.shiftState);
172
+ }
173
+ });
174
+ }
175
+ this.isVisible = false;
176
+ this._currentlyConnectedInputText = input;
177
+ input._connectedVirtualKeyboard = this;
178
+ // Events hooking
179
+ var onFocusObserver = input.onFocusObservable.add(function () {
180
+ _this._currentlyConnectedInputText = input;
181
+ input._connectedVirtualKeyboard = _this;
182
+ _this.isVisible = true;
183
+ });
184
+ var onBlurObserver = input.onBlurObservable.add(function () {
185
+ input._connectedVirtualKeyboard = null;
186
+ _this._currentlyConnectedInputText = null;
187
+ _this.isVisible = false;
188
+ });
189
+ this._connectedInputTexts.push({
190
+ input: input,
191
+ onBlurObserver: onBlurObserver,
192
+ onFocusObserver: onFocusObserver,
193
+ });
194
+ };
195
+ /**
196
+ * Disconnects the keyboard from connected InputText controls
197
+ *
198
+ * @param input optionally defines a target control, otherwise all are disconnected
199
+ */
200
+ VirtualKeyboard.prototype.disconnect = function (input) {
201
+ var _this = this;
202
+ if (input) {
203
+ // .find not available on IE
204
+ var filtered = this._connectedInputTexts.filter(function (a) { return a.input === input; });
205
+ if (filtered.length === 1) {
206
+ this._removeConnectedInputObservables(filtered[0]);
207
+ this._connectedInputTexts = this._connectedInputTexts.filter(function (a) { return a.input !== input; });
208
+ if (this._currentlyConnectedInputText === input) {
209
+ this._currentlyConnectedInputText = null;
210
+ }
211
+ }
212
+ }
213
+ else {
214
+ this._connectedInputTexts.forEach(function (connectedInputText) {
215
+ _this._removeConnectedInputObservables(connectedInputText);
216
+ });
217
+ this._connectedInputTexts = [];
218
+ }
219
+ if (this._connectedInputTexts.length === 0) {
220
+ this._currentlyConnectedInputText = null;
221
+ this.onKeyPressObservable.remove(this._onKeyPressObserver);
222
+ this._onKeyPressObserver = null;
223
+ }
224
+ };
225
+ VirtualKeyboard.prototype._removeConnectedInputObservables = function (connectedInputText) {
226
+ connectedInputText.input._connectedVirtualKeyboard = null;
227
+ connectedInputText.input.onFocusObservable.remove(connectedInputText.onFocusObserver);
228
+ connectedInputText.input.onBlurObservable.remove(connectedInputText.onBlurObserver);
229
+ };
230
+ /**
231
+ * Release all resources
232
+ */
233
+ VirtualKeyboard.prototype.dispose = function () {
234
+ _super.prototype.dispose.call(this);
235
+ this.disconnect();
236
+ };
237
+ // Statics
238
+ /**
239
+ * Creates a new keyboard using a default layout
240
+ *
241
+ * @param name defines control name
242
+ * @returns a new VirtualKeyboard
243
+ */
244
+ VirtualKeyboard.CreateDefaultLayout = function (name) {
245
+ var returnValue = new VirtualKeyboard(name);
246
+ returnValue.addKeysRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "\u2190"]);
247
+ returnValue.addKeysRow(["q", "w", "e", "r", "t", "y", "u", "i", "o", "p"]);
248
+ returnValue.addKeysRow(["a", "s", "d", "f", "g", "h", "j", "k", "l", ";", "'", "\u21B5"]);
249
+ returnValue.addKeysRow(["\u21E7", "z", "x", "c", "v", "b", "n", "m", ",", ".", "/"]);
250
+ returnValue.addKeysRow([" "], [{ width: "200px" }]);
251
+ return returnValue;
252
+ };
253
+ return VirtualKeyboard;
254
+ }(StackPanel));
255
+ export { VirtualKeyboard };
256
+ RegisterClass("BABYLON.GUI.VirtualKeyboard", VirtualKeyboard);
257
257
  //# sourceMappingURL=virtualKeyboard.js.map
package/2D/index.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- export * from "./controls/index";
2
- export * from "./advancedDynamicTexture";
3
- export * from "./adtInstrumentation";
4
- export * from "./math2D";
5
- export * from "./measure";
6
- export * from "./multiLinePoint";
7
- export * from "./style";
8
- export * from "./valueAndUnit";
9
- export * from "./xmlLoader";
1
+ export * from "./controls/index";
2
+ export * from "./advancedDynamicTexture";
3
+ export * from "./adtInstrumentation";
4
+ export * from "./math2D";
5
+ export * from "./measure";
6
+ export * from "./multiLinePoint";
7
+ export * from "./style";
8
+ export * from "./valueAndUnit";
9
+ export * from "./xmlLoader";
package/2D/index.js CHANGED
@@ -1,10 +1,10 @@
1
- export * from "./controls/index.js";
2
- export * from "./advancedDynamicTexture.js";
3
- export * from "./adtInstrumentation.js";
4
- export * from "./math2D.js";
5
- export * from "./measure.js";
6
- export * from "./multiLinePoint.js";
7
- export * from "./style.js";
8
- export * from "./valueAndUnit.js";
9
- export * from "./xmlLoader.js";
1
+ export * from "./controls/index";
2
+ export * from "./advancedDynamicTexture";
3
+ export * from "./adtInstrumentation";
4
+ export * from "./math2D";
5
+ export * from "./measure";
6
+ export * from "./multiLinePoint";
7
+ export * from "./style";
8
+ export * from "./valueAndUnit";
9
+ export * from "./xmlLoader";
10
10
  //# sourceMappingURL=index.js.map