@babylonjs/gui 5.0.0-alpha.9 → 5.0.0-beta.4

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 (273) hide show
  1. package/2D/adtInstrumentation.js +1 -1
  2. package/2D/advancedDynamicTexture.d.ts +165 -125
  3. package/2D/advancedDynamicTexture.js +347 -183
  4. package/2D/advancedDynamicTexture.js.map +1 -1
  5. package/2D/controls/button.d.ts +8 -0
  6. package/2D/controls/button.js +33 -10
  7. package/2D/controls/button.js.map +1 -1
  8. package/2D/controls/checkbox.d.ts +2 -1
  9. package/2D/controls/checkbox.js +10 -8
  10. package/2D/controls/checkbox.js.map +1 -1
  11. package/2D/controls/colorpicker.d.ts +4 -3
  12. package/2D/controls/colorpicker.js +40 -23
  13. package/2D/controls/colorpicker.js.map +1 -1
  14. package/2D/controls/container.d.ts +16 -5
  15. package/2D/controls/container.js +91 -13
  16. package/2D/controls/container.js.map +1 -1
  17. package/2D/controls/control.d.ts +112 -44
  18. package/2D/controls/control.js +291 -129
  19. package/2D/controls/control.js.map +1 -1
  20. package/2D/controls/displayGrid.d.ts +2 -1
  21. package/2D/controls/displayGrid.js +6 -6
  22. package/2D/controls/displayGrid.js.map +1 -1
  23. package/2D/controls/ellipse.d.ts +5 -3
  24. package/2D/controls/ellipse.js +9 -5
  25. package/2D/controls/ellipse.js.map +1 -1
  26. package/2D/controls/focusableButton.d.ts +1 -0
  27. package/2D/controls/focusableButton.js +9 -6
  28. package/2D/controls/focusableButton.js.map +1 -1
  29. package/2D/controls/grid.d.ts +13 -2
  30. package/2D/controls/grid.js +108 -24
  31. package/2D/controls/grid.js.map +1 -1
  32. package/2D/controls/image.d.ts +5 -4
  33. package/2D/controls/image.js +52 -31
  34. package/2D/controls/image.js.map +1 -1
  35. package/2D/controls/index.js +29 -29
  36. package/2D/controls/inputPassword.js +4 -4
  37. package/2D/controls/inputPassword.js.map +1 -1
  38. package/2D/controls/inputText.d.ts +2 -1
  39. package/2D/controls/inputText.js +40 -14
  40. package/2D/controls/inputText.js.map +1 -1
  41. package/2D/controls/line.d.ts +3 -2
  42. package/2D/controls/line.js +8 -8
  43. package/2D/controls/line.js.map +1 -1
  44. package/2D/controls/multiLine.d.ts +4 -3
  45. package/2D/controls/multiLine.js +6 -6
  46. package/2D/controls/multiLine.js.map +1 -1
  47. package/2D/controls/radioButton.d.ts +2 -1
  48. package/2D/controls/radioButton.js +10 -7
  49. package/2D/controls/radioButton.js.map +1 -1
  50. package/2D/controls/rectangle.d.ts +8 -3
  51. package/2D/controls/rectangle.js +21 -5
  52. package/2D/controls/rectangle.js.map +1 -1
  53. package/2D/controls/scrollViewers/scrollViewer.d.ts +3 -2
  54. package/2D/controls/scrollViewers/scrollViewer.js +9 -9
  55. package/2D/controls/scrollViewers/scrollViewer.js.map +1 -1
  56. package/2D/controls/scrollViewers/scrollViewerWindow.d.ts +4 -3
  57. package/2D/controls/scrollViewers/scrollViewerWindow.js +4 -4
  58. package/2D/controls/scrollViewers/scrollViewerWindow.js.map +1 -1
  59. package/2D/controls/selector.js +8 -8
  60. package/2D/controls/selector.js.map +1 -1
  61. package/2D/controls/sliders/baseSlider.d.ts +1 -1
  62. package/2D/controls/sliders/baseSlider.js +12 -10
  63. package/2D/controls/sliders/baseSlider.js.map +1 -1
  64. package/2D/controls/sliders/imageBasedSlider.d.ts +10 -1
  65. package/2D/controls/sliders/imageBasedSlider.js +29 -5
  66. package/2D/controls/sliders/imageBasedSlider.js.map +1 -1
  67. package/2D/controls/sliders/imageScrollBar.d.ts +2 -1
  68. package/2D/controls/sliders/imageScrollBar.js +3 -3
  69. package/2D/controls/sliders/imageScrollBar.js.map +1 -1
  70. package/2D/controls/sliders/scrollBar.d.ts +2 -1
  71. package/2D/controls/sliders/scrollBar.js +3 -3
  72. package/2D/controls/sliders/scrollBar.js.map +1 -1
  73. package/2D/controls/sliders/slider.d.ts +2 -1
  74. package/2D/controls/sliders/slider.js +4 -4
  75. package/2D/controls/sliders/slider.js.map +1 -1
  76. package/2D/controls/stackPanel.d.ts +10 -3
  77. package/2D/controls/stackPanel.js +35 -13
  78. package/2D/controls/stackPanel.js.map +1 -1
  79. package/2D/controls/statics.js +3 -3
  80. package/2D/controls/statics.js.map +1 -1
  81. package/2D/controls/textBlock.d.ts +16 -9
  82. package/2D/controls/textBlock.js +75 -34
  83. package/2D/controls/textBlock.js.map +1 -1
  84. package/2D/controls/textWrapper.js +2 -2
  85. package/2D/controls/textWrapper.js.map +1 -1
  86. package/2D/controls/toggleButton.d.ts +1 -13
  87. package/2D/controls/toggleButton.js +29 -38
  88. package/2D/controls/toggleButton.js.map +1 -1
  89. package/2D/controls/virtualKeyboard.js +5 -5
  90. package/2D/controls/virtualKeyboard.js.map +1 -1
  91. package/2D/index.d.ts +1 -1
  92. package/2D/index.js +9 -9
  93. package/2D/index.js.map +1 -1
  94. package/2D/math2D.d.ts +5 -0
  95. package/2D/math2D.js +14 -2
  96. package/2D/math2D.js.map +1 -1
  97. package/2D/measure.js +1 -1
  98. package/2D/measure.js.map +1 -1
  99. package/2D/multiLinePoint.js +3 -3
  100. package/2D/style.js +2 -2
  101. package/2D/valueAndUnit.d.ts +21 -6
  102. package/2D/valueAndUnit.js +57 -13
  103. package/2D/valueAndUnit.js.map +1 -1
  104. package/2D/xmlLoader.d.ts +17 -3
  105. package/2D/xmlLoader.js +54 -15
  106. package/2D/xmlLoader.js.map +1 -1
  107. package/3D/behaviors/defaultBehavior.d.ts +73 -0
  108. package/3D/behaviors/defaultBehavior.js +122 -0
  109. package/3D/behaviors/defaultBehavior.js.map +1 -0
  110. package/3D/controls/abstractButton3D.d.ts +2 -2
  111. package/3D/controls/abstractButton3D.js +3 -3
  112. package/3D/controls/abstractButton3D.js.map +1 -1
  113. package/3D/controls/button3D.d.ts +0 -24
  114. package/3D/controls/button3D.js +15 -84
  115. package/3D/controls/button3D.js.map +1 -1
  116. package/3D/controls/container3D.js +2 -2
  117. package/3D/controls/contentDisplay3D.d.ts +30 -0
  118. package/3D/controls/contentDisplay3D.js +79 -0
  119. package/3D/controls/contentDisplay3D.js.map +1 -0
  120. package/3D/controls/control3D.d.ts +10 -7
  121. package/3D/controls/control3D.js +27 -19
  122. package/3D/controls/control3D.js.map +1 -1
  123. package/3D/controls/cylinderPanel.js +5 -5
  124. package/3D/controls/handMenu.d.ts +28 -0
  125. package/3D/controls/handMenu.js +48 -0
  126. package/3D/controls/handMenu.js.map +1 -0
  127. package/3D/controls/holographicBackplate.d.ts +48 -0
  128. package/3D/controls/holographicBackplate.js +121 -0
  129. package/3D/controls/holographicBackplate.js.map +1 -0
  130. package/3D/controls/holographicButton.d.ts +1 -1
  131. package/3D/controls/holographicButton.js +35 -31
  132. package/3D/controls/holographicButton.js.map +1 -1
  133. package/3D/controls/holographicSlate.d.ts +118 -0
  134. package/3D/controls/holographicSlate.js +366 -0
  135. package/3D/controls/holographicSlate.js.map +1 -0
  136. package/3D/controls/index.d.ts +6 -0
  137. package/3D/controls/index.js +21 -15
  138. package/3D/controls/index.js.map +1 -1
  139. package/3D/controls/meshButton3D.js +2 -2
  140. package/3D/controls/meshButton3D.js.map +1 -1
  141. package/3D/controls/nearMenu.d.ts +44 -0
  142. package/3D/controls/nearMenu.js +113 -0
  143. package/3D/controls/nearMenu.js.map +1 -0
  144. package/3D/controls/planePanel.js +3 -3
  145. package/3D/controls/scatterPanel.js +4 -4
  146. package/3D/controls/slider3D.d.ts +80 -0
  147. package/3D/controls/slider3D.js +268 -0
  148. package/3D/controls/slider3D.js.map +1 -0
  149. package/3D/controls/spherePanel.js +5 -5
  150. package/3D/controls/stackPanel3D.js +3 -3
  151. package/3D/controls/touchButton3D.d.ts +30 -21
  152. package/3D/controls/touchButton3D.js +109 -223
  153. package/3D/controls/touchButton3D.js.map +1 -1
  154. package/3D/controls/touchHolographicButton.d.ts +23 -2
  155. package/3D/controls/touchHolographicButton.js +162 -67
  156. package/3D/controls/touchHolographicButton.js.map +1 -1
  157. package/3D/controls/touchHolographicMenu.d.ts +61 -0
  158. package/3D/controls/touchHolographicMenu.js +149 -0
  159. package/3D/controls/touchHolographicMenu.js.map +1 -0
  160. package/3D/controls/touchMeshButton3D.d.ts +3 -6
  161. package/3D/controls/touchMeshButton3D.js +6 -14
  162. package/3D/controls/touchMeshButton3D.js.map +1 -1
  163. package/3D/controls/volumeBasedPanel.d.ts +1 -1
  164. package/3D/controls/volumeBasedPanel.js +5 -5
  165. package/3D/controls/volumeBasedPanel.js.map +1 -1
  166. package/3D/gizmos/gizmoHandle.d.ts +108 -0
  167. package/3D/gizmos/gizmoHandle.js +210 -0
  168. package/3D/gizmos/gizmoHandle.js.map +1 -0
  169. package/3D/gizmos/index.d.ts +2 -0
  170. package/3D/gizmos/index.js +3 -0
  171. package/3D/gizmos/index.js.map +1 -0
  172. package/3D/gizmos/slateGizmo.d.ts +59 -0
  173. package/3D/gizmos/slateGizmo.js +364 -0
  174. package/3D/gizmos/slateGizmo.js.map +1 -0
  175. package/3D/gui3DManager.d.ts +15 -2
  176. package/3D/gui3DManager.js +62 -41
  177. package/3D/gui3DManager.js.map +1 -1
  178. package/3D/index.d.ts +3 -2
  179. package/3D/index.js +5 -4
  180. package/3D/index.js.map +1 -1
  181. package/3D/materials/fluent/fluentMaterial.d.ts +90 -0
  182. package/3D/materials/fluent/fluentMaterial.js +282 -0
  183. package/3D/materials/fluent/fluentMaterial.js.map +1 -0
  184. package/3D/materials/fluent/index.d.ts +1 -0
  185. package/3D/materials/fluent/index.js +2 -0
  186. package/3D/materials/fluent/index.js.map +1 -0
  187. package/3D/materials/{shaders → fluent/shaders}/fluent.fragment.d.ts +0 -0
  188. package/3D/materials/fluent/shaders/fluent.fragment.js +7 -0
  189. package/3D/materials/fluent/shaders/fluent.fragment.js.map +1 -0
  190. package/3D/materials/{shaders → fluent/shaders}/fluent.vertex.d.ts +0 -0
  191. package/3D/materials/{shaders → fluent/shaders}/fluent.vertex.js +2 -2
  192. package/3D/materials/fluent/shaders/fluent.vertex.js.map +1 -0
  193. package/3D/materials/fluentBackplate/fluentBackplateMaterial.d.ts +154 -0
  194. package/3D/materials/fluentBackplate/fluentBackplateMaterial.js +435 -0
  195. package/3D/materials/fluentBackplate/fluentBackplateMaterial.js.map +1 -0
  196. package/3D/materials/fluentBackplate/index.d.ts +1 -0
  197. package/3D/materials/fluentBackplate/index.js +2 -0
  198. package/3D/materials/fluentBackplate/index.js.map +1 -0
  199. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.d.ts +5 -0
  200. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js +7 -0
  201. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js.map +1 -0
  202. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.d.ts +5 -0
  203. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js +7 -0
  204. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js.map +1 -0
  205. package/3D/materials/fluentButton/fluentButtonMaterial.d.ts +189 -0
  206. package/3D/materials/fluentButton/fluentButtonMaterial.js +538 -0
  207. package/3D/materials/fluentButton/fluentButtonMaterial.js.map +1 -0
  208. package/3D/materials/fluentButton/index.d.ts +1 -0
  209. package/3D/materials/fluentButton/index.js +2 -0
  210. package/3D/materials/fluentButton/index.js.map +1 -0
  211. package/3D/materials/fluentButton/shaders/fluentButton.fragment.d.ts +5 -0
  212. package/3D/materials/fluentButton/shaders/fluentButton.fragment.js +7 -0
  213. package/3D/materials/fluentButton/shaders/fluentButton.fragment.js.map +1 -0
  214. package/3D/materials/fluentButton/shaders/fluentButton.vertex.d.ts +5 -0
  215. package/3D/materials/fluentButton/shaders/fluentButton.vertex.js +7 -0
  216. package/3D/materials/fluentButton/shaders/fluentButton.vertex.js.map +1 -0
  217. package/3D/materials/fluentMaterial.d.ts +2 -88
  218. package/3D/materials/fluentMaterial.js +2 -277
  219. package/3D/materials/fluentMaterial.js.map +1 -1
  220. package/3D/materials/handle/handleMaterial.d.ts +68 -0
  221. package/3D/materials/handle/handleMaterial.js +127 -0
  222. package/3D/materials/handle/handleMaterial.js.map +1 -0
  223. package/3D/materials/handle/index.d.ts +1 -0
  224. package/3D/materials/handle/index.js +2 -0
  225. package/3D/materials/handle/index.js.map +1 -0
  226. package/3D/materials/handle/shaders/handle.fragment.d.ts +5 -0
  227. package/3D/materials/handle/shaders/handle.fragment.js +7 -0
  228. package/3D/materials/handle/shaders/handle.fragment.js.map +1 -0
  229. package/3D/materials/handle/shaders/handle.vertex.d.ts +5 -0
  230. package/3D/materials/handle/shaders/handle.vertex.js +7 -0
  231. package/3D/materials/handle/shaders/handle.vertex.js.map +1 -0
  232. package/3D/materials/index.d.ts +5 -1
  233. package/3D/materials/index.js +5 -1
  234. package/3D/materials/index.js.map +1 -1
  235. package/3D/materials/mrdl/index.d.ts +3 -0
  236. package/3D/materials/mrdl/index.js +4 -0
  237. package/3D/materials/mrdl/index.js.map +1 -0
  238. package/3D/materials/mrdl/mrdlBackplateMaterial.d.ts +147 -0
  239. package/3D/materials/mrdl/mrdlBackplateMaterial.js +410 -0
  240. package/3D/materials/mrdl/mrdlBackplateMaterial.js.map +1 -0
  241. package/3D/materials/mrdl/mrdlSliderBarMaterial.d.ts +333 -0
  242. package/3D/materials/mrdl/mrdlSliderBarMaterial.js +787 -0
  243. package/3D/materials/mrdl/mrdlSliderBarMaterial.js.map +1 -0
  244. package/3D/materials/mrdl/mrdlSliderThumbMaterial.d.ts +333 -0
  245. package/3D/materials/mrdl/mrdlSliderThumbMaterial.js +787 -0
  246. package/3D/materials/mrdl/mrdlSliderThumbMaterial.js.map +1 -0
  247. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.d.ts +5 -0
  248. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js +7 -0
  249. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js.map +1 -0
  250. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.d.ts +5 -0
  251. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js +7 -0
  252. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js.map +1 -0
  253. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.d.ts +5 -0
  254. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js +7 -0
  255. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js.map +1 -0
  256. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.d.ts +5 -0
  257. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js +7 -0
  258. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js.map +1 -0
  259. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.d.ts +5 -0
  260. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js +7 -0
  261. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js.map +1 -0
  262. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.d.ts +5 -0
  263. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js +7 -0
  264. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js.map +1 -0
  265. package/3D/vector3WithInfo.js +1 -1
  266. package/index.d.ts +2 -2
  267. package/index.js +2 -2
  268. package/index.js.map +1 -1
  269. package/legacy/legacy.js +2 -2
  270. package/package.json +114 -9
  271. package/3D/materials/shaders/fluent.fragment.js +0 -7
  272. package/3D/materials/shaders/fluent.fragment.js.map +0 -1
  273. package/3D/materials/shaders/fluent.vertex.js.map +0 -1
@@ -1,9 +1,10 @@
1
1
  import { __extends } from "tslib";
2
- import { Observable } from "@babylonjs/core/Misc/observable";
3
- import { Rectangle } from "./rectangle";
4
- import { _TypeStore } from "@babylonjs/core/Misc/typeStore";
2
+ import { Observable } from "@babylonjs/core/Misc/observable.js";
3
+ import { Rectangle } from "./rectangle.js";
4
+ import { RegisterClass } from "@babylonjs/core/Misc/typeStore.js";
5
5
  /**
6
6
  * Class used to create toggle buttons
7
+ * @since 5.0.0
7
8
  */
8
9
  var ToggleButton = /** @class */ (function (_super) {
9
10
  __extends(ToggleButton, _super);
@@ -68,26 +69,6 @@ var ToggleButton = /** @class */ (function (_super) {
68
69
  };
69
70
  return _this;
70
71
  }
71
- Object.defineProperty(ToggleButton.prototype, "image", {
72
- /**
73
- * Returns the ToggleButton's image control if it exists
74
- */
75
- get: function () {
76
- return this._image;
77
- },
78
- enumerable: false,
79
- configurable: true
80
- });
81
- Object.defineProperty(ToggleButton.prototype, "textBlock", {
82
- /**
83
- * Returns the ToggleButton's child TextBlock control if it exists
84
- */
85
- get: function () {
86
- return this._textBlock;
87
- },
88
- enumerable: false,
89
- configurable: true
90
- });
91
72
  Object.defineProperty(ToggleButton.prototype, "group", {
92
73
  /** Gets or sets group name this toggle button belongs to */
93
74
  get: function () {
@@ -179,6 +160,9 @@ var ToggleButton = /** @class */ (function (_super) {
179
160
  if (!_super.prototype._onPointerEnter.call(this, target, pi)) {
180
161
  return false;
181
162
  }
163
+ if (this.isReadOnly) {
164
+ return true;
165
+ }
182
166
  if (this._isActive) {
183
167
  if (this.pointerEnterActiveAnimation) {
184
168
  this.pointerEnterActiveAnimation();
@@ -194,14 +178,16 @@ var ToggleButton = /** @class */ (function (_super) {
194
178
  /** @hidden */
195
179
  ToggleButton.prototype._onPointerOut = function (target, pi, force) {
196
180
  if (force === void 0) { force = false; }
197
- if (this._isActive) {
198
- if (this.pointerOutActiveAnimation) {
199
- this.pointerOutActiveAnimation();
181
+ if (!this.isReadOnly) {
182
+ if (this._isActive) {
183
+ if (this.pointerOutActiveAnimation) {
184
+ this.pointerOutActiveAnimation();
185
+ }
200
186
  }
201
- }
202
- else {
203
- if (this.pointerOutInactiveAnimation) {
204
- this.pointerOutInactiveAnimation();
187
+ else {
188
+ if (this.pointerOutInactiveAnimation) {
189
+ this.pointerOutInactiveAnimation();
190
+ }
205
191
  }
206
192
  }
207
193
  _super.prototype._onPointerOut.call(this, target, pi, force);
@@ -211,6 +197,9 @@ var ToggleButton = /** @class */ (function (_super) {
211
197
  if (!_super.prototype._onPointerDown.call(this, target, coordinates, pointerId, buttonIndex, pi)) {
212
198
  return false;
213
199
  }
200
+ if (this.isReadOnly) {
201
+ return true;
202
+ }
214
203
  if (this._isActive) {
215
204
  if (this.pointerDownActiveAnimation) {
216
205
  this.pointerDownActiveAnimation();
@@ -225,14 +214,16 @@ var ToggleButton = /** @class */ (function (_super) {
225
214
  };
226
215
  /** @hidden */
227
216
  ToggleButton.prototype._onPointerUp = function (target, coordinates, pointerId, buttonIndex, notifyClick, pi) {
228
- if (this._isActive) {
229
- if (this.pointerUpActiveAnimation) {
230
- this.pointerUpActiveAnimation();
217
+ if (!this.isReadOnly) {
218
+ if (this._isActive) {
219
+ if (this.pointerUpActiveAnimation) {
220
+ this.pointerUpActiveAnimation();
221
+ }
231
222
  }
232
- }
233
- else {
234
- if (this.pointerUpInactiveAnimation) {
235
- this.pointerUpInactiveAnimation();
223
+ else {
224
+ if (this.pointerUpInactiveAnimation) {
225
+ this.pointerUpInactiveAnimation();
226
+ }
236
227
  }
237
228
  }
238
229
  _super.prototype._onPointerUp.call(this, target, coordinates, pointerId, buttonIndex, notifyClick, pi);
@@ -240,5 +231,5 @@ var ToggleButton = /** @class */ (function (_super) {
240
231
  return ToggleButton;
241
232
  }(Rectangle));
242
233
  export { ToggleButton };
243
- _TypeStore.RegisteredTypes["BABYLON.GUI.ToggleButton"] = ToggleButton;
234
+ RegisterClass("BABYLON.GUI.ToggleButton", ToggleButton);
244
235
  //# sourceMappingURL=toggleButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"toggleButton.js","sourceRoot":"","sources":["../../../../sourceES6/gui/src/2D/controls/toggleButton.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAG7D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAIxC,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAG5D;;GAEG;AACH;IAAkC,gCAAS;IA+HvC;;;;OAIG;IACH,sBAAmB,IAAa,EAAE,KAAc;QAAhD,YACI,kBAAM,IAAI,CAAC,SAwDd;QAzDkB,UAAI,GAAJ,IAAI,CAAS;QAvFhC,iDAAiD;QAC1C,iCAA2B,GAAG,IAAI,UAAU,EAAW,CAAC;QAE/D;;WAEG;QACI,+BAAyB,GAAG,KAAK,CAAC;QA+BjC,eAAS,GAAG,KAAK,CAAC;QAoDtB,KAAI,CAAC,KAAK,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,CAAC;QAEzB,KAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,KAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAE7B,IAAI,UAAU,GAAqB,IAAI,CAAC;QAExC,KAAI,CAAC,iBAAiB,GAAG;YACrB,KAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACvB,CAAC,CAAC;QACF,KAAI,CAAC,mBAAmB,GAAG;YACvB,KAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACvB,CAAC,CAAC;QAEF,KAAI,CAAC,2BAA2B,GAAG;YAC/B,UAAU,GAAG,KAAI,CAAC,KAAK,CAAC;YACxB,KAAI,CAAC,KAAK,IAAI,GAAG,CAAC;QACtB,CAAC,CAAC;QAEF,KAAI,CAAC,yBAAyB,GAAG;YAC7B,IAAI,UAAU,KAAK,IAAI,EAAE;gBACrB,KAAI,CAAC,KAAK,GAAG,UAAU,CAAC;aAC3B;QACL,CAAC,CAAC;QAEF,KAAI,CAAC,0BAA0B,GAAG;YAC9B,KAAI,CAAC,MAAM,IAAI,IAAI,CAAC;YACpB,KAAI,CAAC,MAAM,IAAI,IAAI,CAAC;QACxB,CAAC,CAAC;QAEF,KAAI,CAAC,wBAAwB,GAAG;YAC5B,KAAI,CAAC,MAAM,IAAI,IAAI,CAAC;YACpB,KAAI,CAAC,MAAM,IAAI,IAAI,CAAC;QACxB,CAAC,CAAC;QAEF,KAAI,CAAC,6BAA6B,GAAG;YACjC,UAAU,GAAG,KAAI,CAAC,KAAK,CAAC;YACxB,KAAI,CAAC,KAAK,IAAI,GAAG,CAAC;QACtB,CAAC,CAAC;QAEF,KAAI,CAAC,2BAA2B,GAAG;YAC/B,IAAI,UAAU,KAAK,IAAI,EAAE;gBACrB,KAAI,CAAC,KAAK,GAAG,UAAU,CAAC;aAC3B;QACL,CAAC,CAAC;QAEF,KAAI,CAAC,4BAA4B,GAAG;YAChC,KAAI,CAAC,MAAM,IAAI,IAAI,CAAC;YACpB,KAAI,CAAC,MAAM,IAAI,IAAI,CAAC;QACxB,CAAC,CAAC;QAEF,KAAI,CAAC,0BAA0B,GAAG;YAC9B,KAAI,CAAC,MAAM,IAAI,IAAI,CAAC;YACpB,KAAI,CAAC,MAAM,IAAI,IAAI,CAAC;QACxB,CAAC,CAAC;;IACN,CAAC;IApID,sBAAW,+BAAK;QAHhB;;WAEG;aACH;YACI,OAAO,IAAI,CAAC,MAAM,CAAC;QACvB,CAAC;;;OAAA;IAMD,sBAAW,mCAAS;QAHpB;;WAEG;aACH;YACI,OAAO,IAAI,CAAC,UAAU,CAAC;QAC3B,CAAC;;;OAAA;IAID,sBAAW,+BAAK;QADhB,4DAA4D;aAC5D;YACI,OAAO,IAAI,CAAC,MAAM,CAAC;QACvB,CAAC;aACD,UAAiB,KAAa;YAC1B,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE;gBACvB,OAAO;aACV;YAED,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACxB,CAAC;;;OAPA;IAWD,sBAAW,kCAAQ;QADnB,8EAA8E;aAC9E;YACI,OAAO,IAAI,CAAC,SAAS,CAAC;QAC1B,CAAC;aACD,UAAoB,KAAc;YAAlC,iBAsCC;;YArCG,wCAAwC;YACxC,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE;gBAC1B,OAAO;aACV;YAED,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YAEvB,iDAAiD;YACjD,IAAI,IAAI,CAAC,SAAS,EAAE;gBAChB,MAAA,IAAI,CAAC,iBAAiB,+CAAtB,IAAI,EAAuB;aAC9B;iBAAM;gBACH,MAAA,IAAI,CAAC,mBAAmB,+CAAxB,IAAI,EAAyB;aAChC;YAED,IAAI,CAAC,YAAY,EAAE,CAAC;YAEpB,IAAI,CAAC,2BAA2B,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAExD,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;gBAC7C,6EAA6E;gBAC7E,wFAAwF;gBACxF,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,UAAC,OAAO;oBACpC,sCAAsC;oBACtC,IAAI,OAAO,CAAC,QAAQ,KAAK,cAAc,EAAE;wBACrC,0CAA0C;wBAC1C,IAAI,OAAO,KAAK,KAAI,EAAE;4BAClB,OAAO;yBACV;wBAED,IAAM,WAAW,GAAiB,OAAO,CAAC;wBAC1C,2DAA2D;wBAC3D,IAAI,WAAW,CAAC,KAAK,KAAK,KAAI,CAAC,KAAK,EAAE;4BAClC,WAAW,CAAC,QAAQ,GAAG,KAAK,CAAC;yBAChC;qBACJ;gBACL,CAAC,CAAC,CAAC;aACN;QACL,CAAC;;;OAvCA;IAyGS,mCAAY,GAAtB;QACI,OAAO,cAAc,CAAC;IAC1B,CAAC;IAED,qEAAqE;IACrE,cAAc;IACP,sCAAe,GAAtB,UAAuB,CAAS,EAAE,CAAS,EAAE,EAAmB,EAAE,IAAY,EAAE,SAAiB,EAAE,WAAmB,EAAE,MAAe,EAAE,MAAe;QACpJ,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,EAAE;YACrF,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,CAAC,iBAAM,QAAQ,YAAC,CAAC,EAAE,CAAC,CAAC,EAAE;YACvB,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,IAAI,CAAC,yBAAyB,EAAE;YAChC,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE;gBAC7D,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAClC,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;oBAC9G,QAAQ,GAAG,IAAI,CAAC;oBAChB,MAAM;iBACT;aACJ;YAED,IAAI,CAAC,QAAQ,EAAE;gBACX,OAAO,KAAK,CAAC;aAChB;SACJ;QAED,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAEjF,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,cAAc;IACP,sCAAe,GAAtB,UAAuB,MAAe,EAAE,EAAmB;QACvD,IAAI,CAAC,iBAAM,eAAe,YAAC,MAAM,EAAE,EAAE,CAAC,EAAE;YACpC,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,IAAI,CAAC,2BAA2B,EAAE;gBAClC,IAAI,CAAC,2BAA2B,EAAE,CAAC;aACtC;SACJ;aAAM;YACH,IAAI,IAAI,CAAC,6BAA6B,EAAE;gBACpC,IAAI,CAAC,6BAA6B,EAAE,CAAC;aACxC;SACJ;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,cAAc;IACP,oCAAa,GAApB,UAAqB,MAAe,EAAE,EAAmB,EAAE,KAAa;QAAb,sBAAA,EAAA,aAAa;QACpE,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,IAAI,CAAC,yBAAyB,EAAE;gBAChC,IAAI,CAAC,yBAAyB,EAAE,CAAC;aACpC;SACJ;aAAM;YACH,IAAI,IAAI,CAAC,2BAA2B,EAAE;gBAClC,IAAI,CAAC,2BAA2B,EAAE,CAAC;aACtC;SACJ;QAED,iBAAM,aAAa,YAAC,MAAM,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED,cAAc;IACP,qCAAc,GAArB,UAAsB,MAAe,EAAE,WAAoB,EAAE,SAAiB,EAAE,WAAmB,EAAE,EAAmB;QACpH,IAAI,CAAC,iBAAM,cAAc,YAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE;YACxE,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,IAAI,CAAC,0BAA0B,EAAE;gBACjC,IAAI,CAAC,0BAA0B,EAAE,CAAC;aACrC;SACJ;aAAM;YACH,IAAI,IAAI,CAAC,4BAA4B,EAAE;gBACnC,IAAI,CAAC,4BAA4B,EAAE,CAAC;aACvC;SACJ;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,cAAc;IACP,mCAAY,GAAnB,UAAoB,MAAe,EAAE,WAAoB,EAAE,SAAiB,EAAE,WAAmB,EAAE,WAAoB,EAAE,EAAmB;QACxI,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,IAAI,CAAC,wBAAwB,EAAE;gBAC/B,IAAI,CAAC,wBAAwB,EAAE,CAAC;aACnC;SACJ;aAAM;YACH,IAAI,IAAI,CAAC,0BAA0B,EAAE;gBACjC,IAAI,CAAC,0BAA0B,EAAE,CAAC;aACrC;SACJ;QAED,iBAAM,YAAY,YAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;IACrF,CAAC;IACL,mBAAC;AAAD,CAAC,AArSD,CAAkC,SAAS,GAqS1C;;AAED,UAAU,CAAC,eAAe,CAAC,0BAA0B,CAAC,GAAG,YAAY,CAAC","sourcesContent":["import { Nullable } from \"@babylonjs/core/types\";\nimport { Observable } from \"@babylonjs/core/Misc/observable\";\nimport { Vector2 } from \"@babylonjs/core/Maths/math.vector\";\n\nimport { Rectangle } from \"./rectangle\";\nimport { Control } from \"./control\";\nimport { TextBlock } from \"./textBlock\";\nimport { Image } from \"./image\";\nimport { _TypeStore } from \"@babylonjs/core/Misc/typeStore\";\nimport { PointerInfoBase } from \"@babylonjs/core/Events/pointerEvents\";\n\n/**\n * Class used to create toggle buttons\n */\nexport class ToggleButton extends Rectangle {\n /**\n * Function called to generate the toActive animation\n */\n public toActiveAnimation: () => void;\n\n /**\n * Function called to generate the toInactive animation\n */\n public toInactiveAnimation: () => void;\n\n /**\n * Function called to generate a pointer enter animation when the toggle button is active.\n */\n public pointerEnterActiveAnimation: () => void;\n /**\n * Function called to generate a pointer out animation when the toggle button is active.\n */\n public pointerOutActiveAnimation: () => void;\n /**\n * Function called to generate a pointer down animation when the toggle button is active.\n */\n public pointerDownActiveAnimation: () => void;\n /**\n * Function called to generate a pointer up animation when the toggle button is active.\n */\n public pointerUpActiveAnimation: () => void;\n\n /**\n * Function called to generate a pointer enter animation when the toggle button is inactive.\n */\n public pointerEnterInactiveAnimation: () => void;\n /**\n * Function called to generate a pointer out animation when the toggle button is inactive.\n */\n public pointerOutInactiveAnimation: () => void;\n /**\n * Function called to generate a pointer down animation when the toggle button is inactive.\n */\n public pointerDownInactiveAnimation: () => void;\n /**\n * Function called to generate a pointer up animation when the toggle button is inactive.\n */\n public pointerUpInactiveAnimation: () => void;\n\n /** Observable raised when isActive is changed */\n public onIsActiveChangedObservable = new Observable<boolean>();\n\n /**\n * Gets or sets a boolean indicating that the toggle button will let internal controls handle picking instead of doing it directly using its bounding info\n */\n public delegatePickingToChildren = false;\n\n private _image: Nullable<Image>;\n /**\n * Returns the ToggleButton's image control if it exists\n */\n public get image(): Nullable<Image> {\n return this._image;\n }\n\n private _textBlock: Nullable<TextBlock>;\n /**\n * Returns the ToggleButton's child TextBlock control if it exists\n */\n public get textBlock(): Nullable<TextBlock> {\n return this._textBlock;\n }\n\n private _group: string;\n /** Gets or sets group name this toggle button belongs to */\n public get group(): string {\n return this._group;\n }\n public set group(value: string) {\n if (this._group === value) {\n return;\n }\n\n this._group = value;\n }\n\n private _isActive = false;\n /** Gets or sets a boolean indicating if the toogle button is active or not */\n public get isActive(): boolean {\n return this._isActive;\n }\n public set isActive(value: boolean) {\n // Function modeled after radioButton.ts\n if (this._isActive === value) {\n return;\n }\n\n this._isActive = value;\n\n // Update the visual state based on the new value\n if (this._isActive) {\n this.toActiveAnimation?.();\n } else {\n this.toInactiveAnimation?.();\n }\n\n this._markAsDirty();\n\n this.onIsActiveChangedObservable.notifyObservers(value);\n\n if (this._isActive && this._host && this._group) {\n // A toggle button in a group can only have 1 active element at a given time.\n // If this toggle button has a group, set other toggle buttons in the group to inactive.\n this._host.executeOnAllControls((control) => {\n // Check for control type ToggleButton\n if (control.typeName === \"ToggleButton\") {\n // Don't do anything to this toggle button\n if (control === this) {\n return;\n }\n\n const childToggle = <ToggleButton>control;\n // If toggle button is in same group, set isActive to false\n if (childToggle.group === this.group) {\n childToggle.isActive = false;\n }\n }\n });\n }\n }\n\n /**\n * Creates a new ToggleButton\n * @param name defines the control name\n * @param group defines the toggle group this toggle belongs to\n */\n constructor(public name?: string, group?: string) {\n super(name);\n this.group = group ?? \"\";\n\n this.thickness = 0;\n this.isPointerBlocker = true;\n\n let alphaStore: Nullable<number> = null;\n\n this.toActiveAnimation = () => {\n this.thickness = 1;\n };\n this.toInactiveAnimation = () => {\n this.thickness = 0;\n };\n\n this.pointerEnterActiveAnimation = () => {\n alphaStore = this.alpha;\n this.alpha -= 0.1;\n };\n\n this.pointerOutActiveAnimation = () => {\n if (alphaStore !== null) {\n this.alpha = alphaStore;\n }\n };\n\n this.pointerDownActiveAnimation = () => {\n this.scaleX -= 0.05;\n this.scaleY -= 0.05;\n };\n\n this.pointerUpActiveAnimation = () => {\n this.scaleX += 0.05;\n this.scaleY += 0.05;\n };\n\n this.pointerEnterInactiveAnimation = () => {\n alphaStore = this.alpha;\n this.alpha -= 0.1;\n };\n\n this.pointerOutInactiveAnimation = () => {\n if (alphaStore !== null) {\n this.alpha = alphaStore;\n }\n };\n\n this.pointerDownInactiveAnimation = () => {\n this.scaleX -= 0.05;\n this.scaleY -= 0.05;\n };\n\n this.pointerUpInactiveAnimation = () => {\n this.scaleX += 0.05;\n this.scaleY += 0.05;\n };\n }\n\n protected _getTypeName(): string {\n return \"ToggleButton\";\n }\n\n // While being a container, the toggle button behaves like a control.\n /** @hidden */\n public _processPicking(x: number, y: number, pi: PointerInfoBase, type: number, pointerId: number, buttonIndex: number, deltaX?: number, deltaY?: number): boolean {\n if (!this._isEnabled || !this.isHitTestVisible || !this.isVisible || this.notRenderable) {\n return false;\n }\n\n if (!super.contains(x, y)) {\n return false;\n }\n\n if (this.delegatePickingToChildren) {\n let contains = false;\n for (var index = this._children.length - 1; index >= 0; index--) {\n var child = this._children[index];\n if (child.isEnabled && child.isHitTestVisible && child.isVisible && !child.notRenderable && child.contains(x, y)) {\n contains = true;\n break;\n }\n }\n\n if (!contains) {\n return false;\n }\n }\n\n this._processObservables(type, x, y, pi, pointerId, buttonIndex, deltaX, deltaY);\n\n return true;\n }\n\n /** @hidden */\n public _onPointerEnter(target: Control, pi: PointerInfoBase): boolean {\n if (!super._onPointerEnter(target, pi)) {\n return false;\n }\n\n if (this._isActive) {\n if (this.pointerEnterActiveAnimation) {\n this.pointerEnterActiveAnimation();\n }\n } else {\n if (this.pointerEnterInactiveAnimation) {\n this.pointerEnterInactiveAnimation();\n }\n }\n\n return true;\n }\n\n /** @hidden */\n public _onPointerOut(target: Control, pi: PointerInfoBase, force = false): void {\n if (this._isActive) {\n if (this.pointerOutActiveAnimation) {\n this.pointerOutActiveAnimation();\n }\n } else {\n if (this.pointerOutInactiveAnimation) {\n this.pointerOutInactiveAnimation();\n }\n }\n\n super._onPointerOut(target, pi, force);\n }\n\n /** @hidden */\n public _onPointerDown(target: Control, coordinates: Vector2, pointerId: number, buttonIndex: number, pi: PointerInfoBase): boolean {\n if (!super._onPointerDown(target, coordinates, pointerId, buttonIndex, pi)) {\n return false;\n }\n\n if (this._isActive) {\n if (this.pointerDownActiveAnimation) {\n this.pointerDownActiveAnimation();\n }\n } else {\n if (this.pointerDownInactiveAnimation) {\n this.pointerDownInactiveAnimation();\n }\n }\n\n return true;\n }\n\n /** @hidden */\n public _onPointerUp(target: Control, coordinates: Vector2, pointerId: number, buttonIndex: number, notifyClick: boolean, pi: PointerInfoBase): void {\n if (this._isActive) {\n if (this.pointerUpActiveAnimation) {\n this.pointerUpActiveAnimation();\n }\n } else {\n if (this.pointerUpInactiveAnimation) {\n this.pointerUpInactiveAnimation();\n }\n }\n\n super._onPointerUp(target, coordinates, pointerId, buttonIndex, notifyClick, pi);\n }\n}\n\n_TypeStore.RegisteredTypes[\"BABYLON.GUI.ToggleButton\"] = ToggleButton;\n"]}
1
+ {"version":3,"file":"toggleButton.js","sourceRoot":"","sources":["../../../../sourceES6/gui/src/2D/controls/toggleButton.ts"],"names":[],"mappings":"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","sourcesContent":["import { Nullable } from \"@babylonjs/core/types\";\nimport { Observable } from \"@babylonjs/core/Misc/observable\";\nimport { Vector2 } from \"@babylonjs/core/Maths/math.vector\";\n\nimport { Rectangle } from \"./rectangle\";\nimport { Control } from \"./control\";\nimport { RegisterClass } from \"@babylonjs/core/Misc/typeStore\";\nimport { PointerInfoBase } from \"@babylonjs/core/Events/pointerEvents\";\n\n/**\n * Class used to create toggle buttons\n * @since 5.0.0\n */\nexport class ToggleButton extends Rectangle {\n /**\n * Function called to generate the toActive animation\n */\n public toActiveAnimation: () => void;\n\n /**\n * Function called to generate the toInactive animation\n */\n public toInactiveAnimation: () => void;\n\n /**\n * Function called to generate a pointer enter animation when the toggle button is active.\n */\n public pointerEnterActiveAnimation: () => void;\n /**\n * Function called to generate a pointer out animation when the toggle button is active.\n */\n public pointerOutActiveAnimation: () => void;\n /**\n * Function called to generate a pointer down animation when the toggle button is active.\n */\n public pointerDownActiveAnimation: () => void;\n /**\n * Function called to generate a pointer up animation when the toggle button is active.\n */\n public pointerUpActiveAnimation: () => void;\n\n /**\n * Function called to generate a pointer enter animation when the toggle button is inactive.\n */\n public pointerEnterInactiveAnimation: () => void;\n /**\n * Function called to generate a pointer out animation when the toggle button is inactive.\n */\n public pointerOutInactiveAnimation: () => void;\n /**\n * Function called to generate a pointer down animation when the toggle button is inactive.\n */\n public pointerDownInactiveAnimation: () => void;\n /**\n * Function called to generate a pointer up animation when the toggle button is inactive.\n */\n public pointerUpInactiveAnimation: () => void;\n\n /** Observable raised when isActive is changed */\n public onIsActiveChangedObservable = new Observable<boolean>();\n\n /**\n * Gets or sets a boolean indicating that the toggle button will let internal controls handle picking instead of doing it directly using its bounding info\n */\n public delegatePickingToChildren = false;\n\n private _group: string;\n /** Gets or sets group name this toggle button belongs to */\n public get group(): string {\n return this._group;\n }\n public set group(value: string) {\n if (this._group === value) {\n return;\n }\n\n this._group = value;\n }\n\n private _isActive = false;\n /** Gets or sets a boolean indicating if the toogle button is active or not */\n public get isActive(): boolean {\n return this._isActive;\n }\n public set isActive(value: boolean) {\n // Function modeled after radioButton.ts\n if (this._isActive === value) {\n return;\n }\n\n this._isActive = value;\n\n // Update the visual state based on the new value\n if (this._isActive) {\n this.toActiveAnimation?.();\n } else {\n this.toInactiveAnimation?.();\n }\n\n this._markAsDirty();\n\n this.onIsActiveChangedObservable.notifyObservers(value);\n\n if (this._isActive && this._host && this._group) {\n // A toggle button in a group can only have 1 active element at a given time.\n // If this toggle button has a group, set other toggle buttons in the group to inactive.\n this._host.executeOnAllControls((control) => {\n // Check for control type ToggleButton\n if (control.typeName === \"ToggleButton\") {\n // Don't do anything to this toggle button\n if (control === this) {\n return;\n }\n\n const childToggle = <ToggleButton>control;\n // If toggle button is in same group, set isActive to false\n if (childToggle.group === this.group) {\n childToggle.isActive = false;\n }\n }\n });\n }\n }\n\n /**\n * Creates a new ToggleButton\n * @param name defines the control name\n * @param group defines the toggle group this toggle belongs to\n */\n constructor(public name?: string, group?: string) {\n super(name);\n this.group = group ?? \"\";\n\n this.thickness = 0;\n this.isPointerBlocker = true;\n\n let alphaStore: Nullable<number> = null;\n\n this.toActiveAnimation = () => {\n this.thickness = 1;\n };\n this.toInactiveAnimation = () => {\n this.thickness = 0;\n };\n\n this.pointerEnterActiveAnimation = () => {\n alphaStore = this.alpha;\n this.alpha -= 0.1;\n };\n\n this.pointerOutActiveAnimation = () => {\n if (alphaStore !== null) {\n this.alpha = alphaStore;\n }\n };\n\n this.pointerDownActiveAnimation = () => {\n this.scaleX -= 0.05;\n this.scaleY -= 0.05;\n };\n\n this.pointerUpActiveAnimation = () => {\n this.scaleX += 0.05;\n this.scaleY += 0.05;\n };\n\n this.pointerEnterInactiveAnimation = () => {\n alphaStore = this.alpha;\n this.alpha -= 0.1;\n };\n\n this.pointerOutInactiveAnimation = () => {\n if (alphaStore !== null) {\n this.alpha = alphaStore;\n }\n };\n\n this.pointerDownInactiveAnimation = () => {\n this.scaleX -= 0.05;\n this.scaleY -= 0.05;\n };\n\n this.pointerUpInactiveAnimation = () => {\n this.scaleX += 0.05;\n this.scaleY += 0.05;\n };\n }\n\n protected _getTypeName(): string {\n return \"ToggleButton\";\n }\n\n // While being a container, the toggle button behaves like a control.\n /** @hidden */\n public _processPicking(x: number, y: number, pi: PointerInfoBase, type: number, pointerId: number, buttonIndex: number, deltaX?: number, deltaY?: number): boolean {\n if (!this._isEnabled || !this.isHitTestVisible || !this.isVisible || this.notRenderable) {\n return false;\n }\n\n if (!super.contains(x, y)) {\n return false;\n }\n\n if (this.delegatePickingToChildren) {\n let contains = false;\n for (var index = this._children.length - 1; index >= 0; index--) {\n var child = this._children[index];\n if (child.isEnabled && child.isHitTestVisible && child.isVisible && !child.notRenderable && child.contains(x, y)) {\n contains = true;\n break;\n }\n }\n\n if (!contains) {\n return false;\n }\n }\n\n this._processObservables(type, x, y, pi, pointerId, buttonIndex, deltaX, deltaY);\n\n return true;\n }\n\n /** @hidden */\n public _onPointerEnter(target: Control, pi: PointerInfoBase): boolean {\n if (!super._onPointerEnter(target, pi)) {\n return false;\n }\n\n if (this.isReadOnly) {\n return true;\n }\n\n if (this._isActive) {\n if (this.pointerEnterActiveAnimation) {\n this.pointerEnterActiveAnimation();\n }\n } else {\n if (this.pointerEnterInactiveAnimation) {\n this.pointerEnterInactiveAnimation();\n }\n }\n\n return true;\n }\n\n /** @hidden */\n public _onPointerOut(target: Control, pi: PointerInfoBase, force = false): void {\n\n if (!this.isReadOnly) {\n if (this._isActive) {\n if (this.pointerOutActiveAnimation) {\n this.pointerOutActiveAnimation();\n }\n } else {\n if (this.pointerOutInactiveAnimation) {\n this.pointerOutInactiveAnimation();\n }\n }\n }\n\n super._onPointerOut(target, pi, force);\n }\n\n /** @hidden */\n public _onPointerDown(target: Control, coordinates: Vector2, pointerId: number, buttonIndex: number, pi: PointerInfoBase): boolean {\n if (!super._onPointerDown(target, coordinates, pointerId, buttonIndex, pi)) {\n return false;\n }\n\n if (this.isReadOnly) {\n return true;\n }\n\n if (this._isActive) {\n if (this.pointerDownActiveAnimation) {\n this.pointerDownActiveAnimation();\n }\n } else {\n if (this.pointerDownInactiveAnimation) {\n this.pointerDownInactiveAnimation();\n }\n }\n\n return true;\n }\n\n /** @hidden */\n public _onPointerUp(target: Control, coordinates: Vector2, pointerId: number, buttonIndex: number, notifyClick: boolean, pi: PointerInfoBase): void {\n if (!this.isReadOnly) {\n if (this._isActive) {\n if (this.pointerUpActiveAnimation) {\n this.pointerUpActiveAnimation();\n }\n } else {\n if (this.pointerUpInactiveAnimation) {\n this.pointerUpInactiveAnimation();\n }\n }\n }\n\n super._onPointerUp(target, coordinates, pointerId, buttonIndex, notifyClick, pi);\n }\n}\n\nRegisterClass(\"BABYLON.GUI.ToggleButton\", ToggleButton);\n"]}
@@ -1,8 +1,8 @@
1
1
  import { __extends } from "tslib";
2
- import { Observable } from "@babylonjs/core/Misc/observable";
3
- import { StackPanel } from "./stackPanel";
4
- import { Button } from "./button";
5
- import { _TypeStore } from '@babylonjs/core/Misc/typeStore';
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
6
  /**
7
7
  * Class used to store key control properties
8
8
  */
@@ -253,5 +253,5 @@ var VirtualKeyboard = /** @class */ (function (_super) {
253
253
  return VirtualKeyboard;
254
254
  }(StackPanel));
255
255
  export { VirtualKeyboard };
256
- _TypeStore.RegisteredTypes["BABYLON.GUI.VirtualKeyboard"] = VirtualKeyboard;
256
+ RegisterClass("BABYLON.GUI.VirtualKeyboard", VirtualKeyboard);
257
257
  //# sourceMappingURL=virtualKeyboard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"virtualKeyboard.js","sourceRoot":"","sources":["../../../../sourceES6/gui/src/2D/controls/virtualKeyboard.ts"],"names":[],"mappings":"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","sourcesContent":["import { Nullable } from \"@babylonjs/core/types\";\r\nimport { Observable, Observer } from \"@babylonjs/core/Misc/observable\";\r\n\r\nimport { StackPanel } from \"./stackPanel\";\r\nimport { Button } from \"./button\";\r\nimport { Container } from \"./container\";\r\nimport { TextBlock } from \"./textBlock\";\r\nimport { InputText } from \"./inputText\";\r\nimport { _TypeStore } from '@babylonjs/core/Misc/typeStore';\r\n\r\n/**\r\n * Class used to store key control properties\r\n */\r\nexport class KeyPropertySet {\r\n /** Width */\r\n width?: string;\r\n /** Height */\r\n height?: string;\r\n /** Left padding */\r\n paddingLeft?: string;\r\n /** Right padding */\r\n paddingRight?: string;\r\n /** Top padding */\r\n paddingTop?: string;\r\n /** Bottom padding */\r\n paddingBottom?: string;\r\n /** Foreground color */\r\n color?: string;\r\n /** Background color */\r\n background?: string;\r\n}\r\n\r\ntype ConnectedInputText = {\r\n input: InputText,\r\n onFocusObserver: Nullable<Observer<InputText>>,\r\n onBlurObserver: Nullable<Observer<InputText>>\r\n};\r\n\r\n/**\r\n * Class used to create virtual keyboard\r\n */\r\nexport class VirtualKeyboard extends StackPanel {\r\n /** Observable raised when a key is pressed */\r\n public onKeyPressObservable = new Observable<string>();\r\n\r\n /** Gets or sets default key button width */\r\n public defaultButtonWidth = \"40px\";\r\n /** Gets or sets default key button height */\r\n public defaultButtonHeight = \"40px\";\r\n\r\n /** Gets or sets default key button left padding */\r\n public defaultButtonPaddingLeft = \"2px\";\r\n /** Gets or sets default key button right padding */\r\n public defaultButtonPaddingRight = \"2px\";\r\n /** Gets or sets default key button top padding */\r\n public defaultButtonPaddingTop = \"2px\";\r\n /** Gets or sets default key button bottom padding */\r\n public defaultButtonPaddingBottom = \"2px\";\r\n\r\n /** Gets or sets default key button foreground color */\r\n public defaultButtonColor = \"#DDD\";\r\n /** Gets or sets default key button background color */\r\n public defaultButtonBackground = \"#070707\";\r\n\r\n /** Gets or sets shift button foreground color */\r\n public shiftButtonColor = \"#7799FF\";\r\n /** Gets or sets shift button thickness*/\r\n public selectedShiftThickness = 1;\r\n\r\n /** Gets shift key state */\r\n public shiftState = 0;\r\n\r\n protected _getTypeName(): string {\r\n return \"VirtualKeyboard\";\r\n }\r\n\r\n private _createKey(key: string, propertySet: Nullable<KeyPropertySet>) {\r\n var button = Button.CreateSimpleButton(key, key);\r\n\r\n button.width = propertySet && propertySet.width ? propertySet.width : this.defaultButtonWidth;\r\n button.height = propertySet && propertySet.height ? propertySet.height : this.defaultButtonHeight;\r\n button.color = propertySet && propertySet.color ? propertySet.color : this.defaultButtonColor;\r\n button.background = propertySet && propertySet.background ? propertySet.background : this.defaultButtonBackground;\r\n button.paddingLeft = propertySet && propertySet.paddingLeft ? propertySet.paddingLeft : this.defaultButtonPaddingLeft;\r\n button.paddingRight = propertySet && propertySet.paddingRight ? propertySet.paddingRight : this.defaultButtonPaddingRight;\r\n button.paddingTop = propertySet && propertySet.paddingTop ? propertySet.paddingTop : this.defaultButtonPaddingTop;\r\n button.paddingBottom = propertySet && propertySet.paddingBottom ? propertySet.paddingBottom : this.defaultButtonPaddingBottom;\r\n\r\n button.thickness = 0;\r\n button.isFocusInvisible = true;\r\n\r\n button.shadowColor = this.shadowColor;\r\n button.shadowBlur = this.shadowBlur;\r\n button.shadowOffsetX = this.shadowOffsetX;\r\n button.shadowOffsetY = this.shadowOffsetY;\r\n\r\n button.onPointerUpObservable.add(() => {\r\n this.onKeyPressObservable.notifyObservers(key);\r\n });\r\n\r\n return button;\r\n }\r\n\r\n /**\r\n * Adds a new row of keys\r\n * @param keys defines the list of keys to add\r\n * @param propertySets defines the associated property sets\r\n */\r\n public addKeysRow(keys: Array<string>, propertySets?: Array<KeyPropertySet>): void {\r\n let panel = new StackPanel();\r\n panel.isVertical = false;\r\n panel.isFocusInvisible = true;\r\n\r\n var maxKey: Nullable<Button> = null;\r\n for (var i = 0; i < keys.length; i++) {\r\n let properties = null;\r\n\r\n if (propertySets && propertySets.length === keys.length) {\r\n properties = propertySets[i];\r\n }\r\n\r\n var key = this._createKey(keys[i], properties);\r\n if (!maxKey || key.heightInPixels > maxKey.heightInPixels) {\r\n maxKey = key;\r\n }\r\n\r\n panel.addControl(key);\r\n }\r\n\r\n panel.height = maxKey ? maxKey.height : this.defaultButtonHeight;\r\n\r\n this.addControl(panel);\r\n }\r\n\r\n /**\r\n * Set the shift key to a specific state\r\n * @param shiftState defines the new shift state\r\n */\r\n public applyShiftState(shiftState: number): void {\r\n if (!this.children) {\r\n return;\r\n }\r\n\r\n for (var i = 0; i < this.children.length; i++) {\r\n let row = this.children[i];\r\n if (!row || !(<Container>row).children) {\r\n continue;\r\n }\r\n\r\n let rowContainer = <Container>row;\r\n for (var j = 0; j < rowContainer.children.length; j++) {\r\n let button = rowContainer.children[j] as Button;\r\n\r\n if (!button || !button.children[0]) {\r\n continue;\r\n }\r\n\r\n let button_tblock = button.children[0] as TextBlock;\r\n\r\n if (button_tblock.text === \"\\u21E7\") {\r\n button.color = (shiftState ? this.shiftButtonColor : this.defaultButtonColor);\r\n button.thickness = (shiftState > 1 ? this.selectedShiftThickness : 0);\r\n }\r\n\r\n button_tblock.text = (shiftState > 0 ? button_tblock.text.toUpperCase() : button_tblock.text.toLowerCase());\r\n }\r\n }\r\n }\r\n\r\n private _currentlyConnectedInputText: Nullable<InputText> = null;\r\n private _connectedInputTexts: ConnectedInputText[] = [];\r\n private _onKeyPressObserver: Nullable<Observer<string>> = null;\r\n\r\n /** Gets the input text control currently attached to the keyboard */\r\n public get connectedInputText(): Nullable<InputText> {\r\n return this._currentlyConnectedInputText;\r\n }\r\n\r\n /**\r\n * Connects the keyboard with an input text control\r\n *\r\n * @param input defines the target control\r\n */\r\n public connect(input: InputText): void {\r\n const inputTextAlreadyConnected = this._connectedInputTexts.some((a) => a.input === input);\r\n if (inputTextAlreadyConnected) {\r\n return;\r\n }\r\n\r\n if (this._onKeyPressObserver === null) {\r\n this._onKeyPressObserver = this.onKeyPressObservable.add((key) => {\r\n if (!this._currentlyConnectedInputText) {\r\n return;\r\n }\r\n\r\n this._currentlyConnectedInputText._host.focusedControl = this._currentlyConnectedInputText;\r\n\r\n switch (key) {\r\n case \"\\u21E7\":\r\n this.shiftState++;\r\n if (this.shiftState > 2) {\r\n this.shiftState = 0;\r\n }\r\n this.applyShiftState(this.shiftState);\r\n return;\r\n case \"\\u2190\":\r\n this._currentlyConnectedInputText.processKey(8);\r\n return;\r\n case \"\\u21B5\":\r\n this._currentlyConnectedInputText.processKey(13);\r\n return;\r\n }\r\n this._currentlyConnectedInputText.processKey(-1, (this.shiftState ? key.toUpperCase() : key));\r\n\r\n if (this.shiftState === 1) {\r\n this.shiftState = 0;\r\n this.applyShiftState(this.shiftState);\r\n }\r\n });\r\n }\r\n\r\n this.isVisible = false;\r\n this._currentlyConnectedInputText = input;\r\n input._connectedVirtualKeyboard = this;\r\n\r\n // Events hooking\r\n const onFocusObserver: Nullable<Observer<InputText>> = input.onFocusObservable.add(() => {\r\n this._currentlyConnectedInputText = input;\r\n input._connectedVirtualKeyboard = this;\r\n this.isVisible = true;\r\n });\r\n\r\n const onBlurObserver: Nullable<Observer<InputText>> = input.onBlurObservable.add(() => {\r\n input._connectedVirtualKeyboard = null;\r\n this._currentlyConnectedInputText = null;\r\n this.isVisible = false;\r\n });\r\n\r\n this._connectedInputTexts.push({\r\n input,\r\n onBlurObserver,\r\n onFocusObserver\r\n });\r\n }\r\n\r\n /**\r\n * Disconnects the keyboard from connected InputText controls\r\n *\r\n * @param input optionally defines a target control, otherwise all are disconnected\r\n */\r\n public disconnect(input?: InputText): void {\r\n if (input) {\r\n // .find not available on IE\r\n let filtered = this._connectedInputTexts.filter((a) => a.input === input);\r\n if (filtered.length === 1) {\r\n this._removeConnectedInputObservables(filtered[0]);\r\n\r\n this._connectedInputTexts = this._connectedInputTexts.filter((a) => a.input !== input);\r\n if (this._currentlyConnectedInputText === input) {\r\n this._currentlyConnectedInputText = null;\r\n }\r\n }\r\n } else {\r\n this._connectedInputTexts.forEach((connectedInputText: ConnectedInputText) => {\r\n this._removeConnectedInputObservables(connectedInputText);\r\n });\r\n this._connectedInputTexts = [];\r\n }\r\n\r\n if (this._connectedInputTexts.length === 0) {\r\n this._currentlyConnectedInputText = null;\r\n this.onKeyPressObservable.remove(this._onKeyPressObserver);\r\n this._onKeyPressObserver = null;\r\n }\r\n }\r\n\r\n private _removeConnectedInputObservables(connectedInputText: ConnectedInputText): void {\r\n connectedInputText.input._connectedVirtualKeyboard = null;\r\n connectedInputText.input.onFocusObservable.remove(connectedInputText.onFocusObserver);\r\n connectedInputText.input.onBlurObservable.remove(connectedInputText.onBlurObserver);\r\n }\r\n\r\n /**\r\n * Release all resources\r\n */\r\n public dispose(): void {\r\n super.dispose();\r\n\r\n this.disconnect();\r\n }\r\n\r\n // Statics\r\n\r\n /**\r\n * Creates a new keyboard using a default layout\r\n *\r\n * @param name defines control name\r\n * @returns a new VirtualKeyboard\r\n */\r\n public static CreateDefaultLayout(name?: string): VirtualKeyboard {\r\n let returnValue = new VirtualKeyboard(name);\r\n\r\n returnValue.addKeysRow([\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"0\", \"\\u2190\"]);\r\n returnValue.addKeysRow([\"q\", \"w\", \"e\", \"r\", \"t\", \"y\", \"u\", \"i\", \"o\", \"p\"]);\r\n returnValue.addKeysRow([\"a\", \"s\", \"d\", \"f\", \"g\", \"h\", \"j\", \"k\", \"l\", \";\", \"'\", \"\\u21B5\"]);\r\n returnValue.addKeysRow([\"\\u21E7\", \"z\", \"x\", \"c\", \"v\", \"b\", \"n\", \"m\", \",\", \".\", \"/\"]);\r\n returnValue.addKeysRow([\" \"], [{ width: \"200px\" }]);\r\n\r\n return returnValue;\r\n }\r\n}\r\n\r\n_TypeStore.RegisteredTypes[\"BABYLON.GUI.VirtualKeyboard\"] = VirtualKeyboard;\r\n"]}
1
+ {"version":3,"file":"virtualKeyboard.js","sourceRoot":"","sources":["../../../../sourceES6/gui/src/2D/controls/virtualKeyboard.ts"],"names":[],"mappings":"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","sourcesContent":["import { Nullable } from \"@babylonjs/core/types\";\r\nimport { Observable, Observer } from \"@babylonjs/core/Misc/observable\";\r\n\r\nimport { StackPanel } from \"./stackPanel\";\r\nimport { Button } from \"./button\";\r\nimport { Container } from \"./container\";\r\nimport { TextBlock } from \"./textBlock\";\r\nimport { InputText } from \"./inputText\";\r\nimport { RegisterClass } from '@babylonjs/core/Misc/typeStore';\r\n\r\n/**\r\n * Class used to store key control properties\r\n */\r\nexport class KeyPropertySet {\r\n /** Width */\r\n width?: string;\r\n /** Height */\r\n height?: string;\r\n /** Left padding */\r\n paddingLeft?: string;\r\n /** Right padding */\r\n paddingRight?: string;\r\n /** Top padding */\r\n paddingTop?: string;\r\n /** Bottom padding */\r\n paddingBottom?: string;\r\n /** Foreground color */\r\n color?: string;\r\n /** Background color */\r\n background?: string;\r\n}\r\n\r\ntype ConnectedInputText = {\r\n input: InputText,\r\n onFocusObserver: Nullable<Observer<InputText>>,\r\n onBlurObserver: Nullable<Observer<InputText>>\r\n};\r\n\r\n/**\r\n * Class used to create virtual keyboard\r\n */\r\nexport class VirtualKeyboard extends StackPanel {\r\n /** Observable raised when a key is pressed */\r\n public onKeyPressObservable = new Observable<string>();\r\n\r\n /** Gets or sets default key button width */\r\n public defaultButtonWidth = \"40px\";\r\n /** Gets or sets default key button height */\r\n public defaultButtonHeight = \"40px\";\r\n\r\n /** Gets or sets default key button left padding */\r\n public defaultButtonPaddingLeft = \"2px\";\r\n /** Gets or sets default key button right padding */\r\n public defaultButtonPaddingRight = \"2px\";\r\n /** Gets or sets default key button top padding */\r\n public defaultButtonPaddingTop = \"2px\";\r\n /** Gets or sets default key button bottom padding */\r\n public defaultButtonPaddingBottom = \"2px\";\r\n\r\n /** Gets or sets default key button foreground color */\r\n public defaultButtonColor = \"#DDD\";\r\n /** Gets or sets default key button background color */\r\n public defaultButtonBackground = \"#070707\";\r\n\r\n /** Gets or sets shift button foreground color */\r\n public shiftButtonColor = \"#7799FF\";\r\n /** Gets or sets shift button thickness*/\r\n public selectedShiftThickness = 1;\r\n\r\n /** Gets shift key state */\r\n public shiftState = 0;\r\n\r\n protected _getTypeName(): string {\r\n return \"VirtualKeyboard\";\r\n }\r\n\r\n private _createKey(key: string, propertySet: Nullable<KeyPropertySet>) {\r\n var button = Button.CreateSimpleButton(key, key);\r\n\r\n button.width = propertySet && propertySet.width ? propertySet.width : this.defaultButtonWidth;\r\n button.height = propertySet && propertySet.height ? propertySet.height : this.defaultButtonHeight;\r\n button.color = propertySet && propertySet.color ? propertySet.color : this.defaultButtonColor;\r\n button.background = propertySet && propertySet.background ? propertySet.background : this.defaultButtonBackground;\r\n button.paddingLeft = propertySet && propertySet.paddingLeft ? propertySet.paddingLeft : this.defaultButtonPaddingLeft;\r\n button.paddingRight = propertySet && propertySet.paddingRight ? propertySet.paddingRight : this.defaultButtonPaddingRight;\r\n button.paddingTop = propertySet && propertySet.paddingTop ? propertySet.paddingTop : this.defaultButtonPaddingTop;\r\n button.paddingBottom = propertySet && propertySet.paddingBottom ? propertySet.paddingBottom : this.defaultButtonPaddingBottom;\r\n\r\n button.thickness = 0;\r\n button.isFocusInvisible = true;\r\n\r\n button.shadowColor = this.shadowColor;\r\n button.shadowBlur = this.shadowBlur;\r\n button.shadowOffsetX = this.shadowOffsetX;\r\n button.shadowOffsetY = this.shadowOffsetY;\r\n\r\n button.onPointerUpObservable.add(() => {\r\n this.onKeyPressObservable.notifyObservers(key);\r\n });\r\n\r\n return button;\r\n }\r\n\r\n /**\r\n * Adds a new row of keys\r\n * @param keys defines the list of keys to add\r\n * @param propertySets defines the associated property sets\r\n */\r\n public addKeysRow(keys: Array<string>, propertySets?: Array<KeyPropertySet>): void {\r\n let panel = new StackPanel();\r\n panel.isVertical = false;\r\n panel.isFocusInvisible = true;\r\n\r\n var maxKey: Nullable<Button> = null;\r\n for (var i = 0; i < keys.length; i++) {\r\n let properties = null;\r\n\r\n if (propertySets && propertySets.length === keys.length) {\r\n properties = propertySets[i];\r\n }\r\n\r\n var key = this._createKey(keys[i], properties);\r\n if (!maxKey || key.heightInPixels > maxKey.heightInPixels) {\r\n maxKey = key;\r\n }\r\n\r\n panel.addControl(key);\r\n }\r\n\r\n panel.height = maxKey ? maxKey.height : this.defaultButtonHeight;\r\n\r\n this.addControl(panel);\r\n }\r\n\r\n /**\r\n * Set the shift key to a specific state\r\n * @param shiftState defines the new shift state\r\n */\r\n public applyShiftState(shiftState: number): void {\r\n if (!this.children) {\r\n return;\r\n }\r\n\r\n for (var i = 0; i < this.children.length; i++) {\r\n let row = this.children[i];\r\n if (!row || !(<Container>row).children) {\r\n continue;\r\n }\r\n\r\n let rowContainer = <Container>row;\r\n for (var j = 0; j < rowContainer.children.length; j++) {\r\n let button = rowContainer.children[j] as Button;\r\n\r\n if (!button || !button.children[0]) {\r\n continue;\r\n }\r\n\r\n let button_tblock = button.children[0] as TextBlock;\r\n\r\n if (button_tblock.text === \"\\u21E7\") {\r\n button.color = (shiftState ? this.shiftButtonColor : this.defaultButtonColor);\r\n button.thickness = (shiftState > 1 ? this.selectedShiftThickness : 0);\r\n }\r\n\r\n button_tblock.text = (shiftState > 0 ? button_tblock.text.toUpperCase() : button_tblock.text.toLowerCase());\r\n }\r\n }\r\n }\r\n\r\n private _currentlyConnectedInputText: Nullable<InputText> = null;\r\n private _connectedInputTexts: ConnectedInputText[] = [];\r\n private _onKeyPressObserver: Nullable<Observer<string>> = null;\r\n\r\n /** Gets the input text control currently attached to the keyboard */\r\n public get connectedInputText(): Nullable<InputText> {\r\n return this._currentlyConnectedInputText;\r\n }\r\n\r\n /**\r\n * Connects the keyboard with an input text control\r\n *\r\n * @param input defines the target control\r\n */\r\n public connect(input: InputText): void {\r\n const inputTextAlreadyConnected = this._connectedInputTexts.some((a) => a.input === input);\r\n if (inputTextAlreadyConnected) {\r\n return;\r\n }\r\n\r\n if (this._onKeyPressObserver === null) {\r\n this._onKeyPressObserver = this.onKeyPressObservable.add((key) => {\r\n if (!this._currentlyConnectedInputText) {\r\n return;\r\n }\r\n\r\n this._currentlyConnectedInputText._host.focusedControl = this._currentlyConnectedInputText;\r\n\r\n switch (key) {\r\n case \"\\u21E7\":\r\n this.shiftState++;\r\n if (this.shiftState > 2) {\r\n this.shiftState = 0;\r\n }\r\n this.applyShiftState(this.shiftState);\r\n return;\r\n case \"\\u2190\":\r\n this._currentlyConnectedInputText.processKey(8);\r\n return;\r\n case \"\\u21B5\":\r\n this._currentlyConnectedInputText.processKey(13);\r\n return;\r\n }\r\n this._currentlyConnectedInputText.processKey(-1, (this.shiftState ? key.toUpperCase() : key));\r\n\r\n if (this.shiftState === 1) {\r\n this.shiftState = 0;\r\n this.applyShiftState(this.shiftState);\r\n }\r\n });\r\n }\r\n\r\n this.isVisible = false;\r\n this._currentlyConnectedInputText = input;\r\n input._connectedVirtualKeyboard = this;\r\n\r\n // Events hooking\r\n const onFocusObserver: Nullable<Observer<InputText>> = input.onFocusObservable.add(() => {\r\n this._currentlyConnectedInputText = input;\r\n input._connectedVirtualKeyboard = this;\r\n this.isVisible = true;\r\n });\r\n\r\n const onBlurObserver: Nullable<Observer<InputText>> = input.onBlurObservable.add(() => {\r\n input._connectedVirtualKeyboard = null;\r\n this._currentlyConnectedInputText = null;\r\n this.isVisible = false;\r\n });\r\n\r\n this._connectedInputTexts.push({\r\n input,\r\n onBlurObserver,\r\n onFocusObserver\r\n });\r\n }\r\n\r\n /**\r\n * Disconnects the keyboard from connected InputText controls\r\n *\r\n * @param input optionally defines a target control, otherwise all are disconnected\r\n */\r\n public disconnect(input?: InputText): void {\r\n if (input) {\r\n // .find not available on IE\r\n let filtered = this._connectedInputTexts.filter((a) => a.input === input);\r\n if (filtered.length === 1) {\r\n this._removeConnectedInputObservables(filtered[0]);\r\n\r\n this._connectedInputTexts = this._connectedInputTexts.filter((a) => a.input !== input);\r\n if (this._currentlyConnectedInputText === input) {\r\n this._currentlyConnectedInputText = null;\r\n }\r\n }\r\n } else {\r\n this._connectedInputTexts.forEach((connectedInputText: ConnectedInputText) => {\r\n this._removeConnectedInputObservables(connectedInputText);\r\n });\r\n this._connectedInputTexts = [];\r\n }\r\n\r\n if (this._connectedInputTexts.length === 0) {\r\n this._currentlyConnectedInputText = null;\r\n this.onKeyPressObservable.remove(this._onKeyPressObserver);\r\n this._onKeyPressObserver = null;\r\n }\r\n }\r\n\r\n private _removeConnectedInputObservables(connectedInputText: ConnectedInputText): void {\r\n connectedInputText.input._connectedVirtualKeyboard = null;\r\n connectedInputText.input.onFocusObservable.remove(connectedInputText.onFocusObserver);\r\n connectedInputText.input.onBlurObservable.remove(connectedInputText.onBlurObserver);\r\n }\r\n\r\n /**\r\n * Release all resources\r\n */\r\n public dispose(): void {\r\n super.dispose();\r\n\r\n this.disconnect();\r\n }\r\n\r\n // Statics\r\n\r\n /**\r\n * Creates a new keyboard using a default layout\r\n *\r\n * @param name defines control name\r\n * @returns a new VirtualKeyboard\r\n */\r\n public static CreateDefaultLayout(name?: string): VirtualKeyboard {\r\n let returnValue = new VirtualKeyboard(name);\r\n\r\n returnValue.addKeysRow([\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"0\", \"\\u2190\"]);\r\n returnValue.addKeysRow([\"q\", \"w\", \"e\", \"r\", \"t\", \"y\", \"u\", \"i\", \"o\", \"p\"]);\r\n returnValue.addKeysRow([\"a\", \"s\", \"d\", \"f\", \"g\", \"h\", \"j\", \"k\", \"l\", \";\", \"'\", \"\\u21B5\"]);\r\n returnValue.addKeysRow([\"\\u21E7\", \"z\", \"x\", \"c\", \"v\", \"b\", \"n\", \"m\", \",\", \".\", \"/\"]);\r\n returnValue.addKeysRow([\" \"], [{ width: \"200px\" }]);\r\n\r\n return returnValue;\r\n }\r\n}\r\n\r\nRegisterClass(\"BABYLON.GUI.VirtualKeyboard\", VirtualKeyboard);\r\n"]}
package/2D/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export * from "./controls";
1
+ export * from "./controls/index";
2
2
  export * from "./advancedDynamicTexture";
3
3
  export * from "./adtInstrumentation";
4
4
  export * from "./math2D";
package/2D/index.js CHANGED
@@ -1,10 +1,10 @@
1
- export * from "./controls";
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.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";
10
10
  //# sourceMappingURL=index.js.map
package/2D/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../sourceES6/gui/src/2D/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAE3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC","sourcesContent":["export * from \"./controls\";\r\n\r\nexport * from \"./advancedDynamicTexture\";\r\nexport * from \"./adtInstrumentation\";\r\nexport * from \"./math2D\";\r\nexport * from \"./measure\";\r\nexport * from \"./multiLinePoint\";\r\nexport * from \"./style\";\r\nexport * from \"./valueAndUnit\";\r\nexport * from \"./xmlLoader\";"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../sourceES6/gui/src/2D/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AAEjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC","sourcesContent":["export * from \"./controls/index\";\r\n\r\nexport * from \"./advancedDynamicTexture\";\r\nexport * from \"./adtInstrumentation\";\r\nexport * from \"./math2D\";\r\nexport * from \"./measure\";\r\nexport * from \"./multiLinePoint\";\r\nexport * from \"./style\";\r\nexport * from \"./valueAndUnit\";\r\nexport * from \"./xmlLoader\";"]}
package/2D/math2D.d.ts CHANGED
@@ -71,6 +71,11 @@ export declare class Matrix2D {
71
71
  * @returns a new matrix
72
72
  */
73
73
  static Identity(): Matrix2D;
74
+ /**
75
+ * Creates an identity matrix and stores it in a target matrix
76
+ * @param result defines the target matrix
77
+ */
78
+ static IdentityToRef(result: Matrix2D): void;
74
79
  /**
75
80
  * Creates a translation matrix and stores it in a target matrix
76
81
  * @param x defines the x coordinate of the translation
package/2D/math2D.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { __extends } from "tslib";
2
- import { Vector2 } from "@babylonjs/core/Maths/math.vector";
3
- import { Epsilon } from '@babylonjs/core/Maths/math.constants';
2
+ import { Vector2 } from "@babylonjs/core/Maths/math.vector.js";
3
+ import { Epsilon } from '@babylonjs/core/Maths/math.constants.js';
4
4
  /**
5
5
  * Class used to transport Vector2 information for pointer events
6
6
  */
@@ -144,6 +144,18 @@ var Matrix2D = /** @class */ (function () {
144
144
  Matrix2D.Identity = function () {
145
145
  return new Matrix2D(1, 0, 0, 1, 0, 0);
146
146
  };
147
+ /**
148
+ * Creates an identity matrix and stores it in a target matrix
149
+ * @param result defines the target matrix
150
+ */
151
+ Matrix2D.IdentityToRef = function (result) {
152
+ result.m[0] = 1;
153
+ result.m[1] = 0;
154
+ result.m[2] = 0;
155
+ result.m[3] = 1;
156
+ result.m[4] = 0;
157
+ result.m[5] = 0;
158
+ };
147
159
  /**
148
160
  * Creates a translation matrix and stores it in a target matrix
149
161
  * @param x defines the x coordinate of the translation
package/2D/math2D.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"math2D.js","sourceRoot":"","sources":["../../../sourceES6/gui/src/2D/math2D.ts"],"names":[],"mappings":"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","sourcesContent":["import { Nullable } from \"@babylonjs/core/types\";\r\nimport { Vector2 } from \"@babylonjs/core/Maths/math.vector\";\r\nimport { Epsilon } from '@babylonjs/core/Maths/math.constants';\r\n\r\n/**\r\n * Class used to transport Vector2 information for pointer events\r\n */\r\nexport class Vector2WithInfo extends Vector2 {\r\n /**\r\n * Creates a new Vector2WithInfo\r\n * @param source defines the vector2 data to transport\r\n * @param buttonIndex defines the current mouse button index\r\n */\r\n public constructor(source: Vector2,\r\n /** defines the current mouse button index */\r\n public buttonIndex: number = 0) {\r\n super(source.x, source.y);\r\n }\r\n}\r\n\r\n/** Class used to provide 2D matrix features */\r\nexport class Matrix2D {\r\n /** Gets the internal array of 6 floats used to store matrix data */\r\n public m = new Float32Array(6);\r\n\r\n /**\r\n * Creates a new matrix\r\n * @param m00 defines value for (0, 0)\r\n * @param m01 defines value for (0, 1)\r\n * @param m10 defines value for (1, 0)\r\n * @param m11 defines value for (1, 1)\r\n * @param m20 defines value for (2, 0)\r\n * @param m21 defines value for (2, 1)\r\n */\r\n constructor(m00: number, m01: number, m10: number, m11: number, m20: number, m21: number) {\r\n this.fromValues(m00, m01, m10, m11, m20, m21);\r\n }\r\n\r\n /**\r\n * Fills the matrix from direct values\r\n * @param m00 defines value for (0, 0)\r\n * @param m01 defines value for (0, 1)\r\n * @param m10 defines value for (1, 0)\r\n * @param m11 defines value for (1, 1)\r\n * @param m20 defines value for (2, 0)\r\n * @param m21 defines value for (2, 1)\r\n * @returns the current modified matrix\r\n */\r\n public fromValues(m00: number, m01: number, m10: number, m11: number, m20: number, m21: number): Matrix2D {\r\n this.m[0] = m00; this.m[1] = m01;\r\n this.m[2] = m10; this.m[3] = m11;\r\n this.m[4] = m20; this.m[5] = m21;\r\n return this;\r\n }\r\n\r\n /**\r\n * Gets matrix determinant\r\n * @returns the determinant\r\n */\r\n public determinant(): number {\r\n return this.m[0] * this.m[3] - this.m[1] * this.m[2];\r\n }\r\n\r\n /**\r\n * Inverses the matrix and stores it in a target matrix\r\n * @param result defines the target matrix\r\n * @returns the current matrix\r\n */\r\n public invertToRef(result: Matrix2D): Matrix2D {\r\n let l0 = this.m[0]; let l1 = this.m[1];\r\n let l2 = this.m[2]; let l3 = this.m[3];\r\n let l4 = this.m[4]; let l5 = this.m[5];\r\n\r\n let det = this.determinant();\r\n if (det < (Epsilon * Epsilon)) {\r\n result.m[0] = 0; result.m[1] = 0;\r\n result.m[2] = 0; result.m[3] = 0;\r\n result.m[4] = 0; result.m[5] = 0;\r\n return this;\r\n }\r\n\r\n let detDiv = 1 / det;\r\n\r\n let det4 = l2 * l5 - l3 * l4;\r\n let det5 = l1 * l4 - l0 * l5;\r\n\r\n result.m[0] = l3 * detDiv; result.m[1] = -l1 * detDiv;\r\n result.m[2] = -l2 * detDiv; result.m[3] = l0 * detDiv;\r\n result.m[4] = det4 * detDiv; result.m[5] = det5 * detDiv;\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Multiplies the current matrix with another one\r\n * @param other defines the second operand\r\n * @param result defines the target matrix\r\n * @returns the current matrix\r\n */\r\n public multiplyToRef(other: Matrix2D, result: Matrix2D): Matrix2D {\r\n let l0 = this.m[0]; let l1 = this.m[1];\r\n let l2 = this.m[2]; let l3 = this.m[3];\r\n let l4 = this.m[4]; let l5 = this.m[5];\r\n\r\n let r0 = other.m[0]; let r1 = other.m[1];\r\n let r2 = other.m[2]; let r3 = other.m[3];\r\n let r4 = other.m[4]; let r5 = other.m[5];\r\n\r\n result.m[0] = l0 * r0 + l1 * r2; result.m[1] = l0 * r1 + l1 * r3;\r\n result.m[2] = l2 * r0 + l3 * r2; result.m[3] = l2 * r1 + l3 * r3;\r\n result.m[4] = l4 * r0 + l5 * r2 + r4; result.m[5] = l4 * r1 + l5 * r3 + r5;\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Applies the current matrix to a set of 2 floats and stores the result in a vector2\r\n * @param x defines the x coordinate to transform\r\n * @param y defines the x coordinate to transform\r\n * @param result defines the target vector2\r\n * @returns the current matrix\r\n */\r\n public transformCoordinates(x: number, y: number, result: Vector2): Matrix2D {\r\n result.x = x * this.m[0] + y * this.m[2] + this.m[4];\r\n result.y = x * this.m[1] + y * this.m[3] + this.m[5];\r\n\r\n return this;\r\n }\r\n\r\n // Statics\r\n /**\r\n * Creates an identity matrix\r\n * @returns a new matrix\r\n */\r\n public static Identity(): Matrix2D {\r\n return new Matrix2D(1, 0, 0, 1, 0, 0);\r\n }\r\n\r\n /**\r\n * Creates a translation matrix and stores it in a target matrix\r\n * @param x defines the x coordinate of the translation\r\n * @param y defines the y coordinate of the translation\r\n * @param result defines the target matrix\r\n */\r\n public static TranslationToRef(x: number, y: number, result: Matrix2D): void {\r\n result.fromValues(1, 0, 0, 1, x, y);\r\n }\r\n\r\n /**\r\n * Creates a scaling matrix and stores it in a target matrix\r\n * @param x defines the x coordinate of the scaling\r\n * @param y defines the y coordinate of the scaling\r\n * @param result defines the target matrix\r\n */\r\n public static ScalingToRef(x: number, y: number, result: Matrix2D): void {\r\n result.fromValues(x, 0, 0, y, 0, 0);\r\n }\r\n\r\n /**\r\n * Creates a rotation matrix and stores it in a target matrix\r\n * @param angle defines the rotation angle\r\n * @param result defines the target matrix\r\n */\r\n public static RotationToRef(angle: number, result: Matrix2D): void {\r\n var s = Math.sin(angle);\r\n var c = Math.cos(angle);\r\n\r\n result.fromValues(c, s, -s, c, 0, 0);\r\n }\r\n\r\n private static _TempPreTranslationMatrix = Matrix2D.Identity();\r\n private static _TempPostTranslationMatrix = Matrix2D.Identity();\r\n private static _TempRotationMatrix = Matrix2D.Identity();\r\n private static _TempScalingMatrix = Matrix2D.Identity();\r\n private static _TempCompose0 = Matrix2D.Identity();\r\n private static _TempCompose1 = Matrix2D.Identity();\r\n private static _TempCompose2 = Matrix2D.Identity();\r\n\r\n /**\r\n * Composes a matrix from translation, rotation, scaling and parent matrix and stores it in a target matrix\r\n * @param tx defines the x coordinate of the translation\r\n * @param ty defines the y coordinate of the translation\r\n * @param angle defines the rotation angle\r\n * @param scaleX defines the x coordinate of the scaling\r\n * @param scaleY defines the y coordinate of the scaling\r\n * @param parentMatrix defines the parent matrix to multiply by (can be null)\r\n * @param result defines the target matrix\r\n */\r\n public static ComposeToRef(tx: number, ty: number, angle: number, scaleX: number, scaleY: number, parentMatrix: Nullable<Matrix2D>, result: Matrix2D): void {\r\n Matrix2D.TranslationToRef(tx, ty, Matrix2D._TempPreTranslationMatrix);\r\n\r\n Matrix2D.ScalingToRef(scaleX, scaleY, Matrix2D._TempScalingMatrix);\r\n\r\n Matrix2D.RotationToRef(angle, Matrix2D._TempRotationMatrix);\r\n\r\n Matrix2D.TranslationToRef(-tx, -ty, Matrix2D._TempPostTranslationMatrix);\r\n\r\n Matrix2D._TempPreTranslationMatrix.multiplyToRef(Matrix2D._TempScalingMatrix, Matrix2D._TempCompose0);\r\n Matrix2D._TempCompose0.multiplyToRef(Matrix2D._TempRotationMatrix, Matrix2D._TempCompose1);\r\n if (parentMatrix) {\r\n Matrix2D._TempCompose1.multiplyToRef(Matrix2D._TempPostTranslationMatrix, Matrix2D._TempCompose2);\r\n Matrix2D._TempCompose2.multiplyToRef(parentMatrix, result);\r\n } else {\r\n Matrix2D._TempCompose1.multiplyToRef(Matrix2D._TempPostTranslationMatrix, result);\r\n }\r\n }\r\n}"]}
1
+ {"version":3,"file":"math2D.js","sourceRoot":"","sources":["../../../sourceES6/gui/src/2D/math2D.ts"],"names":[],"mappings":"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","sourcesContent":["import { Nullable } from \"@babylonjs/core/types\";\r\nimport { Vector2 } from \"@babylonjs/core/Maths/math.vector\";\r\nimport { Epsilon } from '@babylonjs/core/Maths/math.constants';\r\n\r\n/**\r\n * Class used to transport Vector2 information for pointer events\r\n */\r\nexport class Vector2WithInfo extends Vector2 {\r\n /**\r\n * Creates a new Vector2WithInfo\r\n * @param source defines the vector2 data to transport\r\n * @param buttonIndex defines the current mouse button index\r\n */\r\n public constructor(source: Vector2,\r\n /** defines the current mouse button index */\r\n public buttonIndex: number = 0) {\r\n super(source.x, source.y);\r\n }\r\n}\r\n\r\n/** Class used to provide 2D matrix features */\r\nexport class Matrix2D {\r\n /** Gets the internal array of 6 floats used to store matrix data */\r\n public m = new Float32Array(6);\r\n\r\n /**\r\n * Creates a new matrix\r\n * @param m00 defines value for (0, 0)\r\n * @param m01 defines value for (0, 1)\r\n * @param m10 defines value for (1, 0)\r\n * @param m11 defines value for (1, 1)\r\n * @param m20 defines value for (2, 0)\r\n * @param m21 defines value for (2, 1)\r\n */\r\n constructor(m00: number, m01: number, m10: number, m11: number, m20: number, m21: number) {\r\n this.fromValues(m00, m01, m10, m11, m20, m21);\r\n }\r\n\r\n /**\r\n * Fills the matrix from direct values\r\n * @param m00 defines value for (0, 0)\r\n * @param m01 defines value for (0, 1)\r\n * @param m10 defines value for (1, 0)\r\n * @param m11 defines value for (1, 1)\r\n * @param m20 defines value for (2, 0)\r\n * @param m21 defines value for (2, 1)\r\n * @returns the current modified matrix\r\n */\r\n public fromValues(m00: number, m01: number, m10: number, m11: number, m20: number, m21: number): Matrix2D {\r\n this.m[0] = m00; this.m[1] = m01;\r\n this.m[2] = m10; this.m[3] = m11;\r\n this.m[4] = m20; this.m[5] = m21;\r\n return this;\r\n }\r\n\r\n /**\r\n * Gets matrix determinant\r\n * @returns the determinant\r\n */\r\n public determinant(): number {\r\n return this.m[0] * this.m[3] - this.m[1] * this.m[2];\r\n }\r\n\r\n /**\r\n * Inverses the matrix and stores it in a target matrix\r\n * @param result defines the target matrix\r\n * @returns the current matrix\r\n */\r\n public invertToRef(result: Matrix2D): Matrix2D {\r\n let l0 = this.m[0]; let l1 = this.m[1];\r\n let l2 = this.m[2]; let l3 = this.m[3];\r\n let l4 = this.m[4]; let l5 = this.m[5];\r\n\r\n let det = this.determinant();\r\n if (det < (Epsilon * Epsilon)) {\r\n result.m[0] = 0; result.m[1] = 0;\r\n result.m[2] = 0; result.m[3] = 0;\r\n result.m[4] = 0; result.m[5] = 0;\r\n return this;\r\n }\r\n\r\n let detDiv = 1 / det;\r\n\r\n let det4 = l2 * l5 - l3 * l4;\r\n let det5 = l1 * l4 - l0 * l5;\r\n\r\n result.m[0] = l3 * detDiv; result.m[1] = -l1 * detDiv;\r\n result.m[2] = -l2 * detDiv; result.m[3] = l0 * detDiv;\r\n result.m[4] = det4 * detDiv; result.m[5] = det5 * detDiv;\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Multiplies the current matrix with another one\r\n * @param other defines the second operand\r\n * @param result defines the target matrix\r\n * @returns the current matrix\r\n */\r\n public multiplyToRef(other: Matrix2D, result: Matrix2D): Matrix2D {\r\n let l0 = this.m[0]; let l1 = this.m[1];\r\n let l2 = this.m[2]; let l3 = this.m[3];\r\n let l4 = this.m[4]; let l5 = this.m[5];\r\n\r\n let r0 = other.m[0]; let r1 = other.m[1];\r\n let r2 = other.m[2]; let r3 = other.m[3];\r\n let r4 = other.m[4]; let r5 = other.m[5];\r\n\r\n result.m[0] = l0 * r0 + l1 * r2; result.m[1] = l0 * r1 + l1 * r3;\r\n result.m[2] = l2 * r0 + l3 * r2; result.m[3] = l2 * r1 + l3 * r3;\r\n result.m[4] = l4 * r0 + l5 * r2 + r4; result.m[5] = l4 * r1 + l5 * r3 + r5;\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Applies the current matrix to a set of 2 floats and stores the result in a vector2\r\n * @param x defines the x coordinate to transform\r\n * @param y defines the x coordinate to transform\r\n * @param result defines the target vector2\r\n * @returns the current matrix\r\n */\r\n public transformCoordinates(x: number, y: number, result: Vector2): Matrix2D {\r\n result.x = x * this.m[0] + y * this.m[2] + this.m[4];\r\n result.y = x * this.m[1] + y * this.m[3] + this.m[5];\r\n\r\n return this;\r\n }\r\n\r\n // Statics\r\n /**\r\n * Creates an identity matrix\r\n * @returns a new matrix\r\n */\r\n public static Identity(): Matrix2D {\r\n return new Matrix2D(1, 0, 0, 1, 0, 0);\r\n }\r\n\r\n /**\r\n * Creates an identity matrix and stores it in a target matrix\r\n * @param result defines the target matrix\r\n */\r\n public static IdentityToRef(result: Matrix2D): void {\r\n result.m[0] = 1;\r\n result.m[1] = 0;\r\n result.m[2] = 0;\r\n result.m[3] = 1;\r\n result.m[4] = 0;\r\n result.m[5] = 0;\r\n }\r\n\r\n /**\r\n * Creates a translation matrix and stores it in a target matrix\r\n * @param x defines the x coordinate of the translation\r\n * @param y defines the y coordinate of the translation\r\n * @param result defines the target matrix\r\n */\r\n public static TranslationToRef(x: number, y: number, result: Matrix2D): void {\r\n result.fromValues(1, 0, 0, 1, x, y);\r\n }\r\n\r\n /**\r\n * Creates a scaling matrix and stores it in a target matrix\r\n * @param x defines the x coordinate of the scaling\r\n * @param y defines the y coordinate of the scaling\r\n * @param result defines the target matrix\r\n */\r\n public static ScalingToRef(x: number, y: number, result: Matrix2D): void {\r\n result.fromValues(x, 0, 0, y, 0, 0);\r\n }\r\n\r\n /**\r\n * Creates a rotation matrix and stores it in a target matrix\r\n * @param angle defines the rotation angle\r\n * @param result defines the target matrix\r\n */\r\n public static RotationToRef(angle: number, result: Matrix2D): void {\r\n var s = Math.sin(angle);\r\n var c = Math.cos(angle);\r\n\r\n result.fromValues(c, s, -s, c, 0, 0);\r\n }\r\n\r\n private static _TempPreTranslationMatrix = Matrix2D.Identity();\r\n private static _TempPostTranslationMatrix = Matrix2D.Identity();\r\n private static _TempRotationMatrix = Matrix2D.Identity();\r\n private static _TempScalingMatrix = Matrix2D.Identity();\r\n private static _TempCompose0 = Matrix2D.Identity();\r\n private static _TempCompose1 = Matrix2D.Identity();\r\n private static _TempCompose2 = Matrix2D.Identity();\r\n\r\n /**\r\n * Composes a matrix from translation, rotation, scaling and parent matrix and stores it in a target matrix\r\n * @param tx defines the x coordinate of the translation\r\n * @param ty defines the y coordinate of the translation\r\n * @param angle defines the rotation angle\r\n * @param scaleX defines the x coordinate of the scaling\r\n * @param scaleY defines the y coordinate of the scaling\r\n * @param parentMatrix defines the parent matrix to multiply by (can be null)\r\n * @param result defines the target matrix\r\n */\r\n public static ComposeToRef(tx: number, ty: number, angle: number, scaleX: number, scaleY: number, parentMatrix: Nullable<Matrix2D>, result: Matrix2D): void {\r\n Matrix2D.TranslationToRef(tx, ty, Matrix2D._TempPreTranslationMatrix);\r\n\r\n Matrix2D.ScalingToRef(scaleX, scaleY, Matrix2D._TempScalingMatrix);\r\n\r\n Matrix2D.RotationToRef(angle, Matrix2D._TempRotationMatrix);\r\n\r\n Matrix2D.TranslationToRef(-tx, -ty, Matrix2D._TempPostTranslationMatrix);\r\n\r\n Matrix2D._TempPreTranslationMatrix.multiplyToRef(Matrix2D._TempScalingMatrix, Matrix2D._TempCompose0);\r\n Matrix2D._TempCompose0.multiplyToRef(Matrix2D._TempRotationMatrix, Matrix2D._TempCompose1);\r\n if (parentMatrix) {\r\n Matrix2D._TempCompose1.multiplyToRef(Matrix2D._TempPostTranslationMatrix, Matrix2D._TempCompose2);\r\n Matrix2D._TempCompose2.multiplyToRef(parentMatrix, result);\r\n } else {\r\n Matrix2D._TempCompose1.multiplyToRef(Matrix2D._TempPostTranslationMatrix, result);\r\n }\r\n }\r\n}"]}
package/2D/measure.js CHANGED
@@ -1,4 +1,4 @@
1
- import { Vector2 } from "@babylonjs/core/Maths/math.vector";
1
+ import { Vector2 } from "@babylonjs/core/Maths/math.vector.js";
2
2
  var tmpRect = [
3
3
  new Vector2(0, 0),
4
4
  new Vector2(0, 0),
package/2D/measure.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"measure.js","sourceRoot":"","sources":["../../../sourceES6/gui/src/2D/measure.ts"],"names":[],"mappings":"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","sourcesContent":["import { Matrix2D } from \"./math2D\";\r\nimport { Vector2 } from \"@babylonjs/core/Maths/math.vector\";\r\n\r\nlet tmpRect = [\r\n new Vector2(0, 0),\r\n new Vector2(0, 0),\r\n new Vector2(0, 0),\r\n new Vector2(0, 0),\r\n];\r\n\r\nlet tmpRect2 = [\r\n new Vector2(0, 0),\r\n new Vector2(0, 0),\r\n new Vector2(0, 0),\r\n new Vector2(0, 0),\r\n];\r\n\r\nlet tmpV1 = new Vector2(0, 0);\r\nlet tmpV2 = new Vector2(0, 0);\r\n\r\n/**\r\n * Class used to store 2D control sizes\r\n */\r\nexport class Measure {\r\n /**\r\n * Creates a new measure\r\n * @param left defines left coordinate\r\n * @param top defines top coordinate\r\n * @param width defines width dimension\r\n * @param height defines height dimension\r\n */\r\n public constructor(\r\n /** defines left coordinate */\r\n public left: number,\r\n /** defines top coordinate */\r\n public top: number,\r\n /** defines width dimension */\r\n public width: number,\r\n /** defines height dimension */\r\n public height: number) {\r\n\r\n }\r\n\r\n /**\r\n * Copy from another measure\r\n * @param other defines the other measure to copy from\r\n */\r\n public copyFrom(other: Measure): void {\r\n this.left = other.left;\r\n this.top = other.top;\r\n this.width = other.width;\r\n this.height = other.height;\r\n }\r\n\r\n /**\r\n * Copy from a group of 4 floats\r\n * @param left defines left coordinate\r\n * @param top defines top coordinate\r\n * @param width defines width dimension\r\n * @param height defines height dimension\r\n */\r\n public copyFromFloats(left: number, top: number, width: number, height: number): void {\r\n this.left = left;\r\n this.top = top;\r\n this.width = width;\r\n this.height = height;\r\n }\r\n\r\n /**\r\n * Computes the axis aligned bounding box measure for two given measures\r\n * @param a Input measure\r\n * @param b Input measure\r\n * @param result the resulting bounding measure\r\n */\r\n public static CombineToRef(a: Measure, b: Measure, result: Measure) {\r\n var left = Math.min(a.left, b.left);\r\n var top = Math.min(a.top, b.top);\r\n var right = Math.max(a.left + a.width, b.left + b.width);\r\n var bottom = Math.max(a.top + a.height, b.top + b.height);\r\n result.left = left;\r\n result.top = top;\r\n result.width = right - left;\r\n result.height = bottom - top;\r\n }\r\n\r\n /**\r\n * Computes the axis aligned bounding box of the measure after it is modified by a given transform\r\n * @param transform the matrix to transform the measure before computing the AABB\r\n * @param addX number to add to left\r\n * @param addY number to add to top\r\n * @param addWidth number to add to width\r\n * @param addHeight number to add to height\r\n * @param result the resulting AABB\r\n */\r\n public addAndTransformToRef(transform: Matrix2D, addX: number, addY: number, addWidth: number, addHeight: number, result: Measure) {\r\n const left = this.left + addX;\r\n const top = this.top + addY;\r\n const width = this.width + addWidth;\r\n const height = this.height + addHeight;\r\n\r\n tmpRect[0].copyFromFloats(left, top);\r\n tmpRect[1].copyFromFloats(left + width, top);\r\n tmpRect[2].copyFromFloats(left + width, top + height);\r\n tmpRect[3].copyFromFloats(left, top + height);\r\n\r\n tmpV1.copyFromFloats(Number.MAX_VALUE, Number.MAX_VALUE);\r\n tmpV2.copyFromFloats(0, 0);\r\n for (var i = 0; i < 4; i++) {\r\n transform.transformCoordinates(tmpRect[i].x, tmpRect[i].y, tmpRect2[i]);\r\n tmpV1.x = Math.floor(Math.min(tmpV1.x, tmpRect2[i].x));\r\n tmpV1.y = Math.floor(Math.min(tmpV1.y, tmpRect2[i].y));\r\n tmpV2.x = Math.ceil(Math.max(tmpV2.x, tmpRect2[i].x));\r\n tmpV2.y = Math.ceil(Math.max(tmpV2.y, tmpRect2[i].y));\r\n }\r\n result.left = tmpV1.x;\r\n result.top = tmpV1.y;\r\n result.width = tmpV2.x - tmpV1.x;\r\n result.height = tmpV2.y - tmpV1.y;\r\n }\r\n\r\n /**\r\n * Computes the axis aligned bounding box of the measure after it is modified by a given transform\r\n * @param transform the matrix to transform the measure before computing the AABB\r\n * @param result the resulting AABB\r\n */\r\n public transformToRef(transform: Matrix2D, result: Measure) {\r\n this.addAndTransformToRef(transform, 0, 0, 0, 0, result);\r\n }\r\n /**\r\n * Check equality between this measure and another one\r\n * @param other defines the other measures\r\n * @returns true if both measures are equals\r\n */\r\n public isEqualsTo(other: Measure): boolean {\r\n\r\n if (this.left !== other.left) {\r\n return false;\r\n }\r\n\r\n if (this.top !== other.top) {\r\n return false;\r\n }\r\n\r\n if (this.width !== other.width) {\r\n return false;\r\n }\r\n\r\n if (this.height !== other.height) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * Creates an empty measure\r\n * @returns a new measure\r\n */\r\n public static Empty(): Measure {\r\n return new Measure(0, 0, 0, 0);\r\n }\r\n}"]}
1
+ {"version":3,"file":"measure.js","sourceRoot":"","sources":["../../../sourceES6/gui/src/2D/measure.ts"],"names":[],"mappings":"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","sourcesContent":["import { Matrix2D } from \"./math2D\";\r\nimport { Vector2 } from \"@babylonjs/core/Maths/math.vector\";\r\n\r\nlet tmpRect = [\r\n new Vector2(0, 0),\r\n new Vector2(0, 0),\r\n new Vector2(0, 0),\r\n new Vector2(0, 0),\r\n];\r\n\r\nlet tmpRect2 = [\r\n new Vector2(0, 0),\r\n new Vector2(0, 0),\r\n new Vector2(0, 0),\r\n new Vector2(0, 0),\r\n];\r\n\r\nlet tmpV1 = new Vector2(0, 0);\r\nlet tmpV2 = new Vector2(0, 0);\r\n\r\n/**\r\n * Class used to store 2D control sizes\r\n */\r\nexport class Measure {\r\n /**\r\n * Creates a new measure\r\n * @param left defines left coordinate\r\n * @param top defines top coordinate\r\n * @param width defines width dimension\r\n * @param height defines height dimension\r\n */\r\n public constructor(\r\n /** defines left coordinate */\r\n public left: number,\r\n /** defines top coordinate */\r\n public top: number,\r\n /** defines width dimension */\r\n public width: number,\r\n /** defines height dimension */\r\n public height: number) {\r\n\r\n }\r\n\r\n /**\r\n * Copy from another measure\r\n * @param other defines the other measure to copy from\r\n */\r\n public copyFrom(other: Measure): void {\r\n this.left = other.left;\r\n this.top = other.top;\r\n this.width = other.width;\r\n this.height = other.height;\r\n }\r\n\r\n /**\r\n * Copy from a group of 4 floats\r\n * @param left defines left coordinate\r\n * @param top defines top coordinate\r\n * @param width defines width dimension\r\n * @param height defines height dimension\r\n */\r\n public copyFromFloats(left: number, top: number, width: number, height: number): void {\r\n this.left = left;\r\n this.top = top;\r\n this.width = width;\r\n this.height = height;\r\n }\r\n\r\n /**\r\n * Computes the axis aligned bounding box measure for two given measures\r\n * @param a Input measure\r\n * @param b Input measure\r\n * @param result the resulting bounding measure\r\n */\r\n public static CombineToRef(a: Measure, b: Measure, result: Measure) {\r\n var left = Math.min(a.left, b.left);\r\n var top = Math.min(a.top, b.top);\r\n var right = Math.max(a.left + a.width, b.left + b.width);\r\n var bottom = Math.max(a.top + a.height, b.top + b.height);\r\n result.left = left;\r\n result.top = top;\r\n result.width = right - left;\r\n result.height = bottom - top;\r\n }\r\n\r\n /**\r\n * Computes the axis aligned bounding box of the measure after it is modified by a given transform\r\n * @param transform the matrix to transform the measure before computing the AABB\r\n * @param addX number to add to left\r\n * @param addY number to add to top\r\n * @param addWidth number to add to width\r\n * @param addHeight number to add to height\r\n * @param result the resulting AABB\r\n */\r\n public addAndTransformToRef(transform: Matrix2D, addX: number, addY: number, addWidth: number, addHeight: number, result: Measure) {\r\n const left = this.left + addX;\r\n const top = this.top + addY;\r\n const width = this.width + addWidth;\r\n const height = this.height + addHeight;\r\n\r\n tmpRect[0].copyFromFloats(left, top);\r\n tmpRect[1].copyFromFloats(left + width, top);\r\n tmpRect[2].copyFromFloats(left + width, top + height);\r\n tmpRect[3].copyFromFloats(left, top + height);\r\n\r\n tmpV1.copyFromFloats(Number.MAX_VALUE, Number.MAX_VALUE);\r\n tmpV2.copyFromFloats(0, 0);\r\n for (var i = 0; i < 4; i++) {\r\n transform.transformCoordinates(tmpRect[i].x, tmpRect[i].y, tmpRect2[i]);\r\n tmpV1.x = Math.floor(Math.min(tmpV1.x, tmpRect2[i].x));\r\n tmpV1.y = Math.floor(Math.min(tmpV1.y, tmpRect2[i].y));\r\n tmpV2.x = Math.ceil(Math.max(tmpV2.x, tmpRect2[i].x));\r\n tmpV2.y = Math.ceil(Math.max(tmpV2.y, tmpRect2[i].y));\r\n }\r\n result.left = tmpV1.x;\r\n result.top = tmpV1.y;\r\n result.width = tmpV2.x - tmpV1.x;\r\n result.height = tmpV2.y - tmpV1.y;\r\n }\r\n\r\n /**\r\n * Computes the axis aligned bounding box of the measure after it is modified by a given transform\r\n * @param transform the matrix to transform the measure before computing the AABB\r\n * @param result the resulting AABB\r\n */\r\n public transformToRef(transform: Matrix2D, result: Measure) {\r\n this.addAndTransformToRef(transform, 0, 0, 0, 0, result);\r\n }\r\n /**\r\n * Check equality between this measure and another one\r\n * @param other defines the other measures\r\n * @returns true if both measures are equals\r\n */\r\n public isEqualsTo(other: Measure): boolean {\r\n\r\n if (this.left !== other.left) {\r\n return false;\r\n }\r\n\r\n if (this.top !== other.top) {\r\n return false;\r\n }\r\n\r\n if (this.width !== other.width) {\r\n return false;\r\n }\r\n\r\n if (this.height !== other.height) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * Creates an empty measure\r\n * @returns a new measure\r\n */\r\n public static Empty(): Measure {\r\n return new Measure(0, 0, 0, 0);\r\n }\r\n}"]}
@@ -1,6 +1,6 @@
1
- import { Vector3 } from "@babylonjs/core/Maths/math.vector";
2
- import { Epsilon } from '@babylonjs/core/Maths/math.constants';
3
- import { ValueAndUnit } from "./valueAndUnit";
1
+ import { Vector3 } from "@babylonjs/core/Maths/math.vector.js";
2
+ import { Epsilon } from '@babylonjs/core/Maths/math.constants.js';
3
+ import { ValueAndUnit } from "./valueAndUnit.js";
4
4
  /**
5
5
  * Class used to store a point for a MultiLine object.
6
6
  * The point can be pure 2D coordinates, a mesh or a control
package/2D/style.js CHANGED
@@ -1,5 +1,5 @@
1
- import { Observable } from "@babylonjs/core/Misc/observable";
2
- import { ValueAndUnit } from "./valueAndUnit";
1
+ import { Observable } from "@babylonjs/core/Misc/observable.js";
2
+ import { ValueAndUnit } from "./valueAndUnit.js";
3
3
  /**
4
4
  * Define a style used by control to automatically setup properties based on a template.
5
5
  * Only support font related properties so far
@@ -1,23 +1,27 @@
1
+ import { Observable } from "@babylonjs/core/Misc/observable";
1
2
  import { AdvancedDynamicTexture } from "./advancedDynamicTexture";
2
3
  /**
3
4
  * Class used to specific a value and its associated unit
4
5
  */
5
6
  export declare class ValueAndUnit {
6
- /** defines the unit to store */
7
- unit: number;
8
7
  /** defines a boolean indicating if the value can be negative */
9
8
  negativeValueAllowed: boolean;
10
9
  private _value;
10
+ private _unit;
11
11
  private _originalUnit;
12
12
  /**
13
13
  * Gets or sets a value indicating that this value will not scale accordingly with adaptive scaling property
14
14
  * @see https://doc.babylonjs.com/how_to/gui#adaptive-scaling
15
15
  */
16
16
  ignoreAdaptiveScaling: boolean;
17
+ /**
18
+ * Observable event triggered each time the value or unit changes
19
+ */
20
+ onChangedObservable: Observable<void>;
17
21
  /**
18
22
  * Creates a new ValueAndUnit
19
23
  * @param value defines the value to store
20
- * @param unit defines the unit to store
24
+ * @param unit defines the unit to store - defaults to ValueAndUnit.UNITMODE_PIXEL
21
25
  * @param negativeValueAllowed defines a boolean indicating if the value can be negative
22
26
  */
23
27
  constructor(value: number,
@@ -29,8 +33,19 @@ export declare class ValueAndUnit {
29
33
  get isPercentage(): boolean;
30
34
  /** Gets a boolean indicating if the value is store as pixel */
31
35
  get isPixel(): boolean;
32
- /** Gets direct internal value */
36
+ /**
37
+ * Gets value (without units)
38
+ * @deprecated use value property instead
39
+ */
33
40
  get internalValue(): number;
41
+ /** Gets value (without units) */
42
+ get value(): number;
43
+ /** Sets value (without units) */
44
+ set value(value: number);
45
+ /** Gets units (without value) */
46
+ get unit(): number;
47
+ /** Sets units (without value) */
48
+ set unit(value: number);
34
49
  /**
35
50
  * Gets value as pixel
36
51
  * @param host defines the root host
@@ -39,7 +54,7 @@ export declare class ValueAndUnit {
39
54
  */
40
55
  getValueInPixel(host: AdvancedDynamicTexture, refValue: number): number;
41
56
  /**
42
- * Update the current value and unit. This should be done cautiously as the GUi won't be marked as dirty with this function.
57
+ * Update the current value and unit.
43
58
  * @param value defines the value to store
44
59
  * @param unit defines the unit to store
45
60
  * @returns the current ValueAndUnit
@@ -61,7 +76,7 @@ export declare class ValueAndUnit {
61
76
  /**
62
77
  * Store a value parsed from a string
63
78
  * @param source defines the source string
64
- * @returns true if the value was successfully parsed
79
+ * @returns true if the value was successfully parsed and updated
65
80
  */
66
81
  fromString(source: string | number): boolean;
67
82
  private static _Regex;