angular-three-soba 2.0.0-beta.9 → 2.0.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 (423) hide show
  1. package/README.md +62 -4
  2. package/abstractions/README.md +279 -2
  3. package/abstractions/index.d.ts +13 -6
  4. package/abstractions/lib/billboard.d.ts +19 -0
  5. package/abstractions/lib/catmull-rom-line.d.ts +617 -0
  6. package/abstractions/lib/cubic-bezier-line.d.ts +19 -0
  7. package/abstractions/lib/edges.d.ts +800 -0
  8. package/abstractions/lib/gradient-texture.d.ts +24 -0
  9. package/abstractions/lib/grid.d.ts +315 -0
  10. package/abstractions/lib/helper.d.ts +25 -0
  11. package/abstractions/lib/line.d.ts +41 -0
  12. package/abstractions/lib/prism-geometry.d.ts +32 -0
  13. package/abstractions/lib/quadratic-bezier-line.d.ts +21 -0
  14. package/abstractions/lib/rounded-box.d.ts +41 -0
  15. package/abstractions/lib/text-3d.d.ts +314 -0
  16. package/abstractions/lib/text.d.ts +54 -0
  17. package/cameras/README.md +91 -2
  18. package/cameras/index.d.ts +4 -4
  19. package/cameras/lib/camera-content.d.ts +10 -0
  20. package/cameras/lib/cube-camera.d.ts +38 -0
  21. package/cameras/lib/orthographic-camera.d.ts +40 -0
  22. package/cameras/lib/perspective-camera.d.ts +36 -0
  23. package/controls/README.md +96 -2
  24. package/controls/index.d.ts +4 -1
  25. package/controls/lib/camera-controls.d.ts +31 -0
  26. package/controls/lib/orbit-controls.d.ts +38 -0
  27. package/controls/lib/pivot-controls/axis-arrow.d.ts +31 -0
  28. package/controls/lib/pivot-controls/axis-rotator.d.ts +30 -0
  29. package/controls/lib/pivot-controls/pivot-controls.d.ts +110 -0
  30. package/controls/lib/pivot-controls/plane-slider.d.ts +32 -0
  31. package/controls/lib/pivot-controls/scaling-sphere.d.ts +32 -0
  32. package/controls/lib/scroll-controls.d.ts +78 -0
  33. package/esm2022/abstractions/index.mjs +14 -7
  34. package/esm2022/abstractions/lib/billboard.mjs +69 -0
  35. package/esm2022/abstractions/lib/catmull-rom-line.mjs +76 -0
  36. package/esm2022/abstractions/lib/cubic-bezier-line.mjs +51 -0
  37. package/esm2022/abstractions/lib/edges.mjs +70 -0
  38. package/esm2022/abstractions/lib/gradient-texture.mjs +91 -0
  39. package/esm2022/abstractions/lib/grid.mjs +103 -0
  40. package/esm2022/abstractions/lib/helper.mjs +76 -0
  41. package/esm2022/abstractions/lib/line.mjs +126 -0
  42. package/esm2022/abstractions/lib/prism-geometry.mjs +46 -0
  43. package/esm2022/abstractions/lib/quadratic-bezier-line.mjs +73 -0
  44. package/esm2022/abstractions/lib/rounded-box.mjs +111 -0
  45. package/esm2022/abstractions/lib/text-3d.mjs +98 -0
  46. package/esm2022/abstractions/lib/text.mjs +91 -0
  47. package/esm2022/cameras/index.mjs +5 -5
  48. package/esm2022/cameras/lib/camera-content.mjs +14 -0
  49. package/esm2022/cameras/lib/cube-camera.mjs +111 -0
  50. package/esm2022/cameras/lib/orthographic-camera.mjs +131 -0
  51. package/esm2022/cameras/lib/perspective-camera.mjs +104 -0
  52. package/esm2022/controls/index.mjs +5 -2
  53. package/esm2022/controls/lib/camera-controls.mjs +127 -0
  54. package/esm2022/controls/lib/orbit-controls.mjs +132 -0
  55. package/esm2022/controls/lib/pivot-controls/axis-arrow.mjs +263 -0
  56. package/esm2022/controls/lib/pivot-controls/axis-rotator.mjs +264 -0
  57. package/esm2022/controls/lib/pivot-controls/pivot-controls.mjs +340 -0
  58. package/esm2022/controls/lib/pivot-controls/plane-slider.mjs +266 -0
  59. package/esm2022/controls/lib/pivot-controls/scaling-sphere.mjs +232 -0
  60. package/esm2022/controls/lib/scroll-controls.mjs +268 -0
  61. package/esm2022/loaders/index.mjs +6 -5
  62. package/esm2022/loaders/lib/font-loader.mjs +49 -0
  63. package/esm2022/loaders/lib/gltf-loader.mjs +51 -0
  64. package/esm2022/loaders/lib/loader.mjs +109 -0
  65. package/esm2022/loaders/lib/progress.mjs +51 -0
  66. package/esm2022/loaders/lib/texture-loader.mjs +32 -0
  67. package/esm2022/materials/index.mjs +8 -7
  68. package/esm2022/materials/lib/custom-shader-material.mjs +71 -0
  69. package/esm2022/materials/lib/mesh-distort-material.mjs +42 -0
  70. package/esm2022/materials/lib/mesh-reflector-material.mjs +278 -0
  71. package/esm2022/materials/lib/mesh-refraction-material.mjs +144 -0
  72. package/esm2022/materials/lib/mesh-transmission-material.mjs +188 -0
  73. package/esm2022/materials/lib/mesh-wobble-material.mjs +42 -0
  74. package/esm2022/materials/lib/point-material.mjs +33 -0
  75. package/esm2022/misc/index.mjs +14 -14
  76. package/esm2022/misc/lib/animations.mjs +71 -0
  77. package/esm2022/misc/lib/bake-shadows.mjs +26 -0
  78. package/esm2022/misc/lib/computed-attribute.mjs +55 -0
  79. package/esm2022/misc/lib/constants.mjs +5 -0
  80. package/esm2022/misc/lib/decal.mjs +139 -0
  81. package/esm2022/misc/lib/deprecated.mjs +15 -0
  82. package/esm2022/misc/lib/depth-buffer.mjs +39 -0
  83. package/esm2022/misc/lib/fbo.mjs +86 -0
  84. package/esm2022/misc/lib/html/html-content.mjs +327 -0
  85. package/esm2022/misc/lib/html/html.mjs +129 -0
  86. package/esm2022/misc/lib/html/utils.mjs +74 -0
  87. package/esm2022/misc/lib/intersect.mjs +52 -0
  88. package/esm2022/misc/lib/sampler.mjs +122 -0
  89. package/esm2022/misc/lib/scale-factor.mjs +29 -0
  90. package/esm2022/performances/index.mjs +7 -6
  91. package/esm2022/performances/lib/adaptive-dpr.mjs +52 -0
  92. package/esm2022/performances/lib/adaptive-events.mjs +28 -0
  93. package/esm2022/performances/lib/detailed.mjs +57 -0
  94. package/esm2022/performances/lib/instances/instances.mjs +183 -0
  95. package/esm2022/performances/lib/instances/position-mesh.mjs +51 -0
  96. package/esm2022/performances/lib/points/points.mjs +278 -0
  97. package/esm2022/performances/lib/points/position-point.mjs +53 -0
  98. package/esm2022/performances/lib/segments/segment-object.mjs +9 -0
  99. package/esm2022/performances/lib/segments/segments.mjs +129 -0
  100. package/esm2022/shaders/index.mjs +4 -18
  101. package/esm2022/shaders/lib/grid-material.mjs +81 -0
  102. package/esm2022/shaders/lib/mesh-refraction-material.mjs +163 -0
  103. package/esm2022/shaders/lib/point-material.mjs +24 -0
  104. package/esm2022/staging/index.mjs +19 -22
  105. package/esm2022/staging/lib/accumulative-shadows.mjs +182 -0
  106. package/esm2022/staging/lib/backdrop.mjs +73 -0
  107. package/esm2022/staging/lib/bb-anchor.mjs +58 -0
  108. package/esm2022/staging/lib/bounds.mjs +286 -0
  109. package/esm2022/staging/lib/camera-shake.mjs +69 -0
  110. package/esm2022/staging/lib/caustics.mjs +188 -0
  111. package/esm2022/staging/lib/center.mjs +118 -0
  112. package/esm2022/staging/lib/contact-shadows.mjs +214 -0
  113. package/esm2022/staging/lib/environment.mjs +481 -0
  114. package/esm2022/staging/lib/float.mjs +70 -0
  115. package/esm2022/staging/lib/lightformer.mjs +107 -0
  116. package/esm2022/staging/lib/matcap-texture.mjs +81 -0
  117. package/esm2022/staging/lib/normal-texture.mjs +81 -0
  118. package/esm2022/staging/lib/randomized-lights.mjs +104 -0
  119. package/esm2022/staging/lib/render-texture.mjs +203 -0
  120. package/esm2022/staging/lib/sky.mjs +86 -0
  121. package/esm2022/staging/lib/spot-light.mjs +453 -0
  122. package/esm2022/staging/lib/stage.mjs +236 -0
  123. package/esm2022/{utils/angular-three-soba-utils.mjs → stats/angular-three-soba-stats.mjs} +1 -1
  124. package/esm2022/stats/index.mjs +2 -0
  125. package/esm2022/stats/lib/stats.mjs +63 -0
  126. package/esm2022/vanilla-exports/angular-three-soba-vanilla-exports.mjs +5 -0
  127. package/esm2022/vanilla-exports/index.mjs +3 -0
  128. package/fesm2022/angular-three-soba-abstractions.mjs +884 -697
  129. package/fesm2022/angular-three-soba-abstractions.mjs.map +1 -1
  130. package/fesm2022/angular-three-soba-cameras.mjs +261 -308
  131. package/fesm2022/angular-three-soba-cameras.mjs.map +1 -1
  132. package/fesm2022/angular-three-soba-controls.mjs +1776 -109
  133. package/fesm2022/angular-three-soba-controls.mjs.map +1 -1
  134. package/fesm2022/angular-three-soba-loaders.mjs +191 -145
  135. package/fesm2022/angular-three-soba-loaders.mjs.map +1 -1
  136. package/fesm2022/angular-three-soba-materials.mjs +527 -748
  137. package/fesm2022/angular-three-soba-materials.mjs.map +1 -1
  138. package/fesm2022/angular-three-soba-misc.mjs +783 -1935
  139. package/fesm2022/angular-three-soba-misc.mjs.map +1 -1
  140. package/fesm2022/angular-three-soba-performances.mjs +591 -475
  141. package/fesm2022/angular-three-soba-performances.mjs.map +1 -1
  142. package/fesm2022/angular-three-soba-shaders.mjs +51 -1369
  143. package/fesm2022/angular-three-soba-shaders.mjs.map +1 -1
  144. package/fesm2022/angular-three-soba-staging.mjs +2350 -3521
  145. package/fesm2022/angular-three-soba-staging.mjs.map +1 -1
  146. package/fesm2022/angular-three-soba-stats.mjs +70 -0
  147. package/fesm2022/angular-three-soba-stats.mjs.map +1 -0
  148. package/fesm2022/angular-three-soba-vanilla-exports.mjs +6 -0
  149. package/fesm2022/angular-three-soba-vanilla-exports.mjs.map +1 -0
  150. package/loaders/README.md +130 -2
  151. package/loaders/index.d.ts +5 -4
  152. package/loaders/lib/font-loader.d.ts +27 -0
  153. package/loaders/lib/gltf-loader.d.ts +24 -0
  154. package/loaders/lib/loader.d.ts +29 -0
  155. package/loaders/lib/progress.d.ts +9 -0
  156. package/loaders/lib/texture-loader.d.ts +13 -0
  157. package/materials/README.md +160 -2
  158. package/materials/index.d.ts +7 -6
  159. package/materials/lib/custom-shader-material.d.ts +20 -0
  160. package/materials/lib/mesh-distort-material.d.ts +17 -0
  161. package/materials/lib/mesh-reflector-material.d.ts +51 -0
  162. package/materials/lib/mesh-refraction-material.d.ts +42 -0
  163. package/materials/lib/mesh-transmission-material.d.ts +77 -0
  164. package/materials/lib/mesh-wobble-material.d.ts +15 -0
  165. package/materials/lib/point-material.d.ts +11 -0
  166. package/metadata.json +1 -1
  167. package/misc/README.md +217 -2
  168. package/misc/index.d.ts +13 -13
  169. package/misc/lib/animations.d.ts +17 -0
  170. package/misc/lib/computed-attribute.d.ts +64 -0
  171. package/misc/lib/constants.d.ts +1 -0
  172. package/misc/lib/decal.d.ts +27 -0
  173. package/misc/lib/deprecated.d.ts +14 -0
  174. package/misc/lib/depth-buffer.d.ts +8 -0
  175. package/misc/lib/fbo.d.ts +46 -0
  176. package/misc/lib/html/html-content.d.ts +47 -0
  177. package/misc/lib/html/html.d.ts +30 -0
  178. package/misc/lib/html/utils.d.ts +14 -0
  179. package/misc/lib/intersect.d.ts +13 -0
  180. package/misc/lib/sampler.d.ts +73 -0
  181. package/misc/lib/scale-factor.d.ts +3 -0
  182. package/package.json +89 -49
  183. package/performances/index.d.ts +6 -5
  184. package/performances/lib/adaptive-dpr.d.ts +7 -0
  185. package/performances/{adaptive-events → lib}/adaptive-events.d.ts +0 -3
  186. package/performances/lib/detailed.d.ts +17 -0
  187. package/performances/lib/instances/instances.d.ts +122 -0
  188. package/performances/lib/instances/position-mesh.d.ts +20 -0
  189. package/performances/lib/points/points.d.ts +224 -0
  190. package/performances/lib/points/position-point.d.ts +21 -0
  191. package/performances/lib/segments/segment-object.d.ts +17 -0
  192. package/performances/lib/segments/segments.d.ts +97 -0
  193. package/shaders/index.d.ts +3 -17
  194. package/shaders/lib/grid-material.d.ts +69 -0
  195. package/shaders/lib/mesh-refraction-material.d.ts +11 -0
  196. package/shaders/lib/point-material.d.ts +14 -0
  197. package/staging/README.md +473 -2
  198. package/staging/index.d.ts +18 -21
  199. package/staging/lib/accumulative-shadows.d.ts +75 -0
  200. package/staging/lib/backdrop.d.ts +22 -0
  201. package/staging/lib/bb-anchor.d.ts +17 -0
  202. package/staging/lib/bounds.d.ts +47 -0
  203. package/staging/lib/camera-shake.d.ts +29 -0
  204. package/staging/lib/caustics.d.ts +53 -0
  205. package/staging/lib/center.d.ts +390 -0
  206. package/staging/lib/contact-shadows.d.ts +55 -0
  207. package/staging/lib/environment.d.ts +132 -0
  208. package/staging/lib/float.d.ts +20 -0
  209. package/staging/lib/lightformer.d.ts +310 -0
  210. package/staging/lib/matcap-texture.d.ts +32 -0
  211. package/staging/lib/normal-texture.d.ts +37 -0
  212. package/staging/lib/randomized-lights.d.ts +54 -0
  213. package/staging/lib/render-texture.d.ts +64 -0
  214. package/staging/lib/sky.d.ts +32 -0
  215. package/staging/lib/spot-light.d.ts +119 -0
  216. package/staging/lib/stage.d.ts +352 -0
  217. package/stats/README.md +3 -0
  218. package/stats/index.d.ts +1 -0
  219. package/stats/lib/stats.d.ts +14 -0
  220. package/vanilla-exports/README.md +3 -0
  221. package/vanilla-exports/index.d.ts +27 -0
  222. package/web-types.json +1 -1
  223. package/abstractions/billboard/billboard.d.ts +0 -28
  224. package/abstractions/detailed/detailed.d.ts +0 -26
  225. package/abstractions/edges/edges.d.ts +0 -34
  226. package/abstractions/grid/grid.d.ts +0 -50
  227. package/abstractions/text/text.d.ts +0 -82
  228. package/abstractions/text-3d/text-3d.d.ts +0 -81
  229. package/assets/distort.vert.glsl +0 -1
  230. package/cameras/camera/camera-content.d.ts +0 -13
  231. package/cameras/camera/camera.d.ts +0 -26
  232. package/cameras/cube-camera/cube-camera.d.ts +0 -69
  233. package/cameras/orthographic-camera/orthographic-camera.d.ts +0 -37
  234. package/cameras/perspective-camera/perspective-camera.d.ts +0 -18
  235. package/controls/orbit-controls/orbit-controls.d.ts +0 -54
  236. package/esm2022/abstractions/billboard/billboard.mjs +0 -74
  237. package/esm2022/abstractions/detailed/detailed.mjs +0 -64
  238. package/esm2022/abstractions/edges/edges.mjs +0 -88
  239. package/esm2022/abstractions/grid/grid.mjs +0 -180
  240. package/esm2022/abstractions/text/text.mjs +0 -274
  241. package/esm2022/abstractions/text-3d/text-3d.mjs +0 -165
  242. package/esm2022/cameras/camera/camera-content.mjs +0 -20
  243. package/esm2022/cameras/camera/camera.mjs +0 -77
  244. package/esm2022/cameras/cube-camera/cube-camera.mjs +0 -161
  245. package/esm2022/cameras/orthographic-camera/orthographic-camera.mjs +0 -102
  246. package/esm2022/cameras/perspective-camera/perspective-camera.mjs +0 -46
  247. package/esm2022/controls/orbit-controls/orbit-controls.mjs +0 -181
  248. package/esm2022/loaders/gltf-loader/gltf-loader.mjs +0 -30
  249. package/esm2022/loaders/loader/loader.mjs +0 -138
  250. package/esm2022/loaders/progress/progress.mjs +0 -45
  251. package/esm2022/loaders/texture-loader/texture-loader.mjs +0 -28
  252. package/esm2022/materials/mesh-distort-material/mesh-distort-material.mjs +0 -82
  253. package/esm2022/materials/mesh-reflector-material/mesh-reflector-material.mjs +0 -367
  254. package/esm2022/materials/mesh-refraction-material/mesh-refraction-material.mjs +0 -171
  255. package/esm2022/materials/mesh-transmission-material/mesh-transmission-material.mjs +0 -278
  256. package/esm2022/materials/mesh-wobble-material/mesh-wobble-material.mjs +0 -68
  257. package/esm2022/materials/point-material/point-material.mjs +0 -46
  258. package/esm2022/misc/animations/animations.mjs +0 -59
  259. package/esm2022/misc/bake-shadows/bake-shadows.mjs +0 -24
  260. package/esm2022/misc/caustics/caustics.mjs +0 -387
  261. package/esm2022/misc/decal/decal.mjs +0 -187
  262. package/esm2022/misc/depth-buffer/depth-buffer.mjs +0 -44
  263. package/esm2022/misc/example/example.mjs +0 -160
  264. package/esm2022/misc/fbo/fbo.mjs +0 -47
  265. package/esm2022/misc/html/html-wrapper.mjs +0 -478
  266. package/esm2022/misc/html/html.mjs +0 -304
  267. package/esm2022/misc/sampler/sampler.mjs +0 -142
  268. package/esm2022/misc/shadow/shadow.mjs +0 -111
  269. package/esm2022/misc/stats-gl/stats-gl.mjs +0 -61
  270. package/esm2022/misc/trail/trail.mjs +0 -209
  271. package/esm2022/misc/trail-texture/inject-trail-texture.mjs +0 -17
  272. package/esm2022/misc/trail-texture/trail-texture.mjs +0 -106
  273. package/esm2022/modifiers/angular-three-soba-modifiers.mjs +0 -5
  274. package/esm2022/modifiers/curve-modifier/curve-modifier.mjs +0 -64
  275. package/esm2022/modifiers/index.mjs +0 -2
  276. package/esm2022/performances/adaptive-dpr/adaptive-dpr.mjs +0 -44
  277. package/esm2022/performances/adaptive-events/adaptive-events.mjs +0 -27
  278. package/esm2022/performances/points/points-input.mjs +0 -64
  279. package/esm2022/performances/points/points.mjs +0 -329
  280. package/esm2022/performances/points/position-point.mjs +0 -54
  281. package/esm2022/performances/segments/segment-object.mjs +0 -9
  282. package/esm2022/performances/segments/segments.mjs +0 -182
  283. package/esm2022/shaders/blur-pass/blur-pass.mjs +0 -61
  284. package/esm2022/shaders/caustics/caustics-material.mjs +0 -130
  285. package/esm2022/shaders/caustics/caustics-projection-material.mjs +0 -31
  286. package/esm2022/shaders/convolution-material/convolution-material.mjs +0 -94
  287. package/esm2022/shaders/discard-material/discard-material.mjs +0 -3
  288. package/esm2022/shaders/grid-material/grid-material.mjs +0 -77
  289. package/esm2022/shaders/mesh-distort-material/mesh-distort-material.mjs +0 -56
  290. package/esm2022/shaders/mesh-reflector-material/mesh-reflector-material.mjs +0 -223
  291. package/esm2022/shaders/mesh-refraction-material/mesh-refraction-material.mjs +0 -170
  292. package/esm2022/shaders/mesh-transmission-material/mesh-transmission-material.mjs +0 -268
  293. package/esm2022/shaders/mesh-wobble-material/mesh-wobble-material.mjs +0 -37
  294. package/esm2022/shaders/shader-material/shader-material.mjs +0 -34
  295. package/esm2022/shaders/soft-shadow-material/soft-shadow-material.mjs +0 -25
  296. package/esm2022/shaders/sparkles-material/sparkles-material.mjs +0 -33
  297. package/esm2022/shaders/spot-light-material/spot-light-material.mjs +0 -86
  298. package/esm2022/shaders/star-field-material/star-field-material.mjs +0 -33
  299. package/esm2022/shaders/wireframe-material/wireframe-material.mjs +0 -247
  300. package/esm2022/staging/accumulative-shadows/accumulative-shadows.mjs +0 -267
  301. package/esm2022/staging/accumulative-shadows/progressive-light-map.mjs +0 -108
  302. package/esm2022/staging/accumulative-shadows/randomized-lights.mjs +0 -206
  303. package/esm2022/staging/backdrop/backdrop.mjs +0 -77
  304. package/esm2022/staging/bb-anchor/bb-anchor.mjs +0 -70
  305. package/esm2022/staging/bounds/bounds.mjs +0 -308
  306. package/esm2022/staging/camera-shake/camera-shake.mjs +0 -123
  307. package/esm2022/staging/center/center.mjs +0 -163
  308. package/esm2022/staging/cloud/cloud.mjs +0 -158
  309. package/esm2022/staging/contact-shadows/contact-shadows.mjs +0 -246
  310. package/esm2022/staging/environment/assets.mjs +0 -13
  311. package/esm2022/staging/environment/environment-cube.mjs +0 -47
  312. package/esm2022/staging/environment/environment-ground.mjs +0 -41
  313. package/esm2022/staging/environment/environment-input.mjs +0 -119
  314. package/esm2022/staging/environment/environment-map.mjs +0 -53
  315. package/esm2022/staging/environment/environment-portal.mjs +0 -113
  316. package/esm2022/staging/environment/environment.mjs +0 -61
  317. package/esm2022/staging/environment/utils.mjs +0 -105
  318. package/esm2022/staging/float/float.mjs +0 -94
  319. package/esm2022/staging/matcap-texture/matcap-texture.mjs +0 -64
  320. package/esm2022/staging/normal-texture/normal-texture.mjs +0 -53
  321. package/esm2022/staging/sky/sky.mjs +0 -119
  322. package/esm2022/staging/sparkles/sparkles.mjs +0 -164
  323. package/esm2022/staging/spot-light/shadow-mesh-input.mjs +0 -63
  324. package/esm2022/staging/spot-light/shadow-mesh.mjs +0 -266
  325. package/esm2022/staging/spot-light/spot-light-input.mjs +0 -84
  326. package/esm2022/staging/spot-light/spot-light.mjs +0 -81
  327. package/esm2022/staging/spot-light/volumetric-mesh.mjs +0 -98
  328. package/esm2022/staging/stage/stage.mjs +0 -388
  329. package/esm2022/staging/stars/stars.mjs +0 -147
  330. package/esm2022/staging/wireframe/wireframe-input.mjs +0 -191
  331. package/esm2022/staging/wireframe/wireframe.mjs +0 -224
  332. package/esm2022/utils/content/content.mjs +0 -15
  333. package/esm2022/utils/index.mjs +0 -2
  334. package/fesm2022/angular-three-soba-modifiers.mjs +0 -71
  335. package/fesm2022/angular-three-soba-modifiers.mjs.map +0 -1
  336. package/fesm2022/angular-three-soba-utils.mjs +0 -22
  337. package/fesm2022/angular-three-soba-utils.mjs.map +0 -1
  338. package/loaders/gltf-loader/gltf-loader.d.ts +0 -10
  339. package/loaders/loader/loader.d.ts +0 -33
  340. package/loaders/progress/progress.d.ts +0 -9
  341. package/loaders/texture-loader/texture-loader.d.ts +0 -7
  342. package/materials/mesh-distort-material/mesh-distort-material.d.ts +0 -40
  343. package/materials/mesh-reflector-material/mesh-reflector-material.d.ts +0 -99
  344. package/materials/mesh-refraction-material/mesh-refraction-material.d.ts +0 -62
  345. package/materials/mesh-transmission-material/mesh-transmission-material.d.ts +0 -107
  346. package/materials/mesh-wobble-material/mesh-wobble-material.d.ts +0 -29
  347. package/materials/point-material/point-material.d.ts +0 -24
  348. package/misc/animations/animations.d.ts +0 -15
  349. package/misc/caustics/caustics.d.ts +0 -87
  350. package/misc/decal/decal.d.ts +0 -49
  351. package/misc/depth-buffer/depth-buffer.d.ts +0 -9
  352. package/misc/example/example.d.ts +0 -81
  353. package/misc/fbo/fbo.d.ts +0 -17
  354. package/misc/html/html-wrapper.d.ts +0 -559
  355. package/misc/html/html.d.ts +0 -214
  356. package/misc/sampler/sampler.d.ts +0 -67
  357. package/misc/shadow/shadow.d.ts +0 -37
  358. package/misc/stats-gl/stats-gl.d.ts +0 -24
  359. package/misc/trail/trail.d.ts +0 -57
  360. package/misc/trail-texture/inject-trail-texture.d.ts +0 -9
  361. package/misc/trail-texture/trail-texture.d.ts +0 -50
  362. package/modifiers/README.md +0 -3
  363. package/modifiers/curve-modifier/curve-modifier.d.ts +0 -23
  364. package/modifiers/index.d.ts +0 -1
  365. package/performances/adaptive-dpr/adaptive-dpr.d.ts +0 -14
  366. package/performances/points/points-input.d.ts +0 -32
  367. package/performances/points/points.d.ts +0 -92
  368. package/performances/points/position-point.d.ts +0 -11
  369. package/performances/segments/segment-object.d.ts +0 -7
  370. package/performances/segments/segments.d.ts +0 -124
  371. package/shaders/blur-pass/blur-pass.d.ts +0 -23
  372. package/shaders/caustics/caustics-material.d.ts +0 -4
  373. package/shaders/caustics/caustics-projection-material.d.ts +0 -4
  374. package/shaders/convolution-material/convolution-material.d.ts +0 -7
  375. package/shaders/discard-material/discard-material.d.ts +0 -3
  376. package/shaders/grid-material/grid-material.d.ts +0 -37
  377. package/shaders/mesh-distort-material/mesh-distort-material.d.ts +0 -295
  378. package/shaders/mesh-reflector-material/mesh-reflector-material.d.ts +0 -50
  379. package/shaders/mesh-refraction-material/mesh-refraction-material.d.ts +0 -4
  380. package/shaders/mesh-transmission-material/mesh-transmission-material.d.ts +0 -25
  381. package/shaders/mesh-wobble-material/mesh-wobble-material.d.ts +0 -16
  382. package/shaders/shader-material/shader-material.d.ts +0 -6
  383. package/shaders/soft-shadow-material/soft-shadow-material.d.ts +0 -19
  384. package/shaders/sparkles-material/sparkles-material.d.ts +0 -17
  385. package/shaders/spot-light-material/spot-light-material.d.ts +0 -13
  386. package/shaders/star-field-material/star-field-material.d.ts +0 -13
  387. package/shaders/wireframe-material/wireframe-material.d.ts +0 -58
  388. package/staging/accumulative-shadows/accumulative-shadows.d.ts +0 -146
  389. package/staging/accumulative-shadows/progressive-light-map.d.ts +0 -34
  390. package/staging/accumulative-shadows/randomized-lights.d.ts +0 -90
  391. package/staging/backdrop/backdrop.d.ts +0 -30
  392. package/staging/bb-anchor/bb-anchor.d.ts +0 -27
  393. package/staging/bounds/bounds.d.ts +0 -134
  394. package/staging/camera-shake/camera-shake.d.ts +0 -43
  395. package/staging/center/center.d.ts +0 -70
  396. package/staging/cloud/cloud.d.ts +0 -51
  397. package/staging/contact-shadows/contact-shadows.d.ts +0 -70
  398. package/staging/environment/assets.d.ts +0 -13
  399. package/staging/environment/environment-cube.d.ts +0 -15
  400. package/staging/environment/environment-ground.d.ts +0 -13
  401. package/staging/environment/environment-input.d.ts +0 -68
  402. package/staging/environment/environment-map.d.ts +0 -16
  403. package/staging/environment/environment-portal.d.ts +0 -18
  404. package/staging/environment/environment.d.ts +0 -8
  405. package/staging/environment/utils.d.ts +0 -7
  406. package/staging/float/float.d.ts +0 -31
  407. package/staging/matcap-texture/matcap-texture.d.ts +0 -13
  408. package/staging/normal-texture/normal-texture.d.ts +0 -16
  409. package/staging/sky/sky.d.ts +0 -48
  410. package/staging/sparkles/sparkles.d.ts +0 -63
  411. package/staging/spot-light/shadow-mesh-input.d.ts +0 -29
  412. package/staging/spot-light/shadow-mesh.d.ts +0 -37
  413. package/staging/spot-light/spot-light-input.d.ts +0 -38
  414. package/staging/spot-light/spot-light.d.ts +0 -39
  415. package/staging/spot-light/volumetric-mesh.d.ts +0 -24
  416. package/staging/stage/stage.d.ts +0 -130
  417. package/staging/stars/stars.d.ts +0 -45
  418. package/staging/wireframe/wireframe-input.d.ts +0 -65
  419. package/staging/wireframe/wireframe.d.ts +0 -28
  420. package/utils/README.md +0 -3
  421. package/utils/content/content.d.ts +0 -8
  422. package/utils/index.d.ts +0 -1
  423. /package/misc/{bake-shadows → lib}/bake-shadows.d.ts +0 -0
@@ -0,0 +1,52 @@
1
+ import { afterNextRender, Directive, effect, ElementRef, inject, Injector, model, signal, } from '@angular/core';
2
+ import { addAfterEffect, addEffect, resolveRef } from 'angular-three';
3
+ import { assertInjector } from 'ngxtension/assert-injector';
4
+ import * as i0 from "@angular/core";
5
+ export function injectIntersect(object, { injector, source = signal(false) } = {}) {
6
+ return assertInjector(injectIntersect, injector, () => {
7
+ let check = false;
8
+ let temp = false;
9
+ effect((onCleanup) => {
10
+ const obj = resolveRef(object());
11
+ if (!obj)
12
+ return;
13
+ // Stamp out frustum check pre-emptively
14
+ const unsub1 = addEffect(() => {
15
+ check = false;
16
+ return true;
17
+ });
18
+ // If the object is inside the frustum three will call onRender
19
+ const oldOnRender = obj.onBeforeRender.bind(obj);
20
+ obj.onBeforeRender = () => (check = true);
21
+ // Compare the check value against the temp value, if it differs set state
22
+ const unsub2 = addAfterEffect(() => {
23
+ if (check !== temp)
24
+ source.set((temp = check));
25
+ return true;
26
+ });
27
+ onCleanup(() => {
28
+ obj.onBeforeRender = oldOnRender;
29
+ unsub1();
30
+ unsub2();
31
+ });
32
+ });
33
+ return source.asReadonly();
34
+ });
35
+ }
36
+ export class NgtsIntersect {
37
+ constructor() {
38
+ this.intersect = model(false);
39
+ const host = inject(ElementRef);
40
+ const injector = inject(Injector);
41
+ afterNextRender(() => {
42
+ injectIntersect(() => host, { source: this.intersect, injector });
43
+ });
44
+ }
45
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtsIntersect, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
46
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.0", type: NgtsIntersect, isStandalone: true, selector: "[intersect]", inputs: { intersect: { classPropertyName: "intersect", publicName: "intersect", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { intersect: "intersectChange" }, ngImport: i0 }); }
47
+ }
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtsIntersect, decorators: [{
49
+ type: Directive,
50
+ args: [{ standalone: true, selector: '[intersect]' }]
51
+ }], ctorParameters: () => [] });
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJzZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL21pc2Mvc3JjL2xpYi9pbnRlcnNlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLGVBQWUsRUFDZixTQUFTLEVBQ1QsTUFBTSxFQUNOLFVBQVUsRUFDVixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFDTCxNQUFNLEdBRU4sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFHNUQsTUFBTSxVQUFVLGVBQWUsQ0FDOUIsTUFBOEQsRUFDOUQsRUFBRSxRQUFRLEVBQUUsTUFBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBZ0UsRUFBRTtJQUVwRyxPQUFPLGNBQWMsQ0FBQyxlQUFlLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRTtRQUNyRCxJQUFJLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbEIsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBRWpCLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3BCLE1BQU0sR0FBRyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxHQUFHO2dCQUFFLE9BQU87WUFFakIsd0NBQXdDO1lBQ3hDLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQzdCLEtBQUssR0FBRyxLQUFLLENBQUM7Z0JBQ2QsT0FBTyxJQUFJLENBQUM7WUFDYixDQUFDLENBQUMsQ0FBQztZQUVILCtEQUErRDtZQUMvRCxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNqRCxHQUFHLENBQUMsY0FBYyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBRTFDLDBFQUEwRTtZQUMxRSxNQUFNLE1BQU0sR0FBRyxjQUFjLENBQUMsR0FBRyxFQUFFO2dCQUNsQyxJQUFJLEtBQUssS0FBSyxJQUFJO29CQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDL0MsT0FBTyxJQUFJLENBQUM7WUFDYixDQUFDLENBQUMsQ0FBQztZQUVILFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsR0FBRyxDQUFDLGNBQWMsR0FBRyxXQUFXLENBQUM7Z0JBQ2pDLE1BQU0sRUFBRSxDQUFDO2dCQUNULE1BQU0sRUFBRSxDQUFDO1lBQ1YsQ0FBQyxDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzVCLENBQUMsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUdELE1BQU0sT0FBTyxhQUFhO0lBR3pCO1FBRkEsY0FBUyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUd4QixNQUFNLElBQUksR0FBRyxNQUFNLENBQXVCLFVBQVUsQ0FBQyxDQUFDO1FBQ3RELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNsQyxlQUFlLENBQUMsR0FBRyxFQUFFO1lBQ3BCLGVBQWUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs4R0FUVyxhQUFhO2tHQUFiLGFBQWE7OzJGQUFiLGFBQWE7a0JBRHpCLFNBQVM7bUJBQUMsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRhZnRlck5leHRSZW5kZXIsXG5cdERpcmVjdGl2ZSxcblx0ZWZmZWN0LFxuXHRFbGVtZW50UmVmLFxuXHRpbmplY3QsXG5cdEluamVjdG9yLFxuXHRtb2RlbCxcblx0c2lnbmFsLFxuXHRXcml0YWJsZVNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBhZGRBZnRlckVmZmVjdCwgYWRkRWZmZWN0LCByZXNvbHZlUmVmIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBhc3NlcnRJbmplY3RvciB9IGZyb20gJ25neHRlbnNpb24vYXNzZXJ0LWluamVjdG9yJztcbmltcG9ydCB7IE9iamVjdDNEIH0gZnJvbSAndGhyZWUnO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0SW50ZXJzZWN0PFRPYmplY3QgZXh0ZW5kcyBPYmplY3QzRD4oXG5cdG9iamVjdDogKCkgPT4gRWxlbWVudFJlZjxUT2JqZWN0PiB8IFRPYmplY3QgfCB1bmRlZmluZWQgfCBudWxsLFxuXHR7IGluamVjdG9yLCBzb3VyY2UgPSBzaWduYWwoZmFsc2UpIH06IHsgaW5qZWN0b3I/OiBJbmplY3Rvcjsgc291cmNlPzogV3JpdGFibGVTaWduYWw8Ym9vbGVhbj4gfSA9IHt9LFxuKSB7XG5cdHJldHVybiBhc3NlcnRJbmplY3RvcihpbmplY3RJbnRlcnNlY3QsIGluamVjdG9yLCAoKSA9PiB7XG5cdFx0bGV0IGNoZWNrID0gZmFsc2U7XG5cdFx0bGV0IHRlbXAgPSBmYWxzZTtcblxuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBvYmogPSByZXNvbHZlUmVmKG9iamVjdCgpKTtcblx0XHRcdGlmICghb2JqKSByZXR1cm47XG5cblx0XHRcdC8vIFN0YW1wIG91dCBmcnVzdHVtIGNoZWNrIHByZS1lbXB0aXZlbHlcblx0XHRcdGNvbnN0IHVuc3ViMSA9IGFkZEVmZmVjdCgoKSA9PiB7XG5cdFx0XHRcdGNoZWNrID0gZmFsc2U7XG5cdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0fSk7XG5cblx0XHRcdC8vIElmIHRoZSBvYmplY3QgaXMgaW5zaWRlIHRoZSBmcnVzdHVtIHRocmVlIHdpbGwgY2FsbCBvblJlbmRlclxuXHRcdFx0Y29uc3Qgb2xkT25SZW5kZXIgPSBvYmoub25CZWZvcmVSZW5kZXIuYmluZChvYmopO1xuXHRcdFx0b2JqLm9uQmVmb3JlUmVuZGVyID0gKCkgPT4gKGNoZWNrID0gdHJ1ZSk7XG5cblx0XHRcdC8vIENvbXBhcmUgdGhlIGNoZWNrIHZhbHVlIGFnYWluc3QgdGhlIHRlbXAgdmFsdWUsIGlmIGl0IGRpZmZlcnMgc2V0IHN0YXRlXG5cdFx0XHRjb25zdCB1bnN1YjIgPSBhZGRBZnRlckVmZmVjdCgoKSA9PiB7XG5cdFx0XHRcdGlmIChjaGVjayAhPT0gdGVtcCkgc291cmNlLnNldCgodGVtcCA9IGNoZWNrKSk7XG5cdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0fSk7XG5cblx0XHRcdG9uQ2xlYW51cCgoKSA9PiB7XG5cdFx0XHRcdG9iai5vbkJlZm9yZVJlbmRlciA9IG9sZE9uUmVuZGVyO1xuXHRcdFx0XHR1bnN1YjEoKTtcblx0XHRcdFx0dW5zdWIyKCk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblxuXHRcdHJldHVybiBzb3VyY2UuYXNSZWFkb25seSgpO1xuXHR9KTtcbn1cblxuQERpcmVjdGl2ZSh7IHN0YW5kYWxvbmU6IHRydWUsIHNlbGVjdG9yOiAnW2ludGVyc2VjdF0nIH0pXG5leHBvcnQgY2xhc3MgTmd0c0ludGVyc2VjdCB7XG5cdGludGVyc2VjdCA9IG1vZGVsKGZhbHNlKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRjb25zdCBob3N0ID0gaW5qZWN0PEVsZW1lbnRSZWY8T2JqZWN0M0Q+PihFbGVtZW50UmVmKTtcblx0XHRjb25zdCBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cdFx0YWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcblx0XHRcdGluamVjdEludGVyc2VjdCgoKSA9PiBob3N0LCB7IHNvdXJjZTogdGhpcy5pbnRlcnNlY3QsIGluamVjdG9yIH0pO1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=
@@ -0,0 +1,122 @@
1
+ import { afterNextRender, ChangeDetectionStrategy, Component, CUSTOM_ELEMENTS_SCHEMA, effect, inject, Injector, input, signal, untracked, viewChild, } from '@angular/core';
2
+ import { checkUpdate, extend, getLocalState, omit, resolveRef } from 'angular-three';
3
+ import { assertInjector } from 'ngxtension/assert-injector';
4
+ import { injectAutoEffect } from 'ngxtension/auto-effect';
5
+ import { mergeInputs } from 'ngxtension/inject-inputs';
6
+ import { Color, Group, InstancedBufferAttribute, Object3D, Vector3 } from 'three';
7
+ import { MeshSurfaceSampler } from 'three-stdlib';
8
+ import * as i0 from "@angular/core";
9
+ export function injectSurfaceSampler(mesh, options = () => ({}), { injector } = {}) {
10
+ return assertInjector(injectSurfaceSampler, injector, () => {
11
+ const buffer = signal((() => {
12
+ const arr = Array.from({ length: options().count ?? 16 }, () => [
13
+ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1,
14
+ ]).flat();
15
+ return new InstancedBufferAttribute(Float32Array.from(arr), 16);
16
+ })());
17
+ effect(() => {
18
+ const currentMesh = resolveRef(mesh());
19
+ if (!currentMesh)
20
+ return;
21
+ const localState = getLocalState(currentMesh);
22
+ if (!localState)
23
+ return;
24
+ const nonObjects = localState.nonObjects();
25
+ if (!nonObjects ||
26
+ !nonObjects.length ||
27
+ nonObjects.every((nonObject) => !nonObject.isBufferGeometry)) {
28
+ return;
29
+ }
30
+ const sampler = new MeshSurfaceSampler(currentMesh);
31
+ const { weight, count = 16, transform, instanceMesh } = options();
32
+ if (weight) {
33
+ sampler.setWeightAttribute(weight);
34
+ }
35
+ sampler.build();
36
+ const position = new Vector3();
37
+ const normal = new Vector3();
38
+ const color = new Color();
39
+ const dummy = new Object3D();
40
+ const instance = resolveRef(instanceMesh);
41
+ currentMesh.updateMatrixWorld(true);
42
+ for (let i = 0; i < count; i++) {
43
+ sampler.sample(position, normal, color);
44
+ if (typeof transform === 'function') {
45
+ transform({ dummy, sampledMesh: currentMesh, position, normal, color }, i);
46
+ }
47
+ else {
48
+ dummy.position.copy(position);
49
+ }
50
+ dummy.updateMatrix();
51
+ if (instance) {
52
+ instance.setMatrixAt(i, dummy.matrix);
53
+ }
54
+ dummy.matrix.toArray(untracked(buffer).array, i * 16);
55
+ }
56
+ if (instance) {
57
+ checkUpdate(instance.instanceMatrix);
58
+ }
59
+ checkUpdate(buffer);
60
+ buffer.set(new InstancedBufferAttribute(untracked(buffer).array, untracked(buffer).itemSize).copy(untracked(buffer)));
61
+ }, { allowSignalWrites: true });
62
+ return buffer.asReadonly();
63
+ });
64
+ }
65
+ const defaultOptions = {
66
+ count: 16,
67
+ };
68
+ export class NgtsSampler {
69
+ constructor() {
70
+ this.mesh = input(null);
71
+ this.instances = input(null);
72
+ this.options = input(defaultOptions, { transform: mergeInputs(defaultOptions) });
73
+ this.parameters = omit(this.options, ['weight', 'transform', 'count']);
74
+ this.groupRef = viewChild.required('group');
75
+ this.meshToSample = signal(null);
76
+ this.instancedToSample = signal(null);
77
+ extend({ Group });
78
+ const autoEffect = injectAutoEffect();
79
+ const injector = inject(Injector);
80
+ afterNextRender(() => {
81
+ autoEffect(() => {
82
+ const group = this.groupRef().nativeElement;
83
+ const localState = getLocalState(group);
84
+ if (!localState)
85
+ return;
86
+ const [mesh, instances] = [resolveRef(this.mesh()), resolveRef(this.instances())];
87
+ this.meshToSample.set(mesh ?? localState.objects().find((c) => c.type === 'Mesh'));
88
+ this.instancedToSample.set(instances ??
89
+ localState
90
+ .objects()
91
+ .find((c) => !!Object.getOwnPropertyDescriptor(c, 'instanceMatrix')));
92
+ }, { allowSignalWrites: true });
93
+ injectSurfaceSampler(this.meshToSample, () => ({
94
+ count: this.options().count,
95
+ transform: this.options().transform,
96
+ weight: this.options().weight,
97
+ instanceMesh: this.instancedToSample(),
98
+ }), { injector });
99
+ });
100
+ }
101
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtsSampler, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
102
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.0", type: NgtsSampler, isStandalone: true, selector: "ngts-sampler", inputs: { mesh: { classPropertyName: "mesh", publicName: "mesh", isSignal: true, isRequired: false, transformFunction: null }, instances: { classPropertyName: "instances", publicName: "instances", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "groupRef", first: true, predicate: ["group"], descendants: true, isSignal: true }], ngImport: i0, template: `
103
+ <ngt-group #group [parameters]="parameters()">
104
+ <ng-content />
105
+ </ngt-group>
106
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
107
+ }
108
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtsSampler, decorators: [{
109
+ type: Component,
110
+ args: [{
111
+ selector: 'ngts-sampler',
112
+ standalone: true,
113
+ template: `
114
+ <ngt-group #group [parameters]="parameters()">
115
+ <ng-content />
116
+ </ngt-group>
117
+ `,
118
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
119
+ changeDetection: ChangeDetectionStrategy.OnPush,
120
+ }]
121
+ }], ctorParameters: () => [] });
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FtcGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc29iYS9taXNjL3NyYy9saWIvc2FtcGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sZUFBZSxFQUNmLHVCQUF1QixFQUN2QixTQUFTLEVBQ1Qsc0JBQXNCLEVBQ3RCLE1BQU0sRUFFTixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQVksSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBa0IsS0FBSyxFQUFFLEtBQUssRUFBRSx3QkFBd0IsRUFBdUIsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUN2SCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBa0NsRCxNQUFNLFVBQVUsb0JBQW9CLENBQ25DLElBQXNELEVBQ3RELFVBS0ksR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFDZCxFQUFFLFFBQVEsS0FBOEIsRUFBRTtJQUUxQyxPQUFPLGNBQWMsQ0FBQyxvQkFBb0IsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFO1FBQzFELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FDcEIsQ0FBQyxHQUFHLEVBQUU7WUFDTCxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDLEtB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SyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLO2dCQUMzQixTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFNBQVM7Z0JBQ25DLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTTtnQkFDN0IsWUFBWSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRTthQUN0QyxDQUFDLEVBQ0YsRUFBRSxRQUFRLEVBQUUsQ0FDWixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzhHQS9DVyxXQUFXO2tHQUFYLFdBQVcsOGpCQVJiOzs7O0VBSVQ7OzJGQUlXLFdBQVc7a0JBWHZCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7RUFJVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0YWZ0ZXJOZXh0UmVuZGVyLFxuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuXHRlZmZlY3QsXG5cdEVsZW1lbnRSZWYsXG5cdGluamVjdCxcblx0SW5qZWN0b3IsXG5cdGlucHV0LFxuXHRzaWduYWwsXG5cdHVudHJhY2tlZCxcblx0dmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNoZWNrVXBkYXRlLCBleHRlbmQsIGdldExvY2FsU3RhdGUsIE5ndEdyb3VwLCBvbWl0LCByZXNvbHZlUmVmIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBhc3NlcnRJbmplY3RvciB9IGZyb20gJ25neHRlbnNpb24vYXNzZXJ0LWluamVjdG9yJztcbmltcG9ydCB7IGluamVjdEF1dG9FZmZlY3QgfSBmcm9tICduZ3h0ZW5zaW9uL2F1dG8tZWZmZWN0JztcbmltcG9ydCB7IG1lcmdlSW5wdXRzIH0gZnJvbSAnbmd4dGVuc2lvbi9pbmplY3QtaW5wdXRzJztcbmltcG9ydCB7IEJ1ZmZlckdlb21ldHJ5LCBDb2xvciwgR3JvdXAsIEluc3RhbmNlZEJ1ZmZlckF0dHJpYnV0ZSwgSW5zdGFuY2VkTWVzaCwgTWVzaCwgT2JqZWN0M0QsIFZlY3RvcjMgfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBNZXNoU3VyZmFjZVNhbXBsZXIgfSBmcm9tICd0aHJlZS1zdGRsaWInO1xuXG5pbnRlcmZhY2UgU2FtcGxlUGF5bG9hZCB7XG5cdC8qKlxuXHQgKiBUaGUgcG9zaXRpb24gb2YgdGhlIHNhbXBsZS5cblx0ICovXG5cdHBvc2l0aW9uOiBWZWN0b3IzO1xuXHQvKipcblx0ICogVGhlIG5vcm1hbCBvZiB0aGUgbWVzaCBhdCB0aGUgc2FtcGxlZCBwb3NpdGlvbi5cblx0ICovXG5cdG5vcm1hbDogVmVjdG9yMztcblx0LyoqXG5cdCAqIFRoZSB2ZXJ0ZXggY29sb3Igb2YgdGhlIG1lc2ggYXQgdGhlIHNhbXBsZWQgcG9zaXRpb24uXG5cdCAqL1xuXHRjb2xvcjogQ29sb3I7XG59XG5cbmV4cG9ydCB0eXBlIFRyYW5zZm9ybUZuID0gKHBheWxvYWQ6IFRyYW5zZm9ybVBheWxvYWQsIGk6IG51bWJlcikgPT4gdm9pZDtcblxuaW50ZXJmYWNlIFRyYW5zZm9ybVBheWxvYWQgZXh0ZW5kcyBTYW1wbGVQYXlsb2FkIHtcblx0LyoqXG5cdCAqIFRoZSBkdW1teSBvYmplY3QgdXNlZCB0byB0cmFuc2Zvcm0gZWFjaCBpbnN0YW5jZS5cblx0ICogVGhpcyBvYmplY3QncyBtYXRyaXggd2lsbCBiZSB1cGRhdGVkIGFmdGVyIHRyYW5zZm9ybWluZyAmIGl0IHdpbGwgYmUgdXNlZFxuXHQgKiB0byBzZXQgdGhlIGluc3RhbmNlJ3MgbWF0cml4LlxuXHQgKi9cblx0ZHVtbXk6IE9iamVjdDNEO1xuXHQvKipcblx0ICogVGhlIG1lc2ggdGhhdCdzIGluaXRpYWxseSBwYXNzZWQgdG8gdGhlIHNhbXBsZXIuXG5cdCAqIFVzZSB0aGlzIGlmIHlvdSBuZWVkIHRvIGFwcGx5IHRyYW5zZm9ybXMgZnJvbSB5b3VyIG1lc2ggdG8geW91ciBpbnN0YW5jZXNcblx0ICogb3IgaWYgeW91IG5lZWQgdG8gZ3JhYiBhdHRyaWJ1dGVzIGZyb20gdGhlIGdlb21ldHJ5LlxuXHQgKi9cblx0c2FtcGxlZE1lc2g6IE1lc2g7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RTdXJmYWNlU2FtcGxlcihcblx0bWVzaDogKCkgPT4gRWxlbWVudFJlZjxNZXNoPiB8IE1lc2ggfCBudWxsIHwgdW5kZWZpbmVkLFxuXHRvcHRpb25zOiAoKSA9PiB7XG5cdFx0Y291bnQ/OiBudW1iZXI7XG5cdFx0dHJhbnNmb3JtPzogVHJhbnNmb3JtRm47XG5cdFx0d2VpZ2h0Pzogc3RyaW5nO1xuXHRcdGluc3RhbmNlTWVzaD86IEVsZW1lbnRSZWY8SW5zdGFuY2VkTWVzaD4gfCBJbnN0YW5jZWRNZXNoIHwgbnVsbDtcblx0fSA9ICgpID0+ICh7fSksXG5cdHsgaW5qZWN0b3IgfTogeyBpbmplY3Rvcj86IEluamVjdG9yIH0gPSB7fSxcbikge1xuXHRyZXR1cm4gYXNzZXJ0SW5qZWN0b3IoaW5qZWN0U3VyZmFjZVNhbXBsZXIsIGluamVjdG9yLCAoKSA9PiB7XG5cdFx0Y29uc3QgYnVmZmVyID0gc2lnbmFsKFxuXHRcdFx0KCgpID0+IHtcblx0XHRcdFx0Y29uc3QgYXJyID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogb3B0aW9ucygpLmNvdW50ID8/IDE2IH0sICgpID0+IFtcblx0XHRcdFx0XHQxLCAwLCAwLCAwLCAwLCAxLCAwLCAwLCAwLCAwLCAxLCAwLCAwLCAwLCAwLCAxLFxuXHRcdFx0XHRdKS5mbGF0KCk7XG5cdFx0XHRcdHJldHVybiBuZXcgSW5zdGFuY2VkQnVmZmVyQXR0cmlidXRlKEZsb2F0MzJBcnJheS5mcm9tKGFyciksIDE2KTtcblx0XHRcdH0pKCksXG5cdFx0KTtcblxuXHRcdGVmZmVjdChcblx0XHRcdCgpID0+IHtcblx0XHRcdFx0Y29uc3QgY3VycmVudE1lc2ggPSByZXNvbHZlUmVmKG1lc2goKSk7XG5cdFx0XHRcdGlmICghY3VycmVudE1lc2gpIHJldHVybjtcblxuXHRcdFx0XHRjb25zdCBsb2NhbFN0YXRlID0gZ2V0TG9jYWxTdGF0ZShjdXJyZW50TWVzaCk7XG5cdFx0XHRcdGlmICghbG9jYWxTdGF0ZSkgcmV0dXJuO1xuXG5cdFx0XHRcdGNvbnN0IG5vbk9iamVjdHMgPSBsb2NhbFN0YXRlLm5vbk9iamVjdHMoKTtcblx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdCFub25PYmplY3RzIHx8XG5cdFx0XHRcdFx0IW5vbk9iamVjdHMubGVuZ3RoIHx8XG5cdFx0XHRcdFx0bm9uT2JqZWN0cy5ldmVyeSgobm9uT2JqZWN0KSA9PiAhKG5vbk9iamVjdCBhcyBCdWZmZXJHZW9tZXRyeSkuaXNCdWZmZXJHZW9tZXRyeSlcblx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Y29uc3Qgc2FtcGxlciA9IG5ldyBNZXNoU3VyZmFjZVNhbXBsZXIoY3VycmVudE1lc2gpO1xuXG5cdFx0XHRcdGNvbnN0IHsgd2VpZ2h0LCBjb3VudCA9IDE2LCB0cmFuc2Zvcm0sIGluc3RhbmNlTWVzaCB9ID0gb3B0aW9ucygpO1xuXG5cdFx0XHRcdGlmICh3ZWlnaHQpIHtcblx0XHRcdFx0XHRzYW1wbGVyLnNldFdlaWdodEF0dHJpYnV0ZSh3ZWlnaHQpO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0c2FtcGxlci5idWlsZCgpO1xuXG5cdFx0XHRcdGNvbnN0IHBvc2l0aW9uID0gbmV3IFZlY3RvcjMoKTtcblx0XHRcdFx0Y29uc3Qgbm9ybWFsID0gbmV3IFZlY3RvcjMoKTtcblx0XHRcdFx0Y29uc3QgY29sb3IgPSBuZXcgQ29sb3IoKTtcblx0XHRcdFx0Y29uc3QgZHVtbXkgPSBuZXcgT2JqZWN0M0QoKTtcblx0XHRcdFx0Y29uc3QgaW5zdGFuY2UgPSByZXNvbHZlUmVmKGluc3RhbmNlTWVzaCk7XG5cblx0XHRcdFx0Y3VycmVudE1lc2gudXBkYXRlTWF0cml4V29ybGQodHJ1ZSk7XG5cblx0XHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XG5cdFx0XHRcdFx0c2FtcGxlci5zYW1wbGUocG9zaXRpb24sIG5vcm1hbCwgY29sb3IpO1xuXG5cdFx0XHRcdFx0aWYgKHR5cGVvZiB0cmFuc2Zvcm0gPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdFx0XHRcdHRyYW5zZm9ybSh7IGR1bW15LCBzYW1wbGVkTWVzaDogY3VycmVudE1lc2gsIHBvc2l0aW9uLCBub3JtYWwsIGNvbG9yIH0sIGkpO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRkdW1teS5wb3NpdGlvbi5jb3B5KHBvc2l0aW9uKTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRkdW1teS51cGRhdGVNYXRyaXgoKTtcblxuXHRcdFx0XHRcdGlmIChpbnN0YW5jZSkge1xuXHRcdFx0XHRcdFx0aW5zdGFuY2Uuc2V0TWF0cml4QXQoaSwgZHVtbXkubWF0cml4KTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRkdW1teS5tYXRyaXgudG9BcnJheSh1bnRyYWNrZWQoYnVmZmVyKS5hcnJheSwgaSAqIDE2KTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmIChpbnN0YW5jZSkge1xuXHRcdFx0XHRcdGNoZWNrVXBkYXRlKGluc3RhbmNlLmluc3RhbmNlTWF0cml4KTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGNoZWNrVXBkYXRlKGJ1ZmZlcik7XG5cblx0XHRcdFx0YnVmZmVyLnNldChcblx0XHRcdFx0XHRuZXcgSW5zdGFuY2VkQnVmZmVyQXR0cmlidXRlKHVudHJhY2tlZChidWZmZXIpLmFycmF5LCB1bnRyYWNrZWQoYnVmZmVyKS5pdGVtU2l6ZSkuY29weSh1bnRyYWNrZWQoYnVmZmVyKSksXG5cdFx0XHRcdCk7XG5cdFx0XHR9LFxuXHRcdFx0eyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9LFxuXHRcdCk7XG5cblx0XHRyZXR1cm4gYnVmZmVyLmFzUmVhZG9ubHkoKTtcblx0fSk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0c1NhbXBsZXJPcHRpb25zIGV4dGVuZHMgUGFydGlhbDxOZ3RHcm91cD4ge1xuXHQvKipcblx0ICogVGhlIE5BTUUgb2YgdGhlIHdlaWdodCBhdHRyaWJ1dGUgdG8gdXNlIHdoZW4gc2FtcGxpbmcuXG5cdCAqXG5cdCAqIEBzZWUgaHR0cHM6Ly90aHJlZWpzLm9yZy9kb2NzLyNleGFtcGxlcy9lbi9tYXRoL01lc2hTdXJmYWNlU2FtcGxlci5zZXRXZWlnaHRBdHRyaWJ1dGVcblx0ICovXG5cdHdlaWdodD86IHN0cmluZztcblx0LyoqXG5cdCAqIFRyYW5zZm9ybWF0aW9uIHRvIGJlIGFwcGxpZWQgdG8gZWFjaCBpbnN0YW5jZS5cblx0ICogUmVjZWl2ZXMgYSBkdW1teSBvYmplY3QzRCB3aXRoIGFsbCB0aGUgc2FtcGxlZCBkYXRhICggQHNlZSBUcmFuc2Zvcm1QYXlsb2FkICkuXG5cdCAqIEl0IHNob3VsZCBtdXRhdGUgYHRyYW5zZm9ybVBheWxvYWQuZHVtbXlgLlxuXHQgKlxuXHQgKiBAc2VlICggQHRvZG8gYWRkIGxpbmsgdG8gZXhhbXBsZSApXG5cdCAqXG5cdCAqIFRoZXJlIGlzIG5vIG5lZWQgdG8gdXBkYXRlIHRoZSBkdW1teSdzIG1hdHJpeFxuXHQgKi9cblx0dHJhbnNmb3JtPzogVHJhbnNmb3JtRm47XG5cdGNvdW50OiBudW1iZXI7XG59XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBOZ3RzU2FtcGxlck9wdGlvbnMgPSB7XG5cdGNvdW50OiAxNixcbn07XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHMtc2FtcGxlcicsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1ncm91cCAjZ3JvdXAgW3BhcmFtZXRlcnNdPVwicGFyYW1ldGVycygpXCI+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LWdyb3VwPlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzU2FtcGxlciB7XG5cdG1lc2ggPSBpbnB1dDxFbGVtZW50UmVmPE1lc2g+IHwgTWVzaCB8IG51bGw+KG51bGwpO1xuXHRpbnN0YW5jZXMgPSBpbnB1dDxFbGVtZW50UmVmPEluc3RhbmNlZE1lc2g+IHwgSW5zdGFuY2VkTWVzaCB8IG51bGw+KG51bGwpO1xuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdE9wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0T3B0aW9ucykgfSk7XG5cdHBhcmFtZXRlcnMgPSBvbWl0KHRoaXMub3B0aW9ucywgWyd3ZWlnaHQnLCAndHJhbnNmb3JtJywgJ2NvdW50J10pO1xuXG5cdGdyb3VwUmVmID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8R3JvdXA+PignZ3JvdXAnKTtcblxuXHRwcml2YXRlIG1lc2hUb1NhbXBsZSA9IHNpZ25hbDxNZXNoIHwgbnVsbD4obnVsbCk7XG5cdHByaXZhdGUgaW5zdGFuY2VkVG9TYW1wbGUgPSBzaWduYWw8SW5zdGFuY2VkTWVzaCB8IG51bGw+KG51bGwpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGV4dGVuZCh7IEdyb3VwIH0pO1xuXHRcdGNvbnN0IGF1dG9FZmZlY3QgPSBpbmplY3RBdXRvRWZmZWN0KCk7XG5cdFx0Y29uc3QgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG5cdFx0YWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcblx0XHRcdGF1dG9FZmZlY3QoXG5cdFx0XHRcdCgpID0+IHtcblx0XHRcdFx0XHRjb25zdCBncm91cCA9IHRoaXMuZ3JvdXBSZWYoKS5uYXRpdmVFbGVtZW50O1xuXHRcdFx0XHRcdGNvbnN0IGxvY2FsU3RhdGUgPSBnZXRMb2NhbFN0YXRlKGdyb3VwKTtcblx0XHRcdFx0XHRpZiAoIWxvY2FsU3RhdGUpIHJldHVybjtcblxuXHRcdFx0XHRcdGNvbnN0IFttZXNoLCBpbnN0YW5jZXNdID0gW3Jlc29sdmVSZWYodGhpcy5tZXNoKCkpLCByZXNvbHZlUmVmKHRoaXMuaW5zdGFuY2VzKCkpXTtcblxuXHRcdFx0XHRcdHRoaXMubWVzaFRvU2FtcGxlLnNldChtZXNoID8/IChsb2NhbFN0YXRlLm9iamVjdHMoKS5maW5kKChjKSA9PiBjLnR5cGUgPT09ICdNZXNoJykgYXMgTWVzaCkpO1xuXHRcdFx0XHRcdHRoaXMuaW5zdGFuY2VkVG9TYW1wbGUuc2V0KFxuXHRcdFx0XHRcdFx0aW5zdGFuY2VzID8/XG5cdFx0XHRcdFx0XHRcdChsb2NhbFN0YXRlXG5cdFx0XHRcdFx0XHRcdFx0Lm9iamVjdHMoKVxuXHRcdFx0XHRcdFx0XHRcdC5maW5kKChjKSA9PiAhIU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYywgJ2luc3RhbmNlTWF0cml4JykpIGFzIEluc3RhbmNlZE1lc2gpLFxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdH0sXG5cdFx0XHRcdHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcblx0XHRcdCk7XG5cblx0XHRcdGluamVjdFN1cmZhY2VTYW1wbGVyKFxuXHRcdFx0XHR0aGlzLm1lc2hUb1NhbXBsZSxcblx0XHRcdFx0KCkgPT4gKHtcblx0XHRcdFx0XHRjb3VudDogdGhpcy5vcHRpb25zKCkuY291bnQsXG5cdFx0XHRcdFx0dHJhbnNmb3JtOiB0aGlzLm9wdGlvbnMoKS50cmFuc2Zvcm0sXG5cdFx0XHRcdFx0d2VpZ2h0OiB0aGlzLm9wdGlvbnMoKS53ZWlnaHQsXG5cdFx0XHRcdFx0aW5zdGFuY2VNZXNoOiB0aGlzLmluc3RhbmNlZFRvU2FtcGxlKCksXG5cdFx0XHRcdH0pLFxuXHRcdFx0XHR7IGluamVjdG9yIH0sXG5cdFx0XHQpO1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=
@@ -0,0 +1,29 @@
1
+ import { Vector3 } from 'three';
2
+ const tV0 = new Vector3();
3
+ const tV1 = new Vector3();
4
+ const tV2 = new Vector3();
5
+ function getPoint2(point3, camera, size) {
6
+ const widthHalf = size.width / 2;
7
+ const heightHalf = size.height / 2;
8
+ camera.updateMatrixWorld(false);
9
+ const vector = point3.project(camera);
10
+ vector.x = vector.x * widthHalf + widthHalf;
11
+ vector.y = -(vector.y * heightHalf) + heightHalf;
12
+ return vector;
13
+ }
14
+ function getPoint3(point2, camera, size, zValue = 1) {
15
+ const vector = tV0.set((point2.x / size.width) * 2 - 1, -(point2.y / size.height) * 2 + 1, zValue);
16
+ vector.unproject(camera);
17
+ return vector;
18
+ }
19
+ export function calculateScaleFactor(point3, radiusPx, camera, size) {
20
+ const point2 = getPoint2(tV2.copy(point3), camera, size);
21
+ let scale = 0;
22
+ for (let i = 0; i < 2; ++i) {
23
+ const point2off = tV1.copy(point2).setComponent(i, point2.getComponent(i) + radiusPx);
24
+ const point3off = getPoint3(point2off, camera, size, point2off.z);
25
+ scale = Math.max(scale, point3.distanceTo(point3off));
26
+ }
27
+ return scale;
28
+ }
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhbGUtZmFjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL21pc2Mvc3JjL2xpYi9zY2FsZS1mYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFVLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUV4QyxNQUFNLEdBQUcsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0FBQzFCLE1BQU0sR0FBRyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7QUFDMUIsTUFBTSxHQUFHLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztBQUUxQixTQUFTLFNBQVMsQ0FBQyxNQUFlLEVBQUUsTUFBYyxFQUFFLElBQWE7SUFDaEUsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDakMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDbkMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEMsTUFBTSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxHQUFHLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDNUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsR0FBRyxVQUFVLENBQUM7SUFDakQsT0FBTyxNQUFNLENBQUM7QUFDZixDQUFDO0FBRUQsU0FBUyxTQUFTLENBQUMsTUFBZSxFQUFFLE1BQWMsRUFBRSxJQUFhLEVBQUUsU0FBaUIsQ0FBQztJQUNwRixNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNuRyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3pCLE9BQU8sTUFBTSxDQUFDO0FBQ2YsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxNQUFlLEVBQUUsUUFBZ0IsRUFBRSxNQUFjLEVBQUUsSUFBYTtJQUNwRyxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDekQsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQ2QsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQzVCLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDO1FBQ3RGLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEUsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmd0U2l6ZSB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgQ2FtZXJhLCBWZWN0b3IzIH0gZnJvbSAndGhyZWUnO1xuXG5jb25zdCB0VjAgPSBuZXcgVmVjdG9yMygpO1xuY29uc3QgdFYxID0gbmV3IFZlY3RvcjMoKTtcbmNvbnN0IHRWMiA9IG5ldyBWZWN0b3IzKCk7XG5cbmZ1bmN0aW9uIGdldFBvaW50Mihwb2ludDM6IFZlY3RvcjMsIGNhbWVyYTogQ2FtZXJhLCBzaXplOiBOZ3RTaXplKSB7XG5cdGNvbnN0IHdpZHRoSGFsZiA9IHNpemUud2lkdGggLyAyO1xuXHRjb25zdCBoZWlnaHRIYWxmID0gc2l6ZS5oZWlnaHQgLyAyO1xuXHRjYW1lcmEudXBkYXRlTWF0cml4V29ybGQoZmFsc2UpO1xuXHRjb25zdCB2ZWN0b3IgPSBwb2ludDMucHJvamVjdChjYW1lcmEpO1xuXHR2ZWN0b3IueCA9IHZlY3Rvci54ICogd2lkdGhIYWxmICsgd2lkdGhIYWxmO1xuXHR2ZWN0b3IueSA9IC0odmVjdG9yLnkgKiBoZWlnaHRIYWxmKSArIGhlaWdodEhhbGY7XG5cdHJldHVybiB2ZWN0b3I7XG59XG5cbmZ1bmN0aW9uIGdldFBvaW50Myhwb2ludDI6IFZlY3RvcjMsIGNhbWVyYTogQ2FtZXJhLCBzaXplOiBOZ3RTaXplLCB6VmFsdWU6IG51bWJlciA9IDEpIHtcblx0Y29uc3QgdmVjdG9yID0gdFYwLnNldCgocG9pbnQyLnggLyBzaXplLndpZHRoKSAqIDIgLSAxLCAtKHBvaW50Mi55IC8gc2l6ZS5oZWlnaHQpICogMiArIDEsIHpWYWx1ZSk7XG5cdHZlY3Rvci51bnByb2plY3QoY2FtZXJhKTtcblx0cmV0dXJuIHZlY3Rvcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhbGN1bGF0ZVNjYWxlRmFjdG9yKHBvaW50MzogVmVjdG9yMywgcmFkaXVzUHg6IG51bWJlciwgY2FtZXJhOiBDYW1lcmEsIHNpemU6IE5ndFNpemUpIHtcblx0Y29uc3QgcG9pbnQyID0gZ2V0UG9pbnQyKHRWMi5jb3B5KHBvaW50MyksIGNhbWVyYSwgc2l6ZSk7XG5cdGxldCBzY2FsZSA9IDA7XG5cdGZvciAobGV0IGkgPSAwOyBpIDwgMjsgKytpKSB7XG5cdFx0Y29uc3QgcG9pbnQyb2ZmID0gdFYxLmNvcHkocG9pbnQyKS5zZXRDb21wb25lbnQoaSwgcG9pbnQyLmdldENvbXBvbmVudChpKSArIHJhZGl1c1B4KTtcblx0XHRjb25zdCBwb2ludDNvZmYgPSBnZXRQb2ludDMocG9pbnQyb2ZmLCBjYW1lcmEsIHNpemUsIHBvaW50Mm9mZi56KTtcblx0XHRzY2FsZSA9IE1hdGgubWF4KHNjYWxlLCBwb2ludDMuZGlzdGFuY2VUbyhwb2ludDNvZmYpKTtcblx0fVxuXHRyZXR1cm4gc2NhbGU7XG59XG4iXX0=
@@ -1,6 +1,7 @@
1
- export * from './adaptive-dpr/adaptive-dpr';
2
- export * from './adaptive-events/adaptive-events';
3
- export * from './points/points';
4
- export * from './segments/segment-object';
5
- export * from './segments/segments';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvcGVyZm9ybWFuY2VzL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FkYXB0aXZlLWRwci9hZGFwdGl2ZS1kcHInO1xuZXhwb3J0ICogZnJvbSAnLi9hZGFwdGl2ZS1ldmVudHMvYWRhcHRpdmUtZXZlbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vcG9pbnRzL3BvaW50cyc7XG5leHBvcnQgKiBmcm9tICcuL3NlZ21lbnRzL3NlZ21lbnQtb2JqZWN0JztcbmV4cG9ydCAqIGZyb20gJy4vc2VnbWVudHMvc2VnbWVudHMnO1xuIl19
1
+ export * from './lib/adaptive-dpr';
2
+ export * from './lib/adaptive-events';
3
+ export * from './lib/detailed';
4
+ export * from './lib/instances/instances';
5
+ export * from './lib/points/points';
6
+ export * from './lib/segments/segments';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvcGVyZm9ybWFuY2VzL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2FkYXB0aXZlLWRwcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hZGFwdGl2ZS1ldmVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGV0YWlsZWQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW5zdGFuY2VzL2luc3RhbmNlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wb2ludHMvcG9pbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlZ21lbnRzL3NlZ21lbnRzJztcbiJdfQ==
@@ -0,0 +1,52 @@
1
+ import { afterNextRender, Directive, input, untracked } from '@angular/core';
2
+ import { injectStore } from 'angular-three';
3
+ import { injectAutoEffect } from 'ngxtension/auto-effect';
4
+ import * as i0 from "@angular/core";
5
+ export class NgtsAdaptiveDpr {
6
+ constructor() {
7
+ this.pixelated = input(false);
8
+ const store = injectStore();
9
+ const gl = store.select('gl');
10
+ const active = store.select('internal', 'active');
11
+ const current = store.select('performance', 'current');
12
+ const initialDpr = store.select('viewport', 'initialDpr');
13
+ const setDpr = store.select('setDpr');
14
+ const autoEffect = injectAutoEffect();
15
+ afterNextRender(() => {
16
+ autoEffect(() => {
17
+ const domElement = untracked(gl).domElement;
18
+ return () => {
19
+ const [_active, _setDpr, _initialDpr, pixelated] = [
20
+ untracked(active),
21
+ untracked(setDpr),
22
+ untracked(initialDpr),
23
+ untracked(this.pixelated),
24
+ ];
25
+ if (_active)
26
+ _setDpr(_initialDpr);
27
+ if (pixelated && domElement)
28
+ domElement.style.imageRendering = 'auto';
29
+ };
30
+ });
31
+ autoEffect(() => {
32
+ const [_current, pixelated, domElement, _setDpr, _initialDpr] = [
33
+ current(),
34
+ untracked(this.pixelated),
35
+ untracked(gl).domElement,
36
+ untracked(setDpr),
37
+ untracked(initialDpr),
38
+ ];
39
+ _setDpr(_current * _initialDpr);
40
+ if (pixelated && domElement)
41
+ domElement.style.imageRendering = _current === 1 ? 'auto' : 'pixelated';
42
+ });
43
+ });
44
+ }
45
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtsAdaptiveDpr, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
46
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.0", type: NgtsAdaptiveDpr, isStandalone: true, selector: "ngts-adaptive-dpr", inputs: { pixelated: { classPropertyName: "pixelated", publicName: "pixelated", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
47
+ }
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtsAdaptiveDpr, decorators: [{
49
+ type: Directive,
50
+ args: [{ selector: 'ngts-adaptive-dpr', standalone: true }]
51
+ }], ctorParameters: () => [] });
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRpdmUtZHByLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL3BlcmZvcm1hbmNlcy9zcmMvbGliL2FkYXB0aXZlLWRwci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBRzFELE1BQU0sT0FBTyxlQUFlO0lBRzNCO1FBRkEsY0FBUyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUd4QixNQUFNLEtBQUssR0FBRyxXQUFXLEVBQUUsQ0FBQztRQUM1QixNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlCLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2xELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQzFELE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFdEMsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztRQUV0QyxlQUFlLENBQUMsR0FBRyxFQUFFO1lBQ3BCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2YsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQztnQkFDNUMsT0FBTyxHQUFHLEVBQUU7b0JBQ1gsTUFBTSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsQ0FBQyxHQUFHO3dCQUNsRCxTQUFTLENBQUMsTUFBTSxDQUFDO3dCQUNqQixTQUFTLENBQUMsTUFBTSxDQUFDO3dCQUNqQixTQUFTLENBQUMsVUFBVSxDQUFDO3dCQUNyQixTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztxQkFDekIsQ0FBQztvQkFFRixJQUFJLE9BQU87d0JBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO29CQUNsQyxJQUFJLFNBQVMsSUFBSSxVQUFVO3dCQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQztnQkFDdkUsQ0FBQyxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFFSCxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNmLE1BQU0sQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLEdBQUc7b0JBQy9ELE9BQU8sRUFBRTtvQkFDVCxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztvQkFDekIsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFVBQVU7b0JBQ3hCLFNBQVMsQ0FBQyxNQUFNLENBQUM7b0JBQ2pCLFNBQVMsQ0FBQyxVQUFVLENBQUM7aUJBQ3JCLENBQUM7Z0JBRUYsT0FBTyxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUMsQ0FBQztnQkFDaEMsSUFBSSxTQUFTLElBQUksVUFBVTtvQkFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLGNBQWMsR0FBRyxRQUFRLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztZQUN0RyxDQUFDLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs4R0ExQ1csZUFBZTtrR0FBZixlQUFlOzsyRkFBZixlQUFlO2tCQUQzQixTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZnRlck5leHRSZW5kZXIsIERpcmVjdGl2ZSwgaW5wdXQsIHVudHJhY2tlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0U3RvcmUgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGluamVjdEF1dG9FZmZlY3QgfSBmcm9tICduZ3h0ZW5zaW9uL2F1dG8tZWZmZWN0JztcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnbmd0cy1hZGFwdGl2ZS1kcHInLCBzdGFuZGFsb25lOiB0cnVlIH0pXG5leHBvcnQgY2xhc3MgTmd0c0FkYXB0aXZlRHByIHtcblx0cGl4ZWxhdGVkID0gaW5wdXQoZmFsc2UpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGNvbnN0IHN0b3JlID0gaW5qZWN0U3RvcmUoKTtcblx0XHRjb25zdCBnbCA9IHN0b3JlLnNlbGVjdCgnZ2wnKTtcblx0XHRjb25zdCBhY3RpdmUgPSBzdG9yZS5zZWxlY3QoJ2ludGVybmFsJywgJ2FjdGl2ZScpO1xuXHRcdGNvbnN0IGN1cnJlbnQgPSBzdG9yZS5zZWxlY3QoJ3BlcmZvcm1hbmNlJywgJ2N1cnJlbnQnKTtcblx0XHRjb25zdCBpbml0aWFsRHByID0gc3RvcmUuc2VsZWN0KCd2aWV3cG9ydCcsICdpbml0aWFsRHByJyk7XG5cdFx0Y29uc3Qgc2V0RHByID0gc3RvcmUuc2VsZWN0KCdzZXREcHInKTtcblxuXHRcdGNvbnN0IGF1dG9FZmZlY3QgPSBpbmplY3RBdXRvRWZmZWN0KCk7XG5cblx0XHRhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuXHRcdFx0YXV0b0VmZmVjdCgoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IGRvbUVsZW1lbnQgPSB1bnRyYWNrZWQoZ2wpLmRvbUVsZW1lbnQ7XG5cdFx0XHRcdHJldHVybiAoKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgW19hY3RpdmUsIF9zZXREcHIsIF9pbml0aWFsRHByLCBwaXhlbGF0ZWRdID0gW1xuXHRcdFx0XHRcdFx0dW50cmFja2VkKGFjdGl2ZSksXG5cdFx0XHRcdFx0XHR1bnRyYWNrZWQoc2V0RHByKSxcblx0XHRcdFx0XHRcdHVudHJhY2tlZChpbml0aWFsRHByKSxcblx0XHRcdFx0XHRcdHVudHJhY2tlZCh0aGlzLnBpeGVsYXRlZCksXG5cdFx0XHRcdFx0XTtcblxuXHRcdFx0XHRcdGlmIChfYWN0aXZlKSBfc2V0RHByKF9pbml0aWFsRHByKTtcblx0XHRcdFx0XHRpZiAocGl4ZWxhdGVkICYmIGRvbUVsZW1lbnQpIGRvbUVsZW1lbnQuc3R5bGUuaW1hZ2VSZW5kZXJpbmcgPSAnYXV0byc7XG5cdFx0XHRcdH07XG5cdFx0XHR9KTtcblxuXHRcdFx0YXV0b0VmZmVjdCgoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IFtfY3VycmVudCwgcGl4ZWxhdGVkLCBkb21FbGVtZW50LCBfc2V0RHByLCBfaW5pdGlhbERwcl0gPSBbXG5cdFx0XHRcdFx0Y3VycmVudCgpLFxuXHRcdFx0XHRcdHVudHJhY2tlZCh0aGlzLnBpeGVsYXRlZCksXG5cdFx0XHRcdFx0dW50cmFja2VkKGdsKS5kb21FbGVtZW50LFxuXHRcdFx0XHRcdHVudHJhY2tlZChzZXREcHIpLFxuXHRcdFx0XHRcdHVudHJhY2tlZChpbml0aWFsRHByKSxcblx0XHRcdFx0XTtcblxuXHRcdFx0XHRfc2V0RHByKF9jdXJyZW50ICogX2luaXRpYWxEcHIpO1xuXHRcdFx0XHRpZiAocGl4ZWxhdGVkICYmIGRvbUVsZW1lbnQpIGRvbUVsZW1lbnQuc3R5bGUuaW1hZ2VSZW5kZXJpbmcgPSBfY3VycmVudCA9PT0gMSA/ICdhdXRvJyA6ICdwaXhlbGF0ZWQnO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==
@@ -0,0 +1,28 @@
1
+ import { afterNextRender, Directive } from '@angular/core';
2
+ import { injectStore } from 'angular-three';
3
+ import { injectAutoEffect } from 'ngxtension/auto-effect';
4
+ import * as i0 from "@angular/core";
5
+ export class NgtsAdaptiveEvents {
6
+ constructor() {
7
+ const autoEffect = injectAutoEffect();
8
+ const store = injectStore();
9
+ const current = store.select('performance', 'current');
10
+ afterNextRender(() => {
11
+ autoEffect(() => {
12
+ const enabled = store.snapshot.events.enabled;
13
+ return () => store.snapshot.setEvents({ enabled });
14
+ });
15
+ autoEffect(() => {
16
+ const _current = current();
17
+ return () => store.snapshot.setEvents({ enabled: _current === 1 });
18
+ });
19
+ });
20
+ }
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtsAdaptiveEvents, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
22
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0", type: NgtsAdaptiveEvents, isStandalone: true, selector: "ngts-adaptive-events", ngImport: i0 }); }
23
+ }
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtsAdaptiveEvents, decorators: [{
25
+ type: Directive,
26
+ args: [{ standalone: true, selector: 'ngts-adaptive-events' }]
27
+ }], ctorParameters: () => [] });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRpdmUtZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL3BlcmZvcm1hbmNlcy9zcmMvbGliL2FkYXB0aXZlLWV2ZW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQUcxRCxNQUFNLE9BQU8sa0JBQWtCO0lBQzlCO1FBQ0MsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztRQUN0QyxNQUFNLEtBQUssR0FBRyxXQUFXLEVBQUUsQ0FBQztRQUM1QixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUV2RCxlQUFlLENBQUMsR0FBRyxFQUFFO1lBQ3BCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2YsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO2dCQUM5QyxPQUFPLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUNwRCxDQUFDLENBQUMsQ0FBQztZQUVILFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2YsTUFBTSxRQUFRLEdBQUcsT0FBTyxFQUFFLENBQUM7Z0JBQzNCLE9BQU8sR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxPQUFPLEVBQUUsUUFBUSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDcEUsQ0FBQyxDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBakJXLGtCQUFrQjtrR0FBbEIsa0JBQWtCOzsyRkFBbEIsa0JBQWtCO2tCQUQ5QixTQUFTO21CQUFDLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZnRlck5leHRSZW5kZXIsIERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0U3RvcmUgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGluamVjdEF1dG9FZmZlY3QgfSBmcm9tICduZ3h0ZW5zaW9uL2F1dG8tZWZmZWN0JztcblxuQERpcmVjdGl2ZSh7IHN0YW5kYWxvbmU6IHRydWUsIHNlbGVjdG9yOiAnbmd0cy1hZGFwdGl2ZS1ldmVudHMnIH0pXG5leHBvcnQgY2xhc3MgTmd0c0FkYXB0aXZlRXZlbnRzIHtcblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0Y29uc3QgYXV0b0VmZmVjdCA9IGluamVjdEF1dG9FZmZlY3QoKTtcblx0XHRjb25zdCBzdG9yZSA9IGluamVjdFN0b3JlKCk7XG5cdFx0Y29uc3QgY3VycmVudCA9IHN0b3JlLnNlbGVjdCgncGVyZm9ybWFuY2UnLCAnY3VycmVudCcpO1xuXG5cdFx0YWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcblx0XHRcdGF1dG9FZmZlY3QoKCkgPT4ge1xuXHRcdFx0XHRjb25zdCBlbmFibGVkID0gc3RvcmUuc25hcHNob3QuZXZlbnRzLmVuYWJsZWQ7XG5cdFx0XHRcdHJldHVybiAoKSA9PiBzdG9yZS5zbmFwc2hvdC5zZXRFdmVudHMoeyBlbmFibGVkIH0pO1xuXHRcdFx0fSk7XG5cblx0XHRcdGF1dG9FZmZlY3QoKCkgPT4ge1xuXHRcdFx0XHRjb25zdCBfY3VycmVudCA9IGN1cnJlbnQoKTtcblx0XHRcdFx0cmV0dXJuICgpID0+IHN0b3JlLnNuYXBzaG90LnNldEV2ZW50cyh7IGVuYWJsZWQ6IF9jdXJyZW50ID09PSAxIH0pO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==
@@ -0,0 +1,57 @@
1
+ import { afterNextRender, ChangeDetectionStrategy, Component, CUSTOM_ELEMENTS_SCHEMA, input, viewChild, } from '@angular/core';
2
+ import { extend, getLocalState, injectBeforeRender, omit, pick } from 'angular-three';
3
+ import { injectAutoEffect } from 'ngxtension/auto-effect';
4
+ import { mergeInputs } from 'ngxtension/inject-inputs';
5
+ import { LOD } from 'three';
6
+ import * as i0 from "@angular/core";
7
+ const defaultOptions = {
8
+ hysteresis: 0,
9
+ };
10
+ export class NgtsDetailed {
11
+ constructor() {
12
+ this.distances = input.required();
13
+ this.options = input(defaultOptions, { transform: mergeInputs(defaultOptions) });
14
+ this.parameters = omit(this.options, ['hysteresis']);
15
+ this.lodRef = viewChild.required('lod');
16
+ this.hysteresis = pick(this.options, 'hysteresis');
17
+ extend({ LOD });
18
+ const autoEffect = injectAutoEffect();
19
+ afterNextRender(() => {
20
+ autoEffect(() => {
21
+ const lod = this.lodRef().nativeElement;
22
+ const localState = getLocalState(lod);
23
+ if (!localState)
24
+ return;
25
+ const [, distances, hysteresis] = [localState.objects(), this.distances(), this.hysteresis()];
26
+ lod.levels.length = 0;
27
+ lod.children.forEach((object, index) => {
28
+ lod.levels.push({ object, distance: distances[index], hysteresis });
29
+ });
30
+ });
31
+ });
32
+ injectBeforeRender(({ camera }) => {
33
+ this.lodRef().nativeElement.update(camera);
34
+ });
35
+ }
36
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtsDetailed, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
37
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.0", type: NgtsDetailed, isStandalone: true, selector: "ngts-detailed", inputs: { distances: { classPropertyName: "distances", publicName: "distances", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "lodRef", first: true, predicate: ["lod"], descendants: true, isSignal: true }], ngImport: i0, template: `
38
+ <ngt-lOD #lod [parameters]="parameters()">
39
+ <ng-content />
40
+ </ngt-lOD>
41
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
42
+ }
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtsDetailed, decorators: [{
44
+ type: Component,
45
+ args: [{
46
+ selector: 'ngts-detailed',
47
+ standalone: true,
48
+ template: `
49
+ <ngt-lOD #lod [parameters]="parameters()">
50
+ <ng-content />
51
+ </ngt-lOD>
52
+ `,
53
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
54
+ changeDetection: ChangeDetectionStrategy.OnPush,
55
+ }]
56
+ }], ctorParameters: () => [] });
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlsZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvcGVyZm9ybWFuY2VzL3NyYy9saWIvZGV0YWlsZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLGVBQWUsRUFDZix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULHNCQUFzQixFQUV0QixLQUFLLEVBQ0wsU0FBUyxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFVLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxPQUFPLENBQUM7O0FBTTVCLE1BQU0sY0FBYyxHQUF3QjtJQUMzQyxVQUFVLEVBQUUsQ0FBQztDQUNiLENBQUM7QUFhRixNQUFNLE9BQU8sWUFBWTtJQVF4QjtRQVBBLGNBQVMsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFZLENBQUM7UUFDdkMsWUFBTyxHQUFHLEtBQUssQ0FBQyxjQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1RSxlQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBRWhELFdBQU0sR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFrQixLQUFLLENBQUMsQ0FBQztRQUM1QyxlQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFHckQsTUFBTSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUVoQixNQUFNLFVBQVUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO1FBRXRDLGVBQWUsQ0FBQyxHQUFHLEVBQUU7WUFDcEIsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDZixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsYUFBYSxDQUFDO2dCQUN4QyxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxVQUFVO29CQUFFLE9BQU87Z0JBQ3hCLE1BQU0sQ0FBQyxFQUFFLFNBQVMsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7Z0JBQzlGLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztnQkFDdEIsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUU7b0JBQ3RDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztnQkFDckUsQ0FBQyxDQUFDLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUgsa0JBQWtCLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUU7WUFDakMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzhHQTdCVyxZQUFZO2tHQUFaLFlBQVkscWNBUmQ7Ozs7RUFJVDs7MkZBSVcsWUFBWTtrQkFYeEIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsZUFBZTtvQkFDekIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7OztFQUlUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDL0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRhZnRlck5leHRSZW5kZXIsXG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXG5cdEVsZW1lbnRSZWYsXG5cdGlucHV0LFxuXHR2aWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZXh0ZW5kLCBnZXRMb2NhbFN0YXRlLCBpbmplY3RCZWZvcmVSZW5kZXIsIE5ndExPRCwgb21pdCwgcGljayB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgaW5qZWN0QXV0b0VmZmVjdCB9IGZyb20gJ25neHRlbnNpb24vYXV0by1lZmZlY3QnO1xuaW1wb3J0IHsgbWVyZ2VJbnB1dHMgfSBmcm9tICduZ3h0ZW5zaW9uL2luamVjdC1pbnB1dHMnO1xuaW1wb3J0IHsgTE9EIH0gZnJvbSAndGhyZWUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5ndHNEZXRhaWxlZE9wdGlvbnMgZXh0ZW5kcyBQYXJ0aWFsPE5ndExPRD4ge1xuXHRoeXN0ZXJlc2lzOiBudW1iZXI7XG59XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBOZ3RzRGV0YWlsZWRPcHRpb25zID0ge1xuXHRoeXN0ZXJlc2lzOiAwLFxufTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cy1kZXRhaWxlZCcsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1sT0QgI2xvZCBbcGFyYW1ldGVyc109XCJwYXJhbWV0ZXJzKClcIj5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3QtbE9EPlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzRGV0YWlsZWQge1xuXHRkaXN0YW5jZXMgPSBpbnB1dC5yZXF1aXJlZDxudW1iZXJbXT4oKTtcblx0b3B0aW9ucyA9IGlucHV0KGRlZmF1bHRPcHRpb25zLCB7IHRyYW5zZm9ybTogbWVyZ2VJbnB1dHMoZGVmYXVsdE9wdGlvbnMpIH0pO1xuXHRwYXJhbWV0ZXJzID0gb21pdCh0aGlzLm9wdGlvbnMsIFsnaHlzdGVyZXNpcyddKTtcblxuXHRsb2RSZWYgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZjxMT0Q+PignbG9kJyk7XG5cdHByaXZhdGUgaHlzdGVyZXNpcyA9IHBpY2sodGhpcy5vcHRpb25zLCAnaHlzdGVyZXNpcycpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGV4dGVuZCh7IExPRCB9KTtcblxuXHRcdGNvbnN0IGF1dG9FZmZlY3QgPSBpbmplY3RBdXRvRWZmZWN0KCk7XG5cblx0XHRhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuXHRcdFx0YXV0b0VmZmVjdCgoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IGxvZCA9IHRoaXMubG9kUmVmKCkubmF0aXZlRWxlbWVudDtcblx0XHRcdFx0Y29uc3QgbG9jYWxTdGF0ZSA9IGdldExvY2FsU3RhdGUobG9kKTtcblx0XHRcdFx0aWYgKCFsb2NhbFN0YXRlKSByZXR1cm47XG5cdFx0XHRcdGNvbnN0IFssIGRpc3RhbmNlcywgaHlzdGVyZXNpc10gPSBbbG9jYWxTdGF0ZS5vYmplY3RzKCksIHRoaXMuZGlzdGFuY2VzKCksIHRoaXMuaHlzdGVyZXNpcygpXTtcblx0XHRcdFx0bG9kLmxldmVscy5sZW5ndGggPSAwO1xuXHRcdFx0XHRsb2QuY2hpbGRyZW4uZm9yRWFjaCgob2JqZWN0LCBpbmRleCkgPT4ge1xuXHRcdFx0XHRcdGxvZC5sZXZlbHMucHVzaCh7IG9iamVjdCwgZGlzdGFuY2U6IGRpc3RhbmNlc1tpbmRleF0sIGh5c3RlcmVzaXMgfSk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cblx0XHRpbmplY3RCZWZvcmVSZW5kZXIoKHsgY2FtZXJhIH0pID0+IHtcblx0XHRcdHRoaXMubG9kUmVmKCkubmF0aXZlRWxlbWVudC51cGRhdGUoY2FtZXJhKTtcblx0XHR9KTtcblx0fVxufVxuIl19