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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (321) hide show
  1. package/abstractions/billboard/billboard.d.ts +11 -7
  2. package/abstractions/detailed/detailed.d.ts +26 -0
  3. package/abstractions/edges/edges.d.ts +24 -12
  4. package/abstractions/grid/grid.d.ts +50 -0
  5. package/abstractions/index.d.ts +2 -7
  6. package/abstractions/text/text.d.ts +10 -5
  7. package/abstractions/text-3d/text-3d.d.ts +51 -41
  8. package/cameras/camera/camera-content.d.ts +1 -1
  9. package/cameras/camera/camera.d.ts +16 -13
  10. package/cameras/cube-camera/cube-camera.d.ts +50 -23
  11. package/cameras/index.d.ts +0 -1
  12. package/cameras/orthographic-camera/orthographic-camera.d.ts +29 -18
  13. package/cameras/perspective-camera/perspective-camera.d.ts +10 -1
  14. package/controls/orbit-controls/orbit-controls.d.ts +31 -12
  15. package/esm2022/abstractions/billboard/billboard.mjs +36 -33
  16. package/esm2022/abstractions/detailed/detailed.mjs +64 -0
  17. package/esm2022/abstractions/edges/edges.mjs +58 -63
  18. package/esm2022/abstractions/grid/grid.mjs +180 -0
  19. package/esm2022/abstractions/index.mjs +3 -8
  20. package/esm2022/abstractions/text/text.mjs +123 -124
  21. package/esm2022/abstractions/text-3d/text-3d.mjs +120 -115
  22. package/esm2022/cameras/camera/camera-content.mjs +6 -6
  23. package/esm2022/cameras/camera/camera.mjs +48 -42
  24. package/esm2022/cameras/cube-camera/cube-camera.mjs +129 -99
  25. package/esm2022/cameras/index.mjs +1 -2
  26. package/esm2022/cameras/orthographic-camera/orthographic-camera.mjs +78 -75
  27. package/esm2022/cameras/perspective-camera/perspective-camera.mjs +25 -26
  28. package/esm2022/controls/orbit-controls/orbit-controls.mjs +105 -85
  29. package/esm2022/gizmos/angular-three-soba-gizmos.mjs +5 -0
  30. package/esm2022/gizmos/gizmo-helper/gizmo-helper.mjs +197 -0
  31. package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/constants.mjs +31 -0
  32. package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +93 -0
  33. package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +150 -0
  34. package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-input.mjs +66 -0
  35. package/esm2022/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube.mjs +71 -0
  36. package/esm2022/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +195 -0
  37. package/esm2022/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport.mjs +272 -0
  38. package/esm2022/gizmos/index.mjs +4 -0
  39. package/esm2022/loaders/gltf-loader/gltf-loader.mjs +3 -6
  40. package/esm2022/loaders/loader/loader.mjs +92 -87
  41. package/esm2022/loaders/progress/progress.mjs +29 -29
  42. package/esm2022/loaders/texture-loader/texture-loader.mjs +4 -4
  43. package/esm2022/materials/index.mjs +2 -1
  44. package/esm2022/materials/mesh-distort-material/mesh-distort-material.mjs +60 -51
  45. package/esm2022/materials/mesh-reflector-material/mesh-reflector-material.mjs +239 -255
  46. package/esm2022/materials/mesh-refraction-material/mesh-refraction-material.mjs +102 -99
  47. package/esm2022/materials/mesh-transmission-material/mesh-transmission-material.mjs +167 -146
  48. package/esm2022/materials/mesh-wobble-material/mesh-wobble-material.mjs +44 -42
  49. package/esm2022/materials/point-material/point-material.mjs +50 -0
  50. package/esm2022/misc/animations/animations.mjs +36 -32
  51. package/esm2022/misc/bake-shadows/bake-shadows.mjs +13 -13
  52. package/esm2022/misc/caustics/caustics.mjs +387 -0
  53. package/esm2022/misc/decal/decal.mjs +187 -0
  54. package/esm2022/misc/depth-buffer/depth-buffer.mjs +33 -35
  55. package/esm2022/misc/example/example.mjs +160 -0
  56. package/esm2022/misc/fbo/fbo.mjs +35 -35
  57. package/esm2022/misc/html/html-wrapper.mjs +478 -0
  58. package/esm2022/misc/html/html.mjs +304 -0
  59. package/esm2022/misc/index.mjs +10 -1
  60. package/esm2022/misc/sampler/sampler.mjs +142 -0
  61. package/esm2022/misc/shadow/shadow.mjs +111 -0
  62. package/esm2022/misc/stats-gl/stats-gl.mjs +61 -0
  63. package/esm2022/misc/trail/trail.mjs +209 -0
  64. package/esm2022/misc/trail-texture/inject-trail-texture.mjs +17 -0
  65. package/esm2022/misc/trail-texture/trail-texture.mjs +106 -0
  66. package/esm2022/modifiers/angular-three-soba-modifiers.mjs +5 -0
  67. package/esm2022/modifiers/curve-modifier/curve-modifier.mjs +64 -0
  68. package/esm2022/modifiers/index.mjs +2 -0
  69. package/esm2022/performances/adaptive-dpr/adaptive-dpr.mjs +44 -0
  70. package/esm2022/performances/adaptive-events/adaptive-events.mjs +27 -0
  71. package/esm2022/performances/angular-three-soba-performances.mjs +5 -0
  72. package/esm2022/performances/index.mjs +8 -0
  73. package/esm2022/performances/instances/instances.mjs +220 -0
  74. package/esm2022/performances/instances/position-mesh.mjs +52 -0
  75. package/esm2022/performances/points/points-input.mjs +64 -0
  76. package/esm2022/performances/points/points.mjs +326 -0
  77. package/esm2022/performances/points/position-point.mjs +54 -0
  78. package/esm2022/performances/segments/segment-object.mjs +9 -0
  79. package/esm2022/performances/segments/segments.mjs +182 -0
  80. package/esm2022/shaders/blur-pass/blur-pass.mjs +2 -2
  81. package/esm2022/shaders/caustics/caustics-material.mjs +130 -0
  82. package/esm2022/shaders/caustics/caustics-projection-material.mjs +31 -0
  83. package/esm2022/shaders/convolution-material/convolution-material.mjs +1 -1
  84. package/esm2022/shaders/discard-material/discard-material.mjs +1 -1
  85. package/esm2022/shaders/grid-material/grid-material.mjs +77 -0
  86. package/esm2022/shaders/index.mjs +6 -3
  87. package/esm2022/shaders/mesh-distort-material/mesh-distort-material.mjs +42 -41
  88. package/esm2022/shaders/mesh-reflector-material/mesh-reflector-material.mjs +2 -2
  89. package/esm2022/shaders/mesh-refraction-material/mesh-refraction-material.mjs +2 -2
  90. package/esm2022/shaders/mesh-transmission-material/mesh-transmission-material.mjs +4 -4
  91. package/esm2022/shaders/mesh-wobble-material/mesh-wobble-material.mjs +1 -1
  92. package/esm2022/shaders/shader-material/shader-material.mjs +1 -1
  93. package/esm2022/shaders/soft-shadow-material/soft-shadow-material.mjs +17 -25
  94. package/esm2022/shaders/sparkles-material/sparkles-material.mjs +32 -46
  95. package/esm2022/shaders/spot-light-material/spot-light-material.mjs +7 -7
  96. package/esm2022/shaders/star-field-material/star-field-material.mjs +3 -2
  97. package/esm2022/shaders/wireframe-material/wireframe-material.mjs +247 -0
  98. package/esm2022/staging/accumulative-shadows/accumulative-shadows.mjs +160 -176
  99. package/esm2022/staging/accumulative-shadows/progressive-light-map.mjs +1 -1
  100. package/esm2022/staging/accumulative-shadows/randomized-lights.mjs +126 -128
  101. package/esm2022/staging/backdrop/backdrop.mjs +77 -0
  102. package/esm2022/staging/bb-anchor/bb-anchor.mjs +69 -0
  103. package/esm2022/staging/bounds/bounds.mjs +144 -143
  104. package/esm2022/staging/camera-shake/camera-shake.mjs +86 -80
  105. package/esm2022/staging/center/center.mjs +129 -112
  106. package/esm2022/staging/cloud/cloud.mjs +118 -124
  107. package/esm2022/staging/contact-shadows/contact-shadows.mjs +131 -134
  108. package/esm2022/staging/environment/assets.mjs +12 -12
  109. package/esm2022/staging/environment/environment-cube.mjs +28 -30
  110. package/esm2022/staging/environment/environment-ground.mjs +17 -19
  111. package/esm2022/staging/environment/environment-input.mjs +98 -85
  112. package/esm2022/staging/environment/environment-map.mjs +33 -33
  113. package/esm2022/staging/environment/environment-portal.mjs +75 -97
  114. package/esm2022/staging/environment/environment.mjs +34 -51
  115. package/esm2022/staging/environment/utils.mjs +37 -15
  116. package/esm2022/staging/float/float.mjs +70 -58
  117. package/esm2022/staging/index.mjs +7 -3
  118. package/esm2022/staging/matcap-texture/matcap-texture.mjs +64 -0
  119. package/esm2022/staging/normal-texture/normal-texture.mjs +53 -0
  120. package/esm2022/staging/sky/sky.mjs +85 -80
  121. package/esm2022/staging/sparkles/sparkles.mjs +108 -105
  122. package/esm2022/staging/spot-light/shadow-mesh-input.mjs +63 -0
  123. package/esm2022/staging/spot-light/shadow-mesh.mjs +266 -0
  124. package/esm2022/staging/spot-light/spot-light-input.mjs +67 -58
  125. package/esm2022/staging/spot-light/spot-light.mjs +51 -64
  126. package/esm2022/staging/spot-light/volumetric-mesh.mjs +67 -70
  127. package/esm2022/staging/stage/stage.mjs +305 -290
  128. package/esm2022/staging/stars/stars.mjs +101 -102
  129. package/esm2022/staging/wireframe/wireframe-input.mjs +191 -0
  130. package/esm2022/staging/wireframe/wireframe.mjs +228 -0
  131. package/esm2022/utils/angular-three-soba-utils.mjs +5 -0
  132. package/esm2022/utils/content/content.mjs +15 -0
  133. package/esm2022/utils/index.mjs +2 -0
  134. package/fesm2022/angular-three-soba-abstractions.mjs +514 -1947
  135. package/fesm2022/angular-three-soba-abstractions.mjs.map +1 -1
  136. package/fesm2022/angular-three-soba-cameras.mjs +302 -259
  137. package/fesm2022/angular-three-soba-cameras.mjs.map +1 -1
  138. package/fesm2022/angular-three-soba-controls.mjs +104 -83
  139. package/fesm2022/angular-three-soba-controls.mjs.map +1 -1
  140. package/fesm2022/angular-three-soba-gizmos.mjs +1043 -0
  141. package/fesm2022/angular-three-soba-gizmos.mjs.map +1 -0
  142. package/fesm2022/angular-three-soba-loaders.mjs +121 -117
  143. package/fesm2022/angular-three-soba-loaders.mjs.map +1 -1
  144. package/fesm2022/angular-three-soba-materials.mjs +662 -592
  145. package/fesm2022/angular-three-soba-materials.mjs.map +1 -1
  146. package/fesm2022/angular-three-soba-misc.mjs +2214 -105
  147. package/fesm2022/angular-three-soba-misc.mjs.map +1 -1
  148. package/fesm2022/angular-three-soba-modifiers.mjs +71 -0
  149. package/fesm2022/angular-three-soba-modifiers.mjs.map +1 -0
  150. package/fesm2022/angular-three-soba-performances.mjs +956 -0
  151. package/fesm2022/angular-three-soba-performances.mjs.map +1 -0
  152. package/fesm2022/angular-three-soba-shaders.mjs +549 -252
  153. package/fesm2022/angular-three-soba-shaders.mjs.map +1 -1
  154. package/fesm2022/angular-three-soba-staging.mjs +2899 -2563
  155. package/fesm2022/angular-three-soba-staging.mjs.map +1 -1
  156. package/fesm2022/angular-three-soba-utils.mjs +22 -0
  157. package/fesm2022/angular-three-soba-utils.mjs.map +1 -0
  158. package/gizmos/README.md +3 -0
  159. package/gizmos/gizmo-helper/gizmo-helper.d.ts +69 -0
  160. package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.d.ts +22 -0
  161. package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.d.ts +29 -0
  162. package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube-input.d.ts +33 -0
  163. package/gizmos/gizmo-helper/gizmo-viewcube/gizmo-viewcube.d.ts +10 -0
  164. package/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.d.ts +40 -0
  165. package/gizmos/gizmo-helper/gizmo-viewport/gizmo-viewport.d.ts +30 -0
  166. package/gizmos/index.d.ts +3 -0
  167. package/loaders/gltf-loader/gltf-loader.d.ts +4 -3
  168. package/loaders/loader/loader.d.ts +19 -17
  169. package/loaders/progress/progress.d.ts +1 -1
  170. package/loaders/texture-loader/texture-loader.d.ts +2 -2
  171. package/materials/index.d.ts +1 -0
  172. package/materials/mesh-distort-material/mesh-distort-material.d.ts +25 -15
  173. package/materials/mesh-reflector-material/mesh-reflector-material.d.ts +74 -56
  174. package/materials/mesh-refraction-material/mesh-refraction-material.d.ts +33 -21
  175. package/materials/mesh-transmission-material/mesh-transmission-material.d.ts +55 -39
  176. package/materials/mesh-wobble-material/mesh-wobble-material.d.ts +19 -10
  177. package/materials/point-material/point-material.d.ts +24 -0
  178. package/metadata.json +1 -0
  179. package/misc/animations/animations.d.ts +6 -4
  180. package/misc/caustics/caustics.d.ts +87 -0
  181. package/misc/decal/decal.d.ts +49 -0
  182. package/misc/depth-buffer/depth-buffer.d.ts +2 -2
  183. package/misc/example/example.d.ts +81 -0
  184. package/misc/fbo/fbo.d.ts +2 -2
  185. package/misc/html/html-wrapper.d.ts +559 -0
  186. package/misc/html/html.d.ts +214 -0
  187. package/misc/index.d.ts +9 -0
  188. package/misc/sampler/sampler.d.ts +67 -0
  189. package/misc/shadow/shadow.d.ts +37 -0
  190. package/misc/stats-gl/stats-gl.d.ts +24 -0
  191. package/misc/trail/trail.d.ts +57 -0
  192. package/misc/trail-texture/inject-trail-texture.d.ts +9 -0
  193. package/misc/trail-texture/trail-texture.d.ts +50 -0
  194. package/modifiers/README.md +3 -0
  195. package/modifiers/curve-modifier/curve-modifier.d.ts +23 -0
  196. package/modifiers/index.d.ts +1 -0
  197. package/package.json +31 -16
  198. package/performances/README.md +3 -0
  199. package/performances/adaptive-dpr/adaptive-dpr.d.ts +14 -0
  200. package/{performance/adaptive → performances/adaptive-events}/adaptive-events.d.ts +3 -0
  201. package/performances/index.d.ts +7 -0
  202. package/performances/instances/instances.d.ts +79 -0
  203. package/{performance → performances}/instances/position-mesh.d.ts +1 -1
  204. package/performances/points/points-input.d.ts +32 -0
  205. package/performances/points/points.d.ts +92 -0
  206. package/performances/points/position-point.d.ts +11 -0
  207. package/performances/segments/segment-object.d.ts +7 -0
  208. package/performances/segments/segments.d.ts +124 -0
  209. package/shaders/grid-material/grid-material.d.ts +37 -0
  210. package/shaders/index.d.ts +5 -2
  211. package/shaders/mesh-distort-material/mesh-distort-material.d.ts +147 -2
  212. package/shaders/mesh-transmission-material/mesh-transmission-material.d.ts +1 -1
  213. package/shaders/shader-material/shader-material.d.ts +2 -2
  214. package/shaders/soft-shadow-material/soft-shadow-material.d.ts +10 -1
  215. package/shaders/sparkles-material/sparkles-material.d.ts +15 -1
  216. package/shaders/spot-light-material/spot-light-material.d.ts +11 -2
  217. package/shaders/star-field-material/star-field-material.d.ts +11 -1
  218. package/shaders/wireframe-material/wireframe-material.d.ts +58 -0
  219. package/staging/accumulative-shadows/accumulative-shadows.d.ts +89 -39
  220. package/staging/accumulative-shadows/randomized-lights.d.ts +40 -27
  221. package/staging/backdrop/backdrop.d.ts +30 -0
  222. package/staging/bb-anchor/bb-anchor.d.ts +27 -0
  223. package/staging/bounds/bounds.d.ts +100 -24
  224. package/staging/camera-shake/camera-shake.d.ts +30 -19
  225. package/staging/center/center.d.ts +43 -35
  226. package/staging/cloud/cloud.d.ts +26 -23
  227. package/staging/contact-shadows/contact-shadows.d.ts +41 -28
  228. package/staging/environment/assets.d.ts +9 -9
  229. package/staging/environment/environment-cube.d.ts +9 -5
  230. package/staging/environment/environment-ground.d.ts +7 -7
  231. package/staging/environment/environment-input.d.ts +37 -37
  232. package/staging/environment/environment-map.d.ts +10 -5
  233. package/staging/environment/environment-portal.d.ts +10 -5
  234. package/staging/environment/environment.d.ts +0 -4
  235. package/staging/environment/utils.d.ts +2 -2
  236. package/staging/float/float.d.ts +14 -10
  237. package/staging/index.d.ts +6 -2
  238. package/staging/matcap-texture/matcap-texture.d.ts +13 -0
  239. package/staging/normal-texture/normal-texture.d.ts +16 -0
  240. package/staging/sky/sky.d.ts +28 -21
  241. package/staging/sparkles/sparkles.d.ts +36 -22
  242. package/staging/spot-light/shadow-mesh-input.d.ts +29 -0
  243. package/staging/spot-light/shadow-mesh.d.ts +37 -0
  244. package/staging/spot-light/spot-light-input.d.ts +25 -25
  245. package/staging/spot-light/spot-light.d.ts +31 -15
  246. package/staging/spot-light/volumetric-mesh.d.ts +15 -9
  247. package/staging/stage/stage.d.ts +89 -65
  248. package/staging/stars/stars.d.ts +28 -17
  249. package/staging/wireframe/wireframe-input.d.ts +65 -0
  250. package/staging/wireframe/wireframe.d.ts +28 -0
  251. package/utils/README.md +3 -0
  252. package/utils/content/content.d.ts +8 -0
  253. package/utils/index.d.ts +1 -0
  254. package/web-types.json +1 -0
  255. package/abstractions/catmull-rom-line/catmull-rom-line.d.ts +0 -25
  256. package/abstractions/cubic-bezier-line/cubic-bezier-line.d.ts +0 -25
  257. package/abstractions/gizmo-helper/gizmo-helper.d.ts +0 -34
  258. package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.d.ts +0 -22
  259. package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.d.ts +0 -30
  260. package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.d.ts +0 -32
  261. package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube.d.ts +0 -14
  262. package/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.d.ts +0 -47
  263. package/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport.d.ts +0 -40
  264. package/abstractions/line/line-input.d.ts +0 -42
  265. package/abstractions/line/line.d.ts +0 -35
  266. package/abstractions/quadratic-bezier-line/quadratic-bezier-line.d.ts +0 -23
  267. package/esm2022/abstractions/catmull-rom-line/catmull-rom-line.mjs +0 -131
  268. package/esm2022/abstractions/cubic-bezier-line/cubic-bezier-line.mjs +0 -113
  269. package/esm2022/abstractions/gizmo-helper/gizmo-helper.mjs +0 -210
  270. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/constants.mjs +0 -31
  271. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +0 -95
  272. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +0 -155
  273. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.mjs +0 -62
  274. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube.mjs +0 -80
  275. package/esm2022/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +0 -206
  276. package/esm2022/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport.mjs +0 -273
  277. package/esm2022/abstractions/line/line-input.mjs +0 -113
  278. package/esm2022/abstractions/line/line.mjs +0 -165
  279. package/esm2022/abstractions/quadratic-bezier-line/quadratic-bezier-line.mjs +0 -128
  280. package/esm2022/performance/adaptive/adaptive-dpr.mjs +0 -46
  281. package/esm2022/performance/adaptive/adaptive-events.mjs +0 -31
  282. package/esm2022/performance/angular-three-soba-performance.mjs +0 -5
  283. package/esm2022/performance/detailed/detailed.mjs +0 -61
  284. package/esm2022/performance/index.mjs +0 -7
  285. package/esm2022/performance/instances/instance.mjs +0 -48
  286. package/esm2022/performance/instances/instances.mjs +0 -189
  287. package/esm2022/performance/instances/position-mesh.mjs +0 -52
  288. package/esm2022/performance/stats/stats.mjs +0 -79
  289. package/esm2022/shaders/caustics-material/caustics-material.mjs +0 -128
  290. package/esm2022/shaders/caustics-material/caustics-projection-material.mjs +0 -33
  291. package/esm2022/staging/caustics/caustisc.mjs +0 -384
  292. package/esm2022/staging/spot-light/spot-light-shadow-mesh-input.mjs +0 -57
  293. package/esm2022/staging/spot-light/spot-light-shadow-mesh.mjs +0 -256
  294. package/fesm2022/angular-three-soba-performance.mjs +0 -487
  295. package/fesm2022/angular-three-soba-performance.mjs.map +0 -1
  296. package/performance/README.md +0 -3
  297. package/performance/adaptive/adaptive-dpr.d.ts +0 -8
  298. package/performance/detailed/detailed.d.ts +0 -20
  299. package/performance/index.d.ts +0 -6
  300. package/performance/instances/instance.d.ts +0 -9
  301. package/performance/instances/instances.d.ts +0 -35
  302. package/performance/stats/stats.d.ts +0 -18
  303. package/plugin/generators.json +0 -19
  304. package/plugin/libs/plugin/README.md +0 -11
  305. package/plugin/package.json +0 -9
  306. package/plugin/src/generators/init/compat.d.ts +0 -2
  307. package/plugin/src/generators/init/compat.js +0 -6
  308. package/plugin/src/generators/init/compat.js.map +0 -1
  309. package/plugin/src/generators/init/init.d.ts +0 -4
  310. package/plugin/src/generators/init/init.js +0 -22
  311. package/plugin/src/generators/init/init.js.map +0 -1
  312. package/plugin/src/generators/init/schema.json +0 -6
  313. package/plugin/src/index.d.ts +0 -1
  314. package/plugin/src/index.js +0 -6
  315. package/plugin/src/index.js.map +0 -1
  316. package/staging/caustics/caustisc.d.ts +0 -70
  317. package/staging/spot-light/spot-light-shadow-mesh-input.d.ts +0 -29
  318. package/staging/spot-light/spot-light-shadow-mesh.d.ts +0 -38
  319. /package/{abstractions → gizmos}/gizmo-helper/gizmo-viewcube/constants.d.ts +0 -0
  320. /package/shaders/{caustics-material → caustics}/caustics-material.d.ts +0 -0
  321. /package/shaders/{caustics-material → caustics}/caustics-projection-material.d.ts +0 -0
@@ -1,114 +1,122 @@
1
- import { Component, computed, CUSTOM_ELEMENTS_SCHEMA, effect, EventEmitter, inject, Input, Output, } from '@angular/core';
2
- import { injectBeforeRender, injectNgtRef, NgtArgs, NgtSignalStore, NgtStore } from 'angular-three';
1
+ import { Component, computed, CUSTOM_ELEMENTS_SCHEMA, effect, EventEmitter, Input, Output } from '@angular/core';
2
+ import { injectBeforeRender, injectNgtRef, injectNgtStore, NgtArgs, signalStore, } from 'angular-three';
3
3
  import { OrbitControls } from 'three-stdlib';
4
4
  import * as i0 from "@angular/core";
5
- class NgtsOrbitControls extends NgtSignalStore {
6
- set camera(camera) {
7
- this.set({ camera });
5
+ export class NgtsOrbitControls {
6
+ set _camera(camera) {
7
+ this.inputs.set({ camera });
8
8
  }
9
- set domElement(domElement) {
10
- this.set({ domElement });
9
+ set _domElement(domElement) {
10
+ this.inputs.set({ domElement });
11
11
  }
12
- set makeDefault(makeDefault) {
13
- this.set({ makeDefault });
12
+ set _makeDefault(makeDefault) {
13
+ this.inputs.set({ makeDefault });
14
14
  }
15
- set regress(regress) {
16
- this.set({ regress });
15
+ set _regress(regress) {
16
+ this.inputs.set({ regress });
17
17
  }
18
- set target(target) {
19
- this.set({ target });
18
+ set _target(target) {
19
+ this.inputs.set({ target });
20
20
  }
21
- set enableDamping(enableDamping) {
22
- this.set({ enableDamping });
21
+ set _enableDamping(enableDamping) {
22
+ this.inputs.set({ enableDamping });
23
+ }
24
+ set _keyEvents(keyEvents) {
25
+ this.inputs.set({ keyEvents });
23
26
  }
24
- #store;
25
27
  constructor() {
26
- super({ enableDamping: true, regress: false, makeDefault: false });
28
+ this.inputs = signalStore({
29
+ enableDamping: true,
30
+ regress: false,
31
+ makeDefault: false,
32
+ keyEvents: false,
33
+ });
27
34
  this.controlsRef = injectNgtRef();
28
35
  this.change = new EventEmitter();
29
36
  this.start = new EventEmitter();
30
37
  this.end = new EventEmitter();
31
- this.#store = inject(NgtStore);
38
+ this.store = injectNgtStore();
39
+ this.invalidate = this.store.select('invalidate');
40
+ this.performanceRegress = this.store.select('performance', 'regress');
41
+ this.defaultCamera = this.store.select('camera');
42
+ this.glDomElement = this.store.select('gl', 'domElement');
43
+ this.regress = this.inputs.select('regress');
44
+ this.camera = this.inputs.select('camera');
45
+ this.domElement = this.inputs.select('domElement');
46
+ this.keyEvents = this.inputs.select('keyEvents');
47
+ this.makeDefault = this.inputs.select('makeDefault');
32
48
  this.args = computed(() => [this.controlsRef.nativeElement]);
33
- this.damping = this.select('enableDamping');
49
+ this.enableDamping = this.inputs.select('enableDamping');
34
50
  injectBeforeRender(() => {
35
- const controls = this.controlsRef.untracked;
51
+ const controls = this.controlsRef.nativeElement;
36
52
  if (controls && controls.enabled) {
37
53
  controls.update();
38
54
  }
39
55
  }, { priority: -1 });
40
- this.#setControls();
41
- this.#connectElement();
42
- this.#makeControlsDefault();
43
- this.#setEvents();
56
+ this.setControls();
57
+ this.connectElement();
58
+ this.makeControlsDefault();
59
+ this.setEvents();
44
60
  }
45
- #setControls() {
46
- const camera = this.select('camera');
47
- const defaultCamera = this.#store.select('camera');
48
- const trigger = computed(() => ({ camera: camera(), defaultCamera: defaultCamera() }));
61
+ setControls() {
49
62
  effect(() => {
50
- const { camera, defaultCamera } = trigger();
63
+ const [camera, defaultCamera, controls] = [
64
+ this.camera(),
65
+ this.defaultCamera(),
66
+ this.controlsRef.nativeElement,
67
+ ];
51
68
  const controlsCamera = camera || defaultCamera;
52
- const controls = this.controlsRef.nativeElement;
53
69
  if (!controls || controls.object !== controlsCamera) {
54
70
  this.controlsRef.nativeElement = new OrbitControls(controlsCamera);
55
71
  }
56
- }, { allowSignalWrites: true });
57
- }
58
- #connectElement() {
59
- const glDomElement = this.#store.select('gl', 'domElement');
60
- const domElement = this.select('domElement');
61
- const regress = this.select('regress');
62
- const invalidate = this.#store.select('invalidate');
63
- const trigger = computed(() => {
64
- const eventsSource = this.#store.get('events', 'connected');
65
- return {
66
- controls: this.controlsRef.nativeElement,
67
- domElement: domElement() || eventsSource || glDomElement(),
68
- regress: regress(),
69
- invalidate: invalidate(),
70
- };
71
72
  });
73
+ }
74
+ connectElement() {
72
75
  effect((onCleanup) => {
73
- const { domElement, controls } = trigger();
76
+ const [keyEvents, domElement, controls] = [
77
+ this.keyEvents(),
78
+ this.domElement() || this.store.get('events', 'connected') || this.glDomElement(),
79
+ this.controlsRef.nativeElement,
80
+ this.invalidate(),
81
+ this.regress(),
82
+ ];
74
83
  if (!controls)
75
84
  return;
76
- controls.connect(domElement);
85
+ if (keyEvents) {
86
+ controls.connect(keyEvents === true ? domElement : keyEvents);
87
+ }
88
+ else {
89
+ controls.connect(domElement);
90
+ }
77
91
  onCleanup(() => void controls.dispose());
78
92
  });
79
93
  }
80
- #makeControlsDefault() {
81
- const makeDefault = this.select('makeDefault');
82
- const trigger = computed(() => ({ controls: this.controlsRef.nativeElement, makeDefault: makeDefault() }));
94
+ makeControlsDefault() {
83
95
  effect((onCleanup) => {
84
- const { controls, makeDefault } = trigger();
96
+ const [controls, makeDefault] = [this.controlsRef.nativeElement, this.makeDefault()];
85
97
  if (!controls)
86
98
  return;
87
99
  if (makeDefault) {
88
- const oldControls = this.#store.get('controls');
89
- this.#store.set({ controls });
90
- onCleanup(() => void this.#store.set({ controls: oldControls }));
100
+ const oldControls = this.store.get('controls');
101
+ this.store.set({ controls });
102
+ onCleanup(() => void this.store.set({ controls: oldControls }));
91
103
  }
92
- }, { allowSignalWrites: true });
104
+ });
93
105
  }
94
- #setEvents() {
95
- const invalidate = this.#store.select('invalidate');
96
- const performance = this.#store.select('performance');
97
- const regress = this.select('regress');
98
- const trigger = computed(() => ({
99
- invalidate: invalidate(),
100
- performance: performance(),
101
- regress: regress(),
102
- controls: this.controlsRef.nativeElement,
103
- }));
106
+ setEvents() {
104
107
  effect((onCleanup) => {
105
- const { controls, invalidate, performance, regress } = trigger();
108
+ const [controls, invalidate, performanceRegress, regress] = [
109
+ this.controlsRef.nativeElement,
110
+ this.invalidate(),
111
+ this.performanceRegress(),
112
+ this.regress(),
113
+ ];
106
114
  if (!controls)
107
115
  return;
108
116
  const changeCallback = (e) => {
109
117
  invalidate();
110
118
  if (regress)
111
- performance.regress();
119
+ performanceRegress();
112
120
  if (this.change.observed)
113
121
  this.change.emit(e);
114
122
  };
@@ -128,33 +136,45 @@ class NgtsOrbitControls extends NgtSignalStore {
128
136
  });
129
137
  });
130
138
  }
131
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsOrbitControls, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
132
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: NgtsOrbitControls, isStandalone: true, selector: "ngts-orbit-controls", inputs: { controlsRef: "controlsRef", camera: "camera", domElement: "domElement", makeDefault: "makeDefault", regress: "regress", target: "target", enableDamping: "enableDamping" }, outputs: { change: "change", start: "start", end: "end" }, usesInheritance: true, ngImport: i0, template: ` <ngt-primitive *args="args()" ngtCompound [enableDamping]="damping()" /> `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }] }); }
139
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: NgtsOrbitControls, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
140
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: NgtsOrbitControls, isStandalone: true, selector: "ngts-orbit-controls", inputs: { controlsRef: "controlsRef", _camera: ["camera", "_camera"], _domElement: ["domElement", "_domElement"], _makeDefault: ["makeDefault", "_makeDefault"], _regress: ["regress", "_regress"], _target: ["target", "_target"], _enableDamping: ["enableDamping", "_enableDamping"], _keyEvents: ["keyEvents", "_keyEvents"] }, outputs: { change: "change", start: "start", end: "end" }, ngImport: i0, template: `
141
+ <ngt-primitive *args="args()" ngtCompound [enableDamping]="enableDamping()" />
142
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }] }); }
133
143
  }
134
- export { NgtsOrbitControls };
135
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsOrbitControls, decorators: [{
144
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: NgtsOrbitControls, decorators: [{
136
145
  type: Component,
137
146
  args: [{
138
147
  selector: 'ngts-orbit-controls',
139
148
  standalone: true,
140
- template: ` <ngt-primitive *args="args()" ngtCompound [enableDamping]="damping()" /> `,
149
+ template: `
150
+ <ngt-primitive *args="args()" ngtCompound [enableDamping]="enableDamping()" />
151
+ `,
141
152
  imports: [NgtArgs],
142
153
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
143
154
  }]
144
155
  }], ctorParameters: function () { return []; }, propDecorators: { controlsRef: [{
145
156
  type: Input
146
- }], camera: [{
147
- type: Input
148
- }], domElement: [{
149
- type: Input
150
- }], makeDefault: [{
151
- type: Input
152
- }], regress: [{
153
- type: Input
154
- }], target: [{
155
- type: Input
156
- }], enableDamping: [{
157
- type: Input
157
+ }], _camera: [{
158
+ type: Input,
159
+ args: [{ alias: 'camera' }]
160
+ }], _domElement: [{
161
+ type: Input,
162
+ args: [{ alias: 'domElement' }]
163
+ }], _makeDefault: [{
164
+ type: Input,
165
+ args: [{ alias: 'makeDefault' }]
166
+ }], _regress: [{
167
+ type: Input,
168
+ args: [{ alias: 'regress' }]
169
+ }], _target: [{
170
+ type: Input,
171
+ args: [{ alias: 'target' }]
172
+ }], _enableDamping: [{
173
+ type: Input,
174
+ args: [{ alias: 'enableDamping' }]
175
+ }], _keyEvents: [{
176
+ type: Input,
177
+ args: [{ alias: 'keyEvents' }]
158
178
  }], change: [{
159
179
  type: Output
160
180
  }], start: [{
@@ -162,4 +182,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
162
182
  }], end: [{
163
183
  type: Output
164
184
  }] } });
165
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JiaXQtY29udHJvbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvY29udHJvbHMvc3JjL29yYml0LWNvbnRyb2xzL29yYml0LWNvbnRyb2xzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsUUFBUSxFQUNSLHNCQUFzQixFQUN0QixNQUFNLEVBQ04sWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFDaEgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFpQjdDLE1BT2EsaUJBQWtCLFNBQVEsY0FBc0M7SUFHekUsSUFBYSxNQUFNLENBQUMsTUFBb0I7UUFDcEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELElBQWEsVUFBVSxDQUFDLFVBQXVCO1FBQzNDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFhLFdBQVcsQ0FBQyxXQUFvQjtRQUN6QyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBYSxPQUFPLENBQUMsT0FBZ0I7UUFDakMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQWEsTUFBTSxDQUFDLE1BQXdEO1FBQ3hFLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFhLGFBQWEsQ0FBQyxhQUFz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R1IsaUJBQWlCOzJGQUFqQixpQkFBaUI7a0JBUDdCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSw0RUFBNEU7b0JBQ3RGLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztvQkFDbEIsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ3BDOzBFQUVZLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRU8sTUFBTTtzQkFBbEIsS0FBSztnQkFJTyxVQUFVO3NCQUF0QixLQUFLO2dCQUlPLFdBQVc7c0JBQXZCLEtBQUs7Z0JBSU8sT0FBTztzQkFBbkIsS0FBSztnQkFJTyxNQUFNO3NCQUFsQixLQUFLO2dCQUlPLGFBQWE7c0JBQXpCLEtBQUs7Z0JBSUksTUFBTTtzQkFBZixNQUFNO2dCQUNHLEtBQUs7c0JBQWQsTUFBTTtnQkFDRyxHQUFHO3NCQUFaLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBjb21wdXRlZCxcbiAgICBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuICAgIGVmZmVjdCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbmplY3RCZWZvcmVSZW5kZXIsIGluamVjdE5ndFJlZiwgTmd0QXJncywgTmd0U2lnbmFsU3RvcmUsIE5ndFN0b3JlLCBOZ3RWZWN0b3IzIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBPcmJpdENvbnRyb2xzIH0gZnJvbSAndGhyZWUtc3RkbGliJztcblxuZXhwb3J0IHR5cGUgTmd0c09yYml0Q29udHJvbHNTdGF0ZSA9IHtcbiAgICBjYW1lcmE/OiBUSFJFRS5DYW1lcmE7XG4gICAgZG9tRWxlbWVudD86IEhUTUxFbGVtZW50O1xuICAgIHRhcmdldD86IE5ndFZlY3RvcjM7XG4gICAgbWFrZURlZmF1bHQ6IGJvb2xlYW47XG4gICAgcmVncmVzczogYm9vbGVhbjtcbiAgICBlbmFibGVEYW1waW5nOiBib29sZWFuO1xufTtcblxuZGVjbGFyZSBnbG9iYWwge1xuICAgIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgICAgICAnbmd0cy1vcmJpdC1jb250cm9scyc6IE9yYml0Q29udHJvbHMgJiBOZ3RzT3JiaXRDb250cm9sc1N0YXRlO1xuICAgIH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3RzLW9yYml0LWNvbnRyb2xzJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiBgIDxuZ3QtcHJpbWl0aXZlICphcmdzPVwiYXJncygpXCIgbmd0Q29tcG91bmQgW2VuYWJsZURhbXBpbmddPVwiZGFtcGluZygpXCIgLz4gYCxcbiAgICBpbXBvcnRzOiBbTmd0QXJnc10sXG4gICAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzT3JiaXRDb250cm9scyBleHRlbmRzIE5ndFNpZ25hbFN0b3JlPE5ndHNPcmJpdENvbnRyb2xzU3RhdGU+IHtcbiAgICBASW5wdXQoKSBjb250cm9sc1JlZiA9IGluamVjdE5ndFJlZjxPcmJpdENvbnRyb2xzPigpO1xuXG4gICAgQElucHV0KCkgc2V0IGNhbWVyYShjYW1lcmE6IFRIUkVFLkNhbWVyYSkge1xuICAgICAgICB0aGlzLnNldCh7IGNhbWVyYSB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgZG9tRWxlbWVudChkb21FbGVtZW50OiBIVE1MRWxlbWVudCkge1xuICAgICAgICB0aGlzLnNldCh7IGRvbUVsZW1lbnQgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IG1ha2VEZWZhdWx0KG1ha2VEZWZhdWx0OiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgbWFrZURlZmF1bHQgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHJlZ3Jlc3MocmVncmVzczogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNldCh7IHJlZ3Jlc3MgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHRhcmdldCh0YXJnZXQ6IFRIUkVFLlZlY3RvcjMgfCBQYXJhbWV0ZXJzPFRIUkVFLlZlY3RvcjNbJ3NldCddPikge1xuICAgICAgICB0aGlzLnNldCh7IHRhcmdldCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgZW5hYmxlRGFtcGluZyhlbmFibGVEYW1waW5nOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZW5hYmxlRGFtcGluZyB9KTtcbiAgICB9XG5cbiAgICBAT3V0cHV0KCkgY2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUSFJFRS5FdmVudD4oKTtcbiAgICBAT3V0cHV0KCkgc3RhcnQgPSBuZXcgRXZlbnRFbWl0dGVyPFRIUkVFLkV2ZW50PigpO1xuICAgIEBPdXRwdXQoKSBlbmQgPSBuZXcgRXZlbnRFbWl0dGVyPFRIUkVFLkV2ZW50PigpO1xuXG4gICAgcmVhZG9ubHkgI3N0b3JlID0gaW5qZWN0KE5ndFN0b3JlKTtcblxuICAgIHJlYWRvbmx5IGFyZ3MgPSBjb21wdXRlZCgoKSA9PiBbdGhpcy5jb250cm9sc1JlZi5uYXRpdmVFbGVtZW50XSk7XG4gICAgcmVhZG9ubHkgZGFtcGluZyA9IHRoaXMuc2VsZWN0KCdlbmFibGVEYW1waW5nJyk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoeyBlbmFibGVEYW1waW5nOiB0cnVlLCByZWdyZXNzOiBmYWxzZSwgbWFrZURlZmF1bHQ6IGZhbHNlIH0pO1xuICAgICAgICBpbmplY3RCZWZvcmVSZW5kZXIoXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udHJvbHMgPSB0aGlzLmNvbnRyb2xzUmVmLnVudHJhY2tlZDtcbiAgICAgICAgICAgICAgICBpZiAoY29udHJvbHMgJiYgY29udHJvbHMuZW5hYmxlZCkge1xuICAgICAgICAgICAgICAgICAgICBjb250cm9scy51cGRhdGUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeyBwcmlvcml0eTogLTEgfVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuI3NldENvbnRyb2xzKCk7XG4gICAgICAgIHRoaXMuI2Nvbm5lY3RFbGVtZW50KCk7XG4gICAgICAgIHRoaXMuI21ha2VDb250cm9sc0RlZmF1bHQoKTtcbiAgICAgICAgdGhpcy4jc2V0RXZlbnRzKCk7XG4gICAgfVxuXG4gICAgI3NldENvbnRyb2xzKCkge1xuICAgICAgICBjb25zdCBjYW1lcmEgPSB0aGlzLnNlbGVjdCgnY2FtZXJhJyk7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRDYW1lcmEgPSB0aGlzLiNzdG9yZS5zZWxlY3QoJ2NhbWVyYScpO1xuICAgICAgICBjb25zdCB0cmlnZ2VyID0gY29tcHV0ZWQoKCkgPT4gKHsgY2FtZXJhOiBjYW1lcmEoKSwgZGVmYXVsdENhbWVyYTogZGVmYXVsdENhbWVyYSgpIH0pKTtcblxuICAgICAgICBlZmZlY3QoXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBjYW1lcmEsIGRlZmF1bHRDYW1lcmEgfSA9IHRyaWdnZXIoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjb250cm9sc0NhbWVyYSA9IGNhbWVyYSB8fCBkZWZhdWx0Q2FtZXJhO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRyb2xzID0gdGhpcy5jb250cm9sc1JlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgICAgIGlmICghY29udHJvbHMgfHwgY29udHJvbHMub2JqZWN0ICE9PSBjb250cm9sc0NhbWVyYSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2xzUmVmLm5hdGl2ZUVsZW1lbnQgPSBuZXcgT3JiaXRDb250cm9scyhjb250cm9sc0NhbWVyYSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgICNjb25uZWN0RWxlbWVudCgpIHtcbiAgICAgICAgY29uc3QgZ2xEb21FbGVtZW50ID0gdGhpcy4jc3RvcmUuc2VsZWN0KCdnbCcsICdkb21FbGVtZW50Jyk7XG4gICAgICAgIGNvbnN0IGRvbUVsZW1lbnQgPSB0aGlzLnNlbGVjdCgnZG9tRWxlbWVudCcpO1xuICAgICAgICBjb25zdCByZWdyZXNzID0gdGhpcy5zZWxlY3QoJ3JlZ3Jlc3MnKTtcbiAgICAgICAgY29uc3QgaW52YWxpZGF0ZSA9IHRoaXMuI3N0b3JlLnNlbGVjdCgnaW52YWxpZGF0ZScpO1xuXG4gICAgICAgIGNvbnN0IHRyaWdnZXIgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBldmVudHNTb3VyY2UgPSB0aGlzLiNzdG9yZS5nZXQoJ2V2ZW50cycsICdjb25uZWN0ZWQnKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgY29udHJvbHM6IHRoaXMuY29udHJvbHNSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICBkb21FbGVtZW50OiBkb21FbGVtZW50KCkgfHwgZXZlbnRzU291cmNlIHx8IGdsRG9tRWxlbWVudCgpLFxuICAgICAgICAgICAgICAgIHJlZ3Jlc3M6IHJlZ3Jlc3MoKSxcbiAgICAgICAgICAgICAgICBpbnZhbGlkYXRlOiBpbnZhbGlkYXRlKCksXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcblxuICAgICAgICBlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBkb21FbGVtZW50LCBjb250cm9scyB9ID0gdHJpZ2dlcigpO1xuICAgICAgICAgICAgaWYgKCFjb250cm9scykgcmV0dXJuO1xuICAgICAgICAgICAgY29udHJvbHMuY29ubmVjdChkb21FbGVtZW50KTtcbiAgICAgICAgICAgIG9uQ2xlYW51cCgoKSA9PiB2b2lkIGNvbnRyb2xzLmRpc3Bvc2UoKSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgICNtYWtlQ29udHJvbHNEZWZhdWx0KCkge1xuICAgICAgICBjb25zdCBtYWtlRGVmYXVsdCA9IHRoaXMuc2VsZWN0KCdtYWtlRGVmYXVsdCcpO1xuICAgICAgICBjb25zdCB0cmlnZ2VyID0gY29tcHV0ZWQoKCkgPT4gKHsgY29udHJvbHM6IHRoaXMuY29udHJvbHNSZWYubmF0aXZlRWxlbWVudCwgbWFrZURlZmF1bHQ6IG1ha2VEZWZhdWx0KCkgfSkpO1xuXG4gICAgICAgIGVmZmVjdChcbiAgICAgICAgICAgIChvbkNsZWFudXApID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGNvbnRyb2xzLCBtYWtlRGVmYXVsdCB9ID0gdHJpZ2dlcigpO1xuICAgICAgICAgICAgICAgIGlmICghY29udHJvbHMpIHJldHVybjtcbiAgICAgICAgICAgICAgICBpZiAobWFrZURlZmF1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb2xkQ29udHJvbHMgPSB0aGlzLiNzdG9yZS5nZXQoJ2NvbnRyb2xzJyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuI3N0b3JlLnNldCh7IGNvbnRyb2xzIH0pO1xuICAgICAgICAgICAgICAgICAgICBvbkNsZWFudXAoKCkgPT4gdm9pZCB0aGlzLiNzdG9yZS5zZXQoeyBjb250cm9sczogb2xkQ29udHJvbHMgfSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAjc2V0RXZlbnRzKCkge1xuICAgICAgICBjb25zdCBpbnZhbGlkYXRlID0gdGhpcy4jc3RvcmUuc2VsZWN0KCdpbnZhbGlkYXRlJyk7XG4gICAgICAgIGNvbnN0IHBlcmZvcm1hbmNlID0gdGhpcy4jc3RvcmUuc2VsZWN0KCdwZXJmb3JtYW5jZScpO1xuICAgICAgICBjb25zdCByZWdyZXNzID0gdGhpcy5zZWxlY3QoJ3JlZ3Jlc3MnKTtcblxuICAgICAgICBjb25zdCB0cmlnZ2VyID0gY29tcHV0ZWQoKCkgPT4gKHtcbiAgICAgICAgICAgIGludmFsaWRhdGU6IGludmFsaWRhdGUoKSxcbiAgICAgICAgICAgIHBlcmZvcm1hbmNlOiBwZXJmb3JtYW5jZSgpLFxuICAgICAgICAgICAgcmVncmVzczogcmVncmVzcygpLFxuICAgICAgICAgICAgY29udHJvbHM6IHRoaXMuY29udHJvbHNSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgfSkpO1xuICAgICAgICBlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBjb250cm9scywgaW52YWxpZGF0ZSwgcGVyZm9ybWFuY2UsIHJlZ3Jlc3MgfSA9IHRyaWdnZXIoKTtcbiAgICAgICAgICAgIGlmICghY29udHJvbHMpIHJldHVybjtcbiAgICAgICAgICAgIGNvbnN0IGNoYW5nZUNhbGxiYWNrOiAoZTogVEhSRUUuRXZlbnQpID0+IHZvaWQgPSAoZSkgPT4ge1xuICAgICAgICAgICAgICAgIGludmFsaWRhdGUoKTtcbiAgICAgICAgICAgICAgICBpZiAocmVncmVzcykgcGVyZm9ybWFuY2UucmVncmVzcygpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNoYW5nZS5vYnNlcnZlZCkgdGhpcy5jaGFuZ2UuZW1pdChlKTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0Q2FsbGJhY2sgPSB0aGlzLnN0YXJ0Lm9ic2VydmVkID8gdGhpcy5zdGFydC5lbWl0LmJpbmQodGhpcy5zdGFydCkgOiBudWxsO1xuICAgICAgICAgICAgY29uc3QgZW5kQ2FsbGJhY2sgPSB0aGlzLmVuZC5vYnNlcnZlZCA/IHRoaXMuZW5kLmVtaXQuYmluZCh0aGlzLmVuZCkgOiBudWxsO1xuXG4gICAgICAgICAgICBjb250cm9scy5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBjaGFuZ2VDYWxsYmFjayk7XG4gICAgICAgICAgICBpZiAoc3RhcnRDYWxsYmFjaykgY29udHJvbHMuYWRkRXZlbnRMaXN0ZW5lcignc3RhcnQnLCBzdGFydENhbGxiYWNrKTtcbiAgICAgICAgICAgIGlmIChlbmRDYWxsYmFjaykgY29udHJvbHMuYWRkRXZlbnRMaXN0ZW5lcignZW5kJywgZW5kQ2FsbGJhY2spO1xuXG4gICAgICAgICAgICBvbkNsZWFudXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnRyb2xzLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGNoYW5nZUNhbGxiYWNrKTtcbiAgICAgICAgICAgICAgICBpZiAoc3RhcnRDYWxsYmFjaykgY29udHJvbHMucmVtb3ZlRXZlbnRMaXN0ZW5lcignc3RhcnQnLCBzdGFydENhbGxiYWNrKTtcbiAgICAgICAgICAgICAgICBpZiAoZW5kQ2FsbGJhY2spIGNvbnRyb2xzLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2VuZCcsIGVuZENhbGxiYWNrKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
185
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JiaXQtY29udHJvbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvY29udHJvbHMvc3JjL29yYml0LWNvbnRyb2xzL29yYml0LWNvbnRyb2xzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQ04sa0JBQWtCLEVBQ2xCLFlBQVksRUFDWixjQUFjLEVBQ2QsT0FBTyxFQUNQLFdBQVcsR0FHWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQThCN0MsTUFBTSxPQUFPLGlCQUFpQjtJQVU3QixJQUFnQyxPQUFPLENBQUMsTUFBb0I7UUFDM0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFvQyxXQUFXLENBQUMsVUFBdUI7UUFDdEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFxQyxZQUFZLENBQUMsV0FBb0I7UUFDckUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFpQyxRQUFRLENBQUMsT0FBZ0I7UUFDekQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFnQyxPQUFPLENBQUMsTUFBd0Q7UUFDL0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUF1QyxjQUFjLENBQUMsYUFBc0I7UUFDM0UsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFtQyxVQUFVLENBQUMsU0FBa0I7UUFDL0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFvQkQ7UUF2RFEsV0FBTSxHQUFHLFdBQVcsQ0FBeUI7WUFDcEQsYUFBYSxFQUFFLElBQUk7WUFDbkIsT0FBTyxFQUFFLEtBQUs7WUFDZCxXQUFXLEVBQUUsS0FBSztZQUNsQixTQUFTLEVBQUUsS0FBSztTQUNoQixDQUFDLENBQUM7UUFFTSxnQkFBVyxHQUFHLFlBQVksRUFBaUIsQ0FBQztRQThCM0MsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFlLENBQUM7UUFDekMsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFlLENBQUM7UUFDeEMsUUFBRyxHQUFHLElBQUksWUFBWSxFQUFlLENBQUM7UUFFeEMsVUFBSyxHQUFHLGNBQWMsRUFBRSxDQUFDO1FBQ3pCLGVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM3Qyx1QkFBa0IsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDakUsa0JBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QyxpQkFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQztRQUNyRCxZQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEMsV0FBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RDLGVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM5QyxjQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDNUMsZ0JBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUV4RCxTQUFJLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQ3hELGtCQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFHbkQsa0JBQWtCLENBQ2pCLEdBQUcsRUFBRTtZQUNKLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDO1lBQ2hELElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxPQUFPLEVBQUU7Z0JBQ2pDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQzthQUNsQjtRQUNGLENBQUMsRUFDRCxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUNoQixDQUFDO1FBRUYsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVPLFdBQVc7UUFDbEIsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLE1BQU0sQ0FBQyxNQUFNLEVBQUUsYUFBYSxFQUFFLFFBQVEsQ0FBQyxHQUFHO2dCQUN6QyxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUNiLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYTthQUM5QixDQUFDO1lBQ0YsTUFBTSxjQUFjLEdBQUcsTUFBTSxJQUFJLGFBQWEsQ0FBQztZQUMvQyxJQUFJLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssY0FBYyxFQUFFO2dCQUNwRCxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsR0FBRyxJQUFJLGFBQWEsQ0FBQyxjQUEyQixDQUFDLENBQUM7YUFDaEY7UUFDRixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFTyxjQUFjO1FBQ3JCLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3BCLE1BQU0sQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQyxHQUFHO2dCQUN6QyxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNoQixJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQ2pGLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYTtnQkFDOUIsSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDakIsSUFBSSxDQUFDLE9BQU8sRUFBRTthQUNkLENBQUM7WUFDRixJQUFJLENBQUMsUUFBUTtnQkFBRSxPQUFPO1lBQ3RCLElBQUksU0FBUyxFQUFFO2dCQUNkLFFBQVEsQ0FBQyxPQUFPLENBQUMsU0FBUyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUM5RDtpQkFBTTtnQkFDTixRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQzdCO1lBQ0QsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRU8sbUJBQW1CO1FBQzFCLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3BCLE1BQU0sQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUNyRixJQUFJLENBQUMsUUFBUTtnQkFBRSxPQUFPO1lBQ3RCLElBQUksV0FBVyxFQUFFO2dCQUNoQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDL0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO2dCQUM3QixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDaEU7UUFDRixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFTyxTQUFTO1FBQ2hCLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3BCLE1BQU0sQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxHQUFHO2dCQUMzRCxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWE7Z0JBQzlCLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtnQkFDekIsSUFBSSxDQUFDLE9BQU8sRUFBRTthQUNkLENBQUM7WUFDRixJQUFJLENBQUMsUUFBUTtnQkFBRSxPQUFPO1lBQ3RCLE1BQU0sY0FBYyxHQUE2QixDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUN0RCxVQUFVLEVBQUUsQ0FBQztnQkFDYixJQUFJLE9BQU87b0JBQUUsa0JBQWtCLEVBQUUsQ0FBQztnQkFDbEMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVE7b0JBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0MsQ0FBQyxDQUFDO1lBRUYsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNwRixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBRTVFLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsY0FBYyxDQUFDLENBQUM7WUFDcEQsSUFBSSxhQUFhO2dCQUFFLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUM7WUFDckUsSUFBSSxXQUFXO2dCQUFFLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFFL0QsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDZCxRQUFRLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDO2dCQUN2RCxJQUFJLGFBQWE7b0JBQUUsUUFBUSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQztnQkFDeEUsSUFBSSxXQUFXO29CQUFFLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDbkUsQ0FBQyxDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBbEpXLGlCQUFpQjtrR0FBakIsaUJBQWlCLDhjQU5uQjs7RUFFVCw0REFDUyxPQUFPOzsyRkFHTCxpQkFBaUI7a0JBVDdCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7RUFFVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ2xCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNqQzswRUFTUyxXQUFXO3NCQUFuQixLQUFLO2dCQUUwQixPQUFPO3NCQUF0QyxLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtnQkFJVSxXQUFXO3NCQUE5QyxLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRTtnQkFJTyxZQUFZO3NCQUFoRCxLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRTtnQkFJRSxRQUFRO3NCQUF4QyxLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRTtnQkFJSyxPQUFPO3NCQUF0QyxLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtnQkFJYSxjQUFjO3NCQUFwRCxLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRTtnQkFJRSxVQUFVO3NCQUE1QyxLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRTtnQkFJbkIsTUFBTTtzQkFBZixNQUFNO2dCQUNHLEtBQUs7c0JBQWQsTUFBTTtnQkFDRyxHQUFHO3NCQUFaLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBlZmZlY3QsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcblx0aW5qZWN0QmVmb3JlUmVuZGVyLFxuXHRpbmplY3ROZ3RSZWYsXG5cdGluamVjdE5ndFN0b3JlLFxuXHROZ3RBcmdzLFxuXHRzaWduYWxTdG9yZSxcblx0dHlwZSBOZ3RDYW1lcmEsXG5cdHR5cGUgTmd0VmVjdG9yMyxcbn0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBPcmJpdENvbnRyb2xzIH0gZnJvbSAndGhyZWUtc3RkbGliJztcblxuZXhwb3J0IHR5cGUgTmd0c09yYml0Q29udHJvbHNTdGF0ZSA9IHtcblx0Y2FtZXJhPzogVEhSRUUuQ2FtZXJhO1xuXHRkb21FbGVtZW50PzogSFRNTEVsZW1lbnQ7XG5cdHRhcmdldD86IE5ndFZlY3RvcjM7XG5cdG1ha2VEZWZhdWx0OiBib29sZWFuO1xuXHRyZWdyZXNzOiBib29sZWFuO1xuXHRlbmFibGVEYW1waW5nOiBib29sZWFuO1xuXHRrZXlFdmVudHM6IGJvb2xlYW4gfCBIVE1MRWxlbWVudDtcbn07XG5cbmRlY2xhcmUgZ2xvYmFsIHtcblx0aW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG5cdFx0LyoqXG5cdFx0ICogQGV4dGVuZHMgdGhyZWUtc3RkbGlifE9yYml0Q29udHJvbHNcblx0XHQgKi9cblx0XHQnbmd0cy1vcmJpdC1jb250cm9scyc6IE9yYml0Q29udHJvbHMgJiBOZ3RzT3JiaXRDb250cm9sc1N0YXRlO1xuXHR9XG59XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHMtb3JiaXQtY29udHJvbHMnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtcHJpbWl0aXZlICphcmdzPVwiYXJncygpXCIgbmd0Q29tcG91bmQgW2VuYWJsZURhbXBpbmddPVwiZW5hYmxlRGFtcGluZygpXCIgLz5cblx0YCxcblx0aW1wb3J0czogW05ndEFyZ3NdLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNPcmJpdENvbnRyb2xzIHtcblx0cHJpdmF0ZSBpbnB1dHMgPSBzaWduYWxTdG9yZTxOZ3RzT3JiaXRDb250cm9sc1N0YXRlPih7XG5cdFx0ZW5hYmxlRGFtcGluZzogdHJ1ZSxcblx0XHRyZWdyZXNzOiBmYWxzZSxcblx0XHRtYWtlRGVmYXVsdDogZmFsc2UsXG5cdFx0a2V5RXZlbnRzOiBmYWxzZSxcblx0fSk7XG5cblx0QElucHV0KCkgY29udHJvbHNSZWYgPSBpbmplY3ROZ3RSZWY8T3JiaXRDb250cm9scz4oKTtcblxuXHRASW5wdXQoeyBhbGlhczogJ2NhbWVyYScgfSkgc2V0IF9jYW1lcmEoY2FtZXJhOiBUSFJFRS5DYW1lcmEpIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBjYW1lcmEgfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ2RvbUVsZW1lbnQnIH0pIHNldCBfZG9tRWxlbWVudChkb21FbGVtZW50OiBIVE1MRWxlbWVudCkge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IGRvbUVsZW1lbnQgfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ21ha2VEZWZhdWx0JyB9KSBzZXQgX21ha2VEZWZhdWx0KG1ha2VEZWZhdWx0OiBib29sZWFuKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgbWFrZURlZmF1bHQgfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ3JlZ3Jlc3MnIH0pIHNldCBfcmVncmVzcyhyZWdyZXNzOiBib29sZWFuKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgcmVncmVzcyB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAndGFyZ2V0JyB9KSBzZXQgX3RhcmdldCh0YXJnZXQ6IFRIUkVFLlZlY3RvcjMgfCBQYXJhbWV0ZXJzPFRIUkVFLlZlY3RvcjNbJ3NldCddPikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IHRhcmdldCB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnZW5hYmxlRGFtcGluZycgfSkgc2V0IF9lbmFibGVEYW1waW5nKGVuYWJsZURhbXBpbmc6IGJvb2xlYW4pIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBlbmFibGVEYW1waW5nIH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICdrZXlFdmVudHMnIH0pIHNldCBfa2V5RXZlbnRzKGtleUV2ZW50czogYm9vbGVhbikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IGtleUV2ZW50cyB9KTtcblx0fVxuXG5cdEBPdXRwdXQoKSBjaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFRIUkVFLkV2ZW50PigpO1xuXHRAT3V0cHV0KCkgc3RhcnQgPSBuZXcgRXZlbnRFbWl0dGVyPFRIUkVFLkV2ZW50PigpO1xuXHRAT3V0cHV0KCkgZW5kID0gbmV3IEV2ZW50RW1pdHRlcjxUSFJFRS5FdmVudD4oKTtcblxuXHRwcml2YXRlIHN0b3JlID0gaW5qZWN0Tmd0U3RvcmUoKTtcblx0cHJpdmF0ZSBpbnZhbGlkYXRlID0gdGhpcy5zdG9yZS5zZWxlY3QoJ2ludmFsaWRhdGUnKTtcblx0cHJpdmF0ZSBwZXJmb3JtYW5jZVJlZ3Jlc3MgPSB0aGlzLnN0b3JlLnNlbGVjdCgncGVyZm9ybWFuY2UnLCAncmVncmVzcycpO1xuXHRwcml2YXRlIGRlZmF1bHRDYW1lcmEgPSB0aGlzLnN0b3JlLnNlbGVjdCgnY2FtZXJhJyk7XG5cdHByaXZhdGUgZ2xEb21FbGVtZW50ID0gdGhpcy5zdG9yZS5zZWxlY3QoJ2dsJywgJ2RvbUVsZW1lbnQnKTtcblx0cHJpdmF0ZSByZWdyZXNzID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdyZWdyZXNzJyk7XG5cdHByaXZhdGUgY2FtZXJhID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdjYW1lcmEnKTtcblx0cHJpdmF0ZSBkb21FbGVtZW50ID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdkb21FbGVtZW50Jyk7XG5cdHByaXZhdGUga2V5RXZlbnRzID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdrZXlFdmVudHMnKTtcblx0cHJpdmF0ZSBtYWtlRGVmYXVsdCA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnbWFrZURlZmF1bHQnKTtcblxuXHRhcmdzID0gY29tcHV0ZWQoKCkgPT4gW3RoaXMuY29udHJvbHNSZWYubmF0aXZlRWxlbWVudF0pO1xuXHRlbmFibGVEYW1waW5nID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdlbmFibGVEYW1waW5nJyk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0aW5qZWN0QmVmb3JlUmVuZGVyKFxuXHRcdFx0KCkgPT4ge1xuXHRcdFx0XHRjb25zdCBjb250cm9scyA9IHRoaXMuY29udHJvbHNSZWYubmF0aXZlRWxlbWVudDtcblx0XHRcdFx0aWYgKGNvbnRyb2xzICYmIGNvbnRyb2xzLmVuYWJsZWQpIHtcblx0XHRcdFx0XHRjb250cm9scy51cGRhdGUoKTtcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHRcdHsgcHJpb3JpdHk6IC0xIH0sXG5cdFx0KTtcblxuXHRcdHRoaXMuc2V0Q29udHJvbHMoKTtcblx0XHR0aGlzLmNvbm5lY3RFbGVtZW50KCk7XG5cdFx0dGhpcy5tYWtlQ29udHJvbHNEZWZhdWx0KCk7XG5cdFx0dGhpcy5zZXRFdmVudHMoKTtcblx0fVxuXG5cdHByaXZhdGUgc2V0Q29udHJvbHMoKSB7XG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdGNvbnN0IFtjYW1lcmEsIGRlZmF1bHRDYW1lcmEsIGNvbnRyb2xzXSA9IFtcblx0XHRcdFx0dGhpcy5jYW1lcmEoKSxcblx0XHRcdFx0dGhpcy5kZWZhdWx0Q2FtZXJhKCksXG5cdFx0XHRcdHRoaXMuY29udHJvbHNSZWYubmF0aXZlRWxlbWVudCxcblx0XHRcdF07XG5cdFx0XHRjb25zdCBjb250cm9sc0NhbWVyYSA9IGNhbWVyYSB8fCBkZWZhdWx0Q2FtZXJhO1xuXHRcdFx0aWYgKCFjb250cm9scyB8fCBjb250cm9scy5vYmplY3QgIT09IGNvbnRyb2xzQ2FtZXJhKSB7XG5cdFx0XHRcdHRoaXMuY29udHJvbHNSZWYubmF0aXZlRWxlbWVudCA9IG5ldyBPcmJpdENvbnRyb2xzKGNvbnRyb2xzQ2FtZXJhIGFzIE5ndENhbWVyYSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIGNvbm5lY3RFbGVtZW50KCkge1xuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBba2V5RXZlbnRzLCBkb21FbGVtZW50LCBjb250cm9sc10gPSBbXG5cdFx0XHRcdHRoaXMua2V5RXZlbnRzKCksXG5cdFx0XHRcdHRoaXMuZG9tRWxlbWVudCgpIHx8IHRoaXMuc3RvcmUuZ2V0KCdldmVudHMnLCAnY29ubmVjdGVkJykgfHwgdGhpcy5nbERvbUVsZW1lbnQoKSxcblx0XHRcdFx0dGhpcy5jb250cm9sc1JlZi5uYXRpdmVFbGVtZW50LFxuXHRcdFx0XHR0aGlzLmludmFsaWRhdGUoKSxcblx0XHRcdFx0dGhpcy5yZWdyZXNzKCksXG5cdFx0XHRdO1xuXHRcdFx0aWYgKCFjb250cm9scykgcmV0dXJuO1xuXHRcdFx0aWYgKGtleUV2ZW50cykge1xuXHRcdFx0XHRjb250cm9scy5jb25uZWN0KGtleUV2ZW50cyA9PT0gdHJ1ZSA/IGRvbUVsZW1lbnQgOiBrZXlFdmVudHMpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y29udHJvbHMuY29ubmVjdChkb21FbGVtZW50KTtcblx0XHRcdH1cblx0XHRcdG9uQ2xlYW51cCgoKSA9PiB2b2lkIGNvbnRyb2xzLmRpc3Bvc2UoKSk7XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIG1ha2VDb250cm9sc0RlZmF1bHQoKSB7XG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IFtjb250cm9scywgbWFrZURlZmF1bHRdID0gW3RoaXMuY29udHJvbHNSZWYubmF0aXZlRWxlbWVudCwgdGhpcy5tYWtlRGVmYXVsdCgpXTtcblx0XHRcdGlmICghY29udHJvbHMpIHJldHVybjtcblx0XHRcdGlmIChtYWtlRGVmYXVsdCkge1xuXHRcdFx0XHRjb25zdCBvbGRDb250cm9scyA9IHRoaXMuc3RvcmUuZ2V0KCdjb250cm9scycpO1xuXHRcdFx0XHR0aGlzLnN0b3JlLnNldCh7IGNvbnRyb2xzIH0pO1xuXHRcdFx0XHRvbkNsZWFudXAoKCkgPT4gdm9pZCB0aGlzLnN0b3JlLnNldCh7IGNvbnRyb2xzOiBvbGRDb250cm9scyB9KSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIHNldEV2ZW50cygpIHtcblx0XHRlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuXHRcdFx0Y29uc3QgW2NvbnRyb2xzLCBpbnZhbGlkYXRlLCBwZXJmb3JtYW5jZVJlZ3Jlc3MsIHJlZ3Jlc3NdID0gW1xuXHRcdFx0XHR0aGlzLmNvbnRyb2xzUmVmLm5hdGl2ZUVsZW1lbnQsXG5cdFx0XHRcdHRoaXMuaW52YWxpZGF0ZSgpLFxuXHRcdFx0XHR0aGlzLnBlcmZvcm1hbmNlUmVncmVzcygpLFxuXHRcdFx0XHR0aGlzLnJlZ3Jlc3MoKSxcblx0XHRcdF07XG5cdFx0XHRpZiAoIWNvbnRyb2xzKSByZXR1cm47XG5cdFx0XHRjb25zdCBjaGFuZ2VDYWxsYmFjazogKGU6IFRIUkVFLkV2ZW50KSA9PiB2b2lkID0gKGUpID0+IHtcblx0XHRcdFx0aW52YWxpZGF0ZSgpO1xuXHRcdFx0XHRpZiAocmVncmVzcykgcGVyZm9ybWFuY2VSZWdyZXNzKCk7XG5cdFx0XHRcdGlmICh0aGlzLmNoYW5nZS5vYnNlcnZlZCkgdGhpcy5jaGFuZ2UuZW1pdChlKTtcblx0XHRcdH07XG5cblx0XHRcdGNvbnN0IHN0YXJ0Q2FsbGJhY2sgPSB0aGlzLnN0YXJ0Lm9ic2VydmVkID8gdGhpcy5zdGFydC5lbWl0LmJpbmQodGhpcy5zdGFydCkgOiBudWxsO1xuXHRcdFx0Y29uc3QgZW5kQ2FsbGJhY2sgPSB0aGlzLmVuZC5vYnNlcnZlZCA/IHRoaXMuZW5kLmVtaXQuYmluZCh0aGlzLmVuZCkgOiBudWxsO1xuXG5cdFx0XHRjb250cm9scy5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBjaGFuZ2VDYWxsYmFjayk7XG5cdFx0XHRpZiAoc3RhcnRDYWxsYmFjaykgY29udHJvbHMuYWRkRXZlbnRMaXN0ZW5lcignc3RhcnQnLCBzdGFydENhbGxiYWNrKTtcblx0XHRcdGlmIChlbmRDYWxsYmFjaykgY29udHJvbHMuYWRkRXZlbnRMaXN0ZW5lcignZW5kJywgZW5kQ2FsbGJhY2spO1xuXG5cdFx0XHRvbkNsZWFudXAoKCkgPT4ge1xuXHRcdFx0XHRjb250cm9scy5yZW1vdmVFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBjaGFuZ2VDYWxsYmFjayk7XG5cdFx0XHRcdGlmIChzdGFydENhbGxiYWNrKSBjb250cm9scy5yZW1vdmVFdmVudExpc3RlbmVyKCdzdGFydCcsIHN0YXJ0Q2FsbGJhY2spO1xuXHRcdFx0XHRpZiAoZW5kQ2FsbGJhY2spIGNvbnRyb2xzLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2VuZCcsIGVuZENhbGxiYWNrKTtcblx0XHRcdH0pO1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10aHJlZS1zb2JhLWdpem1vcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvc29iYS9naXptb3Mvc3JjL2FuZ3VsYXItdGhyZWUtc29iYS1naXptb3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
@@ -0,0 +1,197 @@
1
+ import { NgTemplateOutlet } from '@angular/common';
2
+ import { CUSTOM_ELEMENTS_SCHEMA, Component, ContentChild, EventEmitter, Input, Output, TemplateRef, computed, effect, forwardRef, } from '@angular/core';
3
+ import { NgtPortal, NgtPortalContent, createInjectionToken, extend, injectBeforeRender, injectNgtRef, injectNgtStore, signalStore, } from 'angular-three';
4
+ import { NgtsOrthographicCamera } from 'angular-three-soba/cameras';
5
+ import { NgtsSobaContent } from 'angular-three-soba/utils';
6
+ import { Group, Matrix4, Object3D, OrthographicCamera, Quaternion, Vector3 } from 'three';
7
+ import { OrbitControls } from 'three-stdlib';
8
+ import * as i0 from "@angular/core";
9
+ const isOrbitControls = (controls) => {
10
+ return 'minPolarAngle' in controls;
11
+ };
12
+ extend({ Group });
13
+ export const [injectNgtsGizmoHelperApi, provideNgtsGizmoHelperApi] = createInjectionToken((gizmoHelper) => gizmoHelper.api, { isRoot: false, deps: [forwardRef(() => NgtsGizmoHelper)] });
14
+ export class NgtsGizmoHelper {
15
+ set _alignment(alignment) {
16
+ this.inputs.set({ alignment });
17
+ }
18
+ set _margin(margin) {
19
+ this.inputs.set({ margin });
20
+ }
21
+ set _renderPriority(renderPriority) {
22
+ this.inputs.set({ renderPriority });
23
+ }
24
+ set _autoClear(autoClear) {
25
+ this.inputs.set({ autoClear });
26
+ }
27
+ constructor() {
28
+ this.inputs = signalStore({
29
+ alignment: 'bottom-right',
30
+ margin: [80, 80],
31
+ renderPriority: 1,
32
+ });
33
+ this.gizmoRef = injectNgtRef();
34
+ this.update = new EventEmitter();
35
+ this.store = injectNgtStore();
36
+ this.mainCamera = this.store.select('camera');
37
+ // @ts-expect-error
38
+ this.defaultControls = this.store.select('controls');
39
+ this.invalidate = this.store.select('invalidate');
40
+ this.size = this.store.select('size');
41
+ this.animating = false;
42
+ this.q1 = new Quaternion();
43
+ this.q2 = new Quaternion();
44
+ this.turnRate = 2 * Math.PI; // turn rate in angles per second
45
+ this.matrix = new Matrix4();
46
+ this.radius = 0;
47
+ this.focusPoint = new Vector3(0, 0, 0);
48
+ this.defaultUp = new Vector3(0, 0, 0);
49
+ this.target = new Vector3();
50
+ this.targetPosition = new Vector3();
51
+ this.dummy = new Object3D();
52
+ this.margin = this.inputs.select('margin');
53
+ this.alignment = this.inputs.select('alignment');
54
+ this.virtualCamRef = injectNgtRef();
55
+ this.renderPriority = this.inputs.select('renderPriority');
56
+ this.gizmoPosition = computed(() => {
57
+ const [{ width, height }, [marginX, marginY], alignment] = [this.size(), this.margin(), this.alignment()];
58
+ const x = alignment.endsWith('-center')
59
+ ? 0
60
+ : alignment.endsWith('-left')
61
+ ? -width / 2 + marginX
62
+ : width / 2 - marginX;
63
+ const y = alignment.startsWith('center-')
64
+ ? 0
65
+ : alignment.startsWith('top-')
66
+ ? height / 2 - marginY
67
+ : -height / 2 + marginY;
68
+ return [x, y, 0];
69
+ });
70
+ this.api = {
71
+ tweenCamera: (direction) => {
72
+ const [defaultControls, mainCamera, invalidate] = [
73
+ this.defaultControls(),
74
+ this.mainCamera(),
75
+ this.invalidate(),
76
+ ];
77
+ this.animating = true;
78
+ if (defaultControls)
79
+ this.focusPoint = defaultControls?.target;
80
+ this.radius = mainCamera.position.distanceTo(this.target);
81
+ // Rotate from current camera orientation
82
+ this.q1.copy(mainCamera.quaternion);
83
+ // To new current camera orientation
84
+ this.targetPosition.copy(direction).multiplyScalar(this.radius).add(this.target);
85
+ this.dummy.lookAt(this.targetPosition);
86
+ this.dummy.up.copy(mainCamera.up);
87
+ this.q2.copy(this.dummy.quaternion);
88
+ invalidate();
89
+ },
90
+ };
91
+ this.trackMainCameraUp();
92
+ this.beforeRender();
93
+ }
94
+ trackMainCameraUp() {
95
+ effect(() => {
96
+ const mainCamera = this.mainCamera();
97
+ this.defaultUp.copy(mainCamera.up);
98
+ });
99
+ }
100
+ beforeRender() {
101
+ injectBeforeRender(({ delta }) => {
102
+ const [gizmo, virtualCam, defaultControls, mainCamera, invalidate] = [
103
+ this.gizmoRef.nativeElement,
104
+ this.virtualCamRef.nativeElement,
105
+ this.defaultControls(),
106
+ this.mainCamera(),
107
+ this.invalidate(),
108
+ ];
109
+ if (gizmo && virtualCam) {
110
+ // Animate step
111
+ if (this.animating) {
112
+ if (this.q1.angleTo(this.q2) < 0.01) {
113
+ this.animating = false;
114
+ // Orbit controls uses UP vector as the orbit axes,
115
+ // so we need to reset it after the animation is done
116
+ // moving it around for the controls to work correctly
117
+ if (isOrbitControls(defaultControls)) {
118
+ mainCamera.up.copy(this.defaultUp);
119
+ }
120
+ }
121
+ else {
122
+ const step = delta * this.turnRate;
123
+ // animate position by doing a slerp and then scaling the position on the unit sphere
124
+ this.q1.rotateTowards(this.q2, step);
125
+ // animate orientation
126
+ mainCamera.position
127
+ .set(0, 0, 1)
128
+ .applyQuaternion(this.q1)
129
+ .multiplyScalar(this.radius)
130
+ .add(this.focusPoint);
131
+ mainCamera.up.set(0, 1, 0).applyQuaternion(this.q1).normalize();
132
+ mainCamera.quaternion.copy(this.q1);
133
+ if (this.update.observed)
134
+ this.update.emit();
135
+ else if (defaultControls)
136
+ defaultControls.update();
137
+ invalidate();
138
+ }
139
+ }
140
+ // Sync Gizmo with main camera orientation
141
+ this.matrix.copy(mainCamera.matrix).invert();
142
+ gizmo.quaternion.setFromRotationMatrix(this.matrix);
143
+ }
144
+ });
145
+ }
146
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: NgtsGizmoHelper, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
147
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: NgtsGizmoHelper, isStandalone: true, selector: "ngts-gizmo-helper", inputs: { gizmoRef: "gizmoRef", _alignment: ["alignment", "_alignment"], _margin: ["margin", "_margin"], _renderPriority: ["renderPriority", "_renderPriority"], _autoClear: ["autoClear", "_autoClear"] }, outputs: { update: "update" }, providers: [provideNgtsGizmoHelperApi()], queries: [{ propertyName: "content", first: true, predicate: NgtsSobaContent, descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: `
148
+ <ngt-portal [renderPriority]="renderPriority()">
149
+ <ng-template ngtPortalContent>
150
+ <ngts-orthographic-camera [makeDefault]="true" [position]="[0, 0, 200]" [cameraRef]="virtualCamRef" />
151
+ <ngt-group [ref]="gizmoRef" [position]="gizmoPosition()">
152
+ <ng-container *ngTemplateOutlet="content" />
153
+ </ngt-group>
154
+ </ng-template>
155
+ </ngt-portal>
156
+ `, isInline: true, dependencies: [{ kind: "component", type: NgtPortal, selector: "ngt-portal", inputs: ["container", "state", "autoRender", "autoRenderPriority"], outputs: ["beforeRender"] }, { kind: "directive", type: NgtPortalContent, selector: "ng-template[ngtPortalContent]" }, { kind: "component", type: NgtsOrthographicCamera, selector: "ngts-orthographic-camera", inputs: ["left", "right", "top", "bottom"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
157
+ }
158
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: NgtsGizmoHelper, decorators: [{
159
+ type: Component,
160
+ args: [{
161
+ selector: 'ngts-gizmo-helper',
162
+ standalone: true,
163
+ template: `
164
+ <ngt-portal [renderPriority]="renderPriority()">
165
+ <ng-template ngtPortalContent>
166
+ <ngts-orthographic-camera [makeDefault]="true" [position]="[0, 0, 200]" [cameraRef]="virtualCamRef" />
167
+ <ngt-group [ref]="gizmoRef" [position]="gizmoPosition()">
168
+ <ng-container *ngTemplateOutlet="content" />
169
+ </ngt-group>
170
+ </ng-template>
171
+ </ngt-portal>
172
+ `,
173
+ imports: [NgtPortal, NgtPortalContent, NgtsOrthographicCamera, NgTemplateOutlet],
174
+ providers: [provideNgtsGizmoHelperApi()],
175
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
176
+ }]
177
+ }], ctorParameters: function () { return []; }, propDecorators: { gizmoRef: [{
178
+ type: Input
179
+ }], _alignment: [{
180
+ type: Input,
181
+ args: [{ alias: 'alignment' }]
182
+ }], _margin: [{
183
+ type: Input,
184
+ args: [{ alias: 'margin' }]
185
+ }], _renderPriority: [{
186
+ type: Input,
187
+ args: [{ alias: 'renderPriority' }]
188
+ }], _autoClear: [{
189
+ type: Input,
190
+ args: [{ alias: 'autoClear' }]
191
+ }], update: [{
192
+ type: Output
193
+ }], content: [{
194
+ type: ContentChild,
195
+ args: [NgtsSobaContent, { static: true, read: TemplateRef }]
196
+ }] } });
197
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l6bW8taGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL2dpem1vcy9zcmMvZ2l6bW8taGVscGVyL2dpem1vLWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQ04sc0JBQXNCLEVBQ3RCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFFBQVEsRUFDUixNQUFNLEVBQ04sVUFBVSxHQUVWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLG9CQUFvQixFQUNwQixNQUFNLEVBQ04sa0JBQWtCLEVBQ2xCLFlBQVksRUFDWixjQUFjLEVBQ2QsV0FBVyxHQUVYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsa0JBQWtCLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUMxRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQW9CN0MsTUFBTSxlQUFlLEdBQUcsQ0FBQyxRQUF1QixFQUE2QixFQUFFO0lBQzlFLE9BQU8sZUFBZSxJQUFLLFFBQTBCLENBQUM7QUFDdkQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztBQVFsQixNQUFNLENBQUMsTUFBTSxDQUFDLHdCQUF3QixFQUFFLHlCQUF5QixDQUFDLEdBQUcsb0JBQW9CLENBQ3hGLENBQUMsV0FBNEIsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFDakQsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxFQUFFLENBQzVELENBQUM7QUFtQkYsTUFBTSxPQUFPLGVBQWU7SUFTM0IsSUFBbUMsVUFBVSxDQUM1QyxTQVNlO1FBRWYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFnQyxPQUFPLENBQUMsTUFBd0I7UUFDL0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUF3QyxlQUFlLENBQUMsY0FBc0I7UUFDN0UsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFtQyxVQUFVLENBQUMsU0FBa0I7UUFDL0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUF5RUQ7UUExR1EsV0FBTSxHQUFHLFdBQVcsQ0FBdUI7WUFDbEQsU0FBUyxFQUFFLGNBQWM7WUFDekIsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUNoQixjQUFjLEVBQUUsQ0FBQztTQUNqQixDQUFDLENBQUM7UUFFTSxhQUFRLEdBQUcsWUFBWSxFQUFTLENBQUM7UUE2QmhDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBSTlCLFVBQUssR0FBRyxjQUFjLEVBQUUsQ0FBQztRQUN6QixlQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakQsbUJBQW1CO1FBQ1gsb0JBQWUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQTBCLENBQUM7UUFDekUsZUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzdDLFNBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVqQyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLE9BQUUsR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ3RCLE9BQUUsR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ3RCLGFBQVEsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLGlDQUFpQztRQUN6RCxXQUFNLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUV2QixXQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsZUFBVSxHQUFHLElBQUksT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbEMsY0FBUyxHQUFHLElBQUksT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDakMsV0FBTSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDdkIsbUJBQWMsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQy9CLFVBQUssR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBRXZCLFdBQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0QyxjQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFcEQsa0JBQWEsR0FBRyxZQUFZLEVBQXNCLENBQUM7UUFDbkQsbUJBQWMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRXRELGtCQUFhLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUM3QixNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1lBQzFHLE1BQU0sQ0FBQyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDO2dCQUN0QyxDQUFDLENBQUMsQ0FBQztnQkFDSCxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7b0JBQzdCLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLEdBQUcsT0FBTztvQkFDdEIsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDO1lBQ3ZCLE1BQU0sQ0FBQyxHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDO2dCQUN4QyxDQUFDLENBQUMsQ0FBQztnQkFDSCxDQUFDLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7b0JBQzlCLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLE9BQU87b0JBQ3RCLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDO1lBQ3pCLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUFDO1FBRUgsUUFBRyxHQUFHO1lBQ0wsV0FBVyxFQUFFLENBQUMsU0FBa0IsRUFBRSxFQUFFO2dCQUNuQyxNQUFNLENBQUMsZUFBZSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsR0FBRztvQkFDakQsSUFBSSxDQUFDLGVBQWUsRUFBRTtvQkFDdEIsSUFBSSxDQUFDLFVBQVUsRUFBRTtvQkFDakIsSUFBSSxDQUFDLFVBQVUsRUFBRTtpQkFDakIsQ0FBQztnQkFDRixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztnQkFDdEIsSUFBSSxlQUFlO29CQUFFLElBQUksQ0FBQyxVQUFVLEdBQUcsZUFBZSxFQUFFLE1BQU0sQ0FBQztnQkFDL0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBRTFELHlDQUF5QztnQkFDekMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUVwQyxvQ0FBb0M7Z0JBQ3BDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFFakYsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUN2QyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUVsQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUVwQyxVQUFVLEVBQUUsQ0FBQztZQUNkLENBQUM7U0FDRCxDQUFDO1FBR0QsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFTyxpQkFBaUI7UUFDeEIsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRU8sWUFBWTtRQUNuQixrQkFBa0IsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNoQyxNQUFNLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxHQUFHO2dCQUNwRSxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWE7Z0JBQzNCLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYTtnQkFDaEMsSUFBSSxDQUFDLGVBQWUsRUFBRTtnQkFDdEIsSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDakIsSUFBSSxDQUFDLFVBQVUsRUFBRTthQUNqQixDQUFDO1lBRUYsSUFBSSxLQUFLLElBQUksVUFBVSxFQUFFO2dCQUN4QixlQUFlO2dCQUNmLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtvQkFDbkIsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFO3dCQUNwQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQzt3QkFDdkIsbURBQW1EO3dCQUNuRCxxREFBcUQ7d0JBQ3JELHNEQUFzRDt3QkFDdEQsSUFBSSxlQUFlLENBQUMsZUFBZSxDQUFDLEVBQUU7NEJBQ3JDLFVBQVUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzt5QkFDbkM7cUJBQ0Q7eUJBQU07d0JBQ04sTUFBTSxJQUFJLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7d0JBQ25DLHFGQUFxRjt3QkFDckYsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQzt3QkFDckMsc0JBQXNCO3dCQUN0QixVQUFVLENBQUMsUUFBUTs2QkFDakIsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDOzZCQUNaLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDOzZCQUN4QixjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQzs2QkFDM0IsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzt3QkFDdkIsVUFBVSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO3dCQUNoRSxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7d0JBQ3BDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFROzRCQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7NkJBQ3hDLElBQUksZUFBZTs0QkFBRSxlQUFlLENBQUMsTUFBTSxFQUFFLENBQUM7d0JBQ25ELFVBQVUsRUFBRSxDQUFDO3FCQUNiO2lCQUNEO2dCQUVELDBDQUEwQztnQkFDMUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUM3QyxLQUFLLENBQUMsVUFBVSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUNwRDtRQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs4R0FuS1csZUFBZTtrR0FBZixlQUFlLDJTQUhoQixDQUFDLHlCQUF5QixFQUFFLENBQUMsK0RBeUMxQixlQUFlLDJCQUF3QixXQUFXLDJDQXBEdEQ7Ozs7Ozs7OztFQVNULDREQUNTLFNBQVMsc0pBQUUsZ0JBQWdCLDBFQUFFLHNCQUFzQixpSEFBRSxnQkFBZ0I7OzJGQUluRSxlQUFlO2tCQWpCM0IsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7Ozs7Ozs7RUFTVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsc0JBQXNCLEVBQUUsZ0JBQWdCLENBQUM7b0JBQ2hGLFNBQVMsRUFBRSxDQUFDLHlCQUF5QixFQUFFLENBQUM7b0JBQ3hDLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNqQzswRUFRUyxRQUFRO3NCQUFoQixLQUFLO2dCQUU2QixVQUFVO3NCQUE1QyxLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRTtnQkFlRyxPQUFPO3NCQUF0QyxLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtnQkFJYyxlQUFlO3NCQUF0RCxLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFO2dCQUlDLFVBQVU7c0JBQTVDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFO2dCQUluQixNQUFNO3NCQUFmLE1BQU07Z0JBRTZELE9BQU87c0JBQTFFLFlBQVk7dUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuXHRDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuXHRDb21wb25lbnQsXG5cdENvbnRlbnRDaGlsZCxcblx0RXZlbnRFbWl0dGVyLFxuXHRJbnB1dCxcblx0T3V0cHV0LFxuXHRUZW1wbGF0ZVJlZixcblx0Y29tcHV0ZWQsXG5cdGVmZmVjdCxcblx0Zm9yd2FyZFJlZixcblx0dHlwZSBTaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcblx0Tmd0UG9ydGFsLFxuXHROZ3RQb3J0YWxDb250ZW50LFxuXHRjcmVhdGVJbmplY3Rpb25Ub2tlbixcblx0ZXh0ZW5kLFxuXHRpbmplY3RCZWZvcmVSZW5kZXIsXG5cdGluamVjdE5ndFJlZixcblx0aW5qZWN0Tmd0U3RvcmUsXG5cdHNpZ25hbFN0b3JlLFxuXHR0eXBlIE5ndEdyb3VwLFxufSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IE5ndHNPcnRob2dyYXBoaWNDYW1lcmEgfSBmcm9tICdhbmd1bGFyLXRocmVlLXNvYmEvY2FtZXJhcyc7XG5pbXBvcnQgeyBOZ3RzU29iYUNvbnRlbnQgfSBmcm9tICdhbmd1bGFyLXRocmVlLXNvYmEvdXRpbHMnO1xuaW1wb3J0IHsgR3JvdXAsIE1hdHJpeDQsIE9iamVjdDNELCBPcnRob2dyYXBoaWNDYW1lcmEsIFF1YXRlcm5pb24sIFZlY3RvcjMgfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBPcmJpdENvbnRyb2xzIH0gZnJvbSAndGhyZWUtc3RkbGliJztcblxuZXhwb3J0IHR5cGUgTmd0c0dpem1vSGVscGVyU3RhdGUgPSB7XG5cdGFsaWdubWVudDpcblx0XHR8ICd0b3AtbGVmdCdcblx0XHR8ICd0b3AtcmlnaHQnXG5cdFx0fCAnYm90dG9tLXJpZ2h0J1xuXHRcdHwgJ2JvdHRvbS1sZWZ0J1xuXHRcdHwgJ2JvdHRvbS1jZW50ZXInXG5cdFx0fCAnY2VudGVyLXJpZ2h0J1xuXHRcdHwgJ2NlbnRlci1sZWZ0J1xuXHRcdHwgJ2NlbnRlci1jZW50ZXInXG5cdFx0fCAndG9wLWNlbnRlcic7XG5cdG1hcmdpbjogW251bWJlciwgbnVtYmVyXTtcblx0cmVuZGVyUHJpb3JpdHk6IG51bWJlcjtcblx0YXV0b0NsZWFyPzogYm9vbGVhbjtcbn07XG5cbnR5cGUgQ29udHJvbHNQcm90byA9IHsgdXBkYXRlKCk6IHZvaWQ7IHRhcmdldDogVEhSRUUuVmVjdG9yMyB9O1xuXG5jb25zdCBpc09yYml0Q29udHJvbHMgPSAoY29udHJvbHM6IENvbnRyb2xzUHJvdG8pOiBjb250cm9scyBpcyBPcmJpdENvbnRyb2xzID0+IHtcblx0cmV0dXJuICdtaW5Qb2xhckFuZ2xlJyBpbiAoY29udHJvbHMgYXMgT3JiaXRDb250cm9scyk7XG59O1xuXG5leHRlbmQoeyBHcm91cCB9KTtcblxuZGVjbGFyZSBnbG9iYWwge1xuXHRpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcblx0XHQnbmd0cy1naXptby1oZWxwZXInOiBOZ3RzR2l6bW9IZWxwZXJTdGF0ZSAmIE5ndEdyb3VwO1xuXHR9XG59XG5cbmV4cG9ydCBjb25zdCBbaW5qZWN0Tmd0c0dpem1vSGVscGVyQXBpLCBwcm92aWRlTmd0c0dpem1vSGVscGVyQXBpXSA9IGNyZWF0ZUluamVjdGlvblRva2VuKFxuXHQoZ2l6bW9IZWxwZXI6IE5ndHNHaXptb0hlbHBlcikgPT4gZ2l6bW9IZWxwZXIuYXBpLFxuXHR7IGlzUm9vdDogZmFsc2UsIGRlcHM6IFtmb3J3YXJkUmVmKCgpID0+IE5ndHNHaXptb0hlbHBlcildIH0sXG4pO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RzLWdpem1vLWhlbHBlcicsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1wb3J0YWwgW3JlbmRlclByaW9yaXR5XT1cInJlbmRlclByaW9yaXR5KClcIj5cblx0XHRcdDxuZy10ZW1wbGF0ZSBuZ3RQb3J0YWxDb250ZW50PlxuXHRcdFx0XHQ8bmd0cy1vcnRob2dyYXBoaWMtY2FtZXJhIFttYWtlRGVmYXVsdF09XCJ0cnVlXCIgW3Bvc2l0aW9uXT1cIlswLCAwLCAyMDBdXCIgW2NhbWVyYVJlZl09XCJ2aXJ0dWFsQ2FtUmVmXCIgLz5cblx0XHRcdFx0PG5ndC1ncm91cCBbcmVmXT1cImdpem1vUmVmXCIgW3Bvc2l0aW9uXT1cImdpem1vUG9zaXRpb24oKVwiPlxuXHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50XCIgLz5cblx0XHRcdFx0PC9uZ3QtZ3JvdXA+XG5cdFx0XHQ8L25nLXRlbXBsYXRlPlxuXHRcdDwvbmd0LXBvcnRhbD5cblx0YCxcblx0aW1wb3J0czogW05ndFBvcnRhbCwgTmd0UG9ydGFsQ29udGVudCwgTmd0c09ydGhvZ3JhcGhpY0NhbWVyYSwgTmdUZW1wbGF0ZU91dGxldF0sXG5cdHByb3ZpZGVyczogW3Byb3ZpZGVOZ3RzR2l6bW9IZWxwZXJBcGkoKV0sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c0dpem1vSGVscGVyIHtcblx0cHJpdmF0ZSBpbnB1dHMgPSBzaWduYWxTdG9yZTxOZ3RzR2l6bW9IZWxwZXJTdGF0ZT4oe1xuXHRcdGFsaWdubWVudDogJ2JvdHRvbS1yaWdodCcsXG5cdFx0bWFyZ2luOiBbODAsIDgwXSxcblx0XHRyZW5kZXJQcmlvcml0eTogMSxcblx0fSk7XG5cblx0QElucHV0KCkgZ2l6bW9SZWYgPSBpbmplY3ROZ3RSZWY8R3JvdXA+KCk7XG5cblx0QElucHV0KHsgYWxpYXM6ICdhbGlnbm1lbnQnIH0pIHNldCBfYWxpZ25tZW50KFxuXHRcdGFsaWdubWVudDpcblx0XHRcdHwgJ3RvcC1sZWZ0J1xuXHRcdFx0fCAndG9wLXJpZ2h0J1xuXHRcdFx0fCAnYm90dG9tLXJpZ2h0J1xuXHRcdFx0fCAnYm90dG9tLWxlZnQnXG5cdFx0XHR8ICdib3R0b20tY2VudGVyJ1xuXHRcdFx0fCAnY2VudGVyLXJpZ2h0J1xuXHRcdFx0fCAnY2VudGVyLWxlZnQnXG5cdFx0XHR8ICdjZW50ZXItY2VudGVyJ1xuXHRcdFx0fCAndG9wLWNlbnRlcicsXG5cdCkge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IGFsaWdubWVudCB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnbWFyZ2luJyB9KSBzZXQgX21hcmdpbihtYXJnaW46IFtudW1iZXIsIG51bWJlcl0pIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBtYXJnaW4gfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ3JlbmRlclByaW9yaXR5JyB9KSBzZXQgX3JlbmRlclByaW9yaXR5KHJlbmRlclByaW9yaXR5OiBudW1iZXIpIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyByZW5kZXJQcmlvcml0eSB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnYXV0b0NsZWFyJyB9KSBzZXQgX2F1dG9DbGVhcihhdXRvQ2xlYXI6IGJvb2xlYW4pIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBhdXRvQ2xlYXIgfSk7XG5cdH1cblxuXHRAT3V0cHV0KCkgdXBkYXRlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG5cdEBDb250ZW50Q2hpbGQoTmd0c1NvYmFDb250ZW50LCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogVGVtcGxhdGVSZWYgfSkgY29udGVudCE6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG5cdHByaXZhdGUgc3RvcmUgPSBpbmplY3ROZ3RTdG9yZSgpO1xuXHRwcml2YXRlIG1haW5DYW1lcmEgPSB0aGlzLnN0b3JlLnNlbGVjdCgnY2FtZXJhJyk7XG5cdC8vIEB0cy1leHBlY3QtZXJyb3Jcblx0cHJpdmF0ZSBkZWZhdWx0Q29udHJvbHMgPSB0aGlzLnN0b3JlLnNlbGVjdCgnY29udHJvbHMnKSBhcyBTaWduYWw8Q29udHJvbHNQcm90bz47XG5cdHByaXZhdGUgaW52YWxpZGF0ZSA9IHRoaXMuc3RvcmUuc2VsZWN0KCdpbnZhbGlkYXRlJyk7XG5cdHByaXZhdGUgc2l6ZSA9IHRoaXMuc3RvcmUuc2VsZWN0KCdzaXplJyk7XG5cblx0cHJpdmF0ZSBhbmltYXRpbmcgPSBmYWxzZTtcblx0cHJpdmF0ZSBxMSA9IG5ldyBRdWF0ZXJuaW9uKCk7XG5cdHByaXZhdGUgcTIgPSBuZXcgUXVhdGVybmlvbigpO1xuXHRwcml2YXRlIHR1cm5SYXRlID0gMiAqIE1hdGguUEk7IC8vIHR1cm4gcmF0ZSBpbiBhbmdsZXMgcGVyIHNlY29uZFxuXHRwcml2YXRlIG1hdHJpeCA9IG5ldyBNYXRyaXg0KCk7XG5cblx0cHJpdmF0ZSByYWRpdXMgPSAwO1xuXHRwcml2YXRlIGZvY3VzUG9pbnQgPSBuZXcgVmVjdG9yMygwLCAwLCAwKTtcblx0cHJpdmF0ZSBkZWZhdWx0VXAgPSBuZXcgVmVjdG9yMygwLCAwLCAwKTtcblx0cHJpdmF0ZSB0YXJnZXQgPSBuZXcgVmVjdG9yMygpO1xuXHRwcml2YXRlIHRhcmdldFBvc2l0aW9uID0gbmV3IFZlY3RvcjMoKTtcblx0cHJpdmF0ZSBkdW1teSA9IG5ldyBPYmplY3QzRCgpO1xuXG5cdHByaXZhdGUgbWFyZ2luID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdtYXJnaW4nKTtcblx0cHJpdmF0ZSBhbGlnbm1lbnQgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ2FsaWdubWVudCcpO1xuXG5cdHZpcnR1YWxDYW1SZWYgPSBpbmplY3ROZ3RSZWY8T3J0aG9ncmFwaGljQ2FtZXJhPigpO1xuXHRyZW5kZXJQcmlvcml0eSA9IHRoaXMuaW5wdXRzLnNlbGVjdCgncmVuZGVyUHJpb3JpdHknKTtcblxuXHRnaXptb1Bvc2l0aW9uID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IFt7IHdpZHRoLCBoZWlnaHQgfSwgW21hcmdpblgsIG1hcmdpblldLCBhbGlnbm1lbnRdID0gW3RoaXMuc2l6ZSgpLCB0aGlzLm1hcmdpbigpLCB0aGlzLmFsaWdubWVudCgpXTtcblx0XHRjb25zdCB4ID0gYWxpZ25tZW50LmVuZHNXaXRoKCctY2VudGVyJylcblx0XHRcdD8gMFxuXHRcdFx0OiBhbGlnbm1lbnQuZW5kc1dpdGgoJy1sZWZ0Jylcblx0XHRcdD8gLXdpZHRoIC8gMiArIG1hcmdpblhcblx0XHRcdDogd2lkdGggLyAyIC0gbWFyZ2luWDtcblx0XHRjb25zdCB5ID0gYWxpZ25tZW50LnN0YXJ0c1dpdGgoJ2NlbnRlci0nKVxuXHRcdFx0PyAwXG5cdFx0XHQ6IGFsaWdubWVudC5zdGFydHNXaXRoKCd0b3AtJylcblx0XHRcdD8gaGVpZ2h0IC8gMiAtIG1hcmdpbllcblx0XHRcdDogLWhlaWdodCAvIDIgKyBtYXJnaW5ZO1xuXHRcdHJldHVybiBbeCwgeSwgMF07XG5cdH0pO1xuXG5cdGFwaSA9IHtcblx0XHR0d2VlbkNhbWVyYTogKGRpcmVjdGlvbjogVmVjdG9yMykgPT4ge1xuXHRcdFx0Y29uc3QgW2RlZmF1bHRDb250cm9scywgbWFpbkNhbWVyYSwgaW52YWxpZGF0ZV0gPSBbXG5cdFx0XHRcdHRoaXMuZGVmYXVsdENvbnRyb2xzKCksXG5cdFx0XHRcdHRoaXMubWFpbkNhbWVyYSgpLFxuXHRcdFx0XHR0aGlzLmludmFsaWRhdGUoKSxcblx0XHRcdF07XG5cdFx0XHR0aGlzLmFuaW1hdGluZyA9IHRydWU7XG5cdFx0XHRpZiAoZGVmYXVsdENvbnRyb2xzKSB0aGlzLmZvY3VzUG9pbnQgPSBkZWZhdWx0Q29udHJvbHM/LnRhcmdldDtcblx0XHRcdHRoaXMucmFkaXVzID0gbWFpbkNhbWVyYS5wb3NpdGlvbi5kaXN0YW5jZVRvKHRoaXMudGFyZ2V0KTtcblxuXHRcdFx0Ly8gUm90YXRlIGZyb20gY3VycmVudCBjYW1lcmEgb3JpZW50YXRpb25cblx0XHRcdHRoaXMucTEuY29weShtYWluQ2FtZXJhLnF1YXRlcm5pb24pO1xuXG5cdFx0XHQvLyBUbyBuZXcgY3VycmVudCBjYW1lcmEgb3JpZW50YXRpb25cblx0XHRcdHRoaXMudGFyZ2V0UG9zaXRpb24uY29weShkaXJlY3Rpb24pLm11bHRpcGx5U2NhbGFyKHRoaXMucmFkaXVzKS5hZGQodGhpcy50YXJnZXQpO1xuXG5cdFx0XHR0aGlzLmR1bW15Lmxvb2tBdCh0aGlzLnRhcmdldFBvc2l0aW9uKTtcblx0XHRcdHRoaXMuZHVtbXkudXAuY29weShtYWluQ2FtZXJhLnVwKTtcblxuXHRcdFx0dGhpcy5xMi5jb3B5KHRoaXMuZHVtbXkucXVhdGVybmlvbik7XG5cblx0XHRcdGludmFsaWRhdGUoKTtcblx0XHR9LFxuXHR9O1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHRoaXMudHJhY2tNYWluQ2FtZXJhVXAoKTtcblx0XHR0aGlzLmJlZm9yZVJlbmRlcigpO1xuXHR9XG5cblx0cHJpdmF0ZSB0cmFja01haW5DYW1lcmFVcCgpIHtcblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgbWFpbkNhbWVyYSA9IHRoaXMubWFpbkNhbWVyYSgpO1xuXHRcdFx0dGhpcy5kZWZhdWx0VXAuY29weShtYWluQ2FtZXJhLnVwKTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgYmVmb3JlUmVuZGVyKCkge1xuXHRcdGluamVjdEJlZm9yZVJlbmRlcigoeyBkZWx0YSB9KSA9PiB7XG5cdFx0XHRjb25zdCBbZ2l6bW8sIHZpcnR1YWxDYW0sIGRlZmF1bHRDb250cm9scywgbWFpbkNhbWVyYSwgaW52YWxpZGF0ZV0gPSBbXG5cdFx0XHRcdHRoaXMuZ2l6bW9SZWYubmF0aXZlRWxlbWVudCxcblx0XHRcdFx0dGhpcy52aXJ0dWFsQ2FtUmVmLm5hdGl2ZUVsZW1lbnQsXG5cdFx0XHRcdHRoaXMuZGVmYXVsdENvbnRyb2xzKCksXG5cdFx0XHRcdHRoaXMubWFpbkNhbWVyYSgpLFxuXHRcdFx0XHR0aGlzLmludmFsaWRhdGUoKSxcblx0XHRcdF07XG5cblx0XHRcdGlmIChnaXptbyAmJiB2aXJ0dWFsQ2FtKSB7XG5cdFx0XHRcdC8vIEFuaW1hdGUgc3RlcFxuXHRcdFx0XHRpZiAodGhpcy5hbmltYXRpbmcpIHtcblx0XHRcdFx0XHRpZiAodGhpcy5xMS5hbmdsZVRvKHRoaXMucTIpIDwgMC4wMSkge1xuXHRcdFx0XHRcdFx0dGhpcy5hbmltYXRpbmcgPSBmYWxzZTtcblx0XHRcdFx0XHRcdC8vIE9yYml0IGNvbnRyb2xzIHVzZXMgVVAgdmVjdG9yIGFzIHRoZSBvcmJpdCBheGVzLFxuXHRcdFx0XHRcdFx0Ly8gc28gd2UgbmVlZCB0byByZXNldCBpdCBhZnRlciB0aGUgYW5pbWF0aW9uIGlzIGRvbmVcblx0XHRcdFx0XHRcdC8vIG1vdmluZyBpdCBhcm91bmQgZm9yIHRoZSBjb250cm9scyB0byB3b3JrIGNvcnJlY3RseVxuXHRcdFx0XHRcdFx0aWYgKGlzT3JiaXRDb250cm9scyhkZWZhdWx0Q29udHJvbHMpKSB7XG5cdFx0XHRcdFx0XHRcdG1haW5DYW1lcmEudXAuY29weSh0aGlzLmRlZmF1bHRVcCk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdGNvbnN0IHN0ZXAgPSBkZWx0YSAqIHRoaXMudHVyblJhdGU7XG5cdFx0XHRcdFx0XHQvLyBhbmltYXRlIHBvc2l0aW9uIGJ5IGRvaW5nIGEgc2xlcnAgYW5kIHRoZW4gc2NhbGluZyB0aGUgcG9zaXRpb24gb24gdGhlIHVuaXQgc3BoZXJlXG5cdFx0XHRcdFx0XHR0aGlzLnExLnJvdGF0ZVRvd2FyZHModGhpcy5xMiwgc3RlcCk7XG5cdFx0XHRcdFx0XHQvLyBhbmltYXRlIG9yaWVudGF0aW9uXG5cdFx0XHRcdFx0XHRtYWluQ2FtZXJhLnBvc2l0aW9uXG5cdFx0XHRcdFx0XHRcdC5zZXQoMCwgMCwgMSlcblx0XHRcdFx0XHRcdFx0LmFwcGx5UXVhdGVybmlvbih0aGlzLnExKVxuXHRcdFx0XHRcdFx0XHQubXVsdGlwbHlTY2FsYXIodGhpcy5yYWRpdXMpXG5cdFx0XHRcdFx0XHRcdC5hZGQodGhpcy5mb2N1c1BvaW50KTtcblx0XHRcdFx0XHRcdG1haW5DYW1lcmEudXAuc2V0KDAsIDEsIDApLmFwcGx5UXVhdGVybmlvbih0aGlzLnExKS5ub3JtYWxpemUoKTtcblx0XHRcdFx0XHRcdG1haW5DYW1lcmEucXVhdGVybmlvbi5jb3B5KHRoaXMucTEpO1xuXHRcdFx0XHRcdFx0aWYgKHRoaXMudXBkYXRlLm9ic2VydmVkKSB0aGlzLnVwZGF0ZS5lbWl0KCk7XG5cdFx0XHRcdFx0XHRlbHNlIGlmIChkZWZhdWx0Q29udHJvbHMpIGRlZmF1bHRDb250cm9scy51cGRhdGUoKTtcblx0XHRcdFx0XHRcdGludmFsaWRhdGUoKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBTeW5jIEdpem1vIHdpdGggbWFpbiBjYW1lcmEgb3JpZW50YXRpb25cblx0XHRcdFx0dGhpcy5tYXRyaXguY29weShtYWluQ2FtZXJhLm1hdHJpeCkuaW52ZXJ0KCk7XG5cdFx0XHRcdGdpem1vLnF1YXRlcm5pb24uc2V0RnJvbVJvdGF0aW9uTWF0cml4KHRoaXMubWF0cml4KTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxufVxuIl19
@@ -0,0 +1,31 @@
1
+ import * as THREE from 'three';
2
+ export const colors = { bg: '#f0f0f0', hover: '#999', text: 'black', stroke: 'black' };
3
+ export const defaultFaces = ['Right', 'Left', 'Top', 'Bottom', 'Front', 'Back'];
4
+ const makePositionVector = (xyz) => new THREE.Vector3(...xyz).multiplyScalar(0.38);
5
+ export const corners = [
6
+ [1, 1, 1],
7
+ [1, 1, -1],
8
+ [1, -1, 1],
9
+ [1, -1, -1],
10
+ [-1, 1, 1],
11
+ [-1, 1, -1],
12
+ [-1, -1, 1],
13
+ [-1, -1, -1],
14
+ ].map(makePositionVector);
15
+ export const cornerDimensions = [0.25, 0.25, 0.25];
16
+ export const edges = [
17
+ [1, 1, 0],
18
+ [1, 0, 1],
19
+ [1, 0, -1],
20
+ [1, -1, 0],
21
+ [0, 1, 1],
22
+ [0, 1, -1],
23
+ [0, -1, 1],
24
+ [0, -1, -1],
25
+ [-1, 1, 0],
26
+ [-1, 0, 1],
27
+ [-1, 0, -1],
28
+ [-1, -1, 0],
29
+ ].map(makePositionVector);
30
+ export const edgeDimensions = edges.map((edge) => edge.toArray().map((axis) => (axis == 0 ? 0.5 : 0.25)));
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL2dpem1vcy9zcmMvZ2l6bW8taGVscGVyL2dpem1vLXZpZXdjdWJlL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUUvQixNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUM7QUFDdkYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNoRixNQUFNLGtCQUFrQixHQUFHLENBQUMsR0FBYSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7QUFFN0YsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFvQjtJQUN2QyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1YsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ1YsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDVixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ1gsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztDQUNaLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFFMUIsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBNkIsQ0FBQztBQUUvRSxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQW9CO0lBQ3JDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDVCxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1YsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ1YsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNULENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNWLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNWLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ1YsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ1YsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztDQUNYLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFFMUIsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQ3RDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBWSxFQUFVLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQTZCLENBQzVHLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5cbmV4cG9ydCBjb25zdCBjb2xvcnMgPSB7IGJnOiAnI2YwZjBmMCcsIGhvdmVyOiAnIzk5OScsIHRleHQ6ICdibGFjaycsIHN0cm9rZTogJ2JsYWNrJyB9O1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRGYWNlcyA9IFsnUmlnaHQnLCAnTGVmdCcsICdUb3AnLCAnQm90dG9tJywgJ0Zyb250JywgJ0JhY2snXTtcbmNvbnN0IG1ha2VQb3NpdGlvblZlY3RvciA9ICh4eXo6IG51bWJlcltdKSA9PiBuZXcgVEhSRUUuVmVjdG9yMyguLi54eXopLm11bHRpcGx5U2NhbGFyKDAuMzgpO1xuXG5leHBvcnQgY29uc3QgY29ybmVyczogVEhSRUUuVmVjdG9yM1tdID0gW1xuXHRbMSwgMSwgMV0sXG5cdFsxLCAxLCAtMV0sXG5cdFsxLCAtMSwgMV0sXG5cdFsxLCAtMSwgLTFdLFxuXHRbLTEsIDEsIDFdLFxuXHRbLTEsIDEsIC0xXSxcblx0Wy0xLCAtMSwgMV0sXG5cdFstMSwgLTEsIC0xXSxcbl0ubWFwKG1ha2VQb3NpdGlvblZlY3Rvcik7XG5cbmV4cG9ydCBjb25zdCBjb3JuZXJEaW1lbnNpb25zID0gWzAuMjUsIDAuMjUsIDAuMjVdIGFzIFtudW1iZXIsIG51bWJlciwgbnVtYmVyXTtcblxuZXhwb3J0IGNvbnN0IGVkZ2VzOiBUSFJFRS5WZWN0b3IzW10gPSBbXG5cdFsxLCAxLCAwXSxcblx0WzEsIDAsIDFdLFxuXHRbMSwgMCwgLTFdLFxuXHRbMSwgLTEsIDBdLFxuXHRbMCwgMSwgMV0sXG5cdFswLCAxLCAtMV0sXG5cdFswLCAtMSwgMV0sXG5cdFswLCAtMSwgLTFdLFxuXHRbLTEsIDEsIDBdLFxuXHRbLTEsIDAsIDFdLFxuXHRbLTEsIDAsIC0xXSxcblx0Wy0xLCAtMSwgMF0sXG5dLm1hcChtYWtlUG9zaXRpb25WZWN0b3IpO1xuXG5leHBvcnQgY29uc3QgZWRnZURpbWVuc2lvbnMgPSBlZGdlcy5tYXAoXG5cdChlZGdlKSA9PiBlZGdlLnRvQXJyYXkoKS5tYXAoKGF4aXM6IG51bWJlcik6IG51bWJlciA9PiAoYXhpcyA9PSAwID8gMC41IDogMC4yNSkpIGFzIFtudW1iZXIsIG51bWJlciwgbnVtYmVyXSxcbik7XG4iXX0=