@babylonjs/gui 9.13.0 → 9.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (283) hide show
  1. package/2D/FrameGraph/pure.d.ts +2 -0
  2. package/2D/FrameGraph/pure.js +3 -0
  3. package/2D/FrameGraph/pure.js.map +1 -0
  4. package/2D/FrameGraph/renderGraphGUIBlock.d.ts +3 -41
  5. package/2D/FrameGraph/renderGraphGUIBlock.js +5 -64
  6. package/2D/FrameGraph/renderGraphGUIBlock.js.map +1 -1
  7. package/2D/FrameGraph/renderGraphGUIBlock.pure.d.ts +48 -0
  8. package/2D/FrameGraph/renderGraphGUIBlock.pure.js +78 -0
  9. package/2D/FrameGraph/renderGraphGUIBlock.pure.js.map +1 -0
  10. package/2D/controls/button.d.ts +3 -107
  11. package/2D/controls/button.js +5 -243
  12. package/2D/controls/button.js.map +1 -1
  13. package/2D/controls/button.pure.d.ts +114 -0
  14. package/2D/controls/button.pure.js +257 -0
  15. package/2D/controls/button.pure.js.map +1 -0
  16. package/2D/controls/checkbox.d.ts +3 -51
  17. package/2D/controls/checkbox.js +5 -161
  18. package/2D/controls/checkbox.js.map +1 -1
  19. package/2D/controls/checkbox.pure.d.ts +58 -0
  20. package/2D/controls/checkbox.pure.js +175 -0
  21. package/2D/controls/checkbox.pure.js.map +1 -0
  22. package/2D/controls/colorpicker.d.ts +5 -101
  23. package/2D/controls/colorpicker.js +7 -1394
  24. package/2D/controls/colorpicker.js.map +1 -1
  25. package/2D/controls/colorpicker.pure.d.ts +106 -0
  26. package/2D/controls/colorpicker.pure.js +1406 -0
  27. package/2D/controls/colorpicker.pure.js.map +1 -0
  28. package/2D/controls/container.d.ts +3 -177
  29. package/2D/controls/container.js +5 -615
  30. package/2D/controls/container.js.map +1 -1
  31. package/2D/controls/container.pure.d.ts +184 -0
  32. package/2D/controls/container.pure.js +629 -0
  33. package/2D/controls/container.pure.js.map +1 -0
  34. package/2D/controls/control.d.ts +3 -944
  35. package/2D/controls/control.js +5 -2457
  36. package/2D/controls/control.js.map +1 -1
  37. package/2D/controls/control.pure.d.ts +951 -0
  38. package/2D/controls/control.pure.js +2471 -0
  39. package/2D/controls/control.pure.js.map +1 -0
  40. package/2D/controls/displayGrid.d.ts +5 -53
  41. package/2D/controls/displayGrid.js +7 -201
  42. package/2D/controls/displayGrid.js.map +1 -1
  43. package/2D/controls/displayGrid.pure.d.ts +58 -0
  44. package/2D/controls/displayGrid.pure.js +213 -0
  45. package/2D/controls/displayGrid.pure.js.map +1 -0
  46. package/2D/controls/ellipse.d.ts +5 -25
  47. package/2D/controls/ellipse.js +7 -92
  48. package/2D/controls/ellipse.js.map +1 -1
  49. package/2D/controls/ellipse.pure.d.ts +30 -0
  50. package/2D/controls/ellipse.pure.js +104 -0
  51. package/2D/controls/ellipse.pure.js.map +1 -0
  52. package/2D/controls/focusableButton.d.ts +3 -15
  53. package/2D/controls/focusableButton.js +5 -22
  54. package/2D/controls/focusableButton.js.map +1 -1
  55. package/2D/controls/focusableButton.pure.d.ts +22 -0
  56. package/2D/controls/focusableButton.pure.js +36 -0
  57. package/2D/controls/focusableButton.pure.js.map +1 -0
  58. package/2D/controls/gradient/LinearGradient.d.ts +3 -43
  59. package/2D/controls/gradient/LinearGradient.js +5 -70
  60. package/2D/controls/gradient/LinearGradient.js.map +1 -1
  61. package/2D/controls/gradient/LinearGradient.pure.d.ts +50 -0
  62. package/2D/controls/gradient/LinearGradient.pure.js +84 -0
  63. package/2D/controls/gradient/LinearGradient.pure.js.map +1 -0
  64. package/2D/controls/gradient/RadialGradient.d.ts +3 -51
  65. package/2D/controls/gradient/RadialGradient.js +5 -86
  66. package/2D/controls/gradient/RadialGradient.js.map +1 -1
  67. package/2D/controls/gradient/RadialGradient.pure.d.ts +58 -0
  68. package/2D/controls/gradient/RadialGradient.pure.js +100 -0
  69. package/2D/controls/gradient/RadialGradient.pure.js.map +1 -0
  70. package/2D/controls/gradient/pure.d.ts +3 -0
  71. package/2D/controls/gradient/pure.js +4 -0
  72. package/2D/controls/gradient/pure.js.map +1 -0
  73. package/2D/controls/grid.d.ts +3 -149
  74. package/2D/controls/grid.js +5 -525
  75. package/2D/controls/grid.js.map +1 -1
  76. package/2D/controls/grid.pure.d.ts +156 -0
  77. package/2D/controls/grid.pure.js +539 -0
  78. package/2D/controls/grid.pure.js.map +1 -0
  79. package/2D/controls/image.d.ts +3 -226
  80. package/2D/controls/image.js +5 -913
  81. package/2D/controls/image.js.map +1 -1
  82. package/2D/controls/image.pure.d.ts +233 -0
  83. package/2D/controls/image.pure.js +927 -0
  84. package/2D/controls/image.pure.js.map +1 -0
  85. package/2D/controls/inputPassword.d.ts +3 -7
  86. package/2D/controls/inputPassword.js +5 -19
  87. package/2D/controls/inputPassword.js.map +1 -1
  88. package/2D/controls/inputPassword.pure.d.ts +14 -0
  89. package/2D/controls/inputPassword.pure.js +33 -0
  90. package/2D/controls/inputPassword.pure.js.map +1 -0
  91. package/2D/controls/inputText.d.ts +3 -202
  92. package/2D/controls/inputText.js +5 -1050
  93. package/2D/controls/inputText.js.map +1 -1
  94. package/2D/controls/inputText.pure.d.ts +209 -0
  95. package/2D/controls/inputText.pure.js +1064 -0
  96. package/2D/controls/inputText.pure.js.map +1 -0
  97. package/2D/controls/inputTextArea.d.ts +3 -140
  98. package/2D/controls/inputTextArea.js +5 -1023
  99. package/2D/controls/inputTextArea.js.map +1 -1
  100. package/2D/controls/inputTextArea.pure.d.ts +147 -0
  101. package/2D/controls/inputTextArea.pure.js +1037 -0
  102. package/2D/controls/inputTextArea.pure.js.map +1 -0
  103. package/2D/controls/line.d.ts +5 -74
  104. package/2D/controls/line.js +7 -234
  105. package/2D/controls/line.js.map +1 -1
  106. package/2D/controls/line.pure.d.ts +79 -0
  107. package/2D/controls/line.pure.js +246 -0
  108. package/2D/controls/line.pure.js.map +1 -0
  109. package/2D/controls/multiLine.d.ts +3 -73
  110. package/2D/controls/multiLine.js +5 -234
  111. package/2D/controls/multiLine.js.map +1 -1
  112. package/2D/controls/multiLine.pure.d.ts +80 -0
  113. package/2D/controls/multiLine.pure.js +248 -0
  114. package/2D/controls/multiLine.pure.js.map +1 -0
  115. package/2D/controls/pure.d.ts +38 -0
  116. package/2D/controls/pure.js +39 -0
  117. package/2D/controls/pure.js.map +1 -0
  118. package/2D/controls/radioButton.d.ts +3 -47
  119. package/2D/controls/radioButton.js +5 -182
  120. package/2D/controls/radioButton.js.map +1 -1
  121. package/2D/controls/radioButton.pure.d.ts +54 -0
  122. package/2D/controls/radioButton.pure.js +196 -0
  123. package/2D/controls/radioButton.pure.js.map +1 -0
  124. package/2D/controls/rectangle.d.ts +5 -43
  125. package/2D/controls/rectangle.js +7 -205
  126. package/2D/controls/rectangle.js.map +1 -1
  127. package/2D/controls/rectangle.pure.d.ts +48 -0
  128. package/2D/controls/rectangle.pure.js +217 -0
  129. package/2D/controls/rectangle.pure.js.map +1 -0
  130. package/2D/controls/scrollViewers/pure.d.ts +2 -0
  131. package/2D/controls/scrollViewers/pure.js +3 -0
  132. package/2D/controls/scrollViewers/pure.js.map +1 -0
  133. package/2D/controls/scrollViewers/scrollViewer.d.ts +3 -176
  134. package/2D/controls/scrollViewers/scrollViewer.js +5 -584
  135. package/2D/controls/scrollViewers/scrollViewer.js.map +1 -1
  136. package/2D/controls/scrollViewers/scrollViewer.pure.d.ts +183 -0
  137. package/2D/controls/scrollViewers/scrollViewer.pure.js +598 -0
  138. package/2D/controls/scrollViewers/scrollViewer.pure.js.map +1 -0
  139. package/2D/controls/sliders/imageBasedSlider.d.ts +3 -45
  140. package/2D/controls/sliders/imageBasedSlider.js +5 -165
  141. package/2D/controls/sliders/imageBasedSlider.js.map +1 -1
  142. package/2D/controls/sliders/imageBasedSlider.pure.d.ts +52 -0
  143. package/2D/controls/sliders/imageBasedSlider.pure.js +179 -0
  144. package/2D/controls/sliders/imageBasedSlider.pure.js.map +1 -0
  145. package/2D/controls/sliders/pure.d.ts +4 -0
  146. package/2D/controls/sliders/pure.js +5 -0
  147. package/2D/controls/sliders/pure.js.map +1 -0
  148. package/2D/controls/sliders/scrollBar.d.ts +3 -48
  149. package/2D/controls/sliders/scrollBar.js +5 -170
  150. package/2D/controls/sliders/scrollBar.js.map +1 -1
  151. package/2D/controls/sliders/scrollBar.pure.d.ts +55 -0
  152. package/2D/controls/sliders/scrollBar.pure.js +184 -0
  153. package/2D/controls/sliders/scrollBar.pure.js.map +1 -0
  154. package/2D/controls/sliders/slider.d.ts +3 -44
  155. package/2D/controls/sliders/slider.js +5 -278
  156. package/2D/controls/sliders/slider.js.map +1 -1
  157. package/2D/controls/sliders/slider.pure.d.ts +51 -0
  158. package/2D/controls/sliders/slider.pure.js +292 -0
  159. package/2D/controls/sliders/slider.pure.js.map +1 -0
  160. package/2D/controls/stackPanel.d.ts +3 -62
  161. package/2D/controls/stackPanel.js +5 -243
  162. package/2D/controls/stackPanel.js.map +1 -1
  163. package/2D/controls/stackPanel.pure.d.ts +69 -0
  164. package/2D/controls/stackPanel.pure.js +257 -0
  165. package/2D/controls/stackPanel.pure.js.map +1 -0
  166. package/2D/controls/statics.d.ts +3 -4
  167. package/2D/controls/statics.js +5 -47
  168. package/2D/controls/statics.js.map +1 -1
  169. package/2D/controls/statics.pure.d.ts +11 -0
  170. package/2D/controls/statics.pure.js +61 -0
  171. package/2D/controls/statics.pure.js.map +1 -0
  172. package/2D/controls/textBlock.d.ts +3 -217
  173. package/2D/controls/textBlock.js +5 -676
  174. package/2D/controls/textBlock.js.map +1 -1
  175. package/2D/controls/textBlock.pure.d.ts +224 -0
  176. package/2D/controls/textBlock.pure.js +690 -0
  177. package/2D/controls/textBlock.pure.js.map +1 -0
  178. package/2D/controls/toggleButton.d.ts +3 -91
  179. package/2D/controls/toggleButton.js +5 -226
  180. package/2D/controls/toggleButton.js.map +1 -1
  181. package/2D/controls/toggleButton.pure.d.ts +98 -0
  182. package/2D/controls/toggleButton.pure.js +240 -0
  183. package/2D/controls/toggleButton.pure.js.map +1 -0
  184. package/2D/controls/virtualKeyboard.d.ts +3 -100
  185. package/2D/controls/virtualKeyboard.js +5 -272
  186. package/2D/controls/virtualKeyboard.js.map +1 -1
  187. package/2D/controls/virtualKeyboard.pure.d.ts +107 -0
  188. package/2D/controls/virtualKeyboard.pure.js +286 -0
  189. package/2D/controls/virtualKeyboard.pure.js.map +1 -0
  190. package/2D/pure.d.ts +13 -0
  191. package/2D/pure.js +15 -0
  192. package/2D/pure.js.map +1 -0
  193. package/3D/controls/pure.d.ts +23 -0
  194. package/3D/controls/pure.js +24 -0
  195. package/3D/controls/pure.js.map +1 -0
  196. package/3D/gizmos/pure.d.ts +3 -0
  197. package/3D/gizmos/pure.js +4 -0
  198. package/3D/gizmos/pure.js.map +1 -0
  199. package/3D/materials/fluent/fluentMaterial.d.ts +5 -100
  200. package/3D/materials/fluent/fluentMaterial.js +7 -305
  201. package/3D/materials/fluent/fluentMaterial.js.map +1 -1
  202. package/3D/materials/fluent/fluentMaterial.pure.d.ts +105 -0
  203. package/3D/materials/fluent/fluentMaterial.pure.js +317 -0
  204. package/3D/materials/fluent/fluentMaterial.pure.js.map +1 -0
  205. package/3D/materials/fluent/pure.d.ts +2 -0
  206. package/3D/materials/fluent/pure.js +3 -0
  207. package/3D/materials/fluent/pure.js.map +1 -0
  208. package/3D/materials/fluentBackplate/fluentBackplateMaterial.d.ts +5 -164
  209. package/3D/materials/fluentBackplate/fluentBackplateMaterial.js +7 -488
  210. package/3D/materials/fluentBackplate/fluentBackplateMaterial.js.map +1 -1
  211. package/3D/materials/fluentBackplate/fluentBackplateMaterial.pure.d.ts +169 -0
  212. package/3D/materials/fluentBackplate/fluentBackplateMaterial.pure.js +500 -0
  213. package/3D/materials/fluentBackplate/fluentBackplateMaterial.pure.js.map +1 -0
  214. package/3D/materials/fluentBackplate/pure.d.ts +2 -0
  215. package/3D/materials/fluentBackplate/pure.js +3 -0
  216. package/3D/materials/fluentBackplate/pure.js.map +1 -0
  217. package/3D/materials/fluentButton/fluentButtonMaterial.d.ts +5 -200
  218. package/3D/materials/fluentButton/fluentButtonMaterial.js +7 -563
  219. package/3D/materials/fluentButton/fluentButtonMaterial.js.map +1 -1
  220. package/3D/materials/fluentButton/fluentButtonMaterial.pure.d.ts +205 -0
  221. package/3D/materials/fluentButton/fluentButtonMaterial.pure.js +575 -0
  222. package/3D/materials/fluentButton/fluentButtonMaterial.pure.js.map +1 -0
  223. package/3D/materials/fluentButton/pure.d.ts +2 -0
  224. package/3D/materials/fluentButton/pure.js +3 -0
  225. package/3D/materials/fluentButton/pure.js.map +1 -0
  226. package/3D/materials/handle/handleMaterial.d.ts +5 -66
  227. package/3D/materials/handle/handleMaterial.js +5 -118
  228. package/3D/materials/handle/handleMaterial.js.map +1 -1
  229. package/3D/materials/handle/handleMaterial.pure.d.ts +66 -0
  230. package/3D/materials/handle/handleMaterial.pure.js +119 -0
  231. package/3D/materials/handle/handleMaterial.pure.js.map +1 -0
  232. package/3D/materials/handle/pure.d.ts +2 -0
  233. package/3D/materials/handle/pure.js +3 -0
  234. package/3D/materials/handle/pure.js.map +1 -0
  235. package/3D/materials/mrdl/mrdlBackglowMaterial.d.ts +5 -85
  236. package/3D/materials/mrdl/mrdlBackglowMaterial.js +7 -299
  237. package/3D/materials/mrdl/mrdlBackglowMaterial.js.map +1 -1
  238. package/3D/materials/mrdl/mrdlBackglowMaterial.pure.d.ts +90 -0
  239. package/3D/materials/mrdl/mrdlBackglowMaterial.pure.js +311 -0
  240. package/3D/materials/mrdl/mrdlBackglowMaterial.pure.js.map +1 -0
  241. package/3D/materials/mrdl/mrdlBackplateMaterial.d.ts +5 -145
  242. package/3D/materials/mrdl/mrdlBackplateMaterial.js +7 -433
  243. package/3D/materials/mrdl/mrdlBackplateMaterial.js.map +1 -1
  244. package/3D/materials/mrdl/mrdlBackplateMaterial.pure.d.ts +157 -0
  245. package/3D/materials/mrdl/mrdlBackplateMaterial.pure.js +452 -0
  246. package/3D/materials/mrdl/mrdlBackplateMaterial.pure.js.map +1 -0
  247. package/3D/materials/mrdl/mrdlFrontplateMaterial.d.ts +5 -183
  248. package/3D/materials/mrdl/mrdlFrontplateMaterial.js +7 -532
  249. package/3D/materials/mrdl/mrdlFrontplateMaterial.js.map +1 -1
  250. package/3D/materials/mrdl/mrdlFrontplateMaterial.pure.d.ts +188 -0
  251. package/3D/materials/mrdl/mrdlFrontplateMaterial.pure.js +544 -0
  252. package/3D/materials/mrdl/mrdlFrontplateMaterial.pure.js.map +1 -0
  253. package/3D/materials/mrdl/mrdlInnerquadMaterial.d.ts +5 -54
  254. package/3D/materials/mrdl/mrdlInnerquadMaterial.js +7 -227
  255. package/3D/materials/mrdl/mrdlInnerquadMaterial.js.map +1 -1
  256. package/3D/materials/mrdl/mrdlInnerquadMaterial.pure.d.ts +59 -0
  257. package/3D/materials/mrdl/mrdlInnerquadMaterial.pure.js +239 -0
  258. package/3D/materials/mrdl/mrdlInnerquadMaterial.pure.js.map +1 -0
  259. package/3D/materials/mrdl/mrdlSliderBarMaterial.d.ts +5 -334
  260. package/3D/materials/mrdl/mrdlSliderBarMaterial.js +7 -855
  261. package/3D/materials/mrdl/mrdlSliderBarMaterial.js.map +1 -1
  262. package/3D/materials/mrdl/mrdlSliderBarMaterial.pure.d.ts +346 -0
  263. package/3D/materials/mrdl/mrdlSliderBarMaterial.pure.js +874 -0
  264. package/3D/materials/mrdl/mrdlSliderBarMaterial.pure.js.map +1 -0
  265. package/3D/materials/mrdl/mrdlSliderThumbMaterial.d.ts +5 -334
  266. package/3D/materials/mrdl/mrdlSliderThumbMaterial.js +7 -855
  267. package/3D/materials/mrdl/mrdlSliderThumbMaterial.js.map +1 -1
  268. package/3D/materials/mrdl/mrdlSliderThumbMaterial.pure.d.ts +346 -0
  269. package/3D/materials/mrdl/mrdlSliderThumbMaterial.pure.js +874 -0
  270. package/3D/materials/mrdl/mrdlSliderThumbMaterial.pure.js.map +1 -0
  271. package/3D/materials/mrdl/pure.d.ts +7 -0
  272. package/3D/materials/mrdl/pure.js +8 -0
  273. package/3D/materials/mrdl/pure.js.map +1 -0
  274. package/3D/materials/pure.d.ts +6 -0
  275. package/3D/materials/pure.js +8 -0
  276. package/3D/materials/pure.js.map +1 -0
  277. package/3D/pure.d.ts +6 -0
  278. package/3D/pure.js +8 -0
  279. package/3D/pure.js.map +1 -0
  280. package/package.json +50 -3
  281. package/pure.d.ts +3 -0
  282. package/pure.js +5 -0
  283. package/pure.js.map +1 -0
@@ -1,206 +1,8 @@
1
- import { __decorate } from "@babylonjs/core/tslib.es6.js";
2
- import { Container } from "./container.js";
3
- import { RegisterClass } from "@babylonjs/core/Misc/typeStore.js";
4
- import { serialize } from "@babylonjs/core/Misc/decorators.js";
5
- /** Class used to create rectangle container */
6
- export class Rectangle extends Container {
7
- /** Gets or sets border thickness */
8
- get thickness() {
9
- return this._thickness;
10
- }
11
- set thickness(value) {
12
- if (this._thickness === value) {
13
- return;
14
- }
15
- this._thickness = value;
16
- this._markAsDirty();
17
- }
18
- /** Gets or sets the corner radius of all angles */
19
- get cornerRadius() {
20
- return this._cornerRadius[0];
21
- }
22
- set cornerRadius(value) {
23
- if (value < 0) {
24
- value = 0;
25
- }
26
- if (this._cornerRadius[0] === value && this._cornerRadius[1] === value && this._cornerRadius[2] === value && this._cornerRadius[3] === value) {
27
- return;
28
- }
29
- this._cornerRadius[0] = this._cornerRadius[1] = this._cornerRadius[2] = this._cornerRadius[3] = value;
30
- this._markAsDirty();
31
- }
32
- /** Gets or sets the corner radius top left angle */
33
- get cornerRadiusX() {
34
- return this._cornerRadius[0];
35
- }
36
- set cornerRadiusX(value) {
37
- if (this._cornerRadius[0] === value) {
38
- return;
39
- }
40
- this._cornerRadius[0] = value;
41
- }
42
- /** Gets or sets the corner radius top right angle */
43
- get cornerRadiusY() {
44
- return this._cornerRadius[1];
45
- }
46
- set cornerRadiusY(value) {
47
- if (this._cornerRadius[1] === value) {
48
- return;
49
- }
50
- this._cornerRadius[1] = value;
51
- }
52
- /** Gets or sets the corner radius bottom left angle */
53
- get cornerRadiusZ() {
54
- return this._cornerRadius[2];
55
- }
56
- set cornerRadiusZ(value) {
57
- if (this._cornerRadius[2] === value) {
58
- return;
59
- }
60
- this._cornerRadius[2] = value;
61
- }
62
- /** Gets or sets the corner radius bottom right angle */
63
- get cornerRadiusW() {
64
- return this._cornerRadius[3];
65
- }
66
- set cornerRadiusW(value) {
67
- if (this._cornerRadius[3] === value) {
68
- return;
69
- }
70
- this._cornerRadius[3] = value;
71
- }
72
- /**
73
- * Creates a new Rectangle
74
- * @param name defines the control name
75
- */
76
- constructor(name) {
77
- super(name);
78
- this.name = name;
79
- this._thickness = 1;
80
- this._cornerRadius = [0, 0, 0, 0];
81
- this._cachedRadius = [0, 0, 0, 0];
82
- }
83
- _getTypeName() {
84
- return "Rectangle";
85
- }
86
- /** @internal */
87
- _computeAdditionalOffsetX() {
88
- let additionalWidth = 0;
89
- if (this._cornerRadius[0] !== 0 || this._cornerRadius[1] !== 0 || this._cornerRadius[2] !== 0 || this._cornerRadius[3] !== 0) {
90
- // Take in account the aliasing
91
- additionalWidth += 1;
92
- }
93
- if (this.thickness) {
94
- additionalWidth += this.thickness / 2;
95
- }
96
- return additionalWidth;
97
- }
98
- /** @internal */
99
- _computeAdditionalOffsetY() {
100
- let additionalHeight = 0;
101
- if (this._cornerRadius[0] !== 0 || this._cornerRadius[1] !== 0 || this._cornerRadius[2] !== 0 || this._cornerRadius[3] !== 0) {
102
- // Take in account the aliasing
103
- additionalHeight += 1;
104
- }
105
- if (this.thickness) {
106
- additionalHeight += this.thickness / 2;
107
- }
108
- return additionalHeight;
109
- }
110
- _getRectangleFill(context) {
111
- return this._getBackgroundColor(context);
112
- }
113
- _localDraw(context) {
114
- context.save();
115
- if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {
116
- context.shadowColor = this.shadowColor;
117
- context.shadowBlur = this.shadowBlur;
118
- context.shadowOffsetX = this.shadowOffsetX * this._host.idealRatio;
119
- context.shadowOffsetY = this.shadowOffsetY * this._host.idealRatio;
120
- }
121
- if (this._background || this._backgroundGradient) {
122
- context.fillStyle = this._getRectangleFill(context);
123
- if (this._cornerRadius[0] !== 0 || this._cornerRadius[1] !== 0 || this._cornerRadius[2] !== 0 || this._cornerRadius[3] !== 0) {
124
- this._drawRoundedRect(context, this._thickness / 2);
125
- context.fill();
126
- }
127
- else {
128
- context.fillRect(this._currentMeasure.left, this._currentMeasure.top, this._currentMeasure.width, this._currentMeasure.height);
129
- }
130
- }
131
- if (this._thickness) {
132
- if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {
133
- context.shadowBlur = 0;
134
- context.shadowOffsetX = 0;
135
- context.shadowOffsetY = 0;
136
- }
137
- if (this.color || this.gradient) {
138
- context.strokeStyle = this.gradient ? this.gradient.getCanvasGradient(context) : this.color;
139
- }
140
- context.lineWidth = this._thickness;
141
- if (this._cornerRadius[0] !== 0 || this._cornerRadius[1] !== 0 || this._cornerRadius[2] !== 0 || this._cornerRadius[3] !== 0) {
142
- this._drawRoundedRect(context, this._thickness / 2);
143
- context.stroke();
144
- }
145
- else {
146
- context.strokeRect(this._currentMeasure.left + this._thickness / 2, this._currentMeasure.top + this._thickness / 2, this._currentMeasure.width - this._thickness, this._currentMeasure.height - this._thickness);
147
- }
148
- }
149
- context.restore();
150
- }
151
- _additionalProcessing(parentMeasure, context) {
152
- super._additionalProcessing(parentMeasure, context);
153
- this._measureForChildren.width -= 2 * this._thickness;
154
- this._measureForChildren.height -= 2 * this._thickness;
155
- this._measureForChildren.left += this._thickness;
156
- this._measureForChildren.top += this._thickness;
157
- }
158
- _drawRoundedRect(context, offset = 0) {
159
- const x = this._currentMeasure.left + offset;
160
- const y = this._currentMeasure.top + offset;
161
- const width = this._currentMeasure.width - offset * 2;
162
- const height = this._currentMeasure.height - offset * 2;
163
- // Scale cornerRadius using idealRatio (same pattern as shadowOffset/spacing)
164
- const idealRatio = this._host.idealRatio;
165
- for (let index = 0; index < this._cornerRadius.length; index++) {
166
- this._cachedRadius[index] = Math.abs(Math.min(height / 2, Math.min(width / 2, this._cornerRadius[index] * idealRatio)));
167
- }
168
- context.beginPath();
169
- context.moveTo(x + this._cachedRadius[0], y);
170
- context.lineTo(x + width - this._cachedRadius[1], y);
171
- context.arc(x + width - this._cachedRadius[1], y + this._cachedRadius[1], this._cachedRadius[1], (3 * Math.PI) / 2, Math.PI * 2);
172
- context.lineTo(x + width, y + height - this._cachedRadius[2]);
173
- context.arc(x + width - this._cachedRadius[2], y + height - this._cachedRadius[2], this._cachedRadius[2], 0, Math.PI / 2);
174
- context.lineTo(x + this._cachedRadius[3], y + height);
175
- context.arc(x + this._cachedRadius[3], y + height - this._cachedRadius[3], this._cachedRadius[3], Math.PI / 2, Math.PI);
176
- context.lineTo(x, y + this._cachedRadius[0]);
177
- context.arc(x + this._cachedRadius[0], y + this._cachedRadius[0], this._cachedRadius[0], Math.PI, (3 * Math.PI) / 2);
178
- context.closePath();
179
- }
180
- _clipForChildren(context) {
181
- if (this._cornerRadius[0] !== 0 || this._cornerRadius[1] !== 0 || this._cornerRadius[2] !== 0 || this._cornerRadius[3] !== 0) {
182
- this._drawRoundedRect(context, this._thickness);
183
- context.clip();
184
- }
185
- }
186
- }
187
- __decorate([
188
- serialize()
189
- ], Rectangle.prototype, "thickness", null);
190
- __decorate([
191
- serialize()
192
- ], Rectangle.prototype, "cornerRadius", null);
193
- __decorate([
194
- serialize()
195
- ], Rectangle.prototype, "cornerRadiusX", null);
196
- __decorate([
197
- serialize()
198
- ], Rectangle.prototype, "cornerRadiusY", null);
199
- __decorate([
200
- serialize()
201
- ], Rectangle.prototype, "cornerRadiusZ", null);
202
- __decorate([
203
- serialize()
204
- ], Rectangle.prototype, "cornerRadiusW", null);
205
- RegisterClass("BABYLON.GUI.Rectangle", Rectangle);
1
+ /**
2
+ * Re-exports the pure implementation and applies the runtime registration side effect.
3
+ * Import "./rectangle.pure" for tree-shakeable, side-effect-free usage.
4
+ */
5
+ export * from "./rectangle.pure.js";
6
+ import { RegisterRectangle } from "./rectangle.pure.js";
7
+ RegisterRectangle();
206
8
  //# sourceMappingURL=rectangle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rectangle.js","sourceRoot":"","sources":["../../../../../dev/gui/src/2D/controls/rectangle.ts"],"names":[],"mappings":"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","sourcesContent":["import { Container } from \"./container\";\r\nimport { type Measure } from \"../measure\";\r\nimport { RegisterClass } from \"core/Misc/typeStore\";\r\nimport { serialize } from \"core/Misc/decorators\";\r\nimport { type ICanvasRenderingContext } from \"core/Engines/ICanvas\";\r\n\r\n/** Class used to create rectangle container */\r\nexport class Rectangle extends Container {\r\n private _thickness = 1;\r\n private _cornerRadius = [0, 0, 0, 0];\r\n private _cachedRadius = [0, 0, 0, 0];\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 /** Gets or sets the corner radius of all angles */\r\n @serialize()\r\n public get cornerRadius(): number {\r\n return this._cornerRadius[0];\r\n }\r\n\r\n public set cornerRadius(value: number) {\r\n if (value < 0) {\r\n value = 0;\r\n }\r\n\r\n if (this._cornerRadius[0] === value && this._cornerRadius[1] === value && this._cornerRadius[2] === value && this._cornerRadius[3] === value) {\r\n return;\r\n }\r\n\r\n this._cornerRadius[0] = this._cornerRadius[1] = this._cornerRadius[2] = this._cornerRadius[3] = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the corner radius top left angle */\r\n @serialize()\r\n public get cornerRadiusX(): number {\r\n return this._cornerRadius[0];\r\n }\r\n\r\n public set cornerRadiusX(value: number) {\r\n if (this._cornerRadius[0] === value) {\r\n return;\r\n }\r\n this._cornerRadius[0] = value;\r\n }\r\n\r\n /** Gets or sets the corner radius top right angle */\r\n @serialize()\r\n public get cornerRadiusY(): number {\r\n return this._cornerRadius[1];\r\n }\r\n\r\n public set cornerRadiusY(value: number) {\r\n if (this._cornerRadius[1] === value) {\r\n return;\r\n }\r\n this._cornerRadius[1] = value;\r\n }\r\n\r\n /** Gets or sets the corner radius bottom left angle */\r\n @serialize()\r\n public get cornerRadiusZ(): number {\r\n return this._cornerRadius[2];\r\n }\r\n\r\n public set cornerRadiusZ(value: number) {\r\n if (this._cornerRadius[2] === value) {\r\n return;\r\n }\r\n this._cornerRadius[2] = value;\r\n }\r\n\r\n /** Gets or sets the corner radius bottom right angle */\r\n @serialize()\r\n public get cornerRadiusW(): number {\r\n return this._cornerRadius[3];\r\n }\r\n\r\n public set cornerRadiusW(value: number) {\r\n if (this._cornerRadius[3] === value) {\r\n return;\r\n }\r\n this._cornerRadius[3] = value;\r\n }\r\n\r\n /**\r\n * Creates a new Rectangle\r\n * @param name defines the control name\r\n */\r\n constructor(public override name?: string) {\r\n super(name);\r\n }\r\n\r\n protected override _getTypeName(): string {\r\n return \"Rectangle\";\r\n }\r\n\r\n /** @internal */\r\n protected override _computeAdditionalOffsetX() {\r\n let additionalWidth = 0;\r\n if (this._cornerRadius[0] !== 0 || this._cornerRadius[1] !== 0 || this._cornerRadius[2] !== 0 || this._cornerRadius[3] !== 0) {\r\n // Take in account the aliasing\r\n additionalWidth += 1;\r\n }\r\n if (this.thickness) {\r\n additionalWidth += this.thickness / 2;\r\n }\r\n return additionalWidth;\r\n }\r\n\r\n /** @internal */\r\n protected override _computeAdditionalOffsetY() {\r\n let additionalHeight = 0;\r\n if (this._cornerRadius[0] !== 0 || this._cornerRadius[1] !== 0 || this._cornerRadius[2] !== 0 || this._cornerRadius[3] !== 0) {\r\n // Take in account the aliasing\r\n additionalHeight += 1;\r\n }\r\n if (this.thickness) {\r\n additionalHeight += this.thickness / 2;\r\n }\r\n return additionalHeight;\r\n }\r\n\r\n protected _getRectangleFill(context: ICanvasRenderingContext) {\r\n return this._getBackgroundColor(context);\r\n }\r\n\r\n protected override _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 * this._host.idealRatio;\r\n context.shadowOffsetY = this.shadowOffsetY * this._host.idealRatio;\r\n }\r\n\r\n if (this._background || this._backgroundGradient) {\r\n context.fillStyle = this._getRectangleFill(context);\r\n\r\n if (this._cornerRadius[0] !== 0 || this._cornerRadius[1] !== 0 || this._cornerRadius[2] !== 0 || this._cornerRadius[3] !== 0) {\r\n this._drawRoundedRect(context, this._thickness / 2);\r\n context.fill();\r\n } else {\r\n context.fillRect(this._currentMeasure.left, this._currentMeasure.top, this._currentMeasure.width, this._currentMeasure.height);\r\n }\r\n }\r\n\r\n if (this._thickness) {\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.color || this.gradient) {\r\n context.strokeStyle = this.gradient ? this.gradient.getCanvasGradient(context) : this.color;\r\n }\r\n context.lineWidth = this._thickness;\r\n\r\n if (this._cornerRadius[0] !== 0 || this._cornerRadius[1] !== 0 || this._cornerRadius[2] !== 0 || this._cornerRadius[3] !== 0) {\r\n this._drawRoundedRect(context, this._thickness / 2);\r\n context.stroke();\r\n } else {\r\n context.strokeRect(\r\n this._currentMeasure.left + this._thickness / 2,\r\n this._currentMeasure.top + this._thickness / 2,\r\n this._currentMeasure.width - this._thickness,\r\n this._currentMeasure.height - this._thickness\r\n );\r\n }\r\n }\r\n\r\n context.restore();\r\n }\r\n\r\n protected override _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 private _drawRoundedRect(context: ICanvasRenderingContext, offset: number = 0): void {\r\n const x = this._currentMeasure.left + offset;\r\n const y = this._currentMeasure.top + offset;\r\n const width = this._currentMeasure.width - offset * 2;\r\n const height = this._currentMeasure.height - offset * 2;\r\n\r\n // Scale cornerRadius using idealRatio (same pattern as shadowOffset/spacing)\r\n const idealRatio = this._host.idealRatio;\r\n for (let index = 0; index < this._cornerRadius.length; index++) {\r\n this._cachedRadius[index] = Math.abs(Math.min(height / 2, Math.min(width / 2, this._cornerRadius[index] * idealRatio)));\r\n }\r\n\r\n context.beginPath();\r\n context.moveTo(x + this._cachedRadius[0], y);\r\n context.lineTo(x + width - this._cachedRadius[1], y);\r\n context.arc(x + width - this._cachedRadius[1], y + this._cachedRadius[1], this._cachedRadius[1], (3 * Math.PI) / 2, Math.PI * 2);\r\n context.lineTo(x + width, y + height - this._cachedRadius[2]);\r\n context.arc(x + width - this._cachedRadius[2], y + height - this._cachedRadius[2], this._cachedRadius[2], 0, Math.PI / 2);\r\n context.lineTo(x + this._cachedRadius[3], y + height);\r\n context.arc(x + this._cachedRadius[3], y + height - this._cachedRadius[3], this._cachedRadius[3], Math.PI / 2, Math.PI);\r\n context.lineTo(x, y + this._cachedRadius[0]);\r\n context.arc(x + this._cachedRadius[0], y + this._cachedRadius[0], this._cachedRadius[0], Math.PI, (3 * Math.PI) / 2);\r\n context.closePath();\r\n }\r\n\r\n protected override _clipForChildren(context: ICanvasRenderingContext) {\r\n if (this._cornerRadius[0] !== 0 || this._cornerRadius[1] !== 0 || this._cornerRadius[2] !== 0 || this._cornerRadius[3] !== 0) {\r\n this._drawRoundedRect(context, this._thickness);\r\n context.clip();\r\n }\r\n }\r\n}\r\nRegisterClass(\"BABYLON.GUI.Rectangle\", Rectangle);\r\n"]}
1
+ {"version":3,"file":"rectangle.js","sourceRoot":"","sources":["../../../../../dev/gui/src/2D/controls/rectangle.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,cAAc,kBAAkB,CAAC;AAEjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,iBAAiB,EAAE,CAAC","sourcesContent":["/**\r\n * Re-exports the pure implementation and applies the runtime registration side effect.\r\n * Import \"./rectangle.pure\" for tree-shakeable, side-effect-free usage.\r\n */\r\nexport * from \"./rectangle.pure\";\r\n\r\nimport { RegisterRectangle } from \"./rectangle.pure\";\r\nRegisterRectangle();\r\n"]}
@@ -0,0 +1,48 @@
1
+ import { Container } from "./container.pure.js";
2
+ import { type Measure } from "../measure.js";
3
+ import { type ICanvasRenderingContext } from "@babylonjs/core/Engines/ICanvas.js";
4
+ /** Class used to create rectangle container */
5
+ export declare class Rectangle extends Container {
6
+ name?: string | undefined;
7
+ private _thickness;
8
+ private _cornerRadius;
9
+ private _cachedRadius;
10
+ /** Gets or sets border thickness */
11
+ get thickness(): number;
12
+ set thickness(value: number);
13
+ /** Gets or sets the corner radius of all angles */
14
+ get cornerRadius(): number;
15
+ set cornerRadius(value: number);
16
+ /** Gets or sets the corner radius top left angle */
17
+ get cornerRadiusX(): number;
18
+ set cornerRadiusX(value: number);
19
+ /** Gets or sets the corner radius top right angle */
20
+ get cornerRadiusY(): number;
21
+ set cornerRadiusY(value: number);
22
+ /** Gets or sets the corner radius bottom left angle */
23
+ get cornerRadiusZ(): number;
24
+ set cornerRadiusZ(value: number);
25
+ /** Gets or sets the corner radius bottom right angle */
26
+ get cornerRadiusW(): number;
27
+ set cornerRadiusW(value: number);
28
+ /**
29
+ * Creates a new Rectangle
30
+ * @param name defines the control name
31
+ */
32
+ constructor(name?: string | undefined);
33
+ protected _getTypeName(): string;
34
+ /** @internal */
35
+ protected _computeAdditionalOffsetX(): number;
36
+ /** @internal */
37
+ protected _computeAdditionalOffsetY(): number;
38
+ protected _getRectangleFill(context: ICanvasRenderingContext): string | CanvasGradient;
39
+ protected _localDraw(context: ICanvasRenderingContext): void;
40
+ protected _additionalProcessing(parentMeasure: Measure, context: ICanvasRenderingContext): void;
41
+ private _drawRoundedRect;
42
+ protected _clipForChildren(context: ICanvasRenderingContext): void;
43
+ }
44
+ /**
45
+ * Registers the Rectangle class with the type store for serialization support.
46
+ * Safe to call multiple times; only the first call has an effect.
47
+ */
48
+ export declare function RegisterRectangle(): void;
@@ -0,0 +1,217 @@
1
+ import { __decorate } from "@babylonjs/core/tslib.es6.js";
2
+ import { Container } from "./container.pure.js";
3
+ import { RegisterClass } from "@babylonjs/core/Misc/typeStore.js";
4
+ import { serialize } from "@babylonjs/core/Misc/decorators.js";
5
+ /** Class used to create rectangle container */
6
+ export class Rectangle extends Container {
7
+ /** Gets or sets border thickness */
8
+ get thickness() {
9
+ return this._thickness;
10
+ }
11
+ set thickness(value) {
12
+ if (this._thickness === value) {
13
+ return;
14
+ }
15
+ this._thickness = value;
16
+ this._markAsDirty();
17
+ }
18
+ /** Gets or sets the corner radius of all angles */
19
+ get cornerRadius() {
20
+ return this._cornerRadius[0];
21
+ }
22
+ set cornerRadius(value) {
23
+ if (value < 0) {
24
+ value = 0;
25
+ }
26
+ if (this._cornerRadius[0] === value && this._cornerRadius[1] === value && this._cornerRadius[2] === value && this._cornerRadius[3] === value) {
27
+ return;
28
+ }
29
+ this._cornerRadius[0] = this._cornerRadius[1] = this._cornerRadius[2] = this._cornerRadius[3] = value;
30
+ this._markAsDirty();
31
+ }
32
+ /** Gets or sets the corner radius top left angle */
33
+ get cornerRadiusX() {
34
+ return this._cornerRadius[0];
35
+ }
36
+ set cornerRadiusX(value) {
37
+ if (this._cornerRadius[0] === value) {
38
+ return;
39
+ }
40
+ this._cornerRadius[0] = value;
41
+ }
42
+ /** Gets or sets the corner radius top right angle */
43
+ get cornerRadiusY() {
44
+ return this._cornerRadius[1];
45
+ }
46
+ set cornerRadiusY(value) {
47
+ if (this._cornerRadius[1] === value) {
48
+ return;
49
+ }
50
+ this._cornerRadius[1] = value;
51
+ }
52
+ /** Gets or sets the corner radius bottom left angle */
53
+ get cornerRadiusZ() {
54
+ return this._cornerRadius[2];
55
+ }
56
+ set cornerRadiusZ(value) {
57
+ if (this._cornerRadius[2] === value) {
58
+ return;
59
+ }
60
+ this._cornerRadius[2] = value;
61
+ }
62
+ /** Gets or sets the corner radius bottom right angle */
63
+ get cornerRadiusW() {
64
+ return this._cornerRadius[3];
65
+ }
66
+ set cornerRadiusW(value) {
67
+ if (this._cornerRadius[3] === value) {
68
+ return;
69
+ }
70
+ this._cornerRadius[3] = value;
71
+ }
72
+ /**
73
+ * Creates a new Rectangle
74
+ * @param name defines the control name
75
+ */
76
+ constructor(name) {
77
+ super(name);
78
+ this.name = name;
79
+ this._thickness = 1;
80
+ this._cornerRadius = [0, 0, 0, 0];
81
+ this._cachedRadius = [0, 0, 0, 0];
82
+ }
83
+ _getTypeName() {
84
+ return "Rectangle";
85
+ }
86
+ /** @internal */
87
+ _computeAdditionalOffsetX() {
88
+ let additionalWidth = 0;
89
+ if (this._cornerRadius[0] !== 0 || this._cornerRadius[1] !== 0 || this._cornerRadius[2] !== 0 || this._cornerRadius[3] !== 0) {
90
+ // Take in account the aliasing
91
+ additionalWidth += 1;
92
+ }
93
+ if (this.thickness) {
94
+ additionalWidth += this.thickness / 2;
95
+ }
96
+ return additionalWidth;
97
+ }
98
+ /** @internal */
99
+ _computeAdditionalOffsetY() {
100
+ let additionalHeight = 0;
101
+ if (this._cornerRadius[0] !== 0 || this._cornerRadius[1] !== 0 || this._cornerRadius[2] !== 0 || this._cornerRadius[3] !== 0) {
102
+ // Take in account the aliasing
103
+ additionalHeight += 1;
104
+ }
105
+ if (this.thickness) {
106
+ additionalHeight += this.thickness / 2;
107
+ }
108
+ return additionalHeight;
109
+ }
110
+ _getRectangleFill(context) {
111
+ return this._getBackgroundColor(context);
112
+ }
113
+ _localDraw(context) {
114
+ context.save();
115
+ if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {
116
+ context.shadowColor = this.shadowColor;
117
+ context.shadowBlur = this.shadowBlur;
118
+ context.shadowOffsetX = this.shadowOffsetX * this._host.idealRatio;
119
+ context.shadowOffsetY = this.shadowOffsetY * this._host.idealRatio;
120
+ }
121
+ if (this._background || this._backgroundGradient) {
122
+ context.fillStyle = this._getRectangleFill(context);
123
+ if (this._cornerRadius[0] !== 0 || this._cornerRadius[1] !== 0 || this._cornerRadius[2] !== 0 || this._cornerRadius[3] !== 0) {
124
+ this._drawRoundedRect(context, this._thickness / 2);
125
+ context.fill();
126
+ }
127
+ else {
128
+ context.fillRect(this._currentMeasure.left, this._currentMeasure.top, this._currentMeasure.width, this._currentMeasure.height);
129
+ }
130
+ }
131
+ if (this._thickness) {
132
+ if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {
133
+ context.shadowBlur = 0;
134
+ context.shadowOffsetX = 0;
135
+ context.shadowOffsetY = 0;
136
+ }
137
+ if (this.color || this.gradient) {
138
+ context.strokeStyle = this.gradient ? this.gradient.getCanvasGradient(context) : this.color;
139
+ }
140
+ context.lineWidth = this._thickness;
141
+ if (this._cornerRadius[0] !== 0 || this._cornerRadius[1] !== 0 || this._cornerRadius[2] !== 0 || this._cornerRadius[3] !== 0) {
142
+ this._drawRoundedRect(context, this._thickness / 2);
143
+ context.stroke();
144
+ }
145
+ else {
146
+ context.strokeRect(this._currentMeasure.left + this._thickness / 2, this._currentMeasure.top + this._thickness / 2, this._currentMeasure.width - this._thickness, this._currentMeasure.height - this._thickness);
147
+ }
148
+ }
149
+ context.restore();
150
+ }
151
+ _additionalProcessing(parentMeasure, context) {
152
+ super._additionalProcessing(parentMeasure, context);
153
+ this._measureForChildren.width -= 2 * this._thickness;
154
+ this._measureForChildren.height -= 2 * this._thickness;
155
+ this._measureForChildren.left += this._thickness;
156
+ this._measureForChildren.top += this._thickness;
157
+ }
158
+ _drawRoundedRect(context, offset = 0) {
159
+ const x = this._currentMeasure.left + offset;
160
+ const y = this._currentMeasure.top + offset;
161
+ const width = this._currentMeasure.width - offset * 2;
162
+ const height = this._currentMeasure.height - offset * 2;
163
+ // Scale cornerRadius using idealRatio (same pattern as shadowOffset/spacing)
164
+ const idealRatio = this._host.idealRatio;
165
+ for (let index = 0; index < this._cornerRadius.length; index++) {
166
+ this._cachedRadius[index] = Math.abs(Math.min(height / 2, Math.min(width / 2, this._cornerRadius[index] * idealRatio)));
167
+ }
168
+ context.beginPath();
169
+ context.moveTo(x + this._cachedRadius[0], y);
170
+ context.lineTo(x + width - this._cachedRadius[1], y);
171
+ context.arc(x + width - this._cachedRadius[1], y + this._cachedRadius[1], this._cachedRadius[1], (3 * Math.PI) / 2, Math.PI * 2);
172
+ context.lineTo(x + width, y + height - this._cachedRadius[2]);
173
+ context.arc(x + width - this._cachedRadius[2], y + height - this._cachedRadius[2], this._cachedRadius[2], 0, Math.PI / 2);
174
+ context.lineTo(x + this._cachedRadius[3], y + height);
175
+ context.arc(x + this._cachedRadius[3], y + height - this._cachedRadius[3], this._cachedRadius[3], Math.PI / 2, Math.PI);
176
+ context.lineTo(x, y + this._cachedRadius[0]);
177
+ context.arc(x + this._cachedRadius[0], y + this._cachedRadius[0], this._cachedRadius[0], Math.PI, (3 * Math.PI) / 2);
178
+ context.closePath();
179
+ }
180
+ _clipForChildren(context) {
181
+ if (this._cornerRadius[0] !== 0 || this._cornerRadius[1] !== 0 || this._cornerRadius[2] !== 0 || this._cornerRadius[3] !== 0) {
182
+ this._drawRoundedRect(context, this._thickness);
183
+ context.clip();
184
+ }
185
+ }
186
+ }
187
+ __decorate([
188
+ serialize()
189
+ ], Rectangle.prototype, "thickness", null);
190
+ __decorate([
191
+ serialize()
192
+ ], Rectangle.prototype, "cornerRadius", null);
193
+ __decorate([
194
+ serialize()
195
+ ], Rectangle.prototype, "cornerRadiusX", null);
196
+ __decorate([
197
+ serialize()
198
+ ], Rectangle.prototype, "cornerRadiusY", null);
199
+ __decorate([
200
+ serialize()
201
+ ], Rectangle.prototype, "cornerRadiusZ", null);
202
+ __decorate([
203
+ serialize()
204
+ ], Rectangle.prototype, "cornerRadiusW", null);
205
+ let _Registered = false;
206
+ /**
207
+ * Registers the Rectangle class with the type store for serialization support.
208
+ * Safe to call multiple times; only the first call has an effect.
209
+ */
210
+ export function RegisterRectangle() {
211
+ if (_Registered) {
212
+ return;
213
+ }
214
+ _Registered = true;
215
+ RegisterClass("BABYLON.GUI.Rectangle", Rectangle);
216
+ }
217
+ //# sourceMappingURL=rectangle.pure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rectangle.pure.js","sourceRoot":"","sources":["../../../../../dev/gui/src/2D/controls/rectangle.pure.ts"],"names":[],"mappings":"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","sourcesContent":["import { Container } from \"./container.pure\";\r\nimport { type Measure } from \"../measure\";\r\nimport { RegisterClass } from \"core/Misc/typeStore\";\r\nimport { serialize } from \"core/Misc/decorators\";\r\nimport { type ICanvasRenderingContext } from \"core/Engines/ICanvas\";\r\n\r\n/** Class used to create rectangle container */\r\nexport class Rectangle extends Container {\r\n private _thickness = 1;\r\n private _cornerRadius = [0, 0, 0, 0];\r\n private _cachedRadius = [0, 0, 0, 0];\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 /** Gets or sets the corner radius of all angles */\r\n @serialize()\r\n public get cornerRadius(): number {\r\n return this._cornerRadius[0];\r\n }\r\n\r\n public set cornerRadius(value: number) {\r\n if (value < 0) {\r\n value = 0;\r\n }\r\n\r\n if (this._cornerRadius[0] === value && this._cornerRadius[1] === value && this._cornerRadius[2] === value && this._cornerRadius[3] === value) {\r\n return;\r\n }\r\n\r\n this._cornerRadius[0] = this._cornerRadius[1] = this._cornerRadius[2] = this._cornerRadius[3] = value;\r\n this._markAsDirty();\r\n }\r\n\r\n /** Gets or sets the corner radius top left angle */\r\n @serialize()\r\n public get cornerRadiusX(): number {\r\n return this._cornerRadius[0];\r\n }\r\n\r\n public set cornerRadiusX(value: number) {\r\n if (this._cornerRadius[0] === value) {\r\n return;\r\n }\r\n this._cornerRadius[0] = value;\r\n }\r\n\r\n /** Gets or sets the corner radius top right angle */\r\n @serialize()\r\n public get cornerRadiusY(): number {\r\n return this._cornerRadius[1];\r\n }\r\n\r\n public set cornerRadiusY(value: number) {\r\n if (this._cornerRadius[1] === value) {\r\n return;\r\n }\r\n this._cornerRadius[1] = value;\r\n }\r\n\r\n /** Gets or sets the corner radius bottom left angle */\r\n @serialize()\r\n public get cornerRadiusZ(): number {\r\n return this._cornerRadius[2];\r\n }\r\n\r\n public set cornerRadiusZ(value: number) {\r\n if (this._cornerRadius[2] === value) {\r\n return;\r\n }\r\n this._cornerRadius[2] = value;\r\n }\r\n\r\n /** Gets or sets the corner radius bottom right angle */\r\n @serialize()\r\n public get cornerRadiusW(): number {\r\n return this._cornerRadius[3];\r\n }\r\n\r\n public set cornerRadiusW(value: number) {\r\n if (this._cornerRadius[3] === value) {\r\n return;\r\n }\r\n this._cornerRadius[3] = value;\r\n }\r\n\r\n /**\r\n * Creates a new Rectangle\r\n * @param name defines the control name\r\n */\r\n constructor(public override name?: string) {\r\n super(name);\r\n }\r\n\r\n protected override _getTypeName(): string {\r\n return \"Rectangle\";\r\n }\r\n\r\n /** @internal */\r\n protected override _computeAdditionalOffsetX() {\r\n let additionalWidth = 0;\r\n if (this._cornerRadius[0] !== 0 || this._cornerRadius[1] !== 0 || this._cornerRadius[2] !== 0 || this._cornerRadius[3] !== 0) {\r\n // Take in account the aliasing\r\n additionalWidth += 1;\r\n }\r\n if (this.thickness) {\r\n additionalWidth += this.thickness / 2;\r\n }\r\n return additionalWidth;\r\n }\r\n\r\n /** @internal */\r\n protected override _computeAdditionalOffsetY() {\r\n let additionalHeight = 0;\r\n if (this._cornerRadius[0] !== 0 || this._cornerRadius[1] !== 0 || this._cornerRadius[2] !== 0 || this._cornerRadius[3] !== 0) {\r\n // Take in account the aliasing\r\n additionalHeight += 1;\r\n }\r\n if (this.thickness) {\r\n additionalHeight += this.thickness / 2;\r\n }\r\n return additionalHeight;\r\n }\r\n\r\n protected _getRectangleFill(context: ICanvasRenderingContext) {\r\n return this._getBackgroundColor(context);\r\n }\r\n\r\n protected override _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 * this._host.idealRatio;\r\n context.shadowOffsetY = this.shadowOffsetY * this._host.idealRatio;\r\n }\r\n\r\n if (this._background || this._backgroundGradient) {\r\n context.fillStyle = this._getRectangleFill(context);\r\n\r\n if (this._cornerRadius[0] !== 0 || this._cornerRadius[1] !== 0 || this._cornerRadius[2] !== 0 || this._cornerRadius[3] !== 0) {\r\n this._drawRoundedRect(context, this._thickness / 2);\r\n context.fill();\r\n } else {\r\n context.fillRect(this._currentMeasure.left, this._currentMeasure.top, this._currentMeasure.width, this._currentMeasure.height);\r\n }\r\n }\r\n\r\n if (this._thickness) {\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.color || this.gradient) {\r\n context.strokeStyle = this.gradient ? this.gradient.getCanvasGradient(context) : this.color;\r\n }\r\n context.lineWidth = this._thickness;\r\n\r\n if (this._cornerRadius[0] !== 0 || this._cornerRadius[1] !== 0 || this._cornerRadius[2] !== 0 || this._cornerRadius[3] !== 0) {\r\n this._drawRoundedRect(context, this._thickness / 2);\r\n context.stroke();\r\n } else {\r\n context.strokeRect(\r\n this._currentMeasure.left + this._thickness / 2,\r\n this._currentMeasure.top + this._thickness / 2,\r\n this._currentMeasure.width - this._thickness,\r\n this._currentMeasure.height - this._thickness\r\n );\r\n }\r\n }\r\n\r\n context.restore();\r\n }\r\n\r\n protected override _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 private _drawRoundedRect(context: ICanvasRenderingContext, offset: number = 0): void {\r\n const x = this._currentMeasure.left + offset;\r\n const y = this._currentMeasure.top + offset;\r\n const width = this._currentMeasure.width - offset * 2;\r\n const height = this._currentMeasure.height - offset * 2;\r\n\r\n // Scale cornerRadius using idealRatio (same pattern as shadowOffset/spacing)\r\n const idealRatio = this._host.idealRatio;\r\n for (let index = 0; index < this._cornerRadius.length; index++) {\r\n this._cachedRadius[index] = Math.abs(Math.min(height / 2, Math.min(width / 2, this._cornerRadius[index] * idealRatio)));\r\n }\r\n\r\n context.beginPath();\r\n context.moveTo(x + this._cachedRadius[0], y);\r\n context.lineTo(x + width - this._cachedRadius[1], y);\r\n context.arc(x + width - this._cachedRadius[1], y + this._cachedRadius[1], this._cachedRadius[1], (3 * Math.PI) / 2, Math.PI * 2);\r\n context.lineTo(x + width, y + height - this._cachedRadius[2]);\r\n context.arc(x + width - this._cachedRadius[2], y + height - this._cachedRadius[2], this._cachedRadius[2], 0, Math.PI / 2);\r\n context.lineTo(x + this._cachedRadius[3], y + height);\r\n context.arc(x + this._cachedRadius[3], y + height - this._cachedRadius[3], this._cachedRadius[3], Math.PI / 2, Math.PI);\r\n context.lineTo(x, y + this._cachedRadius[0]);\r\n context.arc(x + this._cachedRadius[0], y + this._cachedRadius[0], this._cachedRadius[0], Math.PI, (3 * Math.PI) / 2);\r\n context.closePath();\r\n }\r\n\r\n protected override _clipForChildren(context: ICanvasRenderingContext) {\r\n if (this._cornerRadius[0] !== 0 || this._cornerRadius[1] !== 0 || this._cornerRadius[2] !== 0 || this._cornerRadius[3] !== 0) {\r\n this._drawRoundedRect(context, this._thickness);\r\n context.clip();\r\n }\r\n }\r\n}\r\n\r\nlet _Registered = false;\r\n/**\r\n * Registers the Rectangle class with the type store for serialization support.\r\n * Safe to call multiple times; only the first call has an effect.\r\n */\r\nexport function RegisterRectangle(): void {\r\n if (_Registered) {\r\n return;\r\n }\r\n _Registered = true;\r\n\r\n RegisterClass(\"BABYLON.GUI.Rectangle\", Rectangle);\r\n}\r\n"]}
@@ -0,0 +1,2 @@
1
+ /** Pure barrel — re-exports only side-effect-free modules */
2
+ export * from "./scrollViewer.pure.js";
@@ -0,0 +1,3 @@
1
+ /** Pure barrel — re-exports only side-effect-free modules */
2
+ export * from "./scrollViewer.pure.js";
3
+ //# sourceMappingURL=pure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pure.js","sourceRoot":"","sources":["../../../../../../dev/gui/src/2D/controls/scrollViewers/pure.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,cAAc,qBAAqB,CAAC","sourcesContent":["/** Pure barrel — re-exports only side-effect-free modules */\nexport * from \"./scrollViewer.pure\";\n"]}