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.
- package/abstractions/billboard/billboard.d.ts +11 -7
- package/abstractions/detailed/detailed.d.ts +26 -0
- package/abstractions/edges/edges.d.ts +23 -11
- package/abstractions/grid/grid.d.ts +41 -50
- package/abstractions/index.d.ts +1 -7
- package/abstractions/text/text.d.ts +10 -4
- package/abstractions/text-3d/text-3d.d.ts +47 -40
- package/cameras/camera/camera-content.d.ts +1 -1
- package/cameras/camera/camera.d.ts +16 -13
- package/cameras/cube-camera/cube-camera.d.ts +50 -23
- package/cameras/index.d.ts +0 -1
- package/cameras/orthographic-camera/orthographic-camera.d.ts +29 -18
- package/cameras/perspective-camera/perspective-camera.d.ts +10 -1
- package/controls/orbit-controls/orbit-controls.d.ts +30 -13
- package/esm2022/abstractions/billboard/billboard.mjs +36 -33
- package/esm2022/abstractions/detailed/detailed.mjs +64 -0
- package/esm2022/abstractions/edges/edges.mjs +58 -63
- package/esm2022/abstractions/grid/grid.mjs +140 -110
- package/esm2022/abstractions/index.mjs +2 -8
- package/esm2022/abstractions/text/text.mjs +123 -122
- package/esm2022/abstractions/text-3d/text-3d.mjs +119 -121
- package/esm2022/cameras/camera/camera-content.mjs +5 -6
- package/esm2022/cameras/camera/camera.mjs +48 -42
- package/esm2022/cameras/cube-camera/cube-camera.mjs +129 -99
- package/esm2022/cameras/index.mjs +1 -2
- package/esm2022/cameras/orthographic-camera/orthographic-camera.mjs +78 -75
- package/esm2022/cameras/perspective-camera/perspective-camera.mjs +25 -26
- package/esm2022/controls/orbit-controls/orbit-controls.mjs +94 -90
- package/esm2022/loaders/gltf-loader/gltf-loader.mjs +3 -6
- package/esm2022/loaders/loader/loader.mjs +92 -87
- package/esm2022/loaders/progress/progress.mjs +1 -1
- package/esm2022/loaders/texture-loader/texture-loader.mjs +4 -4
- package/esm2022/materials/index.mjs +2 -1
- package/esm2022/materials/mesh-distort-material/mesh-distort-material.mjs +60 -51
- package/esm2022/materials/mesh-reflector-material/mesh-reflector-material.mjs +239 -255
- package/esm2022/materials/mesh-refraction-material/mesh-refraction-material.mjs +99 -97
- package/esm2022/materials/mesh-transmission-material/mesh-transmission-material.mjs +167 -146
- package/esm2022/materials/mesh-wobble-material/mesh-wobble-material.mjs +44 -42
- package/esm2022/materials/point-material/point-material.mjs +46 -0
- package/esm2022/misc/animations/animations.mjs +20 -16
- package/esm2022/misc/bake-shadows/bake-shadows.mjs +13 -13
- package/esm2022/misc/caustics/caustics.mjs +387 -0
- package/esm2022/misc/decal/decal.mjs +187 -0
- package/esm2022/misc/depth-buffer/depth-buffer.mjs +33 -35
- package/esm2022/misc/example/example.mjs +160 -0
- package/esm2022/misc/fbo/fbo.mjs +35 -35
- package/esm2022/misc/html/html-wrapper.mjs +478 -0
- package/esm2022/misc/html/html.mjs +304 -0
- package/esm2022/misc/index.mjs +10 -1
- package/esm2022/misc/sampler/sampler.mjs +142 -0
- package/esm2022/misc/shadow/shadow.mjs +111 -0
- package/esm2022/misc/stats-gl/stats-gl.mjs +61 -0
- package/esm2022/misc/trail/trail.mjs +209 -0
- package/esm2022/misc/trail-texture/inject-trail-texture.mjs +17 -0
- package/esm2022/misc/trail-texture/trail-texture.mjs +106 -0
- package/esm2022/modifiers/angular-three-soba-modifiers.mjs +5 -0
- package/esm2022/modifiers/curve-modifier/curve-modifier.mjs +64 -0
- package/esm2022/modifiers/index.mjs +2 -0
- package/esm2022/performances/adaptive-dpr/adaptive-dpr.mjs +44 -0
- package/esm2022/performances/adaptive-events/adaptive-events.mjs +27 -0
- package/esm2022/performances/angular-three-soba-performances.mjs +5 -0
- package/esm2022/performances/index.mjs +6 -0
- package/esm2022/performances/points/points-input.mjs +64 -0
- package/esm2022/performances/points/points.mjs +329 -0
- package/esm2022/performances/points/position-point.mjs +54 -0
- package/esm2022/performances/segments/segment-object.mjs +9 -0
- package/esm2022/performances/segments/segments.mjs +182 -0
- package/esm2022/shaders/blur-pass/blur-pass.mjs +1 -1
- package/esm2022/shaders/caustics/caustics-material.mjs +130 -0
- package/esm2022/shaders/caustics/caustics-projection-material.mjs +31 -0
- package/esm2022/shaders/convolution-material/convolution-material.mjs +1 -1
- package/esm2022/shaders/discard-material/discard-material.mjs +1 -1
- package/esm2022/shaders/grid-material/grid-material.mjs +29 -14
- package/esm2022/shaders/index.mjs +5 -3
- package/esm2022/shaders/mesh-distort-material/mesh-distort-material.mjs +42 -41
- package/esm2022/shaders/mesh-reflector-material/mesh-reflector-material.mjs +1 -1
- package/esm2022/shaders/mesh-refraction-material/mesh-refraction-material.mjs +2 -2
- package/esm2022/shaders/mesh-transmission-material/mesh-transmission-material.mjs +4 -4
- package/esm2022/shaders/mesh-wobble-material/mesh-wobble-material.mjs +1 -1
- package/esm2022/shaders/shader-material/shader-material.mjs +1 -1
- package/esm2022/shaders/soft-shadow-material/soft-shadow-material.mjs +17 -25
- package/esm2022/shaders/sparkles-material/sparkles-material.mjs +32 -46
- package/esm2022/shaders/spot-light-material/spot-light-material.mjs +7 -7
- package/esm2022/shaders/star-field-material/star-field-material.mjs +3 -2
- package/esm2022/shaders/wireframe-material/wireframe-material.mjs +247 -0
- package/esm2022/staging/accumulative-shadows/accumulative-shadows.mjs +160 -176
- package/esm2022/staging/accumulative-shadows/progressive-light-map.mjs +1 -1
- package/esm2022/staging/accumulative-shadows/randomized-lights.mjs +126 -128
- package/esm2022/staging/backdrop/backdrop.mjs +77 -0
- package/esm2022/staging/bb-anchor/bb-anchor.mjs +70 -0
- package/esm2022/staging/bounds/bounds.mjs +144 -143
- package/esm2022/staging/camera-shake/camera-shake.mjs +86 -80
- package/esm2022/staging/center/center.mjs +106 -91
- package/esm2022/staging/cloud/cloud.mjs +118 -124
- package/esm2022/staging/contact-shadows/contact-shadows.mjs +131 -134
- package/esm2022/staging/environment/assets.mjs +12 -12
- package/esm2022/staging/environment/environment-cube.mjs +28 -30
- package/esm2022/staging/environment/environment-ground.mjs +18 -20
- package/esm2022/staging/environment/environment-input.mjs +97 -84
- package/esm2022/staging/environment/environment-map.mjs +33 -33
- package/esm2022/staging/environment/environment-portal.mjs +75 -97
- package/esm2022/staging/environment/environment.mjs +34 -51
- package/esm2022/staging/environment/utils.mjs +35 -14
- package/esm2022/staging/float/float.mjs +70 -58
- package/esm2022/staging/index.mjs +7 -3
- package/esm2022/staging/matcap-texture/matcap-texture.mjs +64 -0
- package/esm2022/staging/normal-texture/normal-texture.mjs +53 -0
- package/esm2022/staging/sky/sky.mjs +85 -80
- package/esm2022/staging/sparkles/sparkles.mjs +108 -105
- package/esm2022/staging/spot-light/shadow-mesh-input.mjs +63 -0
- package/esm2022/staging/spot-light/shadow-mesh.mjs +266 -0
- package/esm2022/staging/spot-light/spot-light-input.mjs +67 -58
- package/esm2022/staging/spot-light/spot-light.mjs +51 -64
- package/esm2022/staging/spot-light/volumetric-mesh.mjs +61 -78
- package/esm2022/staging/stage/stage.mjs +304 -290
- package/esm2022/staging/stars/stars.mjs +101 -102
- package/esm2022/staging/wireframe/wireframe-input.mjs +191 -0
- package/esm2022/staging/wireframe/wireframe.mjs +224 -0
- package/esm2022/utils/angular-three-soba-utils.mjs +5 -0
- package/esm2022/utils/content/content.mjs +15 -0
- package/esm2022/utils/index.mjs +2 -0
- package/fesm2022/angular-three-soba-abstractions.mjs +505 -2087
- package/fesm2022/angular-three-soba-abstractions.mjs.map +1 -1
- package/fesm2022/angular-three-soba-cameras.mjs +302 -259
- package/fesm2022/angular-three-soba-cameras.mjs.map +1 -1
- package/fesm2022/angular-three-soba-controls.mjs +93 -88
- package/fesm2022/angular-three-soba-controls.mjs.map +1 -1
- package/fesm2022/angular-three-soba-loaders.mjs +94 -90
- package/fesm2022/angular-three-soba-loaders.mjs.map +1 -1
- package/fesm2022/angular-three-soba-materials.mjs +655 -590
- package/fesm2022/angular-three-soba-materials.mjs.map +1 -1
- package/fesm2022/angular-three-soba-misc.mjs +2198 -89
- package/fesm2022/angular-three-soba-misc.mjs.map +1 -1
- package/fesm2022/angular-three-soba-modifiers.mjs +71 -0
- package/fesm2022/angular-three-soba-modifiers.mjs.map +1 -0
- package/fesm2022/angular-three-soba-performances.mjs +697 -0
- package/fesm2022/angular-three-soba-performances.mjs.map +1 -0
- package/fesm2022/angular-three-soba-shaders.mjs +501 -264
- package/fesm2022/angular-three-soba-shaders.mjs.map +1 -1
- package/fesm2022/angular-three-soba-staging.mjs +2870 -2555
- package/fesm2022/angular-three-soba-staging.mjs.map +1 -1
- package/fesm2022/angular-three-soba-utils.mjs +22 -0
- package/fesm2022/angular-three-soba-utils.mjs.map +1 -0
- package/loaders/gltf-loader/gltf-loader.d.ts +4 -3
- package/loaders/loader/loader.d.ts +19 -17
- package/loaders/progress/progress.d.ts +1 -1
- package/loaders/texture-loader/texture-loader.d.ts +2 -2
- package/materials/index.d.ts +1 -0
- package/materials/mesh-distort-material/mesh-distort-material.d.ts +25 -15
- package/materials/mesh-reflector-material/mesh-reflector-material.d.ts +74 -56
- package/materials/mesh-refraction-material/mesh-refraction-material.d.ts +33 -21
- package/materials/mesh-transmission-material/mesh-transmission-material.d.ts +55 -39
- package/materials/mesh-wobble-material/mesh-wobble-material.d.ts +19 -10
- package/materials/point-material/point-material.d.ts +24 -0
- package/metadata.json +1 -0
- package/misc/animations/animations.d.ts +6 -4
- package/misc/caustics/caustics.d.ts +87 -0
- package/misc/decal/decal.d.ts +49 -0
- package/misc/depth-buffer/depth-buffer.d.ts +2 -2
- package/misc/example/example.d.ts +81 -0
- package/misc/fbo/fbo.d.ts +2 -2
- package/misc/html/html-wrapper.d.ts +559 -0
- package/misc/html/html.d.ts +214 -0
- package/misc/index.d.ts +9 -0
- package/misc/sampler/sampler.d.ts +67 -0
- package/misc/shadow/shadow.d.ts +37 -0
- package/misc/stats-gl/stats-gl.d.ts +24 -0
- package/misc/trail/trail.d.ts +57 -0
- package/misc/trail-texture/inject-trail-texture.d.ts +9 -0
- package/misc/trail-texture/trail-texture.d.ts +50 -0
- package/modifiers/README.md +3 -0
- package/modifiers/curve-modifier/curve-modifier.d.ts +23 -0
- package/modifiers/index.d.ts +1 -0
- package/package.json +30 -22
- package/performances/README.md +3 -0
- package/performances/adaptive-dpr/adaptive-dpr.d.ts +14 -0
- package/{performance/adaptive → performances/adaptive-events}/adaptive-events.d.ts +3 -0
- package/performances/index.d.ts +5 -0
- package/performances/points/points-input.d.ts +32 -0
- package/performances/points/points.d.ts +92 -0
- package/{performance/instances/position-mesh.d.ts → performances/points/position-point.d.ts} +4 -3
- package/performances/segments/segment-object.d.ts +7 -0
- package/performances/segments/segments.d.ts +124 -0
- package/shaders/grid-material/grid-material.d.ts +33 -0
- package/shaders/index.d.ts +4 -2
- package/shaders/mesh-distort-material/mesh-distort-material.d.ts +146 -1
- package/shaders/mesh-transmission-material/mesh-transmission-material.d.ts +1 -1
- package/shaders/shader-material/shader-material.d.ts +2 -2
- package/shaders/soft-shadow-material/soft-shadow-material.d.ts +10 -1
- package/shaders/sparkles-material/sparkles-material.d.ts +15 -1
- package/shaders/spot-light-material/spot-light-material.d.ts +11 -2
- package/shaders/star-field-material/star-field-material.d.ts +11 -1
- package/shaders/wireframe-material/wireframe-material.d.ts +58 -0
- package/staging/accumulative-shadows/accumulative-shadows.d.ts +89 -39
- package/staging/accumulative-shadows/randomized-lights.d.ts +40 -27
- package/staging/backdrop/backdrop.d.ts +30 -0
- package/staging/bb-anchor/bb-anchor.d.ts +27 -0
- package/staging/bounds/bounds.d.ts +100 -24
- package/staging/camera-shake/camera-shake.d.ts +30 -19
- package/staging/center/center.d.ts +43 -35
- package/staging/cloud/cloud.d.ts +26 -23
- package/staging/contact-shadows/contact-shadows.d.ts +41 -28
- package/staging/environment/assets.d.ts +9 -9
- package/staging/environment/environment-cube.d.ts +9 -5
- package/staging/environment/environment-ground.d.ts +7 -7
- package/staging/environment/environment-input.d.ts +36 -36
- package/staging/environment/environment-map.d.ts +10 -5
- package/staging/environment/environment-portal.d.ts +10 -5
- package/staging/environment/environment.d.ts +0 -4
- package/staging/environment/utils.d.ts +2 -2
- package/staging/float/float.d.ts +14 -10
- package/staging/index.d.ts +6 -2
- package/staging/matcap-texture/matcap-texture.d.ts +13 -0
- package/staging/normal-texture/normal-texture.d.ts +16 -0
- package/staging/sky/sky.d.ts +28 -21
- package/staging/sparkles/sparkles.d.ts +35 -21
- package/staging/spot-light/shadow-mesh-input.d.ts +29 -0
- package/staging/spot-light/shadow-mesh.d.ts +37 -0
- package/staging/spot-light/spot-light-input.d.ts +25 -25
- package/staging/spot-light/spot-light.d.ts +31 -15
- package/staging/spot-light/volumetric-mesh.d.ts +15 -9
- package/staging/stage/stage.d.ts +88 -63
- package/staging/stars/stars.d.ts +27 -16
- package/staging/wireframe/wireframe-input.d.ts +65 -0
- package/staging/wireframe/wireframe.d.ts +28 -0
- package/utils/README.md +3 -0
- package/utils/content/content.d.ts +8 -0
- package/utils/index.d.ts +1 -0
- package/web-types.json +1 -0
- package/abstractions/catmull-rom-line/catmull-rom-line.d.ts +0 -25
- package/abstractions/cubic-bezier-line/cubic-bezier-line.d.ts +0 -25
- package/abstractions/gizmo-helper/gizmo-helper.d.ts +0 -34
- package/abstractions/gizmo-helper/gizmo-viewcube/constants.d.ts +0 -12
- package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.d.ts +0 -22
- package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.d.ts +0 -30
- package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.d.ts +0 -32
- package/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube.d.ts +0 -14
- package/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.d.ts +0 -47
- package/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport.d.ts +0 -40
- package/abstractions/line/line-input.d.ts +0 -42
- package/abstractions/line/line.d.ts +0 -35
- package/abstractions/quadratic-bezier-line/quadratic-bezier-line.d.ts +0 -23
- package/esm2022/abstractions/catmull-rom-line/catmull-rom-line.mjs +0 -131
- package/esm2022/abstractions/cubic-bezier-line/cubic-bezier-line.mjs +0 -113
- package/esm2022/abstractions/gizmo-helper/gizmo-helper.mjs +0 -210
- package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/constants.mjs +0 -31
- package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-edge.mjs +0 -95
- package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-face.mjs +0 -155
- package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube-inputs.mjs +0 -62
- package/esm2022/abstractions/gizmo-helper/gizmo-viewcube/gizmo-viewcube.mjs +0 -80
- package/esm2022/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport-axis.mjs +0 -206
- package/esm2022/abstractions/gizmo-helper/gizmo-viewport/gizmo-viewport.mjs +0 -273
- package/esm2022/abstractions/line/line-input.mjs +0 -113
- package/esm2022/abstractions/line/line.mjs +0 -165
- package/esm2022/abstractions/quadratic-bezier-line/quadratic-bezier-line.mjs +0 -128
- package/esm2022/performance/adaptive/adaptive-dpr.mjs +0 -46
- package/esm2022/performance/adaptive/adaptive-events.mjs +0 -31
- package/esm2022/performance/angular-three-soba-performance.mjs +0 -5
- package/esm2022/performance/detailed/detailed.mjs +0 -61
- package/esm2022/performance/index.mjs +0 -7
- package/esm2022/performance/instances/instance.mjs +0 -48
- package/esm2022/performance/instances/instances.mjs +0 -189
- package/esm2022/performance/instances/position-mesh.mjs +0 -52
- package/esm2022/performance/stats/stats.mjs +0 -79
- package/esm2022/shaders/caustics-material/caustics-material.mjs +0 -128
- package/esm2022/shaders/caustics-material/caustics-projection-material.mjs +0 -33
- package/esm2022/staging/caustics/caustisc.mjs +0 -384
- package/esm2022/staging/spot-light/spot-light-shadow-mesh-input.mjs +0 -57
- package/esm2022/staging/spot-light/spot-light-shadow-mesh.mjs +0 -258
- package/fesm2022/angular-three-soba-performance.mjs +0 -487
- package/fesm2022/angular-three-soba-performance.mjs.map +0 -1
- package/performance/README.md +0 -3
- package/performance/adaptive/adaptive-dpr.d.ts +0 -8
- package/performance/detailed/detailed.d.ts +0 -20
- package/performance/index.d.ts +0 -6
- package/performance/instances/instance.d.ts +0 -9
- package/performance/instances/instances.d.ts +0 -35
- package/performance/stats/stats.d.ts +0 -18
- package/plugin/generators.json +0 -19
- package/plugin/libs/plugin/README.md +0 -11
- package/plugin/package.json +0 -9
- package/plugin/src/generators/init/compat.d.ts +0 -2
- package/plugin/src/generators/init/compat.js +0 -6
- package/plugin/src/generators/init/compat.js.map +0 -1
- package/plugin/src/generators/init/init.d.ts +0 -7
- package/plugin/src/generators/init/init.js +0 -28
- package/plugin/src/generators/init/init.js.map +0 -1
- package/plugin/src/generators/init/schema.json +0 -6
- package/plugin/src/index.d.ts +0 -1
- package/plugin/src/index.js +0 -6
- package/plugin/src/index.js.map +0 -1
- package/staging/caustics/caustisc.d.ts +0 -70
- package/staging/spot-light/spot-light-shadow-mesh-input.d.ts +0 -29
- package/staging/spot-light/spot-light-shadow-mesh.d.ts +0 -38
- /package/shaders/{caustics-material → caustics}/caustics-material.d.ts +0 -0
- /package/shaders/{caustics-material → caustics}/caustics-projection-material.d.ts +0 -0
|
@@ -1,42 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { CUSTOM_ELEMENTS_SCHEMA, Component, Input, computed } from '@angular/core';
|
|
2
|
+
import { NgtArgs, extend, injectNgtRef, signalStore } from 'angular-three';
|
|
3
3
|
import { StarFieldMaterial } from 'angular-three-soba/shaders';
|
|
4
4
|
import * as THREE from 'three';
|
|
5
5
|
import { BufferAttribute, BufferGeometry, Points } from 'three';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
extend({ Points, BufferGeometry, BufferAttribute });
|
|
8
|
-
const genStar = (r) =>
|
|
9
|
-
|
|
10
|
-
};
|
|
11
|
-
class NgtsStars extends NgtSignalStore {
|
|
12
|
-
set radius(radius) {
|
|
13
|
-
this.set({ radius });
|
|
14
|
-
}
|
|
15
|
-
set depth(depth) {
|
|
16
|
-
this.set({ depth });
|
|
17
|
-
}
|
|
18
|
-
set count(count) {
|
|
19
|
-
this.set({ count });
|
|
20
|
-
}
|
|
21
|
-
set factor(factor) {
|
|
22
|
-
this.set({ factor });
|
|
23
|
-
}
|
|
24
|
-
set saturation(saturation) {
|
|
25
|
-
this.set({ saturation });
|
|
26
|
-
}
|
|
27
|
-
set starsFade(fade) {
|
|
28
|
-
this.set({ fade });
|
|
29
|
-
}
|
|
30
|
-
set speed(speed) {
|
|
31
|
-
this.set({ speed });
|
|
32
|
-
}
|
|
33
|
-
#count;
|
|
34
|
-
#depth;
|
|
35
|
-
#factor;
|
|
36
|
-
#radius;
|
|
37
|
-
#saturation;
|
|
8
|
+
const genStar = (r) => new THREE.Vector3().setFromSpherical(new THREE.Spherical(r, Math.acos(1 - Math.random() * 2), Math.random() * 2 * Math.PI));
|
|
9
|
+
export class NgtsStars {
|
|
38
10
|
constructor() {
|
|
39
|
-
|
|
11
|
+
this.inputs = signalStore({
|
|
40
12
|
radius: 100,
|
|
41
13
|
depth: 50,
|
|
42
14
|
count: 5000,
|
|
@@ -48,23 +20,23 @@ class NgtsStars extends NgtSignalStore {
|
|
|
48
20
|
this.AdditiveBlending = THREE.AdditiveBlending;
|
|
49
21
|
this.material = new StarFieldMaterial();
|
|
50
22
|
this.starsRef = injectNgtRef();
|
|
51
|
-
this
|
|
52
|
-
this
|
|
53
|
-
this
|
|
54
|
-
this
|
|
55
|
-
this
|
|
56
|
-
this.fade = this.select('fade');
|
|
57
|
-
this.
|
|
23
|
+
this.count = this.inputs.select('count');
|
|
24
|
+
this.depth = this.inputs.select('depth');
|
|
25
|
+
this.factor = this.inputs.select('factor');
|
|
26
|
+
this.radius = this.inputs.select('radius');
|
|
27
|
+
this.saturation = this.inputs.select('saturation');
|
|
28
|
+
this.fade = this.inputs.select('fade');
|
|
29
|
+
this.attributes = computed(() => {
|
|
58
30
|
const positions = [];
|
|
59
31
|
const colors = [];
|
|
60
|
-
const sizes = Array.from({ length: this
|
|
32
|
+
const sizes = Array.from({ length: this.count() }, () => (0.5 + 0.5 * Math.random()) * this.factor());
|
|
61
33
|
const color = new THREE.Color();
|
|
62
|
-
let r = this
|
|
63
|
-
const increment = this
|
|
64
|
-
for (let i = 0; i < this
|
|
34
|
+
let r = this.radius() + this.depth();
|
|
35
|
+
const increment = this.depth() / this.count();
|
|
36
|
+
for (let i = 0; i < this.count(); i++) {
|
|
65
37
|
r -= increment * Math.random();
|
|
66
38
|
positions.push(...genStar(r).toArray());
|
|
67
|
-
color.setHSL(i / this
|
|
39
|
+
color.setHSL(i / this.count(), this.saturation(), 0.9);
|
|
68
40
|
colors.push(color.r, color.g, color.b);
|
|
69
41
|
}
|
|
70
42
|
return {
|
|
@@ -73,76 +45,103 @@ class NgtsStars extends NgtSignalStore {
|
|
|
73
45
|
sizes: new Float32Array(sizes),
|
|
74
46
|
};
|
|
75
47
|
});
|
|
76
|
-
injectBeforeRender(this.#onBeforeRender.bind(this));
|
|
77
48
|
}
|
|
78
|
-
|
|
79
|
-
this.
|
|
49
|
+
set _radius(radius) {
|
|
50
|
+
this.inputs.set({ radius });
|
|
51
|
+
}
|
|
52
|
+
set _depth(depth) {
|
|
53
|
+
this.inputs.set({ depth });
|
|
54
|
+
}
|
|
55
|
+
set _count(count) {
|
|
56
|
+
this.inputs.set({ count });
|
|
57
|
+
}
|
|
58
|
+
set _factor(factor) {
|
|
59
|
+
this.inputs.set({ factor });
|
|
60
|
+
}
|
|
61
|
+
set _saturation(saturation) {
|
|
62
|
+
this.inputs.set({ saturation });
|
|
63
|
+
}
|
|
64
|
+
set starsFade(fade) {
|
|
65
|
+
this.inputs.set({ fade });
|
|
66
|
+
}
|
|
67
|
+
set _speed(speed) {
|
|
68
|
+
this.inputs.set({ speed });
|
|
69
|
+
}
|
|
70
|
+
onBeforeRender({ object, state }) {
|
|
71
|
+
object.uniforms['time'].value = state.clock.getElapsedTime() * this.inputs.get('speed');
|
|
80
72
|
}
|
|
81
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
82
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
73
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: NgtsStars, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
74
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: NgtsStars, isStandalone: true, selector: "ngts-stars", inputs: { starsRef: "starsRef", _radius: ["radius", "_radius"], _depth: ["depth", "_depth"], _count: ["count", "_count"], _factor: ["factor", "_factor"], _saturation: ["saturation", "_saturation"], starsFade: ["fade", "starsFade"], _speed: ["speed", "_speed"] }, ngImport: i0, template: `
|
|
75
|
+
<ngt-points [ref]="starsRef">
|
|
76
|
+
<ngt-buffer-geometry>
|
|
77
|
+
<ngt-buffer-attribute attach="attributes.position" *args="[attributes().positions, 3]" />
|
|
78
|
+
<ngt-buffer-attribute attach="attributes.color" *args="[attributes().colors, 3]" />
|
|
79
|
+
<ngt-buffer-attribute attach="attributes.size" *args="[attributes().sizes, 1]" />
|
|
80
|
+
</ngt-buffer-geometry>
|
|
81
|
+
<ngt-primitive
|
|
82
|
+
*args="[material]"
|
|
83
|
+
attach="material"
|
|
84
|
+
[blending]="AdditiveBlending"
|
|
85
|
+
[depthWrite]="false"
|
|
86
|
+
[transparent]="true"
|
|
87
|
+
[vertexColors]="true"
|
|
88
|
+
(beforeRender)="onBeforeRender($event)"
|
|
89
|
+
>
|
|
90
|
+
<ngt-value attach="uniforms.fade.value" [rawValue]="fade()" />
|
|
91
|
+
</ngt-primitive>
|
|
92
|
+
</ngt-points>
|
|
93
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }] }); }
|
|
101
94
|
}
|
|
102
|
-
|
|
103
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: NgtsStars, decorators: [{
|
|
95
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: NgtsStars, decorators: [{
|
|
104
96
|
type: Component,
|
|
105
97
|
args: [{
|
|
106
98
|
selector: 'ngts-stars',
|
|
107
99
|
standalone: true,
|
|
108
100
|
template: `
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
101
|
+
<ngt-points [ref]="starsRef">
|
|
102
|
+
<ngt-buffer-geometry>
|
|
103
|
+
<ngt-buffer-attribute attach="attributes.position" *args="[attributes().positions, 3]" />
|
|
104
|
+
<ngt-buffer-attribute attach="attributes.color" *args="[attributes().colors, 3]" />
|
|
105
|
+
<ngt-buffer-attribute attach="attributes.size" *args="[attributes().sizes, 1]" />
|
|
106
|
+
</ngt-buffer-geometry>
|
|
107
|
+
<ngt-primitive
|
|
108
|
+
*args="[material]"
|
|
109
|
+
attach="material"
|
|
110
|
+
[blending]="AdditiveBlending"
|
|
111
|
+
[depthWrite]="false"
|
|
112
|
+
[transparent]="true"
|
|
113
|
+
[vertexColors]="true"
|
|
114
|
+
(beforeRender)="onBeforeRender($event)"
|
|
115
|
+
>
|
|
116
|
+
<ngt-value attach="uniforms.fade.value" [rawValue]="fade()" />
|
|
117
|
+
</ngt-primitive>
|
|
118
|
+
</ngt-points>
|
|
119
|
+
`,
|
|
127
120
|
imports: [NgtArgs],
|
|
128
121
|
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
129
122
|
}]
|
|
130
|
-
}],
|
|
131
|
-
type: Input
|
|
132
|
-
}], radius: [{
|
|
133
|
-
type: Input
|
|
134
|
-
}], depth: [{
|
|
135
|
-
type: Input
|
|
136
|
-
}], count: [{
|
|
137
|
-
type: Input
|
|
138
|
-
}], factor: [{
|
|
139
|
-
type: Input
|
|
140
|
-
}], saturation: [{
|
|
123
|
+
}], propDecorators: { starsRef: [{
|
|
141
124
|
type: Input
|
|
125
|
+
}], _radius: [{
|
|
126
|
+
type: Input,
|
|
127
|
+
args: [{ alias: 'radius' }]
|
|
128
|
+
}], _depth: [{
|
|
129
|
+
type: Input,
|
|
130
|
+
args: [{ alias: 'depth' }]
|
|
131
|
+
}], _count: [{
|
|
132
|
+
type: Input,
|
|
133
|
+
args: [{ alias: 'count' }]
|
|
134
|
+
}], _factor: [{
|
|
135
|
+
type: Input,
|
|
136
|
+
args: [{ alias: 'factor' }]
|
|
137
|
+
}], _saturation: [{
|
|
138
|
+
type: Input,
|
|
139
|
+
args: [{ alias: 'saturation' }]
|
|
142
140
|
}], starsFade: [{
|
|
143
141
|
type: Input,
|
|
144
142
|
args: ['fade']
|
|
145
|
-
}],
|
|
146
|
-
type: Input
|
|
143
|
+
}], _speed: [{
|
|
144
|
+
type: Input,
|
|
145
|
+
args: [{ alias: 'speed' }]
|
|
147
146
|
}] } });
|
|
148
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvc3RhcnMvc3RhcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLE9BQU8sQ0FBQzs7QUFFaEUsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0FBRXBELE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBUyxFQUFFLEVBQUU7SUFDMUIsT0FBTyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FDdkMsSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQ3hGLENBQUM7QUFDTixDQUFDLENBQUM7QUFZRixNQXlCYSxTQUFVLFNBQVEsY0FBOEI7SUFNekQsSUFBYSxNQUFNLENBQUMsTUFBYztRQUM5QixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQs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RSxDQUFDLE9BQU8sQ0FBQztvQkFDbEIsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ3BDOzBFQUtZLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRU8sTUFBTTtzQkFBbEIsS0FBSztnQkFJTyxLQUFLO3NCQUFqQixLQUFLO2dCQUlPLEtBQUs7c0JBQWpCLEtBQUs7Z0JBSU8sTUFBTTtzQkFBbEIsS0FBSztnQkFJTyxVQUFVO3NCQUF0QixLQUFLO2dCQUlhLFNBQVM7c0JBQTNCLEtBQUs7dUJBQUMsTUFBTTtnQkFJQSxLQUFLO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGV4dGVuZCwgaW5qZWN0QmVmb3JlUmVuZGVyLCBpbmplY3ROZ3RSZWYsIE5ndEFyZ3MsIE5ndFNpZ25hbFN0b3JlLCB0eXBlIE5ndFJlbmRlclN0YXRlIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBTdGFyRmllbGRNYXRlcmlhbCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUtc29iYS9zaGFkZXJzJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IEJ1ZmZlckF0dHJpYnV0ZSwgQnVmZmVyR2VvbWV0cnksIFBvaW50cyB9IGZyb20gJ3RocmVlJztcblxuZXh0ZW5kKHsgUG9pbnRzLCBCdWZmZXJHZW9tZXRyeSwgQnVmZmVyQXR0cmlidXRlIH0pO1xuXG5jb25zdCBnZW5TdGFyID0gKHI6IG51bWJlcikgPT4ge1xuICAgIHJldHVybiBuZXcgVEhSRUUuVmVjdG9yMygpLnNldEZyb21TcGhlcmljYWwoXG4gICAgICAgIG5ldyBUSFJFRS5TcGhlcmljYWwociwgTWF0aC5hY29zKDEgLSBNYXRoLnJhbmRvbSgpICogMiksIE1hdGgucmFuZG9tKCkgKiAyICogTWF0aC5QSSlcbiAgICApO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBOZ3RzU3RhcnNTdGF0ZSB7XG4gICAgcmFkaXVzOiBudW1iZXI7XG4gICAgZGVwdGg6IG51bWJlcjtcbiAgICBjb3VudDogbnVtYmVyO1xuICAgIGZhY3RvcjogbnVtYmVyO1xuICAgIHNhdHVyYXRpb246IG51bWJlcjtcbiAgICBmYWRlOiBib29sZWFuO1xuICAgIHNwZWVkOiBudW1iZXI7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd0cy1zdGFycycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmd0LXBvaW50cyBbcmVmXT1cInN0YXJzUmVmXCI+XG4gICAgICAgICAgICA8bmd0LWJ1ZmZlci1nZW9tZXRyeT5cbiAgICAgICAgICAgICAgICA8bmd0LWJ1ZmZlci1hdHRyaWJ1dGUgYXR0YWNoPVwiYXR0cmlidXRlcy5wb3NpdGlvblwiICphcmdzPVwiW2J1ZmZlckF0dHJpYnV0ZXMoKS5wb3NpdGlvbnMsIDNdXCIgLz5cbiAgICAgICAgICAgICAgICA8bmd0LWJ1ZmZlci1hdHRyaWJ1dGUgYXR0YWNoPVwiYXR0cmlidXRlcy5jb2xvclwiICphcmdzPVwiW2J1ZmZlckF0dHJpYnV0ZXMoKS5jb2xvcnMsIDNdXCIgLz5cbiAgICAgICAgICAgICAgICA8bmd0LWJ1ZmZlci1hdHRyaWJ1dGUgYXR0YWNoPVwiYXR0cmlidXRlcy5zaXplXCIgKmFyZ3M9XCJbYnVmZmVyQXR0cmlidXRlcygpLnNpemVzLCAxXVwiIC8+XG4gICAgICAgICAgICA8L25ndC1idWZmZXItZ2VvbWV0cnk+XG4gICAgICAgICAgICA8bmd0LXByaW1pdGl2ZVxuICAgICAgICAgICAgICAgICphcmdzPVwiW21hdGVyaWFsXVwiXG4gICAgICAgICAgICAgICAgYXR0YWNoPVwibWF0ZXJpYWxcIlxuICAgICAgICAgICAgICAgIFtibGVuZGluZ109XCJBZGRpdGl2ZUJsZW5kaW5nXCJcbiAgICAgICAgICAgICAgICBbZGVwdGhXcml0ZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgW3RyYW5zcGFyZW50XT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFt2ZXJ0ZXhDb2xvcnNdPVwidHJ1ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5ndC12YWx1ZSBhdHRhY2g9XCJ1bmlmb3Jtcy5mYWRlLnZhbHVlXCIgW3Jhd1ZhbHVlXT1cImZhZGUoKVwiIC8+XG4gICAgICAgICAgICA8L25ndC1wcmltaXRpdmU+XG4gICAgICAgIDwvbmd0LXBvaW50cz5cbiAgICBgLFxuICAgIGltcG9ydHM6IFtOZ3RBcmdzXSxcbiAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNTdGFycyBleHRlbmRzIE5ndFNpZ25hbFN0b3JlPE5ndHNTdGFyc1N0YXRlPiB7XG4gICAgcmVhZG9ubHkgQWRkaXRpdmVCbGVuZGluZyA9IFRIUkVFLkFkZGl0aXZlQmxlbmRpbmc7XG4gICAgcmVhZG9ubHkgbWF0ZXJpYWwgPSBuZXcgU3RhckZpZWxkTWF0ZXJpYWwoKTtcblxuICAgIEBJbnB1dCgpIHN0YXJzUmVmID0gaW5qZWN0Tmd0UmVmPFBvaW50cz4oKTtcblxuICAgIEBJbnB1dCgpIHNldCByYWRpdXMocmFkaXVzOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyByYWRpdXMgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGRlcHRoKGRlcHRoOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBkZXB0aCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgY291bnQoY291bnQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGNvdW50IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBmYWN0b3IoZmFjdG9yOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBmYWN0b3IgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHNhdHVyYXRpb24oc2F0dXJhdGlvbjogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgc2F0dXJhdGlvbiB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoJ2ZhZGUnKSBzZXQgc3RhcnNGYWRlKGZhZGU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBmYWRlIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBzcGVlZChzcGVlZDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgc3BlZWQgfSk7XG4gICAgfVxuXG4gICAgcmVhZG9ubHkgI2NvdW50ID0gdGhpcy5zZWxlY3QoJ2NvdW50Jyk7XG4gICAgcmVhZG9ubHkgI2RlcHRoID0gdGhpcy5zZWxlY3QoJ2RlcHRoJyk7XG4gICAgcmVhZG9ubHkgI2ZhY3RvciA9IHRoaXMuc2VsZWN0KCdmYWN0b3InKTtcbiAgICByZWFkb25seSAjcmFkaXVzID0gdGhpcy5zZWxlY3QoJ3JhZGl1cycpO1xuICAgIHJlYWRvbmx5ICNzYXR1cmF0aW9uID0gdGhpcy5zZWxlY3QoJ3NhdHVyYXRpb24nKTtcblxuICAgIHJlYWRvbmx5IGZhZGUgPSB0aGlzLnNlbGVjdCgnZmFkZScpO1xuICAgIHJlYWRvbmx5IGJ1ZmZlckF0dHJpYnV0ZXMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHBvc2l0aW9uczogbnVtYmVyW10gPSBbXTtcbiAgICAgICAgY29uc3QgY29sb3JzOiBudW1iZXJbXSA9IFtdO1xuICAgICAgICBjb25zdCBzaXplcyA9IEFycmF5LmZyb20oeyBsZW5ndGg6IHRoaXMuI2NvdW50KCkgfSwgKCkgPT4gKDAuNSArIDAuNSAqIE1hdGgucmFuZG9tKCkpICogdGhpcy4jZmFjdG9yKCkpO1xuICAgICAgICBjb25zdCBjb2xvciA9IG5ldyBUSFJFRS5Db2xvcigpO1xuICAgICAgICBsZXQgciA9IHRoaXMuI3JhZGl1cygpICsgdGhpcy4jZGVwdGgoKTtcbiAgICAgICAgY29uc3QgaW5jcmVtZW50ID0gdGhpcy4jZGVwdGgoKSAvIHRoaXMuI2NvdW50KCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy4jY291bnQoKTsgaSsrKSB7XG4gICAgICAgICAgICByIC09IGluY3JlbWVudCAqIE1hdGgucmFuZG9tKCk7XG4gICAgICAgICAgICBwb3NpdGlvbnMucHVzaCguLi5nZW5TdGFyKHIpLnRvQXJyYXkoKSk7XG4gICAgICAgICAgICBjb2xvci5zZXRIU0woaSAvIHRoaXMuI2NvdW50KCksIHRoaXMuI3NhdHVyYXRpb24oKSwgMC45KTtcbiAgICAgICAgICAgIGNvbG9ycy5wdXNoKGNvbG9yLnIsIGNvbG9yLmcsIGNvbG9yLmIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwb3NpdGlvbnM6IG5ldyBGbG9hdDMyQXJyYXkocG9zaXRpb25zKSxcbiAgICAgICAgICAgIGNvbG9yczogbmV3IEZsb2F0MzJBcnJheShjb2xvcnMpLFxuICAgICAgICAgICAgc2l6ZXM6IG5ldyBGbG9hdDMyQXJyYXkoc2l6ZXMpLFxuICAgICAgICB9O1xuICAgIH0pO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIHJhZGl1czogMTAwLFxuICAgICAgICAgICAgZGVwdGg6IDUwLFxuICAgICAgICAgICAgY291bnQ6IDUwMDAsXG4gICAgICAgICAgICBzYXR1cmF0aW9uOiAwLFxuICAgICAgICAgICAgZmFjdG9yOiA0LFxuICAgICAgICAgICAgZmFkZTogZmFsc2UsXG4gICAgICAgICAgICBzcGVlZDogMSxcbiAgICAgICAgfSk7XG4gICAgICAgIGluamVjdEJlZm9yZVJlbmRlcih0aGlzLiNvbkJlZm9yZVJlbmRlci5iaW5kKHRoaXMpKTtcbiAgICB9XG5cbiAgICAjb25CZWZvcmVSZW5kZXIoeyBjbG9jayB9OiBOZ3RSZW5kZXJTdGF0ZSkge1xuICAgICAgICB0aGlzLm1hdGVyaWFsLnVuaWZvcm1zWyd0aW1lJ10udmFsdWUgPSBjbG9jay5nZXRFbGFwc2VkVGltZSgpICogdGhpcy5nZXQoJ3NwZWVkJyk7XG4gICAgfVxufVxuIl19
|
|
147
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvc3RhcnMvc3RhcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxPQUFPLEVBQXdCLE1BQU0sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLE9BQU8sQ0FBQzs7QUFFaEUsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0FBa0JwRCxNQUFNLE9BQU8sR0FBRyxDQUFDLENBQVMsRUFBRSxFQUFFLENBQzdCLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUNuQyxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FDckYsQ0FBQztBQTRCSCxNQUFNLE9BQU8sU0FBUztJQTFCdEI7UUEyQlMsV0FBTSxHQUFHLFdBQVcsQ0FBaUI7WUFDNUMsTUFBTSxFQUFFLEdBQUc7WUFDWCxLQUFLLEVBQUUsRUFBRTtZQUNULEtBQUssRUFBRSxJQUFJO1lBQ1gsVUFBVSxFQUFFLENBQUM7WUFDYixNQUFNLEVBQUUsQ0FBQztZQUNULElBQUksRUFBRSxLQUFLO1lBQ1gsS0FBSyxFQUFFLENBQUM7U0FDUixDQUFDLENBQUM7UUFDSCxxQkFBZ0IsR0FBRyxLQUFLLENBQUMsZ0JBQWdCLENBQUM7UUFDMUMsYUFBUSxHQUFHLElBQUksaUJBQWlCLEVBQUUsQ0FBQztRQUUxQixhQUFRLEdBQUcsWUFBWSxFQUFVLENBQUM7UUE4Qm5DLFVBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwQyxVQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEMsV0FBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RDLFdBQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0QyxlQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFdEQsU0FBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xDLGVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzFCLE1BQU0sU0FBUyxHQUFhLEVBQUUsQ0FBQztZQUMvQixNQUFNLE1BQU0sR0FBYSxFQUFFLENBQUM7WUFDNUIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7WUFDdEcsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNyQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzlDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3RDLENBQUMsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUMvQixTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7Z0JBQ3hDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ3ZELE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN2QztZQUNELE9BQU87Z0JBQ04sU0FBUyxFQUFFLElBQUksWUFBWSxDQUFDLFNBQVMsQ0FBQztnQkFDdEMsTUFBTSxFQUFFLElBQUksWUFBWSxDQUFDLE1BQU0sQ0FBQztnQkFDaEMsS0FBSyxFQUFFLElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQzthQUM5QixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7S0FLSDtJQTFEQSxJQUFnQyxPQUFPLENBQUMsTUFBYztRQUNyRCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQStCLE1BQU0sQ0FBQyxLQUFhO1FBQ2xELElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBK0IsTUFBTSxDQUFDLEtBQWE7UUFDbEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFnQyxPQUFPLENBQUMsTUFBYztRQUNyRCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQW9DLFdBQVcsQ0FBQyxVQUFrQjtRQUNqRSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELElBQW1CLFNBQVMsQ0FBQyxJQUFhO1FBQ3pDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBK0IsTUFBTSxDQUFDLEtBQWE7UUFDbEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUE2QkQsY0FBYyxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBZ0U7UUFDN0YsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6RixDQUFDOzhHQXhFVyxTQUFTO2tHQUFULFNBQVMsNlVBdkJYOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBbUJULDREQUNTLE9BQU87OzJGQUdMLFNBQVM7a0JBMUJyQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxZQUFZO29CQUN0QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBbUJUO29CQUNELE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztvQkFDbEIsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ2pDOzhCQWNTLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRTBCLE9BQU87c0JBQXRDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO2dCQUlLLE1BQU07c0JBQXBDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO2dCQUlNLE1BQU07c0JBQXBDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO2dCQUlPLE9BQU87c0JBQXRDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO2dCQUlVLFdBQVc7c0JBQTlDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFO2dCQUlYLFNBQVM7c0JBQTNCLEtBQUs7dUJBQUMsTUFBTTtnQkFJa0IsTUFBTTtzQkFBcEMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDb21wb25lbnQsIElucHV0LCBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgTmd0QmVmb3JlUmVuZGVyRXZlbnQsIGV4dGVuZCwgaW5qZWN0Tmd0UmVmLCBzaWduYWxTdG9yZSB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgU3RhckZpZWxkTWF0ZXJpYWwgfSBmcm9tICdhbmd1bGFyLXRocmVlLXNvYmEvc2hhZGVycyc7XG5pbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBCdWZmZXJBdHRyaWJ1dGUsIEJ1ZmZlckdlb21ldHJ5LCBQb2ludHMgfSBmcm9tICd0aHJlZSc7XG5cbmV4dGVuZCh7IFBvaW50cywgQnVmZmVyR2VvbWV0cnksIEJ1ZmZlckF0dHJpYnV0ZSB9KTtcblxuZXhwb3J0IHR5cGUgTmd0c1N0YXJzU3RhdGUgPSB7XG5cdHJhZGl1czogbnVtYmVyO1xuXHRkZXB0aDogbnVtYmVyO1xuXHRjb3VudDogbnVtYmVyO1xuXHRmYWN0b3I6IG51bWJlcjtcblx0c2F0dXJhdGlvbjogbnVtYmVyO1xuXHRmYWRlOiBib29sZWFuO1xuXHRzcGVlZDogbnVtYmVyO1xufTtcblxuZGVjbGFyZSBnbG9iYWwge1xuXHRpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcblx0XHQnbmd0cy1zdGFycyc6IE5ndHNTdGFyc1N0YXRlO1xuXHR9XG59XG5cbmNvbnN0IGdlblN0YXIgPSAocjogbnVtYmVyKSA9PlxuXHRuZXcgVEhSRUUuVmVjdG9yMygpLnNldEZyb21TcGhlcmljYWwoXG5cdFx0bmV3IFRIUkVFLlNwaGVyaWNhbChyLCBNYXRoLmFjb3MoMSAtIE1hdGgucmFuZG9tKCkgKiAyKSwgTWF0aC5yYW5kb20oKSAqIDIgKiBNYXRoLlBJKSxcblx0KTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cy1zdGFycycsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1wb2ludHMgW3JlZl09XCJzdGFyc1JlZlwiPlxuXHRcdFx0PG5ndC1idWZmZXItZ2VvbWV0cnk+XG5cdFx0XHRcdDxuZ3QtYnVmZmVyLWF0dHJpYnV0ZSBhdHRhY2g9XCJhdHRyaWJ1dGVzLnBvc2l0aW9uXCIgKmFyZ3M9XCJbYXR0cmlidXRlcygpLnBvc2l0aW9ucywgM11cIiAvPlxuXHRcdFx0XHQ8bmd0LWJ1ZmZlci1hdHRyaWJ1dGUgYXR0YWNoPVwiYXR0cmlidXRlcy5jb2xvclwiICphcmdzPVwiW2F0dHJpYnV0ZXMoKS5jb2xvcnMsIDNdXCIgLz5cblx0XHRcdFx0PG5ndC1idWZmZXItYXR0cmlidXRlIGF0dGFjaD1cImF0dHJpYnV0ZXMuc2l6ZVwiICphcmdzPVwiW2F0dHJpYnV0ZXMoKS5zaXplcywgMV1cIiAvPlxuXHRcdFx0PC9uZ3QtYnVmZmVyLWdlb21ldHJ5PlxuXHRcdFx0PG5ndC1wcmltaXRpdmVcblx0XHRcdFx0KmFyZ3M9XCJbbWF0ZXJpYWxdXCJcblx0XHRcdFx0YXR0YWNoPVwibWF0ZXJpYWxcIlxuXHRcdFx0XHRbYmxlbmRpbmddPVwiQWRkaXRpdmVCbGVuZGluZ1wiXG5cdFx0XHRcdFtkZXB0aFdyaXRlXT1cImZhbHNlXCJcblx0XHRcdFx0W3RyYW5zcGFyZW50XT1cInRydWVcIlxuXHRcdFx0XHRbdmVydGV4Q29sb3JzXT1cInRydWVcIlxuXHRcdFx0XHQoYmVmb3JlUmVuZGVyKT1cIm9uQmVmb3JlUmVuZGVyKCRldmVudClcIlxuXHRcdFx0PlxuXHRcdFx0XHQ8bmd0LXZhbHVlIGF0dGFjaD1cInVuaWZvcm1zLmZhZGUudmFsdWVcIiBbcmF3VmFsdWVdPVwiZmFkZSgpXCIgLz5cblx0XHRcdDwvbmd0LXByaW1pdGl2ZT5cblx0XHQ8L25ndC1wb2ludHM+XG5cdGAsXG5cdGltcG9ydHM6IFtOZ3RBcmdzXSxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzU3RhcnMge1xuXHRwcml2YXRlIGlucHV0cyA9IHNpZ25hbFN0b3JlPE5ndHNTdGFyc1N0YXRlPih7XG5cdFx0cmFkaXVzOiAxMDAsXG5cdFx0ZGVwdGg6IDUwLFxuXHRcdGNvdW50OiA1MDAwLFxuXHRcdHNhdHVyYXRpb246IDAsXG5cdFx0ZmFjdG9yOiA0LFxuXHRcdGZhZGU6IGZhbHNlLFxuXHRcdHNwZWVkOiAxLFxuXHR9KTtcblx0QWRkaXRpdmVCbGVuZGluZyA9IFRIUkVFLkFkZGl0aXZlQmxlbmRpbmc7XG5cdG1hdGVyaWFsID0gbmV3IFN0YXJGaWVsZE1hdGVyaWFsKCk7XG5cblx0QElucHV0KCkgc3RhcnNSZWYgPSBpbmplY3ROZ3RSZWY8UG9pbnRzPigpO1xuXG5cdEBJbnB1dCh7IGFsaWFzOiAncmFkaXVzJyB9KSBzZXQgX3JhZGl1cyhyYWRpdXM6IG51bWJlcikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IHJhZGl1cyB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnZGVwdGgnIH0pIHNldCBfZGVwdGgoZGVwdGg6IG51bWJlcikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IGRlcHRoIH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICdjb3VudCcgfSkgc2V0IF9jb3VudChjb3VudDogbnVtYmVyKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgY291bnQgfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ2ZhY3RvcicgfSkgc2V0IF9mYWN0b3IoZmFjdG9yOiBudW1iZXIpIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBmYWN0b3IgfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ3NhdHVyYXRpb24nIH0pIHNldCBfc2F0dXJhdGlvbihzYXR1cmF0aW9uOiBudW1iZXIpIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBzYXR1cmF0aW9uIH0pO1xuXHR9XG5cblx0QElucHV0KCdmYWRlJykgc2V0IHN0YXJzRmFkZShmYWRlOiBib29sZWFuKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgZmFkZSB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnc3BlZWQnIH0pIHNldCBfc3BlZWQoc3BlZWQ6IG51bWJlcikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IHNwZWVkIH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBjb3VudCA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnY291bnQnKTtcblx0cHJpdmF0ZSBkZXB0aCA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnZGVwdGgnKTtcblx0cHJpdmF0ZSBmYWN0b3IgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ2ZhY3RvcicpO1xuXHRwcml2YXRlIHJhZGl1cyA9IHRoaXMuaW5wdXRzLnNlbGVjdCgncmFkaXVzJyk7XG5cdHByaXZhdGUgc2F0dXJhdGlvbiA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnc2F0dXJhdGlvbicpO1xuXG5cdGZhZGUgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ2ZhZGUnKTtcblx0YXR0cmlidXRlcyA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBwb3NpdGlvbnM6IG51bWJlcltdID0gW107XG5cdFx0Y29uc3QgY29sb3JzOiBudW1iZXJbXSA9IFtdO1xuXHRcdGNvbnN0IHNpemVzID0gQXJyYXkuZnJvbSh7IGxlbmd0aDogdGhpcy5jb3VudCgpIH0sICgpID0+ICgwLjUgKyAwLjUgKiBNYXRoLnJhbmRvbSgpKSAqIHRoaXMuZmFjdG9yKCkpO1xuXHRcdGNvbnN0IGNvbG9yID0gbmV3IFRIUkVFLkNvbG9yKCk7XG5cdFx0bGV0IHIgPSB0aGlzLnJhZGl1cygpICsgdGhpcy5kZXB0aCgpO1xuXHRcdGNvbnN0IGluY3JlbWVudCA9IHRoaXMuZGVwdGgoKSAvIHRoaXMuY291bnQoKTtcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuY291bnQoKTsgaSsrKSB7XG5cdFx0XHRyIC09IGluY3JlbWVudCAqIE1hdGgucmFuZG9tKCk7XG5cdFx0XHRwb3NpdGlvbnMucHVzaCguLi5nZW5TdGFyKHIpLnRvQXJyYXkoKSk7XG5cdFx0XHRjb2xvci5zZXRIU0woaSAvIHRoaXMuY291bnQoKSwgdGhpcy5zYXR1cmF0aW9uKCksIDAuOSk7XG5cdFx0XHRjb2xvcnMucHVzaChjb2xvci5yLCBjb2xvci5nLCBjb2xvci5iKTtcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdHBvc2l0aW9uczogbmV3IEZsb2F0MzJBcnJheShwb3NpdGlvbnMpLFxuXHRcdFx0Y29sb3JzOiBuZXcgRmxvYXQzMkFycmF5KGNvbG9ycyksXG5cdFx0XHRzaXplczogbmV3IEZsb2F0MzJBcnJheShzaXplcyksXG5cdFx0fTtcblx0fSk7XG5cblx0b25CZWZvcmVSZW5kZXIoeyBvYmplY3QsIHN0YXRlIH06IE5ndEJlZm9yZVJlbmRlckV2ZW50PEluc3RhbmNlVHlwZTx0eXBlb2YgU3RhckZpZWxkTWF0ZXJpYWw+Pikge1xuXHRcdG9iamVjdC51bmlmb3Jtc1sndGltZSddLnZhbHVlID0gc3RhdGUuY2xvY2suZ2V0RWxhcHNlZFRpbWUoKSAqIHRoaXMuaW5wdXRzLmdldCgnc3BlZWQnKTtcblx0fVxufVxuIl19
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import { Directive, Input, computed } from '@angular/core';
|
|
2
|
+
import { is, signalStore } from 'angular-three';
|
|
3
|
+
import * as THREE from 'three';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class NgtsWireframeInput {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.inputs = signalStore({
|
|
8
|
+
simplify: false,
|
|
9
|
+
strokeOpacity: 1,
|
|
10
|
+
fillOpacity: 0.25,
|
|
11
|
+
fillMix: 0,
|
|
12
|
+
thickness: 0.05,
|
|
13
|
+
colorBackfaces: false,
|
|
14
|
+
dashInvert: true,
|
|
15
|
+
dash: false,
|
|
16
|
+
dashRepeats: 4,
|
|
17
|
+
dashLength: 0.5,
|
|
18
|
+
squeeze: false,
|
|
19
|
+
squeezeMin: 0.2,
|
|
20
|
+
squeezeMax: 1,
|
|
21
|
+
stroke: new THREE.Color('#ff0000'),
|
|
22
|
+
backfaceStroke: new THREE.Color('#0000ff'),
|
|
23
|
+
fill: new THREE.Color('#00ff00'),
|
|
24
|
+
});
|
|
25
|
+
this.simplify = this.inputs.select('simplify');
|
|
26
|
+
this.geometry = this.inputs.select('geometry');
|
|
27
|
+
this.customGeometry = computed(() => {
|
|
28
|
+
const geometry = this.geometry();
|
|
29
|
+
return is.ref(geometry) ? geometry.nativeElement : geometry;
|
|
30
|
+
});
|
|
31
|
+
this.strokeOpacity = this.inputs.select('strokeOpacity');
|
|
32
|
+
this.fillOpacity = this.inputs.select('fillOpacity');
|
|
33
|
+
this.fillMix = this.inputs.select('fillMix');
|
|
34
|
+
this.thickness = this.inputs.select('thickness');
|
|
35
|
+
this.colorBackfaces = this.inputs.select('colorBackfaces');
|
|
36
|
+
this.dashInvert = this.inputs.select('dashInvert');
|
|
37
|
+
this.dash = this.inputs.select('dash');
|
|
38
|
+
this.dashRepeats = this.inputs.select('dashRepeats');
|
|
39
|
+
this.dashLength = this.inputs.select('dashLength');
|
|
40
|
+
this.squeeze = this.inputs.select('squeeze');
|
|
41
|
+
this.squeezeMin = this.inputs.select('squeezeMin');
|
|
42
|
+
this.squeezeMax = this.inputs.select('squeezeMax');
|
|
43
|
+
this.stroke = this.inputs.select('stroke');
|
|
44
|
+
this.backfaceStroke = this.inputs.select('backfaceStroke');
|
|
45
|
+
this.fill = this.inputs.select('fill');
|
|
46
|
+
this.materialState = computed(() => {
|
|
47
|
+
const [strokeOpacity, fillOpacity, fillMix, thickness, colorBackfaces, dashInvert, dash, dashRepeats, dashLength, squeeze, squeezeMin, squeezeMax, stroke, backfaceStroke, fill,] = [
|
|
48
|
+
this.strokeOpacity(),
|
|
49
|
+
this.fillOpacity(),
|
|
50
|
+
this.fillMix(),
|
|
51
|
+
this.thickness(),
|
|
52
|
+
this.colorBackfaces(),
|
|
53
|
+
this.dashInvert(),
|
|
54
|
+
this.dash(),
|
|
55
|
+
this.dashRepeats(),
|
|
56
|
+
this.dashLength(),
|
|
57
|
+
this.squeeze(),
|
|
58
|
+
this.squeezeMin(),
|
|
59
|
+
this.squeezeMax(),
|
|
60
|
+
this.stroke(),
|
|
61
|
+
this.backfaceStroke(),
|
|
62
|
+
this.fill(),
|
|
63
|
+
];
|
|
64
|
+
return {
|
|
65
|
+
strokeOpacity,
|
|
66
|
+
fillOpacity,
|
|
67
|
+
fillMix,
|
|
68
|
+
thickness,
|
|
69
|
+
colorBackfaces,
|
|
70
|
+
dashInvert,
|
|
71
|
+
dash,
|
|
72
|
+
dashRepeats,
|
|
73
|
+
dashLength,
|
|
74
|
+
squeeze,
|
|
75
|
+
squeezeMin,
|
|
76
|
+
squeezeMax,
|
|
77
|
+
stroke,
|
|
78
|
+
backfaceStroke,
|
|
79
|
+
fill,
|
|
80
|
+
};
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
set _geometry(geometry) {
|
|
84
|
+
this.inputs.set({ geometry });
|
|
85
|
+
}
|
|
86
|
+
set _simplify(simplify) {
|
|
87
|
+
this.inputs.set({ simplify });
|
|
88
|
+
}
|
|
89
|
+
set _fillOpacity(fillOpacity) {
|
|
90
|
+
this.inputs.set({ fillOpacity });
|
|
91
|
+
}
|
|
92
|
+
set _fillMix(fillMix) {
|
|
93
|
+
this.inputs.set({ fillMix });
|
|
94
|
+
}
|
|
95
|
+
set _strokeOpacity(strokeOpacity) {
|
|
96
|
+
this.inputs.set({ strokeOpacity });
|
|
97
|
+
}
|
|
98
|
+
set _thickness(thickness) {
|
|
99
|
+
this.inputs.set({ thickness });
|
|
100
|
+
}
|
|
101
|
+
set _colorBackfaces(colorBackfaces) {
|
|
102
|
+
this.inputs.set({ colorBackfaces });
|
|
103
|
+
}
|
|
104
|
+
set _dashInvert(dashInvert) {
|
|
105
|
+
this.inputs.set({ dashInvert });
|
|
106
|
+
}
|
|
107
|
+
set _dash(dash) {
|
|
108
|
+
this.inputs.set({ dash });
|
|
109
|
+
}
|
|
110
|
+
set _dashRepeats(dashRepeats) {
|
|
111
|
+
this.inputs.set({ dashRepeats });
|
|
112
|
+
}
|
|
113
|
+
set _dashLength(dashLength) {
|
|
114
|
+
this.inputs.set({ dashLength });
|
|
115
|
+
}
|
|
116
|
+
set _squeeze(squeeze) {
|
|
117
|
+
this.inputs.set({ squeeze });
|
|
118
|
+
}
|
|
119
|
+
set _squeezeMin(squeezeMin) {
|
|
120
|
+
this.inputs.set({ squeezeMin });
|
|
121
|
+
}
|
|
122
|
+
set _squeezeMax(squeezeMax) {
|
|
123
|
+
this.inputs.set({ squeezeMax });
|
|
124
|
+
}
|
|
125
|
+
set _stroke(stroke) {
|
|
126
|
+
this.inputs.set({ stroke });
|
|
127
|
+
}
|
|
128
|
+
set _backfaceStroke(backfaceStroke) {
|
|
129
|
+
this.inputs.set({ backfaceStroke });
|
|
130
|
+
}
|
|
131
|
+
set _fill(fill) {
|
|
132
|
+
this.inputs.set({ fill });
|
|
133
|
+
}
|
|
134
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: NgtsWireframeInput, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
135
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.7", type: NgtsWireframeInput, inputs: { _geometry: ["geometry", "_geometry"], _simplify: ["simplify", "_simplify"], _fillOpacity: ["fillOpacity", "_fillOpacity"], _fillMix: ["fillMix", "_fillMix"], _strokeOpacity: ["strokeOpacity", "_strokeOpacity"], _thickness: ["thickness", "_thickness"], _colorBackfaces: ["colorBackfaces", "_colorBackfaces"], _dashInvert: ["dashInvert", "_dashInvert"], _dash: ["dash", "_dash"], _dashRepeats: ["dashRepeats", "_dashRepeats"], _dashLength: ["dashLength", "_dashLength"], _squeeze: ["squeeze", "_squeeze"], _squeezeMin: ["squeezeMin", "_squeezeMin"], _squeezeMax: ["squeezeMax", "_squeezeMax"], _stroke: ["stroke", "_stroke"], _backfaceStroke: ["backfaceStroke", "_backfaceStroke"], _fill: ["fill", "_fill"] }, ngImport: i0 }); }
|
|
136
|
+
}
|
|
137
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: NgtsWireframeInput, decorators: [{
|
|
138
|
+
type: Directive
|
|
139
|
+
}], propDecorators: { _geometry: [{
|
|
140
|
+
type: Input,
|
|
141
|
+
args: [{ alias: 'geometry' }]
|
|
142
|
+
}], _simplify: [{
|
|
143
|
+
type: Input,
|
|
144
|
+
args: [{ alias: 'simplify' }]
|
|
145
|
+
}], _fillOpacity: [{
|
|
146
|
+
type: Input,
|
|
147
|
+
args: [{ alias: 'fillOpacity' }]
|
|
148
|
+
}], _fillMix: [{
|
|
149
|
+
type: Input,
|
|
150
|
+
args: [{ alias: 'fillMix' }]
|
|
151
|
+
}], _strokeOpacity: [{
|
|
152
|
+
type: Input,
|
|
153
|
+
args: [{ alias: 'strokeOpacity' }]
|
|
154
|
+
}], _thickness: [{
|
|
155
|
+
type: Input,
|
|
156
|
+
args: [{ alias: 'thickness' }]
|
|
157
|
+
}], _colorBackfaces: [{
|
|
158
|
+
type: Input,
|
|
159
|
+
args: [{ alias: 'colorBackfaces' }]
|
|
160
|
+
}], _dashInvert: [{
|
|
161
|
+
type: Input,
|
|
162
|
+
args: [{ alias: 'dashInvert' }]
|
|
163
|
+
}], _dash: [{
|
|
164
|
+
type: Input,
|
|
165
|
+
args: [{ alias: 'dash' }]
|
|
166
|
+
}], _dashRepeats: [{
|
|
167
|
+
type: Input,
|
|
168
|
+
args: [{ alias: 'dashRepeats' }]
|
|
169
|
+
}], _dashLength: [{
|
|
170
|
+
type: Input,
|
|
171
|
+
args: [{ alias: 'dashLength' }]
|
|
172
|
+
}], _squeeze: [{
|
|
173
|
+
type: Input,
|
|
174
|
+
args: [{ alias: 'squeeze' }]
|
|
175
|
+
}], _squeezeMin: [{
|
|
176
|
+
type: Input,
|
|
177
|
+
args: [{ alias: 'squeezeMin' }]
|
|
178
|
+
}], _squeezeMax: [{
|
|
179
|
+
type: Input,
|
|
180
|
+
args: [{ alias: 'squeezeMax' }]
|
|
181
|
+
}], _stroke: [{
|
|
182
|
+
type: Input,
|
|
183
|
+
args: [{ alias: 'stroke' }]
|
|
184
|
+
}], _backfaceStroke: [{
|
|
185
|
+
type: Input,
|
|
186
|
+
args: [{ alias: 'backfaceStroke' }]
|
|
187
|
+
}], _fill: [{
|
|
188
|
+
type: Input,
|
|
189
|
+
args: [{ alias: 'fill' }]
|
|
190
|
+
}] } });
|
|
191
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lyZWZyYW1lLWlucHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL3N0YWdpbmcvc3JjL3dpcmVmcmFtZS93aXJlZnJhbWUtaW5wdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDOztBQVEvQixNQUFNLE9BQWdCLGtCQUFrQjtJQUR4QztRQUVDLFdBQU0sR0FBRyxXQUFXLENBQXFCO1lBQ3hDLFFBQVEsRUFBRSxLQUFLO1lBQ2YsYUFBYSxFQUFFLENBQUM7WUFDaEIsV0FBVyxFQUFFLElBQUk7WUFDakIsT0FBTyxFQUFFLENBQUM7WUFDVixTQUFTLEVBQUUsSUFBSTtZQUNmLGNBQWMsRUFBRSxLQUFLO1lBQ3JCLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLElBQUksRUFBRSxLQUFLO1lBQ1gsV0FBVyxFQUFFLENBQUM7WUFDZCxVQUFVLEVBQUUsR0FBRztZQUNmLE9BQU8sRUFBRSxLQUFLO1lBQ2QsVUFBVSxFQUFFLEdBQUc7WUFDZixVQUFVLEVBQUUsQ0FBQztZQUNiLE1BQU0sRUFBRSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1lBQ2xDLGNBQWMsRUFBRSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1lBQzFDLElBQUksRUFBRSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDO1NBQ2hDLENBQUMsQ0FBQztRQXNFSCxhQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDMUMsYUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFB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RUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO2dCQUljLGVBQWU7c0JBQXRELEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBSUosS0FBSztzQkFBbEMsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBjb21wdXRlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXMsIHNpZ25hbFN0b3JlLCB0eXBlIE5ndFJlZiB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgV2lyZWZyYW1lTWF0ZXJpYWxTdGF0ZSB9IGZyb20gJ2FuZ3VsYXItdGhyZWUtc29iYS9zaGFkZXJzJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcblxuZXhwb3J0IHR5cGUgTmd0c1dpcmVmcmFtZVN0YXRlID0ge1xuXHRnZW9tZXRyeT86IE5ndFJlZjxUSFJFRS5CdWZmZXJHZW9tZXRyeT47XG5cdHNpbXBsaWZ5OiBib29sZWFuO1xufSAmIFJlcXVpcmVkPFdpcmVmcmFtZU1hdGVyaWFsU3RhdGU+O1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBOZ3RzV2lyZWZyYW1lSW5wdXQge1xuXHRpbnB1dHMgPSBzaWduYWxTdG9yZTxOZ3RzV2lyZWZyYW1lU3RhdGU+KHtcblx0XHRzaW1wbGlmeTogZmFsc2UsXG5cdFx0c3Ryb2tlT3BhY2l0eTogMSxcblx0XHRmaWxsT3BhY2l0eTogMC4yNSxcblx0XHRmaWxsTWl4OiAwLFxuXHRcdHRoaWNrbmVzczogMC4wNSxcblx0XHRjb2xvckJhY2tmYWNlczogZmFsc2UsXG5cdFx0ZGFzaEludmVydDogdHJ1ZSxcblx0XHRkYXNoOiBmYWxzZSxcblx0XHRkYXNoUmVwZWF0czogNCxcblx0XHRkYXNoTGVuZ3RoOiAwLjUsXG5cdFx0c3F1ZWV6ZTogZmFsc2UsXG5cdFx0c3F1ZWV6ZU1pbjogMC4yLFxuXHRcdHNxdWVlemVNYXg6IDEsXG5cdFx0c3Ryb2tlOiBuZXcgVEhSRUUuQ29sb3IoJyNmZjAwMDAnKSxcblx0XHRiYWNrZmFjZVN0cm9rZTogbmV3IFRIUkVFLkNvbG9yKCcjMDAwMGZmJyksXG5cdFx0ZmlsbDogbmV3IFRIUkVFLkNvbG9yKCcjMDBmZjAwJyksXG5cdH0pO1xuXG5cdEBJbnB1dCh7IGFsaWFzOiAnZ2VvbWV0cnknIH0pIHNldCBfZ2VvbWV0cnkoZ2VvbWV0cnk6IE5ndFJlZjxUSFJFRS5CdWZmZXJHZW9tZXRyeT4pIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBnZW9tZXRyeSB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnc2ltcGxpZnknIH0pIHNldCBfc2ltcGxpZnkoc2ltcGxpZnk6IGJvb2xlYW4pIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBzaW1wbGlmeSB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnZmlsbE9wYWNpdHknIH0pIHNldCBfZmlsbE9wYWNpdHkoZmlsbE9wYWNpdHk6IG51bWJlcikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IGZpbGxPcGFjaXR5IH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICdmaWxsTWl4JyB9KSBzZXQgX2ZpbGxNaXgoZmlsbE1peDogbnVtYmVyKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgZmlsbE1peCB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnc3Ryb2tlT3BhY2l0eScgfSkgc2V0IF9zdHJva2VPcGFjaXR5KHN0cm9rZU9wYWNpdHk6IG51bWJlcikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IHN0cm9rZU9wYWNpdHkgfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ3RoaWNrbmVzcycgfSkgc2V0IF90aGlja25lc3ModGhpY2tuZXNzOiBudW1iZXIpIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyB0aGlja25lc3MgfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ2NvbG9yQmFja2ZhY2VzJyB9KSBzZXQgX2NvbG9yQmFja2ZhY2VzKGNvbG9yQmFja2ZhY2VzOiBib29sZWFuKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgY29sb3JCYWNrZmFjZXMgfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ2Rhc2hJbnZlcnQnIH0pIHNldCBfZGFzaEludmVydChkYXNoSW52ZXJ0OiBib29sZWFuKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgZGFzaEludmVydCB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnZGFzaCcgfSkgc2V0IF9kYXNoKGRhc2g6IGJvb2xlYW4pIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBkYXNoIH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICdkYXNoUmVwZWF0cycgfSkgc2V0IF9kYXNoUmVwZWF0cyhkYXNoUmVwZWF0czogbnVtYmVyKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgZGFzaFJlcGVhdHMgfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ2Rhc2hMZW5ndGgnIH0pIHNldCBfZGFzaExlbmd0aChkYXNoTGVuZ3RoOiBudW1iZXIpIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBkYXNoTGVuZ3RoIH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICdzcXVlZXplJyB9KSBzZXQgX3NxdWVlemUoc3F1ZWV6ZTogYm9vbGVhbikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IHNxdWVlemUgfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ3NxdWVlemVNaW4nIH0pIHNldCBfc3F1ZWV6ZU1pbihzcXVlZXplTWluOiBudW1iZXIpIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBzcXVlZXplTWluIH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICdzcXVlZXplTWF4JyB9KSBzZXQgX3NxdWVlemVNYXgoc3F1ZWV6ZU1heDogbnVtYmVyKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgc3F1ZWV6ZU1heCB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnc3Ryb2tlJyB9KSBzZXQgX3N0cm9rZShzdHJva2U6IFRIUkVFLkNvbG9yUmVwcmVzZW50YXRpb24pIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBzdHJva2UgfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ2JhY2tmYWNlU3Ryb2tlJyB9KSBzZXQgX2JhY2tmYWNlU3Ryb2tlKGJhY2tmYWNlU3Ryb2tlOiBUSFJFRS5Db2xvclJlcHJlc2VudGF0aW9uKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgYmFja2ZhY2VTdHJva2UgfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ2ZpbGwnIH0pIHNldCBfZmlsbChmaWxsOiBUSFJFRS5Db2xvclJlcHJlc2VudGF0aW9uKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgZmlsbCB9KTtcblx0fVxuXG5cdHNpbXBsaWZ5ID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdzaW1wbGlmeScpO1xuXHRnZW9tZXRyeSA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnZ2VvbWV0cnknKTtcblx0Y3VzdG9tR2VvbWV0cnkgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3QgZ2VvbWV0cnkgPSB0aGlzLmdlb21ldHJ5KCk7XG5cdFx0cmV0dXJuIGlzLnJlZihnZW9tZXRyeSkgPyBnZW9tZXRyeS5uYXRpdmVFbGVtZW50IDogZ2VvbWV0cnk7XG5cdH0pO1xuXG5cdHN0cm9rZU9wYWNpdHkgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ3N0cm9rZU9wYWNpdHknKTtcblx0ZmlsbE9wYWNpdHkgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ2ZpbGxPcGFjaXR5Jyk7XG5cdGZpbGxNaXggPSB0aGlzLmlucHV0cy5zZWxlY3QoJ2ZpbGxNaXgnKTtcblx0dGhpY2tuZXNzID0gdGhpcy5pbnB1dHMuc2VsZWN0KCd0aGlja25lc3MnKTtcblx0Y29sb3JCYWNrZmFjZXMgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ2NvbG9yQmFja2ZhY2VzJyk7XG5cdGRhc2hJbnZlcnQgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ2Rhc2hJbnZlcnQnKTtcblx0ZGFzaCA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnZGFzaCcpO1xuXHRkYXNoUmVwZWF0cyA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnZGFzaFJlcGVhdHMnKTtcblx0ZGFzaExlbmd0aCA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnZGFzaExlbmd0aCcpO1xuXHRzcXVlZXplID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdzcXVlZXplJyk7XG5cdHNxdWVlemVNaW4gPSB0aGlzLmlucHV0cy5zZWxlY3QoJ3NxdWVlemVNaW4nKTtcblx0c3F1ZWV6ZU1heCA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnc3F1ZWV6ZU1heCcpO1xuXHRzdHJva2UgPSB0aGlzLmlucHV0cy5zZWxlY3QoJ3N0cm9rZScpO1xuXHRiYWNrZmFjZVN0cm9rZSA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnYmFja2ZhY2VTdHJva2UnKTtcblx0ZmlsbCA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnZmlsbCcpO1xuXG5cdG1hdGVyaWFsU3RhdGUgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3QgW1xuXHRcdFx0c3Ryb2tlT3BhY2l0eSxcblx0XHRcdGZpbGxPcGFjaXR5LFxuXHRcdFx0ZmlsbE1peCxcblx0XHRcdHRoaWNrbmVzcyxcblx0XHRcdGNvbG9yQmFja2ZhY2VzLFxuXHRcdFx0ZGFzaEludmVydCxcblx0XHRcdGRhc2gsXG5cdFx0XHRkYXNoUmVwZWF0cyxcblx0XHRcdGRhc2hMZW5ndGgsXG5cdFx0XHRzcXVlZXplLFxuXHRcdFx0c3F1ZWV6ZU1pbixcblx0XHRcdHNxdWVlemVNYXgsXG5cdFx0XHRzdHJva2UsXG5cdFx0XHRiYWNrZmFjZVN0cm9rZSxcblx0XHRcdGZpbGwsXG5cdFx0XSA9IFtcblx0XHRcdHRoaXMuc3Ryb2tlT3BhY2l0eSgpLFxuXHRcdFx0dGhpcy5maWxsT3BhY2l0eSgpLFxuXHRcdFx0dGhpcy5maWxsTWl4KCksXG5cdFx0XHR0aGlzLnRoaWNrbmVzcygpLFxuXHRcdFx0dGhpcy5jb2xvckJhY2tmYWNlcygpLFxuXHRcdFx0dGhpcy5kYXNoSW52ZXJ0KCksXG5cdFx0XHR0aGlzLmRhc2goKSxcblx0XHRcdHRoaXMuZGFzaFJlcGVhdHMoKSxcblx0XHRcdHRoaXMuZGFzaExlbmd0aCgpLFxuXHRcdFx0dGhpcy5zcXVlZXplKCksXG5cdFx0XHR0aGlzLnNxdWVlemVNaW4oKSxcblx0XHRcdHRoaXMuc3F1ZWV6ZU1heCgpLFxuXHRcdFx0dGhpcy5zdHJva2UoKSxcblx0XHRcdHRoaXMuYmFja2ZhY2VTdHJva2UoKSxcblx0XHRcdHRoaXMuZmlsbCgpLFxuXHRcdF07XG5cdFx0cmV0dXJuIHtcblx0XHRcdHN0cm9rZU9wYWNpdHksXG5cdFx0XHRmaWxsT3BhY2l0eSxcblx0XHRcdGZpbGxNaXgsXG5cdFx0XHR0aGlja25lc3MsXG5cdFx0XHRjb2xvckJhY2tmYWNlcyxcblx0XHRcdGRhc2hJbnZlcnQsXG5cdFx0XHRkYXNoLFxuXHRcdFx0ZGFzaFJlcGVhdHMsXG5cdFx0XHRkYXNoTGVuZ3RoLFxuXHRcdFx0c3F1ZWV6ZSxcblx0XHRcdHNxdWVlemVNaW4sXG5cdFx0XHRzcXVlZXplTWF4LFxuXHRcdFx0c3Ryb2tlLFxuXHRcdFx0YmFja2ZhY2VTdHJva2UsXG5cdFx0XHRmaWxsLFxuXHRcdH07XG5cdH0pO1xufVxuIl19
|