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

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 +179 -127
  3. package/2D/advancedDynamicTexture.js +368 -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 +99 -15
  16. package/2D/controls/container.js.map +1 -1
  17. package/2D/controls/control.d.ts +115 -47
  18. package/2D/controls/control.js +318 -139
  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 +117 -33
  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 +4 -1
  39. package/2D/controls/inputText.js +42 -15
  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 +37 -15
  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 +17 -9
  82. package/2D/controls/textBlock.js +91 -40
  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 +120 -0
  134. package/3D/controls/holographicSlate.js +372 -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 +127 -228
  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,6 +1,7 @@
1
1
  import { Control } from "./control";
2
2
  import { Nullable } from '@babylonjs/core/types';
3
3
  import { Measure } from '../measure';
4
+ import { ICanvasRenderingContext } from "@babylonjs/core/Engines/ICanvas";
4
5
  /** Class used to render a grid */
5
6
  export declare class DisplayGrid extends Control {
6
7
  name?: string | undefined;
@@ -49,6 +50,6 @@ export declare class DisplayGrid extends Control {
49
50
  * @param name defines the control name
50
51
  */
51
52
  constructor(name?: string | undefined);
52
- _draw(context: CanvasRenderingContext2D, invalidatedRectangle?: Nullable<Measure>): void;
53
+ _draw(context: ICanvasRenderingContext, invalidatedRectangle?: Nullable<Measure>): void;
53
54
  protected _getTypeName(): string;
54
55
  }
@@ -1,7 +1,7 @@
1
1
  import { __decorate, __extends } from "tslib";
2
- import { Control } from "./control";
3
- import { _TypeStore } from '@babylonjs/core/Misc/typeStore';
4
- import { serialize } from '@babylonjs/core/Misc/decorators';
2
+ import { Control } from "./control.js";
3
+ import { RegisterClass } from '@babylonjs/core/Misc/typeStore.js';
4
+ import { serialize } from '@babylonjs/core/Misc/decorators.js';
5
5
  /** Class used to render a grid */
6
6
  var DisplayGrid = /** @class */ (function (_super) {
7
7
  __extends(DisplayGrid, _super);
@@ -169,14 +169,14 @@ var DisplayGrid = /** @class */ (function (_super) {
169
169
  if (this._displayMinorLines) {
170
170
  context.strokeStyle = this._minorLineColor;
171
171
  context.lineWidth = this._minorLineTickness;
172
- for (var x = -cellCountX / 2; x < cellCountX / 2; x++) {
172
+ for (var x = -cellCountX / 2 + 1; x < cellCountX / 2; x++) {
173
173
  var cellX = left + x * this.cellWidth;
174
174
  context.beginPath();
175
175
  context.moveTo(cellX, this._currentMeasure.top);
176
176
  context.lineTo(cellX, this._currentMeasure.top + this._currentMeasure.height);
177
177
  context.stroke();
178
178
  }
179
- for (var y = -cellCountY / 2; y < cellCountY / 2; y++) {
179
+ for (var y = -cellCountY / 2 + 1; y < cellCountY / 2; y++) {
180
180
  var cellY = top_1 + y * this.cellHeight;
181
181
  context.beginPath();
182
182
  context.moveTo(this._currentMeasure.left, cellY);
@@ -242,5 +242,5 @@ var DisplayGrid = /** @class */ (function (_super) {
242
242
  return DisplayGrid;
243
243
  }(Control));
244
244
  export { DisplayGrid };
245
- _TypeStore.RegisteredTypes["BABYLON.GUI.DisplayGrid"] = DisplayGrid;
245
+ RegisterClass("BABYLON.GUI.DisplayGrid", DisplayGrid);
246
246
  //# sourceMappingURL=displayGrid.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"displayGrid.js","sourceRoot":"","sources":["../../../../sourceES6/gui/src/2D/controls/displayGrid.ts"],"names":[],"mappings":"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","sourcesContent":["import { Control } from \"./control\";\r\nimport { _TypeStore } from '@babylonjs/core/Misc/typeStore';\r\nimport { Nullable } from '@babylonjs/core/types';\r\nimport { Measure } from '../measure';\r\nimport { serialize } from '@babylonjs/core/Misc/decorators';\r\n\r\n/** Class used to render a grid */\r\nexport class DisplayGrid extends Control {\r\n private _cellWidth = 20;\r\n private _cellHeight = 20;\r\n\r\n private _minorLineTickness = 1;\r\n private _minorLineColor = \"DarkGray\";\r\n\r\n private _majorLineTickness = 2;\r\n private _majorLineColor = \"White\";\r\n\r\n private _majorLineFrequency = 5;\r\n\r\n private _background = \"Black\";\r\n\r\n private _displayMajorLines = true;\r\n private _displayMinorLines = true;\r\n\r\n /** Gets or sets a boolean indicating if minor lines must be rendered (true by default)) */\r\n @serialize()\r\n public get displayMinorLines(): boolean {\r\n return this._displayMinorLines;\r\n }\r\n\r\n public set displayMinorLines(value: boolean) {\r\n if (this._displayMinorLines === value) {\r\n return;\r\n }\r\n\r\n this._displayMinorLines = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets a boolean indicating if major lines must be rendered (true by default)) */\r\n @serialize()\r\n public get displayMajorLines(): boolean {\r\n return this._displayMajorLines;\r\n }\r\n\r\n public set displayMajorLines(value: boolean) {\r\n if (this._displayMajorLines === value) {\r\n return;\r\n }\r\n\r\n this._displayMajorLines = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets background color (Black by default) */\r\n @serialize()\r\n public get background(): string {\r\n return this._background;\r\n }\r\n\r\n public set background(value: string) {\r\n if (this._background === value) {\r\n return;\r\n }\r\n\r\n this._background = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the width of each cell (20 by default) */\r\n @serialize()\r\n public get cellWidth(): number {\r\n return this._cellWidth;\r\n }\r\n\r\n public set cellWidth(value: number) {\r\n this._cellWidth = value;\r\n\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the height of each cell (20 by default) */\r\n @serialize()\r\n public get cellHeight(): number {\r\n return this._cellHeight;\r\n }\r\n\r\n public set cellHeight(value: number) {\r\n this._cellHeight = value;\r\n\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the tickness of minor lines (1 by default) */\r\n @serialize()\r\n public get minorLineTickness(): number {\r\n return this._minorLineTickness;\r\n }\r\n\r\n public set minorLineTickness(value: number) {\r\n this._minorLineTickness = value;\r\n\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the color of minor lines (DarkGray by default) */\r\n @serialize()\r\n public get minorLineColor(): string {\r\n return this._minorLineColor;\r\n }\r\n\r\n public set minorLineColor(value: string) {\r\n this._minorLineColor = value;\r\n\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the tickness of major lines (2 by default) */\r\n @serialize()\r\n public get majorLineTickness(): number {\r\n return this._majorLineTickness;\r\n }\r\n\r\n public set majorLineTickness(value: number) {\r\n this._majorLineTickness = value;\r\n\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the color of major lines (White by default) */\r\n @serialize()\r\n public get majorLineColor(): string {\r\n return this._majorLineColor;\r\n }\r\n\r\n public set majorLineColor(value: string) {\r\n this._majorLineColor = value;\r\n\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the frequency of major lines (default is 1 every 5 minor lines)*/\r\n @serialize()\r\n public get majorLineFrequency(): number {\r\n return this._majorLineFrequency;\r\n }\r\n\r\n public set majorLineFrequency(value: number) {\r\n this._majorLineFrequency = value;\r\n\r\n this._markAsDirty();\r\n }\r\n\r\n /**\r\n * Creates a new GridDisplayRectangle\r\n * @param name defines the control name\r\n */\r\n constructor(public name?: string) {\r\n super(name);\r\n }\r\n\r\n public _draw(context: CanvasRenderingContext2D, invalidatedRectangle?: Nullable<Measure>): void {\r\n context.save();\r\n\r\n this._applyStates(context);\r\n\r\n if (this._isEnabled) {\r\n\r\n if (this._background) {\r\n context.fillStyle = this._background;\r\n context.fillRect(this._currentMeasure.left, this._currentMeasure.top, this._currentMeasure.width, this._currentMeasure.height);\r\n }\r\n\r\n let cellCountX = this._currentMeasure.width / this._cellWidth;\r\n let cellCountY = this._currentMeasure.height / this._cellHeight;\r\n\r\n // Minor lines\r\n const left = this._currentMeasure.left + this._currentMeasure.width / 2;\r\n const top = this._currentMeasure.top + this._currentMeasure.height / 2;\r\n\r\n if (this._displayMinorLines) {\r\n context.strokeStyle = this._minorLineColor;\r\n context.lineWidth = this._minorLineTickness;\r\n\r\n for (var x = -cellCountX / 2; x < cellCountX / 2; x++) {\r\n const cellX = left + x * this.cellWidth;\r\n\r\n context.beginPath();\r\n context.moveTo(cellX, this._currentMeasure.top);\r\n context.lineTo(cellX, this._currentMeasure.top + this._currentMeasure.height);\r\n\r\n context.stroke();\r\n }\r\n\r\n for (var y = -cellCountY / 2; y < cellCountY / 2; y++) {\r\n const cellY = top + y * this.cellHeight;\r\n\r\n context.beginPath();\r\n context.moveTo(this._currentMeasure.left, cellY);\r\n context.lineTo(this._currentMeasure.left + this._currentMeasure.width, cellY);\r\n context.stroke();\r\n }\r\n }\r\n\r\n // Major lines\r\n if (this._displayMajorLines) {\r\n context.strokeStyle = this._majorLineColor;\r\n context.lineWidth = this._majorLineTickness;\r\n\r\n for (var x = -cellCountX / 2 + this._majorLineFrequency; x < cellCountX / 2; x += this._majorLineFrequency) {\r\n let cellX = left + x * this.cellWidth;\r\n\r\n context.beginPath();\r\n context.moveTo(cellX, this._currentMeasure.top);\r\n context.lineTo(cellX, this._currentMeasure.top + this._currentMeasure.height);\r\n context.stroke();\r\n }\r\n\r\n for (var y = -cellCountY / 2 + this._majorLineFrequency; y < cellCountY / 2; y += this._majorLineFrequency) {\r\n let cellY = top + y * this.cellHeight;\r\n context.moveTo(this._currentMeasure.left, cellY);\r\n context.lineTo(this._currentMeasure.left + this._currentMeasure.width, cellY);\r\n context.closePath();\r\n context.stroke();\r\n }\r\n }\r\n }\r\n\r\n context.restore();\r\n }\r\n\r\n protected _getTypeName(): string {\r\n return \"DisplayGrid\";\r\n }\r\n}\r\n_TypeStore.RegisteredTypes[\"BABYLON.GUI.DisplayGrid\"] = DisplayGrid;"]}
1
+ {"version":3,"file":"displayGrid.js","sourceRoot":"","sources":["../../../../sourceES6/gui/src/2D/controls/displayGrid.ts"],"names":[],"mappings":"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","sourcesContent":["import { Control } from \"./control\";\r\nimport { RegisterClass } from '@babylonjs/core/Misc/typeStore';\r\nimport { Nullable } from '@babylonjs/core/types';\r\nimport { Measure } from '../measure';\r\nimport { serialize } from '@babylonjs/core/Misc/decorators';\r\nimport { ICanvasRenderingContext } from \"@babylonjs/core/Engines/ICanvas\";\r\n\r\n/** Class used to render a grid */\r\nexport class DisplayGrid extends Control {\r\n private _cellWidth = 20;\r\n private _cellHeight = 20;\r\n\r\n private _minorLineTickness = 1;\r\n private _minorLineColor = \"DarkGray\";\r\n\r\n private _majorLineTickness = 2;\r\n private _majorLineColor = \"White\";\r\n\r\n private _majorLineFrequency = 5;\r\n\r\n private _background = \"Black\";\r\n\r\n private _displayMajorLines = true;\r\n private _displayMinorLines = true;\r\n\r\n /** Gets or sets a boolean indicating if minor lines must be rendered (true by default)) */\r\n @serialize()\r\n public get displayMinorLines(): boolean {\r\n return this._displayMinorLines;\r\n }\r\n\r\n public set displayMinorLines(value: boolean) {\r\n if (this._displayMinorLines === value) {\r\n return;\r\n }\r\n\r\n this._displayMinorLines = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets a boolean indicating if major lines must be rendered (true by default)) */\r\n @serialize()\r\n public get displayMajorLines(): boolean {\r\n return this._displayMajorLines;\r\n }\r\n\r\n public set displayMajorLines(value: boolean) {\r\n if (this._displayMajorLines === value) {\r\n return;\r\n }\r\n\r\n this._displayMajorLines = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets background color (Black by default) */\r\n @serialize()\r\n public get background(): string {\r\n return this._background;\r\n }\r\n\r\n public set background(value: string) {\r\n if (this._background === value) {\r\n return;\r\n }\r\n\r\n this._background = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the width of each cell (20 by default) */\r\n @serialize()\r\n public get cellWidth(): number {\r\n return this._cellWidth;\r\n }\r\n\r\n public set cellWidth(value: number) {\r\n this._cellWidth = value;\r\n\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the height of each cell (20 by default) */\r\n @serialize()\r\n public get cellHeight(): number {\r\n return this._cellHeight;\r\n }\r\n\r\n public set cellHeight(value: number) {\r\n this._cellHeight = value;\r\n\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the tickness of minor lines (1 by default) */\r\n @serialize()\r\n public get minorLineTickness(): number {\r\n return this._minorLineTickness;\r\n }\r\n\r\n public set minorLineTickness(value: number) {\r\n this._minorLineTickness = value;\r\n\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the color of minor lines (DarkGray by default) */\r\n @serialize()\r\n public get minorLineColor(): string {\r\n return this._minorLineColor;\r\n }\r\n\r\n public set minorLineColor(value: string) {\r\n this._minorLineColor = value;\r\n\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the tickness of major lines (2 by default) */\r\n @serialize()\r\n public get majorLineTickness(): number {\r\n return this._majorLineTickness;\r\n }\r\n\r\n public set majorLineTickness(value: number) {\r\n this._majorLineTickness = value;\r\n\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the color of major lines (White by default) */\r\n @serialize()\r\n public get majorLineColor(): string {\r\n return this._majorLineColor;\r\n }\r\n\r\n public set majorLineColor(value: string) {\r\n this._majorLineColor = value;\r\n\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the frequency of major lines (default is 1 every 5 minor lines)*/\r\n @serialize()\r\n public get majorLineFrequency(): number {\r\n return this._majorLineFrequency;\r\n }\r\n\r\n public set majorLineFrequency(value: number) {\r\n this._majorLineFrequency = value;\r\n\r\n this._markAsDirty();\r\n }\r\n\r\n /**\r\n * Creates a new GridDisplayRectangle\r\n * @param name defines the control name\r\n */\r\n constructor(public name?: string) {\r\n super(name);\r\n }\r\n\r\n public _draw(context: ICanvasRenderingContext, invalidatedRectangle?: Nullable<Measure>): void {\r\n context.save();\r\n\r\n this._applyStates(context);\r\n\r\n if (this._isEnabled) {\r\n\r\n if (this._background) {\r\n context.fillStyle = this._background;\r\n context.fillRect(this._currentMeasure.left, this._currentMeasure.top, this._currentMeasure.width, this._currentMeasure.height);\r\n }\r\n\r\n let cellCountX = this._currentMeasure.width / this._cellWidth;\r\n let cellCountY = this._currentMeasure.height / this._cellHeight;\r\n\r\n // Minor lines\r\n const left = this._currentMeasure.left + this._currentMeasure.width / 2;\r\n const top = this._currentMeasure.top + this._currentMeasure.height / 2;\r\n\r\n if (this._displayMinorLines) {\r\n context.strokeStyle = this._minorLineColor;\r\n context.lineWidth = this._minorLineTickness;\r\n\r\n for (var x = -cellCountX / 2 + 1; x < cellCountX / 2; x++) {\r\n const cellX = left + x * this.cellWidth;\r\n\r\n context.beginPath();\r\n context.moveTo(cellX, this._currentMeasure.top);\r\n context.lineTo(cellX, this._currentMeasure.top + this._currentMeasure.height);\r\n\r\n context.stroke();\r\n }\r\n\r\n for (var y = -cellCountY / 2 + 1; y < cellCountY / 2; y++) {\r\n const cellY = top + y * this.cellHeight;\r\n\r\n context.beginPath();\r\n context.moveTo(this._currentMeasure.left, cellY);\r\n context.lineTo(this._currentMeasure.left + this._currentMeasure.width, cellY);\r\n context.stroke();\r\n }\r\n }\r\n\r\n // Major lines\r\n if (this._displayMajorLines) {\r\n context.strokeStyle = this._majorLineColor;\r\n context.lineWidth = this._majorLineTickness;\r\n\r\n for (var x = -cellCountX / 2 + this._majorLineFrequency; x < cellCountX / 2; x += this._majorLineFrequency) {\r\n let cellX = left + x * this.cellWidth;\r\n\r\n context.beginPath();\r\n context.moveTo(cellX, this._currentMeasure.top);\r\n context.lineTo(cellX, this._currentMeasure.top + this._currentMeasure.height);\r\n context.stroke();\r\n }\r\n\r\n for (var y = -cellCountY / 2 + this._majorLineFrequency; y < cellCountY / 2; y += this._majorLineFrequency) {\r\n let cellY = top + y * this.cellHeight;\r\n context.moveTo(this._currentMeasure.left, cellY);\r\n context.lineTo(this._currentMeasure.left + this._currentMeasure.width, cellY);\r\n context.closePath();\r\n context.stroke();\r\n }\r\n }\r\n }\r\n\r\n context.restore();\r\n }\r\n\r\n protected _getTypeName(): string {\r\n return \"DisplayGrid\";\r\n }\r\n}\r\nRegisterClass(\"BABYLON.GUI.DisplayGrid\", DisplayGrid);"]}
@@ -1,5 +1,6 @@
1
1
  import { Container } from "./container";
2
2
  import { Measure } from "../measure";
3
+ import { ICanvasRenderingContext } from "@babylonjs/core/Engines/ICanvas";
3
4
  /** Class used to create 2D ellipse containers */
4
5
  export declare class Ellipse extends Container {
5
6
  name?: string | undefined;
@@ -13,7 +14,8 @@ export declare class Ellipse extends Container {
13
14
  */
14
15
  constructor(name?: string | undefined);
15
16
  protected _getTypeName(): string;
16
- protected _localDraw(context: CanvasRenderingContext2D): void;
17
- protected _additionalProcessing(parentMeasure: Measure, context: CanvasRenderingContext2D): void;
18
- protected _clipForChildren(context: CanvasRenderingContext2D): void;
17
+ protected _localDraw(context: ICanvasRenderingContext): void;
18
+ protected _additionalProcessing(parentMeasure: Measure, context: ICanvasRenderingContext): void;
19
+ protected _clipForChildren(context: ICanvasRenderingContext): void;
20
+ _renderHighlightSpecific(context: ICanvasRenderingContext): void;
19
21
  }
@@ -1,8 +1,8 @@
1
1
  import { __decorate, __extends } from "tslib";
2
- import { Container } from "./container";
3
- import { Control } from "./control";
4
- import { _TypeStore } from '@babylonjs/core/Misc/typeStore';
5
- import { serialize } from '@babylonjs/core/Misc/decorators';
2
+ import { Container } from "./container.js";
3
+ import { Control } from "./control.js";
4
+ import { RegisterClass } from '@babylonjs/core/Misc/typeStore.js';
5
+ import { serialize } from '@babylonjs/core/Misc/decorators.js';
6
6
  /** Class used to create 2D ellipse containers */
7
7
  var Ellipse = /** @class */ (function (_super) {
8
8
  __extends(Ellipse, _super);
@@ -72,11 +72,15 @@ var Ellipse = /** @class */ (function (_super) {
72
72
  Control.drawEllipse(this._currentMeasure.left + this._currentMeasure.width / 2, this._currentMeasure.top + this._currentMeasure.height / 2, this._currentMeasure.width / 2, this._currentMeasure.height / 2, context);
73
73
  context.clip();
74
74
  };
75
+ Ellipse.prototype._renderHighlightSpecific = function (context) {
76
+ Control.drawEllipse(this._currentMeasure.left + this._currentMeasure.width / 2, this._currentMeasure.top + this._currentMeasure.height / 2, this._currentMeasure.width / 2 - this._highlightLineWidth / 2, this._currentMeasure.height / 2 - this._highlightLineWidth / 2, context);
77
+ context.stroke();
78
+ };
75
79
  __decorate([
76
80
  serialize()
77
81
  ], Ellipse.prototype, "thickness", null);
78
82
  return Ellipse;
79
83
  }(Container));
80
84
  export { Ellipse };
81
- _TypeStore.RegisteredTypes["BABYLON.GUI.Ellipse"] = Ellipse;
85
+ RegisterClass("BABYLON.GUI.Ellipse", Ellipse);
82
86
  //# sourceMappingURL=ellipse.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ellipse.js","sourceRoot":"","sources":["../../../../sourceES6/gui/src/2D/controls/ellipse.ts"],"names":[],"mappings":"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","sourcesContent":["import { Container } from \"./container\";\r\nimport { Control } from \"./control\";\r\nimport { Measure } from \"../measure\";\r\nimport { _TypeStore } from '@babylonjs/core/Misc/typeStore';\r\nimport { serialize } from '@babylonjs/core/Misc/decorators';\r\n\r\n/** Class used to create 2D ellipse containers */\r\nexport class Ellipse extends Container {\r\n private _thickness = 1;\r\n\r\n /** Gets or sets border thickness */\r\n @serialize()\r\n public get thickness(): number {\r\n return this._thickness;\r\n }\r\n\r\n public set thickness(value: number) {\r\n if (this._thickness === value) {\r\n return;\r\n }\r\n\r\n this._thickness = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /**\r\n * Creates a new Ellipse\r\n * @param name defines the control name\r\n */\r\n constructor(public name?: string) {\r\n super(name);\r\n }\r\n\r\n protected _getTypeName(): string {\r\n return \"Ellipse\";\r\n }\r\n\r\n protected _localDraw(context: CanvasRenderingContext2D): void {\r\n context.save();\r\n\r\n if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {\r\n context.shadowColor = this.shadowColor;\r\n context.shadowBlur = this.shadowBlur;\r\n context.shadowOffsetX = this.shadowOffsetX;\r\n context.shadowOffsetY = this.shadowOffsetY;\r\n }\r\n\r\n Control.drawEllipse(this._currentMeasure.left + this._currentMeasure.width / 2, this._currentMeasure.top + this._currentMeasure.height / 2,\r\n this._currentMeasure.width / 2 - this._thickness / 2, this._currentMeasure.height / 2 - this._thickness / 2, context);\r\n\r\n if (this._background) {\r\n context.fillStyle = this._background;\r\n\r\n context.fill();\r\n }\r\n\r\n if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {\r\n context.shadowBlur = 0;\r\n context.shadowOffsetX = 0;\r\n context.shadowOffsetY = 0;\r\n }\r\n\r\n if (this._thickness) {\r\n if (this.color) {\r\n context.strokeStyle = this.color;\r\n }\r\n context.lineWidth = this._thickness;\r\n\r\n context.stroke();\r\n }\r\n\r\n context.restore();\r\n }\r\n\r\n protected _additionalProcessing(parentMeasure: Measure, context: CanvasRenderingContext2D): void {\r\n super._additionalProcessing(parentMeasure, context);\r\n\r\n this._measureForChildren.width -= 2 * this._thickness;\r\n this._measureForChildren.height -= 2 * this._thickness;\r\n this._measureForChildren.left += this._thickness;\r\n this._measureForChildren.top += this._thickness;\r\n }\r\n\r\n protected _clipForChildren(context: CanvasRenderingContext2D) {\r\n\r\n Control.drawEllipse(this._currentMeasure.left + this._currentMeasure.width / 2, this._currentMeasure.top + this._currentMeasure.height / 2, this._currentMeasure.width / 2, this._currentMeasure.height / 2, context);\r\n\r\n context.clip();\r\n }\r\n}\r\n_TypeStore.RegisteredTypes[\"BABYLON.GUI.Ellipse\"] = Ellipse;"]}
1
+ {"version":3,"file":"ellipse.js","sourceRoot":"","sources":["../../../../sourceES6/gui/src/2D/controls/ellipse.ts"],"names":[],"mappings":"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","sourcesContent":["import { Container } from \"./container\";\r\nimport { Control } from \"./control\";\r\nimport { Measure } from \"../measure\";\r\nimport { RegisterClass } from '@babylonjs/core/Misc/typeStore';\r\nimport { serialize } from '@babylonjs/core/Misc/decorators';\r\nimport { ICanvasRenderingContext } from \"@babylonjs/core/Engines/ICanvas\";\r\n\r\n/** Class used to create 2D ellipse containers */\r\nexport class Ellipse extends Container {\r\n private _thickness = 1;\r\n\r\n /** Gets or sets border thickness */\r\n @serialize()\r\n public get thickness(): number {\r\n return this._thickness;\r\n }\r\n\r\n public set thickness(value: number) {\r\n if (this._thickness === value) {\r\n return;\r\n }\r\n\r\n this._thickness = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /**\r\n * Creates a new Ellipse\r\n * @param name defines the control name\r\n */\r\n constructor(public name?: string) {\r\n super(name);\r\n }\r\n\r\n protected _getTypeName(): string {\r\n return \"Ellipse\";\r\n }\r\n\r\n protected _localDraw(context: ICanvasRenderingContext): void {\r\n context.save();\r\n\r\n if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {\r\n context.shadowColor = this.shadowColor;\r\n context.shadowBlur = this.shadowBlur;\r\n context.shadowOffsetX = this.shadowOffsetX;\r\n context.shadowOffsetY = this.shadowOffsetY;\r\n }\r\n\r\n Control.drawEllipse(this._currentMeasure.left + this._currentMeasure.width / 2, this._currentMeasure.top + this._currentMeasure.height / 2,\r\n this._currentMeasure.width / 2 - this._thickness / 2, this._currentMeasure.height / 2 - this._thickness / 2, context);\r\n\r\n if (this._background) {\r\n context.fillStyle = this._background;\r\n\r\n context.fill();\r\n }\r\n\r\n if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {\r\n context.shadowBlur = 0;\r\n context.shadowOffsetX = 0;\r\n context.shadowOffsetY = 0;\r\n }\r\n\r\n if (this._thickness) {\r\n if (this.color) {\r\n context.strokeStyle = this.color;\r\n }\r\n context.lineWidth = this._thickness;\r\n\r\n context.stroke();\r\n }\r\n\r\n context.restore();\r\n }\r\n\r\n protected _additionalProcessing(parentMeasure: Measure, context: ICanvasRenderingContext): void {\r\n super._additionalProcessing(parentMeasure, context);\r\n\r\n this._measureForChildren.width -= 2 * this._thickness;\r\n this._measureForChildren.height -= 2 * this._thickness;\r\n this._measureForChildren.left += this._thickness;\r\n this._measureForChildren.top += this._thickness;\r\n }\r\n\r\n protected _clipForChildren(context: ICanvasRenderingContext) {\r\n\r\n Control.drawEllipse(this._currentMeasure.left + this._currentMeasure.width / 2, this._currentMeasure.top + this._currentMeasure.height / 2, this._currentMeasure.width / 2, this._currentMeasure.height / 2, context);\r\n\r\n context.clip();\r\n }\r\n\r\n public _renderHighlightSpecific(context: ICanvasRenderingContext): void {\r\n Control.drawEllipse(this._currentMeasure.left + this._currentMeasure.width / 2, this._currentMeasure.top + this._currentMeasure.height / 2, this._currentMeasure.width / 2 - this._highlightLineWidth / 2, this._currentMeasure.height / 2 - this._highlightLineWidth / 2, context);\r\n context.stroke();\r\n }\r\n}\r\nRegisterClass(\"BABYLON.GUI.Ellipse\", Ellipse);"]}
@@ -8,6 +8,7 @@ import { Observable } from '@babylonjs/core/Misc/observable';
8
8
  import { IKeyboardEvent } from "@babylonjs/core/Events/deviceInputEvents";
9
9
  /**
10
10
  * Class used to create a focusable button that can easily handle keyboard events
11
+ * @since 5.0.0
11
12
  */
12
13
  export declare class FocusableButton extends Button implements IFocusableControl {
13
14
  name?: string | undefined;
@@ -1,9 +1,10 @@
1
1
  import { __extends } from "tslib";
2
- import { Button } from "./button";
3
- import { _TypeStore } from '@babylonjs/core/Misc/typeStore';
4
- import { Observable } from '@babylonjs/core/Misc/observable';
2
+ import { Button } from "./button.js";
3
+ import { RegisterClass } from '@babylonjs/core/Misc/typeStore.js';
4
+ import { Observable } from '@babylonjs/core/Misc/observable.js';
5
5
  /**
6
6
  * Class used to create a focusable button that can easily handle keyboard events
7
+ * @since 5.0.0
7
8
  */
8
9
  var FocusableButton = /** @class */ (function (_super) {
9
10
  __extends(FocusableButton, _super);
@@ -72,8 +73,10 @@ var FocusableButton = /** @class */ (function (_super) {
72
73
  };
73
74
  /** @hidden */
74
75
  FocusableButton.prototype._onPointerDown = function (target, coordinates, pointerId, buttonIndex, pi) {
75
- // Clicking on button should focus
76
- this.focus();
76
+ if (!this.isReadOnly) {
77
+ // Clicking on button should focus
78
+ this.focus();
79
+ }
77
80
  return _super.prototype._onPointerDown.call(this, target, coordinates, pointerId, buttonIndex, pi);
78
81
  };
79
82
  /** @hidden */
@@ -86,5 +89,5 @@ var FocusableButton = /** @class */ (function (_super) {
86
89
  return FocusableButton;
87
90
  }(Button));
88
91
  export { FocusableButton };
89
- _TypeStore.RegisteredTypes["BABYLON.GUI.FocusableButton"] = FocusableButton;
92
+ RegisterClass("BABYLON.GUI.FocusableButton", FocusableButton);
90
93
  //# sourceMappingURL=focusableButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"focusableButton.js","sourceRoot":"","sources":["../../../../sourceES6/gui/src/2D/controls/focusableButton.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAG5D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAG7D;;GAEG;AACH;IAAqC,mCAAM;IAavC,yBAAmB,IAAa;QAAhC,YACI,kBAAM,IAAI,CAAC,SAGd;QAJkB,UAAI,GAAJ,IAAI,CAAS;QAZhC,6CAA6C;QACtC,kBAAY,GAAqB,IAAI,CAAC;QACrC,gBAAU,GAAG,KAAK,CAAC;QACnB,qBAAe,GAAqB,IAAI,CAAC;QAEjD,wDAAwD;QACjD,uBAAiB,GAAG,IAAI,UAAU,EAAU,CAAC;QACpD,yDAAyD;QAClD,sBAAgB,GAAG,IAAI,UAAU,EAAU,CAAC;QACnD,uDAAuD;QAChD,wCAAkC,GAAG,IAAI,UAAU,EAAkB,CAAC;QAKzE,KAAI,CAAC,eAAe,GAAG,KAAI,CAAC,KAAK,CAAC;;IACtC,CAAC;IAED,cAAc;IACP,gCAAM,GAAb;QACI,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE;gBACnD,0CAA0C;gBAC1C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC;aACrC;YACD,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;SAC/C;IACL,CAAC;IAED,cAAc;IACP,iCAAO,GAAd;QACI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAEvB,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,2BAA2B;YAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC;YAClC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;SAClC;QACD,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;IAED;;;OAGG;IACI,wCAAc,GAArB;QACI,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,+BAAK,GAAZ;QACI,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACI,8BAAI,GAAX;QACI,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;IACrC,CAAC;IAED;;;OAGG;IACI,yCAAe,GAAtB,UAAuB,GAAmB;QACtC,IAAI,CAAC,kCAAkC,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC3E,CAAC;IAED,cAAc;IACP,wCAAc,GAArB,UAAsB,MAAe,EAAE,WAAoB,EAAE,SAAiB,EAAE,WAAmB,EAAE,EAAmB;QACpH,kCAAkC;QAClC,IAAI,CAAC,KAAK,EAAE,CAAC;QAEb,OAAO,iBAAM,cAAc,YAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;IACjF,CAAC;IAED,cAAc;IACP,kCAAQ,GAAf;QACI,iBAAM,OAAO,WAAE,CAAC;QAEhB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,CAAC,kCAAkC,CAAC,KAAK,EAAE,CAAC;IACpD,CAAC;IACL,sBAAC;AAAD,CAAC,AAzFD,CAAqC,MAAM,GAyF1C;;AACD,UAAU,CAAC,eAAe,CAAC,6BAA6B,CAAC,GAAG,eAAe,CAAC","sourcesContent":["import { Nullable } from \"@babylonjs/core/types\";\nimport { Vector2 } from \"@babylonjs/core/Maths/math.vector\";\n\nimport { Button } from \"./button\";\nimport { Control } from \"./control\";\nimport { _TypeStore } from '@babylonjs/core/Misc/typeStore';\nimport { PointerInfoBase } from '@babylonjs/core/Events/pointerEvents';\nimport { IFocusableControl } from \"./focusableControl\";\nimport { Observable } from '@babylonjs/core/Misc/observable';\nimport { IKeyboardEvent } from \"@babylonjs/core/Events/deviceInputEvents\";\n\n/**\n * Class used to create a focusable button that can easily handle keyboard events\n */\nexport class FocusableButton extends Button implements IFocusableControl {\n /** Highlight color when button is focused */\n public focusedColor: Nullable<string> = null;\n private _isFocused = false;\n private _unfocusedColor: Nullable<string> = null;\n\n /** Observable raised when the control gets the focus */\n public onFocusObservable = new Observable<Button>();\n /** Observable raised when the control loses the focus */\n public onBlurObservable = new Observable<Button>();\n /** Observable raised when a key event was processed */\n public onKeyboardEventProcessedObservable = new Observable<IKeyboardEvent>();\n\n constructor(public name?: string) {\n super(name);\n\n this._unfocusedColor = this.color;\n }\n\n /** @hidden */\n public onBlur(): void {\n if (this._isFocused) {\n this._isFocused = false;\n if (this.focusedColor && this._unfocusedColor != null) {\n // Set color back to saved unfocused color\n this.color = this._unfocusedColor;\n }\n this.onBlurObservable.notifyObservers(this);\n }\n }\n\n /** @hidden */\n public onFocus(): void {\n this._isFocused = true;\n\n if (this.focusedColor) {\n // Save the unfocused color\n this._unfocusedColor = this.color;\n this.color = this.focusedColor;\n }\n this.onFocusObservable.notifyObservers(this);\n }\n\n /**\n * Function called to get the list of controls that should not steal the focus from this control\n * @returns an array of controls\n */\n public keepsFocusWith(): Nullable<Control[]> {\n return null;\n }\n\n /**\n * Function to focus a button programmatically\n */\n public focus() {\n this._host.moveFocusToControl(this);\n }\n\n /**\n * Function to unfocus a button programmatically\n */\n public blur() {\n this._host.focusedControl = null;\n }\n\n /**\n * Handles the keyboard event\n * @param evt Defines the KeyboardEvent\n */\n public processKeyboard(evt: IKeyboardEvent): void {\n this.onKeyboardEventProcessedObservable.notifyObservers(evt, -1, this);\n }\n\n /** @hidden */\n public _onPointerDown(target: Control, coordinates: Vector2, pointerId: number, buttonIndex: number, pi: PointerInfoBase): boolean {\n // Clicking on button should focus\n this.focus();\n\n return super._onPointerDown(target, coordinates, pointerId, buttonIndex, pi);\n }\n\n /** @hidden */\n public displose() {\n super.dispose();\n\n this.onBlurObservable.clear();\n this.onFocusObservable.clear();\n this.onKeyboardEventProcessedObservable.clear();\n }\n}\n_TypeStore.RegisteredTypes[\"BABYLON.GUI.FocusableButton\"] = FocusableButton;"]}
1
+ {"version":3,"file":"focusableButton.js","sourceRoot":"","sources":["../../../../sourceES6/gui/src/2D/controls/focusableButton.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAG/D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAG7D;;;GAGG;AACH;IAAqC,mCAAM;IAavC,yBAAmB,IAAa;QAAhC,YACI,kBAAM,IAAI,CAAC,SAGd;QAJkB,UAAI,GAAJ,IAAI,CAAS;QAZhC,6CAA6C;QACtC,kBAAY,GAAqB,IAAI,CAAC;QACrC,gBAAU,GAAG,KAAK,CAAC;QACnB,qBAAe,GAAqB,IAAI,CAAC;QAEjD,wDAAwD;QACjD,uBAAiB,GAAG,IAAI,UAAU,EAAU,CAAC;QACpD,yDAAyD;QAClD,sBAAgB,GAAG,IAAI,UAAU,EAAU,CAAC;QACnD,uDAAuD;QAChD,wCAAkC,GAAG,IAAI,UAAU,EAAkB,CAAC;QAKzE,KAAI,CAAC,eAAe,GAAG,KAAI,CAAC,KAAK,CAAC;;IACtC,CAAC;IAED,cAAc;IACP,gCAAM,GAAb;QACI,IAAI,IAAI,CAAC,UAAU,EAAE;YACjB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE;gBACnD,0CAA0C;gBAC1C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC;aACrC;YACD,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;SAC/C;IACL,CAAC;IAED,cAAc;IACP,iCAAO,GAAd;QACI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAEvB,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,2BAA2B;YAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC;YAClC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;SAClC;QACD,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;IAED;;;OAGG;IACI,wCAAc,GAArB;QACI,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,+BAAK,GAAZ;QACI,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACI,8BAAI,GAAX;QACI,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;IACrC,CAAC;IAED;;;OAGG;IACI,yCAAe,GAAtB,UAAuB,GAAmB;QACtC,IAAI,CAAC,kCAAkC,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IAC3E,CAAC;IAED,cAAc;IACP,wCAAc,GAArB,UAAsB,MAAe,EAAE,WAAoB,EAAE,SAAiB,EAAE,WAAmB,EAAE,EAAmB;QACpH,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAClB,kCAAkC;YAClC,IAAI,CAAC,KAAK,EAAE,CAAC;SAChB;QAED,OAAO,iBAAM,cAAc,YAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;IACjF,CAAC;IAED,cAAc;IACP,kCAAQ,GAAf;QACI,iBAAM,OAAO,WAAE,CAAC;QAEhB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,CAAC,kCAAkC,CAAC,KAAK,EAAE,CAAC;IACpD,CAAC;IACL,sBAAC;AAAD,CAAC,AA3FD,CAAqC,MAAM,GA2F1C;;AACD,aAAa,CAAC,6BAA6B,EAAE,eAAe,CAAC,CAAC","sourcesContent":["import { Nullable } from \"@babylonjs/core/types\";\nimport { Vector2 } from \"@babylonjs/core/Maths/math.vector\";\n\nimport { Button } from \"./button\";\nimport { Control } from \"./control\";\nimport { RegisterClass } from '@babylonjs/core/Misc/typeStore';\nimport { PointerInfoBase } from '@babylonjs/core/Events/pointerEvents';\nimport { IFocusableControl } from \"./focusableControl\";\nimport { Observable } from '@babylonjs/core/Misc/observable';\nimport { IKeyboardEvent } from \"@babylonjs/core/Events/deviceInputEvents\";\n\n/**\n * Class used to create a focusable button that can easily handle keyboard events\n * @since 5.0.0\n */\nexport class FocusableButton extends Button implements IFocusableControl {\n /** Highlight color when button is focused */\n public focusedColor: Nullable<string> = null;\n private _isFocused = false;\n private _unfocusedColor: Nullable<string> = null;\n\n /** Observable raised when the control gets the focus */\n public onFocusObservable = new Observable<Button>();\n /** Observable raised when the control loses the focus */\n public onBlurObservable = new Observable<Button>();\n /** Observable raised when a key event was processed */\n public onKeyboardEventProcessedObservable = new Observable<IKeyboardEvent>();\n\n constructor(public name?: string) {\n super(name);\n\n this._unfocusedColor = this.color;\n }\n\n /** @hidden */\n public onBlur(): void {\n if (this._isFocused) {\n this._isFocused = false;\n if (this.focusedColor && this._unfocusedColor != null) {\n // Set color back to saved unfocused color\n this.color = this._unfocusedColor;\n }\n this.onBlurObservable.notifyObservers(this);\n }\n }\n\n /** @hidden */\n public onFocus(): void {\n this._isFocused = true;\n\n if (this.focusedColor) {\n // Save the unfocused color\n this._unfocusedColor = this.color;\n this.color = this.focusedColor;\n }\n this.onFocusObservable.notifyObservers(this);\n }\n\n /**\n * Function called to get the list of controls that should not steal the focus from this control\n * @returns an array of controls\n */\n public keepsFocusWith(): Nullable<Control[]> {\n return null;\n }\n\n /**\n * Function to focus a button programmatically\n */\n public focus() {\n this._host.moveFocusToControl(this);\n }\n\n /**\n * Function to unfocus a button programmatically\n */\n public blur() {\n this._host.focusedControl = null;\n }\n\n /**\n * Handles the keyboard event\n * @param evt Defines the KeyboardEvent\n */\n public processKeyboard(evt: IKeyboardEvent): void {\n this.onKeyboardEventProcessedObservable.notifyObservers(evt, -1, this);\n }\n\n /** @hidden */\n public _onPointerDown(target: Control, coordinates: Vector2, pointerId: number, buttonIndex: number, pi: PointerInfoBase): boolean {\n if (!this.isReadOnly) {\n // Clicking on button should focus\n this.focus();\n }\n\n return super._onPointerDown(target, coordinates, pointerId, buttonIndex, pi);\n }\n\n /** @hidden */\n public displose() {\n super.dispose();\n\n this.onBlurObservable.clear();\n this.onFocusObservable.clear();\n this.onKeyboardEventProcessedObservable.clear();\n }\n}\nRegisterClass(\"BABYLON.GUI.FocusableButton\", FocusableButton);"]}
@@ -3,13 +3,17 @@ import { Container } from "./container";
3
3
  import { ValueAndUnit } from "../valueAndUnit";
4
4
  import { Control } from "./control";
5
5
  import { Measure } from "../measure";
6
+ import { ICanvasRenderingContext } from "@babylonjs/core/Engines/ICanvas";
7
+ import { AdvancedDynamicTexture } from "../advancedDynamicTexture";
6
8
  /**
7
9
  * Class used to create a 2D grid container
8
10
  */
9
11
  export declare class Grid extends Container {
10
12
  name?: string | undefined;
11
13
  private _rowDefinitions;
14
+ private _rowDefinitionObservers;
12
15
  private _columnDefinitions;
16
+ private _columnDefinitionObservers;
13
17
  private _cells;
14
18
  private _childControls;
15
19
  /**
@@ -116,9 +120,16 @@ export declare class Grid extends Container {
116
120
  constructor(name?: string | undefined);
117
121
  protected _getTypeName(): string;
118
122
  protected _getGridDefinitions(definitionCallback: (lefts: number[], tops: number[], widths: number[], heights: number[]) => void): void;
119
- protected _additionalProcessing(parentMeasure: Measure, context: CanvasRenderingContext2D): void;
123
+ protected _additionalProcessing(parentMeasure: Measure, context: ICanvasRenderingContext): void;
120
124
  _flagDescendantsAsMatrixDirty(): void;
121
- _renderHighlightSpecific(context: CanvasRenderingContext2D): void;
125
+ _renderHighlightSpecific(context: ICanvasRenderingContext): void;
122
126
  /** Releases associated resources */
123
127
  dispose(): void;
128
+ /**
129
+ * Serializes the current control
130
+ * @param serializationObject defined the JSON serialized object
131
+ */
132
+ serialize(serializationObject: any): void;
133
+ /** @hidden */
134
+ _parseFromContent(serializedObject: any, host: AdvancedDynamicTexture): void;
124
135
  }
@@ -1,9 +1,9 @@
1
1
  import { __extends } from "tslib";
2
- import { Container } from "./container";
3
- import { ValueAndUnit } from "../valueAndUnit";
4
- import { Control } from "./control";
5
- import { Tools } from '@babylonjs/core/Misc/tools';
6
- import { _TypeStore } from '@babylonjs/core/Misc/typeStore';
2
+ import { Container } from "./container.js";
3
+ import { ValueAndUnit } from "../valueAndUnit.js";
4
+ import { Control } from "./control.js";
5
+ import { Tools } from '@babylonjs/core/Misc/tools.js';
6
+ import { RegisterClass } from '@babylonjs/core/Misc/typeStore.js';
7
7
  /**
8
8
  * Class used to create a 2D grid container
9
9
  */
@@ -17,7 +17,9 @@ var Grid = /** @class */ (function (_super) {
17
17
  var _this = _super.call(this, name) || this;
18
18
  _this.name = name;
19
19
  _this._rowDefinitions = new Array();
20
+ _this._rowDefinitionObservers = [];
20
21
  _this._columnDefinitions = new Array();
22
+ _this._columnDefinitionObservers = [];
21
23
  _this._cells = {};
22
24
  _this._childControls = new Array();
23
25
  return _this;
@@ -87,8 +89,10 @@ var Grid = /** @class */ (function (_super) {
87
89
  * @returns the current grid
88
90
  */
89
91
  Grid.prototype.addRowDefinition = function (height, isPixel) {
92
+ var _this = this;
90
93
  if (isPixel === void 0) { isPixel = false; }
91
94
  this._rowDefinitions.push(new ValueAndUnit(height, isPixel ? ValueAndUnit.UNITMODE_PIXEL : ValueAndUnit.UNITMODE_PERCENTAGE));
95
+ this._rowDefinitionObservers.push(this._rowDefinitions[this.rowCount - 1].onChangedObservable.add(function () { return _this._markAsDirty(); }));
92
96
  this._markAsDirty();
93
97
  return this;
94
98
  };
@@ -99,8 +103,10 @@ var Grid = /** @class */ (function (_super) {
99
103
  * @returns the current grid
100
104
  */
101
105
  Grid.prototype.addColumnDefinition = function (width, isPixel) {
106
+ var _this = this;
102
107
  if (isPixel === void 0) { isPixel = false; }
103
108
  this._columnDefinitions.push(new ValueAndUnit(width, isPixel ? ValueAndUnit.UNITMODE_PIXEL : ValueAndUnit.UNITMODE_PERCENTAGE));
109
+ this._columnDefinitionObservers.push(this._columnDefinitions[this.columnCount - 1].onChangedObservable.add(function () { return _this._markAsDirty(); }));
104
110
  this._markAsDirty();
105
111
  return this;
106
112
  };
@@ -112,15 +118,18 @@ var Grid = /** @class */ (function (_super) {
112
118
  * @returns the current grid
113
119
  */
114
120
  Grid.prototype.setRowDefinition = function (index, height, isPixel) {
121
+ var _this = this;
115
122
  if (isPixel === void 0) { isPixel = false; }
116
123
  if (index < 0 || index >= this._rowDefinitions.length) {
117
124
  return this;
118
125
  }
119
126
  var current = this._rowDefinitions[index];
120
- if (current && current.isPixel === isPixel && current.internalValue === height) {
127
+ if (current && current.isPixel === isPixel && current.value === height) {
121
128
  return this;
122
129
  }
130
+ this._rowDefinitions[index].onChangedObservable.remove(this._rowDefinitionObservers[index]);
123
131
  this._rowDefinitions[index] = new ValueAndUnit(height, isPixel ? ValueAndUnit.UNITMODE_PIXEL : ValueAndUnit.UNITMODE_PERCENTAGE);
132
+ this._rowDefinitionObservers[index] = this._rowDefinitions[index].onChangedObservable.add(function () { return _this._markAsDirty(); });
124
133
  this._markAsDirty();
125
134
  return this;
126
135
  };
@@ -132,15 +141,18 @@ var Grid = /** @class */ (function (_super) {
132
141
  * @returns the current grid
133
142
  */
134
143
  Grid.prototype.setColumnDefinition = function (index, width, isPixel) {
144
+ var _this = this;
135
145
  if (isPixel === void 0) { isPixel = false; }
136
146
  if (index < 0 || index >= this._columnDefinitions.length) {
137
147
  return this;
138
148
  }
139
149
  var current = this._columnDefinitions[index];
140
- if (current && current.isPixel === isPixel && current.internalValue === width) {
150
+ if (current && current.isPixel === isPixel && current.value === width) {
141
151
  return this;
142
152
  }
153
+ this._columnDefinitions[index].onChangedObservable.remove(this._columnDefinitionObservers[index]);
143
154
  this._columnDefinitions[index] = new ValueAndUnit(width, isPixel ? ValueAndUnit.UNITMODE_PIXEL : ValueAndUnit.UNITMODE_PERCENTAGE);
155
+ this._columnDefinitionObservers[index] = this._columnDefinitions[index].onChangedObservable.add(function () { return _this._markAsDirty(); });
144
156
  this._markAsDirty();
145
157
  return this;
146
158
  };
@@ -151,7 +163,7 @@ var Grid = /** @class */ (function (_super) {
151
163
  * @returns the list of controls
152
164
  */
153
165
  Grid.prototype.getChildrenAt = function (row, column) {
154
- var cell = this._cells[row + ":" + column];
166
+ var cell = this._cells["".concat(row, ":").concat(column)];
155
167
  if (!cell) {
156
168
  return null;
157
169
  }
@@ -200,18 +212,20 @@ var Grid = /** @class */ (function (_super) {
200
212
  return this;
201
213
  }
202
214
  for (var x = 0; x < this._rowDefinitions.length; x++) {
203
- var key = x + ":" + index;
215
+ var key = "".concat(x, ":").concat(index);
204
216
  var cell = this._cells[key];
205
217
  this._removeCell(cell, key);
206
218
  }
207
219
  for (var x = 0; x < this._rowDefinitions.length; x++) {
208
220
  for (var y = index + 1; y < this._columnDefinitions.length; y++) {
209
- var previousKey = x + ":" + (y - 1);
210
- var key = x + ":" + y;
221
+ var previousKey = "".concat(x, ":").concat(y - 1);
222
+ var key = "".concat(x, ":").concat(y);
211
223
  this._offsetCell(previousKey, key);
212
224
  }
213
225
  }
226
+ this._columnDefinitions[index].onChangedObservable.remove(this._columnDefinitionObservers[index]);
214
227
  this._columnDefinitions.splice(index, 1);
228
+ this._columnDefinitionObservers.splice(index, 1);
215
229
  this._markAsDirty();
216
230
  return this;
217
231
  };
@@ -225,18 +239,20 @@ var Grid = /** @class */ (function (_super) {
225
239
  return this;
226
240
  }
227
241
  for (var y = 0; y < this._columnDefinitions.length; y++) {
228
- var key = index + ":" + y;
242
+ var key = "".concat(index, ":").concat(y);
229
243
  var cell = this._cells[key];
230
244
  this._removeCell(cell, key);
231
245
  }
232
246
  for (var y = 0; y < this._columnDefinitions.length; y++) {
233
247
  for (var x = index + 1; x < this._rowDefinitions.length; x++) {
234
- var previousKey = x - 1 + ":" + y;
235
- var key = x + ":" + y;
248
+ var previousKey = "".concat(x - 1, ":").concat(y);
249
+ var key = "".concat(x, ":").concat(y);
236
250
  this._offsetCell(previousKey, key);
237
251
  }
238
252
  }
253
+ this._rowDefinitions[index].onChangedObservable.remove(this._rowDefinitionObservers[index]);
239
254
  this._rowDefinitions.splice(index, 1);
255
+ this._rowDefinitionObservers.splice(index, 1);
240
256
  this._markAsDirty();
241
257
  return this;
242
258
  };
@@ -259,12 +275,12 @@ var Grid = /** @class */ (function (_super) {
259
275
  this.addColumnDefinition(1, false);
260
276
  }
261
277
  if (this._childControls.indexOf(control) !== -1) {
262
- Tools.Warn("Control (Name:" + control.name + ", UniqueId:" + control.uniqueId + ") is already associated with this grid. You must remove it before reattaching it");
278
+ Tools.Warn("Control (Name:".concat(control.name, ", UniqueId:").concat(control.uniqueId, ") is already associated with this grid. You must remove it before reattaching it"));
263
279
  return this;
264
280
  }
265
281
  var x = Math.min(row, this._rowDefinitions.length - 1);
266
282
  var y = Math.min(column, this._columnDefinitions.length - 1);
267
- var key = x + ":" + y;
283
+ var key = "".concat(x, ":").concat(y);
268
284
  var goodContainer = this._cells[key];
269
285
  if (!goodContainer) {
270
286
  goodContainer = new Container(key);
@@ -313,58 +329,58 @@ var Grid = /** @class */ (function (_super) {
313
329
  // Heights
314
330
  var index = 0;
315
331
  for (var _i = 0, _a = this._rowDefinitions; _i < _a.length; _i++) {
316
- var value = _a[_i];
317
- if (value.isPixel) {
318
- var height = value.getValue(this._host);
332
+ var rowDefinition = _a[_i];
333
+ if (rowDefinition.isPixel) {
334
+ var height = rowDefinition.getValue(this._host);
319
335
  availableHeight -= height;
320
336
  heights[index] = height;
321
337
  }
322
338
  else {
323
- globalHeightPercentage += value.internalValue;
339
+ globalHeightPercentage += rowDefinition.value;
324
340
  }
325
341
  index++;
326
342
  }
327
343
  var top = 0;
328
344
  index = 0;
329
345
  for (var _b = 0, _c = this._rowDefinitions; _b < _c.length; _b++) {
330
- var value = _c[_b];
346
+ var rowDefinition = _c[_b];
331
347
  tops.push(top);
332
- if (!value.isPixel) {
333
- var height = (value.internalValue / globalHeightPercentage) * availableHeight;
348
+ if (!rowDefinition.isPixel) {
349
+ var height = (rowDefinition.value / globalHeightPercentage) * availableHeight;
334
350
  top += height;
335
351
  heights[index] = height;
336
352
  }
337
353
  else {
338
- top += value.getValue(this._host);
354
+ top += rowDefinition.getValue(this._host);
339
355
  }
340
356
  index++;
341
357
  }
342
358
  // Widths
343
359
  index = 0;
344
360
  for (var _d = 0, _e = this._columnDefinitions; _d < _e.length; _d++) {
345
- var value = _e[_d];
346
- if (value.isPixel) {
347
- var width = value.getValue(this._host);
361
+ var columnDefinition = _e[_d];
362
+ if (columnDefinition.isPixel) {
363
+ var width = columnDefinition.getValue(this._host);
348
364
  availableWidth -= width;
349
365
  widths[index] = width;
350
366
  }
351
367
  else {
352
- globalWidthPercentage += value.internalValue;
368
+ globalWidthPercentage += columnDefinition.value;
353
369
  }
354
370
  index++;
355
371
  }
356
372
  var left = 0;
357
373
  index = 0;
358
374
  for (var _f = 0, _g = this._columnDefinitions; _f < _g.length; _f++) {
359
- var value = _g[_f];
375
+ var columnDefinition = _g[_f];
360
376
  lefts.push(left);
361
- if (!value.isPixel) {
362
- var width = (value.internalValue / globalWidthPercentage) * availableWidth;
377
+ if (!columnDefinition.isPixel) {
378
+ var width = (columnDefinition.value / globalWidthPercentage) * availableWidth;
363
379
  left += width;
364
380
  widths[index] = width;
365
381
  }
366
382
  else {
367
- left += value.getValue(this._host);
383
+ left += columnDefinition.getValue(this._host);
368
384
  }
369
385
  index++;
370
386
  }
@@ -433,10 +449,78 @@ var Grid = /** @class */ (function (_super) {
433
449
  var control = _a[_i];
434
450
  control.dispose();
435
451
  }
452
+ for (var index = 0; index < this._rowDefinitions.length; index++) {
453
+ this._rowDefinitions[index].onChangedObservable.remove(this._rowDefinitionObservers[index]);
454
+ }
455
+ for (var index = 0; index < this._columnDefinitions.length; index++) {
456
+ this._columnDefinitions[index].onChangedObservable.remove(this._columnDefinitionObservers[index]);
457
+ }
458
+ this._rowDefinitionObservers = [];
459
+ this._rowDefinitions = [];
460
+ this._columnDefinitionObservers = [];
461
+ this._columnDefinitions = [];
462
+ this._cells = {};
436
463
  this._childControls = [];
437
464
  };
465
+ /**
466
+ * Serializes the current control
467
+ * @param serializationObject defined the JSON serialized object
468
+ */
469
+ Grid.prototype.serialize = function (serializationObject) {
470
+ _super.prototype.serialize.call(this, serializationObject);
471
+ serializationObject.columnCount = this.columnCount;
472
+ serializationObject.rowCount = this.rowCount;
473
+ serializationObject.columns = [];
474
+ serializationObject.rows = [];
475
+ serializationObject.tags = [];
476
+ for (var i = 0; i < this.columnCount; ++i) {
477
+ var cd = this.getColumnDefinition(i);
478
+ var childSerializationObject = { value: cd === null || cd === void 0 ? void 0 : cd.getValue(this.host), unit: cd === null || cd === void 0 ? void 0 : cd.unit };
479
+ serializationObject.columns.push(childSerializationObject);
480
+ }
481
+ for (var i = 0; i < this.rowCount; ++i) {
482
+ var rd = this.getRowDefinition(i);
483
+ var childSerializationObject = { value: rd === null || rd === void 0 ? void 0 : rd.getValue(this.host), unit: rd === null || rd === void 0 ? void 0 : rd.unit };
484
+ serializationObject.rows.push(childSerializationObject);
485
+ }
486
+ this.children.forEach(function (child) {
487
+ serializationObject.tags.push(child._tag);
488
+ });
489
+ };
490
+ /** @hidden */
491
+ Grid.prototype._parseFromContent = function (serializedObject, host) {
492
+ _super.prototype._parseFromContent.call(this, serializedObject, host);
493
+ var children = [];
494
+ this.children.forEach(function (child) {
495
+ children.push(child);
496
+ });
497
+ this.removeRowDefinition(0);
498
+ this.removeColumnDefinition(0);
499
+ for (var i = 0; i < serializedObject.columnCount; ++i) {
500
+ var columnValue = serializedObject.columns[i].value;
501
+ var unit = serializedObject.columns[i].unit;
502
+ this.addColumnDefinition(columnValue, unit === 1 ? true : false);
503
+ }
504
+ for (var i = 0; i < serializedObject.rowCount; ++i) {
505
+ var rowValue = serializedObject.rows[i].value;
506
+ var unit = serializedObject.rows[i].unit;
507
+ this.addRowDefinition(rowValue, unit === 1 ? true : false);
508
+ }
509
+ for (var i = 0; i < children.length; ++i) {
510
+ var cellInfo = serializedObject.tags[i];
511
+ var rowNumber = parseInt(cellInfo.substring(0, cellInfo.search(":")));
512
+ if (isNaN(rowNumber)) {
513
+ rowNumber = 0;
514
+ }
515
+ var columnNumber = parseInt(cellInfo.substring(cellInfo.search(":") + 1));
516
+ if (isNaN(columnNumber)) {
517
+ columnNumber = 0;
518
+ }
519
+ this.addControl(children[i], rowNumber, columnNumber);
520
+ }
521
+ };
438
522
  return Grid;
439
523
  }(Container));
440
524
  export { Grid };
441
- _TypeStore.RegisteredTypes["BABYLON.GUI.Grid"] = Grid;
525
+ RegisterClass("BABYLON.GUI.Grid", Grid);
442
526
  //# sourceMappingURL=grid.js.map