angular-three 0.0.7 → 1.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (441) hide show
  1. package/esm2020/angular-three.mjs +1 -1
  2. package/esm2020/index.mjs +2 -35
  3. package/esm2020/lib/canvas.mjs +141 -128
  4. package/esm2020/lib/di/catalogue.mjs +7 -0
  5. package/esm2020/lib/directives/args.mjs +37 -17
  6. package/esm2020/lib/directives/repeat.mjs +5 -8
  7. package/esm2020/lib/events.mjs +341 -52
  8. package/esm2020/lib/loader.mjs +55 -0
  9. package/esm2020/lib/loop.mjs +137 -0
  10. package/esm2020/lib/renderer/di.mjs +3 -0
  11. package/esm2020/lib/renderer/enums.mjs +2 -0
  12. package/esm2020/lib/renderer/provider.mjs +19 -0
  13. package/esm2020/lib/renderer/renderer.mjs +293 -0
  14. package/esm2020/lib/renderer/state.mjs +350 -0
  15. package/esm2020/lib/renderer/utils.mjs +177 -0
  16. package/esm2020/lib/stores/rx-store.mjs +99 -0
  17. package/esm2020/lib/stores/store.mjs +190 -239
  18. package/esm2020/lib/types.mjs +1 -1
  19. package/esm2020/lib/utils/apply-props.mjs +37 -80
  20. package/esm2020/lib/utils/attach.mjs +29 -0
  21. package/esm2020/lib/utils/instance.mjs +43 -28
  22. package/esm2020/lib/utils/is.mjs +7 -11
  23. package/esm2020/lib/utils/make.mjs +30 -10
  24. package/esm2020/lib/utils/update.mjs +37 -0
  25. package/esm2020/lib/web/events.mjs +68 -0
  26. package/fesm2015/angular-three.mjs +2053 -2046
  27. package/fesm2015/angular-three.mjs.map +1 -1
  28. package/fesm2020/angular-three.mjs +2003 -1990
  29. package/fesm2020/angular-three.mjs.map +1 -1
  30. package/index.d.ts +1 -34
  31. package/lib/canvas.d.ts +29 -28
  32. package/lib/di/catalogue.d.ts +3 -0
  33. package/lib/directives/args.d.ts +8 -12
  34. package/lib/events.d.ts +7 -2
  35. package/lib/loader.d.ts +15 -0
  36. package/lib/{utils/loop.d.ts → loop.d.ts} +7 -6
  37. package/lib/renderer/di.d.ts +2 -0
  38. package/lib/renderer/enums.d.ts +25 -0
  39. package/lib/renderer/provider.d.ts +25 -0
  40. package/lib/renderer/renderer.d.ts +49 -0
  41. package/lib/renderer/state.d.ts +59 -0
  42. package/lib/renderer/utils.d.ts +20 -0
  43. package/lib/stores/rx-store.d.ts +17 -0
  44. package/lib/stores/store.d.ts +6 -23
  45. package/lib/types.d.ts +182 -191
  46. package/lib/utils/apply-props.d.ts +2 -6
  47. package/lib/utils/attach.d.ts +3 -0
  48. package/lib/utils/instance.d.ts +3 -3
  49. package/lib/utils/is.d.ts +6 -10
  50. package/lib/utils/make.d.ts +5 -2
  51. package/lib/utils/update.d.ts +4 -0
  52. package/lib/web/events.d.ts +4 -0
  53. package/package.json +30 -99
  54. package/attributes/README.md +0 -3
  55. package/attributes/index.d.ts +0 -22
  56. package/attributes/lib/buffer-attribute/buffer-attribute.d.ts +0 -8
  57. package/attributes/lib/color-attribute/color-attribute.d.ts +0 -8
  58. package/attributes/lib/common.d.ts +0 -1
  59. package/attributes/lib/float16-buffer-attribute/float16-buffer-attribute.d.ts +0 -8
  60. package/attributes/lib/float32-buffer-attribute/float32-buffer-attribute.d.ts +0 -8
  61. package/attributes/lib/float64-buffer-attribute/float64-buffer-attribute.d.ts +0 -8
  62. package/attributes/lib/fog-attribute/fog-attribute.d.ts +0 -8
  63. package/attributes/lib/fog-exp2-attribute/fog-exp2-attribute.d.ts +0 -8
  64. package/attributes/lib/instanced-buffer-attribute/instanced-buffer-attribute.d.ts +0 -8
  65. package/attributes/lib/int16-buffer-attribute/int16-buffer-attribute.d.ts +0 -8
  66. package/attributes/lib/int32-buffer-attribute/int32-buffer-attribute.d.ts +0 -8
  67. package/attributes/lib/int8-buffer-attribute/int8-buffer-attribute.d.ts +0 -8
  68. package/attributes/lib/interleaved-buffer-attribute/interleaved-buffer-attribute.d.ts +0 -8
  69. package/attributes/lib/matrix3-attribute/matrix3-attribute.d.ts +0 -8
  70. package/attributes/lib/matrix4-attribute/matrix4-attribute.d.ts +0 -8
  71. package/attributes/lib/uint16-buffer-attribute/uint16-buffer-attribute.d.ts +0 -8
  72. package/attributes/lib/uint32-buffer-attribute/uint32-buffer-attribute.d.ts +0 -8
  73. package/attributes/lib/uint8-buffer-attribute/uint8-buffer-attribute.d.ts +0 -8
  74. package/attributes/lib/uint8-clamped-buffer-attribute/uint8-clamped-buffer-attribute.d.ts +0 -8
  75. package/attributes/lib/value-attribute/value-attribute.d.ts +0 -8
  76. package/attributes/lib/vector2-attribute/vector2-attribute.d.ts +0 -8
  77. package/attributes/lib/vector3-attribute/vector3-attribute.d.ts +0 -8
  78. package/attributes/lib/vector4-attribute/vector4-attribute.d.ts +0 -8
  79. package/audios/README.md +0 -3
  80. package/audios/index.d.ts +0 -3
  81. package/audios/lib/audio/audio.d.ts +0 -49
  82. package/audios/lib/audio-listener/audio-listener.d.ts +0 -35
  83. package/audios/lib/common.d.ts +0 -3
  84. package/audios/lib/positional-audio/positional-audio.d.ts +0 -49
  85. package/cameras/README.md +0 -3
  86. package/cameras/index.d.ts +0 -5
  87. package/cameras/lib/array-camera/array-camera.d.ts +0 -56
  88. package/cameras/lib/common.d.ts +0 -3
  89. package/cameras/lib/cube-camera/cube-camera.d.ts +0 -36
  90. package/cameras/lib/orthographic-camera/orthographic-camera.d.ts +0 -54
  91. package/cameras/lib/perspective-camera/perspective-camera.d.ts +0 -55
  92. package/cameras/lib/stereo-camera/stereo-camera.d.ts +0 -42
  93. package/esm2020/attributes/angular-three-attributes.mjs +0 -5
  94. package/esm2020/attributes/index.mjs +0 -24
  95. package/esm2020/attributes/lib/buffer-attribute/buffer-attribute.mjs +0 -26
  96. package/esm2020/attributes/lib/color-attribute/color-attribute.mjs +0 -26
  97. package/esm2020/attributes/lib/common.mjs +0 -13
  98. package/esm2020/attributes/lib/float16-buffer-attribute/float16-buffer-attribute.mjs +0 -26
  99. package/esm2020/attributes/lib/float32-buffer-attribute/float32-buffer-attribute.mjs +0 -26
  100. package/esm2020/attributes/lib/float64-buffer-attribute/float64-buffer-attribute.mjs +0 -26
  101. package/esm2020/attributes/lib/fog-attribute/fog-attribute.mjs +0 -26
  102. package/esm2020/attributes/lib/fog-exp2-attribute/fog-exp2-attribute.mjs +0 -26
  103. package/esm2020/attributes/lib/instanced-buffer-attribute/instanced-buffer-attribute.mjs +0 -26
  104. package/esm2020/attributes/lib/int16-buffer-attribute/int16-buffer-attribute.mjs +0 -26
  105. package/esm2020/attributes/lib/int32-buffer-attribute/int32-buffer-attribute.mjs +0 -26
  106. package/esm2020/attributes/lib/int8-buffer-attribute/int8-buffer-attribute.mjs +0 -26
  107. package/esm2020/attributes/lib/interleaved-buffer-attribute/interleaved-buffer-attribute.mjs +0 -30
  108. package/esm2020/attributes/lib/matrix3-attribute/matrix3-attribute.mjs +0 -26
  109. package/esm2020/attributes/lib/matrix4-attribute/matrix4-attribute.mjs +0 -26
  110. package/esm2020/attributes/lib/uint16-buffer-attribute/uint16-buffer-attribute.mjs +0 -26
  111. package/esm2020/attributes/lib/uint32-buffer-attribute/uint32-buffer-attribute.mjs +0 -26
  112. package/esm2020/attributes/lib/uint8-buffer-attribute/uint8-buffer-attribute.mjs +0 -26
  113. package/esm2020/attributes/lib/uint8-clamped-buffer-attribute/uint8-clamped-buffer-attribute.mjs +0 -26
  114. package/esm2020/attributes/lib/value-attribute/value-attribute.mjs +0 -28
  115. package/esm2020/attributes/lib/vector2-attribute/vector2-attribute.mjs +0 -26
  116. package/esm2020/attributes/lib/vector3-attribute/vector3-attribute.mjs +0 -26
  117. package/esm2020/attributes/lib/vector4-attribute/vector4-attribute.mjs +0 -26
  118. package/esm2020/audios/angular-three-audios.mjs +0 -5
  119. package/esm2020/audios/index.mjs +0 -5
  120. package/esm2020/audios/lib/audio/audio.mjs +0 -45
  121. package/esm2020/audios/lib/audio-listener/audio-listener.mjs +0 -38
  122. package/esm2020/audios/lib/common.mjs +0 -54
  123. package/esm2020/audios/lib/positional-audio/positional-audio.mjs +0 -45
  124. package/esm2020/cameras/angular-three-cameras.mjs +0 -5
  125. package/esm2020/cameras/index.mjs +0 -7
  126. package/esm2020/cameras/lib/array-camera/array-camera.mjs +0 -44
  127. package/esm2020/cameras/lib/common.mjs +0 -54
  128. package/esm2020/cameras/lib/cube-camera/cube-camera.mjs +0 -30
  129. package/esm2020/cameras/lib/orthographic-camera/orthographic-camera.mjs +0 -42
  130. package/esm2020/cameras/lib/perspective-camera/perspective-camera.mjs +0 -43
  131. package/esm2020/cameras/lib/stereo-camera/stereo-camera.mjs +0 -38
  132. package/esm2020/geometries/angular-three-geometries.mjs +0 -5
  133. package/esm2020/geometries/index.mjs +0 -25
  134. package/esm2020/geometries/lib/box-geometry/box-geometry.mjs +0 -26
  135. package/esm2020/geometries/lib/buffer-geometry/buffer-geometry.mjs +0 -26
  136. package/esm2020/geometries/lib/capsule-geometry/capsule-geometry.mjs +0 -26
  137. package/esm2020/geometries/lib/circle-geometry/circle-geometry.mjs +0 -26
  138. package/esm2020/geometries/lib/common.mjs +0 -13
  139. package/esm2020/geometries/lib/cone-geometry/cone-geometry.mjs +0 -26
  140. package/esm2020/geometries/lib/cylinder-geometry/cylinder-geometry.mjs +0 -26
  141. package/esm2020/geometries/lib/dodecahedron-geometry/dodecahedron-geometry.mjs +0 -26
  142. package/esm2020/geometries/lib/edges-geometry/edges-geometry.mjs +0 -26
  143. package/esm2020/geometries/lib/extrude-geometry/extrude-geometry.mjs +0 -26
  144. package/esm2020/geometries/lib/icosahedron-geometry/icosahedron-geometry.mjs +0 -26
  145. package/esm2020/geometries/lib/instanced-buffer-geometry/instanced-buffer-geometry.mjs +0 -26
  146. package/esm2020/geometries/lib/lathe-geometry/lathe-geometry.mjs +0 -26
  147. package/esm2020/geometries/lib/octahedron-geometry/octahedron-geometry.mjs +0 -26
  148. package/esm2020/geometries/lib/plane-geometry/plane-geometry.mjs +0 -26
  149. package/esm2020/geometries/lib/polyhedron-geometry/polyhedron-geometry.mjs +0 -26
  150. package/esm2020/geometries/lib/ring-geometry/ring-geometry.mjs +0 -26
  151. package/esm2020/geometries/lib/shape-geometry/shape-geometry.mjs +0 -26
  152. package/esm2020/geometries/lib/sphere-geometry/sphere-geometry.mjs +0 -26
  153. package/esm2020/geometries/lib/tetrahedron-geometry/tetrahedron-geometry.mjs +0 -26
  154. package/esm2020/geometries/lib/torus-geometry/torus-geometry.mjs +0 -26
  155. package/esm2020/geometries/lib/torus-knot-geometry/torus-knot-geometry.mjs +0 -26
  156. package/esm2020/geometries/lib/tube-geometry/tube-geometry.mjs +0 -26
  157. package/esm2020/geometries/lib/wireframe-geometry/wireframe-geometry.mjs +0 -26
  158. package/esm2020/helpers/angular-three-helpers.mjs +0 -5
  159. package/esm2020/helpers/index.mjs +0 -15
  160. package/esm2020/helpers/lib/arrow-helper/arrow-helper.mjs +0 -26
  161. package/esm2020/helpers/lib/axes-helper/axes-helper.mjs +0 -26
  162. package/esm2020/helpers/lib/box-helper/box-helper.mjs +0 -36
  163. package/esm2020/helpers/lib/box3-helper/box3-helper.mjs +0 -36
  164. package/esm2020/helpers/lib/camera-helper/camera-helper.mjs +0 -36
  165. package/esm2020/helpers/lib/common.mjs +0 -13
  166. package/esm2020/helpers/lib/directional-light-helper/directional-light-helper.mjs +0 -36
  167. package/esm2020/helpers/lib/grid-helper/grid-helper.mjs +0 -26
  168. package/esm2020/helpers/lib/hemisphere-light-helper/hemisphere-light-helper.mjs +0 -36
  169. package/esm2020/helpers/lib/plane-helper/plane-helper.mjs +0 -36
  170. package/esm2020/helpers/lib/point-light-helper/point-light-helper.mjs +0 -36
  171. package/esm2020/helpers/lib/polar-grid-helper/polar-grid-helper.mjs +0 -26
  172. package/esm2020/helpers/lib/skeleton-helper/skeleton-helper.mjs +0 -36
  173. package/esm2020/helpers/lib/spot-light-helper/spot-light-helper.mjs +0 -36
  174. package/esm2020/lib/di/resize.mjs +0 -19
  175. package/esm2020/lib/di/window.mjs +0 -13
  176. package/esm2020/lib/directives/cursor.mjs +0 -35
  177. package/esm2020/lib/instance.mjs +0 -368
  178. package/esm2020/lib/pipes/math.mjs +0 -15
  179. package/esm2020/lib/pipes/pi.mjs +0 -14
  180. package/esm2020/lib/pipes/radian.mjs +0 -14
  181. package/esm2020/lib/pipes/side.mjs +0 -22
  182. package/esm2020/lib/ref.mjs +0 -15
  183. package/esm2020/lib/services/loader.mjs +0 -45
  184. package/esm2020/lib/services/resize.mjs +0 -127
  185. package/esm2020/lib/stores/component-store.mjs +0 -137
  186. package/esm2020/lib/utils/build-graph.mjs +0 -15
  187. package/esm2020/lib/utils/camera.mjs +0 -28
  188. package/esm2020/lib/utils/capitalize.mjs +0 -4
  189. package/esm2020/lib/utils/check-update.mjs +0 -22
  190. package/esm2020/lib/utils/events.mjs +0 -353
  191. package/esm2020/lib/utils/get-instance-local-state.mjs +0 -6
  192. package/esm2020/lib/utils/inject.mjs +0 -18
  193. package/esm2020/lib/utils/loop.mjs +0 -139
  194. package/esm2020/lib/utils/mutate.mjs +0 -24
  195. package/esm2020/lib/utils/proxy.mjs +0 -99
  196. package/esm2020/lib/utils/renderer.mjs +0 -15
  197. package/esm2020/lights/angular-three-lights.mjs +0 -5
  198. package/esm2020/lights/index.mjs +0 -11
  199. package/esm2020/lights/lib/ambient-light/ambient-light.mjs +0 -30
  200. package/esm2020/lights/lib/ambient-light-probe/ambient-light-probe.mjs +0 -30
  201. package/esm2020/lights/lib/common.mjs +0 -54
  202. package/esm2020/lights/lib/directional-light/directional-light.mjs +0 -30
  203. package/esm2020/lights/lib/hemisphere-light/hemisphere-light.mjs +0 -30
  204. package/esm2020/lights/lib/hemisphere-light-probe/hemisphere-light-probe.mjs +0 -30
  205. package/esm2020/lights/lib/light-probe/light-probe.mjs +0 -30
  206. package/esm2020/lights/lib/point-light/point-light.mjs +0 -30
  207. package/esm2020/lights/lib/rect-area-light/rect-area-light.mjs +0 -30
  208. package/esm2020/lights/lib/spot-light/spot-light.mjs +0 -42
  209. package/esm2020/materials/angular-three-materials.mjs +0 -5
  210. package/esm2020/materials/index.mjs +0 -19
  211. package/esm2020/materials/lib/common.mjs +0 -13
  212. package/esm2020/materials/lib/line-basic-material/line-basic-material.mjs +0 -77
  213. package/esm2020/materials/lib/line-dashed-material/line-dashed-material.mjs +0 -80
  214. package/esm2020/materials/lib/mesh-basic-material/mesh-basic-material.mjs +0 -89
  215. package/esm2020/materials/lib/mesh-depth-material/mesh-depth-material.mjs +0 -80
  216. package/esm2020/materials/lib/mesh-distance-material/mesh-distance-material.mjs +0 -80
  217. package/esm2020/materials/lib/mesh-lambert-material/mesh-lambert-material.mjs +0 -100
  218. package/esm2020/materials/lib/mesh-matcap-material/mesh-matcap-material.mjs +0 -86
  219. package/esm2020/materials/lib/mesh-normal-material/mesh-normal-material.mjs +0 -83
  220. package/esm2020/materials/lib/mesh-phong-material/mesh-phong-material.mjs +0 -103
  221. package/esm2020/materials/lib/mesh-physical-material/mesh-physical-material.mjs +0 -119
  222. package/esm2020/materials/lib/mesh-standard-material/mesh-standard-material.mjs +0 -100
  223. package/esm2020/materials/lib/mesh-toon-material/mesh-toon-material.mjs +0 -96
  224. package/esm2020/materials/lib/points-material/points-material.mjs +0 -78
  225. package/esm2020/materials/lib/raw-shader-material/raw-shader-material.mjs +0 -83
  226. package/esm2020/materials/lib/shader-material/shader-material.mjs +0 -83
  227. package/esm2020/materials/lib/shadow-material/shadow-material.mjs +0 -74
  228. package/esm2020/materials/lib/sprite-material/sprite-material.mjs +0 -78
  229. package/esm2020/objects/angular-three-objects.mjs +0 -5
  230. package/esm2020/objects/index.mjs +0 -14
  231. package/esm2020/objects/lib/bone/bone.mjs +0 -27
  232. package/esm2020/objects/lib/common.mjs +0 -54
  233. package/esm2020/objects/lib/group/group.mjs +0 -27
  234. package/esm2020/objects/lib/instanced-mesh/instanced-mesh.mjs +0 -40
  235. package/esm2020/objects/lib/line/line.mjs +0 -30
  236. package/esm2020/objects/lib/line-loop/line-loop.mjs +0 -30
  237. package/esm2020/objects/lib/line-segments/line-segments.mjs +0 -30
  238. package/esm2020/objects/lib/lod/lod.mjs +0 -30
  239. package/esm2020/objects/lib/mesh/mesh.mjs +0 -30
  240. package/esm2020/objects/lib/points/points.mjs +0 -30
  241. package/esm2020/objects/lib/skeleton/skeleton.mjs +0 -41
  242. package/esm2020/objects/lib/skinned-mesh/skinned-mesh.mjs +0 -39
  243. package/esm2020/objects/lib/sprite/sprite.mjs +0 -30
  244. package/esm2020/primitives/angular-three-primitives.mjs +0 -5
  245. package/esm2020/primitives/index.mjs +0 -3
  246. package/esm2020/primitives/lib/common.mjs +0 -54
  247. package/esm2020/primitives/lib/object-primitive/object-primitive.mjs +0 -27
  248. package/esm2020/primitives/lib/primitive/primitive.mjs +0 -38
  249. package/esm2020/stats/angular-three-stats.mjs +0 -5
  250. package/esm2020/stats/index.mjs +0 -2
  251. package/esm2020/stats/lib/stats/stats.mjs +0 -54
  252. package/esm2020/textures/angular-three-textures.mjs +0 -5
  253. package/esm2020/textures/index.mjs +0 -12
  254. package/esm2020/textures/lib/canvas-texture/canvas-texture.mjs +0 -26
  255. package/esm2020/textures/lib/common.mjs +0 -13
  256. package/esm2020/textures/lib/compressed-array-texture/compressed-array-texture.mjs +0 -26
  257. package/esm2020/textures/lib/compressed-texture/compressed-texture.mjs +0 -26
  258. package/esm2020/textures/lib/cube-texture/cube-texture.mjs +0 -26
  259. package/esm2020/textures/lib/data-array-texture/data-array-texture.mjs +0 -26
  260. package/esm2020/textures/lib/data-texture/data-texture.mjs +0 -26
  261. package/esm2020/textures/lib/data3-dtexture/data3-dtexture.mjs +0 -26
  262. package/esm2020/textures/lib/depth-texture/depth-texture.mjs +0 -26
  263. package/esm2020/textures/lib/framebuffer-texture/framebuffer-texture.mjs +0 -26
  264. package/esm2020/textures/lib/video-texture/video-texture.mjs +0 -26
  265. package/fesm2015/angular-three-attributes.mjs +0 -475
  266. package/fesm2015/angular-three-attributes.mjs.map +0 -1
  267. package/fesm2015/angular-three-audios.mjs +0 -179
  268. package/fesm2015/angular-three-audios.mjs.map +0 -1
  269. package/fesm2015/angular-three-cameras.mjs +0 -236
  270. package/fesm2015/angular-three-cameras.mjs.map +0 -1
  271. package/fesm2015/angular-three-geometries.mjs +0 -488
  272. package/fesm2015/angular-three-geometries.mjs.map +0 -1
  273. package/fesm2015/angular-three-helpers.mjs +0 -378
  274. package/fesm2015/angular-three-helpers.mjs.map +0 -1
  275. package/fesm2015/angular-three-lights.mjs +0 -297
  276. package/fesm2015/angular-three-lights.mjs.map +0 -1
  277. package/fesm2015/angular-three-materials.mjs +0 -1415
  278. package/fesm2015/angular-three-materials.mjs.map +0 -1
  279. package/fesm2015/angular-three-objects.mjs +0 -381
  280. package/fesm2015/angular-three-objects.mjs.map +0 -1
  281. package/fesm2015/angular-three-primitives.mjs +0 -120
  282. package/fesm2015/angular-three-primitives.mjs.map +0 -1
  283. package/fesm2015/angular-three-stats.mjs +0 -62
  284. package/fesm2015/angular-three-stats.mjs.map +0 -1
  285. package/fesm2015/angular-three-textures.mjs +0 -228
  286. package/fesm2015/angular-three-textures.mjs.map +0 -1
  287. package/fesm2020/angular-three-attributes.mjs +0 -475
  288. package/fesm2020/angular-three-attributes.mjs.map +0 -1
  289. package/fesm2020/angular-three-audios.mjs +0 -179
  290. package/fesm2020/angular-three-audios.mjs.map +0 -1
  291. package/fesm2020/angular-three-cameras.mjs +0 -236
  292. package/fesm2020/angular-three-cameras.mjs.map +0 -1
  293. package/fesm2020/angular-three-geometries.mjs +0 -488
  294. package/fesm2020/angular-three-geometries.mjs.map +0 -1
  295. package/fesm2020/angular-three-helpers.mjs +0 -378
  296. package/fesm2020/angular-three-helpers.mjs.map +0 -1
  297. package/fesm2020/angular-three-lights.mjs +0 -297
  298. package/fesm2020/angular-three-lights.mjs.map +0 -1
  299. package/fesm2020/angular-three-materials.mjs +0 -1415
  300. package/fesm2020/angular-three-materials.mjs.map +0 -1
  301. package/fesm2020/angular-three-objects.mjs +0 -381
  302. package/fesm2020/angular-three-objects.mjs.map +0 -1
  303. package/fesm2020/angular-three-primitives.mjs +0 -120
  304. package/fesm2020/angular-three-primitives.mjs.map +0 -1
  305. package/fesm2020/angular-three-stats.mjs +0 -62
  306. package/fesm2020/angular-three-stats.mjs.map +0 -1
  307. package/fesm2020/angular-three-textures.mjs +0 -228
  308. package/fesm2020/angular-three-textures.mjs.map +0 -1
  309. package/geometries/README.md +0 -3
  310. package/geometries/index.d.ts +0 -23
  311. package/geometries/lib/box-geometry/box-geometry.d.ts +0 -8
  312. package/geometries/lib/buffer-geometry/buffer-geometry.d.ts +0 -8
  313. package/geometries/lib/capsule-geometry/capsule-geometry.d.ts +0 -8
  314. package/geometries/lib/circle-geometry/circle-geometry.d.ts +0 -8
  315. package/geometries/lib/common.d.ts +0 -1
  316. package/geometries/lib/cone-geometry/cone-geometry.d.ts +0 -8
  317. package/geometries/lib/cylinder-geometry/cylinder-geometry.d.ts +0 -8
  318. package/geometries/lib/dodecahedron-geometry/dodecahedron-geometry.d.ts +0 -8
  319. package/geometries/lib/edges-geometry/edges-geometry.d.ts +0 -8
  320. package/geometries/lib/extrude-geometry/extrude-geometry.d.ts +0 -8
  321. package/geometries/lib/icosahedron-geometry/icosahedron-geometry.d.ts +0 -8
  322. package/geometries/lib/instanced-buffer-geometry/instanced-buffer-geometry.d.ts +0 -8
  323. package/geometries/lib/lathe-geometry/lathe-geometry.d.ts +0 -8
  324. package/geometries/lib/octahedron-geometry/octahedron-geometry.d.ts +0 -8
  325. package/geometries/lib/plane-geometry/plane-geometry.d.ts +0 -8
  326. package/geometries/lib/polyhedron-geometry/polyhedron-geometry.d.ts +0 -8
  327. package/geometries/lib/ring-geometry/ring-geometry.d.ts +0 -8
  328. package/geometries/lib/shape-geometry/shape-geometry.d.ts +0 -8
  329. package/geometries/lib/sphere-geometry/sphere-geometry.d.ts +0 -8
  330. package/geometries/lib/tetrahedron-geometry/tetrahedron-geometry.d.ts +0 -8
  331. package/geometries/lib/torus-geometry/torus-geometry.d.ts +0 -8
  332. package/geometries/lib/torus-knot-geometry/torus-knot-geometry.d.ts +0 -8
  333. package/geometries/lib/tube-geometry/tube-geometry.d.ts +0 -8
  334. package/geometries/lib/wireframe-geometry/wireframe-geometry.d.ts +0 -8
  335. package/helpers/README.md +0 -3
  336. package/helpers/index.d.ts +0 -13
  337. package/helpers/lib/arrow-helper/arrow-helper.d.ts +0 -8
  338. package/helpers/lib/axes-helper/axes-helper.d.ts +0 -8
  339. package/helpers/lib/box-helper/box-helper.d.ts +0 -8
  340. package/helpers/lib/box3-helper/box3-helper.d.ts +0 -8
  341. package/helpers/lib/camera-helper/camera-helper.d.ts +0 -8
  342. package/helpers/lib/common.d.ts +0 -1
  343. package/helpers/lib/directional-light-helper/directional-light-helper.d.ts +0 -8
  344. package/helpers/lib/grid-helper/grid-helper.d.ts +0 -8
  345. package/helpers/lib/hemisphere-light-helper/hemisphere-light-helper.d.ts +0 -8
  346. package/helpers/lib/plane-helper/plane-helper.d.ts +0 -8
  347. package/helpers/lib/point-light-helper/point-light-helper.d.ts +0 -8
  348. package/helpers/lib/polar-grid-helper/polar-grid-helper.d.ts +0 -8
  349. package/helpers/lib/skeleton-helper/skeleton-helper.d.ts +0 -8
  350. package/helpers/lib/spot-light-helper/spot-light-helper.d.ts +0 -8
  351. package/lib/di/resize.d.ts +0 -12
  352. package/lib/di/window.d.ts +0 -1
  353. package/lib/directives/cursor.d.ts +0 -7
  354. package/lib/instance.d.ts +0 -81
  355. package/lib/pipes/math.d.ts +0 -7
  356. package/lib/pipes/pi.d.ts +0 -7
  357. package/lib/pipes/radian.d.ts +0 -7
  358. package/lib/pipes/side.d.ts +0 -8
  359. package/lib/ref.d.ts +0 -5
  360. package/lib/services/loader.d.ts +0 -11
  361. package/lib/services/resize.d.ts +0 -19
  362. package/lib/stores/component-store.d.ts +0 -69
  363. package/lib/utils/build-graph.d.ts +0 -3
  364. package/lib/utils/camera.d.ts +0 -4
  365. package/lib/utils/capitalize.d.ts +0 -1
  366. package/lib/utils/check-update.d.ts +0 -2
  367. package/lib/utils/events.d.ts +0 -6
  368. package/lib/utils/get-instance-local-state.d.ts +0 -2
  369. package/lib/utils/inject.d.ts +0 -9
  370. package/lib/utils/mutate.d.ts +0 -2
  371. package/lib/utils/proxy.d.ts +0 -7
  372. package/lib/utils/renderer.d.ts +0 -3
  373. package/lights/README.md +0 -3
  374. package/lights/index.d.ts +0 -9
  375. package/lights/lib/ambient-light/ambient-light.d.ts +0 -39
  376. package/lights/lib/ambient-light-probe/ambient-light-probe.d.ts +0 -40
  377. package/lights/lib/common.d.ts +0 -3
  378. package/lights/lib/directional-light/directional-light.d.ts +0 -40
  379. package/lights/lib/hemisphere-light/hemisphere-light.d.ts +0 -41
  380. package/lights/lib/hemisphere-light-probe/hemisphere-light-probe.d.ts +0 -42
  381. package/lights/lib/light-probe/light-probe.d.ts +0 -40
  382. package/lights/lib/point-light/point-light.d.ts +0 -42
  383. package/lights/lib/rect-area-light/rect-area-light.d.ts +0 -42
  384. package/lights/lib/spot-light/spot-light.d.ts +0 -45
  385. package/materials/README.md +0 -3
  386. package/materials/index.d.ts +0 -17
  387. package/materials/lib/common.d.ts +0 -1
  388. package/materials/lib/line-basic-material/line-basic-material.d.ts +0 -55
  389. package/materials/lib/line-dashed-material/line-dashed-material.d.ts +0 -58
  390. package/materials/lib/mesh-basic-material/mesh-basic-material.d.ts +0 -67
  391. package/materials/lib/mesh-depth-material/mesh-depth-material.d.ts +0 -58
  392. package/materials/lib/mesh-distance-material/mesh-distance-material.d.ts +0 -58
  393. package/materials/lib/mesh-lambert-material/mesh-lambert-material.d.ts +0 -78
  394. package/materials/lib/mesh-matcap-material/mesh-matcap-material.d.ts +0 -64
  395. package/materials/lib/mesh-normal-material/mesh-normal-material.d.ts +0 -61
  396. package/materials/lib/mesh-phong-material/mesh-phong-material.d.ts +0 -81
  397. package/materials/lib/mesh-physical-material/mesh-physical-material.d.ts +0 -97
  398. package/materials/lib/mesh-standard-material/mesh-standard-material.d.ts +0 -78
  399. package/materials/lib/mesh-toon-material/mesh-toon-material.d.ts +0 -74
  400. package/materials/lib/points-material/points-material.d.ts +0 -56
  401. package/materials/lib/raw-shader-material/raw-shader-material.d.ts +0 -68
  402. package/materials/lib/shader-material/shader-material.d.ts +0 -68
  403. package/materials/lib/shadow-material/shadow-material.d.ts +0 -52
  404. package/materials/lib/sprite-material/sprite-material.d.ts +0 -56
  405. package/objects/README.md +0 -3
  406. package/objects/index.d.ts +0 -12
  407. package/objects/lib/bone/bone.d.ts +0 -35
  408. package/objects/lib/common.d.ts +0 -3
  409. package/objects/lib/group/group.d.ts +0 -35
  410. package/objects/lib/instanced-mesh/instanced-mesh.d.ts +0 -44
  411. package/objects/lib/line/line.d.ts +0 -41
  412. package/objects/lib/line-loop/line-loop.d.ts +0 -41
  413. package/objects/lib/line-segments/line-segments.d.ts +0 -41
  414. package/objects/lib/lod/lod.d.ts +0 -40
  415. package/objects/lib/mesh/mesh.d.ts +0 -41
  416. package/objects/lib/points/points.d.ts +0 -41
  417. package/objects/lib/skeleton/skeleton.d.ts +0 -16
  418. package/objects/lib/skinned-mesh/skinned-mesh.d.ts +0 -45
  419. package/objects/lib/sprite/sprite.d.ts +0 -38
  420. package/primitives/README.md +0 -3
  421. package/primitives/index.d.ts +0 -2
  422. package/primitives/lib/common.d.ts +0 -3
  423. package/primitives/lib/object-primitive/object-primitive.d.ts +0 -35
  424. package/primitives/lib/primitive/primitive.d.ts +0 -10
  425. package/schematics/README.md +0 -11
  426. package/stats/README.md +0 -3
  427. package/stats/index.d.ts +0 -1
  428. package/stats/lib/stats/stats.d.ts +0 -16
  429. package/textures/README.md +0 -3
  430. package/textures/index.d.ts +0 -10
  431. package/textures/lib/canvas-texture/canvas-texture.d.ts +0 -8
  432. package/textures/lib/common.d.ts +0 -1
  433. package/textures/lib/compressed-array-texture/compressed-array-texture.d.ts +0 -8
  434. package/textures/lib/compressed-texture/compressed-texture.d.ts +0 -8
  435. package/textures/lib/cube-texture/cube-texture.d.ts +0 -8
  436. package/textures/lib/data-array-texture/data-array-texture.d.ts +0 -8
  437. package/textures/lib/data-texture/data-texture.d.ts +0 -8
  438. package/textures/lib/data3-dtexture/data3-dtexture.d.ts +0 -8
  439. package/textures/lib/depth-texture/depth-texture.d.ts +0 -8
  440. package/textures/lib/framebuffer-texture/framebuffer-texture.d.ts +0 -8
  441. package/textures/lib/video-texture/video-texture.d.ts +0 -8
@@ -1,127 +0,0 @@
1
- import { DOCUMENT } from '@angular/common';
2
- import { ElementRef, inject, Injectable, NgZone } from '@angular/core';
3
- import { debounceTime, fromEvent, Observable, pipe, ReplaySubject, share, Subject, takeUntil, } from 'rxjs';
4
- import { injectResizeObserverSupport, injectResizeOptions } from '../di/resize';
5
- import { injectWindow } from '../di/window';
6
- import * as i0 from "@angular/core";
7
- export class NgtResize extends Observable {
8
- constructor() {
9
- const { nativeElement } = inject(ElementRef);
10
- const zone = inject(NgZone);
11
- const document = inject(DOCUMENT);
12
- const window = injectWindow();
13
- const isSupport = injectResizeObserverSupport();
14
- const { box, offsetSize, scroll, debounce } = injectResizeOptions();
15
- let observer;
16
- let lastBounds;
17
- let lastEntries = [];
18
- const torndown$ = new Subject();
19
- const scrollContainers = findScrollContainers(nativeElement, document.body);
20
- // set actual debounce values early, so effects know if they should react accordingly
21
- const scrollDebounce = debounce ? (typeof debounce === 'number' ? debounce : debounce.scroll) : null;
22
- const resizeDebounce = debounce ? (typeof debounce === 'number' ? debounce : debounce.resize) : null;
23
- const debounceAndDestroy = (debounce) => {
24
- return pipe(debounceTime(debounce ?? 0), takeUntil(torndown$));
25
- };
26
- super((subscriber) => {
27
- if (!isSupport) {
28
- subscriber.error('ResizeObserver is not supported in your browser. Please use a polyfill');
29
- return;
30
- }
31
- zone.runOutsideAngular(() => {
32
- const callback = (entries) => {
33
- lastEntries = entries;
34
- const { left, top, width, height, bottom, right, x, y } = nativeElement.getBoundingClientRect();
35
- const size = {
36
- left,
37
- top,
38
- width,
39
- height,
40
- bottom,
41
- right,
42
- x,
43
- y,
44
- };
45
- if (nativeElement instanceof HTMLElement && offsetSize) {
46
- size.height = nativeElement.offsetHeight;
47
- size.width = nativeElement.offsetWidth;
48
- }
49
- Object.freeze(size);
50
- subscriber.next({
51
- entries,
52
- dpr: window.devicePixelRatio,
53
- ...size,
54
- });
55
- if (!areBoundsEqual(lastBounds || {}, size)) {
56
- lastBounds = size;
57
- }
58
- };
59
- const boundEntriesCallback = () => {
60
- callback(lastEntries);
61
- };
62
- observer = new ResizeObserver(callback);
63
- observer.observe(nativeElement, { box });
64
- if (scroll) {
65
- if (scrollContainers) {
66
- scrollContainers.forEach((scrollContainer) => {
67
- fromEvent(scrollContainer, 'scroll', {
68
- capture: true,
69
- passive: true,
70
- })
71
- .pipe(debounceAndDestroy(scrollDebounce))
72
- .subscribe(boundEntriesCallback);
73
- });
74
- }
75
- fromEvent(window, 'scroll', {
76
- capture: true,
77
- passive: true,
78
- })
79
- .pipe(debounceAndDestroy(scrollDebounce))
80
- .subscribe(boundEntriesCallback);
81
- }
82
- fromEvent(window, 'resize').pipe(debounceAndDestroy(resizeDebounce)).subscribe(boundEntriesCallback);
83
- });
84
- return () => {
85
- if (observer) {
86
- observer.unobserve(nativeElement);
87
- observer.disconnect();
88
- }
89
- torndown$.next();
90
- torndown$.complete();
91
- };
92
- });
93
- return this.pipe(debounceTime(scrollDebounce || 0), share({
94
- connector: () => new ReplaySubject(1),
95
- resetOnRefCountZero: true,
96
- resetOnComplete: true,
97
- }));
98
- }
99
- }
100
- NgtResize.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgtResize, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
101
- NgtResize.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgtResize });
102
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgtResize, decorators: [{
103
- type: Injectable
104
- }], ctorParameters: function () { return []; } });
105
- // Returns a list of scroll offsets
106
- function findScrollContainers(element, documentBody) {
107
- const result = [];
108
- if (!element || element === documentBody)
109
- return result;
110
- const { overflow, overflowX, overflowY } = window.getComputedStyle(element);
111
- if ([overflow, overflowX, overflowY].some((prop) => prop === 'auto' || prop === 'scroll'))
112
- result.push(element);
113
- return [...result, ...findScrollContainers(element.parentElement, documentBody)];
114
- }
115
- // Checks if element boundaries are equal
116
- const keys = [
117
- 'x',
118
- 'y',
119
- 'top',
120
- 'bottom',
121
- 'left',
122
- 'right',
123
- 'width',
124
- 'height',
125
- ];
126
- const areBoundsEqual = (a, b) => keys.every((key) => a[key] === b[key]);
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci10aHJlZS9zcmMvbGliL3NlcnZpY2VzL3Jlc2l6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQ0gsWUFBWSxFQUNaLFNBQVMsRUFFVCxVQUFVLEVBQ1YsSUFBSSxFQUNKLGFBQWEsRUFDYixLQUFLLEVBQ0wsT0FBTyxFQUNQLFNBQVMsR0FDWixNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNoRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQWdCNUMsTUFBTSxPQUFPLFNBQVUsU0FBUSxVQUEyQjtJQUN0RDtRQUNJLE1BQU0sRUFBRSxhQUFhLEVBQUUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUE0QixDQUFDO1FBQ3hFLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEMsTUFBTSxNQUFNLEdBQUcsWUFBWSxFQUFFLENBQUM7UUFDOUIsTUFBTSxTQUFTLEdBQUcsMkJBQTJCLEVBQUUsQ0FBQztRQUNoRCxNQUFNLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsbUJBQW1CLEVBQUUsQ0FBQztRQUVwRSxJQUFJLFFBQXdCLENBQUM7UUFDN0IsSUFBSSxVQUFvRCxDQUFDO1FBQ3pELElBQUksV0FBVyxHQUEwQixFQUFFLENBQUM7UUFFNUMsTUFBTSxTQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUN0QyxNQUFNLGdCQUFnQixHQUE4QixvQkFBb0IsQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXZHLHFGQUFxRjtRQUNyRixNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxRQUFRLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBRXJHLE1BQU0sY0FBYyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFFckcsTUFBTSxrQkFBa0IsR0FBRyxDQUFJLFFBQXVCLEVBQStCLEVBQUU7WUFDbkYsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUNuRSxDQUFDLENBQUM7UUFFRixLQUFLLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUNqQixJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNaLFVBQVUsQ0FBQyxLQUFLLENBQUMsd0VBQXdFLENBQUMsQ0FBQztnQkFDM0YsT0FBTzthQUNWO1lBRUQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtnQkFDeEIsTUFBTSxRQUFRLEdBQUcsQ0FBQyxPQUE4QixFQUFFLEVBQUU7b0JBQ2hELFdBQVcsR0FBRyxPQUFPLENBQUM7b0JBQ3RCLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUM7b0JBRWhHLE1BQU0sSUFBSSxHQUFHO3dCQUNULElBQUk7d0JBQ0osR0FBRzt3QkFDSCxLQUFLO3dCQUNMLE1BQU07d0JBQ04sTUFBTTt3QkFDTixLQUFLO3dCQUNMLENBQUM7d0JBQ0QsQ0FBQztxQkFDSixDQUFDO29CQUVGLElBQUksYUFBYSxZQUFZLFdBQVcsSUFBSSxVQUFVLEVBQUU7d0JBQ3BELElBQUksQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFDLFlBQVksQ0FBQzt3QkFDekMsSUFBSSxDQUFDLEtBQUssR0FBRyxhQUFhLENBQUMsV0FBVyxDQUFDO3FCQUMxQztvQkFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNwQixVQUFVLENBQUMsSUFBSSxDQUFDO3dCQUNaLE9BQU87d0JBQ1AsR0FBRyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0I7d0JBQzVCLEdBQUcsSUFBSTtxQkFDVixDQUFDLENBQUM7b0JBQ0gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLElBQUksRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO3dCQUN6QyxVQUFVLEdBQUcsSUFBSSxDQUFDO3FCQUNyQjtnQkFDTCxDQUFDLENBQUM7Z0JBRUYsTUFBTSxvQkFBb0IsR0FBRyxHQUFHLEVBQUU7b0JBQzlCLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDMUIsQ0FBQyxDQUFDO2dCQUVGLFFBQVEsR0FBRyxJQUFJLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDeEMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO2dCQUN6QyxJQUFJLE1BQU0sRUFBRTtvQkFDUixJQUFJLGdCQUFnQixFQUFFO3dCQUNsQixnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxlQUFlLEVBQUUsRUFBRTs0QkFDekMsU0FBUyxDQUFDLGVBQThCLEVBQUUsUUFBUSxFQUFFO2dDQUNoRCxPQUFPLEVBQUUsSUFBSTtnQ0FDYixPQUFPLEVBQUUsSUFBSTs2QkFDaEIsQ0FBQztpQ0FDRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLENBQUM7aUNBQ3hDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO3dCQUN6QyxDQUFDLENBQUMsQ0FBQztxQkFDTjtvQkFFRCxTQUFTLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRTt3QkFDeEIsT0FBTyxFQUFFLElBQUk7d0JBQ2IsT0FBTyxFQUFFLElBQUk7cUJBQ2hCLENBQUM7eUJBQ0csSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDO3lCQUN4QyxTQUFTLENBQUMsb0JBQW9CLENBQUMsQ0FBQztpQkFDeEM7Z0JBRUQsU0FBUyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUN6RyxDQUFDLENBQUMsQ0FBQztZQUVILE9BQU8sR0FBRyxFQUFFO2dCQUNSLElBQUksUUFBUSxFQUFFO29CQUNWLFFBQVEsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUM7b0JBQ2xDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztpQkFDekI7Z0JBQ0QsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNqQixTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDekIsQ0FBQyxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQ1osWUFBWSxDQUFDLGNBQWMsSUFBSSxDQUFDLENBQUMsRUFDakMsS0FBSyxDQUFDO1lBQ0YsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksYUFBYSxDQUFDLENBQUMsQ0FBQztZQUNyQyxtQkFBbUIsRUFBRSxJQUFJO1lBQ3pCLGVBQWUsRUFBRSxJQUFJO1NBQ3hCLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQzs7c0dBOUdRLFNBQVM7MEdBQVQsU0FBUzsyRkFBVCxTQUFTO2tCQURyQixVQUFVOztBQWtIWCxtQ0FBbUM7QUFDbkMsU0FBUyxvQkFBb0IsQ0FBQyxPQUFnQyxFQUFFLFlBQXlCO0lBQ3JGLE1BQU0sTUFBTSxHQUF1QixFQUFFLENBQUM7SUFDdEMsSUFBSSxDQUFDLE9BQU8sSUFBSSxPQUFPLEtBQUssWUFBWTtRQUFFLE9BQU8sTUFBTSxDQUFDO0lBQ3hELE1BQU0sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFzQixDQUFDLENBQUM7SUFDM0YsSUFBSSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxRQUFRLENBQUM7UUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hILE9BQU8sQ0FBQyxHQUFHLE1BQU0sRUFBRSxHQUFHLG9CQUFvQixDQUFFLE9BQXVCLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUM7QUFDdEcsQ0FBQztBQUVELHlDQUF5QztBQUN6QyxNQUFNLElBQUksR0FBdUQ7SUFDN0QsR0FBRztJQUNILEdBQUc7SUFDSCxLQUFLO0lBQ0wsUUFBUTtJQUNSLE1BQU07SUFDTixPQUFPO0lBQ1AsT0FBTztJQUNQLFFBQVE7Q0FDWCxDQUFDO0FBQ0YsTUFBTSxjQUFjLEdBQUcsQ0FBQyxDQUEyQyxFQUFFLENBQTJDLEVBQUUsRUFBRSxDQUNoSCxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBFbGVtZW50UmVmLCBpbmplY3QsIEluamVjdGFibGUsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBkZWJvdW5jZVRpbWUsXG4gICAgZnJvbUV2ZW50LFxuICAgIE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbixcbiAgICBPYnNlcnZhYmxlLFxuICAgIHBpcGUsXG4gICAgUmVwbGF5U3ViamVjdCxcbiAgICBzaGFyZSxcbiAgICBTdWJqZWN0LFxuICAgIHRha2VVbnRpbCxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBpbmplY3RSZXNpemVPYnNlcnZlclN1cHBvcnQsIGluamVjdFJlc2l6ZU9wdGlvbnMgfSBmcm9tICcuLi9kaS9yZXNpemUnO1xuaW1wb3J0IHsgaW5qZWN0V2luZG93IH0gZnJvbSAnLi4vZGkvd2luZG93JztcblxuZXhwb3J0IGludGVyZmFjZSBOZ3RSZXNpemVSZXN1bHQge1xuICAgIHJlYWRvbmx5IGVudHJpZXM6IFJlYWRvbmx5QXJyYXk8UmVzaXplT2JzZXJ2ZXJFbnRyeT47XG4gICAgcmVhZG9ubHkgeDogbnVtYmVyO1xuICAgIHJlYWRvbmx5IHk6IG51bWJlcjtcbiAgICByZWFkb25seSB3aWR0aDogbnVtYmVyO1xuICAgIHJlYWRvbmx5IGhlaWdodDogbnVtYmVyO1xuICAgIHJlYWRvbmx5IHRvcDogbnVtYmVyO1xuICAgIHJlYWRvbmx5IHJpZ2h0OiBudW1iZXI7XG4gICAgcmVhZG9ubHkgYm90dG9tOiBudW1iZXI7XG4gICAgcmVhZG9ubHkgbGVmdDogbnVtYmVyO1xuICAgIHJlYWRvbmx5IGRwcjogbnVtYmVyO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTmd0UmVzaXplIGV4dGVuZHMgT2JzZXJ2YWJsZTxOZ3RSZXNpemVSZXN1bHQ+IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgY29uc3QgeyBuYXRpdmVFbGVtZW50IH0gPSBpbmplY3QoRWxlbWVudFJlZikgYXMgRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gICAgICAgIGNvbnN0IHpvbmUgPSBpbmplY3QoTmdab25lKTtcbiAgICAgICAgY29uc3QgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuICAgICAgICBjb25zdCB3aW5kb3cgPSBpbmplY3RXaW5kb3coKTtcbiAgICAgICAgY29uc3QgaXNTdXBwb3J0ID0gaW5qZWN0UmVzaXplT2JzZXJ2ZXJTdXBwb3J0KCk7XG4gICAgICAgIGNvbnN0IHsgYm94LCBvZmZzZXRTaXplLCBzY3JvbGwsIGRlYm91bmNlIH0gPSBpbmplY3RSZXNpemVPcHRpb25zKCk7XG5cbiAgICAgICAgbGV0IG9ic2VydmVyOiBSZXNpemVPYnNlcnZlcjtcbiAgICAgICAgbGV0IGxhc3RCb3VuZHM6IE9taXQ8Tmd0UmVzaXplUmVzdWx0LCAnZW50cmllcycgfCAnZHByJz47XG4gICAgICAgIGxldCBsYXN0RW50cmllczogUmVzaXplT2JzZXJ2ZXJFbnRyeVtdID0gW107XG5cbiAgICAgICAgY29uc3QgdG9ybmRvd24kID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICAgICAgY29uc3Qgc2Nyb2xsQ29udGFpbmVyczogSFRNTE9yU1ZHRWxlbWVudFtdIHwgbnVsbCA9IGZpbmRTY3JvbGxDb250YWluZXJzKG5hdGl2ZUVsZW1lbnQsIGRvY3VtZW50LmJvZHkpO1xuXG4gICAgICAgIC8vIHNldCBhY3R1YWwgZGVib3VuY2UgdmFsdWVzIGVhcmx5LCBzbyBlZmZlY3RzIGtub3cgaWYgdGhleSBzaG91bGQgcmVhY3QgYWNjb3JkaW5nbHlcbiAgICAgICAgY29uc3Qgc2Nyb2xsRGVib3VuY2UgPSBkZWJvdW5jZSA/ICh0eXBlb2YgZGVib3VuY2UgPT09ICdudW1iZXInID8gZGVib3VuY2UgOiBkZWJvdW5jZS5zY3JvbGwpIDogbnVsbDtcblxuICAgICAgICBjb25zdCByZXNpemVEZWJvdW5jZSA9IGRlYm91bmNlID8gKHR5cGVvZiBkZWJvdW5jZSA9PT0gJ251bWJlcicgPyBkZWJvdW5jZSA6IGRlYm91bmNlLnJlc2l6ZSkgOiBudWxsO1xuXG4gICAgICAgIGNvbnN0IGRlYm91bmNlQW5kRGVzdHJveSA9IDxUPihkZWJvdW5jZTogbnVtYmVyIHwgbnVsbCk6IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbjxUPiA9PiB7XG4gICAgICAgICAgICByZXR1cm4gcGlwZShkZWJvdW5jZVRpbWUoZGVib3VuY2UgPz8gMCksIHRha2VVbnRpbCh0b3JuZG93biQpKTtcbiAgICAgICAgfTtcblxuICAgICAgICBzdXBlcigoc3Vic2NyaWJlcikgPT4ge1xuICAgICAgICAgICAgaWYgKCFpc1N1cHBvcnQpIHtcbiAgICAgICAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKCdSZXNpemVPYnNlcnZlciBpcyBub3Qgc3VwcG9ydGVkIGluIHlvdXIgYnJvd3Nlci4gUGxlYXNlIHVzZSBhIHBvbHlmaWxsJyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB6b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjYWxsYmFjayA9IChlbnRyaWVzOiBSZXNpemVPYnNlcnZlckVudHJ5W10pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGFzdEVudHJpZXMgPSBlbnRyaWVzO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGxlZnQsIHRvcCwgd2lkdGgsIGhlaWdodCwgYm90dG9tLCByaWdodCwgeCwgeSB9ID0gbmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBzaXplID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0LFxuICAgICAgICAgICAgICAgICAgICAgICAgYm90dG9tLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQsXG4gICAgICAgICAgICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICAgICAgICAgICAgeSxcbiAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAobmF0aXZlRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ICYmIG9mZnNldFNpemUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemUuaGVpZ2h0ID0gbmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplLndpZHRoID0gbmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5mcmVlemUoc2l6ZSk7XG4gICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbnRyaWVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgZHByOiB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyxcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnNpemUsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWFyZUJvdW5kc0VxdWFsKGxhc3RCb3VuZHMgfHwge30sIHNpemUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYXN0Qm91bmRzID0gc2l6ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICBjb25zdCBib3VuZEVudHJpZXNDYWxsYmFjayA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2sobGFzdEVudHJpZXMpO1xuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICBvYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcihjYWxsYmFjayk7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShuYXRpdmVFbGVtZW50LCB7IGJveCB9KTtcbiAgICAgICAgICAgICAgICBpZiAoc2Nyb2xsKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzY3JvbGxDb250YWluZXJzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxDb250YWluZXJzLmZvckVhY2goKHNjcm9sbENvbnRhaW5lcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb21FdmVudChzY3JvbGxDb250YWluZXIgYXMgSFRNTEVsZW1lbnQsICdzY3JvbGwnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhcHR1cmU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnBpcGUoZGVib3VuY2VBbmREZXN0cm95KHNjcm9sbERlYm91bmNlKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZShib3VuZEVudHJpZXNDYWxsYmFjayk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGZyb21FdmVudCh3aW5kb3csICdzY3JvbGwnLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXB0dXJlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFzc2l2ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5waXBlKGRlYm91bmNlQW5kRGVzdHJveShzY3JvbGxEZWJvdW5jZSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKGJvdW5kRW50cmllc0NhbGxiYWNrKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBmcm9tRXZlbnQod2luZG93LCAncmVzaXplJykucGlwZShkZWJvdW5jZUFuZERlc3Ryb3kocmVzaXplRGVib3VuY2UpKS5zdWJzY3JpYmUoYm91bmRFbnRyaWVzQ2FsbGJhY2spO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKG9ic2VydmVyKSB7XG4gICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLnVub2JzZXJ2ZShuYXRpdmVFbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0b3JuZG93biQubmV4dCgpO1xuICAgICAgICAgICAgICAgIHRvcm5kb3duJC5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMucGlwZShcbiAgICAgICAgICAgIGRlYm91bmNlVGltZShzY3JvbGxEZWJvdW5jZSB8fCAwKSxcbiAgICAgICAgICAgIHNoYXJlKHtcbiAgICAgICAgICAgICAgICBjb25uZWN0b3I6ICgpID0+IG5ldyBSZXBsYXlTdWJqZWN0KDEpLFxuICAgICAgICAgICAgICAgIHJlc2V0T25SZWZDb3VudFplcm86IHRydWUsXG4gICAgICAgICAgICAgICAgcmVzZXRPbkNvbXBsZXRlOiB0cnVlLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG59XG5cbi8vIFJldHVybnMgYSBsaXN0IG9mIHNjcm9sbCBvZmZzZXRzXG5mdW5jdGlvbiBmaW5kU2Nyb2xsQ29udGFpbmVycyhlbGVtZW50OiBIVE1MT3JTVkdFbGVtZW50IHwgbnVsbCwgZG9jdW1lbnRCb2R5OiBIVE1MRWxlbWVudCk6IEhUTUxPclNWR0VsZW1lbnRbXSB7XG4gICAgY29uc3QgcmVzdWx0OiBIVE1MT3JTVkdFbGVtZW50W10gPSBbXTtcbiAgICBpZiAoIWVsZW1lbnQgfHwgZWxlbWVudCA9PT0gZG9jdW1lbnRCb2R5KSByZXR1cm4gcmVzdWx0O1xuICAgIGNvbnN0IHsgb3ZlcmZsb3csIG92ZXJmbG93WCwgb3ZlcmZsb3dZIH0gPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50IGFzIEhUTUxFbGVtZW50KTtcbiAgICBpZiAoW292ZXJmbG93LCBvdmVyZmxvd1gsIG92ZXJmbG93WV0uc29tZSgocHJvcCkgPT4gcHJvcCA9PT0gJ2F1dG8nIHx8IHByb3AgPT09ICdzY3JvbGwnKSkgcmVzdWx0LnB1c2goZWxlbWVudCk7XG4gICAgcmV0dXJuIFsuLi5yZXN1bHQsIC4uLmZpbmRTY3JvbGxDb250YWluZXJzKChlbGVtZW50IGFzIEhUTUxFbGVtZW50KS5wYXJlbnRFbGVtZW50LCBkb2N1bWVudEJvZHkpXTtcbn1cblxuLy8gQ2hlY2tzIGlmIGVsZW1lbnQgYm91bmRhcmllcyBhcmUgZXF1YWxcbmNvbnN0IGtleXM6IChrZXlvZiBPbWl0PE5ndFJlc2l6ZVJlc3VsdCwgJ2VudHJpZXMnIHwgJ2Rwcic+KVtdID0gW1xuICAgICd4JyxcbiAgICAneScsXG4gICAgJ3RvcCcsXG4gICAgJ2JvdHRvbScsXG4gICAgJ2xlZnQnLFxuICAgICdyaWdodCcsXG4gICAgJ3dpZHRoJyxcbiAgICAnaGVpZ2h0Jyxcbl07XG5jb25zdCBhcmVCb3VuZHNFcXVhbCA9IChhOiBPbWl0PE5ndFJlc2l6ZVJlc3VsdCwgJ2VudHJpZXMnIHwgJ2Rwcic+LCBiOiBPbWl0PE5ndFJlc2l6ZVJlc3VsdCwgJ2VudHJpZXMnIHwgJ2Rwcic+KSA9PlxuICAgIGtleXMuZXZlcnkoKGtleSkgPT4gYVtrZXldID09PSBiW2tleV0pO1xuIl19
@@ -1,137 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { ComponentStore } from '@ngrx/component-store';
3
- import { combineLatest, filter, isObservable, noop, tap, } from 'rxjs';
4
- import { is } from '../utils/is';
5
- import * as i0 from "@angular/core";
6
- /**
7
- * a default Selector that consumers can quickly use for their selectors projector
8
- */
9
- export const defaultProjector = () => ({});
10
- /**
11
- * A custom operator that skips the first undefined value but allows subsequent undefined values.
12
- * NgRxComponentStore#select always emits the first value regardless of undefined or not after initialize
13
- */
14
- export const skipFirstUndefined = () => filter((value, index) => index > 0 || value !== undefined);
15
- /**
16
- * An extended `tap` operator that accepts an `effectFn` which:
17
- * - runs on every `next` notification from `source$`
18
- * - can optionally return a `cleanUp` function that
19
- * invokes from the 2nd `next` notification onward and on `unsubscribe` (destroyed)
20
- *
21
- *
22
- * @example
23
- * ```typescript
24
- * source$.pipe(
25
- * tapEffect((sourceValue) = {
26
- * const cb = () => {
27
- * doStuff(sourceValue);
28
- * };
29
- * addListener('event', cb);
30
- *
31
- * return () => {
32
- * removeListener('event', cb);
33
- * }
34
- * })
35
- * )
36
- * ```
37
- */
38
- export function tapEffect(effectFn) {
39
- let cleanupFn = noop;
40
- let firstRun = false;
41
- let prev = undefined;
42
- const teardown = (error) => {
43
- return () => {
44
- if (cleanupFn) {
45
- cleanupFn({ prev, complete: true, error });
46
- }
47
- };
48
- };
49
- return tap({
50
- next: (value) => {
51
- if (cleanupFn && firstRun) {
52
- cleanupFn({ prev, complete: false, error: false });
53
- }
54
- const cleanUpOrVoid = effectFn(value);
55
- if (cleanUpOrVoid) {
56
- cleanupFn = cleanUpOrVoid;
57
- }
58
- prev = value;
59
- if (!firstRun) {
60
- firstRun = true;
61
- }
62
- },
63
- complete: teardown(false),
64
- unsubscribe: teardown(false),
65
- error: teardown(true),
66
- });
67
- }
68
- export class NgtComponentStore extends ComponentStore {
69
- constructor() {
70
- super({});
71
- // exposing get since THREE is imperative at its core
72
- // we need to imperatively get state sometimes for usages in Animation Loop
73
- // we also bind "this" instance, so we don't have to bind it later
74
- this.read = this.get.bind(this);
75
- this.initialize();
76
- }
77
- /**
78
- * A custom patchState that allows for:
79
- * - Partial state updates and Observable of partial state updates like patchState
80
- * - Pass a Record<string, ObservableInput> to update a specific key with an Observable.
81
- * This is similar to `RxState.connect()` API
82
- */
83
- write(partialStateOrFactory) {
84
- if (typeof partialStateOrFactory === 'function') {
85
- return this.write(partialStateOrFactory(this.read()));
86
- }
87
- const partialState = partialStateOrFactory;
88
- if (Object.keys(partialState).length === 0) {
89
- return;
90
- }
91
- if (isObservable(partialState)) {
92
- return this.patchState(partialState);
93
- }
94
- const entries = Object.entries(partialState);
95
- const hasObservable = entries.some(([_, value]) => isObservable(value) && !is.ref(value));
96
- if (!hasObservable) {
97
- return this.patchState(partialState);
98
- }
99
- const [rawValues, observableValues] = entries.reduce((result, [key, value]) => {
100
- if (isObservable(value)) {
101
- result[1][key] = value;
102
- }
103
- else {
104
- result[0][key] = value;
105
- }
106
- return result;
107
- }, [{}, {}]);
108
- if (Object.keys(rawValues).length > 0) {
109
- this.patchState(rawValues);
110
- }
111
- if (Object.keys(observableValues).length > 0) {
112
- this.patchState(combineLatest(observableValues));
113
- }
114
- }
115
- initialize() {
116
- return;
117
- }
118
- /**
119
- * A utility class method to select a state on the template as Observable
120
- * - This method always debounce the Observable
121
- */
122
- selectKey(key, skipFirst = false) {
123
- return this.select((s) => s[key], { debounce: true }).pipe(skipFirst ? skipFirstUndefined() : (s) => s);
124
- }
125
- /**
126
- * A utility class method to get a state on the template as imperative Value
127
- */
128
- readKey(key) {
129
- return this.read((s) => s[key]);
130
- }
131
- }
132
- NgtComponentStore.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgtComponentStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
133
- NgtComponentStore.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgtComponentStore });
134
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: NgtComponentStore, decorators: [{
135
- type: Injectable
136
- }], ctorParameters: function () { return []; } });
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci10aHJlZS9zcmMvbGliL3N0b3Jlcy9jb21wb25lbnQtc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUNILGFBQWEsRUFDYixNQUFNLEVBQ04sWUFBWSxFQUVaLElBQUksRUFHSixHQUFHLEdBQ04sTUFBTSxNQUFNLENBQUM7QUFFZCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sYUFBYSxDQUFDOztBQUVqQzs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7QUFFM0M7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsR0FBbUMsRUFBRSxDQUNuRSxNQUFNLENBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLEtBQUssS0FBSyxTQUFTLENBQUMsQ0FBQztBQU1sRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUNILE1BQU0sVUFBVSxTQUFTLENBQVMsUUFBMEI7SUFDeEQsSUFBSSxTQUFTLEdBQTZGLElBQUksQ0FBQztJQUMvRyxJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDckIsSUFBSSxJQUFJLEdBQXVCLFNBQVMsQ0FBQztJQUV6QyxNQUFNLFFBQVEsR0FBRyxDQUFDLEtBQWMsRUFBRSxFQUFFO1FBQ2hDLE9BQU8sR0FBRyxFQUFFO1lBQ1IsSUFBSSxTQUFTLEVBQUU7Z0JBQ1gsU0FBUyxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FB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UyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNuQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzlCO1FBRUQsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMxQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7U0FDcEQ7SUFDTCxDQUFDO0lBRVMsVUFBVTtRQUNoQixPQUFPO0lBQ1gsQ0FBQztJQUVEOzs7T0FHRztJQUNILFNBQVMsQ0FDTCxHQUFTLEVBQ1QsU0FBUyxHQUFHLEtBQUs7UUFFakIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUcsQ0FBQztJQUVEOztPQUVHO0lBQ0gsT0FBTyxDQUE2QyxHQUFTO1FBQ3pELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQzs7OEdBeEZRLGlCQUFpQjtrSEFBakIsaUJBQWlCOzJGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnRTdG9yZSB9IGZyb20gJ0BuZ3J4L2NvbXBvbmVudC1zdG9yZSc7XG5pbXBvcnQge1xuICAgIGNvbWJpbmVMYXRlc3QsXG4gICAgZmlsdGVyLFxuICAgIGlzT2JzZXJ2YWJsZSxcbiAgICBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb24sXG4gICAgbm9vcCxcbiAgICBPYnNlcnZhYmxlLFxuICAgIE9ic2VydmFibGVJbnB1dCxcbiAgICB0YXAsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHR5cGUgeyBOZ3RBbnlSZWNvcmQgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBpcyB9IGZyb20gJy4uL3V0aWxzL2lzJztcblxuLyoqXG4gKiBhIGRlZmF1bHQgU2VsZWN0b3IgdGhhdCBjb25zdW1lcnMgY2FuIHF1aWNrbHkgdXNlIGZvciB0aGVpciBzZWxlY3RvcnMgcHJvamVjdG9yXG4gKi9cbmV4cG9ydCBjb25zdCBkZWZhdWx0UHJvamVjdG9yID0gKCkgPT4gKHt9KTtcblxuLyoqXG4gKiBBIGN1c3RvbSBvcGVyYXRvciB0aGF0IHNraXBzIHRoZSBmaXJzdCB1bmRlZmluZWQgdmFsdWUgYnV0IGFsbG93cyBzdWJzZXF1ZW50IHVuZGVmaW5lZCB2YWx1ZXMuXG4gKiBOZ1J4Q29tcG9uZW50U3RvcmUjc2VsZWN0IGFsd2F5cyBlbWl0cyB0aGUgZmlyc3QgdmFsdWUgcmVnYXJkbGVzcyBvZiB1bmRlZmluZWQgb3Igbm90IGFmdGVyIGluaXRpYWxpemVcbiAqL1xuZXhwb3J0IGNvbnN0IHNraXBGaXJzdFVuZGVmaW5lZCA9IDxUPigpOiBNb25vVHlwZU9wZXJhdG9yRnVuY3Rpb248VD4gPT5cbiAgICBmaWx0ZXI8VD4oKHZhbHVlLCBpbmRleCkgPT4gaW5kZXggPiAwIHx8IHZhbHVlICE9PSB1bmRlZmluZWQpO1xuXG50eXBlIEVmZmVjdEZuPFRWYWx1ZT4gPSAoXG4gICAgdmFsdWU6IFRWYWx1ZVxuKSA9PiB2b2lkIHwgdW5kZWZpbmVkIHwgKChjbGVhblVwUGFyYW1zOiB7IHByZXY6IFRWYWx1ZSB8IHVuZGVmaW5lZDsgY29tcGxldGU6IGJvb2xlYW47IGVycm9yOiBib29sZWFuIH0pID0+IHZvaWQpO1xuXG4vKipcbiAqIEFuIGV4dGVuZGVkIGB0YXBgIG9wZXJhdG9yIHRoYXQgYWNjZXB0cyBhbiBgZWZmZWN0Rm5gIHdoaWNoOlxuICogLSBydW5zIG9uIGV2ZXJ5IGBuZXh0YCBub3RpZmljYXRpb24gZnJvbSBgc291cmNlJGBcbiAqIC0gY2FuIG9wdGlvbmFsbHkgcmV0dXJuIGEgYGNsZWFuVXBgIGZ1bmN0aW9uIHRoYXRcbiAqIGludm9rZXMgZnJvbSB0aGUgMm5kIGBuZXh0YCBub3RpZmljYXRpb24gb253YXJkIGFuZCBvbiBgdW5zdWJzY3JpYmVgIChkZXN0cm95ZWQpXG4gKlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBzb3VyY2UkLnBpcGUoXG4gKiAgdGFwRWZmZWN0KChzb3VyY2VWYWx1ZSkgPSB7XG4gKiAgICBjb25zdCBjYiA9ICgpID0+IHtcbiAqICAgICAgZG9TdHVmZihzb3VyY2VWYWx1ZSk7XG4gKiAgICB9O1xuICogICAgYWRkTGlzdGVuZXIoJ2V2ZW50JywgY2IpO1xuICpcbiAqICAgIHJldHVybiAoKSA9PiB7XG4gKiAgICAgIHJlbW92ZUxpc3RlbmVyKCdldmVudCcsIGNiKTtcbiAqICAgIH1cbiAqICB9KVxuICogKVxuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0YXBFZmZlY3Q8VFZhbHVlPihlZmZlY3RGbjogRWZmZWN0Rm48VFZhbHVlPik6IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbjxUVmFsdWU+IHtcbiAgICBsZXQgY2xlYW51cEZuOiAoY2xlYW5VcFBhcmFtczogeyBwcmV2OiBUVmFsdWUgfCB1bmRlZmluZWQ7IGNvbXBsZXRlOiBib29sZWFuOyBlcnJvcjogYm9vbGVhbiB9KSA9PiB2b2lkID0gbm9vcDtcbiAgICBsZXQgZmlyc3RSdW4gPSBmYWxzZTtcbiAgICBsZXQgcHJldjogVFZhbHVlIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgdGVhcmRvd24gPSAoZXJyb3I6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGlmIChjbGVhbnVwRm4pIHtcbiAgICAgICAgICAgICAgICBjbGVhbnVwRm4oeyBwcmV2LCBjb21wbGV0ZTogdHJ1ZSwgZXJyb3IgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIHJldHVybiB0YXA8VFZhbHVlPih7XG4gICAgICAgIG5leHQ6ICh2YWx1ZTogVFZhbHVlKSA9PiB7XG4gICAgICAgICAgICBpZiAoY2xlYW51cEZuICYmIGZpcnN0UnVuKSB7XG4gICAgICAgICAgICAgICAgY2xlYW51cEZuKHsgcHJldiwgY29tcGxldGU6IGZhbHNlLCBlcnJvcjogZmFsc2UgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGNsZWFuVXBPclZvaWQgPSBlZmZlY3RGbih2YWx1ZSk7XG4gICAgICAgICAgICBpZiAoY2xlYW5VcE9yVm9pZCkge1xuICAgICAgICAgICAgICAgIGNsZWFudXBGbiA9IGNsZWFuVXBPclZvaWQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHByZXYgPSB2YWx1ZTtcblxuICAgICAgICAgICAgaWYgKCFmaXJzdFJ1bikge1xuICAgICAgICAgICAgICAgIGZpcnN0UnVuID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY29tcGxldGU6IHRlYXJkb3duKGZhbHNlKSxcbiAgICAgICAgdW5zdWJzY3JpYmU6IHRlYXJkb3duKGZhbHNlKSxcbiAgICAgICAgZXJyb3I6IHRlYXJkb3duKHRydWUpLFxuICAgIH0pO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTmd0Q29tcG9uZW50U3RvcmU8XG4gICAgVFN0YXRlIGV4dGVuZHMgb2JqZWN0ID0gYW55LFxuICAgIFRJbnRlcm5hbFN0YXRlIGV4dGVuZHMgb2JqZWN0ID0gVFN0YXRlICYgTmd0QW55UmVjb3JkXG4+IGV4dGVuZHMgQ29tcG9uZW50U3RvcmU8VEludGVybmFsU3RhdGU+IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoe30gYXMgVEludGVybmFsU3RhdGUpO1xuICAgICAgICB0aGlzLmluaXRpYWxpemUoKTtcbiAgICB9XG5cbiAgICAvLyBleHBvc2luZyBnZXQgc2luY2UgVEhSRUUgaXMgaW1wZXJhdGl2ZSBhdCBpdHMgY29yZVxuICAgIC8vIHdlIG5lZWQgdG8gaW1wZXJhdGl2ZWx5IGdldCBzdGF0ZSBzb21ldGltZXMgZm9yIHVzYWdlcyBpbiBBbmltYXRpb24gTG9vcFxuICAgIC8vIHdlIGFsc28gYmluZCBcInRoaXNcIiBpbnN0YW5jZSwgc28gd2UgZG9uJ3QgaGF2ZSB0byBiaW5kIGl0IGxhdGVyXG4gICAgcmVhZG9ubHkgcmVhZCA9IHRoaXMuZ2V0LmJpbmQodGhpcyk7XG5cbiAgICAvKipcbiAgICAgKiBBIGN1c3RvbSBwYXRjaFN0YXRlIHRoYXQgYWxsb3dzIGZvcjpcbiAgICAgKiAtIFBhcnRpYWwgc3RhdGUgdXBkYXRlcyBhbmQgT2JzZXJ2YWJsZSBvZiBwYXJ0aWFsIHN0YXRlIHVwZGF0ZXMgbGlrZSBwYXRjaFN0YXRlXG4gICAgICogLSBQYXNzIGEgUmVjb3JkPHN0cmluZywgT2JzZXJ2YWJsZUlucHV0PiB0byB1cGRhdGUgYSBzcGVjaWZpYyBrZXkgd2l0aCBhbiBPYnNlcnZhYmxlLlxuICAgICAqIFRoaXMgaXMgc2ltaWxhciB0byBgUnhTdGF0ZS5jb25uZWN0KClgIEFQSVxuICAgICAqL1xuICAgIHdyaXRlKFxuICAgICAgICBwYXJ0aWFsU3RhdGVPckZhY3Rvcnk6XG4gICAgICAgICAgICB8ICgoc3RhdGU6IFRJbnRlcm5hbFN0YXRlKSA9PiBSZWNvcmQ8c3RyaW5nLCBhbnk+KVxuICAgICAgICAgICAgfCAoKHN0YXRlOiBUSW50ZXJuYWxTdGF0ZSkgPT4gT2JzZXJ2YWJsZTxQYXJ0aWFsPFRJbnRlcm5hbFN0YXRlPj4pXG4gICAgICAgICAgICB8IE9ic2VydmFibGU8UGFydGlhbDxUSW50ZXJuYWxTdGF0ZT4+XG4gICAgICAgICAgICB8IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgICApOiB2b2lkIHtcbiAgICAgICAgaWYgKHR5cGVvZiBwYXJ0aWFsU3RhdGVPckZhY3RvcnkgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLndyaXRlKHBhcnRpYWxTdGF0ZU9yRmFjdG9yeSh0aGlzLnJlYWQoKSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGFydGlhbFN0YXRlID0gcGFydGlhbFN0YXRlT3JGYWN0b3J5O1xuICAgICAgICBpZiAoT2JqZWN0LmtleXMocGFydGlhbFN0YXRlKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc09ic2VydmFibGUocGFydGlhbFN0YXRlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucGF0Y2hTdGF0ZShwYXJ0aWFsU3RhdGUgYXMgT2JzZXJ2YWJsZTxQYXJ0aWFsPFRJbnRlcm5hbFN0YXRlPj4pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZW50cmllcyA9IE9iamVjdC5lbnRyaWVzKHBhcnRpYWxTdGF0ZSk7XG4gICAgICAgIGNvbnN0IGhhc09ic2VydmFibGUgPSBlbnRyaWVzLnNvbWUoKFtfLCB2YWx1ZV0pID0+IGlzT2JzZXJ2YWJsZSh2YWx1ZSkgJiYgIWlzLnJlZih2YWx1ZSkpO1xuXG4gICAgICAgIGlmICghaGFzT2JzZXJ2YWJsZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucGF0Y2hTdGF0ZShwYXJ0aWFsU3RhdGUgYXMgUGFydGlhbDxUSW50ZXJuYWxTdGF0ZT4pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgW3Jhd1ZhbHVlcywgb2JzZXJ2YWJsZVZhbHVlc10gPSBlbnRyaWVzLnJlZHVjZShcbiAgICAgICAgICAgIChyZXN1bHQsIFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpc09ic2VydmFibGUodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdFsxXVtrZXkgYXMga2V5b2YgVEludGVybmFsU3RhdGVdID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0WzBdW2tleSBhcyBrZXlvZiBUSW50ZXJuYWxTdGF0ZV0gPSB2YWx1ZSBhcyBUSW50ZXJuYWxTdGF0ZVtrZXlvZiBUSW50ZXJuYWxTdGF0ZV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgW3t9LCB7fV0gYXMgW1BhcnRpYWw8VEludGVybmFsU3RhdGU+LCBSZWNvcmQ8a2V5b2YgVEludGVybmFsU3RhdGUsIE9ic2VydmFibGVJbnB1dDxhbnk+Pl1cbiAgICAgICAgKTtcblxuICAgICAgICBpZiAoT2JqZWN0LmtleXMocmF3VmFsdWVzKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLnBhdGNoU3RhdGUocmF3VmFsdWVzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChPYmplY3Qua2V5cyhvYnNlcnZhYmxlVmFsdWVzKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLnBhdGNoU3RhdGUoY29tYmluZUxhdGVzdChvYnNlcnZhYmxlVmFsdWVzKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaW5pdGlhbGl6ZSgpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEEgdXRpbGl0eSBjbGFzcyBtZXRob2QgdG8gc2VsZWN0IGEgc3RhdGUgb24gdGhlIHRlbXBsYXRlIGFzIE9ic2VydmFibGVcbiAgICAgKiAtIFRoaXMgbWV0aG9kIGFsd2F5cyBkZWJvdW5jZSB0aGUgT2JzZXJ2YWJsZVxuICAgICAqL1xuICAgIHNlbGVjdEtleTxUS2V5IGV4dGVuZHMga2V5b2YgVEludGVybmFsU3RhdGUgJiBzdHJpbmc+KFxuICAgICAgICBrZXk6IFRLZXksXG4gICAgICAgIHNraXBGaXJzdCA9IGZhbHNlXG4gICAgKTogT2JzZXJ2YWJsZTxUSW50ZXJuYWxTdGF0ZVtUS2V5XT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3QoKHMpID0+IHNba2V5XSwgeyBkZWJvdW5jZTogdHJ1ZSB9KS5waXBlKHNraXBGaXJzdCA/IHNraXBGaXJzdFVuZGVmaW5lZCgpIDogKHMpID0+IHMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEEgdXRpbGl0eSBjbGFzcyBtZXRob2QgdG8gZ2V0IGEgc3RhdGUgb24gdGhlIHRlbXBsYXRlIGFzIGltcGVyYXRpdmUgVmFsdWVcbiAgICAgKi9cbiAgICByZWFkS2V5PFRLZXkgZXh0ZW5kcyBrZXlvZiBUSW50ZXJuYWxTdGF0ZSAmIHN0cmluZz4oa2V5OiBUS2V5KTogVEludGVybmFsU3RhdGVbVEtleV0ge1xuICAgICAgICByZXR1cm4gdGhpcy5yZWFkKChzKSA9PiBzW2tleV0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,15 +0,0 @@
1
- export function buildGraph(object) {
2
- const data = { nodes: {}, materials: {} };
3
- if (object) {
4
- object.traverse((obj) => {
5
- if (obj.name)
6
- data.nodes[obj.name] = obj;
7
- if ('material' in obj && !data.materials[obj.material.name]) {
8
- data.materials[obj.material.name] = obj
9
- .material;
10
- }
11
- });
12
- }
13
- return data;
14
- }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQtZ3JhcGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyLXRocmVlL3NyYy9saWIvdXRpbHMvYnVpbGQtZ3JhcGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxVQUFVLFVBQVUsQ0FBQyxNQUFzQjtJQUMvQyxNQUFNLElBQUksR0FBaUIsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUN4RCxJQUFJLE1BQU0sRUFBRTtRQUNWLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFtQixFQUFFLEVBQUU7WUFDdEMsSUFBSSxHQUFHLENBQUMsSUFBSTtnQkFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUM7WUFDekMsSUFBSSxVQUFVLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBRyxHQUFrQixDQUFDLFFBQTJCLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQy9GLElBQUksQ0FBQyxTQUFTLENBQUcsR0FBa0IsQ0FBQyxRQUEyQixDQUFDLElBQUksQ0FBQyxHQUFJLEdBQWtCO3FCQUN4RixRQUEwQixDQUFDO2FBQy9CO1FBQ0gsQ0FBQyxDQUFDLENBQUM7S0FDSjtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB0eXBlIHsgTmd0T2JqZWN0TWFwIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRHcmFwaChvYmplY3Q6IFRIUkVFLk9iamVjdDNEKTogTmd0T2JqZWN0TWFwIHtcbiAgY29uc3QgZGF0YTogTmd0T2JqZWN0TWFwID0geyBub2Rlczoge30sIG1hdGVyaWFsczoge30gfTtcbiAgaWYgKG9iamVjdCkge1xuICAgIG9iamVjdC50cmF2ZXJzZSgob2JqOiBUSFJFRS5PYmplY3QzRCkgPT4ge1xuICAgICAgaWYgKG9iai5uYW1lKSBkYXRhLm5vZGVzW29iai5uYW1lXSA9IG9iajtcbiAgICAgIGlmICgnbWF0ZXJpYWwnIGluIG9iaiAmJiAhZGF0YS5tYXRlcmlhbHNbKChvYmogYXMgVEhSRUUuTWVzaCkubWF0ZXJpYWwgYXMgVEhSRUUuTWF0ZXJpYWwpLm5hbWVdKSB7XG4gICAgICAgIGRhdGEubWF0ZXJpYWxzWygob2JqIGFzIFRIUkVFLk1lc2gpLm1hdGVyaWFsIGFzIFRIUkVFLk1hdGVyaWFsKS5uYW1lXSA9IChvYmogYXMgVEhSRUUuTWVzaClcbiAgICAgICAgICAubWF0ZXJpYWwgYXMgVEhSRUUuTWF0ZXJpYWw7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGRhdGE7XG59XG4iXX0=
@@ -1,28 +0,0 @@
1
- import * as THREE from 'three';
2
- import { is } from './is';
3
- export function updateCamera(camera, size) {
4
- // https://github.com/pmndrs/react-three-fiber/issues/92
5
- // Do not mess with the camera if it belongs to the user
6
- if (!camera.manual) {
7
- if (is.orthographic(camera)) {
8
- camera.left = size.width / -2;
9
- camera.right = size.width / 2;
10
- camera.top = size.height / 2;
11
- camera.bottom = size.height / -2;
12
- }
13
- else {
14
- camera.aspect = size.width / size.height;
15
- }
16
- camera.updateProjectionMatrix();
17
- // https://github.com/pmndrs/react-three-fiber/issues/178
18
- // Update matrix world since the renderer is a frame late
19
- camera.updateMatrixWorld();
20
- }
21
- }
22
- export function createDefaultCamera(isOrthographic, size) {
23
- if (isOrthographic) {
24
- return new THREE.OrthographicCamera(0, 0, 0, 0, 0.1, 1000);
25
- }
26
- return new THREE.PerspectiveCamera(75, size.width / size.height, 0.1, 1000);
27
- }
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtZXJhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci10aHJlZS9zcmMvbGliL3V0aWxzL2NhbWVyYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUUvQixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFCLE1BQU0sVUFBVSxZQUFZLENBQUMsTUFBMkIsRUFBRSxJQUFhO0lBQ25FLHdEQUF3RDtJQUN4RCx3REFBd0Q7SUFDeEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDaEIsSUFBSSxFQUFFLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3pCLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztZQUM5QixNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQzlCLE1BQU0sQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDN0IsTUFBTSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ3BDO2FBQU07WUFDSCxNQUFNLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUM1QztRQUNELE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ2hDLHlEQUF5RDtRQUN6RCx5REFBeUQ7UUFDekQsTUFBTSxDQUFDLGlCQUFpQixFQUFFLENBQUM7S0FDOUI7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLG1CQUFtQixDQUFDLGNBQXVCLEVBQUUsSUFBYTtJQUN0RSxJQUFJLGNBQWMsRUFBRTtRQUNoQixPQUFPLElBQUksS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7S0FDOUQ7SUFFRCxPQUFPLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ2hGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgdHlwZSB7IE5ndENhbWVyYVdpdGhNYW51YWwsIE5ndFNpemUgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBpcyB9IGZyb20gJy4vaXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlQ2FtZXJhKGNhbWVyYTogTmd0Q2FtZXJhV2l0aE1hbnVhbCwgc2l6ZTogTmd0U2l6ZSkge1xuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9wbW5kcnMvcmVhY3QtdGhyZWUtZmliZXIvaXNzdWVzLzkyXG4gICAgLy8gRG8gbm90IG1lc3Mgd2l0aCB0aGUgY2FtZXJhIGlmIGl0IGJlbG9uZ3MgdG8gdGhlIHVzZXJcbiAgICBpZiAoIWNhbWVyYS5tYW51YWwpIHtcbiAgICAgICAgaWYgKGlzLm9ydGhvZ3JhcGhpYyhjYW1lcmEpKSB7XG4gICAgICAgICAgICBjYW1lcmEubGVmdCA9IHNpemUud2lkdGggLyAtMjtcbiAgICAgICAgICAgIGNhbWVyYS5yaWdodCA9IHNpemUud2lkdGggLyAyO1xuICAgICAgICAgICAgY2FtZXJhLnRvcCA9IHNpemUuaGVpZ2h0IC8gMjtcbiAgICAgICAgICAgIGNhbWVyYS5ib3R0b20gPSBzaXplLmhlaWdodCAvIC0yO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY2FtZXJhLmFzcGVjdCA9IHNpemUud2lkdGggLyBzaXplLmhlaWdodDtcbiAgICAgICAgfVxuICAgICAgICBjYW1lcmEudXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpO1xuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vcG1uZHJzL3JlYWN0LXRocmVlLWZpYmVyL2lzc3Vlcy8xNzhcbiAgICAgICAgLy8gVXBkYXRlIG1hdHJpeCB3b3JsZCBzaW5jZSB0aGUgcmVuZGVyZXIgaXMgYSBmcmFtZSBsYXRlXG4gICAgICAgIGNhbWVyYS51cGRhdGVNYXRyaXhXb3JsZCgpO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURlZmF1bHRDYW1lcmEoaXNPcnRob2dyYXBoaWM6IGJvb2xlYW4sIHNpemU6IE5ndFNpemUpIHtcbiAgICBpZiAoaXNPcnRob2dyYXBoaWMpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUSFJFRS5PcnRob2dyYXBoaWNDYW1lcmEoMCwgMCwgMCwgMCwgMC4xLCAxMDAwKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IFRIUkVFLlBlcnNwZWN0aXZlQ2FtZXJhKDc1LCBzaXplLndpZHRoIC8gc2l6ZS5oZWlnaHQsIDAuMSwgMTAwMCk7XG59XG4iXX0=
@@ -1,4 +0,0 @@
1
- export function capitalize(str) {
2
- return str.charAt(0).toUpperCase() + str.slice(1);
3
- }
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwaXRhbGl6ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXItdGhyZWUvc3JjL2xpYi91dGlscy9jYXBpdGFsaXplLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxVQUFVLENBQUMsR0FBVztJQUNsQyxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGNhcGl0YWxpemUoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBzdHIuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBzdHIuc2xpY2UoMSk7XG59XG4iXX0=
@@ -1,22 +0,0 @@
1
- import { is } from './is';
2
- export function checkNeedsUpdate(value) {
3
- if (value !== null && is.obj(value) && 'needsUpdate' in value) {
4
- value['needsUpdate'] = true;
5
- if ('uniformsNeedUpdate' in value) {
6
- value['uniformsNeedUpdate'] = true;
7
- }
8
- }
9
- }
10
- export function checkUpdate(value) {
11
- if (is.object3d(value)) {
12
- value.updateMatrix();
13
- }
14
- else if (is.camera(value)) {
15
- if (is.perspective(value) || is.orthographic(value)) {
16
- value.updateProjectionMatrix();
17
- }
18
- value.updateMatrixWorld();
19
- }
20
- checkNeedsUpdate(value);
21
- }
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2stdXBkYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5ndWxhci10aHJlZS9zcmMvbGliL3V0aWxzL2NoZWNrLXVwZGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFCLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxLQUFjO0lBQzNDLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLGFBQWEsSUFBSyxLQUFzQixFQUFFO1FBQzVFLEtBQXNCLENBQUMsYUFBYSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBRTlDLElBQUksb0JBQW9CLElBQUssS0FBc0IsRUFBRTtZQUNoRCxLQUFzQixDQUFDLG9CQUFvQixDQUFDLEdBQUcsSUFBSSxDQUFDO1NBQ3hEO0tBQ0o7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxLQUFjO0lBQ3RDLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNwQixLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7S0FDeEI7U0FBTSxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDekIsSUFBSSxFQUFFLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDakQsS0FBSyxDQUFDLHNCQUFzQixFQUFFLENBQUM7U0FDbEM7UUFDRCxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztLQUM3QjtJQUVELGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE5ndEFueVJlY29yZCB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGlzIH0gZnJvbSAnLi9pcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjaGVja05lZWRzVXBkYXRlKHZhbHVlOiB1bmtub3duKSB7XG4gICAgaWYgKHZhbHVlICE9PSBudWxsICYmIGlzLm9iaih2YWx1ZSkgJiYgJ25lZWRzVXBkYXRlJyBpbiAodmFsdWUgYXMgTmd0QW55UmVjb3JkKSkge1xuICAgICAgICAodmFsdWUgYXMgTmd0QW55UmVjb3JkKVsnbmVlZHNVcGRhdGUnXSA9IHRydWU7XG5cbiAgICAgICAgaWYgKCd1bmlmb3Jtc05lZWRVcGRhdGUnIGluICh2YWx1ZSBhcyBOZ3RBbnlSZWNvcmQpKSB7XG4gICAgICAgICAgICAodmFsdWUgYXMgTmd0QW55UmVjb3JkKVsndW5pZm9ybXNOZWVkVXBkYXRlJ10gPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tVcGRhdGUodmFsdWU6IHVua25vd24pIHtcbiAgICBpZiAoaXMub2JqZWN0M2QodmFsdWUpKSB7XG4gICAgICAgIHZhbHVlLnVwZGF0ZU1hdHJpeCgpO1xuICAgIH0gZWxzZSBpZiAoaXMuY2FtZXJhKHZhbHVlKSkge1xuICAgICAgICBpZiAoaXMucGVyc3BlY3RpdmUodmFsdWUpIHx8IGlzLm9ydGhvZ3JhcGhpYyh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHZhbHVlLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKTtcbiAgICAgICAgfVxuICAgICAgICB2YWx1ZS51cGRhdGVNYXRyaXhXb3JsZCgpO1xuICAgIH1cblxuICAgIGNoZWNrTmVlZHNVcGRhdGUodmFsdWUpO1xufVxuIl19