@onerjs/gui 8.23.1

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 (354) hide show
  1. package/2D/FrameGraph/guiTask.d.ts +34 -0
  2. package/2D/FrameGraph/guiTask.js +62 -0
  3. package/2D/FrameGraph/guiTask.js.map +1 -0
  4. package/2D/FrameGraph/renderGraphGUIBlock.d.ts +43 -0
  5. package/2D/FrameGraph/renderGraphGUIBlock.js +66 -0
  6. package/2D/FrameGraph/renderGraphGUIBlock.js.map +1 -0
  7. package/2D/adtInstrumentation.d.ts +52 -0
  8. package/2D/adtInstrumentation.js +107 -0
  9. package/2D/adtInstrumentation.js.map +1 -0
  10. package/2D/advancedDynamicTexture.d.ts +548 -0
  11. package/2D/advancedDynamicTexture.js +1522 -0
  12. package/2D/advancedDynamicTexture.js.map +1 -0
  13. package/2D/controls/button.d.ts +109 -0
  14. package/2D/controls/button.js +246 -0
  15. package/2D/controls/button.js.map +1 -0
  16. package/2D/controls/checkbox.d.ts +53 -0
  17. package/2D/controls/checkbox.js +164 -0
  18. package/2D/controls/checkbox.js.map +1 -0
  19. package/2D/controls/colorpicker.d.ts +101 -0
  20. package/2D/controls/colorpicker.js +1396 -0
  21. package/2D/controls/colorpicker.js.map +1 -0
  22. package/2D/controls/container.d.ts +179 -0
  23. package/2D/controls/container.js +616 -0
  24. package/2D/controls/container.js.map +1 -0
  25. package/2D/controls/control.d.ts +943 -0
  26. package/2D/controls/control.js +2460 -0
  27. package/2D/controls/control.js.map +1 -0
  28. package/2D/controls/displayGrid.d.ts +53 -0
  29. package/2D/controls/displayGrid.js +202 -0
  30. package/2D/controls/displayGrid.js.map +1 -0
  31. package/2D/controls/ellipse.d.ts +25 -0
  32. package/2D/controls/ellipse.js +93 -0
  33. package/2D/controls/ellipse.js.map +1 -0
  34. package/2D/controls/focusableButton.d.ts +17 -0
  35. package/2D/controls/focusableButton.js +25 -0
  36. package/2D/controls/focusableButton.js.map +1 -0
  37. package/2D/controls/focusableControl.d.ts +43 -0
  38. package/2D/controls/focusableControl.js +2 -0
  39. package/2D/controls/focusableControl.js.map +1 -0
  40. package/2D/controls/gradient/BaseGradient.d.ts +69 -0
  41. package/2D/controls/gradient/BaseGradient.js +84 -0
  42. package/2D/controls/gradient/BaseGradient.js.map +1 -0
  43. package/2D/controls/gradient/LinearGradient.d.ts +45 -0
  44. package/2D/controls/gradient/LinearGradient.js +73 -0
  45. package/2D/controls/gradient/LinearGradient.js.map +1 -0
  46. package/2D/controls/gradient/RadialGradient.d.ts +53 -0
  47. package/2D/controls/gradient/RadialGradient.js +89 -0
  48. package/2D/controls/gradient/RadialGradient.js.map +1 -0
  49. package/2D/controls/grid.d.ts +151 -0
  50. package/2D/controls/grid.js +528 -0
  51. package/2D/controls/grid.js.map +1 -0
  52. package/2D/controls/image.d.ts +228 -0
  53. package/2D/controls/image.js +915 -0
  54. package/2D/controls/image.js.map +1 -0
  55. package/2D/controls/index.d.ts +34 -0
  56. package/2D/controls/index.js +35 -0
  57. package/2D/controls/index.js.map +1 -0
  58. package/2D/controls/inputPassword.d.ts +9 -0
  59. package/2D/controls/inputPassword.js +22 -0
  60. package/2D/controls/inputPassword.js.map +1 -0
  61. package/2D/controls/inputText.d.ts +197 -0
  62. package/2D/controls/inputText.js +1035 -0
  63. package/2D/controls/inputText.js.map +1 -0
  64. package/2D/controls/inputTextArea.d.ts +142 -0
  65. package/2D/controls/inputTextArea.js +1025 -0
  66. package/2D/controls/inputTextArea.js.map +1 -0
  67. package/2D/controls/line.d.ts +73 -0
  68. package/2D/controls/line.js +227 -0
  69. package/2D/controls/line.js.map +1 -0
  70. package/2D/controls/multiLine.d.ts +75 -0
  71. package/2D/controls/multiLine.js +237 -0
  72. package/2D/controls/multiLine.js.map +1 -0
  73. package/2D/controls/radioButton.d.ts +49 -0
  74. package/2D/controls/radioButton.js +185 -0
  75. package/2D/controls/radioButton.js.map +1 -0
  76. package/2D/controls/rectangle.d.ts +43 -0
  77. package/2D/controls/rectangle.js +204 -0
  78. package/2D/controls/rectangle.js.map +1 -0
  79. package/2D/controls/scrollViewers/scrollViewer.d.ts +178 -0
  80. package/2D/controls/scrollViewers/scrollViewer.js +587 -0
  81. package/2D/controls/scrollViewers/scrollViewer.js.map +1 -0
  82. package/2D/controls/scrollViewers/scrollViewerWindow.d.ts +51 -0
  83. package/2D/controls/scrollViewers/scrollViewerWindow.js +254 -0
  84. package/2D/controls/scrollViewers/scrollViewerWindow.js.map +1 -0
  85. package/2D/controls/selector.d.ts +237 -0
  86. package/2D/controls/selector.js +579 -0
  87. package/2D/controls/selector.js.map +1 -0
  88. package/2D/controls/sliders/baseSlider.d.ts +80 -0
  89. package/2D/controls/sliders/baseSlider.js +299 -0
  90. package/2D/controls/sliders/baseSlider.js.map +1 -0
  91. package/2D/controls/sliders/imageBasedSlider.d.ts +47 -0
  92. package/2D/controls/sliders/imageBasedSlider.js +168 -0
  93. package/2D/controls/sliders/imageBasedSlider.js.map +1 -0
  94. package/2D/controls/sliders/imageScrollBar.d.ts +67 -0
  95. package/2D/controls/sliders/imageScrollBar.js +248 -0
  96. package/2D/controls/sliders/imageScrollBar.js.map +1 -0
  97. package/2D/controls/sliders/scrollBar.d.ts +50 -0
  98. package/2D/controls/sliders/scrollBar.js +175 -0
  99. package/2D/controls/sliders/scrollBar.js.map +1 -0
  100. package/2D/controls/sliders/slider.d.ts +46 -0
  101. package/2D/controls/sliders/slider.js +281 -0
  102. package/2D/controls/sliders/slider.js.map +1 -0
  103. package/2D/controls/stackPanel.d.ts +64 -0
  104. package/2D/controls/stackPanel.js +244 -0
  105. package/2D/controls/stackPanel.js.map +1 -0
  106. package/2D/controls/statics.d.ts +6 -0
  107. package/2D/controls/statics.js +50 -0
  108. package/2D/controls/statics.js.map +1 -0
  109. package/2D/controls/textBlock.d.ts +219 -0
  110. package/2D/controls/textBlock.js +670 -0
  111. package/2D/controls/textBlock.js.map +1 -0
  112. package/2D/controls/textWrapper.d.ts +13 -0
  113. package/2D/controls/textWrapper.js +88 -0
  114. package/2D/controls/textWrapper.js.map +1 -0
  115. package/2D/controls/toggleButton.d.ts +93 -0
  116. package/2D/controls/toggleButton.js +229 -0
  117. package/2D/controls/toggleButton.js.map +1 -0
  118. package/2D/controls/virtualKeyboard.d.ts +102 -0
  119. package/2D/controls/virtualKeyboard.js +275 -0
  120. package/2D/controls/virtualKeyboard.js.map +1 -0
  121. package/2D/index.d.ts +11 -0
  122. package/2D/index.js +13 -0
  123. package/2D/index.js.map +1 -0
  124. package/2D/math2D.d.ts +136 -0
  125. package/2D/math2D.js +235 -0
  126. package/2D/math2D.js.map +1 -0
  127. package/2D/measure.d.ts +77 -0
  128. package/2D/measure.js +138 -0
  129. package/2D/measure.js.map +1 -0
  130. package/2D/multiLinePoint.d.ts +47 -0
  131. package/2D/multiLinePoint.js +110 -0
  132. package/2D/multiLinePoint.js.map +1 -0
  133. package/2D/style.d.ts +46 -0
  134. package/2D/style.js +80 -0
  135. package/2D/style.js.map +1 -0
  136. package/2D/valueAndUnit.d.ts +89 -0
  137. package/2D/valueAndUnit.js +194 -0
  138. package/2D/valueAndUnit.js.map +1 -0
  139. package/2D/xmlLoader.d.ts +60 -0
  140. package/2D/xmlLoader.js +348 -0
  141. package/2D/xmlLoader.js.map +1 -0
  142. package/3D/behaviors/defaultBehavior.d.ts +73 -0
  143. package/3D/behaviors/defaultBehavior.js +103 -0
  144. package/3D/behaviors/defaultBehavior.js.map +1 -0
  145. package/3D/controls/MRTK3/touchHolographicButton.d.ts +220 -0
  146. package/3D/controls/MRTK3/touchHolographicButton.js +868 -0
  147. package/3D/controls/MRTK3/touchHolographicButton.js.map +1 -0
  148. package/3D/controls/abstractButton3D.d.ts +15 -0
  149. package/3D/controls/abstractButton3D.js +22 -0
  150. package/3D/controls/abstractButton3D.js.map +1 -0
  151. package/3D/controls/button3D.d.ts +51 -0
  152. package/3D/controls/button3D.js +98 -0
  153. package/3D/controls/button3D.js.map +1 -0
  154. package/3D/controls/container3D.d.ts +72 -0
  155. package/3D/controls/container3D.js +126 -0
  156. package/3D/controls/container3D.js.map +1 -0
  157. package/3D/controls/contentDisplay3D.d.ts +42 -0
  158. package/3D/controls/contentDisplay3D.js +81 -0
  159. package/3D/controls/contentDisplay3D.js.map +1 -0
  160. package/3D/controls/control3D.d.ts +183 -0
  161. package/3D/controls/control3D.js +401 -0
  162. package/3D/controls/control3D.js.map +1 -0
  163. package/3D/controls/cylinderPanel.d.ts +17 -0
  164. package/3D/controls/cylinderPanel.js +57 -0
  165. package/3D/controls/cylinderPanel.js.map +1 -0
  166. package/3D/controls/handMenu.d.ts +28 -0
  167. package/3D/controls/handMenu.js +39 -0
  168. package/3D/controls/handMenu.js.map +1 -0
  169. package/3D/controls/holographicBackplate.d.ts +49 -0
  170. package/3D/controls/holographicBackplate.js +104 -0
  171. package/3D/controls/holographicBackplate.js.map +1 -0
  172. package/3D/controls/holographicButton.d.ts +84 -0
  173. package/3D/controls/holographicButton.js +300 -0
  174. package/3D/controls/holographicButton.js.map +1 -0
  175. package/3D/controls/holographicSlate.d.ts +134 -0
  176. package/3D/controls/holographicSlate.js +413 -0
  177. package/3D/controls/holographicSlate.js.map +1 -0
  178. package/3D/controls/index.d.ts +22 -0
  179. package/3D/controls/index.js +24 -0
  180. package/3D/controls/index.js.map +1 -0
  181. package/3D/controls/meshButton3D.d.ts +21 -0
  182. package/3D/controls/meshButton3D.js +58 -0
  183. package/3D/controls/meshButton3D.js.map +1 -0
  184. package/3D/controls/nearMenu.d.ts +44 -0
  185. package/3D/controls/nearMenu.js +103 -0
  186. package/3D/controls/nearMenu.js.map +1 -0
  187. package/3D/controls/planePanel.d.ts +9 -0
  188. package/3D/controls/planePanel.js +30 -0
  189. package/3D/controls/planePanel.js.map +1 -0
  190. package/3D/controls/scatterPanel.d.ts +18 -0
  191. package/3D/controls/scatterPanel.js +98 -0
  192. package/3D/controls/scatterPanel.js.map +1 -0
  193. package/3D/controls/slider3D.d.ts +95 -0
  194. package/3D/controls/slider3D.js +256 -0
  195. package/3D/controls/slider3D.js.map +1 -0
  196. package/3D/controls/spherePanel.d.ts +17 -0
  197. package/3D/controls/spherePanel.js +58 -0
  198. package/3D/controls/spherePanel.js.map +1 -0
  199. package/3D/controls/stackPanel3D.d.ts +22 -0
  200. package/3D/controls/stackPanel3D.js +95 -0
  201. package/3D/controls/stackPanel3D.js.map +1 -0
  202. package/3D/controls/touchButton3D.d.ts +77 -0
  203. package/3D/controls/touchButton3D.js +205 -0
  204. package/3D/controls/touchButton3D.js.map +1 -0
  205. package/3D/controls/touchHolographicButton.d.ts +110 -0
  206. package/3D/controls/touchHolographicButton.js +400 -0
  207. package/3D/controls/touchHolographicButton.js.map +1 -0
  208. package/3D/controls/touchHolographicMenu.d.ts +61 -0
  209. package/3D/controls/touchHolographicMenu.js +139 -0
  210. package/3D/controls/touchHolographicMenu.js.map +1 -0
  211. package/3D/controls/touchMeshButton3D.d.ts +21 -0
  212. package/3D/controls/touchMeshButton3D.js +58 -0
  213. package/3D/controls/touchMeshButton3D.js.map +1 -0
  214. package/3D/controls/volumeBasedPanel.d.ts +53 -0
  215. package/3D/controls/volumeBasedPanel.js +158 -0
  216. package/3D/controls/volumeBasedPanel.js.map +1 -0
  217. package/3D/gizmos/gizmoHandle.d.ts +108 -0
  218. package/3D/gizmos/gizmoHandle.js +175 -0
  219. package/3D/gizmos/gizmoHandle.js.map +1 -0
  220. package/3D/gizmos/index.d.ts +2 -0
  221. package/3D/gizmos/index.js +3 -0
  222. package/3D/gizmos/index.js.map +1 -0
  223. package/3D/gizmos/slateGizmo.d.ts +57 -0
  224. package/3D/gizmos/slateGizmo.js +353 -0
  225. package/3D/gizmos/slateGizmo.js.map +1 -0
  226. package/3D/gui3DManager.d.ts +94 -0
  227. package/3D/gui3DManager.js +233 -0
  228. package/3D/gui3DManager.js.map +1 -0
  229. package/3D/index.d.ts +5 -0
  230. package/3D/index.js +7 -0
  231. package/3D/index.js.map +1 -0
  232. package/3D/materials/fluent/fluentMaterial.d.ts +91 -0
  233. package/3D/materials/fluent/fluentMaterial.js +286 -0
  234. package/3D/materials/fluent/fluentMaterial.js.map +1 -0
  235. package/3D/materials/fluent/index.d.ts +1 -0
  236. package/3D/materials/fluent/index.js +2 -0
  237. package/3D/materials/fluent/index.js.map +1 -0
  238. package/3D/materials/fluent/shaders/fluent.fragment.d.ts +5 -0
  239. package/3D/materials/fluent/shaders/fluent.fragment.js +41 -0
  240. package/3D/materials/fluent/shaders/fluent.fragment.js.map +1 -0
  241. package/3D/materials/fluent/shaders/fluent.vertex.d.ts +5 -0
  242. package/3D/materials/fluent/shaders/fluent.vertex.js +40 -0
  243. package/3D/materials/fluent/shaders/fluent.vertex.js.map +1 -0
  244. package/3D/materials/fluentBackplate/fluentBackplateMaterial.d.ts +155 -0
  245. package/3D/materials/fluentBackplate/fluentBackplateMaterial.js +466 -0
  246. package/3D/materials/fluentBackplate/fluentBackplateMaterial.js.map +1 -0
  247. package/3D/materials/fluentBackplate/index.d.ts +1 -0
  248. package/3D/materials/fluentBackplate/index.js +2 -0
  249. package/3D/materials/fluentBackplate/index.js.map +1 -0
  250. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.d.ts +5 -0
  251. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js +60 -0
  252. package/3D/materials/fluentBackplate/shaders/fluentBackplate.fragment.js.map +1 -0
  253. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.d.ts +5 -0
  254. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js +127 -0
  255. package/3D/materials/fluentBackplate/shaders/fluentBackplate.vertex.js.map +1 -0
  256. package/3D/materials/fluentButton/fluentButtonMaterial.d.ts +190 -0
  257. package/3D/materials/fluentButton/fluentButtonMaterial.js +536 -0
  258. package/3D/materials/fluentButton/fluentButtonMaterial.js.map +1 -0
  259. package/3D/materials/fluentButton/index.d.ts +1 -0
  260. package/3D/materials/fluentButton/index.js +2 -0
  261. package/3D/materials/fluentButton/index.js.map +1 -0
  262. package/3D/materials/fluentButton/shaders/fluentButton.fragment.d.ts +5 -0
  263. package/3D/materials/fluentButton/shaders/fluentButton.fragment.js +57 -0
  264. package/3D/materials/fluentButton/shaders/fluentButton.fragment.js.map +1 -0
  265. package/3D/materials/fluentButton/shaders/fluentButton.vertex.d.ts +5 -0
  266. package/3D/materials/fluentButton/shaders/fluentButton.vertex.js +162 -0
  267. package/3D/materials/fluentButton/shaders/fluentButton.vertex.js.map +1 -0
  268. package/3D/materials/fluentMaterial.d.ts +4 -0
  269. package/3D/materials/fluentMaterial.js +5 -0
  270. package/3D/materials/fluentMaterial.js.map +1 -0
  271. package/3D/materials/handle/handleMaterial.d.ts +68 -0
  272. package/3D/materials/handle/handleMaterial.js +114 -0
  273. package/3D/materials/handle/handleMaterial.js.map +1 -0
  274. package/3D/materials/handle/index.d.ts +1 -0
  275. package/3D/materials/handle/index.js +2 -0
  276. package/3D/materials/handle/index.js.map +1 -0
  277. package/3D/materials/handle/shaders/handle.fragment.d.ts +5 -0
  278. package/3D/materials/handle/shaders/handle.fragment.js +11 -0
  279. package/3D/materials/handle/shaders/handle.fragment.js.map +1 -0
  280. package/3D/materials/handle/shaders/handle.vertex.d.ts +5 -0
  281. package/3D/materials/handle/shaders/handle.vertex.js +11 -0
  282. package/3D/materials/handle/shaders/handle.vertex.js.map +1 -0
  283. package/3D/materials/index.d.ts +5 -0
  284. package/3D/materials/index.js +7 -0
  285. package/3D/materials/index.js.map +1 -0
  286. package/3D/materials/mrdl/index.d.ts +3 -0
  287. package/3D/materials/mrdl/index.js +4 -0
  288. package/3D/materials/mrdl/index.js.map +1 -0
  289. package/3D/materials/mrdl/mrdlBackglowMaterial.d.ts +87 -0
  290. package/3D/materials/mrdl/mrdlBackglowMaterial.js +302 -0
  291. package/3D/materials/mrdl/mrdlBackglowMaterial.js.map +1 -0
  292. package/3D/materials/mrdl/mrdlBackplateMaterial.d.ts +148 -0
  293. package/3D/materials/mrdl/mrdlBackplateMaterial.js +433 -0
  294. package/3D/materials/mrdl/mrdlBackplateMaterial.js.map +1 -0
  295. package/3D/materials/mrdl/mrdlFrontplateMaterial.d.ts +186 -0
  296. package/3D/materials/mrdl/mrdlFrontplateMaterial.js +532 -0
  297. package/3D/materials/mrdl/mrdlFrontplateMaterial.js.map +1 -0
  298. package/3D/materials/mrdl/mrdlInnerquadMaterial.d.ts +56 -0
  299. package/3D/materials/mrdl/mrdlInnerquadMaterial.js +230 -0
  300. package/3D/materials/mrdl/mrdlInnerquadMaterial.js.map +1 -0
  301. package/3D/materials/mrdl/mrdlSliderBarMaterial.d.ts +337 -0
  302. package/3D/materials/mrdl/mrdlSliderBarMaterial.js +855 -0
  303. package/3D/materials/mrdl/mrdlSliderBarMaterial.js.map +1 -0
  304. package/3D/materials/mrdl/mrdlSliderThumbMaterial.d.ts +337 -0
  305. package/3D/materials/mrdl/mrdlSliderThumbMaterial.js +855 -0
  306. package/3D/materials/mrdl/mrdlSliderThumbMaterial.js.map +1 -0
  307. package/3D/materials/mrdl/shaders/mrdlBackglow.fragment.d.ts +5 -0
  308. package/3D/materials/mrdl/shaders/mrdlBackglow.fragment.js +25 -0
  309. package/3D/materials/mrdl/shaders/mrdlBackglow.fragment.js.map +1 -0
  310. package/3D/materials/mrdl/shaders/mrdlBackglow.vertex.d.ts +5 -0
  311. package/3D/materials/mrdl/shaders/mrdlBackglow.vertex.js +12 -0
  312. package/3D/materials/mrdl/shaders/mrdlBackglow.vertex.js.map +1 -0
  313. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.d.ts +5 -0
  314. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js +88 -0
  315. package/3D/materials/mrdl/shaders/mrdlBackplate.fragment.js.map +1 -0
  316. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.d.ts +5 -0
  317. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js +96 -0
  318. package/3D/materials/mrdl/shaders/mrdlBackplate.vertex.js.map +1 -0
  319. package/3D/materials/mrdl/shaders/mrdlFrontplate.fragment.d.ts +5 -0
  320. package/3D/materials/mrdl/shaders/mrdlFrontplate.fragment.js +48 -0
  321. package/3D/materials/mrdl/shaders/mrdlFrontplate.fragment.js.map +1 -0
  322. package/3D/materials/mrdl/shaders/mrdlFrontplate.vertex.d.ts +5 -0
  323. package/3D/materials/mrdl/shaders/mrdlFrontplate.vertex.js +158 -0
  324. package/3D/materials/mrdl/shaders/mrdlFrontplate.vertex.js.map +1 -0
  325. package/3D/materials/mrdl/shaders/mrdlInnerquad.fragment.d.ts +5 -0
  326. package/3D/materials/mrdl/shaders/mrdlInnerquad.fragment.js +27 -0
  327. package/3D/materials/mrdl/shaders/mrdlInnerquad.fragment.js.map +1 -0
  328. package/3D/materials/mrdl/shaders/mrdlInnerquad.vertex.d.ts +5 -0
  329. package/3D/materials/mrdl/shaders/mrdlInnerquad.vertex.js +13 -0
  330. package/3D/materials/mrdl/shaders/mrdlInnerquad.vertex.js.map +1 -0
  331. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.d.ts +5 -0
  332. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js +236 -0
  333. package/3D/materials/mrdl/shaders/mrdlSliderBar.fragment.js.map +1 -0
  334. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.d.ts +5 -0
  335. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js +137 -0
  336. package/3D/materials/mrdl/shaders/mrdlSliderBar.vertex.js.map +1 -0
  337. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.d.ts +5 -0
  338. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js +236 -0
  339. package/3D/materials/mrdl/shaders/mrdlSliderThumb.fragment.js.map +1 -0
  340. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.d.ts +5 -0
  341. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js +137 -0
  342. package/3D/materials/mrdl/shaders/mrdlSliderThumb.vertex.js.map +1 -0
  343. package/3D/vector3WithInfo.d.ts +16 -0
  344. package/3D/vector3WithInfo.js +18 -0
  345. package/3D/vector3WithInfo.js.map +1 -0
  346. package/index.d.ts +2 -0
  347. package/index.js +4 -0
  348. package/index.js.map +1 -0
  349. package/legacy/legacy.d.ts +1 -0
  350. package/legacy/legacy.js +17 -0
  351. package/legacy/legacy.js.map +1 -0
  352. package/license.md +71 -0
  353. package/package.json +47 -0
  354. package/readme.md +31 -0
@@ -0,0 +1,616 @@
1
+ import { __decorate } from "@babylonjs/core/tslib.es6.js";
2
+ import { Logger } from "@babylonjs/core/Misc/logger.js";
3
+ import { Control } from "./control.js";
4
+ import { Measure } from "../measure.js";
5
+ import { RegisterClass } from "@babylonjs/core/Misc/typeStore.js";
6
+ import { serialize } from "@babylonjs/core/Misc/decorators.js";
7
+ import { DynamicTexture } from "@babylonjs/core/Materials/Textures/dynamicTexture.js";
8
+ import { Texture } from "@babylonjs/core/Materials/Textures/texture.js";
9
+ import { Constants } from "@babylonjs/core/Engines/constants.js";
10
+ import { Observable } from "@babylonjs/core/Misc/observable.js";
11
+ import { Tools } from "@babylonjs/core/Misc/tools.js";
12
+ import { Matrix2D } from "../math2D.js";
13
+ /**
14
+ * Root class for 2D containers
15
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/gui/gui#containers
16
+ */
17
+ export class Container extends Control {
18
+ /** Gets or sets boolean indicating if children should be rendered to an intermediate texture rather than directly to host, useful for alpha blending */
19
+ get renderToIntermediateTexture() {
20
+ return this._renderToIntermediateTexture;
21
+ }
22
+ set renderToIntermediateTexture(value) {
23
+ if (this._renderToIntermediateTexture === value) {
24
+ return;
25
+ }
26
+ this._renderToIntermediateTexture = value;
27
+ this._markAsDirty();
28
+ }
29
+ /** Gets or sets a boolean indicating if the container should try to adapt to its children height */
30
+ get adaptHeightToChildren() {
31
+ return this._adaptHeightToChildren;
32
+ }
33
+ set adaptHeightToChildren(value) {
34
+ if (this._adaptHeightToChildren === value) {
35
+ return;
36
+ }
37
+ this._adaptHeightToChildren = value;
38
+ if (value) {
39
+ this.height = "100%";
40
+ }
41
+ this._markAsDirty();
42
+ }
43
+ /** Gets or sets a boolean indicating if the container should try to adapt to its children width */
44
+ get adaptWidthToChildren() {
45
+ return this._adaptWidthToChildren;
46
+ }
47
+ set adaptWidthToChildren(value) {
48
+ if (this._adaptWidthToChildren === value) {
49
+ return;
50
+ }
51
+ this._adaptWidthToChildren = value;
52
+ if (value) {
53
+ this.width = "100%";
54
+ }
55
+ this._markAsDirty();
56
+ }
57
+ /** Gets or sets background color */
58
+ get background() {
59
+ return this._background;
60
+ }
61
+ set background(value) {
62
+ if (this._background === value) {
63
+ return;
64
+ }
65
+ this._background = value;
66
+ this._markAsDirty();
67
+ }
68
+ /** Gets or sets background gradient color. Takes precedence over background */
69
+ get backgroundGradient() {
70
+ return this._backgroundGradient;
71
+ }
72
+ set backgroundGradient(value) {
73
+ if (this._backgroundGradient === value) {
74
+ return;
75
+ }
76
+ this._backgroundGradient = value;
77
+ this._markAsDirty();
78
+ }
79
+ /** Gets the list of children */
80
+ get children() {
81
+ return this._children;
82
+ }
83
+ get isReadOnly() {
84
+ return this._isReadOnly;
85
+ }
86
+ set isReadOnly(value) {
87
+ this._isReadOnly = value;
88
+ for (const child of this._children) {
89
+ child.isReadOnly = value;
90
+ }
91
+ }
92
+ /**
93
+ * Creates a new Container
94
+ * @param name defines the name of the container
95
+ */
96
+ constructor(name) {
97
+ super(name);
98
+ this.name = name;
99
+ /** @internal */
100
+ this._children = new Array();
101
+ /** @internal */
102
+ this._measureForChildren = Measure.Empty();
103
+ /** @internal */
104
+ this._background = "";
105
+ /** @internal */
106
+ this._backgroundGradient = null;
107
+ /** @internal */
108
+ this._adaptWidthToChildren = false;
109
+ /** @internal */
110
+ this._adaptHeightToChildren = false;
111
+ /** @internal */
112
+ this._renderToIntermediateTexture = false;
113
+ /** @internal */
114
+ this._intermediateTexture = null;
115
+ /**
116
+ * Gets or sets a boolean indicating that the container will let internal controls handle picking instead of doing it directly using its bounding info
117
+ */
118
+ this.delegatePickingToChildren = false;
119
+ /**
120
+ * Gets or sets a boolean indicating that layout cycle errors should be displayed on the console
121
+ */
122
+ this.logLayoutCycleErrors = false;
123
+ /**
124
+ * Gets or sets the number of layout cycles (a change involved by a control while evaluating the layout) allowed
125
+ */
126
+ this.maxLayoutCycle = 3;
127
+ /**
128
+ * An event triggered when any control is added to this container.
129
+ */
130
+ this.onControlAddedObservable = new Observable();
131
+ /**
132
+ * An event triggered when any control is removed from this container.
133
+ */
134
+ this.onControlRemovedObservable = new Observable();
135
+ this._inverseTransformMatrix = Matrix2D.Identity();
136
+ this._inverseMeasure = new Measure(0, 0, 0, 0);
137
+ }
138
+ _getTypeName() {
139
+ return "Container";
140
+ }
141
+ _flagDescendantsAsMatrixDirty() {
142
+ for (const child of this.children) {
143
+ child._isClipped = false;
144
+ child._markMatrixAsDirty();
145
+ }
146
+ }
147
+ /**
148
+ * Gets a child using its name
149
+ * @param name defines the child name to look for
150
+ * @returns the child control if found
151
+ */
152
+ getChildByName(name) {
153
+ for (const child of this.children) {
154
+ if (child.name === name) {
155
+ return child;
156
+ }
157
+ }
158
+ return null;
159
+ }
160
+ /**
161
+ * Gets a child using its type and its name
162
+ * @param name defines the child name to look for
163
+ * @param type defines the child type to look for
164
+ * @returns the child control if found
165
+ */
166
+ getChildByType(name, type) {
167
+ for (const child of this.children) {
168
+ if (child.typeName === type) {
169
+ return child;
170
+ }
171
+ }
172
+ return null;
173
+ }
174
+ /**
175
+ * Search for a specific control in children
176
+ * @param control defines the control to look for
177
+ * @returns true if the control is in child list
178
+ */
179
+ containsControl(control) {
180
+ return this.children.indexOf(control) !== -1;
181
+ }
182
+ /**
183
+ * Adds a new control to the current container
184
+ * @param control defines the control to add
185
+ * @returns the current container
186
+ */
187
+ addControl(control) {
188
+ if (!control) {
189
+ return this;
190
+ }
191
+ const index = this._children.indexOf(control);
192
+ if (index !== -1) {
193
+ return this;
194
+ }
195
+ control._link(this._host);
196
+ control._markAllAsDirty();
197
+ this._reOrderControl(control);
198
+ this._markAsDirty();
199
+ this.onControlAddedObservable.notifyObservers(control);
200
+ return this;
201
+ }
202
+ /**
203
+ * Removes all controls from the current container
204
+ * @returns the current container
205
+ */
206
+ clearControls() {
207
+ const children = this.children.slice();
208
+ for (const child of children) {
209
+ this.removeControl(child);
210
+ }
211
+ return this;
212
+ }
213
+ /**
214
+ * Removes a control from the current container
215
+ * @param control defines the control to remove
216
+ * @returns the current container
217
+ */
218
+ removeControl(control) {
219
+ const index = this._children.indexOf(control);
220
+ if (index !== -1) {
221
+ this._children.splice(index, 1);
222
+ control.parent = null;
223
+ }
224
+ control.linkWithMesh(null);
225
+ if (this._host) {
226
+ this._host._cleanControlAfterRemoval(control);
227
+ }
228
+ this._markAsDirty();
229
+ this.onControlRemovedObservable.notifyObservers(control);
230
+ return this;
231
+ }
232
+ /**
233
+ * @internal
234
+ */
235
+ _reOrderControl(control) {
236
+ const linkedMesh = control.linkedMesh;
237
+ this.removeControl(control);
238
+ let wasAdded = false;
239
+ for (let index = 0; index < this._children.length; index++) {
240
+ if (this._children[index].zIndex > control.zIndex) {
241
+ this._children.splice(index, 0, control);
242
+ wasAdded = true;
243
+ break;
244
+ }
245
+ }
246
+ if (!wasAdded) {
247
+ this._children.push(control);
248
+ }
249
+ control.parent = this;
250
+ if (linkedMesh) {
251
+ control.linkWithMesh(linkedMesh);
252
+ }
253
+ this._markAsDirty();
254
+ }
255
+ /**
256
+ * @internal
257
+ */
258
+ _offsetLeft(offset) {
259
+ super._offsetLeft(offset);
260
+ for (const child of this._children) {
261
+ child._offsetLeft(offset);
262
+ }
263
+ }
264
+ /**
265
+ * @internal
266
+ */
267
+ _offsetTop(offset) {
268
+ super._offsetTop(offset);
269
+ for (const child of this._children) {
270
+ child._offsetTop(offset);
271
+ }
272
+ }
273
+ /** @internal */
274
+ _markAllAsDirty() {
275
+ super._markAllAsDirty();
276
+ for (let index = 0; index < this._children.length; index++) {
277
+ this._children[index]._markAllAsDirty();
278
+ }
279
+ }
280
+ _getBackgroundColor(context) {
281
+ return this._backgroundGradient ? this._backgroundGradient.getCanvasGradient(context) : this._background;
282
+ }
283
+ /**
284
+ * @internal
285
+ */
286
+ _localDraw(context) {
287
+ if (this._background || this._backgroundGradient) {
288
+ context.save();
289
+ if (this.shadowBlur || this.shadowOffsetX || this.shadowOffsetY) {
290
+ context.shadowColor = this.shadowColor;
291
+ context.shadowBlur = this.shadowBlur;
292
+ context.shadowOffsetX = this.shadowOffsetX;
293
+ context.shadowOffsetY = this.shadowOffsetY;
294
+ }
295
+ context.fillStyle = this._getBackgroundColor(context);
296
+ context.fillRect(this._currentMeasure.left, this._currentMeasure.top, this._currentMeasure.width, this._currentMeasure.height);
297
+ context.restore();
298
+ }
299
+ }
300
+ /**
301
+ * @internal
302
+ */
303
+ _link(host) {
304
+ super._link(host);
305
+ for (const child of this._children) {
306
+ child._link(host);
307
+ }
308
+ }
309
+ /** @internal */
310
+ _beforeLayout() {
311
+ // Do nothing
312
+ }
313
+ /**
314
+ * @internal
315
+ */
316
+ _processMeasures(parentMeasure, context) {
317
+ if (this._isDirty || !this._cachedParentMeasure.isEqualsTo(parentMeasure)) {
318
+ super._processMeasures(parentMeasure, context);
319
+ this._evaluateClippingState(parentMeasure);
320
+ if (this._renderToIntermediateTexture) {
321
+ if (this._intermediateTexture && this._host.getScene() != this._intermediateTexture.getScene()) {
322
+ this._intermediateTexture.dispose();
323
+ this._intermediateTexture = null;
324
+ }
325
+ if (!this._intermediateTexture) {
326
+ this._intermediateTexture = new DynamicTexture("", { width: this._currentMeasure.width, height: this._currentMeasure.height }, this._host.getScene(), false, Texture.NEAREST_SAMPLINGMODE, Constants.TEXTUREFORMAT_RGBA, false);
327
+ this._intermediateTexture.hasAlpha = true;
328
+ }
329
+ else {
330
+ this._intermediateTexture.scaleTo(this._currentMeasure.width, this._currentMeasure.height);
331
+ }
332
+ }
333
+ }
334
+ }
335
+ /**
336
+ * @internal
337
+ */
338
+ _layout(parentMeasure, context) {
339
+ if (!this.isDirty && (!this.isVisible || this.notRenderable)) {
340
+ return false;
341
+ }
342
+ this.host._numLayoutCalls++;
343
+ if (this._isDirty) {
344
+ this._currentMeasure.transformToRef(this._transformMatrix, this._prevCurrentMeasureTransformedIntoGlobalSpace);
345
+ }
346
+ let rebuildCount = 0;
347
+ context.save();
348
+ this._applyStates(context);
349
+ this._beforeLayout();
350
+ do {
351
+ let computedWidth = -1;
352
+ let computedHeight = -1;
353
+ this._rebuildLayout = false;
354
+ this._processMeasures(parentMeasure, context);
355
+ if (!this._isClipped) {
356
+ for (const child of this._children) {
357
+ child._tempParentMeasure.copyFrom(this._measureForChildren);
358
+ if (child._layout(this._measureForChildren, context)) {
359
+ if (child.isVisible && !child.notRenderable) {
360
+ if (this.adaptWidthToChildren && child._width.isPixel) {
361
+ computedWidth = Math.max(computedWidth, child._currentMeasure.width + child._paddingLeftInPixels + child._paddingRightInPixels);
362
+ }
363
+ if (this.adaptHeightToChildren && child._height.isPixel) {
364
+ computedHeight = Math.max(computedHeight, child._currentMeasure.height + child._paddingTopInPixels + child._paddingBottomInPixels);
365
+ }
366
+ }
367
+ }
368
+ }
369
+ if (this.adaptWidthToChildren && computedWidth >= 0) {
370
+ computedWidth += this.paddingLeftInPixels + this.paddingRightInPixels;
371
+ const width = computedWidth + "px";
372
+ if (this.width !== width) {
373
+ this.parent?._markAsDirty();
374
+ this.width = width;
375
+ this._width.ignoreAdaptiveScaling = true;
376
+ this._rebuildLayout = true;
377
+ }
378
+ }
379
+ if (this.adaptHeightToChildren && computedHeight >= 0) {
380
+ computedHeight += this.paddingTopInPixels + this.paddingBottomInPixels;
381
+ const height = computedHeight + "px";
382
+ if (this.height !== height) {
383
+ this.parent?._markAsDirty();
384
+ this.height = height;
385
+ this._height.ignoreAdaptiveScaling = true;
386
+ this._rebuildLayout = true;
387
+ }
388
+ }
389
+ this._postMeasure();
390
+ }
391
+ rebuildCount++;
392
+ } while (this._rebuildLayout && rebuildCount < this.maxLayoutCycle);
393
+ if (rebuildCount >= 3 && this.logLayoutCycleErrors) {
394
+ Logger.Error(`Layout cycle detected in GUI (Container name=${this.name}, uniqueId=${this.uniqueId})`);
395
+ }
396
+ context.restore();
397
+ if (this._isDirty) {
398
+ this.invalidateRect();
399
+ this._isDirty = false;
400
+ }
401
+ return true;
402
+ }
403
+ _postMeasure() {
404
+ // Do nothing by default
405
+ }
406
+ /**
407
+ * @internal
408
+ */
409
+ _draw(context, invalidatedRectangle) {
410
+ const renderToIntermediateTextureThisDraw = this._renderToIntermediateTexture && this._intermediateTexture;
411
+ const contextToDrawTo = renderToIntermediateTextureThisDraw ? this._intermediateTexture.getContext() : context;
412
+ if (renderToIntermediateTextureThisDraw) {
413
+ contextToDrawTo.save();
414
+ contextToDrawTo.translate(-this._currentMeasure.left, -this._currentMeasure.top);
415
+ if (invalidatedRectangle) {
416
+ this._transformMatrix.invertToRef(this._inverseTransformMatrix);
417
+ invalidatedRectangle.transformToRef(this._inverseTransformMatrix, this._inverseMeasure);
418
+ contextToDrawTo.clearRect(this._inverseMeasure.left, this._inverseMeasure.top, this._inverseMeasure.width, this._inverseMeasure.height);
419
+ }
420
+ else {
421
+ contextToDrawTo.clearRect(this._currentMeasure.left, this._currentMeasure.top, this._currentMeasure.width, this._currentMeasure.height);
422
+ }
423
+ }
424
+ this._localDraw(contextToDrawTo);
425
+ context.save();
426
+ if (this.clipChildren) {
427
+ this._clipForChildren(contextToDrawTo);
428
+ }
429
+ for (const child of this._children) {
430
+ // Only redraw parts of the screen that are invalidated
431
+ if (invalidatedRectangle) {
432
+ if (!child._intersectsRect(invalidatedRectangle)) {
433
+ continue;
434
+ }
435
+ }
436
+ child._render(contextToDrawTo, invalidatedRectangle);
437
+ }
438
+ if (renderToIntermediateTextureThisDraw) {
439
+ contextToDrawTo.restore();
440
+ context.save();
441
+ context.globalAlpha = this.alpha;
442
+ context.drawImage(contextToDrawTo.canvas, this._currentMeasure.left, this._currentMeasure.top);
443
+ context.restore();
444
+ }
445
+ context.restore();
446
+ }
447
+ getDescendantsToRef(results, directDescendantsOnly = false, predicate) {
448
+ if (!this.children) {
449
+ return;
450
+ }
451
+ for (let index = 0; index < this.children.length; index++) {
452
+ const item = this.children[index];
453
+ if (!predicate || predicate(item)) {
454
+ results.push(item);
455
+ }
456
+ if (!directDescendantsOnly) {
457
+ item.getDescendantsToRef(results, false, predicate);
458
+ }
459
+ }
460
+ }
461
+ /**
462
+ * @internal
463
+ */
464
+ _processPicking(x, y, pi, type, pointerId, buttonIndex, deltaX, deltaY) {
465
+ if (!this._isEnabled || !this.isVisible || this.notRenderable) {
466
+ return false;
467
+ }
468
+ // checks if the picking position is within the container
469
+ const contains = super.contains(x, y);
470
+ // if clipChildren is off, we should still pass picking events to children even if we don't contain the pointer
471
+ if (!contains && this.clipChildren) {
472
+ return false;
473
+ }
474
+ if (this.delegatePickingToChildren) {
475
+ let contains = false;
476
+ for (let index = this._children.length - 1; index >= 0; index--) {
477
+ const child = this._children[index];
478
+ if (child.isEnabled && child.isHitTestVisible && child.isVisible && !child.notRenderable && child.contains(x, y)) {
479
+ contains = true;
480
+ break;
481
+ }
482
+ }
483
+ if (!contains) {
484
+ return false;
485
+ }
486
+ }
487
+ // Checking backwards to pick closest first
488
+ for (let index = this._children.length - 1; index >= 0; index--) {
489
+ const child = this._children[index];
490
+ if (child._processPicking(x, y, pi, type, pointerId, buttonIndex, deltaX, deltaY)) {
491
+ if (child.hoverCursor) {
492
+ this._host._changeCursor(child.hoverCursor);
493
+ }
494
+ return true;
495
+ }
496
+ }
497
+ if (!contains) {
498
+ return false;
499
+ }
500
+ if (!this.isHitTestVisible) {
501
+ return false;
502
+ }
503
+ return this._processObservables(type, x, y, pi, pointerId, buttonIndex, deltaX, deltaY);
504
+ }
505
+ /**
506
+ * @internal
507
+ */
508
+ _additionalProcessing(parentMeasure, context) {
509
+ super._additionalProcessing(parentMeasure, context);
510
+ this._measureForChildren.copyFrom(this._currentMeasure);
511
+ }
512
+ _getAdaptDimTo(dim) {
513
+ if (dim === "width") {
514
+ return this.adaptWidthToChildren;
515
+ }
516
+ else {
517
+ return this.adaptHeightToChildren;
518
+ }
519
+ }
520
+ isDimensionFullyDefined(dim) {
521
+ if (this._getAdaptDimTo(dim)) {
522
+ for (const child of this.children) {
523
+ if (!child.isDimensionFullyDefined(dim)) {
524
+ return false;
525
+ }
526
+ }
527
+ return true;
528
+ }
529
+ return super.isDimensionFullyDefined(dim);
530
+ }
531
+ /**
532
+ * Serializes the current control
533
+ * @param serializationObject defined the JSON serialized object
534
+ * @param force force serialization even if isSerializable === false
535
+ * @param allowCanvas defines if the control is allowed to use a Canvas2D object to serialize (true by default)
536
+ */
537
+ serialize(serializationObject, force = false, allowCanvas = true) {
538
+ super.serialize(serializationObject, force, allowCanvas);
539
+ if (!this.isSerializable && !force) {
540
+ return;
541
+ }
542
+ if (this.backgroundGradient) {
543
+ serializationObject.backgroundGradient = {};
544
+ this.backgroundGradient.serialize(serializationObject.backgroundGradient);
545
+ }
546
+ if (!this.children.length) {
547
+ return;
548
+ }
549
+ serializationObject.children = [];
550
+ for (const child of this.children) {
551
+ if (child.isSerializable || force) {
552
+ const childSerializationObject = {};
553
+ child.serialize(childSerializationObject, force, allowCanvas);
554
+ serializationObject.children.push(childSerializationObject);
555
+ }
556
+ }
557
+ }
558
+ /** Releases associated resources */
559
+ dispose() {
560
+ super.dispose();
561
+ for (let index = this.children.length - 1; index >= 0; index--) {
562
+ this.children[index].dispose();
563
+ }
564
+ this._intermediateTexture?.dispose();
565
+ }
566
+ /**
567
+ * @internal
568
+ */
569
+ _parseFromContent(serializedObject, host, urlRewriter) {
570
+ super._parseFromContent(serializedObject, host, urlRewriter);
571
+ this._link(host);
572
+ // Gradient
573
+ if (serializedObject.backgroundGradient) {
574
+ const className = Tools.Instantiate("BABYLON.GUI." + serializedObject.backgroundGradient.className);
575
+ this._backgroundGradient = new className();
576
+ this._backgroundGradient?.parse(serializedObject.backgroundGradient);
577
+ }
578
+ if (!serializedObject.children) {
579
+ return;
580
+ }
581
+ for (const childData of serializedObject.children) {
582
+ this.addControl(Control.Parse(childData, host, urlRewriter));
583
+ }
584
+ }
585
+ isReady() {
586
+ for (const child of this.children) {
587
+ if (!child.isReady()) {
588
+ return false;
589
+ }
590
+ }
591
+ return true;
592
+ }
593
+ }
594
+ __decorate([
595
+ serialize()
596
+ ], Container.prototype, "delegatePickingToChildren", void 0);
597
+ __decorate([
598
+ serialize()
599
+ ], Container.prototype, "renderToIntermediateTexture", null);
600
+ __decorate([
601
+ serialize()
602
+ ], Container.prototype, "maxLayoutCycle", void 0);
603
+ __decorate([
604
+ serialize()
605
+ ], Container.prototype, "adaptHeightToChildren", null);
606
+ __decorate([
607
+ serialize()
608
+ ], Container.prototype, "adaptWidthToChildren", null);
609
+ __decorate([
610
+ serialize()
611
+ ], Container.prototype, "background", null);
612
+ __decorate([
613
+ serialize()
614
+ ], Container.prototype, "backgroundGradient", null);
615
+ RegisterClass("BABYLON.GUI.Container", Container);
616
+ //# sourceMappingURL=container.js.map