@ngxs/store 3.8.0-dev.master-c31ed89 → 3.8.0-dev.master-7ba9a5a
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/bundles/ngxs-store-internals.umd.js +8 -5
- package/bundles/ngxs-store-internals.umd.js.map +1 -1
- package/bundles/ngxs-store.umd.js +108 -119
- package/bundles/ngxs-store.umd.js.map +1 -1
- package/esm2015/internals/initial-state.js +9 -6
- package/esm2015/src/internal/state-operations.js +1 -2
- package/esm2015/src/module.js +5 -22
- package/esm2015/src/symbols.js +10 -3
- package/fesm2015/ngxs-store-internals.js +8 -5
- package/fesm2015/ngxs-store-internals.js.map +1 -1
- package/fesm2015/ngxs-store.js +104 -115
- package/fesm2015/ngxs-store.js.map +1 -1
- package/internals/initial-state.d.ts +2 -2
- package/package.json +2 -2
- package/src/internal/state-operations.d.ts +0 -1
- package/src/module.d.ts +0 -3
- package/src/symbols.d.ts +1 -0
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import { InjectionToken } from '@angular/core';
|
|
2
|
-
export const INITIAL_STATE_TOKEN = new InjectionToken('INITIAL_STATE_TOKEN');
|
|
3
2
|
export class InitialState {
|
|
4
3
|
static set(state) {
|
|
5
|
-
this.
|
|
4
|
+
this._value = state;
|
|
6
5
|
}
|
|
7
6
|
static pop() {
|
|
8
|
-
const state = this.
|
|
9
|
-
this.
|
|
7
|
+
const state = this._value;
|
|
8
|
+
this._value = {};
|
|
10
9
|
return state;
|
|
11
10
|
}
|
|
12
11
|
}
|
|
13
|
-
InitialState.
|
|
14
|
-
|
|
12
|
+
InitialState._value = {};
|
|
13
|
+
export const INITIAL_STATE_TOKEN = new InjectionToken('INITIAL_STATE_TOKEN', {
|
|
14
|
+
providedIn: 'root',
|
|
15
|
+
factory: () => InitialState.pop()
|
|
16
|
+
});
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbC1zdGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL2ludGVybmFscy9zcmMvaW5pdGlhbC1zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sT0FBTyxZQUFZO0lBR3ZCLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBa0I7UUFDM0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFHO1FBQ1IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNqQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7O0FBVmMsbUJBQU0sR0FBZ0IsRUFBRSxDQUFDO0FBYTFDLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLElBQUksY0FBYyxDQUFNLHFCQUFxQixFQUFFO0lBQ2hGLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFO0NBQ2xDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQbGFpbk9iamVjdCB9IGZyb20gJy4vc3ltYm9scyc7XG5cbmV4cG9ydCBjbGFzcyBJbml0aWFsU3RhdGUge1xuICBwcml2YXRlIHN0YXRpYyBfdmFsdWU6IFBsYWluT2JqZWN0ID0ge307XG5cbiAgc3RhdGljIHNldChzdGF0ZTogUGxhaW5PYmplY3QpIHtcbiAgICB0aGlzLl92YWx1ZSA9IHN0YXRlO1xuICB9XG5cbiAgc3RhdGljIHBvcCgpOiBQbGFpbk9iamVjdCB7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLl92YWx1ZTtcbiAgICB0aGlzLl92YWx1ZSA9IHt9O1xuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgSU5JVElBTF9TVEFURV9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxhbnk+KCdJTklUSUFMX1NUQVRFX1RPS0VOJywge1xuICBwcm92aWRlZEluOiAncm9vdCcsXG4gIGZhY3Rvcnk6ICgpID0+IEluaXRpYWxTdGF0ZS5wb3AoKVxufSk7XG4iXX0=
|
|
@@ -8,7 +8,6 @@ import * as i1 from "./state-stream";
|
|
|
8
8
|
import * as i2 from "../internal/dispatcher";
|
|
9
9
|
import * as i3 from "../symbols";
|
|
10
10
|
/**
|
|
11
|
-
* State Context factory class
|
|
12
11
|
* @ignore
|
|
13
12
|
*/
|
|
14
13
|
export class InternalStateOperations {
|
|
@@ -61,4 +60,4 @@ function ensureStateAndActionsAreImmutable(root) {
|
|
|
61
60
|
}
|
|
62
61
|
};
|
|
63
62
|
}
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtb3BlcmF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL3NyYy9pbnRlcm5hbC9zdGF0ZS1vcGVyYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDeEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQUU3Qzs7R0FFRztBQUVILE1BQU0sT0FBTyx1QkFBdUI7SUFDbEMsWUFDVSxZQUF5QixFQUN6QixXQUErQixFQUMvQixPQUFtQjtRQUZuQixpQkFBWSxHQUFaLFlBQVksQ0FBYTtRQUN6QixnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFDL0IsWUFBTyxHQUFQLE9BQU8sQ0FBWTtJQUMxQixDQUFDO0lBRUo7O09BRUc7SUFDSCxzQkFBc0I7UUFDcEIsTUFBTSxtQkFBbUIsR0FBRztZQUMxQixRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUU7WUFDNUMsUUFBUSxFQUFFLENBQUMsUUFBYSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDN0QsUUFBUSxFQUFFLENBQUMsZUFBNEIsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDO1NBQ3ZGLENBQUM7UUFFRixJQUFJLE9BQU8sU0FBUyxLQUFLLFdBQVcsSUFBSSxTQUFTLEVBQUU7WUFDakQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWU7Z0JBQ2pDLENBQUMsQ0FBQyxpQ0FBaUMsQ0FBQyxtQkFBbUIsQ0FBQztnQkFDeEQsQ0FBQyxDQUFDLG1CQUFtQixDQUFDO1NBQ3pCO2FBQU07WUFDTCxPQUFPLG1CQUFtQixDQUFDO1NBQzVCO0lBQ0gsQ0FBQztJQUVELDJCQUEyQixDQUFDLE9BQTBCO1FBQ3BELE1BQU0sZUFBZSxHQUF5QixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUU1RSx5QkFBeUI7UUFDekIsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hELHFDQUFxQztRQUNyQyxlQUFlLENBQUMsUUFBUSxpQ0FBTSxZQUFZLEdBQUssT0FBTyxDQUFDLFFBQVEsRUFBRyxDQUFDO0lBQ3JFLENBQUM7O3dJQWpDVSx1QkFBdUI7NElBQXZCLHVCQUF1QixjQURWLE1BQU07NEZBQ25CLHVCQUF1QjtrQkFEbkMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7O0FBcUNsQyxTQUFTLGlDQUFpQyxDQUFDLElBQTBCO0lBQ25FLE9BQU87UUFDTCxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtRQUMvQixRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDaEIsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3RDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNwQyxDQUFDO1FBQ0QsUUFBUSxFQUFFLE9BQU8sQ0FBQyxFQUFFO1lBQ2xCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoQyxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFN0YXRlT3BlcmF0aW9ucywgU3RhdGVzQW5kRGVmYXVsdHMgfSBmcm9tICcuLi9pbnRlcm5hbC9pbnRlcm5hbHMnO1xuaW1wb3J0IHsgSW50ZXJuYWxEaXNwYXRjaGVyIH0gZnJvbSAnLi4vaW50ZXJuYWwvZGlzcGF0Y2hlcic7XG5pbXBvcnQgeyBTdGF0ZVN0cmVhbSB9IGZyb20gJy4vc3RhdGUtc3RyZWFtJztcbmltcG9ydCB7IE5neHNDb25maWcgfSBmcm9tICcuLi9zeW1ib2xzJztcbmltcG9ydCB7IGRlZXBGcmVlemUgfSBmcm9tICcuLi91dGlscy9mcmVlemUnO1xuXG4vKipcbiAqIEBpZ25vcmVcbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBJbnRlcm5hbFN0YXRlT3BlcmF0aW9ucyB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX3N0YXRlU3RyZWFtOiBTdGF0ZVN0cmVhbSxcbiAgICBwcml2YXRlIF9kaXNwYXRjaGVyOiBJbnRlcm5hbERpc3BhdGNoZXIsXG4gICAgcHJpdmF0ZSBfY29uZmlnOiBOZ3hzQ29uZmlnXG4gICkge31cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgcm9vdCBzdGF0ZSBvcGVyYXRvcnMuXG4gICAqL1xuICBnZXRSb290U3RhdGVPcGVyYXRpb25zKCk6IFN0YXRlT3BlcmF0aW9uczxhbnk+IHtcbiAgICBjb25zdCByb290U3RhdGVPcGVyYXRpb25zID0ge1xuICAgICAgZ2V0U3RhdGU6ICgpID0+IHRoaXMuX3N0YXRlU3RyZWFtLmdldFZhbHVlKCksXG4gICAgICBzZXRTdGF0ZTogKG5ld1N0YXRlOiBhbnkpID0+IHRoaXMuX3N0YXRlU3RyZWFtLm5leHQobmV3U3RhdGUpLFxuICAgICAgZGlzcGF0Y2g6IChhY3Rpb25PckFjdGlvbnM6IGFueSB8IGFueVtdKSA9PiB0aGlzLl9kaXNwYXRjaGVyLmRpc3BhdGNoKGFjdGlvbk9yQWN0aW9ucylcbiAgICB9O1xuXG4gICAgaWYgKHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZSkge1xuICAgICAgcmV0dXJuIHRoaXMuX2NvbmZpZy5kZXZlbG9wbWVudE1vZGVcbiAgICAgICAgPyBlbnN1cmVTdGF0ZUFuZEFjdGlvbnNBcmVJbW11dGFibGUocm9vdFN0YXRlT3BlcmF0aW9ucylcbiAgICAgICAgOiByb290U3RhdGVPcGVyYXRpb25zO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gcm9vdFN0YXRlT3BlcmF0aW9ucztcbiAgICB9XG4gIH1cblxuICBzZXRTdGF0ZVRvVGhlQ3VycmVudFdpdGhOZXcocmVzdWx0czogU3RhdGVzQW5kRGVmYXVsdHMpOiB2b2lkIHtcbiAgICBjb25zdCBzdGF0ZU9wZXJhdGlvbnM6IFN0YXRlT3BlcmF0aW9uczxhbnk+ID0gdGhpcy5nZXRSb290U3RhdGVPcGVyYXRpb25zKCk7XG5cbiAgICAvLyBHZXQgb3VyIGN1cnJlbnQgc3RyZWFtXG4gICAgY29uc3QgY3VycmVudFN0YXRlID0gc3RhdGVPcGVyYXRpb25zLmdldFN0YXRlKCk7XG4gICAgLy8gU2V0IHRoZSBzdGF0ZSB0byB0aGUgY3VycmVudCArIG5ld1xuICAgIHN0YXRlT3BlcmF0aW9ucy5zZXRTdGF0ZSh7IC4uLmN1cnJlbnRTdGF0ZSwgLi4ucmVzdWx0cy5kZWZhdWx0cyB9KTtcbiAgfVxufVxuXG5mdW5jdGlvbiBlbnN1cmVTdGF0ZUFuZEFjdGlvbnNBcmVJbW11dGFibGUocm9vdDogU3RhdGVPcGVyYXRpb25zPGFueT4pOiBTdGF0ZU9wZXJhdGlvbnM8YW55PiB7XG4gIHJldHVybiB7XG4gICAgZ2V0U3RhdGU6ICgpID0+IHJvb3QuZ2V0U3RhdGUoKSxcbiAgICBzZXRTdGF0ZTogdmFsdWUgPT4ge1xuICAgICAgY29uc3QgZnJvemVuVmFsdWUgPSBkZWVwRnJlZXplKHZhbHVlKTtcbiAgICAgIHJldHVybiByb290LnNldFN0YXRlKGZyb3plblZhbHVlKTtcbiAgICB9LFxuICAgIGRpc3BhdGNoOiBhY3Rpb25zID0+IHtcbiAgICAgIHJldHVybiByb290LmRpc3BhdGNoKGFjdGlvbnMpO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==
|
package/esm2015/src/module.js
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import { APP_BOOTSTRAP_LISTENER,
|
|
2
|
-
import {
|
|
3
|
-
import { FEATURE_STATE_TOKEN,
|
|
1
|
+
import { APP_BOOTSTRAP_LISTENER, NgModule } from '@angular/core';
|
|
2
|
+
import { ɵNGXS_STATE_FACTORY, ɵNGXS_STATE_CONTEXT_FACTORY, NgxsBootstrapper } from '@ngxs/store/internals';
|
|
3
|
+
import { FEATURE_STATE_TOKEN, ROOT_OPTIONS, ROOT_STATE_TOKEN } from './symbols';
|
|
4
4
|
import { USER_PROVIDED_NGXS_EXECUTION_STRATEGY } from './execution/symbols';
|
|
5
5
|
import { StateFactory } from './internal/state-factory';
|
|
6
6
|
import { StateContextFactory } from './internal/state-context-factory';
|
|
7
7
|
import { PluginManager } from './plugin-manager';
|
|
8
8
|
import { NgxsRootModule } from './modules/ngxs-root.module';
|
|
9
9
|
import { NgxsFeatureModule } from './modules/ngxs-feature.module';
|
|
10
|
-
import { mergeDeep } from './utils/utils';
|
|
11
10
|
import * as i0 from "@angular/core";
|
|
12
11
|
/**
|
|
13
12
|
* Ngxs Module
|
|
@@ -57,24 +56,15 @@ export class NgxsModule {
|
|
|
57
56
|
useValue: states
|
|
58
57
|
},
|
|
59
58
|
{
|
|
60
|
-
provide:
|
|
59
|
+
provide: ROOT_OPTIONS,
|
|
61
60
|
useValue: options
|
|
62
61
|
},
|
|
63
|
-
{
|
|
64
|
-
provide: NgxsConfig,
|
|
65
|
-
useFactory: NgxsModule.ngxsConfigFactory,
|
|
66
|
-
deps: [NgxsModule.ROOT_OPTIONS]
|
|
67
|
-
},
|
|
68
62
|
{
|
|
69
63
|
provide: APP_BOOTSTRAP_LISTENER,
|
|
70
64
|
useFactory: NgxsModule.appBootstrapListenerFactory,
|
|
71
65
|
multi: true,
|
|
72
66
|
deps: [NgxsBootstrapper]
|
|
73
67
|
},
|
|
74
|
-
{
|
|
75
|
-
provide: INITIAL_STATE_TOKEN,
|
|
76
|
-
useFactory: NgxsModule.getInitialState
|
|
77
|
-
},
|
|
78
68
|
{
|
|
79
69
|
provide: ɵNGXS_STATE_CONTEXT_FACTORY,
|
|
80
70
|
useExisting: StateContextFactory
|
|
@@ -85,21 +75,14 @@ export class NgxsModule {
|
|
|
85
75
|
}
|
|
86
76
|
];
|
|
87
77
|
}
|
|
88
|
-
static ngxsConfigFactory(options) {
|
|
89
|
-
return mergeDeep(new NgxsConfig(), options);
|
|
90
|
-
}
|
|
91
78
|
static appBootstrapListenerFactory(bootstrapper) {
|
|
92
79
|
return () => bootstrapper.bootstrap();
|
|
93
80
|
}
|
|
94
|
-
static getInitialState() {
|
|
95
|
-
return InitialState.pop();
|
|
96
|
-
}
|
|
97
81
|
}
|
|
98
|
-
NgxsModule.ROOT_OPTIONS = new InjectionToken('ROOT_OPTIONS');
|
|
99
82
|
/** @nocollapse */ NgxsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
100
83
|
/** @nocollapse */ NgxsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxsModule });
|
|
101
84
|
/** @nocollapse */ NgxsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxsModule });
|
|
102
85
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxsModule, decorators: [{
|
|
103
86
|
type: NgModule
|
|
104
87
|
}] });
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RvcmUvc3JjL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsc0JBQXNCLEVBRXRCLFFBQVEsRUFFVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLDJCQUEyQixFQUMzQixnQkFBZ0IsRUFFakIsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQixPQUFPLEVBQ0wsbUJBQW1CLEVBRW5CLFlBQVksRUFDWixnQkFBZ0IsRUFDakIsTUFBTSxXQUFXLENBQUM7QUFDbkIsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBRWxFOztHQUVHO0FBRUgsTUFBTSxPQUFPLFVBQVU7SUFDckI7O09BRUc7SUFDSCxNQUFNLENBQUMsT0FBTyxDQUNaLFNBQXVCLEVBQUUsRUFDekIsVUFBNkIsRUFBRTtRQUUvQixPQUFPO1lBQ0wsUUFBUSxFQUFFLGNBQWM7WUFDeEIsU0FBUyxFQUFFO2dCQUNULFlBQVk7Z0JBQ1osYUFBYTtnQkFDYixHQUFHLE1BQU07Z0JBQ1QsR0FBRyxVQUFVLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQzthQUNsRDtTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsVUFBVSxDQUFDLFNBQXVCLEVBQUU7UUFDekMsT0FBTztZQUNMLFFBQVEsRUFBRSxpQkFBaUI7WUFDM0IsU0FBUyxFQUFFO2dCQUNULDZFQUE2RTtnQkFDN0UsWUFBWTtnQkFDWixhQUFhO2dCQUNiLEdBQUcsTUFBTTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsbUJBQW1CO29CQUM1QixLQUFLLEVBQUUsSUFBSTtvQkFDWCxRQUFRLEVBQUUsTUFBTTtpQkFDakI7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDO0lBRU8sTUFBTSxDQUFDLGtCQUFrQixDQUMvQixNQUFvQixFQUNwQixPQUEwQjtRQUUxQixPQUFPO1lBQ0w7Z0JBQ0UsT0FBTyxFQUFFLHFDQUFxQztnQkFDOUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxpQkFBaUI7YUFDcEM7WUFDRDtnQkFDRSxPQUFPLEVBQUUsZ0JBQWdCO2dCQUN6QixRQUFRLEVBQUUsTUFBTTthQUNqQjtZQUNEO2dCQUNFLE9BQU8sRUFBRSxZQUFZO2dCQUNyQixRQUFRLEVBQUUsT0FBTzthQUNsQjtZQUNEO2dCQUNFLE9BQU8sRUFBRSxzQkFBc0I7Z0JBQy9CLFVBQVUsRUFBRSxVQUFVLENBQUMsMkJBQTJCO2dCQUNsRCxLQUFLLEVBQUUsSUFBSTtnQkFDWCxJQUFJLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQzthQUN6QjtZQUNEO2dCQUNFLE9BQU8sRUFBRSwyQkFBMkI7Z0JBQ3BDLFdBQVcsRUFBRSxtQkFBbUI7YUFDakM7WUFDRDtnQkFDRSxPQUFPLEVBQUUsbUJBQW1CO2dCQUM1QixXQUFXLEVBQUUsWUFBWTthQUMxQjtTQUNGLENBQUM7SUFDSixDQUFDO0lBRU8sTUFBTSxDQUFDLDJCQUEyQixDQUFDLFlBQThCO1FBQ3ZFLE9BQU8sR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3hDLENBQUM7OzJIQTNFVSxVQUFVOzRIQUFWLFVBQVU7NEhBQVYsVUFBVTs0RkFBVixVQUFVO2tCQUR0QixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQVBQX0JPT1RTVFJBUF9MSVNURU5FUixcbiAgTW9kdWxlV2l0aFByb3ZpZGVycyxcbiAgTmdNb2R1bGUsXG4gIFByb3ZpZGVyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgybVOR1hTX1NUQVRFX0ZBQ1RPUlksXG4gIMm1TkdYU19TVEFURV9DT05URVhUX0ZBQ1RPUlksXG4gIE5neHNCb290c3RyYXBwZXIsXG4gIFN0YXRlQ2xhc3Ncbn0gZnJvbSAnQG5neHMvc3RvcmUvaW50ZXJuYWxzJztcblxuaW1wb3J0IHtcbiAgRkVBVFVSRV9TVEFURV9UT0tFTixcbiAgTmd4c01vZHVsZU9wdGlvbnMsXG4gIFJPT1RfT1BUSU9OUyxcbiAgUk9PVF9TVEFURV9UT0tFTlxufSBmcm9tICcuL3N5bWJvbHMnO1xuaW1wb3J0IHsgVVNFUl9QUk9WSURFRF9OR1hTX0VYRUNVVElPTl9TVFJBVEVHWSB9IGZyb20gJy4vZXhlY3V0aW9uL3N5bWJvbHMnO1xuaW1wb3J0IHsgU3RhdGVGYWN0b3J5IH0gZnJvbSAnLi9pbnRlcm5hbC9zdGF0ZS1mYWN0b3J5JztcbmltcG9ydCB7IFN0YXRlQ29udGV4dEZhY3RvcnkgfSBmcm9tICcuL2ludGVybmFsL3N0YXRlLWNvbnRleHQtZmFjdG9yeSc7XG5pbXBvcnQgeyBQbHVnaW5NYW5hZ2VyIH0gZnJvbSAnLi9wbHVnaW4tbWFuYWdlcic7XG5pbXBvcnQgeyBOZ3hzUm9vdE1vZHVsZSB9IGZyb20gJy4vbW9kdWxlcy9uZ3hzLXJvb3QubW9kdWxlJztcbmltcG9ydCB7IE5neHNGZWF0dXJlTW9kdWxlIH0gZnJvbSAnLi9tb2R1bGVzL25neHMtZmVhdHVyZS5tb2R1bGUnO1xuXG4vKipcbiAqIE5neHMgTW9kdWxlXG4gKi9cbkBOZ01vZHVsZSgpXG5leHBvcnQgY2xhc3MgTmd4c01vZHVsZSB7XG4gIC8qKlxuICAgKiBSb290IG1vZHVsZSBmYWN0b3J5XG4gICAqL1xuICBzdGF0aWMgZm9yUm9vdChcbiAgICBzdGF0ZXM6IFN0YXRlQ2xhc3NbXSA9IFtdLFxuICAgIG9wdGlvbnM6IE5neHNNb2R1bGVPcHRpb25zID0ge31cbiAgKTogTW9kdWxlV2l0aFByb3ZpZGVyczxOZ3hzUm9vdE1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogTmd4c1Jvb3RNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgU3RhdGVGYWN0b3J5LFxuICAgICAgICBQbHVnaW5NYW5hZ2VyLFxuICAgICAgICAuLi5zdGF0ZXMsXG4gICAgICAgIC4uLk5neHNNb2R1bGUubmd4c1Rva2VuUHJvdmlkZXJzKHN0YXRlcywgb3B0aW9ucylcbiAgICAgIF1cbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEZlYXR1cmUgbW9kdWxlIGZhY3RvcnlcbiAgICovXG4gIHN0YXRpYyBmb3JGZWF0dXJlKHN0YXRlczogU3RhdGVDbGFzc1tdID0gW10pOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE5neHNGZWF0dXJlTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBOZ3hzRmVhdHVyZU1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAvLyBUaGlzIGlzIHJlcXVpcmVkIG9uIHRoZSBmZWF0dXJlIGxldmVsLCBzZWUgY29tbWVudHMgaW4gYHN0YXRlLWZhY3RvcnkudHNgLlxuICAgICAgICBTdGF0ZUZhY3RvcnksXG4gICAgICAgIFBsdWdpbk1hbmFnZXIsXG4gICAgICAgIC4uLnN0YXRlcyxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IEZFQVRVUkVfU1RBVEVfVE9LRU4sXG4gICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgICAgdXNlVmFsdWU6IHN0YXRlc1xuICAgICAgICB9XG4gICAgICBdXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIG5neHNUb2tlblByb3ZpZGVycyhcbiAgICBzdGF0ZXM6IFN0YXRlQ2xhc3NbXSxcbiAgICBvcHRpb25zOiBOZ3hzTW9kdWxlT3B0aW9uc1xuICApOiBQcm92aWRlcltdIHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICBwcm92aWRlOiBVU0VSX1BST1ZJREVEX05HWFNfRVhFQ1VUSU9OX1NUUkFURUdZLFxuICAgICAgICB1c2VWYWx1ZTogb3B0aW9ucy5leGVjdXRpb25TdHJhdGVneVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcHJvdmlkZTogUk9PVF9TVEFURV9UT0tFTixcbiAgICAgICAgdXNlVmFsdWU6IHN0YXRlc1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcHJvdmlkZTogUk9PVF9PUFRJT05TLFxuICAgICAgICB1c2VWYWx1ZTogb3B0aW9uc1xuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcHJvdmlkZTogQVBQX0JPT1RTVFJBUF9MSVNURU5FUixcbiAgICAgICAgdXNlRmFjdG9yeTogTmd4c01vZHVsZS5hcHBCb290c3RyYXBMaXN0ZW5lckZhY3RvcnksXG4gICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICBkZXBzOiBbTmd4c0Jvb3RzdHJhcHBlcl1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHByb3ZpZGU6IMm1TkdYU19TVEFURV9DT05URVhUX0ZBQ1RPUlksXG4gICAgICAgIHVzZUV4aXN0aW5nOiBTdGF0ZUNvbnRleHRGYWN0b3J5XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwcm92aWRlOiDJtU5HWFNfU1RBVEVfRkFDVE9SWSxcbiAgICAgICAgdXNlRXhpc3Rpbmc6IFN0YXRlRmFjdG9yeVxuICAgICAgfVxuICAgIF07XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBhcHBCb290c3RyYXBMaXN0ZW5lckZhY3RvcnkoYm9vdHN0cmFwcGVyOiBOZ3hzQm9vdHN0cmFwcGVyKTogRnVuY3Rpb24ge1xuICAgIHJldHVybiAoKSA9PiBib290c3RyYXBwZXIuYm9vdHN0cmFwKCk7XG4gIH1cbn1cbiJdfQ==
|
package/esm2015/src/symbols.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { Injectable, InjectionToken } from '@angular/core';
|
|
2
|
+
import { mergeDeep } from './utils/utils';
|
|
2
3
|
import { DispatchOutsideZoneNgxsExecutionStrategy } from './execution/dispatch-outside-zone-ngxs-execution-strategy';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
5
|
+
export const ROOT_OPTIONS = new InjectionToken('ROOT_OPTIONS');
|
|
4
6
|
export const ROOT_STATE_TOKEN = new InjectionToken('ROOT_STATE_TOKEN');
|
|
5
7
|
export const FEATURE_STATE_TOKEN = new InjectionToken('FEATURE_STATE_TOKEN');
|
|
6
8
|
export const NGXS_PLUGINS = new InjectionToken('NGXS_PLUGINS');
|
|
@@ -33,9 +35,14 @@ export class NgxsConfig {
|
|
|
33
35
|
}
|
|
34
36
|
}
|
|
35
37
|
/** @nocollapse */ NgxsConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxsConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
36
|
-
/** @nocollapse */ NgxsConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxsConfig });
|
|
38
|
+
/** @nocollapse */ NgxsConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxsConfig, providedIn: 'root', useFactory: (options) => mergeDeep(new NgxsConfig(), options), deps: [{ token: ROOT_OPTIONS }] });
|
|
37
39
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxsConfig, decorators: [{
|
|
38
|
-
type: Injectable
|
|
40
|
+
type: Injectable,
|
|
41
|
+
args: [{
|
|
42
|
+
providedIn: 'root',
|
|
43
|
+
useFactory: (options) => mergeDeep(new NgxsConfig(), options),
|
|
44
|
+
deps: [ROOT_OPTIONS]
|
|
45
|
+
}]
|
|
39
46
|
}], ctorParameters: function () { return []; } });
|
|
40
47
|
/**
|
|
41
48
|
* Represents a basic change from a previous to a new value for a single state instance.
|
|
@@ -48,4 +55,4 @@ export class NgxsSimpleChange {
|
|
|
48
55
|
this.firstChange = firstChange;
|
|
49
56
|
}
|
|
50
57
|
}
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL3NyYy9zeW1ib2xzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFRLE1BQU0sZUFBZSxDQUFDO0FBTWpFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLHdDQUF3QyxFQUFFLE1BQU0sMkRBQTJELENBQUM7O0FBS3JILE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxJQUFJLGNBQWMsQ0FBb0IsY0FBYyxDQUFDLENBQUM7QUFDbEYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxjQUFjLENBQU0sa0JBQWtCLENBQUMsQ0FBQztBQUM1RSxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLGNBQWMsQ0FBTSxxQkFBcUIsQ0FBQyxDQUFDO0FBQ2xGLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxJQUFJLGNBQWMsQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUUvRCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDO0FBQ3BDLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDO0FBQ3BELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLG9CQUFvQixDQUFDO0FBUXREOztHQUVHO0FBTUgsTUFBTSxPQUFPLFVBQVU7SUE4Q3JCO1FBZkE7Ozs7O1dBS0c7UUFDSCxrQkFBYSxHQUFnQixFQUFFLENBQUM7UUFDaEM7O1dBRUc7UUFDSCxvQkFBZSxHQUEwQjtZQUN2QyxvQkFBb0IsRUFBRSxJQUFJO1lBQzFCLGNBQWMsRUFBRSxJQUFJLENBQUMsaURBQWlEO1NBQ3ZFLENBQUM7UUFHQSxJQUFJLENBQUMsYUFBYSxHQUFHO1lBQ25CLDJCQUEyQixFQUFFLEtBQUs7U0FDbkMsQ0FBQztRQUNGLElBQUksQ0FBQyxpQkFBaUIsR0FBRyx3Q0FBd0MsQ0FBQztJQUNwRSxDQUFDOzsySEFuRFUsVUFBVTsrSEFBVixVQUFVLGNBSlQsTUFBTSxjQUNOLENBQUMsT0FBMEIsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksVUFBVSxFQUFFLEVBQUUsT0FBTyxDQUFDLGtCQUN6RSxZQUFZOzRGQUVSLFVBQVU7a0JBTHRCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07b0JBQ2xCLFVBQVUsRUFBRSxDQUFDLE9BQTBCLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUM7b0JBQ2hGLElBQUksRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDckI7O0FBa0hEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsWUFDa0IsYUFBZ0IsRUFDaEIsWUFBZSxFQUNmLFdBQW9CO1FBRnBCLGtCQUFhLEdBQWIsYUFBYSxDQUFHO1FBQ2hCLGlCQUFZLEdBQVosWUFBWSxDQUFHO1FBQ2YsZ0JBQVcsR0FBWCxXQUFXLENBQVM7SUFDbkMsQ0FBQztDQUNMIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgUGxhaW5PYmplY3QsIFN0YXRlQ2xhc3MgfSBmcm9tICdAbmd4cy9zdG9yZS9pbnRlcm5hbHMnO1xuaW1wb3J0IHsgU3RhdGVPcGVyYXRvciB9IGZyb20gJ0BuZ3hzL3N0b3JlL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IG1lcmdlRGVlcCB9IGZyb20gJy4vdXRpbHMvdXRpbHMnO1xuaW1wb3J0IHsgRGlzcGF0Y2hPdXRzaWRlWm9uZU5neHNFeGVjdXRpb25TdHJhdGVneSB9IGZyb20gJy4vZXhlY3V0aW9uL2Rpc3BhdGNoLW91dHNpZGUtem9uZS1uZ3hzLWV4ZWN1dGlvbi1zdHJhdGVneSc7XG5pbXBvcnQgeyBOZ3hzRXhlY3V0aW9uU3RyYXRlZ3kgfSBmcm9tICcuL2V4ZWN1dGlvbi9zeW1ib2xzJztcbmltcG9ydCB7IFNoYXJlZFNlbGVjdG9yT3B0aW9ucyB9IGZyb20gJy4vaW50ZXJuYWwvaW50ZXJuYWxzJztcbmltcG9ydCB7IFN0YXRlVG9rZW4gfSBmcm9tICcuL3N0YXRlLXRva2VuL3N0YXRlLXRva2VuJztcblxuZXhwb3J0IGNvbnN0IFJPT1RfT1BUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxOZ3hzTW9kdWxlT3B0aW9ucz4oJ1JPT1RfT1BUSU9OUycpO1xuZXhwb3J0IGNvbnN0IFJPT1RfU1RBVEVfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48YW55PignUk9PVF9TVEFURV9UT0tFTicpO1xuZXhwb3J0IGNvbnN0IEZFQVRVUkVfU1RBVEVfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48YW55PignRkVBVFVSRV9TVEFURV9UT0tFTicpO1xuZXhwb3J0IGNvbnN0IE5HWFNfUExVR0lOUyA9IG5ldyBJbmplY3Rpb25Ub2tlbignTkdYU19QTFVHSU5TJyk7XG5cbmV4cG9ydCBjb25zdCBNRVRBX0tFWSA9ICdOR1hTX01FVEEnO1xuZXhwb3J0IGNvbnN0IE1FVEFfT1BUSU9OU19LRVkgPSAnTkdYU19PUFRJT05TX01FVEEnO1xuZXhwb3J0IGNvbnN0IFNFTEVDVE9SX01FVEFfS0VZID0gJ05HWFNfU0VMRUNUT1JfTUVUQSc7XG5cbmV4cG9ydCB0eXBlIE5neHNMaWZlQ3ljbGUgPSBQYXJ0aWFsPE5neHNPbkNoYW5nZXM+ICZcbiAgUGFydGlhbDxOZ3hzT25Jbml0PiAmXG4gIFBhcnRpYWw8Tmd4c0FmdGVyQm9vdHN0cmFwPjtcblxuZXhwb3J0IHR5cGUgTmd4c1BsdWdpbkZuID0gKHN0YXRlOiBhbnksIG11dGF0aW9uOiBhbnksIG5leHQ6IE5neHNOZXh0UGx1Z2luRm4pID0+IGFueTtcblxuLyoqXG4gKiBUaGUgTkdYUyBjb25maWcgc2V0dGluZ3MuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICB1c2VGYWN0b3J5OiAob3B0aW9uczogTmd4c01vZHVsZU9wdGlvbnMpID0+IG1lcmdlRGVlcChuZXcgTmd4c0NvbmZpZygpLCBvcHRpb25zKSxcbiAgZGVwczogW1JPT1RfT1BUSU9OU11cbn0pXG5leHBvcnQgY2xhc3MgTmd4c0NvbmZpZyB7XG4gIC8qKlxuICAgKiBSdW4gaW4gZGV2ZWxvcG1lbnQgbW9kZS4gVGhpcyB3aWxsIGFkZCBhZGRpdGlvbmFsIGRlYnVnZ2luZyBmZWF0dXJlczpcbiAgICogLSBPYmplY3QuZnJlZXplIG9uIHRoZSBzdGF0ZSBhbmQgYWN0aW9ucyB0byBndWFyYW50ZWUgaW1tdXRhYmlsaXR5XG4gICAqIChkZWZhdWx0OiBmYWxzZSlcbiAgICpcbiAgICogTm90ZTogdGhpcyBwcm9wZXJ0eSB3aWxsIGJlIGFjY291bnRlZCBvbmx5IGluIGRldmVsb3BtZW50IG1vZGUgd2hlbiB1c2luZyB0aGUgSXZ5IGNvbXBpbGVyLlxuICAgKiBJdCBtYWtlcyBzZW5zZSB0byB1c2UgaXQgb25seSBkdXJpbmcgZGV2ZWxvcG1lbnQgdG8gZW5zdXJlIHRoZXJlJ3JlIG5vIHN0YXRlIG11dGF0aW9ucy5cbiAgICogV2hlbiBidWlsZGluZyBmb3IgcHJvZHVjdGlvbiwgdGhlIE9iamVjdC5mcmVlemUgd2lsbCBiZSB0cmVlLXNoYWtlbiBhd2F5LlxuICAgKi9cbiAgZGV2ZWxvcG1lbnRNb2RlOiBib29sZWFuO1xuICBjb21wYXRpYmlsaXR5OiB7XG4gICAgLyoqXG4gICAgICogU3VwcG9ydCBhIHN0cmljdCBDb250ZW50IFNlY3VyaXR5IFBvbGljeS5cbiAgICAgKiBUaGlzIHdpbGwgY2lyY3VtdmVudCBzb21lIG9wdGltaXNhdGlvbnMgdGhhdCB2aW9sYXRlIGEgc3RyaWN0IENTUCB0aHJvdWdoIHRoZSB1c2Ugb2YgYG5ldyBGdW5jdGlvbiguLi4pYC5cbiAgICAgKiAoZGVmYXVsdDogZmFsc2UpXG4gICAgICovXG4gICAgc3RyaWN0Q29udGVudFNlY3VyaXR5UG9saWN5OiBib29sZWFuO1xuICB9O1xuICAvKipcbiAgICogRGV0ZXJtaW5lcyB0aGUgZXhlY3V0aW9uIGNvbnRleHQgdG8gcGVyZm9ybSBhc3luYyBvcGVyYXRpb25zIGluc2lkZS4gQW4gaW1wbGVtZW50YXRpb24gY2FuIGJlXG4gICAqIHByb3ZpZGVkIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IGJlaGF2aW91ciB3aGVyZSB0aGUgYXN5bmMgb3BlcmF0aW9ucyBhcmUgcnVuXG4gICAqIG91dHNpZGUgQW5ndWxhcidzIHpvbmUgYnV0IGFsbCBvYnNlcnZhYmxlIGJlaGF2aW91cnMgb2YgTkdYUyBhcmUgcnVuIGJhY2sgaW5zaWRlIEFuZ3VsYXIncyB6b25lLlxuICAgKiBUaGVzZSBvYnNlcnZhYmxlIGJlaGF2aW91cnMgYXJlIGZyb206XG4gICAqICAgYEBTZWxlY3QoLi4uKWAsIGBzdG9yZS5zZWxlY3QoLi4uKWAsIGBhY3Rpb25zLnN1YnNjcmliZSguLi4pYCBvciBgc3RvcmUuZGlzcGF0Y2goLi4uKS5zdWJzY3JpYmUoLi4uKWBcbiAgICogRXZlcnkgYHpvbmUucnVuYCBjYXVzZXMgQW5ndWxhciB0byBydW4gY2hhbmdlIGRldGVjdGlvbiBvbiB0aGUgd2hvbGUgdHJlZSAoYGFwcC50aWNrKClgKSBzbyBvZiB5b3VyXG4gICAqIGFwcGxpY2F0aW9uIGRvZXNuJ3QgcmVseSBvbiB6b25lLmpzIHJ1bm5pbmcgY2hhbmdlIGRldGVjdGlvbiB0aGVuIHlvdSBjYW4gc3dpdGNoIHRvIHRoZVxuICAgKiBgTm9vcE5neHNFeGVjdXRpb25TdHJhdGVneWAgdGhhdCBkb2Vzbid0IGludGVyYWN0IHdpdGggem9uZXMuXG4gICAqIChkZWZhdWx0OiBudWxsKVxuICAgKi9cbiAgZXhlY3V0aW9uU3RyYXRlZ3k6IFR5cGU8Tmd4c0V4ZWN1dGlvblN0cmF0ZWd5PjtcbiAgLyoqXG4gICAqIERlZmluaW5nIHRoZSBkZWZhdWx0IHN0YXRlIGJlZm9yZSBtb2R1bGUgaW5pdGlhbGl6YXRpb25cbiAgICogVGhpcyBpcyBjb252ZW5pZW50IGlmIHdlIG5lZWQgdG8gY3JlYXRlIGEgZGVmaW5lIG91ciBvd24gc2V0IG9mIHN0YXRlcy5cbiAgICogQGRlcHJlY2F0ZWQgd2lsbCBiZSByZW1vdmVkIGFmdGVyIHY0XG4gICAqIChkZWZhdWx0OiB7fSlcbiAgICovXG4gIGRlZmF1bHRzU3RhdGU6IFBsYWluT2JqZWN0ID0ge307XG4gIC8qKlxuICAgKiBEZWZpbmluZyBzaGFyZWQgc2VsZWN0b3Igb3B0aW9uc1xuICAgKi9cbiAgc2VsZWN0b3JPcHRpb25zOiBTaGFyZWRTZWxlY3Rvck9wdGlvbnMgPSB7XG4gICAgaW5qZWN0Q29udGFpbmVyU3RhdGU6IHRydWUsIC8vIFRPRE86IGRlZmF1bHQgaXMgdHJ1ZSBpbiB2Mywgd2lsbCBjaGFuZ2UgaW4gdjRcbiAgICBzdXBwcmVzc0Vycm9yczogdHJ1ZSAvLyBUT0RPOiBkZWZhdWx0IGlzIHRydWUgaW4gdjMsIHdpbGwgY2hhbmdlIGluIHY0XG4gIH07XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5jb21wYXRpYmlsaXR5ID0ge1xuICAgICAgc3RyaWN0Q29udGVudFNlY3VyaXR5UG9saWN5OiBmYWxzZVxuICAgIH07XG4gICAgdGhpcy5leGVjdXRpb25TdHJhdGVneSA9IERpc3BhdGNoT3V0c2lkZVpvbmVOZ3hzRXhlY3V0aW9uU3RyYXRlZ3k7XG4gIH1cbn1cblxuZXhwb3J0IHsgU3RhdGVPcGVyYXRvciB9O1xuXG4vKipcbiAqIFN0YXRlIGNvbnRleHQgcHJvdmlkZWQgdG8gdGhlIGFjdGlvbnMgaW4gdGhlIHN0YXRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YXRlQ29udGV4dDxUPiB7XG4gIC8qKlxuICAgKiBHZXQgdGhlIGN1cnJlbnQgc3RhdGUuXG4gICAqL1xuICBnZXRTdGF0ZSgpOiBUO1xuXG4gIC8qKlxuICAgKiBSZXNldCB0aGUgc3RhdGUgdG8gYSBuZXcgdmFsdWUuXG4gICAqL1xuICBzZXRTdGF0ZSh2YWw6IFQgfCBTdGF0ZU9wZXJhdG9yPFQ+KTogVDtcblxuICAvKipcbiAgICogUGF0Y2ggdGhlIGV4aXN0aW5nIHN0YXRlIHdpdGggdGhlIHByb3ZpZGVkIHZhbHVlLlxuICAgKi9cbiAgcGF0Y2hTdGF0ZSh2YWw6IFBhcnRpYWw8VD4pOiBUO1xuXG4gIC8qKlxuICAgKiBEaXNwYXRjaCBhIG5ldyBhY3Rpb24gYW5kIHJldHVybiB0aGUgZGlzcGF0Y2hlZCBvYnNlcnZhYmxlLlxuICAgKi9cbiAgZGlzcGF0Y2goYWN0aW9uczogYW55IHwgYW55W10pOiBPYnNlcnZhYmxlPHZvaWQ+O1xufVxuXG5leHBvcnQgdHlwZSBOZ3hzTmV4dFBsdWdpbkZuID0gKHN0YXRlOiBhbnksIG11dGF0aW9uOiBhbnkpID0+IGFueTtcblxuLyoqXG4gKiBQbHVnaW4gaW50ZXJmYWNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmd4c1BsdWdpbiB7XG4gIC8qKlxuICAgKiBIYW5kbGUgdGhlIHN0YXRlL2FjdGlvbiBiZWZvcmUgaXRzIHN1Ym1pdHRlZCB0byB0aGUgc3RhdGUgaGFuZGxlcnMuXG4gICAqL1xuICBoYW5kbGUoc3RhdGU6IGFueSwgYWN0aW9uOiBhbnksIG5leHQ6IE5neHNOZXh0UGx1Z2luRm4pOiBhbnk7XG59XG5cbi8qKlxuICogT3B0aW9ucyB0aGF0IGNhbiBiZSBwcm92aWRlZCB0byB0aGUgc3RvcmUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RvcmVPcHRpb25zPFQ+IHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIHN0YXRlLiBSZXF1aXJlZC5cbiAgICovXG4gIG5hbWU6IHN0cmluZyB8IFN0YXRlVG9rZW48VD47XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgdmFsdWVzIGZvciB0aGUgc3RhdGUuIElmIG5vdCBwcm92aWRlZCwgdXNlcyBlbXB0eSBvYmplY3QuXG4gICAqL1xuICBkZWZhdWx0cz86IFQ7XG5cbiAgLyoqXG4gICAqIFN1YiBzdGF0ZXMgZm9yIHRoZSBnaXZlbiBzdGF0ZS5cbiAgICovXG4gIGNoaWxkcmVuPzogU3RhdGVDbGFzc1tdO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBiYXNpYyBjaGFuZ2UgZnJvbSBhIHByZXZpb3VzIHRvIGEgbmV3IHZhbHVlIGZvciBhIHNpbmdsZSBzdGF0ZSBpbnN0YW5jZS5cbiAqIFBhc3NlZCBhcyBhIHZhbHVlIGluIGEgTmd4c1NpbXBsZUNoYW5nZXMgb2JqZWN0IHRvIHRoZSBuZ3hzT25DaGFuZ2VzIGhvb2suXG4gKi9cbmV4cG9ydCBjbGFzcyBOZ3hzU2ltcGxlQ2hhbmdlPFQgPSBhbnk+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IHByZXZpb3VzVmFsdWU6IFQsXG4gICAgcHVibGljIHJlYWRvbmx5IGN1cnJlbnRWYWx1ZTogVCxcbiAgICBwdWJsaWMgcmVhZG9ubHkgZmlyc3RDaGFuZ2U6IGJvb2xlYW5cbiAgKSB7fVxufVxuXG4vKipcbiAqIE9uIGluaXQgaW50ZXJmYWNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmd4c09uSW5pdCB7XG4gIG5neHNPbkluaXQoY3R4OiBTdGF0ZUNvbnRleHQ8YW55Pik6IHZvaWQ7XG59XG5cbi8qKlxuICogT24gY2hhbmdlIGludGVyZmFjZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5neHNPbkNoYW5nZXMge1xuICBuZ3hzT25DaGFuZ2VzKGNoYW5nZTogTmd4c1NpbXBsZUNoYW5nZSk6IHZvaWQ7XG59XG5cbi8qKlxuICogQWZ0ZXIgYm9vdHN0cmFwIGludGVyZmFjZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5neHNBZnRlckJvb3RzdHJhcCB7XG4gIG5neHNBZnRlckJvb3RzdHJhcChjdHg6IFN0YXRlQ29udGV4dDxhbnk+KTogdm9pZDtcbn1cblxuZXhwb3J0IHR5cGUgTmd4c01vZHVsZU9wdGlvbnMgPSBQYXJ0aWFsPE5neHNDb25maWc+O1xuXG4vKiogQGludGVybmFsICovXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGNvbnN0IG5nRGV2TW9kZTogYm9vbGVhbjtcbn1cbiJdfQ==
|
|
@@ -86,18 +86,21 @@ function memoize(func, equalityCheck = defaultEqualityCheck) {
|
|
|
86
86
|
return memoized;
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
-
const INITIAL_STATE_TOKEN = new InjectionToken('INITIAL_STATE_TOKEN');
|
|
90
89
|
class InitialState {
|
|
91
90
|
static set(state) {
|
|
92
|
-
this.
|
|
91
|
+
this._value = state;
|
|
93
92
|
}
|
|
94
93
|
static pop() {
|
|
95
|
-
const state = this.
|
|
96
|
-
this.
|
|
94
|
+
const state = this._value;
|
|
95
|
+
this._value = {};
|
|
97
96
|
return state;
|
|
98
97
|
}
|
|
99
98
|
}
|
|
100
|
-
InitialState.
|
|
99
|
+
InitialState._value = {};
|
|
100
|
+
const INITIAL_STATE_TOKEN = new InjectionToken('INITIAL_STATE_TOKEN', {
|
|
101
|
+
providedIn: 'root',
|
|
102
|
+
factory: () => InitialState.pop()
|
|
103
|
+
});
|
|
101
104
|
|
|
102
105
|
// These tokens are internal and can change at any point.
|
|
103
106
|
const ɵNGXS_STATE_FACTORY = new InjectionToken('ɵNGXS_STATE_FACTORY');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngxs-store-internals.js","sources":["../../../packages/store/internals/src/angular.ts","../../../packages/store/internals/src/ngxs-bootstrapper.ts","../../../packages/store/internals/src/memoize.ts","../../../packages/store/internals/src/initial-state.ts","../../../packages/store/internals/src/internal-tokens.ts","../../../packages/store/internals/src/ngxs-store-internals.ts"],"sourcesContent":["declare const __karma__: unknown;\ndeclare const jasmine: unknown;\ndeclare const jest: unknown;\ndeclare const Mocha: unknown;\n\nexport function isAngularInTestMode(): boolean {\n // This is safe to check for these properties in the following way since `typeof` does not\n // throw an exception if the value does not exist in the scope.\n // We should not try to read these values from the global scope (e.g. `ɵglobal` from the `@angular/core`).\n // This is related to how these frameworks compile and execute modules. E.g. Jest wraps the module into\n // its internal code where `jest` variable exists in the scope. It cannot be read from the global scope, e.g.\n // this will return undefined `global.jest`, but `jest` will not equal undefined.\n return (\n typeof __karma__ !== 'undefined' ||\n typeof jasmine !== 'undefined' ||\n typeof jest !== 'undefined' ||\n typeof Mocha !== 'undefined'\n );\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, ReplaySubject } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class NgxsBootstrapper {\n /**\n * Use `ReplaySubject`, thus we can get cached value even if the stream is completed\n */\n private bootstrap$ = new ReplaySubject<boolean>(1);\n\n get appBootstrapped$(): Observable<boolean> {\n return this.bootstrap$.asObservable();\n }\n\n /**\n * This event will be emitted after attaching `ComponentRef` of the root component\n * to the tree of views, that's a signal that application has been fully rendered\n */\n bootstrap(): void {\n this.bootstrap$.next(true);\n this.bootstrap$.complete();\n }\n}\n","function defaultEqualityCheck(a: any, b: any) {\n return a === b;\n}\n\nfunction areArgumentsShallowlyEqual(\n equalityCheck: (a: any, b: any) => boolean,\n prev: IArguments | null,\n next: IArguments | null\n) {\n if (prev === null || next === null || prev.length !== next.length) {\n return false;\n }\n\n // Do this in a for loop (and not a `forEach` or an `every`) so we can determine equality as fast as possible.\n const length = prev.length;\n for (let i = 0; i < length; i++) {\n if (!equalityCheck(prev[i], next[i])) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Memoize a function on its last inputs only.\n * Originally from: https://github.com/reduxjs/reselect/blob/master/src/index.js\n *\n * @ignore\n */\nexport function memoize<T extends (...args: any[]) => any>(\n func: T,\n equalityCheck = defaultEqualityCheck\n): T {\n let lastArgs: IArguments | null = null;\n let lastResult: any = null;\n // we reference arguments instead of spreading them for performance reasons\n function memoized() {\n // eslint-disable-next-line prefer-rest-params\n if (!areArgumentsShallowlyEqual(equalityCheck, lastArgs, arguments)) {\n // apply arguments instead of spreading for performance.\n // eslint-disable-next-line prefer-rest-params, prefer-spread\n lastResult = (<Function>func).apply(null, arguments);\n }\n // eslint-disable-next-line prefer-rest-params\n lastArgs = arguments;\n return lastResult;\n }\n (<any>memoized).reset = function() {\n // The hidden (for now) ability to reset the memoization\n lastArgs = null;\n lastResult = null;\n };\n return memoized as T;\n}\n","import { InjectionToken } from '@angular/core';\nimport { PlainObject } from './symbols';\n\nexport
|
|
1
|
+
{"version":3,"file":"ngxs-store-internals.js","sources":["../../../packages/store/internals/src/angular.ts","../../../packages/store/internals/src/ngxs-bootstrapper.ts","../../../packages/store/internals/src/memoize.ts","../../../packages/store/internals/src/initial-state.ts","../../../packages/store/internals/src/internal-tokens.ts","../../../packages/store/internals/src/ngxs-store-internals.ts"],"sourcesContent":["declare const __karma__: unknown;\ndeclare const jasmine: unknown;\ndeclare const jest: unknown;\ndeclare const Mocha: unknown;\n\nexport function isAngularInTestMode(): boolean {\n // This is safe to check for these properties in the following way since `typeof` does not\n // throw an exception if the value does not exist in the scope.\n // We should not try to read these values from the global scope (e.g. `ɵglobal` from the `@angular/core`).\n // This is related to how these frameworks compile and execute modules. E.g. Jest wraps the module into\n // its internal code where `jest` variable exists in the scope. It cannot be read from the global scope, e.g.\n // this will return undefined `global.jest`, but `jest` will not equal undefined.\n return (\n typeof __karma__ !== 'undefined' ||\n typeof jasmine !== 'undefined' ||\n typeof jest !== 'undefined' ||\n typeof Mocha !== 'undefined'\n );\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, ReplaySubject } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class NgxsBootstrapper {\n /**\n * Use `ReplaySubject`, thus we can get cached value even if the stream is completed\n */\n private bootstrap$ = new ReplaySubject<boolean>(1);\n\n get appBootstrapped$(): Observable<boolean> {\n return this.bootstrap$.asObservable();\n }\n\n /**\n * This event will be emitted after attaching `ComponentRef` of the root component\n * to the tree of views, that's a signal that application has been fully rendered\n */\n bootstrap(): void {\n this.bootstrap$.next(true);\n this.bootstrap$.complete();\n }\n}\n","function defaultEqualityCheck(a: any, b: any) {\n return a === b;\n}\n\nfunction areArgumentsShallowlyEqual(\n equalityCheck: (a: any, b: any) => boolean,\n prev: IArguments | null,\n next: IArguments | null\n) {\n if (prev === null || next === null || prev.length !== next.length) {\n return false;\n }\n\n // Do this in a for loop (and not a `forEach` or an `every`) so we can determine equality as fast as possible.\n const length = prev.length;\n for (let i = 0; i < length; i++) {\n if (!equalityCheck(prev[i], next[i])) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Memoize a function on its last inputs only.\n * Originally from: https://github.com/reduxjs/reselect/blob/master/src/index.js\n *\n * @ignore\n */\nexport function memoize<T extends (...args: any[]) => any>(\n func: T,\n equalityCheck = defaultEqualityCheck\n): T {\n let lastArgs: IArguments | null = null;\n let lastResult: any = null;\n // we reference arguments instead of spreading them for performance reasons\n function memoized() {\n // eslint-disable-next-line prefer-rest-params\n if (!areArgumentsShallowlyEqual(equalityCheck, lastArgs, arguments)) {\n // apply arguments instead of spreading for performance.\n // eslint-disable-next-line prefer-rest-params, prefer-spread\n lastResult = (<Function>func).apply(null, arguments);\n }\n // eslint-disable-next-line prefer-rest-params\n lastArgs = arguments;\n return lastResult;\n }\n (<any>memoized).reset = function() {\n // The hidden (for now) ability to reset the memoization\n lastArgs = null;\n lastResult = null;\n };\n return memoized as T;\n}\n","import { InjectionToken } from '@angular/core';\nimport { PlainObject } from './symbols';\n\nexport class InitialState {\n private static _value: PlainObject = {};\n\n static set(state: PlainObject) {\n this._value = state;\n }\n\n static pop(): PlainObject {\n const state = this._value;\n this._value = {};\n return state;\n }\n}\n\nexport const INITIAL_STATE_TOKEN = new InjectionToken<any>('INITIAL_STATE_TOKEN', {\n providedIn: 'root',\n factory: () => InitialState.pop()\n});\n","import { InjectionToken } from '@angular/core';\n\n// These tokens are internal and can change at any point.\n\nexport const ɵNGXS_STATE_FACTORY = new InjectionToken<any>('ɵNGXS_STATE_FACTORY');\n\nexport const ɵNGXS_STATE_CONTEXT_FACTORY = new InjectionToken<any>(\n 'ɵNGXS_STATE_CONTEXT_FACTORY'\n);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/fesm2015/ngxs-store.js
CHANGED
|
@@ -1,11 +1,103 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { NgZone, PLATFORM_ID, Injectable, Inject, InjectionToken, inject, INJECTOR, ɵglobal, ErrorHandler, Optional, SkipSelf, NgModule, APP_BOOTSTRAP_LISTENER } from '@angular/core';
|
|
3
3
|
import * as i5 from '@ngxs/store/internals';
|
|
4
|
-
import { memoize, INITIAL_STATE_TOKEN, NgxsBootstrapper, ɵNGXS_STATE_CONTEXT_FACTORY, ɵNGXS_STATE_FACTORY
|
|
4
|
+
import { memoize, INITIAL_STATE_TOKEN, NgxsBootstrapper, ɵNGXS_STATE_CONTEXT_FACTORY, ɵNGXS_STATE_FACTORY } from '@ngxs/store/internals';
|
|
5
5
|
import { isPlatformServer } from '@angular/common';
|
|
6
6
|
import { Observable, Subject, BehaviorSubject, of, forkJoin, throwError, EMPTY, from, isObservable } from 'rxjs';
|
|
7
7
|
import { filter, map, share, shareReplay, take, exhaustMap, mergeMap, defaultIfEmpty, catchError, takeUntil, distinctUntilChanged, tap, startWith, pairwise } from 'rxjs/operators';
|
|
8
8
|
|
|
9
|
+
/**
|
|
10
|
+
* Returns the type from an action instance/class.
|
|
11
|
+
* @ignore
|
|
12
|
+
*/
|
|
13
|
+
function getActionTypeFromInstance(action) {
|
|
14
|
+
if (action.constructor && action.constructor.type) {
|
|
15
|
+
return action.constructor.type;
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
return action.type;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Matches a action
|
|
23
|
+
* @ignore
|
|
24
|
+
*/
|
|
25
|
+
function actionMatcher(action1) {
|
|
26
|
+
const type1 = getActionTypeFromInstance(action1);
|
|
27
|
+
return function (action2) {
|
|
28
|
+
return type1 === getActionTypeFromInstance(action2);
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Set a deeply nested value. Example:
|
|
33
|
+
*
|
|
34
|
+
* setValue({ foo: { bar: { eat: false } } },
|
|
35
|
+
* 'foo.bar.eat', true) //=> { foo: { bar: { eat: true } } }
|
|
36
|
+
*
|
|
37
|
+
* While it traverses it also creates new objects from top down.
|
|
38
|
+
*
|
|
39
|
+
* @ignore
|
|
40
|
+
*/
|
|
41
|
+
const setValue = (obj, prop, val) => {
|
|
42
|
+
obj = Object.assign({}, obj);
|
|
43
|
+
const split = prop.split('.');
|
|
44
|
+
const lastIndex = split.length - 1;
|
|
45
|
+
split.reduce((acc, part, index) => {
|
|
46
|
+
if (index === lastIndex) {
|
|
47
|
+
acc[part] = val;
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
acc[part] = Array.isArray(acc[part]) ? acc[part].slice() : Object.assign({}, acc[part]);
|
|
51
|
+
}
|
|
52
|
+
return acc && acc[part];
|
|
53
|
+
}, obj);
|
|
54
|
+
return obj;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* Get a deeply nested value. Example:
|
|
58
|
+
*
|
|
59
|
+
* getValue({ foo: bar: [] }, 'foo.bar') //=> []
|
|
60
|
+
*
|
|
61
|
+
* @ignore
|
|
62
|
+
*/
|
|
63
|
+
const getValue = (obj, prop) => prop.split('.').reduce((acc, part) => acc && acc[part], obj);
|
|
64
|
+
/**
|
|
65
|
+
* Simple object check.
|
|
66
|
+
*
|
|
67
|
+
* isObject({a:1}) //=> true
|
|
68
|
+
* isObject(1) //=> false
|
|
69
|
+
*
|
|
70
|
+
* @ignore
|
|
71
|
+
*/
|
|
72
|
+
const isObject$1 = (item) => {
|
|
73
|
+
return item && typeof item === 'object' && !Array.isArray(item);
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Deep merge two objects.
|
|
77
|
+
*
|
|
78
|
+
* mergeDeep({a:1, b:{x: 1, y:2}}, {b:{x: 3}, c:4}) //=> {a:1, b:{x:3, y:2}, c:4}
|
|
79
|
+
*
|
|
80
|
+
* @param base base object onto which `sources` will be applied
|
|
81
|
+
*/
|
|
82
|
+
const mergeDeep = (base, ...sources) => {
|
|
83
|
+
if (!sources.length)
|
|
84
|
+
return base;
|
|
85
|
+
const source = sources.shift();
|
|
86
|
+
if (isObject$1(base) && isObject$1(source)) {
|
|
87
|
+
for (const key in source) {
|
|
88
|
+
if (isObject$1(source[key])) {
|
|
89
|
+
if (!base[key])
|
|
90
|
+
Object.assign(base, { [key]: {} });
|
|
91
|
+
mergeDeep(base[key], source[key]);
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
Object.assign(base, { [key]: source[key] });
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return mergeDeep(base, ...sources);
|
|
99
|
+
};
|
|
100
|
+
|
|
9
101
|
function throwStateNameError(name) {
|
|
10
102
|
throw new Error(`${name} is not a valid state name. It needs to be a valid object property name.`);
|
|
11
103
|
}
|
|
@@ -95,6 +187,7 @@ function verifyZoneIsNotNooped(ngZone) {
|
|
|
95
187
|
console.warn(getZoneWarningMessage());
|
|
96
188
|
}
|
|
97
189
|
|
|
190
|
+
const ROOT_OPTIONS = new InjectionToken('ROOT_OPTIONS');
|
|
98
191
|
const ROOT_STATE_TOKEN = new InjectionToken('ROOT_STATE_TOKEN');
|
|
99
192
|
const FEATURE_STATE_TOKEN = new InjectionToken('FEATURE_STATE_TOKEN');
|
|
100
193
|
const NGXS_PLUGINS = new InjectionToken('NGXS_PLUGINS');
|
|
@@ -127,9 +220,14 @@ class NgxsConfig {
|
|
|
127
220
|
}
|
|
128
221
|
}
|
|
129
222
|
/** @nocollapse */ NgxsConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxsConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
130
|
-
/** @nocollapse */ NgxsConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxsConfig });
|
|
223
|
+
/** @nocollapse */ NgxsConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxsConfig, providedIn: 'root', useFactory: (options) => mergeDeep(new NgxsConfig(), options), deps: [{ token: ROOT_OPTIONS }] });
|
|
131
224
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxsConfig, decorators: [{
|
|
132
|
-
type: Injectable
|
|
225
|
+
type: Injectable,
|
|
226
|
+
args: [{
|
|
227
|
+
providedIn: 'root',
|
|
228
|
+
useFactory: (options) => mergeDeep(new NgxsConfig(), options),
|
|
229
|
+
deps: [ROOT_OPTIONS]
|
|
230
|
+
}]
|
|
133
231
|
}], ctorParameters: function () { return []; } });
|
|
134
232
|
/**
|
|
135
233
|
* Represents a basic change from a previous to a new value for a single state instance.
|
|
@@ -421,102 +519,10 @@ function topologicalSort(graph) {
|
|
|
421
519
|
*
|
|
422
520
|
* @ignore
|
|
423
521
|
*/
|
|
424
|
-
function isObject
|
|
522
|
+
function isObject(obj) {
|
|
425
523
|
return (typeof obj === 'object' && obj !== null) || typeof obj === 'function';
|
|
426
524
|
}
|
|
427
525
|
|
|
428
|
-
/**
|
|
429
|
-
* Returns the type from an action instance/class.
|
|
430
|
-
* @ignore
|
|
431
|
-
*/
|
|
432
|
-
function getActionTypeFromInstance(action) {
|
|
433
|
-
if (action.constructor && action.constructor.type) {
|
|
434
|
-
return action.constructor.type;
|
|
435
|
-
}
|
|
436
|
-
else {
|
|
437
|
-
return action.type;
|
|
438
|
-
}
|
|
439
|
-
}
|
|
440
|
-
/**
|
|
441
|
-
* Matches a action
|
|
442
|
-
* @ignore
|
|
443
|
-
*/
|
|
444
|
-
function actionMatcher(action1) {
|
|
445
|
-
const type1 = getActionTypeFromInstance(action1);
|
|
446
|
-
return function (action2) {
|
|
447
|
-
return type1 === getActionTypeFromInstance(action2);
|
|
448
|
-
};
|
|
449
|
-
}
|
|
450
|
-
/**
|
|
451
|
-
* Set a deeply nested value. Example:
|
|
452
|
-
*
|
|
453
|
-
* setValue({ foo: { bar: { eat: false } } },
|
|
454
|
-
* 'foo.bar.eat', true) //=> { foo: { bar: { eat: true } } }
|
|
455
|
-
*
|
|
456
|
-
* While it traverses it also creates new objects from top down.
|
|
457
|
-
*
|
|
458
|
-
* @ignore
|
|
459
|
-
*/
|
|
460
|
-
const setValue = (obj, prop, val) => {
|
|
461
|
-
obj = Object.assign({}, obj);
|
|
462
|
-
const split = prop.split('.');
|
|
463
|
-
const lastIndex = split.length - 1;
|
|
464
|
-
split.reduce((acc, part, index) => {
|
|
465
|
-
if (index === lastIndex) {
|
|
466
|
-
acc[part] = val;
|
|
467
|
-
}
|
|
468
|
-
else {
|
|
469
|
-
acc[part] = Array.isArray(acc[part]) ? acc[part].slice() : Object.assign({}, acc[part]);
|
|
470
|
-
}
|
|
471
|
-
return acc && acc[part];
|
|
472
|
-
}, obj);
|
|
473
|
-
return obj;
|
|
474
|
-
};
|
|
475
|
-
/**
|
|
476
|
-
* Get a deeply nested value. Example:
|
|
477
|
-
*
|
|
478
|
-
* getValue({ foo: bar: [] }, 'foo.bar') //=> []
|
|
479
|
-
*
|
|
480
|
-
* @ignore
|
|
481
|
-
*/
|
|
482
|
-
const getValue = (obj, prop) => prop.split('.').reduce((acc, part) => acc && acc[part], obj);
|
|
483
|
-
/**
|
|
484
|
-
* Simple object check.
|
|
485
|
-
*
|
|
486
|
-
* isObject({a:1}) //=> true
|
|
487
|
-
* isObject(1) //=> false
|
|
488
|
-
*
|
|
489
|
-
* @ignore
|
|
490
|
-
*/
|
|
491
|
-
const isObject = (item) => {
|
|
492
|
-
return item && typeof item === 'object' && !Array.isArray(item);
|
|
493
|
-
};
|
|
494
|
-
/**
|
|
495
|
-
* Deep merge two objects.
|
|
496
|
-
*
|
|
497
|
-
* mergeDeep({a:1, b:{x: 1, y:2}}, {b:{x: 3}, c:4}) //=> {a:1, b:{x:3, y:2}, c:4}
|
|
498
|
-
*
|
|
499
|
-
* @param base base object onto which `sources` will be applied
|
|
500
|
-
*/
|
|
501
|
-
const mergeDeep = (base, ...sources) => {
|
|
502
|
-
if (!sources.length)
|
|
503
|
-
return base;
|
|
504
|
-
const source = sources.shift();
|
|
505
|
-
if (isObject(base) && isObject(source)) {
|
|
506
|
-
for (const key in source) {
|
|
507
|
-
if (isObject(source[key])) {
|
|
508
|
-
if (!base[key])
|
|
509
|
-
Object.assign(base, { [key]: {} });
|
|
510
|
-
mergeDeep(base[key], source[key]);
|
|
511
|
-
}
|
|
512
|
-
else {
|
|
513
|
-
Object.assign(base, { [key]: source[key] });
|
|
514
|
-
}
|
|
515
|
-
}
|
|
516
|
-
}
|
|
517
|
-
return mergeDeep(base, ...sources);
|
|
518
|
-
};
|
|
519
|
-
|
|
520
526
|
/**
|
|
521
527
|
* RxJS operator for selecting out specific actions.
|
|
522
528
|
*
|
|
@@ -1046,7 +1052,6 @@ const deepFreeze = (o) => {
|
|
|
1046
1052
|
};
|
|
1047
1053
|
|
|
1048
1054
|
/**
|
|
1049
|
-
* State Context factory class
|
|
1050
1055
|
* @ignore
|
|
1051
1056
|
*/
|
|
1052
1057
|
class InternalStateOperations {
|
|
@@ -1372,7 +1377,7 @@ class StateFactory {
|
|
|
1372
1377
|
if (Array.isArray(defaults)) {
|
|
1373
1378
|
value = defaults.slice();
|
|
1374
1379
|
}
|
|
1375
|
-
else if (isObject
|
|
1380
|
+
else if (isObject(defaults)) {
|
|
1376
1381
|
value = Object.assign({}, defaults);
|
|
1377
1382
|
}
|
|
1378
1383
|
else if (defaults === undefined) {
|
|
@@ -1928,24 +1933,15 @@ class NgxsModule {
|
|
|
1928
1933
|
useValue: states
|
|
1929
1934
|
},
|
|
1930
1935
|
{
|
|
1931
|
-
provide:
|
|
1936
|
+
provide: ROOT_OPTIONS,
|
|
1932
1937
|
useValue: options
|
|
1933
1938
|
},
|
|
1934
|
-
{
|
|
1935
|
-
provide: NgxsConfig,
|
|
1936
|
-
useFactory: NgxsModule.ngxsConfigFactory,
|
|
1937
|
-
deps: [NgxsModule.ROOT_OPTIONS]
|
|
1938
|
-
},
|
|
1939
1939
|
{
|
|
1940
1940
|
provide: APP_BOOTSTRAP_LISTENER,
|
|
1941
1941
|
useFactory: NgxsModule.appBootstrapListenerFactory,
|
|
1942
1942
|
multi: true,
|
|
1943
1943
|
deps: [NgxsBootstrapper]
|
|
1944
1944
|
},
|
|
1945
|
-
{
|
|
1946
|
-
provide: INITIAL_STATE_TOKEN,
|
|
1947
|
-
useFactory: NgxsModule.getInitialState
|
|
1948
|
-
},
|
|
1949
1945
|
{
|
|
1950
1946
|
provide: ɵNGXS_STATE_CONTEXT_FACTORY,
|
|
1951
1947
|
useExisting: StateContextFactory
|
|
@@ -1956,17 +1952,10 @@ class NgxsModule {
|
|
|
1956
1952
|
}
|
|
1957
1953
|
];
|
|
1958
1954
|
}
|
|
1959
|
-
static ngxsConfigFactory(options) {
|
|
1960
|
-
return mergeDeep(new NgxsConfig(), options);
|
|
1961
|
-
}
|
|
1962
1955
|
static appBootstrapListenerFactory(bootstrapper) {
|
|
1963
1956
|
return () => bootstrapper.bootstrap();
|
|
1964
1957
|
}
|
|
1965
|
-
static getInitialState() {
|
|
1966
|
-
return InitialState.pop();
|
|
1967
|
-
}
|
|
1968
1958
|
}
|
|
1969
|
-
NgxsModule.ROOT_OPTIONS = new InjectionToken('ROOT_OPTIONS');
|
|
1970
1959
|
/** @nocollapse */ NgxsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
1971
1960
|
/** @nocollapse */ NgxsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxsModule });
|
|
1972
1961
|
/** @nocollapse */ NgxsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxsModule });
|