angular-three-soba 1.14.1 → 2.0.0-beta.11

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 (426) hide show
  1. package/README.md +2 -2
  2. package/abstractions/billboard/billboard.d.ts +28 -0
  3. package/abstractions/detailed/detailed.d.ts +26 -0
  4. package/abstractions/edges/edges.d.ts +34 -0
  5. package/abstractions/grid/grid.d.ts +50 -0
  6. package/abstractions/index.d.ts +6 -11
  7. package/abstractions/text/text.d.ts +82 -0
  8. package/abstractions/text-3d/text-3d.d.ts +81 -0
  9. package/cameras/{lib/camera → camera}/camera-content.d.ts +2 -2
  10. package/cameras/camera/camera.d.ts +26 -0
  11. package/cameras/cube-camera/cube-camera.d.ts +69 -0
  12. package/cameras/index.d.ts +4 -4
  13. package/cameras/orthographic-camera/orthographic-camera.d.ts +37 -0
  14. package/cameras/{lib/perspective-camera → perspective-camera}/perspective-camera.d.ts +10 -1
  15. package/controls/index.d.ts +1 -1
  16. package/controls/orbit-controls/orbit-controls.d.ts +54 -0
  17. package/esm2022/abstractions/angular-three-soba-abstractions.mjs +1 -1
  18. package/esm2022/abstractions/billboard/billboard.mjs +74 -0
  19. package/esm2022/abstractions/detailed/detailed.mjs +64 -0
  20. package/esm2022/abstractions/edges/edges.mjs +88 -0
  21. package/esm2022/abstractions/grid/grid.mjs +180 -0
  22. package/esm2022/abstractions/index.mjs +7 -12
  23. package/esm2022/abstractions/text/text.mjs +274 -0
  24. package/esm2022/abstractions/text-3d/text-3d.mjs +165 -0
  25. package/esm2022/angular-three-soba.mjs +1 -1
  26. package/esm2022/cameras/angular-three-soba-cameras.mjs +1 -1
  27. package/esm2022/cameras/camera/camera-content.mjs +20 -0
  28. package/esm2022/cameras/camera/camera.mjs +77 -0
  29. package/esm2022/cameras/cube-camera/cube-camera.mjs +161 -0
  30. package/esm2022/cameras/index.mjs +5 -5
  31. package/esm2022/cameras/orthographic-camera/orthographic-camera.mjs +102 -0
  32. package/esm2022/cameras/perspective-camera/perspective-camera.mjs +46 -0
  33. package/esm2022/controls/angular-three-soba-controls.mjs +1 -1
  34. package/esm2022/controls/index.mjs +2 -2
  35. package/esm2022/controls/orbit-controls/orbit-controls.mjs +181 -0
  36. package/esm2022/index.mjs +1 -1
  37. package/esm2022/loaders/angular-three-soba-loaders.mjs +1 -1
  38. package/esm2022/loaders/gltf-loader/gltf-loader.mjs +30 -0
  39. package/esm2022/loaders/index.mjs +5 -6
  40. package/esm2022/loaders/loader/loader.mjs +138 -0
  41. package/esm2022/loaders/progress/progress.mjs +45 -0
  42. package/esm2022/loaders/texture-loader/texture-loader.mjs +28 -0
  43. package/esm2022/materials/angular-three-soba-materials.mjs +1 -1
  44. package/esm2022/materials/index.mjs +7 -6
  45. package/esm2022/materials/mesh-distort-material/mesh-distort-material.mjs +82 -0
  46. package/esm2022/materials/mesh-reflector-material/mesh-reflector-material.mjs +367 -0
  47. package/esm2022/materials/mesh-refraction-material/mesh-refraction-material.mjs +171 -0
  48. package/esm2022/materials/mesh-transmission-material/mesh-transmission-material.mjs +278 -0
  49. package/esm2022/materials/mesh-wobble-material/mesh-wobble-material.mjs +68 -0
  50. package/esm2022/materials/point-material/point-material.mjs +46 -0
  51. package/esm2022/misc/angular-three-soba-misc.mjs +1 -1
  52. package/esm2022/misc/animations/animations.mjs +59 -0
  53. package/esm2022/misc/bake-shadows/bake-shadows.mjs +24 -0
  54. package/esm2022/misc/caustics/caustics.mjs +387 -0
  55. package/esm2022/misc/decal/decal.mjs +187 -0
  56. package/esm2022/misc/depth-buffer/depth-buffer.mjs +44 -0
  57. package/esm2022/misc/example/example.mjs +160 -0
  58. package/esm2022/misc/fbo/fbo.mjs +47 -0
  59. package/esm2022/misc/html/html-wrapper.mjs +478 -0
  60. package/esm2022/misc/html/html.mjs +304 -0
  61. package/esm2022/misc/index.mjs +14 -5
  62. package/esm2022/misc/sampler/sampler.mjs +142 -0
  63. package/esm2022/misc/shadow/shadow.mjs +111 -0
  64. package/esm2022/misc/stats-gl/stats-gl.mjs +61 -0
  65. package/esm2022/misc/trail/trail.mjs +209 -0
  66. package/esm2022/misc/trail-texture/inject-trail-texture.mjs +17 -0
  67. package/esm2022/misc/trail-texture/trail-texture.mjs +106 -0
  68. package/esm2022/modifiers/angular-three-soba-modifiers.mjs +5 -0
  69. package/esm2022/modifiers/curve-modifier/curve-modifier.mjs +64 -0
  70. package/esm2022/modifiers/index.mjs +2 -0
  71. package/esm2022/performances/adaptive-dpr/adaptive-dpr.mjs +44 -0
  72. package/esm2022/performances/adaptive-events/adaptive-events.mjs +27 -0
  73. package/esm2022/performances/angular-three-soba-performances.mjs +5 -0
  74. package/esm2022/performances/index.mjs +6 -0
  75. package/esm2022/performances/points/points-input.mjs +64 -0
  76. package/esm2022/performances/points/points.mjs +329 -0
  77. package/esm2022/performances/points/position-point.mjs +54 -0
  78. package/esm2022/performances/segments/segment-object.mjs +9 -0
  79. package/esm2022/performances/segments/segments.mjs +182 -0
  80. package/esm2022/shaders/angular-three-soba-shaders.mjs +1 -1
  81. package/esm2022/shaders/blur-pass/blur-pass.mjs +61 -0
  82. package/esm2022/shaders/caustics/caustics-material.mjs +130 -0
  83. package/esm2022/shaders/caustics/caustics-projection-material.mjs +31 -0
  84. package/esm2022/shaders/convolution-material/convolution-material.mjs +94 -0
  85. package/esm2022/shaders/discard-material/discard-material.mjs +3 -0
  86. package/esm2022/shaders/grid-material/grid-material.mjs +77 -0
  87. package/esm2022/shaders/index.mjs +18 -15
  88. package/esm2022/shaders/mesh-distort-material/mesh-distort-material.mjs +56 -0
  89. package/esm2022/shaders/mesh-reflector-material/mesh-reflector-material.mjs +223 -0
  90. package/esm2022/shaders/mesh-refraction-material/mesh-refraction-material.mjs +170 -0
  91. package/esm2022/shaders/mesh-transmission-material/mesh-transmission-material.mjs +268 -0
  92. package/esm2022/shaders/mesh-wobble-material/mesh-wobble-material.mjs +37 -0
  93. package/esm2022/shaders/shader-material/shader-material.mjs +34 -0
  94. package/esm2022/shaders/soft-shadow-material/soft-shadow-material.mjs +25 -0
  95. package/esm2022/shaders/sparkles-material/sparkles-material.mjs +33 -0
  96. package/esm2022/shaders/spot-light-material/spot-light-material.mjs +86 -0
  97. package/esm2022/shaders/star-field-material/star-field-material.mjs +33 -0
  98. package/esm2022/shaders/wireframe-material/wireframe-material.mjs +247 -0
  99. package/esm2022/staging/accumulative-shadows/accumulative-shadows.mjs +267 -0
  100. package/esm2022/staging/accumulative-shadows/progressive-light-map.mjs +108 -0
  101. package/esm2022/staging/accumulative-shadows/randomized-lights.mjs +206 -0
  102. package/esm2022/staging/angular-three-soba-staging.mjs +1 -1
  103. package/esm2022/staging/backdrop/backdrop.mjs +77 -0
  104. package/esm2022/staging/bb-anchor/bb-anchor.mjs +69 -0
  105. package/esm2022/staging/bounds/bounds.mjs +308 -0
  106. package/esm2022/staging/camera-shake/camera-shake.mjs +123 -0
  107. package/esm2022/staging/center/center.mjs +163 -0
  108. package/esm2022/staging/cloud/cloud.mjs +158 -0
  109. package/esm2022/staging/contact-shadows/contact-shadows.mjs +246 -0
  110. package/esm2022/staging/environment/assets.mjs +13 -0
  111. package/esm2022/staging/environment/environment-cube.mjs +47 -0
  112. package/esm2022/staging/environment/environment-ground.mjs +41 -0
  113. package/esm2022/staging/environment/environment-input.mjs +119 -0
  114. package/esm2022/staging/environment/environment-map.mjs +53 -0
  115. package/esm2022/staging/environment/environment-portal.mjs +113 -0
  116. package/esm2022/staging/environment/environment.mjs +61 -0
  117. package/esm2022/staging/environment/utils.mjs +105 -0
  118. package/esm2022/staging/float/float.mjs +94 -0
  119. package/esm2022/staging/index.mjs +22 -18
  120. package/esm2022/staging/matcap-texture/matcap-texture.mjs +64 -0
  121. package/esm2022/staging/normal-texture/normal-texture.mjs +53 -0
  122. package/esm2022/staging/sky/sky.mjs +119 -0
  123. package/esm2022/staging/sparkles/sparkles.mjs +164 -0
  124. package/esm2022/staging/spot-light/shadow-mesh-input.mjs +63 -0
  125. package/esm2022/staging/spot-light/shadow-mesh.mjs +266 -0
  126. package/esm2022/staging/spot-light/spot-light-input.mjs +84 -0
  127. package/esm2022/staging/spot-light/spot-light.mjs +81 -0
  128. package/esm2022/staging/spot-light/volumetric-mesh.mjs +98 -0
  129. package/esm2022/staging/stage/stage.mjs +388 -0
  130. package/esm2022/staging/stars/stars.mjs +147 -0
  131. package/esm2022/staging/wireframe/wireframe-input.mjs +191 -0
  132. package/esm2022/staging/wireframe/wireframe.mjs +224 -0
  133. package/esm2022/utils/angular-three-soba-utils.mjs +5 -0
  134. package/esm2022/utils/content/content.mjs +15 -0
  135. package/esm2022/utils/index.mjs +2 -0
  136. package/fesm2022/angular-three-soba-abstractions.mjs +668 -1882
  137. package/fesm2022/angular-three-soba-abstractions.mjs.map +1 -1
  138. package/fesm2022/angular-three-soba-cameras.mjs +279 -232
  139. package/fesm2022/angular-three-soba-cameras.mjs.map +1 -1
  140. package/fesm2022/angular-three-soba-controls.mjs +104 -69
  141. package/fesm2022/angular-three-soba-controls.mjs.map +1 -1
  142. package/fesm2022/angular-three-soba-loaders.mjs +177 -164
  143. package/fesm2022/angular-three-soba-loaders.mjs.map +1 -1
  144. package/fesm2022/angular-three-soba-materials.mjs +630 -482
  145. package/fesm2022/angular-three-soba-materials.mjs.map +1 -1
  146. package/fesm2022/angular-three-soba-misc.mjs +2248 -122
  147. package/fesm2022/angular-three-soba-misc.mjs.map +1 -1
  148. package/fesm2022/angular-three-soba-modifiers.mjs +71 -0
  149. package/fesm2022/angular-three-soba-modifiers.mjs.map +1 -0
  150. package/fesm2022/angular-three-soba-performances.mjs +697 -0
  151. package/fesm2022/angular-three-soba-performances.mjs.map +1 -0
  152. package/fesm2022/angular-three-soba-shaders.mjs +554 -209
  153. package/fesm2022/angular-three-soba-shaders.mjs.map +1 -1
  154. package/fesm2022/angular-three-soba-staging.mjs +3230 -2852
  155. package/fesm2022/angular-three-soba-staging.mjs.map +1 -1
  156. package/fesm2022/angular-three-soba-utils.mjs +22 -0
  157. package/fesm2022/angular-three-soba-utils.mjs.map +1 -0
  158. package/fesm2022/angular-three-soba.mjs.map +1 -1
  159. package/loaders/gltf-loader/gltf-loader.d.ts +10 -0
  160. package/loaders/index.d.ts +4 -5
  161. package/loaders/loader/loader.d.ts +33 -0
  162. package/loaders/progress/progress.d.ts +9 -0
  163. package/loaders/texture-loader/texture-loader.d.ts +7 -0
  164. package/materials/index.d.ts +6 -5
  165. package/materials/mesh-distort-material/mesh-distort-material.d.ts +40 -0
  166. package/materials/mesh-reflector-material/mesh-reflector-material.d.ts +99 -0
  167. package/materials/mesh-refraction-material/mesh-refraction-material.d.ts +62 -0
  168. package/materials/mesh-transmission-material/mesh-transmission-material.d.ts +107 -0
  169. package/materials/mesh-wobble-material/mesh-wobble-material.d.ts +29 -0
  170. package/materials/point-material/point-material.d.ts +24 -0
  171. package/metadata.json +1 -0
  172. package/misc/animations/animations.d.ts +15 -0
  173. package/misc/{lib/bake-shadows → bake-shadows}/bake-shadows.d.ts +2 -5
  174. package/misc/caustics/caustics.d.ts +87 -0
  175. package/misc/decal/decal.d.ts +49 -0
  176. package/misc/depth-buffer/depth-buffer.d.ts +9 -0
  177. package/misc/example/example.d.ts +81 -0
  178. package/misc/{lib/fbo → fbo}/fbo.d.ts +4 -2
  179. package/misc/html/html-wrapper.d.ts +559 -0
  180. package/misc/html/html.d.ts +214 -0
  181. package/misc/index.d.ts +13 -4
  182. package/misc/sampler/sampler.d.ts +67 -0
  183. package/misc/shadow/shadow.d.ts +37 -0
  184. package/misc/stats-gl/stats-gl.d.ts +24 -0
  185. package/misc/trail/trail.d.ts +57 -0
  186. package/misc/trail-texture/inject-trail-texture.d.ts +9 -0
  187. package/misc/trail-texture/trail-texture.d.ts +50 -0
  188. package/modifiers/README.md +3 -0
  189. package/modifiers/curve-modifier/curve-modifier.d.ts +23 -0
  190. package/modifiers/index.d.ts +1 -0
  191. package/package.json +43 -32
  192. package/performances/README.md +3 -0
  193. package/performances/adaptive-dpr/adaptive-dpr.d.ts +14 -0
  194. package/{performance/lib/adaptive → performances/adaptive-events}/adaptive-events.d.ts +5 -6
  195. package/performances/index.d.ts +5 -0
  196. package/performances/points/points-input.d.ts +32 -0
  197. package/performances/points/points.d.ts +92 -0
  198. package/performances/points/position-point.d.ts +11 -0
  199. package/performances/segments/segment-object.d.ts +7 -0
  200. package/performances/segments/segments.d.ts +124 -0
  201. package/shaders/{lib/blur-pass → blur-pass}/blur-pass.d.ts +2 -2
  202. package/shaders/grid-material/grid-material.d.ts +37 -0
  203. package/shaders/index.d.ts +17 -14
  204. package/shaders/{lib/mesh-distort-material → mesh-distort-material}/mesh-distort-material.d.ts +147 -2
  205. package/shaders/{lib/mesh-transmission-material → mesh-transmission-material}/mesh-transmission-material.d.ts +1 -1
  206. package/shaders/{lib/mesh-wobble-material → mesh-wobble-material}/mesh-wobble-material.d.ts +1 -0
  207. package/shaders/{lib/shader-material → shader-material}/shader-material.d.ts +2 -2
  208. package/shaders/soft-shadow-material/soft-shadow-material.d.ts +19 -0
  209. package/shaders/sparkles-material/sparkles-material.d.ts +17 -0
  210. package/shaders/spot-light-material/spot-light-material.d.ts +13 -0
  211. package/shaders/star-field-material/star-field-material.d.ts +13 -0
  212. package/shaders/wireframe-material/wireframe-material.d.ts +58 -0
  213. package/staging/accumulative-shadows/accumulative-shadows.d.ts +146 -0
  214. package/staging/{lib/accumulative-shadows → accumulative-shadows}/progressive-light-map.d.ts +2 -2
  215. package/staging/accumulative-shadows/randomized-lights.d.ts +90 -0
  216. package/staging/backdrop/backdrop.d.ts +30 -0
  217. package/staging/bb-anchor/bb-anchor.d.ts +27 -0
  218. package/staging/bounds/bounds.d.ts +134 -0
  219. package/staging/camera-shake/camera-shake.d.ts +43 -0
  220. package/staging/center/center.d.ts +70 -0
  221. package/staging/cloud/cloud.d.ts +51 -0
  222. package/staging/contact-shadows/contact-shadows.d.ts +70 -0
  223. package/staging/{lib/environment → environment}/assets.d.ts +9 -9
  224. package/staging/environment/environment-cube.d.ts +15 -0
  225. package/staging/environment/environment-ground.d.ts +13 -0
  226. package/staging/environment/environment-input.d.ts +68 -0
  227. package/staging/environment/environment-map.d.ts +16 -0
  228. package/staging/environment/environment-portal.d.ts +18 -0
  229. package/staging/{lib/environment → environment}/environment.d.ts +2 -6
  230. package/staging/environment/utils.d.ts +7 -0
  231. package/staging/float/float.d.ts +31 -0
  232. package/staging/index.d.ts +21 -17
  233. package/staging/matcap-texture/matcap-texture.d.ts +13 -0
  234. package/staging/normal-texture/normal-texture.d.ts +16 -0
  235. package/staging/sky/sky.d.ts +48 -0
  236. package/staging/sparkles/sparkles.d.ts +63 -0
  237. package/staging/spot-light/shadow-mesh-input.d.ts +29 -0
  238. package/staging/spot-light/shadow-mesh.d.ts +37 -0
  239. package/staging/spot-light/spot-light-input.d.ts +38 -0
  240. package/staging/spot-light/spot-light.d.ts +39 -0
  241. package/staging/spot-light/volumetric-mesh.d.ts +24 -0
  242. package/staging/stage/stage.d.ts +130 -0
  243. package/staging/stars/stars.d.ts +45 -0
  244. package/staging/wireframe/wireframe-input.d.ts +65 -0
  245. package/staging/wireframe/wireframe.d.ts +28 -0
  246. package/utils/README.md +3 -0
  247. package/utils/content/content.d.ts +8 -0
  248. package/utils/index.d.ts +1 -0
  249. package/web-types.json +1 -0
  250. package/abstractions/lib/billboard/billboard.d.ts +0 -14
  251. package/abstractions/lib/catmull-rom-line/catmull-rom-line.d.ts +0 -15
  252. package/abstractions/lib/cubic-bezier-line/cubic-bezier-line.d.ts +0 -15
  253. package/abstractions/lib/edges/edges.d.ts +0 -18
  254. package/abstractions/lib/gizmo-helper/gizmo-helper.d.ts +0 -41
  255. package/abstractions/lib/gizmo-helper/gizmo-viewcube/constants.d.ts +0 -12
  256. package/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.d.ts +0 -16
  257. package/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.d.ts +0 -24
  258. package/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.d.ts +0 -14
  259. package/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube.d.ts +0 -15
  260. package/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.d.ts +0 -28
  261. package/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport.d.ts +0 -21
  262. package/abstractions/lib/line/line-input.d.ts +0 -19
  263. package/abstractions/lib/line/line.d.ts +0 -21
  264. package/abstractions/lib/quadratic-bezier-line/quadratic-bezier-line.d.ts +0 -19
  265. package/abstractions/lib/text/text.d.ts +0 -21
  266. package/abstractions/lib/text-3d/text-3d.d.ts +0 -39
  267. package/assets/default-spot-light-shadow.glsl +0 -10
  268. package/cameras/lib/camera/camera.d.ts +0 -19
  269. package/cameras/lib/cube-camera/cube-camera.d.ts +0 -27
  270. package/cameras/lib/orthographic-camera/orthographic-camera.d.ts +0 -17
  271. package/controls/lib/orbit-controls/orbit-controls.d.ts +0 -27
  272. package/esm2022/abstractions/lib/billboard/billboard.mjs +0 -74
  273. package/esm2022/abstractions/lib/catmull-rom-line/catmull-rom-line.mjs +0 -120
  274. package/esm2022/abstractions/lib/cubic-bezier-line/cubic-bezier-line.mjs +0 -99
  275. package/esm2022/abstractions/lib/edges/edges.mjs +0 -96
  276. package/esm2022/abstractions/lib/gizmo-helper/gizmo-helper.mjs +0 -213
  277. package/esm2022/abstractions/lib/gizmo-helper/gizmo-viewcube/constants.mjs +0 -31
  278. package/esm2022/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +0 -92
  279. package/esm2022/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +0 -184
  280. package/esm2022/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.mjs +0 -46
  281. package/esm2022/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube.mjs +0 -134
  282. package/esm2022/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +0 -195
  283. package/esm2022/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport.mjs +0 -267
  284. package/esm2022/abstractions/lib/line/line-input.mjs +0 -76
  285. package/esm2022/abstractions/lib/line/line.mjs +0 -133
  286. package/esm2022/abstractions/lib/quadratic-bezier-line/quadratic-bezier-line.mjs +0 -128
  287. package/esm2022/abstractions/lib/text/text.mjs +0 -115
  288. package/esm2022/abstractions/lib/text-3d/text-3d.mjs +0 -145
  289. package/esm2022/cameras/lib/camera/camera-content.mjs +0 -21
  290. package/esm2022/cameras/lib/camera/camera.mjs +0 -75
  291. package/esm2022/cameras/lib/cube-camera/cube-camera.mjs +0 -131
  292. package/esm2022/cameras/lib/orthographic-camera/orthographic-camera.mjs +0 -93
  293. package/esm2022/cameras/lib/perspective-camera/perspective-camera.mjs +0 -47
  294. package/esm2022/controls/lib/orbit-controls/orbit-controls.mjs +0 -147
  295. package/esm2022/loaders/lib/cube-texture-loader/cube-texture-loader.mjs +0 -10
  296. package/esm2022/loaders/lib/gltf-loader/gltf-loader.mjs +0 -32
  297. package/esm2022/loaders/lib/loader/loader.mjs +0 -134
  298. package/esm2022/loaders/lib/progress/progress.mjs +0 -39
  299. package/esm2022/loaders/lib/texture-loader/texture-loader.mjs +0 -19
  300. package/esm2022/materials/lib/mesh-distort-material/mesh-distort-material.mjs +0 -75
  301. package/esm2022/materials/lib/mesh-reflector-material/mesh-reflector-material.mjs +0 -328
  302. package/esm2022/materials/lib/mesh-refraction-material/mesh-refraction-material.mjs +0 -158
  303. package/esm2022/materials/lib/mesh-transmission-material/mesh-transmission-material.mjs +0 -238
  304. package/esm2022/materials/lib/mesh-wobble-material/mesh-wobble-material.mjs +0 -68
  305. package/esm2022/misc/lib/animations/animations.mjs +0 -52
  306. package/esm2022/misc/lib/bake-shadows/bake-shadows.mjs +0 -26
  307. package/esm2022/misc/lib/depth-buffer/depth-buffer.mjs +0 -39
  308. package/esm2022/misc/lib/fbo/fbo.mjs +0 -39
  309. package/esm2022/performance/angular-three-soba-performance.mjs +0 -5
  310. package/esm2022/performance/index.mjs +0 -5
  311. package/esm2022/performance/lib/adaptive/adaptive-dpr.mjs +0 -47
  312. package/esm2022/performance/lib/adaptive/adaptive-events.mjs +0 -37
  313. package/esm2022/performance/lib/detailed/detailed.mjs +0 -54
  314. package/esm2022/performance/lib/stats/stats.mjs +0 -80
  315. package/esm2022/shaders/lib/blur-pass/blur-pass.mjs +0 -61
  316. package/esm2022/shaders/lib/caustics-material/caustics-material.mjs +0 -128
  317. package/esm2022/shaders/lib/caustics-projection-material/caustics-projection-material.mjs +0 -33
  318. package/esm2022/shaders/lib/convolution-material/convolution-material.mjs +0 -94
  319. package/esm2022/shaders/lib/discard-material/discard-material.mjs +0 -3
  320. package/esm2022/shaders/lib/mesh-distort-material/mesh-distort-material.mjs +0 -55
  321. package/esm2022/shaders/lib/mesh-reflector-material/mesh-reflector-material.mjs +0 -223
  322. package/esm2022/shaders/lib/mesh-refraction-material/mesh-refraction-material.mjs +0 -169
  323. package/esm2022/shaders/lib/mesh-transmission-material/mesh-transmission-material.mjs +0 -268
  324. package/esm2022/shaders/lib/mesh-wobble-material/mesh-wobble-material.mjs +0 -37
  325. package/esm2022/shaders/lib/shader-material/shader-material.mjs +0 -34
  326. package/esm2022/shaders/lib/soft-shadow-material/soft-shadow-material.mjs +0 -33
  327. package/esm2022/shaders/lib/spot-light-material/spot-light-material.mjs +0 -86
  328. package/esm2022/shaders/lib/star-field-material/star-field-material.mjs +0 -32
  329. package/esm2022/staging/lib/accumulative-shadows/accumulative-shadows.mjs +0 -249
  330. package/esm2022/staging/lib/accumulative-shadows/progressive-light-map.mjs +0 -108
  331. package/esm2022/staging/lib/accumulative-shadows/randomized-lights.mjs +0 -201
  332. package/esm2022/staging/lib/bounds/bounds.mjs +0 -284
  333. package/esm2022/staging/lib/camera-shake/camera-shake.mjs +0 -122
  334. package/esm2022/staging/lib/caustics/caustics.mjs +0 -364
  335. package/esm2022/staging/lib/center/center.mjs +0 -143
  336. package/esm2022/staging/lib/cloud/cloud.mjs +0 -160
  337. package/esm2022/staging/lib/contact-shadows/contact-shadows.mjs +0 -228
  338. package/esm2022/staging/lib/environment/assets.mjs +0 -13
  339. package/esm2022/staging/lib/environment/environment-cube.mjs +0 -41
  340. package/esm2022/staging/lib/environment/environment-ground.mjs +0 -67
  341. package/esm2022/staging/lib/environment/environment-inputs.mjs +0 -87
  342. package/esm2022/staging/lib/environment/environment-map.mjs +0 -39
  343. package/esm2022/staging/lib/environment/environment-portal.mjs +0 -111
  344. package/esm2022/staging/lib/environment/environment.mjs +0 -165
  345. package/esm2022/staging/lib/environment/utils.mjs +0 -70
  346. package/esm2022/staging/lib/float/float.mjs +0 -77
  347. package/esm2022/staging/lib/sky/sky.mjs +0 -109
  348. package/esm2022/staging/lib/sparkles/sparkles.mjs +0 -210
  349. package/esm2022/staging/lib/spot-light/common.mjs +0 -42
  350. package/esm2022/staging/lib/spot-light/shadow-mesh-input.mjs +0 -51
  351. package/esm2022/staging/lib/spot-light/spot-light-input.mjs +0 -62
  352. package/esm2022/staging/lib/spot-light/spot-light-shadow-no-shader.mjs +0 -74
  353. package/esm2022/staging/lib/spot-light/spot-light-shadow-shader.mjs +0 -126
  354. package/esm2022/staging/lib/spot-light/spot-light-shadow.mjs +0 -63
  355. package/esm2022/staging/lib/spot-light/spot-light.mjs +0 -117
  356. package/esm2022/staging/lib/spot-light/volumetric-mesh.mjs +0 -86
  357. package/esm2022/staging/lib/stage/stage.mjs +0 -368
  358. package/esm2022/staging/lib/stars/stars.mjs +0 -140
  359. package/fesm2022/angular-three-soba-performance.mjs +0 -210
  360. package/fesm2022/angular-three-soba-performance.mjs.map +0 -1
  361. package/loaders/lib/cube-texture-loader/cube-texture-loader.d.ts +0 -3
  362. package/loaders/lib/gltf-loader/gltf-loader.d.ts +0 -8
  363. package/loaders/lib/loader/loader.d.ts +0 -26
  364. package/loaders/lib/progress/progress.d.ts +0 -16
  365. package/loaders/lib/texture-loader/texture-loader.d.ts +0 -5
  366. package/materials/lib/mesh-distort-material/mesh-distort-material.d.ts +0 -24
  367. package/materials/lib/mesh-reflector-material/mesh-reflector-material.d.ts +0 -41
  368. package/materials/lib/mesh-refraction-material/mesh-refraction-material.d.ts +0 -28
  369. package/materials/lib/mesh-transmission-material/mesh-transmission-material.d.ts +0 -46
  370. package/materials/lib/mesh-wobble-material/mesh-wobble-material.d.ts +0 -14
  371. package/misc/lib/animations/animations.d.ts +0 -13
  372. package/misc/lib/depth-buffer/depth-buffer.d.ts +0 -7
  373. package/performance/README.md +0 -3
  374. package/performance/index.d.ts +0 -4
  375. package/performance/lib/adaptive/adaptive-dpr.d.ts +0 -11
  376. package/performance/lib/detailed/detailed.d.ts +0 -13
  377. package/performance/lib/stats/stats.d.ts +0 -15
  378. package/plugin/README.md +0 -11
  379. package/plugin/generators.json +0 -19
  380. package/plugin/package.json +0 -9
  381. package/plugin/src/generators/init/compat.d.ts +0 -2
  382. package/plugin/src/generators/init/compat.js +0 -6
  383. package/plugin/src/generators/init/compat.js.map +0 -1
  384. package/plugin/src/generators/init/init.d.ts +0 -4
  385. package/plugin/src/generators/init/init.js +0 -22
  386. package/plugin/src/generators/init/init.js.map +0 -1
  387. package/plugin/src/generators/init/schema.json +0 -6
  388. package/plugin/src/index.d.ts +0 -1
  389. package/plugin/src/index.js +0 -6
  390. package/plugin/src/index.js.map +0 -1
  391. package/shaders/lib/soft-shadow-material/soft-shadow-material.d.ts +0 -10
  392. package/shaders/lib/spot-light-material/spot-light-material.d.ts +0 -4
  393. package/shaders/lib/star-field-material/star-field-material.d.ts +0 -3
  394. package/staging/lib/accumulative-shadows/accumulative-shadows.d.ts +0 -58
  395. package/staging/lib/accumulative-shadows/randomized-lights.d.ts +0 -42
  396. package/staging/lib/bounds/bounds.d.ts +0 -48
  397. package/staging/lib/camera-shake/camera-shake.d.ts +0 -28
  398. package/staging/lib/caustics/caustics.d.ts +0 -47
  399. package/staging/lib/center/center.d.ts +0 -40
  400. package/staging/lib/cloud/cloud.d.ts +0 -23
  401. package/staging/lib/contact-shadows/contact-shadows.d.ts +0 -29
  402. package/staging/lib/environment/environment-cube.d.ts +0 -11
  403. package/staging/lib/environment/environment-ground.d.ts +0 -9
  404. package/staging/lib/environment/environment-inputs.d.ts +0 -28
  405. package/staging/lib/environment/environment-map.d.ts +0 -10
  406. package/staging/lib/environment/environment-portal.d.ts +0 -15
  407. package/staging/lib/environment/utils.d.ts +0 -8
  408. package/staging/lib/float/float.d.ts +0 -16
  409. package/staging/lib/sky/sky.d.ts +0 -20
  410. package/staging/lib/sparkles/sparkles.d.ts +0 -29
  411. package/staging/lib/spot-light/common.d.ts +0 -3
  412. package/staging/lib/spot-light/shadow-mesh-input.d.ts +0 -14
  413. package/staging/lib/spot-light/spot-light-input.d.ts +0 -16
  414. package/staging/lib/spot-light/spot-light-shadow-no-shader.d.ts +0 -14
  415. package/staging/lib/spot-light/spot-light-shadow-shader.d.ts +0 -25
  416. package/staging/lib/spot-light/spot-light-shadow.d.ts +0 -6
  417. package/staging/lib/spot-light/spot-light.d.ts +0 -17
  418. package/staging/lib/spot-light/volumetric-mesh.d.ts +0 -15
  419. package/staging/lib/stage/stage.d.ts +0 -87
  420. package/staging/lib/stars/stars.d.ts +0 -20
  421. /package/shaders/{lib/caustics-material → caustics}/caustics-material.d.ts +0 -0
  422. /package/shaders/{lib/caustics-projection-material → caustics}/caustics-projection-material.d.ts +0 -0
  423. /package/shaders/{lib/convolution-material → convolution-material}/convolution-material.d.ts +0 -0
  424. /package/shaders/{lib/discard-material → discard-material}/discard-material.d.ts +0 -0
  425. /package/shaders/{lib/mesh-reflector-material → mesh-reflector-material}/mesh-reflector-material.d.ts +0 -0
  426. /package/shaders/{lib/mesh-refraction-material → mesh-refraction-material}/mesh-refraction-material.d.ts +0 -0
@@ -1,267 +0,0 @@
1
- import { NgIf } from '@angular/common';
2
- import { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, inject, Input, Output } from '@angular/core';
3
- import { extend, NgtRxStore } from 'angular-three';
4
- import { AmbientLight, Group, PointLight } from 'three';
5
- import { NGTS_GIZMO_HELPER_API } from '../gizmo-helper';
6
- import { NgtsGizmoViewportAxis, NgtsGizmoViewportAxisHead } from './gizmo-viewport-axis';
7
- import * as i0 from "@angular/core";
8
- extend({ Group, AmbientLight, PointLight });
9
- class NgtsGizmoViewport extends NgtRxStore {
10
- constructor() {
11
- super(...arguments);
12
- this.gizmoHelperApi = inject(NGTS_GIZMO_HELPER_API);
13
- this.Math = Math;
14
- this.clicked = new EventEmitter();
15
- }
16
- set axisColors(axisColors) {
17
- this.set({ axisColors });
18
- }
19
- set axisScale(axisScale) {
20
- this.set({ axisScale });
21
- }
22
- set labels(labels) {
23
- this.set({ labels });
24
- }
25
- set axisHeadScale(axisHeadScale) {
26
- this.set({ axisHeadScale });
27
- }
28
- set labelColor(labelColor) {
29
- this.set({ labelColor });
30
- }
31
- set hideNegativeAxes(hideNegativeAxes) {
32
- this.set({ hideNegativeAxes });
33
- }
34
- set hideAxisHeads(hideAxisHeads) {
35
- this.set({ hideAxisHeads });
36
- }
37
- set disabled(disabled) {
38
- this.set({ disabled });
39
- }
40
- set font(font) {
41
- this.set({ font });
42
- }
43
- initialize() {
44
- super.initialize();
45
- this.set({
46
- font: '18px Inter var, Arial, sans-serif',
47
- axisColors: ['#ff2060', '#20df80', '#2080ff'],
48
- axisHeadScale: 1,
49
- labels: ['X', 'Y', 'Z'],
50
- labelColor: '#000',
51
- });
52
- }
53
- onPointerDown(event) {
54
- if (!this.get('disabled')) {
55
- event.stopPropagation();
56
- this.gizmoHelperApi.tweenCamera(event.object.position);
57
- }
58
- }
59
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsGizmoViewport, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
60
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: NgtsGizmoViewport, isStandalone: true, selector: "ngts-gizmo-viewport", inputs: { axisColors: "axisColors", axisScale: "axisScale", labels: "labels", axisHeadScale: "axisHeadScale", labelColor: "labelColor", hideNegativeAxes: "hideNegativeAxes", hideAxisHeads: "hideAxisHeads", disabled: "disabled", font: "font" }, outputs: { clicked: "clicked" }, usesInheritance: true, ngImport: i0, template: `
61
- <ngt-group ngtCompound [scale]="40">
62
- <ngts-gizmo-viewport-axis
63
- [color]="get('axisColors')[0]"
64
- [rotation]="[0, 0, 0]"
65
- [scale]="get('axisScale')"
66
- ></ngts-gizmo-viewport-axis>
67
- <ngts-gizmo-viewport-axis
68
- [color]="get('axisColors')[1]"
69
- [rotation]="[0, 0, Math.PI / 2]"
70
- [scale]="get('axisScale')"
71
- ></ngts-gizmo-viewport-axis>
72
- <ngts-gizmo-viewport-axis
73
- [color]="get('axisColors')[2]"
74
- [rotation]="[0, -Math.PI / 2, 0]"
75
- [scale]="get('axisScale')"
76
- ></ngts-gizmo-viewport-axis>
77
- <ng-container *ngIf="!get('hideAxisHeads')">
78
- <ngts-gizmo-viewport-axis-head
79
- [arcStyle]="get('axisColors')[0]"
80
- [position]="[1, 0, 0]"
81
- [label]="get('labels')[0]"
82
- [font]="get('font')"
83
- [disabled]="get('disabled')"
84
- [labelColor]="get('labelColor')"
85
- [clickEmitter]="clicked"
86
- [axisHeadScale]="get('axisHeadScale')"
87
- (pointerdown)="onPointerDown($any($event))"
88
- ></ngts-gizmo-viewport-axis-head>
89
- <ngts-gizmo-viewport-axis-head
90
- [arcStyle]="get('axisColors')[1]"
91
- [position]="[0, 1, 0]"
92
- [label]="get('labels')[1]"
93
- [font]="get('font')"
94
- [disabled]="get('disabled')"
95
- [labelColor]="get('labelColor')"
96
- [clickEmitter]="clicked"
97
- [axisHeadScale]="get('axisHeadScale')"
98
- (pointerdown)="onPointerDown($any($event))"
99
- ></ngts-gizmo-viewport-axis-head>
100
- <ngts-gizmo-viewport-axis-head
101
- [arcStyle]="get('axisColors')[2]"
102
- [position]="[0, 0, 1]"
103
- [label]="get('labels')[2]"
104
- [font]="get('font')"
105
- [disabled]="get('disabled')"
106
- [labelColor]="get('labelColor')"
107
- [clickEmitter]="clicked"
108
- [axisHeadScale]="get('axisHeadScale')"
109
- (pointerdown)="onPointerDown($any($event))"
110
- ></ngts-gizmo-viewport-axis-head>
111
- <ng-container *ngIf="!get('hideNegativeAxes')">
112
- <ngts-gizmo-viewport-axis-head
113
- [arcStyle]="get('axisColors')[0]"
114
- [position]="[-1, 0, 0]"
115
- [font]="get('font')"
116
- [disabled]="get('disabled')"
117
- [labelColor]="get('labelColor')"
118
- [clickEmitter]="clicked"
119
- [axisHeadScale]="get('axisHeadScale')"
120
- (pointerdown)="onPointerDown($any($event))"
121
- ></ngts-gizmo-viewport-axis-head>
122
- <ngts-gizmo-viewport-axis-head
123
- [arcStyle]="get('axisColors')[1]"
124
- [position]="[0, -1, 0]"
125
- [font]="get('font')"
126
- [disabled]="get('disabled')"
127
- [labelColor]="get('labelColor')"
128
- [clickEmitter]="clicked"
129
- [axisHeadScale]="get('axisHeadScale')"
130
- (pointerdown)="onPointerDown($any($event))"
131
- ></ngts-gizmo-viewport-axis-head>
132
- <ngts-gizmo-viewport-axis-head
133
- [arcStyle]="get('axisColors')[2]"
134
- [position]="[0, 0, -1]"
135
- [font]="get('font')"
136
- [disabled]="get('disabled')"
137
- [labelColor]="get('labelColor')"
138
- [clickEmitter]="clicked"
139
- [axisHeadScale]="get('axisHeadScale')"
140
- (pointerdown)="onPointerDown($any($event))"
141
- ></ngts-gizmo-viewport-axis-head>
142
- </ng-container>
143
- </ng-container>
144
- <ngt-ambient-light intensity="0.5"></ngt-ambient-light>
145
- <ngt-point-light position="10" intensity="0.5"></ngt-point-light>
146
- </ngt-group>
147
- `, isInline: true, dependencies: [{ kind: "component", type: NgtsGizmoViewportAxis, selector: "ngts-gizmo-viewport-axis[color][rotation]", inputs: ["color", "rotation", "scale"] }, { kind: "component", type: NgtsGizmoViewportAxisHead, selector: "ngts-gizmo-viewport-axis-head", inputs: ["arcStyle", "label", "labelColor", "axisHeadScale", "disabled", "font", "clickEmitter"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
148
- }
149
- export { NgtsGizmoViewport };
150
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsGizmoViewport, decorators: [{
151
- type: Component,
152
- args: [{
153
- selector: 'ngts-gizmo-viewport',
154
- standalone: true,
155
- template: `
156
- <ngt-group ngtCompound [scale]="40">
157
- <ngts-gizmo-viewport-axis
158
- [color]="get('axisColors')[0]"
159
- [rotation]="[0, 0, 0]"
160
- [scale]="get('axisScale')"
161
- ></ngts-gizmo-viewport-axis>
162
- <ngts-gizmo-viewport-axis
163
- [color]="get('axisColors')[1]"
164
- [rotation]="[0, 0, Math.PI / 2]"
165
- [scale]="get('axisScale')"
166
- ></ngts-gizmo-viewport-axis>
167
- <ngts-gizmo-viewport-axis
168
- [color]="get('axisColors')[2]"
169
- [rotation]="[0, -Math.PI / 2, 0]"
170
- [scale]="get('axisScale')"
171
- ></ngts-gizmo-viewport-axis>
172
- <ng-container *ngIf="!get('hideAxisHeads')">
173
- <ngts-gizmo-viewport-axis-head
174
- [arcStyle]="get('axisColors')[0]"
175
- [position]="[1, 0, 0]"
176
- [label]="get('labels')[0]"
177
- [font]="get('font')"
178
- [disabled]="get('disabled')"
179
- [labelColor]="get('labelColor')"
180
- [clickEmitter]="clicked"
181
- [axisHeadScale]="get('axisHeadScale')"
182
- (pointerdown)="onPointerDown($any($event))"
183
- ></ngts-gizmo-viewport-axis-head>
184
- <ngts-gizmo-viewport-axis-head
185
- [arcStyle]="get('axisColors')[1]"
186
- [position]="[0, 1, 0]"
187
- [label]="get('labels')[1]"
188
- [font]="get('font')"
189
- [disabled]="get('disabled')"
190
- [labelColor]="get('labelColor')"
191
- [clickEmitter]="clicked"
192
- [axisHeadScale]="get('axisHeadScale')"
193
- (pointerdown)="onPointerDown($any($event))"
194
- ></ngts-gizmo-viewport-axis-head>
195
- <ngts-gizmo-viewport-axis-head
196
- [arcStyle]="get('axisColors')[2]"
197
- [position]="[0, 0, 1]"
198
- [label]="get('labels')[2]"
199
- [font]="get('font')"
200
- [disabled]="get('disabled')"
201
- [labelColor]="get('labelColor')"
202
- [clickEmitter]="clicked"
203
- [axisHeadScale]="get('axisHeadScale')"
204
- (pointerdown)="onPointerDown($any($event))"
205
- ></ngts-gizmo-viewport-axis-head>
206
- <ng-container *ngIf="!get('hideNegativeAxes')">
207
- <ngts-gizmo-viewport-axis-head
208
- [arcStyle]="get('axisColors')[0]"
209
- [position]="[-1, 0, 0]"
210
- [font]="get('font')"
211
- [disabled]="get('disabled')"
212
- [labelColor]="get('labelColor')"
213
- [clickEmitter]="clicked"
214
- [axisHeadScale]="get('axisHeadScale')"
215
- (pointerdown)="onPointerDown($any($event))"
216
- ></ngts-gizmo-viewport-axis-head>
217
- <ngts-gizmo-viewport-axis-head
218
- [arcStyle]="get('axisColors')[1]"
219
- [position]="[0, -1, 0]"
220
- [font]="get('font')"
221
- [disabled]="get('disabled')"
222
- [labelColor]="get('labelColor')"
223
- [clickEmitter]="clicked"
224
- [axisHeadScale]="get('axisHeadScale')"
225
- (pointerdown)="onPointerDown($any($event))"
226
- ></ngts-gizmo-viewport-axis-head>
227
- <ngts-gizmo-viewport-axis-head
228
- [arcStyle]="get('axisColors')[2]"
229
- [position]="[0, 0, -1]"
230
- [font]="get('font')"
231
- [disabled]="get('disabled')"
232
- [labelColor]="get('labelColor')"
233
- [clickEmitter]="clicked"
234
- [axisHeadScale]="get('axisHeadScale')"
235
- (pointerdown)="onPointerDown($any($event))"
236
- ></ngts-gizmo-viewport-axis-head>
237
- </ng-container>
238
- </ng-container>
239
- <ngt-ambient-light intensity="0.5"></ngt-ambient-light>
240
- <ngt-point-light position="10" intensity="0.5"></ngt-point-light>
241
- </ngt-group>
242
- `,
243
- imports: [NgtsGizmoViewportAxis, NgtsGizmoViewportAxisHead, NgIf],
244
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
245
- }]
246
- }], propDecorators: { axisColors: [{
247
- type: Input
248
- }], axisScale: [{
249
- type: Input
250
- }], labels: [{
251
- type: Input
252
- }], axisHeadScale: [{
253
- type: Input
254
- }], labelColor: [{
255
- type: Input
256
- }], hideNegativeAxes: [{
257
- type: Input
258
- }], hideAxisHeads: [{
259
- type: Input
260
- }], disabled: [{
261
- type: Input
262
- }], font: [{
263
- type: Input
264
- }], clicked: [{
265
- type: Output
266
- }] } });
267
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l6bW8tdmlld3BvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9hYnN0cmFjdGlvbnMvc3JjL2xpYi9naXptby1oZWxwZXIvZ2l6bW8tdmlld3BvcnQvZ2l6bW8tdmlld3BvcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxTQUFTLEVBQUUsc0JBQXNCLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDeEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHlCQUF5QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBRXpGLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztBQUU1QyxNQThGYSxpQkFBa0IsU0FBUSxVQUFVO0lBOUZqRDs7UUErRmEsbUJBQWMsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUUvQyxTQUFJLEdBQUcsSUFBSSxDQUFDO1FBc0NYLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBNkIsQ0FBQztLQW1CckU7SUF2REcsSUFBYSxVQUFVLENBQUMsVUFBb0M7UUFDeEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQWEsU0FBUyxDQUFDLFNBQW1DO1FBQ3RELElBQUksQ0FB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QkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZXh0ZW5kLCBOZ3RSeFN0b3JlLCBOZ3RUaHJlZUV2ZW50IH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBBbWJpZW50TGlnaHQsIEdyb3VwLCBQb2ludExpZ2h0IH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTkdUU19HSVpNT19IRUxQRVJfQVBJIH0gZnJvbSAnLi4vZ2l6bW8taGVscGVyJztcbmltcG9ydCB7IE5ndHNHaXptb1ZpZXdwb3J0QXhpcywgTmd0c0dpem1vVmlld3BvcnRBeGlzSGVhZCB9IGZyb20gJy4vZ2l6bW8tdmlld3BvcnQtYXhpcyc7XG5cbmV4dGVuZCh7IEdyb3VwLCBBbWJpZW50TGlnaHQsIFBvaW50TGlnaHQgfSk7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd0cy1naXptby12aWV3cG9ydCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmd0LWdyb3VwIG5ndENvbXBvdW5kIFtzY2FsZV09XCI0MFwiPlxuICAgICAgICAgICAgPG5ndHMtZ2l6bW8tdmlld3BvcnQtYXhpc1xuICAgICAgICAgICAgICAgIFtjb2xvcl09XCJnZXQoJ2F4aXNDb2xvcnMnKVswXVwiXG4gICAgICAgICAgICAgICAgW3JvdGF0aW9uXT1cIlswLCAwLCAwXVwiXG4gICAgICAgICAgICAgICAgW3NjYWxlXT1cImdldCgnYXhpc1NjYWxlJylcIlxuICAgICAgICAgICAgPjwvbmd0cy1naXptby12aWV3cG9ydC1heGlzPlxuICAgICAgICAgICAgPG5ndHMtZ2l6bW8tdmlld3BvcnQtYXhpc1xuICAgICAgICAgICAgICAgIFtjb2xvcl09XCJnZXQoJ2F4aXNDb2xvcnMnKVsxXVwiXG4gICAgICAgICAgICAgICAgW3JvdGF0aW9uXT1cIlswLCAwLCBNYXRoLlBJIC8gMl1cIlxuICAgICAgICAgICAgICAgIFtzY2FsZV09XCJnZXQoJ2F4aXNTY2FsZScpXCJcbiAgICAgICAgICAgID48L25ndHMtZ2l6bW8tdmlld3BvcnQtYXhpcz5cbiAgICAgICAgICAgIDxuZ3RzLWdpem1vLXZpZXdwb3J0LWF4aXNcbiAgICAgICAgICAgICAgICBbY29sb3JdPVwiZ2V0KCdheGlzQ29sb3JzJylbMl1cIlxuICAgICAgICAgICAgICAgIFtyb3RhdGlvbl09XCJbMCwgLU1hdGguUEkgLyAyLCAwXVwiXG4gICAgICAgICAgICAgICAgW3NjYWxlXT1cImdldCgnYXhpc1NjYWxlJylcIlxuICAgICAgICAgICAgPjwvbmd0cy1naXptby12aWV3cG9ydC1heGlzPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFnZXQoJ2hpZGVBeGlzSGVhZHMnKVwiPlxuICAgICAgICAgICAgICAgIDxuZ3RzLWdpem1vLXZpZXdwb3J0LWF4aXMtaGVhZFxuICAgICAgICAgICAgICAgICAgICBbYXJjU3R5bGVdPVwiZ2V0KCdheGlzQ29sb3JzJylbMF1cIlxuICAgICAgICAgICAgICAgICAgICBbcG9zaXRpb25dPVwiWzEsIDAsIDBdXCJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImdldCgnbGFiZWxzJylbMF1cIlxuICAgICAgICAgICAgICAgICAgICBbZm9udF09XCJnZXQoJ2ZvbnQnKVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJnZXQoJ2Rpc2FibGVkJylcIlxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxDb2xvcl09XCJnZXQoJ2xhYmVsQ29sb3InKVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGlja0VtaXR0ZXJdPVwiY2xpY2tlZFwiXG4gICAgICAgICAgICAgICAgICAgIFtheGlzSGVhZFNjYWxlXT1cImdldCgnYXhpc0hlYWRTY2FsZScpXCJcbiAgICAgICAgICAgICAgICAgICAgKHBvaW50ZXJkb3duKT1cIm9uUG9pbnRlckRvd24oJGFueSgkZXZlbnQpKVwiXG4gICAgICAgICAgICAgICAgPjwvbmd0cy1naXptby12aWV3cG9ydC1heGlzLWhlYWQ+XG4gICAgICAgICAgICAgICAgPG5ndHMtZ2l6bW8tdmlld3BvcnQtYXhpcy1oZWFkXG4gICAgICAgICAgICAgICAgICAgIFthcmNTdHlsZV09XCJnZXQoJ2F4aXNDb2xvcnMnKVsxXVwiXG4gICAgICAgICAgICAgICAgICAgIFtwb3NpdGlvbl09XCJbMCwgMSwgMF1cIlxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiZ2V0KCdsYWJlbHMnKVsxXVwiXG4gICAgICAgICAgICAgICAgICAgIFtmb250XT1cImdldCgnZm9udCcpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImdldCgnZGlzYWJsZWQnKVwiXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbENvbG9yXT1cImdldCgnbGFiZWxDb2xvcicpXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsaWNrRW1pdHRlcl09XCJjbGlja2VkXCJcbiAgICAgICAgICAgICAgICAgICAgW2F4aXNIZWFkU2NhbGVdPVwiZ2V0KCdheGlzSGVhZFNjYWxlJylcIlxuICAgICAgICAgICAgICAgICAgICAocG9pbnRlcmRvd24pPVwib25Qb2ludGVyRG93bigkYW55KCRldmVudCkpXCJcbiAgICAgICAgICAgICAgICA+PC9uZ3RzLWdpem1vLXZpZXdwb3J0LWF4aXMtaGVhZD5cbiAgICAgICAgICAgICAgICA8bmd0cy1naXptby12aWV3cG9ydC1heGlzLWhlYWRcbiAgICAgICAgICAgICAgICAgICAgW2FyY1N0eWxlXT1cImdldCgnYXhpc0NvbG9ycycpWzJdXCJcbiAgICAgICAgICAgICAgICAgICAgW3Bvc2l0aW9uXT1cIlswLCAwLCAxXVwiXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJnZXQoJ2xhYmVscycpWzJdXCJcbiAgICAgICAgICAgICAgICAgICAgW2ZvbnRdPVwiZ2V0KCdmb250JylcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZ2V0KCdkaXNhYmxlZCcpXCJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsQ29sb3JdPVwiZ2V0KCdsYWJlbENvbG9yJylcIlxuICAgICAgICAgICAgICAgICAgICBbY2xpY2tFbWl0dGVyXT1cImNsaWNrZWRcIlxuICAgICAgICAgICAgICAgICAgICBbYXhpc0hlYWRTY2FsZV09XCJnZXQoJ2F4aXNIZWFkU2NhbGUnKVwiXG4gICAgICAgICAgICAgICAgICAgIChwb2ludGVyZG93bik9XCJvblBvaW50ZXJEb3duKCRhbnkoJGV2ZW50KSlcIlxuICAgICAgICAgICAgICAgID48L25ndHMtZ2l6bW8tdmlld3BvcnQtYXhpcy1oZWFkPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZ2V0KCdoaWRlTmVnYXRpdmVBeGVzJylcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5ndHMtZ2l6bW8tdmlld3BvcnQtYXhpcy1oZWFkXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXJjU3R5bGVdPVwiZ2V0KCdheGlzQ29sb3JzJylbMF1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3Bvc2l0aW9uXT1cIlstMSwgMCwgMF1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2ZvbnRdPVwiZ2V0KCdmb250JylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImdldCgnZGlzYWJsZWQnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxDb2xvcl09XCJnZXQoJ2xhYmVsQ29sb3InKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xpY2tFbWl0dGVyXT1cImNsaWNrZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F4aXNIZWFkU2NhbGVdPVwiZ2V0KCdheGlzSGVhZFNjYWxlJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKHBvaW50ZXJkb3duKT1cIm9uUG9pbnRlckRvd24oJGFueSgkZXZlbnQpKVwiXG4gICAgICAgICAgICAgICAgICAgID48L25ndHMtZ2l6bW8tdmlld3BvcnQtYXhpcy1oZWFkPlxuICAgICAgICAgICAgICAgICAgICA8bmd0cy1naXptby12aWV3cG9ydC1heGlzLWhlYWRcbiAgICAgICAgICAgICAgICAgICAgICAgIFthcmNTdHlsZV09XCJnZXQoJ2F4aXNDb2xvcnMnKVsxXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcG9zaXRpb25dPVwiWzAsIC0xLCAwXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZm9udF09XCJnZXQoJ2ZvbnQnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZ2V0KCdkaXNhYmxlZCcpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbENvbG9yXT1cImdldCgnbGFiZWxDb2xvcicpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGlja0VtaXR0ZXJdPVwiY2xpY2tlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXhpc0hlYWRTY2FsZV09XCJnZXQoJ2F4aXNIZWFkU2NhbGUnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAocG9pbnRlcmRvd24pPVwib25Qb2ludGVyRG93bigkYW55KCRldmVudCkpXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvbmd0cy1naXptby12aWV3cG9ydC1heGlzLWhlYWQ+XG4gICAgICAgICAgICAgICAgICAgIDxuZ3RzLWdpem1vLXZpZXdwb3J0LWF4aXMtaGVhZFxuICAgICAgICAgICAgICAgICAgICAgICAgW2FyY1N0eWxlXT1cImdldCgnYXhpc0NvbG9ycycpWzJdXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwb3NpdGlvbl09XCJbMCwgMCwgLTFdXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmb250XT1cImdldCgnZm9udCcpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJnZXQoJ2Rpc2FibGVkJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsQ29sb3JdPVwiZ2V0KCdsYWJlbENvbG9yJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsaWNrRW1pdHRlcl09XCJjbGlja2VkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtheGlzSGVhZFNjYWxlXT1cImdldCgnYXhpc0hlYWRTY2FsZScpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChwb2ludGVyZG93bik9XCJvblBvaW50ZXJEb3duKCRhbnkoJGV2ZW50KSlcIlxuICAgICAgICAgICAgICAgICAgICA+PC9uZ3RzLWdpem1vLXZpZXdwb3J0LWF4aXMtaGVhZD5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5ndC1hbWJpZW50LWxpZ2h0IGludGVuc2l0eT1cIjAuNVwiPjwvbmd0LWFtYmllbnQtbGlnaHQ+XG4gICAgICAgICAgICA8bmd0LXBvaW50LWxpZ2h0IHBvc2l0aW9uPVwiMTBcIiBpbnRlbnNpdHk9XCIwLjVcIj48L25ndC1wb2ludC1saWdodD5cbiAgICAgICAgPC9uZ3QtZ3JvdXA+XG4gICAgYCxcbiAgICBpbXBvcnRzOiBbTmd0c0dpem1vVmlld3BvcnRBeGlzLCBOZ3RzR2l6bW9WaWV3cG9ydEF4aXNIZWFkLCBOZ0lmXSxcbiAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNHaXptb1ZpZXdwb3J0IGV4dGVuZHMgTmd0UnhTdG9yZSB7XG4gICAgcmVhZG9ubHkgZ2l6bW9IZWxwZXJBcGkgPSBpbmplY3QoTkdUU19HSVpNT19IRUxQRVJfQVBJKTtcblxuICAgIHJlYWRvbmx5IE1hdGggPSBNYXRoO1xuXG4gICAgQElucHV0KCkgc2V0IGF4aXNDb2xvcnMoYXhpc0NvbG9yczogW3N0cmluZywgc3RyaW5nLCBzdHJpbmddKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgYXhpc0NvbG9ycyB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgYXhpc1NjYWxlKGF4aXNTY2FsZTogW251bWJlciwgbnVtYmVyLCBudW1iZXJdKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgYXhpc1NjYWxlIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBsYWJlbHMobGFiZWxzOiBbc3RyaW5nLCBzdHJpbmcsIHN0cmluZ10pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBsYWJlbHMgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGF4aXNIZWFkU2NhbGUoYXhpc0hlYWRTY2FsZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgYXhpc0hlYWRTY2FsZSB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgbGFiZWxDb2xvcihsYWJlbENvbG9yOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBsYWJlbENvbG9yIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBoaWRlTmVnYXRpdmVBeGVzKGhpZGVOZWdhdGl2ZUF4ZXM6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBoaWRlTmVnYXRpdmVBeGVzIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBoaWRlQXhpc0hlYWRzKGhpZGVBeGlzSGVhZHM6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBoaWRlQXhpc0hlYWRzIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBkaXNhYmxlZChkaXNhYmxlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNldCh7IGRpc2FibGVkIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBmb250KGZvbnQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLnNldCh7IGZvbnQgfSk7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpIGNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPE5ndFRocmVlRXZlbnQ8TW91c2VFdmVudD4+KCk7XG5cbiAgICBvdmVycmlkZSBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5pbml0aWFsaXplKCk7XG4gICAgICAgIHRoaXMuc2V0KHtcbiAgICAgICAgICAgIGZvbnQ6ICcxOHB4IEludGVyIHZhciwgQXJpYWwsIHNhbnMtc2VyaWYnLFxuICAgICAgICAgICAgYXhpc0NvbG9yczogWycjZmYyMDYwJywgJyMyMGRmODAnLCAnIzIwODBmZiddLFxuICAgICAgICAgICAgYXhpc0hlYWRTY2FsZTogMSxcbiAgICAgICAgICAgIGxhYmVsczogWydYJywgJ1knLCAnWiddLFxuICAgICAgICAgICAgbGFiZWxDb2xvcjogJyMwMDAnLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvblBvaW50ZXJEb3duKGV2ZW50OiBOZ3RUaHJlZUV2ZW50PFBvaW50ZXJFdmVudD4pIHtcbiAgICAgICAgaWYgKCF0aGlzLmdldCgnZGlzYWJsZWQnKSkge1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICB0aGlzLmdpem1vSGVscGVyQXBpLnR3ZWVuQ2FtZXJhKGV2ZW50Lm9iamVjdC5wb3NpdGlvbik7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -1,76 +0,0 @@
1
- import { Directive, Input } from '@angular/core';
2
- import { NgtRxStore } from 'angular-three';
3
- import * as i0 from "@angular/core";
4
- class NgtsLineInput extends NgtRxStore {
5
- set vertexColors(vertexColors) {
6
- this.set({ vertexColors });
7
- }
8
- set lineWidth(lineWidth) {
9
- this.set({ lineWidth });
10
- }
11
- set alphaToCoverage(alphaToCoverage) {
12
- this.set({ alphaToCoverage });
13
- }
14
- set color(color) {
15
- this.set({ color });
16
- }
17
- set dashed(dashed) {
18
- this.set({ dashed });
19
- }
20
- set dashScale(dashScale) {
21
- this.set({ dashScale });
22
- }
23
- set dashSize(dashSize) {
24
- this.set({ dashSize });
25
- }
26
- set dashOffset(dashOffset) {
27
- this.set({ dashOffset });
28
- }
29
- set gapSize(gapSize) {
30
- this.set({ gapSize });
31
- }
32
- set resolution(resolution) {
33
- this.set({ resolution });
34
- }
35
- set wireframe(wireframe) {
36
- this.set({ wireframe });
37
- }
38
- set worldUnits(worldUnits) {
39
- this.set({ worldUnits });
40
- }
41
- initialize() {
42
- super.initialize();
43
- this.set({ color: 'black' });
44
- }
45
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsLineInput, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
46
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: NgtsLineInput, inputs: { vertexColors: "vertexColors", lineWidth: "lineWidth", alphaToCoverage: "alphaToCoverage", color: "color", dashed: "dashed", dashScale: "dashScale", dashSize: "dashSize", dashOffset: "dashOffset", gapSize: "gapSize", resolution: "resolution", wireframe: "wireframe", worldUnits: "worldUnits" }, usesInheritance: true, ngImport: i0 }); }
47
- }
48
- export { NgtsLineInput };
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsLineInput, decorators: [{
50
- type: Directive
51
- }], propDecorators: { vertexColors: [{
52
- type: Input
53
- }], lineWidth: [{
54
- type: Input
55
- }], alphaToCoverage: [{
56
- type: Input
57
- }], color: [{
58
- type: Input
59
- }], dashed: [{
60
- type: Input
61
- }], dashScale: [{
62
- type: Input
63
- }], dashSize: [{
64
- type: Input
65
- }], dashOffset: [{
66
- type: Input
67
- }], gapSize: [{
68
- type: Input
69
- }], resolution: [{
70
- type: Input
71
- }], wireframe: [{
72
- type: Input
73
- }], worldUnits: [{
74
- type: Input
75
- }] } });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci10aHJlZS1zb2JhL2Fic3RyYWN0aW9ucy9zcmMvbGliL2xpbmUvbGluZS1pbnB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUzQyxNQUNzQixhQUFjLFNBQVEsVUFBVTtJQUNsRCxJQUFhLFlBQVksQ0FBQyxZQUEyRDtRQUNqRixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBYSxTQUFTLENBQUMsU0FBaUI7UUFDcEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQWEsZUFBZSxDQUFDLGVBQXdCO1FBQ2pELElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFhLEtBQUssQ0FBQyxLQUFnQztRQUMvQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBYSxNQUFNLENBQUMsTUFBZTtRQUMvQixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBYSxTQUFTLENBQUMsU0FBaUI7UUFDcEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQWEsUUFBUSxDQUFDLFFBQWdCO1FBQ2xDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFhLFVBQVUsQ0FBQyxVQUFrQjtRQUN0QyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBYSxPQUFPLENBQUMsT0FBZTtRQUNoQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBYSxVQUFVLENBQUMsVUFBeUI7UUFDN0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQWEsU0FBUyxDQUFDLFNBQWtCO1FBQ3JDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFhLFVBQVUsQ0FBQyxVQUFtQjtRQUN2QyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRVEsVUFBVTtRQUNmLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDakMsQ0FBQzs4R0FwRGlCLGFBQWE7a0dBQWIsYUFBYTs7U0FBYixhQUFhOzJGQUFiLGFBQWE7a0JBRGxDLFNBQVM7OEJBRU8sWUFBWTtzQkFBeEIsS0FBSztnQkFJTyxTQUFTO3NCQUFyQixLQUFLO2dCQUlPLGVBQWU7c0JBQTNCLEtBQUs7Z0JBSU8sS0FBSztzQkFBakIsS0FBSztnQkFJTyxNQUFNO3NCQUFsQixLQUFLO2dCQUlPLFNBQVM7c0JBQXJCLEtBQUs7Z0JBSU8sUUFBUTtzQkFBcEIsS0FBSztnQkFJTyxVQUFVO3NCQUF0QixLQUFLO2dCQUlPLE9BQU87c0JBQW5CLEtBQUs7Z0JBSU8sVUFBVTtzQkFBdEIsS0FBSztnQkFJTyxTQUFTO3NCQUFyQixLQUFLO2dCQUlPLFVBQVU7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RSeFN0b3JlIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE5ndHNMaW5lSW5wdXQgZXh0ZW5kcyBOZ3RSeFN0b3JlIHtcbiAgICBASW5wdXQoKSBzZXQgdmVydGV4Q29sb3JzKHZlcnRleENvbG9yczogQXJyYXk8VEhSRUUuQ29sb3IgfCBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl0+KSB7XG4gICAgICAgIHRoaXMuc2V0KHsgdmVydGV4Q29sb3JzIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBsaW5lV2lkdGgobGluZVdpZHRoOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBsaW5lV2lkdGggfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGFscGhhVG9Db3ZlcmFnZShhbHBoYVRvQ292ZXJhZ2U6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBhbHBoYVRvQ292ZXJhZ2UgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGNvbG9yKGNvbG9yOiBUSFJFRS5Db2xvclJlcHJlc2VudGF0aW9uKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgY29sb3IgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGRhc2hlZChkYXNoZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBkYXNoZWQgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGRhc2hTY2FsZShkYXNoU2NhbGU6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGRhc2hTY2FsZSB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgZGFzaFNpemUoZGFzaFNpemU6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGRhc2hTaXplIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBkYXNoT2Zmc2V0KGRhc2hPZmZzZXQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGRhc2hPZmZzZXQgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGdhcFNpemUoZ2FwU2l6ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZ2FwU2l6ZSB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgcmVzb2x1dGlvbihyZXNvbHV0aW9uOiBUSFJFRS5WZWN0b3IyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgcmVzb2x1dGlvbiB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgd2lyZWZyYW1lKHdpcmVmcmFtZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNldCh7IHdpcmVmcmFtZSB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgd29ybGRVbml0cyh3b3JsZFVuaXRzOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgd29ybGRVbml0cyB9KTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5pbml0aWFsaXplKCk7XG4gICAgICAgIHRoaXMuc2V0KHsgY29sb3I6ICdibGFjaycgfSk7XG4gICAgfVxufVxuIl19
@@ -1,133 +0,0 @@
1
- import { Component, CUSTOM_ELEMENTS_SCHEMA, inject, Input } from '@angular/core';
2
- import { injectNgtRef, NgtArgs, NgtStore, startWithUndefined } from 'angular-three';
3
- import { combineLatest, map } from 'rxjs';
4
- import * as THREE from 'three';
5
- import { Line2, LineGeometry, LineMaterial, LineSegments2, LineSegmentsGeometry } from 'three-stdlib';
6
- import { NgtsLineInput } from './line-input';
7
- import * as i0 from "@angular/core";
8
- class NgtsLine extends NgtsLineInput {
9
- constructor() {
10
- super(...arguments);
11
- this.Boolean = Boolean;
12
- this.lineMaterial = new LineMaterial();
13
- this.store = inject(NgtStore);
14
- this.line = null;
15
- this.lineRef = injectNgtRef();
16
- }
17
- set points(points) {
18
- this.set({ points });
19
- }
20
- set segments(segments) {
21
- this.set({ segments });
22
- }
23
- onAfterAttach({ parent }) {
24
- parent.computeLineDistances();
25
- }
26
- initialize() {
27
- super.initialize();
28
- this.set({ segments: false });
29
- this.connect('lineGeometry', combineLatest([
30
- this.select('points'),
31
- this.select('segments'),
32
- this.select('vertexColors').pipe(startWithUndefined()),
33
- ]).pipe(map(([points, segments, vertexColors]) => {
34
- const geometry = segments ? new LineSegmentsGeometry() : new LineGeometry();
35
- const pValues = points.map((p) => {
36
- const isArray = Array.isArray(p);
37
- return p instanceof THREE.Vector3
38
- ? [p.x, p.y, p.z]
39
- : p instanceof THREE.Vector2
40
- ? [p.x, p.y, 0]
41
- : isArray && p.length === 3
42
- ? [p[0], p[1], p[2]]
43
- : isArray && p.length === 2
44
- ? [p[0], p[1], 0]
45
- : p;
46
- });
47
- geometry.setPositions(pValues.flat());
48
- if (vertexColors) {
49
- const cValues = vertexColors.map((c) => c instanceof THREE.Color ? c.toArray() : c);
50
- geometry.setColors(cValues.flat());
51
- }
52
- return geometry;
53
- })));
54
- }
55
- ngOnInit() {
56
- this.connect('materialResolution', combineLatest([this.store.select('size'), this.select('resolution').pipe(startWithUndefined())]).pipe(map(([size, resolution]) => resolution ?? [size.width, size.height])));
57
- this.line = this.get('segments') ? new LineSegments2() : new Line2();
58
- this.disposeGeometry();
59
- }
60
- disposeGeometry() {
61
- this.effect(this.select('lineGeometry'), (lineGeometry) => {
62
- return () => lineGeometry.dispose();
63
- });
64
- }
65
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsLine, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
66
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: NgtsLine, isStandalone: true, selector: "ngts-line[points]", inputs: { lineRef: "lineRef", points: "points", segments: "segments" }, usesInheritance: true, ngImport: i0, template: `
67
- <ngt-primitive *args="[line]" [ref]="lineRef" ngtCompound>
68
- <ngt-primitive
69
- *args="[get('lineGeometry')]"
70
- attach="geometry"
71
- (afterAttach)="onAfterAttach($any($event))"
72
- />
73
- <ngt-primitive
74
- *args="[lineMaterial]"
75
- attach="material"
76
- [color]="get('color')"
77
- [vertexColors]="Boolean(get('vertexColors'))"
78
- [resolution]="get('materialResolution')"
79
- [linewidth]="get('lineWidth')"
80
- [alphaToCoverage]="get('alphaToCoverage')"
81
- [dashed]="get('dashed')"
82
- [dashScale]="get('dashScale') ?? lineMaterial.dashScale"
83
- [dashSize]="get('dashSize') ?? lineMaterial.dashSize"
84
- [dashOffset]="get('dashOffset') ?? lineMaterial.dashOffset"
85
- [gapSize]="get('gapSize') ?? lineMaterial.gapSize"
86
- [wireframe]="get('wireframe') ?? lineMaterial.wireframe"
87
- [worldUnits]="get('worldUnits')"
88
- />
89
- </ngt-primitive>
90
- `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }] }); }
91
- }
92
- export { NgtsLine };
93
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsLine, decorators: [{
94
- type: Component,
95
- args: [{
96
- selector: 'ngts-line[points]',
97
- standalone: true,
98
- template: `
99
- <ngt-primitive *args="[line]" [ref]="lineRef" ngtCompound>
100
- <ngt-primitive
101
- *args="[get('lineGeometry')]"
102
- attach="geometry"
103
- (afterAttach)="onAfterAttach($any($event))"
104
- />
105
- <ngt-primitive
106
- *args="[lineMaterial]"
107
- attach="material"
108
- [color]="get('color')"
109
- [vertexColors]="Boolean(get('vertexColors'))"
110
- [resolution]="get('materialResolution')"
111
- [linewidth]="get('lineWidth')"
112
- [alphaToCoverage]="get('alphaToCoverage')"
113
- [dashed]="get('dashed')"
114
- [dashScale]="get('dashScale') ?? lineMaterial.dashScale"
115
- [dashSize]="get('dashSize') ?? lineMaterial.dashSize"
116
- [dashOffset]="get('dashOffset') ?? lineMaterial.dashOffset"
117
- [gapSize]="get('gapSize') ?? lineMaterial.gapSize"
118
- [wireframe]="get('wireframe') ?? lineMaterial.wireframe"
119
- [worldUnits]="get('worldUnits')"
120
- />
121
- </ngt-primitive>
122
- `,
123
- imports: [NgtArgs],
124
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
125
- }]
126
- }], propDecorators: { lineRef: [{
127
- type: Input
128
- }], points: [{
129
- type: Input
130
- }], segments: [{
131
- type: Input
132
- }] } });
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci10aHJlZS1zb2JhL2Fic3RyYWN0aW9ucy9zcmMvbGliL2xpbmUvbGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFFLFlBQVksRUFBa0IsT0FBTyxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBRTdDLE1BK0JhLFFBQVMsU0FBUSxhQUFhO0lBL0IzQzs7UUFnQ2EsWUFBTyxHQUFHLE9BQU8sQ0FBQztRQUNsQixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFMUIsVUFBSyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUUxQyxTQUFJLEdBQWlDLElBQUksQ0FBQztRQUVqQyxZQUFPLEdBQUcsWUFBWSxFQUF5QixDQUFDO0tBMEU1RDtJQXhFRyxJQUFhLE1BQU0sQ0FDZixNQUFtRztRQUVuRyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBYSxRQUFRLENBQUMsUUFBaUI7UUFDbkMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDM0IsQ0FB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SSxFQUFFLFVBQVUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUN2RSxDQUNKLENBQUM7UUFFRixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxFQUFFLENBQUM7UUFFckUsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFTyxlQUFlO1FBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLFlBQTBCLEVBQUUsRUFBRTtZQUNwRSxPQUFPLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBakZRLFFBQVE7a0dBQVIsUUFBUSw0S0E1QlA7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQXdCVCw0REFDUyxPQUFPOztTQUdSLFFBQVE7MkZBQVIsUUFBUTtrQkEvQnBCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBd0JUO29CQUNELE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztvQkFDbEIsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ3BDOzhCQVNZLE9BQU87c0JBQWYsS0FBSztnQkFFTyxNQUFNO3NCQUFsQixLQUFLO2dCQU1PLFFBQVE7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIGluamVjdCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0Tmd0UmVmLCBOZ3RBZnRlckF0dGFjaCwgTmd0QXJncywgTmd0U3RvcmUsIHN0YXJ0V2l0aFVuZGVmaW5lZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBMaW5lMiwgTGluZUdlb21ldHJ5LCBMaW5lTWF0ZXJpYWwsIExpbmVTZWdtZW50czIsIExpbmVTZWdtZW50c0dlb21ldHJ5IH0gZnJvbSAndGhyZWUtc3RkbGliJztcbmltcG9ydCB7IE5ndHNMaW5lSW5wdXQgfSBmcm9tICcuL2xpbmUtaW5wdXQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndHMtbGluZVtwb2ludHNdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxuZ3QtcHJpbWl0aXZlICphcmdzPVwiW2xpbmVdXCIgW3JlZl09XCJsaW5lUmVmXCIgbmd0Q29tcG91bmQ+XG4gICAgICAgICAgICA8bmd0LXByaW1pdGl2ZVxuICAgICAgICAgICAgICAgICphcmdzPVwiW2dldCgnbGluZUdlb21ldHJ5JyldXCJcbiAgICAgICAgICAgICAgICBhdHRhY2g9XCJnZW9tZXRyeVwiXG4gICAgICAgICAgICAgICAgKGFmdGVyQXR0YWNoKT1cIm9uQWZ0ZXJBdHRhY2goJGFueSgkZXZlbnQpKVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPG5ndC1wcmltaXRpdmVcbiAgICAgICAgICAgICAgICAqYXJncz1cIltsaW5lTWF0ZXJpYWxdXCJcbiAgICAgICAgICAgICAgICBhdHRhY2g9XCJtYXRlcmlhbFwiXG4gICAgICAgICAgICAgICAgW2NvbG9yXT1cImdldCgnY29sb3InKVwiXG4gICAgICAgICAgICAgICAgW3ZlcnRleENvbG9yc109XCJCb29sZWFuKGdldCgndmVydGV4Q29sb3JzJykpXCJcbiAgICAgICAgICAgICAgICBbcmVzb2x1dGlvbl09XCJnZXQoJ21hdGVyaWFsUmVzb2x1dGlvbicpXCJcbiAgICAgICAgICAgICAgICBbbGluZXdpZHRoXT1cImdldCgnbGluZVdpZHRoJylcIlxuICAgICAgICAgICAgICAgIFthbHBoYVRvQ292ZXJhZ2VdPVwiZ2V0KCdhbHBoYVRvQ292ZXJhZ2UnKVwiXG4gICAgICAgICAgICAgICAgW2Rhc2hlZF09XCJnZXQoJ2Rhc2hlZCcpXCJcbiAgICAgICAgICAgICAgICBbZGFzaFNjYWxlXT1cImdldCgnZGFzaFNjYWxlJykgPz8gbGluZU1hdGVyaWFsLmRhc2hTY2FsZVwiXG4gICAgICAgICAgICAgICAgW2Rhc2hTaXplXT1cImdldCgnZGFzaFNpemUnKSA/PyBsaW5lTWF0ZXJpYWwuZGFzaFNpemVcIlxuICAgICAgICAgICAgICAgIFtkYXNoT2Zmc2V0XT1cImdldCgnZGFzaE9mZnNldCcpID8/IGxpbmVNYXRlcmlhbC5kYXNoT2Zmc2V0XCJcbiAgICAgICAgICAgICAgICBbZ2FwU2l6ZV09XCJnZXQoJ2dhcFNpemUnKSA/PyBsaW5lTWF0ZXJpYWwuZ2FwU2l6ZVwiXG4gICAgICAgICAgICAgICAgW3dpcmVmcmFtZV09XCJnZXQoJ3dpcmVmcmFtZScpID8/IGxpbmVNYXRlcmlhbC53aXJlZnJhbWVcIlxuICAgICAgICAgICAgICAgIFt3b3JsZFVuaXRzXT1cImdldCgnd29ybGRVbml0cycpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvbmd0LXByaW1pdGl2ZT5cbiAgICBgLFxuICAgIGltcG9ydHM6IFtOZ3RBcmdzXSxcbiAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNMaW5lIGV4dGVuZHMgTmd0c0xpbmVJbnB1dCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcmVhZG9ubHkgQm9vbGVhbiA9IEJvb2xlYW47XG4gICAgcmVhZG9ubHkgbGluZU1hdGVyaWFsID0gbmV3IExpbmVNYXRlcmlhbCgpO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdG9yZSA9IGluamVjdChOZ3RTdG9yZSk7XG5cbiAgICBsaW5lOiBMaW5lMiB8IExpbmVTZWdtZW50czIgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpIGxpbmVSZWYgPSBpbmplY3ROZ3RSZWY8TGluZVNlZ21lbnRzMiB8IExpbmUyPigpO1xuXG4gICAgQElucHV0KCkgc2V0IHBvaW50cyhcbiAgICAgICAgcG9pbnRzOiBBcnJheTxUSFJFRS5WZWN0b3IzIHwgVEhSRUUuVmVjdG9yMiB8IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSB8IFtudW1iZXIsIG51bWJlcl0gfCBudW1iZXI+XG4gICAgKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgcG9pbnRzIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBzZWdtZW50cyhzZWdtZW50czogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNldCh7IHNlZ21lbnRzIH0pO1xuICAgIH1cblxuICAgIG9uQWZ0ZXJBdHRhY2goeyBwYXJlbnQgfTogTmd0QWZ0ZXJBdHRhY2g8TGluZTIgfCBMaW5lU2VnbWVudHMyPikge1xuICAgICAgICBwYXJlbnQuY29tcHV0ZUxpbmVEaXN0YW5jZXMoKTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5pbml0aWFsaXplKCk7XG4gICAgICAgIHRoaXMuc2V0KHsgc2VnbWVudHM6IGZhbHNlIH0pO1xuICAgICAgICB0aGlzLmNvbm5lY3QoXG4gICAgICAgICAgICAnbGluZUdlb21ldHJ5JyxcbiAgICAgICAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0KCdwb2ludHMnKSxcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdCgnc2VnbWVudHMnKSxcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdCgndmVydGV4Q29sb3JzJykucGlwZShzdGFydFdpdGhVbmRlZmluZWQoKSksXG4gICAgICAgICAgICBdKS5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgoW3BvaW50cywgc2VnbWVudHMsIHZlcnRleENvbG9yc10pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2VvbWV0cnkgPSBzZWdtZW50cyA/IG5ldyBMaW5lU2VnbWVudHNHZW9tZXRyeSgpIDogbmV3IExpbmVHZW9tZXRyeSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwVmFsdWVzID0gKHBvaW50cyBhcyBOZ3RzTGluZVsncG9pbnRzJ10pLm1hcCgocCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNBcnJheSA9IEFycmF5LmlzQXJyYXkocCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcCBpbnN0YW5jZW9mIFRIUkVFLlZlY3RvcjNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFtwLngsIHAueSwgcC56XVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogcCBpbnN0YW5jZW9mIFRIUkVFLlZlY3RvcjJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFtwLngsIHAueSwgMF1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGlzQXJyYXkgJiYgcC5sZW5ndGggPT09IDNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFtwWzBdLCBwWzFdLCBwWzJdXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogaXNBcnJheSAmJiBwLmxlbmd0aCA9PT0gMlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gW3BbMF0sIHBbMV0sIDBdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBwO1xuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICBnZW9tZXRyeS5zZXRQb3NpdGlvbnMocFZhbHVlcy5mbGF0KCkpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh2ZXJ0ZXhDb2xvcnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNWYWx1ZXMgPSAodmVydGV4Q29sb3JzIGFzIE5ndHNMaW5lSW5wdXRbJ3ZlcnRleENvbG9ycyddKS5tYXAoKGMpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYyBpbnN0YW5jZW9mIFRIUkVFLkNvbG9yID8gYy50b0FycmF5KCkgOiBjXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgZ2VvbWV0cnkuc2V0Q29sb3JzKGNWYWx1ZXMuZmxhdCgpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBnZW9tZXRyeTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmNvbm5lY3QoXG4gICAgICAgICAgICAnbWF0ZXJpYWxSZXNvbHV0aW9uJyxcbiAgICAgICAgICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuc3RvcmUuc2VsZWN0KCdzaXplJyksIHRoaXMuc2VsZWN0KCdyZXNvbHV0aW9uJykucGlwZShzdGFydFdpdGhVbmRlZmluZWQoKSldKS5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgoW3NpemUsIHJlc29sdXRpb25dKSA9PiByZXNvbHV0aW9uID8/IFtzaXplLndpZHRoLCBzaXplLmhlaWdodF0pXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5saW5lID0gdGhpcy5nZXQoJ3NlZ21lbnRzJykgPyBuZXcgTGluZVNlZ21lbnRzMigpIDogbmV3IExpbmUyKCk7XG5cbiAgICAgICAgdGhpcy5kaXNwb3NlR2VvbWV0cnkoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRpc3Bvc2VHZW9tZXRyeSgpIHtcbiAgICAgICAgdGhpcy5lZmZlY3QodGhpcy5zZWxlY3QoJ2xpbmVHZW9tZXRyeScpLCAobGluZUdlb21ldHJ5OiBMaW5lR2VvbWV0cnkpID0+IHtcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiBsaW5lR2VvbWV0cnkuZGlzcG9zZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=