angular-three-soba 1.13.0 → 1.14.1

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 (257) hide show
  1. package/abstractions/lib/billboard/billboard.d.ts +1 -1
  2. package/abstractions/lib/catmull-rom-line/catmull-rom-line.d.ts +1 -1
  3. package/abstractions/lib/cubic-bezier-line/cubic-bezier-line.d.ts +1 -1
  4. package/abstractions/lib/edges/edges.d.ts +2 -2
  5. package/abstractions/lib/gizmo-helper/gizmo-helper.d.ts +1 -1
  6. package/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.d.ts +1 -1
  7. package/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.d.ts +2 -2
  8. package/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.d.ts +1 -1
  9. package/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube.d.ts +1 -1
  10. package/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.d.ts +2 -2
  11. package/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport.d.ts +1 -1
  12. package/abstractions/lib/line/line-input.d.ts +1 -1
  13. package/abstractions/lib/line/line.d.ts +1 -1
  14. package/abstractions/lib/quadratic-bezier-line/quadratic-bezier-line.d.ts +1 -1
  15. package/abstractions/lib/text/text.d.ts +1 -1
  16. package/abstractions/lib/text-3d/text-3d.d.ts +1 -1
  17. package/cameras/lib/camera/camera-content.d.ts +1 -1
  18. package/cameras/lib/camera/camera.d.ts +1 -1
  19. package/cameras/lib/cube-camera/cube-camera.d.ts +1 -1
  20. package/cameras/lib/orthographic-camera/orthographic-camera.d.ts +1 -1
  21. package/controls/lib/orbit-controls/orbit-controls.d.ts +1 -1
  22. package/esm2022/abstractions/lib/billboard/billboard.mjs +74 -0
  23. package/esm2022/abstractions/lib/catmull-rom-line/catmull-rom-line.mjs +120 -0
  24. package/esm2022/abstractions/lib/cubic-bezier-line/cubic-bezier-line.mjs +99 -0
  25. package/esm2022/abstractions/lib/edges/edges.mjs +96 -0
  26. package/esm2022/abstractions/lib/gizmo-helper/gizmo-helper.mjs +213 -0
  27. package/esm2022/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +92 -0
  28. package/esm2022/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +184 -0
  29. package/esm2022/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.mjs +46 -0
  30. package/{esm2020 → esm2022}/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube.mjs +8 -7
  31. package/esm2022/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +195 -0
  32. package/{esm2020 → esm2022}/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport.mjs +8 -7
  33. package/esm2022/abstractions/lib/line/line-input.mjs +76 -0
  34. package/esm2022/abstractions/lib/line/line.mjs +133 -0
  35. package/esm2022/abstractions/lib/quadratic-bezier-line/quadratic-bezier-line.mjs +128 -0
  36. package/esm2022/abstractions/lib/text/text.mjs +115 -0
  37. package/esm2022/abstractions/lib/text-3d/text-3d.mjs +145 -0
  38. package/esm2022/cameras/lib/camera/camera-content.mjs +21 -0
  39. package/esm2022/cameras/lib/camera/camera.mjs +75 -0
  40. package/esm2022/cameras/lib/cube-camera/cube-camera.mjs +131 -0
  41. package/esm2022/cameras/lib/orthographic-camera/orthographic-camera.mjs +93 -0
  42. package/{esm2020 → esm2022}/cameras/lib/perspective-camera/perspective-camera.mjs +8 -7
  43. package/esm2022/controls/lib/orbit-controls/orbit-controls.mjs +147 -0
  44. package/{esm2020 → esm2022}/loaders/lib/cube-texture-loader/cube-texture-loader.mjs +3 -3
  45. package/esm2022/loaders/lib/loader/loader.mjs +134 -0
  46. package/esm2022/materials/lib/mesh-distort-material/mesh-distort-material.mjs +75 -0
  47. package/esm2022/materials/lib/mesh-reflector-material/mesh-reflector-material.mjs +328 -0
  48. package/esm2022/materials/lib/mesh-refraction-material/mesh-refraction-material.mjs +158 -0
  49. package/esm2022/materials/lib/mesh-transmission-material/mesh-transmission-material.mjs +238 -0
  50. package/esm2022/materials/lib/mesh-wobble-material/mesh-wobble-material.mjs +68 -0
  51. package/esm2022/misc/lib/bake-shadows/bake-shadows.mjs +26 -0
  52. package/esm2022/performance/lib/adaptive/adaptive-dpr.mjs +47 -0
  53. package/esm2022/performance/lib/adaptive/adaptive-events.mjs +37 -0
  54. package/esm2022/performance/lib/detailed/detailed.mjs +54 -0
  55. package/esm2022/performance/lib/stats/stats.mjs +80 -0
  56. package/esm2022/shaders/lib/blur-pass/blur-pass.mjs +61 -0
  57. package/esm2022/staging/lib/accumulative-shadows/accumulative-shadows.mjs +249 -0
  58. package/esm2022/staging/lib/accumulative-shadows/randomized-lights.mjs +201 -0
  59. package/{esm2020 → esm2022}/staging/lib/bounds/bounds.mjs +8 -7
  60. package/esm2022/staging/lib/camera-shake/camera-shake.mjs +122 -0
  61. package/esm2022/staging/lib/caustics/caustics.mjs +364 -0
  62. package/esm2022/staging/lib/center/center.mjs +143 -0
  63. package/esm2022/staging/lib/cloud/cloud.mjs +160 -0
  64. package/esm2022/staging/lib/contact-shadows/contact-shadows.mjs +228 -0
  65. package/esm2022/staging/lib/environment/environment-cube.mjs +41 -0
  66. package/esm2022/staging/lib/environment/environment-ground.mjs +67 -0
  67. package/esm2022/staging/lib/environment/environment-inputs.mjs +87 -0
  68. package/esm2022/staging/lib/environment/environment-map.mjs +39 -0
  69. package/esm2022/staging/lib/environment/environment-portal.mjs +111 -0
  70. package/{esm2020 → esm2022}/staging/lib/environment/environment.mjs +13 -11
  71. package/esm2022/staging/lib/float/float.mjs +77 -0
  72. package/esm2022/staging/lib/sky/sky.mjs +109 -0
  73. package/esm2022/staging/lib/sparkles/sparkles.mjs +210 -0
  74. package/esm2022/staging/lib/spot-light/shadow-mesh-input.mjs +51 -0
  75. package/esm2022/staging/lib/spot-light/spot-light-input.mjs +62 -0
  76. package/esm2022/staging/lib/spot-light/spot-light-shadow-no-shader.mjs +74 -0
  77. package/esm2022/staging/lib/spot-light/spot-light-shadow-shader.mjs +126 -0
  78. package/{esm2020 → esm2022}/staging/lib/spot-light/spot-light-shadow.mjs +8 -7
  79. package/esm2022/staging/lib/spot-light/spot-light.mjs +117 -0
  80. package/esm2022/staging/lib/spot-light/volumetric-mesh.mjs +86 -0
  81. package/{esm2020 → esm2022}/staging/lib/stage/stage.mjs +13 -11
  82. package/esm2022/staging/lib/stars/stars.mjs +140 -0
  83. package/{fesm2020 → fesm2022}/angular-three-soba-abstractions.mjs +89 -89
  84. package/{fesm2015 → fesm2022}/angular-three-soba-abstractions.mjs.map +1 -1
  85. package/{fesm2015 → fesm2022}/angular-three-soba-cameras.mjs +21 -21
  86. package/{fesm2015 → fesm2022}/angular-three-soba-cameras.mjs.map +1 -1
  87. package/{fesm2020 → fesm2022}/angular-three-soba-controls.mjs +5 -5
  88. package/fesm2022/angular-three-soba-controls.mjs.map +1 -0
  89. package/{fesm2020 → fesm2022}/angular-three-soba-loaders.mjs +7 -7
  90. package/{fesm2020 → fesm2022}/angular-three-soba-loaders.mjs.map +1 -1
  91. package/{fesm2020 → fesm2022}/angular-three-soba-materials.mjs +25 -25
  92. package/{fesm2020 → fesm2022}/angular-three-soba-materials.mjs.map +1 -1
  93. package/{fesm2020 → fesm2022}/angular-three-soba-misc.mjs +3 -3
  94. package/{fesm2020 → fesm2022}/angular-three-soba-misc.mjs.map +1 -1
  95. package/{fesm2020 → fesm2022}/angular-three-soba-performance.mjs +14 -14
  96. package/{fesm2020 → fesm2022}/angular-three-soba-performance.mjs.map +1 -1
  97. package/{fesm2020 → fesm2022}/angular-three-soba-shaders.mjs +2 -2
  98. package/fesm2022/angular-three-soba-shaders.mjs.map +1 -0
  99. package/{fesm2020 → fesm2022}/angular-three-soba-staging.mjs +139 -139
  100. package/{fesm2020 → fesm2022}/angular-three-soba-staging.mjs.map +1 -1
  101. package/loaders/lib/loader/loader.d.ts +1 -1
  102. package/materials/lib/mesh-distort-material/mesh-distort-material.d.ts +1 -1
  103. package/materials/lib/mesh-reflector-material/mesh-reflector-material.d.ts +1 -1
  104. package/materials/lib/mesh-refraction-material/mesh-refraction-material.d.ts +1 -1
  105. package/materials/lib/mesh-transmission-material/mesh-transmission-material.d.ts +1 -1
  106. package/materials/lib/mesh-wobble-material/mesh-wobble-material.d.ts +1 -1
  107. package/package.json +45 -70
  108. package/performance/lib/adaptive/adaptive-dpr.d.ts +1 -1
  109. package/performance/lib/detailed/detailed.d.ts +1 -1
  110. package/performance/lib/stats/stats.d.ts +1 -1
  111. package/plugin/package.json +1 -1
  112. package/plugin/src/generators/init/compat.js +1 -1
  113. package/plugin/src/generators/init/compat.js.map +1 -1
  114. package/plugin/src/generators/init/init.d.ts +1 -1
  115. package/plugin/src/generators/init/init.js +1 -1
  116. package/plugin/src/generators/init/init.js.map +1 -1
  117. package/staging/lib/accumulative-shadows/accumulative-shadows.d.ts +2 -2
  118. package/staging/lib/accumulative-shadows/randomized-lights.d.ts +1 -1
  119. package/staging/lib/bounds/bounds.d.ts +1 -1
  120. package/staging/lib/camera-shake/camera-shake.d.ts +1 -1
  121. package/staging/lib/caustics/caustics.d.ts +2 -2
  122. package/staging/lib/center/center.d.ts +1 -1
  123. package/staging/lib/cloud/cloud.d.ts +1 -1
  124. package/staging/lib/contact-shadows/contact-shadows.d.ts +1 -1
  125. package/staging/lib/environment/environment-inputs.d.ts +1 -1
  126. package/staging/lib/float/float.d.ts +1 -1
  127. package/staging/lib/sky/sky.d.ts +1 -1
  128. package/staging/lib/sparkles/sparkles.d.ts +2 -2
  129. package/staging/lib/spot-light/shadow-mesh-input.d.ts +1 -1
  130. package/staging/lib/spot-light/spot-light-input.d.ts +1 -1
  131. package/staging/lib/spot-light/spot-light-shadow-no-shader.d.ts +1 -1
  132. package/staging/lib/spot-light/spot-light-shadow-shader.d.ts +1 -1
  133. package/staging/lib/spot-light/spot-light.d.ts +1 -1
  134. package/staging/lib/spot-light/volumetric-mesh.d.ts +1 -1
  135. package/staging/lib/stage/stage.d.ts +2 -2
  136. package/staging/lib/stars/stars.d.ts +2 -2
  137. package/esm2020/abstractions/lib/billboard/billboard.mjs +0 -73
  138. package/esm2020/abstractions/lib/catmull-rom-line/catmull-rom-line.mjs +0 -119
  139. package/esm2020/abstractions/lib/cubic-bezier-line/cubic-bezier-line.mjs +0 -98
  140. package/esm2020/abstractions/lib/edges/edges.mjs +0 -95
  141. package/esm2020/abstractions/lib/gizmo-helper/gizmo-helper.mjs +0 -211
  142. package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +0 -91
  143. package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +0 -182
  144. package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.mjs +0 -45
  145. package/esm2020/abstractions/lib/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +0 -193
  146. package/esm2020/abstractions/lib/line/line-input.mjs +0 -75
  147. package/esm2020/abstractions/lib/line/line.mjs +0 -132
  148. package/esm2020/abstractions/lib/quadratic-bezier-line/quadratic-bezier-line.mjs +0 -127
  149. package/esm2020/abstractions/lib/text/text.mjs +0 -114
  150. package/esm2020/abstractions/lib/text-3d/text-3d.mjs +0 -144
  151. package/esm2020/cameras/lib/camera/camera-content.mjs +0 -20
  152. package/esm2020/cameras/lib/camera/camera.mjs +0 -74
  153. package/esm2020/cameras/lib/cube-camera/cube-camera.mjs +0 -130
  154. package/esm2020/cameras/lib/orthographic-camera/orthographic-camera.mjs +0 -92
  155. package/esm2020/controls/lib/orbit-controls/orbit-controls.mjs +0 -146
  156. package/esm2020/loaders/lib/loader/loader.mjs +0 -133
  157. package/esm2020/materials/lib/mesh-distort-material/mesh-distort-material.mjs +0 -74
  158. package/esm2020/materials/lib/mesh-reflector-material/mesh-reflector-material.mjs +0 -327
  159. package/esm2020/materials/lib/mesh-refraction-material/mesh-refraction-material.mjs +0 -157
  160. package/esm2020/materials/lib/mesh-transmission-material/mesh-transmission-material.mjs +0 -237
  161. package/esm2020/materials/lib/mesh-wobble-material/mesh-wobble-material.mjs +0 -67
  162. package/esm2020/misc/lib/bake-shadows/bake-shadows.mjs +0 -25
  163. package/esm2020/performance/lib/adaptive/adaptive-dpr.mjs +0 -46
  164. package/esm2020/performance/lib/adaptive/adaptive-events.mjs +0 -36
  165. package/esm2020/performance/lib/detailed/detailed.mjs +0 -53
  166. package/esm2020/performance/lib/stats/stats.mjs +0 -79
  167. package/esm2020/shaders/lib/blur-pass/blur-pass.mjs +0 -61
  168. package/esm2020/staging/lib/accumulative-shadows/accumulative-shadows.mjs +0 -247
  169. package/esm2020/staging/lib/accumulative-shadows/randomized-lights.mjs +0 -199
  170. package/esm2020/staging/lib/camera-shake/camera-shake.mjs +0 -121
  171. package/esm2020/staging/lib/caustics/caustics.mjs +0 -363
  172. package/esm2020/staging/lib/center/center.mjs +0 -142
  173. package/esm2020/staging/lib/cloud/cloud.mjs +0 -159
  174. package/esm2020/staging/lib/contact-shadows/contact-shadows.mjs +0 -227
  175. package/esm2020/staging/lib/environment/environment-cube.mjs +0 -40
  176. package/esm2020/staging/lib/environment/environment-ground.mjs +0 -66
  177. package/esm2020/staging/lib/environment/environment-inputs.mjs +0 -86
  178. package/esm2020/staging/lib/environment/environment-map.mjs +0 -38
  179. package/esm2020/staging/lib/environment/environment-portal.mjs +0 -110
  180. package/esm2020/staging/lib/float/float.mjs +0 -76
  181. package/esm2020/staging/lib/sky/sky.mjs +0 -108
  182. package/esm2020/staging/lib/sparkles/sparkles.mjs +0 -209
  183. package/esm2020/staging/lib/spot-light/shadow-mesh-input.mjs +0 -50
  184. package/esm2020/staging/lib/spot-light/spot-light-input.mjs +0 -61
  185. package/esm2020/staging/lib/spot-light/spot-light-shadow-no-shader.mjs +0 -73
  186. package/esm2020/staging/lib/spot-light/spot-light-shadow-shader.mjs +0 -125
  187. package/esm2020/staging/lib/spot-light/spot-light.mjs +0 -116
  188. package/esm2020/staging/lib/spot-light/volumetric-mesh.mjs +0 -85
  189. package/esm2020/staging/lib/stars/stars.mjs +0 -139
  190. package/fesm2015/angular-three-soba-abstractions.mjs +0 -2048
  191. package/fesm2015/angular-three-soba-controls.mjs +0 -153
  192. package/fesm2015/angular-three-soba-controls.mjs.map +0 -1
  193. package/fesm2015/angular-three-soba-loaders.mjs +0 -229
  194. package/fesm2015/angular-three-soba-loaders.mjs.map +0 -1
  195. package/fesm2015/angular-three-soba-materials.mjs +0 -851
  196. package/fesm2015/angular-three-soba-materials.mjs.map +0 -1
  197. package/fesm2015/angular-three-soba-misc.mjs +0 -148
  198. package/fesm2015/angular-three-soba-misc.mjs.map +0 -1
  199. package/fesm2015/angular-three-soba-performance.mjs +0 -210
  200. package/fesm2015/angular-three-soba-performance.mjs.map +0 -1
  201. package/fesm2015/angular-three-soba-shaders.mjs +0 -1239
  202. package/fesm2015/angular-three-soba-shaders.mjs.map +0 -1
  203. package/fesm2015/angular-three-soba-staging.mjs +0 -3772
  204. package/fesm2015/angular-three-soba-staging.mjs.map +0 -1
  205. package/fesm2020/angular-three-soba-abstractions.mjs.map +0 -1
  206. package/fesm2020/angular-three-soba-cameras.mjs +0 -347
  207. package/fesm2020/angular-three-soba-cameras.mjs.map +0 -1
  208. package/fesm2020/angular-three-soba-controls.mjs.map +0 -1
  209. package/fesm2020/angular-three-soba-shaders.mjs.map +0 -1
  210. package/fesm2020/angular-three-soba.mjs +0 -6
  211. package/fesm2020/angular-three-soba.mjs.map +0 -1
  212. /package/{esm2020 → esm2022}/abstractions/angular-three-soba-abstractions.mjs +0 -0
  213. /package/{esm2020 → esm2022}/abstractions/index.mjs +0 -0
  214. /package/{esm2020 → esm2022}/abstractions/lib/gizmo-helper/gizmo-viewcube/constants.mjs +0 -0
  215. /package/{esm2020 → esm2022}/angular-three-soba.mjs +0 -0
  216. /package/{esm2020 → esm2022}/cameras/angular-three-soba-cameras.mjs +0 -0
  217. /package/{esm2020 → esm2022}/cameras/index.mjs +0 -0
  218. /package/{esm2020 → esm2022}/controls/angular-three-soba-controls.mjs +0 -0
  219. /package/{esm2020 → esm2022}/controls/index.mjs +0 -0
  220. /package/{esm2020 → esm2022}/index.mjs +0 -0
  221. /package/{esm2020 → esm2022}/loaders/angular-three-soba-loaders.mjs +0 -0
  222. /package/{esm2020 → esm2022}/loaders/index.mjs +0 -0
  223. /package/{esm2020 → esm2022}/loaders/lib/gltf-loader/gltf-loader.mjs +0 -0
  224. /package/{esm2020 → esm2022}/loaders/lib/progress/progress.mjs +0 -0
  225. /package/{esm2020 → esm2022}/loaders/lib/texture-loader/texture-loader.mjs +0 -0
  226. /package/{esm2020 → esm2022}/materials/angular-three-soba-materials.mjs +0 -0
  227. /package/{esm2020 → esm2022}/materials/index.mjs +0 -0
  228. /package/{esm2020 → esm2022}/misc/angular-three-soba-misc.mjs +0 -0
  229. /package/{esm2020 → esm2022}/misc/index.mjs +0 -0
  230. /package/{esm2020 → esm2022}/misc/lib/animations/animations.mjs +0 -0
  231. /package/{esm2020 → esm2022}/misc/lib/depth-buffer/depth-buffer.mjs +0 -0
  232. /package/{esm2020 → esm2022}/misc/lib/fbo/fbo.mjs +0 -0
  233. /package/{esm2020 → esm2022}/performance/angular-three-soba-performance.mjs +0 -0
  234. /package/{esm2020 → esm2022}/performance/index.mjs +0 -0
  235. /package/{esm2020 → esm2022}/shaders/angular-three-soba-shaders.mjs +0 -0
  236. /package/{esm2020 → esm2022}/shaders/index.mjs +0 -0
  237. /package/{esm2020 → esm2022}/shaders/lib/caustics-material/caustics-material.mjs +0 -0
  238. /package/{esm2020 → esm2022}/shaders/lib/caustics-projection-material/caustics-projection-material.mjs +0 -0
  239. /package/{esm2020 → esm2022}/shaders/lib/convolution-material/convolution-material.mjs +0 -0
  240. /package/{esm2020 → esm2022}/shaders/lib/discard-material/discard-material.mjs +0 -0
  241. /package/{esm2020 → esm2022}/shaders/lib/mesh-distort-material/mesh-distort-material.mjs +0 -0
  242. /package/{esm2020 → esm2022}/shaders/lib/mesh-reflector-material/mesh-reflector-material.mjs +0 -0
  243. /package/{esm2020 → esm2022}/shaders/lib/mesh-refraction-material/mesh-refraction-material.mjs +0 -0
  244. /package/{esm2020 → esm2022}/shaders/lib/mesh-transmission-material/mesh-transmission-material.mjs +0 -0
  245. /package/{esm2020 → esm2022}/shaders/lib/mesh-wobble-material/mesh-wobble-material.mjs +0 -0
  246. /package/{esm2020 → esm2022}/shaders/lib/shader-material/shader-material.mjs +0 -0
  247. /package/{esm2020 → esm2022}/shaders/lib/soft-shadow-material/soft-shadow-material.mjs +0 -0
  248. /package/{esm2020 → esm2022}/shaders/lib/spot-light-material/spot-light-material.mjs +0 -0
  249. /package/{esm2020 → esm2022}/shaders/lib/star-field-material/star-field-material.mjs +0 -0
  250. /package/{esm2020 → esm2022}/staging/angular-three-soba-staging.mjs +0 -0
  251. /package/{esm2020 → esm2022}/staging/index.mjs +0 -0
  252. /package/{esm2020 → esm2022}/staging/lib/accumulative-shadows/progressive-light-map.mjs +0 -0
  253. /package/{esm2020 → esm2022}/staging/lib/environment/assets.mjs +0 -0
  254. /package/{esm2020 → esm2022}/staging/lib/environment/utils.mjs +0 -0
  255. /package/{esm2020 → esm2022}/staging/lib/spot-light/common.mjs +0 -0
  256. /package/{fesm2015 → fesm2022}/angular-three-soba.mjs +0 -0
  257. /package/{fesm2015 → fesm2022}/angular-three-soba.mjs.map +0 -0
@@ -1,193 +0,0 @@
1
- import { DOCUMENT } from '@angular/common';
2
- import { Component, CUSTOM_ELEMENTS_SCHEMA, EventEmitter, inject, Input } from '@angular/core';
3
- import { extend, NgtArgs, NgtRxStore, NgtStore, startWithUndefined } from 'angular-three';
4
- import { combineLatest, map } from 'rxjs';
5
- import { BoxGeometry, CanvasTexture, Group, Mesh, MeshBasicMaterial, Sprite, SpriteMaterial } from 'three';
6
- import * as i0 from "@angular/core";
7
- extend({ Group, Mesh, BoxGeometry, MeshBasicMaterial, Sprite, SpriteMaterial });
8
- export class NgtsGizmoViewportAxis extends NgtRxStore {
9
- set color(color) {
10
- this.set({ color });
11
- }
12
- set rotation(rotation) {
13
- this.set({ rotation });
14
- }
15
- set scale(scale) {
16
- this.set({ scale: scale === undefined ? this.get('scale') : scale });
17
- }
18
- initialize() {
19
- super.initialize();
20
- this.set({ scale: [0.8, 0.05, 0.05] });
21
- }
22
- }
23
- NgtsGizmoViewportAxis.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsGizmoViewportAxis, deps: null, target: i0.ɵɵFactoryTarget.Component });
24
- NgtsGizmoViewportAxis.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: NgtsGizmoViewportAxis, isStandalone: true, selector: "ngts-gizmo-viewport-axis[color][rotation]", inputs: { color: "color", rotation: "rotation", scale: "scale" }, usesInheritance: true, ngImport: i0, template: `
25
- <ngt-group [rotation]="get('rotation')">
26
- <ngt-mesh [position]="[0.4, 0, 0]">
27
- <ngt-box-geometry *args="get('scale')" />
28
- <ngt-mesh-basic-material [color]="get('color')" [toneMapped]="false" />
29
- </ngt-mesh>
30
- </ngt-group>
31
- `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }] });
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsGizmoViewportAxis, decorators: [{
33
- type: Component,
34
- args: [{
35
- selector: 'ngts-gizmo-viewport-axis[color][rotation]',
36
- standalone: true,
37
- template: `
38
- <ngt-group [rotation]="get('rotation')">
39
- <ngt-mesh [position]="[0.4, 0, 0]">
40
- <ngt-box-geometry *args="get('scale')" />
41
- <ngt-mesh-basic-material [color]="get('color')" [toneMapped]="false" />
42
- </ngt-mesh>
43
- </ngt-group>
44
- `,
45
- imports: [NgtArgs],
46
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
47
- }]
48
- }], propDecorators: { color: [{
49
- type: Input
50
- }], rotation: [{
51
- type: Input
52
- }], scale: [{
53
- type: Input
54
- }] } });
55
- export class NgtsGizmoViewportAxisHead extends NgtRxStore {
56
- constructor() {
57
- super(...arguments);
58
- this.document = inject(DOCUMENT);
59
- this.store = inject(NgtStore);
60
- this.gl = this.store.get('gl');
61
- }
62
- set arcStyle(arcStyle) {
63
- this.set({ arcStyle });
64
- }
65
- set label(label) {
66
- this.set({ label });
67
- }
68
- set labelColor(labelColor) {
69
- this.set({ labelColor });
70
- }
71
- set axisHeadScale(axisHeadScale) {
72
- this.set({ axisHeadScale });
73
- }
74
- set disabled(disabled) {
75
- this.set({ disabled });
76
- }
77
- set font(font) {
78
- this.set({ font });
79
- }
80
- set clickEmitter(clickEmitter) {
81
- this.set({ clickEmitter });
82
- }
83
- initialize() {
84
- super.initialize();
85
- this.set({ axisHeadScale: 1, active: false });
86
- this.connect('texture', combineLatest([
87
- this.select('arcStyle'),
88
- this.select('labelColor'),
89
- this.select('font'),
90
- this.select('label').pipe(startWithUndefined()),
91
- ]).pipe(map(([arcStyle, labelColor, font, label]) => {
92
- const canvas = this.document.createElement('canvas');
93
- canvas.width = 64;
94
- canvas.height = 64;
95
- const context = canvas.getContext('2d');
96
- context.beginPath();
97
- context.arc(32, 32, 16, 0, 2 * Math.PI);
98
- context.closePath();
99
- context.fillStyle = arcStyle;
100
- context.fill();
101
- if (label) {
102
- context.font = font;
103
- context.textAlign = 'center';
104
- context.fillStyle = labelColor;
105
- context.fillText(label, 32, 41);
106
- }
107
- return new CanvasTexture(canvas);
108
- })));
109
- this.connect('scale', combineLatest([
110
- this.select('active'),
111
- this.select('axisHeadScale'),
112
- this.select('label').pipe(startWithUndefined()),
113
- ]).pipe(map(([active, axisHeadScale, label]) => (label ? 1 : 0.75) * (active ? 1.2 : 1) * axisHeadScale)));
114
- }
115
- onPointerOver(event) {
116
- if (!this.get('disabled')) {
117
- event.stopPropagation();
118
- this.set({ active: true });
119
- }
120
- }
121
- onPointerOut(event) {
122
- if (!this.get('disabled')) {
123
- if (this.get('clickEmitter')?.observed) {
124
- this.get('clickEmitter').emit(event);
125
- }
126
- else {
127
- event.stopPropagation();
128
- this.set({ active: false });
129
- }
130
- }
131
- }
132
- }
133
- NgtsGizmoViewportAxisHead.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsGizmoViewportAxisHead, deps: null, target: i0.ɵɵFactoryTarget.Component });
134
- NgtsGizmoViewportAxisHead.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: NgtsGizmoViewportAxisHead, isStandalone: true, selector: "ngts-gizmo-viewport-axis-head", inputs: { arcStyle: "arcStyle", label: "label", labelColor: "labelColor", axisHeadScale: "axisHeadScale", disabled: "disabled", font: "font", clickEmitter: "clickEmitter" }, usesInheritance: true, ngImport: i0, template: `
135
- <ngt-sprite
136
- ngtCompound
137
- [scale]="get('scale')"
138
- (pointerover)="onPointerOver($any($event))"
139
- (pointerout)="onPointerOut($any($event))"
140
- >
141
- <ngt-sprite-material
142
- [map]="get('texture')"
143
- [opacity]="get('label') ? 1 : 0.75"
144
- [alphaTest]="0.3"
145
- [toneMapped]="false"
146
- >
147
- <ngt-value [rawValue]="gl.outputEncoding" attach="map.encoding" />
148
- <ngt-value [rawValue]="gl.capabilities.getMaxAnisotropy() || 1" attach="map.anisotropy" />
149
- </ngt-sprite-material>
150
- </ngt-sprite>
151
- `, isInline: true });
152
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsGizmoViewportAxisHead, decorators: [{
153
- type: Component,
154
- args: [{
155
- selector: 'ngts-gizmo-viewport-axis-head',
156
- standalone: true,
157
- template: `
158
- <ngt-sprite
159
- ngtCompound
160
- [scale]="get('scale')"
161
- (pointerover)="onPointerOver($any($event))"
162
- (pointerout)="onPointerOut($any($event))"
163
- >
164
- <ngt-sprite-material
165
- [map]="get('texture')"
166
- [opacity]="get('label') ? 1 : 0.75"
167
- [alphaTest]="0.3"
168
- [toneMapped]="false"
169
- >
170
- <ngt-value [rawValue]="gl.outputEncoding" attach="map.encoding" />
171
- <ngt-value [rawValue]="gl.capabilities.getMaxAnisotropy() || 1" attach="map.anisotropy" />
172
- </ngt-sprite-material>
173
- </ngt-sprite>
174
- `,
175
- imports: [NgtArgs],
176
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
177
- }]
178
- }], propDecorators: { arcStyle: [{
179
- type: Input
180
- }], label: [{
181
- type: Input
182
- }], labelColor: [{
183
- type: Input
184
- }], axisHeadScale: [{
185
- type: Input
186
- }], disabled: [{
187
- type: Input
188
- }], font: [{
189
- type: Input
190
- }], clickEmitter: [{
191
- type: Input
192
- }] } });
193
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l6bW8tdmlld3BvcnQtYXhpcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci10aHJlZS1zb2JhL2Fic3RyYWN0aW9ucy9zcmMvbGliL2dpem1vLWhlbHBlci9naXptby12aWV3cG9ydC9naXptby12aWV3cG9ydC1heGlzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9GLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQWlCLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLE9BQU8sQ0FBQzs7QUFFM0csTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUM7QUFnQmhGLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxVQUFVO0lBQ2pELElBQWEsS0FBSyxDQUFDLEtBQWE7UUFDNUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQWEsUUFBUSxDQUFDLFFBQWtDO1FBQ3BELElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFhLEtBQUss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LEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7OztLQWlCVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ2xCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNwQzs4QkFNZ0IsUUFBUTtzQkFBcEIsS0FBSztnQkFJTyxLQUFLO3NCQUFqQixLQUFLO2dCQUlPLFVBQVU7c0JBQXRCLEtBQUs7Z0JBSU8sYUFBYTtzQkFBekIsS0FBSztnQkFJTyxRQUFRO3NCQUFwQixLQUFLO2dCQUlPLElBQUk7c0JBQWhCLEtBQUs7Z0JBSU8sWUFBWTtzQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBleHRlbmQsIE5ndEFyZ3MsIE5ndFJ4U3RvcmUsIE5ndFN0b3JlLCBOZ3RUaHJlZUV2ZW50LCBzdGFydFdpdGhVbmRlZmluZWQgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQm94R2VvbWV0cnksIENhbnZhc1RleHR1cmUsIEdyb3VwLCBNZXNoLCBNZXNoQmFzaWNNYXRlcmlhbCwgU3ByaXRlLCBTcHJpdGVNYXRlcmlhbCB9IGZyb20gJ3RocmVlJztcblxuZXh0ZW5kKHsgR3JvdXAsIE1lc2gsIEJveEdlb21ldHJ5LCBNZXNoQmFzaWNNYXRlcmlhbCwgU3ByaXRlLCBTcHJpdGVNYXRlcmlhbCB9KTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3RzLWdpem1vLXZpZXdwb3J0LWF4aXNbY29sb3JdW3JvdGF0aW9uXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmd0LWdyb3VwIFtyb3RhdGlvbl09XCJnZXQoJ3JvdGF0aW9uJylcIj5cbiAgICAgICAgICAgIDxuZ3QtbWVzaCBbcG9zaXRpb25dPVwiWzAuNCwgMCwgMF1cIj5cbiAgICAgICAgICAgICAgICA8bmd0LWJveC1nZW9tZXRyeSAqYXJncz1cImdldCgnc2NhbGUnKVwiIC8+XG4gICAgICAgICAgICAgICAgPG5ndC1tZXNoLWJhc2ljLW1hdGVyaWFsIFtjb2xvcl09XCJnZXQoJ2NvbG9yJylcIiBbdG9uZU1hcHBlZF09XCJmYWxzZVwiIC8+XG4gICAgICAgICAgICA8L25ndC1tZXNoPlxuICAgICAgICA8L25ndC1ncm91cD5cbiAgICBgLFxuICAgIGltcG9ydHM6IFtOZ3RBcmdzXSxcbiAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNHaXptb1ZpZXdwb3J0QXhpcyBleHRlbmRzIE5ndFJ4U3RvcmUge1xuICAgIEBJbnB1dCgpIHNldCBjb2xvcihjb2xvcjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgY29sb3IgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHJvdGF0aW9uKHJvdGF0aW9uOiBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl0pIHtcbiAgICAgICAgdGhpcy5zZXQoeyByb3RhdGlvbiB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgc2NhbGUoc2NhbGU6IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSkge1xuICAgICAgICB0aGlzLnNldCh7IHNjYWxlOiBzY2FsZSA9PT0gdW5kZWZpbmVkID8gdGhpcy5nZXQoJ3NjYWxlJykgOiBzY2FsZSB9KTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5pbml0aWFsaXplKCk7XG4gICAgICAgIHRoaXMuc2V0KHsgc2NhbGU6IFswLjgsIDAuMDUsIDAuMDVdIH0pO1xuICAgIH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3RzLWdpem1vLXZpZXdwb3J0LWF4aXMtaGVhZCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmd0LXNwcml0ZVxuICAgICAgICAgICAgbmd0Q29tcG91bmRcbiAgICAgICAgICAgIFtzY2FsZV09XCJnZXQoJ3NjYWxlJylcIlxuICAgICAgICAgICAgKHBvaW50ZXJvdmVyKT1cIm9uUG9pbnRlck92ZXIoJGFueSgkZXZlbnQpKVwiXG4gICAgICAgICAgICAocG9pbnRlcm91dCk9XCJvblBvaW50ZXJPdXQoJGFueSgkZXZlbnQpKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxuZ3Qtc3ByaXRlLW1hdGVyaWFsXG4gICAgICAgICAgICAgICAgW21hcF09XCJnZXQoJ3RleHR1cmUnKVwiXG4gICAgICAgICAgICAgICAgW29wYWNpdHldPVwiZ2V0KCdsYWJlbCcpID8gMSA6IDAuNzVcIlxuICAgICAgICAgICAgICAgIFthbHBoYVRlc3RdPVwiMC4zXCJcbiAgICAgICAgICAgICAgICBbdG9uZU1hcHBlZF09XCJmYWxzZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5ndC12YWx1ZSBbcmF3VmFsdWVdPVwiZ2wub3V0cHV0RW5jb2RpbmdcIiBhdHRhY2g9XCJtYXAuZW5jb2RpbmdcIiAvPlxuICAgICAgICAgICAgICAgIDxuZ3QtdmFsdWUgW3Jhd1ZhbHVlXT1cImdsLmNhcGFiaWxpdGllcy5nZXRNYXhBbmlzb3Ryb3B5KCkgfHwgMVwiIGF0dGFjaD1cIm1hcC5hbmlzb3Ryb3B5XCIgLz5cbiAgICAgICAgICAgIDwvbmd0LXNwcml0ZS1tYXRlcmlhbD5cbiAgICAgICAgPC9uZ3Qtc3ByaXRlPlxuICAgIGAsXG4gICAgaW1wb3J0czogW05ndEFyZ3NdLFxuICAgIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c0dpem1vVmlld3BvcnRBeGlzSGVhZCBleHRlbmRzIE5ndFJ4U3RvcmUge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmUgPSBpbmplY3QoTmd0U3RvcmUpO1xuICAgIHJlYWRvbmx5IGdsID0gdGhpcy5zdG9yZS5nZXQoJ2dsJyk7XG5cbiAgICBASW5wdXQoKSBzZXQgYXJjU3R5bGUoYXJjU3R5bGU6IHN0cmluZykge1xuICAgICAgICB0aGlzLnNldCh7IGFyY1N0eWxlIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBsYWJlbChsYWJlbDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgbGFiZWwgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGxhYmVsQ29sb3IobGFiZWxDb2xvcjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgbGFiZWxDb2xvciB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgYXhpc0hlYWRTY2FsZShheGlzSGVhZFNjYWxlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBheGlzSGVhZFNjYWxlIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBkaXNhYmxlZChkaXNhYmxlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNldCh7IGRpc2FibGVkIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBmb250KGZvbnQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLnNldCh7IGZvbnQgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGNsaWNrRW1pdHRlcihjbGlja0VtaXR0ZXI6IEV2ZW50RW1pdHRlcjxOZ3RUaHJlZUV2ZW50PE1vdXNlRXZlbnQ+Pikge1xuICAgICAgICB0aGlzLnNldCh7IGNsaWNrRW1pdHRlciB9KTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5pbml0aWFsaXplKCk7XG4gICAgICAgIHRoaXMuc2V0KHsgYXhpc0hlYWRTY2FsZTogMSwgYWN0aXZlOiBmYWxzZSB9KTtcbiAgICAgICAgdGhpcy5jb25uZWN0KFxuICAgICAgICAgICAgJ3RleHR1cmUnLFxuICAgICAgICAgICAgY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3QoJ2FyY1N0eWxlJyksXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3QoJ2xhYmVsQ29sb3InKSxcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdCgnZm9udCcpLFxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0KCdsYWJlbCcpLnBpcGUoc3RhcnRXaXRoVW5kZWZpbmVkKCkpLFxuICAgICAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKFthcmNTdHlsZSwgbGFiZWxDb2xvciwgZm9udCwgbGFiZWxdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNhbnZhcyA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG4gICAgICAgICAgICAgICAgICAgIGNhbnZhcy53aWR0aCA9IDY0O1xuICAgICAgICAgICAgICAgICAgICBjYW52YXMuaGVpZ2h0ID0gNjQ7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGV4dCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpITtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5iZWdpblBhdGgoKTtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dC5hcmMoMzIsIDMyLCAxNiwgMCwgMiAqIE1hdGguUEkpO1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmNsb3NlUGF0aCgpO1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmZpbGxTdHlsZSA9IGFyY1N0eWxlO1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmZpbGwoKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAobGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQuZm9udCA9IGZvbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LnRleHRBbGlnbiA9ICdjZW50ZXInO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5maWxsU3R5bGUgPSBsYWJlbENvbG9yO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5maWxsVGV4dChsYWJlbCwgMzIsIDQxKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IENhbnZhc1RleHR1cmUoY2FudmFzKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmNvbm5lY3QoXG4gICAgICAgICAgICAnc2NhbGUnLFxuICAgICAgICAgICAgY29tYmluZUxhdGVzdChbXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3QoJ2FjdGl2ZScpLFxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0KCdheGlzSGVhZFNjYWxlJyksXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3QoJ2xhYmVsJykucGlwZShzdGFydFdpdGhVbmRlZmluZWQoKSksXG4gICAgICAgICAgICBdKS5waXBlKG1hcCgoW2FjdGl2ZSwgYXhpc0hlYWRTY2FsZSwgbGFiZWxdKSA9PiAobGFiZWwgPyAxIDogMC43NSkgKiAoYWN0aXZlID8gMS4yIDogMSkgKiBheGlzSGVhZFNjYWxlKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBvblBvaW50ZXJPdmVyKGV2ZW50OiBOZ3RUaHJlZUV2ZW50PFBvaW50ZXJFdmVudD4pIHtcbiAgICAgICAgaWYgKCF0aGlzLmdldCgnZGlzYWJsZWQnKSkge1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICB0aGlzLnNldCh7IGFjdGl2ZTogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uUG9pbnRlck91dChldmVudDogTmd0VGhyZWVFdmVudDxQb2ludGVyRXZlbnQ+KSB7XG4gICAgICAgIGlmICghdGhpcy5nZXQoJ2Rpc2FibGVkJykpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmdldCgnY2xpY2tFbWl0dGVyJyk/Lm9ic2VydmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5nZXQoJ2NsaWNrRW1pdHRlcicpLmVtaXQoZXZlbnQpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNldCh7IGFjdGl2ZTogZmFsc2UgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -1,75 +0,0 @@
1
- import { Directive, Input } from '@angular/core';
2
- import { NgtRxStore } from 'angular-three';
3
- import * as i0 from "@angular/core";
4
- export 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
- }
46
- NgtsLineInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsLineInput, deps: null, target: i0.ɵɵFactoryTarget.Directive });
47
- NgtsLineInput.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.5", 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 });
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsLineInput, decorators: [{
49
- type: Directive
50
- }], propDecorators: { vertexColors: [{
51
- type: Input
52
- }], lineWidth: [{
53
- type: Input
54
- }], alphaToCoverage: [{
55
- type: Input
56
- }], color: [{
57
- type: Input
58
- }], dashed: [{
59
- type: Input
60
- }], dashScale: [{
61
- type: Input
62
- }], dashSize: [{
63
- type: Input
64
- }], dashOffset: [{
65
- type: Input
66
- }], gapSize: [{
67
- type: Input
68
- }], resolution: [{
69
- type: Input
70
- }], wireframe: [{
71
- type: Input
72
- }], worldUnits: [{
73
- type: Input
74
- }] } });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci10aHJlZS1zb2JhL2Fic3RyYWN0aW9ucy9zcmMvbGliL2xpbmUvbGluZS1pbnB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUczQyxNQUFNLE9BQWdCLGFBQWMsU0FBUSxVQUFVO0lBQ2xELElBQWEsWUFBWSxDQUFDLFlBQTJEO1FBQ2pGLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFhLFNBQVMsQ0FBQyxTQUFpQjtRQUNwQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBYSxlQUFlLENBQUMsZUFBd0I7UUFDakQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQWEsS0FBSyxDQUFDLEtBQWdDO1FBQy9DLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFhLE1BQU0sQ0FBQyxNQUFlO1FBQy9CLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFhLFNBQVMsQ0FBQyxTQUFpQjtRQUNwQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBYSxRQUFRLENBQUMsUUFBZ0I7UUFDbEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQWEsVUFBVSxDQUFDLFVBQWtCO1FBQ3RDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFhLE9BQU8sQ0FBQyxPQUFlO1FBQ2hDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFhLFVBQVUsQ0FBQyxVQUF5QjtRQUM3QyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBYSxTQUFTLENBQUMsU0FBa0I7UUFDckMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQWEsVUFBVSxDQUFDLFVBQW1CO1FBQ3ZDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFUSxVQUFVO1FBQ2YsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNqQyxDQUFDOzswR0FwRGlCLGFBQWE7OEZBQWIsYUFBYTsyRkFBYixhQUFhO2tCQURsQyxTQUFTOzhCQUVPLFlBQVk7c0JBQXhCLEtBQUs7Z0JBSU8sU0FBUztzQkFBckIsS0FBSztnQkFJTyxlQUFlO3NCQUEzQixLQUFLO2dCQUlPLEtBQUs7c0JBQWpCLEtBQUs7Z0JBSU8sTUFBTTtzQkFBbEIsS0FBSztnQkFJTyxTQUFTO3NCQUFyQixLQUFLO2dCQUlPLFFBQVE7c0JBQXBCLEtBQUs7Z0JBSU8sVUFBVTtzQkFBdEIsS0FBSztnQkFJTyxPQUFPO3NCQUFuQixLQUFLO2dCQUlPLFVBQVU7c0JBQXRCLEtBQUs7Z0JBSU8sU0FBUztzQkFBckIsS0FBSztnQkFJTyxVQUFVO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0UnhTdG9yZSB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBOZ3RzTGluZUlucHV0IGV4dGVuZHMgTmd0UnhTdG9yZSB7XG4gICAgQElucHV0KCkgc2V0IHZlcnRleENvbG9ycyh2ZXJ0ZXhDb2xvcnM6IEFycmF5PFRIUkVFLkNvbG9yIHwgW251bWJlciwgbnVtYmVyLCBudW1iZXJdPikge1xuICAgICAgICB0aGlzLnNldCh7IHZlcnRleENvbG9ycyB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgbGluZVdpZHRoKGxpbmVXaWR0aDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgbGluZVdpZHRoIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBhbHBoYVRvQ292ZXJhZ2UoYWxwaGFUb0NvdmVyYWdlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgYWxwaGFUb0NvdmVyYWdlIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBjb2xvcihjb2xvcjogVEhSRUUuQ29sb3JSZXByZXNlbnRhdGlvbikge1xuICAgICAgICB0aGlzLnNldCh7IGNvbG9yIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBkYXNoZWQoZGFzaGVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZGFzaGVkIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBkYXNoU2NhbGUoZGFzaFNjYWxlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBkYXNoU2NhbGUgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGRhc2hTaXplKGRhc2hTaXplOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBkYXNoU2l6ZSB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgZGFzaE9mZnNldChkYXNoT2Zmc2V0OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBkYXNoT2Zmc2V0IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBnYXBTaXplKGdhcFNpemU6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGdhcFNpemUgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHJlc29sdXRpb24ocmVzb2x1dGlvbjogVEhSRUUuVmVjdG9yMikge1xuICAgICAgICB0aGlzLnNldCh7IHJlc29sdXRpb24gfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHdpcmVmcmFtZSh3aXJlZnJhbWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXQoeyB3aXJlZnJhbWUgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHdvcmxkVW5pdHMod29ybGRVbml0czogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNldCh7IHdvcmxkVW5pdHMgfSk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuaW5pdGlhbGl6ZSgpO1xuICAgICAgICB0aGlzLnNldCh7IGNvbG9yOiAnYmxhY2snIH0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,132 +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
- export 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
- }
66
- NgtsLine.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsLine, deps: null, target: i0.ɵɵFactoryTarget.Component });
67
- NgtsLine.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", type: NgtsLine, isStandalone: true, selector: "ngts-line[points]", inputs: { lineRef: "lineRef", points: "points", segments: "segments" }, usesInheritance: true, ngImport: i0, template: `
68
- <ngt-primitive *args="[line]" [ref]="lineRef" ngtCompound>
69
- <ngt-primitive
70
- *args="[get('lineGeometry')]"
71
- attach="geometry"
72
- (afterAttach)="onAfterAttach($any($event))"
73
- />
74
- <ngt-primitive
75
- *args="[lineMaterial]"
76
- attach="material"
77
- [color]="get('color')"
78
- [vertexColors]="Boolean(get('vertexColors'))"
79
- [resolution]="get('materialResolution')"
80
- [linewidth]="get('lineWidth')"
81
- [alphaToCoverage]="get('alphaToCoverage')"
82
- [dashed]="get('dashed')"
83
- [dashScale]="get('dashScale') ?? lineMaterial.dashScale"
84
- [dashSize]="get('dashSize') ?? lineMaterial.dashSize"
85
- [dashOffset]="get('dashOffset') ?? lineMaterial.dashOffset"
86
- [gapSize]="get('gapSize') ?? lineMaterial.gapSize"
87
- [wireframe]="get('wireframe') ?? lineMaterial.wireframe"
88
- [worldUnits]="get('worldUnits')"
89
- />
90
- </ngt-primitive>
91
- `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }] });
92
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsLine, decorators: [{
93
- type: Component,
94
- args: [{
95
- selector: 'ngts-line[points]',
96
- standalone: true,
97
- template: `
98
- <ngt-primitive *args="[line]" [ref]="lineRef" ngtCompound>
99
- <ngt-primitive
100
- *args="[get('lineGeometry')]"
101
- attach="geometry"
102
- (afterAttach)="onAfterAttach($any($event))"
103
- />
104
- <ngt-primitive
105
- *args="[lineMaterial]"
106
- attach="material"
107
- [color]="get('color')"
108
- [vertexColors]="Boolean(get('vertexColors'))"
109
- [resolution]="get('materialResolution')"
110
- [linewidth]="get('lineWidth')"
111
- [alphaToCoverage]="get('alphaToCoverage')"
112
- [dashed]="get('dashed')"
113
- [dashScale]="get('dashScale') ?? lineMaterial.dashScale"
114
- [dashSize]="get('dashSize') ?? lineMaterial.dashSize"
115
- [dashOffset]="get('dashOffset') ?? lineMaterial.dashOffset"
116
- [gapSize]="get('gapSize') ?? lineMaterial.gapSize"
117
- [wireframe]="get('wireframe') ?? lineMaterial.wireframe"
118
- [worldUnits]="get('worldUnits')"
119
- />
120
- </ngt-primitive>
121
- `,
122
- imports: [NgtArgs],
123
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
124
- }]
125
- }], propDecorators: { lineRef: [{
126
- type: Input
127
- }], points: [{
128
- type: Input
129
- }], segments: [{
130
- type: Input
131
- }] } });
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci10aHJlZS1zb2JhL2Fic3RyYWN0aW9ucy9zcmMvbGliL2xpbmUvbGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFFLFlBQVksRUFBa0IsT0FBTyxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBaUM3QyxNQUFNLE9BQU8sUUFBUyxTQUFRLGFBQWE7SUEvQjNDOztRQWdDYSxZQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ2xCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUUxQixVQUFLLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTFDLFNBQUksR0FBaUMsSUFBSSxDQUFDO1FBRWpDLFlBQU8sR0FBRyxZQUFZLEVBQXlCLENBQUM7S0EwRTVEO0lBeEVHLElBQWEsTUFBTSxDQUNmLE1BQW1HO1FBRW5HLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFhLFFBQVEsQ0FBQyxRQUFpQjtRQUNuQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUMz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QyxJQUFJLEVBQUUsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQ3ZFLENBQ0osQ0FBQztRQUVGLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUVyRSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVPLGVBQWU7UUFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsWUFBMEIsRUFBRSxFQUFFO1lBQ3BFLE9BQU8sR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7cUdBakZRLFFBQVE7eUZBQVIsUUFBUSw0S0E1QlA7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQXdCVCw0REFDUyxPQUFPOzJGQUdSLFFBQVE7a0JBL0JwQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQXdCVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ2xCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNwQzs4QkFTWSxPQUFPO3NCQUFmLEtBQUs7Z0JBRU8sTUFBTTtzQkFBbEIsS0FBSztnQkFNTyxRQUFRO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBpbmplY3QsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGluamVjdE5ndFJlZiwgTmd0QWZ0ZXJBdHRhY2gsIE5ndEFyZ3MsIE5ndFN0b3JlLCBzdGFydFdpdGhVbmRlZmluZWQgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTGluZTIsIExpbmVHZW9tZXRyeSwgTGluZU1hdGVyaWFsLCBMaW5lU2VnbWVudHMyLCBMaW5lU2VnbWVudHNHZW9tZXRyeSB9IGZyb20gJ3RocmVlLXN0ZGxpYic7XG5pbXBvcnQgeyBOZ3RzTGluZUlucHV0IH0gZnJvbSAnLi9saW5lLWlucHV0JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3RzLWxpbmVbcG9pbnRzXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmd0LXByaW1pdGl2ZSAqYXJncz1cIltsaW5lXVwiIFtyZWZdPVwibGluZVJlZlwiIG5ndENvbXBvdW5kPlxuICAgICAgICAgICAgPG5ndC1wcmltaXRpdmVcbiAgICAgICAgICAgICAgICAqYXJncz1cIltnZXQoJ2xpbmVHZW9tZXRyeScpXVwiXG4gICAgICAgICAgICAgICAgYXR0YWNoPVwiZ2VvbWV0cnlcIlxuICAgICAgICAgICAgICAgIChhZnRlckF0dGFjaCk9XCJvbkFmdGVyQXR0YWNoKCRhbnkoJGV2ZW50KSlcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxuZ3QtcHJpbWl0aXZlXG4gICAgICAgICAgICAgICAgKmFyZ3M9XCJbbGluZU1hdGVyaWFsXVwiXG4gICAgICAgICAgICAgICAgYXR0YWNoPVwibWF0ZXJpYWxcIlxuICAgICAgICAgICAgICAgIFtjb2xvcl09XCJnZXQoJ2NvbG9yJylcIlxuICAgICAgICAgICAgICAgIFt2ZXJ0ZXhDb2xvcnNdPVwiQm9vbGVhbihnZXQoJ3ZlcnRleENvbG9ycycpKVwiXG4gICAgICAgICAgICAgICAgW3Jlc29sdXRpb25dPVwiZ2V0KCdtYXRlcmlhbFJlc29sdXRpb24nKVwiXG4gICAgICAgICAgICAgICAgW2xpbmV3aWR0aF09XCJnZXQoJ2xpbmVXaWR0aCcpXCJcbiAgICAgICAgICAgICAgICBbYWxwaGFUb0NvdmVyYWdlXT1cImdldCgnYWxwaGFUb0NvdmVyYWdlJylcIlxuICAgICAgICAgICAgICAgIFtkYXNoZWRdPVwiZ2V0KCdkYXNoZWQnKVwiXG4gICAgICAgICAgICAgICAgW2Rhc2hTY2FsZV09XCJnZXQoJ2Rhc2hTY2FsZScpID8/IGxpbmVNYXRlcmlhbC5kYXNoU2NhbGVcIlxuICAgICAgICAgICAgICAgIFtkYXNoU2l6ZV09XCJnZXQoJ2Rhc2hTaXplJykgPz8gbGluZU1hdGVyaWFsLmRhc2hTaXplXCJcbiAgICAgICAgICAgICAgICBbZGFzaE9mZnNldF09XCJnZXQoJ2Rhc2hPZmZzZXQnKSA/PyBsaW5lTWF0ZXJpYWwuZGFzaE9mZnNldFwiXG4gICAgICAgICAgICAgICAgW2dhcFNpemVdPVwiZ2V0KCdnYXBTaXplJykgPz8gbGluZU1hdGVyaWFsLmdhcFNpemVcIlxuICAgICAgICAgICAgICAgIFt3aXJlZnJhbWVdPVwiZ2V0KCd3aXJlZnJhbWUnKSA/PyBsaW5lTWF0ZXJpYWwud2lyZWZyYW1lXCJcbiAgICAgICAgICAgICAgICBbd29ybGRVbml0c109XCJnZXQoJ3dvcmxkVW5pdHMnKVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICA8L25ndC1wcmltaXRpdmU+XG4gICAgYCxcbiAgICBpbXBvcnRzOiBbTmd0QXJnc10sXG4gICAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzTGluZSBleHRlbmRzIE5ndHNMaW5lSW5wdXQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHJlYWRvbmx5IEJvb2xlYW4gPSBCb29sZWFuO1xuICAgIHJlYWRvbmx5IGxpbmVNYXRlcmlhbCA9IG5ldyBMaW5lTWF0ZXJpYWwoKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmUgPSBpbmplY3QoTmd0U3RvcmUpO1xuXG4gICAgbGluZTogTGluZTIgfCBMaW5lU2VnbWVudHMyIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKSBsaW5lUmVmID0gaW5qZWN0Tmd0UmVmPExpbmVTZWdtZW50czIgfCBMaW5lMj4oKTtcblxuICAgIEBJbnB1dCgpIHNldCBwb2ludHMoXG4gICAgICAgIHBvaW50czogQXJyYXk8VEhSRUUuVmVjdG9yMyB8IFRIUkVFLlZlY3RvcjIgfCBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl0gfCBbbnVtYmVyLCBudW1iZXJdIHwgbnVtYmVyPlxuICAgICkge1xuICAgICAgICB0aGlzLnNldCh7IHBvaW50cyB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgc2VnbWVudHMoc2VnbWVudHM6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBzZWdtZW50cyB9KTtcbiAgICB9XG5cbiAgICBvbkFmdGVyQXR0YWNoKHsgcGFyZW50IH06IE5ndEFmdGVyQXR0YWNoPExpbmUyIHwgTGluZVNlZ21lbnRzMj4pIHtcbiAgICAgICAgcGFyZW50LmNvbXB1dGVMaW5lRGlzdGFuY2VzKCk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuaW5pdGlhbGl6ZSgpO1xuICAgICAgICB0aGlzLnNldCh7IHNlZ21lbnRzOiBmYWxzZSB9KTtcbiAgICAgICAgdGhpcy5jb25uZWN0KFxuICAgICAgICAgICAgJ2xpbmVHZW9tZXRyeScsXG4gICAgICAgICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdCgncG9pbnRzJyksXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3QoJ3NlZ21lbnRzJyksXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3QoJ3ZlcnRleENvbG9ycycpLnBpcGUoc3RhcnRXaXRoVW5kZWZpbmVkKCkpLFxuICAgICAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKFtwb2ludHMsIHNlZ21lbnRzLCB2ZXJ0ZXhDb2xvcnNdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGdlb21ldHJ5ID0gc2VnbWVudHMgPyBuZXcgTGluZVNlZ21lbnRzR2VvbWV0cnkoKSA6IG5ldyBMaW5lR2VvbWV0cnkoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcFZhbHVlcyA9IChwb2ludHMgYXMgTmd0c0xpbmVbJ3BvaW50cyddKS5tYXAoKHApID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzQXJyYXkgPSBBcnJheS5pc0FycmF5KHApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHAgaW5zdGFuY2VvZiBUSFJFRS5WZWN0b3IzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBbcC54LCBwLnksIHAuel1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHAgaW5zdGFuY2VvZiBUSFJFRS5WZWN0b3IyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBbcC54LCBwLnksIDBdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBpc0FycmF5ICYmIHAubGVuZ3RoID09PSAzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBbcFswXSwgcFsxXSwgcFsyXV1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGlzQXJyYXkgJiYgcC5sZW5ndGggPT09IDJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IFtwWzBdLCBwWzFdLCAwXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogcDtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgZ2VvbWV0cnkuc2V0UG9zaXRpb25zKHBWYWx1ZXMuZmxhdCgpKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAodmVydGV4Q29sb3JzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjVmFsdWVzID0gKHZlcnRleENvbG9ycyBhcyBOZ3RzTGluZUlucHV0Wyd2ZXJ0ZXhDb2xvcnMnXSkubWFwKChjKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMgaW5zdGFuY2VvZiBUSFJFRS5Db2xvciA/IGMudG9BcnJheSgpIDogY1xuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGdlb21ldHJ5LnNldENvbG9ycyhjVmFsdWVzLmZsYXQoKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZ2VvbWV0cnk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5jb25uZWN0KFxuICAgICAgICAgICAgJ21hdGVyaWFsUmVzb2x1dGlvbicsXG4gICAgICAgICAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLnN0b3JlLnNlbGVjdCgnc2l6ZScpLCB0aGlzLnNlbGVjdCgncmVzb2x1dGlvbicpLnBpcGUoc3RhcnRXaXRoVW5kZWZpbmVkKCkpXSkucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKFtzaXplLCByZXNvbHV0aW9uXSkgPT4gcmVzb2x1dGlvbiA/PyBbc2l6ZS53aWR0aCwgc2l6ZS5oZWlnaHRdKVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMubGluZSA9IHRoaXMuZ2V0KCdzZWdtZW50cycpID8gbmV3IExpbmVTZWdtZW50czIoKSA6IG5ldyBMaW5lMigpO1xuXG4gICAgICAgIHRoaXMuZGlzcG9zZUdlb21ldHJ5KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkaXNwb3NlR2VvbWV0cnkoKSB7XG4gICAgICAgIHRoaXMuZWZmZWN0KHRoaXMuc2VsZWN0KCdsaW5lR2VvbWV0cnknKSwgKGxpbmVHZW9tZXRyeTogTGluZUdlb21ldHJ5KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gKCkgPT4gbGluZUdlb21ldHJ5LmRpc3Bvc2UoKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
@@ -1,127 +0,0 @@
1
- import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
2
- import { injectNgtRef, startWithUndefined } from 'angular-three';
3
- import { combineLatest, map } from 'rxjs';
4
- import * as THREE from 'three';
5
- import { NgtsLine } from '../line/line';
6
- import { NgtsLineInput } from '../line/line-input';
7
- import * as i0 from "@angular/core";
8
- const v = new THREE.Vector3();
9
- export class NgtsQuadraticBezierLine extends NgtsLineInput {
10
- constructor() {
11
- super(...arguments);
12
- this.curve = new THREE.QuadraticBezierCurve3(undefined, undefined, undefined);
13
- this.lineRef = injectNgtRef();
14
- }
15
- set start(start) {
16
- this.set({ start });
17
- }
18
- set end(end) {
19
- this.set({ end });
20
- }
21
- set mid(mid) {
22
- this.set({ mid });
23
- }
24
- set segments(segments) {
25
- this.set({ segments });
26
- }
27
- initialize() {
28
- super.initialize();
29
- this.set({ start: [0, 0, 0], end: [0, 0, 0], segments: 20 });
30
- }
31
- ngOnInit() {
32
- this.connect('points', combineLatest([
33
- this.select('start'),
34
- this.select('end'),
35
- this.select('mid').pipe(startWithUndefined()),
36
- this.select('segments'),
37
- ]).pipe(map(([start, end, mid, segments]) => this.getPoints(start, end, mid, segments))));
38
- this.replaceSetPoints();
39
- }
40
- replaceSetPoints() {
41
- this.hold(this.lineRef.$, (line) => {
42
- line.setPoints = (start, end, mid) => {
43
- const points = this.getPoints(start, end, mid);
44
- if (this.lineRef.nativeElement.geometry) {
45
- this.lineRef.nativeElement.geometry.setPositions(points.map((p) => p.toArray()).flat());
46
- }
47
- };
48
- });
49
- }
50
- getPoints(start, end, mid, segments = 20) {
51
- if (start instanceof THREE.Vector3)
52
- this.curve.v0.copy(start);
53
- else
54
- this.curve.v0.set(...start);
55
- if (end instanceof THREE.Vector3)
56
- this.curve.v2.copy(end);
57
- else
58
- this.curve.v2.set(...end);
59
- if (mid instanceof THREE.Vector3) {
60
- this.curve.v1.copy(mid);
61
- }
62
- else {
63
- this.curve.v1.copy(this.curve.v0
64
- .clone()
65
- .add(this.curve.v2.clone().sub(this.curve.v0))
66
- .add(v.set(0, this.curve.v0.y - this.curve.v2.y, 0)));
67
- }
68
- return this.curve.getPoints(segments);
69
- }
70
- }
71
- NgtsQuadraticBezierLine.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsQuadraticBezierLine, deps: null, target: i0.ɵɵFactoryTarget.Component });
72
- NgtsQuadraticBezierLine.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.5", 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]="get('points')"
76
- [color]="get('color')"
77
- [vertexColors]="get('vertexColors')"
78
- [resolution]="get('resolution')"
79
- [lineWidth]="get('lineWidth')"
80
- [alphaToCoverage]="get('alphaToCoverage')"
81
- [dashed]="get('dashed')"
82
- [dashScale]="get('dashScale')"
83
- [dashSize]="get('dashSize')"
84
- [dashOffset]="get('dashOffset')"
85
- [gapSize]="get('gapSize')"
86
- [wireframe]="get('wireframe')"
87
- [worldUnits]="get('worldUnits')"
88
- />
89
- `, isInline: true, dependencies: [{ kind: "component", type: NgtsLine, selector: "ngts-line[points]", inputs: ["lineRef", "points", "segments"] }] });
90
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImport: i0, type: NgtsQuadraticBezierLine, decorators: [{
91
- type: Component,
92
- args: [{
93
- selector: 'ngts-quadratic-bezier-line',
94
- standalone: true,
95
- template: `
96
- <ngts-line
97
- [lineRef]="lineRef"
98
- [points]="get('points')"
99
- [color]="get('color')"
100
- [vertexColors]="get('vertexColors')"
101
- [resolution]="get('resolution')"
102
- [lineWidth]="get('lineWidth')"
103
- [alphaToCoverage]="get('alphaToCoverage')"
104
- [dashed]="get('dashed')"
105
- [dashScale]="get('dashScale')"
106
- [dashSize]="get('dashSize')"
107
- [dashOffset]="get('dashOffset')"
108
- [gapSize]="get('gapSize')"
109
- [wireframe]="get('wireframe')"
110
- [worldUnits]="get('worldUnits')"
111
- />
112
- `,
113
- imports: [NgtsLine],
114
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
115
- }]
116
- }], propDecorators: { lineRef: [{
117
- type: Input
118
- }], start: [{
119
- type: Input
120
- }], end: [{
121
- type: Input
122
- }], mid: [{
123
- type: Input
124
- }], segments: [{
125
- type: Input
126
- }] } });
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhZHJhdGljLWJlemllci1saW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRocmVlLXNvYmEvYWJzdHJhY3Rpb25zL3NyYy9saWIvcXVhZHJhdGljLWJlemllci1saW5lL3F1YWRyYXRpYy1iZXppZXItbGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNqRixPQUFPLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBRS9CLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQUVuRCxNQUFNLENBQUMsR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQTBCOUIsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGFBQWE7SUF4QjFEOztRQXlCYSxVQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsU0FBVSxFQUFFLFNBQVUsRUFBRSxTQUFVLENBQUMsQ0FBQztRQUU1RSxZQUFPLEdBQUcsWUFBWSxFQUFTLENBQUM7S0E4RTVDO0lBNUVHLElBQWEsS0FBSyxDQUFDLEtBQStDO1FBQzlELElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFhLEdBQUcsQ0FBQyxHQUE2QztRQUMxRCxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBYSxHQUFH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LENBQUMsQ0FBQztTQUMzQjthQUFNO1lBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUNkLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtpQkFDUixLQUFLLEVBQUU7aUJBQ1AsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUM3QyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUMzRCxDQUFDO1NBQ0w7UUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7O29IQWhGUSx1QkFBdUI7d0dBQXZCLHVCQUF1QiwyTUFyQnRCOzs7Ozs7Ozs7Ozs7Ozs7OztLQWlCVCw0REFDUyxRQUFROzJGQUdULHVCQUF1QjtrQkF4Qm5DLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDRCQUE0QjtvQkFDdEMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FpQlQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO29CQUNuQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDcEM7OEJBSVksT0FBTztzQkFBZixLQUFLO2dCQUVPLEtBQUs7c0JBQWpCLEtBQUs7Z0JBSU8sR0FBRztzQkFBZixLQUFLO2dCQUlPLEdBQUc7c0JBQWYsS0FBSztnQkFJTyxRQUFRO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbmplY3ROZ3RSZWYsIHN0YXJ0V2l0aFVuZGVmaW5lZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBMaW5lMiB9IGZyb20gJ3RocmVlLXN0ZGxpYic7XG5pbXBvcnQgeyBOZ3RzTGluZSB9IGZyb20gJy4uL2xpbmUvbGluZSc7XG5pbXBvcnQgeyBOZ3RzTGluZUlucHV0IH0gZnJvbSAnLi4vbGluZS9saW5lLWlucHV0JztcblxuY29uc3QgdiA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd0cy1xdWFkcmF0aWMtYmV6aWVyLWxpbmUnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5ndHMtbGluZVxuICAgICAgICAgICAgW2xpbmVSZWZdPVwibGluZVJlZlwiXG4gICAgICAgICAgICBbcG9pbnRzXT1cImdldCgncG9pbnRzJylcIlxuICAgICAgICAgICAgW2NvbG9yXT1cImdldCgnY29sb3InKVwiXG4gICAgICAgICAgICBbdmVydGV4Q29sb3JzXT1cImdldCgndmVydGV4Q29sb3JzJylcIlxuICAgICAgICAgICAgW3Jlc29sdXRpb25dPVwiZ2V0KCdyZXNvbHV0aW9uJylcIlxuICAgICAgICAgICAgW2xpbmVXaWR0aF09XCJnZXQoJ2xpbmVXaWR0aCcpXCJcbiAgICAgICAgICAgIFthbHBoYVRvQ292ZXJhZ2VdPVwiZ2V0KCdhbHBoYVRvQ292ZXJhZ2UnKVwiXG4gICAgICAgICAgICBbZGFzaGVkXT1cImdldCgnZGFzaGVkJylcIlxuICAgICAgICAgICAgW2Rhc2hTY2FsZV09XCJnZXQoJ2Rhc2hTY2FsZScpXCJcbiAgICAgICAgICAgIFtkYXNoU2l6ZV09XCJnZXQoJ2Rhc2hTaXplJylcIlxuICAgICAgICAgICAgW2Rhc2hPZmZzZXRdPVwiZ2V0KCdkYXNoT2Zmc2V0JylcIlxuICAgICAgICAgICAgW2dhcFNpemVdPVwiZ2V0KCdnYXBTaXplJylcIlxuICAgICAgICAgICAgW3dpcmVmcmFtZV09XCJnZXQoJ3dpcmVmcmFtZScpXCJcbiAgICAgICAgICAgIFt3b3JsZFVuaXRzXT1cImdldCgnd29ybGRVbml0cycpXCJcbiAgICAgICAgLz5cbiAgICBgLFxuICAgIGltcG9ydHM6IFtOZ3RzTGluZV0sXG4gICAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzUXVhZHJhdGljQmV6aWVyTGluZSBleHRlbmRzIE5ndHNMaW5lSW5wdXQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHJlYWRvbmx5IGN1cnZlID0gbmV3IFRIUkVFLlF1YWRyYXRpY0JlemllckN1cnZlMyh1bmRlZmluZWQhLCB1bmRlZmluZWQhLCB1bmRlZmluZWQhKTtcblxuICAgIEBJbnB1dCgpIGxpbmVSZWYgPSBpbmplY3ROZ3RSZWY8TGluZTI+KCk7XG5cbiAgICBASW5wdXQoKSBzZXQgc3RhcnQoc3RhcnQ6IFRIUkVFLlZlY3RvcjMgfCBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl0pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBzdGFydCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgZW5kKGVuZDogVEhSRUUuVmVjdG9yMyB8IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSkge1xuICAgICAgICB0aGlzLnNldCh7IGVuZCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgbWlkKG1pZDogVEhSRUUuVmVjdG9yMyB8IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSkge1xuICAgICAgICB0aGlzLnNldCh7IG1pZCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgc2VnbWVudHMoc2VnbWVudHM6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IHNlZ21lbnRzIH0pO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIGluaXRpYWxpemUoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmluaXRpYWxpemUoKTtcbiAgICAgICAgdGhpcy5zZXQoeyBzdGFydDogWzAsIDAsIDBdLCBlbmQ6IFswLCAwLCAwXSwgc2VnbWVudHM6IDIwIH0pO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmNvbm5lY3QoXG4gICAgICAgICAgICAncG9pbnRzJyxcbiAgICAgICAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0KCdzdGFydCcpLFxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0KCdlbmQnKSxcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdCgnbWlkJykucGlwZShzdGFydFdpdGhVbmRlZmluZWQoKSksXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3QoJ3NlZ21lbnRzJyksXG4gICAgICAgICAgICBdKS5waXBlKG1hcCgoW3N0YXJ0LCBlbmQsIG1pZCwgc2VnbWVudHNdKSA9PiB0aGlzLmdldFBvaW50cyhzdGFydCwgZW5kLCBtaWQsIHNlZ21lbnRzKSkpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5yZXBsYWNlU2V0UG9pbnRzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXBsYWNlU2V0UG9pbnRzKCkge1xuICAgICAgICB0aGlzLmhvbGQodGhpcy5saW5lUmVmLiQsIChsaW5lKSA9PiB7XG4gICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgbGluZSBhcyB1bmtub3duIGFzIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0UG9pbnRzOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydDogVEhSRUUuVmVjdG9yMyB8IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZDogVEhSRUUuVmVjdG9yMyB8IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pZDogVEhSRUUuVmVjdG9yMyB8IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXVxuICAgICAgICAgICAgICAgICAgICApID0+IHZvaWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKS5zZXRQb2ludHMgPSAoc3RhcnQsIGVuZCwgbWlkKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcG9pbnRzID0gdGhpcy5nZXRQb2ludHMoc3RhcnQsIGVuZCwgbWlkKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5saW5lUmVmLm5hdGl2ZUVsZW1lbnQuZ2VvbWV0cnkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5saW5lUmVmLm5hdGl2ZUVsZW1lbnQuZ2VvbWV0cnkuc2V0UG9zaXRpb25zKHBvaW50cy5tYXAoKHApID0+IHAudG9BcnJheSgpKS5mbGF0KCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0UG9pbnRzKFxuICAgICAgICBzdGFydDogVEhSRUUuVmVjdG9yMyB8IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSxcbiAgICAgICAgZW5kOiBUSFJFRS5WZWN0b3IzIHwgW251bWJlciwgbnVtYmVyLCBudW1iZXJdLFxuICAgICAgICBtaWQ/OiBUSFJFRS5WZWN0b3IzIHwgW251bWJlciwgbnVtYmVyLCBudW1iZXJdLFxuICAgICAgICBzZWdtZW50cyA9IDIwXG4gICAgKSB7XG4gICAgICAgIGlmIChzdGFydCBpbnN0YW5jZW9mIFRIUkVFLlZlY3RvcjMpIHRoaXMuY3VydmUudjAuY29weShzdGFydCk7XG4gICAgICAgIGVsc2UgdGhpcy5jdXJ2ZS52MC5zZXQoLi4uKHN0YXJ0IGFzIFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSkpO1xuICAgICAgICBpZiAoZW5kIGluc3RhbmNlb2YgVEhSRUUuVmVjdG9yMykgdGhpcy5jdXJ2ZS52Mi5jb3B5KGVuZCk7XG4gICAgICAgIGVsc2UgdGhpcy5jdXJ2ZS52Mi5zZXQoLi4uKGVuZCBhcyBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl0pKTtcbiAgICAgICAgaWYgKG1pZCBpbnN0YW5jZW9mIFRIUkVFLlZlY3RvcjMpIHtcbiAgICAgICAgICAgIHRoaXMuY3VydmUudjEuY29weShtaWQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jdXJ2ZS52MS5jb3B5KFxuICAgICAgICAgICAgICAgIHRoaXMuY3VydmUudjBcbiAgICAgICAgICAgICAgICAgICAgLmNsb25lKClcbiAgICAgICAgICAgICAgICAgICAgLmFkZCh0aGlzLmN1cnZlLnYyLmNsb25lKCkuc3ViKHRoaXMuY3VydmUudjApKVxuICAgICAgICAgICAgICAgICAgICAuYWRkKHYuc2V0KDAsIHRoaXMuY3VydmUudjAueSAtIHRoaXMuY3VydmUudjIueSwgMCkpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmN1cnZlLmdldFBvaW50cyhzZWdtZW50cyk7XG4gICAgfVxufVxuIl19