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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (296) hide show
  1. package/abstractions/billboard/billboard.d.ts +11 -7
  2. package/abstractions/detailed/detailed.d.ts +26 -0
  3. package/abstractions/edges/edges.d.ts +23 -11
  4. package/abstractions/grid/grid.d.ts +41 -50
  5. package/abstractions/index.d.ts +1 -7
  6. package/abstractions/text/text.d.ts +10 -4
  7. package/abstractions/text-3d/text-3d.d.ts +47 -40
  8. package/cameras/camera/camera-content.d.ts +1 -1
  9. package/cameras/camera/camera.d.ts +16 -13
  10. package/cameras/cube-camera/cube-camera.d.ts +50 -23
  11. package/cameras/index.d.ts +0 -1
  12. package/cameras/orthographic-camera/orthographic-camera.d.ts +29 -18
  13. package/cameras/perspective-camera/perspective-camera.d.ts +10 -1
  14. package/controls/orbit-controls/orbit-controls.d.ts +30 -13
  15. package/esm2022/abstractions/billboard/billboard.mjs +36 -33
  16. package/esm2022/abstractions/detailed/detailed.mjs +64 -0
  17. package/esm2022/abstractions/edges/edges.mjs +58 -63
  18. package/esm2022/abstractions/grid/grid.mjs +140 -110
  19. package/esm2022/abstractions/index.mjs +2 -8
  20. package/esm2022/abstractions/text/text.mjs +123 -122
  21. package/esm2022/abstractions/text-3d/text-3d.mjs +119 -121
  22. package/esm2022/cameras/camera/camera-content.mjs +5 -6
  23. package/esm2022/cameras/camera/camera.mjs +48 -42
  24. package/esm2022/cameras/cube-camera/cube-camera.mjs +129 -99
  25. package/esm2022/cameras/index.mjs +1 -2
  26. package/esm2022/cameras/orthographic-camera/orthographic-camera.mjs +78 -75
  27. package/esm2022/cameras/perspective-camera/perspective-camera.mjs +25 -26
  28. package/esm2022/controls/orbit-controls/orbit-controls.mjs +94 -90
  29. package/esm2022/loaders/gltf-loader/gltf-loader.mjs +3 -6
  30. package/esm2022/loaders/loader/loader.mjs +92 -87
  31. package/esm2022/loaders/progress/progress.mjs +1 -1
  32. package/esm2022/loaders/texture-loader/texture-loader.mjs +4 -4
  33. package/esm2022/materials/index.mjs +2 -1
  34. package/esm2022/materials/mesh-distort-material/mesh-distort-material.mjs +60 -51
  35. package/esm2022/materials/mesh-reflector-material/mesh-reflector-material.mjs +239 -255
  36. package/esm2022/materials/mesh-refraction-material/mesh-refraction-material.mjs +99 -97
  37. package/esm2022/materials/mesh-transmission-material/mesh-transmission-material.mjs +167 -146
  38. package/esm2022/materials/mesh-wobble-material/mesh-wobble-material.mjs +44 -42
  39. package/esm2022/materials/point-material/point-material.mjs +46 -0
  40. package/esm2022/misc/animations/animations.mjs +20 -16
  41. package/esm2022/misc/bake-shadows/bake-shadows.mjs +13 -13
  42. package/esm2022/misc/caustics/caustics.mjs +387 -0
  43. package/esm2022/misc/decal/decal.mjs +187 -0
  44. package/esm2022/misc/depth-buffer/depth-buffer.mjs +33 -35
  45. package/esm2022/misc/example/example.mjs +160 -0
  46. package/esm2022/misc/fbo/fbo.mjs +35 -35
  47. package/esm2022/misc/html/html-wrapper.mjs +478 -0
  48. package/esm2022/misc/html/html.mjs +304 -0
  49. package/esm2022/misc/index.mjs +10 -1
  50. package/esm2022/misc/sampler/sampler.mjs +142 -0
  51. package/esm2022/misc/shadow/shadow.mjs +111 -0
  52. package/esm2022/misc/stats-gl/stats-gl.mjs +61 -0
  53. package/esm2022/misc/trail/trail.mjs +209 -0
  54. package/esm2022/misc/trail-texture/inject-trail-texture.mjs +17 -0
  55. package/esm2022/misc/trail-texture/trail-texture.mjs +106 -0
  56. package/esm2022/modifiers/angular-three-soba-modifiers.mjs +5 -0
  57. package/esm2022/modifiers/curve-modifier/curve-modifier.mjs +64 -0
  58. package/esm2022/modifiers/index.mjs +2 -0
  59. package/esm2022/performances/adaptive-dpr/adaptive-dpr.mjs +44 -0
  60. package/esm2022/performances/adaptive-events/adaptive-events.mjs +27 -0
  61. package/esm2022/performances/angular-three-soba-performances.mjs +5 -0
  62. package/esm2022/performances/index.mjs +6 -0
  63. package/esm2022/performances/points/points-input.mjs +64 -0
  64. package/esm2022/performances/points/points.mjs +329 -0
  65. package/esm2022/performances/points/position-point.mjs +54 -0
  66. package/esm2022/performances/segments/segment-object.mjs +9 -0
  67. package/esm2022/performances/segments/segments.mjs +182 -0
  68. package/esm2022/shaders/blur-pass/blur-pass.mjs +1 -1
  69. package/esm2022/shaders/caustics/caustics-material.mjs +130 -0
  70. package/esm2022/shaders/caustics/caustics-projection-material.mjs +31 -0
  71. package/esm2022/shaders/convolution-material/convolution-material.mjs +1 -1
  72. package/esm2022/shaders/discard-material/discard-material.mjs +1 -1
  73. package/esm2022/shaders/grid-material/grid-material.mjs +29 -14
  74. package/esm2022/shaders/index.mjs +5 -3
  75. package/esm2022/shaders/mesh-distort-material/mesh-distort-material.mjs +42 -41
  76. package/esm2022/shaders/mesh-reflector-material/mesh-reflector-material.mjs +1 -1
  77. package/esm2022/shaders/mesh-refraction-material/mesh-refraction-material.mjs +2 -2
  78. package/esm2022/shaders/mesh-transmission-material/mesh-transmission-material.mjs +4 -4
  79. package/esm2022/shaders/mesh-wobble-material/mesh-wobble-material.mjs +1 -1
  80. package/esm2022/shaders/shader-material/shader-material.mjs +1 -1
  81. package/esm2022/shaders/soft-shadow-material/soft-shadow-material.mjs +17 -25
  82. package/esm2022/shaders/sparkles-material/sparkles-material.mjs +32 -46
  83. package/esm2022/shaders/spot-light-material/spot-light-material.mjs +7 -7
  84. package/esm2022/shaders/star-field-material/star-field-material.mjs +3 -2
  85. package/esm2022/shaders/wireframe-material/wireframe-material.mjs +247 -0
  86. package/esm2022/staging/accumulative-shadows/accumulative-shadows.mjs +160 -176
  87. package/esm2022/staging/accumulative-shadows/progressive-light-map.mjs +1 -1
  88. package/esm2022/staging/accumulative-shadows/randomized-lights.mjs +126 -128
  89. package/esm2022/staging/backdrop/backdrop.mjs +77 -0
  90. package/esm2022/staging/bb-anchor/bb-anchor.mjs +70 -0
  91. package/esm2022/staging/bounds/bounds.mjs +144 -143
  92. package/esm2022/staging/camera-shake/camera-shake.mjs +86 -80
  93. package/esm2022/staging/center/center.mjs +106 -91
  94. package/esm2022/staging/cloud/cloud.mjs +118 -124
  95. package/esm2022/staging/contact-shadows/contact-shadows.mjs +131 -134
  96. package/esm2022/staging/environment/assets.mjs +12 -12
  97. package/esm2022/staging/environment/environment-cube.mjs +28 -30
  98. package/esm2022/staging/environment/environment-ground.mjs +18 -20
  99. package/esm2022/staging/environment/environment-input.mjs +97 -84
  100. package/esm2022/staging/environment/environment-map.mjs +33 -33
  101. package/esm2022/staging/environment/environment-portal.mjs +75 -97
  102. package/esm2022/staging/environment/environment.mjs +34 -51
  103. package/esm2022/staging/environment/utils.mjs +35 -14
  104. package/esm2022/staging/float/float.mjs +70 -58
  105. package/esm2022/staging/index.mjs +7 -3
  106. package/esm2022/staging/matcap-texture/matcap-texture.mjs +64 -0
  107. package/esm2022/staging/normal-texture/normal-texture.mjs +53 -0
  108. package/esm2022/staging/sky/sky.mjs +85 -80
  109. package/esm2022/staging/sparkles/sparkles.mjs +108 -105
  110. package/esm2022/staging/spot-light/shadow-mesh-input.mjs +63 -0
  111. package/esm2022/staging/spot-light/shadow-mesh.mjs +266 -0
  112. package/esm2022/staging/spot-light/spot-light-input.mjs +67 -58
  113. package/esm2022/staging/spot-light/spot-light.mjs +51 -64
  114. package/esm2022/staging/spot-light/volumetric-mesh.mjs +61 -78
  115. package/esm2022/staging/stage/stage.mjs +304 -290
  116. package/esm2022/staging/stars/stars.mjs +101 -102
  117. package/esm2022/staging/wireframe/wireframe-input.mjs +191 -0
  118. package/esm2022/staging/wireframe/wireframe.mjs +224 -0
  119. package/esm2022/utils/angular-three-soba-utils.mjs +5 -0
  120. package/esm2022/utils/content/content.mjs +15 -0
  121. package/esm2022/utils/index.mjs +2 -0
  122. package/fesm2022/angular-three-soba-abstractions.mjs +505 -2087
  123. package/fesm2022/angular-three-soba-abstractions.mjs.map +1 -1
  124. package/fesm2022/angular-three-soba-cameras.mjs +302 -259
  125. package/fesm2022/angular-three-soba-cameras.mjs.map +1 -1
  126. package/fesm2022/angular-three-soba-controls.mjs +93 -88
  127. package/fesm2022/angular-three-soba-controls.mjs.map +1 -1
  128. package/fesm2022/angular-three-soba-loaders.mjs +94 -90
  129. package/fesm2022/angular-three-soba-loaders.mjs.map +1 -1
  130. package/fesm2022/angular-three-soba-materials.mjs +655 -590
  131. package/fesm2022/angular-three-soba-materials.mjs.map +1 -1
  132. package/fesm2022/angular-three-soba-misc.mjs +2198 -89
  133. package/fesm2022/angular-three-soba-misc.mjs.map +1 -1
  134. package/fesm2022/angular-three-soba-modifiers.mjs +71 -0
  135. package/fesm2022/angular-three-soba-modifiers.mjs.map +1 -0
  136. package/fesm2022/angular-three-soba-performances.mjs +697 -0
  137. package/fesm2022/angular-three-soba-performances.mjs.map +1 -0
  138. package/fesm2022/angular-three-soba-shaders.mjs +501 -264
  139. package/fesm2022/angular-three-soba-shaders.mjs.map +1 -1
  140. package/fesm2022/angular-three-soba-staging.mjs +2870 -2555
  141. package/fesm2022/angular-three-soba-staging.mjs.map +1 -1
  142. package/fesm2022/angular-three-soba-utils.mjs +22 -0
  143. package/fesm2022/angular-three-soba-utils.mjs.map +1 -0
  144. package/loaders/gltf-loader/gltf-loader.d.ts +4 -3
  145. package/loaders/loader/loader.d.ts +19 -17
  146. package/loaders/progress/progress.d.ts +1 -1
  147. package/loaders/texture-loader/texture-loader.d.ts +2 -2
  148. package/materials/index.d.ts +1 -0
  149. package/materials/mesh-distort-material/mesh-distort-material.d.ts +25 -15
  150. package/materials/mesh-reflector-material/mesh-reflector-material.d.ts +74 -56
  151. package/materials/mesh-refraction-material/mesh-refraction-material.d.ts +33 -21
  152. package/materials/mesh-transmission-material/mesh-transmission-material.d.ts +55 -39
  153. package/materials/mesh-wobble-material/mesh-wobble-material.d.ts +19 -10
  154. package/materials/point-material/point-material.d.ts +24 -0
  155. package/metadata.json +1 -0
  156. package/misc/animations/animations.d.ts +6 -4
  157. package/misc/caustics/caustics.d.ts +87 -0
  158. package/misc/decal/decal.d.ts +49 -0
  159. package/misc/depth-buffer/depth-buffer.d.ts +2 -2
  160. package/misc/example/example.d.ts +81 -0
  161. package/misc/fbo/fbo.d.ts +2 -2
  162. package/misc/html/html-wrapper.d.ts +559 -0
  163. package/misc/html/html.d.ts +214 -0
  164. package/misc/index.d.ts +9 -0
  165. package/misc/sampler/sampler.d.ts +67 -0
  166. package/misc/shadow/shadow.d.ts +37 -0
  167. package/misc/stats-gl/stats-gl.d.ts +24 -0
  168. package/misc/trail/trail.d.ts +57 -0
  169. package/misc/trail-texture/inject-trail-texture.d.ts +9 -0
  170. package/misc/trail-texture/trail-texture.d.ts +50 -0
  171. package/modifiers/README.md +3 -0
  172. package/modifiers/curve-modifier/curve-modifier.d.ts +23 -0
  173. package/modifiers/index.d.ts +1 -0
  174. package/package.json +30 -22
  175. package/performances/README.md +3 -0
  176. package/performances/adaptive-dpr/adaptive-dpr.d.ts +14 -0
  177. package/{performance/adaptive → performances/adaptive-events}/adaptive-events.d.ts +3 -0
  178. package/performances/index.d.ts +5 -0
  179. package/performances/points/points-input.d.ts +32 -0
  180. package/performances/points/points.d.ts +92 -0
  181. package/{performance/instances/position-mesh.d.ts → performances/points/position-point.d.ts} +4 -3
  182. package/performances/segments/segment-object.d.ts +7 -0
  183. package/performances/segments/segments.d.ts +124 -0
  184. package/shaders/grid-material/grid-material.d.ts +33 -0
  185. package/shaders/index.d.ts +4 -2
  186. package/shaders/mesh-distort-material/mesh-distort-material.d.ts +146 -1
  187. package/shaders/mesh-transmission-material/mesh-transmission-material.d.ts +1 -1
  188. package/shaders/shader-material/shader-material.d.ts +2 -2
  189. package/shaders/soft-shadow-material/soft-shadow-material.d.ts +10 -1
  190. package/shaders/sparkles-material/sparkles-material.d.ts +15 -1
  191. package/shaders/spot-light-material/spot-light-material.d.ts +11 -2
  192. package/shaders/star-field-material/star-field-material.d.ts +11 -1
  193. package/shaders/wireframe-material/wireframe-material.d.ts +58 -0
  194. package/staging/accumulative-shadows/accumulative-shadows.d.ts +89 -39
  195. package/staging/accumulative-shadows/randomized-lights.d.ts +40 -27
  196. package/staging/backdrop/backdrop.d.ts +30 -0
  197. package/staging/bb-anchor/bb-anchor.d.ts +27 -0
  198. package/staging/bounds/bounds.d.ts +100 -24
  199. package/staging/camera-shake/camera-shake.d.ts +30 -19
  200. package/staging/center/center.d.ts +43 -35
  201. package/staging/cloud/cloud.d.ts +26 -23
  202. package/staging/contact-shadows/contact-shadows.d.ts +41 -28
  203. package/staging/environment/assets.d.ts +9 -9
  204. package/staging/environment/environment-cube.d.ts +9 -5
  205. package/staging/environment/environment-ground.d.ts +7 -7
  206. package/staging/environment/environment-input.d.ts +36 -36
  207. package/staging/environment/environment-map.d.ts +10 -5
  208. package/staging/environment/environment-portal.d.ts +10 -5
  209. package/staging/environment/environment.d.ts +0 -4
  210. package/staging/environment/utils.d.ts +2 -2
  211. package/staging/float/float.d.ts +14 -10
  212. package/staging/index.d.ts +6 -2
  213. package/staging/matcap-texture/matcap-texture.d.ts +13 -0
  214. package/staging/normal-texture/normal-texture.d.ts +16 -0
  215. package/staging/sky/sky.d.ts +28 -21
  216. package/staging/sparkles/sparkles.d.ts +35 -21
  217. package/staging/spot-light/shadow-mesh-input.d.ts +29 -0
  218. package/staging/spot-light/shadow-mesh.d.ts +37 -0
  219. package/staging/spot-light/spot-light-input.d.ts +25 -25
  220. package/staging/spot-light/spot-light.d.ts +31 -15
  221. package/staging/spot-light/volumetric-mesh.d.ts +15 -9
  222. package/staging/stage/stage.d.ts +88 -63
  223. package/staging/stars/stars.d.ts +27 -16
  224. package/staging/wireframe/wireframe-input.d.ts +65 -0
  225. package/staging/wireframe/wireframe.d.ts +28 -0
  226. package/utils/README.md +3 -0
  227. package/utils/content/content.d.ts +8 -0
  228. package/utils/index.d.ts +1 -0
  229. package/web-types.json +1 -0
  230. package/abstractions/catmull-rom-line/catmull-rom-line.d.ts +0 -25
  231. package/abstractions/cubic-bezier-line/cubic-bezier-line.d.ts +0 -25
  232. package/abstractions/gizmo-helper/gizmo-helper.d.ts +0 -34
  233. package/abstractions/gizmo-helper/gizmo-viewcube/constants.d.ts +0 -12
  234. package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.d.ts +0 -22
  235. package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.d.ts +0 -30
  236. package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.d.ts +0 -32
  237. package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube.d.ts +0 -14
  238. package/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.d.ts +0 -47
  239. package/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport.d.ts +0 -40
  240. package/abstractions/line/line-input.d.ts +0 -42
  241. package/abstractions/line/line.d.ts +0 -35
  242. package/abstractions/quadratic-bezier-line/quadratic-bezier-line.d.ts +0 -23
  243. package/esm2022/abstractions/catmull-rom-line/catmull-rom-line.mjs +0 -131
  244. package/esm2022/abstractions/cubic-bezier-line/cubic-bezier-line.mjs +0 -113
  245. package/esm2022/abstractions/gizmo-helper/gizmo-helper.mjs +0 -210
  246. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/constants.mjs +0 -31
  247. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +0 -95
  248. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +0 -155
  249. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.mjs +0 -62
  250. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube.mjs +0 -80
  251. package/esm2022/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +0 -206
  252. package/esm2022/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport.mjs +0 -273
  253. package/esm2022/abstractions/line/line-input.mjs +0 -113
  254. package/esm2022/abstractions/line/line.mjs +0 -165
  255. package/esm2022/abstractions/quadratic-bezier-line/quadratic-bezier-line.mjs +0 -128
  256. package/esm2022/performance/adaptive/adaptive-dpr.mjs +0 -46
  257. package/esm2022/performance/adaptive/adaptive-events.mjs +0 -31
  258. package/esm2022/performance/angular-three-soba-performance.mjs +0 -5
  259. package/esm2022/performance/detailed/detailed.mjs +0 -61
  260. package/esm2022/performance/index.mjs +0 -7
  261. package/esm2022/performance/instances/instance.mjs +0 -48
  262. package/esm2022/performance/instances/instances.mjs +0 -189
  263. package/esm2022/performance/instances/position-mesh.mjs +0 -52
  264. package/esm2022/performance/stats/stats.mjs +0 -79
  265. package/esm2022/shaders/caustics-material/caustics-material.mjs +0 -128
  266. package/esm2022/shaders/caustics-material/caustics-projection-material.mjs +0 -33
  267. package/esm2022/staging/caustics/caustisc.mjs +0 -384
  268. package/esm2022/staging/spot-light/spot-light-shadow-mesh-input.mjs +0 -57
  269. package/esm2022/staging/spot-light/spot-light-shadow-mesh.mjs +0 -258
  270. package/fesm2022/angular-three-soba-performance.mjs +0 -487
  271. package/fesm2022/angular-three-soba-performance.mjs.map +0 -1
  272. package/performance/README.md +0 -3
  273. package/performance/adaptive/adaptive-dpr.d.ts +0 -8
  274. package/performance/detailed/detailed.d.ts +0 -20
  275. package/performance/index.d.ts +0 -6
  276. package/performance/instances/instance.d.ts +0 -9
  277. package/performance/instances/instances.d.ts +0 -35
  278. package/performance/stats/stats.d.ts +0 -18
  279. package/plugin/generators.json +0 -19
  280. package/plugin/libs/plugin/README.md +0 -11
  281. package/plugin/package.json +0 -9
  282. package/plugin/src/generators/init/compat.d.ts +0 -2
  283. package/plugin/src/generators/init/compat.js +0 -6
  284. package/plugin/src/generators/init/compat.js.map +0 -1
  285. package/plugin/src/generators/init/init.d.ts +0 -7
  286. package/plugin/src/generators/init/init.js +0 -28
  287. package/plugin/src/generators/init/init.js.map +0 -1
  288. package/plugin/src/generators/init/schema.json +0 -6
  289. package/plugin/src/index.d.ts +0 -1
  290. package/plugin/src/index.js +0 -6
  291. package/plugin/src/index.js.map +0 -1
  292. package/staging/caustics/caustisc.d.ts +0 -70
  293. package/staging/spot-light/spot-light-shadow-mesh-input.d.ts +0 -29
  294. package/staging/spot-light/spot-light-shadow-mesh.d.ts +0 -38
  295. /package/shaders/{caustics-material → caustics}/caustics-material.d.ts +0 -0
  296. /package/shaders/{caustics-material → caustics}/caustics-projection-material.d.ts +0 -0
@@ -1,113 +0,0 @@
1
- import { Directive, Input, computed } from '@angular/core';
2
- import { NgtSignalStore } from 'angular-three';
3
- import * as i0 from "@angular/core";
4
- class NgtsLineInputs extends NgtSignalStore {
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
- #color;
42
- #vertexColors;
43
- #resolution;
44
- #linewidth;
45
- #alphaToCoverage;
46
- #dashed;
47
- #dashScale;
48
- #dashSize;
49
- #dashOffset;
50
- #gapSize;
51
- #wireframe;
52
- #worldUnits;
53
- constructor() {
54
- super({ color: 'black' });
55
- this.#color = this.select('color');
56
- this.#vertexColors = this.select('vertexColors');
57
- this.#resolution = this.select('resolution');
58
- this.#linewidth = this.select('lineWidth');
59
- this.#alphaToCoverage = this.select('alphaToCoverage');
60
- this.#dashed = this.select('dashed');
61
- this.#dashScale = this.select('dashScale');
62
- this.#dashSize = this.select('dashSize');
63
- this.#dashOffset = this.select('dashOffset');
64
- this.#gapSize = this.select('gapSize');
65
- this.#wireframe = this.select('wireframe');
66
- this.#worldUnits = this.select('worldUnits');
67
- this.lineParameters = computed(() => ({
68
- color: this.#color(),
69
- vertexColors: this.#vertexColors(),
70
- resolution: this.#resolution(),
71
- linewidth: this.#linewidth(),
72
- alphaToCoverage: this.#alphaToCoverage(),
73
- dashed: this.#dashed(),
74
- dashScale: this.#dashScale(),
75
- dashSize: this.#dashSize(),
76
- dashOffset: this.#dashOffset(),
77
- gapSize: this.#gapSize(),
78
- wireframe: this.#wireframe(),
79
- worldUnits: this.#worldUnits(),
80
- }));
81
- }
82
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: NgtsLineInputs, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
83
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.3", type: NgtsLineInputs, 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 }); }
84
- }
85
- export { NgtsLineInputs };
86
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: NgtsLineInputs, decorators: [{
87
- type: Directive
88
- }], ctorParameters: function () { return []; }, propDecorators: { vertexColors: [{
89
- type: Input
90
- }], lineWidth: [{
91
- type: Input
92
- }], alphaToCoverage: [{
93
- type: Input
94
- }], color: [{
95
- type: Input
96
- }], dashed: [{
97
- type: Input
98
- }], dashScale: [{
99
- type: Input
100
- }], dashSize: [{
101
- type: Input
102
- }], dashOffset: [{
103
- type: Input
104
- }], gapSize: [{
105
- type: Input
106
- }], resolution: [{
107
- type: Input
108
- }], wireframe: [{
109
- type: Input
110
- }], worldUnits: [{
111
- type: Input
112
- }] } });
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc29iYS9hYnN0cmFjdGlvbnMvc3JjL2xpbmUvbGluZS1pbnB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFXL0MsTUFDc0IsY0FBZSxTQUFRLGNBQTZCO0lBQ3RFLElBQWEsWUFBWSxDQUFDLFlBQTJDO1FBQ2pFLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFhLFNBQVMsQ0FBQyxTQUFxQztRQUN4RCxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBYSxlQUFlLENBQUMsZUFBaUQ7UUFDMUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQWEsS0FBSyxDQUFDLEtBQTZCO1FBQzVDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFhLE1BQU0sQ0FBQyxNQUErQjtRQUMvQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBYSxTQUFTLENBQUMsU0FBcUM7UUFDeEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQWEsUUFBUSxDQUFDLFFBQW1DO1FBQ3JELElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzNCLENBQUM7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QUFFO1NBQ2pDLENBQUMsQ0FBQyxDQUFDO0lBSUosQ0FBQzs4R0EvRWlCLGNBQWM7a0dBQWQsY0FBYzs7U0FBZCxjQUFjOzJGQUFkLGNBQWM7a0JBRG5DLFNBQVM7MEVBRU8sWUFBWTtzQkFBeEIsS0FBSztnQkFJTyxTQUFTO3NCQUFyQixLQUFLO2dCQUlPLGVBQWU7c0JBQTNCLEtBQUs7Z0JBSU8sS0FBSztzQkFBakIsS0FBSztnQkFJTyxNQUFNO3NCQUFsQixLQUFLO2dCQUlPLFNBQVM7c0JBQXJCLEtBQUs7Z0JBSU8sUUFBUTtzQkFBcEIsS0FBSztnQkFJTyxVQUFVO3NCQUF0QixLQUFLO2dCQUlPLE9BQU87c0JBQW5CLEtBQUs7Z0JBSU8sVUFBVTtzQkFBdEIsS0FBSztnQkFJTyxTQUFTO3NCQUFyQixLQUFLO2dCQUlPLFVBQVU7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0U2lnbmFsU3RvcmUgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB0eXBlIHsgTGluZU1hdGVyaWFsUGFyYW1ldGVycyB9IGZyb20gJ3RocmVlLXN0ZGxpYic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0c0xpbmVTdGF0ZSBleHRlbmRzIE9taXQ8TGluZU1hdGVyaWFsUGFyYW1ldGVycywgJ3ZlcnRleENvbG9ycycgfCAnY29sb3InPiB7XG4gICAgdmVydGV4Q29sb3JzPzogQXJyYXk8VEhSRUUuQ29sb3IgfCBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl0+O1xuICAgIGxpbmVXaWR0aD86IG51bWJlcjtcbiAgICBzZWdtZW50czogYm9vbGVhbiB8IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICBjb2xvcjogVEhSRUUuQ29sb3JSZXByZXNlbnRhdGlvbjtcbiAgICBwb2ludHM6IEFycmF5PFRIUkVFLlZlY3RvcjMgfCBUSFJFRS5WZWN0b3IyIHwgW251bWJlciwgbnVtYmVyLCBudW1iZXJdIHwgW251bWJlciwgbnVtYmVyXSB8IG51bWJlcj47XG59XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE5ndHNMaW5lSW5wdXRzIGV4dGVuZHMgTmd0U2lnbmFsU3RvcmU8Tmd0c0xpbmVTdGF0ZT4ge1xuICAgIEBJbnB1dCgpIHNldCB2ZXJ0ZXhDb2xvcnModmVydGV4Q29sb3JzOiBOZ3RzTGluZVN0YXRlWyd2ZXJ0ZXhDb2xvcnMnXSkge1xuICAgICAgICB0aGlzLnNldCh7IHZlcnRleENvbG9ycyB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgbGluZVdpZHRoKGxpbmVXaWR0aDogTmd0c0xpbmVTdGF0ZVsnbGluZVdpZHRoJ10pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBsaW5lV2lkdGggfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGFscGhhVG9Db3ZlcmFnZShhbHBoYVRvQ292ZXJhZ2U6IE5ndHNMaW5lU3RhdGVbJ2FscGhhVG9Db3ZlcmFnZSddKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgYWxwaGFUb0NvdmVyYWdlIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBjb2xvcihjb2xvcjogTmd0c0xpbmVTdGF0ZVsnY29sb3InXSkge1xuICAgICAgICB0aGlzLnNldCh7IGNvbG9yIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBkYXNoZWQoZGFzaGVkOiBOZ3RzTGluZVN0YXRlWydkYXNoZWQnXSkge1xuICAgICAgICB0aGlzLnNldCh7IGRhc2hlZCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgZGFzaFNjYWxlKGRhc2hTY2FsZTogTmd0c0xpbmVTdGF0ZVsnZGFzaFNjYWxlJ10pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBkYXNoU2NhbGUgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGRhc2hTaXplKGRhc2hTaXplOiBOZ3RzTGluZVN0YXRlWydkYXNoU2l6ZSddKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZGFzaFNpemUgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGRhc2hPZmZzZXQoZGFzaE9mZnNldDogTmd0c0xpbmVTdGF0ZVsnZGFzaE9mZnNldCddKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZGFzaE9mZnNldCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgZ2FwU2l6ZShnYXBTaXplOiBOZ3RzTGluZVN0YXRlWydnYXBTaXplJ10pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBnYXBTaXplIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCByZXNvbHV0aW9uKHJlc29sdXRpb246IE5ndHNMaW5lU3RhdGVbJ3Jlc29sdXRpb24nXSkge1xuICAgICAgICB0aGlzLnNldCh7IHJlc29sdXRpb24gfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHdpcmVmcmFtZSh3aXJlZnJhbWU6IE5ndHNMaW5lU3RhdGVbJ3dpcmVmcmFtZSddKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgd2lyZWZyYW1lIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCB3b3JsZFVuaXRzKHdvcmxkVW5pdHM6IE5ndHNMaW5lU3RhdGVbJ3dvcmxkVW5pdHMnXSkge1xuICAgICAgICB0aGlzLnNldCh7IHdvcmxkVW5pdHMgfSk7XG4gICAgfVxuXG4gICAgcmVhZG9ubHkgI2NvbG9yID0gdGhpcy5zZWxlY3QoJ2NvbG9yJyk7XG4gICAgcmVhZG9ubHkgI3ZlcnRleENvbG9ycyA9IHRoaXMuc2VsZWN0KCd2ZXJ0ZXhDb2xvcnMnKTtcbiAgICByZWFkb25seSAjcmVzb2x1dGlvbiA9IHRoaXMuc2VsZWN0KCdyZXNvbHV0aW9uJyk7XG4gICAgcmVhZG9ubHkgI2xpbmV3aWR0aCA9IHRoaXMuc2VsZWN0KCdsaW5lV2lkdGgnKTtcbiAgICByZWFkb25seSAjYWxwaGFUb0NvdmVyYWdlID0gdGhpcy5zZWxlY3QoJ2FscGhhVG9Db3ZlcmFnZScpO1xuICAgIHJlYWRvbmx5ICNkYXNoZWQgPSB0aGlzLnNlbGVjdCgnZGFzaGVkJyk7XG4gICAgcmVhZG9ubHkgI2Rhc2hTY2FsZSA9IHRoaXMuc2VsZWN0KCdkYXNoU2NhbGUnKTtcbiAgICByZWFkb25seSAjZGFzaFNpemUgPSB0aGlzLnNlbGVjdCgnZGFzaFNpemUnKTtcbiAgICByZWFkb25seSAjZGFzaE9mZnNldCA9IHRoaXMuc2VsZWN0KCdkYXNoT2Zmc2V0Jyk7XG4gICAgcmVhZG9ubHkgI2dhcFNpemUgPSB0aGlzLnNlbGVjdCgnZ2FwU2l6ZScpO1xuICAgIHJlYWRvbmx5ICN3aXJlZnJhbWUgPSB0aGlzLnNlbGVjdCgnd2lyZWZyYW1lJyk7XG4gICAgcmVhZG9ubHkgI3dvcmxkVW5pdHMgPSB0aGlzLnNlbGVjdCgnd29ybGRVbml0cycpO1xuXG4gICAgcmVhZG9ubHkgbGluZVBhcmFtZXRlcnMgPSBjb21wdXRlZCgoKSA9PiAoe1xuICAgICAgICBjb2xvcjogdGhpcy4jY29sb3IoKSxcbiAgICAgICAgdmVydGV4Q29sb3JzOiB0aGlzLiN2ZXJ0ZXhDb2xvcnMoKSxcbiAgICAgICAgcmVzb2x1dGlvbjogdGhpcy4jcmVzb2x1dGlvbigpLFxuICAgICAgICBsaW5ld2lkdGg6IHRoaXMuI2xpbmV3aWR0aCgpLFxuICAgICAgICBhbHBoYVRvQ292ZXJhZ2U6IHRoaXMuI2FscGhhVG9Db3ZlcmFnZSgpLFxuICAgICAgICBkYXNoZWQ6IHRoaXMuI2Rhc2hlZCgpLFxuICAgICAgICBkYXNoU2NhbGU6IHRoaXMuI2Rhc2hTY2FsZSgpLFxuICAgICAgICBkYXNoU2l6ZTogdGhpcy4jZGFzaFNpemUoKSxcbiAgICAgICAgZGFzaE9mZnNldDogdGhpcy4jZGFzaE9mZnNldCgpLFxuICAgICAgICBnYXBTaXplOiB0aGlzLiNnYXBTaXplKCksXG4gICAgICAgIHdpcmVmcmFtZTogdGhpcy4jd2lyZWZyYW1lKCksXG4gICAgICAgIHdvcmxkVW5pdHM6IHRoaXMuI3dvcmxkVW5pdHMoKSxcbiAgICB9KSk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoeyBjb2xvcjogJ2JsYWNrJyB9KTtcbiAgICB9XG59XG4iXX0=
@@ -1,165 +0,0 @@
1
- import { CUSTOM_ELEMENTS_SCHEMA, Component, Input, computed, effect, inject } from '@angular/core';
2
- import { NgtArgs, NgtStore, injectNgtRef, requestAnimationFrameInInjectionContext } from 'angular-three';
3
- import * as THREE from 'three';
4
- import { Line2, LineGeometry, LineMaterial, LineSegments2, LineSegmentsGeometry } from 'three-stdlib';
5
- import { NgtsLineInputs } from './line-input';
6
- import * as i0 from "@angular/core";
7
- class NgtsLine extends NgtsLineInputs {
8
- set points(points) {
9
- this.set({ points });
10
- }
11
- set segments(segments) {
12
- this.set({ segments });
13
- }
14
- #store;
15
- #size;
16
- #lineResolution;
17
- #resolution;
18
- #points;
19
- #pointValues;
20
- #vertexColors;
21
- #vertexColorValues;
22
- #segments;
23
- constructor() {
24
- super();
25
- this.lineRef = injectNgtRef();
26
- this.#store = inject(NgtStore);
27
- this.#size = this.#store.select('size');
28
- this.#lineResolution = this.select('resolution');
29
- this.#resolution = computed(() => this.#lineResolution() ? this.#lineResolution() : [this.#size().width, this.#size().height]);
30
- this.#points = this.select('points');
31
- this.#pointValues = computed(() => this.#points().map((p) => {
32
- const isArray = Array.isArray(p);
33
- return p instanceof THREE.Vector3
34
- ? [p.x, p.y, p.z]
35
- : p instanceof THREE.Vector2
36
- ? [p.x, p.y, 0]
37
- : isArray && p.length === 3
38
- ? [p[0], p[1], p[2]]
39
- : isArray && p.length === 2
40
- ? [p[0], p[1], 0]
41
- : p;
42
- }));
43
- this.#vertexColors = this.select('vertexColors');
44
- this.#vertexColorValues = computed(() => (this.#vertexColors() || []).map((c) => (c instanceof THREE.Color ? c.toArray() : c)));
45
- this.#segments = this.select('segments');
46
- this.lineGeometry = computed(() => {
47
- const pointValues = this.#pointValues();
48
- const vertexColors = this.#vertexColorValues();
49
- const geometry = this.#segments() ? new LineSegmentsGeometry() : new LineGeometry();
50
- geometry.setPositions(pointValues.flat());
51
- if (vertexColors.length) {
52
- geometry.setColors(vertexColors.flat());
53
- }
54
- return geometry;
55
- });
56
- this.lineMaterial = new LineMaterial();
57
- this.line = computed(() => (this.#segments() ? new LineSegments2() : new Line2()));
58
- this.lineMaterialParameters = computed(() => {
59
- const parameters = this.lineParameters();
60
- const resolution = this.#resolution();
61
- const vertexColors = Boolean(parameters.vertexColors);
62
- if (vertexColors) {
63
- parameters.color = undefined;
64
- }
65
- return {
66
- ...parameters,
67
- vertexColors,
68
- resolution,
69
- dashScale: parameters.dashScale ?? this.lineMaterial.dashScale,
70
- dashSize: parameters.dashSize ?? this.lineMaterial.dashSize,
71
- dashOffset: parameters.dashOffset ?? this.lineMaterial.dashOffset,
72
- gapSize: parameters.gapSize ?? this.lineMaterial.gapSize,
73
- wireframe: parameters.wireframe ?? this.lineMaterial.wireframe,
74
- worldUnits: parameters.worldUnits ?? this.lineMaterial.worldUnits,
75
- };
76
- });
77
- this.set({ segments: false });
78
- requestAnimationFrameInInjectionContext(() => {
79
- this.#disposeGeometry();
80
- this.#computeLineDistances();
81
- });
82
- }
83
- #computeLineDistances() {
84
- const points = this.select('points');
85
- const trigger = computed(() => {
86
- const lineGeometry = this.lineGeometry();
87
- const line = this.lineRef.nativeElement;
88
- const children = this.lineRef.children('nonObjects');
89
- return { points: points(), lineGeometry, line, children: children() };
90
- });
91
- effect(() => {
92
- const { line } = trigger();
93
- if (!line)
94
- return;
95
- line.computeLineDistances();
96
- });
97
- }
98
- #disposeGeometry() {
99
- effect((onCleanup) => {
100
- const lineGeometry = this.lineGeometry();
101
- onCleanup(() => lineGeometry.dispose());
102
- });
103
- }
104
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: NgtsLine, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
105
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.3", type: NgtsLine, isStandalone: true, selector: "ngts-line", inputs: { lineRef: "lineRef", points: "points", segments: "segments" }, usesInheritance: true, ngImport: i0, template: `
106
- <ngt-primitive *args="[line()]" [ref]="lineRef" ngtCompound>
107
- <ngt-primitive *args="[lineGeometry()]" attach="geometry" />
108
- <ngt-primitive
109
- *args="[lineMaterial]"
110
- attach="material"
111
- [resolution]="lineMaterialParameters().resolution"
112
- [color]="lineMaterialParameters().color"
113
- [vertexColors]="lineMaterialParameters().vertexColors"
114
- [linewidth]="lineMaterialParameters().linewidth"
115
- [alphaToCoverage]="lineMaterialParameters().alphaToCoverage"
116
- [dashed]="lineMaterialParameters().dashed"
117
- [dashScale]="lineMaterialParameters().dashScale"
118
- [dashSize]="lineMaterialParameters().dashSize"
119
- [dashOffset]="lineMaterialParameters().dashOffset"
120
- [gapSize]="lineMaterialParameters().gapSize"
121
- [wireframe]="lineMaterialParameters().wireframe"
122
- [worldUnits]="lineMaterialParameters().worldUnits"
123
- />
124
- </ngt-primitive>
125
- `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }] }); }
126
- }
127
- export { NgtsLine };
128
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: NgtsLine, decorators: [{
129
- type: Component,
130
- args: [{
131
- selector: 'ngts-line',
132
- standalone: true,
133
- template: `
134
- <ngt-primitive *args="[line()]" [ref]="lineRef" ngtCompound>
135
- <ngt-primitive *args="[lineGeometry()]" attach="geometry" />
136
- <ngt-primitive
137
- *args="[lineMaterial]"
138
- attach="material"
139
- [resolution]="lineMaterialParameters().resolution"
140
- [color]="lineMaterialParameters().color"
141
- [vertexColors]="lineMaterialParameters().vertexColors"
142
- [linewidth]="lineMaterialParameters().linewidth"
143
- [alphaToCoverage]="lineMaterialParameters().alphaToCoverage"
144
- [dashed]="lineMaterialParameters().dashed"
145
- [dashScale]="lineMaterialParameters().dashScale"
146
- [dashSize]="lineMaterialParameters().dashSize"
147
- [dashOffset]="lineMaterialParameters().dashOffset"
148
- [gapSize]="lineMaterialParameters().gapSize"
149
- [wireframe]="lineMaterialParameters().wireframe"
150
- [worldUnits]="lineMaterialParameters().worldUnits"
151
- />
152
- </ngt-primitive>
153
- `,
154
- imports: [NgtArgs],
155
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
156
- }]
157
- }], ctorParameters: function () { return []; }, propDecorators: { lineRef: [{
158
- type: Input
159
- }], points: [{
160
- type: Input,
161
- args: [{ required: true }]
162
- }], segments: [{
163
- type: Input
164
- }] } });
165
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc29iYS9hYnN0cmFjdGlvbnMvc3JjL2xpbmUvbGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsdUNBQXVDLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0RyxPQUFPLEVBQUUsY0FBYyxFQUFzQixNQUFNLGNBQWMsQ0FBQzs7QUFRbEUsTUEyQmEsUUFBUyxTQUFRLGNBQWM7SUFHeEMsSUFBK0IsTUFBTSxDQUNqQyxNQUFtRztRQUVuRyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBYSxRQUFRLENBQUMsUUFBaUI7UUFDbkMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVRLE1BQU0sQ0FBb0I7SUFDMUIsS0FBSyxDQUE4QjtJQUVuQyxlQUFlLENBQTZCO0lBQzVDLFdBQVcsQ0FFbEI7SUFFTyxPQUFPLENBQXlCO0lBQ2hDLFlBQVksQ0FhbkI7SUFFTyxhQUFhLENBQStCO0lBQzVDLGtCQUFrQixDQUV6QjtJQUVPLFNBQVMsQ0FBMkI7SUF3QzdDO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUFsRkgsWUFBTyxHQUFHLFlBQVksRUFBeUIsQ0FBQztRQVloRCxXQUFNLEdBQUcs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QUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzhHQS9HUSxRQUFRO2tHQUFSLFFBQVEsb0tBeEJQOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQW9CVCw0REFDUyxPQUFPOztTQUdSLFFBQVE7MkZBQVIsUUFBUTtrQkEzQnBCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBb0JUO29CQUNELE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztvQkFDbEIsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ3BDOzBFQUVZLE9BQU87c0JBQWYsS0FBSztnQkFFeUIsTUFBTTtzQkFBcEMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBTVosUUFBUTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENvbXBvbmVudCwgSW5wdXQsIGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgTmd0U3RvcmUsIGluamVjdE5ndFJlZiwgcmVxdWVzdEFuaW1hdGlvbkZyYW1lSW5JbmplY3Rpb25Db250ZXh0IH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBMaW5lMiwgTGluZUdlb21ldHJ5LCBMaW5lTWF0ZXJpYWwsIExpbmVTZWdtZW50czIsIExpbmVTZWdtZW50c0dlb21ldHJ5IH0gZnJvbSAndGhyZWUtc3RkbGliJztcbmltcG9ydCB7IE5ndHNMaW5lSW5wdXRzLCB0eXBlIE5ndHNMaW5lU3RhdGUgfSBmcm9tICcuL2xpbmUtaW5wdXQnO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gICAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgICAgICduZ3RzLWxpbmUnOiBOZ3RzTGluZVN0YXRlO1xuICAgIH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3RzLWxpbmUnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5ndC1wcmltaXRpdmUgKmFyZ3M9XCJbbGluZSgpXVwiIFtyZWZdPVwibGluZVJlZlwiIG5ndENvbXBvdW5kPlxuICAgICAgICAgICAgPG5ndC1wcmltaXRpdmUgKmFyZ3M9XCJbbGluZUdlb21ldHJ5KCldXCIgYXR0YWNoPVwiZ2VvbWV0cnlcIiAvPlxuICAgICAgICAgICAgPG5ndC1wcmltaXRpdmVcbiAgICAgICAgICAgICAgICAqYXJncz1cIltsaW5lTWF0ZXJpYWxdXCJcbiAgICAgICAgICAgICAgICBhdHRhY2g9XCJtYXRlcmlhbFwiXG4gICAgICAgICAgICAgICAgW3Jlc29sdXRpb25dPVwibGluZU1hdGVyaWFsUGFyYW1ldGVycygpLnJlc29sdXRpb25cIlxuICAgICAgICAgICAgICAgIFtjb2xvcl09XCJsaW5lTWF0ZXJpYWxQYXJhbWV0ZXJzKCkuY29sb3JcIlxuICAgICAgICAgICAgICAgIFt2ZXJ0ZXhDb2xvcnNdPVwibGluZU1hdGVyaWFsUGFyYW1ldGVycygpLnZlcnRleENvbG9yc1wiXG4gICAgICAgICAgICAgICAgW2xpbmV3aWR0aF09XCJsaW5lTWF0ZXJpYWxQYXJhbWV0ZXJzKCkubGluZXdpZHRoXCJcbiAgICAgICAgICAgICAgICBbYWxwaGFUb0NvdmVyYWdlXT1cImxpbmVNYXRlcmlhbFBhcmFtZXRlcnMoKS5hbHBoYVRvQ292ZXJhZ2VcIlxuICAgICAgICAgICAgICAgIFtkYXNoZWRdPVwibGluZU1hdGVyaWFsUGFyYW1ldGVycygpLmRhc2hlZFwiXG4gICAgICAgICAgICAgICAgW2Rhc2hTY2FsZV09XCJsaW5lTWF0ZXJpYWxQYXJhbWV0ZXJzKCkuZGFzaFNjYWxlXCJcbiAgICAgICAgICAgICAgICBbZGFzaFNpemVdPVwibGluZU1hdGVyaWFsUGFyYW1ldGVycygpLmRhc2hTaXplXCJcbiAgICAgICAgICAgICAgICBbZGFzaE9mZnNldF09XCJsaW5lTWF0ZXJpYWxQYXJhbWV0ZXJzKCkuZGFzaE9mZnNldFwiXG4gICAgICAgICAgICAgICAgW2dhcFNpemVdPVwibGluZU1hdGVyaWFsUGFyYW1ldGVycygpLmdhcFNpemVcIlxuICAgICAgICAgICAgICAgIFt3aXJlZnJhbWVdPVwibGluZU1hdGVyaWFsUGFyYW1ldGVycygpLndpcmVmcmFtZVwiXG4gICAgICAgICAgICAgICAgW3dvcmxkVW5pdHNdPVwibGluZU1hdGVyaWFsUGFyYW1ldGVycygpLndvcmxkVW5pdHNcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9uZ3QtcHJpbWl0aXZlPlxuICAgIGAsXG4gICAgaW1wb3J0czogW05ndEFyZ3NdLFxuICAgIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c0xpbmUgZXh0ZW5kcyBOZ3RzTGluZUlucHV0cyB7XG4gICAgQElucHV0KCkgbGluZVJlZiA9IGluamVjdE5ndFJlZjxMaW5lU2VnbWVudHMyIHwgTGluZTI+KCk7XG5cbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBzZXQgcG9pbnRzKFxuICAgICAgICBwb2ludHM6IEFycmF5PFRIUkVFLlZlY3RvcjMgfCBUSFJFRS5WZWN0b3IyIHwgW251bWJlciwgbnVtYmVyLCBudW1iZXJdIHwgW251bWJlciwgbnVtYmVyXSB8IG51bWJlcj5cbiAgICApIHtcbiAgICAgICAgdGhpcy5zZXQoeyBwb2ludHMgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHNlZ21lbnRzKHNlZ21lbnRzOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgc2VnbWVudHMgfSk7XG4gICAgfVxuXG4gICAgcmVhZG9ubHkgI3N0b3JlID0gaW5qZWN0KE5ndFN0b3JlKTtcbiAgICByZWFkb25seSAjc2l6ZSA9IHRoaXMuI3N0b3JlLnNlbGVjdCgnc2l6ZScpO1xuXG4gICAgcmVhZG9ubHkgI2xpbmVSZXNvbHV0aW9uID0gdGhpcy5zZWxlY3QoJ3Jlc29sdXRpb24nKTtcbiAgICByZWFkb25seSAjcmVzb2x1dGlvbiA9IGNvbXB1dGVkKCgpID0+XG4gICAgICAgIHRoaXMuI2xpbmVSZXNvbHV0aW9uKCkgPyB0aGlzLiNsaW5lUmVzb2x1dGlvbigpIDogW3RoaXMuI3NpemUoKS53aWR0aCwgdGhpcy4jc2l6ZSgpLmhlaWdodF1cbiAgICApO1xuXG4gICAgcmVhZG9ubHkgI3BvaW50cyA9IHRoaXMuc2VsZWN0KCdwb2ludHMnKTtcbiAgICByZWFkb25seSAjcG9pbnRWYWx1ZXMgPSBjb21wdXRlZCgoKSA9PlxuICAgICAgICB0aGlzLiNwb2ludHMoKS5tYXAoKHApID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGlzQXJyYXkgPSBBcnJheS5pc0FycmF5KHApO1xuICAgICAgICAgICAgcmV0dXJuIHAgaW5zdGFuY2VvZiBUSFJFRS5WZWN0b3IzXG4gICAgICAgICAgICAgICAgPyBbcC54LCBwLnksIHAuel1cbiAgICAgICAgICAgICAgICA6IHAgaW5zdGFuY2VvZiBUSFJFRS5WZWN0b3IyXG4gICAgICAgICAgICAgICAgPyBbcC54LCBwLnksIDBdXG4gICAgICAgICAgICAgICAgOiBpc0FycmF5ICYmIHAubGVuZ3RoID09PSAzXG4gICAgICAgICAgICAgICAgPyBbcFswXSwgcFsxXSwgcFsyXV1cbiAgICAgICAgICAgICAgICA6IGlzQXJyYXkgJiYgcC5sZW5ndGggPT09IDJcbiAgICAgICAgICAgICAgICA/IFtwWzBdLCBwWzFdLCAwXVxuICAgICAgICAgICAgICAgIDogcDtcbiAgICAgICAgfSlcbiAgICApO1xuXG4gICAgcmVhZG9ubHkgI3ZlcnRleENvbG9ycyA9IHRoaXMuc2VsZWN0KCd2ZXJ0ZXhDb2xvcnMnKTtcbiAgICByZWFkb25seSAjdmVydGV4Q29sb3JWYWx1ZXMgPSBjb21wdXRlZCgoKSA9PlxuICAgICAgICAodGhpcy4jdmVydGV4Q29sb3JzKCkgfHwgW10pLm1hcCgoYykgPT4gKGMgaW5zdGFuY2VvZiBUSFJFRS5Db2xvciA/IGMudG9BcnJheSgpIDogYykpXG4gICAgKTtcblxuICAgIHJlYWRvbmx5ICNzZWdtZW50cyA9IHRoaXMuc2VsZWN0KCdzZWdtZW50cycpO1xuICAgIHJlYWRvbmx5IGxpbmVHZW9tZXRyeSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgcG9pbnRWYWx1ZXMgPSB0aGlzLiNwb2ludFZhbHVlcygpO1xuICAgICAgICBjb25zdCB2ZXJ0ZXhDb2xvcnMgPSB0aGlzLiN2ZXJ0ZXhDb2xvclZhbHVlcygpO1xuXG4gICAgICAgIGNvbnN0IGdlb21ldHJ5ID0gdGhpcy4jc2VnbWVudHMoKSA/IG5ldyBMaW5lU2VnbWVudHNHZW9tZXRyeSgpIDogbmV3IExpbmVHZW9tZXRyeSgpO1xuICAgICAgICBnZW9tZXRyeS5zZXRQb3NpdGlvbnMocG9pbnRWYWx1ZXMuZmxhdCgpKTtcblxuICAgICAgICBpZiAodmVydGV4Q29sb3JzLmxlbmd0aCkge1xuICAgICAgICAgICAgZ2VvbWV0cnkuc2V0Q29sb3JzKHZlcnRleENvbG9ycy5mbGF0KCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGdlb21ldHJ5O1xuICAgIH0pO1xuICAgIHJlYWRvbmx5IGxpbmVNYXRlcmlhbCA9IG5ldyBMaW5lTWF0ZXJpYWwoKTtcbiAgICByZWFkb25seSBsaW5lID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMuI3NlZ21lbnRzKCkgPyBuZXcgTGluZVNlZ21lbnRzMigpIDogbmV3IExpbmUyKCkpKTtcblxuICAgIHJlYWRvbmx5IGxpbmVNYXRlcmlhbFBhcmFtZXRlcnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHBhcmFtZXRlcnMgPSB0aGlzLmxpbmVQYXJhbWV0ZXJzKCk7XG4gICAgICAgIGNvbnN0IHJlc29sdXRpb24gPSB0aGlzLiNyZXNvbHV0aW9uKCk7XG5cbiAgICAgICAgY29uc3QgdmVydGV4Q29sb3JzID0gQm9vbGVhbihwYXJhbWV0ZXJzLnZlcnRleENvbG9ycyk7XG5cbiAgICAgICAgaWYgKHZlcnRleENvbG9ycykge1xuICAgICAgICAgICAgcGFyYW1ldGVycy5jb2xvciA9IHVuZGVmaW5lZCE7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4ucGFyYW1ldGVycyxcbiAgICAgICAgICAgIHZlcnRleENvbG9ycyxcbiAgICAgICAgICAgIHJlc29sdXRpb24sXG4gICAgICAgICAgICBkYXNoU2NhbGU6IHBhcmFtZXRlcnMuZGFzaFNjYWxlID8/IHRoaXMubGluZU1hdGVyaWFsLmRhc2hTY2FsZSxcbiAgICAgICAgICAgIGRhc2hTaXplOiBwYXJhbWV0ZXJzLmRhc2hTaXplID8/IHRoaXMubGluZU1hdGVyaWFsLmRhc2hTaXplLFxuICAgICAgICAgICAgZGFzaE9mZnNldDogcGFyYW1ldGVycy5kYXNoT2Zmc2V0ID8/IHRoaXMubGluZU1hdGVyaWFsLmRhc2hPZmZzZXQsXG4gICAgICAgICAgICBnYXBTaXplOiBwYXJhbWV0ZXJzLmdhcFNpemUgPz8gdGhpcy5saW5lTWF0ZXJpYWwuZ2FwU2l6ZSxcbiAgICAgICAgICAgIHdpcmVmcmFtZTogcGFyYW1ldGVycy53aXJlZnJhbWUgPz8gdGhpcy5saW5lTWF0ZXJpYWwud2lyZWZyYW1lLFxuICAgICAgICAgICAgd29ybGRVbml0czogcGFyYW1ldGVycy53b3JsZFVuaXRzID8/IHRoaXMubGluZU1hdGVyaWFsLndvcmxkVW5pdHMsXG4gICAgICAgIH07XG4gICAgfSk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5zZXQoeyBzZWdtZW50czogZmFsc2UgfSk7XG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZUluSW5qZWN0aW9uQ29udGV4dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLiNkaXNwb3NlR2VvbWV0cnkoKTtcbiAgICAgICAgICAgIHRoaXMuI2NvbXB1dGVMaW5lRGlzdGFuY2VzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgICNjb21wdXRlTGluZURpc3RhbmNlcygpIHtcbiAgICAgICAgY29uc3QgcG9pbnRzID0gdGhpcy5zZWxlY3QoJ3BvaW50cycpO1xuICAgICAgICBjb25zdCB0cmlnZ2VyID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbGluZUdlb21ldHJ5ID0gdGhpcy5saW5lR2VvbWV0cnkoKTtcbiAgICAgICAgICAgIGNvbnN0IGxpbmUgPSB0aGlzLmxpbmVSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkcmVuID0gdGhpcy5saW5lUmVmLmNoaWxkcmVuKCdub25PYmplY3RzJyk7XG4gICAgICAgICAgICByZXR1cm4geyBwb2ludHM6IHBvaW50cygpLCBsaW5lR2VvbWV0cnksIGxpbmUsIGNoaWxkcmVuOiBjaGlsZHJlbigpIH07XG4gICAgICAgIH0pO1xuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBsaW5lIH0gPSB0cmlnZ2VyKCk7XG4gICAgICAgICAgICBpZiAoIWxpbmUpIHJldHVybjtcbiAgICAgICAgICAgIGxpbmUuY29tcHV0ZUxpbmVEaXN0YW5jZXMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgI2Rpc3Bvc2VHZW9tZXRyeSgpIHtcbiAgICAgICAgZWZmZWN0KChvbkNsZWFudXApID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxpbmVHZW9tZXRyeSA9IHRoaXMubGluZUdlb21ldHJ5KCk7XG4gICAgICAgICAgICBvbkNsZWFudXAoKCkgPT4gbGluZUdlb21ldHJ5LmRpc3Bvc2UoKSk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,128 +0,0 @@
1
- import { Component, Input, computed, effect } from '@angular/core';
2
- import { injectNgtRef } from 'angular-three';
3
- import * as THREE from 'three';
4
- import { NgtsLine } from '../line/line';
5
- import { NgtsLineInputs } from '../line/line-input';
6
- import * as i0 from "@angular/core";
7
- const v = new THREE.Vector3();
8
- class NgtsQuadraticBezierLine extends NgtsLineInputs {
9
- set start(start) {
10
- this.set({ start });
11
- }
12
- set end(end) {
13
- this.set({ end });
14
- }
15
- set mid(mid) {
16
- this.set({ mid });
17
- }
18
- set segments(segments) {
19
- this.set({ segments });
20
- }
21
- #curve;
22
- #start;
23
- #end;
24
- #mid;
25
- #segments;
26
- constructor() {
27
- super();
28
- this.lineRef = injectNgtRef();
29
- this.#curve = new THREE.QuadraticBezierCurve3(undefined, undefined, undefined);
30
- this.#start = this.select('start');
31
- this.#end = this.select('end');
32
- this.#mid = this.select('mid');
33
- this.#segments = this.select('segments');
34
- this.points = computed(() => this.#getPoints(this.#start(), this.#end(), this.#mid(), this.#segments()));
35
- this.set({ start: [0, 0, 0], end: [0, 0, 0], segments: 20 });
36
- this.#replaceSetPoints();
37
- }
38
- #replaceSetPoints() {
39
- effect(() => {
40
- const line = this.lineRef.nativeElement;
41
- if (!line)
42
- return;
43
- line.setPoints = (start, end, mid) => {
44
- const points = this.#getPoints(start, end, mid);
45
- if (line.geometry) {
46
- line.geometry.setPositions(points.map((p) => p.toArray()).flat());
47
- }
48
- };
49
- });
50
- }
51
- #getPoints(start, end, mid, segments = 20) {
52
- if (start instanceof THREE.Vector3)
53
- this.#curve.v0.copy(start);
54
- else
55
- this.#curve.v0.set(...start);
56
- if (end instanceof THREE.Vector3)
57
- this.#curve.v2.copy(end);
58
- else
59
- this.#curve.v2.set(...end);
60
- if (mid instanceof THREE.Vector3) {
61
- this.#curve.v1.copy(mid);
62
- }
63
- else {
64
- this.#curve.v1.copy(this.#curve.v0
65
- .clone()
66
- .add(this.#curve.v2.clone().sub(this.#curve.v0))
67
- .add(v.set(0, this.#curve.v0.y - this.#curve.v2.y, 0)));
68
- }
69
- return this.#curve.getPoints(segments);
70
- }
71
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: NgtsQuadraticBezierLine, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
72
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.3", type: NgtsQuadraticBezierLine, isStandalone: true, selector: "ngts-quadratic-bezier-line", inputs: { lineRef: "lineRef", start: "start", end: "end", mid: "mid", segments: "segments" }, usesInheritance: true, ngImport: i0, template: `
73
- <ngts-line
74
- [lineRef]="lineRef"
75
- [points]="points()"
76
- [color]="lineParameters().color"
77
- [vertexColors]="lineParameters().vertexColors"
78
- [resolution]="lineParameters().resolution"
79
- [lineWidth]="lineParameters().linewidth"
80
- [alphaToCoverage]="lineParameters().alphaToCoverage"
81
- [dashed]="lineParameters().dashed"
82
- [dashScale]="lineParameters().dashScale"
83
- [dashSize]="lineParameters().dashSize"
84
- [dashOffset]="lineParameters().dashOffset"
85
- [gapSize]="lineParameters().gapSize"
86
- [wireframe]="lineParameters().wireframe"
87
- [worldUnits]="lineParameters().worldUnits"
88
- />
89
- `, isInline: true, dependencies: [{ kind: "component", type: NgtsLine, selector: "ngts-line", inputs: ["lineRef", "points", "segments"] }] }); }
90
- }
91
- export { NgtsQuadraticBezierLine };
92
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: NgtsQuadraticBezierLine, decorators: [{
93
- type: Component,
94
- args: [{
95
- selector: 'ngts-quadratic-bezier-line',
96
- standalone: true,
97
- template: `
98
- <ngts-line
99
- [lineRef]="lineRef"
100
- [points]="points()"
101
- [color]="lineParameters().color"
102
- [vertexColors]="lineParameters().vertexColors"
103
- [resolution]="lineParameters().resolution"
104
- [lineWidth]="lineParameters().linewidth"
105
- [alphaToCoverage]="lineParameters().alphaToCoverage"
106
- [dashed]="lineParameters().dashed"
107
- [dashScale]="lineParameters().dashScale"
108
- [dashSize]="lineParameters().dashSize"
109
- [dashOffset]="lineParameters().dashOffset"
110
- [gapSize]="lineParameters().gapSize"
111
- [wireframe]="lineParameters().wireframe"
112
- [worldUnits]="lineParameters().worldUnits"
113
- />
114
- `,
115
- imports: [NgtsLine],
116
- }]
117
- }], ctorParameters: function () { return []; }, propDecorators: { lineRef: [{
118
- type: Input
119
- }], start: [{
120
- type: Input
121
- }], end: [{
122
- type: Input
123
- }], mid: [{
124
- type: Input
125
- }], segments: [{
126
- type: Input
127
- }] } });
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhZHJhdGljLWJlemllci1saW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL2Fic3RyYWN0aW9ucy9zcmMvcXVhZHJhdGljLWJlemllci1saW5lL3F1YWRyYXRpYy1iZXppZXItbGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0MsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFFL0IsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBVXBELE1BQU0sQ0FBQyxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBRTlCLE1BdUJhLHVCQUF3QixTQUFRLGNBQWM7SUFHdkQsSUFBYSxLQUFLLENBQUMsS0FBK0M7UUFDOUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQWEsR0FBRyxDQUFDLEdBQTZDO1FBQzFELElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFhLEdBQUcsQ0FBQyxHQUE2QztRQUMxRCxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBYSxRQUFRLENBQUMsUUFBZ0I7UUFDbEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVRLE1BQU0sQ0FBdUU7SUFFN0UsTUFBTSxDQUF3QjtJQUM5QixJQUFJ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Q0FBQyxFQUFFO2lCQUNULEtBQUssRUFBRTtpQkFDUCxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQy9DLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQzdELENBQUM7U0FDTDtRQUNELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0MsQ0FBQzs4R0E3RVEsdUJBQXVCO2tHQUF2Qix1QkFBdUIsMk1BcEJ0Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FpQlQsNERBQ1MsUUFBUTs7U0FFVCx1QkFBdUI7MkZBQXZCLHVCQUF1QjtrQkF2Qm5DLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDRCQUE0QjtvQkFDdEMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FpQlQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2lCQUN0QjswRUFFWSxPQUFPO3NCQUFmLEtBQUs7Z0JBRU8sS0FBSztzQkFBakIsS0FBSztnQkFJTyxHQUFHO3NCQUFmLEtBQUs7Z0JBSU8sR0FBRztzQkFBZixLQUFLO2dCQUlPLFFBQVE7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBjb21wdXRlZCwgZWZmZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbmplY3ROZ3RSZWYgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IExpbmUyIH0gZnJvbSAndGhyZWUtc3RkbGliJztcbmltcG9ydCB7IE5ndHNMaW5lIH0gZnJvbSAnLi4vbGluZS9saW5lJztcbmltcG9ydCB7IE5ndHNMaW5lSW5wdXRzIH0gZnJvbSAnLi4vbGluZS9saW5lLWlucHV0JztcblxuZGVjbGFyZSBtb2R1bGUgJy4uL2xpbmUvbGluZS1pbnB1dCcge1xuICAgIGludGVyZmFjZSBOZ3RzTGluZVN0YXRlIHtcbiAgICAgICAgc3RhcnQ6IFRIUkVFLlZlY3RvcjMgfCBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl07XG4gICAgICAgIGVuZDogVEhSRUUuVmVjdG9yMyB8IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXTtcbiAgICAgICAgbWlkPzogVEhSRUUuVmVjdG9yMyB8IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXTtcbiAgICB9XG59XG5cbmNvbnN0IHYgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndHMtcXVhZHJhdGljLWJlemllci1saW5lJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxuZ3RzLWxpbmVcbiAgICAgICAgICAgIFtsaW5lUmVmXT1cImxpbmVSZWZcIlxuICAgICAgICAgICAgW3BvaW50c109XCJwb2ludHMoKVwiXG4gICAgICAgICAgICBbY29sb3JdPVwibGluZVBhcmFtZXRlcnMoKS5jb2xvclwiXG4gICAgICAgICAgICBbdmVydGV4Q29sb3JzXT1cImxpbmVQYXJhbWV0ZXJzKCkudmVydGV4Q29sb3JzXCJcbiAgICAgICAgICAgIFtyZXNvbHV0aW9uXT1cImxpbmVQYXJhbWV0ZXJzKCkucmVzb2x1dGlvblwiXG4gICAgICAgICAgICBbbGluZVdpZHRoXT1cImxpbmVQYXJhbWV0ZXJzKCkubGluZXdpZHRoXCJcbiAgICAgICAgICAgIFthbHBoYVRvQ292ZXJhZ2VdPVwibGluZVBhcmFtZXRlcnMoKS5hbHBoYVRvQ292ZXJhZ2VcIlxuICAgICAgICAgICAgW2Rhc2hlZF09XCJsaW5lUGFyYW1ldGVycygpLmRhc2hlZFwiXG4gICAgICAgICAgICBbZGFzaFNjYWxlXT1cImxpbmVQYXJhbWV0ZXJzKCkuZGFzaFNjYWxlXCJcbiAgICAgICAgICAgIFtkYXNoU2l6ZV09XCJsaW5lUGFyYW1ldGVycygpLmRhc2hTaXplXCJcbiAgICAgICAgICAgIFtkYXNoT2Zmc2V0XT1cImxpbmVQYXJhbWV0ZXJzKCkuZGFzaE9mZnNldFwiXG4gICAgICAgICAgICBbZ2FwU2l6ZV09XCJsaW5lUGFyYW1ldGVycygpLmdhcFNpemVcIlxuICAgICAgICAgICAgW3dpcmVmcmFtZV09XCJsaW5lUGFyYW1ldGVycygpLndpcmVmcmFtZVwiXG4gICAgICAgICAgICBbd29ybGRVbml0c109XCJsaW5lUGFyYW1ldGVycygpLndvcmxkVW5pdHNcIlxuICAgICAgICAvPlxuICAgIGAsXG4gICAgaW1wb3J0czogW05ndHNMaW5lXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c1F1YWRyYXRpY0JlemllckxpbmUgZXh0ZW5kcyBOZ3RzTGluZUlucHV0cyB7XG4gICAgQElucHV0KCkgbGluZVJlZiA9IGluamVjdE5ndFJlZjxMaW5lMj4oKTtcblxuICAgIEBJbnB1dCgpIHNldCBzdGFydChzdGFydDogVEhSRUUuVmVjdG9yMyB8IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSkge1xuICAgICAgICB0aGlzLnNldCh7IHN0YXJ0IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBlbmQoZW5kOiBUSFJFRS5WZWN0b3IzIHwgW251bWJlciwgbnVtYmVyLCBudW1iZXJdKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZW5kIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBtaWQobWlkOiBUSFJFRS5WZWN0b3IzIHwgW251bWJlciwgbnVtYmVyLCBudW1iZXJdKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgbWlkIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBzZWdtZW50cyhzZWdtZW50czogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgc2VnbWVudHMgfSk7XG4gICAgfVxuXG4gICAgcmVhZG9ubHkgI2N1cnZlID0gbmV3IFRIUkVFLlF1YWRyYXRpY0JlemllckN1cnZlMyh1bmRlZmluZWQhLCB1bmRlZmluZWQhLCB1bmRlZmluZWQhKTtcblxuICAgIHJlYWRvbmx5ICNzdGFydCA9IHRoaXMuc2VsZWN0KCdzdGFydCcpO1xuICAgIHJlYWRvbmx5ICNlbmQgPSB0aGlzLnNlbGVjdCgnZW5kJyk7XG4gICAgcmVhZG9ubHkgI21pZCA9IHRoaXMuc2VsZWN0KCdtaWQnKTtcbiAgICByZWFkb25seSAjc2VnbWVudHMgPSB0aGlzLnNlbGVjdCgnc2VnbWVudHMnKTtcbiAgICByZWFkb25seSBwb2ludHMgPSBjb21wdXRlZCgoKSA9PlxuICAgICAgICB0aGlzLiNnZXRQb2ludHModGhpcy4jc3RhcnQoKSwgdGhpcy4jZW5kKCksIHRoaXMuI21pZCgpLCB0aGlzLiNzZWdtZW50cygpIGFzIG51bWJlcilcbiAgICApO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc2V0KHsgc3RhcnQ6IFswLCAwLCAwXSwgZW5kOiBbMCwgMCwgMF0sIHNlZ21lbnRzOiAyMCB9KTtcbiAgICAgICAgdGhpcy4jcmVwbGFjZVNldFBvaW50cygpO1xuICAgIH1cblxuICAgICNyZXBsYWNlU2V0UG9pbnRzKCkge1xuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbGluZSA9IHRoaXMubGluZVJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgaWYgKCFsaW5lKSByZXR1cm47XG4gICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgbGluZSBhcyB1bmtub3duIGFzIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0UG9pbnRzOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydDogVEhSRUUuVmVjdG9yMyB8IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZDogVEhSRUUuVmVjdG9yMyB8IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pZDogVEhSRUUuVmVjdG9yMyB8IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXVxuICAgICAgICAgICAgICAgICAgICApID0+IHZvaWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKS5zZXRQb2ludHMgPSAoc3RhcnQsIGVuZCwgbWlkKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcG9pbnRzID0gdGhpcy4jZ2V0UG9pbnRzKHN0YXJ0LCBlbmQsIG1pZCk7XG4gICAgICAgICAgICAgICAgaWYgKGxpbmUuZ2VvbWV0cnkpIHtcbiAgICAgICAgICAgICAgICAgICAgbGluZS5nZW9tZXRyeS5zZXRQb3NpdGlvbnMocG9pbnRzLm1hcCgocCkgPT4gcC50b0FycmF5KCkpLmZsYXQoKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgI2dldFBvaW50cyhcbiAgICAgICAgc3RhcnQ6IFRIUkVFLlZlY3RvcjMgfCBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl0sXG4gICAgICAgIGVuZDogVEhSRUUuVmVjdG9yMyB8IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSxcbiAgICAgICAgbWlkPzogVEhSRUUuVmVjdG9yMyB8IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSxcbiAgICAgICAgc2VnbWVudHMgPSAyMFxuICAgICkge1xuICAgICAgICBpZiAoc3RhcnQgaW5zdGFuY2VvZiBUSFJFRS5WZWN0b3IzKSB0aGlzLiNjdXJ2ZS52MC5jb3B5KHN0YXJ0KTtcbiAgICAgICAgZWxzZSB0aGlzLiNjdXJ2ZS52MC5zZXQoLi4uKHN0YXJ0IGFzIFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSkpO1xuICAgICAgICBpZiAoZW5kIGluc3RhbmNlb2YgVEhSRUUuVmVjdG9yMykgdGhpcy4jY3VydmUudjIuY29weShlbmQpO1xuICAgICAgICBlbHNlIHRoaXMuI2N1cnZlLnYyLnNldCguLi4oZW5kIGFzIFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSkpO1xuICAgICAgICBpZiAobWlkIGluc3RhbmNlb2YgVEhSRUUuVmVjdG9yMykge1xuICAgICAgICAgICAgdGhpcy4jY3VydmUudjEuY29weShtaWQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy4jY3VydmUudjEuY29weShcbiAgICAgICAgICAgICAgICB0aGlzLiNjdXJ2ZS52MFxuICAgICAgICAgICAgICAgICAgICAuY2xvbmUoKVxuICAgICAgICAgICAgICAgICAgICAuYWRkKHRoaXMuI2N1cnZlLnYyLmNsb25lKCkuc3ViKHRoaXMuI2N1cnZlLnYwKSlcbiAgICAgICAgICAgICAgICAgICAgLmFkZCh2LnNldCgwLCB0aGlzLiNjdXJ2ZS52MC55IC0gdGhpcy4jY3VydmUudjIueSwgMCkpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLiNjdXJ2ZS5nZXRQb2ludHMoc2VnbWVudHMpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,46 +0,0 @@
1
- import { Directive, effect, inject, Input, signal, untracked } from '@angular/core';
2
- import { NgtStore } from 'angular-three';
3
- import * as i0 from "@angular/core";
4
- class NgtsAdaptiveDpr {
5
- #pixelated = signal(false);
6
- set pixelated(pixelated) {
7
- this.#pixelated.set(pixelated);
8
- }
9
- constructor() {
10
- const store = inject(NgtStore);
11
- effect((onCleanup) => {
12
- const domElement = store.get('gl', 'domElement');
13
- onCleanup(() => {
14
- const active = store.get('internal', 'active');
15
- const setDpr = store.get('setDpr');
16
- const initialDpr = store.get('viewport', 'initialDpr');
17
- if (active)
18
- setDpr(initialDpr);
19
- if (untracked(this.#pixelated) && domElement)
20
- domElement.style.imageRendering = 'auto';
21
- });
22
- }, { allowSignalWrites: true });
23
- const performanceCurrent = store.select('performance', 'current');
24
- // TODO: mousemove event doesn't seem to trigger change detection. investigate later
25
- effect(() => {
26
- const current = performanceCurrent();
27
- const { gl, viewport, setDpr } = store.get();
28
- setDpr(current * viewport.initialDpr);
29
- if (untracked(this.#pixelated) && gl.domElement)
30
- gl.domElement.style.imageRendering = current === 1 ? 'auto' : 'pixelated';
31
- }, { allowSignalWrites: true });
32
- }
33
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: NgtsAdaptiveDpr, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
34
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.3", type: NgtsAdaptiveDpr, isStandalone: true, selector: "ngts-adaptive-dpr", inputs: { pixelated: "pixelated" }, ngImport: i0 }); }
35
- }
36
- export { NgtsAdaptiveDpr };
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: NgtsAdaptiveDpr, decorators: [{
38
- type: Directive,
39
- args: [{
40
- selector: 'ngts-adaptive-dpr',
41
- standalone: true,
42
- }]
43
- }], ctorParameters: function () { return []; }, propDecorators: { pixelated: [{
44
- type: Input
45
- }] } });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRpdmUtZHByLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL3BlcmZvcm1hbmNlL3NyYy9hZGFwdGl2ZS9hZGFwdGl2ZS1kcHIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRXpDLE1BSWEsZUFBZTtJQUN4QixVQUFVLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLElBQWEsU0FBUyxDQUFDLFNBQWtCO1FBQ3JDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRDtRQUNJLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvQixNQUFNLENBQ0YsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNWLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDO1lBQ2pELFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1gsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQy9DLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ25DLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxDQUFDO2dCQUN2RCxJQUFJLE1BQU07b0JBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUMvQixJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksVUFBVTtvQkFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUM7WUFDM0YsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLEVBQ0QsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FDOUIsQ0FBQztRQUVGLE1BQU0sa0JBQWtCLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDbEUsb0ZBQW9GO1FBQ3BGLE1BQU0sQ0FDRixHQUFHLEVBQUU7WUFDRCxNQUFNLE9BQU8sR0FBRyxrQkFBa0IsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUM3QyxNQUFNLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN0QyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLFVBQVU7Z0JBQzNDLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLGNBQWMsR0FBRyxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztRQUNsRixDQUFDLEVBQ0QsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FDOUIsQ0FBQztJQUNOLENBQUM7OEdBbENRLGVBQWU7a0dBQWYsZUFBZTs7U0FBZixlQUFlOzJGQUFmLGVBQWU7a0JBSjNCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsVUFBVSxFQUFFLElBQUk7aUJBQ25COzBFQUdnQixTQUFTO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBlZmZlY3QsIGluamVjdCwgSW5wdXQsIHNpZ25hbCwgdW50cmFja2VkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RTdG9yZSB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ25ndHMtYWRhcHRpdmUtZHByJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzQWRhcHRpdmVEcHIge1xuICAgICNwaXhlbGF0ZWQgPSBzaWduYWwoZmFsc2UpO1xuICAgIEBJbnB1dCgpIHNldCBwaXhlbGF0ZWQocGl4ZWxhdGVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuI3BpeGVsYXRlZC5zZXQocGl4ZWxhdGVkKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgY29uc3Qgc3RvcmUgPSBpbmplY3QoTmd0U3RvcmUpO1xuICAgICAgICBlZmZlY3QoXG4gICAgICAgICAgICAob25DbGVhbnVwKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZG9tRWxlbWVudCA9IHN0b3JlLmdldCgnZ2wnLCAnZG9tRWxlbWVudCcpO1xuICAgICAgICAgICAgICAgIG9uQ2xlYW51cCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFjdGl2ZSA9IHN0b3JlLmdldCgnaW50ZXJuYWwnLCAnYWN0aXZlJyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNldERwciA9IHN0b3JlLmdldCgnc2V0RHByJyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGluaXRpYWxEcHIgPSBzdG9yZS5nZXQoJ3ZpZXdwb3J0JywgJ2luaXRpYWxEcHInKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGFjdGl2ZSkgc2V0RHByKGluaXRpYWxEcHIpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodW50cmFja2VkKHRoaXMuI3BpeGVsYXRlZCkgJiYgZG9tRWxlbWVudCkgZG9tRWxlbWVudC5zdHlsZS5pbWFnZVJlbmRlcmluZyA9ICdhdXRvJztcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBwZXJmb3JtYW5jZUN1cnJlbnQgPSBzdG9yZS5zZWxlY3QoJ3BlcmZvcm1hbmNlJywgJ2N1cnJlbnQnKTtcbiAgICAgICAgLy8gVE9ETzogbW91c2Vtb3ZlIGV2ZW50IGRvZXNuJ3Qgc2VlbSB0byB0cmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb24uIGludmVzdGlnYXRlIGxhdGVyXG4gICAgICAgIGVmZmVjdChcbiAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjdXJyZW50ID0gcGVyZm9ybWFuY2VDdXJyZW50KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBnbCwgdmlld3BvcnQsIHNldERwciB9ID0gc3RvcmUuZ2V0KCk7XG4gICAgICAgICAgICAgICAgc2V0RHByKGN1cnJlbnQgKiB2aWV3cG9ydC5pbml0aWFsRHByKTtcbiAgICAgICAgICAgICAgICBpZiAodW50cmFja2VkKHRoaXMuI3BpeGVsYXRlZCkgJiYgZ2wuZG9tRWxlbWVudClcbiAgICAgICAgICAgICAgICAgICAgZ2wuZG9tRWxlbWVudC5zdHlsZS5pbWFnZVJlbmRlcmluZyA9IGN1cnJlbnQgPT09IDEgPyAnYXV0bycgOiAncGl4ZWxhdGVkJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
@@ -1,31 +0,0 @@
1
- import { Directive, effect, inject } from '@angular/core';
2
- import { NgtStore } from 'angular-three';
3
- import * as i0 from "@angular/core";
4
- class NgtsAdaptiveEvents {
5
- constructor() {
6
- const store = inject(NgtStore);
7
- effect((onCleanup) => {
8
- const enabled = store.get('events', 'enabled');
9
- onCleanup(() => {
10
- const setEvents = store.get('setEvents');
11
- setEvents({ enabled });
12
- });
13
- }, { allowSignalWrites: true });
14
- const performanceCurrent = store.select('performance', 'current');
15
- effect(() => {
16
- const setEvents = store.get('setEvents');
17
- setEvents({ enabled: performanceCurrent() === 1 });
18
- }, { allowSignalWrites: true });
19
- }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: NgtsAdaptiveEvents, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
21
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.3", type: NgtsAdaptiveEvents, isStandalone: true, selector: "ngts-adaptive-events", ngImport: i0 }); }
22
- }
23
- export { NgtsAdaptiveEvents };
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: NgtsAdaptiveEvents, decorators: [{
25
- type: Directive,
26
- args: [{
27
- selector: 'ngts-adaptive-events',
28
- standalone: true,
29
- }]
30
- }], ctorParameters: function () { return []; } });
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRpdmUtZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL3BlcmZvcm1hbmNlL3NyYy9hZGFwdGl2ZS9hZGFwdGl2ZS1ldmVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRXpDLE1BSWEsa0JBQWtCO0lBQzNCO1FBQ0ksTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9CLE1BQU0sQ0FDRixDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ1YsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDL0MsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDWCxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUN6QyxTQUFTLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQzNCLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxFQUNELEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQzlCLENBQUM7UUFFRixNQUFNLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sQ0FDRixHQUFHLEVBQUU7WUFDRCxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3pDLFNBQVMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdkQsQ0FBQyxFQUNELEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQzlCLENBQUM7SUFDTixDQUFDOzhHQXRCUSxrQkFBa0I7a0dBQWxCLGtCQUFrQjs7U0FBbEIsa0JBQWtCOzJGQUFsQixrQkFBa0I7a0JBSjlCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsVUFBVSxFQUFFLElBQUk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBlZmZlY3QsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0U3RvcmUgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICduZ3RzLWFkYXB0aXZlLWV2ZW50cycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c0FkYXB0aXZlRXZlbnRzIHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgY29uc3Qgc3RvcmUgPSBpbmplY3QoTmd0U3RvcmUpO1xuICAgICAgICBlZmZlY3QoXG4gICAgICAgICAgICAob25DbGVhbnVwKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZW5hYmxlZCA9IHN0b3JlLmdldCgnZXZlbnRzJywgJ2VuYWJsZWQnKTtcbiAgICAgICAgICAgICAgICBvbkNsZWFudXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZXRFdmVudHMgPSBzdG9yZS5nZXQoJ3NldEV2ZW50cycpO1xuICAgICAgICAgICAgICAgICAgICBzZXRFdmVudHMoeyBlbmFibGVkIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IHBlcmZvcm1hbmNlQ3VycmVudCA9IHN0b3JlLnNlbGVjdCgncGVyZm9ybWFuY2UnLCAnY3VycmVudCcpO1xuICAgICAgICBlZmZlY3QoXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2V0RXZlbnRzID0gc3RvcmUuZ2V0KCdzZXRFdmVudHMnKTtcbiAgICAgICAgICAgICAgICBzZXRFdmVudHMoeyBlbmFibGVkOiBwZXJmb3JtYW5jZUN1cnJlbnQoKSA9PT0gMSB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './index';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10aHJlZS1zb2JhLXBlcmZvcm1hbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL3BlcmZvcm1hbmNlL3NyYy9hbmd1bGFyLXRocmVlLXNvYmEtcGVyZm9ybWFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
@@ -1,61 +0,0 @@
1
- import { Component, computed, CUSTOM_ELEMENTS_SCHEMA, effect, Input } from '@angular/core';
2
- import { extend, injectNgtRef, NgtSignalStore } from 'angular-three';
3
- import { LOD } from 'three';
4
- import * as i0 from "@angular/core";
5
- extend({ LOD });
6
- class NgtsDetailed extends NgtSignalStore {
7
- set distances(distances) {
8
- this.set({ distances });
9
- }
10
- constructor() {
11
- super();
12
- this.lodRef = injectNgtRef();
13
- this.#updateChildren();
14
- }
15
- onLODBeforeRender({ object, state }) {
16
- object.update(state.camera);
17
- }
18
- #updateChildren() {
19
- const distances = this.select('distances');
20
- const trigger = computed(() => {
21
- const children = this.lodRef.children();
22
- return { children: children(), distances: distances() };
23
- });
24
- effect(() => {
25
- const { children, distances } = trigger();
26
- const lod = this.lodRef.untracked;
27
- if (lod) {
28
- lod.levels.length = 0;
29
- children.forEach((child, index) => {
30
- lod.addLevel(child, distances[index]);
31
- });
32
- }
33
- });
34
- }
35
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: NgtsDetailed, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
36
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.3", type: NgtsDetailed, isStandalone: true, selector: "ngts-detailed", inputs: { lodRef: "lodRef", distances: "distances" }, usesInheritance: true, ngImport: i0, template: `
37
- <ngt-lOD ngtCompound [ref]="lodRef" (beforeRender)="onLODBeforeRender($event)">
38
- <ng-content />
39
- </ngt-lOD>
40
- `, isInline: true }); }
41
- }
42
- export { NgtsDetailed };
43
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: NgtsDetailed, decorators: [{
44
- type: Component,
45
- args: [{
46
- selector: 'ngts-detailed',
47
- standalone: true,
48
- template: `
49
- <ngt-lOD ngtCompound [ref]="lodRef" (beforeRender)="onLODBeforeRender($event)">
50
- <ng-content />
51
- </ngt-lOD>
52
- `,
53
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
54
- }]
55
- }], ctorParameters: function () { return []; }, propDecorators: { lodRef: [{
56
- type: Input
57
- }], distances: [{
58
- type: Input,
59
- args: [{ required: true }]
60
- }] } });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV0YWlsZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvcGVyZm9ybWFuY2Uvc3JjL2RldGFpbGVkL2RldGFpbGVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUEwQyxNQUFNLGVBQWUsQ0FBQztBQUM3RyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sT0FBTyxDQUFDOztBQUU1QixNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0FBWWhCLE1BVWEsWUFBYSxTQUFRLGNBQWlDO0lBRy9ELElBQStCLFNBQVMsQ0FBQyxTQUFtQjtRQUN4RCxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQ7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQVBILFdBQU0sR0FBRyxZQUFZLEVBQU8sQ0FBQztRQVFsQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBbUM7UUFDaEUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELGVBQWU7UUFDWCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNDLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDMUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN4QyxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUFDO1FBQzVELENBQUMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNSLE1BQU0sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUM7WUFDMUMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7WUFDbEMsSUFBSSxHQUFHLEVBQUU7Z0JBQ0wsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO2dCQUN0QixRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFO29CQUM5QixHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDMUMsQ0FBQyxDQUFDLENBQUM7YUFDTjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0FoQ1EsWUFBWTtrR0FBWixZQUFZLHNKQVBYOzs7O0tBSVQ7O1NBR1EsWUFBWTsyRkFBWixZQUFZO2tCQVZ4QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxlQUFlO29CQUN6QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7O0tBSVQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ3BDOzBFQUVZLE1BQU07c0JBQWQsS0FBSztnQkFFeUIsU0FBUztzQkFBdkMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBlZmZlY3QsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBleHRlbmQsIGluamVjdE5ndFJlZiwgTmd0U2lnbmFsU3RvcmUsIHR5cGUgTmd0QmVmb3JlUmVuZGVyRXZlbnQsIHR5cGUgTmd0TE9EIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBMT0QgfSBmcm9tICd0aHJlZSc7XG5cbmV4dGVuZCh7IExPRCB9KTtcblxuZXhwb3J0IGludGVyZmFjZSBOZ3RzRGV0YWlsZWRTdGF0ZSB7XG4gICAgZGlzdGFuY2VzOiBudW1iZXJbXTtcbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICAgIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgICAgICAnbmd0cy1kZXRhaWxlZCc6IE5ndHNEZXRhaWxlZFN0YXRlICYgTmd0TE9EO1xuICAgIH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3RzLWRldGFpbGVkJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxuZ3QtbE9EIG5ndENvbXBvdW5kIFtyZWZdPVwibG9kUmVmXCIgKGJlZm9yZVJlbmRlcik9XCJvbkxPREJlZm9yZVJlbmRlcigkZXZlbnQpXCI+XG4gICAgICAgICAgICA8bmctY29udGVudCAvPlxuICAgICAgICA8L25ndC1sT0Q+XG4gICAgYCxcbiAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNEZXRhaWxlZCBleHRlbmRzIE5ndFNpZ25hbFN0b3JlPE5ndHNEZXRhaWxlZFN0YXRlPiB7XG4gICAgQElucHV0KCkgbG9kUmVmID0gaW5qZWN0Tmd0UmVmPExPRD4oKTtcblxuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHNldCBkaXN0YW5jZXMoZGlzdGFuY2VzOiBudW1iZXJbXSkge1xuICAgICAgICB0aGlzLnNldCh7IGRpc3RhbmNlcyB9KTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy4jdXBkYXRlQ2hpbGRyZW4oKTtcbiAgICB9XG5cbiAgICBvbkxPREJlZm9yZVJlbmRlcih7IG9iamVjdCwgc3RhdGUgfTogTmd0QmVmb3JlUmVuZGVyRXZlbnQ8VEhSRUUuTE9EPikge1xuICAgICAgICBvYmplY3QudXBkYXRlKHN0YXRlLmNhbWVyYSk7XG4gICAgfVxuXG4gICAgI3VwZGF0ZUNoaWxkcmVuKCkge1xuICAgICAgICBjb25zdCBkaXN0YW5jZXMgPSB0aGlzLnNlbGVjdCgnZGlzdGFuY2VzJyk7XG4gICAgICAgIGNvbnN0IHRyaWdnZXIgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjaGlsZHJlbiA9IHRoaXMubG9kUmVmLmNoaWxkcmVuKCk7XG4gICAgICAgICAgICByZXR1cm4geyBjaGlsZHJlbjogY2hpbGRyZW4oKSwgZGlzdGFuY2VzOiBkaXN0YW5jZXMoKSB9O1xuICAgICAgICB9KTtcbiAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgY2hpbGRyZW4sIGRpc3RhbmNlcyB9ID0gdHJpZ2dlcigpO1xuICAgICAgICAgICAgY29uc3QgbG9kID0gdGhpcy5sb2RSZWYudW50cmFja2VkO1xuICAgICAgICAgICAgaWYgKGxvZCkge1xuICAgICAgICAgICAgICAgIGxvZC5sZXZlbHMubGVuZ3RoID0gMDtcbiAgICAgICAgICAgICAgICBjaGlsZHJlbi5mb3JFYWNoKChjaGlsZCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbG9kLmFkZExldmVsKGNoaWxkLCBkaXN0YW5jZXNbaW5kZXhdKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19