angular-three-soba 1.0.2 → 1.2.0
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/esm2020/controls/lib/orbit-controls/orbit-controls.mjs +3 -3
- package/esm2020/loaders/index.mjs +4 -1
- package/esm2020/loaders/lib/loader/loader.mjs +133 -0
- package/esm2020/loaders/lib/progress/progress.mjs +39 -0
- package/esm2020/loaders/lib/texture-loader/texture-loader.mjs +19 -0
- package/esm2020/misc/angular-three-soba-misc.mjs +5 -0
- package/esm2020/misc/index.mjs +2 -0
- package/esm2020/misc/lib/bake-shadows/bake-shadows.mjs +25 -0
- package/esm2020/performance/angular-three-soba-performance.mjs +5 -0
- package/esm2020/performance/index.mjs +5 -0
- package/esm2020/performance/lib/adaptive/adaptive-dpr.mjs +46 -0
- package/esm2020/performance/lib/adaptive/adaptive-events.mjs +36 -0
- package/esm2020/performance/lib/detailed/detailed.mjs +50 -0
- package/esm2020/performance/lib/stats/stats.mjs +63 -0
- package/esm2020/shaders/angular-three-soba-shaders.mjs +5 -0
- package/esm2020/shaders/index.mjs +2 -0
- package/esm2020/shaders/lib/shader-material/shader-material.mjs +34 -0
- package/esm2020/staging/angular-three-soba-staging.mjs +5 -0
- package/esm2020/staging/index.mjs +13 -0
- package/esm2020/staging/lib/accumulative-shadows/accumulative-shadows.mjs +276 -0
- package/esm2020/staging/lib/accumulative-shadows/progressive-light-map.mjs +109 -0
- package/esm2020/staging/lib/accumulative-shadows/randomized-lights.mjs +196 -0
- package/esm2020/staging/lib/bounds/bounds.mjs +283 -0
- package/esm2020/staging/lib/center/center.mjs +142 -0
- package/esm2020/staging/lib/contact-shadows/contact-shadows.mjs +227 -0
- package/esm2020/staging/lib/environment/assets.mjs +13 -0
- package/esm2020/staging/lib/environment/environment-cube.mjs +40 -0
- package/esm2020/staging/lib/environment/environment-ground.mjs +66 -0
- package/esm2020/staging/lib/environment/environment-inputs.mjs +86 -0
- package/esm2020/staging/lib/environment/environment-map.mjs +38 -0
- package/esm2020/staging/lib/environment/environment-portal.mjs +110 -0
- package/esm2020/staging/lib/environment/environment.mjs +163 -0
- package/esm2020/staging/lib/environment/utils.mjs +70 -0
- package/esm2020/staging/lib/float/float.mjs +76 -0
- package/esm2020/staging/lib/sky/sky.mjs +111 -0
- package/esm2020/staging/lib/sparkles/sparkles.mjs +209 -0
- package/esm2020/staging/lib/stage/stage.mjs +369 -0
- package/esm2020/staging/lib/stars/stars.mjs +171 -0
- package/fesm2015/angular-three-soba-controls.mjs +3 -3
- package/fesm2015/angular-three-soba-loaders.mjs +187 -3
- package/fesm2015/angular-three-soba-loaders.mjs.map +1 -1
- package/fesm2015/angular-three-soba-misc.mjs +32 -0
- package/fesm2015/angular-three-soba-misc.mjs.map +1 -0
- package/fesm2015/angular-three-soba-performance.mjs +191 -0
- package/fesm2015/angular-three-soba-performance.mjs.map +1 -0
- package/fesm2015/angular-three-soba-shaders.mjs +38 -0
- package/fesm2015/angular-three-soba-shaders.mjs.map +1 -0
- package/fesm2015/angular-three-soba-staging.mjs +2647 -0
- package/fesm2015/angular-three-soba-staging.mjs.map +1 -0
- package/fesm2020/angular-three-soba-controls.mjs +3 -3
- package/fesm2020/angular-three-soba-loaders.mjs +186 -3
- package/fesm2020/angular-three-soba-loaders.mjs.map +1 -1
- package/fesm2020/angular-three-soba-misc.mjs +32 -0
- package/fesm2020/angular-three-soba-misc.mjs.map +1 -0
- package/fesm2020/angular-three-soba-performance.mjs +191 -0
- package/fesm2020/angular-three-soba-performance.mjs.map +1 -0
- package/fesm2020/angular-three-soba-shaders.mjs +41 -0
- package/fesm2020/angular-three-soba-shaders.mjs.map +1 -0
- package/fesm2020/angular-three-soba-staging.mjs +2654 -0
- package/fesm2020/angular-three-soba-staging.mjs.map +1 -0
- package/loaders/index.d.ts +3 -0
- package/loaders/lib/loader/loader.d.ts +26 -0
- package/loaders/lib/progress/progress.d.ts +16 -0
- package/loaders/lib/texture-loader/texture-loader.d.ts +5 -0
- package/misc/README.md +3 -0
- package/misc/index.d.ts +1 -0
- package/misc/lib/bake-shadows/bake-shadows.d.ts +9 -0
- package/package.json +37 -2
- package/performance/README.md +3 -0
- package/performance/index.d.ts +4 -0
- package/performance/lib/adaptive/adaptive-dpr.d.ts +11 -0
- package/performance/lib/adaptive/adaptive-events.d.ts +10 -0
- package/performance/lib/detailed/detailed.d.ts +12 -0
- package/performance/lib/stats/stats.d.ts +14 -0
- package/plugin/package.json +1 -1
- package/plugin/src/generators/init/init.js +13 -17
- package/plugin/src/generators/init/init.js.map +1 -1
- package/shaders/README.md +3 -0
- package/shaders/index.d.ts +1 -0
- package/shaders/lib/shader-material/shader-material.d.ts +6 -0
- package/staging/README.md +3 -0
- package/staging/index.d.ts +12 -0
- package/staging/lib/accumulative-shadows/accumulative-shadows.d.ts +64 -0
- package/staging/lib/accumulative-shadows/progressive-light-map.d.ts +34 -0
- package/staging/lib/accumulative-shadows/randomized-lights.d.ts +42 -0
- package/staging/lib/bounds/bounds.d.ts +48 -0
- package/staging/lib/center/center.d.ts +40 -0
- package/staging/lib/contact-shadows/contact-shadows.d.ts +29 -0
- package/staging/lib/environment/assets.d.ts +13 -0
- package/staging/lib/environment/environment-cube.d.ts +11 -0
- package/staging/lib/environment/environment-ground.d.ts +9 -0
- package/staging/lib/environment/environment-inputs.d.ts +28 -0
- package/staging/lib/environment/environment-map.d.ts +10 -0
- package/staging/lib/environment/environment-portal.d.ts +15 -0
- package/staging/lib/environment/environment.d.ts +12 -0
- package/staging/lib/environment/utils.d.ts +8 -0
- package/staging/lib/float/float.d.ts +16 -0
- package/staging/lib/sky/sky.d.ts +21 -0
- package/staging/lib/sparkles/sparkles.d.ts +29 -0
- package/staging/lib/stage/stage.d.ts +87 -0
- package/staging/lib/stars/stars.d.ts +20 -0
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { Directive, inject, Input } from '@angular/core';
|
|
2
|
+
import { NgtRxStore, NgtStore } from 'angular-three';
|
|
3
|
+
import { Texture, TextureEncoding } from 'three';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class NgtsEnvironmentInputs extends NgtRxStore {
|
|
6
|
+
constructor() {
|
|
7
|
+
super(...arguments);
|
|
8
|
+
this.store = inject(NgtStore);
|
|
9
|
+
}
|
|
10
|
+
set frames(frames) {
|
|
11
|
+
this.set({ frames });
|
|
12
|
+
}
|
|
13
|
+
set near(near) {
|
|
14
|
+
this.set({ near });
|
|
15
|
+
}
|
|
16
|
+
set far(far) {
|
|
17
|
+
this.set({ far });
|
|
18
|
+
}
|
|
19
|
+
set resolution(resolution) {
|
|
20
|
+
this.set({ resolution });
|
|
21
|
+
}
|
|
22
|
+
set background(background) {
|
|
23
|
+
this.set({ background });
|
|
24
|
+
}
|
|
25
|
+
set blur(blur) {
|
|
26
|
+
this.set({ blur });
|
|
27
|
+
}
|
|
28
|
+
set map(map) {
|
|
29
|
+
this.set({ map });
|
|
30
|
+
}
|
|
31
|
+
set files(files) {
|
|
32
|
+
this.set({ files });
|
|
33
|
+
}
|
|
34
|
+
set path(path) {
|
|
35
|
+
this.set({ path });
|
|
36
|
+
}
|
|
37
|
+
set preset(preset) {
|
|
38
|
+
this.set({ preset });
|
|
39
|
+
}
|
|
40
|
+
set scene(scene) {
|
|
41
|
+
this.set({ scene });
|
|
42
|
+
}
|
|
43
|
+
set extensions(extensions) {
|
|
44
|
+
this.set({ extensions });
|
|
45
|
+
}
|
|
46
|
+
set ground(ground) {
|
|
47
|
+
this.set({ ground });
|
|
48
|
+
}
|
|
49
|
+
set encoding(encoding) {
|
|
50
|
+
this.set({ encoding });
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
NgtsEnvironmentInputs.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsEnvironmentInputs, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
54
|
+
NgtsEnvironmentInputs.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.3", type: NgtsEnvironmentInputs, inputs: { frames: "frames", near: "near", far: "far", resolution: "resolution", background: "background", blur: "blur", map: "map", files: "files", path: "path", preset: "preset", scene: "scene", extensions: "extensions", ground: "ground", encoding: "encoding" }, usesInheritance: true, ngImport: i0 });
|
|
55
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsEnvironmentInputs, decorators: [{
|
|
56
|
+
type: Directive
|
|
57
|
+
}], propDecorators: { frames: [{
|
|
58
|
+
type: Input
|
|
59
|
+
}], near: [{
|
|
60
|
+
type: Input
|
|
61
|
+
}], far: [{
|
|
62
|
+
type: Input
|
|
63
|
+
}], resolution: [{
|
|
64
|
+
type: Input
|
|
65
|
+
}], background: [{
|
|
66
|
+
type: Input
|
|
67
|
+
}], blur: [{
|
|
68
|
+
type: Input
|
|
69
|
+
}], map: [{
|
|
70
|
+
type: Input
|
|
71
|
+
}], files: [{
|
|
72
|
+
type: Input
|
|
73
|
+
}], path: [{
|
|
74
|
+
type: Input
|
|
75
|
+
}], preset: [{
|
|
76
|
+
type: Input
|
|
77
|
+
}], scene: [{
|
|
78
|
+
type: Input
|
|
79
|
+
}], extensions: [{
|
|
80
|
+
type: Input
|
|
81
|
+
}], ground: [{
|
|
82
|
+
type: Input
|
|
83
|
+
}], encoding: [{
|
|
84
|
+
type: Input
|
|
85
|
+
}] } });
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQtaW5wdXRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRocmVlLXNvYmEvc3RhZ2luZy9zcmMvbGliL2Vudmlyb25tZW50L2Vudmlyb25tZW50LWlucHV0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFpQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sT0FBTyxDQUFDOztBQUloRSxNQUFNLE9BQWdCLHFCQUFzQixTQUFRLFVBQVU7SUFEOUQ7O1FBRXVCLFVBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7S0FpRS9DO0lBL0RHLElBQWEsTUFBTSxDQUFDLE1BQWM7UUFDOUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELElBQWEsSUFBSSxDQUFDLElBQVk7UUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQWEsR0FBRyxDQUFDLEdBQVc7UUFDeEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQWEsVUFBVSxDQUFDLFVBQWtCO1FBQ3RDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFhLFVBQVUsQ0FBQyxVQUE0QjtRQUNoRCxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBYSxJQUFJLENBQUMsSUFBWTtRQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBYSxHQUFHLENBQUMsR0FBWTtRQUN6QixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBYSxLQUFLLENBQUMsS0FBd0I7UUFDdkMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQWEsSUFBSSxDQUFDLElBQVk7UUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQWEsTUFBTSxDQUFDLE1BQWtDO1FBQ2xELElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFhLEtBQUssQ0FBQyxLQUFnQztRQUMvQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBYSxVQUFVLENBQUMsVUFBb0M7UUFDeEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQWEsTUFBTSxDQUNmLE1BTU87UUFFUCxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBYSxRQUFRLENBQUMsUUFBeUI7UUFDM0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDM0IsQ0FBQzs7a0hBakVpQixxQkFBcUI7c0dBQXJCLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQUQxQyxTQUFTOzhCQUlPLE1BQU07c0JBQWxCLEtBQUs7Z0JBSU8sSUFBSTtzQkFBaEIsS0FBSztnQkFJTyxHQUFHO3NCQUFmLEtBQUs7Z0JBSU8sVUFBVTtzQkFBdEIsS0FBSztnQkFJTyxVQUFVO3NCQUF0QixLQUFLO2dCQUlPLElBQUk7c0JBQWhCLEtBQUs7Z0JBSU8sR0FBRztzQkFBZixLQUFLO2dCQUlPLEtBQUs7c0JBQWpCLEtBQUs7Z0JBSU8sSUFBSTtzQkFBaEIsS0FBSztnQkFJTyxNQUFNO3NCQUFsQixLQUFLO2dCQUlPLEtBQUs7c0JBQWpCLEtBQUs7Z0JBSU8sVUFBVTtzQkFBdEIsS0FBSztnQkFJTyxNQUFNO3NCQUFsQixLQUFLO2dCQVlPLFFBQVE7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGluamVjdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndFJ4U3RvcmUsIE5ndFN0b3JlIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBMb2FkZXIsIFNjZW5lLCBUZXh0dXJlLCBUZXh0dXJlRW5jb2RpbmcgfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBOZ3RzRW52aXJvbm1lbnRQcmVzZXRzVHlwZSB9IGZyb20gJy4vYXNzZXRzJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTmd0c0Vudmlyb25tZW50SW5wdXRzIGV4dGVuZHMgTmd0UnhTdG9yZSB7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHN0b3JlID0gaW5qZWN0KE5ndFN0b3JlKTtcblxuICAgIEBJbnB1dCgpIHNldCBmcmFtZXMoZnJhbWVzOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBmcmFtZXMgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IG5lYXIobmVhcjogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgbmVhciB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgZmFyKGZhcjogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZmFyIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCByZXNvbHV0aW9uKHJlc29sdXRpb246IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IHJlc29sdXRpb24gfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGJhY2tncm91bmQoYmFja2dyb3VuZDogYm9vbGVhbiB8ICdvbmx5Jykge1xuICAgICAgICB0aGlzLnNldCh7IGJhY2tncm91bmQgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGJsdXIoYmx1cjogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgYmx1ciB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgbWFwKG1hcDogVGV4dHVyZSkge1xuICAgICAgICB0aGlzLnNldCh7IG1hcCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgZmlsZXMoZmlsZXM6IHN0cmluZyB8IHN0cmluZ1tdKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZmlsZXMgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHBhdGgocGF0aDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgcGF0aCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgcHJlc2V0KHByZXNldDogTmd0c0Vudmlyb25tZW50UHJlc2V0c1R5cGUpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBwcmVzZXQgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHNjZW5lKHNjZW5lOiBTY2VuZSB8IEVsZW1lbnRSZWY8U2NlbmU+KSB7XG4gICAgICAgIHRoaXMuc2V0KHsgc2NlbmUgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGV4dGVuc2lvbnMoZXh0ZW5zaW9uczogKGxvYWRlcjogTG9hZGVyKSA9PiB2b2lkKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZXh0ZW5zaW9ucyB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgZ3JvdW5kKFxuICAgICAgICBncm91bmQ6XG4gICAgICAgICAgICB8IGJvb2xlYW5cbiAgICAgICAgICAgIHwge1xuICAgICAgICAgICAgICAgICAgcmFkaXVzPzogbnVtYmVyO1xuICAgICAgICAgICAgICAgICAgaGVpZ2h0PzogbnVtYmVyO1xuICAgICAgICAgICAgICAgICAgc2NhbGU/OiBudW1iZXI7XG4gICAgICAgICAgICAgIH1cbiAgICApIHtcbiAgICAgICAgdGhpcy5zZXQoeyBncm91bmQgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGVuY29kaW5nKGVuY29kaW5nOiBUZXh0dXJlRW5jb2RpbmcpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBlbmNvZGluZyB9KTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Directive } from '@angular/core';
|
|
2
|
+
import { startWithUndefined } from 'angular-three';
|
|
3
|
+
import { combineLatest } from 'rxjs';
|
|
4
|
+
import { NgtsEnvironmentInputs } from './environment-inputs';
|
|
5
|
+
import { setEnvProps } from './utils';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class NgtsEnvironmentMap extends NgtsEnvironmentInputs {
|
|
8
|
+
initialize() {
|
|
9
|
+
super.initialize();
|
|
10
|
+
this.set({ background: false });
|
|
11
|
+
}
|
|
12
|
+
ngOnInit() {
|
|
13
|
+
this.setEnvProps();
|
|
14
|
+
}
|
|
15
|
+
setEnvProps() {
|
|
16
|
+
this.effect(combineLatest([
|
|
17
|
+
this.store.select('scene'),
|
|
18
|
+
this.select('map'),
|
|
19
|
+
this.select('scene').pipe(startWithUndefined()),
|
|
20
|
+
this.select('background'),
|
|
21
|
+
this.select('blur').pipe(startWithUndefined()),
|
|
22
|
+
]), ([defaultScene, map, scene, background, blur]) => {
|
|
23
|
+
if (map) {
|
|
24
|
+
return setEnvProps(background, scene, defaultScene, map, blur);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
NgtsEnvironmentMap.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsEnvironmentMap, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
30
|
+
NgtsEnvironmentMap.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.3", type: NgtsEnvironmentMap, isStandalone: true, selector: "ngts-environment-map", usesInheritance: true, ngImport: i0 });
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsEnvironmentMap, decorators: [{
|
|
32
|
+
type: Directive,
|
|
33
|
+
args: [{
|
|
34
|
+
selector: 'ngts-environment-map',
|
|
35
|
+
standalone: true,
|
|
36
|
+
}]
|
|
37
|
+
}] });
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQtbWFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRocmVlLXNvYmEvc3RhZ2luZy9zcmMvbGliL2Vudmlyb25tZW50L2Vudmlyb25tZW50LW1hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxTQUFTLENBQUM7O0FBTXRDLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxxQkFBcUI7SUFDaEQsVUFBVTtRQUNmLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVPLFdBQVc7UUFDZixJQUFJLENBQUMsTUFBTSxDQUNQLGFBQWEsQ0FBQztZQUNWLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQy9DLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7U0FDakQsQ0FBQyxFQUNGLENBQUMsQ0FBQyxZQUFZLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUM3QyxJQUFJLEdBQUcsRUFBRTtnQkFDTCxPQUFPLFdBQVcsQ0FBQyxVQUFVLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7YUFDbEU7UUFDTCxDQUFDLENBQ0osQ0FBQztJQUNOLENBQUM7OytHQXpCUSxrQkFBa0I7bUdBQWxCLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQUo5QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFVBQVUsRUFBRSxJQUFJO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBzdGFydFdpdGhVbmRlZmluZWQgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE5ndHNFbnZpcm9ubWVudElucHV0cyB9IGZyb20gJy4vZW52aXJvbm1lbnQtaW5wdXRzJztcbmltcG9ydCB7IHNldEVudlByb3BzIH0gZnJvbSAnLi91dGlscyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnbmd0cy1lbnZpcm9ubWVudC1tYXAnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNFbnZpcm9ubWVudE1hcCBleHRlbmRzIE5ndHNFbnZpcm9ubWVudElucHV0cyBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgb3ZlcnJpZGUgaW5pdGlhbGl6ZSgpIHtcbiAgICAgICAgc3VwZXIuaW5pdGlhbGl6ZSgpO1xuICAgICAgICB0aGlzLnNldCh7IGJhY2tncm91bmQ6IGZhbHNlIH0pO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnNldEVudlByb3BzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRFbnZQcm9wcygpIHtcbiAgICAgICAgdGhpcy5lZmZlY3QoXG4gICAgICAgICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JlLnNlbGVjdCgnc2NlbmUnKSxcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdCgnbWFwJyksXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3QoJ3NjZW5lJykucGlwZShzdGFydFdpdGhVbmRlZmluZWQoKSksXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3QoJ2JhY2tncm91bmQnKSxcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdCgnYmx1cicpLnBpcGUoc3RhcnRXaXRoVW5kZWZpbmVkKCkpLFxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgICAoW2RlZmF1bHRTY2VuZSwgbWFwLCBzY2VuZSwgYmFja2dyb3VuZCwgYmx1cl0pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAobWFwKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzZXRFbnZQcm9wcyhiYWNrZ3JvdW5kLCBzY2VuZSwgZGVmYXVsdFNjZW5lLCBtYXAsIGJsdXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { NgIf } from '@angular/common';
|
|
2
|
+
import { Component, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
|
3
|
+
import { extend, injectBeforeRender, injectNgtRef, NgtArgs, NgtPortal, NgtPortalContent, prepare, } from 'angular-three';
|
|
4
|
+
import { combineLatest } from 'rxjs';
|
|
5
|
+
import * as THREE from 'three';
|
|
6
|
+
import { CubeCamera, HalfFloatType } from 'three';
|
|
7
|
+
import { NgtsEnvironmentCube } from './environment-cube';
|
|
8
|
+
import { NgtsEnvironmentInputs } from './environment-inputs';
|
|
9
|
+
import { NgtsEnvironmentMap } from './environment-map';
|
|
10
|
+
import { setEnvProps } from './utils';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
extend({ CubeCamera });
|
|
13
|
+
export class NgtsEnvironmentPortal extends NgtsEnvironmentInputs {
|
|
14
|
+
initialize() {
|
|
15
|
+
super.initialize();
|
|
16
|
+
this.set({ near: 1, far: 1000, resolution: 256, frames: 1, background: false, preset: undefined });
|
|
17
|
+
this.connect('fbo', this.select(['resolution'], ({ resolution }) => {
|
|
18
|
+
const fbo = new THREE.WebGLCubeRenderTarget(resolution);
|
|
19
|
+
fbo.texture.type = HalfFloatType;
|
|
20
|
+
return fbo;
|
|
21
|
+
}));
|
|
22
|
+
this.connect('cameraArgs', this.select(['fbo', 'near', 'far'], ({ near, far, fbo }) => [near, far, fbo]));
|
|
23
|
+
}
|
|
24
|
+
constructor() {
|
|
25
|
+
super();
|
|
26
|
+
this.virtualSceneRef = injectNgtRef(prepare(new THREE.Scene()));
|
|
27
|
+
this.cubeCameraRef = injectNgtRef();
|
|
28
|
+
injectBeforeRender(this.onBeforeRender.bind(this, 1));
|
|
29
|
+
}
|
|
30
|
+
ngOnInit() {
|
|
31
|
+
this.setEnvProps();
|
|
32
|
+
}
|
|
33
|
+
setEnvProps() {
|
|
34
|
+
this.effect(combineLatest([
|
|
35
|
+
this.store.select('gl'),
|
|
36
|
+
this.store.select('scene'),
|
|
37
|
+
this.select('fbo'),
|
|
38
|
+
this.select('scene'),
|
|
39
|
+
this.select('background'),
|
|
40
|
+
this.select('frames'),
|
|
41
|
+
this.select('blur'),
|
|
42
|
+
this.virtualSceneRef.$,
|
|
43
|
+
this.cubeCameraRef.$,
|
|
44
|
+
]), ([gl, defaultScene, fbo, scene, background, frames, blur, virtualScene, camera]) => {
|
|
45
|
+
if (frames === 1)
|
|
46
|
+
camera.update(gl, virtualScene);
|
|
47
|
+
return setEnvProps(background, scene, defaultScene, fbo.texture, blur);
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
onBeforeRender(count, { gl }) {
|
|
51
|
+
const { frames } = this.get();
|
|
52
|
+
if (frames === Infinity || count < frames) {
|
|
53
|
+
if (this.cubeCameraRef.nativeElement) {
|
|
54
|
+
this.cubeCameraRef.nativeElement.update(gl, this.virtualSceneRef.nativeElement);
|
|
55
|
+
count++;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
NgtsEnvironmentPortal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsEnvironmentPortal, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
61
|
+
NgtsEnvironmentPortal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.3", type: NgtsEnvironmentPortal, isStandalone: true, selector: "ngts-environment-portal", usesInheritance: true, ngImport: i0, template: `
|
|
62
|
+
<ngt-portal [container]="virtualSceneRef">
|
|
63
|
+
<ng-template ngtPortalContent>
|
|
64
|
+
<ng-content />
|
|
65
|
+
<ngt-cube-camera *args="get('cameraArgs')" [ref]="cubeCameraRef" />
|
|
66
|
+
<ng-container *ngIf="get('files') || get('preset'); else environmentMap">
|
|
67
|
+
<ngts-environment-cube
|
|
68
|
+
[background]="true"
|
|
69
|
+
[files]="get('files')"
|
|
70
|
+
[preset]="get('preset')"
|
|
71
|
+
[path]="get('path')"
|
|
72
|
+
[extensions]="get('extensions')"
|
|
73
|
+
/>
|
|
74
|
+
</ng-container>
|
|
75
|
+
<ng-template #environmentMap>
|
|
76
|
+
<ngts-environment-map [background]="true" [map]="get('map')" [extensions]="get('extensions')" />
|
|
77
|
+
</ng-template>
|
|
78
|
+
</ng-template>
|
|
79
|
+
</ngt-portal>
|
|
80
|
+
`, 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" }, { kind: "directive", type: NgtsEnvironmentCube, selector: "ngts-environment-cube" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }] });
|
|
81
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsEnvironmentPortal, decorators: [{
|
|
82
|
+
type: Component,
|
|
83
|
+
args: [{
|
|
84
|
+
selector: 'ngts-environment-portal',
|
|
85
|
+
standalone: true,
|
|
86
|
+
template: `
|
|
87
|
+
<ngt-portal [container]="virtualSceneRef">
|
|
88
|
+
<ng-template ngtPortalContent>
|
|
89
|
+
<ng-content />
|
|
90
|
+
<ngt-cube-camera *args="get('cameraArgs')" [ref]="cubeCameraRef" />
|
|
91
|
+
<ng-container *ngIf="get('files') || get('preset'); else environmentMap">
|
|
92
|
+
<ngts-environment-cube
|
|
93
|
+
[background]="true"
|
|
94
|
+
[files]="get('files')"
|
|
95
|
+
[preset]="get('preset')"
|
|
96
|
+
[path]="get('path')"
|
|
97
|
+
[extensions]="get('extensions')"
|
|
98
|
+
/>
|
|
99
|
+
</ng-container>
|
|
100
|
+
<ng-template #environmentMap>
|
|
101
|
+
<ngts-environment-map [background]="true" [map]="get('map')" [extensions]="get('extensions')" />
|
|
102
|
+
</ng-template>
|
|
103
|
+
</ng-template>
|
|
104
|
+
</ngt-portal>
|
|
105
|
+
`,
|
|
106
|
+
imports: [NgtPortal, NgtPortalContent, NgtsEnvironmentMap, NgtsEnvironmentCube, NgIf, NgtArgs],
|
|
107
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
108
|
+
}]
|
|
109
|
+
}], ctorParameters: function () { return []; } });
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQtcG9ydGFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRocmVlLXNvYmEvc3RhZ2luZy9zcmMvbGliL2Vudmlyb25tZW50L2Vudmlyb25tZW50LXBvcnRhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQ0gsTUFBTSxFQUNOLGtCQUFrQixFQUNsQixZQUFZLEVBQ1osT0FBTyxFQUNQLFNBQVMsRUFDVCxnQkFBZ0IsRUFFaEIsT0FBTyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckMsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDL0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDbEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7QUFFdEMsTUFBTSxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztBQTRCdkIsTUFBTSxPQUFPLHFCQUFzQixTQUFRLHFCQUFxQjtJQUluRCxVQUFVO1FBQ2YsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEdB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Q0FBQztnQkFDaEYsS0FBSyxFQUFFLENBQUM7YUFDWDtTQUNKO0lBQ0wsQ0FBQzs7a0hBMURRLHFCQUFxQjtzR0FBckIscUJBQXFCLDBHQXZCcEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FtQlQsNERBQ1MsU0FBUyxzSkFBRSxnQkFBZ0IsMEVBQUUsa0JBQWtCLGlFQUFFLG1CQUFtQixrRUFBRSxJQUFJLDZGQUFFLE9BQU87MkZBR3BGLHFCQUFxQjtrQkExQmpDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQW1CVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQztvQkFDOUYsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ3BDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBleHRlbmQsXG4gICAgaW5qZWN0QmVmb3JlUmVuZGVyLFxuICAgIGluamVjdE5ndFJlZixcbiAgICBOZ3RBcmdzLFxuICAgIE5ndFBvcnRhbCxcbiAgICBOZ3RQb3J0YWxDb250ZW50LFxuICAgIE5ndFJlbmRlclN0YXRlLFxuICAgIHByZXBhcmUsXG59IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0ICogYXMgVEhSRUUgZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgQ3ViZUNhbWVyYSwgSGFsZkZsb2F0VHlwZSB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IE5ndHNFbnZpcm9ubWVudEN1YmUgfSBmcm9tICcuL2Vudmlyb25tZW50LWN1YmUnO1xuaW1wb3J0IHsgTmd0c0Vudmlyb25tZW50SW5wdXRzIH0gZnJvbSAnLi9lbnZpcm9ubWVudC1pbnB1dHMnO1xuaW1wb3J0IHsgTmd0c0Vudmlyb25tZW50TWFwIH0gZnJvbSAnLi9lbnZpcm9ubWVudC1tYXAnO1xuaW1wb3J0IHsgc2V0RW52UHJvcHMgfSBmcm9tICcuL3V0aWxzJztcblxuZXh0ZW5kKHsgQ3ViZUNhbWVyYSB9KTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3RzLWVudmlyb25tZW50LXBvcnRhbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmd0LXBvcnRhbCBbY29udGFpbmVyXT1cInZpcnR1YWxTY2VuZVJlZlwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG5ndFBvcnRhbENvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgLz5cbiAgICAgICAgICAgICAgICA8bmd0LWN1YmUtY2FtZXJhICphcmdzPVwiZ2V0KCdjYW1lcmFBcmdzJylcIiBbcmVmXT1cImN1YmVDYW1lcmFSZWZcIiAvPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJnZXQoJ2ZpbGVzJykgfHwgZ2V0KCdwcmVzZXQnKTsgZWxzZSBlbnZpcm9ubWVudE1hcFwiPlxuICAgICAgICAgICAgICAgICAgICA8bmd0cy1lbnZpcm9ubWVudC1jdWJlXG4gICAgICAgICAgICAgICAgICAgICAgICBbYmFja2dyb3VuZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmaWxlc109XCJnZXQoJ2ZpbGVzJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3ByZXNldF09XCJnZXQoJ3ByZXNldCcpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwYXRoXT1cImdldCgncGF0aCcpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtleHRlbnNpb25zXT1cImdldCgnZXh0ZW5zaW9ucycpXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Vudmlyb25tZW50TWFwPlxuICAgICAgICAgICAgICAgICAgICA8bmd0cy1lbnZpcm9ubWVudC1tYXAgW2JhY2tncm91bmRdPVwidHJ1ZVwiIFttYXBdPVwiZ2V0KCdtYXAnKVwiIFtleHRlbnNpb25zXT1cImdldCgnZXh0ZW5zaW9ucycpXCIgLz5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZ3QtcG9ydGFsPlxuICAgIGAsXG4gICAgaW1wb3J0czogW05ndFBvcnRhbCwgTmd0UG9ydGFsQ29udGVudCwgTmd0c0Vudmlyb25tZW50TWFwLCBOZ3RzRW52aXJvbm1lbnRDdWJlLCBOZ0lmLCBOZ3RBcmdzXSxcbiAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNFbnZpcm9ubWVudFBvcnRhbCBleHRlbmRzIE5ndHNFbnZpcm9ubWVudElucHV0cyBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcmVhZG9ubHkgdmlydHVhbFNjZW5lUmVmID0gaW5qZWN0Tmd0UmVmPFRIUkVFLlNjZW5lPihwcmVwYXJlKG5ldyBUSFJFRS5TY2VuZSgpKSk7XG4gICAgcmVhZG9ubHkgY3ViZUNhbWVyYVJlZiA9IGluamVjdE5ndFJlZjxUSFJFRS5DdWJlQ2FtZXJhPigpO1xuXG4gICAgb3ZlcnJpZGUgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuaW5pdGlhbGl6ZSgpO1xuICAgICAgICB0aGlzLnNldCh7IG5lYXI6IDEsIGZhcjogMTAwMCwgcmVzb2x1dGlvbjogMjU2LCBmcmFtZXM6IDEsIGJhY2tncm91bmQ6IGZhbHNlLCBwcmVzZXQ6IHVuZGVmaW5lZCB9KTtcbiAgICAgICAgdGhpcy5jb25uZWN0KFxuICAgICAgICAgICAgJ2ZibycsXG4gICAgICAgICAgICB0aGlzLnNlbGVjdChbJ3Jlc29sdXRpb24nXSwgKHsgcmVzb2x1dGlvbiB9KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmJvID0gbmV3IFRIUkVFLldlYkdMQ3ViZVJlbmRlclRhcmdldChyZXNvbHV0aW9uKTtcbiAgICAgICAgICAgICAgICBmYm8udGV4dHVyZS50eXBlID0gSGFsZkZsb2F0VHlwZTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmJvO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5jb25uZWN0KFxuICAgICAgICAgICAgJ2NhbWVyYUFyZ3MnLFxuICAgICAgICAgICAgdGhpcy5zZWxlY3QoWydmYm8nLCAnbmVhcicsICdmYXInXSwgKHsgbmVhciwgZmFyLCBmYm8gfSkgPT4gW25lYXIsIGZhciwgZmJvXSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgaW5qZWN0QmVmb3JlUmVuZGVyKHRoaXMub25CZWZvcmVSZW5kZXIuYmluZCh0aGlzLCAxKSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0RW52UHJvcHMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEVudlByb3BzKCkge1xuICAgICAgICB0aGlzLmVmZmVjdChcbiAgICAgICAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KCdnbCcpLFxuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KCdzY2VuZScpLFxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0KCdmYm8nKSxcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdCgnc2NlbmUnKSxcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdCgnYmFja2dyb3VuZCcpLFxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0KCdmcmFtZXMnKSxcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdCgnYmx1cicpLFxuICAgICAgICAgICAgICAgIHRoaXMudmlydHVhbFNjZW5lUmVmLiQsXG4gICAgICAgICAgICAgICAgdGhpcy5jdWJlQ2FtZXJhUmVmLiQsXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIChbZ2wsIGRlZmF1bHRTY2VuZSwgZmJvLCBzY2VuZSwgYmFja2dyb3VuZCwgZnJhbWVzLCBibHVyLCB2aXJ0dWFsU2NlbmUsIGNhbWVyYV0pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZnJhbWVzID09PSAxKSBjYW1lcmEudXBkYXRlKGdsLCB2aXJ0dWFsU2NlbmUpO1xuICAgICAgICAgICAgICAgIHJldHVybiBzZXRFbnZQcm9wcyhiYWNrZ3JvdW5kLCBzY2VuZSwgZGVmYXVsdFNjZW5lLCBmYm8udGV4dHVyZSwgYmx1cik7XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkJlZm9yZVJlbmRlcihjb3VudDogbnVtYmVyLCB7IGdsIH06IE5ndFJlbmRlclN0YXRlKSB7XG4gICAgICAgIGNvbnN0IHsgZnJhbWVzIH0gPSB0aGlzLmdldCgpO1xuICAgICAgICBpZiAoZnJhbWVzID09PSBJbmZpbml0eSB8fCBjb3VudCA8IGZyYW1lcykge1xuICAgICAgICAgICAgaWYgKHRoaXMuY3ViZUNhbWVyYVJlZi5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdWJlQ2FtZXJhUmVmLm5hdGl2ZUVsZW1lbnQudXBkYXRlKGdsLCB0aGlzLnZpcnR1YWxTY2VuZVJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgICAgICAgICBjb3VudCsrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import { NgIf, NgTemplateOutlet } from '@angular/common';
|
|
2
|
+
import { Component, ContentChild, CUSTOM_ELEMENTS_SCHEMA, Directive, TemplateRef } from '@angular/core';
|
|
3
|
+
import { NgtsEnvironmentCube } from './environment-cube';
|
|
4
|
+
import { NgtsEnvironmentGround } from './environment-ground';
|
|
5
|
+
import { NgtsEnvironmentInputs } from './environment-inputs';
|
|
6
|
+
import { NgtsEnvironmentMap } from './environment-map';
|
|
7
|
+
import { NgtsEnvironmentPortal } from './environment-portal';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
export class NgtsEnvironmentContent {
|
|
10
|
+
}
|
|
11
|
+
NgtsEnvironmentContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsEnvironmentContent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
12
|
+
NgtsEnvironmentContent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.3", type: NgtsEnvironmentContent, isStandalone: true, selector: "ng-template[ngtsEnvironmentContent]", ngImport: i0 });
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsEnvironmentContent, decorators: [{
|
|
14
|
+
type: Directive,
|
|
15
|
+
args: [{ selector: 'ng-template[ngtsEnvironmentContent]', standalone: true }]
|
|
16
|
+
}] });
|
|
17
|
+
export class NgtsEnvironment extends NgtsEnvironmentInputs {
|
|
18
|
+
}
|
|
19
|
+
NgtsEnvironment.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsEnvironment, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
20
|
+
NgtsEnvironment.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.3", type: NgtsEnvironment, isStandalone: true, selector: "ngts-environment", queries: [{ propertyName: "content", first: true, predicate: NgtsEnvironmentContent, descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: `
|
|
21
|
+
<ngts-environment-ground
|
|
22
|
+
*ngIf="get('ground'); else noGround"
|
|
23
|
+
[ground]="get('ground')"
|
|
24
|
+
[map]="get('map')"
|
|
25
|
+
[scene]="get('scene')"
|
|
26
|
+
[blur]="get('blur')"
|
|
27
|
+
[background]="get('background')"
|
|
28
|
+
[preset]="get('preset')"
|
|
29
|
+
[frames]="get('frames')"
|
|
30
|
+
[far]="get('far')"
|
|
31
|
+
[near]="get('near')"
|
|
32
|
+
[resolution]="get('resolution')"
|
|
33
|
+
[files]="get('files')"
|
|
34
|
+
[path]="get('path')"
|
|
35
|
+
[extensions]="get('extensions')"
|
|
36
|
+
/>
|
|
37
|
+
<ng-template #noGround>
|
|
38
|
+
<ngts-environment-map
|
|
39
|
+
*ngIf="get('map'); else noMap"
|
|
40
|
+
[map]="get('map')"
|
|
41
|
+
[scene]="get('scene')"
|
|
42
|
+
[blur]="get('blur')"
|
|
43
|
+
[background]="get('background')"
|
|
44
|
+
/>
|
|
45
|
+
<ng-template #noMap>
|
|
46
|
+
<ngts-environment-portal
|
|
47
|
+
*ngIf="content; else noPortal"
|
|
48
|
+
[frames]="get('frames')"
|
|
49
|
+
[far]="get('far')"
|
|
50
|
+
[near]="get('near')"
|
|
51
|
+
[resolution]="get('resolution')"
|
|
52
|
+
[map]="get('map')"
|
|
53
|
+
[background]="get('background')"
|
|
54
|
+
[blur]="get('blur')"
|
|
55
|
+
[scene]="get('scene')"
|
|
56
|
+
[files]="get('files')"
|
|
57
|
+
[path]="get('path')"
|
|
58
|
+
[preset]="get('preset')"
|
|
59
|
+
[extensions]="get('extensions')"
|
|
60
|
+
>
|
|
61
|
+
<ng-container *ngTemplateOutlet="content" />
|
|
62
|
+
</ngts-environment-portal>
|
|
63
|
+
<ng-template #noPortal>
|
|
64
|
+
<ngts-environment-cube
|
|
65
|
+
[frames]="get('frames')"
|
|
66
|
+
[far]="get('far')"
|
|
67
|
+
[near]="get('near')"
|
|
68
|
+
[resolution]="get('resolution')"
|
|
69
|
+
[map]="get('map')"
|
|
70
|
+
[background]="get('background')"
|
|
71
|
+
[blur]="get('blur')"
|
|
72
|
+
[scene]="get('scene')"
|
|
73
|
+
[files]="get('files')"
|
|
74
|
+
[path]="get('path')"
|
|
75
|
+
[preset]="get('preset')"
|
|
76
|
+
[extensions]="get('extensions')"
|
|
77
|
+
/>
|
|
78
|
+
</ng-template>
|
|
79
|
+
</ng-template>
|
|
80
|
+
</ng-template>
|
|
81
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: NgtsEnvironmentMap, selector: "ngts-environment-map" }, { kind: "component", type: NgtsEnvironmentGround, selector: "ngts-environment-ground" }, { kind: "directive", type: NgtsEnvironmentCube, selector: "ngts-environment-cube" }, { 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"] }] });
|
|
82
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsEnvironment, decorators: [{
|
|
83
|
+
type: Component,
|
|
84
|
+
args: [{
|
|
85
|
+
selector: 'ngts-environment',
|
|
86
|
+
standalone: true,
|
|
87
|
+
template: `
|
|
88
|
+
<ngts-environment-ground
|
|
89
|
+
*ngIf="get('ground'); else noGround"
|
|
90
|
+
[ground]="get('ground')"
|
|
91
|
+
[map]="get('map')"
|
|
92
|
+
[scene]="get('scene')"
|
|
93
|
+
[blur]="get('blur')"
|
|
94
|
+
[background]="get('background')"
|
|
95
|
+
[preset]="get('preset')"
|
|
96
|
+
[frames]="get('frames')"
|
|
97
|
+
[far]="get('far')"
|
|
98
|
+
[near]="get('near')"
|
|
99
|
+
[resolution]="get('resolution')"
|
|
100
|
+
[files]="get('files')"
|
|
101
|
+
[path]="get('path')"
|
|
102
|
+
[extensions]="get('extensions')"
|
|
103
|
+
/>
|
|
104
|
+
<ng-template #noGround>
|
|
105
|
+
<ngts-environment-map
|
|
106
|
+
*ngIf="get('map'); else noMap"
|
|
107
|
+
[map]="get('map')"
|
|
108
|
+
[scene]="get('scene')"
|
|
109
|
+
[blur]="get('blur')"
|
|
110
|
+
[background]="get('background')"
|
|
111
|
+
/>
|
|
112
|
+
<ng-template #noMap>
|
|
113
|
+
<ngts-environment-portal
|
|
114
|
+
*ngIf="content; else noPortal"
|
|
115
|
+
[frames]="get('frames')"
|
|
116
|
+
[far]="get('far')"
|
|
117
|
+
[near]="get('near')"
|
|
118
|
+
[resolution]="get('resolution')"
|
|
119
|
+
[map]="get('map')"
|
|
120
|
+
[background]="get('background')"
|
|
121
|
+
[blur]="get('blur')"
|
|
122
|
+
[scene]="get('scene')"
|
|
123
|
+
[files]="get('files')"
|
|
124
|
+
[path]="get('path')"
|
|
125
|
+
[preset]="get('preset')"
|
|
126
|
+
[extensions]="get('extensions')"
|
|
127
|
+
>
|
|
128
|
+
<ng-container *ngTemplateOutlet="content" />
|
|
129
|
+
</ngts-environment-portal>
|
|
130
|
+
<ng-template #noPortal>
|
|
131
|
+
<ngts-environment-cube
|
|
132
|
+
[frames]="get('frames')"
|
|
133
|
+
[far]="get('far')"
|
|
134
|
+
[near]="get('near')"
|
|
135
|
+
[resolution]="get('resolution')"
|
|
136
|
+
[map]="get('map')"
|
|
137
|
+
[background]="get('background')"
|
|
138
|
+
[blur]="get('blur')"
|
|
139
|
+
[scene]="get('scene')"
|
|
140
|
+
[files]="get('files')"
|
|
141
|
+
[path]="get('path')"
|
|
142
|
+
[preset]="get('preset')"
|
|
143
|
+
[extensions]="get('extensions')"
|
|
144
|
+
/>
|
|
145
|
+
</ng-template>
|
|
146
|
+
</ng-template>
|
|
147
|
+
</ng-template>
|
|
148
|
+
`,
|
|
149
|
+
imports: [
|
|
150
|
+
NgtsEnvironmentMap,
|
|
151
|
+
NgtsEnvironmentGround,
|
|
152
|
+
NgtsEnvironmentCube,
|
|
153
|
+
NgtsEnvironmentPortal,
|
|
154
|
+
NgIf,
|
|
155
|
+
NgTemplateOutlet,
|
|
156
|
+
],
|
|
157
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
158
|
+
}]
|
|
159
|
+
}], propDecorators: { content: [{
|
|
160
|
+
type: ContentChild,
|
|
161
|
+
args: [NgtsEnvironmentContent, { read: TemplateRef }]
|
|
162
|
+
}] } });
|
|
163
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9zdGFnaW5nL3NyYy9saWIvZW52aXJvbm1lbnQvZW52aXJvbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLHNCQUFzQixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBRzdELE1BQU0sT0FBTyxzQkFBc0I7O21IQUF0QixzQkFBc0I7dUdBQXRCLHNCQUFzQjsyRkFBdEIsc0JBQXNCO2tCQURsQyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLHFDQUFxQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUU7O0FBOEVoRixNQUFNLE9BQU8sZUFBZ0IsU0FBUSxxQkFBcUI7OzRHQUE3QyxlQUFlO2dHQUFmLGVBQWUsaUhBQ1Ysc0JBQXNCLDJCQUFVLFdBQVcsb0RBekUvQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQTZEVCw0REFFRyxrQkFBa0IsaUVBQ2xCLHFCQUFxQixvRUFDckIsbUJBQW1CLGtFQUNuQixxQkFBcUIsb0VBQ3JCLElBQUksNkZBQ0osZ0JBQWdCOzJGQUlYLGVBQWU7a0JBM0UzQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0E2RFQ7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLGtCQUFrQjt3QkFDbEIscUJBQXFCO3dCQUNyQixtQkFBbUI7d0JBQ25CLHFCQUFxQjt3QkFDckIsSUFBSTt3QkFDSixnQkFBZ0I7cUJBQ25CO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNwQzs4QkFFZ0UsT0FBTztzQkFBbkUsWUFBWTt1QkFBQyxzQkFBc0IsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBEaXJlY3RpdmUsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3RzRW52aXJvbm1lbnRDdWJlIH0gZnJvbSAnLi9lbnZpcm9ubWVudC1jdWJlJztcbmltcG9ydCB7IE5ndHNFbnZpcm9ubWVudEdyb3VuZCB9IGZyb20gJy4vZW52aXJvbm1lbnQtZ3JvdW5kJztcbmltcG9ydCB7IE5ndHNFbnZpcm9ubWVudElucHV0cyB9IGZyb20gJy4vZW52aXJvbm1lbnQtaW5wdXRzJztcbmltcG9ydCB7IE5ndHNFbnZpcm9ubWVudE1hcCB9IGZyb20gJy4vZW52aXJvbm1lbnQtbWFwJztcbmltcG9ydCB7IE5ndHNFbnZpcm9ubWVudFBvcnRhbCB9IGZyb20gJy4vZW52aXJvbm1lbnQtcG9ydGFsJztcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnbmctdGVtcGxhdGVbbmd0c0Vudmlyb25tZW50Q29udGVudF0nLCBzdGFuZGFsb25lOiB0cnVlIH0pXG5leHBvcnQgY2xhc3MgTmd0c0Vudmlyb25tZW50Q29udGVudCB7fVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndHMtZW52aXJvbm1lbnQnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5ndHMtZW52aXJvbm1lbnQtZ3JvdW5kXG4gICAgICAgICAgICAqbmdJZj1cImdldCgnZ3JvdW5kJyk7IGVsc2Ugbm9Hcm91bmRcIlxuICAgICAgICAgICAgW2dyb3VuZF09XCJnZXQoJ2dyb3VuZCcpXCJcbiAgICAgICAgICAgIFttYXBdPVwiZ2V0KCdtYXAnKVwiXG4gICAgICAgICAgICBbc2NlbmVdPVwiZ2V0KCdzY2VuZScpXCJcbiAgICAgICAgICAgIFtibHVyXT1cImdldCgnYmx1cicpXCJcbiAgICAgICAgICAgIFtiYWNrZ3JvdW5kXT1cImdldCgnYmFja2dyb3VuZCcpXCJcbiAgICAgICAgICAgIFtwcmVzZXRdPVwiZ2V0KCdwcmVzZXQnKVwiXG4gICAgICAgICAgICBbZnJhbWVzXT1cImdldCgnZnJhbWVzJylcIlxuICAgICAgICAgICAgW2Zhcl09XCJnZXQoJ2ZhcicpXCJcbiAgICAgICAgICAgIFtuZWFyXT1cImdldCgnbmVhcicpXCJcbiAgICAgICAgICAgIFtyZXNvbHV0aW9uXT1cImdldCgncmVzb2x1dGlvbicpXCJcbiAgICAgICAgICAgIFtmaWxlc109XCJnZXQoJ2ZpbGVzJylcIlxuICAgICAgICAgICAgW3BhdGhdPVwiZ2V0KCdwYXRoJylcIlxuICAgICAgICAgICAgW2V4dGVuc2lvbnNdPVwiZ2V0KCdleHRlbnNpb25zJylcIlxuICAgICAgICAvPlxuICAgICAgICA8bmctdGVtcGxhdGUgI25vR3JvdW5kPlxuICAgICAgICAgICAgPG5ndHMtZW52aXJvbm1lbnQtbWFwXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJnZXQoJ21hcCcpOyBlbHNlIG5vTWFwXCJcbiAgICAgICAgICAgICAgICBbbWFwXT1cImdldCgnbWFwJylcIlxuICAgICAgICAgICAgICAgIFtzY2VuZV09XCJnZXQoJ3NjZW5lJylcIlxuICAgICAgICAgICAgICAgIFtibHVyXT1cImdldCgnYmx1cicpXCJcbiAgICAgICAgICAgICAgICBbYmFja2dyb3VuZF09XCJnZXQoJ2JhY2tncm91bmQnKVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub01hcD5cbiAgICAgICAgICAgICAgICA8bmd0cy1lbnZpcm9ubWVudC1wb3J0YWxcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJjb250ZW50OyBlbHNlIG5vUG9ydGFsXCJcbiAgICAgICAgICAgICAgICAgICAgW2ZyYW1lc109XCJnZXQoJ2ZyYW1lcycpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Zhcl09XCJnZXQoJ2ZhcicpXCJcbiAgICAgICAgICAgICAgICAgICAgW25lYXJdPVwiZ2V0KCduZWFyJylcIlxuICAgICAgICAgICAgICAgICAgICBbcmVzb2x1dGlvbl09XCJnZXQoJ3Jlc29sdXRpb24nKVwiXG4gICAgICAgICAgICAgICAgICAgIFttYXBdPVwiZ2V0KCdtYXAnKVwiXG4gICAgICAgICAgICAgICAgICAgIFtiYWNrZ3JvdW5kXT1cImdldCgnYmFja2dyb3VuZCcpXCJcbiAgICAgICAgICAgICAgICAgICAgW2JsdXJdPVwiZ2V0KCdibHVyJylcIlxuICAgICAgICAgICAgICAgICAgICBbc2NlbmVdPVwiZ2V0KCdzY2VuZScpXCJcbiAgICAgICAgICAgICAgICAgICAgW2ZpbGVzXT1cImdldCgnZmlsZXMnKVwiXG4gICAgICAgICAgICAgICAgICAgIFtwYXRoXT1cImdldCgncGF0aCcpXCJcbiAgICAgICAgICAgICAgICAgICAgW3ByZXNldF09XCJnZXQoJ3ByZXNldCcpXCJcbiAgICAgICAgICAgICAgICAgICAgW2V4dGVuc2lvbnNdPVwiZ2V0KCdleHRlbnNpb25zJylcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIiAvPlxuICAgICAgICAgICAgICAgIDwvbmd0cy1lbnZpcm9ubWVudC1wb3J0YWw+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub1BvcnRhbD5cbiAgICAgICAgICAgICAgICAgICAgPG5ndHMtZW52aXJvbm1lbnQtY3ViZVxuICAgICAgICAgICAgICAgICAgICAgICAgW2ZyYW1lc109XCJnZXQoJ2ZyYW1lcycpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmYXJdPVwiZ2V0KCdmYXInKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmVhcl09XCJnZXQoJ25lYXInKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcmVzb2x1dGlvbl09XCJnZXQoJ3Jlc29sdXRpb24nKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbWFwXT1cImdldCgnbWFwJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2JhY2tncm91bmRdPVwiZ2V0KCdiYWNrZ3JvdW5kJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2JsdXJdPVwiZ2V0KCdibHVyJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3NjZW5lXT1cImdldCgnc2NlbmUnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZmlsZXNdPVwiZ2V0KCdmaWxlcycpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwYXRoXT1cImdldCgncGF0aCcpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwcmVzZXRdPVwiZ2V0KCdwcmVzZXQnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZXh0ZW5zaW9uc109XCJnZXQoJ2V4dGVuc2lvbnMnKVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgYCxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE5ndHNFbnZpcm9ubWVudE1hcCxcbiAgICAgICAgTmd0c0Vudmlyb25tZW50R3JvdW5kLFxuICAgICAgICBOZ3RzRW52aXJvbm1lbnRDdWJlLFxuICAgICAgICBOZ3RzRW52aXJvbm1lbnRQb3J0YWwsXG4gICAgICAgIE5nSWYsXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgXSxcbiAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNFbnZpcm9ubWVudCBleHRlbmRzIE5ndHNFbnZpcm9ubWVudElucHV0cyB7XG4gICAgQENvbnRlbnRDaGlsZChOZ3RzRW52aXJvbm1lbnRDb250ZW50LCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pIGNvbnRlbnQ/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { injectNgtDestroy, injectNgtLoader, injectNgtRef, is } from 'angular-three';
|
|
2
|
+
import { debounceTime, isObservable, map, of, takeUntil } from 'rxjs';
|
|
3
|
+
import { CubeReflectionMapping, CubeTextureLoader, EquirectangularReflectionMapping, LinearEncoding, sRGBEncoding, } from 'three';
|
|
4
|
+
import { RGBELoader } from 'three-stdlib';
|
|
5
|
+
import { ngtsEnvironmentPresetsObj } from './assets';
|
|
6
|
+
function resolveScene(scene) {
|
|
7
|
+
return is.ref(scene) ? scene.nativeElement : scene;
|
|
8
|
+
}
|
|
9
|
+
export function setEnvProps(background, scene, defaultScene, texture, blur = 0) {
|
|
10
|
+
const target = resolveScene(scene || defaultScene);
|
|
11
|
+
const oldbg = target.background;
|
|
12
|
+
const oldenv = target.environment;
|
|
13
|
+
const oldBlur = target.backgroundBlurriness || 0;
|
|
14
|
+
if (background !== 'only')
|
|
15
|
+
target.environment = texture;
|
|
16
|
+
if (background)
|
|
17
|
+
target.background = texture;
|
|
18
|
+
if (background && target.backgroundBlurriness !== undefined)
|
|
19
|
+
target.backgroundBlurriness = blur;
|
|
20
|
+
return () => {
|
|
21
|
+
if (background !== 'only')
|
|
22
|
+
target.environment = oldenv;
|
|
23
|
+
if (background)
|
|
24
|
+
target.background = oldbg;
|
|
25
|
+
if (background && target.backgroundBlurriness !== undefined)
|
|
26
|
+
target.backgroundBlurriness = oldBlur;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
const CUBEMAP_ROOT = 'https://market-assets.fra1.cdn.digitaloceanspaces.com/market-assets/hdris/';
|
|
30
|
+
export function injectNgtsEnvironment(paramsFactory) {
|
|
31
|
+
let p = {
|
|
32
|
+
files: ['/px.png', '/nx.png', '/py.png', '/ny.png', '/pz.png', '/nz.png'],
|
|
33
|
+
path: '',
|
|
34
|
+
preset: undefined,
|
|
35
|
+
encoding: undefined,
|
|
36
|
+
};
|
|
37
|
+
const params = paramsFactory(p);
|
|
38
|
+
const params$ = isObservable(params) ? params : of(params);
|
|
39
|
+
const textureRef = injectNgtRef();
|
|
40
|
+
const { destroy$ } = injectNgtDestroy(() => {
|
|
41
|
+
textureRef.nativeElement?.dispose();
|
|
42
|
+
});
|
|
43
|
+
const loaderResult = injectNgtLoader((inputs) => (Array.isArray(inputs) ? CubeTextureLoader : RGBELoader), params$.pipe(debounceTime(0), map((data) => {
|
|
44
|
+
p = data;
|
|
45
|
+
return p;
|
|
46
|
+
}), map((data) => {
|
|
47
|
+
if (data.preset) {
|
|
48
|
+
if (!(data.preset in ngtsEnvironmentPresetsObj))
|
|
49
|
+
throw new Error('Preset must be one of: ' + Object.keys(ngtsEnvironmentPresetsObj).join(', '));
|
|
50
|
+
data.files = ngtsEnvironmentPresetsObj[data.preset];
|
|
51
|
+
data.path = CUBEMAP_ROOT;
|
|
52
|
+
}
|
|
53
|
+
return Array.isArray(data.files) ? [data.files] : data.files;
|
|
54
|
+
})), (loader) => {
|
|
55
|
+
if (p.path) {
|
|
56
|
+
loader.setPath(p.path);
|
|
57
|
+
}
|
|
58
|
+
if (p.extensions) {
|
|
59
|
+
p.extensions(loader);
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
loaderResult.pipe(takeUntil(destroy$)).subscribe((results) => {
|
|
63
|
+
const texture = Array.isArray(p.files) ? results[0] : results;
|
|
64
|
+
texture.mapping = Array.isArray(p.files) ? CubeReflectionMapping : EquirectangularReflectionMapping;
|
|
65
|
+
texture.encoding = (p.encoding ?? Array.isArray(p.files)) ? sRGBEncoding : LinearEncoding;
|
|
66
|
+
textureRef.nativeElement = texture;
|
|
67
|
+
});
|
|
68
|
+
return textureRef;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9zdGFnaW5nL3NyYy9saWIvZW52aXJvbm1lbnQvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xGLE9BQU8sRUFDSCxxQkFBcUIsRUFFckIsaUJBQWlCLEVBQ2pCLGdDQUFnQyxFQUNoQyxjQUFjLEVBQ2QsWUFBWSxHQUVmLE1BQU0sT0FBTyxDQUFDO0FBQ2YsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFHckQsU0FBUyxZQUFZLENBQUMsS0FBNEM7SUFDOUQsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDdkQsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQ3ZCLFVBQTRCLEVBQzVCLEtBQXdELEVBQ3hELFlBQXlCLEVBQ3pCLE9BQXNCLEVBQ3RCLElBQUksR0FBRyxDQUFDO0lBRVIsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLEtBQUssSUFBSSxZQUFZLENBQUMsQ0FBQztJQUNuRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO0lBQ2hDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUM7SUFDbEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixJQUFJLENBQUMs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QU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzFCO1FBQ0QsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFO1lBQ2QsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN4QjtJQUNMLENBQUMsQ0FDSixDQUFDO0lBRUYsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUN6RCxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFNLENBQUMsQ0FBQyxDQUFDLENBQUUsT0FBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQzFFLE9BQU8sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxnQ0FBZ0MsQ0FBQztRQUNyRyxPQUFPLENBQUMsUUFBUSxHQUFHLENBQUEsQ0FBQyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFNLENBQUMsRUFBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUM7UUFFekYsVUFBVSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUM7SUFDdkMsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLFVBQVUsQ0FBQztBQUN0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0Tmd0RGVzdHJveSwgaW5qZWN0Tmd0TG9hZGVyLCBpbmplY3ROZ3RSZWYsIGlzIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGlzT2JzZXJ2YWJsZSwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICAgIEN1YmVSZWZsZWN0aW9uTWFwcGluZyxcbiAgICBDdWJlVGV4dHVyZSxcbiAgICBDdWJlVGV4dHVyZUxvYWRlcixcbiAgICBFcXVpcmVjdGFuZ3VsYXJSZWZsZWN0aW9uTWFwcGluZyxcbiAgICBMaW5lYXJFbmNvZGluZyxcbiAgICBzUkdCRW5jb2RpbmcsXG4gICAgVGV4dHVyZSxcbn0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgUkdCRUxvYWRlciB9IGZyb20gJ3RocmVlLXN0ZGxpYic7XG5pbXBvcnQgeyBuZ3RzRW52aXJvbm1lbnRQcmVzZXRzT2JqIH0gZnJvbSAnLi9hc3NldHMnO1xuaW1wb3J0IHsgTmd0c0Vudmlyb25tZW50SW5wdXRzIH0gZnJvbSAnLi9lbnZpcm9ubWVudC1pbnB1dHMnO1xuXG5mdW5jdGlvbiByZXNvbHZlU2NlbmUoc2NlbmU6IFRIUkVFLlNjZW5lIHwgRWxlbWVudFJlZjxUSFJFRS5TY2VuZT4pIHtcbiAgICByZXR1cm4gaXMucmVmKHNjZW5lKSA/IHNjZW5lLm5hdGl2ZUVsZW1lbnQgOiBzY2VuZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEVudlByb3BzKFxuICAgIGJhY2tncm91bmQ6IGJvb2xlYW4gfCAnb25seScsXG4gICAgc2NlbmU6IFRIUkVFLlNjZW5lIHwgRWxlbWVudFJlZjxUSFJFRS5TY2VuZT4gfCB1bmRlZmluZWQsXG4gICAgZGVmYXVsdFNjZW5lOiBUSFJFRS5TY2VuZSxcbiAgICB0ZXh0dXJlOiBUSFJFRS5UZXh0dXJlLFxuICAgIGJsdXIgPSAwXG4pIHtcbiAgICBjb25zdCB0YXJnZXQgPSByZXNvbHZlU2NlbmUoc2NlbmUgfHwgZGVmYXVsdFNjZW5lKTtcbiAgICBjb25zdCBvbGRiZyA9IHRhcmdldC5iYWNrZ3JvdW5kO1xuICAgIGNvbnN0IG9sZGVudiA9IHRhcmdldC5lbnZpcm9ubWVudDtcbiAgICBjb25zdCBvbGRCbHVyID0gdGFyZ2V0LmJhY2tncm91bmRCbHVycmluZXNzIHx8IDA7XG5cbiAgICBpZiAoYmFja2dyb3VuZCAhPT0gJ29ubHknKSB0YXJnZXQuZW52aXJvbm1lbnQgPSB0ZXh0dXJlO1xuICAgIGlmIChiYWNrZ3JvdW5kKSB0YXJnZXQuYmFja2dyb3VuZCA9IHRleHR1cmU7XG4gICAgaWYgKGJhY2tncm91bmQgJiYgdGFyZ2V0LmJhY2tncm91bmRCbHVycmluZXNzICE9PSB1bmRlZmluZWQpIHRhcmdldC5iYWNrZ3JvdW5kQmx1cnJpbmVzcyA9IGJsdXI7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBpZiAoYmFja2dyb3VuZCAhPT0gJ29ubHknKSB0YXJnZXQuZW52aXJvbm1lbnQgPSBvbGRlbnY7XG4gICAgICAgIGlmIChiYWNrZ3JvdW5kKSB0YXJnZXQuYmFja2dyb3VuZCA9IG9sZGJnO1xuICAgICAgICBpZiAoYmFja2dyb3VuZCAmJiB0YXJnZXQuYmFja2dyb3VuZEJsdXJyaW5lc3MgIT09IHVuZGVmaW5lZCkgdGFyZ2V0LmJhY2tncm91bmRCbHVycmluZXNzID0gb2xkQmx1cjtcbiAgICB9O1xufVxuXG50eXBlIE5ndHNJbmplY3RFbnZpcm9ubWVudFBhcmFtcyA9IFBhcnRpYWw8XG4gICAgUGljazxOZ3RzRW52aXJvbm1lbnRJbnB1dHMsICdmaWxlcycgfCAncGF0aCcgfCAncHJlc2V0JyB8ICdleHRlbnNpb25zJyB8ICdlbmNvZGluZyc+XG4+O1xuXG5jb25zdCBDVUJFTUFQX1JPT1QgPSAnaHR0cHM6Ly9tYXJrZXQtYXNzZXRzLmZyYTEuY2RuLmRpZ2l0YWxvY2VhbnNwYWNlcy5jb20vbWFya2V0LWFzc2V0cy9oZHJpcy8nO1xuZXhwb3J0IGZ1bmN0aW9uIGluamVjdE5ndHNFbnZpcm9ubWVudChcbiAgICBwYXJhbXNGYWN0b3J5OiAoXG4gICAgICAgIGRlZmF1bHRQYXJhbXM6IE5ndHNJbmplY3RFbnZpcm9ubWVudFBhcmFtc1xuICAgICkgPT4gTmd0c0luamVjdEVudmlyb25tZW50UGFyYW1zIHwgT2JzZXJ2YWJsZTxOZ3RzSW5qZWN0RW52aXJvbm1lbnRQYXJhbXM+XG4pIHtcbiAgICBsZXQgcCA9IHtcbiAgICAgICAgZmlsZXM6IFsnL3B4LnBuZycsICcvbngucG5nJywgJy9weS5wbmcnLCAnL255LnBuZycsICcvcHoucG5nJywgJy9uei5wbmcnXSxcbiAgICAgICAgcGF0aDogJycsXG4gICAgICAgIHByZXNldDogdW5kZWZpbmVkLFxuICAgICAgICBlbmNvZGluZzogdW5kZWZpbmVkLFxuICAgIH0gYXMgTmd0c0luamVjdEVudmlyb25tZW50UGFyYW1zO1xuICAgIGNvbnN0IHBhcmFtcyA9IHBhcmFtc0ZhY3RvcnkocCk7XG4gICAgY29uc3QgcGFyYW1zJCA9IGlzT2JzZXJ2YWJsZShwYXJhbXMpID8gcGFyYW1zIDogb2YocGFyYW1zKTtcblxuICAgIGNvbnN0IHRleHR1cmVSZWYgPSBpbmplY3ROZ3RSZWY8VGV4dHVyZSB8IEN1YmVUZXh0dXJlPigpO1xuICAgIGNvbnN0IHsgZGVzdHJveSQgfSA9IGluamVjdE5ndERlc3Ryb3koKCkgPT4ge1xuICAgICAgICB0ZXh0dXJlUmVmLm5hdGl2ZUVsZW1lbnQ/LmRpc3Bvc2UoKTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGxvYWRlclJlc3VsdCA9IGluamVjdE5ndExvYWRlcihcbiAgICAgICAgKGlucHV0cykgPT4gKEFycmF5LmlzQXJyYXkoaW5wdXRzKSA/IEN1YmVUZXh0dXJlTG9hZGVyIDogUkdCRUxvYWRlcikgYXMgbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55LFxuICAgICAgICBwYXJhbXMkLnBpcGUoXG4gICAgICAgICAgICBkZWJvdW5jZVRpbWUoMCksXG4gICAgICAgICAgICBtYXAoKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICBwID0gZGF0YTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcDtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbWFwKChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGRhdGEucHJlc2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghKGRhdGEucHJlc2V0IGluIG5ndHNFbnZpcm9ubWVudFByZXNldHNPYmopKVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdQcmVzZXQgbXVzdCBiZSBvbmUgb2Y6ICcgKyBPYmplY3Qua2V5cyhuZ3RzRW52aXJvbm1lbnRQcmVzZXRzT2JqKS5qb2luKCcsICcpKTtcbiAgICAgICAgICAgICAgICAgICAgZGF0YS5maWxlcyA9IG5ndHNFbnZpcm9ubWVudFByZXNldHNPYmpbZGF0YS5wcmVzZXRdO1xuICAgICAgICAgICAgICAgICAgICBkYXRhLnBhdGggPSBDVUJFTUFQX1JPT1Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KGRhdGEuZmlsZXMpID8gW2RhdGEuZmlsZXNdIDogKGRhdGEuZmlsZXMhIGFzIGFueSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApLFxuICAgICAgICAobG9hZGVyKSA9PiB7XG4gICAgICAgICAgICBpZiAocC5wYXRoKSB7XG4gICAgICAgICAgICAgICAgbG9hZGVyLnNldFBhdGgocC5wYXRoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChwLmV4dGVuc2lvbnMpIHtcbiAgICAgICAgICAgICAgICBwLmV4dGVuc2lvbnMobG9hZGVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICk7XG5cbiAgICBsb2FkZXJSZXN1bHQucGlwZSh0YWtlVW50aWwoZGVzdHJveSQpKS5zdWJzY3JpYmUoKHJlc3VsdHMpID0+IHtcbiAgICAgICAgY29uc3QgdGV4dHVyZSA9IEFycmF5LmlzQXJyYXkocC5maWxlcyEpID8gKHJlc3VsdHMgYXMgYW55W10pWzBdIDogcmVzdWx0cztcbiAgICAgICAgdGV4dHVyZS5tYXBwaW5nID0gQXJyYXkuaXNBcnJheShwLmZpbGVzISkgPyBDdWJlUmVmbGVjdGlvbk1hcHBpbmcgOiBFcXVpcmVjdGFuZ3VsYXJSZWZsZWN0aW9uTWFwcGluZztcbiAgICAgICAgdGV4dHVyZS5lbmNvZGluZyA9IHAuZW5jb2RpbmcgPz8gQXJyYXkuaXNBcnJheShwLmZpbGVzISkgPyBzUkdCRW5jb2RpbmcgOiBMaW5lYXJFbmNvZGluZztcblxuICAgICAgICB0ZXh0dXJlUmVmLm5hdGl2ZUVsZW1lbnQgPSB0ZXh0dXJlO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRleHR1cmVSZWY7XG59XG4iXX0=
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
|
|
2
|
+
import { extend, injectBeforeRender, injectNgtRef, NgtRxStore } from 'angular-three';
|
|
3
|
+
import * as THREE from 'three';
|
|
4
|
+
import { Group } from 'three';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
extend({ Group });
|
|
7
|
+
export class NgtsFloat extends NgtRxStore {
|
|
8
|
+
set speed(speed) {
|
|
9
|
+
this.set({ speed });
|
|
10
|
+
}
|
|
11
|
+
set rotationIntensity(rotationIntensity) {
|
|
12
|
+
this.set({ rotationIntensity });
|
|
13
|
+
}
|
|
14
|
+
set floatIntensity(floatIntensity) {
|
|
15
|
+
this.set({ floatIntensity });
|
|
16
|
+
}
|
|
17
|
+
set floatingRange(floatingRange) {
|
|
18
|
+
this.set({ floatingRange });
|
|
19
|
+
}
|
|
20
|
+
initialize() {
|
|
21
|
+
super.initialize();
|
|
22
|
+
this.set({ speed: 1, rotationIntensity: 1, floatIntensity: 1, floatingRange: [-0.1, 0.1] });
|
|
23
|
+
}
|
|
24
|
+
constructor() {
|
|
25
|
+
super();
|
|
26
|
+
this.offset = Math.random() * 10000;
|
|
27
|
+
this.floatRef = injectNgtRef();
|
|
28
|
+
injectBeforeRender(this.onBeforeRender.bind(this));
|
|
29
|
+
}
|
|
30
|
+
onBeforeRender({ clock }) {
|
|
31
|
+
if (!this.floatRef.nativeElement)
|
|
32
|
+
return;
|
|
33
|
+
const { speed, floatingRange, floatIntensity, rotationIntensity } = this.get();
|
|
34
|
+
const t = this.offset + clock.getElapsedTime();
|
|
35
|
+
this.floatRef.nativeElement.rotation.x = (Math.cos((t / 4) * speed) / 8) * rotationIntensity;
|
|
36
|
+
this.floatRef.nativeElement.rotation.y = (Math.sin((t / 4) * speed) / 8) * rotationIntensity;
|
|
37
|
+
this.floatRef.nativeElement.rotation.z = (Math.sin((t / 4) * speed) / 20) * rotationIntensity;
|
|
38
|
+
let yPosition = Math.sin((t / 4) * speed) / 10;
|
|
39
|
+
yPosition = THREE.MathUtils.mapLinear(yPosition, -0.1, 0.1, floatingRange[0] ?? -0.1, floatingRange[1] ?? 0.1);
|
|
40
|
+
this.floatRef.nativeElement.position.y = yPosition * floatIntensity;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
NgtsFloat.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsFloat, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
44
|
+
NgtsFloat.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.3", type: NgtsFloat, isStandalone: true, selector: "ngts-float", inputs: { floatRef: "floatRef", speed: "speed", rotationIntensity: "rotationIntensity", floatIntensity: "floatIntensity", floatingRange: "floatingRange" }, usesInheritance: true, ngImport: i0, template: `
|
|
45
|
+
<ngt-group ngtCompound>
|
|
46
|
+
<ngt-group [ref]="floatRef">
|
|
47
|
+
<ng-content />
|
|
48
|
+
</ngt-group>
|
|
49
|
+
</ngt-group>
|
|
50
|
+
`, isInline: true });
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: NgtsFloat, decorators: [{
|
|
52
|
+
type: Component,
|
|
53
|
+
args: [{
|
|
54
|
+
selector: 'ngts-float',
|
|
55
|
+
standalone: true,
|
|
56
|
+
template: `
|
|
57
|
+
<ngt-group ngtCompound>
|
|
58
|
+
<ngt-group [ref]="floatRef">
|
|
59
|
+
<ng-content />
|
|
60
|
+
</ngt-group>
|
|
61
|
+
</ngt-group>
|
|
62
|
+
`,
|
|
63
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
64
|
+
}]
|
|
65
|
+
}], ctorParameters: function () { return []; }, propDecorators: { floatRef: [{
|
|
66
|
+
type: Input
|
|
67
|
+
}], speed: [{
|
|
68
|
+
type: Input
|
|
69
|
+
}], rotationIntensity: [{
|
|
70
|
+
type: Input
|
|
71
|
+
}], floatIntensity: [{
|
|
72
|
+
type: Input
|
|
73
|
+
}], floatingRange: [{
|
|
74
|
+
type: Input
|
|
75
|
+
}] } });
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvYXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9zdGFnaW5nL3NyYy9saWIvZmxvYXQvZmxvYXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFFLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQWtCLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRyxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sT0FBTyxDQUFDOztBQUU5QixNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0FBY2xCLE1BQU0sT0FBTyxTQUFVLFNBQVEsVUFBVTtJQUtyQyxJQUFhLEtBQUssQ0FBQyxLQUFhO1FBQzVCLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFhLGlCQUFpQixDQUFDLGlCQUF5QjtRQUNwRCxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFhLGNBQWMsQ0FBQyxjQUFzQjtRQUM5QyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBYSxhQUFhLENBQUMsYUFBaUM7UUFDeEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVRLFVBQVU7UUFDZixLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxFQUFFLGNBQWMsRUFBRSxDQUFDLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFFRDtRQUNJLEtBQUssRUFBRSxDQUFDO1FBMUJLLFdBQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBRXZDLGFBQVEsR0FBRyxZQUFZLEVBQWUsQ0FBQztRQXlCNUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRU8sY0FBYyxDQUFDLEVBQUUsS0FBSyxFQUFrQjtRQUM1QyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhO1lBQUUsT0FBTztRQUN6QyxNQUFNLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDL0UsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDL0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLENBQUM7UUFDN0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLENBQUM7UUFDN0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsaUJBQWlCLENBQUM7UUFDOUYsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDL0MsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUMvRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLFNBQVMsR0FBRyxjQUFjLENBQUM7SUFDeEUsQ0FBQzs7c0dBekNRLFNBQVM7MEZBQVQsU0FBUyx5UEFUUjs7Ozs7O0tBTVQ7MkZBR1EsU0FBUztrQkFackIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsWUFBWTtvQkFDdEIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7Ozs7O0tBTVQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ3BDOzBFQUlZLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRU8sS0FBSztzQkFBakIsS0FBSztnQkFJTyxpQkFBaUI7c0JBQTdCLEtBQUs7Z0JBSU8sY0FBYztzQkFBMUIsS0FBSztnQkFJTyxhQUFhO3NCQUF6QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZXh0ZW5kLCBpbmplY3RCZWZvcmVSZW5kZXIsIGluamVjdE5ndFJlZiwgTmd0UmVuZGVyU3RhdGUsIE5ndFJ4U3RvcmUgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IEdyb3VwIH0gZnJvbSAndGhyZWUnO1xuXG5leHRlbmQoeyBHcm91cCB9KTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3RzLWZsb2F0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxuZ3QtZ3JvdXAgbmd0Q29tcG91bmQ+XG4gICAgICAgICAgICA8bmd0LWdyb3VwIFtyZWZdPVwiZmxvYXRSZWZcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudCAvPlxuICAgICAgICAgICAgPC9uZ3QtZ3JvdXA+XG4gICAgICAgIDwvbmd0LWdyb3VwPlxuICAgIGAsXG4gICAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzRmxvYXQgZXh0ZW5kcyBOZ3RSeFN0b3JlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG9mZnNldCA9IE1hdGgucmFuZG9tKCkgKiAxMDAwMDtcblxuICAgIEBJbnB1dCgpIGZsb2F0UmVmID0gaW5qZWN0Tmd0UmVmPFRIUkVFLkdyb3VwPigpO1xuXG4gICAgQElucHV0KCkgc2V0IHNwZWVkKHNwZWVkOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBzcGVlZCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgcm90YXRpb25JbnRlbnNpdHkocm90YXRpb25JbnRlbnNpdHk6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IHJvdGF0aW9uSW50ZW5zaXR5IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBmbG9hdEludGVuc2l0eShmbG9hdEludGVuc2l0eTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZmxvYXRJbnRlbnNpdHkgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGZsb2F0aW5nUmFuZ2UoZmxvYXRpbmdSYW5nZTogW251bWJlcj8sIG51bWJlcj9dKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZmxvYXRpbmdSYW5nZSB9KTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5pbml0aWFsaXplKCk7XG4gICAgICAgIHRoaXMuc2V0KHsgc3BlZWQ6IDEsIHJvdGF0aW9uSW50ZW5zaXR5OiAxLCBmbG9hdEludGVuc2l0eTogMSwgZmxvYXRpbmdSYW5nZTogWy0wLjEsIDAuMV0gfSk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGluamVjdEJlZm9yZVJlbmRlcih0aGlzLm9uQmVmb3JlUmVuZGVyLmJpbmQodGhpcykpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25CZWZvcmVSZW5kZXIoeyBjbG9jayB9OiBOZ3RSZW5kZXJTdGF0ZSkge1xuICAgICAgICBpZiAoIXRoaXMuZmxvYXRSZWYubmF0aXZlRWxlbWVudCkgcmV0dXJuO1xuICAgICAgICBjb25zdCB7IHNwZWVkLCBmbG9hdGluZ1JhbmdlLCBmbG9hdEludGVuc2l0eSwgcm90YXRpb25JbnRlbnNpdHkgfSA9IHRoaXMuZ2V0KCk7XG4gICAgICAgIGNvbnN0IHQgPSB0aGlzLm9mZnNldCArIGNsb2NrLmdldEVsYXBzZWRUaW1lKCk7XG4gICAgICAgIHRoaXMuZmxvYXRSZWYubmF0aXZlRWxlbWVudC5yb3RhdGlvbi54ID0gKE1hdGguY29zKCh0IC8gNCkgKiBzcGVlZCkgLyA4KSAqIHJvdGF0aW9uSW50ZW5zaXR5O1xuICAgICAgICB0aGlzLmZsb2F0UmVmLm5hdGl2ZUVsZW1lbnQucm90YXRpb24ueSA9IChNYXRoLnNpbigodCAvIDQpICogc3BlZWQpIC8gOCkgKiByb3RhdGlvbkludGVuc2l0eTtcbiAgICAgICAgdGhpcy5mbG9hdFJlZi5uYXRpdmVFbGVtZW50LnJvdGF0aW9uLnogPSAoTWF0aC5zaW4oKHQgLyA0KSAqIHNwZWVkKSAvIDIwKSAqIHJvdGF0aW9uSW50ZW5zaXR5O1xuICAgICAgICBsZXQgeVBvc2l0aW9uID0gTWF0aC5zaW4oKHQgLyA0KSAqIHNwZWVkKSAvIDEwO1xuICAgICAgICB5UG9zaXRpb24gPSBUSFJFRS5NYXRoVXRpbHMubWFwTGluZWFyKHlQb3NpdGlvbiwgLTAuMSwgMC4xLCBmbG9hdGluZ1JhbmdlWzBdID8/IC0wLjEsIGZsb2F0aW5nUmFuZ2VbMV0gPz8gMC4xKTtcbiAgICAgICAgdGhpcy5mbG9hdFJlZi5uYXRpdmVFbGVtZW50LnBvc2l0aW9uLnkgPSB5UG9zaXRpb24gKiBmbG9hdEludGVuc2l0eTtcbiAgICB9XG59XG4iXX0=
|