angular-three-soba 1.12.3 → 1.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,6 @@
1
+ export * from './lib/cube-texture-loader/cube-texture-loader';
1
2
  export * from './lib/gltf-loader/gltf-loader';
2
3
  export * from './lib/loader/loader';
3
4
  export * from './lib/progress/progress';
4
5
  export * from './lib/texture-loader/texture-loader';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9sb2FkZXJzL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHFDQUFxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvZ2x0Zi1sb2FkZXIvZ2x0Zi1sb2FkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbG9hZGVyL2xvYWRlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wcm9ncmVzcy9wcm9ncmVzcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZXh0dXJlLWxvYWRlci90ZXh0dXJlLWxvYWRlcic7XG4iXX0=
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdGhyZWUtc29iYS9sb2FkZXJzL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMscUNBQXFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9jdWJlLXRleHR1cmUtbG9hZGVyL2N1YmUtdGV4dHVyZS1sb2FkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZ2x0Zi1sb2FkZXIvZ2x0Zi1sb2FkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbG9hZGVyL2xvYWRlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wcm9ncmVzcy9wcm9ncmVzcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZXh0dXJlLWxvYWRlci90ZXh0dXJlLWxvYWRlcic7XG4iXX0=
@@ -0,0 +1,10 @@
1
+ import { injectNgtLoader } from 'angular-three';
2
+ import { isObservable, map, of } from 'rxjs';
3
+ import * as THREE from 'three';
4
+ export function injectCubeTextureLoader(files, path) {
5
+ const inputs$ = isObservable(files) ? files.pipe(map((f) => [f])) : of([files]);
6
+ return injectNgtLoader(() => THREE.CubeTextureLoader,
7
+ // @ts-expect-error CubeTexture accepts a string[] and pass into loader as [[...]]
8
+ inputs$, (loader) => loader.setPath(path)).pipe(map((textures) => textures[0]));
9
+ }
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ViZS10ZXh0dXJlLWxvYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci10aHJlZS1zb2JhL2xvYWRlcnMvc3JjL2xpYi9jdWJlLXRleHR1cmUtbG9hZGVyL2N1YmUtdGV4dHVyZS1sb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDekQsT0FBTyxLQUFLLEtBQUssTUFBTSxPQUFPLENBQUM7QUFFL0IsTUFBTSxVQUFVLHVCQUF1QixDQUNuQyxLQUFzQyxFQUN0QyxJQUFZO0lBRVosTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDaEYsT0FBTyxlQUFlLENBQ2xCLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxpQkFBaUI7SUFDN0Isa0ZBQWtGO0lBQ2xGLE9BQU8sRUFDUCxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FDbkMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBRSxRQUFnQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0Tmd0TG9hZGVyIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBpc09ic2VydmFibGUsIG1hcCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdEN1YmVUZXh0dXJlTG9hZGVyKFxuICAgIGZpbGVzOiBzdHJpbmdbXSB8IE9ic2VydmFibGU8c3RyaW5nW10+LFxuICAgIHBhdGg6IHN0cmluZ1xuKTogT2JzZXJ2YWJsZTxUSFJFRS5DdWJlVGV4dHVyZT4ge1xuICAgIGNvbnN0IGlucHV0cyQgPSBpc09ic2VydmFibGUoZmlsZXMpID8gZmlsZXMucGlwZShtYXAoKGYpID0+IFtmXSkpIDogb2YoW2ZpbGVzXSk7XG4gICAgcmV0dXJuIGluamVjdE5ndExvYWRlcihcbiAgICAgICAgKCkgPT4gVEhSRUUuQ3ViZVRleHR1cmVMb2FkZXIsXG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgQ3ViZVRleHR1cmUgYWNjZXB0cyBhIHN0cmluZ1tdIGFuZCBwYXNzIGludG8gbG9hZGVyIGFzIFtbLi4uXV1cbiAgICAgICAgaW5wdXRzJCxcbiAgICAgICAgKGxvYWRlcikgPT4gbG9hZGVyLnNldFBhdGgocGF0aClcbiAgICApLnBpcGUobWFwKCh0ZXh0dXJlcykgPT4gKHRleHR1cmVzIGFzIFRIUkVFLkN1YmVUZXh0dXJlW10pWzBdKSk7XG59XG4iXX0=
@@ -71,4 +71,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImpor
71
71
  }], speed: [{
72
72
  type: Input
73
73
  }] } });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzaC1kaXN0b3J0LW1hdGVyaWFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRocmVlLXNvYmEvbWF0ZXJpYWxzL3NyYy9saWIvbWVzaC1kaXN0b3J0LW1hdGVyaWFsL21lc2gtZGlzdG9ydC1tYXRlcmlhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQW1CMUUsTUFBTSxPQUFPLHVCQUF3QixTQUFRLFVBQVU7SUFPbkQsSUFBYSxJQUFJLENBQUMsSUFBWTtRQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBYSxPQUFPLENBQUMsT0FBZTtRQUNoQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBYSxNQUFNLENBQUMsTUFBYztRQUM5QixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBYSxLQUFLLENBQUMsS0FBYTtRQUM1QixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRVEsVUFBVTtRQUNmLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVEO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUE1Qkgsd0JBQW1CLEdBQUcsTUFBTSxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFFM0QsYUFBUSxHQUFHLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFFMUMsZ0JBQVcsR0FBRyxZQUFZLEVBQW1DLENBQUM7UUF5Qm5FLGtCQUFrQixDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQzdCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxjQUFjLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BFLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7b0hBakNRLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLHlOQWR0Qjs7Ozs7Ozs7OztLQVVULDREQUNTLE9BQU87MkZBR1IsdUJBQXVCO2tCQWpCbkMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsNEJBQTRCO29CQUN0QyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFOzs7Ozs7Ozs7O0tBVVQ7b0JBQ0QsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDO29CQUNsQixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDcEM7MEVBTVksV0FBVztzQkFBbkIsS0FBSztnQkFFTyxJQUFJO3NCQUFoQixLQUFLO2dCQUlPLE9BQU87c0JBQW5CLEtBQUs7Z0JBSU8sTUFBTTtzQkFBbEIsS0FBSztnQkFJTyxLQUFLO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBpbmplY3QsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbmplY3RCZWZvcmVSZW5kZXIsIGluamVjdE5ndFJlZiwgTmd0QXJncywgTmd0UnhTdG9yZSB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgTkdUU19ESVNUT1JUX01BVEVSSUFMX1NIQURFUiB9IGZyb20gJ2FuZ3VsYXItdGhyZWUtc29iYS9zaGFkZXJzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3RzLW1lc2gtZGlzdG9ydC1tYXRlcmlhbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmd0LXByaW1pdGl2ZVxuICAgICAgICAgICAgKmFyZ3M9XCJbbWF0ZXJpYWxdXCJcbiAgICAgICAgICAgIFtyZWZdPVwibWF0ZXJpYWxSZWZcIlxuICAgICAgICAgICAgW3RpbWVdPVwiZ2V0KCd0aW1lJylcIlxuICAgICAgICAgICAgW2Rpc3RvcnRdPVwiZ2V0KCdkaXN0b3J0JylcIlxuICAgICAgICAgICAgW3JhZGl1c109XCJnZXQoJ3JhZGl1cycpXCJcbiAgICAgICAgICAgIG5ndENvbXBvdW5kXG4gICAgICAgICAgICBhdHRhY2g9XCJtYXRlcmlhbFwiXG4gICAgICAgIC8+XG4gICAgYCxcbiAgICBpbXBvcnRzOiBbTmd0QXJnc10sXG4gICAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzTWVzaERpc3RvcnRNYXRlcmlhbCBleHRlbmRzIE5ndFJ4U3RvcmUge1xuICAgIHJlYWRvbmx5IE1lc2hEaXN0b3J0TWF0ZXJpYWwgPSBpbmplY3QoTkdUU19ESVNUT1JUX01BVEVSSUFMX1NIQURFUik7XG5cbiAgICByZWFkb25seSBtYXRlcmlhbCA9IG5ldyB0aGlzLk1lc2hEaXN0b3J0TWF0ZXJpYWwoKTtcblxuICAgIEBJbnB1dCgpIG1hdGVyaWFsUmVmID0gaW5qZWN0Tmd0UmVmPHR5cGVvZiB0aGlzLk1lc2hEaXN0b3J0TWF0ZXJpYWw+KCk7XG5cbiAgICBASW5wdXQoKSBzZXQgdGltZSh0aW1lOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyB0aW1lIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBkaXN0b3J0KGRpc3RvcnQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGRpc3RvcnQgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHJhZGl1cyhyYWRpdXM6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IHJhZGl1cyB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgc3BlZWQoc3BlZWQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IHNwZWVkIH0pO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIGluaXRpYWxpemUoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmluaXRpYWxpemUoKTtcbiAgICAgICAgdGhpcy5zZXQoeyBzcGVlZDogMSwgdGltZTogMCwgZGlzdG9ydDogMC40LCByYWRpdXM6IDEgfSk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGluamVjdEJlZm9yZVJlbmRlcigoeyBjbG9jayB9KSA9PiB7XG4gICAgICAgICAgICB0aGlzLm1hdGVyaWFsLnRpbWUgPSBjbG9jay5nZXRFbGFwc2VkVGltZSgpICogdGhpcy5nZXQoJ3NwZWVkJyk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzaC1kaXN0b3J0LW1hdGVyaWFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRocmVlLXNvYmEvbWF0ZXJpYWxzL3NyYy9saWIvbWVzaC1kaXN0b3J0LW1hdGVyaWFsL21lc2gtZGlzdG9ydC1tYXRlcmlhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RGLE9BQU8sRUFBdUIsNEJBQTRCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFtQi9GLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxVQUFVO0lBT25ELElBQWEsSUFBSSxDQUFDLElBQVk7UUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQWEsT0FBTyxDQUFDLE9BQWU7UUFDaEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQWEsTUFBTSxDQUFDLE1BQWM7UUFDOUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELElBQWEsS0FBSyxDQUFDLEtBQWE7UUFDNUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVRLFVBQVU7UUFDZixLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDtRQUNJLEtBQUssRUFBRSxDQUFDO1FBNUJILHdCQUFtQixHQUFHLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBRTNELGFBQVEsR0FBRyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBRTFDLGdCQUFXLEdBQUcsWUFBWSxFQUFxQyxDQUFDO1FBeUJyRSxrQkFBa0IsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsY0FBYyxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwRSxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O29IQWpDUSx1QkFBdUI7d0dBQXZCLHVCQUF1Qix5TkFkdEI7Ozs7Ozs7Ozs7S0FVVCw0REFDUyxPQUFPOzJGQUdSLHVCQUF1QjtrQkFqQm5DLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDRCQUE0QjtvQkFDdEMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7Ozs7Ozs7OztLQVVUO29CQUNELE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztvQkFDbEIsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ3BDOzBFQU1ZLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRU8sSUFBSTtzQkFBaEIsS0FBSztnQkFJTyxPQUFPO3NCQUFuQixLQUFLO2dCQUlPLE1BQU07c0JBQWxCLEtBQUs7Z0JBSU8sS0FBSztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgaW5qZWN0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0QmVmb3JlUmVuZGVyLCBpbmplY3ROZ3RSZWYsIE5ndEFyZ3MsIE5ndFJ4U3RvcmUgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IE1lc2hEaXN0b3J0TWF0ZXJpYWwsIE5HVFNfRElTVE9SVF9NQVRFUklBTF9TSEFERVIgfSBmcm9tICdhbmd1bGFyLXRocmVlLXNvYmEvc2hhZGVycyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd0cy1tZXNoLWRpc3RvcnQtbWF0ZXJpYWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPG5ndC1wcmltaXRpdmVcbiAgICAgICAgICAgICphcmdzPVwiW21hdGVyaWFsXVwiXG4gICAgICAgICAgICBbcmVmXT1cIm1hdGVyaWFsUmVmXCJcbiAgICAgICAgICAgIFt0aW1lXT1cImdldCgndGltZScpXCJcbiAgICAgICAgICAgIFtkaXN0b3J0XT1cImdldCgnZGlzdG9ydCcpXCJcbiAgICAgICAgICAgIFtyYWRpdXNdPVwiZ2V0KCdyYWRpdXMnKVwiXG4gICAgICAgICAgICBuZ3RDb21wb3VuZFxuICAgICAgICAgICAgYXR0YWNoPVwibWF0ZXJpYWxcIlxuICAgICAgICAvPlxuICAgIGAsXG4gICAgaW1wb3J0czogW05ndEFyZ3NdLFxuICAgIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgTmd0c01lc2hEaXN0b3J0TWF0ZXJpYWwgZXh0ZW5kcyBOZ3RSeFN0b3JlIHtcbiAgICByZWFkb25seSBNZXNoRGlzdG9ydE1hdGVyaWFsID0gaW5qZWN0KE5HVFNfRElTVE9SVF9NQVRFUklBTF9TSEFERVIpO1xuXG4gICAgcmVhZG9ubHkgbWF0ZXJpYWwgPSBuZXcgdGhpcy5NZXNoRGlzdG9ydE1hdGVyaWFsKCk7XG5cbiAgICBASW5wdXQoKSBtYXRlcmlhbFJlZiA9IGluamVjdE5ndFJlZjxJbnN0YW5jZVR5cGU8TWVzaERpc3RvcnRNYXRlcmlhbD4+KCk7XG5cbiAgICBASW5wdXQoKSBzZXQgdGltZSh0aW1lOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyB0aW1lIH0pO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBkaXN0b3J0KGRpc3RvcnQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGRpc3RvcnQgfSk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgc2V0IHJhZGl1cyhyYWRpdXM6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IHJhZGl1cyB9KTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBzZXQgc3BlZWQoc3BlZWQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IHNwZWVkIH0pO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIGluaXRpYWxpemUoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmluaXRpYWxpemUoKTtcbiAgICAgICAgdGhpcy5zZXQoeyBzcGVlZDogMSwgdGltZTogMCwgZGlzdG9ydDogMC40LCByYWRpdXM6IDEgfSk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGluamVjdEJlZm9yZVJlbmRlcigoeyBjbG9jayB9KSA9PiB7XG4gICAgICAgICAgICB0aGlzLm1hdGVyaWFsLnRpbWUgPSBjbG9jay5nZXRFbGFwc2VkVGltZSgpICogdGhpcy5nZXQoJ3NwZWVkJyk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -154,4 +154,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.5", ngImpor
154
154
  }], fastChroma: [{
155
155
  type: Input
156
156
  }] } });
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzaC1yZWZyYWN0aW9uLW1hdGVyaWFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRocmVlLXNvYmEvbWF0ZXJpYWxzL3NyYy9saWIvbWVzaC1yZWZyYWN0aW9uLW1hdGVyaWFsL21lc2gtcmVmcmFjdGlvbi1tYXRlcmlhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2SCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUU5QyxNQUFNLENBQUMsRUFBRSxzQkFBc0IsRUFBRSxDQUFDLENBQUM7QUFFbkMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxHQUFzQyxFQUE0QixFQUFFLENBQ3ZGLEdBQUcsSUFBSyxHQUF5QixDQUFDLGFBQWEsQ0FBQztBQTJCcEQsTUFBTSxPQUFPLDBCQUEyQixTQUFRLFVBQVU7SUFFdEQsc0JBQXNCO0lBQ3RCLElBQWEsTUFBTSxDQUFDLE1BQXlDO1FBQ3pELElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFDRCwwRUFBMEU7SUFDMUUsSUFBYSxPQUFPLENBQUMsT0FBZTtRQUNoQyxJQUFJLENBQUMs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QUFDLE1BQU0sRUFBRSxRQUFRLENBQUM7WUFDMUQsSUFBSSxRQUFRLEVBQUU7Z0JBQ1QsUUFBZ0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUM1QixJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLEVBQUUsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQVMsQ0FBQyxDQUN4RixDQUFDO2FBQ0w7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O3VIQTVGUSwwQkFBMEI7MkdBQTFCLDBCQUEwQixrVEF0QnpCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FrQlQsdURBQ1MsT0FBTyxnREFBRSxJQUFJOzJGQUdkLDBCQUEwQjtrQkF6QnRDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLCtCQUErQjtvQkFDekMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBa0JUO29CQUNELE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUM7b0JBQ3hCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNwQzswRUFFWSxXQUFXO3NCQUFuQixLQUFLO2dCQUVPLE1BQU07c0JBQWxCLEtBQUs7Z0JBSU8sT0FBTztzQkFBbkIsS0FBSztnQkFJTyxHQUFHO3NCQUFmLEtBQUs7Z0JBSU8sT0FBTztzQkFBbkIsS0FBSztnQkFJTyxrQkFBa0I7c0JBQTlCLEtBQUs7Z0JBSU8sS0FBSztzQkFBakIsS0FBSztnQkFJTyxVQUFVO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIGluamVjdCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZXh0ZW5kLCBnZXRMb2NhbFN0YXRlLCBpbmplY3RCZWZvcmVSZW5kZXIsIGluamVjdE5ndFJlZiwgTmd0UHVzaCwgTmd0UnhTdG9yZSwgTmd0U3RvcmUgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IE1lc2hSZWZyYWN0aW9uTWF0ZXJpYWwgfSBmcm9tICdhbmd1bGFyLXRocmVlLXNvYmEvc2hhZGVycyc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBtYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1lc2hCVkgsIFNBSCB9IGZyb20gJ3RocmVlLW1lc2gtYnZoJztcblxuZXh0ZW5kKHsgTWVzaFJlZnJhY3Rpb25NYXRlcmlhbCB9KTtcblxuY29uc3QgaXNDdWJlVGV4dHVyZSA9IChkZWY6IFRIUkVFLkN1YmVUZXh0dXJlIHwgVEhSRUUuVGV4dHVyZSk6IGRlZiBpcyBUSFJFRS5DdWJlVGV4dHVyZSA9PlxuICAgIGRlZiAmJiAoZGVmIGFzIFRIUkVFLkN1YmVUZXh0dXJlKS5pc0N1YmVUZXh0dXJlO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndHMtbWVzaC1yZWZyYWN0aW9uLW1hdGVyaWFsJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxuZ3QtbWVzaC1yZWZyYWN0aW9uLW1hdGVyaWFsXG4gICAgICAgICAgICAqbmdJZj1cImRlZmluZXMkIHwgbmd0UHVzaCBhcyBkZWZpbmVzXCJcbiAgICAgICAgICAgIFtyZWZdPVwibWF0ZXJpYWxSZWZcIlxuICAgICAgICAgICAgW2RlZmluZXNdPVwiZGVmaW5lc1wiXG4gICAgICAgICAgICBbcmVzb2x1dGlvbl09XCJnZXQoJ3Jlc29sdXRpb24nKVwiXG4gICAgICAgICAgICBbYWJlcnJhdGlvblN0cmVuZ3RoXT1cImdldCgnYWJlcnJhdGlvblN0cmVuZ3RoJylcIlxuICAgICAgICAgICAgW2Vudk1hcF09XCJnZXQoJ2Vudk1hcCcpXCJcbiAgICAgICAgICAgIFtib3VuY2VzXT1cImdldCgnYm91bmNlcycpXCJcbiAgICAgICAgICAgIFtpb3JdPVwiZ2V0KCdpb3InKVwiXG4gICAgICAgICAgICBbZnJlc25lbF09XCJnZXQoJ2ZyZXNuZWwnKVwiXG4gICAgICAgICAgICBbY29sb3JdPVwiZ2V0KCdjb2xvcicpXCJcbiAgICAgICAgICAgIFtmYXN0Q2hyb21hXT1cImdldCgnZmFzdENocm9tYScpXCJcbiAgICAgICAgICAgIG5ndENvbXBvdW5kXG4gICAgICAgICAgICBhdHRhY2g9XCJtYXRlcmlhbFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgICAgIDwvbmd0LW1lc2gtcmVmcmFjdGlvbi1tYXRlcmlhbD5cbiAgICBgLFxuICAgIGltcG9ydHM6IFtOZ3RQdXNoLCBOZ0lmXSxcbiAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNNZXNoUmVmcmFjdGlvbk1hdGVyaWFsIGV4dGVuZHMgTmd0UnhTdG9yZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCkgbWF0ZXJpYWxSZWYgPSBpbmplY3ROZ3RSZWY8dHlwZW9mIE1lc2hSZWZyYWN0aW9uTWF0ZXJpYWwucHJvdG90eXBlPigpO1xuICAgIC8qKiBFbnZpcm9ubWVudCBtYXAgKi9cbiAgICBASW5wdXQoKSBzZXQgZW52TWFwKGVudk1hcDogVEhSRUUuQ3ViZVRleHR1cmUgfCBUSFJFRS5UZXh0dXJlKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZW52TWFwIH0pO1xuICAgIH1cbiAgICAvKiogTnVtYmVyIG9mIHJheS1jYXN0IGJvdW5jZXMsIGl0IGNhbiBiZSBleHBlbnNpdmUgdG8gaGF2ZSB0b28gbWFueSwgMiAqL1xuICAgIEBJbnB1dCgpIHNldCBib3VuY2VzKGJvdW5jZXM6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGJvdW5jZXMgfSk7XG4gICAgfVxuICAgIC8qKiBSZWZyYWN0aW9uIGluZGV4LCAyLjQgKi9cbiAgICBASW5wdXQoKSBzZXQgaW9yKGlvcjogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgaW9yIH0pO1xuICAgIH1cbiAgICAvKiogRnJlc25lbCAoc3RyaXAgbGlnaHQpLCAwICovXG4gICAgQElucHV0KCkgc2V0IGZyZXNuZWwoZnJlc25lbDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgZnJlc25lbCB9KTtcbiAgICB9XG4gICAgLyoqIFJHQiBzaGlmdCBpbnRlbnNpdHksIGNhbiBiZSBleHBlbnNpdmUsIDAgKi9cbiAgICBASW5wdXQoKSBzZXQgYWJlcnJhdGlvblN0cmVuZ3RoKGFiZXJyYXRpb25TdHJlbmd0aDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgYWJlcnJhdGlvblN0cmVuZ3RoIH0pO1xuICAgIH1cbiAgICAvKiogQ29sb3IsIHdoaXRlICovXG4gICAgQElucHV0KCkgc2V0IGNvbG9yKGNvbG9yOiBUSFJFRS5Db2xvclJlcHJlc2VudGF0aW9uKSB7XG4gICAgICAgIHRoaXMuc2V0KHsgY29sb3IgfSk7XG4gICAgfVxuICAgIC8qKiBJZiB0aGlzIGlzIG9uIGl0IHVzZXMgZmV3ZXIgcmF5IGNhc3RzIGZvciB0aGUgUkdCIHNoaWZ0IHNhY3JpZmljaW5nIHBoeXNpY2FsIGFjY3VyYWN5LCB0cnVlICovXG4gICAgQElucHV0KCkgc2V0IGZhc3RDaHJvbWEoZmFzdENocm9tYTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnNldCh7IGZhc3RDaHJvbWEgfSk7XG4gICAgfVxuXG4gICAgcmVhZG9ubHkgZGVmaW5lcyQgPSB0aGlzLnNlbGVjdCgnZGVmaW5lcycpO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdG9yZSA9IGluamVjdChOZ3RTdG9yZSk7XG5cbiAgICBvdmVycmlkZSBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5pbml0aWFsaXplKCk7XG4gICAgICAgIHRoaXMuc2V0KHtcbiAgICAgICAgICAgIGFiZXJyYXRpb25TdHJlbmd0aDogMCxcbiAgICAgICAgICAgIGZhc3RDaHJvbWE6IHRydWUsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmNvbm5lY3QoXG4gICAgICAgICAgICAnZGVmaW5lcycsXG4gICAgICAgICAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLnNlbGVjdCgnYWJlcnJhdGlvblN0cmVuZ3RoJyksIHRoaXMuc2VsZWN0KCdmYXN0Q2hyb21hJyksIHRoaXMuc2VsZWN0KCdlbnZNYXAnKV0pLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChbYWJlcnJhdGlvblN0cmVuZ3RoLCBmYXN0Q2hyb21hLCBlbnZNYXBdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRlbXAgPSB7fSBhcyB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICAgICAgICAgICAgICAgICAgICAvLyBTYW1wbGVyMkQgYW5kIFNhbXBsZXJDdWJlIG5lZWQgZGlmZmVyZW50IGRlZmluZXNcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNDdWJlTWFwID0gaXNDdWJlVGV4dHVyZShlbnZNYXApO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB3ID0gKGlzQ3ViZU1hcCA/IGVudk1hcC5pbWFnZVswXT8ud2lkdGggOiBlbnZNYXAuaW1hZ2Uud2lkdGgpID8/IDEwMjQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGN1YmVTaXplID0gdyAvIDQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IF9sb2RNYXggPSBNYXRoLmZsb29yKE1hdGgubG9nMihjdWJlU2l6ZSkpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBfY3ViZVNpemUgPSBNYXRoLnBvdygyLCBfbG9kTWF4KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgd2lkdGggPSAzICogTWF0aC5tYXgoX2N1YmVTaXplLCAxNiAqIDcpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBoZWlnaHQgPSA0ICogX2N1YmVTaXplO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNDdWJlTWFwKSB0ZW1wWydFTlZNQVBfVFlQRV9DVUJFTSddID0gJyc7XG4gICAgICAgICAgICAgICAgICAgIHRlbXBbJ0NVQkVVVl9URVhFTF9XSURUSCddID0gYCR7MS4wIC8gd2lkdGh9YDtcbiAgICAgICAgICAgICAgICAgICAgdGVtcFsnQ1VCRVVWX1RFWEVMX0hFSUdIVCddID0gYCR7MS4wIC8gaGVpZ2h0fWA7XG4gICAgICAgICAgICAgICAgICAgIHRlbXBbJ0NVQkVVVl9NQVhfTUlQJ10gPSBgJHtfbG9kTWF4fS4wYDtcbiAgICAgICAgICAgICAgICAgICAgLy8gQWRkIGRlZmluZXMgZnJvbSBjaHJvbWF0aWMgYWJlcnJhdGlvblxuICAgICAgICAgICAgICAgICAgICBpZiAoYWJlcnJhdGlvblN0cmVuZ3RoID4gMCkgdGVtcFsnQ0hST01BVElDX0FCRVJSQVRJT05TJ10gPSAnJztcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZhc3RDaHJvbWEpIHRlbXBbJ0ZBU1RfQ0hST01BJ10gPSAnJztcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRlbXA7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5jb25uZWN0KCdyZXNvbHV0aW9uJywgdGhpcy5zdG9yZS5zZWxlY3QoJ3NpemUnKS5waXBlKG1hcCgoc2l6ZSkgPT4gW3NpemUud2lkdGgsIHNpemUuaGVpZ2h0XSkpKTtcblxuICAgICAgICBpbmplY3RCZWZvcmVSZW5kZXIoKHsgY2FtZXJhIH0pID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLm1hdGVyaWFsUmVmLm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAodGhpcy5tYXRlcmlhbFJlZi5uYXRpdmVFbGVtZW50IGFzIGFueSkhLnZpZXdNYXRyaXhJbnZlcnNlID0gY2FtZXJhLm1hdHJpeFdvcmxkO1xuICAgICAgICAgICAgICAgICh0aGlzLm1hdGVyaWFsUmVmLm5hdGl2ZUVsZW1lbnQgYXMgYW55KSEucHJvamVjdGlvbk1hdHJpeEludmVyc2UgPSBjYW1lcmEucHJvamVjdGlvbk1hdHJpeEludmVyc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnNldHVwR2VvbWV0cnkoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldHVwR2VvbWV0cnkoKSB7XG4gICAgICAgIHRoaXMuaG9sZCh0aGlzLm1hdGVyaWFsUmVmLiQsIChtYXRlcmlhbCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZ2VvbWV0cnkgPSBnZXRMb2NhbFN0YXRlKG1hdGVyaWFsKS5wYXJlbnQ/Lmdlb21ldHJ5O1xuICAgICAgICAgICAgaWYgKGdlb21ldHJ5KSB7XG4gICAgICAgICAgICAgICAgKG1hdGVyaWFsIGFzIGFueSkuYnZoLnVwZGF0ZUZyb20oXG4gICAgICAgICAgICAgICAgICAgIG5ldyBNZXNoQlZIKGdlb21ldHJ5LnRvTm9uSW5kZXhlZCgpLCB7IGxhenlHZW5lcmF0aW9uOiBmYWxzZSwgc3RyYXRlZ3k6IFNBSCB9IGFzIGFueSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzaC1yZWZyYWN0aW9uLW1hdGVyaWFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXRocmVlLXNvYmEvbWF0ZXJpYWxzL3NyYy9saWIvbWVzaC1yZWZyYWN0aW9uLW1hdGVyaWFsL21lc2gtcmVmcmFjdGlvbi1tYXRlcmlhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2SCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUU5QyxNQUFNLENBQUMsRUFBRSxzQkFBc0IsRUFBRSxDQUFDLENBQUM7QUFFbkMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxHQUFzQyxFQUE0QixFQUFFLENBQ3ZGLEdBQUcsSUFBSyxHQUF5QixDQUFDLGFBQWEsQ0FBQztBQTJCcEQsTUFBTSxPQUFPLDBCQUEyQixTQUFRLFVBQVU7SUFFdEQsc0JBQXNCO0lBQ3RCLElBQWEsTUFBTSxDQUFDLE1BQXlDO1FBQ3pELElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFDRCwwRUFBMEU7SUFDMUUsSUFBYSxPQUFPLENBQUMsT0FBZTtRQUNoQyxJQUFJLENBQUMs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QUFDLE1BQU0sRUFBRSxRQUFRLENBQUM7WUFDMUQsSUFBSSxRQUFRLEVBQUU7Z0JBQ1QsUUFBZ0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUM1QixJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLEVBQUUsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQVMsQ0FBQyxDQUN4RixDQUFDO2FBQ0w7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O3VIQTVGUSwwQkFBMEI7MkdBQTFCLDBCQUEwQixrVEF0QnpCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7S0FrQlQsdURBQ1MsT0FBTyxnREFBRSxJQUFJOzJGQUdkLDBCQUEwQjtrQkF6QnRDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLCtCQUErQjtvQkFDekMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBa0JUO29CQUNELE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUM7b0JBQ3hCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNwQzswRUFFWSxXQUFXO3NCQUFuQixLQUFLO2dCQUVPLE1BQU07c0JBQWxCLEtBQUs7Z0JBSU8sT0FBTztzQkFBbkIsS0FBSztnQkFJTyxHQUFHO3NCQUFmLEtBQUs7Z0JBSU8sT0FBTztzQkFBbkIsS0FBSztnQkFJTyxrQkFBa0I7c0JBQTlCLEtBQUs7Z0JBSU8sS0FBSztzQkFBakIsS0FBSztnQkFJTyxVQUFVO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIGluamVjdCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZXh0ZW5kLCBnZXRMb2NhbFN0YXRlLCBpbmplY3RCZWZvcmVSZW5kZXIsIGluamVjdE5ndFJlZiwgTmd0UHVzaCwgTmd0UnhTdG9yZSwgTmd0U3RvcmUgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IE1lc2hSZWZyYWN0aW9uTWF0ZXJpYWwgfSBmcm9tICdhbmd1bGFyLXRocmVlLXNvYmEvc2hhZGVycyc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBtYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE1lc2hCVkgsIFNBSCB9IGZyb20gJ3RocmVlLW1lc2gtYnZoJztcblxuZXh0ZW5kKHsgTWVzaFJlZnJhY3Rpb25NYXRlcmlhbCB9KTtcblxuY29uc3QgaXNDdWJlVGV4dHVyZSA9IChkZWY6IFRIUkVFLkN1YmVUZXh0dXJlIHwgVEhSRUUuVGV4dHVyZSk6IGRlZiBpcyBUSFJFRS5DdWJlVGV4dHVyZSA9PlxuICAgIGRlZiAmJiAoZGVmIGFzIFRIUkVFLkN1YmVUZXh0dXJlKS5pc0N1YmVUZXh0dXJlO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25ndHMtbWVzaC1yZWZyYWN0aW9uLW1hdGVyaWFsJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxuZ3QtbWVzaC1yZWZyYWN0aW9uLW1hdGVyaWFsXG4gICAgICAgICAgICAqbmdJZj1cImRlZmluZXMkIHwgbmd0UHVzaCBhcyBkZWZpbmVzXCJcbiAgICAgICAgICAgIFtyZWZdPVwibWF0ZXJpYWxSZWZcIlxuICAgICAgICAgICAgW2RlZmluZXNdPVwiZGVmaW5lc1wiXG4gICAgICAgICAgICBbcmVzb2x1dGlvbl09XCJnZXQoJ3Jlc29sdXRpb24nKVwiXG4gICAgICAgICAgICBbYWJlcnJhdGlvblN0cmVuZ3RoXT1cImdldCgnYWJlcnJhdGlvblN0cmVuZ3RoJylcIlxuICAgICAgICAgICAgW2Vudk1hcF09XCJnZXQoJ2Vudk1hcCcpXCJcbiAgICAgICAgICAgIFtib3VuY2VzXT1cImdldCgnYm91bmNlcycpXCJcbiAgICAgICAgICAgIFtpb3JdPVwiZ2V0KCdpb3InKVwiXG4gICAgICAgICAgICBbZnJlc25lbF09XCJnZXQoJ2ZyZXNuZWwnKVwiXG4gICAgICAgICAgICBbY29sb3JdPVwiZ2V0KCdjb2xvcicpXCJcbiAgICAgICAgICAgIFtmYXN0Q2hyb21hXT1cImdldCgnZmFzdENocm9tYScpXCJcbiAgICAgICAgICAgIG5ndENvbXBvdW5kXG4gICAgICAgICAgICBhdHRhY2g9XCJtYXRlcmlhbFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IC8+XG4gICAgICAgIDwvbmd0LW1lc2gtcmVmcmFjdGlvbi1tYXRlcmlhbD5cbiAgICBgLFxuICAgIGltcG9ydHM6IFtOZ3RQdXNoLCBOZ0lmXSxcbiAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXG59KVxuZXhwb3J0IGNsYXNzIE5ndHNNZXNoUmVmcmFjdGlvbk1hdGVyaWFsIGV4dGVuZHMgTmd0UnhTdG9yZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCkgbWF0ZXJpYWxSZWYgPSBpbmplY3ROZ3RSZWY8SW5zdGFuY2VUeXBlPHR5cGVvZiBNZXNoUmVmcmFjdGlvbk1hdGVyaWFsPj4oKTtcbiAgICAvKiogRW52aXJvbm1lbnQgbWFwICovXG4gICAgQElucHV0KCkgc2V0IGVudk1hcChlbnZNYXA6IFRIUkVFLkN1YmVUZXh0dXJlIHwgVEhSRUUuVGV4dHVyZSkge1xuICAgICAgICB0aGlzLnNldCh7IGVudk1hcCB9KTtcbiAgICB9XG4gICAgLyoqIE51bWJlciBvZiByYXktY2FzdCBib3VuY2VzLCBpdCBjYW4gYmUgZXhwZW5zaXZlIHRvIGhhdmUgdG9vIG1hbnksIDIgKi9cbiAgICBASW5wdXQoKSBzZXQgYm91bmNlcyhib3VuY2VzOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZXQoeyBib3VuY2VzIH0pO1xuICAgIH1cbiAgICAvKiogUmVmcmFjdGlvbiBpbmRleCwgMi40ICovXG4gICAgQElucHV0KCkgc2V0IGlvcihpb3I6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGlvciB9KTtcbiAgICB9XG4gICAgLyoqIEZyZXNuZWwgKHN0cmlwIGxpZ2h0KSwgMCAqL1xuICAgIEBJbnB1dCgpIHNldCBmcmVzbmVsKGZyZXNuZWw6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGZyZXNuZWwgfSk7XG4gICAgfVxuICAgIC8qKiBSR0Igc2hpZnQgaW50ZW5zaXR5LCBjYW4gYmUgZXhwZW5zaXZlLCAwICovXG4gICAgQElucHV0KCkgc2V0IGFiZXJyYXRpb25TdHJlbmd0aChhYmVycmF0aW9uU3RyZW5ndGg6IG51bWJlcikge1xuICAgICAgICB0aGlzLnNldCh7IGFiZXJyYXRpb25TdHJlbmd0aCB9KTtcbiAgICB9XG4gICAgLyoqIENvbG9yLCB3aGl0ZSAqL1xuICAgIEBJbnB1dCgpIHNldCBjb2xvcihjb2xvcjogVEhSRUUuQ29sb3JSZXByZXNlbnRhdGlvbikge1xuICAgICAgICB0aGlzLnNldCh7IGNvbG9yIH0pO1xuICAgIH1cbiAgICAvKiogSWYgdGhpcyBpcyBvbiBpdCB1c2VzIGZld2VyIHJheSBjYXN0cyBmb3IgdGhlIFJHQiBzaGlmdCBzYWNyaWZpY2luZyBwaHlzaWNhbCBhY2N1cmFjeSwgdHJ1ZSAqL1xuICAgIEBJbnB1dCgpIHNldCBmYXN0Q2hyb21hKGZhc3RDaHJvbWE6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5zZXQoeyBmYXN0Q2hyb21hIH0pO1xuICAgIH1cblxuICAgIHJlYWRvbmx5IGRlZmluZXMkID0gdGhpcy5zZWxlY3QoJ2RlZmluZXMnKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RvcmUgPSBpbmplY3QoTmd0U3RvcmUpO1xuXG4gICAgb3ZlcnJpZGUgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIuaW5pdGlhbGl6ZSgpO1xuICAgICAgICB0aGlzLnNldCh7XG4gICAgICAgICAgICBhYmVycmF0aW9uU3RyZW5ndGg6IDAsXG4gICAgICAgICAgICBmYXN0Q2hyb21hOiB0cnVlLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5jb25uZWN0KFxuICAgICAgICAgICAgJ2RlZmluZXMnLFxuICAgICAgICAgICAgY29tYmluZUxhdGVzdChbdGhpcy5zZWxlY3QoJ2FiZXJyYXRpb25TdHJlbmd0aCcpLCB0aGlzLnNlbGVjdCgnZmFzdENocm9tYScpLCB0aGlzLnNlbGVjdCgnZW52TWFwJyldKS5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgoW2FiZXJyYXRpb25TdHJlbmd0aCwgZmFzdENocm9tYSwgZW52TWFwXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZW1wID0ge30gYXMgeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgICAgICAgICAgICAgICAgICAgLy8gU2FtcGxlcjJEIGFuZCBTYW1wbGVyQ3ViZSBuZWVkIGRpZmZlcmVudCBkZWZpbmVzXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzQ3ViZU1hcCA9IGlzQ3ViZVRleHR1cmUoZW52TWFwKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdyA9IChpc0N1YmVNYXAgPyBlbnZNYXAuaW1hZ2VbMF0/LndpZHRoIDogZW52TWFwLmltYWdlLndpZHRoKSA/PyAxMDI0O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjdWJlU2l6ZSA9IHcgLyA0O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBfbG9kTWF4ID0gTWF0aC5mbG9vcihNYXRoLmxvZzIoY3ViZVNpemUpKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgX2N1YmVTaXplID0gTWF0aC5wb3coMiwgX2xvZE1heCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gMyAqIE1hdGgubWF4KF9jdWJlU2l6ZSwgMTYgKiA3KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaGVpZ2h0ID0gNCAqIF9jdWJlU2l6ZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzQ3ViZU1hcCkgdGVtcFsnRU5WTUFQX1RZUEVfQ1VCRU0nXSA9ICcnO1xuICAgICAgICAgICAgICAgICAgICB0ZW1wWydDVUJFVVZfVEVYRUxfV0lEVEgnXSA9IGAkezEuMCAvIHdpZHRofWA7XG4gICAgICAgICAgICAgICAgICAgIHRlbXBbJ0NVQkVVVl9URVhFTF9IRUlHSFQnXSA9IGAkezEuMCAvIGhlaWdodH1gO1xuICAgICAgICAgICAgICAgICAgICB0ZW1wWydDVUJFVVZfTUFYX01JUCddID0gYCR7X2xvZE1heH0uMGA7XG4gICAgICAgICAgICAgICAgICAgIC8vIEFkZCBkZWZpbmVzIGZyb20gY2hyb21hdGljIGFiZXJyYXRpb25cbiAgICAgICAgICAgICAgICAgICAgaWYgKGFiZXJyYXRpb25TdHJlbmd0aCA+IDApIHRlbXBbJ0NIUk9NQVRJQ19BQkVSUkFUSU9OUyddID0gJyc7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmYXN0Q2hyb21hKSB0ZW1wWydGQVNUX0NIUk9NQSddID0gJyc7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0ZW1wO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuY29ubmVjdCgncmVzb2x1dGlvbicsIHRoaXMuc3RvcmUuc2VsZWN0KCdzaXplJykucGlwZShtYXAoKHNpemUpID0+IFtzaXplLndpZHRoLCBzaXplLmhlaWdodF0pKSk7XG5cbiAgICAgICAgaW5qZWN0QmVmb3JlUmVuZGVyKCh7IGNhbWVyYSB9KSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5tYXRlcmlhbFJlZi5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgKHRoaXMubWF0ZXJpYWxSZWYubmF0aXZlRWxlbWVudCBhcyBhbnkpIS52aWV3TWF0cml4SW52ZXJzZSA9IGNhbWVyYS5tYXRyaXhXb3JsZDtcbiAgICAgICAgICAgICAgICAodGhpcy5tYXRlcmlhbFJlZi5uYXRpdmVFbGVtZW50IGFzIGFueSkhLnByb2plY3Rpb25NYXRyaXhJbnZlcnNlID0gY2FtZXJhLnByb2plY3Rpb25NYXRyaXhJbnZlcnNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5zZXR1cEdlb21ldHJ5KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXR1cEdlb21ldHJ5KCkge1xuICAgICAgICB0aGlzLmhvbGQodGhpcy5tYXRlcmlhbFJlZi4kLCAobWF0ZXJpYWwpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGdlb21ldHJ5ID0gZ2V0TG9jYWxTdGF0ZShtYXRlcmlhbCkucGFyZW50Py5nZW9tZXRyeTtcbiAgICAgICAgICAgIGlmIChnZW9tZXRyeSkge1xuICAgICAgICAgICAgICAgIChtYXRlcmlhbCBhcyBhbnkpLmJ2aC51cGRhdGVGcm9tKFxuICAgICAgICAgICAgICAgICAgICBuZXcgTWVzaEJWSChnZW9tZXRyeS50b05vbkluZGV4ZWQoKSwgeyBsYXp5R2VuZXJhdGlvbjogZmFsc2UsIHN0cmF0ZWd5OiBTQUggfSBhcyBhbnkpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
@@ -1,8 +1,16 @@
1
1
  import { injectBeforeRender, injectNgtDestroy, injectNgtRef } from 'angular-three';
2
- import { takeUntil } from 'rxjs';
2
+ import { map, switchMap, takeUntil } from 'rxjs';
3
3
  import * as THREE from 'three';
4
- export function injectNgtsAnimations(gltf$, modelSelector = (gltf) => gltf.scene) {
5
- const ref = injectNgtRef();
4
+ export function injectNgtsAnimations(animations$, ref) {
5
+ let actualRef = injectNgtRef();
6
+ if (ref) {
7
+ if (ref instanceof THREE.Object3D) {
8
+ actualRef.nativeElement = ref;
9
+ }
10
+ else {
11
+ actualRef = ref;
12
+ }
13
+ }
6
14
  const mixer = new THREE.AnimationMixer(null);
7
15
  const actions = {};
8
16
  let cached = {};
@@ -13,25 +21,25 @@ export function injectNgtsAnimations(gltf$, modelSelector = (gltf) => gltf.scene
13
21
  cached = {};
14
22
  // uncache actions
15
23
  Object.values(actions).forEach((action) => {
16
- if (ref.nativeElement) {
17
- mixer.uncacheAction(action, ref.nativeElement);
24
+ if (actualRef.nativeElement) {
25
+ mixer.uncacheAction(action, actualRef.nativeElement);
18
26
  }
19
27
  });
20
28
  // stop all actions
21
29
  mixer.stopAllAction();
22
30
  });
23
31
  injectBeforeRender(({ delta }) => mixer.update(delta));
24
- gltf$.pipe(takeUntil(destroy$)).subscribe((gltf) => {
25
- const model = modelSelector(gltf);
26
- ref.nativeElement = model;
27
- for (let i = 0; i < gltf.animations.length; i++) {
28
- const clip = gltf.animations[i];
32
+ actualRef.$.pipe(takeUntil(destroy$))
33
+ .pipe(switchMap((object) => animations$.pipe(map((animations) => [object, animations]))))
34
+ .subscribe(([object, animations]) => {
35
+ for (let i = 0; i < animations.length; i++) {
36
+ const clip = animations[i];
29
37
  names.push(clip.name);
30
38
  clips.push(clip);
31
39
  Object.defineProperty(actions, clip.name, {
32
40
  enumerable: true,
33
41
  get: () => {
34
- return cached[clip.name] || (cached[clip.name] = mixer.clipAction(clip, model));
42
+ return cached[clip.name] || (cached[clip.name] = mixer.clipAction(clip, object));
35
43
  },
36
44
  });
37
45
  if (i === 0) {
@@ -39,6 +47,6 @@ export function injectNgtsAnimations(gltf$, modelSelector = (gltf) => gltf.scene
39
47
  }
40
48
  }
41
49
  });
42
- return { ref, actions, mixer, names, clips };
50
+ return { ref: actualRef, actions, mixer, names, clips };
43
51
  }
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci10aHJlZS1zb2JhL21pc2Mvc3JjL2xpYi9hbmltYXRpb25zL2FuaW1hdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFjLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQVcvQixNQUFNLFVBQVUsb0JBQW9CLENBQ2hDLEtBQXVCLEVBQ3ZCLGdCQUFnRCxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUs7SUFFcEUsTUFBTSxHQUFHLEdBQUcsWUFBWSxFQUFrQixDQUFDO0lBQzNDLE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFLLENBQUMsQ0FBQztJQUM5QyxNQUFNLE9BQU8sR0FBRyxFQUEyQyxDQUFDO0lBQzVELElBQUksTUFBTSxHQUFHLEVBQTJDLENBQUM7SUFFekQsTUFBTSxLQUFLLEdBQUcsRUFBMkIsQ0FBQztJQUMxQyxNQUFNLEtBQUssR0FBRyxFQUFjLENBQUM7SUFFN0IsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLGdCQUFnQixDQUFDLEdBQUcsRUFBRTtRQUN2QyxlQUFlO1FBQ2YsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNaLGtCQUFrQjtRQUNsQixNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ3RDLElBQUksR0FBRyxDQUFDLGFBQWEsRUFBRTtnQkFDbkIsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUF3QyxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNwRjtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsbUJBQW1CO1FBQ25CLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMxQixDQUFDLENBQUMsQ0FBQztJQUVILGtCQUFrQixDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBRXZELEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDL0MsTUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xDLEdBQUcsQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBRTFCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM3QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRWhDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3RCLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFakIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDdEMsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLEdBQUcsRUFBRSxHQUFHLEVBQUU7b0JBQ04sT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNwRixDQUFDO2FBQ0osQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNULE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDN0I7U0FDSjtJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQztBQUNqRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0QmVmb3JlUmVuZGVyLCBpbmplY3ROZ3REZXN0cm95LCBpbmplY3ROZ3RSZWYsIE5ndEluamVjdGVkUmVmIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IEdMVEYgfSBmcm9tICd0aHJlZS1zdGRsaWInO1xuXG50eXBlIEFwaSA9IHtcbiAgICByZWY6IE5ndEluamVjdGVkUmVmPFRIUkVFLk9iamVjdDNEPjtcbiAgICBjbGlwczogVEhSRUUuQW5pbWF0aW9uQ2xpcFtdO1xuICAgIG1peGVyOiBUSFJFRS5BbmltYXRpb25NaXhlcjtcbiAgICBuYW1lczogc3RyaW5nW107XG4gICAgYWN0aW9uczogUmVjb3JkPHN0cmluZywgVEhSRUUuQW5pbWF0aW9uQWN0aW9uPjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3ROZ3RzQW5pbWF0aW9ucyhcbiAgICBnbHRmJDogT2JzZXJ2YWJsZTxHTFRGPixcbiAgICBtb2RlbFNlbGVjdG9yOiAoZ2x0ZjogR0xURikgPT4gVEhSRUUuT2JqZWN0M0QgPSAoZ2x0ZikgPT4gZ2x0Zi5zY2VuZVxuKTogQXBpIHtcbiAgICBjb25zdCByZWYgPSBpbmplY3ROZ3RSZWY8VEhSRUUuT2JqZWN0M0Q+KCk7XG4gICAgY29uc3QgbWl4ZXIgPSBuZXcgVEhSRUUuQW5pbWF0aW9uTWl4ZXIobnVsbCEpO1xuICAgIGNvbnN0IGFjdGlvbnMgPSB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBUSFJFRS5BbmltYXRpb25BY3Rpb24+O1xuICAgIGxldCBjYWNoZWQgPSB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBUSFJFRS5BbmltYXRpb25BY3Rpb24+O1xuXG4gICAgY29uc3QgY2xpcHMgPSBbXSBhcyBUSFJFRS5BbmltYXRpb25DbGlwW107XG4gICAgY29uc3QgbmFtZXMgPSBbXSBhcyBzdHJpbmdbXTtcblxuICAgIGNvbnN0IHsgZGVzdHJveSQgfSA9IGluamVjdE5ndERlc3Ryb3koKCkgPT4ge1xuICAgICAgICAvLyBjbGVhciBjYWNoZWRcbiAgICAgICAgY2FjaGVkID0ge307XG4gICAgICAgIC8vIHVuY2FjaGUgYWN0aW9uc1xuICAgICAgICBPYmplY3QudmFsdWVzKGFjdGlvbnMpLmZvckVhY2goKGFjdGlvbikgPT4ge1xuICAgICAgICAgICAgaWYgKHJlZi5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgbWl4ZXIudW5jYWNoZUFjdGlvbihhY3Rpb24gYXMgdW5rbm93biBhcyBUSFJFRS5BbmltYXRpb25DbGlwLCByZWYubmF0aXZlRWxlbWVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAvLyBzdG9wIGFsbCBhY3Rpb25zXG4gICAgICAgIG1peGVyLnN0b3BBbGxBY3Rpb24oKTtcbiAgICB9KTtcblxuICAgIGluamVjdEJlZm9yZVJlbmRlcigoeyBkZWx0YSB9KSA9PiBtaXhlci51cGRhdGUoZGVsdGEpKTtcblxuICAgIGdsdGYkLnBpcGUodGFrZVVudGlsKGRlc3Ryb3kkKSkuc3Vic2NyaWJlKChnbHRmKSA9PiB7XG4gICAgICAgIGNvbnN0IG1vZGVsID0gbW9kZWxTZWxlY3RvcihnbHRmKTtcbiAgICAgICAgcmVmLm5hdGl2ZUVsZW1lbnQgPSBtb2RlbDtcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGdsdGYuYW5pbWF0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgY2xpcCA9IGdsdGYuYW5pbWF0aW9uc1tpXTtcblxuICAgICAgICAgICAgbmFtZXMucHVzaChjbGlwLm5hbWUpO1xuICAgICAgICAgICAgY2xpcHMucHVzaChjbGlwKTtcblxuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFjdGlvbnMsIGNsaXAubmFtZSwge1xuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgZ2V0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjYWNoZWRbY2xpcC5uYW1lXSB8fCAoY2FjaGVkW2NsaXAubmFtZV0gPSBtaXhlci5jbGlwQWN0aW9uKGNsaXAsIG1vZGVsKSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGFjdGlvbnNbY2xpcC5uYW1lXS5wbGF5KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiB7IHJlZiwgYWN0aW9ucywgbWl4ZXIsIG5hbWVzLCBjbGlwcyB9O1xufVxuIl19
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci10aHJlZS1zb2JhL21pc2Mvc3JjL2xpYi9hbmltYXRpb25zL2FuaW1hdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLFlBQVksRUFBa0IsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFFLEdBQUcsRUFBYyxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdELE9BQU8sS0FBSyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBVy9CLE1BQU0sVUFBVSxvQkFBb0IsQ0FDaEMsV0FBd0MsRUFDeEMsR0FBcUQ7SUFFckQsSUFBSSxTQUFTLEdBQUcsWUFBWSxFQUFrQixDQUFDO0lBRS9DLElBQUksR0FBRyxFQUFFO1FBQ0wsSUFBSSxHQUFHLFlBQVksS0FBSyxDQUFDLFFBQVEsRUFBRTtZQUMvQixTQUFTLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQztTQUNqQzthQUFNO1lBQ0gsU0FBUyxHQUFHLEdBQUcsQ0FBQztTQUNuQjtLQUNKO0lBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUssQ0FBQyxDQUFDO0lBQzlDLE1BQU0sT0FBTyxHQUFHLEVBQTJDLENBQUM7SUFDNUQsSUFBSSxNQUFNLEdBQUcsRUFBMkMsQ0FBQztJQUV6RCxNQUFNLEtBQUssR0FBRyxFQUEyQixDQUFDO0lBQzFDLE1BQU0sS0FBSyxHQUFHLEVBQWMsQ0FBQztJQUU3QixNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxFQUFFO1FBQ3ZDLGVBQWU7UUFDZixNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ1osa0JBQWtCO1FBQ2xCLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDdEMsSUFBSSxTQUFTLENBQUMsYUFBYSxFQUFFO2dCQUN6QixLQUFLLENBQUMsYUFBYSxDQUFDLE1BQXdDLEVBQUUsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO2FBQzFGO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxtQkFBbUI7UUFDbkIsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzFCLENBQUMsQ0FBQyxDQUFDO0lBRUgsa0JBQWtCLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFFdkQsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ2hDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNqRyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSxFQUFFO1FBQ2hDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3hDLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUUzQixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN0QixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBRWpCLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUU7Z0JBQ3RDLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixHQUFHLEVBQUUsR0FBRyxFQUFFO29CQUNOLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFDckYsQ0FBQzthQUNKLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDVCxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO2FBQzdCO1NBQ0o7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVQLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDO0FBQzVELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3RCZWZvcmVSZW5kZXIsIGluamVjdE5ndERlc3Ryb3ksIGluamVjdE5ndFJlZiwgTmd0SW5qZWN0ZWRSZWYgfSBmcm9tICdhbmd1bGFyLXRocmVlJztcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSwgc3dpdGNoTWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcbmltcG9ydCB7IEFuaW1hdGlvbkNsaXAgfSBmcm9tICd0aHJlZSc7XG5cbnR5cGUgQXBpID0ge1xuICAgIHJlZjogTmd0SW5qZWN0ZWRSZWY8VEhSRUUuT2JqZWN0M0Q+O1xuICAgIGNsaXBzOiBUSFJFRS5BbmltYXRpb25DbGlwW107XG4gICAgbWl4ZXI6IFRIUkVFLkFuaW1hdGlvbk1peGVyO1xuICAgIG5hbWVzOiBzdHJpbmdbXTtcbiAgICBhY3Rpb25zOiBSZWNvcmQ8c3RyaW5nLCBUSFJFRS5BbmltYXRpb25BY3Rpb24+O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdE5ndHNBbmltYXRpb25zKFxuICAgIGFuaW1hdGlvbnMkOiBPYnNlcnZhYmxlPEFuaW1hdGlvbkNsaXBbXT4sXG4gICAgcmVmPzogTmd0SW5qZWN0ZWRSZWY8VEhSRUUuT2JqZWN0M0Q+IHwgVEhSRUUuT2JqZWN0M0Rcbik6IEFwaSB7XG4gICAgbGV0IGFjdHVhbFJlZiA9IGluamVjdE5ndFJlZjxUSFJFRS5PYmplY3QzRD4oKTtcblxuICAgIGlmIChyZWYpIHtcbiAgICAgICAgaWYgKHJlZiBpbnN0YW5jZW9mIFRIUkVFLk9iamVjdDNEKSB7XG4gICAgICAgICAgICBhY3R1YWxSZWYubmF0aXZlRWxlbWVudCA9IHJlZjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFjdHVhbFJlZiA9IHJlZjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IG1peGVyID0gbmV3IFRIUkVFLkFuaW1hdGlvbk1peGVyKG51bGwhKTtcbiAgICBjb25zdCBhY3Rpb25zID0ge30gYXMgUmVjb3JkPHN0cmluZywgVEhSRUUuQW5pbWF0aW9uQWN0aW9uPjtcbiAgICBsZXQgY2FjaGVkID0ge30gYXMgUmVjb3JkPHN0cmluZywgVEhSRUUuQW5pbWF0aW9uQWN0aW9uPjtcblxuICAgIGNvbnN0IGNsaXBzID0gW10gYXMgVEhSRUUuQW5pbWF0aW9uQ2xpcFtdO1xuICAgIGNvbnN0IG5hbWVzID0gW10gYXMgc3RyaW5nW107XG5cbiAgICBjb25zdCB7IGRlc3Ryb3kkIH0gPSBpbmplY3ROZ3REZXN0cm95KCgpID0+IHtcbiAgICAgICAgLy8gY2xlYXIgY2FjaGVkXG4gICAgICAgIGNhY2hlZCA9IHt9O1xuICAgICAgICAvLyB1bmNhY2hlIGFjdGlvbnNcbiAgICAgICAgT2JqZWN0LnZhbHVlcyhhY3Rpb25zKS5mb3JFYWNoKChhY3Rpb24pID0+IHtcbiAgICAgICAgICAgIGlmIChhY3R1YWxSZWYubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIG1peGVyLnVuY2FjaGVBY3Rpb24oYWN0aW9uIGFzIHVua25vd24gYXMgVEhSRUUuQW5pbWF0aW9uQ2xpcCwgYWN0dWFsUmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgLy8gc3RvcCBhbGwgYWN0aW9uc1xuICAgICAgICBtaXhlci5zdG9wQWxsQWN0aW9uKCk7XG4gICAgfSk7XG5cbiAgICBpbmplY3RCZWZvcmVSZW5kZXIoKHsgZGVsdGEgfSkgPT4gbWl4ZXIudXBkYXRlKGRlbHRhKSk7XG5cbiAgICBhY3R1YWxSZWYuJC5waXBlKHRha2VVbnRpbChkZXN0cm95JCkpXG4gICAgICAgIC5waXBlKHN3aXRjaE1hcCgob2JqZWN0KSA9PiBhbmltYXRpb25zJC5waXBlKG1hcCgoYW5pbWF0aW9ucykgPT4gW29iamVjdCwgYW5pbWF0aW9uc10gYXMgY29uc3QpKSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKFtvYmplY3QsIGFuaW1hdGlvbnNdKSA9PiB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFuaW1hdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjbGlwID0gYW5pbWF0aW9uc1tpXTtcblxuICAgICAgICAgICAgICAgIG5hbWVzLnB1c2goY2xpcC5uYW1lKTtcbiAgICAgICAgICAgICAgICBjbGlwcy5wdXNoKGNsaXApO1xuXG4gICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGFjdGlvbnMsIGNsaXAubmFtZSwge1xuICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICBnZXQ6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjYWNoZWRbY2xpcC5uYW1lXSB8fCAoY2FjaGVkW2NsaXAubmFtZV0gPSBtaXhlci5jbGlwQWN0aW9uKGNsaXAsIG9iamVjdCkpO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgaWYgKGkgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uc1tjbGlwLm5hbWVdLnBsYXkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgcmV0dXJuIHsgcmVmOiBhY3R1YWxSZWYsIGFjdGlvbnMsIG1peGVyLCBuYW1lcywgY2xpcHMgfTtcbn1cbiJdfQ==
@@ -1,12 +1,19 @@
1
1
  import { injectNgtLoader, NgtRxStore, injectNgtDestroy, startWithUndefined, NgtPush, NgtStore } from 'angular-three';
2
- import { take, combineLatest, map, withLatestFrom, switchMap, timer, of, tap } from 'rxjs';
2
+ import { isObservable, map, of, take, combineLatest, withLatestFrom, switchMap, timer, tap } from 'rxjs';
3
+ import * as THREE from 'three';
3
4
  import { MeshoptDecoder } from 'three-stdlib';
4
5
  import { DRACOLoader } from 'three-stdlib/loaders/DRACOLoader';
5
6
  import { GLTFLoader } from 'three-stdlib/loaders/GLTFLoader';
6
7
  import { NgIf, AsyncPipe } from '@angular/common';
7
8
  import * as i0 from '@angular/core';
8
9
  import { Component, ChangeDetectionStrategy, Input, ViewChild, inject } from '@angular/core';
9
- import * as THREE from 'three';
10
+
11
+ function injectCubeTextureLoader(files, path) {
12
+ const inputs$ = isObservable(files) ? files.pipe(map((f) => [f])) : of([files]);
13
+ return injectNgtLoader(() => THREE.CubeTextureLoader,
14
+ // @ts-expect-error CubeTexture accepts a string[] and pass into loader as [[...]]
15
+ inputs$, (loader) => loader.setPath(path)).pipe(map((textures) => textures[0]));
16
+ }
10
17
 
11
18
  let dracoLoader = null;
12
19
  function _extensions(useDraco, useMeshOpt, extensions) {
@@ -218,5 +225,5 @@ function injectNgtsTextureLoader(input, onLoad) {
218
225
  * Generated bundle index. Do not edit.
219
226
  */
220
227
 
221
- export { IsObject, NgtsLoader, injectNgtsGLTFLoader, injectNgtsProgress, injectNgtsTextureLoader };
228
+ export { IsObject, NgtsLoader, injectCubeTextureLoader, injectNgtsGLTFLoader, injectNgtsProgress, injectNgtsTextureLoader };
222
229
  //# sourceMappingURL=angular-three-soba-loaders.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"angular-three-soba-loaders.mjs","sources":["../../../../libs/angular-three-soba/loaders/src/lib/gltf-loader/gltf-loader.ts","../../../../libs/angular-three-soba/loaders/src/lib/progress/progress.ts","../../../../libs/angular-three-soba/loaders/src/lib/loader/loader.ts","../../../../libs/angular-three-soba/loaders/src/lib/texture-loader/texture-loader.ts","../../../../libs/angular-three-soba/loaders/src/angular-three-soba-loaders.ts"],"sourcesContent":["import { injectNgtLoader, NgtLoaderResults, NgtObjectMap } from 'angular-three';\nimport { Observable, take } from 'rxjs';\n// @ts-ignore\nimport { MeshoptDecoder } from 'three-stdlib';\nimport { DRACOLoader } from 'three-stdlib/loaders/DRACOLoader';\nimport { GLTF, GLTFLoader } from 'three-stdlib/loaders/GLTFLoader';\n\nlet dracoLoader: DRACOLoader | null = null;\n\nfunction _extensions(useDraco: boolean | string, useMeshOpt: boolean, extensions?: (loader: GLTFLoader) => void) {\n return (loader: THREE.Loader) => {\n if (extensions) {\n extensions(loader as GLTFLoader);\n }\n\n if (useDraco) {\n if (!dracoLoader) {\n dracoLoader = new DRACOLoader();\n }\n\n dracoLoader.setDecoderPath(\n typeof useDraco === 'string' ? useDraco : 'https://www.gstatic.com/draco/versioned/decoders/1.4.3/'\n );\n (loader as GLTFLoader).setDRACOLoader(dracoLoader);\n }\n\n if (useMeshOpt) {\n (loader as GLTFLoader).setMeshoptDecoder(\n typeof MeshoptDecoder === 'function' ? MeshoptDecoder() : MeshoptDecoder\n );\n }\n };\n}\n\nexport interface NgtsGLTFLoader {\n <TInput extends string | string[] | Record<string, string>>(\n path: TInput | Observable<TInput>,\n useDraco?: boolean | string,\n useMeshOpt?: boolean,\n extensions?: (loader: GLTFLoader) => void\n ): Observable<NgtLoaderResults<TInput, GLTF & NgtObjectMap>>;\n preload: <TInput extends string | string[] | Record<string, string>>(\n path: TInput | Observable<TInput>,\n useDraco?: boolean | string,\n useMeshOpt?: boolean,\n extensions?: (loader: GLTFLoader) => void\n ) => void;\n}\n\nfunction injectGLTFLoader<TInput extends string | string[] | Record<string, string>>(\n path: TInput | Observable<TInput>,\n useDraco: boolean | string = true,\n useMeshOpt = true,\n extensions?: (loader: GLTFLoader) => void\n): Observable<NgtLoaderResults<TInput, GLTF & NgtObjectMap>> {\n return injectNgtLoader(() => GLTFLoader, path, _extensions(useDraco, useMeshOpt, extensions)) as Observable<\n NgtLoaderResults<TInput, GLTF & NgtObjectMap>\n >;\n}\n\n(injectGLTFLoader as NgtsGLTFLoader).preload = (path, useDraco = true, useMeshOpt = true, extensions) => {\n injectGLTFLoader(path, useDraco, useMeshOpt, extensions).pipe(take(1)).subscribe();\n};\n\nexport const injectNgtsGLTFLoader = injectGLTFLoader as NgtsGLTFLoader;\n","import { injectNgtDestroy, NgtRxStore } from 'angular-three';\nimport * as THREE from 'three';\n\nexport function injectNgtsProgress() {\n const progress = new NgtRxStore<{\n errors: string[];\n active: boolean;\n progress: number;\n item: string;\n loaded: number;\n total: number;\n }>();\n progress.set({ errors: [], active: false, progress: 0, item: '', loaded: 0, total: 0 });\n const { cdr } = injectNgtDestroy(() => progress.ngOnDestroy());\n let saveLastTotalLoaded = 0;\n\n THREE.DefaultLoadingManager.onStart = (item, loaded, total) => {\n progress.set({\n active: true,\n item,\n loaded,\n total,\n progress: ((loaded - saveLastTotalLoaded) / (total - saveLastTotalLoaded)) * 100,\n });\n cdr.detectChanges();\n };\n\n THREE.DefaultLoadingManager.onLoad = () => {\n progress.set({ active: false });\n cdr.detectChanges();\n };\n\n THREE.DefaultLoadingManager.onError = (url) => {\n progress.set({ errors: [...progress.get('errors'), url] });\n cdr.detectChanges();\n };\n\n THREE.DefaultLoadingManager.onProgress = (item, loaded, total) => {\n if (loaded === total) saveLastTotalLoaded = total;\n progress.set({\n item,\n loaded,\n total,\n progress: ((loaded - saveLastTotalLoaded) / (total - saveLastTotalLoaded)) * 100 || 100,\n });\n cdr.detectChanges();\n };\n\n return progress;\n}\n","import { AsyncPipe, NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';\nimport { NgtPush, NgtRxStore, startWithUndefined } from 'angular-three';\nimport { combineLatest, map, of, switchMap, timer, withLatestFrom } from 'rxjs';\nimport { injectNgtsProgress } from '../progress/progress';\n\nconst defaultDataInterpolation = (p: number) => `Loading ${p.toFixed(2)}%`;\n\n@Component({\n selector: 'ngts-loader',\n standalone: true,\n template: `\n <ng-container *ngIf=\"vm$ | ngtPush as vm\">\n <div\n *ngIf=\"vm.shown\"\n class=\"ngts-loader-container\"\n [class]=\"vm.containerClass\"\n [style.--ngts-loader-container-opacity]=\"vm.active ? 1 : 0\"\n >\n <div>\n <div class=\"ngts-loader-inner\" [class]=\"vm.innerClass\">\n <div\n class=\"ngts-loader-bar\"\n [class]=\"vm.barClass\"\n [style.--ngts-loader-bar-scale]=\"vm.progress / 100\"\n ></div>\n <span #progressSpanRef class=\"ngts-loader-data\" [class]=\"vm.dataClass\"></span>\n </div>\n </div>\n </div>\n </ng-container>\n `,\n styleUrls: ['loader.css'],\n imports: [NgIf, AsyncPipe, NgtPush],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtsLoader extends NgtRxStore implements OnInit {\n private readonly progress = injectNgtsProgress();\n\n readonly vm$ = combineLatest([\n this.select('shown'),\n this.select('containerClass').pipe(startWithUndefined()),\n this.select('innerClass').pipe(startWithUndefined()),\n this.select('barClass').pipe(startWithUndefined()),\n this.select('dataClass').pipe(startWithUndefined()),\n this.progress.select('progress'),\n this.progress.select('active'),\n ]).pipe(\n map(([shown, containerClass, innerClass, barClass, dataClass, progress, active]) => {\n return { shown, containerClass, innerClass, barClass, dataClass, progress, active };\n })\n );\n\n @Input() set containerClass(containerClass: string) {\n this.set({ containerClass });\n }\n\n @Input() set innerClass(innerClass: string) {\n this.set({ innerClass });\n }\n\n @Input() set barClass(barClass: string) {\n this.set({ barClass });\n }\n\n @Input() set dataClass(dataClass: string) {\n this.set({ dataClass });\n }\n\n @Input() set dataInterpolation(dataInterpolation: (value: number) => string) {\n this.set({ dataInterpolation });\n }\n\n @Input() set initialState(initialState: (value: boolean) => boolean) {\n this.set({ initialState });\n }\n\n @ViewChild('progressSpanRef') progressSpanRef?: ElementRef<HTMLSpanElement>;\n\n override initialize(): void {\n super.initialize();\n this.set({ dataInterpolation: defaultDataInterpolation, initialState: (active: boolean) => active });\n }\n\n ngOnInit() {\n this.set({ shown: this.get('initialState')(this.progress.get('active')) });\n this.connect(\n 'shown',\n this.progress.select('active').pipe(\n withLatestFrom(this.select('shown')),\n switchMap(([active, shown]) => {\n if (shown !== active) return timer(300).pipe(map(() => active));\n return of(shown);\n })\n )\n );\n\n let progressRef = 0;\n let rafId: ReturnType<typeof requestAnimationFrame>;\n\n this.effect(\n combineLatest([this.select('dataInterpolation'), this.progress.select('progress')]),\n ([dataInterpolation, progress]) => {\n const updateProgress = () => {\n if (!this.progressSpanRef?.nativeElement) return;\n progressRef += (progress - progressRef) / 2;\n if (progressRef > 0.95 * progress || progress === 100) progressRef = progress;\n this.progressSpanRef.nativeElement.innerText = dataInterpolation(progressRef);\n if (progressRef < progress) {\n rafId = requestAnimationFrame(updateProgress);\n }\n };\n\n updateProgress();\n\n return () => cancelAnimationFrame(rafId);\n }\n );\n }\n}\n","import { inject } from '@angular/core';\nimport { injectNgtLoader, NgtLoaderResults, NgtStore } from 'angular-three';\nimport { Observable, tap } from 'rxjs';\nimport * as THREE from 'three';\n\nexport const IsObject = (url: any): url is Record<string, string> =>\n url === Object(url) && !Array.isArray(url) && typeof url !== 'function';\n\nexport function injectNgtsTextureLoader<TInput extends string[] | string | Record<string, string>>(\n input: TInput | Observable<TInput>,\n onLoad?: (texture: THREE.Texture | THREE.Texture[]) => void\n): Observable<NgtLoaderResults<TInput, THREE.Texture>> {\n const store = inject(NgtStore);\n return injectNgtLoader(() => THREE.TextureLoader, input).pipe(\n tap((textures) => {\n const array = Array.isArray(textures)\n ? textures\n : textures instanceof THREE.Texture\n ? [textures]\n : Object.values(textures);\n if (onLoad) onLoad(array);\n array.forEach(store.get('gl').initTexture);\n })\n ) as Observable<NgtLoaderResults<TInput, THREE.Texture>>;\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-loaders.mjs","sources":["../../../../libs/angular-three-soba/loaders/src/lib/cube-texture-loader/cube-texture-loader.ts","../../../../libs/angular-three-soba/loaders/src/lib/gltf-loader/gltf-loader.ts","../../../../libs/angular-three-soba/loaders/src/lib/progress/progress.ts","../../../../libs/angular-three-soba/loaders/src/lib/loader/loader.ts","../../../../libs/angular-three-soba/loaders/src/lib/texture-loader/texture-loader.ts","../../../../libs/angular-three-soba/loaders/src/angular-three-soba-loaders.ts"],"sourcesContent":["import { injectNgtLoader } from 'angular-three';\nimport { isObservable, map, Observable, of } from 'rxjs';\nimport * as THREE from 'three';\n\nexport function injectCubeTextureLoader(\n files: string[] | Observable<string[]>,\n path: string\n): Observable<THREE.CubeTexture> {\n const inputs$ = isObservable(files) ? files.pipe(map((f) => [f])) : of([files]);\n return injectNgtLoader(\n () => THREE.CubeTextureLoader,\n // @ts-expect-error CubeTexture accepts a string[] and pass into loader as [[...]]\n inputs$,\n (loader) => loader.setPath(path)\n ).pipe(map((textures) => (textures as THREE.CubeTexture[])[0]));\n}\n","import { injectNgtLoader, NgtLoaderResults, NgtObjectMap } from 'angular-three';\nimport { Observable, take } from 'rxjs';\n// @ts-ignore\nimport { MeshoptDecoder } from 'three-stdlib';\nimport { DRACOLoader } from 'three-stdlib/loaders/DRACOLoader';\nimport { GLTF, GLTFLoader } from 'three-stdlib/loaders/GLTFLoader';\n\nlet dracoLoader: DRACOLoader | null = null;\n\nfunction _extensions(useDraco: boolean | string, useMeshOpt: boolean, extensions?: (loader: GLTFLoader) => void) {\n return (loader: THREE.Loader) => {\n if (extensions) {\n extensions(loader as GLTFLoader);\n }\n\n if (useDraco) {\n if (!dracoLoader) {\n dracoLoader = new DRACOLoader();\n }\n\n dracoLoader.setDecoderPath(\n typeof useDraco === 'string' ? useDraco : 'https://www.gstatic.com/draco/versioned/decoders/1.4.3/'\n );\n (loader as GLTFLoader).setDRACOLoader(dracoLoader);\n }\n\n if (useMeshOpt) {\n (loader as GLTFLoader).setMeshoptDecoder(\n typeof MeshoptDecoder === 'function' ? MeshoptDecoder() : MeshoptDecoder\n );\n }\n };\n}\n\nexport interface NgtsGLTFLoader {\n <TInput extends string | string[] | Record<string, string>>(\n path: TInput | Observable<TInput>,\n useDraco?: boolean | string,\n useMeshOpt?: boolean,\n extensions?: (loader: GLTFLoader) => void\n ): Observable<NgtLoaderResults<TInput, GLTF & NgtObjectMap>>;\n preload: <TInput extends string | string[] | Record<string, string>>(\n path: TInput | Observable<TInput>,\n useDraco?: boolean | string,\n useMeshOpt?: boolean,\n extensions?: (loader: GLTFLoader) => void\n ) => void;\n}\n\nfunction injectGLTFLoader<TInput extends string | string[] | Record<string, string>>(\n path: TInput | Observable<TInput>,\n useDraco: boolean | string = true,\n useMeshOpt = true,\n extensions?: (loader: GLTFLoader) => void\n): Observable<NgtLoaderResults<TInput, GLTF & NgtObjectMap>> {\n return injectNgtLoader(() => GLTFLoader, path, _extensions(useDraco, useMeshOpt, extensions)) as Observable<\n NgtLoaderResults<TInput, GLTF & NgtObjectMap>\n >;\n}\n\n(injectGLTFLoader as NgtsGLTFLoader).preload = (path, useDraco = true, useMeshOpt = true, extensions) => {\n injectGLTFLoader(path, useDraco, useMeshOpt, extensions).pipe(take(1)).subscribe();\n};\n\nexport const injectNgtsGLTFLoader = injectGLTFLoader as NgtsGLTFLoader;\n","import { injectNgtDestroy, NgtRxStore } from 'angular-three';\nimport * as THREE from 'three';\n\nexport function injectNgtsProgress() {\n const progress = new NgtRxStore<{\n errors: string[];\n active: boolean;\n progress: number;\n item: string;\n loaded: number;\n total: number;\n }>();\n progress.set({ errors: [], active: false, progress: 0, item: '', loaded: 0, total: 0 });\n const { cdr } = injectNgtDestroy(() => progress.ngOnDestroy());\n let saveLastTotalLoaded = 0;\n\n THREE.DefaultLoadingManager.onStart = (item, loaded, total) => {\n progress.set({\n active: true,\n item,\n loaded,\n total,\n progress: ((loaded - saveLastTotalLoaded) / (total - saveLastTotalLoaded)) * 100,\n });\n cdr.detectChanges();\n };\n\n THREE.DefaultLoadingManager.onLoad = () => {\n progress.set({ active: false });\n cdr.detectChanges();\n };\n\n THREE.DefaultLoadingManager.onError = (url) => {\n progress.set({ errors: [...progress.get('errors'), url] });\n cdr.detectChanges();\n };\n\n THREE.DefaultLoadingManager.onProgress = (item, loaded, total) => {\n if (loaded === total) saveLastTotalLoaded = total;\n progress.set({\n item,\n loaded,\n total,\n progress: ((loaded - saveLastTotalLoaded) / (total - saveLastTotalLoaded)) * 100 || 100,\n });\n cdr.detectChanges();\n };\n\n return progress;\n}\n","import { AsyncPipe, NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';\nimport { NgtPush, NgtRxStore, startWithUndefined } from 'angular-three';\nimport { combineLatest, map, of, switchMap, timer, withLatestFrom } from 'rxjs';\nimport { injectNgtsProgress } from '../progress/progress';\n\nconst defaultDataInterpolation = (p: number) => `Loading ${p.toFixed(2)}%`;\n\n@Component({\n selector: 'ngts-loader',\n standalone: true,\n template: `\n <ng-container *ngIf=\"vm$ | ngtPush as vm\">\n <div\n *ngIf=\"vm.shown\"\n class=\"ngts-loader-container\"\n [class]=\"vm.containerClass\"\n [style.--ngts-loader-container-opacity]=\"vm.active ? 1 : 0\"\n >\n <div>\n <div class=\"ngts-loader-inner\" [class]=\"vm.innerClass\">\n <div\n class=\"ngts-loader-bar\"\n [class]=\"vm.barClass\"\n [style.--ngts-loader-bar-scale]=\"vm.progress / 100\"\n ></div>\n <span #progressSpanRef class=\"ngts-loader-data\" [class]=\"vm.dataClass\"></span>\n </div>\n </div>\n </div>\n </ng-container>\n `,\n styleUrls: ['loader.css'],\n imports: [NgIf, AsyncPipe, NgtPush],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtsLoader extends NgtRxStore implements OnInit {\n private readonly progress = injectNgtsProgress();\n\n readonly vm$ = combineLatest([\n this.select('shown'),\n this.select('containerClass').pipe(startWithUndefined()),\n this.select('innerClass').pipe(startWithUndefined()),\n this.select('barClass').pipe(startWithUndefined()),\n this.select('dataClass').pipe(startWithUndefined()),\n this.progress.select('progress'),\n this.progress.select('active'),\n ]).pipe(\n map(([shown, containerClass, innerClass, barClass, dataClass, progress, active]) => {\n return { shown, containerClass, innerClass, barClass, dataClass, progress, active };\n })\n );\n\n @Input() set containerClass(containerClass: string) {\n this.set({ containerClass });\n }\n\n @Input() set innerClass(innerClass: string) {\n this.set({ innerClass });\n }\n\n @Input() set barClass(barClass: string) {\n this.set({ barClass });\n }\n\n @Input() set dataClass(dataClass: string) {\n this.set({ dataClass });\n }\n\n @Input() set dataInterpolation(dataInterpolation: (value: number) => string) {\n this.set({ dataInterpolation });\n }\n\n @Input() set initialState(initialState: (value: boolean) => boolean) {\n this.set({ initialState });\n }\n\n @ViewChild('progressSpanRef') progressSpanRef?: ElementRef<HTMLSpanElement>;\n\n override initialize(): void {\n super.initialize();\n this.set({ dataInterpolation: defaultDataInterpolation, initialState: (active: boolean) => active });\n }\n\n ngOnInit() {\n this.set({ shown: this.get('initialState')(this.progress.get('active')) });\n this.connect(\n 'shown',\n this.progress.select('active').pipe(\n withLatestFrom(this.select('shown')),\n switchMap(([active, shown]) => {\n if (shown !== active) return timer(300).pipe(map(() => active));\n return of(shown);\n })\n )\n );\n\n let progressRef = 0;\n let rafId: ReturnType<typeof requestAnimationFrame>;\n\n this.effect(\n combineLatest([this.select('dataInterpolation'), this.progress.select('progress')]),\n ([dataInterpolation, progress]) => {\n const updateProgress = () => {\n if (!this.progressSpanRef?.nativeElement) return;\n progressRef += (progress - progressRef) / 2;\n if (progressRef > 0.95 * progress || progress === 100) progressRef = progress;\n this.progressSpanRef.nativeElement.innerText = dataInterpolation(progressRef);\n if (progressRef < progress) {\n rafId = requestAnimationFrame(updateProgress);\n }\n };\n\n updateProgress();\n\n return () => cancelAnimationFrame(rafId);\n }\n );\n }\n}\n","import { inject } from '@angular/core';\nimport { injectNgtLoader, NgtLoaderResults, NgtStore } from 'angular-three';\nimport { Observable, tap } from 'rxjs';\nimport * as THREE from 'three';\n\nexport const IsObject = (url: any): url is Record<string, string> =>\n url === Object(url) && !Array.isArray(url) && typeof url !== 'function';\n\nexport function injectNgtsTextureLoader<TInput extends string[] | string | Record<string, string>>(\n input: TInput | Observable<TInput>,\n onLoad?: (texture: THREE.Texture | THREE.Texture[]) => void\n): Observable<NgtLoaderResults<TInput, THREE.Texture>> {\n const store = inject(NgtStore);\n return injectNgtLoader(() => THREE.TextureLoader, input).pipe(\n tap((textures) => {\n const array = Array.isArray(textures)\n ? textures\n : textures instanceof THREE.Texture\n ? [textures]\n : Object.values(textures);\n if (onLoad) onLoad(array);\n array.forEach(store.get('gl').initTexture);\n })\n ) as Observable<NgtLoaderResults<TInput, THREE.Texture>>;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}