@ngxs/store 18.1.1 → 18.1.2
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 +1 -0
- package/esm2022/internals/memoize.mjs +14 -3
- package/esm2022/internals/testing/index.mjs +2 -2
- package/esm2022/internals/testing/ngxs.setup.mjs +4 -3
- package/esm2022/internals/testing/skip-console-logging.mjs +17 -7
- package/esm2022/src/actions/action-registry.mjs +34 -0
- package/esm2022/src/actions-stream.mjs +13 -5
- package/esm2022/src/internal/lifecycle-state-manager.mjs +2 -2
- package/esm2022/src/internal/state-context-factory.mjs +6 -6
- package/esm2022/src/internal/state-factory.mjs +82 -85
- package/esm2022/src/plugin-manager.mjs +15 -19
- package/esm2022/src/selectors/selector-checks.util.mjs +29 -4
- package/esm2022/src/standalone-features/plugin.mjs +10 -3
- package/experimental/package.json +3 -0
- package/fesm2022/ngxs-store-internals-testing.mjs +40 -30
- package/fesm2022/ngxs-store-internals-testing.mjs.map +1 -1
- package/fesm2022/ngxs-store-internals.mjs +13 -2
- package/fesm2022/ngxs-store-internals.mjs.map +1 -1
- package/fesm2022/ngxs-store.mjs +353 -285
- package/fesm2022/ngxs-store.mjs.map +1 -1
- package/internals/package.json +3 -0
- package/internals/testing/index.d.ts +1 -1
- package/internals/testing/package.json +3 -0
- package/internals/testing/skip-console-logging.d.ts +4 -1
- package/operators/package.json +3 -0
- package/package.json +7 -7
- package/plugins/package.json +3 -0
- package/schematics/src/utils/versions.json +1 -1
- package/src/actions/action-registry.d.ts +12 -0
- package/src/actions-stream.d.ts +3 -1
- package/src/internal/state-context-factory.d.ts +1 -2
- package/src/internal/state-factory.d.ts +13 -17
- package/src/plugin-manager.d.ts +7 -7
package/README.md
CHANGED
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
---
|
|
13
13
|
|
|
14
14
|
- ✨ Learn about it on the [docs site](https://ngxs.io/)
|
|
15
|
+
- 💬 Chat with us on [Discord](https://discord.gg/yT3Q8cXTnz)
|
|
15
16
|
- 🚀 See it in action on [Stackblitz](https://stackblitz.com/edit/ngxs-repro)
|
|
16
17
|
- 😎 Checkout the [sample application](https://github.com/ngxs/store/tree/master/integration)
|
|
17
18
|
- 🗄 Learn about updates from the [changelog](https://github.com/ngxs/store/blob/master/CHANGELOG.md)
|
|
@@ -1,11 +1,22 @@
|
|
|
1
|
+
const isNaN = Number.isNaN;
|
|
1
2
|
function defaultEqualityCheck(a, b) {
|
|
2
|
-
|
|
3
|
+
if (a === b) {
|
|
4
|
+
return true;
|
|
5
|
+
}
|
|
6
|
+
// Special case for `NaN` (NaN !== NaN).
|
|
7
|
+
// According to the IEEE 754 standard, `NaN` is not equal to any value,
|
|
8
|
+
// including itself.
|
|
9
|
+
if (isNaN(a) && isNaN(b)) {
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
return false;
|
|
3
13
|
}
|
|
4
14
|
function areArgumentsShallowlyEqual(equalityCheck, prev, next) {
|
|
5
15
|
if (prev === null || next === null || prev.length !== next.length) {
|
|
6
16
|
return false;
|
|
7
17
|
}
|
|
8
|
-
// Do this in a for loop (and not a `forEach` or an `every`) so we can
|
|
18
|
+
// Do this in a for loop (and not a `forEach` or an `every`) so we can
|
|
19
|
+
// determine equality as fast as possible.
|
|
9
20
|
const length = prev.length;
|
|
10
21
|
for (let i = 0; i < length; i++) {
|
|
11
22
|
if (!equalityCheck(prev[i], next[i])) {
|
|
@@ -42,4 +53,4 @@ export function ɵmemoize(func, equalityCheck = defaultEqualityCheck) {
|
|
|
42
53
|
};
|
|
43
54
|
return memoized;
|
|
44
55
|
}
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb2l6ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL2ludGVybmFscy9zcmMvbWVtb2l6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO0FBQzNCLFNBQVMsb0JBQW9CLENBQUMsQ0FBTSxFQUFFLENBQU07SUFDMUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDWixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCx3Q0FBd0M7SUFDeEMsdUVBQXVFO0lBQ3ZFLG9CQUFvQjtJQUNwQixJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN6QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCxTQUFTLDBCQUEwQixDQUNqQyxhQUEwQyxFQUMxQyxJQUF1QixFQUN2QixJQUF1QjtJQUV2QixJQUFJLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNsRSxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxzRUFBc0U7SUFDdEUsMENBQTBDO0lBQzFDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDM0IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDckMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLFFBQVEsQ0FDdEIsSUFBTyxFQUNQLGFBQWEsR0FBRyxvQkFBb0I7SUFFcEMsSUFBSSxRQUFRLEdBQXNCLElBQUksQ0FBQztJQUN2QyxJQUFJLFVBQVUsR0FBUSxJQUFJLENBQUM7SUFDM0IsMkVBQTJFO0lBQzNFLFNBQVMsUUFBUTtRQUNmLDhDQUE4QztRQUM5QyxJQUFJLENBQUMsMEJBQTBCLENBQUMsYUFBYSxFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ3BFLHdEQUF3RDtZQUN4RCw2REFBNkQ7WUFDN0QsVUFBVSxHQUFjLElBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7UUFDRCw4Q0FBOEM7UUFDOUMsUUFBUSxHQUFHLFNBQVMsQ0FBQztRQUNyQixPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBQ0ssUUFBUyxDQUFDLEtBQUssR0FBRztRQUN0Qix3REFBd0Q7UUFDeEQsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNoQixVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQ3BCLENBQUMsQ0FBQztJQUNGLE9BQU8sUUFBYSxDQUFDO0FBQ3ZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBpc05hTiA9IE51bWJlci5pc05hTjtcbmZ1bmN0aW9uIGRlZmF1bHRFcXVhbGl0eUNoZWNrKGE6IGFueSwgYjogYW55KSB7XG4gIGlmIChhID09PSBiKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvLyBTcGVjaWFsIGNhc2UgZm9yIGBOYU5gIChOYU4gIT09IE5hTikuXG4gIC8vIEFjY29yZGluZyB0byB0aGUgSUVFRSA3NTQgc3RhbmRhcmQsIGBOYU5gIGlzIG5vdCBlcXVhbCB0byBhbnkgdmFsdWUsXG4gIC8vIGluY2x1ZGluZyBpdHNlbGYuXG4gIGlmIChpc05hTihhKSAmJiBpc05hTihiKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5mdW5jdGlvbiBhcmVBcmd1bWVudHNTaGFsbG93bHlFcXVhbChcbiAgZXF1YWxpdHlDaGVjazogKGE6IGFueSwgYjogYW55KSA9PiBib29sZWFuLFxuICBwcmV2OiBJQXJndW1lbnRzIHwgbnVsbCxcbiAgbmV4dDogSUFyZ3VtZW50cyB8IG51bGxcbikge1xuICBpZiAocHJldiA9PT0gbnVsbCB8fCBuZXh0ID09PSBudWxsIHx8IHByZXYubGVuZ3RoICE9PSBuZXh0Lmxlbmd0aCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8vIERvIHRoaXMgaW4gYSBmb3IgbG9vcCAoYW5kIG5vdCBhIGBmb3JFYWNoYCBvciBhbiBgZXZlcnlgKSBzbyB3ZSBjYW5cbiAgLy8gZGV0ZXJtaW5lIGVxdWFsaXR5IGFzIGZhc3QgYXMgcG9zc2libGUuXG4gIGNvbnN0IGxlbmd0aCA9IHByZXYubGVuZ3RoO1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKCFlcXVhbGl0eUNoZWNrKHByZXZbaV0sIG5leHRbaV0pKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbi8qKlxuICogTWVtb2l6ZSBhIGZ1bmN0aW9uIG9uIGl0cyBsYXN0IGlucHV0cyBvbmx5LlxuICogT3JpZ2luYWxseSBmcm9tOiBodHRwczovL2dpdGh1Yi5jb20vcmVkdXhqcy9yZXNlbGVjdC9ibG9iL21hc3Rlci9zcmMvaW5kZXguanNcbiAqXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiDJtW1lbW9pemU8VCBleHRlbmRzICguLi5hcmdzOiBhbnlbXSkgPT4gYW55PihcbiAgZnVuYzogVCxcbiAgZXF1YWxpdHlDaGVjayA9IGRlZmF1bHRFcXVhbGl0eUNoZWNrXG4pOiBUIHtcbiAgbGV0IGxhc3RBcmdzOiBJQXJndW1lbnRzIHwgbnVsbCA9IG51bGw7XG4gIGxldCBsYXN0UmVzdWx0OiBhbnkgPSBudWxsO1xuICAvLyB3ZSByZWZlcmVuY2UgYXJndW1lbnRzIGluc3RlYWQgb2Ygc3ByZWFkaW5nIHRoZW0gZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnNcbiAgZnVuY3Rpb24gbWVtb2l6ZWQoKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1yZXN0LXBhcmFtc1xuICAgIGlmICghYXJlQXJndW1lbnRzU2hhbGxvd2x5RXF1YWwoZXF1YWxpdHlDaGVjaywgbGFzdEFyZ3MsIGFyZ3VtZW50cykpIHtcbiAgICAgIC8vIGFwcGx5IGFyZ3VtZW50cyBpbnN0ZWFkIG9mIHNwcmVhZGluZyBmb3IgcGVyZm9ybWFuY2UuXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLXJlc3QtcGFyYW1zLCBwcmVmZXItc3ByZWFkXG4gICAgICBsYXN0UmVzdWx0ID0gKDxGdW5jdGlvbj5mdW5jKS5hcHBseShudWxsLCBhcmd1bWVudHMpO1xuICAgIH1cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLXJlc3QtcGFyYW1zXG4gICAgbGFzdEFyZ3MgPSBhcmd1bWVudHM7XG4gICAgcmV0dXJuIGxhc3RSZXN1bHQ7XG4gIH1cbiAgKDxhbnk+bWVtb2l6ZWQpLnJlc2V0ID0gZnVuY3Rpb24gKCkge1xuICAgIC8vIFRoZSBoaWRkZW4gKGZvciBub3cpIGFiaWxpdHkgdG8gcmVzZXQgdGhlIG1lbW9pemF0aW9uXG4gICAgbGFzdEFyZ3MgPSBudWxsO1xuICAgIGxhc3RSZXN1bHQgPSBudWxsO1xuICB9O1xuICByZXR1cm4gbWVtb2l6ZWQgYXMgVDtcbn1cbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { freshPlatform } from './fresh-platform';
|
|
2
2
|
export { NgxsTestBed } from './ngxs.setup';
|
|
3
|
-
export { skipConsoleLogging } from './skip-console-logging';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
export { skipConsoleLogging, loggedError } from './skip-console-logging';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9pbnRlcm5hbHMvdGVzdGluZy9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDM0MsT0FBTyxFQUNMLGtCQUFrQixFQUdsQixXQUFXLEVBQ1osTUFBTSx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGZyZXNoUGxhdGZvcm0gfSBmcm9tICcuL2ZyZXNoLXBsYXRmb3JtJztcbmV4cG9ydCB7IE5neHNUZXN0QmVkIH0gZnJvbSAnLi9uZ3hzLnNldHVwJztcbmV4cG9ydCB7XG4gIHNraXBDb25zb2xlTG9nZ2luZyxcbiAgQ29uc29sZVJlY29yZCxcbiAgQ29uc29sZVJlY29yZGVyLFxuICBsb2dnZWRFcnJvclxufSBmcm9tICcuL3NraXAtY29uc29sZS1sb2dnaW5nJztcbmV4cG9ydCB7IE5neHNUZXN0aW5nIH0gZnJvbSAnLi9zeW1ib2wnO1xuIl19
|
|
@@ -5,19 +5,20 @@ import { ɵBrowserDomAdapter as BrowserDomAdapter } from '@angular/platform-brow
|
|
|
5
5
|
import { BrowserDynamicTestingModule, platformBrowserDynamicTesting } from '@angular/platform-browser-dynamic/testing';
|
|
6
6
|
import { NgxsModule, Store } from '@ngxs/store';
|
|
7
7
|
import { NgxsTestModule } from './helpers/ngxs-test.module';
|
|
8
|
+
import { skipConsoleLogging } from './skip-console-logging';
|
|
8
9
|
export class NgxsTestBed {
|
|
9
10
|
static configureTestingStates(options) {
|
|
10
11
|
this.resetTestBed();
|
|
11
12
|
if (options.before) {
|
|
12
13
|
options.before();
|
|
13
14
|
}
|
|
14
|
-
TestBed.configureTestingModule({
|
|
15
|
+
skipConsoleLogging(() => TestBed.configureTestingModule({
|
|
15
16
|
imports: [
|
|
16
17
|
NgxsTestModule,
|
|
17
18
|
NgxsModule.forRoot(options.states || [], options.ngxsOptions || {}),
|
|
18
19
|
...(options.imports || [])
|
|
19
20
|
]
|
|
20
|
-
}).compileComponents();
|
|
21
|
+
}).compileComponents());
|
|
21
22
|
NgxsTestBed.ngxsBootstrap();
|
|
22
23
|
return {
|
|
23
24
|
get store() {
|
|
@@ -45,4 +46,4 @@ export class NgxsTestBed {
|
|
|
45
46
|
document.body.appendChild(root);
|
|
46
47
|
}
|
|
47
48
|
}
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4cy5zZXR1cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL2ludGVybmFscy90ZXN0aW5nL3NyYy9uZ3hzLnNldHVwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0MsT0FBTyxFQUFFLE9BQU8sRUFBaUIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGtCQUFrQixJQUFJLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEYsT0FBTyxFQUNMLDJCQUEyQixFQUMzQiw2QkFBNkIsRUFDOUIsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVoRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFNUQsTUFBTSxPQUFPLFdBQVc7SUFDZixNQUFNLENBQUMsc0JBQXNCLENBQUMsT0FBMkI7UUFDOUQsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXBCLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ25CLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNuQixDQUFDO1FBRUQsa0JBQWtCLENBQUMsR0FBRyxFQUFFLENBQ3RCLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQztZQUM3QixPQUFPLEVBQUU7Z0JBQ1AsY0FBYztnQkFDZCxVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksRUFBRSxFQUFFLE9BQU8sQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO2dCQUNuRSxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7YUFDM0I7U0FDRixDQUFDLENBQUMsaUJBQWlCLEVBQUUsQ0FDdkIsQ0FBQztRQUVGLFdBQVcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUU1QixPQUFPO1lBQ0wsSUFBSSxLQUFLO2dCQUNQLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMvQixDQUFDO1lBQ0QsSUFBSSxVQUFVO2dCQUNaLE9BQU8sT0FBTyxDQUFDO1lBQ2pCLENBQUM7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVPLE1BQU0sQ0FBQyxhQUFhO1FBQzFCLFdBQVcsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUM3QixjQUFjLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRU8sTUFBTSxDQUFDLFlBQVk7UUFDekIsT0FBTyxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDL0IsT0FBTyxDQUFDLG1CQUFtQixDQUFDLDJCQUEyQixFQUFFLDZCQUE2QixFQUFFLEVBQUU7WUFDeEYsUUFBUSxFQUFFLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFO1NBQ3JDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxNQUFNLENBQUMsY0FBYyxDQUFDLFFBQVEsR0FBRyxVQUFVO1FBQ2pELE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDMUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBQ3hDLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0MsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBwbGljYXRpb25SZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRlc3RCZWQsIFRlc3RCZWRTdGF0aWMgfSBmcm9tICdAYW5ndWxhci9jb3JlL3Rlc3RpbmcnO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgybVCcm93c2VyRG9tQWRhcHRlciBhcyBCcm93c2VyRG9tQWRhcHRlciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHtcbiAgQnJvd3NlckR5bmFtaWNUZXN0aW5nTW9kdWxlLFxuICBwbGF0Zm9ybUJyb3dzZXJEeW5hbWljVGVzdGluZ1xufSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyLWR5bmFtaWMvdGVzdGluZyc7XG5pbXBvcnQgeyBOZ3hzTW9kdWxlLCBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcblxuaW1wb3J0IHsgTmd4c1Rlc3RNb2R1bGUgfSBmcm9tICcuL2hlbHBlcnMvbmd4cy10ZXN0Lm1vZHVsZSc7XG5pbXBvcnQgeyBOZ3hzT3B0aW9uc1Rlc3RpbmcsIE5neHNUZXN0aW5nIH0gZnJvbSAnLi9zeW1ib2wnO1xuaW1wb3J0IHsgc2tpcENvbnNvbGVMb2dnaW5nIH0gZnJvbSAnLi9za2lwLWNvbnNvbGUtbG9nZ2luZyc7XG5cbmV4cG9ydCBjbGFzcyBOZ3hzVGVzdEJlZCB7XG4gIHB1YmxpYyBzdGF0aWMgY29uZmlndXJlVGVzdGluZ1N0YXRlcyhvcHRpb25zOiBOZ3hzT3B0aW9uc1Rlc3RpbmcpOiBOZ3hzVGVzdGluZyB7XG4gICAgdGhpcy5yZXNldFRlc3RCZWQoKTtcblxuICAgIGlmIChvcHRpb25zLmJlZm9yZSkge1xuICAgICAgb3B0aW9ucy5iZWZvcmUoKTtcbiAgICB9XG5cbiAgICBza2lwQ29uc29sZUxvZ2dpbmcoKCkgPT5cbiAgICAgIFRlc3RCZWQuY29uZmlndXJlVGVzdGluZ01vZHVsZSh7XG4gICAgICAgIGltcG9ydHM6IFtcbiAgICAgICAgICBOZ3hzVGVzdE1vZHVsZSxcbiAgICAgICAgICBOZ3hzTW9kdWxlLmZvclJvb3Qob3B0aW9ucy5zdGF0ZXMgfHwgW10sIG9wdGlvbnMubmd4c09wdGlvbnMgfHwge30pLFxuICAgICAgICAgIC4uLihvcHRpb25zLmltcG9ydHMgfHwgW10pXG4gICAgICAgIF1cbiAgICAgIH0pLmNvbXBpbGVDb21wb25lbnRzKClcbiAgICApO1xuXG4gICAgTmd4c1Rlc3RCZWQubmd4c0Jvb3RzdHJhcCgpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGdldCBzdG9yZSgpOiBTdG9yZSB7XG4gICAgICAgIHJldHVybiBUZXN0QmVkLmluamVjdChTdG9yZSk7XG4gICAgICB9LFxuICAgICAgZ2V0IGdldFRlc3RCZWQoKTogVGVzdEJlZFN0YXRpYyB7XG4gICAgICAgIHJldHVybiBUZXN0QmVkO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBuZ3hzQm9vdHN0cmFwKCk6IHZvaWQge1xuICAgIE5neHNUZXN0QmVkLmNyZWF0ZVJvb3ROb2RlKCk7XG4gICAgTmd4c1Rlc3RNb2R1bGUubmdEb0Jvb3RzdHJhcChUZXN0QmVkLmluamVjdChBcHBsaWNhdGlvblJlZikpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVzZXRUZXN0QmVkKCk6IHZvaWQge1xuICAgIFRlc3RCZWQucmVzZXRUZXN0RW52aXJvbm1lbnQoKTtcbiAgICBUZXN0QmVkLmluaXRUZXN0RW52aXJvbm1lbnQoQnJvd3NlckR5bmFtaWNUZXN0aW5nTW9kdWxlLCBwbGF0Zm9ybUJyb3dzZXJEeW5hbWljVGVzdGluZygpLCB7XG4gICAgICB0ZWFyZG93bjogeyBkZXN0cm95QWZ0ZXJFYWNoOiB0cnVlIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGNyZWF0ZVJvb3ROb2RlKHNlbGVjdG9yID0gJ2FwcC1yb290Jyk6IHZvaWQge1xuICAgIGNvbnN0IGRvY3VtZW50ID0gVGVzdEJlZC5pbmplY3QoRE9DVU1FTlQpO1xuICAgIGNvbnN0IGFkYXB0ZXIgPSBuZXcgQnJvd3NlckRvbUFkYXB0ZXIoKTtcbiAgICBjb25zdCByb290ID0gYWRhcHRlci5jcmVhdGVFbGVtZW50KHNlbGVjdG9yKTtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHJvb3QpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,10 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
export function loggedError(message) {
|
|
2
|
+
return ['error', [expect.objectContaining({ message })]];
|
|
3
|
+
}
|
|
4
|
+
export function skipConsoleLogging(fn, consoleRecorder = []) {
|
|
3
5
|
const consoleSpies = [
|
|
4
|
-
jest.spyOn(console, 'log').mockImplementation(() => {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
jest.spyOn(console, '
|
|
6
|
+
jest.spyOn(console, 'log').mockImplementation((...args) => {
|
|
7
|
+
consoleRecorder.push(['log', args]);
|
|
8
|
+
}),
|
|
9
|
+
jest.spyOn(console, 'warn').mockImplementation((...args) => {
|
|
10
|
+
consoleRecorder.push(['warn', args]);
|
|
11
|
+
}),
|
|
12
|
+
jest.spyOn(console, 'error').mockImplementation((...args) => {
|
|
13
|
+
consoleRecorder.push(['error', args]);
|
|
14
|
+
}),
|
|
15
|
+
jest.spyOn(console, 'info').mockImplementation((...args) => {
|
|
16
|
+
consoleRecorder.push(['info', args]);
|
|
17
|
+
})
|
|
8
18
|
];
|
|
9
19
|
function restoreSpies() {
|
|
10
20
|
consoleSpies.forEach(spy => spy.mockRestore());
|
|
@@ -24,4 +34,4 @@ export function skipConsoleLogging(fn) {
|
|
|
24
34
|
}
|
|
25
35
|
}
|
|
26
36
|
}
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tpcC1jb25zb2xlLWxvZ2dpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9pbnRlcm5hbHMvdGVzdGluZy9zcmMvc2tpcC1jb25zb2xlLWxvZ2dpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxVQUFVLFdBQVcsQ0FBQyxPQUFlO0lBQ3pDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMzRCxDQUFDO0FBRUQsTUFBTSxVQUFVLGtCQUFrQixDQUNoQyxFQUFLLEVBQ0wsa0JBQW1DLEVBQUU7SUFFckMsTUFBTSxZQUFZLEdBQUc7UUFDbkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxHQUFHLElBQUksRUFBRSxFQUFFO1lBQ3hELGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN0QyxDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUU7WUFDekQsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQztRQUNGLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsR0FBRyxJQUFJLEVBQUUsRUFBRTtZQUMxRCxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDeEMsQ0FBQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxHQUFHLElBQUksRUFBRSxFQUFFO1lBQ3pELGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUM7S0FDSCxDQUFDO0lBQ0YsU0FBUyxZQUFZO1FBQ25CLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBQ0QsSUFBSSxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQzVCLElBQUksQ0FBQztRQUNILE1BQU0sV0FBVyxHQUFHLEVBQUUsRUFBRSxDQUFDO1FBQ3pCLElBQUksV0FBVyxZQUFZLE9BQU8sRUFBRSxDQUFDO1lBQ25DLGVBQWUsR0FBRyxJQUFJLENBQUM7WUFDdkIsT0FBTyxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLFlBQVksRUFBRSxDQUFrQixDQUFDO1FBQ3BFLENBQUM7UUFDRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO1lBQVMsQ0FBQztRQUNULElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUNyQixZQUFZLEVBQUUsQ0FBQztRQUNqQixDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBDb25zb2xlUmVjb3JkID0gW3N0cmluZywgYW55W11dO1xuZXhwb3J0IHR5cGUgQ29uc29sZVJlY29yZGVyID0gQ29uc29sZVJlY29yZFtdO1xuXG5leHBvcnQgZnVuY3Rpb24gbG9nZ2VkRXJyb3IobWVzc2FnZTogc3RyaW5nKTogQ29uc29sZVJlY29yZCB7XG4gIHJldHVybiBbJ2Vycm9yJywgW2V4cGVjdC5vYmplY3RDb250YWluaW5nKHsgbWVzc2FnZSB9KV1dO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2tpcENvbnNvbGVMb2dnaW5nPFQgZXh0ZW5kcyAoLi4uYXJnczogYW55W10pID0+IGFueT4oXG4gIGZuOiBULFxuICBjb25zb2xlUmVjb3JkZXI6IENvbnNvbGVSZWNvcmRlciA9IFtdXG4pOiBSZXR1cm5UeXBlPFQ+IHtcbiAgY29uc3QgY29uc29sZVNwaWVzID0gW1xuICAgIGplc3Quc3B5T24oY29uc29sZSwgJ2xvZycpLm1vY2tJbXBsZW1lbnRhdGlvbigoLi4uYXJncykgPT4ge1xuICAgICAgY29uc29sZVJlY29yZGVyLnB1c2goWydsb2cnLCBhcmdzXSk7XG4gICAgfSksXG4gICAgamVzdC5zcHlPbihjb25zb2xlLCAnd2FybicpLm1vY2tJbXBsZW1lbnRhdGlvbigoLi4uYXJncykgPT4ge1xuICAgICAgY29uc29sZVJlY29yZGVyLnB1c2goWyd3YXJuJywgYXJnc10pO1xuICAgIH0pLFxuICAgIGplc3Quc3B5T24oY29uc29sZSwgJ2Vycm9yJykubW9ja0ltcGxlbWVudGF0aW9uKCguLi5hcmdzKSA9PiB7XG4gICAgICBjb25zb2xlUmVjb3JkZXIucHVzaChbJ2Vycm9yJywgYXJnc10pO1xuICAgIH0pLFxuICAgIGplc3Quc3B5T24oY29uc29sZSwgJ2luZm8nKS5tb2NrSW1wbGVtZW50YXRpb24oKC4uLmFyZ3MpID0+IHtcbiAgICAgIGNvbnNvbGVSZWNvcmRlci5wdXNoKFsnaW5mbycsIGFyZ3NdKTtcbiAgICB9KVxuICBdO1xuICBmdW5jdGlvbiByZXN0b3JlU3BpZXMoKSB7XG4gICAgY29uc29sZVNwaWVzLmZvckVhY2goc3B5ID0+IHNweS5tb2NrUmVzdG9yZSgpKTtcbiAgfVxuICBsZXQgcmVzdG9yZVNweUFzeW5jID0gZmFsc2U7XG4gIHRyeSB7XG4gICAgY29uc3QgcmV0dXJuVmFsdWUgPSBmbigpO1xuICAgIGlmIChyZXR1cm5WYWx1ZSBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgIHJlc3RvcmVTcHlBc3luYyA9IHRydWU7XG4gICAgICByZXR1cm4gcmV0dXJuVmFsdWUuZmluYWxseSgoKSA9PiByZXN0b3JlU3BpZXMoKSkgYXMgUmV0dXJuVHlwZTxUPjtcbiAgICB9XG4gICAgcmV0dXJuIHJldHVyblZhbHVlO1xuICB9IGZpbmFsbHkge1xuICAgIGlmICghcmVzdG9yZVNweUFzeW5jKSB7XG4gICAgICByZXN0b3JlU3BpZXMoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class NgxsActionRegistry {
|
|
4
|
+
constructor() {
|
|
5
|
+
// Instead of going over the states list every time an action is dispatched,
|
|
6
|
+
// we are constructing a map of action types to lists of action metadata.
|
|
7
|
+
// If the `@@Init` action is handled in two different states, the action
|
|
8
|
+
// metadata list will contain two objects that have the state `instance` and
|
|
9
|
+
// method names to be used as action handlers (decorated with `@Action(InitState)`).
|
|
10
|
+
this._actionTypeToHandlersMap = new Map();
|
|
11
|
+
}
|
|
12
|
+
ngOnDestroy() {
|
|
13
|
+
this._actionTypeToHandlersMap.clear();
|
|
14
|
+
}
|
|
15
|
+
get(type) {
|
|
16
|
+
return this._actionTypeToHandlersMap.get(type);
|
|
17
|
+
}
|
|
18
|
+
register(type, handler) {
|
|
19
|
+
const handlers = this._actionTypeToHandlersMap.get(type) ?? new Set();
|
|
20
|
+
handlers.add(handler);
|
|
21
|
+
this._actionTypeToHandlersMap.set(type, handlers);
|
|
22
|
+
return () => {
|
|
23
|
+
const handlers = this._actionTypeToHandlersMap.get(type);
|
|
24
|
+
handlers.delete(handler);
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: NgxsActionRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
28
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: NgxsActionRegistry, providedIn: 'root' }); }
|
|
29
|
+
}
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: NgxsActionRegistry, decorators: [{
|
|
31
|
+
type: Injectable,
|
|
32
|
+
args: [{ providedIn: 'root' }]
|
|
33
|
+
}] });
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLXJlZ2lzdHJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RvcmUvc3JjL2FjdGlvbnMvYWN0aW9uLXJlZ2lzdHJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWtCLE1BQU0sZUFBZSxDQUFDOztBQU8zRCxNQUFNLE9BQU8sa0JBQWtCO0lBRC9CO1FBRUUsNEVBQTRFO1FBQzVFLHlFQUF5RTtRQUN6RSx3RUFBd0U7UUFDeEUsNEVBQTRFO1FBQzVFLG9GQUFvRjtRQUNuRSw2QkFBd0IsR0FBRyxJQUFJLEdBQUcsRUFBZ0MsQ0FBQztLQW9CckY7SUFsQkMsV0FBVztRQUNULElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsR0FBRyxDQUFDLElBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFZLEVBQUUsT0FBd0I7UUFDN0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3RFLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEIsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFbEQsT0FBTyxHQUFHLEVBQUU7WUFDVixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBRSxDQUFDO1lBQzFELFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0IsQ0FBQyxDQUFDO0lBQ0osQ0FBQztpSUF6QlUsa0JBQWtCO3FJQUFsQixrQkFBa0IsY0FETCxNQUFNOzsyRkFDbkIsa0JBQWtCO2tCQUQ5QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIHR5cGUgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuLy8gYWN0aW9uOiBJbnN0YW5jZTxBY3Rpb25UeXBlPi5cbmV4cG9ydCB0eXBlIEFjdGlvbkhhbmRsZXJGbiA9IChhY3Rpb246IGFueSkgPT4gdm9pZCB8IFByb21pc2U8dm9pZD4gfCBPYnNlcnZhYmxlPHVua25vd24+O1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE5neHNBY3Rpb25SZWdpc3RyeSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIC8vIEluc3RlYWQgb2YgZ29pbmcgb3ZlciB0aGUgc3RhdGVzIGxpc3QgZXZlcnkgdGltZSBhbiBhY3Rpb24gaXMgZGlzcGF0Y2hlZCxcbiAgLy8gd2UgYXJlIGNvbnN0cnVjdGluZyBhIG1hcCBvZiBhY3Rpb24gdHlwZXMgdG8gbGlzdHMgb2YgYWN0aW9uIG1ldGFkYXRhLlxuICAvLyBJZiB0aGUgYEBASW5pdGAgYWN0aW9uIGlzIGhhbmRsZWQgaW4gdHdvIGRpZmZlcmVudCBzdGF0ZXMsIHRoZSBhY3Rpb25cbiAgLy8gbWV0YWRhdGEgbGlzdCB3aWxsIGNvbnRhaW4gdHdvIG9iamVjdHMgdGhhdCBoYXZlIHRoZSBzdGF0ZSBgaW5zdGFuY2VgIGFuZFxuICAvLyBtZXRob2QgbmFtZXMgdG8gYmUgdXNlZCBhcyBhY3Rpb24gaGFuZGxlcnMgKGRlY29yYXRlZCB3aXRoIGBAQWN0aW9uKEluaXRTdGF0ZSlgKS5cbiAgcHJpdmF0ZSByZWFkb25seSBfYWN0aW9uVHlwZVRvSGFuZGxlcnNNYXAgPSBuZXcgTWFwPHN0cmluZywgU2V0PEFjdGlvbkhhbmRsZXJGbj4+KCk7XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fYWN0aW9uVHlwZVRvSGFuZGxlcnNNYXAuY2xlYXIoKTtcbiAgfVxuXG4gIGdldCh0eXBlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aW9uVHlwZVRvSGFuZGxlcnNNYXAuZ2V0KHR5cGUpO1xuICB9XG5cbiAgcmVnaXN0ZXIodHlwZTogc3RyaW5nLCBoYW5kbGVyOiBBY3Rpb25IYW5kbGVyRm4pIHtcbiAgICBjb25zdCBoYW5kbGVycyA9IHRoaXMuX2FjdGlvblR5cGVUb0hhbmRsZXJzTWFwLmdldCh0eXBlKSA/PyBuZXcgU2V0KCk7XG4gICAgaGFuZGxlcnMuYWRkKGhhbmRsZXIpO1xuICAgIHRoaXMuX2FjdGlvblR5cGVUb0hhbmRsZXJzTWFwLnNldCh0eXBlLCBoYW5kbGVycyk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY29uc3QgaGFuZGxlcnMgPSB0aGlzLl9hY3Rpb25UeXBlVG9IYW5kbGVyc01hcC5nZXQodHlwZSkhO1xuICAgICAgaGFuZGxlcnMuZGVsZXRlKGhhbmRsZXIpO1xuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
2
|
import { ɵOrderedSubject } from '@ngxs/store/internals';
|
|
3
|
-
import { Observable } from 'rxjs';
|
|
4
|
-
import { share } from 'rxjs/operators';
|
|
3
|
+
import { Observable, Subject, filter, share } from 'rxjs';
|
|
5
4
|
import { leaveNgxs } from './operators/leave-ngxs';
|
|
6
5
|
import { InternalNgxsExecutionStrategy } from './execution/internal-ngxs-execution-strategy';
|
|
7
6
|
import * as i0 from "@angular/core";
|
|
@@ -10,16 +9,25 @@ import * as i1 from "./execution/internal-ngxs-execution-strategy";
|
|
|
10
9
|
* Internal Action stream that is emitted anytime an action is dispatched.
|
|
11
10
|
*/
|
|
12
11
|
export class InternalActions extends ɵOrderedSubject {
|
|
12
|
+
constructor() {
|
|
13
|
+
super();
|
|
14
|
+
// This subject will be the first to know about the dispatched action, its purpose is for
|
|
15
|
+
// any logic that must be executed before action handlers are invoked (i.e., cancelation).
|
|
16
|
+
this.dispatched$ = new Subject();
|
|
17
|
+
this.pipe(filter(ctx => ctx.status === "DISPATCHED" /* ActionStatus.Dispatched */)).subscribe(ctx => {
|
|
18
|
+
this.dispatched$.next(ctx);
|
|
19
|
+
});
|
|
20
|
+
}
|
|
13
21
|
ngOnDestroy() {
|
|
14
22
|
this.complete();
|
|
15
23
|
}
|
|
16
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: InternalActions, deps:
|
|
24
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: InternalActions, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
17
25
|
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: InternalActions, providedIn: 'root' }); }
|
|
18
26
|
}
|
|
19
27
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: InternalActions, decorators: [{
|
|
20
28
|
type: Injectable,
|
|
21
29
|
args: [{ providedIn: 'root' }]
|
|
22
|
-
}] });
|
|
30
|
+
}], ctorParameters: () => [] });
|
|
23
31
|
/**
|
|
24
32
|
* Action stream that is emitted anytime an action is dispatched.
|
|
25
33
|
*
|
|
@@ -49,4 +57,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImpor
|
|
|
49
57
|
type: Injectable,
|
|
50
58
|
args: [{ providedIn: 'root' }]
|
|
51
59
|
}], ctorParameters: () => [{ type: InternalActions }, { type: i1.InternalNgxsExecutionStrategy }] });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy1zdHJlYW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvYWN0aW9ucy1zdHJlYW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sOENBQThDLENBQUM7OztBQWtCN0Y7O0dBRUc7QUFFSCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxlQUE4QjtJQUtqRTtRQUNFLEtBQUssRUFBRSxDQUFDO1FBTFYseUZBQXlGO1FBQ3pGLDBGQUEwRjtRQUNqRixnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFpQixDQUFDO1FBS2xELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sK0NBQTRCLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUMvRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xCLENBQUM7aUlBZlUsZUFBZTtxSUFBZixlQUFlLGNBREYsTUFBTTs7MkZBQ25CLGVBQWU7a0JBRDNCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOztBQW1CbEM7Ozs7R0FJRztBQUVILE1BQU0sT0FBTyxPQUFRLFNBQVEsVUFBeUI7SUFDcEQsWUFDRSxnQkFBaUMsRUFDakMseUJBQXdEO1FBRXhELE1BQU0sc0JBQXNCLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUNsRCxTQUFTLENBQUMseUJBQXlCLENBQUM7UUFDcEMsbUVBQW1FO1FBQ25FLGtFQUFrRTtRQUNsRSxrRUFBa0U7UUFDbEUseUZBQXlGO1FBQ3pGLEtBQUssRUFBRSxDQUNSLENBQUM7UUFFRixLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDZixNQUFNLGlCQUFpQixHQUFHLHNCQUFzQixDQUFDLFNBQVMsQ0FBQztnQkFDekQsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7Z0JBQy9CLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO2dCQUNyQyxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRTthQUNwQyxDQUFDLENBQUM7WUFFSCxRQUFRLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO2lJQXZCVSxPQUFPO3FJQUFQLE9BQU8sY0FETSxNQUFNOzsyRkFDbkIsT0FBTztrQkFEbkIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IMm1T3JkZXJlZFN1YmplY3QgfSBmcm9tICdAbmd4cy9zdG9yZS9pbnRlcm5hbHMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgZmlsdGVyLCBzaGFyZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBsZWF2ZU5neHMgfSBmcm9tICcuL29wZXJhdG9ycy9sZWF2ZS1uZ3hzJztcbmltcG9ydCB7IEludGVybmFsTmd4c0V4ZWN1dGlvblN0cmF0ZWd5IH0gZnJvbSAnLi9leGVjdXRpb24vaW50ZXJuYWwtbmd4cy1leGVjdXRpb24tc3RyYXRlZ3knO1xuXG4vKipcbiAqIFN0YXR1cyBvZiBhIGRpc3BhdGNoZWQgYWN0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBlbnVtIEFjdGlvblN0YXR1cyB7XG4gIERpc3BhdGNoZWQgPSAnRElTUEFUQ0hFRCcsXG4gIFN1Y2Nlc3NmdWwgPSAnU1VDQ0VTU0ZVTCcsXG4gIENhbmNlbGVkID0gJ0NBTkNFTEVEJyxcbiAgRXJyb3JlZCA9ICdFUlJPUkVEJ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFjdGlvbkNvbnRleHQ8VCA9IGFueT4ge1xuICBzdGF0dXM6IEFjdGlvblN0YXR1cztcbiAgYWN0aW9uOiBUO1xuICBlcnJvcj86IEVycm9yO1xufVxuXG4vKipcbiAqIEludGVybmFsIEFjdGlvbiBzdHJlYW0gdGhhdCBpcyBlbWl0dGVkIGFueXRpbWUgYW4gYWN0aW9uIGlzIGRpc3BhdGNoZWQuXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgSW50ZXJuYWxBY3Rpb25zIGV4dGVuZHMgybVPcmRlcmVkU3ViamVjdDxBY3Rpb25Db250ZXh0PiBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIC8vIFRoaXMgc3ViamVjdCB3aWxsIGJlIHRoZSBmaXJzdCB0byBrbm93IGFib3V0IHRoZSBkaXNwYXRjaGVkIGFjdGlvbiwgaXRzIHB1cnBvc2UgaXMgZm9yXG4gIC8vIGFueSBsb2dpYyB0aGF0IG11c3QgYmUgZXhlY3V0ZWQgYmVmb3JlIGFjdGlvbiBoYW5kbGVycyBhcmUgaW52b2tlZCAoaS5lLiwgY2FuY2VsYXRpb24pLlxuICByZWFkb25seSBkaXNwYXRjaGVkJCA9IG5ldyBTdWJqZWN0PEFjdGlvbkNvbnRleHQ+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMucGlwZShmaWx0ZXIoY3R4ID0+IGN0eC5zdGF0dXMgPT09IEFjdGlvblN0YXR1cy5EaXNwYXRjaGVkKSkuc3Vic2NyaWJlKGN0eCA9PiB7XG4gICAgICB0aGlzLmRpc3BhdGNoZWQkLm5leHQoY3R4KTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY29tcGxldGUoKTtcbiAgfVxufVxuXG4vKipcbiAqIEFjdGlvbiBzdHJlYW0gdGhhdCBpcyBlbWl0dGVkIGFueXRpbWUgYW4gYWN0aW9uIGlzIGRpc3BhdGNoZWQuXG4gKlxuICogWW91IGNhbiBsaXN0ZW4gdG8gdGhpcyBpbiBzZXJ2aWNlcyB0byByZWFjdCB3aXRob3V0IHN0b3Jlcy5cbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBY3Rpb25zIGV4dGVuZHMgT2JzZXJ2YWJsZTxBY3Rpb25Db250ZXh0PiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIGludGVybmFsQWN0aW9ucyQ6IEludGVybmFsQWN0aW9ucyxcbiAgICBpbnRlcm5hbEV4ZWN1dGlvblN0cmF0ZWd5OiBJbnRlcm5hbE5neHNFeGVjdXRpb25TdHJhdGVneVxuICApIHtcbiAgICBjb25zdCBzaGFyZWRJbnRlcm5hbEFjdGlvbnMkID0gaW50ZXJuYWxBY3Rpb25zJC5waXBlKFxuICAgICAgbGVhdmVOZ3hzKGludGVybmFsRXhlY3V0aW9uU3RyYXRlZ3kpLFxuICAgICAgLy8gVGhlIGBJbnRlcm5hbEFjdGlvbnNgIHN1YmplY3QgZW1pdHMgb3V0c2lkZSBvZiB0aGUgQW5ndWxhciB6b25lLlxuICAgICAgLy8gV2UgaGF2ZSB0byByZS1lbnRlciB0aGUgQW5ndWxhciB6b25lIGZvciBhbnkgaW5jb21pbmcgY29uc3VtZXIuXG4gICAgICAvLyBUaGUgYHNoYXJlKClgIG9wZXJhdG9yIHJlZHVjZXMgdGhlIG51bWJlciBvZiBjaGFuZ2UgZGV0ZWN0aW9ucy5cbiAgICAgIC8vIFRoaXMgd291bGQgY2FsbCBsZWF2ZSBvbmx5IG9uY2UgZm9yIGFueSBzdHJlYW0gZW1pc3Npb24gYWNyb3NzIGFsbCBhY3RpdmUgc3Vic2NyaWJlcnMuXG4gICAgICBzaGFyZSgpXG4gICAgKTtcblxuICAgIHN1cGVyKG9ic2VydmVyID0+IHtcbiAgICAgIGNvbnN0IGNoaWxkU3Vic2NyaXB0aW9uID0gc2hhcmVkSW50ZXJuYWxBY3Rpb25zJC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiBjdHggPT4gb2JzZXJ2ZXIubmV4dChjdHgpLFxuICAgICAgICBlcnJvcjogZXJyb3IgPT4gb2JzZXJ2ZXIuZXJyb3IoZXJyb3IpLFxuICAgICAgICBjb21wbGV0ZTogKCkgPT4gb2JzZXJ2ZXIuY29tcGxldGUoKVxuICAgICAgfSk7XG5cbiAgICAgIG9ic2VydmVyLmFkZChjaGlsZFN1YnNjcmlwdGlvbik7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -74,7 +74,7 @@ export class LifecycleStateManager {
|
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
76
|
_getStateContext(mappedStore) {
|
|
77
|
-
return this._stateContextFactory.createStateContext(mappedStore);
|
|
77
|
+
return this._stateContextFactory.createStateContext(mappedStore.path);
|
|
78
78
|
}
|
|
79
79
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: LifecycleStateManager, deps: [{ token: i1.Store }, { token: i2.InternalStateOperations }, { token: i3.StateContextFactory }, { token: i4.ɵNgxsAppBootstrappedState }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
80
80
|
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: LifecycleStateManager, providedIn: 'root' }); }
|
|
@@ -83,4 +83,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImpor
|
|
|
83
83
|
type: Injectable,
|
|
84
84
|
args: [{ providedIn: 'root' }]
|
|
85
85
|
}], ctorParameters: () => [{ type: i1.Store }, { type: i2.InternalStateOperations }, { type: i3.StateContextFactory }, { type: i4.ɵNgxsAppBootstrappedState }] });
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlmZWN5Y2xlLXN0YXRlLW1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvaW50ZXJuYWwvbGlmZWN5Y2xlLXN0YXRlLW1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZGLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDakMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFN0QsT0FBTyxFQUFpQixnQkFBZ0IsRUFBZ0IsTUFBTSxZQUFZLENBQUM7QUFDM0UsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7OztBQUVsRixNQUFNLFdBQVcsR0FBRyxPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUyxDQUFDO0FBR2xFLE1BQU0sT0FBTyxxQkFBcUI7SUFLaEMsWUFDVSxNQUFhLEVBQ2Isd0JBQWlELEVBQ2pELG9CQUF5QyxFQUN6QyxxQkFBZ0Q7UUFIaEQsV0FBTSxHQUFOLE1BQU0sQ0FBTztRQUNiLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBeUI7UUFDakQseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFx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O1lBQ3JELElBQUksUUFBUSxDQUFDLGtCQUFrQixFQUFFLENBQUM7Z0JBQ2hDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztZQUNsRSxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxXQUF3QjtRQUMvQyxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEUsQ0FBQztpSUF0RlUscUJBQXFCO3FJQUFyQixxQkFBcUIsY0FEUixNQUFNOzsyRkFDbkIscUJBQXFCO2tCQURqQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgybVOZ3hzQXBwQm9vdHN0cmFwcGVkU3RhdGUgfSBmcm9tICdAbmd4cy9zdG9yZS9pbnRlcm5hbHMnO1xuaW1wb3J0IHsgZ2V0VmFsdWUsIEluaXRTdGF0ZSwgVXBkYXRlU3RhdGUgfSBmcm9tICdAbmd4cy9zdG9yZS9wbHVnaW5zJztcbmltcG9ydCB7IFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlciwgbWVyZ2VNYXAsIHBhaXJ3aXNlLCBzdGFydFdpdGgsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJy4uL3N0b3JlJztcbmltcG9ydCB7IFN0YXRlQ29udGV4dEZhY3RvcnkgfSBmcm9tICcuL3N0YXRlLWNvbnRleHQtZmFjdG9yeSc7XG5pbXBvcnQgeyBJbnRlcm5hbFN0YXRlT3BlcmF0aW9ucyB9IGZyb20gJy4vc3RhdGUtb3BlcmF0aW9ucyc7XG5pbXBvcnQgeyBNYXBwZWRTdG9yZSwgU3RhdGVzQW5kRGVmYXVsdHMgfSBmcm9tICcuL2ludGVybmFscyc7XG5pbXBvcnQgeyBOZ3hzTGlmZUN5Y2xlLCBOZ3hzU2ltcGxlQ2hhbmdlLCBTdGF0ZUNvbnRleHQgfSBmcm9tICcuLi9zeW1ib2xzJztcbmltcG9ydCB7IGdldEludmFsaWRJbml0aWFsaXphdGlvbk9yZGVyTWVzc2FnZSB9IGZyb20gJy4uL2NvbmZpZ3MvbWVzc2FnZXMuY29uZmlnJztcblxuY29uc3QgTkdfREVWX01PREUgPSB0eXBlb2YgbmdEZXZNb2RlICE9PSAndW5kZWZpbmVkJyAmJiBuZ0Rldk1vZGU7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgTGlmZWN5Y2xlU3RhdGVNYW5hZ2VyIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSQgPSBuZXcgUmVwbGF5U3ViamVjdDx2b2lkPigxKTtcblxuICBwcml2YXRlIF9pbml0U3RhdGVIYXNCZWVuRGlzcGF0Y2hlZD86IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfc3RvcmU6IFN0b3JlLFxuICAgIHByaXZhdGUgX2ludGVybmFsU3RhdGVPcGVyYXRpb25zOiBJbnRlcm5hbFN0YXRlT3BlcmF0aW9ucyxcbiAgICBwcml2YXRlIF9zdGF0ZUNvbnRleHRGYWN0b3J5OiBTdGF0ZUNvbnRleHRGYWN0b3J5LFxuICAgIHByaXZhdGUgX2FwcEJvb3RzdHJhcHBlZFN0YXRlOiDJtU5neHNBcHBCb290c3RyYXBwZWRTdGF0ZVxuICApIHt9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICB9XG5cbiAgbmd4c0Jvb3RzdHJhcChcbiAgICBhY3Rpb246IEluaXRTdGF0ZSB8IFVwZGF0ZVN0YXRlLFxuICAgIHJlc3VsdHM6IFN0YXRlc0FuZERlZmF1bHRzIHwgdW5kZWZpbmVkXG4gICk6IHZvaWQge1xuICAgIGlmIChOR19ERVZfTU9ERSkge1xuICAgICAgaWYgKGFjdGlvbiBpbnN0YW5jZW9mIEluaXRTdGF0ZSkge1xuICAgICAgICB0aGlzLl9pbml0U3RhdGVIYXNCZWVuRGlzcGF0Y2hlZCA9IHRydWU7XG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAvLyBUaGlzIGlzIGEgZGV2IG1vZGUtb25seSBjaGVjayB0aGF0IGVuc3VyZXMgdGhlIGNvcnJlY3Qgb3JkZXIgb2ZcbiAgICAgICAgLy8gc3RhdGUgaW5pdGlhbGl6YXRpb24uIFRoZSBgTmd4c01vZHVsZS5mb3JSb290YCBvciBgcHJvdmlkZVN0b3JlYCBzaG91bGRcbiAgICAgICAgLy8gYWx3YXlzIGNvbWUgZmlyc3QsIGZvbGxvd2VkIGJ5IGBmb3JGZWF0dXJlYCBhbmQgYHByb3ZpZGVTdGF0ZXNgLiBJZiB0aGVcbiAgICAgICAgLy8gYFVwZGF0ZVN0YXRlYCBpcyBkaXNwYXRjaGVkIGJlZm9yZSB0aGUgYEluaXRTdGF0ZWAgaXMgZGlzcGF0Y2hlZCwgaXQgaW5kaWNhdGVzXG4gICAgICAgIC8vIHRoYXQgbW9kdWxlcyBvciBwcm92aWRlcnMgYXJlIGluIGFuIGludmFsaWQgb3JkZXIuXG4gICAgICAgIGFjdGlvbiBpbnN0YW5jZW9mIFVwZGF0ZVN0YXRlICYmXG4gICAgICAgICF0aGlzLl9pbml0U3RhdGVIYXNCZWVuRGlzcGF0Y2hlZFxuICAgICAgKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZ2V0SW52YWxpZEluaXRpYWxpemF0aW9uT3JkZXJNZXNzYWdlKGFjdGlvbi5hZGRlZFN0YXRlcykpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuX2ludGVybmFsU3RhdGVPcGVyYXRpb25zXG4gICAgICAuZ2V0Um9vdFN0YXRlT3BlcmF0aW9ucygpXG4gICAgICAuZGlzcGF0Y2goYWN0aW9uKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoKSA9PiAhIXJlc3VsdHMpLFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5faW52b2tlSW5pdE9uU3RhdGVzKHJlc3VsdHMhLnN0YXRlcykpLFxuICAgICAgICBtZXJnZU1hcCgoKSA9PiB0aGlzLl9hcHBCb290c3RyYXBwZWRTdGF0ZSksXG4gICAgICAgIGZpbHRlcihhcHBCb290c3RyYXBwZWQgPT4gISFhcHBCb290c3RyYXBwZWQpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuX2ludm9rZUJvb3RzdHJhcE9uU3RhdGVzKHJlc3VsdHMhLnN0YXRlcykpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaW52b2tlSW5pdE9uU3RhdGVzKG1hcHBlZFN0b3JlczogTWFwcGVkU3RvcmVbXSk6IHZvaWQge1xuICAgIGZvciAoY29uc3QgbWFwcGVkU3RvcmUgb2YgbWFwcGVkU3RvcmVzKSB7XG4gICAgICBjb25zdCBpbnN0YW5jZTogTmd4c0xpZmVDeWNsZSA9IG1hcHBlZFN0b3JlLmluc3RhbmNlO1xuXG4gICAgICBpZiAoaW5zdGFuY2Uubmd4c09uQ2hhbmdlcykge1xuICAgICAgICB0aGlzLl9zdG9yZVxuICAgICAgICAgIC5zZWxlY3Qoc3RhdGUgPT4gZ2V0VmFsdWUoc3RhdGUsIG1hcHBlZFN0b3JlLnBhdGgpKVxuICAgICAgICAgIC5waXBlKHN0YXJ0V2l0aCh1bmRlZmluZWQpLCBwYWlyd2lzZSgpLCB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKFtwcmV2aW91c1ZhbHVlLCBjdXJyZW50VmFsdWVdKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjaGFuZ2UgPSBuZXcgTmd4c1NpbXBsZUNoYW5nZShcbiAgICAgICAgICAgICAgcHJldmlvdXNWYWx1ZSxcbiAgICAgICAgICAgICAgY3VycmVudFZhbHVlLFxuICAgICAgICAgICAgICAhbWFwcGVkU3RvcmUuaXNJbml0aWFsaXNlZFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGluc3RhbmNlLm5neHNPbkNoYW5nZXMhKGNoYW5nZSk7XG4gICAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChpbnN0YW5jZS5uZ3hzT25Jbml0KSB7XG4gICAgICAgIGluc3RhbmNlLm5neHNPbkluaXQodGhpcy5fZ2V0U3RhdGVDb250ZXh0KG1hcHBlZFN0b3JlKSk7XG4gICAgICB9XG5cbiAgICAgIG1hcHBlZFN0b3JlLmlzSW5pdGlhbGlzZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2ludm9rZUJvb3RzdHJhcE9uU3RhdGVzKG1hcHBlZFN0b3JlczogTWFwcGVkU3RvcmVbXSkge1xuICAgIGZvciAoY29uc3QgbWFwcGVkU3RvcmUgb2YgbWFwcGVkU3RvcmVzKSB7XG4gICAgICBjb25zdCBpbnN0YW5jZTogTmd4c0xpZmVDeWNsZSA9IG1hcHBlZFN0b3JlLmluc3RhbmNlO1xuICAgICAgaWYgKGluc3RhbmNlLm5neHNBZnRlckJvb3RzdHJhcCkge1xuICAgICAgICBpbnN0YW5jZS5uZ3hzQWZ0ZXJCb290c3RyYXAodGhpcy5fZ2V0U3RhdGVDb250ZXh0KG1hcHBlZFN0b3JlKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0U3RhdGVDb250ZXh0KG1hcHBlZFN0b3JlOiBNYXBwZWRTdG9yZSk6IFN0YXRlQ29udGV4dDxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGVDb250ZXh0RmFjdG9yeS5jcmVhdGVTdGF0ZUNvbnRleHQobWFwcGVkU3RvcmUucGF0aCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -16,25 +16,25 @@ export class StateContextFactory {
|
|
|
16
16
|
/**
|
|
17
17
|
* Create the state context
|
|
18
18
|
*/
|
|
19
|
-
createStateContext(
|
|
19
|
+
createStateContext(path) {
|
|
20
20
|
const root = this._internalStateOperations.getRootStateOperations();
|
|
21
21
|
return {
|
|
22
22
|
getState() {
|
|
23
23
|
const currentAppState = root.getState();
|
|
24
|
-
return getState(currentAppState,
|
|
24
|
+
return getState(currentAppState, path);
|
|
25
25
|
},
|
|
26
26
|
patchState(val) {
|
|
27
27
|
const currentAppState = root.getState();
|
|
28
28
|
const patchOperator = simplePatch(val);
|
|
29
|
-
setStateFromOperator(root, currentAppState, patchOperator,
|
|
29
|
+
setStateFromOperator(root, currentAppState, patchOperator, path);
|
|
30
30
|
},
|
|
31
31
|
setState(val) {
|
|
32
32
|
const currentAppState = root.getState();
|
|
33
33
|
if (isStateOperator(val)) {
|
|
34
|
-
setStateFromOperator(root, currentAppState, val,
|
|
34
|
+
setStateFromOperator(root, currentAppState, val, path);
|
|
35
35
|
}
|
|
36
36
|
else {
|
|
37
|
-
setStateValue(root, currentAppState, val,
|
|
37
|
+
setStateValue(root, currentAppState, val, path);
|
|
38
38
|
}
|
|
39
39
|
},
|
|
40
40
|
dispatch(actions) {
|
|
@@ -68,4 +68,4 @@ function setStateFromOperator(root, currentAppState, stateOperator, path) {
|
|
|
68
68
|
function getState(currentAppState, path) {
|
|
69
69
|
return getValue(currentAppState, path);
|
|
70
70
|
}
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtY29udGV4dC1mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RvcmUvc3JjL2ludGVybmFsL3N0YXRlLWNvbnRleHQtZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekQsT0FBTyxFQUFnQyxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUt0RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7OztBQUVoRDs7O0dBR0c7QUFFSCxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLFlBQW9CLHdCQUFpRDtRQUFqRCw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQXlCO0lBQUcsQ0FBQztJQUV6RTs7T0FFRztJQUNILGtCQUFrQixDQUFJLElBQVk7UUFDaEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFFcEUsT0FBTztZQUNMLFFBQVE7Z0JBQ04sTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN4QyxPQUFPLFFBQVEsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDekMsQ0FBQztZQUNELFVBQVUsQ0FBQyxHQUFlO2dCQUN4QixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3hDLE1BQU0sYUFBYSxHQUFHLFdBQVcsQ0FBSSxHQUFHLENBQUMsQ0FBQztnQkFDMUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDbkUsQ0FBQztZQUNELFFBQVEsQ0FBQyxHQUF5QjtnQkFDaEMsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN4QyxJQUFJLGVBQWUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUN6QixvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDekQsQ0FBQztxQkFBTSxDQUFDO29CQUNOLGFBQWEsQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDbEQsQ0FBQztZQUNILENBQUM7WUFDRCxRQUFRLENBQUMsT0FBb0I7Z0JBQzNCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNoQyxDQUFDO1NBQ0YsQ0FBQztJQUNKLENBQUM7aUlBL0JVLG1CQUFtQjtxSUFBbkIsbUJBQW1CLGNBRE4sTUFBTTs7MkZBQ25CLG1CQUFtQjtrQkFEL0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7O0FBbUNsQyxTQUFTLGFBQWEsQ0FDcEIsSUFBMEIsRUFDMUIsZUFBb0IsRUFDcEIsUUFBVyxFQUNYLElBQVk7SUFFWixNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsZUFBZSxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM5RCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzNCLE9BQU8sV0FBVyxDQUFDO0lBQ25CLHNFQUFzRTtJQUN0RSw2REFBNkQ7SUFDN0Qsb0RBQW9EO0lBQ3BELG9HQUFvRztJQUNwRyxzREFBc0Q7SUFDdEQsNEVBQTRFO0FBQzlFLENBQUM7QUFFRCxTQUFTLG9CQUFvQixDQUMzQixJQUEwQixFQUMxQixlQUFvQixFQUNwQixhQUErQixFQUMvQixJQUFZO0lBRVosTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5QyxNQUFNLFFBQVEsR0FBRyxhQUFhLENBQUMsS0FBeUIsQ0FBQyxDQUFDO0lBQzFELE9BQU8sYUFBYSxDQUFDLElBQUksRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQzlELENBQUM7QUFFRCxTQUFTLFFBQVEsQ0FBSSxlQUFvQixFQUFFLElBQVk7SUFDckQsT0FBTyxRQUFRLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBnZXRWYWx1ZSwgc2V0VmFsdWUgfSBmcm9tICdAbmd4cy9zdG9yZS9wbHVnaW5zJztcbmltcG9ydCB7IEV4aXN0aW5nU3RhdGUsIFN0YXRlT3BlcmF0b3IsIGlzU3RhdGVPcGVyYXRvciB9IGZyb20gJ0BuZ3hzL3N0b3JlL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFN0YXRlQ29udGV4dCB9IGZyb20gJy4uL3N5bWJvbHMnO1xuaW1wb3J0IHsgU3RhdGVPcGVyYXRpb25zIH0gZnJvbSAnLi4vaW50ZXJuYWwvaW50ZXJuYWxzJztcbmltcG9ydCB7IEludGVybmFsU3RhdGVPcGVyYXRpb25zIH0gZnJvbSAnLi4vaW50ZXJuYWwvc3RhdGUtb3BlcmF0aW9ucyc7XG5pbXBvcnQgeyBzaW1wbGVQYXRjaCB9IGZyb20gJy4vc3RhdGUtb3BlcmF0b3JzJztcblxuLyoqXG4gKiBTdGF0ZSBDb250ZXh0IGZhY3RvcnkgY2xhc3NcbiAqIEBpZ25vcmVcbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBTdGF0ZUNvbnRleHRGYWN0b3J5IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfaW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnM6IEludGVybmFsU3RhdGVPcGVyYXRpb25zKSB7fVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgdGhlIHN0YXRlIGNvbnRleHRcbiAgICovXG4gIGNyZWF0ZVN0YXRlQ29udGV4dDxUPihwYXRoOiBzdHJpbmcpOiBTdGF0ZUNvbnRleHQ8VD4ge1xuICAgIGNvbnN0IHJvb3QgPSB0aGlzLl9pbnRlcm5hbFN0YXRlT3BlcmF0aW9ucy5nZXRSb290U3RhdGVPcGVyYXRpb25zKCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZ2V0U3RhdGUoKTogVCB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRBcHBTdGF0ZSA9IHJvb3QuZ2V0U3RhdGUoKTtcbiAgICAgICAgcmV0dXJuIGdldFN0YXRlKGN1cnJlbnRBcHBTdGF0ZSwgcGF0aCk7XG4gICAgICB9LFxuICAgICAgcGF0Y2hTdGF0ZSh2YWw6IFBhcnRpYWw8VD4pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY3VycmVudEFwcFN0YXRlID0gcm9vdC5nZXRTdGF0ZSgpO1xuICAgICAgICBjb25zdCBwYXRjaE9wZXJhdG9yID0gc2ltcGxlUGF0Y2g8VD4odmFsKTtcbiAgICAgICAgc2V0U3RhdGVGcm9tT3BlcmF0b3Iocm9vdCwgY3VycmVudEFwcFN0YXRlLCBwYXRjaE9wZXJhdG9yLCBwYXRoKTtcbiAgICAgIH0sXG4gICAgICBzZXRTdGF0ZSh2YWw6IFQgfCBTdGF0ZU9wZXJhdG9yPFQ+KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRBcHBTdGF0ZSA9IHJvb3QuZ2V0U3RhdGUoKTtcbiAgICAgICAgaWYgKGlzU3RhdGVPcGVyYXRvcih2YWwpKSB7XG4gICAgICAgICAgc2V0U3RhdGVGcm9tT3BlcmF0b3Iocm9vdCwgY3VycmVudEFwcFN0YXRlLCB2YWwsIHBhdGgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNldFN0YXRlVmFsdWUocm9vdCwgY3VycmVudEFwcFN0YXRlLCB2YWwsIHBhdGgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZGlzcGF0Y2goYWN0aW9uczogYW55IHwgYW55W10pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHJvb3QuZGlzcGF0Y2goYWN0aW9ucyk7XG4gICAgICB9XG4gICAgfTtcbiAgfVxufVxuXG5mdW5jdGlvbiBzZXRTdGF0ZVZhbHVlPFQ+KFxuICByb290OiBTdGF0ZU9wZXJhdGlvbnM8YW55PixcbiAgY3VycmVudEFwcFN0YXRlOiBhbnksXG4gIG5ld1ZhbHVlOiBULFxuICBwYXRoOiBzdHJpbmdcbik6IGFueSB7XG4gIGNvbnN0IG5ld0FwcFN0YXRlID0gc2V0VmFsdWUoY3VycmVudEFwcFN0YXRlLCBwYXRoLCBuZXdWYWx1ZSk7XG4gIHJvb3Quc2V0U3RhdGUobmV3QXBwU3RhdGUpO1xuICByZXR1cm4gbmV3QXBwU3RhdGU7XG4gIC8vIEluIGRvaW5nIHRoaXMgcmVmYWN0b3JpbmcgSSBub3RpY2VkIHRoYXQgdGhlcmUgaXMgYSAnYnVnJyB3aGVyZSB0aGVcbiAgLy8gYXBwbGljYXRpb24gc3RhdGUgaXMgcmV0dXJuZWQgaW5zdGVhZCBvZiB0aGlzIHN0YXRlIHNsaWNlLlxuICAvLyBUaGlzIGhhcyB3b3JrZWQgdGhpcyB3YXkgc2luY2UgdGhlIGJlZ2lubmluZyBzZWU6XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9uZ3hzL3N0b3JlL2JsYW1lLzMyNGM2NjdiNGI3ZGViZDhlYjk3OTAwNmM2N2NhMGFlMzQ3ZDg4Y2Qvc3JjL3N0YXRlLWZhY3RvcnkudHNcbiAgLy8gVGhpcyBuZWVkcyB0byBiZSBmaXhlZCwgYnV0IGlzIGEgJ2JyZWFraW5nJyBjaGFuZ2UuXG4gIC8vIEkgd2lsbCBkbyB0aGlzIGZpeCBpbiBhIHN1YnNlcXVlbnQgUFIgYW5kIHdlIGNhbiBkZWNpZGUgaG93IHRvIGhhbmRsZSBpdC5cbn1cblxuZnVuY3Rpb24gc2V0U3RhdGVGcm9tT3BlcmF0b3I8VD4oXG4gIHJvb3Q6IFN0YXRlT3BlcmF0aW9uczxhbnk+LFxuICBjdXJyZW50QXBwU3RhdGU6IGFueSxcbiAgc3RhdGVPcGVyYXRvcjogU3RhdGVPcGVyYXRvcjxUPixcbiAgcGF0aDogc3RyaW5nXG4pIHtcbiAgY29uc3QgbG9jYWwgPSBnZXRTdGF0ZShjdXJyZW50QXBwU3RhdGUsIHBhdGgpO1xuICBjb25zdCBuZXdWYWx1ZSA9IHN0YXRlT3BlcmF0b3IobG9jYWwgYXMgRXhpc3RpbmdTdGF0ZTxUPik7XG4gIHJldHVybiBzZXRTdGF0ZVZhbHVlKHJvb3QsIGN1cnJlbnRBcHBTdGF0ZSwgbmV3VmFsdWUsIHBhdGgpO1xufVxuXG5mdW5jdGlvbiBnZXRTdGF0ZTxUPihjdXJyZW50QXBwU3RhdGU6IGFueSwgcGF0aDogc3RyaW5nKTogVCB7XG4gIHJldHVybiBnZXRWYWx1ZShjdXJyZW50QXBwU3RhdGUsIHBhdGgpO1xufVxuIl19
|