@ngxs/store 18.1.5 → 18.1.6

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.
Files changed (37) hide show
  1. package/esm2022/internals/initial-state.mjs +2 -3
  2. package/esm2022/internals/internal-tokens.mjs +3 -4
  3. package/esm2022/plugins/index.mjs +2 -2
  4. package/esm2022/plugins/symbols.mjs +14 -5
  5. package/esm2022/src/actions-stream.mjs +7 -6
  6. package/esm2022/src/dev-features/ngxs-unhandled-actions-logger.mjs +6 -8
  7. package/esm2022/src/dev-features/symbols.mjs +3 -3
  8. package/esm2022/src/execution/dispatch-outside-zone-ngxs-execution-strategy.mjs +9 -12
  9. package/esm2022/src/execution/internal-ngxs-execution-strategy.mjs +6 -9
  10. package/esm2022/src/execution/symbols.mjs +3 -4
  11. package/esm2022/src/internal/dispatcher.mjs +44 -25
  12. package/esm2022/src/internal/internals.mjs +4 -5
  13. package/esm2022/src/internal/lifecycle-state-manager.mjs +10 -15
  14. package/esm2022/src/internal/state-context-factory.mjs +6 -7
  15. package/esm2022/src/internal/state-factory.mjs +41 -61
  16. package/esm2022/src/internal/state-operations.mjs +8 -11
  17. package/esm2022/src/internal/unhandled-rxjs-error-callback.mjs +20 -13
  18. package/esm2022/src/plugin-manager.mjs +4 -3
  19. package/esm2022/src/selectors/selector-utils.mjs +2 -3
  20. package/esm2022/src/standalone-features/feature-providers.mjs +1 -3
  21. package/esm2022/src/standalone-features/initializers.mjs +9 -4
  22. package/esm2022/src/standalone-features/plugin.mjs +10 -4
  23. package/esm2022/src/standalone-features/preboot.mjs +2 -3
  24. package/esm2022/src/standalone-features/root-providers.mjs +1 -5
  25. package/esm2022/src/store.mjs +14 -24
  26. package/esm2022/src/symbols.mjs +4 -5
  27. package/fesm2022/ngxs-store-internals.mjs +3 -5
  28. package/fesm2022/ngxs-store-internals.mjs.map +1 -1
  29. package/fesm2022/ngxs-store-plugins.mjs +14 -5
  30. package/fesm2022/ngxs-store-plugins.mjs.map +1 -1
  31. package/fesm2022/ngxs-store.mjs +187 -212
  32. package/fesm2022/ngxs-store.mjs.map +1 -1
  33. package/index.d.ts +33 -184
  34. package/package.json +7 -7
  35. package/plugins/index.d.ts +12 -5
  36. package/schematics/src/utils/versions.json +1 -1
  37. package/esm2022/src/utils/compose.mjs +0 -26
@@ -7,13 +7,18 @@ import { StateFactory } from '../internal/state-factory';
7
7
  import { SelectFactory } from '../decorators/select/select-factory';
8
8
  import { InternalStateOperations } from '../internal/state-operations';
9
9
  import { LifecycleStateManager } from '../internal/lifecycle-state-manager';
10
- const NG_DEV_MODE = typeof ngDevMode !== 'undefined' && ngDevMode;
10
+ import { installOnUnhandhedErrorHandler } from '../internal/unhandled-rxjs-error-callback';
11
11
  /**
12
12
  * This function is shared by both NgModule and standalone features.
13
13
  * When using `NgxsModule.forRoot` and `provideStore`, we can depend on the
14
14
  * same initialization functionality.
15
15
  */
16
16
  export function rootStoreInitializer() {
17
+ // Override the RxJS `config.onUnhandledError` within the root store initializer,
18
+ // but only after other code has already executed.
19
+ // If users have a custom `config.onUnhandledError`, we might overwrite it too
20
+ // early and capture the original `config.onUnhandledError` before it is properly set.
21
+ installOnUnhandhedErrorHandler();
17
22
  const prebootFns = inject(NGXS_PREBOOT_FNS, { optional: true }) || [];
18
23
  prebootFns.forEach(prebootFn => prebootFn());
19
24
  const factory = inject(StateFactory);
@@ -55,11 +60,11 @@ export function featureStatesInitializer() {
55
60
  /**
56
61
  * InjectionToken that registers the global Store.
57
62
  */
58
- export const NGXS_ROOT_STORE_INITIALIZER = new InjectionToken(NG_DEV_MODE ? 'NGXS_ROOT_STORE_INITIALIZER' : '');
63
+ export const NGXS_ROOT_STORE_INITIALIZER = new InjectionToken(typeof ngDevMode !== 'undefined' && ngDevMode ? 'NGXS_ROOT_STORE_INITIALIZER' : '');
59
64
  /**
60
65
  * InjectionToken that registers feature states.
61
66
  */
62
- export const NGXS_FEATURE_STORE_INITIALIZER = new InjectionToken(NG_DEV_MODE ? 'NGXS_FEATURE_STORE_INITIALIZER' : '');
67
+ export const NGXS_FEATURE_STORE_INITIALIZER = new InjectionToken(typeof ngDevMode !== 'undefined' && ngDevMode ? 'NGXS_FEATURE_STORE_INITIALIZER' : '');
63
68
  export const NGXS_ROOT_ENVIRONMENT_INITIALIZER = [
64
69
  { provide: NGXS_ROOT_STORE_INITIALIZER, useFactory: rootStoreInitializer },
65
70
  {
@@ -86,4 +91,4 @@ export const NGXS_FEATURE_ENVIRONMENT_INITIALIZER = [
86
91
  }
87
92
  }
88
93
  ];
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbGl6ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RvcmUvc3JjL3N0YW5kYWxvbmUtZmVhdHVyZXMvaW5pdGlhbGl6ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxjQUFjLEVBQVksTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzFGLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDakMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRTVFLE1BQU0sV0FBVyxHQUFHLE9BQU8sU0FBUyxLQUFLLFdBQVcsSUFBSSxTQUFTLENBQUM7QUFFbEU7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxvQkFBb0I7SUFDbEMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3RFLFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBRTdDLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNyQyxNQUFNLHVCQUF1QixH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QjtRQUNoQyxLQUFLLEVBQUUsSUFBSTtRQUNYLFVBQVU7WUFDUixPQUFPLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBQ3RELENBQUM7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFTlZJUk9OTUVOVF9JTklUSUFMSVpFUiwgSW5qZWN0aW9uVG9rZW4sIFByb3ZpZGVyLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IMm1U3RhdGVDbGFzc0ludGVybmFsIH0gZnJvbSAnQG5neHMvc3RvcmUvaW50ZXJuYWxzJztcblxuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICcuLi9zdG9yZSc7XG5pbXBvcnQgeyBOR1hTX1BSRUJPT1RfRk5TIH0gZnJvbSAnLi9wcmVib290JztcbmltcG9ydCB7IEluaXRTdGF0ZSwgVXBkYXRlU3RhdGUgfSBmcm9tICcuLi9wbHVnaW5fYXBpJztcbmltcG9ydCB7IEZFQVRVUkVfU1RBVEVfVE9LRU4sIFJPT1RfU1RBVEVfVE9LRU4gfSBmcm9tICcuLi9zeW1ib2xzJztcbmltcG9ydCB7IFN0YXRlRmFjdG9yeSB9IGZyb20gJy4uL2ludGVybmFsL3N0YXRlLWZhY3RvcnknO1xuaW1wb3J0IHsgU3RhdGVzQW5kRGVmYXVsdHMgfSBmcm9tICcuLi9pbnRlcm5hbC9pbnRlcm5hbHMnO1xuaW1wb3J0IHsgU2VsZWN0RmFjdG9yeSB9IGZyb20gJy4uL2RlY29yYXRvcnMvc2VsZWN0L3NlbGVjdC1mYWN0b3J5JztcbmltcG9ydCB7IEludGVybmFsU3RhdGVPcGVyYXRpb25zIH0gZnJvbSAnLi4vaW50ZXJuYWwvc3RhdGUtb3BlcmF0aW9ucyc7XG5pbXBvcnQgeyBMaWZlY3ljbGVTdGF0ZU1hbmFnZXIgfSBmcm9tICcuLi9pbnRlcm5hbC9saWZlY3ljbGUtc3RhdGUtbWFuYWdlcic7XG5cbmNvbnN0IE5HX0RFVl9NT0RFID0gdHlwZW9mIG5nRGV2TW9kZSAhPT0gJ3VuZGVmaW5lZCcgJiYgbmdEZXZNb2RlO1xuXG4vKipcbiAqIFRoaXMgZnVuY3Rpb24gaXMgc2hhcmVkIGJ5IGJvdGggTmdNb2R1bGUgYW5kIHN0YW5kYWxvbmUgZmVhdHVyZXMuXG4gKiBXaGVuIHVzaW5nIGBOZ3hzTW9kdWxlLmZvclJvb3RgIGFuZCBgcHJvdmlkZVN0b3JlYCwgd2UgY2FuIGRlcGVuZCBvbiB0aGVcbiAqIHNhbWUgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb25hbGl0eS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJvb3RTdG9yZUluaXRpYWxpemVyKCk6IHZvaWQge1xuICBjb25zdCBwcmVib290Rm5zID0gaW5qZWN0KE5HWFNfUFJFQk9PVF9GTlMsIHsgb3B0aW9uYWw6IHRydWUgfSkgfHwgW107XG4gIHByZWJvb3RGbnMuZm9yRWFjaChwcmVib290Rm4gPT4gcHJlYm9vdEZuKCkpO1xuXG4gIGNvbnN0IGZhY3RvcnkgPSBpbmplY3QoU3RhdGVGYWN0b3J5KTtcbiAgY29uc3QgaW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnMgPSBpbmplY3QoSW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnMpO1xuXG4gIGluamVjdChTdG9yZSk7XG4gIGluamVjdChTZWxlY3RGYWN0b3J5KTtcblxuICBjb25zdCBzdGF0ZXMgPSBpbmplY3QoUk9PVF9TVEFURV9UT0tFTiwgeyBvcHRpb25hbDogdHJ1ZSB9KSB8fCBbXTtcbiAgY29uc3QgbGlmZWN5Y2xlU3RhdGVNYW5hZ2VyID0gaW5qZWN0KExpZmVjeWNsZVN0YXRlTWFuYWdlcik7XG5cbiAgLy8gQWRkIHN0b3JlcyB0byB0aGUgc3RhdGUgZ3JhcGggYW5kIHJldHVybiB0aGVpciBkZWZhdWx0cy5cbiAgY29uc3QgcmVzdWx0czogU3RhdGVzQW5kRGVmYXVsdHMgPSBmYWN0b3J5LmFkZEFuZFJldHVybkRlZmF1bHRzKHN0YXRlcyk7XG5cbiAgaW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnMuc2V0U3RhdGVUb1RoZUN1cnJlbnRXaXRoTmV3KHJlc3VsdHMpO1xuXG4gIC8vIENvbm5lY3Qgb3VyIGFjdGlvbnMgc3RyZWFtLlxuICBmYWN0b3J5LmNvbm5lY3RBY3Rpb25IYW5kbGVycygpO1xuXG4gIC8vIERpc3BhdGNoIHRoZSBpbml0IGFjdGlvbiBhbmQgaW52b2tlIGluaXQgYW5kIGJvb3RzdHJhcCBmdW5jdGlvbnMgYWZ0ZXIuXG4gIGxpZmVjeWNsZVN0YXRlTWFuYWdlci5uZ3hzQm9vdHN0cmFwKG5ldyBJbml0U3RhdGUoKSwgcmVzdWx0cyk7XG59XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBpcyB1dGlsaXplZCBieSBib3RoIE5nTW9kdWxlIGFuZCBzdGFuZGFsb25lIGZlYXR1cmVzLlxuICogV2hlbiB1c2luZyBgTmd4c01vZHVsZS5mb3JGZWF0dXJlYCBhbmQgYHByb3ZpZGVTdGF0ZXNgLCB3ZSBjYW4gZGVwZW5kIG9uXG4gKiB0aGUgc2FtZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbmFsaXR5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZmVhdHVyZVN0YXRlc0luaXRpYWxpemVyKCk6IHZvaWQge1xuICBpbmplY3QoU3RvcmUpO1xuXG4gIGNvbnN0IGludGVybmFsU3RhdGVPcGVyYXRpb25zID0gaW5qZWN0KEludGVybmFsU3RhdGVPcGVyYXRpb25zKTtcbiAgY29uc3QgZmFjdG9yeSA9IGluamVjdChTdGF0ZUZhY3RvcnkpO1xuICBjb25zdCBzdGF0ZXMgPSBpbmplY3QoRkVBVFVSRV9TVEFURV9UT0tFTiwgeyBvcHRpb25hbDogdHJ1ZSB9KSB8fCBbXTtcbiAgY29uc3QgbGlmZWN5Y2xlU3RhdGVNYW5hZ2VyID0gaW5qZWN0KExpZmVjeWNsZVN0YXRlTWFuYWdlcik7XG5cbiAgLy8gU2luY2UgRkVBVFVSRV9TVEFURV9UT0tFTiBpcyBhIG11bHRpIHRva2VuLCB3ZSBuZWVkIHRvXG4gIC8vIGZsYXR0ZW4gaXQgW1tGZWF0dXJlMVN0YXRlLCBGZWF0dXJlMlN0YXRlXSwgW0ZlYXR1cmUzU3RhdGVdXS5cbiAgY29uc3QgZmxhdHRlbmVkU3RhdGVzOiDJtVN0YXRlQ2xhc3NJbnRlcm5hbFtdID0gc3RhdGVzLnJlZHVjZShcbiAgICAodG90YWw6IMm1U3RhdGVDbGFzc0ludGVybmFsW10sIHZhbHVlczogybVTdGF0ZUNsYXNzSW50ZXJuYWxbXSkgPT4gdG90YWwuY29uY2F0KHZhbHVlcyksXG4gICAgW11cbiAgKTtcblxuICAvLyBhZGQgc3RvcmVzIHRvIHRoZSBzdGF0ZSBncmFwaCBhbmQgcmV0dXJuIHRoZWlyIGRlZmF1bHRzLlxuICBjb25zdCByZXN1bHRzOiBTdGF0ZXNBbmREZWZhdWx0cyA9IGZhY3RvcnkuYWRkQW5kUmV0dXJuRGVmYXVsdHMoZmxhdHRlbmVkU3RhdGVzKTtcblxuICBpZiAocmVzdWx0cy5zdGF0ZXMubGVuZ3RoKSB7XG4gICAgaW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnMuc2V0U3RhdGVUb1RoZUN1cnJlbnRXaXRoTmV3KHJlc3VsdHMpO1xuXG4gICAgLy8gRGlzcGF0Y2ggdGhlIHVwZGF0ZSBhY3Rpb24gYW5kIGludm9rZSBpbml0IGFuZCBib290c3RyYXAgZnVuY3Rpb25zIGFmdGVyLlxuICAgIGxpZmVjeWNsZVN0YXRlTWFuYWdlci5uZ3hzQm9vdHN0cmFwKG5ldyBVcGRhdGVTdGF0ZShyZXN1bHRzLmRlZmF1bHRzKSwgcmVzdWx0cyk7XG4gIH1cbn1cblxuLyoqXG4gKiBJbmplY3Rpb25Ub2tlbiB0aGF0IHJlZ2lzdGVycyB0aGUgZ2xvYmFsIFN0b3JlLlxuICovXG5leHBvcnQgY29uc3QgTkdYU19ST09UX1NUT1JFX0lOSVRJQUxJWkVSID0gbmV3IEluamVjdGlvblRva2VuPHZvaWQ+KFxuICBOR19ERVZfTU9ERSA/ICdOR1hTX1JPT1RfU1RPUkVfSU5JVElBTElaRVInIDogJydcbik7XG5cbi8qKlxuICogSW5qZWN0aW9uVG9rZW4gdGhhdCByZWdpc3RlcnMgZmVhdHVyZSBzdGF0ZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBOR1hTX0ZFQVRVUkVfU1RPUkVfSU5JVElBTElaRVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48dm9pZD4oXG4gIE5HX0RFVl9NT0RFID8gJ05HWFNfRkVBVFVSRV9TVE9SRV9JTklUSUFMSVpFUicgOiAnJ1xuKTtcblxuZXhwb3J0IGNvbnN0IE5HWFNfUk9PVF9FTlZJUk9OTUVOVF9JTklUSUFMSVpFUjogUHJvdmlkZXJbXSA9IFtcbiAgeyBwcm92aWRlOiBOR1hTX1JPT1RfU1RPUkVfSU5JVElBTElaRVIsIHVzZUZhY3Rvcnk6IHJvb3RTdG9yZUluaXRpYWxpemVyIH0sXG4gIHtcbiAgICBwcm92aWRlOiBFTlZJUk9OTUVOVF9JTklUSUFMSVpFUixcbiAgICBtdWx0aTogdHJ1ZSxcbiAgICB1c2VGYWN0b3J5KCkge1xuICAgICAgcmV0dXJuICgpID0+IGluamVjdChOR1hTX1JPT1RfU1RPUkVfSU5JVElBTElaRVIpO1xuICAgIH1cbiAgfVxuXTtcblxuLyoqXG4gKiBUaGUgYE5HWFNfRkVBVFVSRV9FTlZJUk9OTUVOVF9JTklUSUFMSVpFUmAgZnVuY3Rpb25zIGFzIGFuIGVudmlyb25tZW50IGluaXRpYWxpemVyXG4gKiBhdCB0aGUgYFJvdXRlYCBsZXZlbC4gQW5ndWxhciBSb3V0ZXIgY3JlYXRlcyBhbiBlbnZpcm9ubWVudCByb3V0ZSBpbmplY3RvciBmb3IgZWFjaFxuICogbWF0Y2hlZCByb3V0ZSB3aGVyZSBuYXZpZ2F0aW9uIG9jY3Vycy4gVGhlIGluamVjdG9yIGlzIGNyZWF0ZWQgb25jZSwgZW5zdXJpbmcgdGhhdFxuICogdGhlIGZlYXR1cmUgc3RhdGVzIGluaXRpYWxpemF0aW9uIG9ubHkgaGFwcGVucyBvbmNlIGFzIHdlbGwuXG4gKi9cbmV4cG9ydCBjb25zdCBOR1hTX0ZFQVRVUkVfRU5WSVJPTk1FTlRfSU5JVElBTElaRVI6IFByb3ZpZGVyW10gPSBbXG4gIHsgcHJvdmlkZTogTkdYU19GRUFUVVJFX1NUT1JFX0lOSVRJQUxJWkVSLCB1c2VGYWN0b3J5OiBmZWF0dXJlU3RhdGVzSW5pdGlhbGl6ZXIgfSxcbiAge1xuICAgIHByb3ZpZGU6IEVOVklST05NRU5UX0lOSVRJQUxJWkVSLFxuICAgIG11bHRpOiB0cnVlLFxuICAgIHVzZUZhY3RvcnkoKSB7XG4gICAgICByZXR1cm4gKCkgPT4gaW5qZWN0KE5HWFNfRkVBVFVSRV9TVE9SRV9JTklUSUFMSVpFUik7XG4gICAgfVxuICB9XG5dO1xuIl19
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbGl6ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RvcmUvc3JjL3N0YW5kYWxvbmUtZmVhdHVyZXMvaW5pdGlhbGl6ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxjQUFjLEVBQVksTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzFGLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDakMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRTNGOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CO0lBQ2xDLGlGQUFpRjtJQUNqRixrREFBa0Q7SUFDbEQsOEVBQThFO0lBQzlFLHNGQUFzRjtJQUN0Riw4QkFBOEIsRUFBRSxDQUFDO0lBRWpDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0RSxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztJ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O0FBQ0gsTUFBTSxDQUFDLE1BQU0sb0NBQW9DLEdBQWU7SUFDOUQsRUFBRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsVUFBVSxFQUFFLHdCQUF3QixFQUFFO0lBQ2pGO1FBQ0UsT0FBTyxFQUFFLHVCQUF1QjtRQUNoQyxLQUFLLEVBQUUsSUFBSTtRQUNYLFVBQVU7WUFDUixPQUFPLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBQ3RELENBQUM7S0FDRjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFTlZJUk9OTUVOVF9JTklUSUFMSVpFUiwgSW5qZWN0aW9uVG9rZW4sIFByb3ZpZGVyLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IMm1U3RhdGVDbGFzc0ludGVybmFsIH0gZnJvbSAnQG5neHMvc3RvcmUvaW50ZXJuYWxzJztcblxuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICcuLi9zdG9yZSc7XG5pbXBvcnQgeyBOR1hTX1BSRUJPT1RfRk5TIH0gZnJvbSAnLi9wcmVib290JztcbmltcG9ydCB7IEluaXRTdGF0ZSwgVXBkYXRlU3RhdGUgfSBmcm9tICcuLi9wbHVnaW5fYXBpJztcbmltcG9ydCB7IEZFQVRVUkVfU1RBVEVfVE9LRU4sIFJPT1RfU1RBVEVfVE9LRU4gfSBmcm9tICcuLi9zeW1ib2xzJztcbmltcG9ydCB7IFN0YXRlRmFjdG9yeSB9IGZyb20gJy4uL2ludGVybmFsL3N0YXRlLWZhY3RvcnknO1xuaW1wb3J0IHsgU3RhdGVzQW5kRGVmYXVsdHMgfSBmcm9tICcuLi9pbnRlcm5hbC9pbnRlcm5hbHMnO1xuaW1wb3J0IHsgU2VsZWN0RmFjdG9yeSB9IGZyb20gJy4uL2RlY29yYXRvcnMvc2VsZWN0L3NlbGVjdC1mYWN0b3J5JztcbmltcG9ydCB7IEludGVybmFsU3RhdGVPcGVyYXRpb25zIH0gZnJvbSAnLi4vaW50ZXJuYWwvc3RhdGUtb3BlcmF0aW9ucyc7XG5pbXBvcnQgeyBMaWZlY3ljbGVTdGF0ZU1hbmFnZXIgfSBmcm9tICcuLi9pbnRlcm5hbC9saWZlY3ljbGUtc3RhdGUtbWFuYWdlcic7XG5pbXBvcnQgeyBpbnN0YWxsT25VbmhhbmRoZWRFcnJvckhhbmRsZXIgfSBmcm9tICcuLi9pbnRlcm5hbC91bmhhbmRsZWQtcnhqcy1lcnJvci1jYWxsYmFjayc7XG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBpcyBzaGFyZWQgYnkgYm90aCBOZ01vZHVsZSBhbmQgc3RhbmRhbG9uZSBmZWF0dXJlcy5cbiAqIFdoZW4gdXNpbmcgYE5neHNNb2R1bGUuZm9yUm9vdGAgYW5kIGBwcm92aWRlU3RvcmVgLCB3ZSBjYW4gZGVwZW5kIG9uIHRoZVxuICogc2FtZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbmFsaXR5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gcm9vdFN0b3JlSW5pdGlhbGl6ZXIoKTogdm9pZCB7XG4gIC8vIE92ZXJyaWRlIHRoZSBSeEpTIGBjb25maWcub25VbmhhbmRsZWRFcnJvcmAgd2l0aGluIHRoZSByb290IHN0b3JlIGluaXRpYWxpemVyLFxuICAvLyBidXQgb25seSBhZnRlciBvdGhlciBjb2RlIGhhcyBhbHJlYWR5IGV4ZWN1dGVkLlxuICAvLyBJZiB1c2VycyBoYXZlIGEgY3VzdG9tIGBjb25maWcub25VbmhhbmRsZWRFcnJvcmAsIHdlIG1pZ2h0IG92ZXJ3cml0ZSBpdCB0b29cbiAgLy8gZWFybHkgYW5kIGNhcHR1cmUgdGhlIG9yaWdpbmFsIGBjb25maWcub25VbmhhbmRsZWRFcnJvcmAgYmVmb3JlIGl0IGlzIHByb3Blcmx5IHNldC5cbiAgaW5zdGFsbE9uVW5oYW5kaGVkRXJyb3JIYW5kbGVyKCk7XG5cbiAgY29uc3QgcHJlYm9vdEZucyA9IGluamVjdChOR1hTX1BSRUJPT1RfRk5TLCB7IG9wdGlvbmFsOiB0cnVlIH0pIHx8IFtdO1xuICBwcmVib290Rm5zLmZvckVhY2gocHJlYm9vdEZuID0+IHByZWJvb3RGbigpKTtcblxuICBjb25zdCBmYWN0b3J5ID0gaW5qZWN0KFN0YXRlRmFjdG9yeSk7XG4gIGNvbnN0IGludGVybmFsU3RhdGVPcGVyYXRpb25zID0gaW5qZWN0KEludGVybmFsU3RhdGVPcGVyYXRpb25zKTtcblxuICBpbmplY3QoU3RvcmUpO1xuICBpbmplY3QoU2VsZWN0RmFjdG9yeSk7XG5cbiAgY29uc3Qgc3RhdGVzID0gaW5qZWN0KFJPT1RfU1RBVEVfVE9LRU4sIHsgb3B0aW9uYWw6IHRydWUgfSkgfHwgW107XG4gIGNvbnN0IGxpZmVjeWNsZVN0YXRlTWFuYWdlciA9IGluamVjdChMaWZlY3ljbGVTdGF0ZU1hbmFnZXIpO1xuXG4gIC8vIEFkZCBzdG9yZXMgdG8gdGhlIHN0YXRlIGdyYXBoIGFuZCByZXR1cm4gdGhlaXIgZGVmYXVsdHMuXG4gIGNvbnN0IHJlc3VsdHM6IFN0YXRlc0FuZERlZmF1bHRzID0gZmFjdG9yeS5hZGRBbmRSZXR1cm5EZWZhdWx0cyhzdGF0ZXMpO1xuXG4gIGludGVybmFsU3RhdGVPcGVyYXRpb25zLnNldFN0YXRlVG9UaGVDdXJyZW50V2l0aE5ldyhyZXN1bHRzKTtcblxuICAvLyBDb25uZWN0IG91ciBhY3Rpb25zIHN0cmVhbS5cbiAgZmFjdG9yeS5jb25uZWN0QWN0aW9uSGFuZGxlcnMoKTtcblxuICAvLyBEaXNwYXRjaCB0aGUgaW5pdCBhY3Rpb24gYW5kIGludm9rZSBpbml0IGFuZCBib290c3RyYXAgZnVuY3Rpb25zIGFmdGVyLlxuICBsaWZlY3ljbGVTdGF0ZU1hbmFnZXIubmd4c0Jvb3RzdHJhcChuZXcgSW5pdFN0YXRlKCksIHJlc3VsdHMpO1xufVxuXG4vKipcbiAqIFRoaXMgZnVuY3Rpb24gaXMgdXRpbGl6ZWQgYnkgYm90aCBOZ01vZHVsZSBhbmQgc3RhbmRhbG9uZSBmZWF0dXJlcy5cbiAqIFdoZW4gdXNpbmcgYE5neHNNb2R1bGUuZm9yRmVhdHVyZWAgYW5kIGBwcm92aWRlU3RhdGVzYCwgd2UgY2FuIGRlcGVuZCBvblxuICogdGhlIHNhbWUgaW5pdGlhbGl6YXRpb24gZnVuY3Rpb25hbGl0eS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZlYXR1cmVTdGF0ZXNJbml0aWFsaXplcigpOiB2b2lkIHtcbiAgaW5qZWN0KFN0b3JlKTtcblxuICBjb25zdCBpbnRlcm5hbFN0YXRlT3BlcmF0aW9ucyA9IGluamVjdChJbnRlcm5hbFN0YXRlT3BlcmF0aW9ucyk7XG4gIGNvbnN0IGZhY3RvcnkgPSBpbmplY3QoU3RhdGVGYWN0b3J5KTtcbiAgY29uc3Qgc3RhdGVzID0gaW5qZWN0KEZFQVRVUkVfU1RBVEVfVE9LRU4sIHsgb3B0aW9uYWw6IHRydWUgfSkgfHwgW107XG4gIGNvbnN0IGxpZmVjeWNsZVN0YXRlTWFuYWdlciA9IGluamVjdChMaWZlY3ljbGVTdGF0ZU1hbmFnZXIpO1xuXG4gIC8vIFNpbmNlIEZFQVRVUkVfU1RBVEVfVE9LRU4gaXMgYSBtdWx0aSB0b2tlbiwgd2UgbmVlZCB0b1xuICAvLyBmbGF0dGVuIGl0IFtbRmVhdHVyZTFTdGF0ZSwgRmVhdHVyZTJTdGF0ZV0sIFtGZWF0dXJlM1N0YXRlXV0uXG4gIGNvbnN0IGZsYXR0ZW5lZFN0YXRlczogybVTdGF0ZUNsYXNzSW50ZXJuYWxbXSA9IHN0YXRlcy5yZWR1Y2UoXG4gICAgKHRvdGFsOiDJtVN0YXRlQ2xhc3NJbnRlcm5hbFtdLCB2YWx1ZXM6IMm1U3RhdGVDbGFzc0ludGVybmFsW10pID0+IHRvdGFsLmNvbmNhdCh2YWx1ZXMpLFxuICAgIFtdXG4gICk7XG5cbiAgLy8gYWRkIHN0b3JlcyB0byB0aGUgc3RhdGUgZ3JhcGggYW5kIHJldHVybiB0aGVpciBkZWZhdWx0cy5cbiAgY29uc3QgcmVzdWx0czogU3RhdGVzQW5kRGVmYXVsdHMgPSBmYWN0b3J5LmFkZEFuZFJldHVybkRlZmF1bHRzKGZsYXR0ZW5lZFN0YXRlcyk7XG5cbiAgaWYgKHJlc3VsdHMuc3RhdGVzLmxlbmd0aCkge1xuICAgIGludGVybmFsU3RhdGVPcGVyYXRpb25zLnNldFN0YXRlVG9UaGVDdXJyZW50V2l0aE5ldyhyZXN1bHRzKTtcblxuICAgIC8vIERpc3BhdGNoIHRoZSB1cGRhdGUgYWN0aW9uIGFuZCBpbnZva2UgaW5pdCBhbmQgYm9vdHN0cmFwIGZ1bmN0aW9ucyBhZnRlci5cbiAgICBsaWZlY3ljbGVTdGF0ZU1hbmFnZXIubmd4c0Jvb3RzdHJhcChuZXcgVXBkYXRlU3RhdGUocmVzdWx0cy5kZWZhdWx0cyksIHJlc3VsdHMpO1xuICB9XG59XG5cbi8qKlxuICogSW5qZWN0aW9uVG9rZW4gdGhhdCByZWdpc3RlcnMgdGhlIGdsb2JhbCBTdG9yZS5cbiAqL1xuZXhwb3J0IGNvbnN0IE5HWFNfUk9PVF9TVE9SRV9JTklUSUFMSVpFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjx2b2lkPihcbiAgdHlwZW9mIG5nRGV2TW9kZSAhPT0gJ3VuZGVmaW5lZCcgJiYgbmdEZXZNb2RlID8gJ05HWFNfUk9PVF9TVE9SRV9JTklUSUFMSVpFUicgOiAnJ1xuKTtcblxuLyoqXG4gKiBJbmplY3Rpb25Ub2tlbiB0aGF0IHJlZ2lzdGVycyBmZWF0dXJlIHN0YXRlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IE5HWFNfRkVBVFVSRV9TVE9SRV9JTklUSUFMSVpFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjx2b2lkPihcbiAgdHlwZW9mIG5nRGV2TW9kZSAhPT0gJ3VuZGVmaW5lZCcgJiYgbmdEZXZNb2RlID8gJ05HWFNfRkVBVFVSRV9TVE9SRV9JTklUSUFMSVpFUicgOiAnJ1xuKTtcblxuZXhwb3J0IGNvbnN0IE5HWFNfUk9PVF9FTlZJUk9OTUVOVF9JTklUSUFMSVpFUjogUHJvdmlkZXJbXSA9IFtcbiAgeyBwcm92aWRlOiBOR1hTX1JPT1RfU1RPUkVfSU5JVElBTElaRVIsIHVzZUZhY3Rvcnk6IHJvb3RTdG9yZUluaXRpYWxpemVyIH0sXG4gIHtcbiAgICBwcm92aWRlOiBFTlZJUk9OTUVOVF9JTklUSUFMSVpFUixcbiAgICBtdWx0aTogdHJ1ZSxcbiAgICB1c2VGYWN0b3J5KCkge1xuICAgICAgcmV0dXJuICgpID0+IGluamVjdChOR1hTX1JPT1RfU1RPUkVfSU5JVElBTElaRVIpO1xuICAgIH1cbiAgfVxuXTtcblxuLyoqXG4gKiBUaGUgYE5HWFNfRkVBVFVSRV9FTlZJUk9OTUVOVF9JTklUSUFMSVpFUmAgZnVuY3Rpb25zIGFzIGFuIGVudmlyb25tZW50IGluaXRpYWxpemVyXG4gKiBhdCB0aGUgYFJvdXRlYCBsZXZlbC4gQW5ndWxhciBSb3V0ZXIgY3JlYXRlcyBhbiBlbnZpcm9ubWVudCByb3V0ZSBpbmplY3RvciBmb3IgZWFjaFxuICogbWF0Y2hlZCByb3V0ZSB3aGVyZSBuYXZpZ2F0aW9uIG9jY3Vycy4gVGhlIGluamVjdG9yIGlzIGNyZWF0ZWQgb25jZSwgZW5zdXJpbmcgdGhhdFxuICogdGhlIGZlYXR1cmUgc3RhdGVzIGluaXRpYWxpemF0aW9uIG9ubHkgaGFwcGVucyBvbmNlIGFzIHdlbGwuXG4gKi9cbmV4cG9ydCBjb25zdCBOR1hTX0ZFQVRVUkVfRU5WSVJPTk1FTlRfSU5JVElBTElaRVI6IFByb3ZpZGVyW10gPSBbXG4gIHsgcHJvdmlkZTogTkdYU19GRUFUVVJFX1NUT1JFX0lOSVRJQUxJWkVSLCB1c2VGYWN0b3J5OiBmZWF0dXJlU3RhdGVzSW5pdGlhbGl6ZXIgfSxcbiAge1xuICAgIHByb3ZpZGU6IEVOVklST05NRU5UX0lOSVRJQUxJWkVSLFxuICAgIG11bHRpOiB0cnVlLFxuICAgIHVzZUZhY3RvcnkoKSB7XG4gICAgICByZXR1cm4gKCkgPT4gaW5qZWN0KE5HWFNfRkVBVFVSRV9TVE9SRV9JTklUSUFMSVpFUik7XG4gICAgfVxuICB9XG5dO1xuIl19
@@ -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,9 +1,8 @@
1
1
  import { InjectionToken, makeEnvironmentProviders } from '@angular/core';
2
- const NG_DEV_MODE = typeof ngDevMode !== 'undefined' && ngDevMode;
3
2
  /**
4
3
  * InjectionToken that registers preboot functions (called before the root initializer).
5
4
  */
6
- export const NGXS_PREBOOT_FNS = new InjectionToken(NG_DEV_MODE ? 'NGXS_PREBOOT_FNS' : '');
5
+ export const NGXS_PREBOOT_FNS = new InjectionToken(typeof ngDevMode !== 'undefined' && ngDevMode ? 'NGXS_PREBOOT_FNS' : '');
7
6
  /**
8
7
  * This function registers a preboot function which will be called before the root
9
8
  * store initializer is run, but after all of the NGXS features are provided and
@@ -29,4 +28,4 @@ export function withNgxsPreboot(prebootFn) {
29
28
  { provide: NGXS_PREBOOT_FNS, multi: true, useValue: prebootFn }
30
29
  ]);
31
30
  }
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlYm9vdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL3NyYy9zdGFuZGFsb25lLWZlYXR1cmVzL3ByZWJvb3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6RSxNQUFNLFdBQVcsR0FBRyxPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUyxDQUFDO0FBRWxFOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxjQUFjLENBQ2hELFdBQVcsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDdEMsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FBQyxTQUF1QjtJQUNyRCxPQUFPLHdCQUF3QixDQUFDO1FBQzlCLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRTtLQUNoRSxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5jb25zdCBOR19ERVZfTU9ERSA9IHR5cGVvZiBuZ0Rldk1vZGUgIT09ICd1bmRlZmluZWQnICYmIG5nRGV2TW9kZTtcblxuLyoqXG4gKiBJbmplY3Rpb25Ub2tlbiB0aGF0IHJlZ2lzdGVycyBwcmVib290IGZ1bmN0aW9ucyAoY2FsbGVkIGJlZm9yZSB0aGUgcm9vdCBpbml0aWFsaXplcikuXG4gKi9cbmV4cG9ydCBjb25zdCBOR1hTX1BSRUJPT1RfRk5TID0gbmV3IEluamVjdGlvblRva2VuPFZvaWRGdW5jdGlvbltdPihcbiAgTkdfREVWX01PREUgPyAnTkdYU19QUkVCT09UX0ZOUycgOiAnJ1xuKTtcblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIHJlZ2lzdGVycyBhIHByZWJvb3QgZnVuY3Rpb24gd2hpY2ggd2lsbCBiZSBjYWxsZWQgYmVmb3JlIHRoZSByb290XG4gKiBzdG9yZSBpbml0aWFsaXplciBpcyBydW4sIGJ1dCBhZnRlciBhbGwgb2YgdGhlIE5HWFMgZmVhdHVyZXMgYXJlIHByb3ZpZGVkIGFuZFxuICogYXZhaWxhYmxlIGZvciBpbmplY3Rpb24uIFRoaXMgaXMgdXNlZnVsIGZvciByZWdpc3RlcmluZyBhY3Rpb24gc3RyZWFtIGxpc3RlbmVyc1xuICogYmVmb3JlIGFueSBhY3Rpb24gaXMgZGlzcGF0Y2hlZC5cbiAqXG4gKiBgYGB0c1xuICogYm9vdHN0cmFwQXBwbGljYXRpb24oQXBwQ29tcG9uZW50LCB7XG4gKiAgIHByb3ZpZGVyczogW1xuICogICAgIHByb3ZpZGVTdG9yZShcbiAqICAgICAgIFtDb3VudHJpZXNTdGF0ZV0sXG4gKiAgICAgICB3aXRoTmd4c1ByZWJvb3QoKCkgPT4ge1xuICogICAgICAgICBjb25zdCBhY3Rpb25zJCA9IGluamVjdChBY3Rpb25zKTtcbiAqICAgICAgICAgYWN0aW9ucyQuc3Vic2NyaWJlKGN0eCA9PiBjb25zb2xlLmxvZyhjdHgpKTtcbiAqICAgICAgIH0pXG4gKiAgICAgKVxuICogICBdXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gd2l0aE5neHNQcmVib290KHByZWJvb3RGbjogVm9pZEZ1bmN0aW9uKSB7XG4gIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW1xuICAgIHsgcHJvdmlkZTogTkdYU19QUkVCT09UX0ZOUywgbXVsdGk6IHRydWUsIHVzZVZhbHVlOiBwcmVib290Rm4gfVxuICBdKTtcbn1cbiJdfQ==
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlYm9vdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL3NyYy9zdGFuZGFsb25lLWZlYXR1cmVzL3ByZWJvb3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6RTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLElBQUksY0FBYyxDQUNoRCxPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUN4RSxDQUFDO0FBRUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQkc7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUFDLFNBQXVCO0lBQ3JELE9BQU8sd0JBQXdCLENBQUM7UUFDOUIsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFO0tBQ2hFLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogSW5qZWN0aW9uVG9rZW4gdGhhdCByZWdpc3RlcnMgcHJlYm9vdCBmdW5jdGlvbnMgKGNhbGxlZCBiZWZvcmUgdGhlIHJvb3QgaW5pdGlhbGl6ZXIpLlxuICovXG5leHBvcnQgY29uc3QgTkdYU19QUkVCT09UX0ZOUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxWb2lkRnVuY3Rpb25bXT4oXG4gIHR5cGVvZiBuZ0Rldk1vZGUgIT09ICd1bmRlZmluZWQnICYmIG5nRGV2TW9kZSA/ICdOR1hTX1BSRUJPT1RfRk5TJyA6ICcnXG4pO1xuXG4vKipcbiAqIFRoaXMgZnVuY3Rpb24gcmVnaXN0ZXJzIGEgcHJlYm9vdCBmdW5jdGlvbiB3aGljaCB3aWxsIGJlIGNhbGxlZCBiZWZvcmUgdGhlIHJvb3RcbiAqIHN0b3JlIGluaXRpYWxpemVyIGlzIHJ1biwgYnV0IGFmdGVyIGFsbCBvZiB0aGUgTkdYUyBmZWF0dXJlcyBhcmUgcHJvdmlkZWQgYW5kXG4gKiBhdmFpbGFibGUgZm9yIGluamVjdGlvbi4gVGhpcyBpcyB1c2VmdWwgZm9yIHJlZ2lzdGVyaW5nIGFjdGlvbiBzdHJlYW0gbGlzdGVuZXJzXG4gKiBiZWZvcmUgYW55IGFjdGlvbiBpcyBkaXNwYXRjaGVkLlxuICpcbiAqIGBgYHRzXG4gKiBib290c3RyYXBBcHBsaWNhdGlvbihBcHBDb21wb25lbnQsIHtcbiAqICAgcHJvdmlkZXJzOiBbXG4gKiAgICAgcHJvdmlkZVN0b3JlKFxuICogICAgICAgW0NvdW50cmllc1N0YXRlXSxcbiAqICAgICAgIHdpdGhOZ3hzUHJlYm9vdCgoKSA9PiB7XG4gKiAgICAgICAgIGNvbnN0IGFjdGlvbnMkID0gaW5qZWN0KEFjdGlvbnMpO1xuICogICAgICAgICBhY3Rpb25zJC5zdWJzY3JpYmUoY3R4ID0+IGNvbnNvbGUubG9nKGN0eCkpO1xuICogICAgICAgfSlcbiAqICAgICApXG4gKiAgIF1cbiAqIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3aXRoTmd4c1ByZWJvb3QocHJlYm9vdEZuOiBWb2lkRnVuY3Rpb24pIHtcbiAgcmV0dXJuIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhbXG4gICAgeyBwcm92aWRlOiBOR1hTX1BSRUJPT1RfRk5TLCBtdWx0aTogdHJ1ZSwgdXNlVmFsdWU6IHByZWJvb3RGbiB9XG4gIF0pO1xufVxuIl19
@@ -1,7 +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
- import { StateFactory } from '../internal/state-factory';
5
3
  import { CUSTOM_NGXS_EXECUTION_STRATEGY } from '../execution/symbols';
6
4
  import { ROOT_STATE_TOKEN, NGXS_OPTIONS } from '../symbols';
7
5
  /**
@@ -10,8 +8,6 @@ import { ROOT_STATE_TOKEN, NGXS_OPTIONS } from '../symbols';
10
8
  */
11
9
  export function getRootProviders(states, options) {
12
10
  return [
13
- StateFactory,
14
- PluginManager,
15
11
  ...states,
16
12
  {
17
13
  provide: ROOT_STATE_TOKEN,
@@ -35,4 +31,4 @@ export function getRootProviders(states, options) {
35
31
  }
36
32
  ];
37
33
  }
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC1wcm92aWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvc3RhbmRhbG9uZS1mZWF0dXJlcy9yb290LXByb3ZpZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQVksTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pFLE9BQU8sRUFBZSx5QkFBeUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRS9FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEUsT0FBTyxFQUFxQixnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFL0U7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUM5QixNQUFxQixFQUNyQixPQUEwQjtJQUUxQixPQUFPO1FBQ0wsWUFBWTtRQUNaLGFBQWE7UUFDYixHQUFHLE1BQU07UUFDVDtZQUNFLE9BQU8sRUFBRSxnQkFBZ0I7WUFDekIsUUFBUSxFQUFFLE1BQU07U0FDakI7UUFDRDtZQUNFLE9BQU8sRUFBRSxzQkFBc0I7WUFDL0IsVUFBVSxFQUFFLEdBQUcsRUFBRTtnQkFDZixNQUFNLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO2dCQUMvRCxPQUFPLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2hELENBQUM7WUFDRCxLQUFLLEVBQUUsSUFBSTtTQUNaO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsWUFBWTtZQUNyQixRQUFRLEVBQUUsT0FBTztTQUNsQjtRQUNEO1lBQ0UsT0FBTyxFQUFFLDhCQUE4QjtZQUN2QyxRQUFRLEVBQUUsT0FBTyxDQUFDLGlCQUFpQjtTQUNwQztLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBQX0JPT1RTVFJBUF9MSVNURU5FUiwgUHJvdmlkZXIsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgybVTdGF0ZUNsYXNzLCDJtU5neHNBcHBCb290c3RyYXBwZWRTdGF0ZSB9IGZyb20gJ0BuZ3hzL3N0b3JlL2ludGVybmFscyc7XG5cbmltcG9ydCB7IFBsdWdpbk1hbmFnZXIgfSBmcm9tICcuLi9wbHVnaW4tbWFuYWdlcic7XG5pbXBvcnQgeyBTdGF0ZUZhY3RvcnkgfSBmcm9tICcuLi9pbnRlcm5hbC9zdGF0ZS1mYWN0b3J5JztcbmltcG9ydCB7IENVU1RPTV9OR1hTX0VYRUNVVElPTl9TVFJBVEVHWSB9IGZyb20gJy4uL2V4ZWN1dGlvbi9zeW1ib2xzJztcbmltcG9ydCB7IE5neHNNb2R1bGVPcHRpb25zLCBST09UX1NUQVRFX1RPS0VOLCBOR1hTX09QVElPTlMgfSBmcm9tICcuLi9zeW1ib2xzJztcblxuLyoqXG4gKiBUaGlzIGZ1bmN0aW9uIHByb3ZpZGVzIHRoZSByZXF1aXJlZCBwcm92aWRlcnMgd2hlbiBpbnZva2luZyBgTmd4c01vZHVsZS5mb3JSb290YFxuICogb3IgYHByb3ZpZGVTdG9yZWAuIEl0IGlzIHNoYXJlZCBiZXR3ZWVuIHRoZSBOZ01vZHVsZSBhbmQgc3RhbmRhbG9uZSBBUElzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Um9vdFByb3ZpZGVycyhcbiAgc3RhdGVzOiDJtVN0YXRlQ2xhc3NbXSxcbiAgb3B0aW9uczogTmd4c01vZHVsZU9wdGlvbnNcbik6IFByb3ZpZGVyW10ge1xuICByZXR1cm4gW1xuICAgIFN0YXRlRmFjdG9yeSxcbiAgICBQbHVnaW5NYW5hZ2VyLFxuICAgIC4uLnN0YXRlcyxcbiAgICB7XG4gICAgICBwcm92aWRlOiBST09UX1NUQVRFX1RPS0VOLFxuICAgICAgdXNlVmFsdWU6IHN0YXRlc1xuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogQVBQX0JPT1RTVFJBUF9MSVNURU5FUixcbiAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IHtcbiAgICAgICAgY29uc3QgYXBwQm9vdHN0cmFwcGVkU3RhdGUgPSBpbmplY3QoybVOZ3hzQXBwQm9vdHN0cmFwcGVkU3RhdGUpO1xuICAgICAgICByZXR1cm4gKCkgPT4gYXBwQm9vdHN0cmFwcGVkU3RhdGUuYm9vdHN0cmFwKCk7XG4gICAgICB9LFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HWFNfT1BUSU9OUyxcbiAgICAgIHVzZVZhbHVlOiBvcHRpb25zXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBDVVNUT01fTkdYU19FWEVDVVRJT05fU1RSQVRFR1ksXG4gICAgICB1c2VWYWx1ZTogb3B0aW9ucy5leGVjdXRpb25TdHJhdGVneVxuICAgIH1cbiAgXTtcbn1cbiJdfQ==
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC1wcm92aWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvc3RhbmRhbG9uZS1mZWF0dXJlcy9yb290LXByb3ZpZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQVksTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pFLE9BQU8sRUFBZSx5QkFBeUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRS9FLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RFLE9BQU8sRUFBcUIsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRS9FOzs7R0FHRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FDOUIsTUFBcUIsRUFDckIsT0FBMEI7SUFFMUIsT0FBTztRQUNMLEdBQUcsTUFBTTtRQUNUO1lBQ0UsT0FBTyxFQUFFLGdCQUFnQjtZQUN6QixRQUFRLEVBQUUsTUFBTTtTQUNqQjtRQUNEO1lBQ0UsT0FBTyxFQUFFLHNCQUFzQjtZQUMvQixVQUFVLEVBQUUsR0FBRyxFQUFFO2dCQUNmLE1BQU0sb0JBQW9CLEdBQUcsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUM7Z0JBQy9ELE9BQU8sR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDaEQsQ0FBQztZQUNELEtBQUssRUFBRSxJQUFJO1NBQ1o7UUFDRDtZQUNFLE9BQU8sRUFBRSxZQUFZO1lBQ3JCLFFBQVEsRUFBRSxPQUFPO1NBQ2xCO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsOEJBQThCO1lBQ3ZDLFFBQVEsRUFBRSxPQUFPLENBQUMsaUJBQWlCO1NBQ3BDO0tBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBUFBfQk9PVFNUUkFQX0xJU1RFTkVSLCBQcm92aWRlciwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyDJtVN0YXRlQ2xhc3MsIMm1Tmd4c0FwcEJvb3RzdHJhcHBlZFN0YXRlIH0gZnJvbSAnQG5neHMvc3RvcmUvaW50ZXJuYWxzJztcblxuaW1wb3J0IHsgQ1VTVE9NX05HWFNfRVhFQ1VUSU9OX1NUUkFURUdZIH0gZnJvbSAnLi4vZXhlY3V0aW9uL3N5bWJvbHMnO1xuaW1wb3J0IHsgTmd4c01vZHVsZU9wdGlvbnMsIFJPT1RfU1RBVEVfVE9LRU4sIE5HWFNfT1BUSU9OUyB9IGZyb20gJy4uL3N5bWJvbHMnO1xuXG4vKipcbiAqIFRoaXMgZnVuY3Rpb24gcHJvdmlkZXMgdGhlIHJlcXVpcmVkIHByb3ZpZGVycyB3aGVuIGludm9raW5nIGBOZ3hzTW9kdWxlLmZvclJvb3RgXG4gKiBvciBgcHJvdmlkZVN0b3JlYC4gSXQgaXMgc2hhcmVkIGJldHdlZW4gdGhlIE5nTW9kdWxlIGFuZCBzdGFuZGFsb25lIEFQSXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSb290UHJvdmlkZXJzKFxuICBzdGF0ZXM6IMm1U3RhdGVDbGFzc1tdLFxuICBvcHRpb25zOiBOZ3hzTW9kdWxlT3B0aW9uc1xuKTogUHJvdmlkZXJbXSB7XG4gIHJldHVybiBbXG4gICAgLi4uc3RhdGVzLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IFJPT1RfU1RBVEVfVE9LRU4sXG4gICAgICB1c2VWYWx1ZTogc3RhdGVzXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBBUFBfQk9PVFNUUkFQX0xJU1RFTkVSLFxuICAgICAgdXNlRmFjdG9yeTogKCkgPT4ge1xuICAgICAgICBjb25zdCBhcHBCb290c3RyYXBwZWRTdGF0ZSA9IGluamVjdCjJtU5neHNBcHBCb290c3RyYXBwZWRTdGF0ZSk7XG4gICAgICAgIHJldHVybiAoKSA9PiBhcHBCb290c3RyYXBwZWRTdGF0ZS5ib290c3RyYXAoKTtcbiAgICAgIH0sXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdYU19PUFRJT05TLFxuICAgICAgdXNlVmFsdWU6IG9wdGlvbnNcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IENVU1RPTV9OR1hTX0VYRUNVVElPTl9TVFJBVEVHWSxcbiAgICAgIHVzZVZhbHVlOiBvcHRpb25zLmV4ZWN1dGlvblN0cmF0ZWd5XG4gICAgfVxuICBdO1xufVxuIl19
@@ -1,4 +1,4 @@
1
- import { computed, Inject, Injectable, Optional } from '@angular/core';
1
+ import { computed, inject, Injectable } from '@angular/core';
2
2
  import { of, throwError, catchError, distinctUntilChanged, map, shareReplay, take } from 'rxjs';
3
3
  import { ɵINITIAL_STATE_TOKEN, ɵStateStream } from '@ngxs/store/internals';
4
4
  import { InternalNgxsExecutionStrategy } from './execution/internal-ngxs-execution-strategy';
@@ -8,32 +8,26 @@ import { leaveNgxs } from './operators/leave-ngxs';
8
8
  import { NgxsConfig } from './symbols';
9
9
  import { StateFactory } from './internal/state-factory';
10
10
  import * as i0 from "@angular/core";
11
- import * as i1 from "@ngxs/store/internals";
12
- import * as i2 from "./internal/state-operations";
13
- import * as i3 from "./symbols";
14
- import * as i4 from "./execution/internal-ngxs-execution-strategy";
15
- import * as i5 from "./internal/state-factory";
16
- const NG_DEV_MODE = typeof ngDevMode !== 'undefined' && ngDevMode;
17
11
  export class Store {
18
- constructor(_stateStream, _internalStateOperations, _config, _internalExecutionStrategy, _stateFactory, initialStateValue) {
19
- this._stateStream = _stateStream;
20
- this._internalStateOperations = _internalStateOperations;
21
- this._config = _config;
22
- this._internalExecutionStrategy = _internalExecutionStrategy;
23
- this._stateFactory = _stateFactory;
12
+ constructor() {
13
+ this._stateStream = inject(ɵStateStream);
14
+ this._internalStateOperations = inject(InternalStateOperations);
15
+ this._config = inject(NgxsConfig);
16
+ this._internalExecutionStrategy = inject(InternalNgxsExecutionStrategy);
17
+ this._stateFactory = inject(StateFactory);
24
18
  /**
25
19
  * This is a derived state stream that leaves NGXS execution strategy to emit state changes within the Angular zone,
26
20
  * because state is being changed actually within the `<root>` zone, see `InternalDispatcher#dispatchSingle`.
27
21
  * All selects would use this stream, and it would call leave only once for any state change across all active selectors.
28
22
  */
29
23
  this._selectableStateStream = this._stateStream.pipe(leaveNgxs(this._internalExecutionStrategy), shareReplay({ bufferSize: 1, refCount: true }));
30
- this.initStateStream(initialStateValue);
24
+ this.initStateStream();
31
25
  }
32
26
  /**
33
27
  * Dispatches action(s).
34
28
  */
35
29
  dispatch(actionOrActions) {
36
- if (NG_DEV_MODE) {
30
+ if (typeof ngDevMode !== 'undefined' && ngDevMode) {
37
31
  if (
38
32
  // If a single action is dispatched and it's nullable.
39
33
  actionOrActions == null ||
@@ -105,23 +99,19 @@ export class Store {
105
99
  const runtimeContext = this._stateFactory.getRuntimeSelectorContext();
106
100
  return makeSelectorFn(runtimeContext);
107
101
  }
108
- initStateStream(initialStateValue) {
102
+ initStateStream() {
103
+ const initialStateValue = inject(ɵINITIAL_STATE_TOKEN);
109
104
  const value = this._stateStream.value;
110
105
  const storeIsEmpty = !value || Object.keys(value).length === 0;
111
106
  if (storeIsEmpty) {
112
107
  this._stateStream.next(initialStateValue);
113
108
  }
114
109
  }
115
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: Store, deps: [{ token: i1.ɵStateStream }, { token: i2.InternalStateOperations }, { token: i3.NgxsConfig }, { token: i4.InternalNgxsExecutionStrategy }, { token: i5.StateFactory }, { token: ɵINITIAL_STATE_TOKEN, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
110
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: Store, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
116
111
  /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: Store, providedIn: 'root' }); }
117
112
  }
118
113
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: Store, decorators: [{
119
114
  type: Injectable,
120
115
  args: [{ providedIn: 'root' }]
121
- }], ctorParameters: () => [{ type: i1.ɵStateStream }, { type: i2.InternalStateOperations }, { type: i3.NgxsConfig }, { type: i4.InternalNgxsExecutionStrategy }, { type: i5.StateFactory }, { type: undefined, decorators: [{
122
- type: Optional
123
- }, {
124
- type: Inject,
125
- args: [ɵINITIAL_STATE_TOKEN]
126
- }] }] });
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBRUwsRUFBRSxFQUVGLFVBQVUsRUFDVixVQUFVLEVBQ1Ysb0JBQW9CLEVBQ3BCLEdBQUcsRUFDSCxXQUFXLEVBQ1gsSUFBSSxFQUNMLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTNFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzdGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7OztBQUd4RCxNQUFNLFdBQVcsR0FBRyxPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUyxDQUFDO0FBU2xFLE1BQU0sT0FBTyxLQUFLO0lBV2hCLFlBQ1UsWUFBMEIsRUFDMUIsd0JBQWlELEVBQ2pELE9BQW1CLEVBQ25CLDBCQUF5RCxFQUN6RCxhQUEyQixFQUduQyxpQkFBc0I7UUFQZCxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQXlCO1FBQ2pELFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDbkIsK0JBQTBCLEdBQTFCLDBCQUEwQixDQUErQjtRQUN6RCxr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T0FFRztJQUNILFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNFLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsS0FBVTtRQUNkLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU8sdUJBQXVCLENBQUMsUUFBYTtRQUMzQyxNQUFNLGNBQWMsR0FBRyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4RCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFDdEUsT0FBTyxjQUFjLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVPLGVBQWUsQ0FBQyxpQkFBc0I7UUFDNUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFDdEMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO1FBRS9ELElBQUksWUFBWSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM1QyxDQUFDO0lBQ0gsQ0FBQztpSUE1SFUsS0FBSyx3TEFrQk4sb0JBQW9CO3FJQWxCbkIsS0FBSyxjQURRLE1BQU07OzJGQUNuQixLQUFLO2tCQURqQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7MEJBa0I3QixRQUFROzswQkFDUixNQUFNOzJCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsLCBTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIE9ic2VydmFibGUsXG4gIG9mLFxuICBTdWJzY3JpcHRpb24sXG4gIHRocm93RXJyb3IsXG4gIGNhdGNoRXJyb3IsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBtYXAsXG4gIHNoYXJlUmVwbGF5LFxuICB0YWtlXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgybVJTklUSUFMX1NUQVRFX1RPS0VOLCDJtVN0YXRlU3RyZWFtIH0gZnJvbSAnQG5neHMvc3RvcmUvaW50ZXJuYWxzJztcblxuaW1wb3J0IHsgSW50ZXJuYWxOZ3hzRXhlY3V0aW9uU3RyYXRlZ3kgfSBmcm9tICcuL2V4ZWN1dGlvbi9pbnRlcm5hbC1uZ3hzLWV4ZWN1dGlvbi1zdHJhdGVneSc7XG5pbXBvcnQgeyBJbnRlcm5hbFN0YXRlT3BlcmF0aW9ucyB9IGZyb20gJy4vaW50ZXJuYWwvc3RhdGUtb3BlcmF0aW9ucyc7XG5pbXBvcnQgeyBnZXRSb290U2VsZWN0b3JGYWN0b3J5IH0gZnJvbSAnLi9zZWxlY3RvcnMvc2VsZWN0b3ItdXRpbHMnO1xuaW1wb3J0IHsgbGVhdmVOZ3hzIH0gZnJvbSAnLi9vcGVyYXRvcnMvbGVhdmUtbmd4cyc7XG5pbXBvcnQgeyBOZ3hzQ29uZmlnIH0gZnJvbSAnLi9zeW1ib2xzJztcbmltcG9ydCB7IFN0YXRlRmFjdG9yeSB9IGZyb20gJy4vaW50ZXJuYWwvc3RhdGUtZmFjdG9yeSc7XG5pbXBvcnQgeyBUeXBlZFNlbGVjdG9yIH0gZnJvbSAnLi9zZWxlY3RvcnMnO1xuXG5jb25zdCBOR19ERVZfTU9ERSA9IHR5cGVvZiBuZ0Rldk1vZGUgIT09ICd1bmRlZmluZWQnICYmIG5nRGV2TW9kZTtcblxuLy8gV2UgbmVlZCB0byBjaGVjayB3aGV0aGVyIHRoZSBwcm92aWRlZCBgVGAgdHlwZSBleHRlbmRzIGFuIGFycmF5IGluIG9yZGVyIHRvXG4vLyBhcHBseSB0aGUgYE5vbk51bGxhYmxlW11gIHR5cGUgdG8gaXRzIGVsZW1lbnRzLiBUaGlzIGlzIGJlY2F1c2UsIGZvclxuLy8gYGNvbnN0IGFjdGlvbnMgPSBbdW5kZWZpbmVkXWAsIHR5cGUgaW5mZXJlbmNlIHdvdWxkIHJlc3VsdCBpbiBgTm9uTnVsbGFibGU8dW5rbm93bj5gXG4vLyByYXRoZXIgdGhhbiBgTm9uTnVsbGFibGU8dW5rbm93bj5bXWAuXG50eXBlIEFjdGlvbk9yQXJyYXlPZkFjdGlvbnM8VD4gPSBUIGV4dGVuZHMgKGluZmVyIFUpW10gPyBOb25OdWxsYWJsZTxVPltdIDogTm9uTnVsbGFibGU8VD47XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgU3RvcmUge1xuICAvKipcbiAgICogVGhpcyBpcyBhIGRlcml2ZWQgc3RhdGUgc3RyZWFtIHRoYXQgbGVhdmVzIE5HWFMgZXhlY3V0aW9uIHN0cmF0ZWd5IHRvIGVtaXQgc3RhdGUgY2hhbmdlcyB3aXRoaW4gdGhlIEFuZ3VsYXIgem9uZSxcbiAgICogYmVjYXVzZSBzdGF0ZSBpcyBiZWluZyBjaGFuZ2VkIGFjdHVhbGx5IHdpdGhpbiB0aGUgYDxyb290PmAgem9uZSwgc2VlIGBJbnRlcm5hbERpc3BhdGNoZXIjZGlzcGF0Y2hTaW5nbGVgLlxuICAgKiBBbGwgc2VsZWN0cyB3b3VsZCB1c2UgdGhpcyBzdHJlYW0sIGFuZCBpdCB3b3VsZCBjYWxsIGxlYXZlIG9ubHkgb25jZSBmb3IgYW55IHN0YXRlIGNoYW5nZSBhY3Jvc3MgYWxsIGFjdGl2ZSBzZWxlY3RvcnMuXG4gICAqL1xuICBwcml2YXRlIF9zZWxlY3RhYmxlU3RhdGVTdHJlYW0gPSB0aGlzLl9zdGF0ZVN0cmVhbS5waXBlKFxuICAgIGxlYXZlTmd4cyh0aGlzLl9pbnRlcm5hbEV4ZWN1dGlvblN0cmF0ZWd5KSxcbiAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pXG4gICk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfc3RhdGVTdHJlYW06IMm1U3RhdGVTdHJlYW0sXG4gICAgcHJpdmF0ZSBfaW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnM6IEludGVybmFsU3RhdGVPcGVyYXRpb25zLFxuICAgIHByaXZhdGUgX2NvbmZpZzogTmd4c0NvbmZpZyxcbiAgICBwcml2YXRlIF9pbnRlcm5hbEV4ZWN1dGlvblN0cmF0ZWd5OiBJbnRlcm5hbE5neHNFeGVjdXRpb25TdHJhdGVneSxcbiAgICBwcml2YXRlIF9zdGF0ZUZhY3Rvcnk6IFN0YXRlRmFjdG9yeSxcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoybVJTklUSUFMX1NUQVRFX1RPS0VOKVxuICAgIGluaXRpYWxTdGF0ZVZhbHVlOiBhbnlcbiAgKSB7XG4gICAgdGhpcy5pbml0U3RhdGVTdHJlYW0oaW5pdGlhbFN0YXRlVmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIERpc3BhdGNoZXMgYWN0aW9uKHMpLlxuICAgKi9cbiAgZGlzcGF0Y2g8VD4oYWN0aW9uT3JBY3Rpb25zOiBBY3Rpb25PckFycmF5T2ZBY3Rpb25zPFQ+KTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgaWYgKE5HX0RFVl9NT0RFKSB7XG4gICAgICBpZiAoXG4gICAgICAgIC8vIElmIGEgc2luZ2xlIGFjdGlvbiBpcyBkaXNwYXRjaGVkIGFuZCBpdCdzIG51bGxhYmxlLlxuICAgICAgICBhY3Rpb25PckFjdGlvbnMgPT0gbnVsbCB8fFxuICAgICAgICAvLyBJZiBhIGxpc3Qgb2YgYWN0aW9ucyBpcyBkaXNwYXRjaGVkIGFuZCBhbnkgb2YgdGhlIGFjdGlvbnMgYXJlIG51bGxhYmxlLlxuICAgICAgICAoQXJyYXkuaXNBcnJheShhY3Rpb25PckFjdGlvbnMpICYmIGFjdGlvbk9yQWN0aW9ucy5zb21lKGFjdGlvbiA9PiBhY3Rpb24gPT0gbnVsbCkpXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoJ2BkaXNwYXRjaCgpYCB3YXMgY2FsbGVkIHdpdGhvdXQgcHJvdmlkaW5nIGFuIGFjdGlvbi4nKTtcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb3IpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9pbnRlcm5hbFN0YXRlT3BlcmF0aW9ucy5nZXRSb290U3RhdGVPcGVyYXRpb25zKCkuZGlzcGF0Y2goYWN0aW9uT3JBY3Rpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZWxlY3RzIGEgc2xpY2Ugb2YgZGF0YSBmcm9tIHRoZSBzdG9yZS5cbiAgICovXG4gIHNlbGVjdDxUPihzZWxlY3RvcjogVHlwZWRTZWxlY3RvcjxUPik6IE9ic2VydmFibGU8VD4ge1xuICAgIGNvbnN0IHNlbGVjdG9yRm4gPSB0aGlzLmdldFN0b3JlQm91bmRTZWxlY3RvckZuKHNlbGVjdG9yKTtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0YWJsZVN0YXRlU3RyZWFtLnBpcGUoXG4gICAgICBtYXAoc2VsZWN0b3JGbiksXG4gICAgICBjYXRjaEVycm9yKChlcnJvcjogRXJyb3IpOiBPYnNlcnZhYmxlPG5ldmVyPiB8IE9ic2VydmFibGU8dW5kZWZpbmVkPiA9PiB7XG4gICAgICAgIC8vIGlmIGVycm9yIGlzIFR5cGVFcnJvciB3ZSBzd2FsbG93IGl0IHRvIHByZXZlbnQgdXN1YWwgZXJyb3JzIHdpdGggcHJvcGVydHkgYWNjZXNzXG4gICAgICAgIGlmICh0aGlzLl9jb25maWcuc2VsZWN0b3JPcHRpb25zLnN1cHByZXNzRXJyb3JzICYmIGVycm9yIGluc3RhbmNlb2YgVHlwZUVycm9yKSB7XG4gICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyByZXRocm93IG90aGVyIGVycm9yc1xuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XG4gICAgICB9KSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICBsZWF2ZU5neHModGhpcy5faW50ZXJuYWxFeGVjdXRpb25TdHJhdGVneSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbGVjdCBvbmUgc2xpY2Ugb2YgZGF0YSBmcm9tIHRoZSBzdG9yZS5cbiAgICovXG4gIHNlbGVjdE9uY2U8VD4oc2VsZWN0b3I6IFR5cGVkU2VsZWN0b3I8VD4pOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3Qoc2VsZWN0b3IpLnBpcGUodGFrZSgxKSk7XG4gIH1cblxuICAvKipcbiAgICogU2VsZWN0IGEgc25hcHNob3QgZnJvbSB0aGUgc3RhdGUuXG4gICAqL1xuICBzZWxlY3RTbmFwc2hvdDxUPihzZWxlY3RvcjogVHlwZWRTZWxlY3RvcjxUPik6IFQge1xuICAgIGNvbnN0IHNlbGVjdG9yRm4gPSB0aGlzLmdldFN0b3JlQm91bmRTZWxlY3RvckZuKHNlbGVjdG9yKTtcbiAgICByZXR1cm4gc2VsZWN0b3JGbih0aGlzLl9zdGF0ZVN0cmVhbS5nZXRWYWx1ZSgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZWxlY3QgYSBzaWduYWwgZnJvbSB0aGUgc3RhdGUuXG4gICAqL1xuICBzZWxlY3RTaWduYWw8VD4oc2VsZWN0b3I6IFR5cGVkU2VsZWN0b3I8VD4pOiBTaWduYWw8VD4ge1xuICAgIGNvbnN0IHNlbGVjdG9yRm4gPSB0aGlzLmdldFN0b3JlQm91bmRTZWxlY3RvckZuKHNlbGVjdG9yKTtcbiAgICByZXR1cm4gY29tcHV0ZWQ8VD4oKCkgPT4gc2VsZWN0b3JGbih0aGlzLl9zdGF0ZVN0cmVhbS5zdGF0ZSgpKSk7XG4gIH1cblxuICAvKipcbiAgICogQWxsb3cgdGhlIHVzZXIgdG8gc3Vic2NyaWJlIHRvIHRoZSByb290IG9mIHRoZSBzdGF0ZVxuICAgKi9cbiAgc3Vic2NyaWJlKGZuPzogKHZhbHVlOiBhbnkpID0+IHZvaWQpOiBTdWJzY3JpcHRpb24ge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3RhYmxlU3RhdGVTdHJlYW1cbiAgICAgIC5waXBlKGxlYXZlTmd4cyh0aGlzLl9pbnRlcm5hbEV4ZWN1dGlvblN0cmF0ZWd5KSlcbiAgICAgIC5zdWJzY3JpYmUoZm4pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgcmF3IHZhbHVlIG9mIHRoZSBzdGF0ZS5cbiAgICovXG4gIHNuYXBzaG90KCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX2ludGVybmFsU3RhdGVPcGVyYXRpb25zLmdldFJvb3RTdGF0ZU9wZXJhdGlvbnMoKS5nZXRTdGF0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0IHRoZSBzdGF0ZSB0byBhIHNwZWNpZmljIHBvaW50IGluIHRpbWUuIFRoaXMgbWV0aG9kIGlzIHVzZWZ1bFxuICAgKiBmb3IgcGx1Z2luJ3Mgd2hvIG5lZWQgdG8gbW9kaWZ5IHRoZSBzdGF0ZSBkaXJlY3RseSBvciB1bml0IHRlc3RpbmcuXG4gICAqL1xuICByZXNldChzdGF0ZTogYW55KSB7XG4gICAgdGhpcy5faW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnMuZ2V0Um9vdFN0YXRlT3BlcmF0aW9ucygpLnNldFN0YXRlKHN0YXRlKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U3RvcmVCb3VuZFNlbGVjdG9yRm4oc2VsZWN0b3I6IGFueSkge1xuICAgIGNvbnN0IG1ha2VTZWxlY3RvckZuID0gZ2V0Um9vdFNlbGVjdG9yRmFjdG9yeShzZWxlY3Rvcik7XG4gICAgY29uc3QgcnVudGltZUNvbnRleHQgPSB0aGlzLl9zdGF0ZUZhY3RvcnkuZ2V0UnVudGltZVNlbGVjdG9yQ29udGV4dCgpO1xuICAgIHJldHVybiBtYWtlU2VsZWN0b3JGbihydW50aW1lQ29udGV4dCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRTdGF0ZVN0cmVhbShpbml0aWFsU3RhdGVWYWx1ZTogYW55KTogdm9pZCB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLl9zdGF0ZVN0cmVhbS52YWx1ZTtcbiAgICBjb25zdCBzdG9yZUlzRW1wdHkgPSAhdmFsdWUgfHwgT2JqZWN0LmtleXModmFsdWUpLmxlbmd0aCA9PT0gMDtcblxuICAgIGlmIChzdG9yZUlzRW1wdHkpIHtcbiAgICAgIHRoaXMuX3N0YXRlU3RyZWFtLm5leHQoaW5pdGlhbFN0YXRlVmFsdWUpO1xuICAgIH1cbiAgfVxufVxuIl19
116
+ }], ctorParameters: () => [] });
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFFTCxFQUFFLEVBRUYsVUFBVSxFQUNWLFVBQVUsRUFDVixvQkFBb0IsRUFDcEIsR0FBRyxFQUNILFdBQVcsRUFDWCxJQUFJLEVBQ0wsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFM0UsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDN0YsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQVV4RCxNQUFNLE9BQU8sS0FBSztJQWlCaEI7UUFoQlEsaUJBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDcEMsNkJBQXdCLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDM0QsWUFBTyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM3QiwrQkFBMEIsR0FBRyxNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUNuRSxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUU3Qzs7OztXQUlHO1FBQ0ssMkJBQXNCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJ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Q0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzRSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLEtBQVU7UUFDZCxJQUFJLENBQUMsd0JBQXdCLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVPLHVCQUF1QixDQUFDLFFBQWE7UUFDM0MsTUFBTSxjQUFjLEdBQUcsc0JBQXNCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEQsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1FBQ3RFLE9BQU8sY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFTyxlQUFlO1FBQ3JCLE1BQU0saUJBQWlCLEdBQVEsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDNUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFDdEMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO1FBRS9ELElBQUksWUFBWSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM1QyxDQUFDO0lBQ0gsQ0FBQztpSUExSFUsS0FBSztxSUFBTCxLQUFLLGNBRFEsTUFBTTs7MkZBQ25CLEtBQUs7a0JBRGpCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcHV0ZWQsIGluamVjdCwgSW5qZWN0YWJsZSwgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBPYnNlcnZhYmxlLFxuICBvZixcbiAgU3Vic2NyaXB0aW9uLFxuICB0aHJvd0Vycm9yLFxuICBjYXRjaEVycm9yLFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgbWFwLFxuICBzaGFyZVJlcGxheSxcbiAgdGFrZVxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7IMm1SU5JVElBTF9TVEFURV9UT0tFTiwgybVTdGF0ZVN0cmVhbSB9IGZyb20gJ0BuZ3hzL3N0b3JlL2ludGVybmFscyc7XG5cbmltcG9ydCB7IEludGVybmFsTmd4c0V4ZWN1dGlvblN0cmF0ZWd5IH0gZnJvbSAnLi9leGVjdXRpb24vaW50ZXJuYWwtbmd4cy1leGVjdXRpb24tc3RyYXRlZ3knO1xuaW1wb3J0IHsgSW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnMgfSBmcm9tICcuL2ludGVybmFsL3N0YXRlLW9wZXJhdGlvbnMnO1xuaW1wb3J0IHsgZ2V0Um9vdFNlbGVjdG9yRmFjdG9yeSB9IGZyb20gJy4vc2VsZWN0b3JzL3NlbGVjdG9yLXV0aWxzJztcbmltcG9ydCB7IGxlYXZlTmd4cyB9IGZyb20gJy4vb3BlcmF0b3JzL2xlYXZlLW5neHMnO1xuaW1wb3J0IHsgTmd4c0NvbmZpZyB9IGZyb20gJy4vc3ltYm9scyc7XG5pbXBvcnQgeyBTdGF0ZUZhY3RvcnkgfSBmcm9tICcuL2ludGVybmFsL3N0YXRlLWZhY3RvcnknO1xuaW1wb3J0IHsgVHlwZWRTZWxlY3RvciB9IGZyb20gJy4vc2VsZWN0b3JzJztcblxuLy8gV2UgbmVlZCB0byBjaGVjayB3aGV0aGVyIHRoZSBwcm92aWRlZCBgVGAgdHlwZSBleHRlbmRzIGFuIGFycmF5IGluIG9yZGVyIHRvXG4vLyBhcHBseSB0aGUgYE5vbk51bGxhYmxlW11gIHR5cGUgdG8gaXRzIGVsZW1lbnRzLiBUaGlzIGlzIGJlY2F1c2UsIGZvclxuLy8gYGNvbnN0IGFjdGlvbnMgPSBbdW5kZWZpbmVkXWAsIHR5cGUgaW5mZXJlbmNlIHdvdWxkIHJlc3VsdCBpbiBgTm9uTnVsbGFibGU8dW5rbm93bj5gXG4vLyByYXRoZXIgdGhhbiBgTm9uTnVsbGFibGU8dW5rbm93bj5bXWAuXG50eXBlIEFjdGlvbk9yQXJyYXlPZkFjdGlvbnM8VD4gPSBUIGV4dGVuZHMgKGluZmVyIFUpW10gPyBOb25OdWxsYWJsZTxVPltdIDogTm9uTnVsbGFibGU8VD47XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgU3RvcmUge1xuICBwcml2YXRlIF9zdGF0ZVN0cmVhbSA9IGluamVjdCjJtVN0YXRlU3RyZWFtKTtcbiAgcHJpdmF0ZSBfaW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnMgPSBpbmplY3QoSW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnMpO1xuICBwcml2YXRlIF9jb25maWcgPSBpbmplY3QoTmd4c0NvbmZpZyk7XG4gIHByaXZhdGUgX2ludGVybmFsRXhlY3V0aW9uU3RyYXRlZ3kgPSBpbmplY3QoSW50ZXJuYWxOZ3hzRXhlY3V0aW9uU3RyYXRlZ3kpO1xuICBwcml2YXRlIF9zdGF0ZUZhY3RvcnkgPSBpbmplY3QoU3RhdGVGYWN0b3J5KTtcblxuICAvKipcbiAgICogVGhpcyBpcyBhIGRlcml2ZWQgc3RhdGUgc3RyZWFtIHRoYXQgbGVhdmVzIE5HWFMgZXhlY3V0aW9uIHN0cmF0ZWd5IHRvIGVtaXQgc3RhdGUgY2hhbmdlcyB3aXRoaW4gdGhlIEFuZ3VsYXIgem9uZSxcbiAgICogYmVjYXVzZSBzdGF0ZSBpcyBiZWluZyBjaGFuZ2VkIGFjdHVhbGx5IHdpdGhpbiB0aGUgYDxyb290PmAgem9uZSwgc2VlIGBJbnRlcm5hbERpc3BhdGNoZXIjZGlzcGF0Y2hTaW5nbGVgLlxuICAgKiBBbGwgc2VsZWN0cyB3b3VsZCB1c2UgdGhpcyBzdHJlYW0sIGFuZCBpdCB3b3VsZCBjYWxsIGxlYXZlIG9ubHkgb25jZSBmb3IgYW55IHN0YXRlIGNoYW5nZSBhY3Jvc3MgYWxsIGFjdGl2ZSBzZWxlY3RvcnMuXG4gICAqL1xuICBwcml2YXRlIF9zZWxlY3RhYmxlU3RhdGVTdHJlYW0gPSB0aGlzLl9zdGF0ZVN0cmVhbS5waXBlKFxuICAgIGxlYXZlTmd4cyh0aGlzLl9pbnRlcm5hbEV4ZWN1dGlvblN0cmF0ZWd5KSxcbiAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pXG4gICk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pbml0U3RhdGVTdHJlYW0oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNwYXRjaGVzIGFjdGlvbihzKS5cbiAgICovXG4gIGRpc3BhdGNoPFQ+KGFjdGlvbk9yQWN0aW9uczogQWN0aW9uT3JBcnJheU9mQWN0aW9uczxUPik6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGlmICh0eXBlb2YgbmdEZXZNb2RlICE9PSAndW5kZWZpbmVkJyAmJiBuZ0Rldk1vZGUpIHtcbiAgICAgIGlmIChcbiAgICAgICAgLy8gSWYgYSBzaW5nbGUgYWN0aW9uIGlzIGRpc3BhdGNoZWQgYW5kIGl0J3MgbnVsbGFibGUuXG4gICAgICAgIGFjdGlvbk9yQWN0aW9ucyA9PSBudWxsIHx8XG4gICAgICAgIC8vIElmIGEgbGlzdCBvZiBhY3Rpb25zIGlzIGRpc3BhdGNoZWQgYW5kIGFueSBvZiB0aGUgYWN0aW9ucyBhcmUgbnVsbGFibGUuXG4gICAgICAgIChBcnJheS5pc0FycmF5KGFjdGlvbk9yQWN0aW9ucykgJiYgYWN0aW9uT3JBY3Rpb25zLnNvbWUoYWN0aW9uID0+IGFjdGlvbiA9PSBudWxsKSlcbiAgICAgICkge1xuICAgICAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcignYGRpc3BhdGNoKClgIHdhcyBjYWxsZWQgd2l0aG91dCBwcm92aWRpbmcgYW4gYWN0aW9uLicpO1xuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnJvcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX2ludGVybmFsU3RhdGVPcGVyYXRpb25zLmdldFJvb3RTdGF0ZU9wZXJhdGlvbnMoKS5kaXNwYXRjaChhY3Rpb25PckFjdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbGVjdHMgYSBzbGljZSBvZiBkYXRhIGZyb20gdGhlIHN0b3JlLlxuICAgKi9cbiAgc2VsZWN0PFQ+KHNlbGVjdG9yOiBUeXBlZFNlbGVjdG9yPFQ+KTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgY29uc3Qgc2VsZWN0b3JGbiA9IHRoaXMuZ2V0U3RvcmVCb3VuZFNlbGVjdG9yRm4oc2VsZWN0b3IpO1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3RhYmxlU3RhdGVTdHJlYW0ucGlwZShcbiAgICAgIG1hcChzZWxlY3RvckZuKSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiBFcnJvcik6IE9ic2VydmFibGU8bmV2ZXI+IHwgT2JzZXJ2YWJsZTx1bmRlZmluZWQ+ID0+IHtcbiAgICAgICAgLy8gaWYgZXJyb3IgaXMgVHlwZUVycm9yIHdlIHN3YWxsb3cgaXQgdG8gcHJldmVudCB1c3VhbCBlcnJvcnMgd2l0aCBwcm9wZXJ0eSBhY2Nlc3NcbiAgICAgICAgaWYgKHRoaXMuX2NvbmZpZy5zZWxlY3Rvck9wdGlvbnMuc3VwcHJlc3NFcnJvcnMgJiYgZXJyb3IgaW5zdGFuY2VvZiBUeXBlRXJyb3IpIHtcbiAgICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHJldGhyb3cgb3RoZXIgZXJyb3JzXG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcbiAgICAgIH0pLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIGxlYXZlTmd4cyh0aGlzLl9pbnRlcm5hbEV4ZWN1dGlvblN0cmF0ZWd5KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogU2VsZWN0IG9uZSBzbGljZSBvZiBkYXRhIGZyb20gdGhlIHN0b3JlLlxuICAgKi9cbiAgc2VsZWN0T25jZTxUPihzZWxlY3RvcjogVHlwZWRTZWxlY3RvcjxUPik6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdChzZWxlY3RvcikucGlwZSh0YWtlKDEpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZWxlY3QgYSBzbmFwc2hvdCBmcm9tIHRoZSBzdGF0ZS5cbiAgICovXG4gIHNlbGVjdFNuYXBzaG90PFQ+KHNlbGVjdG9yOiBUeXBlZFNlbGVjdG9yPFQ+KTogVCB7XG4gICAgY29uc3Qgc2VsZWN0b3JGbiA9IHRoaXMuZ2V0U3RvcmVCb3VuZFNlbGVjdG9yRm4oc2VsZWN0b3IpO1xuICAgIHJldHVybiBzZWxlY3RvckZuKHRoaXMuX3N0YXRlU3RyZWFtLmdldFZhbHVlKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbGVjdCBhIHNpZ25hbCBmcm9tIHRoZSBzdGF0ZS5cbiAgICovXG4gIHNlbGVjdFNpZ25hbDxUPihzZWxlY3RvcjogVHlwZWRTZWxlY3RvcjxUPik6IFNpZ25hbDxUPiB7XG4gICAgY29uc3Qgc2VsZWN0b3JGbiA9IHRoaXMuZ2V0U3RvcmVCb3VuZFNlbGVjdG9yRm4oc2VsZWN0b3IpO1xuICAgIHJldHVybiBjb21wdXRlZDxUPigoKSA9PiBzZWxlY3RvckZuKHRoaXMuX3N0YXRlU3RyZWFtLnN0YXRlKCkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbGxvdyB0aGUgdXNlciB0byBzdWJzY3JpYmUgdG8gdGhlIHJvb3Qgb2YgdGhlIHN0YXRlXG4gICAqL1xuICBzdWJzY3JpYmUoZm4/OiAodmFsdWU6IGFueSkgPT4gdm9pZCk6IFN1YnNjcmlwdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGFibGVTdGF0ZVN0cmVhbVxuICAgICAgLnBpcGUobGVhdmVOZ3hzKHRoaXMuX2ludGVybmFsRXhlY3V0aW9uU3RyYXRlZ3kpKVxuICAgICAgLnN1YnNjcmliZShmbik7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSByYXcgdmFsdWUgb2YgdGhlIHN0YXRlLlxuICAgKi9cbiAgc25hcHNob3QoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5faW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnMuZ2V0Um9vdFN0YXRlT3BlcmF0aW9ucygpLmdldFN0YXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXQgdGhlIHN0YXRlIHRvIGEgc3BlY2lmaWMgcG9pbnQgaW4gdGltZS4gVGhpcyBtZXRob2QgaXMgdXNlZnVsXG4gICAqIGZvciBwbHVnaW4ncyB3aG8gbmVlZCB0byBtb2RpZnkgdGhlIHN0YXRlIGRpcmVjdGx5IG9yIHVuaXQgdGVzdGluZy5cbiAgICovXG4gIHJlc2V0KHN0YXRlOiBhbnkpIHtcbiAgICB0aGlzLl9pbnRlcm5hbFN0YXRlT3BlcmF0aW9ucy5nZXRSb290U3RhdGVPcGVyYXRpb25zKCkuc2V0U3RhdGUoc3RhdGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTdG9yZUJvdW5kU2VsZWN0b3JGbihzZWxlY3RvcjogYW55KSB7XG4gICAgY29uc3QgbWFrZVNlbGVjdG9yRm4gPSBnZXRSb290U2VsZWN0b3JGYWN0b3J5KHNlbGVjdG9yKTtcbiAgICBjb25zdCBydW50aW1lQ29udGV4dCA9IHRoaXMuX3N0YXRlRmFjdG9yeS5nZXRSdW50aW1lU2VsZWN0b3JDb250ZXh0KCk7XG4gICAgcmV0dXJuIG1ha2VTZWxlY3RvckZuKHJ1bnRpbWVDb250ZXh0KTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFN0YXRlU3RyZWFtKCk6IHZvaWQge1xuICAgIGNvbnN0IGluaXRpYWxTdGF0ZVZhbHVlOiBhbnkgPSBpbmplY3QoybVJTklUSUFMX1NUQVRFX1RPS0VOKTtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuX3N0YXRlU3RyZWFtLnZhbHVlO1xuICAgIGNvbnN0IHN0b3JlSXNFbXB0eSA9ICF2YWx1ZSB8fCBPYmplY3Qua2V5cyh2YWx1ZSkubGVuZ3RoID09PSAwO1xuXG4gICAgaWYgKHN0b3JlSXNFbXB0eSkge1xuICAgICAgdGhpcy5fc3RhdGVTdHJlYW0ubmV4dChpbml0aWFsU3RhdGVWYWx1ZSk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,18 +1,17 @@
1
1
  import { Injectable, InjectionToken, inject } from '@angular/core';
2
2
  import { DispatchOutsideZoneNgxsExecutionStrategy } from './execution/dispatch-outside-zone-ngxs-execution-strategy';
3
3
  import * as i0 from "@angular/core";
4
- const NG_DEV_MODE = typeof ngDevMode !== 'undefined' && ngDevMode;
5
4
  // The injection token is used to resolve a list of states provided at
6
5
  // the root level through either `NgxsModule.forRoot` or `provideStore`.
7
- export const ROOT_STATE_TOKEN = new InjectionToken(NG_DEV_MODE ? 'ROOT_STATE_TOKEN' : '');
6
+ export const ROOT_STATE_TOKEN = new InjectionToken(typeof ngDevMode !== 'undefined' && ngDevMode ? 'ROOT_STATE_TOKEN' : '');
8
7
  // The injection token is used to resolve a list of states provided at
9
8
  // the feature level through either `NgxsModule.forFeature` or `provideStates`.
10
9
  // The Array<Array> is used to overload the resolved value of the token because
11
10
  // it is a multi-provider token.
12
- export const FEATURE_STATE_TOKEN = new InjectionToken(NG_DEV_MODE ? 'FEATURE_STATE_TOKEN' : '');
11
+ export const FEATURE_STATE_TOKEN = new InjectionToken(typeof ngDevMode !== 'undefined' && ngDevMode ? 'FEATURE_STATE_TOKEN' : '');
13
12
  // The injection token is used to resolve to options provided at the root
14
13
  // level through either `NgxsModule.forRoot` or `provideStore`.
15
- export const NGXS_OPTIONS = new InjectionToken(NG_DEV_MODE ? 'NGXS_OPTIONS' : '');
14
+ export const NGXS_OPTIONS = new InjectionToken(typeof ngDevMode !== 'undefined' && ngDevMode ? 'NGXS_OPTIONS' : '');
16
15
  /**
17
16
  * The NGXS config settings.
18
17
  */
@@ -84,4 +83,4 @@ export class NgxsSimpleChange {
84
83
  this.firstChange = firstChange;
85
84
  }
86
85
  }
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL3NyYy9zeW1ib2xzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFRLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU96RSxPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSwyREFBMkQsQ0FBQzs7QUFFckgsTUFBTSxXQUFXLEdBQUcsT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLFNBQVMsQ0FBQztBQUVsRSxzRUFBc0U7QUFDdEUsd0VBQXdFO0FBQ3hFLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLElBQUksY0FBYyxDQUNoRCxXQUFXLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ3RDLENBQUM7QUFFRixzRUFBc0U7QUFDdEUsK0VBQStFO0FBQy9FLCtFQUErRTtBQUMvRSxnQ0FBZ0M7QUFDaEMsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxjQUFjLENBQ25ELFdBQVcsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDekMsQ0FBQztBQUVGLHlFQUF5RTtBQUN6RSwrREFBK0Q7QUFDL0QsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLElBQUksY0FBYyxDQUM1QyxXQUFXLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUNsQyxDQUFDO0FBTUY7O0dBRUc7QUFnQkgsTUFBTSxPQUFPLFVBQVU7SUFmdkI7UUEwQkUsa0JBQWEsR0FPVDtZQUNGLDJCQUEyQixFQUFFLEtBQUs7U0FDbkMsQ0FBQztRQUNGOzs7Ozs7Ozs7O1dBVUc7UUFDSCxzQkFBaUIsR0FBZ0Msd0NBQXdDLENBQUM7UUFDMUY7O1dBRUc7UUFDSCxvQkFBZSxHQUEyQjtZQUN4QyxvQkFBb0IsRUFBRSxLQUFLO1lBQzNCLGNBQWMsRUFBRSxLQUFLO1NBQ3RCLENBQUM7S0FDSDtpSUF4Q1ksVUFBVTtxSUFBVixVQUFVLGNBZFQsTUFBTSxjQUNOLEdBQWUsRUFBRTtZQUMzQixNQUFNLGFBQWEsR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNwQyxPQUFPO2dCQUNMLEdBQUcsYUFBYTtnQkFDaEIsR0FBRyxNQUFNO2dCQUNULGVBQWUsRUFBRTtvQkFDZixHQUFHLGFBQWEsQ0FBQyxlQUFlO29CQUNoQyxHQUFHLE1BQU0sQ0FBQyxlQUFlO2lCQUMxQjthQUNGLENBQUM7UUFDSixDQUFDOzsyRkFFVSxVQUFVO2tCQWZ0QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO29CQUNsQixVQUFVLEVBQUUsR0FBZSxFQUFFO3dCQUMzQixNQUFNLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQzt3QkFDdkMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO3dCQUNwQyxPQUFPOzRCQUNMLEdBQUcsYUFBYTs0QkFDaEIsR0FBRyxNQUFNOzRCQUNULGVBQWUsRUFBRTtnQ0FDZixHQUFHLGFBQWEsQ0FBQyxlQUFlO2dDQUNoQyxHQUFHLE1BQU0sQ0FBQyxlQUFlOzZCQUMxQjt5QkFDRixDQUFDO29CQUNKLENBQUM7aUJBQ0Y7O0FBc0VEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsWUFDa0IsYUFBZ0IsRUFDaEIsWUFBZSxFQUNmLFdBQW9CO1FBRnBCLGtCQUFhLEdBQWIsYUFBYSxDQUFHO1FBQ2hCLGlCQUFZLEdBQVosWUFBWSxDQUFHO1FBQ2YsZ0JBQVcsR0FBWCxXQUFXLENBQVM7SUFDbkMsQ0FBQztDQUNMIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIFR5cGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTdGF0ZU9wZXJhdG9yIH0gZnJvbSAnQG5neHMvc3RvcmUvb3BlcmF0b3JzJztcbmltcG9ydCB7IMm1U2hhcmVkU2VsZWN0b3JPcHRpb25zLCDJtVN0YXRlQ2xhc3MgfSBmcm9tICdAbmd4cy9zdG9yZS9pbnRlcm5hbHMnO1xuXG5pbXBvcnQgeyBOZ3hzRXhlY3V0aW9uU3RyYXRlZ3kgfSBmcm9tICcuL2V4ZWN1dGlvbi9zeW1ib2xzJztcbmltcG9ydCB7IERpc3BhdGNoT3V0c2lkZVpvbmVOZ3hzRXhlY3V0aW9uU3RyYXRlZ3kgfSBmcm9tICcuL2V4ZWN1dGlvbi9kaXNwYXRjaC1vdXRzaWRlLXpvbmUtbmd4cy1leGVjdXRpb24tc3RyYXRlZ3knO1xuXG5jb25zdCBOR19ERVZfTU9ERSA9IHR5cGVvZiBuZ0Rldk1vZGUgIT09ICd1bmRlZmluZWQnICYmIG5nRGV2TW9kZTtcblxuLy8gVGhlIGluamVjdGlvbiB0b2tlbiBpcyB1c2VkIHRvIHJlc29sdmUgYSBsaXN0IG9mIHN0YXRlcyBwcm92aWRlZCBhdFxuLy8gdGhlIHJvb3QgbGV2ZWwgdGhyb3VnaCBlaXRoZXIgYE5neHNNb2R1bGUuZm9yUm9vdGAgb3IgYHByb3ZpZGVTdG9yZWAuXG5leHBvcnQgY29uc3QgUk9PVF9TVEFURV9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBcnJheTzJtVN0YXRlQ2xhc3M+PihcbiAgTkdfREVWX01PREUgPyAnUk9PVF9TVEFURV9UT0tFTicgOiAnJ1xuKTtcblxuLy8gVGhlIGluamVjdGlvbiB0b2tlbiBpcyB1c2VkIHRvIHJlc29sdmUgYSBsaXN0IG9mIHN0YXRlcyBwcm92aWRlZCBhdFxuLy8gdGhlIGZlYXR1cmUgbGV2ZWwgdGhyb3VnaCBlaXRoZXIgYE5neHNNb2R1bGUuZm9yRmVhdHVyZWAgb3IgYHByb3ZpZGVTdGF0ZXNgLlxuLy8gVGhlIEFycmF5PEFycmF5PiBpcyB1c2VkIHRvIG92ZXJsb2FkIHRoZSByZXNvbHZlZCB2YWx1ZSBvZiB0aGUgdG9rZW4gYmVjYXVzZVxuLy8gaXQgaXMgYSBtdWx0aS1wcm92aWRlciB0b2tlbi5cbmV4cG9ydCBjb25zdCBGRUFUVVJFX1NUQVRFX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPEFycmF5PEFycmF5PMm1U3RhdGVDbGFzcz4+PihcbiAgTkdfREVWX01PREUgPyAnRkVBVFVSRV9TVEFURV9UT0tFTicgOiAnJ1xuKTtcblxuLy8gVGhlIGluamVjdGlvbiB0b2tlbiBpcyB1c2VkIHRvIHJlc29sdmUgdG8gb3B0aW9ucyBwcm92aWRlZCBhdCB0aGUgcm9vdFxuLy8gbGV2ZWwgdGhyb3VnaCBlaXRoZXIgYE5neHNNb2R1bGUuZm9yUm9vdGAgb3IgYHByb3ZpZGVTdG9yZWAuXG5leHBvcnQgY29uc3QgTkdYU19PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuPE5neHNNb2R1bGVPcHRpb25zPihcbiAgTkdfREVWX01PREUgPyAnTkdYU19PUFRJT05TJyA6ICcnXG4pO1xuXG5leHBvcnQgdHlwZSBOZ3hzTGlmZUN5Y2xlID0gUGFydGlhbDxOZ3hzT25DaGFuZ2VzPiAmXG4gIFBhcnRpYWw8Tmd4c09uSW5pdD4gJlxuICBQYXJ0aWFsPE5neHNBZnRlckJvb3RzdHJhcD47XG5cbi8qKlxuICogVGhlIE5HWFMgY29uZmlnIHNldHRpbmdzLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290JyxcbiAgdXNlRmFjdG9yeTogKCk6IE5neHNDb25maWcgPT4ge1xuICAgIGNvbnN0IGRlZmF1bHRDb25maWcgPSBuZXcgTmd4c0NvbmZpZygpO1xuICAgIGNvbnN0IGNvbmZpZyA9IGluamVjdChOR1hTX09QVElPTlMpO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5kZWZhdWx0Q29uZmlnLFxuICAgICAgLi4uY29uZmlnLFxuICAgICAgc2VsZWN0b3JPcHRpb25zOiB7XG4gICAgICAgIC4uLmRlZmF1bHRDb25maWcuc2VsZWN0b3JPcHRpb25zLFxuICAgICAgICAuLi5jb25maWcuc2VsZWN0b3JPcHRpb25zXG4gICAgICB9XG4gICAgfTtcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBOZ3hzQ29uZmlnIHtcbiAgLyoqXG4gICAqIFJ1biBpbiBkZXZlbG9wbWVudCBtb2RlLiBUaGlzIHdpbGwgYWRkIGFkZGl0aW9uYWwgZGVidWdnaW5nIGZlYXR1cmVzOlxuICAgKiAtIE9iamVjdC5mcmVlemUgb24gdGhlIHN0YXRlIGFuZCBhY3Rpb25zIHRvIGd1YXJhbnRlZSBpbW11dGFiaWxpdHlcbiAgICogKGRlZmF1bHQ6IGZhbHNlKVxuICAgKlxuICAgKiBOb3RlOiB0aGlzIHByb3BlcnR5IHdpbGwgYmUgYWNjb3VudGVkIG9ubHkgaW4gZGV2ZWxvcG1lbnQgbW9kZS5cbiAgICogSXQgbWFrZXMgc2Vuc2UgdG8gdXNlIGl0IG9ubHkgZHVyaW5nIGRldmVsb3BtZW50IHRvIGVuc3VyZSB0aGVyZSdyZSBubyBzdGF0ZSBtdXRhdGlvbnMuXG4gICAqIFdoZW4gYnVpbGRpbmcgZm9yIHByb2R1Y3Rpb24sIHRoZSBgT2JqZWN0LmZyZWV6ZWAgd2lsbCBiZSB0cmVlLXNoYWtlbiBhd2F5LlxuICAgKi9cbiAgZGV2ZWxvcG1lbnRNb2RlOiBib29sZWFuO1xuICBjb21wYXRpYmlsaXR5OiB7XG4gICAgLyoqXG4gICAgICogU3VwcG9ydCBhIHN0cmljdCBDb250ZW50IFNlY3VyaXR5IFBvbGljeS5cbiAgICAgKiBUaGlzIHdpbGwgY2lyY3VtdmVudCBzb21lIG9wdGltaXNhdGlvbnMgdGhhdCB2aW9sYXRlIGEgc3RyaWN0IENTUCB0aHJvdWdoIHRoZSB1c2Ugb2YgYG5ldyBGdW5jdGlvbiguLi4pYC5cbiAgICAgKiAoZGVmYXVsdDogZmFsc2UpXG4gICAgICovXG4gICAgc3RyaWN0Q29udGVudFNlY3VyaXR5UG9saWN5OiBib29sZWFuO1xuICB9ID0ge1xuICAgIHN0cmljdENvbnRlbnRTZWN1cml0eVBvbGljeTogZmFsc2VcbiAgfTtcbiAgLyoqXG4gICAqIERldGVybWluZXMgdGhlIGV4ZWN1dGlvbiBjb250ZXh0IHRvIHBlcmZvcm0gYXN5bmMgb3BlcmF0aW9ucyBpbnNpZGUuIEFuIGltcGxlbWVudGF0aW9uIGNhbiBiZVxuICAgKiBwcm92aWRlZCB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBiZWhhdmlvdXIgd2hlcmUgdGhlIGFzeW5jIG9wZXJhdGlvbnMgYXJlIHJ1blxuICAgKiBvdXRzaWRlIEFuZ3VsYXIncyB6b25lIGJ1dCBhbGwgb2JzZXJ2YWJsZSBiZWhhdmlvdXJzIG9mIE5HWFMgYXJlIHJ1biBiYWNrIGluc2lkZSBBbmd1bGFyJ3Mgem9uZS5cbiAgICogVGhlc2Ugb2JzZXJ2YWJsZSBiZWhhdmlvdXJzIGFyZSBmcm9tOlxuICAgKiAgIGBzdG9yZS5zZWxlY3RTaWduYWwoLi4uKWAsIGBzdG9yZS5zZWxlY3QoLi4uKWAsIGBhY3Rpb25zLnN1YnNjcmliZSguLi4pYCBvciBgc3RvcmUuZGlzcGF0Y2goLi4uKS5zdWJzY3JpYmUoLi4uKWBcbiAgICogRXZlcnkgYHpvbmUucnVuYCBjYXVzZXMgQW5ndWxhciB0byBydW4gY2hhbmdlIGRldGVjdGlvbiBvbiB0aGUgd2hvbGUgdHJlZSAoYGFwcC50aWNrKClgKSBzbyBvZiB5b3VyXG4gICAqIGFwcGxpY2F0aW9uIGRvZXNuJ3QgcmVseSBvbiB6b25lLmpzIHJ1bm5pbmcgY2hhbmdlIGRldGVjdGlvbiB0aGVuIHlvdSBjYW4gc3dpdGNoIHRvIHRoZVxuICAgKiBgTm9vcE5neHNFeGVjdXRpb25TdHJhdGVneWAgdGhhdCBkb2Vzbid0IGludGVyYWN0IHdpdGggem9uZXMuXG4gICAqIChkZWZhdWx0OiBudWxsKVxuICAgKi9cbiAgZXhlY3V0aW9uU3RyYXRlZ3k6IFR5cGU8Tmd4c0V4ZWN1dGlvblN0cmF0ZWd5PiA9IERpc3BhdGNoT3V0c2lkZVpvbmVOZ3hzRXhlY3V0aW9uU3RyYXRlZ3k7XG4gIC8qKlxuICAgKiBEZWZpbmluZyBzaGFyZWQgc2VsZWN0b3Igb3B0aW9uc1xuICAgKi9cbiAgc2VsZWN0b3JPcHRpb25zOiDJtVNoYXJlZFNlbGVjdG9yT3B0aW9ucyA9IHtcbiAgICBpbmplY3RDb250YWluZXJTdGF0ZTogZmFsc2UsXG4gICAgc3VwcHJlc3NFcnJvcnM6IGZhbHNlXG4gIH07XG59XG5cbmV4cG9ydCB7IFN0YXRlT3BlcmF0b3IgfTtcblxuLyoqXG4gKiBTdGF0ZSBjb250ZXh0IHByb3ZpZGVkIHRvIHRoZSBhY3Rpb25zIGluIHRoZSBzdGF0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGF0ZUNvbnRleHQ8VD4ge1xuICAvKipcbiAgICogR2V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICAgKi9cbiAgZ2V0U3RhdGUoKTogVDtcblxuICAvKipcbiAgICogUmVzZXQgdGhlIHN0YXRlIHRvIGEgbmV3IHZhbHVlLlxuICAgKi9cbiAgc2V0U3RhdGUodmFsOiBUIHwgU3RhdGVPcGVyYXRvcjxUPik6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFBhdGNoIHRoZSBleGlzdGluZyBzdGF0ZSB3aXRoIHRoZSBwcm92aWRlZCB2YWx1ZS5cbiAgICovXG4gIHBhdGNoU3RhdGUodmFsOiBQYXJ0aWFsPFQ+KTogdm9pZDtcblxuICAvKipcbiAgICogRGlzcGF0Y2ggYSBuZXcgYWN0aW9uIGFuZCByZXR1cm4gdGhlIGRpc3BhdGNoZWQgb2JzZXJ2YWJsZS5cbiAgICovXG4gIGRpc3BhdGNoKGFjdGlvbnM6IGFueSB8IGFueVtdKTogT2JzZXJ2YWJsZTx2b2lkPjtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgYmFzaWMgY2hhbmdlIGZyb20gYSBwcmV2aW91cyB0byBhIG5ldyB2YWx1ZSBmb3IgYSBzaW5nbGUgc3RhdGUgaW5zdGFuY2UuXG4gKiBQYXNzZWQgYXMgYSB2YWx1ZSBpbiBhIE5neHNTaW1wbGVDaGFuZ2VzIG9iamVjdCB0byB0aGUgbmd4c09uQ2hhbmdlcyBob29rLlxuICovXG5leHBvcnQgY2xhc3MgTmd4c1NpbXBsZUNoYW5nZTxUID0gYW55PiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBwcmV2aW91c1ZhbHVlOiBULFxuICAgIHB1YmxpYyByZWFkb25seSBjdXJyZW50VmFsdWU6IFQsXG4gICAgcHVibGljIHJlYWRvbmx5IGZpcnN0Q2hhbmdlOiBib29sZWFuXG4gICkge31cbn1cblxuLyoqXG4gKiBPbiBpbml0IGludGVyZmFjZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5neHNPbkluaXQge1xuICBuZ3hzT25Jbml0KGN0eDogU3RhdGVDb250ZXh0PGFueT4pOiB2b2lkO1xufVxuXG4vKipcbiAqIE9uIGNoYW5nZSBpbnRlcmZhY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZ3hzT25DaGFuZ2VzIHtcbiAgbmd4c09uQ2hhbmdlcyhjaGFuZ2U6IE5neHNTaW1wbGVDaGFuZ2UpOiB2b2lkO1xufVxuXG4vKipcbiAqIEFmdGVyIGJvb3RzdHJhcCBpbnRlcmZhY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZ3hzQWZ0ZXJCb290c3RyYXAge1xuICBuZ3hzQWZ0ZXJCb290c3RyYXAoY3R4OiBTdGF0ZUNvbnRleHQ8YW55Pik6IHZvaWQ7XG59XG5cbmV4cG9ydCB0eXBlIE5neHNNb2R1bGVPcHRpb25zID0gUGFydGlhbDxOZ3hzQ29uZmlnPjtcblxuLyoqIEBpbnRlcm5hbCAqL1xuZGVjbGFyZSBnbG9iYWwge1xuICBjb25zdCBuZ0Rldk1vZGU6IGJvb2xlYW47XG59XG4iXX0=
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL3NyYy9zeW1ib2xzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFRLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU96RSxPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSwyREFBMkQsQ0FBQzs7QUFFckgsc0VBQXNFO0FBQ3RFLHdFQUF3RTtBQUN4RSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGNBQWMsQ0FDaEQsT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDeEUsQ0FBQztBQUVGLHNFQUFzRTtBQUN0RSwrRUFBK0U7QUFDL0UsK0VBQStFO0FBQy9FLGdDQUFnQztBQUNoQyxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLGNBQWMsQ0FDbkQsT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDM0UsQ0FBQztBQUVGLHlFQUF5RTtBQUN6RSwrREFBK0Q7QUFDL0QsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLElBQUksY0FBYyxDQUM1QyxPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDcEUsQ0FBQztBQU1GOztHQUVHO0FBZ0JILE1BQU0sT0FBTyxVQUFVO0lBZnZCO1FBMEJFLGtCQUFhLEdBT1Q7WUFDRiwyQkFBMkIsRUFBRSxLQUFLO1NBQ25DLENBQUM7UUFDRjs7Ozs7Ozs7OztXQVVHO1FBQ0gsc0JBQWlCLEdBQWdDLHdDQUF3QyxDQUFDO1FBQzFGOztXQUVHO1FBQ0gsb0JBQWUsR0FBMkI7WUFDeEMsb0JBQW9CLEVBQUUsS0FBSztZQUMzQixjQUFjLEVBQUUsS0FBSztTQUN0QixDQUFDO0tBQ0g7aUlBeENZLFVBQVU7cUlBQVYsVUFBVSxjQWRULE1BQU0sY0FDTixHQUFlLEVBQUU7WUFDM0IsTUFBTSxhQUFhLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUN2QyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDcEMsT0FBTztnQkFDTCxHQUFHLGFBQWE7Z0JBQ2hCLEdBQUcsTUFBTTtnQkFDVCxlQUFlLEVBQUU7b0JBQ2YsR0FBRyxhQUFhLENBQUMsZUFBZTtvQkFDaEMsR0FBRyxNQUFNLENBQUMsZUFBZTtpQkFDMUI7YUFDRixDQUFDO1FBQ0osQ0FBQzs7MkZBRVUsVUFBVTtrQkFmdEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtvQkFDbEIsVUFBVSxFQUFFLEdBQWUsRUFBRTt3QkFDM0IsTUFBTSxhQUFhLEdBQUcsZ0JBQWdCLENBQUM7d0JBQ3ZDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQzt3QkFDcEMsT0FBTzs0QkFDTCxHQUFHLGFBQWE7NEJBQ2hCLEdBQUcsTUFBTTs0QkFDVCxlQUFlLEVBQUU7Z0NBQ2YsR0FBRyxhQUFhLENBQUMsZUFBZTtnQ0FDaEMsR0FBRyxNQUFNLENBQUMsZUFBZTs2QkFDMUI7eUJBQ0YsQ0FBQztvQkFDSixDQUFDO2lCQUNGOztBQXNFRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLFlBQ2tCLGFBQWdCLEVBQ2hCLFlBQWUsRUFDZixXQUFvQjtRQUZwQixrQkFBYSxHQUFiLGFBQWEsQ0FBRztRQUNoQixpQkFBWSxHQUFaLFlBQVksQ0FBRztRQUNmLGdCQUFXLEdBQVgsV0FBVyxDQUFTO0lBQ25DLENBQUM7Q0FDTCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdGlvblRva2VuLCBUeXBlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU3RhdGVPcGVyYXRvciB9IGZyb20gJ0BuZ3hzL3N0b3JlL29wZXJhdG9ycyc7XG5pbXBvcnQgeyDJtVNoYXJlZFNlbGVjdG9yT3B0aW9ucywgybVTdGF0ZUNsYXNzIH0gZnJvbSAnQG5neHMvc3RvcmUvaW50ZXJuYWxzJztcblxuaW1wb3J0IHsgTmd4c0V4ZWN1dGlvblN0cmF0ZWd5IH0gZnJvbSAnLi9leGVjdXRpb24vc3ltYm9scyc7XG5pbXBvcnQgeyBEaXNwYXRjaE91dHNpZGVab25lTmd4c0V4ZWN1dGlvblN0cmF0ZWd5IH0gZnJvbSAnLi9leGVjdXRpb24vZGlzcGF0Y2gtb3V0c2lkZS16b25lLW5neHMtZXhlY3V0aW9uLXN0cmF0ZWd5JztcblxuLy8gVGhlIGluamVjdGlvbiB0b2tlbiBpcyB1c2VkIHRvIHJlc29sdmUgYSBsaXN0IG9mIHN0YXRlcyBwcm92aWRlZCBhdFxuLy8gdGhlIHJvb3QgbGV2ZWwgdGhyb3VnaCBlaXRoZXIgYE5neHNNb2R1bGUuZm9yUm9vdGAgb3IgYHByb3ZpZGVTdG9yZWAuXG5leHBvcnQgY29uc3QgUk9PVF9TVEFURV9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBcnJheTzJtVN0YXRlQ2xhc3M+PihcbiAgdHlwZW9mIG5nRGV2TW9kZSAhPT0gJ3VuZGVmaW5lZCcgJiYgbmdEZXZNb2RlID8gJ1JPT1RfU1RBVEVfVE9LRU4nIDogJydcbik7XG5cbi8vIFRoZSBpbmplY3Rpb24gdG9rZW4gaXMgdXNlZCB0byByZXNvbHZlIGEgbGlzdCBvZiBzdGF0ZXMgcHJvdmlkZWQgYXRcbi8vIHRoZSBmZWF0dXJlIGxldmVsIHRocm91Z2ggZWl0aGVyIGBOZ3hzTW9kdWxlLmZvckZlYXR1cmVgIG9yIGBwcm92aWRlU3RhdGVzYC5cbi8vIFRoZSBBcnJheTxBcnJheT4gaXMgdXNlZCB0byBvdmVybG9hZCB0aGUgcmVzb2x2ZWQgdmFsdWUgb2YgdGhlIHRva2VuIGJlY2F1c2Vcbi8vIGl0IGlzIGEgbXVsdGktcHJvdmlkZXIgdG9rZW4uXG5leHBvcnQgY29uc3QgRkVBVFVSRV9TVEFURV9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBcnJheTxBcnJheTzJtVN0YXRlQ2xhc3M+Pj4oXG4gIHR5cGVvZiBuZ0Rldk1vZGUgIT09ICd1bmRlZmluZWQnICYmIG5nRGV2TW9kZSA/ICdGRUFUVVJFX1NUQVRFX1RPS0VOJyA6ICcnXG4pO1xuXG4vLyBUaGUgaW5qZWN0aW9uIHRva2VuIGlzIHVzZWQgdG8gcmVzb2x2ZSB0byBvcHRpb25zIHByb3ZpZGVkIGF0IHRoZSByb290XG4vLyBsZXZlbCB0aHJvdWdoIGVpdGhlciBgTmd4c01vZHVsZS5mb3JSb290YCBvciBgcHJvdmlkZVN0b3JlYC5cbmV4cG9ydCBjb25zdCBOR1hTX09QVElPTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW48Tmd4c01vZHVsZU9wdGlvbnM+KFxuICB0eXBlb2YgbmdEZXZNb2RlICE9PSAndW5kZWZpbmVkJyAmJiBuZ0Rldk1vZGUgPyAnTkdYU19PUFRJT05TJyA6ICcnXG4pO1xuXG5leHBvcnQgdHlwZSBOZ3hzTGlmZUN5Y2xlID0gUGFydGlhbDxOZ3hzT25DaGFuZ2VzPiAmXG4gIFBhcnRpYWw8Tmd4c09uSW5pdD4gJlxuICBQYXJ0aWFsPE5neHNBZnRlckJvb3RzdHJhcD47XG5cbi8qKlxuICogVGhlIE5HWFMgY29uZmlnIHNldHRpbmdzLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290JyxcbiAgdXNlRmFjdG9yeTogKCk6IE5neHNDb25maWcgPT4ge1xuICAgIGNvbnN0IGRlZmF1bHRDb25maWcgPSBuZXcgTmd4c0NvbmZpZygpO1xuICAgIGNvbnN0IGNvbmZpZyA9IGluamVjdChOR1hTX09QVElPTlMpO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5kZWZhdWx0Q29uZmlnLFxuICAgICAgLi4uY29uZmlnLFxuICAgICAgc2VsZWN0b3JPcHRpb25zOiB7XG4gICAgICAgIC4uLmRlZmF1bHRDb25maWcuc2VsZWN0b3JPcHRpb25zLFxuICAgICAgICAuLi5jb25maWcuc2VsZWN0b3JPcHRpb25zXG4gICAgICB9XG4gICAgfTtcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBOZ3hzQ29uZmlnIHtcbiAgLyoqXG4gICAqIFJ1biBpbiBkZXZlbG9wbWVudCBtb2RlLiBUaGlzIHdpbGwgYWRkIGFkZGl0aW9uYWwgZGVidWdnaW5nIGZlYXR1cmVzOlxuICAgKiAtIE9iamVjdC5mcmVlemUgb24gdGhlIHN0YXRlIGFuZCBhY3Rpb25zIHRvIGd1YXJhbnRlZSBpbW11dGFiaWxpdHlcbiAgICogKGRlZmF1bHQ6IGZhbHNlKVxuICAgKlxuICAgKiBOb3RlOiB0aGlzIHByb3BlcnR5IHdpbGwgYmUgYWNjb3VudGVkIG9ubHkgaW4gZGV2ZWxvcG1lbnQgbW9kZS5cbiAgICogSXQgbWFrZXMgc2Vuc2UgdG8gdXNlIGl0IG9ubHkgZHVyaW5nIGRldmVsb3BtZW50IHRvIGVuc3VyZSB0aGVyZSdyZSBubyBzdGF0ZSBtdXRhdGlvbnMuXG4gICAqIFdoZW4gYnVpbGRpbmcgZm9yIHByb2R1Y3Rpb24sIHRoZSBgT2JqZWN0LmZyZWV6ZWAgd2lsbCBiZSB0cmVlLXNoYWtlbiBhd2F5LlxuICAgKi9cbiAgZGV2ZWxvcG1lbnRNb2RlOiBib29sZWFuO1xuICBjb21wYXRpYmlsaXR5OiB7XG4gICAgLyoqXG4gICAgICogU3VwcG9ydCBhIHN0cmljdCBDb250ZW50IFNlY3VyaXR5IFBvbGljeS5cbiAgICAgKiBUaGlzIHdpbGwgY2lyY3VtdmVudCBzb21lIG9wdGltaXNhdGlvbnMgdGhhdCB2aW9sYXRlIGEgc3RyaWN0IENTUCB0aHJvdWdoIHRoZSB1c2Ugb2YgYG5ldyBGdW5jdGlvbiguLi4pYC5cbiAgICAgKiAoZGVmYXVsdDogZmFsc2UpXG4gICAgICovXG4gICAgc3RyaWN0Q29udGVudFNlY3VyaXR5UG9saWN5OiBib29sZWFuO1xuICB9ID0ge1xuICAgIHN0cmljdENvbnRlbnRTZWN1cml0eVBvbGljeTogZmFsc2VcbiAgfTtcbiAgLyoqXG4gICAqIERldGVybWluZXMgdGhlIGV4ZWN1dGlvbiBjb250ZXh0IHRvIHBlcmZvcm0gYXN5bmMgb3BlcmF0aW9ucyBpbnNpZGUuIEFuIGltcGxlbWVudGF0aW9uIGNhbiBiZVxuICAgKiBwcm92aWRlZCB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBiZWhhdmlvdXIgd2hlcmUgdGhlIGFzeW5jIG9wZXJhdGlvbnMgYXJlIHJ1blxuICAgKiBvdXRzaWRlIEFuZ3VsYXIncyB6b25lIGJ1dCBhbGwgb2JzZXJ2YWJsZSBiZWhhdmlvdXJzIG9mIE5HWFMgYXJlIHJ1biBiYWNrIGluc2lkZSBBbmd1bGFyJ3Mgem9uZS5cbiAgICogVGhlc2Ugb2JzZXJ2YWJsZSBiZWhhdmlvdXJzIGFyZSBmcm9tOlxuICAgKiAgIGBzdG9yZS5zZWxlY3RTaWduYWwoLi4uKWAsIGBzdG9yZS5zZWxlY3QoLi4uKWAsIGBhY3Rpb25zLnN1YnNjcmliZSguLi4pYCBvciBgc3RvcmUuZGlzcGF0Y2goLi4uKS5zdWJzY3JpYmUoLi4uKWBcbiAgICogRXZlcnkgYHpvbmUucnVuYCBjYXVzZXMgQW5ndWxhciB0byBydW4gY2hhbmdlIGRldGVjdGlvbiBvbiB0aGUgd2hvbGUgdHJlZSAoYGFwcC50aWNrKClgKSBzbyBvZiB5b3VyXG4gICAqIGFwcGxpY2F0aW9uIGRvZXNuJ3QgcmVseSBvbiB6b25lLmpzIHJ1bm5pbmcgY2hhbmdlIGRldGVjdGlvbiB0aGVuIHlvdSBjYW4gc3dpdGNoIHRvIHRoZVxuICAgKiBgTm9vcE5neHNFeGVjdXRpb25TdHJhdGVneWAgdGhhdCBkb2Vzbid0IGludGVyYWN0IHdpdGggem9uZXMuXG4gICAqIChkZWZhdWx0OiBudWxsKVxuICAgKi9cbiAgZXhlY3V0aW9uU3RyYXRlZ3k6IFR5cGU8Tmd4c0V4ZWN1dGlvblN0cmF0ZWd5PiA9IERpc3BhdGNoT3V0c2lkZVpvbmVOZ3hzRXhlY3V0aW9uU3RyYXRlZ3k7XG4gIC8qKlxuICAgKiBEZWZpbmluZyBzaGFyZWQgc2VsZWN0b3Igb3B0aW9uc1xuICAgKi9cbiAgc2VsZWN0b3JPcHRpb25zOiDJtVNoYXJlZFNlbGVjdG9yT3B0aW9ucyA9IHtcbiAgICBpbmplY3RDb250YWluZXJTdGF0ZTogZmFsc2UsXG4gICAgc3VwcHJlc3NFcnJvcnM6IGZhbHNlXG4gIH07XG59XG5cbmV4cG9ydCB7IFN0YXRlT3BlcmF0b3IgfTtcblxuLyoqXG4gKiBTdGF0ZSBjb250ZXh0IHByb3ZpZGVkIHRvIHRoZSBhY3Rpb25zIGluIHRoZSBzdGF0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGF0ZUNvbnRleHQ8VD4ge1xuICAvKipcbiAgICogR2V0IHRoZSBjdXJyZW50IHN0YXRlLlxuICAgKi9cbiAgZ2V0U3RhdGUoKTogVDtcblxuICAvKipcbiAgICogUmVzZXQgdGhlIHN0YXRlIHRvIGEgbmV3IHZhbHVlLlxuICAgKi9cbiAgc2V0U3RhdGUodmFsOiBUIHwgU3RhdGVPcGVyYXRvcjxUPik6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIFBhdGNoIHRoZSBleGlzdGluZyBzdGF0ZSB3aXRoIHRoZSBwcm92aWRlZCB2YWx1ZS5cbiAgICovXG4gIHBhdGNoU3RhdGUodmFsOiBQYXJ0aWFsPFQ+KTogdm9pZDtcblxuICAvKipcbiAgICogRGlzcGF0Y2ggYSBuZXcgYWN0aW9uIGFuZCByZXR1cm4gdGhlIGRpc3BhdGNoZWQgb2JzZXJ2YWJsZS5cbiAgICovXG4gIGRpc3BhdGNoKGFjdGlvbnM6IGFueSB8IGFueVtdKTogT2JzZXJ2YWJsZTx2b2lkPjtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgYmFzaWMgY2hhbmdlIGZyb20gYSBwcmV2aW91cyB0byBhIG5ldyB2YWx1ZSBmb3IgYSBzaW5nbGUgc3RhdGUgaW5zdGFuY2UuXG4gKiBQYXNzZWQgYXMgYSB2YWx1ZSBpbiBhIE5neHNTaW1wbGVDaGFuZ2VzIG9iamVjdCB0byB0aGUgbmd4c09uQ2hhbmdlcyBob29rLlxuICovXG5leHBvcnQgY2xhc3MgTmd4c1NpbXBsZUNoYW5nZTxUID0gYW55PiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBwcmV2aW91c1ZhbHVlOiBULFxuICAgIHB1YmxpYyByZWFkb25seSBjdXJyZW50VmFsdWU6IFQsXG4gICAgcHVibGljIHJlYWRvbmx5IGZpcnN0Q2hhbmdlOiBib29sZWFuXG4gICkge31cbn1cblxuLyoqXG4gKiBPbiBpbml0IGludGVyZmFjZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5neHNPbkluaXQge1xuICBuZ3hzT25Jbml0KGN0eDogU3RhdGVDb250ZXh0PGFueT4pOiB2b2lkO1xufVxuXG4vKipcbiAqIE9uIGNoYW5nZSBpbnRlcmZhY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZ3hzT25DaGFuZ2VzIHtcbiAgbmd4c09uQ2hhbmdlcyhjaGFuZ2U6IE5neHNTaW1wbGVDaGFuZ2UpOiB2b2lkO1xufVxuXG4vKipcbiAqIEFmdGVyIGJvb3RzdHJhcCBpbnRlcmZhY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZ3hzQWZ0ZXJCb290c3RyYXAge1xuICBuZ3hzQWZ0ZXJCb290c3RyYXAoY3R4OiBTdGF0ZUNvbnRleHQ8YW55Pik6IHZvaWQ7XG59XG5cbmV4cG9ydCB0eXBlIE5neHNNb2R1bGVPcHRpb25zID0gUGFydGlhbDxOZ3hzQ29uZmlnPjtcblxuLyoqIEBpbnRlcm5hbCAqL1xuZGVjbGFyZSBnbG9iYWwge1xuICBjb25zdCBuZ0Rldk1vZGU6IGJvb2xlYW47XG59XG4iXX0=
@@ -129,7 +129,6 @@ class StateToken {
129
129
  }
130
130
  }
131
131
 
132
- const NG_DEV_MODE$1 = typeof ngDevMode !== 'undefined' && ngDevMode;
133
132
  class ɵInitialState {
134
133
  static { this._value = {}; }
135
134
  static set(state) {
@@ -141,7 +140,7 @@ class ɵInitialState {
141
140
  return state;
142
141
  }
143
142
  }
144
- const ɵINITIAL_STATE_TOKEN = new InjectionToken(NG_DEV_MODE$1 ? 'INITIAL_STATE_TOKEN' : '', {
143
+ const ɵINITIAL_STATE_TOKEN = new InjectionToken(typeof ngDevMode !== 'undefined' && ngDevMode ? 'INITIAL_STATE_TOKEN' : '', {
145
144
  providedIn: 'root',
146
145
  factory: () => ɵInitialState.pop()
147
146
  });
@@ -162,10 +161,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImpor
162
161
  args: [{ providedIn: 'root' }]
163
162
  }], ctorParameters: () => [] });
164
163
 
165
- const NG_DEV_MODE = typeof ngDevMode !== 'undefined' && ngDevMode;
166
164
  // These tokens are internal and can change at any point.
167
- const ɵNGXS_STATE_FACTORY = /* @__PURE__ */ new InjectionToken(NG_DEV_MODE ? 'ɵNGXS_STATE_FACTORY' : '');
168
- const ɵNGXS_STATE_CONTEXT_FACTORY = /* @__PURE__ */ new InjectionToken(NG_DEV_MODE ? 'ɵNGXS_STATE_CONTEXT_FACTORY' : '');
165
+ const ɵNGXS_STATE_FACTORY = /* @__PURE__ */ new InjectionToken(typeof ngDevMode !== 'undefined' && ngDevMode ? 'ɵNGXS_STATE_FACTORY' : '');
166
+ const ɵNGXS_STATE_CONTEXT_FACTORY = /* @__PURE__ */ new InjectionToken(typeof ngDevMode !== 'undefined' && ngDevMode ? 'ɵNGXS_STATE_CONTEXT_FACTORY' : '');
169
167
 
170
168
  /**
171
169
  * This wraps the provided function, and will enforce the following:
@@ -1 +1 @@
1
- {"version":3,"file":"ngxs-store-internals.mjs","sources":["../../../packages/store/internals/src/symbols.ts","../../../packages/store/internals/src/metadata.ts","../../../packages/store/internals/src/memoize.ts","../../../packages/store/internals/src/state-token.ts","../../../packages/store/internals/src/initial-state.ts","../../../packages/store/internals/src/ngxs-app-bootstrapped-state.ts","../../../packages/store/internals/src/internal-tokens.ts","../../../packages/store/internals/src/custom-rxjs-subjects.ts","../../../packages/store/internals/src/custom-rxjs-operators.ts","../../../packages/store/internals/src/state-stream.ts","../../../packages/store/internals/src/ngxs-store-internals.ts"],"sourcesContent":["import type { StateToken } from './state-token';\n\nexport interface ɵPlainObject {\n [key: string]: any;\n}\n\nexport interface ɵPlainObjectOf<T> {\n [key: string]: T;\n}\n\nexport type ɵStateClass<T = any> = new (...args: any[]) => T;\n\n// This key is used to store metadata on state classes,\n// such as actions and other related information.\nexport const ɵMETA_KEY = 'NGXS_META';\n// This key is used to store options on state classes\n// provided through the `@State` decorator.\nexport const ɵMETA_OPTIONS_KEY = 'NGXS_OPTIONS_META';\n// This key is used to store selector metadata on selector functions,\n// such as decorated with the `@Selector` or provided through the\n// `createSelector` function.\nexport const ɵSELECTOR_META_KEY = 'NGXS_SELECTOR_META';\n\nexport interface ɵStateToken<T, U> {\n new (name: ɵTokenName<T>): U;\n getName(): string;\n toString(): string;\n}\n\ntype RequireGeneric<T, U> = T extends void ? 'You must provide a type parameter' : U;\n\nexport type ɵTokenName<T> = string & RequireGeneric<T, string>;\n\nexport type ɵExtractTokenType<P> = P extends StateToken<infer T> ? T : never;\n\n/**\n * Options that can be provided to the store.\n */\nexport interface ɵStoreOptions<T> {\n /**\n * Name of the state. Required.\n */\n name: string | StateToken<T>;\n\n /**\n * Default values for the state. If not provided, uses empty object.\n */\n defaults?: T;\n\n /**\n * Sub states for the given state.\n *\n * @deprecated\n * Read the deprecation notice at this link: https://ngxs.io/deprecations/sub-states-deprecation.\n */\n children?: ɵStateClass[];\n}\n\n// inspired from https://stackoverflow.com/a/43674389\nexport interface ɵStateClassInternal<T = any, U = any> extends ɵStateClass<T> {\n [ɵMETA_KEY]?: ɵMetaDataModel;\n [ɵMETA_OPTIONS_KEY]?: ɵStoreOptions<U>;\n}\n\nexport interface ɵMetaDataModel {\n name: string | null;\n actions: ɵPlainObjectOf<ɵActionHandlerMetaData[]>;\n defaults: any;\n path: string | null;\n makeRootSelector: ɵSelectorFactory | null;\n /** @deprecated */\n children?: ɵStateClassInternal[];\n}\n\nexport interface ɵSelectorMetaDataModel {\n makeRootSelector: ɵSelectorFactory | null;\n originalFn: Function | null;\n containerClass: any;\n selectorName: string | null;\n getSelectorOptions: () => ɵSharedSelectorOptions;\n}\n\nexport interface ɵSharedSelectorOptions {\n /**\n * @deprecated\n * Read the deprecation notice at this link: https://ngxs.io/deprecations/inject-container-state-deprecation.md.\n */\n injectContainerState?: boolean;\n suppressErrors?: boolean;\n}\n\nexport interface ɵRuntimeSelectorContext {\n getStateGetter(key: any): (state: any) => any;\n getSelectorOptions(localOptions?: ɵSharedSelectorOptions): ɵSharedSelectorOptions;\n}\n\nexport type ɵSelectFromRootState = (rootState: any) => any;\nexport type ɵSelectorFactory = (\n runtimeContext: ɵRuntimeSelectorContext\n) => ɵSelectFromRootState;\n\n/**\n * Actions that can be provided in a action decorator.\n */\nexport interface ɵActionOptions {\n /**\n * Cancel the previous uncompleted observable(s).\n */\n cancelUncompleted?: boolean;\n}\n\nexport interface ɵActionHandlerMetaData {\n fn: string | symbol;\n options: ɵActionOptions;\n type: string;\n}\n","import {\n ɵMETA_KEY,\n ɵSELECTOR_META_KEY,\n ɵMetaDataModel,\n ɵStateClassInternal,\n ɵSelectorMetaDataModel,\n ɵRuntimeSelectorContext\n} from './symbols';\n\n/**\n * Ensures metadata is attached to the class and returns it.\n *\n * @ignore\n */\nexport function ɵensureStoreMetadata(target: ɵStateClassInternal): ɵMetaDataModel {\n if (!target.hasOwnProperty(ɵMETA_KEY)) {\n const defaultMetadata: ɵMetaDataModel = {\n name: null,\n actions: {},\n defaults: {},\n path: null,\n makeRootSelector(context: ɵRuntimeSelectorContext) {\n return context.getStateGetter(defaultMetadata.name);\n },\n children: []\n };\n\n Object.defineProperty(target, ɵMETA_KEY, { value: defaultMetadata });\n }\n return ɵgetStoreMetadata(target);\n}\n\n/**\n * Get the metadata attached to the state class if it exists.\n *\n * @ignore\n */\nexport function ɵgetStoreMetadata(target: ɵStateClassInternal): ɵMetaDataModel {\n return target[ɵMETA_KEY]!;\n}\n\n/**\n * Ensures metadata is attached to the selector and returns it.\n *\n * @ignore\n */\nexport function ɵensureSelectorMetadata(target: Function): ɵSelectorMetaDataModel {\n if (!target.hasOwnProperty(ɵSELECTOR_META_KEY)) {\n const defaultMetadata: ɵSelectorMetaDataModel = {\n makeRootSelector: null,\n originalFn: null,\n containerClass: null,\n selectorName: null,\n getSelectorOptions: () => ({})\n };\n\n Object.defineProperty(target, ɵSELECTOR_META_KEY, { value: defaultMetadata });\n }\n\n return ɵgetSelectorMetadata(target);\n}\n\n/**\n * Get the metadata attached to the selector if it exists.\n *\n * @ignore\n */\nexport function ɵgetSelectorMetadata(target: any): ɵSelectorMetaDataModel {\n return target[ɵSELECTOR_META_KEY];\n}\n","function 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\n // 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 = Object.is\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 { ɵensureSelectorMetadata } from './metadata';\nimport type { ɵTokenName, ɵSelectFromRootState, ɵRuntimeSelectorContext } from './symbols';\n\nexport class StateToken<T = void> {\n constructor(private readonly _name: ɵTokenName<T>) {\n const selectorMetadata = ɵensureSelectorMetadata(<any>this);\n selectorMetadata.makeRootSelector = (\n runtimeContext: ɵRuntimeSelectorContext\n ): ɵSelectFromRootState => {\n return runtimeContext.getStateGetter(this._name);\n };\n }\n\n getName(): string {\n return this._name;\n }\n\n toString(): string {\n return `StateToken[${this._name}]`;\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nimport { ɵPlainObject } from './symbols';\n\ndeclare const ngDevMode: boolean;\n\nconst NG_DEV_MODE = typeof ngDevMode !== 'undefined' && ngDevMode;\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<ɵPlainObject>(\n NG_DEV_MODE ? 'INITIAL_STATE_TOKEN' : '',\n {\n providedIn: 'root',\n factory: () => ɵInitialState.pop()\n }\n);\n","import { Injectable } from '@angular/core';\nimport { ReplaySubject } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class ɵNgxsAppBootstrappedState extends ReplaySubject<boolean> {\n constructor() {\n super(1);\n }\n\n bootstrap(): void {\n this.next(true);\n this.complete();\n }\n}\n","import { InjectionToken } from '@angular/core';\n\ndeclare const ngDevMode: boolean;\n\nconst NG_DEV_MODE = typeof ngDevMode !== 'undefined' && ngDevMode;\n\n// These tokens are internal and can change at any point.\n\nexport const ɵNGXS_STATE_FACTORY = /* @__PURE__ */ new InjectionToken<any>(\n NG_DEV_MODE ? 'ɵNGXS_STATE_FACTORY' : ''\n);\n\nexport const ɵNGXS_STATE_CONTEXT_FACTORY = /* @__PURE__ */ new InjectionToken<any>(\n NG_DEV_MODE ? 'ɵNGXS_STATE_CONTEXT_FACTORY' : ''\n);\n","import { BehaviorSubject, Subject } from 'rxjs';\n\n/**\n * This wraps the provided function, and will enforce the following:\n * - The calls will execute in the order that they are made\n * - A call will only be initiated when the previous call has completed\n * - If there is a call currently executing then the new call will be added\n * to the queue and the function will return immediately\n *\n * NOTE: The following assumptions about the operation must hold true:\n * - The operation is synchronous in nature\n * - If any asynchronous side effects of the call exist, it should not\n * have any bearing on the correctness of the next call in the queue\n * - The operation has a void return\n * - The caller should not assume that the call has completed upon\n * return of the function\n * - The caller can assume that all the queued calls will complete\n * within the current microtask\n * - The only way that a call will encounter another call in the queue\n * would be if the call at the front of the queue initiated this call\n * as part of its synchronous execution\n */\nfunction orderedQueueOperation<TArgs extends any[]>(operation: (...args: TArgs) => void) {\n const callsQueue: TArgs[] = [];\n let busyPushingNext = false;\n return function callOperation(...args: TArgs) {\n if (busyPushingNext) {\n callsQueue.unshift(args);\n return;\n }\n busyPushingNext = true;\n operation(...args);\n while (callsQueue.length > 0) {\n const nextCallArgs = callsQueue.pop();\n nextCallArgs && operation(...nextCallArgs);\n }\n busyPushingNext = false;\n };\n}\n\n/**\n * Custom Subject that ensures that subscribers are notified of values in the order that they arrived.\n * A standard Subject does not have this guarantee.\n * For example, given the following code:\n * ```typescript\n * const subject = new Subject<string>();\n subject.subscribe(value => {\n if (value === 'start') subject.next('end');\n });\n subject.subscribe(value => { });\n subject.next('start');\n * ```\n * When `subject` is a standard `Subject<T>` the second subscriber would recieve `end` and then `start`.\n * When `subject` is a `OrderedSubject<T>` the second subscriber would recieve `start` and then `end`.\n */\nexport class ɵOrderedSubject<T> extends Subject<T> {\n private _orderedNext = orderedQueueOperation((value?: T) => super.next(<T>value));\n\n next(value?: T): void {\n this._orderedNext(value);\n }\n}\n\n/**\n * Custom BehaviorSubject that ensures that subscribers are notified of values in the order that they arrived.\n * A standard BehaviorSubject does not have this guarantee.\n * For example, given the following code:\n * ```typescript\n * const subject = new BehaviorSubject<string>();\n subject.subscribe(value => {\n if (value === 'start') subject.next('end');\n });\n subject.subscribe(value => { });\n subject.next('start');\n * ```\n * When `subject` is a standard `BehaviorSubject<T>` the second subscriber would recieve `end` and then `start`.\n * When `subject` is a `OrderedBehaviorSubject<T>` the second subscriber would recieve `start` and then `end`.\n */\nexport class ɵOrderedBehaviorSubject<T> extends BehaviorSubject<T> {\n private _orderedNext = orderedQueueOperation((value: T) => super.next(value));\n private _currentValue: T;\n\n constructor(value: T) {\n super(value);\n this._currentValue = value;\n }\n\n getValue(): T {\n return this._currentValue;\n }\n\n next(value: T): void {\n this._currentValue = value;\n this._orderedNext(value);\n }\n}\n","import { MonoTypeOperatorFunction, Observable } from 'rxjs';\n\nexport function ɵwrapObserverCalls<TValue>(\n invokeFn: (fn: () => void) => void\n): MonoTypeOperatorFunction<TValue> {\n return (source: Observable<TValue>) => {\n return new Observable<TValue>(subscriber => {\n return source.subscribe({\n next(value) {\n invokeFn(() => subscriber.next(value));\n },\n error(error) {\n invokeFn(() => subscriber.error(error));\n },\n complete() {\n invokeFn(() => subscriber.complete());\n }\n });\n });\n };\n}\n","import { Injectable, OnDestroy, Signal, untracked } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\nimport { ɵwrapObserverCalls } from './custom-rxjs-operators';\nimport { ɵOrderedBehaviorSubject } from './custom-rxjs-subjects';\nimport { ɵPlainObject } from './symbols';\n\n/**\n * BehaviorSubject of the entire state.\n * @ignore\n */\n@Injectable({ providedIn: 'root' })\nexport class ɵStateStream extends ɵOrderedBehaviorSubject<ɵPlainObject> implements OnDestroy {\n readonly state: Signal<ɵPlainObject> = toSignal(this.pipe(ɵwrapObserverCalls(untracked)), {\n manualCleanup: true,\n requireSync: true\n });\n\n constructor() {\n super({});\n }\n\n ngOnDestroy(): void {\n // The StateStream should never emit values once the root view is removed,\n // such as when the `NgModuleRef.destroy()` method is called. This is crucial\n // for preventing memory leaks in server-side rendered apps, where a new StateStream\n // is created for each HTTP request. If users forget to unsubscribe from `store.select`\n // or `store.subscribe`, it can result in significant memory leaks in SSR apps.\n this.complete();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["NG_DEV_MODE"],"mappings":"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"}
1
+ {"version":3,"file":"ngxs-store-internals.mjs","sources":["../../../packages/store/internals/src/symbols.ts","../../../packages/store/internals/src/metadata.ts","../../../packages/store/internals/src/memoize.ts","../../../packages/store/internals/src/state-token.ts","../../../packages/store/internals/src/initial-state.ts","../../../packages/store/internals/src/ngxs-app-bootstrapped-state.ts","../../../packages/store/internals/src/internal-tokens.ts","../../../packages/store/internals/src/custom-rxjs-subjects.ts","../../../packages/store/internals/src/custom-rxjs-operators.ts","../../../packages/store/internals/src/state-stream.ts","../../../packages/store/internals/src/ngxs-store-internals.ts"],"sourcesContent":["import type { StateToken } from './state-token';\n\nexport interface ɵPlainObject {\n [key: string]: any;\n}\n\nexport interface ɵPlainObjectOf<T> {\n [key: string]: T;\n}\n\nexport type ɵStateClass<T = any> = new (...args: any[]) => T;\n\n// This key is used to store metadata on state classes,\n// such as actions and other related information.\nexport const ɵMETA_KEY = 'NGXS_META';\n// This key is used to store options on state classes\n// provided through the `@State` decorator.\nexport const ɵMETA_OPTIONS_KEY = 'NGXS_OPTIONS_META';\n// This key is used to store selector metadata on selector functions,\n// such as decorated with the `@Selector` or provided through the\n// `createSelector` function.\nexport const ɵSELECTOR_META_KEY = 'NGXS_SELECTOR_META';\n\nexport interface ɵStateToken<T, U> {\n new (name: ɵTokenName<T>): U;\n getName(): string;\n toString(): string;\n}\n\ntype RequireGeneric<T, U> = T extends void ? 'You must provide a type parameter' : U;\n\nexport type ɵTokenName<T> = string & RequireGeneric<T, string>;\n\nexport type ɵExtractTokenType<P> = P extends StateToken<infer T> ? T : never;\n\n/**\n * Options that can be provided to the store.\n */\nexport interface ɵStoreOptions<T> {\n /**\n * Name of the state. Required.\n */\n name: string | StateToken<T>;\n\n /**\n * Default values for the state. If not provided, uses empty object.\n */\n defaults?: T;\n\n /**\n * Sub states for the given state.\n *\n * @deprecated\n * Read the deprecation notice at this link: https://ngxs.io/deprecations/sub-states-deprecation.\n */\n children?: ɵStateClass[];\n}\n\n// inspired from https://stackoverflow.com/a/43674389\nexport interface ɵStateClassInternal<T = any, U = any> extends ɵStateClass<T> {\n [ɵMETA_KEY]?: ɵMetaDataModel;\n [ɵMETA_OPTIONS_KEY]?: ɵStoreOptions<U>;\n}\n\nexport interface ɵMetaDataModel {\n name: string | null;\n actions: ɵPlainObjectOf<ɵActionHandlerMetaData[]>;\n defaults: any;\n path: string | null;\n makeRootSelector: ɵSelectorFactory | null;\n /** @deprecated */\n children?: ɵStateClassInternal[];\n}\n\nexport interface ɵSelectorMetaDataModel {\n makeRootSelector: ɵSelectorFactory | null;\n originalFn: Function | null;\n containerClass: any;\n selectorName: string | null;\n getSelectorOptions: () => ɵSharedSelectorOptions;\n}\n\nexport interface ɵSharedSelectorOptions {\n /**\n * @deprecated\n * Read the deprecation notice at this link: https://ngxs.io/deprecations/inject-container-state-deprecation.md.\n */\n injectContainerState?: boolean;\n suppressErrors?: boolean;\n}\n\nexport interface ɵRuntimeSelectorContext {\n getStateGetter(key: any): (state: any) => any;\n getSelectorOptions(localOptions?: ɵSharedSelectorOptions): ɵSharedSelectorOptions;\n}\n\nexport type ɵSelectFromRootState = (rootState: any) => any;\nexport type ɵSelectorFactory = (\n runtimeContext: ɵRuntimeSelectorContext\n) => ɵSelectFromRootState;\n\n/**\n * Actions that can be provided in a action decorator.\n */\nexport interface ɵActionOptions {\n /**\n * Cancel the previous uncompleted observable(s).\n */\n cancelUncompleted?: boolean;\n}\n\nexport interface ɵActionHandlerMetaData {\n fn: string | symbol;\n options: ɵActionOptions;\n type: string;\n}\n","import {\n ɵMETA_KEY,\n ɵSELECTOR_META_KEY,\n ɵMetaDataModel,\n ɵStateClassInternal,\n ɵSelectorMetaDataModel,\n ɵRuntimeSelectorContext\n} from './symbols';\n\n/**\n * Ensures metadata is attached to the class and returns it.\n *\n * @ignore\n */\nexport function ɵensureStoreMetadata(target: ɵStateClassInternal): ɵMetaDataModel {\n if (!target.hasOwnProperty(ɵMETA_KEY)) {\n const defaultMetadata: ɵMetaDataModel = {\n name: null,\n actions: {},\n defaults: {},\n path: null,\n makeRootSelector(context: ɵRuntimeSelectorContext) {\n return context.getStateGetter(defaultMetadata.name);\n },\n children: []\n };\n\n Object.defineProperty(target, ɵMETA_KEY, { value: defaultMetadata });\n }\n return ɵgetStoreMetadata(target);\n}\n\n/**\n * Get the metadata attached to the state class if it exists.\n *\n * @ignore\n */\nexport function ɵgetStoreMetadata(target: ɵStateClassInternal): ɵMetaDataModel {\n return target[ɵMETA_KEY]!;\n}\n\n/**\n * Ensures metadata is attached to the selector and returns it.\n *\n * @ignore\n */\nexport function ɵensureSelectorMetadata(target: Function): ɵSelectorMetaDataModel {\n if (!target.hasOwnProperty(ɵSELECTOR_META_KEY)) {\n const defaultMetadata: ɵSelectorMetaDataModel = {\n makeRootSelector: null,\n originalFn: null,\n containerClass: null,\n selectorName: null,\n getSelectorOptions: () => ({})\n };\n\n Object.defineProperty(target, ɵSELECTOR_META_KEY, { value: defaultMetadata });\n }\n\n return ɵgetSelectorMetadata(target);\n}\n\n/**\n * Get the metadata attached to the selector if it exists.\n *\n * @ignore\n */\nexport function ɵgetSelectorMetadata(target: any): ɵSelectorMetaDataModel {\n return target[ɵSELECTOR_META_KEY];\n}\n","function 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\n // 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 = Object.is\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 { ɵensureSelectorMetadata } from './metadata';\nimport type { ɵTokenName, ɵSelectFromRootState, ɵRuntimeSelectorContext } from './symbols';\n\nexport class StateToken<T = void> {\n constructor(private readonly _name: ɵTokenName<T>) {\n const selectorMetadata = ɵensureSelectorMetadata(<any>this);\n selectorMetadata.makeRootSelector = (\n runtimeContext: ɵRuntimeSelectorContext\n ): ɵSelectFromRootState => {\n return runtimeContext.getStateGetter(this._name);\n };\n }\n\n getName(): string {\n return this._name;\n }\n\n toString(): string {\n return `StateToken[${this._name}]`;\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nimport { ɵPlainObject } from './symbols';\n\ndeclare const ngDevMode: boolean;\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<ɵPlainObject>(\n typeof ngDevMode !== 'undefined' && ngDevMode ? 'INITIAL_STATE_TOKEN' : '',\n {\n providedIn: 'root',\n factory: () => ɵInitialState.pop()\n }\n);\n","import { Injectable } from '@angular/core';\nimport { ReplaySubject } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class ɵNgxsAppBootstrappedState extends ReplaySubject<boolean> {\n constructor() {\n super(1);\n }\n\n bootstrap(): void {\n this.next(true);\n this.complete();\n }\n}\n","import { InjectionToken } from '@angular/core';\n\ndeclare const ngDevMode: boolean;\n\n// These tokens are internal and can change at any point.\n\nexport const ɵNGXS_STATE_FACTORY = /* @__PURE__ */ new InjectionToken<any>(\n typeof ngDevMode !== 'undefined' && ngDevMode ? 'ɵNGXS_STATE_FACTORY' : ''\n);\n\nexport const ɵNGXS_STATE_CONTEXT_FACTORY = /* @__PURE__ */ new InjectionToken<any>(\n typeof ngDevMode !== 'undefined' && ngDevMode ? 'ɵNGXS_STATE_CONTEXT_FACTORY' : ''\n);\n","import { BehaviorSubject, Subject } from 'rxjs';\n\n/**\n * This wraps the provided function, and will enforce the following:\n * - The calls will execute in the order that they are made\n * - A call will only be initiated when the previous call has completed\n * - If there is a call currently executing then the new call will be added\n * to the queue and the function will return immediately\n *\n * NOTE: The following assumptions about the operation must hold true:\n * - The operation is synchronous in nature\n * - If any asynchronous side effects of the call exist, it should not\n * have any bearing on the correctness of the next call in the queue\n * - The operation has a void return\n * - The caller should not assume that the call has completed upon\n * return of the function\n * - The caller can assume that all the queued calls will complete\n * within the current microtask\n * - The only way that a call will encounter another call in the queue\n * would be if the call at the front of the queue initiated this call\n * as part of its synchronous execution\n */\nfunction orderedQueueOperation<TArgs extends any[]>(operation: (...args: TArgs) => void) {\n const callsQueue: TArgs[] = [];\n let busyPushingNext = false;\n return function callOperation(...args: TArgs) {\n if (busyPushingNext) {\n callsQueue.unshift(args);\n return;\n }\n busyPushingNext = true;\n operation(...args);\n while (callsQueue.length > 0) {\n const nextCallArgs = callsQueue.pop();\n nextCallArgs && operation(...nextCallArgs);\n }\n busyPushingNext = false;\n };\n}\n\n/**\n * Custom Subject that ensures that subscribers are notified of values in the order that they arrived.\n * A standard Subject does not have this guarantee.\n * For example, given the following code:\n * ```typescript\n * const subject = new Subject<string>();\n subject.subscribe(value => {\n if (value === 'start') subject.next('end');\n });\n subject.subscribe(value => { });\n subject.next('start');\n * ```\n * When `subject` is a standard `Subject<T>` the second subscriber would recieve `end` and then `start`.\n * When `subject` is a `OrderedSubject<T>` the second subscriber would recieve `start` and then `end`.\n */\nexport class ɵOrderedSubject<T> extends Subject<T> {\n private _orderedNext = orderedQueueOperation((value?: T) => super.next(<T>value));\n\n next(value?: T): void {\n this._orderedNext(value);\n }\n}\n\n/**\n * Custom BehaviorSubject that ensures that subscribers are notified of values in the order that they arrived.\n * A standard BehaviorSubject does not have this guarantee.\n * For example, given the following code:\n * ```typescript\n * const subject = new BehaviorSubject<string>();\n subject.subscribe(value => {\n if (value === 'start') subject.next('end');\n });\n subject.subscribe(value => { });\n subject.next('start');\n * ```\n * When `subject` is a standard `BehaviorSubject<T>` the second subscriber would recieve `end` and then `start`.\n * When `subject` is a `OrderedBehaviorSubject<T>` the second subscriber would recieve `start` and then `end`.\n */\nexport class ɵOrderedBehaviorSubject<T> extends BehaviorSubject<T> {\n private _orderedNext = orderedQueueOperation((value: T) => super.next(value));\n private _currentValue: T;\n\n constructor(value: T) {\n super(value);\n this._currentValue = value;\n }\n\n getValue(): T {\n return this._currentValue;\n }\n\n next(value: T): void {\n this._currentValue = value;\n this._orderedNext(value);\n }\n}\n","import { MonoTypeOperatorFunction, Observable } from 'rxjs';\n\nexport function ɵwrapObserverCalls<TValue>(\n invokeFn: (fn: () => void) => void\n): MonoTypeOperatorFunction<TValue> {\n return (source: Observable<TValue>) => {\n return new Observable<TValue>(subscriber => {\n return source.subscribe({\n next(value) {\n invokeFn(() => subscriber.next(value));\n },\n error(error) {\n invokeFn(() => subscriber.error(error));\n },\n complete() {\n invokeFn(() => subscriber.complete());\n }\n });\n });\n };\n}\n","import { Injectable, OnDestroy, Signal, untracked } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\nimport { ɵwrapObserverCalls } from './custom-rxjs-operators';\nimport { ɵOrderedBehaviorSubject } from './custom-rxjs-subjects';\nimport { ɵPlainObject } from './symbols';\n\n/**\n * BehaviorSubject of the entire state.\n * @ignore\n */\n@Injectable({ providedIn: 'root' })\nexport class ɵStateStream extends ɵOrderedBehaviorSubject<ɵPlainObject> implements OnDestroy {\n readonly state: Signal<ɵPlainObject> = toSignal(this.pipe(ɵwrapObserverCalls(untracked)), {\n manualCleanup: true,\n requireSync: true\n });\n\n constructor() {\n super({});\n }\n\n ngOnDestroy(): void {\n // The StateStream should never emit values once the root view is removed,\n // such as when the `NgModuleRef.destroy()` method is called. This is crucial\n // for preventing memory leaks in server-side rendered apps, where a new StateStream\n // is created for each HTTP request. If users forget to unsubscribe from `store.select`\n // or `store.subscribe`, it can result in significant memory leaks in SSR apps.\n this.complete();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAYA;AACA;AACO,MAAM,SAAS,GAAG,YAAY;AACrC;AACA;AACO,MAAM,iBAAiB,GAAG,oBAAoB;AACrD;AACA;AACA;AACO,MAAM,kBAAkB,GAAG;;ACZlC;;;;AAIG;AACG,SAAU,oBAAoB,CAAC,MAA2B,EAAA;IAC9D,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;AACrC,QAAA,MAAM,eAAe,GAAmB;AACtC,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,QAAQ,EAAE,EAAE;AACZ,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,gBAAgB,CAAC,OAAgC,EAAA;gBAC/C,OAAO,OAAO,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;aACrD;AACD,YAAA,QAAQ,EAAE,EAAE;SACb,CAAC;AAEF,QAAA,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;KACtE;AACD,IAAA,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC;AAED;;;;AAIG;AACG,SAAU,iBAAiB,CAAC,MAA2B,EAAA;AAC3D,IAAA,OAAO,MAAM,CAAC,SAAS,CAAE,CAAC;AAC5B,CAAC;AAED;;;;AAIG;AACG,SAAU,uBAAuB,CAAC,MAAgB,EAAA;IACtD,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE;AAC9C,QAAA,MAAM,eAAe,GAA2B;AAC9C,YAAA,gBAAgB,EAAE,IAAI;AACtB,YAAA,UAAU,EAAE,IAAI;AAChB,YAAA,cAAc,EAAE,IAAI;AACpB,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,kBAAkB,EAAE,OAAO,EAAE,CAAC;SAC/B,CAAC;AAEF,QAAA,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,kBAAkB,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;KAC/E;AAED,IAAA,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC;AAED;;;;AAIG;AACG,SAAU,oBAAoB,CAAC,MAAW,EAAA;AAC9C,IAAA,OAAO,MAAM,CAAC,kBAAkB,CAAC,CAAC;AACpC;;ACrEA,SAAS,0BAA0B,CACjC,aAA0C,EAC1C,IAAuB,EACvB,IAAuB,EAAA;AAEvB,IAAA,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;AACjE,QAAA,OAAO,KAAK,CAAC;KACd;;;AAID,IAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAC3B,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;AACpC,YAAA,OAAO,KAAK,CAAC;SACd;KACF;AAED,IAAA,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;AAKG;AACG,SAAU,QAAQ,CACtB,IAAO,EACP,aAAa,GAAG,MAAM,CAAC,EAAE,EAAA;IAEzB,IAAI,QAAQ,GAAsB,IAAI,CAAC;IACvC,IAAI,UAAU,GAAQ,IAAI,CAAC;;AAE3B,IAAA,SAAS,QAAQ,GAAA;;QAEf,IAAI,CAAC,0BAA0B,CAAC,aAAa,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE;;;YAGnE,UAAU,GAAc,IAAK,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;SACtD;;QAED,QAAQ,GAAG,SAAS,CAAC;AACrB,QAAA,OAAO,UAAU,CAAC;KACnB;IACK,QAAS,CAAC,KAAK,GAAG,YAAA;;QAEtB,QAAQ,GAAG,IAAI,CAAC;QAChB,UAAU,GAAG,IAAI,CAAC;AACpB,KAAC,CAAC;AACF,IAAA,OAAO,QAAa,CAAC;AACvB;;MChDa,UAAU,CAAA;AACrB,IAAA,WAAA,CAA6B,KAAoB,EAAA;QAApB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAe;AAC/C,QAAA,MAAM,gBAAgB,GAAG,uBAAuB,CAAM,IAAI,CAAC,CAAC;AAC5D,QAAA,gBAAgB,CAAC,gBAAgB,GAAG,CAClC,cAAuC,KACf;YACxB,OAAO,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnD,SAAC,CAAC;KACH;IAED,OAAO,GAAA;QACL,OAAO,IAAI,CAAC,KAAK,CAAC;KACnB;IAED,QAAQ,GAAA;AACN,QAAA,OAAO,CAAc,WAAA,EAAA,IAAI,CAAC,KAAK,GAAG,CAAC;KACpC;AACF;;MCdY,aAAa,CAAA;aACT,IAAM,CAAA,MAAA,GAAiB,EAAE,CAAC,EAAA;IAEzC,OAAO,GAAG,CAAC,KAAmB,EAAA;AAC5B,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;KACrB;AAED,IAAA,OAAO,GAAG,GAAA;AACR,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;AAC1B,QAAA,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;AACjB,QAAA,OAAO,KAAK,CAAC;KACd;;MAGU,oBAAoB,GAAG,IAAI,cAAc,CACpD,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,GAAG,qBAAqB,GAAG,EAAE,EAC1E;AACE,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,OAAO,EAAE,MAAM,aAAa,CAAC,GAAG,EAAE;AACnC,CAAA;;ACrBG,MAAO,yBAA0B,SAAQ,aAAsB,CAAA;AACnE,IAAA,WAAA,GAAA;QACE,KAAK,CAAC,CAAC,CAAC,CAAC;KACV;IAED,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;iIARU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,uBAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,cADZ,MAAM,EAAA,CAAA,CAAA,EAAA;;2FACnB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBADrC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;ACClC;AAEa,MAAA,mBAAmB,mBAAmB,IAAI,cAAc,CACnE,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,GAAG,qBAAqB,GAAG,EAAE,EAC1E;AAEW,MAAA,2BAA2B,mBAAmB,IAAI,cAAc,CAC3E,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,GAAG,6BAA6B,GAAG,EAAE;;ACTpF;;;;;;;;;;;;;;;;;;;AAmBG;AACH,SAAS,qBAAqB,CAAsB,SAAmC,EAAA;IACrF,MAAM,UAAU,GAAY,EAAE,CAAC;IAC/B,IAAI,eAAe,GAAG,KAAK,CAAC;AAC5B,IAAA,OAAO,SAAS,aAAa,CAAC,GAAG,IAAW,EAAA;QAC1C,IAAI,eAAe,EAAE;AACnB,YAAA,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACzB,OAAO;SACR;QACD,eAAe,GAAG,IAAI,CAAC;AACvB,QAAA,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;AACnB,QAAA,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AAC5B,YAAA,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC;AACtC,YAAA,YAAY,IAAI,SAAS,CAAC,GAAG,YAAY,CAAC,CAAC;SAC5C;QACD,eAAe,GAAG,KAAK,CAAC;AAC1B,KAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;AAcG;AACG,MAAO,eAAmB,SAAQ,OAAU,CAAA;AAAlD,IAAA,WAAA,GAAA;;AACU,QAAA,IAAA,CAAA,YAAY,GAAG,qBAAqB,CAAC,CAAC,KAAS,KAAK,KAAK,CAAC,IAAI,CAAI,KAAK,CAAC,CAAC,CAAC;KAKnF;AAHC,IAAA,IAAI,CAAC,KAAS,EAAA;AACZ,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;KAC1B;AACF,CAAA;AAED;;;;;;;;;;;;;;AAcG;AACG,MAAO,uBAA2B,SAAQ,eAAkB,CAAA;AAIhE,IAAA,WAAA,CAAY,KAAQ,EAAA;QAClB,KAAK,CAAC,KAAK,CAAC,CAAC;AAJP,QAAA,IAAA,CAAA,YAAY,GAAG,qBAAqB,CAAC,CAAC,KAAQ,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAK5E,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;KAC5B;IAED,QAAQ,GAAA;QACN,OAAO,IAAI,CAAC,aAAa,CAAC;KAC3B;AAED,IAAA,IAAI,CAAC,KAAQ,EAAA;AACX,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;KAC1B;AACF;;AC7FK,SAAU,kBAAkB,CAChC,QAAkC,EAAA;IAElC,OAAO,CAAC,MAA0B,KAAI;AACpC,QAAA,OAAO,IAAI,UAAU,CAAS,UAAU,IAAG;YACzC,OAAO,MAAM,CAAC,SAAS,CAAC;AACtB,gBAAA,IAAI,CAAC,KAAK,EAAA;oBACR,QAAQ,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;iBACxC;AACD,gBAAA,KAAK,CAAC,KAAK,EAAA;oBACT,QAAQ,CAAC,MAAM,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;iBACzC;gBACD,QAAQ,GAAA;oBACN,QAAQ,CAAC,MAAM,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;iBACvC;AACF,aAAA,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;AACL,KAAC,CAAC;AACJ;;ACbA;;;AAGG;AAEG,MAAO,YAAa,SAAQ,uBAAqC,CAAA;AAMrE,IAAA,WAAA,GAAA;QACE,KAAK,CAAC,EAAE,CAAC,CAAC;AANH,QAAA,IAAA,CAAA,KAAK,GAAyB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,EAAE;AACxF,YAAA,aAAa,EAAE,IAAI;AACnB,YAAA,WAAW,EAAE,IAAI;AAClB,SAAA,CAAC,CAAC;KAIF;IAED,WAAW,GAAA;;;;;;QAMT,IAAI,CAAC,QAAQ,EAAE,CAAC;KACjB;iIAjBU,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,uBAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cADC,MAAM,EAAA,CAAA,CAAA,EAAA;;2FACnB,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;ACXlC;;AAEG;;;;"}
@@ -16,10 +16,19 @@ class UpdateState {
16
16
  }
17
17
  }
18
18
 
19
- const NG_DEV_MODE = typeof ngDevMode !== 'undefined' && ngDevMode;
20
- // The injection token is used to resolve to custom NGXS plugins provided
21
- // at the root level through either `{provide}` scheme or `withNgxsPlugin`.
22
- const NGXS_PLUGINS = new InjectionToken(NG_DEV_MODE ? '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
+ }
23
32
 
24
33
  /**
25
34
  * Returns the type from an action instance/class.
@@ -76,5 +85,5 @@ const getValue = (obj, prop) => prop.split('.').reduce((acc, part) => acc && acc
76
85
  * Generated bundle index. Do not edit.
77
86
  */
78
87
 
79
- export { InitState, NGXS_PLUGINS, UpdateState, actionMatcher, getActionTypeFromInstance, getValue, setValue };
88
+ export { InitState, NGXS_PLUGINS, UpdateState, actionMatcher, getActionTypeFromInstance, getValue, setValue, ɵisPluginClass };
80
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\nconst NG_DEV_MODE = typeof ngDevMode !== 'undefined' && ngDevMode;\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(NG_DEV_MODE ? 'NGXS_PLUGINS' : '');\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,MAAM,WAAW,GAAG,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC;AAElE;AACA;AACa,MAAA,YAAY,GAAG,IAAI,cAAc,CAAC,WAAW,GAAG,cAAc,GAAG,EAAE;;ACRhF;;;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;;;;"}