angular-three-soba 2.8.1 → 2.10.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/abstractions/lib/catmull-rom-line.d.ts +2 -2
- package/abstractions/lib/edges.d.ts +2 -2
- package/esm2022/materials/index.mjs +2 -1
- package/esm2022/materials/lib/mesh-portal-material.mjs +294 -0
- package/esm2022/misc/lib/fbo.mjs +2 -2
- package/esm2022/vanilla-exports/index.mjs +3 -3
- package/fesm2022/angular-three-soba-materials.mjs +295 -8
- package/fesm2022/angular-three-soba-materials.mjs.map +1 -1
- package/fesm2022/angular-three-soba-misc.mjs +1 -1
- package/fesm2022/angular-three-soba-misc.mjs.map +1 -1
- package/fesm2022/angular-three-soba-vanilla-exports.mjs +1 -1
- package/materials/index.d.ts +1 -0
- package/materials/lib/mesh-portal-material.d.ts +158 -0
- package/materials/lib/mesh-refraction-material.d.ts +2 -2
- package/metadata.json +1 -1
- package/misc/lib/computed-attribute.d.ts +2 -2
- package/misc/lib/fbo.d.ts +1 -1
- package/misc/lib/html/html.d.ts +1 -1
- package/package.json +13 -13
- package/vanilla-exports/index.d.ts +8 -2
- package/web-types.json +1 -1
|
@@ -135,7 +135,7 @@ export declare class NgtsCatmullRomLine {
|
|
|
135
135
|
id?: number | undefined;
|
|
136
136
|
uuid?: string | undefined;
|
|
137
137
|
name?: string | undefined;
|
|
138
|
-
type?: string | undefined;
|
|
138
|
+
readonly type?: string | undefined;
|
|
139
139
|
visible?: boolean | undefined;
|
|
140
140
|
userData?: Record<string, any> | undefined;
|
|
141
141
|
onBeforeRender?: ((renderer: import("three").WebGLRenderer, scene: import("three").Scene, camera: import("three").Camera, geometry: import("three").BufferGeometry, object: import("three").Object3D, group: import("three").Group) => void) | undefined;
|
|
@@ -342,7 +342,7 @@ export declare class NgtsCatmullRomLine {
|
|
|
342
342
|
id?: number | undefined;
|
|
343
343
|
uuid?: string | undefined;
|
|
344
344
|
name?: string | undefined;
|
|
345
|
-
type?: string | undefined;
|
|
345
|
+
readonly type?: string | undefined;
|
|
346
346
|
visible?: boolean | undefined;
|
|
347
347
|
userData?: Record<string, any> | undefined;
|
|
348
348
|
onBeforeRender?: ((renderer: import("three").WebGLRenderer, scene: import("three").Scene, camera: import("three").Camera, geometry: import("three").BufferGeometry, object: import("three").Object3D, group: import("three").Group) => void) | undefined;
|
|
@@ -220,7 +220,7 @@ export declare class NgtsEdges {
|
|
|
220
220
|
id?: number | undefined;
|
|
221
221
|
uuid?: string | undefined;
|
|
222
222
|
name?: string | undefined;
|
|
223
|
-
type?: string | undefined;
|
|
223
|
+
readonly type?: string | undefined;
|
|
224
224
|
visible?: boolean | undefined;
|
|
225
225
|
userData?: Record<string, any> | undefined;
|
|
226
226
|
onBeforeRender?: ((renderer: import("three").WebGLRenderer, scene: import("three").Scene, camera: import("three").Camera, geometry: BufferGeometry, object: import("three").Object3D, group: import("three").Group) => void) | undefined;
|
|
@@ -520,7 +520,7 @@ export declare class NgtsEdges {
|
|
|
520
520
|
id?: number | undefined;
|
|
521
521
|
uuid?: string | undefined;
|
|
522
522
|
name?: string | undefined;
|
|
523
|
-
type?: string | undefined;
|
|
523
|
+
readonly type?: string | undefined;
|
|
524
524
|
visible?: boolean | undefined;
|
|
525
525
|
userData?: Record<string, any> | undefined;
|
|
526
526
|
onBeforeRender?: ((renderer: import("three").WebGLRenderer, scene: import("three").Scene, camera: import("three").Camera, geometry: BufferGeometry, object: import("three").Object3D, group: import("three").Group) => void) | undefined;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
export * from './lib/custom-shader-material';
|
|
2
2
|
export * from './lib/mesh-distort-material';
|
|
3
|
+
export * from './lib/mesh-portal-material';
|
|
3
4
|
export * from './lib/mesh-reflector-material';
|
|
4
5
|
export * from './lib/mesh-refraction-material';
|
|
5
6
|
export * from './lib/mesh-transmission-material';
|
|
6
7
|
export * from './lib/mesh-wobble-material';
|
|
7
8
|
export * from './lib/point-material';
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvbWF0ZXJpYWxzL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9jdXN0b20tc2hhZGVyLW1hdGVyaWFsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21lc2gtZGlzdG9ydC1tYXRlcmlhbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZXNoLXBvcnRhbC1tYXRlcmlhbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZXNoLXJlZmxlY3Rvci1tYXRlcmlhbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZXNoLXJlZnJhY3Rpb24tbWF0ZXJpYWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWVzaC10cmFuc21pc3Npb24tbWF0ZXJpYWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWVzaC13b2JibGUtbWF0ZXJpYWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcG9pbnQtbWF0ZXJpYWwnO1xuIl19
|
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
import { NgTemplateOutlet } from '@angular/common';
|
|
2
|
+
import { afterNextRender, ChangeDetectionStrategy, Component, computed, contentChild, CUSTOM_ELEMENTS_SCHEMA, Directive, effect, inject, Injector, input, signal, TemplateRef, viewChild, } from '@angular/core';
|
|
3
|
+
import { extend, getLocalState, injectBeforeRender, injectStore, omit, pick, } from 'angular-three';
|
|
4
|
+
import { getVersion, injectFBO, injectIntersect } from 'angular-three-soba/misc';
|
|
5
|
+
import { NgtsRenderTexture, NgtsRenderTextureContent } from 'angular-three-soba/staging';
|
|
6
|
+
import { MeshPortalMaterial, meshPortalMaterialApplySDF, } from 'angular-three-soba/vanilla-exports';
|
|
7
|
+
import { mergeInputs } from 'ngxtension/inject-inputs';
|
|
8
|
+
import { Mesh, ShaderMaterial } from 'three';
|
|
9
|
+
import { FullScreenQuad } from 'three-stdlib';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
/**
|
|
12
|
+
* This directive is used inside of the render texture, hence has access to the render texture store (a portal store)
|
|
13
|
+
*/
|
|
14
|
+
export class ManagePortalScene {
|
|
15
|
+
constructor() {
|
|
16
|
+
this.events = input();
|
|
17
|
+
this.rootScene = input.required();
|
|
18
|
+
this.material = input.required();
|
|
19
|
+
this.priority = input.required();
|
|
20
|
+
this.worldUnits = input.required();
|
|
21
|
+
const injector = inject(Injector);
|
|
22
|
+
const renderTextureStore = injectStore();
|
|
23
|
+
const portalScene = renderTextureStore.select('scene');
|
|
24
|
+
const portalSetEvents = renderTextureStore.select('setEvents');
|
|
25
|
+
const buffer1 = injectFBO();
|
|
26
|
+
const buffer2 = injectFBO();
|
|
27
|
+
const fullScreenQuad = computed(() => {
|
|
28
|
+
// This fullscreen-quad is used to blend the two textures
|
|
29
|
+
const blend = { value: 0 };
|
|
30
|
+
const quad = new FullScreenQuad(new ShaderMaterial({
|
|
31
|
+
uniforms: {
|
|
32
|
+
a: { value: buffer1().texture },
|
|
33
|
+
b: { value: buffer2().texture },
|
|
34
|
+
blend,
|
|
35
|
+
},
|
|
36
|
+
vertexShader: /*glsl*/ `
|
|
37
|
+
varying vec2 vUv;
|
|
38
|
+
void main() {
|
|
39
|
+
vUv = uv;
|
|
40
|
+
gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
|
|
41
|
+
}`,
|
|
42
|
+
fragmentShader: /*glsl*/ `
|
|
43
|
+
uniform sampler2D a;
|
|
44
|
+
uniform sampler2D b;
|
|
45
|
+
uniform float blend;
|
|
46
|
+
varying vec2 vUv;
|
|
47
|
+
#include <packing>
|
|
48
|
+
void main() {
|
|
49
|
+
vec4 ta = texture2D(a, vUv);
|
|
50
|
+
vec4 tb = texture2D(b, vUv);
|
|
51
|
+
gl_FragColor = mix(tb, ta, blend);
|
|
52
|
+
#include <tonemapping_fragment>
|
|
53
|
+
#include <${getVersion() >= 154 ? 'colorspace_fragment' : 'encodings_fragment'}>
|
|
54
|
+
}`,
|
|
55
|
+
}));
|
|
56
|
+
return [quad, blend];
|
|
57
|
+
});
|
|
58
|
+
effect(() => {
|
|
59
|
+
const [events, setEvents] = [this.events(), portalSetEvents()];
|
|
60
|
+
if (!events)
|
|
61
|
+
return;
|
|
62
|
+
setEvents({ enabled: events });
|
|
63
|
+
});
|
|
64
|
+
afterNextRender(() => {
|
|
65
|
+
portalScene().matrixAutoUpdate = false;
|
|
66
|
+
// we start the before render in afterNextRender because we need the priority input to be resolved
|
|
67
|
+
injectBeforeRender(({ gl, camera }) => {
|
|
68
|
+
const material = this.material();
|
|
69
|
+
const localState = getLocalState(material);
|
|
70
|
+
if (!localState)
|
|
71
|
+
return;
|
|
72
|
+
const parent = localState.parent();
|
|
73
|
+
if (!parent)
|
|
74
|
+
return;
|
|
75
|
+
const materialBlend = 'blend' in material && typeof material.blend === 'number' ? material.blend : 0;
|
|
76
|
+
const [worldUnits, priority, rootScene, scene, [quad, blend]] = [
|
|
77
|
+
this.worldUnits(),
|
|
78
|
+
this.priority(),
|
|
79
|
+
this.rootScene(),
|
|
80
|
+
portalScene(),
|
|
81
|
+
fullScreenQuad(),
|
|
82
|
+
];
|
|
83
|
+
// Move portal contents along with the parent if worldUnits is true
|
|
84
|
+
if (!worldUnits) {
|
|
85
|
+
// If the portal renders exclusively the original scene needs to be updated
|
|
86
|
+
if (priority && materialBlend === 1)
|
|
87
|
+
parent.updateWorldMatrix(true, false);
|
|
88
|
+
scene.matrixWorld.copy(parent.matrixWorld);
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
scene.matrixWorld.identity();
|
|
92
|
+
}
|
|
93
|
+
// This bit is only necessary if the portal is blended, now it has a render-priority
|
|
94
|
+
// and will take over the render loop
|
|
95
|
+
if (priority) {
|
|
96
|
+
if (materialBlend > 0 && materialBlend < 1) {
|
|
97
|
+
// If blend is ongoing (> 0 and < 1) then we need to render both the root scene
|
|
98
|
+
// and the portal scene, both will then be mixed in the quad from above
|
|
99
|
+
blend.value = materialBlend;
|
|
100
|
+
gl.setRenderTarget(buffer1());
|
|
101
|
+
gl.render(scene, camera);
|
|
102
|
+
gl.setRenderTarget(buffer2());
|
|
103
|
+
gl.render(rootScene, camera);
|
|
104
|
+
gl.setRenderTarget(null);
|
|
105
|
+
quad.render(gl);
|
|
106
|
+
}
|
|
107
|
+
else if (materialBlend === 1) {
|
|
108
|
+
// However if blend is 1 we only need to render the portal scene
|
|
109
|
+
gl.render(scene, camera);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}, { injector, priority: this.priority() });
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ManagePortalScene, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
116
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.11", type: ManagePortalScene, isStandalone: true, selector: "ngts-manage-portal-scene", inputs: { events: { classPropertyName: "events", publicName: "events", isSignal: true, isRequired: false, transformFunction: null }, rootScene: { classPropertyName: "rootScene", publicName: "rootScene", isSignal: true, isRequired: true, transformFunction: null }, material: { classPropertyName: "material", publicName: "material", isSignal: true, isRequired: true, transformFunction: null }, priority: { classPropertyName: "priority", publicName: "priority", isSignal: true, isRequired: true, transformFunction: null }, worldUnits: { classPropertyName: "worldUnits", publicName: "worldUnits", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0 }); }
|
|
117
|
+
}
|
|
118
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: ManagePortalScene, decorators: [{
|
|
119
|
+
type: Directive,
|
|
120
|
+
args: [{ selector: 'ngts-manage-portal-scene', standalone: true }]
|
|
121
|
+
}], ctorParameters: () => [] });
|
|
122
|
+
const defaultOptions = {
|
|
123
|
+
blend: 0.5,
|
|
124
|
+
blur: 0,
|
|
125
|
+
resolution: 512,
|
|
126
|
+
worldUnits: false,
|
|
127
|
+
eventPriority: 0,
|
|
128
|
+
renderPriority: 0,
|
|
129
|
+
events: false,
|
|
130
|
+
};
|
|
131
|
+
export class NgtsMeshPortalMaterial {
|
|
132
|
+
constructor() {
|
|
133
|
+
this.attach = input('material');
|
|
134
|
+
this.options = input(defaultOptions, { transform: mergeInputs(defaultOptions) });
|
|
135
|
+
this.parameters = omit(this.options, ['blur', 'resolution', 'worldUnits', 'eventPriority', 'renderPriority', 'events']);
|
|
136
|
+
this.blur = pick(this.options, 'blur');
|
|
137
|
+
this.eventPriority = pick(this.options, 'eventPriority');
|
|
138
|
+
this.renderPriority = pick(this.options, 'renderPriority');
|
|
139
|
+
this.events = pick(this.options, 'events');
|
|
140
|
+
this.worldUnits = pick(this.options, 'worldUnits');
|
|
141
|
+
this.materialRef = viewChild.required('material');
|
|
142
|
+
this.content = contentChild.required(TemplateRef);
|
|
143
|
+
this.store = injectStore();
|
|
144
|
+
this.size = this.store.select('size');
|
|
145
|
+
this.viewport = this.store.select('viewport');
|
|
146
|
+
this.gl = this.store.select('gl');
|
|
147
|
+
this.setEvents = this.store.select('setEvents');
|
|
148
|
+
this.rootScene = this.store.select('scene');
|
|
149
|
+
this.materialResolution = computed(() => [
|
|
150
|
+
this.size().width * this.viewport().dpr,
|
|
151
|
+
this.size().height * this.viewport().dpr,
|
|
152
|
+
]);
|
|
153
|
+
this.resolution = pick(this.options, 'resolution');
|
|
154
|
+
this.parent = signal(null);
|
|
155
|
+
this.visible = injectIntersect(this.parent, { source: signal(true) });
|
|
156
|
+
this.renderTextureFrames = computed(() => (this.visible() ? Infinity : 0));
|
|
157
|
+
this.renderTextureCompute = computed(() => {
|
|
158
|
+
const [parent, material] = [this.parent(), this.materialRef().nativeElement];
|
|
159
|
+
const computeFn = (event, state) => {
|
|
160
|
+
if (!parent)
|
|
161
|
+
return false;
|
|
162
|
+
state.snapshot.pointer.set((event.offsetX / state.snapshot.size.width) * 2 - 1, -(event.offsetY / state.snapshot.size.height) * 2 + 1);
|
|
163
|
+
state.snapshot.raycaster.setFromCamera(state.snapshot.pointer, state.snapshot.camera);
|
|
164
|
+
if ('blend' in material && material.blend === 0) {
|
|
165
|
+
// We run a quick check against the parent, if it isn't hit there's no need to raycast at all
|
|
166
|
+
const [intersection] = state.snapshot.raycaster.intersectObject(parent);
|
|
167
|
+
if (!intersection) {
|
|
168
|
+
// Cancel out the raycast camera if the parent mesh isn't hit
|
|
169
|
+
Object.assign(state.snapshot.raycaster, { camera: undefined });
|
|
170
|
+
return false;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
return;
|
|
174
|
+
};
|
|
175
|
+
return computeFn;
|
|
176
|
+
});
|
|
177
|
+
this.priority = signal(0);
|
|
178
|
+
extend({ MeshPortalMaterial });
|
|
179
|
+
afterNextRender(() => {
|
|
180
|
+
const material = this.materialRef().nativeElement;
|
|
181
|
+
const localState = getLocalState(material);
|
|
182
|
+
if (!localState)
|
|
183
|
+
return;
|
|
184
|
+
const materialParent = localState.parent();
|
|
185
|
+
if (!materialParent || !(materialParent instanceof Mesh))
|
|
186
|
+
return;
|
|
187
|
+
// Since the ref above is not tied to a mesh directly (we're inside a material),
|
|
188
|
+
// it has to be tied to the parent mesh here
|
|
189
|
+
this.parent.set(materialParent);
|
|
190
|
+
});
|
|
191
|
+
effect(() => {
|
|
192
|
+
const events = this.events();
|
|
193
|
+
if (!events)
|
|
194
|
+
return;
|
|
195
|
+
const setEvents = this.setEvents();
|
|
196
|
+
setEvents({ enabled: !events });
|
|
197
|
+
});
|
|
198
|
+
// React.useEffect(() => {
|
|
199
|
+
// if (events !== undefined) setEvents({ enabled: !events })
|
|
200
|
+
// }, [events])
|
|
201
|
+
effect(() => {
|
|
202
|
+
const [material, parent] = [this.materialRef().nativeElement, this.parent()];
|
|
203
|
+
if (!parent)
|
|
204
|
+
return;
|
|
205
|
+
const [resolution, blur, gl] = [this.resolution(), this.blur(), this.gl()];
|
|
206
|
+
// apply the SDF mask once
|
|
207
|
+
if (blur && material.sdf == null) {
|
|
208
|
+
meshPortalMaterialApplySDF(parent, resolution, gl);
|
|
209
|
+
}
|
|
210
|
+
});
|
|
211
|
+
injectBeforeRender(() => {
|
|
212
|
+
const material = this.materialRef().nativeElement;
|
|
213
|
+
const priority = 'blend' in material && typeof material.blend === 'number' && material.blend > 0
|
|
214
|
+
? Math.max(1, this.renderPriority())
|
|
215
|
+
: 0;
|
|
216
|
+
// If blend is > 0 then the portal is being entered, the render-priority must change
|
|
217
|
+
if (this.priority() !== priority) {
|
|
218
|
+
this.priority.set(priority);
|
|
219
|
+
}
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsMeshPortalMaterial, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
223
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.11", type: NgtsMeshPortalMaterial, isStandalone: true, selector: "ngts-mesh-portal-material", inputs: { attach: { classPropertyName: "attach", publicName: "attach", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "content", first: true, predicate: TemplateRef, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "materialRef", first: true, predicate: ["material"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
224
|
+
<ngt-mesh-portal-material
|
|
225
|
+
#material
|
|
226
|
+
[attach]="attach()"
|
|
227
|
+
[blur]="blur()"
|
|
228
|
+
[blend]="0"
|
|
229
|
+
[resolution]="materialResolution()"
|
|
230
|
+
[parameters]="parameters()"
|
|
231
|
+
>
|
|
232
|
+
<ngts-render-texture
|
|
233
|
+
[options]="{
|
|
234
|
+
frames: renderTextureFrames(),
|
|
235
|
+
eventPriority: eventPriority(),
|
|
236
|
+
renderPriority: renderPriority(),
|
|
237
|
+
compute: renderTextureCompute(),
|
|
238
|
+
}"
|
|
239
|
+
>
|
|
240
|
+
<ng-template renderTextureContent let-injector="injector">
|
|
241
|
+
<ng-container *ngTemplateOutlet="content(); injector: injector" />
|
|
242
|
+
<ngts-manage-portal-scene
|
|
243
|
+
[events]="events()"
|
|
244
|
+
[rootScene]="rootScene()"
|
|
245
|
+
[priority]="priority()"
|
|
246
|
+
[material]="material"
|
|
247
|
+
[worldUnits]="worldUnits()"
|
|
248
|
+
/>
|
|
249
|
+
</ng-template>
|
|
250
|
+
</ngts-render-texture>
|
|
251
|
+
</ngt-mesh-portal-material>
|
|
252
|
+
`, isInline: true, dependencies: [{ kind: "component", type: NgtsRenderTexture, selector: "ngts-render-texture", inputs: ["attach", "options"] }, { kind: "directive", type: NgtsRenderTextureContent, selector: "ng-template[renderTextureContent]" }, { kind: "directive", type: ManagePortalScene, selector: "ngts-manage-portal-scene", inputs: ["events", "rootScene", "material", "priority", "worldUnits"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
253
|
+
}
|
|
254
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsMeshPortalMaterial, decorators: [{
|
|
255
|
+
type: Component,
|
|
256
|
+
args: [{
|
|
257
|
+
selector: 'ngts-mesh-portal-material',
|
|
258
|
+
standalone: true,
|
|
259
|
+
template: `
|
|
260
|
+
<ngt-mesh-portal-material
|
|
261
|
+
#material
|
|
262
|
+
[attach]="attach()"
|
|
263
|
+
[blur]="blur()"
|
|
264
|
+
[blend]="0"
|
|
265
|
+
[resolution]="materialResolution()"
|
|
266
|
+
[parameters]="parameters()"
|
|
267
|
+
>
|
|
268
|
+
<ngts-render-texture
|
|
269
|
+
[options]="{
|
|
270
|
+
frames: renderTextureFrames(),
|
|
271
|
+
eventPriority: eventPriority(),
|
|
272
|
+
renderPriority: renderPriority(),
|
|
273
|
+
compute: renderTextureCompute(),
|
|
274
|
+
}"
|
|
275
|
+
>
|
|
276
|
+
<ng-template renderTextureContent let-injector="injector">
|
|
277
|
+
<ng-container *ngTemplateOutlet="content(); injector: injector" />
|
|
278
|
+
<ngts-manage-portal-scene
|
|
279
|
+
[events]="events()"
|
|
280
|
+
[rootScene]="rootScene()"
|
|
281
|
+
[priority]="priority()"
|
|
282
|
+
[material]="material"
|
|
283
|
+
[worldUnits]="worldUnits()"
|
|
284
|
+
/>
|
|
285
|
+
</ng-template>
|
|
286
|
+
</ngts-render-texture>
|
|
287
|
+
</ngt-mesh-portal-material>
|
|
288
|
+
`,
|
|
289
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
290
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
291
|
+
imports: [NgtsRenderTexture, NgtsRenderTextureContent, ManagePortalScene, NgTemplateOutlet],
|
|
292
|
+
}]
|
|
293
|
+
}], ctorParameters: () => [] });
|
|
294
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzaC1wb3J0YWwtbWF0ZXJpYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvbWF0ZXJpYWxzL3NyYy9saWIvbWVzaC1wb3J0YWwtbWF0ZXJpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUNOLGVBQWUsRUFDZix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixZQUFZLEVBQ1osc0JBQXNCLEVBQ3RCLFNBQVMsRUFDVCxNQUFNLEVBRU4sTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEVBQ0wsTUFBTSxFQUNOLFdBQVcsRUFDWCxTQUFTLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNOLE1BQU0sRUFDTixhQUFhLEVBQ2Isa0JBQWtCLEVBQ2xCLFdBQVcsRUFJWCxJQUFJLEVBQ0osSUFBSSxHQUNKLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3pGLE9BQU8sRUFDTixrQkFBa0IsRUFDbEIsMEJBQTBCLEdBRTFCLE1BQU0sb0NBQW9DLENBQUM7QUFDNUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxJQUFJLEVBQVMsY0FBYyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBRTlDOztHQUVHO0FBRUgsTUFBTSxPQUFPLGlCQUFpQjtJQU83QjtRQU5BLFdBQU0sR0FBRyxLQUFLLEVBQVcsQ0FBQztRQUMxQixjQUFTLEdBQUcsS0FBSyxDQUFDLFFBQVEs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QUFDO2dCQUNsQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM3QixDQUFDO1FBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOytHQWhIVyxzQkFBc0I7bUdBQXRCLHNCQUFzQiwrWEFZRixXQUFXLHlMQTlDakM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBNkJULDREQUdTLGlCQUFpQiwrRkFBRSx3QkFBd0IsOEVBL0t6QyxpQkFBaUIsNElBK0s2QyxnQkFBZ0I7OzRGQUU5RSxzQkFBc0I7a0JBckNsQyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBNkJUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsd0JBQXdCLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLENBQUM7aUJBQzNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuXHRhZnRlck5leHRSZW5kZXIsXG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdGNvbXB1dGVkLFxuXHRjb250ZW50Q2hpbGQsXG5cdENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXG5cdERpcmVjdGl2ZSxcblx0ZWZmZWN0LFxuXHRFbGVtZW50UmVmLFxuXHRpbmplY3QsXG5cdEluamVjdG9yLFxuXHRpbnB1dCxcblx0c2lnbmFsLFxuXHRUZW1wbGF0ZVJlZixcblx0dmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG5cdGV4dGVuZCxcblx0Z2V0TG9jYWxTdGF0ZSxcblx0aW5qZWN0QmVmb3JlUmVuZGVyLFxuXHRpbmplY3RTdG9yZSxcblx0Tmd0QXR0YWNoYWJsZSxcblx0Tmd0Q29tcHV0ZUZ1bmN0aW9uLFxuXHROZ3RTaGFkZXJNYXRlcmlhbCxcblx0b21pdCxcblx0cGljayxcbn0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBnZXRWZXJzaW9uLCBpbmplY3RGQk8sIGluamVjdEludGVyc2VjdCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUtc29iYS9taXNjJztcbmltcG9ydCB7IE5ndHNSZW5kZXJUZXh0dXJlLCBOZ3RzUmVuZGVyVGV4dHVyZUNvbnRlbnQgfSBmcm9tICdhbmd1bGFyLXRocmVlLXNvYmEvc3RhZ2luZyc7XG5pbXBvcnQge1xuXHRNZXNoUG9ydGFsTWF0ZXJpYWwsXG5cdG1lc2hQb3J0YWxNYXRlcmlhbEFwcGx5U0RGLFxuXHROZ3RNZXNoUG9ydGFsTWF0ZXJpYWwsXG59IGZyb20gJ2FuZ3VsYXItdGhyZWUtc29iYS92YW5pbGxhLWV4cG9ydHMnO1xuaW1wb3J0IHsgbWVyZ2VJbnB1dHMgfSBmcm9tICduZ3h0ZW5zaW9uL2luamVjdC1pbnB1dHMnO1xuaW1wb3J0IHsgTWVzaCwgU2NlbmUsIFNoYWRlck1hdGVyaWFsIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgRnVsbFNjcmVlblF1YWQgfSBmcm9tICd0aHJlZS1zdGRsaWInO1xuXG4vKipcbiAqIFRoaXMgZGlyZWN0aXZlIGlzIHVzZWQgaW5zaWRlIG9mIHRoZSByZW5kZXIgdGV4dHVyZSwgaGVuY2UgaGFzIGFjY2VzcyB0byB0aGUgcmVuZGVyIHRleHR1cmUgc3RvcmUgKGEgcG9ydGFsIHN0b3JlKVxuICovXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICduZ3RzLW1hbmFnZS1wb3J0YWwtc2NlbmUnLCBzdGFuZGFsb25lOiB0cnVlIH0pXG5leHBvcnQgY2xhc3MgTWFuYWdlUG9ydGFsU2NlbmUge1xuXHRldmVudHMgPSBpbnB1dDxib29sZWFuPigpO1xuXHRyb290U2NlbmUgPSBpbnB1dC5yZXF1aXJlZDxTY2VuZT4oKTtcblx0bWF0ZXJpYWwgPSBpbnB1dC5yZXF1aXJlZDxOZ3RNZXNoUG9ydGFsTWF0ZXJpYWw+KCk7XG5cdHByaW9yaXR5ID0gaW5wdXQucmVxdWlyZWQ8bnVtYmVyPigpO1xuXHR3b3JsZFVuaXRzID0gaW5wdXQucmVxdWlyZWQ8Ym9vbGVhbj4oKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRjb25zdCBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cdFx0Y29uc3QgcmVuZGVyVGV4dHVyZVN0b3JlID0gaW5qZWN0U3RvcmUoKTtcblx0XHRjb25zdCBwb3J0YWxTY2VuZSA9IHJlbmRlclRleHR1cmVTdG9yZS5zZWxlY3QoJ3NjZW5lJyk7XG5cdFx0Y29uc3QgcG9ydGFsU2V0RXZlbnRzID0gcmVuZGVyVGV4dHVyZVN0b3JlLnNlbGVjdCgnc2V0RXZlbnRzJyk7XG5cblx0XHRjb25zdCBidWZmZXIxID0gaW5qZWN0RkJPKCk7XG5cdFx0Y29uc3QgYnVmZmVyMiA9IGluamVjdEZCTygpO1xuXG5cdFx0Y29uc3QgZnVsbFNjcmVlblF1YWQgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0XHQvLyBUaGlzIGZ1bGxzY3JlZW4tcXVhZCBpcyB1c2VkIHRvIGJsZW5kIHRoZSB0d28gdGV4dHVyZXNcblx0XHRcdGNvbnN0IGJsZW5kID0geyB2YWx1ZTogMCB9O1xuXHRcdFx0Y29uc3QgcXVhZCA9IG5ldyBGdWxsU2NyZWVuUXVhZChcblx0XHRcdFx0bmV3IFNoYWRlck1hdGVyaWFsKHtcblx0XHRcdFx0XHR1bmlmb3Jtczoge1xuXHRcdFx0XHRcdFx0YTogeyB2YWx1ZTogYnVmZmVyMSgpLnRleHR1cmUgfSxcblx0XHRcdFx0XHRcdGI6IHsgdmFsdWU6IGJ1ZmZlcjIoKS50ZXh0dXJlIH0sXG5cdFx0XHRcdFx0XHRibGVuZCxcblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdHZlcnRleFNoYWRlcjogLypnbHNsKi8gYFxuXHRcdCAgICAgIHZhcnlpbmcgdmVjMiB2VXY7XG5cdFx0ICAgICAgdm9pZCBtYWluKCkge1xuXHRcdCAgICAgICAgdlV2ID0gdXY7XG5cdFx0ICAgICAgICBnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb25NYXRyaXggKiBtb2RlbFZpZXdNYXRyaXggKiB2ZWM0KCBwb3NpdGlvbiwgMS4wICk7XG5cdFx0ICAgICAgfWAsXG5cdFx0XHRcdFx0ZnJhZ21lbnRTaGFkZXI6IC8qZ2xzbCovIGBcblx0XHQgICAgICB1bmlmb3JtIHNhbXBsZXIyRCBhO1xuXHRcdCAgICAgIHVuaWZvcm0gc2FtcGxlcjJEIGI7XG5cdFx0ICAgICAgdW5pZm9ybSBmbG9hdCBibGVuZDtcblx0XHQgICAgICB2YXJ5aW5nIHZlYzIgdlV2O1xuXHRcdCAgICAgICNpbmNsdWRlIDxwYWNraW5nPlxuXHRcdCAgICAgIHZvaWQgbWFpbigpIHtcblx0XHQgICAgICAgIHZlYzQgdGEgPSB0ZXh0dXJlMkQoYSwgdlV2KTtcblx0XHQgICAgICAgIHZlYzQgdGIgPSB0ZXh0dXJlMkQoYiwgdlV2KTtcblx0XHQgICAgICAgIGdsX0ZyYWdDb2xvciA9IG1peCh0YiwgdGEsIGJsZW5kKTtcblx0XHQgICAgICAgICNpbmNsdWRlIDx0b25lbWFwcGluZ19mcmFnbWVudD5cblx0XHQgICAgICAgICNpbmNsdWRlIDwke2dldFZlcnNpb24oKSA+PSAxNTQgPyAnY29sb3JzcGFjZV9mcmFnbWVudCcgOiAnZW5jb2RpbmdzX2ZyYWdtZW50J30+XG5cdFx0ICAgICAgfWAsXG5cdFx0XHRcdH0pLFxuXHRcdFx0KTtcblx0XHRcdHJldHVybiBbcXVhZCwgYmxlbmRdIGFzIGNvbnN0O1xuXHRcdH0pO1xuXG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdGNvbnN0IFtldmVudHMsIHNldEV2ZW50c10gPSBbdGhpcy5ldmVudHMoKSwgcG9ydGFsU2V0RXZlbnRzKCldO1xuXHRcdFx0aWYgKCFldmVudHMpIHJldHVybjtcblx0XHRcdHNldEV2ZW50cyh7IGVuYWJsZWQ6IGV2ZW50cyB9KTtcblx0XHR9KTtcblxuXHRcdGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG5cdFx0XHRwb3J0YWxTY2VuZSgpLm1hdHJpeEF1dG9VcGRhdGUgPSBmYWxzZTtcblxuXHRcdFx0Ly8gd2Ugc3RhcnQgdGhlIGJlZm9yZSByZW5kZXIgaW4gYWZ0ZXJOZXh0UmVuZGVyIGJlY2F1c2Ugd2UgbmVlZCB0aGUgcHJpb3JpdHkgaW5wdXQgdG8gYmUgcmVzb2x2ZWRcblx0XHRcdGluamVjdEJlZm9yZVJlbmRlcihcblx0XHRcdFx0KHsgZ2wsIGNhbWVyYSB9KSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgbWF0ZXJpYWwgPSB0aGlzLm1hdGVyaWFsKCk7XG5cblx0XHRcdFx0XHRjb25zdCBsb2NhbFN0YXRlID0gZ2V0TG9jYWxTdGF0ZShtYXRlcmlhbCk7XG5cdFx0XHRcdFx0aWYgKCFsb2NhbFN0YXRlKSByZXR1cm47XG5cblx0XHRcdFx0XHRjb25zdCBwYXJlbnQgPSBsb2NhbFN0YXRlLnBhcmVudCgpO1xuXHRcdFx0XHRcdGlmICghcGFyZW50KSByZXR1cm47XG5cblx0XHRcdFx0XHRjb25zdCBtYXRlcmlhbEJsZW5kID0gJ2JsZW5kJyBpbiBtYXRlcmlhbCAmJiB0eXBlb2YgbWF0ZXJpYWwuYmxlbmQgPT09ICdudW1iZXInID8gbWF0ZXJpYWwuYmxlbmQgOiAwO1xuXHRcdFx0XHRcdGNvbnN0IFt3b3JsZFVuaXRzLCBwcmlvcml0eSwgcm9vdFNjZW5lLCBzY2VuZSwgW3F1YWQsIGJsZW5kXV0gPSBbXG5cdFx0XHRcdFx0XHR0aGlzLndvcmxkVW5pdHMoKSxcblx0XHRcdFx0XHRcdHRoaXMucHJpb3JpdHkoKSxcblx0XHRcdFx0XHRcdHRoaXMucm9vdFNjZW5lKCksXG5cdFx0XHRcdFx0XHRwb3J0YWxTY2VuZSgpLFxuXHRcdFx0XHRcdFx0ZnVsbFNjcmVlblF1YWQoKSxcblx0XHRcdFx0XHRdO1xuXHRcdFx0XHRcdC8vIE1vdmUgcG9ydGFsIGNvbnRlbnRzIGFsb25nIHdpdGggdGhlIHBhcmVudCBpZiB3b3JsZFVuaXRzIGlzIHRydWVcblx0XHRcdFx0XHRpZiAoIXdvcmxkVW5pdHMpIHtcblx0XHRcdFx0XHRcdC8vIElmIHRoZSBwb3J0YWwgcmVuZGVycyBleGNsdXNpdmVseSB0aGUgb3JpZ2luYWwgc2NlbmUgbmVlZHMgdG8gYmUgdXBkYXRlZFxuXHRcdFx0XHRcdFx0aWYgKHByaW9yaXR5ICYmIG1hdGVyaWFsQmxlbmQgPT09IDEpIHBhcmVudC51cGRhdGVXb3JsZE1hdHJpeCh0cnVlLCBmYWxzZSk7XG5cdFx0XHRcdFx0XHRzY2VuZS5tYXRyaXhXb3JsZC5jb3B5KHBhcmVudC5tYXRyaXhXb3JsZCk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdHNjZW5lLm1hdHJpeFdvcmxkLmlkZW50aXR5KCk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly8gVGhpcyBiaXQgaXMgb25seSBuZWNlc3NhcnkgaWYgdGhlIHBvcnRhbCBpcyBibGVuZGVkLCBub3cgaXQgaGFzIGEgcmVuZGVyLXByaW9yaXR5XG5cdFx0XHRcdFx0Ly8gYW5kIHdpbGwgdGFrZSBvdmVyIHRoZSByZW5kZXIgbG9vcFxuXHRcdFx0XHRcdGlmIChwcmlvcml0eSkge1xuXHRcdFx0XHRcdFx0aWYgKG1hdGVyaWFsQmxlbmQgPiAwICYmIG1hdGVyaWFsQmxlbmQgPCAxKSB7XG5cdFx0XHRcdFx0XHRcdC8vIElmIGJsZW5kIGlzIG9uZ29pbmcgKD4gMCBhbmQgPCAxKSB0aGVuIHdlIG5lZWQgdG8gcmVuZGVyIGJvdGggdGhlIHJvb3Qgc2NlbmVcblx0XHRcdFx0XHRcdFx0Ly8gYW5kIHRoZSBwb3J0YWwgc2NlbmUsIGJvdGggd2lsbCB0aGVuIGJlIG1peGVkIGluIHRoZSBxdWFkIGZyb20gYWJvdmVcblx0XHRcdFx0XHRcdFx0YmxlbmQudmFsdWUgPSBtYXRlcmlhbEJsZW5kO1xuXHRcdFx0XHRcdFx0XHRnbC5zZXRSZW5kZXJUYXJnZXQoYnVmZmVyMSgpKTtcblx0XHRcdFx0XHRcdFx0Z2wucmVuZGVyKHNjZW5lLCBjYW1lcmEpO1xuXHRcdFx0XHRcdFx0XHRnbC5zZXRSZW5kZXJUYXJnZXQoYnVmZmVyMigpKTtcblx0XHRcdFx0XHRcdFx0Z2wucmVuZGVyKHJvb3RTY2VuZSwgY2FtZXJhKTtcblx0XHRcdFx0XHRcdFx0Z2wuc2V0UmVuZGVyVGFyZ2V0KG51bGwpO1xuXHRcdFx0XHRcdFx0XHRxdWFkLnJlbmRlcihnbCk7XG5cdFx0XHRcdFx0XHR9IGVsc2UgaWYgKG1hdGVyaWFsQmxlbmQgPT09IDEpIHtcblx0XHRcdFx0XHRcdFx0Ly8gSG93ZXZlciBpZiBibGVuZCBpcyAxIHdlIG9ubHkgbmVlZCB0byByZW5kZXIgdGhlIHBvcnRhbCBzY2VuZVxuXHRcdFx0XHRcdFx0XHRnbC5yZW5kZXIoc2NlbmUsIGNhbWVyYSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LFxuXHRcdFx0XHR7IGluamVjdG9yLCBwcmlvcml0eTogdGhpcy5wcmlvcml0eSgpIH0sXG5cdFx0XHQpO1xuXHRcdH0pO1xuXHR9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0c01lc2hQb3J0YWxNYXRlcmlhbE9wdGlvbnMgZXh0ZW5kcyBQYXJ0aWFsPE5ndFNoYWRlck1hdGVyaWFsPiB7XG5cdC8qKiBNaXggdGhlIHBvcnRhbHMgb3duIHNjZW5lIHdpdGggdGhlIHdvcmxkIHNjZW5lLCAwID0gd29ybGQgc2NlbmUgcmVuZGVyLFxuXHQgKiAgMC41ID0gYm90aCBzY2VuZXMgcmVuZGVyLCAxID0gcG9ydGFsIHNjZW5lIHJlbmRlcnMsIGRlZmF1bHRzIHRvIDAgKi9cblx0YmxlbmQ6IG51bWJlcjtcblx0LyoqIEVkZ2UgZmFkZSBibHVyLCAwID0gbm8gYmx1ciAoZGVmYXVsdCkgKi9cblx0Ymx1cjogbnVtYmVyO1xuXHQvKiogU0RGIHJlc29sdXRpb24sIHRoZSBzbWFsbGVyIHRoZSBmYXN0ZXIgaXMgdGhlIHN0YXJ0LXVwIHRpbWUgKGRlZmF1bHQ6IDUxMikgKi9cblx0cmVzb2x1dGlvbjogbnVtYmVyO1xuXHQvKiogQnkgZGVmYXVsdCBwb3J0YWxzIHVzZSByZWxhdGl2ZSBjb29yZGluYXRlcywgY29udGVudHMgYXJlIGFmZmVjdHMgYnkgdGhlIGxvY2FsIG1hdHJpeCB0cmFuc2Zvcm0gKi9cblx0d29ybGRVbml0czogYm9vbGVhbjtcblx0LyoqIE9wdGlvbmFsIGV2ZW50IHByaW9yaXR5LCBkZWZhdWx0cyB0byAwICovXG5cdGV2ZW50UHJpb3JpdHk6IG51bWJlcjtcblx0LyoqIE9wdGlvbmFsIHJlbmRlciBwcmlvcml0eSwgZGVmYXVsdHMgdG8gMCAqL1xuXHRyZW5kZXJQcmlvcml0eTogbnVtYmVyO1xuXHQvKiogT3B0aW9uYWxseSBkaWFibGUgZXZlbnRzIGluc2lkZSB0aGUgcG9ydGFsLCBkZWZhdWx0cyB0byBmYWxzZSAqL1xuXHRldmVudHM6IGJvb2xlYW47XG59XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBOZ3RzTWVzaFBvcnRhbE1hdGVyaWFsT3B0aW9ucyA9IHtcblx0YmxlbmQ6IDAuNSxcblx0Ymx1cjogMCxcblx0cmVzb2x1dGlvbjogNTEyLFxuXHR3b3JsZFVuaXRzOiBmYWxzZSxcblx0ZXZlbnRQcmlvcml0eTogMCxcblx0cmVuZGVyUHJpb3JpdHk6IDAsXG5cdGV2ZW50czogZmFsc2UsXG59O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RzLW1lc2gtcG9ydGFsLW1hdGVyaWFsJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LW1lc2gtcG9ydGFsLW1hdGVyaWFsXG5cdFx0XHQjbWF0ZXJpYWxcblx0XHRcdFthdHRhY2hdPVwiYXR0YWNoKClcIlxuXHRcdFx0W2JsdXJdPVwiYmx1cigpXCJcblx0XHRcdFtibGVuZF09XCIwXCJcblx0XHRcdFtyZXNvbHV0aW9uXT1cIm1hdGVyaWFsUmVzb2x1dGlvbigpXCJcblx0XHRcdFtwYXJhbWV0ZXJzXT1cInBhcmFtZXRlcnMoKVwiXG5cdFx0PlxuXHRcdFx0PG5ndHMtcmVuZGVyLXRleHR1cmVcblx0XHRcdFx0W29wdGlvbnNdPVwie1xuXHRcdFx0XHRcdGZyYW1lczogcmVuZGVyVGV4dHVyZUZyYW1lcygpLFxuXHRcdFx0XHRcdGV2ZW50UHJpb3JpdHk6IGV2ZW50UHJpb3JpdHkoKSxcblx0XHRcdFx0XHRyZW5kZXJQcmlvcml0eTogcmVuZGVyUHJpb3JpdHkoKSxcblx0XHRcdFx0XHRjb21wdXRlOiByZW5kZXJUZXh0dXJlQ29tcHV0ZSgpLFxuXHRcdFx0XHR9XCJcblx0XHRcdD5cblx0XHRcdFx0PG5nLXRlbXBsYXRlIHJlbmRlclRleHR1cmVDb250ZW50IGxldC1pbmplY3Rvcj1cImluamVjdG9yXCI+XG5cdFx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnQoKTsgaW5qZWN0b3I6IGluamVjdG9yXCIgLz5cblx0XHRcdFx0XHQ8bmd0cy1tYW5hZ2UtcG9ydGFsLXNjZW5lXG5cdFx0XHRcdFx0XHRbZXZlbnRzXT1cImV2ZW50cygpXCJcblx0XHRcdFx0XHRcdFtyb290U2NlbmVdPVwicm9vdFNjZW5lKClcIlxuXHRcdFx0XHRcdFx0W3ByaW9yaXR5XT1cInByaW9yaXR5KClcIlxuXHRcdFx0XHRcdFx0W21hdGVyaWFsXT1cIm1hdGVyaWFsXCJcblx0XHRcdFx0XHRcdFt3b3JsZFVuaXRzXT1cIndvcmxkVW5pdHMoKVwiXG5cdFx0XHRcdFx0Lz5cblx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cblx0XHRcdDwvbmd0cy1yZW5kZXItdGV4dHVyZT5cblx0XHQ8L25ndC1tZXNoLXBvcnRhbC1tYXRlcmlhbD5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW05ndHNSZW5kZXJUZXh0dXJlLCBOZ3RzUmVuZGVyVGV4dHVyZUNvbnRlbnQsIE1hbmFnZVBvcnRhbFNjZW5lLCBOZ1RlbXBsYXRlT3V0bGV0XSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c01lc2hQb3J0YWxNYXRlcmlhbCB7XG5cdGF0dGFjaCA9IGlucHV0PE5ndEF0dGFjaGFibGU+KCdtYXRlcmlhbCcpO1xuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdE9wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0T3B0aW9ucykgfSk7XG5cdHBhcmFtZXRlcnMgPSBvbWl0KHRoaXMub3B0aW9ucywgWydibHVyJywgJ3Jlc29sdXRpb24nLCAnd29ybGRVbml0cycsICdldmVudFByaW9yaXR5JywgJ3JlbmRlclByaW9yaXR5JywgJ2V2ZW50cyddKTtcblxuXHRibHVyID0gcGljayh0aGlzLm9wdGlvbnMsICdibHVyJyk7XG5cdGV2ZW50UHJpb3JpdHkgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2V2ZW50UHJpb3JpdHknKTtcblx0cmVuZGVyUHJpb3JpdHkgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3JlbmRlclByaW9yaXR5Jyk7XG5cdGV2ZW50cyA9IHBpY2sodGhpcy5vcHRpb25zLCAnZXZlbnRzJyk7XG5cdHdvcmxkVW5pdHMgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3dvcmxkVW5pdHMnKTtcblxuXHRtYXRlcmlhbFJlZiA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPEluc3RhbmNlVHlwZTx0eXBlb2YgTWVzaFBvcnRhbE1hdGVyaWFsPj4+KCdtYXRlcmlhbCcpO1xuXHRjb250ZW50ID0gY29udGVudENoaWxkLnJlcXVpcmVkKFRlbXBsYXRlUmVmKTtcblxuXHRwcml2YXRlIHN0b3JlID0gaW5qZWN0U3RvcmUoKTtcblx0cHJpdmF0ZSBzaXplID0gdGhpcy5zdG9yZS5zZWxlY3QoJ3NpemUnKTtcblx0cHJpdmF0ZSB2aWV3cG9ydCA9IHRoaXMuc3RvcmUuc2VsZWN0KCd2aWV3cG9ydCcpO1xuXHRwcml2YXRlIGdsID0gdGhpcy5zdG9yZS5zZWxlY3QoJ2dsJyk7XG5cdHByaXZhdGUgc2V0RXZlbnRzID0gdGhpcy5zdG9yZS5zZWxlY3QoJ3NldEV2ZW50cycpO1xuXHRyb290U2NlbmUgPSB0aGlzLnN0b3JlLnNlbGVjdCgnc2NlbmUnKTtcblxuXHRtYXRlcmlhbFJlc29sdXRpb24gPSBjb21wdXRlZCgoKSA9PiBbXG5cdFx0dGhpcy5zaXplKCkud2lkdGggKiB0aGlzLnZpZXdwb3J0KCkuZHByLFxuXHRcdHRoaXMuc2l6ZSgpLmhlaWdodCAqIHRoaXMudmlld3BvcnQoKS5kcHIsXG5cdF0pO1xuXHRwcml2YXRlIHJlc29sdXRpb24gPSBwaWNrKHRoaXMub3B0aW9ucywgJ3Jlc29sdXRpb24nKTtcblxuXHRwcml2YXRlIHBhcmVudCA9IHNpZ25hbDxNZXNoIHwgbnVsbD4obnVsbCk7XG5cdHByaXZhdGUgdmlzaWJsZSA9IGluamVjdEludGVyc2VjdCh0aGlzLnBhcmVudCwgeyBzb3VyY2U6IHNpZ25hbCh0cnVlKSB9KTtcblxuXHRyZW5kZXJUZXh0dXJlRnJhbWVzID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMudmlzaWJsZSgpID8gSW5maW5pdHkgOiAwKSk7XG5cdHJlbmRlclRleHR1cmVDb21wdXRlID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdGNvbnN0IFtwYXJlbnQsIG1hdGVyaWFsXSA9IFt0aGlzLnBhcmVudCgpLCB0aGlzLm1hdGVyaWFsUmVmKCkubmF0aXZlRWxlbWVudF07XG5cblx0XHRjb25zdCBjb21wdXRlRm46ICguLi5hcmdzOiBQYXJhbWV0ZXJzPE5ndENvbXB1dGVGdW5jdGlvbj4pID0+IGZhbHNlIHwgdW5kZWZpbmVkID0gKGV2ZW50LCBzdGF0ZSkgPT4ge1xuXHRcdFx0aWYgKCFwYXJlbnQpIHJldHVybiBmYWxzZTtcblx0XHRcdHN0YXRlLnNuYXBzaG90LnBvaW50ZXIuc2V0KFxuXHRcdFx0XHQoZXZlbnQub2Zmc2V0WCAvIHN0YXRlLnNuYXBzaG90LnNpemUud2lkdGgpICogMiAtIDEsXG5cdFx0XHRcdC0oZXZlbnQub2Zmc2V0WSAvIHN0YXRlLnNuYXBzaG90LnNpemUuaGVpZ2h0KSAqIDIgKyAxLFxuXHRcdFx0KTtcblx0XHRcdHN0YXRlLnNuYXBzaG90LnJheWNhc3Rlci5zZXRGcm9tQ2FtZXJhKHN0YXRlLnNuYXBzaG90LnBvaW50ZXIsIHN0YXRlLnNuYXBzaG90LmNhbWVyYSk7XG5cblx0XHRcdGlmICgnYmxlbmQnIGluIG1hdGVyaWFsICYmIG1hdGVyaWFsLmJsZW5kID09PSAwKSB7XG5cdFx0XHRcdC8vIFdlIHJ1biBhIHF1aWNrIGNoZWNrIGFnYWluc3QgdGhlIHBhcmVudCwgaWYgaXQgaXNuJ3QgaGl0IHRoZXJlJ3Mgbm8gbmVlZCB0byByYXljYXN0IGF0IGFsbFxuXHRcdFx0XHRjb25zdCBbaW50ZXJzZWN0aW9uXSA9IHN0YXRlLnNuYXBzaG90LnJheWNhc3Rlci5pbnRlcnNlY3RPYmplY3QocGFyZW50KTtcblx0XHRcdFx0aWYgKCFpbnRlcnNlY3Rpb24pIHtcblx0XHRcdFx0XHQvLyBDYW5jZWwgb3V0IHRoZSByYXljYXN0IGNhbWVyYSBpZiB0aGUgcGFyZW50IG1lc2ggaXNuJ3QgaGl0XG5cdFx0XHRcdFx0T2JqZWN0LmFzc2lnbihzdGF0ZS5zbmFwc2hvdC5yYXljYXN0ZXIsIHsgY2FtZXJhOiB1bmRlZmluZWQgfSk7XG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybjtcblx0XHR9O1xuXG5cdFx0cmV0dXJuIGNvbXB1dGVGbjtcblx0fSk7XG5cblx0cHJpb3JpdHkgPSBzaWduYWwoMCk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgTWVzaFBvcnRhbE1hdGVyaWFsIH0pO1xuXG5cdFx0YWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcblx0XHRcdGNvbnN0IG1hdGVyaWFsID0gdGhpcy5tYXRlcmlhbFJlZigpLm5hdGl2ZUVsZW1lbnQ7XG5cblx0XHRcdGNvbnN0IGxvY2FsU3RhdGUgPSBnZXRMb2NhbFN0YXRlKG1hdGVyaWFsKTtcblx0XHRcdGlmICghbG9jYWxTdGF0ZSkgcmV0dXJuO1xuXG5cdFx0XHRjb25zdCBtYXRlcmlhbFBhcmVudCA9IGxvY2FsU3RhdGUucGFyZW50KCk7XG5cdFx0XHRpZiAoIW1hdGVyaWFsUGFyZW50IHx8ICEobWF0ZXJpYWxQYXJlbnQgaW5zdGFuY2VvZiBNZXNoKSkgcmV0dXJuO1xuXG5cdFx0XHQvLyBTaW5jZSB0aGUgcmVmIGFib3ZlIGlzIG5vdCB0aWVkIHRvIGEgbWVzaCBkaXJlY3RseSAod2UncmUgaW5zaWRlIGEgbWF0ZXJpYWwpLFxuXHRcdFx0Ly8gaXQgaGFzIHRvIGJlIHRpZWQgdG8gdGhlIHBhcmVudCBtZXNoIGhlcmVcblx0XHRcdHRoaXMucGFyZW50LnNldChtYXRlcmlhbFBhcmVudCk7XG5cdFx0fSk7XG5cblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgZXZlbnRzID0gdGhpcy5ldmVudHMoKTtcblx0XHRcdGlmICghZXZlbnRzKSByZXR1cm47XG5cblx0XHRcdGNvbnN0IHNldEV2ZW50cyA9IHRoaXMuc2V0RXZlbnRzKCk7XG5cdFx0XHRzZXRFdmVudHMoeyBlbmFibGVkOiAhZXZlbnRzIH0pO1xuXHRcdH0pO1xuXG5cdFx0Ly8gUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcblx0XHQvLyAgIGlmIChldmVudHMgIT09IHVuZGVmaW5lZCkgc2V0RXZlbnRzKHsgZW5hYmxlZDogIWV2ZW50cyB9KVxuXHRcdC8vIH0sIFtldmVudHNdKVxuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCBbbWF0ZXJpYWwsIHBhcmVudF0gPSBbdGhpcy5tYXRlcmlhbFJlZigpLm5hdGl2ZUVsZW1lbnQsIHRoaXMucGFyZW50KCldO1xuXHRcdFx0aWYgKCFwYXJlbnQpIHJldHVybjtcblxuXHRcdFx0Y29uc3QgW3Jlc29sdXRpb24sIGJsdXIsIGdsXSA9IFt0aGlzLnJlc29sdXRpb24oKSwgdGhpcy5ibHVyKCksIHRoaXMuZ2woKV07XG5cblx0XHRcdC8vIGFwcGx5IHRoZSBTREYgbWFzayBvbmNlXG5cdFx0XHRpZiAoYmx1ciAmJiBtYXRlcmlhbC5zZGYgPT0gbnVsbCkge1xuXHRcdFx0XHRtZXNoUG9ydGFsTWF0ZXJpYWxBcHBseVNERihwYXJlbnQsIHJlc29sdXRpb24sIGdsKTtcblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdGluamVjdEJlZm9yZVJlbmRlcigoKSA9PiB7XG5cdFx0XHRjb25zdCBtYXRlcmlhbCA9IHRoaXMubWF0ZXJpYWxSZWYoKS5uYXRpdmVFbGVtZW50O1xuXHRcdFx0Y29uc3QgcHJpb3JpdHkgPVxuXHRcdFx0XHQnYmxlbmQnIGluIG1hdGVyaWFsICYmIHR5cGVvZiBtYXRlcmlhbC5ibGVuZCA9PT0gJ251bWJlcicgJiYgbWF0ZXJpYWwuYmxlbmQgPiAwXG5cdFx0XHRcdFx0PyBNYXRoLm1heCgxLCB0aGlzLnJlbmRlclByaW9yaXR5KCkpXG5cdFx0XHRcdFx0OiAwO1xuXG5cdFx0XHQvLyBJZiBibGVuZCBpcyA+IDAgdGhlbiB0aGUgcG9ydGFsIGlzIGJlaW5nIGVudGVyZWQsIHRoZSByZW5kZXItcHJpb3JpdHkgbXVzdCBjaGFuZ2Vcblx0XHRcdGlmICh0aGlzLnByaW9yaXR5KCkgIT09IHByaW9yaXR5KSB7XG5cdFx0XHRcdHRoaXMucHJpb3JpdHkuc2V0KHByaW9yaXR5KTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxufVxuIl19
|
package/esm2022/misc/lib/fbo.mjs
CHANGED
|
@@ -3,7 +3,7 @@ import { injectStore } from 'angular-three';
|
|
|
3
3
|
import { assertInjector } from 'ngxtension/assert-injector';
|
|
4
4
|
import { DepthTexture, FloatType, HalfFloatType, LinearFilter, WebGLRenderTarget, } from 'three';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
-
export function injectFBO(params, { injector } = {}) {
|
|
6
|
+
export function injectFBO(params = () => ({}), { injector } = {}) {
|
|
7
7
|
return assertInjector(injectFBO, injector, () => {
|
|
8
8
|
const store = injectStore();
|
|
9
9
|
const size = store.select('size');
|
|
@@ -83,4 +83,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
|
|
|
83
83
|
type: Directive,
|
|
84
84
|
args: [{ selector: 'ng-template[fbo]', standalone: true }]
|
|
85
85
|
}], ctorParameters: () => [] });
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmJvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL21pc2Mvc3JjL2xpYi9mYm8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLFVBQVUsRUFDVixTQUFTLEVBR1QsV0FBVyxFQUNYLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxFQUNMLFNBQVMsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBRU4sWUFBWSxFQUNaLFNBQVMsRUFDVCxhQUFhLEVBQ2IsWUFBWSxFQUlaLGlCQUFpQixHQUVqQixNQUFNLE9BQU8sQ0FBQzs7QUErQmYsTUFBTSxVQUFVLFNBQVMsQ0FBQyxNQUEyQixFQUFFLEVBQUUsUUFBUSxLQUE4QixFQUFFO0lBQ2hHLE9BQU8sY0FBYyxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFO1FBQy9DLE1BQU0sS0FBSyxHQUFHLFdBQVcsRUFBRSxDQUFDO1FBQzVCLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEMsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUUxQyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzNCLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQztZQUMzQixPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLEdBQUcsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDO1FBQzFFLENB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RTtZQUNoQyxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNsRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztRQUVILGVBQWUsQ0FBQyxHQUFHLEVBQUU7WUFDcEIsMENBQTBDO1lBQzFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsR0FBRyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7Z0JBQ3hGLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQixDQUFDLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDakMsR0FBRyxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFVLEVBQUUsR0FBWTtRQUNyRCxPQUFPLElBQUksQ0FBQztJQUNiLENBQUM7K0dBN0JXLE9BQU87bUdBQVAsT0FBTzs7NEZBQVAsT0FBTztrQkFEbkIsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0RGVzdHJveVJlZixcblx0RGlyZWN0aXZlLFxuXHRFbWJlZGRlZFZpZXdSZWYsXG5cdEluamVjdG9yLFxuXHRUZW1wbGF0ZVJlZixcblx0Vmlld0NvbnRhaW5lclJlZixcblx0YWZ0ZXJOZXh0UmVuZGVyLFxuXHRjb21wdXRlZCxcblx0ZWZmZWN0LFxuXHRpbmplY3QsXG5cdGlucHV0LFxuXHR1bnRyYWNrZWQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0U3RvcmUgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGFzc2VydEluamVjdG9yIH0gZnJvbSAnbmd4dGVuc2lvbi9hc3NlcnQtaW5qZWN0b3InO1xuaW1wb3J0IHtcblx0Q29sb3JTcGFjZSxcblx0RGVwdGhUZXh0dXJlLFxuXHRGbG9hdFR5cGUsXG5cdEhhbGZGbG9hdFR5cGUsXG5cdExpbmVhckZpbHRlcixcblx0TWFnbmlmaWNhdGlvblRleHR1cmVGaWx0ZXIsXG5cdE1pbmlmaWNhdGlvblRleHR1cmVGaWx0ZXIsXG5cdFRleHR1cmVEYXRhVHlwZSxcblx0V2ViR0xSZW5kZXJUYXJnZXQsXG5cdFdyYXBwaW5nLFxufSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBUZXh0dXJlRW5jb2RpbmcgfSBmcm9tICcuL2RlcHJlY2F0ZWQnO1xuXG5pbnRlcmZhY2UgRkJPU2V0dGluZ3Mge1xuXHQvKiogRGVmaW5lcyB0aGUgY291bnQgb2YgTVNBQSBzYW1wbGVzLiBDYW4gb25seSBiZSB1c2VkIHdpdGggV2ViR0wgMi4gRGVmYXVsdDogMCAqL1xuXHRzYW1wbGVzPzogbnVtYmVyO1xuXHQvKiogSWYgc2V0LCB0aGUgc2NlbmUgZGVwdGggd2lsbCBiZSByZW5kZXJlZCBpbnRvIGJ1ZmZlci5kZXB0aFRleHR1cmUuIERlZmF1bHQ6IGZhbHNlICovXG5cdGRlcHRoPzogYm9vbGVhbjtcblxuXHQvLyBXZWJHTFJlbmRlclRhcmdldE9wdGlvbnMgPT4gUmVuZGVyVGFyZ2V0T3B0aW9uc1xuXHR3cmFwUz86IFdyYXBwaW5nIHwgdW5kZWZpbmVkO1xuXHR3cmFwVD86IFdyYXBwaW5nIHwgdW5kZWZpbmVkO1xuXHRtYWdGaWx0ZXI/OiBNYWduaWZpY2F0aW9uVGV4dHVyZUZpbHRlciB8IHVuZGVmaW5lZDtcblx0bWluRmlsdGVyPzogTWluaWZpY2F0aW9uVGV4dHVyZUZpbHRlciB8IHVuZGVmaW5lZDtcblx0Zm9ybWF0PzogbnVtYmVyIHwgdW5kZWZpbmVkOyAvLyBSR0JBRm9ybWF0O1xuXHR0eXBlPzogVGV4dHVyZURhdGFUeXBlIHwgdW5kZWZpbmVkOyAvLyBVbnNpZ25lZEJ5dGVUeXBlO1xuXHRhbmlzb3Ryb3B5PzogbnVtYmVyIHwgdW5kZWZpbmVkOyAvLyAxO1xuXHRkZXB0aEJ1ZmZlcj86IGJvb2xlYW4gfCB1bmRlZmluZWQ7IC8vIHRydWU7XG5cdHN0ZW5jaWxCdWZmZXI/OiBib29sZWFuIHwgdW5kZWZpbmVkOyAvLyBmYWxzZTtcblx0Z2VuZXJhdGVNaXBtYXBzPzogYm9vbGVhbiB8IHVuZGVmaW5lZDsgLy8gdHJ1ZTtcblx0ZGVwdGhUZXh0dXJlPzogRGVwdGhUZXh0dXJlIHwgdW5kZWZpbmVkO1xuXHRlbmNvZGluZz86IFRleHR1cmVFbmNvZGluZyB8IHVuZGVmaW5lZDtcblx0Y29sb3JTcGFjZT86IENvbG9yU3BhY2UgfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0c0ZCT1BhcmFtcyB7XG5cdHdpZHRoPzogbnVtYmVyIHwgRkJPU2V0dGluZ3M7XG5cdGhlaWdodD86IG51bWJlcjtcblx0c2V0dGluZ3M/OiBGQk9TZXR0aW5ncztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdEZCTyhwYXJhbXM6ICgpID0+IE5ndHNGQk9QYXJhbXMsIHsgaW5qZWN0b3IgfTogeyBpbmplY3Rvcj86IEluamVjdG9yIH0gPSB7fSkge1xuXHRyZXR1cm4gYXNzZXJ0SW5qZWN0b3IoaW5qZWN0RkJPLCBpbmplY3RvciwgKCkgPT4ge1xuXHRcdGNvbnN0IHN0b3JlID0gaW5qZWN0U3RvcmUoKTtcblx0XHRjb25zdCBzaXplID0gc3RvcmUuc2VsZWN0KCdzaXplJyk7XG5cdFx0Y29uc3Qgdmlld3BvcnQgPSBzdG9yZS5zZWxlY3QoJ3ZpZXdwb3J0Jyk7XG5cblx0XHRjb25zdCB3aWR0aCA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRcdGNvbnN0IHsgd2lkdGggfSA9IHBhcmFtcygpO1xuXHRcdFx0cmV0dXJuIHR5cGVvZiB3aWR0aCA9PT0gJ251bWJlcicgPyB3aWR0aCA6IHNpemUoKS53aWR0aCAqIHZpZXdwb3J0KCkuZHByO1xuXHRcdH0pO1xuXHRcdGNvbnN0IGhlaWdodCA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRcdGNvbnN0IHsgaGVpZ2h0IH0gPSBwYXJhbXMoKTtcblx0XHRcdHJldHVybiB0eXBlb2YgaGVpZ2h0ID09PSAnbnVtYmVyJyA/IGhlaWdodCA6IHNpemUoKS5oZWlnaHQgKiB2aWV3cG9ydCgpLmRwcjtcblx0XHR9KTtcblx0XHRjb25zdCBzZXR0aW5ncyA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRcdGNvbnN0IHsgd2lkdGgsIHNldHRpbmdzIH0gPSBwYXJhbXMoKTtcblx0XHRcdGNvbnN0IF9zZXR0aW5ncyA9ICh0eXBlb2Ygd2lkdGggPT09ICdudW1iZXInID8gc2V0dGluZ3MgOiAod2lkdGggYXMgRkJPU2V0dGluZ3MpKSB8fCB7fTtcblx0XHRcdGlmIChfc2V0dGluZ3Muc2FtcGxlcyA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdF9zZXR0aW5ncy5zYW1wbGVzID0gMDtcblx0XHRcdH1cblx0XHRcdHJldHVybiBfc2V0dGluZ3M7XG5cdFx0fSk7XG5cblx0XHRjb25zdCB0YXJnZXQgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0XHRjb25zdCBbeyBzYW1wbGVzID0gMCwgZGVwdGgsIC4uLnRhcmdldFNldHRpbmdzIH0sIF93aWR0aCwgX2hlaWdodF0gPSBbXG5cdFx0XHRcdHVudHJhY2tlZChzZXR0aW5ncyksXG5cdFx0XHRcdHVudHJhY2tlZCh3aWR0aCksXG5cdFx0XHRcdHVudHJhY2tlZChoZWlnaHQpLFxuXHRcdFx0XTtcblx0XHRcdGNvbnN0IHRhcmdldCA9IG5ldyBXZWJHTFJlbmRlclRhcmdldChfd2lkdGgsIF9oZWlnaHQsIHtcblx0XHRcdFx0bWluRmlsdGVyOiBMaW5lYXJGaWx0ZXIsXG5cdFx0XHRcdG1hZ0ZpbHRlcjogTGluZWFyRmlsdGVyLFxuXHRcdFx0XHR0eXBlOiBIYWxmRmxvYXRUeXBlLFxuXHRcdFx0XHQuLi50YXJnZXRTZXR0aW5ncyxcblx0XHRcdH0pO1xuXG5cdFx0XHRpZiAoZGVwdGgpIHtcblx0XHRcdFx0dGFyZ2V0LmRlcHRoVGV4dHVyZSA9IG5ldyBEZXB0aFRleHR1cmUoX3dpZHRoLCBfaGVpZ2h0LCBGbG9hdFR5cGUpO1xuXHRcdFx0fVxuXG5cdFx0XHR0YXJnZXQuc2FtcGxlcyA9IHNhbXBsZXM7XG5cdFx0XHRyZXR1cm4gdGFyZ2V0O1xuXHRcdH0pO1xuXG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdGNvbnN0IFt7IHNhbXBsZXMgPSAwIH0sIF93aWR0aCwgX2hlaWdodCwgX3RhcmdldF0gPSBbc2V0dGluZ3MoKSwgd2lkdGgoKSwgaGVpZ2h0KCksIHRhcmdldCgpXTtcblx0XHRcdF90YXJnZXQuc2V0U2l6ZShfd2lkdGgsIF9oZWlnaHQpO1xuXHRcdFx0aWYgKHNhbXBsZXMpIF90YXJnZXQuc2FtcGxlcyA9IHNhbXBsZXM7XG5cdFx0fSk7XG5cblx0XHRpbmplY3QoRGVzdHJveVJlZikub25EZXN0cm95KCgpID0+IHRhcmdldCgpLmRpc3Bvc2UoKSk7XG5cblx0XHRyZXR1cm4gdGFyZ2V0O1xuXHR9KTtcbn1cblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnbmctdGVtcGxhdGVbZmJvXScsIHN0YW5kYWxvbmU6IHRydWUgfSlcbmV4cG9ydCBjbGFzcyBOZ3RzRkJPIHtcblx0ZmJvID0gaW5wdXQoe30gYXMgeyB3aWR0aDogTmd0c0ZCT1BhcmFtc1snd2lkdGgnXTsgaGVpZ2h0OiBOZ3RzRkJPUGFyYW1zWydoZWlnaHQnXSB9ICYgRkJPU2V0dGluZ3MpO1xuXG5cdHByaXZhdGUgdGVtcGxhdGUgPSBpbmplY3QoVGVtcGxhdGVSZWYpO1xuXHRwcml2YXRlIHZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0bGV0IHJlZjogRW1iZWRkZWRWaWV3UmVmPHsgJGltcGxpY2l0OiBSZXR1cm5UeXBlPHR5cGVvZiBpbmplY3RGQk8+IH0+O1xuXG5cdFx0Y29uc3QgZmJvVGFyZ2V0ID0gaW5qZWN0RkJPKCgpID0+IHtcblx0XHRcdGNvbnN0IHsgd2lkdGgsIGhlaWdodCwgLi4uc2V0dGluZ3MgfSA9IHRoaXMuZmJvKCk7XG5cdFx0XHRyZXR1cm4geyB3aWR0aCwgaGVpZ2h0LCBzZXR0aW5ncyB9O1xuXHRcdH0pO1xuXG5cdFx0YWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcblx0XHRcdC8vIFRPRE86IGRvdWJsZSBjaGVjayBpZiB3ZSBuZWVkIHVudHJhY2tlZFxuXHRcdFx0dW50cmFja2VkKCgpID0+IHtcblx0XHRcdFx0cmVmID0gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlLCB7ICRpbXBsaWNpdDogZmJvVGFyZ2V0IH0pO1xuXHRcdFx0XHRyZWYuZGV0ZWN0Q2hhbmdlcygpO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cblx0XHRpbmplY3QoRGVzdHJveVJlZikub25EZXN0cm95KCgpID0+IHtcblx0XHRcdHJlZj8uZGVzdHJveSgpO1xuXHRcdH0pO1xuXHR9XG5cblx0c3RhdGljIG5nVGVtcGxhdGVDb250ZXh0R3VhcmQoXzogTmd0c0ZCTywgY3R4OiB1bmtub3duKTogY3R4IGlzIHsgJGltcGxpY2l0OiBSZXR1cm5UeXBlPHR5cGVvZiBpbmplY3RGQk8+IH0ge1xuXHRcdHJldHVybiB0cnVlO1xuXHR9XG59XG4iXX0=
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmJvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL21pc2Mvc3JjL2xpYi9mYm8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLFVBQVUsRUFDVixTQUFTLEVBR1QsV0FBVyxFQUNYLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsUUFBUSxFQUNSLE1BQU0sRUFDTixNQUFNLEVBQ04sS0FBSyxFQUNMLFNBQVMsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBRU4sWUFBWSxFQUNaLFNBQVMsRUFDVCxhQUFhLEVBQ2IsWUFBWSxFQUlaLGlCQUFpQixHQUVqQixNQUFNLE9BQU8sQ0FBQzs7QUErQmYsTUFBTSxVQUFVLFNBQVMsQ0FBQyxTQUE4QixHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsUUFBUSxLQUE4QixFQUFFO0lBQzdHLE9BQU8sY0FBYyxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFO1FBQy9DLE1BQU0sS0FBSyxHQUFHLFdBQVcsRUFBRSxDQUFDO1FBQzVCLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEMsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUUxQyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzNCLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQztZQUMzQixPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLEdBQUcsUUFB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TSxTQUFTLEdBQUcsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNoQyxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNsRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztRQUVILGVBQWUsQ0FBQyxHQUFHLEVBQUU7WUFDcEIsMENBQTBDO1lBQzFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsR0FBRyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7Z0JBQ3hGLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQixDQUFDLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDakMsR0FBRyxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFVLEVBQUUsR0FBWTtRQUNyRCxPQUFPLElBQUksQ0FBQztJQUNiLENBQUM7K0dBN0JXLE9BQU87bUdBQVAsT0FBTzs7NEZBQVAsT0FBTztrQkFEbkIsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0RGVzdHJveVJlZixcblx0RGlyZWN0aXZlLFxuXHRFbWJlZGRlZFZpZXdSZWYsXG5cdEluamVjdG9yLFxuXHRUZW1wbGF0ZVJlZixcblx0Vmlld0NvbnRhaW5lclJlZixcblx0YWZ0ZXJOZXh0UmVuZGVyLFxuXHRjb21wdXRlZCxcblx0ZWZmZWN0LFxuXHRpbmplY3QsXG5cdGlucHV0LFxuXHR1bnRyYWNrZWQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0U3RvcmUgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGFzc2VydEluamVjdG9yIH0gZnJvbSAnbmd4dGVuc2lvbi9hc3NlcnQtaW5qZWN0b3InO1xuaW1wb3J0IHtcblx0Q29sb3JTcGFjZSxcblx0RGVwdGhUZXh0dXJlLFxuXHRGbG9hdFR5cGUsXG5cdEhhbGZGbG9hdFR5cGUsXG5cdExpbmVhckZpbHRlcixcblx0TWFnbmlmaWNhdGlvblRleHR1cmVGaWx0ZXIsXG5cdE1pbmlmaWNhdGlvblRleHR1cmVGaWx0ZXIsXG5cdFRleHR1cmVEYXRhVHlwZSxcblx0V2ViR0xSZW5kZXJUYXJnZXQsXG5cdFdyYXBwaW5nLFxufSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBUZXh0dXJlRW5jb2RpbmcgfSBmcm9tICcuL2RlcHJlY2F0ZWQnO1xuXG5pbnRlcmZhY2UgRkJPU2V0dGluZ3Mge1xuXHQvKiogRGVmaW5lcyB0aGUgY291bnQgb2YgTVNBQSBzYW1wbGVzLiBDYW4gb25seSBiZSB1c2VkIHdpdGggV2ViR0wgMi4gRGVmYXVsdDogMCAqL1xuXHRzYW1wbGVzPzogbnVtYmVyO1xuXHQvKiogSWYgc2V0LCB0aGUgc2NlbmUgZGVwdGggd2lsbCBiZSByZW5kZXJlZCBpbnRvIGJ1ZmZlci5kZXB0aFRleHR1cmUuIERlZmF1bHQ6IGZhbHNlICovXG5cdGRlcHRoPzogYm9vbGVhbjtcblxuXHQvLyBXZWJHTFJlbmRlclRhcmdldE9wdGlvbnMgPT4gUmVuZGVyVGFyZ2V0T3B0aW9uc1xuXHR3cmFwUz86IFdyYXBwaW5nIHwgdW5kZWZpbmVkO1xuXHR3cmFwVD86IFdyYXBwaW5nIHwgdW5kZWZpbmVkO1xuXHRtYWdGaWx0ZXI/OiBNYWduaWZpY2F0aW9uVGV4dHVyZUZpbHRlciB8IHVuZGVmaW5lZDtcblx0bWluRmlsdGVyPzogTWluaWZpY2F0aW9uVGV4dHVyZUZpbHRlciB8IHVuZGVmaW5lZDtcblx0Zm9ybWF0PzogbnVtYmVyIHwgdW5kZWZpbmVkOyAvLyBSR0JBRm9ybWF0O1xuXHR0eXBlPzogVGV4dHVyZURhdGFUeXBlIHwgdW5kZWZpbmVkOyAvLyBVbnNpZ25lZEJ5dGVUeXBlO1xuXHRhbmlzb3Ryb3B5PzogbnVtYmVyIHwgdW5kZWZpbmVkOyAvLyAxO1xuXHRkZXB0aEJ1ZmZlcj86IGJvb2xlYW4gfCB1bmRlZmluZWQ7IC8vIHRydWU7XG5cdHN0ZW5jaWxCdWZmZXI/OiBib29sZWFuIHwgdW5kZWZpbmVkOyAvLyBmYWxzZTtcblx0Z2VuZXJhdGVNaXBtYXBzPzogYm9vbGVhbiB8IHVuZGVmaW5lZDsgLy8gdHJ1ZTtcblx0ZGVwdGhUZXh0dXJlPzogRGVwdGhUZXh0dXJlIHwgdW5kZWZpbmVkO1xuXHRlbmNvZGluZz86IFRleHR1cmVFbmNvZGluZyB8IHVuZGVmaW5lZDtcblx0Y29sb3JTcGFjZT86IENvbG9yU3BhY2UgfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0c0ZCT1BhcmFtcyB7XG5cdHdpZHRoPzogbnVtYmVyIHwgRkJPU2V0dGluZ3M7XG5cdGhlaWdodD86IG51bWJlcjtcblx0c2V0dGluZ3M/OiBGQk9TZXR0aW5ncztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdEZCTyhwYXJhbXM6ICgpID0+IE5ndHNGQk9QYXJhbXMgPSAoKSA9PiAoe30pLCB7IGluamVjdG9yIH06IHsgaW5qZWN0b3I/OiBJbmplY3RvciB9ID0ge30pIHtcblx0cmV0dXJuIGFzc2VydEluamVjdG9yKGluamVjdEZCTywgaW5qZWN0b3IsICgpID0+IHtcblx0XHRjb25zdCBzdG9yZSA9IGluamVjdFN0b3JlKCk7XG5cdFx0Y29uc3Qgc2l6ZSA9IHN0b3JlLnNlbGVjdCgnc2l6ZScpO1xuXHRcdGNvbnN0IHZpZXdwb3J0ID0gc3RvcmUuc2VsZWN0KCd2aWV3cG9ydCcpO1xuXG5cdFx0Y29uc3Qgd2lkdGggPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0XHRjb25zdCB7IHdpZHRoIH0gPSBwYXJhbXMoKTtcblx0XHRcdHJldHVybiB0eXBlb2Ygd2lkdGggPT09ICdudW1iZXInID8gd2lkdGggOiBzaXplKCkud2lkdGggKiB2aWV3cG9ydCgpLmRwcjtcblx0XHR9KTtcblx0XHRjb25zdCBoZWlnaHQgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0XHRjb25zdCB7IGhlaWdodCB9ID0gcGFyYW1zKCk7XG5cdFx0XHRyZXR1cm4gdHlwZW9mIGhlaWdodCA9PT0gJ251bWJlcicgPyBoZWlnaHQgOiBzaXplKCkuaGVpZ2h0ICogdmlld3BvcnQoKS5kcHI7XG5cdFx0fSk7XG5cdFx0Y29uc3Qgc2V0dGluZ3MgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0XHRjb25zdCB7IHdpZHRoLCBzZXR0aW5ncyB9ID0gcGFyYW1zKCk7XG5cdFx0XHRjb25zdCBfc2V0dGluZ3MgPSAodHlwZW9mIHdpZHRoID09PSAnbnVtYmVyJyA/IHNldHRpbmdzIDogKHdpZHRoIGFzIEZCT1NldHRpbmdzKSkgfHwge307XG5cdFx0XHRpZiAoX3NldHRpbmdzLnNhbXBsZXMgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHRfc2V0dGluZ3Muc2FtcGxlcyA9IDA7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gX3NldHRpbmdzO1xuXHRcdH0pO1xuXG5cdFx0Y29uc3QgdGFyZ2V0ID0gY29tcHV0ZWQoKCkgPT4ge1xuXHRcdFx0Y29uc3QgW3sgc2FtcGxlcyA9IDAsIGRlcHRoLCAuLi50YXJnZXRTZXR0aW5ncyB9LCBfd2lkdGgsIF9oZWlnaHRdID0gW1xuXHRcdFx0XHR1bnRyYWNrZWQoc2V0dGluZ3MpLFxuXHRcdFx0XHR1bnRyYWNrZWQod2lkdGgpLFxuXHRcdFx0XHR1bnRyYWNrZWQoaGVpZ2h0KSxcblx0XHRcdF07XG5cdFx0XHRjb25zdCB0YXJnZXQgPSBuZXcgV2ViR0xSZW5kZXJUYXJnZXQoX3dpZHRoLCBfaGVpZ2h0LCB7XG5cdFx0XHRcdG1pbkZpbHRlcjogTGluZWFyRmlsdGVyLFxuXHRcdFx0XHRtYWdGaWx0ZXI6IExpbmVhckZpbHRlcixcblx0XHRcdFx0dHlwZTogSGFsZkZsb2F0VHlwZSxcblx0XHRcdFx0Li4udGFyZ2V0U2V0dGluZ3MsXG5cdFx0XHR9KTtcblxuXHRcdFx0aWYgKGRlcHRoKSB7XG5cdFx0XHRcdHRhcmdldC5kZXB0aFRleHR1cmUgPSBuZXcgRGVwdGhUZXh0dXJlKF93aWR0aCwgX2hlaWdodCwgRmxvYXRUeXBlKTtcblx0XHRcdH1cblxuXHRcdFx0dGFyZ2V0LnNhbXBsZXMgPSBzYW1wbGVzO1xuXHRcdFx0cmV0dXJuIHRhcmdldDtcblx0XHR9KTtcblxuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCBbeyBzYW1wbGVzID0gMCB9LCBfd2lkdGgsIF9oZWlnaHQsIF90YXJnZXRdID0gW3NldHRpbmdzKCksIHdpZHRoKCksIGhlaWdodCgpLCB0YXJnZXQoKV07XG5cdFx0XHRfdGFyZ2V0LnNldFNpemUoX3dpZHRoLCBfaGVpZ2h0KTtcblx0XHRcdGlmIChzYW1wbGVzKSBfdGFyZ2V0LnNhbXBsZXMgPSBzYW1wbGVzO1xuXHRcdH0pO1xuXG5cdFx0aW5qZWN0KERlc3Ryb3lSZWYpLm9uRGVzdHJveSgoKSA9PiB0YXJnZXQoKS5kaXNwb3NlKCkpO1xuXG5cdFx0cmV0dXJuIHRhcmdldDtcblx0fSk7XG59XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ25nLXRlbXBsYXRlW2Zib10nLCBzdGFuZGFsb25lOiB0cnVlIH0pXG5leHBvcnQgY2xhc3MgTmd0c0ZCTyB7XG5cdGZibyA9IGlucHV0KHt9IGFzIHsgd2lkdGg6IE5ndHNGQk9QYXJhbXNbJ3dpZHRoJ107IGhlaWdodDogTmd0c0ZCT1BhcmFtc1snaGVpZ2h0J10gfSAmIEZCT1NldHRpbmdzKTtcblxuXHRwcml2YXRlIHRlbXBsYXRlID0gaW5qZWN0KFRlbXBsYXRlUmVmKTtcblx0cHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGxldCByZWY6IEVtYmVkZGVkVmlld1JlZjx7ICRpbXBsaWNpdDogUmV0dXJuVHlwZTx0eXBlb2YgaW5qZWN0RkJPPiB9PjtcblxuXHRcdGNvbnN0IGZib1RhcmdldCA9IGluamVjdEZCTygoKSA9PiB7XG5cdFx0XHRjb25zdCB7IHdpZHRoLCBoZWlnaHQsIC4uLnNldHRpbmdzIH0gPSB0aGlzLmZibygpO1xuXHRcdFx0cmV0dXJuIHsgd2lkdGgsIGhlaWdodCwgc2V0dGluZ3MgfTtcblx0XHR9KTtcblxuXHRcdGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG5cdFx0XHQvLyBUT0RPOiBkb3VibGUgY2hlY2sgaWYgd2UgbmVlZCB1bnRyYWNrZWRcblx0XHRcdHVudHJhY2tlZCgoKSA9PiB7XG5cdFx0XHRcdHJlZiA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZSwgeyAkaW1wbGljaXQ6IGZib1RhcmdldCB9KTtcblx0XHRcdFx0cmVmLmRldGVjdENoYW5nZXMoKTtcblx0XHRcdH0pO1xuXHRcdH0pO1xuXG5cdFx0aW5qZWN0KERlc3Ryb3lSZWYpLm9uRGVzdHJveSgoKSA9PiB7XG5cdFx0XHRyZWY/LmRlc3Ryb3koKTtcblx0XHR9KTtcblx0fVxuXG5cdHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkKF86IE5ndHNGQk8sIGN0eDogdW5rbm93bik6IGN0eCBpcyB7ICRpbXBsaWNpdDogUmV0dXJuVHlwZTx0eXBlb2YgaW5qZWN0RkJPPiB9IHtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fVxufVxuIl19
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { BlurPass, CausticsMaterial, CausticsProjectionMaterial, MeshDiscardMaterial, MeshDistortMaterial, MeshReflectorMaterial, MeshTransmissionMaterial, MeshWobbleMaterial, ProgressiveLightMap, SoftShadowMaterial, SpotLightMaterial,
|
|
2
|
-
export { BlurPass, CausticsMaterial, CausticsProjectionMaterial, MeshDiscardMaterial, MeshDistortMaterial, MeshReflectorMaterial, MeshTransmissionMaterial, MeshWobbleMaterial, ProgressiveLightMap, SoftShadowMaterial, SpotLightMaterial,
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { BlurPass, CausticsMaterial, CausticsProjectionMaterial, createCausticsUpdate, MeshDiscardMaterial, MeshDistortMaterial, MeshPortalMaterial, meshPortalMaterialApplySDF, MeshReflectorMaterial, MeshTransmissionMaterial, MeshWobbleMaterial, ProgressiveLightMap, shaderMaterial, SoftShadowMaterial, SpotLightMaterial, } from '@pmndrs/vanilla';
|
|
2
|
+
export { BlurPass, CausticsMaterial, CausticsProjectionMaterial, createCausticsUpdate, MeshDiscardMaterial, MeshDistortMaterial, MeshPortalMaterial, meshPortalMaterialApplySDF, MeshReflectorMaterial, MeshTransmissionMaterial, MeshWobbleMaterial, ProgressiveLightMap, shaderMaterial, SoftShadowMaterial, SpotLightMaterial, };
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvdmFuaWxsYS1leHBvcnRzL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sUUFBUSxFQUNSLGdCQUFnQixFQUNoQiwwQkFBMEIsRUFFMUIsb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUNuQixtQkFBbUIsRUFFbkIsa0JBQWtCLEVBQ2xCLDBCQUEwQixFQUMxQixxQkFBcUIsRUFDckIsd0JBQXdCLEVBQ3hCLGtCQUFrQixFQUVsQixtQkFBbUIsRUFDbkIsY0FBYyxFQUNkLGtCQUFrQixFQUNsQixpQkFBaUIsR0FDakIsTUFBTSxpQkFBaUIsQ0FBQztBQW9DekIsT0FBTyxFQUNOLFFBQVEsRUFDUixnQkFBZ0IsRUFDaEIsMEJBQTBCLEVBRTFCLG9CQUFvQixFQUNwQixtQkFBbUIsRUFDbkIsbUJBQW1CLEVBRW5CLGtCQUFrQixFQUNsQiwwQkFBMEIsRUFDMUIscUJBQXFCLEVBQ3JCLHdCQUF3QixFQUN4QixrQkFBa0IsRUFFbEIsbUJBQW1CLEVBQ25CLGNBQWMsRUFDZCxrQkFBa0IsRUFDbEIsaUJBQWlCLEdBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRCbHVyUGFzcyxcblx0Q2F1c3RpY3NNYXRlcmlhbCxcblx0Q2F1c3RpY3NQcm9qZWN0aW9uTWF0ZXJpYWwsXG5cdENhdXN0aWNzUHJvamVjdGlvbk1hdGVyaWFsVHlwZSxcblx0Y3JlYXRlQ2F1c3RpY3NVcGRhdGUsXG5cdE1lc2hEaXNjYXJkTWF0ZXJpYWwsXG5cdE1lc2hEaXN0b3J0TWF0ZXJpYWwsXG5cdE1lc2hEaXN0b3J0TWF0ZXJpYWxQYXJhbWV0ZXJzLFxuXHRNZXNoUG9ydGFsTWF0ZXJpYWwsXG5cdG1lc2hQb3J0YWxNYXRlcmlhbEFwcGx5U0RGLFxuXHRNZXNoUmVmbGVjdG9yTWF0ZXJpYWwsXG5cdE1lc2hUcmFuc21pc3Npb25NYXRlcmlhbCxcblx0TWVzaFdvYmJsZU1hdGVyaWFsLFxuXHRNZXNoV29iYmxlTWF0ZXJpYWxQYXJhbWV0ZXJzLFxuXHRQcm9ncmVzc2l2ZUxpZ2h0TWFwLFxuXHRzaGFkZXJNYXRlcmlhbCxcblx0U29mdFNoYWRvd01hdGVyaWFsLFxuXHRTcG90TGlnaHRNYXRlcmlhbCxcbn0gZnJvbSAnQHBtbmRycy92YW5pbGxhJztcbmltcG9ydCB7IE5ndE1hdGVyaWFsIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5cbmV4cG9ydCB0eXBlIE5ndFNwb3RMaWdodE1hdGVyaWFsID0gTmd0TWF0ZXJpYWw8SW5zdGFuY2VUeXBlPHR5cGVvZiBTcG90TGlnaHRNYXRlcmlhbD4sIHR5cGVvZiBTcG90TGlnaHRNYXRlcmlhbD47XG5leHBvcnQgdHlwZSBOZ3RTb2Z0U2hhZG93TWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxJbnN0YW5jZVR5cGU8dHlwZW9mIFNvZnRTaGFkb3dNYXRlcmlhbD4sIHR5cGVvZiBTb2Z0U2hhZG93TWF0ZXJpYWw+O1xuZXhwb3J0IHR5cGUgTmd0Q2F1c3RpY3NQcm9qZWN0aW9uTWF0ZXJpYWwgPSBOZ3RNYXRlcmlhbDxcblx0Q2F1c3RpY3NQcm9qZWN0aW9uTWF0ZXJpYWxUeXBlLFxuXHRbQ2F1c3RpY3NQcm9qZWN0aW9uTWF0ZXJpYWxUeXBlXVxuPjtcbmV4cG9ydCB0eXBlIE5ndE1lc2hQb3J0YWxNYXRlcmlhbCA9IE5ndE1hdGVyaWFsPEluc3RhbmNlVHlwZTx0eXBlb2YgTWVzaFBvcnRhbE1hdGVyaWFsPiwgdHlwZW9mIE1lc2hQb3J0YWxNYXRlcmlhbD47XG5cbmRlY2xhcmUgZ2xvYmFsIHtcblx0aW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG5cdFx0LyoqXG5cdFx0ICogQGV4dGVuZHMgbmd0LW1lc2gtc3RhbmRhcmQtbWF0ZXJpYWxcblx0XHQgKiBAcmF3T3B0aW9ucyBjb2xvcnxibGVuZHxvcGFjaXR5fGFscGhhVGVzdHxtYXBcblx0XHQgKi9cblx0XHQnbmd0LXNvZnQtc2hhZG93LW1hdGVyaWFsJzogTmd0U29mdFNoYWRvd01hdGVyaWFsO1xuXHRcdC8qKlxuXHRcdCAqIEBleHRlbmRzIG5ndC1zaGFkZXItbWF0ZXJpYWxcblx0XHQgKiBAcmF3T3B0aW9ucyBkZXB0aHxvcGFjaXR5fGF0dGVudWF0aW9ufGFuZ2xlUG93ZXJ8c3BvdFBvc2l0aW9ufGxpZ2h0Q29sb3J8Y2FtZXJhTmVhcnxjYW1lcmFGYXJ8cmVzb2x1dGlvbnx0cmFuc3BhcmVudHxkZXB0aFdyaXRlXG5cdFx0ICovXG5cdFx0J25ndC1zcG90LWxpZ2h0LW1hdGVyaWFsJzogTmd0U3BvdExpZ2h0TWF0ZXJpYWw7XG5cdFx0LyoqXG5cdFx0ICogQGV4dGVuZHMgbmd0LXNoYWRlci1tYXRlcmlhbFxuXHRcdCAqIEByYXdPcHRpb25zIGNvbG9yfGNhdXN0aWNzVGV4dHVyZXxjYXVzdGljc1RleHR1cmVCfGxpZ2h0UHJvak1hdHJpeHxsaWdodFZpZXdNYXRyaXhcblx0XHQgKi9cblx0XHQnbmd0LWNhdXN0aWNzLXByb2plY3Rpb24tbWF0ZXJpYWwnOiBOZ3RDYXVzdGljc1Byb2plY3Rpb25NYXRlcmlhbDtcblx0XHQvKipcblx0XHQgKiBAZXh0ZW5kcyBuZ3Qtc2hhZGVyLW1hdGVyaWFsXG5cdFx0ICogQHJhd09wdGlvbnMgcmVzb2x1dGlvbnxibHVyfHNpemV8c2RmfG1hcFxuXHRcdCAqL1xuXHRcdCduZ3QtbWVzaC1wb3J0YWwtbWF0ZXJpYWwnOiBOZ3RNZXNoUG9ydGFsTWF0ZXJpYWw7XG5cdH1cbn1cblxuZXhwb3J0IHtcblx0Qmx1clBhc3MsXG5cdENhdXN0aWNzTWF0ZXJpYWwsXG5cdENhdXN0aWNzUHJvamVjdGlvbk1hdGVyaWFsLFxuXHRDYXVzdGljc1Byb2plY3Rpb25NYXRlcmlhbFR5cGUsXG5cdGNyZWF0ZUNhdXN0aWNzVXBkYXRlLFxuXHRNZXNoRGlzY2FyZE1hdGVyaWFsLFxuXHRNZXNoRGlzdG9ydE1hdGVyaWFsLFxuXHRNZXNoRGlzdG9ydE1hdGVyaWFsUGFyYW1ldGVycyxcblx0TWVzaFBvcnRhbE1hdGVyaWFsLFxuXHRtZXNoUG9ydGFsTWF0ZXJpYWxBcHBseVNERixcblx0TWVzaFJlZmxlY3Rvck1hdGVyaWFsLFxuXHRNZXNoVHJhbnNtaXNzaW9uTWF0ZXJpYWwsXG5cdE1lc2hXb2JibGVNYXRlcmlhbCxcblx0TWVzaFdvYmJsZU1hdGVyaWFsUGFyYW1ldGVycyxcblx0UHJvZ3Jlc3NpdmVMaWdodE1hcCxcblx0c2hhZGVyTWF0ZXJpYWwsXG5cdFNvZnRTaGFkb3dNYXRlcmlhbCxcblx0U3BvdExpZ2h0TWF0ZXJpYWwsXG59O1xuIl19
|