angular-three-soba 2.0.0-beta.39 → 2.0.0-beta.40

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,4 +1,5 @@
1
1
  import { injectNgtLoader } from 'angular-three';
2
+ import { assertInjector } from 'ngxtension/assert-injector';
2
3
  import { DRACOLoader, GLTFLoader, MeshoptDecoder } from 'three-stdlib';
3
4
  let dracoLoader = null;
4
5
  let decoderPath = 'https://www.gstatic.com/draco/versioned/decoders/1.5.5/';
@@ -19,17 +20,19 @@ function _extensions(useDraco, useMeshOpt, extensions) {
19
20
  }
20
21
  };
21
22
  }
22
- export function injectNgtsGLTFLoader(path, { useDraco = true, useMeshOpt = true, injector, extensions, } = {}) {
23
+ function _injectNgtsGLTFLoader(path, { useDraco = true, useMeshOpt = true, injector, extensions, } = {}) {
24
+ injector = assertInjector(_injectNgtsGLTFLoader, injector);
23
25
  return injectNgtLoader(() => GLTFLoader, path, {
24
26
  // TODO: fix "as any" when three-stdlib is updated with THREE 0.156
25
27
  extensions: _extensions(useDraco, useMeshOpt, extensions),
26
28
  injector,
27
29
  });
28
30
  }
29
- injectNgtsGLTFLoader['preload'] = (path, { useDraco = true, useMeshOpt = true, extensions, } = {}) => {
30
- injectNgtLoader['preload'](() => GLTFLoader, path, _extensions(useDraco, useMeshOpt, extensions));
31
+ _injectNgtsGLTFLoader.preload = (path, { useDraco = true, useMeshOpt = true, extensions, } = {}) => {
32
+ injectNgtLoader.preload(() => GLTFLoader, path, _extensions(useDraco, useMeshOpt, extensions));
31
33
  };
32
- injectNgtsGLTFLoader['setDecoderPath'] = (path) => {
34
+ _injectNgtsGLTFLoader.setDecoderPath = (path) => {
33
35
  decoderPath = path;
34
36
  };
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2x0Zi1sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvbG9hZGVycy9zcmMvZ2x0Zi1sb2FkZXIvZ2x0Zi1sb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGVBQWUsRUFBNEMsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFhLE1BQU0sY0FBYyxDQUFDO0FBRWxGLElBQUksV0FBVyxHQUF1QixJQUFJLENBQUM7QUFDM0MsSUFBSSxXQUFXLEdBQUcseURBQXlELENBQUM7QUFFNUUsU0FBUyxXQUFXLENBQUMsUUFBMEIsRUFBRSxVQUFtQixFQUFFLFVBQXlDO0lBQzlHLE9BQU8sQ0FBQyxNQUFvQixFQUFFLEVBQUU7UUFDL0IsSUFBSSxVQUFVLEVBQUU7WUFDZixVQUFVLENBQUMsTUFBb0IsQ0FBQyxDQUFDO1NBQ2pDO1FBRUQsSUFBSSxRQUFRLEVBQUU7WUFDYixJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUNqQixXQUFXLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQzthQUNoQztZQUVELFdBQVcsQ0FBQyxjQUFjLENBQUMsT0FBTyxRQUFRLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2pGLE1BQXFCLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ25EO1FBQ0QsSUFBSSxVQUFVLEVBQUU7WUFDZCxNQUFxQixDQUFDLGlCQUFpQixDQUN2QyxPQUFPLGNBQWMsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQ3hFLENBQUM7U0FDRjtJQUNGLENBQUMsQ0FBQztBQUNILENBQUM7QUFJRCxNQUFNLFVBQVUsb0JBQW9CLENBQ25DLElBQWdCLEVBQ2hCLEVBQ0MsUUFBUSxHQUFHLElBQUksRUFDZixVQUFVLEdBQUcsSUFBSSxFQUNqQixRQUFRLEVBQ1IsVUFBVSxNQU1QLEVBQUU7SUFFTixPQUFPLGVBQWUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFO1FBQzlDLG1FQUFtRTtRQUNuRSxVQUFVLEVBQUUsV0FBVyxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsVUFBVSxDQUFRO1FBQ2hFLFFBQVE7S0FDUixDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsb0JBQW9CLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FDakMsSUFBZ0IsRUFDaEIsRUFDQyxRQUFRLEdBQUcsSUFBSSxFQUNmLFVBQVUsR0FBRyxJQUFJLEVBQ2pCLFVBQVUsTUFLUCxFQUFFLEVBQ0wsRUFBRTtJQUNGLGVBQXVCLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxXQUFXLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO0FBQzVHLENBQUMsQ0FBQztBQUNGLG9CQUFvQixDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRTtJQUN6RCxXQUFXLEdBQUcsSUFBSSxDQUFDO0FBQ3BCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSW5qZWN0b3IsIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0Tmd0TG9hZGVyLCB0eXBlIE5ndExvYWRlclJlc3VsdHMsIHR5cGUgTmd0T2JqZWN0TWFwIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBEUkFDT0xvYWRlciwgR0xURkxvYWRlciwgTWVzaG9wdERlY29kZXIsIHR5cGUgR0xURiB9IGZyb20gJ3RocmVlLXN0ZGxpYic7XG5cbmxldCBkcmFjb0xvYWRlcjogRFJBQ09Mb2FkZXIgfCBudWxsID0gbnVsbDtcbmxldCBkZWNvZGVyUGF0aCA9ICdodHRwczovL3d3dy5nc3RhdGljLmNvbS9kcmFjby92ZXJzaW9uZWQvZGVjb2RlcnMvMS41LjUvJztcblxuZnVuY3Rpb24gX2V4dGVuc2lvbnModXNlRHJhY286IGJvb2xlYW4gfCBzdHJpbmcsIHVzZU1lc2hPcHQ6IGJvb2xlYW4sIGV4dGVuc2lvbnM/OiAobG9hZGVyOiBHTFRGTG9hZGVyKSA9PiB2b2lkKSB7XG5cdHJldHVybiAobG9hZGVyOiBUSFJFRS5Mb2FkZXIpID0+IHtcblx0XHRpZiAoZXh0ZW5zaW9ucykge1xuXHRcdFx0ZXh0ZW5zaW9ucyhsb2FkZXIgYXMgR0xURkxvYWRlcik7XG5cdFx0fVxuXG5cdFx0aWYgKHVzZURyYWNvKSB7XG5cdFx0XHRpZiAoIWRyYWNvTG9hZGVyKSB7XG5cdFx0XHRcdGRyYWNvTG9hZGVyID0gbmV3IERSQUNPTG9hZGVyKCk7XG5cdFx0XHR9XG5cblx0XHRcdGRyYWNvTG9hZGVyLnNldERlY29kZXJQYXRoKHR5cGVvZiB1c2VEcmFjbyA9PT0gJ3N0cmluZycgPyB1c2VEcmFjbyA6IGRlY29kZXJQYXRoKTtcblx0XHRcdChsb2FkZXIgYXMgR0xURkxvYWRlcikuc2V0RFJBQ09Mb2FkZXIoZHJhY29Mb2FkZXIpO1xuXHRcdH1cblx0XHRpZiAodXNlTWVzaE9wdCkge1xuXHRcdFx0KGxvYWRlciBhcyBHTFRGTG9hZGVyKS5zZXRNZXNob3B0RGVjb2Rlcihcblx0XHRcdFx0dHlwZW9mIE1lc2hvcHREZWNvZGVyID09PSAnZnVuY3Rpb24nID8gTWVzaG9wdERlY29kZXIoKSA6IE1lc2hvcHREZWNvZGVyLFxuXHRcdFx0KTtcblx0XHR9XG5cdH07XG59XG5cbmV4cG9ydCB0eXBlIE5ndHNHTFRGPFQgZXh0ZW5kcyBQYXJ0aWFsPE5ndE9iamVjdE1hcD4+ID0gR0xURiAmIE5ndE9iamVjdE1hcCAmIFQ7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3ROZ3RzR0xURkxvYWRlcjxUVXJsIGV4dGVuZHMgc3RyaW5nIHwgc3RyaW5nW10gfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+Pihcblx0cGF0aDogKCkgPT4gVFVybCxcblx0e1xuXHRcdHVzZURyYWNvID0gdHJ1ZSxcblx0XHR1c2VNZXNoT3B0ID0gdHJ1ZSxcblx0XHRpbmplY3Rvcixcblx0XHRleHRlbnNpb25zLFxuXHR9OiB7XG5cdFx0dXNlRHJhY28/OiBib29sZWFuIHwgc3RyaW5nO1xuXHRcdHVzZU1lc2hPcHQ/OiBib29sZWFuO1xuXHRcdGluamVjdG9yPzogSW5qZWN0b3I7XG5cdFx0ZXh0ZW5zaW9ucz86IChsb2FkZXI6IEdMVEZMb2FkZXIpID0+IHZvaWQ7XG5cdH0gPSB7fSxcbik6IFNpZ25hbDxOZ3RMb2FkZXJSZXN1bHRzPFRVcmwsIEdMVEYgJiBOZ3RPYmplY3RNYXA+IHwgbnVsbD4ge1xuXHRyZXR1cm4gaW5qZWN0Tmd0TG9hZGVyKCgpID0+IEdMVEZMb2FkZXIsIHBhdGgsIHtcblx0XHQvLyBUT0RPOiBmaXggXCJhcyBhbnlcIiB3aGVuIHRocmVlLXN0ZGxpYiBpcyB1cGRhdGVkIHdpdGggVEhSRUUgMC4xNTZcblx0XHRleHRlbnNpb25zOiBfZXh0ZW5zaW9ucyh1c2VEcmFjbywgdXNlTWVzaE9wdCwgZXh0ZW5zaW9ucykgYXMgYW55LFxuXHRcdGluamVjdG9yLFxuXHR9KTtcbn1cblxuaW5qZWN0Tmd0c0dMVEZMb2FkZXJbJ3ByZWxvYWQnXSA9IDxUVXJsIGV4dGVuZHMgc3RyaW5nIHwgc3RyaW5nW10gfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+Pihcblx0cGF0aDogKCkgPT4gVFVybCxcblx0e1xuXHRcdHVzZURyYWNvID0gdHJ1ZSxcblx0XHR1c2VNZXNoT3B0ID0gdHJ1ZSxcblx0XHRleHRlbnNpb25zLFxuXHR9OiB7XG5cdFx0dXNlRHJhY28/OiBib29sZWFuIHwgc3RyaW5nO1xuXHRcdHVzZU1lc2hPcHQ/OiBib29sZWFuO1xuXHRcdGV4dGVuc2lvbnM/OiAobG9hZGVyOiBHTFRGTG9hZGVyKSA9PiB2b2lkO1xuXHR9ID0ge30sXG4pID0+IHtcblx0KGluamVjdE5ndExvYWRlciBhcyBhbnkpWydwcmVsb2FkJ10oKCkgPT4gR0xURkxvYWRlciwgcGF0aCwgX2V4dGVuc2lvbnModXNlRHJhY28sIHVzZU1lc2hPcHQsIGV4dGVuc2lvbnMpKTtcbn07XG5pbmplY3ROZ3RzR0xURkxvYWRlclsnc2V0RGVjb2RlclBhdGgnXSA9IChwYXRoOiBzdHJpbmcpID0+IHtcblx0ZGVjb2RlclBhdGggPSBwYXRoO1xufTtcbiJdfQ==
37
+ export const injectNgtsGLTFLoader = _injectNgtsGLTFLoader;
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2x0Zi1sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvbG9hZGVycy9zcmMvZ2x0Zi1sb2FkZXIvZ2x0Zi1sb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGVBQWUsRUFBNEMsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBYSxNQUFNLGNBQWMsQ0FBQztBQUVsRixJQUFJLFdBQVcsR0FBdUIsSUFBSSxDQUFDO0FBQzNDLElBQUksV0FBVyxHQUFHLHlEQUF5RCxDQUFDO0FBRTVFLFNBQVMsV0FBVyxDQUFDLFFBQTBCLEVBQUUsVUFBbUIsRUFBRSxVQUF5QztJQUM5RyxPQUFPLENBQUMsTUFBb0IsRUFBRSxFQUFFO1FBQy9CLElBQUksVUFBVSxFQUFFO1lBQ2YsVUFBVSxDQUFDLE1BQW9CLENBQUMsQ0FBQztTQUNqQztRQUVELElBQUksUUFBUSxFQUFFO1lBQ2IsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDakIsV0FBVyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7YUFDaEM7WUFFRCxXQUFXLENBQUMsY0FBYyxDQUFDLE9BQU8sUUFBUSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNqRixNQUFxQixDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUNuRDtRQUNELElBQUksVUFBVSxFQUFFO1lBQ2QsTUFBcUIsQ0FBQyxpQkFBaUIsQ0FDdkMsT0FBTyxjQUFjLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUN4RSxDQUFDO1NBQ0Y7SUFDRixDQUFDLENBQUM7QUFDSCxDQUFDO0FBSUQsU0FBUyxxQkFBcUIsQ0FDN0IsSUFBZ0IsRUFDaEIsRUFDQyxRQUFRLEdBQUcsSUFBSSxFQUNmLFVBQVUsR0FBRyxJQUFJLEVBQ2pCLFFBQVEsRUFDUixVQUFVLE1BTVAsRUFBRTtJQUVOLFFBQVEsR0FBRyxjQUFjLENBQUMscUJBQXFCLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDM0QsT0FBTyxlQUFlLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRTtRQUM5QyxtRUFBbUU7UUFDbkUsVUFBVSxFQUFFLFdBQVcsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBUTtRQUNoRSxRQUFRO0tBQ1IsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELHFCQUFxQixDQUFDLE9BQU8sR0FBRyxDQUMvQixJQUFnQixFQUNoQixFQUNDLFFBQVEsR0FBRyxJQUFJLEVBQ2YsVUFBVSxHQUFHLElBQUksRUFDakIsVUFBVSxNQUtQLEVBQUUsRUFDTCxFQUFFO0lBQ0gsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLFdBQVcsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBUSxDQUFDLENBQUM7QUFDdkcsQ0FBQyxDQUFDO0FBRUYscUJBQXFCLENBQUMsY0FBYyxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUU7SUFDdkQsV0FBVyxHQUFHLElBQUksQ0FBQztBQUNwQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSW5qZWN0b3IsIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0Tmd0TG9hZGVyLCB0eXBlIE5ndExvYWRlclJlc3VsdHMsIHR5cGUgTmd0T2JqZWN0TWFwIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBhc3NlcnRJbmplY3RvciB9IGZyb20gJ25neHRlbnNpb24vYXNzZXJ0LWluamVjdG9yJztcbmltcG9ydCB7IERSQUNPTG9hZGVyLCBHTFRGTG9hZGVyLCBNZXNob3B0RGVjb2RlciwgdHlwZSBHTFRGIH0gZnJvbSAndGhyZWUtc3RkbGliJztcblxubGV0IGRyYWNvTG9hZGVyOiBEUkFDT0xvYWRlciB8IG51bGwgPSBudWxsO1xubGV0IGRlY29kZXJQYXRoID0gJ2h0dHBzOi8vd3d3LmdzdGF0aWMuY29tL2RyYWNvL3ZlcnNpb25lZC9kZWNvZGVycy8xLjUuNS8nO1xuXG5mdW5jdGlvbiBfZXh0ZW5zaW9ucyh1c2VEcmFjbzogYm9vbGVhbiB8IHN0cmluZywgdXNlTWVzaE9wdDogYm9vbGVhbiwgZXh0ZW5zaW9ucz86IChsb2FkZXI6IEdMVEZMb2FkZXIpID0+IHZvaWQpIHtcblx0cmV0dXJuIChsb2FkZXI6IFRIUkVFLkxvYWRlcikgPT4ge1xuXHRcdGlmIChleHRlbnNpb25zKSB7XG5cdFx0XHRleHRlbnNpb25zKGxvYWRlciBhcyBHTFRGTG9hZGVyKTtcblx0XHR9XG5cblx0XHRpZiAodXNlRHJhY28pIHtcblx0XHRcdGlmICghZHJhY29Mb2FkZXIpIHtcblx0XHRcdFx0ZHJhY29Mb2FkZXIgPSBuZXcgRFJBQ09Mb2FkZXIoKTtcblx0XHRcdH1cblxuXHRcdFx0ZHJhY29Mb2FkZXIuc2V0RGVjb2RlclBhdGgodHlwZW9mIHVzZURyYWNvID09PSAnc3RyaW5nJyA/IHVzZURyYWNvIDogZGVjb2RlclBhdGgpO1xuXHRcdFx0KGxvYWRlciBhcyBHTFRGTG9hZGVyKS5zZXREUkFDT0xvYWRlcihkcmFjb0xvYWRlcik7XG5cdFx0fVxuXHRcdGlmICh1c2VNZXNoT3B0KSB7XG5cdFx0XHQobG9hZGVyIGFzIEdMVEZMb2FkZXIpLnNldE1lc2hvcHREZWNvZGVyKFxuXHRcdFx0XHR0eXBlb2YgTWVzaG9wdERlY29kZXIgPT09ICdmdW5jdGlvbicgPyBNZXNob3B0RGVjb2RlcigpIDogTWVzaG9wdERlY29kZXIsXG5cdFx0XHQpO1xuXHRcdH1cblx0fTtcbn1cblxuZXhwb3J0IHR5cGUgTmd0c0dMVEY8VCBleHRlbmRzIFBhcnRpYWw8Tmd0T2JqZWN0TWFwPj4gPSBHTFRGICYgTmd0T2JqZWN0TWFwICYgVDtcblxuZnVuY3Rpb24gX2luamVjdE5ndHNHTFRGTG9hZGVyPFRVcmwgZXh0ZW5kcyBzdHJpbmcgfCBzdHJpbmdbXSB8IFJlY29yZDxzdHJpbmcsIHN0cmluZz4+KFxuXHRwYXRoOiAoKSA9PiBUVXJsLFxuXHR7XG5cdFx0dXNlRHJhY28gPSB0cnVlLFxuXHRcdHVzZU1lc2hPcHQgPSB0cnVlLFxuXHRcdGluamVjdG9yLFxuXHRcdGV4dGVuc2lvbnMsXG5cdH06IHtcblx0XHR1c2VEcmFjbz86IGJvb2xlYW4gfCBzdHJpbmc7XG5cdFx0dXNlTWVzaE9wdD86IGJvb2xlYW47XG5cdFx0aW5qZWN0b3I/OiBJbmplY3Rvcjtcblx0XHRleHRlbnNpb25zPzogKGxvYWRlcjogR0xURkxvYWRlcikgPT4gdm9pZDtcblx0fSA9IHt9LFxuKTogU2lnbmFsPE5ndExvYWRlclJlc3VsdHM8VFVybCwgR0xURiAmIE5ndE9iamVjdE1hcD4gfCBudWxsPiB7XG5cdGluamVjdG9yID0gYXNzZXJ0SW5qZWN0b3IoX2luamVjdE5ndHNHTFRGTG9hZGVyLCBpbmplY3Rvcik7XG5cdHJldHVybiBpbmplY3ROZ3RMb2FkZXIoKCkgPT4gR0xURkxvYWRlciwgcGF0aCwge1xuXHRcdC8vIFRPRE86IGZpeCBcImFzIGFueVwiIHdoZW4gdGhyZWUtc3RkbGliIGlzIHVwZGF0ZWQgd2l0aCBUSFJFRSAwLjE1NlxuXHRcdGV4dGVuc2lvbnM6IF9leHRlbnNpb25zKHVzZURyYWNvLCB1c2VNZXNoT3B0LCBleHRlbnNpb25zKSBhcyBhbnksXG5cdFx0aW5qZWN0b3IsXG5cdH0pO1xufVxuXG5faW5qZWN0Tmd0c0dMVEZMb2FkZXIucHJlbG9hZCA9IDxUVXJsIGV4dGVuZHMgc3RyaW5nIHwgc3RyaW5nW10gfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+Pihcblx0cGF0aDogKCkgPT4gVFVybCxcblx0e1xuXHRcdHVzZURyYWNvID0gdHJ1ZSxcblx0XHR1c2VNZXNoT3B0ID0gdHJ1ZSxcblx0XHRleHRlbnNpb25zLFxuXHR9OiB7XG5cdFx0dXNlRHJhY28/OiBib29sZWFuIHwgc3RyaW5nO1xuXHRcdHVzZU1lc2hPcHQ/OiBib29sZWFuO1xuXHRcdGV4dGVuc2lvbnM/OiAobG9hZGVyOiBHTFRGTG9hZGVyKSA9PiB2b2lkO1xuXHR9ID0ge30sXG4pID0+IHtcblx0aW5qZWN0Tmd0TG9hZGVyLnByZWxvYWQoKCkgPT4gR0xURkxvYWRlciwgcGF0aCwgX2V4dGVuc2lvbnModXNlRHJhY28sIHVzZU1lc2hPcHQsIGV4dGVuc2lvbnMpIGFzIGFueSk7XG59O1xuXG5faW5qZWN0Tmd0c0dMVEZMb2FkZXIuc2V0RGVjb2RlclBhdGggPSAocGF0aDogc3RyaW5nKSA9PiB7XG5cdGRlY29kZXJQYXRoID0gcGF0aDtcbn07XG5cbmV4cG9ydCBjb25zdCBpbmplY3ROZ3RzR0xURkxvYWRlciA9IF9pbmplY3ROZ3RzR0xURkxvYWRlcjtcbiJdfQ==
@@ -2,8 +2,8 @@ import { effect, runInInjectionContext } from '@angular/core';
2
2
  import { injectNgtLoader, injectNgtStore } from 'angular-three';
3
3
  import { assertInjector } from 'ngxtension/assert-injector';
4
4
  import * as THREE from 'three';
5
- export function injectNgtsTextureLoader(input, { onLoad, injector, } = {}) {
6
- injector = assertInjector(injectNgtsTextureLoader, injector);
5
+ function _injectNgtsTextureLoader(input, { onLoad, injector, } = {}) {
6
+ injector = assertInjector(_injectNgtsTextureLoader, injector);
7
7
  return runInInjectionContext(injector, () => {
8
8
  const store = injectNgtStore();
9
9
  const result = injectNgtLoader(() => THREE.TextureLoader, input, { injector });
@@ -26,7 +26,8 @@ export function injectNgtsTextureLoader(input, { onLoad, injector, } = {}) {
26
26
  return result;
27
27
  });
28
28
  }
29
- injectNgtsTextureLoader['preload'] = (input) => {
29
+ _injectNgtsTextureLoader.preload = (input) => {
30
30
  injectNgtLoader.preload(() => THREE.TextureLoader, input);
31
31
  };
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dHVyZS1sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvbG9hZGVycy9zcmMvdGV4dHVyZS1sb2FkZXIvdGV4dHVyZS1sb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxxQkFBcUIsRUFBOEIsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQXlCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUUvQixNQUFNLFVBQVUsdUJBQXVCLENBQ3RDLEtBQW1CLEVBQ25CLEVBQ0MsTUFBTSxFQUNOLFFBQVEsTUFJTCxFQUFFO0lBRU4sUUFBUSxHQUFHLGNBQWMsQ0FBQyx1QkFBdUIsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM3RCxPQUFPLHFCQUFxQixDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUU7UUFDM0MsTUFBTSxLQUFLLEdBQUcsY0FBYyxFQUFFLENBQUM7UUFDL0IsTUFBTSxNQUFNLEdBQUcsZUFBZSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsS0FBSyxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUUvRSxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1gsTUFBTSxRQUFRLEdBQUcsTUFBTSxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLFFBQVE7Z0JBQUUsT0FBTztZQUN0QixNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNCLElBQUksYUFBYSxJQUFJLEVBQUUsRUFBRTtnQkFDeEIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7b0JBQ3BDLENBQUMsQ0FBQyxRQUFRO29CQUNWLENBQUMsQ0FBQyxRQUFRLFlBQVksS0FBSyxDQUFDLE9BQU87d0JBQ25DLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQzt3QkFDWixDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDM0IsSUFBSSxNQUFNO29CQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDMUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQzNDO1FBQ0YsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLE1BQU0sQ0FBQztJQUNmLENBQUMsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQ3BDLEtBQW1CLEVBQ2xCLEVBQUU7SUFDRixlQUF1QixDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3BFLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVmZmVjdCwgcnVuSW5JbmplY3Rpb25Db250ZXh0LCB0eXBlIEluamVjdG9yLCB0eXBlIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0Tmd0TG9hZGVyLCBpbmplY3ROZ3RTdG9yZSwgdHlwZSBOZ3RMb2FkZXJSZXN1bHRzIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBhc3NlcnRJbmplY3RvciB9IGZyb20gJ25neHRlbnNpb24vYXNzZXJ0LWluamVjdG9yJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdE5ndHNUZXh0dXJlTG9hZGVyPFRJbnB1dCBleHRlbmRzIHN0cmluZ1tdIHwgc3RyaW5nIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4oXG5cdGlucHV0OiAoKSA9PiBUSW5wdXQsXG5cdHtcblx0XHRvbkxvYWQsXG5cdFx0aW5qZWN0b3IsXG5cdH06IHtcblx0XHRvbkxvYWQ/OiAodGV4dHVyZTogVEhSRUUuVGV4dHVyZSB8IFRIUkVFLlRleHR1cmVbXSkgPT4gdm9pZDtcblx0XHRpbmplY3Rvcj86IEluamVjdG9yO1xuXHR9ID0ge30sXG4pOiBTaWduYWw8Tmd0TG9hZGVyUmVzdWx0czxUSW5wdXQsIFRIUkVFLlRleHR1cmU+IHwgbnVsbD4ge1xuXHRpbmplY3RvciA9IGFzc2VydEluamVjdG9yKGluamVjdE5ndHNUZXh0dXJlTG9hZGVyLCBpbmplY3Rvcik7XG5cdHJldHVybiBydW5JbkluamVjdGlvbkNvbnRleHQoaW5qZWN0b3IsICgpID0+IHtcblx0XHRjb25zdCBzdG9yZSA9IGluamVjdE5ndFN0b3JlKCk7XG5cdFx0Y29uc3QgcmVzdWx0ID0gaW5qZWN0Tmd0TG9hZGVyKCgpID0+IFRIUkVFLlRleHR1cmVMb2FkZXIsIGlucHV0LCB7IGluamVjdG9yIH0pO1xuXG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdGNvbnN0IHRleHR1cmVzID0gcmVzdWx0KCk7XG5cdFx0XHRpZiAoIXRleHR1cmVzKSByZXR1cm47XG5cdFx0XHRjb25zdCBnbCA9IHN0b3JlLmdldCgnZ2wnKTtcblx0XHRcdGlmICgnaW5pdFRleHR1cmUnIGluIGdsKSB7XG5cdFx0XHRcdGNvbnN0IGFycmF5ID0gQXJyYXkuaXNBcnJheSh0ZXh0dXJlcylcblx0XHRcdFx0XHQ/IHRleHR1cmVzXG5cdFx0XHRcdFx0OiB0ZXh0dXJlcyBpbnN0YW5jZW9mIFRIUkVFLlRleHR1cmVcblx0XHRcdFx0XHQ/IFt0ZXh0dXJlc11cblx0XHRcdFx0XHQ6IE9iamVjdC52YWx1ZXModGV4dHVyZXMpO1xuXHRcdFx0XHRpZiAob25Mb2FkKSBvbkxvYWQoYXJyYXkpO1xuXHRcdFx0XHRhcnJheS5mb3JFYWNoKHN0b3JlLmdldCgnZ2wnKS5pbml0VGV4dHVyZSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHRyZXR1cm4gcmVzdWx0O1xuXHR9KTtcbn1cblxuaW5qZWN0Tmd0c1RleHR1cmVMb2FkZXJbJ3ByZWxvYWQnXSA9IDxUSW5wdXQgZXh0ZW5kcyBzdHJpbmdbXSB8IHN0cmluZyB8IFJlY29yZDxzdHJpbmcsIHN0cmluZz4+KFxuXHRpbnB1dDogKCkgPT4gVElucHV0LFxuKSA9PiB7XG5cdChpbmplY3ROZ3RMb2FkZXIgYXMgYW55KS5wcmVsb2FkKCgpID0+IFRIUkVFLlRleHR1cmVMb2FkZXIsIGlucHV0KTtcbn07XG4iXX0=
32
+ export const injectNgtsTextureLoader = _injectNgtsTextureLoader;
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dHVyZS1sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvbG9hZGVycy9zcmMvdGV4dHVyZS1sb2FkZXIvdGV4dHVyZS1sb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxxQkFBcUIsRUFBOEIsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQXlCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUUvQixTQUFTLHdCQUF3QixDQUNoQyxLQUFtQixFQUNuQixFQUNDLE1BQU0sRUFDTixRQUFRLE1BSUwsRUFBRTtJQUVOLFFBQVEsR0FBRyxjQUFjLENBQUMsd0JBQXdCLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDOUQsT0FBTyxxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFO1FBQzNDLE1BQU0sS0FBSyxHQUFHLGNBQWMsRUFBRSxDQUFDO1FBQy9CLE1BQU0sTUFBTSxHQUFHLGVBQWUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLEtBQUssRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFFL0UsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLE1BQU0sUUFBUSxHQUFHLE1BQU0sRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxRQUFRO2dCQUFFLE9BQU87WUFDdEIsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQixJQUFJLGFBQWEsSUFBSSxFQUFFLEVBQUU7Z0JBQ3hCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO29CQUNwQyxDQUFDLENBQUMsUUFBUTtvQkFDVixDQUFDLENBQUMsUUFBUSxZQUFZLEtBQUssQ0FBQyxPQUFPO3dCQUNuQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7d0JBQ1osQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzNCLElBQUksTUFBTTtvQkFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzFCLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUMzQztRQUNGLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLENBQUM7SUFDZixDQUFDLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCx3QkFBd0IsQ0FBQyxPQUFPLEdBQUcsQ0FBNEQsS0FBbUIsRUFBRSxFQUFFO0lBQ3JILGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUMzRCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVmZmVjdCwgcnVuSW5JbmplY3Rpb25Db250ZXh0LCB0eXBlIEluamVjdG9yLCB0eXBlIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0Tmd0TG9hZGVyLCBpbmplY3ROZ3RTdG9yZSwgdHlwZSBOZ3RMb2FkZXJSZXN1bHRzIH0gZnJvbSAnYW5ndWxhci10aHJlZSc7XG5pbXBvcnQgeyBhc3NlcnRJbmplY3RvciB9IGZyb20gJ25neHRlbnNpb24vYXNzZXJ0LWluamVjdG9yJztcbmltcG9ydCAqIGFzIFRIUkVFIGZyb20gJ3RocmVlJztcblxuZnVuY3Rpb24gX2luamVjdE5ndHNUZXh0dXJlTG9hZGVyPFRJbnB1dCBleHRlbmRzIHN0cmluZ1tdIHwgc3RyaW5nIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4oXG5cdGlucHV0OiAoKSA9PiBUSW5wdXQsXG5cdHtcblx0XHRvbkxvYWQsXG5cdFx0aW5qZWN0b3IsXG5cdH06IHtcblx0XHRvbkxvYWQ/OiAodGV4dHVyZTogVEhSRUUuVGV4dHVyZSB8IFRIUkVFLlRleHR1cmVbXSkgPT4gdm9pZDtcblx0XHRpbmplY3Rvcj86IEluamVjdG9yO1xuXHR9ID0ge30sXG4pOiBTaWduYWw8Tmd0TG9hZGVyUmVzdWx0czxUSW5wdXQsIFRIUkVFLlRleHR1cmU+IHwgbnVsbD4ge1xuXHRpbmplY3RvciA9IGFzc2VydEluamVjdG9yKF9pbmplY3ROZ3RzVGV4dHVyZUxvYWRlciwgaW5qZWN0b3IpO1xuXHRyZXR1cm4gcnVuSW5JbmplY3Rpb25Db250ZXh0KGluamVjdG9yLCAoKSA9PiB7XG5cdFx0Y29uc3Qgc3RvcmUgPSBpbmplY3ROZ3RTdG9yZSgpO1xuXHRcdGNvbnN0IHJlc3VsdCA9IGluamVjdE5ndExvYWRlcigoKSA9PiBUSFJFRS5UZXh0dXJlTG9hZGVyLCBpbnB1dCwgeyBpbmplY3RvciB9KTtcblxuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRjb25zdCB0ZXh0dXJlcyA9IHJlc3VsdCgpO1xuXHRcdFx0aWYgKCF0ZXh0dXJlcykgcmV0dXJuO1xuXHRcdFx0Y29uc3QgZ2wgPSBzdG9yZS5nZXQoJ2dsJyk7XG5cdFx0XHRpZiAoJ2luaXRUZXh0dXJlJyBpbiBnbCkge1xuXHRcdFx0XHRjb25zdCBhcnJheSA9IEFycmF5LmlzQXJyYXkodGV4dHVyZXMpXG5cdFx0XHRcdFx0PyB0ZXh0dXJlc1xuXHRcdFx0XHRcdDogdGV4dHVyZXMgaW5zdGFuY2VvZiBUSFJFRS5UZXh0dXJlXG5cdFx0XHRcdFx0PyBbdGV4dHVyZXNdXG5cdFx0XHRcdFx0OiBPYmplY3QudmFsdWVzKHRleHR1cmVzKTtcblx0XHRcdFx0aWYgKG9uTG9hZCkgb25Mb2FkKGFycmF5KTtcblx0XHRcdFx0YXJyYXkuZm9yRWFjaChzdG9yZS5nZXQoJ2dsJykuaW5pdFRleHR1cmUpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0cmV0dXJuIHJlc3VsdDtcblx0fSk7XG59XG5cbl9pbmplY3ROZ3RzVGV4dHVyZUxvYWRlci5wcmVsb2FkID0gPFRJbnB1dCBleHRlbmRzIHN0cmluZ1tdIHwgc3RyaW5nIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4oaW5wdXQ6ICgpID0+IFRJbnB1dCkgPT4ge1xuXHRpbmplY3ROZ3RMb2FkZXIucHJlbG9hZCgoKSA9PiBUSFJFRS5UZXh0dXJlTG9hZGVyLCBpbnB1dCk7XG59O1xuXG5leHBvcnQgY29uc3QgaW5qZWN0Tmd0c1RleHR1cmVMb2FkZXIgPSBfaW5qZWN0Tmd0c1RleHR1cmVMb2FkZXI7XG4iXX0=
@@ -155,4 +155,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
155
155
  type: Input,
156
156
  args: [{ alias: 'depthTest' }]
157
157
  }] } });
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvY2xvdWQvY2xvdWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUE0QyxNQUFNLGVBQWUsQ0FBQztBQUM1RyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsb0JBQW9CLEVBQUUsYUFBYSxFQUFFLE1BQU0sT0FBTyxDQUFDOztBQUV6RSxNQUFNLFNBQVMsR0FBRyxrR0FBa0csQ0FBQztBQUNwSCx1QkFBK0IsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFMUQsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO0FBcUQ3RCxNQUFNLE9BQU8sU0FBUztJQS9CdEI7UUFnQ1MsV0FBTSxHQUFHLFdBQVcsQ0FBaUI7WUFDNUMsT0FBTyxFQUFFLEdBQUc7WUFDWixLQUFLLEVBQUUsR0FBRztZQUNWLEtBQUssRUFBRSxFQUFFO1lBQ1QsS0FBSyxFQUFFLEdBQUc7WUFDVixRQUFRLEVBQUUsRUFBRTtZQUNaLE9BQU8sRUFBRSxTQUFTO1lBQ2xCLEtBQUssRUFBRSxTQUFTO1lBQ2hCLFNBQVMsRUFBRSxJQUFJO1NBQ2YsQ0FBQyxDQUFDO1FBRU0sYUFBUSxHQUFHLFlBQVksRUFBUyxDQUFDO1FBa0NsQyxVQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEMsVUFBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTVDLGFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMxQyxVQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEMsY0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzVDLFlBQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN4QyxVQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEMsWUFBTyxHQUFHLHVCQUF1QixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFFakUsV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDdEIsQ0FBQyxHQUFHLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNsRCxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNsRCxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNsRCxLQUFLLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FB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UUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXdCVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQztvQkFDckMsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ2pDOzhCQWFTLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRTJCLFFBQVE7c0JBQXhDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO2dCQUlJLE1BQU07c0JBQXBDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO2dCQUlNLE1BQU07c0JBQXBDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO2dCQUlNLE1BQU07c0JBQXBDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO2dCQUlTLFNBQVM7c0JBQTFDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFO2dCQUlLLFFBQVE7c0JBQXhDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO2dCQUlJLE1BQU07c0JBQXBDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO2dCQUlVLFVBQVU7c0JBQTVDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdGb3IsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ29tcG9uZW50LCBJbnB1dCwgY29tcHV0ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGV4dGVuZCwgaW5qZWN0Tmd0UmVmLCBzaWduYWxTdG9yZSwgdHlwZSBOZ3RCZWZvcmVSZW5kZXJFdmVudCwgdHlwZSBOZ3RHcm91cCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgTmd0c0JpbGxib2FyZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUtc29iYS9hYnN0cmFjdGlvbnMnO1xuaW1wb3J0IHsgaW5qZWN0Tmd0c1RleHR1cmVMb2FkZXIgfSBmcm9tICdhbmd1bGFyLXRocmVlLXNvYmEvbG9hZGVycyc7XG5pbXBvcnQgeyBHcm91cCwgTWVzaCwgTWVzaFN0YW5kYXJkTWF0ZXJpYWwsIFBsYW5lR2VvbWV0cnkgfSBmcm9tICd0aHJlZSc7XG5cbmNvbnN0IENMT1VEX1VSTCA9ICdodHRwczovL3Jhd2Nkbi5naXRoYWNrLmNvbS9wbW5kcnMvZHJlaS1hc3NldHMvOTIyNWE5ZjFmYmQ0NDlkOTQxMTEyNWMyZjQxOWI4NDNkMDMwOGM5Zi9jbG91ZC5wbmcnO1xuKGluamVjdE5ndHNUZXh0dXJlTG9hZGVyIGFzIGFueSkucHJlbG9hZCgoKSA9PiBDTE9VRF9VUkwpO1xuXG5leHRlbmQoeyBHcm91cCwgTWVzaCwgUGxhbmVHZW9tZXRyeSwgTWVzaFN0YW5kYXJkTWF0ZXJpYWwgfSk7XG5cbmV4cG9ydCB0eXBlIE5ndHNDbG91ZFN0YXRlID0ge1xuXHRvcGFjaXR5OiBudW1iZXI7XG5cdHNwZWVkOiBudW1iZXI7XG5cdHdpZHRoOiBudW1iZXI7XG5cdGRlcHRoOiBudW1iZXI7XG5cdHNlZ21lbnRzOiBudW1iZXI7XG5cdHRleHR1cmU6IHN0cmluZztcblx0Y29sb3I6IFRIUkVFLkNvbG9yUmVwcmVzZW50YXRpb247XG5cdGRlcHRoVGVzdDogYm9vbGVhbjtcbn07XG5cbmRlY2xhcmUgZ2xvYmFsIHtcblx0aW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG5cdFx0LyoqXG5cdFx0ICogQGV4dGVuZHMgbmd0LWdyb3VwXG5cdFx0ICovXG5cdFx0J25ndHMtY2xvdWQnOiBOZ3RzQ2xvdWRTdGF0ZSAmIE5ndEdyb3VwO1xuXHR9XG59XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHMtY2xvdWQnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtZ3JvdXAgbmd0Q29tcG91bmQ+XG5cdFx0XHQ8bmd0LWdyb3VwXG5cdFx0XHRcdFtwb3NpdGlvbl09XCJbMCwgMCwgKHNlZ21lbnRzKCkgLyAyKSAqIGRlcHRoKCldXCJcblx0XHRcdFx0W3JlZl09XCJncm91cFJlZlwiXG5cdFx0XHRcdChiZWZvcmVSZW5kZXIpPVwib25CZWZvcmVSZW5kZXIoJGV2ZW50KVwiXG5cdFx0XHQ+XG5cdFx0XHRcdDxuZ3RzLWJpbGxib2FyZFxuXHRcdFx0XHRcdCpuZ0Zvcj1cImxldCBjbG91ZCBvZiBjbG91ZHMoKTsgbGV0IGkgPSBpbmRleFwiXG5cdFx0XHRcdFx0W3Bvc2l0aW9uXT1cIltjbG91ZC54LCBjbG91ZC55LCAtaSAqIGRlcHRoKCldXCJcblx0XHRcdFx0PlxuXHRcdFx0XHRcdDxuZ3QtbWVzaCBbc2NhbGVdPVwiY2xvdWQuc2NhbGVcIiBbcm90YXRpb25dPVwiWzAsIDAsIDBdXCI+XG5cdFx0XHRcdFx0XHQ8bmd0LXBsYW5lLWdlb21ldHJ5IC8+XG5cdFx0XHRcdFx0XHQ8bmd0LW1lc2gtc3RhbmRhcmQtbWF0ZXJpYWxcblx0XHRcdFx0XHRcdFx0W21hcF09XCJ0ZXh0dXJlKClcIlxuXHRcdFx0XHRcdFx0XHRbdHJhbnNwYXJlbnRdPVwidHJ1ZVwiXG5cdFx0XHRcdFx0XHRcdFtvcGFjaXR5XT1cIihjbG91ZC5zY2FsZSAvIDYpICogY2xvdWQuZGVuc2l0eSAqIG9wYWNpdHkoKVwiXG5cdFx0XHRcdFx0XHRcdFtkZXB0aFRlc3RdPVwiZGVwdGhUZXN0KClcIlxuXHRcdFx0XHRcdFx0XHRbY29sb3JdPVwiY29sb3IoKVwiXG5cdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdDwvbmd0LW1lc2g+XG5cdFx0XHRcdDwvbmd0cy1iaWxsYm9hcmQ+XG5cdFx0XHQ8L25ndC1ncm91cD5cblx0XHQ8L25ndC1ncm91cD5cblx0YCxcblx0aW1wb3J0czogW05nRm9yLCBOZ3RzQmlsbGJvYXJkLCBOZ0lmXSxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzQ2xvdWQge1xuXHRwcml2YXRlIGlucHV0cyA9IHNpZ25hbFN0b3JlPE5ndHNDbG91ZFN0YXRlPih7XG5cdFx0b3BhY2l0eTogMC41LFxuXHRcdHNwZWVkOiAwLjQsXG5cdFx0d2lkdGg6IDEwLFxuXHRcdGRlcHRoOiAxLjUsXG5cdFx0c2VnbWVudHM6IDIwLFxuXHRcdHRleHR1cmU6IENMT1VEX1VSTCxcblx0XHRjb2xvcjogJyNmZmZmZmYnLFxuXHRcdGRlcHRoVGVzdDogdHJ1ZSxcblx0fSk7XG5cblx0QElucHV0KCkgZ3JvdXBSZWYgPSBpbmplY3ROZ3RSZWY8R3JvdXA+KCk7XG5cblx0QElucHV0KHsgYWxpYXM6ICdvcGFjaXR5JyB9KSBzZXQgX29wYWNpdHkob3BhY2l0eTogbnVtYmVyKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgb3BhY2l0eSB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnc3BlZWQnIH0pIHNldCBfc3BlZWQoc3BlZWQ6IG51bWJlcikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IHNwZWVkIH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICd3aWR0aCcgfSkgc2V0IF93aWR0aCh3aWR0aDogbnVtYmVyKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgd2lkdGggfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ2RlcHRoJyB9KSBzZXQgX2RlcHRoKGRlcHRoOiBudW1iZXIpIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBkZXB0aCB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnc2VnbWVudHMnIH0pIHNldCBfc2VnbWVudHMoc2VnbWVudHM6IG51bWJlcikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IHNlZ21lbnRzIH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICd0ZXh0dXJlJyB9KSBzZXQgX3RleHR1cmUodGV4dHVyZTogc3RyaW5nKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgdGV4dHVyZSB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnY29sb3InIH0pIHNldCBfY29sb3IoY29sb3I6IFRIUkVFLkNvbG9yUmVwcmVzZW50YXRpb24pIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBjb2xvciB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnZGVwdGhUZXN0JyB9KSBzZXQgX2RlcHRoVGVzdChkZXB0aFRlc3Q6IGJvb2xlYW4pIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBkZXB0aFRlc3QgfSk7XG5cdH1cblxuXHRwcml2YXRlIHdpZHRoID0gdGhpcy5pbnB1dHMuc2VsZWN0KCd3aWR0aCcpO1xuXHRwcml2YXRlIHNwZWVkID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdzcGVlZCcpO1xuXG5cdHNlZ21lbnRzID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdzZWdtZW50cycpO1xuXHRkZXB0aCA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnZGVwdGgnKTtcblx0ZGVwdGhUZXN0ID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdkZXB0aFRlc3QnKTtcblx0b3BhY2l0eSA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnb3BhY2l0eScpO1xuXHRjb2xvciA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnY29sb3InKTtcblx0dGV4dHVyZSA9IGluamVjdE5ndHNUZXh0dXJlTG9hZGVyKHRoaXMuaW5wdXRzLnNlbGVjdCgndGV4dHVyZScpKTtcblxuXHRjbG91ZHMgPSBjb21wdXRlZCgoKSA9PlxuXHRcdFsuLi5uZXcgQXJyYXkodGhpcy5zZWdtZW50cygpKV0ubWFwKChfLCBpbmRleCkgPT4gKHtcblx0XHRcdHg6IHRoaXMud2lkdGgoKSAvIDIgLSBNYXRoLnJhbmRvbSgpICogdGhpcy53aWR0aCgpLFxuXHRcdFx0eTogdGhpcy53aWR0aCgpIC8gMiAtIE1hdGgucmFuZG9tKCkgKiB0aGlzLndpZHRoKCksXG5cdFx0XHRzY2FsZTogMC40ICsgTWF0aC5zaW4oKChpbmRleCArIDEpIC8gdGhpcy5zZWdtZW50cygpKSAqIE1hdGguUEkpICogKCgwLjIgKyBNYXRoLnJhbmRvbSgpKSAqIDEwKSxcblx0XHRcdGRlbnNpdHk6IE1hdGgubWF4KDAuMiwgTWF0aC5yYW5kb20oKSksXG5cdFx0XHRyb3RhdGlvbjogTWF0aC5tYXgoMC4wMDIsIDAuMDA1ICogTWF0aC5yYW5kb20oKSkgKiB0aGlzLnNwZWVkKCksXG5cdFx0fSkpLFxuXHQpO1xuXHRvbkJlZm9yZVJlbmRlcih7IHN0YXRlLCBvYmplY3QgfTogTmd0QmVmb3JlUmVuZGVyRXZlbnQ8R3JvdXA+KSB7XG5cdFx0Y29uc3QgY2xvdWRzID0gdGhpcy5jbG91ZHMoKTtcblx0XHRvYmplY3QuY2hpbGRyZW4uZm9yRWFjaCgoY2xvdWQsIGluZGV4KSA9PiB7XG5cdFx0XHRjbG91ZC5jaGlsZHJlblswXS5yb3RhdGlvbi56ICs9IGNsb3Vkc1tpbmRleF0ucm90YXRpb247XG5cdFx0XHRjbG91ZC5jaGlsZHJlblswXS5zY2FsZS5zZXRTY2FsYXIoXG5cdFx0XHRcdGNsb3Vkc1tpbmRleF0uc2NhbGUgKyAoKCgxICsgTWF0aC5zaW4oc3RhdGUuY2xvY2suZ2V0RWxhcHNlZFRpbWUoKSAvIDEwKSkgLyAyKSAqIGluZGV4KSAvIDEwLFxuXHRcdFx0KTtcblx0XHR9KTtcblx0fVxufVxuIl19
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NvYmEvc3RhZ2luZy9zcmMvY2xvdWQvY2xvdWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUE0QyxNQUFNLGVBQWUsQ0FBQztBQUM1RyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsb0JBQW9CLEVBQUUsYUFBYSxFQUFFLE1BQU0sT0FBTyxDQUFDOztBQUV6RSxNQUFNLFNBQVMsR0FBRyxrR0FBa0csQ0FBQztBQUNySCx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFakQsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO0FBcUQ3RCxNQUFNLE9BQU8sU0FBUztJQS9CdEI7UUFnQ1MsV0FBTSxHQUFHLFdBQVcsQ0FBaUI7WUFDNUMsT0FBTyxFQUFFLEdBQUc7WUFDWixLQUFLLEVBQUUsR0FBRztZQUNWLEtBQUssRUFBRSxFQUFFO1lBQ1QsS0FBSyxFQUFFLEdBQUc7WUFDVixRQUFRLEVBQUUsRUFBRTtZQUNaLE9BQU8sRUFBRSxTQUFTO1lBQ2xCLEtBQUssRUFBRSxTQUFTO1lBQ2hCLFNBQVMsRUFBRSxJQUFJO1NBQ2YsQ0FBQyxDQUFDO1FBRU0sYUFBUSxHQUFHLFlBQVksRUFBUyxDQUFDO1FBa0NsQyxVQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEMsVUFBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTVDLGFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMxQyxVQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEMsY0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzVDLFlBQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN4QyxVQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEMsWUFBTyxHQUFHLHVCQUF1QixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFFakUsV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDdEIsQ0FBQyxHQUFHLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNsRCxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNsRCxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNsRCxLQUFLLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FB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UUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQXdCVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQztvQkFDckMsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7aUJBQ2pDOzhCQWFTLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRTJCLFFBQVE7c0JBQXhDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO2dCQUlJLE1BQU07c0JBQXBDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO2dCQUlNLE1BQU07c0JBQXBDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO2dCQUlNLE1BQU07c0JBQXBDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO2dCQUlTLFNBQVM7c0JBQTFDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFO2dCQUlLLFFBQVE7c0JBQXhDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO2dCQUlJLE1BQU07c0JBQXBDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO2dCQUlVLFVBQVU7c0JBQTVDLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdGb3IsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgQ29tcG9uZW50LCBJbnB1dCwgY29tcHV0ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGV4dGVuZCwgaW5qZWN0Tmd0UmVmLCBzaWduYWxTdG9yZSwgdHlwZSBOZ3RCZWZvcmVSZW5kZXJFdmVudCwgdHlwZSBOZ3RHcm91cCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUnO1xuaW1wb3J0IHsgTmd0c0JpbGxib2FyZCB9IGZyb20gJ2FuZ3VsYXItdGhyZWUtc29iYS9hYnN0cmFjdGlvbnMnO1xuaW1wb3J0IHsgaW5qZWN0Tmd0c1RleHR1cmVMb2FkZXIgfSBmcm9tICdhbmd1bGFyLXRocmVlLXNvYmEvbG9hZGVycyc7XG5pbXBvcnQgeyBHcm91cCwgTWVzaCwgTWVzaFN0YW5kYXJkTWF0ZXJpYWwsIFBsYW5lR2VvbWV0cnkgfSBmcm9tICd0aHJlZSc7XG5cbmNvbnN0IENMT1VEX1VSTCA9ICdodHRwczovL3Jhd2Nkbi5naXRoYWNrLmNvbS9wbW5kcnMvZHJlaS1hc3NldHMvOTIyNWE5ZjFmYmQ0NDlkOTQxMTEyNWMyZjQxOWI4NDNkMDMwOGM5Zi9jbG91ZC5wbmcnO1xuaW5qZWN0Tmd0c1RleHR1cmVMb2FkZXIucHJlbG9hZCgoKSA9PiBDTE9VRF9VUkwpO1xuXG5leHRlbmQoeyBHcm91cCwgTWVzaCwgUGxhbmVHZW9tZXRyeSwgTWVzaFN0YW5kYXJkTWF0ZXJpYWwgfSk7XG5cbmV4cG9ydCB0eXBlIE5ndHNDbG91ZFN0YXRlID0ge1xuXHRvcGFjaXR5OiBudW1iZXI7XG5cdHNwZWVkOiBudW1iZXI7XG5cdHdpZHRoOiBudW1iZXI7XG5cdGRlcHRoOiBudW1iZXI7XG5cdHNlZ21lbnRzOiBudW1iZXI7XG5cdHRleHR1cmU6IHN0cmluZztcblx0Y29sb3I6IFRIUkVFLkNvbG9yUmVwcmVzZW50YXRpb247XG5cdGRlcHRoVGVzdDogYm9vbGVhbjtcbn07XG5cbmRlY2xhcmUgZ2xvYmFsIHtcblx0aW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG5cdFx0LyoqXG5cdFx0ICogQGV4dGVuZHMgbmd0LWdyb3VwXG5cdFx0ICovXG5cdFx0J25ndHMtY2xvdWQnOiBOZ3RzQ2xvdWRTdGF0ZSAmIE5ndEdyb3VwO1xuXHR9XG59XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ25ndHMtY2xvdWQnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHR0ZW1wbGF0ZTogYFxuXHRcdDxuZ3QtZ3JvdXAgbmd0Q29tcG91bmQ+XG5cdFx0XHQ8bmd0LWdyb3VwXG5cdFx0XHRcdFtwb3NpdGlvbl09XCJbMCwgMCwgKHNlZ21lbnRzKCkgLyAyKSAqIGRlcHRoKCldXCJcblx0XHRcdFx0W3JlZl09XCJncm91cFJlZlwiXG5cdFx0XHRcdChiZWZvcmVSZW5kZXIpPVwib25CZWZvcmVSZW5kZXIoJGV2ZW50KVwiXG5cdFx0XHQ+XG5cdFx0XHRcdDxuZ3RzLWJpbGxib2FyZFxuXHRcdFx0XHRcdCpuZ0Zvcj1cImxldCBjbG91ZCBvZiBjbG91ZHMoKTsgbGV0IGkgPSBpbmRleFwiXG5cdFx0XHRcdFx0W3Bvc2l0aW9uXT1cIltjbG91ZC54LCBjbG91ZC55LCAtaSAqIGRlcHRoKCldXCJcblx0XHRcdFx0PlxuXHRcdFx0XHRcdDxuZ3QtbWVzaCBbc2NhbGVdPVwiY2xvdWQuc2NhbGVcIiBbcm90YXRpb25dPVwiWzAsIDAsIDBdXCI+XG5cdFx0XHRcdFx0XHQ8bmd0LXBsYW5lLWdlb21ldHJ5IC8+XG5cdFx0XHRcdFx0XHQ8bmd0LW1lc2gtc3RhbmRhcmQtbWF0ZXJpYWxcblx0XHRcdFx0XHRcdFx0W21hcF09XCJ0ZXh0dXJlKClcIlxuXHRcdFx0XHRcdFx0XHRbdHJhbnNwYXJlbnRdPVwidHJ1ZVwiXG5cdFx0XHRcdFx0XHRcdFtvcGFjaXR5XT1cIihjbG91ZC5zY2FsZSAvIDYpICogY2xvdWQuZGVuc2l0eSAqIG9wYWNpdHkoKVwiXG5cdFx0XHRcdFx0XHRcdFtkZXB0aFRlc3RdPVwiZGVwdGhUZXN0KClcIlxuXHRcdFx0XHRcdFx0XHRbY29sb3JdPVwiY29sb3IoKVwiXG5cdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdDwvbmd0LW1lc2g+XG5cdFx0XHRcdDwvbmd0cy1iaWxsYm9hcmQ+XG5cdFx0XHQ8L25ndC1ncm91cD5cblx0XHQ8L25ndC1ncm91cD5cblx0YCxcblx0aW1wb3J0czogW05nRm9yLCBOZ3RzQmlsbGJvYXJkLCBOZ0lmXSxcblx0c2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxufSlcbmV4cG9ydCBjbGFzcyBOZ3RzQ2xvdWQge1xuXHRwcml2YXRlIGlucHV0cyA9IHNpZ25hbFN0b3JlPE5ndHNDbG91ZFN0YXRlPih7XG5cdFx0b3BhY2l0eTogMC41LFxuXHRcdHNwZWVkOiAwLjQsXG5cdFx0d2lkdGg6IDEwLFxuXHRcdGRlcHRoOiAxLjUsXG5cdFx0c2VnbWVudHM6IDIwLFxuXHRcdHRleHR1cmU6IENMT1VEX1VSTCxcblx0XHRjb2xvcjogJyNmZmZmZmYnLFxuXHRcdGRlcHRoVGVzdDogdHJ1ZSxcblx0fSk7XG5cblx0QElucHV0KCkgZ3JvdXBSZWYgPSBpbmplY3ROZ3RSZWY8R3JvdXA+KCk7XG5cblx0QElucHV0KHsgYWxpYXM6ICdvcGFjaXR5JyB9KSBzZXQgX29wYWNpdHkob3BhY2l0eTogbnVtYmVyKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgb3BhY2l0eSB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnc3BlZWQnIH0pIHNldCBfc3BlZWQoc3BlZWQ6IG51bWJlcikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IHNwZWVkIH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICd3aWR0aCcgfSkgc2V0IF93aWR0aCh3aWR0aDogbnVtYmVyKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgd2lkdGggfSk7XG5cdH1cblxuXHRASW5wdXQoeyBhbGlhczogJ2RlcHRoJyB9KSBzZXQgX2RlcHRoKGRlcHRoOiBudW1iZXIpIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBkZXB0aCB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnc2VnbWVudHMnIH0pIHNldCBfc2VnbWVudHMoc2VnbWVudHM6IG51bWJlcikge1xuXHRcdHRoaXMuaW5wdXRzLnNldCh7IHNlZ21lbnRzIH0pO1xuXHR9XG5cblx0QElucHV0KHsgYWxpYXM6ICd0ZXh0dXJlJyB9KSBzZXQgX3RleHR1cmUodGV4dHVyZTogc3RyaW5nKSB7XG5cdFx0dGhpcy5pbnB1dHMuc2V0KHsgdGV4dHVyZSB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnY29sb3InIH0pIHNldCBfY29sb3IoY29sb3I6IFRIUkVFLkNvbG9yUmVwcmVzZW50YXRpb24pIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBjb2xvciB9KTtcblx0fVxuXG5cdEBJbnB1dCh7IGFsaWFzOiAnZGVwdGhUZXN0JyB9KSBzZXQgX2RlcHRoVGVzdChkZXB0aFRlc3Q6IGJvb2xlYW4pIHtcblx0XHR0aGlzLmlucHV0cy5zZXQoeyBkZXB0aFRlc3QgfSk7XG5cdH1cblxuXHRwcml2YXRlIHdpZHRoID0gdGhpcy5pbnB1dHMuc2VsZWN0KCd3aWR0aCcpO1xuXHRwcml2YXRlIHNwZWVkID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdzcGVlZCcpO1xuXG5cdHNlZ21lbnRzID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdzZWdtZW50cycpO1xuXHRkZXB0aCA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnZGVwdGgnKTtcblx0ZGVwdGhUZXN0ID0gdGhpcy5pbnB1dHMuc2VsZWN0KCdkZXB0aFRlc3QnKTtcblx0b3BhY2l0eSA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnb3BhY2l0eScpO1xuXHRjb2xvciA9IHRoaXMuaW5wdXRzLnNlbGVjdCgnY29sb3InKTtcblx0dGV4dHVyZSA9IGluamVjdE5ndHNUZXh0dXJlTG9hZGVyKHRoaXMuaW5wdXRzLnNlbGVjdCgndGV4dHVyZScpKTtcblxuXHRjbG91ZHMgPSBjb21wdXRlZCgoKSA9PlxuXHRcdFsuLi5uZXcgQXJyYXkodGhpcy5zZWdtZW50cygpKV0ubWFwKChfLCBpbmRleCkgPT4gKHtcblx0XHRcdHg6IHRoaXMud2lkdGgoKSAvIDIgLSBNYXRoLnJhbmRvbSgpICogdGhpcy53aWR0aCgpLFxuXHRcdFx0eTogdGhpcy53aWR0aCgpIC8gMiAtIE1hdGgucmFuZG9tKCkgKiB0aGlzLndpZHRoKCksXG5cdFx0XHRzY2FsZTogMC40ICsgTWF0aC5zaW4oKChpbmRleCArIDEpIC8gdGhpcy5zZWdtZW50cygpKSAqIE1hdGguUEkpICogKCgwLjIgKyBNYXRoLnJhbmRvbSgpKSAqIDEwKSxcblx0XHRcdGRlbnNpdHk6IE1hdGgubWF4KDAuMiwgTWF0aC5yYW5kb20oKSksXG5cdFx0XHRyb3RhdGlvbjogTWF0aC5tYXgoMC4wMDIsIDAuMDA1ICogTWF0aC5yYW5kb20oKSkgKiB0aGlzLnNwZWVkKCksXG5cdFx0fSkpLFxuXHQpO1xuXHRvbkJlZm9yZVJlbmRlcih7IHN0YXRlLCBvYmplY3QgfTogTmd0QmVmb3JlUmVuZGVyRXZlbnQ8R3JvdXA+KSB7XG5cdFx0Y29uc3QgY2xvdWRzID0gdGhpcy5jbG91ZHMoKTtcblx0XHRvYmplY3QuY2hpbGRyZW4uZm9yRWFjaCgoY2xvdWQsIGluZGV4KSA9PiB7XG5cdFx0XHRjbG91ZC5jaGlsZHJlblswXS5yb3RhdGlvbi56ICs9IGNsb3Vkc1tpbmRleF0ucm90YXRpb247XG5cdFx0XHRjbG91ZC5jaGlsZHJlblswXS5zY2FsZS5zZXRTY2FsYXIoXG5cdFx0XHRcdGNsb3Vkc1tpbmRleF0uc2NhbGUgKyAoKCgxICsgTWF0aC5zaW4oc3RhdGUuY2xvY2suZ2V0RWxhcHNlZFRpbWUoKSAvIDEwKSkgLyAyKSAqIGluZGV4KSAvIDEwLFxuXHRcdFx0KTtcblx0XHR9KTtcblx0fVxufVxuIl19
@@ -1,9 +1,9 @@
1
1
  import { injectNgtLoader, safeDetectChanges, signalStore, injectNgtStore } from 'angular-three';
2
+ import { assertInjector } from 'ngxtension/assert-injector';
2
3
  import { DRACOLoader, MeshoptDecoder, GLTFLoader } from 'three-stdlib';
3
4
  import { NgIf } from '@angular/common';
4
5
  import * as i0 from '@angular/core';
5
6
  import { runInInjectionContext, inject, ChangeDetectorRef, signal, untracked, computed, effect, Component, ChangeDetectionStrategy, Input, ViewChild } from '@angular/core';
6
- import { assertInjector } from 'ngxtension/assert-injector';
7
7
  import * as THREE from 'three';
8
8
 
9
9
  let dracoLoader = null;
@@ -25,19 +25,21 @@ function _extensions(useDraco, useMeshOpt, extensions) {
25
25
  }
26
26
  };
27
27
  }
28
- function injectNgtsGLTFLoader(path, { useDraco = true, useMeshOpt = true, injector, extensions, } = {}) {
28
+ function _injectNgtsGLTFLoader(path, { useDraco = true, useMeshOpt = true, injector, extensions, } = {}) {
29
+ injector = assertInjector(_injectNgtsGLTFLoader, injector);
29
30
  return injectNgtLoader(() => GLTFLoader, path, {
30
31
  // TODO: fix "as any" when three-stdlib is updated with THREE 0.156
31
32
  extensions: _extensions(useDraco, useMeshOpt, extensions),
32
33
  injector,
33
34
  });
34
35
  }
35
- injectNgtsGLTFLoader['preload'] = (path, { useDraco = true, useMeshOpt = true, extensions, } = {}) => {
36
- injectNgtLoader['preload'](() => GLTFLoader, path, _extensions(useDraco, useMeshOpt, extensions));
36
+ _injectNgtsGLTFLoader.preload = (path, { useDraco = true, useMeshOpt = true, extensions, } = {}) => {
37
+ injectNgtLoader.preload(() => GLTFLoader, path, _extensions(useDraco, useMeshOpt, extensions));
37
38
  };
38
- injectNgtsGLTFLoader['setDecoderPath'] = (path) => {
39
+ _injectNgtsGLTFLoader.setDecoderPath = (path) => {
39
40
  decoderPath = path;
40
41
  };
42
+ const injectNgtsGLTFLoader = _injectNgtsGLTFLoader;
41
43
 
42
44
  function injectNgtsProgress(injector) {
43
45
  injector = assertInjector(injectNgtsProgress, injector);
@@ -221,8 +223,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImpor
221
223
  args: ['progressSpanRef']
222
224
  }] } });
223
225
 
224
- function injectNgtsTextureLoader(input, { onLoad, injector, } = {}) {
225
- injector = assertInjector(injectNgtsTextureLoader, injector);
226
+ function _injectNgtsTextureLoader(input, { onLoad, injector, } = {}) {
227
+ injector = assertInjector(_injectNgtsTextureLoader, injector);
226
228
  return runInInjectionContext(injector, () => {
227
229
  const store = injectNgtStore();
228
230
  const result = injectNgtLoader(() => THREE.TextureLoader, input, { injector });
@@ -245,9 +247,10 @@ function injectNgtsTextureLoader(input, { onLoad, injector, } = {}) {
245
247
  return result;
246
248
  });
247
249
  }
248
- injectNgtsTextureLoader['preload'] = (input) => {
250
+ _injectNgtsTextureLoader.preload = (input) => {
249
251
  injectNgtLoader.preload(() => THREE.TextureLoader, input);
250
252
  };
253
+ const injectNgtsTextureLoader = _injectNgtsTextureLoader;
251
254
 
252
255
  /**
253
256
  * Generated bundle index. Do not edit.
@@ -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 { 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\nexport function 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 injectNgtLoader(() => GLTFLoader, path, {\n\t\t// TODO: fix \"as any\" when three-stdlib is updated with THREE 0.156\n\t\textensions: _extensions(useDraco, useMeshOpt, extensions) as any,\n\t\tinjector,\n\t});\n}\n\ninjectNgtsGLTFLoader['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\t(injectNgtLoader as any)['preload'](() => GLTFLoader, path, _extensions(useDraco, useMeshOpt, extensions));\n};\ninjectNgtsGLTFLoader['setDecoderPath'] = (path: string) => {\n\tdecoderPath = path;\n};\n","import { ChangeDetectorRef, inject, runInInjectionContext, signal, untracked, type Injector } from '@angular/core';\nimport { safeDetectChanges } from 'angular-three';\nimport { assertInjector } from 'ngxtension/assert-injector';\nimport * as THREE from 'three';\n\nexport function injectNgtsProgress(injector?: Injector) {\n\tinjector = assertInjector(injectNgtsProgress, injector);\n\treturn runInInjectionContext(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\tsafeDetectChanges(cdr);\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\tsafeDetectChanges(cdr);\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\tsafeDetectChanges(cdr);\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\tsafeDetectChanges(cdr);\n\t\t};\n\n\t\treturn progress.asReadonly();\n\t});\n}\n","import { NgIf } from '@angular/common';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\tInput,\n\tViewChild,\n\tcomputed,\n\teffect,\n\tsignal,\n\tuntracked,\n} from '@angular/core';\nimport { signalStore } from 'angular-three';\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\n@Component({\n\tselector: 'ngts-loader',\n\tstandalone: true,\n\ttemplate: `\n\t\t<div\n\t\t\t*ngIf=\"shown()\"\n\t\t\tclass=\"ngts-loader-container\"\n\t\t\t[class]=\"container() || ''\"\n\t\t\t[style.--ngts-loader-container-opacity]=\"active() ? 1 : 0\"\n\t\t>\n\t\t\t<div>\n\t\t\t\t<div class=\"ngts-loader-inner\" [class]=\"inner() || ''\">\n\t\t\t\t\t<div\n\t\t\t\t\t\tclass=\"ngts-loader-bar\"\n\t\t\t\t\t\t[class]=\"bar() || ''\"\n\t\t\t\t\t\t[style.--ngts-loader-bar-scale]=\"progress() / 100\"\n\t\t\t\t\t></div>\n\t\t\t\t\t<span #progressSpanRef class=\"ngts-loader-data\" [class]=\"data() || ''\"></span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t`,\n\tstyleUrls: ['./loader.css'],\n\timports: [NgIf],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtsLoader {\n\tprivate inputs = signalStore<NgtsLoaderState>({\n\t\tdataInterpolation: defaultDataInterpolation,\n\t\tinitialState: (active) => active,\n\t});\n\n\tprivate progressState = injectNgtsProgress();\n\n\tactive = computed(() => this.progressState().active);\n\tprogress = computed(() => this.progressState().progress);\n\n\tcontainer = this.inputs.select('containerClass');\n\tinner = this.inputs.select('innerClass');\n\tbar = this.inputs.select('barClass');\n\tdata = this.inputs.select('dataClass');\n\n\t@Input({ alias: 'containerClass' }) set _containerClass(containerClass: string) {\n\t\tthis.inputs.set({ containerClass });\n\t}\n\n\t@Input({ alias: 'innerClass' }) set _innerClass(innerClass: string) {\n\t\tthis.inputs.set({ innerClass });\n\t}\n\n\t@Input({ alias: 'barClass' }) set _barClass(barClass: string) {\n\t\tthis.inputs.set({ barClass });\n\t}\n\n\t@Input({ alias: 'dataClass' }) set _dataClass(dataClass: string) {\n\t\tthis.inputs.set({ dataClass });\n\t}\n\n\t@Input({ alias: 'dataInterpolation' }) set _dataInterpolation(dataInterpolation: (value: number) => string) {\n\t\tthis.inputs.set({ dataInterpolation });\n\t}\n\n\t@Input({ alias: 'initialState' }) set _initialState(initialState: (value: boolean) => boolean) {\n\t\tthis.inputs.set({ initialState });\n\t}\n\n\t@ViewChild('progressSpanRef') progressSpanRef?: ElementRef<HTMLSpanElement>;\n\n\tshown = signal(this.inputs.get('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\tconst _dataInterpolation = this.inputs.select('dataInterpolation');\n\n\t\teffect((onCleanup) => {\n\t\t\tconst [dataInterpolation, progress] = [_dataInterpolation(), this.progress()];\n\t\t\tconst updateProgress = () => {\n\t\t\t\tif (!this.progressSpanRef?.nativeElement) 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\tthis.progressSpanRef.nativeElement.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, runInInjectionContext, type 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\nexport function injectNgtsTextureLoader<TInput extends string[] | string | Record<string, string>>(\n\tinput: () => TInput,\n\t{\n\t\tonLoad,\n\t\tinjector,\n\t}: {\n\t\tonLoad?: (texture: THREE.Texture | THREE.Texture[]) => void;\n\t\tinjector?: Injector;\n\t} = {},\n): Signal<NgtLoaderResults<TInput, THREE.Texture> | null> {\n\tinjector = assertInjector(injectNgtsTextureLoader, injector);\n\treturn runInInjectionContext(injector, () => {\n\t\tconst store = injectNgtStore();\n\t\tconst result = injectNgtLoader(() => THREE.TextureLoader, input, { injector });\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? [textures]\n\t\t\t\t\t: Object.values(textures);\n\t\t\t\tif (onLoad) onLoad(array);\n\t\t\t\tarray.forEach(store.get('gl').initTexture);\n\t\t\t}\n\t\t});\n\n\t\treturn result;\n\t});\n}\n\ninjectNgtsTextureLoader['preload'] = <TInput extends string[] | string | Record<string, string>>(\n\tinput: () => TInput,\n) => {\n\t(injectNgtLoader as any).preload(() => THREE.TextureLoader, input);\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/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 { 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\tinjector = assertInjector(_injectNgtsGLTFLoader, injector);\n\treturn injectNgtLoader(() => GLTFLoader, path, {\n\t\t// TODO: fix \"as any\" when three-stdlib is updated with THREE 0.156\n\t\textensions: _extensions(useDraco, useMeshOpt, extensions) as any,\n\t\tinjector,\n\t});\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 const injectNgtsGLTFLoader = _injectNgtsGLTFLoader;\n","import { ChangeDetectorRef, inject, runInInjectionContext, signal, untracked, type Injector } from '@angular/core';\nimport { safeDetectChanges } from 'angular-three';\nimport { assertInjector } from 'ngxtension/assert-injector';\nimport * as THREE from 'three';\n\nexport function injectNgtsProgress(injector?: Injector) {\n\tinjector = assertInjector(injectNgtsProgress, injector);\n\treturn runInInjectionContext(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\tsafeDetectChanges(cdr);\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\tsafeDetectChanges(cdr);\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\tsafeDetectChanges(cdr);\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\tsafeDetectChanges(cdr);\n\t\t};\n\n\t\treturn progress.asReadonly();\n\t});\n}\n","import { NgIf } from '@angular/common';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\tInput,\n\tViewChild,\n\tcomputed,\n\teffect,\n\tsignal,\n\tuntracked,\n} from '@angular/core';\nimport { signalStore } from 'angular-three';\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\n@Component({\n\tselector: 'ngts-loader',\n\tstandalone: true,\n\ttemplate: `\n\t\t<div\n\t\t\t*ngIf=\"shown()\"\n\t\t\tclass=\"ngts-loader-container\"\n\t\t\t[class]=\"container() || ''\"\n\t\t\t[style.--ngts-loader-container-opacity]=\"active() ? 1 : 0\"\n\t\t>\n\t\t\t<div>\n\t\t\t\t<div class=\"ngts-loader-inner\" [class]=\"inner() || ''\">\n\t\t\t\t\t<div\n\t\t\t\t\t\tclass=\"ngts-loader-bar\"\n\t\t\t\t\t\t[class]=\"bar() || ''\"\n\t\t\t\t\t\t[style.--ngts-loader-bar-scale]=\"progress() / 100\"\n\t\t\t\t\t></div>\n\t\t\t\t\t<span #progressSpanRef class=\"ngts-loader-data\" [class]=\"data() || ''\"></span>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t`,\n\tstyleUrls: ['./loader.css'],\n\timports: [NgIf],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NgtsLoader {\n\tprivate inputs = signalStore<NgtsLoaderState>({\n\t\tdataInterpolation: defaultDataInterpolation,\n\t\tinitialState: (active) => active,\n\t});\n\n\tprivate progressState = injectNgtsProgress();\n\n\tactive = computed(() => this.progressState().active);\n\tprogress = computed(() => this.progressState().progress);\n\n\tcontainer = this.inputs.select('containerClass');\n\tinner = this.inputs.select('innerClass');\n\tbar = this.inputs.select('barClass');\n\tdata = this.inputs.select('dataClass');\n\n\t@Input({ alias: 'containerClass' }) set _containerClass(containerClass: string) {\n\t\tthis.inputs.set({ containerClass });\n\t}\n\n\t@Input({ alias: 'innerClass' }) set _innerClass(innerClass: string) {\n\t\tthis.inputs.set({ innerClass });\n\t}\n\n\t@Input({ alias: 'barClass' }) set _barClass(barClass: string) {\n\t\tthis.inputs.set({ barClass });\n\t}\n\n\t@Input({ alias: 'dataClass' }) set _dataClass(dataClass: string) {\n\t\tthis.inputs.set({ dataClass });\n\t}\n\n\t@Input({ alias: 'dataInterpolation' }) set _dataInterpolation(dataInterpolation: (value: number) => string) {\n\t\tthis.inputs.set({ dataInterpolation });\n\t}\n\n\t@Input({ alias: 'initialState' }) set _initialState(initialState: (value: boolean) => boolean) {\n\t\tthis.inputs.set({ initialState });\n\t}\n\n\t@ViewChild('progressSpanRef') progressSpanRef?: ElementRef<HTMLSpanElement>;\n\n\tshown = signal(this.inputs.get('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\tconst _dataInterpolation = this.inputs.select('dataInterpolation');\n\n\t\teffect((onCleanup) => {\n\t\t\tconst [dataInterpolation, progress] = [_dataInterpolation(), this.progress()];\n\t\t\tconst updateProgress = () => {\n\t\t\t\tif (!this.progressSpanRef?.nativeElement) 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\tthis.progressSpanRef.nativeElement.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, runInInjectionContext, type 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{\n\t\tonLoad,\n\t\tinjector,\n\t}: {\n\t\tonLoad?: (texture: THREE.Texture | THREE.Texture[]) => void;\n\t\tinjector?: Injector;\n\t} = {},\n): Signal<NgtLoaderResults<TInput, THREE.Texture> | null> {\n\tinjector = assertInjector(_injectNgtsTextureLoader, injector);\n\treturn runInInjectionContext(injector, () => {\n\t\tconst store = injectNgtStore();\n\t\tconst result = injectNgtLoader(() => THREE.TextureLoader, input, { injector });\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? [textures]\n\t\t\t\t\t: Object.values(textures);\n\t\t\t\tif (onLoad) onLoad(array);\n\t\t\t\tarray.forEach(store.get('gl').initTexture);\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 const injectNgtsTextureLoader = _injectNgtsTextureLoader;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}