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
@@ -1,53 +1,51 @@
1
- import { Component, computed, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
2
- import { toObservable, toSignal } from '@angular/core/rxjs-interop';
3
- import { extend, injectNgtRef, NgtArgs, NgtSignalStore } from 'angular-three';
4
- import { map, of, switchMap } from 'rxjs';
1
+ import { ChangeDetectorRef, Component, computed, CUSTOM_ELEMENTS_SCHEMA, effect, inject, Input, signal, } from '@angular/core';
2
+ import { extend, injectNgtRef, NgtArgs, signalStore } from 'angular-three';
5
3
  import { Mesh } from 'three';
6
- import { FontLoader, TextGeometry } from 'three-stdlib';
4
+ import { Font, FontLoader, TextGeometry } from 'three-stdlib';
7
5
  import * as i0 from "@angular/core";
8
6
  extend({ Mesh, TextGeometry });
9
- class NgtsText3D extends NgtSignalStore {
10
- set font(font) {
11
- this.set({ font });
7
+ export class NgtsText3D {
8
+ set _font(font) {
9
+ this.inputs.set({ font });
12
10
  }
13
- set text(text) {
14
- this.set({ text });
11
+ set _text(text) {
12
+ this.inputs.set({ text });
15
13
  }
16
- set bevelEnabled(bevelEnabled) {
17
- this.set({ bevelEnabled });
14
+ set _bevelEnabled(bevelEnabled) {
15
+ this.inputs.set({ bevelEnabled });
18
16
  }
19
- set bevelOffset(bevelOffset) {
20
- this.set({ bevelOffset });
17
+ set _bevelOffset(bevelOffset) {
18
+ this.inputs.set({ bevelOffset });
21
19
  }
22
- set bevelSize(bevelSize) {
23
- this.set({ bevelSize });
20
+ set _bevelSize(bevelSize) {
21
+ this.inputs.set({ bevelSize });
24
22
  }
25
- set bevelThickness(bevelThickness) {
26
- this.set({ bevelThickness });
23
+ set _bevelThickness(bevelThickness) {
24
+ this.inputs.set({ bevelThickness });
27
25
  }
28
- set curveSegments(curveSegments) {
29
- this.set({ curveSegments });
26
+ set _curveSegments(curveSegments) {
27
+ this.inputs.set({ curveSegments });
30
28
  }
31
- set bevelSegments(bevelSegments) {
32
- this.set({ bevelSegments });
29
+ set _bevelSegments(bevelSegments) {
30
+ this.inputs.set({ bevelSegments });
33
31
  }
34
- set height(height) {
35
- this.set({ height });
32
+ set _height(height) {
33
+ this.inputs.set({ height });
36
34
  }
37
- set size(size) {
38
- this.set({ size });
35
+ set _size(size) {
36
+ this.inputs.set({ size });
39
37
  }
40
- set lineHeight(lineHeight) {
41
- this.set({ lineHeight });
38
+ set _lineHeight(lineHeight) {
39
+ this.inputs.set({ lineHeight });
42
40
  }
43
- set letterSpacing(letterSpacing) {
44
- this.set({ letterSpacing });
41
+ set _letterSpacing(letterSpacing) {
42
+ this.inputs.set({ letterSpacing });
45
43
  }
46
- set smooth(smooth) {
47
- this.set({ smooth });
44
+ set _smooth(smooth) {
45
+ this.inputs.set({ smooth });
48
46
  }
49
47
  constructor() {
50
- super({
48
+ this.inputs = signalStore({
51
49
  lineHeight: 1,
52
50
  letterSpacing: 0,
53
51
  size: 1,
@@ -60,108 +58,115 @@ class NgtsText3D extends NgtSignalStore {
60
58
  curveSegments: 8,
61
59
  });
62
60
  this.textRef = injectNgtRef();
63
- this.#fontData = toSignal(toObservable(this.select('font')).pipe(switchMap((font) => {
64
- if (typeof font === 'string')
65
- return fetch(font).then((res) => res.json());
66
- return of(font);
67
- }), map((fontData) => new FontLoader().parse(fontData))));
68
- this.#text = this.select('text');
69
- this.#size = this.select('size');
70
- this.#height = this.select('height');
71
- this.#bevelThickness = this.select('bevelThickness');
72
- this.#bevelSize = this.select('bevelSize');
73
- this.#bevelEnabled = this.select('bevelEnabled');
74
- this.#bevelSegments = this.select('bevelSegments');
75
- this.#bevelOffset = this.select('bevelOffset');
76
- this.#curveSegments = this.select('curveSegments');
77
- this.#letterSpacing = this.select('letterSpacing');
78
- this.#lineHeight = this.select('lineHeight');
61
+ this.cdr = inject(ChangeDetectorRef);
62
+ this.fontData = signal(null);
63
+ this.font = this.inputs.select('font');
64
+ this.text = this.inputs.select('text');
65
+ this.size = this.inputs.select('size');
66
+ this.height = this.inputs.select('height');
67
+ this.bevelThickness = this.inputs.select('bevelThickness');
68
+ this.bevelSize = this.inputs.select('bevelSize');
69
+ this.bevelEnabled = this.inputs.select('bevelEnabled');
70
+ this.bevelSegments = this.inputs.select('bevelSegments');
71
+ this.bevelOffset = this.inputs.select('bevelOffset');
72
+ this.curveSegments = this.inputs.select('curveSegments');
73
+ this.letterSpacing = this.inputs.select('letterSpacing');
74
+ this.lineHeight = this.inputs.select('lineHeight');
79
75
  this.geometryArgs = computed(() => {
80
- const fontData = this.#fontData();
81
- if (!fontData)
76
+ const fontData = this.fontData() || this.font();
77
+ if (!fontData || !fontData.data)
82
78
  return null;
83
79
  return [
84
- this.#text(),
80
+ this.text(),
85
81
  {
86
82
  font: fontData,
87
- size: this.#size(),
88
- height: this.#height(),
89
- bevelThickness: this.#bevelThickness(),
90
- bevelSize: this.#bevelSize(),
91
- bevelSegments: this.#bevelSegments(),
92
- bevelEnabled: this.#bevelEnabled(),
93
- bevelOffset: this.#bevelOffset(),
94
- curveSegments: this.#curveSegments(),
95
- letterSpacing: this.#letterSpacing(),
96
- lineHeight: this.#lineHeight(),
83
+ size: this.size(),
84
+ height: this.height(),
85
+ bevelThickness: this.bevelThickness(),
86
+ bevelSize: this.bevelSize(),
87
+ bevelSegments: this.bevelSegments(),
88
+ bevelEnabled: this.bevelEnabled(),
89
+ bevelOffset: this.bevelOffset(),
90
+ curveSegments: this.curveSegments(),
91
+ letterSpacing: this.letterSpacing(),
92
+ lineHeight: this.lineHeight(),
97
93
  },
98
94
  ];
99
95
  });
96
+ effect(() => {
97
+ const font = this.font();
98
+ if (typeof font === 'string') {
99
+ fetch(font)
100
+ .then((res) => res.json())
101
+ .then((fontData) => {
102
+ this.fontData.set(new FontLoader().parse(fontData));
103
+ this.cdr.detectChanges();
104
+ });
105
+ }
106
+ });
100
107
  }
101
- #fontData;
102
- #text;
103
- #size;
104
- #height;
105
- #bevelThickness;
106
- #bevelSize;
107
- #bevelEnabled;
108
- #bevelSegments;
109
- #bevelOffset;
110
- #curveSegments;
111
- #letterSpacing;
112
- #lineHeight;
113
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsText3D, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
114
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: NgtsText3D, isStandalone: true, selector: "ngts-text-3d", inputs: { textRef: "textRef", font: "font", text: "text", bevelEnabled: "bevelEnabled", bevelOffset: "bevelOffset", bevelSize: "bevelSize", bevelThickness: "bevelThickness", curveSegments: "curveSegments", bevelSegments: "bevelSegments", height: "height", size: "size", lineHeight: "lineHeight", letterSpacing: "letterSpacing", smooth: "smooth" }, usesInheritance: true, ngImport: i0, template: `
115
- <ngt-mesh ngtCompound [ref]="textRef">
116
- <ngt-text-geometry *args="geometryArgs()" />
117
- <ng-content />
118
- </ngt-mesh>
119
- `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }] }); }
108
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtsText3D, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
109
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", type: NgtsText3D, isStandalone: true, selector: "ngts-text-3d", inputs: { textRef: "textRef", _font: ["font", "_font"], _text: ["text", "_text"], _bevelEnabled: ["bevelEnabled", "_bevelEnabled"], _bevelOffset: ["bevelOffset", "_bevelOffset"], _bevelSize: ["bevelSize", "_bevelSize"], _bevelThickness: ["bevelThickness", "_bevelThickness"], _curveSegments: ["curveSegments", "_curveSegments"], _bevelSegments: ["bevelSegments", "_bevelSegments"], _height: ["height", "_height"], _size: ["size", "_size"], _lineHeight: ["lineHeight", "_lineHeight"], _letterSpacing: ["letterSpacing", "_letterSpacing"], _smooth: ["smooth", "_smooth"] }, ngImport: i0, template: `
110
+ <ngt-mesh ngtCompound [ref]="textRef">
111
+ <ngt-text-geometry *args="geometryArgs()" />
112
+ <ng-content />
113
+ </ngt-mesh>
114
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }] }); }
120
115
  }
121
- export { NgtsText3D };
122
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsText3D, decorators: [{
116
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtsText3D, decorators: [{
123
117
  type: Component,
124
118
  args: [{
125
119
  selector: 'ngts-text-3d',
126
120
  standalone: true,
127
121
  template: `
128
- <ngt-mesh ngtCompound [ref]="textRef">
129
- <ngt-text-geometry *args="geometryArgs()" />
130
- <ng-content />
131
- </ngt-mesh>
132
- `,
122
+ <ngt-mesh ngtCompound [ref]="textRef">
123
+ <ngt-text-geometry *args="geometryArgs()" />
124
+ <ng-content />
125
+ </ngt-mesh>
126
+ `,
133
127
  imports: [NgtArgs],
134
128
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
135
129
  }]
136
130
  }], ctorParameters: function () { return []; }, propDecorators: { textRef: [{
137
131
  type: Input
138
- }], font: [{
132
+ }], _font: [{
139
133
  type: Input,
140
- args: [{ required: true }]
141
- }], text: [{
134
+ args: [{ required: true, alias: 'font' }]
135
+ }], _text: [{
142
136
  type: Input,
143
- args: [{ required: true }]
144
- }], bevelEnabled: [{
145
- type: Input
146
- }], bevelOffset: [{
147
- type: Input
148
- }], bevelSize: [{
149
- type: Input
150
- }], bevelThickness: [{
151
- type: Input
152
- }], curveSegments: [{
153
- type: Input
154
- }], bevelSegments: [{
155
- type: Input
156
- }], height: [{
157
- type: Input
158
- }], size: [{
159
- type: Input
160
- }], lineHeight: [{
161
- type: Input
162
- }], letterSpacing: [{
163
- type: Input
164
- }], smooth: [{
165
- type: Input
137
+ args: [{ required: true, alias: 'text' }]
138
+ }], _bevelEnabled: [{
139
+ type: Input,
140
+ args: [{ alias: 'bevelEnabled' }]
141
+ }], _bevelOffset: [{
142
+ type: Input,
143
+ args: [{ alias: 'bevelOffset' }]
144
+ }], _bevelSize: [{
145
+ type: Input,
146
+ args: [{ alias: 'bevelSize' }]
147
+ }], _bevelThickness: [{
148
+ type: Input,
149
+ args: [{ alias: 'bevelThickness' }]
150
+ }], _curveSegments: [{
151
+ type: Input,
152
+ args: [{ alias: 'curveSegments' }]
153
+ }], _bevelSegments: [{
154
+ type: Input,
155
+ args: [{ alias: 'bevelSegments' }]
156
+ }], _height: [{
157
+ type: Input,
158
+ args: [{ alias: 'height' }]
159
+ }], _size: [{
160
+ type: Input,
161
+ args: [{ alias: 'size' }]
162
+ }], _lineHeight: [{
163
+ type: Input,
164
+ args: [{ alias: 'lineHeight' }]
165
+ }], _letterSpacing: [{
166
+ type: Input,
167
+ args: [{ alias: 'letterSpacing' }]
168
+ }], _smooth: [{
169
+ type: Input,
170
+ args: [{ alias: 'smooth' }]
166
171
  }] } });
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC0zZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc29iYS9hYnN0cmFjdGlvbnMvc3JjL3RleHQtM2QvdGV4dC0zZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxzQkFBc0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUM3QixPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFZeEQsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7QUF3Qi9CLE1BWWEsVUFBVyxTQUFRLGNBQStCO0lBRzNELElBQStCLElBQUksQ0FBQyxJQUF1QjtRQUN2RCxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBK0IsSUFBSSxDQUFDLElBQVk7UUFDNUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQWEsWUFBWSxDQUFDLFlBQXFCO1FBQzNDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFhLFdBQVcsQ0FBQyxXQUFtQjtRQUN4QyxJQUFJLENBQUMsR0FBRyxDQUFDLEVB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Q0FBdUI7SUFDNUIsS0FBSyxDQUF1QjtJQUM1QixPQUFPLENBQXlCO0lBQ2hDLGVBQWUsQ0FBaUM7SUFDaEQsVUFBVSxDQUE0QjtJQUN0QyxhQUFhLENBQStCO0lBQzVDLGNBQWMsQ0FBZ0M7SUFDOUMsWUFBWSxDQUE4QjtJQUMxQyxjQUFjLENBQWdDO0lBQzlDLGNBQWMsQ0FBZ0M7SUFDOUMsV0FBVyxDQUE2Qjs4R0ExRnhDLFVBQVU7a0dBQVYsVUFBVSwyYkFUVDs7Ozs7S0FLVCw0REFDUyxPQUFPOztTQUdSLFVBQVU7MkZBQVYsVUFBVTtrQkFadEIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7Ozs7S0FLVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ2xCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNwQzswRUFFWSxPQUFPO3NCQUFmLEtBQUs7Z0JBRXlCLElBQUk7c0JBQWxDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUlNLElBQUk7c0JBQWxDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUlaLFlBQVk7c0JBQXhCLEtBQUs7Z0JBSU8sV0FBVztzQkFBdkIsS0FBSztnQkFJTyxTQUFTO3NCQUFyQixLQUFLO2dCQUlPLGNBQWM7c0JBQTFCLEtBQUs7Z0JBSU8sYUFBYTtzQkFBekIsS0FBSztnQkFJTyxhQUFhO3NCQUF6QixLQUFLO2dCQUlPLE1BQU07c0JBQWxCLEtBQUs7Z0JBSU8sSUFBSTtzQkFBaEIsS0FBSztnQkFJTyxVQUFVO3NCQUF0QixLQUFLO2dCQUlPLGFBQWE7c0JBQXpCLEtBQUs7Z0JBSU8sTUFBTTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0b09ic2VydmFibGUsIHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgZXh0ZW5kLCBpbmplY3ROZ3RSZWYsIE5ndEFyZ3MsIE5ndFNpZ25hbFN0b3JlLCB0eXBlIE5ndE1lc2ggfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IG1hcCwgb2YsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTWVzaCB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IEZvbnRMb2FkZXIsIFRleHRHZW9tZXRyeSB9IGZyb20gJ3RocmVlLXN0ZGxpYic7XG5cbmRlY2xhcmUgdHlwZSBHbHlwaCA9IHsgX2NhY2hlZE91dGxpbmU6IHN0cmluZ1tdOyBoYTogbnVtYmVyOyBvOiBzdHJpbmcgfTtcblxuZGVjbGFyZSB0eXBlIEZvbnREYXRhID0ge1xuICAgIGJvdW5kaW5nQm94OiB7IHlNYXg6IG51bWJlcjsgeU1pbjogbnVtYmVyIH07XG4gICAgZmFtaWx5TmFtZTogc3RyaW5nO1xuICAgIGdseXBoczogeyBbazogc3RyaW5nXTogR2x5cGggfTtcbiAgICByZXNvbHV0aW9uOiBudW1iZXI7XG4gICAgdW5kZXJsaW5lVGhpY2tuZXNzOiBudW1iZXI7XG59O1xuXG5leHRlbmQoeyBNZXNoLCBUZXh0R2VvbWV0cnkgfSk7XG5cbmV4cG9ydCB0eXBlIE5ndHNUZXh0M0RTdGF0ZSA9IHtcbiAgICBmb250OiBGb250RGF0YSB8IHN0cmluZztcbiAgICB0ZXh0OiBzdHJpbmc7XG4gICAgbGV0dGVyU3BhY2luZzogbnVtYmVyO1xuICAgIGxpbmVIZWlnaHQ6IG51bWJlcjtcbiAgICBzaXplOiBudW1iZXI7XG4gICAgaGVpZ2h0OiBudW1iZXI7XG4gICAgYmV2ZWxUaGlja25lc3M6IG51bWJlcjtcbiAgICBiZXZlbFNpemU6IG51bWJlcjtcbiAgICBiZXZlbEVuYWJsZWQ6IGJvb2xlYW47XG4gICAgYmV2ZWxPZmZzZXQ6IG51bWJlcjtcbiAgICBiZXZlbFNlZ21lbnRzOiBudW1iZXI7XG4gICAgY3VydmVTZWdtZW50czogbnVtYmVyO1xuICAgIHNtb290aD86IG51bWJlcjtcbn07XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAgICAgJ25ndHMtdGV4dC0zZCc6IE5ndHNUZXh0M0RTdGF0ZSAmIE5ndE1lc2g7XG4gICAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndHMtdGV4dC0zZCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmd0LW1lc2ggbmd0Q29tcG91bmQgW3JlZl09XCJ0ZXh0UmVmXCI+XG4gICAgICAgICAgICA8bmd0LXRleHQtZ2VvbWV0cnkgKmFyZ3M9XCJnZW9tZXRyeUFyZ3MoKVwiIC8+XG4gICAgICAgICAgICA8bmctY29udGVudCAvPlxuICAgICAgICA8L25ndC1tZXNoPlxuICAgIGAsXG4gICAgaW1wb3J0czogW05ndEFyZ3NdLFxuICAgIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c1RleHQzRCBleHRlbmRzIE5ndFNpZ25hbFN0b3JlPE5ndHNUZXh0M0RTdGF0ZT4ge1xuICAgIEBJbnB1dCgpIHRleHRSZWYgPSBpbmplY3ROZ3RSZWY8TWVzaD4oKTtcblxuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHNldCBmb250KGZvbnQ6IEZvbnREYXRhIHwgc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZm9udCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBzZXQgdGV4dCh0ZXh0OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zZXQoeyB0ZXh0IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBiZXZlbEVuYWJsZWQoYmV2ZWxFbmFibGVkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgYmV2ZWxFbmFibGVkIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBiZXZlbE9mZnNldChiZXZlbE9mZnNldDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgYmV2ZWxPZmZzZXQgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGJldmVsU2l6ZShiZXZlbFNpemU6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGJldmVsU2l6ZSB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgYmV2ZWxUaGlja25lc3MoYmV2ZWxUaGlja25lc3M6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGJldmVsVGhpY2tuZXNzIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBjdXJ2ZVNlZ21lbnRzKGN1cnZlU2VnbWVudHM6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGN1cnZlU2VnbWVudHMgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGJldmVsU2VnbWVudHMoYmV2ZWxTZWdtZW50czogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgYmV2ZWxTZWdtZW50cyB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgaGVpZ2h0KGhlaWdodDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgaGVpZ2h0IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBzaXplKHNpemU6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IHNpemUgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGxpbmVIZWlnaHQobGluZUhlaWdodDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgbGluZUhlaWdodCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgbGV0dGVyU3BhY2luZyhsZXR0ZXJTcGFjaW5nOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBsZXR0ZXJTcGFjaW5nIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBzbW9vdGgoc21vb3RoOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBzbW9vdGggfSk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIGxpbmVIZWlnaHQ6IDEsXG4gICAgICAgICAgICBsZXR0ZXJTcGFjaW5nOiAwLFxuICAgICAgICAgICAgc2l6ZTogMSxcbiAgICAgICAgICAgIGhlaWdodDogMC4yLFxuICAgICAgICAgICAgYmV2ZWxUaGlja25lc3M6IDAuMSxcbiAgICAgICAgICAgIGJldmVsU2l6ZTogMC4wMSxcbiAgICAgICAgICAgIGJldmVsRW5hYmxlZDogZmFsc2UsXG4gICAgICAgICAgICBiZXZlbE9mZnNldDogMCxcbiAgICAgICAgICAgIGJldmVsU2VnbWVudHM6IDQsXG4gICAgICAgICAgICBjdXJ2ZVNlZ21lbnRzOiA4LFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZWFkb25seSAjZm9udERhdGEgPSB0b1NpZ25hbChcbiAgICAgICAgdG9PYnNlcnZhYmxlKHRoaXMuc2VsZWN0KCdmb250JykpLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKGZvbnQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGZvbnQgPT09ICdzdHJpbmcnKSByZXR1cm4gZmV0Y2goZm9udCkudGhlbigocmVzKSA9PiByZXMuanNvbigpKSBhcyBQcm9taXNlPEZvbnREYXRhPjtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YoZm9udCBhcyBGb250RGF0YSk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG1hcCgoZm9udERhdGEpID0+IG5ldyBGb250TG9hZGVyKCkucGFyc2UoZm9udERhdGEpKVxuICAgICAgICApXG4gICAgKTtcblxuICAgIHJlYWRvbmx5ICN0ZXh0ID0gdGhpcy5zZWxlY3QoJ3RleHQnKTtcbiAgICByZWFkb25seSAjc2l6ZSA9IHRoaXMuc2VsZWN0KCdzaXplJyk7XG4gICAgcmVhZG9ubHkgI2hlaWdodCA9IHRoaXMuc2VsZWN0KCdoZWlnaHQnKTtcbiAgICByZWFkb25seSAjYmV2ZWxUaGlja25lc3MgPSB0aGlzLnNlbGVjdCgnYmV2ZWxUaGlja25lc3MnKTtcbiAgICByZWFkb25seSAjYmV2ZWxTaXplID0gdGhpcy5zZWxlY3QoJ2JldmVsU2l6ZScpO1xuICAgIHJlYWRvbmx5ICNiZXZlbEVuYWJsZWQgPSB0aGlzLnNlbGVjdCgnYmV2ZWxFbmFibGVkJyk7XG4gICAgcmVhZG9ubHkgI2JldmVsU2VnbWVudHMgPSB0aGlzLnNlbGVjdCgnYmV2ZWxTZWdtZW50cycpO1xuICAgIHJlYWRvbmx5ICNiZXZlbE9mZnNldCA9IHRoaXMuc2VsZWN0KCdiZXZlbE9mZnNldCcpO1xuICAgIHJlYWRvbmx5ICNjdXJ2ZVNlZ21lbnRzID0gdGhpcy5zZWxlY3QoJ2N1cnZlU2VnbWVudHMnKTtcbiAgICByZWFkb25seSAjbGV0dGVyU3BhY2luZyA9IHRoaXMuc2VsZWN0KCdsZXR0ZXJTcGFjaW5nJyk7XG4gICAgcmVhZG9ubHkgI2xpbmVIZWlnaHQgPSB0aGlzLnNlbGVjdCgnbGluZUhlaWdodCcpO1xuICAgIHJlYWRvbmx5IGdlb21ldHJ5QXJncyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgY29uc3QgZm9udERhdGEgPSB0aGlzLiNmb250RGF0YSgpO1xuICAgICAgICBpZiAoIWZvbnREYXRhKSByZXR1cm4gbnVsbDtcblxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgdGhpcy4jdGV4dCgpLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGZvbnQ6IGZvbnREYXRhLFxuICAgICAgICAgICAgICAgIHNpemU6IHRoaXMuI3NpemUoKSxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IHRoaXMuI2hlaWdodCgpLFxuICAgICAgICAgICAgICAgIGJldmVsVGhpY2tuZXNzOiB0aGlzLiNiZXZlbFRoaWNrbmVzcygpLFxuICAgICAgICAgICAgICAgIGJldmVsU2l6ZTogdGhpcy4jYmV2ZWxTaXplKCksXG4gICAgICAgICAgICAgICAgYmV2ZWxTZWdtZW50czogdGhpcy4jYmV2ZWxTZWdtZW50cygpLFxuICAgICAgICAgICAgICAgIGJldmVsRW5hYmxlZDogdGhpcy4jYmV2ZWxFbmFibGVkKCksXG4gICAgICAgICAgICAgICAgYmV2ZWxPZmZzZXQ6IHRoaXMuI2JldmVsT2Zmc2V0KCksXG4gICAgICAgICAgICAgICAgY3VydmVTZWdtZW50czogdGhpcy4jY3VydmVTZWdtZW50cygpLFxuICAgICAgICAgICAgICAgIGxldHRlclNwYWNpbmc6IHRoaXMuI2xldHRlclNwYWNpbmcoKSxcbiAgICAgICAgICAgICAgICBsaW5lSGVpZ2h0OiB0aGlzLiNsaW5lSGVpZ2h0KCksXG4gICAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgIH0pO1xufVxuIl19
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC0zZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc29iYS9hYnN0cmFjdGlvbnMvc3JjL3RleHQtM2QvdGV4dC0zZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04saUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxRQUFRLEVBQ1Isc0JBQXNCLEVBQ3RCLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzdCLE9BQU8sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBK0IsTUFBTSxjQUFjLENBQUM7O0FBWTNGLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO0FBK0IvQixNQUFNLE9BQU8sVUFBVTtJQWdCdEIsSUFBOEMsS0FBSyxDQUFDLElBQXVCO1FBQzFFLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBOEMsS0FBSyxDQUFDLElBQVk7UUFDL0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFzQyxhQUFhLENBQUMsWUFBcUI7UUFDeEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFxQyxZQUFZLENBQUMsV0FBbUI7UUFDcEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFD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Szt1QkFBQyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUU7Z0JBSVcsZUFBZTtzQkFBdEQsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRTtnQkFJSyxjQUFjO3NCQUFwRCxLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRTtnQkFJTSxjQUFjO3NCQUFwRCxLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRTtnQkFJRCxPQUFPO3NCQUF0QyxLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtnQkFJSSxLQUFLO3NCQUFsQyxLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtnQkFJWSxXQUFXO3NCQUE5QyxLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRTtnQkFJUyxjQUFjO3NCQUFwRCxLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRTtnQkFJRCxPQUFPO3NCQUF0QyxLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENoYW5nZURldGVjdG9yUmVmLFxuXHRDb21wb25lbnQsXG5cdGNvbXB1dGVkLFxuXHRDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuXHRlZmZlY3QsXG5cdGluamVjdCxcblx0SW5wdXQsXG5cdHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBleHRlbmQsIGluamVjdE5ndFJlZiwgTmd0QXJncywgc2lnbmFsU3RvcmUsIHR5cGUgTmd0TWVzaCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgTWVzaCB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IEZvbnQsIEZvbnRMb2FkZXIsIFRleHRHZW9tZXRyeSwgdHlwZSBUZXh0R2VvbWV0cnlQYXJhbWV0ZXJzIH0gZnJvbSAndGhyZWUtc3RkbGliJztcblxuZGVjbGFyZSB0eXBlIEdseXBoID0geyBfY2FjaGVkT3V0bGluZTogc3RyaW5nW107IGhhOiBudW1iZXI7IG86IHN0cmluZyB9O1xuXG5kZWNsYXJlIHR5cGUgRm9udERhdGEgPSB7XG5cdGJvdW5kaW5nQm94OiB7IHlNYXg6IG51bWJlcjsgeU1pbjogbnVtYmVyIH07XG5cdGZhbWlseU5hbWU6IHN0cmluZztcblx0Z2x5cGhzOiB7IFtrOiBzdHJpbmddOiBHbHlwaCB9O1xuXHRyZXNvbHV0aW9uOiBudW1iZXI7XG5cdHVuZGVybGluZVRoaWNrbmVzczogbnVtYmVyO1xufTtcblxuZXh0ZW5kKHsgTWVzaCwgVGV4dEdlb21ldHJ5IH0pO1xuXG5leHBvcnQgdHlwZSBOZ3RzVGV4dDNEU3RhdGUgPSB7XG5cdGZvbnQ6IEZvbnREYXRhIHwgc3RyaW5nO1xuXHR0ZXh0OiBzdHJpbmc7XG5cdGJldmVsU2VnbWVudHM/OiBudW1iZXI7XG5cdHNtb290aD86IG51bWJlcjtcbn0gJiBPbWl0PFRleHRHZW9tZXRyeVBhcmFtZXRlcnMsICdmb250Jz47XG5cbmRlY2xhcmUgZ2xvYmFsIHtcblx0aW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG5cdFx0LyoqXG5cdFx0ICogQGV4dGVuZHMgbmd0LW1lc2hcblx0XHQgKiBAZXh0ZW5kcyB0aHJlZS1zdGRsaWJ8VGV4dEdlb21ldHJ5UGFyYW1ldGVyc1xuXHRcdCAqL1xuXHRcdCduZ3RzLXRleHQtM2QnOiBOZ3RzVGV4dDNEU3RhdGUgJiBOZ3RNZXNoO1xuXHR9XG59XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHMtdGV4dC0zZCcsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1tZXNoIG5ndENvbXBvdW5kIFtyZWZdPVwidGV4dFJlZlwiPlxuXHRcdFx0PG5ndC10ZXh0LWdlb21ldHJ5ICphcmdzPVwiZ2VvbWV0cnlBcmdzKClcIiAvPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC1tZXNoPlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c1RleHQzRCB7XG5cdHByaXZhdGUgaW5wdXRzID0gc2lnbmFsU3RvcmU8Tmd0c1RleHQzRFN0YXRlPih7XG5cdFx0bGluZUhlaWdodDogMSxcblx0XHRsZXR0ZXJTcGFjaW5nOiAwLFxuXHRcdHNpemU6IDEsXG5cdFx0aGVpZ2h0OiAwLjIsXG5cdFx0YmV2ZWxUaGlja25lc3M6IDAuMSxcblx0XHRiZXZlbFNpemU6IDAuMDEsXG5cdFx0YmV2ZWxFbmFibGVkOiBmYWxzZSxcblx0XHRiZXZlbE9mZnNldDogMCxcblx0XHRiZXZlbFNlZ21lbnRzOiA0LFxuXHRcdGN1cnZlU2VnbWVudHM6IDgsXG5cdH0pO1xuXG5cdEBJbnB1dCgpIHRleHRSZWYgPSBpbmplY3ROZ3RSZWY8TWVzaD4oKTtcblxuXHRASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSwgYWxpYXM6ICdmb250JyB9KSBzZXQgX2ZvbnQoZm9udDogRm9udERhdGEgfCBzdHJpbmcpIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBmb250IH0pO1xuXHR9XG5cblx0QElucHV0KHsgcmVxdWlyZWQ6IHRydWUsIGFsaWFzOiAndGV4dCcgfSkgc2V0IF90ZXh0KHRleHQ6IHN0cmluZykge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IHRleHQgfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ2JldmVsRW5hYmxlZCcgfSkgc2V0IF9iZXZlbEVuYWJsZWQoYmV2ZWxFbmFibGVkOiBib29sZWFuKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgYmV2ZWxFbmFibGVkIH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICdiZXZlbE9mZnNldCcgfSkgc2V0IF9iZXZlbE9mZnNldChiZXZlbE9mZnNldDogbnVtYmVyKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgYmV2ZWxPZmZzZXQgfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ2JldmVsU2l6ZScgfSkgc2V0IF9iZXZlbFNpemUoYmV2ZWxTaXplOiBudW1iZXIpIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBiZXZlbFNpemUgfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ2JldmVsVGhpY2tuZXNzJyB9KSBzZXQgX2JldmVsVGhpY2tuZXNzKGJldmVsVGhpY2tuZXNzOiBudW1iZXIpIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBiZXZlbFRoaWNrbmVzcyB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnY3VydmVTZWdtZW50cycgfSkgc2V0IF9jdXJ2ZVNlZ21lbnRzKGN1cnZlU2VnbWVudHM6IG51bWJlcikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IGN1cnZlU2VnbWVudHMgfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ2JldmVsU2VnbWVudHMnIH0pIHNldCBfYmV2ZWxTZWdtZW50cyhiZXZlbFNlZ21lbnRzOiBudW1iZXIpIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBiZXZlbFNlZ21lbnRzIH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICdoZWlnaHQnIH0pIHNldCBfaGVpZ2h0KGhlaWdodDogbnVtYmVyKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgaGVpZ2h0IH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICdzaXplJyB9KSBzZXQgX3NpemUoc2l6ZTogbnVtYmVyKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgc2l6ZSB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnbGluZUhlaWdodCcgfSkgc2V0IF9saW5lSGVpZ2h0KGxpbmVIZWlnaHQ6IG51bWJlcikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IGxpbmVIZWlnaHQgfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ2xldHRlclNwYWNpbmcnIH0pIHNldCBfbGV0dGVyU3BhY2luZyhsZXR0ZXJTcGFjaW5nOiBudW1iZXIpIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBsZXR0ZXJTcGFjaW5nIH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICdzbW9vdGgnIH0pIHNldCBfc21vb3RoKHNtb290aDogbnVtYmVyKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgc21vb3RoIH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG5cdHByaXZhdGUgZm9udERhdGEgPSBzaWduYWw8Rm9udCB8IG51bGw+KG51bGwpO1xuXG5cdHByaXZhdGUgZm9udCA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnZm9udCcpO1xuXHRwcml2YXRlIHRleHQgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ3RleHQnKTtcblx0cHJpdmF0ZSBzaXplID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdzaXplJyk7XG5cdHByaXZhdGUgaGVpZ2h0ID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdoZWlnaHQnKTtcblx0cHJpdmF0ZSBiZXZlbFRoaWNrbmVzcyA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnYmV2ZWxUaGlja25lc3MnKTtcblx0cHJpdmF0ZSBiZXZlbFNpemUgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ2JldmVsU2l6ZScpO1xuXHRwcml2YXRlIGJldmVsRW5hYmxlZCA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnYmV2ZWxFbmFibGVkJyk7XG5cdHByaXZhdGUgYmV2ZWxTZWdtZW50cyA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnYmV2ZWxTZWdtZW50cycpO1xuXHRwcml2YXRlIGJldmVsT2Zmc2V0ID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdiZXZlbE9mZnNldCcpO1xuXHRwcml2YXRlIGN1cnZlU2VnbWVudHMgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ2N1cnZlU2VnbWVudHMnKTtcblx0cHJpdmF0ZSBsZXR0ZXJTcGFjaW5nID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdsZXR0ZXJTcGFjaW5nJyk7XG5cdHByaXZhdGUgbGluZUhlaWdodCA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnbGluZUhlaWdodCcpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCBmb250ID0gdGhpcy5mb250KCk7XG5cdFx0XHRpZiAodHlwZW9mIGZvbnQgPT09ICdzdHJpbmcnKSB7XG5cdFx0XHRcdGZldGNoKGZvbnQpXG5cdFx0XHRcdFx0LnRoZW4oKHJlcykgPT4gcmVzLmpzb24oKSlcblx0XHRcdFx0XHQudGhlbigoZm9udERhdGEpID0+IHtcblx0XHRcdFx0XHRcdHRoaXMuZm9udERhdGEuc2V0KG5ldyBGb250TG9hZGVyKCkucGFyc2UoZm9udERhdGEpKTtcblx0XHRcdFx0XHRcdHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcblx0XHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdGdlb21ldHJ5QXJncyA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBmb250RGF0YTogRm9udCA9IHRoaXMuZm9udERhdGEoKSB8fCAodGhpcy5mb250KCkgYXMgdW5rbm93biBhcyBGb250KTtcblx0XHRpZiAoIWZvbnREYXRhIHx8ICFmb250RGF0YS5kYXRhKSByZXR1cm4gbnVsbDtcblxuXHRcdHJldHVybiBbXG5cdFx0XHR0aGlzLnRleHQoKSxcblx0XHRcdHtcblx0XHRcdFx0Zm9udDogZm9udERhdGEsXG5cdFx0XHRcdHNpemU6IHRoaXMuc2l6ZSgpLFxuXHRcdFx0XHRoZWlnaHQ6IHRoaXMuaGVpZ2h0KCksXG5cdFx0XHRcdGJldmVsVGhpY2tuZXNzOiB0aGlzLmJldmVsVGhpY2tuZXNzKCksXG5cdFx0XHRcdGJldmVsU2l6ZTogdGhpcy5iZXZlbFNpemUoKSxcblx0XHRcdFx0YmV2ZWxTZWdtZW50czogdGhpcy5iZXZlbFNlZ21lbnRzKCksXG5cdFx0XHRcdGJldmVsRW5hYmxlZDogdGhpcy5iZXZlbEVuYWJsZWQoKSxcblx0XHRcdFx0YmV2ZWxPZmZzZXQ6IHRoaXMuYmV2ZWxPZmZzZXQoKSxcblx0XHRcdFx0Y3VydmVTZWdtZW50czogdGhpcy5jdXJ2ZVNlZ21lbnRzKCksXG5cdFx0XHRcdGxldHRlclNwYWNpbmc6IHRoaXMubGV0dGVyU3BhY2luZygpLFxuXHRcdFx0XHRsaW5lSGVpZ2h0OiB0aGlzLmxpbmVIZWlnaHQoKSxcblx0XHRcdH0sXG5cdFx0XTtcblx0fSk7XG59XG4iXX0=
@@ -1,6 +1,7 @@
1
1
  import { Directive, inject, Input, TemplateRef } from '@angular/core';
2
+ import * as THREE from 'three';
2
3
  import * as i0 from "@angular/core";
3
- class NgtsCameraContent {
4
+ export class NgtsCameraContent {
4
5
  constructor() {
5
6
  this.template = inject(TemplateRef);
6
7
  this.ngtsCameraContent = '';
@@ -8,14 +9,13 @@ class NgtsCameraContent {
8
9
  static ngTemplateContextGuard(_, ctx) {
9
10
  return true;
10
11
  }
11
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsCameraContent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
12
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: NgtsCameraContent, isStandalone: true, selector: "ng-template[ngtsCameraContent]", inputs: { ngtsCameraContent: "ngtsCameraContent" }, ngImport: i0 }); }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtsCameraContent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
13
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.3", type: NgtsCameraContent, isStandalone: true, selector: "ng-template[ngtsCameraContent]", inputs: { ngtsCameraContent: "ngtsCameraContent" }, ngImport: i0 }); }
13
14
  }
14
- export { NgtsCameraContent };
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsCameraContent, decorators: [{
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtsCameraContent, decorators: [{
16
16
  type: Directive,
17
17
  args: [{ selector: 'ng-template[ngtsCameraContent]', standalone: true }]
18
18
  }], propDecorators: { ngtsCameraContent: [{
19
19
  type: Input
20
20
  }] } });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtZXJhLWNvbnRlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvY2FtZXJhcy9zcmMvY2FtZXJhL2NhbWVyYS1jb250ZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBR3RFLE1BQ2EsaUJBQWlCO0lBRDlCO1FBRWEsYUFBUSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMvQixzQkFBaUIsR0FBYyxFQUFFLENBQUM7S0FROUM7SUFORyxNQUFNLENBQUMsc0JBQXNCLENBQ3pCLENBQW9CLEVBQ3BCLEdBQVk7UUFFWixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDOzhHQVRRLGlCQUFpQjtrR0FBakIsaUJBQWlCOztTQUFqQixpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFEN0IsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxnQ0FBZ0MsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFOzhCQUc5RCxpQkFBaUI7c0JBQXpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGluamVjdCwgSW5wdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ25nLXRlbXBsYXRlW25ndHNDYW1lcmFDb250ZW50XScsIHN0YW5kYWxvbmU6IHRydWUgfSlcbmV4cG9ydCBjbGFzcyBOZ3RzQ2FtZXJhQ29udGVudCB7XG4gICAgcmVhZG9ubHkgdGVtcGxhdGUgPSBpbmplY3QoVGVtcGxhdGVSZWYpO1xuICAgIEBJbnB1dCgpIG5ndHNDYW1lcmFDb250ZW50OiB0cnVlIHwgJycgPSAnJztcblxuICAgIHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkKFxuICAgICAgICBfOiBOZ3RzQ2FtZXJhQ29udGVudCxcbiAgICAgICAgY3R4OiB1bmtub3duXG4gICAgKTogY3R4IGlzIHsgZmJvOiBUSFJFRS5XZWJHTFJlbmRlclRhcmdldDsgZ3JvdXA/OiBUSFJFRS5Hcm91cCB9IHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxufVxuIl19
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtZXJhLWNvbnRlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvY2FtZXJhcy9zcmMvY2FtZXJhL2NhbWVyYS1jb250ZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7O0FBRy9CLE1BQU0sT0FBTyxpQkFBaUI7SUFEOUI7UUFFQyxhQUFRLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3RCLHNCQUFpQixHQUFjLEVBQUUsQ0FBQztLQVEzQztJQU5BLE1BQU0sQ0FBQyxzQkFBc0IsQ0FDNUIsQ0FBb0IsRUFDcEIsR0FBWTtRQUVaLE9BQU8sSUFBSSxDQUFDO0lBQ2IsQ0FBQzs4R0FUVyxpQkFBaUI7a0dBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFEN0IsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxnQ0FBZ0MsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFOzhCQUdqRSxpQkFBaUI7c0JBQXpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGluamVjdCwgSW5wdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ25nLXRlbXBsYXRlW25ndHNDYW1lcmFDb250ZW50XScsIHN0YW5kYWxvbmU6IHRydWUgfSlcbmV4cG9ydCBjbGFzcyBOZ3RzQ2FtZXJhQ29udGVudCB7XG5cdHRlbXBsYXRlID0gaW5qZWN0KFRlbXBsYXRlUmVmKTtcblx0QElucHV0KCkgbmd0c0NhbWVyYUNvbnRlbnQ6IHRydWUgfCAnJyA9ICcnO1xuXG5cdHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkKFxuXHRcdF86IE5ndHNDYW1lcmFDb250ZW50LFxuXHRcdGN0eDogdW5rbm93bixcblx0KTogY3R4IGlzIHsgZmJvOiBUSFJFRS5XZWJHTFJlbmRlclRhcmdldDsgZ3JvdXA/OiBUSFJFRS5Hcm91cCB9IHtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxufVxuIl19
@@ -1,37 +1,39 @@
1
- import { Directive, effect, inject, Input } from '@angular/core';
2
- import { injectNgtRef, NgtSignalStore, NgtStore, requestAnimationInInjectionContext, } from 'angular-three';
1
+ import { Directive, effect, Input } from '@angular/core';
2
+ import { injectNgtRef, injectNgtStore, signalStore } from 'angular-three';
3
3
  import { injectNgtsFBO } from 'angular-three-soba/misc';
4
4
  import * as i0 from "@angular/core";
5
- class NgtsCamera extends NgtSignalStore {
6
- set makeDefault(makeDefault) {
7
- this.set({ makeDefault });
5
+ export class NgtsCamera {
6
+ set _makeDefault(makeDefault) {
7
+ this.inputs.set({ makeDefault });
8
8
  }
9
- set manual(manual) {
10
- this.set({ manual });
9
+ set _manual(manual) {
10
+ this.inputs.set({ manual });
11
11
  }
12
- set frames(frames) {
13
- this.set({ frames });
12
+ set _frames(frames) {
13
+ this.inputs.set({ frames });
14
14
  }
15
- set resolution(resolution) {
16
- this.set({ resolution });
15
+ set _resolution(resolution) {
16
+ this.inputs.set({ resolution });
17
17
  }
18
- set envMap(envMap) {
19
- this.set({ envMap });
18
+ set _envMap(envMap) {
19
+ this.inputs.set({ envMap });
20
20
  }
21
- #resolution;
22
21
  constructor() {
23
- super({ resolution: 256, frames: Infinity, makeDefault: false, manual: false });
24
- this.cameraRef = injectNgtRef();
25
- this.store = inject(NgtStore);
26
- this.#resolution = this.select('resolution');
27
- this.fboRef = injectNgtsFBO(() => ({ width: this.#resolution() }));
28
- requestAnimationInInjectionContext(() => {
29
- this.#setDefaultCamera();
30
- this.#updateProjectionMatrix();
22
+ this.inputs = signalStore({
23
+ resolution: 256,
24
+ frames: Infinity,
25
+ makeDefault: false,
26
+ manual: false,
31
27
  });
28
+ this.cameraRef = injectNgtRef();
29
+ this.cameraResolution = this.inputs.select('resolution');
30
+ this.store = injectNgtStore();
31
+ this.fbo = injectNgtsFBO(() => ({ width: this.cameraResolution() }));
32
+ this.setDefaultCamera();
33
+ this.updateProjectionMatrix();
32
34
  }
33
- #setDefaultCamera() {
34
- const makeDefault = this.select('makeDefault');
35
+ setDefaultCamera() {
36
+ const makeDefault = this.inputs.select('makeDefault');
35
37
  effect((onCleanup) => {
36
38
  const camera = this.cameraRef.nativeElement;
37
39
  if (camera && makeDefault()) {
@@ -39,33 +41,37 @@ class NgtsCamera extends NgtSignalStore {
39
41
  this.store.set({ camera });
40
42
  onCleanup(() => this.store.set({ camera: oldCamera }));
41
43
  }
42
- }, { allowSignalWrites: true });
44
+ });
43
45
  }
44
- #updateProjectionMatrix() {
45
- const manual = this.select('manual');
46
+ updateProjectionMatrix() {
47
+ const manual = this.inputs.select('manual');
46
48
  effect(() => {
47
49
  const camera = this.cameraRef.nativeElement;
48
50
  if (!manual() && camera)
49
51
  camera.updateProjectionMatrix();
50
52
  });
51
53
  }
52
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsCamera, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
53
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: NgtsCamera, inputs: { makeDefault: "makeDefault", manual: "manual", frames: "frames", resolution: "resolution", envMap: "envMap", cameraRef: "cameraRef" }, usesInheritance: true, ngImport: i0 }); }
54
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtsCamera, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
55
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.3", type: NgtsCamera, inputs: { _makeDefault: ["makeDefault", "_makeDefault"], _manual: ["manual", "_manual"], _frames: ["frames", "_frames"], _resolution: ["resolution", "_resolution"], _envMap: ["envMap", "_envMap"], cameraRef: "cameraRef" }, ngImport: i0 }); }
54
56
  }
55
- export { NgtsCamera };
56
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsCamera, decorators: [{
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtsCamera, decorators: [{
57
58
  type: Directive
58
- }], ctorParameters: function () { return []; }, propDecorators: { makeDefault: [{
59
- type: Input
60
- }], manual: [{
61
- type: Input
62
- }], frames: [{
63
- type: Input
64
- }], resolution: [{
65
- type: Input
66
- }], envMap: [{
67
- type: Input
59
+ }], ctorParameters: function () { return []; }, propDecorators: { _makeDefault: [{
60
+ type: Input,
61
+ args: [{ alias: 'makeDefault' }]
62
+ }], _manual: [{
63
+ type: Input,
64
+ args: [{ alias: 'manual' }]
65
+ }], _frames: [{
66
+ type: Input,
67
+ args: [{ alias: 'frames' }]
68
+ }], _resolution: [{
69
+ type: Input,
70
+ args: [{ alias: 'resolution' }]
71
+ }], _envMap: [{
72
+ type: Input,
73
+ args: [{ alias: 'envMap' }]
68
74
  }], cameraRef: [{
69
75
  type: Input
70
76
  }] } });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtZXJhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL2NhbWVyYXMvc3JjL2NhbWVyYS9jYW1lcmEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQ0gsWUFBWSxFQUNaLGNBQWMsRUFDZCxRQUFRLEVBQ1Isa0NBQWtDLEdBRXJDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFVeEQsTUFDc0IsVUFBc0MsU0FBUSxjQUErQjtJQUMvRixJQUFhLFdBQVcsQ0FBQyxXQUFvQjtRQUN6QyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBYSxNQUFNLENBQUMsTUFBZTtRQUMvQixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBYSxNQUFNLENBQUMsTUFBYztRQUM5QixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBYSxVQUFVLENBQUMsVUFBa0I7UUFDdEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQWEsTUFBTSxDQUFDLE1BQXFCO1FBQ3JDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFLUSxXQUFXLENBQTZCO0lBR2pEO1FBQ0ksS0FBSyxDQUFDLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFQM0UsY0FBUyxHQUFHLFlBQVksRUFBVyxDQUFDO1FBRTFCLFVBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkMsZ0JBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3hDLFdBQU0sR0FBRyxhQUFhLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFJbkUsa0NBQWtDLENBQUMsR0FBRyxFQUFFO1lBQ3BDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGlCQUFpQjtRQUNiLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDL0MsTUFBTSxDQUNGLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDVixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQztZQUM1QyxJQUFJLE1BQU0sSUFBSSxXQUFXLEVBQUUsRUFBRTtnQkFDekIsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUMvQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7Z0JBQzNCLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDMUQ7UUFDTCxDQUFDLEVBQ0QsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FDOUIsQ0FBQztJQUNOLENBQUM7SUFFRCx1QkFBdUI7UUFDbkIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyQyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUM7WUFDNUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLE1BQU07Z0JBQUUsTUFBTSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDN0QsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzhHQXhEaUIsVUFBVTtrR0FBVixVQUFVOztTQUFWLFVBQVU7MkZBQVYsVUFBVTtrQkFEL0IsU0FBUzswRUFFTyxXQUFXO3NCQUF2QixLQUFLO2dCQUlPLE1BQU07c0JBQWxCLEtBQUs7Z0JBSU8sTUFBTTtzQkFBbEIsS0FBSztnQkFJTyxVQUFVO3NCQUF0QixLQUFLO2dCQUlPLE1BQU07c0JBQWxCLEtBQUs7Z0JBSUcsU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgZWZmZWN0LCBpbmplY3QsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIGluamVjdE5ndFJlZixcbiAgICBOZ3RTaWduYWxTdG9yZSxcbiAgICBOZ3RTdG9yZSxcbiAgICByZXF1ZXN0QW5pbWF0aW9uSW5JbmplY3Rpb25Db250ZXh0LFxuICAgIHR5cGUgTmd0Q2FtZXJhLFxufSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGluamVjdE5ndHNGQk8gfSBmcm9tICdhbmd1bGFyLXRocmVlLXNvYmEvbWlzYyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0c0NhbWVyYVN0YXRlIHtcbiAgICBtYWtlRGVmYXVsdDogYm9vbGVhbjtcbiAgICBtYW51YWw6IGJvb2xlYW47XG4gICAgZnJhbWVzOiBudW1iZXI7XG4gICAgcmVzb2x1dGlvbjogbnVtYmVyO1xuICAgIGVudk1hcD86IFRIUkVFLlRleHR1cmU7XG59XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE5ndHNDYW1lcmE8VENhbWVyYSBleHRlbmRzIE5ndENhbWVyYT4gZXh0ZW5kcyBOZ3RTaWduYWxTdG9yZTxOZ3RzQ2FtZXJhU3RhdGU+IHtcbiAgICBASW5wdXQoKSBzZXQgbWFrZURlZmF1bHQobWFrZURlZmF1bHQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBtYWtlRGVmYXVsdCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgbWFudWFsKG1hbnVhbDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNldCh7IG1hbnVhbCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgZnJhbWVzKGZyYW1lczogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZnJhbWVzIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCByZXNvbHV0aW9uKHJlc29sdXRpb246IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IHJlc29sdXRpb24gfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGVudk1hcChlbnZNYXA6IFRIUkVFLlRleHR1cmUpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBlbnZNYXAgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgY2FtZXJhUmVmID0gaW5qZWN0Tmd0UmVmPFRDYW1lcmE+KCk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3RvcmUgPSBpbmplY3QoTmd0U3RvcmUpO1xuICAgIHJlYWRvbmx5ICNyZXNvbHV0aW9uID0gdGhpcy5zZWxlY3QoJ3Jlc29sdXRpb24nKTtcbiAgICByZWFkb25seSBmYm9SZWYgPSBpbmplY3ROZ3RzRkJPKCgpID0+ICh7IHdpZHRoOiB0aGlzLiNyZXNvbHV0aW9uKCkgfSkpO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKHsgcmVzb2x1dGlvbjogMjU2LCBmcmFtZXM6IEluZmluaXR5LCBtYWtlRGVmYXVsdDogZmFsc2UsIG1hbnVhbDogZmFsc2UgfSk7XG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25JbkluamVjdGlvbkNvbnRleHQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy4jc2V0RGVmYXVsdENhbWVyYSgpO1xuICAgICAgICAgICAgdGhpcy4jdXBkYXRlUHJvamVjdGlvbk1hdHJpeCgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAjc2V0RGVmYXVsdENhbWVyYSgpIHtcbiAgICAgICAgY29uc3QgbWFrZURlZmF1bHQgPSB0aGlzLnNlbGVjdCgnbWFrZURlZmF1bHQnKTtcbiAgICAgICAgZWZmZWN0KFxuICAgICAgICAgICAgKG9uQ2xlYW51cCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNhbWVyYSA9IHRoaXMuY2FtZXJhUmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgaWYgKGNhbWVyYSAmJiBtYWtlRGVmYXVsdCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgY2FtZXJhOiBvbGRDYW1lcmEgfSA9IHRoaXMuc3RvcmUuZ2V0KCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuc2V0KHsgY2FtZXJhIH0pO1xuICAgICAgICAgICAgICAgICAgICBvbkNsZWFudXAoKCkgPT4gdGhpcy5zdG9yZS5zZXQoeyBjYW1lcmE6IG9sZENhbWVyYSB9KSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgICN1cGRhdGVQcm9qZWN0aW9uTWF0cml4KCkge1xuICAgICAgICBjb25zdCBtYW51YWwgPSB0aGlzLnNlbGVjdCgnbWFudWFsJyk7XG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjYW1lcmEgPSB0aGlzLmNhbWVyYVJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgaWYgKCFtYW51YWwoKSAmJiBjYW1lcmEpIGNhbWVyYS51cGRhdGVQcm9qZWN0aW9uTWF0cml4KCk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtZXJhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL2NhbWVyYXMvc3JjL2NhbWVyYS9jYW1lcmEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQVd4RCxNQUFNLE9BQWdCLFVBQVU7SUFRL0IsSUFBcUMsWUFBWSxDQUFDLFdBQW9CO1FBQ3JFLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBZ0MsT0FBTyxDQUFDLE1BQWU7UUFDdEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFnQyxPQUFPLENBQUMsTUFBYztRQUNyRCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQW9DLFdBQVcsQ0FBQyxVQUFrQjtRQUNqRSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELElBQWdDLE9BQU8sQ0FBQyxNQUFxQjtRQUM1RCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQVNEO1FBbENVLFdBQU0sR0FBRyxXQUFXLENBQWtCO1lBQy9DLFVBQVUsRUFBRSxHQUFHO1lBQ2YsTUFBTSxFQUFFLFFBQVE7WUFDaEIsV0FBVyxFQUFFLEtBQUs7WUFDbEIsTUFBTSxFQUFFLEtBQUs7U0FDYixDQUFDLENBQUM7UUFzQk0sY0FBUyxHQUFHLFlBQVksRUFBVyxDQUFDO1FBRXJDLHFCQUFnQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRWxELFVBQUssR0FBRyxjQUFjLEVBQUUsQ0FBQztRQUN6QixRQUFHLEdBQUcsYUFBYSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFHekUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVPLGdCQUFnQjtRQUN2QixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN0RCxNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNwQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQztZQUM1QyxJQUFJLE1BQU0sSUFBSSxXQUFXLEVBQUUsRUFBRTtnQkFDNUIsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUMvQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7Z0JBQzNCLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDdkQ7UUFDRixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFTyxzQkFBc0I7UUFDN0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUMsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDO1lBQzVDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxNQUFNO2dCQUFFLE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQzFELENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs4R0ExRG9CLFVBQVU7a0dBQVYsVUFBVTs7MkZBQVYsVUFBVTtrQkFEL0IsU0FBUzswRUFTNEIsWUFBWTtzQkFBaEQsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUU7Z0JBSUMsT0FBTztzQkFBdEMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7Z0JBSU0sT0FBTztzQkFBdEMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7Z0JBSVUsV0FBVztzQkFBOUMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUU7Z0JBSUUsT0FBTztzQkFBdEMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7Z0JBSWpCLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGVmZmVjdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGluamVjdE5ndFJlZiwgaW5qZWN0Tmd0U3RvcmUsIHNpZ25hbFN0b3JlLCB0eXBlIE5ndENhbWVyYSB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgaW5qZWN0Tmd0c0ZCTyB9IGZyb20gJ2FuZ3VsYXItdGhyZWUtc29iYS9taXNjJztcblxuZXhwb3J0IHR5cGUgTmd0c0NhbWVyYVN0YXRlID0ge1xuXHRtYWtlRGVmYXVsdDogYm9vbGVhbjtcblx0bWFudWFsOiBib29sZWFuO1xuXHRmcmFtZXM6IG51bWJlcjtcblx0cmVzb2x1dGlvbjogbnVtYmVyO1xuXHRlbnZNYXA/OiBUSFJFRS5UZXh0dXJlO1xufTtcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTmd0c0NhbWVyYTxUQ2FtZXJhIGV4dGVuZHMgTmd0Q2FtZXJhPiB7XG5cdHByb3RlY3RlZCBpbnB1dHMgPSBzaWduYWxTdG9yZTxOZ3RzQ2FtZXJhU3RhdGU+KHtcblx0XHRyZXNvbHV0aW9uOiAyNTYsXG5cdFx0ZnJhbWVzOiBJbmZpbml0eSxcblx0XHRtYWtlRGVmYXVsdDogZmFsc2UsXG5cdFx0bWFudWFsOiBmYWxzZSxcblx0fSk7XG5cblx0QElucHV0KHsgYWxpYXM6ICdtYWtlRGVmYXVsdCcgfSkgc2V0IF9tYWtlRGVmYXVsdChtYWtlRGVmYXVsdDogYm9vbGVhbikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IG1ha2VEZWZhdWx0IH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICdtYW51YWwnIH0pIHNldCBfbWFudWFsKG1hbnVhbDogYm9vbGVhbikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IG1hbnVhbCB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnZnJhbWVzJyB9KSBzZXQgX2ZyYW1lcyhmcmFtZXM6IG51bWJlcikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IGZyYW1lcyB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAncmVzb2x1dGlvbicgfSkgc2V0IF9yZXNvbHV0aW9uKHJlc29sdXRpb246IG51bWJlcikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IHJlc29sdXRpb24gfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ2Vudk1hcCcgfSkgc2V0IF9lbnZNYXAoZW52TWFwOiBUSFJFRS5UZXh0dXJlKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgZW52TWFwIH0pO1xuXHR9XG5cblx0QElucHV0KCkgY2FtZXJhUmVmID0gaW5qZWN0Tmd0UmVmPFRDYW1lcmE+KCk7XG5cblx0cHJpdmF0ZSBjYW1lcmFSZXNvbHV0aW9uID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdyZXNvbHV0aW9uJyk7XG5cblx0cHJvdGVjdGVkIHN0b3JlID0gaW5qZWN0Tmd0U3RvcmUoKTtcblx0cHJvdGVjdGVkIGZibyA9IGluamVjdE5ndHNGQk8oKCkgPT4gKHsgd2lkdGg6IHRoaXMuY2FtZXJhUmVzb2x1dGlvbigpIH0pKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHR0aGlzLnNldERlZmF1bHRDYW1lcmEoKTtcblx0XHR0aGlzLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKTtcblx0fVxuXG5cdHByaXZhdGUgc2V0RGVmYXVsdENhbWVyYSgpIHtcblx0XHRjb25zdCBtYWtlRGVmYXVsdCA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnbWFrZURlZmF1bHQnKTtcblx0XHRlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuXHRcdFx0Y29uc3QgY2FtZXJhID0gdGhpcy5jYW1lcmFSZWYubmF0aXZlRWxlbWVudDtcblx0XHRcdGlmIChjYW1lcmEgJiYgbWFrZURlZmF1bHQoKSkge1xuXHRcdFx0XHRjb25zdCB7IGNhbWVyYTogb2xkQ2FtZXJhIH0gPSB0aGlzLnN0b3JlLmdldCgpO1xuXHRcdFx0XHR0aGlzLnN0b3JlLnNldCh7IGNhbWVyYSB9KTtcblx0XHRcdFx0b25DbGVhbnVwKCgpID0+IHRoaXMuc3RvcmUuc2V0KHsgY2FtZXJhOiBvbGRDYW1lcmEgfSkpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSB1cGRhdGVQcm9qZWN0aW9uTWF0cml4KCkge1xuXHRcdGNvbnN0IG1hbnVhbCA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnbWFudWFsJyk7XG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdGNvbnN0IGNhbWVyYSA9IHRoaXMuY2FtZXJhUmVmLm5hdGl2ZUVsZW1lbnQ7XG5cdFx0XHRpZiAoIW1hbnVhbCgpICYmIGNhbWVyYSkgY2FtZXJhLnVwZGF0ZVByb2plY3Rpb25NYXRyaXgoKTtcblx0XHR9KTtcblx0fVxufVxuIl19