angular-three-soba 2.0.0-beta.2 → 2.0.0-beta.21

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 (321) 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 +24 -12
  4. package/abstractions/grid/grid.d.ts +50 -0
  5. package/abstractions/index.d.ts +2 -7
  6. package/abstractions/text/text.d.ts +10 -5
  7. package/abstractions/text-3d/text-3d.d.ts +51 -41
  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 +31 -12
  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 +180 -0
  19. package/esm2022/abstractions/index.mjs +3 -8
  20. package/esm2022/abstractions/text/text.mjs +123 -124
  21. package/esm2022/abstractions/text-3d/text-3d.mjs +120 -115
  22. package/esm2022/cameras/camera/camera-content.mjs +6 -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 +105 -85
  29. package/esm2022/gizmos/angular-three-soba-gizmos.mjs +5 -0
  30. package/esm2022/gizmos/gizmo-helper/gizmo-helper.mjs +197 -0
  31. package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/constants.mjs +31 -0
  32. package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +93 -0
  33. package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +150 -0
  34. package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-input.mjs +66 -0
  35. package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube.mjs +71 -0
  36. package/esm2022/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +195 -0
  37. package/esm2022/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport.mjs +272 -0
  38. package/esm2022/gizmos/index.mjs +4 -0
  39. package/esm2022/loaders/gltf-loader/gltf-loader.mjs +3 -6
  40. package/esm2022/loaders/loader/loader.mjs +92 -87
  41. package/esm2022/loaders/progress/progress.mjs +29 -29
  42. package/esm2022/loaders/texture-loader/texture-loader.mjs +4 -4
  43. package/esm2022/materials/index.mjs +2 -1
  44. package/esm2022/materials/mesh-distort-material/mesh-distort-material.mjs +60 -51
  45. package/esm2022/materials/mesh-reflector-material/mesh-reflector-material.mjs +239 -255
  46. package/esm2022/materials/mesh-refraction-material/mesh-refraction-material.mjs +102 -99
  47. package/esm2022/materials/mesh-transmission-material/mesh-transmission-material.mjs +167 -146
  48. package/esm2022/materials/mesh-wobble-material/mesh-wobble-material.mjs +44 -42
  49. package/esm2022/materials/point-material/point-material.mjs +50 -0
  50. package/esm2022/misc/animations/animations.mjs +36 -32
  51. package/esm2022/misc/bake-shadows/bake-shadows.mjs +13 -13
  52. package/esm2022/misc/caustics/caustics.mjs +387 -0
  53. package/esm2022/misc/decal/decal.mjs +187 -0
  54. package/esm2022/misc/depth-buffer/depth-buffer.mjs +33 -35
  55. package/esm2022/misc/example/example.mjs +160 -0
  56. package/esm2022/misc/fbo/fbo.mjs +35 -35
  57. package/esm2022/misc/html/html-wrapper.mjs +478 -0
  58. package/esm2022/misc/html/html.mjs +304 -0
  59. package/esm2022/misc/index.mjs +10 -1
  60. package/esm2022/misc/sampler/sampler.mjs +142 -0
  61. package/esm2022/misc/shadow/shadow.mjs +111 -0
  62. package/esm2022/misc/stats-gl/stats-gl.mjs +61 -0
  63. package/esm2022/misc/trail/trail.mjs +209 -0
  64. package/esm2022/misc/trail-texture/inject-trail-texture.mjs +17 -0
  65. package/esm2022/misc/trail-texture/trail-texture.mjs +106 -0
  66. package/esm2022/modifiers/angular-three-soba-modifiers.mjs +5 -0
  67. package/esm2022/modifiers/curve-modifier/curve-modifier.mjs +64 -0
  68. package/esm2022/modifiers/index.mjs +2 -0
  69. package/esm2022/performances/adaptive-dpr/adaptive-dpr.mjs +44 -0
  70. package/esm2022/performances/adaptive-events/adaptive-events.mjs +27 -0
  71. package/esm2022/performances/angular-three-soba-performances.mjs +5 -0
  72. package/esm2022/performances/index.mjs +8 -0
  73. package/esm2022/performances/instances/instances.mjs +220 -0
  74. package/esm2022/performances/instances/position-mesh.mjs +52 -0
  75. package/esm2022/performances/points/points-input.mjs +64 -0
  76. package/esm2022/performances/points/points.mjs +326 -0
  77. package/esm2022/performances/points/position-point.mjs +54 -0
  78. package/esm2022/performances/segments/segment-object.mjs +9 -0
  79. package/esm2022/performances/segments/segments.mjs +182 -0
  80. package/esm2022/shaders/blur-pass/blur-pass.mjs +2 -2
  81. package/esm2022/shaders/caustics/caustics-material.mjs +130 -0
  82. package/esm2022/shaders/caustics/caustics-projection-material.mjs +31 -0
  83. package/esm2022/shaders/convolution-material/convolution-material.mjs +1 -1
  84. package/esm2022/shaders/discard-material/discard-material.mjs +1 -1
  85. package/esm2022/shaders/grid-material/grid-material.mjs +77 -0
  86. package/esm2022/shaders/index.mjs +6 -3
  87. package/esm2022/shaders/mesh-distort-material/mesh-distort-material.mjs +42 -41
  88. package/esm2022/shaders/mesh-reflector-material/mesh-reflector-material.mjs +2 -2
  89. package/esm2022/shaders/mesh-refraction-material/mesh-refraction-material.mjs +2 -2
  90. package/esm2022/shaders/mesh-transmission-material/mesh-transmission-material.mjs +4 -4
  91. package/esm2022/shaders/mesh-wobble-material/mesh-wobble-material.mjs +1 -1
  92. package/esm2022/shaders/shader-material/shader-material.mjs +1 -1
  93. package/esm2022/shaders/soft-shadow-material/soft-shadow-material.mjs +17 -25
  94. package/esm2022/shaders/sparkles-material/sparkles-material.mjs +32 -46
  95. package/esm2022/shaders/spot-light-material/spot-light-material.mjs +7 -7
  96. package/esm2022/shaders/star-field-material/star-field-material.mjs +3 -2
  97. package/esm2022/shaders/wireframe-material/wireframe-material.mjs +247 -0
  98. package/esm2022/staging/accumulative-shadows/accumulative-shadows.mjs +160 -176
  99. package/esm2022/staging/accumulative-shadows/progressive-light-map.mjs +1 -1
  100. package/esm2022/staging/accumulative-shadows/randomized-lights.mjs +126 -128
  101. package/esm2022/staging/backdrop/backdrop.mjs +77 -0
  102. package/esm2022/staging/bb-anchor/bb-anchor.mjs +69 -0
  103. package/esm2022/staging/bounds/bounds.mjs +144 -143
  104. package/esm2022/staging/camera-shake/camera-shake.mjs +86 -80
  105. package/esm2022/staging/center/center.mjs +129 -112
  106. package/esm2022/staging/cloud/cloud.mjs +118 -124
  107. package/esm2022/staging/contact-shadows/contact-shadows.mjs +131 -134
  108. package/esm2022/staging/environment/assets.mjs +12 -12
  109. package/esm2022/staging/environment/environment-cube.mjs +28 -30
  110. package/esm2022/staging/environment/environment-ground.mjs +17 -19
  111. package/esm2022/staging/environment/environment-input.mjs +98 -85
  112. package/esm2022/staging/environment/environment-map.mjs +33 -33
  113. package/esm2022/staging/environment/environment-portal.mjs +75 -97
  114. package/esm2022/staging/environment/environment.mjs +34 -51
  115. package/esm2022/staging/environment/utils.mjs +37 -15
  116. package/esm2022/staging/float/float.mjs +70 -58
  117. package/esm2022/staging/index.mjs +7 -3
  118. package/esm2022/staging/matcap-texture/matcap-texture.mjs +64 -0
  119. package/esm2022/staging/normal-texture/normal-texture.mjs +53 -0
  120. package/esm2022/staging/sky/sky.mjs +85 -80
  121. package/esm2022/staging/sparkles/sparkles.mjs +108 -105
  122. package/esm2022/staging/spot-light/shadow-mesh-input.mjs +63 -0
  123. package/esm2022/staging/spot-light/shadow-mesh.mjs +266 -0
  124. package/esm2022/staging/spot-light/spot-light-input.mjs +67 -58
  125. package/esm2022/staging/spot-light/spot-light.mjs +51 -64
  126. package/esm2022/staging/spot-light/volumetric-mesh.mjs +67 -70
  127. package/esm2022/staging/stage/stage.mjs +305 -290
  128. package/esm2022/staging/stars/stars.mjs +101 -102
  129. package/esm2022/staging/wireframe/wireframe-input.mjs +191 -0
  130. package/esm2022/staging/wireframe/wireframe.mjs +228 -0
  131. package/esm2022/utils/angular-three-soba-utils.mjs +5 -0
  132. package/esm2022/utils/content/content.mjs +15 -0
  133. package/esm2022/utils/index.mjs +2 -0
  134. package/fesm2022/angular-three-soba-abstractions.mjs +514 -1947
  135. package/fesm2022/angular-three-soba-abstractions.mjs.map +1 -1
  136. package/fesm2022/angular-three-soba-cameras.mjs +302 -259
  137. package/fesm2022/angular-three-soba-cameras.mjs.map +1 -1
  138. package/fesm2022/angular-three-soba-controls.mjs +104 -83
  139. package/fesm2022/angular-three-soba-controls.mjs.map +1 -1
  140. package/fesm2022/angular-three-soba-gizmos.mjs +1043 -0
  141. package/fesm2022/angular-three-soba-gizmos.mjs.map +1 -0
  142. package/fesm2022/angular-three-soba-loaders.mjs +121 -117
  143. package/fesm2022/angular-three-soba-loaders.mjs.map +1 -1
  144. package/fesm2022/angular-three-soba-materials.mjs +662 -592
  145. package/fesm2022/angular-three-soba-materials.mjs.map +1 -1
  146. package/fesm2022/angular-three-soba-misc.mjs +2214 -105
  147. package/fesm2022/angular-three-soba-misc.mjs.map +1 -1
  148. package/fesm2022/angular-three-soba-modifiers.mjs +71 -0
  149. package/fesm2022/angular-three-soba-modifiers.mjs.map +1 -0
  150. package/fesm2022/angular-three-soba-performances.mjs +956 -0
  151. package/fesm2022/angular-three-soba-performances.mjs.map +1 -0
  152. package/fesm2022/angular-three-soba-shaders.mjs +549 -252
  153. package/fesm2022/angular-three-soba-shaders.mjs.map +1 -1
  154. package/fesm2022/angular-three-soba-staging.mjs +2899 -2563
  155. package/fesm2022/angular-three-soba-staging.mjs.map +1 -1
  156. package/fesm2022/angular-three-soba-utils.mjs +22 -0
  157. package/fesm2022/angular-three-soba-utils.mjs.map +1 -0
  158. package/gizmos/README.md +3 -0
  159. package/gizmos/gizmo-helper/gizmo-helper.d.ts +69 -0
  160. package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.d.ts +22 -0
  161. package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.d.ts +29 -0
  162. package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-input.d.ts +33 -0
  163. package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube.d.ts +10 -0
  164. package/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.d.ts +40 -0
  165. package/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport.d.ts +30 -0
  166. package/gizmos/index.d.ts +3 -0
  167. package/loaders/gltf-loader/gltf-loader.d.ts +4 -3
  168. package/loaders/loader/loader.d.ts +19 -17
  169. package/loaders/progress/progress.d.ts +1 -1
  170. package/loaders/texture-loader/texture-loader.d.ts +2 -2
  171. package/materials/index.d.ts +1 -0
  172. package/materials/mesh-distort-material/mesh-distort-material.d.ts +25 -15
  173. package/materials/mesh-reflector-material/mesh-reflector-material.d.ts +74 -56
  174. package/materials/mesh-refraction-material/mesh-refraction-material.d.ts +33 -21
  175. package/materials/mesh-transmission-material/mesh-transmission-material.d.ts +55 -39
  176. package/materials/mesh-wobble-material/mesh-wobble-material.d.ts +19 -10
  177. package/materials/point-material/point-material.d.ts +24 -0
  178. package/metadata.json +1 -0
  179. package/misc/animations/animations.d.ts +6 -4
  180. package/misc/caustics/caustics.d.ts +87 -0
  181. package/misc/decal/decal.d.ts +49 -0
  182. package/misc/depth-buffer/depth-buffer.d.ts +2 -2
  183. package/misc/example/example.d.ts +81 -0
  184. package/misc/fbo/fbo.d.ts +2 -2
  185. package/misc/html/html-wrapper.d.ts +559 -0
  186. package/misc/html/html.d.ts +214 -0
  187. package/misc/index.d.ts +9 -0
  188. package/misc/sampler/sampler.d.ts +67 -0
  189. package/misc/shadow/shadow.d.ts +37 -0
  190. package/misc/stats-gl/stats-gl.d.ts +24 -0
  191. package/misc/trail/trail.d.ts +57 -0
  192. package/misc/trail-texture/inject-trail-texture.d.ts +9 -0
  193. package/misc/trail-texture/trail-texture.d.ts +50 -0
  194. package/modifiers/README.md +3 -0
  195. package/modifiers/curve-modifier/curve-modifier.d.ts +23 -0
  196. package/modifiers/index.d.ts +1 -0
  197. package/package.json +31 -16
  198. package/performances/README.md +3 -0
  199. package/performances/adaptive-dpr/adaptive-dpr.d.ts +14 -0
  200. package/{performance/adaptive → performances/adaptive-events}/adaptive-events.d.ts +3 -0
  201. package/performances/index.d.ts +7 -0
  202. package/performances/instances/instances.d.ts +79 -0
  203. package/{performance → performances}/instances/position-mesh.d.ts +1 -1
  204. package/performances/points/points-input.d.ts +32 -0
  205. package/performances/points/points.d.ts +92 -0
  206. package/performances/points/position-point.d.ts +11 -0
  207. package/performances/segments/segment-object.d.ts +7 -0
  208. package/performances/segments/segments.d.ts +124 -0
  209. package/shaders/grid-material/grid-material.d.ts +37 -0
  210. package/shaders/index.d.ts +5 -2
  211. package/shaders/mesh-distort-material/mesh-distort-material.d.ts +147 -2
  212. package/shaders/mesh-transmission-material/mesh-transmission-material.d.ts +1 -1
  213. package/shaders/shader-material/shader-material.d.ts +2 -2
  214. package/shaders/soft-shadow-material/soft-shadow-material.d.ts +10 -1
  215. package/shaders/sparkles-material/sparkles-material.d.ts +15 -1
  216. package/shaders/spot-light-material/spot-light-material.d.ts +11 -2
  217. package/shaders/star-field-material/star-field-material.d.ts +11 -1
  218. package/shaders/wireframe-material/wireframe-material.d.ts +58 -0
  219. package/staging/accumulative-shadows/accumulative-shadows.d.ts +89 -39
  220. package/staging/accumulative-shadows/randomized-lights.d.ts +40 -27
  221. package/staging/backdrop/backdrop.d.ts +30 -0
  222. package/staging/bb-anchor/bb-anchor.d.ts +27 -0
  223. package/staging/bounds/bounds.d.ts +100 -24
  224. package/staging/camera-shake/camera-shake.d.ts +30 -19
  225. package/staging/center/center.d.ts +43 -35
  226. package/staging/cloud/cloud.d.ts +26 -23
  227. package/staging/contact-shadows/contact-shadows.d.ts +41 -28
  228. package/staging/environment/assets.d.ts +9 -9
  229. package/staging/environment/environment-cube.d.ts +9 -5
  230. package/staging/environment/environment-ground.d.ts +7 -7
  231. package/staging/environment/environment-input.d.ts +37 -37
  232. package/staging/environment/environment-map.d.ts +10 -5
  233. package/staging/environment/environment-portal.d.ts +10 -5
  234. package/staging/environment/environment.d.ts +0 -4
  235. package/staging/environment/utils.d.ts +2 -2
  236. package/staging/float/float.d.ts +14 -10
  237. package/staging/index.d.ts +6 -2
  238. package/staging/matcap-texture/matcap-texture.d.ts +13 -0
  239. package/staging/normal-texture/normal-texture.d.ts +16 -0
  240. package/staging/sky/sky.d.ts +28 -21
  241. package/staging/sparkles/sparkles.d.ts +36 -22
  242. package/staging/spot-light/shadow-mesh-input.d.ts +29 -0
  243. package/staging/spot-light/shadow-mesh.d.ts +37 -0
  244. package/staging/spot-light/spot-light-input.d.ts +25 -25
  245. package/staging/spot-light/spot-light.d.ts +31 -15
  246. package/staging/spot-light/volumetric-mesh.d.ts +15 -9
  247. package/staging/stage/stage.d.ts +89 -65
  248. package/staging/stars/stars.d.ts +28 -17
  249. package/staging/wireframe/wireframe-input.d.ts +65 -0
  250. package/staging/wireframe/wireframe.d.ts +28 -0
  251. package/utils/README.md +3 -0
  252. package/utils/content/content.d.ts +8 -0
  253. package/utils/index.d.ts +1 -0
  254. package/web-types.json +1 -0
  255. package/abstractions/catmull-rom-line/catmull-rom-line.d.ts +0 -25
  256. package/abstractions/cubic-bezier-line/cubic-bezier-line.d.ts +0 -25
  257. package/abstractions/gizmo-helper/gizmo-helper.d.ts +0 -34
  258. package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.d.ts +0 -22
  259. package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.d.ts +0 -30
  260. package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.d.ts +0 -32
  261. package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube.d.ts +0 -14
  262. package/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.d.ts +0 -47
  263. package/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport.d.ts +0 -40
  264. package/abstractions/line/line-input.d.ts +0 -42
  265. package/abstractions/line/line.d.ts +0 -35
  266. package/abstractions/quadratic-bezier-line/quadratic-bezier-line.d.ts +0 -23
  267. package/esm2022/abstractions/catmull-rom-line/catmull-rom-line.mjs +0 -131
  268. package/esm2022/abstractions/cubic-bezier-line/cubic-bezier-line.mjs +0 -113
  269. package/esm2022/abstractions/gizmo-helper/gizmo-helper.mjs +0 -210
  270. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/constants.mjs +0 -31
  271. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +0 -95
  272. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +0 -155
  273. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.mjs +0 -62
  274. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube.mjs +0 -80
  275. package/esm2022/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +0 -206
  276. package/esm2022/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport.mjs +0 -273
  277. package/esm2022/abstractions/line/line-input.mjs +0 -113
  278. package/esm2022/abstractions/line/line.mjs +0 -165
  279. package/esm2022/abstractions/quadratic-bezier-line/quadratic-bezier-line.mjs +0 -128
  280. package/esm2022/performance/adaptive/adaptive-dpr.mjs +0 -46
  281. package/esm2022/performance/adaptive/adaptive-events.mjs +0 -31
  282. package/esm2022/performance/angular-three-soba-performance.mjs +0 -5
  283. package/esm2022/performance/detailed/detailed.mjs +0 -61
  284. package/esm2022/performance/index.mjs +0 -7
  285. package/esm2022/performance/instances/instance.mjs +0 -48
  286. package/esm2022/performance/instances/instances.mjs +0 -189
  287. package/esm2022/performance/instances/position-mesh.mjs +0 -52
  288. package/esm2022/performance/stats/stats.mjs +0 -79
  289. package/esm2022/shaders/caustics-material/caustics-material.mjs +0 -128
  290. package/esm2022/shaders/caustics-material/caustics-projection-material.mjs +0 -33
  291. package/esm2022/staging/caustics/caustisc.mjs +0 -384
  292. package/esm2022/staging/spot-light/spot-light-shadow-mesh-input.mjs +0 -57
  293. package/esm2022/staging/spot-light/spot-light-shadow-mesh.mjs +0 -256
  294. package/fesm2022/angular-three-soba-performance.mjs +0 -487
  295. package/fesm2022/angular-three-soba-performance.mjs.map +0 -1
  296. package/performance/README.md +0 -3
  297. package/performance/adaptive/adaptive-dpr.d.ts +0 -8
  298. package/performance/detailed/detailed.d.ts +0 -20
  299. package/performance/index.d.ts +0 -6
  300. package/performance/instances/instance.d.ts +0 -9
  301. package/performance/instances/instances.d.ts +0 -35
  302. package/performance/stats/stats.d.ts +0 -18
  303. package/plugin/generators.json +0 -19
  304. package/plugin/libs/plugin/README.md +0 -11
  305. package/plugin/package.json +0 -9
  306. package/plugin/src/generators/init/compat.d.ts +0 -2
  307. package/plugin/src/generators/init/compat.js +0 -6
  308. package/plugin/src/generators/init/compat.js.map +0 -1
  309. package/plugin/src/generators/init/init.d.ts +0 -4
  310. package/plugin/src/generators/init/init.js +0 -22
  311. package/plugin/src/generators/init/init.js.map +0 -1
  312. package/plugin/src/generators/init/schema.json +0 -6
  313. package/plugin/src/index.d.ts +0 -1
  314. package/plugin/src/index.js +0 -6
  315. package/plugin/src/index.js.map +0 -1
  316. package/staging/caustics/caustisc.d.ts +0 -70
  317. package/staging/spot-light/spot-light-shadow-mesh-input.d.ts +0 -29
  318. package/staging/spot-light/spot-light-shadow-mesh.d.ts +0 -38
  319. /package/{abstractions → gizmos}/gizmo-helper/gizmo-viewcube/constants.d.ts +0 -0
  320. /package/shaders/{caustics-material → caustics}/caustics-material.d.ts +0 -0
  321. /package/shaders/{caustics-material → caustics}/caustics-projection-material.d.ts +0 -0
@@ -1,6 +1,6 @@
1
1
  import { NgIf } from '@angular/common';
2
2
  import { Component, computed, CUSTOM_ELEMENTS_SCHEMA, effect, inject } from '@angular/core';
3
- import { extend, injectBeforeRender, injectNgtRef, NgtArgs, NgtPortal, NgtPortalContent, NgtStore, prepare, requestAnimationInInjectionContext, } from 'angular-three';
3
+ import { extend, injectBeforeRender, injectNgtRef, injectNgtStore, NgtArgs, NgtPortal, NgtPortalContent, prepare, } from 'angular-three';
4
4
  import * as THREE from 'three';
5
5
  import { CubeCamera } from 'three';
6
6
  import { NgtsEnvironmentCube } from './environment-cube';
@@ -9,127 +9,105 @@ import { NgtsEnvironmentMap } from './environment-map';
9
9
  import { setEnvProps } from './utils';
10
10
  import * as i0 from "@angular/core";
11
11
  extend({ CubeCamera });
12
- class NgtsEnvironmentPortal {
13
- #store;
14
- #fbo;
12
+ export class NgtsEnvironmentPortal {
15
13
  constructor() {
16
14
  this.environmentInput = inject(NgtsEnvironmentInput);
17
- this.#store = inject(NgtStore);
15
+ this.store = injectNgtStore();
16
+ this.gl = this.store.select('gl');
17
+ this.scene = this.store.select('scene');
18
18
  this.virtualSceneRef = injectNgtRef(prepare(new THREE.Scene()));
19
19
  this.cubeCameraRef = injectNgtRef();
20
- this.#fbo = computed(() => {
21
- const fbo = new THREE.WebGLCubeRenderTarget(this.environmentInput.environmentResolution());
20
+ this.fbo = computed(() => {
21
+ const fbo = new THREE.WebGLCubeRenderTarget(this.environmentInput.resolution());
22
22
  fbo.texture.type = THREE.HalfFloatType;
23
23
  return fbo;
24
24
  });
25
- this.cameraArgs = computed(() => [
26
- this.environmentInput.environmentNear(),
27
- this.environmentInput.environmentFar(),
28
- this.#fbo(),
29
- ]);
30
- this.environmentInput.patch({
31
- near: 1,
32
- far: 1000,
33
- resolution: 256,
34
- frames: 1,
35
- background: false,
36
- preset: undefined,
25
+ this.cameraArgs = computed(() => [this.environmentInput.near(), this.environmentInput.far(), this.fbo()]);
26
+ effect(() => {
27
+ this.environmentInput.inputs.patch({
28
+ near: 1,
29
+ far: 1000,
30
+ resolution: 256,
31
+ frames: 1,
32
+ background: false,
33
+ preset: undefined,
34
+ });
37
35
  });
38
- requestAnimationInInjectionContext(() => {
39
- this.#setEnvProps();
40
- });
41
- injectBeforeRender(this.#onBeforeRender.bind(this, 1));
36
+ this.setEnvProps();
37
+ this.beforeRender();
42
38
  }
43
- #setEnvProps() {
44
- const gl = this.#store.select('gl');
45
- const scene = this.#store.select('scene');
46
- const trigger = computed(() => ({
47
- gl: gl(),
48
- defaultScene: scene(),
49
- fbo: this.#fbo(),
50
- scene: this.environmentInput.environmentScene(),
51
- background: this.environmentInput.environmentBackground(),
52
- frames: this.environmentInput.environmentFrames(),
53
- blur: this.environmentInput.environmentBlur(),
54
- virtualScene: this.virtualSceneRef.nativeElement,
55
- cubeCamera: this.cubeCameraRef.nativeElement,
56
- }));
39
+ setEnvProps() {
57
40
  effect((onCleanup) => {
58
- const { virtualScene, blur, frames, background, scene, fbo, defaultScene, gl, cubeCamera } = trigger();
41
+ const [virtualScene, blur, frames, background, scene, fbo, defaultScene, gl, cubeCamera] = [
42
+ this.virtualSceneRef.nativeElement,
43
+ this.environmentInput.blur(),
44
+ this.environmentInput.frames(),
45
+ this.environmentInput.background(),
46
+ this.environmentInput.scene(),
47
+ this.fbo(),
48
+ this.scene(),
49
+ this.gl(),
50
+ this.cubeCameraRef.nativeElement,
51
+ ];
59
52
  if (!cubeCamera || !virtualScene)
60
53
  return;
61
54
  if (frames === 1)
62
55
  cubeCamera.update(gl, virtualScene);
63
- onCleanup(setEnvProps(background, scene, defaultScene, fbo.texture, blur));
56
+ const cleanUp = setEnvProps(background, scene, defaultScene, fbo.texture, blur);
57
+ onCleanup(cleanUp);
64
58
  });
65
59
  }
66
- #onBeforeRender(count, { gl }) {
67
- const { frames } = this.environmentInput.get();
68
- if (frames === Infinity || count < frames) {
69
- const camera = this.cubeCameraRef.nativeElement;
70
- const virtualScene = this.virtualSceneRef.nativeElement;
71
- if (camera && virtualScene) {
72
- camera.update(gl, virtualScene);
73
- count++;
60
+ beforeRender() {
61
+ let count = 1;
62
+ injectBeforeRender(({ gl }) => {
63
+ const { frames } = this.environmentInput.inputs.get();
64
+ if (frames === Infinity || count < frames) {
65
+ const camera = this.cubeCameraRef.nativeElement;
66
+ const virtualScene = this.virtualSceneRef.nativeElement;
67
+ if (camera && virtualScene) {
68
+ camera.update(gl, virtualScene);
69
+ count++;
70
+ }
74
71
  }
75
- }
72
+ });
76
73
  }
77
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsEnvironmentPortal, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
78
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: NgtsEnvironmentPortal, isStandalone: true, selector: "ngts-environment-portal", ngImport: i0, template: `
79
- <ngt-portal [container]="virtualSceneRef">
80
- <ng-template ngtPortalContent>
81
- <ng-content />
82
- <ngt-cube-camera *args="cameraArgs()" [ref]="cubeCameraRef" />
83
- <ng-container
84
- *ngIf="
85
- environmentInput.environmentFiles() || environmentInput.environmentPreset();
86
- else environmentMap
87
- "
88
- >
89
- <ngts-environment-cube [background]="true" />
90
- </ng-container>
91
- <ng-template #environmentMap>
92
- <ngts-environment-map
93
- *ngIf="environmentInput.environmentMap() as map"
94
- [background]="true"
95
- [map]="map"
96
- />
97
- </ng-template>
98
- </ng-template>
99
- </ngt-portal>
100
- `, isInline: true, dependencies: [{ kind: "component", type: NgtPortal, selector: "ngt-portal", inputs: ["container", "state", "autoRender", "autoRenderPriority"], outputs: ["beforeRender"] }, { kind: "directive", type: NgtPortalContent, selector: "ng-template[ngtPortalContent]" }, { kind: "directive", type: NgtsEnvironmentMap, selector: "ngts-environment-map", inputs: ["map", "background"] }, { kind: "directive", type: NgtsEnvironmentCube, selector: "ngts-environment-cube", inputs: ["background"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }] }); }
74
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: NgtsEnvironmentPortal, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
75
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: NgtsEnvironmentPortal, isStandalone: true, selector: "ngts-environment-portal", ngImport: i0, template: `
76
+ <ngt-portal [container]="virtualSceneRef">
77
+ <ng-template ngtPortalContent>
78
+ <ng-content />
79
+ <ngt-cube-camera *args="cameraArgs()" [ref]="cubeCameraRef" />
80
+ <ng-container *ngIf="environmentInput.files() || environmentInput.preset(); else environmentMap">
81
+ <ngts-environment-cube [background]="true" />
82
+ </ng-container>
83
+ <ng-template #environmentMap>
84
+ <ngts-environment-map *ngIf="environmentInput.map() as map" [background]="true" [map]="map" />
85
+ </ng-template>
86
+ </ng-template>
87
+ </ngt-portal>
88
+ `, isInline: true, dependencies: [{ kind: "component", type: NgtPortal, selector: "ngt-portal", inputs: ["container", "state", "autoRender", "autoRenderPriority"], outputs: ["beforeRender"] }, { kind: "directive", type: NgtPortalContent, selector: "ng-template[ngtPortalContent]" }, { kind: "directive", type: NgtsEnvironmentMap, selector: "ngts-environment-map", inputs: ["map", "background"] }, { kind: "directive", type: NgtsEnvironmentCube, selector: "ngts-environment-cube", inputs: ["background"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }] }); }
101
89
  }
102
- export { NgtsEnvironmentPortal };
103
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsEnvironmentPortal, decorators: [{
90
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: NgtsEnvironmentPortal, decorators: [{
104
91
  type: Component,
105
92
  args: [{
106
93
  selector: 'ngts-environment-portal',
107
94
  standalone: true,
108
95
  template: `
109
- <ngt-portal [container]="virtualSceneRef">
110
- <ng-template ngtPortalContent>
111
- <ng-content />
112
- <ngt-cube-camera *args="cameraArgs()" [ref]="cubeCameraRef" />
113
- <ng-container
114
- *ngIf="
115
- environmentInput.environmentFiles() || environmentInput.environmentPreset();
116
- else environmentMap
117
- "
118
- >
119
- <ngts-environment-cube [background]="true" />
120
- </ng-container>
121
- <ng-template #environmentMap>
122
- <ngts-environment-map
123
- *ngIf="environmentInput.environmentMap() as map"
124
- [background]="true"
125
- [map]="map"
126
- />
127
- </ng-template>
128
- </ng-template>
129
- </ngt-portal>
130
- `,
96
+ <ngt-portal [container]="virtualSceneRef">
97
+ <ng-template ngtPortalContent>
98
+ <ng-content />
99
+ <ngt-cube-camera *args="cameraArgs()" [ref]="cubeCameraRef" />
100
+ <ng-container *ngIf="environmentInput.files() || environmentInput.preset(); else environmentMap">
101
+ <ngts-environment-cube [background]="true" />
102
+ </ng-container>
103
+ <ng-template #environmentMap>
104
+ <ngts-environment-map *ngIf="environmentInput.map() as map" [background]="true" [map]="map" />
105
+ </ng-template>
106
+ </ng-template>
107
+ </ngt-portal>
108
+ `,
131
109
  imports: [NgtPortal, NgtPortalContent, NgtsEnvironmentMap, NgtsEnvironmentCube, NgIf, NgtArgs],
132
110
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
133
111
  }]
134
112
  }], ctorParameters: function () { return []; } });
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQtcG9ydGFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL3N0YWdpbmcvc3JjL2Vudmlyb25tZW50L2Vudmlyb25tZW50LXBvcnRhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQ0gsTUFBTSxFQUNOLGtCQUFrQixFQUNsQixZQUFZLEVBQ1osT0FBTyxFQUNQLFNBQVMsRUFDVCxnQkFBZ0IsRUFFaEIsUUFBUSxFQUNSLE9BQU8sRUFDUCxrQ0FBa0MsR0FDckMsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNuQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDOztBQUV0QyxNQUFNLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0FBRXZCLE1BNkJhLHFCQUFxQjtJQUVyQixNQUFNLENBQW9CO0lBSzFCLElBQUksQ0FJVjtJQU9IO1FBakJtQixxQkFBZ0IsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUMxRCxXQUFNLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTFCLG9CQUFlLEdBQUcsWUFBWSxDQUFjLE9BQU8sQ0FB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LENBQUMsS0FBYSxFQUFFLEVBQUUsRUFBRSxFQUFrQjtRQUNqRCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQy9DLElBQUksTUFBTSxLQUFLLFFBQVEsSUFBSSxLQUFLLEdBQUcsTUFBTyxFQUFFO1lBQ3hDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDO1lBQ2hELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDO1lBQ3hELElBQUksTUFBTSxJQUFJLFlBQVksRUFBRTtnQkFDeEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsWUFBWSxDQUFDLENBQUM7Z0JBQ2hDLEtBQUssRUFBRSxDQUFDO2FBQ1g7U0FDSjtJQUNMLENBQUM7OEdBbkVRLHFCQUFxQjtrR0FBckIscUJBQXFCLG1GQTFCcEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FzQlQsNERBQ1MsU0FBUyxzSkFBRSxnQkFBZ0IsMEVBQUUsa0JBQWtCLGdHQUFFLG1CQUFtQiwwRkFBRSxJQUFJLDZGQUFFLE9BQU87O1NBR3BGLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQTdCakMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBc0JUO29CQUNELE9BQU8sRUFBRSxDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDO29CQUM5RixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDcEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIGVmZmVjdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIGV4dGVuZCxcbiAgICBpbmplY3RCZWZvcmVSZW5kZXIsXG4gICAgaW5qZWN0Tmd0UmVmLFxuICAgIE5ndEFyZ3MsXG4gICAgTmd0UG9ydGFsLFxuICAgIE5ndFBvcnRhbENvbnRlbnQsXG4gICAgTmd0UmVuZGVyU3RhdGUsXG4gICAgTmd0U3RvcmUsXG4gICAgcHJlcGFyZSxcbiAgICByZXF1ZXN0QW5pbWF0aW9uSW5JbmplY3Rpb25Db250ZXh0LFxufSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IEN1YmVDYW1lcmEgfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBOZ3RzRW52aXJvbm1lbnRDdWJlIH0gZnJvbSAnLi9lbnZpcm9ubWVudC1jdWJlJztcbmltcG9ydCB7IE5ndHNFbnZpcm9ubWVudElucHV0IH0gZnJvbSAnLi9lbnZpcm9ubWVudC1pbnB1dCc7XG5pbXBvcnQgeyBOZ3RzRW52aXJvbm1lbnRNYXAgfSBmcm9tICcuL2Vudmlyb25tZW50LW1hcCc7XG5pbXBvcnQgeyBzZXRFbnZQcm9wcyB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHRlbmQoeyBDdWJlQ2FtZXJhIH0pO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndHMtZW52aXJvbm1lbnQtcG9ydGFsJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxuZ3QtcG9ydGFsIFtjb250YWluZXJdPVwidmlydHVhbFNjZW5lUmVmXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbmd0UG9ydGFsQ29udGVudD5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudCAvPlxuICAgICAgICAgICAgICAgIDxuZ3QtY3ViZS1jYW1lcmEgKmFyZ3M9XCJjYW1lcmFBcmdzKClcIiBbcmVmXT1cImN1YmVDYW1lcmFSZWZcIiAvPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50SW5wdXQuZW52aXJvbm1lbnRGaWxlcygpIHx8IGVudmlyb25tZW50SW5wdXQuZW52aXJvbm1lbnRQcmVzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgZW52aXJvbm1lbnRNYXBcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxuZ3RzLWVudmlyb25tZW50LWN1YmUgW2JhY2tncm91bmRdPVwidHJ1ZVwiIC8+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNlbnZpcm9ubWVudE1hcD5cbiAgICAgICAgICAgICAgICAgICAgPG5ndHMtZW52aXJvbm1lbnQtbWFwXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImVudmlyb25tZW50SW5wdXQuZW52aXJvbm1lbnRNYXAoKSBhcyBtYXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2JhY2tncm91bmRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbWFwXT1cIm1hcFwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmd0LXBvcnRhbD5cbiAgICBgLFxuICAgIGltcG9ydHM6IFtOZ3RQb3J0YWwsIE5ndFBvcnRhbENvbnRlbnQsIE5ndHNFbnZpcm9ubWVudE1hcCwgTmd0c0Vudmlyb25tZW50Q3ViZSwgTmdJZiwgTmd0QXJnc10sXG4gICAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzRW52aXJvbm1lbnRQb3J0YWwge1xuICAgIHByb3RlY3RlZCByZWFkb25seSBlbnZpcm9ubWVudElucHV0ID0gaW5qZWN0KE5ndHNFbnZpcm9ubWVudElucHV0KTtcbiAgICByZWFkb25seSAjc3RvcmUgPSBpbmplY3QoTmd0U3RvcmUpO1xuXG4gICAgcmVhZG9ubHkgdmlydHVhbFNjZW5lUmVmID0gaW5qZWN0Tmd0UmVmPFRIUkVFLlNjZW5lPihwcmVwYXJlKG5ldyBUSFJFRS5TY2VuZSgpKSk7XG4gICAgcmVhZG9ubHkgY3ViZUNhbWVyYVJlZiA9IGluamVjdE5ndFJlZjxUSFJFRS5DdWJlQ2FtZXJhPigpO1xuXG4gICAgcmVhZG9ubHkgI2ZibyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgZmJvID0gbmV3IFRIUkVFLldlYkdMQ3ViZVJlbmRlclRhcmdldCh0aGlzLmVudmlyb25tZW50SW5wdXQuZW52aXJvbm1lbnRSZXNvbHV0aW9uKCkpO1xuICAgICAgICBmYm8udGV4dHVyZS50eXBlID0gVEhSRUUuSGFsZkZsb2F0VHlwZTtcbiAgICAgICAgcmV0dXJuIGZibztcbiAgICB9KTtcbiAgICByZWFkb25seSBjYW1lcmFBcmdzID0gY29tcHV0ZWQoKCkgPT4gW1xuICAgICAgICB0aGlzLmVudmlyb25tZW50SW5wdXQuZW52aXJvbm1lbnROZWFyKCkhLFxuICAgICAgICB0aGlzLmVudmlyb25tZW50SW5wdXQuZW52aXJvbm1lbnRGYXIoKSEsXG4gICAgICAgIHRoaXMuI2ZibygpLFxuICAgIF0pO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuZW52aXJvbm1lbnRJbnB1dC5wYXRjaCh7XG4gICAgICAgICAgICBuZWFyOiAxLFxuICAgICAgICAgICAgZmFyOiAxMDAwLFxuICAgICAgICAgICAgcmVzb2x1dGlvbjogMjU2LFxuICAgICAgICAgICAgZnJhbWVzOiAxLFxuICAgICAgICAgICAgYmFja2dyb3VuZDogZmFsc2UsXG4gICAgICAgICAgICBwcmVzZXQ6IHVuZGVmaW5lZCxcbiAgICAgICAgfSk7XG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25JbkluamVjdGlvbkNvbnRleHQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy4jc2V0RW52UHJvcHMoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGluamVjdEJlZm9yZVJlbmRlcih0aGlzLiNvbkJlZm9yZVJlbmRlci5iaW5kKHRoaXMsIDEpKTtcbiAgICB9XG5cbiAgICAjc2V0RW52UHJvcHMoKSB7XG4gICAgICAgIGNvbnN0IGdsID0gdGhpcy4jc3RvcmUuc2VsZWN0KCdnbCcpO1xuICAgICAgICBjb25zdCBzY2VuZSA9IHRoaXMuI3N0b3JlLnNlbGVjdCgnc2NlbmUnKTtcblxuICAgICAgICBjb25zdCB0cmlnZ2VyID0gY29tcHV0ZWQoKCkgPT4gKHtcbiAgICAgICAgICAgIGdsOiBnbCgpLFxuICAgICAgICAgICAgZGVmYXVsdFNjZW5lOiBzY2VuZSgpLFxuICAgICAgICAgICAgZmJvOiB0aGlzLiNmYm8oKSxcbiAgICAgICAgICAgIHNjZW5lOiB0aGlzLmVudmlyb25tZW50SW5wdXQuZW52aXJvbm1lbnRTY2VuZSgpLFxuICAgICAgICAgICAgYmFja2dyb3VuZDogdGhpcy5lbnZpcm9ubWVudElucHV0LmVudmlyb25tZW50QmFja2dyb3VuZCgpLFxuICAgICAgICAgICAgZnJhbWVzOiB0aGlzLmVudmlyb25tZW50SW5wdXQuZW52aXJvbm1lbnRGcmFtZXMoKSxcbiAgICAgICAgICAgIGJsdXI6IHRoaXMuZW52aXJvbm1lbnRJbnB1dC5lbnZpcm9ubWVudEJsdXIoKSxcbiAgICAgICAgICAgIHZpcnR1YWxTY2VuZTogdGhpcy52aXJ0dWFsU2NlbmVSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgIGN1YmVDYW1lcmE6IHRoaXMuY3ViZUNhbWVyYVJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICB9KSk7XG5cbiAgICAgICAgZWZmZWN0KChvbkNsZWFudXApID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgdmlydHVhbFNjZW5lLCBibHVyLCBmcmFtZXMsIGJhY2tncm91bmQsIHNjZW5lLCBmYm8sIGRlZmF1bHRTY2VuZSwgZ2wsIGN1YmVDYW1lcmEgfSA9IHRyaWdnZXIoKTtcbiAgICAgICAgICAgIGlmICghY3ViZUNhbWVyYSB8fCAhdmlydHVhbFNjZW5lKSByZXR1cm47XG4gICAgICAgICAgICBpZiAoZnJhbWVzID09PSAxKSBjdWJlQ2FtZXJhLnVwZGF0ZShnbCwgdmlydHVhbFNjZW5lKTtcbiAgICAgICAgICAgIG9uQ2xlYW51cChzZXRFbnZQcm9wcyhiYWNrZ3JvdW5kISwgc2NlbmUsIGRlZmF1bHRTY2VuZSwgZmJvLnRleHR1cmUsIGJsdXIpKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgI29uQmVmb3JlUmVuZGVyKGNvdW50OiBudW1iZXIsIHsgZ2wgfTogTmd0UmVuZGVyU3RhdGUpIHtcbiAgICAgICAgY29uc3QgeyBmcmFtZXMgfSA9IHRoaXMuZW52aXJvbm1lbnRJbnB1dC5nZXQoKTtcbiAgICAgICAgaWYgKGZyYW1lcyA9PT0gSW5maW5pdHkgfHwgY291bnQgPCBmcmFtZXMhKSB7XG4gICAgICAgICAgICBjb25zdCBjYW1lcmEgPSB0aGlzLmN1YmVDYW1lcmFSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgIGNvbnN0IHZpcnR1YWxTY2VuZSA9IHRoaXMudmlydHVhbFNjZW5lUmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICBpZiAoY2FtZXJhICYmIHZpcnR1YWxTY2VuZSkge1xuICAgICAgICAgICAgICAgIGNhbWVyYS51cGRhdGUoZ2wsIHZpcnR1YWxTY2VuZSk7XG4gICAgICAgICAgICAgICAgY291bnQrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQtcG9ydGFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL3N0YWdpbmcvc3JjL2Vudmlyb25tZW50L2Vudmlyb25tZW50LXBvcnRhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQ04sTUFBTSxFQUNOLGtCQUFrQixFQUNsQixZQUFZLEVBQ1osY0FBYyxFQUNkLE9BQU8sRUFDUCxTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLE9BQU8sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ25DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxTQUFTLENBQUM7O0FBRXRDLE1BQU0sQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7QUFzQnZCLE1BQU0sT0FBTyxxQkFBcUI7SUFnQmpDO1FBZkEscUJBQWdCLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDeEMsVUFBSyxHQUFHLGNBQWMsRUFBRSxDQUFDO1FBQ3pCLE9BQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixVQUFLLEdBQUcsSUFBSSxDQUFD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M0MsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUM7Z0JBQ2hELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDO2dCQUN4RCxJQUFJLE1BQU0sSUFBSSxZQUFZLEVBQUU7b0JBQzNCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLFlBQVksQ0FBQyxDQUFDO29CQUNoQyxLQUFLLEVBQUUsQ0FBQztpQkFDUjthQUNEO1FBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzhHQWhFVyxxQkFBcUI7a0dBQXJCLHFCQUFxQixtRkFqQnZCOzs7Ozs7Ozs7Ozs7O0VBYVQsNERBQ1MsU0FBUyxzSkFBRSxnQkFBZ0IsMEVBQUUsa0JBQWtCLGdHQUFFLG1CQUFtQiwwRkFBRSxJQUFJLDZGQUFFLE9BQU87OzJGQUdqRixxQkFBcUI7a0JBcEJqQyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7RUFhVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQztvQkFDOUYsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ2pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBlZmZlY3QsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcblx0ZXh0ZW5kLFxuXHRpbmplY3RCZWZvcmVSZW5kZXIsXG5cdGluamVjdE5ndFJlZixcblx0aW5qZWN0Tmd0U3RvcmUsXG5cdE5ndEFyZ3MsXG5cdE5ndFBvcnRhbCxcblx0Tmd0UG9ydGFsQ29udGVudCxcblx0cHJlcGFyZSxcbn0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBDdWJlQ2FtZXJhIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0c0Vudmlyb25tZW50Q3ViZSB9IGZyb20gJy4vZW52aXJvbm1lbnQtY3ViZSc7XG5pbXBvcnQgeyBOZ3RzRW52aXJvbm1lbnRJbnB1dCB9IGZyb20gJy4vZW52aXJvbm1lbnQtaW5wdXQnO1xuaW1wb3J0IHsgTmd0c0Vudmlyb25tZW50TWFwIH0gZnJvbSAnLi9lbnZpcm9ubWVudC1tYXAnO1xuaW1wb3J0IHsgc2V0RW52UHJvcHMgfSBmcm9tICcuL3V0aWxzJztcblxuZXh0ZW5kKHsgQ3ViZUNhbWVyYSB9KTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cy1lbnZpcm9ubWVudC1wb3J0YWwnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtcG9ydGFsIFtjb250YWluZXJdPVwidmlydHVhbFNjZW5lUmVmXCI+XG5cdFx0XHQ8bmctdGVtcGxhdGUgbmd0UG9ydGFsQ29udGVudD5cblx0XHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHRcdFx0PG5ndC1jdWJlLWNhbWVyYSAqYXJncz1cImNhbWVyYUFyZ3MoKVwiIFtyZWZdPVwiY3ViZUNhbWVyYVJlZlwiIC8+XG5cdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJlbnZpcm9ubWVudElucHV0LmZpbGVzKCkgfHwgZW52aXJvbm1lbnRJbnB1dC5wcmVzZXQoKTsgZWxzZSBlbnZpcm9ubWVudE1hcFwiPlxuXHRcdFx0XHRcdDxuZ3RzLWVudmlyb25tZW50LWN1YmUgW2JhY2tncm91bmRdPVwidHJ1ZVwiIC8+XG5cdFx0XHRcdDwvbmctY29udGFpbmVyPlxuXHRcdFx0XHQ8bmctdGVtcGxhdGUgI2Vudmlyb25tZW50TWFwPlxuXHRcdFx0XHRcdDxuZ3RzLWVudmlyb25tZW50LW1hcCAqbmdJZj1cImVudmlyb25tZW50SW5wdXQubWFwKCkgYXMgbWFwXCIgW2JhY2tncm91bmRdPVwidHJ1ZVwiIFttYXBdPVwibWFwXCIgLz5cblx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cblx0XHRcdDwvbmctdGVtcGxhdGU+XG5cdFx0PC9uZ3QtcG9ydGFsPlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0UG9ydGFsLCBOZ3RQb3J0YWxDb250ZW50LCBOZ3RzRW52aXJvbm1lbnRNYXAsIE5ndHNFbnZpcm9ubWVudEN1YmUsIE5nSWYsIE5ndEFyZ3NdLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNFbnZpcm9ubWVudFBvcnRhbCB7XG5cdGVudmlyb25tZW50SW5wdXQgPSBpbmplY3QoTmd0c0Vudmlyb25tZW50SW5wdXQpO1xuXHRwcml2YXRlIHN0b3JlID0gaW5qZWN0Tmd0U3RvcmUoKTtcblx0cHJpdmF0ZSBnbCA9IHRoaXMuc3RvcmUuc2VsZWN0KCdnbCcpO1xuXHRwcml2YXRlIHNjZW5lID0gdGhpcy5zdG9yZS5zZWxlY3QoJ3NjZW5lJyk7XG5cblx0dmlydHVhbFNjZW5lUmVmID0gaW5qZWN0Tmd0UmVmPFRIUkVFLlNjZW5lPihwcmVwYXJlKG5ldyBUSFJFRS5TY2VuZSgpKSk7XG5cdGN1YmVDYW1lcmFSZWYgPSBpbmplY3ROZ3RSZWY8VEhSRUUuQ3ViZUNhbWVyYT4oKTtcblxuXHRwcml2YXRlIGZibyA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBmYm8gPSBuZXcgVEhSRUUuV2ViR0xDdWJlUmVuZGVyVGFyZ2V0KHRoaXMuZW52aXJvbm1lbnRJbnB1dC5yZXNvbHV0aW9uKCkpO1xuXHRcdGZiby50ZXh0dXJlLnR5cGUgPSBUSFJFRS5IYWxmRmxvYXRUeXBlO1xuXHRcdHJldHVybiBmYm87XG5cdH0pO1xuXHRjYW1lcmFBcmdzID0gY29tcHV0ZWQoKCkgPT4gW3RoaXMuZW52aXJvbm1lbnRJbnB1dC5uZWFyKCkhLCB0aGlzLmVudmlyb25tZW50SW5wdXQuZmFyKCkhLCB0aGlzLmZibygpXSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdHRoaXMuZW52aXJvbm1lbnRJbnB1dC5pbnB1dHMucGF0Y2goe1xuXHRcdFx0XHRuZWFyOiAxLFxuXHRcdFx0XHRmYXI6IDEwMDAsXG5cdFx0XHRcdHJlc29sdXRpb246IDI1Nixcblx0XHRcdFx0ZnJhbWVzOiAxLFxuXHRcdFx0XHRiYWNrZ3JvdW5kOiBmYWxzZSxcblx0XHRcdFx0cHJlc2V0OiB1bmRlZmluZWQsXG5cdFx0XHR9KTtcblx0XHR9KTtcblx0XHR0aGlzLnNldEVudlByb3BzKCk7XG5cdFx0dGhpcy5iZWZvcmVSZW5kZXIoKTtcblx0fVxuXG5cdHByaXZhdGUgc2V0RW52UHJvcHMoKSB7XG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IFt2aXJ0dWFsU2NlbmUsIGJsdXIsIGZyYW1lcywgYmFja2dyb3VuZCwgc2NlbmUsIGZibywgZGVmYXVsdFNjZW5lLCBnbCwgY3ViZUNhbWVyYV0gPSBbXG5cdFx0XHRcdHRoaXMudmlydHVhbFNjZW5lUmVmLm5hdGl2ZUVsZW1lbnQsXG5cdFx0XHRcdHRoaXMuZW52aXJvbm1lbnRJbnB1dC5ibHVyKCksXG5cdFx0XHRcdHRoaXMuZW52aXJvbm1lbnRJbnB1dC5mcmFtZXMoKSxcblx0XHRcdFx0dGhpcy5lbnZpcm9ubWVudElucHV0LmJhY2tncm91bmQoKSxcblx0XHRcdFx0dGhpcy5lbnZpcm9ubWVudElucHV0LnNjZW5lKCksXG5cdFx0XHRcdHRoaXMuZmJvKCksXG5cdFx0XHRcdHRoaXMuc2NlbmUoKSxcblx0XHRcdFx0dGhpcy5nbCgpLFxuXHRcdFx0XHR0aGlzLmN1YmVDYW1lcmFSZWYubmF0aXZlRWxlbWVudCxcblx0XHRcdF07XG5cdFx0XHRpZiAoIWN1YmVDYW1lcmEgfHwgIXZpcnR1YWxTY2VuZSkgcmV0dXJuO1xuXHRcdFx0aWYgKGZyYW1lcyA9PT0gMSkgY3ViZUNhbWVyYS51cGRhdGUoZ2wsIHZpcnR1YWxTY2VuZSk7XG5cdFx0XHRjb25zdCBjbGVhblVwID0gc2V0RW52UHJvcHMoYmFja2dyb3VuZCEsIHNjZW5lLCBkZWZhdWx0U2NlbmUsIGZiby50ZXh0dXJlLCBibHVyKTtcblx0XHRcdG9uQ2xlYW51cChjbGVhblVwKTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgYmVmb3JlUmVuZGVyKCkge1xuXHRcdGxldCBjb3VudCA9IDE7XG5cdFx0aW5qZWN0QmVmb3JlUmVuZGVyKCh7IGdsIH0pID0+IHtcblx0XHRcdGNvbnN0IHsgZnJhbWVzIH0gPSB0aGlzLmVudmlyb25tZW50SW5wdXQuaW5wdXRzLmdldCgpO1xuXHRcdFx0aWYgKGZyYW1lcyA9PT0gSW5maW5pdHkgfHwgY291bnQgPCBmcmFtZXMhKSB7XG5cdFx0XHRcdGNvbnN0IGNhbWVyYSA9IHRoaXMuY3ViZUNhbWVyYVJlZi5uYXRpdmVFbGVtZW50O1xuXHRcdFx0XHRjb25zdCB2aXJ0dWFsU2NlbmUgPSB0aGlzLnZpcnR1YWxTY2VuZVJlZi5uYXRpdmVFbGVtZW50O1xuXHRcdFx0XHRpZiAoY2FtZXJhICYmIHZpcnR1YWxTY2VuZSkge1xuXHRcdFx0XHRcdGNhbWVyYS51cGRhdGUoZ2wsIHZpcnR1YWxTY2VuZSk7XG5cdFx0XHRcdFx0Y291bnQrKztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG59XG4iXX0=
@@ -1,65 +1,48 @@
1
1
  import { NgIf, NgTemplateOutlet } from '@angular/common';
2
- import { CUSTOM_ELEMENTS_SCHEMA, Component, ContentChild, Directive, TemplateRef } from '@angular/core';
2
+ import { CUSTOM_ELEMENTS_SCHEMA, Component, ContentChild, TemplateRef } from '@angular/core';
3
+ import { NgtsSobaContent } from 'angular-three-soba/utils';
3
4
  import { NgtsEnvironmentCube } from './environment-cube';
4
5
  import { NgtsEnvironmentGround } from './environment-ground';
5
6
  import { NgtsEnvironmentInput } from './environment-input';
6
7
  import { NgtsEnvironmentMap } from './environment-map';
7
8
  import { NgtsEnvironmentPortal } from './environment-portal';
8
9
  import * as i0 from "@angular/core";
9
- class NgtsEnvironmentContent {
10
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsEnvironmentContent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
11
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: NgtsEnvironmentContent, isStandalone: true, selector: "ng-template[ngtsEnvironmentContent]", ngImport: i0 }); }
10
+ export class NgtsEnvironment extends NgtsEnvironmentInput {
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: NgtsEnvironment, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
12
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: NgtsEnvironment, isStandalone: true, selector: "ngts-environment", providers: [{ provide: NgtsEnvironmentInput, useExisting: NgtsEnvironment }], queries: [{ propertyName: "content", first: true, predicate: NgtsSobaContent, descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: `
13
+ <ngts-environment-ground *ngIf="ground(); else noGround" />
14
+ <ng-template #noGround>
15
+ <ngts-environment-map *ngIf="map() as map; else noMap" [map]="map" [background]="!!background()" />
16
+ <ng-template #noMap>
17
+ <ngts-environment-portal *ngIf="content; else noPortal">
18
+ <ng-container *ngTemplateOutlet="content" />
19
+ </ngts-environment-portal>
20
+ <ng-template #noPortal>
21
+ <ngts-environment-cube [background]="!!background()" />
22
+ </ng-template>
23
+ </ng-template>
24
+ </ng-template>
25
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgtsEnvironmentMap, selector: "ngts-environment-map", inputs: ["map", "background"] }, { kind: "component", type: NgtsEnvironmentGround, selector: "ngts-environment-ground" }, { kind: "directive", type: NgtsEnvironmentCube, selector: "ngts-environment-cube", inputs: ["background"] }, { kind: "component", type: NgtsEnvironmentPortal, selector: "ngts-environment-portal" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
12
26
  }
13
- export { NgtsEnvironmentContent };
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsEnvironmentContent, decorators: [{
15
- type: Directive,
16
- args: [{ selector: 'ng-template[ngtsEnvironmentContent]', standalone: true }]
17
- }] });
18
- class NgtsEnvironment extends NgtsEnvironmentInput {
19
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsEnvironment, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
20
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: NgtsEnvironment, isStandalone: true, selector: "ngts-environment", providers: [{ provide: NgtsEnvironmentInput, useExisting: NgtsEnvironment }], queries: [{ propertyName: "content", first: true, predicate: NgtsEnvironmentContent, descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: `
21
- <ngts-environment-ground *ngIf="environmentGround(); else noGround" />
22
- <ng-template #noGround>
23
- <ngts-environment-map
24
- *ngIf="environmentMap() as map; else noMap"
25
- [map]="map"
26
- [background]="!!environmentBackground()"
27
- />
28
- <ng-template #noMap>
29
- <ngts-environment-portal *ngIf="content; else noPortal">
30
- <ng-container *ngTemplateOutlet="content" />
31
- </ngts-environment-portal>
32
- <ng-template #noPortal>
33
- <ngts-environment-cube [background]="!!environmentBackground()" />
34
- </ng-template>
35
- </ng-template>
36
- </ng-template>
37
- `, isInline: true, dependencies: [{ kind: "directive", type: NgtsEnvironmentMap, selector: "ngts-environment-map", inputs: ["map", "background"] }, { kind: "component", type: NgtsEnvironmentGround, selector: "ngts-environment-ground" }, { kind: "directive", type: NgtsEnvironmentCube, selector: "ngts-environment-cube", inputs: ["background"] }, { kind: "component", type: NgtsEnvironmentPortal, selector: "ngts-environment-portal" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
38
- }
39
- export { NgtsEnvironment };
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsEnvironment, decorators: [{
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: NgtsEnvironment, decorators: [{
41
28
  type: Component,
42
29
  args: [{
43
30
  selector: 'ngts-environment',
44
31
  standalone: true,
45
32
  template: `
46
- <ngts-environment-ground *ngIf="environmentGround(); else noGround" />
47
- <ng-template #noGround>
48
- <ngts-environment-map
49
- *ngIf="environmentMap() as map; else noMap"
50
- [map]="map"
51
- [background]="!!environmentBackground()"
52
- />
53
- <ng-template #noMap>
54
- <ngts-environment-portal *ngIf="content; else noPortal">
55
- <ng-container *ngTemplateOutlet="content" />
56
- </ngts-environment-portal>
57
- <ng-template #noPortal>
58
- <ngts-environment-cube [background]="!!environmentBackground()" />
59
- </ng-template>
60
- </ng-template>
61
- </ng-template>
62
- `,
33
+ <ngts-environment-ground *ngIf="ground(); else noGround" />
34
+ <ng-template #noGround>
35
+ <ngts-environment-map *ngIf="map() as map; else noMap" [map]="map" [background]="!!background()" />
36
+ <ng-template #noMap>
37
+ <ngts-environment-portal *ngIf="content; else noPortal">
38
+ <ng-container *ngTemplateOutlet="content" />
39
+ </ngts-environment-portal>
40
+ <ng-template #noPortal>
41
+ <ngts-environment-cube [background]="!!background()" />
42
+ </ng-template>
43
+ </ng-template>
44
+ </ng-template>
45
+ `,
63
46
  imports: [
64
47
  NgtsEnvironmentMap,
65
48
  NgtsEnvironmentGround,
@@ -73,6 +56,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
73
56
  }]
74
57
  }], propDecorators: { content: [{
75
58
  type: ContentChild,
76
- args: [NgtsEnvironmentContent, { read: TemplateRef }]
59
+ args: [NgtsSobaContent, { read: TemplateRef }]
77
60
  }] } });
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvZW52aXJvbm1lbnQvZW52aXJvbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBRTdELE1BQ2Esc0JBQXNCOzhHQUF0QixzQkFBc0I7a0dBQXRCLHNCQUFzQjs7U0FBdEIsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBRGxDLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUscUNBQXFDLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRTs7QUFHaEYsTUFnQ2EsZUFBZ0IsU0FBUSxvQkFBb0I7OEdBQTVDLGVBQWU7a0dBQWYsZUFBZSwrREFIYixDQUFDLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsQ0FBQywrREFJOUQsc0JBQXNCLDJCQUFVLFdBQVcsb0RBOUIvQzs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FpQlQsNERBRUcsa0JBQWtCLGdHQUNsQixxQkFBcUIsb0VBQ3JCLG1CQUFtQiwwRkFDbkIscUJBQXFCLG9FQUNyQixJQUFJLDZGQUNKLGdCQUFnQjs7U0FLWCxlQUFlOzJGQUFmLGVBQWU7a0JBaEMzQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBaUJUO29CQUNELE9BQU8sRUFBRTt3QkFDTCxrQkFBa0I7d0JBQ2xCLHFCQUFxQjt3QkFDckIsbUJBQW1CO3dCQUNuQixxQkFBcUI7d0JBQ3JCLElBQUk7d0JBQ0osZ0JBQWdCO3FCQUNuQjtvQkFDRCxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLGlCQUFpQixFQUFFLENBQUM7b0JBQzVFLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNwQzs4QkFFZ0UsT0FBTztzQkFBbkUsWUFBWTt1QkFBQyxzQkFBc0IsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBEaXJlY3RpdmUsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RzRW52aXJvbm1lbnRDdWJlIH0gZnJvbSAnLi9lbnZpcm9ubWVudC1jdWJlJztcbmltcG9ydCB7IE5ndHNFbnZpcm9ubWVudEdyb3VuZCB9IGZyb20gJy4vZW52aXJvbm1lbnQtZ3JvdW5kJztcbmltcG9ydCB7IE5ndHNFbnZpcm9ubWVudElucHV0IH0gZnJvbSAnLi9lbnZpcm9ubWVudC1pbnB1dCc7XG5pbXBvcnQgeyBOZ3RzRW52aXJvbm1lbnRNYXAgfSBmcm9tICcuL2Vudmlyb25tZW50LW1hcCc7XG5pbXBvcnQgeyBOZ3RzRW52aXJvbm1lbnRQb3J0YWwgfSBmcm9tICcuL2Vudmlyb25tZW50LXBvcnRhbCc7XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ25nLXRlbXBsYXRlW25ndHNFbnZpcm9ubWVudENvbnRlbnRdJywgc3RhbmRhbG9uZTogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIE5ndHNFbnZpcm9ubWVudENvbnRlbnQge31cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3RzLWVudmlyb25tZW50JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxuZ3RzLWVudmlyb25tZW50LWdyb3VuZCAqbmdJZj1cImVudmlyb25tZW50R3JvdW5kKCk7IGVsc2Ugbm9Hcm91bmRcIiAvPlxuICAgICAgICA8bmctdGVtcGxhdGUgI25vR3JvdW5kPlxuICAgICAgICAgICAgPG5ndHMtZW52aXJvbm1lbnQtbWFwXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJlbnZpcm9ubWVudE1hcCgpIGFzIG1hcDsgZWxzZSBub01hcFwiXG4gICAgICAgICAgICAgICAgW21hcF09XCJtYXBcIlxuICAgICAgICAgICAgICAgIFtiYWNrZ3JvdW5kXT1cIiEhZW52aXJvbm1lbnRCYWNrZ3JvdW5kKClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9NYXA+XG4gICAgICAgICAgICAgICAgPG5ndHMtZW52aXJvbm1lbnQtcG9ydGFsICpuZ0lmPVwiY29udGVudDsgZWxzZSBub1BvcnRhbFwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiIC8+XG4gICAgICAgICAgICAgICAgPC9uZ3RzLWVudmlyb25tZW50LXBvcnRhbD5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vUG9ydGFsPlxuICAgICAgICAgICAgICAgICAgICA8bmd0cy1lbnZpcm9ubWVudC1jdWJlIFtiYWNrZ3JvdW5kXT1cIiEhZW52aXJvbm1lbnRCYWNrZ3JvdW5kKClcIiAvPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIGAsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBOZ3RzRW52aXJvbm1lbnRNYXAsXG4gICAgICAgIE5ndHNFbnZpcm9ubWVudEdyb3VuZCxcbiAgICAgICAgTmd0c0Vudmlyb25tZW50Q3ViZSxcbiAgICAgICAgTmd0c0Vudmlyb25tZW50UG9ydGFsLFxuICAgICAgICBOZ0lmLFxuICAgICAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBOZ3RzRW52aXJvbm1lbnRJbnB1dCwgdXNlRXhpc3Rpbmc6IE5ndHNFbnZpcm9ubWVudCB9XSxcbiAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNFbnZpcm9ubWVudCBleHRlbmRzIE5ndHNFbnZpcm9ubWVudElucHV0IHtcbiAgICBAQ29udGVudENoaWxkKE5ndHNFbnZpcm9ubWVudENvbnRlbnQsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgY29udGVudD86IFRlbXBsYXRlUmVmPHVua25vd24+O1xufVxuIl19
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvZW52aXJvbm1lbnQvZW52aXJvbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBOEI3RCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxvQkFBb0I7OEdBQTVDLGVBQWU7a0dBQWYsZUFBZSwrREFIaEIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLENBQUMsK0RBSTlELGVBQWUsMkJBQVUsV0FBVyxvREExQnhDOzs7Ozs7Ozs7Ozs7O0VBYVQsNERBRUEsa0JBQWtCLGdHQUNsQixxQkFBcUIsb0VBQ3JCLG1CQUFtQiwwRkFDbkIscUJBQXFCLG9FQUNyQixJQUFJLDZGQUNKLGdCQUFnQjs7MkZBS0wsZUFBZTtrQkE1QjNCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7OztFQWFUO29CQUNELE9BQU8sRUFBRTt3QkFDUixrQkFBa0I7d0JBQ2xCLHFCQUFxQjt3QkFDckIsbUJBQW1CO3dCQUNuQixxQkFBcUI7d0JBQ3JCLElBQUk7d0JBQ0osZ0JBQWdCO3FCQUNoQjtvQkFDRCxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLGlCQUFpQixFQUFFLENBQUM7b0JBQzVFLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNqQzs4QkFFc0QsT0FBTztzQkFBNUQsWUFBWTt1QkFBQyxlQUFlLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndHNTb2JhQ29udGVudCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUtc29iYS91dGlscyc7XG5pbXBvcnQgeyBOZ3RzRW52aXJvbm1lbnRDdWJlIH0gZnJvbSAnLi9lbnZpcm9ubWVudC1jdWJlJztcbmltcG9ydCB7IE5ndHNFbnZpcm9ubWVudEdyb3VuZCB9IGZyb20gJy4vZW52aXJvbm1lbnQtZ3JvdW5kJztcbmltcG9ydCB7IE5ndHNFbnZpcm9ubWVudElucHV0IH0gZnJvbSAnLi9lbnZpcm9ubWVudC1pbnB1dCc7XG5pbXBvcnQgeyBOZ3RzRW52aXJvbm1lbnRNYXAgfSBmcm9tICcuL2Vudmlyb25tZW50LW1hcCc7XG5pbXBvcnQgeyBOZ3RzRW52aXJvbm1lbnRQb3J0YWwgfSBmcm9tICcuL2Vudmlyb25tZW50LXBvcnRhbCc7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHMtZW52aXJvbm1lbnQnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3RzLWVudmlyb25tZW50LWdyb3VuZCAqbmdJZj1cImdyb3VuZCgpOyBlbHNlIG5vR3JvdW5kXCIgLz5cblx0XHQ8bmctdGVtcGxhdGUgI25vR3JvdW5kPlxuXHRcdFx0PG5ndHMtZW52aXJvbm1lbnQtbWFwICpuZ0lmPVwibWFwKCkgYXMgbWFwOyBlbHNlIG5vTWFwXCIgW21hcF09XCJtYXBcIiBbYmFja2dyb3VuZF09XCIhIWJhY2tncm91bmQoKVwiIC8+XG5cdFx0XHQ8bmctdGVtcGxhdGUgI25vTWFwPlxuXHRcdFx0XHQ8bmd0cy1lbnZpcm9ubWVudC1wb3J0YWwgKm5nSWY9XCJjb250ZW50OyBlbHNlIG5vUG9ydGFsXCI+XG5cdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIiAvPlxuXHRcdFx0XHQ8L25ndHMtZW52aXJvbm1lbnQtcG9ydGFsPlxuXHRcdFx0XHQ8bmctdGVtcGxhdGUgI25vUG9ydGFsPlxuXHRcdFx0XHRcdDxuZ3RzLWVudmlyb25tZW50LWN1YmUgW2JhY2tncm91bmRdPVwiISFiYWNrZ3JvdW5kKClcIiAvPlxuXHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxuXHRcdFx0PC9uZy10ZW1wbGF0ZT5cblx0XHQ8L25nLXRlbXBsYXRlPlxuXHRgLFxuXHRpbXBvcnRzOiBbXG5cdFx0Tmd0c0Vudmlyb25tZW50TWFwLFxuXHRcdE5ndHNFbnZpcm9ubWVudEdyb3VuZCxcblx0XHROZ3RzRW52aXJvbm1lbnRDdWJlLFxuXHRcdE5ndHNFbnZpcm9ubWVudFBvcnRhbCxcblx0XHROZ0lmLFxuXHRcdE5nVGVtcGxhdGVPdXRsZXQsXG5cdF0sXG5cdHByb3ZpZGVyczogW3sgcHJvdmlkZTogTmd0c0Vudmlyb25tZW50SW5wdXQsIHVzZUV4aXN0aW5nOiBOZ3RzRW52aXJvbm1lbnQgfV0sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c0Vudmlyb25tZW50IGV4dGVuZHMgTmd0c0Vudmlyb25tZW50SW5wdXQge1xuXHRAQ29udGVudENoaWxkKE5ndHNTb2JhQ29udGVudCwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBjb250ZW50PzogVGVtcGxhdGVSZWY8dW5rbm93bj47XG59XG4iXX0=
@@ -1,8 +1,9 @@
1
- import { ChangeDetectorRef, DestroyRef, computed, effect, inject, runInInjectionContext, } from '@angular/core';
1
+ import { ChangeDetectorRef, DestroyRef, ElementRef, Injector, computed, effect, inject, runInInjectionContext, } from '@angular/core';
2
2
  import { assertInjectionContext, injectNgtLoader, injectNgtRef, is, safeDetectChanges } from 'angular-three';
3
- import { CubeReflectionMapping, CubeTextureLoader, EquirectangularReflectionMapping, LinearEncoding, sRGBEncoding, } from 'three';
4
- import { RGBELoader } from 'three-stdlib';
5
- import { ngtsEnvironmentPresetsObj } from './assets';
3
+ import { CubeReflectionMapping, CubeTexture, CubeTextureLoader, EquirectangularReflectionMapping } from 'three';
4
+ import { EXRLoader, RGBELoader } from 'three-stdlib';
5
+ import { ENVIRONMENT_PRESETS } from './assets';
6
+ import {} from './environment-input';
6
7
  function resolveScene(scene) {
7
8
  return is.ref(scene) ? scene.nativeElement : scene;
8
9
  }
@@ -26,14 +27,14 @@ export function setEnvProps(background, scene, defaultScene, texture, blur = 0)
26
27
  target.backgroundBlurriness = oldBlur;
27
28
  };
28
29
  }
29
- const CUBEMAP_ROOT = 'https://market-assets.fra1.cdn.digitaloceanspaces.com/market-assets/hdris/';
30
+ const CUBEMAP_ROOT = 'https://raw.githack.com/pmndrs/drei-assets/456060a26bbeb8fdf79326f224b6d99b8bcce736/hdri/';
30
31
  export function injectNgtsEnvironment(paramsFactory, injector) {
31
32
  injector = assertInjectionContext(injectNgtsEnvironment, injector);
32
33
  return runInInjectionContext(injector, () => {
33
- const cdr = inject(ChangeDetectorRef);
34
34
  const textureRef = injectNgtRef();
35
+ const cdr = inject(ChangeDetectorRef);
35
36
  inject(DestroyRef).onDestroy(() => {
36
- textureRef.untracked.dispose();
37
+ textureRef.nativeElement.dispose();
37
38
  });
38
39
  const params = computed(() => {
39
40
  let { files, preset, encoding, path, extensions } = paramsFactory();
@@ -44,9 +45,9 @@ export function injectNgtsEnvironment(paramsFactory, injector) {
44
45
  path = '';
45
46
  }
46
47
  if (preset) {
47
- if (!(preset in ngtsEnvironmentPresetsObj))
48
- throw new Error('Preset must be one of: ' + Object.keys(ngtsEnvironmentPresetsObj).join(', '));
49
- files = ngtsEnvironmentPresetsObj[preset];
48
+ if (!(preset in ENVIRONMENT_PRESETS))
49
+ throw new Error('Preset must be one of: ' + Object.keys(ENVIRONMENT_PRESETS).join(', '));
50
+ files = ENVIRONMENT_PRESETS[preset];
50
51
  path = CUBEMAP_ROOT;
51
52
  }
52
53
  return { files, preset, encoding, path, extensions };
@@ -54,8 +55,22 @@ export function injectNgtsEnvironment(paramsFactory, injector) {
54
55
  const loaderResult = injectNgtLoader(
55
56
  // @ts-expect-error
56
57
  () => {
57
- const { files } = params();
58
- return Array.isArray(files) ? CubeTextureLoader : RGBELoader;
58
+ const { files = '' } = params();
59
+ const isCubeMap = Array.isArray(files);
60
+ const extension = Array.isArray(files)
61
+ ? 'cube'
62
+ : files.startsWith('data:application/exr')
63
+ ? 'exr'
64
+ : files.startsWith('data:application/hdr')
65
+ ? 'hdr'
66
+ : files.split('.').pop()?.split('?')?.shift()?.toLowerCase();
67
+ return isCubeMap
68
+ ? CubeTextureLoader
69
+ : extension === 'hdr'
70
+ ? RGBELoader
71
+ : extension === 'exr'
72
+ ? EXRLoader
73
+ : null;
59
74
  }, () => {
60
75
  const { files } = params();
61
76
  return Array.isArray(files) ? [files] : files;
@@ -67,6 +82,8 @@ export function injectNgtsEnvironment(paramsFactory, injector) {
67
82
  extensions(loader);
68
83
  },
69
84
  });
85
+ const sRGBEncoding = 3001;
86
+ const LinearEncoding = 3000;
70
87
  effect(() => {
71
88
  const result = loaderResult();
72
89
  if (!result)
@@ -74,11 +91,16 @@ export function injectNgtsEnvironment(paramsFactory, injector) {
74
91
  const { files, encoding } = params();
75
92
  const texture = Array.isArray(files) ? result[0] : result;
76
93
  texture.mapping = Array.isArray(files) ? CubeReflectionMapping : EquirectangularReflectionMapping;
77
- texture.encoding = encoding ?? Array.isArray(files) ? sRGBEncoding : LinearEncoding;
94
+ if ('colorSpace' in texture) {
95
+ texture.colorSpace = encoding ?? Array.isArray(files) ? 'srgb' : 'srgb-linear';
96
+ }
97
+ else {
98
+ texture.encoding = encoding ?? Array.isArray(files) ? sRGBEncoding : LinearEncoding;
99
+ }
78
100
  textureRef.nativeElement = texture;
79
101
  safeDetectChanges(cdr);
80
- }, { allowSignalWrites: true });
102
+ });
81
103
  return textureRef;
82
104
  });
83
105
  }
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvZW52aXJvbm1lbnQvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILGlCQUFpQixFQUNqQixVQUFVLEVBR1YsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04scUJBQXFCLEdBQ3hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RyxPQUFPLEVBQ0gscUJBQXFCLEVBRXJCLGlCQUFpQixFQUNqQixnQ0FBZ0MsRUFDaEMsY0FBYyxFQUNkLFlBQVksR0FDZixNQUFNLE9BQU8sQ0FBQztBQUNmLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBR3JELFNBQVMsWUFBWSxDQUFDLEtBQTRDO0lBQzlELE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0FBQ3ZELENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUN2QixVQUE0QixFQUM1QixLQUF3RCxFQUN4RCxZQUF5QixFQUN6QixPQUFzQixFQUN0QixJQUFJLEdBQUcsQ0FBQztJQUVSLE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxLQUFLLElBQUksWUFBWSxDQUFDLENBQUM7SUFDbkQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztJQUNoQyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDO0lBQ2xDLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsSUFB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QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgRGVzdHJveVJlZixcbiAgICBFbGVtZW50UmVmLFxuICAgIEluamVjdG9yLFxuICAgIGNvbXB1dGVkLFxuICAgIGVmZmVjdCxcbiAgICBpbmplY3QsXG4gICAgcnVuSW5JbmplY3Rpb25Db250ZXh0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFzc2VydEluamVjdGlvbkNvbnRleHQsIGluamVjdE5ndExvYWRlciwgaW5qZWN0Tmd0UmVmLCBpcywgc2FmZURldGVjdENoYW5nZXMgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7XG4gICAgQ3ViZVJlZmxlY3Rpb25NYXBwaW5nLFxuICAgIEN1YmVUZXh0dXJlLFxuICAgIEN1YmVUZXh0dXJlTG9hZGVyLFxuICAgIEVxdWlyZWN0YW5ndWxhclJlZmxlY3Rpb25NYXBwaW5nLFxuICAgIExpbmVhckVuY29kaW5nLFxuICAgIHNSR0JFbmNvZGluZyxcbn0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgUkdCRUxvYWRlciB9IGZyb20gJ3RocmVlLXN0ZGxpYic7XG5pbXBvcnQgeyBuZ3RzRW52aXJvbm1lbnRQcmVzZXRzT2JqIH0gZnJvbSAnLi9hc3NldHMnO1xuaW1wb3J0IHsgdHlwZSBOZ3RzRW52aXJvbm1lbnRJbnB1dCB9IGZyb20gJy4vZW52aXJvbm1lbnQtaW5wdXQnO1xuXG5mdW5jdGlvbiByZXNvbHZlU2NlbmUoc2NlbmU6IFRIUkVFLlNjZW5lIHwgRWxlbWVudFJlZjxUSFJFRS5TY2VuZT4pIHtcbiAgICByZXR1cm4gaXMucmVmKHNjZW5lKSA/IHNjZW5lLm5hdGl2ZUVsZW1lbnQgOiBzY2VuZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEVudlByb3BzKFxuICAgIGJhY2tncm91bmQ6IGJvb2xlYW4gfCAnb25seScsXG4gICAgc2NlbmU6IFRIUkVFLlNjZW5lIHwgRWxlbWVudFJlZjxUSFJFRS5TY2VuZT4gfCB1bmRlZmluZWQsXG4gICAgZGVmYXVsdFNjZW5lOiBUSFJFRS5TY2VuZSxcbiAgICB0ZXh0dXJlOiBUSFJFRS5UZXh0dXJlLFxuICAgIGJsdXIgPSAwXG4pIHtcbiAgICBjb25zdCB0YXJnZXQgPSByZXNvbHZlU2NlbmUoc2NlbmUgfHwgZGVmYXVsdFNjZW5lKTtcbiAgICBjb25zdCBvbGRiZyA9IHRhcmdldC5iYWNrZ3JvdW5kO1xuICAgIGNvbnN0IG9sZGVudiA9IHRhcmdldC5lbnZpcm9ubWVudDtcbiAgICBjb25zdCBvbGRCbHVyID0gdGFyZ2V0LmJhY2tncm91bmRCbHVycmluZXNzIHx8IDA7XG5cbiAgICBpZiAoYmFja2dyb3VuZCAhPT0gJ29ubHknKSB0YXJnZXQuZW52aXJvbm1lbnQgPSB0ZXh0dXJlO1xuICAgIGlmIChiYWNrZ3JvdW5kKSB0YXJnZXQuYmFja2dyb3VuZCA9IHRleHR1cmU7XG4gICAgaWYgKGJhY2tncm91bmQgJiYgdGFyZ2V0LmJhY2tncm91bmRCbHVycmluZXNzICE9PSB1bmRlZmluZWQpIHRhcmdldC5iYWNrZ3JvdW5kQmx1cnJpbmVzcyA9IGJsdXI7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBpZiAoYmFja2dyb3VuZCAhPT0gJ29ubHknKSB0YXJnZXQuZW52aXJvbm1lbnQgPSBvbGRlbnY7XG4gICAgICAgIGlmIChiYWNrZ3JvdW5kKSB0YXJnZXQuYmFja2dyb3VuZCA9IG9sZGJnO1xuICAgICAgICBpZiAoYmFja2dyb3VuZCAmJiB0YXJnZXQuYmFja2dyb3VuZEJsdXJyaW5lc3MgIT09IHVuZGVmaW5lZCkgdGFyZ2V0LmJhY2tncm91bmRCbHVycmluZXNzID0gb2xkQmx1cjtcbiAgICB9O1xufVxuXG50eXBlIE5ndHNJbmplY3RFbnZpcm9ubWVudFBhcmFtcyA9IFBhcnRpYWw8XG4gICAgUGljazxOZ3RzRW52aXJvbm1lbnRJbnB1dCwgJ2ZpbGVzJyB8ICdwYXRoJyB8ICdwcmVzZXQnIHwgJ2V4dGVuc2lvbnMnIHwgJ2VuY29kaW5nJz5cbj47XG5cbmNvbnN0IENVQkVNQVBfUk9PVCA9ICdodHRwczovL21hcmtldC1hc3NldHMuZnJhMS5jZG4uZGlnaXRhbG9jZWFuc3BhY2VzLmNvbS9tYXJrZXQtYXNzZXRzL2hkcmlzLyc7XG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0Tmd0c0Vudmlyb25tZW50KHBhcmFtc0ZhY3Rvcnk6ICgpID0+IFBhcnRpYWw8Tmd0c0luamVjdEVudmlyb25tZW50UGFyYW1zPiwgaW5qZWN0b3I/OiBJbmplY3Rvcikge1xuICAgIGluamVjdG9yID0gYXNzZXJ0SW5qZWN0aW9uQ29udGV4dChpbmplY3ROZ3RzRW52aXJvbm1lbnQsIGluamVjdG9yKTtcbiAgICByZXR1cm4gcnVuSW5JbmplY3Rpb25Db250ZXh0KGluamVjdG9yLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgICAgIGNvbnN0IHRleHR1cmVSZWYgPSBpbmplY3ROZ3RSZWY8VEhSRUUuVGV4dHVyZSB8IEN1YmVUZXh0dXJlPigpO1xuXG4gICAgICAgIGluamVjdChEZXN0cm95UmVmKS5vbkRlc3Ryb3koKCkgPT4ge1xuICAgICAgICAgICAgdGV4dHVyZVJlZi51bnRyYWNrZWQuZGlzcG9zZSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBwYXJhbXMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgICAgICBsZXQgeyBmaWxlcywgcHJlc2V0LCBlbmNvZGluZywgcGF0aCwgZXh0ZW5zaW9ucyB9ID0gcGFyYW1zRmFjdG9yeSgpIGFzIE5ndHNJbmplY3RFbnZpcm9ubWVudFBhcmFtcztcblxuICAgICAgICAgICAgaWYgKGZpbGVzID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBmaWxlcyA9IFsnL3B4LnBuZycsICcvbngucG5nJywgJy9weS5wbmcnLCAnL255LnBuZycsICcvcHoucG5nJywgJy9uei5wbmcnXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHBhdGggPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHBhdGggPSAnJztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHByZXNldCkge1xuICAgICAgICAgICAgICAgIGlmICghKHByZXNldCBpbiBuZ3RzRW52aXJvbm1lbnRQcmVzZXRzT2JqKSlcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdQcmVzZXQgbXVzdCBiZSBvbmUgb2Y6ICcgKyBPYmplY3Qua2V5cyhuZ3RzRW52aXJvbm1lbnRQcmVzZXRzT2JqKS5qb2luKCcsICcpKTtcbiAgICAgICAgICAgICAgICBmaWxlcyA9IG5ndHNFbnZpcm9ubWVudFByZXNldHNPYmpbcHJlc2V0XTtcbiAgICAgICAgICAgICAgICBwYXRoID0gQ1VCRU1BUF9ST09UO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4geyBmaWxlcywgcHJlc2V0LCBlbmNvZGluZywgcGF0aCwgZXh0ZW5zaW9ucyB9IGFzIE5ndHNJbmplY3RFbnZpcm9ubWVudFBhcmFtcztcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgbG9hZGVyUmVzdWx0ID0gaW5qZWN0Tmd0TG9hZGVyKFxuICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgZmlsZXMgfSA9IHBhcmFtcygpO1xuICAgICAgICAgICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KGZpbGVzKSA/IEN1YmVUZXh0dXJlTG9hZGVyIDogUkdCRUxvYWRlcjtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBmaWxlcyB9ID0gcGFyYW1zKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoZmlsZXMpID8gW2ZpbGVzXSA6IGZpbGVzO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBleHRlbnNpb25zOiAobG9hZGVyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgcGF0aCwgZXh0ZW5zaW9ucyB9ID0gcGFyYW1zKCk7XG4gICAgICAgICAgICAgICAgICAgIGxvYWRlci5zZXRQYXRoKHBhdGgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXh0ZW5zaW9ucykgZXh0ZW5zaW9ucyhsb2FkZXIpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG5cbiAgICAgICAgZWZmZWN0KFxuICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGxvYWRlclJlc3VsdCgpO1xuICAgICAgICAgICAgICAgIGlmICghcmVzdWx0KSByZXR1cm47XG4gICAgICAgICAgICAgICAgY29uc3QgeyBmaWxlcywgZW5jb2RpbmcgfSA9IHBhcmFtcygpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRleHR1cmU6IFRIUkVFLlRleHR1cmUgfCBUSFJFRS5DdWJlVGV4dHVyZSA9IEFycmF5LmlzQXJyYXkoZmlsZXMpID8gcmVzdWx0WzBdIDogcmVzdWx0O1xuICAgICAgICAgICAgICAgIHRleHR1cmUubWFwcGluZyA9IEFycmF5LmlzQXJyYXkoZmlsZXMpID8gQ3ViZVJlZmxlY3Rpb25NYXBwaW5nIDogRXF1aXJlY3Rhbmd1bGFyUmVmbGVjdGlvbk1hcHBpbmc7XG4gICAgICAgICAgICAgICAgdGV4dHVyZS5lbmNvZGluZyA9IGVuY29kaW5nID8/IEFycmF5LmlzQXJyYXkoZmlsZXMpID8gc1JHQkVuY29kaW5nIDogTGluZWFyRW5jb2Rpbmc7XG5cbiAgICAgICAgICAgICAgICB0ZXh0dXJlUmVmLm5hdGl2ZUVsZW1lbnQgPSB0ZXh0dXJlO1xuICAgICAgICAgICAgICAgIHNhZmVEZXRlY3RDaGFuZ2VzKGNkcik7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIHRleHR1cmVSZWY7XG4gICAgfSk7XG59XG4iXX0=
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvZW52aXJvbm1lbnQvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLGlCQUFpQixFQUNqQixVQUFVLEVBQ1YsVUFBVSxFQUNWLFFBQVEsRUFDUixRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sRUFDTixxQkFBcUIsR0FDckIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDaEgsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDckQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQy9DLE9BQU8sRUFBa0MsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRSxTQUFTLFlBQVksQ0FBQyxLQUE0QztJQUNqRSxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUNwRCxDQUFDO0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FDMUIsVUFBNEIsRUFDNUIsS0FBd0QsRUFDeEQsWUFBeUIsRUFDekIsT0FBc0IsRUFDdEIsSUFBSSxHQUFHLENBQUM7SUFFUixNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsS0FBSyxJQUFJLFlBQVksQ0FBQyxDQUFDO0lBQ25ELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7SUFDaEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFD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LEVBQUUsQ0FBQztZQUM5QixJQUFJLENBQUMsTUFBTTtnQkFBRSxPQUFPO1lBQ3BCLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUM7WUFDckMsTUFBTSxPQUFPLEdBQXNDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQzdGLE9BQU8sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLGdDQUFnQyxDQUFDO1lBQ2xHLElBQUksWUFBWSxJQUFJLE9BQU8sRUFBRTtnQkFDNUIsT0FBTyxDQUFDLFVBQVUsR0FBRyxRQUFRLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUM7YUFDL0U7aUJBQU07Z0JBQ0wsT0FBZSxDQUFDLFFBQVEsR0FBRyxRQUFRLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUM7YUFDN0Y7WUFFRCxVQUFVLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQztZQUNuQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sVUFBVSxDQUFDO0lBQ25CLENBQUMsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENoYW5nZURldGVjdG9yUmVmLFxuXHREZXN0cm95UmVmLFxuXHRFbGVtZW50UmVmLFxuXHRJbmplY3Rvcixcblx0Y29tcHV0ZWQsXG5cdGVmZmVjdCxcblx0aW5qZWN0LFxuXHRydW5JbkluamVjdGlvbkNvbnRleHQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYXNzZXJ0SW5qZWN0aW9uQ29udGV4dCwgaW5qZWN0Tmd0TG9hZGVyLCBpbmplY3ROZ3RSZWYsIGlzLCBzYWZlRGV0ZWN0Q2hhbmdlcyB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgQ3ViZVJlZmxlY3Rpb25NYXBwaW5nLCBDdWJlVGV4dHVyZSwgQ3ViZVRleHR1cmVMb2FkZXIsIEVxdWlyZWN0YW5ndWxhclJlZmxlY3Rpb25NYXBwaW5nIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgRVhSTG9hZGVyLCBSR0JFTG9hZGVyIH0gZnJvbSAndGhyZWUtc3RkbGliJztcbmltcG9ydCB7IEVOVklST05NRU5UX1BSRVNFVFMgfSBmcm9tICcuL2Fzc2V0cyc7XG5pbXBvcnQgeyB0eXBlIE5ndHNFbnZpcm9ubWVudElucHV0U3RhdGUgfSBmcm9tICcuL2Vudmlyb25tZW50LWlucHV0JztcblxuZnVuY3Rpb24gcmVzb2x2ZVNjZW5lKHNjZW5lOiBUSFJFRS5TY2VuZSB8IEVsZW1lbnRSZWY8VEhSRUUuU2NlbmU+KSB7XG5cdHJldHVybiBpcy5yZWYoc2NlbmUpID8gc2NlbmUubmF0aXZlRWxlbWVudCA6IHNjZW5lO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0RW52UHJvcHMoXG5cdGJhY2tncm91bmQ6IGJvb2xlYW4gfCAnb25seScsXG5cdHNjZW5lOiBUSFJFRS5TY2VuZSB8IEVsZW1lbnRSZWY8VEhSRUUuU2NlbmU+IHwgdW5kZWZpbmVkLFxuXHRkZWZhdWx0U2NlbmU6IFRIUkVFLlNjZW5lLFxuXHR0ZXh0dXJlOiBUSFJFRS5UZXh0dXJlLFxuXHRibHVyID0gMCxcbikge1xuXHRjb25zdCB0YXJnZXQgPSByZXNvbHZlU2NlbmUoc2NlbmUgfHwgZGVmYXVsdFNjZW5lKTtcblx0Y29uc3Qgb2xkYmcgPSB0YXJnZXQuYmFja2dyb3VuZDtcblx0Y29uc3Qgb2xkZW52ID0gdGFyZ2V0LmVudmlyb25tZW50O1xuXHRjb25zdCBvbGRCbHVyID0gdGFyZ2V0LmJhY2tncm91bmRCbHVycmluZXNzIHx8IDA7XG5cblx0aWYgKGJhY2tncm91bmQgIT09ICdvbmx5JykgdGFyZ2V0LmVudmlyb25tZW50ID0gdGV4dHVyZTtcblx0aWYgKGJhY2tncm91bmQpIHRhcmdldC5iYWNrZ3JvdW5kID0gdGV4dHVyZTtcblx0aWYgKGJhY2tncm91bmQgJiYgdGFyZ2V0LmJhY2tncm91bmRCbHVycmluZXNzICE9PSB1bmRlZmluZWQpIHRhcmdldC5iYWNrZ3JvdW5kQmx1cnJpbmVzcyA9IGJsdXI7XG5cblx0cmV0dXJuICgpID0+IHtcblx0XHRpZiAoYmFja2dyb3VuZCAhPT0gJ29ubHknKSB0YXJnZXQuZW52aXJvbm1lbnQgPSBvbGRlbnY7XG5cdFx0aWYgKGJhY2tncm91bmQpIHRhcmdldC5iYWNrZ3JvdW5kID0gb2xkYmc7XG5cdFx0aWYgKGJhY2tncm91bmQgJiYgdGFyZ2V0LmJhY2tncm91bmRCbHVycmluZXNzICE9PSB1bmRlZmluZWQpIHRhcmdldC5iYWNrZ3JvdW5kQmx1cnJpbmVzcyA9IG9sZEJsdXI7XG5cdH07XG59XG5cbnR5cGUgTmd0c0luamVjdEVudmlyb25tZW50UGFyYW1zID0gUGFydGlhbDxcblx0UGljazxOZ3RzRW52aXJvbm1lbnRJbnB1dFN0YXRlLCAnZmlsZXMnIHwgJ3BhdGgnIHwgJ3ByZXNldCcgfCAnZXh0ZW5zaW9ucycgfCAnZW5jb2RpbmcnPlxuPjtcblxuY29uc3QgQ1VCRU1BUF9ST09UID0gJ2h0dHBzOi8vcmF3LmdpdGhhY2suY29tL3BtbmRycy9kcmVpLWFzc2V0cy80NTYwNjBhMjZiYmViOGZkZjc5MzI2ZjIyNGI2ZDk5YjhiY2NlNzM2L2hkcmkvJztcblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdE5ndHNFbnZpcm9ubWVudChwYXJhbXNGYWN0b3J5OiAoKSA9PiBQYXJ0aWFsPE5ndHNJbmplY3RFbnZpcm9ubWVudFBhcmFtcz4sIGluamVjdG9yPzogSW5qZWN0b3IpIHtcblx0aW5qZWN0b3IgPSBhc3NlcnRJbmplY3Rpb25Db250ZXh0KGluamVjdE5ndHNFbnZpcm9ubWVudCwgaW5qZWN0b3IpO1xuXHRyZXR1cm4gcnVuSW5JbmplY3Rpb25Db250ZXh0KGluamVjdG9yLCAoKSA9PiB7XG5cdFx0Y29uc3QgdGV4dHVyZVJlZiA9IGluamVjdE5ndFJlZjxUSFJFRS5UZXh0dXJlIHwgQ3ViZVRleHR1cmU+KCk7XG5cdFx0Y29uc3QgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuXHRcdGluamVjdChEZXN0cm95UmVmKS5vbkRlc3Ryb3koKCkgPT4ge1xuXHRcdFx0dGV4dHVyZVJlZi5uYXRpdmVFbGVtZW50LmRpc3Bvc2UoKTtcblx0XHR9KTtcblxuXHRcdGNvbnN0IHBhcmFtcyA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRcdGxldCB7IGZpbGVzLCBwcmVzZXQsIGVuY29kaW5nLCBwYXRoLCBleHRlbnNpb25zIH0gPSBwYXJhbXNGYWN0b3J5KCkgYXMgTmd0c0luamVjdEVudmlyb25tZW50UGFyYW1zO1xuXG5cdFx0XHRpZiAoZmlsZXMgPT0gbnVsbCkge1xuXHRcdFx0XHRmaWxlcyA9IFsnL3B4LnBuZycsICcvbngucG5nJywgJy9weS5wbmcnLCAnL255LnBuZycsICcvcHoucG5nJywgJy9uei5wbmcnXTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKHBhdGggPT0gbnVsbCkge1xuXHRcdFx0XHRwYXRoID0gJyc7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChwcmVzZXQpIHtcblx0XHRcdFx0aWYgKCEocHJlc2V0IGluIEVOVklST05NRU5UX1BSRVNFVFMpKVxuXHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcignUHJlc2V0IG11c3QgYmUgb25lIG9mOiAnICsgT2JqZWN0LmtleXMoRU5WSVJPTk1FTlRfUFJFU0VUUykuam9pbignLCAnKSk7XG5cdFx0XHRcdGZpbGVzID0gRU5WSVJPTk1FTlRfUFJFU0VUU1twcmVzZXRdO1xuXHRcdFx0XHRwYXRoID0gQ1VCRU1BUF9ST09UO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4geyBmaWxlcywgcHJlc2V0LCBlbmNvZGluZywgcGF0aCwgZXh0ZW5zaW9ucyB9IGFzIE5ndHNJbmplY3RFbnZpcm9ubWVudFBhcmFtcztcblx0XHR9KTtcblxuXHRcdGNvbnN0IGxvYWRlclJlc3VsdCA9IGluamVjdE5ndExvYWRlcihcblx0XHRcdC8vIEB0cy1leHBlY3QtZXJyb3Jcblx0XHRcdCgpID0+IHtcblx0XHRcdFx0Y29uc3QgeyBmaWxlcyA9ICcnIH0gPSBwYXJhbXMoKTtcblxuXHRcdFx0XHRjb25zdCBpc0N1YmVNYXAgPSBBcnJheS5pc0FycmF5KGZpbGVzKTtcblx0XHRcdFx0Y29uc3QgZXh0ZW5zaW9uID0gQXJyYXkuaXNBcnJheShmaWxlcylcblx0XHRcdFx0XHQ/ICdjdWJlJ1xuXHRcdFx0XHRcdDogZmlsZXMuc3RhcnRzV2l0aCgnZGF0YTphcHBsaWNhdGlvbi9leHInKVxuXHRcdFx0XHRcdD8gJ2V4cidcblx0XHRcdFx0XHQ6IGZpbGVzLnN0YXJ0c1dpdGgoJ2RhdGE6YXBwbGljYXRpb24vaGRyJylcblx0XHRcdFx0XHQ/ICdoZHInXG5cdFx0XHRcdFx0OiBmaWxlcy5zcGxpdCgnLicpLnBvcCgpPy5zcGxpdCgnPycpPy5zaGlmdCgpPy50b0xvd2VyQ2FzZSgpO1xuXHRcdFx0XHRyZXR1cm4gaXNDdWJlTWFwXG5cdFx0XHRcdFx0PyBDdWJlVGV4dHVyZUxvYWRlclxuXHRcdFx0XHRcdDogZXh0ZW5zaW9uID09PSAnaGRyJ1xuXHRcdFx0XHRcdD8gUkdCRUxvYWRlclxuXHRcdFx0XHRcdDogZXh0ZW5zaW9uID09PSAnZXhyJ1xuXHRcdFx0XHRcdD8gRVhSTG9hZGVyXG5cdFx0XHRcdFx0OiBudWxsO1xuXHRcdFx0fSxcblx0XHRcdCgpID0+IHtcblx0XHRcdFx0Y29uc3QgeyBmaWxlcyB9ID0gcGFyYW1zKCk7XG5cdFx0XHRcdHJldHVybiBBcnJheS5pc0FycmF5KGZpbGVzKSA/IFtmaWxlc10gOiBmaWxlcztcblx0XHRcdH0sXG5cdFx0XHR7XG5cdFx0XHRcdGV4dGVuc2lvbnM6IChsb2FkZXIpID0+IHtcblx0XHRcdFx0XHRjb25zdCB7IHBhdGgsIGV4dGVuc2lvbnMgfSA9IHBhcmFtcygpO1xuXHRcdFx0XHRcdGxvYWRlci5zZXRQYXRoKHBhdGgpO1xuXHRcdFx0XHRcdGlmIChleHRlbnNpb25zKSBleHRlbnNpb25zKGxvYWRlcik7XG5cdFx0XHRcdH0sXG5cdFx0XHR9LFxuXHRcdCk7XG5cblx0XHRjb25zdCBzUkdCRW5jb2RpbmcgPSAzMDAxO1xuXHRcdGNvbnN0IExpbmVhckVuY29kaW5nID0gMzAwMDtcblxuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCByZXN1bHQgPSBsb2FkZXJSZXN1bHQoKTtcblx0XHRcdGlmICghcmVzdWx0KSByZXR1cm47XG5cdFx0XHRjb25zdCB7IGZpbGVzLCBlbmNvZGluZyB9ID0gcGFyYW1zKCk7XG5cdFx0XHRjb25zdCB0ZXh0dXJlOiBUSFJFRS5UZXh0dXJlIHwgVEhSRUUuQ3ViZVRleHR1cmUgPSBBcnJheS5pc0FycmF5KGZpbGVzKSA/IHJlc3VsdFswXSA6IHJlc3VsdDtcblx0XHRcdHRleHR1cmUubWFwcGluZyA9IEFycmF5LmlzQXJyYXkoZmlsZXMpID8gQ3ViZVJlZmxlY3Rpb25NYXBwaW5nIDogRXF1aXJlY3Rhbmd1bGFyUmVmbGVjdGlvbk1hcHBpbmc7XG5cdFx0XHRpZiAoJ2NvbG9yU3BhY2UnIGluIHRleHR1cmUpIHtcblx0XHRcdFx0dGV4dHVyZS5jb2xvclNwYWNlID0gZW5jb2RpbmcgPz8gQXJyYXkuaXNBcnJheShmaWxlcykgPyAnc3JnYicgOiAnc3JnYi1saW5lYXInO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0KHRleHR1cmUgYXMgYW55KS5lbmNvZGluZyA9IGVuY29kaW5nID8/IEFycmF5LmlzQXJyYXkoZmlsZXMpID8gc1JHQkVuY29kaW5nIDogTGluZWFyRW5jb2Rpbmc7XG5cdFx0XHR9XG5cblx0XHRcdHRleHR1cmVSZWYubmF0aXZlRWxlbWVudCA9IHRleHR1cmU7XG5cdFx0XHRzYWZlRGV0ZWN0Q2hhbmdlcyhjZHIpO1xuXHRcdH0pO1xuXG5cdFx0cmV0dXJuIHRleHR1cmVSZWY7XG5cdH0pO1xufVxuIl19