angular-three-soba 2.0.0-beta.8 → 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 -48
  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,36 @@
1
+ import { ElementRef, TemplateRef } from '@angular/core';
2
+ import { NgtPerspectiveCamera } from 'angular-three';
3
+ import { Group, PerspectiveCamera, Texture } from 'three';
4
+ import * as i0 from "@angular/core";
5
+ export interface NgtsPerspectiveCameraOptions extends Partial<NgtPerspectiveCamera> {
6
+ /** Registers the camera as the system default, fiber will start rendering with it */
7
+ makeDefault?: boolean;
8
+ /** Making it manual will stop responsiveness and you have to calculate aspect ratio yourself. */
9
+ manual?: boolean;
10
+ /** Number of frames to render, Infinity */
11
+ frames: number;
12
+ /** Resolution of the FBO, 256 */
13
+ resolution: number;
14
+ /** Optional environment map for functional use */
15
+ envMap?: Texture;
16
+ }
17
+ export declare class NgtsPerspectiveCamera {
18
+ options: import("@angular/core").InputSignalWithTransform<NgtsPerspectiveCameraOptions, "" | Partial<NgtsPerspectiveCameraOptions>>;
19
+ parameters: import("@angular/core").Signal<Omit<NgtsPerspectiveCameraOptions, "resolution" | "envMap" | "frames" | "makeDefault" | "manual">>;
20
+ content: import("@angular/core").Signal<TemplateRef<any> | undefined>;
21
+ cameraContent: import("@angular/core").Signal<TemplateRef<any> | undefined>;
22
+ cameraRef: import("@angular/core").Signal<ElementRef<PerspectiveCamera>>;
23
+ groupRef: import("@angular/core").Signal<ElementRef<Group<import("three").Object3DEventMap>>>;
24
+ private autoEffect;
25
+ private store;
26
+ private camera;
27
+ private size;
28
+ private manual;
29
+ private makeDefault;
30
+ private resolution;
31
+ private fbo;
32
+ texture: import("@angular/core").Signal<Texture>;
33
+ constructor();
34
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgtsPerspectiveCamera, never>;
35
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgtsPerspectiveCamera, "ngts-perspective-camera", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; }, {}, ["content", "cameraContent"], never, true, never>;
36
+ }
@@ -1,3 +1,97 @@
1
- # angular-three-soba/controls
1
+ # `angular-three-soba/controls`
2
2
 
3
- Secondary entry point of `angular-three-soba`. It can be used by importing from `angular-three-soba/controls`.
3
+ This secondary entry point includes controls for manipulating the camera in your scene. It requires `camera-controls` as an additional dependency.
4
+
5
+ | Package | Description |
6
+ | ----------------- | -------------------------------- |
7
+ | `camera-controls` | required by `NgtsCameraControls` |
8
+ | `maath` | required by `NgtsScrollControls` |
9
+
10
+ ```bash
11
+ npm install camera-controls maath
12
+ # yarn add camera-controls maath
13
+ # pnpm add camera-controls maath
14
+ ```
15
+
16
+ ## TOC
17
+
18
+ - [NgtsCameraControls](#ngtscameracontrols)
19
+ - [NgtsOrbitControls](#ngtsorbitcontrols)
20
+
21
+ ## NgtsCameraControls
22
+
23
+ A component that provides advanced camera controls based on the `camera-controls` library. It allows you to manipulate the camera's position, rotation, and other properties through various interactions.
24
+
25
+ ### Object Input (`NgtsCameraControlsOptions`)
26
+
27
+ | Property | Description | Default Value |
28
+ | ----------- | ---------------------------------------------------------------------------------------------------- | ------------------------ |
29
+ | camera | An instance of `NgtCamera` that the controls will manipulate. | `NgtStore.camera` |
30
+ | domElement | The HTML element that the controls will listen for events on. | `NgtStore.gl.domElement` |
31
+ | makeDefault | A boolean flag indicating whether these controls should be set as the default controls in the store. | `false` |
32
+ | events | A boolean flag indicating whether to enable or disable event listeners for the controls. | `false` |
33
+ | regress | A boolean flag indicating whether to enable or disable performance regression for the controls. | `false` |
34
+
35
+ Other options are available in the `camera-controls` library. For more information, see the [official documentation](https://github.com/yomotsu/camera-controls?tab=readme-ov-file)
36
+
37
+ ### Usage
38
+
39
+ ```ts
40
+ @Component({
41
+ standalone: true,
42
+ template: `
43
+ <ngt-mesh>
44
+ <ngt-box-geometry />
45
+ <ngt-mesh-basic-material color="red" [wireframe]="true" />
46
+ </ngt-mesh>
47
+
48
+ <ngt-grid-helper *args="[50, 50]" [position]="[0, -1, 0]" />
49
+
50
+ <ngts-camera-controls />
51
+ `,
52
+ imports: [NgtsCameraControls, NgtArgs],
53
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
54
+ changeDetection: ChangeDetectionStrategy.OnPush,
55
+ })
56
+ class DefaultCameraControlsStory {
57
+ rotate = input<keyof typeof rotations | 'none'>('none');
58
+
59
+ cameraControlsRef = viewChild.required(NgtsCameraControls);
60
+
61
+ constructor() {
62
+ effect(() => {
63
+ const [rotate, controls] = [this.rotate(), this.cameraControlsRef().controls()];
64
+ if (rotate !== 'none') {
65
+ const [theta, phi, animate] = rotations[rotate];
66
+ void controls.rotate(theta, phi, animate);
67
+ } else {
68
+ void controls.reset(true);
69
+ }
70
+ });
71
+ }
72
+ }
73
+ ```
74
+
75
+ ## NgtsOrbitControls
76
+
77
+ A component that provides orbit controls for rotating the camera around a target point. It is based on the OrbitControls class from the `three-stdlib` library.
78
+
79
+ ### Object Input (`NgtsOrbitControlsOptions`)
80
+
81
+ | Property | Description | Default Value |
82
+ | ------------- | ---------------------------------------------------------------------------------------------------- | ------------------------ |
83
+ | camera | An instance of `NgtCamera` that the controls will manipulate. | `NgtStore.camera` |
84
+ | domElement | The HTML element that the controls will listen for events on. | `NgtStore.gl.domElement` |
85
+ | target | The coordinates that the camera will orbit around. | `[0, 0, 0]` |
86
+ | makeDefault | A boolean flag indicating whether these controls should be set as the default controls in the store. | `false` |
87
+ | regress | A boolean flag indicating whether to enable or disable performance regression for the controls. | `false` |
88
+ | enableDamping | A boolean flag indicating whether to enable or disable damping (smoothness) of the camera movement. | `true` |
89
+ | keyEvents | A boolean flag or an HTML element indicating whether to enable keyboard events for the controls. | `false` |
90
+
91
+ Other options can pass through to `OrbitControls`.
92
+
93
+ ### Usage
94
+
95
+ ```html
96
+ <ngts-orbit-controls [options]="{ autoRotate: true }" />
97
+ ```
@@ -1 +1,4 @@
1
- export * from './orbit-controls/orbit-controls';
1
+ export * from './lib/camera-controls';
2
+ export * from './lib/orbit-controls';
3
+ export * from './lib/pivot-controls/pivot-controls';
4
+ export * from './lib/scroll-controls';
@@ -0,0 +1,31 @@
1
+ import { NgtCamera } from 'angular-three';
2
+ import CameraControls from 'camera-controls';
3
+ import * as i0 from "@angular/core";
4
+ export interface NgtsCameraControlsOptions {
5
+ camera?: NgtCamera;
6
+ domElement?: HTMLElement;
7
+ makeDefault: boolean;
8
+ events: boolean;
9
+ regress: boolean;
10
+ }
11
+ export declare class NgtsCameraControls {
12
+ options: import("@angular/core").InputSignalWithTransform<Partial<CameraControls> & NgtsCameraControlsOptions, "" | Partial<Partial<CameraControls> & NgtsCameraControlsOptions>>;
13
+ parameters: import("@angular/core").Signal<Omit<Partial<CameraControls> & NgtsCameraControlsOptions, "camera" | "makeDefault" | "regress" | "domElement">>;
14
+ changed: import("@angular/core").OutputEmitterRef<any>;
15
+ started: import("@angular/core").OutputEmitterRef<any>;
16
+ ended: import("@angular/core").OutputEmitterRef<any>;
17
+ private store;
18
+ private invalidate;
19
+ private performanceRegress;
20
+ private defaultCamera;
21
+ private glDomElement;
22
+ private eventsElement;
23
+ private camera;
24
+ private regress;
25
+ private domElement;
26
+ private makeDefault;
27
+ controls: import("@angular/core").Signal<CameraControls>;
28
+ constructor();
29
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgtsCameraControls, never>;
30
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgtsCameraControls, "ngts-camera-controls", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; }, { "changed": "changed"; "started": "started"; "ended": "ended"; }, never, ["*"], true, never>;
31
+ }
@@ -0,0 +1,38 @@
1
+ import { NgtVector3 } from 'angular-three';
2
+ import { Camera, Event } from 'three';
3
+ import { OrbitControls } from 'three-stdlib';
4
+ import * as i0 from "@angular/core";
5
+ export interface NgtsOrbitControlsOptions {
6
+ camera?: Camera;
7
+ domElement?: HTMLElement;
8
+ target?: NgtVector3;
9
+ makeDefault: boolean;
10
+ regress: boolean;
11
+ enableDamping: boolean;
12
+ keyEvents: boolean | HTMLElement;
13
+ }
14
+ export declare class NgtsOrbitControls {
15
+ options: import("@angular/core").InputSignalWithTransform<Partial<OrbitControls> & NgtsOrbitControlsOptions, "" | Partial<Partial<OrbitControls> & NgtsOrbitControlsOptions>>;
16
+ parameters: import("@angular/core").Signal<Omit<Partial<OrbitControls> & NgtsOrbitControlsOptions, "camera" | "makeDefault" | "regress" | "domElement" | "enableDamping" | "keyEvents">>;
17
+ changed: import("@angular/core").OutputEmitterRef<Event<string, unknown>>;
18
+ started: import("@angular/core").OutputEmitterRef<Event<string, unknown>>;
19
+ ended: import("@angular/core").OutputEmitterRef<Event<string, unknown>>;
20
+ private store;
21
+ private invalidate;
22
+ private performanceRegress;
23
+ private defaultCamera;
24
+ private glDomElement;
25
+ private camera;
26
+ private regress;
27
+ private keyEvents;
28
+ private domElement;
29
+ private makeDefault;
30
+ controls: import("@angular/core").Signal<OrbitControls>;
31
+ protected enableDamping: import("@angular/core").Signal<boolean>;
32
+ constructor();
33
+ private connectElement;
34
+ private makeControlsDefault;
35
+ private setEvents;
36
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgtsOrbitControls, never>;
37
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgtsOrbitControls, "ngts-orbit-controls", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; }, { "changed": "changed"; "started": "started"; "ended": "ended"; }, never, ["*"], true, never>;
38
+ }
@@ -0,0 +1,31 @@
1
+ import { ElementRef, Signal } from '@angular/core';
2
+ import { NgtThreeEvent } from 'angular-three';
3
+ import { Group, Matrix4, Vector3 } from 'three';
4
+ import { NgtsPivotControls } from './pivot-controls';
5
+ import * as i0 from "@angular/core";
6
+ export declare function calculateOffset(clickPoint: Vector3, normal: Vector3, rayStart: Vector3, rayDir: Vector3): number;
7
+ export declare class NgtsAxisArrow {
8
+ protected readonly DoubleSide: 2;
9
+ direction: import("@angular/core").InputSignal<Vector3>;
10
+ axis: import("@angular/core").InputSignal<0 | 2 | 1>;
11
+ groupRef: Signal<ElementRef<Group<import("three").Object3DEventMap>>>;
12
+ annotationRef: Signal<ElementRef<HTMLDivElement> | undefined>;
13
+ pivotControls: NgtsPivotControls;
14
+ private store;
15
+ private controls;
16
+ private hovered;
17
+ private clickInfo;
18
+ private offset0;
19
+ color: Signal<string | number>;
20
+ coneWidth: Signal<number>;
21
+ coneLength: Signal<number>;
22
+ cylinderLength: Signal<number>;
23
+ matrixL: Signal<Matrix4>;
24
+ constructor();
25
+ onPointerDown(event: NgtThreeEvent<PointerEvent>): void;
26
+ onPointerUp(event: NgtThreeEvent<PointerEvent>): void;
27
+ onPointerMove(event: NgtThreeEvent<PointerEvent>): void;
28
+ onPointerOut(event: NgtThreeEvent<PointerEvent>): void;
29
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgtsAxisArrow, never>;
30
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgtsAxisArrow, "ngts-axis-arrow", never, { "direction": { "alias": "direction"; "required": true; "isSignal": true; }; "axis": { "alias": "axis"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
31
+ }
@@ -0,0 +1,30 @@
1
+ import { ElementRef, Signal } from '@angular/core';
2
+ import { NgtThreeEvent } from 'angular-three';
3
+ import { Group, Matrix4, Vector3 } from 'three';
4
+ import { NgtsPivotControls } from './pivot-controls';
5
+ import * as i0 from "@angular/core";
6
+ export declare class NgtsAxisRotator {
7
+ protected readonly DoubleSide: 2;
8
+ dir1: import("@angular/core").InputSignal<Vector3>;
9
+ dir2: import("@angular/core").InputSignal<Vector3>;
10
+ axis: import("@angular/core").InputSignal<0 | 2 | 1>;
11
+ groupRef: Signal<ElementRef<Group<import("three").Object3DEventMap>>>;
12
+ annotationRef: Signal<ElementRef<HTMLDivElement> | undefined>;
13
+ pivotControls: NgtsPivotControls;
14
+ private store;
15
+ private controls;
16
+ hovered: import("@angular/core").WritableSignal<boolean>;
17
+ private angle;
18
+ private angle0;
19
+ private clickInfo;
20
+ matrixL: Signal<Matrix4>;
21
+ r: Signal<number>;
22
+ arc: Signal<Vector3[]>;
23
+ constructor();
24
+ onPointerDown(event: NgtThreeEvent<PointerEvent>): void;
25
+ onPointerMove(event: NgtThreeEvent<PointerEvent>): void;
26
+ onPointerUp(event: NgtThreeEvent<PointerEvent>): void;
27
+ onPointerOut(event: NgtThreeEvent<PointerEvent>): void;
28
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgtsAxisRotator, never>;
29
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgtsAxisRotator, "ngts-axis-rotator", never, { "dir1": { "alias": "dir1"; "required": true; "isSignal": true; }; "dir2": { "alias": "dir2"; "required": true; "isSignal": true; }; "axis": { "alias": "axis"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
30
+ }
@@ -0,0 +1,110 @@
1
+ import { ElementRef } from '@angular/core';
2
+ import { NgtAnyRecord } from 'angular-three';
3
+ import { Group, Matrix4, Vector3 } from 'three';
4
+ import * as i0 from "@angular/core";
5
+ export interface OnDragStartParameters {
6
+ component: 'Arrow' | 'Slider' | 'Rotator' | 'Sphere';
7
+ axis: 0 | 1 | 2;
8
+ origin: Vector3;
9
+ directions: Vector3[];
10
+ }
11
+ export interface OnDragParameters {
12
+ l: Matrix4;
13
+ deltaL: Matrix4;
14
+ w: Matrix4;
15
+ deltaW: Matrix4;
16
+ }
17
+ export interface NgtsPivotControlsOptions {
18
+ /** Enables/disables the control, true */
19
+ enabled: boolean;
20
+ /** Scale of the gizmo, 1 */
21
+ scale: number;
22
+ /** Width of the gizmo lines, this is a THREE.Line2 prop, 2.5 */
23
+ lineWidth: number;
24
+ /** If fixed is true is remains constant in size, scale is now in pixels, false */
25
+ fixed: boolean;
26
+ /** Pivot does not act as a group, it won't shift contents but can offset in position */
27
+ offset: [number, number, number];
28
+ /** Starting rotation */
29
+ rotation: [number, number, number];
30
+ /** Starting matrix */
31
+ matrix?: Matrix4;
32
+ /** BBAnchor, each axis can be between -1/0/+1 */
33
+ anchor?: [number, number, number];
34
+ /** If autoTransform is true, automatically apply the local transform on drag, true */
35
+ autoTransform: boolean;
36
+ /** Allows you to switch individual axes off */
37
+ activeAxes: [boolean, boolean, boolean];
38
+ /** Allows you to switch individual transformations off */
39
+ disableAxes: boolean;
40
+ disableSliders: boolean;
41
+ disableRotations: boolean;
42
+ disableScaling: boolean;
43
+ /** Limits */
44
+ translationLimits?: [[number, number] | undefined, [number, number] | undefined, [number, number] | undefined];
45
+ rotationLimits?: [[number, number] | undefined, [number, number] | undefined, [number, number] | undefined];
46
+ scaleLimits?: [[number, number] | undefined, [number, number] | undefined, [number, number] | undefined];
47
+ /** RGB colors */
48
+ axisColors: [string | number, string | number, string | number];
49
+ /** Color of the hovered item */
50
+ hoveredColor: string | number;
51
+ /** HTML value annotations, default: false */
52
+ annotations: boolean;
53
+ /** CSS Classname applied to the HTML annotations */
54
+ annotationsClass?: string;
55
+ /** Set this to false if you want the gizmo to be visible through faces */
56
+ depthTest: boolean;
57
+ opacity?: number;
58
+ visible: boolean;
59
+ userData?: NgtAnyRecord;
60
+ }
61
+ export declare class NgtsPivotControls {
62
+ options: import("@angular/core").InputSignalWithTransform<NgtsPivotControlsOptions, "" | Partial<NgtsPivotControlsOptions>>;
63
+ parameters: import("@angular/core").Signal<Omit<NgtsPivotControlsOptions, "enabled" | "hoveredColor" | "scale" | "lineWidth" | "fixed" | "offset" | "rotation" | "matrix" | "anchor" | "autoTransform" | "activeAxes" | "disableAxes" | "disableSliders" | "disableRotations" | "disableScaling" | "translationLimits" | "rotationLimits" | "scaleLimits" | "axisColors" | "annotations" | "annotationsClass" | "depthTest" | "opacity" | "visible" | "userData">>;
64
+ dragStarted: import("@angular/core").OutputEmitterRef<OnDragStartParameters>;
65
+ dragEnded: import("@angular/core").OutputEmitterRef<void>;
66
+ dragged: import("@angular/core").OutputEmitterRef<OnDragParameters>;
67
+ matrix: import("@angular/core").Signal<Matrix4 | undefined>;
68
+ annotations: import("@angular/core").Signal<boolean>;
69
+ annotationsClass: import("@angular/core").Signal<string | undefined>;
70
+ translationLimits: import("@angular/core").Signal<[[number, number] | undefined, [number, number] | undefined, [number, number] | undefined] | undefined>;
71
+ rotationLimits: import("@angular/core").Signal<[[number, number] | undefined, [number, number] | undefined, [number, number] | undefined] | undefined>;
72
+ scaleLimits: import("@angular/core").Signal<[[number, number] | undefined, [number, number] | undefined, [number, number] | undefined] | undefined>;
73
+ autoTransform: import("@angular/core").Signal<boolean>;
74
+ fixed: import("@angular/core").Signal<boolean>;
75
+ hoveredColor: import("@angular/core").Signal<string | number>;
76
+ axisColors: import("@angular/core").Signal<[string | number, string | number, string | number]>;
77
+ lineWidth: import("@angular/core").Signal<number>;
78
+ scale: import("@angular/core").Signal<number>;
79
+ userData: import("@angular/core").Signal<NgtAnyRecord | undefined>;
80
+ opacity: import("@angular/core").Signal<number | undefined>;
81
+ depthTest: import("@angular/core").Signal<boolean>;
82
+ offset: import("@angular/core").Signal<[number, number, number]>;
83
+ rotation: import("@angular/core").Signal<[number, number, number]>;
84
+ visible: import("@angular/core").Signal<boolean>;
85
+ enabled: import("@angular/core").Signal<boolean>;
86
+ disableAxes: import("@angular/core").Signal<boolean>;
87
+ disableSliders: import("@angular/core").Signal<boolean>;
88
+ disableRotations: import("@angular/core").Signal<boolean>;
89
+ disableScaling: import("@angular/core").Signal<boolean>;
90
+ activeAxes: import("@angular/core").Signal<[boolean, boolean, boolean]>;
91
+ xDir: Vector3;
92
+ yDir: Vector3;
93
+ zDir: Vector3;
94
+ parentRef: import("@angular/core").Signal<ElementRef<Group<import("three").Object3DEventMap>>>;
95
+ groupRef: import("@angular/core").Signal<ElementRef<Group<import("three").Object3DEventMap>>>;
96
+ gizmoRef: import("@angular/core").Signal<ElementRef<Group<import("three").Object3DEventMap>>>;
97
+ childrenRef: import("@angular/core").Signal<ElementRef<Group<import("three").Object3DEventMap>>>;
98
+ private store;
99
+ private invalidate;
100
+ translation: [number, number, number];
101
+ private anchor;
102
+ private cameraScale;
103
+ private gizmoScale;
104
+ constructor();
105
+ onDragStart(parameters: OnDragStartParameters): void;
106
+ onDrag(mdW: Matrix4): void;
107
+ onDragEnd(): void;
108
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgtsPivotControls, never>;
109
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgtsPivotControls, "ngts-pivot-controls", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; }, { "dragStarted": "dragStarted"; "dragEnded": "dragEnded"; "dragged": "dragged"; }, never, ["*"], true, never>;
110
+ }
@@ -0,0 +1,32 @@
1
+ import { ElementRef, Signal } from '@angular/core';
2
+ import { NgtThreeEvent } from 'angular-three';
3
+ import { Group, Matrix4, Vector3 } from 'three';
4
+ import { NgtsPivotControls } from './pivot-controls';
5
+ import * as i0 from "@angular/core";
6
+ export declare class NgtsPlaneSlider {
7
+ protected readonly DoubleSide: 2;
8
+ dir1: import("@angular/core").InputSignal<Vector3>;
9
+ dir2: import("@angular/core").InputSignal<Vector3>;
10
+ axis: import("@angular/core").InputSignal<0 | 2 | 1>;
11
+ groupRef: Signal<ElementRef<Group<import("three").Object3DEventMap>>>;
12
+ annotationRef: Signal<ElementRef<HTMLDivElement> | undefined>;
13
+ pivotControls: NgtsPivotControls;
14
+ private store;
15
+ private controls;
16
+ private hovered;
17
+ private clickInfo;
18
+ private offsetX0;
19
+ private offsetY0;
20
+ matrixL: Signal<Matrix4>;
21
+ pos1: Signal<number>;
22
+ length: Signal<number>;
23
+ color: Signal<string | number>;
24
+ points: Signal<Vector3[]>;
25
+ constructor();
26
+ onPointerDown(event: NgtThreeEvent<PointerEvent>): void;
27
+ onPointerMove(event: NgtThreeEvent<PointerEvent>): void;
28
+ onPointerUp(event: NgtThreeEvent<PointerEvent>): void;
29
+ onPointerOut(event: NgtThreeEvent<PointerEvent>): void;
30
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgtsPlaneSlider, never>;
31
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgtsPlaneSlider, "ngts-plane-slider", never, { "dir1": { "alias": "dir1"; "required": true; "isSignal": true; }; "dir2": { "alias": "dir2"; "required": true; "isSignal": true; }; "axis": { "alias": "axis"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
32
+ }
@@ -0,0 +1,32 @@
1
+ import { ElementRef, Signal } from '@angular/core';
2
+ import { NgtThreeEvent } from 'angular-three';
3
+ import { Group, Matrix4, Mesh, Vector3 } from 'three';
4
+ import { NgtsPivotControls } from './pivot-controls';
5
+ import * as i0 from "@angular/core";
6
+ export declare function calculateOffset(clickPoint: Vector3, normal: Vector3, rayStart: Vector3, rayDir: Vector3): number;
7
+ export declare class NgtsScalingSphere {
8
+ direction: import("@angular/core").InputSignal<Vector3>;
9
+ axis: import("@angular/core").InputSignal<0 | 2 | 1>;
10
+ groupRef: Signal<ElementRef<Group<import("three").Object3DEventMap>>>;
11
+ annotationRef: Signal<ElementRef<HTMLDivElement> | undefined>;
12
+ meshRef: Signal<ElementRef<Mesh<import("three").BufferGeometry<import("three").NormalBufferAttributes>, import("three").Material | import("three").Material[], import("three").Object3DEventMap>>>;
13
+ pivotControls: NgtsPivotControls;
14
+ private store;
15
+ private controls;
16
+ private size;
17
+ private hovered;
18
+ private scale0;
19
+ private scaleCurrent;
20
+ private clickInfo;
21
+ position: Signal<number>;
22
+ radius: Signal<number>;
23
+ matrixL: Signal<Matrix4>;
24
+ color: Signal<string | number>;
25
+ constructor();
26
+ onPointerDown(event: NgtThreeEvent<PointerEvent>): void;
27
+ onPointerMove(event: NgtThreeEvent<PointerEvent>): void;
28
+ onPointerUp(event: NgtThreeEvent<PointerEvent>): void;
29
+ onPointerOut(event: NgtThreeEvent<PointerEvent>): void;
30
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgtsScalingSphere, never>;
31
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgtsScalingSphere, "ngts-scaling-sphere", never, { "direction": { "alias": "direction"; "required": true; "isSignal": true; }; "axis": { "alias": "axis"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
32
+ }
@@ -0,0 +1,78 @@
1
+ import { NgtHTML } from 'angular-three';
2
+ import * as i0 from "@angular/core";
3
+ export interface NgtsScrollControlsOptions {
4
+ /** Precision, default 0.00001 */
5
+ eps: number;
6
+ /** Horizontal scroll, default false (vertical) */
7
+ horizontal: boolean;
8
+ /** Infinite scroll, default false (experimental!) */
9
+ infinite: boolean;
10
+ /** Defines the lenght of the scroll area, each page is height:100%, default 1 */
11
+ pages: number;
12
+ /** A factor that increases scroll bar travel,default: 1 */
13
+ distance: number;
14
+ /** Friction in seconds, default: 0.25 (1/4 second) */
15
+ damping: number;
16
+ /** maxSpeed optionally allows you to clamp the maximum speed. If damping is 0.2s and looks OK
17
+ * going between, say, page 1 and 2, but not for pages far apart as it'll move very rapid,
18
+ * then a maxSpeed of e.g. 3 which will clamp the speed to 3 units per second, it may now
19
+ * take much longer than damping to reach the target if it is far away. Default: Infinity */
20
+ maxSpeed: number;
21
+ /** If true attaches the scroll container before the canvas */
22
+ prepend: boolean;
23
+ enabled: boolean;
24
+ style: Partial<CSSStyleDeclaration>;
25
+ }
26
+ export declare class NgtsScrollControls {
27
+ progress: import("@angular/core").ModelSignal<number>;
28
+ options: import("@angular/core").InputSignalWithTransform<NgtsScrollControlsOptions, "" | Partial<NgtsScrollControlsOptions>>;
29
+ private document;
30
+ private store;
31
+ private gl;
32
+ private events;
33
+ private invalidate;
34
+ private size;
35
+ private domElement;
36
+ private target;
37
+ private _el;
38
+ private _fill;
39
+ private _fixed;
40
+ private style;
41
+ private prepend;
42
+ private enabled;
43
+ private infinite;
44
+ private maxSpeed;
45
+ eps: import("@angular/core").Signal<number>;
46
+ horizontal: import("@angular/core").Signal<boolean>;
47
+ pages: import("@angular/core").Signal<number>;
48
+ distance: import("@angular/core").Signal<number>;
49
+ damping: import("@angular/core").Signal<number>;
50
+ scroll: number;
51
+ offset: number;
52
+ delta: number;
53
+ constructor();
54
+ get el(): HTMLDivElement;
55
+ get fill(): HTMLDivElement;
56
+ get fixed(): HTMLDivElement;
57
+ range(from: number, distance: number, margin?: number): number;
58
+ curve(from: number, distance: number, margin?: number): number;
59
+ visible(from: number, distance: number, margin?: number): boolean;
60
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgtsScrollControls, never>;
61
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgtsScrollControls, "ngts-scroll-controls", never, { "progress": { "alias": "progress"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; }, { "progress": "progressChange"; }, never, ["*"], true, never>;
62
+ }
63
+ export declare class NgtsScrollCanvas {
64
+ private host;
65
+ private scrollControls;
66
+ private store;
67
+ private viewport;
68
+ constructor();
69
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgtsScrollCanvas, never>;
70
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NgtsScrollCanvas, "ngt-group[ngtsScrollCanvas]", never, {}, {}, never, never, true, never>;
71
+ }
72
+ export declare class NgtsScrollHtml extends NgtHTML {
73
+ private scrollControls;
74
+ private size;
75
+ constructor();
76
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgtsScrollHtml, never>;
77
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NgtsScrollHtml, "div[ngtsScrollHTML]", never, {}, {}, never, never, true, never>;
78
+ }
@@ -1,7 +1,14 @@
1
- export * from './billboard/billboard';
2
- export * from './detailed/detailed';
3
- export * from './edges/edges';
4
- export * from './grid/grid';
5
- export * from './text-3d/text-3d';
6
- export * from './text/text';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvYWJzdHJhY3Rpb25zL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYmlsbGJvYXJkL2JpbGxib2FyZCc7XG5leHBvcnQgKiBmcm9tICcuL2RldGFpbGVkL2RldGFpbGVkJztcbmV4cG9ydCAqIGZyb20gJy4vZWRnZXMvZWRnZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9ncmlkL2dyaWQnO1xuZXhwb3J0ICogZnJvbSAnLi90ZXh0LTNkL3RleHQtM2QnO1xuZXhwb3J0ICogZnJvbSAnLi90ZXh0L3RleHQnO1xuIl19
1
+ export * from './lib/billboard';
2
+ export * from './lib/catmull-rom-line';
3
+ export * from './lib/cubic-bezier-line';
4
+ export * from './lib/edges';
5
+ export * from './lib/gradient-texture';
6
+ export * from './lib/grid';
7
+ export * from './lib/helper';
8
+ export * from './lib/line';
9
+ export * from './lib/prism-geometry';
10
+ export * from './lib/quadratic-bezier-line';
11
+ export * from './lib/rounded-box';
12
+ export * from './lib/text';
13
+ export * from './lib/text-3d';
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvYWJzdHJhY3Rpb25zL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvYmlsbGJvYXJkJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NhdG11bGwtcm9tLWxpbmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY3ViaWMtYmV6aWVyLWxpbmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZWRnZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZ3JhZGllbnQtdGV4dHVyZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9ncmlkJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2hlbHBlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9saW5lJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ByaXNtLWdlb21ldHJ5JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3F1YWRyYXRpYy1iZXppZXItbGluZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9yb3VuZGVkLWJveCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZXh0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RleHQtM2QnO1xuIl19
@@ -0,0 +1,69 @@
1
+ import { ChangeDetectionStrategy, Component, CUSTOM_ELEMENTS_SCHEMA, input, viewChild, } from '@angular/core';
2
+ import { extend, injectBeforeRender, omit } from 'angular-three';
3
+ import { mergeInputs } from 'ngxtension/inject-inputs';
4
+ import { Group, Quaternion } from 'three';
5
+ import * as i0 from "@angular/core";
6
+ const defaultOptions = {
7
+ follow: true,
8
+ lockX: false,
9
+ lockY: false,
10
+ lockZ: false,
11
+ };
12
+ export class NgtsBillboard {
13
+ constructor() {
14
+ this.options = input(defaultOptions, { transform: mergeInputs(defaultOptions) });
15
+ this.parameters = omit(this.options, ['follow', 'lockX', 'lockY', 'lockZ']);
16
+ this.groupRef = viewChild.required('group');
17
+ this.innerRef = viewChild.required('inner');
18
+ extend({ Group });
19
+ const q = new Quaternion();
20
+ injectBeforeRender(({ camera }) => {
21
+ const [{ follow, lockX, lockY, lockZ }, group, inner] = [
22
+ this.options(),
23
+ this.groupRef().nativeElement,
24
+ this.innerRef().nativeElement,
25
+ ];
26
+ if (!follow || !group)
27
+ return;
28
+ // save previous rotation in case we're locking an axis
29
+ const prevRotation = group.rotation.clone();
30
+ // always face the camera
31
+ group.updateMatrix();
32
+ group.updateWorldMatrix(false, false);
33
+ group.getWorldQuaternion(q);
34
+ camera.getWorldQuaternion(inner.quaternion).premultiply(q.invert());
35
+ // readjust any axis that is locked
36
+ if (lockX)
37
+ group.rotation.x = prevRotation.x;
38
+ if (lockY)
39
+ group.rotation.y = prevRotation.y;
40
+ if (lockZ)
41
+ group.rotation.z = prevRotation.z;
42
+ });
43
+ }
44
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtsBillboard, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
45
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.0", type: NgtsBillboard, isStandalone: true, selector: "ngts-billboard", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "groupRef", first: true, predicate: ["group"], descendants: true, isSignal: true }, { propertyName: "innerRef", first: true, predicate: ["inner"], descendants: true, isSignal: true }], ngImport: i0, template: `
46
+ <ngt-group #group [parameters]="parameters()">
47
+ <ngt-group #inner>
48
+ <ng-content />
49
+ </ngt-group>
50
+ </ngt-group>
51
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
52
+ }
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: NgtsBillboard, decorators: [{
54
+ type: Component,
55
+ args: [{
56
+ selector: 'ngts-billboard',
57
+ standalone: true,
58
+ template: `
59
+ <ngt-group #group [parameters]="parameters()">
60
+ <ngt-group #inner>
61
+ <ng-content />
62
+ </ngt-group>
63
+ </ngt-group>
64
+ `,
65
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
66
+ changeDetection: ChangeDetectionStrategy.OnPush,
67
+ }]
68
+ }], ctorParameters: () => [] });
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmlsbGJvYXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL2Fic3RyYWN0aW9ucy9zcmMvbGliL2JpbGxib2FyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxzQkFBc0IsRUFFdEIsS0FBSyxFQUNMLFNBQVMsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsTUFBTSxFQUFFLGtCQUFrQixFQUFZLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxPQUFPLENBQUM7O0FBUzFDLE1BQU0sY0FBYyxHQUF5QjtJQUM1QyxNQUFNLEVBQUUsSUFBSTtJQUNaLEtBQUssRUFBRSxLQUFLO0lBQ1osS0FBSyxFQUFFLEtBQUs7SUFDWixLQUFLLEVBQUUsS0FBSztDQUNaLENBQUM7QUFlRixNQUFNLE9BQU8sYUFBYTtJQU96QjtRQU5BLFlBQU8sR0FBRyxLQUFLLENBQUMsY0FBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUUsZUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUV2RSxhQUFRLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBb0IsT0FBTyxDQUFDLENBQUM7UUFDMUQsYUFBUSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQW9CLE9BQU8sQ0FBQyxDQUFDO1FBR3pELE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFFbEIsTUFBTSxDQUFDLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUMzQixrQkFBa0IsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRTtZQUNqQyxNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUc7Z0JBQ3ZELElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLGFBQWE7Z0JBQzdCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxhQUFhO2FBQzdCLENBQUM7WUFFRixJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsS0FBSztnQkFBRSxPQUFPO1lBRTlCLHVEQUF1RDtZQUN2RCxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBRTVDLHlCQUF5QjtZQUN6QixLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDckIsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN0QyxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUIsTUFBTSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7WUFFcEUsbUNBQW1DO1lBQ25DLElBQUksS0FBSztnQkFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBQzdDLElBQUksS0FBSztnQkFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBQzdDLElBQUksS0FBSztnQkFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs4R0FsQ1csYUFBYTtrR0FBYixhQUFhLDJhQVZmOzs7Ozs7RUFNVDs7MkZBSVcsYUFBYTtrQkFiekIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7Ozs7RUFNVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQy9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0Q1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcblx0RWxlbWVudFJlZixcblx0aW5wdXQsXG5cdHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBleHRlbmQsIGluamVjdEJlZm9yZVJlbmRlciwgTmd0R3JvdXAsIG9taXQgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IG1lcmdlSW5wdXRzIH0gZnJvbSAnbmd4dGVuc2lvbi9pbmplY3QtaW5wdXRzJztcbmltcG9ydCB7IEdyb3VwLCBRdWF0ZXJuaW9uIH0gZnJvbSAndGhyZWUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5ndHNCaWxsYm9hcmRPcHRpb25zIGV4dGVuZHMgUGFydGlhbDxOZ3RHcm91cD4ge1xuXHRmb2xsb3c/OiBib29sZWFuO1xuXHRsb2NrWD86IGJvb2xlYW47XG5cdGxvY2tZPzogYm9vbGVhbjtcblx0bG9ja1o/OiBib29sZWFuO1xufVxuXG5jb25zdCBkZWZhdWx0T3B0aW9uczogTmd0c0JpbGxib2FyZE9wdGlvbnMgPSB7XG5cdGZvbGxvdzogdHJ1ZSxcblx0bG9ja1g6IGZhbHNlLFxuXHRsb2NrWTogZmFsc2UsXG5cdGxvY2taOiBmYWxzZSxcbn07XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHMtYmlsbGJvYXJkJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LWdyb3VwICNncm91cCBbcGFyYW1ldGVyc109XCJwYXJhbWV0ZXJzKClcIj5cblx0XHRcdDxuZ3QtZ3JvdXAgI2lubmVyPlxuXHRcdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdFx0PC9uZ3QtZ3JvdXA+XG5cdFx0PC9uZ3QtZ3JvdXA+XG5cdGAsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNCaWxsYm9hcmQge1xuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdE9wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0T3B0aW9ucykgfSk7XG5cdHBhcmFtZXRlcnMgPSBvbWl0KHRoaXMub3B0aW9ucywgWydmb2xsb3cnLCAnbG9ja1gnLCAnbG9ja1knLCAnbG9ja1onXSk7XG5cblx0Z3JvdXBSZWYgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZjxHcm91cD4+KCdncm91cCcpO1xuXHRpbm5lclJlZiA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPEdyb3VwPj4oJ2lubmVyJyk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgR3JvdXAgfSk7XG5cblx0XHRjb25zdCBxID0gbmV3IFF1YXRlcm5pb24oKTtcblx0XHRpbmplY3RCZWZvcmVSZW5kZXIoKHsgY2FtZXJhIH0pID0+IHtcblx0XHRcdGNvbnN0IFt7IGZvbGxvdywgbG9ja1gsIGxvY2tZLCBsb2NrWiB9LCBncm91cCwgaW5uZXJdID0gW1xuXHRcdFx0XHR0aGlzLm9wdGlvbnMoKSxcblx0XHRcdFx0dGhpcy5ncm91cFJlZigpLm5hdGl2ZUVsZW1lbnQsXG5cdFx0XHRcdHRoaXMuaW5uZXJSZWYoKS5uYXRpdmVFbGVtZW50LFxuXHRcdFx0XTtcblxuXHRcdFx0aWYgKCFmb2xsb3cgfHwgIWdyb3VwKSByZXR1cm47XG5cblx0XHRcdC8vIHNhdmUgcHJldmlvdXMgcm90YXRpb24gaW4gY2FzZSB3ZSdyZSBsb2NraW5nIGFuIGF4aXNcblx0XHRcdGNvbnN0IHByZXZSb3RhdGlvbiA9IGdyb3VwLnJvdGF0aW9uLmNsb25lKCk7XG5cblx0XHRcdC8vIGFsd2F5cyBmYWNlIHRoZSBjYW1lcmFcblx0XHRcdGdyb3VwLnVwZGF0ZU1hdHJpeCgpO1xuXHRcdFx0Z3JvdXAudXBkYXRlV29ybGRNYXRyaXgoZmFsc2UsIGZhbHNlKTtcblx0XHRcdGdyb3VwLmdldFdvcmxkUXVhdGVybmlvbihxKTtcblx0XHRcdGNhbWVyYS5nZXRXb3JsZFF1YXRlcm5pb24oaW5uZXIucXVhdGVybmlvbikucHJlbXVsdGlwbHkocS5pbnZlcnQoKSk7XG5cblx0XHRcdC8vIHJlYWRqdXN0IGFueSBheGlzIHRoYXQgaXMgbG9ja2VkXG5cdFx0XHRpZiAobG9ja1gpIGdyb3VwLnJvdGF0aW9uLnggPSBwcmV2Um90YXRpb24ueDtcblx0XHRcdGlmIChsb2NrWSkgZ3JvdXAucm90YXRpb24ueSA9IHByZXZSb3RhdGlvbi55O1xuXHRcdFx0aWYgKGxvY2taKSBncm91cC5yb3RhdGlvbi56ID0gcHJldlJvdGF0aW9uLno7XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==