angular-three-soba 2.0.0-beta.230 → 2.0.0-beta.231

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.
@@ -1,10 +1,9 @@
1
- import { EventEmitter } from '@angular/core';
2
- import { type NgtVector3 } from 'angular-three';
3
- import type * as THREE from 'three';
1
+ import { NgtInjectedRef, NgtVector3 } from 'angular-three';
2
+ import { Camera, Event } from 'three';
4
3
  import { OrbitControls } from 'three-stdlib';
5
4
  import * as i0 from "@angular/core";
6
5
  export interface NgtsOrbitControlsState {
7
- camera?: THREE.Camera;
6
+ camera?: Camera;
8
7
  domElement?: HTMLElement;
9
8
  target?: NgtVector3;
10
9
  makeDefault: boolean;
@@ -21,19 +20,11 @@ declare global {
21
20
  }
22
21
  }
23
22
  export declare class NgtsOrbitControls {
24
- options: import("@angular/core").InputSignalWithTransform<{
25
- camera?: THREE.Camera | undefined;
26
- domElement?: HTMLElement | undefined;
27
- target?: NgtVector3 | undefined;
28
- makeDefault?: boolean | undefined;
29
- regress?: boolean | undefined;
30
- enableDamping?: boolean | undefined;
31
- keyEvents?: boolean | HTMLElement | undefined;
32
- }, Partial<NgtsOrbitControlsState>>;
33
- controlsRef: import("@angular/core").InputSignal<import("angular-three").NgtInjectedRef<OrbitControls>>;
34
- change: EventEmitter<THREE.Event<string, unknown>>;
35
- start: EventEmitter<THREE.Event<string, unknown>>;
36
- end: EventEmitter<THREE.Event<string, unknown>>;
23
+ options: import("@angular/core").InputSignalWithTransform<NgtsOrbitControlsState, Partial<NgtsOrbitControlsState>>;
24
+ controlsRef: import("@angular/core").InputSignal<NgtInjectedRef<OrbitControls>>;
25
+ changed: import("@angular/core").OutputEmitterRef<Event<string, unknown>>;
26
+ started: import("@angular/core").OutputEmitterRef<Event<string, unknown>>;
27
+ ended: import("@angular/core").OutputEmitterRef<Event<string, unknown>>;
37
28
  private store;
38
29
  private invalidate;
39
30
  private performanceRegress;
@@ -45,12 +36,12 @@ export declare class NgtsOrbitControls {
45
36
  private domElement;
46
37
  private makeDefault;
47
38
  protected args: import("@angular/core").Signal<OrbitControls[]>;
48
- protected enableDamping: import("@angular/core").Signal<boolean | undefined>;
39
+ protected enableDamping: import("@angular/core").Signal<boolean>;
49
40
  constructor();
50
41
  private setControls;
51
42
  private connectElement;
52
43
  private makeControlsDefault;
53
44
  private setEvents;
54
45
  static ɵfac: i0.ɵɵFactoryDeclaration<NgtsOrbitControls, never>;
55
- static ɵcmp: i0.ɵɵComponentDeclaration<NgtsOrbitControls, "ngts-orbit-controls", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "controlsRef": { "alias": "controlsRef"; "required": false; "isSignal": true; }; }, { "change": "change"; "start": "start"; "end": "end"; }, never, ["*"], true, never>;
46
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgtsOrbitControls, "ngts-orbit-controls", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "controlsRef": { "alias": "controlsRef"; "required": false; "isSignal": true; }; }, { "changed": "changed"; "started": "started"; "ended": "ended"; }, never, ["*"], true, never>;
56
47
  }
@@ -1,5 +1,6 @@
1
- import { Component, computed, CUSTOM_ELEMENTS_SCHEMA, effect, EventEmitter, input, Output } from '@angular/core';
1
+ import { Component, computed, CUSTOM_ELEMENTS_SCHEMA, effect, input, output } from '@angular/core';
2
2
  import { injectBeforeRender, injectNgtRef, injectNgtStore, NgtArgs, } from 'angular-three';
3
+ import { mergeInputs } from 'ngxtension/inject-inputs';
3
4
  import { OrbitControls } from 'three-stdlib';
4
5
  import * as i0 from "@angular/core";
5
6
  const defaultOptions = {
@@ -10,13 +11,11 @@ const defaultOptions = {
10
11
  };
11
12
  export class NgtsOrbitControls {
12
13
  constructor() {
13
- this.options = input(defaultOptions, {
14
- transform: (value) => ({ ...defaultOptions, ...value }),
15
- });
14
+ this.options = input(defaultOptions, { transform: mergeInputs(defaultOptions) });
16
15
  this.controlsRef = input(injectNgtRef());
17
- this.change = new EventEmitter();
18
- this.start = new EventEmitter();
19
- this.end = new EventEmitter();
16
+ this.changed = output();
17
+ this.started = output();
18
+ this.ended = output();
20
19
  this.store = injectNgtStore();
21
20
  this.invalidate = this.store.select('invalidate');
22
21
  this.performanceRegress = this.store.select('performance', 'regress');
@@ -42,10 +41,10 @@ export class NgtsOrbitControls {
42
41
  }
43
42
  setControls() {
44
43
  effect(() => {
45
- const [camera, defaultCamera, controls] = [this.camera(), this.defaultCamera(), this.controlsRef().nativeElement];
44
+ const [camera, defaultCamera, controlsRef] = [this.camera(), this.defaultCamera(), this.controlsRef()];
46
45
  const controlsCamera = camera || defaultCamera;
47
- if (!controls || controls.object !== controlsCamera) {
48
- this.controlsRef().nativeElement = new OrbitControls(controlsCamera);
46
+ if (!controlsRef.nativeElement || controlsRef.nativeElement.object !== controlsCamera) {
47
+ controlsRef.nativeElement = new OrbitControls(controlsCamera);
49
48
  }
50
49
  });
51
50
  }
@@ -95,33 +94,28 @@ export class NgtsOrbitControls {
95
94
  invalidate();
96
95
  if (regress)
97
96
  performanceRegress();
98
- if (this.change.observed)
99
- this.change.emit(e);
97
+ this.changed.emit(e);
100
98
  };
101
- const startCallback = this.start.observed ? this.start.emit.bind(this.start) : null;
102
- const endCallback = this.end.observed ? this.end.emit.bind(this.end) : null;
99
+ const startCallback = this.started.emit.bind(this.started);
100
+ const endCallback = this.ended.emit.bind(this.ended);
103
101
  controls.addEventListener('change', changeCallback);
104
- if (startCallback)
105
- controls.addEventListener('start', startCallback);
106
- if (endCallback)
107
- controls.addEventListener('end', endCallback);
102
+ controls.addEventListener('start', startCallback);
103
+ controls.addEventListener('end', endCallback);
108
104
  onCleanup(() => {
109
105
  controls.removeEventListener('change', changeCallback);
110
- if (startCallback)
111
- controls.removeEventListener('start', startCallback);
112
- if (endCallback)
113
- controls.removeEventListener('end', endCallback);
106
+ controls.removeEventListener('start', startCallback);
107
+ controls.removeEventListener('end', endCallback);
114
108
  });
115
109
  });
116
110
  }
117
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgtsOrbitControls, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
118
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.0", type: NgtsOrbitControls, isStandalone: true, selector: "ngts-orbit-controls", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, controlsRef: { classPropertyName: "controlsRef", publicName: "controlsRef", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { change: "change", start: "start", end: "end" }, ngImport: i0, template: `
111
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtsOrbitControls, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
112
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.3", type: NgtsOrbitControls, isStandalone: true, selector: "ngts-orbit-controls", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, controlsRef: { classPropertyName: "controlsRef", publicName: "controlsRef", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { changed: "changed", started: "started", ended: "ended" }, ngImport: i0, template: `
119
113
  <ngt-primitive ngtCompound *args="args()" [enableDamping]="enableDamping()">
120
114
  <ng-content />
121
115
  </ngt-primitive>
122
116
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }] }); }
123
117
  }
124
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgtsOrbitControls, decorators: [{
118
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtsOrbitControls, decorators: [{
125
119
  type: Component,
126
120
  args: [{
127
121
  selector: 'ngts-orbit-controls',
@@ -134,11 +128,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
134
128
  imports: [NgtArgs],
135
129
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
136
130
  }]
137
- }], ctorParameters: () => [], propDecorators: { change: [{
138
- type: Output
139
- }], start: [{
140
- type: Output
141
- }], end: [{
142
- type: Output
143
- }] } });
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JiaXQtY29udHJvbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvY29udHJvbHMvc3JjL29yYml0LWNvbnRyb2xzL29yYml0LWNvbnRyb2xzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQ04sa0JBQWtCLEVBQ2xCLFlBQVksRUFDWixjQUFjLEVBQ2QsT0FBTyxHQUdQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBcUI3QyxNQUFNLGNBQWMsR0FBb0M7SUFDdkQsYUFBYSxFQUFFLElBQUk7SUFDbkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxXQUFXLEVBQUUsS0FBSztJQUNsQixTQUFTLEVBQUUsS0FBSztDQUNoQixDQUFDO0FBYUYsTUFBTSxPQUFPLGlCQUFpQjtJQXlCN0I7UUF4QkEsWUFBTyxHQUFHLEtBQUssQ0FBQyxjQUFjLEVBQUU7WUFDL0IsU0FBUyxFQUFFLENBQUMsS0FBc0MsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsY0FBYyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUM7U0FDeEYsQ0FBQyxDQUFDO1FBQ0gsZ0JBQVcsR0FBRyxLQUFLLENBQUMsWUFBWSxFQUFpQixDQUFDLENBQUM7UUFFekMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFlLENBQUM7UUFDekMsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFlLENBQUM7UUFDeEMsUUFBRyxHQUFHLElBQUksWUFBWSxFQUFlLENBQUM7UUFFeEMsVUFBSyxHQUFHLGNBQWMsRUFBRSxDQUFDO1FBQ3pCLGVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FB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V0FBVztnQkFBRSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBRS9ELFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsUUFBUSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxjQUFjLENBQUMsQ0FBQztnQkFDdkQsSUFBSSxhQUFhO29CQUFFLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUM7Z0JBQ3hFLElBQUksV0FBVztvQkFBRSxRQUFRLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQ25FLENBQUMsQ0FBQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDOzhHQS9HVyxpQkFBaUI7a0dBQWpCLGlCQUFpQiw4WkFSbkI7Ozs7RUFJVCw0REFDUyxPQUFPOzsyRkFHTCxpQkFBaUI7a0JBWDdCLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7OztFQUlUO29CQUNELE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztvQkFDbEIsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ2pDO3dEQU9VLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU07Z0JBQ0csR0FBRztzQkFBWixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgZWZmZWN0LCBFdmVudEVtaXR0ZXIsIGlucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG5cdGluamVjdEJlZm9yZVJlbmRlcixcblx0aW5qZWN0Tmd0UmVmLFxuXHRpbmplY3ROZ3RTdG9yZSxcblx0Tmd0QXJncyxcblx0dHlwZSBOZ3RDYW1lcmEsXG5cdHR5cGUgTmd0VmVjdG9yMyxcbn0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgdHlwZSAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IE9yYml0Q29udHJvbHMgfSBmcm9tICd0aHJlZS1zdGRsaWInO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5ndHNPcmJpdENvbnRyb2xzU3RhdGUge1xuXHRjYW1lcmE/OiBUSFJFRS5DYW1lcmE7XG5cdGRvbUVsZW1lbnQ/OiBIVE1MRWxlbWVudDtcblx0dGFyZ2V0PzogTmd0VmVjdG9yMztcblx0bWFrZURlZmF1bHQ6IGJvb2xlYW47XG5cdHJlZ3Jlc3M6IGJvb2xlYW47XG5cdGVuYWJsZURhbXBpbmc6IGJvb2xlYW47XG5cdGtleUV2ZW50czogYm9vbGVhbiB8IEhUTUxFbGVtZW50O1xufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG5cdGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuXHRcdC8qKlxuXHRcdCAqIEBleHRlbmRzIHRocmVlLXN0ZGxpYnxPcmJpdENvbnRyb2xzXG5cdFx0ICovXG5cdFx0J25ndHMtb3JiaXQtY29udHJvbHMnOiBPcmJpdENvbnRyb2xzICYgTmd0c09yYml0Q29udHJvbHNTdGF0ZTtcblx0fVxufVxuXG5jb25zdCBkZWZhdWx0T3B0aW9uczogUGFydGlhbDxOZ3RzT3JiaXRDb250cm9sc1N0YXRlPiA9IHtcblx0ZW5hYmxlRGFtcGluZzogdHJ1ZSxcblx0cmVncmVzczogZmFsc2UsXG5cdG1ha2VEZWZhdWx0OiBmYWxzZSxcblx0a2V5RXZlbnRzOiBmYWxzZSxcbn07XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHMtb3JiaXQtY29udHJvbHMnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtcHJpbWl0aXZlIG5ndENvbXBvdW5kICphcmdzPVwiYXJncygpXCIgW2VuYWJsZURhbXBpbmddPVwiZW5hYmxlRGFtcGluZygpXCI+XG5cdFx0XHQ8bmctY29udGVudCAvPlxuXHRcdDwvbmd0LXByaW1pdGl2ZT5cblx0YCxcblx0aW1wb3J0czogW05ndEFyZ3NdLFxuXHRzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNPcmJpdENvbnRyb2xzIHtcblx0b3B0aW9ucyA9IGlucHV0KGRlZmF1bHRPcHRpb25zLCB7XG5cdFx0dHJhbnNmb3JtOiAodmFsdWU6IFBhcnRpYWw8Tmd0c09yYml0Q29udHJvbHNTdGF0ZT4pID0+ICh7IC4uLmRlZmF1bHRPcHRpb25zLCAuLi52YWx1ZSB9KSxcblx0fSk7XG5cdGNvbnRyb2xzUmVmID0gaW5wdXQoaW5qZWN0Tmd0UmVmPE9yYml0Q29udHJvbHM+KCkpO1xuXG5cdEBPdXRwdXQoKSBjaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFRIUkVFLkV2ZW50PigpO1xuXHRAT3V0cHV0KCkgc3RhcnQgPSBuZXcgRXZlbnRFbWl0dGVyPFRIUkVFLkV2ZW50PigpO1xuXHRAT3V0cHV0KCkgZW5kID0gbmV3IEV2ZW50RW1pdHRlcjxUSFJFRS5FdmVudD4oKTtcblxuXHRwcml2YXRlIHN0b3JlID0gaW5qZWN0Tmd0U3RvcmUoKTtcblx0cHJpdmF0ZSBpbnZhbGlkYXRlID0gdGhpcy5zdG9yZS5zZWxlY3QoJ2ludmFsaWRhdGUnKTtcblx0cHJpdmF0ZSBwZXJmb3JtYW5jZVJlZ3Jlc3MgPSB0aGlzLnN0b3JlLnNlbGVjdCgncGVyZm9ybWFuY2UnLCAncmVncmVzcycpO1xuXHRwcml2YXRlIGRlZmF1bHRDYW1lcmEgPSB0aGlzLnN0b3JlLnNlbGVjdCgnY2FtZXJhJyk7XG5cdHByaXZhdGUgZ2xEb21FbGVtZW50ID0gdGhpcy5zdG9yZS5zZWxlY3QoJ2dsJywgJ2RvbUVsZW1lbnQnKTtcblxuXHRwcml2YXRlIGNhbWVyYSA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3B0aW9ucygpLmNhbWVyYSk7XG5cdHByaXZhdGUgcmVncmVzcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3B0aW9ucygpLnJlZ3Jlc3MpO1xuXHRwcml2YXRlIGtleUV2ZW50cyA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3B0aW9ucygpLmtleUV2ZW50cyk7XG5cdHByaXZhdGUgZG9tRWxlbWVudCA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3B0aW9ucygpLmRvbUVsZW1lbnQpO1xuXHRwcml2YXRlIG1ha2VEZWZhdWx0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcHRpb25zKCkubWFrZURlZmF1bHQpO1xuXG5cdHByb3RlY3RlZCBhcmdzID0gY29tcHV0ZWQoKCkgPT4gW3RoaXMuY29udHJvbHNSZWYoKS5uYXRpdmVFbGVtZW50XSk7XG5cdHByb3RlY3RlZCBlbmFibGVEYW1waW5nID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcHRpb25zKCkuZW5hYmxlRGFtcGluZyk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0aW5qZWN0QmVmb3JlUmVuZGVyKFxuXHRcdFx0KCkgPT4ge1xuXHRcdFx0XHRjb25zdCBjb250cm9scyA9IHRoaXMuY29udHJvbHNSZWYoKS5uYXRpdmVFbGVtZW50O1xuXHRcdFx0XHRpZiAoY29udHJvbHM/LmVuYWJsZWQpIHtcblx0XHRcdFx0XHRjb250cm9scy51cGRhdGUoKTtcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHRcdHsgcHJpb3JpdHk6IC0xIH0sXG5cdFx0KTtcblxuXHRcdHRoaXMuc2V0Q29udHJvbHMoKTtcblx0XHR0aGlzLmNvbm5lY3RFbGVtZW50KCk7XG5cdFx0dGhpcy5tYWtlQ29udHJvbHNEZWZhdWx0KCk7XG5cdFx0dGhpcy5zZXRFdmVudHMoKTtcblx0fVxuXG5cdHByaXZhdGUgc2V0Q29udHJvbHMoKSB7XG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdGNvbnN0IFtjYW1lcmEsIGRlZmF1bHRDYW1lcmEsIGNvbnRyb2xzXSA9IFt0aGlzLmNhbWVyYSgpLCB0aGlzLmRlZmF1bHRDYW1lcmEoKSwgdGhpcy5jb250cm9sc1JlZigpLm5hdGl2ZUVsZW1lbnRdO1xuXHRcdFx0Y29uc3QgY29udHJvbHNDYW1lcmEgPSBjYW1lcmEgfHwgZGVmYXVsdENhbWVyYTtcblx0XHRcdGlmICghY29udHJvbHMgfHwgY29udHJvbHMub2JqZWN0ICE9PSBjb250cm9sc0NhbWVyYSkge1xuXHRcdFx0XHR0aGlzLmNvbnRyb2xzUmVmKCkubmF0aXZlRWxlbWVudCA9IG5ldyBPcmJpdENvbnRyb2xzKGNvbnRyb2xzQ2FtZXJhIGFzIE5ndENhbWVyYSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIGNvbm5lY3RFbGVtZW50KCkge1xuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBba2V5RXZlbnRzLCBkb21FbGVtZW50LCBjb250cm9sc10gPSBbXG5cdFx0XHRcdHRoaXMua2V5RXZlbnRzKCksXG5cdFx0XHRcdHRoaXMuZG9tRWxlbWVudCgpIHx8IHRoaXMuc3RvcmUuZ2V0KCdldmVudHMnLCAnY29ubmVjdGVkJykgfHwgdGhpcy5nbERvbUVsZW1lbnQoKSxcblx0XHRcdFx0dGhpcy5jb250cm9sc1JlZigpLm5hdGl2ZUVsZW1lbnQsXG5cdFx0XHRcdHRoaXMuaW52YWxpZGF0ZSgpLFxuXHRcdFx0XHR0aGlzLnJlZ3Jlc3MoKSxcblx0XHRcdF07XG5cdFx0XHRpZiAoIWNvbnRyb2xzKSByZXR1cm47XG5cdFx0XHRpZiAoa2V5RXZlbnRzKSB7XG5cdFx0XHRcdGNvbnRyb2xzLmNvbm5lY3Qoa2V5RXZlbnRzID09PSB0cnVlID8gZG9tRWxlbWVudCA6IGtleUV2ZW50cyk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRjb250cm9scy5jb25uZWN0KGRvbUVsZW1lbnQpO1xuXHRcdFx0fVxuXHRcdFx0b25DbGVhbnVwKCgpID0+IHZvaWQgY29udHJvbHMuZGlzcG9zZSgpKTtcblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgbWFrZUNvbnRyb2xzRGVmYXVsdCgpIHtcblx0XHRlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuXHRcdFx0Y29uc3QgW2NvbnRyb2xzLCBtYWtlRGVmYXVsdF0gPSBbdGhpcy5jb250cm9sc1JlZigpLm5hdGl2ZUVsZW1lbnQsIHRoaXMubWFrZURlZmF1bHQoKV07XG5cdFx0XHRpZiAoIWNvbnRyb2xzKSByZXR1cm47XG5cdFx0XHRpZiAobWFrZURlZmF1bHQpIHtcblx0XHRcdFx0Y29uc3Qgb2xkQ29udHJvbHMgPSB0aGlzLnN0b3JlLmdldCgnY29udHJvbHMnKTtcblx0XHRcdFx0dGhpcy5zdG9yZS51cGRhdGUoeyBjb250cm9scyB9KTtcblx0XHRcdFx0b25DbGVhbnVwKCgpID0+IHZvaWQgdGhpcy5zdG9yZS51cGRhdGUoeyBjb250cm9sczogb2xkQ29udHJvbHMgfSkpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBzZXRFdmVudHMoKSB7XG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IFtjb250cm9scywgaW52YWxpZGF0ZSwgcGVyZm9ybWFuY2VSZWdyZXNzLCByZWdyZXNzXSA9IFtcblx0XHRcdFx0dGhpcy5jb250cm9sc1JlZigpLm5hdGl2ZUVsZW1lbnQsXG5cdFx0XHRcdHRoaXMuaW52YWxpZGF0ZSgpLFxuXHRcdFx0XHR0aGlzLnBlcmZvcm1hbmNlUmVncmVzcygpLFxuXHRcdFx0XHR0aGlzLnJlZ3Jlc3MoKSxcblx0XHRcdF07XG5cdFx0XHRpZiAoIWNvbnRyb2xzKSByZXR1cm47XG5cdFx0XHRjb25zdCBjaGFuZ2VDYWxsYmFjazogKGU6IFRIUkVFLkV2ZW50KSA9PiB2b2lkID0gKGUpID0+IHtcblx0XHRcdFx0aW52YWxpZGF0ZSgpO1xuXHRcdFx0XHRpZiAocmVncmVzcykgcGVyZm9ybWFuY2VSZWdyZXNzKCk7XG5cdFx0XHRcdGlmICh0aGlzLmNoYW5nZS5vYnNlcnZlZCkgdGhpcy5jaGFuZ2UuZW1pdChlKTtcblx0XHRcdH07XG5cblx0XHRcdGNvbnN0IHN0YXJ0Q2FsbGJhY2sgPSB0aGlzLnN0YXJ0Lm9ic2VydmVkID8gdGhpcy5zdGFydC5lbWl0LmJpbmQodGhpcy5zdGFydCkgOiBudWxsO1xuXHRcdFx0Y29uc3QgZW5kQ2FsbGJhY2sgPSB0aGlzLmVuZC5vYnNlcnZlZCA/IHRoaXMuZW5kLmVtaXQuYmluZCh0aGlzLmVuZCkgOiBudWxsO1xuXG5cdFx0XHRjb250cm9scy5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBjaGFuZ2VDYWxsYmFjayk7XG5cdFx0XHRpZiAoc3RhcnRDYWxsYmFjaykgY29udHJvbHMuYWRkRXZlbnRMaXN0ZW5lcignc3RhcnQnLCBzdGFydENhbGxiYWNrKTtcblx0XHRcdGlmIChlbmRDYWxsYmFjaykgY29udHJvbHMuYWRkRXZlbnRMaXN0ZW5lcignZW5kJywgZW5kQ2FsbGJhY2spO1xuXG5cdFx0XHRvbkNsZWFudXAoKCkgPT4ge1xuXHRcdFx0XHRjb250cm9scy5yZW1vdmVFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBjaGFuZ2VDYWxsYmFjayk7XG5cdFx0XHRcdGlmIChzdGFydENhbGxiYWNrKSBjb250cm9scy5yZW1vdmVFdmVudExpc3RlbmVyKCdzdGFydCcsIHN0YXJ0Q2FsbGJhY2spO1xuXHRcdFx0XHRpZiAoZW5kQ2FsbGJhY2spIGNvbnRyb2xzLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2VuZCcsIGVuZENhbGxiYWNrKTtcblx0XHRcdH0pO1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=
131
+ }], ctorParameters: () => [] });
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JiaXQtY29udHJvbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvY29udHJvbHMvc3JjL29yYml0LWNvbnRyb2xzL29yYml0LWNvbnRyb2xzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25HLE9BQU8sRUFDTixrQkFBa0IsRUFDbEIsWUFBWSxFQUNaLGNBQWMsRUFDZCxPQUFPLEdBSVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBcUI3QyxNQUFNLGNBQWMsR0FBMkI7SUFDOUMsYUFBYSxFQUFFLElBQUk7SUFDbkIsT0FBTyxFQUFFLEtBQUs7SUFDZCxXQUFXLEVBQUUsS0FBSztJQUNsQixTQUFTLEVBQUUsS0FBSztDQUNoQixDQUFDO0FBYUYsTUFBTSxPQUFPLGlCQUFpQjtJQXVCN0I7UUF0QkEsWUFBTyxHQUFHLEtBQUssQ0FBQyxjQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1RSxnQkFBVyxHQUFHLEtBQUssQ0FBZ0MsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUVuRSxZQUFPLEdBQUcsTUFBTSxFQUFTLENBQUM7UUFDMUIsWUFBTyxHQUFHLE1BQU0sRUFBUyxDQUFDO1FBQzFCLFVBQUssR0FBRyxNQUFNLEVBQVMsQ0FBQztRQUVoQixVQUFLLEdBQUcsY0FBYyxFQUFFLENBQUM7UUFDekIsZUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzdDLHVCQUFrQixHQUFH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QUUsV0FBVyxDQUFDLENBQUM7WUFDbEQsQ0FBQyxDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBN0dXLGlCQUFpQjtrR0FBakIsaUJBQWlCLHdhQVJuQjs7OztFQUlULDREQUNTLE9BQU87OzJGQUdMLGlCQUFpQjtrQkFYN0IsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUscUJBQXFCO29CQUMvQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7O0VBSVQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO29CQUNsQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBlZmZlY3QsIGlucHV0LCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG5cdGluamVjdEJlZm9yZVJlbmRlcixcblx0aW5qZWN0Tmd0UmVmLFxuXHRpbmplY3ROZ3RTdG9yZSxcblx0Tmd0QXJncyxcblx0Tmd0Q2FtZXJhLFxuXHROZ3RJbmplY3RlZFJlZixcblx0Tmd0VmVjdG9yMyxcbn0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBtZXJnZUlucHV0cyB9IGZyb20gJ25neHRlbnNpb24vaW5qZWN0LWlucHV0cyc7XG5pbXBvcnQgeyBDYW1lcmEsIEV2ZW50IH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgT3JiaXRDb250cm9scyB9IGZyb20gJ3RocmVlLXN0ZGxpYic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0c09yYml0Q29udHJvbHNTdGF0ZSB7XG5cdGNhbWVyYT86IENhbWVyYTtcblx0ZG9tRWxlbWVudD86IEhUTUxFbGVtZW50O1xuXHR0YXJnZXQ/OiBOZ3RWZWN0b3IzO1xuXHRtYWtlRGVmYXVsdDogYm9vbGVhbjtcblx0cmVncmVzczogYm9vbGVhbjtcblx0ZW5hYmxlRGFtcGluZzogYm9vbGVhbjtcblx0a2V5RXZlbnRzOiBib29sZWFuIHwgSFRNTEVsZW1lbnQ7XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcblx0aW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG5cdFx0LyoqXG5cdFx0ICogQGV4dGVuZHMgdGhyZWUtc3RkbGlifE9yYml0Q29udHJvbHNcblx0XHQgKi9cblx0XHQnbmd0cy1vcmJpdC1jb250cm9scyc6IE9yYml0Q29udHJvbHMgJiBOZ3RzT3JiaXRDb250cm9sc1N0YXRlO1xuXHR9XG59XG5cbmNvbnN0IGRlZmF1bHRPcHRpb25zOiBOZ3RzT3JiaXRDb250cm9sc1N0YXRlID0ge1xuXHRlbmFibGVEYW1waW5nOiB0cnVlLFxuXHRyZWdyZXNzOiBmYWxzZSxcblx0bWFrZURlZmF1bHQ6IGZhbHNlLFxuXHRrZXlFdmVudHM6IGZhbHNlLFxufTtcblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnbmd0cy1vcmJpdC1jb250cm9scycsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5ndC1wcmltaXRpdmUgbmd0Q29tcG91bmQgKmFyZ3M9XCJhcmdzKClcIiBbZW5hYmxlRGFtcGluZ109XCJlbmFibGVEYW1waW5nKClcIj5cblx0XHRcdDxuZy1jb250ZW50IC8+XG5cdFx0PC9uZ3QtcHJpbWl0aXZlPlxuXHRgLFxuXHRpbXBvcnRzOiBbTmd0QXJnc10sXG5cdHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c09yYml0Q29udHJvbHMge1xuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdE9wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0T3B0aW9ucykgfSk7XG5cdGNvbnRyb2xzUmVmID0gaW5wdXQ8Tmd0SW5qZWN0ZWRSZWY8T3JiaXRDb250cm9scz4+KGluamVjdE5ndFJlZigpKTtcblxuXHRjaGFuZ2VkID0gb3V0cHV0PEV2ZW50PigpO1xuXHRzdGFydGVkID0gb3V0cHV0PEV2ZW50PigpO1xuXHRlbmRlZCA9IG91dHB1dDxFdmVudD4oKTtcblxuXHRwcml2YXRlIHN0b3JlID0gaW5qZWN0Tmd0U3RvcmUoKTtcblx0cHJpdmF0ZSBpbnZhbGlkYXRlID0gdGhpcy5zdG9yZS5zZWxlY3QoJ2ludmFsaWRhdGUnKTtcblx0cHJpdmF0ZSBwZXJmb3JtYW5jZVJlZ3Jlc3MgPSB0aGlzLnN0b3JlLnNlbGVjdCgncGVyZm9ybWFuY2UnLCAncmVncmVzcycpO1xuXHRwcml2YXRlIGRlZmF1bHRDYW1lcmEgPSB0aGlzLnN0b3JlLnNlbGVjdCgnY2FtZXJhJyk7XG5cdHByaXZhdGUgZ2xEb21FbGVtZW50ID0gdGhpcy5zdG9yZS5zZWxlY3QoJ2dsJywgJ2RvbUVsZW1lbnQnKTtcblxuXHRwcml2YXRlIGNhbWVyYSA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3B0aW9ucygpLmNhbWVyYSk7XG5cdHByaXZhdGUgcmVncmVzcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3B0aW9ucygpLnJlZ3Jlc3MpO1xuXHRwcml2YXRlIGtleUV2ZW50cyA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3B0aW9ucygpLmtleUV2ZW50cyk7XG5cdHByaXZhdGUgZG9tRWxlbWVudCA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3B0aW9ucygpLmRvbUVsZW1lbnQpO1xuXHRwcml2YXRlIG1ha2VEZWZhdWx0ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcHRpb25zKCkubWFrZURlZmF1bHQpO1xuXG5cdHByb3RlY3RlZCBhcmdzID0gY29tcHV0ZWQoKCkgPT4gW3RoaXMuY29udHJvbHNSZWYoKS5uYXRpdmVFbGVtZW50XSk7XG5cdHByb3RlY3RlZCBlbmFibGVEYW1waW5nID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcHRpb25zKCkuZW5hYmxlRGFtcGluZyk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0aW5qZWN0QmVmb3JlUmVuZGVyKFxuXHRcdFx0KCkgPT4ge1xuXHRcdFx0XHRjb25zdCBjb250cm9scyA9IHRoaXMuY29udHJvbHNSZWYoKS5uYXRpdmVFbGVtZW50O1xuXHRcdFx0XHRpZiAoY29udHJvbHM/LmVuYWJsZWQpIHtcblx0XHRcdFx0XHRjb250cm9scy51cGRhdGUoKTtcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHRcdHsgcHJpb3JpdHk6IC0xIH0sXG5cdFx0KTtcblxuXHRcdHRoaXMuc2V0Q29udHJvbHMoKTtcblx0XHR0aGlzLmNvbm5lY3RFbGVtZW50KCk7XG5cdFx0dGhpcy5tYWtlQ29udHJvbHNEZWZhdWx0KCk7XG5cdFx0dGhpcy5zZXRFdmVudHMoKTtcblx0fVxuXG5cdHByaXZhdGUgc2V0Q29udHJvbHMoKSB7XG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdGNvbnN0IFtjYW1lcmEsIGRlZmF1bHRDYW1lcmEsIGNvbnRyb2xzUmVmXSA9IFt0aGlzLmNhbWVyYSgpLCB0aGlzLmRlZmF1bHRDYW1lcmEoKSwgdGhpcy5jb250cm9sc1JlZigpXTtcblx0XHRcdGNvbnN0IGNvbnRyb2xzQ2FtZXJhID0gY2FtZXJhIHx8IGRlZmF1bHRDYW1lcmE7XG5cdFx0XHRpZiAoIWNvbnRyb2xzUmVmLm5hdGl2ZUVsZW1lbnQgfHwgY29udHJvbHNSZWYubmF0aXZlRWxlbWVudC5vYmplY3QgIT09IGNvbnRyb2xzQ2FtZXJhKSB7XG5cdFx0XHRcdGNvbnRyb2xzUmVmLm5hdGl2ZUVsZW1lbnQgPSBuZXcgT3JiaXRDb250cm9scyhjb250cm9sc0NhbWVyYSBhcyBOZ3RDYW1lcmEpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSBjb25uZWN0RWxlbWVudCgpIHtcblx0XHRlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuXHRcdFx0Y29uc3QgW2tleUV2ZW50cywgZG9tRWxlbWVudCwgY29udHJvbHNdID0gW1xuXHRcdFx0XHR0aGlzLmtleUV2ZW50cygpLFxuXHRcdFx0XHR0aGlzLmRvbUVsZW1lbnQoKSB8fCB0aGlzLnN0b3JlLmdldCgnZXZlbnRzJywgJ2Nvbm5lY3RlZCcpIHx8IHRoaXMuZ2xEb21FbGVtZW50KCksXG5cdFx0XHRcdHRoaXMuY29udHJvbHNSZWYoKS5uYXRpdmVFbGVtZW50LFxuXHRcdFx0XHR0aGlzLmludmFsaWRhdGUoKSxcblx0XHRcdFx0dGhpcy5yZWdyZXNzKCksXG5cdFx0XHRdO1xuXHRcdFx0aWYgKCFjb250cm9scykgcmV0dXJuO1xuXHRcdFx0aWYgKGtleUV2ZW50cykge1xuXHRcdFx0XHRjb250cm9scy5jb25uZWN0KGtleUV2ZW50cyA9PT0gdHJ1ZSA/IGRvbUVsZW1lbnQgOiBrZXlFdmVudHMpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Y29udHJvbHMuY29ubmVjdChkb21FbGVtZW50KTtcblx0XHRcdH1cblx0XHRcdG9uQ2xlYW51cCgoKSA9PiB2b2lkIGNvbnRyb2xzLmRpc3Bvc2UoKSk7XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIG1ha2VDb250cm9sc0RlZmF1bHQoKSB7XG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IFtjb250cm9scywgbWFrZURlZmF1bHRdID0gW3RoaXMuY29udHJvbHNSZWYoKS5uYXRpdmVFbGVtZW50LCB0aGlzLm1ha2VEZWZhdWx0KCldO1xuXHRcdFx0aWYgKCFjb250cm9scykgcmV0dXJuO1xuXHRcdFx0aWYgKG1ha2VEZWZhdWx0KSB7XG5cdFx0XHRcdGNvbnN0IG9sZENvbnRyb2xzID0gdGhpcy5zdG9yZS5nZXQoJ2NvbnRyb2xzJyk7XG5cdFx0XHRcdHRoaXMuc3RvcmUudXBkYXRlKHsgY29udHJvbHMgfSk7XG5cdFx0XHRcdG9uQ2xlYW51cCgoKSA9PiB2b2lkIHRoaXMuc3RvcmUudXBkYXRlKHsgY29udHJvbHM6IG9sZENvbnRyb2xzIH0pKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdHByaXZhdGUgc2V0RXZlbnRzKCkge1xuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBbY29udHJvbHMsIGludmFsaWRhdGUsIHBlcmZvcm1hbmNlUmVncmVzcywgcmVncmVzc10gPSBbXG5cdFx0XHRcdHRoaXMuY29udHJvbHNSZWYoKS5uYXRpdmVFbGVtZW50LFxuXHRcdFx0XHR0aGlzLmludmFsaWRhdGUoKSxcblx0XHRcdFx0dGhpcy5wZXJmb3JtYW5jZVJlZ3Jlc3MoKSxcblx0XHRcdFx0dGhpcy5yZWdyZXNzKCksXG5cdFx0XHRdO1xuXHRcdFx0aWYgKCFjb250cm9scykgcmV0dXJuO1xuXHRcdFx0Y29uc3QgY2hhbmdlQ2FsbGJhY2s6IChlOiBFdmVudCkgPT4gdm9pZCA9IChlKSA9PiB7XG5cdFx0XHRcdGludmFsaWRhdGUoKTtcblx0XHRcdFx0aWYgKHJlZ3Jlc3MpIHBlcmZvcm1hbmNlUmVncmVzcygpO1xuXHRcdFx0XHR0aGlzLmNoYW5nZWQuZW1pdChlKTtcblx0XHRcdH07XG5cblx0XHRcdGNvbnN0IHN0YXJ0Q2FsbGJhY2sgPSB0aGlzLnN0YXJ0ZWQuZW1pdC5iaW5kKHRoaXMuc3RhcnRlZCk7XG5cdFx0XHRjb25zdCBlbmRDYWxsYmFjayA9IHRoaXMuZW5kZWQuZW1pdC5iaW5kKHRoaXMuZW5kZWQpO1xuXG5cdFx0XHRjb250cm9scy5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBjaGFuZ2VDYWxsYmFjayk7XG5cdFx0XHRjb250cm9scy5hZGRFdmVudExpc3RlbmVyKCdzdGFydCcsIHN0YXJ0Q2FsbGJhY2spO1xuXHRcdFx0Y29udHJvbHMuYWRkRXZlbnRMaXN0ZW5lcignZW5kJywgZW5kQ2FsbGJhY2spO1xuXG5cdFx0XHRvbkNsZWFudXAoKCkgPT4ge1xuXHRcdFx0XHRjb250cm9scy5yZW1vdmVFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBjaGFuZ2VDYWxsYmFjayk7XG5cdFx0XHRcdGNvbnRyb2xzLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3N0YXJ0Jywgc3RhcnRDYWxsYmFjayk7XG5cdFx0XHRcdGNvbnRyb2xzLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2VuZCcsIGVuZENhbGxiYWNrKTtcblx0XHRcdH0pO1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=
@@ -21,10 +21,7 @@ function _extensions(useDraco, useMeshOpt, extensions) {
21
21
  };
22
22
  }
23
23
  function _injectNgtsGLTFLoader(path, { useDraco = true, useMeshOpt = true, injector, extensions, } = {}) {
24
- return assertInjector(_injectNgtsGLTFLoader, injector, () => injectNgtLoader(() => GLTFLoader, path, {
25
- // TODO: fix "as any" when three-stdlib is updated with THREE 0.156
26
- extensions: _extensions(useDraco, useMeshOpt, extensions),
27
- }));
24
+ return assertInjector(_injectNgtsGLTFLoader, injector, () => injectNgtLoader(() => GLTFLoader, path, { extensions: _extensions(useDraco, useMeshOpt, extensions) }));
28
25
  }
29
26
  _injectNgtsGLTFLoader.preload = (path, { useDraco = true, useMeshOpt = true, extensions, } = {}) => {
30
27
  injectNgtLoader.preload(() => GLTFLoader, path, _extensions(useDraco, useMeshOpt, extensions));
@@ -33,4 +30,4 @@ _injectNgtsGLTFLoader.setDecoderPath = (path) => {
33
30
  decoderPath = path;
34
31
  };
35
32
  export const injectNgtsGLTFLoader = _injectNgtsGLTFLoader;
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2x0Zi1sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvbG9hZGVycy9zcmMvZ2x0Zi1sb2FkZXIvZ2x0Zi1sb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGVBQWUsRUFBNEMsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTVELE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBYSxNQUFNLGNBQWMsQ0FBQztBQUVsRixJQUFJLFdBQVcsR0FBdUIsSUFBSSxDQUFDO0FBQzNDLElBQUksV0FBVyxHQUFHLHlEQUF5RCxDQUFDO0FBRTVFLFNBQVMsV0FBVyxDQUFDLFFBQTBCLEVBQUUsVUFBbUIsRUFBRSxVQUF5QztJQUM5RyxPQUFPLENBQUMsTUFBb0IsRUFBRSxFQUFFO1FBQy9CLElBQUksVUFBVSxFQUFFLENBQUM7WUFDaEIsVUFBVSxDQUFDLE1BQW9CLENBQUMsQ0FBQztRQUNsQyxDQUFDO1FBRUQsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDbEIsV0FBVyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7WUFDakMsQ0FBQztZQUVELFdBQVcsQ0FBQyxjQUFjLENBQUMsT0FBTyxRQUFRLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2pGLE1BQXFCLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFDRCxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsTUFBcUIsQ0FBQyxpQkFBaUIsQ0FDdkMsT0FBTyxjQUFjLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUN4RSxDQUFDO1FBQ0gsQ0FBQztJQUNGLENBQUMsQ0FBQztBQUNILENBQUM7QUFJRCxTQUFTLHFCQUFxQixDQUM3QixJQUFnQixFQUNoQixFQUNDLFFBQVEsR0FBRyxJQUFJLEVBQ2YsVUFBVSxHQUFHLElBQUksRUFDakIsUUFBUSxFQUNSLFVBQVUsTUFNUCxFQUFFO0lBRU4sT0FBTyxjQUFjLENBQUMscUJBQXFCLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUMzRCxlQUFlLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRTtRQUN2QyxtRUFBbUU7UUFDbkUsVUFBVSxFQUFFLFdBQVcsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQztLQUN6RCxDQUFDLENBQzRELENBQUM7QUFDakUsQ0FBQztBQUVELHFCQUFxQixDQUFDLE9BQU8sR0FBRyxDQUMvQixJQUFnQixFQUNoQixFQUNDLFFBQVEsR0FBRyxJQUFJLEVBQ2YsVUFBVSxHQUFHLElBQUksRUFDakIsVUFBVSxNQUtQLEVBQUUsRUFDTCxFQUFFO0lBQ0gsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLFdBQVcsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBUSxDQUFDLENBQUM7QUFDdkcsQ0FBQyxDQUFDO0FBRUYscUJBQXFCLENBQUMsY0FBYyxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUU7SUFDdkQsV0FBVyxHQUFHLElBQUksQ0FBQztBQUNwQixDQUFDLENBQUM7QUFHRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBbUIscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEluamVjdG9yLCBTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGluamVjdE5ndExvYWRlciwgdHlwZSBOZ3RMb2FkZXJSZXN1bHRzLCB0eXBlIE5ndE9iamVjdE1hcCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgYXNzZXJ0SW5qZWN0b3IgfSBmcm9tICduZ3h0ZW5zaW9uL2Fzc2VydC1pbmplY3Rvcic7XG5pbXBvcnQgdHlwZSAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IERSQUNPTG9hZGVyLCBHTFRGTG9hZGVyLCBNZXNob3B0RGVjb2RlciwgdHlwZSBHTFRGIH0gZnJvbSAndGhyZWUtc3RkbGliJztcblxubGV0IGRyYWNvTG9hZGVyOiBEUkFDT0xvYWRlciB8IG51bGwgPSBudWxsO1xubGV0IGRlY29kZXJQYXRoID0gJ2h0dHBzOi8vd3d3LmdzdGF0aWMuY29tL2RyYWNvL3ZlcnNpb25lZC9kZWNvZGVycy8xLjUuNS8nO1xuXG5mdW5jdGlvbiBfZXh0ZW5zaW9ucyh1c2VEcmFjbzogYm9vbGVhbiB8IHN0cmluZywgdXNlTWVzaE9wdDogYm9vbGVhbiwgZXh0ZW5zaW9ucz86IChsb2FkZXI6IEdMVEZMb2FkZXIpID0+IHZvaWQpIHtcblx0cmV0dXJuIChsb2FkZXI6IFRIUkVFLkxvYWRlcikgPT4ge1xuXHRcdGlmIChleHRlbnNpb25zKSB7XG5cdFx0XHRleHRlbnNpb25zKGxvYWRlciBhcyBHTFRGTG9hZGVyKTtcblx0XHR9XG5cblx0XHRpZiAodXNlRHJhY28pIHtcblx0XHRcdGlmICghZHJhY29Mb2FkZXIpIHtcblx0XHRcdFx0ZHJhY29Mb2FkZXIgPSBuZXcgRFJBQ09Mb2FkZXIoKTtcblx0XHRcdH1cblxuXHRcdFx0ZHJhY29Mb2FkZXIuc2V0RGVjb2RlclBhdGgodHlwZW9mIHVzZURyYWNvID09PSAnc3RyaW5nJyA/IHVzZURyYWNvIDogZGVjb2RlclBhdGgpO1xuXHRcdFx0KGxvYWRlciBhcyBHTFRGTG9hZGVyKS5zZXREUkFDT0xvYWRlcihkcmFjb0xvYWRlcik7XG5cdFx0fVxuXHRcdGlmICh1c2VNZXNoT3B0KSB7XG5cdFx0XHQobG9hZGVyIGFzIEdMVEZMb2FkZXIpLnNldE1lc2hvcHREZWNvZGVyKFxuXHRcdFx0XHR0eXBlb2YgTWVzaG9wdERlY29kZXIgPT09ICdmdW5jdGlvbicgPyBNZXNob3B0RGVjb2RlcigpIDogTWVzaG9wdERlY29kZXIsXG5cdFx0XHQpO1xuXHRcdH1cblx0fTtcbn1cblxuZXhwb3J0IHR5cGUgTmd0c0dMVEY8VCBleHRlbmRzIFBhcnRpYWw8Tmd0T2JqZWN0TWFwPj4gPSBHTFRGICYgTmd0T2JqZWN0TWFwICYgVDtcblxuZnVuY3Rpb24gX2luamVjdE5ndHNHTFRGTG9hZGVyPFRVcmwgZXh0ZW5kcyBzdHJpbmcgfCBzdHJpbmdbXSB8IFJlY29yZDxzdHJpbmcsIHN0cmluZz4+KFxuXHRwYXRoOiAoKSA9PiBUVXJsLFxuXHR7XG5cdFx0dXNlRHJhY28gPSB0cnVlLFxuXHRcdHVzZU1lc2hPcHQgPSB0cnVlLFxuXHRcdGluamVjdG9yLFxuXHRcdGV4dGVuc2lvbnMsXG5cdH06IHtcblx0XHR1c2VEcmFjbz86IGJvb2xlYW4gfCBzdHJpbmc7XG5cdFx0dXNlTWVzaE9wdD86IGJvb2xlYW47XG5cdFx0aW5qZWN0b3I/OiBJbmplY3Rvcjtcblx0XHRleHRlbnNpb25zPzogKGxvYWRlcjogR0xURkxvYWRlcikgPT4gdm9pZDtcblx0fSA9IHt9LFxuKTogU2lnbmFsPE5ndExvYWRlclJlc3VsdHM8VFVybCwgR0xURiAmIE5ndE9iamVjdE1hcD4gfCBudWxsPiB7XG5cdHJldHVybiBhc3NlcnRJbmplY3RvcihfaW5qZWN0Tmd0c0dMVEZMb2FkZXIsIGluamVjdG9yLCAoKSA9PlxuXHRcdGluamVjdE5ndExvYWRlcigoKSA9PiBHTFRGTG9hZGVyLCBwYXRoLCB7XG5cdFx0XHQvLyBUT0RPOiBmaXggXCJhcyBhbnlcIiB3aGVuIHRocmVlLXN0ZGxpYiBpcyB1cGRhdGVkIHdpdGggVEhSRUUgMC4xNTZcblx0XHRcdGV4dGVuc2lvbnM6IF9leHRlbnNpb25zKHVzZURyYWNvLCB1c2VNZXNoT3B0LCBleHRlbnNpb25zKSxcblx0XHR9KSxcblx0KSBhcyBTaWduYWw8Tmd0TG9hZGVyUmVzdWx0czxUVXJsLCBHTFRGICYgTmd0T2JqZWN0TWFwPiB8IG51bGw+O1xufVxuXG5faW5qZWN0Tmd0c0dMVEZMb2FkZXIucHJlbG9hZCA9IDxUVXJsIGV4dGVuZHMgc3RyaW5nIHwgc3RyaW5nW10gfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+Pihcblx0cGF0aDogKCkgPT4gVFVybCxcblx0e1xuXHRcdHVzZURyYWNvID0gdHJ1ZSxcblx0XHR1c2VNZXNoT3B0ID0gdHJ1ZSxcblx0XHRleHRlbnNpb25zLFxuXHR9OiB7XG5cdFx0dXNlRHJhY28/OiBib29sZWFuIHwgc3RyaW5nO1xuXHRcdHVzZU1lc2hPcHQ/OiBib29sZWFuO1xuXHRcdGV4dGVuc2lvbnM/OiAobG9hZGVyOiBHTFRGTG9hZGVyKSA9PiB2b2lkO1xuXHR9ID0ge30sXG4pID0+IHtcblx0aW5qZWN0Tmd0TG9hZGVyLnByZWxvYWQoKCkgPT4gR0xURkxvYWRlciwgcGF0aCwgX2V4dGVuc2lvbnModXNlRHJhY28sIHVzZU1lc2hPcHQsIGV4dGVuc2lvbnMpIGFzIGFueSk7XG59O1xuXG5faW5qZWN0Tmd0c0dMVEZMb2FkZXIuc2V0RGVjb2RlclBhdGggPSAocGF0aDogc3RyaW5nKSA9PiB7XG5cdGRlY29kZXJQYXRoID0gcGF0aDtcbn07XG5cbmV4cG9ydCB0eXBlIE5ndHNHTFRGTG9hZGVyID0gdHlwZW9mIF9pbmplY3ROZ3RzR0xURkxvYWRlcjtcbmV4cG9ydCBjb25zdCBpbmplY3ROZ3RzR0xURkxvYWRlcjogTmd0c0dMVEZMb2FkZXIgPSBfaW5qZWN0Tmd0c0dMVEZMb2FkZXI7XG4iXX0=
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2x0Zi1sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvbG9hZGVycy9zcmMvZ2x0Zi1sb2FkZXIvZ2x0Zi1sb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFrQyxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTVELE9BQU8sRUFBRSxXQUFXLEVBQVEsVUFBVSxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU3RSxJQUFJLFdBQVcsR0FBdUIsSUFBSSxDQUFDO0FBQzNDLElBQUksV0FBVyxHQUFHLHlEQUF5RCxDQUFDO0FBRTVFLFNBQVMsV0FBVyxDQUFDLFFBQTBCLEVBQUUsVUFBbUIsRUFBRSxVQUF5QztJQUM5RyxPQUFPLENBQUMsTUFBYyxFQUFFLEVBQUU7UUFDekIsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNoQixVQUFVLENBQUMsTUFBb0IsQ0FBQyxDQUFDO1FBQ2xDLENBQUM7UUFFRCxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2QsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNsQixXQUFXLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNqQyxDQUFDO1lBRUQsV0FBVyxDQUFDLGNBQWMsQ0FBQyxPQUFPLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDakYsTUFBcUIsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUNELElBQUksVUFBVSxFQUFFLENBQUM7WUFDZixNQUFxQixDQUFDLGlCQUFpQixDQUN2QyxPQUFPLGNBQWMsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQ3hFLENBQUM7UUFDSCxDQUFDO0lBQ0YsQ0FBQyxDQUFDO0FBQ0gsQ0FBQztBQUlELFNBQVMscUJBQXFCLENBQzdCLElBQWdCLEVBQ2hCLEVBQ0MsUUFBUSxHQUFHLElBQUksRUFDZixVQUFVLEdBQUcsSUFBSSxFQUNqQixRQUFRLEVBQ1IsVUFBVSxNQU1QLEVBQUU7SUFFTixPQUFPLGNBQWMsQ0FBQyxxQkFBcUIsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQzNELGVBQWUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLEVBQUUsVUFBVSxFQUFFLFdBQVcsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FDeEMsQ0FBQztBQUNqRSxDQUFDO0FBRUQscUJBQXFCLENBQUMsT0FBTyxHQUFHLENBQy9CLElBQWdCLEVBQ2hCLEVBQ0MsUUFBUSxHQUFHLElBQUksRUFDZixVQUFVLEdBQUcsSUFBSSxFQUNqQixVQUFVLE1BQzJGLEVBQUUsRUFDdkcsRUFBRTtJQUNILGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxXQUFXLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQVEsQ0FBQyxDQUFDO0FBQ3ZHLENBQUMsQ0FBQztBQUVGLHFCQUFxQixDQUFDLGNBQWMsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFO0lBQ3ZELFdBQVcsR0FBRyxJQUFJLENBQUM7QUFDcEIsQ0FBQyxDQUFDO0FBR0YsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQW1CLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0b3IsIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd0TG9hZGVyUmVzdWx0cywgTmd0T2JqZWN0TWFwLCBpbmplY3ROZ3RMb2FkZXIgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGFzc2VydEluamVjdG9yIH0gZnJvbSAnbmd4dGVuc2lvbi9hc3NlcnQtaW5qZWN0b3InO1xuaW1wb3J0IHsgTG9hZGVyIH0gZnJvbSAndGhyZWUnO1xuaW1wb3J0IHsgRFJBQ09Mb2FkZXIsIEdMVEYsIEdMVEZMb2FkZXIsIE1lc2hvcHREZWNvZGVyIH0gZnJvbSAndGhyZWUtc3RkbGliJztcblxubGV0IGRyYWNvTG9hZGVyOiBEUkFDT0xvYWRlciB8IG51bGwgPSBudWxsO1xubGV0IGRlY29kZXJQYXRoID0gJ2h0dHBzOi8vd3d3LmdzdGF0aWMuY29tL2RyYWNvL3ZlcnNpb25lZC9kZWNvZGVycy8xLjUuNS8nO1xuXG5mdW5jdGlvbiBfZXh0ZW5zaW9ucyh1c2VEcmFjbzogYm9vbGVhbiB8IHN0cmluZywgdXNlTWVzaE9wdDogYm9vbGVhbiwgZXh0ZW5zaW9ucz86IChsb2FkZXI6IEdMVEZMb2FkZXIpID0+IHZvaWQpIHtcblx0cmV0dXJuIChsb2FkZXI6IExvYWRlcikgPT4ge1xuXHRcdGlmIChleHRlbnNpb25zKSB7XG5cdFx0XHRleHRlbnNpb25zKGxvYWRlciBhcyBHTFRGTG9hZGVyKTtcblx0XHR9XG5cblx0XHRpZiAodXNlRHJhY28pIHtcblx0XHRcdGlmICghZHJhY29Mb2FkZXIpIHtcblx0XHRcdFx0ZHJhY29Mb2FkZXIgPSBuZXcgRFJBQ09Mb2FkZXIoKTtcblx0XHRcdH1cblxuXHRcdFx0ZHJhY29Mb2FkZXIuc2V0RGVjb2RlclBhdGgodHlwZW9mIHVzZURyYWNvID09PSAnc3RyaW5nJyA/IHVzZURyYWNvIDogZGVjb2RlclBhdGgpO1xuXHRcdFx0KGxvYWRlciBhcyBHTFRGTG9hZGVyKS5zZXREUkFDT0xvYWRlcihkcmFjb0xvYWRlcik7XG5cdFx0fVxuXHRcdGlmICh1c2VNZXNoT3B0KSB7XG5cdFx0XHQobG9hZGVyIGFzIEdMVEZMb2FkZXIpLnNldE1lc2hvcHREZWNvZGVyKFxuXHRcdFx0XHR0eXBlb2YgTWVzaG9wdERlY29kZXIgPT09ICdmdW5jdGlvbicgPyBNZXNob3B0RGVjb2RlcigpIDogTWVzaG9wdERlY29kZXIsXG5cdFx0XHQpO1xuXHRcdH1cblx0fTtcbn1cblxuZXhwb3J0IHR5cGUgTmd0c0dMVEY8VCBleHRlbmRzIFBhcnRpYWw8Tmd0T2JqZWN0TWFwPj4gPSBHTFRGICYgTmd0T2JqZWN0TWFwICYgVDtcblxuZnVuY3Rpb24gX2luamVjdE5ndHNHTFRGTG9hZGVyPFRVcmwgZXh0ZW5kcyBzdHJpbmcgfCBzdHJpbmdbXSB8IFJlY29yZDxzdHJpbmcsIHN0cmluZz4+KFxuXHRwYXRoOiAoKSA9PiBUVXJsLFxuXHR7XG5cdFx0dXNlRHJhY28gPSB0cnVlLFxuXHRcdHVzZU1lc2hPcHQgPSB0cnVlLFxuXHRcdGluamVjdG9yLFxuXHRcdGV4dGVuc2lvbnMsXG5cdH06IHtcblx0XHR1c2VEcmFjbz86IGJvb2xlYW4gfCBzdHJpbmc7XG5cdFx0dXNlTWVzaE9wdD86IGJvb2xlYW47XG5cdFx0aW5qZWN0b3I/OiBJbmplY3Rvcjtcblx0XHRleHRlbnNpb25zPzogKGxvYWRlcjogR0xURkxvYWRlcikgPT4gdm9pZDtcblx0fSA9IHt9LFxuKTogU2lnbmFsPE5ndExvYWRlclJlc3VsdHM8VFVybCwgR0xURiAmIE5ndE9iamVjdE1hcD4gfCBudWxsPiB7XG5cdHJldHVybiBhc3NlcnRJbmplY3RvcihfaW5qZWN0Tmd0c0dMVEZMb2FkZXIsIGluamVjdG9yLCAoKSA9PlxuXHRcdGluamVjdE5ndExvYWRlcigoKSA9PiBHTFRGTG9hZGVyLCBwYXRoLCB7IGV4dGVuc2lvbnM6IF9leHRlbnNpb25zKHVzZURyYWNvLCB1c2VNZXNoT3B0LCBleHRlbnNpb25zKSB9KSxcblx0KSBhcyBTaWduYWw8Tmd0TG9hZGVyUmVzdWx0czxUVXJsLCBHTFRGICYgTmd0T2JqZWN0TWFwPiB8IG51bGw+O1xufVxuXG5faW5qZWN0Tmd0c0dMVEZMb2FkZXIucHJlbG9hZCA9IDxUVXJsIGV4dGVuZHMgc3RyaW5nIHwgc3RyaW5nW10gfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+Pihcblx0cGF0aDogKCkgPT4gVFVybCxcblx0e1xuXHRcdHVzZURyYWNvID0gdHJ1ZSxcblx0XHR1c2VNZXNoT3B0ID0gdHJ1ZSxcblx0XHRleHRlbnNpb25zLFxuXHR9OiB7IHVzZURyYWNvPzogYm9vbGVhbiB8IHN0cmluZzsgdXNlTWVzaE9wdD86IGJvb2xlYW47IGV4dGVuc2lvbnM/OiAobG9hZGVyOiBHTFRGTG9hZGVyKSA9PiB2b2lkIH0gPSB7fSxcbikgPT4ge1xuXHRpbmplY3ROZ3RMb2FkZXIucHJlbG9hZCgoKSA9PiBHTFRGTG9hZGVyLCBwYXRoLCBfZXh0ZW5zaW9ucyh1c2VEcmFjbywgdXNlTWVzaE9wdCwgZXh0ZW5zaW9ucykgYXMgYW55KTtcbn07XG5cbl9pbmplY3ROZ3RzR0xURkxvYWRlci5zZXREZWNvZGVyUGF0aCA9IChwYXRoOiBzdHJpbmcpID0+IHtcblx0ZGVjb2RlclBhdGggPSBwYXRoO1xufTtcblxuZXhwb3J0IHR5cGUgTmd0c0dMVEZMb2FkZXIgPSB0eXBlb2YgX2luamVjdE5ndHNHTFRGTG9hZGVyO1xuZXhwb3J0IGNvbnN0IGluamVjdE5ndHNHTFRGTG9hZGVyOiBOZ3RzR0xURkxvYWRlciA9IF9pbmplY3ROZ3RzR0xURkxvYWRlcjtcbiJdfQ==
@@ -1,18 +1,28 @@
1
- import { ChangeDetectionStrategy, Component, ElementRef, computed, effect, input, signal, untracked, viewChild, } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, computed, effect, input, signal, untracked, viewChild, } from '@angular/core';
2
+ import { mergeInputs } from 'ngxtension/inject-inputs';
2
3
  import { injectNgtsProgress } from '../progress/progress';
3
4
  import * as i0 from "@angular/core";
4
5
  const defaultDataInterpolation = (p) => `Loading ${p.toFixed(2)}%`;
6
+ const defaultOptions = {
7
+ containerClass: '',
8
+ innerClass: '',
9
+ barClass: '',
10
+ dataClass: '',
11
+ dataInterpolation: defaultDataInterpolation,
12
+ initialState: (value) => value,
13
+ };
5
14
  export class NgtsLoader {
6
15
  constructor() {
7
16
  this.progressState = injectNgtsProgress();
8
17
  this.active = computed(() => this.progressState().active);
9
18
  this.progress = computed(() => this.progressState().progress);
10
- this.containerClass = input('');
11
- this.innerClass = input('');
12
- this.barClass = input('');
13
- this.dataClass = input('');
14
- this.dataInterpolation = input(defaultDataInterpolation);
15
- this.initialState = input((active) => active);
19
+ this.options = input(defaultOptions, { transform: mergeInputs(defaultOptions) });
20
+ this.containerClass = computed(() => this.options().containerClass);
21
+ this.innerClass = computed(() => this.options().innerClass);
22
+ this.barClass = computed(() => this.options().barClass);
23
+ this.dataClass = computed(() => this.options().dataClass);
24
+ this.initialState = computed(() => this.options().initialState);
25
+ this.dataInterpolation = computed(() => this.options().dataInterpolation);
16
26
  this.progressSpanRef = viewChild('progressSpanRef');
17
27
  this.shown = signal(this.initialState()(this.active()));
18
28
  this.setShown();
@@ -50,41 +60,49 @@ export class NgtsLoader {
50
60
  onCleanup(() => cancelAnimationFrame(rafId));
51
61
  });
52
62
  }
53
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgtsLoader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
54
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0", type: NgtsLoader, isStandalone: true, selector: "ngts-loader", inputs: { containerClass: { classPropertyName: "containerClass", publicName: "containerClass", isSignal: true, isRequired: false, transformFunction: null }, innerClass: { classPropertyName: "innerClass", publicName: "innerClass", isSignal: true, isRequired: false, transformFunction: null }, barClass: { classPropertyName: "barClass", publicName: "barClass", isSignal: true, isRequired: false, transformFunction: null }, dataClass: { classPropertyName: "dataClass", publicName: "dataClass", isSignal: true, isRequired: false, transformFunction: null }, dataInterpolation: { classPropertyName: "dataInterpolation", publicName: "dataInterpolation", isSignal: true, isRequired: false, transformFunction: null }, initialState: { classPropertyName: "initialState", publicName: "initialState", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "progressSpanRef", first: true, predicate: ["progressSpanRef"], descendants: true, isSignal: true }], ngImport: i0, template: `
63
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtsLoader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
64
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", 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: `
55
65
  @if (shown()) {
56
66
  <div
57
67
  class="ngts-loader-container"
58
- [class]="containerClass()"
68
+ [class]="containerClass() || ''"
59
69
  [style.--ngts-loader-container-opacity]="active() ? 1 : 0"
60
70
  >
61
71
  <div>
62
- <div class="ngts-loader-inner" [class]="innerClass()">
63
- <div class="ngts-loader-bar" [class]="barClass()" [style.--ngts-loader-bar-scale]="progress() / 100"></div>
64
- <span #progressSpanRef class="ngts-loader-data" [class]="dataClass()"></span>
72
+ <div class="ngts-loader-inner" [class]="innerClass() || ''">
73
+ <div
74
+ class="ngts-loader-bar"
75
+ [class]="barClass() || ''"
76
+ [style.--ngts-loader-bar-scale]="progress() / 100"
77
+ ></div>
78
+ <span #progressSpanRef class="ngts-loader-data" [class]="dataClass() || ''"></span>
65
79
  </div>
66
80
  </div>
67
81
  </div>
68
82
  }
69
83
  `, 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 }); }
70
84
  }
71
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgtsLoader, decorators: [{
85
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtsLoader, decorators: [{
72
86
  type: Component,
73
87
  args: [{ selector: 'ngts-loader', standalone: true, template: `
74
88
  @if (shown()) {
75
89
  <div
76
90
  class="ngts-loader-container"
77
- [class]="containerClass()"
91
+ [class]="containerClass() || ''"
78
92
  [style.--ngts-loader-container-opacity]="active() ? 1 : 0"
79
93
  >
80
94
  <div>
81
- <div class="ngts-loader-inner" [class]="innerClass()">
82
- <div class="ngts-loader-bar" [class]="barClass()" [style.--ngts-loader-bar-scale]="progress() / 100"></div>
83
- <span #progressSpanRef class="ngts-loader-data" [class]="dataClass()"></span>
95
+ <div class="ngts-loader-inner" [class]="innerClass() || ''">
96
+ <div
97
+ class="ngts-loader-bar"
98
+ [class]="barClass() || ''"
99
+ [style.--ngts-loader-bar-scale]="progress() / 100"
100
+ ></div>
101
+ <span #progressSpanRef class="ngts-loader-data" [class]="dataClass() || ''"></span>
84
102
  </div>
85
103
  </div>
86
104
  </div>
87
105
  }
88
106
  `, 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"] }]
89
107
  }], ctorParameters: () => [] });
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL2xvYWRlcnMvc3JjL2xvYWRlci9sb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFFBQVEsRUFDUixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQUUxRCxNQUFNLHdCQUF3QixHQUFHLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztBQXdCM0UsTUFBTSxPQUFPLFVBQVU7SUFpQnRCO1FBaEJRLGtCQUFhLEdBQUcsa0JBQWtCLEVBQUUsQ0FBQztRQUU3QyxXQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNyRCxhQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV6RCxtQkFBYyxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUNuQyxlQUFVLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQy9CLGFBQVEsR0FBRyxLQUFLLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDN0IsY0FBUyxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUM5QixzQkFBaUIsR0FBRyxLQUFLLENBQTRCLHdCQUF3QixDQUFDLENBQUM7UUFDL0UsaUJBQVksR0FBRyxLQUFLLENBQThCLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV0RSxvQkFBZSxHQUFHLFNBQVMsQ0FBOEIsaUJBQWlCLENBQUMsQ0FBQztRQUU1RSxVQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBR2xELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVPLFFBQVE7UUFDZixNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNwQixNQUFNLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNuRSxJQUFJLFNBQVMsS0FBSyxNQUFNLEVBQUUsQ0FBQztnQkFDMUIsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDakMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3hCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDUixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDMUMsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVPLGNBQWM7UUFDckIsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLElBQUksS0FBK0MsQ0FBQztRQUVwRCxNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNwQixNQUFNLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUNsRixNQUFNLGNBQWMsR0FBRyxHQUFHLEVBQUU7Z0JBQzNCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxhQUFhLENBQUM7Z0JBQzNELElBQUksQ0FBQyxZQUFZO29CQUFFLE9BQU87Z0JBQzFCLFdBQVcsSUFBSSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzVDLElBQUksV0FBVyxHQUFHLElBQUksR0FBRyxRQUFRLElBQUksUUFBUSxLQUFLLEdBQUc7b0JBQUUsV0FBVyxHQUFHLFFBQVEsQ0FBQztnQkFDOUUsWUFBWSxDQUFDLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDeEQsSUFBSSxXQUFXLEdBQUcsUUFBUSxFQUFFLENBQUM7b0JBQzVCLEtBQUssR0FBRyxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDL0MsQ0FBQztZQUNGLENBQUMsQ0FBQztZQUNGLGNBQWMsRUFBRSxDQUFDO1lBQ2pCLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs4R0FyRFcsVUFBVTtrR0FBVixVQUFVLCtoQ0FuQlo7Ozs7Ozs7Ozs7Ozs7OztFQWVUOzsyRkFJVyxVQUFVO2tCQXRCdEIsU0FBUzsrQkFDQyxhQUFhLGNBQ1gsSUFBSSxZQUNOOzs7Ozs7Ozs7Ozs7Ozs7RUFlVCxtQkFFZ0IsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdEVsZW1lbnRSZWYsXG5cdGNvbXB1dGVkLFxuXHRlZmZlY3QsXG5cdGlucHV0LFxuXHRzaWduYWwsXG5cdHVudHJhY2tlZCxcblx0dmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGluamVjdE5ndHNQcm9ncmVzcyB9IGZyb20gJy4uL3Byb2dyZXNzL3Byb2dyZXNzJztcblxuY29uc3QgZGVmYXVsdERhdGFJbnRlcnBvbGF0aW9uID0gKHA6IG51bWJlcikgPT4gYExvYWRpbmcgJHtwLnRvRml4ZWQoMil9JWA7XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHMtbG9hZGVyJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0dGVtcGxhdGU6IGBcblx0XHRAaWYgKHNob3duKCkpIHtcblx0XHRcdDxkaXZcblx0XHRcdFx0Y2xhc3M9XCJuZ3RzLWxvYWRlci1jb250YWluZXJcIlxuXHRcdFx0XHRbY2xhc3NdPVwiY29udGFpbmVyQ2xhc3MoKVwiXG5cdFx0XHRcdFtzdHlsZS4tLW5ndHMtbG9hZGVyLWNvbnRhaW5lci1vcGFjaXR5XT1cImFjdGl2ZSgpID8gMSA6IDBcIlxuXHRcdFx0PlxuXHRcdFx0XHQ8ZGl2PlxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJuZ3RzLWxvYWRlci1pbm5lclwiIFtjbGFzc109XCJpbm5lckNsYXNzKClcIj5cblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJuZ3RzLWxvYWRlci1iYXJcIiBbY2xhc3NdPVwiYmFyQ2xhc3MoKVwiIFtzdHlsZS4tLW5ndHMtbG9hZGVyLWJhci1zY2FsZV09XCJwcm9ncmVzcygpIC8gMTAwXCI+PC9kaXY+XG5cdFx0XHRcdFx0XHQ8c3BhbiAjcHJvZ3Jlc3NTcGFuUmVmIGNsYXNzPVwibmd0cy1sb2FkZXItZGF0YVwiIFtjbGFzc109XCJkYXRhQ2xhc3MoKVwiPjwvc3Bhbj5cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQ8L2Rpdj5cblx0XHR9XG5cdGAsXG5cdHN0eWxlVXJsczogWycuL2xvYWRlci5jc3MnXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNMb2FkZXIge1xuXHRwcml2YXRlIHByb2dyZXNzU3RhdGUgPSBpbmplY3ROZ3RzUHJvZ3Jlc3MoKTtcblxuXHRhY3RpdmUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnByb2dyZXNzU3RhdGUoKS5hY3RpdmUpO1xuXHRwcm9ncmVzcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMucHJvZ3Jlc3NTdGF0ZSgpLnByb2dyZXNzKTtcblxuXHRjb250YWluZXJDbGFzcyA9IGlucHV0PHN0cmluZz4oJycpO1xuXHRpbm5lckNsYXNzID0gaW5wdXQ8c3RyaW5nPignJyk7XG5cdGJhckNsYXNzID0gaW5wdXQ8c3RyaW5nPignJyk7XG5cdGRhdGFDbGFzcyA9IGlucHV0PHN0cmluZz4oJycpO1xuXHRkYXRhSW50ZXJwb2xhdGlvbiA9IGlucHV0PCh2YWx1ZTogbnVtYmVyKSA9PiBzdHJpbmc+KGRlZmF1bHREYXRhSW50ZXJwb2xhdGlvbik7XG5cdGluaXRpYWxTdGF0ZSA9IGlucHV0PCh2YWx1ZTogYm9vbGVhbikgPT4gYm9vbGVhbj4oKGFjdGl2ZSkgPT4gYWN0aXZlKTtcblxuXHRwcm9ncmVzc1NwYW5SZWYgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxIVE1MU3BhbkVsZW1lbnQ+PigncHJvZ3Jlc3NTcGFuUmVmJyk7XG5cblx0c2hvd24gPSBzaWduYWwodGhpcy5pbml0aWFsU3RhdGUoKSh0aGlzLmFjdGl2ZSgpKSk7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0dGhpcy5zZXRTaG93bigpO1xuXHRcdHRoaXMudXBkYXRlUHJvZ3Jlc3MoKTtcblx0fVxuXG5cdHByaXZhdGUgc2V0U2hvd24oKSB7XG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IFthY3RpdmUsIGxhc3RTaG93bl0gPSBbdGhpcy5hY3RpdmUoKSwgdW50cmFja2VkKHRoaXMuc2hvd24pXTtcblx0XHRcdGlmIChsYXN0U2hvd24gIT09IGFjdGl2ZSkge1xuXHRcdFx0XHRjb25zdCB0aW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHR0aGlzLnNob3duLnNldChhY3RpdmUpO1xuXHRcdFx0XHR9LCAzMDApO1xuXHRcdFx0XHRvbkNsZWFudXAoKCkgPT4gY2xlYXJUaW1lb3V0KHRpbWVvdXRJZCkpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0cHJpdmF0ZSB1cGRhdGVQcm9ncmVzcygpIHtcblx0XHRsZXQgcHJvZ3Jlc3NSZWYgPSAwO1xuXHRcdGxldCByYWZJZDogUmV0dXJuVHlwZTx0eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lPjtcblxuXHRcdGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG5cdFx0XHRjb25zdCBbZGF0YUludGVycG9sYXRpb24sIHByb2dyZXNzXSA9IFt0aGlzLmRhdGFJbnRlcnBvbGF0aW9uKCksIHRoaXMucHJvZ3Jlc3MoKV07XG5cdFx0XHRjb25zdCB1cGRhdGVQcm9ncmVzcyA9ICgpID0+IHtcblx0XHRcdFx0Y29uc3QgcHJvZ3Jlc3NTcGFuID0gdGhpcy5wcm9ncmVzc1NwYW5SZWYoKT8ubmF0aXZlRWxlbWVudDtcblx0XHRcdFx0aWYgKCFwcm9ncmVzc1NwYW4pIHJldHVybjtcblx0XHRcdFx0cHJvZ3Jlc3NSZWYgKz0gKHByb2dyZXNzIC0gcHJvZ3Jlc3NSZWYpIC8gMjtcblx0XHRcdFx0aWYgKHByb2dyZXNzUmVmID4gMC45NSAqIHByb2dyZXNzIHx8IHByb2dyZXNzID09PSAxMDApIHByb2dyZXNzUmVmID0gcHJvZ3Jlc3M7XG5cdFx0XHRcdHByb2dyZXNzU3Bhbi5pbm5lclRleHQgPSBkYXRhSW50ZXJwb2xhdGlvbihwcm9ncmVzc1JlZik7XG5cdFx0XHRcdGlmIChwcm9ncmVzc1JlZiA8IHByb2dyZXNzKSB7XG5cdFx0XHRcdFx0cmFmSWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodXBkYXRlUHJvZ3Jlc3MpO1xuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXHRcdFx0dXBkYXRlUHJvZ3Jlc3MoKTtcblx0XHRcdG9uQ2xlYW51cCgoKSA9PiBjYW5jZWxBbmltYXRpb25GcmFtZShyYWZJZCkpO1xuXHRcdH0pO1xuXHR9XG59XG4iXX0=
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zb2JhL2xvYWRlcnMvc3JjL2xvYWRlci9sb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNOLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsUUFBUSxFQUNSLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEdBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQUUxRCxNQUFNLHdCQUF3QixHQUFHLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztBQVczRSxNQUFNLGNBQWMsR0FBb0I7SUFDdkMsY0FBYyxFQUFFLEVBQUU7SUFDbEIsVUFBVSxFQUFFLEVBQUU7SUFDZCxRQUFRLEVBQUUsRUFBRTtJQUNaLFNBQVMsRUFBRSxFQUFFO0lBQ2IsaUJBQWlCLEVBQUUsd0JBQXdCO0lBQzNDLFlBQVksRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSztDQUM5QixDQUFDO0FBNEJGLE1BQU0sT0FBTyxVQUFVO0lBbUJ0QjtRQWxCUSxrQkFBYSxHQUFHLGtCQUFrQixFQUFFLENBQUM7UUFFN0MsV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckQsYUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFekQsWUFBTyxHQUFHLEtBQUssQ0FBQyxjQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUU1RSxtQkFBYyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDL0QsZUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdkQsYUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkQsY0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckQsaUJBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzNELHNCQUFpQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUVyRSxvQkFBZSxHQUFHLFNBQVMsQ0FBOEIsaUJBQWlCLENBQUMsQ0FBQztRQUU1RSxVQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBR2xELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVPLFFBQVE7UUFDZixNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNwQixNQUFNLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNuRSxJQUFJLFNBQVMsS0FBSyxNQUFNLEVBQUUsQ0FBQztnQkFDMUIsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDakMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3hCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDUixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDMUMsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVPLGNBQWM7UUFDckIsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLElBQUksS0FBK0MsQ0FBQztRQUVwRCxNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNwQixNQUFNLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUNsRixNQUFNLGNBQWMsR0FBRyxHQUFHLEVBQUU7Z0JBQzNCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxhQUFhLENBQUM7Z0JBQzNELElBQUksQ0FBQyxZQUFZO29CQUFFLE9BQU87Z0JBQzFCLFdBQVcsSUFBSSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzVDLElBQUksV0FBVyxHQUFHLElBQUksR0FBRyxRQUFRLElBQUksUUFBUSxLQUFLLEdBQUc7b0JBQUUsV0FBVyxHQUFHLFFBQVEsQ0FBQztnQkFDOUUsWUFBWSxDQUFDLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDeEQsSUFBSSxXQUFXLEdBQUcsUUFBUSxFQUFFLENBQUM7b0JBQzVCLEtBQUssR0FBRyxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDL0MsQ0FBQztZQUNGLENBQUMsQ0FBQztZQUNGLGNBQWMsRUFBRSxDQUFDO1lBQ2pCLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs4R0F2RFcsVUFBVTtrR0FBVixVQUFVLHFWQXZCWjs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW1CVDs7MkZBSVcsVUFBVTtrQkExQnRCLFNBQVM7K0JBQ0MsYUFBYSxjQUNYLElBQUksWUFDTjs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW1CVCxtQkFFZ0IsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuXHRDb21wb25lbnQsXG5cdEVsZW1lbnRSZWYsXG5cdGNvbXB1dGVkLFxuXHRlZmZlY3QsXG5cdGlucHV0LFxuXHRzaWduYWwsXG5cdHVudHJhY2tlZCxcblx0dmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IG1lcmdlSW5wdXRzIH0gZnJvbSAnbmd4dGVuc2lvbi9pbmplY3QtaW5wdXRzJztcbmltcG9ydCB7IGluamVjdE5ndHNQcm9ncmVzcyB9IGZyb20gJy4uL3Byb2dyZXNzL3Byb2dyZXNzJztcblxuY29uc3QgZGVmYXVsdERhdGFJbnRlcnBvbGF0aW9uID0gKHA6IG51bWJlcikgPT4gYExvYWRpbmcgJHtwLnRvRml4ZWQoMil9JWA7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd0c0xvYWRlclN0YXRlIHtcblx0Y29udGFpbmVyQ2xhc3M/OiBzdHJpbmc7XG5cdGlubmVyQ2xhc3M/OiBzdHJpbmc7XG5cdGJhckNsYXNzPzogc3RyaW5nO1xuXHRkYXRhQ2xhc3M/OiBzdHJpbmc7XG5cdGRhdGFJbnRlcnBvbGF0aW9uOiAodmFsdWU6IG51bWJlcikgPT4gc3RyaW5nO1xuXHRpbml0aWFsU3RhdGU6ICh2YWx1ZTogYm9vbGVhbikgPT4gYm9vbGVhbjtcbn1cblxuY29uc3QgZGVmYXVsdE9wdGlvbnM6IE5ndHNMb2FkZXJTdGF0ZSA9IHtcblx0Y29udGFpbmVyQ2xhc3M6ICcnLFxuXHRpbm5lckNsYXNzOiAnJyxcblx0YmFyQ2xhc3M6ICcnLFxuXHRkYXRhQ2xhc3M6ICcnLFxuXHRkYXRhSW50ZXJwb2xhdGlvbjogZGVmYXVsdERhdGFJbnRlcnBvbGF0aW9uLFxuXHRpbml0aWFsU3RhdGU6ICh2YWx1ZSkgPT4gdmFsdWUsXG59O1xuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICduZ3RzLWxvYWRlcicsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHRlbXBsYXRlOiBgXG5cdFx0QGlmIChzaG93bigpKSB7XG5cdFx0XHQ8ZGl2XG5cdFx0XHRcdGNsYXNzPVwibmd0cy1sb2FkZXItY29udGFpbmVyXCJcblx0XHRcdFx0W2NsYXNzXT1cImNvbnRhaW5lckNsYXNzKCkgfHwgJydcIlxuXHRcdFx0XHRbc3R5bGUuLS1uZ3RzLWxvYWRlci1jb250YWluZXItb3BhY2l0eV09XCJhY3RpdmUoKSA/IDEgOiAwXCJcblx0XHRcdD5cblx0XHRcdFx0PGRpdj5cblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwibmd0cy1sb2FkZXItaW5uZXJcIiBbY2xhc3NdPVwiaW5uZXJDbGFzcygpIHx8ICcnXCI+XG5cdFx0XHRcdFx0XHQ8ZGl2XG5cdFx0XHRcdFx0XHRcdGNsYXNzPVwibmd0cy1sb2FkZXItYmFyXCJcblx0XHRcdFx0XHRcdFx0W2NsYXNzXT1cImJhckNsYXNzKCkgfHwgJydcIlxuXHRcdFx0XHRcdFx0XHRbc3R5bGUuLS1uZ3RzLWxvYWRlci1iYXItc2NhbGVdPVwicHJvZ3Jlc3MoKSAvIDEwMFwiXG5cdFx0XHRcdFx0XHQ+PC9kaXY+XG5cdFx0XHRcdFx0XHQ8c3BhbiAjcHJvZ3Jlc3NTcGFuUmVmIGNsYXNzPVwibmd0cy1sb2FkZXItZGF0YVwiIFtjbGFzc109XCJkYXRhQ2xhc3MoKSB8fCAnJ1wiPjwvc3Bhbj5cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQ8L2Rpdj5cblx0XHR9XG5cdGAsXG5cdHN0eWxlVXJsczogWycuL2xvYWRlci5jc3MnXSxcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNMb2FkZXIge1xuXHRwcml2YXRlIHByb2dyZXNzU3RhdGUgPSBpbmplY3ROZ3RzUHJvZ3Jlc3MoKTtcblxuXHRhY3RpdmUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnByb2dyZXNzU3RhdGUoKS5hY3RpdmUpO1xuXHRwcm9ncmVzcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMucHJvZ3Jlc3NTdGF0ZSgpLnByb2dyZXNzKTtcblxuXHRvcHRpb25zID0gaW5wdXQoZGVmYXVsdE9wdGlvbnMsIHsgdHJhbnNmb3JtOiBtZXJnZUlucHV0cyhkZWZhdWx0T3B0aW9ucykgfSk7XG5cblx0Y29udGFpbmVyQ2xhc3MgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9wdGlvbnMoKS5jb250YWluZXJDbGFzcyk7XG5cdGlubmVyQ2xhc3MgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9wdGlvbnMoKS5pbm5lckNsYXNzKTtcblx0YmFyQ2xhc3MgPSBjb21wdXRlZCgoKSA9PiB0aGlzLm9wdGlvbnMoKS5iYXJDbGFzcyk7XG5cdGRhdGFDbGFzcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3B0aW9ucygpLmRhdGFDbGFzcyk7XG5cdGluaXRpYWxTdGF0ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMub3B0aW9ucygpLmluaXRpYWxTdGF0ZSk7XG5cdGRhdGFJbnRlcnBvbGF0aW9uID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5vcHRpb25zKCkuZGF0YUludGVycG9sYXRpb24pO1xuXG5cdHByb2dyZXNzU3BhblJlZiA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPEhUTUxTcGFuRWxlbWVudD4+KCdwcm9ncmVzc1NwYW5SZWYnKTtcblxuXHRzaG93biA9IHNpZ25hbCh0aGlzLmluaXRpYWxTdGF0ZSgpKHRoaXMuYWN0aXZlKCkpKTtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHR0aGlzLnNldFNob3duKCk7XG5cdFx0dGhpcy51cGRhdGVQcm9ncmVzcygpO1xuXHR9XG5cblx0cHJpdmF0ZSBzZXRTaG93bigpIHtcblx0XHRlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuXHRcdFx0Y29uc3QgW2FjdGl2ZSwgbGFzdFNob3duXSA9IFt0aGlzLmFjdGl2ZSgpLCB1bnRyYWNrZWQodGhpcy5zaG93bildO1xuXHRcdFx0aWYgKGxhc3RTaG93biAhPT0gYWN0aXZlKSB7XG5cdFx0XHRcdGNvbnN0IHRpbWVvdXRJZCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHRcdHRoaXMuc2hvd24uc2V0KGFjdGl2ZSk7XG5cdFx0XHRcdH0sIDMwMCk7XG5cdFx0XHRcdG9uQ2xlYW51cCgoKSA9PiBjbGVhclRpbWVvdXQodGltZW91dElkKSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRwcml2YXRlIHVwZGF0ZVByb2dyZXNzKCkge1xuXHRcdGxldCBwcm9ncmVzc1JlZiA9IDA7XG5cdFx0bGV0IHJhZklkOiBSZXR1cm5UeXBlPHR5cGVvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWU+O1xuXG5cdFx0ZWZmZWN0KChvbkNsZWFudXApID0+IHtcblx0XHRcdGNvbnN0IFtkYXRhSW50ZXJwb2xhdGlvbiwgcHJvZ3Jlc3NdID0gW3RoaXMuZGF0YUludGVycG9sYXRpb24oKSwgdGhpcy5wcm9ncmVzcygpXTtcblx0XHRcdGNvbnN0IHVwZGF0ZVByb2dyZXNzID0gKCkgPT4ge1xuXHRcdFx0XHRjb25zdCBwcm9ncmVzc1NwYW4gPSB0aGlzLnByb2dyZXNzU3BhblJlZigpPy5uYXRpdmVFbGVtZW50O1xuXHRcdFx0XHRpZiAoIXByb2dyZXNzU3BhbikgcmV0dXJuO1xuXHRcdFx0XHRwcm9ncmVzc1JlZiArPSAocHJvZ3Jlc3MgLSBwcm9ncmVzc1JlZikgLyAyO1xuXHRcdFx0XHRpZiAocHJvZ3Jlc3NSZWYgPiAwLjk1ICogcHJvZ3Jlc3MgfHwgcHJvZ3Jlc3MgPT09IDEwMCkgcHJvZ3Jlc3NSZWYgPSBwcm9ncmVzcztcblx0XHRcdFx0cHJvZ3Jlc3NTcGFuLmlubmVyVGV4dCA9IGRhdGFJbnRlcnBvbGF0aW9uKHByb2dyZXNzUmVmKTtcblx0XHRcdFx0aWYgKHByb2dyZXNzUmVmIDwgcHJvZ3Jlc3MpIHtcblx0XHRcdFx0XHRyYWZJZCA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSh1cGRhdGVQcm9ncmVzcyk7XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cdFx0XHR1cGRhdGVQcm9ncmVzcygpO1xuXHRcdFx0b25DbGVhbnVwKCgpID0+IGNhbmNlbEFuaW1hdGlvbkZyYW1lKHJhZklkKSk7XG5cdFx0fSk7XG5cdH1cbn1cbiJdfQ==
@@ -1,12 +1,12 @@
1
1
  import { ChangeDetectorRef, inject, signal, untracked } from '@angular/core';
2
2
  import { assertInjector } from 'ngxtension/assert-injector';
3
- import * as THREE from 'three';
3
+ import { DefaultLoadingManager } from 'three';
4
4
  export function injectNgtsProgress(injector) {
5
5
  return assertInjector(injectNgtsProgress, injector, () => {
6
6
  const cdr = inject(ChangeDetectorRef);
7
7
  const progress = signal({ errors: [], active: false, progress: 0, item: '', loaded: 0, total: 0 });
8
8
  let saveLastTotalLoaded = 0;
9
- THREE.DefaultLoadingManager.onStart = (item, loaded, total) => {
9
+ DefaultLoadingManager.onStart = (item, loaded, total) => {
10
10
  untracked(() => {
11
11
  progress.update((prev) => ({
12
12
  ...prev,
@@ -19,19 +19,19 @@ export function injectNgtsProgress(injector) {
19
19
  });
20
20
  cdr.detectChanges();
21
21
  };
22
- THREE.DefaultLoadingManager.onLoad = () => {
22
+ DefaultLoadingManager.onLoad = () => {
23
23
  untracked(() => {
24
24
  progress.update((prev) => ({ ...prev, active: false }));
25
25
  });
26
26
  cdr.detectChanges();
27
27
  };
28
- THREE.DefaultLoadingManager.onError = (url) => {
28
+ DefaultLoadingManager.onError = (url) => {
29
29
  untracked(() => {
30
30
  progress.update((prev) => ({ ...prev, errors: [...prev.errors, url] }));
31
31
  });
32
32
  cdr.detectChanges();
33
33
  };
34
- THREE.DefaultLoadingManager.onProgress = (item, loaded, total) => {
34
+ DefaultLoadingManager.onProgress = (item, loaded, total) => {
35
35
  if (loaded === total)
36
36
  saveLastTotalLoaded = total;
37
37
  untracked(() => {
@@ -48,4 +48,4 @@ export function injectNgtsProgress(injector) {
48
48
  return progress.asReadonly();
49
49
  });
50
50
  }
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvbG9hZGVycy9zcmMvcHJvZ3Jlc3MvcHJvZ3Jlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFFL0IsTUFBTSxVQUFVLGtCQUFrQixDQUFDLFFBQW1CO0lBQ3JELE9BQU8sY0FBYyxDQUFDLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUU7UUFDeEQsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFdEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQU9wQixFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUU5RSxJQUFJLG1CQUFtQixHQUFHLENBQUMsQ0FBQztRQUU1QixLQUFLLENBQUMscUJBQXFCLENBQUMsT0FBTyxHQUFHLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUM3RCxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNkLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQzFCLEdBQUcsSUFBSTtvQkFDUCxNQUFNLEVBQUUsSUFBSTtvQkFDWixJQUFJO29CQUNKLE1BQU07b0JBQ04sS0FBSztvQkFDTCxRQUFRLEVBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLG1CQUFtQixDQUFDLENBQUMsR0FBRyxHQUFHO2lCQUNoRixDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1lBRUgsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLENBQUMsQ0FBQztRQUVGLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFO1lBQ3pDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDekQsQ0FBQyxDQUFDLENBQUM7WUFDSCxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsQ0FBQyxDQUFDO1FBRUYsS0FBSyxDQUFDLHFCQUFxQixDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQzdDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN6RSxDQUFDLENBQUMsQ0FBQztZQUNILEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixDQUFDLENBQUM7UUFFRixLQUFLLENBQUMscUJBQXFCLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNoRSxJQUFJLE1BQU0sS0FBSyxLQUFLO2dCQUFFLG1CQUFtQixHQUFHLEtBQUssQ0FBQztZQUNsRCxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNkLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQzFCLEdBQUcsSUFBSTtvQkFDUCxJQUFJO29CQUNKLE1BQU07b0JBQ04sS0FBSztvQkFDTCxRQUFRLEVBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLG1CQUFtQixDQUFDLENBQUMsR0FBRyxHQUFHLElBQUksR0FBRztpQkFDdkYsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztZQUVILEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixDQUFDLENBQUM7UUFFRixPQUFPLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUM5QixDQUFDLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgaW5qZWN0LCBzaWduYWwsIHVudHJhY2tlZCwgdHlwZSBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYXNzZXJ0SW5qZWN0b3IgfSBmcm9tICduZ3h0ZW5zaW9uL2Fzc2VydC1pbmplY3Rvcic7XG5pbXBvcnQgKiBhcyBUSFJFRSBmcm9tICd0aHJlZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3ROZ3RzUHJvZ3Jlc3MoaW5qZWN0b3I/OiBJbmplY3Rvcikge1xuXHRyZXR1cm4gYXNzZXJ0SW5qZWN0b3IoaW5qZWN0Tmd0c1Byb2dyZXNzLCBpbmplY3RvciwgKCkgPT4ge1xuXHRcdGNvbnN0IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cblx0XHRjb25zdCBwcm9ncmVzcyA9IHNpZ25hbDx7XG5cdFx0XHRlcnJvcnM6IHN0cmluZ1tdO1xuXHRcdFx0YWN0aXZlOiBib29sZWFuO1xuXHRcdFx0cHJvZ3Jlc3M6IG51bWJlcjtcblx0XHRcdGl0ZW06IHN0cmluZztcblx0XHRcdGxvYWRlZDogbnVtYmVyO1xuXHRcdFx0dG90YWw6IG51bWJlcjtcblx0XHR9Pih7IGVycm9yczogW10sIGFjdGl2ZTogZmFsc2UsIHByb2dyZXNzOiAwLCBpdGVtOiAnJywgbG9hZGVkOiAwLCB0b3RhbDogMCB9KTtcblxuXHRcdGxldCBzYXZlTGFzdFRvdGFsTG9hZGVkID0gMDtcblxuXHRcdFRIUkVFLkRlZmF1bHRMb2FkaW5nTWFuYWdlci5vblN0YXJ0ID0gKGl0ZW0sIGxvYWRlZCwgdG90YWwpID0+IHtcblx0XHRcdHVudHJhY2tlZCgoKSA9PiB7XG5cdFx0XHRcdHByb2dyZXNzLnVwZGF0ZSgocHJldikgPT4gKHtcblx0XHRcdFx0XHQuLi5wcmV2LFxuXHRcdFx0XHRcdGFjdGl2ZTogdHJ1ZSxcblx0XHRcdFx0XHRpdGVtLFxuXHRcdFx0XHRcdGxvYWRlZCxcblx0XHRcdFx0XHR0b3RhbCxcblx0XHRcdFx0XHRwcm9ncmVzczogKChsb2FkZWQgLSBzYXZlTGFzdFRvdGFsTG9hZGVkKSAvICh0b3RhbCAtIHNhdmVMYXN0VG90YWxMb2FkZWQpKSAqIDEwMCxcblx0XHRcdFx0fSkpO1xuXHRcdFx0fSk7XG5cblx0XHRcdGNkci5kZXRlY3RDaGFuZ2VzKCk7XG5cdFx0fTtcblxuXHRcdFRIUkVFLkRlZmF1bHRMb2FkaW5nTWFuYWdlci5vbkxvYWQgPSAoKSA9PiB7XG5cdFx0XHR1bnRyYWNrZWQoKCkgPT4ge1xuXHRcdFx0XHRwcm9ncmVzcy51cGRhdGUoKHByZXYpID0+ICh7IC4uLnByZXYsIGFjdGl2ZTogZmFsc2UgfSkpO1xuXHRcdFx0fSk7XG5cdFx0XHRjZHIuZGV0ZWN0Q2hhbmdlcygpO1xuXHRcdH07XG5cblx0XHRUSFJFRS5EZWZhdWx0TG9hZGluZ01hbmFnZXIub25FcnJvciA9ICh1cmwpID0+IHtcblx0XHRcdHVudHJhY2tlZCgoKSA9PiB7XG5cdFx0XHRcdHByb2dyZXNzLnVwZGF0ZSgocHJldikgPT4gKHsgLi4ucHJldiwgZXJyb3JzOiBbLi4ucHJldi5lcnJvcnMsIHVybF0gfSkpO1xuXHRcdFx0fSk7XG5cdFx0XHRjZHIuZGV0ZWN0Q2hhbmdlcygpO1xuXHRcdH07XG5cblx0XHRUSFJFRS5EZWZhdWx0TG9hZGluZ01hbmFnZXIub25Qcm9ncmVzcyA9IChpdGVtLCBsb2FkZWQsIHRvdGFsKSA9PiB7XG5cdFx0XHRpZiAobG9hZGVkID09PSB0b3RhbCkgc2F2ZUxhc3RUb3RhbExvYWRlZCA9IHRvdGFsO1xuXHRcdFx0dW50cmFja2VkKCgpID0+IHtcblx0XHRcdFx0cHJvZ3Jlc3MudXBkYXRlKChwcmV2KSA9PiAoe1xuXHRcdFx0XHRcdC4uLnByZXYsXG5cdFx0XHRcdFx0aXRlbSxcblx0XHRcdFx0XHRsb2FkZWQsXG5cdFx0XHRcdFx0dG90YWwsXG5cdFx0XHRcdFx0cHJvZ3Jlc3M6ICgobG9hZGVkIC0gc2F2ZUxhc3RUb3RhbExvYWRlZCkgLyAodG90YWwgLSBzYXZlTGFzdFRvdGFsTG9hZGVkKSkgKiAxMDAgfHwgMTAwLFxuXHRcdFx0XHR9KSk7XG5cdFx0XHR9KTtcblxuXHRcdFx0Y2RyLmRldGVjdENoYW5nZXMoKTtcblx0XHR9O1xuXG5cdFx0cmV0dXJuIHByb2dyZXNzLmFzUmVhZG9ubHkoKTtcblx0fSk7XG59XG4iXX0=
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvbG9hZGVycy9zcmMvcHJvZ3Jlc3MvcHJvZ3Jlc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFZLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFFOUMsTUFBTSxVQUFVLGtCQUFrQixDQUFDLFFBQW1CO0lBQ3JELE9BQU8sY0FBYyxDQUFDLGtCQUFrQixFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUU7UUFDeEQsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFdEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQU9wQixFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUU5RSxJQUFJLG1CQUFtQixHQUFHLENBQUMsQ0FBQztRQUU1QixxQkFBcUIsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ3ZELFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDMUIsR0FBRyxJQUFJO29CQUNQLE1BQU0sRUFBRSxJQUFJO29CQUNaLElBQUk7b0JBQ0osTUFBTTtvQkFDTixLQUFLO29CQUNMLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxHQUFHLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsbUJBQW1CLENBQUMsQ0FBQyxHQUFHLEdBQUc7aUJBQ2hGLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7WUFFSCxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsQ0FBQyxDQUFDO1FBRUYscUJBQXFCLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRTtZQUNuQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNkLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3pELENBQUMsQ0FBQyxDQUFDO1lBQ0gsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLENBQUMsQ0FBQztRQUVGLHFCQUFxQixDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3ZDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN6RSxDQUFDLENBQUMsQ0FBQztZQUNILEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixDQUFDLENBQUM7UUFFRixxQkFBcUIsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQzFELElBQUksTUFBTSxLQUFLLEtBQUs7Z0JBQUUsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO1lBQ2xELFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDMUIsR0FBRyxJQUFJO29CQUNQLElBQUk7b0JBQ0osTUFBTTtvQkFDTixLQUFLO29CQUNMLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTSxHQUFHLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsbUJBQW1CLENBQUMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxHQUFHO2lCQUN2RixDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1lBRUgsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLENBQUMsQ0FBQztRQUVGLE9BQU8sUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzlCLENBQUMsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBJbmplY3RvciwgaW5qZWN0LCBzaWduYWwsIHVudHJhY2tlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYXNzZXJ0SW5qZWN0b3IgfSBmcm9tICduZ3h0ZW5zaW9uL2Fzc2VydC1pbmplY3Rvcic7XG5pbXBvcnQgeyBEZWZhdWx0TG9hZGluZ01hbmFnZXIgfSBmcm9tICd0aHJlZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3ROZ3RzUHJvZ3Jlc3MoaW5qZWN0b3I/OiBJbmplY3Rvcikge1xuXHRyZXR1cm4gYXNzZXJ0SW5qZWN0b3IoaW5qZWN0Tmd0c1Byb2dyZXNzLCBpbmplY3RvciwgKCkgPT4ge1xuXHRcdGNvbnN0IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cblx0XHRjb25zdCBwcm9ncmVzcyA9IHNpZ25hbDx7XG5cdFx0XHRlcnJvcnM6IHN0cmluZ1tdO1xuXHRcdFx0YWN0aXZlOiBib29sZWFuO1xuXHRcdFx0cHJvZ3Jlc3M6IG51bWJlcjtcblx0XHRcdGl0ZW06IHN0cmluZztcblx0XHRcdGxvYWRlZDogbnVtYmVyO1xuXHRcdFx0dG90YWw6IG51bWJlcjtcblx0XHR9Pih7IGVycm9yczogW10sIGFjdGl2ZTogZmFsc2UsIHByb2dyZXNzOiAwLCBpdGVtOiAnJywgbG9hZGVkOiAwLCB0b3RhbDogMCB9KTtcblxuXHRcdGxldCBzYXZlTGFzdFRvdGFsTG9hZGVkID0gMDtcblxuXHRcdERlZmF1bHRMb2FkaW5nTWFuYWdlci5vblN0YXJ0ID0gKGl0ZW0sIGxvYWRlZCwgdG90YWwpID0+IHtcblx0XHRcdHVudHJhY2tlZCgoKSA9PiB7XG5cdFx0XHRcdHByb2dyZXNzLnVwZGF0ZSgocHJldikgPT4gKHtcblx0XHRcdFx0XHQuLi5wcmV2LFxuXHRcdFx0XHRcdGFjdGl2ZTogdHJ1ZSxcblx0XHRcdFx0XHRpdGVtLFxuXHRcdFx0XHRcdGxvYWRlZCxcblx0XHRcdFx0XHR0b3RhbCxcblx0XHRcdFx0XHRwcm9ncmVzczogKChsb2FkZWQgLSBzYXZlTGFzdFRvdGFsTG9hZGVkKSAvICh0b3RhbCAtIHNhdmVMYXN0VG90YWxMb2FkZWQpKSAqIDEwMCxcblx0XHRcdFx0fSkpO1xuXHRcdFx0fSk7XG5cblx0XHRcdGNkci5kZXRlY3RDaGFuZ2VzKCk7XG5cdFx0fTtcblxuXHRcdERlZmF1bHRMb2FkaW5nTWFuYWdlci5vbkxvYWQgPSAoKSA9PiB7XG5cdFx0XHR1bnRyYWNrZWQoKCkgPT4ge1xuXHRcdFx0XHRwcm9ncmVzcy51cGRhdGUoKHByZXYpID0+ICh7IC4uLnByZXYsIGFjdGl2ZTogZmFsc2UgfSkpO1xuXHRcdFx0fSk7XG5cdFx0XHRjZHIuZGV0ZWN0Q2hhbmdlcygpO1xuXHRcdH07XG5cblx0XHREZWZhdWx0TG9hZGluZ01hbmFnZXIub25FcnJvciA9ICh1cmwpID0+IHtcblx0XHRcdHVudHJhY2tlZCgoKSA9PiB7XG5cdFx0XHRcdHByb2dyZXNzLnVwZGF0ZSgocHJldikgPT4gKHsgLi4ucHJldiwgZXJyb3JzOiBbLi4ucHJldi5lcnJvcnMsIHVybF0gfSkpO1xuXHRcdFx0fSk7XG5cdFx0XHRjZHIuZGV0ZWN0Q2hhbmdlcygpO1xuXHRcdH07XG5cblx0XHREZWZhdWx0TG9hZGluZ01hbmFnZXIub25Qcm9ncmVzcyA9IChpdGVtLCBsb2FkZWQsIHRvdGFsKSA9PiB7XG5cdFx0XHRpZiAobG9hZGVkID09PSB0b3RhbCkgc2F2ZUxhc3RUb3RhbExvYWRlZCA9IHRvdGFsO1xuXHRcdFx0dW50cmFja2VkKCgpID0+IHtcblx0XHRcdFx0cHJvZ3Jlc3MudXBkYXRlKChwcmV2KSA9PiAoe1xuXHRcdFx0XHRcdC4uLnByZXYsXG5cdFx0XHRcdFx0aXRlbSxcblx0XHRcdFx0XHRsb2FkZWQsXG5cdFx0XHRcdFx0dG90YWwsXG5cdFx0XHRcdFx0cHJvZ3Jlc3M6ICgobG9hZGVkIC0gc2F2ZUxhc3RUb3RhbExvYWRlZCkgLyAodG90YWwgLSBzYXZlTGFzdFRvdGFsTG9hZGVkKSkgKiAxMDAgfHwgMTAwLFxuXHRcdFx0XHR9KSk7XG5cdFx0XHR9KTtcblxuXHRcdFx0Y2RyLmRldGVjdENoYW5nZXMoKTtcblx0XHR9O1xuXG5cdFx0cmV0dXJuIHByb2dyZXNzLmFzUmVhZG9ubHkoKTtcblx0fSk7XG59XG4iXX0=
@@ -1,11 +1,11 @@
1
- import { effect, Injector } from '@angular/core';
1
+ import { effect } from '@angular/core';
2
2
  import { injectNgtLoader, injectNgtStore } from 'angular-three';
3
3
  import { assertInjector } from 'ngxtension/assert-injector';
4
- import * as THREE from 'three';
4
+ import { Texture, TextureLoader } from 'three';
5
5
  function _injectNgtsTextureLoader(input, { onLoad, injector } = {}) {
6
6
  return assertInjector(_injectNgtsTextureLoader, injector, () => {
7
7
  const store = injectNgtStore();
8
- const result = injectNgtLoader(() => THREE.TextureLoader, input);
8
+ const result = injectNgtLoader(() => TextureLoader, input);
9
9
  effect(() => {
10
10
  const textures = result();
11
11
  if (!textures)
@@ -14,7 +14,7 @@ function _injectNgtsTextureLoader(input, { onLoad, injector } = {}) {
14
14
  if ('initTexture' in gl) {
15
15
  const array = Array.isArray(textures)
16
16
  ? textures
17
- : textures instanceof THREE.Texture
17
+ : textures instanceof Texture
18
18
  ? [textures]
19
19
  : Object.values(textures);
20
20
  if (onLoad)
@@ -26,7 +26,7 @@ function _injectNgtsTextureLoader(input, { onLoad, injector } = {}) {
26
26
  });
27
27
  }
28
28
  _injectNgtsTextureLoader.preload = (input) => {
29
- injectNgtLoader.preload(() => THREE.TextureLoader, input);
29
+ injectNgtLoader.preload(() => TextureLoader, input);
30
30
  };
31
31
  export const injectNgtsTextureLoader = _injectNgtsTextureLoader;
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dHVyZS1sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvbG9hZGVycy9zcmMvdGV4dHVyZS1sb2FkZXIvdGV4dHVyZS1sb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQXlCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUUvQixTQUFTLHdCQUF3QixDQUNoQyxLQUFtQixFQUNuQixFQUFFLE1BQU0sRUFBRSxRQUFRLEtBQTJFLEVBQUU7SUFFL0YsT0FBTyxjQUFjLENBQUMsd0JBQXdCLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRTtRQUM5RCxNQUFNLEtBQUssR0FBRyxjQUFjLEVBQUUsQ0FBQztRQUMvQixNQUFNLE1BQU0sR0FBRyxlQUFlLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUVqRSxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1gsTUFBTSxRQUFRLEdBQUcsTUFBTSxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLFFBQVE7Z0JBQUUsT0FBTztZQUN0QixNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNCLElBQUksYUFBYSxJQUFJLEVBQUUsRUFBRSxDQUFDO2dCQUN6QixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztvQkFDcEMsQ0FBQyxDQUFDLFFBQVE7b0JBQ1YsQ0FBQyxDQUFDLFFBQVEsWUFBWSxLQUFLLENBQUMsT0FBTzt3QkFDbEMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO3dCQUNaLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM1QixJQUFJLE1BQU07b0JBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMxQixLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDeEMsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLENBQUM7SUFDZixDQUFDLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCx3QkFBd0IsQ0FBQyxPQUFPLEdBQUcsQ0FBNEQsS0FBbUIsRUFBRSxFQUFFO0lBQ3JILGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUMzRCxDQUFDLENBQUM7QUFHRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBc0Isd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlZmZlY3QsIEluamVjdG9yLCB0eXBlIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0Tmd0TG9hZGVyLCBpbmplY3ROZ3RTdG9yZSwgdHlwZSBOZ3RMb2FkZXJSZXN1bHRzIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBhc3NlcnRJbmplY3RvciB9IGZyb20gJ25neHRlbnNpb24vYXNzZXJ0LWluamVjdG9yJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcblxuZnVuY3Rpb24gX2luamVjdE5ndHNUZXh0dXJlTG9hZGVyPFRJbnB1dCBleHRlbmRzIHN0cmluZ1tdIHwgc3RyaW5nIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4oXG5cdGlucHV0OiAoKSA9PiBUSW5wdXQsXG5cdHsgb25Mb2FkLCBpbmplY3RvciB9OiB7IG9uTG9hZD86ICh0ZXh0dXJlOiBUSFJFRS5UZXh0dXJlW10pID0+IHZvaWQ7IGluamVjdG9yPzogSW5qZWN0b3IgfSA9IHt9LFxuKTogU2lnbmFsPE5ndExvYWRlclJlc3VsdHM8VElucHV0LCBUSFJFRS5UZXh0dXJlPiB8IG51bGw+IHtcblx0cmV0dXJuIGFzc2VydEluamVjdG9yKF9pbmplY3ROZ3RzVGV4dHVyZUxvYWRlciwgaW5qZWN0b3IsICgpID0+IHtcblx0XHRjb25zdCBzdG9yZSA9IGluamVjdE5ndFN0b3JlKCk7XG5cdFx0Y29uc3QgcmVzdWx0ID0gaW5qZWN0Tmd0TG9hZGVyKCgpID0+IFRIUkVFLlRleHR1cmVMb2FkZXIsIGlucHV0KTtcblxuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCB0ZXh0dXJlcyA9IHJlc3VsdCgpO1xuXHRcdFx0aWYgKCF0ZXh0dXJlcykgcmV0dXJuO1xuXHRcdFx0Y29uc3QgZ2wgPSBzdG9yZS5nZXQoJ2dsJyk7XG5cdFx0XHRpZiAoJ2luaXRUZXh0dXJlJyBpbiBnbCkge1xuXHRcdFx0XHRjb25zdCBhcnJheSA9IEFycmF5LmlzQXJyYXkodGV4dHVyZXMpXG5cdFx0XHRcdFx0PyB0ZXh0dXJlc1xuXHRcdFx0XHRcdDogdGV4dHVyZXMgaW5zdGFuY2VvZiBUSFJFRS5UZXh0dXJlXG5cdFx0XHRcdFx0XHQ/IFt0ZXh0dXJlc11cblx0XHRcdFx0XHRcdDogT2JqZWN0LnZhbHVlcyh0ZXh0dXJlcyk7XG5cdFx0XHRcdGlmIChvbkxvYWQpIG9uTG9hZChhcnJheSk7XG5cdFx0XHRcdGFycmF5LmZvckVhY2goZ2wuaW5pdFRleHR1cmUuYmluZChnbCkpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0cmV0dXJuIHJlc3VsdDtcblx0fSk7XG59XG5cbl9pbmplY3ROZ3RzVGV4dHVyZUxvYWRlci5wcmVsb2FkID0gPFRJbnB1dCBleHRlbmRzIHN0cmluZ1tdIHwgc3RyaW5nIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4oaW5wdXQ6ICgpID0+IFRJbnB1dCkgPT4ge1xuXHRpbmplY3ROZ3RMb2FkZXIucHJlbG9hZCgoKSA9PiBUSFJFRS5UZXh0dXJlTG9hZGVyLCBpbnB1dCk7XG59O1xuXG5leHBvcnQgdHlwZSBOZ3RzVGV4dHVyZUxvYWRlciA9IHR5cGVvZiBfaW5qZWN0Tmd0c1RleHR1cmVMb2FkZXI7XG5leHBvcnQgY29uc3QgaW5qZWN0Tmd0c1RleHR1cmVMb2FkZXI6IE5ndHNUZXh0dXJlTG9hZGVyID0gX2luamVjdE5ndHNUZXh0dXJlTG9hZGVyO1xuIl19
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dHVyZS1sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvbG9hZGVycy9zcmMvdGV4dHVyZS1sb2FkZXIvdGV4dHVyZS1sb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUUvQyxTQUFTLHdCQUF3QixDQUNoQyxLQUFtQixFQUNuQixFQUFFLE1BQU0sRUFBRSxRQUFRLEtBQXFFLEVBQUU7SUFFekYsT0FBTyxjQUFjLENBQUMsd0JBQXdCLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRTtRQUM5RCxNQUFNLEtBQUssR0FBRyxjQUFjLEVBQUUsQ0FBQztRQUMvQixNQUFNLE1BQU0sR0FBRyxlQUFlLENBQUMsR0FBRyxFQUFFLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRTNELE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCxNQUFNLFFBQVEsR0FBRyxNQUFNLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsUUFBUTtnQkFBRSxPQUFPO1lBQ3RCLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0IsSUFBSSxhQUFhLElBQUksRUFBRSxFQUFFLENBQUM7Z0JBQ3pCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO29CQUNwQyxDQUFDLENBQUMsUUFBUTtvQkFDVixDQUFDLENBQUMsUUFBUSxZQUFZLE9BQU87d0JBQzVCLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQzt3QkFDWixDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDNUIsSUFBSSxNQUFNO29CQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDMUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3hDLENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sTUFBTSxDQUFDO0lBQ2YsQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsd0JBQXdCLENBQUMsT0FBTyxHQUFHLENBQTRELEtBQW1CLEVBQUUsRUFBRTtJQUNySCxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUNyRCxDQUFDLENBQUM7QUFHRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBc0Isd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlZmZlY3QsIEluamVjdG9yLCBTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGluamVjdE5ndExvYWRlciwgaW5qZWN0Tmd0U3RvcmUsIE5ndExvYWRlclJlc3VsdHMgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IGFzc2VydEluamVjdG9yIH0gZnJvbSAnbmd4dGVuc2lvbi9hc3NlcnQtaW5qZWN0b3InO1xuaW1wb3J0IHsgVGV4dHVyZSwgVGV4dHVyZUxvYWRlciB9IGZyb20gJ3RocmVlJztcblxuZnVuY3Rpb24gX2luamVjdE5ndHNUZXh0dXJlTG9hZGVyPFRJbnB1dCBleHRlbmRzIHN0cmluZ1tdIHwgc3RyaW5nIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4oXG5cdGlucHV0OiAoKSA9PiBUSW5wdXQsXG5cdHsgb25Mb2FkLCBpbmplY3RvciB9OiB7IG9uTG9hZD86ICh0ZXh0dXJlOiBUZXh0dXJlW10pID0+IHZvaWQ7IGluamVjdG9yPzogSW5qZWN0b3IgfSA9IHt9LFxuKTogU2lnbmFsPE5ndExvYWRlclJlc3VsdHM8VElucHV0LCBUZXh0dXJlPiB8IG51bGw+IHtcblx0cmV0dXJuIGFzc2VydEluamVjdG9yKF9pbmplY3ROZ3RzVGV4dHVyZUxvYWRlciwgaW5qZWN0b3IsICgpID0+IHtcblx0XHRjb25zdCBzdG9yZSA9IGluamVjdE5ndFN0b3JlKCk7XG5cdFx0Y29uc3QgcmVzdWx0ID0gaW5qZWN0Tmd0TG9hZGVyKCgpID0+IFRleHR1cmVMb2FkZXIsIGlucHV0KTtcblxuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCB0ZXh0dXJlcyA9IHJlc3VsdCgpO1xuXHRcdFx0aWYgKCF0ZXh0dXJlcykgcmV0dXJuO1xuXHRcdFx0Y29uc3QgZ2wgPSBzdG9yZS5nZXQoJ2dsJyk7XG5cdFx0XHRpZiAoJ2luaXRUZXh0dXJlJyBpbiBnbCkge1xuXHRcdFx0XHRjb25zdCBhcnJheSA9IEFycmF5LmlzQXJyYXkodGV4dHVyZXMpXG5cdFx0XHRcdFx0PyB0ZXh0dXJlc1xuXHRcdFx0XHRcdDogdGV4dHVyZXMgaW5zdGFuY2VvZiBUZXh0dXJlXG5cdFx0XHRcdFx0XHQ/IFt0ZXh0dXJlc11cblx0XHRcdFx0XHRcdDogT2JqZWN0LnZhbHVlcyh0ZXh0dXJlcyk7XG5cdFx0XHRcdGlmIChvbkxvYWQpIG9uTG9hZChhcnJheSk7XG5cdFx0XHRcdGFycmF5LmZvckVhY2goZ2wuaW5pdFRleHR1cmUuYmluZChnbCkpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0cmV0dXJuIHJlc3VsdDtcblx0fSk7XG59XG5cbl9pbmplY3ROZ3RzVGV4dHVyZUxvYWRlci5wcmVsb2FkID0gPFRJbnB1dCBleHRlbmRzIHN0cmluZ1tdIHwgc3RyaW5nIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4oaW5wdXQ6ICgpID0+IFRJbnB1dCkgPT4ge1xuXHRpbmplY3ROZ3RMb2FkZXIucHJlbG9hZCgoKSA9PiBUZXh0dXJlTG9hZGVyLCBpbnB1dCk7XG59O1xuXG5leHBvcnQgdHlwZSBOZ3RzVGV4dHVyZUxvYWRlciA9IHR5cGVvZiBfaW5qZWN0Tmd0c1RleHR1cmVMb2FkZXI7XG5leHBvcnQgY29uc3QgaW5qZWN0Tmd0c1RleHR1cmVMb2FkZXI6IE5ndHNUZXh0dXJlTG9hZGVyID0gX2luamVjdE5ndHNUZXh0dXJlTG9hZGVyO1xuIl19
@@ -1,6 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
- import { input, EventEmitter, computed, effect, Component, CUSTOM_ELEMENTS_SCHEMA, Output } from '@angular/core';
2
+ import { input, output, computed, effect, Component, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
3
3
  import { injectNgtRef, injectNgtStore, injectBeforeRender, NgtArgs } from 'angular-three';
4
+ import { mergeInputs } from 'ngxtension/inject-inputs';
4
5
  import { OrbitControls } from 'three-stdlib';
5
6
 
6
7
  const defaultOptions = {
@@ -11,13 +12,11 @@ const defaultOptions = {
11
12
  };
12
13
  class NgtsOrbitControls {
13
14
  constructor() {
14
- this.options = input(defaultOptions, {
15
- transform: (value) => ({ ...defaultOptions, ...value }),
16
- });
15
+ this.options = input(defaultOptions, { transform: mergeInputs(defaultOptions) });
17
16
  this.controlsRef = input(injectNgtRef());
18
- this.change = new EventEmitter();
19
- this.start = new EventEmitter();
20
- this.end = new EventEmitter();
17
+ this.changed = output();
18
+ this.started = output();
19
+ this.ended = output();
21
20
  this.store = injectNgtStore();
22
21
  this.invalidate = this.store.select('invalidate');
23
22
  this.performanceRegress = this.store.select('performance', 'regress');
@@ -43,10 +42,10 @@ class NgtsOrbitControls {
43
42
  }
44
43
  setControls() {
45
44
  effect(() => {
46
- const [camera, defaultCamera, controls] = [this.camera(), this.defaultCamera(), this.controlsRef().nativeElement];
45
+ const [camera, defaultCamera, controlsRef] = [this.camera(), this.defaultCamera(), this.controlsRef()];
47
46
  const controlsCamera = camera || defaultCamera;
48
- if (!controls || controls.object !== controlsCamera) {
49
- this.controlsRef().nativeElement = new OrbitControls(controlsCamera);
47
+ if (!controlsRef.nativeElement || controlsRef.nativeElement.object !== controlsCamera) {
48
+ controlsRef.nativeElement = new OrbitControls(controlsCamera);
50
49
  }
51
50
  });
52
51
  }
@@ -96,33 +95,28 @@ class NgtsOrbitControls {
96
95
  invalidate();
97
96
  if (regress)
98
97
  performanceRegress();
99
- if (this.change.observed)
100
- this.change.emit(e);
98
+ this.changed.emit(e);
101
99
  };
102
- const startCallback = this.start.observed ? this.start.emit.bind(this.start) : null;
103
- const endCallback = this.end.observed ? this.end.emit.bind(this.end) : null;
100
+ const startCallback = this.started.emit.bind(this.started);
101
+ const endCallback = this.ended.emit.bind(this.ended);
104
102
  controls.addEventListener('change', changeCallback);
105
- if (startCallback)
106
- controls.addEventListener('start', startCallback);
107
- if (endCallback)
108
- controls.addEventListener('end', endCallback);
103
+ controls.addEventListener('start', startCallback);
104
+ controls.addEventListener('end', endCallback);
109
105
  onCleanup(() => {
110
106
  controls.removeEventListener('change', changeCallback);
111
- if (startCallback)
112
- controls.removeEventListener('start', startCallback);
113
- if (endCallback)
114
- controls.removeEventListener('end', endCallback);
107
+ controls.removeEventListener('start', startCallback);
108
+ controls.removeEventListener('end', endCallback);
115
109
  });
116
110
  });
117
111
  }
118
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgtsOrbitControls, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
119
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.0", type: NgtsOrbitControls, isStandalone: true, selector: "ngts-orbit-controls", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, controlsRef: { classPropertyName: "controlsRef", publicName: "controlsRef", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { change: "change", start: "start", end: "end" }, ngImport: i0, template: `
112
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtsOrbitControls, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
113
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.3", type: NgtsOrbitControls, isStandalone: true, selector: "ngts-orbit-controls", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, controlsRef: { classPropertyName: "controlsRef", publicName: "controlsRef", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { changed: "changed", started: "started", ended: "ended" }, ngImport: i0, template: `
120
114
  <ngt-primitive ngtCompound *args="args()" [enableDamping]="enableDamping()">
121
115
  <ng-content />
122
116
  </ngt-primitive>
123
117
  `, isInline: true, dependencies: [{ kind: "directive", type: NgtArgs, selector: "ng-template[args]", inputs: ["args"] }] }); }
124
118
  }
125
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgtsOrbitControls, decorators: [{
119
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtsOrbitControls, decorators: [{
126
120
  type: Component,
127
121
  args: [{
128
122
  selector: 'ngts-orbit-controls',
@@ -135,13 +129,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
135
129
  imports: [NgtArgs],
136
130
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
137
131
  }]
138
- }], ctorParameters: () => [], propDecorators: { change: [{
139
- type: Output
140
- }], start: [{
141
- type: Output
142
- }], end: [{
143
- type: Output
144
- }] } });
132
+ }], ctorParameters: () => [] });
145
133
 
146
134
  /**
147
135
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"angular-three-soba-controls.mjs","sources":["../../../../libs/soba/controls/src/orbit-controls/orbit-controls.ts","../../../../libs/soba/controls/src/angular-three-soba-controls.ts"],"sourcesContent":["import { Component, computed, CUSTOM_ELEMENTS_SCHEMA, effect, EventEmitter, input, Output } from '@angular/core';\nimport {\n\tinjectBeforeRender,\n\tinjectNgtRef,\n\tinjectNgtStore,\n\tNgtArgs,\n\ttype NgtCamera,\n\ttype NgtVector3,\n} from 'angular-three';\nimport type * as THREE from 'three';\nimport { OrbitControls } from 'three-stdlib';\n\nexport interface NgtsOrbitControlsState {\n\tcamera?: THREE.Camera;\n\tdomElement?: HTMLElement;\n\ttarget?: NgtVector3;\n\tmakeDefault: boolean;\n\tregress: boolean;\n\tenableDamping: boolean;\n\tkeyEvents: boolean | HTMLElement;\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t/**\n\t\t * @extends three-stdlib|OrbitControls\n\t\t */\n\t\t'ngts-orbit-controls': OrbitControls & NgtsOrbitControlsState;\n\t}\n}\n\nconst defaultOptions: Partial<NgtsOrbitControlsState> = {\n\tenableDamping: true,\n\tregress: false,\n\tmakeDefault: false,\n\tkeyEvents: false,\n};\n\n@Component({\n\tselector: 'ngts-orbit-controls',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-primitive ngtCompound *args=\"args()\" [enableDamping]=\"enableDamping()\">\n\t\t\t<ng-content />\n\t\t</ngt-primitive>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsOrbitControls {\n\toptions = input(defaultOptions, {\n\t\ttransform: (value: Partial<NgtsOrbitControlsState>) => ({ ...defaultOptions, ...value }),\n\t});\n\tcontrolsRef = input(injectNgtRef<OrbitControls>());\n\n\t@Output() change = new EventEmitter<THREE.Event>();\n\t@Output() start = new EventEmitter<THREE.Event>();\n\t@Output() end = new EventEmitter<THREE.Event>();\n\n\tprivate store = injectNgtStore();\n\tprivate invalidate = this.store.select('invalidate');\n\tprivate performanceRegress = this.store.select('performance', 'regress');\n\tprivate defaultCamera = this.store.select('camera');\n\tprivate glDomElement = this.store.select('gl', 'domElement');\n\n\tprivate camera = computed(() => this.options().camera);\n\tprivate regress = computed(() => this.options().regress);\n\tprivate keyEvents = computed(() => this.options().keyEvents);\n\tprivate domElement = computed(() => this.options().domElement);\n\tprivate makeDefault = computed(() => this.options().makeDefault);\n\n\tprotected args = computed(() => [this.controlsRef().nativeElement]);\n\tprotected enableDamping = computed(() => this.options().enableDamping);\n\n\tconstructor() {\n\t\tinjectBeforeRender(\n\t\t\t() => {\n\t\t\t\tconst controls = this.controlsRef().nativeElement;\n\t\t\t\tif (controls?.enabled) {\n\t\t\t\t\tcontrols.update();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{ priority: -1 },\n\t\t);\n\n\t\tthis.setControls();\n\t\tthis.connectElement();\n\t\tthis.makeControlsDefault();\n\t\tthis.setEvents();\n\t}\n\n\tprivate setControls() {\n\t\teffect(() => {\n\t\t\tconst [camera, defaultCamera, controls] = [this.camera(), this.defaultCamera(), this.controlsRef().nativeElement];\n\t\t\tconst controlsCamera = camera || defaultCamera;\n\t\t\tif (!controls || controls.object !== controlsCamera) {\n\t\t\t\tthis.controlsRef().nativeElement = new OrbitControls(controlsCamera as NgtCamera);\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate connectElement() {\n\t\teffect((onCleanup) => {\n\t\t\tconst [keyEvents, domElement, controls] = [\n\t\t\t\tthis.keyEvents(),\n\t\t\t\tthis.domElement() || this.store.get('events', 'connected') || this.glDomElement(),\n\t\t\t\tthis.controlsRef().nativeElement,\n\t\t\t\tthis.invalidate(),\n\t\t\t\tthis.regress(),\n\t\t\t];\n\t\t\tif (!controls) return;\n\t\t\tif (keyEvents) {\n\t\t\t\tcontrols.connect(keyEvents === true ? domElement : keyEvents);\n\t\t\t} else {\n\t\t\t\tcontrols.connect(domElement);\n\t\t\t}\n\t\t\tonCleanup(() => void controls.dispose());\n\t\t});\n\t}\n\n\tprivate makeControlsDefault() {\n\t\teffect((onCleanup) => {\n\t\t\tconst [controls, makeDefault] = [this.controlsRef().nativeElement, this.makeDefault()];\n\t\t\tif (!controls) return;\n\t\t\tif (makeDefault) {\n\t\t\t\tconst oldControls = this.store.get('controls');\n\t\t\t\tthis.store.update({ controls });\n\t\t\t\tonCleanup(() => void this.store.update({ controls: oldControls }));\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate setEvents() {\n\t\teffect((onCleanup) => {\n\t\t\tconst [controls, invalidate, performanceRegress, regress] = [\n\t\t\t\tthis.controlsRef().nativeElement,\n\t\t\t\tthis.invalidate(),\n\t\t\t\tthis.performanceRegress(),\n\t\t\t\tthis.regress(),\n\t\t\t];\n\t\t\tif (!controls) return;\n\t\t\tconst changeCallback: (e: THREE.Event) => void = (e) => {\n\t\t\t\tinvalidate();\n\t\t\t\tif (regress) performanceRegress();\n\t\t\t\tif (this.change.observed) this.change.emit(e);\n\t\t\t};\n\n\t\t\tconst startCallback = this.start.observed ? this.start.emit.bind(this.start) : null;\n\t\t\tconst endCallback = this.end.observed ? this.end.emit.bind(this.end) : null;\n\n\t\t\tcontrols.addEventListener('change', changeCallback);\n\t\t\tif (startCallback) controls.addEventListener('start', startCallback);\n\t\t\tif (endCallback) controls.addEventListener('end', endCallback);\n\n\t\t\tonCleanup(() => {\n\t\t\t\tcontrols.removeEventListener('change', changeCallback);\n\t\t\t\tif (startCallback) controls.removeEventListener('start', startCallback);\n\t\t\t\tif (endCallback) controls.removeEventListener('end', endCallback);\n\t\t\t});\n\t\t});\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"angular-three-soba-controls.mjs","sources":["../../../../libs/soba/controls/src/orbit-controls/orbit-controls.ts","../../../../libs/soba/controls/src/angular-three-soba-controls.ts"],"sourcesContent":["import { Component, computed, CUSTOM_ELEMENTS_SCHEMA, effect, input, output } from '@angular/core';\nimport {\n\tinjectBeforeRender,\n\tinjectNgtRef,\n\tinjectNgtStore,\n\tNgtArgs,\n\tNgtCamera,\n\tNgtInjectedRef,\n\tNgtVector3,\n} from 'angular-three';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { Camera, Event } from 'three';\nimport { OrbitControls } from 'three-stdlib';\n\nexport interface NgtsOrbitControlsState {\n\tcamera?: Camera;\n\tdomElement?: HTMLElement;\n\ttarget?: NgtVector3;\n\tmakeDefault: boolean;\n\tregress: boolean;\n\tenableDamping: boolean;\n\tkeyEvents: boolean | HTMLElement;\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t/**\n\t\t * @extends three-stdlib|OrbitControls\n\t\t */\n\t\t'ngts-orbit-controls': OrbitControls & NgtsOrbitControlsState;\n\t}\n}\n\nconst defaultOptions: NgtsOrbitControlsState = {\n\tenableDamping: true,\n\tregress: false,\n\tmakeDefault: false,\n\tkeyEvents: false,\n};\n\n@Component({\n\tselector: 'ngts-orbit-controls',\n\tstandalone: true,\n\ttemplate: `\n\t\t<ngt-primitive ngtCompound *args=\"args()\" [enableDamping]=\"enableDamping()\">\n\t\t\t<ng-content />\n\t\t</ngt-primitive>\n\t`,\n\timports: [NgtArgs],\n\tschemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NgtsOrbitControls {\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n\tcontrolsRef = input<NgtInjectedRef<OrbitControls>>(injectNgtRef());\n\n\tchanged = output<Event>();\n\tstarted = output<Event>();\n\tended = output<Event>();\n\n\tprivate store = injectNgtStore();\n\tprivate invalidate = this.store.select('invalidate');\n\tprivate performanceRegress = this.store.select('performance', 'regress');\n\tprivate defaultCamera = this.store.select('camera');\n\tprivate glDomElement = this.store.select('gl', 'domElement');\n\n\tprivate camera = computed(() => this.options().camera);\n\tprivate regress = computed(() => this.options().regress);\n\tprivate keyEvents = computed(() => this.options().keyEvents);\n\tprivate domElement = computed(() => this.options().domElement);\n\tprivate makeDefault = computed(() => this.options().makeDefault);\n\n\tprotected args = computed(() => [this.controlsRef().nativeElement]);\n\tprotected enableDamping = computed(() => this.options().enableDamping);\n\n\tconstructor() {\n\t\tinjectBeforeRender(\n\t\t\t() => {\n\t\t\t\tconst controls = this.controlsRef().nativeElement;\n\t\t\t\tif (controls?.enabled) {\n\t\t\t\t\tcontrols.update();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{ priority: -1 },\n\t\t);\n\n\t\tthis.setControls();\n\t\tthis.connectElement();\n\t\tthis.makeControlsDefault();\n\t\tthis.setEvents();\n\t}\n\n\tprivate setControls() {\n\t\teffect(() => {\n\t\t\tconst [camera, defaultCamera, controlsRef] = [this.camera(), this.defaultCamera(), this.controlsRef()];\n\t\t\tconst controlsCamera = camera || defaultCamera;\n\t\t\tif (!controlsRef.nativeElement || controlsRef.nativeElement.object !== controlsCamera) {\n\t\t\t\tcontrolsRef.nativeElement = new OrbitControls(controlsCamera as NgtCamera);\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate connectElement() {\n\t\teffect((onCleanup) => {\n\t\t\tconst [keyEvents, domElement, controls] = [\n\t\t\t\tthis.keyEvents(),\n\t\t\t\tthis.domElement() || this.store.get('events', 'connected') || this.glDomElement(),\n\t\t\t\tthis.controlsRef().nativeElement,\n\t\t\t\tthis.invalidate(),\n\t\t\t\tthis.regress(),\n\t\t\t];\n\t\t\tif (!controls) return;\n\t\t\tif (keyEvents) {\n\t\t\t\tcontrols.connect(keyEvents === true ? domElement : keyEvents);\n\t\t\t} else {\n\t\t\t\tcontrols.connect(domElement);\n\t\t\t}\n\t\t\tonCleanup(() => void controls.dispose());\n\t\t});\n\t}\n\n\tprivate makeControlsDefault() {\n\t\teffect((onCleanup) => {\n\t\t\tconst [controls, makeDefault] = [this.controlsRef().nativeElement, this.makeDefault()];\n\t\t\tif (!controls) return;\n\t\t\tif (makeDefault) {\n\t\t\t\tconst oldControls = this.store.get('controls');\n\t\t\t\tthis.store.update({ controls });\n\t\t\t\tonCleanup(() => void this.store.update({ controls: oldControls }));\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate setEvents() {\n\t\teffect((onCleanup) => {\n\t\t\tconst [controls, invalidate, performanceRegress, regress] = [\n\t\t\t\tthis.controlsRef().nativeElement,\n\t\t\t\tthis.invalidate(),\n\t\t\t\tthis.performanceRegress(),\n\t\t\t\tthis.regress(),\n\t\t\t];\n\t\t\tif (!controls) return;\n\t\t\tconst changeCallback: (e: Event) => void = (e) => {\n\t\t\t\tinvalidate();\n\t\t\t\tif (regress) performanceRegress();\n\t\t\t\tthis.changed.emit(e);\n\t\t\t};\n\n\t\t\tconst startCallback = this.started.emit.bind(this.started);\n\t\t\tconst endCallback = this.ended.emit.bind(this.ended);\n\n\t\t\tcontrols.addEventListener('change', changeCallback);\n\t\t\tcontrols.addEventListener('start', startCallback);\n\t\t\tcontrols.addEventListener('end', endCallback);\n\n\t\t\tonCleanup(() => {\n\t\t\t\tcontrols.removeEventListener('change', changeCallback);\n\t\t\t\tcontrols.removeEventListener('start', startCallback);\n\t\t\t\tcontrols.removeEventListener('end', endCallback);\n\t\t\t});\n\t\t});\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -3,7 +3,8 @@ import { assertInjector } from 'ngxtension/assert-injector';
3
3
  import { DRACOLoader, MeshoptDecoder, GLTFLoader } from 'three-stdlib';
4
4
  import * as i0 from '@angular/core';
5
5
  import { inject, ChangeDetectorRef, signal, untracked, computed, input, viewChild, effect, Component, ChangeDetectionStrategy } from '@angular/core';
6
- import * as THREE from 'three';
6
+ import { mergeInputs } from 'ngxtension/inject-inputs';
7
+ import { DefaultLoadingManager, TextureLoader, Texture } from 'three';
7
8
 
8
9
  let dracoLoader = null;
9
10
  let decoderPath = 'https://www.gstatic.com/draco/versioned/decoders/1.5.5/';
@@ -25,10 +26,7 @@ function _extensions(useDraco, useMeshOpt, extensions) {
25
26
  };
26
27
  }
27
28
  function _injectNgtsGLTFLoader(path, { useDraco = true, useMeshOpt = true, injector, extensions, } = {}) {
28
- return assertInjector(_injectNgtsGLTFLoader, injector, () => injectNgtLoader(() => GLTFLoader, path, {
29
- // TODO: fix "as any" when three-stdlib is updated with THREE 0.156
30
- extensions: _extensions(useDraco, useMeshOpt, extensions),
31
- }));
29
+ return assertInjector(_injectNgtsGLTFLoader, injector, () => injectNgtLoader(() => GLTFLoader, path, { extensions: _extensions(useDraco, useMeshOpt, extensions) }));
32
30
  }
33
31
  _injectNgtsGLTFLoader.preload = (path, { useDraco = true, useMeshOpt = true, extensions, } = {}) => {
34
32
  injectNgtLoader.preload(() => GLTFLoader, path, _extensions(useDraco, useMeshOpt, extensions));
@@ -43,7 +41,7 @@ function injectNgtsProgress(injector) {
43
41
  const cdr = inject(ChangeDetectorRef);
44
42
  const progress = signal({ errors: [], active: false, progress: 0, item: '', loaded: 0, total: 0 });
45
43
  let saveLastTotalLoaded = 0;
46
- THREE.DefaultLoadingManager.onStart = (item, loaded, total) => {
44
+ DefaultLoadingManager.onStart = (item, loaded, total) => {
47
45
  untracked(() => {
48
46
  progress.update((prev) => ({
49
47
  ...prev,
@@ -56,19 +54,19 @@ function injectNgtsProgress(injector) {
56
54
  });
57
55
  cdr.detectChanges();
58
56
  };
59
- THREE.DefaultLoadingManager.onLoad = () => {
57
+ DefaultLoadingManager.onLoad = () => {
60
58
  untracked(() => {
61
59
  progress.update((prev) => ({ ...prev, active: false }));
62
60
  });
63
61
  cdr.detectChanges();
64
62
  };
65
- THREE.DefaultLoadingManager.onError = (url) => {
63
+ DefaultLoadingManager.onError = (url) => {
66
64
  untracked(() => {
67
65
  progress.update((prev) => ({ ...prev, errors: [...prev.errors, url] }));
68
66
  });
69
67
  cdr.detectChanges();
70
68
  };
71
- THREE.DefaultLoadingManager.onProgress = (item, loaded, total) => {
69
+ DefaultLoadingManager.onProgress = (item, loaded, total) => {
72
70
  if (loaded === total)
73
71
  saveLastTotalLoaded = total;
74
72
  untracked(() => {
@@ -87,17 +85,26 @@ function injectNgtsProgress(injector) {
87
85
  }
88
86
 
89
87
  const defaultDataInterpolation = (p) => `Loading ${p.toFixed(2)}%`;
88
+ const defaultOptions = {
89
+ containerClass: '',
90
+ innerClass: '',
91
+ barClass: '',
92
+ dataClass: '',
93
+ dataInterpolation: defaultDataInterpolation,
94
+ initialState: (value) => value,
95
+ };
90
96
  class NgtsLoader {
91
97
  constructor() {
92
98
  this.progressState = injectNgtsProgress();
93
99
  this.active = computed(() => this.progressState().active);
94
100
  this.progress = computed(() => this.progressState().progress);
95
- this.containerClass = input('');
96
- this.innerClass = input('');
97
- this.barClass = input('');
98
- this.dataClass = input('');
99
- this.dataInterpolation = input(defaultDataInterpolation);
100
- this.initialState = input((active) => active);
101
+ this.options = input(defaultOptions, { transform: mergeInputs(defaultOptions) });
102
+ this.containerClass = computed(() => this.options().containerClass);
103
+ this.innerClass = computed(() => this.options().innerClass);
104
+ this.barClass = computed(() => this.options().barClass);
105
+ this.dataClass = computed(() => this.options().dataClass);
106
+ this.initialState = computed(() => this.options().initialState);
107
+ this.dataInterpolation = computed(() => this.options().dataInterpolation);
101
108
  this.progressSpanRef = viewChild('progressSpanRef');
102
109
  this.shown = signal(this.initialState()(this.active()));
103
110
  this.setShown();
@@ -135,37 +142,45 @@ class NgtsLoader {
135
142
  onCleanup(() => cancelAnimationFrame(rafId));
136
143
  });
137
144
  }
138
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgtsLoader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
139
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0", type: NgtsLoader, isStandalone: true, selector: "ngts-loader", inputs: { containerClass: { classPropertyName: "containerClass", publicName: "containerClass", isSignal: true, isRequired: false, transformFunction: null }, innerClass: { classPropertyName: "innerClass", publicName: "innerClass", isSignal: true, isRequired: false, transformFunction: null }, barClass: { classPropertyName: "barClass", publicName: "barClass", isSignal: true, isRequired: false, transformFunction: null }, dataClass: { classPropertyName: "dataClass", publicName: "dataClass", isSignal: true, isRequired: false, transformFunction: null }, dataInterpolation: { classPropertyName: "dataInterpolation", publicName: "dataInterpolation", isSignal: true, isRequired: false, transformFunction: null }, initialState: { classPropertyName: "initialState", publicName: "initialState", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "progressSpanRef", first: true, predicate: ["progressSpanRef"], descendants: true, isSignal: true }], ngImport: i0, template: `
145
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtsLoader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
146
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", 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: `
140
147
  @if (shown()) {
141
148
  <div
142
149
  class="ngts-loader-container"
143
- [class]="containerClass()"
150
+ [class]="containerClass() || ''"
144
151
  [style.--ngts-loader-container-opacity]="active() ? 1 : 0"
145
152
  >
146
153
  <div>
147
- <div class="ngts-loader-inner" [class]="innerClass()">
148
- <div class="ngts-loader-bar" [class]="barClass()" [style.--ngts-loader-bar-scale]="progress() / 100"></div>
149
- <span #progressSpanRef class="ngts-loader-data" [class]="dataClass()"></span>
154
+ <div class="ngts-loader-inner" [class]="innerClass() || ''">
155
+ <div
156
+ class="ngts-loader-bar"
157
+ [class]="barClass() || ''"
158
+ [style.--ngts-loader-bar-scale]="progress() / 100"
159
+ ></div>
160
+ <span #progressSpanRef class="ngts-loader-data" [class]="dataClass() || ''"></span>
150
161
  </div>
151
162
  </div>
152
163
  </div>
153
164
  }
154
165
  `, 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 }); }
155
166
  }
156
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImport: i0, type: NgtsLoader, decorators: [{
167
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NgtsLoader, decorators: [{
157
168
  type: Component,
158
169
  args: [{ selector: 'ngts-loader', standalone: true, template: `
159
170
  @if (shown()) {
160
171
  <div
161
172
  class="ngts-loader-container"
162
- [class]="containerClass()"
173
+ [class]="containerClass() || ''"
163
174
  [style.--ngts-loader-container-opacity]="active() ? 1 : 0"
164
175
  >
165
176
  <div>
166
- <div class="ngts-loader-inner" [class]="innerClass()">
167
- <div class="ngts-loader-bar" [class]="barClass()" [style.--ngts-loader-bar-scale]="progress() / 100"></div>
168
- <span #progressSpanRef class="ngts-loader-data" [class]="dataClass()"></span>
177
+ <div class="ngts-loader-inner" [class]="innerClass() || ''">
178
+ <div
179
+ class="ngts-loader-bar"
180
+ [class]="barClass() || ''"
181
+ [style.--ngts-loader-bar-scale]="progress() / 100"
182
+ ></div>
183
+ <span #progressSpanRef class="ngts-loader-data" [class]="dataClass() || ''"></span>
169
184
  </div>
170
185
  </div>
171
186
  </div>
@@ -176,7 +191,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
176
191
  function _injectNgtsTextureLoader(input, { onLoad, injector } = {}) {
177
192
  return assertInjector(_injectNgtsTextureLoader, injector, () => {
178
193
  const store = injectNgtStore();
179
- const result = injectNgtLoader(() => THREE.TextureLoader, input);
194
+ const result = injectNgtLoader(() => TextureLoader, input);
180
195
  effect(() => {
181
196
  const textures = result();
182
197
  if (!textures)
@@ -185,7 +200,7 @@ function _injectNgtsTextureLoader(input, { onLoad, injector } = {}) {
185
200
  if ('initTexture' in gl) {
186
201
  const array = Array.isArray(textures)
187
202
  ? textures
188
- : textures instanceof THREE.Texture
203
+ : textures instanceof Texture
189
204
  ? [textures]
190
205
  : Object.values(textures);
191
206
  if (onLoad)
@@ -197,7 +212,7 @@ function _injectNgtsTextureLoader(input, { onLoad, injector } = {}) {
197
212
  });
198
213
  }
199
214
  _injectNgtsTextureLoader.preload = (input) => {
200
- injectNgtLoader.preload(() => THREE.TextureLoader, input);
215
+ injectNgtLoader.preload(() => TextureLoader, input);
201
216
  };
202
217
  const injectNgtsTextureLoader = _injectNgtsTextureLoader;
203
218
 
@@ -1 +1 @@
1
- {"version":3,"file":"angular-three-soba-loaders.mjs","sources":["../../../../libs/soba/loaders/src/gltf-loader/gltf-loader.ts","../../../../libs/soba/loaders/src/progress/progress.ts","../../../../libs/soba/loaders/src/loader/loader.ts","../../../../libs/soba/loaders/src/texture-loader/texture-loader.ts","../../../../libs/soba/loaders/src/angular-three-soba-loaders.ts"],"sourcesContent":["import type { Injector, Signal } from '@angular/core';\nimport { injectNgtLoader, type NgtLoaderResults, type NgtObjectMap } from 'angular-three';\nimport { assertInjector } from 'ngxtension/assert-injector';\nimport type * as THREE from 'three';\nimport { DRACOLoader, GLTFLoader, MeshoptDecoder, type GLTF } from 'three-stdlib';\n\nlet dracoLoader: DRACOLoader | null = null;\nlet decoderPath = 'https://www.gstatic.com/draco/versioned/decoders/1.5.5/';\n\nfunction _extensions(useDraco: boolean | string, useMeshOpt: boolean, extensions?: (loader: GLTFLoader) => void) {\n\treturn (loader: THREE.Loader) => {\n\t\tif (extensions) {\n\t\t\textensions(loader as GLTFLoader);\n\t\t}\n\n\t\tif (useDraco) {\n\t\t\tif (!dracoLoader) {\n\t\t\t\tdracoLoader = new DRACOLoader();\n\t\t\t}\n\n\t\t\tdracoLoader.setDecoderPath(typeof useDraco === 'string' ? useDraco : decoderPath);\n\t\t\t(loader as GLTFLoader).setDRACOLoader(dracoLoader);\n\t\t}\n\t\tif (useMeshOpt) {\n\t\t\t(loader as GLTFLoader).setMeshoptDecoder(\n\t\t\t\ttypeof MeshoptDecoder === 'function' ? MeshoptDecoder() : MeshoptDecoder,\n\t\t\t);\n\t\t}\n\t};\n}\n\nexport type NgtsGLTF<T extends Partial<NgtObjectMap>> = GLTF & NgtObjectMap & T;\n\nfunction _injectNgtsGLTFLoader<TUrl extends string | string[] | Record<string, string>>(\n\tpath: () => TUrl,\n\t{\n\t\tuseDraco = true,\n\t\tuseMeshOpt = true,\n\t\tinjector,\n\t\textensions,\n\t}: {\n\t\tuseDraco?: boolean | string;\n\t\tuseMeshOpt?: boolean;\n\t\tinjector?: Injector;\n\t\textensions?: (loader: GLTFLoader) => void;\n\t} = {},\n): Signal<NgtLoaderResults<TUrl, GLTF & NgtObjectMap> | null> {\n\treturn assertInjector(_injectNgtsGLTFLoader, injector, () =>\n\t\tinjectNgtLoader(() => GLTFLoader, path, {\n\t\t\t// TODO: fix \"as any\" when three-stdlib is updated with THREE 0.156\n\t\t\textensions: _extensions(useDraco, useMeshOpt, extensions),\n\t\t}),\n\t) as Signal<NgtLoaderResults<TUrl, GLTF & NgtObjectMap> | null>;\n}\n\n_injectNgtsGLTFLoader.preload = <TUrl extends string | string[] | Record<string, string>>(\n\tpath: () => TUrl,\n\t{\n\t\tuseDraco = true,\n\t\tuseMeshOpt = true,\n\t\textensions,\n\t}: {\n\t\tuseDraco?: boolean | string;\n\t\tuseMeshOpt?: boolean;\n\t\textensions?: (loader: GLTFLoader) => void;\n\t} = {},\n) => {\n\tinjectNgtLoader.preload(() => GLTFLoader, path, _extensions(useDraco, useMeshOpt, extensions) as any);\n};\n\n_injectNgtsGLTFLoader.setDecoderPath = (path: string) => {\n\tdecoderPath = path;\n};\n\nexport type NgtsGLTFLoader = typeof _injectNgtsGLTFLoader;\nexport const injectNgtsGLTFLoader: NgtsGLTFLoader = _injectNgtsGLTFLoader;\n","import { ChangeDetectorRef, inject, signal, untracked, type Injector } from '@angular/core';\nimport { assertInjector } from 'ngxtension/assert-injector';\nimport * as THREE from 'three';\n\nexport function injectNgtsProgress(injector?: Injector) {\n\treturn assertInjector(injectNgtsProgress, injector, () => {\n\t\tconst cdr = inject(ChangeDetectorRef);\n\n\t\tconst progress = signal<{\n\t\t\terrors: string[];\n\t\t\tactive: boolean;\n\t\t\tprogress: number;\n\t\t\titem: string;\n\t\t\tloaded: number;\n\t\t\ttotal: number;\n\t\t}>({ errors: [], active: false, progress: 0, item: '', loaded: 0, total: 0 });\n\n\t\tlet saveLastTotalLoaded = 0;\n\n\t\tTHREE.DefaultLoadingManager.onStart = (item, loaded, total) => {\n\t\t\tuntracked(() => {\n\t\t\t\tprogress.update((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\tactive: true,\n\t\t\t\t\titem,\n\t\t\t\t\tloaded,\n\t\t\t\t\ttotal,\n\t\t\t\t\tprogress: ((loaded - saveLastTotalLoaded) / (total - saveLastTotalLoaded)) * 100,\n\t\t\t\t}));\n\t\t\t});\n\n\t\t\tcdr.detectChanges();\n\t\t};\n\n\t\tTHREE.DefaultLoadingManager.onLoad = () => {\n\t\t\tuntracked(() => {\n\t\t\t\tprogress.update((prev) => ({ ...prev, active: false }));\n\t\t\t});\n\t\t\tcdr.detectChanges();\n\t\t};\n\n\t\tTHREE.DefaultLoadingManager.onError = (url) => {\n\t\t\tuntracked(() => {\n\t\t\t\tprogress.update((prev) => ({ ...prev, errors: [...prev.errors, url] }));\n\t\t\t});\n\t\t\tcdr.detectChanges();\n\t\t};\n\n\t\tTHREE.DefaultLoadingManager.onProgress = (item, loaded, total) => {\n\t\t\tif (loaded === total) saveLastTotalLoaded = total;\n\t\t\tuntracked(() => {\n\t\t\t\tprogress.update((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\titem,\n\t\t\t\t\tloaded,\n\t\t\t\t\ttotal,\n\t\t\t\t\tprogress: ((loaded - saveLastTotalLoaded) / (total - saveLastTotalLoaded)) * 100 || 100,\n\t\t\t\t}));\n\t\t\t});\n\n\t\t\tcdr.detectChanges();\n\t\t};\n\n\t\treturn progress.asReadonly();\n\t});\n}\n","import {\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\tcomputed,\n\teffect,\n\tinput,\n\tsignal,\n\tuntracked,\n\tviewChild,\n} from '@angular/core';\nimport { injectNgtsProgress } from '../progress/progress';\n\nconst defaultDataInterpolation = (p: number) => `Loading ${p.toFixed(2)}%`;\n\n@Component({\n\tselector: 'ngts-loader',\n\tstandalone: true,\n\ttemplate: `\n\t\t@if (shown()) {\n\t\t\t<div\n\t\t\t\tclass=\"ngts-loader-container\"\n\t\t\t\t[class]=\"containerClass()\"\n\t\t\t\t[style.--ngts-loader-container-opacity]=\"active() ? 1 : 0\"\n\t\t\t>\n\t\t\t\t<div>\n\t\t\t\t\t<div class=\"ngts-loader-inner\" [class]=\"innerClass()\">\n\t\t\t\t\t\t<div class=\"ngts-loader-bar\" [class]=\"barClass()\" [style.--ngts-loader-bar-scale]=\"progress() / 100\"></div>\n\t\t\t\t\t\t<span #progressSpanRef class=\"ngts-loader-data\" [class]=\"dataClass()\"></span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t}\n\t`,\n\tstyleUrls: ['./loader.css'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtsLoader {\n\tprivate progressState = injectNgtsProgress();\n\n\tactive = computed(() => this.progressState().active);\n\tprogress = computed(() => this.progressState().progress);\n\n\tcontainerClass = input<string>('');\n\tinnerClass = input<string>('');\n\tbarClass = input<string>('');\n\tdataClass = input<string>('');\n\tdataInterpolation = input<(value: number) => string>(defaultDataInterpolation);\n\tinitialState = input<(value: boolean) => boolean>((active) => active);\n\n\tprogressSpanRef = viewChild<ElementRef<HTMLSpanElement>>('progressSpanRef');\n\n\tshown = signal(this.initialState()(this.active()));\n\n\tconstructor() {\n\t\tthis.setShown();\n\t\tthis.updateProgress();\n\t}\n\n\tprivate setShown() {\n\t\teffect((onCleanup) => {\n\t\t\tconst [active, lastShown] = [this.active(), untracked(this.shown)];\n\t\t\tif (lastShown !== active) {\n\t\t\t\tconst timeoutId = setTimeout(() => {\n\t\t\t\t\tthis.shown.set(active);\n\t\t\t\t}, 300);\n\t\t\t\tonCleanup(() => clearTimeout(timeoutId));\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate updateProgress() {\n\t\tlet progressRef = 0;\n\t\tlet rafId: ReturnType<typeof requestAnimationFrame>;\n\n\t\teffect((onCleanup) => {\n\t\t\tconst [dataInterpolation, progress] = [this.dataInterpolation(), this.progress()];\n\t\t\tconst updateProgress = () => {\n\t\t\t\tconst progressSpan = this.progressSpanRef()?.nativeElement;\n\t\t\t\tif (!progressSpan) return;\n\t\t\t\tprogressRef += (progress - progressRef) / 2;\n\t\t\t\tif (progressRef > 0.95 * progress || progress === 100) progressRef = progress;\n\t\t\t\tprogressSpan.innerText = dataInterpolation(progressRef);\n\t\t\t\tif (progressRef < progress) {\n\t\t\t\t\trafId = requestAnimationFrame(updateProgress);\n\t\t\t\t}\n\t\t\t};\n\t\t\tupdateProgress();\n\t\t\tonCleanup(() => cancelAnimationFrame(rafId));\n\t\t});\n\t}\n}\n","import { effect, Injector, type Signal } from '@angular/core';\nimport { injectNgtLoader, injectNgtStore, type NgtLoaderResults } from 'angular-three';\nimport { assertInjector } from 'ngxtension/assert-injector';\nimport * as THREE from 'three';\n\nfunction _injectNgtsTextureLoader<TInput extends string[] | string | Record<string, string>>(\n\tinput: () => TInput,\n\t{ onLoad, injector }: { onLoad?: (texture: THREE.Texture[]) => void; injector?: Injector } = {},\n): Signal<NgtLoaderResults<TInput, THREE.Texture> | null> {\n\treturn assertInjector(_injectNgtsTextureLoader, injector, () => {\n\t\tconst store = injectNgtStore();\n\t\tconst result = injectNgtLoader(() => THREE.TextureLoader, input);\n\n\t\teffect(() => {\n\t\t\tconst textures = result();\n\t\t\tif (!textures) return;\n\t\t\tconst gl = store.get('gl');\n\t\t\tif ('initTexture' in gl) {\n\t\t\t\tconst array = Array.isArray(textures)\n\t\t\t\t\t? textures\n\t\t\t\t\t: textures instanceof THREE.Texture\n\t\t\t\t\t\t? [textures]\n\t\t\t\t\t\t: Object.values(textures);\n\t\t\t\tif (onLoad) onLoad(array);\n\t\t\t\tarray.forEach(gl.initTexture.bind(gl));\n\t\t\t}\n\t\t});\n\n\t\treturn result;\n\t});\n}\n\n_injectNgtsTextureLoader.preload = <TInput extends string[] | string | Record<string, string>>(input: () => TInput) => {\n\tinjectNgtLoader.preload(() => THREE.TextureLoader, input);\n};\n\nexport type NgtsTextureLoader = typeof _injectNgtsTextureLoader;\nexport const injectNgtsTextureLoader: NgtsTextureLoader = _injectNgtsTextureLoader;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"angular-three-soba-loaders.mjs","sources":["../../../../libs/soba/loaders/src/gltf-loader/gltf-loader.ts","../../../../libs/soba/loaders/src/progress/progress.ts","../../../../libs/soba/loaders/src/loader/loader.ts","../../../../libs/soba/loaders/src/texture-loader/texture-loader.ts","../../../../libs/soba/loaders/src/angular-three-soba-loaders.ts"],"sourcesContent":["import { Injector, Signal } from '@angular/core';\nimport { NgtLoaderResults, NgtObjectMap, injectNgtLoader } from 'angular-three';\nimport { assertInjector } from 'ngxtension/assert-injector';\nimport { Loader } from 'three';\nimport { DRACOLoader, GLTF, GLTFLoader, MeshoptDecoder } from 'three-stdlib';\n\nlet dracoLoader: DRACOLoader | null = null;\nlet decoderPath = 'https://www.gstatic.com/draco/versioned/decoders/1.5.5/';\n\nfunction _extensions(useDraco: boolean | string, useMeshOpt: boolean, extensions?: (loader: GLTFLoader) => void) {\n\treturn (loader: Loader) => {\n\t\tif (extensions) {\n\t\t\textensions(loader as GLTFLoader);\n\t\t}\n\n\t\tif (useDraco) {\n\t\t\tif (!dracoLoader) {\n\t\t\t\tdracoLoader = new DRACOLoader();\n\t\t\t}\n\n\t\t\tdracoLoader.setDecoderPath(typeof useDraco === 'string' ? useDraco : decoderPath);\n\t\t\t(loader as GLTFLoader).setDRACOLoader(dracoLoader);\n\t\t}\n\t\tif (useMeshOpt) {\n\t\t\t(loader as GLTFLoader).setMeshoptDecoder(\n\t\t\t\ttypeof MeshoptDecoder === 'function' ? MeshoptDecoder() : MeshoptDecoder,\n\t\t\t);\n\t\t}\n\t};\n}\n\nexport type NgtsGLTF<T extends Partial<NgtObjectMap>> = GLTF & NgtObjectMap & T;\n\nfunction _injectNgtsGLTFLoader<TUrl extends string | string[] | Record<string, string>>(\n\tpath: () => TUrl,\n\t{\n\t\tuseDraco = true,\n\t\tuseMeshOpt = true,\n\t\tinjector,\n\t\textensions,\n\t}: {\n\t\tuseDraco?: boolean | string;\n\t\tuseMeshOpt?: boolean;\n\t\tinjector?: Injector;\n\t\textensions?: (loader: GLTFLoader) => void;\n\t} = {},\n): Signal<NgtLoaderResults<TUrl, GLTF & NgtObjectMap> | null> {\n\treturn assertInjector(_injectNgtsGLTFLoader, injector, () =>\n\t\tinjectNgtLoader(() => GLTFLoader, path, { extensions: _extensions(useDraco, useMeshOpt, extensions) }),\n\t) as Signal<NgtLoaderResults<TUrl, GLTF & NgtObjectMap> | null>;\n}\n\n_injectNgtsGLTFLoader.preload = <TUrl extends string | string[] | Record<string, string>>(\n\tpath: () => TUrl,\n\t{\n\t\tuseDraco = true,\n\t\tuseMeshOpt = true,\n\t\textensions,\n\t}: { useDraco?: boolean | string; useMeshOpt?: boolean; extensions?: (loader: GLTFLoader) => void } = {},\n) => {\n\tinjectNgtLoader.preload(() => GLTFLoader, path, _extensions(useDraco, useMeshOpt, extensions) as any);\n};\n\n_injectNgtsGLTFLoader.setDecoderPath = (path: string) => {\n\tdecoderPath = path;\n};\n\nexport type NgtsGLTFLoader = typeof _injectNgtsGLTFLoader;\nexport const injectNgtsGLTFLoader: NgtsGLTFLoader = _injectNgtsGLTFLoader;\n","import { ChangeDetectorRef, Injector, inject, signal, untracked } from '@angular/core';\nimport { assertInjector } from 'ngxtension/assert-injector';\nimport { DefaultLoadingManager } from 'three';\n\nexport function injectNgtsProgress(injector?: Injector) {\n\treturn assertInjector(injectNgtsProgress, injector, () => {\n\t\tconst cdr = inject(ChangeDetectorRef);\n\n\t\tconst progress = signal<{\n\t\t\terrors: string[];\n\t\t\tactive: boolean;\n\t\t\tprogress: number;\n\t\t\titem: string;\n\t\t\tloaded: number;\n\t\t\ttotal: number;\n\t\t}>({ errors: [], active: false, progress: 0, item: '', loaded: 0, total: 0 });\n\n\t\tlet saveLastTotalLoaded = 0;\n\n\t\tDefaultLoadingManager.onStart = (item, loaded, total) => {\n\t\t\tuntracked(() => {\n\t\t\t\tprogress.update((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\tactive: true,\n\t\t\t\t\titem,\n\t\t\t\t\tloaded,\n\t\t\t\t\ttotal,\n\t\t\t\t\tprogress: ((loaded - saveLastTotalLoaded) / (total - saveLastTotalLoaded)) * 100,\n\t\t\t\t}));\n\t\t\t});\n\n\t\t\tcdr.detectChanges();\n\t\t};\n\n\t\tDefaultLoadingManager.onLoad = () => {\n\t\t\tuntracked(() => {\n\t\t\t\tprogress.update((prev) => ({ ...prev, active: false }));\n\t\t\t});\n\t\t\tcdr.detectChanges();\n\t\t};\n\n\t\tDefaultLoadingManager.onError = (url) => {\n\t\t\tuntracked(() => {\n\t\t\t\tprogress.update((prev) => ({ ...prev, errors: [...prev.errors, url] }));\n\t\t\t});\n\t\t\tcdr.detectChanges();\n\t\t};\n\n\t\tDefaultLoadingManager.onProgress = (item, loaded, total) => {\n\t\t\tif (loaded === total) saveLastTotalLoaded = total;\n\t\t\tuntracked(() => {\n\t\t\t\tprogress.update((prev) => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\titem,\n\t\t\t\t\tloaded,\n\t\t\t\t\ttotal,\n\t\t\t\t\tprogress: ((loaded - saveLastTotalLoaded) / (total - saveLastTotalLoaded)) * 100 || 100,\n\t\t\t\t}));\n\t\t\t});\n\n\t\t\tcdr.detectChanges();\n\t\t};\n\n\t\treturn progress.asReadonly();\n\t});\n}\n","import {\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\tcomputed,\n\teffect,\n\tinput,\n\tsignal,\n\tuntracked,\n\tviewChild,\n} from '@angular/core';\nimport { mergeInputs } from 'ngxtension/inject-inputs';\nimport { injectNgtsProgress } from '../progress/progress';\n\nconst defaultDataInterpolation = (p: number) => `Loading ${p.toFixed(2)}%`;\n\nexport interface NgtsLoaderState {\n\tcontainerClass?: string;\n\tinnerClass?: string;\n\tbarClass?: string;\n\tdataClass?: string;\n\tdataInterpolation: (value: number) => string;\n\tinitialState: (value: boolean) => boolean;\n}\n\nconst defaultOptions: NgtsLoaderState = {\n\tcontainerClass: '',\n\tinnerClass: '',\n\tbarClass: '',\n\tdataClass: '',\n\tdataInterpolation: defaultDataInterpolation,\n\tinitialState: (value) => value,\n};\n\n@Component({\n\tselector: 'ngts-loader',\n\tstandalone: true,\n\ttemplate: `\n\t\t@if (shown()) {\n\t\t\t<div\n\t\t\t\tclass=\"ngts-loader-container\"\n\t\t\t\t[class]=\"containerClass() || ''\"\n\t\t\t\t[style.--ngts-loader-container-opacity]=\"active() ? 1 : 0\"\n\t\t\t>\n\t\t\t\t<div>\n\t\t\t\t\t<div class=\"ngts-loader-inner\" [class]=\"innerClass() || ''\">\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclass=\"ngts-loader-bar\"\n\t\t\t\t\t\t\t[class]=\"barClass() || ''\"\n\t\t\t\t\t\t\t[style.--ngts-loader-bar-scale]=\"progress() / 100\"\n\t\t\t\t\t\t></div>\n\t\t\t\t\t\t<span #progressSpanRef class=\"ngts-loader-data\" [class]=\"dataClass() || ''\"></span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t}\n\t`,\n\tstyleUrls: ['./loader.css'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtsLoader {\n\tprivate progressState = injectNgtsProgress();\n\n\tactive = computed(() => this.progressState().active);\n\tprogress = computed(() => this.progressState().progress);\n\n\toptions = input(defaultOptions, { transform: mergeInputs(defaultOptions) });\n\n\tcontainerClass = computed(() => this.options().containerClass);\n\tinnerClass = computed(() => this.options().innerClass);\n\tbarClass = computed(() => this.options().barClass);\n\tdataClass = computed(() => this.options().dataClass);\n\tinitialState = computed(() => this.options().initialState);\n\tdataInterpolation = computed(() => this.options().dataInterpolation);\n\n\tprogressSpanRef = viewChild<ElementRef<HTMLSpanElement>>('progressSpanRef');\n\n\tshown = signal(this.initialState()(this.active()));\n\n\tconstructor() {\n\t\tthis.setShown();\n\t\tthis.updateProgress();\n\t}\n\n\tprivate setShown() {\n\t\teffect((onCleanup) => {\n\t\t\tconst [active, lastShown] = [this.active(), untracked(this.shown)];\n\t\t\tif (lastShown !== active) {\n\t\t\t\tconst timeoutId = setTimeout(() => {\n\t\t\t\t\tthis.shown.set(active);\n\t\t\t\t}, 300);\n\t\t\t\tonCleanup(() => clearTimeout(timeoutId));\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate updateProgress() {\n\t\tlet progressRef = 0;\n\t\tlet rafId: ReturnType<typeof requestAnimationFrame>;\n\n\t\teffect((onCleanup) => {\n\t\t\tconst [dataInterpolation, progress] = [this.dataInterpolation(), this.progress()];\n\t\t\tconst updateProgress = () => {\n\t\t\t\tconst progressSpan = this.progressSpanRef()?.nativeElement;\n\t\t\t\tif (!progressSpan) return;\n\t\t\t\tprogressRef += (progress - progressRef) / 2;\n\t\t\t\tif (progressRef > 0.95 * progress || progress === 100) progressRef = progress;\n\t\t\t\tprogressSpan.innerText = dataInterpolation(progressRef);\n\t\t\t\tif (progressRef < progress) {\n\t\t\t\t\trafId = requestAnimationFrame(updateProgress);\n\t\t\t\t}\n\t\t\t};\n\t\t\tupdateProgress();\n\t\t\tonCleanup(() => cancelAnimationFrame(rafId));\n\t\t});\n\t}\n}\n","import { effect, Injector, Signal } from '@angular/core';\nimport { injectNgtLoader, injectNgtStore, NgtLoaderResults } from 'angular-three';\nimport { assertInjector } from 'ngxtension/assert-injector';\nimport { Texture, TextureLoader } from 'three';\n\nfunction _injectNgtsTextureLoader<TInput extends string[] | string | Record<string, string>>(\n\tinput: () => TInput,\n\t{ onLoad, injector }: { onLoad?: (texture: Texture[]) => void; injector?: Injector } = {},\n): Signal<NgtLoaderResults<TInput, Texture> | null> {\n\treturn assertInjector(_injectNgtsTextureLoader, injector, () => {\n\t\tconst store = injectNgtStore();\n\t\tconst result = injectNgtLoader(() => TextureLoader, input);\n\n\t\teffect(() => {\n\t\t\tconst textures = result();\n\t\t\tif (!textures) return;\n\t\t\tconst gl = store.get('gl');\n\t\t\tif ('initTexture' in gl) {\n\t\t\t\tconst array = Array.isArray(textures)\n\t\t\t\t\t? textures\n\t\t\t\t\t: textures instanceof Texture\n\t\t\t\t\t\t? [textures]\n\t\t\t\t\t\t: Object.values(textures);\n\t\t\t\tif (onLoad) onLoad(array);\n\t\t\t\tarray.forEach(gl.initTexture.bind(gl));\n\t\t\t}\n\t\t});\n\n\t\treturn result;\n\t});\n}\n\n_injectNgtsTextureLoader.preload = <TInput extends string[] | string | Record<string, string>>(input: () => TInput) => {\n\tinjectNgtLoader.preload(() => TextureLoader, input);\n};\n\nexport type NgtsTextureLoader = typeof _injectNgtsTextureLoader;\nexport const injectNgtsTextureLoader: NgtsTextureLoader = _injectNgtsTextureLoader;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import type { Injector, Signal } from '@angular/core';
2
- import { type NgtLoaderResults, type NgtObjectMap } from 'angular-three';
3
- import { GLTFLoader, type GLTF } from 'three-stdlib';
1
+ import { Injector, Signal } from '@angular/core';
2
+ import { NgtLoaderResults, NgtObjectMap } from 'angular-three';
3
+ import { GLTF, GLTFLoader } from 'three-stdlib';
4
4
  export type NgtsGLTF<T extends Partial<NgtObjectMap>> = GLTF & NgtObjectMap & T;
5
5
  declare function _injectNgtsGLTFLoader<TUrl extends string | string[] | Record<string, string>>(path: () => TUrl, { useDraco, useMeshOpt, injector, extensions, }?: {
6
6
  useDraco?: boolean | string;
@@ -1,20 +1,29 @@
1
1
  import { ElementRef } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
+ export interface NgtsLoaderState {
4
+ containerClass?: string;
5
+ innerClass?: string;
6
+ barClass?: string;
7
+ dataClass?: string;
8
+ dataInterpolation: (value: number) => string;
9
+ initialState: (value: boolean) => boolean;
10
+ }
3
11
  export declare class NgtsLoader {
4
12
  private progressState;
5
13
  active: import("@angular/core").Signal<boolean>;
6
14
  progress: import("@angular/core").Signal<number>;
7
- containerClass: import("@angular/core").InputSignal<string>;
8
- innerClass: import("@angular/core").InputSignal<string>;
9
- barClass: import("@angular/core").InputSignal<string>;
10
- dataClass: import("@angular/core").InputSignal<string>;
11
- dataInterpolation: import("@angular/core").InputSignal<(value: number) => string>;
12
- initialState: import("@angular/core").InputSignal<(value: boolean) => boolean>;
15
+ options: import("@angular/core").InputSignalWithTransform<NgtsLoaderState, Partial<NgtsLoaderState>>;
16
+ containerClass: import("@angular/core").Signal<string | undefined>;
17
+ innerClass: import("@angular/core").Signal<string | undefined>;
18
+ barClass: import("@angular/core").Signal<string | undefined>;
19
+ dataClass: import("@angular/core").Signal<string | undefined>;
20
+ initialState: import("@angular/core").Signal<(value: boolean) => boolean>;
21
+ dataInterpolation: import("@angular/core").Signal<(value: number) => string>;
13
22
  progressSpanRef: import("@angular/core").Signal<ElementRef<HTMLSpanElement> | undefined>;
14
23
  shown: import("@angular/core").WritableSignal<boolean>;
15
24
  constructor();
16
25
  private setShown;
17
26
  private updateProgress;
18
27
  static ɵfac: i0.ɵɵFactoryDeclaration<NgtsLoader, never>;
19
- static ɵcmp: i0.ɵɵComponentDeclaration<NgtsLoader, "ngts-loader", never, { "containerClass": { "alias": "containerClass"; "required": false; "isSignal": true; }; "innerClass": { "alias": "innerClass"; "required": false; "isSignal": true; }; "barClass": { "alias": "barClass"; "required": false; "isSignal": true; }; "dataClass": { "alias": "dataClass"; "required": false; "isSignal": true; }; "dataInterpolation": { "alias": "dataInterpolation"; "required": false; "isSignal": true; }; "initialState": { "alias": "initialState"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
28
+ static ɵcmp: i0.ɵɵComponentDeclaration<NgtsLoader, "ngts-loader", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
20
29
  }
@@ -1,4 +1,4 @@
1
- import { type Injector } from '@angular/core';
1
+ import { Injector } from '@angular/core';
2
2
  export declare function injectNgtsProgress(injector?: Injector): import("@angular/core").Signal<{
3
3
  errors: string[];
4
4
  active: boolean;
@@ -1,10 +1,10 @@
1
- import { Injector, type Signal } from '@angular/core';
2
- import { type NgtLoaderResults } from 'angular-three';
3
- import * as THREE from 'three';
1
+ import { Injector, Signal } from '@angular/core';
2
+ import { NgtLoaderResults } from 'angular-three';
3
+ import { Texture } from 'three';
4
4
  declare function _injectNgtsTextureLoader<TInput extends string[] | string | Record<string, string>>(input: () => TInput, { onLoad, injector }?: {
5
- onLoad?: (texture: THREE.Texture[]) => void;
5
+ onLoad?: (texture: Texture[]) => void;
6
6
  injector?: Injector;
7
- }): Signal<NgtLoaderResults<TInput, THREE.Texture> | null>;
7
+ }): Signal<NgtLoaderResults<TInput, Texture> | null>;
8
8
  declare namespace _injectNgtsTextureLoader {
9
9
  var preload: <TInput extends string | Record<string, string> | string[]>(input: () => TInput) => void;
10
10
  }
package/package.json CHANGED
@@ -1,68 +1,70 @@
1
1
  {
2
- "name": "angular-three-soba",
3
- "version": "2.0.0-beta.230",
4
- "publishConfig": {
5
- "access": "public"
6
- },
7
- "repository": {
8
- "type": "git",
9
- "url": "https://github.com/angular-threejs/angular-three/tree/main/libs/soba"
10
- },
11
- "author": {
12
- "name": "Chau Tran",
13
- "email": "nartc7789@gmail.com",
14
- "url": "https://nartc.me"
15
- },
16
- "description": "Utilities for Angular Three",
17
- "keywords": [
18
- "angular",
19
- "threejs",
20
- "renderer",
21
- "utilities",
22
- "shaders"
23
- ],
24
- "license": "MIT",
25
- "exports": {
26
- "./assets/*": "./assets/*",
27
- "./package.json": {
28
- "default": "./package.json"
29
- },
30
- ".": {
31
- "types": "./index.d.ts",
32
- "esm2022": "./esm2022/angular-three-soba.mjs",
33
- "esm": "./esm2022/angular-three-soba.mjs",
34
- "default": "./fesm2022/angular-three-soba.mjs"
35
- },
36
- "./controls": {
37
- "types": "./controls/index.d.ts",
38
- "esm2022": "./esm2022/controls/angular-three-soba-controls.mjs",
39
- "esm": "./esm2022/controls/angular-three-soba-controls.mjs",
40
- "default": "./fesm2022/angular-three-soba-controls.mjs"
41
- },
42
- "./loaders": {
43
- "types": "./loaders/index.d.ts",
44
- "esm2022": "./esm2022/loaders/angular-three-soba-loaders.mjs",
45
- "esm": "./esm2022/loaders/angular-three-soba-loaders.mjs",
46
- "default": "./fesm2022/angular-three-soba-loaders.mjs"
47
- }
48
- },
49
- "peerDependencies": {
50
- "@angular/common": "^18.0.0",
51
- "@angular/core": "^18.0.0",
52
- "meshline": "^3.1.0",
53
- "ngxtension": "^3.0.0",
54
- "stats-gl": "^1.0.0",
55
- "stats.js": "^0.17.0",
56
- "three": ">=0.148.0",
57
- "three-mesh-bvh": "^0.5.0 || ^0.6.0",
58
- "three-stdlib": "^2.0.0",
59
- "troika-three-text": "^0.47.0"
60
- },
61
- "dependencies": {
62
- "tslib": "^2.3.0"
63
- },
64
- "sideEffects": false,
65
- "web-types": "./web-types.json",
66
- "module": "fesm2022/angular-three-soba.mjs",
67
- "typings": "index.d.ts"
2
+ "name": "angular-three-soba",
3
+ "version": "2.0.0-beta.231",
4
+ "publishConfig": {
5
+ "access": "public"
6
+ },
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "https://github.com/angular-threejs/angular-three/tree/main/libs/soba"
10
+ },
11
+ "author": {
12
+ "name": "Chau Tran",
13
+ "email": "nartc7789@gmail.com",
14
+ "url": "https://nartc.me"
15
+ },
16
+ "description": "Utilities for Angular Three",
17
+ "keywords": [
18
+ "angular",
19
+ "threejs",
20
+ "renderer",
21
+ "utilities",
22
+ "shaders"
23
+ ],
24
+ "license": "MIT",
25
+ "exports": {
26
+ "./assets/*": "./assets/*",
27
+ "./package.json": {
28
+ "default": "./package.json"
29
+ },
30
+ ".": {
31
+ "types": "./index.d.ts",
32
+ "esm2022": "./esm2022/angular-three-soba.mjs",
33
+ "esm": "./esm2022/angular-three-soba.mjs",
34
+ "default": "./fesm2022/angular-three-soba.mjs"
35
+ },
36
+ "./controls": {
37
+ "types": "./controls/index.d.ts",
38
+ "esm2022": "./esm2022/controls/angular-three-soba-controls.mjs",
39
+ "esm": "./esm2022/controls/angular-three-soba-controls.mjs",
40
+ "default": "./fesm2022/angular-three-soba-controls.mjs"
41
+ },
42
+ "./loaders": {
43
+ "types": "./loaders/index.d.ts",
44
+ "esm2022": "./esm2022/loaders/angular-three-soba-loaders.mjs",
45
+ "esm": "./esm2022/loaders/angular-three-soba-loaders.mjs",
46
+ "default": "./fesm2022/angular-three-soba-loaders.mjs"
47
+ }
48
+ },
49
+ "peerDependencies": {
50
+ "@angular/common": "^18.0.0",
51
+ "@angular/core": "^18.0.0",
52
+ "angular-three": "^2.0.0",
53
+ "meshline": "^3.1.0",
54
+ "ngxtension": "^3.0.0",
55
+ "stats-gl": "^1.0.0",
56
+ "stats.js": "^0.17.0",
57
+ "three": ">=0.148.0",
58
+ "three-mesh-bvh": "^0.5.0 || ^0.6.0",
59
+ "three-stdlib": "^2.0.0",
60
+ "troika-three-text": "^0.47.0"
61
+ },
62
+ "dependencies": {
63
+ "tslib": "^2.3.0"
64
+ },
65
+ "sideEffects": false,
66
+ "web-types": "./web-types.json",
67
+ "module": "fesm2022/angular-three-soba.mjs",
68
+ "typings": "index.d.ts"
68
69
  }
70
+