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,6 +1,6 @@
|
|
|
1
1
|
import { NgIf } from '@angular/common';
|
|
2
2
|
import { Component, computed, CUSTOM_ELEMENTS_SCHEMA, effect, inject } from '@angular/core';
|
|
3
|
-
import { extend, injectBeforeRender, injectNgtRef, NgtArgs, NgtPortal, NgtPortalContent,
|
|
3
|
+
import { extend, injectBeforeRender, injectNgtRef, injectNgtStore, NgtArgs, NgtPortal, NgtPortalContent, prepare, } from 'angular-three';
|
|
4
4
|
import * as THREE from 'three';
|
|
5
5
|
import { CubeCamera } from 'three';
|
|
6
6
|
import { NgtsEnvironmentCube } from './environment-cube';
|
|
@@ -9,127 +9,105 @@ import { NgtsEnvironmentMap } from './environment-map';
|
|
|
9
9
|
import { setEnvProps } from './utils';
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
11
11
|
extend({ CubeCamera });
|
|
12
|
-
class NgtsEnvironmentPortal {
|
|
13
|
-
#store;
|
|
14
|
-
#fbo;
|
|
12
|
+
export class NgtsEnvironmentPortal {
|
|
15
13
|
constructor() {
|
|
16
14
|
this.environmentInput = inject(NgtsEnvironmentInput);
|
|
17
|
-
this
|
|
15
|
+
this.store = injectNgtStore();
|
|
16
|
+
this.gl = this.store.select('gl');
|
|
17
|
+
this.scene = this.store.select('scene');
|
|
18
18
|
this.virtualSceneRef = injectNgtRef(prepare(new THREE.Scene()));
|
|
19
19
|
this.cubeCameraRef = injectNgtRef();
|
|
20
|
-
this
|
|
21
|
-
const fbo = new THREE.WebGLCubeRenderTarget(this.environmentInput.
|
|
20
|
+
this.fbo = computed(() => {
|
|
21
|
+
const fbo = new THREE.WebGLCubeRenderTarget(this.environmentInput.resolution());
|
|
22
22
|
fbo.texture.type = THREE.HalfFloatType;
|
|
23
23
|
return fbo;
|
|
24
24
|
});
|
|
25
|
-
this.cameraArgs = computed(() => [
|
|
26
|
-
|
|
27
|
-
this.environmentInput.
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
background: false,
|
|
36
|
-
preset: undefined,
|
|
25
|
+
this.cameraArgs = computed(() => [this.environmentInput.near(), this.environmentInput.far(), this.fbo()]);
|
|
26
|
+
effect(() => {
|
|
27
|
+
this.environmentInput.inputs.patch({
|
|
28
|
+
near: 1,
|
|
29
|
+
far: 1000,
|
|
30
|
+
resolution: 256,
|
|
31
|
+
frames: 1,
|
|
32
|
+
background: false,
|
|
33
|
+
preset: undefined,
|
|
34
|
+
});
|
|
37
35
|
});
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
});
|
|
41
|
-
injectBeforeRender(this.#onBeforeRender.bind(this, 1));
|
|
36
|
+
this.setEnvProps();
|
|
37
|
+
this.beforeRender();
|
|
42
38
|
}
|
|
43
|
-
|
|
44
|
-
const gl = this.#store.select('gl');
|
|
45
|
-
const scene = this.#store.select('scene');
|
|
46
|
-
const trigger = computed(() => ({
|
|
47
|
-
gl: gl(),
|
|
48
|
-
defaultScene: scene(),
|
|
49
|
-
fbo: this.#fbo(),
|
|
50
|
-
scene: this.environmentInput.environmentScene(),
|
|
51
|
-
background: this.environmentInput.environmentBackground(),
|
|
52
|
-
frames: this.environmentInput.environmentFrames(),
|
|
53
|
-
blur: this.environmentInput.environmentBlur(),
|
|
54
|
-
virtualScene: this.virtualSceneRef.nativeElement,
|
|
55
|
-
cubeCamera: this.cubeCameraRef.nativeElement,
|
|
56
|
-
}));
|
|
39
|
+
setEnvProps() {
|
|
57
40
|
effect((onCleanup) => {
|
|
58
|
-
const
|
|
41
|
+
const [virtualScene, blur, frames, background, scene, fbo, defaultScene, gl, cubeCamera] = [
|
|
42
|
+
this.virtualSceneRef.nativeElement,
|
|
43
|
+
this.environmentInput.blur(),
|
|
44
|
+
this.environmentInput.frames(),
|
|
45
|
+
this.environmentInput.background(),
|
|
46
|
+
this.environmentInput.scene(),
|
|
47
|
+
this.fbo(),
|
|
48
|
+
this.scene(),
|
|
49
|
+
this.gl(),
|
|
50
|
+
this.cubeCameraRef.nativeElement,
|
|
51
|
+
];
|
|
59
52
|
if (!cubeCamera || !virtualScene)
|
|
60
53
|
return;
|
|
61
54
|
if (frames === 1)
|
|
62
55
|
cubeCamera.update(gl, virtualScene);
|
|
63
|
-
|
|
56
|
+
const cleanUp = setEnvProps(background, scene, defaultScene, fbo.texture, blur);
|
|
57
|
+
onCleanup(cleanUp);
|
|
64
58
|
});
|
|
65
59
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
60
|
+
beforeRender() {
|
|
61
|
+
let count = 1;
|
|
62
|
+
injectBeforeRender(({ gl }) => {
|
|
63
|
+
const { frames } = this.environmentInput.inputs.get();
|
|
64
|
+
if (frames === Infinity || count < frames) {
|
|
65
|
+
const camera = this.cubeCameraRef.nativeElement;
|
|
66
|
+
const virtualScene = this.virtualSceneRef.nativeElement;
|
|
67
|
+
if (camera && virtualScene) {
|
|
68
|
+
camera.update(gl, virtualScene);
|
|
69
|
+
count++;
|
|
70
|
+
}
|
|
74
71
|
}
|
|
75
|
-
}
|
|
72
|
+
});
|
|
76
73
|
}
|
|
77
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
78
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
<ngts-environment-map
|
|
93
|
-
*ngIf="environmentInput.environmentMap() as map"
|
|
94
|
-
[background]="true"
|
|
95
|
-
[map]="map"
|
|
96
|
-
/>
|
|
97
|
-
</ng-template>
|
|
98
|
-
</ng-template>
|
|
99
|
-
</ngt-portal>
|
|
100
|
-
`, isInline: true, dependencies: [{ kind: "component", type: NgtPortal, selector: "ngt-portal", inputs: ["container", "portalState", "autoRender", "autoRenderPriority"], outputs: ["beforeRender"] }, { kind: "directive", type: NgtPortalContent, selector: "ng-template[ngtPortalContent]" }, { kind: "directive", type: NgtsEnvironmentMap, selector: "ngts-environment-map", inputs: ["map", "background"] }, { kind: "directive", type: NgtsEnvironmentCube, selector: "ngts-environment-cube", inputs: ["background"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }] }); }
|
|
74
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: NgtsEnvironmentPortal, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
75
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: NgtsEnvironmentPortal, isStandalone: true, selector: "ngts-environment-portal", ngImport: i0, template: `
|
|
76
|
+
<ngt-portal [container]="virtualSceneRef">
|
|
77
|
+
<ng-template ngtPortalContent>
|
|
78
|
+
<ng-content />
|
|
79
|
+
<ngt-cube-camera *args="cameraArgs()" [ref]="cubeCameraRef" />
|
|
80
|
+
<ng-container *ngIf="environmentInput.files() || environmentInput.preset(); else environmentMap">
|
|
81
|
+
<ngts-environment-cube [background]="true" />
|
|
82
|
+
</ng-container>
|
|
83
|
+
<ng-template #environmentMap>
|
|
84
|
+
<ngts-environment-map *ngIf="environmentInput.map() as map" [background]="true" [map]="map" />
|
|
85
|
+
</ng-template>
|
|
86
|
+
</ng-template>
|
|
87
|
+
</ngt-portal>
|
|
88
|
+
`, isInline: true, dependencies: [{ kind: "component", type: NgtPortal, selector: "ngt-portal", inputs: ["container", "state", "autoRender", "autoRenderPriority"], outputs: ["beforeRender"] }, { kind: "directive", type: NgtPortalContent, selector: "ng-template[ngtPortalContent]" }, { kind: "directive", type: NgtsEnvironmentMap, selector: "ngts-environment-map", inputs: ["map", "background"] }, { kind: "directive", type: NgtsEnvironmentCube, selector: "ngts-environment-cube", inputs: ["background"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }] }); }
|
|
101
89
|
}
|
|
102
|
-
|
|
103
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: NgtsEnvironmentPortal, decorators: [{
|
|
90
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: NgtsEnvironmentPortal, decorators: [{
|
|
104
91
|
type: Component,
|
|
105
92
|
args: [{
|
|
106
93
|
selector: 'ngts-environment-portal',
|
|
107
94
|
standalone: true,
|
|
108
95
|
template: `
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
<ngts-environment-map
|
|
123
|
-
*ngIf="environmentInput.environmentMap() as map"
|
|
124
|
-
[background]="true"
|
|
125
|
-
[map]="map"
|
|
126
|
-
/>
|
|
127
|
-
</ng-template>
|
|
128
|
-
</ng-template>
|
|
129
|
-
</ngt-portal>
|
|
130
|
-
`,
|
|
96
|
+
<ngt-portal [container]="virtualSceneRef">
|
|
97
|
+
<ng-template ngtPortalContent>
|
|
98
|
+
<ng-content />
|
|
99
|
+
<ngt-cube-camera *args="cameraArgs()" [ref]="cubeCameraRef" />
|
|
100
|
+
<ng-container *ngIf="environmentInput.files() || environmentInput.preset(); else environmentMap">
|
|
101
|
+
<ngts-environment-cube [background]="true" />
|
|
102
|
+
</ng-container>
|
|
103
|
+
<ng-template #environmentMap>
|
|
104
|
+
<ngts-environment-map *ngIf="environmentInput.map() as map" [background]="true" [map]="map" />
|
|
105
|
+
</ng-template>
|
|
106
|
+
</ng-template>
|
|
107
|
+
</ngt-portal>
|
|
108
|
+
`,
|
|
131
109
|
imports: [NgtPortal, NgtPortalContent, NgtsEnvironmentMap, NgtsEnvironmentCube, NgIf, NgtArgs],
|
|
132
110
|
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
133
111
|
}]
|
|
134
112
|
}], ctorParameters: function () { return []; } });
|
|
135
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQtcG9ydGFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL3N0YWdpbmcvc3JjL2Vudmlyb25tZW50L2Vudmlyb25tZW50LXBvcnRhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQ0gsTUFBTSxFQUNOLGtCQUFrQixFQUNsQixZQUFZLEVBQ1osT0FBTyxFQUNQLFNBQVMsRUFDVCxnQkFBZ0IsRUFFaEIsUUFBUSxFQUNSLE9BQU8sRUFDUCx1Q0FBdUMsR0FDMUMsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNuQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDOztBQUV0QyxNQUFNLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0FBRXZCLE1BNkJhLHFCQUFxQjtJQUVyQixNQUFNLENBQW9CO0lBSzFCLElBQUksQ0FJVjtJQU9IO1FBakJtQixxQkFBZ0IsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUMxRCxXQUFNLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTFCLG9CQUFlLEdBQUcsWUFBWSxDQUFjLE9BQU8sQ0FB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LENBQUMsS0FBYSxFQUFFLEVBQUUsRUFBRSxFQUFrQjtRQUNqRCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQy9DLElBQUksTUFBTSxLQUFLLFFBQVEsSUFBSSxLQUFLLEdBQUcsTUFBTyxFQUFFO1lBQ3hDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDO1lBQ2hELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDO1lBQ3hELElBQUksTUFBTSxJQUFJLFlBQVksRUFBRTtnQkFDeEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsWUFBWSxDQUFDLENBQUM7Z0JBQ2hDLEtBQUssRUFBRSxDQUFDO2FBQ1g7U0FDSjtJQUNMLENBQUM7OEdBbkVRLHFCQUFxQjtrR0FBckIscUJBQXFCLG1GQTFCcEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FzQlQsNERBQ1MsU0FBUyw0SkFBRSxnQkFBZ0IsMEVBQUUsa0JBQWtCLGdHQUFFLG1CQUFtQiwwRkFBRSxJQUFJLDZGQUFFLE9BQU87O1NBR3BGLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQTdCakMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBc0JUO29CQUNELE9BQU8sRUFBRSxDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDO29CQUM5RixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDcEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIGVmZmVjdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIGV4dGVuZCxcbiAgICBpbmplY3RCZWZvcmVSZW5kZXIsXG4gICAgaW5qZWN0Tmd0UmVmLFxuICAgIE5ndEFyZ3MsXG4gICAgTmd0UG9ydGFsLFxuICAgIE5ndFBvcnRhbENvbnRlbnQsXG4gICAgTmd0UmVuZGVyU3RhdGUsXG4gICAgTmd0U3RvcmUsXG4gICAgcHJlcGFyZSxcbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWVJbkluamVjdGlvbkNvbnRleHQsXG59IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgQ3ViZUNhbWVyYSB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IE5ndHNFbnZpcm9ubWVudEN1YmUgfSBmcm9tICcuL2Vudmlyb25tZW50LWN1YmUnO1xuaW1wb3J0IHsgTmd0c0Vudmlyb25tZW50SW5wdXQgfSBmcm9tICcuL2Vudmlyb25tZW50LWlucHV0JztcbmltcG9ydCB7IE5ndHNFbnZpcm9ubWVudE1hcCB9IGZyb20gJy4vZW52aXJvbm1lbnQtbWFwJztcbmltcG9ydCB7IHNldEVudlByb3BzIH0gZnJvbSAnLi91dGlscyc7XG5cbmV4dGVuZCh7IEN1YmVDYW1lcmEgfSk7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd0cy1lbnZpcm9ubWVudC1wb3J0YWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5ndC1wb3J0YWwgW2NvbnRhaW5lcl09XCJ2aXJ0dWFsU2NlbmVSZWZcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ3RQb3J0YWxDb250ZW50PlxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgICAgICAgICAgICAgPG5ndC1jdWJlLWNhbWVyYSAqYXJncz1cImNhbWVyYUFyZ3MoKVwiIFtyZWZdPVwiY3ViZUNhbWVyYVJlZlwiIC8+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgZW52aXJvbm1lbnRJbnB1dC5lbnZpcm9ubWVudEZpbGVzKCkgfHwgZW52aXJvbm1lbnRJbnB1dC5lbnZpcm9ubWVudFByZXNldCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBlbnZpcm9ubWVudE1hcFxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG5ndHMtZW52aXJvbm1lbnQtY3ViZSBbYmFja2dyb3VuZF09XCJ0cnVlXCIgLz5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Vudmlyb25tZW50TWFwPlxuICAgICAgICAgICAgICAgICAgICA8bmd0cy1lbnZpcm9ubWVudC1tYXBcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZW52aXJvbm1lbnRJbnB1dC5lbnZpcm9ubWVudE1hcCgpIGFzIG1hcFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYmFja2dyb3VuZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFttYXBdPVwibWFwXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZ3QtcG9ydGFsPlxuICAgIGAsXG4gICAgaW1wb3J0czogW05ndFBvcnRhbCwgTmd0UG9ydGFsQ29udGVudCwgTmd0c0Vudmlyb25tZW50TWFwLCBOZ3RzRW52aXJvbm1lbnRDdWJlLCBOZ0lmLCBOZ3RBcmdzXSxcbiAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNFbnZpcm9ubWVudFBvcnRhbCB7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGVudmlyb25tZW50SW5wdXQgPSBpbmplY3QoTmd0c0Vudmlyb25tZW50SW5wdXQpO1xuICAgIHJlYWRvbmx5ICNzdG9yZSA9IGluamVjdChOZ3RTdG9yZSk7XG5cbiAgICByZWFkb25seSB2aXJ0dWFsU2NlbmVSZWYgPSBpbmplY3ROZ3RSZWY8VEhSRUUuU2NlbmU+KHByZXBhcmUobmV3IFRIUkVFLlNjZW5lKCkpKTtcbiAgICByZWFkb25seSBjdWJlQ2FtZXJhUmVmID0gaW5qZWN0Tmd0UmVmPFRIUkVFLkN1YmVDYW1lcmE+KCk7XG5cbiAgICByZWFkb25seSAjZmJvID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCBmYm8gPSBuZXcgVEhSRUUuV2ViR0xDdWJlUmVuZGVyVGFyZ2V0KHRoaXMuZW52aXJvbm1lbnRJbnB1dC5lbnZpcm9ubWVudFJlc29sdXRpb24oKSk7XG4gICAgICAgIGZiby50ZXh0dXJlLnR5cGUgPSBUSFJFRS5IYWxmRmxvYXRUeXBlO1xuICAgICAgICByZXR1cm4gZmJvO1xuICAgIH0pO1xuICAgIHJlYWRvbmx5IGNhbWVyYUFyZ3MgPSBjb21wdXRlZCgoKSA9PiBbXG4gICAgICAgIHRoaXMuZW52aXJvbm1lbnRJbnB1dC5lbnZpcm9ubWVudE5lYXIoKSEsXG4gICAgICAgIHRoaXMuZW52aXJvbm1lbnRJbnB1dC5lbnZpcm9ubWVudEZhcigpISxcbiAgICAgICAgdGhpcy4jZmJvKCksXG4gICAgXSk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5lbnZpcm9ubWVudElucHV0LnBhdGNoKHtcbiAgICAgICAgICAgIG5lYXI6IDEsXG4gICAgICAgICAgICBmYXI6IDEwMDAsXG4gICAgICAgICAgICByZXNvbHV0aW9uOiAyNTYsXG4gICAgICAgICAgICBmcmFtZXM6IDEsXG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBmYWxzZSxcbiAgICAgICAgICAgIHByZXNldDogdW5kZWZpbmVkLFxuICAgICAgICB9KTtcbiAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lSW5JbmplY3Rpb25Db250ZXh0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuI3NldEVudlByb3BzKCk7XG4gICAgICAgIH0pO1xuICAgICAgICBpbmplY3RCZWZvcmVSZW5kZXIodGhpcy4jb25CZWZvcmVSZW5kZXIuYmluZCh0aGlzLCAxKSk7XG4gICAgfVxuXG4gICAgI3NldEVudlByb3BzKCkge1xuICAgICAgICBjb25zdCBnbCA9IHRoaXMuI3N0b3JlLnNlbGVjdCgnZ2wnKTtcbiAgICAgICAgY29uc3Qgc2NlbmUgPSB0aGlzLiNzdG9yZS5zZWxlY3QoJ3NjZW5lJyk7XG5cbiAgICAgICAgY29uc3QgdHJpZ2dlciA9IGNvbXB1dGVkKCgpID0+ICh7XG4gICAgICAgICAgICBnbDogZ2woKSxcbiAgICAgICAgICAgIGRlZmF1bHRTY2VuZTogc2NlbmUoKSxcbiAgICAgICAgICAgIGZibzogdGhpcy4jZmJvKCksXG4gICAgICAgICAgICBzY2VuZTogdGhpcy5lbnZpcm9ubWVudElucHV0LmVudmlyb25tZW50U2NlbmUoKSxcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRoaXMuZW52aXJvbm1lbnRJbnB1dC5lbnZpcm9ubWVudEJhY2tncm91bmQoKSxcbiAgICAgICAgICAgIGZyYW1lczogdGhpcy5lbnZpcm9ubWVudElucHV0LmVudmlyb25tZW50RnJhbWVzKCksXG4gICAgICAgICAgICBibHVyOiB0aGlzLmVudmlyb25tZW50SW5wdXQuZW52aXJvbm1lbnRCbHVyKCksXG4gICAgICAgICAgICB2aXJ0dWFsU2NlbmU6IHRoaXMudmlydHVhbFNjZW5lUmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICBjdWJlQ2FtZXJhOiB0aGlzLmN1YmVDYW1lcmFSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgfSkpO1xuXG4gICAgICAgIGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IHZpcnR1YWxTY2VuZSwgYmx1ciwgZnJhbWVzLCBiYWNrZ3JvdW5kLCBzY2VuZSwgZmJvLCBkZWZhdWx0U2NlbmUsIGdsLCBjdWJlQ2FtZXJhIH0gPSB0cmlnZ2VyKCk7XG4gICAgICAgICAgICBpZiAoIWN1YmVDYW1lcmEgfHwgIXZpcnR1YWxTY2VuZSkgcmV0dXJuO1xuICAgICAgICAgICAgaWYgKGZyYW1lcyA9PT0gMSkgY3ViZUNhbWVyYS51cGRhdGUoZ2wsIHZpcnR1YWxTY2VuZSk7XG4gICAgICAgICAgICBvbkNsZWFudXAoc2V0RW52UHJvcHMoYmFja2dyb3VuZCEsIHNjZW5lLCBkZWZhdWx0U2NlbmUsIGZiby50ZXh0dXJlLCBibHVyKSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgICNvbkJlZm9yZVJlbmRlcihjb3VudDogbnVtYmVyLCB7IGdsIH06IE5ndFJlbmRlclN0YXRlKSB7XG4gICAgICAgIGNvbnN0IHsgZnJhbWVzIH0gPSB0aGlzLmVudmlyb25tZW50SW5wdXQuZ2V0KCk7XG4gICAgICAgIGlmIChmcmFtZXMgPT09IEluZmluaXR5IHx8IGNvdW50IDwgZnJhbWVzISkge1xuICAgICAgICAgICAgY29uc3QgY2FtZXJhID0gdGhpcy5jdWJlQ2FtZXJhUmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICBjb25zdCB2aXJ0dWFsU2NlbmUgPSB0aGlzLnZpcnR1YWxTY2VuZVJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgaWYgKGNhbWVyYSAmJiB2aXJ0dWFsU2NlbmUpIHtcbiAgICAgICAgICAgICAgICBjYW1lcmEudXBkYXRlKGdsLCB2aXJ0dWFsU2NlbmUpO1xuICAgICAgICAgICAgICAgIGNvdW50Kys7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQtcG9ydGFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL3N0YWdpbmcvc3JjL2Vudmlyb25tZW50L2Vudmlyb25tZW50LXBvcnRhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQ04sTUFBTSxFQUNOLGtCQUFrQixFQUNsQixZQUFZLEVBQ1osY0FBYyxFQUNkLE9BQU8sRUFDUCxTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLE9BQU8sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ25DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxTQUFTLENBQUM7O0FBRXRDLE1BQU0sQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7QUFzQnZCLE1BQU0sT0FBTyxxQkFBcUI7SUFnQmpDO1FBZkEscUJBQWdCLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDeEMsVUFBSyxHQUFHLGNBQWMsRUFBRSxDQUFDO1FBQ3pCLE9BQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixVQUFLLEdBQUcsSUFBSSxDQUFD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M0MsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUM7Z0JBQ2hELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDO2dCQUN4RCxJQUFJLE1BQU0sSUFBSSxZQUFZLEVBQUU7b0JBQzNCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLFlBQVksQ0FBQyxDQUFDO29CQUNoQyxLQUFLLEVBQUUsQ0FBQztpQkFDUjthQUNEO1FBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzhHQWhFVyxxQkFBcUI7a0dBQXJCLHFCQUFxQixtRkFqQnZCOzs7Ozs7Ozs7Ozs7O0VBYVQsNERBQ1MsU0FBUyxzSkFBRSxnQkFBZ0IsMEVBQUUsa0JBQWtCLGdHQUFFLG1CQUFtQiwwRkFBRSxJQUFJLDZGQUFFLE9BQU87OzJGQUdqRixxQkFBcUI7a0JBcEJqQyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7RUFhVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQztvQkFDOUYsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ2pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBlZmZlY3QsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcblx0ZXh0ZW5kLFxuXHRpbmplY3RCZWZvcmVSZW5kZXIsXG5cdGluamVjdE5ndFJlZixcblx0aW5qZWN0Tmd0U3RvcmUsXG5cdE5ndEFyZ3MsXG5cdE5ndFBvcnRhbCxcblx0Tmd0UG9ydGFsQ29udGVudCxcblx0cHJlcGFyZSxcbn0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBDdWJlQ2FtZXJhIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0c0Vudmlyb25tZW50Q3ViZSB9IGZyb20gJy4vZW52aXJvbm1lbnQtY3ViZSc7XG5pbXBvcnQgeyBOZ3RzRW52aXJvbm1lbnRJbnB1dCB9IGZyb20gJy4vZW52aXJvbm1lbnQtaW5wdXQnO1xuaW1wb3J0IHsgTmd0c0Vudmlyb25tZW50TWFwIH0gZnJvbSAnLi9lbnZpcm9ubWVudC1tYXAnO1xuaW1wb3J0IHsgc2V0RW52UHJvcHMgfSBmcm9tICcuL3V0aWxzJztcblxuZXh0ZW5kKHsgQ3ViZUNhbWVyYSB9KTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cy1lbnZpcm9ubWVudC1wb3J0YWwnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtcG9ydGFsIFtjb250YWluZXJdPVwidmlydHVhbFNjZW5lUmVmXCI+XG5cdFx0XHQ8bmctdGVtcGxhdGUgbmd0UG9ydGFsQ29udGVudD5cblx0XHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHRcdFx0PG5ndC1jdWJlLWNhbWVyYSAqYXJncz1cImNhbWVyYUFyZ3MoKVwiIFtyZWZdPVwiY3ViZUNhbWVyYVJlZlwiIC8+XG5cdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJlbnZpcm9ubWVudElucHV0LmZpbGVzKCkgfHwgZW52aXJvbm1lbnRJbnB1dC5wcmVzZXQoKTsgZWxzZSBlbnZpcm9ubWVudE1hcFwiPlxuXHRcdFx0XHRcdDxuZ3RzLWVudmlyb25tZW50LWN1YmUgW2JhY2tncm91bmRdPVwidHJ1ZVwiIC8+XG5cdFx0XHRcdDwvbmctY29udGFpbmVyPlxuXHRcdFx0XHQ8bmctdGVtcGxhdGUgI2Vudmlyb25tZW50TWFwPlxuXHRcdFx0XHRcdDxuZ3RzLWVudmlyb25tZW50LW1hcCAqbmdJZj1cImVudmlyb25tZW50SW5wdXQubWFwKCkgYXMgbWFwXCIgW2JhY2tncm91bmRdPVwidHJ1ZVwiIFttYXBdPVwibWFwXCIgLz5cblx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cblx0XHRcdDwvbmctdGVtcGxhdGU+XG5cdFx0PC9uZ3QtcG9ydGFsPlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0UG9ydGFsLCBOZ3RQb3J0YWxDb250ZW50LCBOZ3RzRW52aXJvbm1lbnRNYXAsIE5ndHNFbnZpcm9ubWVudEN1YmUsIE5nSWYsIE5ndEFyZ3NdLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNFbnZpcm9ubWVudFBvcnRhbCB7XG5cdGVudmlyb25tZW50SW5wdXQgPSBpbmplY3QoTmd0c0Vudmlyb25tZW50SW5wdXQpO1xuXHRwcml2YXRlIHN0b3JlID0gaW5qZWN0Tmd0U3RvcmUoKTtcblx0cHJpdmF0ZSBnbCA9IHRoaXMuc3RvcmUuc2VsZWN0KCdnbCcpO1xuXHRwcml2YXRlIHNjZW5lID0gdGhpcy5zdG9yZS5zZWxlY3QoJ3NjZW5lJyk7XG5cblx0dmlydHVhbFNjZW5lUmVmID0gaW5qZWN0Tmd0UmVmPFRIUkVFLlNjZW5lPihwcmVwYXJlKG5ldyBUSFJFRS5TY2VuZSgpKSk7XG5cdGN1YmVDYW1lcmFSZWYgPSBpbmplY3ROZ3RSZWY8VEhSRUUuQ3ViZUNhbWVyYT4oKTtcblxuXHRwcml2YXRlIGZibyA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRjb25zdCBmYm8gPSBuZXcgVEhSRUUuV2ViR0xDdWJlUmVuZGVyVGFyZ2V0KHRoaXMuZW52aXJvbm1lbnRJbnB1dC5yZXNvbHV0aW9uKCkpO1xuXHRcdGZiby50ZXh0dXJlLnR5cGUgPSBUSFJFRS5IYWxmRmxvYXRUeXBlO1xuXHRcdHJldHVybiBmYm87XG5cdH0pO1xuXHRjYW1lcmFBcmdzID0gY29tcHV0ZWQoKCkgPT4gW3RoaXMuZW52aXJvbm1lbnRJbnB1dC5uZWFyKCkhLCB0aGlzLmVudmlyb25tZW50SW5wdXQuZmFyKCkhLCB0aGlzLmZibygpXSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdHRoaXMuZW52aXJvbm1lbnRJbnB1dC5pbnB1dHMucGF0Y2goe1xuXHRcdFx0XHRuZWFyOiAxLFxuXHRcdFx0XHRmYXI6IDEwMDAsXG5cdFx0XHRcdHJlc29sdXRpb246IDI1Nixcblx0XHRcdFx0ZnJhbWVzOiAxLFxuXHRcdFx0XHRiYWNrZ3JvdW5kOiBmYWxzZSxcblx0XHRcdFx0cHJlc2V0OiB1bmRlZmluZWQsXG5cdFx0XHR9KTtcblx0XHR9KTtcblx0XHR0aGlzLnNldEVudlByb3BzKCk7XG5cdFx0dGhpcy5iZWZvcmVSZW5kZXIoKTtcblx0fVxuXG5cdHByaXZhdGUgc2V0RW52UHJvcHMoKSB7XG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IFt2aXJ0dWFsU2NlbmUsIGJsdXIsIGZyYW1lcywgYmFja2dyb3VuZCwgc2NlbmUsIGZibywgZGVmYXVsdFNjZW5lLCBnbCwgY3ViZUNhbWVyYV0gPSBbXG5cdFx0XHRcdHRoaXMudmlydHVhbFNjZW5lUmVmLm5hdGl2ZUVsZW1lbnQsXG5cdFx0XHRcdHRoaXMuZW52aXJvbm1lbnRJbnB1dC5ibHVyKCksXG5cdFx0XHRcdHRoaXMuZW52aXJvbm1lbnRJbnB1dC5mcmFtZXMoKSxcblx0XHRcdFx0dGhpcy5lbnZpcm9ubWVudElucHV0LmJhY2tncm91bmQoKSxcblx0XHRcdFx0dGhpcy5lbnZpcm9ubWVudElucHV0LnNjZW5lKCksXG5cdFx0XHRcdHRoaXMuZmJvKCksXG5cdFx0XHRcdHRoaXMuc2NlbmUoKSxcblx0XHRcdFx0dGhpcy5nbCgpLFxuXHRcdFx0XHR0aGlzLmN1YmVDYW1lcmFSZWYubmF0aXZlRWxlbWVudCxcblx0XHRcdF07XG5cdFx0XHRpZiAoIWN1YmVDYW1lcmEgfHwgIXZpcnR1YWxTY2VuZSkgcmV0dXJuO1xuXHRcdFx0aWYgKGZyYW1lcyA9PT0gMSkgY3ViZUNhbWVyYS51cGRhdGUoZ2wsIHZpcnR1YWxTY2VuZSk7XG5cdFx0XHRjb25zdCBjbGVhblVwID0gc2V0RW52UHJvcHMoYmFja2dyb3VuZCEsIHNjZW5lLCBkZWZhdWx0U2NlbmUsIGZiby50ZXh0dXJlLCBibHVyKTtcblx0XHRcdG9uQ2xlYW51cChjbGVhblVwKTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgYmVmb3JlUmVuZGVyKCkge1xuXHRcdGxldCBjb3VudCA9IDE7XG5cdFx0aW5qZWN0QmVmb3JlUmVuZGVyKCh7IGdsIH0pID0+IHtcblx0XHRcdGNvbnN0IHsgZnJhbWVzIH0gPSB0aGlzLmVudmlyb25tZW50SW5wdXQuaW5wdXRzLmdldCgpO1xuXHRcdFx0aWYgKGZyYW1lcyA9PT0gSW5maW5pdHkgfHwgY291bnQgPCBmcmFtZXMhKSB7XG5cdFx0XHRcdGNvbnN0IGNhbWVyYSA9IHRoaXMuY3ViZUNhbWVyYVJlZi5uYXRpdmVFbGVtZW50O1xuXHRcdFx0XHRjb25zdCB2aXJ0dWFsU2NlbmUgPSB0aGlzLnZpcnR1YWxTY2VuZVJlZi5uYXRpdmVFbGVtZW50O1xuXHRcdFx0XHRpZiAoY2FtZXJhICYmIHZpcnR1YWxTY2VuZSkge1xuXHRcdFx0XHRcdGNhbWVyYS51cGRhdGUoZ2wsIHZpcnR1YWxTY2VuZSk7XG5cdFx0XHRcdFx0Y291bnQrKztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG59XG4iXX0=
|
|
@@ -1,65 +1,48 @@
|
|
|
1
1
|
import { NgIf, NgTemplateOutlet } from '@angular/common';
|
|
2
|
-
import { CUSTOM_ELEMENTS_SCHEMA, Component, ContentChild,
|
|
2
|
+
import { CUSTOM_ELEMENTS_SCHEMA, Component, ContentChild, TemplateRef } from '@angular/core';
|
|
3
|
+
import { NgtsSobaContent } from 'angular-three-soba/utils';
|
|
3
4
|
import { NgtsEnvironmentCube } from './environment-cube';
|
|
4
5
|
import { NgtsEnvironmentGround } from './environment-ground';
|
|
5
6
|
import { NgtsEnvironmentInput } from './environment-input';
|
|
6
7
|
import { NgtsEnvironmentMap } from './environment-map';
|
|
7
8
|
import { NgtsEnvironmentPortal } from './environment-portal';
|
|
8
9
|
import * as i0 from "@angular/core";
|
|
9
|
-
class
|
|
10
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
11
|
-
static { this.ɵ
|
|
10
|
+
export class NgtsEnvironment extends NgtsEnvironmentInput {
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: NgtsEnvironment, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
12
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: NgtsEnvironment, isStandalone: true, selector: "ngts-environment", providers: [{ provide: NgtsEnvironmentInput, useExisting: NgtsEnvironment }], queries: [{ propertyName: "content", first: true, predicate: NgtsSobaContent, descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: `
|
|
13
|
+
<ngts-environment-ground *ngIf="ground(); else noGround" />
|
|
14
|
+
<ng-template #noGround>
|
|
15
|
+
<ngts-environment-map *ngIf="map() as map; else noMap" [map]="map" [background]="!!background()" />
|
|
16
|
+
<ng-template #noMap>
|
|
17
|
+
<ngts-environment-portal *ngIf="content; else noPortal">
|
|
18
|
+
<ng-container *ngTemplateOutlet="content" />
|
|
19
|
+
</ngts-environment-portal>
|
|
20
|
+
<ng-template #noPortal>
|
|
21
|
+
<ngts-environment-cube [background]="!!background()" />
|
|
22
|
+
</ng-template>
|
|
23
|
+
</ng-template>
|
|
24
|
+
</ng-template>
|
|
25
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgtsEnvironmentMap, selector: "ngts-environment-map", inputs: ["map", "background"] }, { kind: "component", type: NgtsEnvironmentGround, selector: "ngts-environment-ground" }, { kind: "directive", type: NgtsEnvironmentCube, selector: "ngts-environment-cube", inputs: ["background"] }, { kind: "component", type: NgtsEnvironmentPortal, selector: "ngts-environment-portal" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
12
26
|
}
|
|
13
|
-
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: NgtsEnvironmentContent, decorators: [{
|
|
15
|
-
type: Directive,
|
|
16
|
-
args: [{ selector: 'ng-template[ngtsEnvironmentContent]', standalone: true }]
|
|
17
|
-
}] });
|
|
18
|
-
class NgtsEnvironment extends NgtsEnvironmentInput {
|
|
19
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: NgtsEnvironment, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
20
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.3", type: NgtsEnvironment, isStandalone: true, selector: "ngts-environment", providers: [{ provide: NgtsEnvironmentInput, useExisting: NgtsEnvironment }], queries: [{ propertyName: "content", first: true, predicate: NgtsEnvironmentContent, descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: `
|
|
21
|
-
<ngts-environment-ground *ngIf="environmentGround(); else noGround" />
|
|
22
|
-
<ng-template #noGround>
|
|
23
|
-
<ngts-environment-map
|
|
24
|
-
*ngIf="environmentMap() as map; else noMap"
|
|
25
|
-
[map]="map"
|
|
26
|
-
[background]="!!environmentBackground()"
|
|
27
|
-
/>
|
|
28
|
-
<ng-template #noMap>
|
|
29
|
-
<ngts-environment-portal *ngIf="content; else noPortal">
|
|
30
|
-
<ng-container *ngTemplateOutlet="content" />
|
|
31
|
-
</ngts-environment-portal>
|
|
32
|
-
<ng-template #noPortal>
|
|
33
|
-
<ngts-environment-cube [background]="!!environmentBackground()" />
|
|
34
|
-
</ng-template>
|
|
35
|
-
</ng-template>
|
|
36
|
-
</ng-template>
|
|
37
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgtsEnvironmentMap, selector: "ngts-environment-map", inputs: ["map", "background"] }, { kind: "component", type: NgtsEnvironmentGround, selector: "ngts-environment-ground" }, { kind: "directive", type: NgtsEnvironmentCube, selector: "ngts-environment-cube", inputs: ["background"] }, { kind: "component", type: NgtsEnvironmentPortal, selector: "ngts-environment-portal" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
|
|
38
|
-
}
|
|
39
|
-
export { NgtsEnvironment };
|
|
40
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: NgtsEnvironment, decorators: [{
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: NgtsEnvironment, decorators: [{
|
|
41
28
|
type: Component,
|
|
42
29
|
args: [{
|
|
43
30
|
selector: 'ngts-environment',
|
|
44
31
|
standalone: true,
|
|
45
32
|
template: `
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
</ng-template>
|
|
60
|
-
</ng-template>
|
|
61
|
-
</ng-template>
|
|
62
|
-
`,
|
|
33
|
+
<ngts-environment-ground *ngIf="ground(); else noGround" />
|
|
34
|
+
<ng-template #noGround>
|
|
35
|
+
<ngts-environment-map *ngIf="map() as map; else noMap" [map]="map" [background]="!!background()" />
|
|
36
|
+
<ng-template #noMap>
|
|
37
|
+
<ngts-environment-portal *ngIf="content; else noPortal">
|
|
38
|
+
<ng-container *ngTemplateOutlet="content" />
|
|
39
|
+
</ngts-environment-portal>
|
|
40
|
+
<ng-template #noPortal>
|
|
41
|
+
<ngts-environment-cube [background]="!!background()" />
|
|
42
|
+
</ng-template>
|
|
43
|
+
</ng-template>
|
|
44
|
+
</ng-template>
|
|
45
|
+
`,
|
|
63
46
|
imports: [
|
|
64
47
|
NgtsEnvironmentMap,
|
|
65
48
|
NgtsEnvironmentGround,
|
|
@@ -73,6 +56,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImpor
|
|
|
73
56
|
}]
|
|
74
57
|
}], propDecorators: { content: [{
|
|
75
58
|
type: ContentChild,
|
|
76
|
-
args: [
|
|
59
|
+
args: [NgtsSobaContent, { read: TemplateRef }]
|
|
77
60
|
}] } });
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvZW52aXJvbm1lbnQvZW52aXJvbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBOEI3RCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxvQkFBb0I7OEdBQTVDLGVBQWU7a0dBQWYsZUFBZSwrREFIaEIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLENBQUMsK0RBSTlELGVBQWUsMkJBQVUsV0FBVyxvREExQnhDOzs7Ozs7Ozs7Ozs7O0VBYVQsNERBRUEsa0JBQWtCLGdHQUNsQixxQkFBcUIsb0VBQ3JCLG1CQUFtQiwwRkFDbkIscUJBQXFCLG9FQUNyQixJQUFJLDZGQUNKLGdCQUFnQjs7MkZBS0wsZUFBZTtrQkE1QjNCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7OztFQWFUO29CQUNELE9BQU8sRUFBRTt3QkFDUixrQkFBa0I7d0JBQ2xCLHFCQUFxQjt3QkFDckIsbUJBQW1CO3dCQUNuQixxQkFBcUI7d0JBQ3JCLElBQUk7d0JBQ0osZ0JBQWdCO3FCQUNoQjtvQkFDRCxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLGlCQUFpQixFQUFFLENBQUM7b0JBQzVFLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNqQzs4QkFFc0QsT0FBTztzQkFBNUQsWUFBWTt1QkFBQyxlQUFlLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndHNTb2JhQ29udGVudCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUtc29iYS91dGlscyc7XG5pbXBvcnQgeyBOZ3RzRW52aXJvbm1lbnRDdWJlIH0gZnJvbSAnLi9lbnZpcm9ubWVudC1jdWJlJztcbmltcG9ydCB7IE5ndHNFbnZpcm9ubWVudEdyb3VuZCB9IGZyb20gJy4vZW52aXJvbm1lbnQtZ3JvdW5kJztcbmltcG9ydCB7IE5ndHNFbnZpcm9ubWVudElucHV0IH0gZnJvbSAnLi9lbnZpcm9ubWVudC1pbnB1dCc7XG5pbXBvcnQgeyBOZ3RzRW52aXJvbm1lbnRNYXAgfSBmcm9tICcuL2Vudmlyb25tZW50LW1hcCc7XG5pbXBvcnQgeyBOZ3RzRW52aXJvbm1lbnRQb3J0YWwgfSBmcm9tICcuL2Vudmlyb25tZW50LXBvcnRhbCc7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHMtZW52aXJvbm1lbnQnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3RzLWVudmlyb25tZW50LWdyb3VuZCAqbmdJZj1cImdyb3VuZCgpOyBlbHNlIG5vR3JvdW5kXCIgLz5cblx0XHQ8bmctdGVtcGxhdGUgI25vR3JvdW5kPlxuXHRcdFx0PG5ndHMtZW52aXJvbm1lbnQtbWFwICpuZ0lmPVwibWFwKCkgYXMgbWFwOyBlbHNlIG5vTWFwXCIgW21hcF09XCJtYXBcIiBbYmFja2dyb3VuZF09XCIhIWJhY2tncm91bmQoKVwiIC8+XG5cdFx0XHQ8bmctdGVtcGxhdGUgI25vTWFwPlxuXHRcdFx0XHQ8bmd0cy1lbnZpcm9ubWVudC1wb3J0YWwgKm5nSWY9XCJjb250ZW50OyBlbHNlIG5vUG9ydGFsXCI+XG5cdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIiAvPlxuXHRcdFx0XHQ8L25ndHMtZW52aXJvbm1lbnQtcG9ydGFsPlxuXHRcdFx0XHQ8bmctdGVtcGxhdGUgI25vUG9ydGFsPlxuXHRcdFx0XHRcdDxuZ3RzLWVudmlyb25tZW50LWN1YmUgW2JhY2tncm91bmRdPVwiISFiYWNrZ3JvdW5kKClcIiAvPlxuXHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxuXHRcdFx0PC9uZy10ZW1wbGF0ZT5cblx0XHQ8L25nLXRlbXBsYXRlPlxuXHRgLFxuXHRpbXBvcnRzOiBbXG5cdFx0Tmd0c0Vudmlyb25tZW50TWFwLFxuXHRcdE5ndHNFbnZpcm9ubWVudEdyb3VuZCxcblx0XHROZ3RzRW52aXJvbm1lbnRDdWJlLFxuXHRcdE5ndHNFbnZpcm9ubWVudFBvcnRhbCxcblx0XHROZ0lmLFxuXHRcdE5nVGVtcGxhdGVPdXRsZXQsXG5cdF0sXG5cdHByb3ZpZGVyczogW3sgcHJvdmlkZTogTmd0c0Vudmlyb25tZW50SW5wdXQsIHVzZUV4aXN0aW5nOiBOZ3RzRW52aXJvbm1lbnQgfV0sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c0Vudmlyb25tZW50IGV4dGVuZHMgTmd0c0Vudmlyb25tZW50SW5wdXQge1xuXHRAQ29udGVudENoaWxkKE5ndHNTb2JhQ29udGVudCwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KSBjb250ZW50PzogVGVtcGxhdGVSZWY8dW5rbm93bj47XG59XG4iXX0=
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { ChangeDetectorRef, DestroyRef, computed, effect, inject, runInInjectionContext, } from '@angular/core';
|
|
2
2
|
import { assertInjectionContext, injectNgtLoader, injectNgtRef, is, safeDetectChanges } from 'angular-three';
|
|
3
|
-
import { CubeReflectionMapping, CubeTextureLoader, EquirectangularReflectionMapping
|
|
4
|
-
import { RGBELoader } from 'three-stdlib';
|
|
5
|
-
import {
|
|
3
|
+
import { CubeReflectionMapping, CubeTextureLoader, EquirectangularReflectionMapping } from 'three';
|
|
4
|
+
import { EXRLoader, RGBELoader } from 'three-stdlib';
|
|
5
|
+
import { ENVIRONMENT_PRESETS } from './assets';
|
|
6
6
|
function resolveScene(scene) {
|
|
7
7
|
return is.ref(scene) ? scene.nativeElement : scene;
|
|
8
8
|
}
|
|
@@ -26,14 +26,14 @@ export function setEnvProps(background, scene, defaultScene, texture, blur = 0)
|
|
|
26
26
|
target.backgroundBlurriness = oldBlur;
|
|
27
27
|
};
|
|
28
28
|
}
|
|
29
|
-
const CUBEMAP_ROOT = 'https://
|
|
29
|
+
const CUBEMAP_ROOT = 'https://raw.githack.com/pmndrs/drei-assets/456060a26bbeb8fdf79326f224b6d99b8bcce736/hdri/';
|
|
30
30
|
export function injectNgtsEnvironment(paramsFactory, injector) {
|
|
31
31
|
injector = assertInjectionContext(injectNgtsEnvironment, injector);
|
|
32
|
-
const textureRef = injectNgtRef();
|
|
33
32
|
return runInInjectionContext(injector, () => {
|
|
33
|
+
const textureRef = injectNgtRef();
|
|
34
34
|
const cdr = inject(ChangeDetectorRef);
|
|
35
35
|
inject(DestroyRef).onDestroy(() => {
|
|
36
|
-
textureRef.
|
|
36
|
+
textureRef.nativeElement.dispose();
|
|
37
37
|
});
|
|
38
38
|
const params = computed(() => {
|
|
39
39
|
let { files, preset, encoding, path, extensions } = paramsFactory();
|
|
@@ -44,9 +44,9 @@ export function injectNgtsEnvironment(paramsFactory, injector) {
|
|
|
44
44
|
path = '';
|
|
45
45
|
}
|
|
46
46
|
if (preset) {
|
|
47
|
-
if (!(preset in
|
|
48
|
-
throw new Error('Preset must be one of: ' + Object.keys(
|
|
49
|
-
files =
|
|
47
|
+
if (!(preset in ENVIRONMENT_PRESETS))
|
|
48
|
+
throw new Error('Preset must be one of: ' + Object.keys(ENVIRONMENT_PRESETS).join(', '));
|
|
49
|
+
files = ENVIRONMENT_PRESETS[preset];
|
|
50
50
|
path = CUBEMAP_ROOT;
|
|
51
51
|
}
|
|
52
52
|
return { files, preset, encoding, path, extensions };
|
|
@@ -54,8 +54,22 @@ export function injectNgtsEnvironment(paramsFactory, injector) {
|
|
|
54
54
|
const loaderResult = injectNgtLoader(
|
|
55
55
|
// @ts-expect-error
|
|
56
56
|
() => {
|
|
57
|
-
const { files } = params();
|
|
58
|
-
|
|
57
|
+
const { files = '' } = params();
|
|
58
|
+
const isCubeMap = Array.isArray(files);
|
|
59
|
+
const extension = Array.isArray(files)
|
|
60
|
+
? 'cube'
|
|
61
|
+
: files.startsWith('data:application/exr')
|
|
62
|
+
? 'exr'
|
|
63
|
+
: files.startsWith('data:application/hdr')
|
|
64
|
+
? 'hdr'
|
|
65
|
+
: files.split('.').pop()?.split('?')?.shift()?.toLowerCase();
|
|
66
|
+
return isCubeMap
|
|
67
|
+
? CubeTextureLoader
|
|
68
|
+
: extension === 'hdr'
|
|
69
|
+
? RGBELoader
|
|
70
|
+
: extension === 'exr'
|
|
71
|
+
? EXRLoader
|
|
72
|
+
: null;
|
|
59
73
|
}, () => {
|
|
60
74
|
const { files } = params();
|
|
61
75
|
return Array.isArray(files) ? [files] : files;
|
|
@@ -67,6 +81,8 @@ export function injectNgtsEnvironment(paramsFactory, injector) {
|
|
|
67
81
|
extensions(loader);
|
|
68
82
|
},
|
|
69
83
|
});
|
|
84
|
+
const sRGBEncoding = 3001;
|
|
85
|
+
const LinearEncoding = 3000;
|
|
70
86
|
effect(() => {
|
|
71
87
|
const result = loaderResult();
|
|
72
88
|
if (!result)
|
|
@@ -74,11 +90,16 @@ export function injectNgtsEnvironment(paramsFactory, injector) {
|
|
|
74
90
|
const { files, encoding } = params();
|
|
75
91
|
const texture = Array.isArray(files) ? result[0] : result;
|
|
76
92
|
texture.mapping = Array.isArray(files) ? CubeReflectionMapping : EquirectangularReflectionMapping;
|
|
77
|
-
|
|
93
|
+
if ('colorSpace' in texture) {
|
|
94
|
+
texture.colorSpace = encoding ?? Array.isArray(files) ? 'srgb' : 'srgb-linear';
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
texture.encoding = encoding ?? Array.isArray(files) ? sRGBEncoding : LinearEncoding;
|
|
98
|
+
}
|
|
78
99
|
textureRef.nativeElement = texture;
|
|
79
100
|
safeDetectChanges(cdr);
|
|
80
|
-
}
|
|
101
|
+
});
|
|
81
102
|
return textureRef;
|
|
82
103
|
});
|
|
83
104
|
}
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvZW52aXJvbm1lbnQvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILGlCQUFpQixFQUNqQixVQUFVLEVBR1YsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04scUJBQXFCLEdBQ3hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RyxPQUFPLEVBQ0gscUJBQXFCLEVBRXJCLGlCQUFpQixFQUNqQixnQ0FBZ0MsRUFDaEMsY0FBYyxFQUNkLFlBQVksR0FDZixNQUFNLE9BQU8sQ0FBQztBQUNmLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBR3JELFNBQVMsWUFBWSxDQUFDLEtBQTRDO0lBQzlELE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0FBQ3ZELENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUN2QixVQUE0QixFQUM1QixLQUF3RCxFQUN4RCxZQUF5QixFQUN6QixPQUFzQixFQUN0QixJQUFJLEdBQUcsQ0FBQztJQUVSLE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxLQUFLLElBQUksWUFBWSxDQUFDLENBQUM7SUFDbkQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztJQUNoQyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDO0lBQ2xDLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsSUFB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QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgRGVzdHJveVJlZixcbiAgICBFbGVtZW50UmVmLFxuICAgIEluamVjdG9yLFxuICAgIGNvbXB1dGVkLFxuICAgIGVmZmVjdCxcbiAgICBpbmplY3QsXG4gICAgcnVuSW5JbmplY3Rpb25Db250ZXh0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFzc2VydEluamVjdGlvbkNvbnRleHQsIGluamVjdE5ndExvYWRlciwgaW5qZWN0Tmd0UmVmLCBpcywgc2FmZURldGVjdENoYW5nZXMgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7XG4gICAgQ3ViZVJlZmxlY3Rpb25NYXBwaW5nLFxuICAgIEN1YmVUZXh0dXJlLFxuICAgIEN1YmVUZXh0dXJlTG9hZGVyLFxuICAgIEVxdWlyZWN0YW5ndWxhclJlZmxlY3Rpb25NYXBwaW5nLFxuICAgIExpbmVhckVuY29kaW5nLFxuICAgIHNSR0JFbmNvZGluZyxcbn0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgUkdCRUxvYWRlciB9IGZyb20gJ3RocmVlLXN0ZGxpYic7XG5pbXBvcnQgeyBuZ3RzRW52aXJvbm1lbnRQcmVzZXRzT2JqIH0gZnJvbSAnLi9hc3NldHMnO1xuaW1wb3J0IHsgdHlwZSBOZ3RzRW52aXJvbm1lbnRJbnB1dCB9IGZyb20gJy4vZW52aXJvbm1lbnQtaW5wdXQnO1xuXG5mdW5jdGlvbiByZXNvbHZlU2NlbmUoc2NlbmU6IFRIUkVFLlNjZW5lIHwgRWxlbWVudFJlZjxUSFJFRS5TY2VuZT4pIHtcbiAgICByZXR1cm4gaXMucmVmKHNjZW5lKSA/IHNjZW5lLm5hdGl2ZUVsZW1lbnQgOiBzY2VuZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEVudlByb3BzKFxuICAgIGJhY2tncm91bmQ6IGJvb2xlYW4gfCAnb25seScsXG4gICAgc2NlbmU6IFRIUkVFLlNjZW5lIHwgRWxlbWVudFJlZjxUSFJFRS5TY2VuZT4gfCB1bmRlZmluZWQsXG4gICAgZGVmYXVsdFNjZW5lOiBUSFJFRS5TY2VuZSxcbiAgICB0ZXh0dXJlOiBUSFJFRS5UZXh0dXJlLFxuICAgIGJsdXIgPSAwXG4pIHtcbiAgICBjb25zdCB0YXJnZXQgPSByZXNvbHZlU2NlbmUoc2NlbmUgfHwgZGVmYXVsdFNjZW5lKTtcbiAgICBjb25zdCBvbGRiZyA9IHRhcmdldC5iYWNrZ3JvdW5kO1xuICAgIGNvbnN0IG9sZGVudiA9IHRhcmdldC5lbnZpcm9ubWVudDtcbiAgICBjb25zdCBvbGRCbHVyID0gdGFyZ2V0LmJhY2tncm91bmRCbHVycmluZXNzIHx8IDA7XG5cbiAgICBpZiAoYmFja2dyb3VuZCAhPT0gJ29ubHknKSB0YXJnZXQuZW52aXJvbm1lbnQgPSB0ZXh0dXJlO1xuICAgIGlmIChiYWNrZ3JvdW5kKSB0YXJnZXQuYmFja2dyb3VuZCA9IHRleHR1cmU7XG4gICAgaWYgKGJhY2tncm91bmQgJiYgdGFyZ2V0LmJhY2tncm91bmRCbHVycmluZXNzICE9PSB1bmRlZmluZWQpIHRhcmdldC5iYWNrZ3JvdW5kQmx1cnJpbmVzcyA9IGJsdXI7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBpZiAoYmFja2dyb3VuZCAhPT0gJ29ubHknKSB0YXJnZXQuZW52aXJvbm1lbnQgPSBvbGRlbnY7XG4gICAgICAgIGlmIChiYWNrZ3JvdW5kKSB0YXJnZXQuYmFja2dyb3VuZCA9IG9sZGJnO1xuICAgICAgICBpZiAoYmFja2dyb3VuZCAmJiB0YXJnZXQuYmFja2dyb3VuZEJsdXJyaW5lc3MgIT09IHVuZGVmaW5lZCkgdGFyZ2V0LmJhY2tncm91bmRCbHVycmluZXNzID0gb2xkQmx1cjtcbiAgICB9O1xufVxuXG50eXBlIE5ndHNJbmplY3RFbnZpcm9ubWVudFBhcmFtcyA9IFBhcnRpYWw8XG4gICAgUGljazxOZ3RzRW52aXJvbm1lbnRJbnB1dCwgJ2ZpbGVzJyB8ICdwYXRoJyB8ICdwcmVzZXQnIHwgJ2V4dGVuc2lvbnMnIHwgJ2VuY29kaW5nJz5cbj47XG5cbmNvbnN0IENVQkVNQVBfUk9PVCA9ICdodHRwczovL21hcmtldC1hc3NldHMuZnJhMS5jZG4uZGlnaXRhbG9jZWFuc3BhY2VzLmNvbS9tYXJrZXQtYXNzZXRzL2hkcmlzLyc7XG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0Tmd0c0Vudmlyb25tZW50KHBhcmFtc0ZhY3Rvcnk6ICgpID0+IFBhcnRpYWw8Tmd0c0luamVjdEVudmlyb25tZW50UGFyYW1zPiwgaW5qZWN0b3I/OiBJbmplY3Rvcikge1xuICAgIGluamVjdG9yID0gYXNzZXJ0SW5qZWN0aW9uQ29udGV4dChpbmplY3ROZ3RzRW52aXJvbm1lbnQsIGluamVjdG9yKTtcbiAgICBjb25zdCB0ZXh0dXJlUmVmID0gaW5qZWN0Tmd0UmVmPFRIUkVFLlRleHR1cmUgfCBDdWJlVGV4dHVyZT4oKTtcbiAgICByZXR1cm4gcnVuSW5JbmplY3Rpb25Db250ZXh0KGluamVjdG9yLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgICAgICAgaW5qZWN0KERlc3Ryb3lSZWYpLm9uRGVzdHJveSgoKSA9PiB7XG4gICAgICAgICAgICB0ZXh0dXJlUmVmLnVudHJhY2tlZC5kaXNwb3NlKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgICAgIGxldCB7IGZpbGVzLCBwcmVzZXQsIGVuY29kaW5nLCBwYXRoLCBleHRlbnNpb25zIH0gPSBwYXJhbXNGYWN0b3J5KCkgYXMgTmd0c0luamVjdEVudmlyb25tZW50UGFyYW1zO1xuXG4gICAgICAgICAgICBpZiAoZmlsZXMgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGZpbGVzID0gWycvcHgucG5nJywgJy9ueC5wbmcnLCAnL3B5LnBuZycsICcvbnkucG5nJywgJy9wei5wbmcnLCAnL256LnBuZyddO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocGF0aCA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcGF0aCA9ICcnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocHJlc2V0KSB7XG4gICAgICAgICAgICAgICAgaWYgKCEocHJlc2V0IGluIG5ndHNFbnZpcm9ubWVudFByZXNldHNPYmopKVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1ByZXNldCBtdXN0IGJlIG9uZSBvZjogJyArIE9iamVjdC5rZXlzKG5ndHNFbnZpcm9ubWVudFByZXNldHNPYmopLmpvaW4oJywgJykpO1xuICAgICAgICAgICAgICAgIGZpbGVzID0gbmd0c0Vudmlyb25tZW50UHJlc2V0c09ialtwcmVzZXRdO1xuICAgICAgICAgICAgICAgIHBhdGggPSBDVUJFTUFQX1JPT1Q7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB7IGZpbGVzLCBwcmVzZXQsIGVuY29kaW5nLCBwYXRoLCBleHRlbnNpb25zIH0gYXMgTmd0c0luamVjdEVudmlyb25tZW50UGFyYW1zO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBsb2FkZXJSZXN1bHQgPSBpbmplY3ROZ3RMb2FkZXIoXG4gICAgICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBmaWxlcyB9ID0gcGFyYW1zKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoZmlsZXMpID8gQ3ViZVRleHR1cmVMb2FkZXIgOiBSR0JFTG9hZGVyO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGZpbGVzIH0gPSBwYXJhbXMoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheShmaWxlcykgPyBbZmlsZXNdIDogZmlsZXM7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGV4dGVuc2lvbnM6IChsb2FkZXIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBwYXRoLCBleHRlbnNpb25zIH0gPSBwYXJhbXMoKTtcbiAgICAgICAgICAgICAgICAgICAgbG9hZGVyLnNldFBhdGgocGF0aCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChleHRlbnNpb25zKSBleHRlbnNpb25zKGxvYWRlcik7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcblxuICAgICAgICBlZmZlY3QoXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gbG9hZGVyUmVzdWx0KCk7XG4gICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQpIHJldHVybjtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGZpbGVzLCBlbmNvZGluZyB9ID0gcGFyYW1zKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgdGV4dHVyZTogVEhSRUUuVGV4dHVyZSB8IFRIUkVFLkN1YmVUZXh0dXJlID0gQXJyYXkuaXNBcnJheShmaWxlcykgPyByZXN1bHRbMF0gOiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgdGV4dHVyZS5tYXBwaW5nID0gQXJyYXkuaXNBcnJheShmaWxlcykgPyBDdWJlUmVmbGVjdGlvbk1hcHBpbmcgOiBFcXVpcmVjdGFuZ3VsYXJSZWZsZWN0aW9uTWFwcGluZztcbiAgICAgICAgICAgICAgICB0ZXh0dXJlLmVuY29kaW5nID0gZW5jb2RpbmcgPz8gQXJyYXkuaXNBcnJheShmaWxlcykgPyBzUkdCRW5jb2RpbmcgOiBMaW5lYXJFbmNvZGluZztcblxuICAgICAgICAgICAgICAgIHRleHR1cmVSZWYubmF0aXZlRWxlbWVudCA9IHRleHR1cmU7XG4gICAgICAgICAgICAgICAgc2FmZURldGVjdENoYW5nZXMoY2RyKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gdGV4dHVyZVJlZjtcbiAgICB9KTtcbn1cbiJdfQ==
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvZW52aXJvbm1lbnQvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLGlCQUFpQixFQUNqQixVQUFVLEVBR1YsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04scUJBQXFCLEdBQ3JCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RyxPQUFPLEVBQUUscUJBQXFCLEVBQWUsaUJBQWlCLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDaEgsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDckQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRy9DLFNBQVMsWUFBWSxDQUFDLEtBQTRDO0lBQ2pFLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0FBQ3BELENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUMxQixVQUE0QixFQUM1QixLQUF3RCxFQUN4RCxZQUF5QixFQUN6QixPQUFzQixFQUN0QixJQUFJLEdBQUcsQ0FBQztJQUVSLE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxLQUFLLElBQUksWUFBWSxDQUFDLENBQUM7SUFDbkQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztJQUNoQyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDO0lBQ2xDLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsSUFBSSxDQUFDLENBQUM7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RUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQztZQUNyQyxNQUFNLE9BQU8sR0FBc0MsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7WUFDN0YsT0FBTyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsZ0NBQWdDLENBQUM7WUFDbEcsSUFBSSxZQUFZLElBQUksT0FBTyxFQUFFO2dCQUM1QixPQUFPLENBQUMsVUFBVSxHQUFHLFFBQVEsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQzthQUMvRTtpQkFBTTtnQkFDTCxPQUFlLENBQUMsUUFBUSxHQUFHLFFBQVEsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQzthQUM3RjtZQUVELFVBQVUsQ0FBQyxhQUFhLEdBQUcsT0FBTyxDQUFDO1lBQ25DLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxVQUFVLENBQUM7SUFDbkIsQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q2hhbmdlRGV0ZWN0b3JSZWYsXG5cdERlc3Ryb3lSZWYsXG5cdEVsZW1lbnRSZWYsXG5cdEluamVjdG9yLFxuXHRjb21wdXRlZCxcblx0ZWZmZWN0LFxuXHRpbmplY3QsXG5cdHJ1bkluSW5qZWN0aW9uQ29udGV4dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBhc3NlcnRJbmplY3Rpb25Db250ZXh0LCBpbmplY3ROZ3RMb2FkZXIsIGluamVjdE5ndFJlZiwgaXMsIHNhZmVEZXRlY3RDaGFuZ2VzIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBDdWJlUmVmbGVjdGlvbk1hcHBpbmcsIEN1YmVUZXh0dXJlLCBDdWJlVGV4dHVyZUxvYWRlciwgRXF1aXJlY3Rhbmd1bGFyUmVmbGVjdGlvbk1hcHBpbmcgfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBFWFJMb2FkZXIsIFJHQkVMb2FkZXIgfSBmcm9tICd0aHJlZS1zdGRsaWInO1xuaW1wb3J0IHsgRU5WSVJPTk1FTlRfUFJFU0VUUyB9IGZyb20gJy4vYXNzZXRzJztcbmltcG9ydCB7IHR5cGUgTmd0c0Vudmlyb25tZW50SW5wdXRTdGF0ZSB9IGZyb20gJy4vZW52aXJvbm1lbnQtaW5wdXQnO1xuXG5mdW5jdGlvbiByZXNvbHZlU2NlbmUoc2NlbmU6IFRIUkVFLlNjZW5lIHwgRWxlbWVudFJlZjxUSFJFRS5TY2VuZT4pIHtcblx0cmV0dXJuIGlzLnJlZihzY2VuZSkgPyBzY2VuZS5uYXRpdmVFbGVtZW50IDogc2NlbmU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRFbnZQcm9wcyhcblx0YmFja2dyb3VuZDogYm9vbGVhbiB8ICdvbmx5Jyxcblx0c2NlbmU6IFRIUkVFLlNjZW5lIHwgRWxlbWVudFJlZjxUSFJFRS5TY2VuZT4gfCB1bmRlZmluZWQsXG5cdGRlZmF1bHRTY2VuZTogVEhSRUUuU2NlbmUsXG5cdHRleHR1cmU6IFRIUkVFLlRleHR1cmUsXG5cdGJsdXIgPSAwLFxuKSB7XG5cdGNvbnN0IHRhcmdldCA9IHJlc29sdmVTY2VuZShzY2VuZSB8fCBkZWZhdWx0U2NlbmUpO1xuXHRjb25zdCBvbGRiZyA9IHRhcmdldC5iYWNrZ3JvdW5kO1xuXHRjb25zdCBvbGRlbnYgPSB0YXJnZXQuZW52aXJvbm1lbnQ7XG5cdGNvbnN0IG9sZEJsdXIgPSB0YXJnZXQuYmFja2dyb3VuZEJsdXJyaW5lc3MgfHwgMDtcblxuXHRpZiAoYmFja2dyb3VuZCAhPT0gJ29ubHknKSB0YXJnZXQuZW52aXJvbm1lbnQgPSB0ZXh0dXJlO1xuXHRpZiAoYmFja2dyb3VuZCkgdGFyZ2V0LmJhY2tncm91bmQgPSB0ZXh0dXJlO1xuXHRpZiAoYmFja2dyb3VuZCAmJiB0YXJnZXQuYmFja2dyb3VuZEJsdXJyaW5lc3MgIT09IHVuZGVmaW5lZCkgdGFyZ2V0LmJhY2tncm91bmRCbHVycmluZXNzID0gYmx1cjtcblxuXHRyZXR1cm4gKCkgPT4ge1xuXHRcdGlmIChiYWNrZ3JvdW5kICE9PSAnb25seScpIHRhcmdldC5lbnZpcm9ubWVudCA9IG9sZGVudjtcblx0XHRpZiAoYmFja2dyb3VuZCkgdGFyZ2V0LmJhY2tncm91bmQgPSBvbGRiZztcblx0XHRpZiAoYmFja2dyb3VuZCAmJiB0YXJnZXQuYmFja2dyb3VuZEJsdXJyaW5lc3MgIT09IHVuZGVmaW5lZCkgdGFyZ2V0LmJhY2tncm91bmRCbHVycmluZXNzID0gb2xkQmx1cjtcblx0fTtcbn1cblxudHlwZSBOZ3RzSW5qZWN0RW52aXJvbm1lbnRQYXJhbXMgPSBQYXJ0aWFsPFxuXHRQaWNrPE5ndHNFbnZpcm9ubWVudElucHV0U3RhdGUsICdmaWxlcycgfCAncGF0aCcgfCAncHJlc2V0JyB8ICdleHRlbnNpb25zJyB8ICdlbmNvZGluZyc+XG4+O1xuXG5jb25zdCBDVUJFTUFQX1JPT1QgPSAnaHR0cHM6Ly9yYXcuZ2l0aGFjay5jb20vcG1uZHJzL2RyZWktYXNzZXRzLzQ1NjA2MGEyNmJiZWI4ZmRmNzkzMjZmMjI0YjZkOTliOGJjY2U3MzYvaGRyaS8nO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0Tmd0c0Vudmlyb25tZW50KHBhcmFtc0ZhY3Rvcnk6ICgpID0+IFBhcnRpYWw8Tmd0c0luamVjdEVudmlyb25tZW50UGFyYW1zPiwgaW5qZWN0b3I/OiBJbmplY3Rvcikge1xuXHRpbmplY3RvciA9IGFzc2VydEluamVjdGlvbkNvbnRleHQoaW5qZWN0Tmd0c0Vudmlyb25tZW50LCBpbmplY3Rvcik7XG5cdHJldHVybiBydW5JbkluamVjdGlvbkNvbnRleHQoaW5qZWN0b3IsICgpID0+IHtcblx0XHRjb25zdCB0ZXh0dXJlUmVmID0gaW5qZWN0Tmd0UmVmPFRIUkVFLlRleHR1cmUgfCBDdWJlVGV4dHVyZT4oKTtcblx0XHRjb25zdCBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG5cdFx0aW5qZWN0KERlc3Ryb3lSZWYpLm9uRGVzdHJveSgoKSA9PiB7XG5cdFx0XHR0ZXh0dXJlUmVmLm5hdGl2ZUVsZW1lbnQuZGlzcG9zZSgpO1xuXHRcdH0pO1xuXG5cdFx0Y29uc3QgcGFyYW1zID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdFx0bGV0IHsgZmlsZXMsIHByZXNldCwgZW5jb2RpbmcsIHBhdGgsIGV4dGVuc2lvbnMgfSA9IHBhcmFtc0ZhY3RvcnkoKSBhcyBOZ3RzSW5qZWN0RW52aXJvbm1lbnRQYXJhbXM7XG5cblx0XHRcdGlmIChmaWxlcyA9PSBudWxsKSB7XG5cdFx0XHRcdGZpbGVzID0gWycvcHgucG5nJywgJy9ueC5wbmcnLCAnL3B5LnBuZycsICcvbnkucG5nJywgJy9wei5wbmcnLCAnL256LnBuZyddO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAocGF0aCA9PSBudWxsKSB7XG5cdFx0XHRcdHBhdGggPSAnJztcblx0XHRcdH1cblxuXHRcdFx0aWYgKHByZXNldCkge1xuXHRcdFx0XHRpZiAoIShwcmVzZXQgaW4gRU5WSVJPTk1FTlRfUFJFU0VUUykpXG5cdFx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKCdQcmVzZXQgbXVzdCBiZSBvbmUgb2Y6ICcgKyBPYmplY3Qua2V5cyhFTlZJUk9OTUVOVF9QUkVTRVRTKS5qb2luKCcsICcpKTtcblx0XHRcdFx0ZmlsZXMgPSBFTlZJUk9OTUVOVF9QUkVTRVRTW3ByZXNldF07XG5cdFx0XHRcdHBhdGggPSBDVUJFTUFQX1JPT1Q7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiB7IGZpbGVzLCBwcmVzZXQsIGVuY29kaW5nLCBwYXRoLCBleHRlbnNpb25zIH0gYXMgTmd0c0luamVjdEVudmlyb25tZW50UGFyYW1zO1xuXHRcdH0pO1xuXG5cdFx0Y29uc3QgbG9hZGVyUmVzdWx0ID0gaW5qZWN0Tmd0TG9hZGVyKFxuXHRcdFx0Ly8gQHRzLWV4cGVjdC1lcnJvclxuXHRcdFx0KCkgPT4ge1xuXHRcdFx0XHRjb25zdCB7IGZpbGVzID0gJycgfSA9IHBhcmFtcygpO1xuXG5cdFx0XHRcdGNvbnN0IGlzQ3ViZU1hcCA9IEFycmF5LmlzQXJyYXkoZmlsZXMpO1xuXHRcdFx0XHRjb25zdCBleHRlbnNpb24gPSBBcnJheS5pc0FycmF5KGZpbGVzKVxuXHRcdFx0XHRcdD8gJ2N1YmUnXG5cdFx0XHRcdFx0OiBmaWxlcy5zdGFydHNXaXRoKCdkYXRhOmFwcGxpY2F0aW9uL2V4cicpXG5cdFx0XHRcdFx0PyAnZXhyJ1xuXHRcdFx0XHRcdDogZmlsZXMuc3RhcnRzV2l0aCgnZGF0YTphcHBsaWNhdGlvbi9oZHInKVxuXHRcdFx0XHRcdD8gJ2hkcidcblx0XHRcdFx0XHQ6IGZpbGVzLnNwbGl0KCcuJykucG9wKCk/LnNwbGl0KCc/Jyk/LnNoaWZ0KCk/LnRvTG93ZXJDYXNlKCk7XG5cdFx0XHRcdHJldHVybiBpc0N1YmVNYXBcblx0XHRcdFx0XHQ/IEN1YmVUZXh0dXJlTG9hZGVyXG5cdFx0XHRcdFx0OiBleHRlbnNpb24gPT09ICdoZHInXG5cdFx0XHRcdFx0PyBSR0JFTG9hZGVyXG5cdFx0XHRcdFx0OiBleHRlbnNpb24gPT09ICdleHInXG5cdFx0XHRcdFx0PyBFWFJMb2FkZXJcblx0XHRcdFx0XHQ6IG51bGw7XG5cdFx0XHR9LFxuXHRcdFx0KCkgPT4ge1xuXHRcdFx0XHRjb25zdCB7IGZpbGVzIH0gPSBwYXJhbXMoKTtcblx0XHRcdFx0cmV0dXJuIEFycmF5LmlzQXJyYXkoZmlsZXMpID8gW2ZpbGVzXSA6IGZpbGVzO1xuXHRcdFx0fSxcblx0XHRcdHtcblx0XHRcdFx0ZXh0ZW5zaW9uczogKGxvYWRlcikgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IHsgcGF0aCwgZXh0ZW5zaW9ucyB9ID0gcGFyYW1zKCk7XG5cdFx0XHRcdFx0bG9hZGVyLnNldFBhdGgocGF0aCk7XG5cdFx0XHRcdFx0aWYgKGV4dGVuc2lvbnMpIGV4dGVuc2lvbnMobG9hZGVyKTtcblx0XHRcdFx0fSxcblx0XHRcdH0sXG5cdFx0KTtcblxuXHRcdGNvbnN0IHNSR0JFbmNvZGluZyA9IDMwMDE7XG5cdFx0Y29uc3QgTGluZWFyRW5jb2RpbmcgPSAzMDAwO1xuXG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdGNvbnN0IHJlc3VsdCA9IGxvYWRlclJlc3VsdCgpO1xuXHRcdFx0aWYgKCFyZXN1bHQpIHJldHVybjtcblx0XHRcdGNvbnN0IHsgZmlsZXMsIGVuY29kaW5nIH0gPSBwYXJhbXMoKTtcblx0XHRcdGNvbnN0IHRleHR1cmU6IFRIUkVFLlRleHR1cmUgfCBUSFJFRS5DdWJlVGV4dHVyZSA9IEFycmF5LmlzQXJyYXkoZmlsZXMpID8gcmVzdWx0WzBdIDogcmVzdWx0O1xuXHRcdFx0dGV4dHVyZS5tYXBwaW5nID0gQXJyYXkuaXNBcnJheShmaWxlcykgPyBDdWJlUmVmbGVjdGlvbk1hcHBpbmcgOiBFcXVpcmVjdGFuZ3VsYXJSZWZsZWN0aW9uTWFwcGluZztcblx0XHRcdGlmICgnY29sb3JTcGFjZScgaW4gdGV4dHVyZSkge1xuXHRcdFx0XHR0ZXh0dXJlLmNvbG9yU3BhY2UgPSBlbmNvZGluZyA/PyBBcnJheS5pc0FycmF5KGZpbGVzKSA/ICdzcmdiJyA6ICdzcmdiLWxpbmVhcic7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHQodGV4dHVyZSBhcyBhbnkpLmVuY29kaW5nID0gZW5jb2RpbmcgPz8gQXJyYXkuaXNBcnJheShmaWxlcykgPyBzUkdCRW5jb2RpbmcgOiBMaW5lYXJFbmNvZGluZztcblx0XHRcdH1cblxuXHRcdFx0dGV4dHVyZVJlZi5uYXRpdmVFbGVtZW50ID0gdGV4dHVyZTtcblx0XHRcdHNhZmVEZXRlY3RDaGFuZ2VzKGNkcik7XG5cdFx0fSk7XG5cblx0XHRyZXR1cm4gdGV4dHVyZVJlZjtcblx0fSk7XG59XG4iXX0=
|