angular-three-soba 2.0.0-beta.7 → 2.0.0-beta.8

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 (296) 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 +23 -11
  4. package/abstractions/grid/grid.d.ts +41 -50
  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 +47 -40
  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 +30 -13
  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 +119 -121
  22. package/esm2022/cameras/camera/camera-content.mjs +5 -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 +94 -90
  29. package/esm2022/loaders/gltf-loader/gltf-loader.mjs +3 -6
  30. package/esm2022/loaders/loader/loader.mjs +92 -87
  31. package/esm2022/loaders/progress/progress.mjs +1 -1
  32. package/esm2022/loaders/texture-loader/texture-loader.mjs +4 -4
  33. package/esm2022/materials/index.mjs +2 -1
  34. package/esm2022/materials/mesh-distort-material/mesh-distort-material.mjs +60 -51
  35. package/esm2022/materials/mesh-reflector-material/mesh-reflector-material.mjs +239 -255
  36. package/esm2022/materials/mesh-refraction-material/mesh-refraction-material.mjs +99 -97
  37. package/esm2022/materials/mesh-transmission-material/mesh-transmission-material.mjs +167 -146
  38. package/esm2022/materials/mesh-wobble-material/mesh-wobble-material.mjs +44 -42
  39. package/esm2022/materials/point-material/point-material.mjs +46 -0
  40. package/esm2022/misc/animations/animations.mjs +20 -16
  41. package/esm2022/misc/bake-shadows/bake-shadows.mjs +13 -13
  42. package/esm2022/misc/caustics/caustics.mjs +387 -0
  43. package/esm2022/misc/decal/decal.mjs +187 -0
  44. package/esm2022/misc/depth-buffer/depth-buffer.mjs +33 -35
  45. package/esm2022/misc/example/example.mjs +160 -0
  46. package/esm2022/misc/fbo/fbo.mjs +35 -35
  47. package/esm2022/misc/html/html-wrapper.mjs +478 -0
  48. package/esm2022/misc/html/html.mjs +304 -0
  49. package/esm2022/misc/index.mjs +10 -1
  50. package/esm2022/misc/sampler/sampler.mjs +142 -0
  51. package/esm2022/misc/shadow/shadow.mjs +111 -0
  52. package/esm2022/misc/stats-gl/stats-gl.mjs +61 -0
  53. package/esm2022/misc/trail/trail.mjs +209 -0
  54. package/esm2022/misc/trail-texture/inject-trail-texture.mjs +17 -0
  55. package/esm2022/misc/trail-texture/trail-texture.mjs +106 -0
  56. package/esm2022/modifiers/angular-three-soba-modifiers.mjs +5 -0
  57. package/esm2022/modifiers/curve-modifier/curve-modifier.mjs +64 -0
  58. package/esm2022/modifiers/index.mjs +2 -0
  59. package/esm2022/performances/adaptive-dpr/adaptive-dpr.mjs +44 -0
  60. package/esm2022/performances/adaptive-events/adaptive-events.mjs +27 -0
  61. package/esm2022/performances/angular-three-soba-performances.mjs +5 -0
  62. package/esm2022/performances/index.mjs +6 -0
  63. package/esm2022/performances/points/points-input.mjs +64 -0
  64. package/esm2022/performances/points/points.mjs +329 -0
  65. package/esm2022/performances/points/position-point.mjs +54 -0
  66. package/esm2022/performances/segments/segment-object.mjs +9 -0
  67. package/esm2022/performances/segments/segments.mjs +182 -0
  68. package/esm2022/shaders/blur-pass/blur-pass.mjs +1 -1
  69. package/esm2022/shaders/caustics/caustics-material.mjs +130 -0
  70. package/esm2022/shaders/caustics/caustics-projection-material.mjs +31 -0
  71. package/esm2022/shaders/convolution-material/convolution-material.mjs +1 -1
  72. package/esm2022/shaders/discard-material/discard-material.mjs +1 -1
  73. package/esm2022/shaders/grid-material/grid-material.mjs +29 -14
  74. package/esm2022/shaders/index.mjs +5 -3
  75. package/esm2022/shaders/mesh-distort-material/mesh-distort-material.mjs +42 -41
  76. package/esm2022/shaders/mesh-reflector-material/mesh-reflector-material.mjs +1 -1
  77. package/esm2022/shaders/mesh-refraction-material/mesh-refraction-material.mjs +2 -2
  78. package/esm2022/shaders/mesh-transmission-material/mesh-transmission-material.mjs +4 -4
  79. package/esm2022/shaders/mesh-wobble-material/mesh-wobble-material.mjs +1 -1
  80. package/esm2022/shaders/shader-material/shader-material.mjs +1 -1
  81. package/esm2022/shaders/soft-shadow-material/soft-shadow-material.mjs +17 -25
  82. package/esm2022/shaders/sparkles-material/sparkles-material.mjs +32 -46
  83. package/esm2022/shaders/spot-light-material/spot-light-material.mjs +7 -7
  84. package/esm2022/shaders/star-field-material/star-field-material.mjs +3 -2
  85. package/esm2022/shaders/wireframe-material/wireframe-material.mjs +247 -0
  86. package/esm2022/staging/accumulative-shadows/accumulative-shadows.mjs +160 -176
  87. package/esm2022/staging/accumulative-shadows/progressive-light-map.mjs +1 -1
  88. package/esm2022/staging/accumulative-shadows/randomized-lights.mjs +126 -128
  89. package/esm2022/staging/backdrop/backdrop.mjs +77 -0
  90. package/esm2022/staging/bb-anchor/bb-anchor.mjs +70 -0
  91. package/esm2022/staging/bounds/bounds.mjs +144 -143
  92. package/esm2022/staging/camera-shake/camera-shake.mjs +86 -80
  93. package/esm2022/staging/center/center.mjs +106 -91
  94. package/esm2022/staging/cloud/cloud.mjs +118 -124
  95. package/esm2022/staging/contact-shadows/contact-shadows.mjs +131 -134
  96. package/esm2022/staging/environment/assets.mjs +12 -12
  97. package/esm2022/staging/environment/environment-cube.mjs +28 -30
  98. package/esm2022/staging/environment/environment-ground.mjs +18 -20
  99. package/esm2022/staging/environment/environment-input.mjs +97 -84
  100. package/esm2022/staging/environment/environment-map.mjs +33 -33
  101. package/esm2022/staging/environment/environment-portal.mjs +75 -97
  102. package/esm2022/staging/environment/environment.mjs +34 -51
  103. package/esm2022/staging/environment/utils.mjs +35 -14
  104. package/esm2022/staging/float/float.mjs +70 -58
  105. package/esm2022/staging/index.mjs +7 -3
  106. package/esm2022/staging/matcap-texture/matcap-texture.mjs +64 -0
  107. package/esm2022/staging/normal-texture/normal-texture.mjs +53 -0
  108. package/esm2022/staging/sky/sky.mjs +85 -80
  109. package/esm2022/staging/sparkles/sparkles.mjs +108 -105
  110. package/esm2022/staging/spot-light/shadow-mesh-input.mjs +63 -0
  111. package/esm2022/staging/spot-light/shadow-mesh.mjs +266 -0
  112. package/esm2022/staging/spot-light/spot-light-input.mjs +67 -58
  113. package/esm2022/staging/spot-light/spot-light.mjs +51 -64
  114. package/esm2022/staging/spot-light/volumetric-mesh.mjs +61 -78
  115. package/esm2022/staging/stage/stage.mjs +304 -290
  116. package/esm2022/staging/stars/stars.mjs +101 -102
  117. package/esm2022/staging/wireframe/wireframe-input.mjs +191 -0
  118. package/esm2022/staging/wireframe/wireframe.mjs +224 -0
  119. package/esm2022/utils/angular-three-soba-utils.mjs +5 -0
  120. package/esm2022/utils/content/content.mjs +15 -0
  121. package/esm2022/utils/index.mjs +2 -0
  122. package/fesm2022/angular-three-soba-abstractions.mjs +505 -2087
  123. package/fesm2022/angular-three-soba-abstractions.mjs.map +1 -1
  124. package/fesm2022/angular-three-soba-cameras.mjs +302 -259
  125. package/fesm2022/angular-three-soba-cameras.mjs.map +1 -1
  126. package/fesm2022/angular-three-soba-controls.mjs +93 -88
  127. package/fesm2022/angular-three-soba-controls.mjs.map +1 -1
  128. package/fesm2022/angular-three-soba-loaders.mjs +94 -90
  129. package/fesm2022/angular-three-soba-loaders.mjs.map +1 -1
  130. package/fesm2022/angular-three-soba-materials.mjs +655 -590
  131. package/fesm2022/angular-three-soba-materials.mjs.map +1 -1
  132. package/fesm2022/angular-three-soba-misc.mjs +2198 -89
  133. package/fesm2022/angular-three-soba-misc.mjs.map +1 -1
  134. package/fesm2022/angular-three-soba-modifiers.mjs +71 -0
  135. package/fesm2022/angular-three-soba-modifiers.mjs.map +1 -0
  136. package/fesm2022/angular-three-soba-performances.mjs +697 -0
  137. package/fesm2022/angular-three-soba-performances.mjs.map +1 -0
  138. package/fesm2022/angular-three-soba-shaders.mjs +501 -264
  139. package/fesm2022/angular-three-soba-shaders.mjs.map +1 -1
  140. package/fesm2022/angular-three-soba-staging.mjs +2870 -2555
  141. package/fesm2022/angular-three-soba-staging.mjs.map +1 -1
  142. package/fesm2022/angular-three-soba-utils.mjs +22 -0
  143. package/fesm2022/angular-three-soba-utils.mjs.map +1 -0
  144. package/loaders/gltf-loader/gltf-loader.d.ts +4 -3
  145. package/loaders/loader/loader.d.ts +19 -17
  146. package/loaders/progress/progress.d.ts +1 -1
  147. package/loaders/texture-loader/texture-loader.d.ts +2 -2
  148. package/materials/index.d.ts +1 -0
  149. package/materials/mesh-distort-material/mesh-distort-material.d.ts +25 -15
  150. package/materials/mesh-reflector-material/mesh-reflector-material.d.ts +74 -56
  151. package/materials/mesh-refraction-material/mesh-refraction-material.d.ts +33 -21
  152. package/materials/mesh-transmission-material/mesh-transmission-material.d.ts +55 -39
  153. package/materials/mesh-wobble-material/mesh-wobble-material.d.ts +19 -10
  154. package/materials/point-material/point-material.d.ts +24 -0
  155. package/metadata.json +1 -0
  156. package/misc/animations/animations.d.ts +6 -4
  157. package/misc/caustics/caustics.d.ts +87 -0
  158. package/misc/decal/decal.d.ts +49 -0
  159. package/misc/depth-buffer/depth-buffer.d.ts +2 -2
  160. package/misc/example/example.d.ts +81 -0
  161. package/misc/fbo/fbo.d.ts +2 -2
  162. package/misc/html/html-wrapper.d.ts +559 -0
  163. package/misc/html/html.d.ts +214 -0
  164. package/misc/index.d.ts +9 -0
  165. package/misc/sampler/sampler.d.ts +67 -0
  166. package/misc/shadow/shadow.d.ts +37 -0
  167. package/misc/stats-gl/stats-gl.d.ts +24 -0
  168. package/misc/trail/trail.d.ts +57 -0
  169. package/misc/trail-texture/inject-trail-texture.d.ts +9 -0
  170. package/misc/trail-texture/trail-texture.d.ts +50 -0
  171. package/modifiers/README.md +3 -0
  172. package/modifiers/curve-modifier/curve-modifier.d.ts +23 -0
  173. package/modifiers/index.d.ts +1 -0
  174. package/package.json +30 -22
  175. package/performances/README.md +3 -0
  176. package/performances/adaptive-dpr/adaptive-dpr.d.ts +14 -0
  177. package/{performance/adaptive → performances/adaptive-events}/adaptive-events.d.ts +3 -0
  178. package/performances/index.d.ts +5 -0
  179. package/performances/points/points-input.d.ts +32 -0
  180. package/performances/points/points.d.ts +92 -0
  181. package/{performance/instances/position-mesh.d.ts → performances/points/position-point.d.ts} +4 -3
  182. package/performances/segments/segment-object.d.ts +7 -0
  183. package/performances/segments/segments.d.ts +124 -0
  184. package/shaders/grid-material/grid-material.d.ts +33 -0
  185. package/shaders/index.d.ts +4 -2
  186. package/shaders/mesh-distort-material/mesh-distort-material.d.ts +146 -1
  187. package/shaders/mesh-transmission-material/mesh-transmission-material.d.ts +1 -1
  188. package/shaders/shader-material/shader-material.d.ts +2 -2
  189. package/shaders/soft-shadow-material/soft-shadow-material.d.ts +10 -1
  190. package/shaders/sparkles-material/sparkles-material.d.ts +15 -1
  191. package/shaders/spot-light-material/spot-light-material.d.ts +11 -2
  192. package/shaders/star-field-material/star-field-material.d.ts +11 -1
  193. package/shaders/wireframe-material/wireframe-material.d.ts +58 -0
  194. package/staging/accumulative-shadows/accumulative-shadows.d.ts +89 -39
  195. package/staging/accumulative-shadows/randomized-lights.d.ts +40 -27
  196. package/staging/backdrop/backdrop.d.ts +30 -0
  197. package/staging/bb-anchor/bb-anchor.d.ts +27 -0
  198. package/staging/bounds/bounds.d.ts +100 -24
  199. package/staging/camera-shake/camera-shake.d.ts +30 -19
  200. package/staging/center/center.d.ts +43 -35
  201. package/staging/cloud/cloud.d.ts +26 -23
  202. package/staging/contact-shadows/contact-shadows.d.ts +41 -28
  203. package/staging/environment/assets.d.ts +9 -9
  204. package/staging/environment/environment-cube.d.ts +9 -5
  205. package/staging/environment/environment-ground.d.ts +7 -7
  206. package/staging/environment/environment-input.d.ts +36 -36
  207. package/staging/environment/environment-map.d.ts +10 -5
  208. package/staging/environment/environment-portal.d.ts +10 -5
  209. package/staging/environment/environment.d.ts +0 -4
  210. package/staging/environment/utils.d.ts +2 -2
  211. package/staging/float/float.d.ts +14 -10
  212. package/staging/index.d.ts +6 -2
  213. package/staging/matcap-texture/matcap-texture.d.ts +13 -0
  214. package/staging/normal-texture/normal-texture.d.ts +16 -0
  215. package/staging/sky/sky.d.ts +28 -21
  216. package/staging/sparkles/sparkles.d.ts +35 -21
  217. package/staging/spot-light/shadow-mesh-input.d.ts +29 -0
  218. package/staging/spot-light/shadow-mesh.d.ts +37 -0
  219. package/staging/spot-light/spot-light-input.d.ts +25 -25
  220. package/staging/spot-light/spot-light.d.ts +31 -15
  221. package/staging/spot-light/volumetric-mesh.d.ts +15 -9
  222. package/staging/stage/stage.d.ts +88 -63
  223. package/staging/stars/stars.d.ts +27 -16
  224. package/staging/wireframe/wireframe-input.d.ts +65 -0
  225. package/staging/wireframe/wireframe.d.ts +28 -0
  226. package/utils/README.md +3 -0
  227. package/utils/content/content.d.ts +8 -0
  228. package/utils/index.d.ts +1 -0
  229. package/web-types.json +1 -0
  230. package/abstractions/catmull-rom-line/catmull-rom-line.d.ts +0 -25
  231. package/abstractions/cubic-bezier-line/cubic-bezier-line.d.ts +0 -25
  232. package/abstractions/gizmo-helper/gizmo-helper.d.ts +0 -34
  233. package/abstractions/gizmo-helper/gizmo-viewcube/constants.d.ts +0 -12
  234. package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.d.ts +0 -22
  235. package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.d.ts +0 -30
  236. package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.d.ts +0 -32
  237. package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube.d.ts +0 -14
  238. package/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.d.ts +0 -47
  239. package/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport.d.ts +0 -40
  240. package/abstractions/line/line-input.d.ts +0 -42
  241. package/abstractions/line/line.d.ts +0 -35
  242. package/abstractions/quadratic-bezier-line/quadratic-bezier-line.d.ts +0 -23
  243. package/esm2022/abstractions/catmull-rom-line/catmull-rom-line.mjs +0 -131
  244. package/esm2022/abstractions/cubic-bezier-line/cubic-bezier-line.mjs +0 -113
  245. package/esm2022/abstractions/gizmo-helper/gizmo-helper.mjs +0 -210
  246. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/constants.mjs +0 -31
  247. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +0 -95
  248. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +0 -155
  249. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.mjs +0 -62
  250. package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube.mjs +0 -80
  251. package/esm2022/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +0 -206
  252. package/esm2022/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport.mjs +0 -273
  253. package/esm2022/abstractions/line/line-input.mjs +0 -113
  254. package/esm2022/abstractions/line/line.mjs +0 -165
  255. package/esm2022/abstractions/quadratic-bezier-line/quadratic-bezier-line.mjs +0 -128
  256. package/esm2022/performance/adaptive/adaptive-dpr.mjs +0 -46
  257. package/esm2022/performance/adaptive/adaptive-events.mjs +0 -31
  258. package/esm2022/performance/angular-three-soba-performance.mjs +0 -5
  259. package/esm2022/performance/detailed/detailed.mjs +0 -61
  260. package/esm2022/performance/index.mjs +0 -7
  261. package/esm2022/performance/instances/instance.mjs +0 -48
  262. package/esm2022/performance/instances/instances.mjs +0 -189
  263. package/esm2022/performance/instances/position-mesh.mjs +0 -52
  264. package/esm2022/performance/stats/stats.mjs +0 -79
  265. package/esm2022/shaders/caustics-material/caustics-material.mjs +0 -128
  266. package/esm2022/shaders/caustics-material/caustics-projection-material.mjs +0 -33
  267. package/esm2022/staging/caustics/caustisc.mjs +0 -384
  268. package/esm2022/staging/spot-light/spot-light-shadow-mesh-input.mjs +0 -57
  269. package/esm2022/staging/spot-light/spot-light-shadow-mesh.mjs +0 -258
  270. package/fesm2022/angular-three-soba-performance.mjs +0 -487
  271. package/fesm2022/angular-three-soba-performance.mjs.map +0 -1
  272. package/performance/README.md +0 -3
  273. package/performance/adaptive/adaptive-dpr.d.ts +0 -8
  274. package/performance/detailed/detailed.d.ts +0 -20
  275. package/performance/index.d.ts +0 -6
  276. package/performance/instances/instance.d.ts +0 -9
  277. package/performance/instances/instances.d.ts +0 -35
  278. package/performance/stats/stats.d.ts +0 -18
  279. package/plugin/generators.json +0 -19
  280. package/plugin/libs/plugin/README.md +0 -11
  281. package/plugin/package.json +0 -9
  282. package/plugin/src/generators/init/compat.d.ts +0 -2
  283. package/plugin/src/generators/init/compat.js +0 -6
  284. package/plugin/src/generators/init/compat.js.map +0 -1
  285. package/plugin/src/generators/init/init.d.ts +0 -7
  286. package/plugin/src/generators/init/init.js +0 -28
  287. package/plugin/src/generators/init/init.js.map +0 -1
  288. package/plugin/src/generators/init/schema.json +0 -6
  289. package/plugin/src/index.d.ts +0 -1
  290. package/plugin/src/index.js +0 -6
  291. package/plugin/src/index.js.map +0 -1
  292. package/staging/caustics/caustisc.d.ts +0 -70
  293. package/staging/spot-light/spot-light-shadow-mesh-input.d.ts +0 -29
  294. package/staging/spot-light/spot-light-shadow-mesh.d.ts +0 -38
  295. /package/shaders/{caustics-material → caustics}/caustics-material.d.ts +0 -0
  296. /package/shaders/{caustics-material → caustics}/caustics-projection-material.d.ts +0 -0
@@ -1,81 +1,85 @@
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
23
  }
24
- set keyEvents(keyEvents) {
25
- this.set({ keyEvents });
24
+ set _keyEvents(keyEvents) {
25
+ this.inputs.set({ keyEvents });
26
26
  }
27
- #store;
28
27
  constructor() {
29
- super({ enableDamping: true, regress: false, makeDefault: false, keyEvents: false });
28
+ this.inputs = signalStore({
29
+ enableDamping: true,
30
+ regress: false,
31
+ makeDefault: false,
32
+ keyEvents: false,
33
+ });
30
34
  this.controlsRef = injectNgtRef();
31
35
  this.change = new EventEmitter();
32
36
  this.start = new EventEmitter();
33
37
  this.end = new EventEmitter();
34
- 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');
35
48
  this.args = computed(() => [this.controlsRef.nativeElement]);
36
- this.damping = this.select('enableDamping');
49
+ this.enableDamping = this.inputs.select('enableDamping');
37
50
  injectBeforeRender(() => {
38
- const controls = this.controlsRef.untracked;
51
+ const controls = this.controlsRef.nativeElement;
39
52
  if (controls && controls.enabled) {
40
53
  controls.update();
41
54
  }
42
55
  }, { priority: -1 });
43
- this.#setControls();
44
- this.#connectElement();
45
- this.#makeControlsDefault();
46
- this.#setEvents();
56
+ this.setControls();
57
+ this.connectElement();
58
+ this.makeControlsDefault();
59
+ this.setEvents();
47
60
  }
48
- #setControls() {
49
- const camera = this.select('camera');
50
- const defaultCamera = this.#store.select('camera');
51
- const trigger = computed(() => ({ camera: camera(), defaultCamera: defaultCamera() }));
61
+ setControls() {
52
62
  effect(() => {
53
- const { camera, defaultCamera } = trigger();
63
+ const [camera, defaultCamera, controls] = [
64
+ this.camera(),
65
+ this.defaultCamera(),
66
+ this.controlsRef.nativeElement,
67
+ ];
54
68
  const controlsCamera = camera || defaultCamera;
55
- const controls = this.controlsRef.nativeElement;
56
69
  if (!controls || controls.object !== controlsCamera) {
57
70
  this.controlsRef.nativeElement = new OrbitControls(controlsCamera);
58
71
  }
59
- }, { allowSignalWrites: true });
60
- }
61
- #connectElement() {
62
- const glDomElement = this.#store.select('gl', 'domElement');
63
- const domElement = this.select('domElement');
64
- const regress = this.select('regress');
65
- const invalidate = this.#store.select('invalidate');
66
- const keyEvents = this.select('keyEvents');
67
- const trigger = computed(() => {
68
- const eventsSource = this.#store.get('events', 'connected');
69
- return {
70
- keyEvents: keyEvents(),
71
- controls: this.controlsRef.nativeElement,
72
- domElement: domElement() || eventsSource || glDomElement(),
73
- regress: regress(),
74
- invalidate: invalidate(),
75
- };
76
72
  });
73
+ }
74
+ connectElement() {
77
75
  effect((onCleanup) => {
78
- const { domElement, controls, keyEvents } = 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
+ ];
79
83
  if (!controls)
80
84
  return;
81
85
  if (keyEvents) {
@@ -87,38 +91,32 @@ class NgtsOrbitControls extends NgtSignalStore {
87
91
  onCleanup(() => void controls.dispose());
88
92
  });
89
93
  }
90
- #makeControlsDefault() {
91
- const makeDefault = this.select('makeDefault');
92
- const trigger = computed(() => ({ controls: this.controlsRef.nativeElement, makeDefault: makeDefault() }));
94
+ makeControlsDefault() {
93
95
  effect((onCleanup) => {
94
- const { controls, makeDefault } = trigger();
96
+ const [controls, makeDefault] = [this.controlsRef.nativeElement, this.makeDefault()];
95
97
  if (!controls)
96
98
  return;
97
99
  if (makeDefault) {
98
- const oldControls = this.#store.get('controls');
99
- this.#store.set({ controls });
100
- 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 }));
101
103
  }
102
- }, { allowSignalWrites: true });
104
+ });
103
105
  }
104
- #setEvents() {
105
- const invalidate = this.#store.select('invalidate');
106
- const performance = this.#store.select('performance');
107
- const regress = this.select('regress');
108
- const trigger = computed(() => ({
109
- invalidate: invalidate(),
110
- performance: performance(),
111
- regress: regress(),
112
- controls: this.controlsRef.nativeElement,
113
- }));
106
+ setEvents() {
114
107
  effect((onCleanup) => {
115
- 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
+ ];
116
114
  if (!controls)
117
115
  return;
118
116
  const changeCallback = (e) => {
119
117
  invalidate();
120
118
  if (regress)
121
- performance.regress();
119
+ performanceRegress();
122
120
  if (this.change.observed)
123
121
  this.change.emit(e);
124
122
  };
@@ -138,35 +136,41 @@ class NgtsOrbitControls extends NgtSignalStore {
138
136
  });
139
137
  });
140
138
  }
141
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: NgtsOrbitControls, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
142
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.3", type: NgtsOrbitControls, isStandalone: true, selector: "ngts-orbit-controls", inputs: { controlsRef: "controlsRef", camera: "camera", domElement: "domElement", makeDefault: "makeDefault", regress: "regress", target: "target", enableDamping: "enableDamping", keyEvents: "keyEvents" }, 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.1.7", ngImport: i0, type: NgtsOrbitControls, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
140
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", 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: ` <ngt-primitive *args="args()" ngtCompound [enableDamping]="enableDamping()" /> `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }] }); }
143
141
  }
144
- export { NgtsOrbitControls };
145
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: NgtsOrbitControls, decorators: [{
142
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: NgtsOrbitControls, decorators: [{
146
143
  type: Component,
147
144
  args: [{
148
145
  selector: 'ngts-orbit-controls',
149
146
  standalone: true,
150
- template: ` <ngt-primitive *args="args()" ngtCompound [enableDamping]="damping()" /> `,
147
+ template: ` <ngt-primitive *args="args()" ngtCompound [enableDamping]="enableDamping()" /> `,
151
148
  imports: [NgtArgs],
152
149
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
153
150
  }]
154
151
  }], ctorParameters: function () { return []; }, propDecorators: { controlsRef: [{
155
152
  type: Input
156
- }], camera: [{
157
- type: Input
158
- }], domElement: [{
159
- type: Input
160
- }], makeDefault: [{
161
- type: Input
162
- }], regress: [{
163
- type: Input
164
- }], target: [{
165
- type: Input
166
- }], enableDamping: [{
167
- type: Input
168
- }], keyEvents: [{
169
- type: Input
153
+ }], _camera: [{
154
+ type: Input,
155
+ args: [{ alias: 'camera' }]
156
+ }], _domElement: [{
157
+ type: Input,
158
+ args: [{ alias: 'domElement' }]
159
+ }], _makeDefault: [{
160
+ type: Input,
161
+ args: [{ alias: 'makeDefault' }]
162
+ }], _regress: [{
163
+ type: Input,
164
+ args: [{ alias: 'regress' }]
165
+ }], _target: [{
166
+ type: Input,
167
+ args: [{ alias: 'target' }]
168
+ }], _enableDamping: [{
169
+ type: Input,
170
+ args: [{ alias: 'enableDamping' }]
171
+ }], _keyEvents: [{
172
+ type: Input,
173
+ args: [{ alias: 'keyEvents' }]
170
174
  }], change: [{
171
175
  type: Output
172
176
  }], start: [{
@@ -174,4 +178,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImpor
174
178
  }], end: [{
175
179
  type: Output
176
180
  }] } });
177
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JiaXQtY29udHJvbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvY29udHJvbHMvc3JjL29yYml0LWNvbnRyb2xzL29yYml0LWNvbnRyb2xzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsUUFBUSxFQUNSLHNCQUFzQixFQUN0QixNQUFNLEVBQ04sWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLE9BQU8sRUFDUCxjQUFjLEVBQ2QsUUFBUSxHQUdYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBa0I3QyxNQU9hLGlCQUFrQixTQUFRLGNBQXNDO0lBR3pFLElBQWEsTUFBTSxDQUFDLE1BQW9CO1FBQ3BDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFhLFVBQVUsQ0FBQyxVQUF1QjtRQUMzQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBYSxXQUFXLENBQUMsV0FBb0I7UUFDekMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQWEsT0FBTyxDQUFDLE9BQWdCO1FBQ2pDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFhLE1BQU0sQ0FBQyxNQUF3RDtRQUN4RSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBYSxhQUFhLENBQUMsYUFB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Q0FBQztZQUUvRCxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNYLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsY0FBYyxDQUFDLENBQUM7Z0JBQ3ZELElBQUksYUFBYTtvQkFBRSxRQUFRLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFDO2dCQUN4RSxJQUFJLFdBQVc7b0JBQUUsUUFBUSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztZQUN0RSxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0E3SlEsaUJBQWlCO2tHQUFqQixpQkFBaUIsK1dBSmhCLDRFQUE0RSw0REFDNUUsT0FBTzs7U0FHUixpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFQN0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLDRFQUE0RTtvQkFDdEYsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO29CQUNsQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDcEM7MEVBRVksV0FBVztzQkFBbkIsS0FBSztnQkFFTyxNQUFNO3NCQUFsQixLQUFLO2dCQUlPLFVBQVU7c0JBQXRCLEtBQUs7Z0JBSU8sV0FBVztzQkFBdkIsS0FBSztnQkFJTyxPQUFPO3NCQUFuQixLQUFLO2dCQUlPLE1BQU07c0JBQWxCLEtBQUs7Z0JBSU8sYUFBYTtzQkFBekIsS0FBSztnQkFJTyxTQUFTO3NCQUFyQixLQUFLO2dCQUlJLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU07Z0JBQ0csR0FBRztzQkFBWixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgY29tcHV0ZWQsXG4gICAgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcbiAgICBlZmZlY3QsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBpbmplY3RCZWZvcmVSZW5kZXIsXG4gICAgaW5qZWN0Tmd0UmVmLFxuICAgIE5ndEFyZ3MsXG4gICAgTmd0U2lnbmFsU3RvcmUsXG4gICAgTmd0U3RvcmUsXG4gICAgdHlwZSBOZ3RDYW1lcmEsXG4gICAgdHlwZSBOZ3RWZWN0b3IzLFxufSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IE9yYml0Q29udHJvbHMgfSBmcm9tICd0aHJlZS1zdGRsaWInO1xuXG5leHBvcnQgdHlwZSBOZ3RzT3JiaXRDb250cm9sc1N0YXRlID0ge1xuICAgIGNhbWVyYT86IFRIUkVFLkNhbWVyYTtcbiAgICBkb21FbGVtZW50PzogSFRNTEVsZW1lbnQ7XG4gICAgdGFyZ2V0PzogTmd0VmVjdG9yMztcbiAgICBtYWtlRGVmYXVsdDogYm9vbGVhbjtcbiAgICByZWdyZXNzOiBib29sZWFuO1xuICAgIGVuYWJsZURhbXBpbmc6IGJvb2xlYW47XG4gICAga2V5RXZlbnRzOiBib29sZWFuIHwgSFRNTEVsZW1lbnQ7XG59O1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gICAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgICAgICduZ3RzLW9yYml0LWNvbnRyb2xzJzogT3JiaXRDb250cm9scyAmIE5ndHNPcmJpdENvbnRyb2xzU3RhdGU7XG4gICAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndHMtb3JiaXQtY29udHJvbHMnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGAgPG5ndC1wcmltaXRpdmUgKmFyZ3M9XCJhcmdzKClcIiBuZ3RDb21wb3VuZCBbZW5hYmxlRGFtcGluZ109XCJkYW1waW5nKClcIiAvPiBgLFxuICAgIGltcG9ydHM6IFtOZ3RBcmdzXSxcbiAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNPcmJpdENvbnRyb2xzIGV4dGVuZHMgTmd0U2lnbmFsU3RvcmU8Tmd0c09yYml0Q29udHJvbHNTdGF0ZT4ge1xuICAgIEBJbnB1dCgpIGNvbnRyb2xzUmVmID0gaW5qZWN0Tmd0UmVmPE9yYml0Q29udHJvbHM+KCk7XG5cbiAgICBASW5wdXQoKSBzZXQgY2FtZXJhKGNhbWVyYTogVEhSRUUuQ2FtZXJhKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgY2FtZXJhIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBkb21FbGVtZW50KGRvbUVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZG9tRWxlbWVudCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgbWFrZURlZmF1bHQobWFrZURlZmF1bHQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBtYWtlRGVmYXVsdCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgcmVncmVzcyhyZWdyZXNzOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgcmVncmVzcyB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgdGFyZ2V0KHRhcmdldDogVEhSRUUuVmVjdG9yMyB8IFBhcmFtZXRlcnM8VEhSRUUuVmVjdG9yM1snc2V0J10+KSB7XG4gICAgICAgIHRoaXMuc2V0KHsgdGFyZ2V0IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBlbmFibGVEYW1waW5nKGVuYWJsZURhbXBpbmc6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBlbmFibGVEYW1waW5nIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBrZXlFdmVudHMoa2V5RXZlbnRzOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuc2V0KHsga2V5RXZlbnRzIH0pO1xuICAgIH1cblxuICAgIEBPdXRwdXQoKSBjaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFRIUkVFLkV2ZW50PigpO1xuICAgIEBPdXRwdXQoKSBzdGFydCA9IG5ldyBFdmVudEVtaXR0ZXI8VEhSRUUuRXZlbnQ+KCk7XG4gICAgQE91dHB1dCgpIGVuZCA9IG5ldyBFdmVudEVtaXR0ZXI8VEhSRUUuRXZlbnQ+KCk7XG5cbiAgICByZWFkb25seSAjc3RvcmUgPSBpbmplY3QoTmd0U3RvcmUpO1xuXG4gICAgcmVhZG9ubHkgYXJncyA9IGNvbXB1dGVkKCgpID0+IFt0aGlzLmNvbnRyb2xzUmVmLm5hdGl2ZUVsZW1lbnRdKTtcbiAgICByZWFkb25seSBkYW1waW5nID0gdGhpcy5zZWxlY3QoJ2VuYWJsZURhbXBpbmcnKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcih7IGVuYWJsZURhbXBpbmc6IHRydWUsIHJlZ3Jlc3M6IGZhbHNlLCBtYWtlRGVmYXVsdDogZmFsc2UsIGtleUV2ZW50czogZmFsc2UgfSk7XG4gICAgICAgIGluamVjdEJlZm9yZVJlbmRlcihcbiAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb250cm9scyA9IHRoaXMuY29udHJvbHNSZWYudW50cmFja2VkO1xuICAgICAgICAgICAgICAgIGlmIChjb250cm9scyAmJiBjb250cm9scy5lbmFibGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xzLnVwZGF0ZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7IHByaW9yaXR5OiAtMSB9XG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy4jc2V0Q29udHJvbHMoKTtcbiAgICAgICAgdGhpcy4jY29ubmVjdEVsZW1lbnQoKTtcbiAgICAgICAgdGhpcy4jbWFrZUNvbnRyb2xzRGVmYXVsdCgpO1xuICAgICAgICB0aGlzLiNzZXRFdmVudHMoKTtcbiAgICB9XG5cbiAgICAjc2V0Q29udHJvbHMoKSB7XG4gICAgICAgIGNvbnN0IGNhbWVyYSA9IHRoaXMuc2VsZWN0KCdjYW1lcmEnKTtcbiAgICAgICAgY29uc3QgZGVmYXVsdENhbWVyYSA9IHRoaXMuI3N0b3JlLnNlbGVjdCgnY2FtZXJhJyk7XG4gICAgICAgIGNvbnN0IHRyaWdnZXIgPSBjb21wdXRlZCgoKSA9PiAoeyBjYW1lcmE6IGNhbWVyYSgpLCBkZWZhdWx0Q2FtZXJhOiBkZWZhdWx0Q2FtZXJhKCkgfSkpO1xuXG4gICAgICAgIGVmZmVjdChcbiAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGNhbWVyYSwgZGVmYXVsdENhbWVyYSB9ID0gdHJpZ2dlcigpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRyb2xzQ2FtZXJhID0gY2FtZXJhIHx8IGRlZmF1bHRDYW1lcmE7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udHJvbHMgPSB0aGlzLmNvbnRyb2xzUmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgaWYgKCFjb250cm9scyB8fCBjb250cm9scy5vYmplY3QgIT09IGNvbnRyb2xzQ2FtZXJhKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbHNSZWYubmF0aXZlRWxlbWVudCA9IG5ldyBPcmJpdENvbnRyb2xzKGNvbnRyb2xzQ2FtZXJhIGFzIE5ndENhbWVyYSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgICNjb25uZWN0RWxlbWVudCgpIHtcbiAgICAgICAgY29uc3QgZ2xEb21FbGVtZW50ID0gdGhpcy4jc3RvcmUuc2VsZWN0KCdnbCcsICdkb21FbGVtZW50Jyk7XG4gICAgICAgIGNvbnN0IGRvbUVsZW1lbnQgPSB0aGlzLnNlbGVjdCgnZG9tRWxlbWVudCcpO1xuICAgICAgICBjb25zdCByZWdyZXNzID0gdGhpcy5zZWxlY3QoJ3JlZ3Jlc3MnKTtcbiAgICAgICAgY29uc3QgaW52YWxpZGF0ZSA9IHRoaXMuI3N0b3JlLnNlbGVjdCgnaW52YWxpZGF0ZScpO1xuICAgICAgICBjb25zdCBrZXlFdmVudHMgPSB0aGlzLnNlbGVjdCgna2V5RXZlbnRzJyk7XG5cbiAgICAgICAgY29uc3QgdHJpZ2dlciA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGV2ZW50c1NvdXJjZSA9IHRoaXMuI3N0b3JlLmdldCgnZXZlbnRzJywgJ2Nvbm5lY3RlZCcpO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBrZXlFdmVudHM6IGtleUV2ZW50cygpLFxuICAgICAgICAgICAgICAgIGNvbnRyb2xzOiB0aGlzLmNvbnRyb2xzUmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgZG9tRWxlbWVudDogZG9tRWxlbWVudCgpIHx8IGV2ZW50c1NvdXJjZSB8fCBnbERvbUVsZW1lbnQoKSxcbiAgICAgICAgICAgICAgICByZWdyZXNzOiByZWdyZXNzKCksXG4gICAgICAgICAgICAgICAgaW52YWxpZGF0ZTogaW52YWxpZGF0ZSgpLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZWZmZWN0KChvbkNsZWFudXApID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgZG9tRWxlbWVudCwgY29udHJvbHMsIGtleUV2ZW50cyB9ID0gdHJpZ2dlcigpO1xuICAgICAgICAgICAgaWYgKCFjb250cm9scykgcmV0dXJuO1xuICAgICAgICAgICAgaWYgKGtleUV2ZW50cykge1xuICAgICAgICAgICAgICAgIGNvbnRyb2xzLmNvbm5lY3Qoa2V5RXZlbnRzID09PSB0cnVlID8gZG9tRWxlbWVudCA6IGtleUV2ZW50cyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnRyb2xzLmNvbm5lY3QoZG9tRWxlbWVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvbkNsZWFudXAoKCkgPT4gdm9pZCBjb250cm9scy5kaXNwb3NlKCkpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAjbWFrZUNvbnRyb2xzRGVmYXVsdCgpIHtcbiAgICAgICAgY29uc3QgbWFrZURlZmF1bHQgPSB0aGlzLnNlbGVjdCgnbWFrZURlZmF1bHQnKTtcbiAgICAgICAgY29uc3QgdHJpZ2dlciA9IGNvbXB1dGVkKCgpID0+ICh7IGNvbnRyb2xzOiB0aGlzLmNvbnRyb2xzUmVmLm5hdGl2ZUVsZW1lbnQsIG1ha2VEZWZhdWx0OiBtYWtlRGVmYXVsdCgpIH0pKTtcblxuICAgICAgICBlZmZlY3QoXG4gICAgICAgICAgICAob25DbGVhbnVwKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBjb250cm9scywgbWFrZURlZmF1bHQgfSA9IHRyaWdnZXIoKTtcbiAgICAgICAgICAgICAgICBpZiAoIWNvbnRyb2xzKSByZXR1cm47XG4gICAgICAgICAgICAgICAgaWYgKG1ha2VEZWZhdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG9sZENvbnRyb2xzID0gdGhpcy4jc3RvcmUuZ2V0KCdjb250cm9scycpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLiNzdG9yZS5zZXQoeyBjb250cm9scyB9KTtcbiAgICAgICAgICAgICAgICAgICAgb25DbGVhbnVwKCgpID0+IHZvaWQgdGhpcy4jc3RvcmUuc2V0KHsgY29udHJvbHM6IG9sZENvbnRyb2xzIH0pKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgI3NldEV2ZW50cygpIHtcbiAgICAgICAgY29uc3QgaW52YWxpZGF0ZSA9IHRoaXMuI3N0b3JlLnNlbGVjdCgnaW52YWxpZGF0ZScpO1xuICAgICAgICBjb25zdCBwZXJmb3JtYW5jZSA9IHRoaXMuI3N0b3JlLnNlbGVjdCgncGVyZm9ybWFuY2UnKTtcbiAgICAgICAgY29uc3QgcmVncmVzcyA9IHRoaXMuc2VsZWN0KCdyZWdyZXNzJyk7XG5cbiAgICAgICAgY29uc3QgdHJpZ2dlciA9IGNvbXB1dGVkKCgpID0+ICh7XG4gICAgICAgICAgICBpbnZhbGlkYXRlOiBpbnZhbGlkYXRlKCksXG4gICAgICAgICAgICBwZXJmb3JtYW5jZTogcGVyZm9ybWFuY2UoKSxcbiAgICAgICAgICAgIHJlZ3Jlc3M6IHJlZ3Jlc3MoKSxcbiAgICAgICAgICAgIGNvbnRyb2xzOiB0aGlzLmNvbnRyb2xzUmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgIH0pKTtcbiAgICAgICAgZWZmZWN0KChvbkNsZWFudXApID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgY29udHJvbHMsIGludmFsaWRhdGUsIHBlcmZvcm1hbmNlLCByZWdyZXNzIH0gPSB0cmlnZ2VyKCk7XG4gICAgICAgICAgICBpZiAoIWNvbnRyb2xzKSByZXR1cm47XG4gICAgICAgICAgICBjb25zdCBjaGFuZ2VDYWxsYmFjazogKGU6IFRIUkVFLkV2ZW50KSA9PiB2b2lkID0gKGUpID0+IHtcbiAgICAgICAgICAgICAgICBpbnZhbGlkYXRlKCk7XG4gICAgICAgICAgICAgICAgaWYgKHJlZ3Jlc3MpIHBlcmZvcm1hbmNlLnJlZ3Jlc3MoKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jaGFuZ2Uub2JzZXJ2ZWQpIHRoaXMuY2hhbmdlLmVtaXQoZSk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBjb25zdCBzdGFydENhbGxiYWNrID0gdGhpcy5zdGFydC5vYnNlcnZlZCA/IHRoaXMuc3RhcnQuZW1pdC5iaW5kKHRoaXMuc3RhcnQpIDogbnVsbDtcbiAgICAgICAgICAgIGNvbnN0IGVuZENhbGxiYWNrID0gdGhpcy5lbmQub2JzZXJ2ZWQgPyB0aGlzLmVuZC5lbWl0LmJpbmQodGhpcy5lbmQpIDogbnVsbDtcblxuICAgICAgICAgICAgY29udHJvbHMuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgY2hhbmdlQ2FsbGJhY2spO1xuICAgICAgICAgICAgaWYgKHN0YXJ0Q2FsbGJhY2spIGNvbnRyb2xzLmFkZEV2ZW50TGlzdGVuZXIoJ3N0YXJ0Jywgc3RhcnRDYWxsYmFjayk7XG4gICAgICAgICAgICBpZiAoZW5kQ2FsbGJhY2spIGNvbnRyb2xzLmFkZEV2ZW50TGlzdGVuZXIoJ2VuZCcsIGVuZENhbGxiYWNrKTtcblxuICAgICAgICAgICAgb25DbGVhbnVwKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb250cm9scy5yZW1vdmVFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBjaGFuZ2VDYWxsYmFjayk7XG4gICAgICAgICAgICAgICAgaWYgKHN0YXJ0Q2FsbGJhY2spIGNvbnRyb2xzLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3N0YXJ0Jywgc3RhcnRDYWxsYmFjayk7XG4gICAgICAgICAgICAgICAgaWYgKGVuZENhbGxiYWNrKSBjb250cm9scy5yZW1vdmVFdmVudExpc3RlbmVyKCdlbmQnLCBlbmRDYWxsYmFjayk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
181
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JiaXQtY29udHJvbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvY29udHJvbHMvc3JjL29yYml0LWNvbnRyb2xzL29yYml0LWNvbnRyb2xzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQ04sa0JBQWtCLEVBQ2xCLFlBQVksRUFDWixjQUFjLEVBQ2QsT0FBTyxFQUNQLFdBQVcsR0FHWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQTRCN0MsTUFBTSxPQUFPLGlCQUFpQjtJQVU3QixJQUFnQyxPQUFPLENBQUMsTUFBb0I7UUFDM0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFvQyxXQUFXLENBQUMsVUFBdUI7UUFDdEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFxQyxZQUFZLENBQUMsV0FBb0I7UUFDckUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFpQyxRQUFRLENBQUMsT0FBZ0I7UUFDekQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFnQyxPQUFPLENBQUMsTUFBd0Q7UUFDL0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxD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QUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDakM7MEVBU1MsV0FBVztzQkFBbkIsS0FBSztnQkFFMEIsT0FBTztzQkFBdEMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7Z0JBSVUsV0FBVztzQkFBOUMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUU7Z0JBSU8sWUFBWTtzQkFBaEQsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUU7Z0JBSUUsUUFBUTtzQkFBeEMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUU7Z0JBSUssT0FBTztzQkFBdEMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7Z0JBSWEsY0FBYztzQkFBcEQsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUU7Z0JBSUUsVUFBVTtzQkFBNUMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUU7Z0JBSW5CLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU07Z0JBQ0csR0FBRztzQkFBWixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgZWZmZWN0LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG5cdGluamVjdEJlZm9yZVJlbmRlcixcblx0aW5qZWN0Tmd0UmVmLFxuXHRpbmplY3ROZ3RTdG9yZSxcblx0Tmd0QXJncyxcblx0c2lnbmFsU3RvcmUsXG5cdHR5cGUgTmd0Q2FtZXJhLFxuXHR0eXBlIE5ndFZlY3RvcjMsXG59IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgT3JiaXRDb250cm9scyB9IGZyb20gJ3RocmVlLXN0ZGxpYic7XG5cbmV4cG9ydCB0eXBlIE5ndHNPcmJpdENvbnRyb2xzU3RhdGUgPSB7XG5cdGNhbWVyYT86IFRIUkVFLkNhbWVyYTtcblx0ZG9tRWxlbWVudD86IEhUTUxFbGVtZW50O1xuXHR0YXJnZXQ/OiBOZ3RWZWN0b3IzO1xuXHRtYWtlRGVmYXVsdDogYm9vbGVhbjtcblx0cmVncmVzczogYm9vbGVhbjtcblx0ZW5hYmxlRGFtcGluZzogYm9vbGVhbjtcblx0a2V5RXZlbnRzOiBib29sZWFuIHwgSFRNTEVsZW1lbnQ7XG59O1xuXG5kZWNsYXJlIGdsb2JhbCB7XG5cdGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuXHRcdC8qKlxuXHRcdCAqIEBleHRlbmRzIHRocmVlLXN0ZGxpYnxPcmJpdENvbnRyb2xzXG5cdFx0ICovXG5cdFx0J25ndHMtb3JiaXQtY29udHJvbHMnOiBPcmJpdENvbnRyb2xzICYgTmd0c09yYml0Q29udHJvbHNTdGF0ZTtcblx0fVxufVxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RzLW9yYml0LWNvbnRyb2xzJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGAgPG5ndC1wcmltaXRpdmUgKmFyZ3M9XCJhcmdzKClcIiBuZ3RDb21wb3VuZCBbZW5hYmxlRGFtcGluZ109XCJlbmFibGVEYW1waW5nKClcIiAvPiBgLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c09yYml0Q29udHJvbHMge1xuXHRwcml2YXRlIGlucHV0cyA9IHNpZ25hbFN0b3JlPE5ndHNPcmJpdENvbnRyb2xzU3RhdGU+KHtcblx0XHRlbmFibGVEYW1waW5nOiB0cnVlLFxuXHRcdHJlZ3Jlc3M6IGZhbHNlLFxuXHRcdG1ha2VEZWZhdWx0OiBmYWxzZSxcblx0XHRrZXlFdmVudHM6IGZhbHNlLFxuXHR9KTtcblxuXHRASW5wdXQoKSBjb250cm9sc1JlZiA9IGluamVjdE5ndFJlZjxPcmJpdENvbnRyb2xzPigpO1xuXG5cdEBJbnB1dCh7IGFsaWFzOiAnY2FtZXJhJyB9KSBzZXQgX2NhbWVyYShjYW1lcmE6IFRIUkVFLkNhbWVyYSkge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IGNhbWVyYSB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnZG9tRWxlbWVudCcgfSkgc2V0IF9kb21FbGVtZW50KGRvbUVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgZG9tRWxlbWVudCB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnbWFrZURlZmF1bHQnIH0pIHNldCBfbWFrZURlZmF1bHQobWFrZURlZmF1bHQ6IGJvb2xlYW4pIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBtYWtlRGVmYXVsdCB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAncmVncmVzcycgfSkgc2V0IF9yZWdyZXNzKHJlZ3Jlc3M6IGJvb2xlYW4pIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyByZWdyZXNzIH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICd0YXJnZXQnIH0pIHNldCBfdGFyZ2V0KHRhcmdldDogVEhSRUUuVmVjdG9yMyB8IFBhcmFtZXRlcnM8VEhSRUUuVmVjdG9yM1snc2V0J10+KSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgdGFyZ2V0IH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICdlbmFibGVEYW1waW5nJyB9KSBzZXQgX2VuYWJsZURhbXBpbmcoZW5hYmxlRGFtcGluZzogYm9vbGVhbikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IGVuYWJsZURhbXBpbmcgfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ2tleUV2ZW50cycgfSkgc2V0IF9rZXlFdmVudHMoa2V5RXZlbnRzOiBib29sZWFuKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsga2V5RXZlbnRzIH0pO1xuXHR9XG5cblx0QE91dHB1dCgpIGNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VEhSRUUuRXZlbnQ+KCk7XG5cdEBPdXRwdXQoKSBzdGFydCA9IG5ldyBFdmVudEVtaXR0ZXI8VEhSRUUuRXZlbnQ+KCk7XG5cdEBPdXRwdXQoKSBlbmQgPSBuZXcgRXZlbnRFbWl0dGVyPFRIUkVFLkV2ZW50PigpO1xuXG5cdHByaXZhdGUgc3RvcmUgPSBpbmplY3ROZ3RTdG9yZSgpO1xuXHRwcml2YXRlIGludmFsaWRhdGUgPSB0aGlzLnN0b3JlLnNlbGVjdCgnaW52YWxpZGF0ZScpO1xuXHRwcml2YXRlIHBlcmZvcm1hbmNlUmVncmVzcyA9IHRoaXMuc3RvcmUuc2VsZWN0KCdwZXJmb3JtYW5jZScsICdyZWdyZXNzJyk7XG5cdHByaXZhdGUgZGVmYXVsdENhbWVyYSA9IHRoaXMuc3RvcmUuc2VsZWN0KCdjYW1lcmEnKTtcblx0cHJpdmF0ZSBnbERvbUVsZW1lbnQgPSB0aGlzLnN0b3JlLnNlbGVjdCgnZ2wnLCAnZG9tRWxlbWVudCcpO1xuXHRwcml2YXRlIHJlZ3Jlc3MgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ3JlZ3Jlc3MnKTtcblx0cHJpdmF0ZSBjYW1lcmEgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ2NhbWVyYScpO1xuXHRwcml2YXRlIGRvbUVsZW1lbnQgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ2RvbUVsZW1lbnQnKTtcblx0cHJpdmF0ZSBrZXlFdmVudHMgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ2tleUV2ZW50cycpO1xuXHRwcml2YXRlIG1ha2VEZWZhdWx0ID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdtYWtlRGVmYXVsdCcpO1xuXG5cdGFyZ3MgPSBjb21wdXRlZCgoKSA9PiBbdGhpcy5jb250cm9sc1JlZi5uYXRpdmVFbGVtZW50XSk7XG5cdGVuYWJsZURhbXBpbmcgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ2VuYWJsZURhbXBpbmcnKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRpbmplY3RCZWZvcmVSZW5kZXIoXG5cdFx0XHQoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IGNvbnRyb2xzID0gdGhpcy5jb250cm9sc1JlZi5uYXRpdmVFbGVtZW50O1xuXHRcdFx0XHRpZiAoY29udHJvbHMgJiYgY29udHJvbHMuZW5hYmxlZCkge1xuXHRcdFx0XHRcdGNvbnRyb2xzLnVwZGF0ZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0eyBwcmlvcml0eTogLTEgfSxcblx0XHQpO1xuXG5cdFx0dGhpcy5zZXRDb250cm9scygpO1xuXHRcdHRoaXMuY29ubmVjdEVsZW1lbnQoKTtcblx0XHR0aGlzLm1ha2VDb250cm9sc0RlZmF1bHQoKTtcblx0XHR0aGlzLnNldEV2ZW50cygpO1xuXHR9XG5cblx0cHJpdmF0ZSBzZXRDb250cm9scygpIHtcblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgW2NhbWVyYSwgZGVmYXVsdENhbWVyYSwgY29udHJvbHNdID0gW1xuXHRcdFx0XHR0aGlzLmNhbWVyYSgpLFxuXHRcdFx0XHR0aGlzLmRlZmF1bHRDYW1lcmEoKSxcblx0XHRcdFx0dGhpcy5jb250cm9sc1JlZi5uYXRpdmVFbGVtZW50LFxuXHRcdFx0XTtcblx0XHRcdGNvbnN0IGNvbnRyb2xzQ2FtZXJhID0gY2FtZXJhIHx8IGRlZmF1bHRDYW1lcmE7XG5cdFx0XHRpZiAoIWNvbnRyb2xzIHx8IGNvbnRyb2xzLm9iamVjdCAhPT0gY29udHJvbHNDYW1lcmEpIHtcblx0XHRcdFx0dGhpcy5jb250cm9sc1JlZi5uYXRpdmVFbGVtZW50ID0gbmV3IE9yYml0Q29udHJvbHMoY29udHJvbHNDYW1lcmEgYXMgTmd0Q2FtZXJhKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgY29ubmVjdEVsZW1lbnQoKSB7XG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IFtrZXlFdmVudHMsIGRvbUVsZW1lbnQsIGNvbnRyb2xzXSA9IFtcblx0XHRcdFx0dGhpcy5rZXlFdmVudHMoKSxcblx0XHRcdFx0dGhpcy5kb21FbGVtZW50KCkgfHwgdGhpcy5zdG9yZS5nZXQoJ2V2ZW50cycsICdjb25uZWN0ZWQnKSB8fCB0aGlzLmdsRG9tRWxlbWVudCgpLFxuXHRcdFx0XHR0aGlzLmNvbnRyb2xzUmVmLm5hdGl2ZUVsZW1lbnQsXG5cdFx0XHRcdHRoaXMuaW52YWxpZGF0ZSgpLFxuXHRcdFx0XHR0aGlzLnJlZ3Jlc3MoKSxcblx0XHRcdF07XG5cdFx0XHRpZiAoIWNvbnRyb2xzKSByZXR1cm47XG5cdFx0XHRpZiAoa2V5RXZlbnRzKSB7XG5cdFx0XHRcdGNvbnRyb2xzLmNvbm5lY3Qoa2V5RXZlbnRzID09PSB0cnVlID8gZG9tRWxlbWVudCA6IGtleUV2ZW50cyk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRjb250cm9scy5jb25uZWN0KGRvbUVsZW1lbnQpO1xuXHRcdFx0fVxuXHRcdFx0b25DbGVhbnVwKCgpID0+IHZvaWQgY29udHJvbHMuZGlzcG9zZSgpKTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgbWFrZUNvbnRyb2xzRGVmYXVsdCgpIHtcblx0XHRlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuXHRcdFx0Y29uc3QgW2NvbnRyb2xzLCBtYWtlRGVmYXVsdF0gPSBbdGhpcy5jb250cm9sc1JlZi5uYXRpdmVFbGVtZW50LCB0aGlzLm1ha2VEZWZhdWx0KCldO1xuXHRcdFx0aWYgKCFjb250cm9scykgcmV0dXJuO1xuXHRcdFx0aWYgKG1ha2VEZWZhdWx0KSB7XG5cdFx0XHRcdGNvbnN0IG9sZENvbnRyb2xzID0gdGhpcy5zdG9yZS5nZXQoJ2NvbnRyb2xzJyk7XG5cdFx0XHRcdHRoaXMuc3RvcmUuc2V0KHsgY29udHJvbHMgfSk7XG5cdFx0XHRcdG9uQ2xlYW51cCgoKSA9PiB2b2lkIHRoaXMuc3RvcmUuc2V0KHsgY29udHJvbHM6IG9sZENvbnRyb2xzIH0pKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgc2V0RXZlbnRzKCkge1xuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBbY29udHJvbHMsIGludmFsaWRhdGUsIHBlcmZvcm1hbmNlUmVncmVzcywgcmVncmVzc10gPSBbXG5cdFx0XHRcdHRoaXMuY29udHJvbHNSZWYubmF0aXZlRWxlbWVudCxcblx0XHRcdFx0dGhpcy5pbnZhbGlkYXRlKCksXG5cdFx0XHRcdHRoaXMucGVyZm9ybWFuY2VSZWdyZXNzKCksXG5cdFx0XHRcdHRoaXMucmVncmVzcygpLFxuXHRcdFx0XTtcblx0XHRcdGlmICghY29udHJvbHMpIHJldHVybjtcblx0XHRcdGNvbnN0IGNoYW5nZUNhbGxiYWNrOiAoZTogVEhSRUUuRXZlbnQpID0+IHZvaWQgPSAoZSkgPT4ge1xuXHRcdFx0XHRpbnZhbGlkYXRlKCk7XG5cdFx0XHRcdGlmIChyZWdyZXNzKSBwZXJmb3JtYW5jZVJlZ3Jlc3MoKTtcblx0XHRcdFx0aWYgKHRoaXMuY2hhbmdlLm9ic2VydmVkKSB0aGlzLmNoYW5nZS5lbWl0KGUpO1xuXHRcdFx0fTtcblxuXHRcdFx0Y29uc3Qgc3RhcnRDYWxsYmFjayA9IHRoaXMuc3RhcnQub2JzZXJ2ZWQgPyB0aGlzLnN0YXJ0LmVtaXQuYmluZCh0aGlzLnN0YXJ0KSA6IG51bGw7XG5cdFx0XHRjb25zdCBlbmRDYWxsYmFjayA9IHRoaXMuZW5kLm9ic2VydmVkID8gdGhpcy5lbmQuZW1pdC5iaW5kKHRoaXMuZW5kKSA6IG51bGw7XG5cblx0XHRcdGNvbnRyb2xzLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGNoYW5nZUNhbGxiYWNrKTtcblx0XHRcdGlmIChzdGFydENhbGxiYWNrKSBjb250cm9scy5hZGRFdmVudExpc3RlbmVyKCdzdGFydCcsIHN0YXJ0Q2FsbGJhY2spO1xuXHRcdFx0aWYgKGVuZENhbGxiYWNrKSBjb250cm9scy5hZGRFdmVudExpc3RlbmVyKCdlbmQnLCBlbmRDYWxsYmFjayk7XG5cblx0XHRcdG9uQ2xlYW51cCgoKSA9PiB7XG5cdFx0XHRcdGNvbnRyb2xzLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGNoYW5nZUNhbGxiYWNrKTtcblx0XHRcdFx0aWYgKHN0YXJ0Q2FsbGJhY2spIGNvbnRyb2xzLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3N0YXJ0Jywgc3RhcnRDYWxsYmFjayk7XG5cdFx0XHRcdGlmIChlbmRDYWxsYmFjaykgY29udHJvbHMucmVtb3ZlRXZlbnRMaXN0ZW5lcignZW5kJywgZW5kQ2FsbGJhY2spO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==
@@ -1,8 +1,5 @@
1
1
  import { injectNgtLoader } from 'angular-three';
2
- // @ts-ignore
3
- import { MeshoptDecoder } from 'three-stdlib';
4
- import { DRACOLoader } from 'three-stdlib/loaders/DRACOLoader';
5
- import { GLTFLoader } from 'three-stdlib/loaders/GLTFLoader';
2
+ import { DRACOLoader, GLTFLoader, MeshoptDecoder } from 'three-stdlib';
6
3
  let dracoLoader = null;
7
4
  function _extensions(useDraco, useMeshOpt, extensions) {
8
5
  return (loader) => {
@@ -13,7 +10,7 @@ function _extensions(useDraco, useMeshOpt, extensions) {
13
10
  if (!dracoLoader) {
14
11
  dracoLoader = new DRACOLoader();
15
12
  }
16
- dracoLoader.setDecoderPath(typeof useDraco === 'string' ? useDraco : 'https://www.gstatic.com/draco/versioned/decoders/1.4.3/');
13
+ dracoLoader.setDecoderPath(typeof useDraco === 'string' ? useDraco : 'https://www.gstatic.com/draco/versioned/decoders/1.5.5/');
17
14
  loader.setDRACOLoader(dracoLoader);
18
15
  }
19
16
  if (useMeshOpt) {
@@ -30,4 +27,4 @@ export function injectNgtsGLTFLoader(path, { useDraco = true, useMeshOpt = true,
30
27
  injectNgtsGLTFLoader['preload'] = (path, { useDraco = true, useMeshOpt = true, extensions, } = {}) => {
31
28
  injectNgtLoader['preload'](() => GLTFLoader, path, _extensions(useDraco, useMeshOpt, extensions));
32
29
  };
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2x0Zi1sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvbG9hZGVycy9zcmMvZ2x0Zi1sb2FkZXIvZ2x0Zi1sb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGVBQWUsRUFBNEMsTUFBTSxlQUFlLENBQUM7QUFDMUYsYUFBYTtBQUNiLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQy9ELE9BQU8sRUFBUSxVQUFVLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVuRSxJQUFJLFdBQVcsR0FBdUIsSUFBSSxDQUFDO0FBRTNDLFNBQVMsV0FBVyxDQUFDLFFBQTBCLEVBQUUsVUFBbUIsRUFBRSxVQUF5QztJQUMzRyxPQUFPLENBQUMsTUFBb0IsRUFBRSxFQUFFO1FBQzVCLElBQUksVUFBVSxFQUFFO1lBQ1osVUFBVSxDQUFDLE1BQW9CLENBQUMsQ0FBQztTQUNwQztRQUVELElBQUksUUFBUSxFQUFFO1lBQ1YsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDZCxXQUFXLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQzthQUNuQztZQUVELFdBQVcsQ0FBQyxjQUFjLENBQ3RCLE9BQU8sUUFBUSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyx5REFBeUQsQ0FDdEcsQ0FBQztZQUNELE1BQXFCLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3REO1FBRUQsSUFBSSxVQUFVLEVBQUU7WUFDWCxNQUFxQixDQUFDLGlCQUFpQixDQUNwQyxPQUFPLGNBQWMsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQzNFLENBQUM7U0FDTDtJQUNMLENBQUMsQ0FBQztBQUNOLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQ2hDLElBQWdCLEVBQ2hCLEVBQ0ksUUFBUSxHQUFHLElBQUksRUFDZixVQUFVLEdBQUcsSUFBSSxFQUNqQixRQUFRLEVBQ1IsVUFBVSxNQU1WLEVBQUU7SUFFTixPQUFPLGVBQWUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFO1FBQzNDLFVBQVUsRUFBRSxXQUFXLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUM7UUFDekQsUUFBUTtLQUNYLENBQUMsQ0FBQztBQUNQLENBQUM7QUFFRCxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUM5QixJQUFnQixFQUNoQixFQUNJLFFBQVEsR0FBRyxJQUFJLEVBQ2YsVUFBVSxHQUFHLElBQUksRUFDakIsVUFBVSxNQUtWLEVBQUUsRUFDUixFQUFFO0lBQ0MsZUFBdUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLFdBQVcsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7QUFDL0csQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0b3IsIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0Tmd0TG9hZGVyLCB0eXBlIE5ndExvYWRlclJlc3VsdHMsIHR5cGUgTmd0T2JqZWN0TWFwIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBNZXNob3B0RGVjb2RlciB9IGZyb20gJ3RocmVlLXN0ZGxpYic7XG5pbXBvcnQgeyBEUkFDT0xvYWRlciB9IGZyb20gJ3RocmVlLXN0ZGxpYi9sb2FkZXJzL0RSQUNPTG9hZGVyJztcbmltcG9ydCB7IEdMVEYsIEdMVEZMb2FkZXIgfSBmcm9tICd0aHJlZS1zdGRsaWIvbG9hZGVycy9HTFRGTG9hZGVyJztcblxubGV0IGRyYWNvTG9hZGVyOiBEUkFDT0xvYWRlciB8IG51bGwgPSBudWxsO1xuXG5mdW5jdGlvbiBfZXh0ZW5zaW9ucyh1c2VEcmFjbzogYm9vbGVhbiB8IHN0cmluZywgdXNlTWVzaE9wdDogYm9vbGVhbiwgZXh0ZW5zaW9ucz86IChsb2FkZXI6IEdMVEZMb2FkZXIpID0+IHZvaWQpIHtcbiAgICByZXR1cm4gKGxvYWRlcjogVEhSRUUuTG9hZGVyKSA9PiB7XG4gICAgICAgIGlmIChleHRlbnNpb25zKSB7XG4gICAgICAgICAgICBleHRlbnNpb25zKGxvYWRlciBhcyBHTFRGTG9hZGVyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh1c2VEcmFjbykge1xuICAgICAgICAgICAgaWYgKCFkcmFjb0xvYWRlcikge1xuICAgICAgICAgICAgICAgIGRyYWNvTG9hZGVyID0gbmV3IERSQUNPTG9hZGVyKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGRyYWNvTG9hZGVyLnNldERlY29kZXJQYXRoKFxuICAgICAgICAgICAgICAgIHR5cGVvZiB1c2VEcmFjbyA9PT0gJ3N0cmluZycgPyB1c2VEcmFjbyA6ICdodHRwczovL3d3dy5nc3RhdGljLmNvbS9kcmFjby92ZXJzaW9uZWQvZGVjb2RlcnMvMS40LjMvJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIChsb2FkZXIgYXMgR0xURkxvYWRlcikuc2V0RFJBQ09Mb2FkZXIoZHJhY29Mb2FkZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHVzZU1lc2hPcHQpIHtcbiAgICAgICAgICAgIChsb2FkZXIgYXMgR0xURkxvYWRlcikuc2V0TWVzaG9wdERlY29kZXIoXG4gICAgICAgICAgICAgICAgdHlwZW9mIE1lc2hvcHREZWNvZGVyID09PSAnZnVuY3Rpb24nID8gTWVzaG9wdERlY29kZXIoKSA6IE1lc2hvcHREZWNvZGVyXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdE5ndHNHTFRGTG9hZGVyPFRVcmwgZXh0ZW5kcyBzdHJpbmcgfCBzdHJpbmdbXSB8IFJlY29yZDxzdHJpbmcsIHN0cmluZz4+KFxuICAgIHBhdGg6ICgpID0+IFRVcmwsXG4gICAge1xuICAgICAgICB1c2VEcmFjbyA9IHRydWUsXG4gICAgICAgIHVzZU1lc2hPcHQgPSB0cnVlLFxuICAgICAgICBpbmplY3RvcixcbiAgICAgICAgZXh0ZW5zaW9ucyxcbiAgICB9OiB7XG4gICAgICAgIHVzZURyYWNvPzogYm9vbGVhbiB8IHN0cmluZztcbiAgICAgICAgdXNlTWVzaE9wdD86IGJvb2xlYW47XG4gICAgICAgIGluamVjdG9yPzogSW5qZWN0b3I7XG4gICAgICAgIGV4dGVuc2lvbnM/OiAobG9hZGVyOiBHTFRGTG9hZGVyKSA9PiB2b2lkO1xuICAgIH0gPSB7fVxuKTogU2lnbmFsPE5ndExvYWRlclJlc3VsdHM8VFVybCwgR0xURiAmIE5ndE9iamVjdE1hcD4+IHtcbiAgICByZXR1cm4gaW5qZWN0Tmd0TG9hZGVyKCgpID0+IEdMVEZMb2FkZXIsIHBhdGgsIHtcbiAgICAgICAgZXh0ZW5zaW9uczogX2V4dGVuc2lvbnModXNlRHJhY28sIHVzZU1lc2hPcHQsIGV4dGVuc2lvbnMpLFxuICAgICAgICBpbmplY3RvcixcbiAgICB9KTtcbn1cblxuaW5qZWN0Tmd0c0dMVEZMb2FkZXJbJ3ByZWxvYWQnXSA9IDxUVXJsIGV4dGVuZHMgc3RyaW5nIHwgc3RyaW5nW10gfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PihcbiAgICBwYXRoOiAoKSA9PiBUVXJsLFxuICAgIHtcbiAgICAgICAgdXNlRHJhY28gPSB0cnVlLFxuICAgICAgICB1c2VNZXNoT3B0ID0gdHJ1ZSxcbiAgICAgICAgZXh0ZW5zaW9ucyxcbiAgICB9OiB7XG4gICAgICAgIHVzZURyYWNvPzogYm9vbGVhbiB8IHN0cmluZztcbiAgICAgICAgdXNlTWVzaE9wdD86IGJvb2xlYW47XG4gICAgICAgIGV4dGVuc2lvbnM/OiAobG9hZGVyOiBHTFRGTG9hZGVyKSA9PiB2b2lkO1xuICAgIH0gPSB7fVxuKSA9PiB7XG4gICAgKGluamVjdE5ndExvYWRlciBhcyBhbnkpWydwcmVsb2FkJ10oKCkgPT4gR0xURkxvYWRlciwgcGF0aCwgX2V4dGVuc2lvbnModXNlRHJhY28sIHVzZU1lc2hPcHQsIGV4dGVuc2lvbnMpKTtcbn07XG4iXX0=
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2x0Zi1sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvbG9hZGVycy9zcmMvZ2x0Zi1sb2FkZXIvZ2x0Zi1sb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGVBQWUsRUFBNEMsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLFdBQVcsRUFBUSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTdFLElBQUksV0FBVyxHQUF1QixJQUFJLENBQUM7QUFFM0MsU0FBUyxXQUFXLENBQUMsUUFBMEIsRUFBRSxVQUFtQixFQUFFLFVBQXlDO0lBQzlHLE9BQU8sQ0FBQyxNQUFvQixFQUFFLEVBQUU7UUFDL0IsSUFBSSxVQUFVLEVBQUU7WUFDZixVQUFVLENBQUMsTUFBb0IsQ0FBQyxDQUFDO1NBQ2pDO1FBRUQsSUFBSSxRQUFRLEVBQUU7WUFDYixJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUNqQixXQUFXLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQzthQUNoQztZQUVELFdBQVcsQ0FBQyxjQUFjLENBQ3pCLE9BQU8sUUFBUSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyx5REFBeUQsQ0FDbkcsQ0FBQztZQUNELE1BQXFCLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ25EO1FBRUQsSUFBSSxVQUFVLEVBQUU7WUFDZCxNQUFxQixDQUFDLGlCQUFpQixDQUN2QyxPQUFPLGNBQWMsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQ3hFLENBQUM7U0FDRjtJQUNGLENBQUMsQ0FBQztBQUNILENBQUM7QUFJRCxNQUFNLFVBQVUsb0JBQW9CLENBQ25DLElBQWdCLEVBQ2hCLEVBQ0MsUUFBUSxHQUFHLElBQUksRUFDZixVQUFVLEdBQUcsSUFBSSxFQUNqQixRQUFRLEVBQ1IsVUFBVSxNQU1QLEVBQUU7SUFFTixPQUFPLGVBQWUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFO1FBQzlDLFVBQVUsRUFBRSxXQUFXLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUM7UUFDekQsUUFBUTtLQUNSLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUNqQyxJQUFnQixFQUNoQixFQUNDLFFBQVEsR0FBRyxJQUFJLEVBQ2YsVUFBVSxHQUFHLElBQUksRUFDakIsVUFBVSxNQUtQLEVBQUUsRUFDTCxFQUFFO0lBQ0YsZUFBdUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLFdBQVcsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7QUFDNUcsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJbmplY3RvciwgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbmplY3ROZ3RMb2FkZXIsIHR5cGUgTmd0TG9hZGVyUmVzdWx0cywgdHlwZSBOZ3RPYmplY3RNYXAgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IERSQUNPTG9hZGVyLCBHTFRGLCBHTFRGTG9hZGVyLCBNZXNob3B0RGVjb2RlciB9IGZyb20gJ3RocmVlLXN0ZGxpYic7XG5cbmxldCBkcmFjb0xvYWRlcjogRFJBQ09Mb2FkZXIgfCBudWxsID0gbnVsbDtcblxuZnVuY3Rpb24gX2V4dGVuc2lvbnModXNlRHJhY286IGJvb2xlYW4gfCBzdHJpbmcsIHVzZU1lc2hPcHQ6IGJvb2xlYW4sIGV4dGVuc2lvbnM/OiAobG9hZGVyOiBHTFRGTG9hZGVyKSA9PiB2b2lkKSB7XG5cdHJldHVybiAobG9hZGVyOiBUSFJFRS5Mb2FkZXIpID0+IHtcblx0XHRpZiAoZXh0ZW5zaW9ucykge1xuXHRcdFx0ZXh0ZW5zaW9ucyhsb2FkZXIgYXMgR0xURkxvYWRlcik7XG5cdFx0fVxuXG5cdFx0aWYgKHVzZURyYWNvKSB7XG5cdFx0XHRpZiAoIWRyYWNvTG9hZGVyKSB7XG5cdFx0XHRcdGRyYWNvTG9hZGVyID0gbmV3IERSQUNPTG9hZGVyKCk7XG5cdFx0XHR9XG5cblx0XHRcdGRyYWNvTG9hZGVyLnNldERlY29kZXJQYXRoKFxuXHRcdFx0XHR0eXBlb2YgdXNlRHJhY28gPT09ICdzdHJpbmcnID8gdXNlRHJhY28gOiAnaHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vZHJhY28vdmVyc2lvbmVkL2RlY29kZXJzLzEuNS41LycsXG5cdFx0XHQpO1xuXHRcdFx0KGxvYWRlciBhcyBHTFRGTG9hZGVyKS5zZXREUkFDT0xvYWRlcihkcmFjb0xvYWRlcik7XG5cdFx0fVxuXG5cdFx0aWYgKHVzZU1lc2hPcHQpIHtcblx0XHRcdChsb2FkZXIgYXMgR0xURkxvYWRlcikuc2V0TWVzaG9wdERlY29kZXIoXG5cdFx0XHRcdHR5cGVvZiBNZXNob3B0RGVjb2RlciA9PT0gJ2Z1bmN0aW9uJyA/IE1lc2hvcHREZWNvZGVyKCkgOiBNZXNob3B0RGVjb2Rlcixcblx0XHRcdCk7XG5cdFx0fVxuXHR9O1xufVxuXG5leHBvcnQgdHlwZSBOZ3RzR0xURjxUIGV4dGVuZHMgUGFydGlhbDxOZ3RPYmplY3RNYXA+PiA9IEdMVEYgJiBOZ3RPYmplY3RNYXAgJiBUO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0Tmd0c0dMVEZMb2FkZXI8VFVybCBleHRlbmRzIHN0cmluZyB8IHN0cmluZ1tdIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4oXG5cdHBhdGg6ICgpID0+IFRVcmwsXG5cdHtcblx0XHR1c2VEcmFjbyA9IHRydWUsXG5cdFx0dXNlTWVzaE9wdCA9IHRydWUsXG5cdFx0aW5qZWN0b3IsXG5cdFx0ZXh0ZW5zaW9ucyxcblx0fToge1xuXHRcdHVzZURyYWNvPzogYm9vbGVhbiB8IHN0cmluZztcblx0XHR1c2VNZXNoT3B0PzogYm9vbGVhbjtcblx0XHRpbmplY3Rvcj86IEluamVjdG9yO1xuXHRcdGV4dGVuc2lvbnM/OiAobG9hZGVyOiBHTFRGTG9hZGVyKSA9PiB2b2lkO1xuXHR9ID0ge30sXG4pOiBTaWduYWw8Tmd0TG9hZGVyUmVzdWx0czxUVXJsLCBHTFRGICYgTmd0T2JqZWN0TWFwPiB8IG51bGw+IHtcblx0cmV0dXJuIGluamVjdE5ndExvYWRlcigoKSA9PiBHTFRGTG9hZGVyLCBwYXRoLCB7XG5cdFx0ZXh0ZW5zaW9uczogX2V4dGVuc2lvbnModXNlRHJhY28sIHVzZU1lc2hPcHQsIGV4dGVuc2lvbnMpLFxuXHRcdGluamVjdG9yLFxuXHR9KTtcbn1cblxuaW5qZWN0Tmd0c0dMVEZMb2FkZXJbJ3ByZWxvYWQnXSA9IDxUVXJsIGV4dGVuZHMgc3RyaW5nIHwgc3RyaW5nW10gfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+Pihcblx0cGF0aDogKCkgPT4gVFVybCxcblx0e1xuXHRcdHVzZURyYWNvID0gdHJ1ZSxcblx0XHR1c2VNZXNoT3B0ID0gdHJ1ZSxcblx0XHRleHRlbnNpb25zLFxuXHR9OiB7XG5cdFx0dXNlRHJhY28/OiBib29sZWFuIHwgc3RyaW5nO1xuXHRcdHVzZU1lc2hPcHQ/OiBib29sZWFuO1xuXHRcdGV4dGVuc2lvbnM/OiAobG9hZGVyOiBHTFRGTG9hZGVyKSA9PiB2b2lkO1xuXHR9ID0ge30sXG4pID0+IHtcblx0KGluamVjdE5ndExvYWRlciBhcyBhbnkpWydwcmVsb2FkJ10oKCkgPT4gR0xURkxvYWRlciwgcGF0aCwgX2V4dGVuc2lvbnModXNlRHJhY28sIHVzZU1lc2hPcHQsIGV4dGVuc2lvbnMpKTtcbn07XG4iXX0=