angular-three-soba 2.0.0-beta.7 → 2.0.0-beta.8

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 (296) hide show
  1. package/abstractions/billboard/billboard.d.ts +11 -7
  2. package/abstractions/detailed/detailed.d.ts +26 -0
  3. package/abstractions/edges/edges.d.ts +23 -11
  4. package/abstractions/grid/grid.d.ts +41 -50
  5. package/abstractions/index.d.ts +1 -7
  6. package/abstractions/text/text.d.ts +10 -4
  7. package/abstractions/text-3d/text-3d.d.ts +47 -40
  8. package/cameras/camera/camera-content.d.ts +1 -1
  9. package/cameras/camera/camera.d.ts +16 -13
  10. package/cameras/cube-camera/cube-camera.d.ts +50 -23
  11. package/cameras/index.d.ts +0 -1
  12. package/cameras/orthographic-camera/orthographic-camera.d.ts +29 -18
  13. package/cameras/perspective-camera/perspective-camera.d.ts +10 -1
  14. package/controls/orbit-controls/orbit-controls.d.ts +30 -13
  15. package/esm2022/abstractions/billboard/billboard.mjs +36 -33
  16. package/esm2022/abstractions/detailed/detailed.mjs +64 -0
  17. package/esm2022/abstractions/edges/edges.mjs +58 -63
  18. package/esm2022/abstractions/grid/grid.mjs +140 -110
  19. package/esm2022/abstractions/index.mjs +2 -8
  20. package/esm2022/abstractions/text/text.mjs +123 -122
  21. package/esm2022/abstractions/text-3d/text-3d.mjs +119 -121
  22. package/esm2022/cameras/camera/camera-content.mjs +5 -6
  23. package/esm2022/cameras/camera/camera.mjs +48 -42
  24. package/esm2022/cameras/cube-camera/cube-camera.mjs +129 -99
  25. package/esm2022/cameras/index.mjs +1 -2
  26. package/esm2022/cameras/orthographic-camera/orthographic-camera.mjs +78 -75
  27. package/esm2022/cameras/perspective-camera/perspective-camera.mjs +25 -26
  28. package/esm2022/controls/orbit-controls/orbit-controls.mjs +94 -90
  29. package/esm2022/loaders/gltf-loader/gltf-loader.mjs +3 -6
  30. package/esm2022/loaders/loader/loader.mjs +92 -87
  31. package/esm2022/loaders/progress/progress.mjs +1 -1
  32. package/esm2022/loaders/texture-loader/texture-loader.mjs +4 -4
  33. package/esm2022/materials/index.mjs +2 -1
  34. package/esm2022/materials/mesh-distort-material/mesh-distort-material.mjs +60 -51
  35. package/esm2022/materials/mesh-reflector-material/mesh-reflector-material.mjs +239 -255
  36. package/esm2022/materials/mesh-refraction-material/mesh-refraction-material.mjs +99 -97
  37. package/esm2022/materials/mesh-transmission-material/mesh-transmission-material.mjs +167 -146
  38. package/esm2022/materials/mesh-wobble-material/mesh-wobble-material.mjs +44 -42
  39. package/esm2022/materials/point-material/point-material.mjs +46 -0
  40. package/esm2022/misc/animations/animations.mjs +20 -16
  41. package/esm2022/misc/bake-shadows/bake-shadows.mjs +13 -13
  42. package/esm2022/misc/caustics/caustics.mjs +387 -0
  43. package/esm2022/misc/decal/decal.mjs +187 -0
  44. package/esm2022/misc/depth-buffer/depth-buffer.mjs +33 -35
  45. package/esm2022/misc/example/example.mjs +160 -0
  46. package/esm2022/misc/fbo/fbo.mjs +35 -35
  47. package/esm2022/misc/html/html-wrapper.mjs +478 -0
  48. package/esm2022/misc/html/html.mjs +304 -0
  49. package/esm2022/misc/index.mjs +10 -1
  50. package/esm2022/misc/sampler/sampler.mjs +142 -0
  51. package/esm2022/misc/shadow/shadow.mjs +111 -0
  52. package/esm2022/misc/stats-gl/stats-gl.mjs +61 -0
  53. package/esm2022/misc/trail/trail.mjs +209 -0
  54. package/esm2022/misc/trail-texture/inject-trail-texture.mjs +17 -0
  55. package/esm2022/misc/trail-texture/trail-texture.mjs +106 -0
  56. package/esm2022/modifiers/angular-three-soba-modifiers.mjs +5 -0
  57. package/esm2022/modifiers/curve-modifier/curve-modifier.mjs +64 -0
  58. package/esm2022/modifiers/index.mjs +2 -0
  59. package/esm2022/performances/adaptive-dpr/adaptive-dpr.mjs +44 -0
  60. package/esm2022/performances/adaptive-events/adaptive-events.mjs +27 -0
  61. package/esm2022/performances/angular-three-soba-performances.mjs +5 -0
  62. package/esm2022/performances/index.mjs +6 -0
  63. package/esm2022/performances/points/points-input.mjs +64 -0
  64. package/esm2022/performances/points/points.mjs +329 -0
  65. package/esm2022/performances/points/position-point.mjs +54 -0
  66. package/esm2022/performances/segments/segment-object.mjs +9 -0
  67. package/esm2022/performances/segments/segments.mjs +182 -0
  68. package/esm2022/shaders/blur-pass/blur-pass.mjs +1 -1
  69. package/esm2022/shaders/caustics/caustics-material.mjs +130 -0
  70. package/esm2022/shaders/caustics/caustics-projection-material.mjs +31 -0
  71. package/esm2022/shaders/convolution-material/convolution-material.mjs +1 -1
  72. package/esm2022/shaders/discard-material/discard-material.mjs +1 -1
  73. package/esm2022/shaders/grid-material/grid-material.mjs +29 -14
  74. package/esm2022/shaders/index.mjs +5 -3
  75. package/esm2022/shaders/mesh-distort-material/mesh-distort-material.mjs +42 -41
  76. package/esm2022/shaders/mesh-reflector-material/mesh-reflector-material.mjs +1 -1
  77. package/esm2022/shaders/mesh-refraction-material/mesh-refraction-material.mjs +2 -2
  78. package/esm2022/shaders/mesh-transmission-material/mesh-transmission-material.mjs +4 -4
  79. package/esm2022/shaders/mesh-wobble-material/mesh-wobble-material.mjs +1 -1
  80. package/esm2022/shaders/shader-material/shader-material.mjs +1 -1
  81. package/esm2022/shaders/soft-shadow-material/soft-shadow-material.mjs +17 -25
  82. package/esm2022/shaders/sparkles-material/sparkles-material.mjs +32 -46
  83. package/esm2022/shaders/spot-light-material/spot-light-material.mjs +7 -7
  84. package/esm2022/shaders/star-field-material/star-field-material.mjs +3 -2
  85. package/esm2022/shaders/wireframe-material/wireframe-material.mjs +247 -0
  86. package/esm2022/staging/accumulative-shadows/accumulative-shadows.mjs +160 -176
  87. package/esm2022/staging/accumulative-shadows/progressive-light-map.mjs +1 -1
  88. package/esm2022/staging/accumulative-shadows/randomized-lights.mjs +126 -128
  89. package/esm2022/staging/backdrop/backdrop.mjs +77 -0
  90. package/esm2022/staging/bb-anchor/bb-anchor.mjs +70 -0
  91. package/esm2022/staging/bounds/bounds.mjs +144 -143
  92. package/esm2022/staging/camera-shake/camera-shake.mjs +86 -80
  93. package/esm2022/staging/center/center.mjs +106 -91
  94. package/esm2022/staging/cloud/cloud.mjs +118 -124
  95. package/esm2022/staging/contact-shadows/contact-shadows.mjs +131 -134
  96. package/esm2022/staging/environment/assets.mjs +12 -12
  97. package/esm2022/staging/environment/environment-cube.mjs +28 -30
  98. package/esm2022/staging/environment/environment-ground.mjs +18 -20
  99. package/esm2022/staging/environment/environment-input.mjs +97 -84
  100. package/esm2022/staging/environment/environment-map.mjs +33 -33
  101. package/esm2022/staging/environment/environment-portal.mjs +75 -97
  102. package/esm2022/staging/environment/environment.mjs +34 -51
  103. package/esm2022/staging/environment/utils.mjs +35 -14
  104. package/esm2022/staging/float/float.mjs +70 -58
  105. package/esm2022/staging/index.mjs +7 -3
  106. package/esm2022/staging/matcap-texture/matcap-texture.mjs +64 -0
  107. package/esm2022/staging/normal-texture/normal-texture.mjs +53 -0
  108. package/esm2022/staging/sky/sky.mjs +85 -80
  109. package/esm2022/staging/sparkles/sparkles.mjs +108 -105
  110. package/esm2022/staging/spot-light/shadow-mesh-input.mjs +63 -0
  111. package/esm2022/staging/spot-light/shadow-mesh.mjs +266 -0
  112. package/esm2022/staging/spot-light/spot-light-input.mjs +67 -58
  113. package/esm2022/staging/spot-light/spot-light.mjs +51 -64
  114. package/esm2022/staging/spot-light/volumetric-mesh.mjs +61 -78
  115. package/esm2022/staging/stage/stage.mjs +304 -290
  116. package/esm2022/staging/stars/stars.mjs +101 -102
  117. package/esm2022/staging/wireframe/wireframe-input.mjs +191 -0
  118. package/esm2022/staging/wireframe/wireframe.mjs +224 -0
  119. package/esm2022/utils/angular-three-soba-utils.mjs +5 -0
  120. package/esm2022/utils/content/content.mjs +15 -0
  121. package/esm2022/utils/index.mjs +2 -0
  122. package/fesm2022/angular-three-soba-abstractions.mjs +505 -2087
  123. package/fesm2022/angular-three-soba-abstractions.mjs.map +1 -1
  124. package/fesm2022/angular-three-soba-cameras.mjs +302 -259
  125. package/fesm2022/angular-three-soba-cameras.mjs.map +1 -1
  126. package/fesm2022/angular-three-soba-controls.mjs +93 -88
  127. package/fesm2022/angular-three-soba-controls.mjs.map +1 -1
  128. package/fesm2022/angular-three-soba-loaders.mjs +94 -90
  129. package/fesm2022/angular-three-soba-loaders.mjs.map +1 -1
  130. package/fesm2022/angular-three-soba-materials.mjs +655 -590
  131. package/fesm2022/angular-three-soba-materials.mjs.map +1 -1
  132. package/fesm2022/angular-three-soba-misc.mjs +2198 -89
  133. package/fesm2022/angular-three-soba-misc.mjs.map +1 -1
  134. package/fesm2022/angular-three-soba-modifiers.mjs +71 -0
  135. package/fesm2022/angular-three-soba-modifiers.mjs.map +1 -0
  136. package/fesm2022/angular-three-soba-performances.mjs +697 -0
  137. package/fesm2022/angular-three-soba-performances.mjs.map +1 -0
  138. package/fesm2022/angular-three-soba-shaders.mjs +501 -264
  139. package/fesm2022/angular-three-soba-shaders.mjs.map +1 -1
  140. package/fesm2022/angular-three-soba-staging.mjs +2870 -2555
  141. package/fesm2022/angular-three-soba-staging.mjs.map +1 -1
  142. package/fesm2022/angular-three-soba-utils.mjs +22 -0
  143. package/fesm2022/angular-three-soba-utils.mjs.map +1 -0
  144. package/loaders/gltf-loader/gltf-loader.d.ts +4 -3
  145. package/loaders/loader/loader.d.ts +19 -17
  146. package/loaders/progress/progress.d.ts +1 -1
  147. package/loaders/texture-loader/texture-loader.d.ts +2 -2
  148. package/materials/index.d.ts +1 -0
  149. package/materials/mesh-distort-material/mesh-distort-material.d.ts +25 -15
  150. package/materials/mesh-reflector-material/mesh-reflector-material.d.ts +74 -56
  151. package/materials/mesh-refraction-material/mesh-refraction-material.d.ts +33 -21
  152. package/materials/mesh-transmission-material/mesh-transmission-material.d.ts +55 -39
  153. package/materials/mesh-wobble-material/mesh-wobble-material.d.ts +19 -10
  154. package/materials/point-material/point-material.d.ts +24 -0
  155. package/metadata.json +1 -0
  156. package/misc/animations/animations.d.ts +6 -4
  157. package/misc/caustics/caustics.d.ts +87 -0
  158. package/misc/decal/decal.d.ts +49 -0
  159. package/misc/depth-buffer/depth-buffer.d.ts +2 -2
  160. package/misc/example/example.d.ts +81 -0
  161. package/misc/fbo/fbo.d.ts +2 -2
  162. package/misc/html/html-wrapper.d.ts +559 -0
  163. package/misc/html/html.d.ts +214 -0
  164. package/misc/index.d.ts +9 -0
  165. package/misc/sampler/sampler.d.ts +67 -0
  166. package/misc/shadow/shadow.d.ts +37 -0
  167. package/misc/stats-gl/stats-gl.d.ts +24 -0
  168. package/misc/trail/trail.d.ts +57 -0
  169. package/misc/trail-texture/inject-trail-texture.d.ts +9 -0
  170. package/misc/trail-texture/trail-texture.d.ts +50 -0
  171. package/modifiers/README.md +3 -0
  172. package/modifiers/curve-modifier/curve-modifier.d.ts +23 -0
  173. package/modifiers/index.d.ts +1 -0
  174. package/package.json +30 -22
  175. package/performances/README.md +3 -0
  176. package/performances/adaptive-dpr/adaptive-dpr.d.ts +14 -0
  177. package/{performance/adaptive → performances/adaptive-events}/adaptive-events.d.ts +3 -0
  178. package/performances/index.d.ts +5 -0
  179. package/performances/points/points-input.d.ts +32 -0
  180. package/performances/points/points.d.ts +92 -0
  181. package/{performance/instances/position-mesh.d.ts → performances/points/position-point.d.ts} +4 -3
  182. package/performances/segments/segment-object.d.ts +7 -0
  183. package/performances/segments/segments.d.ts +124 -0
  184. package/shaders/grid-material/grid-material.d.ts +33 -0
  185. package/shaders/index.d.ts +4 -2
  186. package/shaders/mesh-distort-material/mesh-distort-material.d.ts +146 -1
  187. package/shaders/mesh-transmission-material/mesh-transmission-material.d.ts +1 -1
  188. package/shaders/shader-material/shader-material.d.ts +2 -2
  189. package/shaders/soft-shadow-material/soft-shadow-material.d.ts +10 -1
  190. package/shaders/sparkles-material/sparkles-material.d.ts +15 -1
  191. package/shaders/spot-light-material/spot-light-material.d.ts +11 -2
  192. package/shaders/star-field-material/star-field-material.d.ts +11 -1
  193. package/shaders/wireframe-material/wireframe-material.d.ts +58 -0
  194. package/staging/accumulative-shadows/accumulative-shadows.d.ts +89 -39
  195. package/staging/accumulative-shadows/randomized-lights.d.ts +40 -27
  196. package/staging/backdrop/backdrop.d.ts +30 -0
  197. package/staging/bb-anchor/bb-anchor.d.ts +27 -0
  198. package/staging/bounds/bounds.d.ts +100 -24
  199. package/staging/camera-shake/camera-shake.d.ts +30 -19
  200. package/staging/center/center.d.ts +43 -35
  201. package/staging/cloud/cloud.d.ts +26 -23
  202. package/staging/contact-shadows/contact-shadows.d.ts +41 -28
  203. package/staging/environment/assets.d.ts +9 -9
  204. package/staging/environment/environment-cube.d.ts +9 -5
  205. package/staging/environment/environment-ground.d.ts +7 -7
  206. package/staging/environment/environment-input.d.ts +36 -36
  207. package/staging/environment/environment-map.d.ts +10 -5
  208. package/staging/environment/environment-portal.d.ts +10 -5
  209. package/staging/environment/environment.d.ts +0 -4
  210. package/staging/environment/utils.d.ts +2 -2
  211. package/staging/float/float.d.ts +14 -10
  212. package/staging/index.d.ts +6 -2
  213. package/staging/matcap-texture/matcap-texture.d.ts +13 -0
  214. package/staging/normal-texture/normal-texture.d.ts +16 -0
  215. package/staging/sky/sky.d.ts +28 -21
  216. package/staging/sparkles/sparkles.d.ts +35 -21
  217. package/staging/spot-light/shadow-mesh-input.d.ts +29 -0
  218. package/staging/spot-light/shadow-mesh.d.ts +37 -0
  219. package/staging/spot-light/spot-light-input.d.ts +25 -25
  220. package/staging/spot-light/spot-light.d.ts +31 -15
  221. package/staging/spot-light/volumetric-mesh.d.ts +15 -9
  222. package/staging/stage/stage.d.ts +88 -63
  223. package/staging/stars/stars.d.ts +27 -16
  224. package/staging/wireframe/wireframe-input.d.ts +65 -0
  225. package/staging/wireframe/wireframe.d.ts +28 -0
  226. package/utils/README.md +3 -0
  227. package/utils/content/content.d.ts +8 -0
  228. package/utils/index.d.ts +1 -0
  229. package/web-types.json +1 -0
  230. package/abstractions/catmull-rom-line/catmull-rom-line.d.ts +0 -25
  231. package/abstractions/cubic-bezier-line/cubic-bezier-line.d.ts +0 -25
  232. package/abstractions/gizmo-helper/gizmo-helper.d.ts +0 -34
  233. package/abstractions/gizmo-helper/gizmo-viewcube/constants.d.ts +0 -12
  234. package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.d.ts +0 -22
  235. package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.d.ts +0 -30
  236. package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.d.ts +0 -32
  237. package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube.d.ts +0 -14
  238. package/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.d.ts +0 -47
  239. package/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport.d.ts +0 -40
  240. package/abstractions/line/line-input.d.ts +0 -42
  241. package/abstractions/line/line.d.ts +0 -35
  242. package/abstractions/quadratic-bezier-line/quadratic-bezier-line.d.ts +0 -23
  243. package/esm2022/abstractions/catmull-rom-line/catmull-rom-line.mjs +0 -131
  244. package/esm2022/abstractions/cubic-bezier-line/cubic-bezier-line.mjs +0 -113
  245. package/esm2022/abstractions/gizmo-helper/gizmo-helper.mjs +0 -210
  246. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/constants.mjs +0 -31
  247. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +0 -95
  248. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +0 -155
  249. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.mjs +0 -62
  250. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube.mjs +0 -80
  251. package/esm2022/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +0 -206
  252. package/esm2022/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport.mjs +0 -273
  253. package/esm2022/abstractions/line/line-input.mjs +0 -113
  254. package/esm2022/abstractions/line/line.mjs +0 -165
  255. package/esm2022/abstractions/quadratic-bezier-line/quadratic-bezier-line.mjs +0 -128
  256. package/esm2022/performance/adaptive/adaptive-dpr.mjs +0 -46
  257. package/esm2022/performance/adaptive/adaptive-events.mjs +0 -31
  258. package/esm2022/performance/angular-three-soba-performance.mjs +0 -5
  259. package/esm2022/performance/detailed/detailed.mjs +0 -61
  260. package/esm2022/performance/index.mjs +0 -7
  261. package/esm2022/performance/instances/instance.mjs +0 -48
  262. package/esm2022/performance/instances/instances.mjs +0 -189
  263. package/esm2022/performance/instances/position-mesh.mjs +0 -52
  264. package/esm2022/performance/stats/stats.mjs +0 -79
  265. package/esm2022/shaders/caustics-material/caustics-material.mjs +0 -128
  266. package/esm2022/shaders/caustics-material/caustics-projection-material.mjs +0 -33
  267. package/esm2022/staging/caustics/caustisc.mjs +0 -384
  268. package/esm2022/staging/spot-light/spot-light-shadow-mesh-input.mjs +0 -57
  269. package/esm2022/staging/spot-light/spot-light-shadow-mesh.mjs +0 -258
  270. package/fesm2022/angular-three-soba-performance.mjs +0 -487
  271. package/fesm2022/angular-three-soba-performance.mjs.map +0 -1
  272. package/performance/README.md +0 -3
  273. package/performance/adaptive/adaptive-dpr.d.ts +0 -8
  274. package/performance/detailed/detailed.d.ts +0 -20
  275. package/performance/index.d.ts +0 -6
  276. package/performance/instances/instance.d.ts +0 -9
  277. package/performance/instances/instances.d.ts +0 -35
  278. package/performance/stats/stats.d.ts +0 -18
  279. package/plugin/generators.json +0 -19
  280. package/plugin/libs/plugin/README.md +0 -11
  281. package/plugin/package.json +0 -9
  282. package/plugin/src/generators/init/compat.d.ts +0 -2
  283. package/plugin/src/generators/init/compat.js +0 -6
  284. package/plugin/src/generators/init/compat.js.map +0 -1
  285. package/plugin/src/generators/init/init.d.ts +0 -7
  286. package/plugin/src/generators/init/init.js +0 -28
  287. package/plugin/src/generators/init/init.js.map +0 -1
  288. package/plugin/src/generators/init/schema.json +0 -6
  289. package/plugin/src/index.d.ts +0 -1
  290. package/plugin/src/index.js +0 -6
  291. package/plugin/src/index.js.map +0 -1
  292. package/staging/caustics/caustisc.d.ts +0 -70
  293. package/staging/spot-light/spot-light-shadow-mesh-input.d.ts +0 -29
  294. package/staging/spot-light/spot-light-shadow-mesh.d.ts +0 -38
  295. /package/shaders/{caustics-material → caustics}/caustics-material.d.ts +0 -0
  296. /package/shaders/{caustics-material → caustics}/caustics-projection-material.d.ts +0 -0
@@ -1,82 +1,94 @@
1
- import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
2
- import { extend, injectBeforeRender, injectNgtRef, NgtSignalStore } from 'angular-three';
1
+ import { CUSTOM_ELEMENTS_SCHEMA, Component, Input } from '@angular/core';
2
+ import { extend, injectBeforeRender, injectNgtRef, signalStore } from 'angular-three';
3
3
  import * as THREE from 'three';
4
4
  import { Group } from 'three';
5
5
  import * as i0 from "@angular/core";
6
6
  extend({ Group });
7
- class NgtsFloat extends NgtSignalStore {
8
- #offset;
9
- set enabled(enabled) {
10
- this.set({ enabled });
7
+ export class NgtsFloat {
8
+ set _enabled(enabled) {
9
+ this.inputs.set({ enabled });
11
10
  }
12
- set speed(speed) {
13
- this.set({ speed });
11
+ set _speed(speed) {
12
+ this.inputs.set({ speed });
14
13
  }
15
- set rotationIntensity(rotationIntensity) {
16
- this.set({ rotationIntensity });
14
+ set _rotationIntensity(rotationIntensity) {
15
+ this.inputs.set({ rotationIntensity });
17
16
  }
18
- set floatIntensity(floatIntensity) {
19
- this.set({ floatIntensity });
17
+ set _floatIntensity(floatIntensity) {
18
+ this.inputs.set({ floatIntensity });
20
19
  }
21
- set floatingRange(floatingRange) {
22
- this.set({ floatingRange });
20
+ set _floatingRange(floatingRange) {
21
+ this.inputs.set({ floatingRange });
23
22
  }
24
23
  constructor() {
25
- super({ speed: 1, rotationIntensity: 1, floatIntensity: 1, floatingRange: [-0.1, 0.1], enabled: true });
26
- this.#offset = Math.random() * 10000;
24
+ this.inputs = signalStore({
25
+ enabled: true,
26
+ speed: 1,
27
+ rotationIntensity: 1,
28
+ floatIntensity: 1,
29
+ floatingRange: [-0.1, 0.1],
30
+ });
27
31
  this.floatRef = injectNgtRef();
28
- injectBeforeRender(this.#onBeforeRender.bind(this));
32
+ this.beforeRender();
29
33
  }
30
- #onBeforeRender({ clock }) {
31
- const float = this.floatRef.untracked;
32
- if (!float)
33
- return;
34
- const { enabled, speed, floatingRange, floatIntensity, rotationIntensity } = this.get();
35
- if (!enabled || speed === 0)
36
- return;
37
- const t = this.#offset + clock.getElapsedTime();
38
- float.rotation.x = (Math.cos((t / 4) * speed) / 8) * rotationIntensity;
39
- float.rotation.y = (Math.sin((t / 4) * speed) / 8) * rotationIntensity;
40
- float.rotation.z = (Math.sin((t / 4) * speed) / 20) * rotationIntensity;
41
- let yPosition = Math.sin((t / 4) * speed) / 10;
42
- yPosition = THREE.MathUtils.mapLinear(yPosition, -0.1, 0.1, floatingRange[0] ?? -0.1, floatingRange[1] ?? 0.1);
43
- float.position.y = yPosition * floatIntensity;
34
+ beforeRender() {
35
+ const offset = Math.random() * 10000;
36
+ injectBeforeRender(({ clock }) => {
37
+ const float = this.floatRef.nativeElement;
38
+ if (!float)
39
+ return;
40
+ const { enabled, speed, rotationIntensity, floatingRange, floatIntensity } = this.inputs.get();
41
+ if (!enabled || speed === 0)
42
+ return;
43
+ const t = offset + clock.getElapsedTime();
44
+ float.rotation.x = (Math.cos((t / 4) * speed) / 8) * rotationIntensity;
45
+ float.rotation.y = (Math.sin((t / 4) * speed) / 8) * rotationIntensity;
46
+ float.rotation.z = (Math.sin((t / 4) * speed) / 20) * rotationIntensity;
47
+ let yPosition = Math.sin((t / 4) * speed) / 10;
48
+ yPosition = THREE.MathUtils.mapLinear(yPosition, -0.1, 0.1, floatingRange?.[0] ?? -0.1, floatingRange?.[1] ?? 0.1);
49
+ float.position.y = yPosition * floatIntensity;
50
+ float.updateMatrix();
51
+ });
44
52
  }
45
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: NgtsFloat, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
46
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.3", type: NgtsFloat, isStandalone: true, selector: "ngts-float", inputs: { floatRef: "floatRef", enabled: "enabled", speed: "speed", rotationIntensity: "rotationIntensity", floatIntensity: "floatIntensity", floatingRange: "floatingRange" }, usesInheritance: true, ngImport: i0, template: `
47
- <ngt-group ngtCompound>
48
- <ngt-group [ref]="floatRef">
49
- <ng-content />
50
- </ngt-group>
51
- </ngt-group>
52
- `, isInline: true }); }
53
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: NgtsFloat, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
54
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: NgtsFloat, isStandalone: true, selector: "ngts-float", inputs: { floatRef: "floatRef", _enabled: ["enabled", "_enabled"], _speed: ["speed", "_speed"], _rotationIntensity: ["rotationIntensity", "_rotationIntensity"], _floatIntensity: ["floatIntensity", "_floatIntensity"], _floatingRange: ["floatingRange", "_floatingRange"] }, ngImport: i0, template: `
55
+ <ngt-group ngtCompound>
56
+ <ngt-group [ref]="floatRef" [matrixAutoUpdate]="false">
57
+ <ng-content />
58
+ </ngt-group>
59
+ </ngt-group>
60
+ `, isInline: true }); }
53
61
  }
54
- export { NgtsFloat };
55
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: NgtsFloat, decorators: [{
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: NgtsFloat, decorators: [{
56
63
  type: Component,
57
64
  args: [{
58
65
  selector: 'ngts-float',
59
66
  standalone: true,
60
67
  template: `
61
- <ngt-group ngtCompound>
62
- <ngt-group [ref]="floatRef">
63
- <ng-content />
64
- </ngt-group>
65
- </ngt-group>
66
- `,
68
+ <ngt-group ngtCompound>
69
+ <ngt-group [ref]="floatRef" [matrixAutoUpdate]="false">
70
+ <ng-content />
71
+ </ngt-group>
72
+ </ngt-group>
73
+ `,
67
74
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
68
75
  }]
69
76
  }], ctorParameters: function () { return []; }, propDecorators: { floatRef: [{
70
77
  type: Input
71
- }], enabled: [{
72
- type: Input
73
- }], speed: [{
74
- type: Input
75
- }], rotationIntensity: [{
76
- type: Input
77
- }], floatIntensity: [{
78
- type: Input
79
- }], floatingRange: [{
80
- type: Input
78
+ }], _enabled: [{
79
+ type: Input,
80
+ args: [{ alias: 'enabled' }]
81
+ }], _speed: [{
82
+ type: Input,
83
+ args: [{ alias: 'speed' }]
84
+ }], _rotationIntensity: [{
85
+ type: Input,
86
+ args: [{ alias: 'rotationIntensity' }]
87
+ }], _floatIntensity: [{
88
+ type: Input,
89
+ args: [{ alias: 'floatIntensity' }]
90
+ }], _floatingRange: [{
91
+ type: Input,
92
+ args: [{ alias: 'floatingRange' }]
81
93
  }] } });
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvYXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvZmxvYXQvZmxvYXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFFLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQWtCLGNBQWMsRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE9BQU8sQ0FBQzs7QUFFOUIsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztBQWdCbEIsTUFZYSxTQUFVLFNBQVEsY0FBOEI7SUFDaEQsT0FBTyxDQUF5QjtJQUl6QyxJQUFhLE9BQU8sQ0FBQyxPQUFnQjtRQUNqQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBYSxLQUFLLENBQUMsS0FBYTtRQUM1QixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBYSxpQkFBaUIsQ0FBQyxpQkFBeUI7UUFDcEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFBYSxjQUFjLENBQUMsY0FBc0I7UUFDOUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELElBQWEsYUFBYSxDQUFDLGFBQWlDO1FBQ3hELElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDtRQUNJLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxFQUFFLGNBQWMsRUFBRSxDQUFDLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUF6Qm5HLFlBQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBRWhDLGFBQVEsR0FBRyxZQUFZLEVBQWUsQ0FBQztRQXdCNUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsZUFBZSxDQUFDLEVBQUUsS0FBSyxFQUFrQjtRQUNyQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQztRQUN0QyxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU87UUFDbkIsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxpQkFBaUIsRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN4RixJQUFJLENBQUMsT0FBTyxJQUFJLEtBQUssS0FBSyxDQUFDO1lBQUUsT0FBTztRQUVwQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNoRCxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLENBQUM7UUFDdkUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLGlCQUFpQixDQUFDO1FBQ3ZFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxpQkFBaUIsQ0FBQztRQUN4RSxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUMvQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQy9HLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLFNBQVMsR0FBRyxjQUFjLENBQUM7SUFDbEQsQ0FBQzs4R0EzQ1EsU0FBUztrR0FBVCxTQUFTLDZRQVRSOzs7Ozs7S0FNVDs7U0FHUSxTQUFTOzJGQUFULFNBQVM7a0JBWnJCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7OztLQU1UO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNwQzswRUFJWSxRQUFRO3NCQUFoQixLQUFLO2dCQUVPLE9BQU87c0JBQW5CLEtBQUs7Z0JBSU8sS0FBSztzQkFBakIsS0FBSztnQkFJTyxpQkFBaUI7c0JBQTdCLEtBQUs7Z0JBSU8sY0FBYztzQkFBMUIsS0FBSztnQkFJTyxhQUFhO3NCQUF6QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZXh0ZW5kLCBpbmplY3RCZWZvcmVSZW5kZXIsIGluamVjdE5ndFJlZiwgTmd0UmVuZGVyU3RhdGUsIE5ndFNpZ25hbFN0b3JlLCB0eXBlIE5ndEdyb3VwIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBHcm91cCB9IGZyb20gJ3RocmVlJztcblxuZXh0ZW5kKHsgR3JvdXAgfSk7XG5cbmV4cG9ydCB0eXBlIE5ndHNGbG9hdFN0YXRlID0ge1xuICAgIGVuYWJsZWQ6IGJvb2xlYW47XG4gICAgc3BlZWQ6IG51bWJlcjtcbiAgICBmbG9hdEludGVuc2l0eTogbnVtYmVyO1xuICAgIHJvdGF0aW9uSW50ZW5zaXR5OiBudW1iZXI7XG4gICAgZmxvYXRpbmdSYW5nZTogW251bWJlcj8sIG51bWJlcj9dO1xufTtcblxuZGVjbGFyZSBnbG9iYWwge1xuICAgIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgICAgICAnbmd0cy1mbG9hdCc6IE5ndHNGbG9hdFN0YXRlICYgTmd0R3JvdXA7XG4gICAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndHMtZmxvYXQnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5ndC1ncm91cCBuZ3RDb21wb3VuZD5cbiAgICAgICAgICAgIDxuZ3QtZ3JvdXAgW3JlZl09XCJmbG9hdFJlZlwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgICAgICAgICA8L25ndC1ncm91cD5cbiAgICAgICAgPC9uZ3QtZ3JvdXA+XG4gICAgYCxcbiAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNGbG9hdCBleHRlbmRzIE5ndFNpZ25hbFN0b3JlPE5ndHNGbG9hdFN0YXRlPiB7XG4gICAgcmVhZG9ubHkgI29mZnNldCA9IE1hdGgucmFuZG9tKCkgKiAxMDAwMDtcblxuICAgIEBJbnB1dCgpIGZsb2F0UmVmID0gaW5qZWN0Tmd0UmVmPFRIUkVFLkdyb3VwPigpO1xuXG4gICAgQElucHV0KCkgc2V0IGVuYWJsZWQoZW5hYmxlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNldCh7IGVuYWJsZWQgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHNwZWVkKHNwZWVkOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBzcGVlZCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgcm90YXRpb25JbnRlbnNpdHkocm90YXRpb25JbnRlbnNpdHk6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IHJvdGF0aW9uSW50ZW5zaXR5IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBmbG9hdEludGVuc2l0eShmbG9hdEludGVuc2l0eTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZmxvYXRJbnRlbnNpdHkgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGZsb2F0aW5nUmFuZ2UoZmxvYXRpbmdSYW5nZTogW251bWJlcj8sIG51bWJlcj9dKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZmxvYXRpbmdSYW5nZSB9KTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoeyBzcGVlZDogMSwgcm90YXRpb25JbnRlbnNpdHk6IDEsIGZsb2F0SW50ZW5zaXR5OiAxLCBmbG9hdGluZ1JhbmdlOiBbLTAuMSwgMC4xXSwgZW5hYmxlZDogdHJ1ZSB9KTtcbiAgICAgICAgaW5qZWN0QmVmb3JlUmVuZGVyKHRoaXMuI29uQmVmb3JlUmVuZGVyLmJpbmQodGhpcykpO1xuICAgIH1cblxuICAgICNvbkJlZm9yZVJlbmRlcih7IGNsb2NrIH06IE5ndFJlbmRlclN0YXRlKSB7XG4gICAgICAgIGNvbnN0IGZsb2F0ID0gdGhpcy5mbG9hdFJlZi51bnRyYWNrZWQ7XG4gICAgICAgIGlmICghZmxvYXQpIHJldHVybjtcbiAgICAgICAgY29uc3QgeyBlbmFibGVkLCBzcGVlZCwgZmxvYXRpbmdSYW5nZSwgZmxvYXRJbnRlbnNpdHksIHJvdGF0aW9uSW50ZW5zaXR5IH0gPSB0aGlzLmdldCgpO1xuICAgICAgICBpZiAoIWVuYWJsZWQgfHwgc3BlZWQgPT09IDApIHJldHVybjtcblxuICAgICAgICBjb25zdCB0ID0gdGhpcy4jb2Zmc2V0ICsgY2xvY2suZ2V0RWxhcHNlZFRpbWUoKTtcbiAgICAgICAgZmxvYXQucm90YXRpb24ueCA9IChNYXRoLmNvcygodCAvIDQpICogc3BlZWQpIC8gOCkgKiByb3RhdGlvbkludGVuc2l0eTtcbiAgICAgICAgZmxvYXQucm90YXRpb24ueSA9IChNYXRoLnNpbigodCAvIDQpICogc3BlZWQpIC8gOCkgKiByb3RhdGlvbkludGVuc2l0eTtcbiAgICAgICAgZmxvYXQucm90YXRpb24ueiA9IChNYXRoLnNpbigodCAvIDQpICogc3BlZWQpIC8gMjApICogcm90YXRpb25JbnRlbnNpdHk7XG4gICAgICAgIGxldCB5UG9zaXRpb24gPSBNYXRoLnNpbigodCAvIDQpICogc3BlZWQpIC8gMTA7XG4gICAgICAgIHlQb3NpdGlvbiA9IFRIUkVFLk1hdGhVdGlscy5tYXBMaW5lYXIoeVBvc2l0aW9uLCAtMC4xLCAwLjEsIGZsb2F0aW5nUmFuZ2VbMF0gPz8gLTAuMSwgZmxvYXRpbmdSYW5nZVsxXSA/PyAwLjEpO1xuICAgICAgICBmbG9hdC5wb3NpdGlvbi55ID0geVBvc2l0aW9uICogZmxvYXRJbnRlbnNpdHk7XG4gICAgfVxufVxuIl19
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvYXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvZmxvYXQvZmxvYXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFFLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNyRyxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sT0FBTyxDQUFDOztBQUU5QixNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0FBK0JsQixNQUFNLE9BQU8sU0FBUztJQVVyQixJQUFpQyxRQUFRLENBQUMsT0FBZ0I7UUFDekQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUErQixNQUFNLENBQUMsS0FBYTtRQUNsRCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQTJDLGtCQUFrQixDQUFDLGlCQUF5QjtRQUN0RixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBd0MsZUFBZSxDQUFDLGNBQXNCO1FBQzdFLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBdUMsY0FBYyxDQUFDLGFBQWlDO1FBQ3RGLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsYUFBYSxFQUFFLENBQUMs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QUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsbUJBQW1CLEVBQUU7Z0JBSUcsZUFBZTtzQkFBdEQsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRTtnQkFJSyxjQUFjO3NCQUFwRCxLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGV4dGVuZCwgaW5qZWN0QmVmb3JlUmVuZGVyLCBpbmplY3ROZ3RSZWYsIHNpZ25hbFN0b3JlLCB0eXBlIE5ndEdyb3VwIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBHcm91cCB9IGZyb20gJ3RocmVlJztcblxuZXh0ZW5kKHsgR3JvdXAgfSk7XG5cbmV4cG9ydCB0eXBlIE5ndHNGbG9hdFN0YXRlID0ge1xuXHRlbmFibGVkOiBib29sZWFuO1xuXHRzcGVlZDogbnVtYmVyO1xuXHRyb3RhdGlvbkludGVuc2l0eTogbnVtYmVyO1xuXHRmbG9hdEludGVuc2l0eTogbnVtYmVyO1xuXHRmbG9hdGluZ1JhbmdlOiBbbnVtYmVyPywgbnVtYmVyP107XG59O1xuXG5kZWNsYXJlIGdsb2JhbCB7XG5cdGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuXHRcdC8qKlxuXHRcdCAqIEBleHRlbmRzIG5ndC1ncm91cFxuXHRcdCAqL1xuXHRcdCduZ3RzLWZsb2F0JzogTmd0c0Zsb2F0U3RhdGUgJiBOZ3RHcm91cDtcblx0fVxufVxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RzLWZsb2F0Jyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LWdyb3VwIG5ndENvbXBvdW5kPlxuXHRcdFx0PG5ndC1ncm91cCBbcmVmXT1cImZsb2F0UmVmXCIgW21hdHJpeEF1dG9VcGRhdGVdPVwiZmFsc2VcIj5cblx0XHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHRcdDwvbmd0LWdyb3VwPlxuXHRcdDwvbmd0LWdyb3VwPlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNGbG9hdCB7XG5cdHByaXZhdGUgaW5wdXRzID0gc2lnbmFsU3RvcmU8Tmd0c0Zsb2F0U3RhdGU+KHtcblx0XHRlbmFibGVkOiB0cnVlLFxuXHRcdHNwZWVkOiAxLFxuXHRcdHJvdGF0aW9uSW50ZW5zaXR5OiAxLFxuXHRcdGZsb2F0SW50ZW5zaXR5OiAxLFxuXHRcdGZsb2F0aW5nUmFuZ2U6IFstMC4xLCAwLjFdLFxuXHR9KTtcblxuXHRASW5wdXQoKSBmbG9hdFJlZiA9IGluamVjdE5ndFJlZjxHcm91cD4oKTtcblx0QElucHV0KHsgYWxpYXM6ICdlbmFibGVkJyB9KSBzZXQgX2VuYWJsZWQoZW5hYmxlZDogYm9vbGVhbikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IGVuYWJsZWQgfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ3NwZWVkJyB9KSBzZXQgX3NwZWVkKHNwZWVkOiBudW1iZXIpIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBzcGVlZCB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAncm90YXRpb25JbnRlbnNpdHknIH0pIHNldCBfcm90YXRpb25JbnRlbnNpdHkocm90YXRpb25JbnRlbnNpdHk6IG51bWJlcikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IHJvdGF0aW9uSW50ZW5zaXR5IH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICdmbG9hdEludGVuc2l0eScgfSkgc2V0IF9mbG9hdEludGVuc2l0eShmbG9hdEludGVuc2l0eTogbnVtYmVyKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgZmxvYXRJbnRlbnNpdHkgfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ2Zsb2F0aW5nUmFuZ2UnIH0pIHNldCBfZmxvYXRpbmdSYW5nZShmbG9hdGluZ1JhbmdlOiBbbnVtYmVyPywgbnVtYmVyP10pIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBmbG9hdGluZ1JhbmdlIH0pO1xuXHR9XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5iZWZvcmVSZW5kZXIoKTtcblx0fVxuXG5cdHByaXZhdGUgYmVmb3JlUmVuZGVyKCkge1xuXHRcdGNvbnN0IG9mZnNldCA9IE1hdGgucmFuZG9tKCkgKiAxMF8wMDA7XG5cdFx0aW5qZWN0QmVmb3JlUmVuZGVyKCh7IGNsb2NrIH0pID0+IHtcblx0XHRcdGNvbnN0IGZsb2F0ID0gdGhpcy5mbG9hdFJlZi5uYXRpdmVFbGVtZW50O1xuXHRcdFx0aWYgKCFmbG9hdCkgcmV0dXJuO1xuXG5cdFx0XHRjb25zdCB7IGVuYWJsZWQsIHNwZWVkLCByb3RhdGlvbkludGVuc2l0eSwgZmxvYXRpbmdSYW5nZSwgZmxvYXRJbnRlbnNpdHkgfSA9IHRoaXMuaW5wdXRzLmdldCgpO1xuXG5cdFx0XHRpZiAoIWVuYWJsZWQgfHwgc3BlZWQgPT09IDApIHJldHVybjtcblx0XHRcdGNvbnN0IHQgPSBvZmZzZXQgKyBjbG9jay5nZXRFbGFwc2VkVGltZSgpO1xuXHRcdFx0ZmxvYXQucm90YXRpb24ueCA9IChNYXRoLmNvcygodCAvIDQpICogc3BlZWQpIC8gOCkgKiByb3RhdGlvbkludGVuc2l0eTtcblx0XHRcdGZsb2F0LnJvdGF0aW9uLnkgPSAoTWF0aC5zaW4oKHQgLyA0KSAqIHNwZWVkKSAvIDgpICogcm90YXRpb25JbnRlbnNpdHk7XG5cdFx0XHRmbG9hdC5yb3RhdGlvbi56ID0gKE1hdGguc2luKCh0IC8gNCkgKiBzcGVlZCkgLyAyMCkgKiByb3RhdGlvbkludGVuc2l0eTtcblx0XHRcdGxldCB5UG9zaXRpb24gPSBNYXRoLnNpbigodCAvIDQpICogc3BlZWQpIC8gMTA7XG5cdFx0XHR5UG9zaXRpb24gPSBUSFJFRS5NYXRoVXRpbHMubWFwTGluZWFyKFxuXHRcdFx0XHR5UG9zaXRpb24sXG5cdFx0XHRcdC0wLjEsXG5cdFx0XHRcdDAuMSxcblx0XHRcdFx0ZmxvYXRpbmdSYW5nZT8uWzBdID8/IC0wLjEsXG5cdFx0XHRcdGZsb2F0aW5nUmFuZ2U/LlsxXSA/PyAwLjEsXG5cdFx0XHQpO1xuXHRcdFx0ZmxvYXQucG9zaXRpb24ueSA9IHlQb3NpdGlvbiAqIGZsb2F0SW50ZW5zaXR5O1xuXHRcdFx0ZmxvYXQudXBkYXRlTWF0cml4KCk7XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==
@@ -1,18 +1,22 @@
1
1
  export * from './accumulative-shadows/accumulative-shadows';
2
2
  export * from './accumulative-shadows/randomized-lights';
3
+ export * from './backdrop/backdrop';
4
+ export * from './bb-anchor/bb-anchor';
3
5
  export * from './bounds/bounds';
4
6
  export * from './camera-shake/camera-shake';
5
- export * from './caustics/caustisc';
6
7
  export * from './center/center';
7
8
  export * from './cloud/cloud';
8
9
  export * from './contact-shadows/contact-shadows';
9
10
  export * from './environment/assets';
10
11
  export * from './environment/environment';
11
12
  export * from './float/float';
13
+ export * from './matcap-texture/matcap-texture';
14
+ export * from './normal-texture/normal-texture';
12
15
  export * from './sky/sky';
13
16
  export * from './sparkles/sparkles';
17
+ export { NgtsSpotLightShadow } from './spot-light/shadow-mesh';
14
18
  export * from './spot-light/spot-light';
15
- export { NgtsSpotLightShadow } from './spot-light/spot-light-shadow-mesh';
16
19
  export * from './stage/stage';
17
20
  export * from './stars/stars';
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzFFLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hY2N1bXVsYXRpdmUtc2hhZG93cy9hY2N1bXVsYXRpdmUtc2hhZG93cyc7XG5leHBvcnQgKiBmcm9tICcuL2FjY3VtdWxhdGl2ZS1zaGFkb3dzL3JhbmRvbWl6ZWQtbGlnaHRzJztcbmV4cG9ydCAqIGZyb20gJy4vYm91bmRzL2JvdW5kcyc7XG5leHBvcnQgKiBmcm9tICcuL2NhbWVyYS1zaGFrZS9jYW1lcmEtc2hha2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jYXVzdGljcy9jYXVzdGlzYyc7XG5leHBvcnQgKiBmcm9tICcuL2NlbnRlci9jZW50ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9jbG91ZC9jbG91ZCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnRhY3Qtc2hhZG93cy9jb250YWN0LXNoYWRvd3MnO1xuZXhwb3J0ICogZnJvbSAnLi9lbnZpcm9ubWVudC9hc3NldHMnO1xuZXhwb3J0ICogZnJvbSAnLi9lbnZpcm9ubWVudC9lbnZpcm9ubWVudCc7XG5leHBvcnQgKiBmcm9tICcuL2Zsb2F0L2Zsb2F0JztcbmV4cG9ydCAqIGZyb20gJy4vc2t5L3NreSc7XG5leHBvcnQgKiBmcm9tICcuL3NwYXJrbGVzL3NwYXJrbGVzJztcbmV4cG9ydCAqIGZyb20gJy4vc3BvdC1saWdodC9zcG90LWxpZ2h0JztcbmV4cG9ydCB7IE5ndHNTcG90TGlnaHRTaGFkb3cgfSBmcm9tICcuL3Nwb3QtbGlnaHQvc3BvdC1saWdodC1zaGFkb3ctbWVzaCc7XG5leHBvcnQgKiBmcm9tICcuL3N0YWdlL3N0YWdlJztcbmV4cG9ydCAqIGZyb20gJy4vc3RhcnMvc3RhcnMnO1xuIl19
21
+ export * from './wireframe/wireframe';
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FjY3VtdWxhdGl2ZS1zaGFkb3dzL2FjY3VtdWxhdGl2ZS1zaGFkb3dzJztcbmV4cG9ydCAqIGZyb20gJy4vYWNjdW11bGF0aXZlLXNoYWRvd3MvcmFuZG9taXplZC1saWdodHMnO1xuZXhwb3J0ICogZnJvbSAnLi9iYWNrZHJvcC9iYWNrZHJvcCc7XG5leHBvcnQgKiBmcm9tICcuL2JiLWFuY2hvci9iYi1hbmNob3InO1xuZXhwb3J0ICogZnJvbSAnLi9ib3VuZHMvYm91bmRzJztcbmV4cG9ydCAqIGZyb20gJy4vY2FtZXJhLXNoYWtlL2NhbWVyYS1zaGFrZSc7XG5leHBvcnQgKiBmcm9tICcuL2NlbnRlci9jZW50ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9jbG91ZC9jbG91ZCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnRhY3Qtc2hhZG93cy9jb250YWN0LXNoYWRvd3MnO1xuZXhwb3J0ICogZnJvbSAnLi9lbnZpcm9ubWVudC9hc3NldHMnO1xuZXhwb3J0ICogZnJvbSAnLi9lbnZpcm9ubWVudC9lbnZpcm9ubWVudCc7XG5leHBvcnQgKiBmcm9tICcuL2Zsb2F0L2Zsb2F0JztcbmV4cG9ydCAqIGZyb20gJy4vbWF0Y2FwLXRleHR1cmUvbWF0Y2FwLXRleHR1cmUnO1xuZXhwb3J0ICogZnJvbSAnLi9ub3JtYWwtdGV4dHVyZS9ub3JtYWwtdGV4dHVyZSc7XG5leHBvcnQgKiBmcm9tICcuL3NreS9za3knO1xuZXhwb3J0ICogZnJvbSAnLi9zcGFya2xlcy9zcGFya2xlcyc7XG5leHBvcnQgeyBOZ3RzU3BvdExpZ2h0U2hhZG93IH0gZnJvbSAnLi9zcG90LWxpZ2h0L3NoYWRvdy1tZXNoJztcbmV4cG9ydCAqIGZyb20gJy4vc3BvdC1saWdodC9zcG90LWxpZ2h0JztcbmV4cG9ydCAqIGZyb20gJy4vc3RhZ2Uvc3RhZ2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zdGFycy9zdGFycyc7XG5leHBvcnQgKiBmcm9tICcuL3dpcmVmcmFtZS93aXJlZnJhbWUnO1xuIl19
@@ -0,0 +1,64 @@
1
+ import { computed, effect, runInInjectionContext, signal, untracked } from '@angular/core';
2
+ import { assertInjectionContext } from 'angular-three';
3
+ import { injectNgtsTextureLoader } from 'angular-three-soba/loaders';
4
+ function getFormatString(format) {
5
+ switch (format) {
6
+ case 64:
7
+ return '-64px';
8
+ case 128:
9
+ return '-128px';
10
+ case 256:
11
+ return '-256px';
12
+ case 512:
13
+ return '-512px';
14
+ default:
15
+ return '';
16
+ }
17
+ }
18
+ const LIST_URL = 'https://cdn.jsdelivr.net/gh/pmndrs/drei-assets@master/matcaps.json';
19
+ const MATCAP_ROOT = 'https://rawcdn.githack.com/emmelleppi/matcaps/9b36ccaaf0a24881a39062d05566c9e92be4aa0d';
20
+ const defaultState = {
21
+ id: 0,
22
+ format: 1024,
23
+ };
24
+ export function injectNgtsMatcapTexture(matcapTextureState, { injector } = {}) {
25
+ injector = assertInjectionContext(injectNgtsMatcapTexture, injector);
26
+ return runInInjectionContext(injector, () => {
27
+ const state = computed(() => ({ ...defaultState, ...matcapTextureState() }));
28
+ const matcapList = signal({});
29
+ const DEFAULT_MATCAP = () => matcapList()[0];
30
+ const numTot = () => Object.keys(matcapList()).length;
31
+ effect(() => {
32
+ if (!untracked(numTot)) {
33
+ fetch(LIST_URL)
34
+ .then((res) => res.json())
35
+ .then((data) => {
36
+ matcapList.set(data);
37
+ });
38
+ }
39
+ });
40
+ const fileHash = () => {
41
+ const id = state().id;
42
+ if (typeof id === 'string') {
43
+ return id;
44
+ }
45
+ if (typeof id === 'number' && matcapList()[id]) {
46
+ return matcapList()[id];
47
+ }
48
+ return null;
49
+ };
50
+ const fileName = () => `${fileHash() || DEFAULT_MATCAP()}${getFormatString(state().format)}.png`;
51
+ const url = () => `${MATCAP_ROOT}/${state().format}/${fileName()}`;
52
+ let texture;
53
+ const matcapTexture = computed(() => {
54
+ if (url().includes('undefined'))
55
+ return null;
56
+ if (!texture) {
57
+ texture = injectNgtsTextureLoader(url, { onLoad: state().onLoad, injector });
58
+ }
59
+ return texture();
60
+ });
61
+ return { texture: matcapTexture, numTot, url };
62
+ });
63
+ }
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2FwLXRleHR1cmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvbWF0Y2FwLXRleHR1cmUvbWF0Y2FwLXRleHR1cmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFVLFFBQVEsRUFBRSxNQUFNLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDbEgsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXJFLFNBQVMsZUFBZSxDQUFDLE1BQWM7SUFDdEMsUUFBUSxNQUFNLEVBQUU7UUFDZixLQUFLLEVBQUU7WUFDTixPQUFPLE9BQU8sQ0FBQztRQUNoQixLQUFLLEdBQUc7WUFDUCxPQUFPLFFBQVEsQ0FBQztRQUNqQixLQUFLLEdBQUc7WUFDUCxPQUFPLFFBQVEsQ0FBQztRQUNqQixLQUFLLEdBQUc7WUFDUCxPQUFPLFFBQVEsQ0FBQztRQUNqQjtZQUNDLE9BQU8sRUFBRSxDQUFDO0tBQ1g7QUFDRixDQUFDO0FBRUQsTUFBTSxRQUFRLEdBQUcsb0VBQW9FLENBQUM7QUFDdEYsTUFBTSxXQUFXLEdBQUcsd0ZBQXdGLENBQUM7QUFRN0csTUFBTSxZQUFZLEdBQTJCO0lBQzVDLEVBQUUsRUFBRSxDQUFDO0lBQ0wsTUFBTSxFQUFFLElBQUk7Q0FDWixDQUFDO0FBRUYsTUFBTSxVQUFVLHVCQUF1QixDQUN0QyxrQkFBeUQsRUFDekQsRUFBRSxRQUFRLEtBQThCLEVBQUU7SUFFMUMsUUFBUSxHQUFHLHNCQUFzQixDQUFDLHVCQUF1QixFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3JFLE9BQU8scUJBQXFCLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRTtRQUMzQyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsWUFBWSxFQUFFLEdBQUcsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUU3RSxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQXlCLEVBQUUsQ0FBQyxDQUFDO1FBRXRELE1BQU0sY0FBYyxHQUFHLEdBQUcsRUFBRSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdDLE1BQU0sTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFFdEQsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ3ZCLEtBQUssQ0FBQyxRQUFRLENBQUM7cUJBQ2IsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7cUJBQ3pCLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO29CQUNkLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3RCLENBQUMsQ0FBQyxDQUFDO2FBQ0o7UUFDRixDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sUUFBUSxHQUFHLEdBQUcsRUFBRTtZQUNyQixNQUFNLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDdEIsSUFBSSxPQUFPLEVBQUUsS0FBSyxRQUFRLEVBQUU7Z0JBQzNCLE9BQU8sRUFBRSxDQUFDO2FBQ1Y7WUFFRCxJQUFJLE9BQU8sRUFBRSxLQUFLLFFBQVEsSUFBSSxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRTtnQkFDL0MsT0FBTyxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUN4QjtZQUVELE9BQU8sSUFBSSxDQUFDO1FBQ2IsQ0FBQyxDQUFDO1FBRUYsTUFBTSxRQUFRLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxRQUFRLEVBQUUsSUFBSSxjQUFjLEVBQUUsR0FBRyxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUNqRyxNQUFNLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQyxHQUFHLFdBQVcsSUFBSSxLQUFLLEVBQUUsQ0FBQyxNQUFNLElBQUksUUFBUSxFQUFFLEVBQUUsQ0FBQztRQUVuRSxJQUFJLE9BQXFDLENBQUM7UUFDMUMsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNuQyxJQUFJLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUM7Z0JBQUUsT0FBTyxJQUFJLENBQUM7WUFDN0MsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDYixPQUFPLEdBQUcsdUJBQXVCLENBQUMsR0FBRyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO2FBQzdFO1lBQ0QsT0FBTyxPQUFPLEVBQUUsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUNoRCxDQUFDLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTaWduYWwsIGNvbXB1dGVkLCBlZmZlY3QsIHJ1bkluSW5qZWN0aW9uQ29udGV4dCwgc2lnbmFsLCB1bnRyYWNrZWQsIHR5cGUgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFzc2VydEluamVjdGlvbkNvbnRleHQgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGluamVjdE5ndHNUZXh0dXJlTG9hZGVyIH0gZnJvbSAnYW5ndWxhci10aHJlZS1zb2JhL2xvYWRlcnMnO1xuXG5mdW5jdGlvbiBnZXRGb3JtYXRTdHJpbmcoZm9ybWF0OiBudW1iZXIpIHtcblx0c3dpdGNoIChmb3JtYXQpIHtcblx0XHRjYXNlIDY0OlxuXHRcdFx0cmV0dXJuICctNjRweCc7XG5cdFx0Y2FzZSAxMjg6XG5cdFx0XHRyZXR1cm4gJy0xMjhweCc7XG5cdFx0Y2FzZSAyNTY6XG5cdFx0XHRyZXR1cm4gJy0yNTZweCc7XG5cdFx0Y2FzZSA1MTI6XG5cdFx0XHRyZXR1cm4gJy01MTJweCc7XG5cdFx0ZGVmYXVsdDpcblx0XHRcdHJldHVybiAnJztcblx0fVxufVxuXG5jb25zdCBMSVNUX1VSTCA9ICdodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvZ2gvcG1uZHJzL2RyZWktYXNzZXRzQG1hc3Rlci9tYXRjYXBzLmpzb24nO1xuY29uc3QgTUFUQ0FQX1JPT1QgPSAnaHR0cHM6Ly9yYXdjZG4uZ2l0aGFjay5jb20vZW1tZWxsZXBwaS9tYXRjYXBzLzliMzZjY2FhZjBhMjQ4ODFhMzkwNjJkMDU1NjZjOWU5MmJlNGFhMGQnO1xuXG5leHBvcnQgdHlwZSBOZ3RzTWF0Y2FwVGV4dHVyZVN0YXRlID0ge1xuXHRpZDogc3RyaW5nIHwgbnVtYmVyO1xuXHRmb3JtYXQ6IG51bWJlcjtcblx0b25Mb2FkPzogKHRleHR1cmU6IFRIUkVFLlRleHR1cmUgfCBUSFJFRS5UZXh0dXJlW10pID0+IHZvaWQ7XG59O1xuXG5jb25zdCBkZWZhdWx0U3RhdGU6IE5ndHNNYXRjYXBUZXh0dXJlU3RhdGUgPSB7XG5cdGlkOiAwLFxuXHRmb3JtYXQ6IDEwMjQsXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0Tmd0c01hdGNhcFRleHR1cmUoXG5cdG1hdGNhcFRleHR1cmVTdGF0ZTogKCkgPT4gUGFydGlhbDxOZ3RzTWF0Y2FwVGV4dHVyZVN0YXRlPixcblx0eyBpbmplY3RvciB9OiB7IGluamVjdG9yPzogSW5qZWN0b3IgfSA9IHt9LFxuKSB7XG5cdGluamVjdG9yID0gYXNzZXJ0SW5qZWN0aW9uQ29udGV4dChpbmplY3ROZ3RzTWF0Y2FwVGV4dHVyZSwgaW5qZWN0b3IpO1xuXHRyZXR1cm4gcnVuSW5JbmplY3Rpb25Db250ZXh0KGluamVjdG9yLCAoKSA9PiB7XG5cdFx0Y29uc3Qgc3RhdGUgPSBjb21wdXRlZCgoKSA9PiAoeyAuLi5kZWZhdWx0U3RhdGUsIC4uLm1hdGNhcFRleHR1cmVTdGF0ZSgpIH0pKTtcblxuXHRcdGNvbnN0IG1hdGNhcExpc3QgPSBzaWduYWw8UmVjb3JkPHN0cmluZywgc3RyaW5nPj4oe30pO1xuXG5cdFx0Y29uc3QgREVGQVVMVF9NQVRDQVAgPSAoKSA9PiBtYXRjYXBMaXN0KClbMF07XG5cdFx0Y29uc3QgbnVtVG90ID0gKCkgPT4gT2JqZWN0LmtleXMobWF0Y2FwTGlzdCgpKS5sZW5ndGg7XG5cblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0aWYgKCF1bnRyYWNrZWQobnVtVG90KSkge1xuXHRcdFx0XHRmZXRjaChMSVNUX1VSTClcblx0XHRcdFx0XHQudGhlbigocmVzKSA9PiByZXMuanNvbigpKVxuXHRcdFx0XHRcdC50aGVuKChkYXRhKSA9PiB7XG5cdFx0XHRcdFx0XHRtYXRjYXBMaXN0LnNldChkYXRhKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdGNvbnN0IGZpbGVIYXNoID0gKCkgPT4ge1xuXHRcdFx0Y29uc3QgaWQgPSBzdGF0ZSgpLmlkO1xuXHRcdFx0aWYgKHR5cGVvZiBpZCA9PT0gJ3N0cmluZycpIHtcblx0XHRcdFx0cmV0dXJuIGlkO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAodHlwZW9mIGlkID09PSAnbnVtYmVyJyAmJiBtYXRjYXBMaXN0KClbaWRdKSB7XG5cdFx0XHRcdHJldHVybiBtYXRjYXBMaXN0KClbaWRdO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gbnVsbDtcblx0XHR9O1xuXG5cdFx0Y29uc3QgZmlsZU5hbWUgPSAoKSA9PiBgJHtmaWxlSGFzaCgpIHx8IERFRkFVTFRfTUFUQ0FQKCl9JHtnZXRGb3JtYXRTdHJpbmcoc3RhdGUoKS5mb3JtYXQpfS5wbmdgO1xuXHRcdGNvbnN0IHVybCA9ICgpID0+IGAke01BVENBUF9ST09UfS8ke3N0YXRlKCkuZm9ybWF0fS8ke2ZpbGVOYW1lKCl9YDtcblxuXHRcdGxldCB0ZXh0dXJlOiBTaWduYWw8VEhSRUUuVGV4dHVyZSB8IG51bGw+O1xuXHRcdGNvbnN0IG1hdGNhcFRleHR1cmUgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0XHRpZiAodXJsKCkuaW5jbHVkZXMoJ3VuZGVmaW5lZCcpKSByZXR1cm4gbnVsbDtcblx0XHRcdGlmICghdGV4dHVyZSkge1xuXHRcdFx0XHR0ZXh0dXJlID0gaW5qZWN0Tmd0c1RleHR1cmVMb2FkZXIodXJsLCB7IG9uTG9hZDogc3RhdGUoKS5vbkxvYWQsIGluamVjdG9yIH0pO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHRleHR1cmUoKTtcblx0XHR9KTtcblxuXHRcdHJldHVybiB7IHRleHR1cmU6IG1hdGNhcFRleHR1cmUsIG51bVRvdCwgdXJsIH07XG5cdH0pO1xufVxuIl19
@@ -0,0 +1,53 @@
1
+ import { computed, effect, runInInjectionContext, signal, untracked } from '@angular/core';
2
+ import { assertInjectionContext } from 'angular-three';
3
+ import { injectNgtsTextureLoader } from 'angular-three-soba/loaders';
4
+ import * as THREE from 'three';
5
+ const NORMAL_ROOT = 'https://rawcdn.githack.com/pmndrs/drei-assets/7a3104997e1576f83472829815b00880d88b32fb';
6
+ const LIST_URL = 'https://cdn.jsdelivr.net/gh/pmndrs/drei-assets@master/normals/normals.json';
7
+ const defaultState = {
8
+ id: 0,
9
+ repeat: [1, 1],
10
+ anisotropy: 1,
11
+ offset: [0, 0],
12
+ };
13
+ export function injectNgtsNormalTexture(normalTextureState, { injector } = {}) {
14
+ injector = assertInjectionContext(injectNgtsNormalTexture, injector);
15
+ return runInInjectionContext(injector, () => {
16
+ const state = computed(() => ({ ...defaultState, ...normalTextureState() }));
17
+ const normalsList = signal({});
18
+ const DEFAULT_NORMAL = () => normalsList()[0];
19
+ const numTot = () => Object.keys(normalsList()).length;
20
+ effect(() => {
21
+ if (!untracked(numTot)) {
22
+ fetch(LIST_URL)
23
+ .then((res) => res.json())
24
+ .then((data) => {
25
+ normalsList.set(data);
26
+ });
27
+ }
28
+ });
29
+ const imageName = () => normalsList()[state().id] || DEFAULT_NORMAL();
30
+ const url = () => `${NORMAL_ROOT}/normals/${imageName()}`;
31
+ let texture;
32
+ const normalTexture = computed(() => {
33
+ if (url().includes('undefined'))
34
+ return null;
35
+ if (!texture) {
36
+ texture = injectNgtsTextureLoader(url, { onLoad: state().onLoad, injector });
37
+ }
38
+ return texture();
39
+ });
40
+ effect(() => {
41
+ const _texture = normalTexture();
42
+ if (!_texture)
43
+ return;
44
+ const { repeat, offset, anisotropy } = state();
45
+ _texture.wrapS = _texture.wrapT = THREE.RepeatWrapping;
46
+ _texture.repeat = new THREE.Vector2(repeat[0], repeat[1]);
47
+ _texture.offset = new THREE.Vector2(offset[0], offset[1]);
48
+ _texture.anisotropy = anisotropy;
49
+ });
50
+ return { texture: normalTexture, numTot, url };
51
+ });
52
+ }
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsLXRleHR1cmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvbm9ybWFsLXRleHR1cmUvbm9ybWFsLXRleHR1cmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBOEIsTUFBTSxlQUFlLENBQUM7QUFDdkgsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JFLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBRS9CLE1BQU0sV0FBVyxHQUFHLHdGQUF3RixDQUFDO0FBQzdHLE1BQU0sUUFBUSxHQUFHLDRFQUE0RSxDQUFDO0FBVTlGLE1BQU0sWUFBWSxHQUEyQjtJQUM1QyxFQUFFLEVBQUUsQ0FBQztJQUNMLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDZCxVQUFVLEVBQUUsQ0FBQztJQUNiLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7Q0FDZCxDQUFDO0FBRUYsTUFBTSxVQUFVLHVCQUF1QixDQUN0QyxrQkFBeUQsRUFDekQsRUFBRSxRQUFRLEtBQThCLEVBQUU7SUFFMUMsUUFBUSxHQUFHLHNCQUFzQixDQUFDLHVCQUF1QixFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3JFLE9BQU8scUJBQXFCLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRTtRQUMzQyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsWUFBWSxFQUFFLEdBQUcsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM3RSxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQXlCLEVBQUUsQ0FBQyxDQUFDO1FBRXZELE1BQU0sY0FBYyxHQUFHLEdBQUcsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFFdkQsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ3ZCLEtBQUssQ0FBQyxRQUFRLENBQUM7cUJBQ2IsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7cUJBQ3pCLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO29CQUNkLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3ZCLENBQUMsQ0FBQyxDQUFDO2FBQ0o7UUFDRixDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sU0FBUyxHQUFHLEdBQUcsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQ3RFLE1BQU0sR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsV0FBVyxZQUFZLFNBQVMsRUFBRSxFQUFFLENBQUM7UUFFMUQsSUFBSSxPQUFxQyxDQUFDO1FBQzFDLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDbkMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1lBQzdDLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ2IsT0FBTyxHQUFHLHVCQUF1QixDQUFDLEdBQUcsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQzthQUM3RTtZQUNELE9BQU8sT0FBTyxFQUFFLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1gsTUFBTSxRQUFRLEdBQUcsYUFBYSxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLFFBQVE7Z0JBQUUsT0FBTztZQUV0QixNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQztZQUMvQyxRQUFRLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLGNBQWMsQ0FBQztZQUN2RCxRQUFRLENBQUMsTUFBTSxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUQsUUFBUSxDQUFDLE1BQU0sR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzFELFFBQVEsQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQ2hELENBQUMsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBlZmZlY3QsIHJ1bkluSW5qZWN0aW9uQ29udGV4dCwgc2lnbmFsLCB1bnRyYWNrZWQsIHR5cGUgSW5qZWN0b3IsIHR5cGUgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBhc3NlcnRJbmplY3Rpb25Db250ZXh0IH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBpbmplY3ROZ3RzVGV4dHVyZUxvYWRlciB9IGZyb20gJ2FuZ3VsYXItdGhyZWUtc29iYS9sb2FkZXJzJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcblxuY29uc3QgTk9STUFMX1JPT1QgPSAnaHR0cHM6Ly9yYXdjZG4uZ2l0aGFjay5jb20vcG1uZHJzL2RyZWktYXNzZXRzLzdhMzEwNDk5N2UxNTc2ZjgzNDcyODI5ODE1YjAwODgwZDg4YjMyZmInO1xuY29uc3QgTElTVF9VUkwgPSAnaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L2doL3BtbmRycy9kcmVpLWFzc2V0c0BtYXN0ZXIvbm9ybWFscy9ub3JtYWxzLmpzb24nO1xuXG5leHBvcnQgdHlwZSBOZ3RzTm9ybWFsVGV4dHVyZVN0YXRlID0ge1xuXHRpZDogc3RyaW5nIHwgbnVtYmVyO1xuXHRyZXBlYXQ6IG51bWJlcltdO1xuXHRhbmlzb3Ryb3B5OiBudW1iZXI7XG5cdG9mZnNldDogbnVtYmVyW107XG5cdG9uTG9hZD86ICh0ZXh0dXJlOiBUSFJFRS5UZXh0dXJlIHwgVEhSRUUuVGV4dHVyZVtdKSA9PiB2b2lkO1xufTtcblxuY29uc3QgZGVmYXVsdFN0YXRlOiBOZ3RzTm9ybWFsVGV4dHVyZVN0YXRlID0ge1xuXHRpZDogMCxcblx0cmVwZWF0OiBbMSwgMV0sXG5cdGFuaXNvdHJvcHk6IDEsXG5cdG9mZnNldDogWzAsIDBdLFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdE5ndHNOb3JtYWxUZXh0dXJlKFxuXHRub3JtYWxUZXh0dXJlU3RhdGU6ICgpID0+IFBhcnRpYWw8Tmd0c05vcm1hbFRleHR1cmVTdGF0ZT4sXG5cdHsgaW5qZWN0b3IgfTogeyBpbmplY3Rvcj86IEluamVjdG9yIH0gPSB7fSxcbikge1xuXHRpbmplY3RvciA9IGFzc2VydEluamVjdGlvbkNvbnRleHQoaW5qZWN0Tmd0c05vcm1hbFRleHR1cmUsIGluamVjdG9yKTtcblx0cmV0dXJuIHJ1bkluSW5qZWN0aW9uQ29udGV4dChpbmplY3RvciwgKCkgPT4ge1xuXHRcdGNvbnN0IHN0YXRlID0gY29tcHV0ZWQoKCkgPT4gKHsgLi4uZGVmYXVsdFN0YXRlLCAuLi5ub3JtYWxUZXh0dXJlU3RhdGUoKSB9KSk7XG5cdFx0Y29uc3Qgbm9ybWFsc0xpc3QgPSBzaWduYWw8UmVjb3JkPHN0cmluZywgc3RyaW5nPj4oe30pO1xuXG5cdFx0Y29uc3QgREVGQVVMVF9OT1JNQUwgPSAoKSA9PiBub3JtYWxzTGlzdCgpWzBdO1xuXHRcdGNvbnN0IG51bVRvdCA9ICgpID0+IE9iamVjdC5rZXlzKG5vcm1hbHNMaXN0KCkpLmxlbmd0aDtcblxuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRpZiAoIXVudHJhY2tlZChudW1Ub3QpKSB7XG5cdFx0XHRcdGZldGNoKExJU1RfVVJMKVxuXHRcdFx0XHRcdC50aGVuKChyZXMpID0+IHJlcy5qc29uKCkpXG5cdFx0XHRcdFx0LnRoZW4oKGRhdGEpID0+IHtcblx0XHRcdFx0XHRcdG5vcm1hbHNMaXN0LnNldChkYXRhKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdGNvbnN0IGltYWdlTmFtZSA9ICgpID0+IG5vcm1hbHNMaXN0KClbc3RhdGUoKS5pZF0gfHwgREVGQVVMVF9OT1JNQUwoKTtcblx0XHRjb25zdCB1cmwgPSAoKSA9PiBgJHtOT1JNQUxfUk9PVH0vbm9ybWFscy8ke2ltYWdlTmFtZSgpfWA7XG5cblx0XHRsZXQgdGV4dHVyZTogU2lnbmFsPFRIUkVFLlRleHR1cmUgfCBudWxsPjtcblx0XHRjb25zdCBub3JtYWxUZXh0dXJlID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdFx0aWYgKHVybCgpLmluY2x1ZGVzKCd1bmRlZmluZWQnKSkgcmV0dXJuIG51bGw7XG5cdFx0XHRpZiAoIXRleHR1cmUpIHtcblx0XHRcdFx0dGV4dHVyZSA9IGluamVjdE5ndHNUZXh0dXJlTG9hZGVyKHVybCwgeyBvbkxvYWQ6IHN0YXRlKCkub25Mb2FkLCBpbmplY3RvciB9KTtcblx0XHRcdH1cblx0XHRcdHJldHVybiB0ZXh0dXJlKCk7XG5cdFx0fSk7XG5cblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgX3RleHR1cmUgPSBub3JtYWxUZXh0dXJlKCk7XG5cdFx0XHRpZiAoIV90ZXh0dXJlKSByZXR1cm47XG5cblx0XHRcdGNvbnN0IHsgcmVwZWF0LCBvZmZzZXQsIGFuaXNvdHJvcHkgfSA9IHN0YXRlKCk7XG5cdFx0XHRfdGV4dHVyZS53cmFwUyA9IF90ZXh0dXJlLndyYXBUID0gVEhSRUUuUmVwZWF0V3JhcHBpbmc7XG5cdFx0XHRfdGV4dHVyZS5yZXBlYXQgPSBuZXcgVEhSRUUuVmVjdG9yMihyZXBlYXRbMF0sIHJlcGVhdFsxXSk7XG5cdFx0XHRfdGV4dHVyZS5vZmZzZXQgPSBuZXcgVEhSRUUuVmVjdG9yMihvZmZzZXRbMF0sIG9mZnNldFsxXSk7XG5cdFx0XHRfdGV4dHVyZS5hbmlzb3Ryb3B5ID0gYW5pc290cm9weTtcblx0XHR9KTtcblxuXHRcdHJldHVybiB7IHRleHR1cmU6IG5vcm1hbFRleHR1cmUsIG51bVRvdCwgdXJsIH07XG5cdH0pO1xufVxuIl19
@@ -1,5 +1,5 @@
1
- import { Component, computed, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
2
- import { injectNgtRef, NgtArgs, NgtSignalStore } from 'angular-three';
1
+ import { CUSTOM_ELEMENTS_SCHEMA, Component, Input, computed } from '@angular/core';
2
+ import { NgtArgs, injectNgtRef, signalStore } from 'angular-three';
3
3
  import * as THREE from 'three';
4
4
  import { Sky } from 'three-stdlib';
5
5
  import * as i0 from "@angular/core";
@@ -11,37 +11,9 @@ function calcPosFromAngles(inclination, azimuth, vector = new THREE.Vector3()) {
11
11
  vector.z = Math.sin(phi);
12
12
  return vector;
13
13
  }
14
- class NgtsSky extends NgtSignalStore {
15
- set distance(distance) {
16
- this.set({ distance });
17
- }
18
- set sunPosition(sunPosition) {
19
- this.set({ sunPosition });
20
- }
21
- set inclination(inclination) {
22
- this.set({ inclination });
23
- }
24
- set azimuth(azimuth) {
25
- this.set({ azimuth });
26
- }
27
- set mieCoefficient(mieCoefficient) {
28
- this.set({ mieCoefficient });
29
- }
30
- set mieDirectionalG(mieDirectionalG) {
31
- this.set({ mieDirectionalG });
32
- }
33
- set rayleigh(rayleigh) {
34
- this.set({ rayleigh });
35
- }
36
- set turbidity(turbidity) {
37
- this.set({ turbidity });
38
- }
39
- #inclination;
40
- #azimuth;
41
- #sunPosition;
42
- #distance;
14
+ export class NgtsSky {
43
15
  constructor() {
44
- super({
16
+ this.inputs = signalStore({
45
17
  inclination: 0.6,
46
18
  azimuth: 0.1,
47
19
  distance: 1000,
@@ -51,64 +23,97 @@ class NgtsSky extends NgtSignalStore {
51
23
  turbidity: 10,
52
24
  });
53
25
  this.skyRef = injectNgtRef();
54
- this.#inclination = this.select('inclination');
55
- this.#azimuth = this.select('azimuth');
56
- this.#sunPosition = this.select('sunPosition');
57
- this.#distance = this.select('distance');
26
+ this.inclination = this.inputs.select('inclination');
27
+ this.azimuth = this.inputs.select('azimuth');
28
+ this.sunPos = this.inputs.select('sunPosition');
29
+ this.distance = this.inputs.select('distance');
30
+ this.sunPosition = computed(() => this.sunPos() || calcPosFromAngles(this.inclination(), this.azimuth()));
31
+ this.scale = computed(() => new THREE.Vector3().setScalar(this.distance()));
32
+ this.mieCoefficient = this.inputs.select('mieCoefficient');
33
+ this.mieDirectionalG = this.inputs.select('mieDirectionalG');
34
+ this.rayleigh = this.inputs.select('rayleigh');
35
+ this.turbidity = this.inputs.select('turbidity');
58
36
  this.sky = new Sky();
59
- this.skyMieCoefficient = this.select('mieCoefficient');
60
- this.skyMieDirectionalG = this.select('mieDirectionalG');
61
- this.skyRayleigh = this.select('rayleigh');
62
- this.skyTurbidity = this.select('turbidity');
63
- this.calculatedSunPosition = computed(() => this.#sunPosition() || calcPosFromAngles(this.#inclination(), this.#azimuth()));
64
- this.scale = computed(() => new THREE.Vector3().setScalar(this.#distance()));
65
37
  }
66
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: NgtsSky, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
67
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.3", type: NgtsSky, isStandalone: true, selector: "ngts-sky", inputs: { skyRef: "skyRef", distance: "distance", sunPosition: "sunPosition", inclination: "inclination", azimuth: "azimuth", mieCoefficient: "mieCoefficient", mieDirectionalG: "mieDirectionalG", rayleigh: "rayleigh", turbidity: "turbidity" }, usesInheritance: true, ngImport: i0, template: `
68
- <ngt-primitive ngtCompound *args="[sky]" [ref]="skyRef" [scale]="scale()">
69
- <ngt-value [rawValue]="skyMieCoefficient()" attach="material.uniforms.mieCoefficient.value" />
70
- <ngt-value [rawValue]="skyMieDirectionalG()" attach="material.uniforms.mieDirectionalG.value" />
71
- <ngt-value [rawValue]="skyRayleigh()" attach="material.uniforms.rayleigh.value" />
72
- <ngt-value [rawValue]="calculatedSunPosition()" attach="material.uniforms.sunPosition.value" />
73
- <ngt-value [rawValue]="skyTurbidity()" attach="material.uniforms.turbidity.value" />
74
- </ngt-primitive>
75
- `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }] }); }
38
+ set _distance(distance) {
39
+ this.inputs.set({ distance });
40
+ }
41
+ set _sunPosition(sunPosition) {
42
+ this.inputs.set({ sunPosition });
43
+ }
44
+ set _inclination(inclination) {
45
+ this.inputs.set({ inclination });
46
+ }
47
+ set _azimuth(azimuth) {
48
+ this.inputs.set({ azimuth });
49
+ }
50
+ set _mieCoefficient(mieCoefficient) {
51
+ this.inputs.set({ mieCoefficient });
52
+ }
53
+ set _mieDirectionalG(mieDirectionalG) {
54
+ this.inputs.set({ mieDirectionalG });
55
+ }
56
+ set _rayleigh(rayleigh) {
57
+ this.inputs.set({ rayleigh });
58
+ }
59
+ set _turbidity(turbidity) {
60
+ this.inputs.set({ turbidity });
61
+ }
62
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: NgtsSky, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
63
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: NgtsSky, isStandalone: true, selector: "ngts-sky", inputs: { skyRef: "skyRef", _distance: ["distance", "_distance"], _sunPosition: ["sunPosition", "_sunPosition"], _inclination: ["inclination", "_inclination"], _azimuth: ["azimuth", "_azimuth"], _mieCoefficient: ["mieCoefficient", "_mieCoefficient"], _mieDirectionalG: ["mieDirectionalG", "_mieDirectionalG"], _rayleigh: ["rayleigh", "_rayleigh"], _turbidity: ["turbidity", "_turbidity"] }, ngImport: i0, template: `
64
+ <ngt-primitive *args="[sky]" [ref]="skyRef" [scale]="scale()" ngtCompound>
65
+ <ngt-value [rawValue]="mieCoefficient()" attach="material.uniforms.mieCoefficient.value" />
66
+ <ngt-value [rawValue]="mieDirectionalG()" attach="material.uniforms.mieDirectionalG.value" />
67
+ <ngt-value [rawValue]="rayleigh()" attach="material.uniforms.rayleigh.value" />
68
+ <ngt-value [rawValue]="sunPosition()" attach="material.uniforms.sunPosition.value" />
69
+ <ngt-value [rawValue]="turbidity()" attach="material.uniforms.turbidity.value" />
70
+ <ng-content />
71
+ </ngt-primitive>
72
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }] }); }
76
73
  }
77
- export { NgtsSky };
78
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: NgtsSky, decorators: [{
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: NgtsSky, decorators: [{
79
75
  type: Component,
80
76
  args: [{
81
77
  selector: 'ngts-sky',
82
78
  standalone: true,
83
79
  template: `
84
- <ngt-primitive ngtCompound *args="[sky]" [ref]="skyRef" [scale]="scale()">
85
- <ngt-value [rawValue]="skyMieCoefficient()" attach="material.uniforms.mieCoefficient.value" />
86
- <ngt-value [rawValue]="skyMieDirectionalG()" attach="material.uniforms.mieDirectionalG.value" />
87
- <ngt-value [rawValue]="skyRayleigh()" attach="material.uniforms.rayleigh.value" />
88
- <ngt-value [rawValue]="calculatedSunPosition()" attach="material.uniforms.sunPosition.value" />
89
- <ngt-value [rawValue]="skyTurbidity()" attach="material.uniforms.turbidity.value" />
90
- </ngt-primitive>
91
- `,
80
+ <ngt-primitive *args="[sky]" [ref]="skyRef" [scale]="scale()" ngtCompound>
81
+ <ngt-value [rawValue]="mieCoefficient()" attach="material.uniforms.mieCoefficient.value" />
82
+ <ngt-value [rawValue]="mieDirectionalG()" attach="material.uniforms.mieDirectionalG.value" />
83
+ <ngt-value [rawValue]="rayleigh()" attach="material.uniforms.rayleigh.value" />
84
+ <ngt-value [rawValue]="sunPosition()" attach="material.uniforms.sunPosition.value" />
85
+ <ngt-value [rawValue]="turbidity()" attach="material.uniforms.turbidity.value" />
86
+ <ng-content />
87
+ </ngt-primitive>
88
+ `,
92
89
  imports: [NgtArgs],
93
90
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
94
91
  }]
95
- }], ctorParameters: function () { return []; }, propDecorators: { skyRef: [{
96
- type: Input
97
- }], distance: [{
98
- type: Input
99
- }], sunPosition: [{
100
- type: Input
101
- }], inclination: [{
102
- type: Input
103
- }], azimuth: [{
104
- type: Input
105
- }], mieCoefficient: [{
106
- type: Input
107
- }], mieDirectionalG: [{
108
- type: Input
109
- }], rayleigh: [{
110
- type: Input
111
- }], turbidity: [{
92
+ }], propDecorators: { skyRef: [{
112
93
  type: Input
94
+ }], _distance: [{
95
+ type: Input,
96
+ args: [{ alias: 'distance' }]
97
+ }], _sunPosition: [{
98
+ type: Input,
99
+ args: [{ alias: 'sunPosition' }]
100
+ }], _inclination: [{
101
+ type: Input,
102
+ args: [{ alias: 'inclination' }]
103
+ }], _azimuth: [{
104
+ type: Input,
105
+ args: [{ alias: 'azimuth' }]
106
+ }], _mieCoefficient: [{
107
+ type: Input,
108
+ args: [{ alias: 'mieCoefficient' }]
109
+ }], _mieDirectionalG: [{
110
+ type: Input,
111
+ args: [{ alias: 'mieDirectionalG' }]
112
+ }], _rayleigh: [{
113
+ type: Input,
114
+ args: [{ alias: 'rayleigh' }]
115
+ }], _turbidity: [{
116
+ type: Input,
117
+ args: [{ alias: 'turbidity' }]
113
118
  }] } });
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL3N0YWdpbmcvc3JjL3NreS9za3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQUVuQyxTQUFTLGlCQUFpQixDQUFDLFdBQW1CLEVBQUUsT0FBZSxFQUFFLE1BQU0sR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7SUFDekYsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUM1QyxNQUFNLEdBQUcsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUMsQ0FBQztJQUUxQyxNQUFNLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekIsTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLE1BQU0sQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUV6QixPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDO0FBbUJELE1BZWEsT0FBUSxTQUFRLGNBQTRCO0lBR3JELElBQWEsUUFBUSxDQUFDLFFBQWdCO1FBQ2xDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzNC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QUFFLENBQUMsT0FBTyxDQUFDO29CQUNsQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDcEM7MEVBRVksTUFBTTtzQkFBZCxLQUFLO2dCQUVPLFFBQVE7c0JBQXBCLEtBQUs7Z0JBSU8sV0FBVztzQkFBdkIsS0FBSztnQkFJTyxXQUFXO3NCQUF2QixLQUFLO2dCQUlPLE9BQU87c0JBQW5CLEtBQUs7Z0JBSU8sY0FBYztzQkFBMUIsS0FBSztnQkFJTyxlQUFlO3NCQUEzQixLQUFLO2dCQUlPLFFBQVE7c0JBQXBCLEtBQUs7Z0JBSU8sU0FBUztzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbmplY3ROZ3RSZWYsIE5ndEFyZ3MsIE5ndFNpZ25hbFN0b3JlIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBTa3kgfSBmcm9tICd0aHJlZS1zdGRsaWInO1xuXG5mdW5jdGlvbiBjYWxjUG9zRnJvbUFuZ2xlcyhpbmNsaW5hdGlvbjogbnVtYmVyLCBhemltdXRoOiBudW1iZXIsIHZlY3RvciA9IG5ldyBUSFJFRS5WZWN0b3IzKCkpIHtcbiAgICBjb25zdCB0aGV0YSA9IE1hdGguUEkgKiAoaW5jbGluYXRpb24gLSAwLjUpO1xuICAgIGNvbnN0IHBoaSA9IDIgKiBNYXRoLlBJICogKGF6aW11dGggLSAwLjUpO1xuXG4gICAgdmVjdG9yLnggPSBNYXRoLmNvcyhwaGkpO1xuICAgIHZlY3Rvci55ID0gTWF0aC5zaW4odGhldGEpO1xuICAgIHZlY3Rvci56ID0gTWF0aC5zaW4ocGhpKTtcblxuICAgIHJldHVybiB2ZWN0b3I7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0c1NreVN0YXRlIHtcbiAgICBkaXN0YW5jZTogbnVtYmVyO1xuICAgIHN1blBvc2l0aW9uOiBUSFJFRS5WZWN0b3IzIHwgUGFyYW1ldGVyczxUSFJFRS5WZWN0b3IzWydzZXQnXT47XG4gICAgaW5jbGluYXRpb246IG51bWJlcjtcbiAgICBhemltdXRoOiBudW1iZXI7XG4gICAgbWllQ29lZmZpY2llbnQ6IG51bWJlcjtcbiAgICBtaWVEaXJlY3Rpb25hbEc6IG51bWJlcjtcbiAgICByYXlsZWlnaDogbnVtYmVyO1xuICAgIHR1cmJpZGl0eTogbnVtYmVyO1xufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gICAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgICAgICduZ3RzLXNreSc6IE5ndHNTa3lTdGF0ZSAmIFNreTtcbiAgICB9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd0cy1za3knLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5ndC1wcmltaXRpdmUgbmd0Q29tcG91bmQgKmFyZ3M9XCJbc2t5XVwiIFtyZWZdPVwic2t5UmVmXCIgW3NjYWxlXT1cInNjYWxlKClcIj5cbiAgICAgICAgICAgIDxuZ3QtdmFsdWUgW3Jhd1ZhbHVlXT1cInNreU1pZUNvZWZmaWNpZW50KClcIiBhdHRhY2g9XCJtYXRlcmlhbC51bmlmb3Jtcy5taWVDb2VmZmljaWVudC52YWx1ZVwiIC8+XG4gICAgICAgICAgICA8bmd0LXZhbHVlIFtyYXdWYWx1ZV09XCJza3lNaWVEaXJlY3Rpb25hbEcoKVwiIGF0dGFjaD1cIm1hdGVyaWFsLnVuaWZvcm1zLm1pZURpcmVjdGlvbmFsRy52YWx1ZVwiIC8+XG4gICAgICAgICAgICA8bmd0LXZhbHVlIFtyYXdWYWx1ZV09XCJza3lSYXlsZWlnaCgpXCIgYXR0YWNoPVwibWF0ZXJpYWwudW5pZm9ybXMucmF5bGVpZ2gudmFsdWVcIiAvPlxuICAgICAgICAgICAgPG5ndC12YWx1ZSBbcmF3VmFsdWVdPVwiY2FsY3VsYXRlZFN1blBvc2l0aW9uKClcIiBhdHRhY2g9XCJtYXRlcmlhbC51bmlmb3Jtcy5zdW5Qb3NpdGlvbi52YWx1ZVwiIC8+XG4gICAgICAgICAgICA8bmd0LXZhbHVlIFtyYXdWYWx1ZV09XCJza3lUdXJiaWRpdHkoKVwiIGF0dGFjaD1cIm1hdGVyaWFsLnVuaWZvcm1zLnR1cmJpZGl0eS52YWx1ZVwiIC8+XG4gICAgICAgIDwvbmd0LXByaW1pdGl2ZT5cbiAgICBgLFxuICAgIGltcG9ydHM6IFtOZ3RBcmdzXSxcbiAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNTa3kgZXh0ZW5kcyBOZ3RTaWduYWxTdG9yZTxOZ3RzU2t5U3RhdGU+IHtcbiAgICBASW5wdXQoKSBza3lSZWYgPSBpbmplY3ROZ3RSZWY8U2t5PigpO1xuXG4gICAgQElucHV0KCkgc2V0IGRpc3RhbmNlKGRpc3RhbmNlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBkaXN0YW5jZSB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgc3VuUG9zaXRpb24oc3VuUG9zaXRpb246IFRIUkVFLlZlY3RvcjMgfCBQYXJhbWV0ZXJzPFRIUkVFLlZlY3RvcjNbJ3NldCddPikge1xuICAgICAgICB0aGlzLnNldCh7IHN1blBvc2l0aW9uIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBpbmNsaW5hdGlvbihpbmNsaW5hdGlvbjogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgaW5jbGluYXRpb24gfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGF6aW11dGgoYXppbXV0aDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgYXppbXV0aCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgbWllQ29lZmZpY2llbnQobWllQ29lZmZpY2llbnQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IG1pZUNvZWZmaWNpZW50IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBtaWVEaXJlY3Rpb25hbEcobWllRGlyZWN0aW9uYWxHOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBtaWVEaXJlY3Rpb25hbEcgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHJheWxlaWdoKHJheWxlaWdoOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyByYXlsZWlnaCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgdHVyYmlkaXR5KHR1cmJpZGl0eTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgdHVyYmlkaXR5IH0pO1xuICAgIH1cblxuICAgIHJlYWRvbmx5ICNpbmNsaW5hdGlvbiA9IHRoaXMuc2VsZWN0KCdpbmNsaW5hdGlvbicpO1xuICAgIHJlYWRvbmx5ICNhemltdXRoID0gdGhpcy5zZWxlY3QoJ2F6aW11dGgnKTtcbiAgICByZWFkb25seSAjc3VuUG9zaXRpb24gPSB0aGlzLnNlbGVjdCgnc3VuUG9zaXRpb24nKTtcbiAgICByZWFkb25seSAjZGlzdGFuY2UgPSB0aGlzLnNlbGVjdCgnZGlzdGFuY2UnKTtcblxuICAgIHJlYWRvbmx5IHNreSA9IG5ldyBTa3koKTtcblxuICAgIHJlYWRvbmx5IHNreU1pZUNvZWZmaWNpZW50ID0gdGhpcy5zZWxlY3QoJ21pZUNvZWZmaWNpZW50Jyk7XG4gICAgcmVhZG9ubHkgc2t5TWllRGlyZWN0aW9uYWxHID0gdGhpcy5zZWxlY3QoJ21pZURpcmVjdGlvbmFsRycpO1xuICAgIHJlYWRvbmx5IHNreVJheWxlaWdoID0gdGhpcy5zZWxlY3QoJ3JheWxlaWdoJyk7XG4gICAgcmVhZG9ubHkgc2t5VHVyYmlkaXR5ID0gdGhpcy5zZWxlY3QoJ3R1cmJpZGl0eScpO1xuXG4gICAgcmVhZG9ubHkgY2FsY3VsYXRlZFN1blBvc2l0aW9uID0gY29tcHV0ZWQoXG4gICAgICAgICgpID0+IHRoaXMuI3N1blBvc2l0aW9uKCkgfHwgY2FsY1Bvc0Zyb21BbmdsZXModGhpcy4jaW5jbGluYXRpb24oKSwgdGhpcy4jYXppbXV0aCgpKVxuICAgICk7XG4gICAgcmVhZG9ubHkgc2NhbGUgPSBjb21wdXRlZCgoKSA9PiBuZXcgVEhSRUUuVmVjdG9yMygpLnNldFNjYWxhcih0aGlzLiNkaXN0YW5jZSgpKSk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgaW5jbGluYXRpb246IDAuNixcbiAgICAgICAgICAgIGF6aW11dGg6IDAuMSxcbiAgICAgICAgICAgIGRpc3RhbmNlOiAxMDAwLFxuICAgICAgICAgICAgbWllQ29lZmZpY2llbnQ6IDAuMDA1LFxuICAgICAgICAgICAgbWllRGlyZWN0aW9uYWxHOiAwLjgsXG4gICAgICAgICAgICByYXlsZWlnaDogMC41LFxuICAgICAgICAgICAgdHVyYmlkaXR5OiAxMCxcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL3N0YWdpbmcvc3JjL3NreS9za3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBZ0IsTUFBTSxlQUFlLENBQUM7QUFDakYsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFFbkMsU0FBUyxpQkFBaUIsQ0FBQyxXQUFtQixFQUFFLE9BQWUsRUFBRSxNQUFNLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFO0lBQzVGLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDNUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFFMUMsTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLE1BQU0sQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixNQUFNLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFekIsT0FBTyxNQUFNLENBQUM7QUFDZixDQUFDO0FBdUNELE1BQU0sT0FBTyxPQUFPO0lBaEJwQjtRQWlCUyxXQUFNLEdBQUcsV0FBVyxDQUFlO1lBQzFDLFdBQVcsRUFBRSxHQUFHO1lBQ2hCLE9BQU8sRUFBRSxHQUFHO1lBQ1osUUFBUSxFQUFF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QUFDO29CQUNWLFFBQVEsRUFBRSxVQUFVO29CQUNwQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7Ozs7Ozs7RUFTVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ2xCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNqQzs4QkFZUyxNQUFNO3NCQUFkLEtBQUs7Z0JBRTRCLFNBQVM7c0JBQTFDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFO2dCQUlTLFlBQVk7c0JBQWhELEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFO2dCQUlNLFlBQVk7c0JBQWhELEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFO2dCQUlFLFFBQVE7c0JBQXhDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO2dCQUlhLGVBQWU7c0JBQXRELEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBSU8sZ0JBQWdCO3NCQUF4RCxLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFO2dCQUlELFNBQVM7c0JBQTFDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFO2dCQUlPLFVBQVU7c0JBQTVDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ29tcG9uZW50LCBJbnB1dCwgY29tcHV0ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIGluamVjdE5ndFJlZiwgc2lnbmFsU3RvcmUsIHR5cGUgTmd0TWVzaCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgU2t5IH0gZnJvbSAndGhyZWUtc3RkbGliJztcblxuZnVuY3Rpb24gY2FsY1Bvc0Zyb21BbmdsZXMoaW5jbGluYXRpb246IG51bWJlciwgYXppbXV0aDogbnVtYmVyLCB2ZWN0b3IgPSBuZXcgVEhSRUUuVmVjdG9yMygpKSB7XG5cdGNvbnN0IHRoZXRhID0gTWF0aC5QSSAqIChpbmNsaW5hdGlvbiAtIDAuNSk7XG5cdGNvbnN0IHBoaSA9IDIgKiBNYXRoLlBJICogKGF6aW11dGggLSAwLjUpO1xuXG5cdHZlY3Rvci54ID0gTWF0aC5jb3MocGhpKTtcblx0dmVjdG9yLnkgPSBNYXRoLnNpbih0aGV0YSk7XG5cdHZlY3Rvci56ID0gTWF0aC5zaW4ocGhpKTtcblxuXHRyZXR1cm4gdmVjdG9yO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5ndHNTa3lTdGF0ZSB7XG5cdGRpc3RhbmNlOiBudW1iZXI7XG5cdHN1blBvc2l0aW9uOiBUSFJFRS5WZWN0b3IzIHwgUGFyYW1ldGVyczxUSFJFRS5WZWN0b3IzWydzZXQnXT47XG5cdGluY2xpbmF0aW9uOiBudW1iZXI7XG5cdGF6aW11dGg6IG51bWJlcjtcblx0bWllQ29lZmZpY2llbnQ6IG51bWJlcjtcblx0bWllRGlyZWN0aW9uYWxHOiBudW1iZXI7XG5cdHJheWxlaWdoOiBudW1iZXI7XG5cdHR1cmJpZGl0eTogbnVtYmVyO1xufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG5cdGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuXHRcdC8qKlxuXHRcdCAqIEBleHRlbmRzIHRocmVlLXN0ZGxpYnxTa3lcblx0XHQgKiBAZXh0ZW5kcyBuZ3QtbWVzaFxuXHRcdCAqL1xuXHRcdCduZ3RzLXNreSc6IE5ndHNTa3lTdGF0ZSAmIFNreSAmIE5ndE1lc2g7XG5cdH1cbn1cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cy1za3knLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtcHJpbWl0aXZlICphcmdzPVwiW3NreV1cIiBbcmVmXT1cInNreVJlZlwiIFtzY2FsZV09XCJzY2FsZSgpXCIgbmd0Q29tcG91bmQ+XG5cdFx0XHQ8bmd0LXZhbHVlIFtyYXdWYWx1ZV09XCJtaWVDb2VmZmljaWVudCgpXCIgYXR0YWNoPVwibWF0ZXJpYWwudW5pZm9ybXMubWllQ29lZmZpY2llbnQudmFsdWVcIiAvPlxuXHRcdFx0PG5ndC12YWx1ZSBbcmF3VmFsdWVdPVwibWllRGlyZWN0aW9uYWxHKClcIiBhdHRhY2g9XCJtYXRlcmlhbC51bmlmb3Jtcy5taWVEaXJlY3Rpb25hbEcudmFsdWVcIiAvPlxuXHRcdFx0PG5ndC12YWx1ZSBbcmF3VmFsdWVdPVwicmF5bGVpZ2goKVwiIGF0dGFjaD1cIm1hdGVyaWFsLnVuaWZvcm1zLnJheWxlaWdoLnZhbHVlXCIgLz5cblx0XHRcdDxuZ3QtdmFsdWUgW3Jhd1ZhbHVlXT1cInN1blBvc2l0aW9uKClcIiBhdHRhY2g9XCJtYXRlcmlhbC51bmlmb3Jtcy5zdW5Qb3NpdGlvbi52YWx1ZVwiIC8+XG5cdFx0XHQ8bmd0LXZhbHVlIFtyYXdWYWx1ZV09XCJ0dXJiaWRpdHkoKVwiIGF0dGFjaD1cIm1hdGVyaWFsLnVuaWZvcm1zLnR1cmJpZGl0eS52YWx1ZVwiIC8+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LXByaW1pdGl2ZT5cblx0YCxcblx0aW1wb3J0czogW05ndEFyZ3NdLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNTa3kge1xuXHRwcml2YXRlIGlucHV0cyA9IHNpZ25hbFN0b3JlPE5ndHNTa3lTdGF0ZT4oe1xuXHRcdGluY2xpbmF0aW9uOiAwLjYsXG5cdFx0YXppbXV0aDogMC4xLFxuXHRcdGRpc3RhbmNlOiAxMDAwLFxuXHRcdG1pZUNvZWZmaWNpZW50OiAwLjAwNSxcblx0XHRtaWVEaXJlY3Rpb25hbEc6IDAuOCxcblx0XHRyYXlsZWlnaDogMC41LFxuXHRcdHR1cmJpZGl0eTogMTAsXG5cdH0pO1xuXG5cdEBJbnB1dCgpIHNreVJlZiA9IGluamVjdE5ndFJlZjxTa3k+KCk7XG5cblx0QElucHV0KHsgYWxpYXM6ICdkaXN0YW5jZScgfSkgc2V0IF9kaXN0YW5jZShkaXN0YW5jZTogbnVtYmVyKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgZGlzdGFuY2UgfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ3N1blBvc2l0aW9uJyB9KSBzZXQgX3N1blBvc2l0aW9uKHN1blBvc2l0aW9uOiBUSFJFRS5WZWN0b3IzIHwgUGFyYW1ldGVyczxUSFJFRS5WZWN0b3IzWydzZXQnXT4pIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBzdW5Qb3NpdGlvbiB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnaW5jbGluYXRpb24nIH0pIHNldCBfaW5jbGluYXRpb24oaW5jbGluYXRpb246IG51bWJlcikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IGluY2xpbmF0aW9uIH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICdhemltdXRoJyB9KSBzZXQgX2F6aW11dGgoYXppbXV0aDogbnVtYmVyKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgYXppbXV0aCB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnbWllQ29lZmZpY2llbnQnIH0pIHNldCBfbWllQ29lZmZpY2llbnQobWllQ29lZmZpY2llbnQ6IG51bWJlcikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IG1pZUNvZWZmaWNpZW50IH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICdtaWVEaXJlY3Rpb25hbEcnIH0pIHNldCBfbWllRGlyZWN0aW9uYWxHKG1pZURpcmVjdGlvbmFsRzogbnVtYmVyKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgbWllRGlyZWN0aW9uYWxHIH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICdyYXlsZWlnaCcgfSkgc2V0IF9yYXlsZWlnaChyYXlsZWlnaDogbnVtYmVyKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgcmF5bGVpZ2ggfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ3R1cmJpZGl0eScgfSkgc2V0IF90dXJiaWRpdHkodHVyYmlkaXR5OiBudW1iZXIpIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyB0dXJiaWRpdHkgfSk7XG5cdH1cblxuXHRwcml2YXRlIGluY2xpbmF0aW9uID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdpbmNsaW5hdGlvbicpO1xuXHRwcml2YXRlIGF6aW11dGggPSB0aGlzLmlucHV0cy5zZWxlY3QoJ2F6aW11dGgnKTtcblx0cHJpdmF0ZSBzdW5Qb3MgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ3N1blBvc2l0aW9uJyk7XG5cdHByaXZhdGUgZGlzdGFuY2UgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ2Rpc3RhbmNlJyk7XG5cblx0c3VuUG9zaXRpb24gPSBjb21wdXRlZCgoKSA9PiB0aGlzLnN1blBvcygpIHx8IGNhbGNQb3NGcm9tQW5nbGVzKHRoaXMuaW5jbGluYXRpb24oKSwgdGhpcy5hemltdXRoKCkpKTtcblx0c2NhbGUgPSBjb21wdXRlZCgoKSA9PiBuZXcgVEhSRUUuVmVjdG9yMygpLnNldFNjYWxhcih0aGlzLmRpc3RhbmNlKCkpKTtcblx0bWllQ29lZmZpY2llbnQgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ21pZUNvZWZmaWNpZW50Jyk7XG5cdG1pZURpcmVjdGlvbmFsRyA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnbWllRGlyZWN0aW9uYWxHJyk7XG5cdHJheWxlaWdoID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdyYXlsZWlnaCcpO1xuXHR0dXJiaWRpdHkgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ3R1cmJpZGl0eScpO1xuXG5cdHNreSA9IG5ldyBTa3koKTtcbn1cbiJdfQ==