angular-three-soba 1.10.0 → 1.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/abstractions/index.d.ts +1 -0
  2. package/abstractions/lib/edges/edges.d.ts +18 -0
  3. package/cameras/index.d.ts +1 -0
  4. package/cameras/lib/camera/camera-content.d.ts +1 -1
  5. package/cameras/lib/cube-camera/cube-camera.d.ts +27 -0
  6. package/esm2020/abstractions/index.mjs +2 -1
  7. package/esm2020/abstractions/lib/edges/edges.mjs +95 -0
  8. package/esm2020/abstractions/lib/gizmo-helper/gizmo-helper.mjs +8 -3
  9. package/esm2020/abstractions/lib/text-3d/text-3d.mjs +1 -1
  10. package/esm2020/cameras/index.mjs +2 -1
  11. package/esm2020/cameras/lib/camera/camera-content.mjs +1 -1
  12. package/esm2020/cameras/lib/cube-camera/cube-camera.mjs +130 -0
  13. package/esm2020/materials/index.mjs +3 -1
  14. package/esm2020/materials/lib/mesh-refraction-material/mesh-refraction-material.mjs +157 -0
  15. package/esm2020/materials/lib/mesh-transmission-material/mesh-transmission-material.mjs +237 -0
  16. package/esm2020/misc/lib/fbo/fbo.mjs +5 -4
  17. package/esm2020/performance/lib/detailed/detailed.mjs +6 -3
  18. package/esm2020/shaders/index.mjs +6 -1
  19. package/esm2020/shaders/lib/caustics-material/caustics-material.mjs +128 -0
  20. package/esm2020/shaders/lib/caustics-projection-material/caustics-projection-material.mjs +33 -0
  21. package/esm2020/shaders/lib/discard-material/discard-material.mjs +3 -0
  22. package/esm2020/shaders/lib/mesh-transmission-material/mesh-transmission-material.mjs +268 -0
  23. package/esm2020/shaders/lib/soft-shadow-material/soft-shadow-material.mjs +33 -0
  24. package/esm2020/staging/index.mjs +2 -1
  25. package/esm2020/staging/lib/accumulative-shadows/accumulative-shadows.mjs +7 -38
  26. package/esm2020/staging/lib/accumulative-shadows/progressive-light-map.mjs +2 -3
  27. package/esm2020/staging/lib/accumulative-shadows/randomized-lights.mjs +6 -6
  28. package/esm2020/staging/lib/caustics/caustics.mjs +363 -0
  29. package/esm2020/staging/lib/center/center.mjs +6 -6
  30. package/fesm2015/angular-three-soba-abstractions.mjs +98 -4
  31. package/fesm2015/angular-three-soba-abstractions.mjs.map +1 -1
  32. package/fesm2015/angular-three-soba-cameras.mjs +127 -4
  33. package/fesm2015/angular-three-soba-cameras.mjs.map +1 -1
  34. package/fesm2015/angular-three-soba-materials.mjs +386 -2
  35. package/fesm2015/angular-three-soba-materials.mjs.map +1 -1
  36. package/fesm2015/angular-three-soba-misc.mjs +4 -3
  37. package/fesm2015/angular-three-soba-misc.mjs.map +1 -1
  38. package/fesm2015/angular-three-soba-performance.mjs +5 -2
  39. package/fesm2015/angular-three-soba-performance.mjs.map +1 -1
  40. package/fesm2015/angular-three-soba-shaders.mjs +485 -31
  41. package/fesm2015/angular-three-soba-shaders.mjs.map +1 -1
  42. package/fesm2015/angular-three-soba-staging.mjs +376 -53
  43. package/fesm2015/angular-three-soba-staging.mjs.map +1 -1
  44. package/fesm2020/angular-three-soba-abstractions.mjs +98 -4
  45. package/fesm2020/angular-three-soba-abstractions.mjs.map +1 -1
  46. package/fesm2020/angular-three-soba-cameras.mjs +127 -4
  47. package/fesm2020/angular-three-soba-cameras.mjs.map +1 -1
  48. package/fesm2020/angular-three-soba-materials.mjs +384 -2
  49. package/fesm2020/angular-three-soba-materials.mjs.map +1 -1
  50. package/fesm2020/angular-three-soba-misc.mjs +4 -3
  51. package/fesm2020/angular-three-soba-misc.mjs.map +1 -1
  52. package/fesm2020/angular-three-soba-performance.mjs +5 -2
  53. package/fesm2020/angular-three-soba-performance.mjs.map +1 -1
  54. package/fesm2020/angular-three-soba-shaders.mjs +491 -34
  55. package/fesm2020/angular-three-soba-shaders.mjs.map +1 -1
  56. package/fesm2020/angular-three-soba-staging.mjs +375 -53
  57. package/fesm2020/angular-three-soba-staging.mjs.map +1 -1
  58. package/materials/index.d.ts +2 -0
  59. package/materials/lib/mesh-refraction-material/mesh-refraction-material.d.ts +28 -0
  60. package/materials/lib/mesh-transmission-material/mesh-transmission-material.d.ts +46 -0
  61. package/misc/lib/fbo/fbo.d.ts +8 -6
  62. package/package.json +3 -4
  63. package/performance/lib/detailed/detailed.d.ts +2 -1
  64. package/plugin/package.json +1 -1
  65. package/shaders/index.d.ts +5 -0
  66. package/shaders/lib/caustics-material/caustics-material.d.ts +4 -0
  67. package/shaders/lib/caustics-projection-material/caustics-projection-material.d.ts +4 -0
  68. package/shaders/lib/discard-material/discard-material.d.ts +3 -0
  69. package/shaders/lib/mesh-transmission-material/mesh-transmission-material.d.ts +25 -0
  70. package/shaders/lib/soft-shadow-material/soft-shadow-material.d.ts +10 -0
  71. package/staging/index.d.ts +1 -0
  72. package/staging/lib/accumulative-shadows/accumulative-shadows.d.ts +2 -8
  73. package/staging/lib/accumulative-shadows/randomized-lights.d.ts +1 -1
  74. package/staging/lib/caustics/caustics.d.ts +47 -0
  75. package/staging/lib/environment/environment-cube.d.ts +1 -1
  76. package/staging/lib/environment/environment-ground.d.ts +1 -1
  77. package/staging/lib/environment/utils.d.ts +1 -1
@@ -1,6 +1,7 @@
1
1
  export * from './lib/billboard/billboard';
2
2
  export * from './lib/catmull-rom-line/catmull-rom-line';
3
3
  export * from './lib/cubic-bezier-line/cubic-bezier-line';
4
+ export * from './lib/edges/edges';
4
5
  export * from './lib/gizmo-helper/gizmo-helper';
5
6
  export * from './lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube';
6
7
  export * from './lib/gizmo-helper/gizmo-viewport/gizmo-viewport';
@@ -0,0 +1,18 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { NgtAnyRecord, NgtRxStore } from 'angular-three';
3
+ import * as THREE from 'three';
4
+ import * as i0 from "@angular/core";
5
+ export declare class NgtsEdges extends NgtRxStore implements OnInit {
6
+ edgesRef: import("angular-three").NgtInjectedRef<THREE.LineSegments<THREE.BufferGeometry, THREE.Material | THREE.Material[]>>;
7
+ set threshold(threshold: number);
8
+ set color(color: THREE.ColorRepresentation);
9
+ set geometry(geometry: THREE.BufferGeometry);
10
+ set userData(userData: NgtAnyRecord);
11
+ withChildren: boolean;
12
+ readonly noop: () => null;
13
+ initialize(): void;
14
+ ngOnInit(): void;
15
+ private setupGeometry;
16
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgtsEdges, never>;
17
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgtsEdges, "ngts-edges", never, { "edgesRef": "edgesRef"; "threshold": "threshold"; "color": "color"; "geometry": "geometry"; "userData": "userData"; "withChildren": "withChildren"; }, {}, never, ["*"], true, never>;
18
+ }
@@ -1,3 +1,4 @@
1
1
  export * from './lib/camera/camera-content';
2
+ export * from './lib/cube-camera/cube-camera';
2
3
  export * from './lib/orthographic-camera/orthographic-camera';
3
4
  export * from './lib/perspective-camera/perspective-camera';
@@ -5,7 +5,7 @@ export declare class NgtsCameraContent {
5
5
  readonly template: TemplateRef<any>;
6
6
  ngtsCameraContent: boolean | '';
7
7
  static ngTemplateContextGuard(_: NgtsCameraContent, ctx: unknown): ctx is {
8
- target: THREE.WebGLRenderTarget;
8
+ fbo: THREE.WebGLRenderTarget;
9
9
  group?: THREE.Group;
10
10
  };
11
11
  static ɵfac: i0.ɵɵFactoryDeclaration<NgtsCameraContent, never>;
@@ -0,0 +1,27 @@
1
+ import { ElementRef } from '@angular/core';
2
+ import { NgtRxStore } from 'angular-three';
3
+ import * as THREE from 'three';
4
+ import { NgtsCameraContent } from '../camera/camera-content';
5
+ import * as i0 from "@angular/core";
6
+ export declare class NgtsCubeCamera extends NgtRxStore {
7
+ groupRef: ElementRef<THREE.Group>;
8
+ cameraContent?: NgtsCameraContent;
9
+ readonly cameraRef: import("angular-three").NgtInjectedRef<THREE.CubeCamera>;
10
+ /** Number of frames to render, Infinity */
11
+ set frames(frames: number);
12
+ /** Resolution of the FBO, 256 */
13
+ set resolution(resolution: number);
14
+ /** Camera near, 0.1 */
15
+ set near(near: number);
16
+ /** Camera far, 1000 */
17
+ set far(far: number);
18
+ /** Custom environment map that is temporarily set as the scenes background */
19
+ set envMap(envMap: THREE.Texture);
20
+ /** Custom fog that is temporarily set as the scenes fog */
21
+ set fog(fog: THREE.Fog | THREE.FogExp2);
22
+ private readonly store;
23
+ initialize(): void;
24
+ constructor();
25
+ static ɵfac: i0.ɵɵFactoryDeclaration<NgtsCubeCamera, never>;
26
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgtsCubeCamera, "ngts-cube-camera", never, { "frames": "frames"; "resolution": "resolution"; "near": "near"; "far": "far"; "envMap": "envMap"; "fog": "fog"; }, {}, ["cameraContent"], never, true, never>;
27
+ }
@@ -1,6 +1,7 @@
1
1
  export * from './lib/billboard/billboard';
2
2
  export * from './lib/catmull-rom-line/catmull-rom-line';
3
3
  export * from './lib/cubic-bezier-line/cubic-bezier-line';
4
+ export * from './lib/edges/edges';
4
5
  export * from './lib/gizmo-helper/gizmo-helper';
5
6
  export * from './lib/gizmo-helper/gizmo-viewcube/gizmo-viewcube';
6
7
  export * from './lib/gizmo-helper/gizmo-viewport/gizmo-viewport';
@@ -8,4 +9,4 @@ export * from './lib/line/line';
8
9
  export * from './lib/quadratic-bezier-line/quadratic-bezier-line';
9
10
  export * from './lib/text-3d/text-3d';
10
11
  export * from './lib/text/text';
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9hYnN0cmFjdGlvbnMvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9iaWxsYm9hcmQvYmlsbGJvYXJkJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NhdG11bGwtcm9tLWxpbmUvY2F0bXVsbC1yb20tbGluZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jdWJpYy1iZXppZXItbGluZS9jdWJpYy1iZXppZXItbGluZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9naXptby1oZWxwZXIvZ2l6bW8taGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2dpem1vLWhlbHBlci9naXptby12aWV3Y3ViZS9naXptby12aWV3Y3ViZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9naXptby1oZWxwZXIvZ2l6bW8tdmlld3BvcnQvZ2l6bW8tdmlld3BvcnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbGluZS9saW5lJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3F1YWRyYXRpYy1iZXppZXItbGluZS9xdWFkcmF0aWMtYmV6aWVyLWxpbmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGV4dC0zZC90ZXh0LTNkJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RleHQvdGV4dCc7XG4iXX0=
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9hYnN0cmFjdGlvbnMvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2JpbGxib2FyZC9iaWxsYm9hcmQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2F0bXVsbC1yb20tbGluZS9jYXRtdWxsLXJvbS1saW5lJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2N1YmljLWJlemllci1saW5lL2N1YmljLWJlemllci1saW5lJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VkZ2VzL2VkZ2VzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2dpem1vLWhlbHBlci9naXptby1oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZ2l6bW8taGVscGVyL2dpem1vLXZpZXdjdWJlL2dpem1vLXZpZXdjdWJlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2dpem1vLWhlbHBlci9naXptby12aWV3cG9ydC9naXptby12aWV3cG9ydCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9saW5lL2xpbmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcXVhZHJhdGljLWJlemllci1saW5lL3F1YWRyYXRpYy1iZXppZXItbGluZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZXh0LTNkL3RleHQtM2QnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGV4dC90ZXh0JztcbiJdfQ==
@@ -0,0 +1,95 @@
1
+ import { NgIf } from '@angular/common';
2
+ import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
3
+ import { extend, injectNgtRef, NgtRxStore } from 'angular-three';
4
+ import * as THREE from 'three';
5
+ import { LineBasicMaterial, LineSegments } from 'three';
6
+ import * as i0 from "@angular/core";
7
+ extend({ LineSegments, LineBasicMaterial });
8
+ export class NgtsEdges extends NgtRxStore {
9
+ constructor() {
10
+ super(...arguments);
11
+ this.edgesRef = injectNgtRef();
12
+ this.withChildren = false;
13
+ this.noop = () => null;
14
+ }
15
+ set threshold(threshold) {
16
+ this.set({ threshold });
17
+ }
18
+ set color(color) {
19
+ this.set({ color });
20
+ }
21
+ set geometry(geometry) {
22
+ this.set({ geometry });
23
+ }
24
+ set userData(userData) {
25
+ this.set({ userData });
26
+ }
27
+ initialize() {
28
+ super.initialize();
29
+ this.set({
30
+ threshold: 15,
31
+ color: 'black',
32
+ userData: {},
33
+ });
34
+ }
35
+ ngOnInit() {
36
+ this.setupGeometry();
37
+ }
38
+ setupGeometry() {
39
+ this.hold(this.edgesRef.$, (segments) => {
40
+ const parent = segments.parent;
41
+ if (parent) {
42
+ const geom = this.get('geometry') || parent.geometry;
43
+ const threshold = this.get('threshold');
44
+ if (geom !== segments.userData['currentGeom'] || threshold !== segments.userData['currentThreshold']) {
45
+ segments.userData['currentGeom'] = geom;
46
+ segments.userData['currentThreshold'] = threshold;
47
+ segments.geometry = new THREE.EdgesGeometry(geom, threshold);
48
+ }
49
+ }
50
+ });
51
+ }
52
+ }
53
+ NgtsEdges.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsEdges, deps: null, target: i0.ɵɵFactoryTarget.Component });
54
+ NgtsEdges.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: NgtsEdges, isStandalone: true, selector: "ngts-edges", inputs: { edgesRef: "edgesRef", threshold: "threshold", color: "color", geometry: "geometry", userData: "userData", withChildren: "withChildren" }, usesInheritance: true, ngImport: i0, template: `
55
+ <ngt-line-segments [ref]="edgesRef" [raycast]="noop" ngtCompound>
56
+ <ng-container *ngIf="withChildren; else noChildren">
57
+ <ng-content />
58
+ </ng-container>
59
+ <ng-template #noChildren>
60
+ <ngt-line-basic-material [color]="color" />
61
+ </ng-template>
62
+ </ngt-line-segments>
63
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
64
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsEdges, decorators: [{
65
+ type: Component,
66
+ args: [{
67
+ selector: 'ngts-edges',
68
+ standalone: true,
69
+ template: `
70
+ <ngt-line-segments [ref]="edgesRef" [raycast]="noop" ngtCompound>
71
+ <ng-container *ngIf="withChildren; else noChildren">
72
+ <ng-content />
73
+ </ng-container>
74
+ <ng-template #noChildren>
75
+ <ngt-line-basic-material [color]="color" />
76
+ </ng-template>
77
+ </ngt-line-segments>
78
+ `,
79
+ imports: [NgIf],
80
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
81
+ }]
82
+ }], propDecorators: { edgesRef: [{
83
+ type: Input
84
+ }], threshold: [{
85
+ type: Input
86
+ }], color: [{
87
+ type: Input
88
+ }], geometry: [{
89
+ type: Input
90
+ }], userData: [{
91
+ type: Input
92
+ }], withChildren: [{
93
+ type: Input
94
+ }] } });
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9hYnN0cmFjdGlvbnMvc3JjL2xpYi9lZGdlcy9lZGdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDakYsT0FBTyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQWdCLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLE1BQU0sT0FBTyxDQUFDOztBQUV4RCxNQUFNLENBQUMsRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO0FBa0I1QyxNQUFNLE9BQU8sU0FBVSxTQUFRLFVBQVU7SUFoQnpDOztRQWlCYSxhQUFRLEdBQUcsWUFBWSxFQUFzQixDQUFDO1FBa0I5QyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUVyQixTQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO0tBNkI5QjtJQS9DRyxJQUFhLFNBQVMsQ0FBQyxTQUFpQjtRQUNwQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBYSxLQUFLLENBQUMsS0FBZ0M7UUFDL0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQWEsUUFBUSxDQUFDLFFBQThCO1FBQ2hELElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFhLFFBQVEsQ0FBQyxRQUFzQjtRQUN4QyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBTVEsVUFBVTtRQUNmLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDO1lBQ0wsU0FBUyxFQUFFLEVBQUU7WUFDYixLQUFLLEVBQUUsT0FBTztZQUNkLFFBQVEsRUFBRSxFQUFFO1NBQ2YsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVPLGFBQWE7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ3BDLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUFvQixDQUFDO1lBQzdDLElBQUksTUFBTSxFQUFFO2dCQUNSLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQztnQkFDckQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDeEMsSUFBSSxJQUFJLEtBQUssUUFBUSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxTQUFTLEtBQUssUUFBUSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFO29CQUNsRyxRQUFRLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLElBQUksQ0FBQztvQkFDeEMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLFNBQVMsQ0FBQztvQkFDbEQsUUFBUSxDQUFDLFFBQVEsR0FBRyxJQUFJLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO2lCQUNoRTthQUNKO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOztzR0FqRFEsU0FBUzswRkFBVCxTQUFTLGlQQWJSOzs7Ozs7Ozs7S0FTVCw0REFDUyxJQUFJOzJGQUdMLFNBQVM7a0JBaEJyQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxZQUFZO29CQUN0QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7Ozs7Ozs7S0FTVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUM7b0JBQ2YsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ3BDOzhCQUVZLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRU8sU0FBUztzQkFBckIsS0FBSztnQkFJTyxLQUFLO3NCQUFqQixLQUFLO2dCQUlPLFFBQVE7c0JBQXBCLEtBQUs7Z0JBSU8sUUFBUTtzQkFBcEIsS0FBSztnQkFJRyxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGV4dGVuZCwgaW5qZWN0Tmd0UmVmLCBOZ3RBbnlSZWNvcmQsIE5ndFJ4U3RvcmUgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IExpbmVCYXNpY01hdGVyaWFsLCBMaW5lU2VnbWVudHMgfSBmcm9tICd0aHJlZSc7XG5cbmV4dGVuZCh7IExpbmVTZWdtZW50cywgTGluZUJhc2ljTWF0ZXJpYWwgfSk7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd0cy1lZGdlcycsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmd0LWxpbmUtc2VnbWVudHMgW3JlZl09XCJlZGdlc1JlZlwiIFtyYXljYXN0XT1cIm5vb3BcIiBuZ3RDb21wb3VuZD5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ3aXRoQ2hpbGRyZW47IGVsc2Ugbm9DaGlsZHJlblwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9DaGlsZHJlbj5cbiAgICAgICAgICAgICAgICA8bmd0LWxpbmUtYmFzaWMtbWF0ZXJpYWwgW2NvbG9yXT1cImNvbG9yXCIgLz5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmd0LWxpbmUtc2VnbWVudHM+XG4gICAgYCxcbiAgICBpbXBvcnRzOiBbTmdJZl0sXG4gICAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzRWRnZXMgZXh0ZW5kcyBOZ3RSeFN0b3JlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKSBlZGdlc1JlZiA9IGluamVjdE5ndFJlZjxUSFJFRS5MaW5lU2VnbWVudHM+KCk7XG5cbiAgICBASW5wdXQoKSBzZXQgdGhyZXNob2xkKHRocmVzaG9sZDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgdGhyZXNob2xkIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBjb2xvcihjb2xvcjogVEhSRUUuQ29sb3JSZXByZXNlbnRhdGlvbikge1xuICAgICAgICB0aGlzLnNldCh7IGNvbG9yIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBnZW9tZXRyeShnZW9tZXRyeTogVEhSRUUuQnVmZmVyR2VvbWV0cnkpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBnZW9tZXRyeSB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgdXNlckRhdGEodXNlckRhdGE6IE5ndEFueVJlY29yZCkge1xuICAgICAgICB0aGlzLnNldCh7IHVzZXJEYXRhIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHdpdGhDaGlsZHJlbiA9IGZhbHNlO1xuXG4gICAgcmVhZG9ubHkgbm9vcCA9ICgpID0+IG51bGw7XG5cbiAgICBvdmVycmlkZSBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5pbml0aWFsaXplKCk7XG4gICAgICAgIHRoaXMuc2V0KHtcbiAgICAgICAgICAgIHRocmVzaG9sZDogMTUsXG4gICAgICAgICAgICBjb2xvcjogJ2JsYWNrJyxcbiAgICAgICAgICAgIHVzZXJEYXRhOiB7fSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0dXBHZW9tZXRyeSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0dXBHZW9tZXRyeSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ob2xkKHRoaXMuZWRnZXNSZWYuJCwgKHNlZ21lbnRzKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwYXJlbnQgPSBzZWdtZW50cy5wYXJlbnQgYXMgVEhSRUUuTWVzaDtcbiAgICAgICAgICAgIGlmIChwYXJlbnQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBnZW9tID0gdGhpcy5nZXQoJ2dlb21ldHJ5JykgfHwgcGFyZW50Lmdlb21ldHJ5O1xuICAgICAgICAgICAgICAgIGNvbnN0IHRocmVzaG9sZCA9IHRoaXMuZ2V0KCd0aHJlc2hvbGQnKTtcbiAgICAgICAgICAgICAgICBpZiAoZ2VvbSAhPT0gc2VnbWVudHMudXNlckRhdGFbJ2N1cnJlbnRHZW9tJ10gfHwgdGhyZXNob2xkICE9PSBzZWdtZW50cy51c2VyRGF0YVsnY3VycmVudFRocmVzaG9sZCddKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlZ21lbnRzLnVzZXJEYXRhWydjdXJyZW50R2VvbSddID0gZ2VvbTtcbiAgICAgICAgICAgICAgICAgICAgc2VnbWVudHMudXNlckRhdGFbJ2N1cnJlbnRUaHJlc2hvbGQnXSA9IHRocmVzaG9sZDtcbiAgICAgICAgICAgICAgICAgICAgc2VnbWVudHMuZ2VvbWV0cnkgPSBuZXcgVEhSRUUuRWRnZXNHZW9tZXRyeShnZW9tLCB0aHJlc2hvbGQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
@@ -1,6 +1,5 @@
1
1
  import { NgTemplateOutlet } from '@angular/common';
2
2
  import { Component, ContentChild, CUSTOM_ELEMENTS_SCHEMA, Directive, EventEmitter, inject, InjectionToken, Input, Output, TemplateRef, } from '@angular/core';
3
- import { selectSlice } from '@rx-angular/state';
4
3
  import { extend, injectNgtRef, NgtPortal, NgtPortalContent, NgtRxStore, NgtStore } from 'angular-three';
5
4
  import { NgtsOrthographicCamera } from 'angular-three-soba/cameras';
6
5
  import { combineLatest, map } from 'rxjs';
@@ -122,7 +121,13 @@ export class NgtsGizmoHelper extends NgtRxStore {
122
121
  }
123
122
  }
124
123
  setGizmoPosition() {
125
- this.connect('gizmoPosition', combineLatest([this.store.select('size'), this.select(selectSlice(['alignment', 'margin']))]).pipe(map(([size, { alignment, margin }]) => {
124
+ this.connect('gizmoPosition', combineLatest([
125
+ this.store.select('size'),
126
+ combineLatest({
127
+ alignment: this.select('alignment'),
128
+ margin: this.select('margin'),
129
+ }),
130
+ ]).pipe(map(([size, { alignment, margin }]) => {
126
131
  const [marginX, marginY] = margin;
127
132
  const x = alignment.endsWith('-center')
128
133
  ? 0
@@ -203,4 +208,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImpor
203
208
  type: ContentChild,
204
209
  args: [NgtsGizmoHelperContent, { static: true, read: TemplateRef }]
205
210
  }] } });
206
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l6bW8taGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRocmVlLXNvYmEvYWJzdHJhY3Rpb25zL3NyYy9saWIvZ2l6bW8taGVscGVyL2dpem1vLWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQ0gsU0FBUyxFQUNULFlBQVksRUFDWixzQkFBc0IsRUFDdEIsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sY0FBYyxFQUNkLEtBQUssRUFFTCxNQUFNLEVBQ04sV0FBVyxHQUNkLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQXNCLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxPQUFPLENBQUM7O0FBSzFGLE1BQU0sZUFBZSxHQUFHLENBQUMsUUFBdUIsRUFBNkIsRUFBRTtJQUMzRSxPQUFPLGVBQWUsSUFBSyxRQUEwQixDQUFDO0FBQzFELENBQUMsQ0FBQztBQU1GLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLElBQUksY0FBYyxDQUFxQixxQkFBcUIsQ0FBQyxDQUFDO0FBRW5HLFNBQVMscUJBQXFCLENBQUMsS0FBc0I7SUFDakQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFFBQVEs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VyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcbiAgICBEaXJlY3RpdmUsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGluamVjdCxcbiAgICBJbmplY3Rpb25Ub2tlbixcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHNlbGVjdFNsaWNlIH0gZnJvbSAnQHJ4LWFuZ3VsYXIvc3RhdGUnO1xuaW1wb3J0IHsgZXh0ZW5kLCBpbmplY3ROZ3RSZWYsIE5ndFBvcnRhbCwgTmd0UG9ydGFsQ29udGVudCwgTmd0UnhTdG9yZSwgTmd0U3RvcmUgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IE5ndHNPcnRob2dyYXBoaWNDYW1lcmEgfSBmcm9tICdhbmd1bGFyLXRocmVlLXNvYmEvY2FtZXJhcyc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBtYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEdyb3VwLCBNYXRyaXg0LCBPYmplY3QzRCwgT3J0aG9ncmFwaGljQ2FtZXJhLCBRdWF0ZXJuaW9uLCBWZWN0b3IzIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgT3JiaXRDb250cm9scyB9IGZyb20gJ3RocmVlLXN0ZGxpYic7XG5cbnR5cGUgQ29udHJvbHNQcm90byA9IHsgdXBkYXRlKCk6IHZvaWQ7IHRhcmdldDogVEhSRUUuVmVjdG9yMyB9O1xuXG5jb25zdCBpc09yYml0Q29udHJvbHMgPSAoY29udHJvbHM6IENvbnRyb2xzUHJvdG8pOiBjb250cm9scyBpcyBPcmJpdENvbnRyb2xzID0+IHtcbiAgICByZXR1cm4gJ21pblBvbGFyQW5nbGUnIGluIChjb250cm9scyBhcyBPcmJpdENvbnRyb2xzKTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0c0dpem1vSGVscGVyQXBpIHtcbiAgICB0d2VlbkNhbWVyYTogKGRpcmVjdGlvbjogVmVjdG9yMykgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGNvbnN0IE5HVFNfR0laTU9fSEVMUEVSX0FQSSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxOZ3RzR2l6bW9IZWxwZXJBcGk+KCdOZ3RzR2l6bW9IZWxwZXIgQVBJJyk7XG5cbmZ1bmN0aW9uIGdpem1vSGVscGVyQXBpRmFjdG9yeShnaXptbzogTmd0c0dpem1vSGVscGVyKSB7XG4gICAgY29uc3Qgc3RvcmUgPSBpbmplY3QoTmd0U3RvcmUpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgdHdlZW5DYW1lcmE6IChkaXJlY3Rpb246IFZlY3RvcjMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgY29udHJvbHMsIGNhbWVyYSwgaW52YWxpZGF0ZSB9ID0gc3RvcmUuZ2V0KCk7XG4gICAgICAgICAgICBjb25zdCBkZWZhdWx0Q29udHJvbHMgPSBjb250cm9scyBhcyB1bmtub3duIGFzIENvbnRyb2xzUHJvdG87XG5cbiAgICAgICAgICAgIGdpem1vLmFuaW1hdGluZyA9IHRydWU7XG4gICAgICAgICAgICBpZiAoZGVmYXVsdENvbnRyb2xzKSBnaXptby5mb2N1c1BvaW50ID0gZGVmYXVsdENvbnRyb2xzLnRhcmdldDtcbiAgICAgICAgICAgIGdpem1vLnJhZGl1cyA9IGNhbWVyYS5wb3NpdGlvbi5kaXN0YW5jZVRvKGdpem1vLnRhcmdldCk7XG4gICAgICAgICAgICAvLyByb3RhdGUgZnJvbSBjdXJyZW50IGNhbWVyYSBvcmllbnRhdGlvblxuICAgICAgICAgICAgZ2l6bW8ucTEuY29weShjYW1lcmEucXVhdGVybmlvbik7XG4gICAgICAgICAgICAvLyB0byBuZXcgY3VycmVudCBjYW1lcmEgb3JpZW50YXRpb25cbiAgICAgICAgICAgIGdpem1vLnRhcmdldFBvc2l0aW9uLmNvcHkoZGlyZWN0aW9uKS5tdWx0aXBseVNjYWxhcihnaXptby5yYWRpdXMpLmFkZChnaXptby50YXJnZXQpO1xuICAgICAgICAgICAgZ2l6bW8uZHVtbXkubG9va0F0KGdpem1vLnRhcmdldFBvc2l0aW9uKTtcbiAgICAgICAgICAgIGdpem1vLnEyLmNvcHkoZ2l6bW8uZHVtbXkucXVhdGVybmlvbik7XG4gICAgICAgICAgICBpbnZhbGlkYXRlKCk7XG4gICAgICAgIH0sXG4gICAgfTtcbn1cblxuZXh0ZW5kKHsgR3JvdXAgfSk7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnbmctdGVtcGxhdGVbbmd0c0dpem1vSGVscGVyQ29udGVudF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNHaXptb0hlbHBlckNvbnRlbnQge31cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3RzLWdpem1vLWhlbHBlcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmd0LXBvcnRhbCBbcmVuZGVyUHJpb3JpdHldPVwiZ2V0KCdyZW5kZXJQcmlvcml0eScpXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbmd0UG9ydGFsQ29udGVudD5cbiAgICAgICAgICAgICAgICA8bmd0cy1vcnRob2dyYXBoaWMtY2FtZXJhXG4gICAgICAgICAgICAgICAgICAgIFtjYW1lcmFSZWZdPVwidmlydHVhbENhbWVyYVJlZlwiXG4gICAgICAgICAgICAgICAgICAgIFttYWtlRGVmYXVsdF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgW3Bvc2l0aW9uXT1cIlswLCAwLCAyMDBdXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxuZ3QtZ3JvdXBcbiAgICAgICAgICAgICAgICAgICAgW3JlZl09XCJnaXptb1JlZlwiXG4gICAgICAgICAgICAgICAgICAgIFtwb3NpdGlvbl09XCJnZXQoJ2dpem1vUG9zaXRpb24nKVwiXG4gICAgICAgICAgICAgICAgICAgIChiZWZvcmVSZW5kZXIpPVwib25CZWZvcmVSZW5kZXIoJGFueSgkZXZlbnQpLnN0YXRlLmRlbHRhKVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZ2l6bW9IZWxwZXJDb250ZW50XCIgLz5cbiAgICAgICAgICAgICAgICA8L25ndC1ncm91cD5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmd0LXBvcnRhbD5cbiAgICBgLFxuICAgIGltcG9ydHM6IFtOZ3RQb3J0YWwsIE5ndFBvcnRhbENvbnRlbnQsIE5ndHNPcnRob2dyYXBoaWNDYW1lcmEsIE5nVGVtcGxhdGVPdXRsZXRdLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTkdUU19HSVpNT19IRUxQRVJfQVBJLCB1c2VGYWN0b3J5OiBnaXptb0hlbHBlckFwaUZhY3RvcnksIGRlcHM6IFtOZ3RzR2l6bW9IZWxwZXJdIH1dLFxuICAgIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c0dpem1vSGVscGVyIGV4dGVuZHMgTmd0UnhTdG9yZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzdG9yZSA9IGluamVjdChOZ3RTdG9yZSk7XG5cbiAgICByZWFkb25seSBnaXptb1JlZiA9IGluamVjdE5ndFJlZjxHcm91cD4oKTtcbiAgICByZWFkb25seSB2aXJ0dWFsQ2FtZXJhUmVmID0gaW5qZWN0Tmd0UmVmPE9ydGhvZ3JhcGhpY0NhbWVyYT4oKTtcblxuICAgIGFuaW1hdGluZyA9IGZhbHNlO1xuICAgIHJhZGl1cyA9IDA7XG4gICAgZm9jdXNQb2ludCA9IG5ldyBWZWN0b3IzKDAsIDAsIDApO1xuICAgIHExID0gbmV3IFF1YXRlcm5pb24oKTtcbiAgICBxMiA9IG5ldyBRdWF0ZXJuaW9uKCk7XG5cbiAgICB0YXJnZXQgPSBuZXcgVmVjdG9yMygpO1xuICAgIHRhcmdldFBvc2l0aW9uID0gbmV3IFZlY3RvcjMoKTtcbiAgICBkdW1teSA9IG5ldyBPYmplY3QzRCgpO1xuXG4gICAgcHJpdmF0ZSBkZWZhdWx0VXAgPSBuZXcgVmVjdG9yMygwLCAwLCAwKTtcbiAgICBwcml2YXRlIHR1cm5SYXRlID0gMiAqIE1hdGguUEk7IC8vIHR1cm4gcmF0ZSBpbiBhbmdsZXMgcGVyIHNlY1xuICAgIHByaXZhdGUgbWF0cml4ID0gbmV3IE1hdHJpeDQoKTtcblxuICAgIEBJbnB1dCgpIHNldCBhbGlnbm1lbnQoXG4gICAgICAgIGFsaWdubWVudDpcbiAgICAgICAgICAgIHwgJ3RvcC1sZWZ0J1xuICAgICAgICAgICAgfCAndG9wLXJpZ2h0J1xuICAgICAgICAgICAgfCAnYm90dG9tLXJpZ2h0J1xuICAgICAgICAgICAgfCAnYm90dG9tLWxlZnQnXG4gICAgICAgICAgICB8ICdib3R0b20tY2VudGVyJ1xuICAgICAgICAgICAgfCAnY2VudGVyLXJpZ2h0J1xuICAgICAgICAgICAgfCAnY2VudGVyLWxlZnQnXG4gICAgICAgICAgICB8ICdjZW50ZXItY2VudGVyJ1xuICAgICAgICAgICAgfCAndG9wLWNlbnRlcidcbiAgICApIHtcbiAgICAgICAgdGhpcy5zZXQoeyBhbGlnbm1lbnQgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IG1hcmdpbihtYXJnaW46IFtudW1iZXIsIG51bWJlcl0pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBtYXJnaW4gfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHJlbmRlclByaW9yaXR5KHJlbmRlclByaW9yaXR5OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyByZW5kZXJQcmlvcml0eSB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgYXV0b0NsZWFyKGF1dG9DbGVhcjogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNldCh7IGF1dG9DbGVhciB9KTtcbiAgICB9XG5cbiAgICBAT3V0cHV0KCkgdXBkYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIEBDb250ZW50Q2hpbGQoTmd0c0dpem1vSGVscGVyQ29udGVudCwgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gICAgZ2l6bW9IZWxwZXJDb250ZW50ITogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgICBvdmVycmlkZSBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5pbml0aWFsaXplKCk7XG4gICAgICAgIHRoaXMuc2V0KHsgYWxpZ25tZW50OiAnYm90dG9tLXJpZ2h0JywgbWFyZ2luOiBbODAsIDgwXSwgcmVuZGVyUHJpb3JpdHk6IDEgfSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMudXBkYXRlRGVmYXVsdFVwKCk7XG4gICAgICAgIHRoaXMuc2V0R2l6bW9Qb3NpdGlvbigpO1xuICAgIH1cblxuICAgIG9uQmVmb3JlUmVuZGVyKGRlbHRhOiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHRoaXMudmlydHVhbENhbWVyYVJlZi5uYXRpdmVFbGVtZW50ICYmIHRoaXMuZ2l6bW9SZWYubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgY29uc3QgeyBjb250cm9scywgY2FtZXJhOiBtYWluQ2FtZXJhLCBpbnZhbGlkYXRlIH0gPSB0aGlzLnN0b3JlLmdldCgpO1xuICAgICAgICAgICAgY29uc3QgZGVmYXVsdENvbnRyb2xzID0gY29udHJvbHMgYXMgdW5rbm93biBhcyBDb250cm9sc1Byb3RvO1xuICAgICAgICAgICAgLy8gQW5pbWF0ZSBzdGVwXG4gICAgICAgICAgICBpZiAodGhpcy5hbmltYXRpbmcpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5xMS5hbmdsZVRvKHRoaXMucTIpIDwgMC4wMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFuaW1hdGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAvLyBPcmJpdCBjb250cm9scyB1c2VzIFVQIHZlY3RvciBhcyB0aGUgb3JiaXQgYXhlcyxcbiAgICAgICAgICAgICAgICAgICAgLy8gc28gd2UgbmVlZCB0byByZXNldCBpdCBhZnRlciB0aGUgYW5pbWF0aW9uIGlzIGRvbmVcbiAgICAgICAgICAgICAgICAgICAgLy8gbW92aW5nIGl0IGFyb3VuZCBmb3IgdGhlIGNvbnRyb2xzIHRvIHdvcmsgY29ycmVjdGx5XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc09yYml0Q29udHJvbHMoZGVmYXVsdENvbnRyb2xzKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFpbkNhbWVyYS51cC5jb3B5KHRoaXMuZGVmYXVsdFVwKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZXAgPSBkZWx0YSAqIHRoaXMudHVyblJhdGU7XG4gICAgICAgICAgICAgICAgICAgIC8vIGFuaW1hdGUgcG9zaXRpb24gYnkgZG9pbmcgYSBzbGVycCBhbmQgdGhlbiBzY2FsaW5nIHRoZSBwb3NpdGlvbiBvbiB0aGUgdW5pdCBzcGhlcmVcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5xMS5yb3RhdGVUb3dhcmRzKHRoaXMucTIsIHN0ZXApO1xuICAgICAgICAgICAgICAgICAgICAvLyBhbmltYXRlIG9yaWVudGF0aW9uXG4gICAgICAgICAgICAgICAgICAgIG1haW5DYW1lcmEucG9zaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIC5zZXQoMCwgMCwgMSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5hcHBseVF1YXRlcm5pb24odGhpcy5xMSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5tdWx0aXBseVNjYWxhcih0aGlzLnJhZGl1cylcbiAgICAgICAgICAgICAgICAgICAgICAgIC5hZGQodGhpcy5mb2N1c1BvaW50KTtcbiAgICAgICAgICAgICAgICAgICAgbWFpbkNhbWVyYS51cC5zZXQoMCwgMSwgMCkuYXBwbHlRdWF0ZXJuaW9uKHRoaXMucTEpLm5vcm1hbGl6ZSgpO1xuICAgICAgICAgICAgICAgICAgICBtYWluQ2FtZXJhLnF1YXRlcm5pb24uY29weSh0aGlzLnExKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudXBkYXRlZC5vYnNlcnZlZCkgdGhpcy51cGRhdGVkLmVtaXQoKTtcbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoZGVmYXVsdENvbnRyb2xzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0Q29udHJvbHMudXBkYXRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaW52YWxpZGF0ZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gU3luYyBHaXptbyB3aXRoIG1haW4gY2FtZXJhIG9yaWVudGF0aW9uXG4gICAgICAgICAgICB0aGlzLm1hdHJpeC5jb3B5KG1haW5DYW1lcmEubWF0cml4KS5pbnZlcnQoKTtcbiAgICAgICAgICAgIHRoaXMuZ2l6bW9SZWYubmF0aXZlRWxlbWVudC5xdWF0ZXJuaW9uLnNldEZyb21Sb3RhdGlvbk1hdHJpeCh0aGlzLm1hdHJpeCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEdpem1vUG9zaXRpb24oKSB7XG4gICAgICAgIHRoaXMuY29ubmVjdChcbiAgICAgICAgICAgICdnaXptb1Bvc2l0aW9uJyxcbiAgICAgICAgICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuc3RvcmUuc2VsZWN0KCdzaXplJyksIHRoaXMuc2VsZWN0KHNlbGVjdFNsaWNlKFsnYWxpZ25tZW50JywgJ21hcmdpbiddKSldKS5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgoW3NpemUsIHsgYWxpZ25tZW50LCBtYXJnaW4gfV0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgW21hcmdpblgsIG1hcmdpblldID0gbWFyZ2luO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB4ID0gYWxpZ25tZW50LmVuZHNXaXRoKCctY2VudGVyJylcbiAgICAgICAgICAgICAgICAgICAgICAgID8gMFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBhbGlnbm1lbnQuZW5kc1dpdGgoJy1sZWZ0JylcbiAgICAgICAgICAgICAgICAgICAgICAgID8gLXNpemUud2lkdGggLyAyICsgbWFyZ2luWFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzaXplLndpZHRoIC8gMiAtIG1hcmdpblg7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHkgPSBhbGlnbm1lbnQuc3RhcnRzV2l0aCgnY2VudGVyLScpXG4gICAgICAgICAgICAgICAgICAgICAgICA/IDBcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYWxpZ25tZW50LnN0YXJ0c1dpdGgoJ3RvcC0nKVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBzaXplLmhlaWdodCAvIDIgLSBtYXJnaW5ZXG4gICAgICAgICAgICAgICAgICAgICAgICA6IC1zaXplLmhlaWdodCAvIDIgKyBtYXJnaW5ZO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gW3gsIHksIDBdO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVEZWZhdWx0VXAoKSB7XG4gICAgICAgIHRoaXMuaG9sZCh0aGlzLnN0b3JlLnNlbGVjdCgnY2FtZXJhJyksIChjYW1lcmEpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdFVwLmNvcHkoY2FtZXJhLnVwKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
211
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l6bW8taGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRocmVlLXNvYmEvYWJzdHJhY3Rpb25zL3NyYy9saWIvZ2l6bW8taGVscGVyL2dpem1vLWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQ0gsU0FBUyxFQUNULFlBQVksRUFDWixzQkFBc0IsRUFDdEIsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sY0FBYyxFQUNkLEtBQUssRUFFTCxNQUFNLEVBQ04sV0FBVyxHQUNkLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBc0IsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQzs7QUFLMUYsTUFBTSxlQUFlLEdBQUcsQ0FBQyxRQUF1QixFQUE2QixFQUFFO0lBQzNFLE9BQU8sZUFBZSxJQUFLLFFBQTBCLENBQUM7QUFDMUQsQ0FBQyxDQUFDO0FBTUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQXFCLHFCQUFxQixDQUFDLENBQUM7QUFFbkcsU0FBUyxxQkFBcUIsQ0FBQyxLQUFzQjtJQUNqRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFL0IsT0FBTztRQUNILFdBQVcsRUFBRSxDQUFDLFNB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QUUsV0FBVyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSxcbiAgICBEaXJlY3RpdmUsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGluamVjdCxcbiAgICBJbmplY3Rpb25Ub2tlbixcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGV4dGVuZCwgaW5qZWN0Tmd0UmVmLCBOZ3RQb3J0YWwsIE5ndFBvcnRhbENvbnRlbnQsIE5ndFJ4U3RvcmUsIE5ndFN0b3JlIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBOZ3RzT3J0aG9ncmFwaGljQ2FtZXJhIH0gZnJvbSAnYW5ndWxhci10aHJlZS1zb2JhL2NhbWVyYXMnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBHcm91cCwgTWF0cml4NCwgT2JqZWN0M0QsIE9ydGhvZ3JhcGhpY0NhbWVyYSwgUXVhdGVybmlvbiwgVmVjdG9yMyB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IE9yYml0Q29udHJvbHMgfSBmcm9tICd0aHJlZS1zdGRsaWInO1xuXG50eXBlIENvbnRyb2xzUHJvdG8gPSB7IHVwZGF0ZSgpOiB2b2lkOyB0YXJnZXQ6IFRIUkVFLlZlY3RvcjMgfTtcblxuY29uc3QgaXNPcmJpdENvbnRyb2xzID0gKGNvbnRyb2xzOiBDb250cm9sc1Byb3RvKTogY29udHJvbHMgaXMgT3JiaXRDb250cm9scyA9PiB7XG4gICAgcmV0dXJuICdtaW5Qb2xhckFuZ2xlJyBpbiAoY29udHJvbHMgYXMgT3JiaXRDb250cm9scyk7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIE5ndHNHaXptb0hlbHBlckFwaSB7XG4gICAgdHdlZW5DYW1lcmE6IChkaXJlY3Rpb246IFZlY3RvcjMpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBjb25zdCBOR1RTX0dJWk1PX0hFTFBFUl9BUEkgPSBuZXcgSW5qZWN0aW9uVG9rZW48Tmd0c0dpem1vSGVscGVyQXBpPignTmd0c0dpem1vSGVscGVyIEFQSScpO1xuXG5mdW5jdGlvbiBnaXptb0hlbHBlckFwaUZhY3RvcnkoZ2l6bW86IE5ndHNHaXptb0hlbHBlcikge1xuICAgIGNvbnN0IHN0b3JlID0gaW5qZWN0KE5ndFN0b3JlKTtcblxuICAgIHJldHVybiB7XG4gICAgICAgIHR3ZWVuQ2FtZXJhOiAoZGlyZWN0aW9uOiBWZWN0b3IzKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB7IGNvbnRyb2xzLCBjYW1lcmEsIGludmFsaWRhdGUgfSA9IHN0b3JlLmdldCgpO1xuICAgICAgICAgICAgY29uc3QgZGVmYXVsdENvbnRyb2xzID0gY29udHJvbHMgYXMgdW5rbm93biBhcyBDb250cm9sc1Byb3RvO1xuXG4gICAgICAgICAgICBnaXptby5hbmltYXRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgaWYgKGRlZmF1bHRDb250cm9scykgZ2l6bW8uZm9jdXNQb2ludCA9IGRlZmF1bHRDb250cm9scy50YXJnZXQ7XG4gICAgICAgICAgICBnaXptby5yYWRpdXMgPSBjYW1lcmEucG9zaXRpb24uZGlzdGFuY2VUbyhnaXptby50YXJnZXQpO1xuICAgICAgICAgICAgLy8gcm90YXRlIGZyb20gY3VycmVudCBjYW1lcmEgb3JpZW50YXRpb25cbiAgICAgICAgICAgIGdpem1vLnExLmNvcHkoY2FtZXJhLnF1YXRlcm5pb24pO1xuICAgICAgICAgICAgLy8gdG8gbmV3IGN1cnJlbnQgY2FtZXJhIG9yaWVudGF0aW9uXG4gICAgICAgICAgICBnaXptby50YXJnZXRQb3NpdGlvbi5jb3B5KGRpcmVjdGlvbikubXVsdGlwbHlTY2FsYXIoZ2l6bW8ucmFkaXVzKS5hZGQoZ2l6bW8udGFyZ2V0KTtcbiAgICAgICAgICAgIGdpem1vLmR1bW15Lmxvb2tBdChnaXptby50YXJnZXRQb3NpdGlvbik7XG4gICAgICAgICAgICBnaXptby5xMi5jb3B5KGdpem1vLmR1bW15LnF1YXRlcm5pb24pO1xuICAgICAgICAgICAgaW52YWxpZGF0ZSgpO1xuICAgICAgICB9LFxuICAgIH07XG59XG5cbmV4dGVuZCh7IEdyb3VwIH0pO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ25nLXRlbXBsYXRlW25ndHNHaXptb0hlbHBlckNvbnRlbnRdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzR2l6bW9IZWxwZXJDb250ZW50IHt9XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd0cy1naXptby1oZWxwZXInLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5ndC1wb3J0YWwgW3JlbmRlclByaW9yaXR5XT1cImdldCgncmVuZGVyUHJpb3JpdHknKVwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG5ndFBvcnRhbENvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPG5ndHMtb3J0aG9ncmFwaGljLWNhbWVyYVxuICAgICAgICAgICAgICAgICAgICBbY2FtZXJhUmVmXT1cInZpcnR1YWxDYW1lcmFSZWZcIlxuICAgICAgICAgICAgICAgICAgICBbbWFrZURlZmF1bHRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtwb3NpdGlvbl09XCJbMCwgMCwgMjAwXVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8bmd0LWdyb3VwXG4gICAgICAgICAgICAgICAgICAgIFtyZWZdPVwiZ2l6bW9SZWZcIlxuICAgICAgICAgICAgICAgICAgICBbcG9zaXRpb25dPVwiZ2V0KCdnaXptb1Bvc2l0aW9uJylcIlxuICAgICAgICAgICAgICAgICAgICAoYmVmb3JlUmVuZGVyKT1cIm9uQmVmb3JlUmVuZGVyKCRhbnkoJGV2ZW50KS5zdGF0ZS5kZWx0YSlcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImdpem1vSGVscGVyQ29udGVudFwiIC8+XG4gICAgICAgICAgICAgICAgPC9uZ3QtZ3JvdXA+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L25ndC1wb3J0YWw+XG4gICAgYCxcbiAgICBpbXBvcnRzOiBbTmd0UG9ydGFsLCBOZ3RQb3J0YWxDb250ZW50LCBOZ3RzT3J0aG9ncmFwaGljQ2FtZXJhLCBOZ1RlbXBsYXRlT3V0bGV0XSxcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IE5HVFNfR0laTU9fSEVMUEVSX0FQSSwgdXNlRmFjdG9yeTogZ2l6bW9IZWxwZXJBcGlGYWN0b3J5LCBkZXBzOiBbTmd0c0dpem1vSGVscGVyXSB9XSxcbiAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNHaXptb0hlbHBlciBleHRlbmRzIE5ndFJ4U3RvcmUgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmUgPSBpbmplY3QoTmd0U3RvcmUpO1xuXG4gICAgcmVhZG9ubHkgZ2l6bW9SZWYgPSBpbmplY3ROZ3RSZWY8R3JvdXA+KCk7XG4gICAgcmVhZG9ubHkgdmlydHVhbENhbWVyYVJlZiA9IGluamVjdE5ndFJlZjxPcnRob2dyYXBoaWNDYW1lcmE+KCk7XG5cbiAgICBhbmltYXRpbmcgPSBmYWxzZTtcbiAgICByYWRpdXMgPSAwO1xuICAgIGZvY3VzUG9pbnQgPSBuZXcgVmVjdG9yMygwLCAwLCAwKTtcbiAgICBxMSA9IG5ldyBRdWF0ZXJuaW9uKCk7XG4gICAgcTIgPSBuZXcgUXVhdGVybmlvbigpO1xuXG4gICAgdGFyZ2V0ID0gbmV3IFZlY3RvcjMoKTtcbiAgICB0YXJnZXRQb3NpdGlvbiA9IG5ldyBWZWN0b3IzKCk7XG4gICAgZHVtbXkgPSBuZXcgT2JqZWN0M0QoKTtcblxuICAgIHByaXZhdGUgZGVmYXVsdFVwID0gbmV3IFZlY3RvcjMoMCwgMCwgMCk7XG4gICAgcHJpdmF0ZSB0dXJuUmF0ZSA9IDIgKiBNYXRoLlBJOyAvLyB0dXJuIHJhdGUgaW4gYW5nbGVzIHBlciBzZWNcbiAgICBwcml2YXRlIG1hdHJpeCA9IG5ldyBNYXRyaXg0KCk7XG5cbiAgICBASW5wdXQoKSBzZXQgYWxpZ25tZW50KFxuICAgICAgICBhbGlnbm1lbnQ6XG4gICAgICAgICAgICB8ICd0b3AtbGVmdCdcbiAgICAgICAgICAgIHwgJ3RvcC1yaWdodCdcbiAgICAgICAgICAgIHwgJ2JvdHRvbS1yaWdodCdcbiAgICAgICAgICAgIHwgJ2JvdHRvbS1sZWZ0J1xuICAgICAgICAgICAgfCAnYm90dG9tLWNlbnRlcidcbiAgICAgICAgICAgIHwgJ2NlbnRlci1yaWdodCdcbiAgICAgICAgICAgIHwgJ2NlbnRlci1sZWZ0J1xuICAgICAgICAgICAgfCAnY2VudGVyLWNlbnRlcidcbiAgICAgICAgICAgIHwgJ3RvcC1jZW50ZXInXG4gICAgKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgYWxpZ25tZW50IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBtYXJnaW4obWFyZ2luOiBbbnVtYmVyLCBudW1iZXJdKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgbWFyZ2luIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCByZW5kZXJQcmlvcml0eShyZW5kZXJQcmlvcml0eTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgcmVuZGVyUHJpb3JpdHkgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGF1dG9DbGVhcihhdXRvQ2xlYXI6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBhdXRvQ2xlYXIgfSk7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpIHVwZGF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBAQ29udGVudENoaWxkKE5ndHNHaXptb0hlbHBlckNvbnRlbnQsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICAgIGdpem1vSGVscGVyQ29udGVudCE6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gICAgb3ZlcnJpZGUgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuaW5pdGlhbGl6ZSgpO1xuICAgICAgICB0aGlzLnNldCh7IGFsaWdubWVudDogJ2JvdHRvbS1yaWdodCcsIG1hcmdpbjogWzgwLCA4MF0sIHJlbmRlclByaW9yaXR5OiAxIH0pO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnVwZGF0ZURlZmF1bHRVcCgpO1xuICAgICAgICB0aGlzLnNldEdpem1vUG9zaXRpb24oKTtcbiAgICB9XG5cbiAgICBvbkJlZm9yZVJlbmRlcihkZWx0YTogbnVtYmVyKSB7XG4gICAgICAgIGlmICh0aGlzLnZpcnR1YWxDYW1lcmFSZWYubmF0aXZlRWxlbWVudCAmJiB0aGlzLmdpem1vUmVmLm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgY29udHJvbHMsIGNhbWVyYTogbWFpbkNhbWVyYSwgaW52YWxpZGF0ZSB9ID0gdGhpcy5zdG9yZS5nZXQoKTtcbiAgICAgICAgICAgIGNvbnN0IGRlZmF1bHRDb250cm9scyA9IGNvbnRyb2xzIGFzIHVua25vd24gYXMgQ29udHJvbHNQcm90bztcbiAgICAgICAgICAgIC8vIEFuaW1hdGUgc3RlcFxuICAgICAgICAgICAgaWYgKHRoaXMuYW5pbWF0aW5nKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucTEuYW5nbGVUbyh0aGlzLnEyKSA8IDAuMDEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbmltYXRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgLy8gT3JiaXQgY29udHJvbHMgdXNlcyBVUCB2ZWN0b3IgYXMgdGhlIG9yYml0IGF4ZXMsXG4gICAgICAgICAgICAgICAgICAgIC8vIHNvIHdlIG5lZWQgdG8gcmVzZXQgaXQgYWZ0ZXIgdGhlIGFuaW1hdGlvbiBpcyBkb25lXG4gICAgICAgICAgICAgICAgICAgIC8vIG1vdmluZyBpdCBhcm91bmQgZm9yIHRoZSBjb250cm9scyB0byB3b3JrIGNvcnJlY3RseVxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNPcmJpdENvbnRyb2xzKGRlZmF1bHRDb250cm9scykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1haW5DYW1lcmEudXAuY29weSh0aGlzLmRlZmF1bHRVcCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGVwID0gZGVsdGEgKiB0aGlzLnR1cm5SYXRlO1xuICAgICAgICAgICAgICAgICAgICAvLyBhbmltYXRlIHBvc2l0aW9uIGJ5IGRvaW5nIGEgc2xlcnAgYW5kIHRoZW4gc2NhbGluZyB0aGUgcG9zaXRpb24gb24gdGhlIHVuaXQgc3BoZXJlXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucTEucm90YXRlVG93YXJkcyh0aGlzLnEyLCBzdGVwKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gYW5pbWF0ZSBvcmllbnRhdGlvblxuICAgICAgICAgICAgICAgICAgICBtYWluQ2FtZXJhLnBvc2l0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAuc2V0KDAsIDAsIDEpXG4gICAgICAgICAgICAgICAgICAgICAgICAuYXBwbHlRdWF0ZXJuaW9uKHRoaXMucTEpXG4gICAgICAgICAgICAgICAgICAgICAgICAubXVsdGlwbHlTY2FsYXIodGhpcy5yYWRpdXMpXG4gICAgICAgICAgICAgICAgICAgICAgICAuYWRkKHRoaXMuZm9jdXNQb2ludCk7XG4gICAgICAgICAgICAgICAgICAgIG1haW5DYW1lcmEudXAuc2V0KDAsIDEsIDApLmFwcGx5UXVhdGVybmlvbih0aGlzLnExKS5ub3JtYWxpemUoKTtcbiAgICAgICAgICAgICAgICAgICAgbWFpbkNhbWVyYS5xdWF0ZXJuaW9uLmNvcHkodGhpcy5xMSk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnVwZGF0ZWQub2JzZXJ2ZWQpIHRoaXMudXBkYXRlZC5lbWl0KCk7XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGRlZmF1bHRDb250cm9scykge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdENvbnRyb2xzLnVwZGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGludmFsaWRhdGUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIFN5bmMgR2l6bW8gd2l0aCBtYWluIGNhbWVyYSBvcmllbnRhdGlvblxuICAgICAgICAgICAgdGhpcy5tYXRyaXguY29weShtYWluQ2FtZXJhLm1hdHJpeCkuaW52ZXJ0KCk7XG4gICAgICAgICAgICB0aGlzLmdpem1vUmVmLm5hdGl2ZUVsZW1lbnQucXVhdGVybmlvbi5zZXRGcm9tUm90YXRpb25NYXRyaXgodGhpcy5tYXRyaXgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRHaXptb1Bvc2l0aW9uKCkge1xuICAgICAgICB0aGlzLmNvbm5lY3QoXG4gICAgICAgICAgICAnZ2l6bW9Qb3NpdGlvbicsXG4gICAgICAgICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JlLnNlbGVjdCgnc2l6ZScpLFxuICAgICAgICAgICAgICAgIGNvbWJpbmVMYXRlc3Qoe1xuICAgICAgICAgICAgICAgICAgICBhbGlnbm1lbnQ6IHRoaXMuc2VsZWN0KCdhbGlnbm1lbnQnKSxcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiB0aGlzLnNlbGVjdCgnbWFyZ2luJyksXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBdKS5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgoW3NpemUsIHsgYWxpZ25tZW50LCBtYXJnaW4gfV0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgW21hcmdpblgsIG1hcmdpblldID0gbWFyZ2luO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB4ID0gYWxpZ25tZW50LmVuZHNXaXRoKCctY2VudGVyJylcbiAgICAgICAgICAgICAgICAgICAgICAgID8gMFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBhbGlnbm1lbnQuZW5kc1dpdGgoJy1sZWZ0JylcbiAgICAgICAgICAgICAgICAgICAgICAgID8gLXNpemUud2lkdGggLyAyICsgbWFyZ2luWFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzaXplLndpZHRoIC8gMiAtIG1hcmdpblg7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHkgPSBhbGlnbm1lbnQuc3RhcnRzV2l0aCgnY2VudGVyLScpXG4gICAgICAgICAgICAgICAgICAgICAgICA/IDBcbiAgICAgICAgICAgICAgICAgICAgICAgIDogYWxpZ25tZW50LnN0YXJ0c1dpdGgoJ3RvcC0nKVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBzaXplLmhlaWdodCAvIDIgLSBtYXJnaW5ZXG4gICAgICAgICAgICAgICAgICAgICAgICA6IC1zaXplLmhlaWdodCAvIDIgKyBtYXJnaW5ZO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gW3gsIHksIDBdO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVEZWZhdWx0VXAoKSB7XG4gICAgICAgIHRoaXMuaG9sZCh0aGlzLnN0b3JlLnNlbGVjdCgnY2FtZXJhJyksIChjYW1lcmEpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdFVwLmNvcHkoY2FtZXJhLnVwKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
@@ -141,4 +141,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImpor
141
141
  }], letterSpacing: [{
142
142
  type: Input
143
143
  }] } });
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC0zZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci10aHJlZS1zb2JhL2Fic3RyYWN0aW9ucy9zcmMvbGliL3RleHQtM2QvdGV4dC0zZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDekQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUM3QixPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFxQnhELE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO0FBYy9CLE1BQU0sT0FBTyxVQUFXLFNBQVEsVUFBVTtJQVoxQzs7UUE2RXFCLFVBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FDN0MsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDZixJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVE7Z0JBQUUsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQXNCLENBQUM7WUFDaEcsT0FBTyxFQUFFLENBQUMsSUFBZ0IsQ0FBQyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxVQUFVLEVBQUUsQ0FBQyxLQUFL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Y2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBleHRlbmQsIE5ndEFyZ3MsIE5ndFB1c2gsIE5ndFJ4U3RvcmUgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIG1hcCwgb2YsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTWVzaCB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IEZvbnRMb2FkZXIsIFRleHRHZW9tZXRyeSB9IGZyb20gJ3RocmVlLXN0ZGxpYic7XG5cbmRlY2xhcmUgdHlwZSBHbHlwaCA9IHtcbiAgICBfY2FjaGVkT3V0bGluZTogc3RyaW5nW107XG4gICAgaGE6IG51bWJlcjtcbiAgICBvOiBzdHJpbmc7XG59O1xuXG5kZWNsYXJlIHR5cGUgRm9udERhdGEgPSB7XG4gICAgYm91bmRpbmdCb3g6IHtcbiAgICAgICAgeU1heDogbnVtYmVyO1xuICAgICAgICB5TWluOiBudW1iZXI7XG4gICAgfTtcbiAgICBmYW1pbHlOYW1lOiBzdHJpbmc7XG4gICAgZ2x5cGhzOiB7XG4gICAgICAgIFtrOiBzdHJpbmddOiBHbHlwaDtcbiAgICB9O1xuICAgIHJlc29sdXRpb246IG51bWJlcjtcbiAgICB1bmRlcmxpbmVUaGlja25lc3M6IG51bWJlcjtcbn07XG5cbmV4dGVuZCh7IE1lc2gsIFRleHRHZW9tZXRyeSB9KTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3RzLXRleHQtM2RbZm9udF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5ndC1tZXNoIG5ndENvbXBvdW5kPlxuICAgICAgICAgICAgPG5ndC10ZXh0LWdlb21ldHJ5ICphcmdzPVwiZ2VvbWV0cnlBcmdzJCB8IG5ndFB1c2ggOiBudWxsXCIgLz5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgICAgIDwvbmd0LW1lc2g+XG4gICAgYCxcbiAgICBpbXBvcnRzOiBbTmd0QXJncywgTmd0UHVzaF0sXG4gICAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzVGV4dDNEIGV4dGVuZHMgTmd0UnhTdG9yZSB7XG4gICAgQElucHV0KCkgc2V0IGZvbnQoZm9udDogRm9udERhdGEgfCBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBmb250IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCB0ZXh0KHRleHQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLnNldCh7IHRleHQgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGJldmVsRW5hYmxlZChiZXZlbEVuYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBiZXZlbEVuYWJsZWQgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGJldmVsT2Zmc2V0KGJldmVsT2Zmc2V0OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBiZXZlbE9mZnNldCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgYmV2ZWxTaXplKGJldmVsU2l6ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgYmV2ZWxTaXplIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBiZXZlbFRoaWNrbmVzcyhiZXZlbFRoaWNrbmVzczogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgYmV2ZWxUaGlja25lc3MgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGN1cnZlU2VnbWVudHMoY3VydmVTZWdtZW50czogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgY3VydmVTZWdtZW50cyB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgYmV2ZWxTZWdtZW50cyhiZXZlbFNlZ21lbnRzOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBiZXZlbFNlZ21lbnRzIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBoZWlnaHQoaGVpZ2h0OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBoZWlnaHQgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHNpemUoc2l6ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgc2l6ZSB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgbGluZUhlaWdodChsaW5lSGVpZ2h0OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBsaW5lSGVpZ2h0IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBsZXR0ZXJTcGFjaW5nKGxldHRlclNwYWNpbmc6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGxldHRlclNwYWNpbmcgfSk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuaW5pdGlhbGl6ZSgpO1xuICAgICAgICB0aGlzLnNldCh7XG4gICAgICAgICAgICBsZXR0ZXJTcGFjaW5nOiAwLFxuICAgICAgICAgICAgbGluZUhlaWdodDogMSxcbiAgICAgICAgICAgIHNpemU6IDEsXG4gICAgICAgICAgICBoZWlnaHQ6IDAuMixcbiAgICAgICAgICAgIGJldmVsVGhpY2tuZXNzOiAwLjEsXG4gICAgICAgICAgICBiZXZlbFNpemU6IDAuMDEsXG4gICAgICAgICAgICBiZXZlbEVuYWJsZWQ6IGZhbHNlLFxuICAgICAgICAgICAgYmV2ZWxPZmZzZXQ6IDAsXG4gICAgICAgICAgICBiZXZlbFNlZ21lbnRzOiA0LFxuICAgICAgICAgICAgY3VydmVTZWdtZW50czogOCxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb250JCA9IHRoaXMuc2VsZWN0KCdmb250JykucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKChmb250KSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGZvbnQgPT09ICdzdHJpbmcnKSByZXR1cm4gZmV0Y2goZm9udCkudGhlbigocmVzKSA9PiByZXMuanNvbigpKSBhcyBQcm9taXNlPEZvbnREYXRhPjtcbiAgICAgICAgICAgIHJldHVybiBvZihmb250IGFzIEZvbnREYXRhKTtcbiAgICAgICAgfSksXG4gICAgICAgIG1hcCgoZm9udERhdGEpID0+IG5ldyBGb250TG9hZGVyKCkucGFyc2UoZm9udERhdGEpKVxuICAgICk7XG5cbiAgICByZWFkb25seSBnZW9tZXRyeUFyZ3MkID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgIHRoaXMuZm9udCQsXG4gICAgICAgIHRoaXMuc2VsZWN0KCd0ZXh0JyksXG4gICAgICAgIHRoaXMuc2VsZWN0KCdzaXplJyksXG4gICAgICAgIHRoaXMuc2VsZWN0KCdoZWlnaHQnKSxcbiAgICAgICAgdGhpcy5zZWxlY3QoJ2JldmVsVGhpY2tuZXNzJyksXG4gICAgICAgIHRoaXMuc2VsZWN0KCdiZXZlbFNpemUnKSxcbiAgICAgICAgdGhpcy5zZWxlY3QoJ2JldmVsRW5hYmxlZCcpLFxuICAgICAgICB0aGlzLnNlbGVjdCgnYmV2ZWxTZWdtZW50cycpLFxuICAgICAgICB0aGlzLnNlbGVjdCgnYmV2ZWxPZmZzZXQnKSxcbiAgICAgICAgdGhpcy5zZWxlY3QoJ2N1cnZlU2VnbWVudHMnKSxcbiAgICAgICAgdGhpcy5zZWxlY3QoJ2xldHRlclNwYWNpbmcnKSxcbiAgICAgICAgdGhpcy5zZWxlY3QoJ2xpbmVIZWlnaHQnKSxcbiAgICBdKS5waXBlKFxuICAgICAgICBtYXAoXG4gICAgICAgICAgICAoW1xuICAgICAgICAgICAgICAgIGZvbnQsXG4gICAgICAgICAgICAgICAgdGV4dCxcbiAgICAgICAgICAgICAgICBzaXplLFxuICAgICAgICAgICAgICAgIGhlaWdodCxcbiAgICAgICAgICAgICAgICBiZXZlbFRoaWNrbmVzcyxcbiAgICAgICAgICAgICAgICBiZXZlbFNpemUsXG4gICAgICAgICAgICAgICAgYmV2ZWxFbmFibGVkLFxuICAgICAgICAgICAgICAgIGJldmVsU2VnbWVudHMsXG4gICAgICAgICAgICAgICAgYmV2ZWxPZmZzZXQsXG4gICAgICAgICAgICAgICAgY3VydmVTZWdtZW50cyxcbiAgICAgICAgICAgICAgICBsZXR0ZXJTcGFjaW5nLFxuICAgICAgICAgICAgICAgIGxpbmVIZWlnaHQsXG4gICAgICAgICAgICBdKSA9PiBbXG4gICAgICAgICAgICAgICAgdGV4dCxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQsXG4gICAgICAgICAgICAgICAgICAgIHNpemUsXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodCxcbiAgICAgICAgICAgICAgICAgICAgYmV2ZWxUaGlja25lc3MsXG4gICAgICAgICAgICAgICAgICAgIGJldmVsU2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgYmV2ZWxTZWdtZW50cyxcbiAgICAgICAgICAgICAgICAgICAgYmV2ZWxFbmFibGVkLFxuICAgICAgICAgICAgICAgICAgICBiZXZlbE9mZnNldCxcbiAgICAgICAgICAgICAgICAgICAgY3VydmVTZWdtZW50cyxcbiAgICAgICAgICAgICAgICAgICAgbGV0dGVyU3BhY2luZyxcbiAgICAgICAgICAgICAgICAgICAgbGluZUhlaWdodCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXVxuICAgICAgICApXG4gICAgKTtcbn1cbiJdfQ==
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC0zZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci10aHJlZS1zb2JhL2Fic3RyYWN0aW9ucy9zcmMvbGliL3RleHQtM2QvdGV4dC0zZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDekQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUM3QixPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFZeEQsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7QUFjL0IsTUFBTSxPQUFPLFVBQVcsU0FBUSxVQUFVO0lBWjFDOztRQTZFcUIsVUFBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUM3QyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNmLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUTtnQkFBRSxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBc0IsQ0FBQztZQUNoRyxPQUFPLEVBQUUsQ0FBQyxJQUFnQixDQUFDLENBQUM7UUFDaEMsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDLEtBQUss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ZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGV4dGVuZCwgTmd0QXJncywgTmd0UHVzaCwgTmd0UnhTdG9yZSB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgbWFwLCBvZiwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNZXNoIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgRm9udExvYWRlciwgVGV4dEdlb21ldHJ5IH0gZnJvbSAndGhyZWUtc3RkbGliJztcblxuZGVjbGFyZSB0eXBlIEdseXBoID0geyBfY2FjaGVkT3V0bGluZTogc3RyaW5nW107IGhhOiBudW1iZXI7IG86IHN0cmluZyB9O1xuXG5kZWNsYXJlIHR5cGUgRm9udERhdGEgPSB7XG4gICAgYm91bmRpbmdCb3g6IHsgeU1heDogbnVtYmVyOyB5TWluOiBudW1iZXIgfTtcbiAgICBmYW1pbHlOYW1lOiBzdHJpbmc7XG4gICAgZ2x5cGhzOiB7IFtrOiBzdHJpbmddOiBHbHlwaCB9O1xuICAgIHJlc29sdXRpb246IG51bWJlcjtcbiAgICB1bmRlcmxpbmVUaGlja25lc3M6IG51bWJlcjtcbn07XG5cbmV4dGVuZCh7IE1lc2gsIFRleHRHZW9tZXRyeSB9KTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3RzLXRleHQtM2RbZm9udF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5ndC1tZXNoIG5ndENvbXBvdW5kPlxuICAgICAgICAgICAgPG5ndC10ZXh0LWdlb21ldHJ5ICphcmdzPVwiZ2VvbWV0cnlBcmdzJCB8IG5ndFB1c2ggOiBudWxsXCIgLz5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgICAgIDwvbmd0LW1lc2g+XG4gICAgYCxcbiAgICBpbXBvcnRzOiBbTmd0QXJncywgTmd0UHVzaF0sXG4gICAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzVGV4dDNEIGV4dGVuZHMgTmd0UnhTdG9yZSB7XG4gICAgQElucHV0KCkgc2V0IGZvbnQoZm9udDogRm9udERhdGEgfCBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBmb250IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCB0ZXh0KHRleHQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLnNldCh7IHRleHQgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGJldmVsRW5hYmxlZChiZXZlbEVuYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBiZXZlbEVuYWJsZWQgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGJldmVsT2Zmc2V0KGJldmVsT2Zmc2V0OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBiZXZlbE9mZnNldCB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgYmV2ZWxTaXplKGJldmVsU2l6ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgYmV2ZWxTaXplIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBiZXZlbFRoaWNrbmVzcyhiZXZlbFRoaWNrbmVzczogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgYmV2ZWxUaGlja25lc3MgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IGN1cnZlU2VnbWVudHMoY3VydmVTZWdtZW50czogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgY3VydmVTZWdtZW50cyB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgYmV2ZWxTZWdtZW50cyhiZXZlbFNlZ21lbnRzOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBiZXZlbFNlZ21lbnRzIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBoZWlnaHQoaGVpZ2h0OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBoZWlnaHQgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHNpemUoc2l6ZTogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgc2l6ZSB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgbGluZUhlaWdodChsaW5lSGVpZ2h0OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBsaW5lSGVpZ2h0IH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBsZXR0ZXJTcGFjaW5nKGxldHRlclNwYWNpbmc6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGxldHRlclNwYWNpbmcgfSk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuaW5pdGlhbGl6ZSgpO1xuICAgICAgICB0aGlzLnNldCh7XG4gICAgICAgICAgICBsZXR0ZXJTcGFjaW5nOiAwLFxuICAgICAgICAgICAgbGluZUhlaWdodDogMSxcbiAgICAgICAgICAgIHNpemU6IDEsXG4gICAgICAgICAgICBoZWlnaHQ6IDAuMixcbiAgICAgICAgICAgIGJldmVsVGhpY2tuZXNzOiAwLjEsXG4gICAgICAgICAgICBiZXZlbFNpemU6IDAuMDEsXG4gICAgICAgICAgICBiZXZlbEVuYWJsZWQ6IGZhbHNlLFxuICAgICAgICAgICAgYmV2ZWxPZmZzZXQ6IDAsXG4gICAgICAgICAgICBiZXZlbFNlZ21lbnRzOiA0LFxuICAgICAgICAgICAgY3VydmVTZWdtZW50czogOCxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb250JCA9IHRoaXMuc2VsZWN0KCdmb250JykucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKChmb250KSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGZvbnQgPT09ICdzdHJpbmcnKSByZXR1cm4gZmV0Y2goZm9udCkudGhlbigocmVzKSA9PiByZXMuanNvbigpKSBhcyBQcm9taXNlPEZvbnREYXRhPjtcbiAgICAgICAgICAgIHJldHVybiBvZihmb250IGFzIEZvbnREYXRhKTtcbiAgICAgICAgfSksXG4gICAgICAgIG1hcCgoZm9udERhdGEpID0+IG5ldyBGb250TG9hZGVyKCkucGFyc2UoZm9udERhdGEpKVxuICAgICk7XG5cbiAgICByZWFkb25seSBnZW9tZXRyeUFyZ3MkID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgIHRoaXMuZm9udCQsXG4gICAgICAgIHRoaXMuc2VsZWN0KCd0ZXh0JyksXG4gICAgICAgIHRoaXMuc2VsZWN0KCdzaXplJyksXG4gICAgICAgIHRoaXMuc2VsZWN0KCdoZWlnaHQnKSxcbiAgICAgICAgdGhpcy5zZWxlY3QoJ2JldmVsVGhpY2tuZXNzJyksXG4gICAgICAgIHRoaXMuc2VsZWN0KCdiZXZlbFNpemUnKSxcbiAgICAgICAgdGhpcy5zZWxlY3QoJ2JldmVsRW5hYmxlZCcpLFxuICAgICAgICB0aGlzLnNlbGVjdCgnYmV2ZWxTZWdtZW50cycpLFxuICAgICAgICB0aGlzLnNlbGVjdCgnYmV2ZWxPZmZzZXQnKSxcbiAgICAgICAgdGhpcy5zZWxlY3QoJ2N1cnZlU2VnbWVudHMnKSxcbiAgICAgICAgdGhpcy5zZWxlY3QoJ2xldHRlclNwYWNpbmcnKSxcbiAgICAgICAgdGhpcy5zZWxlY3QoJ2xpbmVIZWlnaHQnKSxcbiAgICBdKS5waXBlKFxuICAgICAgICBtYXAoXG4gICAgICAgICAgICAoW1xuICAgICAgICAgICAgICAgIGZvbnQsXG4gICAgICAgICAgICAgICAgdGV4dCxcbiAgICAgICAgICAgICAgICBzaXplLFxuICAgICAgICAgICAgICAgIGhlaWdodCxcbiAgICAgICAgICAgICAgICBiZXZlbFRoaWNrbmVzcyxcbiAgICAgICAgICAgICAgICBiZXZlbFNpemUsXG4gICAgICAgICAgICAgICAgYmV2ZWxFbmFibGVkLFxuICAgICAgICAgICAgICAgIGJldmVsU2VnbWVudHMsXG4gICAgICAgICAgICAgICAgYmV2ZWxPZmZzZXQsXG4gICAgICAgICAgICAgICAgY3VydmVTZWdtZW50cyxcbiAgICAgICAgICAgICAgICBsZXR0ZXJTcGFjaW5nLFxuICAgICAgICAgICAgICAgIGxpbmVIZWlnaHQsXG4gICAgICAgICAgICBdKSA9PiBbXG4gICAgICAgICAgICAgICAgdGV4dCxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQsXG4gICAgICAgICAgICAgICAgICAgIHNpemUsXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodCxcbiAgICAgICAgICAgICAgICAgICAgYmV2ZWxUaGlja25lc3MsXG4gICAgICAgICAgICAgICAgICAgIGJldmVsU2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgYmV2ZWxTZWdtZW50cyxcbiAgICAgICAgICAgICAgICAgICAgYmV2ZWxFbmFibGVkLFxuICAgICAgICAgICAgICAgICAgICBiZXZlbE9mZnNldCxcbiAgICAgICAgICAgICAgICAgICAgY3VydmVTZWdtZW50cyxcbiAgICAgICAgICAgICAgICAgICAgbGV0dGVyU3BhY2luZyxcbiAgICAgICAgICAgICAgICAgICAgbGluZUhlaWdodCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXVxuICAgICAgICApXG4gICAgKTtcbn1cbiJdfQ==
@@ -1,4 +1,5 @@
1
1
  export * from './lib/camera/camera-content';
2
+ export * from './lib/cube-camera/cube-camera';
2
3
  export * from './lib/orthographic-camera/orthographic-camera';
3
4
  export * from './lib/perspective-camera/perspective-camera';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9jYW1lcmFzL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyw2Q0FBNkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2NhbWVyYS9jYW1lcmEtY29udGVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9vcnRob2dyYXBoaWMtY2FtZXJhL29ydGhvZ3JhcGhpYy1jYW1lcmEnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGVyc3BlY3RpdmUtY2FtZXJhL3BlcnNwZWN0aXZlLWNhbWVyYSc7XG4iXX0=
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9jYW1lcmFzL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLDZDQUE2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvY2FtZXJhL2NhbWVyYS1jb250ZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2N1YmUtY2FtZXJhL2N1YmUtY2FtZXJhJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL29ydGhvZ3JhcGhpYy1jYW1lcmEvb3J0aG9ncmFwaGljLWNhbWVyYSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wZXJzcGVjdGl2ZS1jYW1lcmEvcGVyc3BlY3RpdmUtY2FtZXJhJztcbiJdfQ==
@@ -17,4 +17,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImpor
17
17
  }], propDecorators: { ngtsCameraContent: [{
18
18
  type: Input
19
19
  }] } });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtZXJhLWNvbnRlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9jYW1lcmFzL3NyYy9saWIvY2FtZXJhL2NhbWVyYS1jb250ZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSXRFLE1BQU0sT0FBTyxpQkFBaUI7SUFEOUI7UUFFYSxhQUFRLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQy9CLHNCQUFpQixHQUFpQixFQUFFLENBQUM7S0FRakQ7SUFORyxNQUFNLENBQUMsc0JBQXNCLENBQ3pCLENBQW9CLEVBQ3BCLEdBQVk7UUFFWixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDOzs4R0FUUSxpQkFBaUI7a0dBQWpCLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQUQ3QixTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLGdDQUFnQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUU7OEJBRzlELGlCQUFpQjtzQkFBekIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgaW5qZWN0LCBJbnB1dCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnbmctdGVtcGxhdGVbbmd0c0NhbWVyYUNvbnRlbnRdJywgc3RhbmRhbG9uZTogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIE5ndHNDYW1lcmFDb250ZW50IHtcbiAgICByZWFkb25seSB0ZW1wbGF0ZSA9IGluamVjdChUZW1wbGF0ZVJlZik7XG4gICAgQElucHV0KCkgbmd0c0NhbWVyYUNvbnRlbnQ6IGJvb2xlYW4gfCAnJyA9ICcnO1xuXG4gICAgc3RhdGljIG5nVGVtcGxhdGVDb250ZXh0R3VhcmQoXG4gICAgICAgIF86IE5ndHNDYW1lcmFDb250ZW50LFxuICAgICAgICBjdHg6IHVua25vd25cbiAgICApOiBjdHggaXMgeyB0YXJnZXQ6IFRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OyBncm91cD86IFRIUkVFLkdyb3VwIH0ge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG59XG4iXX0=
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtZXJhLWNvbnRlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9jYW1lcmFzL3NyYy9saWIvY2FtZXJhL2NhbWVyYS1jb250ZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSXRFLE1BQU0sT0FBTyxpQkFBaUI7SUFEOUI7UUFFYSxhQUFRLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQy9CLHNCQUFpQixHQUFpQixFQUFFLENBQUM7S0FRakQ7SUFORyxNQUFNLENBQUMsc0JBQXNCLENBQ3pCLENBQW9CLEVBQ3BCLEdBQVk7UUFFWixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDOzs4R0FUUSxpQkFBaUI7a0dBQWpCLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQUQ3QixTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLGdDQUFnQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUU7OEJBRzlELGlCQUFpQjtzQkFBekIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgaW5qZWN0LCBJbnB1dCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnbmctdGVtcGxhdGVbbmd0c0NhbWVyYUNvbnRlbnRdJywgc3RhbmRhbG9uZTogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIE5ndHNDYW1lcmFDb250ZW50IHtcbiAgICByZWFkb25seSB0ZW1wbGF0ZSA9IGluamVjdChUZW1wbGF0ZVJlZik7XG4gICAgQElucHV0KCkgbmd0c0NhbWVyYUNvbnRlbnQ6IGJvb2xlYW4gfCAnJyA9ICcnO1xuXG4gICAgc3RhdGljIG5nVGVtcGxhdGVDb250ZXh0R3VhcmQoXG4gICAgICAgIF86IE5ndHNDYW1lcmFDb250ZW50LFxuICAgICAgICBjdHg6IHVua25vd25cbiAgICApOiBjdHggaXMgeyBmYm86IFRIUkVFLldlYkdMUmVuZGVyVGFyZ2V0OyBncm91cD86IFRIUkVFLkdyb3VwIH0ge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,130 @@
1
+ import { NgIf, NgTemplateOutlet } from '@angular/common';
2
+ import { Component, ContentChild, CUSTOM_ELEMENTS_SCHEMA, ElementRef, inject, Input, ViewChild } from '@angular/core';
3
+ import { extend, injectBeforeRender, injectNgtRef, NgtArgs, NgtRxStore, NgtStore } from 'angular-three';
4
+ import { combineLatest, map } from 'rxjs';
5
+ import * as THREE from 'three';
6
+ import { CubeCamera, Group } from 'three';
7
+ import { NgtsCameraContent } from '../camera/camera-content';
8
+ import * as i0 from "@angular/core";
9
+ extend({ Group, CubeCamera });
10
+ export class NgtsCubeCamera extends NgtRxStore {
11
+ /** Number of frames to render, Infinity */
12
+ set frames(frames) {
13
+ this.set({ frames });
14
+ }
15
+ /** Resolution of the FBO, 256 */
16
+ set resolution(resolution) {
17
+ this.set({ resolution });
18
+ }
19
+ /** Camera near, 0.1 */
20
+ set near(near) {
21
+ this.set({ near });
22
+ }
23
+ /** Camera far, 1000 */
24
+ set far(far) {
25
+ this.set({ far });
26
+ }
27
+ /** Custom environment map that is temporarily set as the scenes background */
28
+ set envMap(envMap) {
29
+ this.set({ envMap });
30
+ }
31
+ /** Custom fog that is temporarily set as the scenes fog */
32
+ set fog(fog) {
33
+ this.set({ fog });
34
+ }
35
+ initialize() {
36
+ super.initialize();
37
+ this.set({
38
+ frames: Infinity,
39
+ resolution: 256,
40
+ near: 0.1,
41
+ far: 1000,
42
+ });
43
+ }
44
+ constructor() {
45
+ super();
46
+ this.cameraRef = injectNgtRef();
47
+ this.store = inject(NgtStore);
48
+ this.connect('fbo', this.select('resolution').pipe(map((resolution) => {
49
+ const fbo = new THREE.WebGLCubeRenderTarget(resolution);
50
+ fbo.texture.encoding = this.store.get('gl').outputEncoding;
51
+ fbo.texture.type = THREE.HalfFloatType;
52
+ return fbo;
53
+ })));
54
+ this.connect('cameraArgs', combineLatest([this.select('near'), this.select('far'), this.select('fbo')]));
55
+ let count = 0;
56
+ let originalFog;
57
+ let originalBackground;
58
+ injectBeforeRender(({ scene, gl }) => {
59
+ const { frames, envMap, fog } = this.get();
60
+ if (envMap &&
61
+ this.cameraRef.nativeElement &&
62
+ this.groupRef.nativeElement &&
63
+ (frames === Infinity || count < frames)) {
64
+ this.groupRef.nativeElement.visible = false;
65
+ originalFog = scene.fog;
66
+ originalBackground = scene.background;
67
+ scene.background = envMap || originalBackground;
68
+ scene.fog = fog || originalFog;
69
+ this.cameraRef.nativeElement.update(gl, scene);
70
+ scene.fog = originalFog;
71
+ scene.background = originalBackground;
72
+ this.groupRef.nativeElement.visible = true;
73
+ count++;
74
+ }
75
+ });
76
+ }
77
+ }
78
+ NgtsCubeCamera.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsCubeCamera, deps: [], target: i0.ɵɵFactoryTarget.Component });
79
+ NgtsCubeCamera.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: NgtsCubeCamera, isStandalone: true, selector: "ngts-cube-camera", inputs: { frames: "frames", resolution: "resolution", near: "near", far: "far", envMap: "envMap", fog: "fog" }, queries: [{ propertyName: "cameraContent", first: true, predicate: NgtsCameraContent, descendants: true }], viewQueries: [{ propertyName: "groupRef", first: true, predicate: ["group"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
80
+ <ngt-group ngtCompound>
81
+ <ngt-cube-camera [ref]="cameraRef" *args="get('cameraArgs')" />
82
+ <ngt-group #group>
83
+ <ng-container
84
+ *ngIf="cameraContent && cameraContent.ngtsCameraContent && get('fbo')"
85
+ [ngTemplateOutlet]="cameraContent.template"
86
+ [ngTemplateOutletContext]="{ fbo: get('fbo').texture, group }"
87
+ />
88
+ </ngt-group>
89
+ </ngt-group>
90
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgtArgs, selector: "[args]", inputs: ["args"] }] });
91
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: NgtsCubeCamera, decorators: [{
92
+ type: Component,
93
+ args: [{
94
+ selector: 'ngts-cube-camera',
95
+ standalone: true,
96
+ template: `
97
+ <ngt-group ngtCompound>
98
+ <ngt-cube-camera [ref]="cameraRef" *args="get('cameraArgs')" />
99
+ <ngt-group #group>
100
+ <ng-container
101
+ *ngIf="cameraContent && cameraContent.ngtsCameraContent && get('fbo')"
102
+ [ngTemplateOutlet]="cameraContent.template"
103
+ [ngTemplateOutletContext]="{ fbo: get('fbo').texture, group }"
104
+ />
105
+ </ngt-group>
106
+ </ngt-group>
107
+ `,
108
+ imports: [NgIf, NgTemplateOutlet, NgtArgs],
109
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
110
+ }]
111
+ }], ctorParameters: function () { return []; }, propDecorators: { groupRef: [{
112
+ type: ViewChild,
113
+ args: ['group', { static: true }]
114
+ }], cameraContent: [{
115
+ type: ContentChild,
116
+ args: [NgtsCameraContent]
117
+ }], frames: [{
118
+ type: Input
119
+ }], resolution: [{
120
+ type: Input
121
+ }], near: [{
122
+ type: Input
123
+ }], far: [{
124
+ type: Input
125
+ }], envMap: [{
126
+ type: Input
127
+ }], fog: [{
128
+ type: Input
129
+ }] } });
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ViZS1jYW1lcmEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9jYW1lcmFzL3NyYy9saWIvY3ViZS1jYW1lcmEvY3ViZS1jYW1lcmEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLHNCQUFzQixFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0SCxPQUFPLEVBQUUsTUFBTSxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RyxPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMvQixPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUMxQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFFN0QsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7QUFvQjlCLE1BQU0sT0FBTyxjQUFlLFNBQVEsVUFBVTtJQU0xQywyQ0FBMkM7SUFDM0MsSUFBYSxNQUFNLENBQUMsTUFBYztRQUM5QixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBQ0QsaUNBQWlDO0lBQ2pDLElBQWEsVUFBVSxDQUFDLFVBQWtCO1FBQ3RDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFD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QUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUMvQyxLQUFLLENBQUMsR0FBRyxHQUFHLFdBQVcsQ0FBQztnQkFDeEIsS0FBSyxDQUFDLFVBQVUsR0FBRyxrQkFBa0IsQ0FBQztnQkFDdEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztnQkFDM0MsS0FBSyxFQUFFLENBQUM7YUFDWDtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7MkdBakZRLGNBQWM7K0ZBQWQsY0FBYyx1T0FFVCxpQkFBaUIsd0xBakJyQjs7Ozs7Ozs7Ozs7S0FXVCw0REFDUyxJQUFJLDZGQUFFLGdCQUFnQixvSkFBRSxPQUFPOzJGQUdoQyxjQUFjO2tCQWxCMUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7Ozs7Ozs7OztLQVdUO29CQUNELE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLENBQUM7b0JBQzFDLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNwQzswRUFFeUMsUUFBUTtzQkFBN0MsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNILGFBQWE7c0JBQTdDLFlBQVk7dUJBQUMsaUJBQWlCO2dCQUtsQixNQUFNO3NCQUFsQixLQUFLO2dCQUlPLFVBQVU7c0JBQXRCLEtBQUs7Z0JBSU8sSUFBSTtzQkFBaEIsS0FBSztnQkFJTyxHQUFHO3NCQUFmLEtBQUs7Z0JBSU8sTUFBTTtzQkFBbEIsS0FBSztnQkFJTyxHQUFHO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBFbGVtZW50UmVmLCBpbmplY3QsIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGV4dGVuZCwgaW5qZWN0QmVmb3JlUmVuZGVyLCBpbmplY3ROZ3RSZWYsIE5ndEFyZ3MsIE5ndFJ4U3RvcmUsIE5ndFN0b3JlIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBtYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IEN1YmVDYW1lcmEsIEdyb3VwIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgTmd0c0NhbWVyYUNvbnRlbnQgfSBmcm9tICcuLi9jYW1lcmEvY2FtZXJhLWNvbnRlbnQnO1xuXG5leHRlbmQoeyBHcm91cCwgQ3ViZUNhbWVyYSB9KTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3RzLWN1YmUtY2FtZXJhJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxuZ3QtZ3JvdXAgbmd0Q29tcG91bmQ+XG4gICAgICAgICAgICA8bmd0LWN1YmUtY2FtZXJhIFtyZWZdPVwiY2FtZXJhUmVmXCIgKmFyZ3M9XCJnZXQoJ2NhbWVyYUFyZ3MnKVwiIC8+XG4gICAgICAgICAgICA8bmd0LWdyb3VwICNncm91cD5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiY2FtZXJhQ29udGVudCAmJiBjYW1lcmFDb250ZW50Lm5ndHNDYW1lcmFDb250ZW50ICYmIGdldCgnZmJvJylcIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjYW1lcmFDb250ZW50LnRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgZmJvOiBnZXQoJ2ZibycpLnRleHR1cmUsIGdyb3VwIH1cIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L25ndC1ncm91cD5cbiAgICAgICAgPC9uZ3QtZ3JvdXA+XG4gICAgYCxcbiAgICBpbXBvcnRzOiBbTmdJZiwgTmdUZW1wbGF0ZU91dGxldCwgTmd0QXJnc10sXG4gICAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzQ3ViZUNhbWVyYSBleHRlbmRzIE5ndFJ4U3RvcmUge1xuICAgIEBWaWV3Q2hpbGQoJ2dyb3VwJywgeyBzdGF0aWM6IHRydWUgfSkgZ3JvdXBSZWYhOiBFbGVtZW50UmVmPFRIUkVFLkdyb3VwPjtcbiAgICBAQ29udGVudENoaWxkKE5ndHNDYW1lcmFDb250ZW50KSBjYW1lcmFDb250ZW50PzogTmd0c0NhbWVyYUNvbnRlbnQ7XG5cbiAgICByZWFkb25seSBjYW1lcmFSZWYgPSBpbmplY3ROZ3RSZWY8VEhSRUUuQ3ViZUNhbWVyYT4oKTtcblxuICAgIC8qKiBOdW1iZXIgb2YgZnJhbWVzIHRvIHJlbmRlciwgSW5maW5pdHkgKi9cbiAgICBASW5wdXQoKSBzZXQgZnJhbWVzKGZyYW1lczogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZnJhbWVzIH0pO1xuICAgIH1cbiAgICAvKiogUmVzb2x1dGlvbiBvZiB0aGUgRkJPLCAyNTYgKi9cbiAgICBASW5wdXQoKSBzZXQgcmVzb2x1dGlvbihyZXNvbHV0aW9uOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyByZXNvbHV0aW9uIH0pO1xuICAgIH1cbiAgICAvKiogQ2FtZXJhIG5lYXIsIDAuMSAqL1xuICAgIEBJbnB1dCgpIHNldCBuZWFyKG5lYXI6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IG5lYXIgfSk7XG4gICAgfVxuICAgIC8qKiBDYW1lcmEgZmFyLCAxMDAwICovXG4gICAgQElucHV0KCkgc2V0IGZhcihmYXI6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGZhciB9KTtcbiAgICB9XG4gICAgLyoqIEN1c3RvbSBlbnZpcm9ubWVudCBtYXAgdGhhdCBpcyB0ZW1wb3JhcmlseSBzZXQgYXMgdGhlIHNjZW5lcyBiYWNrZ3JvdW5kICovXG4gICAgQElucHV0KCkgc2V0IGVudk1hcChlbnZNYXA6IFRIUkVFLlRleHR1cmUpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBlbnZNYXAgfSk7XG4gICAgfVxuICAgIC8qKiBDdXN0b20gZm9nIHRoYXQgaXMgdGVtcG9yYXJpbHkgc2V0IGFzIHRoZSBzY2VuZXMgZm9nICovXG4gICAgQElucHV0KCkgc2V0IGZvZyhmb2c6IFRIUkVFLkZvZyB8IFRIUkVFLkZvZ0V4cDIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBmb2cgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdG9yZSA9IGluamVjdChOZ3RTdG9yZSk7XG5cbiAgICBvdmVycmlkZSBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5pbml0aWFsaXplKCk7XG4gICAgICAgIHRoaXMuc2V0KHtcbiAgICAgICAgICAgIGZyYW1lczogSW5maW5pdHksXG4gICAgICAgICAgICByZXNvbHV0aW9uOiAyNTYsXG4gICAgICAgICAgICBuZWFyOiAwLjEsXG4gICAgICAgICAgICBmYXI6IDEwMDAsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmNvbm5lY3QoXG4gICAgICAgICAgICAnZmJvJyxcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0KCdyZXNvbHV0aW9uJykucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHJlc29sdXRpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmJvID0gbmV3IFRIUkVFLldlYkdMQ3ViZVJlbmRlclRhcmdldChyZXNvbHV0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgZmJvLnRleHR1cmUuZW5jb2RpbmcgPSB0aGlzLnN0b3JlLmdldCgnZ2wnKS5vdXRwdXRFbmNvZGluZztcbiAgICAgICAgICAgICAgICAgICAgZmJvLnRleHR1cmUudHlwZSA9IFRIUkVFLkhhbGZGbG9hdFR5cGU7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYm87XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5jb25uZWN0KCdjYW1lcmFBcmdzJywgY29tYmluZUxhdGVzdChbdGhpcy5zZWxlY3QoJ25lYXInKSwgdGhpcy5zZWxlY3QoJ2ZhcicpLCB0aGlzLnNlbGVjdCgnZmJvJyldKSk7XG5cbiAgICAgICAgbGV0IGNvdW50ID0gMDtcbiAgICAgICAgbGV0IG9yaWdpbmFsRm9nOiBUSFJFRS5TY2VuZVsnZm9nJ107XG4gICAgICAgIGxldCBvcmlnaW5hbEJhY2tncm91bmQ6IFRIUkVFLlNjZW5lWydiYWNrZ3JvdW5kJ107XG4gICAgICAgIGluamVjdEJlZm9yZVJlbmRlcigoeyBzY2VuZSwgZ2wgfSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBmcmFtZXMsIGVudk1hcCwgZm9nIH0gPSB0aGlzLmdldCgpO1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGVudk1hcCAmJlxuICAgICAgICAgICAgICAgIHRoaXMuY2FtZXJhUmVmLm5hdGl2ZUVsZW1lbnQgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmdyb3VwUmVmLm5hdGl2ZUVsZW1lbnQgJiZcbiAgICAgICAgICAgICAgICAoZnJhbWVzID09PSBJbmZpbml0eSB8fCBjb3VudCA8IGZyYW1lcylcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXBSZWYubmF0aXZlRWxlbWVudC52aXNpYmxlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgb3JpZ2luYWxGb2cgPSBzY2VuZS5mb2c7XG4gICAgICAgICAgICAgICAgb3JpZ2luYWxCYWNrZ3JvdW5kID0gc2NlbmUuYmFja2dyb3VuZDtcbiAgICAgICAgICAgICAgICBzY2VuZS5iYWNrZ3JvdW5kID0gZW52TWFwIHx8IG9yaWdpbmFsQmFja2dyb3VuZDtcbiAgICAgICAgICAgICAgICBzY2VuZS5mb2cgPSBmb2cgfHwgb3JpZ2luYWxGb2c7XG4gICAgICAgICAgICAgICAgdGhpcy5jYW1lcmFSZWYubmF0aXZlRWxlbWVudC51cGRhdGUoZ2wsIHNjZW5lKTtcbiAgICAgICAgICAgICAgICBzY2VuZS5mb2cgPSBvcmlnaW5hbEZvZztcbiAgICAgICAgICAgICAgICBzY2VuZS5iYWNrZ3JvdW5kID0gb3JpZ2luYWxCYWNrZ3JvdW5kO1xuICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXBSZWYubmF0aXZlRWxlbWVudC52aXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBjb3VudCsrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
@@ -1,4 +1,6 @@
1
1
  export * from './lib/mesh-distort-material/mesh-distort-material';
2
2
  export * from './lib/mesh-reflector-material/mesh-reflector-material';
3
+ export * from './lib/mesh-refraction-material/mesh-refraction-material';
4
+ export * from './lib/mesh-transmission-material/mesh-transmission-material';
3
5
  export * from './lib/mesh-wobble-material/mesh-wobble-material';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9tYXRlcmlhbHMvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLGlEQUFpRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvbWVzaC1kaXN0b3J0LW1hdGVyaWFsL21lc2gtZGlzdG9ydC1tYXRlcmlhbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZXNoLXJlZmxlY3Rvci1tYXRlcmlhbC9tZXNoLXJlZmxlY3Rvci1tYXRlcmlhbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZXNoLXdvYmJsZS1tYXRlcmlhbC9tZXNoLXdvYmJsZS1tYXRlcmlhbCc7XG4iXX0=
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9tYXRlcmlhbHMvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsNkRBQTZELENBQUM7QUFDNUUsY0FBYyxpREFBaUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL21lc2gtZGlzdG9ydC1tYXRlcmlhbC9tZXNoLWRpc3RvcnQtbWF0ZXJpYWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWVzaC1yZWZsZWN0b3ItbWF0ZXJpYWwvbWVzaC1yZWZsZWN0b3ItbWF0ZXJpYWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWVzaC1yZWZyYWN0aW9uLW1hdGVyaWFsL21lc2gtcmVmcmFjdGlvbi1tYXRlcmlhbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZXNoLXRyYW5zbWlzc2lvbi1tYXRlcmlhbC9tZXNoLXRyYW5zbWlzc2lvbi1tYXRlcmlhbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZXNoLXdvYmJsZS1tYXRlcmlhbC9tZXNoLXdvYmJsZS1tYXRlcmlhbCc7XG4iXX0=