@babylonjs/gui 5.0.0-alpha.6 → 5.0.0-alpha.60

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 (272) hide show
  1. package/2D/adtInstrumentation.js +1 -1
  2. package/2D/advancedDynamicTexture.d.ts +26 -4
  3. package/2D/advancedDynamicTexture.js +107 -47
  4. package/2D/advancedDynamicTexture.js.map +1 -1
  5. package/2D/controls/button.js +10 -10
  6. package/2D/controls/button.js.map +1 -1
  7. package/2D/controls/checkbox.d.ts +2 -1
  8. package/2D/controls/checkbox.js +10 -8
  9. package/2D/controls/checkbox.js.map +1 -1
  10. package/2D/controls/colorpicker.d.ts +4 -3
  11. package/2D/controls/colorpicker.js +40 -23
  12. package/2D/controls/colorpicker.js.map +1 -1
  13. package/2D/controls/container.d.ts +16 -5
  14. package/2D/controls/container.js +89 -11
  15. package/2D/controls/container.js.map +1 -1
  16. package/2D/controls/control.d.ts +40 -15
  17. package/2D/controls/control.js +103 -59
  18. package/2D/controls/control.js.map +1 -1
  19. package/2D/controls/displayGrid.d.ts +2 -1
  20. package/2D/controls/displayGrid.js +6 -6
  21. package/2D/controls/displayGrid.js.map +1 -1
  22. package/2D/controls/ellipse.d.ts +5 -3
  23. package/2D/controls/ellipse.js +9 -5
  24. package/2D/controls/ellipse.js.map +1 -1
  25. package/2D/controls/focusableButton.d.ts +4 -2
  26. package/2D/controls/focusableButton.js +9 -6
  27. package/2D/controls/focusableButton.js.map +1 -1
  28. package/2D/controls/focusableControl.d.ts +2 -1
  29. package/2D/controls/focusableControl.js.map +1 -1
  30. package/2D/controls/grid.d.ts +11 -2
  31. package/2D/controls/grid.js +63 -6
  32. package/2D/controls/grid.js.map +1 -1
  33. package/2D/controls/image.d.ts +20 -12
  34. package/2D/controls/image.js +154 -111
  35. package/2D/controls/image.js.map +1 -1
  36. package/2D/controls/index.js +29 -29
  37. package/2D/controls/inputPassword.js +4 -4
  38. package/2D/controls/inputPassword.js.map +1 -1
  39. package/2D/controls/inputText.d.ts +6 -4
  40. package/2D/controls/inputText.js +39 -13
  41. package/2D/controls/inputText.js.map +1 -1
  42. package/2D/controls/line.d.ts +3 -2
  43. package/2D/controls/line.js +8 -8
  44. package/2D/controls/line.js.map +1 -1
  45. package/2D/controls/multiLine.d.ts +4 -3
  46. package/2D/controls/multiLine.js +6 -6
  47. package/2D/controls/multiLine.js.map +1 -1
  48. package/2D/controls/radioButton.d.ts +2 -1
  49. package/2D/controls/radioButton.js +10 -7
  50. package/2D/controls/radioButton.js.map +1 -1
  51. package/2D/controls/rectangle.d.ts +8 -3
  52. package/2D/controls/rectangle.js +21 -5
  53. package/2D/controls/rectangle.js.map +1 -1
  54. package/2D/controls/scrollViewers/scrollViewer.d.ts +3 -2
  55. package/2D/controls/scrollViewers/scrollViewer.js +9 -9
  56. package/2D/controls/scrollViewers/scrollViewer.js.map +1 -1
  57. package/2D/controls/scrollViewers/scrollViewerWindow.d.ts +4 -3
  58. package/2D/controls/scrollViewers/scrollViewerWindow.js +4 -4
  59. package/2D/controls/scrollViewers/scrollViewerWindow.js.map +1 -1
  60. package/2D/controls/selector.js +8 -8
  61. package/2D/controls/selector.js.map +1 -1
  62. package/2D/controls/sliders/baseSlider.d.ts +1 -1
  63. package/2D/controls/sliders/baseSlider.js +12 -10
  64. package/2D/controls/sliders/baseSlider.js.map +1 -1
  65. package/2D/controls/sliders/imageBasedSlider.d.ts +10 -1
  66. package/2D/controls/sliders/imageBasedSlider.js +29 -5
  67. package/2D/controls/sliders/imageBasedSlider.js.map +1 -1
  68. package/2D/controls/sliders/imageScrollBar.d.ts +2 -1
  69. package/2D/controls/sliders/imageScrollBar.js +3 -3
  70. package/2D/controls/sliders/imageScrollBar.js.map +1 -1
  71. package/2D/controls/sliders/scrollBar.d.ts +2 -1
  72. package/2D/controls/sliders/scrollBar.js +3 -3
  73. package/2D/controls/sliders/scrollBar.js.map +1 -1
  74. package/2D/controls/sliders/slider.d.ts +2 -1
  75. package/2D/controls/sliders/slider.js +4 -4
  76. package/2D/controls/sliders/slider.js.map +1 -1
  77. package/2D/controls/stackPanel.d.ts +3 -2
  78. package/2D/controls/stackPanel.js +6 -6
  79. package/2D/controls/stackPanel.js.map +1 -1
  80. package/2D/controls/statics.js +3 -3
  81. package/2D/controls/statics.js.map +1 -1
  82. package/2D/controls/textBlock.d.ts +9 -8
  83. package/2D/controls/textBlock.js +25 -15
  84. package/2D/controls/textBlock.js.map +1 -1
  85. package/2D/controls/textWrapper.js +2 -2
  86. package/2D/controls/textWrapper.js.map +1 -1
  87. package/2D/controls/toggleButton.d.ts +1 -13
  88. package/2D/controls/toggleButton.js +29 -38
  89. package/2D/controls/toggleButton.js.map +1 -1
  90. package/2D/controls/virtualKeyboard.js +5 -5
  91. package/2D/controls/virtualKeyboard.js.map +1 -1
  92. package/2D/index.d.ts +1 -1
  93. package/2D/index.js +9 -9
  94. package/2D/index.js.map +1 -1
  95. package/2D/math2D.js +2 -2
  96. package/2D/measure.js +1 -1
  97. package/2D/measure.js.map +1 -1
  98. package/2D/multiLinePoint.js +3 -3
  99. package/2D/style.js +2 -2
  100. package/2D/xmlLoader.d.ts +17 -3
  101. package/2D/xmlLoader.js +54 -15
  102. package/2D/xmlLoader.js.map +1 -1
  103. package/3D/behaviors/defaultBehavior.d.ts +73 -0
  104. package/3D/behaviors/defaultBehavior.js +122 -0
  105. package/3D/behaviors/defaultBehavior.js.map +1 -0
  106. package/3D/controls/abstractButton3D.d.ts +2 -2
  107. package/3D/controls/abstractButton3D.js +3 -3
  108. package/3D/controls/abstractButton3D.js.map +1 -1
  109. package/3D/controls/button3D.d.ts +0 -24
  110. package/3D/controls/button3D.js +7 -83
  111. package/3D/controls/button3D.js.map +1 -1
  112. package/3D/controls/container3D.js +2 -2
  113. package/3D/controls/contentDisplay3D.d.ts +30 -0
  114. package/3D/controls/contentDisplay3D.js +79 -0
  115. package/3D/controls/contentDisplay3D.js.map +1 -0
  116. package/3D/controls/control3D.d.ts +8 -7
  117. package/3D/controls/control3D.js +39 -28
  118. package/3D/controls/control3D.js.map +1 -1
  119. package/3D/controls/cylinderPanel.js +5 -5
  120. package/3D/controls/handMenu.d.ts +28 -0
  121. package/3D/controls/handMenu.js +48 -0
  122. package/3D/controls/handMenu.js.map +1 -0
  123. package/3D/controls/holographicBackplate.d.ts +48 -0
  124. package/3D/controls/holographicBackplate.js +121 -0
  125. package/3D/controls/holographicBackplate.js.map +1 -0
  126. package/3D/controls/holographicButton.d.ts +1 -1
  127. package/3D/controls/holographicButton.js +27 -24
  128. package/3D/controls/holographicButton.js.map +1 -1
  129. package/3D/controls/holographicSlate.d.ts +118 -0
  130. package/3D/controls/holographicSlate.js +360 -0
  131. package/3D/controls/holographicSlate.js.map +1 -0
  132. package/3D/controls/index.d.ts +10 -0
  133. package/3D/controls/index.js +22 -12
  134. package/3D/controls/index.js.map +1 -1
  135. package/3D/controls/meshButton3D.js +2 -2
  136. package/3D/controls/meshButton3D.js.map +1 -1
  137. package/3D/controls/nearMenu.d.ts +45 -0
  138. package/3D/controls/nearMenu.js +111 -0
  139. package/3D/controls/nearMenu.js.map +1 -0
  140. package/3D/controls/planePanel.js +3 -3
  141. package/3D/controls/scatterPanel.js +4 -4
  142. package/3D/controls/slider3D.d.ts +80 -0
  143. package/3D/controls/slider3D.js +268 -0
  144. package/3D/controls/slider3D.js.map +1 -0
  145. package/3D/controls/spherePanel.js +5 -5
  146. package/3D/controls/stackPanel3D.js +3 -3
  147. package/3D/controls/touchButton3D.d.ts +43 -0
  148. package/3D/controls/touchButton3D.js +133 -0
  149. package/3D/controls/touchButton3D.js.map +1 -0
  150. package/3D/controls/touchHolographicButton.d.ts +100 -0
  151. package/3D/controls/touchHolographicButton.js +408 -0
  152. package/3D/controls/touchHolographicButton.js.map +1 -0
  153. package/3D/controls/touchHolographicMenu.d.ts +61 -0
  154. package/3D/controls/touchHolographicMenu.js +147 -0
  155. package/3D/controls/touchHolographicMenu.js.map +1 -0
  156. package/3D/controls/touchMeshButton3D.d.ts +22 -0
  157. package/3D/controls/touchMeshButton3D.js +63 -0
  158. package/3D/controls/touchMeshButton3D.js.map +1 -0
  159. package/3D/controls/touchToggleButton3D.d.ts +35 -0
  160. package/3D/controls/touchToggleButton3D.js +60 -0
  161. package/3D/controls/touchToggleButton3D.js.map +1 -0
  162. package/3D/controls/volumeBasedPanel.d.ts +1 -1
  163. package/3D/controls/volumeBasedPanel.js +5 -5
  164. package/3D/controls/volumeBasedPanel.js.map +1 -1
  165. package/3D/gizmos/gizmoHandle.d.ts +108 -0
  166. package/3D/gizmos/gizmoHandle.js +210 -0
  167. package/3D/gizmos/gizmoHandle.js.map +1 -0
  168. package/3D/gizmos/index.d.ts +2 -0
  169. package/3D/gizmos/index.js +3 -0
  170. package/3D/gizmos/index.js.map +1 -0
  171. package/3D/gizmos/slateGizmo.d.ts +59 -0
  172. package/3D/gizmos/slateGizmo.js +364 -0
  173. package/3D/gizmos/slateGizmo.js.map +1 -0
  174. package/3D/gui3DManager.d.ts +9 -0
  175. package/3D/gui3DManager.js +30 -13
  176. package/3D/gui3DManager.js.map +1 -1
  177. package/3D/index.d.ts +3 -2
  178. package/3D/index.js +5 -4
  179. package/3D/index.js.map +1 -1
  180. package/3D/materials/fluent/fluentMaterial.d.ts +90 -0
  181. package/3D/materials/fluent/fluentMaterial.js +282 -0
  182. package/3D/materials/fluent/fluentMaterial.js.map +1 -0
  183. package/3D/materials/fluent/index.d.ts +1 -0
  184. package/3D/materials/fluent/index.js +2 -0
  185. package/3D/materials/fluent/index.js.map +1 -0
  186. package/3D/materials/{shaders → fluent/shaders}/fluent.fragment.d.ts +0 -0
  187. package/3D/materials/fluent/shaders/fluent.fragment.js +7 -0
  188. package/3D/materials/fluent/shaders/fluent.fragment.js.map +1 -0
  189. package/3D/materials/{shaders → fluent/shaders}/fluent.vertex.d.ts +0 -0
  190. package/3D/materials/{shaders → fluent/shaders}/fluent.vertex.js +2 -2
  191. package/3D/materials/fluent/shaders/fluent.vertex.js.map +1 -0
  192. package/3D/materials/fluentBackplate/fluentBackplateMaterial.d.ts +154 -0
  193. package/3D/materials/fluentBackplate/fluentBackplateMaterial.js +435 -0
  194. package/3D/materials/fluentBackplate/fluentBackplateMaterial.js.map +1 -0
  195. package/3D/materials/fluentBackplate/index.d.ts +1 -0
  196. package/3D/materials/fluentBackplate/index.js +2 -0
  197. package/3D/materials/fluentBackplate/index.js.map +1 -0
  198. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.d.ts +5 -0
  199. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js +7 -0
  200. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js.map +1 -0
  201. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.d.ts +5 -0
  202. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js +7 -0
  203. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js.map +1 -0
  204. package/3D/materials/fluentButton/fluentButtonMaterial.d.ts +189 -0
  205. package/3D/materials/fluentButton/fluentButtonMaterial.js +538 -0
  206. package/3D/materials/fluentButton/fluentButtonMaterial.js.map +1 -0
  207. package/3D/materials/fluentButton/index.d.ts +1 -0
  208. package/3D/materials/fluentButton/index.js +2 -0
  209. package/3D/materials/fluentButton/index.js.map +1 -0
  210. package/3D/materials/fluentButton/shaders/fluentButton.fragment.d.ts +5 -0
  211. package/3D/materials/fluentButton/shaders/fluentButton.fragment.js +7 -0
  212. package/3D/materials/fluentButton/shaders/fluentButton.fragment.js.map +1 -0
  213. package/3D/materials/fluentButton/shaders/fluentButton.vertex.d.ts +5 -0
  214. package/3D/materials/fluentButton/shaders/fluentButton.vertex.js +7 -0
  215. package/3D/materials/fluentButton/shaders/fluentButton.vertex.js.map +1 -0
  216. package/3D/materials/fluentMaterial.d.ts +2 -88
  217. package/3D/materials/fluentMaterial.js +2 -277
  218. package/3D/materials/fluentMaterial.js.map +1 -1
  219. package/3D/materials/handle/handleMaterial.d.ts +68 -0
  220. package/3D/materials/handle/handleMaterial.js +127 -0
  221. package/3D/materials/handle/handleMaterial.js.map +1 -0
  222. package/3D/materials/handle/index.d.ts +1 -0
  223. package/3D/materials/handle/index.js +2 -0
  224. package/3D/materials/handle/index.js.map +1 -0
  225. package/3D/materials/handle/shaders/handle.fragment.d.ts +5 -0
  226. package/3D/materials/handle/shaders/handle.fragment.js +7 -0
  227. package/3D/materials/handle/shaders/handle.fragment.js.map +1 -0
  228. package/3D/materials/handle/shaders/handle.vertex.d.ts +5 -0
  229. package/3D/materials/handle/shaders/handle.vertex.js +7 -0
  230. package/3D/materials/handle/shaders/handle.vertex.js.map +1 -0
  231. package/3D/materials/index.d.ts +5 -1
  232. package/3D/materials/index.js +5 -1
  233. package/3D/materials/index.js.map +1 -1
  234. package/3D/materials/mrdl/index.d.ts +3 -0
  235. package/3D/materials/mrdl/index.js +4 -0
  236. package/3D/materials/mrdl/index.js.map +1 -0
  237. package/3D/materials/mrdl/mrdlBackplateMaterial.d.ts +147 -0
  238. package/3D/materials/mrdl/mrdlBackplateMaterial.js +410 -0
  239. package/3D/materials/mrdl/mrdlBackplateMaterial.js.map +1 -0
  240. package/3D/materials/mrdl/mrdlSliderBarMaterial.d.ts +333 -0
  241. package/3D/materials/mrdl/mrdlSliderBarMaterial.js +787 -0
  242. package/3D/materials/mrdl/mrdlSliderBarMaterial.js.map +1 -0
  243. package/3D/materials/mrdl/mrdlSliderThumbMaterial.d.ts +333 -0
  244. package/3D/materials/mrdl/mrdlSliderThumbMaterial.js +787 -0
  245. package/3D/materials/mrdl/mrdlSliderThumbMaterial.js.map +1 -0
  246. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.d.ts +5 -0
  247. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js +7 -0
  248. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js.map +1 -0
  249. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.d.ts +5 -0
  250. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js +7 -0
  251. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js.map +1 -0
  252. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.d.ts +5 -0
  253. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js +7 -0
  254. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js.map +1 -0
  255. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.d.ts +5 -0
  256. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js +7 -0
  257. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js.map +1 -0
  258. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.d.ts +5 -0
  259. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js +7 -0
  260. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js.map +1 -0
  261. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.d.ts +5 -0
  262. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js +7 -0
  263. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js.map +1 -0
  264. package/3D/vector3WithInfo.js +1 -1
  265. package/index.d.ts +2 -2
  266. package/index.js +2 -2
  267. package/index.js.map +1 -1
  268. package/legacy/legacy.js +2 -2
  269. package/package.json +126 -9
  270. package/3D/materials/shaders/fluent.fragment.js +0 -7
  271. package/3D/materials/shaders/fluent.fragment.js.map +0 -1
  272. package/3D/materials/shaders/fluent.vertex.js.map +0 -1
@@ -2,6 +2,7 @@ import { Nullable } from "@babylonjs/core/types";
2
2
  import { Observable } from "@babylonjs/core/Misc/observable";
3
3
  import { Control } from "./control";
4
4
  import { Measure } from "../measure";
5
+ import { ICanvasRenderingContext, IImage } from "@babylonjs/core/Engines/ICanvas";
5
6
  /**
6
7
  * Class used to create 2D images
7
8
  */
@@ -24,11 +25,11 @@ export declare class Image extends Control {
24
25
  private _cellWidth;
25
26
  private _cellHeight;
26
27
  private _cellId;
27
- private _populateNinePatchSlicesFromImage;
28
28
  private _sliceLeft;
29
29
  private _sliceRight;
30
30
  private _sliceTop;
31
31
  private _sliceBottom;
32
+ private _populateNinePatchSlicesFromImage;
32
33
  private _detectPointerOnOpaqueOnly;
33
34
  private _imageDataCache;
34
35
  /**
@@ -43,11 +44,6 @@ export declare class Image extends Control {
43
44
  * Gets a boolean indicating that the content is loaded
44
45
  */
45
46
  get isLoaded(): boolean;
46
- /**
47
- * Gets or sets a boolean indicating if nine patch slices (left, top, right, bottom) should be read from image data
48
- */
49
- get populateNinePatchSlicesFromImage(): boolean;
50
- set populateNinePatchSlicesFromImage(value: boolean);
51
47
  /**
52
48
  * Gets or sets a boolean indicating if pointers should only be validated on pixels with alpha > 0.
53
49
  * Beware using this as this will comsume more memory as the image has to be stored twice
@@ -94,6 +90,19 @@ export declare class Image extends Control {
94
90
  */
95
91
  get sourceHeight(): number;
96
92
  set sourceHeight(value: number);
93
+ /**
94
+ * Gets the image width
95
+ */
96
+ get imageWidth(): number;
97
+ /**
98
+ * Gets the image height
99
+ */
100
+ get imageHeight(): number;
101
+ /**
102
+ * Gets or sets a boolean indicating if nine patch slices (left, top, right, bottom) should be read from image data
103
+ */
104
+ get populateNinePatchSlicesFromImage(): boolean;
105
+ set populateNinePatchSlicesFromImage(value: boolean);
97
106
  /** Indicates if the format of the image is SVG */
98
107
  get isSVG(): boolean;
99
108
  /** Gets the status of the SVG attributes computation (sourceLeft, sourceTop, sourceWidth, sourceHeight) */
@@ -111,13 +120,13 @@ export declare class Image extends Control {
111
120
  _rotate90(n: number, preserveProperties?: boolean): Image;
112
121
  private _handleRotationForSVGImage;
113
122
  private _rotate90SourceProperties;
123
+ private _extractNinePatchSliceDataFromImage;
114
124
  /**
115
125
  * Gets or sets the internal DOM image used to render the control
116
126
  */
117
- set domImage(value: HTMLImageElement);
118
- get domImage(): HTMLImageElement;
127
+ set domImage(value: IImage);
128
+ get domImage(): IImage;
119
129
  private _onImageLoaded;
120
- private _extractNinePatchSliceDataFromImage;
121
130
  /**
122
131
  * Gets the image source url
123
132
  */
@@ -169,11 +178,10 @@ export declare class Image extends Control {
169
178
  protected _getTypeName(): string;
170
179
  /** Force the control to synchronize with its content */
171
180
  synchronizeSizeWithContent(): void;
172
- protected _processMeasures(parentMeasure: Measure, context: CanvasRenderingContext2D): void;
181
+ protected _processMeasures(parentMeasure: Measure, context: ICanvasRenderingContext): void;
173
182
  private _prepareWorkingCanvasForOpaqueDetection;
174
183
  private _drawImage;
175
- _draw(context: CanvasRenderingContext2D): void;
176
- private _renderCornerPatch;
184
+ _draw(context: ICanvasRenderingContext): void;
177
185
  private _renderNinePatch;
178
186
  dispose(): void;
179
187
  /** STRETCH_NONE */
@@ -1,9 +1,10 @@
1
1
  import { __decorate, __extends } from "tslib";
2
- import { Observable } from "@babylonjs/core/Misc/observable";
3
- import { Tools } from "@babylonjs/core/Misc/tools";
4
- import { Control } from "./control";
5
- import { _TypeStore } from "@babylonjs/core/Misc/typeStore";
6
- import { serialize } from "@babylonjs/core/Misc/decorators";
2
+ import { Observable } from "@babylonjs/core/Misc/observable.js";
3
+ import { Tools } from "@babylonjs/core/Misc/tools.js";
4
+ import { Control } from "./control.js";
5
+ import { RegisterClass } from "@babylonjs/core/Misc/typeStore.js";
6
+ import { serialize } from "@babylonjs/core/Misc/decorators.js";
7
+ import { Engine } from "@babylonjs/core/Engines/engine.js";
7
8
  /**
8
9
  * Class used to create 2D images
9
10
  */
@@ -54,25 +55,6 @@ var Image = /** @class */ (function (_super) {
54
55
  enumerable: false,
55
56
  configurable: true
56
57
  });
57
- Object.defineProperty(Image.prototype, "populateNinePatchSlicesFromImage", {
58
- /**
59
- * Gets or sets a boolean indicating if nine patch slices (left, top, right, bottom) should be read from image data
60
- */
61
- get: function () {
62
- return this._populateNinePatchSlicesFromImage;
63
- },
64
- set: function (value) {
65
- if (this._populateNinePatchSlicesFromImage === value) {
66
- return;
67
- }
68
- this._populateNinePatchSlicesFromImage = value;
69
- if (this._populateNinePatchSlicesFromImage && this._loaded) {
70
- this._extractNinePatchSliceDataFromImage();
71
- }
72
- },
73
- enumerable: false,
74
- configurable: true
75
- });
76
58
  Object.defineProperty(Image.prototype, "detectPointerOnOpaqueOnly", {
77
59
  /**
78
60
  * Gets or sets a boolean indicating if pointers should only be validated on pixels with alpha > 0.
@@ -226,6 +208,45 @@ var Image = /** @class */ (function (_super) {
226
208
  enumerable: false,
227
209
  configurable: true
228
210
  });
211
+ Object.defineProperty(Image.prototype, "imageWidth", {
212
+ /**
213
+ * Gets the image width
214
+ */
215
+ get: function () {
216
+ return this._imageWidth;
217
+ },
218
+ enumerable: false,
219
+ configurable: true
220
+ });
221
+ Object.defineProperty(Image.prototype, "imageHeight", {
222
+ /**
223
+ * Gets the image height
224
+ */
225
+ get: function () {
226
+ return this._imageHeight;
227
+ },
228
+ enumerable: false,
229
+ configurable: true
230
+ });
231
+ Object.defineProperty(Image.prototype, "populateNinePatchSlicesFromImage", {
232
+ /**
233
+ * Gets or sets a boolean indicating if nine patch slices (left, top, right, bottom) should be read from image data
234
+ */
235
+ get: function () {
236
+ return this._populateNinePatchSlicesFromImage;
237
+ },
238
+ set: function (value) {
239
+ if (this._populateNinePatchSlicesFromImage === value) {
240
+ return;
241
+ }
242
+ this._populateNinePatchSlicesFromImage = value;
243
+ if (this._populateNinePatchSlicesFromImage && this._loaded) {
244
+ this._extractNinePatchSliceDataFromImage();
245
+ }
246
+ },
247
+ enumerable: false,
248
+ configurable: true
249
+ });
229
250
  Object.defineProperty(Image.prototype, "isSVG", {
230
251
  /** Indicates if the format of the image is SVG */
231
252
  get: function () {
@@ -279,13 +300,17 @@ var Image = /** @class */ (function (_super) {
279
300
  });
280
301
  /** @hidden */
281
302
  Image.prototype._rotate90 = function (n, preserveProperties) {
303
+ var _a, _b;
282
304
  if (preserveProperties === void 0) { preserveProperties = false; }
283
- var canvas = document.createElement("canvas");
284
- var context = canvas.getContext("2d");
285
305
  var width = this._domImage.width;
286
306
  var height = this._domImage.height;
287
- canvas.width = height;
288
- canvas.height = width;
307
+ // Should abstract platform instead of using LastCreatedEngine
308
+ var engine = ((_b = (_a = this._host) === null || _a === void 0 ? void 0 : _a.getScene()) === null || _b === void 0 ? void 0 : _b.getEngine()) || Engine.LastCreatedEngine;
309
+ if (!engine) {
310
+ throw new Error("Invalid engine. Unable to create a canvas.");
311
+ }
312
+ var canvas = engine.createCanvas(height, width);
313
+ var context = canvas.getContext("2d");
289
314
  context.translate(canvas.width / 2, canvas.height / 2);
290
315
  context.rotate((n * Math.PI) / 2);
291
316
  context.drawImage(this._domImage, 0, 0, width, height, -width / 2, -height / 2, width, height);
@@ -345,6 +370,50 @@ var Image = /** @class */ (function (_super) {
345
370
  dstImage.sourceWidth = dstWidth;
346
371
  dstImage.sourceHeight = dstHeight;
347
372
  };
373
+ Image.prototype._extractNinePatchSliceDataFromImage = function () {
374
+ var _a, _b;
375
+ var width = this._domImage.width;
376
+ var height = this._domImage.height;
377
+ if (!this._workingCanvas) {
378
+ var engine = ((_b = (_a = this._host) === null || _a === void 0 ? void 0 : _a.getScene()) === null || _b === void 0 ? void 0 : _b.getEngine()) || Engine.LastCreatedEngine;
379
+ if (!engine) {
380
+ throw new Error("Invalid engine. Unable to create a canvas.");
381
+ }
382
+ this._workingCanvas = engine.createCanvas(width, height);
383
+ }
384
+ var canvas = this._workingCanvas;
385
+ var context = canvas.getContext("2d");
386
+ context.drawImage(this._domImage, 0, 0, width, height);
387
+ var imageData = context.getImageData(0, 0, width, height);
388
+ // Left and right
389
+ this._sliceLeft = -1;
390
+ this._sliceRight = -1;
391
+ for (var x = 0; x < width; x++) {
392
+ var alpha = imageData.data[x * 4 + 3];
393
+ if (alpha > 127 && this._sliceLeft === -1) {
394
+ this._sliceLeft = x;
395
+ continue;
396
+ }
397
+ if (alpha < 127 && this._sliceLeft > -1) {
398
+ this._sliceRight = x;
399
+ break;
400
+ }
401
+ }
402
+ // top and bottom
403
+ this._sliceTop = -1;
404
+ this._sliceBottom = -1;
405
+ for (var y = 0; y < height; y++) {
406
+ var alpha = imageData.data[y * width * 4 + 3];
407
+ if (alpha > 127 && this._sliceTop === -1) {
408
+ this._sliceTop = y;
409
+ continue;
410
+ }
411
+ if (alpha < 127 && this._sliceTop > -1) {
412
+ this._sliceBottom = y;
413
+ break;
414
+ }
415
+ }
416
+ };
348
417
  Object.defineProperty(Image.prototype, "domImage", {
349
418
  get: function () {
350
419
  return this._domImage;
@@ -383,47 +452,6 @@ var Image = /** @class */ (function (_super) {
383
452
  this.onImageLoadedObservable.notifyObservers(this);
384
453
  this._markAsDirty();
385
454
  };
386
- Image.prototype._extractNinePatchSliceDataFromImage = function () {
387
- if (!this._workingCanvas) {
388
- this._workingCanvas = document.createElement("canvas");
389
- }
390
- var canvas = this._workingCanvas;
391
- var context = canvas.getContext("2d");
392
- var width = this._domImage.width;
393
- var height = this._domImage.height;
394
- canvas.width = width;
395
- canvas.height = height;
396
- context.drawImage(this._domImage, 0, 0, width, height);
397
- var imageData = context.getImageData(0, 0, width, height);
398
- // Left and right
399
- this._sliceLeft = -1;
400
- this._sliceRight = -1;
401
- for (var x = 0; x < width; x++) {
402
- var alpha = imageData.data[x * 4 + 3];
403
- if (alpha > 127 && this._sliceLeft === -1) {
404
- this._sliceLeft = x;
405
- continue;
406
- }
407
- if (alpha < 127 && this._sliceLeft > -1) {
408
- this._sliceRight = x;
409
- break;
410
- }
411
- }
412
- // top and bottom
413
- this._sliceTop = -1;
414
- this._sliceBottom = -1;
415
- for (var y = 0; y < height; y++) {
416
- var alpha = imageData.data[y * width * 4 + 3];
417
- if (alpha > 127 && this._sliceTop === -1) {
418
- this._sliceTop = y;
419
- continue;
420
- }
421
- if (alpha < 127 && this._sliceTop > -1) {
422
- this._sliceBottom = y;
423
- break;
424
- }
425
- }
426
- };
427
455
  Object.defineProperty(Image.prototype, "source", {
428
456
  /**
429
457
  * Gets the image source url
@@ -436,6 +464,7 @@ var Image = /** @class */ (function (_super) {
436
464
  */
437
465
  set: function (value) {
438
466
  var _this = this;
467
+ var _a, _b;
439
468
  if (this._source === value) {
440
469
  return;
441
470
  }
@@ -445,7 +474,12 @@ var Image = /** @class */ (function (_super) {
445
474
  if (value) {
446
475
  value = this._svgCheck(value);
447
476
  }
448
- this._domImage = document.createElement("img");
477
+ // Should abstract platform instead of using LastCreatedEngine
478
+ var engine = ((_b = (_a = this._host) === null || _a === void 0 ? void 0 : _a.getScene()) === null || _b === void 0 ? void 0 : _b.getEngine()) || Engine.LastCreatedEngine;
479
+ if (!engine) {
480
+ throw new Error("Invalid engine. Unable to create a canvas.");
481
+ }
482
+ this._domImage = engine.createCanvasImage();
449
483
  this._domImage.onload = function () {
450
484
  _this._onImageLoaded();
451
485
  };
@@ -529,11 +563,12 @@ var Image = /** @class */ (function (_super) {
529
563
  var elem_matrix_d = 1;
530
564
  var elem_matrix_e = 0;
531
565
  var elem_matrix_f = 0;
566
+ var mainMatrix = elem.transform.baseVal.consolidate().matrix;
532
567
  if (elem.transform && elem.transform.baseVal.consolidate()) {
533
- elem_matrix_a = elem.transform.baseVal.consolidate().matrix.a;
534
- elem_matrix_d = elem.transform.baseVal.consolidate().matrix.d;
535
- elem_matrix_e = elem.transform.baseVal.consolidate().matrix.e;
536
- elem_matrix_f = elem.transform.baseVal.consolidate().matrix.f;
568
+ elem_matrix_a = mainMatrix.a;
569
+ elem_matrix_d = mainMatrix.d;
570
+ elem_matrix_e = mainMatrix.e;
571
+ elem_matrix_f = mainMatrix.f;
537
572
  }
538
573
  // compute source coordinates and dimensions
539
574
  this.sourceLeft = ((elem_matrix_a * elem_bbox.x + elem_matrix_e) * docwidth) / vb_width;
@@ -664,18 +699,21 @@ var Image = /** @class */ (function (_super) {
664
699
  _super.prototype._processMeasures.call(this, parentMeasure, context);
665
700
  };
666
701
  Image.prototype._prepareWorkingCanvasForOpaqueDetection = function () {
702
+ var _a, _b;
667
703
  if (!this._detectPointerOnOpaqueOnly) {
668
704
  return;
669
705
  }
706
+ var width = this._currentMeasure.width;
707
+ var height = this._currentMeasure.height;
670
708
  if (!this._workingCanvas) {
671
- this._workingCanvas = document.createElement("canvas");
709
+ var engine = ((_b = (_a = this._host) === null || _a === void 0 ? void 0 : _a.getScene()) === null || _b === void 0 ? void 0 : _b.getEngine()) || Engine.LastCreatedEngine;
710
+ if (!engine) {
711
+ throw new Error("Invalid engine. Unable to create a canvas.");
712
+ }
713
+ this._workingCanvas = engine.createCanvas(width, height);
672
714
  }
673
715
  var canvas = this._workingCanvas;
674
- var width = this._currentMeasure.width;
675
- var height = this._currentMeasure.height;
676
716
  var context = canvas.getContext("2d");
677
- canvas.width = width;
678
- canvas.height = height;
679
717
  context.clearRect(0, 0, width, height);
680
718
  };
681
719
  Image.prototype._drawImage = function (context, sx, sy, sw, sh, tx, ty, tw, th) {
@@ -739,41 +777,37 @@ var Image = /** @class */ (function (_super) {
739
777
  }
740
778
  context.restore();
741
779
  };
742
- Image.prototype._renderCornerPatch = function (context, x, y, width, height, targetX, targetY) {
743
- this._drawImage(context, x, y, width, height, this._currentMeasure.left + targetX, this._currentMeasure.top + targetY, width, height);
744
- };
745
780
  Image.prototype._renderNinePatch = function (context) {
746
- var height = this._imageHeight;
747
781
  var leftWidth = this._sliceLeft;
748
782
  var topHeight = this._sliceTop;
749
783
  var bottomHeight = this._imageHeight - this._sliceBottom;
750
784
  var rightWidth = this._imageWidth - this._sliceRight;
751
- var left = 0;
752
- var top = 0;
753
- if (this._populateNinePatchSlicesFromImage) {
754
- left = 1;
755
- top = 1;
756
- height -= 2;
757
- leftWidth -= 1;
758
- topHeight -= 1;
759
- bottomHeight -= 1;
760
- rightWidth -= 1;
761
- }
762
785
  var centerWidth = this._sliceRight - this._sliceLeft;
763
- var targetCenterWidth = this._currentMeasure.width - rightWidth - this.sliceLeft;
764
- var targetTopHeight = this._currentMeasure.height - height + this._sliceBottom;
765
- // Corners
766
- this._renderCornerPatch(context, left, top, leftWidth, topHeight, 0, 0);
767
- this._renderCornerPatch(context, left, this._sliceBottom, leftWidth, height - this._sliceBottom, 0, targetTopHeight);
768
- this._renderCornerPatch(context, this._sliceRight, top, rightWidth, topHeight, this._currentMeasure.width - rightWidth, 0);
769
- this._renderCornerPatch(context, this._sliceRight, this._sliceBottom, rightWidth, height - this._sliceBottom, this._currentMeasure.width - rightWidth, targetTopHeight);
786
+ var centerHeight = this._sliceBottom - this._sliceTop;
787
+ var targetCenterWidth = (this._currentMeasure.width - rightWidth - leftWidth) + 2;
788
+ var targetCenterHeight = (this._currentMeasure.height - bottomHeight - topHeight) + 2;
789
+ var centerLeftOffset = this._currentMeasure.left + leftWidth - 1;
790
+ var centerTopOffset = this._currentMeasure.top + topHeight - 1;
791
+ var rightOffset = this._currentMeasure.left + this._currentMeasure.width - rightWidth;
792
+ var bottomOffset = this._currentMeasure.top + this._currentMeasure.height - bottomHeight;
793
+ //Top Left
794
+ this._drawImage(context, 0, 0, leftWidth, topHeight, this._currentMeasure.left, this._currentMeasure.top, leftWidth, topHeight);
795
+ //Top
796
+ this._drawImage(context, this._sliceLeft, 0, centerWidth, topHeight, centerLeftOffset, this._currentMeasure.top, targetCenterWidth, topHeight);
797
+ //Top Right
798
+ this._drawImage(context, this.sliceRight, 0, rightWidth, topHeight, rightOffset, this._currentMeasure.top, rightWidth, topHeight);
799
+ //Left
800
+ this._drawImage(context, 0, this._sliceTop, leftWidth, centerHeight, this._currentMeasure.left, centerTopOffset, leftWidth, targetCenterHeight);
770
801
  // Center
771
- this._drawImage(context, this._sliceLeft, this._sliceTop, centerWidth, this._sliceBottom - this._sliceTop, this._currentMeasure.left + leftWidth, this._currentMeasure.top + topHeight, targetCenterWidth, targetTopHeight - topHeight);
772
- // Borders
773
- this._drawImage(context, left, this._sliceTop, leftWidth, this._sliceBottom - this._sliceTop, this._currentMeasure.left, this._currentMeasure.top + topHeight, leftWidth, targetTopHeight - topHeight);
774
- this._drawImage(context, this._sliceRight, this._sliceTop, leftWidth, this._sliceBottom - this._sliceTop, this._currentMeasure.left + this._currentMeasure.width - rightWidth, this._currentMeasure.top + topHeight, leftWidth, targetTopHeight - topHeight);
775
- this._drawImage(context, this._sliceLeft, top, centerWidth, topHeight, this._currentMeasure.left + leftWidth, this._currentMeasure.top, targetCenterWidth, topHeight);
776
- this._drawImage(context, this._sliceLeft, this._sliceBottom, centerWidth, bottomHeight, this._currentMeasure.left + leftWidth, this._currentMeasure.top + targetTopHeight, targetCenterWidth, bottomHeight);
802
+ this._drawImage(context, this._sliceLeft, this._sliceTop, centerWidth, centerHeight, centerLeftOffset, centerTopOffset, targetCenterWidth, targetCenterHeight);
803
+ //Right
804
+ this._drawImage(context, this._sliceRight, this._sliceTop, rightWidth, centerHeight, rightOffset, centerTopOffset, rightWidth, targetCenterHeight);
805
+ //Bottom Left
806
+ this._drawImage(context, 0, this._sliceBottom, leftWidth, bottomHeight, this._currentMeasure.left, bottomOffset, leftWidth, bottomHeight);
807
+ //Bottom
808
+ this._drawImage(context, this.sliceLeft, this._sliceBottom, centerWidth, bottomHeight, centerLeftOffset, bottomOffset, targetCenterWidth, bottomHeight);
809
+ //Bottom Right
810
+ this._drawImage(context, this._sliceRight, this._sliceBottom, rightWidth, bottomHeight, rightOffset, bottomOffset, rightWidth, bottomHeight);
777
811
  };
778
812
  Image.prototype.dispose = function () {
779
813
  _super.prototype.dispose.call(this);
@@ -791,9 +825,6 @@ var Image = /** @class */ (function (_super) {
791
825
  Image.STRETCH_EXTEND = 3;
792
826
  /** NINE_PATCH */
793
827
  Image.STRETCH_NINE_PATCH = 4;
794
- __decorate([
795
- serialize()
796
- ], Image.prototype, "populateNinePatchSlicesFromImage", null);
797
828
  __decorate([
798
829
  serialize()
799
830
  ], Image.prototype, "detectPointerOnOpaqueOnly", null);
@@ -821,6 +852,9 @@ var Image = /** @class */ (function (_super) {
821
852
  __decorate([
822
853
  serialize()
823
854
  ], Image.prototype, "sourceHeight", null);
855
+ __decorate([
856
+ serialize()
857
+ ], Image.prototype, "populateNinePatchSlicesFromImage", null);
824
858
  __decorate([
825
859
  serialize()
826
860
  ], Image.prototype, "autoScale", null);
@@ -830,8 +864,17 @@ var Image = /** @class */ (function (_super) {
830
864
  __decorate([
831
865
  serialize()
832
866
  ], Image.prototype, "source", null);
867
+ __decorate([
868
+ serialize()
869
+ ], Image.prototype, "cellWidth", null);
870
+ __decorate([
871
+ serialize()
872
+ ], Image.prototype, "cellHeight", null);
873
+ __decorate([
874
+ serialize()
875
+ ], Image.prototype, "cellId", null);
833
876
  return Image;
834
877
  }(Control));
835
878
  export { Image };
836
- _TypeStore.RegisteredTypes["BABYLON.GUI.Image"] = Image;
879
+ RegisterClass("BABYLON.GUI.Image", Image);
837
880
  //# sourceMappingURL=image.js.map