@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.
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9wbHVnaW5zL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUE4QyxNQUFNLFdBQVcsQ0FBQztBQUNyRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBJbml0U3RhdGUsIFVwZGF0ZVN0YXRlIH0gZnJvbSAnLi9hY3Rpb25zJztcbmV4cG9ydCB7IE5HWFNfUExVR0lOUywgTmd4c1BsdWdpbiwgTmd4c1BsdWdpbkZuLCBOZ3hzTmV4dFBsdWdpbkZuIH0gZnJvbSAnLi9zeW1ib2xzJztcbmV4cG9ydCB7IGdldEFjdGlvblR5cGVGcm9tSW5zdGFuY2UsIGFjdGlvbk1hdGNoZXIsIHNldFZhbHVlLCBnZXRWYWx1ZSB9IGZyb20gJy4vdXRpbHMnO1xuIl19
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9wbHVnaW5zL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNuRCxPQUFPLEVBQ0wsWUFBWSxFQUlaLGNBQWMsRUFDZixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQUUseUJBQXlCLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBJbml0U3RhdGUsIFVwZGF0ZVN0YXRlIH0gZnJvbSAnLi9hY3Rpb25zJztcbmV4cG9ydCB7XG4gIE5HWFNfUExVR0lOUyxcbiAgTmd4c1BsdWdpbixcbiAgTmd4c1BsdWdpbkZuLFxuICBOZ3hzTmV4dFBsdWdpbkZuLFxuICDJtWlzUGx1Z2luQ2xhc3Ncbn0gZnJvbSAnLi9zeW1ib2xzJztcbmV4cG9ydCB7IGdldEFjdGlvblR5cGVGcm9tSW5zdGFuY2UsIGFjdGlvbk1hdGNoZXIsIHNldFZhbHVlLCBnZXRWYWx1ZSB9IGZyb20gJy4vdXRpbHMnO1xuIl19
@@ -1,5 +1,15 @@
1
1
  import { InjectionToken } from '@angular/core';
2
- // The injection token is used to resolve to custom NGXS plugins provided
3
- // at the root level through either `{provide}` scheme or `withNgxsPlugin`.
4
- export const NGXS_PLUGINS = new InjectionToken(typeof ngDevMode !== 'undefined' && ngDevMode ? 'NGXS_PLUGINS' : '');
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL3BsdWdpbnMvc3JjL3N5bWJvbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkvQyx5RUFBeUU7QUFDekUsMkVBQTJFO0FBQzNFLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxJQUFJLGNBQWMsQ0FDNUMsT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ3BFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5kZWNsYXJlIGNvbnN0IG5nRGV2TW9kZTogYm9vbGVhbjtcblxuLy8gVGhlIGluamVjdGlvbiB0b2tlbiBpcyB1c2VkIHRvIHJlc29sdmUgdG8gY3VzdG9tIE5HWFMgcGx1Z2lucyBwcm92aWRlZFxuLy8gYXQgdGhlIHJvb3QgbGV2ZWwgdGhyb3VnaCBlaXRoZXIgYHtwcm92aWRlfWAgc2NoZW1lIG9yIGB3aXRoTmd4c1BsdWdpbmAuXG5leHBvcnQgY29uc3QgTkdYU19QTFVHSU5TID0gbmV3IEluamVjdGlvblRva2VuKFxuICB0eXBlb2YgbmdEZXZNb2RlICE9PSAndW5kZWZpbmVkJyAmJiBuZ0Rldk1vZGUgPyAnTkdYU19QTFVHSU5TJyA6ICcnXG4pO1xuXG5leHBvcnQgdHlwZSBOZ3hzUGx1Z2luRm4gPSAoc3RhdGU6IGFueSwgbXV0YXRpb246IGFueSwgbmV4dDogTmd4c05leHRQbHVnaW5GbikgPT4gYW55O1xuXG5leHBvcnQgdHlwZSBOZ3hzTmV4dFBsdWdpbkZuID0gKHN0YXRlOiBhbnksIG11dGF0aW9uOiBhbnkpID0+IGFueTtcblxuLyoqXG4gKiBQbHVnaW4gaW50ZXJmYWNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmd4c1BsdWdpbiB7XG4gIC8qKlxuICAgKiBIYW5kbGUgdGhlIHN0YXRlL2FjdGlvbiBiZWZvcmUgaXRzIHN1Ym1pdHRlZCB0byB0aGUgc3RhdGUgaGFuZGxlcnMuXG4gICAqL1xuICBoYW5kbGUoc3RhdGU6IGFueSwgYWN0aW9uOiBhbnksIG5leHQ6IE5neHNOZXh0UGx1Z2luRm4pOiBhbnk7XG59XG4iXX0=
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLW1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvcGx1Z2luLW1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBNEIsTUFBTSxxQkFBcUIsQ0FBQzs7QUFHN0UsTUFBTSxPQUFPLGFBQWE7SUFZeEI7UUFYUyxZQUFPLEdBQW1CLEVBQUUsQ0FBQztRQUVyQixtQkFBYyxHQUFHLE1BQU0sQ0FBQyxhQUFhLEVBQUU7WUFDdEQsUUFBUSxFQUFFLElBQUk7WUFDZCxRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUMsQ0FBQztRQUVjLG9CQUFlLEdBQUcsTUFBTSxDQUFlLFlBQVksRUFBRTtZQUNwRSxRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUMsQ0FBQztRQUdELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFZLFlBQVk7UUFDdEIsT0FBTyxJQUFJLENBQUMsY0FBYyxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RELENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsTUFBTSxjQUFjLEdBQW1CLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ2hFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsY0FBYyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVPLGlCQUFpQjtRQUN2QixNQUFNLFFBQVEsR0FBaUIsSUFBSSxDQUFDLGVBQWUsSUFBSSxFQUFFLENBQUM7UUFDMUQsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUNqQixDQUFDLE1BQWtCLEVBQUUsRUFBRSxDQUNyQixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQWlCLENBQ3hFLENBQUM7SUFDSixDQUFDO2lJQS9CVSxhQUFhO3FJQUFiLGFBQWE7OzJGQUFiLGFBQWE7a0JBRHpCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HWFNfUExVR0lOUywgTmd4c1BsdWdpbiwgTmd4c1BsdWdpbkZuIH0gZnJvbSAnQG5neHMvc3RvcmUvcGx1Z2lucyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBQbHVnaW5NYW5hZ2VyIHtcbiAgcmVhZG9ubHkgcGx1Z2luczogTmd4c1BsdWdpbkZuW10gPSBbXTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9wYXJlbnRNYW5hZ2VyID0gaW5qZWN0KFBsdWdpbk1hbmFnZXIsIHtcbiAgICBvcHRpb25hbDogdHJ1ZSxcbiAgICBza2lwU2VsZjogdHJ1ZVxuICB9KTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9wbHVnaW5IYW5kbGVycyA9IGluamVjdDxOZ3hzUGx1Z2luW10+KE5HWFNfUExVR0lOUywge1xuICAgIG9wdGlvbmFsOiB0cnVlXG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMucmVnaXN0ZXJIYW5kbGVycygpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgX3Jvb3RQbHVnaW5zKCk6IE5neHNQbHVnaW5GbltdIHtcbiAgICByZXR1cm4gdGhpcy5fcGFyZW50TWFuYWdlcj8ucGx1Z2lucyB8fCB0aGlzLnBsdWdpbnM7XG4gIH1cblxuICBwcml2YXRlIHJlZ2lzdGVySGFuZGxlcnMoKTogdm9pZCB7XG4gICAgY29uc3QgcGx1Z2luSGFuZGxlcnM6IE5neHNQbHVnaW5GbltdID0gdGhpcy5nZXRQbHVnaW5IYW5kbGVycygpO1xuICAgIHRoaXMuX3Jvb3RQbHVnaW5zLnB1c2goLi4ucGx1Z2luSGFuZGxlcnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQbHVnaW5IYW5kbGVycygpOiBOZ3hzUGx1Z2luRm5bXSB7XG4gICAgY29uc3QgaGFuZGxlcnM6IE5neHNQbHVnaW5bXSA9IHRoaXMuX3BsdWdpbkhhbmRsZXJzIHx8IFtdO1xuICAgIHJldHVybiBoYW5kbGVycy5tYXAoXG4gICAgICAocGx1Z2luOiBOZ3hzUGx1Z2luKSA9PlxuICAgICAgICAocGx1Z2luLmhhbmRsZSA/IHBsdWdpbi5oYW5kbGUuYmluZChwbHVnaW4pIDogcGx1Z2luKSBhcyBOZ3hzUGx1Z2luRm5cbiAgICApO1xuICB9XG59XG4iXX0=
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
- { provide: NGXS_PLUGINS, useClass: plugin, multi: true },
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
- { provide: ENVIRONMENT_INITIALIZER, useValue: () => inject(PluginManager), multi: true }
26
+ {
27
+ provide: ENVIRONMENT_INITIALIZER,
28
+ useValue: () => inject(PluginManager),
29
+ multi: true
30
+ }
25
31
  ]);
26
32
  }
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RvcmUvc3JjL3N0YW5kYWxvbmUtZmVhdHVyZXMvcGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFHdkIsTUFBTSxFQUNOLHdCQUF3QixFQUN6QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFjLE1BQU0scUJBQXFCLENBQUM7QUFFL0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWxEOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLE1BQXdCO0lBQ3JELE9BQU8sd0JBQXdCLENBQUM7UUFDOUIsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtRQUN4RCxzRUFBc0U7UUFDdEUsd0VBQXdFO1FBQ3hFLHNEQUFzRDtRQUN0RCxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7S0FDekYsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEVOVklST05NRU5UX0lOSVRJQUxJWkVSLFxuICBFbnZpcm9ubWVudFByb3ZpZGVycyxcbiAgVHlwZSxcbiAgaW5qZWN0LFxuICBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR1hTX1BMVUdJTlMsIE5neHNQbHVnaW4gfSBmcm9tICdAbmd4cy9zdG9yZS9wbHVnaW5zJztcblxuaW1wb3J0IHsgUGx1Z2luTWFuYWdlciB9IGZyb20gJy4uL3BsdWdpbi1tYW5hZ2VyJztcblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIHJlZ2lzdGVycyBhIGN1c3RvbSBnbG9iYWwgcGx1Z2luIGZvciB0aGUgc3RhdGUuXG4gKlxuICogYGBgdHNcbiAqIGJvb3RzdHJhcEFwcGxpY2F0aW9uKEFwcENvbXBvbmVudCwge1xuICogICBwcm92aWRlcnM6IFtcbiAqICAgICBwcm92aWRlU3RvcmUoXG4gKiAgICAgICBbQ291bnRyaWVzU3RhdGVdLFxuICogICAgICAgd2l0aE5neHNQbHVnaW4oTG9nb3V0UGx1Z2luKVxuICogICAgIClcbiAqICAgXVxuICogfSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhOZ3hzUGx1Z2luKHBsdWdpbjogVHlwZTxOZ3hzUGx1Z2luPik6IEVudmlyb25tZW50UHJvdmlkZXJzIHtcbiAgcmV0dXJuIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhbXG4gICAgeyBwcm92aWRlOiBOR1hTX1BMVUdJTlMsIHVzZUNsYXNzOiBwbHVnaW4sIG11bHRpOiB0cnVlIH0sXG4gICAgLy8gV2Ugc2hvdWxkIGluamVjdCB0aGUgYFBsdWdpbk1hbmFnZXJgIHRvIHJldHJpZXZlIGBOR1hTX1BMVUdJTlNgIGFuZFxuICAgIC8vIHJlZ2lzdGVyIHRob3NlIHBsdWdpbnMuIFRoZSBwbHVnaW4gY2FuIGJlIGFkZGVkIGZyb20gaW5zaWRlIHRoZSBjaGlsZFxuICAgIC8vIHJvdXRlLCBzbyB0aGUgcGx1Z2luIG1hbmFnZXIgc2hvdWxkIGJlIHJlLWluamVjdGVkLlxuICAgIHsgcHJvdmlkZTogRU5WSVJPTk1FTlRfSU5JVElBTElaRVIsIHVzZVZhbHVlOiAoKSA9PiBpbmplY3QoUGx1Z2luTWFuYWdlciksIG11bHRpOiB0cnVlIH1cbiAgXSk7XG59XG4iXX0=
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC1wcm92aWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvc3RhbmRhbG9uZS1mZWF0dXJlcy9yb290LXByb3ZpZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQVksTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pFLE9BQU8sRUFBZSx5QkFBeUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRS9FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEUsT0FBTyxFQUFxQixnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFL0U7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUM5QixNQUFxQixFQUNyQixPQUEwQjtJQUUxQixPQUFPO1FBQ0wsWUFBWTtRQUNaLGFBQWE7UUFDYixHQUFHLE1BQU07UUFDVDtZQUNFLE9BQU8sRUFBRSxnQkFBZ0I7WUFDekIsUUFBUSxFQUFFLE1BQU07U0FDakI7UUFDRDtZQUNFLE9BQU8sRUFBRSxzQkFBc0I7WUFDL0IsVUFBVSxFQUFFLEdBQUcsRUFBRTtnQkFDZixNQUFNLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO2dCQUMvRCxPQUFPLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2hELENBQUM7WUFDRCxLQUFLLEVBQUUsSUFBSTtTQUNaO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsWUFBWTtZQUNyQixRQUFRLEVBQUUsT0FBTztTQUNsQjtRQUNEO1lBQ0UsT0FBTyxFQUFFLDhCQUE4QjtZQUN2QyxRQUFRLEVBQUUsT0FBTyxDQUFDLGlCQUFpQjtTQUNwQztLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBQX0JPT1RTVFJBUF9MSVNURU5FUiwgUHJvdmlkZXIsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgybVTdGF0ZUNsYXNzLCDJtU5neHNBcHBCb290c3RyYXBwZWRTdGF0ZSB9IGZyb20gJ0BuZ3hzL3N0b3JlL2ludGVybmFscyc7XG5cbmltcG9ydCB7IFBsdWdpbk1hbmFnZXIgfSBmcm9tICcuLi9wbHVnaW4tbWFuYWdlcic7XG5pbXBvcnQgeyBTdGF0ZUZhY3RvcnkgfSBmcm9tICcuLi9pbnRlcm5hbC9zdGF0ZS1mYWN0b3J5JztcbmltcG9ydCB7IENVU1RPTV9OR1hTX0VYRUNVVElPTl9TVFJBVEVHWSB9IGZyb20gJy4uL2V4ZWN1dGlvbi9zeW1ib2xzJztcbmltcG9ydCB7IE5neHNNb2R1bGVPcHRpb25zLCBST09UX1NUQVRFX1RPS0VOLCBOR1hTX09QVElPTlMgfSBmcm9tICcuLi9zeW1ib2xzJztcblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIHByb3ZpZGVzIHRoZSByZXF1aXJlZCBwcm92aWRlcnMgd2hlbiBpbnZva2luZyBgTmd4c01vZHVsZS5mb3JSb290YFxuICogb3IgYHByb3ZpZGVTdG9yZWAuIEl0IGlzIHNoYXJlZCBiZXR3ZWVuIHRoZSBOZ01vZHVsZSBhbmQgc3RhbmRhbG9uZSBBUElzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Um9vdFByb3ZpZGVycyhcbiAgc3RhdGVzOiDJtVN0YXRlQ2xhc3NbXSxcbiAgb3B0aW9uczogTmd4c01vZHVsZU9wdGlvbnNcbik6IFByb3ZpZGVyW10ge1xuICByZXR1cm4gW1xuICAgIFN0YXRlRmFjdG9yeSxcbiAgICBQbHVnaW5NYW5hZ2VyLFxuICAgIC4uLnN0YXRlcyxcbiAgICB7XG4gICAgICBwcm92aWRlOiBST09UX1NUQVRFX1RPS0VOLFxuICAgICAgdXNlVmFsdWU6IHN0YXRlc1xuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogQVBQX0JPT1RTVFJBUF9MSVNURU5FUixcbiAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IHtcbiAgICAgICAgY29uc3QgYXBwQm9vdHN0cmFwcGVkU3RhdGUgPSBpbmplY3QoybVOZ3hzQXBwQm9vdHN0cmFwcGVkU3RhdGUpO1xuICAgICAgICByZXR1cm4gKCkgPT4gYXBwQm9vdHN0cmFwcGVkU3RhdGUuYm9vdHN0cmFwKCk7XG4gICAgICB9LFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HWFNfT1BUSU9OUyxcbiAgICAgIHVzZVZhbHVlOiBvcHRpb25zXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBDVVNUT01fTkdYU19FWEVDVVRJT05fU1RSQVRFR1ksXG4gICAgICB1c2VWYWx1ZTogb3B0aW9ucy5leGVjdXRpb25TdHJhdGVneVxuICAgIH1cbiAgXTtcbn1cbiJdfQ==
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC1wcm92aWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvc3RhbmRhbG9uZS1mZWF0dXJlcy9yb290LXByb3ZpZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQVksTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pFLE9BQU8sRUFBZSx5QkFBeUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRS9FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RSxPQUFPLEVBQXFCLGdCQUFnQixFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUUvRTs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLE1BQXFCLEVBQ3JCLE9BQTBCO0lBRTFCLE9BQU87UUFDTCxZQUFZO1FBQ1osR0FBRyxNQUFNO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsZ0JBQWdCO1lBQ3pCLFFBQVEsRUFBRSxNQUFNO1NBQ2pCO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsc0JBQXNCO1lBQy9CLFVBQVUsRUFBRSxHQUFHLEVBQUU7Z0JBQ2YsTUFBTSxvQkFBb0IsR0FBRyxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQztnQkFDL0QsT0FBTyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNoRCxDQUFDO1lBQ0QsS0FBSyxFQUFFLElBQUk7U0FDWjtRQUNEO1lBQ0UsT0FBTyxFQUFFLFlBQVk7WUFDckIsUUFBUSxFQUFFLE9BQU87U0FDbEI7UUFDRDtZQUNFLE9BQU8sRUFBRSw4QkFBOEI7WUFDdkMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxpQkFBaUI7U0FDcEM7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFQUF9CT09UU1RSQVBfTElTVEVORVIsIFByb3ZpZGVyLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IMm1U3RhdGVDbGFzcywgybVOZ3hzQXBwQm9vdHN0cmFwcGVkU3RhdGUgfSBmcm9tICdAbmd4cy9zdG9yZS9pbnRlcm5hbHMnO1xuXG5pbXBvcnQgeyBTdGF0ZUZhY3RvcnkgfSBmcm9tICcuLi9pbnRlcm5hbC9zdGF0ZS1mYWN0b3J5JztcbmltcG9ydCB7IENVU1RPTV9OR1hTX0VYRUNVVElPTl9TVFJBVEVHWSB9IGZyb20gJy4uL2V4ZWN1dGlvbi9zeW1ib2xzJztcbmltcG9ydCB7IE5neHNNb2R1bGVPcHRpb25zLCBST09UX1NUQVRFX1RPS0VOLCBOR1hTX09QVElPTlMgfSBmcm9tICcuLi9zeW1ib2xzJztcblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIHByb3ZpZGVzIHRoZSByZXF1aXJlZCBwcm92aWRlcnMgd2hlbiBpbnZva2luZyBgTmd4c01vZHVsZS5mb3JSb290YFxuICogb3IgYHByb3ZpZGVTdG9yZWAuIEl0IGlzIHNoYXJlZCBiZXR3ZWVuIHRoZSBOZ01vZHVsZSBhbmQgc3RhbmRhbG9uZSBBUElzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Um9vdFByb3ZpZGVycyhcbiAgc3RhdGVzOiDJtVN0YXRlQ2xhc3NbXSxcbiAgb3B0aW9uczogTmd4c01vZHVsZU9wdGlvbnNcbik6IFByb3ZpZGVyW10ge1xuICByZXR1cm4gW1xuICAgIFN0YXRlRmFjdG9yeSxcbiAgICAuLi5zdGF0ZXMsXG4gICAge1xuICAgICAgcHJvdmlkZTogUk9PVF9TVEFURV9UT0tFTixcbiAgICAgIHVzZVZhbHVlOiBzdGF0ZXNcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFQUF9CT09UU1RSQVBfTElTVEVORVIsXG4gICAgICB1c2VGYWN0b3J5OiAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGFwcEJvb3RzdHJhcHBlZFN0YXRlID0gaW5qZWN0KMm1Tmd4c0FwcEJvb3RzdHJhcHBlZFN0YXRlKTtcbiAgICAgICAgcmV0dXJuICgpID0+IGFwcEJvb3RzdHJhcHBlZFN0YXRlLmJvb3RzdHJhcCgpO1xuICAgICAgfSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR1hTX09QVElPTlMsXG4gICAgICB1c2VWYWx1ZTogb3B0aW9uc1xuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogQ1VTVE9NX05HWFNfRVhFQ1VUSU9OX1NUUkFURUdZLFxuICAgICAgdXNlVmFsdWU6IG9wdGlvbnMuZXhlY3V0aW9uU3RyYXRlZ3lcbiAgICB9XG4gIF07XG59XG4iXX0=
@@ -16,9 +16,19 @@ class UpdateState {
16
16
  }
17
17
  }
18
18
 
19
- // The injection token is used to resolve to custom NGXS plugins provided
20
- // at the root level through either `{provide}` scheme or `withNgxsPlugin`.
21
- const NGXS_PLUGINS = new InjectionToken(typeof ngDevMode !== 'undefined' && ngDevMode ? 'NGXS_PLUGINS' : '');
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// The injection token is used to resolve to custom NGXS plugins provided\n// at the root level through either `{provide}` scheme or `withNgxsPlugin`.\nexport const NGXS_PLUGINS = new InjectionToken(\n typeof ngDevMode !== 'undefined' && ngDevMode ? 'NGXS_PLUGINS' : ''\n);\n\nexport type NgxsPluginFn = (state: any, mutation: any, next: NgxsNextPluginFn) => any;\n\nexport type NgxsNextPluginFn = (state: any, mutation: any) => 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 * 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;;;ACXrD;AACA;MACa,YAAY,GAAG,IAAI,cAAc,CAC5C,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,GAAG,cAAc,GAAG,EAAE;;ACPrE;;;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;;;;"}
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;;;;"}
@@ -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
- { provide: NGXS_PLUGINS, useClass: plugin, multi: true },
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
- { provide: ENVIRONMENT_INITIALIZER, useValue: () => inject(PluginManager), multi: true }
2346
+ {
2347
+ provide: ENVIRONMENT_INITIALIZER,
2348
+ useValue: () => inject(PluginManager),
2349
+ multi: true
2350
+ }
2345
2351
  ]);
2346
2352
  }
2347
2353