@babylonjs/viewer 7.40.0-alpha → 7.40.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 (615) hide show
  1. package/configuration/configuration.d.ts +107 -0
  2. package/configuration/configuration.js +16 -0
  3. package/configuration/configuration.js.map +1 -0
  4. package/configuration/configurationCompatibility.d.ts +8 -0
  5. package/configuration/configurationCompatibility.js +66 -0
  6. package/configuration/configurationCompatibility.js.map +1 -0
  7. package/configuration/configurationContainer.d.ts +10 -0
  8. package/configuration/configurationContainer.js +10 -0
  9. package/configuration/configurationContainer.js.map +1 -0
  10. package/configuration/globals.d.ts +6 -0
  11. package/configuration/globals.js +18 -0
  12. package/configuration/globals.js.map +1 -0
  13. package/configuration/index.d.ts +2 -0
  14. package/configuration/index.js +4 -0
  15. package/configuration/index.js.map +1 -0
  16. package/configuration/interfaces/cameraConfiguration.d.ts +31 -0
  17. package/configuration/interfaces/cameraConfiguration.js +2 -0
  18. package/configuration/interfaces/cameraConfiguration.js.map +1 -0
  19. package/configuration/interfaces/colorGradingConfiguration.d.ts +81 -0
  20. package/configuration/interfaces/colorGradingConfiguration.js +2 -0
  21. package/configuration/interfaces/colorGradingConfiguration.js.map +1 -0
  22. package/configuration/interfaces/defaultRenderingPipelineConfiguration.d.ts +20 -0
  23. package/configuration/interfaces/defaultRenderingPipelineConfiguration.js +2 -0
  24. package/configuration/interfaces/defaultRenderingPipelineConfiguration.js.map +1 -0
  25. package/configuration/interfaces/environmentMapConfiguration.d.ts +22 -0
  26. package/configuration/interfaces/environmentMapConfiguration.js +2 -0
  27. package/configuration/interfaces/environmentMapConfiguration.js.map +1 -0
  28. package/configuration/interfaces/groundConfiguration.d.ts +24 -0
  29. package/configuration/interfaces/groundConfiguration.js +2 -0
  30. package/configuration/interfaces/groundConfiguration.js.map +1 -0
  31. package/configuration/interfaces/imageProcessingConfiguration.d.ts +45 -0
  32. package/configuration/interfaces/imageProcessingConfiguration.js +2 -0
  33. package/configuration/interfaces/imageProcessingConfiguration.js.map +1 -0
  34. package/configuration/interfaces/index.d.ts +15 -0
  35. package/configuration/interfaces/index.js +16 -0
  36. package/configuration/interfaces/index.js.map +1 -0
  37. package/configuration/interfaces/lightConfiguration.d.ts +60 -0
  38. package/configuration/interfaces/lightConfiguration.js +2 -0
  39. package/configuration/interfaces/lightConfiguration.js.map +1 -0
  40. package/configuration/interfaces/modelAnimationConfiguration.d.ts +26 -0
  41. package/configuration/interfaces/modelAnimationConfiguration.js +2 -0
  42. package/configuration/interfaces/modelAnimationConfiguration.js.map +1 -0
  43. package/configuration/interfaces/modelConfiguration.d.ts +65 -0
  44. package/configuration/interfaces/modelConfiguration.js +2 -0
  45. package/configuration/interfaces/modelConfiguration.js.map +1 -0
  46. package/configuration/interfaces/observersConfiguration.d.ts +5 -0
  47. package/configuration/interfaces/observersConfiguration.js +2 -0
  48. package/configuration/interfaces/observersConfiguration.js.map +1 -0
  49. package/configuration/interfaces/sceneConfiguration.d.ts +48 -0
  50. package/configuration/interfaces/sceneConfiguration.js +2 -0
  51. package/configuration/interfaces/sceneConfiguration.js.map +1 -0
  52. package/configuration/interfaces/sceneOptimizerConfiguration.d.ts +23 -0
  53. package/configuration/interfaces/sceneOptimizerConfiguration.js +2 -0
  54. package/configuration/interfaces/sceneOptimizerConfiguration.js.map +1 -0
  55. package/configuration/interfaces/skyboxConfiguration.d.ts +21 -0
  56. package/configuration/interfaces/skyboxConfiguration.js +2 -0
  57. package/configuration/interfaces/skyboxConfiguration.js.map +1 -0
  58. package/configuration/interfaces/templateConfiguration.d.ts +67 -0
  59. package/configuration/interfaces/templateConfiguration.js +2 -0
  60. package/configuration/interfaces/templateConfiguration.js.map +1 -0
  61. package/configuration/interfaces/vrConfiguration.d.ts +16 -0
  62. package/configuration/interfaces/vrConfiguration.js +2 -0
  63. package/configuration/interfaces/vrConfiguration.js.map +1 -0
  64. package/configuration/loader.d.ts +4 -0
  65. package/configuration/loader.js +17 -0
  66. package/configuration/loader.js.map +1 -0
  67. package/configuration/mappers.d.ts +43 -0
  68. package/configuration/mappers.js +193 -0
  69. package/configuration/mappers.js.map +1 -0
  70. package/configuration/renderOnlyLoader.d.ts +33 -0
  71. package/configuration/renderOnlyLoader.js +162 -0
  72. package/configuration/renderOnlyLoader.js.map +1 -0
  73. package/configuration/types/default.d.ts +6 -0
  74. package/configuration/types/default.js +121 -0
  75. package/configuration/types/default.js.map +1 -0
  76. package/configuration/types/environmentMap.d.ts +5 -0
  77. package/configuration/types/environmentMap.js +14 -0
  78. package/configuration/types/environmentMap.js.map +1 -0
  79. package/configuration/types/extended.d.ts +6 -0
  80. package/configuration/types/extended.js +317 -0
  81. package/configuration/types/extended.js.map +1 -0
  82. package/configuration/types/index.d.ts +14 -0
  83. package/configuration/types/index.js +51 -0
  84. package/configuration/types/index.js.map +1 -0
  85. package/configuration/types/minimal.d.ts +6 -0
  86. package/configuration/types/minimal.js +43 -0
  87. package/configuration/types/minimal.js.map +1 -0
  88. package/configuration/types/renderOnlyDefault.d.ts +30 -0
  89. package/configuration/types/renderOnlyDefault.js +31 -0
  90. package/configuration/types/renderOnlyDefault.js.map +1 -0
  91. package/configuration/types/shadowLight.d.ts +9 -0
  92. package/configuration/types/shadowLight.js +64 -0
  93. package/configuration/types/shadowLight.js.map +1 -0
  94. package/helper/index.d.ts +29 -0
  95. package/helper/index.js +66 -0
  96. package/helper/index.js.map +1 -0
  97. package/index.d.ts +30 -0
  98. package/index.js +46 -0
  99. package/index.js.map +1 -0
  100. package/initializer.d.ts +11 -0
  101. package/initializer.js +35 -0
  102. package/initializer.js.map +1 -0
  103. package/interfaces.d.ts +5 -0
  104. package/interfaces.js +7 -0
  105. package/interfaces.js.map +1 -0
  106. package/labs/environmentSerializer.d.ts +126 -0
  107. package/labs/environmentSerializer.js +191 -0
  108. package/labs/environmentSerializer.js.map +1 -0
  109. package/labs/texture.d.ts +183 -0
  110. package/labs/texture.js +351 -0
  111. package/labs/texture.js.map +1 -0
  112. package/labs/viewerLabs.d.ts +51 -0
  113. package/labs/viewerLabs.js +134 -0
  114. package/labs/viewerLabs.js.map +1 -0
  115. package/loader/modelLoader.d.ts +56 -0
  116. package/loader/modelLoader.js +202 -0
  117. package/loader/modelLoader.js.map +1 -0
  118. package/loader/plugins/applyMaterialConfig.d.ts +12 -0
  119. package/loader/plugins/applyMaterialConfig.js +16 -0
  120. package/loader/plugins/applyMaterialConfig.js.map +1 -0
  121. package/loader/plugins/extendedMaterialLoaderPlugin.d.ts +9 -0
  122. package/loader/plugins/extendedMaterialLoaderPlugin.js +16 -0
  123. package/loader/plugins/extendedMaterialLoaderPlugin.js.map +1 -0
  124. package/loader/plugins/index.d.ts +19 -0
  125. package/loader/plugins/index.js +44 -0
  126. package/loader/plugins/index.js.map +1 -0
  127. package/loader/plugins/loaderPlugin.d.ts +24 -0
  128. package/loader/plugins/loaderPlugin.js +2 -0
  129. package/loader/plugins/loaderPlugin.js.map +1 -0
  130. package/loader/plugins/msftLodLoaderPlugin.d.ts +12 -0
  131. package/loader/plugins/msftLodLoaderPlugin.js +21 -0
  132. package/loader/plugins/msftLodLoaderPlugin.js.map +1 -0
  133. package/loader/plugins/telemetryLoaderPlugin.d.ts +12 -0
  134. package/loader/plugins/telemetryLoaderPlugin.js +36 -0
  135. package/loader/plugins/telemetryLoaderPlugin.js.map +1 -0
  136. package/managers/observablesManager.d.ts +66 -0
  137. package/managers/observablesManager.js +35 -0
  138. package/managers/observablesManager.js.map +1 -0
  139. package/managers/sceneManager.d.ts +245 -0
  140. package/managers/sceneManager.js +1375 -0
  141. package/managers/sceneManager.js.map +1 -0
  142. package/managers/telemetryManager.d.ts +78 -0
  143. package/managers/telemetryManager.js +117 -0
  144. package/managers/telemetryManager.js.map +1 -0
  145. package/model/modelAnimation.d.ts +215 -0
  146. package/model/modelAnimation.js +237 -0
  147. package/model/modelAnimation.js.map +1 -0
  148. package/model/viewerModel.d.ts +233 -0
  149. package/model/viewerModel.js +673 -0
  150. package/model/viewerModel.js.map +1 -0
  151. package/optimizer/custom/extended.d.ts +13 -0
  152. package/optimizer/custom/extended.js +101 -0
  153. package/optimizer/custom/extended.js.map +1 -0
  154. package/optimizer/custom/index.d.ts +9 -0
  155. package/optimizer/custom/index.js +26 -0
  156. package/optimizer/custom/index.js.map +1 -0
  157. package/package.json +28 -19
  158. package/readme.md +28 -28
  159. package/renderOnlyIndex.d.ts +11 -0
  160. package/renderOnlyIndex.js +18 -0
  161. package/renderOnlyIndex.js.map +1 -0
  162. package/templating/eventManager.d.ts +35 -0
  163. package/templating/eventManager.js +66 -0
  164. package/templating/eventManager.js.map +1 -0
  165. package/templating/plugins/hdButtonPlugin.d.ts +9 -0
  166. package/templating/plugins/hdButtonPlugin.js +22 -0
  167. package/templating/plugins/hdButtonPlugin.js.map +1 -0
  168. package/templating/plugins/printButton.d.ts +9 -0
  169. package/templating/plugins/printButton.js +41 -0
  170. package/templating/plugins/printButton.js.map +1 -0
  171. package/templating/templateManager.d.ts +197 -0
  172. package/templating/templateManager.js +561 -0
  173. package/templating/templateManager.js.map +1 -0
  174. package/templating/viewerTemplatePlugin.d.ts +21 -0
  175. package/templating/viewerTemplatePlugin.js +69 -0
  176. package/templating/viewerTemplatePlugin.js.map +1 -0
  177. package/viewer/defaultViewer.d.ts +130 -0
  178. package/viewer/defaultViewer.js +672 -0
  179. package/viewer/defaultViewer.js.map +1 -0
  180. package/viewer/renderOnlyViewer.d.ts +9 -0
  181. package/viewer/renderOnlyViewer.js +46 -0
  182. package/viewer/renderOnlyViewer.js.map +1 -0
  183. package/viewer/viewer.d.ts +258 -0
  184. package/viewer/viewer.js +783 -0
  185. package/viewer/viewer.js.map +1 -0
  186. package/viewer/viewerManager.d.ts +58 -0
  187. package/viewer/viewerManager.js +91 -0
  188. package/viewer/viewerManager.js.map +1 -0
  189. package/viewer/viewerWithTemplate.d.ts +9 -0
  190. package/viewer/viewerWithTemplate.js +20 -0
  191. package/viewer/viewerWithTemplate.js.map +1 -0
  192. package/assets/photoStudio.env +0 -0
  193. package/dist/babylon-viewer.esm.js +0 -2
  194. package/dist/babylon-viewer.esm.js.map +0 -1
  195. package/dist/babylon-viewer.esm.min.js +0 -2
  196. package/dist/babylon-viewer.esm.min.js.map +0 -1
  197. package/dist/chunks/EXT_lights_ies-CWPYWIWN.esm.min.js +0 -2
  198. package/dist/chunks/EXT_lights_ies-CWPYWIWN.esm.min.js.map +0 -1
  199. package/dist/chunks/EXT_lights_ies-DXjx4vS8.esm.js +0 -84
  200. package/dist/chunks/EXT_lights_ies-DXjx4vS8.esm.js.map +0 -1
  201. package/dist/chunks/EXT_lights_image_based-B-Daha_c.esm.js +0 -171
  202. package/dist/chunks/EXT_lights_image_based-B-Daha_c.esm.js.map +0 -1
  203. package/dist/chunks/EXT_lights_image_based-fafIAwHA.esm.min.js +0 -2
  204. package/dist/chunks/EXT_lights_image_based-fafIAwHA.esm.min.js.map +0 -1
  205. package/dist/chunks/EXT_mesh_gpu_instancing-CQHNuvea.esm.min.js +0 -2
  206. package/dist/chunks/EXT_mesh_gpu_instancing-CQHNuvea.esm.min.js.map +0 -1
  207. package/dist/chunks/EXT_mesh_gpu_instancing-xQzfnk4R.esm.js +0 -86
  208. package/dist/chunks/EXT_mesh_gpu_instancing-xQzfnk4R.esm.js.map +0 -1
  209. package/dist/chunks/EXT_meshopt_compression-B2YW8Jul.esm.min.js +0 -2
  210. package/dist/chunks/EXT_meshopt_compression-B2YW8Jul.esm.min.js.map +0 -1
  211. package/dist/chunks/EXT_meshopt_compression-D-WT4x3b.esm.js +0 -134
  212. package/dist/chunks/EXT_meshopt_compression-D-WT4x3b.esm.js.map +0 -1
  213. package/dist/chunks/EXT_texture_avif-B3jJQLi_.esm.js +0 -44
  214. package/dist/chunks/EXT_texture_avif-B3jJQLi_.esm.js.map +0 -1
  215. package/dist/chunks/EXT_texture_avif-Cdp43X9W.esm.min.js +0 -2
  216. package/dist/chunks/EXT_texture_avif-Cdp43X9W.esm.min.js.map +0 -1
  217. package/dist/chunks/EXT_texture_webp-BnjDmIhh.esm.min.js +0 -2
  218. package/dist/chunks/EXT_texture_webp-BnjDmIhh.esm.min.js.map +0 -1
  219. package/dist/chunks/EXT_texture_webp-CJRS8tVF.esm.js +0 -43
  220. package/dist/chunks/EXT_texture_webp-CJRS8tVF.esm.js.map +0 -1
  221. package/dist/chunks/ExtrasAsMetadata-CIJMhaBZ.esm.min.js +0 -2
  222. package/dist/chunks/ExtrasAsMetadata-CIJMhaBZ.esm.min.js.map +0 -1
  223. package/dist/chunks/ExtrasAsMetadata-CwbKTcv7.esm.js +0 -64
  224. package/dist/chunks/ExtrasAsMetadata-CwbKTcv7.esm.js.map +0 -1
  225. package/dist/chunks/KHR_animation_pointer-9iHVi2y-.esm.js +0 -352
  226. package/dist/chunks/KHR_animation_pointer-9iHVi2y-.esm.js.map +0 -1
  227. package/dist/chunks/KHR_animation_pointer-CqdJSFtB.esm.min.js +0 -2
  228. package/dist/chunks/KHR_animation_pointer-CqdJSFtB.esm.min.js.map +0 -1
  229. package/dist/chunks/KHR_draco_mesh_compression-ClL38TL5.esm.min.js +0 -2
  230. package/dist/chunks/KHR_draco_mesh_compression-ClL38TL5.esm.min.js.map +0 -1
  231. package/dist/chunks/KHR_draco_mesh_compression-D3dZicO8.esm.js +0 -617
  232. package/dist/chunks/KHR_draco_mesh_compression-D3dZicO8.esm.js.map +0 -1
  233. package/dist/chunks/KHR_interactivity-6HrLuIjZ.esm.js +0 -4033
  234. package/dist/chunks/KHR_interactivity-6HrLuIjZ.esm.js.map +0 -1
  235. package/dist/chunks/KHR_interactivity-zubZF_6R.esm.min.js +0 -2
  236. package/dist/chunks/KHR_interactivity-zubZF_6R.esm.min.js.map +0 -1
  237. package/dist/chunks/KHR_lights_punctual-ClmFHdd7.esm.js +0 -581
  238. package/dist/chunks/KHR_lights_punctual-ClmFHdd7.esm.js.map +0 -1
  239. package/dist/chunks/KHR_lights_punctual-Fpwx2lSI.esm.min.js +0 -2
  240. package/dist/chunks/KHR_lights_punctual-Fpwx2lSI.esm.min.js.map +0 -1
  241. package/dist/chunks/KHR_materials_anisotropy-DJzuE8wA.esm.js +0 -65
  242. package/dist/chunks/KHR_materials_anisotropy-DJzuE8wA.esm.js.map +0 -1
  243. package/dist/chunks/KHR_materials_anisotropy-DXobrZpb.esm.min.js +0 -2
  244. package/dist/chunks/KHR_materials_anisotropy-DXobrZpb.esm.min.js.map +0 -1
  245. package/dist/chunks/KHR_materials_clearcoat-D0969pHH.esm.js +0 -96
  246. package/dist/chunks/KHR_materials_clearcoat-D0969pHH.esm.js.map +0 -1
  247. package/dist/chunks/KHR_materials_clearcoat-IanIfR8B.esm.min.js +0 -2
  248. package/dist/chunks/KHR_materials_clearcoat-IanIfR8B.esm.min.js.map +0 -1
  249. package/dist/chunks/KHR_materials_diffuse_transmission-CswRFXu1.esm.js +0 -97
  250. package/dist/chunks/KHR_materials_diffuse_transmission-CswRFXu1.esm.js.map +0 -1
  251. package/dist/chunks/KHR_materials_diffuse_transmission-DOSvTGyA.esm.min.js +0 -2
  252. package/dist/chunks/KHR_materials_diffuse_transmission-DOSvTGyA.esm.min.js.map +0 -1
  253. package/dist/chunks/KHR_materials_dispersion-N7vSa0nU.esm.min.js +0 -2
  254. package/dist/chunks/KHR_materials_dispersion-N7vSa0nU.esm.min.js.map +0 -1
  255. package/dist/chunks/KHR_materials_dispersion-lcuIAf7T.esm.js +0 -62
  256. package/dist/chunks/KHR_materials_dispersion-lcuIAf7T.esm.js.map +0 -1
  257. package/dist/chunks/KHR_materials_emissive_strength-CYCr0qYT.esm.min.js +0 -2
  258. package/dist/chunks/KHR_materials_emissive_strength-CYCr0qYT.esm.min.js.map +0 -1
  259. package/dist/chunks/KHR_materials_emissive_strength-Ccj9q0E7.esm.js +0 -55
  260. package/dist/chunks/KHR_materials_emissive_strength-Ccj9q0E7.esm.js.map +0 -1
  261. package/dist/chunks/KHR_materials_ior-CMGgp610.esm.js +0 -64
  262. package/dist/chunks/KHR_materials_ior-CMGgp610.esm.js.map +0 -1
  263. package/dist/chunks/KHR_materials_ior-DLbZJSfw.esm.min.js +0 -2
  264. package/dist/chunks/KHR_materials_ior-DLbZJSfw.esm.min.js.map +0 -1
  265. package/dist/chunks/KHR_materials_iridescence-DxhjIyld.esm.js +0 -72
  266. package/dist/chunks/KHR_materials_iridescence-DxhjIyld.esm.js.map +0 -1
  267. package/dist/chunks/KHR_materials_iridescence-GKx4iT0n.esm.min.js +0 -2
  268. package/dist/chunks/KHR_materials_iridescence-GKx4iT0n.esm.min.js.map +0 -1
  269. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-BhSexHVn.esm.min.js +0 -2
  270. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-BhSexHVn.esm.min.js.map +0 -1
  271. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-CaAfu_3f.esm.js +0 -81
  272. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-CaAfu_3f.esm.js.map +0 -1
  273. package/dist/chunks/KHR_materials_sheen-CN1BYTg2.esm.min.js +0 -2
  274. package/dist/chunks/KHR_materials_sheen-CN1BYTg2.esm.min.js.map +0 -1
  275. package/dist/chunks/KHR_materials_sheen-CTrHpM3p.esm.js +0 -85
  276. package/dist/chunks/KHR_materials_sheen-CTrHpM3p.esm.js.map +0 -1
  277. package/dist/chunks/KHR_materials_specular-D_qAmusR.esm.js +0 -75
  278. package/dist/chunks/KHR_materials_specular-D_qAmusR.esm.js.map +0 -1
  279. package/dist/chunks/KHR_materials_specular-DpKtpzvK.esm.min.js +0 -2
  280. package/dist/chunks/KHR_materials_specular-DpKtpzvK.esm.min.js.map +0 -1
  281. package/dist/chunks/KHR_materials_transmission-CxaJK0KS.esm.min.js +0 -2
  282. package/dist/chunks/KHR_materials_transmission-CxaJK0KS.esm.min.js.map +0 -1
  283. package/dist/chunks/KHR_materials_transmission-jJevhaTD.esm.js +0 -307
  284. package/dist/chunks/KHR_materials_transmission-jJevhaTD.esm.js.map +0 -1
  285. package/dist/chunks/KHR_materials_unlit-B9NoDbLu.esm.js +0 -74
  286. package/dist/chunks/KHR_materials_unlit-B9NoDbLu.esm.js.map +0 -1
  287. package/dist/chunks/KHR_materials_unlit-BV2WFURQ.esm.min.js +0 -2
  288. package/dist/chunks/KHR_materials_unlit-BV2WFURQ.esm.min.js.map +0 -1
  289. package/dist/chunks/KHR_materials_variants-BmH6A7LQ.esm.min.js +0 -2
  290. package/dist/chunks/KHR_materials_variants-BmH6A7LQ.esm.min.js.map +0 -1
  291. package/dist/chunks/KHR_materials_variants-BwlvUynB.esm.js +0 -262
  292. package/dist/chunks/KHR_materials_variants-BwlvUynB.esm.js.map +0 -1
  293. package/dist/chunks/KHR_materials_volume-BxsuFsjg.esm.js +0 -87
  294. package/dist/chunks/KHR_materials_volume-BxsuFsjg.esm.js.map +0 -1
  295. package/dist/chunks/KHR_materials_volume-DgaN4xP_.esm.min.js +0 -2
  296. package/dist/chunks/KHR_materials_volume-DgaN4xP_.esm.min.js.map +0 -1
  297. package/dist/chunks/KHR_mesh_quantization-BiqtT9kx.esm.min.js +0 -2
  298. package/dist/chunks/KHR_mesh_quantization-BiqtT9kx.esm.min.js.map +0 -1
  299. package/dist/chunks/KHR_mesh_quantization-Dui9vNiN.esm.js +0 -26
  300. package/dist/chunks/KHR_mesh_quantization-Dui9vNiN.esm.js.map +0 -1
  301. package/dist/chunks/KHR_node_hoverability-Bb7NACAZ.esm.js +0 -39
  302. package/dist/chunks/KHR_node_hoverability-Bb7NACAZ.esm.js.map +0 -1
  303. package/dist/chunks/KHR_node_hoverability-DO_c3jaM.esm.min.js +0 -2
  304. package/dist/chunks/KHR_node_hoverability-DO_c3jaM.esm.min.js.map +0 -1
  305. package/dist/chunks/KHR_node_visibility-B5DLk18h.esm.js +0 -46
  306. package/dist/chunks/KHR_node_visibility-B5DLk18h.esm.js.map +0 -1
  307. package/dist/chunks/KHR_node_visibility-Cf7iNP2D.esm.min.js +0 -2
  308. package/dist/chunks/KHR_node_visibility-Cf7iNP2D.esm.min.js.map +0 -1
  309. package/dist/chunks/KHR_texture_basisu-DgmXsV7i.esm.js +0 -43
  310. package/dist/chunks/KHR_texture_basisu-DgmXsV7i.esm.js.map +0 -1
  311. package/dist/chunks/KHR_texture_basisu-O4WmrcrG.esm.min.js +0 -2
  312. package/dist/chunks/KHR_texture_basisu-O4WmrcrG.esm.min.js.map +0 -1
  313. package/dist/chunks/KHR_texture_transform-C2B03Q6l.esm.min.js +0 -2
  314. package/dist/chunks/KHR_texture_transform-C2B03Q6l.esm.min.js.map +0 -1
  315. package/dist/chunks/KHR_texture_transform-DkQQG3PK.esm.js +0 -63
  316. package/dist/chunks/KHR_texture_transform-DkQQG3PK.esm.js.map +0 -1
  317. package/dist/chunks/KHR_xmp_json_ld-D9eCYTa2.esm.min.js +0 -2
  318. package/dist/chunks/KHR_xmp_json_ld-D9eCYTa2.esm.min.js.map +0 -1
  319. package/dist/chunks/KHR_xmp_json_ld-gs5UzU_o.esm.js +0 -51
  320. package/dist/chunks/KHR_xmp_json_ld-gs5UzU_o.esm.js.map +0 -1
  321. package/dist/chunks/MSFT_audio_emitter-B9fkUjJ0.esm.js +0 -2207
  322. package/dist/chunks/MSFT_audio_emitter-B9fkUjJ0.esm.js.map +0 -1
  323. package/dist/chunks/MSFT_audio_emitter-DpJ8OxBw.esm.min.js +0 -2
  324. package/dist/chunks/MSFT_audio_emitter-DpJ8OxBw.esm.min.js.map +0 -1
  325. package/dist/chunks/MSFT_lod-DS6_zCB0.esm.js +0 -337
  326. package/dist/chunks/MSFT_lod-DS6_zCB0.esm.js.map +0 -1
  327. package/dist/chunks/MSFT_lod-qGdnTg6f.esm.min.js +0 -2
  328. package/dist/chunks/MSFT_lod-qGdnTg6f.esm.min.js.map +0 -1
  329. package/dist/chunks/MSFT_minecraftMesh-99ZDXpdT.esm.min.js +0 -2
  330. package/dist/chunks/MSFT_minecraftMesh-99ZDXpdT.esm.min.js.map +0 -1
  331. package/dist/chunks/MSFT_minecraftMesh-B60rmY-O.esm.js +0 -46
  332. package/dist/chunks/MSFT_minecraftMesh-B60rmY-O.esm.js.map +0 -1
  333. package/dist/chunks/MSFT_sRGBFactors-Br1RUJsD.esm.min.js +0 -2
  334. package/dist/chunks/MSFT_sRGBFactors-Br1RUJsD.esm.min.js.map +0 -1
  335. package/dist/chunks/MSFT_sRGBFactors-DVcyl59-.esm.js +0 -47
  336. package/dist/chunks/MSFT_sRGBFactors-DVcyl59-.esm.js.map +0 -1
  337. package/dist/chunks/animationGroup-D80NDoJK.esm.min.js +0 -2
  338. package/dist/chunks/animationGroup-D80NDoJK.esm.min.js.map +0 -1
  339. package/dist/chunks/animationGroup-DaKL_xr0.esm.js +0 -2482
  340. package/dist/chunks/animationGroup-DaKL_xr0.esm.js.map +0 -1
  341. package/dist/chunks/assetContainer-DUHXkzRR.esm.js +0 -1720
  342. package/dist/chunks/assetContainer-DUHXkzRR.esm.js.map +0 -1
  343. package/dist/chunks/assetContainer-DrlGfFUd.esm.min.js +0 -2
  344. package/dist/chunks/assetContainer-DrlGfFUd.esm.min.js.map +0 -1
  345. package/dist/chunks/audioEngine-BbaOte04.esm.min.js +0 -2
  346. package/dist/chunks/audioEngine-BbaOte04.esm.min.js.map +0 -1
  347. package/dist/chunks/audioEngine-Cl77hj6S.esm.js +0 -305
  348. package/dist/chunks/audioEngine-Cl77hj6S.esm.js.map +0 -1
  349. package/dist/chunks/bakedVertexAnimation-1Je9P1Wr.esm.js +0 -114
  350. package/dist/chunks/bakedVertexAnimation-1Je9P1Wr.esm.js.map +0 -1
  351. package/dist/chunks/bakedVertexAnimation-CqAC8NlK.esm.min.js +0 -2
  352. package/dist/chunks/bakedVertexAnimation-CqAC8NlK.esm.min.js.map +0 -1
  353. package/dist/chunks/basisTextureLoader-D6HL2Z1j.esm.js +0 -600
  354. package/dist/chunks/basisTextureLoader-D6HL2Z1j.esm.js.map +0 -1
  355. package/dist/chunks/basisTextureLoader-r7SDsKh7.esm.min.js +0 -2
  356. package/dist/chunks/basisTextureLoader-r7SDsKh7.esm.min.js.map +0 -1
  357. package/dist/chunks/dds-B3q7zTkZ.esm.js +0 -540
  358. package/dist/chunks/dds-B3q7zTkZ.esm.js.map +0 -1
  359. package/dist/chunks/dds-BBiaQw-Y.esm.min.js +0 -2
  360. package/dist/chunks/dds-BBiaQw-Y.esm.min.js.map +0 -1
  361. package/dist/chunks/ddsTextureLoader-C4PtTvoL.esm.js +0 -88
  362. package/dist/chunks/ddsTextureLoader-C4PtTvoL.esm.js.map +0 -1
  363. package/dist/chunks/ddsTextureLoader-CGA8DF-Z.esm.min.js +0 -2
  364. package/dist/chunks/ddsTextureLoader-CGA8DF-Z.esm.min.js.map +0 -1
  365. package/dist/chunks/decalFragment-BTxhBHbp.esm.js +0 -18
  366. package/dist/chunks/decalFragment-BTxhBHbp.esm.js.map +0 -1
  367. package/dist/chunks/decalFragment-n8HEgits.esm.min.js +0 -2
  368. package/dist/chunks/decalFragment-n8HEgits.esm.min.js.map +0 -1
  369. package/dist/chunks/default.fragment-CUJQb4Ds.esm.min.js +0 -2
  370. package/dist/chunks/default.fragment-CUJQb4Ds.esm.min.js.map +0 -1
  371. package/dist/chunks/default.fragment-CkvRouhO.esm.min.js +0 -2
  372. package/dist/chunks/default.fragment-CkvRouhO.esm.min.js.map +0 -1
  373. package/dist/chunks/default.fragment-D3CHq-x9.esm.js +0 -515
  374. package/dist/chunks/default.fragment-D3CHq-x9.esm.js.map +0 -1
  375. package/dist/chunks/default.fragment-DIWDeOi3.esm.js +0 -446
  376. package/dist/chunks/default.fragment-DIWDeOi3.esm.js.map +0 -1
  377. package/dist/chunks/default.vertex-7EvlstiX.esm.js +0 -181
  378. package/dist/chunks/default.vertex-7EvlstiX.esm.js.map +0 -1
  379. package/dist/chunks/default.vertex-DNVWc7Pt.esm.min.js +0 -2
  380. package/dist/chunks/default.vertex-DNVWc7Pt.esm.min.js.map +0 -1
  381. package/dist/chunks/default.vertex-DRUHVqKs.esm.min.js +0 -2
  382. package/dist/chunks/default.vertex-DRUHVqKs.esm.min.js.map +0 -1
  383. package/dist/chunks/default.vertex-Vc6tOJMI.esm.js +0 -202
  384. package/dist/chunks/default.vertex-Vc6tOJMI.esm.js.map +0 -1
  385. package/dist/chunks/defaultUboDeclaration-Bf-6awzG.esm.js +0 -15
  386. package/dist/chunks/defaultUboDeclaration-Bf-6awzG.esm.js.map +0 -1
  387. package/dist/chunks/defaultUboDeclaration-DDhQ3CTy.esm.js +0 -13
  388. package/dist/chunks/defaultUboDeclaration-DDhQ3CTy.esm.js.map +0 -1
  389. package/dist/chunks/defaultUboDeclaration-DYX0y14N.esm.min.js +0 -2
  390. package/dist/chunks/defaultUboDeclaration-DYX0y14N.esm.min.js.map +0 -1
  391. package/dist/chunks/defaultUboDeclaration-DcdUryhi.esm.min.js +0 -2
  392. package/dist/chunks/defaultUboDeclaration-DcdUryhi.esm.min.js.map +0 -1
  393. package/dist/chunks/drawWrapper.functions-CKg3_9x4.esm.js +0 -11
  394. package/dist/chunks/drawWrapper.functions-CKg3_9x4.esm.js.map +0 -1
  395. package/dist/chunks/drawWrapper.functions-ng7lvueZ.esm.min.js +0 -2
  396. package/dist/chunks/drawWrapper.functions-ng7lvueZ.esm.min.js.map +0 -1
  397. package/dist/chunks/dumpTools-BWNjR_G6.esm.min.js +0 -2
  398. package/dist/chunks/dumpTools-BWNjR_G6.esm.min.js.map +0 -1
  399. package/dist/chunks/dumpTools-hegDCvBc.esm.js +0 -200
  400. package/dist/chunks/dumpTools-hegDCvBc.esm.js.map +0 -1
  401. package/dist/chunks/engine-CZGy-n30.esm.js +0 -2216
  402. package/dist/chunks/engine-CZGy-n30.esm.js.map +0 -1
  403. package/dist/chunks/engine-iddO2T22.esm.min.js +0 -2
  404. package/dist/chunks/engine-iddO2T22.esm.min.js.map +0 -1
  405. package/dist/chunks/engine.common-CGXs9MDG.esm.min.js +0 -2
  406. package/dist/chunks/engine.common-CGXs9MDG.esm.min.js.map +0 -1
  407. package/dist/chunks/engine.common-Cqb8HjxX.esm.js +0 -1162
  408. package/dist/chunks/engine.common-Cqb8HjxX.esm.js.map +0 -1
  409. package/dist/chunks/envTextureLoader-Czm9uAXM.esm.js +0 -64
  410. package/dist/chunks/envTextureLoader-Czm9uAXM.esm.js.map +0 -1
  411. package/dist/chunks/envTextureLoader-D-YagZnu.esm.min.js +0 -2
  412. package/dist/chunks/envTextureLoader-D-YagZnu.esm.min.js.map +0 -1
  413. package/dist/chunks/environmentTextureTools-B5WZowyO.esm.min.js +0 -2
  414. package/dist/chunks/environmentTextureTools-B5WZowyO.esm.min.js.map +0 -1
  415. package/dist/chunks/environmentTextureTools-BrdD2X7A.esm.js +0 -382
  416. package/dist/chunks/environmentTextureTools-BrdD2X7A.esm.js.map +0 -1
  417. package/dist/chunks/exrTextureLoader-ClJnk3E3.esm.js +0 -1683
  418. package/dist/chunks/exrTextureLoader-ClJnk3E3.esm.js.map +0 -1
  419. package/dist/chunks/exrTextureLoader-s-Mog8_s.esm.min.js +0 -2
  420. package/dist/chunks/exrTextureLoader-s-Mog8_s.esm.min.js.map +0 -1
  421. package/dist/chunks/fogFragment-C2vW2rrh.esm.js +0 -102
  422. package/dist/chunks/fogFragment-C2vW2rrh.esm.js.map +0 -1
  423. package/dist/chunks/fogFragment-CAmhx99G.esm.min.js +0 -2
  424. package/dist/chunks/fogFragment-CAmhx99G.esm.min.js.map +0 -1
  425. package/dist/chunks/fogFragment-VhCT_edc.esm.min.js +0 -2
  426. package/dist/chunks/fogFragment-VhCT_edc.esm.min.js.map +0 -1
  427. package/dist/chunks/fogFragment-weVZWTdd.esm.js +0 -101
  428. package/dist/chunks/fogFragment-weVZWTdd.esm.js.map +0 -1
  429. package/dist/chunks/fresnelFunction-4cImVcNT.esm.js +0 -12
  430. package/dist/chunks/fresnelFunction-4cImVcNT.esm.js.map +0 -1
  431. package/dist/chunks/fresnelFunction-Da1sPcvo.esm.min.js +0 -2
  432. package/dist/chunks/fresnelFunction-Da1sPcvo.esm.min.js.map +0 -1
  433. package/dist/chunks/glTFLoader-7uvFneFt.esm.js +0 -7586
  434. package/dist/chunks/glTFLoader-7uvFneFt.esm.js.map +0 -1
  435. package/dist/chunks/glTFLoader-ChTng_Ew.esm.min.js +0 -2
  436. package/dist/chunks/glTFLoader-ChTng_Ew.esm.min.js.map +0 -1
  437. package/dist/chunks/glTFLoaderAnimation-BeBTAsWq.esm.js +0 -77
  438. package/dist/chunks/glTFLoaderAnimation-BeBTAsWq.esm.js.map +0 -1
  439. package/dist/chunks/glTFLoaderAnimation-CCHLAoRK.esm.min.js +0 -2
  440. package/dist/chunks/glTFLoaderAnimation-CCHLAoRK.esm.min.js.map +0 -1
  441. package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js +0 -2
  442. package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js.map +0 -1
  443. package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js +0 -67
  444. package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js.map +0 -1
  445. package/dist/chunks/harmonicsFunctions-CIez3XpU.esm.min.js +0 -2
  446. package/dist/chunks/harmonicsFunctions-CIez3XpU.esm.min.js.map +0 -1
  447. package/dist/chunks/harmonicsFunctions-CjYmCnUh.esm.min.js +0 -2
  448. package/dist/chunks/harmonicsFunctions-CjYmCnUh.esm.min.js.map +0 -1
  449. package/dist/chunks/harmonicsFunctions-D8X6XkcB.esm.js +0 -35
  450. package/dist/chunks/harmonicsFunctions-D8X6XkcB.esm.js.map +0 -1
  451. package/dist/chunks/harmonicsFunctions-i7q2aWAO.esm.js +0 -34
  452. package/dist/chunks/harmonicsFunctions-i7q2aWAO.esm.js.map +0 -1
  453. package/dist/chunks/hdrTextureLoader-C6WR9qDu.esm.min.js +0 -2
  454. package/dist/chunks/hdrTextureLoader-C6WR9qDu.esm.min.js.map +0 -1
  455. package/dist/chunks/hdrTextureLoader-DdEmyqh5.esm.js +0 -253
  456. package/dist/chunks/hdrTextureLoader-DdEmyqh5.esm.js.map +0 -1
  457. package/dist/chunks/helperFunctions-B8W8JpaI.esm.min.js +0 -2
  458. package/dist/chunks/helperFunctions-B8W8JpaI.esm.min.js.map +0 -1
  459. package/dist/chunks/helperFunctions-CV2C3XEf.esm.js +0 -108
  460. package/dist/chunks/helperFunctions-CV2C3XEf.esm.js.map +0 -1
  461. package/dist/chunks/helperFunctions-CgUf8pyk.esm.js +0 -80
  462. package/dist/chunks/helperFunctions-CgUf8pyk.esm.js.map +0 -1
  463. package/dist/chunks/helperFunctions-VM--MJVI.esm.min.js +0 -2
  464. package/dist/chunks/helperFunctions-VM--MJVI.esm.min.js.map +0 -1
  465. package/dist/chunks/iesTextureLoader-BuScKRlS.esm.js +0 -189
  466. package/dist/chunks/iesTextureLoader-BuScKRlS.esm.js.map +0 -1
  467. package/dist/chunks/iesTextureLoader-if1ntALJ.esm.min.js +0 -2
  468. package/dist/chunks/iesTextureLoader-if1ntALJ.esm.min.js.map +0 -1
  469. package/dist/chunks/index-7pOUdivR.esm.js +0 -74709
  470. package/dist/chunks/index-7pOUdivR.esm.js.map +0 -1
  471. package/dist/chunks/index-CHb7NKRY.esm.min.js +0 -57
  472. package/dist/chunks/index-CHb7NKRY.esm.min.js.map +0 -1
  473. package/dist/chunks/ktxTextureLoader-9L7lCOMk.esm.min.js +0 -2
  474. package/dist/chunks/ktxTextureLoader-9L7lCOMk.esm.min.js.map +0 -1
  475. package/dist/chunks/ktxTextureLoader-Ct-9NIcu.esm.js +0 -814
  476. package/dist/chunks/ktxTextureLoader-Ct-9NIcu.esm.js.map +0 -1
  477. package/dist/chunks/logDepthDeclaration-CFHaSiET.esm.min.js +0 -2
  478. package/dist/chunks/logDepthDeclaration-CFHaSiET.esm.min.js.map +0 -1
  479. package/dist/chunks/logDepthDeclaration-Cqb_Zo_s.esm.js +0 -11
  480. package/dist/chunks/logDepthDeclaration-Cqb_Zo_s.esm.js.map +0 -1
  481. package/dist/chunks/logDepthDeclaration-DCW2NExX.esm.min.js +0 -2
  482. package/dist/chunks/logDepthDeclaration-DCW2NExX.esm.min.js.map +0 -1
  483. package/dist/chunks/logDepthDeclaration-oJ9tNQ3q.esm.js +0 -35
  484. package/dist/chunks/logDepthDeclaration-oJ9tNQ3q.esm.js.map +0 -1
  485. package/dist/chunks/logDepthVertex-BCP-KTtt.esm.js +0 -81
  486. package/dist/chunks/logDepthVertex-BCP-KTtt.esm.js.map +0 -1
  487. package/dist/chunks/logDepthVertex-BwYkGLpu.esm.js +0 -77
  488. package/dist/chunks/logDepthVertex-BwYkGLpu.esm.js.map +0 -1
  489. package/dist/chunks/logDepthVertex-DoyGVTWA.esm.min.js +0 -2
  490. package/dist/chunks/logDepthVertex-DoyGVTWA.esm.min.js.map +0 -1
  491. package/dist/chunks/logDepthVertex-WdJWwsLV.esm.min.js +0 -2
  492. package/dist/chunks/logDepthVertex-WdJWwsLV.esm.min.js.map +0 -1
  493. package/dist/chunks/mainUVVaryingDeclaration-B_ziE3K3.esm.min.js +0 -2
  494. package/dist/chunks/mainUVVaryingDeclaration-B_ziE3K3.esm.min.js.map +0 -1
  495. package/dist/chunks/mainUVVaryingDeclaration-CRWcERPP.esm.js +0 -11
  496. package/dist/chunks/mainUVVaryingDeclaration-CRWcERPP.esm.js.map +0 -1
  497. package/dist/chunks/mainUVVaryingDeclaration-NuhfZTP4.esm.js +0 -11
  498. package/dist/chunks/mainUVVaryingDeclaration-NuhfZTP4.esm.js.map +0 -1
  499. package/dist/chunks/mainUVVaryingDeclaration-_WOgDBUD.esm.min.js +0 -2
  500. package/dist/chunks/mainUVVaryingDeclaration-_WOgDBUD.esm.min.js.map +0 -1
  501. package/dist/chunks/meshUboDeclaration-BkKdZCAL.esm.min.js +0 -2
  502. package/dist/chunks/meshUboDeclaration-BkKdZCAL.esm.min.js.map +0 -1
  503. package/dist/chunks/meshUboDeclaration-VO75rv0M.esm.js +0 -26
  504. package/dist/chunks/meshUboDeclaration-VO75rv0M.esm.js.map +0 -1
  505. package/dist/chunks/objFileLoader-BcUlaMO0.esm.min.js +0 -2
  506. package/dist/chunks/objFileLoader-BcUlaMO0.esm.min.js.map +0 -1
  507. package/dist/chunks/objFileLoader-CrSk62pN.esm.js +0 -1338
  508. package/dist/chunks/objFileLoader-CrSk62pN.esm.js.map +0 -1
  509. package/dist/chunks/oitFragment-9xHvc1pY.esm.min.js +0 -2
  510. package/dist/chunks/oitFragment-9xHvc1pY.esm.min.js.map +0 -1
  511. package/dist/chunks/oitFragment-BedTygSm.esm.js +0 -1240
  512. package/dist/chunks/oitFragment-BedTygSm.esm.js.map +0 -1
  513. package/dist/chunks/oitFragment-Dx3jhb-Y.esm.js +0 -1078
  514. package/dist/chunks/oitFragment-Dx3jhb-Y.esm.js.map +0 -1
  515. package/dist/chunks/oitFragment-wsShal2z.esm.min.js +0 -2
  516. package/dist/chunks/oitFragment-wsShal2z.esm.min.js.map +0 -1
  517. package/dist/chunks/pass.fragment-BAFAqEd3.esm.js +0 -15
  518. package/dist/chunks/pass.fragment-BAFAqEd3.esm.js.map +0 -1
  519. package/dist/chunks/pass.fragment-BCDgjoaP.esm.min.js +0 -2
  520. package/dist/chunks/pass.fragment-BCDgjoaP.esm.min.js.map +0 -1
  521. package/dist/chunks/pass.fragment-Cw2vMur1.esm.min.js +0 -2
  522. package/dist/chunks/pass.fragment-Cw2vMur1.esm.min.js.map +0 -1
  523. package/dist/chunks/pass.fragment-DvVPDD3q.esm.js +0 -15
  524. package/dist/chunks/pass.fragment-DvVPDD3q.esm.js.map +0 -1
  525. package/dist/chunks/pbr.fragment-BEgWbv9s.esm.min.js +0 -2
  526. package/dist/chunks/pbr.fragment-BEgWbv9s.esm.min.js.map +0 -1
  527. package/dist/chunks/pbr.fragment-CR8wXt2w.esm.js +0 -3232
  528. package/dist/chunks/pbr.fragment-CR8wXt2w.esm.js.map +0 -1
  529. package/dist/chunks/pbr.fragment-CmVN3-cU.esm.js +0 -3273
  530. package/dist/chunks/pbr.fragment-CmVN3-cU.esm.js.map +0 -1
  531. package/dist/chunks/pbr.fragment-DXqzm4Ha.esm.min.js +0 -2
  532. package/dist/chunks/pbr.fragment-DXqzm4Ha.esm.min.js.map +0 -1
  533. package/dist/chunks/pbr.vertex-B7DptLQs.esm.js +0 -214
  534. package/dist/chunks/pbr.vertex-B7DptLQs.esm.js.map +0 -1
  535. package/dist/chunks/pbr.vertex-BNDn-K_8.esm.min.js +0 -2
  536. package/dist/chunks/pbr.vertex-BNDn-K_8.esm.min.js.map +0 -1
  537. package/dist/chunks/pbr.vertex-Cp8jkMaM.esm.min.js +0 -2
  538. package/dist/chunks/pbr.vertex-Cp8jkMaM.esm.min.js.map +0 -1
  539. package/dist/chunks/pbr.vertex-rvNW4KDh.esm.js +0 -339
  540. package/dist/chunks/pbr.vertex-rvNW4KDh.esm.js.map +0 -1
  541. package/dist/chunks/postprocess.vertex-BRHkF-uK.esm.js +0 -20
  542. package/dist/chunks/postprocess.vertex-BRHkF-uK.esm.js.map +0 -1
  543. package/dist/chunks/postprocess.vertex-QT9kbb4b.esm.min.js +0 -2
  544. package/dist/chunks/postprocess.vertex-QT9kbb4b.esm.min.js.map +0 -1
  545. package/dist/chunks/rawTexture-CS3J_QPB.esm.min.js +0 -2
  546. package/dist/chunks/rawTexture-CS3J_QPB.esm.min.js.map +0 -1
  547. package/dist/chunks/rawTexture-CTQXP4lW.esm.js +0 -191
  548. package/dist/chunks/rawTexture-CTQXP4lW.esm.js.map +0 -1
  549. package/dist/chunks/ray-D1I6_i0K.esm.js +0 -946
  550. package/dist/chunks/ray-D1I6_i0K.esm.js.map +0 -1
  551. package/dist/chunks/ray-ffMmFIRM.esm.min.js +0 -2
  552. package/dist/chunks/ray-ffMmFIRM.esm.min.js.map +0 -1
  553. package/dist/chunks/rgbdDecode.fragment-BuXAGpKo.esm.js +0 -17
  554. package/dist/chunks/rgbdDecode.fragment-BuXAGpKo.esm.js.map +0 -1
  555. package/dist/chunks/rgbdDecode.fragment-Uqqwk9hd.esm.min.js +0 -2
  556. package/dist/chunks/rgbdDecode.fragment-Uqqwk9hd.esm.min.js.map +0 -1
  557. package/dist/chunks/rgbdDecode.fragment-iifwD2Tq.esm.js +0 -17
  558. package/dist/chunks/rgbdDecode.fragment-iifwD2Tq.esm.js.map +0 -1
  559. package/dist/chunks/rgbdDecode.fragment-ykJ6BacZ.esm.min.js +0 -2
  560. package/dist/chunks/rgbdDecode.fragment-ykJ6BacZ.esm.min.js.map +0 -1
  561. package/dist/chunks/rgbdEncode.fragment-B8trM95E.esm.js +0 -17
  562. package/dist/chunks/rgbdEncode.fragment-B8trM95E.esm.js.map +0 -1
  563. package/dist/chunks/rgbdEncode.fragment-Dk50Ggfr.esm.min.js +0 -2
  564. package/dist/chunks/rgbdEncode.fragment-Dk50Ggfr.esm.min.js.map +0 -1
  565. package/dist/chunks/rgbdEncode.fragment-OfZ629fV.esm.min.js +0 -2
  566. package/dist/chunks/rgbdEncode.fragment-OfZ629fV.esm.min.js.map +0 -1
  567. package/dist/chunks/rgbdEncode.fragment-S4QKY6JX.esm.js +0 -17
  568. package/dist/chunks/rgbdEncode.fragment-S4QKY6JX.esm.js.map +0 -1
  569. package/dist/chunks/splatFileLoader-BKRNi0Kz.esm.js +0 -3379
  570. package/dist/chunks/splatFileLoader-BKRNi0Kz.esm.js.map +0 -1
  571. package/dist/chunks/splatFileLoader-Bii2polh.esm.min.js +0 -2
  572. package/dist/chunks/splatFileLoader-Bii2polh.esm.min.js.map +0 -1
  573. package/dist/chunks/spotLight-Bx97rCpk.esm.js +0 -701
  574. package/dist/chunks/spotLight-Bx97rCpk.esm.js.map +0 -1
  575. package/dist/chunks/spotLight-WYJhdyXT.esm.min.js +0 -2
  576. package/dist/chunks/spotLight-WYJhdyXT.esm.min.js.map +0 -1
  577. package/dist/chunks/standardMaterial-B2COaxO7.esm.min.js +0 -2
  578. package/dist/chunks/standardMaterial-B2COaxO7.esm.min.js.map +0 -1
  579. package/dist/chunks/standardMaterial-DobO9sHt.esm.js +0 -1805
  580. package/dist/chunks/standardMaterial-DobO9sHt.esm.js.map +0 -1
  581. package/dist/chunks/stlFileLoader-BA8gtxRg.esm.js +0 -238
  582. package/dist/chunks/stlFileLoader-BA8gtxRg.esm.js.map +0 -1
  583. package/dist/chunks/stlFileLoader-hIvh4jC_.esm.min.js +0 -2
  584. package/dist/chunks/stlFileLoader-hIvh4jC_.esm.min.js.map +0 -1
  585. package/dist/chunks/tgaTextureLoader-BVKXLe7s.esm.js +0 -349
  586. package/dist/chunks/tgaTextureLoader-BVKXLe7s.esm.js.map +0 -1
  587. package/dist/chunks/tgaTextureLoader-autBbrGZ.esm.min.js +0 -2
  588. package/dist/chunks/tgaTextureLoader-autBbrGZ.esm.min.js.map +0 -1
  589. package/dist/chunks/thinEngine-BPspbumB.esm.min.js +0 -2
  590. package/dist/chunks/thinEngine-BPspbumB.esm.min.js.map +0 -1
  591. package/dist/chunks/thinEngine-wr-z1XFG.esm.js +0 -3848
  592. package/dist/chunks/thinEngine-wr-z1XFG.esm.js.map +0 -1
  593. package/dist/chunks/thinInstanceMesh-D2RBwifP.esm.min.js +0 -2
  594. package/dist/chunks/thinInstanceMesh-D2RBwifP.esm.min.js.map +0 -1
  595. package/dist/chunks/thinInstanceMesh-DVy1Ya49.esm.js +0 -314
  596. package/dist/chunks/thinInstanceMesh-DVy1Ya49.esm.js.map +0 -1
  597. package/dist/chunks/vertexColorMixing-B_-b5IVj.esm.js +0 -522
  598. package/dist/chunks/vertexColorMixing-B_-b5IVj.esm.js.map +0 -1
  599. package/dist/chunks/vertexColorMixing-Bd53icV7.esm.min.js +0 -2
  600. package/dist/chunks/vertexColorMixing-Bd53icV7.esm.min.js.map +0 -1
  601. package/dist/chunks/vertexColorMixing-Bm_nb2CS.esm.js +0 -412
  602. package/dist/chunks/vertexColorMixing-Bm_nb2CS.esm.js.map +0 -1
  603. package/dist/chunks/vertexColorMixing-DogY4EnF.esm.min.js +0 -2
  604. package/dist/chunks/vertexColorMixing-DogY4EnF.esm.min.js.map +0 -1
  605. package/dist/chunks/webgpuEngine-CZnjGjDY.esm.min.js +0 -2
  606. package/dist/chunks/webgpuEngine-CZnjGjDY.esm.min.js.map +0 -1
  607. package/dist/chunks/webgpuEngine-DQcXBSQC.esm.js +0 -11533
  608. package/dist/chunks/webgpuEngine-DQcXBSQC.esm.js.map +0 -1
  609. package/dist/chunks/workerPool-BUOov2K1.esm.js +0 -122
  610. package/dist/chunks/workerPool-BUOov2K1.esm.js.map +0 -1
  611. package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js +0 -2
  612. package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js.map +0 -1
  613. package/lib/index.d.ts +0 -559
  614. package/lib/index.js +0 -2083
  615. package/lib/index.js.map +0 -1
@@ -0,0 +1,561 @@
1
+ import { Observable } from "@babylonjs/core/Misc/observable.js";
2
+ import { Tools } from "@babylonjs/core/Misc/tools.js";
3
+ // eslint-disable-next-line import/no-internal-modules
4
+ import { isUrl, camelToKebab, kebabToCamel, deepmerge } from "../helper/index.js";
5
+ import * as Handlebars from "handlebars";
6
+ import { EventManager } from "./eventManager.js";
7
+ /**
8
+ * The template manager, a member of the viewer class, will manage the viewer's templates and generate the HTML.
9
+ * The template manager managers a single viewer and can be seen as the collection of all sub-templates of the viewer.
10
+ */
11
+ var TemplateManager = /** @class */ (function () {
12
+ function TemplateManager(containerElement) {
13
+ this.containerElement = containerElement;
14
+ this._templates = {};
15
+ this.onTemplateInit = new Observable();
16
+ this.onTemplateLoaded = new Observable();
17
+ this.onTemplateStateChange = new Observable();
18
+ this.onAllLoaded = new Observable();
19
+ this.onEventTriggered = new Observable();
20
+ this.eventManager = new EventManager(this);
21
+ }
22
+ /**
23
+ * Initialize the template(s) for the viewer. Called bay the Viewer class
24
+ * @param templates the templates to be used to initialize the main template
25
+ * @returns a promise that will be fulfilled when the template is loaded
26
+ */
27
+ TemplateManager.prototype.initTemplate = function (templates) {
28
+ var _this = this;
29
+ var internalInit = function (dependencyMap, name, parentTemplate) {
30
+ //init template
31
+ var template = _this._templates[name];
32
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
33
+ Object.keys(dependencyMap).map(function (childName) {
34
+ return internalInit(dependencyMap[childName], childName, template);
35
+ });
36
+ // register the observers
37
+ //template.onLoaded.add(() => {
38
+ var addToParent = function () {
39
+ var lastElements = parentTemplate && parentTemplate.parent.querySelectorAll(camelToKebab(name));
40
+ var containingElement = (lastElements && lastElements.length && lastElements.item(lastElements.length - 1)) || _this.containerElement;
41
+ template.appendTo(containingElement);
42
+ _this._checkLoadedState();
43
+ };
44
+ if (parentTemplate && !parentTemplate.parent) {
45
+ parentTemplate.onAppended.add(function () {
46
+ addToParent();
47
+ });
48
+ }
49
+ else {
50
+ addToParent();
51
+ }
52
+ //});
53
+ return template;
54
+ };
55
+ //build the html tree
56
+ return this._buildHTMLTree(templates).then(function (htmlTree) {
57
+ if (_this._templates["main"]) {
58
+ internalInit(htmlTree, "main");
59
+ }
60
+ else {
61
+ _this._checkLoadedState();
62
+ }
63
+ return;
64
+ });
65
+ };
66
+ /**
67
+ *
68
+ * This function will create a simple map with child-dependencies of the template html tree.
69
+ * It will compile each template, check if its children exist in the configuration and will add them if they do.
70
+ * It is expected that the main template will be called main!
71
+ *
72
+ * @param templates the templates to be used to initialize the main template
73
+ * @returns a promise that will be fulfilled when the template is loaded
74
+ */
75
+ TemplateManager.prototype._buildHTMLTree = function (templates) {
76
+ var _this = this;
77
+ var promises = Object.keys(templates).map(function (name) {
78
+ // if the template was overridden
79
+ if (!templates[name]) {
80
+ return Promise.resolve(false);
81
+ }
82
+ // else - we have a template, let's do our job!
83
+ var template = new Template(name, templates[name]);
84
+ template.onLoaded.add(function () {
85
+ _this.onTemplateLoaded.notifyObservers(template);
86
+ });
87
+ template.onStateChange.add(function () {
88
+ _this.onTemplateStateChange.notifyObservers(template);
89
+ });
90
+ _this.onTemplateInit.notifyObservers(template);
91
+ // make sure the global onEventTriggered is called as well
92
+ template.onEventTriggered.add(function (eventData) { return _this.onEventTriggered.notifyObservers(eventData); });
93
+ _this._templates[name] = template;
94
+ return template.initPromise;
95
+ });
96
+ return Promise.all(promises).then(function () {
97
+ var templateStructure = {};
98
+ // now iterate through all templates and check for children:
99
+ var buildTree = function (parentObject, name) {
100
+ _this._templates[name].isInHtmlTree = true;
101
+ var childNodes = _this._templates[name].getChildElements().filter(function (n) { return !!_this._templates[n]; });
102
+ childNodes.forEach(function (element) {
103
+ parentObject[element] = {};
104
+ buildTree(parentObject[element], element);
105
+ });
106
+ };
107
+ if (_this._templates["main"]) {
108
+ buildTree(templateStructure, "main");
109
+ }
110
+ return templateStructure;
111
+ });
112
+ };
113
+ /**
114
+ * Get the canvas in the template tree.
115
+ * There must be one and only one canvas inthe template.
116
+ * @returns the canvas element or null if not found
117
+ */
118
+ TemplateManager.prototype.getCanvas = function () {
119
+ return this.containerElement.querySelector("canvas");
120
+ };
121
+ /**
122
+ * Get a specific template from the template tree
123
+ * @param name the name of the template to load
124
+ * @returns the template or undefined if not found
125
+ */
126
+ TemplateManager.prototype.getTemplate = function (name) {
127
+ return this._templates[name];
128
+ };
129
+ TemplateManager.prototype._checkLoadedState = function () {
130
+ var _this = this;
131
+ var done = Object.keys(this._templates).length === 0 ||
132
+ Object.keys(this._templates).every(function (key) {
133
+ return (_this._templates[key].isLoaded && !!_this._templates[key].parent) || !_this._templates[key].isInHtmlTree;
134
+ });
135
+ if (done) {
136
+ this.onAllLoaded.notifyObservers(this);
137
+ }
138
+ };
139
+ /**
140
+ * Dispose the template manager
141
+ */
142
+ TemplateManager.prototype.dispose = function () {
143
+ var _this = this;
144
+ // dispose all templates
145
+ Object.keys(this._templates).forEach(function (template) {
146
+ _this._templates[template].dispose();
147
+ });
148
+ this._templates = {};
149
+ this.eventManager.dispose();
150
+ this.onTemplateInit.clear();
151
+ this.onAllLoaded.clear();
152
+ this.onEventTriggered.clear();
153
+ this.onTemplateLoaded.clear();
154
+ this.onTemplateStateChange.clear();
155
+ };
156
+ return TemplateManager;
157
+ }());
158
+ export { TemplateManager };
159
+ // register a new helper. modified https://stackoverflow.com/questions/9838925/is-there-any-method-to-iterate-a-map-with-handlebars-js
160
+ Handlebars.registerHelper("eachInMap", function (map, block) {
161
+ var out = "";
162
+ Object.keys(map).map(function (prop) {
163
+ var data = map[prop];
164
+ if (typeof data === "object") {
165
+ data.id = data.id || prop;
166
+ out += block.fn(data);
167
+ }
168
+ else {
169
+ out += block.fn({ id: prop, value: data });
170
+ }
171
+ });
172
+ return out;
173
+ });
174
+ Handlebars.registerHelper("add", function (a, b) {
175
+ var out = a + b;
176
+ return out;
177
+ });
178
+ Handlebars.registerHelper("eq", function (a, b) {
179
+ var out = a == b;
180
+ return out;
181
+ });
182
+ Handlebars.registerHelper("or", function (a, b) {
183
+ var out = a || b;
184
+ return out;
185
+ });
186
+ Handlebars.registerHelper("not", function (a) {
187
+ var out = !a;
188
+ return out;
189
+ });
190
+ Handlebars.registerHelper("count", function (map) {
191
+ return map.length;
192
+ });
193
+ Handlebars.registerHelper("gt", function (a, b) {
194
+ var out = a > b;
195
+ return out;
196
+ });
197
+ /**
198
+ * This class represents a single template in the viewer's template tree.
199
+ * An example for a template is a single canvas, an overlay (containing sub-templates) or the navigation bar.
200
+ * A template is injected using the template manager in the correct position.
201
+ * The template is rendered using Handlebars and can use Handlebars' features (such as parameter injection)
202
+ *
203
+ * For further information please refer to the documentation page, https://doc.babylonjs.com
204
+ */
205
+ var Template = /** @class */ (function () {
206
+ function Template(name, _configuration) {
207
+ var _this = this;
208
+ this.name = name;
209
+ this._configuration = _configuration;
210
+ this.onLoaded = new Observable();
211
+ this.onAppended = new Observable();
212
+ this.onStateChange = new Observable();
213
+ this.onEventTriggered = new Observable();
214
+ this.onParamsUpdated = new Observable();
215
+ this.onHTMLRendered = new Observable();
216
+ this._loadRequests = [];
217
+ this.isLoaded = false;
218
+ this.isShown = false;
219
+ this.isInHtmlTree = false;
220
+ var htmlContentPromise = this._getTemplateAsHtml(_configuration);
221
+ this.initPromise = htmlContentPromise.then(function (htmlTemplate) {
222
+ if (htmlTemplate) {
223
+ _this._htmlTemplate = htmlTemplate;
224
+ var compiledTemplate = Handlebars.compile(htmlTemplate, { noEscape: _this._configuration.params && !!_this._configuration.params.noEscape });
225
+ var config = _this._configuration.params || {};
226
+ _this._rawHtml = compiledTemplate(config);
227
+ try {
228
+ _this._fragment = document.createRange().createContextualFragment(_this._rawHtml);
229
+ }
230
+ catch (e) {
231
+ var test_1 = document.createElement(_this.name);
232
+ test_1.innerHTML = _this._rawHtml;
233
+ _this._fragment = test_1;
234
+ }
235
+ _this.isLoaded = true;
236
+ _this.isShown = true;
237
+ _this.onLoaded.notifyObservers(_this);
238
+ }
239
+ return _this;
240
+ });
241
+ }
242
+ /**
243
+ * Some templates have parameters (like background color for example).
244
+ * The parameters are provided to Handlebars which in turn generates the template.
245
+ * This function will update the template with the new parameters
246
+ *
247
+ * Note that when updating parameters the events will be registered again (after being cleared).
248
+ *
249
+ * @param params the new template parameters
250
+ * @param append
251
+ */
252
+ Template.prototype.updateParams = function (params, append) {
253
+ if (append === void 0) { append = true; }
254
+ if (append) {
255
+ this._configuration.params = deepmerge(this._configuration.params, params);
256
+ }
257
+ else {
258
+ this._configuration.params = params;
259
+ }
260
+ // update the template
261
+ if (this.isLoaded) {
262
+ // this.dispose();
263
+ }
264
+ var compiledTemplate = Handlebars.compile(this._htmlTemplate);
265
+ var config = this._configuration.params || {};
266
+ this._rawHtml = compiledTemplate(config);
267
+ try {
268
+ this._fragment = document.createRange().createContextualFragment(this._rawHtml);
269
+ }
270
+ catch (e) {
271
+ var test_2 = document.createElement(this.name);
272
+ test_2.innerHTML = this._rawHtml;
273
+ this._fragment = test_2;
274
+ }
275
+ if (this.parent) {
276
+ this.appendTo(this.parent, true);
277
+ }
278
+ };
279
+ Template.prototype.redraw = function () {
280
+ this.updateParams({});
281
+ };
282
+ Object.defineProperty(Template.prototype, "configuration", {
283
+ /**
284
+ * Get the template'S configuration
285
+ */
286
+ get: function () {
287
+ return this._configuration;
288
+ },
289
+ enumerable: false,
290
+ configurable: true
291
+ });
292
+ /**
293
+ * A template can be a parent element for other templates or HTML elements.
294
+ * This function will deliver all child HTML elements of this template.
295
+ * @returns an array of strings, each string is the name of the child element
296
+ */
297
+ Template.prototype.getChildElements = function () {
298
+ var childrenArray = [];
299
+ //Edge and IE don't support frage,ent.children
300
+ var children = this._fragment && this._fragment.children;
301
+ if (!this._fragment) {
302
+ var fragment = this.parent.querySelector(this.name);
303
+ if (fragment) {
304
+ children = fragment.querySelectorAll("*");
305
+ }
306
+ }
307
+ if (!children) {
308
+ // casting to HTMLCollection, as both NodeListOf and HTMLCollection have 'item()' and 'length'.
309
+ children = this._fragment.querySelectorAll("*");
310
+ }
311
+ for (var i = 0; i < children.length; ++i) {
312
+ var child = children.item(i);
313
+ if (child) {
314
+ childrenArray.push(kebabToCamel(child.nodeName.toLowerCase()));
315
+ }
316
+ }
317
+ return childrenArray;
318
+ };
319
+ /**
320
+ * Appending the template to a parent HTML element.
321
+ * If a parent is already set and you wish to replace the old HTML with new one, forceRemove should be true.
322
+ * @param parent the parent to which the template is added
323
+ * @param forceRemove if the parent already exists, shoud the template be removed from it?
324
+ */
325
+ Template.prototype.appendTo = function (parent, forceRemove) {
326
+ var _this = this;
327
+ if (this.parent) {
328
+ if (forceRemove && this._addedFragment) {
329
+ /*let fragement = this.parent.querySelector(this.name)
330
+ if (fragement)
331
+ this.parent.removeChild(fragement);*/
332
+ this.parent.innerHTML = "";
333
+ }
334
+ else {
335
+ return;
336
+ }
337
+ }
338
+ this.parent = parent;
339
+ if (this._configuration.id) {
340
+ this.parent.id = this._configuration.id;
341
+ }
342
+ if (this._fragment) {
343
+ this.parent.appendChild(this._fragment);
344
+ this._addedFragment = this._fragment;
345
+ }
346
+ else {
347
+ this.parent.insertAdjacentHTML("beforeend", this._rawHtml);
348
+ }
349
+ this.onHTMLRendered.notifyObservers(this);
350
+ // appended only one frame after.
351
+ setTimeout(function () {
352
+ _this._registerEvents();
353
+ _this.onAppended.notifyObservers(_this);
354
+ });
355
+ };
356
+ /**
357
+ * Show the template using the provided visibilityFunction, or natively using display: flex.
358
+ * The provided function returns a promise that should be fulfilled when the element is shown.
359
+ * Since it is a promise async operations are more than possible.
360
+ * See the default viewer for an opacity example.
361
+ * @param visibilityFunction The function to execute to show the template.
362
+ * @returns a promise that will be fulfilled when the template is shown
363
+ */
364
+ Template.prototype.show = function (visibilityFunction) {
365
+ var _this = this;
366
+ if (this._isHiding) {
367
+ return Promise.resolve(this);
368
+ }
369
+ return Promise.resolve()
370
+ .then(function () {
371
+ _this._isShowing = true;
372
+ if (visibilityFunction) {
373
+ return visibilityFunction(_this);
374
+ }
375
+ else {
376
+ // flex? box? should this be configurable easier than the visibilityFunction?
377
+ _this.parent.style.display = "flex";
378
+ // support old browsers with no flex:
379
+ if (_this.parent.style.display !== "flex") {
380
+ _this.parent.style.display = "";
381
+ }
382
+ return _this;
383
+ }
384
+ })
385
+ .then(function () {
386
+ _this.isShown = true;
387
+ _this._isShowing = false;
388
+ _this.onStateChange.notifyObservers(_this);
389
+ return _this;
390
+ });
391
+ };
392
+ /**
393
+ * Hide the template using the provided visibilityFunction, or natively using display: none.
394
+ * The provided function returns a promise that should be fulfilled when the element is hidden.
395
+ * Since it is a promise async operations are more than possible.
396
+ * See the default viewer for an opacity example.
397
+ * @param visibilityFunction The function to execute to show the template.
398
+ * @returns a promise that will be fulfilled when the template is hidden
399
+ */
400
+ Template.prototype.hide = function (visibilityFunction) {
401
+ var _this = this;
402
+ if (this._isShowing) {
403
+ return Promise.resolve(this);
404
+ }
405
+ return Promise.resolve()
406
+ .then(function () {
407
+ _this._isHiding = true;
408
+ if (visibilityFunction) {
409
+ return visibilityFunction(_this);
410
+ }
411
+ else {
412
+ // flex? box? should this be configurable easier than the visibilityFunction?
413
+ _this.parent.style.display = "none";
414
+ return _this;
415
+ }
416
+ })
417
+ .then(function () {
418
+ _this.isShown = false;
419
+ _this._isHiding = false;
420
+ _this.onStateChange.notifyObservers(_this);
421
+ return _this;
422
+ });
423
+ };
424
+ /**
425
+ * Dispose this template
426
+ */
427
+ Template.prototype.dispose = function () {
428
+ this.onAppended.clear();
429
+ this.onEventTriggered.clear();
430
+ this.onLoaded.clear();
431
+ this.onStateChange.clear();
432
+ this.isLoaded = false;
433
+ // remove from parent
434
+ try {
435
+ this.parent.removeChild(this._fragment);
436
+ }
437
+ catch (e) {
438
+ //noop
439
+ }
440
+ this._loadRequests.forEach(function (request) {
441
+ request.abort();
442
+ });
443
+ if (this._registeredEvents) {
444
+ this._registeredEvents.forEach(function (evt) {
445
+ evt.htmlElement.removeEventListener(evt.eventName, evt.function);
446
+ });
447
+ }
448
+ };
449
+ Template.prototype._getTemplateAsHtml = function (templateConfig) {
450
+ var _this = this;
451
+ if (!templateConfig) {
452
+ return Promise.reject("No templateConfig provided");
453
+ }
454
+ else if (templateConfig.html && !templateConfig.location) {
455
+ return Promise.resolve(templateConfig.html);
456
+ }
457
+ else {
458
+ var location_1 = this._getTemplateLocation(templateConfig);
459
+ if (isUrl(location_1)) {
460
+ return new Promise(function (resolve, reject) {
461
+ var fileRequest = Tools.LoadFile(location_1, function (data) {
462
+ resolve(data);
463
+ }, undefined, undefined, false, function (request, error) {
464
+ reject(error);
465
+ });
466
+ _this._loadRequests.push(fileRequest);
467
+ });
468
+ }
469
+ else {
470
+ location_1 = location_1.replace("#", "");
471
+ var element = document.getElementById(location_1);
472
+ if (element) {
473
+ return Promise.resolve(element.innerHTML);
474
+ }
475
+ else {
476
+ return Promise.reject("Template ID not found");
477
+ }
478
+ }
479
+ }
480
+ };
481
+ Template.prototype._registerEvents = function () {
482
+ var _this = this;
483
+ this._registeredEvents = this._registeredEvents || [];
484
+ if (this._registeredEvents.length) {
485
+ // first remove the registered events
486
+ this._registeredEvents.forEach(function (evt) {
487
+ evt.htmlElement.removeEventListener(evt.eventName, evt.function);
488
+ });
489
+ }
490
+ if (this._configuration.events) {
491
+ var _loop_1 = function (eventName) {
492
+ if (this_1._configuration.events && this_1._configuration.events[eventName]) {
493
+ var functionToFire_1 = function (selector, event) {
494
+ _this.onEventTriggered.notifyObservers({ event: event, template: _this, selector: selector });
495
+ };
496
+ // if boolean, set the parent as the event listener
497
+ if (typeof this_1._configuration.events[eventName] === "boolean") {
498
+ var selector = this_1.parent.id;
499
+ if (selector) {
500
+ selector = "#" + selector;
501
+ }
502
+ else {
503
+ selector = this_1.parent.tagName;
504
+ }
505
+ var binding = functionToFire_1.bind(this_1, selector);
506
+ this_1.parent.addEventListener(eventName, binding, false);
507
+ this_1._registeredEvents.push({
508
+ htmlElement: this_1.parent,
509
+ eventName: eventName,
510
+ function: binding,
511
+ });
512
+ }
513
+ else if (typeof this_1._configuration.events[eventName] === "object") {
514
+ var selectorsArray = Object.keys(this_1._configuration.events[eventName] || {});
515
+ // strict null check is working incorrectly, must override:
516
+ var event_1 = this_1._configuration.events[eventName] || {};
517
+ selectorsArray
518
+ .filter(function (selector) { return typeof event_1 !== "boolean" && event_1[selector]; })
519
+ .forEach(function (selector) {
520
+ var htmlElement = _this.parent.querySelector(selector);
521
+ if (!htmlElement) {
522
+ // backcompat, fallback to id
523
+ if (selector && selector.indexOf("#") !== 0) {
524
+ selector = "#" + selector;
525
+ }
526
+ try {
527
+ htmlElement = _this.parent.querySelector(selector);
528
+ }
529
+ catch (e) { }
530
+ }
531
+ if (htmlElement) {
532
+ var binding = functionToFire_1.bind(_this, selector);
533
+ htmlElement.addEventListener(eventName, binding, false);
534
+ _this._registeredEvents.push({
535
+ htmlElement: htmlElement,
536
+ eventName: eventName,
537
+ function: binding,
538
+ });
539
+ }
540
+ });
541
+ }
542
+ }
543
+ };
544
+ var this_1 = this;
545
+ for (var eventName in this._configuration.events) {
546
+ _loop_1(eventName);
547
+ }
548
+ }
549
+ };
550
+ Template.prototype._getTemplateLocation = function (templateConfig) {
551
+ if (!templateConfig || typeof templateConfig === "string") {
552
+ return templateConfig;
553
+ }
554
+ else {
555
+ return templateConfig.location;
556
+ }
557
+ };
558
+ return Template;
559
+ }());
560
+ export { Template };
561
+ //# sourceMappingURL=templateManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templateManager.js","sourceRoot":"","sources":["../../../../tools/viewer/src/templating/templateManager.ts"],"names":[],"mappings":"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","sourcesContent":["import { Observable } from \"core/Misc/observable\";\r\nimport { Tools } from \"core/Misc/tools\";\r\n// eslint-disable-next-line import/no-internal-modules\r\nimport { isUrl, camelToKebab, kebabToCamel, deepmerge } from \"../helper/index\";\r\n\r\nimport * as Handlebars from \"handlebars\";\r\nimport { EventManager } from \"./eventManager\";\r\nimport type { ITemplateConfiguration } from \"../configuration/interfaces/templateConfiguration\";\r\nimport type { IFileRequest } from \"core/Misc/fileRequest\";\r\n\r\n/**\r\n * The object sent when an event is triggered\r\n */\r\nexport interface EventCallback {\r\n event: Event;\r\n template: Template;\r\n selector: string;\r\n payload?: any;\r\n}\r\n\r\n/**\r\n * The template manager, a member of the viewer class, will manage the viewer's templates and generate the HTML.\r\n * The template manager managers a single viewer and can be seen as the collection of all sub-templates of the viewer.\r\n */\r\nexport class TemplateManager {\r\n /**\r\n * Will be triggered when any template is initialized\r\n */\r\n public onTemplateInit: Observable<Template>;\r\n /**\r\n * Will be triggered when any template is fully loaded\r\n */\r\n public onTemplateLoaded: Observable<Template>;\r\n /**\r\n * Will be triggered when a template state changes\r\n */\r\n public onTemplateStateChange: Observable<Template>;\r\n /**\r\n * Will be triggered when all templates finished loading\r\n */\r\n public onAllLoaded: Observable<TemplateManager>;\r\n /**\r\n * Will be triggered when any event on any template is triggered.\r\n */\r\n public onEventTriggered: Observable<EventCallback>;\r\n\r\n /**\r\n * This template manager's event manager. In charge of callback registrations to native event types\r\n */\r\n public eventManager: EventManager;\r\n\r\n private _templates: { [name: string]: Template };\r\n\r\n constructor(public containerElement: Element) {\r\n this._templates = {};\r\n\r\n this.onTemplateInit = new Observable<Template>();\r\n this.onTemplateLoaded = new Observable<Template>();\r\n this.onTemplateStateChange = new Observable<Template>();\r\n this.onAllLoaded = new Observable<TemplateManager>();\r\n this.onEventTriggered = new Observable<EventCallback>();\r\n\r\n this.eventManager = new EventManager(this);\r\n }\r\n\r\n /**\r\n * Initialize the template(s) for the viewer. Called bay the Viewer class\r\n * @param templates the templates to be used to initialize the main template\r\n * @returns a promise that will be fulfilled when the template is loaded\r\n */\r\n public initTemplate(templates: { [key: string]: ITemplateConfiguration }) {\r\n const internalInit = (dependencyMap: any, name: string, parentTemplate?: Template) => {\r\n //init template\r\n const template = this._templates[name];\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n Object.keys(dependencyMap).map((childName) => {\r\n return internalInit(dependencyMap[childName], childName, template);\r\n });\r\n\r\n // register the observers\r\n //template.onLoaded.add(() => {\r\n const addToParent = () => {\r\n const lastElements = parentTemplate && parentTemplate.parent.querySelectorAll(camelToKebab(name) as keyof HTMLElementTagNameMap);\r\n const containingElement = (lastElements && lastElements.length && lastElements.item(lastElements.length - 1)) || this.containerElement;\r\n template.appendTo(<HTMLElement>containingElement);\r\n this._checkLoadedState();\r\n };\r\n\r\n if (parentTemplate && !parentTemplate.parent) {\r\n parentTemplate.onAppended.add(() => {\r\n addToParent();\r\n });\r\n } else {\r\n addToParent();\r\n }\r\n //});\r\n\r\n return template;\r\n };\r\n\r\n //build the html tree\r\n return this._buildHTMLTree(templates).then((htmlTree) => {\r\n if (this._templates[\"main\"]) {\r\n internalInit(htmlTree, \"main\");\r\n } else {\r\n this._checkLoadedState();\r\n }\r\n return;\r\n });\r\n }\r\n\r\n /**\r\n *\r\n * This function will create a simple map with child-dependencies of the template html tree.\r\n * It will compile each template, check if its children exist in the configuration and will add them if they do.\r\n * It is expected that the main template will be called main!\r\n *\r\n * @param templates the templates to be used to initialize the main template\r\n * @returns a promise that will be fulfilled when the template is loaded\r\n */\r\n private _buildHTMLTree(templates: { [key: string]: ITemplateConfiguration }): Promise<object> {\r\n const promises: Array<Promise<Template | boolean>> = Object.keys(templates).map((name) => {\r\n // if the template was overridden\r\n if (!templates[name]) {\r\n return Promise.resolve(false);\r\n }\r\n // else - we have a template, let's do our job!\r\n const template = new Template(name, templates[name]);\r\n template.onLoaded.add(() => {\r\n this.onTemplateLoaded.notifyObservers(template);\r\n });\r\n template.onStateChange.add(() => {\r\n this.onTemplateStateChange.notifyObservers(template);\r\n });\r\n this.onTemplateInit.notifyObservers(template);\r\n // make sure the global onEventTriggered is called as well\r\n template.onEventTriggered.add((eventData) => this.onEventTriggered.notifyObservers(eventData));\r\n this._templates[name] = template;\r\n return template.initPromise;\r\n });\r\n\r\n return Promise.all(promises).then(() => {\r\n const templateStructure = {};\r\n // now iterate through all templates and check for children:\r\n const buildTree = (parentObject: any, name: string) => {\r\n this._templates[name].isInHtmlTree = true;\r\n const childNodes = this._templates[name].getChildElements().filter((n) => !!this._templates[n]);\r\n childNodes.forEach((element) => {\r\n parentObject[element] = {};\r\n buildTree(parentObject[element], element);\r\n });\r\n };\r\n if (this._templates[\"main\"]) {\r\n buildTree(templateStructure, \"main\");\r\n }\r\n return templateStructure;\r\n });\r\n }\r\n\r\n /**\r\n * Get the canvas in the template tree.\r\n * There must be one and only one canvas inthe template.\r\n * @returns the canvas element or null if not found\r\n */\r\n public getCanvas(): HTMLCanvasElement | null {\r\n return this.containerElement.querySelector(\"canvas\");\r\n }\r\n\r\n /**\r\n * Get a specific template from the template tree\r\n * @param name the name of the template to load\r\n * @returns the template or undefined if not found\r\n */\r\n public getTemplate(name: string): Template | undefined {\r\n return this._templates[name];\r\n }\r\n\r\n private _checkLoadedState() {\r\n const done =\r\n Object.keys(this._templates).length === 0 ||\r\n Object.keys(this._templates).every((key) => {\r\n return (this._templates[key].isLoaded && !!this._templates[key].parent) || !this._templates[key].isInHtmlTree;\r\n });\r\n\r\n if (done) {\r\n this.onAllLoaded.notifyObservers(this);\r\n }\r\n }\r\n\r\n /**\r\n * Dispose the template manager\r\n */\r\n public dispose() {\r\n // dispose all templates\r\n Object.keys(this._templates).forEach((template) => {\r\n this._templates[template].dispose();\r\n });\r\n this._templates = {};\r\n this.eventManager.dispose();\r\n\r\n this.onTemplateInit.clear();\r\n this.onAllLoaded.clear();\r\n this.onEventTriggered.clear();\r\n this.onTemplateLoaded.clear();\r\n this.onTemplateStateChange.clear();\r\n }\r\n}\r\n\r\n// register a new helper. modified https://stackoverflow.com/questions/9838925/is-there-any-method-to-iterate-a-map-with-handlebars-js\r\nHandlebars.registerHelper(\"eachInMap\", function (map, block) {\r\n let out = \"\";\r\n Object.keys(map).map(function (prop) {\r\n const data = map[prop];\r\n if (typeof data === \"object\") {\r\n data.id = data.id || prop;\r\n out += block.fn(data);\r\n } else {\r\n out += block.fn({ id: prop, value: data });\r\n }\r\n });\r\n return out;\r\n});\r\n\r\nHandlebars.registerHelper(\"add\", function (a, b) {\r\n const out = a + b;\r\n return out;\r\n});\r\n\r\nHandlebars.registerHelper(\"eq\", function (a, b) {\r\n const out = a == b;\r\n return out;\r\n});\r\n\r\nHandlebars.registerHelper(\"or\", function (a, b) {\r\n const out = a || b;\r\n return out;\r\n});\r\n\r\nHandlebars.registerHelper(\"not\", function (a) {\r\n const out = !a;\r\n return out;\r\n});\r\n\r\nHandlebars.registerHelper(\"count\", function (map) {\r\n return map.length;\r\n});\r\n\r\nHandlebars.registerHelper(\"gt\", function (a, b) {\r\n const out = a > b;\r\n return out;\r\n});\r\n\r\n/**\r\n * This class represents a single template in the viewer's template tree.\r\n * An example for a template is a single canvas, an overlay (containing sub-templates) or the navigation bar.\r\n * A template is injected using the template manager in the correct position.\r\n * The template is rendered using Handlebars and can use Handlebars' features (such as parameter injection)\r\n *\r\n * For further information please refer to the documentation page, https://doc.babylonjs.com\r\n */\r\nexport class Template {\r\n /**\r\n * Will be triggered when the template is loaded\r\n */\r\n public onLoaded: Observable<Template>;\r\n /**\r\n * will be triggered when the template is appended to the tree\r\n */\r\n public onAppended: Observable<Template>;\r\n /**\r\n * Will be triggered when the template's state changed (shown, hidden)\r\n */\r\n public onStateChange: Observable<Template>;\r\n /**\r\n * Will be triggered when an event is triggered on ths template.\r\n * The event is a native browser event (like mouse or pointer events)\r\n */\r\n public onEventTriggered: Observable<EventCallback>;\r\n\r\n public onParamsUpdated: Observable<Template>;\r\n\r\n public onHTMLRendered: Observable<Template>;\r\n\r\n /**\r\n * is the template loaded?\r\n */\r\n public isLoaded: boolean;\r\n /**\r\n * This is meant to be used to track the show and hide functions.\r\n * This is NOT (!!) a flag to check if the element is actually visible to the user.\r\n */\r\n public isShown: boolean;\r\n\r\n /**\r\n * Is this template a part of the HTML tree (the template manager injected it)\r\n */\r\n public isInHtmlTree: boolean;\r\n\r\n /**\r\n * The HTML element containing this template\r\n */\r\n public parent: HTMLElement;\r\n\r\n /**\r\n * A promise that is fulfilled when the template finished loading.\r\n */\r\n public initPromise: Promise<Template>;\r\n\r\n private _fragment: DocumentFragment | Element;\r\n private _addedFragment: DocumentFragment | Element;\r\n private _htmlTemplate: string;\r\n private _rawHtml: string;\r\n\r\n private _loadRequests: Array<IFileRequest>;\r\n\r\n constructor(\r\n public name: string,\r\n private _configuration: ITemplateConfiguration\r\n ) {\r\n this.onLoaded = new Observable<Template>();\r\n this.onAppended = new Observable<Template>();\r\n this.onStateChange = new Observable<Template>();\r\n this.onEventTriggered = new Observable<EventCallback>();\r\n this.onParamsUpdated = new Observable<Template>();\r\n this.onHTMLRendered = new Observable<Template>();\r\n\r\n this._loadRequests = [];\r\n\r\n this.isLoaded = false;\r\n this.isShown = false;\r\n this.isInHtmlTree = false;\r\n\r\n const htmlContentPromise = this._getTemplateAsHtml(_configuration);\r\n\r\n this.initPromise = htmlContentPromise.then((htmlTemplate) => {\r\n if (htmlTemplate) {\r\n this._htmlTemplate = htmlTemplate;\r\n const compiledTemplate = Handlebars.compile(htmlTemplate, { noEscape: this._configuration.params && !!this._configuration.params.noEscape });\r\n const config = this._configuration.params || {};\r\n this._rawHtml = compiledTemplate(config);\r\n try {\r\n this._fragment = document.createRange().createContextualFragment(this._rawHtml);\r\n } catch (e) {\r\n const test = document.createElement(this.name);\r\n test.innerHTML = this._rawHtml;\r\n this._fragment = test;\r\n }\r\n this.isLoaded = true;\r\n this.isShown = true;\r\n this.onLoaded.notifyObservers(this);\r\n }\r\n return this;\r\n });\r\n }\r\n\r\n /**\r\n * Some templates have parameters (like background color for example).\r\n * The parameters are provided to Handlebars which in turn generates the template.\r\n * This function will update the template with the new parameters\r\n *\r\n * Note that when updating parameters the events will be registered again (after being cleared).\r\n *\r\n * @param params the new template parameters\r\n * @param append\r\n */\r\n public updateParams(params: { [key: string]: string | number | boolean | object }, append: boolean = true) {\r\n if (append) {\r\n this._configuration.params = deepmerge(this._configuration.params, params);\r\n } else {\r\n this._configuration.params = params;\r\n }\r\n // update the template\r\n if (this.isLoaded) {\r\n // this.dispose();\r\n }\r\n const compiledTemplate = Handlebars.compile(this._htmlTemplate);\r\n const config = this._configuration.params || {};\r\n this._rawHtml = compiledTemplate(config);\r\n try {\r\n this._fragment = document.createRange().createContextualFragment(this._rawHtml);\r\n } catch (e) {\r\n const test = document.createElement(this.name);\r\n test.innerHTML = this._rawHtml;\r\n this._fragment = test;\r\n }\r\n if (this.parent) {\r\n this.appendTo(this.parent, true);\r\n }\r\n }\r\n\r\n public redraw() {\r\n this.updateParams({});\r\n }\r\n\r\n /**\r\n * Get the template'S configuration\r\n */\r\n public get configuration(): ITemplateConfiguration {\r\n return this._configuration;\r\n }\r\n\r\n /**\r\n * A template can be a parent element for other templates or HTML elements.\r\n * This function will deliver all child HTML elements of this template.\r\n * @returns an array of strings, each string is the name of the child element\r\n */\r\n public getChildElements(): Array<string> {\r\n const childrenArray: string[] = [];\r\n //Edge and IE don't support frage,ent.children\r\n let children: HTMLCollection | NodeListOf<Element> = this._fragment && this._fragment.children;\r\n if (!this._fragment) {\r\n const fragment = this.parent.querySelector(this.name);\r\n if (fragment) {\r\n children = fragment.querySelectorAll(\"*\");\r\n }\r\n }\r\n if (!children) {\r\n // casting to HTMLCollection, as both NodeListOf and HTMLCollection have 'item()' and 'length'.\r\n children = this._fragment.querySelectorAll(\"*\");\r\n }\r\n for (let i = 0; i < children.length; ++i) {\r\n const child = children.item(i);\r\n if (child) {\r\n childrenArray.push(kebabToCamel(child.nodeName.toLowerCase()));\r\n }\r\n }\r\n return childrenArray;\r\n }\r\n\r\n /**\r\n * Appending the template to a parent HTML element.\r\n * If a parent is already set and you wish to replace the old HTML with new one, forceRemove should be true.\r\n * @param parent the parent to which the template is added\r\n * @param forceRemove if the parent already exists, shoud the template be removed from it?\r\n */\r\n public appendTo(parent: HTMLElement, forceRemove?: boolean) {\r\n if (this.parent) {\r\n if (forceRemove && this._addedFragment) {\r\n /*let fragement = this.parent.querySelector(this.name)\r\n if (fragement)\r\n this.parent.removeChild(fragement);*/\r\n this.parent.innerHTML = \"\";\r\n } else {\r\n return;\r\n }\r\n }\r\n this.parent = parent;\r\n\r\n if (this._configuration.id) {\r\n this.parent.id = this._configuration.id;\r\n }\r\n if (this._fragment) {\r\n this.parent.appendChild(this._fragment);\r\n this._addedFragment = this._fragment;\r\n } else {\r\n this.parent.insertAdjacentHTML(\"beforeend\", this._rawHtml);\r\n }\r\n\r\n this.onHTMLRendered.notifyObservers(this);\r\n\r\n // appended only one frame after.\r\n setTimeout(() => {\r\n this._registerEvents();\r\n this.onAppended.notifyObservers(this);\r\n });\r\n }\r\n\r\n private _isShowing: boolean;\r\n private _isHiding: boolean;\r\n\r\n /**\r\n * Show the template using the provided visibilityFunction, or natively using display: flex.\r\n * The provided function returns a promise that should be fulfilled when the element is shown.\r\n * Since it is a promise async operations are more than possible.\r\n * See the default viewer for an opacity example.\r\n * @param visibilityFunction The function to execute to show the template.\r\n * @returns a promise that will be fulfilled when the template is shown\r\n */\r\n public show(visibilityFunction?: (template: Template) => Promise<Template>): Promise<Template> {\r\n if (this._isHiding) {\r\n return Promise.resolve(this);\r\n }\r\n return Promise.resolve()\r\n .then(() => {\r\n this._isShowing = true;\r\n if (visibilityFunction) {\r\n return visibilityFunction(this);\r\n } else {\r\n // flex? box? should this be configurable easier than the visibilityFunction?\r\n this.parent.style.display = \"flex\";\r\n // support old browsers with no flex:\r\n if (this.parent.style.display !== \"flex\") {\r\n this.parent.style.display = \"\";\r\n }\r\n return this;\r\n }\r\n })\r\n .then(() => {\r\n this.isShown = true;\r\n this._isShowing = false;\r\n this.onStateChange.notifyObservers(this);\r\n return this;\r\n });\r\n }\r\n\r\n /**\r\n * Hide the template using the provided visibilityFunction, or natively using display: none.\r\n * The provided function returns a promise that should be fulfilled when the element is hidden.\r\n * Since it is a promise async operations are more than possible.\r\n * See the default viewer for an opacity example.\r\n * @param visibilityFunction The function to execute to show the template.\r\n * @returns a promise that will be fulfilled when the template is hidden\r\n */\r\n public hide(visibilityFunction?: (template: Template) => Promise<Template>): Promise<Template> {\r\n if (this._isShowing) {\r\n return Promise.resolve(this);\r\n }\r\n return Promise.resolve()\r\n .then(() => {\r\n this._isHiding = true;\r\n if (visibilityFunction) {\r\n return visibilityFunction(this);\r\n } else {\r\n // flex? box? should this be configurable easier than the visibilityFunction?\r\n this.parent.style.display = \"none\";\r\n return this;\r\n }\r\n })\r\n .then(() => {\r\n this.isShown = false;\r\n this._isHiding = false;\r\n this.onStateChange.notifyObservers(this);\r\n return this;\r\n });\r\n }\r\n\r\n /**\r\n * Dispose this template\r\n */\r\n public dispose() {\r\n this.onAppended.clear();\r\n this.onEventTriggered.clear();\r\n this.onLoaded.clear();\r\n this.onStateChange.clear();\r\n this.isLoaded = false;\r\n // remove from parent\r\n try {\r\n this.parent.removeChild(this._fragment);\r\n } catch (e) {\r\n //noop\r\n }\r\n\r\n this._loadRequests.forEach((request) => {\r\n request.abort();\r\n });\r\n\r\n if (this._registeredEvents) {\r\n this._registeredEvents.forEach((evt) => {\r\n evt.htmlElement.removeEventListener(evt.eventName, evt.function);\r\n });\r\n }\r\n }\r\n\r\n private _getTemplateAsHtml(templateConfig: ITemplateConfiguration): Promise<string> {\r\n if (!templateConfig) {\r\n return Promise.reject(\"No templateConfig provided\");\r\n } else if (templateConfig.html && !templateConfig.location) {\r\n return Promise.resolve(templateConfig.html);\r\n } else {\r\n let location = this._getTemplateLocation(templateConfig);\r\n if (isUrl(location)) {\r\n return new Promise((resolve, reject) => {\r\n const fileRequest = Tools.LoadFile(\r\n location,\r\n (data: string | ArrayBuffer) => {\r\n resolve(data as string);\r\n },\r\n undefined,\r\n undefined,\r\n false,\r\n (request, error: any) => {\r\n reject(error);\r\n }\r\n );\r\n this._loadRequests.push(fileRequest);\r\n });\r\n } else {\r\n location = location.replace(\"#\", \"\");\r\n const element = document.getElementById(location);\r\n if (element) {\r\n return Promise.resolve(element.innerHTML);\r\n } else {\r\n return Promise.reject(\"Template ID not found\");\r\n }\r\n }\r\n }\r\n }\r\n\r\n private _registeredEvents: Array<{ htmlElement: HTMLElement; eventName: string; function: EventListenerOrEventListenerObject }>;\r\n\r\n private _registerEvents() {\r\n this._registeredEvents = this._registeredEvents || [];\r\n if (this._registeredEvents.length) {\r\n // first remove the registered events\r\n this._registeredEvents.forEach((evt) => {\r\n evt.htmlElement.removeEventListener(evt.eventName, evt.function);\r\n });\r\n }\r\n if (this._configuration.events) {\r\n for (const eventName in this._configuration.events) {\r\n if (this._configuration.events && this._configuration.events[eventName]) {\r\n const functionToFire = (selector: string, event: Event) => {\r\n this.onEventTriggered.notifyObservers({ event, template: this, selector });\r\n };\r\n\r\n // if boolean, set the parent as the event listener\r\n if (typeof this._configuration.events[eventName] === \"boolean\") {\r\n let selector = this.parent.id;\r\n if (selector) {\r\n selector = \"#\" + selector;\r\n } else {\r\n selector = this.parent.tagName;\r\n }\r\n const binding = functionToFire.bind(this, selector);\r\n this.parent.addEventListener(eventName, binding, false);\r\n this._registeredEvents.push({\r\n htmlElement: this.parent,\r\n eventName: eventName,\r\n function: binding,\r\n });\r\n } else if (typeof this._configuration.events[eventName] === \"object\") {\r\n const selectorsArray: Array<string> = Object.keys((this._configuration.events[eventName] as object) || {});\r\n // strict null check is working incorrectly, must override:\r\n const event = this._configuration.events[eventName] || {};\r\n selectorsArray\r\n .filter((selector) => typeof event !== \"boolean\" && event[selector])\r\n .forEach((selector) => {\r\n let htmlElement = <HTMLElement>this.parent.querySelector(selector);\r\n if (!htmlElement) {\r\n // backcompat, fallback to id\r\n if (selector && selector.indexOf(\"#\") !== 0) {\r\n selector = \"#\" + selector;\r\n }\r\n try {\r\n htmlElement = <HTMLElement>this.parent.querySelector(selector);\r\n } catch (e) {}\r\n }\r\n if (htmlElement) {\r\n const binding = functionToFire.bind(this, selector);\r\n htmlElement.addEventListener(eventName, binding, false);\r\n this._registeredEvents.push({\r\n htmlElement: htmlElement,\r\n eventName: eventName,\r\n function: binding,\r\n });\r\n }\r\n });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n private _getTemplateLocation(templateConfig: ITemplateConfiguration): string {\r\n if (!templateConfig || typeof templateConfig === \"string\") {\r\n return templateConfig;\r\n } else {\r\n return templateConfig.location!;\r\n }\r\n }\r\n}\r\n"]}