angular-three-soba 2.0.0-beta.4 → 2.0.0-beta.41

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 (323) hide show
  1. package/abstractions/billboard/billboard.d.ts +12 -8
  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 +42 -51
  5. package/abstractions/index.d.ts +1 -7
  6. package/abstractions/text/text.d.ts +10 -4
  7. package/abstractions/text-3d/text-3d.d.ts +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 +49 -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 +34 -15
  15. package/esm2022/abstractions/billboard/billboard.mjs +36 -33
  16. package/esm2022/abstractions/detailed/detailed.mjs +64 -0
  17. package/esm2022/abstractions/edges/edges.mjs +58 -63
  18. package/esm2022/abstractions/grid/grid.mjs +140 -110
  19. package/esm2022/abstractions/index.mjs +2 -8
  20. package/esm2022/abstractions/text/text.mjs +123 -122
  21. package/esm2022/abstractions/text-3d/text-3d.mjs +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 +120 -100
  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 +109 -85
  29. package/esm2022/gizmos/angular-three-soba-gizmos.mjs +5 -0
  30. package/esm2022/gizmos/gizmo-helper/gizmo-helper.mjs +198 -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 +151 -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 +14 -9
  40. package/esm2022/loaders/loader/loader.mjs +92 -87
  41. package/esm2022/loaders/progress/progress.mjs +31 -30
  42. package/esm2022/loaders/texture-loader/texture-loader.mjs +20 -15
  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 +99 -97
  47. package/esm2022/materials/mesh-transmission-material/mesh-transmission-material.mjs +164 -144
  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 +28 -23
  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 +41 -37
  55. package/esm2022/misc/example/example.mjs +161 -0
  56. package/esm2022/misc/fbo/fbo.mjs +42 -36
  57. package/esm2022/misc/html/html-wrapper.mjs +478 -0
  58. package/esm2022/misc/html/html.mjs +305 -0
  59. package/esm2022/misc/index.mjs +10 -1
  60. package/esm2022/misc/sampler/sampler.mjs +132 -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 +204 -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 +221 -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 +327 -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 +183 -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 +32 -0
  83. package/esm2022/shaders/convolution-material/convolution-material.mjs +3 -2
  84. package/esm2022/shaders/discard-material/discard-material.mjs +1 -1
  85. package/esm2022/shaders/grid-material/grid-material.mjs +30 -14
  86. package/esm2022/shaders/index.mjs +5 -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 +3 -2
  90. package/esm2022/shaders/mesh-transmission-material/mesh-transmission-material.mjs +7 -4
  91. package/esm2022/shaders/mesh-wobble-material/mesh-wobble-material.mjs +1 -1
  92. package/esm2022/shaders/shader-material/shader-material.mjs +3 -5
  93. package/esm2022/shaders/soft-shadow-material/soft-shadow-material.mjs +18 -25
  94. package/esm2022/shaders/sparkles-material/sparkles-material.mjs +32 -46
  95. package/esm2022/shaders/spot-light-material/spot-light-material.mjs +8 -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 +161 -176
  99. package/esm2022/staging/accumulative-shadows/progressive-light-map.mjs +8 -8
  100. package/esm2022/staging/accumulative-shadows/randomized-lights.mjs +129 -129
  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 +145 -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 -136
  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 +40 -17
  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 +267 -0
  124. package/esm2022/staging/spot-light/spot-light-input.mjs +67 -58
  125. package/esm2022/staging/spot-light/spot-light.mjs +51 -63
  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/constants.mjs +3 -0
  133. package/esm2022/utils/content/content.mjs +15 -0
  134. package/esm2022/utils/index.mjs +3 -0
  135. package/fesm2022/angular-three-soba-abstractions.mjs +504 -2079
  136. package/fesm2022/angular-three-soba-abstractions.mjs.map +1 -1
  137. package/fesm2022/angular-three-soba-cameras.mjs +293 -260
  138. package/fesm2022/angular-three-soba-cameras.mjs.map +1 -1
  139. package/fesm2022/angular-three-soba-controls.mjs +108 -83
  140. package/fesm2022/angular-three-soba-controls.mjs.map +1 -1
  141. package/fesm2022/angular-three-soba-gizmos.mjs +1045 -0
  142. package/fesm2022/angular-three-soba-gizmos.mjs.map +1 -0
  143. package/fesm2022/angular-three-soba-loaders.mjs +148 -132
  144. package/fesm2022/angular-three-soba-loaders.mjs.map +1 -1
  145. package/fesm2022/angular-three-soba-materials.mjs +656 -588
  146. package/fesm2022/angular-three-soba-materials.mjs.map +1 -1
  147. package/fesm2022/angular-three-soba-misc.mjs +2202 -99
  148. package/fesm2022/angular-three-soba-misc.mjs.map +1 -1
  149. package/fesm2022/angular-three-soba-modifiers.mjs +71 -0
  150. package/fesm2022/angular-three-soba-modifiers.mjs.map +1 -0
  151. package/fesm2022/angular-three-soba-performances.mjs +957 -0
  152. package/fesm2022/angular-three-soba-performances.mjs.map +1 -0
  153. package/fesm2022/angular-three-soba-shaders.mjs +508 -269
  154. package/fesm2022/angular-three-soba-shaders.mjs.map +1 -1
  155. package/fesm2022/angular-three-soba-staging.mjs +2910 -2573
  156. package/fesm2022/angular-three-soba-staging.mjs.map +1 -1
  157. package/fesm2022/angular-three-soba-utils.mjs +25 -0
  158. package/fesm2022/angular-three-soba-utils.mjs.map +1 -0
  159. package/gizmos/README.md +3 -0
  160. package/gizmos/gizmo-helper/gizmo-helper.d.ts +73 -0
  161. package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.d.ts +22 -0
  162. package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.d.ts +29 -0
  163. package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-input.d.ts +33 -0
  164. package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube.d.ts +10 -0
  165. package/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.d.ts +40 -0
  166. package/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport.d.ts +30 -0
  167. package/gizmos/index.d.ts +3 -0
  168. package/loaders/gltf-loader/gltf-loader.d.ts +15 -4
  169. package/loaders/loader/loader.d.ts +19 -17
  170. package/loaders/progress/progress.d.ts +1 -1
  171. package/loaders/texture-loader/texture-loader.d.ts +8 -3
  172. package/materials/index.d.ts +1 -0
  173. package/materials/mesh-distort-material/mesh-distort-material.d.ts +25 -15
  174. package/materials/mesh-reflector-material/mesh-reflector-material.d.ts +74 -56
  175. package/materials/mesh-refraction-material/mesh-refraction-material.d.ts +33 -21
  176. package/materials/mesh-transmission-material/mesh-transmission-material.d.ts +55 -39
  177. package/materials/mesh-wobble-material/mesh-wobble-material.d.ts +19 -10
  178. package/materials/point-material/point-material.d.ts +24 -0
  179. package/metadata.json +1 -0
  180. package/misc/animations/animations.d.ts +6 -4
  181. package/misc/caustics/caustics.d.ts +87 -0
  182. package/misc/decal/decal.d.ts +49 -0
  183. package/misc/depth-buffer/depth-buffer.d.ts +2 -2
  184. package/misc/example/example.d.ts +85 -0
  185. package/misc/fbo/fbo.d.ts +2 -2
  186. package/misc/html/html-wrapper.d.ts +559 -0
  187. package/misc/html/html.d.ts +218 -0
  188. package/misc/index.d.ts +9 -0
  189. package/misc/sampler/sampler.d.ts +67 -0
  190. package/misc/shadow/shadow.d.ts +37 -0
  191. package/misc/stats-gl/stats-gl.d.ts +24 -0
  192. package/misc/trail/trail.d.ts +57 -0
  193. package/misc/trail-texture/inject-trail-texture.d.ts +9 -0
  194. package/misc/trail-texture/trail-texture.d.ts +50 -0
  195. package/modifiers/README.md +3 -0
  196. package/modifiers/curve-modifier/curve-modifier.d.ts +23 -0
  197. package/modifiers/index.d.ts +1 -0
  198. package/package.json +42 -24
  199. package/performances/README.md +3 -0
  200. package/performances/adaptive-dpr/adaptive-dpr.d.ts +14 -0
  201. package/{performance/adaptive → performances/adaptive-events}/adaptive-events.d.ts +3 -0
  202. package/performances/index.d.ts +7 -0
  203. package/performances/instances/instances.d.ts +83 -0
  204. package/{performance → performances}/instances/position-mesh.d.ts +1 -1
  205. package/performances/points/points-input.d.ts +32 -0
  206. package/performances/points/points.d.ts +96 -0
  207. package/performances/points/position-point.d.ts +11 -0
  208. package/performances/segments/segment-object.d.ts +7 -0
  209. package/performances/segments/segments.d.ts +128 -0
  210. package/shaders/grid-material/grid-material.d.ts +33 -0
  211. package/shaders/index.d.ts +4 -2
  212. package/shaders/mesh-distort-material/mesh-distort-material.d.ts +173 -6
  213. package/shaders/mesh-transmission-material/mesh-transmission-material.d.ts +1 -1
  214. package/shaders/shader-material/shader-material.d.ts +2 -2
  215. package/shaders/soft-shadow-material/soft-shadow-material.d.ts +10 -1
  216. package/shaders/sparkles-material/sparkles-material.d.ts +13 -0
  217. package/shaders/spot-light-material/spot-light-material.d.ts +11 -2
  218. package/shaders/star-field-material/star-field-material.d.ts +9 -0
  219. package/shaders/wireframe-material/wireframe-material.d.ts +58 -0
  220. package/staging/accumulative-shadows/accumulative-shadows.d.ts +93 -39
  221. package/staging/accumulative-shadows/randomized-lights.d.ts +41 -28
  222. package/staging/backdrop/backdrop.d.ts +30 -0
  223. package/staging/bb-anchor/bb-anchor.d.ts +27 -0
  224. package/staging/bounds/bounds.d.ts +105 -25
  225. package/staging/camera-shake/camera-shake.d.ts +30 -19
  226. package/staging/center/center.d.ts +43 -35
  227. package/staging/cloud/cloud.d.ts +27 -24
  228. package/staging/contact-shadows/contact-shadows.d.ts +43 -30
  229. package/staging/environment/assets.d.ts +9 -9
  230. package/staging/environment/environment-cube.d.ts +9 -5
  231. package/staging/environment/environment-ground.d.ts +7 -7
  232. package/staging/environment/environment-input.d.ts +38 -38
  233. package/staging/environment/environment-map.d.ts +10 -5
  234. package/staging/environment/environment-portal.d.ts +10 -5
  235. package/staging/environment/environment.d.ts +0 -4
  236. package/staging/environment/utils.d.ts +2 -2
  237. package/staging/float/float.d.ts +15 -11
  238. package/staging/index.d.ts +6 -2
  239. package/staging/matcap-texture/matcap-texture.d.ts +13 -0
  240. package/staging/normal-texture/normal-texture.d.ts +16 -0
  241. package/staging/sky/sky.d.ts +28 -21
  242. package/staging/sparkles/sparkles.d.ts +36 -22
  243. package/staging/spot-light/shadow-mesh-input.d.ts +29 -0
  244. package/staging/spot-light/shadow-mesh.d.ts +37 -0
  245. package/staging/spot-light/spot-light-input.d.ts +25 -25
  246. package/staging/spot-light/spot-light.d.ts +35 -15
  247. package/staging/spot-light/volumetric-mesh.d.ts +15 -9
  248. package/staging/stage/stage.d.ts +89 -65
  249. package/staging/stars/stars.d.ts +28 -17
  250. package/staging/wireframe/wireframe-input.d.ts +65 -0
  251. package/staging/wireframe/wireframe.d.ts +28 -0
  252. package/utils/README.md +3 -0
  253. package/utils/constants.d.ts +1 -0
  254. package/utils/content/content.d.ts +8 -0
  255. package/utils/index.d.ts +2 -0
  256. package/web-types.json +1 -0
  257. package/abstractions/catmull-rom-line/catmull-rom-line.d.ts +0 -25
  258. package/abstractions/cubic-bezier-line/cubic-bezier-line.d.ts +0 -25
  259. package/abstractions/gizmo-helper/gizmo-helper.d.ts +0 -34
  260. package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.d.ts +0 -22
  261. package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.d.ts +0 -30
  262. package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.d.ts +0 -32
  263. package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube.d.ts +0 -14
  264. package/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.d.ts +0 -47
  265. package/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport.d.ts +0 -40
  266. package/abstractions/line/line-input.d.ts +0 -42
  267. package/abstractions/line/line.d.ts +0 -35
  268. package/abstractions/quadratic-bezier-line/quadratic-bezier-line.d.ts +0 -23
  269. package/esm2022/abstractions/catmull-rom-line/catmull-rom-line.mjs +0 -131
  270. package/esm2022/abstractions/cubic-bezier-line/cubic-bezier-line.mjs +0 -113
  271. package/esm2022/abstractions/gizmo-helper/gizmo-helper.mjs +0 -210
  272. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/constants.mjs +0 -31
  273. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +0 -95
  274. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +0 -155
  275. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.mjs +0 -62
  276. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube.mjs +0 -80
  277. package/esm2022/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +0 -206
  278. package/esm2022/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport.mjs +0 -273
  279. package/esm2022/abstractions/line/line-input.mjs +0 -113
  280. package/esm2022/abstractions/line/line.mjs +0 -165
  281. package/esm2022/abstractions/quadratic-bezier-line/quadratic-bezier-line.mjs +0 -128
  282. package/esm2022/performance/adaptive/adaptive-dpr.mjs +0 -46
  283. package/esm2022/performance/adaptive/adaptive-events.mjs +0 -31
  284. package/esm2022/performance/angular-three-soba-performance.mjs +0 -5
  285. package/esm2022/performance/detailed/detailed.mjs +0 -61
  286. package/esm2022/performance/index.mjs +0 -7
  287. package/esm2022/performance/instances/instance.mjs +0 -48
  288. package/esm2022/performance/instances/instances.mjs +0 -189
  289. package/esm2022/performance/instances/position-mesh.mjs +0 -52
  290. package/esm2022/performance/stats/stats.mjs +0 -79
  291. package/esm2022/shaders/caustics-material/caustics-material.mjs +0 -128
  292. package/esm2022/shaders/caustics-material/caustics-projection-material.mjs +0 -33
  293. package/esm2022/staging/caustics/caustisc.mjs +0 -384
  294. package/esm2022/staging/spot-light/spot-light-shadow-mesh-input.mjs +0 -57
  295. package/esm2022/staging/spot-light/spot-light-shadow-mesh.mjs +0 -256
  296. package/fesm2022/angular-three-soba-performance.mjs +0 -487
  297. package/fesm2022/angular-three-soba-performance.mjs.map +0 -1
  298. package/performance/README.md +0 -3
  299. package/performance/adaptive/adaptive-dpr.d.ts +0 -8
  300. package/performance/detailed/detailed.d.ts +0 -20
  301. package/performance/index.d.ts +0 -6
  302. package/performance/instances/instance.d.ts +0 -9
  303. package/performance/instances/instances.d.ts +0 -35
  304. package/performance/stats/stats.d.ts +0 -18
  305. package/plugin/generators.json +0 -19
  306. package/plugin/libs/plugin/README.md +0 -11
  307. package/plugin/package.json +0 -9
  308. package/plugin/src/generators/init/compat.d.ts +0 -2
  309. package/plugin/src/generators/init/compat.js +0 -6
  310. package/plugin/src/generators/init/compat.js.map +0 -1
  311. package/plugin/src/generators/init/init.d.ts +0 -7
  312. package/plugin/src/generators/init/init.js +0 -28
  313. package/plugin/src/generators/init/init.js.map +0 -1
  314. package/plugin/src/generators/init/schema.json +0 -6
  315. package/plugin/src/index.d.ts +0 -1
  316. package/plugin/src/index.js +0 -6
  317. package/plugin/src/index.js.map +0 -1
  318. package/staging/caustics/caustisc.d.ts +0 -70
  319. package/staging/spot-light/spot-light-shadow-mesh-input.d.ts +0 -29
  320. package/staging/spot-light/spot-light-shadow-mesh.d.ts +0 -38
  321. /package/{abstractions → gizmos}/gizmo-helper/gizmo-viewcube/constants.d.ts +0 -0
  322. /package/shaders/{caustics-material → caustics}/caustics-material.d.ts +0 -0
  323. /package/shaders/{caustics-material → caustics}/caustics-projection-material.d.ts +0 -0
@@ -0,0 +1,267 @@
1
+ import { NgIf } from '@angular/common';
2
+ import { CUSTOM_ELEMENTS_SCHEMA, Component, computed, effect, inject, runInInjectionContext, } from '@angular/core';
3
+ import { checkUpdate, extend, injectBeforeRender, injectNgtRef } from 'angular-three';
4
+ import { assertInjector } from 'ngxtension/assert-injector';
5
+ import * as THREE from 'three';
6
+ import { Mesh, MeshBasicMaterial, PlaneGeometry } from 'three';
7
+ import { FullScreenQuad } from 'three-stdlib';
8
+ import { NgtsSpotLightShadowMeshInput } from './shadow-mesh-input';
9
+ import { injectNgtsSpotLightApi } from './spot-light';
10
+ import * as i0 from "@angular/core";
11
+ const isSpotLight = (child) => {
12
+ return child?.isSpotLight;
13
+ };
14
+ function injectShadowMeshCommon(spotLightRef, meshRef, width, height, distance, injector) {
15
+ injector = assertInjector(injectShadowMeshCommon, injector);
16
+ runInInjectionContext(injector, () => {
17
+ const pos = new THREE.Vector3();
18
+ const dir = new THREE.Vector3();
19
+ effect(() => {
20
+ const spotLight = spotLightRef.nativeElement;
21
+ if (!spotLight)
22
+ return;
23
+ if (isSpotLight(spotLight)) {
24
+ spotLight.shadow.mapSize.set(width(), height());
25
+ if (spotLight.shadow.map) {
26
+ spotLight.shadow.map.setSize(width(), height());
27
+ }
28
+ spotLight.shadow.needsUpdate = true;
29
+ }
30
+ else {
31
+ throw new Error('<ngts-spot-light-shadow> must be a child of a <ngts-spot-light>');
32
+ }
33
+ });
34
+ injectBeforeRender(() => {
35
+ const spotLight = spotLightRef.nativeElement;
36
+ const mesh = meshRef.nativeElement;
37
+ if (!spotLight)
38
+ return;
39
+ const A = spotLight.position;
40
+ const B = spotLight.target.position;
41
+ dir.copy(B).sub(A);
42
+ const len = dir.length();
43
+ dir.normalize().multiplyScalar(len * distance());
44
+ pos.copy(A).add(dir);
45
+ if (mesh) {
46
+ mesh.position.copy(pos);
47
+ mesh.lookAt(spotLight.target.position);
48
+ }
49
+ });
50
+ });
51
+ }
52
+ extend({ Mesh, PlaneGeometry, MeshBasicMaterial });
53
+ export class NgtsSpotLightShadowMeshNoShader {
54
+ constructor() {
55
+ this.shadowMeshInput = inject(NgtsSpotLightShadowMeshInput);
56
+ this.meshRef = injectNgtRef();
57
+ this.DoubleSide = THREE.DoubleSide;
58
+ this.spotLightApi = injectNgtsSpotLightApi();
59
+ this.debug = this.spotLightApi.debug;
60
+ effect(() => {
61
+ this.shadowMeshInput.inputs.patch({ distance: 0.4, alphaTest: 0.5, width: 512, height: 512, scale: 1 });
62
+ });
63
+ effect(() => {
64
+ const map = this.shadowMeshInput.map();
65
+ if (map) {
66
+ map.wrapS = map.wrapT = THREE.RepeatWrapping;
67
+ checkUpdate(map);
68
+ }
69
+ });
70
+ injectShadowMeshCommon(this.spotLightApi.spotLight, this.meshRef, this.shadowMeshInput.width, this.shadowMeshInput.height, this.shadowMeshInput.distance);
71
+ }
72
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtsSpotLightShadowMeshNoShader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
73
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: NgtsSpotLightShadowMeshNoShader, isStandalone: true, selector: "ngts-spot-light-shadow-mesh-no-shader", ngImport: i0, template: `
74
+ <ngt-mesh [ref]="meshRef" [scale]="shadowMeshInput.scale()" [castShadow]="true">
75
+ <ngt-plane-geometry />
76
+ <ngt-mesh-basic-material
77
+ [transparent]="true"
78
+ [side]="DoubleSide"
79
+ [alphaTest]="shadowMeshInput.alphaTest()"
80
+ [alphaMap]="shadowMeshInput.map()"
81
+ [opacity]="debug() ? 1 : 0"
82
+ >
83
+ <ng-content />
84
+ </ngt-mesh-basic-material>
85
+ </ngt-mesh>
86
+ `, isInline: true }); }
87
+ }
88
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtsSpotLightShadowMeshNoShader, decorators: [{
89
+ type: Component,
90
+ args: [{
91
+ selector: 'ngts-spot-light-shadow-mesh-no-shader',
92
+ standalone: true,
93
+ template: `
94
+ <ngt-mesh [ref]="meshRef" [scale]="shadowMeshInput.scale()" [castShadow]="true">
95
+ <ngt-plane-geometry />
96
+ <ngt-mesh-basic-material
97
+ [transparent]="true"
98
+ [side]="DoubleSide"
99
+ [alphaTest]="shadowMeshInput.alphaTest()"
100
+ [alphaMap]="shadowMeshInput.map()"
101
+ [opacity]="debug() ? 1 : 0"
102
+ >
103
+ <ng-content />
104
+ </ngt-mesh-basic-material>
105
+ </ngt-mesh>
106
+ `,
107
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
108
+ }]
109
+ }], ctorParameters: function () { return []; } });
110
+ export class NgtsSpotLightShadowMeshShader {
111
+ constructor() {
112
+ this.shadowMeshInput = inject(NgtsSpotLightShadowMeshInput);
113
+ this.meshRef = injectNgtRef();
114
+ this.DoubleSide = THREE.DoubleSide;
115
+ this.RepeatWrapping = THREE.RepeatWrapping;
116
+ this.spotLightApi = injectNgtsSpotLightApi();
117
+ this.debug = this.spotLightApi.debug;
118
+ this.renderTarget = computed(() => {
119
+ const [width, height] = [this.shadowMeshInput.width(), this.shadowMeshInput.height()];
120
+ return new THREE.WebGLRenderTarget(width, height, {
121
+ format: THREE.RGBAFormat,
122
+ encoding: THREE.LinearEncoding,
123
+ stencilBuffer: false,
124
+ // depthTexture: null!
125
+ });
126
+ });
127
+ this.uniforms = {
128
+ uShadowMap: { value: this.shadowMeshInput.map() },
129
+ uTime: { value: 0 },
130
+ };
131
+ this.fsQuad = computed(() => {
132
+ const shader = this.shadowMeshInput.shader();
133
+ if (!shader)
134
+ return null;
135
+ return new FullScreenQuad(new THREE.ShaderMaterial({
136
+ uniforms: this.uniforms,
137
+ vertexShader: /* glsl */ `
138
+ varying vec2 vUv;
139
+
140
+ void main() {
141
+ vUv = uv;
142
+ gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
143
+ }
144
+ `,
145
+ fragmentShader: shader,
146
+ }));
147
+ });
148
+ effect(() => {
149
+ this.shadowMeshInput.inputs.patch({
150
+ distance: 0.4,
151
+ alphaTest: 0.5,
152
+ width: 512,
153
+ height: 512,
154
+ scale: 4,
155
+ shader: /* glsl */ `
156
+ varying vec2 vUv;
157
+
158
+ uniform sampler2D uShadowMap;
159
+ uniform float uTime;
160
+
161
+ void main() {
162
+ vec3 color = texture2D(uShadowMap, vUv).xyz;
163
+ gl_FragColor = vec4(color, 1.);
164
+ }
165
+ `,
166
+ });
167
+ });
168
+ injectShadowMeshCommon(this.spotLightApi.spotLight, this.meshRef, this.shadowMeshInput.width, this.shadowMeshInput.height, this.shadowMeshInput.distance);
169
+ injectBeforeRender(({ delta, gl }) => {
170
+ this.uniforms.uTime.value += delta;
171
+ const fsQuad = this.fsQuad();
172
+ const renderTarget = this.renderTarget();
173
+ if (fsQuad && renderTarget) {
174
+ gl.setRenderTarget(renderTarget);
175
+ fsQuad.render(gl);
176
+ gl.setRenderTarget(null);
177
+ }
178
+ });
179
+ effect(() => {
180
+ const map = this.shadowMeshInput.map();
181
+ if (map) {
182
+ this.uniforms.uShadowMap.value = map;
183
+ }
184
+ });
185
+ effect((onCleanup) => {
186
+ const fsQuad = this.fsQuad();
187
+ onCleanup(() => {
188
+ if (fsQuad) {
189
+ fsQuad.dispose();
190
+ fsQuad.material.dispose();
191
+ }
192
+ });
193
+ });
194
+ effect((onCleanup) => {
195
+ const renderTarget = this.renderTarget();
196
+ onCleanup(() => {
197
+ renderTarget.dispose();
198
+ });
199
+ });
200
+ }
201
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtsSpotLightShadowMeshShader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
202
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: NgtsSpotLightShadowMeshShader, isStandalone: true, selector: "ngts-spot-light-shadow-mesh-shader", ngImport: i0, template: `
203
+ <ngt-mesh [ref]="meshRef" [scale]="shadowMeshInput.scale()" [castShadow]="true">
204
+ <ngt-plane-geometry />
205
+ <ngt-mesh-basic-material
206
+ [transparent]="true"
207
+ [side]="DoubleSide"
208
+ [alphaTest]="shadowMeshInput.alphaTest()"
209
+ [alphaMap]="renderTarget().texture"
210
+ [opacity]="debug() ? 1 : 0"
211
+ >
212
+ <ngt-value [rawValue]="RepeatWrapping" attach="alphaMap.wrapS" />
213
+ <ngt-value [rawValue]="RepeatWrapping" attach="alphaMap.wrapT" />
214
+ <ng-content />
215
+ </ngt-mesh-basic-material>
216
+ </ngt-mesh>
217
+ `, isInline: true }); }
218
+ }
219
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtsSpotLightShadowMeshShader, decorators: [{
220
+ type: Component,
221
+ args: [{
222
+ selector: 'ngts-spot-light-shadow-mesh-shader',
223
+ standalone: true,
224
+ template: `
225
+ <ngt-mesh [ref]="meshRef" [scale]="shadowMeshInput.scale()" [castShadow]="true">
226
+ <ngt-plane-geometry />
227
+ <ngt-mesh-basic-material
228
+ [transparent]="true"
229
+ [side]="DoubleSide"
230
+ [alphaTest]="shadowMeshInput.alphaTest()"
231
+ [alphaMap]="renderTarget().texture"
232
+ [opacity]="debug() ? 1 : 0"
233
+ >
234
+ <ngt-value [rawValue]="RepeatWrapping" attach="alphaMap.wrapS" />
235
+ <ngt-value [rawValue]="RepeatWrapping" attach="alphaMap.wrapT" />
236
+ <ng-content />
237
+ </ngt-mesh-basic-material>
238
+ </ngt-mesh>
239
+ `,
240
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
241
+ }]
242
+ }], ctorParameters: function () { return []; } });
243
+ export class NgtsSpotLightShadow extends NgtsSpotLightShadowMeshInput {
244
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtsSpotLightShadow, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
245
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: NgtsSpotLightShadow, isStandalone: true, selector: "ngts-spot-light-shadow", providers: [{ provide: NgtsSpotLightShadowMeshInput, useExisting: NgtsSpotLightShadow }], usesInheritance: true, ngImport: i0, template: `
246
+ <ngts-spot-light-shadow-mesh-shader *ngIf="shader(); else noShader" />
247
+ <ng-template #noShader>
248
+ <ngts-spot-light-shadow-mesh-no-shader />
249
+ </ng-template>
250
+ `, isInline: true, dependencies: [{ kind: "component", type: NgtsSpotLightShadowMeshShader, selector: "ngts-spot-light-shadow-mesh-shader" }, { kind: "component", type: NgtsSpotLightShadowMeshNoShader, selector: "ngts-spot-light-shadow-mesh-no-shader" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
251
+ }
252
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtsSpotLightShadow, decorators: [{
253
+ type: Component,
254
+ args: [{
255
+ selector: 'ngts-spot-light-shadow',
256
+ standalone: true,
257
+ template: `
258
+ <ngts-spot-light-shadow-mesh-shader *ngIf="shader(); else noShader" />
259
+ <ng-template #noShader>
260
+ <ngts-spot-light-shadow-mesh-no-shader />
261
+ </ng-template>
262
+ `,
263
+ imports: [NgtsSpotLightShadowMeshShader, NgtsSpotLightShadowMeshNoShader, NgIf],
264
+ providers: [{ provide: NgtsSpotLightShadowMeshInput, useExisting: NgtsSpotLightShadow }],
265
+ }]
266
+ }] });
267
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhZG93LW1lc2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvc3BvdC1saWdodC9zaGFkb3ctbWVzaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUNOLHNCQUFzQixFQUN0QixTQUFTLEVBQ1QsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04scUJBQXFCLEdBRXJCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDM0csT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUMsT0FBTyxFQUFFLDRCQUE0QixFQUEwQyxNQUFNLHFCQUFxQixDQUFDO0FBQzNHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFFdEQsTUFBTSxXQUFXLEdBQUcsQ0FBQyxLQUE0QixFQUE0QixFQUFFO0lBQzlFLE9BQVEsS0FBeUIsRUFBRSxXQUFXLENBQUM7QUFDaEQsQ0FBQyxDQUFDO0FBRUYsU0FBUyxzQkFBc0IsQ0FDOUIsWUFBNkMsRUFDN0MsT0FBbUMsRUFDbkMsS0FBbUIsRUFDbkIsTUFBb0IsRUFDcEIsUUFBc0IsRUFDdEIsUUFBbUI7SUFFbkIsUUFBUSxHQUFHLGNBQWMsQ0FBQyxzQkFBc0IsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM1RCxxQkFBcUIsQ0FBQyxRQUFRLEVB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O29CQUMvRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxXQUFXLHFCQUFxQixFQUFFLENBQUM7aUJBQ3hGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuXHRDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuXHRDb21wb25lbnQsXG5cdGNvbXB1dGVkLFxuXHRlZmZlY3QsXG5cdGluamVjdCxcblx0cnVuSW5JbmplY3Rpb25Db250ZXh0LFxuXHR0eXBlIEluamVjdG9yLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNoZWNrVXBkYXRlLCBleHRlbmQsIGluamVjdEJlZm9yZVJlbmRlciwgaW5qZWN0Tmd0UmVmLCB0eXBlIE5ndEluamVjdGVkUmVmIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBhc3NlcnRJbmplY3RvciB9IGZyb20gJ25neHRlbnNpb24vYXNzZXJ0LWluamVjdG9yJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IE1lc2gsIE1lc2hCYXNpY01hdGVyaWFsLCBQbGFuZUdlb21ldHJ5IH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgRnVsbFNjcmVlblF1YWQgfSBmcm9tICd0aHJlZS1zdGRsaWInO1xuaW1wb3J0IHsgTmd0c1Nwb3RMaWdodFNoYWRvd01lc2hJbnB1dCwgdHlwZSBOZ3RzU3BvdExpZ2h0U2hhZG93TWVzaElucHV0U3RhdGUgfSBmcm9tICcuL3NoYWRvdy1tZXNoLWlucHV0JztcbmltcG9ydCB7IGluamVjdE5ndHNTcG90TGlnaHRBcGkgfSBmcm9tICcuL3Nwb3QtbGlnaHQnO1xuXG5jb25zdCBpc1Nwb3RMaWdodCA9IChjaGlsZDogVEhSRUUuT2JqZWN0M0QgfCBudWxsKTogY2hpbGQgaXMgVEhSRUUuU3BvdExpZ2h0ID0+IHtcblx0cmV0dXJuIChjaGlsZCBhcyBUSFJFRS5TcG90TGlnaHQpPy5pc1Nwb3RMaWdodDtcbn07XG5cbmZ1bmN0aW9uIGluamVjdFNoYWRvd01lc2hDb21tb24oXG5cdHNwb3RMaWdodFJlZjogTmd0SW5qZWN0ZWRSZWY8VEhSRUUuU3BvdExpZ2h0Pixcblx0bWVzaFJlZjogTmd0SW5qZWN0ZWRSZWY8VEhSRUUuTWVzaD4sXG5cdHdpZHRoOiAoKSA9PiBudW1iZXIsXG5cdGhlaWdodDogKCkgPT4gbnVtYmVyLFxuXHRkaXN0YW5jZTogKCkgPT4gbnVtYmVyLFxuXHRpbmplY3Rvcj86IEluamVjdG9yLFxuKSB7XG5cdGluamVjdG9yID0gYXNzZXJ0SW5qZWN0b3IoaW5qZWN0U2hhZG93TWVzaENvbW1vbiwgaW5qZWN0b3IpO1xuXHRydW5JbkluamVjdGlvbkNvbnRleHQoaW5qZWN0b3IsICgpID0+IHtcblx0XHRjb25zdCBwb3MgPSBuZXcgVEhSRUUuVmVjdG9yMygpO1xuXHRcdGNvbnN0IGRpciA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XG5cblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3Qgc3BvdExpZ2h0ID0gc3BvdExpZ2h0UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cdFx0XHRpZiAoIXNwb3RMaWdodCkgcmV0dXJuO1xuXHRcdFx0aWYgKGlzU3BvdExpZ2h0KHNwb3RMaWdodCkpIHtcblx0XHRcdFx0c3BvdExpZ2h0LnNoYWRvdy5tYXBTaXplLnNldCh3aWR0aCgpLCBoZWlnaHQoKSk7XG5cdFx0XHRcdGlmIChzcG90TGlnaHQuc2hhZG93Lm1hcCkge1xuXHRcdFx0XHRcdHNwb3RMaWdodC5zaGFkb3cubWFwLnNldFNpemUod2lkdGgoKSwgaGVpZ2h0KCkpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHNwb3RMaWdodC5zaGFkb3cubmVlZHNVcGRhdGUgPSB0cnVlO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKCc8bmd0cy1zcG90LWxpZ2h0LXNoYWRvdz4gbXVzdCBiZSBhIGNoaWxkIG9mIGEgPG5ndHMtc3BvdC1saWdodD4nKTtcblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdGluamVjdEJlZm9yZVJlbmRlcigoKSA9PiB7XG5cdFx0XHRjb25zdCBzcG90TGlnaHQgPSBzcG90TGlnaHRSZWYubmF0aXZlRWxlbWVudDtcblx0XHRcdGNvbnN0IG1lc2ggPSBtZXNoUmVmLm5hdGl2ZUVsZW1lbnQ7XG5cblx0XHRcdGlmICghc3BvdExpZ2h0KSByZXR1cm47XG5cblx0XHRcdGNvbnN0IEEgPSBzcG90TGlnaHQucG9zaXRpb247XG5cdFx0XHRjb25zdCBCID0gc3BvdExpZ2h0LnRhcmdldC5wb3NpdGlvbjtcblxuXHRcdFx0ZGlyLmNvcHkoQikuc3ViKEEpO1xuXHRcdFx0Y29uc3QgbGVuID0gZGlyLmxlbmd0aCgpO1xuXHRcdFx0ZGlyLm5vcm1hbGl6ZSgpLm11bHRpcGx5U2NhbGFyKGxlbiAqIGRpc3RhbmNlKCkpO1xuXHRcdFx0cG9zLmNvcHkoQSkuYWRkKGRpcik7XG5cblx0XHRcdGlmIChtZXNoKSB7XG5cdFx0XHRcdG1lc2gucG9zaXRpb24uY29weShwb3MpO1xuXHRcdFx0XHRtZXNoLmxvb2tBdChzcG90TGlnaHQudGFyZ2V0LnBvc2l0aW9uKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fSk7XG59XG5cbmV4dGVuZCh7IE1lc2gsIFBsYW5lR2VvbWV0cnksIE1lc2hCYXNpY01hdGVyaWFsIH0pO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RzLXNwb3QtbGlnaHQtc2hhZG93LW1lc2gtbm8tc2hhZGVyJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LW1lc2ggW3JlZl09XCJtZXNoUmVmXCIgW3NjYWxlXT1cInNoYWRvd01lc2hJbnB1dC5zY2FsZSgpXCIgW2Nhc3RTaGFkb3ddPVwidHJ1ZVwiPlxuXHRcdFx0PG5ndC1wbGFuZS1nZW9tZXRyeSAvPlxuXHRcdFx0PG5ndC1tZXNoLWJhc2ljLW1hdGVyaWFsXG5cdFx0XHRcdFt0cmFuc3BhcmVudF09XCJ0cnVlXCJcblx0XHRcdFx0W3NpZGVdPVwiRG91YmxlU2lkZVwiXG5cdFx0XHRcdFthbHBoYVRlc3RdPVwic2hhZG93TWVzaElucHV0LmFscGhhVGVzdCgpXCJcblx0XHRcdFx0W2FscGhhTWFwXT1cInNoYWRvd01lc2hJbnB1dC5tYXAoKVwiXG5cdFx0XHRcdFtvcGFjaXR5XT1cImRlYnVnKCkgPyAxIDogMFwiXG5cdFx0XHQ+XG5cdFx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0XHQ8L25ndC1tZXNoLWJhc2ljLW1hdGVyaWFsPlxuXHRcdDwvbmd0LW1lc2g+XG5cdGAsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c1Nwb3RMaWdodFNoYWRvd01lc2hOb1NoYWRlciB7XG5cdHNoYWRvd01lc2hJbnB1dCA9IGluamVjdChOZ3RzU3BvdExpZ2h0U2hhZG93TWVzaElucHV0KTtcblxuXHRtZXNoUmVmID0gaW5qZWN0Tmd0UmVmPFRIUkVFLk1lc2g+KCk7XG5cdERvdWJsZVNpZGUgPSBUSFJFRS5Eb3VibGVTaWRlO1xuXG5cdHByaXZhdGUgc3BvdExpZ2h0QXBpID0gaW5qZWN0Tmd0c1Nwb3RMaWdodEFwaSgpO1xuXHRkZWJ1ZyA9IHRoaXMuc3BvdExpZ2h0QXBpLmRlYnVnO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHR0aGlzLnNoYWRvd01lc2hJbnB1dC5pbnB1dHMucGF0Y2goeyBkaXN0YW5jZTogMC40LCBhbHBoYVRlc3Q6IDAuNSwgd2lkdGg6IDUxMiwgaGVpZ2h0OiA1MTIsIHNjYWxlOiAxIH0pO1xuXHRcdH0pO1xuXG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdGNvbnN0IG1hcCA9IHRoaXMuc2hhZG93TWVzaElucHV0Lm1hcCgpO1xuXHRcdFx0aWYgKG1hcCkge1xuXHRcdFx0XHRtYXAud3JhcFMgPSBtYXAud3JhcFQgPSBUSFJFRS5SZXBlYXRXcmFwcGluZztcblx0XHRcdFx0Y2hlY2tVcGRhdGUobWFwKTtcblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdGluamVjdFNoYWRvd01lc2hDb21tb24oXG5cdFx0XHR0aGlzLnNwb3RMaWdodEFwaS5zcG90TGlnaHQsXG5cdFx0XHR0aGlzLm1lc2hSZWYsXG5cdFx0XHR0aGlzLnNoYWRvd01lc2hJbnB1dC53aWR0aCxcblx0XHRcdHRoaXMuc2hhZG93TWVzaElucHV0LmhlaWdodCxcblx0XHRcdHRoaXMuc2hhZG93TWVzaElucHV0LmRpc3RhbmNlLFxuXHRcdCk7XG5cdH1cbn1cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cy1zcG90LWxpZ2h0LXNoYWRvdy1tZXNoLXNoYWRlcicsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1tZXNoIFtyZWZdPVwibWVzaFJlZlwiIFtzY2FsZV09XCJzaGFkb3dNZXNoSW5wdXQuc2NhbGUoKVwiIFtjYXN0U2hhZG93XT1cInRydWVcIj5cblx0XHRcdDxuZ3QtcGxhbmUtZ2VvbWV0cnkgLz5cblx0XHRcdDxuZ3QtbWVzaC1iYXNpYy1tYXRlcmlhbFxuXHRcdFx0XHRbdHJhbnNwYXJlbnRdPVwidHJ1ZVwiXG5cdFx0XHRcdFtzaWRlXT1cIkRvdWJsZVNpZGVcIlxuXHRcdFx0XHRbYWxwaGFUZXN0XT1cInNoYWRvd01lc2hJbnB1dC5hbHBoYVRlc3QoKVwiXG5cdFx0XHRcdFthbHBoYU1hcF09XCJyZW5kZXJUYXJnZXQoKS50ZXh0dXJlXCJcblx0XHRcdFx0W29wYWNpdHldPVwiZGVidWcoKSA/IDEgOiAwXCJcblx0XHRcdD5cblx0XHRcdFx0PG5ndC12YWx1ZSBbcmF3VmFsdWVdPVwiUmVwZWF0V3JhcHBpbmdcIiBhdHRhY2g9XCJhbHBoYU1hcC53cmFwU1wiIC8+XG5cdFx0XHRcdDxuZ3QtdmFsdWUgW3Jhd1ZhbHVlXT1cIlJlcGVhdFdyYXBwaW5nXCIgYXR0YWNoPVwiYWxwaGFNYXAud3JhcFRcIiAvPlxuXHRcdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdFx0PC9uZ3QtbWVzaC1iYXNpYy1tYXRlcmlhbD5cblx0XHQ8L25ndC1tZXNoPlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNTcG90TGlnaHRTaGFkb3dNZXNoU2hhZGVyIHtcblx0c2hhZG93TWVzaElucHV0ID0gaW5qZWN0KE5ndHNTcG90TGlnaHRTaGFkb3dNZXNoSW5wdXQpO1xuXHRtZXNoUmVmID0gaW5qZWN0Tmd0UmVmPFRIUkVFLk1lc2g+KCk7XG5cblx0RG91YmxlU2lkZSA9IFRIUkVFLkRvdWJsZVNpZGU7XG5cdFJlcGVhdFdyYXBwaW5nID0gVEhSRUUuUmVwZWF0V3JhcHBpbmc7XG5cblx0cHJpdmF0ZSBzcG90TGlnaHRBcGkgPSBpbmplY3ROZ3RzU3BvdExpZ2h0QXBpKCk7XG5cdGRlYnVnID0gdGhpcy5zcG90TGlnaHRBcGkuZGVidWc7XG5cdHJlbmRlclRhcmdldCA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBbd2lkdGgsIGhlaWdodF0gPSBbdGhpcy5zaGFkb3dNZXNoSW5wdXQud2lkdGgoKSwgdGhpcy5zaGFkb3dNZXNoSW5wdXQuaGVpZ2h0KCldO1xuXG5cdFx0cmV0dXJuIG5ldyBUSFJFRS5XZWJHTFJlbmRlclRhcmdldCh3aWR0aCwgaGVpZ2h0LCB7XG5cdFx0XHRmb3JtYXQ6IFRIUkVFLlJHQkFGb3JtYXQsXG5cdFx0XHRlbmNvZGluZzogVEhSRUUuTGluZWFyRW5jb2RpbmcsXG5cdFx0XHRzdGVuY2lsQnVmZmVyOiBmYWxzZSxcblx0XHRcdC8vIGRlcHRoVGV4dHVyZTogbnVsbCFcblx0XHR9KTtcblx0fSk7XG5cblx0cHJpdmF0ZSB1bmlmb3JtcyA9IHtcblx0XHR1U2hhZG93TWFwOiB7IHZhbHVlOiB0aGlzLnNoYWRvd01lc2hJbnB1dC5tYXAoKSB9LFxuXHRcdHVUaW1lOiB7IHZhbHVlOiAwIH0sXG5cdH07XG5cblx0cHJpdmF0ZSBmc1F1YWQgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3Qgc2hhZGVyID0gdGhpcy5zaGFkb3dNZXNoSW5wdXQuc2hhZGVyKCk7XG5cdFx0aWYgKCFzaGFkZXIpIHJldHVybiBudWxsO1xuXHRcdHJldHVybiBuZXcgRnVsbFNjcmVlblF1YWQoXG5cdFx0XHRuZXcgVEhSRUUuU2hhZGVyTWF0ZXJpYWwoe1xuXHRcdFx0XHR1bmlmb3JtczogdGhpcy51bmlmb3Jtcyxcblx0XHRcdFx0dmVydGV4U2hhZGVyOiAvKiBnbHNsICovIGBcbiAgICAgICAgICB2YXJ5aW5nIHZlYzIgdlV2O1xuXG4gICAgICAgICAgdm9pZCBtYWluKCkge1xuICAgICAgICAgICAgdlV2ID0gdXY7XG4gICAgICAgICAgICBnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb25NYXRyaXggKiBtb2RlbFZpZXdNYXRyaXggKiB2ZWM0KHBvc2l0aW9uLCAxLjApO1xuICAgICAgICAgIH1cbiAgICAgICAgYCxcblx0XHRcdFx0ZnJhZ21lbnRTaGFkZXI6IHNoYWRlcixcblx0XHRcdH0pLFxuXHRcdCk7XG5cdH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHR0aGlzLnNoYWRvd01lc2hJbnB1dC5pbnB1dHMucGF0Y2goe1xuXHRcdFx0XHRkaXN0YW5jZTogMC40LFxuXHRcdFx0XHRhbHBoYVRlc3Q6IDAuNSxcblx0XHRcdFx0d2lkdGg6IDUxMixcblx0XHRcdFx0aGVpZ2h0OiA1MTIsXG5cdFx0XHRcdHNjYWxlOiA0LFxuXHRcdFx0XHRzaGFkZXI6IC8qIGdsc2wgKi8gYFxuICAgICAgICAgIHZhcnlpbmcgdmVjMiB2VXY7XG5cbiAgICAgICAgICB1bmlmb3JtIHNhbXBsZXIyRCB1U2hhZG93TWFwO1xuICAgICAgICAgIHVuaWZvcm0gZmxvYXQgdVRpbWU7XG5cbiAgICAgICAgICB2b2lkIG1haW4oKSB7XG4gICAgICAgICAgICB2ZWMzIGNvbG9yID0gdGV4dHVyZTJEKHVTaGFkb3dNYXAsIHZVdikueHl6O1xuICAgICAgICAgICAgZ2xfRnJhZ0NvbG9yID0gdmVjNChjb2xvciwgMS4pO1xuICAgICAgICAgIH1cbiAgICAgICAgYCxcblx0XHRcdH0pO1xuXHRcdH0pO1xuXG5cdFx0aW5qZWN0U2hhZG93TWVzaENvbW1vbihcblx0XHRcdHRoaXMuc3BvdExpZ2h0QXBpLnNwb3RMaWdodCxcblx0XHRcdHRoaXMubWVzaFJlZixcblx0XHRcdHRoaXMuc2hhZG93TWVzaElucHV0LndpZHRoLFxuXHRcdFx0dGhpcy5zaGFkb3dNZXNoSW5wdXQuaGVpZ2h0LFxuXHRcdFx0dGhpcy5zaGFkb3dNZXNoSW5wdXQuZGlzdGFuY2UsXG5cdFx0KTtcblxuXHRcdGluamVjdEJlZm9yZVJlbmRlcigoeyBkZWx0YSwgZ2wgfSkgPT4ge1xuXHRcdFx0dGhpcy51bmlmb3Jtcy51VGltZS52YWx1ZSArPSBkZWx0YTtcblx0XHRcdGNvbnN0IGZzUXVhZCA9IHRoaXMuZnNRdWFkKCk7XG5cdFx0XHRjb25zdCByZW5kZXJUYXJnZXQgPSB0aGlzLnJlbmRlclRhcmdldCgpO1xuXHRcdFx0aWYgKGZzUXVhZCAmJiByZW5kZXJUYXJnZXQpIHtcblx0XHRcdFx0Z2wuc2V0UmVuZGVyVGFyZ2V0KHJlbmRlclRhcmdldCk7XG5cdFx0XHRcdGZzUXVhZC5yZW5kZXIoZ2wpO1xuXHRcdFx0XHRnbC5zZXRSZW5kZXJUYXJnZXQobnVsbCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgbWFwID0gdGhpcy5zaGFkb3dNZXNoSW5wdXQubWFwKCk7XG5cdFx0XHRpZiAobWFwKSB7XG5cdFx0XHRcdHRoaXMudW5pZm9ybXMudVNoYWRvd01hcC52YWx1ZSA9IG1hcDtcblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBmc1F1YWQgPSB0aGlzLmZzUXVhZCgpO1xuXHRcdFx0b25DbGVhbnVwKCgpID0+IHtcblx0XHRcdFx0aWYgKGZzUXVhZCkge1xuXHRcdFx0XHRcdGZzUXVhZC5kaXNwb3NlKCk7XG5cdFx0XHRcdFx0ZnNRdWFkLm1hdGVyaWFsLmRpc3Bvc2UoKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fSk7XG5cblx0XHRlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuXHRcdFx0Y29uc3QgcmVuZGVyVGFyZ2V0ID0gdGhpcy5yZW5kZXJUYXJnZXQoKTtcblx0XHRcdG9uQ2xlYW51cCgoKSA9PiB7XG5cdFx0XHRcdHJlbmRlclRhcmdldC5kaXNwb3NlKCk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG5cdGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuXHRcdCduZ3RzLXNwb3QtbGlnaHQtc2hhZG93JzogTmd0c1Nwb3RMaWdodFNoYWRvd01lc2hJbnB1dFN0YXRlO1xuXHR9XG59XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHMtc3BvdC1saWdodC1zaGFkb3cnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3RzLXNwb3QtbGlnaHQtc2hhZG93LW1lc2gtc2hhZGVyICpuZ0lmPVwic2hhZGVyKCk7IGVsc2Ugbm9TaGFkZXJcIiAvPlxuXHRcdDxuZy10ZW1wbGF0ZSAjbm9TaGFkZXI+XG5cdFx0XHQ8bmd0cy1zcG90LWxpZ2h0LXNoYWRvdy1tZXNoLW5vLXNoYWRlciAvPlxuXHRcdDwvbmctdGVtcGxhdGU+XG5cdGAsXG5cdGltcG9ydHM6IFtOZ3RzU3BvdExpZ2h0U2hhZG93TWVzaFNoYWRlciwgTmd0c1Nwb3RMaWdodFNoYWRvd01lc2hOb1NoYWRlciwgTmdJZl0sXG5cdHByb3ZpZGVyczogW3sgcHJvdmlkZTogTmd0c1Nwb3RMaWdodFNoYWRvd01lc2hJbnB1dCwgdXNlRXhpc3Rpbmc6IE5ndHNTcG90TGlnaHRTaGFkb3cgfV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNTcG90TGlnaHRTaGFkb3cgZXh0ZW5kcyBOZ3RzU3BvdExpZ2h0U2hhZG93TWVzaElucHV0IHt9XG4iXX0=
@@ -1,75 +1,84 @@
1
1
  import { Directive, Input } from '@angular/core';
2
- import { NgtSignalStore } from 'angular-three';
2
+ import { signalStore } from 'angular-three';
3
3
  import * as i0 from "@angular/core";
4
- class NgtsSpotLightInput extends NgtSignalStore {
4
+ export class NgtsSpotLightInput {
5
5
  constructor() {
6
- super(...arguments);
7
- this.lightDebug = this.select('debug');
8
- this.lightColor = this.select('color');
9
- this.lightOpacity = this.select('opacity');
10
- this.lightRadiusBottom = this.select('radiusBottom');
11
- this.lightRadiusTop = this.select('radiusTop');
12
- this.lightAnglePower = this.select('anglePower');
13
- this.lightAttenuation = this.select('attenuation');
14
- this.lightDistance = this.select('distance');
15
- this.lightAngle = this.select('angle');
16
- this.lightDepthBuffer = this.select('depthBuffer');
6
+ this.inputs = signalStore({});
7
+ this.debug = this.inputs.select('debug');
8
+ this.color = this.inputs.select('color');
9
+ this.opacity = this.inputs.select('opacity');
10
+ this.radiusBottom = this.inputs.select('radiusBottom');
11
+ this.radiusTop = this.inputs.select('radiusTop');
12
+ this.anglePower = this.inputs.select('anglePower');
13
+ this.attenuation = this.inputs.select('attenuation');
14
+ this.distance = this.inputs.select('distance');
15
+ this.angle = this.inputs.select('angle');
16
+ this.depthBuffer = this.inputs.select('depthBuffer');
17
17
  }
18
- set depthBuffer(depthBuffer) {
19
- this.set({ depthBuffer });
18
+ set _depthBuffer(depthBuffer) {
19
+ this.inputs.set({ depthBuffer });
20
20
  }
21
- set angle(angle) {
22
- this.set({ angle });
21
+ set _angle(angle) {
22
+ this.inputs.set({ angle });
23
23
  }
24
- set distance(distance) {
25
- this.set({ distance });
24
+ set _distance(distance) {
25
+ this.inputs.set({ distance });
26
26
  }
27
- set attenuation(attenuation) {
28
- this.set({ attenuation });
27
+ set _attenuation(attenuation) {
28
+ this.inputs.set({ attenuation });
29
29
  }
30
- set anglePower(anglePower) {
31
- this.set({ anglePower });
30
+ set _anglePower(anglePower) {
31
+ this.inputs.set({ anglePower });
32
32
  }
33
- set radiusTop(radiusTop) {
34
- this.set({ radiusTop });
33
+ set _radiusTop(radiusTop) {
34
+ this.inputs.set({ radiusTop });
35
35
  }
36
- set radiusBottom(radiusBottom) {
37
- this.set({ radiusBottom });
36
+ set _radiusBottom(radiusBottom) {
37
+ this.inputs.set({ radiusBottom });
38
38
  }
39
- set opacity(opacity) {
40
- this.set({ opacity });
39
+ set _opacity(opacity) {
40
+ this.inputs.set({ opacity });
41
41
  }
42
- set color(color) {
43
- this.set({ color });
42
+ set _color(color) {
43
+ this.inputs.set({ color });
44
44
  }
45
- set debug(debug) {
46
- this.set({ debug });
45
+ set _debug(debug) {
46
+ this.inputs.set({ debug });
47
47
  }
48
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsSpotLightInput, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
49
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: NgtsSpotLightInput, inputs: { depthBuffer: "depthBuffer", angle: "angle", distance: "distance", attenuation: "attenuation", anglePower: "anglePower", radiusTop: "radiusTop", radiusBottom: "radiusBottom", opacity: "opacity", color: "color", debug: "debug" }, usesInheritance: true, ngImport: i0 }); }
48
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtsSpotLightInput, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
49
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.3", type: NgtsSpotLightInput, inputs: { _depthBuffer: ["depthBuffer", "_depthBuffer"], _angle: ["angle", "_angle"], _distance: ["distance", "_distance"], _attenuation: ["attenuation", "_attenuation"], _anglePower: ["anglePower", "_anglePower"], _radiusTop: ["radiusTop", "_radiusTop"], _radiusBottom: ["radiusBottom", "_radiusBottom"], _opacity: ["opacity", "_opacity"], _color: ["color", "_color"], _debug: ["debug", "_debug"] }, ngImport: i0 }); }
50
50
  }
51
- export { NgtsSpotLightInput };
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsSpotLightInput, decorators: [{
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtsSpotLightInput, decorators: [{
53
52
  type: Directive
54
- }], propDecorators: { depthBuffer: [{
55
- type: Input
56
- }], angle: [{
57
- type: Input
58
- }], distance: [{
59
- type: Input
60
- }], attenuation: [{
61
- type: Input
62
- }], anglePower: [{
63
- type: Input
64
- }], radiusTop: [{
65
- type: Input
66
- }], radiusBottom: [{
67
- type: Input
68
- }], opacity: [{
69
- type: Input
70
- }], color: [{
71
- type: Input
72
- }], debug: [{
73
- type: Input
53
+ }], propDecorators: { _depthBuffer: [{
54
+ type: Input,
55
+ args: [{ alias: 'depthBuffer' }]
56
+ }], _angle: [{
57
+ type: Input,
58
+ args: [{ alias: 'angle' }]
59
+ }], _distance: [{
60
+ type: Input,
61
+ args: [{ alias: 'distance' }]
62
+ }], _attenuation: [{
63
+ type: Input,
64
+ args: [{ alias: 'attenuation' }]
65
+ }], _anglePower: [{
66
+ type: Input,
67
+ args: [{ alias: 'anglePower' }]
68
+ }], _radiusTop: [{
69
+ type: Input,
70
+ args: [{ alias: 'radiusTop' }]
71
+ }], _radiusBottom: [{
72
+ type: Input,
73
+ args: [{ alias: 'radiusBottom' }]
74
+ }], _opacity: [{
75
+ type: Input,
76
+ args: [{ alias: 'opacity' }]
77
+ }], _color: [{
78
+ type: Input,
79
+ args: [{ alias: 'color' }]
80
+ }], _debug: [{
81
+ type: Input,
82
+ args: [{ alias: 'debug' }]
74
83
  }] } });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BvdC1saWdodC1pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc29iYS9zdGFnaW5nL3NyYy9zcG90LWxpZ2h0L3Nwb3QtbGlnaHQtaW5wdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFlL0MsTUFDc0Isa0JBQW1CLFNBQVEsY0FBdUM7SUFEeEY7O1FBMENhLGVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xDLGVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xDLGlCQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN0QyxzQkFBaUIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2hELG1CQUFjLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMxQyxvQkFBZSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDNUMscUJBQWdCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM5QyxrQkFBYSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDeEMsZUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEMscUJBQWdCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztLQUMxRDtJQWxERyxJQUFhLFdBQVcsQ0FBQyxXQUErQjtRQUNwRCxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBYSxLQUFLLENBQUMsS0FBYTtRQUM1QixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBYSxRQUFRLENBQUMsUUFBZ0I7UUFDbEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQWEsV0FBVyxDQUFDLFdBQW1CO1FBQ3hDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFhLFVBQVUsQ0FBQyxVQUFrQjtRQUN0QyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBYSxTQUFTLENBQUMsU0FBaUI7UUFDcEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQWEsWUFBWSxDQUFDLFlBQW9CO1FBQzFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFhLE9BQU8sQ0FBQyxPQUFlO1FBQ2hDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFhLEtBQUssQ0FBQyxLQUFzQjtRQUNyQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBYSxLQUFLLENBQUMsS0FBYztRQUM3QixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN4QixDQUFDOzhHQXZDaUIsa0JBQWtCO2tHQUFsQixrQkFBa0I7O1NBQWxCLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQUR2QyxTQUFTOzhCQUVPLFdBQVc7c0JBQXZCLEtBQUs7Z0JBSU8sS0FBSztzQkFBakIsS0FBSztnQkFJTyxRQUFRO3NCQUFwQixLQUFLO2dCQUlPLFdBQVc7c0JBQXZCLEtBQUs7Z0JBSU8sVUFBVTtzQkFBdEIsS0FBSztnQkFJTyxTQUFTO3NCQUFyQixLQUFLO2dCQUlPLFlBQVk7c0JBQXhCLEtBQUs7Z0JBSU8sT0FBTztzQkFBbkIsS0FBSztnQkFJTyxLQUFLO3NCQUFqQixLQUFLO2dCQUlPLEtBQUs7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RTaWduYWxTdG9yZSB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5ndHNTcG90TGlnaHRJbnB1dFN0YXRlIHtcbiAgICBkZXB0aEJ1ZmZlcj86IFRIUkVFLkRlcHRoVGV4dHVyZTtcbiAgICBhbmdsZTogbnVtYmVyO1xuICAgIGRpc3RhbmNlOiBudW1iZXI7XG4gICAgYXR0ZW51YXRpb246IG51bWJlcjtcbiAgICBhbmdsZVBvd2VyOiBudW1iZXI7XG4gICAgcmFkaXVzVG9wOiBudW1iZXI7XG4gICAgcmFkaXVzQm90dG9tOiBudW1iZXI7XG4gICAgb3BhY2l0eTogbnVtYmVyO1xuICAgIGNvbG9yOiBzdHJpbmcgfCBudW1iZXI7XG4gICAgZGVidWc6IGJvb2xlYW47XG59XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE5ndHNTcG90TGlnaHRJbnB1dCBleHRlbmRzIE5ndFNpZ25hbFN0b3JlPE5ndHNTcG90TGlnaHRJbnB1dFN0YXRlPiB7XG4gICAgQElucHV0KCkgc2V0IGRlcHRoQnVmZmVyKGRlcHRoQnVmZmVyOiBUSFJFRS5EZXB0aFRleHR1cmUpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBkZXB0aEJ1ZmZlciB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgYW5nbGUoYW5nbGU6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGFuZ2xlIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBkaXN0YW5jZShkaXN0YW5jZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZGlzdGFuY2UgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGF0dGVudWF0aW9uKGF0dGVudWF0aW9uOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBhdHRlbnVhdGlvbiB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgYW5nbGVQb3dlcihhbmdsZVBvd2VyOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBhbmdsZVBvd2VyIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCByYWRpdXNUb3AocmFkaXVzVG9wOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyByYWRpdXNUb3AgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHJhZGl1c0JvdHRvbShyYWRpdXNCb3R0b206IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IHJhZGl1c0JvdHRvbSB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgb3BhY2l0eShvcGFjaXR5OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBvcGFjaXR5IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBjb2xvcihjb2xvcjogc3RyaW5nIHwgbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgY29sb3IgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGRlYnVnKGRlYnVnOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZGVidWcgfSk7XG4gICAgfVxuXG4gICAgcmVhZG9ubHkgbGlnaHREZWJ1ZyA9IHRoaXMuc2VsZWN0KCdkZWJ1ZycpO1xuICAgIHJlYWRvbmx5IGxpZ2h0Q29sb3IgPSB0aGlzLnNlbGVjdCgnY29sb3InKTtcbiAgICByZWFkb25seSBsaWdodE9wYWNpdHkgPSB0aGlzLnNlbGVjdCgnb3BhY2l0eScpO1xuICAgIHJlYWRvbmx5IGxpZ2h0UmFkaXVzQm90dG9tID0gdGhpcy5zZWxlY3QoJ3JhZGl1c0JvdHRvbScpO1xuICAgIHJlYWRvbmx5IGxpZ2h0UmFkaXVzVG9wID0gdGhpcy5zZWxlY3QoJ3JhZGl1c1RvcCcpO1xuICAgIHJlYWRvbmx5IGxpZ2h0QW5nbGVQb3dlciA9IHRoaXMuc2VsZWN0KCdhbmdsZVBvd2VyJyk7XG4gICAgcmVhZG9ubHkgbGlnaHRBdHRlbnVhdGlvbiA9IHRoaXMuc2VsZWN0KCdhdHRlbnVhdGlvbicpO1xuICAgIHJlYWRvbmx5IGxpZ2h0RGlzdGFuY2UgPSB0aGlzLnNlbGVjdCgnZGlzdGFuY2UnKTtcbiAgICByZWFkb25seSBsaWdodEFuZ2xlID0gdGhpcy5zZWxlY3QoJ2FuZ2xlJyk7XG4gICAgcmVhZG9ubHkgbGlnaHREZXB0aEJ1ZmZlciA9IHRoaXMuc2VsZWN0KCdkZXB0aEJ1ZmZlcicpO1xufVxuIl19
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BvdC1saWdodC1pbnB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc29iYS9zdGFnaW5nL3NyYy9zcG90LWxpZ2h0L3Nwb3QtbGlnaHQtaW5wdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFnQjVDLE1BQU0sT0FBZ0Isa0JBQWtCO0lBRHhDO1FBRUMsV0FBTSxHQUFHLFdBQVcsQ0FBMEIsRUFBRSxDQUFDLENBQUM7UUEwQ2xELFVBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwQyxVQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEMsWUFBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3hDLGlCQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbEQsY0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzVDLGVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM5QyxnQkFBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2hELGFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMxQyxVQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEMsZ0JBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztLQUNoRDtJQWxEQSxJQUFxQyxZQUFZLENBQUMsV0FBK0I7UUFDaEYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUErQixNQUFNLENBQUMsS0FBYTtRQUNsRCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQWtDLFNBQVMsQ0FBQyxRQUFnQjtRQUMzRCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQXFDLFlBQVksQ0FBQyxXQUFtQjtRQUNwRSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQW9DLFdBQVcsQ0FBQyxVQUFrQjtRQUNqRSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELElBQW1DLFVBQVUsQ0FBQyxTQUFpQjtRQUM5RCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQXNDLGFBQWEsQ0FBQyxZQUFvQjtRQUN2RSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQWlDLFFBQVEsQ0FBQyxPQUFlO1FBQ3hELElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBK0IsTUFBTSxDQUFDLEtBQXNCO1FBQzNELElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBK0IsTUFBTSxDQUFDLEtBQWM7UUFDbkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzVCLENBQUM7OEdBekNvQixrQkFBa0I7a0dBQWxCLGtCQUFrQjs7MkZBQWxCLGtCQUFrQjtrQkFEdkMsU0FBUzs4QkFJNEIsWUFBWTtzQkFBaEQsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUU7Z0JBSUEsTUFBTTtzQkFBcEMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7Z0JBSVMsU0FBUztzQkFBMUMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUU7Z0JBSVMsWUFBWTtzQkFBaEQsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUU7Z0JBSUssV0FBVztzQkFBOUMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUU7Z0JBSUssVUFBVTtzQkFBNUMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUU7Z0JBSVMsYUFBYTtzQkFBbEQsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUU7Z0JBSUMsUUFBUTtzQkFBeEMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUU7Z0JBSUksTUFBTTtzQkFBcEMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7Z0JBSU0sTUFBTTtzQkFBcEMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBzaWduYWxTdG9yZSB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuXG5leHBvcnQgdHlwZSBOZ3RzU3BvdExpZ2h0SW5wdXRTdGF0ZSA9IHtcblx0ZGVwdGhCdWZmZXI/OiBUSFJFRS5EZXB0aFRleHR1cmU7XG5cdGFuZ2xlOiBudW1iZXI7XG5cdGRpc3RhbmNlOiBudW1iZXI7XG5cdGF0dGVudWF0aW9uOiBudW1iZXI7XG5cdGFuZ2xlUG93ZXI6IG51bWJlcjtcblx0cmFkaXVzVG9wOiBudW1iZXI7XG5cdHJhZGl1c0JvdHRvbTogbnVtYmVyO1xuXHRvcGFjaXR5OiBudW1iZXI7XG5cdGNvbG9yOiBzdHJpbmcgfCBudW1iZXI7XG5cdGRlYnVnOiBib29sZWFuO1xufTtcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTmd0c1Nwb3RMaWdodElucHV0IHtcblx0aW5wdXRzID0gc2lnbmFsU3RvcmU8Tmd0c1Nwb3RMaWdodElucHV0U3RhdGU+KHt9KTtcblxuXHRASW5wdXQoeyBhbGlhczogJ2RlcHRoQnVmZmVyJyB9KSBzZXQgX2RlcHRoQnVmZmVyKGRlcHRoQnVmZmVyOiBUSFJFRS5EZXB0aFRleHR1cmUpIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBkZXB0aEJ1ZmZlciB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnYW5nbGUnIH0pIHNldCBfYW5nbGUoYW5nbGU6IG51bWJlcikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IGFuZ2xlIH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICdkaXN0YW5jZScgfSkgc2V0IF9kaXN0YW5jZShkaXN0YW5jZTogbnVtYmVyKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgZGlzdGFuY2UgfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ2F0dGVudWF0aW9uJyB9KSBzZXQgX2F0dGVudWF0aW9uKGF0dGVudWF0aW9uOiBudW1iZXIpIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBhdHRlbnVhdGlvbiB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnYW5nbGVQb3dlcicgfSkgc2V0IF9hbmdsZVBvd2VyKGFuZ2xlUG93ZXI6IG51bWJlcikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IGFuZ2xlUG93ZXIgfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ3JhZGl1c1RvcCcgfSkgc2V0IF9yYWRpdXNUb3AocmFkaXVzVG9wOiBudW1iZXIpIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyByYWRpdXNUb3AgfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ3JhZGl1c0JvdHRvbScgfSkgc2V0IF9yYWRpdXNCb3R0b20ocmFkaXVzQm90dG9tOiBudW1iZXIpIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyByYWRpdXNCb3R0b20gfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ29wYWNpdHknIH0pIHNldCBfb3BhY2l0eShvcGFjaXR5OiBudW1iZXIpIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBvcGFjaXR5IH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICdjb2xvcicgfSkgc2V0IF9jb2xvcihjb2xvcjogc3RyaW5nIHwgbnVtYmVyKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgY29sb3IgfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ2RlYnVnJyB9KSBzZXQgX2RlYnVnKGRlYnVnOiBib29sZWFuKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgZGVidWcgfSk7XG5cdH1cblxuXHRkZWJ1ZyA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnZGVidWcnKTtcblx0Y29sb3IgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ2NvbG9yJyk7XG5cdG9wYWNpdHkgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ29wYWNpdHknKTtcblx0cmFkaXVzQm90dG9tID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdyYWRpdXNCb3R0b20nKTtcblx0cmFkaXVzVG9wID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdyYWRpdXNUb3AnKTtcblx0YW5nbGVQb3dlciA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnYW5nbGVQb3dlcicpO1xuXHRhdHRlbnVhdGlvbiA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnYXR0ZW51YXRpb24nKTtcblx0ZGlzdGFuY2UgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ2Rpc3RhbmNlJyk7XG5cdGFuZ2xlID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdhbmdsZScpO1xuXHRkZXB0aEJ1ZmZlciA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnZGVwdGhCdWZmZXInKTtcbn1cbiJdfQ==