angular-three-soba 2.14.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 +117 -117
- package/abstractions/lib/edges.d.ts +126 -126
- package/abstractions/lib/grid.d.ts +15 -15
- 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 +22 -22
- 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/controls/lib/camera-controls.d.ts +1 -1
- package/controls/lib/orbit-controls.d.ts +1 -1
- 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 -24
- 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/axis-arrow.d.ts +1 -1
- package/gizmos/lib/pivot-controls/axis-rotator.d.ts +1 -1
- package/gizmos/lib/pivot-controls/pivot-controls.d.ts +1 -1
- package/gizmos/lib/pivot-controls/plane-slider.d.ts +1 -1
- package/gizmos/lib/pivot-controls/scaling-sphere.d.ts +1 -1
- package/gizmos/lib/transform-controls.d.ts +2 -2
- package/materials/lib/custom-shader-material.d.ts +2 -2
- package/materials/lib/mesh-portal-material.d.ts +9 -9
- package/materials/lib/mesh-refraction-material.d.ts +2 -2
- package/materials/lib/mesh-transmission-material.d.ts +1 -1
- package/misc/lib/computed-attribute.d.ts +6 -6
- package/misc/lib/decal.d.ts +1 -1
- package/misc/lib/html/html.d.ts +2 -2
- package/misc/lib/sampler.d.ts +1 -1
- package/package.json +11 -37
- package/performances/lib/instances/instances.d.ts +5 -5
- package/performances/lib/points/points.d.ts +10 -10
- package/performances/lib/segments/segments.d.ts +4 -4
- package/shaders/lib/mesh-refraction-material.d.ts +2 -2
- 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/render-texture.d.ts +1 -1
- package/staging/lib/spot-light.d.ts +2 -2
- 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 -114
- 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,177 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, computed, CUSTOM_ELEMENTS_SCHEMA, effect, input, output, viewChild, } from '@angular/core';
|
|
2
|
-
import { extend, getLocalState, injectStore, NgtArgs, omit, pick, resolveRef, } from 'angular-three';
|
|
3
|
-
import { Group } from 'three';
|
|
4
|
-
import { TransformControls } from 'three-stdlib';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export class NgtsTransformControls {
|
|
7
|
-
constructor() {
|
|
8
|
-
this.object = input(null);
|
|
9
|
-
this.options = input({});
|
|
10
|
-
this.parameters = omit(this.options, [
|
|
11
|
-
'enabled',
|
|
12
|
-
'axis',
|
|
13
|
-
'mode',
|
|
14
|
-
'translationSnap',
|
|
15
|
-
'rotationSnap',
|
|
16
|
-
'scaleSnap',
|
|
17
|
-
'space',
|
|
18
|
-
'size',
|
|
19
|
-
'showX',
|
|
20
|
-
'showY',
|
|
21
|
-
'showZ',
|
|
22
|
-
'domElement',
|
|
23
|
-
'makeDefault',
|
|
24
|
-
'camera',
|
|
25
|
-
]);
|
|
26
|
-
this.controlsOptions = pick(this.options, [
|
|
27
|
-
'enabled',
|
|
28
|
-
'axis',
|
|
29
|
-
'mode',
|
|
30
|
-
'translationSnap',
|
|
31
|
-
'rotationSnap',
|
|
32
|
-
'scaleSnap',
|
|
33
|
-
'space',
|
|
34
|
-
'size',
|
|
35
|
-
'showX',
|
|
36
|
-
'showY',
|
|
37
|
-
'showZ',
|
|
38
|
-
]);
|
|
39
|
-
this.camera = pick(this.options, 'camera');
|
|
40
|
-
this.domElement = pick(this.options, 'domElement');
|
|
41
|
-
this.makeDefault = pick(this.options, 'makeDefault');
|
|
42
|
-
this.change = output();
|
|
43
|
-
this.mouseDown = output();
|
|
44
|
-
this.mouseUp = output();
|
|
45
|
-
this.objectChange = output();
|
|
46
|
-
this.groupRef = viewChild.required('group');
|
|
47
|
-
this.store = injectStore();
|
|
48
|
-
this.glDomElement = this.store.select('gl', 'domElement');
|
|
49
|
-
this.defaultCamera = this.store.select('camera');
|
|
50
|
-
this.events = this.store.select('events');
|
|
51
|
-
this.defaultControls = this.store.select('controls');
|
|
52
|
-
this.invalidate = this.store.select('invalidate');
|
|
53
|
-
this.controls = computed(() => {
|
|
54
|
-
let camera = this.camera();
|
|
55
|
-
if (!camera) {
|
|
56
|
-
camera = this.defaultCamera();
|
|
57
|
-
}
|
|
58
|
-
let domElement = this.domElement();
|
|
59
|
-
if (!domElement) {
|
|
60
|
-
domElement = this.events().connected || this.glDomElement();
|
|
61
|
-
}
|
|
62
|
-
return new TransformControls(camera, domElement);
|
|
63
|
-
});
|
|
64
|
-
extend({ Group });
|
|
65
|
-
effect((onCleanup) => {
|
|
66
|
-
const cleanup = this.attachControlsEffect();
|
|
67
|
-
onCleanup(() => cleanup?.());
|
|
68
|
-
});
|
|
69
|
-
effect((onCleanup) => {
|
|
70
|
-
const cleanup = this.disableDefaultControlsEffect();
|
|
71
|
-
onCleanup(() => cleanup?.());
|
|
72
|
-
});
|
|
73
|
-
effect((onCleanup) => {
|
|
74
|
-
const cleanup = this.setupControlsEventsEffect();
|
|
75
|
-
onCleanup(() => cleanup?.());
|
|
76
|
-
});
|
|
77
|
-
effect((onCleanup) => {
|
|
78
|
-
const cleanup = this.updateDefaultControlsEffect();
|
|
79
|
-
onCleanup(() => cleanup?.());
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
attachControlsEffect() {
|
|
83
|
-
const group = this.groupRef().nativeElement;
|
|
84
|
-
if (!group)
|
|
85
|
-
return;
|
|
86
|
-
const localState = getLocalState(group);
|
|
87
|
-
if (!localState)
|
|
88
|
-
return;
|
|
89
|
-
const [object, controls] = [resolveRef(this.object()), this.controls(), localState.objects()];
|
|
90
|
-
if (object) {
|
|
91
|
-
controls.attach(object);
|
|
92
|
-
}
|
|
93
|
-
else {
|
|
94
|
-
controls.attach(group);
|
|
95
|
-
}
|
|
96
|
-
return () => controls.detach();
|
|
97
|
-
}
|
|
98
|
-
disableDefaultControlsEffect() {
|
|
99
|
-
const defaultControls = this.defaultControls();
|
|
100
|
-
if (!defaultControls)
|
|
101
|
-
return;
|
|
102
|
-
const controls = this.controls();
|
|
103
|
-
const callback = (event) => {
|
|
104
|
-
defaultControls.enabled = !event.value;
|
|
105
|
-
};
|
|
106
|
-
// @ts-expect-error - three-stdlib types are not up-to-date
|
|
107
|
-
controls.addEventListener('dragging-changed', callback);
|
|
108
|
-
return () => {
|
|
109
|
-
// @ts-expect-error - three-stdlib types are not up-to-date
|
|
110
|
-
controls.removeEventListener('dragging-changed', callback);
|
|
111
|
-
};
|
|
112
|
-
}
|
|
113
|
-
setupControlsEventsEffect() {
|
|
114
|
-
const [controls, invalidate] = [this.controls(), this.invalidate()];
|
|
115
|
-
const onChange = (event) => {
|
|
116
|
-
invalidate();
|
|
117
|
-
if (!this.change['destroyed']) {
|
|
118
|
-
this.change.emit(event);
|
|
119
|
-
}
|
|
120
|
-
};
|
|
121
|
-
const onMouseDown = this.mouseDown.emit.bind(this.mouseDown);
|
|
122
|
-
const onMouseUp = this.mouseUp.emit.bind(this.mouseUp);
|
|
123
|
-
const onObjectChange = this.objectChange.emit.bind(this.objectChange);
|
|
124
|
-
// @ts-expect-error - three-stdlib types are not up-to-date
|
|
125
|
-
controls.addEventListener('change', onChange);
|
|
126
|
-
// @ts-expect-error - three-stdlib types are not up-to-date
|
|
127
|
-
controls.addEventListener('mouseDown', onMouseDown);
|
|
128
|
-
// @ts-expect-error - three-stdlib types are not up-to-date
|
|
129
|
-
controls.addEventListener('mouseUp', onMouseUp);
|
|
130
|
-
// @ts-expect-error - three-stdlib types are not up-to-date
|
|
131
|
-
controls.addEventListener('objectChange', onObjectChange);
|
|
132
|
-
return () => {
|
|
133
|
-
// @ts-expect-error - three-stdlib types are not up-to-date
|
|
134
|
-
controls.removeEventListener('change', onChange);
|
|
135
|
-
// @ts-expect-error - three-stdlib types are not up-to-date
|
|
136
|
-
controls.removeEventListener('mouseDown', onMouseDown);
|
|
137
|
-
// @ts-expect-error - three-stdlib types are not up-to-date
|
|
138
|
-
controls.removeEventListener('mouseUp', onMouseUp);
|
|
139
|
-
// @ts-expect-error - three-stdlib types are not up-to-date
|
|
140
|
-
controls.removeEventListener('objectChange', onObjectChange);
|
|
141
|
-
};
|
|
142
|
-
}
|
|
143
|
-
updateDefaultControlsEffect() {
|
|
144
|
-
const [controls, makeDefault] = [this.controls(), this.makeDefault()];
|
|
145
|
-
if (!makeDefault)
|
|
146
|
-
return;
|
|
147
|
-
const oldControls = this.store.snapshot.controls;
|
|
148
|
-
this.store.update({ controls });
|
|
149
|
-
return () => this.store.update(() => ({ controls: oldControls }));
|
|
150
|
-
}
|
|
151
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsTransformControls, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
152
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.11", type: NgtsTransformControls, isStandalone: true, selector: "ngts-transform-controls", inputs: { object: { classPropertyName: "object", publicName: "object", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { change: "change", mouseDown: "mouseDown", mouseUp: "mouseUp", objectChange: "objectChange" }, viewQueries: [{ propertyName: "groupRef", first: true, predicate: ["group"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
153
|
-
<ngt-primitive *args="[controls()]" [parameters]="controlsOptions()" />
|
|
154
|
-
|
|
155
|
-
<ngt-group #group [parameters]="parameters()">
|
|
156
|
-
<ng-content />
|
|
157
|
-
</ngt-group>
|
|
158
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
159
|
-
}
|
|
160
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsTransformControls, decorators: [{
|
|
161
|
-
type: Component,
|
|
162
|
-
args: [{
|
|
163
|
-
selector: 'ngts-transform-controls',
|
|
164
|
-
standalone: true,
|
|
165
|
-
template: `
|
|
166
|
-
<ngt-primitive *args="[controls()]" [parameters]="controlsOptions()" />
|
|
167
|
-
|
|
168
|
-
<ngt-group #group [parameters]="parameters()">
|
|
169
|
-
<ng-content />
|
|
170
|
-
</ngt-group>
|
|
171
|
-
`,
|
|
172
|
-
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
173
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
174
|
-
imports: [NgtArgs],
|
|
175
|
-
}]
|
|
176
|
-
}], ctorParameters: () => [] });
|
|
177
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmb3JtLWNvbnRyb2xzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL2dpem1vcy9zcmMvbGliL3RyYW5zZm9ybS1jb250cm9scy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1Isc0JBQXNCLEVBQ3RCLE1BQU0sRUFFTixLQUFLLEVBQ0wsTUFBTSxFQUVOLFNBQVMsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ04sTUFBTSxFQUNOLGFBQWEsRUFDYixXQUFXLEVBQ1gsT0FBTyxFQUdQLElBQUksRUFDSixJQUFJLEVBQ0osVUFBVSxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBVSxLQUFLLEVBQWlDLE1BQU0sT0FBTyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUF3Q2pELE1BQU0sT0FBTyxxQkFBcUI7SUFrRWpDO1FBakVBLFdBQU0sR0FBRyxLQUFLLENBQXFELElBQUksQ0FBQyxDQUFDO1FBQ3pFLFlBQU8sR0FBRyxLQUFLLENBQUMsRUFBMkMsQ0FBQyxDQUFDO1FBQzdELGVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUMvQixTQUFTO1lBQ1QsTUFBTTtZQUNOLE1BQU07WUFDTixpQkFBaUI7WUFDakIsY0FBYztZQUNkLFdBQVc7WUFDWCxPQUFPO1lBQ1AsTUFBTTtZQUNOLE9BQU87WUFDUCxPQUFPO1lBQ1AsT0FBTztZQUNQLFlBQVk7WUFDWixhQUFhO1lBQ2IsUUFBUTtTQUNSLENBQUMsQ0FBQztRQUVPLG9CQUFlLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDOUMsU0FBUztZQUNULE1BQU07WUFDTixNQUFNO1lBQ04saUJBQWlCO1lBQ2pCLGNBQWM7WUFDZCxXQUFXO1lBQ1gsT0FBTztZQUNQLE1BQU07WUFDTixPQUFPO1lBQ1AsT0FBTztZQUNQLE9BQU87U0FDUCxDQUFDLENBQUM7UUFFSyxXQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDdEMsZUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQzlDLGdCQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFFeEQsV0FBTSxHQUFHLE1BQU0sRUFBYyxDQUFDO1FBQzlCLGNBQVMsR0FBRyxNQUFNLEVBQWMsQ0FBQztRQUNqQyxZQUFPLEdBQUcsTUFBTSxFQUFjLENBQUM7UUFDL0IsaUJBQVksR0FBRyxNQUFNLEVBQWMsQ0FBQztRQUU1QixhQUFRLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBb0IsT0FBTyxDQUFDLENBQUM7UUFFMUQsVUFBSyxHQUFHLFdBQVcsRUFBRSxDQUFDO1FBQ3RCLGlCQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ3JELGtCQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUMsV0FBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JDLG9CQUFlLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFxQyxDQUFDO1FBQ3BGLGVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVyRCxhQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUN4QixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNiLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDL0IsQ0FBQztZQUVELElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ2pCLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUM3RCxDQUFDO1lBRUQsT0FBTyxJQUFJLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNsRCxDQUFDLENBQUMsQ0FBQztRQUdGLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDbEIsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDcEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDNUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3BCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO1lBQ3BELFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNwQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztZQUNqRCxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDcEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLDJCQUEyQixFQUFFLENBQUM7WUFDbkQsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFTyxvQkFBb0I7UUFDM0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLGFBQWEsQ0FBQztRQUM1QyxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU87UUFFbkIsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxVQUFVO1lBQUUsT0FBTztRQUV4QixNQUFNLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUM5RixJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1osUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6QixDQUFDO2FBQU0sQ0FBQztZQUNQLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsQ0FBQztRQUVELE9BQU8sR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFTyw0QkFBNEI7UUFDbkMsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQy9DLElBQUksQ0FBQyxlQUFlO1lBQUUsT0FBTztRQUU3QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUMvQixlQUFlLENBQUMsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUN4QyxDQUFDLENBQUM7UUFFRiwyREFBMkQ7UUFDM0QsUUFBUSxDQUFDLGdCQUFnQixDQUFDLGtCQUFrQixFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3hELE9BQU8sR0FBRyxFQUFFO1lBQ1gsMkRBQTJEO1lBQzNELFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxrQkFBa0IsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUM1RCxDQUFDLENBQUM7SUFDSCxDQUFDO0lBRU8seUJBQXlCO1FBQ2hDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDcEUsTUFBTSxRQUFRLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUU7WUFDdEMsVUFBVSxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO2dCQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN6QixDQUFDO1FBQ0YsQ0FBQyxDQUFDO1FBQ0YsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3RCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFdEUsMkRBQTJEO1FBQzNELFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDOUMsMkRBQTJEO1FBQzNELFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDcEQsMkRBQTJEO1FBQzNELFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDaEQsMkRBQTJEO1FBQzNELFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFFMUQsT0FBTyxHQUFHLEVBQUU7WUFDWCwyREFBMkQ7WUFDM0QsUUFBUSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNqRCwyREFBMkQ7WUFDM0QsUUFBUSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztZQUN2RCwyREFBMkQ7WUFDM0QsUUFBUSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUNuRCwyREFBMkQ7WUFDM0QsUUFBUSxDQUFDLG1CQUFtQixDQUFDLGNBQWMsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUM5RCxDQUFDLENBQUM7SUFDSCxDQUFDO0lBRU8sMkJBQTJCO1FBQ2xDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLFdBQVc7WUFBRSxPQUFPO1FBRXpCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUNqRCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDaEMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDOytHQWhLVyxxQkFBcUI7bUdBQXJCLHFCQUFxQixvakJBWHZCOzs7Ozs7RUFNVCw0REFHUyxPQUFPOzs0RkFFTCxxQkFBcUI7a0JBZGpDLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7Ozs7O0VBTVQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUM7aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENvbXBvbmVudCxcblx0Y29tcHV0ZWQsXG5cdENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXG5cdGVmZmVjdCxcblx0RWxlbWVudFJlZixcblx0aW5wdXQsXG5cdG91dHB1dCxcblx0U2lnbmFsLFxuXHR2aWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcblx0ZXh0ZW5kLFxuXHRnZXRMb2NhbFN0YXRlLFxuXHRpbmplY3RTdG9yZSxcblx0Tmd0QXJncyxcblx0Tmd0R3JvdXAsXG5cdE5ndE9iamVjdDNETm9kZSxcblx0b21pdCxcblx0cGljayxcblx0cmVzb2x2ZVJlZixcbn0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBDYW1lcmEsIEdyb3VwLCBPYmplY3QzRCwgRXZlbnQgYXMgVGhyZWVFdmVudCB9IGZyb20gJ3RocmVlJztcbmltcG9ydCB7IFRyYW5zZm9ybUNvbnRyb2xzIH0gZnJvbSAndGhyZWUtc3RkbGliJztcblxuaW50ZXJmYWNlIENvbnRyb2xzUHJvdG8ge1xuXHRlbmFibGVkOiBib29sZWFuO1xufVxuXG5leHBvcnQgdHlwZSBOZ3RzVHJhbnNmb3JtQ29udHJvbHNPYmplY3QgPSBOZ3RPYmplY3QzRE5vZGU8VHJhbnNmb3JtQ29udHJvbHMsIHR5cGVvZiBUcmFuc2Zvcm1Db250cm9scz47XG5cbmV4cG9ydCB0eXBlIE5ndHNUcmFuc2Zvcm1Db250cm9sc09wdGlvbnMgPSBQYXJ0aWFsPE5ndHNUcmFuc2Zvcm1Db250cm9sc09iamVjdD4gJlxuXHRQYXJ0aWFsPE5ndEdyb3VwPiAmIHtcblx0XHRlbmFibGVkPzogYm9vbGVhbjtcblx0XHRheGlzPzogc3RyaW5nIHwgbnVsbDtcblx0XHRkb21FbGVtZW50PzogSFRNTEVsZW1lbnQ7XG5cdFx0bW9kZT86ICd0cmFuc2xhdGUnIHwgJ3JvdGF0ZScgfCAnc2NhbGUnO1xuXHRcdHRyYW5zbGF0aW9uU25hcD86IG51bWJlciB8IG51bGw7XG5cdFx0cm90YXRpb25TbmFwPzogbnVtYmVyIHwgbnVsbDtcblx0XHRzY2FsZVNuYXA/OiBudW1iZXIgfCBudWxsO1xuXHRcdHNwYWNlPzogJ3dvcmxkJyB8ICdsb2NhbCc7XG5cdFx0c2l6ZT86IG51bWJlcjtcblx0XHRzaG93WD86IGJvb2xlYW47XG5cdFx0c2hvd1k/OiBib29sZWFuO1xuXHRcdHNob3daPzogYm9vbGVhbjtcblx0XHRjYW1lcmE/OiBDYW1lcmE7XG5cdFx0bWFrZURlZmF1bHQ/OiBib29sZWFuO1xuXHR9O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RzLXRyYW5zZm9ybS1jb250cm9scycsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1wcmltaXRpdmUgKmFyZ3M9XCJbY29udHJvbHMoKV1cIiBbcGFyYW1ldGVyc109XCJjb250cm9sc09wdGlvbnMoKVwiIC8+XG5cblx0XHQ8bmd0LWdyb3VwICNncm91cCBbcGFyYW1ldGVyc109XCJwYXJhbWV0ZXJzKClcIj5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3QtZ3JvdXA+XG5cdGAsXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG5cdGltcG9ydHM6IFtOZ3RBcmdzXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c1RyYW5zZm9ybUNvbnRyb2xzIHtcblx0b2JqZWN0ID0gaW5wdXQ8T2JqZWN0M0QgfCBFbGVtZW50UmVmPE9iamVjdDNEPiB8IHVuZGVmaW5lZCB8IG51bGw+KG51bGwpO1xuXHRvcHRpb25zID0gaW5wdXQoe30gYXMgUGFydGlhbDxOZ3RzVHJhbnNmb3JtQ29udHJvbHNPcHRpb25zPik7XG5cdHBhcmFtZXRlcnMgPSBvbWl0KHRoaXMub3B0aW9ucywgW1xuXHRcdCdlbmFibGVkJyxcblx0XHQnYXhpcycsXG5cdFx0J21vZGUnLFxuXHRcdCd0cmFuc2xhdGlvblNuYXAnLFxuXHRcdCdyb3RhdGlvblNuYXAnLFxuXHRcdCdzY2FsZVNuYXAnLFxuXHRcdCdzcGFjZScsXG5cdFx0J3NpemUnLFxuXHRcdCdzaG93WCcsXG5cdFx0J3Nob3dZJyxcblx0XHQnc2hvd1onLFxuXHRcdCdkb21FbGVtZW50Jyxcblx0XHQnbWFrZURlZmF1bHQnLFxuXHRcdCdjYW1lcmEnLFxuXHRdKTtcblxuXHRwcm90ZWN0ZWQgY29udHJvbHNPcHRpb25zID0gcGljayh0aGlzLm9wdGlvbnMsIFtcblx0XHQnZW5hYmxlZCcsXG5cdFx0J2F4aXMnLFxuXHRcdCdtb2RlJyxcblx0XHQndHJhbnNsYXRpb25TbmFwJyxcblx0XHQncm90YXRpb25TbmFwJyxcblx0XHQnc2NhbGVTbmFwJyxcblx0XHQnc3BhY2UnLFxuXHRcdCdzaXplJyxcblx0XHQnc2hvd1gnLFxuXHRcdCdzaG93WScsXG5cdFx0J3Nob3daJyxcblx0XSk7XG5cblx0cHJpdmF0ZSBjYW1lcmEgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2NhbWVyYScpO1xuXHRwcml2YXRlIGRvbUVsZW1lbnQgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2RvbUVsZW1lbnQnKTtcblx0cHJpdmF0ZSBtYWtlRGVmYXVsdCA9IHBpY2sodGhpcy5vcHRpb25zLCAnbWFrZURlZmF1bHQnKTtcblxuXHRjaGFuZ2UgPSBvdXRwdXQ8VGhyZWVFdmVudD4oKTtcblx0bW91c2VEb3duID0gb3V0cHV0PFRocmVlRXZlbnQ+KCk7XG5cdG1vdXNlVXAgPSBvdXRwdXQ8VGhyZWVFdmVudD4oKTtcblx0b2JqZWN0Q2hhbmdlID0gb3V0cHV0PFRocmVlRXZlbnQ+KCk7XG5cblx0cHJpdmF0ZSBncm91cFJlZiA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPEdyb3VwPj4oJ2dyb3VwJyk7XG5cblx0cHJpdmF0ZSBzdG9yZSA9IGluamVjdFN0b3JlKCk7XG5cdHByaXZhdGUgZ2xEb21FbGVtZW50ID0gdGhpcy5zdG9yZS5zZWxlY3QoJ2dsJywgJ2RvbUVsZW1lbnQnKTtcblx0cHJpdmF0ZSBkZWZhdWx0Q2FtZXJhID0gdGhpcy5zdG9yZS5zZWxlY3QoJ2NhbWVyYScpO1xuXHRwcml2YXRlIGV2ZW50cyA9IHRoaXMuc3RvcmUuc2VsZWN0KCdldmVudHMnKTtcblx0cHJpdmF0ZSBkZWZhdWx0Q29udHJvbHMgPSB0aGlzLnN0b3JlLnNlbGVjdCgnY29udHJvbHMnKSBhcyB1bmtub3duIGFzIFNpZ25hbDxDb250cm9sc1Byb3RvPjtcblx0cHJpdmF0ZSBpbnZhbGlkYXRlID0gdGhpcy5zdG9yZS5zZWxlY3QoJ2ludmFsaWRhdGUnKTtcblxuXHRjb250cm9scyA9IGNvbXB1dGVkKCgpID0+IHtcblx0XHRsZXQgY2FtZXJhID0gdGhpcy5jYW1lcmEoKTtcblx0XHRpZiAoIWNhbWVyYSkge1xuXHRcdFx0Y2FtZXJhID0gdGhpcy5kZWZhdWx0Q2FtZXJhKCk7XG5cdFx0fVxuXG5cdFx0bGV0IGRvbUVsZW1lbnQgPSB0aGlzLmRvbUVsZW1lbnQoKTtcblx0XHRpZiAoIWRvbUVsZW1lbnQpIHtcblx0XHRcdGRvbUVsZW1lbnQgPSB0aGlzLmV2ZW50cygpLmNvbm5lY3RlZCB8fCB0aGlzLmdsRG9tRWxlbWVudCgpO1xuXHRcdH1cblxuXHRcdHJldHVybiBuZXcgVHJhbnNmb3JtQ29udHJvbHMoY2FtZXJhLCBkb21FbGVtZW50KTtcblx0fSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZXh0ZW5kKHsgR3JvdXAgfSk7XG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IGNsZWFudXAgPSB0aGlzLmF0dGFjaENvbnRyb2xzRWZmZWN0KCk7XG5cdFx0XHRvbkNsZWFudXAoKCkgPT4gY2xlYW51cD8uKCkpO1xuXHRcdH0pO1xuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBjbGVhbnVwID0gdGhpcy5kaXNhYmxlRGVmYXVsdENvbnRyb2xzRWZmZWN0KCk7XG5cdFx0XHRvbkNsZWFudXAoKCkgPT4gY2xlYW51cD8uKCkpO1xuXHRcdH0pO1xuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBjbGVhbnVwID0gdGhpcy5zZXR1cENvbnRyb2xzRXZlbnRzRWZmZWN0KCk7XG5cdFx0XHRvbkNsZWFudXAoKCkgPT4gY2xlYW51cD8uKCkpO1xuXHRcdH0pO1xuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBjbGVhbnVwID0gdGhpcy51cGRhdGVEZWZhdWx0Q29udHJvbHNFZmZlY3QoKTtcblx0XHRcdG9uQ2xlYW51cCgoKSA9PiBjbGVhbnVwPy4oKSk7XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIGF0dGFjaENvbnRyb2xzRWZmZWN0KCkge1xuXHRcdGNvbnN0IGdyb3VwID0gdGhpcy5ncm91cFJlZigpLm5hdGl2ZUVsZW1lbnQ7XG5cdFx0aWYgKCFncm91cCkgcmV0dXJuO1xuXG5cdFx0Y29uc3QgbG9jYWxTdGF0ZSA9IGdldExvY2FsU3RhdGUoZ3JvdXApO1xuXHRcdGlmICghbG9jYWxTdGF0ZSkgcmV0dXJuO1xuXG5cdFx0Y29uc3QgW29iamVjdCwgY29udHJvbHNdID0gW3Jlc29sdmVSZWYodGhpcy5vYmplY3QoKSksIHRoaXMuY29udHJvbHMoKSwgbG9jYWxTdGF0ZS5vYmplY3RzKCldO1xuXHRcdGlmIChvYmplY3QpIHtcblx0XHRcdGNvbnRyb2xzLmF0dGFjaChvYmplY3QpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb250cm9scy5hdHRhY2goZ3JvdXApO1xuXHRcdH1cblxuXHRcdHJldHVybiAoKSA9PiBjb250cm9scy5kZXRhY2goKTtcblx0fVxuXG5cdHByaXZhdGUgZGlzYWJsZURlZmF1bHRDb250cm9sc0VmZmVjdCgpIHtcblx0XHRjb25zdCBkZWZhdWx0Q29udHJvbHMgPSB0aGlzLmRlZmF1bHRDb250cm9scygpO1xuXHRcdGlmICghZGVmYXVsdENvbnRyb2xzKSByZXR1cm47XG5cblx0XHRjb25zdCBjb250cm9scyA9IHRoaXMuY29udHJvbHMoKTtcblx0XHRjb25zdCBjYWxsYmFjayA9IChldmVudDogYW55KSA9PiB7XG5cdFx0XHRkZWZhdWx0Q29udHJvbHMuZW5hYmxlZCA9ICFldmVudC52YWx1ZTtcblx0XHR9O1xuXG5cdFx0Ly8gQHRzLWV4cGVjdC1lcnJvciAtIHRocmVlLXN0ZGxpYiB0eXBlcyBhcmUgbm90IHVwLXRvLWRhdGVcblx0XHRjb250cm9scy5hZGRFdmVudExpc3RlbmVyKCdkcmFnZ2luZy1jaGFuZ2VkJywgY2FsbGJhY2spO1xuXHRcdHJldHVybiAoKSA9PiB7XG5cdFx0XHQvLyBAdHMtZXhwZWN0LWVycm9yIC0gdGhyZWUtc3RkbGliIHR5cGVzIGFyZSBub3QgdXAtdG8tZGF0ZVxuXHRcdFx0Y29udHJvbHMucmVtb3ZlRXZlbnRMaXN0ZW5lcignZHJhZ2dpbmctY2hhbmdlZCcsIGNhbGxiYWNrKTtcblx0XHR9O1xuXHR9XG5cblx0cHJpdmF0ZSBzZXR1cENvbnRyb2xzRXZlbnRzRWZmZWN0KCkge1xuXHRcdGNvbnN0IFtjb250cm9scywgaW52YWxpZGF0ZV0gPSBbdGhpcy5jb250cm9scygpLCB0aGlzLmludmFsaWRhdGUoKV07XG5cdFx0Y29uc3Qgb25DaGFuZ2UgPSAoZXZlbnQ6IFRocmVlRXZlbnQpID0+IHtcblx0XHRcdGludmFsaWRhdGUoKTtcblx0XHRcdGlmICghdGhpcy5jaGFuZ2VbJ2Rlc3Ryb3llZCddKSB7XG5cdFx0XHRcdHRoaXMuY2hhbmdlLmVtaXQoZXZlbnQpO1xuXHRcdFx0fVxuXHRcdH07XG5cdFx0Y29uc3Qgb25Nb3VzZURvd24gPSB0aGlzLm1vdXNlRG93bi5lbWl0LmJpbmQodGhpcy5tb3VzZURvd24pO1xuXHRcdGNvbnN0IG9uTW91c2VVcCA9IHRoaXMubW91c2VVcC5lbWl0LmJpbmQodGhpcy5tb3VzZVVwKTtcblx0XHRjb25zdCBvbk9iamVjdENoYW5nZSA9IHRoaXMub2JqZWN0Q2hhbmdlLmVtaXQuYmluZCh0aGlzLm9iamVjdENoYW5nZSk7XG5cblx0XHQvLyBAdHMtZXhwZWN0LWVycm9yIC0gdGhyZWUtc3RkbGliIHR5cGVzIGFyZSBub3QgdXAtdG8tZGF0ZVxuXHRcdGNvbnRyb2xzLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIG9uQ2hhbmdlKTtcblx0XHQvLyBAdHMtZXhwZWN0LWVycm9yIC0gdGhyZWUtc3RkbGliIHR5cGVzIGFyZSBub3QgdXAtdG8tZGF0ZVxuXHRcdGNvbnRyb2xzLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlRG93bicsIG9uTW91c2VEb3duKTtcblx0XHQvLyBAdHMtZXhwZWN0LWVycm9yIC0gdGhyZWUtc3RkbGliIHR5cGVzIGFyZSBub3QgdXAtdG8tZGF0ZVxuXHRcdGNvbnRyb2xzLmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlVXAnLCBvbk1vdXNlVXApO1xuXHRcdC8vIEB0cy1leHBlY3QtZXJyb3IgLSB0aHJlZS1zdGRsaWIgdHlwZXMgYXJlIG5vdCB1cC10by1kYXRlXG5cdFx0Y29udHJvbHMuYWRkRXZlbnRMaXN0ZW5lcignb2JqZWN0Q2hhbmdlJywgb25PYmplY3RDaGFuZ2UpO1xuXG5cdFx0cmV0dXJuICgpID0+IHtcblx0XHRcdC8vIEB0cy1leHBlY3QtZXJyb3IgLSB0aHJlZS1zdGRsaWIgdHlwZXMgYXJlIG5vdCB1cC10by1kYXRlXG5cdFx0XHRjb250cm9scy5yZW1vdmVFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBvbkNoYW5nZSk7XG5cdFx0XHQvLyBAdHMtZXhwZWN0LWVycm9yIC0gdGhyZWUtc3RkbGliIHR5cGVzIGFyZSBub3QgdXAtdG8tZGF0ZVxuXHRcdFx0Y29udHJvbHMucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2VEb3duJywgb25Nb3VzZURvd24pO1xuXHRcdFx0Ly8gQHRzLWV4cGVjdC1lcnJvciAtIHRocmVlLXN0ZGxpYiB0eXBlcyBhcmUgbm90IHVwLXRvLWRhdGVcblx0XHRcdGNvbnRyb2xzLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlVXAnLCBvbk1vdXNlVXApO1xuXHRcdFx0Ly8gQHRzLWV4cGVjdC1lcnJvciAtIHRocmVlLXN0ZGxpYiB0eXBlcyBhcmUgbm90IHVwLXRvLWRhdGVcblx0XHRcdGNvbnRyb2xzLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ29iamVjdENoYW5nZScsIG9uT2JqZWN0Q2hhbmdlKTtcblx0XHR9O1xuXHR9XG5cblx0cHJpdmF0ZSB1cGRhdGVEZWZhdWx0Q29udHJvbHNFZmZlY3QoKSB7XG5cdFx0Y29uc3QgW2NvbnRyb2xzLCBtYWtlRGVmYXVsdF0gPSBbdGhpcy5jb250cm9scygpLCB0aGlzLm1ha2VEZWZhdWx0KCldO1xuXHRcdGlmICghbWFrZURlZmF1bHQpIHJldHVybjtcblxuXHRcdGNvbnN0IG9sZENvbnRyb2xzID0gdGhpcy5zdG9yZS5zbmFwc2hvdC5jb250cm9scztcblx0XHR0aGlzLnN0b3JlLnVwZGF0ZSh7IGNvbnRyb2xzIH0pO1xuXHRcdHJldHVybiAoKSA9PiB0aGlzLnN0b3JlLnVwZGF0ZSgoKSA9PiAoeyBjb250cm9sczogb2xkQ29udHJvbHMgfSkpO1xuXHR9XG59XG4iXX0=
|
package/esm2022/index.mjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export default void 0;
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL3NvYmEvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGVBQWUsS0FBSyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCB2b2lkIDA7XG4iXX0=
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './index';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10aHJlZS1zb2JhLWxvYWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvbG9hZGVycy9zcmMvYW5ndWxhci10aHJlZS1zb2JhLWxvYWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export * from './lib/fbx-loader';
|
|
2
|
-
export * from './lib/font-loader';
|
|
3
|
-
export * from './lib/gltf-loader';
|
|
4
|
-
export * from './lib/loader';
|
|
5
|
-
export * from './lib/progress';
|
|
6
|
-
export * from './lib/texture-loader';
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvbG9hZGVycy9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvZmJ4LWxvYWRlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9mb250LWxvYWRlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9nbHRmLWxvYWRlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9sb2FkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcHJvZ3Jlc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGV4dHVyZS1sb2FkZXInO1xuIl19
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { injectLoader } from 'angular-three';
|
|
2
|
-
import { assertInjector } from 'ngxtension/assert-injector';
|
|
3
|
-
import { FBXLoader } from 'three-stdlib';
|
|
4
|
-
function _injectFBX(input, { injector } = {}) {
|
|
5
|
-
return assertInjector(_injectFBX, injector, () => {
|
|
6
|
-
return injectLoader(() => FBXLoader, input);
|
|
7
|
-
});
|
|
8
|
-
}
|
|
9
|
-
_injectFBX.preload = (input) => {
|
|
10
|
-
injectLoader.preload(() => FBXLoader, input);
|
|
11
|
-
};
|
|
12
|
-
export const injectFBX = _injectFBX;
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmJ4LWxvYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc29iYS9sb2FkZXJzL3NyYy9saWIvZmJ4LWxvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXpDLFNBQVMsVUFBVSxDQUNsQixLQUFpQixFQUNqQixFQUFFLFFBQVEsS0FBOEIsRUFBRTtJQUUxQyxPQUFPLGNBQWMsQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRTtRQUNoRCxPQUFPLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDN0MsQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsVUFBVSxDQUFDLE9BQU8sR0FBRyxDQUEwRCxLQUFpQixFQUFFLEVBQUU7SUFDbkcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDOUMsQ0FBQyxDQUFDO0FBR0YsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFrQixVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0TG9hZGVyIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBhc3NlcnRJbmplY3RvciB9IGZyb20gJ25neHRlbnNpb24vYXNzZXJ0LWluamVjdG9yJztcbmltcG9ydCB7IEZCWExvYWRlciB9IGZyb20gJ3RocmVlLXN0ZGxpYic7XG5cbmZ1bmN0aW9uIF9pbmplY3RGQlg8VFVybCBleHRlbmRzIHN0cmluZyB8IHN0cmluZ1tdIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4oXG5cdGlucHV0OiAoKSA9PiBUVXJsLFxuXHR7IGluamVjdG9yIH06IHsgaW5qZWN0b3I/OiBJbmplY3RvciB9ID0ge30sXG4pIHtcblx0cmV0dXJuIGFzc2VydEluamVjdG9yKF9pbmplY3RGQlgsIGluamVjdG9yLCAoKSA9PiB7XG5cdFx0cmV0dXJuIGluamVjdExvYWRlcigoKSA9PiBGQlhMb2FkZXIsIGlucHV0KTtcblx0fSk7XG59XG5cbl9pbmplY3RGQlgucHJlbG9hZCA9IDxUVXJsIGV4dGVuZHMgc3RyaW5nIHwgc3RyaW5nW10gfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PihpbnB1dDogKCkgPT4gVFVybCkgPT4ge1xuXHRpbmplY3RMb2FkZXIucHJlbG9hZCgoKSA9PiBGQlhMb2FkZXIsIGlucHV0KTtcbn07XG5cbmV4cG9ydCB0eXBlIE5ndHNGQlhMb2FkZXIgPSB0eXBlb2YgX2luamVjdEZCWDtcbmV4cG9ydCBjb25zdCBpbmplY3RGQlg6IE5ndHNGQlhMb2FkZXIgPSBfaW5qZWN0RkJYO1xuIl19
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { effect, signal, untracked } from '@angular/core';
|
|
2
|
-
import { assertInjector } from 'ngxtension/assert-injector';
|
|
3
|
-
import { FontLoader } from 'three-stdlib';
|
|
4
|
-
let fontLoader = null;
|
|
5
|
-
async function loadFontData(font) {
|
|
6
|
-
return typeof font === 'string' ? await (await fetch(font)).json() : font;
|
|
7
|
-
}
|
|
8
|
-
function parseFontData(fontData) {
|
|
9
|
-
if (!fontLoader) {
|
|
10
|
-
fontLoader = new FontLoader();
|
|
11
|
-
}
|
|
12
|
-
return fontLoader.parse(fontData);
|
|
13
|
-
}
|
|
14
|
-
const cache = new Map();
|
|
15
|
-
export function injectFont(input, { injector } = {}) {
|
|
16
|
-
return assertInjector(injectFont, injector, () => {
|
|
17
|
-
const font = signal(null);
|
|
18
|
-
effect(() => {
|
|
19
|
-
const fontInput = input();
|
|
20
|
-
if (cache.has(fontInput)) {
|
|
21
|
-
untracked(() => {
|
|
22
|
-
font.set(cache.get(fontInput));
|
|
23
|
-
});
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
loadFontData(input()).then((data) => {
|
|
27
|
-
const parsed = parseFontData(data);
|
|
28
|
-
cache.set(fontInput, parsed);
|
|
29
|
-
font.set(parsed);
|
|
30
|
-
});
|
|
31
|
-
});
|
|
32
|
-
return font.asReadonly();
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
injectFont.preload = (input) => {
|
|
36
|
-
loadFontData(input()).then((data) => {
|
|
37
|
-
const parsed = parseFontData(data);
|
|
38
|
-
cache.set(input(), parsed);
|
|
39
|
-
});
|
|
40
|
-
};
|
|
41
|
-
injectFont.clear = (input) => {
|
|
42
|
-
if (input) {
|
|
43
|
-
cache.delete(input());
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
cache.clear();
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9udC1sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvbG9hZGVycy9zcmMvbGliL2ZvbnQtbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQVksTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFRLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQXVCaEQsSUFBSSxVQUFVLEdBQXNCLElBQUksQ0FBQztBQUV6QyxLQUFLLFVBQVUsWUFBWSxDQUFDLElBQW1CO0lBQzlDLE9BQU8sT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQzNFLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBQyxRQUFrQjtJQUN4QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDakIsVUFBVSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUNELE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUNuQyxDQUFDO0FBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQXVCLENBQUM7QUFFN0MsTUFBTSxVQUFVLFVBQVUsQ0FBQyxLQUEwQixFQUFFLEVBQUUsUUFBUSxLQUE4QixFQUFFO0lBQ2hHLE9BQU8sY0FBYyxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFO1FBQ2hELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBYyxJQUFJLENBQUMsQ0FBQztRQUV2QyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1gsTUFBTSxTQUFTLEdBQUcsS0FBSyxFQUFFLENBQUM7WUFFMUIsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQzFCLFNBQVMsQ0FBQyxHQUFHLEVBQUU7b0JBQ2QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBUyxDQUFDLENBQUM7Z0JBQ3hDLENBQUMsQ0FBQyxDQUFDO2dCQUNILE9BQU87WUFDUixDQUFDO1lBRUQsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ25DLE1BQU0sTUFBTSxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDbkMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEIsQ0FBQyxDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzFCLENBQUMsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELFVBQVUsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxLQUEwQixFQUFFLEVBQUU7SUFDbkQsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDbkMsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDNUIsQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDLENBQUM7QUFDRixVQUFVLENBQUMsS0FBSyxHQUFHLENBQUMsS0FBMkIsRUFBRSxFQUFFO0lBQ2xELElBQUksS0FBSyxFQUFFLENBQUM7UUFDWCxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDdkIsQ0FBQztTQUFNLENBQUM7UUFDUCxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDO0FBQ0YsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZWZmZWN0LCBJbmplY3Rvciwgc2lnbmFsLCB1bnRyYWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFzc2VydEluamVjdG9yIH0gZnJvbSAnbmd4dGVuc2lvbi9hc3NlcnQtaW5qZWN0b3InO1xuaW1wb3J0IHsgRm9udCwgRm9udExvYWRlciB9IGZyb20gJ3RocmVlLXN0ZGxpYic7XG5cbmV4cG9ydCB0eXBlIEdseXBoID0ge1xuXHRfY2FjaGVkT3V0bGluZTogc3RyaW5nW107XG5cdGhhOiBudW1iZXI7XG5cdG86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEZvbnREYXRhID0ge1xuXHRib3VuZGluZ0JveDoge1xuXHRcdHlNYXg6IG51bWJlcjtcblx0XHR5TWluOiBudW1iZXI7XG5cdH07XG5cdGZhbWlseU5hbWU6IHN0cmluZztcblx0Z2x5cGhzOiB7XG5cdFx0W2s6IHN0cmluZ106IEdseXBoO1xuXHR9O1xuXHRyZXNvbHV0aW9uOiBudW1iZXI7XG5cdHVuZGVybGluZVRoaWNrbmVzczogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgTmd0c0ZvbnRJbnB1dCA9IHN0cmluZyB8IEZvbnREYXRhO1xuXG5sZXQgZm9udExvYWRlcjogRm9udExvYWRlciB8IG51bGwgPSBudWxsO1xuXG5hc3luYyBmdW5jdGlvbiBsb2FkRm9udERhdGEoZm9udDogTmd0c0ZvbnRJbnB1dCk6IFByb21pc2U8Rm9udERhdGE+IHtcblx0cmV0dXJuIHR5cGVvZiBmb250ID09PSAnc3RyaW5nJyA/IGF3YWl0IChhd2FpdCBmZXRjaChmb250KSkuanNvbigpIDogZm9udDtcbn1cblxuZnVuY3Rpb24gcGFyc2VGb250RGF0YShmb250RGF0YTogRm9udERhdGEpIHtcblx0aWYgKCFmb250TG9hZGVyKSB7XG5cdFx0Zm9udExvYWRlciA9IG5ldyBGb250TG9hZGVyKCk7XG5cdH1cblx0cmV0dXJuIGZvbnRMb2FkZXIucGFyc2UoZm9udERhdGEpO1xufVxuXG5jb25zdCBjYWNoZSA9IG5ldyBNYXA8Tmd0c0ZvbnRJbnB1dCwgRm9udD4oKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdEZvbnQoaW5wdXQ6ICgpID0+IE5ndHNGb250SW5wdXQsIHsgaW5qZWN0b3IgfTogeyBpbmplY3Rvcj86IEluamVjdG9yIH0gPSB7fSkge1xuXHRyZXR1cm4gYXNzZXJ0SW5qZWN0b3IoaW5qZWN0Rm9udCwgaW5qZWN0b3IsICgpID0+IHtcblx0XHRjb25zdCBmb250ID0gc2lnbmFsPEZvbnQgfCBudWxsPihudWxsKTtcblxuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCBmb250SW5wdXQgPSBpbnB1dCgpO1xuXG5cdFx0XHRpZiAoY2FjaGUuaGFzKGZvbnRJbnB1dCkpIHtcblx0XHRcdFx0dW50cmFja2VkKCgpID0+IHtcblx0XHRcdFx0XHRmb250LnNldChjYWNoZS5nZXQoZm9udElucHV0KSBhcyBGb250KTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0bG9hZEZvbnREYXRhKGlucHV0KCkpLnRoZW4oKGRhdGEpID0+IHtcblx0XHRcdFx0Y29uc3QgcGFyc2VkID0gcGFyc2VGb250RGF0YShkYXRhKTtcblx0XHRcdFx0Y2FjaGUuc2V0KGZvbnRJbnB1dCwgcGFyc2VkKTtcblx0XHRcdFx0Zm9udC5zZXQocGFyc2VkKTtcblx0XHRcdH0pO1xuXHRcdH0pO1xuXG5cdFx0cmV0dXJuIGZvbnQuYXNSZWFkb25seSgpO1xuXHR9KTtcbn1cblxuaW5qZWN0Rm9udC5wcmVsb2FkID0gKGlucHV0OiAoKSA9PiBOZ3RzRm9udElucHV0KSA9PiB7XG5cdGxvYWRGb250RGF0YShpbnB1dCgpKS50aGVuKChkYXRhKSA9PiB7XG5cdFx0Y29uc3QgcGFyc2VkID0gcGFyc2VGb250RGF0YShkYXRhKTtcblx0XHRjYWNoZS5zZXQoaW5wdXQoKSwgcGFyc2VkKTtcblx0fSk7XG59O1xuaW5qZWN0Rm9udC5jbGVhciA9IChpbnB1dD86ICgpID0+IE5ndHNGb250SW5wdXQpID0+IHtcblx0aWYgKGlucHV0KSB7XG5cdFx0Y2FjaGUuZGVsZXRlKGlucHV0KCkpO1xuXHR9IGVsc2Uge1xuXHRcdGNhY2hlLmNsZWFyKCk7XG5cdH1cbn07XG4iXX0=
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { computed } from '@angular/core';
|
|
2
|
-
import { injectLoader } from 'angular-three';
|
|
3
|
-
import { assertInjector } from 'ngxtension/assert-injector';
|
|
4
|
-
import { DRACOLoader, GLTFLoader, MeshoptDecoder } from 'three-stdlib';
|
|
5
|
-
let dracoLoader = null;
|
|
6
|
-
let decoderPath = 'https://www.gstatic.com/draco/versioned/decoders/1.5.5/';
|
|
7
|
-
function _extensions(useDraco, useMeshOpt, extensions) {
|
|
8
|
-
return (loader) => {
|
|
9
|
-
if (extensions) {
|
|
10
|
-
extensions(loader);
|
|
11
|
-
}
|
|
12
|
-
if (useDraco) {
|
|
13
|
-
if (!dracoLoader) {
|
|
14
|
-
dracoLoader = new DRACOLoader();
|
|
15
|
-
}
|
|
16
|
-
dracoLoader.setDecoderPath(typeof useDraco === 'string' ? useDraco : decoderPath);
|
|
17
|
-
loader.setDRACOLoader(dracoLoader);
|
|
18
|
-
}
|
|
19
|
-
if (useMeshOpt) {
|
|
20
|
-
loader.setMeshoptDecoder(typeof MeshoptDecoder === 'function' ? MeshoptDecoder() : MeshoptDecoder);
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
function _injectGLTF(path, { useDraco = true, useMeshOpt = true, injector, extensions, onLoad, } = {}) {
|
|
25
|
-
return assertInjector(_injectGLTF, injector, () => {
|
|
26
|
-
const result = injectLoader(() => GLTFLoader, path, {
|
|
27
|
-
extensions: _extensions(useDraco, useMeshOpt, extensions),
|
|
28
|
-
// @ts-expect-error - we know the type of the data
|
|
29
|
-
onLoad,
|
|
30
|
-
});
|
|
31
|
-
Object.defineProperty(result, 'scene', {
|
|
32
|
-
value: computed(() => {
|
|
33
|
-
const gltf = result();
|
|
34
|
-
if (!gltf)
|
|
35
|
-
return null;
|
|
36
|
-
return gltf.scene;
|
|
37
|
-
}),
|
|
38
|
-
});
|
|
39
|
-
return result;
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
_injectGLTF.preload = (path, { useDraco = true, useMeshOpt = true, extensions, onLoad, } = {}) => {
|
|
43
|
-
injectLoader.preload(() => GLTFLoader, path, _extensions(useDraco, useMeshOpt, extensions),
|
|
44
|
-
// @ts-expect-error - we know the type of the data
|
|
45
|
-
onLoad);
|
|
46
|
-
};
|
|
47
|
-
_injectGLTF.setDecoderPath = (path) => {
|
|
48
|
-
decoderPath = path;
|
|
49
|
-
};
|
|
50
|
-
export const injectGLTF = _injectGLTF;
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2x0Zi1sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvbG9hZGVycy9zcmMvbGliL2dsdGYtbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQWtDLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsV0FBVyxFQUFRLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFN0UsSUFBSSxXQUFXLEdBQXVCLElBQUksQ0FBQztBQUMzQyxJQUFJLFdBQVcsR0FBRyx5REFBeUQsQ0FBQztBQUU1RSxTQUFTLFdBQVcsQ0FBQyxRQUEwQixFQUFFLFVBQW1CLEVBQUUsVUFBeUM7SUFDOUcsT0FBTyxDQUFDLE1BQWMsRUFBRSxFQUFFO1FBQ3pCLElBQUksVUFBVSxFQUFFLENBQUM7WUFDaEIsVUFBVSxDQUFDLE1BQW9CLENBQUMsQ0FBQztRQUNsQyxDQUFDO1FBRUQsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDbEIsV0FBVyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7WUFDakMsQ0FBQztZQUVELFdBQVcsQ0FBQyxjQUFjLENBQUMsT0FBTyxRQUFRLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2pGLE1BQXFCLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFDRCxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsTUFBcUIsQ0FBQyxpQkFBaUIsQ0FDdkMsT0FBTyxjQUFjLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUN4RSxDQUFDO1FBQ0gsQ0FBQztJQUNGLENBQUMsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FDbkIsSUFBZ0IsRUFDaEIsRUFDQyxRQUFRLEdBQUcsSUFBSSxFQUNmLFVBQVUsR0FBRyxJQUFJLEVBQ2pCLFFBQVEsRUFDUixVQUFVLEVBQ1YsTUFBTSxNQU9ILEVBQUU7SUFFTixPQUFPLGNBQWMsQ0FBQyxXQUFXLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRTtRQUNqRCxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRTtZQUNuRCxVQUFVLEVBQUUsV0FBVyxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFDO1lBQ3pELGtEQUFrRDtZQUNsRCxNQUFNO1NBQ04sQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFO1lBQ3RDLEtBQUssRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFO2dCQUNwQixNQUFNLElBQUksR0FBRyxNQUFNLEVBQXFCLENBQUM7Z0JBQ3pDLElBQUksQ0FBQyxJQUFJO29CQUFFLE9BQU8sSUFBSSxDQUFDO2dCQUN2QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDbkIsQ0FBQyxDQUFDO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLENBQUM7SUFDZixDQUFDLENBQXlHLENBQUM7QUFDNUcsQ0FBQztBQUVELFdBQVcsQ0FBQyxPQUFPLEdBQUcsQ0FDckIsSUFBZ0IsRUFDaEIsRUFDQyxRQUFRLEdBQUcsSUFBSSxFQUNmLFVBQVUsR0FBRyxJQUFJLEVBQ2pCLFVBQVUsRUFDVixNQUFNLE1BTUgsRUFBRSxFQUNMLEVBQUU7SUFDSCxZQUFZLENBQUMsT0FBTyxDQUNuQixHQUFHLEVBQUUsQ0FBQyxVQUFVLEVBQ2hCLElBQUksRUFDSixXQUFXLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQVE7SUFDcEQsa0RBQWtEO0lBQ2xELE1BQU0sQ0FDTixDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsV0FBVyxDQUFDLGNBQWMsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFO0lBQzdDLFdBQVcsR0FBRyxJQUFJLENBQUM7QUFDcEIsQ0FBQyxDQUFDO0FBR0YsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFtQixXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wdXRlZCwgSW5qZWN0b3IsIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0TG9hZGVyLCBOZ3RMb2FkZXJSZXN1bHRzLCBOZ3RPYmplY3RNYXAgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGFzc2VydEluamVjdG9yIH0gZnJvbSAnbmd4dGVuc2lvbi9hc3NlcnQtaW5qZWN0b3InO1xuaW1wb3J0IHsgTG9hZGVyIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgRFJBQ09Mb2FkZXIsIEdMVEYsIEdMVEZMb2FkZXIsIE1lc2hvcHREZWNvZGVyIH0gZnJvbSAndGhyZWUtc3RkbGliJztcblxubGV0IGRyYWNvTG9hZGVyOiBEUkFDT0xvYWRlciB8IG51bGwgPSBudWxsO1xubGV0IGRlY29kZXJQYXRoID0gJ2h0dHBzOi8vd3d3LmdzdGF0aWMuY29tL2RyYWNvL3ZlcnNpb25lZC9kZWNvZGVycy8xLjUuNS8nO1xuXG5mdW5jdGlvbiBfZXh0ZW5zaW9ucyh1c2VEcmFjbzogYm9vbGVhbiB8IHN0cmluZywgdXNlTWVzaE9wdDogYm9vbGVhbiwgZXh0ZW5zaW9ucz86IChsb2FkZXI6IEdMVEZMb2FkZXIpID0+IHZvaWQpIHtcblx0cmV0dXJuIChsb2FkZXI6IExvYWRlcikgPT4ge1xuXHRcdGlmIChleHRlbnNpb25zKSB7XG5cdFx0XHRleHRlbnNpb25zKGxvYWRlciBhcyBHTFRGTG9hZGVyKTtcblx0XHR9XG5cblx0XHRpZiAodXNlRHJhY28pIHtcblx0XHRcdGlmICghZHJhY29Mb2FkZXIpIHtcblx0XHRcdFx0ZHJhY29Mb2FkZXIgPSBuZXcgRFJBQ09Mb2FkZXIoKTtcblx0XHRcdH1cblxuXHRcdFx0ZHJhY29Mb2FkZXIuc2V0RGVjb2RlclBhdGgodHlwZW9mIHVzZURyYWNvID09PSAnc3RyaW5nJyA/IHVzZURyYWNvIDogZGVjb2RlclBhdGgpO1xuXHRcdFx0KGxvYWRlciBhcyBHTFRGTG9hZGVyKS5zZXREUkFDT0xvYWRlcihkcmFjb0xvYWRlcik7XG5cdFx0fVxuXHRcdGlmICh1c2VNZXNoT3B0KSB7XG5cdFx0XHQobG9hZGVyIGFzIEdMVEZMb2FkZXIpLnNldE1lc2hvcHREZWNvZGVyKFxuXHRcdFx0XHR0eXBlb2YgTWVzaG9wdERlY29kZXIgPT09ICdmdW5jdGlvbicgPyBNZXNob3B0RGVjb2RlcigpIDogTWVzaG9wdERlY29kZXIsXG5cdFx0XHQpO1xuXHRcdH1cblx0fTtcbn1cblxuZnVuY3Rpb24gX2luamVjdEdMVEY8VFVybCBleHRlbmRzIHN0cmluZyB8IHN0cmluZ1tdIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4oXG5cdHBhdGg6ICgpID0+IFRVcmwsXG5cdHtcblx0XHR1c2VEcmFjbyA9IHRydWUsXG5cdFx0dXNlTWVzaE9wdCA9IHRydWUsXG5cdFx0aW5qZWN0b3IsXG5cdFx0ZXh0ZW5zaW9ucyxcblx0XHRvbkxvYWQsXG5cdH06IHtcblx0XHR1c2VEcmFjbz86IGJvb2xlYW4gfCBzdHJpbmc7XG5cdFx0dXNlTWVzaE9wdD86IGJvb2xlYW47XG5cdFx0aW5qZWN0b3I/OiBJbmplY3Rvcjtcblx0XHRleHRlbnNpb25zPzogKGxvYWRlcjogR0xURkxvYWRlcikgPT4gdm9pZDtcblx0XHRvbkxvYWQ/OiAoZGF0YTogTmd0TG9hZGVyUmVzdWx0czxUVXJsLCBHTFRGICYgTmd0T2JqZWN0TWFwPikgPT4gdm9pZDtcblx0fSA9IHt9LFxuKTogU2lnbmFsPE5ndExvYWRlclJlc3VsdHM8VFVybCwgR0xURiAmIE5ndE9iamVjdE1hcD4gfCBudWxsPiAmIHsgc2NlbmU6IFNpZ25hbDxHTFRGWydzY2VuZSddIHwgbnVsbD4gfSB7XG5cdHJldHVybiBhc3NlcnRJbmplY3RvcihfaW5qZWN0R0xURiwgaW5qZWN0b3IsICgpID0+IHtcblx0XHRjb25zdCByZXN1bHQgPSBpbmplY3RMb2FkZXIoKCkgPT4gR0xURkxvYWRlciwgcGF0aCwge1xuXHRcdFx0ZXh0ZW5zaW9uczogX2V4dGVuc2lvbnModXNlRHJhY28sIHVzZU1lc2hPcHQsIGV4dGVuc2lvbnMpLFxuXHRcdFx0Ly8gQHRzLWV4cGVjdC1lcnJvciAtIHdlIGtub3cgdGhlIHR5cGUgb2YgdGhlIGRhdGFcblx0XHRcdG9uTG9hZCxcblx0XHR9KTtcblxuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyZXN1bHQsICdzY2VuZScsIHtcblx0XHRcdHZhbHVlOiBjb21wdXRlZCgoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IGdsdGYgPSByZXN1bHQoKSBhcyB1bmtub3duIGFzIEdMVEY7XG5cdFx0XHRcdGlmICghZ2x0ZikgcmV0dXJuIG51bGw7XG5cdFx0XHRcdHJldHVybiBnbHRmLnNjZW5lO1xuXHRcdFx0fSksXG5cdFx0fSk7XG5cblx0XHRyZXR1cm4gcmVzdWx0O1xuXHR9KSBhcyBTaWduYWw8Tmd0TG9hZGVyUmVzdWx0czxUVXJsLCBHTFRGICYgTmd0T2JqZWN0TWFwPiB8IG51bGw+ICYgeyBzY2VuZTogU2lnbmFsPEdMVEZbJ3NjZW5lJ10gfCBudWxsPiB9O1xufVxuXG5faW5qZWN0R0xURi5wcmVsb2FkID0gPFRVcmwgZXh0ZW5kcyBzdHJpbmcgfCBzdHJpbmdbXSB8IFJlY29yZDxzdHJpbmcsIHN0cmluZz4+KFxuXHRwYXRoOiAoKSA9PiBUVXJsLFxuXHR7XG5cdFx0dXNlRHJhY28gPSB0cnVlLFxuXHRcdHVzZU1lc2hPcHQgPSB0cnVlLFxuXHRcdGV4dGVuc2lvbnMsXG5cdFx0b25Mb2FkLFxuXHR9OiB7XG5cdFx0dXNlRHJhY28/OiBib29sZWFuIHwgc3RyaW5nO1xuXHRcdHVzZU1lc2hPcHQ/OiBib29sZWFuO1xuXHRcdGV4dGVuc2lvbnM/OiAobG9hZGVyOiBHTFRGTG9hZGVyKSA9PiB2b2lkO1xuXHRcdG9uTG9hZD86IChkYXRhOiBOZ3RMb2FkZXJSZXN1bHRzPFRVcmwsIEdMVEYgJiBOZ3RPYmplY3RNYXA+KSA9PiB2b2lkO1xuXHR9ID0ge30sXG4pID0+IHtcblx0aW5qZWN0TG9hZGVyLnByZWxvYWQoXG5cdFx0KCkgPT4gR0xURkxvYWRlcixcblx0XHRwYXRoLFxuXHRcdF9leHRlbnNpb25zKHVzZURyYWNvLCB1c2VNZXNoT3B0LCBleHRlbnNpb25zKSBhcyBhbnksXG5cdFx0Ly8gQHRzLWV4cGVjdC1lcnJvciAtIHdlIGtub3cgdGhlIHR5cGUgb2YgdGhlIGRhdGFcblx0XHRvbkxvYWQsXG5cdCk7XG59O1xuXG5faW5qZWN0R0xURi5zZXREZWNvZGVyUGF0aCA9IChwYXRoOiBzdHJpbmcpID0+IHtcblx0ZGVjb2RlclBhdGggPSBwYXRoO1xufTtcblxuZXhwb3J0IHR5cGUgTmd0c0dMVEZMb2FkZXIgPSB0eXBlb2YgX2luamVjdEdMVEY7XG5leHBvcnQgY29uc3QgaW5qZWN0R0xURjogTmd0c0dMVEZMb2FkZXIgPSBfaW5qZWN0R0xURjtcbiJdfQ==
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, computed, effect, input, signal, untracked, viewChild, } from '@angular/core';
|
|
2
|
-
import { pick } from 'angular-three';
|
|
3
|
-
import { mergeInputs } from 'ngxtension/inject-inputs';
|
|
4
|
-
import { injectProgress } from './progress';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
const defaultDataInterpolation = (p) => `Loading ${p.toFixed(2)}%`;
|
|
7
|
-
const defaultOptions = {
|
|
8
|
-
containerClass: '',
|
|
9
|
-
innerClass: '',
|
|
10
|
-
barClass: '',
|
|
11
|
-
dataClass: '',
|
|
12
|
-
dataInterpolation: defaultDataInterpolation,
|
|
13
|
-
initialState: (value) => value,
|
|
14
|
-
};
|
|
15
|
-
export class NgtsLoader {
|
|
16
|
-
constructor() {
|
|
17
|
-
this.progressState = injectProgress();
|
|
18
|
-
this.active = computed(() => this.progressState().active);
|
|
19
|
-
this.progress = computed(() => this.progressState().progress);
|
|
20
|
-
this.options = input(defaultOptions, { transform: mergeInputs(defaultOptions) });
|
|
21
|
-
this.containerClass = pick(this.options, 'containerClass');
|
|
22
|
-
this.innerClass = pick(this.options, 'innerClass');
|
|
23
|
-
this.barClass = pick(this.options, 'barClass');
|
|
24
|
-
this.dataClass = pick(this.options, 'dataClass');
|
|
25
|
-
this.initialState = pick(this.options, 'initialState');
|
|
26
|
-
this.dataInterpolation = pick(this.options, 'dataInterpolation');
|
|
27
|
-
this.progressSpanRef = viewChild('progressSpanRef');
|
|
28
|
-
this.shown = signal(this.initialState()(this.active()));
|
|
29
|
-
effect((onCleanup) => {
|
|
30
|
-
const [active, lastShown] = [this.active(), untracked(this.shown)];
|
|
31
|
-
if (lastShown !== active) {
|
|
32
|
-
const timeoutId = setTimeout(() => {
|
|
33
|
-
this.shown.set(active);
|
|
34
|
-
}, 300);
|
|
35
|
-
onCleanup(() => clearTimeout(timeoutId));
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
let progressRef = 0;
|
|
39
|
-
let rafId;
|
|
40
|
-
effect((onCleanup) => {
|
|
41
|
-
const [dataInterpolation, progress] = [this.dataInterpolation(), this.progress()];
|
|
42
|
-
const updateProgress = () => {
|
|
43
|
-
const progressSpan = this.progressSpanRef()?.nativeElement;
|
|
44
|
-
if (!progressSpan)
|
|
45
|
-
return;
|
|
46
|
-
progressRef += (progress - progressRef) / 2;
|
|
47
|
-
if (progressRef > 0.95 * progress || progress === 100)
|
|
48
|
-
progressRef = progress;
|
|
49
|
-
progressSpan.innerText = dataInterpolation(progressRef);
|
|
50
|
-
if (progressRef < progress) {
|
|
51
|
-
rafId = requestAnimationFrame(updateProgress);
|
|
52
|
-
}
|
|
53
|
-
};
|
|
54
|
-
updateProgress();
|
|
55
|
-
onCleanup(() => cancelAnimationFrame(rafId));
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsLoader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
59
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.11", type: NgtsLoader, isStandalone: true, selector: "ngts-loader", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "progressSpanRef", first: true, predicate: ["progressSpanRef"], descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
60
|
-
@if (shown()) {
|
|
61
|
-
<div
|
|
62
|
-
class="ngts-loader-container"
|
|
63
|
-
[class]="containerClass() || ''"
|
|
64
|
-
[style.--ngts-loader-container-opacity]="active() ? 1 : 0"
|
|
65
|
-
>
|
|
66
|
-
<div>
|
|
67
|
-
<div class="ngts-loader-inner" [class]="innerClass() || ''">
|
|
68
|
-
<div
|
|
69
|
-
class="ngts-loader-bar"
|
|
70
|
-
[class]="barClass() || ''"
|
|
71
|
-
[style.--ngts-loader-bar-scale]="progress() / 100"
|
|
72
|
-
></div>
|
|
73
|
-
<span #progressSpanRef class="ngts-loader-data" [class]="dataClass() || ''"></span>
|
|
74
|
-
</div>
|
|
75
|
-
</div>
|
|
76
|
-
</div>
|
|
77
|
-
}
|
|
78
|
-
`, isInline: true, styles: [".ngts-loader-container{--ngts-loader-container-opacity: 0;position:absolute;top:0;left:0;width:100%;height:100%;background:#171717;display:flex;align-items:center;justify-content:center;transition:opacity .3s ease;z-index:1000;opacity:var(--ngts-loader-container-opacity)}.ngts-loader-inner{width:100px;height:3px;background:#272727;text-align:center}.ngts-loader-bar{--ngts-loader-bar-scale: 0;height:3px;width:100px;background:#fff;transition:transform .2s;transform-origin:left center;transform:scaleX(var(--ngts-loader-bar-scale))}.ngts-loader-data{display:inline-block;position:relative;font-variant-numeric:tabular-nums;margin-top:.8em;color:#f0f0f0;font-size:.6em;font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,Helvetica Neue,Helvetica,Arial,Roboto,Ubuntu,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol;white-space:nowrap}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
79
|
-
}
|
|
80
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: NgtsLoader, decorators: [{
|
|
81
|
-
type: Component,
|
|
82
|
-
args: [{ selector: 'ngts-loader', standalone: true, template: `
|
|
83
|
-
@if (shown()) {
|
|
84
|
-
<div
|
|
85
|
-
class="ngts-loader-container"
|
|
86
|
-
[class]="containerClass() || ''"
|
|
87
|
-
[style.--ngts-loader-container-opacity]="active() ? 1 : 0"
|
|
88
|
-
>
|
|
89
|
-
<div>
|
|
90
|
-
<div class="ngts-loader-inner" [class]="innerClass() || ''">
|
|
91
|
-
<div
|
|
92
|
-
class="ngts-loader-bar"
|
|
93
|
-
[class]="barClass() || ''"
|
|
94
|
-
[style.--ngts-loader-bar-scale]="progress() / 100"
|
|
95
|
-
></div>
|
|
96
|
-
<span #progressSpanRef class="ngts-loader-data" [class]="dataClass() || ''"></span>
|
|
97
|
-
</div>
|
|
98
|
-
</div>
|
|
99
|
-
</div>
|
|
100
|
-
}
|
|
101
|
-
`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [".ngts-loader-container{--ngts-loader-container-opacity: 0;position:absolute;top:0;left:0;width:100%;height:100%;background:#171717;display:flex;align-items:center;justify-content:center;transition:opacity .3s ease;z-index:1000;opacity:var(--ngts-loader-container-opacity)}.ngts-loader-inner{width:100px;height:3px;background:#272727;text-align:center}.ngts-loader-bar{--ngts-loader-bar-scale: 0;height:3px;width:100px;background:#fff;transition:transform .2s;transform-origin:left center;transform:scaleX(var(--ngts-loader-bar-scale))}.ngts-loader-data{display:inline-block;position:relative;font-variant-numeric:tabular-nums;margin-top:.8em;color:#f0f0f0;font-size:.6em;font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,Helvetica Neue,Helvetica,Arial,Roboto,Ubuntu,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",Segoe UI Symbol;white-space:nowrap}\n"] }]
|
|
102
|
-
}], ctorParameters: () => [] });
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL2xvYWRlcnMvc3JjL2xpYi9sb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsUUFBUSxFQUNSLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQzs7QUFFNUMsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLENBQVMsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7QUFXM0UsTUFBTSxjQUFjLEdBQXNCO0lBQ3pDLGNBQWMsRUFBRSxFQUFFO0lBQ2xCLFVBQVUsRUFBRSxFQUFFO0lBQ2QsUUFBUSxFQUFFLEVBQUU7SUFDWixTQUFTLEVBQUUsRUFBRTtJQUNiLGlCQUFpQixFQUFFLHdCQUF3QjtJQUMzQyxZQUFZLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUs7Q0FDOUIsQ0FBQztBQTRCRixNQUFNLE9BQU8sVUFBVTtJQW1CdEI7UUFsQlEsa0JBQWEsR0FBRyxjQUFjLEVBQUUsQ0FBQztRQUV6QyxXQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNyRCxhQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV6RCxZQUFPLEdBQUcsS0FBSyxDQUFDLGNBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRTVFLG1CQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUN0RCxlQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDOUMsYUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzFDLGNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUM1QyxpQkFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ2xELHNCQUFpQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFFNUQsb0JBQWUsR0FBRyxTQUFTLENBQThCLGlCQUFpQixDQUFDLENBQUM7UUFFNUUsVUFBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUdsRCxNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNwQixNQUFNLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNuRSxJQUFJLFNBQVMsS0FBSyxNQUFNLEVBQUUsQ0FBQztnQkFDMUIsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDakMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3hCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDUixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDMUMsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLElBQUksS0FBK0MsQ0FBQztRQUNwRCxNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNwQixNQUFNLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUNsRixNQUFNLGNBQWMsR0FBRyxHQUFHLEVBQUU7Z0JBQzNCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxhQUFhLENBQUM7Z0JBQzNELElBQUksQ0FBQyxZQUFZO29CQUFFLE9BQU87Z0JBQzFCLFdBQVcsSUFBSSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzVDLElBQUksV0FBVyxHQUFHLElBQUksR0FBRyxRQUFRLElBQUksUUFBUSxLQUFLLEdBQUc7b0JBQUUsV0FBVyxHQUFHLFFBQVEsQ0FBQztnQkFDOUUsWUFBWSxDQUFDLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDeEQsSUFBSSxXQUFXLEdBQUcsUUFBUSxFQUFFLENBQUM7b0JBQzVCLEtBQUssR0FBRyxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDL0MsQ0FBQztZQUNGLENBQUMsQ0FBQztZQUNGLGNBQWMsRUFBRSxDQUFDO1lBQ2pCLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzsrR0EvQ1csVUFBVTttR0FBVixVQUFVLHFWQXZCWjs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW1CVDs7NEZBSVcsVUFBVTtrQkExQnRCLFNBQVM7K0JBQ0MsYUFBYSxjQUNYLElBQUksWUFDTjs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW1CVCxtQkFFZ0IsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdEVsZW1lbnRSZWYsXG5cdGNvbXB1dGVkLFxuXHRlZmZlY3QsXG5cdGlucHV0LFxuXHRzaWduYWwsXG5cdHVudHJhY2tlZCxcblx0dmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHBpY2sgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IG1lcmdlSW5wdXRzIH0gZnJvbSAnbmd4dGVuc2lvbi9pbmplY3QtaW5wdXRzJztcbmltcG9ydCB7IGluamVjdFByb2dyZXNzIH0gZnJvbSAnLi9wcm9ncmVzcyc7XG5cbmNvbnN0IGRlZmF1bHREYXRhSW50ZXJwb2xhdGlvbiA9IChwOiBudW1iZXIpID0+IGBMb2FkaW5nICR7cC50b0ZpeGVkKDIpfSVgO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5ndHNMb2FkZXJPcHRpb25zIHtcblx0Y29udGFpbmVyQ2xhc3M/OiBzdHJpbmc7XG5cdGlubmVyQ2xhc3M/OiBzdHJpbmc7XG5cdGJhckNsYXNzPzogc3RyaW5nO1xuXHRkYXRhQ2xhc3M/OiBzdHJpbmc7XG5cdGRhdGFJbnRlcnBvbGF0aW9uOiAodmFsdWU6IG51bWJlcikgPT4gc3RyaW5nO1xuXHRpbml0aWFsU3RhdGU6ICh2YWx1ZTogYm9vbGVhbikgPT4gYm9vbGVhbjtcbn1cblxuY29uc3QgZGVmYXVsdE9wdGlvbnM6IE5ndHNMb2FkZXJPcHRpb25zID0ge1xuXHRjb250YWluZXJDbGFzczogJycsXG5cdGlubmVyQ2xhc3M6ICcnLFxuXHRiYXJDbGFzczogJycsXG5cdGRhdGFDbGFzczogJycsXG5cdGRhdGFJbnRlcnBvbGF0aW9uOiBkZWZhdWx0RGF0YUludGVycG9sYXRpb24sXG5cdGluaXRpYWxTdGF0ZTogKHZhbHVlKSA9PiB2YWx1ZSxcbn07XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHMtbG9hZGVyJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHRAaWYgKHNob3duKCkpIHtcblx0XHRcdDxkaXZcblx0XHRcdFx0Y2xhc3M9XCJuZ3RzLWxvYWRlci1jb250YWluZXJcIlxuXHRcdFx0XHRbY2xhc3NdPVwiY29udGFpbmVyQ2xhc3MoKSB8fCAnJ1wiXG5cdFx0XHRcdFtzdHlsZS4tLW5ndHMtbG9hZGVyLWNvbnRhaW5lci1vcGFjaXR5XT1cImFjdGl2ZSgpID8gMSA6IDBcIlxuXHRcdFx0PlxuXHRcdFx0XHQ8ZGl2PlxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJuZ3RzLWxvYWRlci1pbm5lclwiIFtjbGFzc109XCJpbm5lckNsYXNzKCkgfHwgJydcIj5cblx0XHRcdFx0XHRcdDxkaXZcblx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJuZ3RzLWxvYWRlci1iYXJcIlxuXHRcdFx0XHRcdFx0XHRbY2xhc3NdPVwiYmFyQ2xhc3MoKSB8fCAnJ1wiXG5cdFx0XHRcdFx0XHRcdFtzdHlsZS4tLW5ndHMtbG9hZGVyLWJhci1zY2FsZV09XCJwcm9ncmVzcygpIC8gMTAwXCJcblx0XHRcdFx0XHRcdD48L2Rpdj5cblx0XHRcdFx0XHRcdDxzcGFuICNwcm9ncmVzc1NwYW5SZWYgY2xhc3M9XCJuZ3RzLWxvYWRlci1kYXRhXCIgW2NsYXNzXT1cImRhdGFDbGFzcygpIHx8ICcnXCI+PC9zcGFuPlxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdDwvZGl2PlxuXHRcdH1cblx0YCxcblx0c3R5bGVVcmxzOiBbJy4vbG9hZGVyLmNzcyddLFxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c0xvYWRlciB7XG5cdHByaXZhdGUgcHJvZ3Jlc3NTdGF0ZSA9IGluamVjdFByb2dyZXNzKCk7XG5cblx0YWN0aXZlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5wcm9ncmVzc1N0YXRlKCkuYWN0aXZlKTtcblx0cHJvZ3Jlc3MgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnByb2dyZXNzU3RhdGUoKS5wcm9ncmVzcyk7XG5cblx0b3B0aW9ucyA9IGlucHV0KGRlZmF1bHRPcHRpb25zLCB7IHRyYW5zZm9ybTogbWVyZ2VJbnB1dHMoZGVmYXVsdE9wdGlvbnMpIH0pO1xuXG5cdGNvbnRhaW5lckNsYXNzID0gcGljayh0aGlzLm9wdGlvbnMsICdjb250YWluZXJDbGFzcycpO1xuXHRpbm5lckNsYXNzID0gcGljayh0aGlzLm9wdGlvbnMsICdpbm5lckNsYXNzJyk7XG5cdGJhckNsYXNzID0gcGljayh0aGlzLm9wdGlvbnMsICdiYXJDbGFzcycpO1xuXHRkYXRhQ2xhc3MgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2RhdGFDbGFzcycpO1xuXHRpbml0aWFsU3RhdGUgPSBwaWNrKHRoaXMub3B0aW9ucywgJ2luaXRpYWxTdGF0ZScpO1xuXHRkYXRhSW50ZXJwb2xhdGlvbiA9IHBpY2sodGhpcy5vcHRpb25zLCAnZGF0YUludGVycG9sYXRpb24nKTtcblxuXHRwcm9ncmVzc1NwYW5SZWYgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxIVE1MU3BhbkVsZW1lbnQ+PigncHJvZ3Jlc3NTcGFuUmVmJyk7XG5cblx0c2hvd24gPSBzaWduYWwodGhpcy5pbml0aWFsU3RhdGUoKSh0aGlzLmFjdGl2ZSgpKSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IFthY3RpdmUsIGxhc3RTaG93bl0gPSBbdGhpcy5hY3RpdmUoKSwgdW50cmFja2VkKHRoaXMuc2hvd24pXTtcblx0XHRcdGlmIChsYXN0U2hvd24gIT09IGFjdGl2ZSkge1xuXHRcdFx0XHRjb25zdCB0aW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHR0aGlzLnNob3duLnNldChhY3RpdmUpO1xuXHRcdFx0XHR9LCAzMDApO1xuXHRcdFx0XHRvbkNsZWFudXAoKCkgPT4gY2xlYXJUaW1lb3V0KHRpbWVvdXRJZCkpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0bGV0IHByb2dyZXNzUmVmID0gMDtcblx0XHRsZXQgcmFmSWQ6IFJldHVyblR5cGU8dHlwZW9mIHJlcXVlc3RBbmltYXRpb25GcmFtZT47XG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IFtkYXRhSW50ZXJwb2xhdGlvbiwgcHJvZ3Jlc3NdID0gW3RoaXMuZGF0YUludGVycG9sYXRpb24oKSwgdGhpcy5wcm9ncmVzcygpXTtcblx0XHRcdGNvbnN0IHVwZGF0ZVByb2dyZXNzID0gKCkgPT4ge1xuXHRcdFx0XHRjb25zdCBwcm9ncmVzc1NwYW4gPSB0aGlzLnByb2dyZXNzU3BhblJlZigpPy5uYXRpdmVFbGVtZW50O1xuXHRcdFx0XHRpZiAoIXByb2dyZXNzU3BhbikgcmV0dXJuO1xuXHRcdFx0XHRwcm9ncmVzc1JlZiArPSAocHJvZ3Jlc3MgLSBwcm9ncmVzc1JlZikgLyAyO1xuXHRcdFx0XHRpZiAocHJvZ3Jlc3NSZWYgPiAwLjk1ICogcHJvZ3Jlc3MgfHwgcHJvZ3Jlc3MgPT09IDEwMCkgcHJvZ3Jlc3NSZWYgPSBwcm9ncmVzcztcblx0XHRcdFx0cHJvZ3Jlc3NTcGFuLmlubmVyVGV4dCA9IGRhdGFJbnRlcnBvbGF0aW9uKHByb2dyZXNzUmVmKTtcblx0XHRcdFx0aWYgKHByb2dyZXNzUmVmIDwgcHJvZ3Jlc3MpIHtcblx0XHRcdFx0XHRyYWZJZCA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSh1cGRhdGVQcm9ncmVzcyk7XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cdFx0XHR1cGRhdGVQcm9ncmVzcygpO1xuXHRcdFx0b25DbGVhbnVwKCgpID0+IGNhbmNlbEFuaW1hdGlvbkZyYW1lKHJhZklkKSk7XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectorRef, inject, signal, untracked } from '@angular/core';
|
|
2
|
-
import { assertInjector } from 'ngxtension/assert-injector';
|
|
3
|
-
import { DefaultLoadingManager } from 'three';
|
|
4
|
-
export function injectProgress(injector) {
|
|
5
|
-
return assertInjector(injectProgress, injector, () => {
|
|
6
|
-
const cdr = inject(ChangeDetectorRef);
|
|
7
|
-
const progress = signal({ errors: [], active: false, progress: 0, item: '', loaded: 0, total: 0 });
|
|
8
|
-
let saveLastTotalLoaded = 0;
|
|
9
|
-
DefaultLoadingManager.onStart = (item, loaded, total) => {
|
|
10
|
-
untracked(() => {
|
|
11
|
-
progress.update((prev) => ({
|
|
12
|
-
...prev,
|
|
13
|
-
active: true,
|
|
14
|
-
item,
|
|
15
|
-
loaded,
|
|
16
|
-
total,
|
|
17
|
-
progress: ((loaded - saveLastTotalLoaded) / (total - saveLastTotalLoaded)) * 100,
|
|
18
|
-
}));
|
|
19
|
-
});
|
|
20
|
-
cdr.detectChanges();
|
|
21
|
-
};
|
|
22
|
-
DefaultLoadingManager.onLoad = () => {
|
|
23
|
-
untracked(() => {
|
|
24
|
-
progress.update((prev) => ({ ...prev, active: false }));
|
|
25
|
-
});
|
|
26
|
-
cdr.detectChanges();
|
|
27
|
-
};
|
|
28
|
-
DefaultLoadingManager.onError = (url) => {
|
|
29
|
-
untracked(() => {
|
|
30
|
-
progress.update((prev) => ({ ...prev, errors: [...prev.errors, url] }));
|
|
31
|
-
});
|
|
32
|
-
cdr.detectChanges();
|
|
33
|
-
};
|
|
34
|
-
DefaultLoadingManager.onProgress = (item, loaded, total) => {
|
|
35
|
-
if (loaded === total)
|
|
36
|
-
saveLastTotalLoaded = total;
|
|
37
|
-
untracked(() => {
|
|
38
|
-
progress.update((prev) => ({
|
|
39
|
-
...prev,
|
|
40
|
-
item,
|
|
41
|
-
loaded,
|
|
42
|
-
total,
|
|
43
|
-
progress: ((loaded - saveLastTotalLoaded) / (total - saveLastTotalLoaded)) * 100 || 100,
|
|
44
|
-
}));
|
|
45
|
-
});
|
|
46
|
-
cdr.detectChanges();
|
|
47
|
-
};
|
|
48
|
-
return progress.asReadonly();
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvbG9hZGVycy9zcmMvbGliL3Byb2dyZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBWSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sT0FBTyxDQUFDO0FBRTlDLE1BQU0sVUFBVSxjQUFjLENBQUMsUUFBbUI7SUFDakQsT0FBTyxjQUFjLENBQUMsY0FBYyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUU7UUFDcEQsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFdEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQU9wQixFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUU5RSxJQUFJLG1CQUFtQixHQUFHLENBQUMsQ0FBQztRQUU1QixxQkFBcUIsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ3ZELFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDMUIsR0FBRyxJQUFJO29CQUNQLE1BQU0sRUFBRSxJQUFJO29CQUNaLElBQUk7b0JBQ0osTUFBTTtvQkFDTixLQUFLO29CQUNMLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxHQUFHLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsbUJBQW1CLENBQUMsQ0FBQyxHQUFHLEdBQUc7aUJBQ2hGLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7WUFFSCxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsQ0FBQyxDQUFDO1FBRUYscUJBQXFCLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRTtZQUNuQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNkLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3pELENBQUMsQ0FBQyxDQUFDO1lBQ0gsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLENBQUMsQ0FBQztRQUVGLHFCQUFxQixDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3ZDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN6RSxDQUFDLENBQUMsQ0FBQztZQUNILEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixDQUFDLENBQUM7UUFFRixxQkFBcUIsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQzFELElBQUksTUFBTSxLQUFLLEtBQUs7Z0JBQUUsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO1lBQ2xELFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDMUIsR0FBRyxJQUFJO29CQUNQLElBQUk7b0JBQ0osTUFBTTtvQkFDTixLQUFLO29CQUNMLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxHQUFHLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsbUJBQW1CLENBQUMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxHQUFHO2lCQUN2RixDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1lBRUgsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLENBQUMsQ0FBQztRQUVGLE9BQU8sUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzlCLENBQUMsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBJbmplY3RvciwgaW5qZWN0LCBzaWduYWwsIHVudHJhY2tlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYXNzZXJ0SW5qZWN0b3IgfSBmcm9tICduZ3h0ZW5zaW9uL2Fzc2VydC1pbmplY3Rvcic7XG5pbXBvcnQgeyBEZWZhdWx0TG9hZGluZ01hbmFnZXIgfSBmcm9tICd0aHJlZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RQcm9ncmVzcyhpbmplY3Rvcj86IEluamVjdG9yKSB7XG5cdHJldHVybiBhc3NlcnRJbmplY3RvcihpbmplY3RQcm9ncmVzcywgaW5qZWN0b3IsICgpID0+IHtcblx0XHRjb25zdCBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG5cdFx0Y29uc3QgcHJvZ3Jlc3MgPSBzaWduYWw8e1xuXHRcdFx0ZXJyb3JzOiBzdHJpbmdbXTtcblx0XHRcdGFjdGl2ZTogYm9vbGVhbjtcblx0XHRcdHByb2dyZXNzOiBudW1iZXI7XG5cdFx0XHRpdGVtOiBzdHJpbmc7XG5cdFx0XHRsb2FkZWQ6IG51bWJlcjtcblx0XHRcdHRvdGFsOiBudW1iZXI7XG5cdFx0fT4oeyBlcnJvcnM6IFtdLCBhY3RpdmU6IGZhbHNlLCBwcm9ncmVzczogMCwgaXRlbTogJycsIGxvYWRlZDogMCwgdG90YWw6IDAgfSk7XG5cblx0XHRsZXQgc2F2ZUxhc3RUb3RhbExvYWRlZCA9IDA7XG5cblx0XHREZWZhdWx0TG9hZGluZ01hbmFnZXIub25TdGFydCA9IChpdGVtLCBsb2FkZWQsIHRvdGFsKSA9PiB7XG5cdFx0XHR1bnRyYWNrZWQoKCkgPT4ge1xuXHRcdFx0XHRwcm9ncmVzcy51cGRhdGUoKHByZXYpID0+ICh7XG5cdFx0XHRcdFx0Li4ucHJldixcblx0XHRcdFx0XHRhY3RpdmU6IHRydWUsXG5cdFx0XHRcdFx0aXRlbSxcblx0XHRcdFx0XHRsb2FkZWQsXG5cdFx0XHRcdFx0dG90YWwsXG5cdFx0XHRcdFx0cHJvZ3Jlc3M6ICgobG9hZGVkIC0gc2F2ZUxhc3RUb3RhbExvYWRlZCkgLyAodG90YWwgLSBzYXZlTGFzdFRvdGFsTG9hZGVkKSkgKiAxMDAsXG5cdFx0XHRcdH0pKTtcblx0XHRcdH0pO1xuXG5cdFx0XHRjZHIuZGV0ZWN0Q2hhbmdlcygpO1xuXHRcdH07XG5cblx0XHREZWZhdWx0TG9hZGluZ01hbmFnZXIub25Mb2FkID0gKCkgPT4ge1xuXHRcdFx0dW50cmFja2VkKCgpID0+IHtcblx0XHRcdFx0cHJvZ3Jlc3MudXBkYXRlKChwcmV2KSA9PiAoeyAuLi5wcmV2LCBhY3RpdmU6IGZhbHNlIH0pKTtcblx0XHRcdH0pO1xuXHRcdFx0Y2RyLmRldGVjdENoYW5nZXMoKTtcblx0XHR9O1xuXG5cdFx0RGVmYXVsdExvYWRpbmdNYW5hZ2VyLm9uRXJyb3IgPSAodXJsKSA9PiB7XG5cdFx0XHR1bnRyYWNrZWQoKCkgPT4ge1xuXHRcdFx0XHRwcm9ncmVzcy51cGRhdGUoKHByZXYpID0+ICh7IC4uLnByZXYsIGVycm9yczogWy4uLnByZXYuZXJyb3JzLCB1cmxdIH0pKTtcblx0XHRcdH0pO1xuXHRcdFx0Y2RyLmRldGVjdENoYW5nZXMoKTtcblx0XHR9O1xuXG5cdFx0RGVmYXVsdExvYWRpbmdNYW5hZ2VyLm9uUHJvZ3Jlc3MgPSAoaXRlbSwgbG9hZGVkLCB0b3RhbCkgPT4ge1xuXHRcdFx0aWYgKGxvYWRlZCA9PT0gdG90YWwpIHNhdmVMYXN0VG90YWxMb2FkZWQgPSB0b3RhbDtcblx0XHRcdHVudHJhY2tlZCgoKSA9PiB7XG5cdFx0XHRcdHByb2dyZXNzLnVwZGF0ZSgocHJldikgPT4gKHtcblx0XHRcdFx0XHQuLi5wcmV2LFxuXHRcdFx0XHRcdGl0ZW0sXG5cdFx0XHRcdFx0bG9hZGVkLFxuXHRcdFx0XHRcdHRvdGFsLFxuXHRcdFx0XHRcdHByb2dyZXNzOiAoKGxvYWRlZCAtIHNhdmVMYXN0VG90YWxMb2FkZWQpIC8gKHRvdGFsIC0gc2F2ZUxhc3RUb3RhbExvYWRlZCkpICogMTAwIHx8IDEwMCxcblx0XHRcdFx0fSkpO1xuXHRcdFx0fSk7XG5cblx0XHRcdGNkci5kZXRlY3RDaGFuZ2VzKCk7XG5cdFx0fTtcblxuXHRcdHJldHVybiBwcm9ncmVzcy5hc1JlYWRvbmx5KCk7XG5cdH0pO1xufVxuIl19
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { effect } from '@angular/core';
|
|
2
|
-
import { injectLoader, injectStore } from 'angular-three';
|
|
3
|
-
import { assertInjector } from 'ngxtension/assert-injector';
|
|
4
|
-
import { Texture, TextureLoader } from 'three';
|
|
5
|
-
function _injectTexture(input, { onLoad, injector } = {}) {
|
|
6
|
-
return assertInjector(_injectTexture, injector, () => {
|
|
7
|
-
const store = injectStore();
|
|
8
|
-
const result = injectLoader(() => TextureLoader, input);
|
|
9
|
-
effect(() => {
|
|
10
|
-
const textures = result();
|
|
11
|
-
if (!textures)
|
|
12
|
-
return;
|
|
13
|
-
const gl = store.get('gl');
|
|
14
|
-
if ('initTexture' in gl) {
|
|
15
|
-
const array = Array.isArray(textures)
|
|
16
|
-
? textures
|
|
17
|
-
: textures instanceof Texture
|
|
18
|
-
? [textures]
|
|
19
|
-
: Object.values(textures);
|
|
20
|
-
if (onLoad)
|
|
21
|
-
onLoad(array);
|
|
22
|
-
array.forEach(gl.initTexture.bind(gl));
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
return result;
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
_injectTexture.preload = (input) => {
|
|
29
|
-
injectLoader.preload(() => TextureLoader, input);
|
|
30
|
-
};
|
|
31
|
-
export const injectTexture = _injectTexture;
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dHVyZS1sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvbG9hZGVycy9zcmMvbGliL3RleHR1cmUtbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFFL0MsU0FBUyxjQUFjLENBQ3RCLEtBQW1CLEVBQ25CLEVBQUUsTUFBTSxFQUFFLFFBQVEsS0FBcUUsRUFBRTtJQUV6RixPQUFPLGNBQWMsQ0FBQyxjQUFjLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRTtRQUNwRCxNQUFNLEtBQUssR0FBRyxXQUFXLEVBQUUsQ0FBQztRQUM1QixNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhELE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCxNQUFNLFFBQVEsR0FBRyxNQUFNLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsUUFBUTtnQkFBRSxPQUFPO1lBQ3RCLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0IsSUFBSSxhQUFhLElBQUksRUFBRSxFQUFFLENBQUM7Z0JBQ3pCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO29CQUNwQyxDQUFDLENBQUMsUUFBUTtvQkFDVixDQUFDLENBQUMsUUFBUSxZQUFZLE9BQU87d0JBQzVCLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQzt3QkFDWixDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDNUIsSUFBSSxNQUFNO29CQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDMUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3hDLENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sTUFBTSxDQUFDO0lBQ2YsQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsY0FBYyxDQUFDLE9BQU8sR0FBRyxDQUE0RCxLQUFtQixFQUFFLEVBQUU7SUFDM0csWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDbEQsQ0FBQyxDQUFDO0FBR0YsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFzQixjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlZmZlY3QsIEluamVjdG9yLCBTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGluamVjdExvYWRlciwgaW5qZWN0U3RvcmUsIE5ndExvYWRlclJlc3VsdHMgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGFzc2VydEluamVjdG9yIH0gZnJvbSAnbmd4dGVuc2lvbi9hc3NlcnQtaW5qZWN0b3InO1xuaW1wb3J0IHsgVGV4dHVyZSwgVGV4dHVyZUxvYWRlciB9IGZyb20gJ3RocmVlJztcblxuZnVuY3Rpb24gX2luamVjdFRleHR1cmU8VElucHV0IGV4dGVuZHMgc3RyaW5nW10gfCBzdHJpbmcgfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+Pihcblx0aW5wdXQ6ICgpID0+IFRJbnB1dCxcblx0eyBvbkxvYWQsIGluamVjdG9yIH06IHsgb25Mb2FkPzogKHRleHR1cmU6IFRleHR1cmVbXSkgPT4gdm9pZDsgaW5qZWN0b3I/OiBJbmplY3RvciB9ID0ge30sXG4pOiBTaWduYWw8Tmd0TG9hZGVyUmVzdWx0czxUSW5wdXQsIFRleHR1cmU+IHwgbnVsbD4ge1xuXHRyZXR1cm4gYXNzZXJ0SW5qZWN0b3IoX2luamVjdFRleHR1cmUsIGluamVjdG9yLCAoKSA9PiB7XG5cdFx0Y29uc3Qgc3RvcmUgPSBpbmplY3RTdG9yZSgpO1xuXHRcdGNvbnN0IHJlc3VsdCA9IGluamVjdExvYWRlcigoKSA9PiBUZXh0dXJlTG9hZGVyLCBpbnB1dCk7XG5cblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3QgdGV4dHVyZXMgPSByZXN1bHQoKTtcblx0XHRcdGlmICghdGV4dHVyZXMpIHJldHVybjtcblx0XHRcdGNvbnN0IGdsID0gc3RvcmUuZ2V0KCdnbCcpO1xuXHRcdFx0aWYgKCdpbml0VGV4dHVyZScgaW4gZ2wpIHtcblx0XHRcdFx0Y29uc3QgYXJyYXkgPSBBcnJheS5pc0FycmF5KHRleHR1cmVzKVxuXHRcdFx0XHRcdD8gdGV4dHVyZXNcblx0XHRcdFx0XHQ6IHRleHR1cmVzIGluc3RhbmNlb2YgVGV4dHVyZVxuXHRcdFx0XHRcdFx0PyBbdGV4dHVyZXNdXG5cdFx0XHRcdFx0XHQ6IE9iamVjdC52YWx1ZXModGV4dHVyZXMpO1xuXHRcdFx0XHRpZiAob25Mb2FkKSBvbkxvYWQoYXJyYXkpO1xuXHRcdFx0XHRhcnJheS5mb3JFYWNoKGdsLmluaXRUZXh0dXJlLmJpbmQoZ2wpKTtcblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdHJldHVybiByZXN1bHQ7XG5cdH0pO1xufVxuXG5faW5qZWN0VGV4dHVyZS5wcmVsb2FkID0gPFRJbnB1dCBleHRlbmRzIHN0cmluZ1tdIHwgc3RyaW5nIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4oaW5wdXQ6ICgpID0+IFRJbnB1dCkgPT4ge1xuXHRpbmplY3RMb2FkZXIucHJlbG9hZCgoKSA9PiBUZXh0dXJlTG9hZGVyLCBpbnB1dCk7XG59O1xuXG5leHBvcnQgdHlwZSBOZ3RzVGV4dHVyZUxvYWRlciA9IHR5cGVvZiBfaW5qZWN0VGV4dHVyZTtcbmV4cG9ydCBjb25zdCBpbmplY3RUZXh0dXJlOiBOZ3RzVGV4dHVyZUxvYWRlciA9IF9pbmplY3RUZXh0dXJlO1xuIl19
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './index';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci10aHJlZS1zb2JhLW1hdGVyaWFscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvc29iYS9tYXRlcmlhbHMvc3JjL2FuZ3VsYXItdGhyZWUtc29iYS1tYXRlcmlhbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export * from './lib/custom-shader-material';
|
|
2
|
-
export * from './lib/mesh-distort-material';
|
|
3
|
-
export * from './lib/mesh-portal-material';
|
|
4
|
-
export * from './lib/mesh-reflector-material';
|
|
5
|
-
export * from './lib/mesh-refraction-material';
|
|
6
|
-
export * from './lib/mesh-transmission-material';
|
|
7
|
-
export * from './lib/mesh-wobble-material';
|
|
8
|
-
export * from './lib/point-material';
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvbWF0ZXJpYWxzL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9jdXN0b20tc2hhZGVyLW1hdGVyaWFsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21lc2gtZGlzdG9ydC1tYXRlcmlhbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZXNoLXBvcnRhbC1tYXRlcmlhbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZXNoLXJlZmxlY3Rvci1tYXRlcmlhbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZXNoLXJlZnJhY3Rpb24tbWF0ZXJpYWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWVzaC10cmFuc21pc3Npb24tbWF0ZXJpYWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWVzaC13b2JibGUtbWF0ZXJpYWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcG9pbnQtbWF0ZXJpYWwnO1xuIl19
|