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,92 +0,0 @@
1
- import { NgIf, NgTemplateOutlet } from '@angular/common';
2
- import { Component, ContentChild, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
3
- import { extend, NgtPush } from 'angular-three';
4
- import { combineLatest, map } from 'rxjs';
5
- import { Group, OrthographicCamera } from 'three';
6
- import { NgtsCamera } from '../camera/camera';
7
- import { NgtsCameraContent } from '../camera/camera-content';
8
- import * as i0 from "@angular/core";
9
- extend({ OrthographicCamera, Group });
10
- export class NgtsOrthographicCamera extends NgtsCamera {
11
- constructor() {
12
- super(...arguments);
13
- this.left$ = combineLatest([this.select('left'), this.store.select('size')]).pipe(map(([left, size]) => left || size.width / -2));
14
- this.right$ = combineLatest([this.select('right'), this.store.select('size')]).pipe(map(([right, size]) => right || size.width / 2));
15
- this.top$ = combineLatest([this.select('top'), this.store.select('size')]).pipe(map(([top, size]) => top || size.height / 2));
16
- this.bottom$ = combineLatest([this.select('bottom'), this.store.select('size')]).pipe(map(([bottom, size]) => bottom || size.height / -2));
17
- }
18
- set left(left) {
19
- this.set({ left });
20
- }
21
- set right(right) {
22
- this.set({ right });
23
- }
24
- set top(top) {
25
- this.set({ top });
26
- }
27
- set bottom(bottom) {
28
- this.set({ bottom });
29
- }
30
- initialize() {
31
- super.initialize();
32
- this.set({ left: 0, right: 0, top: 0, bottom: 0 });
33
- }
34
- }
35
- NgtsOrthographicCamera.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsOrthographicCamera, deps: null, target: i0.ɵɵFactoryTarget.Component });
36
- NgtsOrthographicCamera.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: NgtsOrthographicCamera, isStandalone: true, selector: "ngts-orthographic-camera", inputs: { left: "left", right: "right", top: "top", bottom: "bottom" }, queries: [{ propertyName: "cameraContent", first: true, predicate: NgtsCameraContent, descendants: true }], usesInheritance: true, ngImport: i0, template: `
37
- <ngt-orthographic-camera
38
- ngtCompound
39
- [ref]="cameraRef"
40
- [left]="left$ | ngtPush"
41
- [right]="right$ | ngtPush"
42
- [top]="top$ | ngtPush"
43
- [bottom]="bottom$ | ngtPush"
44
- >
45
- <ng-container
46
- *ngIf="cameraContent && !cameraContent.ngtsCameraContent"
47
- [ngTemplateOutlet]="cameraContent.template"
48
- />
49
- </ngt-orthographic-camera>
50
- <ngt-group #group *ngIf="cameraContent && cameraContent.ngtsCameraContent">
51
- <ng-container *ngTemplateOutlet="cameraContent.template; context: { fbo: fboRef.nativeElement, group }" />
52
- </ngt-group>
53
- `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: NgtPush, name: "ngtPush" }] });
54
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsOrthographicCamera, decorators: [{
55
- type: Component,
56
- args: [{
57
- selector: 'ngts-orthographic-camera',
58
- standalone: true,
59
- template: `
60
- <ngt-orthographic-camera
61
- ngtCompound
62
- [ref]="cameraRef"
63
- [left]="left$ | ngtPush"
64
- [right]="right$ | ngtPush"
65
- [top]="top$ | ngtPush"
66
- [bottom]="bottom$ | ngtPush"
67
- >
68
- <ng-container
69
- *ngIf="cameraContent && !cameraContent.ngtsCameraContent"
70
- [ngTemplateOutlet]="cameraContent.template"
71
- />
72
- </ngt-orthographic-camera>
73
- <ngt-group #group *ngIf="cameraContent && cameraContent.ngtsCameraContent">
74
- <ng-container *ngTemplateOutlet="cameraContent.template; context: { fbo: fboRef.nativeElement, group }" />
75
- </ngt-group>
76
- `,
77
- imports: [NgIf, NgTemplateOutlet, NgtPush],
78
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
79
- }]
80
- }], propDecorators: { cameraContent: [{
81
- type: ContentChild,
82
- args: [NgtsCameraContent]
83
- }], left: [{
84
- type: Input
85
- }], right: [{
86
- type: Input
87
- }], top: [{
88
- type: Input
89
- }], bottom: [{
90
- type: Input
91
- }] } });
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3J0aG9ncmFwaGljLWNhbWVyYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci10aHJlZS1zb2JhL2NhbWVyYXMvc3JjL2xpYi9vcnRob2dyYXBoaWMtY2FtZXJhL29ydGhvZ3JhcGhpYy1jYW1lcmEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLHNCQUFzQixFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFFN0QsTUFBTSxDQUFDLEVBQUUsa0JBQWtCLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztBQTBCdEMsTUFBTSxPQUFPLHNCQUF1QixTQUFRLFVBQW9DO0lBeEJoRjs7UUFnRGEsVUFBSyxHQUFHLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDakYsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQ2pELENBQUM7UUFFTyxXQUFNLEdBQUcsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNuRixHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQ2xELENBQUM7UUFFTyxTQUFJLEdBQUcsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUMvRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQy9DLENBQUM7UUFFTyxZQUFPLEdBQUcsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNyRixHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FDdEQsQ0FBQztLQUNMO0lBcENHLElBQWEsSUFBSSxDQUFDLElBQVk7UUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQWEsS0FBSyxDQUFDLEtBQWE7UUFDNUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQWEsR0FBRyxDQUFDLEdBQVc7UUFDeEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQWEsTUFBTSxDQUFDLE1BQWM7UUFDOUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVRLFVBQVU7UUFDZixLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7O21IQXRCUSxzQkFBc0I7dUdBQXRCLHNCQUFzQix1TUFDakIsaUJBQWlCLHVFQXRCckI7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBaUJULDREQUNTLElBQUksNkZBQUUsZ0JBQWdCLCtJQUFFLE9BQU87MkZBR2hDLHNCQUFzQjtrQkF4QmxDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDBCQUEwQjtvQkFDcEMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FpQlQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE9BQU8sQ0FBQztvQkFDMUMsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ3BDOzhCQUVvQyxhQUFhO3NCQUE3QyxZQUFZO3VCQUFDLGlCQUFpQjtnQkFFbEIsSUFBSTtzQkFBaEIsS0FBSztnQkFJTyxLQUFLO3NCQUFqQixLQUFLO2dCQUlPLEdBQUc7c0JBQWYsS0FBSztnQkFJTyxNQUFNO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGV4dGVuZCwgTmd0UHVzaCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBHcm91cCwgT3J0aG9ncmFwaGljQ2FtZXJhIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0c0NhbWVyYSB9IGZyb20gJy4uL2NhbWVyYS9jYW1lcmEnO1xuaW1wb3J0IHsgTmd0c0NhbWVyYUNvbnRlbnQgfSBmcm9tICcuLi9jYW1lcmEvY2FtZXJhLWNvbnRlbnQnO1xuXG5leHRlbmQoeyBPcnRob2dyYXBoaWNDYW1lcmEsIEdyb3VwIH0pO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndHMtb3J0aG9ncmFwaGljLWNhbWVyYScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmd0LW9ydGhvZ3JhcGhpYy1jYW1lcmFcbiAgICAgICAgICAgIG5ndENvbXBvdW5kXG4gICAgICAgICAgICBbcmVmXT1cImNhbWVyYVJlZlwiXG4gICAgICAgICAgICBbbGVmdF09XCJsZWZ0JCB8IG5ndFB1c2hcIlxuICAgICAgICAgICAgW3JpZ2h0XT1cInJpZ2h0JCB8IG5ndFB1c2hcIlxuICAgICAgICAgICAgW3RvcF09XCJ0b3AkIHwgbmd0UHVzaFwiXG4gICAgICAgICAgICBbYm90dG9tXT1cImJvdHRvbSQgfCBuZ3RQdXNoXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiY2FtZXJhQ29udGVudCAmJiAhY2FtZXJhQ29udGVudC5uZ3RzQ2FtZXJhQ29udGVudFwiXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2FtZXJhQ29udGVudC50ZW1wbGF0ZVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICA8L25ndC1vcnRob2dyYXBoaWMtY2FtZXJhPlxuICAgICAgICA8bmd0LWdyb3VwICNncm91cCAqbmdJZj1cImNhbWVyYUNvbnRlbnQgJiYgY2FtZXJhQ29udGVudC5uZ3RzQ2FtZXJhQ29udGVudFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNhbWVyYUNvbnRlbnQudGVtcGxhdGU7IGNvbnRleHQ6IHsgZmJvOiBmYm9SZWYubmF0aXZlRWxlbWVudCwgZ3JvdXAgfVwiIC8+XG4gICAgICAgIDwvbmd0LWdyb3VwPlxuICAgIGAsXG4gICAgaW1wb3J0czogW05nSWYsIE5nVGVtcGxhdGVPdXRsZXQsIE5ndFB1c2hdLFxuICAgIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c09ydGhvZ3JhcGhpY0NhbWVyYSBleHRlbmRzIE5ndHNDYW1lcmE8VEhSRUUuT3J0aG9ncmFwaGljQ2FtZXJhPiB7XG4gICAgQENvbnRlbnRDaGlsZChOZ3RzQ2FtZXJhQ29udGVudCkgY2FtZXJhQ29udGVudD86IE5ndHNDYW1lcmFDb250ZW50O1xuXG4gICAgQElucHV0KCkgc2V0IGxlZnQobGVmdDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgbGVmdCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgcmlnaHQocmlnaHQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IHJpZ2h0IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCB0b3AodG9wOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyB0b3AgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGJvdHRvbShib3R0b206IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGJvdHRvbSB9KTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5pbml0aWFsaXplKCk7XG4gICAgICAgIHRoaXMuc2V0KHsgbGVmdDogMCwgcmlnaHQ6IDAsIHRvcDogMCwgYm90dG9tOiAwIH0pO1xuICAgIH1cblxuICAgIHJlYWRvbmx5IGxlZnQkID0gY29tYmluZUxhdGVzdChbdGhpcy5zZWxlY3QoJ2xlZnQnKSwgdGhpcy5zdG9yZS5zZWxlY3QoJ3NpemUnKV0pLnBpcGUoXG4gICAgICAgIG1hcCgoW2xlZnQsIHNpemVdKSA9PiBsZWZ0IHx8IHNpemUud2lkdGggLyAtMilcbiAgICApO1xuXG4gICAgcmVhZG9ubHkgcmlnaHQkID0gY29tYmluZUxhdGVzdChbdGhpcy5zZWxlY3QoJ3JpZ2h0JyksIHRoaXMuc3RvcmUuc2VsZWN0KCdzaXplJyldKS5waXBlKFxuICAgICAgICBtYXAoKFtyaWdodCwgc2l6ZV0pID0+IHJpZ2h0IHx8IHNpemUud2lkdGggLyAyKVxuICAgICk7XG5cbiAgICByZWFkb25seSB0b3AkID0gY29tYmluZUxhdGVzdChbdGhpcy5zZWxlY3QoJ3RvcCcpLCB0aGlzLnN0b3JlLnNlbGVjdCgnc2l6ZScpXSkucGlwZShcbiAgICAgICAgbWFwKChbdG9wLCBzaXplXSkgPT4gdG9wIHx8IHNpemUuaGVpZ2h0IC8gMilcbiAgICApO1xuXG4gICAgcmVhZG9ubHkgYm90dG9tJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuc2VsZWN0KCdib3R0b20nKSwgdGhpcy5zdG9yZS5zZWxlY3QoJ3NpemUnKV0pLnBpcGUoXG4gICAgICAgIG1hcCgoW2JvdHRvbSwgc2l6ZV0pID0+IGJvdHRvbSB8fCBzaXplLmhlaWdodCAvIC0yKVxuICAgICk7XG59XG4iXX0=
@@ -1,146 +0,0 @@
1
- import { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, inject, Input, Output } from '@angular/core';
2
- import { injectBeforeRender, injectNgtRef, NgtArgs, NgtPush, NgtRxStore, NgtStore, startWithUndefined, } from 'angular-three';
3
- import { combineLatest, map } from 'rxjs';
4
- import { OrbitControls } from 'three-stdlib';
5
- import * as i0 from "@angular/core";
6
- export class NgtsOrbitControls extends NgtRxStore {
7
- set camera(camera) {
8
- this.set({ camera });
9
- }
10
- set domElement(domElement) {
11
- this.set({ domElement });
12
- }
13
- set makeDefault(makeDefault) {
14
- this.set({ makeDefault });
15
- }
16
- set regress(regress) {
17
- this.set({ regress });
18
- }
19
- set target(target) {
20
- this.set({ target });
21
- }
22
- set enableDamping(enableDamping) {
23
- this.set({ enableDamping });
24
- }
25
- constructor() {
26
- super();
27
- this.controlsRef = injectNgtRef();
28
- this.change = new EventEmitter();
29
- this.start = new EventEmitter();
30
- this.end = new EventEmitter();
31
- this.store = inject(NgtStore);
32
- this.enableDamping$ = this.select('enableDamping');
33
- injectBeforeRender(() => {
34
- const controls = this.controlsRef.nativeElement;
35
- if (controls && controls.enabled) {
36
- controls.update();
37
- }
38
- });
39
- }
40
- initialize() {
41
- super.initialize();
42
- this.set({ enableDamping: true, regress: false });
43
- }
44
- ngOnInit() {
45
- this.setControls();
46
- this.connectElement();
47
- this.makeControlsDefault();
48
- this.setEvents();
49
- this.connect('args', this.controlsRef.$.pipe(map((controls) => [controls])));
50
- }
51
- setControls() {
52
- this.hold(combineLatest([this.store.select('camera'), this.select('camera').pipe(startWithUndefined())]), ([defaultCamera, camera]) => {
53
- const controlsCamera = camera || defaultCamera;
54
- if (!this.controlsRef.nativeElement || this.controlsRef.nativeElement.object !== controlsCamera) {
55
- this.controlsRef.nativeElement = new OrbitControls(controlsCamera);
56
- }
57
- });
58
- }
59
- connectElement() {
60
- this.hold(combineLatest([
61
- this.store.select('gl', 'domElement'),
62
- this.store.select('invalidate'),
63
- this.select('regress'),
64
- this.controlsRef.$,
65
- ]), ([glDom, , , controls]) => {
66
- const { events } = this.store.get();
67
- const domElement = this.get('domElement') || events.connected || glDom;
68
- controls.connect(domElement);
69
- });
70
- }
71
- makeControlsDefault() {
72
- this.effect(combineLatest([this.controlsRef.$, this.select('makeDefault')]), ([controls, makeDefault]) => {
73
- if (makeDefault) {
74
- const oldControls = this.store.get('controls');
75
- this.store.set({ controls });
76
- return () => {
77
- this.store.set({ controls: oldControls });
78
- };
79
- }
80
- });
81
- }
82
- setEvents() {
83
- this.effect(this.controlsRef.$, (controls) => {
84
- const { invalidate, performance } = this.store.get();
85
- const regress = this.get('regress');
86
- const changeCallback = (e) => {
87
- invalidate();
88
- if (regress)
89
- performance.regress();
90
- if (this.change.observed)
91
- this.change.emit(e);
92
- };
93
- const startCallback = this.start.observed ? this.start.emit.bind(this.start) : null;
94
- const endCallback = this.end.observed ? this.end.emit.bind(this.end) : null;
95
- controls.addEventListener('change', changeCallback);
96
- if (startCallback)
97
- controls.addEventListener('start', startCallback);
98
- if (endCallback)
99
- controls.addEventListener('end', endCallback);
100
- return () => {
101
- controls.removeEventListener('change', changeCallback);
102
- if (startCallback)
103
- controls.removeEventListener('start', startCallback);
104
- if (endCallback)
105
- controls.removeEventListener('end', endCallback);
106
- };
107
- });
108
- }
109
- }
110
- NgtsOrbitControls.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsOrbitControls, deps: [], target: i0.ɵɵFactoryTarget.Component });
111
- 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: `
112
- <ngt-primitive *args="get('args')" ngtCompound [enableDamping]="enableDamping$ | ngtPush" />
113
- `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }, { kind: "pipe", type: NgtPush, name: "ngtPush" }] });
114
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsOrbitControls, decorators: [{
115
- type: Component,
116
- args: [{
117
- selector: 'ngts-orbit-controls',
118
- standalone: true,
119
- template: `
120
- <ngt-primitive *args="get('args')" ngtCompound [enableDamping]="enableDamping$ | ngtPush" />
121
- `,
122
- imports: [NgtArgs, NgtPush],
123
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
124
- }]
125
- }], ctorParameters: function () { return []; }, propDecorators: { controlsRef: [{
126
- type: Input
127
- }], camera: [{
128
- type: Input
129
- }], domElement: [{
130
- type: Input
131
- }], makeDefault: [{
132
- type: Input
133
- }], regress: [{
134
- type: Input
135
- }], target: [{
136
- type: Input
137
- }], enableDamping: [{
138
- type: Input
139
- }], change: [{
140
- type: Output
141
- }], start: [{
142
- type: Output
143
- }], end: [{
144
- type: Output
145
- }] } });
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JiaXQtY29udHJvbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9jb250cm9scy9zcmMvbGliL29yYml0LWNvbnRyb2xzL29yYml0LWNvbnRyb2xzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsc0JBQXNCLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9HLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLE9BQU8sRUFDUCxPQUFPLEVBQ1AsVUFBVSxFQUNWLFFBQVEsRUFDUixrQkFBa0IsR0FDckIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFXN0MsTUFBTSxPQUFPLGlCQUFrQixTQUFRLFVBQVU7SUFHN0MsSUFBYSxNQUFNLENBQUMsTUFBb0I7UUFDcEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELElBQWEsVUFBVSxDQUFDLFVBQXVCO1FBQzNDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFhLFdBQVcsQ0FBQyxXQUFvQjtRQUN6QyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBYSxPQUFPLENBQUMsT0FBZ0I7UUFDakMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQWEsTUFBTSxDQUFDLE1BQXdEO1FBQ3hFLElB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QyxDQUFDO0lBQ1AsQ0FBQzs7OEdBMUhRLGlCQUFpQjtrR0FBakIsaUJBQWlCLHVWQU5oQjs7S0FFVCw0REFDUyxPQUFPLGdFQUFFLE9BQU87MkZBR2pCLGlCQUFpQjtrQkFUN0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOztLQUVUO29CQUNELE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUM7b0JBQzNCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNwQzswRUFFWSxXQUFXO3NCQUFuQixLQUFLO2dCQUVPLE1BQU07c0JBQWxCLEtBQUs7Z0JBSU8sVUFBVTtzQkFBdEIsS0FBSztnQkFJTyxXQUFXO3NCQUF2QixLQUFLO2dCQUlPLE9BQU87c0JBQW5CLEtBQUs7Z0JBSU8sTUFBTTtzQkFBbEIsS0FBSztnQkFJTyxhQUFhO3NCQUF6QixLQUFLO2dCQUlJLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU07Z0JBQ0csR0FBRztzQkFBWixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIGluamVjdEJlZm9yZVJlbmRlcixcbiAgICBpbmplY3ROZ3RSZWYsXG4gICAgTmd0QXJncyxcbiAgICBOZ3RQdXNoLFxuICAgIE5ndFJ4U3RvcmUsXG4gICAgTmd0U3RvcmUsXG4gICAgc3RhcnRXaXRoVW5kZWZpbmVkLFxufSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgT3JiaXRDb250cm9scyB9IGZyb20gJ3RocmVlLXN0ZGxpYic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd0cy1vcmJpdC1jb250cm9scycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmd0LXByaW1pdGl2ZSAqYXJncz1cImdldCgnYXJncycpXCIgbmd0Q29tcG91bmQgW2VuYWJsZURhbXBpbmddPVwiZW5hYmxlRGFtcGluZyQgfCBuZ3RQdXNoXCIgLz5cbiAgICBgLFxuICAgIGltcG9ydHM6IFtOZ3RBcmdzLCBOZ3RQdXNoXSxcbiAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNPcmJpdENvbnRyb2xzIGV4dGVuZHMgTmd0UnhTdG9yZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCkgY29udHJvbHNSZWYgPSBpbmplY3ROZ3RSZWY8T3JiaXRDb250cm9scz4oKTtcblxuICAgIEBJbnB1dCgpIHNldCBjYW1lcmEoY2FtZXJhOiBUSFJFRS5DYW1lcmEpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBjYW1lcmEgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGRvbUVsZW1lbnQoZG9tRWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBkb21FbGVtZW50IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBtYWtlRGVmYXVsdChtYWtlRGVmYXVsdDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNldCh7IG1ha2VEZWZhdWx0IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCByZWdyZXNzKHJlZ3Jlc3M6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXQoeyByZWdyZXNzIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCB0YXJnZXQodGFyZ2V0OiBUSFJFRS5WZWN0b3IzIHwgUGFyYW1ldGVyczxUSFJFRS5WZWN0b3IzWydzZXQnXT4pIHtcbiAgICAgICAgdGhpcy5zZXQoeyB0YXJnZXQgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGVuYWJsZURhbXBpbmcoZW5hYmxlRGFtcGluZzogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNldCh7IGVuYWJsZURhbXBpbmcgfSk7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpIGNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VEhSRUUuRXZlbnQ+KCk7XG4gICAgQE91dHB1dCgpIHN0YXJ0ID0gbmV3IEV2ZW50RW1pdHRlcjxUSFJFRS5FdmVudD4oKTtcbiAgICBAT3V0cHV0KCkgZW5kID0gbmV3IEV2ZW50RW1pdHRlcjxUSFJFRS5FdmVudD4oKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmUgPSBpbmplY3QoTmd0U3RvcmUpO1xuXG4gICAgcmVhZG9ubHkgZW5hYmxlRGFtcGluZyQgPSB0aGlzLnNlbGVjdCgnZW5hYmxlRGFtcGluZycpO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGluamVjdEJlZm9yZVJlbmRlcigoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb250cm9scyA9IHRoaXMuY29udHJvbHNSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgIGlmIChjb250cm9scyAmJiBjb250cm9scy5lbmFibGVkKSB7XG4gICAgICAgICAgICAgICAgY29udHJvbHMudXBkYXRlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIGluaXRpYWxpemUoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmluaXRpYWxpemUoKTtcbiAgICAgICAgdGhpcy5zZXQoeyBlbmFibGVEYW1waW5nOiB0cnVlLCByZWdyZXNzOiBmYWxzZSB9KTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5zZXRDb250cm9scygpO1xuICAgICAgICB0aGlzLmNvbm5lY3RFbGVtZW50KCk7XG4gICAgICAgIHRoaXMubWFrZUNvbnRyb2xzRGVmYXVsdCgpO1xuICAgICAgICB0aGlzLnNldEV2ZW50cygpO1xuICAgICAgICB0aGlzLmNvbm5lY3QoJ2FyZ3MnLCB0aGlzLmNvbnRyb2xzUmVmLiQucGlwZShtYXAoKGNvbnRyb2xzKSA9PiBbY29udHJvbHNdKSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0Q29udHJvbHMoKSB7XG4gICAgICAgIHRoaXMuaG9sZChcbiAgICAgICAgICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuc3RvcmUuc2VsZWN0KCdjYW1lcmEnKSwgdGhpcy5zZWxlY3QoJ2NhbWVyYScpLnBpcGUoc3RhcnRXaXRoVW5kZWZpbmVkKCkpXSksXG4gICAgICAgICAgICAoW2RlZmF1bHRDYW1lcmEsIGNhbWVyYV0pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb250cm9sc0NhbWVyYSA9IGNhbWVyYSB8fCBkZWZhdWx0Q2FtZXJhO1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5jb250cm9sc1JlZi5uYXRpdmVFbGVtZW50IHx8IHRoaXMuY29udHJvbHNSZWYubmF0aXZlRWxlbWVudC5vYmplY3QgIT09IGNvbnRyb2xzQ2FtZXJhKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbHNSZWYubmF0aXZlRWxlbWVudCA9IG5ldyBPcmJpdENvbnRyb2xzKGNvbnRyb2xzQ2FtZXJhKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb25uZWN0RWxlbWVudCgpIHtcbiAgICAgICAgdGhpcy5ob2xkKFxuICAgICAgICAgICAgY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoJ2dsJywgJ2RvbUVsZW1lbnQnKSxcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JlLnNlbGVjdCgnaW52YWxpZGF0ZScpLFxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0KCdyZWdyZXNzJyksXG4gICAgICAgICAgICAgICAgdGhpcy5jb250cm9sc1JlZi4kLFxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgICAoW2dsRG9tLCAsICwgY29udHJvbHNdKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBldmVudHMgfSA9IHRoaXMuc3RvcmUuZ2V0KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZG9tRWxlbWVudCA9IHRoaXMuZ2V0KCdkb21FbGVtZW50JykgfHwgZXZlbnRzLmNvbm5lY3RlZCB8fCBnbERvbTtcbiAgICAgICAgICAgICAgICBjb250cm9scy5jb25uZWN0KGRvbUVsZW1lbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgbWFrZUNvbnRyb2xzRGVmYXVsdCgpIHtcbiAgICAgICAgdGhpcy5lZmZlY3QoY29tYmluZUxhdGVzdChbdGhpcy5jb250cm9sc1JlZi4kLCB0aGlzLnNlbGVjdCgnbWFrZURlZmF1bHQnKV0pLCAoW2NvbnRyb2xzLCBtYWtlRGVmYXVsdF0pID0+IHtcbiAgICAgICAgICAgIGlmIChtYWtlRGVmYXVsdCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG9sZENvbnRyb2xzID0gdGhpcy5zdG9yZS5nZXQoJ2NvbnRyb2xzJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5zZXQoeyBjb250cm9scyB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0b3JlLnNldCh7IGNvbnRyb2xzOiBvbGRDb250cm9scyB9KTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEV2ZW50cygpIHtcbiAgICAgICAgdGhpcy5lZmZlY3QodGhpcy5jb250cm9sc1JlZi4kLCAoY29udHJvbHMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgaW52YWxpZGF0ZSwgcGVyZm9ybWFuY2UgfSA9IHRoaXMuc3RvcmUuZ2V0KCk7XG4gICAgICAgICAgICBjb25zdCByZWdyZXNzID0gdGhpcy5nZXQoJ3JlZ3Jlc3MnKTtcblxuICAgICAgICAgICAgY29uc3QgY2hhbmdlQ2FsbGJhY2s6IChlOiBUSFJFRS5FdmVudCkgPT4gdm9pZCA9IChlKSA9PiB7XG4gICAgICAgICAgICAgICAgaW52YWxpZGF0ZSgpO1xuICAgICAgICAgICAgICAgIGlmIChyZWdyZXNzKSBwZXJmb3JtYW5jZS5yZWdyZXNzKCk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY2hhbmdlLm9ic2VydmVkKSB0aGlzLmNoYW5nZS5lbWl0KGUpO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgY29uc3Qgc3RhcnRDYWxsYmFjayA9IHRoaXMuc3RhcnQub2JzZXJ2ZWQgPyB0aGlzLnN0YXJ0LmVtaXQuYmluZCh0aGlzLnN0YXJ0KSA6IG51bGw7XG4gICAgICAgICAgICBjb25zdCBlbmRDYWxsYmFjayA9IHRoaXMuZW5kLm9ic2VydmVkID8gdGhpcy5lbmQuZW1pdC5iaW5kKHRoaXMuZW5kKSA6IG51bGw7XG5cbiAgICAgICAgICAgIGNvbnRyb2xzLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGNoYW5nZUNhbGxiYWNrKTtcbiAgICAgICAgICAgIGlmIChzdGFydENhbGxiYWNrKSBjb250cm9scy5hZGRFdmVudExpc3RlbmVyKCdzdGFydCcsIHN0YXJ0Q2FsbGJhY2spO1xuICAgICAgICAgICAgaWYgKGVuZENhbGxiYWNrKSBjb250cm9scy5hZGRFdmVudExpc3RlbmVyKCdlbmQnLCBlbmRDYWxsYmFjayk7XG5cbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29udHJvbHMucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgY2hhbmdlQ2FsbGJhY2spO1xuICAgICAgICAgICAgICAgIGlmIChzdGFydENhbGxiYWNrKSBjb250cm9scy5yZW1vdmVFdmVudExpc3RlbmVyKCdzdGFydCcsIHN0YXJ0Q2FsbGJhY2spO1xuICAgICAgICAgICAgICAgIGlmIChlbmRDYWxsYmFjaykgY29udHJvbHMucmVtb3ZlRXZlbnRMaXN0ZW5lcignZW5kJywgZW5kQ2FsbGJhY2spO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
@@ -1,133 +0,0 @@
1
- import { AsyncPipe, NgIf } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, ElementRef, Input, ViewChild } from '@angular/core';
3
- import { NgtPush, NgtRxStore, startWithUndefined } from 'angular-three';
4
- import { combineLatest, map, of, switchMap, timer, withLatestFrom } from 'rxjs';
5
- import { injectNgtsProgress } from '../progress/progress';
6
- import * as i0 from "@angular/core";
7
- const defaultDataInterpolation = (p) => `Loading ${p.toFixed(2)}%`;
8
- export class NgtsLoader extends NgtRxStore {
9
- constructor() {
10
- super(...arguments);
11
- this.progress = injectNgtsProgress();
12
- this.vm$ = combineLatest([
13
- this.select('shown'),
14
- this.select('containerClass').pipe(startWithUndefined()),
15
- this.select('innerClass').pipe(startWithUndefined()),
16
- this.select('barClass').pipe(startWithUndefined()),
17
- this.select('dataClass').pipe(startWithUndefined()),
18
- this.progress.select('progress'),
19
- this.progress.select('active'),
20
- ]).pipe(map(([shown, containerClass, innerClass, barClass, dataClass, progress, active]) => {
21
- return { shown, containerClass, innerClass, barClass, dataClass, progress, active };
22
- }));
23
- }
24
- set containerClass(containerClass) {
25
- this.set({ containerClass });
26
- }
27
- set innerClass(innerClass) {
28
- this.set({ innerClass });
29
- }
30
- set barClass(barClass) {
31
- this.set({ barClass });
32
- }
33
- set dataClass(dataClass) {
34
- this.set({ dataClass });
35
- }
36
- set dataInterpolation(dataInterpolation) {
37
- this.set({ dataInterpolation });
38
- }
39
- set initialState(initialState) {
40
- this.set({ initialState });
41
- }
42
- initialize() {
43
- super.initialize();
44
- this.set({ dataInterpolation: defaultDataInterpolation, initialState: (active) => active });
45
- }
46
- ngOnInit() {
47
- this.set({ shown: this.get('initialState')(this.progress.get('active')) });
48
- this.connect('shown', this.progress.select('active').pipe(withLatestFrom(this.select('shown')), switchMap(([active, shown]) => {
49
- if (shown !== active)
50
- return timer(300).pipe(map(() => active));
51
- return of(shown);
52
- })));
53
- let progressRef = 0;
54
- let rafId;
55
- this.effect(combineLatest([this.select('dataInterpolation'), this.progress.select('progress')]), ([dataInterpolation, progress]) => {
56
- const updateProgress = () => {
57
- if (!this.progressSpanRef?.nativeElement)
58
- return;
59
- progressRef += (progress - progressRef) / 2;
60
- if (progressRef > 0.95 * progress || progress === 100)
61
- progressRef = progress;
62
- this.progressSpanRef.nativeElement.innerText = dataInterpolation(progressRef);
63
- if (progressRef < progress) {
64
- rafId = requestAnimationFrame(updateProgress);
65
- }
66
- };
67
- updateProgress();
68
- return () => cancelAnimationFrame(rafId);
69
- });
70
- }
71
- }
72
- NgtsLoader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsLoader, deps: null, target: i0.ɵɵFactoryTarget.Component });
73
- 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: `
74
- <ng-container *ngIf="vm$ | ngtPush as vm">
75
- <div
76
- *ngIf="vm.shown"
77
- class="ngts-loader-container"
78
- [class]="vm.containerClass"
79
- [style.--ngts-loader-container-opacity]="vm.active ? 1 : 0"
80
- >
81
- <div>
82
- <div class="ngts-loader-inner" [class]="vm.innerClass">
83
- <div
84
- class="ngts-loader-bar"
85
- [class]="vm.barClass"
86
- [style.--ngts-loader-bar-scale]="vm.progress / 100"
87
- ></div>
88
- <span #progressSpanRef class="ngts-loader-data" [class]="vm.dataClass"></span>
89
- </div>
90
- </div>
91
- </div>
92
- </ng-container>
93
- `, 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 });
94
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsLoader, decorators: [{
95
- type: Component,
96
- args: [{ selector: 'ngts-loader', standalone: true, template: `
97
- <ng-container *ngIf="vm$ | ngtPush as vm">
98
- <div
99
- *ngIf="vm.shown"
100
- class="ngts-loader-container"
101
- [class]="vm.containerClass"
102
- [style.--ngts-loader-container-opacity]="vm.active ? 1 : 0"
103
- >
104
- <div>
105
- <div class="ngts-loader-inner" [class]="vm.innerClass">
106
- <div
107
- class="ngts-loader-bar"
108
- [class]="vm.barClass"
109
- [style.--ngts-loader-bar-scale]="vm.progress / 100"
110
- ></div>
111
- <span #progressSpanRef class="ngts-loader-data" [class]="vm.dataClass"></span>
112
- </div>
113
- </div>
114
- </div>
115
- </ng-container>
116
- `, 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"] }]
117
- }], propDecorators: { containerClass: [{
118
- type: Input
119
- }], innerClass: [{
120
- type: Input
121
- }], barClass: [{
122
- type: Input
123
- }], dataClass: [{
124
- type: Input
125
- }], dataInterpolation: [{
126
- type: Input
127
- }], initialState: [{
128
- type: Input
129
- }], progressSpanRef: [{
130
- type: ViewChild,
131
- args: ['progressSpanRef']
132
- }] } });
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRocmVlLXNvYmEvbG9hZGVycy9zcmMvbGliL2xvYWRlci9sb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFFMUQsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLENBQVMsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7QUE4QjNFLE1BQU0sT0FBTyxVQUFXLFNBQVEsVUFBVTtJQTVCMUM7O1FBNkJxQixhQUFRLEdBQUcsa0JBQWtCLEVBQUUsQ0FBQztRQUV4QyxRQUFHLEdBQUcsYUFBYSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUN4RCxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQ3BELElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFD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Z0JBSU8saUJBQWlCO3NCQUE3QixLQUFLO2dCQUlPLFlBQVk7c0JBQXhCLEtBQUs7Z0JBSXdCLGVBQWU7c0JBQTVDLFNBQVM7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0UHVzaCwgTmd0UnhTdG9yZSwgc3RhcnRXaXRoVW5kZWZpbmVkIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBtYXAsIG9mLCBzd2l0Y2hNYXAsIHRpbWVyLCB3aXRoTGF0ZXN0RnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgaW5qZWN0Tmd0c1Byb2dyZXNzIH0gZnJvbSAnLi4vcHJvZ3Jlc3MvcHJvZ3Jlc3MnO1xuXG5jb25zdCBkZWZhdWx0RGF0YUludGVycG9sYXRpb24gPSAocDogbnVtYmVyKSA9PiBgTG9hZGluZyAke3AudG9GaXhlZCgyKX0lYDtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3RzLWxvYWRlcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidm0kIHwgbmd0UHVzaCBhcyB2bVwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICpuZ0lmPVwidm0uc2hvd25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibmd0cy1sb2FkZXItY29udGFpbmVyXCJcbiAgICAgICAgICAgICAgICBbY2xhc3NdPVwidm0uY29udGFpbmVyQ2xhc3NcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS4tLW5ndHMtbG9hZGVyLWNvbnRhaW5lci1vcGFjaXR5XT1cInZtLmFjdGl2ZSA/IDEgOiAwXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmd0cy1sb2FkZXItaW5uZXJcIiBbY2xhc3NdPVwidm0uaW5uZXJDbGFzc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibmd0cy1sb2FkZXItYmFyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwidm0uYmFyQ2xhc3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS4tLW5ndHMtbG9hZGVyLWJhci1zY2FsZV09XCJ2bS5wcm9ncmVzcyAvIDEwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAjcHJvZ3Jlc3NTcGFuUmVmIGNsYXNzPVwibmd0cy1sb2FkZXItZGF0YVwiIFtjbGFzc109XCJ2bS5kYXRhQ2xhc3NcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIGAsXG4gICAgc3R5bGVVcmxzOiBbJ2xvYWRlci5jc3MnXSxcbiAgICBpbXBvcnRzOiBbTmdJZiwgQXN5bmNQaXBlLCBOZ3RQdXNoXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c0xvYWRlciBleHRlbmRzIE5ndFJ4U3RvcmUgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvZ3Jlc3MgPSBpbmplY3ROZ3RzUHJvZ3Jlc3MoKTtcblxuICAgIHJlYWRvbmx5IHZtJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICB0aGlzLnNlbGVjdCgnc2hvd24nKSxcbiAgICAgICAgdGhpcy5zZWxlY3QoJ2NvbnRhaW5lckNsYXNzJykucGlwZShzdGFydFdpdGhVbmRlZmluZWQoKSksXG4gICAgICAgIHRoaXMuc2VsZWN0KCdpbm5lckNsYXNzJykucGlwZShzdGFydFdpdGhVbmRlZmluZWQoKSksXG4gICAgICAgIHRoaXMuc2VsZWN0KCdiYXJDbGFzcycpLnBpcGUoc3RhcnRXaXRoVW5kZWZpbmVkKCkpLFxuICAgICAgICB0aGlzLnNlbGVjdCgnZGF0YUNsYXNzJykucGlwZShzdGFydFdpdGhVbmRlZmluZWQoKSksXG4gICAgICAgIHRoaXMucHJvZ3Jlc3Muc2VsZWN0KCdwcm9ncmVzcycpLFxuICAgICAgICB0aGlzLnByb2dyZXNzLnNlbGVjdCgnYWN0aXZlJyksXG4gICAgXSkucGlwZShcbiAgICAgICAgbWFwKChbc2hvd24sIGNvbnRhaW5lckNsYXNzLCBpbm5lckNsYXNzLCBiYXJDbGFzcywgZGF0YUNsYXNzLCBwcm9ncmVzcywgYWN0aXZlXSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHsgc2hvd24sIGNvbnRhaW5lckNsYXNzLCBpbm5lckNsYXNzLCBiYXJDbGFzcywgZGF0YUNsYXNzLCBwcm9ncmVzcywgYWN0aXZlIH07XG4gICAgICAgIH0pXG4gICAgKTtcblxuICAgIEBJbnB1dCgpIHNldCBjb250YWluZXJDbGFzcyhjb250YWluZXJDbGFzczogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgY29udGFpbmVyQ2xhc3MgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGlubmVyQ2xhc3MoaW5uZXJDbGFzczogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgaW5uZXJDbGFzcyB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgYmFyQ2xhc3MoYmFyQ2xhc3M6IHN0cmluZykge1xuICAgICAgICB0aGlzLnNldCh7IGJhckNsYXNzIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBkYXRhQ2xhc3MoZGF0YUNsYXNzOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBkYXRhQ2xhc3MgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGRhdGFJbnRlcnBvbGF0aW9uKGRhdGFJbnRlcnBvbGF0aW9uOiAodmFsdWU6IG51bWJlcikgPT4gc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZGF0YUludGVycG9sYXRpb24gfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGluaXRpYWxTdGF0ZShpbml0aWFsU3RhdGU6ICh2YWx1ZTogYm9vbGVhbikgPT4gYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNldCh7IGluaXRpYWxTdGF0ZSB9KTtcbiAgICB9XG5cbiAgICBAVmlld0NoaWxkKCdwcm9ncmVzc1NwYW5SZWYnKSBwcm9ncmVzc1NwYW5SZWY/OiBFbGVtZW50UmVmPEhUTUxTcGFuRWxlbWVudD47XG5cbiAgICBvdmVycmlkZSBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5pbml0aWFsaXplKCk7XG4gICAgICAgIHRoaXMuc2V0KHsgZGF0YUludGVycG9sYXRpb246IGRlZmF1bHREYXRhSW50ZXJwb2xhdGlvbiwgaW5pdGlhbFN0YXRlOiAoYWN0aXZlOiBib29sZWFuKSA9PiBhY3RpdmUgfSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgc2hvd246IHRoaXMuZ2V0KCdpbml0aWFsU3RhdGUnKSh0aGlzLnByb2dyZXNzLmdldCgnYWN0aXZlJykpIH0pO1xuICAgICAgICB0aGlzLmNvbm5lY3QoXG4gICAgICAgICAgICAnc2hvd24nLFxuICAgICAgICAgICAgdGhpcy5wcm9ncmVzcy5zZWxlY3QoJ2FjdGl2ZScpLnBpcGUoXG4gICAgICAgICAgICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5zZWxlY3QoJ3Nob3duJykpLFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoW2FjdGl2ZSwgc2hvd25dKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzaG93biAhPT0gYWN0aXZlKSByZXR1cm4gdGltZXIoMzAwKS5waXBlKG1hcCgoKSA9PiBhY3RpdmUpKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKHNob3duKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIGxldCBwcm9ncmVzc1JlZiA9IDA7XG4gICAgICAgIGxldCByYWZJZDogUmV0dXJuVHlwZTx0eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lPjtcblxuICAgICAgICB0aGlzLmVmZmVjdChcbiAgICAgICAgICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuc2VsZWN0KCdkYXRhSW50ZXJwb2xhdGlvbicpLCB0aGlzLnByb2dyZXNzLnNlbGVjdCgncHJvZ3Jlc3MnKV0pLFxuICAgICAgICAgICAgKFtkYXRhSW50ZXJwb2xhdGlvbiwgcHJvZ3Jlc3NdKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdXBkYXRlUHJvZ3Jlc3MgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5wcm9ncmVzc1NwYW5SZWY/Lm5hdGl2ZUVsZW1lbnQpIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgcHJvZ3Jlc3NSZWYgKz0gKHByb2dyZXNzIC0gcHJvZ3Jlc3NSZWYpIC8gMjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHByb2dyZXNzUmVmID4gMC45NSAqIHByb2dyZXNzIHx8IHByb2dyZXNzID09PSAxMDApIHByb2dyZXNzUmVmID0gcHJvZ3Jlc3M7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJvZ3Jlc3NTcGFuUmVmLm5hdGl2ZUVsZW1lbnQuaW5uZXJUZXh0ID0gZGF0YUludGVycG9sYXRpb24ocHJvZ3Jlc3NSZWYpO1xuICAgICAgICAgICAgICAgICAgICBpZiAocHJvZ3Jlc3NSZWYgPCBwcm9ncmVzcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmFmSWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodXBkYXRlUHJvZ3Jlc3MpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHVwZGF0ZVByb2dyZXNzKCk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gKCkgPT4gY2FuY2VsQW5pbWF0aW9uRnJhbWUocmFmSWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,74 +0,0 @@
1
- import { Component, CUSTOM_ELEMENTS_SCHEMA, inject, Input } from '@angular/core';
2
- import { injectBeforeRender, injectNgtRef, NgtArgs, NgtRxStore } from 'angular-three';
3
- import { NGTS_DISTORT_MATERIAL_SHADER } from 'angular-three-soba/shaders';
4
- import * as i0 from "@angular/core";
5
- export class NgtsMeshDistortMaterial extends NgtRxStore {
6
- set time(time) {
7
- this.set({ time });
8
- }
9
- set distort(distort) {
10
- this.set({ distort });
11
- }
12
- set radius(radius) {
13
- this.set({ radius });
14
- }
15
- set speed(speed) {
16
- this.set({ speed });
17
- }
18
- initialize() {
19
- super.initialize();
20
- this.set({ speed: 1, time: 0, distort: 0.4, radius: 1 });
21
- }
22
- constructor() {
23
- super();
24
- this.MeshDistortMaterial = inject(NGTS_DISTORT_MATERIAL_SHADER);
25
- this.material = new this.MeshDistortMaterial();
26
- this.materialRef = injectNgtRef();
27
- injectBeforeRender(({ clock }) => {
28
- this.material.time = clock.getElapsedTime() * this.get('speed');
29
- });
30
- }
31
- }
32
- NgtsMeshDistortMaterial.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsMeshDistortMaterial, deps: [], target: i0.ɵɵFactoryTarget.Component });
33
- NgtsMeshDistortMaterial.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: NgtsMeshDistortMaterial, isStandalone: true, selector: "ngts-mesh-distort-material", inputs: { materialRef: "materialRef", time: "time", distort: "distort", radius: "radius", speed: "speed" }, usesInheritance: true, ngImport: i0, template: `
34
- <ngt-primitive
35
- *args="[material]"
36
- [ref]="materialRef"
37
- [time]="get('time')"
38
- [distort]="get('distort')"
39
- [radius]="get('radius')"
40
- ngtCompound
41
- attach="material"
42
- />
43
- `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }] });
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsMeshDistortMaterial, decorators: [{
45
- type: Component,
46
- args: [{
47
- selector: 'ngts-mesh-distort-material',
48
- standalone: true,
49
- template: `
50
- <ngt-primitive
51
- *args="[material]"
52
- [ref]="materialRef"
53
- [time]="get('time')"
54
- [distort]="get('distort')"
55
- [radius]="get('radius')"
56
- ngtCompound
57
- attach="material"
58
- />
59
- `,
60
- imports: [NgtArgs],
61
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
62
- }]
63
- }], ctorParameters: function () { return []; }, propDecorators: { materialRef: [{
64
- type: Input
65
- }], time: [{
66
- type: Input
67
- }], distort: [{
68
- type: Input
69
- }], radius: [{
70
- type: Input
71
- }], speed: [{
72
- type: Input
73
- }] } });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzaC1kaXN0b3J0LW1hdGVyaWFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRocmVlLXNvYmEvbWF0ZXJpYWxzL3NyYy9saWIvbWVzaC1kaXN0b3J0LW1hdGVyaWFsL21lc2gtZGlzdG9ydC1tYXRlcmlhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RGLE9BQU8sRUFBdUIsNEJBQTRCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFtQi9GLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxVQUFVO0lBT25ELElBQWEsSUFBSSxDQUFDLElBQVk7UUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQWEsT0FBTyxDQUFDLE9BQWU7UUFDaEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQWEsTUFBTSxDQUFDLE1BQWM7UUFDOUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELElBQWEsS0FBSyxDQUFDLEtBQWE7UUFDNUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVRLFVBQVU7UUFDZixLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDtRQUNJLEtBQUssRUFBRSxDQUFDO1FBNUJILHdCQUFtQixHQUFHLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBRTNELGFBQVEsR0FBRyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBRTFDLGdCQUFXLEdBQUcsWUFBWSxFQUFxQyxDQUFDO1FBeUJyRSxrQkFBa0IsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsY0FBYyxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwRSxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O29IQWpDUSx1QkFBdUI7d0dBQXZCLHVCQUF1Qix5TkFkdEI7Ozs7Ozs7Ozs7S0FVVCw0REFDUyxPQUFPOzJGQUdSLHVCQUF1QjtrQkFqQm5DLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDRCQUE0QjtvQkFDdEMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7Ozs7Ozs7OztLQVVUO29CQUNELE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztvQkFDbEIsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ3BDOzBFQU1ZLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRU8sSUFBSTtzQkFBaEIsS0FBSztnQkFJTyxPQUFPO3NCQUFuQixLQUFLO2dCQUlPLE1BQU07c0JBQWxCLEtBQUs7Z0JBSU8sS0FBSztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgaW5qZWN0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0QmVmb3JlUmVuZGVyLCBpbmplY3ROZ3RSZWYsIE5ndEFyZ3MsIE5ndFJ4U3RvcmUgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IE1lc2hEaXN0b3J0TWF0ZXJpYWwsIE5HVFNfRElTVE9SVF9NQVRFUklBTF9TSEFERVIgfSBmcm9tICdhbmd1bGFyLXRocmVlLXNvYmEvc2hhZGVycyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd0cy1tZXNoLWRpc3RvcnQtbWF0ZXJpYWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5ndC1wcmltaXRpdmVcbiAgICAgICAgICAgICphcmdzPVwiW21hdGVyaWFsXVwiXG4gICAgICAgICAgICBbcmVmXT1cIm1hdGVyaWFsUmVmXCJcbiAgICAgICAgICAgIFt0aW1lXT1cImdldCgndGltZScpXCJcbiAgICAgICAgICAgIFtkaXN0b3J0XT1cImdldCgnZGlzdG9ydCcpXCJcbiAgICAgICAgICAgIFtyYWRpdXNdPVwiZ2V0KCdyYWRpdXMnKVwiXG4gICAgICAgICAgICBuZ3RDb21wb3VuZFxuICAgICAgICAgICAgYXR0YWNoPVwibWF0ZXJpYWxcIlxuICAgICAgICAvPlxuICAgIGAsXG4gICAgaW1wb3J0czogW05ndEFyZ3NdLFxuICAgIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c01lc2hEaXN0b3J0TWF0ZXJpYWwgZXh0ZW5kcyBOZ3RSeFN0b3JlIHtcbiAgICByZWFkb25seSBNZXNoRGlzdG9ydE1hdGVyaWFsID0gaW5qZWN0KE5HVFNfRElTVE9SVF9NQVRFUklBTF9TSEFERVIpO1xuXG4gICAgcmVhZG9ubHkgbWF0ZXJpYWwgPSBuZXcgdGhpcy5NZXNoRGlzdG9ydE1hdGVyaWFsKCk7XG5cbiAgICBASW5wdXQoKSBtYXRlcmlhbFJlZiA9IGluamVjdE5ndFJlZjxJbnN0YW5jZVR5cGU8TWVzaERpc3RvcnRNYXRlcmlhbD4+KCk7XG5cbiAgICBASW5wdXQoKSBzZXQgdGltZSh0aW1lOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyB0aW1lIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBkaXN0b3J0KGRpc3RvcnQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGRpc3RvcnQgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHJhZGl1cyhyYWRpdXM6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IHJhZGl1cyB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgc3BlZWQoc3BlZWQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IHNwZWVkIH0pO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIGluaXRpYWxpemUoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmluaXRpYWxpemUoKTtcbiAgICAgICAgdGhpcy5zZXQoeyBzcGVlZDogMSwgdGltZTogMCwgZGlzdG9ydDogMC40LCByYWRpdXM6IDEgfSk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGluamVjdEJlZm9yZVJlbmRlcigoeyBjbG9jayB9KSA9PiB7XG4gICAgICAgICAgICB0aGlzLm1hdGVyaWFsLnRpbWUgPSBjbG9jay5nZXRFbGFwc2VkVGltZSgpICogdGhpcy5nZXQoJ3NwZWVkJyk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==