@ngxs/store 3.8.1-dev.master-5942e46 → 3.8.1-dev.master-9b1dc3e
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/esm2020/src/configs/messages.config.mjs +13 -1
- package/esm2020/src/internal/lifecycle-state-manager.mjs +19 -1
- package/fesm2015/ngxs-store.mjs +41 -13
- package/fesm2015/ngxs-store.mjs.map +1 -1
- package/fesm2020/ngxs-store.mjs +41 -13
- package/fesm2020/ngxs-store.mjs.map +1 -1
- package/package.json +1 -1
- package/src/configs/messages.config.d.ts +2 -0
- package/src/internal/lifecycle-state-manager.d.ts +3 -1
|
@@ -24,6 +24,18 @@ export function getZoneWarningMessage() {
|
|
|
24
24
|
export function getUndecoratedStateInIvyWarningMessage(name) {
|
|
25
25
|
return `'${name}' class should be decorated with @Injectable() right after the @State() decorator`;
|
|
26
26
|
}
|
|
27
|
+
export function getInvalidInitializationOrderMessage(addedStates) {
|
|
28
|
+
let message = 'You have an invalid state initialization order. This typically occurs when `NgxsModule.forFeature`\n' +
|
|
29
|
+
'or `provideStates` is called before `NgxsModule.forRoot` or `provideStore`.\n' +
|
|
30
|
+
'One example is when `NgxsRouterPluginModule.forRoot` is called before `NgxsModule.forRoot`.';
|
|
31
|
+
if (addedStates) {
|
|
32
|
+
const stateNames = Object.keys(addedStates).map(stateName => `"${stateName}"`);
|
|
33
|
+
message +=
|
|
34
|
+
'\nFeature states added before the store initialization is complete: ' +
|
|
35
|
+
`${stateNames.join(', ')}.`;
|
|
36
|
+
}
|
|
37
|
+
return message;
|
|
38
|
+
}
|
|
27
39
|
export function throwSelectFactoryNotConnectedError() {
|
|
28
40
|
throw new Error('You have forgotten to import the NGXS module!');
|
|
29
41
|
}
|
|
@@ -33,4 +45,4 @@ export function throwPatchingArrayError() {
|
|
|
33
45
|
export function throwPatchingPrimitiveError() {
|
|
34
46
|
throw new Error('Patching primitives is not supported.');
|
|
35
47
|
}
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZXMuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RvcmUvc3JjL2NvbmZpZ3MvbWVzc2FnZXMuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxJQUFZO0lBQzlDLE1BQU0sSUFBSSxLQUFLLENBQ2IsR0FBRyxJQUFJLDBFQUEwRSxDQUNsRixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSwyQkFBMkI7SUFDekMsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO0FBQzdELENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQ25DLE9BQWUsRUFDZixPQUFlLEVBQ2YsT0FBZTtJQUVmLE1BQU0sSUFBSSxLQUFLLENBQUMsZUFBZSxPQUFPLFVBQVUsT0FBTyxzQkFBc0IsT0FBTyxHQUFHLENBQUMsQ0FBQztBQUMzRixDQUFDO0FBRUQsTUFBTSxVQUFVLHdCQUF3QixDQUFDLElBQVk7SUFDbkQsTUFBTSxJQUFJLEtBQUssQ0FBQywwREFBMEQsSUFBSSxVQUFVLENBQUMsQ0FBQztBQUM1RixDQUFDO0FBRUQsTUFBTSxVQUFVLHlCQUF5QjtJQUN2QyxNQUFNLElBQUksS0FBSyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7QUFDN0UsQ0FBQztBQUVELE1BQU0sVUFBVSwyQkFBMkI7SUFDekMsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0FBQ3JELENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCO0lBQ25DLE9BQU8sQ0FDTCw2R0FBNkc7UUFDN0csd0ZBQXdGO1FBQ3hGLDhFQUE4RSxDQUMvRSxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxzQ0FBc0MsQ0FBQyxJQUFZO0lBQ2pFLE9BQU8sSUFBSSxJQUFJLG1GQUFtRixDQUFDO0FBQ3JHLENBQUM7QUFFRCxNQUFNLFVBQVUsb0NBQW9DLENBQUMsV0FBeUI7SUFDNUUsSUFBSSxPQUFPLEdBQ1Qsc0dBQXNHO1FBQ3RHLCtFQUErRTtRQUMvRSw2RkFBNkYsQ0FBQztJQUVoRyxJQUFJLFdBQVcsRUFBRTtRQUNmLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBRS9FLE9BQU87WUFDTCxzRUFBc0U7Z0JBQ3RFLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO0tBQy9CO0lBRUQsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQUVELE1BQU0sVUFBVSxtQ0FBbUM7SUFDakQsTUFBTSxJQUFJLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO0FBQ25FLENBQUM7QUFFRCxNQUFNLFVBQVUsdUJBQXVCO0lBQ3JDLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQztBQUN2RCxDQUFDO0FBRUQsTUFBTSxVQUFVLDJCQUEyQjtJQUN6QyxNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7QUFDM0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWluT2JqZWN0IH0gZnJvbSAnQG5neHMvc3RvcmUvaW50ZXJuYWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHRocm93U3RhdGVOYW1lRXJyb3IobmFtZTogc3RyaW5nKTogbmV2ZXIge1xuICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgYCR7bmFtZX0gaXMgbm90IGEgdmFsaWQgc3RhdGUgbmFtZS4gSXQgbmVlZHMgdG8gYmUgYSB2YWxpZCBvYmplY3QgcHJvcGVydHkgbmFtZS5gXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd1N0YXRlTmFtZVByb3BlcnR5RXJyb3IoKTogbmV2ZXIge1xuICB0aHJvdyBuZXcgRXJyb3IoYFN0YXRlcyBtdXN0IHJlZ2lzdGVyIGEgJ25hbWUnIHByb3BlcnR5LmApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGhyb3dTdGF0ZVVuaXF1ZUVycm9yKFxuICBjdXJyZW50OiBzdHJpbmcsXG4gIG5ld05hbWU6IHN0cmluZyxcbiAgb2xkTmFtZTogc3RyaW5nXG4pOiBuZXZlciB7XG4gIHRocm93IG5ldyBFcnJvcihgU3RhdGUgbmFtZSAnJHtjdXJyZW50fScgZnJvbSAke25ld05hbWV9IGFscmVhZHkgZXhpc3RzIGluICR7b2xkTmFtZX0uYCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd1N0YXRlRGVjb3JhdG9yRXJyb3IobmFtZTogc3RyaW5nKTogbmV2ZXIge1xuICB0aHJvdyBuZXcgRXJyb3IoYFN0YXRlcyBtdXN0IGJlIGRlY29yYXRlZCB3aXRoIEBTdGF0ZSgpIGRlY29yYXRvciwgYnV0IFwiJHtuYW1lfVwiIGlzbid0LmApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGhyb3dBY3Rpb25EZWNvcmF0b3JFcnJvcigpOiBuZXZlciB7XG4gIHRocm93IG5ldyBFcnJvcignQEFjdGlvbigpIGRlY29yYXRvciBjYW5ub3QgYmUgdXNlZCB3aXRoIHN0YXRpYyBtZXRob2RzLicpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGhyb3dTZWxlY3RvckRlY29yYXRvckVycm9yKCk6IG5ldmVyIHtcbiAgdGhyb3cgbmV3IEVycm9yKCdTZWxlY3RvcnMgb25seSB3b3JrIG9uIG1ldGhvZHMuJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRab25lV2FybmluZ01lc3NhZ2UoKTogc3RyaW5nIHtcbiAgcmV0dXJuIChcbiAgICAnWW91ciBhcHBsaWNhdGlvbiB3YXMgYm9vdHN0cmFwcGVkIHdpdGggbm9vcGVkIHpvbmUgYW5kIHlvdXIgZXhlY3V0aW9uIHN0cmF0ZWd5IHJlcXVpcmVzIGFuIGFjdHVhbCBOZ1pvbmUhXFxuJyArXG4gICAgJ1BsZWFzZSBzZXQgdGhlIHZhbHVlIG9mIHRoZSBleGVjdXRpb25TdHJhdGVneSBwcm9wZXJ0eSB0byBOb29wTmd4c0V4ZWN1dGlvblN0cmF0ZWd5LlxcbicgK1xuICAgICdOZ3hzTW9kdWxlLmZvclJvb3Qoc3RhdGVzLCB7IGV4ZWN1dGlvblN0cmF0ZWd5OiBOb29wTmd4c0V4ZWN1dGlvblN0cmF0ZWd5IH0pJ1xuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VW5kZWNvcmF0ZWRTdGF0ZUluSXZ5V2FybmluZ01lc3NhZ2UobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGAnJHtuYW1lfScgY2xhc3Mgc2hvdWxkIGJlIGRlY29yYXRlZCB3aXRoIEBJbmplY3RhYmxlKCkgcmlnaHQgYWZ0ZXIgdGhlIEBTdGF0ZSgpIGRlY29yYXRvcmA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnZhbGlkSW5pdGlhbGl6YXRpb25PcmRlck1lc3NhZ2UoYWRkZWRTdGF0ZXM/OiBQbGFpbk9iamVjdCkge1xuICBsZXQgbWVzc2FnZSA9XG4gICAgJ1lvdSBoYXZlIGFuIGludmFsaWQgc3RhdGUgaW5pdGlhbGl6YXRpb24gb3JkZXIuIFRoaXMgdHlwaWNhbGx5IG9jY3VycyB3aGVuIGBOZ3hzTW9kdWxlLmZvckZlYXR1cmVgXFxuJyArXG4gICAgJ29yIGBwcm92aWRlU3RhdGVzYCBpcyBjYWxsZWQgYmVmb3JlIGBOZ3hzTW9kdWxlLmZvclJvb3RgIG9yIGBwcm92aWRlU3RvcmVgLlxcbicgK1xuICAgICdPbmUgZXhhbXBsZSBpcyB3aGVuIGBOZ3hzUm91dGVyUGx1Z2luTW9kdWxlLmZvclJvb3RgIGlzIGNhbGxlZCBiZWZvcmUgYE5neHNNb2R1bGUuZm9yUm9vdGAuJztcblxuICBpZiAoYWRkZWRTdGF0ZXMpIHtcbiAgICBjb25zdCBzdGF0ZU5hbWVzID0gT2JqZWN0LmtleXMoYWRkZWRTdGF0ZXMpLm1hcChzdGF0ZU5hbWUgPT4gYFwiJHtzdGF0ZU5hbWV9XCJgKTtcblxuICAgIG1lc3NhZ2UgKz1cbiAgICAgICdcXG5GZWF0dXJlIHN0YXRlcyBhZGRlZCBiZWZvcmUgdGhlIHN0b3JlIGluaXRpYWxpemF0aW9uIGlzIGNvbXBsZXRlOiAnICtcbiAgICAgIGAke3N0YXRlTmFtZXMuam9pbignLCAnKX0uYDtcbiAgfVxuXG4gIHJldHVybiBtZXNzYWdlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGhyb3dTZWxlY3RGYWN0b3J5Tm90Q29ubmVjdGVkRXJyb3IoKTogbmV2ZXIge1xuICB0aHJvdyBuZXcgRXJyb3IoJ1lvdSBoYXZlIGZvcmdvdHRlbiB0byBpbXBvcnQgdGhlIE5HWFMgbW9kdWxlIScpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGhyb3dQYXRjaGluZ0FycmF5RXJyb3IoKTogbmV2ZXIge1xuICB0aHJvdyBuZXcgRXJyb3IoJ1BhdGNoaW5nIGFycmF5cyBpcyBub3Qgc3VwcG9ydGVkLicpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGhyb3dQYXRjaGluZ1ByaW1pdGl2ZUVycm9yKCk6IG5ldmVyIHtcbiAgdGhyb3cgbmV3IEVycm9yKCdQYXRjaGluZyBwcmltaXRpdmVzIGlzIG5vdCBzdXBwb3J0ZWQuJyk7XG59XG4iXX0=
|
|
@@ -5,15 +5,18 @@ import { catchError, filter, mergeMap, pairwise, startWith, takeUntil, tap } fro
|
|
|
5
5
|
import { Store } from '../store';
|
|
6
6
|
import { getValue } from '../utils/utils';
|
|
7
7
|
import { InternalErrorReporter } from './error-handler';
|
|
8
|
+
import { InitState, UpdateState } from '../actions/actions';
|
|
8
9
|
import { StateContextFactory } from './state-context-factory';
|
|
9
10
|
import { InternalStateOperations } from './state-operations';
|
|
10
11
|
import { NgxsSimpleChange } from '../symbols';
|
|
12
|
+
import { getInvalidInitializationOrderMessage } from '../configs/messages.config';
|
|
11
13
|
import * as i0 from "@angular/core";
|
|
12
14
|
import * as i1 from "../store";
|
|
13
15
|
import * as i2 from "./error-handler";
|
|
14
16
|
import * as i3 from "./state-operations";
|
|
15
17
|
import * as i4 from "./state-context-factory";
|
|
16
18
|
import * as i5 from "@ngxs/store/internals";
|
|
19
|
+
const NG_DEV_MODE = typeof ngDevMode === 'undefined' || ngDevMode;
|
|
17
20
|
export class LifecycleStateManager {
|
|
18
21
|
constructor(_store, _internalErrorReporter, _internalStateOperations, _stateContextFactory, _bootstrapper) {
|
|
19
22
|
this._store = _store;
|
|
@@ -27,6 +30,21 @@ export class LifecycleStateManager {
|
|
|
27
30
|
this._destroy$.next();
|
|
28
31
|
}
|
|
29
32
|
ngxsBootstrap(action, results) {
|
|
33
|
+
if (NG_DEV_MODE) {
|
|
34
|
+
if (action instanceof InitState) {
|
|
35
|
+
this._initStateHasBeenDispatched = true;
|
|
36
|
+
}
|
|
37
|
+
else if (
|
|
38
|
+
// This is a dev mode-only check that ensures the correct order of
|
|
39
|
+
// state initialization. The `NgxsModule.forRoot` or `provideStore` should
|
|
40
|
+
// always come first, followed by `forFeature` and `provideStates`. If the
|
|
41
|
+
// `UpdateState` is dispatched before the `InitState` is dispatched, it indicates
|
|
42
|
+
// that modules or providers are in an invalid order.
|
|
43
|
+
action instanceof UpdateState &&
|
|
44
|
+
!this._initStateHasBeenDispatched) {
|
|
45
|
+
console.error(getInvalidInitializationOrderMessage(action.addedStates));
|
|
46
|
+
}
|
|
47
|
+
}
|
|
30
48
|
this._internalStateOperations
|
|
31
49
|
.getRootStateOperations()
|
|
32
50
|
.dispatch(action)
|
|
@@ -76,4 +94,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImpor
|
|
|
76
94
|
type: Injectable,
|
|
77
95
|
args: [{ providedIn: 'root' }]
|
|
78
96
|
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.InternalErrorReporter }, { type: i3.InternalStateOperations }, { type: i4.StateContextFactory }, { type: i5.NgxsBootstrapper }]; } });
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlmZWN5Y2xlLXN0YXRlLW1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvaW50ZXJuYWwvbGlmZWN5Y2xlLXN0YXRlLW1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQ0wsVUFBVSxFQUNWLE1BQU0sRUFDTixRQUFRLEVBQ1IsUUFBUSxFQUNSLFNBQVMsRUFDVCxTQUFTLEVBQ1QsR0FBRyxFQUNKLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNqQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFN0QsT0FBTyxFQUFpQixnQkFBZ0IsRUFBZ0IsTUFBTSxZQUFZLENBQUM7Ozs7Ozs7QUFHM0UsTUFBTSxPQUFPLHFCQUFxQjtJQUdoQyxZQUNVLE1BQWEsRUFDYixzQkFBNkMsRUFDN0Msd0JBQWlELEVBQ2pELG9CQUF5QyxFQUN6QyxhQUErQjtRQUovQixXQUFNLEdBQU4sTUFBTSxDQUFPO1FBQ2IsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF1QjtRQUM3Qyw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQXlCO1FBQ2pELHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBcUI7UUFDekMsa0JB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QUFDLENBQUM7SUFDbkUsQ0FBQzs7cUlBMUVVLHFCQUFxQjt5SUFBckIscUJBQXFCLGNBRFIsTUFBTTsyRkFDbkIscUJBQXFCO2tCQURqQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd4c0Jvb3RzdHJhcHBlciB9IGZyb20gJ0BuZ3hzL3N0b3JlL2ludGVybmFscyc7XG5pbXBvcnQgeyBFTVBUWSwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgY2F0Y2hFcnJvcixcbiAgZmlsdGVyLFxuICBtZXJnZU1hcCxcbiAgcGFpcndpc2UsXG4gIHN0YXJ0V2l0aCxcbiAgdGFrZVVudGlsLFxuICB0YXBcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJy4uL3N0b3JlJztcbmltcG9ydCB7IGdldFZhbHVlIH0gZnJvbSAnLi4vdXRpbHMvdXRpbHMnO1xuaW1wb3J0IHsgSW50ZXJuYWxFcnJvclJlcG9ydGVyIH0gZnJvbSAnLi9lcnJvci1oYW5kbGVyJztcbmltcG9ydCB7IFN0YXRlQ29udGV4dEZhY3RvcnkgfSBmcm9tICcuL3N0YXRlLWNvbnRleHQtZmFjdG9yeSc7XG5pbXBvcnQgeyBJbnRlcm5hbFN0YXRlT3BlcmF0aW9ucyB9IGZyb20gJy4vc3RhdGUtb3BlcmF0aW9ucyc7XG5pbXBvcnQgeyBNYXBwZWRTdG9yZSwgU3RhdGVzQW5kRGVmYXVsdHMgfSBmcm9tICcuL2ludGVybmFscyc7XG5pbXBvcnQgeyBOZ3hzTGlmZUN5Y2xlLCBOZ3hzU2ltcGxlQ2hhbmdlLCBTdGF0ZUNvbnRleHQgfSBmcm9tICcuLi9zeW1ib2xzJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBMaWZlY3ljbGVTdGF0ZU1hbmFnZXIgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95JCA9IG5ldyBSZXBsYXlTdWJqZWN0PHZvaWQ+KDEpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX3N0b3JlOiBTdG9yZSxcbiAgICBwcml2YXRlIF9pbnRlcm5hbEVycm9yUmVwb3J0ZXI6IEludGVybmFsRXJyb3JSZXBvcnRlcixcbiAgICBwcml2YXRlIF9pbnRlcm5hbFN0YXRlT3BlcmF0aW9uczogSW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnMsXG4gICAgcHJpdmF0ZSBfc3RhdGVDb250ZXh0RmFjdG9yeTogU3RhdGVDb250ZXh0RmFjdG9yeSxcbiAgICBwcml2YXRlIF9ib290c3RyYXBwZXI6IE5neHNCb290c3RyYXBwZXJcbiAgKSB7fVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgfVxuXG4gIG5neHNCb290c3RyYXA8VD4oYWN0aW9uOiBULCByZXN1bHRzOiBTdGF0ZXNBbmREZWZhdWx0cyB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIHRoaXMuX2ludGVybmFsU3RhdGVPcGVyYXRpb25zXG4gICAgICAuZ2V0Um9vdFN0YXRlT3BlcmF0aW9ucygpXG4gICAgICAuZGlzcGF0Y2goYWN0aW9uKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoKSA9PiAhIXJlc3VsdHMpLFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5faW52b2tlSW5pdE9uU3RhdGVzKHJlc3VsdHMhLnN0YXRlcykpLFxuICAgICAgICBtZXJnZU1hcCgoKSA9PiB0aGlzLl9ib290c3RyYXBwZXIuYXBwQm9vdHN0cmFwcGVkJCksXG4gICAgICAgIGZpbHRlcihhcHBCb290c3RyYXBwZWQgPT4gISFhcHBCb290c3RyYXBwZWQpLFxuICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgICAvLyBUaGUgYFNhZmVTdWJzY3JpYmVyYCAod2hpY2ggaXMgdXNlZCBieSBtb3N0IFJ4SlMgb3BlcmF0b3JzKSByZS10aHJvd3NcbiAgICAgICAgICAvLyBlcnJvcnMgYXN5bmNocm9ub3VzbHkgKGBzZXRUaW1lb3V0KCgpID0+IHsgdGhyb3cgZXJyb3IgfSlgKS4gVGhpcyBtaWdodFxuICAgICAgICAgIC8vIGJyZWFrIGV4aXN0aW5nIHVzZXIncyBjb2RlIG9yIHVuaXQgdGVzdHMuIFdlIGNhdGNoIHRoZSBlcnJvciBtYW51YWxseSB0b1xuICAgICAgICAgIC8vIGJlIGJhY2t3YXJkIGNvbXBhdGlibGUgd2l0aCB0aGUgb2xkIGJlaGF2aW9yLlxuICAgICAgICAgIHRoaXMuX2ludGVybmFsRXJyb3JSZXBvcnRlci5yZXBvcnRFcnJvclNhZmVseShlcnJvcik7XG4gICAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgICB9KSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9pbnZva2VCb290c3RyYXBPblN0YXRlcyhyZXN1bHRzIS5zdGF0ZXMpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2ludm9rZUluaXRPblN0YXRlcyhtYXBwZWRTdG9yZXM6IE1hcHBlZFN0b3JlW10pOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IG1hcHBlZFN0b3JlIG9mIG1hcHBlZFN0b3Jlcykge1xuICAgICAgY29uc3QgaW5zdGFuY2U6IE5neHNMaWZlQ3ljbGUgPSBtYXBwZWRTdG9yZS5pbnN0YW5jZTtcblxuICAgICAgaWYgKGluc3RhbmNlLm5neHNPbkNoYW5nZXMpIHtcbiAgICAgICAgdGhpcy5fc3RvcmVcbiAgICAgICAgICAuc2VsZWN0KHN0YXRlID0+IGdldFZhbHVlKHN0YXRlLCBtYXBwZWRTdG9yZS5wYXRoKSlcbiAgICAgICAgICAucGlwZShzdGFydFdpdGgodW5kZWZpbmVkKSwgcGFpcndpc2UoKSwgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcbiAgICAgICAgICAuc3Vic2NyaWJlKChbcHJldmlvdXNWYWx1ZSwgY3VycmVudFZhbHVlXSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY2hhbmdlID0gbmV3IE5neHNTaW1wbGVDaGFuZ2UoXG4gICAgICAgICAgICAgIHByZXZpb3VzVmFsdWUsXG4gICAgICAgICAgICAgIGN1cnJlbnRWYWx1ZSxcbiAgICAgICAgICAgICAgIW1hcHBlZFN0b3JlLmlzSW5pdGlhbGlzZWRcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpbnN0YW5jZS5uZ3hzT25DaGFuZ2VzIShjaGFuZ2UpO1xuICAgICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICBpZiAoaW5zdGFuY2Uubmd4c09uSW5pdCkge1xuICAgICAgICBpbnN0YW5jZS5uZ3hzT25Jbml0KHRoaXMuX2dldFN0YXRlQ29udGV4dChtYXBwZWRTdG9yZSkpO1xuICAgICAgfVxuXG4gICAgICBtYXBwZWRTdG9yZS5pc0luaXRpYWxpc2VkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9pbnZva2VCb290c3RyYXBPblN0YXRlcyhtYXBwZWRTdG9yZXM6IE1hcHBlZFN0b3JlW10pIHtcbiAgICBmb3IgKGNvbnN0IG1hcHBlZFN0b3JlIG9mIG1hcHBlZFN0b3Jlcykge1xuICAgICAgY29uc3QgaW5zdGFuY2U6IE5neHNMaWZlQ3ljbGUgPSBtYXBwZWRTdG9yZS5pbnN0YW5jZTtcbiAgICAgIGlmIChpbnN0YW5jZS5uZ3hzQWZ0ZXJCb290c3RyYXApIHtcbiAgICAgICAgaW5zdGFuY2Uubmd4c0FmdGVyQm9vdHN0cmFwKHRoaXMuX2dldFN0YXRlQ29udGV4dChtYXBwZWRTdG9yZSkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2dldFN0YXRlQ29udGV4dChtYXBwZWRTdG9yZTogTWFwcGVkU3RvcmUpOiBTdGF0ZUNvbnRleHQ8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRlQ29udGV4dEZhY3RvcnkuY3JlYXRlU3RhdGVDb250ZXh0KG1hcHBlZFN0b3JlKTtcbiAgfVxufVxuIl19
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlmZWN5Y2xlLXN0YXRlLW1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvaW50ZXJuYWwvbGlmZWN5Y2xlLXN0YXRlLW1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1QyxPQUFPLEVBQ0wsVUFBVSxFQUNWLE1BQU0sRUFDTixRQUFRLEVBQ1IsUUFBUSxFQUNSLFNBQVMsRUFDVCxTQUFTLEVBQ1QsR0FBRyxFQUNKLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNqQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU3RCxPQUFPLEVBQWlCLGdCQUFnQixFQUFnQixNQUFNLFlBQVksQ0FBQztBQUMzRSxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7OztBQUVsRixNQUFNLFdBQVcsR0FBRyxPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUyxDQUFDO0FBR2xFLE1BQU0sT0FBTyxxQkFBcUI7SUFLaEMsWUFDVSxNQUFhLEVBQ2Isc0JBQTZDLEVBQzdDLHdCQUFpRCxF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WUFFRCxJQUFJLFFBQVEsQ0FBQyxVQUFVLEVBQUU7Z0JBQ3ZCLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7YUFDekQ7WUFFRCxXQUFXLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztTQUNsQztJQUNILENBQUM7SUFFTyx3QkFBd0IsQ0FBQyxZQUEyQjtRQUMxRCxLQUFLLE1BQU0sV0FBVyxJQUFJLFlBQVksRUFBRTtZQUN0QyxNQUFNLFFBQVEsR0FBa0IsV0FBVyxDQUFDLFFBQVEsQ0FBQztZQUNyRCxJQUFJLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRTtnQkFDL0IsUUFBUSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO2FBQ2pFO1NBQ0Y7SUFDSCxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsV0FBd0I7UUFDL0MsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbkUsQ0FBQzs7cUlBL0ZVLHFCQUFxQjt5SUFBckIscUJBQXFCLGNBRFIsTUFBTTsyRkFDbkIscUJBQXFCO2tCQURqQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd4c0Jvb3RzdHJhcHBlciB9IGZyb20gJ0BuZ3hzL3N0b3JlL2ludGVybmFscyc7XG5pbXBvcnQgeyBFTVBUWSwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgY2F0Y2hFcnJvcixcbiAgZmlsdGVyLFxuICBtZXJnZU1hcCxcbiAgcGFpcndpc2UsXG4gIHN0YXJ0V2l0aCxcbiAgdGFrZVVudGlsLFxuICB0YXBcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJy4uL3N0b3JlJztcbmltcG9ydCB7IGdldFZhbHVlIH0gZnJvbSAnLi4vdXRpbHMvdXRpbHMnO1xuaW1wb3J0IHsgSW50ZXJuYWxFcnJvclJlcG9ydGVyIH0gZnJvbSAnLi9lcnJvci1oYW5kbGVyJztcbmltcG9ydCB7IEluaXRTdGF0ZSwgVXBkYXRlU3RhdGUgfSBmcm9tICcuLi9hY3Rpb25zL2FjdGlvbnMnO1xuaW1wb3J0IHsgU3RhdGVDb250ZXh0RmFjdG9yeSB9IGZyb20gJy4vc3RhdGUtY29udGV4dC1mYWN0b3J5JztcbmltcG9ydCB7IEludGVybmFsU3RhdGVPcGVyYXRpb25zIH0gZnJvbSAnLi9zdGF0ZS1vcGVyYXRpb25zJztcbmltcG9ydCB7IE1hcHBlZFN0b3JlLCBTdGF0ZXNBbmREZWZhdWx0cyB9IGZyb20gJy4vaW50ZXJuYWxzJztcbmltcG9ydCB7IE5neHNMaWZlQ3ljbGUsIE5neHNTaW1wbGVDaGFuZ2UsIFN0YXRlQ29udGV4dCB9IGZyb20gJy4uL3N5bWJvbHMnO1xuaW1wb3J0IHsgZ2V0SW52YWxpZEluaXRpYWxpemF0aW9uT3JkZXJNZXNzYWdlIH0gZnJvbSAnLi4vY29uZmlncy9tZXNzYWdlcy5jb25maWcnO1xuXG5jb25zdCBOR19ERVZfTU9ERSA9IHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZTtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBMaWZlY3ljbGVTdGF0ZU1hbmFnZXIgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95JCA9IG5ldyBSZXBsYXlTdWJqZWN0PHZvaWQ+KDEpO1xuXG4gIHByaXZhdGUgX2luaXRTdGF0ZUhhc0JlZW5EaXNwYXRjaGVkPzogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9zdG9yZTogU3RvcmUsXG4gICAgcHJpdmF0ZSBfaW50ZXJuYWxFcnJvclJlcG9ydGVyOiBJbnRlcm5hbEVycm9yUmVwb3J0ZXIsXG4gICAgcHJpdmF0ZSBfaW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnM6IEludGVybmFsU3RhdGVPcGVyYXRpb25zLFxuICAgIHByaXZhdGUgX3N0YXRlQ29udGV4dEZhY3Rvcnk6IFN0YXRlQ29udGV4dEZhY3RvcnksXG4gICAgcHJpdmF0ZSBfYm9vdHN0cmFwcGVyOiBOZ3hzQm9vdHN0cmFwcGVyXG4gICkge31cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gIH1cblxuICBuZ3hzQm9vdHN0cmFwKFxuICAgIGFjdGlvbjogSW5pdFN0YXRlIHwgVXBkYXRlU3RhdGUsXG4gICAgcmVzdWx0czogU3RhdGVzQW5kRGVmYXVsdHMgfCB1bmRlZmluZWRcbiAgKTogdm9pZCB7XG4gICAgaWYgKE5HX0RFVl9NT0RFKSB7XG4gICAgICBpZiAoYWN0aW9uIGluc3RhbmNlb2YgSW5pdFN0YXRlKSB7XG4gICAgICAgIHRoaXMuX2luaXRTdGF0ZUhhc0JlZW5EaXNwYXRjaGVkID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIC8vIFRoaXMgaXMgYSBkZXYgbW9kZS1vbmx5IGNoZWNrIHRoYXQgZW5zdXJlcyB0aGUgY29ycmVjdCBvcmRlciBvZlxuICAgICAgICAvLyBzdGF0ZSBpbml0aWFsaXphdGlvbi4gVGhlIGBOZ3hzTW9kdWxlLmZvclJvb3RgIG9yIGBwcm92aWRlU3RvcmVgIHNob3VsZFxuICAgICAgICAvLyBhbHdheXMgY29tZSBmaXJzdCwgZm9sbG93ZWQgYnkgYGZvckZlYXR1cmVgIGFuZCBgcHJvdmlkZVN0YXRlc2AuIElmIHRoZVxuICAgICAgICAvLyBgVXBkYXRlU3RhdGVgIGlzIGRpc3BhdGNoZWQgYmVmb3JlIHRoZSBgSW5pdFN0YXRlYCBpcyBkaXNwYXRjaGVkLCBpdCBpbmRpY2F0ZXNcbiAgICAgICAgLy8gdGhhdCBtb2R1bGVzIG9yIHByb3ZpZGVycyBhcmUgaW4gYW4gaW52YWxpZCBvcmRlci5cbiAgICAgICAgYWN0aW9uIGluc3RhbmNlb2YgVXBkYXRlU3RhdGUgJiZcbiAgICAgICAgIXRoaXMuX2luaXRTdGF0ZUhhc0JlZW5EaXNwYXRjaGVkXG4gICAgICApIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihnZXRJbnZhbGlkSW5pdGlhbGl6YXRpb25PcmRlck1lc3NhZ2UoYWN0aW9uLmFkZGVkU3RhdGVzKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5faW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnNcbiAgICAgIC5nZXRSb290U3RhdGVPcGVyYXRpb25zKClcbiAgICAgIC5kaXNwYXRjaChhY3Rpb24pXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKCgpID0+ICEhcmVzdWx0cyksXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLl9pbnZva2VJbml0T25TdGF0ZXMocmVzdWx0cyEuc3RhdGVzKSksXG4gICAgICAgIG1lcmdlTWFwKCgpID0+IHRoaXMuX2Jvb3RzdHJhcHBlci5hcHBCb290c3RyYXBwZWQkKSxcbiAgICAgICAgZmlsdGVyKGFwcEJvb3RzdHJhcHBlZCA9PiAhIWFwcEJvb3RzdHJhcHBlZCksXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgIC8vIFRoZSBgU2FmZVN1YnNjcmliZXJgICh3aGljaCBpcyB1c2VkIGJ5IG1vc3QgUnhKUyBvcGVyYXRvcnMpIHJlLXRocm93c1xuICAgICAgICAgIC8vIGVycm9ycyBhc3luY2hyb25vdXNseSAoYHNldFRpbWVvdXQoKCkgPT4geyB0aHJvdyBlcnJvciB9KWApLiBUaGlzIG1pZ2h0XG4gICAgICAgICAgLy8gYnJlYWsgZXhpc3RpbmcgdXNlcidzIGNvZGUgb3IgdW5pdCB0ZXN0cy4gV2UgY2F0Y2ggdGhlIGVycm9yIG1hbnVhbGx5IHRvXG4gICAgICAgICAgLy8gYmUgYmFja3dhcmQgY29tcGF0aWJsZSB3aXRoIHRoZSBvbGQgYmVoYXZpb3IuXG4gICAgICAgICAgdGhpcy5faW50ZXJuYWxFcnJvclJlcG9ydGVyLnJlcG9ydEVycm9yU2FmZWx5KGVycm9yKTtcbiAgICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuX2ludm9rZUJvb3RzdHJhcE9uU3RhdGVzKHJlc3VsdHMhLnN0YXRlcykpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaW52b2tlSW5pdE9uU3RhdGVzKG1hcHBlZFN0b3JlczogTWFwcGVkU3RvcmVbXSk6IHZvaWQge1xuICAgIGZvciAoY29uc3QgbWFwcGVkU3RvcmUgb2YgbWFwcGVkU3RvcmVzKSB7XG4gICAgICBjb25zdCBpbnN0YW5jZTogTmd4c0xpZmVDeWNsZSA9IG1hcHBlZFN0b3JlLmluc3RhbmNlO1xuXG4gICAgICBpZiAoaW5zdGFuY2Uubmd4c09uQ2hhbmdlcykge1xuICAgICAgICB0aGlzLl9zdG9yZVxuICAgICAgICAgIC5zZWxlY3Qoc3RhdGUgPT4gZ2V0VmFsdWUoc3RhdGUsIG1hcHBlZFN0b3JlLnBhdGgpKVxuICAgICAgICAgIC5waXBlKHN0YXJ0V2l0aCh1bmRlZmluZWQpLCBwYWlyd2lzZSgpLCB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKFtwcmV2aW91c1ZhbHVlLCBjdXJyZW50VmFsdWVdKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjaGFuZ2UgPSBuZXcgTmd4c1NpbXBsZUNoYW5nZShcbiAgICAgICAgICAgICAgcHJldmlvdXNWYWx1ZSxcbiAgICAgICAgICAgICAgY3VycmVudFZhbHVlLFxuICAgICAgICAgICAgICAhbWFwcGVkU3RvcmUuaXNJbml0aWFsaXNlZFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGluc3RhbmNlLm5neHNPbkNoYW5nZXMhKGNoYW5nZSk7XG4gICAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChpbnN0YW5jZS5uZ3hzT25Jbml0KSB7XG4gICAgICAgIGluc3RhbmNlLm5neHNPbkluaXQodGhpcy5fZ2V0U3RhdGVDb250ZXh0KG1hcHBlZFN0b3JlKSk7XG4gICAgICB9XG5cbiAgICAgIG1hcHBlZFN0b3JlLmlzSW5pdGlhbGlzZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2ludm9rZUJvb3RzdHJhcE9uU3RhdGVzKG1hcHBlZFN0b3JlczogTWFwcGVkU3RvcmVbXSkge1xuICAgIGZvciAoY29uc3QgbWFwcGVkU3RvcmUgb2YgbWFwcGVkU3RvcmVzKSB7XG4gICAgICBjb25zdCBpbnN0YW5jZTogTmd4c0xpZmVDeWNsZSA9IG1hcHBlZFN0b3JlLmluc3RhbmNlO1xuICAgICAgaWYgKGluc3RhbmNlLm5neHNBZnRlckJvb3RzdHJhcCkge1xuICAgICAgICBpbnN0YW5jZS5uZ3hzQWZ0ZXJCb290c3RyYXAodGhpcy5fZ2V0U3RhdGVDb250ZXh0KG1hcHBlZFN0b3JlKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0U3RhdGVDb250ZXh0KG1hcHBlZFN0b3JlOiBNYXBwZWRTdG9yZSk6IFN0YXRlQ29udGV4dDxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGVDb250ZXh0RmFjdG9yeS5jcmVhdGVTdGF0ZUNvbnRleHQobWFwcGVkU3RvcmUpO1xuICB9XG59XG4iXX0=
|
package/fesm2015/ngxs-store.mjs
CHANGED
|
@@ -702,6 +702,18 @@ function getZoneWarningMessage() {
|
|
|
702
702
|
function getUndecoratedStateInIvyWarningMessage(name) {
|
|
703
703
|
return `'${name}' class should be decorated with @Injectable() right after the @State() decorator`;
|
|
704
704
|
}
|
|
705
|
+
function getInvalidInitializationOrderMessage(addedStates) {
|
|
706
|
+
let message = 'You have an invalid state initialization order. This typically occurs when `NgxsModule.forFeature`\n' +
|
|
707
|
+
'or `provideStates` is called before `NgxsModule.forRoot` or `provideStore`.\n' +
|
|
708
|
+
'One example is when `NgxsRouterPluginModule.forRoot` is called before `NgxsModule.forRoot`.';
|
|
709
|
+
if (addedStates) {
|
|
710
|
+
const stateNames = Object.keys(addedStates).map(stateName => `"${stateName}"`);
|
|
711
|
+
message +=
|
|
712
|
+
'\nFeature states added before the store initialization is complete: ' +
|
|
713
|
+
`${stateNames.join(', ')}.`;
|
|
714
|
+
}
|
|
715
|
+
return message;
|
|
716
|
+
}
|
|
705
717
|
function throwSelectFactoryNotConnectedError() {
|
|
706
718
|
throw new Error('You have forgotten to import the NGXS module!');
|
|
707
719
|
}
|
|
@@ -767,18 +779,18 @@ function verifyZoneIsNotNooped(ngZone) {
|
|
|
767
779
|
console.warn(getZoneWarningMessage());
|
|
768
780
|
}
|
|
769
781
|
|
|
770
|
-
const NG_DEV_MODE$
|
|
782
|
+
const NG_DEV_MODE$4 = typeof ngDevMode === 'undefined' || ngDevMode;
|
|
771
783
|
/**
|
|
772
784
|
* Consumers have the option to utilize the execution strategy provided by
|
|
773
785
|
* `NgxsModule.forRoot({executionStrategy})` or `provideStore([], {executionStrategy})`.
|
|
774
786
|
*/
|
|
775
|
-
const CUSTOM_NGXS_EXECUTION_STRATEGY = new InjectionToken(NG_DEV_MODE$
|
|
787
|
+
const CUSTOM_NGXS_EXECUTION_STRATEGY = new InjectionToken(NG_DEV_MODE$4 ? 'CUSTOM_NGXS_EXECUTION_STRATEGY' : '');
|
|
776
788
|
/**
|
|
777
789
|
* The injection token is used internally to resolve an instance of the execution
|
|
778
790
|
* strategy. It checks whether consumers have provided their own `executionStrategy`
|
|
779
791
|
* and also verifies if we are operating in a zone-aware environment.
|
|
780
792
|
*/
|
|
781
|
-
const NGXS_EXECUTION_STRATEGY = new InjectionToken(NG_DEV_MODE$
|
|
793
|
+
const NGXS_EXECUTION_STRATEGY = new InjectionToken(NG_DEV_MODE$4 ? 'NGXS_EXECUTION_STRATEGY' : '', {
|
|
782
794
|
providedIn: 'root',
|
|
783
795
|
factory: () => {
|
|
784
796
|
const injector = inject(INJECTOR);
|
|
@@ -858,21 +870,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImpor
|
|
|
858
870
|
args: [{ providedIn: 'root' }]
|
|
859
871
|
}], ctorParameters: function () { return [{ type: InternalActions }, { type: InternalNgxsExecutionStrategy }]; } });
|
|
860
872
|
|
|
861
|
-
const NG_DEV_MODE$
|
|
873
|
+
const NG_DEV_MODE$3 = typeof ngDevMode === 'undefined' || ngDevMode;
|
|
862
874
|
// The injection token is used to resolve a list of states provided at
|
|
863
875
|
// the root level through either `NgxsModule.forRoot` or `provideStore`.
|
|
864
|
-
const ROOT_STATE_TOKEN = new InjectionToken(NG_DEV_MODE$
|
|
876
|
+
const ROOT_STATE_TOKEN = new InjectionToken(NG_DEV_MODE$3 ? 'ROOT_STATE_TOKEN' : '');
|
|
865
877
|
// The injection token is used to resolve a list of states provided at
|
|
866
878
|
// the feature level through either `NgxsModule.forFeature` or `provideStates`.
|
|
867
879
|
// The Array<Array> is used to overload the resolved value of the token because
|
|
868
880
|
// it is a multi-provider token.
|
|
869
|
-
const FEATURE_STATE_TOKEN = new InjectionToken(NG_DEV_MODE$
|
|
881
|
+
const FEATURE_STATE_TOKEN = new InjectionToken(NG_DEV_MODE$3 ? 'FEATURE_STATE_TOKEN' : '');
|
|
870
882
|
// The injection token is used to resolve to custom NGXS plugins provided
|
|
871
883
|
// at the root level through either `{provide}` scheme or `withNgxsPlugin`.
|
|
872
|
-
const NGXS_PLUGINS = new InjectionToken(NG_DEV_MODE$
|
|
884
|
+
const NGXS_PLUGINS = new InjectionToken(NG_DEV_MODE$3 ? 'NGXS_PLUGINS' : '');
|
|
873
885
|
// The injection token is used to resolve to options provided at the root
|
|
874
886
|
// level through either `NgxsModule.forRoot` or `provideStore`.
|
|
875
|
-
const NGXS_OPTIONS = new InjectionToken(NG_DEV_MODE$
|
|
887
|
+
const NGXS_OPTIONS = new InjectionToken(NG_DEV_MODE$3 ? 'NGXS_OPTIONS' : '');
|
|
876
888
|
/**
|
|
877
889
|
* The NGXS config settings.
|
|
878
890
|
*/
|
|
@@ -1388,7 +1400,7 @@ function getState(currentAppState, path) {
|
|
|
1388
1400
|
return getValue(currentAppState, path);
|
|
1389
1401
|
}
|
|
1390
1402
|
|
|
1391
|
-
const NG_DEV_MODE$
|
|
1403
|
+
const NG_DEV_MODE$2 = typeof ngDevMode === 'undefined' || ngDevMode;
|
|
1392
1404
|
/**
|
|
1393
1405
|
* The `StateFactory` class adds root and feature states to the graph.
|
|
1394
1406
|
* This extracts state names from state classes, checks if they already
|
|
@@ -1478,7 +1490,7 @@ class StateFactory {
|
|
|
1478
1490
|
* Add a new state to the global defs.
|
|
1479
1491
|
*/
|
|
1480
1492
|
add(stateClasses) {
|
|
1481
|
-
if (NG_DEV_MODE$
|
|
1493
|
+
if (NG_DEV_MODE$2) {
|
|
1482
1494
|
ensureStatesAreDecorated(stateClasses);
|
|
1483
1495
|
}
|
|
1484
1496
|
const { newStates } = this.addToStatesMap(stateClasses);
|
|
@@ -1498,7 +1510,7 @@ class StateFactory {
|
|
|
1498
1510
|
// `State` decorator. This check is moved here because the `ɵprov` property
|
|
1499
1511
|
// will not exist on the class in JIT mode (because it's set asynchronously
|
|
1500
1512
|
// during JIT compilation through `Object.defineProperty`).
|
|
1501
|
-
if (NG_DEV_MODE$
|
|
1513
|
+
if (NG_DEV_MODE$2) {
|
|
1502
1514
|
ensureStateClassIsInjectable(stateClass);
|
|
1503
1515
|
}
|
|
1504
1516
|
const stateMap = {
|
|
@@ -1600,7 +1612,7 @@ class StateFactory {
|
|
|
1600
1612
|
}
|
|
1601
1613
|
// The `NgxsUnhandledActionsLogger` is a tree-shakable class which functions
|
|
1602
1614
|
// only during development.
|
|
1603
|
-
if (NG_DEV_MODE$
|
|
1615
|
+
if (NG_DEV_MODE$2 && !actionHasBeenHandled) {
|
|
1604
1616
|
const unhandledActionsLogger = this._injector.get(NgxsUnhandledActionsLogger, null);
|
|
1605
1617
|
// The `NgxsUnhandledActionsLogger` will not be resolved by the injector if the
|
|
1606
1618
|
// `NgxsDevelopmentModule` is not provided. It's enough to check whether the `injector.get`
|
|
@@ -1619,7 +1631,7 @@ class StateFactory {
|
|
|
1619
1631
|
const statesMap = this.statesByName;
|
|
1620
1632
|
for (const stateClass of stateClasses) {
|
|
1621
1633
|
const stateName = getStoreMetadata$1(stateClass).name;
|
|
1622
|
-
if (NG_DEV_MODE$
|
|
1634
|
+
if (NG_DEV_MODE$2) {
|
|
1623
1635
|
ensureStateNameIsUnique(stateName, stateClass, statesMap);
|
|
1624
1636
|
}
|
|
1625
1637
|
const unmountedState = !statesMap[stateName];
|
|
@@ -1776,6 +1788,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.4", ngImpor
|
|
|
1776
1788
|
args: [{ providedIn: 'root' }]
|
|
1777
1789
|
}], ctorParameters: function () { return [{ type: Store }, { type: NgxsConfig }]; } });
|
|
1778
1790
|
|
|
1791
|
+
const NG_DEV_MODE$1 = typeof ngDevMode === 'undefined' || ngDevMode;
|
|
1779
1792
|
class LifecycleStateManager {
|
|
1780
1793
|
constructor(_store, _internalErrorReporter, _internalStateOperations, _stateContextFactory, _bootstrapper) {
|
|
1781
1794
|
this._store = _store;
|
|
@@ -1789,6 +1802,21 @@ class LifecycleStateManager {
|
|
|
1789
1802
|
this._destroy$.next();
|
|
1790
1803
|
}
|
|
1791
1804
|
ngxsBootstrap(action, results) {
|
|
1805
|
+
if (NG_DEV_MODE$1) {
|
|
1806
|
+
if (action instanceof InitState) {
|
|
1807
|
+
this._initStateHasBeenDispatched = true;
|
|
1808
|
+
}
|
|
1809
|
+
else if (
|
|
1810
|
+
// This is a dev mode-only check that ensures the correct order of
|
|
1811
|
+
// state initialization. The `NgxsModule.forRoot` or `provideStore` should
|
|
1812
|
+
// always come first, followed by `forFeature` and `provideStates`. If the
|
|
1813
|
+
// `UpdateState` is dispatched before the `InitState` is dispatched, it indicates
|
|
1814
|
+
// that modules or providers are in an invalid order.
|
|
1815
|
+
action instanceof UpdateState &&
|
|
1816
|
+
!this._initStateHasBeenDispatched) {
|
|
1817
|
+
console.error(getInvalidInitializationOrderMessage(action.addedStates));
|
|
1818
|
+
}
|
|
1819
|
+
}
|
|
1792
1820
|
this._internalStateOperations
|
|
1793
1821
|
.getRootStateOperations()
|
|
1794
1822
|
.dispatch(action)
|