angular-three 2.0.0-beta.31 → 2.0.0-beta.310
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +221 -4
- package/esm2022/index.mjs +13 -13
- package/esm2022/lib/canvas.mjs +128 -200
- package/esm2022/lib/directives/args.mjs +46 -20
- package/esm2022/lib/directives/selection.mjs +65 -0
- package/esm2022/lib/dom/events.mjs +2 -2
- package/esm2022/lib/events.mjs +33 -31
- package/esm2022/lib/html.mjs +40 -0
- package/esm2022/lib/instance.mjs +43 -36
- package/esm2022/lib/loader.mjs +62 -31
- package/esm2022/lib/loop.mjs +28 -25
- package/esm2022/lib/pipes/hexify.mjs +67 -0
- package/esm2022/lib/portal.mjs +173 -193
- package/esm2022/lib/renderer/catalogue.mjs +2 -2
- package/esm2022/lib/renderer/constants.mjs +5 -6
- package/esm2022/lib/renderer/index.mjs +387 -234
- package/esm2022/lib/renderer/state.mjs +49 -0
- package/esm2022/lib/renderer/utils.mjs +107 -95
- package/esm2022/lib/roots.mjs +85 -61
- package/esm2022/lib/routed-scene.mjs +6 -7
- package/esm2022/lib/store.mjs +170 -194
- package/esm2022/lib/three-types.mjs +2 -2
- package/esm2022/lib/types.mjs +1 -1
- package/esm2022/lib/utils/apply-props.mjs +24 -28
- package/esm2022/lib/utils/attach.mjs +12 -9
- package/esm2022/lib/utils/before-render.mjs +12 -0
- package/esm2022/lib/utils/is.mjs +6 -5
- package/esm2022/lib/utils/make.mjs +19 -17
- package/esm2022/lib/utils/non-nullish.mjs +7 -0
- package/esm2022/lib/utils/object-events.mjs +92 -0
- package/esm2022/lib/utils/parameters.mjs +70 -0
- package/esm2022/lib/utils/resolve-ref.mjs +8 -0
- package/esm2022/lib/utils/signal-store.mjs +52 -58
- package/esm2022/lib/utils/update.mjs +8 -4
- package/esm2022/testing/angular-three-testing.mjs +5 -0
- package/esm2022/testing/index.mjs +3 -0
- package/esm2022/testing/lib/test-bed.mjs +130 -0
- package/esm2022/testing/lib/test-canvas.mjs +45 -0
- package/esm2022/testing/lib/utils/mock-canvas.mjs +37 -0
- package/esm2022/testing/lib/utils/web-gl-rendering-context.mjs +752 -0
- package/fesm2022/angular-three-testing.mjs +966 -0
- package/fesm2022/angular-three-testing.mjs.map +1 -0
- package/fesm2022/angular-three.mjs +2506 -2539
- package/fesm2022/angular-three.mjs.map +1 -1
- package/index.d.ts +14 -12
- package/lib/canvas.d.ts +366 -96
- package/lib/directives/args.d.ts +14 -7
- package/lib/directives/selection.d.ts +17 -0
- package/lib/dom/events.d.ts +2 -3
- package/lib/events.d.ts +4 -80
- package/lib/html.d.ts +17 -0
- package/lib/instance.d.ts +3 -35
- package/lib/loader.d.ts +18 -6
- package/lib/loop.d.ts +11 -59
- package/lib/pipes/hexify.d.ts +20 -0
- package/lib/portal.d.ts +54 -48
- package/lib/renderer/catalogue.d.ts +7 -3
- package/lib/renderer/constants.d.ts +4 -5
- package/lib/renderer/index.d.ts +64 -4
- package/lib/renderer/state.d.ts +24 -0
- package/lib/renderer/utils.d.ts +9 -27
- package/lib/roots.d.ts +9 -7
- package/lib/store.d.ts +13 -141
- package/lib/three-types.d.ts +500 -147
- package/lib/types.d.ts +291 -0
- package/lib/utils/apply-props.d.ts +1 -3
- package/lib/utils/attach.d.ts +3 -5
- package/lib/{before-render.d.ts → utils/before-render.d.ts} +1 -1
- package/lib/utils/is.d.ts +13 -14
- package/lib/utils/make.d.ts +7 -13
- package/lib/utils/non-nullish.d.ts +4 -0
- package/lib/utils/object-events.d.ts +34 -0
- package/lib/utils/parameters.d.ts +20 -0
- package/lib/utils/resolve-ref.d.ts +2 -0
- package/lib/utils/signal-store.d.ts +13 -4
- package/lib/utils/update.d.ts +1 -1
- package/metadata.json +1 -1
- package/package.json +40 -24
- package/plugin/generators.json +8 -30
- package/plugin/package.json +3 -22
- package/plugin/src/generators/add-soba/compat.js.map +1 -0
- package/plugin/src/generators/add-soba/generator.d.ts +3 -0
- package/plugin/src/generators/add-soba/generator.js +78 -0
- package/plugin/src/generators/add-soba/generator.js.map +1 -0
- package/plugin/src/generators/add-soba/schema.json +4 -0
- package/plugin/src/generators/init/compat.d.ts +1 -3
- package/plugin/src/generators/init/files/experience/experience.component.ts__tmpl__ +18 -7
- package/plugin/src/generators/init/generator.d.ts +5 -5
- package/plugin/src/generators/init/generator.js +100 -106
- package/plugin/src/generators/init/generator.js.map +1 -1
- package/plugin/src/generators/init/schema.json +8 -12
- package/plugin/src/generators/utils.js +4 -3
- package/plugin/src/generators/utils.js.map +1 -1
- package/plugin/src/generators/version.d.ts +17 -0
- package/plugin/src/generators/version.js +21 -0
- package/plugin/src/generators/version.js.map +1 -0
- package/plugin/src/index.d.ts +0 -3
- package/plugin/src/index.js +0 -9
- package/plugin/src/index.js.map +1 -1
- package/testing/README.md +3 -0
- package/testing/index.d.ts +2 -0
- package/testing/lib/test-bed.d.ts +38 -0
- package/testing/lib/test-canvas.d.ts +11 -0
- package/testing/lib/utils/mock-canvas.d.ts +5 -0
- package/testing/lib/utils/web-gl-rendering-context.d.ts +16 -0
- package/testing/package.json +3 -0
- package/web-types.json +1 -1
- package/esm2022/lib/before-render.mjs +0 -13
- package/esm2022/lib/directives/common.mjs +0 -41
- package/esm2022/lib/directives/key.mjs +0 -29
- package/esm2022/lib/directives/parent.mjs +0 -35
- package/esm2022/lib/ref.mjs +0 -48
- package/esm2022/lib/renderer/store.mjs +0 -408
- package/esm2022/lib/utils/safe-detect-changes.mjs +0 -17
- package/lib/directives/common.d.ts +0 -15
- package/lib/directives/key.d.ts +0 -10
- package/lib/directives/parent.d.ts +0 -11
- package/lib/ref.d.ts +0 -8
- package/lib/renderer/store.d.ts +0 -67
- package/lib/utils/safe-detect-changes.d.ts +0 -2
- package/plugin/migrations.json +0 -16
- package/plugin/src/generators/init/files/experience/experience.component.html__tmpl__ +0 -4
- package/plugin/src/generators/init-cannon/compat.js.map +0 -1
- package/plugin/src/generators/init-cannon/generator.d.ts +0 -2
- package/plugin/src/generators/init-cannon/generator.js +0 -23
- package/plugin/src/generators/init-cannon/generator.js.map +0 -1
- package/plugin/src/generators/init-cannon/schema.json +0 -6
- package/plugin/src/generators/init-postprocessing/compat.d.ts +0 -2
- package/plugin/src/generators/init-postprocessing/compat.js +0 -6
- package/plugin/src/generators/init-postprocessing/compat.js.map +0 -1
- package/plugin/src/generators/init-postprocessing/generator.d.ts +0 -2
- package/plugin/src/generators/init-postprocessing/generator.js +0 -21
- package/plugin/src/generators/init-postprocessing/generator.js.map +0 -1
- package/plugin/src/generators/init-postprocessing/schema.json +0 -6
- package/plugin/src/generators/init-soba/compat.d.ts +0 -2
- package/plugin/src/generators/init-soba/compat.js +0 -6
- package/plugin/src/generators/init-soba/compat.js.map +0 -1
- package/plugin/src/generators/init-soba/generator.d.ts +0 -2
- package/plugin/src/generators/init-soba/generator.js +0 -27
- package/plugin/src/generators/init-soba/generator.js.map +0 -1
- package/plugin/src/generators/init-soba/schema.json +0 -6
- package/plugin/src/generators/versions.d.ts +0 -13
- package/plugin/src/generators/versions.js +0 -17
- package/plugin/src/generators/versions.js.map +0 -1
- package/plugin/src/migrations/migrate-to-ngxtension/compat.d.ts +0 -2
- package/plugin/src/migrations/migrate-to-ngxtension/compat.js +0 -6
- package/plugin/src/migrations/migrate-to-ngxtension/compat.js.map +0 -1
- package/plugin/src/migrations/migrate-to-ngxtension/migrate-to-ngxtension.d.ts +0 -2
- package/plugin/src/migrations/migrate-to-ngxtension/migrate-to-ngxtension.js +0 -41
- package/plugin/src/migrations/migrate-to-ngxtension/migrate-to-ngxtension.js.map +0 -1
- /package/plugin/src/generators/{init-cannon → add-soba}/compat.d.ts +0 -0
- /package/plugin/src/generators/{init-cannon → add-soba}/compat.js +0 -0
package/esm2022/lib/instance.mjs
CHANGED
|
@@ -1,51 +1,58 @@
|
|
|
1
|
-
import { EventEmitter, signal, untracked } from '@angular/core';
|
|
2
1
|
import { signalStore } from './utils/signal-store';
|
|
3
2
|
import { checkUpdate } from './utils/update';
|
|
4
3
|
export function getLocalState(obj) {
|
|
5
4
|
if (!obj)
|
|
6
|
-
return
|
|
7
|
-
return obj['__ngt__']
|
|
5
|
+
return undefined;
|
|
6
|
+
return obj['__ngt__'];
|
|
8
7
|
}
|
|
9
8
|
export function invalidateInstance(instance) {
|
|
10
|
-
|
|
11
|
-
if (
|
|
12
|
-
|
|
9
|
+
let store = getLocalState(instance)?.store;
|
|
10
|
+
if (store) {
|
|
11
|
+
while (store.snapshot.previousRoot) {
|
|
12
|
+
store = store.snapshot.previousRoot;
|
|
13
|
+
}
|
|
14
|
+
if (store.snapshot.internal.frames === 0) {
|
|
15
|
+
store.snapshot.invalidate();
|
|
16
|
+
}
|
|
17
|
+
}
|
|
13
18
|
checkUpdate(instance);
|
|
14
19
|
}
|
|
15
20
|
export function prepare(object, localState) {
|
|
16
21
|
const instance = object;
|
|
17
22
|
if (localState?.primitive || !instance.__ngt__) {
|
|
18
|
-
const {
|
|
23
|
+
const { instanceStore = signalStore({
|
|
24
|
+
parent: null,
|
|
25
|
+
objects: [],
|
|
26
|
+
nonObjects: [],
|
|
27
|
+
}), ...rest } = localState || {};
|
|
19
28
|
instance.__ngt__ = {
|
|
20
29
|
previousAttach: null,
|
|
21
30
|
store: null,
|
|
22
|
-
parent: signal(null),
|
|
23
31
|
memoized: {},
|
|
24
32
|
eventCount: 0,
|
|
25
33
|
handlers: {},
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
34
|
+
instanceStore,
|
|
35
|
+
parent: instanceStore.select('parent'),
|
|
36
|
+
objects: instanceStore.select('objects'),
|
|
37
|
+
nonObjects: instanceStore.select('nonObjects'),
|
|
38
|
+
add(object, type) {
|
|
39
|
+
const current = instance.__ngt__.instanceStore.snapshot[type];
|
|
40
|
+
const foundIndex = current.indexOf((node) => object === node);
|
|
41
|
+
if (foundIndex > -1) {
|
|
42
|
+
current.splice(foundIndex, 1, object);
|
|
43
|
+
instance.__ngt__.instanceStore.update({ [type]: current });
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
instance.__ngt__.instanceStore.update((prev) => ({ [type]: [...prev[type], object] }));
|
|
47
|
+
}
|
|
48
|
+
notifyAncestors(instance.__ngt__.instanceStore.snapshot.parent);
|
|
49
|
+
},
|
|
50
|
+
remove(object, type) {
|
|
51
|
+
instance.__ngt__.instanceStore.update((prev) => ({ [type]: prev[type].filter((node) => node !== object) }));
|
|
52
|
+
notifyAncestors(instance.__ngt__.instanceStore.snapshot.parent);
|
|
43
53
|
},
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
instance.__ngt__[type].update((prev) => prev.filter((o) => o !== object));
|
|
47
|
-
notifyAncestors(instance.__ngt__.parent());
|
|
48
|
-
});
|
|
54
|
+
setParent(parent) {
|
|
55
|
+
instance.__ngt__.instanceStore.update({ parent });
|
|
49
56
|
},
|
|
50
57
|
...rest,
|
|
51
58
|
};
|
|
@@ -56,10 +63,10 @@ function notifyAncestors(instance) {
|
|
|
56
63
|
if (!instance)
|
|
57
64
|
return;
|
|
58
65
|
const localState = getLocalState(instance);
|
|
59
|
-
if (localState
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
notifyAncestors(
|
|
66
|
+
if (!localState)
|
|
67
|
+
return;
|
|
68
|
+
const { parent, objects, nonObjects } = localState.instanceStore.snapshot;
|
|
69
|
+
localState.instanceStore.update({ objects: (objects || []).slice(), nonObjects: (nonObjects || []).slice() });
|
|
70
|
+
notifyAncestors(parent);
|
|
64
71
|
}
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9pbnN0YW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE1BQU0sVUFBVSxhQUFhLENBQTJCLEdBQTBCO0lBQ2pGLElBQUksQ0FBQyxHQUFHO1FBQUUsT0FBTyxTQUFTLENBQUM7SUFDM0IsT0FBUSxHQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQTJCLFFBQW1CO0lBQy9FLElBQUksS0FBSyxHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLENBQUM7SUFFM0MsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUNYLE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNwQyxLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUM7UUFDckMsQ0FBQztRQUNELElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzFDLEtBQUssQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDN0IsQ0FBQztJQUNGLENBQUM7SUFFRCxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDdkIsQ0FBQztBQUVELE1BQU0sVUFBVSxPQUFPLENBQ3RCLE1BQWlCLEVBQ2pCLFVBQW1DO0lBRW5DLE1BQU0sUUFBUSxHQUFHLE1BQStDLENBQUM7SUFFakUsSUFBSSxVQUFVLEVBQUUsU0FBUyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2hELE1BQU0sRUFDTCxhQUFhLEdBQUcsV0FBVyxDQUF3QjtZ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QUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLFVBQVUsRUFBRSxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDOUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ3RBbnlSZWNvcmQsIE5ndEluc3RhbmNlTm9kZSwgTmd0TG9jYWxJbnN0YW5jZVN0YXRlLCBOZ3RMb2NhbFN0YXRlIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBzaWduYWxTdG9yZSB9IGZyb20gJy4vdXRpbHMvc2lnbmFsLXN0b3JlJztcbmltcG9ydCB7IGNoZWNrVXBkYXRlIH0gZnJvbSAnLi91dGlscy91cGRhdGUnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TG9jYWxTdGF0ZTxUSW5zdGFuY2UgZXh0ZW5kcyBvYmplY3Q+KG9iajogVEluc3RhbmNlIHwgdW5kZWZpbmVkKTogTmd0TG9jYWxTdGF0ZSB8IHVuZGVmaW5lZCB7XG5cdGlmICghb2JqKSByZXR1cm4gdW5kZWZpbmVkO1xuXHRyZXR1cm4gKG9iaiBhcyBOZ3RBbnlSZWNvcmQpWydfX25ndF9fJ107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnZhbGlkYXRlSW5zdGFuY2U8VEluc3RhbmNlIGV4dGVuZHMgb2JqZWN0PihpbnN0YW5jZTogVEluc3RhbmNlKSB7XG5cdGxldCBzdG9yZSA9IGdldExvY2FsU3RhdGUoaW5zdGFuY2UpPy5zdG9yZTtcblxuXHRpZiAoc3RvcmUpIHtcblx0XHR3aGlsZSAoc3RvcmUuc25hcHNob3QucHJldmlvdXNSb290KSB7XG5cdFx0XHRzdG9yZSA9IHN0b3JlLnNuYXBzaG90LnByZXZpb3VzUm9vdDtcblx0XHR9XG5cdFx0aWYgKHN0b3JlLnNuYXBzaG90LmludGVybmFsLmZyYW1lcyA9PT0gMCkge1xuXHRcdFx0c3RvcmUuc25hcHNob3QuaW52YWxpZGF0ZSgpO1xuXHRcdH1cblx0fVxuXG5cdGNoZWNrVXBkYXRlKGluc3RhbmNlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByZXBhcmU8VEluc3RhbmNlIGV4dGVuZHMgb2JqZWN0ID0gTmd0QW55UmVjb3JkPihcblx0b2JqZWN0OiBUSW5zdGFuY2UsXG5cdGxvY2FsU3RhdGU/OiBQYXJ0aWFsPE5ndExvY2FsU3RhdGU+LFxuKSB7XG5cdGNvbnN0IGluc3RhbmNlID0gb2JqZWN0IGFzIHVua25vd24gYXMgTmd0SW5zdGFuY2VOb2RlPFRJbnN0YW5jZT47XG5cblx0aWYgKGxvY2FsU3RhdGU/LnByaW1pdGl2ZSB8fCAhaW5zdGFuY2UuX19uZ3RfXykge1xuXHRcdGNvbnN0IHtcblx0XHRcdGluc3RhbmNlU3RvcmUgPSBzaWduYWxTdG9yZTxOZ3RMb2NhbEluc3RhbmNlU3RhdGU+KHtcblx0XHRcdFx0cGFyZW50OiBudWxsLFxuXHRcdFx0XHRvYmplY3RzOiBbXSxcblx0XHRcdFx0bm9uT2JqZWN0czogW10sXG5cdFx0XHR9KSxcblx0XHRcdC4uLnJlc3Rcblx0XHR9ID0gbG9jYWxTdGF0ZSB8fCB7fTtcblxuXHRcdGluc3RhbmNlLl9fbmd0X18gPSB7XG5cdFx0XHRwcmV2aW91c0F0dGFjaDogbnVsbCxcblx0XHRcdHN0b3JlOiBudWxsLFxuXHRcdFx0bWVtb2l6ZWQ6IHt9LFxuXHRcdFx0ZXZlbnRDb3VudDogMCxcblx0XHRcdGhhbmRsZXJzOiB7fSxcblx0XHRcdGluc3RhbmNlU3RvcmUsXG5cdFx0XHRwYXJlbnQ6IGluc3RhbmNlU3RvcmUuc2VsZWN0KCdwYXJlbnQnKSxcblx0XHRcdG9iamVjdHM6IGluc3RhbmNlU3RvcmUuc2VsZWN0KCdvYmplY3RzJyksXG5cdFx0XHRub25PYmplY3RzOiBpbnN0YW5jZVN0b3JlLnNlbGVjdCgnbm9uT2JqZWN0cycpLFxuXHRcdFx0YWRkKG9iamVjdCwgdHlwZSkge1xuXHRcdFx0XHRjb25zdCBjdXJyZW50ID0gaW5zdGFuY2UuX19uZ3RfXy5pbnN0YW5jZVN0b3JlLnNuYXBzaG90W3R5cGVdO1xuXHRcdFx0XHRjb25zdCBmb3VuZEluZGV4ID0gY3VycmVudC5pbmRleE9mKChub2RlOiBOZ3RJbnN0YW5jZU5vZGUpID0+IG9iamVjdCA9PT0gbm9kZSk7XG5cdFx0XHRcdGlmIChmb3VuZEluZGV4ID4gLTEpIHtcblx0XHRcdFx0XHRjdXJyZW50LnNwbGljZShmb3VuZEluZGV4LCAxLCBvYmplY3QpO1xuXHRcdFx0XHRcdGluc3RhbmNlLl9fbmd0X18uaW5zdGFuY2VTdG9yZS51cGRhdGUoeyBbdHlwZV06IGN1cnJlbnQgfSk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0aW5zdGFuY2UuX19uZ3RfXy5pbnN0YW5jZVN0b3JlLnVwZGF0ZSgocHJldikgPT4gKHsgW3R5cGVdOiBbLi4ucHJldlt0eXBlXSwgb2JqZWN0XSB9KSk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRub3RpZnlBbmNlc3RvcnMoaW5zdGFuY2UuX19uZ3RfXy5pbnN0YW5jZVN0b3JlLnNuYXBzaG90LnBhcmVudCk7XG5cdFx0XHR9LFxuXHRcdFx0cmVtb3ZlKG9iamVjdCwgdHlwZSkge1xuXHRcdFx0XHRpbnN0YW5jZS5fX25ndF9fLmluc3RhbmNlU3RvcmUudXBkYXRlKChwcmV2KSA9PiAoeyBbdHlwZV06IHByZXZbdHlwZV0uZmlsdGVyKChub2RlKSA9PiBub2RlICE9PSBvYmplY3QpIH0pKTtcblx0XHRcdFx0bm90aWZ5QW5jZXN0b3JzKGluc3RhbmNlLl9fbmd0X18uaW5zdGFuY2VTdG9yZS5zbmFwc2hvdC5wYXJlbnQpO1xuXHRcdFx0fSxcblx0XHRcdHNldFBhcmVudChwYXJlbnQpIHtcblx0XHRcdFx0aW5zdGFuY2UuX19uZ3RfXy5pbnN0YW5jZVN0b3JlLnVwZGF0ZSh7IHBhcmVudCB9KTtcblx0XHRcdH0sXG5cdFx0XHQuLi5yZXN0LFxuXHRcdH0gYXMgTmd0TG9jYWxTdGF0ZTtcblx0fVxuXG5cdHJldHVybiBpbnN0YW5jZTtcbn1cblxuZnVuY3Rpb24gbm90aWZ5QW5jZXN0b3JzKGluc3RhbmNlOiBOZ3RJbnN0YW5jZU5vZGUgfCBudWxsKSB7XG5cdGlmICghaW5zdGFuY2UpIHJldHVybjtcblx0Y29uc3QgbG9jYWxTdGF0ZSA9IGdldExvY2FsU3RhdGUoaW5zdGFuY2UpO1xuXHRpZiAoIWxvY2FsU3RhdGUpIHJldHVybjtcblx0Y29uc3QgeyBwYXJlbnQsIG9iamVjdHMsIG5vbk9iamVjdHMgfSA9IGxvY2FsU3RhdGUuaW5zdGFuY2VTdG9yZS5zbmFwc2hvdDtcblx0bG9jYWxTdGF0ZS5pbnN0YW5jZVN0b3JlLnVwZGF0ZSh7IG9iamVjdHM6IChvYmplY3RzIHx8IFtdKS5zbGljZSgpLCBub25PYmplY3RzOiAobm9uT2JqZWN0cyB8fCBbXSkuc2xpY2UoKSB9KTtcblx0bm90aWZ5QW5jZXN0b3JzKHBhcmVudCk7XG59XG4iXX0=
|
package/esm2022/lib/loader.mjs
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { afterNextRender, signal } from '@angular/core';
|
|
2
2
|
import { assertInjector } from 'ngxtension/assert-injector';
|
|
3
|
+
import { injectAutoEffect } from 'ngxtension/auto-effect';
|
|
3
4
|
import { makeObjectGraph } from './utils/make';
|
|
4
|
-
import { safeDetectChanges } from './utils/safe-detect-changes';
|
|
5
5
|
const cached = new Map();
|
|
6
|
+
const memoizedLoaders = new WeakMap();
|
|
6
7
|
function normalizeInputs(input) {
|
|
7
8
|
if (Array.isArray(input))
|
|
8
9
|
return input;
|
|
@@ -10,10 +11,16 @@ function normalizeInputs(input) {
|
|
|
10
11
|
return [input];
|
|
11
12
|
return Object.values(input);
|
|
12
13
|
}
|
|
13
|
-
function load(loaderConstructorFactory, inputs, { extensions, onProgress, } = {}) {
|
|
14
|
+
function load(loaderConstructorFactory, inputs, { extensions, onLoad, onProgress, } = {}) {
|
|
14
15
|
return () => {
|
|
15
16
|
const urls = normalizeInputs(inputs());
|
|
16
|
-
|
|
17
|
+
if (urls.some((url) => url.includes('undefined')))
|
|
18
|
+
return null;
|
|
19
|
+
let loader = memoizedLoaders.get(loaderConstructorFactory(urls));
|
|
20
|
+
if (!loader) {
|
|
21
|
+
loader = new (loaderConstructorFactory(urls))();
|
|
22
|
+
memoizedLoaders.set(loaderConstructorFactory(urls), loader);
|
|
23
|
+
}
|
|
17
24
|
if (extensions)
|
|
18
25
|
extensions(loader);
|
|
19
26
|
// TODO: reevaluate this
|
|
@@ -21,46 +28,70 @@ function load(loaderConstructorFactory, inputs, { extensions, onProgress, } = {}
|
|
|
21
28
|
if (!cached.has(url)) {
|
|
22
29
|
cached.set(url, new Promise((resolve, reject) => {
|
|
23
30
|
loader.load(url, (data) => {
|
|
24
|
-
if ('scene' in data)
|
|
31
|
+
if ('scene' in data) {
|
|
25
32
|
Object.assign(data, makeObjectGraph(data['scene']));
|
|
33
|
+
}
|
|
34
|
+
if (onLoad) {
|
|
35
|
+
onLoad(data);
|
|
36
|
+
}
|
|
26
37
|
resolve(data);
|
|
27
|
-
}, onProgress, (error) => reject(new Error(`[NGT] Could not load ${url}: ${error}`)));
|
|
38
|
+
}, onProgress, (error) => reject(new Error(`[NGT] Could not load ${url}: ${error?.message}`)));
|
|
28
39
|
}));
|
|
29
40
|
}
|
|
30
41
|
return cached.get(url);
|
|
31
42
|
});
|
|
32
43
|
};
|
|
33
44
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
response.update(() => {
|
|
44
|
-
if (Array.isArray(originalUrls))
|
|
45
|
-
return results;
|
|
46
|
-
if (typeof originalUrls === 'string')
|
|
47
|
-
return results[0];
|
|
48
|
-
const keys = Object.keys(originalUrls);
|
|
49
|
-
return keys.reduce((result, key) => {
|
|
50
|
-
result[key] = results[keys.indexOf(key)];
|
|
51
|
-
return result;
|
|
52
|
-
}, {});
|
|
53
|
-
});
|
|
54
|
-
safeDetectChanges(cdr);
|
|
45
|
+
function _injectLoader(loaderConstructorFactory, inputs, { extensions, onProgress, onLoad, injector, } = {}) {
|
|
46
|
+
return assertInjector(_injectLoader, injector, () => {
|
|
47
|
+
const autoEffect = injectAutoEffect();
|
|
48
|
+
const response = signal(null);
|
|
49
|
+
afterNextRender(() => {
|
|
50
|
+
const effector = load(loaderConstructorFactory, inputs, {
|
|
51
|
+
extensions,
|
|
52
|
+
onProgress,
|
|
53
|
+
onLoad: onLoad,
|
|
55
54
|
});
|
|
55
|
+
autoEffect(() => {
|
|
56
|
+
const originalUrls = inputs();
|
|
57
|
+
const cachedEffect = effector();
|
|
58
|
+
if (cachedEffect === null) {
|
|
59
|
+
response.set(null);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
Promise.all(cachedEffect).then((results) => {
|
|
63
|
+
response.update(() => {
|
|
64
|
+
if (Array.isArray(originalUrls))
|
|
65
|
+
return results;
|
|
66
|
+
if (typeof originalUrls === 'string')
|
|
67
|
+
return results[0];
|
|
68
|
+
const keys = Object.keys(originalUrls);
|
|
69
|
+
return keys.reduce((result, key) => {
|
|
70
|
+
result[key] = results[keys.indexOf(key)];
|
|
71
|
+
return result;
|
|
72
|
+
}, {});
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
}, { allowSignalWrites: true });
|
|
56
77
|
});
|
|
57
78
|
return response.asReadonly();
|
|
58
79
|
});
|
|
59
80
|
}
|
|
60
|
-
|
|
61
|
-
|
|
81
|
+
_injectLoader.preload = (loaderConstructorFactory, inputs, extensions, onLoad) => {
|
|
82
|
+
const effects = load(loaderConstructorFactory, inputs, { extensions, onLoad })();
|
|
83
|
+
if (effects) {
|
|
84
|
+
void Promise.all(effects);
|
|
85
|
+
}
|
|
62
86
|
};
|
|
63
|
-
|
|
87
|
+
_injectLoader.destroy = () => {
|
|
64
88
|
cached.clear();
|
|
65
89
|
};
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRzVELE9BQU8sRUFBRSxlQUFlLEVBQXFCLE1BQU0sY0FBYyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBMEJoRSxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBRXpCLFNBQVMsZUFBZSxDQUFDLEtBQWlEO0lBQ3pFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUN2QyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVE7UUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUMsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQzdCLENBQUM7QUFFRCxTQUFTLElBQUksQ0FLWix3QkFBa0UsRUFDbEUsTUFBa0IsRUFDbEIsRUFDQyxVQUFVLEVBQ1YsVUFBVSxNQUlQLEVBQUU7SUFFTixPQUFPLEdBQXdCLEVBQUU7UUFDaEMsTUFBTSxJQUFJLEdBQUcsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDdkMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN0RCxJQUFJLFVBQVU7WUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkMsd0JBQXdCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLEdBQUcs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SSxDQUFDLHdCQUF3QixFQUFFLE1BQU0sRUFBRSxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3ZFLENBQUMsQ0FBQztBQUVGLGVBQWUsQ0FBQyxTQUFTLENBQUMsR0FBRyxHQUFHLEVBQUU7SUFDakMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO0FBQ2hCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBJbmplY3RvciwgZWZmZWN0LCBpbmplY3QsIHJ1bkluSW5qZWN0aW9uQ29udGV4dCwgc2lnbmFsLCB0eXBlIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYXNzZXJ0SW5qZWN0b3IgfSBmcm9tICduZ3h0ZW5zaW9uL2Fzc2VydC1pbmplY3Rvcic7XG5pbXBvcnQgdHlwZSB7IEdMVEYgfSBmcm9tICd0aHJlZS9leGFtcGxlcy9qc20vbG9hZGVycy9HTFRGTG9hZGVyJztcbmltcG9ydCB0eXBlIHsgTmd0QW55UmVjb3JkIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBtYWtlT2JqZWN0R3JhcGgsIHR5cGUgTmd0T2JqZWN0TWFwIH0gZnJvbSAnLi91dGlscy9tYWtlJztcbmltcG9ydCB7IHNhZmVEZXRlY3RDaGFuZ2VzIH0gZnJvbSAnLi91dGlscy9zYWZlLWRldGVjdC1jaGFuZ2VzJztcblxuZXhwb3J0IGludGVyZmFjZSBOZ3RMb2FkZXI8VD4gZXh0ZW5kcyBUSFJFRS5Mb2FkZXIge1xuXHRsb2FkKFxuXHRcdHVybDogc3RyaW5nLFxuXHRcdG9uTG9hZD86IChyZXN1bHQ6IFQpID0+IHZvaWQsXG5cdFx0b25Qcm9ncmVzcz86IChldmVudDogUHJvZ3Jlc3NFdmVudCkgPT4gdm9pZCxcblx0XHRvbkVycm9yPzogKGV2ZW50OiB1bmtub3duKSA9PiB2b2lkLFxuXHQpOiB1bmtub3duO1xuXHRsb2FkQXN5bmModXJsOiBzdHJpbmcsIG9uUHJvZ3Jlc3M/OiAoZXZlbnQ6IFByb2dyZXNzRXZlbnQpID0+IHZvaWQpOiBQcm9taXNlPFQ+O1xufVxuXG5leHBvcnQgdHlwZSBOZ3RMb2FkZXJQcm90bzxUPiA9IG5ldyAoLi4uYXJnczogYW55KSA9PiBOZ3RMb2FkZXI8VCBleHRlbmRzIHVua25vd24gPyBhbnkgOiBUPjtcbmV4cG9ydCB0eXBlIE5ndExvYWRlclJldHVyblR5cGU8VCwgTCBleHRlbmRzIE5ndExvYWRlclByb3RvPFQ+PiA9IFQgZXh0ZW5kcyB1bmtub3duXG5cdD8gQXdhaXRlZDxSZXR1cm5UeXBlPEluc3RhbmNlVHlwZTxMPlsnbG9hZEFzeW5jJ10+PlxuXHQ6IFQ7XG5cbmV4cG9ydCB0eXBlIE5ndExvYWRlckV4dGVuc2lvbnM8VCBleHRlbmRzIHsgcHJvdG90eXBlOiBOZ3RMb2FkZXJQcm90bzxhbnk+IH0+ID0gKGxvYWRlcjogVFsncHJvdG90eXBlJ10pID0+IHZvaWQ7XG5leHBvcnQgdHlwZSBOZ3RDb25kaXRpb25hbFR5cGU8Q2hpbGQsIFBhcmVudCwgVHJ1dGh5LCBGYWxzeT4gPSBDaGlsZCBleHRlbmRzIFBhcmVudCA/IFRydXRoeSA6IEZhbHN5O1xuZXhwb3J0IHR5cGUgTmd0QnJhbmNoaW5nUmV0dXJuPFQsIFBhcmVudCwgQ29lcmNlZD4gPSBOZ3RDb25kaXRpb25hbFR5cGU8VCwgUGFyZW50LCBDb2VyY2VkLCBUPjtcblxuZXhwb3J0IHR5cGUgTmd0TG9hZGVyUmVzdWx0czxcblx0VElucHV0IGV4dGVuZHMgc3RyaW5nIHwgc3RyaW5nW10gfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuXHRUUmV0dXJuLFxuPiA9IFRJbnB1dCBleHRlbmRzIHN0cmluZ1tdID8gVFJldHVybltdIDogVElucHV0IGV4dGVuZHMgb2JqZWN0ID8geyBba2V5IGluIGtleW9mIFRJbnB1dF06IFRSZXR1cm4gfSA6IFRSZXR1cm47XG5cbmNvbnN0IGNhY2hlZCA9IG5ldyBNYXAoKTtcblxuZnVuY3Rpb24gbm9ybWFsaXplSW5wdXRzKGlucHV0OiBzdHJpbmcgfCBzdHJpbmdbXSB8IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pIHtcblx0aWYgKEFycmF5LmlzQXJyYXkoaW5wdXQpKSByZXR1cm4gaW5wdXQ7XG5cdGlmICh0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnKSByZXR1cm4gW2lucHV0XTtcblx0cmV0dXJuIE9iamVjdC52YWx1ZXMoaW5wdXQpO1xufVxuXG5mdW5jdGlvbiBsb2FkPFxuXHRURGF0YSxcblx0VFVybCBleHRlbmRzIHN0cmluZyB8IHN0cmluZ1tdIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPixcblx0VExvYWRlckNvbnN0cnVjdG9yIGV4dGVuZHMgTmd0TG9hZGVyUHJvdG88VERhdGE+LFxuPihcblx0bG9hZGVyQ29uc3RydWN0b3JGYWN0b3J5OiAoaW5wdXRzOiBzdHJpbmdbXSkgPT4gVExvYWRlckNvbnN0cnVjdG9yLFxuXHRpbnB1dHM6ICgpID0+IFRVcmwsXG5cdHtcblx0XHRleHRlbnNpb25zLFxuXHRcdG9uUHJvZ3Jlc3MsXG5cdH06IHtcblx0XHRleHRlbnNpb25zPzogTmd0TG9hZGVyRXh0ZW5zaW9uczxUTG9hZGVyQ29uc3RydWN0b3I+O1xuXHRcdG9uUHJvZ3Jlc3M/OiAoZXZlbnQ6IFByb2dyZXNzRXZlbnQpID0+IHZvaWQ7XG5cdH0gPSB7fSxcbikge1xuXHRyZXR1cm4gKCk6IEFycmF5PFByb21pc2U8YW55Pj4gPT4ge1xuXHRcdGNvbnN0IHVybHMgPSBub3JtYWxpemVJbnB1dHMoaW5wdXRzKCkpO1xuXHRcdGNvbnN0IGxvYWRlciA9IG5ldyAobG9hZGVyQ29uc3RydWN0b3JGYWN0b3J5KHVybHMpKSgpO1xuXHRcdGlmIChleHRlbnNpb25zKSBleHRlbnNpb25zKGxvYWRlcik7XG5cdFx0Ly8gVE9ETzogcmVldmFsdWF0ZSB0aGlzXG5cdFx0cmV0dXJuIHVybHMubWFwKCh1cmwpID0+IHtcblx0XHRcdGlmICghY2FjaGVkLmhhcyh1cmwpKSB7XG5cdFx0XHRcdGNhY2hlZC5zZXQoXG5cdFx0XHRcdFx0dXJsLFxuXHRcdFx0XHRcdG5ldyBQcm9taXNlPFREYXRhPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0XHRcdFx0XHRsb2FkZXIubG9hZChcblx0XHRcdFx0XHRcdFx0dXJsLFxuXHRcdFx0XHRcdFx0XHQoZGF0YSkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdGlmICgnc2NlbmUnIGluIChkYXRhIGFzIE5ndEFueVJlY29yZCkpXG5cdFx0XHRcdFx0XHRcdFx0XHRPYmplY3QuYXNzaWduKFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRkYXRhIGFzIE5ndEFueVJlY29yZCxcblx0XHRcdFx0XHRcdFx0XHRcdFx0bWFrZU9iamVjdEdyYXBoKChkYXRhIGFzIE5ndEFueVJlY29yZClbJ3NjZW5lJ10pLFxuXHRcdFx0XHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdFx0XHRyZXNvbHZlKGRhdGEpO1xuXHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHRvblByb2dyZXNzLFxuXHRcdFx0XHRcdFx0XHQoZXJyb3IpID0+IHJlamVjdChuZXcgRXJyb3IoYFtOR1RdIENvdWxkIG5vdCBsb2FkICR7dXJsfTogJHtlcnJvcn1gKSksXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdH0pLFxuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIGNhY2hlZC5nZXQodXJsKSE7XG5cdFx0fSk7XG5cdH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3ROZ3RMb2FkZXI8XG5cdFREYXRhLFxuXHRUVXJsIGV4dGVuZHMgc3RyaW5nIHwgc3RyaW5nW10gfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuXHRUTG9hZGVyQ29uc3RydWN0b3IgZXh0ZW5kcyBOZ3RMb2FkZXJQcm90bzxURGF0YT4sXG5cdFRSZXR1cm4gPSBOZ3RMb2FkZXJSZXR1cm5UeXBlPFREYXRhLCBUTG9hZGVyQ29uc3RydWN0b3I+LFxuPihcblx0bG9hZGVyQ29uc3RydWN0b3JGYWN0b3J5OiAoaW5wdXRzOiBzdHJpbmdbXSkgPT4gVExvYWRlckNvbnN0cnVjdG9yLFxuXHRpbnB1dHM6ICgpID0+IFRVcmwsXG5cdHtcblx0XHRleHRlbnNpb25zLFxuXHRcdG9uUHJvZ3Jlc3MsXG5cdFx0aW5qZWN0b3IsXG5cdH06IHtcblx0XHRleHRlbnNpb25zPzogTmd0TG9hZGVyRXh0ZW5zaW9uczxUTG9hZGVyQ29uc3RydWN0b3I+O1xuXHRcdG9uUHJvZ3Jlc3M/OiAoZXZlbnQ6IFByb2dyZXNzRXZlbnQpID0+IHZvaWQ7XG5cdFx0aW5qZWN0b3I/OiBJbmplY3Rvcjtcblx0fSA9IHt9LFxuKTogU2lnbmFsPE5ndExvYWRlclJlc3VsdHM8VFVybCwgTmd0QnJhbmNoaW5nUmV0dXJuPFRSZXR1cm4sIEdMVEYsIEdMVEYgJiBOZ3RPYmplY3RNYXA+PiB8IG51bGw+IHtcblx0aW5qZWN0b3IgPSBhc3NlcnRJbmplY3RvcihpbmplY3ROZ3RMb2FkZXIsIGluamVjdG9yKTtcblx0Y29uc3QgcmVzcG9uc2UgPSBzaWduYWw8Tmd0TG9hZGVyUmVzdWx0czxUVXJsLCBOZ3RCcmFuY2hpbmdSZXR1cm48VFJldHVybiwgR0xURiwgR0xURiAmIE5ndE9iamVjdE1hcD4+IHwgbnVsbD4oXG5cdFx0bnVsbCxcblx0KTtcblx0cmV0dXJuIHJ1bkluSW5qZWN0aW9uQ29udGV4dChpbmplY3RvciwgKCkgPT4ge1xuXHRcdGNvbnN0IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cdFx0Y29uc3QgZWZmZWN0b3IgPSBsb2FkKGxvYWRlckNvbnN0cnVjdG9yRmFjdG9yeSwgaW5wdXRzLCB7IGV4dGVuc2lvbnMsIG9uUHJvZ3Jlc3MgfSk7XG5cblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0Y29uc3Qgb3JpZ2luYWxVcmxzID0gaW5wdXRzKCk7XG5cdFx0XHRQcm9taXNlLmFsbChlZmZlY3RvcigpKS50aGVuKChyZXN1bHRzKSA9PiB7XG5cdFx0XHRcdHJlc3BvbnNlLnVwZGF0ZSgoKSA9PiB7XG5cdFx0XHRcdFx0aWYgKEFycmF5LmlzQXJyYXkob3JpZ2luYWxVcmxzKSkgcmV0dXJuIHJlc3VsdHM7XG5cdFx0XHRcdFx0aWYgKHR5cGVvZiBvcmlnaW5hbFVybHMgPT09ICdzdHJpbmcnKSByZXR1cm4gcmVzdWx0c1swXTtcblx0XHRcdFx0XHRjb25zdCBrZXlzID0gT2JqZWN0LmtleXMob3JpZ2luYWxVcmxzKTtcblx0XHRcdFx0XHRyZXR1cm4ga2V5cy5yZWR1Y2UoXG5cdFx0XHRcdFx0XHQocmVzdWx0LCBrZXkpID0+IHtcblx0XHRcdFx0XHRcdFx0KHJlc3VsdCBhcyBOZ3RBbnlSZWNvcmQpW2tleV0gPSByZXN1bHRzW2tleXMuaW5kZXhPZihrZXkpXTtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHJlc3VsdDtcblx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHR7fSBhcyB7IFtrZXkgaW4ga2V5b2YgVFVybF06IE5ndEJyYW5jaGluZ1JldHVybjxUUmV0dXJuLCBHTFRGLCBHTFRGICYgTmd0T2JqZWN0TWFwPiB9LFxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRzYWZlRGV0ZWN0Q2hhbmdlcyhjZHIpO1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cblx0XHRyZXR1cm4gcmVzcG9uc2UuYXNSZWFkb25seSgpO1xuXHR9KTtcbn1cblxuaW5qZWN0Tmd0TG9hZGVyWydwcmVsb2FkJ10gPSA8XG5cdFREYXRhLFxuXHRUVXJsIGV4dGVuZHMgc3RyaW5nIHwgc3RyaW5nW10gfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuXHRUTG9hZGVyQ29uc3RydWN0b3IgZXh0ZW5kcyBOZ3RMb2FkZXJQcm90bzxURGF0YT4sXG4+KFxuXHRsb2FkZXJDb25zdHJ1Y3RvckZhY3Rvcnk6IChpbnB1dHM6IHN0cmluZ1tdKSA9PiBUTG9hZGVyQ29uc3RydWN0b3IsXG5cdGlucHV0czogKCkgPT4gVFVybCxcblx0ZXh0ZW5zaW9ucz86IE5ndExvYWRlckV4dGVuc2lvbnM8VExvYWRlckNvbnN0cnVjdG9yPixcbikgPT4ge1xuXHRQcm9taXNlLmFsbChsb2FkKGxvYWRlckNvbnN0cnVjdG9yRmFjdG9yeSwgaW5wdXRzLCB7IGV4dGVuc2lvbnMgfSkoKSk7XG59O1xuXG5pbmplY3ROZ3RMb2FkZXJbJ2Rlc3Ryb3knXSA9ICgpID0+IHtcblx0Y2FjaGVkLmNsZWFyKCk7XG59O1xuIl19
|
|
90
|
+
_injectLoader.clear = (urls) => {
|
|
91
|
+
const urlToClear = Array.isArray(urls) ? urls : [urls];
|
|
92
|
+
urlToClear.forEach((url) => {
|
|
93
|
+
cached.delete(url);
|
|
94
|
+
});
|
|
95
|
+
};
|
|
96
|
+
export const injectLoader = _injectLoader;
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0IsZUFBZSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHMUQsT0FBTyxFQUFnQixlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUE0QjdELE1BQU0sTUFBTSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7QUFDekIsTUFBTSxlQUFlLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztBQUV0QyxTQUFTLGVBQWUsQ0FBQyxLQUFpRDtJQUN6RSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDdkMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRO1FBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM3QixDQUFDO0FBRUQsU0FBUyxJQUFJLENBTVosd0JBQWtFLEVBQ2xFLE1BQWtCLEVBQ2xCLEVBQ0MsVUFBVSxFQUNWLE1BQU0sRUFDTixVQUFVLE1BS1AsRUFBRTtJQUVOLE9BQU8sR0FBK0IsRUFBRTtRQUN2QyxNQUFNLElBQUksR0FBRyxlQUFlLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUV2QyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUUvRCxJQUFJLE1BQU0sR0FBa0IsZUFBZSxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2hGLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNiLE1BQU0sR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2hELGVBQWUsQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDN0QsQ0FBQztRQUVELElBQUksVUFBVTtZQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQyx3QkFBd0I7UUFDeEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDdkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDdEIsTUFBTSxDQUFDLEdBQUcsQ0FDVCxHQUFHLEVBQ0gsSUFBSSxPQUFPLENBQVEsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7b0JBQ3RDLE1BQU0sQ0FBQyxJQUFJLENBQ1YsR0FBRyxFQUNILENBQUMsSUFBSSxFQUFFLEVBQUU7d0JBQ1IsSUFBSSxPQUFPLElBQUssSUFBcUIsRUFBRSxDQUFDOzRCQUN2QyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQW9CLEVBQUUsZUFBZSxDQUFFLElBQXFCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUN2RixDQUFDO3dCQUVELElBQUksTUFBTSxFQUFFLENBQUM7NEJBQ1osTUFBTSxDQUFDLElBQTBCLENBQUMsQ0FBQzt3QkFDcEMsQ0FBQzt3QkFFRCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ2YsQ0FBQyxFQUNELFVBQVUsRUFDVixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLHdCQUF3QixHQUFHLEtBQU0sS0FBb0IsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQzlGLENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLENBQ0YsQ0FBQztZQUNILENBQUM7WUFDRCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFFLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxhQUFhLENBTXJCLHdCQUFrRSxFQUNsRSxNQUFrQixFQUNsQixFQUNDLFVBQVUsRUFDVixVQUFVLEVBQ1YsTUFBTSxFQUNOLFFBQVEsTUFNTCxFQUFFO0lBRU4sT0FBTyxjQUFjLENBQUMsYUFBYSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUU7UUFDbkQsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztRQUN0QyxNQUFNLFFBQVEsR0FBRyxNQUFNLENBR2IsSUFBSSxDQUFDLENBQUM7UUFFaEIsZUFBZSxDQUFDLEdBQUcsRUFBRTtZQUNwQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsTUFBTSxFQUFFO2dCQUN2RCxVQUFVO2dCQUNWLFVBQVU7Z0JBQ1YsTUFBTSxFQUFFLE1BQWlDO2FBQ3pDLENBQUMsQ0FBQztZQUNILFVBQVUsQ0FDVCxHQUFHLEVBQUU7Z0JBQ0osTUFBTSxZQUFZLEdBQUcsTUFBTSxFQUFFLENBQUM7Z0JBQzlCLE1BQU0sWUFBWSxHQUFHLFFBQVEsRUFBRSxDQUFDO2dCQUNoQyxJQUFJLFlBQVksS0FBSyxJQUFJLEVBQUUsQ0FBQztvQkFDM0IsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDcEIsQ0FBQztxQkFBTSxDQUFDO29CQUNQLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7d0JBQzFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFOzRCQUNwQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDO2dDQUFFLE9BQU8sT0FBTyxDQUFDOzRCQUNoRCxJQUFJLE9BQU8sWUFBWSxLQUFLLFFBQVE7Z0NBQUUsT0FBTyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7NEJBQ3hELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7NEJBQ3ZDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FDakIsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUU7Z0NBQ2QsTUFBdUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dDQUMzRCxPQUFPLE1BQU0sQ0FBQzs0QkFDZixDQUFDLEVBQ0QsRUFBbUcsQ0FDbkcsQ0FBQzt3QkFDSCxDQUFDLENBQUMsQ0FBQztvQkFDSixDQUFDLENBQUMsQ0FBQztnQkFDSixDQUFDO1lBQ0YsQ0FBQyxFQUNELEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQzNCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzlCLENBQUMsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELGFBQWEsQ0FBQyxPQUFPLEdBQUcsQ0FLdkIsd0JBQWtFLEVBQ2xFLE1BQWtCLEVBQ2xCLFVBQW9ELEVBQ3BELE1BQXVDLEVBQ3RDLEVBQUU7SUFDSCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsTUFBTSxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUNqRixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ2IsS0FBSyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNCLENBQUM7QUFDRixDQUFDLENBQUM7QUFFRixhQUFhLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRTtJQUM1QixNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDaEIsQ0FBQyxDQUFDO0FBRUYsYUFBYSxDQUFDLEtBQUssR0FBRyxDQUFDLElBQXVCLEVBQUUsRUFBRTtJQUNqRCxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkQsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQzFCLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEIsQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDLENBQUM7QUFHRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQXNCLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdG9yLCBTaWduYWwsIGFmdGVyTmV4dFJlbmRlciwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBhc3NlcnRJbmplY3RvciB9IGZyb20gJ25neHRlbnNpb24vYXNzZXJ0LWluamVjdG9yJztcbmltcG9ydCB7IGluamVjdEF1dG9FZmZlY3QgfSBmcm9tICduZ3h0ZW5zaW9uL2F1dG8tZWZmZWN0JztcbmltcG9ydCB7IExvYWRlciwgT2JqZWN0M0QgfSBmcm9tICd0aHJlZSc7XG5pbXBvcnQgeyBOZ3RBbnlSZWNvcmQgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IE5ndE9iamVjdE1hcCwgbWFrZU9iamVjdEdyYXBoIH0gZnJvbSAnLi91dGlscy9tYWtlJztcblxuZXhwb3J0IHR5cGUgTmd0R0xURkxpa2UgPSB7IHNjZW5lOiBPYmplY3QzRCB9O1xuXG5leHBvcnQgaW50ZXJmYWNlIE5ndExvYWRlcjxUPiBleHRlbmRzIExvYWRlciB7XG5cdGxvYWQoXG5cdFx0dXJsOiBzdHJpbmcsXG5cdFx0b25Mb2FkPzogKHJlc3VsdDogVCkgPT4gdm9pZCxcblx0XHRvblByb2dyZXNzPzogKGV2ZW50OiBQcm9ncmVzc0V2ZW50KSA9PiB2b2lkLFxuXHRcdG9uRXJyb3I/OiAoZXZlbnQ6IHVua25vd24pID0+IHZvaWQsXG5cdCk6IHVua25vd247XG5cdGxvYWRBc3luYyh1cmw6IHN0cmluZywgb25Qcm9ncmVzcz86IChldmVudDogUHJvZ3Jlc3NFdmVudCkgPT4gdm9pZCk6IFByb21pc2U8VD47XG59XG5cbmV4cG9ydCB0eXBlIE5ndExvYWRlclByb3RvPFQ+ID0gbmV3ICguLi5hcmdzOiBhbnkpID0+IE5ndExvYWRlcjxUIGV4dGVuZHMgdW5rbm93biA/IGFueSA6IFQ+O1xuZXhwb3J0IHR5cGUgTmd0TG9hZGVyUmV0dXJuVHlwZTxULCBMIGV4dGVuZHMgTmd0TG9hZGVyUHJvdG88VD4+ID0gVCBleHRlbmRzIHVua25vd25cblx0PyBBd2FpdGVkPFJldHVyblR5cGU8SW5zdGFuY2VUeXBlPEw+Wydsb2FkQXN5bmMnXT4+XG5cdDogVDtcblxuZXhwb3J0IHR5cGUgTmd0TG9hZGVyRXh0ZW5zaW9uczxUIGV4dGVuZHMgeyBwcm90b3R5cGU6IE5ndExvYWRlclByb3RvPGFueT4gfT4gPSAobG9hZGVyOiBUWydwcm90b3R5cGUnXSkgPT4gdm9pZDtcbmV4cG9ydCB0eXBlIE5ndENvbmRpdGlvbmFsVHlwZTxDaGlsZCwgUGFyZW50LCBUcnV0aHksIEZhbHN5PiA9IENoaWxkIGV4dGVuZHMgUGFyZW50ID8gVHJ1dGh5IDogRmFsc3k7XG5leHBvcnQgdHlwZSBOZ3RCcmFuY2hpbmdSZXR1cm48VCwgUGFyZW50LCBDb2VyY2VkPiA9IE5ndENvbmRpdGlvbmFsVHlwZTxULCBQYXJlbnQsIENvZXJjZWQsIFQ+O1xuXG5leHBvcnQgdHlwZSBOZ3RMb2FkZXJSZXN1bHRzPFxuXHRUSW5wdXQgZXh0ZW5kcyBzdHJpbmcgfCBzdHJpbmdbXSB8IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG5cdFRSZXR1cm4sXG4+ID0gVElucHV0IGV4dGVuZHMgc3RyaW5nW10gPyBUUmV0dXJuW10gOiBUSW5wdXQgZXh0ZW5kcyBvYmplY3QgPyB7IFtrZXkgaW4ga2V5b2YgVElucHV0XTogVFJldHVybiB9IDogVFJldHVybjtcblxuY29uc3QgY2FjaGVkID0gbmV3IE1hcCgpO1xuY29uc3QgbWVtb2l6ZWRMb2FkZXJzID0gbmV3IFdlYWtNYXAoKTtcblxuZnVuY3Rpb24gbm9ybWFsaXplSW5wdXRzKGlucHV0OiBzdHJpbmcgfCBzdHJpbmdbXSB8IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pIHtcblx0aWYgKEFycmF5LmlzQXJyYXkoaW5wdXQpKSByZXR1cm4gaW5wdXQ7XG5cdGlmICh0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnKSByZXR1cm4gW2lucHV0XTtcblx0cmV0dXJuIE9iamVjdC52YWx1ZXMoaW5wdXQpO1xufVxuXG5mdW5jdGlvbiBsb2FkPFxuXHRURGF0YSxcblx0VFVybCBleHRlbmRzIHN0cmluZyB8IHN0cmluZ1tdIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPixcblx0VExvYWRlckNvbnN0cnVjdG9yIGV4dGVuZHMgTmd0TG9hZGVyUHJvdG88VERhdGE+LFxuXHRUUmV0dXJuID0gTmd0TG9hZGVyUmV0dXJuVHlwZTxURGF0YSwgVExvYWRlckNvbnN0cnVjdG9yPixcbj4oXG5cdGxvYWRlckNvbnN0cnVjdG9yRmFjdG9yeTogKGlucHV0czogc3RyaW5nW10pID0+IFRMb2FkZXJDb25zdHJ1Y3Rvcixcblx0aW5wdXRzOiAoKSA9PiBUVXJsLFxuXHR7XG5cdFx0ZXh0ZW5zaW9ucyxcblx0XHRvbkxvYWQsXG5cdFx0b25Qcm9ncmVzcyxcblx0fToge1xuXHRcdGV4dGVuc2lvbnM/OiBOZ3RMb2FkZXJFeHRlbnNpb25zPFRMb2FkZXJDb25zdHJ1Y3Rvcj47XG5cdFx0b25Mb2FkPzogKGRhdGE6IE5vSW5mZXI8VFJldHVybj4pID0+IHZvaWQ7XG5cdFx0b25Qcm9ncmVzcz86IChldmVudDogUHJvZ3Jlc3NFdmVudCkgPT4gdm9pZDtcblx0fSA9IHt9LFxuKSB7XG5cdHJldHVybiAoKTogQXJyYXk8UHJvbWlzZTxhbnk+PiB8IG51bGwgPT4ge1xuXHRcdGNvbnN0IHVybHMgPSBub3JtYWxpemVJbnB1dHMoaW5wdXRzKCkpO1xuXG5cdFx0aWYgKHVybHMuc29tZSgodXJsKSA9PiB1cmwuaW5jbHVkZXMoJ3VuZGVmaW5lZCcpKSkgcmV0dXJuIG51bGw7XG5cblx0XHRsZXQgbG9hZGVyOiBMb2FkZXI8VERhdGE+ID0gbWVtb2l6ZWRMb2FkZXJzLmdldChsb2FkZXJDb25zdHJ1Y3RvckZhY3RvcnkodXJscykpO1xuXHRcdGlmICghbG9hZGVyKSB7XG5cdFx0XHRsb2FkZXIgPSBuZXcgKGxvYWRlckNvbnN0cnVjdG9yRmFjdG9yeSh1cmxzKSkoKTtcblx0XHRcdG1lbW9pemVkTG9hZGVycy5zZXQobG9hZGVyQ29uc3RydWN0b3JGYWN0b3J5KHVybHMpLCBsb2FkZXIpO1xuXHRcdH1cblxuXHRcdGlmIChleHRlbnNpb25zKSBleHRlbnNpb25zKGxvYWRlcik7XG5cdFx0Ly8gVE9ETzogcmVldmFsdWF0ZSB0aGlzXG5cdFx0cmV0dXJuIHVybHMubWFwKCh1cmwpID0+IHtcblx0XHRcdGlmICghY2FjaGVkLmhhcyh1cmwpKSB7XG5cdFx0XHRcdGNhY2hlZC5zZXQoXG5cdFx0XHRcdFx0dXJsLFxuXHRcdFx0XHRcdG5ldyBQcm9taXNlPFREYXRhPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0XHRcdFx0XHRsb2FkZXIubG9hZChcblx0XHRcdFx0XHRcdFx0dXJsLFxuXHRcdFx0XHRcdFx0XHQoZGF0YSkgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdGlmICgnc2NlbmUnIGluIChkYXRhIGFzIE5ndEFueVJlY29yZCkpIHtcblx0XHRcdFx0XHRcdFx0XHRcdE9iamVjdC5hc3NpZ24oZGF0YSBhcyBOZ3RBbnlSZWNvcmQsIG1ha2VPYmplY3RHcmFwaCgoZGF0YSBhcyBOZ3RBbnlSZWNvcmQpWydzY2VuZSddKSk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdFx0aWYgKG9uTG9hZCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0b25Mb2FkKGRhdGEgYXMgdW5rbm93biBhcyBUUmV0dXJuKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0XHRyZXNvbHZlKGRhdGEpO1xuXHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHRvblByb2dyZXNzLFxuXHRcdFx0XHRcdFx0XHQoZXJyb3IpID0+IHJlamVjdChuZXcgRXJyb3IoYFtOR1RdIENvdWxkIG5vdCBsb2FkICR7dXJsfTogJHsoZXJyb3IgYXMgRXJyb3JFdmVudCk/Lm1lc3NhZ2V9YCkpLFxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHR9KSxcblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBjYWNoZWQuZ2V0KHVybCkhO1xuXHRcdH0pO1xuXHR9O1xufVxuXG5mdW5jdGlvbiBfaW5qZWN0TG9hZGVyPFxuXHRURGF0YSxcblx0VFVybCBleHRlbmRzIHN0cmluZyB8IHN0cmluZ1tdIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPixcblx0VExvYWRlckNvbnN0cnVjdG9yIGV4dGVuZHMgTmd0TG9hZGVyUHJvdG88VERhdGE+LFxuXHRUUmV0dXJuID0gTmd0TG9hZGVyUmV0dXJuVHlwZTxURGF0YSwgVExvYWRlckNvbnN0cnVjdG9yPixcbj4oXG5cdGxvYWRlckNvbnN0cnVjdG9yRmFjdG9yeTogKGlucHV0czogc3RyaW5nW10pID0+IFRMb2FkZXJDb25zdHJ1Y3Rvcixcblx0aW5wdXRzOiAoKSA9PiBUVXJsLFxuXHR7XG5cdFx0ZXh0ZW5zaW9ucyxcblx0XHRvblByb2dyZXNzLFxuXHRcdG9uTG9hZCxcblx0XHRpbmplY3Rvcixcblx0fToge1xuXHRcdGV4dGVuc2lvbnM/OiBOZ3RMb2FkZXJFeHRlbnNpb25zPFRMb2FkZXJDb25zdHJ1Y3Rvcj47XG5cdFx0b25Qcm9ncmVzcz86IChldmVudDogUHJvZ3Jlc3NFdmVudCkgPT4gdm9pZDtcblx0XHRvbkxvYWQ/OiAoZGF0YTogTm9JbmZlcjxUUmV0dXJuPikgPT4gdm9pZDtcblx0XHRpbmplY3Rvcj86IEluamVjdG9yO1xuXHR9ID0ge30sXG4pOiBTaWduYWw8Tmd0TG9hZGVyUmVzdWx0czxUVXJsLCBOZ3RCcmFuY2hpbmdSZXR1cm48VFJldHVybiwgTmd0R0xURkxpa2UsIE5ndEdMVEZMaWtlICYgTmd0T2JqZWN0TWFwPj4gfCBudWxsPiB7XG5cdHJldHVybiBhc3NlcnRJbmplY3RvcihfaW5qZWN0TG9hZGVyLCBpbmplY3RvciwgKCkgPT4ge1xuXHRcdGNvbnN0IGF1dG9FZmZlY3QgPSBpbmplY3RBdXRvRWZmZWN0KCk7XG5cdFx0Y29uc3QgcmVzcG9uc2UgPSBzaWduYWw8Tmd0TG9hZGVyUmVzdWx0czxcblx0XHRcdFRVcmwsXG5cdFx0XHROZ3RCcmFuY2hpbmdSZXR1cm48VFJldHVybiwgTmd0R0xURkxpa2UsIE5ndEdMVEZMaWtlICYgTmd0T2JqZWN0TWFwPlxuXHRcdD4gfCBudWxsPihudWxsKTtcblxuXHRcdGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG5cdFx0XHRjb25zdCBlZmZlY3RvciA9IGxvYWQobG9hZGVyQ29uc3RydWN0b3JGYWN0b3J5LCBpbnB1dHMsIHtcblx0XHRcdFx0ZXh0ZW5zaW9ucyxcblx0XHRcdFx0b25Qcm9ncmVzcyxcblx0XHRcdFx0b25Mb2FkOiBvbkxvYWQgYXMgKGRhdGE6IHVua25vd24pID0+IHZvaWQsXG5cdFx0XHR9KTtcblx0XHRcdGF1dG9FZmZlY3QoXG5cdFx0XHRcdCgpID0+IHtcblx0XHRcdFx0XHRjb25zdCBvcmlnaW5hbFVybHMgPSBpbnB1dHMoKTtcblx0XHRcdFx0XHRjb25zdCBjYWNoZWRFZmZlY3QgPSBlZmZlY3RvcigpO1xuXHRcdFx0XHRcdGlmIChjYWNoZWRFZmZlY3QgPT09IG51bGwpIHtcblx0XHRcdFx0XHRcdHJlc3BvbnNlLnNldChudWxsKTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0UHJvbWlzZS5hbGwoY2FjaGVkRWZmZWN0KS50aGVuKChyZXN1bHRzKSA9PiB7XG5cdFx0XHRcdFx0XHRcdHJlc3BvbnNlLnVwZGF0ZSgoKSA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0aWYgKEFycmF5LmlzQXJyYXkob3JpZ2luYWxVcmxzKSkgcmV0dXJuIHJlc3VsdHM7XG5cdFx0XHRcdFx0XHRcdFx0aWYgKHR5cGVvZiBvcmlnaW5hbFVybHMgPT09ICdzdHJpbmcnKSByZXR1cm4gcmVzdWx0c1swXTtcblx0XHRcdFx0XHRcdFx0XHRjb25zdCBrZXlzID0gT2JqZWN0LmtleXMob3JpZ2luYWxVcmxzKTtcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4ga2V5cy5yZWR1Y2UoXG5cdFx0XHRcdFx0XHRcdFx0XHQocmVzdWx0LCBrZXkpID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0KHJlc3VsdCBhcyBOZ3RBbnlSZWNvcmQpW2tleV0gPSByZXN1bHRzW2tleXMuaW5kZXhPZihrZXkpXTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIHJlc3VsdDtcblx0XHRcdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdFx0XHR7fSBhcyB7IFtrZXkgaW4ga2V5b2YgVFVybF06IE5ndEJyYW5jaGluZ1JldHVybjxUUmV0dXJuLCBOZ3RHTFRGTGlrZSwgTmd0R0xURkxpa2UgJiBOZ3RPYmplY3RNYXA+IH0sXG5cdFx0XHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0sXG5cdFx0XHRcdHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcblx0XHRcdCk7XG5cdFx0fSk7XG5cblx0XHRyZXR1cm4gcmVzcG9uc2UuYXNSZWFkb25seSgpO1xuXHR9KTtcbn1cblxuX2luamVjdExvYWRlci5wcmVsb2FkID0gPFxuXHRURGF0YSxcblx0VFVybCBleHRlbmRzIHN0cmluZyB8IHN0cmluZ1tdIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPixcblx0VExvYWRlckNvbnN0cnVjdG9yIGV4dGVuZHMgTmd0TG9hZGVyUHJvdG88VERhdGE+LFxuPihcblx0bG9hZGVyQ29uc3RydWN0b3JGYWN0b3J5OiAoaW5wdXRzOiBzdHJpbmdbXSkgPT4gVExvYWRlckNvbnN0cnVjdG9yLFxuXHRpbnB1dHM6ICgpID0+IFRVcmwsXG5cdGV4dGVuc2lvbnM/OiBOZ3RMb2FkZXJFeHRlbnNpb25zPFRMb2FkZXJDb25zdHJ1Y3Rvcj4sXG5cdG9uTG9hZD86IChkYXRhOiBOb0luZmVyPFREYXRhPikgPT4gdm9pZCxcbikgPT4ge1xuXHRjb25zdCBlZmZlY3RzID0gbG9hZChsb2FkZXJDb25zdHJ1Y3RvckZhY3RvcnksIGlucHV0cywgeyBleHRlbnNpb25zLCBvbkxvYWQgfSkoKTtcblx0aWYgKGVmZmVjdHMpIHtcblx0XHR2b2lkIFByb21pc2UuYWxsKGVmZmVjdHMpO1xuXHR9XG59O1xuXG5faW5qZWN0TG9hZGVyLmRlc3Ryb3kgPSAoKSA9PiB7XG5cdGNhY2hlZC5jbGVhcigpO1xufTtcblxuX2luamVjdExvYWRlci5jbGVhciA9ICh1cmxzOiBzdHJpbmcgfCBzdHJpbmdbXSkgPT4ge1xuXHRjb25zdCB1cmxUb0NsZWFyID0gQXJyYXkuaXNBcnJheSh1cmxzKSA/IHVybHMgOiBbdXJsc107XG5cdHVybFRvQ2xlYXIuZm9yRWFjaCgodXJsKSA9PiB7XG5cdFx0Y2FjaGVkLmRlbGV0ZSh1cmwpO1xuXHR9KTtcbn07XG5cbmV4cG9ydCB0eXBlIE5ndEluamVjdGVkTG9hZGVyID0gdHlwZW9mIF9pbmplY3RMb2FkZXI7XG5leHBvcnQgY29uc3QgaW5qZWN0TG9hZGVyOiBOZ3RJbmplY3RlZExvYWRlciA9IF9pbmplY3RMb2FkZXI7XG4iXX0=
|
package/esm2022/lib/loop.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createInjectionToken } from 'ngxtension/create-injection-token';
|
|
2
|
-
|
|
2
|
+
export const roots = new Map();
|
|
3
3
|
function createSubs(callback, subs) {
|
|
4
4
|
const sub = { callback };
|
|
5
5
|
subs.add(sub);
|
|
@@ -41,7 +41,7 @@ export function flushGlobalEffects(type, timestamp) {
|
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
function render(timestamp, store, frame) {
|
|
44
|
-
const state = store.
|
|
44
|
+
const state = store.snapshot;
|
|
45
45
|
// Run local effects
|
|
46
46
|
let delta = state.clock.getDelta();
|
|
47
47
|
// In frameloop='never' mode, clock times are updated using the provided timestamp
|
|
@@ -50,11 +50,11 @@ function render(timestamp, store, frame) {
|
|
|
50
50
|
state.clock.oldTime = state.clock.elapsedTime;
|
|
51
51
|
state.clock.elapsedTime = timestamp;
|
|
52
52
|
}
|
|
53
|
-
// Call subscribers (
|
|
53
|
+
// Call subscribers (beforeRender)
|
|
54
54
|
const subscribers = state.internal.subscribers;
|
|
55
55
|
for (let i = 0; i < subscribers.length; i++) {
|
|
56
56
|
const subscription = subscribers[i];
|
|
57
|
-
subscription.callback({ ...subscription.store.
|
|
57
|
+
subscription.callback({ ...subscription.store.snapshot, delta, frame });
|
|
58
58
|
}
|
|
59
59
|
// Render content
|
|
60
60
|
if (!state.internal.priority && state.gl.render)
|
|
@@ -67,6 +67,7 @@ function createLoop(roots) {
|
|
|
67
67
|
let running = false;
|
|
68
68
|
let repeat;
|
|
69
69
|
let frame;
|
|
70
|
+
let beforeRenderInProgress = false;
|
|
70
71
|
function loop(timestamp) {
|
|
71
72
|
frame = requestAnimationFrame(loop);
|
|
72
73
|
running = true;
|
|
@@ -74,8 +75,9 @@ function createLoop(roots) {
|
|
|
74
75
|
// Run effects
|
|
75
76
|
flushGlobalEffects('before', timestamp);
|
|
76
77
|
// Render all roots
|
|
78
|
+
beforeRenderInProgress = true;
|
|
77
79
|
for (const root of roots.values()) {
|
|
78
|
-
const state = root.
|
|
80
|
+
const state = root.snapshot;
|
|
79
81
|
// If the frameloop is invalidated, do not run another frame
|
|
80
82
|
if (state.internal.active &&
|
|
81
83
|
(state.frameloop === 'always' || state.internal.frames > 0) &&
|
|
@@ -83,6 +85,7 @@ function createLoop(roots) {
|
|
|
83
85
|
repeat += render(timestamp, root);
|
|
84
86
|
}
|
|
85
87
|
}
|
|
88
|
+
beforeRenderInProgress = false;
|
|
86
89
|
// Run after-effects
|
|
87
90
|
flushGlobalEffects('after', timestamp);
|
|
88
91
|
// Stop the loop if nothing invalidates it
|
|
@@ -95,13 +98,26 @@ function createLoop(roots) {
|
|
|
95
98
|
}
|
|
96
99
|
}
|
|
97
100
|
function invalidate(store, frames = 1) {
|
|
98
|
-
const state = store?.
|
|
101
|
+
const state = store?.snapshot;
|
|
99
102
|
if (!state)
|
|
100
103
|
return roots.forEach((root) => invalidate(root, frames));
|
|
101
104
|
if (state.gl.xr?.isPresenting || !state.internal.active || state.frameloop === 'never')
|
|
102
105
|
return;
|
|
103
|
-
|
|
104
|
-
|
|
106
|
+
if (frames > 1) {
|
|
107
|
+
// legacy support for people using frames parameters
|
|
108
|
+
// Increase frames, do not go higher than 60
|
|
109
|
+
state.internal.frames = Math.min(60, state.internal.frames + frames);
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
if (beforeRenderInProgress) {
|
|
113
|
+
//called from within a beforeRender, it means the user wants an additional frame
|
|
114
|
+
state.internal.frames = 2;
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
//the user need a new frame, no need to increment further than 1
|
|
118
|
+
state.internal.frames = 1;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
105
121
|
// If the render-loop isn't active, start it
|
|
106
122
|
if (!running) {
|
|
107
123
|
running = true;
|
|
@@ -111,8 +127,7 @@ function createLoop(roots) {
|
|
|
111
127
|
function advance(timestamp, runGlobalEffects = true, store, frame) {
|
|
112
128
|
if (runGlobalEffects)
|
|
113
129
|
flushGlobalEffects('before', timestamp);
|
|
114
|
-
|
|
115
|
-
if (!state)
|
|
130
|
+
if (!store)
|
|
116
131
|
for (const root of roots.values())
|
|
117
132
|
render(timestamp, root);
|
|
118
133
|
else
|
|
@@ -120,19 +135,7 @@ function createLoop(roots) {
|
|
|
120
135
|
if (runGlobalEffects)
|
|
121
136
|
flushGlobalEffects('after', timestamp);
|
|
122
137
|
}
|
|
123
|
-
return {
|
|
124
|
-
loop,
|
|
125
|
-
/**
|
|
126
|
-
* Invalidates the view, requesting a frame to be rendered. Will globally invalidate unless passed a root's state.
|
|
127
|
-
* @see https://docs.pmnd.rs/react-three-fiber/api/additional-exports#invalidate
|
|
128
|
-
*/
|
|
129
|
-
invalidate,
|
|
130
|
-
/**
|
|
131
|
-
* Advances the frameloop and runs render effects, useful for when manually rendering via `frameloop="never"`.
|
|
132
|
-
* @see https://docs.pmnd.rs/react-three-fiber/api/additional-exports#advance
|
|
133
|
-
*/
|
|
134
|
-
advance,
|
|
135
|
-
};
|
|
138
|
+
return { loop, invalidate, advance };
|
|
136
139
|
}
|
|
137
|
-
export const [
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9vcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2xvb3AudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDekUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQztBQU9oQyxTQUFTLFVBQVUsQ0FBQyxRQUFpQyxFQUFFLElBQWtCO0lBQ3hFLE1BQU0sR0FBRyxHQUFHLEVBQUUsUUFBUSxFQUFFLENBQUM7SUFDekIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNkLE9BQU8sR0FBRyxFQUFFLENBQUMsS0FBSyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3BDLENBQUM7QUFFRCxNQUFNLGFBQWEsR0FBaUIsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUM5QyxNQUFNLGtCQUFrQixHQUFpQixJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQ25ELE1BQU0saUJBQWlCLEdBQWlCLElBQUksR0FBRyxFQUFFLENBQUM7QUFFbEQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUMsUUFBaUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQztBQUVwRzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxRQUFpQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLGtCQUFrQixDQUFDLENBQUM7QUFFOUc7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLENBQUMsUUFBaUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0FBRXRHLFNBQVMsR0FBRyxDQUFDLE9BQXFCLEVBQUUsU0FBaUI7SUFDcEQsSUFBSSxD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aW9uVG9rZW4gfSBmcm9tICduZ3h0ZW5zaW9uL2NyZWF0ZS1pbmplY3Rpb24tdG9rZW4nO1xuaW1wb3J0IHsgcm9vdHMgfSBmcm9tICcuL3Jvb3RzJztcbmltcG9ydCB0eXBlIHsgTmd0U3RhdGUgfSBmcm9tICcuL3N0b3JlJztcbmltcG9ydCB0eXBlIHsgTmd0U2lnbmFsU3RvcmUgfSBmcm9tICcuL3V0aWxzL3NpZ25hbC1zdG9yZSc7XG5cbmV4cG9ydCB0eXBlIE5ndEdsb2JhbFJlbmRlckNhbGxiYWNrID0gKHRpbWVTdGFtcDogbnVtYmVyKSA9PiB2b2lkO1xudHlwZSBTdWJJdGVtID0geyBjYWxsYmFjazogTmd0R2xvYmFsUmVuZGVyQ2FsbGJhY2sgfTtcblxuZnVuY3Rpb24gY3JlYXRlU3VicyhjYWxsYmFjazogTmd0R2xvYmFsUmVuZGVyQ2FsbGJhY2ssIHN1YnM6IFNldDxTdWJJdGVtPik6ICgpID0+IHZvaWQge1xuXHRjb25zdCBzdWIgPSB7IGNhbGxiYWNrIH07XG5cdHN1YnMuYWRkKHN1Yik7XG5cdHJldHVybiAoKSA9PiB2b2lkIHN1YnMuZGVsZXRlKHN1Yik7XG59XG5cbmNvbnN0IGdsb2JhbEVmZmVjdHM6IFNldDxTdWJJdGVtPiA9IG5ldyBTZXQoKTtcbmNvbnN0IGdsb2JhbEFmdGVyRWZmZWN0czogU2V0PFN1Ykl0ZW0+ID0gbmV3IFNldCgpO1xuY29uc3QgZ2xvYmFsVGFpbEVmZmVjdHM6IFNldDxTdWJJdGVtPiA9IG5ldyBTZXQoKTtcblxuLyoqXG4gKiBBZGRzIGEgZ2xvYmFsIHJlbmRlciBjYWxsYmFjayB3aGljaCBpcyBjYWxsZWQgZWFjaCBmcmFtZS5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLnBtbmQucnMvcmVhY3QtdGhyZWUtZmliZXIvYXBpL2FkZGl0aW9uYWwtZXhwb3J0cyNhZGRFZmZlY3RcbiAqL1xuZXhwb3J0IGNvbnN0IGFkZEVmZmVjdCA9IChjYWxsYmFjazogTmd0R2xvYmFsUmVuZGVyQ2FsbGJhY2spID0+IGNyZWF0ZVN1YnMoY2FsbGJhY2ssIGdsb2JhbEVmZmVjdHMpO1xuXG4vKipcbiAqIEFkZHMgYSBnbG9iYWwgYWZ0ZXItcmVuZGVyIGNhbGxiYWNrIHdoaWNoIGlzIGNhbGxlZCBlYWNoIGZyYW1lLlxuICogQHNlZSBodHRwczovL2RvY3MucG1uZC5ycy9yZWFjdC10aHJlZS1maWJlci9hcGkvYWRkaXRpb25hbC1leHBvcnRzI2FkZEFmdGVyRWZmZWN0XG4gKi9cbmV4cG9ydCBjb25zdCBhZGRBZnRlckVmZmVjdCA9IChjYWxsYmFjazogTmd0R2xvYmFsUmVuZGVyQ2FsbGJhY2spID0+IGNyZWF0ZVN1YnMoY2FsbGJhY2ssIGdsb2JhbEFmdGVyRWZmZWN0cyk7XG5cbi8qKlxuICogQWRkcyBhIGdsb2JhbCBjYWxsYmFjayB3aGljaCBpcyBjYWxsZWQgd2hlbiByZW5kZXJpbmcgc3RvcHMuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5wbW5kLnJzL3JlYWN0LXRocmVlLWZpYmVyL2FwaS9hZGRpdGlvbmFsLWV4cG9ydHMjYWRkVGFpbFxuICovXG5leHBvcnQgY29uc3QgYWRkVGFpbCA9IChjYWxsYmFjazogTmd0R2xvYmFsUmVuZGVyQ2FsbGJhY2spID0+IGNyZWF0ZVN1YnMoY2FsbGJhY2ssIGdsb2JhbFRhaWxFZmZlY3RzKTtcblxuZnVuY3Rpb24gcnVuKGVmZmVjdHM6IFNldDxTdWJJdGVtPiwgdGltZXN0YW1wOiBudW1iZXIpIHtcblx0aWYgKCFlZmZlY3RzLnNpemUpIHJldHVybjtcblx0Zm9yIChjb25zdCB7IGNhbGxiYWNrIH0gb2YgZWZmZWN0cy52YWx1ZXMoKSkge1xuXHRcdGNhbGxiYWNrKHRpbWVzdGFtcCk7XG5cdH1cbn1cblxuZXhwb3J0IHR5cGUgTmd0R2xvYmFsRWZmZWN0VHlwZSA9ICdiZWZvcmUnIHwgJ2FmdGVyJyB8ICd0YWlsJztcblxuZXhwb3J0IGZ1bmN0aW9uIGZsdXNoR2xvYmFsRWZmZWN0cyh0eXBlOiBOZ3RHbG9iYWxFZmZlY3RUeXBlLCB0aW1lc3RhbXA6IG51bWJlcik6IHZvaWQge1xuXHRzd2l0Y2ggKHR5cGUpIHtcblx0XHRjYXNlICdiZWZvcmUnOlxuXHRcdFx0cmV0dXJuIHJ1bihnbG9iYWxFZmZlY3RzLCB0aW1lc3RhbXApO1xuXHRcdGNhc2UgJ2FmdGVyJzpcblx0XHRcdHJldHVybiBydW4oZ2xvYmFsQWZ0ZXJFZmZlY3RzLCB0aW1lc3RhbXApO1xuXHRcdGNhc2UgJ3RhaWwnOlxuXHRcdFx0cmV0dXJuIHJ1bihnbG9iYWxUYWlsRWZmZWN0cywgdGltZXN0YW1wKTtcblx0fVxufVxuXG5mdW5jdGlvbiByZW5kZXIodGltZXN0YW1wOiBudW1iZXIsIHN0b3JlOiBOZ3RTaWduYWxTdG9yZTxOZ3RTdGF0ZT4sIGZyYW1lPzogWFJGcmFtZSkge1xuXHRjb25zdCBzdGF0ZSA9IHN0b3JlLmdldCgpO1xuXHQvLyBSdW4gbG9jYWwgZWZmZWN0c1xuXHRsZXQgZGVsdGEgPSBzdGF0ZS5jbG9jay5nZXREZWx0YSgpO1xuXHQvLyBJbiBmcmFtZWxvb3A9J25ldmVyJyBtb2RlLCBjbG9jayB0aW1lcyBhcmUgdXBkYXRlZCB1c2luZyB0aGUgcHJvdmlkZWQgdGltZXN0YW1wXG5cdGlmIChzdGF0ZS5mcmFtZWxvb3AgPT09ICduZXZlcicgJiYgdHlwZW9mIHRpbWVzdGFtcCA9PT0gJ251bWJlcicpIHtcblx0XHRkZWx0YSA9IHRpbWVzdGFtcCAtIHN0YXRlLmNsb2NrLmVsYXBzZWRUaW1lO1xuXHRcdHN0YXRlLmNsb2NrLm9sZFRpbWUgPSBzdGF0ZS5jbG9jay5lbGFwc2VkVGltZTtcblx0XHRzdGF0ZS5jbG9jay5lbGFwc2VkVGltZSA9IHRpbWVzdGFtcDtcblx0fVxuXHQvLyBDYWxsIHN1YnNjcmliZXJzICh1c2VGcmFtZSlcblx0Y29uc3Qgc3Vic2NyaWJlcnMgPSBzdGF0ZS5pbnRlcm5hbC5zdWJzY3JpYmVycztcblx0Zm9yIChsZXQgaSA9IDA7IGkgPCBzdWJzY3JpYmVycy5sZW5ndGg7IGkrKykge1xuXHRcdGNvbnN0IHN1YnNjcmlwdGlvbiA9IHN1YnNjcmliZXJzW2ldO1xuXHRcdHN1YnNjcmlwdGlvbi5jYWxsYmFjayh7IC4uLnN1YnNjcmlwdGlvbi5zdG9yZS5nZXQoKSwgZGVsdGEsIGZyYW1lIH0pO1xuXHR9XG5cdC8vIFJlbmRlciBjb250ZW50XG5cdGlmICghc3RhdGUuaW50ZXJuYWwucHJpb3JpdHkgJiYgc3RhdGUuZ2wucmVuZGVyKSBzdGF0ZS5nbC5yZW5kZXIoc3RhdGUuc2NlbmUsIHN0YXRlLmNhbWVyYSk7XG5cdC8vIERlY3JlYXNlIGZyYW1lIGNvdW50XG5cdHN0YXRlLmludGVybmFsLmZyYW1lcyA9IE1hdGgubWF4KDAsIHN0YXRlLmludGVybmFsLmZyYW1lcyAtIDEpO1xuXHRyZXR1cm4gc3RhdGUuZnJhbWVsb29wID09PSAnYWx3YXlzJyA/IDEgOiBzdGF0ZS5pbnRlcm5hbC5mcmFtZXM7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUxvb3A8VENhbnZhcz4ocm9vdHM6IE1hcDxUQ2FudmFzLCBOZ3RTaWduYWxTdG9yZTxOZ3RTdGF0ZT4+KSB7XG5cdGxldCBydW5uaW5nID0gZmFsc2U7XG5cdGxldCByZXBlYXQ6IG51bWJlcjtcblx0bGV0IGZyYW1lOiBudW1iZXI7XG5cblx0ZnVuY3Rpb24gbG9vcCh0aW1lc3RhbXA6IG51bWJlcik6IHZvaWQge1xuXHRcdGZyYW1lID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGxvb3ApO1xuXHRcdHJ1bm5pbmcgPSB0cnVlO1xuXHRcdHJlcGVhdCA9IDA7XG5cblx0XHQvLyBSdW4gZWZmZWN0c1xuXHRcdGZsdXNoR2xvYmFsRWZmZWN0cygnYmVmb3JlJywgdGltZXN0YW1wKTtcblxuXHRcdC8vIFJlbmRlciBhbGwgcm9vdHNcblx0XHRmb3IgKGNvbnN0IHJvb3Qgb2Ygcm9vdHMudmFsdWVzKCkpIHtcblx0XHRcdGNvbnN0IHN0YXRlID0gcm9vdC5nZXQoKTtcblx0XHRcdC8vIElmIHRoZSBmcmFtZWxvb3AgaXMgaW52YWxpZGF0ZWQsIGRvIG5vdCBydW4gYW5vdGhlciBmcmFtZVxuXHRcdFx0aWYgKFxuXHRcdFx0XHRzdGF0ZS5pbnRlcm5hbC5hY3RpdmUgJiZcblx0XHRcdFx0KHN0YXRlLmZyYW1lbG9vcCA9PT0gJ2Fsd2F5cycgfHwgc3RhdGUuaW50ZXJuYWwuZnJhbWVzID4gMCkgJiZcblx0XHRcdFx0IXN0YXRlLmdsLnhyPy5pc1ByZXNlbnRpbmdcblx0XHRcdCkge1xuXHRcdFx0XHRyZXBlYXQgKz0gcmVuZGVyKHRpbWVzdGFtcCwgcm9vdCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gUnVuIGFmdGVyLWVmZmVjdHNcblx0XHRmbHVzaEdsb2JhbEVmZmVjdHMoJ2FmdGVyJywgdGltZXN0YW1wKTtcblxuXHRcdC8vIFN0b3AgdGhlIGxvb3AgaWYgbm90aGluZyBpbnZhbGlkYXRlcyBpdFxuXHRcdGlmIChyZXBlYXQgPT09IDApIHtcblx0XHRcdC8vIFRhaWwgY2FsbCBlZmZlY3RzLCB0aGV5IGFyZSBjYWxsZWQgd2hlbiByZW5kZXJpbmcgc3RvcHNcblx0XHRcdGZsdXNoR2xvYmFsRWZmZWN0cygndGFpbCcsIHRpbWVzdGFtcCk7XG5cblx0XHRcdC8vIEZsYWcgZW5kIG9mIG9wZXJhdGlvblxuXHRcdFx0cnVubmluZyA9IGZhbHNlO1xuXHRcdFx0cmV0dXJuIGNhbmNlbEFuaW1hdGlvbkZyYW1lKGZyYW1lKTtcblx0XHR9XG5cdH1cblxuXHRmdW5jdGlvbiBpbnZhbGlkYXRlKHN0b3JlPzogTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+LCBmcmFtZXMgPSAxKTogdm9pZCB7XG5cdFx0Y29uc3Qgc3RhdGUgPSBzdG9yZT8uZ2V0KCk7XG5cdFx0aWYgKCFzdGF0ZSkgcmV0dXJuIHJvb3RzLmZvckVhY2goKHJvb3QpID0+IGludmFsaWRhdGUocm9vdCwgZnJhbWVzKSk7XG5cdFx0aWYgKHN0YXRlLmdsLnhyPy5pc1ByZXNlbnRpbmcgfHwgIXN0YXRlLmludGVybmFsLmFjdGl2ZSB8fCBzdGF0ZS5mcmFtZWxvb3AgPT09ICduZXZlcicpIHJldHVybjtcblx0XHQvLyBJbmNyZWFzZSBmcmFtZXMsIGRvIG5vdCBnbyBoaWdoZXIgdGhhbiA2MFxuXHRcdHN0YXRlLmludGVybmFsLmZyYW1lcyA9IE1hdGgubWluKDYwLCBzdGF0ZS5pbnRlcm5hbC5mcmFtZXMgKyBmcmFtZXMpO1xuXHRcdC8vIElmIHRoZSByZW5kZXItbG9vcCBpc24ndCBhY3RpdmUsIHN0YXJ0IGl0XG5cdFx0aWYgKCFydW5uaW5nKSB7XG5cdFx0XHRydW5uaW5nID0gdHJ1ZTtcblx0XHRcdHJlcXVlc3RBbmltYXRpb25GcmFtZShsb29wKTtcblx0XHR9XG5cdH1cblxuXHRmdW5jdGlvbiBhZHZhbmNlKFxuXHRcdHRpbWVzdGFtcDogbnVtYmVyLFxuXHRcdHJ1bkdsb2JhbEVmZmVjdHM6IGJvb2xlYW4gPSB0cnVlLFxuXHRcdHN0b3JlPzogTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+LFxuXHRcdGZyYW1lPzogWFJGcmFtZSxcblx0KTogdm9pZCB7XG5cdFx0aWYgKHJ1bkdsb2JhbEVmZmVjdHMpIGZsdXNoR2xvYmFsRWZmZWN0cygnYmVmb3JlJywgdGltZXN0YW1wKTtcblx0XHRjb25zdCBzdGF0ZSA9IHN0b3JlPy5nZXQoKTtcblx0XHRpZiAoIXN0YXRlKSBmb3IgKGNvbnN0IHJvb3Qgb2Ygcm9vdHMudmFsdWVzKCkpIHJlbmRlcih0aW1lc3RhbXAsIHJvb3QpO1xuXHRcdGVsc2UgcmVuZGVyKHRpbWVzdGFtcCwgc3RvcmUhLCBmcmFtZSk7XG5cdFx0aWYgKHJ1bkdsb2JhbEVmZmVjdHMpIGZsdXNoR2xvYmFsRWZmZWN0cygnYWZ0ZXInLCB0aW1lc3RhbXApO1xuXHR9XG5cblx0cmV0dXJuIHtcblx0XHRsb29wLFxuXHRcdC8qKlxuXHRcdCAqIEludmFsaWRhdGVzIHRoZSB2aWV3LCByZXF1ZXN0aW5nIGEgZnJhbWUgdG8gYmUgcmVuZGVyZWQuIFdpbGwgZ2xvYmFsbHkgaW52YWxpZGF0ZSB1bmxlc3MgcGFzc2VkIGEgcm9vdCdzIHN0YXRlLlxuXHRcdCAqIEBzZWUgaHR0cHM6Ly9kb2NzLnBtbmQucnMvcmVhY3QtdGhyZWUtZmliZXIvYXBpL2FkZGl0aW9uYWwtZXhwb3J0cyNpbnZhbGlkYXRlXG5cdFx0ICovXG5cdFx0aW52YWxpZGF0ZSxcblx0XHQvKipcblx0XHQgKiBBZHZhbmNlcyB0aGUgZnJhbWVsb29wIGFuZCBydW5zIHJlbmRlciBlZmZlY3RzLCB1c2VmdWwgZm9yIHdoZW4gbWFudWFsbHkgcmVuZGVyaW5nIHZpYSBgZnJhbWVsb29wPVwibmV2ZXJcImAuXG5cdFx0ICogQHNlZSBodHRwczovL2RvY3MucG1uZC5ycy9yZWFjdC10aHJlZS1maWJlci9hcGkvYWRkaXRpb25hbC1leHBvcnRzI2FkdmFuY2Vcblx0XHQgKi9cblx0XHRhZHZhbmNlLFxuXHR9O1xufVxuXG5leHBvcnQgY29uc3QgW2luamVjdE5ndExvb3AsICwgTkdUX0xPT1BdID0gY3JlYXRlSW5qZWN0aW9uVG9rZW4oKCkgPT4gY3JlYXRlTG9vcChyb290cykpO1xuXG5leHBvcnQgdHlwZSBOZ3RMb29wID0gUmV0dXJuVHlwZTx0eXBlb2YgY3JlYXRlTG9vcD47XG4iXX0=
|
|
140
|
+
export const [injectLoop] = createInjectionToken(() => createLoop(roots));
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9vcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2xvb3AudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFJekUsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxFQUE4QyxDQUFDO0FBSTNFLFNBQVMsVUFBVSxDQUFDLFFBQWlDLEVBQUUsSUFBa0I7SUFDeEUsTUFBTSxHQUFHLEdBQUcsRUFBRSxRQUFRLEVBQUUsQ0FBQztJQUN6QixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2QsT0FBTyxHQUFHLEVBQUUsQ0FBQyxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDcEMsQ0FBQztBQUVELE1BQU0sYUFBYSxHQUFpQixJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQzlDLE1BQU0sa0JBQWtCLEdBQWlCLElBQUksR0FBRyxFQUFFLENBQUM7QUFDbkQsTUFBTSxpQkFBaUIsR0FBaUIsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUVsRDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxRQUFpQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0FBRXBHOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLFFBQWlDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztBQUU5Rzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxRQUFpQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLGlCQUFpQixDQUFDLENBQUM7QUFFdEcsU0FBUyxHQUFHLENBQUMsT0FBcUIsRUFBRSxTQUFpQjtJ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QUFJLENBQUMsQ0FBQzs7WUFDbEUsTUFBTSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDckMsSUFBSSxnQkFBZ0I7WUFBRSxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELE9BQU8sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxDQUFDO0FBQ3RDLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLG9CQUFvQixDQUFDLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlSW5qZWN0aW9uVG9rZW4gfSBmcm9tICduZ3h0ZW5zaW9uL2NyZWF0ZS1pbmplY3Rpb24tdG9rZW4nO1xuaW1wb3J0IHsgTmd0Q2FudmFzRWxlbWVudCwgTmd0R2xvYmFsUmVuZGVyQ2FsbGJhY2ssIE5ndFN0YXRlIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBOZ3RTaWduYWxTdG9yZSB9IGZyb20gJy4vdXRpbHMvc2lnbmFsLXN0b3JlJztcblxuZXhwb3J0IGNvbnN0IHJvb3RzID0gbmV3IE1hcDxOZ3RDYW52YXNFbGVtZW50LCBOZ3RTaWduYWxTdG9yZTxOZ3RTdGF0ZT4+KCk7XG5cbnR5cGUgU3ViSXRlbSA9IHsgY2FsbGJhY2s6IE5ndEdsb2JhbFJlbmRlckNhbGxiYWNrIH07XG5cbmZ1bmN0aW9uIGNyZWF0ZVN1YnMoY2FsbGJhY2s6IE5ndEdsb2JhbFJlbmRlckNhbGxiYWNrLCBzdWJzOiBTZXQ8U3ViSXRlbT4pOiAoKSA9PiB2b2lkIHtcblx0Y29uc3Qgc3ViID0geyBjYWxsYmFjayB9O1xuXHRzdWJzLmFkZChzdWIpO1xuXHRyZXR1cm4gKCkgPT4gdm9pZCBzdWJzLmRlbGV0ZShzdWIpO1xufVxuXG5jb25zdCBnbG9iYWxFZmZlY3RzOiBTZXQ8U3ViSXRlbT4gPSBuZXcgU2V0KCk7XG5jb25zdCBnbG9iYWxBZnRlckVmZmVjdHM6IFNldDxTdWJJdGVtPiA9IG5ldyBTZXQoKTtcbmNvbnN0IGdsb2JhbFRhaWxFZmZlY3RzOiBTZXQ8U3ViSXRlbT4gPSBuZXcgU2V0KCk7XG5cbi8qKlxuICogQWRkcyBhIGdsb2JhbCByZW5kZXIgY2FsbGJhY2sgd2hpY2ggaXMgY2FsbGVkIGVhY2ggZnJhbWUuXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5wbW5kLnJzL3JlYWN0LXRocmVlLWZpYmVyL2FwaS9hZGRpdGlvbmFsLWV4cG9ydHMjYWRkRWZmZWN0XG4gKi9cbmV4cG9ydCBjb25zdCBhZGRFZmZlY3QgPSAoY2FsbGJhY2s6IE5ndEdsb2JhbFJlbmRlckNhbGxiYWNrKSA9PiBjcmVhdGVTdWJzKGNhbGxiYWNrLCBnbG9iYWxFZmZlY3RzKTtcblxuLyoqXG4gKiBBZGRzIGEgZ2xvYmFsIGFmdGVyLXJlbmRlciBjYWxsYmFjayB3aGljaCBpcyBjYWxsZWQgZWFjaCBmcmFtZS5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLnBtbmQucnMvcmVhY3QtdGhyZWUtZmliZXIvYXBpL2FkZGl0aW9uYWwtZXhwb3J0cyNhZGRBZnRlckVmZmVjdFxuICovXG5leHBvcnQgY29uc3QgYWRkQWZ0ZXJFZmZlY3QgPSAoY2FsbGJhY2s6IE5ndEdsb2JhbFJlbmRlckNhbGxiYWNrKSA9PiBjcmVhdGVTdWJzKGNhbGxiYWNrLCBnbG9iYWxBZnRlckVmZmVjdHMpO1xuXG4vKipcbiAqIEFkZHMgYSBnbG9iYWwgY2FsbGJhY2sgd2hpY2ggaXMgY2FsbGVkIHdoZW4gcmVuZGVyaW5nIHN0b3BzLlxuICogQHNlZSBodHRwczovL2RvY3MucG1uZC5ycy9yZWFjdC10aHJlZS1maWJlci9hcGkvYWRkaXRpb25hbC1leHBvcnRzI2FkZFRhaWxcbiAqL1xuZXhwb3J0IGNvbnN0IGFkZFRhaWwgPSAoY2FsbGJhY2s6IE5ndEdsb2JhbFJlbmRlckNhbGxiYWNrKSA9PiBjcmVhdGVTdWJzKGNhbGxiYWNrLCBnbG9iYWxUYWlsRWZmZWN0cyk7XG5cbmZ1bmN0aW9uIHJ1bihlZmZlY3RzOiBTZXQ8U3ViSXRlbT4sIHRpbWVzdGFtcDogbnVtYmVyKSB7XG5cdGlmICghZWZmZWN0cy5zaXplKSByZXR1cm47XG5cdGZvciAoY29uc3QgeyBjYWxsYmFjayB9IG9mIGVmZmVjdHMudmFsdWVzKCkpIHtcblx0XHRjYWxsYmFjayh0aW1lc3RhbXApO1xuXHR9XG59XG5cbmV4cG9ydCB0eXBlIE5ndEdsb2JhbEVmZmVjdFR5cGUgPSAnYmVmb3JlJyB8ICdhZnRlcicgfCAndGFpbCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBmbHVzaEdsb2JhbEVmZmVjdHModHlwZTogTmd0R2xvYmFsRWZmZWN0VHlwZSwgdGltZXN0YW1wOiBudW1iZXIpOiB2b2lkIHtcblx0c3dpdGNoICh0eXBlKSB7XG5cdFx0Y2FzZSAnYmVmb3JlJzpcblx0XHRcdHJldHVybiBydW4oZ2xvYmFsRWZmZWN0cywgdGltZXN0YW1wKTtcblx0XHRjYXNlICdhZnRlcic6XG5cdFx0XHRyZXR1cm4gcnVuKGdsb2JhbEFmdGVyRWZmZWN0cywgdGltZXN0YW1wKTtcblx0XHRjYXNlICd0YWlsJzpcblx0XHRcdHJldHVybiBydW4oZ2xvYmFsVGFpbEVmZmVjdHMsIHRpbWVzdGFtcCk7XG5cdH1cbn1cblxuZnVuY3Rpb24gcmVuZGVyKHRpbWVzdGFtcDogbnVtYmVyLCBzdG9yZTogTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+LCBmcmFtZT86IFhSRnJhbWUpIHtcblx0Y29uc3Qgc3RhdGUgPSBzdG9yZS5zbmFwc2hvdDtcblx0Ly8gUnVuIGxvY2FsIGVmZmVjdHNcblx0bGV0IGRlbHRhID0gc3RhdGUuY2xvY2suZ2V0RGVsdGEoKTtcblx0Ly8gSW4gZnJhbWVsb29wPSduZXZlcicgbW9kZSwgY2xvY2sgdGltZXMgYXJlIHVwZGF0ZWQgdXNpbmcgdGhlIHByb3ZpZGVkIHRpbWVzdGFtcFxuXHRpZiAoc3RhdGUuZnJhbWVsb29wID09PSAnbmV2ZXInICYmIHR5cGVvZiB0aW1lc3RhbXAgPT09ICdudW1iZXInKSB7XG5cdFx0ZGVsdGEgPSB0aW1lc3RhbXAgLSBzdGF0ZS5jbG9jay5lbGFwc2VkVGltZTtcblx0XHRzdGF0ZS5jbG9jay5vbGRUaW1lID0gc3RhdGUuY2xvY2suZWxhcHNlZFRpbWU7XG5cdFx0c3RhdGUuY2xvY2suZWxhcHNlZFRpbWUgPSB0aW1lc3RhbXA7XG5cdH1cblx0Ly8gQ2FsbCBzdWJzY3JpYmVycyAoYmVmb3JlUmVuZGVyKVxuXHRjb25zdCBzdWJzY3JpYmVycyA9IHN0YXRlLmludGVybmFsLnN1YnNjcmliZXJzO1xuXHRmb3IgKGxldCBpID0gMDsgaSA8IHN1YnNjcmliZXJzLmxlbmd0aDsgaSsrKSB7XG5cdFx0Y29uc3Qgc3Vic2NyaXB0aW9uID0gc3Vic2NyaWJlcnNbaV07XG5cdFx0c3Vic2NyaXB0aW9uLmNhbGxiYWNrKHsgLi4uc3Vic2NyaXB0aW9uLnN0b3JlLnNuYXBzaG90LCBkZWx0YSwgZnJhbWUgfSk7XG5cdH1cblx0Ly8gUmVuZGVyIGNvbnRlbnRcblx0aWYgKCFzdGF0ZS5pbnRlcm5hbC5wcmlvcml0eSAmJiBzdGF0ZS5nbC5yZW5kZXIpIHN0YXRlLmdsLnJlbmRlcihzdGF0ZS5zY2VuZSwgc3RhdGUuY2FtZXJhKTtcblx0Ly8gRGVjcmVhc2UgZnJhbWUgY291bnRcblx0c3RhdGUuaW50ZXJuYWwuZnJhbWVzID0gTWF0aC5tYXgoMCwgc3RhdGUuaW50ZXJuYWwuZnJhbWVzIC0gMSk7XG5cdHJldHVybiBzdGF0ZS5mcmFtZWxvb3AgPT09ICdhbHdheXMnID8gMSA6IHN0YXRlLmludGVybmFsLmZyYW1lcztcbn1cblxuZnVuY3Rpb24gY3JlYXRlTG9vcDxUQ2FudmFzPihyb290czogTWFwPFRDYW52YXMsIE5ndFNpZ25hbFN0b3JlPE5ndFN0YXRlPj4pIHtcblx0bGV0IHJ1bm5pbmcgPSBmYWxzZTtcblx0bGV0IHJlcGVhdDogbnVtYmVyO1xuXHRsZXQgZnJhbWU6IG51bWJlcjtcblx0bGV0IGJlZm9yZVJlbmRlckluUHJvZ3Jlc3MgPSBmYWxzZTtcblxuXHRmdW5jdGlvbiBsb29wKHRpbWVzdGFtcDogbnVtYmVyKTogdm9pZCB7XG5cdFx0ZnJhbWUgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUobG9vcCk7XG5cdFx0cnVubmluZyA9IHRydWU7XG5cdFx0cmVwZWF0ID0gMDtcblxuXHRcdC8vIFJ1biBlZmZlY3RzXG5cdFx0Zmx1c2hHbG9iYWxFZmZlY3RzKCdiZWZvcmUnLCB0aW1lc3RhbXApO1xuXG5cdFx0Ly8gUmVuZGVyIGFsbCByb290c1xuXHRcdGJlZm9yZVJlbmRlckluUHJvZ3Jlc3MgPSB0cnVlO1xuXHRcdGZvciAoY29uc3Qgcm9vdCBvZiByb290cy52YWx1ZXMoKSkge1xuXHRcdFx0Y29uc3Qgc3RhdGUgPSByb290LnNuYXBzaG90O1xuXHRcdFx0Ly8gSWYgdGhlIGZyYW1lbG9vcCBpcyBpbnZhbGlkYXRlZCwgZG8gbm90IHJ1biBhbm90aGVyIGZyYW1lXG5cdFx0XHRpZiAoXG5cdFx0XHRcdHN0YXRlLmludGVybmFsLmFjdGl2ZSAmJlxuXHRcdFx0XHQoc3RhdGUuZnJhbWVsb29wID09PSAnYWx3YXlzJyB8fCBzdGF0ZS5pbnRlcm5hbC5mcmFtZXMgPiAwKSAmJlxuXHRcdFx0XHQhc3RhdGUuZ2wueHI/LmlzUHJlc2VudGluZ1xuXHRcdFx0KSB7XG5cdFx0XHRcdHJlcGVhdCArPSByZW5kZXIodGltZXN0YW1wLCByb290KTtcblx0XHRcdH1cblx0XHR9XG5cdFx0YmVmb3JlUmVuZGVySW5Qcm9ncmVzcyA9IGZhbHNlO1xuXG5cdFx0Ly8gUnVuIGFmdGVyLWVmZmVjdHNcblx0XHRmbHVzaEdsb2JhbEVmZmVjdHMoJ2FmdGVyJywgdGltZXN0YW1wKTtcblxuXHRcdC8vIFN0b3AgdGhlIGxvb3AgaWYgbm90aGluZyBpbnZhbGlkYXRlcyBpdFxuXHRcdGlmIChyZXBlYXQgPT09IDApIHtcblx0XHRcdC8vIFRhaWwgY2FsbCBlZmZlY3RzLCB0aGV5IGFyZSBjYWxsZWQgd2hlbiByZW5kZXJpbmcgc3RvcHNcblx0XHRcdGZsdXNoR2xvYmFsRWZmZWN0cygndGFpbCcsIHRpbWVzdGFtcCk7XG5cblx0XHRcdC8vIEZsYWcgZW5kIG9mIG9wZXJhdGlvblxuXHRcdFx0cnVubmluZyA9IGZhbHNlO1xuXHRcdFx0cmV0dXJuIGNhbmNlbEFuaW1hdGlvbkZyYW1lKGZyYW1lKTtcblx0XHR9XG5cdH1cblxuXHRmdW5jdGlvbiBpbnZhbGlkYXRlKHN0b3JlPzogTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+LCBmcmFtZXMgPSAxKTogdm9pZCB7XG5cdFx0Y29uc3Qgc3RhdGUgPSBzdG9yZT8uc25hcHNob3Q7XG5cdFx0aWYgKCFzdGF0ZSkgcmV0dXJuIHJvb3RzLmZvckVhY2goKHJvb3QpID0+IGludmFsaWRhdGUocm9vdCwgZnJhbWVzKSk7XG5cdFx0aWYgKHN0YXRlLmdsLnhyPy5pc1ByZXNlbnRpbmcgfHwgIXN0YXRlLmludGVybmFsLmFjdGl2ZSB8fCBzdGF0ZS5mcmFtZWxvb3AgPT09ICduZXZlcicpIHJldHVybjtcblx0XHRpZiAoZnJhbWVzID4gMSkge1xuXHRcdFx0Ly8gbGVnYWN5IHN1cHBvcnQgZm9yIHBlb3BsZSB1c2luZyBmcmFtZXMgcGFyYW1ldGVyc1xuXHRcdFx0Ly8gSW5jcmVhc2UgZnJhbWVzLCBkbyBub3QgZ28gaGlnaGVyIHRoYW4gNjBcblx0XHRcdHN0YXRlLmludGVybmFsLmZyYW1lcyA9IE1hdGgubWluKDYwLCBzdGF0ZS5pbnRlcm5hbC5mcmFtZXMgKyBmcmFtZXMpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRpZiAoYmVmb3JlUmVuZGVySW5Qcm9ncmVzcykge1xuXHRcdFx0XHQvL2NhbGxlZCBmcm9tIHdpdGhpbiBhIGJlZm9yZVJlbmRlciwgaXQgbWVhbnMgdGhlIHVzZXIgd2FudHMgYW4gYWRkaXRpb25hbCBmcmFtZVxuXHRcdFx0XHRzdGF0ZS5pbnRlcm5hbC5mcmFtZXMgPSAyO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Ly90aGUgdXNlciBuZWVkIGEgbmV3IGZyYW1lLCBubyBuZWVkIHRvIGluY3JlbWVudCBmdXJ0aGVyIHRoYW4gMVxuXHRcdFx0XHRzdGF0ZS5pbnRlcm5hbC5mcmFtZXMgPSAxO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIElmIHRoZSByZW5kZXItbG9vcCBpc24ndCBhY3RpdmUsIHN0YXJ0IGl0XG5cdFx0aWYgKCFydW5uaW5nKSB7XG5cdFx0XHRydW5uaW5nID0gdHJ1ZTtcblx0XHRcdHJlcXVlc3RBbmltYXRpb25GcmFtZShsb29wKTtcblx0XHR9XG5cdH1cblxuXHRmdW5jdGlvbiBhZHZhbmNlKFxuXHRcdHRpbWVzdGFtcDogbnVtYmVyLFxuXHRcdHJ1bkdsb2JhbEVmZmVjdHMgPSB0cnVlLFxuXHRcdHN0b3JlPzogTmd0U2lnbmFsU3RvcmU8Tmd0U3RhdGU+LFxuXHRcdGZyYW1lPzogWFJGcmFtZSxcblx0KTogdm9pZCB7XG5cdFx0aWYgKHJ1bkdsb2JhbEVmZmVjdHMpIGZsdXNoR2xvYmFsRWZmZWN0cygnYmVmb3JlJywgdGltZXN0YW1wKTtcblx0XHRpZiAoIXN0b3JlKSBmb3IgKGNvbnN0IHJvb3Qgb2Ygcm9vdHMudmFsdWVzKCkpIHJlbmRlcih0aW1lc3RhbXAsIHJvb3QpO1xuXHRcdGVsc2UgcmVuZGVyKHRpbWVzdGFtcCwgc3RvcmUsIGZyYW1lKTtcblx0XHRpZiAocnVuR2xvYmFsRWZmZWN0cykgZmx1c2hHbG9iYWxFZmZlY3RzKCdhZnRlcicsIHRpbWVzdGFtcCk7XG5cdH1cblxuXHRyZXR1cm4geyBsb29wLCBpbnZhbGlkYXRlLCBhZHZhbmNlIH07XG59XG5cbmV4cG9ydCBjb25zdCBbaW5qZWN0TG9vcF0gPSBjcmVhdGVJbmplY3Rpb25Ub2tlbigoKSA9PiBjcmVhdGVMb29wKHJvb3RzKSk7XG4iXX0=
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { DOCUMENT } from '@angular/common';
|
|
2
|
+
import { inject, Pipe } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class NgtHexify {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.document = inject(DOCUMENT, { optional: true });
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* transforms a:
|
|
10
|
+
* - hex string to a hex number
|
|
11
|
+
* - rgb string to a hex number
|
|
12
|
+
* - rgba string to a hex number
|
|
13
|
+
* - css color string to a hex number
|
|
14
|
+
*
|
|
15
|
+
* always default to black if failed
|
|
16
|
+
* @param value
|
|
17
|
+
*/
|
|
18
|
+
transform(value) {
|
|
19
|
+
if (value == null)
|
|
20
|
+
return 0x000000;
|
|
21
|
+
if (value.startsWith('#')) {
|
|
22
|
+
return this.hexStringToNumber(value);
|
|
23
|
+
}
|
|
24
|
+
if (!this.ctx) {
|
|
25
|
+
this.ctx = this.document?.createElement('canvas').getContext('2d');
|
|
26
|
+
}
|
|
27
|
+
if (!this.ctx)
|
|
28
|
+
return 0x000000;
|
|
29
|
+
this.ctx.fillStyle = value;
|
|
30
|
+
const computedValue = this.ctx.fillStyle;
|
|
31
|
+
if (computedValue.startsWith('#')) {
|
|
32
|
+
return this.hexStringToNumber(computedValue);
|
|
33
|
+
}
|
|
34
|
+
if (!computedValue.startsWith('rgba'))
|
|
35
|
+
return 0x000000;
|
|
36
|
+
const regex = /rgba?\((\d+),\s*(\d+),\s*(\d+),?\s*(\d*\.?\d+)?\)/;
|
|
37
|
+
const match = computedValue.match(regex);
|
|
38
|
+
if (!match)
|
|
39
|
+
return 0x000000;
|
|
40
|
+
const r = parseInt(match[1], 10);
|
|
41
|
+
const g = parseInt(match[2], 10);
|
|
42
|
+
const b = parseInt(match[3], 10);
|
|
43
|
+
const a = match[4] ? parseFloat(match[4]) : 1.0;
|
|
44
|
+
// Convert the components to hex strings
|
|
45
|
+
const hexR = this.componentToHex(r);
|
|
46
|
+
const hexG = this.componentToHex(g);
|
|
47
|
+
const hexB = this.componentToHex(b);
|
|
48
|
+
const hexA = this.componentToHex(Math.round(a * 255));
|
|
49
|
+
// Combine the hex components into a single hex string
|
|
50
|
+
const hex = `#${hexR}${hexG}${hexB}${hexA}`;
|
|
51
|
+
return this.hexStringToNumber(hex);
|
|
52
|
+
}
|
|
53
|
+
hexStringToNumber(hexString) {
|
|
54
|
+
return parseInt(hexString.replace('#', ''), 16);
|
|
55
|
+
}
|
|
56
|
+
componentToHex(component) {
|
|
57
|
+
const hex = component.toString(16);
|
|
58
|
+
return hex.length === 1 ? '0' + hex : hex;
|
|
59
|
+
}
|
|
60
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: NgtHexify, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
61
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.1.3", ngImport: i0, type: NgtHexify, isStandalone: true, name: "hexify" }); }
|
|
62
|
+
}
|
|
63
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.3", ngImport: i0, type: NgtHexify, decorators: [{
|
|
64
|
+
type: Pipe,
|
|
65
|
+
args: [{ name: 'hexify', pure: true, standalone: true }]
|
|
66
|
+
}] });
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGV4aWZ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvcGlwZXMvaGV4aWZ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHN0MsTUFBTSxPQUFPLFNBQVM7SUFEdEI7UUFFUyxhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0tBK0R4RDtJQTVEQTs7Ozs7Ozs7O09BU0c7SUFDSCxTQUFTLENBQUMsS0FBYTtRQUN0QixJQUFJLEtBQUssSUFBSSxJQUFJO1lBQUUsT0FBTyxRQUFRLENBQUM7UUFFbkMsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDM0IsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwRSxDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHO1lBQUUsT0FBTyxRQUFRLENBQUM7UUFFL0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQzNCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDO1FBRXpDLElBQUksYUFBYSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ25DLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFFRCxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7WUFBRSxPQUFPLFFBQVEsQ0FBQztRQUV2RCxNQUFNLEtBQUssR0FBRyxtREFBbUQsQ0FBQztRQUNsRSxNQUFNLEtBQUssR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxRQUFRLENBQUM7UUFFNUIsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQyxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pDLE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakMsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUVoRCx3Q0FBd0M7UUFDeEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRXRELHNEQUFzRDtRQUN0RCxNQUFNLEdBQUcsR0FBRyxJQUFJLElBQUksR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksRUFBRSxDQUFDO1FBQzVDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxTQUFpQjtRQUMxQyxPQUFPLFFBQVEsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRU8sY0FBYyxDQUFDLFNBQWlCO1FBQ3ZDLE1BQU0sR0FBRyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbkMsT0FBTyxHQUFHLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQzNDLENBQUM7OEdBL0RXLFNBQVM7NEdBQVQsU0FBUzs7MkZBQVQsU0FBUztrQkFEckIsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgaW5qZWN0LCBQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHsgbmFtZTogJ2hleGlmeScsIHB1cmU6IHRydWUsIHN0YW5kYWxvbmU6IHRydWUgfSlcbmV4cG9ydCBjbGFzcyBOZ3RIZXhpZnkge1xuXHRwcml2YXRlIGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5ULCB7IG9wdGlvbmFsOiB0cnVlIH0pO1xuXHRwcml2YXRlIGN0eD86IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCB8IG51bGw7XG5cblx0LyoqXG5cdCAqIHRyYW5zZm9ybXMgYTpcblx0ICogLSBoZXggc3RyaW5nIHRvIGEgaGV4IG51bWJlclxuXHQgKiAtIHJnYiBzdHJpbmcgdG8gYSBoZXggbnVtYmVyXG5cdCAqIC0gcmdiYSBzdHJpbmcgdG8gYSBoZXggbnVtYmVyXG5cdCAqIC0gY3NzIGNvbG9yIHN0cmluZyB0byBhIGhleCBudW1iZXJcblx0ICpcblx0ICogYWx3YXlzIGRlZmF1bHQgdG8gYmxhY2sgaWYgZmFpbGVkXG5cdCAqIEBwYXJhbSB2YWx1ZVxuXHQgKi9cblx0dHJhbnNmb3JtKHZhbHVlOiBzdHJpbmcpOiBudW1iZXIge1xuXHRcdGlmICh2YWx1ZSA9PSBudWxsKSByZXR1cm4gMHgwMDAwMDA7XG5cblx0XHRpZiAodmFsdWUuc3RhcnRzV2l0aCgnIycpKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5oZXhTdHJpbmdUb051bWJlcih2YWx1ZSk7XG5cdFx0fVxuXG5cdFx0aWYgKCF0aGlzLmN0eCkge1xuXHRcdFx0dGhpcy5jdHggPSB0aGlzLmRvY3VtZW50Py5jcmVhdGVFbGVtZW50KCdjYW52YXMnKS5nZXRDb250ZXh0KCcyZCcpO1xuXHRcdH1cblxuXHRcdGlmICghdGhpcy5jdHgpIHJldHVybiAweDAwMDAwMDtcblxuXHRcdHRoaXMuY3R4LmZpbGxTdHlsZSA9IHZhbHVlO1xuXHRcdGNvbnN0IGNvbXB1dGVkVmFsdWUgPSB0aGlzLmN0eC5maWxsU3R5bGU7XG5cblx0XHRpZiAoY29tcHV0ZWRWYWx1ZS5zdGFydHNXaXRoKCcjJykpIHtcblx0XHRcdHJldHVybiB0aGlzLmhleFN0cmluZ1RvTnVtYmVyKGNvbXB1dGVkVmFsdWUpO1xuXHRcdH1cblxuXHRcdGlmICghY29tcHV0ZWRWYWx1ZS5zdGFydHNXaXRoKCdyZ2JhJykpIHJldHVybiAweDAwMDAwMDtcblxuXHRcdGNvbnN0IHJlZ2V4ID0gL3JnYmE/XFwoKFxcZCspLFxccyooXFxkKyksXFxzKihcXGQrKSw/XFxzKihcXGQqXFwuP1xcZCspP1xcKS87XG5cdFx0Y29uc3QgbWF0Y2ggPSBjb21wdXRlZFZhbHVlLm1hdGNoKHJlZ2V4KTtcblx0XHRpZiAoIW1hdGNoKSByZXR1cm4gMHgwMDAwMDA7XG5cblx0XHRjb25zdCByID0gcGFyc2VJbnQobWF0Y2hbMV0sIDEwKTtcblx0XHRjb25zdCBnID0gcGFyc2VJbnQobWF0Y2hbMl0sIDEwKTtcblx0XHRjb25zdCBiID0gcGFyc2VJbnQobWF0Y2hbM10sIDEwKTtcblx0XHRjb25zdCBhID0gbWF0Y2hbNF0gPyBwYXJzZUZsb2F0KG1hdGNoWzRdKSA6IDEuMDtcblxuXHRcdC8vIENvbnZlcnQgdGhlIGNvbXBvbmVudHMgdG8gaGV4IHN0cmluZ3Ncblx0XHRjb25zdCBoZXhSID0gdGhpcy5jb21wb25lbnRUb0hleChyKTtcblx0XHRjb25zdCBoZXhHID0gdGhpcy5jb21wb25lbnRUb0hleChnKTtcblx0XHRjb25zdCBoZXhCID0gdGhpcy5jb21wb25lbnRUb0hleChiKTtcblx0XHRjb25zdCBoZXhBID0gdGhpcy5jb21wb25lbnRUb0hleChNYXRoLnJvdW5kKGEgKiAyNTUpKTtcblxuXHRcdC8vIENvbWJpbmUgdGhlIGhleCBjb21wb25lbnRzIGludG8gYSBzaW5nbGUgaGV4IHN0cmluZ1xuXHRcdGNvbnN0IGhleCA9IGAjJHtoZXhSfSR7aGV4R30ke2hleEJ9JHtoZXhBfWA7XG5cdFx0cmV0dXJuIHRoaXMuaGV4U3RyaW5nVG9OdW1iZXIoaGV4KTtcblx0fVxuXG5cdHByaXZhdGUgaGV4U3RyaW5nVG9OdW1iZXIoaGV4U3RyaW5nOiBzdHJpbmcpOiBudW1iZXIge1xuXHRcdHJldHVybiBwYXJzZUludChoZXhTdHJpbmcucmVwbGFjZSgnIycsICcnKSwgMTYpO1xuXHR9XG5cblx0cHJpdmF0ZSBjb21wb25lbnRUb0hleChjb21wb25lbnQ6IG51bWJlcik6IHN0cmluZyB7XG5cdFx0Y29uc3QgaGV4ID0gY29tcG9uZW50LnRvU3RyaW5nKDE2KTtcblx0XHRyZXR1cm4gaGV4Lmxlbmd0aCA9PT0gMSA/ICcwJyArIGhleCA6IGhleDtcblx0fVxufVxuIl19
|