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,94 +1,81 @@
|
|
|
1
1
|
import { NgIf } from '@angular/common';
|
|
2
|
-
import { CUSTOM_ELEMENTS_SCHEMA, Component,
|
|
3
|
-
import { NgtArgs, extend, injectNgtRef } from 'angular-three';
|
|
2
|
+
import { CUSTOM_ELEMENTS_SCHEMA, Component, Input, forwardRef, signal } from '@angular/core';
|
|
3
|
+
import { NgtArgs, createInjectionToken, extend, injectNgtRef } from 'angular-three';
|
|
4
4
|
import { Group, SpotLight, SpotLightHelper } from 'three';
|
|
5
5
|
import { NgtsSpotLightInput } from './spot-light-input';
|
|
6
6
|
import { NgtsVolumetricMesh } from './volumetric-mesh';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
extend({ SpotLight, SpotLightHelper, Group });
|
|
9
|
-
export const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
debug: spotLight.lightDebug,
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
class NgtsSpotLight extends NgtsSpotLightInput {
|
|
17
|
-
set volumetric(volumetric) {
|
|
18
|
-
this.set({ volumetric });
|
|
9
|
+
export const [injectNgtsSpotLightApi, provideNgtsSpotLightApi] = createInjectionToken((spotLight) => ({ spotLight: spotLight.spotLightRef, debug: spotLight.debug }), { isRoot: false, deps: [forwardRef(() => NgtsSpotLight)] });
|
|
10
|
+
export class NgtsSpotLight extends NgtsSpotLightInput {
|
|
11
|
+
set _volumetric(volumetric) {
|
|
12
|
+
this.volumetric.set(volumetric);
|
|
19
13
|
}
|
|
20
14
|
constructor() {
|
|
21
15
|
super();
|
|
22
16
|
this.spotLightRef = injectNgtRef();
|
|
23
|
-
this.
|
|
24
|
-
this.set({
|
|
17
|
+
this.volumetric = signal(true);
|
|
18
|
+
this.inputs.set({
|
|
25
19
|
opacity: 1,
|
|
26
20
|
color: 'white',
|
|
27
21
|
distance: 5,
|
|
28
22
|
angle: 0.15,
|
|
29
23
|
attenuation: 5,
|
|
30
24
|
anglePower: 5,
|
|
31
|
-
volumetric: true,
|
|
32
25
|
debug: false,
|
|
33
26
|
});
|
|
34
27
|
}
|
|
35
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
36
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
<ng-content />
|
|
55
|
-
</ngt-group>
|
|
56
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }, { kind: "component", type: NgtsVolumetricMesh, selector: "ngts-volumetric-mesh" }] }); }
|
|
28
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: NgtsSpotLight, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
29
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: NgtsSpotLight, isStandalone: true, selector: "ngts-spot-light", inputs: { spotLightRef: "spotLightRef", _volumetric: ["volumetric", "_volumetric"] }, providers: [provideNgtsSpotLightApi(), { provide: NgtsSpotLightInput, useExisting: NgtsSpotLight }], usesInheritance: true, ngImport: i0, template: `
|
|
30
|
+
<ngt-group>
|
|
31
|
+
<ng-container *ngIf="debug() && spotLightRef.nativeElement">
|
|
32
|
+
<ngt-spot-light-helper *args="[spotLightRef.nativeElement]" />
|
|
33
|
+
</ng-container>
|
|
34
|
+
<ngt-spot-light
|
|
35
|
+
[ref]="spotLightRef"
|
|
36
|
+
[color]="color()"
|
|
37
|
+
[distance]="distance()"
|
|
38
|
+
[angle]="angle()"
|
|
39
|
+
[castShadow]="true"
|
|
40
|
+
ngtCompound
|
|
41
|
+
>
|
|
42
|
+
<ngts-volumetric-mesh *ngIf="volumetric()" />
|
|
43
|
+
</ngt-spot-light>
|
|
44
|
+
<ng-content />
|
|
45
|
+
</ngt-group>
|
|
46
|
+
`, isInline: true, dependencies: [{ kind: "component", type: NgtsVolumetricMesh, selector: "ngts-volumetric-mesh" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }] }); }
|
|
57
47
|
}
|
|
58
|
-
|
|
59
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: NgtsSpotLight, decorators: [{
|
|
48
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: NgtsSpotLight, decorators: [{
|
|
60
49
|
type: Component,
|
|
61
50
|
args: [{
|
|
62
51
|
selector: 'ngts-spot-light',
|
|
63
52
|
standalone: true,
|
|
64
53
|
template: `
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
{ provide: NgtsSpotLightInput, useExisting: NgtsSpotLight },
|
|
85
|
-
],
|
|
86
|
-
imports: [NgIf, NgtArgs, NgtsVolumetricMesh],
|
|
54
|
+
<ngt-group>
|
|
55
|
+
<ng-container *ngIf="debug() && spotLightRef.nativeElement">
|
|
56
|
+
<ngt-spot-light-helper *args="[spotLightRef.nativeElement]" />
|
|
57
|
+
</ng-container>
|
|
58
|
+
<ngt-spot-light
|
|
59
|
+
[ref]="spotLightRef"
|
|
60
|
+
[color]="color()"
|
|
61
|
+
[distance]="distance()"
|
|
62
|
+
[angle]="angle()"
|
|
63
|
+
[castShadow]="true"
|
|
64
|
+
ngtCompound
|
|
65
|
+
>
|
|
66
|
+
<ngts-volumetric-mesh *ngIf="volumetric()" />
|
|
67
|
+
</ngt-spot-light>
|
|
68
|
+
<ng-content />
|
|
69
|
+
</ngt-group>
|
|
70
|
+
`,
|
|
71
|
+
imports: [NgtsVolumetricMesh, NgIf, NgtArgs],
|
|
72
|
+
providers: [provideNgtsSpotLightApi(), { provide: NgtsSpotLightInput, useExisting: NgtsSpotLight }],
|
|
87
73
|
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
88
74
|
}]
|
|
89
75
|
}], ctorParameters: function () { return []; }, propDecorators: { spotLightRef: [{
|
|
90
76
|
type: Input
|
|
91
|
-
}],
|
|
92
|
-
type: Input
|
|
77
|
+
}], _volumetric: [{
|
|
78
|
+
type: Input,
|
|
79
|
+
args: [{ alias: 'volumetric' }]
|
|
93
80
|
}] } });
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BvdC1saWdodC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc29iYS9zdGFnaW5nL3NyYy9zcG90LWxpZ2h0L3Nwb3QtbGlnaHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0YsT0FBTyxFQUFFLE9BQU8sRUFBZ0Isb0JBQW9CLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFnQyxNQUFNLG9CQUFvQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQUV2RCxNQUFNLENBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7QUFXOUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSx1QkFBdUIsQ0FBQyxHQUFHLG9CQUFvQixDQUNwRixDQUFDLFNBQXdCLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLFlBQVksRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQzdGLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRSxDQUMxRCxDQUFDO0FBMkJGLE1BQU0sT0FBTyxhQUFjLFNBQVEsa0JBQWtCO0lBSXBELElBQW9DLFdBQVcsQ0FBQyxVQUFtQjtRQUNsRSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7UUFDQyxLQUFLLEVBQUUsQ0FBQztRQVJBLGlCQUFZLEdBQUcsWUFBWSxFQUFhLENBQUM7UUFFbEQsZUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQU96QixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztZQUNmLE9BQU8sRUFBRSxDQUFDO1lBQ1YsS0FBSyxFQUFFLE9BQU87WUFDZCxRQUFRLEVBQUUsQ0FBQztZQUNYLEtBQUssRUFBRSxJQUFJO1lBQ1gsV0FBVyxFQUFFLENBQUM7WUFDZCxVQUFVLEVBQUUsQ0FBQztZQUNiLEtBQUssRUFBRSxLQUFLO1NBQ1osQ0FBQyxDQUFDO0lBQ0osQ0FBQzs4R0FuQlcsYUFBYTtrR0FBYixhQUFhLG9KQUhkLENBQUMsdUJBQXVCLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLENBQUMsaURBbkJ6Rjs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFpQlQsNERBQ1Msa0JBQWtCLGlFQUFFLElBQUksNkZBQUUsT0FBTzs7MkZBSS9CLGFBQWE7a0JBekJ6QixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBaUJUO29CQUNELE9BQU8sRUFBRSxDQUFDLGtCQUFrQixFQUFFLElBQUksRUFBRSxPQUFPLENBQUM7b0JBQzVDLFNBQVMsRUFBRSxDQUFDLHVCQUF1QixFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxlQUFlLEVBQUUsQ0FBQztvQkFDbkcsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ2pDOzBFQUVTLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRzhCLFdBQVc7c0JBQTlDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDb21wb25lbnQsIElucHV0LCBmb3J3YXJkUmVmLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIE5ndFNwb3RMaWdodCwgY3JlYXRlSW5qZWN0aW9uVG9rZW4sIGV4dGVuZCwgaW5qZWN0Tmd0UmVmIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBHcm91cCwgU3BvdExpZ2h0LCBTcG90TGlnaHRIZWxwZXIgfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBOZ3RzU3BvdExpZ2h0SW5wdXQsIHR5cGUgTmd0c1Nwb3RMaWdodElucHV0U3RhdGUgfSBmcm9tICcuL3Nwb3QtbGlnaHQtaW5wdXQnO1xuaW1wb3J0IHsgTmd0c1ZvbHVtZXRyaWNNZXNoIH0gZnJvbSAnLi92b2x1bWV0cmljLW1lc2gnO1xuXG5leHRlbmQoeyBTcG90TGlnaHQsIFNwb3RMaWdodEhlbHBlciwgR3JvdXAgfSk7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcblx0aW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG5cdFx0LyoqXG5cdFx0ICogQGV4dGVuZHMgbmd0LXNwb3QtbGlnaHRcblx0XHQgKi9cblx0XHQnbmd0cy1zcG90LWxpZ2h0JzogTmd0c1Nwb3RMaWdodElucHV0U3RhdGUgJiBOZ3RTcG90TGlnaHQ7XG5cdH1cbn1cblxuZXhwb3J0IGNvbnN0IFtpbmplY3ROZ3RzU3BvdExpZ2h0QXBpLCBwcm92aWRlTmd0c1Nwb3RMaWdodEFwaV0gPSBjcmVhdGVJbmplY3Rpb25Ub2tlbihcblx0KHNwb3RMaWdodDogTmd0c1Nwb3RMaWdodCkgPT4gKHsgc3BvdExpZ2h0OiBzcG90TGlnaHQuc3BvdExpZ2h0UmVmLCBkZWJ1Zzogc3BvdExpZ2h0LmRlYnVnIH0pLFxuXHR7IGlzUm9vdDogZmFsc2UsIGRlcHM6IFtmb3J3YXJkUmVmKCgpID0+IE5ndHNTcG90TGlnaHQpXSB9LFxuKTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cy1zcG90LWxpZ2h0Jyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LWdyb3VwPlxuXHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cImRlYnVnKCkgJiYgc3BvdExpZ2h0UmVmLm5hdGl2ZUVsZW1lbnRcIj5cblx0XHRcdFx0PG5ndC1zcG90LWxpZ2h0LWhlbHBlciAqYXJncz1cIltzcG90TGlnaHRSZWYubmF0aXZlRWxlbWVudF1cIiAvPlxuXHRcdFx0PC9uZy1jb250YWluZXI+XG5cdFx0XHQ8bmd0LXNwb3QtbGlnaHRcblx0XHRcdFx0W3JlZl09XCJzcG90TGlnaHRSZWZcIlxuXHRcdFx0XHRbY29sb3JdPVwiY29sb3IoKVwiXG5cdFx0XHRcdFtkaXN0YW5jZV09XCJkaXN0YW5jZSgpXCJcblx0XHRcdFx0W2FuZ2xlXT1cImFuZ2xlKClcIlxuXHRcdFx0XHRbY2FzdFNoYWRvd109XCJ0cnVlXCJcblx0XHRcdFx0bmd0Q29tcG91bmRcblx0XHRcdD5cblx0XHRcdFx0PG5ndHMtdm9sdW1ldHJpYy1tZXNoICpuZ0lmPVwidm9sdW1ldHJpYygpXCIgLz5cblx0XHRcdDwvbmd0LXNwb3QtbGlnaHQ+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LWdyb3VwPlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0c1ZvbHVtZXRyaWNNZXNoLCBOZ0lmLCBOZ3RBcmdzXSxcblx0cHJvdmlkZXJzOiBbcHJvdmlkZU5ndHNTcG90TGlnaHRBcGkoKSwgeyBwcm92aWRlOiBOZ3RzU3BvdExpZ2h0SW5wdXQsIHVzZUV4aXN0aW5nOiBOZ3RzU3BvdExpZ2h0IH1dLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNTcG90TGlnaHQgZXh0ZW5kcyBOZ3RzU3BvdExpZ2h0SW5wdXQge1xuXHRASW5wdXQoKSBzcG90TGlnaHRSZWYgPSBpbmplY3ROZ3RSZWY8U3BvdExpZ2h0PigpO1xuXG5cdHZvbHVtZXRyaWMgPSBzaWduYWwodHJ1ZSk7XG5cdEBJbnB1dCh7IGFsaWFzOiAndm9sdW1ldHJpYycgfSkgc2V0IF92b2x1bWV0cmljKHZvbHVtZXRyaWM6IGJvb2xlYW4pIHtcblx0XHR0aGlzLnZvbHVtZXRyaWMuc2V0KHZvbHVtZXRyaWMpO1xuXHR9XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0c3VwZXIoKTtcblx0XHR0aGlzLmlucHV0cy5zZXQoe1xuXHRcdFx0b3BhY2l0eTogMSxcblx0XHRcdGNvbG9yOiAnd2hpdGUnLFxuXHRcdFx0ZGlzdGFuY2U6IDUsXG5cdFx0XHRhbmdsZTogMC4xNSxcblx0XHRcdGF0dGVudWF0aW9uOiA1LFxuXHRcdFx0YW5nbGVQb3dlcjogNSxcblx0XHRcdGRlYnVnOiBmYWxzZSxcblx0XHR9KTtcblx0fVxufVxuIl19
|
|
@@ -1,49 +1,46 @@
|
|
|
1
|
-
import { Component, computed,
|
|
2
|
-
import { extend, injectBeforeRender, injectNgtRef,
|
|
1
|
+
import { CUSTOM_ELEMENTS_SCHEMA, Component, computed, effect, inject } from '@angular/core';
|
|
2
|
+
import { NgtArgs, extend, injectBeforeRender, injectNgtRef, injectNgtStore } from 'angular-three';
|
|
3
3
|
import { SpotLightMaterial } from 'angular-three-soba/shaders';
|
|
4
4
|
import * as THREE from 'three';
|
|
5
5
|
import { Mesh } from 'three';
|
|
6
6
|
import { NgtsSpotLightInput } from './spot-light-input';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
extend({ Mesh });
|
|
9
|
-
class NgtsVolumetricMesh {
|
|
10
|
-
#vec;
|
|
11
|
-
#store;
|
|
12
|
-
#camera;
|
|
13
|
-
#size;
|
|
14
|
-
#dpr;
|
|
15
|
-
#normalizedRadiusTop;
|
|
16
|
-
#normalizedRadiusBottom;
|
|
9
|
+
export class NgtsVolumetricMesh {
|
|
17
10
|
constructor() {
|
|
18
11
|
this.spotLightInput = inject(NgtsSpotLightInput);
|
|
19
12
|
this.mesh = injectNgtRef();
|
|
20
13
|
this.material = new SpotLightMaterial();
|
|
21
14
|
this.nullRaycast = () => null;
|
|
22
|
-
this
|
|
23
|
-
this
|
|
24
|
-
this
|
|
25
|
-
this
|
|
26
|
-
this
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
15
|
+
this.vec = new THREE.Vector3();
|
|
16
|
+
this.store = injectNgtStore();
|
|
17
|
+
this.size = this.store.select('size');
|
|
18
|
+
this.dpr = this.store.select('viewport', 'dpr');
|
|
19
|
+
this.radiusTop = computed(() => {
|
|
20
|
+
const radiusTop = this.spotLightInput.radiusTop();
|
|
21
|
+
return radiusTop === undefined ? 0.1 : radiusTop;
|
|
22
|
+
});
|
|
23
|
+
this.radiusBottom = computed(() => {
|
|
24
|
+
const [angle, radiusBottom] = [this.spotLightInput.angle(), this.spotLightInput.radiusBottom()];
|
|
25
|
+
return radiusBottom === undefined ? angle * 7 : radiusBottom;
|
|
26
|
+
});
|
|
27
|
+
this.near = this.store.select('camera', 'near');
|
|
28
|
+
this.far = this.store.select('camera', 'far');
|
|
29
|
+
this.resolution = computed(() => this.spotLightInput.depthBuffer() ? [this.size().width * this.dpr(), this.size().height * this.dpr()] : [0, 0]);
|
|
31
30
|
this.geometry = computed(() => {
|
|
32
|
-
const distance =
|
|
33
|
-
|
|
34
|
-
|
|
31
|
+
const [radiusTop, radiusBottom, distance] = [
|
|
32
|
+
this.radiusTop(),
|
|
33
|
+
this.radiusBottom(),
|
|
34
|
+
this.spotLightInput.distance(),
|
|
35
|
+
];
|
|
35
36
|
const geometry = new THREE.CylinderGeometry(radiusTop, radiusBottom, distance, 128, 64, true);
|
|
36
37
|
geometry.applyMatrix4(new THREE.Matrix4().makeTranslation(0, -distance / 2, 0));
|
|
37
38
|
geometry.applyMatrix4(new THREE.Matrix4().makeRotationX(-Math.PI / 2));
|
|
38
39
|
return geometry;
|
|
39
40
|
});
|
|
40
|
-
this.
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
? [this.#size().width * this.#dpr(), this.#size().height * this.#dpr()]
|
|
44
|
-
: [0, 0]);
|
|
45
|
-
try {
|
|
46
|
-
this.spotLightInput.patch({
|
|
41
|
+
this.beforeRender();
|
|
42
|
+
effect(() => {
|
|
43
|
+
this.spotLightInput.inputs.patch({
|
|
47
44
|
opacity: 1,
|
|
48
45
|
color: 'white',
|
|
49
46
|
distance: 5,
|
|
@@ -51,65 +48,51 @@ class NgtsVolumetricMesh {
|
|
|
51
48
|
attenuation: 5,
|
|
52
49
|
anglePower: 5,
|
|
53
50
|
});
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
this.spotLightInput.patch({
|
|
58
|
-
opacity: 1,
|
|
59
|
-
color: 'white',
|
|
60
|
-
distance: 5,
|
|
61
|
-
angle: 0.15,
|
|
62
|
-
attenuation: 5,
|
|
63
|
-
anglePower: 5,
|
|
64
|
-
});
|
|
65
|
-
});
|
|
66
|
-
}
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
beforeRender() {
|
|
67
54
|
injectBeforeRender(() => {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
return;
|
|
71
|
-
this.material.uniforms['spotPosition'].value.copy(mesh.getWorldPosition(this.#vec));
|
|
72
|
-
mesh.lookAt(mesh.parent.target.getWorldPosition(this.#vec));
|
|
55
|
+
this.material.uniforms['spotPosition'].value.copy(this.mesh.nativeElement.getWorldPosition(this.vec));
|
|
56
|
+
this.mesh.nativeElement.lookAt(this.mesh.nativeElement.parent.target.getWorldPosition(this.vec));
|
|
73
57
|
});
|
|
74
58
|
}
|
|
75
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
76
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
59
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: NgtsVolumetricMesh, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
60
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: NgtsVolumetricMesh, isStandalone: true, selector: "ngts-volumetric-mesh", ngImport: i0, template: `
|
|
61
|
+
<ngt-mesh [ref]="mesh" [geometry]="geometry()" [raycast]="nullRaycast">
|
|
62
|
+
<ngt-primitive *args="[material]" attach="material">
|
|
63
|
+
<ngt-value [rawValue]="spotLightInput.opacity()" attach="uniforms.opacity.value" />
|
|
64
|
+
<ngt-value [rawValue]="spotLightInput.color()" attach="uniforms.lightColor.value" />
|
|
65
|
+
<ngt-value [rawValue]="spotLightInput.attenuation()" attach="uniforms.attenuation.value" />
|
|
66
|
+
<ngt-value [rawValue]="spotLightInput.anglePower()" attach="uniforms.anglePower.value" />
|
|
67
|
+
<ngt-value [rawvalue]="spotLightInput.depthBuffer()" attach="uniforms.depth.value" />
|
|
68
|
+
<ngt-value [rawvalue]="near()" attach="uniforms.cameraNear.value" />
|
|
69
|
+
<ngt-value [rawvalue]="far()" attach="uniforms.cameraFar.value" />
|
|
70
|
+
<ngt-value [rawvalue]="resolution()" attach="uniforms.resolution.value" />
|
|
71
|
+
</ngt-primitive>
|
|
72
|
+
</ngt-mesh>
|
|
73
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }] }); }
|
|
90
74
|
}
|
|
91
|
-
|
|
92
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: NgtsVolumetricMesh, decorators: [{
|
|
75
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: NgtsVolumetricMesh, decorators: [{
|
|
93
76
|
type: Component,
|
|
94
77
|
args: [{
|
|
95
78
|
selector: 'ngts-volumetric-mesh',
|
|
96
79
|
standalone: true,
|
|
97
80
|
template: `
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
81
|
+
<ngt-mesh [ref]="mesh" [geometry]="geometry()" [raycast]="nullRaycast">
|
|
82
|
+
<ngt-primitive *args="[material]" attach="material">
|
|
83
|
+
<ngt-value [rawValue]="spotLightInput.opacity()" attach="uniforms.opacity.value" />
|
|
84
|
+
<ngt-value [rawValue]="spotLightInput.color()" attach="uniforms.lightColor.value" />
|
|
85
|
+
<ngt-value [rawValue]="spotLightInput.attenuation()" attach="uniforms.attenuation.value" />
|
|
86
|
+
<ngt-value [rawValue]="spotLightInput.anglePower()" attach="uniforms.anglePower.value" />
|
|
87
|
+
<ngt-value [rawvalue]="spotLightInput.depthBuffer()" attach="uniforms.depth.value" />
|
|
88
|
+
<ngt-value [rawvalue]="near()" attach="uniforms.cameraNear.value" />
|
|
89
|
+
<ngt-value [rawvalue]="far()" attach="uniforms.cameraFar.value" />
|
|
90
|
+
<ngt-value [rawvalue]="resolution()" attach="uniforms.resolution.value" />
|
|
91
|
+
</ngt-primitive>
|
|
92
|
+
</ngt-mesh>
|
|
93
|
+
`,
|
|
111
94
|
imports: [NgtArgs],
|
|
112
95
|
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
113
96
|
}]
|
|
114
97
|
}], ctorParameters: function () { return []; } });
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9sdW1ldHJpYy1tZXNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL3N0YWdpbmcvc3JjL3Nwb3QtbGlnaHQvdm9sdW1ldHJpYy1tZXNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUUsTUFBTSxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQy9CLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDN0IsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBRXhELE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7QUFFakIsTUFvQmEsa0JBQWtCO0lBTWxCLElBQUksQ0FBdUI7SUFDM0IsTUFBTSxDQUFvQjtJQUMxQixPQUFPLENBQWdDO0lBQ3ZDLEtBQUssQ0FBOEI7SUFDbkMsSUFBSSxDQUF5QztJQUU3QyxvQkFBb0IsQ0FFM0I7SUFDTyx1QkFBdUIsQ0FJOUI7SUFtQkY7UUFyQ21CLG1CQUFjLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDdEQsU0FBSSxHQUFHLFlBQVksRUFBYyxDQUFDO1FBQ2xDLGFBQVEsR0FBRyxJQUFJLGlCQUFpQixFQUFFLENBQUM7UUFDbkMsZ0JBQVcsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7UUFFekIsU0FBSSxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzNCLFdBQU0sR0FBRyxNQUFNLENB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Z0JBQ2hCLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO29CQUN0QixPQUFPLEVBQUUsQ0FBQztvQkFDVixLQUFLLEVBQUUsT0FBTztvQkFDZCxRQUFRLEVBQUUsQ0FBQztvQkFDWCxLQUFLLEVBQUUsSUFBSTtvQkFDWCxXQUFXLEVBQUUsQ0FBQztvQkFDZCxVQUFVLEVBQUUsQ0FBQztpQkFDaEIsQ0FBQyxDQUFDO1lBQ1AsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUNELGtCQUFrQixDQUFDLEdBQUcsRUFBRTtZQUNwQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUNyQyxJQUFJLENBQUMsSUFBSTtnQkFBRSxPQUFPO1lBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3BGLElBQUksQ0FBQyxNQUFNLENBQUUsSUFBSSxDQUFDLE1BQTBCLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3JGLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0FsRVEsa0JBQWtCO2tHQUFsQixrQkFBa0IsZ0ZBakJqQjs7Ozs7Ozs7Ozs7OztLQWFULDREQUNTLE9BQU87O1NBR1Isa0JBQWtCOzJGQUFsQixrQkFBa0I7a0JBcEI5QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7S0FhVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7b0JBQ2xCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNwQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZXh0ZW5kLCBpbmplY3RCZWZvcmVSZW5kZXIsIGluamVjdE5ndFJlZiwgTmd0QXJncywgTmd0U3RvcmUgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IFNwb3RMaWdodE1hdGVyaWFsIH0gZnJvbSAnYW5ndWxhci10aHJlZS1zb2JhL3NoYWRlcnMnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTWVzaCB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IE5ndHNTcG90TGlnaHRJbnB1dCB9IGZyb20gJy4vc3BvdC1saWdodC1pbnB1dCc7XG5cbmV4dGVuZCh7IE1lc2ggfSk7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd0cy12b2x1bWV0cmljLW1lc2gnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5ndC1tZXNoIFtyZWZdPVwibWVzaFwiIFtnZW9tZXRyeV09XCJnZW9tZXRyeSgpXCIgW3JheWNhc3RdPVwibnVsbFJheWNhc3RcIj5cbiAgICAgICAgICAgIDxuZ3QtcHJpbWl0aXZlICphcmdzPVwiW21hdGVyaWFsXVwiIGF0dGFjaD1cIm1hdGVyaWFsXCI+XG4gICAgICAgICAgICAgICAgPG5ndC12YWx1ZSBbcmF3VmFsdWVdPVwic3BvdExpZ2h0SW5wdXQubGlnaHRPcGFjaXR5KClcIiBhdHRhY2g9XCJ1bmlmb3Jtcy5vcGFjaXR5LnZhbHVlXCIgLz5cbiAgICAgICAgICAgICAgICA8bmd0LXZhbHVlIFtyYXdWYWx1ZV09XCJzcG90TGlnaHRJbnB1dC5saWdodENvbG9yKClcIiBhdHRhY2g9XCJ1bmlmb3Jtcy5saWdodENvbG9yLnZhbHVlXCIgLz5cbiAgICAgICAgICAgICAgICA8bmd0LXZhbHVlIFtyYXdWYWx1ZV09XCJzcG90TGlnaHRJbnB1dC5saWdodEF0dGVudWF0aW9uKClcIiBhdHRhY2g9XCJ1bmlmb3Jtcy5hdHRlbnVhdGlvbi52YWx1ZVwiIC8+XG4gICAgICAgICAgICAgICAgPG5ndC12YWx1ZSBbcmF3VmFsdWVdPVwic3BvdExpZ2h0SW5wdXQubGlnaHRBbmdsZVBvd2VyKClcIiBhdHRhY2g9XCJ1bmlmb3Jtcy5hbmdsZVBvd2VyLnZhbHVlXCIgLz5cbiAgICAgICAgICAgICAgICA8bmd0LXZhbHVlIFtyYXd2YWx1ZV09XCJzcG90TGlnaHRJbnB1dC5saWdodERlcHRoQnVmZmVyKClcIiBhdHRhY2g9XCJ1bmlmb3Jtcy5kZXB0aC52YWx1ZVwiIC8+XG4gICAgICAgICAgICAgICAgPG5ndC12YWx1ZSBbcmF3dmFsdWVdPVwibmVhcigpXCIgYXR0YWNoPVwidW5pZm9ybXMuY2FtZXJhTmVhci52YWx1ZVwiIC8+XG4gICAgICAgICAgICAgICAgPG5ndC12YWx1ZSBbcmF3dmFsdWVdPVwiZmFyKClcIiBhdHRhY2g9XCJ1bmlmb3Jtcy5jYW1lcmFGYXIudmFsdWVcIiAvPlxuICAgICAgICAgICAgICAgIDxuZ3QtdmFsdWUgW3Jhd3ZhbHVlXT1cInJlc29sdXRpb24oKVwiIGF0dGFjaD1cInVuaWZvcm1zLnJlc29sdXRpb24udmFsdWVcIiAvPlxuICAgICAgICAgICAgPC9uZ3QtcHJpbWl0aXZlPlxuICAgICAgICA8L25ndC1tZXNoPlxuICAgIGAsXG4gICAgaW1wb3J0czogW05ndEFyZ3NdLFxuICAgIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c1ZvbHVtZXRyaWNNZXNoIHtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3BvdExpZ2h0SW5wdXQgPSBpbmplY3QoTmd0c1Nwb3RMaWdodElucHV0KTtcbiAgICByZWFkb25seSBtZXNoID0gaW5qZWN0Tmd0UmVmPFRIUkVFLk1lc2g+KCk7XG4gICAgcmVhZG9ubHkgbWF0ZXJpYWwgPSBuZXcgU3BvdExpZ2h0TWF0ZXJpYWwoKTtcbiAgICByZWFkb25seSBudWxsUmF5Y2FzdCA9ICgpID0+IG51bGw7XG5cbiAgICByZWFkb25seSAjdmVjID0gbmV3IFRIUkVFLlZlY3RvcjMoKTtcbiAgICByZWFkb25seSAjc3RvcmUgPSBpbmplY3QoTmd0U3RvcmUpO1xuICAgIHJlYWRvbmx5ICNjYW1lcmEgPSB0aGlzLiNzdG9yZS5zZWxlY3QoJ2NhbWVyYScpO1xuICAgIHJlYWRvbmx5ICNzaXplID0gdGhpcy4jc3RvcmUuc2VsZWN0KCdzaXplJyk7XG4gICAgcmVhZG9ubHkgI2RwciA9IHRoaXMuI3N0b3JlLnNlbGVjdCgndmlld3BvcnQnLCAnZHByJyk7XG5cbiAgICByZWFkb25seSAjbm9ybWFsaXplZFJhZGl1c1RvcCA9IGNvbXB1dGVkKCgpID0+XG4gICAgICAgIHRoaXMuc3BvdExpZ2h0SW5wdXQubGlnaHRSYWRpdXNUb3AoKSA9PT0gdW5kZWZpbmVkID8gMC4xIDogdGhpcy5zcG90TGlnaHRJbnB1dC5saWdodFJhZGl1c1RvcCgpXG4gICAgKTtcbiAgICByZWFkb25seSAjbm9ybWFsaXplZFJhZGl1c0JvdHRvbSA9IGNvbXB1dGVkKCgpID0+XG4gICAgICAgIHRoaXMuc3BvdExpZ2h0SW5wdXQubGlnaHRSYWRpdXNCb3R0b20oKSA9PT0gdW5kZWZpbmVkXG4gICAgICAgICAgICA/IHRoaXMuc3BvdExpZ2h0SW5wdXQubGlnaHRBbmdsZSgpICogN1xuICAgICAgICAgICAgOiB0aGlzLnNwb3RMaWdodElucHV0LmxpZ2h0UmFkaXVzQm90dG9tKClcbiAgICApO1xuICAgIHJlYWRvbmx5IGdlb21ldHJ5ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCBkaXN0YW5jZSA9IHRoaXMuc3BvdExpZ2h0SW5wdXQubGlnaHREaXN0YW5jZSgpO1xuICAgICAgICBjb25zdCByYWRpdXNUb3AgPSB0aGlzLiNub3JtYWxpemVkUmFkaXVzVG9wKCk7XG4gICAgICAgIGNvbnN0IHJhZGl1c0JvdHRvbSA9IHRoaXMuI25vcm1hbGl6ZWRSYWRpdXNCb3R0b20oKTtcblxuICAgICAgICBjb25zdCBnZW9tZXRyeSA9IG5ldyBUSFJFRS5DeWxpbmRlckdlb21ldHJ5KHJhZGl1c1RvcCwgcmFkaXVzQm90dG9tLCBkaXN0YW5jZSwgMTI4LCA2NCwgdHJ1ZSk7XG4gICAgICAgIGdlb21ldHJ5LmFwcGx5TWF0cml4NChuZXcgVEhSRUUuTWF0cml4NCgpLm1ha2VUcmFuc2xhdGlvbigwLCAtZGlzdGFuY2UgLyAyLCAwKSk7XG4gICAgICAgIGdlb21ldHJ5LmFwcGx5TWF0cml4NChuZXcgVEhSRUUuTWF0cml4NCgpLm1ha2VSb3RhdGlvblgoLU1hdGguUEkgLyAyKSk7XG4gICAgICAgIHJldHVybiBnZW9tZXRyeTtcbiAgICB9KTtcbiAgICByZWFkb25seSBuZWFyID0gY29tcHV0ZWQoKCkgPT4gdGhpcy4jY2FtZXJhKCkubmVhcik7XG4gICAgcmVhZG9ubHkgZmFyID0gY29tcHV0ZWQoKCkgPT4gdGhpcy4jY2FtZXJhKCkuZmFyKTtcbiAgICByZWFkb25seSByZXNvbHV0aW9uID0gY29tcHV0ZWQoKCkgPT5cbiAgICAgICAgdGhpcy5zcG90TGlnaHRJbnB1dC5saWdodERlcHRoQnVmZmVyKClcbiAgICAgICAgICAgID8gW3RoaXMuI3NpemUoKS53aWR0aCAqIHRoaXMuI2RwcigpLCB0aGlzLiNzaXplKCkuaGVpZ2h0ICogdGhpcy4jZHByKCldXG4gICAgICAgICAgICA6IFswLCAwXVxuICAgICk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMuc3BvdExpZ2h0SW5wdXQucGF0Y2goe1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDEsXG4gICAgICAgICAgICAgICAgY29sb3I6ICd3aGl0ZScsXG4gICAgICAgICAgICAgICAgZGlzdGFuY2U6IDUsXG4gICAgICAgICAgICAgICAgYW5nbGU6IDAuMTUsXG4gICAgICAgICAgICAgICAgYXR0ZW51YXRpb246IDUsXG4gICAgICAgICAgICAgICAgYW5nbGVQb3dlcjogNSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNwb3RMaWdodElucHV0LnBhdGNoKHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMSxcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICd3aGl0ZScsXG4gICAgICAgICAgICAgICAgICAgIGRpc3RhbmNlOiA1LFxuICAgICAgICAgICAgICAgICAgICBhbmdsZTogMC4xNSxcbiAgICAgICAgICAgICAgICAgICAgYXR0ZW51YXRpb246IDUsXG4gICAgICAgICAgICAgICAgICAgIGFuZ2xlUG93ZXI6IDUsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBpbmplY3RCZWZvcmVSZW5kZXIoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbWVzaCA9IHRoaXMubWVzaC5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgaWYgKCFtZXNoKSByZXR1cm47XG4gICAgICAgICAgICB0aGlzLm1hdGVyaWFsLnVuaWZvcm1zWydzcG90UG9zaXRpb24nXS52YWx1ZS5jb3B5KG1lc2guZ2V0V29ybGRQb3NpdGlvbih0aGlzLiN2ZWMpKTtcbiAgICAgICAgICAgIG1lc2gubG9va0F0KChtZXNoLnBhcmVudCBhcyBUSFJFRS5TcG90TGlnaHQpLnRhcmdldC5nZXRXb3JsZFBvc2l0aW9uKHRoaXMuI3ZlYykpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9sdW1ldHJpYy1tZXNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL3N0YWdpbmcvc3JjL3Nwb3QtbGlnaHQvdm9sdW1ldHJpYy1tZXNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQzdCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQUV4RCxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBc0JqQixNQUFNLE9BQU8sa0JBQWtCO0lBc0M5QjtRQXJDQSxtQkFBYyxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzVDLFNBQUksR0FBRyxZQUFZLEVBQVEsQ0FBQztRQUM1QixhQUFRLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBQ25DLGdCQUFXLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO1FBRWpCLFFBQUcsR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMxQixVQUFLLEdBQUcsY0FBYyxFQUFFLENBQUM7UUFDekIsU0FBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2pDLFFBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1B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LGNBQWMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDdEcsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQWMsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDM0csQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzhHQXpEVyxrQkFBa0I7a0dBQWxCLGtCQUFrQixnRkFqQnBCOzs7Ozs7Ozs7Ozs7O0VBYVQsNERBQ1MsT0FBTzs7MkZBR0wsa0JBQWtCO2tCQXBCOUIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7O0VBYVQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO29CQUNsQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDb21wb25lbnQsIGNvbXB1dGVkLCBlZmZlY3QsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgZXh0ZW5kLCBpbmplY3RCZWZvcmVSZW5kZXIsIGluamVjdE5ndFJlZiwgaW5qZWN0Tmd0U3RvcmUgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IFNwb3RMaWdodE1hdGVyaWFsIH0gZnJvbSAnYW5ndWxhci10aHJlZS1zb2JhL3NoYWRlcnMnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTWVzaCB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IE5ndHNTcG90TGlnaHRJbnB1dCB9IGZyb20gJy4vc3BvdC1saWdodC1pbnB1dCc7XG5cbmV4dGVuZCh7IE1lc2ggfSk7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHMtdm9sdW1ldHJpYy1tZXNoJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LW1lc2ggW3JlZl09XCJtZXNoXCIgW2dlb21ldHJ5XT1cImdlb21ldHJ5KClcIiBbcmF5Y2FzdF09XCJudWxsUmF5Y2FzdFwiPlxuXHRcdFx0PG5ndC1wcmltaXRpdmUgKmFyZ3M9XCJbbWF0ZXJpYWxdXCIgYXR0YWNoPVwibWF0ZXJpYWxcIj5cblx0XHRcdFx0PG5ndC12YWx1ZSBbcmF3VmFsdWVdPVwic3BvdExpZ2h0SW5wdXQub3BhY2l0eSgpXCIgYXR0YWNoPVwidW5pZm9ybXMub3BhY2l0eS52YWx1ZVwiIC8+XG5cdFx0XHRcdDxuZ3QtdmFsdWUgW3Jhd1ZhbHVlXT1cInNwb3RMaWdodElucHV0LmNvbG9yKClcIiBhdHRhY2g9XCJ1bmlmb3Jtcy5saWdodENvbG9yLnZhbHVlXCIgLz5cblx0XHRcdFx0PG5ndC12YWx1ZSBbcmF3VmFsdWVdPVwic3BvdExpZ2h0SW5wdXQuYXR0ZW51YXRpb24oKVwiIGF0dGFjaD1cInVuaWZvcm1zLmF0dGVudWF0aW9uLnZhbHVlXCIgLz5cblx0XHRcdFx0PG5ndC12YWx1ZSBbcmF3VmFsdWVdPVwic3BvdExpZ2h0SW5wdXQuYW5nbGVQb3dlcigpXCIgYXR0YWNoPVwidW5pZm9ybXMuYW5nbGVQb3dlci52YWx1ZVwiIC8+XG5cdFx0XHRcdDxuZ3QtdmFsdWUgW3Jhd3ZhbHVlXT1cInNwb3RMaWdodElucHV0LmRlcHRoQnVmZmVyKClcIiBhdHRhY2g9XCJ1bmlmb3Jtcy5kZXB0aC52YWx1ZVwiIC8+XG5cdFx0XHRcdDxuZ3QtdmFsdWUgW3Jhd3ZhbHVlXT1cIm5lYXIoKVwiIGF0dGFjaD1cInVuaWZvcm1zLmNhbWVyYU5lYXIudmFsdWVcIiAvPlxuXHRcdFx0XHQ8bmd0LXZhbHVlIFtyYXd2YWx1ZV09XCJmYXIoKVwiIGF0dGFjaD1cInVuaWZvcm1zLmNhbWVyYUZhci52YWx1ZVwiIC8+XG5cdFx0XHRcdDxuZ3QtdmFsdWUgW3Jhd3ZhbHVlXT1cInJlc29sdXRpb24oKVwiIGF0dGFjaD1cInVuaWZvcm1zLnJlc29sdXRpb24udmFsdWVcIiAvPlxuXHRcdFx0PC9uZ3QtcHJpbWl0aXZlPlxuXHRcdDwvbmd0LW1lc2g+XG5cdGAsXG5cdGltcG9ydHM6IFtOZ3RBcmdzXSxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzVm9sdW1ldHJpY01lc2gge1xuXHRzcG90TGlnaHRJbnB1dCA9IGluamVjdChOZ3RzU3BvdExpZ2h0SW5wdXQpO1xuXHRtZXNoID0gaW5qZWN0Tmd0UmVmPE1lc2g+KCk7XG5cdG1hdGVyaWFsID0gbmV3IFNwb3RMaWdodE1hdGVyaWFsKCk7XG5cdG51bGxSYXljYXN0ID0gKCkgPT4gbnVsbDtcblxuXHRwcml2YXRlIHZlYyA9IG5ldyBUSFJFRS5WZWN0b3IzKCk7XG5cdHByaXZhdGUgc3RvcmUgPSBpbmplY3ROZ3RTdG9yZSgpO1xuXHRwcml2YXRlIHNpemUgPSB0aGlzLnN0b3JlLnNlbGVjdCgnc2l6ZScpO1xuXHRwcml2YXRlIGRwciA9IHRoaXMuc3RvcmUuc2VsZWN0KCd2aWV3cG9ydCcsICdkcHInKTtcblxuXHRwcml2YXRlIHJhZGl1c1RvcCA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCByYWRpdXNUb3AgPSB0aGlzLnNwb3RMaWdodElucHV0LnJhZGl1c1RvcCgpO1xuXHRcdHJldHVybiByYWRpdXNUb3AgPT09IHVuZGVmaW5lZCA/IDAuMSA6IHJhZGl1c1RvcDtcblx0fSk7XG5cdHByaXZhdGUgcmFkaXVzQm90dG9tID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IFthbmdsZSwgcmFkaXVzQm90dG9tXSA9IFt0aGlzLnNwb3RMaWdodElucHV0LmFuZ2xlKCksIHRoaXMuc3BvdExpZ2h0SW5wdXQucmFkaXVzQm90dG9tKCldO1xuXHRcdHJldHVybiByYWRpdXNCb3R0b20gPT09IHVuZGVmaW5lZCA/IGFuZ2xlICogNyA6IHJhZGl1c0JvdHRvbTtcblx0fSk7XG5cblx0bmVhciA9IHRoaXMuc3RvcmUuc2VsZWN0KCdjYW1lcmEnLCAnbmVhcicpO1xuXHRmYXIgPSB0aGlzLnN0b3JlLnNlbGVjdCgnY2FtZXJhJywgJ2ZhcicpO1xuXHRyZXNvbHV0aW9uID0gY29tcHV0ZWQoKCkgPT5cblx0XHR0aGlzLnNwb3RMaWdodElucHV0LmRlcHRoQnVmZmVyKCkgPyBbdGhpcy5zaXplKCkud2lkdGggKiB0aGlzLmRwcigpLCB0aGlzLnNpemUoKS5oZWlnaHQgKiB0aGlzLmRwcigpXSA6IFswLCAwXSxcblx0KTtcblx0Z2VvbWV0cnkgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3QgW3JhZGl1c1RvcCwgcmFkaXVzQm90dG9tLCBkaXN0YW5jZV0gPSBbXG5cdFx0XHR0aGlzLnJhZGl1c1RvcCgpLFxuXHRcdFx0dGhpcy5yYWRpdXNCb3R0b20oKSxcblx0XHRcdHRoaXMuc3BvdExpZ2h0SW5wdXQuZGlzdGFuY2UoKSxcblx0XHRdO1xuXG5cdFx0Y29uc3QgZ2VvbWV0cnkgPSBuZXcgVEhSRUUuQ3lsaW5kZXJHZW9tZXRyeShyYWRpdXNUb3AsIHJhZGl1c0JvdHRvbSwgZGlzdGFuY2UsIDEyOCwgNjQsIHRydWUpO1xuXHRcdGdlb21ldHJ5LmFwcGx5TWF0cml4NChuZXcgVEhSRUUuTWF0cml4NCgpLm1ha2VUcmFuc2xhdGlvbigwLCAtZGlzdGFuY2UgLyAyLCAwKSk7XG5cdFx0Z2VvbWV0cnkuYXBwbHlNYXRyaXg0KG5ldyBUSFJFRS5NYXRyaXg0KCkubWFrZVJvdGF0aW9uWCgtTWF0aC5QSSAvIDIpKTtcblx0XHRyZXR1cm4gZ2VvbWV0cnk7XG5cdH0pO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdHRoaXMuYmVmb3JlUmVuZGVyKCk7XG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdHRoaXMuc3BvdExpZ2h0SW5wdXQuaW5wdXRzLnBhdGNoKHtcblx0XHRcdFx0b3BhY2l0eTogMSxcblx0XHRcdFx0Y29sb3I6ICd3aGl0ZScsXG5cdFx0XHRcdGRpc3RhbmNlOiA1LFxuXHRcdFx0XHRhbmdsZTogMC4xNSxcblx0XHRcdFx0YXR0ZW51YXRpb246IDUsXG5cdFx0XHRcdGFuZ2xlUG93ZXI6IDUsXG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgYmVmb3JlUmVuZGVyKCkge1xuXHRcdGluamVjdEJlZm9yZVJlbmRlcigoKSA9PiB7XG5cdFx0XHR0aGlzLm1hdGVyaWFsLnVuaWZvcm1zWydzcG90UG9zaXRpb24nXS52YWx1ZS5jb3B5KHRoaXMubWVzaC5uYXRpdmVFbGVtZW50LmdldFdvcmxkUG9zaXRpb24odGhpcy52ZWMpKTtcblx0XHRcdHRoaXMubWVzaC5uYXRpdmVFbGVtZW50Lmxvb2tBdCgodGhpcy5tZXNoLm5hdGl2ZUVsZW1lbnQucGFyZW50IGFzIGFueSkudGFyZ2V0LmdldFdvcmxkUG9zaXRpb24odGhpcy52ZWMpKTtcblx0XHR9KTtcblx0fVxufVxuIl19
|