angular-three-soba 1.13.0 → 1.14.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 (257) hide show
  1. package/abstractions/lib/billboard/billboard.d.ts +1 -1
  2. package/abstractions/lib/catmull-rom-line/catmull-rom-line.d.ts +1 -1
  3. package/abstractions/lib/cubic-bezier-line/cubic-bezier-line.d.ts +1 -1
  4. package/abstractions/lib/edges/edges.d.ts +2 -2
  5. package/abstractions/lib/gizmo-helper/gizmo-helper.d.ts +1 -1
  6. package/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.d.ts +1 -1
  7. package/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.d.ts +2 -2
  8. package/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.d.ts +1 -1
  9. package/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube.d.ts +1 -1
  10. package/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.d.ts +2 -2
  11. package/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport.d.ts +1 -1
  12. package/abstractions/lib/line/line-input.d.ts +1 -1
  13. package/abstractions/lib/line/line.d.ts +1 -1
  14. package/abstractions/lib/quadratic-bezier-line/quadratic-bezier-line.d.ts +1 -1
  15. package/abstractions/lib/text/text.d.ts +1 -1
  16. package/abstractions/lib/text-3d/text-3d.d.ts +1 -1
  17. package/cameras/lib/camera/camera-content.d.ts +1 -1
  18. package/cameras/lib/camera/camera.d.ts +1 -1
  19. package/cameras/lib/cube-camera/cube-camera.d.ts +1 -1
  20. package/cameras/lib/orthographic-camera/orthographic-camera.d.ts +1 -1
  21. package/controls/lib/orbit-controls/orbit-controls.d.ts +1 -1
  22. package/esm2022/abstractions/lib/billboard/billboard.mjs +74 -0
  23. package/esm2022/abstractions/lib/catmull-rom-line/catmull-rom-line.mjs +120 -0
  24. package/esm2022/abstractions/lib/cubic-bezier-line/cubic-bezier-line.mjs +99 -0
  25. package/esm2022/abstractions/lib/edges/edges.mjs +96 -0
  26. package/esm2022/abstractions/lib/gizmo-helper/gizmo-helper.mjs +213 -0
  27. package/esm2022/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +92 -0
  28. package/esm2022/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +184 -0
  29. package/esm2022/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.mjs +46 -0
  30. package/{esm2020 → esm2022}/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube.mjs +8 -7
  31. package/esm2022/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +195 -0
  32. package/{esm2020 → esm2022}/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport.mjs +8 -7
  33. package/esm2022/abstractions/lib/line/line-input.mjs +76 -0
  34. package/esm2022/abstractions/lib/line/line.mjs +133 -0
  35. package/esm2022/abstractions/lib/quadratic-bezier-line/quadratic-bezier-line.mjs +128 -0
  36. package/esm2022/abstractions/lib/text/text.mjs +115 -0
  37. package/esm2022/abstractions/lib/text-3d/text-3d.mjs +145 -0
  38. package/esm2022/cameras/lib/camera/camera-content.mjs +21 -0
  39. package/esm2022/cameras/lib/camera/camera.mjs +75 -0
  40. package/esm2022/cameras/lib/cube-camera/cube-camera.mjs +131 -0
  41. package/esm2022/cameras/lib/orthographic-camera/orthographic-camera.mjs +93 -0
  42. package/{esm2020 → esm2022}/cameras/lib/perspective-camera/perspective-camera.mjs +8 -7
  43. package/esm2022/controls/lib/orbit-controls/orbit-controls.mjs +147 -0
  44. package/{esm2020 → esm2022}/loaders/lib/cube-texture-loader/cube-texture-loader.mjs +3 -3
  45. package/esm2022/loaders/lib/loader/loader.mjs +134 -0
  46. package/esm2022/materials/lib/mesh-distort-material/mesh-distort-material.mjs +75 -0
  47. package/esm2022/materials/lib/mesh-reflector-material/mesh-reflector-material.mjs +328 -0
  48. package/esm2022/materials/lib/mesh-refraction-material/mesh-refraction-material.mjs +158 -0
  49. package/esm2022/materials/lib/mesh-transmission-material/mesh-transmission-material.mjs +238 -0
  50. package/esm2022/materials/lib/mesh-wobble-material/mesh-wobble-material.mjs +68 -0
  51. package/esm2022/misc/lib/bake-shadows/bake-shadows.mjs +26 -0
  52. package/esm2022/performance/lib/adaptive/adaptive-dpr.mjs +47 -0
  53. package/esm2022/performance/lib/adaptive/adaptive-events.mjs +37 -0
  54. package/esm2022/performance/lib/detailed/detailed.mjs +54 -0
  55. package/esm2022/performance/lib/stats/stats.mjs +80 -0
  56. package/esm2022/shaders/lib/blur-pass/blur-pass.mjs +61 -0
  57. package/esm2022/staging/lib/accumulative-shadows/accumulative-shadows.mjs +249 -0
  58. package/esm2022/staging/lib/accumulative-shadows/randomized-lights.mjs +201 -0
  59. package/{esm2020 → esm2022}/staging/lib/bounds/bounds.mjs +8 -7
  60. package/esm2022/staging/lib/camera-shake/camera-shake.mjs +122 -0
  61. package/esm2022/staging/lib/caustics/caustics.mjs +364 -0
  62. package/esm2022/staging/lib/center/center.mjs +143 -0
  63. package/esm2022/staging/lib/cloud/cloud.mjs +160 -0
  64. package/esm2022/staging/lib/contact-shadows/contact-shadows.mjs +228 -0
  65. package/esm2022/staging/lib/environment/environment-cube.mjs +41 -0
  66. package/esm2022/staging/lib/environment/environment-ground.mjs +67 -0
  67. package/esm2022/staging/lib/environment/environment-inputs.mjs +87 -0
  68. package/esm2022/staging/lib/environment/environment-map.mjs +39 -0
  69. package/esm2022/staging/lib/environment/environment-portal.mjs +111 -0
  70. package/{esm2020 → esm2022}/staging/lib/environment/environment.mjs +13 -11
  71. package/esm2022/staging/lib/float/float.mjs +77 -0
  72. package/esm2022/staging/lib/sky/sky.mjs +109 -0
  73. package/esm2022/staging/lib/sparkles/sparkles.mjs +210 -0
  74. package/esm2022/staging/lib/spot-light/shadow-mesh-input.mjs +51 -0
  75. package/esm2022/staging/lib/spot-light/spot-light-input.mjs +62 -0
  76. package/esm2022/staging/lib/spot-light/spot-light-shadow-no-shader.mjs +74 -0
  77. package/esm2022/staging/lib/spot-light/spot-light-shadow-shader.mjs +126 -0
  78. package/{esm2020 → esm2022}/staging/lib/spot-light/spot-light-shadow.mjs +8 -7
  79. package/esm2022/staging/lib/spot-light/spot-light.mjs +117 -0
  80. package/esm2022/staging/lib/spot-light/volumetric-mesh.mjs +86 -0
  81. package/{esm2020 → esm2022}/staging/lib/stage/stage.mjs +13 -11
  82. package/esm2022/staging/lib/stars/stars.mjs +140 -0
  83. package/{fesm2020 → fesm2022}/angular-three-soba-abstractions.mjs +89 -89
  84. package/{fesm2015 → fesm2022}/angular-three-soba-abstractions.mjs.map +1 -1
  85. package/{fesm2015 → fesm2022}/angular-three-soba-cameras.mjs +21 -21
  86. package/{fesm2015 → fesm2022}/angular-three-soba-cameras.mjs.map +1 -1
  87. package/{fesm2020 → fesm2022}/angular-three-soba-controls.mjs +5 -5
  88. package/fesm2022/angular-three-soba-controls.mjs.map +1 -0
  89. package/{fesm2020 → fesm2022}/angular-three-soba-loaders.mjs +7 -7
  90. package/{fesm2020 → fesm2022}/angular-three-soba-loaders.mjs.map +1 -1
  91. package/{fesm2020 → fesm2022}/angular-three-soba-materials.mjs +25 -25
  92. package/{fesm2020 → fesm2022}/angular-three-soba-materials.mjs.map +1 -1
  93. package/{fesm2020 → fesm2022}/angular-three-soba-misc.mjs +3 -3
  94. package/{fesm2020 → fesm2022}/angular-three-soba-misc.mjs.map +1 -1
  95. package/{fesm2020 → fesm2022}/angular-three-soba-performance.mjs +14 -14
  96. package/{fesm2020 → fesm2022}/angular-three-soba-performance.mjs.map +1 -1
  97. package/{fesm2020 → fesm2022}/angular-three-soba-shaders.mjs +2 -2
  98. package/fesm2022/angular-three-soba-shaders.mjs.map +1 -0
  99. package/{fesm2020 → fesm2022}/angular-three-soba-staging.mjs +139 -139
  100. package/{fesm2020 → fesm2022}/angular-three-soba-staging.mjs.map +1 -1
  101. package/loaders/lib/loader/loader.d.ts +1 -1
  102. package/materials/lib/mesh-distort-material/mesh-distort-material.d.ts +1 -1
  103. package/materials/lib/mesh-reflector-material/mesh-reflector-material.d.ts +1 -1
  104. package/materials/lib/mesh-refraction-material/mesh-refraction-material.d.ts +1 -1
  105. package/materials/lib/mesh-transmission-material/mesh-transmission-material.d.ts +1 -1
  106. package/materials/lib/mesh-wobble-material/mesh-wobble-material.d.ts +1 -1
  107. package/package.json +45 -70
  108. package/performance/lib/adaptive/adaptive-dpr.d.ts +1 -1
  109. package/performance/lib/detailed/detailed.d.ts +1 -1
  110. package/performance/lib/stats/stats.d.ts +1 -1
  111. package/plugin/package.json +1 -1
  112. package/plugin/src/generators/init/compat.js +1 -1
  113. package/plugin/src/generators/init/compat.js.map +1 -1
  114. package/plugin/src/generators/init/init.d.ts +1 -1
  115. package/plugin/src/generators/init/init.js +1 -1
  116. package/plugin/src/generators/init/init.js.map +1 -1
  117. package/staging/lib/accumulative-shadows/accumulative-shadows.d.ts +2 -2
  118. package/staging/lib/accumulative-shadows/randomized-lights.d.ts +1 -1
  119. package/staging/lib/bounds/bounds.d.ts +1 -1
  120. package/staging/lib/camera-shake/camera-shake.d.ts +1 -1
  121. package/staging/lib/caustics/caustics.d.ts +2 -2
  122. package/staging/lib/center/center.d.ts +1 -1
  123. package/staging/lib/cloud/cloud.d.ts +1 -1
  124. package/staging/lib/contact-shadows/contact-shadows.d.ts +1 -1
  125. package/staging/lib/environment/environment-inputs.d.ts +1 -1
  126. package/staging/lib/float/float.d.ts +1 -1
  127. package/staging/lib/sky/sky.d.ts +1 -1
  128. package/staging/lib/sparkles/sparkles.d.ts +2 -2
  129. package/staging/lib/spot-light/shadow-mesh-input.d.ts +1 -1
  130. package/staging/lib/spot-light/spot-light-input.d.ts +1 -1
  131. package/staging/lib/spot-light/spot-light-shadow-no-shader.d.ts +1 -1
  132. package/staging/lib/spot-light/spot-light-shadow-shader.d.ts +1 -1
  133. package/staging/lib/spot-light/spot-light.d.ts +1 -1
  134. package/staging/lib/spot-light/volumetric-mesh.d.ts +1 -1
  135. package/staging/lib/stage/stage.d.ts +2 -2
  136. package/staging/lib/stars/stars.d.ts +2 -2
  137. package/esm2020/abstractions/lib/billboard/billboard.mjs +0 -73
  138. package/esm2020/abstractions/lib/catmull-rom-line/catmull-rom-line.mjs +0 -119
  139. package/esm2020/abstractions/lib/cubic-bezier-line/cubic-bezier-line.mjs +0 -98
  140. package/esm2020/abstractions/lib/edges/edges.mjs +0 -95
  141. package/esm2020/abstractions/lib/gizmo-helper/gizmo-helper.mjs +0 -211
  142. package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +0 -91
  143. package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +0 -182
  144. package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.mjs +0 -45
  145. package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +0 -193
  146. package/esm2020/abstractions/lib/line/line-input.mjs +0 -75
  147. package/esm2020/abstractions/lib/line/line.mjs +0 -132
  148. package/esm2020/abstractions/lib/quadratic-bezier-line/quadratic-bezier-line.mjs +0 -127
  149. package/esm2020/abstractions/lib/text/text.mjs +0 -114
  150. package/esm2020/abstractions/lib/text-3d/text-3d.mjs +0 -144
  151. package/esm2020/cameras/lib/camera/camera-content.mjs +0 -20
  152. package/esm2020/cameras/lib/camera/camera.mjs +0 -74
  153. package/esm2020/cameras/lib/cube-camera/cube-camera.mjs +0 -130
  154. package/esm2020/cameras/lib/orthographic-camera/orthographic-camera.mjs +0 -92
  155. package/esm2020/controls/lib/orbit-controls/orbit-controls.mjs +0 -146
  156. package/esm2020/loaders/lib/loader/loader.mjs +0 -133
  157. package/esm2020/materials/lib/mesh-distort-material/mesh-distort-material.mjs +0 -74
  158. package/esm2020/materials/lib/mesh-reflector-material/mesh-reflector-material.mjs +0 -327
  159. package/esm2020/materials/lib/mesh-refraction-material/mesh-refraction-material.mjs +0 -157
  160. package/esm2020/materials/lib/mesh-transmission-material/mesh-transmission-material.mjs +0 -237
  161. package/esm2020/materials/lib/mesh-wobble-material/mesh-wobble-material.mjs +0 -67
  162. package/esm2020/misc/lib/bake-shadows/bake-shadows.mjs +0 -25
  163. package/esm2020/performance/lib/adaptive/adaptive-dpr.mjs +0 -46
  164. package/esm2020/performance/lib/adaptive/adaptive-events.mjs +0 -36
  165. package/esm2020/performance/lib/detailed/detailed.mjs +0 -53
  166. package/esm2020/performance/lib/stats/stats.mjs +0 -79
  167. package/esm2020/shaders/lib/blur-pass/blur-pass.mjs +0 -61
  168. package/esm2020/staging/lib/accumulative-shadows/accumulative-shadows.mjs +0 -247
  169. package/esm2020/staging/lib/accumulative-shadows/randomized-lights.mjs +0 -199
  170. package/esm2020/staging/lib/camera-shake/camera-shake.mjs +0 -121
  171. package/esm2020/staging/lib/caustics/caustics.mjs +0 -363
  172. package/esm2020/staging/lib/center/center.mjs +0 -142
  173. package/esm2020/staging/lib/cloud/cloud.mjs +0 -159
  174. package/esm2020/staging/lib/contact-shadows/contact-shadows.mjs +0 -227
  175. package/esm2020/staging/lib/environment/environment-cube.mjs +0 -40
  176. package/esm2020/staging/lib/environment/environment-ground.mjs +0 -66
  177. package/esm2020/staging/lib/environment/environment-inputs.mjs +0 -86
  178. package/esm2020/staging/lib/environment/environment-map.mjs +0 -38
  179. package/esm2020/staging/lib/environment/environment-portal.mjs +0 -110
  180. package/esm2020/staging/lib/float/float.mjs +0 -76
  181. package/esm2020/staging/lib/sky/sky.mjs +0 -108
  182. package/esm2020/staging/lib/sparkles/sparkles.mjs +0 -209
  183. package/esm2020/staging/lib/spot-light/shadow-mesh-input.mjs +0 -50
  184. package/esm2020/staging/lib/spot-light/spot-light-input.mjs +0 -61
  185. package/esm2020/staging/lib/spot-light/spot-light-shadow-no-shader.mjs +0 -73
  186. package/esm2020/staging/lib/spot-light/spot-light-shadow-shader.mjs +0 -125
  187. package/esm2020/staging/lib/spot-light/spot-light.mjs +0 -116
  188. package/esm2020/staging/lib/spot-light/volumetric-mesh.mjs +0 -85
  189. package/esm2020/staging/lib/stars/stars.mjs +0 -139
  190. package/fesm2015/angular-three-soba-abstractions.mjs +0 -2048
  191. package/fesm2015/angular-three-soba-controls.mjs +0 -153
  192. package/fesm2015/angular-three-soba-controls.mjs.map +0 -1
  193. package/fesm2015/angular-three-soba-loaders.mjs +0 -229
  194. package/fesm2015/angular-three-soba-loaders.mjs.map +0 -1
  195. package/fesm2015/angular-three-soba-materials.mjs +0 -851
  196. package/fesm2015/angular-three-soba-materials.mjs.map +0 -1
  197. package/fesm2015/angular-three-soba-misc.mjs +0 -148
  198. package/fesm2015/angular-three-soba-misc.mjs.map +0 -1
  199. package/fesm2015/angular-three-soba-performance.mjs +0 -210
  200. package/fesm2015/angular-three-soba-performance.mjs.map +0 -1
  201. package/fesm2015/angular-three-soba-shaders.mjs +0 -1239
  202. package/fesm2015/angular-three-soba-shaders.mjs.map +0 -1
  203. package/fesm2015/angular-three-soba-staging.mjs +0 -3772
  204. package/fesm2015/angular-three-soba-staging.mjs.map +0 -1
  205. package/fesm2020/angular-three-soba-abstractions.mjs.map +0 -1
  206. package/fesm2020/angular-three-soba-cameras.mjs +0 -347
  207. package/fesm2020/angular-three-soba-cameras.mjs.map +0 -1
  208. package/fesm2020/angular-three-soba-controls.mjs.map +0 -1
  209. package/fesm2020/angular-three-soba-shaders.mjs.map +0 -1
  210. package/fesm2020/angular-three-soba.mjs +0 -6
  211. package/fesm2020/angular-three-soba.mjs.map +0 -1
  212. /package/{esm2020 → esm2022}/abstractions/angular-three-soba-abstractions.mjs +0 -0
  213. /package/{esm2020 → esm2022}/abstractions/index.mjs +0 -0
  214. /package/{esm2020 → esm2022}/abstractions/lib/gizmo-helper/gizmo-viewcube/constants.mjs +0 -0
  215. /package/{esm2020 → esm2022}/angular-three-soba.mjs +0 -0
  216. /package/{esm2020 → esm2022}/cameras/angular-three-soba-cameras.mjs +0 -0
  217. /package/{esm2020 → esm2022}/cameras/index.mjs +0 -0
  218. /package/{esm2020 → esm2022}/controls/angular-three-soba-controls.mjs +0 -0
  219. /package/{esm2020 → esm2022}/controls/index.mjs +0 -0
  220. /package/{esm2020 → esm2022}/index.mjs +0 -0
  221. /package/{esm2020 → esm2022}/loaders/angular-three-soba-loaders.mjs +0 -0
  222. /package/{esm2020 → esm2022}/loaders/index.mjs +0 -0
  223. /package/{esm2020 → esm2022}/loaders/lib/gltf-loader/gltf-loader.mjs +0 -0
  224. /package/{esm2020 → esm2022}/loaders/lib/progress/progress.mjs +0 -0
  225. /package/{esm2020 → esm2022}/loaders/lib/texture-loader/texture-loader.mjs +0 -0
  226. /package/{esm2020 → esm2022}/materials/angular-three-soba-materials.mjs +0 -0
  227. /package/{esm2020 → esm2022}/materials/index.mjs +0 -0
  228. /package/{esm2020 → esm2022}/misc/angular-three-soba-misc.mjs +0 -0
  229. /package/{esm2020 → esm2022}/misc/index.mjs +0 -0
  230. /package/{esm2020 → esm2022}/misc/lib/animations/animations.mjs +0 -0
  231. /package/{esm2020 → esm2022}/misc/lib/depth-buffer/depth-buffer.mjs +0 -0
  232. /package/{esm2020 → esm2022}/misc/lib/fbo/fbo.mjs +0 -0
  233. /package/{esm2020 → esm2022}/performance/angular-three-soba-performance.mjs +0 -0
  234. /package/{esm2020 → esm2022}/performance/index.mjs +0 -0
  235. /package/{esm2020 → esm2022}/shaders/angular-three-soba-shaders.mjs +0 -0
  236. /package/{esm2020 → esm2022}/shaders/index.mjs +0 -0
  237. /package/{esm2020 → esm2022}/shaders/lib/caustics-material/caustics-material.mjs +0 -0
  238. /package/{esm2020 → esm2022}/shaders/lib/caustics-projection-material/caustics-projection-material.mjs +0 -0
  239. /package/{esm2020 → esm2022}/shaders/lib/convolution-material/convolution-material.mjs +0 -0
  240. /package/{esm2020 → esm2022}/shaders/lib/discard-material/discard-material.mjs +0 -0
  241. /package/{esm2020 → esm2022}/shaders/lib/mesh-distort-material/mesh-distort-material.mjs +0 -0
  242. /package/{esm2020 → esm2022}/shaders/lib/mesh-reflector-material/mesh-reflector-material.mjs +0 -0
  243. /package/{esm2020 → esm2022}/shaders/lib/mesh-refraction-material/mesh-refraction-material.mjs +0 -0
  244. /package/{esm2020 → esm2022}/shaders/lib/mesh-transmission-material/mesh-transmission-material.mjs +0 -0
  245. /package/{esm2020 → esm2022}/shaders/lib/mesh-wobble-material/mesh-wobble-material.mjs +0 -0
  246. /package/{esm2020 → esm2022}/shaders/lib/shader-material/shader-material.mjs +0 -0
  247. /package/{esm2020 → esm2022}/shaders/lib/soft-shadow-material/soft-shadow-material.mjs +0 -0
  248. /package/{esm2020 → esm2022}/shaders/lib/spot-light-material/spot-light-material.mjs +0 -0
  249. /package/{esm2020 → esm2022}/shaders/lib/star-field-material/star-field-material.mjs +0 -0
  250. /package/{esm2020 → esm2022}/staging/angular-three-soba-staging.mjs +0 -0
  251. /package/{esm2020 → esm2022}/staging/index.mjs +0 -0
  252. /package/{esm2020 → esm2022}/staging/lib/accumulative-shadows/progressive-light-map.mjs +0 -0
  253. /package/{esm2020 → esm2022}/staging/lib/environment/assets.mjs +0 -0
  254. /package/{esm2020 → esm2022}/staging/lib/environment/utils.mjs +0 -0
  255. /package/{esm2020 → esm2022}/staging/lib/spot-light/common.mjs +0 -0
  256. /package/{fesm2015 → fesm2022}/angular-three-soba.mjs +0 -0
  257. /package/{fesm2015 → fesm2022}/angular-three-soba.mjs.map +0 -0
@@ -1,153 +0,0 @@
1
- import * as i0 from '@angular/core';
2
- import { EventEmitter, inject, Component, CUSTOM_ELEMENTS_SCHEMA, Input, Output } from '@angular/core';
3
- import { NgtRxStore, injectNgtRef, NgtStore, injectBeforeRender, startWithUndefined, NgtArgs, NgtPush } from 'angular-three';
4
- import { map, combineLatest } from 'rxjs';
5
- import { OrbitControls } from 'three-stdlib';
6
-
7
- class NgtsOrbitControls extends NgtRxStore {
8
- set camera(camera) {
9
- this.set({ camera });
10
- }
11
- set domElement(domElement) {
12
- this.set({ domElement });
13
- }
14
- set makeDefault(makeDefault) {
15
- this.set({ makeDefault });
16
- }
17
- set regress(regress) {
18
- this.set({ regress });
19
- }
20
- set target(target) {
21
- this.set({ target });
22
- }
23
- set enableDamping(enableDamping) {
24
- this.set({ enableDamping });
25
- }
26
- constructor() {
27
- super();
28
- this.controlsRef = injectNgtRef();
29
- this.change = new EventEmitter();
30
- this.start = new EventEmitter();
31
- this.end = new EventEmitter();
32
- this.store = inject(NgtStore);
33
- this.enableDamping$ = this.select('enableDamping');
34
- injectBeforeRender(() => {
35
- const controls = this.controlsRef.nativeElement;
36
- if (controls && controls.enabled) {
37
- controls.update();
38
- }
39
- });
40
- }
41
- initialize() {
42
- super.initialize();
43
- this.set({ enableDamping: true, regress: false });
44
- }
45
- ngOnInit() {
46
- this.setControls();
47
- this.connectElement();
48
- this.makeControlsDefault();
49
- this.setEvents();
50
- this.connect('args', this.controlsRef.$.pipe(map((controls) => [controls])));
51
- }
52
- setControls() {
53
- this.hold(combineLatest([this.store.select('camera'), this.select('camera').pipe(startWithUndefined())]), ([defaultCamera, camera]) => {
54
- const controlsCamera = camera || defaultCamera;
55
- if (!this.controlsRef.nativeElement || this.controlsRef.nativeElement.object !== controlsCamera) {
56
- this.controlsRef.nativeElement = new OrbitControls(controlsCamera);
57
- }
58
- });
59
- }
60
- connectElement() {
61
- this.hold(combineLatest([
62
- this.store.select('gl', 'domElement'),
63
- this.store.select('invalidate'),
64
- this.select('regress'),
65
- this.controlsRef.$,
66
- ]), ([glDom, , , controls]) => {
67
- const { events } = this.store.get();
68
- const domElement = this.get('domElement') || events.connected || glDom;
69
- controls.connect(domElement);
70
- });
71
- }
72
- makeControlsDefault() {
73
- this.effect(combineLatest([this.controlsRef.$, this.select('makeDefault')]), ([controls, makeDefault]) => {
74
- if (makeDefault) {
75
- const oldControls = this.store.get('controls');
76
- this.store.set({ controls });
77
- return () => {
78
- this.store.set({ controls: oldControls });
79
- };
80
- }
81
- });
82
- }
83
- setEvents() {
84
- this.effect(this.controlsRef.$, (controls) => {
85
- const { invalidate, performance } = this.store.get();
86
- const regress = this.get('regress');
87
- const changeCallback = (e) => {
88
- invalidate();
89
- if (regress)
90
- performance.regress();
91
- if (this.change.observed)
92
- this.change.emit(e);
93
- };
94
- const startCallback = this.start.observed ? this.start.emit.bind(this.start) : null;
95
- const endCallback = this.end.observed ? this.end.emit.bind(this.end) : null;
96
- controls.addEventListener('change', changeCallback);
97
- if (startCallback)
98
- controls.addEventListener('start', startCallback);
99
- if (endCallback)
100
- controls.addEventListener('end', endCallback);
101
- return () => {
102
- controls.removeEventListener('change', changeCallback);
103
- if (startCallback)
104
- controls.removeEventListener('start', startCallback);
105
- if (endCallback)
106
- controls.removeEventListener('end', endCallback);
107
- };
108
- });
109
- }
110
- }
111
- NgtsOrbitControls.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsOrbitControls, deps: [], target: i0.ɵɵFactoryTarget.Component });
112
- NgtsOrbitControls.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: NgtsOrbitControls, isStandalone: true, selector: "ngts-orbit-controls", inputs: { controlsRef: "controlsRef", camera: "camera", domElement: "domElement", makeDefault: "makeDefault", regress: "regress", target: "target", enableDamping: "enableDamping" }, outputs: { change: "change", start: "start", end: "end" }, usesInheritance: true, ngImport: i0, template: `
113
- <ngt-primitive *args="get('args')" ngtCompound [enableDamping]="enableDamping$ | ngtPush" />
114
- `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }, { kind: "pipe", type: NgtPush, name: "ngtPush" }] });
115
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsOrbitControls, decorators: [{
116
- type: Component,
117
- args: [{
118
- selector: 'ngts-orbit-controls',
119
- standalone: true,
120
- template: `
121
- <ngt-primitive *args="get('args')" ngtCompound [enableDamping]="enableDamping$ | ngtPush" />
122
- `,
123
- imports: [NgtArgs, NgtPush],
124
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
125
- }]
126
- }], ctorParameters: function () { return []; }, propDecorators: { controlsRef: [{
127
- type: Input
128
- }], camera: [{
129
- type: Input
130
- }], domElement: [{
131
- type: Input
132
- }], makeDefault: [{
133
- type: Input
134
- }], regress: [{
135
- type: Input
136
- }], target: [{
137
- type: Input
138
- }], enableDamping: [{
139
- type: Input
140
- }], change: [{
141
- type: Output
142
- }], start: [{
143
- type: Output
144
- }], end: [{
145
- type: Output
146
- }] } });
147
-
148
- /**
149
- * Generated bundle index. Do not edit.
150
- */
151
-
152
- export { NgtsOrbitControls };
153
- //# sourceMappingURL=angular-three-soba-controls.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"angular-three-soba-controls.mjs","sources":["../../../../libs/angular-three-soba/controls/src/lib/orbit-controls/orbit-controls.ts","../../../../libs/angular-three-soba/controls/src/angular-three-soba-controls.ts"],"sourcesContent":["import { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, inject, Input, OnInit, Output } from '@angular/core';\nimport {\n injectBeforeRender,\n injectNgtRef,\n NgtArgs,\n NgtPush,\n NgtRxStore,\n NgtStore,\n startWithUndefined,\n} from 'angular-three';\nimport { combineLatest, map } from 'rxjs';\nimport { OrbitControls } from 'three-stdlib';\n\n@Component({\n selector: 'ngts-orbit-controls',\n standalone: true,\n template: `\n <ngt-primitive *args=\"get('args')\" ngtCompound [enableDamping]=\"enableDamping$ | ngtPush\" />\n `,\n imports: [NgtArgs, NgtPush],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsOrbitControls extends NgtRxStore implements OnInit {\n @Input() controlsRef = injectNgtRef<OrbitControls>();\n\n @Input() set camera(camera: THREE.Camera) {\n this.set({ camera });\n }\n\n @Input() set domElement(domElement: HTMLElement) {\n this.set({ domElement });\n }\n\n @Input() set makeDefault(makeDefault: boolean) {\n this.set({ makeDefault });\n }\n\n @Input() set regress(regress: boolean) {\n this.set({ regress });\n }\n\n @Input() set target(target: THREE.Vector3 | Parameters<THREE.Vector3['set']>) {\n this.set({ target });\n }\n\n @Input() set enableDamping(enableDamping: boolean) {\n this.set({ enableDamping });\n }\n\n @Output() change = new EventEmitter<THREE.Event>();\n @Output() start = new EventEmitter<THREE.Event>();\n @Output() end = new EventEmitter<THREE.Event>();\n\n private readonly store = inject(NgtStore);\n\n readonly enableDamping$ = this.select('enableDamping');\n\n constructor() {\n super();\n injectBeforeRender(() => {\n const controls = this.controlsRef.nativeElement;\n if (controls && controls.enabled) {\n controls.update();\n }\n });\n }\n\n override initialize(): void {\n super.initialize();\n this.set({ enableDamping: true, regress: false });\n }\n\n ngOnInit() {\n this.setControls();\n this.connectElement();\n this.makeControlsDefault();\n this.setEvents();\n this.connect('args', this.controlsRef.$.pipe(map((controls) => [controls])));\n }\n\n private setControls() {\n this.hold(\n combineLatest([this.store.select('camera'), this.select('camera').pipe(startWithUndefined())]),\n ([defaultCamera, camera]) => {\n const controlsCamera = camera || defaultCamera;\n if (!this.controlsRef.nativeElement || this.controlsRef.nativeElement.object !== controlsCamera) {\n this.controlsRef.nativeElement = new OrbitControls(controlsCamera);\n }\n }\n );\n }\n\n private connectElement() {\n this.hold(\n combineLatest([\n this.store.select('gl', 'domElement'),\n this.store.select('invalidate'),\n this.select('regress'),\n this.controlsRef.$,\n ]),\n ([glDom, , , controls]) => {\n const { events } = this.store.get();\n const domElement = this.get('domElement') || events.connected || glDom;\n controls.connect(domElement);\n }\n );\n }\n\n private makeControlsDefault() {\n this.effect(combineLatest([this.controlsRef.$, this.select('makeDefault')]), ([controls, makeDefault]) => {\n if (makeDefault) {\n const oldControls = this.store.get('controls');\n this.store.set({ controls });\n return () => {\n this.store.set({ controls: oldControls });\n };\n }\n });\n }\n\n private setEvents() {\n this.effect(this.controlsRef.$, (controls) => {\n const { invalidate, performance } = this.store.get();\n const regress = this.get('regress');\n\n const changeCallback: (e: THREE.Event) => void = (e) => {\n invalidate();\n if (regress) performance.regress();\n if (this.change.observed) this.change.emit(e);\n };\n\n const startCallback = this.start.observed ? this.start.emit.bind(this.start) : null;\n const endCallback = this.end.observed ? this.end.emit.bind(this.end) : null;\n\n controls.addEventListener('change', changeCallback);\n if (startCallback) controls.addEventListener('start', startCallback);\n if (endCallback) controls.addEventListener('end', endCallback);\n\n return () => {\n controls.removeEventListener('change', changeCallback);\n if (startCallback) controls.removeEventListener('start', startCallback);\n if (endCallback) controls.removeEventListener('end', endCallback);\n };\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,229 +0,0 @@
1
- import { injectNgtLoader, NgtRxStore, injectNgtDestroy, startWithUndefined, NgtPush, NgtStore } from 'angular-three';
2
- import { isObservable, map, of, take, combineLatest, withLatestFrom, switchMap, timer, tap } from 'rxjs';
3
- import * as THREE from 'three';
4
- import { MeshoptDecoder } from 'three-stdlib';
5
- import { DRACOLoader } from 'three-stdlib/loaders/DRACOLoader';
6
- import { GLTFLoader } from 'three-stdlib/loaders/GLTFLoader';
7
- import { NgIf, AsyncPipe } from '@angular/common';
8
- import * as i0 from '@angular/core';
9
- import { Component, ChangeDetectionStrategy, Input, ViewChild, inject } from '@angular/core';
10
-
11
- function injectCubeTextureLoader(files, path) {
12
- const inputs$ = isObservable(files) ? files.pipe(map((f) => [f])) : of([files]);
13
- return injectNgtLoader(() => THREE.CubeTextureLoader,
14
- // @ts-expect-error CubeTexture accepts a string[] and pass into loader as [[...]]
15
- inputs$, (loader) => loader.setPath(path)).pipe(map((textures) => textures[0]));
16
- }
17
-
18
- let dracoLoader = null;
19
- function _extensions(useDraco, useMeshOpt, extensions) {
20
- return (loader) => {
21
- if (extensions) {
22
- extensions(loader);
23
- }
24
- if (useDraco) {
25
- if (!dracoLoader) {
26
- dracoLoader = new DRACOLoader();
27
- }
28
- dracoLoader.setDecoderPath(typeof useDraco === 'string' ? useDraco : 'https://www.gstatic.com/draco/versioned/decoders/1.4.3/');
29
- loader.setDRACOLoader(dracoLoader);
30
- }
31
- if (useMeshOpt) {
32
- loader.setMeshoptDecoder(typeof MeshoptDecoder === 'function' ? MeshoptDecoder() : MeshoptDecoder);
33
- }
34
- };
35
- }
36
- function injectGLTFLoader(path, useDraco = true, useMeshOpt = true, extensions) {
37
- return injectNgtLoader(() => GLTFLoader, path, _extensions(useDraco, useMeshOpt, extensions));
38
- }
39
- injectGLTFLoader.preload = (path, useDraco = true, useMeshOpt = true, extensions) => {
40
- injectGLTFLoader(path, useDraco, useMeshOpt, extensions).pipe(take(1)).subscribe();
41
- };
42
- const injectNgtsGLTFLoader = injectGLTFLoader;
43
-
44
- function injectNgtsProgress() {
45
- const progress = new NgtRxStore();
46
- progress.set({ errors: [], active: false, progress: 0, item: '', loaded: 0, total: 0 });
47
- const { cdr } = injectNgtDestroy(() => progress.ngOnDestroy());
48
- let saveLastTotalLoaded = 0;
49
- THREE.DefaultLoadingManager.onStart = (item, loaded, total) => {
50
- progress.set({
51
- active: true,
52
- item,
53
- loaded,
54
- total,
55
- progress: ((loaded - saveLastTotalLoaded) / (total - saveLastTotalLoaded)) * 100,
56
- });
57
- cdr.detectChanges();
58
- };
59
- THREE.DefaultLoadingManager.onLoad = () => {
60
- progress.set({ active: false });
61
- cdr.detectChanges();
62
- };
63
- THREE.DefaultLoadingManager.onError = (url) => {
64
- progress.set({ errors: [...progress.get('errors'), url] });
65
- cdr.detectChanges();
66
- };
67
- THREE.DefaultLoadingManager.onProgress = (item, loaded, total) => {
68
- if (loaded === total)
69
- saveLastTotalLoaded = total;
70
- progress.set({
71
- item,
72
- loaded,
73
- total,
74
- progress: ((loaded - saveLastTotalLoaded) / (total - saveLastTotalLoaded)) * 100 || 100,
75
- });
76
- cdr.detectChanges();
77
- };
78
- return progress;
79
- }
80
-
81
- const defaultDataInterpolation = (p) => `Loading ${p.toFixed(2)}%`;
82
- class NgtsLoader extends NgtRxStore {
83
- constructor() {
84
- super(...arguments);
85
- this.progress = injectNgtsProgress();
86
- this.vm$ = combineLatest([
87
- this.select('shown'),
88
- this.select('containerClass').pipe(startWithUndefined()),
89
- this.select('innerClass').pipe(startWithUndefined()),
90
- this.select('barClass').pipe(startWithUndefined()),
91
- this.select('dataClass').pipe(startWithUndefined()),
92
- this.progress.select('progress'),
93
- this.progress.select('active'),
94
- ]).pipe(map(([shown, containerClass, innerClass, barClass, dataClass, progress, active]) => {
95
- return { shown, containerClass, innerClass, barClass, dataClass, progress, active };
96
- }));
97
- }
98
- set containerClass(containerClass) {
99
- this.set({ containerClass });
100
- }
101
- set innerClass(innerClass) {
102
- this.set({ innerClass });
103
- }
104
- set barClass(barClass) {
105
- this.set({ barClass });
106
- }
107
- set dataClass(dataClass) {
108
- this.set({ dataClass });
109
- }
110
- set dataInterpolation(dataInterpolation) {
111
- this.set({ dataInterpolation });
112
- }
113
- set initialState(initialState) {
114
- this.set({ initialState });
115
- }
116
- initialize() {
117
- super.initialize();
118
- this.set({ dataInterpolation: defaultDataInterpolation, initialState: (active) => active });
119
- }
120
- ngOnInit() {
121
- this.set({ shown: this.get('initialState')(this.progress.get('active')) });
122
- this.connect('shown', this.progress.select('active').pipe(withLatestFrom(this.select('shown')), switchMap(([active, shown]) => {
123
- if (shown !== active)
124
- return timer(300).pipe(map(() => active));
125
- return of(shown);
126
- })));
127
- let progressRef = 0;
128
- let rafId;
129
- this.effect(combineLatest([this.select('dataInterpolation'), this.progress.select('progress')]), ([dataInterpolation, progress]) => {
130
- const updateProgress = () => {
131
- var _a;
132
- if (!((_a = this.progressSpanRef) === null || _a === void 0 ? void 0 : _a.nativeElement))
133
- return;
134
- progressRef += (progress - progressRef) / 2;
135
- if (progressRef > 0.95 * progress || progress === 100)
136
- progressRef = progress;
137
- this.progressSpanRef.nativeElement.innerText = dataInterpolation(progressRef);
138
- if (progressRef < progress) {
139
- rafId = requestAnimationFrame(updateProgress);
140
- }
141
- };
142
- updateProgress();
143
- return () => cancelAnimationFrame(rafId);
144
- });
145
- }
146
- }
147
- NgtsLoader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsLoader, deps: null, target: i0.ɵɵFactoryTarget.Component });
148
- NgtsLoader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: NgtsLoader, isStandalone: true, selector: "ngts-loader", inputs: { containerClass: "containerClass", innerClass: "innerClass", barClass: "barClass", dataClass: "dataClass", dataInterpolation: "dataInterpolation", initialState: "initialState" }, viewQueries: [{ propertyName: "progressSpanRef", first: true, predicate: ["progressSpanRef"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
149
- <ng-container *ngIf="vm$ | ngtPush as vm">
150
- <div
151
- *ngIf="vm.shown"
152
- class="ngts-loader-container"
153
- [class]="vm.containerClass"
154
- [style.--ngts-loader-container-opacity]="vm.active ? 1 : 0"
155
- >
156
- <div>
157
- <div class="ngts-loader-inner" [class]="vm.innerClass">
158
- <div
159
- class="ngts-loader-bar"
160
- [class]="vm.barClass"
161
- [style.--ngts-loader-bar-scale]="vm.progress / 100"
162
- ></div>
163
- <span #progressSpanRef class="ngts-loader-data" [class]="vm.dataClass"></span>
164
- </div>
165
- </div>
166
- </div>
167
- </ng-container>
168
- `, isInline: true, styles: [".ngts-loader-container{--ngts-loader-container-opacity: 0;position:absolute;top:0;left:0;width:100%;height:100%;background:#171717;display:flex;align-items:center;justify-content:center;transition:opacity .3s ease;z-index:1000;opacity:var(--ngts-loader-container-opacity)}.ngts-loader-inner{width:100px;height:3px;background:#272727;text-align:center}.ngts-loader-bar{--ngts-loader-bar-scale: 0;height:3px;width:100px;background:white;transition:transform .2s;transform-origin:left center;transform:scaleX(var(--ngts-loader-bar-scale))}.ngts-loader-data{display:inline-block;position:relative;font-feature-settings:\"tnum\";font-variant-numeric:tabular-nums;margin-top:.8em;color:#f0f0f0;font-size:.6em;font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,Helvetica Neue,Helvetica,Arial,Roboto,Ubuntu,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol;white-space:nowrap}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: NgtPush, name: "ngtPush" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
169
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsLoader, decorators: [{
170
- type: Component,
171
- args: [{ selector: 'ngts-loader', standalone: true, template: `
172
- <ng-container *ngIf="vm$ | ngtPush as vm">
173
- <div
174
- *ngIf="vm.shown"
175
- class="ngts-loader-container"
176
- [class]="vm.containerClass"
177
- [style.--ngts-loader-container-opacity]="vm.active ? 1 : 0"
178
- >
179
- <div>
180
- <div class="ngts-loader-inner" [class]="vm.innerClass">
181
- <div
182
- class="ngts-loader-bar"
183
- [class]="vm.barClass"
184
- [style.--ngts-loader-bar-scale]="vm.progress / 100"
185
- ></div>
186
- <span #progressSpanRef class="ngts-loader-data" [class]="vm.dataClass"></span>
187
- </div>
188
- </div>
189
- </div>
190
- </ng-container>
191
- `, imports: [NgIf, AsyncPipe, NgtPush], changeDetection: ChangeDetectionStrategy.OnPush, styles: [".ngts-loader-container{--ngts-loader-container-opacity: 0;position:absolute;top:0;left:0;width:100%;height:100%;background:#171717;display:flex;align-items:center;justify-content:center;transition:opacity .3s ease;z-index:1000;opacity:var(--ngts-loader-container-opacity)}.ngts-loader-inner{width:100px;height:3px;background:#272727;text-align:center}.ngts-loader-bar{--ngts-loader-bar-scale: 0;height:3px;width:100px;background:white;transition:transform .2s;transform-origin:left center;transform:scaleX(var(--ngts-loader-bar-scale))}.ngts-loader-data{display:inline-block;position:relative;font-feature-settings:\"tnum\";font-variant-numeric:tabular-nums;margin-top:.8em;color:#f0f0f0;font-size:.6em;font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,Helvetica Neue,Helvetica,Arial,Roboto,Ubuntu,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol;white-space:nowrap}\n"] }]
192
- }], propDecorators: { containerClass: [{
193
- type: Input
194
- }], innerClass: [{
195
- type: Input
196
- }], barClass: [{
197
- type: Input
198
- }], dataClass: [{
199
- type: Input
200
- }], dataInterpolation: [{
201
- type: Input
202
- }], initialState: [{
203
- type: Input
204
- }], progressSpanRef: [{
205
- type: ViewChild,
206
- args: ['progressSpanRef']
207
- }] } });
208
-
209
- const IsObject = (url) => url === Object(url) && !Array.isArray(url) && typeof url !== 'function';
210
- function injectNgtsTextureLoader(input, onLoad) {
211
- const store = inject(NgtStore);
212
- return injectNgtLoader(() => THREE.TextureLoader, input).pipe(tap((textures) => {
213
- const array = Array.isArray(textures)
214
- ? textures
215
- : textures instanceof THREE.Texture
216
- ? [textures]
217
- : Object.values(textures);
218
- if (onLoad)
219
- onLoad(array);
220
- array.forEach(store.get('gl').initTexture);
221
- }));
222
- }
223
-
224
- /**
225
- * Generated bundle index. Do not edit.
226
- */
227
-
228
- export { IsObject, NgtsLoader, injectCubeTextureLoader, injectNgtsGLTFLoader, injectNgtsProgress, injectNgtsTextureLoader };
229
- //# sourceMappingURL=angular-three-soba-loaders.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"angular-three-soba-loaders.mjs","sources":["../../../../libs/angular-three-soba/loaders/src/lib/cube-texture-loader/cube-texture-loader.ts","../../../../libs/angular-three-soba/loaders/src/lib/gltf-loader/gltf-loader.ts","../../../../libs/angular-three-soba/loaders/src/lib/progress/progress.ts","../../../../libs/angular-three-soba/loaders/src/lib/loader/loader.ts","../../../../libs/angular-three-soba/loaders/src/lib/texture-loader/texture-loader.ts","../../../../libs/angular-three-soba/loaders/src/angular-three-soba-loaders.ts"],"sourcesContent":["import { injectNgtLoader } from 'angular-three';\nimport { isObservable, map, Observable, of } from 'rxjs';\nimport * as THREE from 'three';\n\nexport function injectCubeTextureLoader(\n files: string[] | Observable<string[]>,\n path: string\n): Observable<THREE.CubeTexture> {\n const inputs$ = isObservable(files) ? files.pipe(map((f) => [f])) : of([files]);\n return injectNgtLoader(\n () => THREE.CubeTextureLoader,\n // @ts-expect-error CubeTexture accepts a string[] and pass into loader as [[...]]\n inputs$,\n (loader) => loader.setPath(path)\n ).pipe(map((textures) => (textures as THREE.CubeTexture[])[0]));\n}\n","import { injectNgtLoader, NgtLoaderResults, NgtObjectMap } from 'angular-three';\nimport { Observable, take } from 'rxjs';\n// @ts-ignore\nimport { MeshoptDecoder } from 'three-stdlib';\nimport { DRACOLoader } from 'three-stdlib/loaders/DRACOLoader';\nimport { GLTF, GLTFLoader } from 'three-stdlib/loaders/GLTFLoader';\n\nlet dracoLoader: DRACOLoader | null = null;\n\nfunction _extensions(useDraco: boolean | string, useMeshOpt: boolean, extensions?: (loader: GLTFLoader) => void) {\n return (loader: THREE.Loader) => {\n if (extensions) {\n extensions(loader as GLTFLoader);\n }\n\n if (useDraco) {\n if (!dracoLoader) {\n dracoLoader = new DRACOLoader();\n }\n\n dracoLoader.setDecoderPath(\n typeof useDraco === 'string' ? useDraco : 'https://www.gstatic.com/draco/versioned/decoders/1.4.3/'\n );\n (loader as GLTFLoader).setDRACOLoader(dracoLoader);\n }\n\n if (useMeshOpt) {\n (loader as GLTFLoader).setMeshoptDecoder(\n typeof MeshoptDecoder === 'function' ? MeshoptDecoder() : MeshoptDecoder\n );\n }\n };\n}\n\nexport interface NgtsGLTFLoader {\n <TInput extends string | string[] | Record<string, string>>(\n path: TInput | Observable<TInput>,\n useDraco?: boolean | string,\n useMeshOpt?: boolean,\n extensions?: (loader: GLTFLoader) => void\n ): Observable<NgtLoaderResults<TInput, GLTF & NgtObjectMap>>;\n preload: <TInput extends string | string[] | Record<string, string>>(\n path: TInput | Observable<TInput>,\n useDraco?: boolean | string,\n useMeshOpt?: boolean,\n extensions?: (loader: GLTFLoader) => void\n ) => void;\n}\n\nfunction injectGLTFLoader<TInput extends string | string[] | Record<string, string>>(\n path: TInput | Observable<TInput>,\n useDraco: boolean | string = true,\n useMeshOpt = true,\n extensions?: (loader: GLTFLoader) => void\n): Observable<NgtLoaderResults<TInput, GLTF & NgtObjectMap>> {\n return injectNgtLoader(() => GLTFLoader, path, _extensions(useDraco, useMeshOpt, extensions)) as Observable<\n NgtLoaderResults<TInput, GLTF & NgtObjectMap>\n >;\n}\n\n(injectGLTFLoader as NgtsGLTFLoader).preload = (path, useDraco = true, useMeshOpt = true, extensions) => {\n injectGLTFLoader(path, useDraco, useMeshOpt, extensions).pipe(take(1)).subscribe();\n};\n\nexport const injectNgtsGLTFLoader = injectGLTFLoader as NgtsGLTFLoader;\n","import { injectNgtDestroy, NgtRxStore } from 'angular-three';\nimport * as THREE from 'three';\n\nexport function injectNgtsProgress() {\n const progress = new NgtRxStore<{\n errors: string[];\n active: boolean;\n progress: number;\n item: string;\n loaded: number;\n total: number;\n }>();\n progress.set({ errors: [], active: false, progress: 0, item: '', loaded: 0, total: 0 });\n const { cdr } = injectNgtDestroy(() => progress.ngOnDestroy());\n let saveLastTotalLoaded = 0;\n\n THREE.DefaultLoadingManager.onStart = (item, loaded, total) => {\n progress.set({\n active: true,\n item,\n loaded,\n total,\n progress: ((loaded - saveLastTotalLoaded) / (total - saveLastTotalLoaded)) * 100,\n });\n cdr.detectChanges();\n };\n\n THREE.DefaultLoadingManager.onLoad = () => {\n progress.set({ active: false });\n cdr.detectChanges();\n };\n\n THREE.DefaultLoadingManager.onError = (url) => {\n progress.set({ errors: [...progress.get('errors'), url] });\n cdr.detectChanges();\n };\n\n THREE.DefaultLoadingManager.onProgress = (item, loaded, total) => {\n if (loaded === total) saveLastTotalLoaded = total;\n progress.set({\n item,\n loaded,\n total,\n progress: ((loaded - saveLastTotalLoaded) / (total - saveLastTotalLoaded)) * 100 || 100,\n });\n cdr.detectChanges();\n };\n\n return progress;\n}\n","import { AsyncPipe, NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';\nimport { NgtPush, NgtRxStore, startWithUndefined } from 'angular-three';\nimport { combineLatest, map, of, switchMap, timer, withLatestFrom } from 'rxjs';\nimport { injectNgtsProgress } from '../progress/progress';\n\nconst defaultDataInterpolation = (p: number) => `Loading ${p.toFixed(2)}%`;\n\n@Component({\n selector: 'ngts-loader',\n standalone: true,\n template: `\n <ng-container *ngIf=\"vm$ | ngtPush as vm\">\n <div\n *ngIf=\"vm.shown\"\n class=\"ngts-loader-container\"\n [class]=\"vm.containerClass\"\n [style.--ngts-loader-container-opacity]=\"vm.active ? 1 : 0\"\n >\n <div>\n <div class=\"ngts-loader-inner\" [class]=\"vm.innerClass\">\n <div\n class=\"ngts-loader-bar\"\n [class]=\"vm.barClass\"\n [style.--ngts-loader-bar-scale]=\"vm.progress / 100\"\n ></div>\n <span #progressSpanRef class=\"ngts-loader-data\" [class]=\"vm.dataClass\"></span>\n </div>\n </div>\n </div>\n </ng-container>\n `,\n styleUrls: ['loader.css'],\n imports: [NgIf, AsyncPipe, NgtPush],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtsLoader extends NgtRxStore implements OnInit {\n private readonly progress = injectNgtsProgress();\n\n readonly vm$ = combineLatest([\n this.select('shown'),\n this.select('containerClass').pipe(startWithUndefined()),\n this.select('innerClass').pipe(startWithUndefined()),\n this.select('barClass').pipe(startWithUndefined()),\n this.select('dataClass').pipe(startWithUndefined()),\n this.progress.select('progress'),\n this.progress.select('active'),\n ]).pipe(\n map(([shown, containerClass, innerClass, barClass, dataClass, progress, active]) => {\n return { shown, containerClass, innerClass, barClass, dataClass, progress, active };\n })\n );\n\n @Input() set containerClass(containerClass: string) {\n this.set({ containerClass });\n }\n\n @Input() set innerClass(innerClass: string) {\n this.set({ innerClass });\n }\n\n @Input() set barClass(barClass: string) {\n this.set({ barClass });\n }\n\n @Input() set dataClass(dataClass: string) {\n this.set({ dataClass });\n }\n\n @Input() set dataInterpolation(dataInterpolation: (value: number) => string) {\n this.set({ dataInterpolation });\n }\n\n @Input() set initialState(initialState: (value: boolean) => boolean) {\n this.set({ initialState });\n }\n\n @ViewChild('progressSpanRef') progressSpanRef?: ElementRef<HTMLSpanElement>;\n\n override initialize(): void {\n super.initialize();\n this.set({ dataInterpolation: defaultDataInterpolation, initialState: (active: boolean) => active });\n }\n\n ngOnInit() {\n this.set({ shown: this.get('initialState')(this.progress.get('active')) });\n this.connect(\n 'shown',\n this.progress.select('active').pipe(\n withLatestFrom(this.select('shown')),\n switchMap(([active, shown]) => {\n if (shown !== active) return timer(300).pipe(map(() => active));\n return of(shown);\n })\n )\n );\n\n let progressRef = 0;\n let rafId: ReturnType<typeof requestAnimationFrame>;\n\n this.effect(\n combineLatest([this.select('dataInterpolation'), this.progress.select('progress')]),\n ([dataInterpolation, progress]) => {\n const updateProgress = () => {\n if (!this.progressSpanRef?.nativeElement) return;\n progressRef += (progress - progressRef) / 2;\n if (progressRef > 0.95 * progress || progress === 100) progressRef = progress;\n this.progressSpanRef.nativeElement.innerText = dataInterpolation(progressRef);\n if (progressRef < progress) {\n rafId = requestAnimationFrame(updateProgress);\n }\n };\n\n updateProgress();\n\n return () => cancelAnimationFrame(rafId);\n }\n );\n }\n}\n","import { inject } from '@angular/core';\nimport { injectNgtLoader, NgtLoaderResults, NgtStore } from 'angular-three';\nimport { Observable, tap } from 'rxjs';\nimport * as THREE from 'three';\n\nexport const IsObject = (url: any): url is Record<string, string> =>\n url === Object(url) && !Array.isArray(url) && typeof url !== 'function';\n\nexport function injectNgtsTextureLoader<TInput extends string[] | string | Record<string, string>>(\n input: TInput | Observable<TInput>,\n onLoad?: (texture: THREE.Texture | THREE.Texture[]) => void\n): Observable<NgtLoaderResults<TInput, THREE.Texture>> {\n const store = inject(NgtStore);\n return injectNgtLoader(() => THREE.TextureLoader, input).pipe(\n tap((textures) => {\n const array = Array.isArray(textures)\n ? textures\n : textures instanceof THREE.Texture\n ? [textures]\n : Object.values(textures);\n if (onLoad) onLoad(array);\n array.forEach(store.get('gl').initTexture);\n })\n ) as Observable<NgtLoaderResults<TInput, THREE.Texture>>;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}