@ngxs/store 18.1.5-dev.master-0577575 → 18.1.5-dev.master-cd94934
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/esm2022/plugins/index.mjs +2 -2
- package/esm2022/plugins/symbols.mjs +14 -4
- package/esm2022/src/plugin-manager.mjs +4 -3
- package/esm2022/src/standalone-features/plugin.mjs +10 -4
- package/esm2022/src/standalone-features/root-providers.mjs +1 -3
- package/fesm2022/ngxs-store-plugins.mjs +14 -4
- package/fesm2022/ngxs-store-plugins.mjs.map +1 -1
- package/fesm2022/ngxs-store.mjs +12 -6
- package/fesm2022/ngxs-store.mjs.map +1 -1
- package/index.d.ts +2 -2
- package/package.json +7 -7
- package/plugins/index.d.ts +12 -5
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { InitState, UpdateState } from './actions';
|
|
2
|
-
export { NGXS_PLUGINS } from './symbols';
|
|
2
|
+
export { NGXS_PLUGINS, ɵisPluginClass } from './symbols';
|
|
3
3
|
export { getActionTypeFromInstance, actionMatcher, setValue, getValue } from './utils';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9wbHVnaW5zL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNuRCxPQUFPLEVBQ0wsWUFBWSxFQUlaLGNBQWMsRUFDZixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQUUseUJBQXlCLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBJbml0U3RhdGUsIFVwZGF0ZVN0YXRlIH0gZnJvbSAnLi9hY3Rpb25zJztcbmV4cG9ydCB7XG4gIE5HWFNfUExVR0lOUyxcbiAgTmd4c1BsdWdpbixcbiAgTmd4c1BsdWdpbkZuLFxuICBOZ3hzTmV4dFBsdWdpbkZuLFxuICDJtWlzUGx1Z2luQ2xhc3Ncbn0gZnJvbSAnLi9zeW1ib2xzJztcbmV4cG9ydCB7IGdldEFjdGlvblR5cGVGcm9tSW5zdGFuY2UsIGFjdGlvbk1hdGNoZXIsIHNldFZhbHVlLCBnZXRWYWx1ZSB9IGZyb20gJy4vdXRpbHMnO1xuIl19
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
import { InjectionToken } from '@angular/core';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
/**
|
|
3
|
+
* A multi-provider token used to resolve to custom NGXS plugins provided
|
|
4
|
+
* at the root and feature levels through the `{provide}` scheme.
|
|
5
|
+
*
|
|
6
|
+
* @deprecated from v18.0.0, use `withNgxsPlugin` instead.
|
|
7
|
+
*/
|
|
8
|
+
export const NGXS_PLUGINS = /* @__PURE__ */ new InjectionToken(typeof ngDevMode !== 'undefined' && ngDevMode ? 'NGXS_PLUGINS' : '');
|
|
9
|
+
export function ɵisPluginClass(plugin) {
|
|
10
|
+
// Determines whether the provided value is a class rather than a function.
|
|
11
|
+
// If it’s a class, its handle method should be defined on its prototype,
|
|
12
|
+
// as plugins can be either classes or functions.
|
|
13
|
+
return !!plugin.prototype.handle;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL3BsdWdpbnMvc3JjL3N5bWJvbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQWtCckQ7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLElBQUksY0FBYyxDQUM1RCxPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDcEUsQ0FBQztBQUVGLE1BQU0sVUFBVSxjQUFjLENBQzVCLE1BQXVDO0lBRXZDLDJFQUEyRTtJQUMzRSx5RUFBeUU7SUFDekUsaURBQWlEO0lBQ2pELE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO0FBQ25DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5kZWNsYXJlIGNvbnN0IG5nRGV2TW9kZTogYm9vbGVhbjtcblxuZXhwb3J0IHR5cGUgTmd4c05leHRQbHVnaW5GbiA9IChzdGF0ZTogYW55LCBhY3Rpb246IGFueSkgPT4gYW55O1xuXG5leHBvcnQgdHlwZSBOZ3hzUGx1Z2luRm4gPSAoc3RhdGU6IGFueSwgYWN0aW9uOiBhbnksIG5leHQ6IE5neHNOZXh0UGx1Z2luRm4pID0+IGFueTtcblxuLyoqXG4gKiBQbHVnaW4gaW50ZXJmYWNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmd4c1BsdWdpbiB7XG4gIC8qKlxuICAgKiBIYW5kbGUgdGhlIHN0YXRlL2FjdGlvbiBiZWZvcmUgaXRzIHN1Ym1pdHRlZCB0byB0aGUgc3RhdGUgaGFuZGxlcnMuXG4gICAqL1xuICBoYW5kbGUoc3RhdGU6IGFueSwgYWN0aW9uOiBhbnksIG5leHQ6IE5neHNOZXh0UGx1Z2luRm4pOiBhbnk7XG59XG5cbi8qKlxuICogQSBtdWx0aS1wcm92aWRlciB0b2tlbiB1c2VkIHRvIHJlc29sdmUgdG8gY3VzdG9tIE5HWFMgcGx1Z2lucyBwcm92aWRlZFxuICogYXQgdGhlIHJvb3QgYW5kIGZlYXR1cmUgbGV2ZWxzIHRocm91Z2ggdGhlIGB7cHJvdmlkZX1gIHNjaGVtZS5cbiAqXG4gKiBAZGVwcmVjYXRlZCBmcm9tIHYxOC4wLjAsIHVzZSBgd2l0aE5neHNQbHVnaW5gIGluc3RlYWQuXG4gKi9cbmV4cG9ydCBjb25zdCBOR1hTX1BMVUdJTlMgPSAvKiBAX19QVVJFX18gKi8gbmV3IEluamVjdGlvblRva2VuPE5neHNQbHVnaW5bXT4oXG4gIHR5cGVvZiBuZ0Rldk1vZGUgIT09ICd1bmRlZmluZWQnICYmIG5nRGV2TW9kZSA/ICdOR1hTX1BMVUdJTlMnIDogJydcbik7XG5cbmV4cG9ydCBmdW5jdGlvbiDJtWlzUGx1Z2luQ2xhc3MoXG4gIHBsdWdpbjogVHlwZTxOZ3hzUGx1Z2luPiB8IE5neHNQbHVnaW5GblxuKTogcGx1Z2luIGlzIFR5cGU8Tmd4c1BsdWdpbj4ge1xuICAvLyBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIHByb3ZpZGVkIHZhbHVlIGlzIGEgY2xhc3MgcmF0aGVyIHRoYW4gYSBmdW5jdGlvbi5cbiAgLy8gSWYgaXTigJlzIGEgY2xhc3MsIGl0cyBoYW5kbGUgbWV0aG9kIHNob3VsZCBiZSBkZWZpbmVkIG9uIGl0cyBwcm90b3R5cGUsXG4gIC8vIGFzIHBsdWdpbnMgY2FuIGJlIGVpdGhlciBjbGFzc2VzIG9yIGZ1bmN0aW9ucy5cbiAgcmV0dXJuICEhcGx1Z2luLnByb3RvdHlwZS5oYW5kbGU7XG59XG4iXX0=
|
|
@@ -25,9 +25,10 @@ export class PluginManager {
|
|
|
25
25
|
return handlers.map((plugin) => (plugin.handle ? plugin.handle.bind(plugin) : plugin));
|
|
26
26
|
}
|
|
27
27
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: PluginManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
28
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: PluginManager }); }
|
|
28
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: PluginManager, providedIn: 'root' }); }
|
|
29
29
|
}
|
|
30
30
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: PluginManager, decorators: [{
|
|
31
|
-
type: Injectable
|
|
31
|
+
type: Injectable,
|
|
32
|
+
args: [{ providedIn: 'root' }]
|
|
32
33
|
}], ctorParameters: () => [] });
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLW1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvcGx1Z2luLW1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBNEIsTUFBTSxxQkFBcUIsQ0FBQzs7QUFHN0UsTUFBTSxPQUFPLGFBQWE7SUFZeEI7UUFYUyxZQUFPLEdBQW1CLEVBQUUsQ0FBQztRQUVyQixtQkFBYyxHQUFHLE1BQU0sQ0FBQyxhQUFhLEVBQUU7WUFDdEQsUUFBUSxFQUFFLElBQUk7WUFDZCxRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUMsQ0FBQztRQUVjLG9CQUFlLEdBQUcsTUFBTSxDQUFlLFlBQVksRUFBRTtZQUNwRSxRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUMsQ0FBQztRQUdELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFZLFlBQVk7UUFDdEIsT0FBTyxJQUFJLENBQUMsY0FBYyxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RELENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsTUFBTSxjQUFjLEdBQW1CLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ2hFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsY0FBYyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVPLGlCQUFpQjtRQUN2QixNQUFNLFFBQVEsR0FBaUIsSUFBSSxDQUFDLGVBQWUsSUFBSSxFQUFFLENBQUM7UUFDMUQsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUNqQixDQUFDLE1BQWtCLEVBQUUsRUFBRSxDQUNyQixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQWlCLENBQ3hFLENBQUM7SUFDSixDQUFDO2lJQS9CVSxhQUFhO3FJQUFiLGFBQWEsY0FEQSxNQUFNOzsyRkFDbkIsYUFBYTtrQkFEekIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HWFNfUExVR0lOUywgTmd4c1BsdWdpbiwgTmd4c1BsdWdpbkZuIH0gZnJvbSAnQG5neHMvc3RvcmUvcGx1Z2lucyc7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgUGx1Z2luTWFuYWdlciB7XG4gIHJlYWRvbmx5IHBsdWdpbnM6IE5neHNQbHVnaW5GbltdID0gW107XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfcGFyZW50TWFuYWdlciA9IGluamVjdChQbHVnaW5NYW5hZ2VyLCB7XG4gICAgb3B0aW9uYWw6IHRydWUsXG4gICAgc2tpcFNlbGY6IHRydWVcbiAgfSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfcGx1Z2luSGFuZGxlcnMgPSBpbmplY3Q8Tmd4c1BsdWdpbltdPihOR1hTX1BMVUdJTlMsIHtcbiAgICBvcHRpb25hbDogdHJ1ZVxuICB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnJlZ2lzdGVySGFuZGxlcnMoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IF9yb290UGx1Z2lucygpOiBOZ3hzUGx1Z2luRm5bXSB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcmVudE1hbmFnZXI/LnBsdWdpbnMgfHwgdGhpcy5wbHVnaW5zO1xuICB9XG5cbiAgcHJpdmF0ZSByZWdpc3RlckhhbmRsZXJzKCk6IHZvaWQge1xuICAgIGNvbnN0IHBsdWdpbkhhbmRsZXJzOiBOZ3hzUGx1Z2luRm5bXSA9IHRoaXMuZ2V0UGx1Z2luSGFuZGxlcnMoKTtcbiAgICB0aGlzLl9yb290UGx1Z2lucy5wdXNoKC4uLnBsdWdpbkhhbmRsZXJzKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UGx1Z2luSGFuZGxlcnMoKTogTmd4c1BsdWdpbkZuW10ge1xuICAgIGNvbnN0IGhhbmRsZXJzOiBOZ3hzUGx1Z2luW10gPSB0aGlzLl9wbHVnaW5IYW5kbGVycyB8fCBbXTtcbiAgICByZXR1cm4gaGFuZGxlcnMubWFwKFxuICAgICAgKHBsdWdpbjogTmd4c1BsdWdpbikgPT5cbiAgICAgICAgKHBsdWdpbi5oYW5kbGUgPyBwbHVnaW4uaGFuZGxlLmJpbmQocGx1Z2luKSA6IHBsdWdpbikgYXMgTmd4c1BsdWdpbkZuXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ENVIRONMENT_INITIALIZER, inject, makeEnvironmentProviders } from '@angular/core';
|
|
2
|
-
import { NGXS_PLUGINS } from '@ngxs/store/plugins';
|
|
2
|
+
import { NGXS_PLUGINS, ɵisPluginClass } from '@ngxs/store/plugins';
|
|
3
3
|
import { PluginManager } from '../plugin-manager';
|
|
4
4
|
/**
|
|
5
5
|
* This function registers a custom global plugin for the state.
|
|
@@ -17,11 +17,17 @@ import { PluginManager } from '../plugin-manager';
|
|
|
17
17
|
*/
|
|
18
18
|
export function withNgxsPlugin(plugin) {
|
|
19
19
|
return makeEnvironmentProviders([
|
|
20
|
-
|
|
20
|
+
ɵisPluginClass(plugin)
|
|
21
|
+
? { provide: NGXS_PLUGINS, useClass: plugin, multi: true }
|
|
22
|
+
: { provide: NGXS_PLUGINS, useValue: plugin, multi: true },
|
|
21
23
|
// We should inject the `PluginManager` to retrieve `NGXS_PLUGINS` and
|
|
22
24
|
// register those plugins. The plugin can be added from inside the child
|
|
23
25
|
// route, so the plugin manager should be re-injected.
|
|
24
|
-
{
|
|
26
|
+
{
|
|
27
|
+
provide: ENVIRONMENT_INITIALIZER,
|
|
28
|
+
useValue: () => inject(PluginManager),
|
|
29
|
+
multi: true
|
|
30
|
+
}
|
|
25
31
|
]);
|
|
26
32
|
}
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RvcmUvc3JjL3N0YW5kYWxvbmUtZmVhdHVyZXMvcGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFHdkIsTUFBTSxFQUNOLHdCQUF3QixFQUN6QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUE0QixjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUU3RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbEQ7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsTUFBdUM7SUFDcEUsT0FBTyx3QkFBd0IsQ0FBQztRQUM5QixjQUFjLENBQUMsTUFBTSxDQUFDO1lBQ3BCLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQzFELENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1FBQzVELHNFQUFzRTtRQUN0RSx3RUFBd0U7UUFDeEUsc0RBQXNEO1FBQ3REO1lBQ0UsT0FBTyxFQUFFLHVCQUF1QjtZQUNoQyxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztZQUNyQyxLQUFLLEVBQUUsSUFBSTtTQUNaO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEVOVklST05NRU5UX0lOSVRJQUxJWkVSLFxuICBFbnZpcm9ubWVudFByb3ZpZGVycyxcbiAgVHlwZSxcbiAgaW5qZWN0LFxuICBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR1hTX1BMVUdJTlMsIE5neHNQbHVnaW4sIE5neHNQbHVnaW5GbiwgybVpc1BsdWdpbkNsYXNzIH0gZnJvbSAnQG5neHMvc3RvcmUvcGx1Z2lucyc7XG5cbmltcG9ydCB7IFBsdWdpbk1hbmFnZXIgfSBmcm9tICcuLi9wbHVnaW4tbWFuYWdlcic7XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiByZWdpc3RlcnMgYSBjdXN0b20gZ2xvYmFsIHBsdWdpbiBmb3IgdGhlIHN0YXRlLlxuICpcbiAqIGBgYHRzXG4gKiBib290c3RyYXBBcHBsaWNhdGlvbihBcHBDb21wb25lbnQsIHtcbiAqICAgcHJvdmlkZXJzOiBbXG4gKiAgICAgcHJvdmlkZVN0b3JlKFxuICogICAgICAgW0NvdW50cmllc1N0YXRlXSxcbiAqICAgICAgIHdpdGhOZ3hzUGx1Z2luKExvZ291dFBsdWdpbilcbiAqICAgICApXG4gKiAgIF1cbiAqIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3aXRoTmd4c1BsdWdpbihwbHVnaW46IFR5cGU8Tmd4c1BsdWdpbj4gfCBOZ3hzUGx1Z2luRm4pOiBFbnZpcm9ubWVudFByb3ZpZGVycyB7XG4gIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW1xuICAgIMm1aXNQbHVnaW5DbGFzcyhwbHVnaW4pXG4gICAgICA/IHsgcHJvdmlkZTogTkdYU19QTFVHSU5TLCB1c2VDbGFzczogcGx1Z2luLCBtdWx0aTogdHJ1ZSB9XG4gICAgICA6IHsgcHJvdmlkZTogTkdYU19QTFVHSU5TLCB1c2VWYWx1ZTogcGx1Z2luLCBtdWx0aTogdHJ1ZSB9LFxuICAgIC8vIFdlIHNob3VsZCBpbmplY3QgdGhlIGBQbHVnaW5NYW5hZ2VyYCB0byByZXRyaWV2ZSBgTkdYU19QTFVHSU5TYCBhbmRcbiAgICAvLyByZWdpc3RlciB0aG9zZSBwbHVnaW5zLiBUaGUgcGx1Z2luIGNhbiBiZSBhZGRlZCBmcm9tIGluc2lkZSB0aGUgY2hpbGRcbiAgICAvLyByb3V0ZSwgc28gdGhlIHBsdWdpbiBtYW5hZ2VyIHNob3VsZCBiZSByZS1pbmplY3RlZC5cbiAgICB7XG4gICAgICBwcm92aWRlOiBFTlZJUk9OTUVOVF9JTklUSUFMSVpFUixcbiAgICAgIHVzZVZhbHVlOiAoKSA9PiBpbmplY3QoUGx1Z2luTWFuYWdlciksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXSk7XG59XG4iXX0=
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { APP_BOOTSTRAP_LISTENER, inject } from '@angular/core';
|
|
2
2
|
import { ɵNgxsAppBootstrappedState } from '@ngxs/store/internals';
|
|
3
|
-
import { PluginManager } from '../plugin-manager';
|
|
4
3
|
import { StateFactory } from '../internal/state-factory';
|
|
5
4
|
import { CUSTOM_NGXS_EXECUTION_STRATEGY } from '../execution/symbols';
|
|
6
5
|
import { ROOT_STATE_TOKEN, NGXS_OPTIONS } from '../symbols';
|
|
@@ -11,7 +10,6 @@ import { ROOT_STATE_TOKEN, NGXS_OPTIONS } from '../symbols';
|
|
|
11
10
|
export function getRootProviders(states, options) {
|
|
12
11
|
return [
|
|
13
12
|
StateFactory,
|
|
14
|
-
PluginManager,
|
|
15
13
|
...states,
|
|
16
14
|
{
|
|
17
15
|
provide: ROOT_STATE_TOKEN,
|
|
@@ -35,4 +33,4 @@ export function getRootProviders(states, options) {
|
|
|
35
33
|
}
|
|
36
34
|
];
|
|
37
35
|
}
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC1wcm92aWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvc3RhbmRhbG9uZS1mZWF0dXJlcy9yb290LXByb3ZpZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQVksTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pFLE9BQU8sRUFBZSx5QkFBeUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRS9FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RSxPQUFPLEVBQXFCLGdCQUFnQixFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUUvRTs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLE1BQXFCLEVBQ3JCLE9BQTBCO0lBRTFCLE9BQU87UUFDTCxZQUFZO1FBQ1osR0FBRyxNQUFNO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsZ0JBQWdCO1lBQ3pCLFFBQVEsRUFBRSxNQUFNO1NBQ2pCO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsc0JBQXNCO1lBQy9CLFVBQVUsRUFBRSxHQUFHLEVBQUU7Z0JBQ2YsTUFBTSxvQkFBb0IsR0FBRyxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQztnQkFDL0QsT0FBTyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNoRCxDQUFDO1lBQ0QsS0FBSyxFQUFFLElBQUk7U0FDWjtRQUNEO1lBQ0UsT0FBTyxFQUFFLFlBQVk7WUFDckIsUUFBUSxFQUFFLE9BQU87U0FDbEI7UUFDRDtZQUNFLE9BQU8sRUFBRSw4QkFBOEI7WUFDdkMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxpQkFBaUI7U0FDcEM7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFQUF9CT09UU1RSQVBfTElTVEVORVIsIFByb3ZpZGVyLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IMm1U3RhdGVDbGFzcywgybVOZ3hzQXBwQm9vdHN0cmFwcGVkU3RhdGUgfSBmcm9tICdAbmd4cy9zdG9yZS9pbnRlcm5hbHMnO1xuXG5pbXBvcnQgeyBTdGF0ZUZhY3RvcnkgfSBmcm9tICcuLi9pbnRlcm5hbC9zdGF0ZS1mYWN0b3J5JztcbmltcG9ydCB7IENVU1RPTV9OR1hTX0VYRUNVVElPTl9TVFJBVEVHWSB9IGZyb20gJy4uL2V4ZWN1dGlvbi9zeW1ib2xzJztcbmltcG9ydCB7IE5neHNNb2R1bGVPcHRpb25zLCBST09UX1NUQVRFX1RPS0VOLCBOR1hTX09QVElPTlMgfSBmcm9tICcuLi9zeW1ib2xzJztcblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIHByb3ZpZGVzIHRoZSByZXF1aXJlZCBwcm92aWRlcnMgd2hlbiBpbnZva2luZyBgTmd4c01vZHVsZS5mb3JSb290YFxuICogb3IgYHByb3ZpZGVTdG9yZWAuIEl0IGlzIHNoYXJlZCBiZXR3ZWVuIHRoZSBOZ01vZHVsZSBhbmQgc3RhbmRhbG9uZSBBUElzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Um9vdFByb3ZpZGVycyhcbiAgc3RhdGVzOiDJtVN0YXRlQ2xhc3NbXSxcbiAgb3B0aW9uczogTmd4c01vZHVsZU9wdGlvbnNcbik6IFByb3ZpZGVyW10ge1xuICByZXR1cm4gW1xuICAgIFN0YXRlRmFjdG9yeSxcbiAgICAuLi5zdGF0ZXMsXG4gICAge1xuICAgICAgcHJvdmlkZTogUk9PVF9TVEFURV9UT0tFTixcbiAgICAgIHVzZVZhbHVlOiBzdGF0ZXNcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFQUF9CT09UU1RSQVBfTElTVEVORVIsXG4gICAgICB1c2VGYWN0b3J5OiAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGFwcEJvb3RzdHJhcHBlZFN0YXRlID0gaW5qZWN0KMm1Tmd4c0FwcEJvb3RzdHJhcHBlZFN0YXRlKTtcbiAgICAgICAgcmV0dXJuICgpID0+IGFwcEJvb3RzdHJhcHBlZFN0YXRlLmJvb3RzdHJhcCgpO1xuICAgICAgfSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR1hTX09QVElPTlMsXG4gICAgICB1c2VWYWx1ZTogb3B0aW9uc1xuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogQ1VTVE9NX05HWFNfRVhFQ1VUSU9OX1NUUkFURUdZLFxuICAgICAgdXNlVmFsdWU6IG9wdGlvbnMuZXhlY3V0aW9uU3RyYXRlZ3lcbiAgICB9XG4gIF07XG59XG4iXX0=
|
|
@@ -16,9 +16,19 @@ class UpdateState {
|
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
/**
|
|
20
|
+
* A multi-provider token used to resolve to custom NGXS plugins provided
|
|
21
|
+
* at the root and feature levels through the `{provide}` scheme.
|
|
22
|
+
*
|
|
23
|
+
* @deprecated from v18.0.0, use `withNgxsPlugin` instead.
|
|
24
|
+
*/
|
|
25
|
+
const NGXS_PLUGINS = /* @__PURE__ */ new InjectionToken(typeof ngDevMode !== 'undefined' && ngDevMode ? 'NGXS_PLUGINS' : '');
|
|
26
|
+
function ɵisPluginClass(plugin) {
|
|
27
|
+
// Determines whether the provided value is a class rather than a function.
|
|
28
|
+
// If it’s a class, its handle method should be defined on its prototype,
|
|
29
|
+
// as plugins can be either classes or functions.
|
|
30
|
+
return !!plugin.prototype.handle;
|
|
31
|
+
}
|
|
22
32
|
|
|
23
33
|
/**
|
|
24
34
|
* Returns the type from an action instance/class.
|
|
@@ -75,5 +85,5 @@ const getValue = (obj, prop) => prop.split('.').reduce((acc, part) => acc && acc
|
|
|
75
85
|
* Generated bundle index. Do not edit.
|
|
76
86
|
*/
|
|
77
87
|
|
|
78
|
-
export { InitState, NGXS_PLUGINS, UpdateState, actionMatcher, getActionTypeFromInstance, getValue, setValue };
|
|
88
|
+
export { InitState, NGXS_PLUGINS, UpdateState, actionMatcher, getActionTypeFromInstance, getValue, setValue, ɵisPluginClass };
|
|
79
89
|
//# sourceMappingURL=ngxs-store-plugins.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngxs-store-plugins.mjs","sources":["../../../packages/store/plugins/src/actions.ts","../../../packages/store/plugins/src/symbols.ts","../../../packages/store/plugins/src/utils.ts","../../../packages/store/plugins/src/ngxs-store-plugins.ts"],"sourcesContent":["import { ɵPlainObject } from '@ngxs/store/internals';\n\n/**\n * Init action\n */\nexport class InitState {\n static readonly type = '@@INIT';\n}\n\n/**\n * Update action\n */\nexport class UpdateState {\n static readonly type = '@@UPDATE_STATE';\n\n constructor(readonly addedStates?: ɵPlainObject) {}\n}\n","import { InjectionToken } from '@angular/core';\n\ndeclare const ngDevMode: boolean;\n\n
|
|
1
|
+
{"version":3,"file":"ngxs-store-plugins.mjs","sources":["../../../packages/store/plugins/src/actions.ts","../../../packages/store/plugins/src/symbols.ts","../../../packages/store/plugins/src/utils.ts","../../../packages/store/plugins/src/ngxs-store-plugins.ts"],"sourcesContent":["import { ɵPlainObject } from '@ngxs/store/internals';\n\n/**\n * Init action\n */\nexport class InitState {\n static readonly type = '@@INIT';\n}\n\n/**\n * Update action\n */\nexport class UpdateState {\n static readonly type = '@@UPDATE_STATE';\n\n constructor(readonly addedStates?: ɵPlainObject) {}\n}\n","import { InjectionToken, Type } from '@angular/core';\n\ndeclare const ngDevMode: boolean;\n\nexport type NgxsNextPluginFn = (state: any, action: any) => any;\n\nexport type NgxsPluginFn = (state: any, action: any, next: NgxsNextPluginFn) => any;\n\n/**\n * Plugin interface\n */\nexport interface NgxsPlugin {\n /**\n * Handle the state/action before its submitted to the state handlers.\n */\n handle(state: any, action: any, next: NgxsNextPluginFn): any;\n}\n\n/**\n * A multi-provider token used to resolve to custom NGXS plugins provided\n * at the root and feature levels through the `{provide}` scheme.\n *\n * @deprecated from v18.0.0, use `withNgxsPlugin` instead.\n */\nexport const NGXS_PLUGINS = /* @__PURE__ */ new InjectionToken<NgxsPlugin[]>(\n typeof ngDevMode !== 'undefined' && ngDevMode ? 'NGXS_PLUGINS' : ''\n);\n\nexport function ɵisPluginClass(\n plugin: Type<NgxsPlugin> | NgxsPluginFn\n): plugin is Type<NgxsPlugin> {\n // Determines whether the provided value is a class rather than a function.\n // If it’s a class, its handle method should be defined on its prototype,\n // as plugins can be either classes or functions.\n return !!plugin.prototype.handle;\n}\n","/**\n * Returns the type from an action instance/class.\n * @ignore\n */\nexport function getActionTypeFromInstance(action: any): string | undefined {\n return action.constructor?.type || action.type;\n}\n\n/**\n * Matches a action\n * @ignore\n */\nexport function actionMatcher(action1: any) {\n const type1 = getActionTypeFromInstance(action1);\n\n return function (action2: any) {\n return type1 === getActionTypeFromInstance(action2);\n };\n}\n\n/**\n * Set a deeply nested value. Example:\n *\n * setValue({ foo: { bar: { eat: false } } },\n * 'foo.bar.eat', true) //=> { foo: { bar: { eat: true } } }\n *\n * While it traverses it also creates new objects from top down.\n *\n * @ignore\n */\nexport const setValue = (obj: any, prop: string, val: any) => {\n obj = { ...obj };\n\n const split = prop.split('.');\n const lastIndex = split.length - 1;\n\n split.reduce((acc, part, index) => {\n if (index === lastIndex) {\n acc[part] = val;\n } else {\n acc[part] = Array.isArray(acc[part]) ? acc[part].slice() : { ...acc[part] };\n }\n\n return acc && acc[part];\n }, obj);\n\n return obj;\n};\n\n/**\n * Get a deeply nested value. Example:\n *\n * getValue({ foo: bar: [] }, 'foo.bar') //=> []\n *\n * @ignore\n */\nexport const getValue = (obj: any, prop: string): any =>\n prop.split('.').reduce((acc: any, part: string) => acc && acc[part], obj);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAEA;;AAEG;MACU,SAAS,CAAA;aACJ,IAAI,CAAA,IAAA,GAAG,QAAQ,CAAC,EAAA;;AAGlC;;AAEG;MACU,WAAW,CAAA;aACN,IAAI,CAAA,IAAA,GAAG,gBAAgB,CAAC,EAAA;AAExC,IAAA,WAAA,CAAqB,WAA0B,EAAA;QAA1B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAe;KAAI;;;ACGrD;;;;;AAKG;AACU,MAAA,YAAY,mBAAmB,IAAI,cAAc,CAC5D,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,GAAG,cAAc,GAAG,EAAE,EACnE;AAEI,SAAU,cAAc,CAC5B,MAAuC,EAAA;;;;AAKvC,IAAA,OAAO,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC;AACnC;;ACnCA;;;AAGG;AACG,SAAU,yBAAyB,CAAC,MAAW,EAAA;IACnD,OAAO,MAAM,CAAC,WAAW,EAAE,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC;AACjD,CAAC;AAED;;;AAGG;AACG,SAAU,aAAa,CAAC,OAAY,EAAA;AACxC,IAAA,MAAM,KAAK,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;AAEjD,IAAA,OAAO,UAAU,OAAY,EAAA;AAC3B,QAAA,OAAO,KAAK,KAAK,yBAAyB,CAAC,OAAO,CAAC,CAAC;AACtD,KAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;AASG;AACU,MAAA,QAAQ,GAAG,CAAC,GAAQ,EAAE,IAAY,EAAE,GAAQ,KAAI;AAC3D,IAAA,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;IAEjB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC9B,IAAA,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAEnC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,KAAI;AAChC,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AACvB,YAAA,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;SACjB;aAAM;AACL,YAAA,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;SAC7E;AAED,QAAA,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;KACzB,EAAE,GAAG,CAAC,CAAC;AAER,IAAA,OAAO,GAAG,CAAC;AACb,EAAE;AAEF;;;;;;AAMG;AACU,MAAA,QAAQ,GAAG,CAAC,GAAQ,EAAE,IAAY,KAC7C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAQ,EAAE,IAAY,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG;;ACzD1E;;AAEG;;;;"}
|
package/fesm2022/ngxs-store.mjs
CHANGED
|
@@ -5,7 +5,7 @@ import { ɵwrapObserverCalls as _wrapObserverCalls, ɵOrderedSubject as _Ordered
|
|
|
5
5
|
export { StateToken } from '@ngxs/store/internals';
|
|
6
6
|
import { isPlatformServer } from '@angular/common';
|
|
7
7
|
import { map, shareReplay, filter as filter$1, take, mergeMap, tap, takeUntil as takeUntil$1, startWith, pairwise } from 'rxjs/operators';
|
|
8
|
-
import { NGXS_PLUGINS, getActionTypeFromInstance, InitState, UpdateState, setValue, getValue } from '@ngxs/store/plugins';
|
|
8
|
+
import { NGXS_PLUGINS, getActionTypeFromInstance, InitState, UpdateState, setValue, getValue, ɵisPluginClass as _isPluginClass } from '@ngxs/store/plugins';
|
|
9
9
|
export { InitState, NGXS_PLUGINS, UpdateState, actionMatcher, getActionTypeFromInstance, getValue, setValue } from '@ngxs/store/plugins';
|
|
10
10
|
import { isStateOperator } from '@ngxs/store/operators';
|
|
11
11
|
|
|
@@ -250,10 +250,11 @@ class PluginManager {
|
|
|
250
250
|
return handlers.map((plugin) => (plugin.handle ? plugin.handle.bind(plugin) : plugin));
|
|
251
251
|
}
|
|
252
252
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: PluginManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
253
|
-
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: PluginManager }); }
|
|
253
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: PluginManager, providedIn: 'root' }); }
|
|
254
254
|
}
|
|
255
255
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: PluginManager, decorators: [{
|
|
256
|
-
type: Injectable
|
|
256
|
+
type: Injectable,
|
|
257
|
+
args: [{ providedIn: 'root' }]
|
|
257
258
|
}], ctorParameters: () => [] });
|
|
258
259
|
|
|
259
260
|
const ɵɵunhandledRxjsErrorCallbacks = new WeakMap();
|
|
@@ -1883,7 +1884,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImpor
|
|
|
1883
1884
|
function getRootProviders(states, options) {
|
|
1884
1885
|
return [
|
|
1885
1886
|
StateFactory,
|
|
1886
|
-
PluginManager,
|
|
1887
1887
|
...states,
|
|
1888
1888
|
{
|
|
1889
1889
|
provide: ROOT_STATE_TOKEN,
|
|
@@ -2337,11 +2337,17 @@ function provideStates(states, ...features) {
|
|
|
2337
2337
|
*/
|
|
2338
2338
|
function withNgxsPlugin(plugin) {
|
|
2339
2339
|
return makeEnvironmentProviders([
|
|
2340
|
-
|
|
2340
|
+
_isPluginClass(plugin)
|
|
2341
|
+
? { provide: NGXS_PLUGINS, useClass: plugin, multi: true }
|
|
2342
|
+
: { provide: NGXS_PLUGINS, useValue: plugin, multi: true },
|
|
2341
2343
|
// We should inject the `PluginManager` to retrieve `NGXS_PLUGINS` and
|
|
2342
2344
|
// register those plugins. The plugin can be added from inside the child
|
|
2343
2345
|
// route, so the plugin manager should be re-injected.
|
|
2344
|
-
{
|
|
2346
|
+
{
|
|
2347
|
+
provide: ENVIRONMENT_INITIALIZER,
|
|
2348
|
+
useValue: () => inject(PluginManager),
|
|
2349
|
+
multi: true
|
|
2350
|
+
}
|
|
2345
2351
|
]);
|
|
2346
2352
|
}
|
|
2347
2353
|
|