angular-three-soba 2.13.0 → 3.0.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 +247 -247
- package/abstractions/lib/edges.d.ts +276 -276
- package/abstractions/lib/grid.d.ts +45 -45
- package/abstractions/lib/line.d.ts +1 -1
- package/abstractions/lib/prism-geometry.d.ts +4 -4
- package/abstractions/lib/rounded-box.d.ts +1 -1
- package/abstractions/lib/text-3d.d.ts +51 -51
- package/abstractions/lib/text.d.ts +1 -1
- package/cameras/lib/cube-camera.d.ts +1 -1
- package/cameras/lib/orthographic-camera.d.ts +1 -1
- package/cameras/lib/perspective-camera.d.ts +1 -1
- package/controls/index.d.ts +0 -9
- package/fesm2022/angular-three-soba-abstractions.mjs +41 -52
- package/fesm2022/angular-three-soba-abstractions.mjs.map +1 -1
- package/fesm2022/angular-three-soba-cameras.mjs +12 -15
- package/fesm2022/angular-three-soba-cameras.mjs.map +1 -1
- package/fesm2022/angular-three-soba-controls.mjs +16 -30
- package/fesm2022/angular-three-soba-controls.mjs.map +1 -1
- package/fesm2022/angular-three-soba-gizmos.mjs +59 -60
- package/fesm2022/angular-three-soba-gizmos.mjs.map +1 -1
- package/fesm2022/angular-three-soba-loaders.mjs +3 -3
- package/fesm2022/angular-three-soba-loaders.mjs.map +1 -1
- package/fesm2022/angular-three-soba-materials.mjs +27 -35
- package/fesm2022/angular-three-soba-materials.mjs.map +1 -1
- package/fesm2022/angular-three-soba-misc.mjs +27 -29
- package/fesm2022/angular-three-soba-misc.mjs.map +1 -1
- package/fesm2022/angular-three-soba-performances.mjs +31 -34
- package/fesm2022/angular-three-soba-performances.mjs.map +1 -1
- package/fesm2022/angular-three-soba-shaders.mjs.map +1 -1
- package/fesm2022/angular-three-soba-staging.mjs +91 -105
- package/fesm2022/angular-three-soba-staging.mjs.map +1 -1
- package/fesm2022/angular-three-soba-stats.mjs +3 -3
- package/fesm2022/angular-three-soba-stats.mjs.map +1 -1
- package/gizmos/lib/gizmo-helper/gizmo-viewport.d.ts +1 -1
- package/gizmos/lib/pivot-controls/pivot-controls.d.ts +1 -1
- package/materials/lib/mesh-portal-material.d.ts +1 -1
- package/materials/lib/mesh-refraction-material.d.ts +1 -1
- package/misc/lib/computed-attribute.d.ts +3 -3
- package/misc/lib/decal.d.ts +1 -1
- package/misc/lib/html/html.d.ts +2 -2
- package/package.json +8 -34
- package/performances/lib/instances/instances.d.ts +7 -7
- package/performances/lib/points/points.d.ts +16 -16
- package/performances/lib/segments/segments.d.ts +1 -1
- package/staging/lib/accumulative-shadows.d.ts +1 -1
- package/staging/lib/caustics.d.ts +1 -1
- package/staging/lib/center.d.ts +2 -2
- package/staging/lib/contact-shadows.d.ts +1 -1
- package/staging/lib/lightformer.d.ts +1 -1
- package/staging/lib/mask.d.ts +1 -1
- package/staging/lib/sky.d.ts +1 -1
- package/staging/lib/spot-light.d.ts +1 -1
- package/staging/lib/stage.d.ts +5 -5
- package/esm2022/abstractions/angular-three-soba-abstractions.mjs +0 -5
- package/esm2022/abstractions/index.mjs +0 -14
- package/esm2022/abstractions/lib/billboard.mjs +0 -69
- package/esm2022/abstractions/lib/catmull-rom-line.mjs +0 -76
- package/esm2022/abstractions/lib/cubic-bezier-line.mjs +0 -51
- package/esm2022/abstractions/lib/edges.mjs +0 -66
- package/esm2022/abstractions/lib/gradient-texture.mjs +0 -91
- package/esm2022/abstractions/lib/grid.mjs +0 -103
- package/esm2022/abstractions/lib/helper.mjs +0 -74
- package/esm2022/abstractions/lib/line.mjs +0 -123
- package/esm2022/abstractions/lib/prism-geometry.mjs +0 -46
- package/esm2022/abstractions/lib/quadratic-bezier-line.mjs +0 -73
- package/esm2022/abstractions/lib/rounded-box.mjs +0 -131
- package/esm2022/abstractions/lib/text-3d.mjs +0 -100
- package/esm2022/abstractions/lib/text.mjs +0 -86
- package/esm2022/angular-three-soba.mjs +0 -5
- package/esm2022/cameras/angular-three-soba-cameras.mjs +0 -5
- package/esm2022/cameras/index.mjs +0 -5
- package/esm2022/cameras/lib/camera-content.mjs +0 -14
- package/esm2022/cameras/lib/cube-camera.mjs +0 -102
- package/esm2022/cameras/lib/orthographic-camera.mjs +0 -131
- package/esm2022/cameras/lib/perspective-camera.mjs +0 -105
- package/esm2022/controls/angular-three-soba-controls.mjs +0 -5
- package/esm2022/controls/index.mjs +0 -9
- package/esm2022/controls/lib/camera-controls.mjs +0 -126
- package/esm2022/controls/lib/orbit-controls.mjs +0 -120
- package/esm2022/controls/lib/scroll-controls.mjs +0 -261
- package/esm2022/gizmos/angular-three-soba-gizmos.mjs +0 -5
- package/esm2022/gizmos/index.mjs +0 -6
- package/esm2022/gizmos/lib/gizmo-helper/gizmo-helper.mjs +0 -191
- package/esm2022/gizmos/lib/gizmo-helper/gizmo-viewcube.mjs +0 -304
- package/esm2022/gizmos/lib/gizmo-helper/gizmo-viewport.mjs +0 -348
- package/esm2022/gizmos/lib/pivot-controls/axis-arrow.mjs +0 -265
- package/esm2022/gizmos/lib/pivot-controls/axis-rotator.mjs +0 -264
- package/esm2022/gizmos/lib/pivot-controls/pivot-controls.mjs +0 -349
- package/esm2022/gizmos/lib/pivot-controls/plane-slider.mjs +0 -266
- package/esm2022/gizmos/lib/pivot-controls/scaling-sphere.mjs +0 -232
- package/esm2022/gizmos/lib/transform-controls.mjs +0 -177
- package/esm2022/index.mjs +0 -2
- package/esm2022/loaders/angular-three-soba-loaders.mjs +0 -5
- package/esm2022/loaders/index.mjs +0 -7
- package/esm2022/loaders/lib/fbx-loader.mjs +0 -13
- package/esm2022/loaders/lib/font-loader.mjs +0 -49
- package/esm2022/loaders/lib/gltf-loader.mjs +0 -51
- package/esm2022/loaders/lib/loader.mjs +0 -103
- package/esm2022/loaders/lib/progress.mjs +0 -51
- package/esm2022/loaders/lib/texture-loader.mjs +0 -32
- package/esm2022/materials/angular-three-soba-materials.mjs +0 -5
- package/esm2022/materials/index.mjs +0 -9
- package/esm2022/materials/lib/custom-shader-material.mjs +0 -67
- package/esm2022/materials/lib/mesh-distort-material.mjs +0 -43
- package/esm2022/materials/lib/mesh-portal-material.mjs +0 -294
- package/esm2022/materials/lib/mesh-reflector-material.mjs +0 -274
- package/esm2022/materials/lib/mesh-refraction-material.mjs +0 -140
- package/esm2022/materials/lib/mesh-transmission-material.mjs +0 -188
- package/esm2022/materials/lib/mesh-wobble-material.mjs +0 -43
- package/esm2022/materials/lib/point-material.mjs +0 -34
- package/esm2022/misc/angular-three-soba-misc.mjs +0 -5
- package/esm2022/misc/index.mjs +0 -15
- package/esm2022/misc/lib/animations.mjs +0 -71
- package/esm2022/misc/lib/bake-shadows.mjs +0 -24
- package/esm2022/misc/lib/computed-attribute.mjs +0 -51
- package/esm2022/misc/lib/constants.mjs +0 -5
- package/esm2022/misc/lib/decal.mjs +0 -142
- package/esm2022/misc/lib/deprecated.mjs +0 -15
- package/esm2022/misc/lib/depth-buffer.mjs +0 -35
- package/esm2022/misc/lib/fbo.mjs +0 -86
- package/esm2022/misc/lib/html/html-content.mjs +0 -322
- package/esm2022/misc/lib/html/html.mjs +0 -129
- package/esm2022/misc/lib/html/utils.mjs +0 -74
- package/esm2022/misc/lib/intersect.mjs +0 -49
- package/esm2022/misc/lib/preload.mjs +0 -58
- package/esm2022/misc/lib/sampler.mjs +0 -122
- package/esm2022/misc/lib/scale-factor.mjs +0 -29
- package/esm2022/performances/angular-three-soba-performances.mjs +0 -5
- package/esm2022/performances/index.mjs +0 -7
- package/esm2022/performances/lib/adaptive-dpr.mjs +0 -46
- package/esm2022/performances/lib/adaptive-events.mjs +0 -24
- package/esm2022/performances/lib/detailed.mjs +0 -53
- package/esm2022/performances/lib/instances/instances.mjs +0 -177
- package/esm2022/performances/lib/instances/position-mesh.mjs +0 -51
- package/esm2022/performances/lib/points/points.mjs +0 -272
- package/esm2022/performances/lib/points/position-point.mjs +0 -53
- package/esm2022/performances/lib/segments/segment-object.mjs +0 -9
- package/esm2022/performances/lib/segments/segments.mjs +0 -126
- package/esm2022/shaders/angular-three-soba-shaders.mjs +0 -5
- package/esm2022/shaders/index.mjs +0 -4
- package/esm2022/shaders/lib/grid-material.mjs +0 -81
- package/esm2022/shaders/lib/mesh-refraction-material.mjs +0 -163
- package/esm2022/shaders/lib/point-material.mjs +0 -24
- package/esm2022/staging/angular-three-soba-staging.mjs +0 -5
- package/esm2022/staging/index.mjs +0 -21
- package/esm2022/staging/lib/accumulative-shadows.mjs +0 -180
- package/esm2022/staging/lib/backdrop.mjs +0 -69
- package/esm2022/staging/lib/bb-anchor.mjs +0 -58
- package/esm2022/staging/lib/bounds.mjs +0 -282
- package/esm2022/staging/lib/camera-shake.mjs +0 -65
- package/esm2022/staging/lib/caustics.mjs +0 -184
- package/esm2022/staging/lib/center.mjs +0 -114
- package/esm2022/staging/lib/contact-shadows.mjs +0 -214
- package/esm2022/staging/lib/environment/environment.mjs +0 -344
- package/esm2022/staging/lib/environment/inject-environment.mjs +0 -184
- package/esm2022/staging/lib/float.mjs +0 -70
- package/esm2022/staging/lib/lightformer.mjs +0 -103
- package/esm2022/staging/lib/mask.mjs +0 -74
- package/esm2022/staging/lib/matcap-texture.mjs +0 -79
- package/esm2022/staging/lib/normal-texture.mjs +0 -79
- package/esm2022/staging/lib/randomized-lights.mjs +0 -100
- package/esm2022/staging/lib/render-texture.mjs +0 -202
- package/esm2022/staging/lib/sky.mjs +0 -86
- package/esm2022/staging/lib/spot-light.mjs +0 -445
- package/esm2022/staging/lib/stage.mjs +0 -232
- package/esm2022/stats/angular-three-soba-stats.mjs +0 -5
- package/esm2022/stats/index.mjs +0 -2
- package/esm2022/stats/lib/stats.mjs +0 -57
- package/esm2022/vanilla-exports/angular-three-soba-vanilla-exports.mjs +0 -5
- package/esm2022/vanilla-exports/index.mjs +0 -3
|
@@ -1,188 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, computed, CUSTOM_ELEMENTS_SCHEMA, DestroyRef, inject, input, untracked, viewChild, } from '@angular/core';
|
|
2
|
-
import { getLocalState, injectBeforeRender, NgtArgs, omit, pick, } from 'angular-three';
|
|
3
|
-
import { injectFBO } from 'angular-three-soba/misc';
|
|
4
|
-
import { MeshDiscardMaterial, MeshTransmissionMaterial } from 'angular-three-soba/vanilla-exports';
|
|
5
|
-
import { mergeInputs } from 'ngxtension/inject-inputs';
|
|
6
|
-
import { BackSide, FrontSide, NoToneMapping } from 'three';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
const defaultOptions = {
|
|
9
|
-
transmissionSampler: false,
|
|
10
|
-
backside: false,
|
|
11
|
-
side: FrontSide,
|
|
12
|
-
transmission: 1,
|
|
13
|
-
thickness: 0,
|
|
14
|
-
backsideThickness: 0,
|
|
15
|
-
backsideEnvMapIntensity: 1,
|
|
16
|
-
samples: 10,
|
|
17
|
-
};
|
|
18
|
-
export class NgtsMeshTransmissionMaterial {
|
|
19
|
-
constructor() {
|
|
20
|
-
this.attach = input('material');
|
|
21
|
-
this.options = input(defaultOptions, { transform: mergeInputs(defaultOptions) });
|
|
22
|
-
this.parameters = omit(this.options, [
|
|
23
|
-
'buffer',
|
|
24
|
-
'transmissionSampler',
|
|
25
|
-
'backside',
|
|
26
|
-
'side',
|
|
27
|
-
'transmission',
|
|
28
|
-
'thickness',
|
|
29
|
-
'backsideThickness',
|
|
30
|
-
'backsideEnvMapIntensity',
|
|
31
|
-
'samples',
|
|
32
|
-
'resolution',
|
|
33
|
-
'backsideResolution',
|
|
34
|
-
'background',
|
|
35
|
-
'anisotropy',
|
|
36
|
-
'anisotropicBlur',
|
|
37
|
-
]);
|
|
38
|
-
this.resolution = pick(this.options, 'resolution');
|
|
39
|
-
this.backsideResolution = pick(this.options, 'backsideResolution');
|
|
40
|
-
this.samples = pick(this.options, 'samples');
|
|
41
|
-
this.buffer = pick(this.options, 'buffer');
|
|
42
|
-
this.anisotropy = pick(this.options, 'anisotropy');
|
|
43
|
-
this.anisotropicBlur = pick(this.options, 'anisotropicBlur');
|
|
44
|
-
this.background = pick(this.options, 'background');
|
|
45
|
-
this.backside = pick(this.options, 'backside');
|
|
46
|
-
this.backsideThickness = pick(this.options, 'backsideThickness');
|
|
47
|
-
this.backsideEnvMapIntensity = pick(this.options, 'backsideEnvMapIntensity');
|
|
48
|
-
this.transmissionSampler = pick(this.options, 'transmissionSampler');
|
|
49
|
-
this.transmission = pick(this.options, 'transmission');
|
|
50
|
-
this.thickness = pick(this.options, 'thickness');
|
|
51
|
-
this.side = pick(this.options, 'side');
|
|
52
|
-
this.materialRef = viewChild('material');
|
|
53
|
-
this.backResolution = computed(() => this.backsideResolution() || this.resolution());
|
|
54
|
-
this.fboBack = injectFBO(() => ({ width: this.backResolution() }));
|
|
55
|
-
this.fboMain = injectFBO(() => ({ width: this.resolution() }));
|
|
56
|
-
this.bufferTexture = computed(() => this.buffer() || this.fboMain().texture);
|
|
57
|
-
this.anisotropicBlurOption = computed(() => this.anisotropicBlur() || this.anisotropy());
|
|
58
|
-
this.discardMaterial = new MeshDiscardMaterial();
|
|
59
|
-
this.material = computed(() => {
|
|
60
|
-
const previousMaterial = untracked(this.materialRef)?.nativeElement;
|
|
61
|
-
if (previousMaterial) {
|
|
62
|
-
previousMaterial.dispose();
|
|
63
|
-
delete previousMaterial['__ngt__'];
|
|
64
|
-
delete previousMaterial['__ngt_renderer__'];
|
|
65
|
-
}
|
|
66
|
-
const [samples, transmissionSampler] = [this.samples(), this.transmissionSampler()];
|
|
67
|
-
return new MeshTransmissionMaterial({ samples, transmissionSampler });
|
|
68
|
-
});
|
|
69
|
-
inject(DestroyRef).onDestroy(() => {
|
|
70
|
-
const material = this.materialRef()?.nativeElement;
|
|
71
|
-
if (material) {
|
|
72
|
-
material.dispose();
|
|
73
|
-
delete material['__ngt__'];
|
|
74
|
-
delete material['__ngt_renderer__'];
|
|
75
|
-
}
|
|
76
|
-
});
|
|
77
|
-
let oldBg;
|
|
78
|
-
let oldEnvMapIntensity;
|
|
79
|
-
let oldTone;
|
|
80
|
-
let parent;
|
|
81
|
-
injectBeforeRender(({ clock, gl, scene, camera }) => {
|
|
82
|
-
const material = this.materialRef()?.nativeElement;
|
|
83
|
-
if (!material)
|
|
84
|
-
return;
|
|
85
|
-
const [fboMain, fboBack, transmissionSampler, background, backside, backsideThickness, backsideEnvMapIntensity, thickness, side,] = [
|
|
86
|
-
this.fboMain(),
|
|
87
|
-
this.fboBack(),
|
|
88
|
-
this.transmissionSampler(),
|
|
89
|
-
this.background(),
|
|
90
|
-
this.backside(),
|
|
91
|
-
this.backsideThickness(),
|
|
92
|
-
this.backsideEnvMapIntensity(),
|
|
93
|
-
this.thickness(),
|
|
94
|
-
this.side(),
|
|
95
|
-
];
|
|
96
|
-
material.time = clock.getElapsedTime();
|
|
97
|
-
// Render only if the buffer matches the built-in and no transmission sampler is set
|
|
98
|
-
// @ts-expect-error - we know material.buffer is not just undefined | null
|
|
99
|
-
if (material.buffer === fboMain.texture && !transmissionSampler) {
|
|
100
|
-
parent = getLocalState(material)?.parent();
|
|
101
|
-
if (parent) {
|
|
102
|
-
// Save defaults
|
|
103
|
-
oldTone = gl.toneMapping;
|
|
104
|
-
oldBg = scene.background;
|
|
105
|
-
oldEnvMapIntensity = material.envMapIntensity;
|
|
106
|
-
// Switch off tonemapping lest it double tone maps
|
|
107
|
-
// Save the current background and set the HDR as the new BG
|
|
108
|
-
// Use discardmaterial, the parent will be invisible, but it's shadows will still be cast
|
|
109
|
-
gl.toneMapping = NoToneMapping;
|
|
110
|
-
if (background)
|
|
111
|
-
scene.background = background;
|
|
112
|
-
parent.material = this.discardMaterial;
|
|
113
|
-
if (backside) {
|
|
114
|
-
// Render into the backside buffer
|
|
115
|
-
gl.setRenderTarget(fboBack);
|
|
116
|
-
gl.render(scene, camera);
|
|
117
|
-
// And now prepare the material for the main render using the backside buffer
|
|
118
|
-
parent.material = material;
|
|
119
|
-
Object.assign(parent.material, {
|
|
120
|
-
buffer: fboBack.texture,
|
|
121
|
-
thickness: backsideThickness,
|
|
122
|
-
side: BackSide,
|
|
123
|
-
envMapIntensity: backsideEnvMapIntensity,
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
// Render into the main buffer
|
|
127
|
-
gl.setRenderTarget(fboMain);
|
|
128
|
-
gl.render(scene, camera);
|
|
129
|
-
parent.material = material;
|
|
130
|
-
Object.assign(parent.material, {
|
|
131
|
-
buffer: fboMain.texture,
|
|
132
|
-
thickness,
|
|
133
|
-
side,
|
|
134
|
-
envMapIntensity: oldEnvMapIntensity,
|
|
135
|
-
});
|
|
136
|
-
// Set old state back
|
|
137
|
-
scene.background = oldBg;
|
|
138
|
-
gl.setRenderTarget(null);
|
|
139
|
-
gl.toneMapping = oldTone;
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
});
|
|
143
|
-
}
|
|
144
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsMeshTransmissionMaterial, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
145
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.11", type: NgtsMeshTransmissionMaterial, isStandalone: true, selector: "ngts-mesh-transmission-material", inputs: { attach: { classPropertyName: "attach", publicName: "attach", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "materialRef", first: true, predicate: ["material"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
146
|
-
<ngt-primitive
|
|
147
|
-
*args="[material()]"
|
|
148
|
-
#material
|
|
149
|
-
[attach]="attach()"
|
|
150
|
-
[parameters]="parameters()"
|
|
151
|
-
[_transmission]="transmission()"
|
|
152
|
-
[transmission]="transmissionSampler() ? transmission() : 0"
|
|
153
|
-
[buffer]="bufferTexture()"
|
|
154
|
-
[anisotropicBlur]="anisotropicBlurOption()"
|
|
155
|
-
[side]="side()"
|
|
156
|
-
[thickness]="thickness()"
|
|
157
|
-
>
|
|
158
|
-
<ng-content />
|
|
159
|
-
</ngt-primitive>
|
|
160
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
161
|
-
}
|
|
162
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsMeshTransmissionMaterial, decorators: [{
|
|
163
|
-
type: Component,
|
|
164
|
-
args: [{
|
|
165
|
-
selector: 'ngts-mesh-transmission-material',
|
|
166
|
-
standalone: true,
|
|
167
|
-
template: `
|
|
168
|
-
<ngt-primitive
|
|
169
|
-
*args="[material()]"
|
|
170
|
-
#material
|
|
171
|
-
[attach]="attach()"
|
|
172
|
-
[parameters]="parameters()"
|
|
173
|
-
[_transmission]="transmission()"
|
|
174
|
-
[transmission]="transmissionSampler() ? transmission() : 0"
|
|
175
|
-
[buffer]="bufferTexture()"
|
|
176
|
-
[anisotropicBlur]="anisotropicBlurOption()"
|
|
177
|
-
[side]="side()"
|
|
178
|
-
[thickness]="thickness()"
|
|
179
|
-
>
|
|
180
|
-
<ng-content />
|
|
181
|
-
</ngt-primitive>
|
|
182
|
-
`,
|
|
183
|
-
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
184
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
185
|
-
imports: [NgtArgs],
|
|
186
|
-
}]
|
|
187
|
-
}], ctorParameters: () => [] });
|
|
188
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzaC10cmFuc21pc3Npb24tbWF0ZXJpYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvbWF0ZXJpYWxzL3NyYy9saWIvbWVzaC10cmFuc21pc3Npb24tbWF0ZXJpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLHNCQUFzQixFQUN0QixVQUFVLEVBRVYsTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEVBQ1QsU0FBUyxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTixhQUFhLEVBQ2Isa0JBQWtCLEVBRWxCLE9BQU8sRUFHUCxJQUFJLEVBQ0osSUFBSSxHQUNKLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNuRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFFBQVEsRUFBUyxTQUFTLEVBQVEsYUFBYSxFQUF3QixNQUFNLE9BQU8sQ0FBQzs7QUE0QjlGLE1BQU0sY0FBYyxHQUF3QztJQUMzRCxtQkFBbUIsRUFBRSxLQUFLO0lBQzFCLFFBQVEsRUFBRSxLQUFLO0lBQ2YsSUFBSSxFQUFFLFNBQVM7SUFDZixZQUFZLEVBQUUsQ0FBQztJQUNmLFNBQVMsRUFBRSxDQUFDO0lBQ1osaUJBQWlCLEVBQUUsQ0FBQztJQUNwQix1QkFBdUIsRUFBRSxDQUFDO0lBQzFCLE9BQU8sRUFBRSxFQUFFO0NBQ1gsQ0FBQztBQXlCRixNQUFNLE9BQU8sNEJBQTRCO0lBNkR4QztRQTVEQSxXQUFNLEdBQUcsS0FBSyxDQUFnQixVQUFVLENBQUMsQ0FBQztRQUMxQyxZQUFPLEdBQUcsS0FBSyxDQUFDLGNB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RUFlVCw0REFHUyxPQUFPOzs0RkFFTCw0QkFBNEI7a0JBdkJ4QyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxpQ0FBaUM7b0JBQzNDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7OztFQWVUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO2lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdGNvbXB1dGVkLFxuXHRDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuXHREZXN0cm95UmVmLFxuXHRFbGVtZW50UmVmLFxuXHRpbmplY3QsXG5cdGlucHV0LFxuXHR1bnRyYWNrZWQsXG5cdHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuXHRnZXRMb2NhbFN0YXRlLFxuXHRpbmplY3RCZWZvcmVSZW5kZXIsXG5cdE5ndEFueVJlY29yZCxcblx0Tmd0QXJncyxcblx0Tmd0QXR0YWNoYWJsZSxcblx0Tmd0TWVzaFBoeXNpY2FsTWF0ZXJpYWwsXG5cdG9taXQsXG5cdHBpY2ssXG59IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgaW5qZWN0RkJPIH0gZnJvbSAnYW5ndWxhci10aHJlZS1zb2JhL21pc2MnO1xuaW1wb3J0IHsgTWVzaERpc2NhcmRNYXRlcmlhbCwgTWVzaFRyYW5zbWlzc2lvbk1hdGVyaWFsIH0gZnJvbSAnYW5ndWxhci10aHJlZS1zb2JhL3ZhbmlsbGEtZXhwb3J0cyc7XG5pbXBvcnQgeyBtZXJnZUlucHV0cyB9IGZyb20gJ25neHRlbnNpb24vaW5qZWN0LWlucHV0cyc7XG5pbXBvcnQgeyBCYWNrU2lkZSwgQ29sb3IsIEZyb250U2lkZSwgTWVzaCwgTm9Ub25lTWFwcGluZywgVGV4dHVyZSwgVG9uZU1hcHBpbmcgfSBmcm9tICd0aHJlZSc7XG5cbmV4cG9ydCB0eXBlIE1lc2hUcmFuc21pc3Npb25NYXRlcmlhbE9wdGlvbnMgPSBDb25zdHJ1Y3RvclBhcmFtZXRlcnM8dHlwZW9mIE1lc2hUcmFuc21pc3Npb25NYXRlcmlhbD5bMF07XG5cbmV4cG9ydCB0eXBlIE5ndHNNZXNoVHJhbnNtaXNzaW9uTWF0ZXJpYWxPcHRpb25zID0gUGFydGlhbDxOZ3RNZXNoUGh5c2ljYWxNYXRlcmlhbD4gJlxuXHRPbWl0PE1lc2hUcmFuc21pc3Npb25NYXRlcmlhbE9wdGlvbnMsICdidWZmZXInIHwgJ2FuaXNvdHJvcGljQmx1cicgfCAnc2FtcGxlcycgfCAndHJhbnNtaXNzaW9uU2FtcGxlcic+ICYge1xuXHRcdGFuaXNvdHJvcGljQmx1cj86IG51bWJlcjtcblx0XHRidWZmZXI/OiBUZXh0dXJlO1xuXHRcdC8qKiB0cmFuc21pc3Npb25TYW1wbGVyLCB5b3UgY2FuIHVzZSB0aGUgdGhyZWVqcyB0cmFuc21pc3Npb24gc2FtcGxlciB0ZXh0dXJlIHRoYXQgaXNcblx0XHQgKiAgZ2VuZXJhdGVkIG9uY2UgZm9yIGFsbCB0cmFuc21pc3NpdmUgbWF0ZXJpYWxzLiBUaGUgdXBzaWRlIGlzIHRoYXQgaXQgY2FuIGJlIGZhc3RlciBpZiB5b3Vcblx0XHQgKiAgdXNlIG11bHRpcGxlIE1lc2hQaHlzaWNhbCBhbmQgVHJhbnNtaXNzaW9uIG1hdGVyaWFscywgdGhlIGRvd25zaWRlIGlzIHRoYXQgdHJhbnNtaXNzaXZlIG1hdGVyaWFsc1xuXHRcdCAqICB1c2luZyB0aGlzIGNhbid0IHNlZSBvdGhlciB0cmFuc3BhcmVudCBvciB0cmFuc21pc3NpdmUgb2JqZWN0cywgZGVmYXVsdDogZmFsc2UgKi9cblx0XHR0cmFuc21pc3Npb25TYW1wbGVyOiBib29sZWFuO1xuXHRcdC8qKiBSZW5kZXIgdGhlIGJhY2tzaWRlIG9mIHRoZSBtYXRlcmlhbCAobW9yZSBjb3N0LCBiZXR0ZXIgcmVzdWx0cyksIGRlZmF1bHQ6IGZhbHNlICovXG5cdFx0YmFja3NpZGU6IGJvb2xlYW47XG5cdFx0LyoqIEJhY2tzaWRlIHRoaWNrbmVzcyAod2hlbiBiYWNrc2lkZSBpcyB0cnVlKSwgZGVmYXVsdDogMCAqL1xuXHRcdGJhY2tzaWRlVGhpY2tuZXNzOiBudW1iZXI7XG5cdFx0YmFja3NpZGVFbnZNYXBJbnRlbnNpdHk6IG51bWJlcjtcblx0XHQvKiogUmVzb2x1dGlvbiBvZiB0aGUgbG9jYWwgYnVmZmVyLCBkZWZhdWx0OiB1bmRlZmluZWQgKGZ1bGxzY3JlZW4pICovXG5cdFx0cmVzb2x1dGlvbj86IG51bWJlcjtcblx0XHQvKiogUmVzb2x1dGlvbiBvZiB0aGUgbG9jYWwgYnVmZmVyIGZvciBiYWNrZmFjZXMsIGRlZmF1bHQ6IHVuZGVmaW5lZCAoZnVsbHNjcmVlbikgKi9cblx0XHRiYWNrc2lkZVJlc29sdXRpb24/OiBudW1iZXI7XG5cdFx0LyoqIFJlZnJhY3Rpb24gc2FtcGxlcywgZGVmYXVsdDogNiAqL1xuXHRcdHNhbXBsZXM6IG51bWJlcjtcblx0XHQvKiogQnVmZmVyIHNjZW5lIGJhY2tncm91bmQgKGNhbiBiZSBhIHRleHR1cmUsIGEgY3ViZXRleHR1cmUgb3IgYSBjb2xvciksIGRlZmF1bHQ6IG51bGwgKi9cblx0XHRiYWNrZ3JvdW5kPzogVGV4dHVyZSB8IENvbG9yO1xuXHR9O1xuXG5jb25zdCBkZWZhdWx0T3B0aW9uczogTmd0c01lc2hUcmFuc21pc3Npb25NYXRlcmlhbE9wdGlvbnMgPSB7XG5cdHRyYW5zbWlzc2lvblNhbXBsZXI6IGZhbHNlLFxuXHRiYWNrc2lkZTogZmFsc2UsXG5cdHNpZGU6IEZyb250U2lkZSxcblx0dHJhbnNtaXNzaW9uOiAxLFxuXHR0aGlja25lc3M6IDAsXG5cdGJhY2tzaWRlVGhpY2tuZXNzOiAwLFxuXHRiYWNrc2lkZUVudk1hcEludGVuc2l0eTogMSxcblx0c2FtcGxlczogMTAsXG59O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RzLW1lc2gtdHJhbnNtaXNzaW9uLW1hdGVyaWFsJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHQ8bmd0LXByaW1pdGl2ZVxuXHRcdFx0KmFyZ3M9XCJbbWF0ZXJpYWwoKV1cIlxuXHRcdFx0I21hdGVyaWFsXG5cdFx0XHRbYXR0YWNoXT1cImF0dGFjaCgpXCJcblx0XHRcdFtwYXJhbWV0ZXJzXT1cInBhcmFtZXRlcnMoKVwiXG5cdFx0XHRbX3RyYW5zbWlzc2lvbl09XCJ0cmFuc21pc3Npb24oKVwiXG5cdFx0XHRbdHJhbnNtaXNzaW9uXT1cInRyYW5zbWlzc2lvblNhbXBsZXIoKSA/IHRyYW5zbWlzc2lvbigpIDogMFwiXG5cdFx0XHRbYnVmZmVyXT1cImJ1ZmZlclRleHR1cmUoKVwiXG5cdFx0XHRbYW5pc290cm9waWNCbHVyXT1cImFuaXNvdHJvcGljQmx1ck9wdGlvbigpXCJcblx0XHRcdFtzaWRlXT1cInNpZGUoKVwiXG5cdFx0XHRbdGhpY2tuZXNzXT1cInRoaWNrbmVzcygpXCJcblx0XHQ+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LXByaW1pdGl2ZT5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW05ndEFyZ3NdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzTWVzaFRyYW5zbWlzc2lvbk1hdGVyaWFsIHtcblx0YXR0YWNoID0gaW5wdXQ8Tmd0QXR0YWNoYWJsZT4oJ21hdGVyaWFsJyk7XG5cdG9wdGlvbnMgPSBpbnB1dChkZWZhdWx0T3B0aW9ucywgeyB0cmFuc2Zvcm06IG1lcmdlSW5wdXRzKGRlZmF1bHRPcHRpb25zKSB9KTtcblx0cGFyYW1ldGVycyA9IG9taXQodGhpcy5vcHRpb25zLCBbXG5cdFx0J2J1ZmZlcicsXG5cdFx0J3RyYW5zbWlzc2lvblNhbXBsZXInLFxuXHRcdCdiYWNrc2lkZScsXG5cdFx0J3NpZGUnLFxuXHRcdCd0cmFuc21pc3Npb24nLFxuXHRcdCd0aGlja25lc3MnLFxuXHRcdCdiYWNrc2lkZVRoaWNrbmVzcycsXG5cdFx0J2JhY2tzaWRlRW52TWFwSW50ZW5zaXR5Jyxcblx0XHQnc2FtcGxlcycsXG5cdFx0J3Jlc29sdXRpb24nLFxuXHRcdCdiYWNrc2lkZVJlc29sdXRpb24nLFxuXHRcdCdiYWNrZ3JvdW5kJyxcblx0XHQnYW5pc290cm9weScsXG5cdFx0J2FuaXNvdHJvcGljQmx1cicsXG5cdF0pO1xuXG5cdHByaXZhdGUgcmVzb2x1dGlvbiA9IHBpY2sodGhpcy5vcHRpb25zLCAncmVzb2x1dGlvbicpO1xuXHRwcml2YXRlIGJhY2tzaWRlUmVzb2x1dGlvbiA9IHBpY2sodGhpcy5vcHRpb25zLCAnYmFja3NpZGVSZXNvbHV0aW9uJyk7XG5cdHByaXZhdGUgc2FtcGxlcyA9IHBpY2sodGhpcy5vcHRpb25zLCAnc2FtcGxlcycpO1xuXHRwcml2YXRlIGJ1ZmZlciA9IHBpY2sodGhpcy5vcHRpb25zLCAnYnVmZmVyJyk7XG5cdHByaXZhdGUgYW5pc290cm9weSA9IHBpY2sodGhpcy5vcHRpb25zLCAnYW5pc290cm9weScpO1xuXHRwcml2YXRlIGFuaXNvdHJvcGljQmx1ciA9IHBpY2sodGhpcy5vcHRpb25zLCAnYW5pc290cm9waWNCbHVyJyk7XG5cdHByaXZhdGUgYmFja2dyb3VuZCA9IHBpY2sodGhpcy5vcHRpb25zLCAnYmFja2dyb3VuZCcpO1xuXHRwcml2YXRlIGJhY2tzaWRlID0gcGljayh0aGlzLm9wdGlvbnMsICdiYWNrc2lkZScpO1xuXHRwcml2YXRlIGJhY2tzaWRlVGhpY2tuZXNzID0gcGljayh0aGlzLm9wdGlvbnMsICdiYWNrc2lkZVRoaWNrbmVzcycpO1xuXHRwcml2YXRlIGJhY2tzaWRlRW52TWFwSW50ZW5zaXR5ID0gcGljayh0aGlzLm9wdGlvbnMsICdiYWNrc2lkZUVudk1hcEludGVuc2l0eScpO1xuXG5cdHRyYW5zbWlzc2lvblNhbXBsZXIgPSBwaWNrKHRoaXMub3B0aW9ucywgJ3RyYW5zbWlzc2lvblNhbXBsZXInKTtcblx0dHJhbnNtaXNzaW9uID0gcGljayh0aGlzLm9wdGlvbnMsICd0cmFuc21pc3Npb24nKTtcblx0dGhpY2tuZXNzID0gcGljayh0aGlzLm9wdGlvbnMsICd0aGlja25lc3MnKTtcblx0c2lkZSA9IHBpY2sodGhpcy5vcHRpb25zLCAnc2lkZScpO1xuXG5cdG1hdGVyaWFsUmVmID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8TWVzaFRyYW5zbWlzc2lvbk1hdGVyaWFsICYgTWVzaFRyYW5zbWlzc2lvbk1hdGVyaWFsT3B0aW9ucz4+KCdtYXRlcmlhbCcpO1xuXG5cdHByaXZhdGUgYmFja1Jlc29sdXRpb24gPSBjb21wdXRlZCgoKSA9PiB0aGlzLmJhY2tzaWRlUmVzb2x1dGlvbigpIHx8IHRoaXMucmVzb2x1dGlvbigpKTtcblxuXHRwcml2YXRlIGZib0JhY2sgPSBpbmplY3RGQk8oKCkgPT4gKHsgd2lkdGg6IHRoaXMuYmFja1Jlc29sdXRpb24oKSB9KSk7XG5cdHByaXZhdGUgZmJvTWFpbiA9IGluamVjdEZCTygoKSA9PiAoeyB3aWR0aDogdGhpcy5yZXNvbHV0aW9uKCkgfSkpO1xuXG5cdGJ1ZmZlclRleHR1cmUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmJ1ZmZlcigpIHx8IHRoaXMuZmJvTWFpbigpLnRleHR1cmUpO1xuXHRhbmlzb3Ryb3BpY0JsdXJPcHRpb24gPSBjb21wdXRlZCgoKSA9PiB0aGlzLmFuaXNvdHJvcGljQmx1cigpIHx8IHRoaXMuYW5pc290cm9weSgpKTtcblxuXHRwcml2YXRlIGRpc2NhcmRNYXRlcmlhbCA9IG5ldyBNZXNoRGlzY2FyZE1hdGVyaWFsKCk7XG5cblx0bWF0ZXJpYWwgPSBjb21wdXRlZCgoKSA9PiB7XG5cdFx0Y29uc3QgcHJldmlvdXNNYXRlcmlhbCA9IHVudHJhY2tlZCh0aGlzLm1hdGVyaWFsUmVmKT8ubmF0aXZlRWxlbWVudDtcblxuXHRcdGlmIChwcmV2aW91c01hdGVyaWFsKSB7XG5cdFx0XHRwcmV2aW91c01hdGVyaWFsLmRpc3Bvc2UoKTtcblx0XHRcdGRlbGV0ZSAocHJldmlvdXNNYXRlcmlhbCBhcyBOZ3RBbnlSZWNvcmQpWydfX25ndF9fJ107XG5cdFx0XHRkZWxldGUgKHByZXZpb3VzTWF0ZXJpYWwgYXMgTmd0QW55UmVjb3JkKVsnX19uZ3RfcmVuZGVyZXJfXyddO1xuXHRcdH1cblxuXHRcdGNvbnN0IFtzYW1wbGVzLCB0cmFuc21pc3Npb25TYW1wbGVyXSA9IFt0aGlzLnNhbXBsZXMoKSwgdGhpcy50cmFuc21pc3Npb25TYW1wbGVyKCldO1xuXHRcdHJldHVybiBuZXcgTWVzaFRyYW5zbWlzc2lvbk1hdGVyaWFsKHsgc2FtcGxlcywgdHJhbnNtaXNzaW9uU2FtcGxlciB9KTtcblx0fSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0aW5qZWN0KERlc3Ryb3lSZWYpLm9uRGVzdHJveSgoKSA9PiB7XG5cdFx0XHRjb25zdCBtYXRlcmlhbCA9IHRoaXMubWF0ZXJpYWxSZWYoKT8ubmF0aXZlRWxlbWVudDtcblx0XHRcdGlmIChtYXRlcmlhbCkge1xuXHRcdFx0XHRtYXRlcmlhbC5kaXNwb3NlKCk7XG5cdFx0XHRcdGRlbGV0ZSAobWF0ZXJpYWwgYXMgTmd0QW55UmVjb3JkKVsnX19uZ3RfXyddO1xuXHRcdFx0XHRkZWxldGUgKG1hdGVyaWFsIGFzIE5ndEFueVJlY29yZClbJ19fbmd0X3JlbmRlcmVyX18nXTtcblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdGxldCBvbGRCZzogVGV4dHVyZSB8IENvbG9yIHwgbnVsbDtcblx0XHRsZXQgb2xkRW52TWFwSW50ZW5zaXR5OiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cdFx0bGV0IG9sZFRvbmU6IFRvbmVNYXBwaW5nIHwgdW5kZWZpbmVkO1xuXHRcdGxldCBwYXJlbnQ6IE1lc2ggfCB1bmRlZmluZWQ7XG5cdFx0aW5qZWN0QmVmb3JlUmVuZGVyKCh7IGNsb2NrLCBnbCwgc2NlbmUsIGNhbWVyYSB9KSA9PiB7XG5cdFx0XHRjb25zdCBtYXRlcmlhbCA9IHRoaXMubWF0ZXJpYWxSZWYoKT8ubmF0aXZlRWxlbWVudDtcblx0XHRcdGlmICghbWF0ZXJpYWwpIHJldHVybjtcblxuXHRcdFx0Y29uc3QgW1xuXHRcdFx0XHRmYm9NYWluLFxuXHRcdFx0XHRmYm9CYWNrLFxuXHRcdFx0XHR0cmFuc21pc3Npb25TYW1wbGVyLFxuXHRcdFx0XHRiYWNrZ3JvdW5kLFxuXHRcdFx0XHRiYWNrc2lkZSxcblx0XHRcdFx0YmFja3NpZGVUaGlja25lc3MsXG5cdFx0XHRcdGJhY2tzaWRlRW52TWFwSW50ZW5zaXR5LFxuXHRcdFx0XHR0aGlja25lc3MsXG5cdFx0XHRcdHNpZGUsXG5cdFx0XHRdID0gW1xuXHRcdFx0XHR0aGlzLmZib01haW4oKSxcblx0XHRcdFx0dGhpcy5mYm9CYWNrKCksXG5cdFx0XHRcdHRoaXMudHJhbnNtaXNzaW9uU2FtcGxlcigpLFxuXHRcdFx0XHR0aGlzLmJhY2tncm91bmQoKSxcblx0XHRcdFx0dGhpcy5iYWNrc2lkZSgpLFxuXHRcdFx0XHR0aGlzLmJhY2tzaWRlVGhpY2tuZXNzKCksXG5cdFx0XHRcdHRoaXMuYmFja3NpZGVFbnZNYXBJbnRlbnNpdHkoKSxcblx0XHRcdFx0dGhpcy50aGlja25lc3MoKSxcblx0XHRcdFx0dGhpcy5zaWRlKCksXG5cdFx0XHRdO1xuXG5cdFx0XHRtYXRlcmlhbC50aW1lID0gY2xvY2suZ2V0RWxhcHNlZFRpbWUoKTtcblx0XHRcdC8vIFJlbmRlciBvbmx5IGlmIHRoZSBidWZmZXIgbWF0Y2hlcyB0aGUgYnVpbHQtaW4gYW5kIG5vIHRyYW5zbWlzc2lvbiBzYW1wbGVyIGlzIHNldFxuXHRcdFx0Ly8gQHRzLWV4cGVjdC1lcnJvciAtIHdlIGtub3cgbWF0ZXJpYWwuYnVmZmVyIGlzIG5vdCBqdXN0IHVuZGVmaW5lZCB8IG51bGxcblx0XHRcdGlmIChtYXRlcmlhbC5idWZmZXIgPT09IGZib01haW4udGV4dHVyZSAmJiAhdHJhbnNtaXNzaW9uU2FtcGxlcikge1xuXHRcdFx0XHRwYXJlbnQgPSBnZXRMb2NhbFN0YXRlKG1hdGVyaWFsKT8ucGFyZW50KCkgYXMgTWVzaDtcblxuXHRcdFx0XHRpZiAocGFyZW50KSB7XG5cdFx0XHRcdFx0Ly8gU2F2ZSBkZWZhdWx0c1xuXHRcdFx0XHRcdG9sZFRvbmUgPSBnbC50b25lTWFwcGluZztcblx0XHRcdFx0XHRvbGRCZyA9IHNjZW5lLmJhY2tncm91bmQ7XG5cdFx0XHRcdFx0b2xkRW52TWFwSW50ZW5zaXR5ID0gbWF0ZXJpYWwuZW52TWFwSW50ZW5zaXR5O1xuXG5cdFx0XHRcdFx0Ly8gU3dpdGNoIG9mZiB0b25lbWFwcGluZyBsZXN0IGl0IGRvdWJsZSB0b25lIG1hcHNcblx0XHRcdFx0XHQvLyBTYXZlIHRoZSBjdXJyZW50IGJhY2tncm91bmQgYW5kIHNldCB0aGUgSERSIGFzIHRoZSBuZXcgQkdcblx0XHRcdFx0XHQvLyBVc2UgZGlzY2FyZG1hdGVyaWFsLCB0aGUgcGFyZW50IHdpbGwgYmUgaW52aXNpYmxlLCBidXQgaXQncyBzaGFkb3dzIHdpbGwgc3RpbGwgYmUgY2FzdFxuXHRcdFx0XHRcdGdsLnRvbmVNYXBwaW5nID0gTm9Ub25lTWFwcGluZztcblx0XHRcdFx0XHRpZiAoYmFja2dyb3VuZCkgc2NlbmUuYmFja2dyb3VuZCA9IGJhY2tncm91bmQ7XG5cdFx0XHRcdFx0cGFyZW50Lm1hdGVyaWFsID0gdGhpcy5kaXNjYXJkTWF0ZXJpYWw7XG5cblx0XHRcdFx0XHRpZiAoYmFja3NpZGUpIHtcblx0XHRcdFx0XHRcdC8vIFJlbmRlciBpbnRvIHRoZSBiYWNrc2lkZSBidWZmZXJcblx0XHRcdFx0XHRcdGdsLnNldFJlbmRlclRhcmdldChmYm9CYWNrKTtcblx0XHRcdFx0XHRcdGdsLnJlbmRlcihzY2VuZSwgY2FtZXJhKTtcblx0XHRcdFx0XHRcdC8vIEFuZCBub3cgcHJlcGFyZSB0aGUgbWF0ZXJpYWwgZm9yIHRoZSBtYWluIHJlbmRlciB1c2luZyB0aGUgYmFja3NpZGUgYnVmZmVyXG5cdFx0XHRcdFx0XHRwYXJlbnQubWF0ZXJpYWwgPSBtYXRlcmlhbDtcblx0XHRcdFx0XHRcdE9iamVjdC5hc3NpZ24ocGFyZW50Lm1hdGVyaWFsLCB7XG5cdFx0XHRcdFx0XHRcdGJ1ZmZlcjogZmJvQmFjay50ZXh0dXJlLFxuXHRcdFx0XHRcdFx0XHR0aGlja25lc3M6IGJhY2tzaWRlVGhpY2tuZXNzLFxuXHRcdFx0XHRcdFx0XHRzaWRlOiBCYWNrU2lkZSxcblx0XHRcdFx0XHRcdFx0ZW52TWFwSW50ZW5zaXR5OiBiYWNrc2lkZUVudk1hcEludGVuc2l0eSxcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIFJlbmRlciBpbnRvIHRoZSBtYWluIGJ1ZmZlclxuXHRcdFx0XHRcdGdsLnNldFJlbmRlclRhcmdldChmYm9NYWluKTtcblx0XHRcdFx0XHRnbC5yZW5kZXIoc2NlbmUsIGNhbWVyYSk7XG5cblx0XHRcdFx0XHRwYXJlbnQubWF0ZXJpYWwgPSBtYXRlcmlhbDtcblx0XHRcdFx0XHRPYmplY3QuYXNzaWduKHBhcmVudC5tYXRlcmlhbCwge1xuXHRcdFx0XHRcdFx0YnVmZmVyOiBmYm9NYWluLnRleHR1cmUsXG5cdFx0XHRcdFx0XHR0aGlja25lc3MsXG5cdFx0XHRcdFx0XHRzaWRlLFxuXHRcdFx0XHRcdFx0ZW52TWFwSW50ZW5zaXR5OiBvbGRFbnZNYXBJbnRlbnNpdHksXG5cdFx0XHRcdFx0fSk7XG5cblx0XHRcdFx0XHQvLyBTZXQgb2xkIHN0YXRlIGJhY2tcblx0XHRcdFx0XHRzY2VuZS5iYWNrZ3JvdW5kID0gb2xkQmc7XG5cdFx0XHRcdFx0Z2wuc2V0UmVuZGVyVGFyZ2V0KG51bGwpO1xuXHRcdFx0XHRcdGdsLnRvbmVNYXBwaW5nID0gb2xkVG9uZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG59XG4iXX0=
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, CUSTOM_ELEMENTS_SCHEMA, DestroyRef, inject, input } from '@angular/core';
|
|
2
|
-
import { injectBeforeRender, NgtArgs, omit } from 'angular-three';
|
|
3
|
-
import { MeshWobbleMaterial } from 'angular-three-soba/vanilla-exports';
|
|
4
|
-
import { mergeInputs } from 'ngxtension/inject-inputs';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
const defaultOptions = {
|
|
7
|
-
speed: 1,
|
|
8
|
-
};
|
|
9
|
-
export class NgtsMeshWobbleMaterial {
|
|
10
|
-
constructor() {
|
|
11
|
-
this.attach = input('material');
|
|
12
|
-
this.options = input(defaultOptions, { transform: mergeInputs(defaultOptions) });
|
|
13
|
-
this.parameters = omit(this.options, ['speed']);
|
|
14
|
-
this.material = new MeshWobbleMaterial();
|
|
15
|
-
inject(DestroyRef).onDestroy(() => this.material.dispose());
|
|
16
|
-
injectBeforeRender(({ clock }) => {
|
|
17
|
-
const material = this.material;
|
|
18
|
-
material.time = clock.elapsedTime * this.options().speed;
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsMeshWobbleMaterial, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
22
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.11", type: NgtsMeshWobbleMaterial, isStandalone: true, selector: "ngts-mesh-wobble-material", inputs: { attach: { classPropertyName: "attach", publicName: "attach", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
23
|
-
<ngt-primitive *args="[material]" [parameters]="parameters()" [attach]="attach()">
|
|
24
|
-
<ng-content />
|
|
25
|
-
</ngt-primitive>
|
|
26
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
27
|
-
}
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsMeshWobbleMaterial, decorators: [{
|
|
29
|
-
type: Component,
|
|
30
|
-
args: [{
|
|
31
|
-
selector: 'ngts-mesh-wobble-material',
|
|
32
|
-
standalone: true,
|
|
33
|
-
template: `
|
|
34
|
-
<ngt-primitive *args="[material]" [parameters]="parameters()" [attach]="attach()">
|
|
35
|
-
<ng-content />
|
|
36
|
-
</ngt-primitive>
|
|
37
|
-
`,
|
|
38
|
-
imports: [NgtArgs],
|
|
39
|
-
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
40
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
41
|
-
}]
|
|
42
|
-
}], ctorParameters: () => [] });
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzaC13b2JibGUtbWF0ZXJpYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvbWF0ZXJpYWxzL3NyYy9saWIvbWVzaC13b2JibGUtbWF0ZXJpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0SCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxFQUEwQyxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLGtCQUFrQixFQUFnQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFNdkQsTUFBTSxjQUFjLEdBQWtDO0lBQ3JELEtBQUssRUFBRSxDQUFDO0NBQ1IsQ0FBQztBQWNGLE1BQU0sT0FBTyxzQkFBc0I7SUFPbEM7UUFOQSxXQUFNLEdBQUcsS0FBSyxDQUFnQixVQUFVLENBQUMsQ0FBQztRQUMxQyxZQUFPLEdBQUcsS0FBSyxDQUFDLGNBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzVFLGVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFFM0MsYUFBUSxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztRQUduQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUU1RCxrQkFBa0IsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNoQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQy9CLFFBQVEsQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQzFELENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzsrR0FkVyxzQkFBc0I7bUdBQXRCLHNCQUFzQiwwVkFUeEI7Ozs7RUFJVCw0REFDUyxPQUFPOzs0RkFJTCxzQkFBc0I7a0JBWmxDLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7OztFQUlUO29CQUNELE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztvQkFDbEIsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUMvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIERlc3Ryb3lSZWYsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGluamVjdEJlZm9yZVJlbmRlciwgTmd0QXJncywgTmd0QXR0YWNoYWJsZSwgTmd0TWVzaFN0YW5kYXJkTWF0ZXJpYWwsIG9taXQgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IE1lc2hXb2JibGVNYXRlcmlhbCwgTWVzaFdvYmJsZU1hdGVyaWFsUGFyYW1ldGVycyB9IGZyb20gJ2FuZ3VsYXItdGhyZWUtc29iYS92YW5pbGxhLWV4cG9ydHMnO1xuaW1wb3J0IHsgbWVyZ2VJbnB1dHMgfSBmcm9tICduZ3h0ZW5zaW9uL2luamVjdC1pbnB1dHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5ndHNNZXNoV29iYmxlTWF0ZXJpYWxPcHRpb25zIGV4dGVuZHMgTWVzaFdvYmJsZU1hdGVyaWFsUGFyYW1ldGVycywgUGFydGlhbDxOZ3RNZXNoU3RhbmRhcmRNYXRlcmlhbD4ge1xuXHRzcGVlZDogbnVtYmVyO1xufVxuXG5jb25zdCBkZWZhdWx0T3B0aW9uczogTmd0c01lc2hXb2JibGVNYXRlcmlhbE9wdGlvbnMgPSB7XG5cdHNwZWVkOiAxLFxufTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cy1tZXNoLXdvYmJsZS1tYXRlcmlhbCcsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1wcmltaXRpdmUgKmFyZ3M9XCJbbWF0ZXJpYWxdXCIgW3BhcmFtZXRlcnNdPVwicGFyYW1ldGVycygpXCIgW2F0dGFjaF09XCJhdHRhY2goKVwiPlxuXHRcdFx0PG5nLWNvbnRlbnQgLz5cblx0XHQ8L25ndC1wcmltaXRpdmU+XG5cdGAsXG5cdGltcG9ydHM6IFtOZ3RBcmdzXSxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c01lc2hXb2JibGVNYXRlcmlhbCB7XG5cdGF0dGFjaCA9IGlucHV0PE5ndEF0dGFjaGFibGU+KCdtYXRlcmlhbCcpO1xuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdE9wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0T3B0aW9ucykgfSk7XG5cdHBhcmFtZXRlcnMgPSBvbWl0KHRoaXMub3B0aW9ucywgWydzcGVlZCddKTtcblxuXHRtYXRlcmlhbCA9IG5ldyBNZXNoV29iYmxlTWF0ZXJpYWwoKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRpbmplY3QoRGVzdHJveVJlZikub25EZXN0cm95KCgpID0+IHRoaXMubWF0ZXJpYWwuZGlzcG9zZSgpKTtcblxuXHRcdGluamVjdEJlZm9yZVJlbmRlcigoeyBjbG9jayB9KSA9PiB7XG5cdFx0XHRjb25zdCBtYXRlcmlhbCA9IHRoaXMubWF0ZXJpYWw7XG5cdFx0XHRtYXRlcmlhbC50aW1lID0gY2xvY2suZWxhcHNlZFRpbWUgKiB0aGlzLm9wdGlvbnMoKS5zcGVlZDtcblx0XHR9KTtcblx0fVxufVxuIl19
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, CUSTOM_ELEMENTS_SCHEMA, DestroyRef, inject, input } from '@angular/core';
|
|
2
|
-
import { NgtArgs } from 'angular-three';
|
|
3
|
-
import { PointMaterial } from 'angular-three-soba/shaders';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class NgtsPointMaterial {
|
|
6
|
-
constructor() {
|
|
7
|
-
this.attach = input('material');
|
|
8
|
-
this.options = input({});
|
|
9
|
-
this.material = new PointMaterial(this.options());
|
|
10
|
-
inject(DestroyRef).onDestroy(() => this.material.dispose());
|
|
11
|
-
}
|
|
12
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsPointMaterial, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.11", type: NgtsPointMaterial, isStandalone: true, selector: "ngts-point-material", inputs: { attach: { classPropertyName: "attach", publicName: "attach", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
|
|
14
|
-
<ngt-primitive *args="[material]" [attach]="attach()" [parameters]="options()">
|
|
15
|
-
<ng-content />
|
|
16
|
-
</ngt-primitive>
|
|
17
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
18
|
-
}
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsPointMaterial, decorators: [{
|
|
20
|
-
type: Component,
|
|
21
|
-
args: [{
|
|
22
|
-
selector: 'ngts-point-material',
|
|
23
|
-
standalone: true,
|
|
24
|
-
template: `
|
|
25
|
-
<ngt-primitive *args="[material]" [attach]="attach()" [parameters]="options()">
|
|
26
|
-
<ng-content />
|
|
27
|
-
</ngt-primitive>
|
|
28
|
-
`,
|
|
29
|
-
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
30
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
31
|
-
imports: [NgtArgs],
|
|
32
|
-
}]
|
|
33
|
-
}], ctorParameters: () => [] });
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnQtbWF0ZXJpYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvbWF0ZXJpYWxzL3NyYy9saWIvcG9pbnQtbWF0ZXJpYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0SCxPQUFPLEVBQUUsT0FBTyxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBZTNELE1BQU0sT0FBTyxpQkFBaUI7SUFNN0I7UUFMQSxXQUFNLEdBQUcsS0FBSyxDQUFnQixVQUFVLENBQUMsQ0FBQztRQUMxQyxZQUFPLEdBQUcsS0FBSyxDQUFDLEVBQThCLENBQUMsQ0FBQztRQUVoRCxhQUFRLEdBQUcsSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFHNUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDN0QsQ0FBQzsrR0FSVyxpQkFBaUI7bUdBQWpCLGlCQUFpQixvVkFUbkI7Ozs7RUFJVCw0REFHUyxPQUFPOzs0RkFFTCxpQkFBaUI7a0JBWjdCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7OztFQUlUO29CQUNELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO2lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIERlc3Ryb3lSZWYsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5ndEFyZ3MsIE5ndEF0dGFjaGFibGUgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IFBvaW50TWF0ZXJpYWwgfSBmcm9tICdhbmd1bGFyLXRocmVlLXNvYmEvc2hhZGVycyc7XG5pbXBvcnQgeyBQb2ludHNNYXRlcmlhbFBhcmFtZXRlcnMgfSBmcm9tICd0aHJlZSc7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHMtcG9pbnQtbWF0ZXJpYWwnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtcHJpbWl0aXZlICphcmdzPVwiW21hdGVyaWFsXVwiIFthdHRhY2hdPVwiYXR0YWNoKClcIiBbcGFyYW1ldGVyc109XCJvcHRpb25zKClcIj5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3QtcHJpbWl0aXZlPlxuXHRgLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNQb2ludE1hdGVyaWFsIHtcblx0YXR0YWNoID0gaW5wdXQ8Tmd0QXR0YWNoYWJsZT4oJ21hdGVyaWFsJyk7XG5cdG9wdGlvbnMgPSBpbnB1dCh7fSBhcyBQb2ludHNNYXRlcmlhbFBhcmFtZXRlcnMpO1xuXG5cdG1hdGVyaWFsID0gbmV3IFBvaW50TWF0ZXJpYWwodGhpcy5vcHRpb25zKCkpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGluamVjdChEZXN0cm95UmVmKS5vbkRlc3Ryb3koKCkgPT4gdGhpcy5tYXRlcmlhbC5kaXNwb3NlKCkpO1xuXHR9XG59XG4iXX0=
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './index';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10aHJlZS1zb2JhLW1pc2MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvbWlzYy9zcmMvYW5ndWxhci10aHJlZS1zb2JhLW1pc2MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
|
package/esm2022/misc/index.mjs
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export * from './lib/animations';
|
|
2
|
-
export * from './lib/bake-shadows';
|
|
3
|
-
export * from './lib/computed-attribute';
|
|
4
|
-
export * from './lib/constants';
|
|
5
|
-
export * from './lib/decal';
|
|
6
|
-
export * from './lib/deprecated';
|
|
7
|
-
export * from './lib/depth-buffer';
|
|
8
|
-
export * from './lib/fbo';
|
|
9
|
-
export * from './lib/html/html';
|
|
10
|
-
export * from './lib/html/html-content';
|
|
11
|
-
export * from './lib/intersect';
|
|
12
|
-
export * from './lib/preload';
|
|
13
|
-
export * from './lib/sampler';
|
|
14
|
-
export * from './lib/scale-factor';
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvbWlzYy9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2FuaW1hdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYmFrZS1zaGFkb3dzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXB1dGVkLWF0dHJpYnV0ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb25zdGFudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGVjYWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGVwcmVjYXRlZCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kZXB0aC1idWZmZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmJvJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2h0bWwvaHRtbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9odG1sL2h0bWwtY29udGVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcnNlY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHJlbG9hZCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zYW1wbGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NjYWxlLWZhY3Rvcic7XG4iXX0=
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import { computed, effect, isSignal, signal, untracked } from '@angular/core';
|
|
2
|
-
import { injectBeforeRender, resolveRef } from 'angular-three';
|
|
3
|
-
import { assertInjector } from 'ngxtension/assert-injector';
|
|
4
|
-
import { AnimationMixer } from 'three';
|
|
5
|
-
/**
|
|
6
|
-
* Use afterNextRender
|
|
7
|
-
*/
|
|
8
|
-
export function injectAnimations(animations, object, { injector } = {}) {
|
|
9
|
-
return assertInjector(injectAnimations, injector, () => {
|
|
10
|
-
const mixer = new AnimationMixer(null);
|
|
11
|
-
injectBeforeRender(({ delta }) => {
|
|
12
|
-
if (!mixer.getRoot())
|
|
13
|
-
return;
|
|
14
|
-
mixer.update(delta);
|
|
15
|
-
});
|
|
16
|
-
let cached = {};
|
|
17
|
-
const actions = {};
|
|
18
|
-
const clips = [];
|
|
19
|
-
const names = [];
|
|
20
|
-
const actualObject = computed(() => {
|
|
21
|
-
if (isSignal(object) || typeof object === 'function') {
|
|
22
|
-
return resolveRef(object());
|
|
23
|
-
}
|
|
24
|
-
return resolveRef(object);
|
|
25
|
-
});
|
|
26
|
-
const ready = signal(false);
|
|
27
|
-
effect((onCleanup) => {
|
|
28
|
-
const obj = actualObject();
|
|
29
|
-
if (!obj)
|
|
30
|
-
return;
|
|
31
|
-
Object.assign(mixer, { _root: obj });
|
|
32
|
-
const maybeAnimationClips = animations();
|
|
33
|
-
if (!maybeAnimationClips)
|
|
34
|
-
return;
|
|
35
|
-
const animationClips = Array.isArray(maybeAnimationClips) ? maybeAnimationClips : maybeAnimationClips.animations;
|
|
36
|
-
for (let i = 0; i < animationClips.length; i++) {
|
|
37
|
-
const clip = animationClips[i];
|
|
38
|
-
names.push(clip.name);
|
|
39
|
-
clips.push(clip);
|
|
40
|
-
if (!actions[clip.name]) {
|
|
41
|
-
Object.defineProperty(actions, clip.name, {
|
|
42
|
-
enumerable: true,
|
|
43
|
-
get: () => {
|
|
44
|
-
if (!cached[clip.name]) {
|
|
45
|
-
cached[clip.name] = mixer.clipAction(clip, obj);
|
|
46
|
-
}
|
|
47
|
-
return cached[clip.name];
|
|
48
|
-
},
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
untracked(() => {
|
|
53
|
-
if (!ready()) {
|
|
54
|
-
ready.set(true);
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
onCleanup(() => {
|
|
58
|
-
// clear cached
|
|
59
|
-
cached = {};
|
|
60
|
-
// stop all actions
|
|
61
|
-
mixer.stopAllAction();
|
|
62
|
-
// uncache actions
|
|
63
|
-
Object.values(actions).forEach((action) => {
|
|
64
|
-
mixer.uncacheAction(action, obj);
|
|
65
|
-
});
|
|
66
|
-
});
|
|
67
|
-
});
|
|
68
|
-
return { clips, mixer, actions, names, ready };
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc29iYS9taXNjL3NyYy9saWIvYW5pbWF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBd0IsUUFBUSxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFrQyxjQUFjLEVBQVksTUFBTSxPQUFPLENBQUM7QUFzQmpGOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUMvQixVQUE4RCxFQUM5RCxNQUFvRyxFQUNwRyxFQUFFLFFBQVEsS0FBOEIsRUFBRTtJQUUxQyxPQUFPLGNBQWMsQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFO1FBQ3RELE1BQU0sS0FBSyxHQUFHLElBQUksY0FBYyxDQUFDLElBQUssQ0FBQyxDQUFDO1FBQ3hDLGtCQUFrQixDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2hDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFO2dCQUFFLE9BQU87WUFDN0IsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksTUFBTSxHQUFHLEVBQXFDLENBQUM7UUFDbkQsTUFBTSxPQUFPLEdBQUcsRUFBNkMsQ0FBQztRQUM5RCxNQUFNLEtBQUssR0FBRyxFQUEyQyxDQUFDO1FBQzFELE1BQU0sS0FBSyxHQUFHLEVBQTJDLENBQUM7UUFFMUQsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNsQyxJQUFJLFFBQVEsQ0FBQyxN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IEluamVjdG9yLCBpc1NpZ25hbCwgU2lnbmFsLCBzaWduYWwsIHVudHJhY2tlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0QmVmb3JlUmVuZGVyLCByZXNvbHZlUmVmIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBhc3NlcnRJbmplY3RvciB9IGZyb20gJ25neHRlbnNpb24vYXNzZXJ0LWluamVjdG9yJztcbmltcG9ydCB7IEFuaW1hdGlvbkFjdGlvbiwgQW5pbWF0aW9uQ2xpcCwgQW5pbWF0aW9uTWl4ZXIsIE9iamVjdDNEIH0gZnJvbSAndGhyZWUnO1xuXG4vKipcbiAqIG5hbWU6IGFueSB0byBhbGxvdyBjb25zdW1lcnMgdG8gcGFzcyBpbiB0eXBlLXNhZmUgYW5pbWF0aW9uIGNsaXBzXG4gKi9cbnR5cGUgTmd0c0FuaW1hdGlvbkNsaXBXaXRob3V0TmFtZSA9IE9taXQ8QW5pbWF0aW9uQ2xpcCwgJ25hbWUnPiAmIHsgbmFtZTogYW55IH07XG5leHBvcnQgdHlwZSBOZ3RzQW5pbWF0aW9uQ2xpcCA9IE9taXQ8Tmd0c0FuaW1hdGlvbkNsaXBXaXRob3V0TmFtZSwgJ2Nsb25lJz4gJiB7IGNsb25lOiAoKSA9PiBOZ3RzQW5pbWF0aW9uQ2xpcCB9O1xuZXhwb3J0IHR5cGUgTmd0c0FuaW1hdGlvbkNsaXBzPFRBbmltYXRpb25OYW1lcyBleHRlbmRzIHN0cmluZz4gPSB7XG5cdFtOYW1lIGluIFRBbmltYXRpb25OYW1lc106IE9taXQ8Tmd0c0FuaW1hdGlvbkNsaXAsICduYW1lJz4gJiB7IG5hbWU6IE5hbWUgfTtcbn1bVEFuaW1hdGlvbk5hbWVzXTtcbmV4cG9ydCB0eXBlIE5ndHNBbmltYXRpb25BcGk8VCBleHRlbmRzIE5ndHNBbmltYXRpb25DbGlwPiA9IHtcblx0cmVhZHk6IFNpZ25hbDxib29sZWFuPjtcblx0Y2xpcHM6IFRbXTtcblx0bWl4ZXI6IEFuaW1hdGlvbk1peGVyO1xuXHRuYW1lczogVFsnbmFtZSddW107XG5cdGFjdGlvbnM6IHsgW2tleSBpbiBUWyduYW1lJ11dOiBBbmltYXRpb25BY3Rpb24gfCBudWxsIH07XG59O1xuXG5leHBvcnQgdHlwZSBOZ3RzQW5pbWF0aW9uPFRBbmltYXRpb24gZXh0ZW5kcyBOZ3RzQW5pbWF0aW9uQ2xpcCA9IE5ndHNBbmltYXRpb25DbGlwPiA9XG5cdHwgVEFuaW1hdGlvbltdXG5cdHwgeyBhbmltYXRpb25zOiBUQW5pbWF0aW9uW10gfTtcblxuLyoqXG4gKiBVc2UgYWZ0ZXJOZXh0UmVuZGVyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RBbmltYXRpb25zPFRBbmltYXRpb24gZXh0ZW5kcyBOZ3RzQW5pbWF0aW9uQ2xpcD4oXG5cdGFuaW1hdGlvbnM6ICgpID0+IE5ndHNBbmltYXRpb248VEFuaW1hdGlvbj4gfCB1bmRlZmluZWQgfCBudWxsLFxuXHRvYmplY3Q6IEVsZW1lbnRSZWY8T2JqZWN0M0Q+IHwgT2JqZWN0M0QgfCAoKCkgPT4gRWxlbWVudFJlZjxPYmplY3QzRD4gfCBPYmplY3QzRCB8IHVuZGVmaW5lZCB8IG51bGwpLFxuXHR7IGluamVjdG9yIH06IHsgaW5qZWN0b3I/OiBJbmplY3RvciB9ID0ge30sXG4pIHtcblx0cmV0dXJuIGFzc2VydEluamVjdG9yKGluamVjdEFuaW1hdGlvbnMsIGluamVjdG9yLCAoKSA9PiB7XG5cdFx0Y29uc3QgbWl4ZXIgPSBuZXcgQW5pbWF0aW9uTWl4ZXIobnVsbCEpO1xuXHRcdGluamVjdEJlZm9yZVJlbmRlcigoeyBkZWx0YSB9KSA9PiB7XG5cdFx0XHRpZiAoIW1peGVyLmdldFJvb3QoKSkgcmV0dXJuO1xuXHRcdFx0bWl4ZXIudXBkYXRlKGRlbHRhKTtcblx0XHR9KTtcblxuXHRcdGxldCBjYWNoZWQgPSB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBBbmltYXRpb25BY3Rpb24+O1xuXHRcdGNvbnN0IGFjdGlvbnMgPSB7fSBhcyBOZ3RzQW5pbWF0aW9uQXBpPFRBbmltYXRpb24+WydhY3Rpb25zJ107XG5cdFx0Y29uc3QgY2xpcHMgPSBbXSBhcyBOZ3RzQW5pbWF0aW9uQXBpPFRBbmltYXRpb24+WydjbGlwcyddO1xuXHRcdGNvbnN0IG5hbWVzID0gW10gYXMgTmd0c0FuaW1hdGlvbkFwaTxUQW5pbWF0aW9uPlsnbmFtZXMnXTtcblxuXHRcdGNvbnN0IGFjdHVhbE9iamVjdCA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRcdGlmIChpc1NpZ25hbChvYmplY3QpIHx8IHR5cGVvZiBvYmplY3QgPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdFx0cmV0dXJuIHJlc29sdmVSZWYob2JqZWN0KCkpO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gcmVzb2x2ZVJlZihvYmplY3QpO1xuXHRcdH0pO1xuXG5cdFx0Y29uc3QgcmVhZHkgPSBzaWduYWwoZmFsc2UpO1xuXG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IG9iaiA9IGFjdHVhbE9iamVjdCgpIGFzIE9iamVjdDNEIHwgdW5kZWZpbmVkO1xuXHRcdFx0aWYgKCFvYmopIHJldHVybjtcblx0XHRcdE9iamVjdC5hc3NpZ24obWl4ZXIsIHsgX3Jvb3Q6IG9iaiB9KTtcblxuXHRcdFx0Y29uc3QgbWF5YmVBbmltYXRpb25DbGlwcyA9IGFuaW1hdGlvbnMoKTtcblx0XHRcdGlmICghbWF5YmVBbmltYXRpb25DbGlwcykgcmV0dXJuO1xuXG5cdFx0XHRjb25zdCBhbmltYXRpb25DbGlwcyA9IEFycmF5LmlzQXJyYXkobWF5YmVBbmltYXRpb25DbGlwcykgPyBtYXliZUFuaW1hdGlvbkNsaXBzIDogbWF5YmVBbmltYXRpb25DbGlwcy5hbmltYXRpb25zO1xuXG5cdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGFuaW1hdGlvbkNsaXBzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdGNvbnN0IGNsaXAgPSBhbmltYXRpb25DbGlwc1tpXTtcblxuXHRcdFx0XHRuYW1lcy5wdXNoKGNsaXAubmFtZSk7XG5cdFx0XHRcdGNsaXBzLnB1c2goY2xpcCk7XG5cblx0XHRcdFx0aWYgKCFhY3Rpb25zW2NsaXAubmFtZSBhcyBUQW5pbWF0aW9uWyduYW1lJ11dKSB7XG5cdFx0XHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGFjdGlvbnMsIGNsaXAubmFtZSwge1xuXHRcdFx0XHRcdFx0ZW51bWVyYWJsZTogdHJ1ZSxcblx0XHRcdFx0XHRcdGdldDogKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRpZiAoIWNhY2hlZFtjbGlwLm5hbWVdKSB7XG5cdFx0XHRcdFx0XHRcdFx0Y2FjaGVkW2NsaXAubmFtZV0gPSBtaXhlci5jbGlwQWN0aW9uKGNsaXAsIG9iaik7XG5cdFx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gY2FjaGVkW2NsaXAubmFtZV07XG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdHVudHJhY2tlZCgoKSA9PiB7XG5cdFx0XHRcdGlmICghcmVhZHkoKSkge1xuXHRcdFx0XHRcdHJlYWR5LnNldCh0cnVlKTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cblx0XHRcdG9uQ2xlYW51cCgoKSA9PiB7XG5cdFx0XHRcdC8vIGNsZWFyIGNhY2hlZFxuXHRcdFx0XHRjYWNoZWQgPSB7fTtcblx0XHRcdFx0Ly8gc3RvcCBhbGwgYWN0aW9uc1xuXHRcdFx0XHRtaXhlci5zdG9wQWxsQWN0aW9uKCk7XG5cdFx0XHRcdC8vIHVuY2FjaGUgYWN0aW9uc1xuXHRcdFx0XHRPYmplY3QudmFsdWVzKGFjdGlvbnMpLmZvckVhY2goKGFjdGlvbikgPT4ge1xuXHRcdFx0XHRcdG1peGVyLnVuY2FjaGVBY3Rpb24oYWN0aW9uIGFzIEFuaW1hdGlvbkNsaXAsIG9iaik7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cblx0XHRyZXR1cm4geyBjbGlwcywgbWl4ZXIsIGFjdGlvbnMsIG5hbWVzLCByZWFkeSB9O1xuXHR9KTtcbn1cbiJdfQ==
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { Directive, effect } from '@angular/core';
|
|
2
|
-
import { injectStore } from 'angular-three';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class NgtsBakeShadows {
|
|
5
|
-
constructor() {
|
|
6
|
-
const store = injectStore();
|
|
7
|
-
const gl = store.select('gl');
|
|
8
|
-
effect((onCleanup) => {
|
|
9
|
-
const _gl = gl();
|
|
10
|
-
_gl.shadowMap.autoUpdate = false;
|
|
11
|
-
_gl.shadowMap.needsUpdate = true;
|
|
12
|
-
onCleanup(() => {
|
|
13
|
-
_gl.shadowMap.autoUpdate = _gl.shadowMap.needsUpdate = true;
|
|
14
|
-
});
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsBakeShadows, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
18
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: NgtsBakeShadows, isStandalone: true, selector: "ngts-bake-shadows", ngImport: i0 }); }
|
|
19
|
-
}
|
|
20
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsBakeShadows, decorators: [{
|
|
21
|
-
type: Directive,
|
|
22
|
-
args: [{ standalone: true, selector: 'ngts-bake-shadows' }]
|
|
23
|
-
}], ctorParameters: () => [] });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFrZS1zaGFkb3dzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL21pc2Mvc3JjL2xpYi9iYWtlLXNoYWRvd3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHNUMsTUFBTSxPQUFPLGVBQWU7SUFDM0I7UUFDQyxNQUFNLEtBQUssR0FBRyxXQUFXLEVBQUUsQ0FBQztRQUM1QixNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlCLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3BCLE1BQU0sR0FBRyxHQUFHLEVBQUUsRUFBRSxDQUFDO1lBQ2pCLEdBQUcsQ0FBQyxTQUFTLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztZQUNqQyxHQUFHLENBQUMsU0FBUyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7WUFDakMsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDZCxHQUFHLENBQUMsU0FBUyxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7WUFDN0QsQ0FBQyxDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7K0dBWlcsZUFBZTttR0FBZixlQUFlOzs0RkFBZixlQUFlO2tCQUQzQixTQUFTO21CQUFDLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsbUJBQW1CLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGVmZmVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0U3RvcmUgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcblxuQERpcmVjdGl2ZSh7IHN0YW5kYWxvbmU6IHRydWUsIHNlbGVjdG9yOiAnbmd0cy1iYWtlLXNoYWRvd3MnIH0pXG5leHBvcnQgY2xhc3MgTmd0c0Jha2VTaGFkb3dzIHtcblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0Y29uc3Qgc3RvcmUgPSBpbmplY3RTdG9yZSgpO1xuXHRcdGNvbnN0IGdsID0gc3RvcmUuc2VsZWN0KCdnbCcpO1xuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBfZ2wgPSBnbCgpO1xuXHRcdFx0X2dsLnNoYWRvd01hcC5hdXRvVXBkYXRlID0gZmFsc2U7XG5cdFx0XHRfZ2wuc2hhZG93TWFwLm5lZWRzVXBkYXRlID0gdHJ1ZTtcblx0XHRcdG9uQ2xlYW51cCgoKSA9PiB7XG5cdFx0XHRcdF9nbC5zaGFkb3dNYXAuYXV0b1VwZGF0ZSA9IF9nbC5zaGFkb3dNYXAubmVlZHNVcGRhdGUgPSB0cnVlO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { CUSTOM_ELEMENTS_SCHEMA, ChangeDetectionStrategy, Component, effect, input, viewChild, } from '@angular/core';
|
|
2
|
-
import { NgtArgs, getLocalState } from 'angular-three';
|
|
3
|
-
import { BufferAttribute } from 'three';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
/**
|
|
6
|
-
* Used exclusively as a child of a BufferGeometry.
|
|
7
|
-
* Computes the BufferAttribute by calling the `compute` function
|
|
8
|
-
* and attaches the attribute to the geometry.
|
|
9
|
-
*/
|
|
10
|
-
export class NgtsComputedAttribute {
|
|
11
|
-
constructor() {
|
|
12
|
-
this.compute = input.required();
|
|
13
|
-
this.name = input.required();
|
|
14
|
-
this.options = input({});
|
|
15
|
-
this.bufferAttribute = new BufferAttribute(new Float32Array(0), 1);
|
|
16
|
-
this.attributeRef = viewChild('attribute');
|
|
17
|
-
effect(() => {
|
|
18
|
-
const bufferAttribute = this.attributeRef()?.nativeElement;
|
|
19
|
-
if (!bufferAttribute)
|
|
20
|
-
return;
|
|
21
|
-
const localState = getLocalState(bufferAttribute);
|
|
22
|
-
if (!localState)
|
|
23
|
-
return;
|
|
24
|
-
const geometry = bufferAttribute.parent ?? localState.parent();
|
|
25
|
-
const attribute = this.compute()(geometry);
|
|
26
|
-
bufferAttribute.copy(attribute);
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsComputedAttribute, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
30
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.11", type: NgtsComputedAttribute, isStandalone: true, selector: "ngts-computed-attribute", inputs: { compute: { classPropertyName: "compute", publicName: "compute", isSignal: true, isRequired: true, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "attributeRef", first: true, predicate: ["attribute"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
31
|
-
<ngt-primitive #attribute *args="[bufferAttribute]" [attach]="['attributes', name()]" [parameters]="options()">
|
|
32
|
-
<ng-content />
|
|
33
|
-
</ngt-primitive>
|
|
34
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
35
|
-
}
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsComputedAttribute, decorators: [{
|
|
37
|
-
type: Component,
|
|
38
|
-
args: [{
|
|
39
|
-
selector: 'ngts-computed-attribute',
|
|
40
|
-
standalone: true,
|
|
41
|
-
template: `
|
|
42
|
-
<ngt-primitive #attribute *args="[bufferAttribute]" [attach]="['attributes', name()]" [parameters]="options()">
|
|
43
|
-
<ng-content />
|
|
44
|
-
</ngt-primitive>
|
|
45
|
-
`,
|
|
46
|
-
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
47
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
48
|
-
imports: [NgtArgs],
|
|
49
|
-
}]
|
|
50
|
-
}], ctorParameters: () => [] });
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcHV0ZWQtYXR0cmlidXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL21pc2Mvc3JjL2xpYi9jb21wdXRlZC1hdHRyaWJ1dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLHNCQUFzQixFQUN0Qix1QkFBdUIsRUFDdkIsU0FBUyxFQUVULE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQXNCLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZUFBZSxFQUFrQixNQUFNLE9BQU8sQ0FBQzs7QUFjeEQ7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyxxQkFBcUI7SUFRakM7UUFQQSxZQUFPLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBaUQsQ0FBQztRQUMxRSxTQUFJLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO1FBQ2hDLFlBQU8sR0FBRyxLQUFLLENBQUMsRUFBaUMsQ0FBQyxDQUFDO1FBRW5ELG9CQUFlLEdBQUcsSUFBSSxlQUFlLENBQUMsSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDOUQsaUJBQVksR0FBRyxTQUFTLENBQThCLFdBQVcsQ0FBQyxDQUFDO1FBR2xFLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsYUFBYSxDQUFDO1lBQzNELElBQUksQ0FBQyxlQUFlO2dCQUFFLE9BQU87WUFFN0IsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ2xELElBQUksQ0FBQyxVQUFVO2dCQUFFLE9BQU87WUFFeEIsTUFBTSxRQUFRLEdBQUssZUFBdUIsQ0FBQyxNQUF5QixJQUFJLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUU1RixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDM0MsZUFBZSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7K0dBckJXLHFCQUFxQjttR0FBckIscUJBQXFCLHlrQkFkdkI7Ozs7RUFJVCw0REFHUyxPQUFPOzs0RkFPTCxxQkFBcUI7a0JBakJqQyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7RUFJVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRDVVNUT01fRUxFTUVOVFNfU0NIRU1BLFxuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcblx0Q29tcG9uZW50LFxuXHRFbGVtZW50UmVmLFxuXHRlZmZlY3QsXG5cdGlucHV0LFxuXHR2aWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0QXJncywgTmd0QnVmZmVyQXR0cmlidXRlLCBnZXRMb2NhbFN0YXRlIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBCdWZmZXJBdHRyaWJ1dGUsIEJ1ZmZlckdlb21ldHJ5IH0gZnJvbSAndGhyZWUnO1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RzLWNvbXB1dGVkLWF0dHJpYnV0ZScsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1wcmltaXRpdmUgI2F0dHJpYnV0ZSAqYXJncz1cIltidWZmZXJBdHRyaWJ1dGVdXCIgW2F0dGFjaF09XCJbJ2F0dHJpYnV0ZXMnLCBuYW1lKCldXCIgW3BhcmFtZXRlcnNdPVwib3B0aW9ucygpXCI+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LXByaW1pdGl2ZT5cblx0YCxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcblx0aW1wb3J0czogW05ndEFyZ3NdLFxufSlcbi8qKlxuICogVXNlZCBleGNsdXNpdmVseSBhcyBhIGNoaWxkIG9mIGEgQnVmZmVyR2VvbWV0cnkuXG4gKiBDb21wdXRlcyB0aGUgQnVmZmVyQXR0cmlidXRlIGJ5IGNhbGxpbmcgdGhlIGBjb21wdXRlYCBmdW5jdGlvblxuICogYW5kIGF0dGFjaGVzIHRoZSBhdHRyaWJ1dGUgdG8gdGhlIGdlb21ldHJ5LlxuICovXG5leHBvcnQgY2xhc3MgTmd0c0NvbXB1dGVkQXR0cmlidXRlIHtcblx0Y29tcHV0ZSA9IGlucHV0LnJlcXVpcmVkPChnZW9tZXRyeTogQnVmZmVyR2VvbWV0cnkpID0+IEJ1ZmZlckF0dHJpYnV0ZT4oKTtcblx0bmFtZSA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcblx0b3B0aW9ucyA9IGlucHV0KHt9IGFzIFBhcnRpYWw8Tmd0QnVmZmVyQXR0cmlidXRlPik7XG5cblx0YnVmZmVyQXR0cmlidXRlID0gbmV3IEJ1ZmZlckF0dHJpYnV0ZShuZXcgRmxvYXQzMkFycmF5KDApLCAxKTtcblx0YXR0cmlidXRlUmVmID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8QnVmZmVyQXR0cmlidXRlPj4oJ2F0dHJpYnV0ZScpO1xuXG5cdGNvbnN0cnVjdG9yKCkge1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCBidWZmZXJBdHRyaWJ1dGUgPSB0aGlzLmF0dHJpYnV0ZVJlZigpPy5uYXRpdmVFbGVtZW50O1xuXHRcdFx0aWYgKCFidWZmZXJBdHRyaWJ1dGUpIHJldHVybjtcblxuXHRcdFx0Y29uc3QgbG9jYWxTdGF0ZSA9IGdldExvY2FsU3RhdGUoYnVmZmVyQXR0cmlidXRlKTtcblx0XHRcdGlmICghbG9jYWxTdGF0ZSkgcmV0dXJuO1xuXG5cdFx0XHRjb25zdCBnZW9tZXRyeSA9ICgoYnVmZmVyQXR0cmlidXRlIGFzIGFueSkucGFyZW50IGFzIEJ1ZmZlckdlb21ldHJ5KSA/PyBsb2NhbFN0YXRlLnBhcmVudCgpO1xuXG5cdFx0XHRjb25zdCBhdHRyaWJ1dGUgPSB0aGlzLmNvbXB1dGUoKShnZW9tZXRyeSk7XG5cdFx0XHRidWZmZXJBdHRyaWJ1dGUuY29weShhdHRyaWJ1dGUpO1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { REVISION } from 'three';
|
|
2
|
-
export function getVersion() {
|
|
3
|
-
return parseInt(REVISION.replace(/\D+/g, ''));
|
|
4
|
-
}
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL21pc2Mvc3JjL2xpYi9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUVqQyxNQUFNLFVBQVUsVUFBVTtJQUN6QixPQUFPLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQy9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSRVZJU0lPTiB9IGZyb20gJ3RocmVlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFZlcnNpb24oKSB7XG5cdHJldHVybiBwYXJzZUludChSRVZJU0lPTi5yZXBsYWNlKC9cXEQrL2csICcnKSk7XG59XG4iXX0=
|