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,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,49 @@ 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.3", ngImport: i0, type: NgtsOrbitControls, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
140
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", 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
+ <ng-content />
143
+ </ngt-primitive>
144
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }] }); }
133
145
  }
134
- export { NgtsOrbitControls };
135
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgtsOrbitControls, decorators: [{
146
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtsOrbitControls, decorators: [{
136
147
  type: Component,
137
148
  args: [{
138
149
  selector: 'ngts-orbit-controls',
139
150
  standalone: true,
140
- template: ` <ngt-primitive *args="args()" ngtCompound [enableDamping]="damping()" /> `,
151
+ template: `
152
+ <ngt-primitive *args="args()" ngtCompound [enableDamping]="enableDamping()">
153
+ <ng-content />
154
+ </ngt-primitive>
155
+ `,
141
156
  imports: [NgtArgs],
142
157
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
143
158
  }]
144
159
  }], ctorParameters: function () { return []; }, propDecorators: { controlsRef: [{
145
160
  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
161
+ }], _camera: [{
162
+ type: Input,
163
+ args: [{ alias: 'camera' }]
164
+ }], _domElement: [{
165
+ type: Input,
166
+ args: [{ alias: 'domElement' }]
167
+ }], _makeDefault: [{
168
+ type: Input,
169
+ args: [{ alias: 'makeDefault' }]
170
+ }], _regress: [{
171
+ type: Input,
172
+ args: [{ alias: 'regress' }]
173
+ }], _target: [{
174
+ type: Input,
175
+ args: [{ alias: 'target' }]
176
+ }], _enableDamping: [{
177
+ type: Input,
178
+ args: [{ alias: 'enableDamping' }]
179
+ }], _keyEvents: [{
180
+ type: Input,
181
+ args: [{ alias: 'keyEvents' }]
158
182
  }], change: [{
159
183
  type: Output
160
184
  }], start: [{
@@ -162,4 +186,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
162
186
  }], end: [{
163
187
  type: Output
164
188
  }] } });
165
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JiaXQtY29udHJvbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvY29udHJvbHMvc3JjL29yYml0LWNvbnRyb2xzL29yYml0LWNvbnRyb2xzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsUUFBUSxFQUNSLHNCQUFzQixFQUN0QixNQUFNLEVBQ04sWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFDaEgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFpQjdDLE1BT2EsaUJBQWtCLFNBQVEsY0FBc0M7SUFHekUsSUFBYSxNQUFNLENBQUMsTUFBb0I7UUFDcEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELElBQWEsVUFBVSxDQUFDLFVBQXVCO1FBQzNDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFhLFdBQVcsQ0FBQyxXQUFvQjtRQUN6QyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBYSxPQUFPLENBQUMsT0FBZ0I7UUFDakMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQWEsTUFBTSxDQUFDLE1BQXdEO1FBQ3hFLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFhLGFBQWEsQ0FBQyxhQUFzQjtRQUM3QyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBTVEsTUFBTSxDQUFvQjtJQUtuQztRQUNJLEtBQUssQ0FBQyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQXBDOUQsZ0JBQVcsR0FBRyxZQUFZLEVBQWlCLENBQUM7UUEwQjNDLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBZSxDQUFDO1FBQ3pDLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBZSxDQUFDO1FBQ3hDLFFBQUcsR0FBRyxJQUFJLFlBQVksRUFBZSxDQUFDO1FBRXZDLFdBQU0sR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFMUIsU0FBSSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUN4RCxZQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUk1QyxrQkFBa0IsQ0FDZCxHQUFHLEVBQUU7WUFDRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQztZQUM1QyxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsT0FBTyxFQUFFO2dCQUM5QixRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDckI7UUFDTCxDQUFDLEVBQ0QsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FDbkIsQ0FBQztRQUVGLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxZQUFZO1FBQ1IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuRCxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFdkYsTUFBTSxDQUNGLEdBQUcsRUFBRTtZQUNELE1BQU0sRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUM7WUFDNUMsTUFBTSxjQUFjLEdBQUcsTUFBTSxJQUFJLGFBQWEsQ0FBQztZQUMvQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQztZQUNoRCxJQUFJLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssY0FBYyxFQUFFO2dCQUNqRCxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsR0FBRyxJQUFJLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQzthQUN0RTtRQUNMLENBQUMsRUFDRCxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUM5QixDQUFDO0lBQ04sQ0FBQztJQUVELGVBQWU7UUFDWCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDNUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM3QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRXBELE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDMUIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQzVELE9BQU87Z0JBQ0gsUUFBUSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYTtnQkFDeEMsVUFBVSxFQUFFLFVBQVUsRUFBRSxJQUFJLFlBQVksSUFBSSxZQUFZLEVBQUU7Z0JBQzFELE9BQU8sRUFBRSxPQUFPLEVBQUU7Z0JBQ2xCLFVBQVUsRUFBRSxVQUFVLEVBQUU7YUFDM0IsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDakIsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQztZQUMzQyxJQUFJLENBQUMsUUFBUTtnQkFBRSxPQUFPO1lBQ3RCLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDN0IsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDN0MsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsb0JBQW9CO1FBQ2hCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDL0MsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRTNHLE1BQU0sQ0FDRixDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ1YsTUFBTSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQztZQUM1QyxJQUFJLENBQUMsUUFBUTtnQkFBRSxPQUFPO1lBQ3RCLElBQUksV0FBVyxFQUFFO2dCQUNiLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUNoRCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7Z0JBQzlCLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUNwRTtRQUNMLENBQUMsRUFDRCxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUM5QixDQUFDO0lBQ04sQ0FBQztJQUVELFVBQVU7UUFDTixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN0RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXZDLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQzVCLFVBQVUsRUFBRSxVQUFVLEVBQUU7WUFDeEIsV0FBVyxFQUFFLFdBQVcsRUFBRTtZQUMxQixPQUFPLEVBQUUsT0FBTyxFQUFFO1lBQ2xCLFFBQVEsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWE7U0FDM0MsQ0FBQyxDQUFDLENBQUM7UUFDSixNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNqQixNQUFNLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUM7WUFDakUsSUFBSSxDQUFDLFFBQVE7Z0JBQUUsT0FBTztZQUN0QixNQUFNLGNBQWMsR0FBNkIsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDbkQsVUFBVSxFQUFFLENBQUM7Z0JBQ2IsSUFBSSxPQUFPO29CQUFFLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDbkMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVE7b0JBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbEQsQ0FBQyxDQUFDO1lBRUYsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNwRixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBRTVFLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsY0FBYyxDQUFDLENBQUM7WUFDcEQsSUFBSSxhQUFhO2dCQUFFLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUM7WUFDckUsSUFBSSxXQUFXO2dCQUFFLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFFL0QsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDWCxRQUFRLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDO2dCQUN2RCxJQUFJLGFBQWE7b0JBQUUsUUFBUSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQztnQkFDeEUsSUFBSSxXQUFXO29CQUFFLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDdEUsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBbkpRLGlCQUFpQjtrR0FBakIsaUJBQWlCLHVWQUpoQiw0RUFBNEUsNERBQzVFLE9BQU87O1NBR1IsaUJBQWlCOzJGQUFqQixpQkFBaUI7a0JBUDdCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSw0RUFBNEU7b0JBQ3RGLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztvQkFDbEIsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ3BDOzBFQUVZLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRU8sTUFBTTtzQkFBbEIsS0FBSztnQkFJTyxVQUFVO3NCQUF0QixLQUFLO2dCQUlPLFdBQVc7c0JBQXZCLEtBQUs7Z0JBSU8sT0FBTztzQkFBbkIsS0FBSztnQkFJTyxNQUFNO3NCQUFsQixLQUFLO2dCQUlPLGFBQWE7c0JBQXpCLEtBQUs7Z0JBSUksTUFBTTtzQkFBZixNQUFNO2dCQUNHLEtBQUs7c0JBQWQsTUFBTTtnQkFDRyxHQUFHO3NCQUFaLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBjb21wdXRlZCxcbiAgICBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuICAgIGVmZmVjdCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbmplY3RCZWZvcmVSZW5kZXIsIGluamVjdE5ndFJlZiwgTmd0QXJncywgTmd0U2lnbmFsU3RvcmUsIE5ndFN0b3JlLCBOZ3RWZWN0b3IzIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBPcmJpdENvbnRyb2xzIH0gZnJvbSAndGhyZWUtc3RkbGliJztcblxuZXhwb3J0IHR5cGUgTmd0c09yYml0Q29udHJvbHNTdGF0ZSA9IHtcbiAgICBjYW1lcmE/OiBUSFJFRS5DYW1lcmE7XG4gICAgZG9tRWxlbWVudD86IEhUTUxFbGVtZW50O1xuICAgIHRhcmdldD86IE5ndFZlY3RvcjM7XG4gICAgbWFrZURlZmF1bHQ6IGJvb2xlYW47XG4gICAgcmVncmVzczogYm9vbGVhbjtcbiAgICBlbmFibGVEYW1waW5nOiBib29sZWFuO1xufTtcblxuZGVjbGFyZSBnbG9iYWwge1xuICAgIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgICAgICAnbmd0cy1vcmJpdC1jb250cm9scyc6IE9yYml0Q29udHJvbHMgJiBOZ3RzT3JiaXRDb250cm9sc1N0YXRlO1xuICAgIH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3RzLW9yYml0LWNvbnRyb2xzJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiBgIDxuZ3QtcHJpbWl0aXZlICphcmdzPVwiYXJncygpXCIgbmd0Q29tcG91bmQgW2VuYWJsZURhbXBpbmddPVwiZGFtcGluZygpXCIgLz4gYCxcbiAgICBpbXBvcnRzOiBbTmd0QXJnc10sXG4gICAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzT3JiaXRDb250cm9scyBleHRlbmRzIE5ndFNpZ25hbFN0b3JlPE5ndHNPcmJpdENvbnRyb2xzU3RhdGU+IHtcbiAgICBASW5wdXQoKSBjb250cm9sc1JlZiA9IGluamVjdE5ndFJlZjxPcmJpdENvbnRyb2xzPigpO1xuXG4gICAgQElucHV0KCkgc2V0IGNhbWVyYShjYW1lcmE6IFRIUkVFLkNhbWVyYSkge1xuICAgICAgICB0aGlzLnNldCh7IGNhbWVyYSB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgZG9tRWxlbWVudChkb21FbGVtZW50OiBIVE1MRWxlbWVudCkge1xuICAgICAgICB0aGlzLnNldCh7IGRvbUVsZW1lbnQgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IG1ha2VEZWZhdWx0KG1ha2VEZWZhdWx0OiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgbWFrZURlZmF1bHQgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHJlZ3Jlc3MocmVncmVzczogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNldCh7IHJlZ3Jlc3MgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHRhcmdldCh0YXJnZXQ6IFRIUkVFLlZlY3RvcjMgfCBQYXJhbWV0ZXJzPFRIUkVFLlZlY3RvcjNbJ3NldCddPikge1xuICAgICAgICB0aGlzLnNldCh7IHRhcmdldCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgZW5hYmxlRGFtcGluZyhlbmFibGVEYW1waW5nOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZW5hYmxlRGFtcGluZyB9KTtcbiAgICB9XG5cbiAgICBAT3V0cHV0KCkgY2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUSFJFRS5FdmVudD4oKTtcbiAgICBAT3V0cHV0KCkgc3RhcnQgPSBuZXcgRXZlbnRFbWl0dGVyPFRIUkVFLkV2ZW50PigpO1xuICAgIEBPdXRwdXQoKSBlbmQgPSBuZXcgRXZlbnRFbWl0dGVyPFRIUkVFLkV2ZW50PigpO1xuXG4gICAgcmVhZG9ubHkgI3N0b3JlID0gaW5qZWN0KE5ndFN0b3JlKTtcblxuICAgIHJlYWRvbmx5IGFyZ3MgPSBjb21wdXRlZCgoKSA9PiBbdGhpcy5jb250cm9sc1JlZi5uYXRpdmVFbGVtZW50XSk7XG4gICAgcmVhZG9ubHkgZGFtcGluZyA9IHRoaXMuc2VsZWN0KCdlbmFibGVEYW1waW5nJyk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoeyBlbmFibGVEYW1waW5nOiB0cnVlLCByZWdyZXNzOiBmYWxzZSwgbWFrZURlZmF1bHQ6IGZhbHNlIH0pO1xuICAgICAgICBpbmplY3RCZWZvcmVSZW5kZXIoXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udHJvbHMgPSB0aGlzLmNvbnRyb2xzUmVmLnVudHJhY2tlZDtcbiAgICAgICAgICAgICAgICBpZiAoY29udHJvbHMgJiYgY29udHJvbHMuZW5hYmxlZCkge1xuICAgICAgICAgICAgICAgICAgICBjb250cm9scy51cGRhdGUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeyBwcmlvcml0eTogLTEgfVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuI3NldENvbnRyb2xzKCk7XG4gICAgICAgIHRoaXMuI2Nvbm5lY3RFbGVtZW50KCk7XG4gICAgICAgIHRoaXMuI21ha2VDb250cm9sc0RlZmF1bHQoKTtcbiAgICAgICAgdGhpcy4jc2V0RXZlbnRzKCk7XG4gICAgfVxuXG4gICAgI3NldENvbnRyb2xzKCkge1xuICAgICAgICBjb25zdCBjYW1lcmEgPSB0aGlzLnNlbGVjdCgnY2FtZXJhJyk7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRDYW1lcmEgPSB0aGlzLiNzdG9yZS5zZWxlY3QoJ2NhbWVyYScpO1xuICAgICAgICBjb25zdCB0cmlnZ2VyID0gY29tcHV0ZWQoKCkgPT4gKHsgY2FtZXJhOiBjYW1lcmEoKSwgZGVmYXVsdENhbWVyYTogZGVmYXVsdENhbWVyYSgpIH0pKTtcblxuICAgICAgICBlZmZlY3QoXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBjYW1lcmEsIGRlZmF1bHRDYW1lcmEgfSA9IHRyaWdnZXIoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjb250cm9sc0NhbWVyYSA9IGNhbWVyYSB8fCBkZWZhdWx0Q2FtZXJhO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRyb2xzID0gdGhpcy5jb250cm9sc1JlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgICAgIGlmICghY29udHJvbHMgfHwgY29udHJvbHMub2JqZWN0ICE9PSBjb250cm9sc0NhbWVyYSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2xzUmVmLm5hdGl2ZUVsZW1lbnQgPSBuZXcgT3JiaXRDb250cm9scyhjb250cm9sc0NhbWVyYSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgICNjb25uZWN0RWxlbWVudCgpIHtcbiAgICAgICAgY29uc3QgZ2xEb21FbGVtZW50ID0gdGhpcy4jc3RvcmUuc2VsZWN0KCdnbCcsICdkb21FbGVtZW50Jyk7XG4gICAgICAgIGNvbnN0IGRvbUVsZW1lbnQgPSB0aGlzLnNlbGVjdCgnZG9tRWxlbWVudCcpO1xuICAgICAgICBjb25zdCByZWdyZXNzID0gdGhpcy5zZWxlY3QoJ3JlZ3Jlc3MnKTtcbiAgICAgICAgY29uc3QgaW52YWxpZGF0ZSA9IHRoaXMuI3N0b3JlLnNlbGVjdCgnaW52YWxpZGF0ZScpO1xuXG4gICAgICAgIGNvbnN0IHRyaWdnZXIgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBldmVudHNTb3VyY2UgPSB0aGlzLiNzdG9yZS5nZXQoJ2V2ZW50cycsICdjb25uZWN0ZWQnKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgY29udHJvbHM6IHRoaXMuY29udHJvbHNSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICBkb21FbGVtZW50OiBkb21FbGVtZW50KCkgfHwgZXZlbnRzU291cmNlIHx8IGdsRG9tRWxlbWVudCgpLFxuICAgICAgICAgICAgICAgIHJlZ3Jlc3M6IHJlZ3Jlc3MoKSxcbiAgICAgICAgICAgICAgICBpbnZhbGlkYXRlOiBpbnZhbGlkYXRlKCksXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcblxuICAgICAgICBlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBkb21FbGVtZW50LCBjb250cm9scyB9ID0gdHJpZ2dlcigpO1xuICAgICAgICAgICAgaWYgKCFjb250cm9scykgcmV0dXJuO1xuICAgICAgICAgICAgY29udHJvbHMuY29ubmVjdChkb21FbGVtZW50KTtcbiAgICAgICAgICAgIG9uQ2xlYW51cCgoKSA9PiB2b2lkIGNvbnRyb2xzLmRpc3Bvc2UoKSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgICNtYWtlQ29udHJvbHNEZWZhdWx0KCkge1xuICAgICAgICBjb25zdCBtYWtlRGVmYXVsdCA9IHRoaXMuc2VsZWN0KCdtYWtlRGVmYXVsdCcpO1xuICAgICAgICBjb25zdCB0cmlnZ2VyID0gY29tcHV0ZWQoKCkgPT4gKHsgY29udHJvbHM6IHRoaXMuY29udHJvbHNSZWYubmF0aXZlRWxlbWVudCwgbWFrZURlZmF1bHQ6IG1ha2VEZWZhdWx0KCkgfSkpO1xuXG4gICAgICAgIGVmZmVjdChcbiAgICAgICAgICAgIChvbkNsZWFudXApID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGNvbnRyb2xzLCBtYWtlRGVmYXVsdCB9ID0gdHJpZ2dlcigpO1xuICAgICAgICAgICAgICAgIGlmICghY29udHJvbHMpIHJldHVybjtcbiAgICAgICAgICAgICAgICBpZiAobWFrZURlZmF1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb2xkQ29udHJvbHMgPSB0aGlzLiNzdG9yZS5nZXQoJ2NvbnRyb2xzJyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuI3N0b3JlLnNldCh7IGNvbnRyb2xzIH0pO1xuICAgICAgICAgICAgICAgICAgICBvbkNsZWFudXAoKCkgPT4gdm9pZCB0aGlzLiNzdG9yZS5zZXQoeyBjb250cm9sczogb2xkQ29udHJvbHMgfSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAjc2V0RXZlbnRzKCkge1xuICAgICAgICBjb25zdCBpbnZhbGlkYXRlID0gdGhpcy4jc3RvcmUuc2VsZWN0KCdpbnZhbGlkYXRlJyk7XG4gICAgICAgIGNvbnN0IHBlcmZvcm1hbmNlID0gdGhpcy4jc3RvcmUuc2VsZWN0KCdwZXJmb3JtYW5jZScpO1xuICAgICAgICBjb25zdCByZWdyZXNzID0gdGhpcy5zZWxlY3QoJ3JlZ3Jlc3MnKTtcblxuICAgICAgICBjb25zdCB0cmlnZ2VyID0gY29tcHV0ZWQoKCkgPT4gKHtcbiAgICAgICAgICAgIGludmFsaWRhdGU6IGludmFsaWRhdGUoKSxcbiAgICAgICAgICAgIHBlcmZvcm1hbmNlOiBwZXJmb3JtYW5jZSgpLFxuICAgICAgICAgICAgcmVncmVzczogcmVncmVzcygpLFxuICAgICAgICAgICAgY29udHJvbHM6IHRoaXMuY29udHJvbHNSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgfSkpO1xuICAgICAgICBlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBjb250cm9scywgaW52YWxpZGF0ZSwgcGVyZm9ybWFuY2UsIHJlZ3Jlc3MgfSA9IHRyaWdnZXIoKTtcbiAgICAgICAgICAgIGlmICghY29udHJvbHMpIHJldHVybjtcbiAgICAgICAgICAgIGNvbnN0IGNoYW5nZUNhbGxiYWNrOiAoZTogVEhSRUUuRXZlbnQpID0+IHZvaWQgPSAoZSkgPT4ge1xuICAgICAgICAgICAgICAgIGludmFsaWRhdGUoKTtcbiAgICAgICAgICAgICAgICBpZiAocmVncmVzcykgcGVyZm9ybWFuY2UucmVncmVzcygpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNoYW5nZS5vYnNlcnZlZCkgdGhpcy5jaGFuZ2UuZW1pdChlKTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0Q2FsbGJhY2sgPSB0aGlzLnN0YXJ0Lm9ic2VydmVkID8gdGhpcy5zdGFydC5lbWl0LmJpbmQodGhpcy5zdGFydCkgOiBudWxsO1xuICAgICAgICAgICAgY29uc3QgZW5kQ2FsbGJhY2sgPSB0aGlzLmVuZC5vYnNlcnZlZCA/IHRoaXMuZW5kLmVtaXQuYmluZCh0aGlzLmVuZCkgOiBudWxsO1xuXG4gICAgICAgICAgICBjb250cm9scy5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBjaGFuZ2VDYWxsYmFjayk7XG4gICAgICAgICAgICBpZiAoc3RhcnRDYWxsYmFjaykgY29udHJvbHMuYWRkRXZlbnRMaXN0ZW5lcignc3RhcnQnLCBzdGFydENhbGxiYWNrKTtcbiAgICAgICAgICAgIGlmIChlbmRDYWxsYmFjaykgY29udHJvbHMuYWRkRXZlbnRMaXN0ZW5lcignZW5kJywgZW5kQ2FsbGJhY2spO1xuXG4gICAgICAgICAgICBvbkNsZWFudXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnRyb2xzLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGNoYW5nZUNhbGxiYWNrKTtcbiAgICAgICAgICAgICAgICBpZiAoc3RhcnRDYWxsYmFjaykgY29udHJvbHMucmVtb3ZlRXZlbnRMaXN0ZW5lcignc3RhcnQnLCBzdGFydENhbGxiYWNrKTtcbiAgICAgICAgICAgICAgICBpZiAoZW5kQ2FsbGJhY2spIGNvbnRyb2xzLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2VuZCcsIGVuZENhbGxiYWNrKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
189
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JiaXQtY29udHJvbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvY29udHJvbHMvc3JjL29yYml0LWNvbnRyb2xzL29yYml0LWNvbnRyb2xzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQ04sa0JBQWtCLEVBQ2xCLFlBQVksRUFDWixjQUFjLEVBQ2QsT0FBTyxFQUNQLFdBQVcsR0FHWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQWdDN0MsTUFBTSxPQUFPLGlCQUFpQjtJQVU3QixJQUFnQyxPQUFPLENBQUMsTUFBb0I7UUFDM0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFvQyxXQUFXLENBQUMsVUFBdUI7UUFDdEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFxQyxZQUFZLENBQUMsV0FBb0I7UUFDckUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFpQyxRQUFRLENBQUMsT0FBZ0I7UUFDekQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFnQyxPQUFPLENBQUMsTUFBd0Q7UUFDL0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxD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QUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDakM7MEVBU1MsV0FBVztzQkFBbkIsS0FBSztnQkFFMEIsT0FBTztzQkFBdEMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7Z0JBSVUsV0FBVztzQkFBOUMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUU7Z0JBSU8sWUFBWTtzQkFBaEQsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUU7Z0JBSUUsUUFBUTtzQkFBeEMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUU7Z0JBSUssT0FBTztzQkFBdEMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7Z0JBSWEsY0FBYztzQkFBcEQsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUU7Z0JBSUUsVUFBVTtzQkFBNUMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUU7Z0JBSW5CLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU07Z0JBQ0csR0FBRztzQkFBWixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgZWZmZWN0LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG5cdGluamVjdEJlZm9yZVJlbmRlcixcblx0aW5qZWN0Tmd0UmVmLFxuXHRpbmplY3ROZ3RTdG9yZSxcblx0Tmd0QXJncyxcblx0c2lnbmFsU3RvcmUsXG5cdHR5cGUgTmd0Q2FtZXJhLFxuXHR0eXBlIE5ndFZlY3RvcjMsXG59IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgT3JiaXRDb250cm9scyB9IGZyb20gJ3RocmVlLXN0ZGxpYic7XG5cbmV4cG9ydCB0eXBlIE5ndHNPcmJpdENvbnRyb2xzU3RhdGUgPSB7XG5cdGNhbWVyYT86IFRIUkVFLkNhbWVyYTtcblx0ZG9tRWxlbWVudD86IEhUTUxFbGVtZW50O1xuXHR0YXJnZXQ/OiBOZ3RWZWN0b3IzO1xuXHRtYWtlRGVmYXVsdDogYm9vbGVhbjtcblx0cmVncmVzczogYm9vbGVhbjtcblx0ZW5hYmxlRGFtcGluZzogYm9vbGVhbjtcblx0a2V5RXZlbnRzOiBib29sZWFuIHwgSFRNTEVsZW1lbnQ7XG59O1xuXG5kZWNsYXJlIGdsb2JhbCB7XG5cdGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuXHRcdC8qKlxuXHRcdCAqIEBleHRlbmRzIHRocmVlLXN0ZGxpYnxPcmJpdENvbnRyb2xzXG5cdFx0ICovXG5cdFx0J25ndHMtb3JiaXQtY29udHJvbHMnOiBPcmJpdENvbnRyb2xzICYgTmd0c09yYml0Q29udHJvbHNTdGF0ZTtcblx0fVxufVxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RzLW9yYml0LWNvbnRyb2xzJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LXByaW1pdGl2ZSAqYXJncz1cImFyZ3MoKVwiIG5ndENvbXBvdW5kIFtlbmFibGVEYW1waW5nXT1cImVuYWJsZURhbXBpbmcoKVwiPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC1wcmltaXRpdmU+XG5cdGAsXG5cdGltcG9ydHM6IFtOZ3RBcmdzXSxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzT3JiaXRDb250cm9scyB7XG5cdHByaXZhdGUgaW5wdXRzID0gc2lnbmFsU3RvcmU8Tmd0c09yYml0Q29udHJvbHNTdGF0ZT4oe1xuXHRcdGVuYWJsZURhbXBpbmc6IHRydWUsXG5cdFx0cmVncmVzczogZmFsc2UsXG5cdFx0bWFrZURlZmF1bHQ6IGZhbHNlLFxuXHRcdGtleUV2ZW50czogZmFsc2UsXG5cdH0pO1xuXG5cdEBJbnB1dCgpIGNvbnRyb2xzUmVmID0gaW5qZWN0Tmd0UmVmPE9yYml0Q29udHJvbHM+KCk7XG5cblx0QElucHV0KHsgYWxpYXM6ICdjYW1lcmEnIH0pIHNldCBfY2FtZXJhKGNhbWVyYTogVEhSRUUuQ2FtZXJhKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgY2FtZXJhIH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICdkb21FbGVtZW50JyB9KSBzZXQgX2RvbUVsZW1lbnQoZG9tRWxlbWVudDogSFRNTEVsZW1lbnQpIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBkb21FbGVtZW50IH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICdtYWtlRGVmYXVsdCcgfSkgc2V0IF9tYWtlRGVmYXVsdChtYWtlRGVmYXVsdDogYm9vbGVhbikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IG1ha2VEZWZhdWx0IH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICdyZWdyZXNzJyB9KSBzZXQgX3JlZ3Jlc3MocmVncmVzczogYm9vbGVhbikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IHJlZ3Jlc3MgfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ3RhcmdldCcgfSkgc2V0IF90YXJnZXQodGFyZ2V0OiBUSFJFRS5WZWN0b3IzIHwgUGFyYW1ldGVyczxUSFJFRS5WZWN0b3IzWydzZXQnXT4pIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyB0YXJnZXQgfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ2VuYWJsZURhbXBpbmcnIH0pIHNldCBfZW5hYmxlRGFtcGluZyhlbmFibGVEYW1waW5nOiBib29sZWFuKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgZW5hYmxlRGFtcGluZyB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAna2V5RXZlbnRzJyB9KSBzZXQgX2tleUV2ZW50cyhrZXlFdmVudHM6IGJvb2xlYW4pIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBrZXlFdmVudHMgfSk7XG5cdH1cblxuXHRAT3V0cHV0KCkgY2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUSFJFRS5FdmVudD4oKTtcblx0QE91dHB1dCgpIHN0YXJ0ID0gbmV3IEV2ZW50RW1pdHRlcjxUSFJFRS5FdmVudD4oKTtcblx0QE91dHB1dCgpIGVuZCA9IG5ldyBFdmVudEVtaXR0ZXI8VEhSRUUuRXZlbnQ+KCk7XG5cblx0cHJpdmF0ZSBzdG9yZSA9IGluamVjdE5ndFN0b3JlKCk7XG5cdHByaXZhdGUgaW52YWxpZGF0ZSA9IHRoaXMuc3RvcmUuc2VsZWN0KCdpbnZhbGlkYXRlJyk7XG5cdHByaXZhdGUgcGVyZm9ybWFuY2VSZWdyZXNzID0gdGhpcy5zdG9yZS5zZWxlY3QoJ3BlcmZvcm1hbmNlJywgJ3JlZ3Jlc3MnKTtcblx0cHJpdmF0ZSBkZWZhdWx0Q2FtZXJhID0gdGhpcy5zdG9yZS5zZWxlY3QoJ2NhbWVyYScpO1xuXHRwcml2YXRlIGdsRG9tRWxlbWVudCA9IHRoaXMuc3RvcmUuc2VsZWN0KCdnbCcsICdkb21FbGVtZW50Jyk7XG5cdHByaXZhdGUgcmVncmVzcyA9IHRoaXMuaW5wdXRzLnNlbGVjdCgncmVncmVzcycpO1xuXHRwcml2YXRlIGNhbWVyYSA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnY2FtZXJhJyk7XG5cdHByaXZhdGUgZG9tRWxlbWVudCA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnZG9tRWxlbWVudCcpO1xuXHRwcml2YXRlIGtleUV2ZW50cyA9IHRoaXMuaW5wdXRzLnNlbGVjdCgna2V5RXZlbnRzJyk7XG5cdHByaXZhdGUgbWFrZURlZmF1bHQgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ21ha2VEZWZhdWx0Jyk7XG5cblx0YXJncyA9IGNvbXB1dGVkKCgpID0+IFt0aGlzLmNvbnRyb2xzUmVmLm5hdGl2ZUVsZW1lbnRdKTtcblx0ZW5hYmxlRGFtcGluZyA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnZW5hYmxlRGFtcGluZycpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGluamVjdEJlZm9yZVJlbmRlcihcblx0XHRcdCgpID0+IHtcblx0XHRcdFx0Y29uc3QgY29udHJvbHMgPSB0aGlzLmNvbnRyb2xzUmVmLm5hdGl2ZUVsZW1lbnQ7XG5cdFx0XHRcdGlmIChjb250cm9scyAmJiBjb250cm9scy5lbmFibGVkKSB7XG5cdFx0XHRcdFx0Y29udHJvbHMudXBkYXRlKCk7XG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0XHR7IHByaW9yaXR5OiAtMSB9LFxuXHRcdCk7XG5cblx0XHR0aGlzLnNldENvbnRyb2xzKCk7XG5cdFx0dGhpcy5jb25uZWN0RWxlbWVudCgpO1xuXHRcdHRoaXMubWFrZUNvbnRyb2xzRGVmYXVsdCgpO1xuXHRcdHRoaXMuc2V0RXZlbnRzKCk7XG5cdH1cblxuXHRwcml2YXRlIHNldENvbnRyb2xzKCkge1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCBbY2FtZXJhLCBkZWZhdWx0Q2FtZXJhLCBjb250cm9sc10gPSBbXG5cdFx0XHRcdHRoaXMuY2FtZXJhKCksXG5cdFx0XHRcdHRoaXMuZGVmYXVsdENhbWVyYSgpLFxuXHRcdFx0XHR0aGlzLmNvbnRyb2xzUmVmLm5hdGl2ZUVsZW1lbnQsXG5cdFx0XHRdO1xuXHRcdFx0Y29uc3QgY29udHJvbHNDYW1lcmEgPSBjYW1lcmEgfHwgZGVmYXVsdENhbWVyYTtcblx0XHRcdGlmICghY29udHJvbHMgfHwgY29udHJvbHMub2JqZWN0ICE9PSBjb250cm9sc0NhbWVyYSkge1xuXHRcdFx0XHR0aGlzLmNvbnRyb2xzUmVmLm5hdGl2ZUVsZW1lbnQgPSBuZXcgT3JiaXRDb250cm9scyhjb250cm9sc0NhbWVyYSBhcyBOZ3RDYW1lcmEpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBjb25uZWN0RWxlbWVudCgpIHtcblx0XHRlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuXHRcdFx0Y29uc3QgW2tleUV2ZW50cywgZG9tRWxlbWVudCwgY29udHJvbHNdID0gW1xuXHRcdFx0XHR0aGlzLmtleUV2ZW50cygpLFxuXHRcdFx0XHR0aGlzLmRvbUVsZW1lbnQoKSB8fCB0aGlzLnN0b3JlLmdldCgnZXZlbnRzJywgJ2Nvbm5lY3RlZCcpIHx8IHRoaXMuZ2xEb21FbGVtZW50KCksXG5cdFx0XHRcdHRoaXMuY29udHJvbHNSZWYubmF0aXZlRWxlbWVudCxcblx0XHRcdFx0dGhpcy5pbnZhbGlkYXRlKCksXG5cdFx0XHRcdHRoaXMucmVncmVzcygpLFxuXHRcdFx0XTtcblx0XHRcdGlmICghY29udHJvbHMpIHJldHVybjtcblx0XHRcdGlmIChrZXlFdmVudHMpIHtcblx0XHRcdFx0Y29udHJvbHMuY29ubmVjdChrZXlFdmVudHMgPT09IHRydWUgPyBkb21FbGVtZW50IDoga2V5RXZlbnRzKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGNvbnRyb2xzLmNvbm5lY3QoZG9tRWxlbWVudCk7XG5cdFx0XHR9XG5cdFx0XHRvbkNsZWFudXAoKCkgPT4gdm9pZCBjb250cm9scy5kaXNwb3NlKCkpO1xuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBtYWtlQ29udHJvbHNEZWZhdWx0KCkge1xuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBbY29udHJvbHMsIG1ha2VEZWZhdWx0XSA9IFt0aGlzLmNvbnRyb2xzUmVmLm5hdGl2ZUVsZW1lbnQsIHRoaXMubWFrZURlZmF1bHQoKV07XG5cdFx0XHRpZiAoIWNvbnRyb2xzKSByZXR1cm47XG5cdFx0XHRpZiAobWFrZURlZmF1bHQpIHtcblx0XHRcdFx0Y29uc3Qgb2xkQ29udHJvbHMgPSB0aGlzLnN0b3JlLmdldCgnY29udHJvbHMnKTtcblx0XHRcdFx0dGhpcy5zdG9yZS5zZXQoeyBjb250cm9scyB9KTtcblx0XHRcdFx0b25DbGVhbnVwKCgpID0+IHZvaWQgdGhpcy5zdG9yZS5zZXQoeyBjb250cm9sczogb2xkQ29udHJvbHMgfSkpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBzZXRFdmVudHMoKSB7XG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IFtjb250cm9scywgaW52YWxpZGF0ZSwgcGVyZm9ybWFuY2VSZWdyZXNzLCByZWdyZXNzXSA9IFtcblx0XHRcdFx0dGhpcy5jb250cm9sc1JlZi5uYXRpdmVFbGVtZW50LFxuXHRcdFx0XHR0aGlzLmludmFsaWRhdGUoKSxcblx0XHRcdFx0dGhpcy5wZXJmb3JtYW5jZVJlZ3Jlc3MoKSxcblx0XHRcdFx0dGhpcy5yZWdyZXNzKCksXG5cdFx0XHRdO1xuXHRcdFx0aWYgKCFjb250cm9scykgcmV0dXJuO1xuXHRcdFx0Y29uc3QgY2hhbmdlQ2FsbGJhY2s6IChlOiBUSFJFRS5FdmVudCkgPT4gdm9pZCA9IChlKSA9PiB7XG5cdFx0XHRcdGludmFsaWRhdGUoKTtcblx0XHRcdFx0aWYgKHJlZ3Jlc3MpIHBlcmZvcm1hbmNlUmVncmVzcygpO1xuXHRcdFx0XHRpZiAodGhpcy5jaGFuZ2Uub2JzZXJ2ZWQpIHRoaXMuY2hhbmdlLmVtaXQoZSk7XG5cdFx0XHR9O1xuXG5cdFx0XHRjb25zdCBzdGFydENhbGxiYWNrID0gdGhpcy5zdGFydC5vYnNlcnZlZCA/IHRoaXMuc3RhcnQuZW1pdC5iaW5kKHRoaXMuc3RhcnQpIDogbnVsbDtcblx0XHRcdGNvbnN0IGVuZENhbGxiYWNrID0gdGhpcy5lbmQub2JzZXJ2ZWQgPyB0aGlzLmVuZC5lbWl0LmJpbmQodGhpcy5lbmQpIDogbnVsbDtcblxuXHRcdFx0Y29udHJvbHMuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgY2hhbmdlQ2FsbGJhY2spO1xuXHRcdFx0aWYgKHN0YXJ0Q2FsbGJhY2spIGNvbnRyb2xzLmFkZEV2ZW50TGlzdGVuZXIoJ3N0YXJ0Jywgc3RhcnRDYWxsYmFjayk7XG5cdFx0XHRpZiAoZW5kQ2FsbGJhY2spIGNvbnRyb2xzLmFkZEV2ZW50TGlzdGVuZXIoJ2VuZCcsIGVuZENhbGxiYWNrKTtcblxuXHRcdFx0b25DbGVhbnVwKCgpID0+IHtcblx0XHRcdFx0Y29udHJvbHMucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgY2hhbmdlQ2FsbGJhY2spO1xuXHRcdFx0XHRpZiAoc3RhcnRDYWxsYmFjaykgY29udHJvbHMucmVtb3ZlRXZlbnRMaXN0ZW5lcignc3RhcnQnLCBzdGFydENhbGxiYWNrKTtcblx0XHRcdFx0aWYgKGVuZENhbGxiYWNrKSBjb250cm9scy5yZW1vdmVFdmVudExpc3RlbmVyKCdlbmQnLCBlbmRDYWxsYmFjayk7XG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fVxufVxuIl19
@@ -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,198 @@
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, 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 { createInjectionToken } from 'ngxtension/create-injection-token';
7
+ import { Group, Matrix4, Object3D, OrthographicCamera, Quaternion, Vector3 } from 'three';
8
+ import { OrbitControls } from 'three-stdlib';
9
+ import * as i0 from "@angular/core";
10
+ const isOrbitControls = (controls) => {
11
+ return 'minPolarAngle' in controls;
12
+ };
13
+ extend({ Group });
14
+ export const [injectNgtsGizmoHelperApi, provideNgtsGizmoHelperApi] = createInjectionToken((gizmoHelper) => gizmoHelper.api, { isRoot: false, deps: [forwardRef(() => NgtsGizmoHelper)] });
15
+ export class NgtsGizmoHelper {
16
+ set _alignment(alignment) {
17
+ this.inputs.set({ alignment });
18
+ }
19
+ set _margin(margin) {
20
+ this.inputs.set({ margin });
21
+ }
22
+ set _renderPriority(renderPriority) {
23
+ this.inputs.set({ renderPriority });
24
+ }
25
+ set _autoClear(autoClear) {
26
+ this.inputs.set({ autoClear });
27
+ }
28
+ constructor() {
29
+ this.inputs = signalStore({
30
+ alignment: 'bottom-right',
31
+ margin: [80, 80],
32
+ renderPriority: 1,
33
+ });
34
+ this.gizmoRef = injectNgtRef();
35
+ this.update = new EventEmitter();
36
+ this.store = injectNgtStore();
37
+ this.mainCamera = this.store.select('camera');
38
+ // @ts-expect-error
39
+ this.defaultControls = this.store.select('controls');
40
+ this.invalidate = this.store.select('invalidate');
41
+ this.size = this.store.select('size');
42
+ this.animating = false;
43
+ this.q1 = new Quaternion();
44
+ this.q2 = new Quaternion();
45
+ this.turnRate = 2 * Math.PI; // turn rate in angles per second
46
+ this.matrix = new Matrix4();
47
+ this.radius = 0;
48
+ this.focusPoint = new Vector3(0, 0, 0);
49
+ this.defaultUp = new Vector3(0, 0, 0);
50
+ this.target = new Vector3();
51
+ this.targetPosition = new Vector3();
52
+ this.dummy = new Object3D();
53
+ this.margin = this.inputs.select('margin');
54
+ this.alignment = this.inputs.select('alignment');
55
+ this.virtualCamRef = injectNgtRef();
56
+ this.renderPriority = this.inputs.select('renderPriority');
57
+ this.gizmoPosition = computed(() => {
58
+ const [{ width, height }, [marginX, marginY], alignment] = [this.size(), this.margin(), this.alignment()];
59
+ const x = alignment.endsWith('-center')
60
+ ? 0
61
+ : alignment.endsWith('-left')
62
+ ? -width / 2 + marginX
63
+ : width / 2 - marginX;
64
+ const y = alignment.startsWith('center-')
65
+ ? 0
66
+ : alignment.startsWith('top-')
67
+ ? height / 2 - marginY
68
+ : -height / 2 + marginY;
69
+ return [x, y, 0];
70
+ });
71
+ this.api = {
72
+ tweenCamera: (direction) => {
73
+ const [defaultControls, mainCamera, invalidate] = [
74
+ this.defaultControls(),
75
+ this.mainCamera(),
76
+ this.invalidate(),
77
+ ];
78
+ this.animating = true;
79
+ if (defaultControls)
80
+ this.focusPoint = defaultControls?.target;
81
+ this.radius = mainCamera.position.distanceTo(this.target);
82
+ // Rotate from current camera orientation
83
+ this.q1.copy(mainCamera.quaternion);
84
+ // To new current camera orientation
85
+ this.targetPosition.copy(direction).multiplyScalar(this.radius).add(this.target);
86
+ this.dummy.lookAt(this.targetPosition);
87
+ this.dummy.up.copy(mainCamera.up);
88
+ this.q2.copy(this.dummy.quaternion);
89
+ invalidate();
90
+ },
91
+ };
92
+ this.trackMainCameraUp();
93
+ this.beforeRender();
94
+ }
95
+ trackMainCameraUp() {
96
+ effect(() => {
97
+ const mainCamera = this.mainCamera();
98
+ this.defaultUp.copy(mainCamera.up);
99
+ });
100
+ }
101
+ beforeRender() {
102
+ injectBeforeRender(({ delta }) => {
103
+ const [gizmo, virtualCam, defaultControls, mainCamera, invalidate] = [
104
+ this.gizmoRef.nativeElement,
105
+ this.virtualCamRef.nativeElement,
106
+ this.defaultControls(),
107
+ this.mainCamera(),
108
+ this.invalidate(),
109
+ ];
110
+ if (gizmo && virtualCam) {
111
+ // Animate step
112
+ if (this.animating) {
113
+ if (this.q1.angleTo(this.q2) < 0.01) {
114
+ this.animating = false;
115
+ // Orbit controls uses UP vector as the orbit axes,
116
+ // so we need to reset it after the animation is done
117
+ // moving it around for the controls to work correctly
118
+ if (isOrbitControls(defaultControls)) {
119
+ mainCamera.up.copy(this.defaultUp);
120
+ }
121
+ }
122
+ else {
123
+ const step = delta * this.turnRate;
124
+ // animate position by doing a slerp and then scaling the position on the unit sphere
125
+ this.q1.rotateTowards(this.q2, step);
126
+ // animate orientation
127
+ mainCamera.position
128
+ .set(0, 0, 1)
129
+ .applyQuaternion(this.q1)
130
+ .multiplyScalar(this.radius)
131
+ .add(this.focusPoint);
132
+ mainCamera.up.set(0, 1, 0).applyQuaternion(this.q1).normalize();
133
+ mainCamera.quaternion.copy(this.q1);
134
+ if (this.update.observed)
135
+ this.update.emit();
136
+ else if (defaultControls)
137
+ defaultControls.update();
138
+ invalidate();
139
+ }
140
+ }
141
+ // Sync Gizmo with main camera orientation
142
+ this.matrix.copy(mainCamera.matrix).invert();
143
+ gizmo.quaternion.setFromRotationMatrix(this.matrix);
144
+ }
145
+ });
146
+ }
147
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtsGizmoHelper, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
148
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.3", 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: `
149
+ <ngt-portal [renderPriority]="renderPriority()">
150
+ <ng-template ngtPortalContent>
151
+ <ngts-orthographic-camera [makeDefault]="true" [position]="[0, 0, 200]" [cameraRef]="virtualCamRef" />
152
+ <ngt-group [ref]="gizmoRef" [position]="gizmoPosition()">
153
+ <ng-container *ngTemplateOutlet="content" />
154
+ </ngt-group>
155
+ </ng-template>
156
+ </ngt-portal>
157
+ `, 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"] }] }); }
158
+ }
159
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: NgtsGizmoHelper, decorators: [{
160
+ type: Component,
161
+ args: [{
162
+ selector: 'ngts-gizmo-helper',
163
+ standalone: true,
164
+ template: `
165
+ <ngt-portal [renderPriority]="renderPriority()">
166
+ <ng-template ngtPortalContent>
167
+ <ngts-orthographic-camera [makeDefault]="true" [position]="[0, 0, 200]" [cameraRef]="virtualCamRef" />
168
+ <ngt-group [ref]="gizmoRef" [position]="gizmoPosition()">
169
+ <ng-container *ngTemplateOutlet="content" />
170
+ </ngt-group>
171
+ </ng-template>
172
+ </ngt-portal>
173
+ `,
174
+ imports: [NgtPortal, NgtPortalContent, NgtsOrthographicCamera, NgTemplateOutlet],
175
+ providers: [provideNgtsGizmoHelperApi()],
176
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
177
+ }]
178
+ }], ctorParameters: function () { return []; }, propDecorators: { gizmoRef: [{
179
+ type: Input
180
+ }], _alignment: [{
181
+ type: Input,
182
+ args: [{ alias: 'alignment' }]
183
+ }], _margin: [{
184
+ type: Input,
185
+ args: [{ alias: 'margin' }]
186
+ }], _renderPriority: [{
187
+ type: Input,
188
+ args: [{ alias: 'renderPriority' }]
189
+ }], _autoClear: [{
190
+ type: Input,
191
+ args: [{ alias: 'autoClear' }]
192
+ }], update: [{
193
+ type: Output
194
+ }], content: [{
195
+ type: ContentChild,
196
+ args: [NgtsSobaContent, { static: true, read: TemplateRef }]
197
+ }] } });
198
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l6bW8taGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL2dpem1vcy9zcmMvZ2l6bW8taGVscGVyL2dpem1vLWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQ04sc0JBQXNCLEVBQ3RCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sV0FBVyxFQUNYLFFBQVEsRUFDUixNQUFNLEVBQ04sVUFBVSxHQUVWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDTixrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLGNBQWMsRUFDZCxXQUFXLEdBRVgsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBb0I3QyxNQUFNLGVBQWUsR0FBRyxDQUFDLFFBQXVCLEVBQTZCLEVBQUU7SUFDOUUsT0FBTyxlQUFlLElBQUssUUFBMEIsQ0FBQztBQUN2RCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0FBUWxCLE1BQU0sQ0FBQyxNQUFNLENBQUMsd0JBQXdCLEVBQUUseUJBQXlCLENBQUMsR0FBRyxv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eEMsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ2pDOzBFQVFTLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRTZCLFVBQVU7c0JBQTVDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFO2dCQWVHLE9BQU87c0JBQXRDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO2dCQUljLGVBQWU7c0JBQXRELEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBSUMsVUFBVTtzQkFBNUMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUU7Z0JBSW5CLE1BQU07c0JBQWYsTUFBTTtnQkFFNkQsT0FBTztzQkFBMUUsWUFBWTt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG5cdENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXG5cdENvbXBvbmVudCxcblx0Q29udGVudENoaWxkLFxuXHRFdmVudEVtaXR0ZXIsXG5cdElucHV0LFxuXHRPdXRwdXQsXG5cdFRlbXBsYXRlUmVmLFxuXHRjb21wdXRlZCxcblx0ZWZmZWN0LFxuXHRmb3J3YXJkUmVmLFxuXHR0eXBlIFNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuXHROZ3RQb3J0YWwsXG5cdE5ndFBvcnRhbENvbnRlbnQsXG5cdGV4dGVuZCxcblx0aW5qZWN0QmVmb3JlUmVuZGVyLFxuXHRpbmplY3ROZ3RSZWYsXG5cdGluamVjdE5ndFN0b3JlLFxuXHRzaWduYWxTdG9yZSxcblx0dHlwZSBOZ3RHcm91cCxcbn0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBOZ3RzT3J0aG9ncmFwaGljQ2FtZXJhIH0gZnJvbSAnYW5ndWxhci10aHJlZS1zb2JhL2NhbWVyYXMnO1xuaW1wb3J0IHsgTmd0c1NvYmFDb250ZW50IH0gZnJvbSAnYW5ndWxhci10aHJlZS1zb2JhL3V0aWxzJztcbmltcG9ydCB7IGNyZWF0ZUluamVjdGlvblRva2VuIH0gZnJvbSAnbmd4dGVuc2lvbi9jcmVhdGUtaW5qZWN0aW9uLXRva2VuJztcbmltcG9ydCB7IEdyb3VwLCBNYXRyaXg0LCBPYmplY3QzRCwgT3J0aG9ncmFwaGljQ2FtZXJhLCBRdWF0ZXJuaW9uLCBWZWN0b3IzIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgT3JiaXRDb250cm9scyB9IGZyb20gJ3RocmVlLXN0ZGxpYic7XG5cbmV4cG9ydCB0eXBlIE5ndHNHaXptb0hlbHBlclN0YXRlID0ge1xuXHRhbGlnbm1lbnQ6XG5cdFx0fCAndG9wLWxlZnQnXG5cdFx0fCAndG9wLXJpZ2h0J1xuXHRcdHwgJ2JvdHRvbS1yaWdodCdcblx0XHR8ICdib3R0b20tbGVmdCdcblx0XHR8ICdib3R0b20tY2VudGVyJ1xuXHRcdHwgJ2NlbnRlci1yaWdodCdcblx0XHR8ICdjZW50ZXItbGVmdCdcblx0XHR8ICdjZW50ZXItY2VudGVyJ1xuXHRcdHwgJ3RvcC1jZW50ZXInO1xuXHRtYXJnaW46IFtudW1iZXIsIG51bWJlcl07XG5cdHJlbmRlclByaW9yaXR5OiBudW1iZXI7XG5cdGF1dG9DbGVhcj86IGJvb2xlYW47XG59O1xuXG50eXBlIENvbnRyb2xzUHJvdG8gPSB7IHVwZGF0ZSgpOiB2b2lkOyB0YXJnZXQ6IFRIUkVFLlZlY3RvcjMgfTtcblxuY29uc3QgaXNPcmJpdENvbnRyb2xzID0gKGNvbnRyb2xzOiBDb250cm9sc1Byb3RvKTogY29udHJvbHMgaXMgT3JiaXRDb250cm9scyA9PiB7XG5cdHJldHVybiAnbWluUG9sYXJBbmdsZScgaW4gKGNvbnRyb2xzIGFzIE9yYml0Q29udHJvbHMpO1xufTtcblxuZXh0ZW5kKHsgR3JvdXAgfSk7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcblx0aW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG5cdFx0J25ndHMtZ2l6bW8taGVscGVyJzogTmd0c0dpem1vSGVscGVyU3RhdGUgJiBOZ3RHcm91cDtcblx0fVxufVxuXG5leHBvcnQgY29uc3QgW2luamVjdE5ndHNHaXptb0hlbHBlckFwaSwgcHJvdmlkZU5ndHNHaXptb0hlbHBlckFwaV0gPSBjcmVhdGVJbmplY3Rpb25Ub2tlbihcblx0KGdpem1vSGVscGVyOiBOZ3RzR2l6bW9IZWxwZXIpID0+IGdpem1vSGVscGVyLmFwaSxcblx0eyBpc1Jvb3Q6IGZhbHNlLCBkZXBzOiBbZm9yd2FyZFJlZigoKSA9PiBOZ3RzR2l6bW9IZWxwZXIpXSB9LFxuKTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cy1naXptby1oZWxwZXInLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtcG9ydGFsIFtyZW5kZXJQcmlvcml0eV09XCJyZW5kZXJQcmlvcml0eSgpXCI+XG5cdFx0XHQ8bmctdGVtcGxhdGUgbmd0UG9ydGFsQ29udGVudD5cblx0XHRcdFx0PG5ndHMtb3J0aG9ncmFwaGljLWNhbWVyYSBbbWFrZURlZmF1bHRdPVwidHJ1ZVwiIFtwb3NpdGlvbl09XCJbMCwgMCwgMjAwXVwiIFtjYW1lcmFSZWZdPVwidmlydHVhbENhbVJlZlwiIC8+XG5cdFx0XHRcdDxuZ3QtZ3JvdXAgW3JlZl09XCJnaXptb1JlZlwiIFtwb3NpdGlvbl09XCJnaXptb1Bvc2l0aW9uKClcIj5cblx0XHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiIC8+XG5cdFx0XHRcdDwvbmd0LWdyb3VwPlxuXHRcdFx0PC9uZy10ZW1wbGF0ZT5cblx0XHQ8L25ndC1wb3J0YWw+XG5cdGAsXG5cdGltcG9ydHM6IFtOZ3RQb3J0YWwsIE5ndFBvcnRhbENvbnRlbnQsIE5ndHNPcnRob2dyYXBoaWNDYW1lcmEsIE5nVGVtcGxhdGVPdXRsZXRdLFxuXHRwcm92aWRlcnM6IFtwcm92aWRlTmd0c0dpem1vSGVscGVyQXBpKCldLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNHaXptb0hlbHBlciB7XG5cdHByaXZhdGUgaW5wdXRzID0gc2lnbmFsU3RvcmU8Tmd0c0dpem1vSGVscGVyU3RhdGU+KHtcblx0XHRhbGlnbm1lbnQ6ICdib3R0b20tcmlnaHQnLFxuXHRcdG1hcmdpbjogWzgwLCA4MF0sXG5cdFx0cmVuZGVyUHJpb3JpdHk6IDEsXG5cdH0pO1xuXG5cdEBJbnB1dCgpIGdpem1vUmVmID0gaW5qZWN0Tmd0UmVmPEdyb3VwPigpO1xuXG5cdEBJbnB1dCh7IGFsaWFzOiAnYWxpZ25tZW50JyB9KSBzZXQgX2FsaWdubWVudChcblx0XHRhbGlnbm1lbnQ6XG5cdFx0XHR8ICd0b3AtbGVmdCdcblx0XHRcdHwgJ3RvcC1yaWdodCdcblx0XHRcdHwgJ2JvdHRvbS1yaWdodCdcblx0XHRcdHwgJ2JvdHRvbS1sZWZ0J1xuXHRcdFx0fCAnYm90dG9tLWNlbnRlcidcblx0XHRcdHwgJ2NlbnRlci1yaWdodCdcblx0XHRcdHwgJ2NlbnRlci1sZWZ0J1xuXHRcdFx0fCAnY2VudGVyLWNlbnRlcidcblx0XHRcdHwgJ3RvcC1jZW50ZXInLFxuXHQpIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBhbGlnbm1lbnQgfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ21hcmdpbicgfSkgc2V0IF9tYXJnaW4obWFyZ2luOiBbbnVtYmVyLCBudW1iZXJdKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgbWFyZ2luIH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICdyZW5kZXJQcmlvcml0eScgfSkgc2V0IF9yZW5kZXJQcmlvcml0eShyZW5kZXJQcmlvcml0eTogbnVtYmVyKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgcmVuZGVyUHJpb3JpdHkgfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ2F1dG9DbGVhcicgfSkgc2V0IF9hdXRvQ2xlYXIoYXV0b0NsZWFyOiBib29sZWFuKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgYXV0b0NsZWFyIH0pO1xuXHR9XG5cblx0QE91dHB1dCgpIHVwZGF0ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuXHRAQ29udGVudENoaWxkKE5ndHNTb2JhQ29udGVudCwgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IFRlbXBsYXRlUmVmIH0pIGNvbnRlbnQhOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuXHRwcml2YXRlIHN0b3JlID0gaW5qZWN0Tmd0U3RvcmUoKTtcblx0cHJpdmF0ZSBtYWluQ2FtZXJhID0gdGhpcy5zdG9yZS5zZWxlY3QoJ2NhbWVyYScpO1xuXHQvLyBAdHMtZXhwZWN0LWVycm9yXG5cdHByaXZhdGUgZGVmYXVsdENvbnRyb2xzID0gdGhpcy5zdG9yZS5zZWxlY3QoJ2NvbnRyb2xzJykgYXMgU2lnbmFsPENvbnRyb2xzUHJvdG8+O1xuXHRwcml2YXRlIGludmFsaWRhdGUgPSB0aGlzLnN0b3JlLnNlbGVjdCgnaW52YWxpZGF0ZScpO1xuXHRwcml2YXRlIHNpemUgPSB0aGlzLnN0b3JlLnNlbGVjdCgnc2l6ZScpO1xuXG5cdHByaXZhdGUgYW5pbWF0aW5nID0gZmFsc2U7XG5cdHByaXZhdGUgcTEgPSBuZXcgUXVhdGVybmlvbigpO1xuXHRwcml2YXRlIHEyID0gbmV3IFF1YXRlcm5pb24oKTtcblx0cHJpdmF0ZSB0dXJuUmF0ZSA9IDIgKiBNYXRoLlBJOyAvLyB0dXJuIHJhdGUgaW4gYW5nbGVzIHBlciBzZWNvbmRcblx0cHJpdmF0ZSBtYXRyaXggPSBuZXcgTWF0cml4NCgpO1xuXG5cdHByaXZhdGUgcmFkaXVzID0gMDtcblx0cHJpdmF0ZSBmb2N1c1BvaW50ID0gbmV3IFZlY3RvcjMoMCwgMCwgMCk7XG5cdHByaXZhdGUgZGVmYXVsdFVwID0gbmV3IFZlY3RvcjMoMCwgMCwgMCk7XG5cdHByaXZhdGUgdGFyZ2V0ID0gbmV3IFZlY3RvcjMoKTtcblx0cHJpdmF0ZSB0YXJnZXRQb3NpdGlvbiA9IG5ldyBWZWN0b3IzKCk7XG5cdHByaXZhdGUgZHVtbXkgPSBuZXcgT2JqZWN0M0QoKTtcblxuXHRwcml2YXRlIG1hcmdpbiA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnbWFyZ2luJyk7XG5cdHByaXZhdGUgYWxpZ25tZW50ID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdhbGlnbm1lbnQnKTtcblxuXHR2aXJ0dWFsQ2FtUmVmID0gaW5qZWN0Tmd0UmVmPE9ydGhvZ3JhcGhpY0NhbWVyYT4oKTtcblx0cmVuZGVyUHJpb3JpdHkgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ3JlbmRlclByaW9yaXR5Jyk7XG5cblx0Z2l6bW9Qb3NpdGlvbiA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBbeyB3aWR0aCwgaGVpZ2h0IH0sIFttYXJnaW5YLCBtYXJnaW5ZXSwgYWxpZ25tZW50XSA9IFt0aGlzLnNpemUoKSwgdGhpcy5tYXJnaW4oKSwgdGhpcy5hbGlnbm1lbnQoKV07XG5cdFx0Y29uc3QgeCA9IGFsaWdubWVudC5lbmRzV2l0aCgnLWNlbnRlcicpXG5cdFx0XHQ/IDBcblx0XHRcdDogYWxpZ25tZW50LmVuZHNXaXRoKCctbGVmdCcpXG5cdFx0XHQ/IC13aWR0aCAvIDIgKyBtYXJnaW5YXG5cdFx0XHQ6IHdpZHRoIC8gMiAtIG1hcmdpblg7XG5cdFx0Y29uc3QgeSA9IGFsaWdubWVudC5zdGFydHNXaXRoKCdjZW50ZXItJylcblx0XHRcdD8gMFxuXHRcdFx0OiBhbGlnbm1lbnQuc3RhcnRzV2l0aCgndG9wLScpXG5cdFx0XHQ/IGhlaWdodCAvIDIgLSBtYXJnaW5ZXG5cdFx0XHQ6IC1oZWlnaHQgLyAyICsgbWFyZ2luWTtcblx0XHRyZXR1cm4gW3gsIHksIDBdO1xuXHR9KTtcblxuXHRhcGkgPSB7XG5cdFx0dHdlZW5DYW1lcmE6IChkaXJlY3Rpb246IFZlY3RvcjMpID0+IHtcblx0XHRcdGNvbnN0IFtkZWZhdWx0Q29udHJvbHMsIG1haW5DYW1lcmEsIGludmFsaWRhdGVdID0gW1xuXHRcdFx0XHR0aGlzLmRlZmF1bHRDb250cm9scygpLFxuXHRcdFx0XHR0aGlzLm1haW5DYW1lcmEoKSxcblx0XHRcdFx0dGhpcy5pbnZhbGlkYXRlKCksXG5cdFx0XHRdO1xuXHRcdFx0dGhpcy5hbmltYXRpbmcgPSB0cnVlO1xuXHRcdFx0aWYgKGRlZmF1bHRDb250cm9scykgdGhpcy5mb2N1c1BvaW50ID0gZGVmYXVsdENvbnRyb2xzPy50YXJnZXQ7XG5cdFx0XHR0aGlzLnJhZGl1cyA9IG1haW5DYW1lcmEucG9zaXRpb24uZGlzdGFuY2VUbyh0aGlzLnRhcmdldCk7XG5cblx0XHRcdC8vIFJvdGF0ZSBmcm9tIGN1cnJlbnQgY2FtZXJhIG9yaWVudGF0aW9uXG5cdFx0XHR0aGlzLnExLmNvcHkobWFpbkNhbWVyYS5xdWF0ZXJuaW9uKTtcblxuXHRcdFx0Ly8gVG8gbmV3IGN1cnJlbnQgY2FtZXJhIG9yaWVudGF0aW9uXG5cdFx0XHR0aGlzLnRhcmdldFBvc2l0aW9uLmNvcHkoZGlyZWN0aW9uKS5tdWx0aXBseVNjYWxhcih0aGlzLnJhZGl1cykuYWRkKHRoaXMudGFyZ2V0KTtcblxuXHRcdFx0dGhpcy5kdW1teS5sb29rQXQodGhpcy50YXJnZXRQb3NpdGlvbik7XG5cdFx0XHR0aGlzLmR1bW15LnVwLmNvcHkobWFpbkNhbWVyYS51cCk7XG5cblx0XHRcdHRoaXMucTIuY29weSh0aGlzLmR1bW15LnF1YXRlcm5pb24pO1xuXG5cdFx0XHRpbnZhbGlkYXRlKCk7XG5cdFx0fSxcblx0fTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHR0aGlzLnRyYWNrTWFpbkNhbWVyYVVwKCk7XG5cdFx0dGhpcy5iZWZvcmVSZW5kZXIoKTtcblx0fVxuXG5cdHByaXZhdGUgdHJhY2tNYWluQ2FtZXJhVXAoKSB7XG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdGNvbnN0IG1haW5DYW1lcmEgPSB0aGlzLm1haW5DYW1lcmEoKTtcblx0XHRcdHRoaXMuZGVmYXVsdFVwLmNvcHkobWFpbkNhbWVyYS51cCk7XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIGJlZm9yZVJlbmRlcigpIHtcblx0XHRpbmplY3RCZWZvcmVSZW5kZXIoKHsgZGVsdGEgfSkgPT4ge1xuXHRcdFx0Y29uc3QgW2dpem1vLCB2aXJ0dWFsQ2FtLCBkZWZhdWx0Q29udHJvbHMsIG1haW5DYW1lcmEsIGludmFsaWRhdGVdID0gW1xuXHRcdFx0XHR0aGlzLmdpem1vUmVmLm5hdGl2ZUVsZW1lbnQsXG5cdFx0XHRcdHRoaXMudmlydHVhbENhbVJlZi5uYXRpdmVFbGVtZW50LFxuXHRcdFx0XHR0aGlzLmRlZmF1bHRDb250cm9scygpLFxuXHRcdFx0XHR0aGlzLm1haW5DYW1lcmEoKSxcblx0XHRcdFx0dGhpcy5pbnZhbGlkYXRlKCksXG5cdFx0XHRdO1xuXG5cdFx0XHRpZiAoZ2l6bW8gJiYgdmlydHVhbENhbSkge1xuXHRcdFx0XHQvLyBBbmltYXRlIHN0ZXBcblx0XHRcdFx0aWYgKHRoaXMuYW5pbWF0aW5nKSB7XG5cdFx0XHRcdFx0aWYgKHRoaXMucTEuYW5nbGVUbyh0aGlzLnEyKSA8IDAuMDEpIHtcblx0XHRcdFx0XHRcdHRoaXMuYW5pbWF0aW5nID0gZmFsc2U7XG5cdFx0XHRcdFx0XHQvLyBPcmJpdCBjb250cm9scyB1c2VzIFVQIHZlY3RvciBhcyB0aGUgb3JiaXQgYXhlcyxcblx0XHRcdFx0XHRcdC8vIHNvIHdlIG5lZWQgdG8gcmVzZXQgaXQgYWZ0ZXIgdGhlIGFuaW1hdGlvbiBpcyBkb25lXG5cdFx0XHRcdFx0XHQvLyBtb3ZpbmcgaXQgYXJvdW5kIGZvciB0aGUgY29udHJvbHMgdG8gd29yayBjb3JyZWN0bHlcblx0XHRcdFx0XHRcdGlmIChpc09yYml0Q29udHJvbHMoZGVmYXVsdENvbnRyb2xzKSkge1xuXHRcdFx0XHRcdFx0XHRtYWluQ2FtZXJhLnVwLmNvcHkodGhpcy5kZWZhdWx0VXApO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRjb25zdCBzdGVwID0gZGVsdGEgKiB0aGlzLnR1cm5SYXRlO1xuXHRcdFx0XHRcdFx0Ly8gYW5pbWF0ZSBwb3NpdGlvbiBieSBkb2luZyBhIHNsZXJwIGFuZCB0aGVuIHNjYWxpbmcgdGhlIHBvc2l0aW9uIG9uIHRoZSB1bml0IHNwaGVyZVxuXHRcdFx0XHRcdFx0dGhpcy5xMS5yb3RhdGVUb3dhcmRzKHRoaXMucTIsIHN0ZXApO1xuXHRcdFx0XHRcdFx0Ly8gYW5pbWF0ZSBvcmllbnRhdGlvblxuXHRcdFx0XHRcdFx0bWFpbkNhbWVyYS5wb3NpdGlvblxuXHRcdFx0XHRcdFx0XHQuc2V0KDAsIDAsIDEpXG5cdFx0XHRcdFx0XHRcdC5hcHBseVF1YXRlcm5pb24odGhpcy5xMSlcblx0XHRcdFx0XHRcdFx0Lm11bHRpcGx5U2NhbGFyKHRoaXMucmFkaXVzKVxuXHRcdFx0XHRcdFx0XHQuYWRkKHRoaXMuZm9jdXNQb2ludCk7XG5cdFx0XHRcdFx0XHRtYWluQ2FtZXJhLnVwLnNldCgwLCAxLCAwKS5hcHBseVF1YXRlcm5pb24odGhpcy5xMSkubm9ybWFsaXplKCk7XG5cdFx0XHRcdFx0XHRtYWluQ2FtZXJhLnF1YXRlcm5pb24uY29weSh0aGlzLnExKTtcblx0XHRcdFx0XHRcdGlmICh0aGlzLnVwZGF0ZS5vYnNlcnZlZCkgdGhpcy51cGRhdGUuZW1pdCgpO1xuXHRcdFx0XHRcdFx0ZWxzZSBpZiAoZGVmYXVsdENvbnRyb2xzKSBkZWZhdWx0Q29udHJvbHMudXBkYXRlKCk7XG5cdFx0XHRcdFx0XHRpbnZhbGlkYXRlKCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gU3luYyBHaXptbyB3aXRoIG1haW4gY2FtZXJhIG9yaWVudGF0aW9uXG5cdFx0XHRcdHRoaXMubWF0cml4LmNvcHkobWFpbkNhbWVyYS5tYXRyaXgpLmludmVydCgpO1xuXHRcdFx0XHRnaXptby5xdWF0ZXJuaW9uLnNldEZyb21Sb3RhdGlvbk1hdHJpeCh0aGlzLm1hdHJpeCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==
@@ -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=