@ngxs/store 3.8.2 → 18.0.0-dev.master-f4c2c19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/{esm2015/index.js → esm2022/index.mjs} +2 -2
- package/esm2022/internals/custom-rxjs-subjects.mjs +92 -0
- package/esm2022/internals/index.mjs +10 -0
- package/esm2022/internals/initial-state.mjs +18 -0
- package/esm2022/internals/internal-tokens.mjs +6 -0
- package/esm2022/internals/memoize.mjs +45 -0
- package/esm2022/internals/metadata.mjs +57 -0
- package/esm2022/internals/ngxs-app-bootstrapped-state.mjs +19 -0
- package/esm2022/internals/state-stream.mjs +32 -0
- package/esm2022/internals/state-token.mjs +17 -0
- package/esm2022/internals/symbols.mjs +11 -0
- package/esm2022/internals/testing/fresh-platform.mjs +72 -0
- package/{esm2015/internals/testing/helpers/ngxs-test.component.js → esm2022/internals/testing/helpers/ngxs-test.component.mjs} +4 -4
- package/esm2022/internals/testing/helpers/ngxs-test.module.mjs +20 -0
- package/{esm2015/internals/testing/index.js → esm2022/internals/testing/index.mjs} +2 -2
- package/esm2022/internals/testing/ngxs.setup.mjs +48 -0
- package/{esm2015/internals/testing/skip-console-logging.js → esm2022/internals/testing/skip-console-logging.mjs} +1 -1
- package/esm2022/internals/testing/symbol.mjs +2 -0
- package/esm2022/operators/append.mjs +20 -0
- package/esm2022/operators/iif.mjs +38 -0
- package/esm2022/operators/insert-item.mjs +29 -0
- package/esm2022/operators/patch.mjs +21 -0
- package/esm2022/operators/remove-item.mjs +22 -0
- package/esm2022/operators/update-item.mjs +40 -0
- package/esm2022/plugins/actions.mjs +16 -0
- package/esm2022/plugins/index.mjs +4 -0
- package/esm2022/plugins/ngxs-store-plugins.mjs +5 -0
- package/esm2022/plugins/symbols.mjs +6 -0
- package/esm2022/plugins/utils.mjs +51 -0
- package/esm2022/src/actions/symbols.mjs +2 -0
- package/esm2022/src/actions-stream.mjs +52 -0
- package/esm2022/src/configs/messages.config.mjs +48 -0
- package/esm2022/src/decorators/action.mjs +31 -0
- package/esm2022/src/decorators/select/select-factory.mjs +29 -0
- package/esm2022/src/decorators/select/select.mjs +29 -0
- package/esm2022/src/decorators/select/symbols.mjs +29 -0
- package/esm2022/src/decorators/selector/selector.mjs +29 -0
- package/esm2022/src/decorators/selector/symbols.mjs +2 -0
- package/esm2022/src/decorators/selector-options.mjs +21 -0
- package/esm2022/src/decorators/state.mjs +35 -0
- package/esm2022/src/dev-features/ngxs-development.module.mjs +28 -0
- package/esm2022/src/dev-features/ngxs-unhandled-actions-logger.mjs +45 -0
- package/esm2022/src/dev-features/symbols.mjs +7 -0
- package/esm2022/src/execution/dispatch-outside-zone-ngxs-execution-strategy.mjs +55 -0
- package/{esm2015/src/execution/internal-ngxs-execution-strategy.js → esm2022/src/execution/internal-ngxs-execution-strategy.mjs} +6 -6
- package/{esm2015/src/execution/noop-ngxs-execution-strategy.js → esm2022/src/execution/noop-ngxs-execution-strategy.mjs} +4 -4
- package/esm2022/src/execution/symbols.mjs +29 -0
- package/esm2022/src/internal/dispatcher.mjs +106 -0
- package/esm2022/src/internal/fallback-subscriber.mjs +29 -0
- package/esm2022/src/internal/internals.mjs +206 -0
- package/esm2022/src/internal/lifecycle-state-manager.mjs +86 -0
- package/esm2022/src/internal/state-context-factory.mjs +71 -0
- package/esm2022/src/internal/state-factory.mjs +311 -0
- package/esm2022/src/internal/state-operations.mjs +63 -0
- package/esm2022/src/internal/state-operators.mjs +20 -0
- package/esm2022/src/internal/unhandled-rxjs-error-callback.mjs +39 -0
- package/esm2022/src/ivy/ivy-enabled-in-dev-mode.mjs +25 -0
- package/esm2022/src/module.mjs +27 -0
- package/esm2022/src/modules/ngxs-feature.module.mjs +18 -0
- package/esm2022/src/modules/ngxs-root.module.mjs +18 -0
- package/esm2022/src/ngxs-unhandled-error-handler.mjs +29 -0
- package/esm2022/src/operators/of-action.mjs +104 -0
- package/esm2022/src/plugin-manager.mjs +37 -0
- package/esm2022/src/plugin_api.mjs +2 -0
- package/{esm2015/src/private_api.js → esm2022/src/private_api.mjs} +2 -1
- package/esm2022/src/public_api.mjs +20 -0
- package/esm2022/src/selectors/create-model-selector.mjs +30 -0
- package/esm2022/src/selectors/create-pick-selector.mjs +16 -0
- package/esm2022/src/selectors/create-property-selectors.mjs +20 -0
- package/esm2022/src/selectors/create-selector.mjs +9 -0
- package/esm2022/src/selectors/private_api.mjs +2 -0
- package/esm2022/src/selectors/selector-checks.util.mjs +18 -0
- package/esm2022/src/selectors/selector-metadata.mjs +35 -0
- package/esm2022/src/selectors/selector-models.mjs +2 -0
- package/esm2022/src/selectors/selector-types.util.mjs +2 -0
- package/esm2022/src/selectors/selector-utils.mjs +95 -0
- package/esm2022/src/standalone-features/feature-providers.mjs +20 -0
- package/esm2022/src/standalone-features/index.mjs +5 -0
- package/esm2022/src/standalone-features/initializers.mjs +89 -0
- package/esm2022/src/standalone-features/plugin.mjs +20 -0
- package/esm2022/src/standalone-features/preboot.mjs +32 -0
- package/esm2022/src/standalone-features/provide-states.mjs +26 -0
- package/esm2022/src/standalone-features/provide-store.mjs +26 -0
- package/esm2022/src/standalone-features/root-providers.mjs +47 -0
- package/esm2022/src/store.mjs +117 -0
- package/esm2022/src/symbols.mjs +87 -0
- package/esm2022/src/utils/compose.mjs +26 -0
- package/esm2022/src/utils/create-dispatch-map.mjs +11 -0
- package/esm2022/src/utils/create-select-map.mjs +13 -0
- package/esm2022/src/utils/dispatch.mjs +7 -0
- package/{esm2015/src/utils/freeze.js → esm2022/src/utils/freeze.mjs} +1 -1
- package/esm2022/src/utils/public_api.mjs +5 -0
- package/esm2022/src/utils/select.mjs +19 -0
- package/esm2022/src/utils/store-validators.mjs +25 -0
- package/{fesm2015/ngxs-store-internals-testing.js → fesm2022/ngxs-store-internals-testing.mjs} +84 -81
- package/fesm2022/ngxs-store-internals-testing.mjs.map +1 -0
- package/fesm2022/ngxs-store-internals.mjs +296 -0
- package/fesm2022/ngxs-store-internals.mjs.map +1 -0
- package/{fesm2015/ngxs-store-operators.js → fesm2022/ngxs-store-operators.mjs} +3 -3
- package/fesm2022/ngxs-store-operators.mjs.map +1 -0
- package/fesm2022/ngxs-store-plugins.mjs +80 -0
- package/fesm2022/ngxs-store-plugins.mjs.map +1 -0
- package/{fesm2015/ngxs-store.js → fesm2022/ngxs-store.mjs} +1319 -1265
- package/fesm2022/ngxs-store.mjs.map +1 -0
- package/index.d.ts +1 -1
- package/{src/internal → internals}/custom-rxjs-subjects.d.ts +2 -2
- package/internals/index.d.ts +8 -4
- package/internals/initial-state.d.ts +5 -5
- package/internals/memoize.d.ts +1 -1
- package/internals/metadata.d.ts +25 -0
- package/internals/ngxs-app-bootstrapped-state.d.ts +8 -0
- package/internals/state-stream.d.ts +15 -0
- package/internals/state-token.d.ts +7 -0
- package/internals/symbols.d.ts +84 -3
- package/internals/testing/helpers/ngxs-test.component.d.ts +1 -1
- package/internals/testing/index.d.ts +2 -2
- package/internals/testing/symbol.d.ts +2 -2
- package/operators/patch.d.ts +2 -2
- package/operators/types.d.ts +5 -5
- package/operators/utils.d.ts +1 -1
- package/package.json +44 -13
- package/{src/actions → plugins}/actions.d.ts +3 -3
- package/plugins/index.d.ts +3 -0
- package/plugins/symbols.d.ts +13 -0
- package/{src/utils → plugins}/utils.d.ts +0 -17
- package/schematics/collection.json +36 -0
- package/schematics/src/actions/actions.factory.d.ts +3 -0
- package/schematics/src/actions/actions.factory.js +24 -0
- package/schematics/src/actions/actions.factory.js.map +1 -0
- package/schematics/src/actions/files/__name__.actions.ts__template__ +4 -0
- package/schematics/src/actions/schema.json +35 -0
- package/schematics/src/ng-add/add-declaration.d.ts +4 -0
- package/schematics/src/ng-add/add-declaration.js +109 -0
- package/schematics/src/ng-add/add-declaration.js.map +1 -0
- package/schematics/src/ng-add/ng-add.factory.d.ts +9 -0
- package/schematics/src/ng-add/ng-add.factory.js +89 -0
- package/schematics/src/ng-add/ng-add.factory.js.map +1 -0
- package/schematics/src/ng-add/schema.json +72 -0
- package/schematics/src/starter-kit/files/store/auth/auth.actions.ts__template__ +6 -0
- package/schematics/src/starter-kit/files/store/auth/auth.state.spec.ts__template__ +55 -0
- package/schematics/src/starter-kit/files/store/auth/auth.state.ts__template__ +47 -0
- package/schematics/src/starter-kit/files/store/dashboard/index.ts__template__ +4 -0
- package/schematics/src/starter-kit/files/store/dashboard/states/dictionary/dictionary.actions.ts__template__ +10 -0
- package/schematics/src/starter-kit/files/store/dashboard/states/dictionary/dictionary.state.spec.ts__template__ +92 -0
- package/schematics/src/starter-kit/files/store/dashboard/states/dictionary/dictionary.state.ts__template__ +62 -0
- package/schematics/src/starter-kit/files/store/dashboard/states/user/user.actions.ts__template__ +6 -0
- package/schematics/src/starter-kit/files/store/dashboard/states/user/user.state.spec.ts__template__ +61 -0
- package/schematics/src/starter-kit/files/store/dashboard/states/user/user.state.ts__template__ +42 -0
- package/schematics/src/starter-kit/files/store/store.config.ts__template__ +39 -0
- package/schematics/src/starter-kit/files/store/store.module.ts__template__ +22 -0
- package/schematics/src/starter-kit/schema.json +22 -0
- package/schematics/src/starter-kit/starter-kit.factory.d.ts +3 -0
- package/schematics/src/starter-kit/starter-kit.factory.js +21 -0
- package/schematics/src/starter-kit/starter-kit.factory.js.map +1 -0
- package/schematics/src/state/files/__name__.state.spec.ts__template__ +25 -0
- package/schematics/src/state/files/__name__.state.ts__template__ +22 -0
- package/schematics/src/state/schema.json +44 -0
- package/schematics/src/state/state.factory.d.ts +3 -0
- package/schematics/src/state/state.factory.js +29 -0
- package/schematics/src/state/state.factory.js.map +1 -0
- package/schematics/src/store/files/__name__.actions.ts__template__ +4 -0
- package/schematics/src/store/files/__name__.state.spec.ts__template__ +26 -0
- package/schematics/src/store/files/__name__.state.ts__template__ +29 -0
- package/schematics/src/store/schema.json +44 -0
- package/schematics/src/store/store.factory.d.ts +3 -0
- package/schematics/src/store/store.factory.js +29 -0
- package/schematics/src/store/store.factory.js.map +1 -0
- package/schematics/src/utils/common/lib.config.d.ts +10 -0
- package/schematics/src/utils/common/lib.config.js +15 -0
- package/schematics/src/utils/common/lib.config.js.map +1 -0
- package/schematics/src/utils/common/project-files.config.d.ts +3 -0
- package/schematics/src/utils/common/project-files.config.js +7 -0
- package/schematics/src/utils/common/project-files.config.js.map +1 -0
- package/schematics/src/utils/common/properties.d.ts +1 -0
- package/schematics/src/utils/common/properties.js +8 -0
- package/schematics/src/utils/common/properties.js.map +1 -0
- package/schematics/src/utils/config.d.ts +119 -0
- package/schematics/src/utils/config.js +21 -0
- package/schematics/src/utils/config.js.map +1 -0
- package/schematics/src/utils/generate-utils.d.ts +4 -0
- package/schematics/src/utils/generate-utils.js +14 -0
- package/schematics/src/utils/generate-utils.js.map +1 -0
- package/schematics/src/utils/interfaces/package.interface.d.ts +7 -0
- package/schematics/src/utils/interfaces/package.interface.js +3 -0
- package/schematics/src/utils/interfaces/package.interface.js.map +1 -0
- package/schematics/src/utils/ng-utils/README.md +1 -0
- package/schematics/src/utils/ng-utils/ast-utils.d.ts +99 -0
- package/schematics/src/utils/ng-utils/ast-utils.js +517 -0
- package/schematics/src/utils/ng-utils/ast-utils.js.map +1 -0
- package/schematics/src/utils/ng-utils/ng-ast-utils.d.ts +5 -0
- package/schematics/src/utils/ng-utils/ng-ast-utils.js +67 -0
- package/schematics/src/utils/ng-utils/ng-ast-utils.js.map +1 -0
- package/schematics/src/utils/ng-utils/project.d.ts +2 -0
- package/schematics/src/utils/ng-utils/project.js +27 -0
- package/schematics/src/utils/ng-utils/project.js.map +1 -0
- package/schematics/src/utils/ng-utils/standalone/app_config.d.ts +16 -0
- package/schematics/src/utils/ng-utils/standalone/app_config.js +84 -0
- package/schematics/src/utils/ng-utils/standalone/app_config.js.map +1 -0
- package/schematics/src/utils/ng-utils/standalone/code_block.d.ts +46 -0
- package/schematics/src/utils/ng-utils/standalone/code_block.js +73 -0
- package/schematics/src/utils/ng-utils/standalone/code_block.js.map +1 -0
- package/schematics/src/utils/ng-utils/standalone/index.d.ts +1 -0
- package/schematics/src/utils/ng-utils/standalone/index.js +7 -0
- package/schematics/src/utils/ng-utils/standalone/index.js.map +1 -0
- package/schematics/src/utils/ng-utils/standalone/rules.d.ts +38 -0
- package/schematics/src/utils/ng-utils/standalone/rules.js +195 -0
- package/schematics/src/utils/ng-utils/standalone/rules.js.map +1 -0
- package/schematics/src/utils/ng-utils/standalone/util.d.ts +28 -0
- package/schematics/src/utils/ng-utils/standalone/util.js +138 -0
- package/schematics/src/utils/ng-utils/standalone/util.js.map +1 -0
- package/schematics/src/utils/normalize-options.d.ts +11 -0
- package/schematics/src/utils/normalize-options.js +27 -0
- package/schematics/src/utils/normalize-options.js.map +1 -0
- package/schematics/src/utils/project.d.ts +19 -0
- package/schematics/src/utils/project.js +46 -0
- package/schematics/src/utils/project.js.map +1 -0
- package/schematics/src/utils/versions.json +3 -0
- package/src/actions/symbols.d.ts +3 -17
- package/src/actions-stream.d.ts +2 -2
- package/src/configs/messages.config.d.ts +3 -1
- package/src/decorators/action.d.ts +28 -3
- package/src/decorators/select/select.d.ts +3 -0
- package/src/decorators/select/symbols.d.ts +2 -3
- package/src/decorators/selector/selector.d.ts +2 -3
- package/src/decorators/selector/symbols.d.ts +73 -4
- package/src/decorators/selector-options.d.ts +2 -2
- package/src/decorators/state.d.ts +2 -3
- package/src/dev-features/ngxs-development.module.d.ts +1 -0
- package/src/execution/symbols.d.ts +8 -2
- package/src/internal/dispatcher.d.ts +5 -5
- package/src/internal/fallback-subscriber.d.ts +3 -0
- package/src/internal/internals.d.ts +13 -69
- package/src/internal/lifecycle-state-manager.d.ts +6 -6
- package/src/internal/state-factory.d.ts +8 -6
- package/src/internal/state-operations.d.ts +2 -2
- package/src/internal/unhandled-rxjs-error-callback.d.ts +2 -0
- package/src/module.d.ts +3 -14
- package/src/modules/ngxs-feature.module.d.ts +2 -9
- package/src/modules/ngxs-root.module.d.ts +2 -9
- package/src/ngxs-unhandled-error-handler.d.ts +16 -0
- package/src/operators/of-action.d.ts +3 -3
- package/src/plugin-manager.d.ts +1 -1
- package/src/plugin_api.d.ts +1 -5
- package/src/private_api.d.ts +1 -0
- package/src/public_api.d.ts +11 -8
- package/src/selectors/create-model-selector.d.ts +2 -2
- package/src/selectors/create-pick-selector.d.ts +1 -1
- package/src/selectors/create-property-selectors.d.ts +3 -3
- package/src/selectors/create-selector.d.ts +10 -10
- package/src/selectors/private_api.d.ts +7 -0
- package/src/selectors/selector-checks.util.d.ts +2 -2
- package/src/selectors/selector-metadata.d.ts +4 -4
- package/src/selectors/selector-models.d.ts +4 -4
- package/src/selectors/selector-types.util.d.ts +6 -7
- package/src/selectors/selector-utils.d.ts +3 -3
- package/src/standalone-features/feature-providers.d.ts +7 -0
- package/src/standalone-features/index.d.ts +4 -0
- package/src/standalone-features/initializers.d.ts +29 -0
- package/src/standalone-features/plugin.d.ts +17 -0
- package/src/standalone-features/preboot.d.ts +26 -0
- package/src/standalone-features/provide-states.d.ts +18 -0
- package/src/standalone-features/provide-store.d.ts +22 -0
- package/src/standalone-features/root-providers.d.ts +8 -0
- package/src/store.d.ts +13 -15
- package/src/symbols.d.ts +12 -54
- package/src/utils/compose.d.ts +1 -1
- package/src/utils/create-dispatch-map.d.ts +4 -0
- package/src/utils/create-select-map.d.ts +4 -0
- package/src/utils/dispatch.d.ts +2 -0
- package/src/utils/public_api.d.ts +4 -0
- package/src/utils/select.d.ts +16 -0
- package/src/utils/store-validators.d.ts +4 -3
- package/bundles/ngxs-store-internals-testing.umd.js +0 -684
- package/bundles/ngxs-store-internals-testing.umd.js.map +0 -1
- package/bundles/ngxs-store-internals.umd.js +0 -141
- package/bundles/ngxs-store-internals.umd.js.map +0 -1
- package/bundles/ngxs-store-operators.umd.js +0 -224
- package/bundles/ngxs-store-operators.umd.js.map +0 -1
- package/bundles/ngxs-store.umd.js +0 -3076
- package/bundles/ngxs-store.umd.js.map +0 -1
- package/esm2015/internals/index.js +0 -5
- package/esm2015/internals/initial-state.js +0 -17
- package/esm2015/internals/internal-tokens.js +0 -5
- package/esm2015/internals/memoize.js +0 -45
- package/esm2015/internals/ngxs-bootstrapper.js +0 -29
- package/esm2015/internals/src/symbols.js +0 -2
- package/esm2015/internals/symbols.js +0 -2
- package/esm2015/internals/testing/fresh-platform.js +0 -70
- package/esm2015/internals/testing/helpers/ngxs-test.module.js +0 -21
- package/esm2015/internals/testing/ngxs.setup.js +0 -46
- package/esm2015/internals/testing/symbol.js +0 -2
- package/esm2015/operators/append.js +0 -20
- package/esm2015/operators/iif.js +0 -38
- package/esm2015/operators/insert-item.js +0 -29
- package/esm2015/operators/patch.js +0 -21
- package/esm2015/operators/remove-item.js +0 -22
- package/esm2015/operators/update-item.js +0 -40
- package/esm2015/src/actions/actions.js +0 -16
- package/esm2015/src/actions/symbols.js +0 -2
- package/esm2015/src/actions-stream.js +0 -52
- package/esm2015/src/configs/messages.config.js +0 -36
- package/esm2015/src/decorators/action.js +0 -33
- package/esm2015/src/decorators/select/select-factory.js +0 -29
- package/esm2015/src/decorators/select/select.js +0 -26
- package/esm2015/src/decorators/select/symbols.js +0 -29
- package/esm2015/src/decorators/selector/selector.js +0 -32
- package/esm2015/src/decorators/selector/symbols.js +0 -2
- package/esm2015/src/decorators/selector-options.js +0 -21
- package/esm2015/src/decorators/state.js +0 -36
- package/esm2015/src/dev-features/ngxs-development.module.js +0 -22
- package/esm2015/src/dev-features/ngxs-unhandled-actions-logger.js +0 -46
- package/esm2015/src/dev-features/symbols.js +0 -6
- package/esm2015/src/execution/dispatch-outside-zone-ngxs-execution-strategy.js +0 -57
- package/esm2015/src/execution/symbols.js +0 -23
- package/esm2015/src/internal/custom-rxjs-subjects.js +0 -92
- package/esm2015/src/internal/dispatcher.js +0 -104
- package/esm2015/src/internal/error-handler.js +0 -64
- package/esm2015/src/internal/internals.js +0 -248
- package/esm2015/src/internal/lifecycle-state-manager.js +0 -79
- package/esm2015/src/internal/state-context-factory.js +0 -68
- package/esm2015/src/internal/state-factory.js +0 -288
- package/esm2015/src/internal/state-operations.js +0 -63
- package/esm2015/src/internal/state-operators.js +0 -20
- package/esm2015/src/internal/state-stream.js +0 -25
- package/esm2015/src/ivy/ivy-enabled-in-dev-mode.js +0 -25
- package/esm2015/src/module.js +0 -88
- package/esm2015/src/modules/ngxs-feature.module.js +0 -45
- package/esm2015/src/modules/ngxs-root.module.js +0 -41
- package/esm2015/src/operators/of-action.js +0 -102
- package/esm2015/src/plugin-manager.js +0 -37
- package/esm2015/src/plugin_api.js +0 -6
- package/esm2015/src/public_api.js +0 -27
- package/esm2015/src/public_to_deprecate.js +0 -14
- package/esm2015/src/selectors/create-model-selector.js +0 -30
- package/esm2015/src/selectors/create-pick-selector.js +0 -16
- package/esm2015/src/selectors/create-property-selectors.js +0 -20
- package/esm2015/src/selectors/create-selector.js +0 -9
- package/esm2015/src/selectors/selector-checks.util.js +0 -18
- package/esm2015/src/selectors/selector-metadata.js +0 -30
- package/esm2015/src/selectors/selector-models.js +0 -2
- package/esm2015/src/selectors/selector-types.util.js +0 -2
- package/esm2015/src/selectors/selector-utils.js +0 -74
- package/esm2015/src/state-token/state-token.js +0 -17
- package/esm2015/src/state-token/symbols.js +0 -2
- package/esm2015/src/store.js +0 -107
- package/esm2015/src/symbols.js +0 -58
- package/esm2015/src/utils/compose.js +0 -26
- package/esm2015/src/utils/store-validators.js +0 -25
- package/esm2015/src/utils/utils.js +0 -92
- package/fesm2015/ngxs-store-internals-testing.js.map +0 -1
- package/fesm2015/ngxs-store-internals.js +0 -101
- package/fesm2015/ngxs-store-internals.js.map +0 -1
- package/fesm2015/ngxs-store-operators.js.map +0 -1
- package/fesm2015/ngxs-store.js.map +0 -1
- package/internals/ngxs-bootstrapper.d.ts +0 -16
- package/internals/ngxs-store-internals.d.ts +0 -5
- package/internals/package.json +0 -10
- package/internals/src/symbols.d.ts +0 -7
- package/internals/testing/ngxs-store-internals-testing.d.ts +0 -5
- package/internals/testing/package.json +0 -10
- package/ngxs-store.d.ts +0 -5
- package/operators/ngxs-store-operators.d.ts +0 -5
- package/operators/package.json +0 -10
- package/src/internal/error-handler.d.ts +0 -26
- package/src/internal/state-stream.d.ts +0 -14
- package/src/public_to_deprecate.d.ts +0 -21
- package/src/state-token/state-token.d.ts +0 -7
- package/src/state-token/symbols.d.ts +0 -5
- /package/{esm2015/internals/ngxs-store-internals.js → esm2022/internals/ngxs-store-internals.mjs} +0 -0
- /package/{esm2015/internals/testing/ngxs-store-internals-testing.js → esm2022/internals/testing/ngxs-store-internals-testing.mjs} +0 -0
- /package/{esm2015/ngxs-store.js → esm2022/ngxs-store.mjs} +0 -0
- /package/{esm2015/operators/compose.js → esm2022/operators/compose.mjs} +0 -0
- /package/{esm2015/operators/index.js → esm2022/operators/index.mjs} +0 -0
- /package/{esm2015/operators/ngxs-store-operators.js → esm2022/operators/ngxs-store-operators.mjs} +0 -0
- /package/{esm2015/operators/types.js → esm2022/operators/types.mjs} +0 -0
- /package/{esm2015/operators/utils.js → esm2022/operators/utils.mjs} +0 -0
- /package/{esm2015/src/operators/leave-ngxs.js → esm2022/src/operators/leave-ngxs.mjs} +0 -0
- /package/{esm2015/src/selectors/index.js → esm2022/src/selectors/index.mjs} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ngxs-store-internals.js","sources":["../../../packages/store/internals/src/ngxs-bootstrapper.ts","../../../packages/store/internals/src/memoize.ts","../../../packages/store/internals/src/initial-state.ts","../../../packages/store/internals/src/internal-tokens.ts","../../../packages/store/internals/src/ngxs-store-internals.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Observable, ReplaySubject } from 'rxjs';\n\n@Injectable({ providedIn: 'root' })\nexport class NgxsBootstrapper {\n /**\n * Use `ReplaySubject`, thus we can get cached value even if the stream is completed\n */\n private bootstrap$ = new ReplaySubject<boolean>(1);\n\n get appBootstrapped$(): Observable<boolean> {\n return this.bootstrap$.asObservable();\n }\n\n /**\n * This event will be emitted after attaching `ComponentRef` of the root component\n * to the tree of views, that's a signal that application has been fully rendered\n */\n bootstrap(): void {\n this.bootstrap$.next(true);\n this.bootstrap$.complete();\n }\n}\n","function defaultEqualityCheck(a: any, b: any) {\n return a === b;\n}\n\nfunction areArgumentsShallowlyEqual(\n equalityCheck: (a: any, b: any) => boolean,\n prev: IArguments | null,\n next: IArguments | null\n) {\n if (prev === null || next === null || prev.length !== next.length) {\n return false;\n }\n\n // Do this in a for loop (and not a `forEach` or an `every`) so we can determine equality as fast as possible.\n const length = prev.length;\n for (let i = 0; i < length; i++) {\n if (!equalityCheck(prev[i], next[i])) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Memoize a function on its last inputs only.\n * Originally from: https://github.com/reduxjs/reselect/blob/master/src/index.js\n *\n * @ignore\n */\nexport function memoize<T extends (...args: any[]) => any>(\n func: T,\n equalityCheck = defaultEqualityCheck\n): T {\n let lastArgs: IArguments | null = null;\n let lastResult: any = null;\n // we reference arguments instead of spreading them for performance reasons\n function memoized() {\n // eslint-disable-next-line prefer-rest-params\n if (!areArgumentsShallowlyEqual(equalityCheck, lastArgs, arguments)) {\n // apply arguments instead of spreading for performance.\n // eslint-disable-next-line prefer-rest-params, prefer-spread\n lastResult = (<Function>func).apply(null, arguments);\n }\n // eslint-disable-next-line prefer-rest-params\n lastArgs = arguments;\n return lastResult;\n }\n (<any>memoized).reset = function() {\n // The hidden (for now) ability to reset the memoization\n lastArgs = null;\n lastResult = null;\n };\n return memoized as T;\n}\n","import { InjectionToken } from '@angular/core';\nimport { PlainObject } from './symbols';\n\nexport class InitialState {\n private static _value: PlainObject = {};\n\n static set(state: PlainObject) {\n this._value = state;\n }\n\n static pop(): PlainObject {\n const state = this._value;\n this._value = {};\n return state;\n }\n}\n\nexport const INITIAL_STATE_TOKEN = new InjectionToken<any>('INITIAL_STATE_TOKEN', {\n providedIn: 'root',\n factory: () => InitialState.pop()\n});\n","import { InjectionToken } from '@angular/core';\n\n// These tokens are internal and can change at any point.\n\nexport const ɵNGXS_STATE_FACTORY = new InjectionToken<any>('ɵNGXS_STATE_FACTORY');\n\nexport const ɵNGXS_STATE_CONTEXT_FACTORY = new InjectionToken<any>(\n 'ɵNGXS_STATE_CONTEXT_FACTORY'\n);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ngxs-store-operators.js","sources":["../../../packages/store/operators/src/append.ts","../../../packages/store/operators/src/compose.ts","../../../packages/store/operators/src/utils.ts","../../../packages/store/operators/src/iif.ts","../../../packages/store/operators/src/insert-item.ts","../../../packages/store/operators/src/patch.ts","../../../packages/store/operators/src/update-item.ts","../../../packages/store/operators/src/remove-item.ts","../../../packages/store/operators/src/index.ts","../../../packages/store/operators/src/ngxs-store-operators.ts"],"sourcesContent":["import { ExistingState, NoInfer, StateOperator } from './types';\n\n/**\n * @param items - Specific items to append to the end of an array\n */\nexport function append<T>(items: NoInfer<T[]>): StateOperator<T[]> {\n return function appendOperator(existing: ExistingState<T[]>): T[] {\n // If `items` is `undefined` or `null` or `[]` but `existing` is provided\n // just return `existing`\n const itemsNotProvidedButExistingIs = (!items || !items.length) && existing;\n if (itemsNotProvidedButExistingIs) {\n return (existing as unknown) as T[];\n }\n\n if (Array.isArray(existing)) {\n return existing.concat((items as unknown) as ExistingState<T[]>);\n }\n\n // For example if some property is added dynamically\n // and didn't exist before thus it's not `ArrayLike`\n return (items as unknown) as T[];\n };\n}\n","import { ExistingState, NoInfer, StateOperator } from './types';\n\nexport function compose<T>(...operators: NoInfer<StateOperator<T>[]>): StateOperator<T> {\n return function composeOperator(existing: ExistingState<T>): T {\n return operators.reduce(\n (accumulator, operator) => operator(accumulator as ExistingState<T>),\n existing as T\n );\n };\n}\n","import { StateOperator } from './types';\n\nexport type Predicate<T = any> = (value: T | Readonly<T>) => boolean;\n\nexport function isStateOperator<T>(value: T | StateOperator<T>): value is StateOperator<T> {\n return typeof value === 'function';\n}\n\nexport function isUndefined(value: any): value is undefined {\n return typeof value === 'undefined';\n}\n\nexport function isPredicate<T>(value: Predicate<T> | boolean | number): value is Predicate<T> {\n return typeof value === 'function';\n}\n\nexport function isNumber(value: any): value is number {\n return typeof value === 'number';\n}\n\nexport function invalidIndex(index: number): boolean {\n return Number.isNaN(index) || index === -1;\n}\n\nexport function isNil<T>(value: T | null | undefined): value is null | undefined {\n return value === null || isUndefined(value);\n}\n","import { ExistingState, NoInfer, StateOperator } from './types';\n\nimport { isStateOperator, isUndefined, isPredicate, Predicate } from './utils';\n\nfunction retrieveValue<T>(\n operatorOrValue: StateOperator<T> | T,\n existing: ExistingState<T>\n): T {\n // If state operator is a function\n // then call it with an original value\n if (isStateOperator(operatorOrValue)) {\n const value = operatorOrValue(existing);\n return value as T;\n }\n\n // If operator or value was not provided\n // e.g. `elseOperatorOrValue` is `undefined`\n // then we just return an original value\n if (isUndefined(operatorOrValue)) {\n return existing as T;\n }\n\n return operatorOrValue as T;\n}\n\n/**\n * @param condition - Condition can be a plain boolean value or a function,\n * that returns boolean, also this function can take a value as an argument\n * to which this state operator applies\n * @param trueOperatorOrValue - Any value or a state operator\n * @param elseOperatorOrValue - Any value or a state operator\n */\nexport function iif<T>(\n condition: NoInfer<Predicate<T>> | boolean,\n trueOperatorOrValue: NoInfer<StateOperator<T> | T>,\n elseOperatorOrValue?: NoInfer<StateOperator<T> | T>\n): StateOperator<T> {\n return function iifOperator(existing: ExistingState<T>): T {\n // Convert the value to a boolean\n let result = !!condition;\n // but if it is a function then run it to get the result\n if (isPredicate(condition)) {\n result = condition(existing as T);\n }\n\n if (result) {\n return retrieveValue<T>(trueOperatorOrValue as StateOperator<T> | T, existing);\n }\n\n return retrieveValue<T>(elseOperatorOrValue! as StateOperator<T> | T, existing);\n };\n}\n","import { ExistingState, NoInfer, StateOperator } from './types';\nimport { isNil } from './utils';\n\n/**\n * @param value - Value to insert\n * @param [beforePosition] - Specified index to insert value before, optional\n */\nexport function insertItem<T>(value: NoInfer<T>, beforePosition?: number): StateOperator<T[]> {\n return function insertItemOperator(existing: ExistingState<T[]>): T[] {\n // Have to check explicitly for `null` and `undefined`\n // because `value` can be `0`, thus `!value` will return `true`\n if (isNil(value) && existing) {\n return existing as T[];\n }\n\n // Property may be dynamic and might not existed before\n if (!Array.isArray(existing)) {\n return [(value as unknown) as T];\n }\n\n const clone = existing.slice();\n\n let index = 0;\n\n // No need to call `isNumber`\n // as we are checking `> 0` not `>= 0`\n // everything except number will return false here\n if (beforePosition! > 0) {\n index = beforePosition!;\n }\n\n clone.splice(index, 0, (value as unknown) as T);\n return clone;\n };\n}\n","import { ExistingState, NoInfer, StateOperator } from './types';\nimport { isStateOperator } from './utils';\n\ntype NotUndefined<T> = T extends undefined ? never : T;\n\nexport type ɵPatchSpec<T> = { [P in keyof T]?: T[P] | StateOperator<NotUndefined<T[P]>> };\n\nexport function patch<T extends Record<string, any>>(\n patchObject: NoInfer<ɵPatchSpec<T>>\n): StateOperator<T> {\n return function patchStateOperator(existing: ExistingState<T>): T {\n let clone = null;\n for (const k in patchObject) {\n const newValue = patchObject[k];\n const existingPropValue = existing?.[k];\n const newPropValue = isStateOperator(newValue)\n ? newValue(<any>existingPropValue)\n : newValue;\n if (newPropValue !== existingPropValue) {\n if (!clone) {\n clone = { ...(<any>existing) };\n }\n clone[k] = newPropValue;\n }\n }\n return clone || existing;\n };\n}\n","import { ExistingState, NoInfer, StateOperator } from './types';\n\nimport { isStateOperator, isPredicate, isNumber, invalidIndex, Predicate } from './utils';\n\n/**\n * @param selector - Index of item in the array or a predicate function\n * that can be provided in `Array.prototype.findIndex`\n * @param operatorOrValue - New value under the `selector` index or a\n * function that can be applied to an existing value\n */\nexport function updateItem<T>(\n selector: number | NoInfer<Predicate<T>>,\n operatorOrValue: NoInfer<T> | NoInfer<StateOperator<T>>\n): StateOperator<T[]> {\n return function updateItemOperator(existing: ExistingState<T[]>): T[] {\n let index = -1;\n\n if (isPredicate(selector)) {\n index = existing.findIndex(selector as Predicate<T>);\n } else if (isNumber(selector)) {\n index = selector;\n }\n\n if (invalidIndex(index)) {\n return existing as T[];\n }\n\n let value: T = null!;\n // Need to check if the new item value will change the existing item value\n // then, only if it will change it then clone the array and set the item\n const theOperatorOrValue = operatorOrValue as T | StateOperator<T>;\n if (isStateOperator(theOperatorOrValue)) {\n value = theOperatorOrValue(existing[index] as ExistingState<T>);\n } else {\n value = theOperatorOrValue;\n }\n\n // If the value hasn't been mutated\n // then we just return `existing` array\n if (value === existing[index]) {\n return existing as T[];\n }\n\n const clone = existing.slice();\n clone[index] = value as T;\n return clone;\n };\n}\n","import { ExistingState, NoInfer, StateOperator } from './types';\nimport { isPredicate, isNumber, invalidIndex, Predicate } from './utils';\n\n/**\n * @param selector - index or predicate to remove an item from an array by\n */\nexport function removeItem<T>(selector: number | NoInfer<Predicate<T>>): StateOperator<T[]> {\n return function removeItemOperator(existing: ExistingState<T[]>): T[] {\n let index = -1;\n\n if (isPredicate(selector)) {\n index = existing.findIndex(selector);\n } else if (isNumber(selector)) {\n index = selector;\n }\n\n if (invalidIndex(index)) {\n return existing as T[];\n }\n\n const clone = existing.slice();\n clone.splice(index, 1);\n return clone;\n };\n}\n","/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\nexport { append } from './append';\nexport { compose } from './compose';\nexport { iif } from './iif';\nexport { insertItem } from './insert-item';\nexport { patch, ɵPatchSpec } from './patch';\nexport { isStateOperator, isPredicate, Predicate } from './utils';\nexport { updateItem } from './update-item';\nexport { removeItem } from './remove-item';\nexport { ExistingState, NoInfer, StateOperator } from './types';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ngxs-store.js","sources":["../../../packages/store/src/utils/utils.ts","../../../packages/store/src/configs/messages.config.ts","../../../packages/store/src/execution/dispatch-outside-zone-ngxs-execution-strategy.ts","../../../packages/store/src/symbols.ts","../../../packages/store/src/execution/noop-ngxs-execution-strategy.ts","../../../packages/store/src/execution/symbols.ts","../../../packages/store/src/internal/internals.ts","../../../packages/store/src/operators/of-action.ts","../../../packages/store/src/operators/leave-ngxs.ts","../../../packages/store/src/execution/internal-ngxs-execution-strategy.ts","../../../packages/store/src/internal/custom-rxjs-subjects.ts","../../../packages/store/src/actions-stream.ts","../../../packages/store/src/utils/compose.ts","../../../packages/store/src/internal/error-handler.ts","../../../packages/store/src/internal/state-stream.ts","../../../packages/store/src/plugin-manager.ts","../../../packages/store/src/internal/dispatcher.ts","../../../packages/store/src/utils/freeze.ts","../../../packages/store/src/internal/state-operations.ts","../../../packages/store/src/internal/state-operators.ts","../../../packages/store/src/internal/state-context-factory.ts","../../../packages/store/src/utils/store-validators.ts","../../../packages/store/src/ivy/ivy-enabled-in-dev-mode.ts","../../../packages/store/src/actions/actions.ts","../../../packages/store/src/dev-features/symbols.ts","../../../packages/store/src/dev-features/ngxs-unhandled-actions-logger.ts","../../../packages/store/src/internal/state-factory.ts","../../../packages/store/src/selectors/selector-utils.ts","../../../packages/store/src/store.ts","../../../packages/store/src/decorators/select/select-factory.ts","../../../packages/store/src/internal/lifecycle-state-manager.ts","../../../packages/store/src/modules/ngxs-root.module.ts","../../../packages/store/src/modules/ngxs-feature.module.ts","../../../packages/store/src/module.ts","../../../packages/store/src/decorators/action.ts","../../../packages/store/src/decorators/state.ts","../../../packages/store/src/decorators/select/symbols.ts","../../../packages/store/src/decorators/select/select.ts","../../../packages/store/src/selectors/selector-metadata.ts","../../../packages/store/src/decorators/selector-options.ts","../../../packages/store/src/public_to_deprecate.ts","../../../packages/store/src/selectors/create-selector.ts","../../../packages/store/src/decorators/selector/selector.ts","../../../packages/store/src/state-token/state-token.ts","../../../packages/store/src/dev-features/ngxs-development.module.ts","../../../packages/store/src/selectors/selector-checks.util.ts","../../../packages/store/src/selectors/create-model-selector.ts","../../../packages/store/src/selectors/create-pick-selector.ts","../../../packages/store/src/selectors/create-property-selectors.ts","../../../packages/store/index.ts","../../../packages/store/ngxs-store.ts"],"sourcesContent":["/**\n * Returns the type from an action instance/class.\n * @ignore\n */\nexport function getActionTypeFromInstance(action: any): string | undefined {\n if (action.constructor && action.constructor.type) {\n return action.constructor.type;\n } else {\n return action.type;\n }\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/**\n * Simple object check.\n *\n * isObject({a:1}) //=> true\n * isObject(1) //=> false\n *\n * @ignore\n */\nexport const isObject = (item: any) => {\n return item && typeof item === 'object' && !Array.isArray(item);\n};\n\n/**\n * Deep merge two objects.\n *\n * mergeDeep({a:1, b:{x: 1, y:2}}, {b:{x: 3}, c:4}) //=> {a:1, b:{x:3, y:2}, c:4}\n *\n * @param base base object onto which `sources` will be applied\n */\nexport const mergeDeep = (base: any, ...sources: any[]): any => {\n if (!sources.length) return base;\n const source = sources.shift();\n\n if (isObject(base) && isObject(source)) {\n for (const key in source) {\n if (isObject(source[key])) {\n if (!base[key]) Object.assign(base, { [key]: {} });\n mergeDeep(base[key], source[key]);\n } else {\n Object.assign(base, { [key]: source[key] });\n }\n }\n }\n\n return mergeDeep(base, ...sources);\n};\n","export function throwStateNameError(name: string): never {\n throw new Error(\n `${name} is not a valid state name. It needs to be a valid object property name.`\n );\n}\n\nexport function throwStateNamePropertyError(): never {\n throw new Error(`States must register a 'name' property.`);\n}\n\nexport function throwStateUniqueError(\n current: string,\n newName: string,\n oldName: string\n): never {\n throw new Error(`State name '${current}' from ${newName} already exists in ${oldName}.`);\n}\n\nexport function throwStateDecoratorError(name: string): never {\n throw new Error(`States must be decorated with @State() decorator, but \"${name}\" isn't.`);\n}\n\nexport function throwActionDecoratorError(): never {\n throw new Error('@Action() decorator cannot be used with static methods.');\n}\n\nexport function throwSelectorDecoratorError(): never {\n throw new Error('Selectors only work on methods.');\n}\n\nexport function getZoneWarningMessage(): string {\n return (\n 'Your application was bootstrapped with nooped zone and your execution strategy requires an actual NgZone!\\n' +\n 'Please set the value of the executionStrategy property to NoopNgxsExecutionStrategy.\\n' +\n 'NgxsModule.forRoot(states, { executionStrategy: NoopNgxsExecutionStrategy })'\n );\n}\n\nexport function getUndecoratedStateInIvyWarningMessage(name: string): string {\n return `'${name}' class should be decorated with @Injectable() right after the @State() decorator`;\n}\n\nexport function throwSelectFactoryNotConnectedError(): never {\n throw new Error('You have forgotten to import the NGXS module!');\n}\n\nexport function throwPatchingArrayError(): never {\n throw new Error('Patching arrays is not supported.');\n}\n\nexport function throwPatchingPrimitiveError(): never {\n throw new Error('Patching primitives is not supported.');\n}\n","import { Inject, Injectable, NgZone, PLATFORM_ID } from '@angular/core';\nimport { isPlatformServer } from '@angular/common';\n\nimport { NgxsExecutionStrategy } from './symbols';\nimport { getZoneWarningMessage } from '../configs/messages.config';\n\n@Injectable({ providedIn: 'root' })\nexport class DispatchOutsideZoneNgxsExecutionStrategy implements NgxsExecutionStrategy {\n constructor(private _ngZone: NgZone, @Inject(PLATFORM_ID) private _platformId: string) {\n // Caretaker note: we have still left the `typeof` condition in order to avoid\n // creating a breaking change for projects that still use the View Engine.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n verifyZoneIsNotNooped(_ngZone);\n }\n }\n\n enter<T>(func: () => T): T {\n if (isPlatformServer(this._platformId)) {\n return this.runInsideAngular(func);\n }\n return this.runOutsideAngular(func);\n }\n\n leave<T>(func: () => T): T {\n return this.runInsideAngular(func);\n }\n\n private runInsideAngular<T>(func: () => T): T {\n if (NgZone.isInAngularZone()) {\n return func();\n }\n return this._ngZone.run(func);\n }\n\n private runOutsideAngular<T>(func: () => T): T {\n if (NgZone.isInAngularZone()) {\n return this._ngZone.runOutsideAngular(func);\n }\n return func();\n }\n}\n\n// Caretaker note: this should exist as a separate function and not a class method,\n// since class methods are not tree-shakable.\nfunction verifyZoneIsNotNooped(ngZone: NgZone): void {\n // `NoopNgZone` is not exposed publicly as it doesn't expect\n // to be used outside of the core Angular code, thus we just have\n // to check if the zone doesn't extend or instanceof `NgZone`.\n if (ngZone instanceof NgZone) {\n return;\n }\n\n console.warn(getZoneWarningMessage());\n}\n","import { Injectable, InjectionToken, Type } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { PlainObject, StateClass } from '@ngxs/store/internals';\nimport { StateOperator } from '@ngxs/store/operators';\n\nimport { mergeDeep } from './utils/utils';\nimport { DispatchOutsideZoneNgxsExecutionStrategy } from './execution/dispatch-outside-zone-ngxs-execution-strategy';\nimport { NgxsExecutionStrategy } from './execution/symbols';\nimport { SharedSelectorOptions } from './internal/internals';\nimport { StateToken } from './state-token/state-token';\n\nexport const ROOT_OPTIONS = new InjectionToken<NgxsModuleOptions>('ROOT_OPTIONS');\nexport const ROOT_STATE_TOKEN = new InjectionToken<any>('ROOT_STATE_TOKEN');\nexport const FEATURE_STATE_TOKEN = new InjectionToken<any>('FEATURE_STATE_TOKEN');\nexport const NGXS_PLUGINS = new InjectionToken('NGXS_PLUGINS');\n\nexport const META_KEY = 'NGXS_META';\nexport const META_OPTIONS_KEY = 'NGXS_OPTIONS_META';\nexport const SELECTOR_META_KEY = 'NGXS_SELECTOR_META';\n\nexport type NgxsLifeCycle = Partial<NgxsOnChanges> &\n Partial<NgxsOnInit> &\n Partial<NgxsAfterBootstrap>;\n\nexport type NgxsPluginFn = (state: any, mutation: any, next: NgxsNextPluginFn) => any;\n\n/**\n * The NGXS config settings.\n */\n@Injectable({\n providedIn: 'root',\n useFactory: (options: NgxsModuleOptions) => mergeDeep(new NgxsConfig(), options),\n deps: [ROOT_OPTIONS]\n})\nexport class NgxsConfig {\n /**\n * Run in development mode. This will add additional debugging features:\n * - Object.freeze on the state and actions to guarantee immutability\n * (default: false)\n *\n * Note: this property will be accounted only in development mode when using the Ivy compiler.\n * It makes sense to use it only during development to ensure there're no state mutations.\n * When building for production, the Object.freeze will be tree-shaken away.\n */\n developmentMode: boolean;\n compatibility: {\n /**\n * Support a strict Content Security Policy.\n * This will circumvent some optimisations that violate a strict CSP through the use of `new Function(...)`.\n * (default: false)\n */\n strictContentSecurityPolicy: boolean;\n };\n /**\n * Determines the execution context to perform async operations inside. An implementation can be\n * provided to override the default behaviour where the async operations are run\n * outside Angular's zone but all observable behaviours of NGXS are run back inside Angular's zone.\n * These observable behaviours are from:\n * `@Select(...)`, `store.select(...)`, `actions.subscribe(...)` or `store.dispatch(...).subscribe(...)`\n * Every `zone.run` causes Angular to run change detection on the whole tree (`app.tick()`) so of your\n * application doesn't rely on zone.js running change detection then you can switch to the\n * `NoopNgxsExecutionStrategy` that doesn't interact with zones.\n * (default: null)\n */\n executionStrategy: Type<NgxsExecutionStrategy>;\n /**\n * Defining the default state before module initialization\n * This is convenient if we need to create a define our own set of states.\n * @deprecated will be removed after v4\n * (default: {})\n */\n defaultsState: PlainObject = {};\n /**\n * Defining shared selector options\n */\n selectorOptions: SharedSelectorOptions = {\n injectContainerState: true, // TODO: default is true in v3, will change in v4\n suppressErrors: true // TODO: default is true in v3, will change in v4\n };\n\n constructor() {\n this.compatibility = {\n strictContentSecurityPolicy: false\n };\n this.executionStrategy = DispatchOutsideZoneNgxsExecutionStrategy;\n }\n}\n\nexport { StateOperator };\n\n/**\n * State context provided to the actions in the state.\n */\nexport interface StateContext<T> {\n /**\n * Get the current state.\n */\n getState(): T;\n\n /**\n * Reset the state to a new value.\n */\n setState(val: T | StateOperator<T>): T;\n\n /**\n * Patch the existing state with the provided value.\n */\n patchState(val: Partial<T>): T;\n\n /**\n * Dispatch a new action and return the dispatched observable.\n */\n dispatch(actions: any | any[]): Observable<void>;\n}\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/**\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 children?: StateClass[];\n}\n\n/**\n * Represents a basic change from a previous to a new value for a single state instance.\n * Passed as a value in a NgxsSimpleChanges object to the ngxsOnChanges hook.\n */\nexport class NgxsSimpleChange<T = any> {\n constructor(\n public readonly previousValue: T,\n public readonly currentValue: T,\n public readonly firstChange: boolean\n ) {}\n}\n\n/**\n * On init interface\n */\nexport interface NgxsOnInit {\n ngxsOnInit(ctx: StateContext<any>): void;\n}\n\n/**\n * On change interface\n */\nexport interface NgxsOnChanges {\n ngxsOnChanges(change: NgxsSimpleChange): void;\n}\n\n/**\n * After bootstrap interface\n */\nexport interface NgxsAfterBootstrap {\n ngxsAfterBootstrap(ctx: StateContext<any>): void;\n}\n\nexport type NgxsModuleOptions = Partial<NgxsConfig>;\n\n/** @internal */\ndeclare global {\n const ngDevMode: boolean;\n}\n","import { Injectable } from '@angular/core';\n\nimport { NgxsExecutionStrategy } from './symbols';\n\n@Injectable({ providedIn: 'root' })\nexport class NoopNgxsExecutionStrategy implements NgxsExecutionStrategy {\n enter<T>(func: () => T): T {\n return func();\n }\n\n leave<T>(func: () => T): T {\n return func();\n }\n}\n","import { InjectionToken, inject, INJECTOR, Type, ɵglobal } from '@angular/core';\n\nimport { NoopNgxsExecutionStrategy } from './noop-ngxs-execution-strategy';\nimport { DispatchOutsideZoneNgxsExecutionStrategy } from './dispatch-outside-zone-ngxs-execution-strategy';\n\n/**\n * The strategy that might be provided by users through `options.executionStrategy`.\n */\nexport const USER_PROVIDED_NGXS_EXECUTION_STRATEGY = new InjectionToken<\n Type<NgxsExecutionStrategy> | undefined\n>('USER_PROVIDED_NGXS_EXECUTION_STRATEGY');\n\n/*\n * Internal execution strategy injection token\n */\nexport const NGXS_EXECUTION_STRATEGY = new InjectionToken<NgxsExecutionStrategy>(\n 'NGXS_EXECUTION_STRATEGY',\n {\n providedIn: 'root',\n factory: () => {\n const injector = inject(INJECTOR);\n const executionStrategy = injector.get(USER_PROVIDED_NGXS_EXECUTION_STRATEGY);\n return executionStrategy\n ? injector.get(executionStrategy)\n : injector.get(\n typeof ɵglobal.Zone !== 'undefined'\n ? DispatchOutsideZoneNgxsExecutionStrategy\n : NoopNgxsExecutionStrategy\n );\n }\n }\n);\n\n/*\n * Execution strategy interface\n */\nexport interface NgxsExecutionStrategy {\n enter<T>(func: () => T): T;\n leave<T>(func: () => T): T;\n}\n","import { PlainObjectOf, StateClass } from '@ngxs/store/internals';\nimport { Observable } from 'rxjs';\n\nimport {\n META_KEY,\n META_OPTIONS_KEY,\n NgxsConfig,\n SELECTOR_META_KEY,\n StoreOptions\n} from '../symbols';\nimport { ActionHandlerMetaData } from '../actions/symbols';\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 type StateKeyGraph = PlainObjectOf<string[]>;\nexport type StatesByName = PlainObjectOf<StateClassInternal>;\n\nexport interface StateOperations<T> {\n getState(): T;\n\n setState(val: T): T;\n\n dispatch(actionOrActions: any | any[]): Observable<void>;\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 children?: StateClassInternal[];\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 = (runtimeContext: RuntimeSelectorContext) => SelectFromRootState;\n\nexport interface SharedSelectorOptions {\n injectContainerState?: boolean;\n suppressErrors?: boolean;\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 MappedStore {\n name: string;\n isInitialised: boolean;\n actions: PlainObjectOf<ActionHandlerMetaData[]>;\n defaults: any;\n instance: any;\n path: string;\n}\n\nexport interface StatesAndDefaults {\n defaults: any;\n states: MappedStore[];\n}\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\n/**\n * Get a deeply nested value. Example:\n *\n * getValue({ foo: bar: [] }, 'foo.bar') //=> []\n *\n * Note: This is not as fast as the `fastPropGetter` but is strict Content Security Policy compliant.\n * See perf hit: https://jsperf.com/fast-value-getter-given-path/1\n *\n * @ignore\n */\nfunction compliantPropGetter(paths: string[]): (x: any) => any {\n const copyOfPaths = paths.slice();\n return obj => copyOfPaths.reduce((acc: any, part: string) => acc && acc[part], obj);\n}\n\n/**\n * The generated function is faster than:\n * - pluck (Observable operator)\n * - memoize\n *\n * @ignore\n */\nfunction fastPropGetter(paths: string[]): (x: any) => any {\n const segments = paths;\n let seg = 'store.' + segments[0];\n let i = 0;\n const l = segments.length;\n\n let expr = seg;\n while (++i < l) {\n expr = expr + ' && ' + (seg = seg + '.' + segments[i]);\n }\n\n const fn = new Function('store', 'return ' + expr + ';');\n\n return <(x: any) => any>fn;\n}\n\n/**\n * Get a deeply nested value. Example:\n *\n * getValue({ foo: bar: [] }, 'foo.bar') //=> []\n *\n * @ignore\n */\nexport function propGetter(paths: string[], config: NgxsConfig) {\n if (config && config.compatibility && config.compatibility.strictContentSecurityPolicy) {\n return compliantPropGetter(paths);\n } else {\n return fastPropGetter(paths);\n }\n}\n\n/**\n * Given an array of states, it will return a object graph. Example:\n * const states = [\n * Cart,\n * CartSaved,\n * CartSavedItems\n * ]\n *\n * would return:\n *\n * const graph = {\n * cart: ['saved'],\n * saved: ['items'],\n * items: []\n * };\n *\n * @ignore\n */\nexport function buildGraph(stateClasses: StateClassInternal[]): StateKeyGraph {\n const findName = (stateClass: StateClassInternal) => {\n const meta = stateClasses.find(g => g === stateClass);\n\n // Caretaker note: we have still left the `typeof` condition in order to avoid\n // creating a breaking change for projects that still use the View Engine.\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !meta) {\n throw new Error(\n `Child state not found: ${stateClass}. \\r\\nYou may have forgotten to add states to module`\n );\n }\n\n return meta![META_KEY]!.name!;\n };\n\n return stateClasses.reduce<StateKeyGraph>(\n (result: StateKeyGraph, stateClass: StateClassInternal) => {\n const { name, children } = stateClass[META_KEY]!;\n result[name!] = (children || []).map(findName);\n return result;\n },\n {}\n );\n}\n\n/**\n * Given a states array, returns object graph\n * returning the name and state metadata. Example:\n *\n * const graph = {\n * cart: { metadata }\n * };\n *\n * @ignore\n */\nexport function nameToState(states: StateClassInternal[]): PlainObjectOf<StateClassInternal> {\n return states.reduce<PlainObjectOf<StateClassInternal>>(\n (result: PlainObjectOf<StateClassInternal>, stateClass: StateClassInternal) => {\n const meta = stateClass[META_KEY]!;\n result[meta.name!] = stateClass;\n return result;\n },\n {}\n );\n}\n\n/**\n * Given a object relationship graph will return the full path\n * for the child items. Example:\n *\n * const graph = {\n * cart: ['saved'],\n * saved: ['items'],\n * items: []\n * };\n *\n * would return:\n *\n * const r = {\n * cart: 'cart',\n * saved: 'cart.saved',\n * items: 'cart.saved.items'\n * };\n *\n * @ignore\n */\nexport function findFullParentPath(\n obj: StateKeyGraph,\n newObj: PlainObjectOf<string> = {}\n): PlainObjectOf<string> {\n const visit = (child: StateKeyGraph, keyToFind: string): string | null => {\n for (const key in child) {\n if (child.hasOwnProperty(key) && child[key].indexOf(keyToFind) >= 0) {\n const parent = visit(child, key);\n return parent !== null ? `${parent}.${key}` : key;\n }\n }\n return null;\n };\n\n for (const key in obj) {\n if (obj.hasOwnProperty(key)) {\n const parent = visit(obj, key);\n newObj[key] = parent ? `${parent}.${key}` : key;\n }\n }\n\n return newObj;\n}\n\n/**\n * Given a object graph, it will return the items topologically sorted Example:\n *\n * const graph = {\n * cart: ['saved'],\n * saved: ['items'],\n * items: []\n * };\n *\n * would return:\n *\n * const results = [\n * 'items',\n * 'saved',\n * 'cart'\n * ];\n *\n * @ignore\n */\nexport function topologicalSort(graph: StateKeyGraph): string[] {\n const sorted: string[] = [];\n const visited: PlainObjectOf<boolean> = {};\n\n const visit = (name: string, ancestors: string[] = []) => {\n if (!Array.isArray(ancestors)) {\n ancestors = [];\n }\n\n ancestors.push(name);\n visited[name] = true;\n\n graph[name].forEach((dep: string) => {\n // Caretaker note: we have still left the `typeof` condition in order to avoid\n // creating a breaking change for projects that still use the View Engine.\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && ancestors.indexOf(dep) >= 0) {\n throw new Error(\n `Circular dependency '${dep}' is required by '${name}': ${ancestors.join(' -> ')}`\n );\n }\n\n if (visited[dep]) {\n return;\n }\n\n visit(dep, ancestors.slice(0));\n });\n\n if (sorted.indexOf(name) < 0) {\n sorted.push(name);\n }\n };\n\n Object.keys(graph).forEach(k => visit(k));\n\n return sorted.reverse();\n}\n\n/**\n * Returns if the parameter is a object or not.\n *\n * @ignore\n */\nexport function isObject(obj: any) {\n return (typeof obj === 'object' && obj !== null) || typeof obj === 'function';\n}\n","import { OperatorFunction, Observable } from 'rxjs';\nimport { map, filter } from 'rxjs/operators';\n\nimport { ActionType } from '../actions/symbols';\nimport { getActionTypeFromInstance } from '../utils/utils';\nimport { ActionContext, ActionStatus } from '../actions-stream';\n\ntype TupleKeys<T extends any[]> = Exclude<keyof T, keyof []>;\n\n/**\n * Given a POJO, returns the POJO type, given a class constructor object, returns the type of the class.\n *\n * This utility type exists due to the complexity of ActionType being either an ActionDef class or the plain\n * `{ type: string }` type (or similar compatible POJO types).\n */\ntype Constructed<T> = T extends new (...args: any[]) => infer U ? U : T;\n\nexport interface ActionCompletion<T = any, E = Error> {\n action: T;\n result: {\n successful: boolean;\n canceled: boolean;\n error?: E;\n };\n}\n\n/**\n * RxJS operator for selecting out specific actions.\n *\n * This will grab actions that have just been dispatched as well as actions that have completed\n */\nexport function ofAction<T extends ActionType[]>(\n ...allowedTypes: T\n): OperatorFunction<\n ActionContext<Constructed<T[TupleKeys<T>]>>,\n Constructed<T[TupleKeys<T>]>\n> {\n return ofActionOperator(allowedTypes);\n}\n\n/**\n * RxJS operator for selecting out specific actions.\n *\n * This will ONLY grab actions that have just been dispatched\n */\nexport function ofActionDispatched<T extends ActionType[]>(\n ...allowedTypes: T\n): OperatorFunction<\n ActionContext<Constructed<T[TupleKeys<T>]>>,\n Constructed<T[TupleKeys<T>]>\n> {\n return ofActionOperator(allowedTypes, [ActionStatus.Dispatched]);\n}\n\n/**\n * RxJS operator for selecting out specific actions.\n *\n * This will ONLY grab actions that have just been successfully completed\n */\nexport function ofActionSuccessful<T extends ActionType[]>(\n ...allowedTypes: T\n): OperatorFunction<\n ActionContext<Constructed<T[TupleKeys<T>]>>,\n Constructed<T[TupleKeys<T>]>\n> {\n return ofActionOperator(allowedTypes, [ActionStatus.Successful]);\n}\n\n/**\n * RxJS operator for selecting out specific actions.\n *\n * This will ONLY grab actions that have just been canceled\n */\nexport function ofActionCanceled<T extends ActionType[]>(\n ...allowedTypes: T\n): OperatorFunction<\n ActionContext<Constructed<T[TupleKeys<T>]>>,\n Constructed<T[TupleKeys<T>]>\n> {\n return ofActionOperator(allowedTypes, [ActionStatus.Canceled]);\n}\n\n/**\n * RxJS operator for selecting out specific actions.\n *\n * This will ONLY grab actions that have just been completed\n */\nexport function ofActionCompleted<T extends ActionType[]>(\n ...allowedTypes: T\n): OperatorFunction<\n ActionContext<Constructed<T[TupleKeys<T>]>>,\n ActionCompletion<Constructed<T[TupleKeys<T>]>>\n> {\n const allowedStatuses = [\n ActionStatus.Successful,\n ActionStatus.Canceled,\n ActionStatus.Errored\n ];\n return ofActionOperator(allowedTypes, allowedStatuses, mapActionResult);\n}\n\n/**\n * RxJS operator for selecting out specific actions.\n *\n * This will ONLY grab actions that have just thrown an error\n */\nexport function ofActionErrored<T extends ActionType[]>(\n ...allowedTypes: T\n): OperatorFunction<\n ActionContext<Constructed<T[TupleKeys<T>]>>,\n Constructed<T[TupleKeys<T>]>\n> {\n return ofActionOperator(allowedTypes, [ActionStatus.Errored]);\n}\n\nfunction ofActionOperator(\n allowedTypes: ActionType[],\n statuses?: ActionStatus[],\n // This actually could've been `OperatorFunction<ActionContext, ActionCompletion | any>`,\n // since it maps either to `ctx.action` OR to `ActionCompletion`. But `ActionCompleteion | any`\n // defaults to `any`, thus there is no sense from union type.\n mapOperator: () => OperatorFunction<ActionContext, any> = mapAction\n): OperatorFunction<ActionContext, any> {\n const allowedMap = createAllowedActionTypesMap(allowedTypes);\n const allowedStatusMap = statuses && createAllowedStatusesMap(statuses);\n return function(o: Observable<ActionContext>) {\n return o.pipe(filterStatus(allowedMap, allowedStatusMap), mapOperator());\n };\n}\n\nfunction filterStatus(allowedTypes: FilterMap, allowedStatuses?: FilterMap) {\n return filter((ctx: ActionContext) => {\n const actionType = getActionTypeFromInstance(ctx.action)!;\n const typeMatch = allowedTypes[actionType];\n const statusMatch = allowedStatuses ? allowedStatuses[ctx.status] : true;\n return typeMatch && statusMatch;\n });\n}\n\nfunction mapActionResult(): OperatorFunction<ActionContext, ActionCompletion> {\n return map(({ action, status, error }: ActionContext) => {\n return <ActionCompletion>{\n action,\n result: {\n successful: ActionStatus.Successful === status,\n canceled: ActionStatus.Canceled === status,\n error\n }\n };\n });\n}\n\nfunction mapAction<T = any>(): OperatorFunction<ActionContext, T> {\n return map((ctx: ActionContext) => <T>ctx.action);\n}\n\ninterface FilterMap {\n [key: string]: boolean;\n}\n\nfunction createAllowedActionTypesMap(types: ActionType[]): FilterMap {\n return types.reduce((filterMap: FilterMap, klass: any) => {\n filterMap[getActionTypeFromInstance(klass)!] = true;\n return filterMap;\n }, <FilterMap>{});\n}\n\nfunction createAllowedStatusesMap(statuses: ActionStatus[]): FilterMap {\n return statuses.reduce((filterMap: FilterMap, status: ActionStatus) => {\n filterMap[status] = true;\n return filterMap;\n }, <FilterMap>{});\n}\n","import { MonoTypeOperatorFunction, Observable, Observer } from 'rxjs';\nimport { NgxsExecutionStrategy } from '../execution/symbols';\n\n/**\n * Returns operator that will run\n * `subscribe` outside of the ngxs execution context\n */\nexport function leaveNgxs<T>(\n ngxsExecutionStrategy: NgxsExecutionStrategy\n): MonoTypeOperatorFunction<T> {\n return (source: Observable<T>) => {\n return new Observable((sink: Observer<T>) => {\n return source.subscribe({\n next(value) {\n ngxsExecutionStrategy.leave(() => sink.next(value));\n },\n error(error) {\n ngxsExecutionStrategy.leave(() => sink.error(error));\n },\n complete() {\n ngxsExecutionStrategy.leave(() => sink.complete());\n }\n });\n });\n };\n}\n","import { Injectable, Inject } from '@angular/core';\n\nimport { NgxsExecutionStrategy, NGXS_EXECUTION_STRATEGY } from './symbols';\n\n@Injectable({ providedIn: 'root' })\nexport class InternalNgxsExecutionStrategy implements NgxsExecutionStrategy {\n constructor(\n @Inject(NGXS_EXECUTION_STRATEGY) private _executionStrategy: NgxsExecutionStrategy\n ) {}\n\n enter<T>(func: () => T): T {\n return this._executionStrategy.enter(func);\n }\n\n leave<T>(func: () => T): T {\n return this._executionStrategy.leave(func);\n }\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 { Injectable, OnDestroy } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { share } from 'rxjs/operators';\n\nimport { leaveNgxs } from './operators/leave-ngxs';\nimport { InternalNgxsExecutionStrategy } from './execution/internal-ngxs-execution-strategy';\nimport { OrderedSubject } from './internal/custom-rxjs-subjects';\n\n/**\n * Status of a dispatched action\n */\nexport const enum ActionStatus {\n Dispatched = 'DISPATCHED',\n Successful = 'SUCCESSFUL',\n Canceled = 'CANCELED',\n Errored = 'ERRORED'\n}\n\nexport interface ActionContext<T = any> {\n status: ActionStatus;\n action: T;\n error?: Error;\n}\n\n/**\n * Internal Action stream that is emitted anytime an action is dispatched.\n */\n@Injectable({ providedIn: 'root' })\nexport class InternalActions extends OrderedSubject<ActionContext> implements OnDestroy {\n ngOnDestroy(): void {\n this.complete();\n }\n}\n\n/**\n * Action stream that is emitted anytime an action is dispatched.\n *\n * You can listen to this in services to react without stores.\n */\n@Injectable({ providedIn: 'root' })\nexport class Actions extends Observable<ActionContext> {\n constructor(\n internalActions$: InternalActions,\n internalExecutionStrategy: InternalNgxsExecutionStrategy\n ) {\n const sharedInternalActions$ = internalActions$.pipe(\n leaveNgxs(internalExecutionStrategy),\n // The `InternalActions` subject emits outside of the Angular zone.\n // We have to re-enter the Angular zone for any incoming consumer.\n // The `share()` operator reduces the number of change detections.\n // This would call leave only once for any stream emission across all active subscribers.\n share()\n );\n\n super(observer => {\n const childSubscription = sharedInternalActions$.subscribe({\n next: ctx => observer.next(ctx),\n error: error => observer.error(error),\n complete: () => observer.complete()\n });\n\n observer.add(childSubscription);\n });\n }\n}\n","export type StateFn = (...args: any[]) => any;\n\n/**\n * Composes a array of functions from left to right. Example:\n *\n * compose([fn, final])(state, action);\n *\n * then the funcs have a signature like:\n *\n * function fn (state, action, next) {\n * console.log('here', state, action, next);\n * return next(state, action);\n * }\n *\n * function final (state, action) {\n * console.log('here', state, action);\n * return state;\n * }\n *\n * the last function should not call `next`.\n *\n * @ignore\n */\nexport const compose = (funcs: StateFn[]) => (...args: any[]) => {\n const curr = funcs.shift()!;\n return curr(...args, (...nextArgs: any[]) => compose(funcs)(...nextArgs));\n};\n","import { ErrorHandler, Injectable, Injector } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { leaveNgxs } from '../operators/leave-ngxs';\nimport { NgxsExecutionStrategy } from '../execution/symbols';\n\n/**\n * This operator is used for piping the observable result\n * from the `dispatch()`. It has a \"smart\" error handling\n * strategy that allows us to decide whether we propagate\n * errors to Angular's `ErrorHandler` or enable users to\n * handle them manually. We consider following cases:\n * 1) `store.dispatch()` (no subscribe) -> call `handleError()`\n * 2) `store.dispatch().subscribe()` (no error callback) -> call `handleError()`\n * 3) `store.dispatch().subscribe({ error: ... })` -> don't call `handleError()`\n * 4) `toPromise()` without `catch` -> do `handleError()`\n * 5) `toPromise()` with `catch` -> don't `handleError()`\n */\nexport function ngxsErrorHandler<T>(\n internalErrorReporter: InternalErrorReporter,\n ngxsExecutionStrategy: NgxsExecutionStrategy\n) {\n return (source: Observable<T>) => {\n let subscribed = false;\n\n source.subscribe({\n error: error => {\n // Do not trigger change detection for a microtask. This depends on the execution\n // strategy being used, but the default `DispatchOutsideZoneNgxsExecutionStrategy`\n // leaves the Angular zone.\n ngxsExecutionStrategy.enter(() =>\n Promise.resolve().then(() => {\n if (!subscribed) {\n ngxsExecutionStrategy.leave(() =>\n internalErrorReporter.reportErrorSafely(error)\n );\n }\n })\n );\n }\n });\n\n return new Observable(subscriber => {\n subscribed = true;\n return source.pipe(leaveNgxs(ngxsExecutionStrategy)).subscribe(subscriber);\n });\n };\n}\n\n@Injectable({ providedIn: 'root' })\nexport class InternalErrorReporter {\n /** Will be set lazily to be backward compatible. */\n private _errorHandler: ErrorHandler = null!;\n\n constructor(private _injector: Injector) {}\n\n reportErrorSafely(error: any): void {\n if (this._errorHandler === null) {\n this._errorHandler = this._injector.get(ErrorHandler);\n }\n // The `try-catch` is used to avoid handling the error twice. Suppose we call\n // `handleError` which re-throws the error internally. The re-thrown error will\n // be caught by zone.js which will then get to the `zone.onError.emit()` and the\n // `onError` subscriber will call `handleError` again.\n try {\n this._errorHandler.handleError(error);\n } catch {}\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\n\nimport { PlainObject } from '@ngxs/store/internals';\n\nimport { OrderedBehaviorSubject } from './custom-rxjs-subjects';\n\n/**\n * BehaviorSubject of the entire state.\n * @ignore\n */\n@Injectable({ providedIn: 'root' })\nexport class StateStream extends OrderedBehaviorSubject<PlainObject> implements OnDestroy {\n constructor() {\n super({});\n }\n\n ngOnDestroy(): void {\n // The `StateStream` should never emit values once the root view is removed, e.g. when the `NgModuleRef.destroy()` is called.\n // This will eliminate memory leaks in server-side rendered apps where the `StateStream` is created per each HTTP request, users\n // might forget to unsubscribe from `store.select` or `store.subscribe`, thus this will lead to huge memory leaks in SSR apps.\n this.complete();\n }\n}\n","import { Inject, Injectable, Optional, SkipSelf } from '@angular/core';\nimport { NGXS_PLUGINS, NgxsPlugin, NgxsPluginFn } from './symbols';\n\n@Injectable()\nexport class PluginManager {\n public plugins: NgxsPluginFn[] = [];\n\n constructor(\n @Optional()\n @SkipSelf()\n private _parentManager: PluginManager,\n @Inject(NGXS_PLUGINS)\n @Optional()\n private _pluginHandlers: NgxsPlugin[]\n ) {\n this.registerHandlers();\n }\n\n private get rootPlugins(): NgxsPluginFn[] {\n return (this._parentManager && this._parentManager.plugins) || this.plugins;\n }\n\n private registerHandlers(): void {\n const pluginHandlers: NgxsPluginFn[] = this.getPluginHandlers();\n this.rootPlugins.push(...pluginHandlers);\n }\n\n private getPluginHandlers(): NgxsPluginFn[] {\n const handlers: NgxsPlugin[] = this._pluginHandlers || [];\n return handlers.map(\n (plugin: NgxsPlugin) =>\n (plugin.handle ? plugin.handle.bind(plugin) : plugin) as NgxsPluginFn\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { EMPTY, forkJoin, Observable, of, Subject, throwError } from 'rxjs';\nimport { exhaustMap, filter, shareReplay, take } from 'rxjs/operators';\n\nimport { compose } from '../utils/compose';\nimport { InternalErrorReporter, ngxsErrorHandler } from './error-handler';\nimport { ActionContext, ActionStatus, InternalActions } from '../actions-stream';\nimport { StateStream } from './state-stream';\nimport { PluginManager } from '../plugin-manager';\nimport { InternalNgxsExecutionStrategy } from '../execution/internal-ngxs-execution-strategy';\nimport { getActionTypeFromInstance } from '../utils/utils';\n\n/**\n * Internal Action result stream that is emitted when an action is completed.\n * This is used as a method of returning the action result to the dispatcher\n * for the observable returned by the dispatch(...) call.\n * The dispatcher then asynchronously pushes the result from this stream onto the main action stream as a result.\n */\n@Injectable({ providedIn: 'root' })\nexport class InternalDispatchedActionResults extends Subject<ActionContext> {}\n\n@Injectable({ providedIn: 'root' })\nexport class InternalDispatcher {\n constructor(\n private _actions: InternalActions,\n private _actionResults: InternalDispatchedActionResults,\n private _pluginManager: PluginManager,\n private _stateStream: StateStream,\n private _ngxsExecutionStrategy: InternalNgxsExecutionStrategy,\n private _internalErrorReporter: InternalErrorReporter\n ) {}\n\n /**\n * Dispatches event(s).\n */\n dispatch(actionOrActions: any | any[]): Observable<any> {\n const result = this._ngxsExecutionStrategy.enter(() =>\n this.dispatchByEvents(actionOrActions)\n );\n\n return result.pipe(\n ngxsErrorHandler(this._internalErrorReporter, this._ngxsExecutionStrategy)\n );\n }\n\n private dispatchByEvents(actionOrActions: any | any[]): Observable<any> {\n if (Array.isArray(actionOrActions)) {\n if (actionOrActions.length === 0) return of(this._stateStream.getValue());\n return forkJoin(actionOrActions.map(action => this.dispatchSingle(action)));\n } else {\n return this.dispatchSingle(actionOrActions);\n }\n }\n\n private dispatchSingle(action: any): Observable<any> {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const type: string | undefined = getActionTypeFromInstance(action);\n if (!type) {\n const error = new Error(\n `This action doesn't have a type property: ${action.constructor.name}`\n );\n return throwError(error);\n }\n }\n\n const prevState = this._stateStream.getValue();\n const plugins = this._pluginManager.plugins;\n\n return (\n compose([\n ...plugins,\n (nextState: any, nextAction: any) => {\n if (nextState !== prevState) {\n this._stateStream.next(nextState);\n }\n const actionResult$ = this.getActionResultStream(nextAction);\n actionResult$.subscribe(ctx => this._actions.next(ctx));\n this._actions.next({ action: nextAction, status: ActionStatus.Dispatched });\n return this.createDispatchObservable(actionResult$);\n }\n ])(prevState, action) as Observable<any>\n ).pipe(shareReplay());\n }\n\n private getActionResultStream(action: any): Observable<ActionContext> {\n return this._actionResults.pipe(\n filter(\n (ctx: ActionContext) => ctx.action === action && ctx.status !== ActionStatus.Dispatched\n ),\n take(1),\n shareReplay()\n );\n }\n\n private createDispatchObservable(actionResult$: Observable<ActionContext>): Observable<any> {\n return actionResult$\n .pipe(\n exhaustMap((ctx: ActionContext) => {\n switch (ctx.status) {\n case ActionStatus.Successful:\n return of(this._stateStream.getValue());\n case ActionStatus.Errored:\n return throwError(ctx.error);\n default:\n return EMPTY;\n }\n })\n )\n .pipe(shareReplay());\n }\n}\n","/**\n * Object freeze code\n * https://github.com/jsdf/deep-freeze\n */\nexport const deepFreeze = (o: any) => {\n Object.freeze(o);\n\n const oIsFunction = typeof o === 'function';\n const hasOwnProp = Object.prototype.hasOwnProperty;\n\n Object.getOwnPropertyNames(o).forEach(function(prop) {\n if (\n hasOwnProp.call(o, prop) &&\n (oIsFunction ? prop !== 'caller' && prop !== 'callee' && prop !== 'arguments' : true) &&\n o[prop] !== null &&\n (typeof o[prop] === 'object' || typeof o[prop] === 'function') &&\n !Object.isFrozen(o[prop])\n ) {\n deepFreeze(o[prop]);\n }\n });\n\n return o;\n};\n","import { Injectable } from '@angular/core';\n\nimport { StateOperations, StatesAndDefaults } from '../internal/internals';\nimport { InternalDispatcher } from '../internal/dispatcher';\nimport { StateStream } from './state-stream';\nimport { NgxsConfig } from '../symbols';\nimport { deepFreeze } from '../utils/freeze';\n\n/**\n * @ignore\n */\n@Injectable({ providedIn: 'root' })\nexport class InternalStateOperations {\n constructor(\n private _stateStream: StateStream,\n private _dispatcher: InternalDispatcher,\n private _config: NgxsConfig\n ) {}\n\n /**\n * Returns the root state operators.\n */\n getRootStateOperations(): StateOperations<any> {\n const rootStateOperations = {\n getState: () => this._stateStream.getValue(),\n setState: (newState: any) => this._stateStream.next(newState),\n dispatch: (actionOrActions: any | any[]) => this._dispatcher.dispatch(actionOrActions)\n };\n\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n return this._config.developmentMode\n ? ensureStateAndActionsAreImmutable(rootStateOperations)\n : rootStateOperations;\n } else {\n return rootStateOperations;\n }\n }\n\n setStateToTheCurrentWithNew(results: StatesAndDefaults): void {\n const stateOperations: StateOperations<any> = this.getRootStateOperations();\n\n // Get our current stream\n const currentState = stateOperations.getState();\n // Set the state to the current + new\n stateOperations.setState({ ...currentState, ...results.defaults });\n }\n}\n\nfunction ensureStateAndActionsAreImmutable(root: StateOperations<any>): StateOperations<any> {\n return {\n getState: () => root.getState(),\n setState: value => {\n const frozenValue = deepFreeze(value);\n return root.setState(frozenValue);\n },\n dispatch: actions => {\n return root.dispatch(actions);\n }\n };\n}\n","import {\n throwPatchingArrayError,\n throwPatchingPrimitiveError\n} from '../configs/messages.config';\nimport { ExistingState, StateOperator } from '@ngxs/store/operators';\n\nexport function simplePatch<T>(value: Partial<T>): StateOperator<T> {\n return (existingState: ExistingState<T>) => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (Array.isArray(value)) {\n throwPatchingArrayError();\n } else if (typeof value !== 'object') {\n throwPatchingPrimitiveError();\n }\n }\n\n const newState: any = { ...(existingState as any) };\n for (const key in value) {\n // deep clone for patch compatibility\n newState[key] = (value as any)[key];\n }\n\n return newState as T;\n };\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport { ExistingState, StateOperator, isStateOperator } from '@ngxs/store/operators';\n\nimport { StateContext } from '../symbols';\nimport { MappedStore, StateOperations } from '../internal/internals';\nimport { setValue, getValue } from '../utils/utils';\nimport { InternalStateOperations } from '../internal/state-operations';\nimport { simplePatch } from './state-operators';\n\n/**\n * State Context factory class\n * @ignore\n */\n@Injectable({ providedIn: 'root' })\nexport class StateContextFactory {\n constructor(private _internalStateOperations: InternalStateOperations) {}\n\n /**\n * Create the state context\n */\n createStateContext<T>(mappedStore: MappedStore): StateContext<T> {\n const root = this._internalStateOperations.getRootStateOperations();\n\n return {\n getState(): T {\n const currentAppState = root.getState();\n return getState(currentAppState, mappedStore.path);\n },\n patchState(val: Partial<T>): T {\n const currentAppState = root.getState();\n const patchOperator = simplePatch<T>(val);\n return setStateFromOperator(root, currentAppState, patchOperator, mappedStore.path);\n },\n setState(val: T | StateOperator<T>): T {\n const currentAppState = root.getState();\n return isStateOperator(val)\n ? setStateFromOperator(root, currentAppState, val, mappedStore.path)\n : setStateValue(root, currentAppState, val, mappedStore.path);\n },\n dispatch(actions: any | any[]): Observable<void> {\n return root.dispatch(actions);\n }\n };\n }\n}\n\nfunction setStateValue<T>(\n root: StateOperations<any>,\n currentAppState: any,\n newValue: T,\n path: string\n): any {\n const newAppState = setValue(currentAppState, path, newValue);\n root.setState(newAppState);\n return newAppState;\n // In doing this refactoring I noticed that there is a 'bug' where the\n // application state is returned instead of this state slice.\n // This has worked this way since the beginning see:\n // https://github.com/ngxs/store/blame/324c667b4b7debd8eb979006c67ca0ae347d88cd/src/state-factory.ts\n // This needs to be fixed, but is a 'breaking' change.\n // I will do this fix in a subsequent PR and we can decide how to handle it.\n}\n\nfunction setStateFromOperator<T>(\n root: StateOperations<any>,\n currentAppState: any,\n stateOperator: StateOperator<T>,\n path: string\n) {\n const local = getState(currentAppState, path);\n const newValue = stateOperator(local as ExistingState<T>);\n return setStateValue(root, currentAppState, newValue, path);\n}\n\nfunction getState<T>(currentAppState: any, path: string): T {\n return getValue(currentAppState, path);\n}\n","import { getStoreMetadata, StateClassInternal, StatesByName } from '../internal/internals';\nimport {\n throwStateDecoratorError,\n throwStateNameError,\n throwStateNamePropertyError,\n throwStateUniqueError\n} from '../configs/messages.config';\n\nconst stateNameRegex = new RegExp('^[a-zA-Z0-9_]+$');\n\nexport function ensureStateNameIsValid(name: string | null): void | never {\n if (!name) {\n throwStateNamePropertyError();\n } else if (!stateNameRegex.test(name)) {\n throwStateNameError(name);\n }\n}\n\nexport function ensureStateNameIsUnique(\n stateName: string,\n state: StateClassInternal,\n statesByName: StatesByName\n): void | never {\n const existingState = statesByName[stateName];\n if (existingState && existingState !== state) {\n throwStateUniqueError(stateName, state.name, existingState.name);\n }\n}\n\nexport function ensureStatesAreDecorated(stateClasses: StateClassInternal[]): void | never {\n stateClasses.forEach((stateClass: StateClassInternal) => {\n if (!getStoreMetadata(stateClass)) {\n throwStateDecoratorError(stateClass.name);\n }\n });\n}\n","import { getUndecoratedStateInIvyWarningMessage } from '../configs/messages.config';\n\n/**\n * All provided or injected tokens must have `@Injectable` decorator\n * (previously, injected tokens without `@Injectable` were allowed\n * if another decorator was used, e.g. pipes).\n */\nexport function ensureStateClassIsInjectable(stateClass: any): void {\n if (jit_hasInjectableAnnotation(stateClass) || aot_hasNgInjectableDef(stateClass)) {\n return;\n }\n\n console.warn(getUndecoratedStateInIvyWarningMessage(stateClass.name));\n}\n\nfunction aot_hasNgInjectableDef(stateClass: any): boolean {\n // `ɵprov` is a static property added by the NGCC compiler. It always exists in\n // AOT mode because this property is added before runtime. If an application is running in\n // JIT mode then this property can be added by the `@Injectable()` decorator. The `@Injectable()`\n // decorator has to go after the `@State()` decorator, thus we prevent users from unwanted DI errors.\n return !!stateClass.ɵprov;\n}\n\nfunction jit_hasInjectableAnnotation(stateClass: any): boolean {\n // `ɵprov` doesn't exist in JIT mode (for instance when running unit tests with Jest).\n const annotations = stateClass.__annotations__ || [];\n return annotations.some((annotation: any) => annotation?.ngMetadataName === 'Injectable');\n}\n","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(public addedStates?: PlainObject) {}\n}\n","import { InjectionToken } from '@angular/core';\n\nimport { ActionType } from '../actions/symbols';\n\nexport interface NgxsDevelopmentOptions {\n // This allows setting only `true` because there's no reason to set `false`.\n // Developers may just skip importing the development module at all.\n warnOnUnhandledActions:\n | true\n | {\n ignore: ActionType[];\n };\n}\n\nexport const NGXS_DEVELOPMENT_OPTIONS = new InjectionToken<NgxsDevelopmentOptions>(\n 'NGXS_DEVELOPMENT_OPTIONS',\n {\n providedIn: 'root',\n factory: () => ({ warnOnUnhandledActions: true })\n }\n);\n","import { Inject, Injectable } from '@angular/core';\n\nimport { ActionType } from '../actions/symbols';\nimport { getActionTypeFromInstance } from '../utils/utils';\nimport { InitState, UpdateState } from '../actions/actions';\nimport { NgxsDevelopmentOptions, NGXS_DEVELOPMENT_OPTIONS } from './symbols';\n\n@Injectable()\nexport class NgxsUnhandledActionsLogger {\n /**\n * These actions should be ignored by default; the user can increase this\n * list in the future via the `ignoreActions` method.\n */\n private _ignoredActions = new Set<string>([InitState.type, UpdateState.type]);\n\n constructor(@Inject(NGXS_DEVELOPMENT_OPTIONS) options: NgxsDevelopmentOptions) {\n if (typeof options.warnOnUnhandledActions === 'object') {\n this.ignoreActions(...options.warnOnUnhandledActions.ignore);\n }\n }\n\n /**\n * Adds actions to the internal list of actions that should be ignored.\n */\n ignoreActions(...actions: ActionType[]): void {\n for (const action of actions) {\n this._ignoredActions.add(action.type);\n }\n }\n\n /** @internal */\n warn(action: any): void {\n const actionShouldBeIgnored = Array.from(this._ignoredActions).some(\n type => type === getActionTypeFromInstance(action)\n );\n\n if (actionShouldBeIgnored) {\n return;\n }\n\n action =\n action.constructor && action.constructor.name !== 'Object'\n ? action.constructor.name\n : action.type;\n\n console.warn(\n `The ${action} action has been dispatched but hasn't been handled. This may happen if the state with an action handler for this action is not registered.`\n );\n }\n}\n","import { Injectable, Injector, Optional, SkipSelf, Inject, OnDestroy } from '@angular/core';\nimport {\n forkJoin,\n from,\n Observable,\n of,\n throwError,\n Subscription,\n Subject,\n isObservable\n} from 'rxjs';\nimport {\n catchError,\n defaultIfEmpty,\n filter,\n map,\n mergeMap,\n shareReplay,\n takeUntil\n} from 'rxjs/operators';\nimport { INITIAL_STATE_TOKEN, PlainObjectOf, memoize } from '@ngxs/store/internals';\n\nimport { META_KEY, NgxsConfig } from '../symbols';\nimport {\n buildGraph,\n findFullParentPath,\n isObject,\n MappedStore,\n MetaDataModel,\n nameToState,\n propGetter,\n StateClassInternal,\n StateKeyGraph,\n StatesAndDefaults,\n StatesByName,\n topologicalSort,\n RuntimeSelectorContext,\n SharedSelectorOptions,\n getStoreMetadata\n} from './internals';\nimport { getActionTypeFromInstance, getValue, setValue } from '../utils/utils';\nimport { ofActionDispatched } from '../operators/of-action';\nimport { ActionContext, ActionStatus, InternalActions } from '../actions-stream';\nimport { InternalDispatchedActionResults } from '../internal/dispatcher';\nimport { StateContextFactory } from '../internal/state-context-factory';\nimport { ensureStateNameIsUnique, ensureStatesAreDecorated } from '../utils/store-validators';\nimport { ensureStateClassIsInjectable } from '../ivy/ivy-enabled-in-dev-mode';\nimport { NgxsUnhandledActionsLogger } from '../dev-features/ngxs-unhandled-actions-logger';\n\nconst NG_DEV_MODE = typeof ngDevMode === 'undefined' || ngDevMode;\n\n/**\n * The `StateFactory` class adds root and feature states to the graph.\n * This extracts state names from state classes, checks if they already\n * exist in the global graph, throws errors if their names are invalid, etc.\n * See its constructor, state factories inject state factories that are\n * parent-level providers. This is required to get feature states from the\n * injector on the same level.\n *\n * The `NgxsModule.forFeature(...)` returns `providers: [StateFactory, ...states]`.\n * The `StateFactory` is initialized on the feature level and goes through `...states`\n * to get them from the injector through `injector.get(state)`.\n * @ignore\n */\n@Injectable()\nexport class StateFactory implements OnDestroy {\n private _actionsSubscription: Subscription | null = null;\n\n constructor(\n private _injector: Injector,\n private _config: NgxsConfig,\n @Optional()\n @SkipSelf()\n private _parentFactory: StateFactory,\n private _actions: InternalActions,\n private _actionResults: InternalDispatchedActionResults,\n private _stateContextFactory: StateContextFactory,\n @Optional()\n @Inject(INITIAL_STATE_TOKEN)\n private _initialState: any\n ) {}\n\n private _states: MappedStore[] = [];\n\n get states(): MappedStore[] {\n return this._parentFactory ? this._parentFactory.states : this._states;\n }\n\n private _statesByName: StatesByName = {};\n\n get statesByName(): StatesByName {\n return this._parentFactory ? this._parentFactory.statesByName : this._statesByName;\n }\n\n private _statePaths: PlainObjectOf<string> = {};\n\n private get statePaths(): PlainObjectOf<string> {\n return this._parentFactory ? this._parentFactory.statePaths : this._statePaths;\n }\n\n getRuntimeSelectorContext = memoize(() => {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const stateFactory = this;\n\n function resolveGetter(key: string) {\n const path = stateFactory.statePaths[key];\n return path ? propGetter(path.split('.'), stateFactory._config) : null;\n }\n\n const context: RuntimeSelectorContext = this._parentFactory\n ? this._parentFactory.getRuntimeSelectorContext()\n : {\n getStateGetter(key: string) {\n let getter = resolveGetter(key);\n if (getter) {\n return getter;\n }\n return (...args) => {\n // Late loaded getter\n if (!getter) {\n getter = resolveGetter(key);\n }\n return getter ? getter(...args) : undefined;\n };\n },\n getSelectorOptions(localOptions?: SharedSelectorOptions) {\n const globalSelectorOptions = stateFactory._config.selectorOptions;\n return {\n ...globalSelectorOptions,\n ...(localOptions || {})\n };\n }\n };\n return context;\n });\n\n private static _cloneDefaults(defaults: any): any {\n let value = defaults;\n\n if (Array.isArray(defaults)) {\n value = defaults.slice();\n } else if (isObject(defaults)) {\n value = { ...defaults };\n } else if (defaults === undefined) {\n value = {};\n }\n\n return value;\n }\n\n ngOnDestroy(): void {\n this._actionsSubscription?.unsubscribe();\n }\n\n /**\n * Add a new state to the global defs.\n */\n add(stateClasses: StateClassInternal[]): MappedStore[] {\n if (NG_DEV_MODE) {\n ensureStatesAreDecorated(stateClasses);\n }\n\n const { newStates } = this.addToStatesMap(stateClasses);\n if (!newStates.length) return [];\n\n const stateGraph: StateKeyGraph = buildGraph(newStates);\n const sortedStates: string[] = topologicalSort(stateGraph);\n const paths: PlainObjectOf<string> = findFullParentPath(stateGraph);\n const nameGraph: PlainObjectOf<StateClassInternal> = nameToState(newStates);\n const bootstrappedStores: MappedStore[] = [];\n\n for (const name of sortedStates) {\n const stateClass: StateClassInternal = nameGraph[name];\n const path: string = paths[name];\n const meta: MetaDataModel = stateClass[META_KEY]!;\n\n this.addRuntimeInfoToMeta(meta, path);\n\n // Note: previously we called `ensureStateClassIsInjectable` within the\n // `State` decorator. This check is moved here because the `ɵprov` property\n // will not exist on the class in JIT mode (because it's set asynchronously\n // during JIT compilation through `Object.defineProperty`).\n if (NG_DEV_MODE) {\n ensureStateClassIsInjectable(stateClass);\n }\n\n const stateMap: MappedStore = {\n name,\n path,\n isInitialised: false,\n actions: meta.actions,\n instance: this._injector.get(stateClass),\n defaults: StateFactory._cloneDefaults(meta.defaults)\n };\n\n // ensure our store hasn't already been added\n // but don't throw since it could be lazy\n // loaded from different paths\n if (!this.hasBeenMountedAndBootstrapped(name, path)) {\n bootstrappedStores.push(stateMap);\n }\n\n this.states.push(stateMap);\n }\n\n return bootstrappedStores;\n }\n\n /**\n * Add a set of states to the store and return the defaults\n */\n addAndReturnDefaults(stateClasses: StateClassInternal[]): StatesAndDefaults {\n const classes: StateClassInternal[] = stateClasses || [];\n\n const mappedStores: MappedStore[] = this.add(classes);\n const defaults = mappedStores.reduce(\n (result: any, mappedStore: MappedStore) =>\n setValue(result, mappedStore.path, mappedStore.defaults),\n {}\n );\n return { defaults, states: mappedStores };\n }\n\n connectActionHandlers(): void {\n // Note: We have to connect actions only once when the `StateFactory`\n // is being created for the first time. This checks if we're in\n // a child state factory and the parent state factory already exists.\n if (this._parentFactory || this._actionsSubscription !== null) {\n return;\n }\n\n const dispatched$ = new Subject<ActionContext>();\n this._actionsSubscription = this._actions\n .pipe(\n filter((ctx: ActionContext) => ctx.status === ActionStatus.Dispatched),\n mergeMap(ctx => {\n dispatched$.next(ctx);\n const action = ctx.action;\n return this.invokeActions(dispatched$, action!).pipe(\n map(() => <ActionContext>{ action, status: ActionStatus.Successful }),\n defaultIfEmpty(<ActionContext>{ action, status: ActionStatus.Canceled }),\n catchError(error =>\n of(<ActionContext>{ action, status: ActionStatus.Errored, error })\n )\n );\n })\n )\n .subscribe(ctx => this._actionResults.next(ctx));\n }\n\n /**\n * Invoke actions on the states.\n */\n invokeActions(dispatched$: Observable<ActionContext>, action: any) {\n const type = getActionTypeFromInstance(action)!;\n const results = [];\n\n // Determines whether the dispatched action has been handled, this is assigned\n // to `true` within the below `for` loop if any `actionMetas` has been found.\n let actionHasBeenHandled = false;\n\n for (const metadata of this.states) {\n const actionMetas = metadata.actions[type];\n\n if (actionMetas) {\n for (const actionMeta of actionMetas) {\n const stateContext = this._stateContextFactory.createStateContext(metadata);\n try {\n let result = metadata.instance[actionMeta.fn](stateContext, action);\n\n if (result instanceof Promise) {\n result = from(result);\n }\n\n if (isObservable(result)) {\n // If this observable has been completed w/o emitting\n // any value then we wouldn't want to complete the whole chain\n // of actions. Since if any observable completes then\n // action will be canceled.\n // For instance if any action handler would've had such statement:\n // `handler(ctx) { return EMPTY; }`\n // then the action will be canceled.\n // See https://github.com/ngxs/store/issues/1568\n result = result.pipe(\n mergeMap((value: any) => {\n if (value instanceof Promise) {\n return from(value);\n }\n if (isObservable(value)) {\n return value;\n }\n return of(value);\n }),\n defaultIfEmpty({})\n );\n\n if (actionMeta.options.cancelUncompleted) {\n // todo: ofActionDispatched should be used with action class\n result = result.pipe(\n takeUntil(dispatched$.pipe(ofActionDispatched(action as any)))\n );\n }\n } else {\n result = of({}).pipe(shareReplay());\n }\n\n results.push(result);\n } catch (e) {\n results.push(throwError(e));\n }\n\n actionHasBeenHandled = true;\n }\n }\n }\n\n // The `NgxsUnhandledActionsLogger` is a tree-shakable class which functions\n // only during development.\n if (NG_DEV_MODE && !actionHasBeenHandled) {\n const unhandledActionsLogger = this._injector.get(NgxsUnhandledActionsLogger, null);\n // The `NgxsUnhandledActionsLogger` will not be resolved by the injector if the\n // `NgxsDevelopmentModule` is not provided. It's enough to check whether the `injector.get`\n // didn't return `null` so we may ensure the module has been imported.\n if (unhandledActionsLogger) {\n unhandledActionsLogger.warn(action);\n }\n }\n\n if (!results.length) {\n results.push(of({}));\n }\n\n return forkJoin(results);\n }\n\n private addToStatesMap(stateClasses: StateClassInternal[]): {\n newStates: StateClassInternal[];\n } {\n const newStates: StateClassInternal[] = [];\n const statesMap: StatesByName = this.statesByName;\n\n for (const stateClass of stateClasses) {\n const stateName = getStoreMetadata(stateClass).name!;\n if (NG_DEV_MODE) {\n ensureStateNameIsUnique(stateName, stateClass, statesMap);\n }\n const unmountedState = !statesMap[stateName];\n if (unmountedState) {\n newStates.push(stateClass);\n statesMap[stateName] = stateClass;\n }\n }\n\n return { newStates };\n }\n\n private addRuntimeInfoToMeta(meta: MetaDataModel, path: string): void {\n this.statePaths[meta.name!] = path;\n // TODO: v4 - we plan to get rid of the path property because it is non-deterministic\n // we can do this when we get rid of the incorrectly exposed getStoreMetadata\n // We will need to come up with an alternative in v4 because this is used by many plugins\n meta.path = path;\n }\n\n private hasBeenMountedAndBootstrapped(name: string, path: string): boolean {\n const valueIsBootstrappedInInitialState: boolean =\n getValue(this._initialState, path) !== undefined;\n // This checks whether a state has been already added to the global graph and\n // its lifecycle is in 'bootstrapped' state.\n return this.statesByName[name] && valueIsBootstrappedInInitialState;\n }\n}\n","import { memoize } from '@ngxs/store/internals';\n\nimport {\n getSelectorMetadata,\n getStoreMetadata,\n SelectorMetaDataModel,\n SharedSelectorOptions,\n RuntimeSelectorContext,\n SelectorFactory,\n} from '../internal/internals';\nimport { CreationMetadata, RuntimeSelectorInfo } from './selector-models';\n\nexport function createRootSelectorFactory<T extends (...args: any[]) => any>(\n selectorMetaData: SelectorMetaDataModel,\n selectors: any[] | undefined,\n memoizedSelectorFn: T\n): SelectorFactory {\n return (context: RuntimeSelectorContext) => {\n const { argumentSelectorFunctions, selectorOptions } = getRuntimeSelectorInfo(\n context,\n selectorMetaData,\n selectors\n );\n\n return function selectFromRoot(rootState: any) {\n // Determine arguments from the app state using the selectors\n const results = argumentSelectorFunctions.map((argFn) => argFn(rootState));\n\n // if the lambda tries to access a something on the\n // state that doesn't exist, it will throw a TypeError.\n // since this is quite usual behaviour, we simply return undefined if so.\n try {\n return memoizedSelectorFn(...results);\n } catch (ex) {\n if (ex instanceof TypeError && selectorOptions.suppressErrors) {\n return undefined;\n }\n\n throw ex;\n }\n };\n };\n}\n\nexport function createMemoizedSelectorFn<T extends (...args: any[]) => any>(\n originalFn: T,\n creationMetadata: Partial<CreationMetadata> | undefined\n) {\n const containerClass = creationMetadata && creationMetadata.containerClass;\n const wrappedFn = function wrappedSelectorFn(...args: any[]) {\n const returnValue = originalFn.apply(containerClass, args);\n if (returnValue instanceof Function) {\n const innerMemoizedFn = memoize.apply(null, [returnValue]);\n return innerMemoizedFn;\n }\n return returnValue;\n } as T;\n const memoizedFn = memoize(wrappedFn);\n Object.setPrototypeOf(memoizedFn, originalFn);\n return memoizedFn;\n}\n\nfunction getRuntimeSelectorInfo(\n context: RuntimeSelectorContext,\n selectorMetaData: SelectorMetaDataModel,\n selectors: any[] | undefined = []\n): RuntimeSelectorInfo {\n const localSelectorOptions = selectorMetaData.getSelectorOptions();\n const selectorOptions = context.getSelectorOptions(localSelectorOptions);\n const selectorsToApply = getSelectorsToApply(\n selectors,\n selectorOptions,\n selectorMetaData.containerClass\n );\n\n const argumentSelectorFunctions = selectorsToApply.map((selector) => {\n const factory = getRootSelectorFactory(selector);\n return factory(context);\n });\n return {\n selectorOptions,\n argumentSelectorFunctions,\n };\n}\n\nfunction getSelectorsToApply(\n selectors: any[] | undefined = [],\n selectorOptions: SharedSelectorOptions,\n containerClass: any\n) {\n const selectorsToApply = [];\n const canInjectContainerState =\n selectors.length === 0 || selectorOptions.injectContainerState;\n if (containerClass && canInjectContainerState) {\n // If we are on a state class, add it as the first selector parameter\n const metadata = getStoreMetadata(containerClass);\n if (metadata) {\n selectorsToApply.push(containerClass);\n }\n }\n if (selectors) {\n selectorsToApply.push(...selectors);\n }\n return selectorsToApply;\n}\n\n/**\n * This function gets the factory function to create the selector to get the selected slice from the app state\n * @ignore\n */\nexport function getRootSelectorFactory(selector: any): SelectorFactory {\n const metadata = getSelectorMetadata(selector) || getStoreMetadata(selector);\n return (metadata && metadata.makeRootSelector) || (() => selector);\n}\n","// tslint:disable:unified-signatures\nimport { Inject, Injectable, Optional, Type } from '@angular/core';\nimport { Observable, of, Subscription, throwError } from 'rxjs';\nimport { catchError, distinctUntilChanged, map, shareReplay, take } from 'rxjs/operators';\nimport { INITIAL_STATE_TOKEN, PlainObject } from '@ngxs/store/internals';\n\nimport { InternalNgxsExecutionStrategy } from './execution/internal-ngxs-execution-strategy';\nimport { InternalStateOperations } from './internal/state-operations';\nimport { getRootSelectorFactory } from './selectors/selector-utils';\nimport { StateStream } from './internal/state-stream';\nimport { leaveNgxs } from './operators/leave-ngxs';\nimport { NgxsConfig } from './symbols';\nimport { StateToken } from './state-token/state-token';\nimport { StateFactory } from './internal/state-factory';\n\n@Injectable({ providedIn: 'root' })\nexport class Store {\n /**\n * This is a derived state stream that leaves NGXS execution strategy to emit state changes within the Angular zone,\n * because state is being changed actually within the `<root>` zone, see `InternalDispatcher#dispatchSingle`.\n * All selects would use this stream, and it would call leave only once for any state change across all active selectors.\n */\n private _selectableStateStream = this._stateStream.pipe(\n leaveNgxs(this._internalExecutionStrategy),\n shareReplay({ bufferSize: 1, refCount: true })\n );\n\n constructor(\n private _stateStream: StateStream,\n private _internalStateOperations: InternalStateOperations,\n private _config: NgxsConfig,\n private _internalExecutionStrategy: InternalNgxsExecutionStrategy,\n private _stateFactory: StateFactory,\n @Optional()\n @Inject(INITIAL_STATE_TOKEN)\n initialStateValue: any\n ) {\n this.initStateStream(initialStateValue);\n }\n\n /**\n * Dispatches event(s).\n */\n dispatch(actionOrActions: any | any[]): Observable<any> {\n return this._internalStateOperations.getRootStateOperations().dispatch(actionOrActions);\n }\n\n /**\n * Selects a slice of data from the store.\n */\n select<T>(selector: (state: any, ...states: any[]) => T): Observable<T>;\n select<T = any>(selector: string | Type<any>): Observable<T>;\n select<T>(selector: StateToken<T>): Observable<T>;\n select(selector: any): Observable<any> {\n const selectorFn = this.getStoreBoundSelectorFn(selector);\n return this._selectableStateStream.pipe(\n map(selectorFn),\n catchError((err: Error): Observable<never> | Observable<undefined> => {\n // if error is TypeError we swallow it to prevent usual errors with property access\n const { suppressErrors } = this._config.selectorOptions;\n\n if (err instanceof TypeError && suppressErrors) {\n return of(undefined);\n }\n\n // rethrow other errors\n return throwError(err);\n }),\n distinctUntilChanged(),\n leaveNgxs(this._internalExecutionStrategy)\n );\n }\n\n /**\n * Select one slice of data from the store.\n */\n\n selectOnce<T>(selector: (state: any, ...states: any[]) => T): Observable<T>;\n selectOnce<T = any>(selector: string | Type<any>): Observable<T>;\n selectOnce<T>(selector: StateToken<T>): Observable<T>;\n selectOnce(selector: any): Observable<any> {\n return this.select(selector).pipe(take(1));\n }\n\n /**\n * Select a snapshot from the state.\n */\n selectSnapshot<T>(selector: (state: any, ...states: any[]) => T): T;\n selectSnapshot<T = any>(selector: string | Type<any>): T;\n selectSnapshot<T>(selector: StateToken<T>): T;\n selectSnapshot(selector: any): any {\n const selectorFn = this.getStoreBoundSelectorFn(selector);\n return selectorFn(this._stateStream.getValue());\n }\n\n /**\n * Allow the user to subscribe to the root of the state\n */\n subscribe(fn?: (value: any) => void): Subscription {\n return this._selectableStateStream\n .pipe(leaveNgxs(this._internalExecutionStrategy))\n .subscribe(fn);\n }\n\n /**\n * Return the raw value of the state.\n */\n snapshot(): any {\n return this._internalStateOperations.getRootStateOperations().getState();\n }\n\n /**\n * Reset the state to a specific point in time. This method is useful\n * for plugin's who need to modify the state directly or unit testing.\n */\n reset(state: any) {\n return this._internalStateOperations.getRootStateOperations().setState(state);\n }\n\n private getStoreBoundSelectorFn(selector: any) {\n const makeSelectorFn = getRootSelectorFactory(selector);\n const runtimeContext = this._stateFactory.getRuntimeSelectorContext();\n return makeSelectorFn(runtimeContext);\n }\n\n private initStateStream(initialStateValue: any): void {\n const value: PlainObject = this._stateStream.value;\n const storeIsEmpty: boolean = !value || Object.keys(value).length === 0;\n if (storeIsEmpty) {\n const defaultStateNotEmpty: boolean = Object.keys(this._config.defaultsState).length > 0;\n const storeValues: PlainObject = defaultStateNotEmpty\n ? { ...this._config.defaultsState, ...initialStateValue }\n : initialStateValue;\n\n this._stateStream.next(storeValues);\n }\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\n\nimport { Store } from '../../store';\nimport { NgxsConfig } from '../../symbols';\n\n/**\n * Allows the select decorator to get access to the DI store, this is used internally\n * in `@Select` decorator.\n */\n@Injectable({ providedIn: 'root' })\nexport class SelectFactory implements OnDestroy {\n static store: Store | null = null;\n static config: NgxsConfig | null = null;\n\n constructor(store: Store, config: NgxsConfig) {\n SelectFactory.store = store;\n SelectFactory.config = config;\n }\n\n ngOnDestroy(): void {\n SelectFactory.store = null;\n SelectFactory.config = null;\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { NgxsBootstrapper } from '@ngxs/store/internals';\nimport { EMPTY, Subject } from 'rxjs';\nimport {\n catchError,\n filter,\n mergeMap,\n pairwise,\n startWith,\n takeUntil,\n tap\n} from 'rxjs/operators';\n\nimport { Store } from '../store';\nimport { getValue } from '../utils/utils';\nimport { InternalErrorReporter } from './error-handler';\nimport { StateContextFactory } from './state-context-factory';\nimport { InternalStateOperations } from './state-operations';\nimport { MappedStore, StatesAndDefaults } from './internals';\nimport { NgxsLifeCycle, NgxsSimpleChange, StateContext } from '../symbols';\n\n@Injectable({ providedIn: 'root' })\nexport class LifecycleStateManager implements OnDestroy {\n private readonly _destroy$ = new Subject<void>();\n\n constructor(\n private _store: Store,\n private _internalErrorReporter: InternalErrorReporter,\n private _internalStateOperations: InternalStateOperations,\n private _stateContextFactory: StateContextFactory,\n private _bootstrapper: NgxsBootstrapper\n ) {}\n\n ngOnDestroy(): void {\n this._destroy$.next();\n }\n\n ngxsBootstrap<T>(action: T, results: StatesAndDefaults | undefined): void {\n this._internalStateOperations\n .getRootStateOperations()\n .dispatch(action)\n .pipe(\n filter(() => !!results),\n tap(() => this._invokeInitOnStates(results!.states)),\n mergeMap(() => this._bootstrapper.appBootstrapped$),\n filter(appBootstrapped => !!appBootstrapped),\n catchError(error => {\n // The `SafeSubscriber` (which is used by most RxJS operators) re-throws\n // errors asynchronously (`setTimeout(() => { throw error })`). This might\n // break existing user's code or unit tests. We catch the error manually to\n // be backward compatible with the old behavior.\n this._internalErrorReporter.reportErrorSafely(error);\n return EMPTY;\n }),\n takeUntil(this._destroy$)\n )\n .subscribe(() => this._invokeBootstrapOnStates(results!.states));\n }\n\n private _invokeInitOnStates(mappedStores: MappedStore[]): void {\n for (const mappedStore of mappedStores) {\n const instance: NgxsLifeCycle = mappedStore.instance;\n\n if (instance.ngxsOnChanges) {\n this._store\n .select(state => getValue(state, mappedStore.path))\n .pipe(startWith(undefined), pairwise(), takeUntil(this._destroy$))\n .subscribe(([previousValue, currentValue]) => {\n const change = new NgxsSimpleChange(\n previousValue,\n currentValue,\n !mappedStore.isInitialised\n );\n instance.ngxsOnChanges!(change);\n });\n }\n\n if (instance.ngxsOnInit) {\n instance.ngxsOnInit(this._getStateContext(mappedStore));\n }\n\n mappedStore.isInitialised = true;\n }\n }\n\n private _invokeBootstrapOnStates(mappedStores: MappedStore[]) {\n for (const mappedStore of mappedStores) {\n const instance: NgxsLifeCycle = mappedStore.instance;\n if (instance.ngxsAfterBootstrap) {\n instance.ngxsAfterBootstrap(this._getStateContext(mappedStore));\n }\n }\n }\n\n private _getStateContext(mappedStore: MappedStore): StateContext<any> {\n return this._stateContextFactory.createStateContext(mappedStore);\n }\n}\n","import { Inject, NgModule, Optional } from '@angular/core';\n\nimport { StateFactory } from '../internal/state-factory';\nimport { InternalStateOperations } from '../internal/state-operations';\nimport { Store } from '../store';\nimport { SelectFactory } from '../decorators/select/select-factory';\nimport { ROOT_STATE_TOKEN } from '../symbols';\nimport { StateClassInternal, StatesAndDefaults } from '../internal/internals';\nimport { LifecycleStateManager } from '../internal/lifecycle-state-manager';\nimport { InitState } from '../actions/actions';\n\n/**\n * Root module\n * @ignore\n */\n@NgModule()\nexport class NgxsRootModule {\n constructor(\n factory: StateFactory,\n internalStateOperations: InternalStateOperations,\n _store: Store,\n _select: SelectFactory,\n @Optional()\n @Inject(ROOT_STATE_TOKEN)\n states: StateClassInternal[] = [],\n lifecycleStateManager: LifecycleStateManager\n ) {\n // Add stores to the state graph and return their defaults\n const results: StatesAndDefaults = factory.addAndReturnDefaults(states);\n\n internalStateOperations.setStateToTheCurrentWithNew(results);\n\n // Connect our actions stream\n factory.connectActionHandlers();\n\n // Dispatch the init action and invoke init and bootstrap functions after\n lifecycleStateManager.ngxsBootstrap(new InitState(), results);\n }\n}\n","import { Inject, NgModule, Optional } from '@angular/core';\n\nimport { Store } from '../store';\nimport { InternalStateOperations } from '../internal/state-operations';\nimport { StateFactory } from '../internal/state-factory';\nimport { FEATURE_STATE_TOKEN } from '../symbols';\nimport { LifecycleStateManager } from '../internal/lifecycle-state-manager';\nimport { StateClassInternal, StatesAndDefaults } from '../internal/internals';\nimport { UpdateState } from '../actions/actions';\n\n/**\n * Feature module\n * @ignore\n */\n@NgModule()\nexport class NgxsFeatureModule {\n constructor(\n _store: Store,\n internalStateOperations: InternalStateOperations,\n factory: StateFactory,\n @Optional()\n @Inject(FEATURE_STATE_TOKEN)\n states: StateClassInternal[][] = [],\n lifecycleStateManager: LifecycleStateManager\n ) {\n // Since FEATURE_STATE_TOKEN is a multi token, we need to\n // flatten it [[Feature1State, Feature2State], [Feature3State]]\n const flattenedStates: StateClassInternal[] = NgxsFeatureModule.flattenStates(states);\n\n // add stores to the state graph and return their defaults\n const results: StatesAndDefaults = factory.addAndReturnDefaults(flattenedStates);\n\n if (results.states.length) {\n internalStateOperations.setStateToTheCurrentWithNew(results);\n\n // dispatch the update action and invoke init and bootstrap functions after\n lifecycleStateManager.ngxsBootstrap(new UpdateState(results.defaults), results);\n }\n }\n\n private static flattenStates(states: StateClassInternal[][] = []): StateClassInternal[] {\n return states.reduce(\n (total: StateClassInternal[], values: StateClassInternal[]) => total.concat(values),\n []\n );\n }\n}\n","import {\n APP_BOOTSTRAP_LISTENER,\n ModuleWithProviders,\n NgModule,\n Provider\n} from '@angular/core';\nimport {\n ɵNGXS_STATE_FACTORY,\n ɵNGXS_STATE_CONTEXT_FACTORY,\n NgxsBootstrapper,\n StateClass\n} from '@ngxs/store/internals';\n\nimport {\n FEATURE_STATE_TOKEN,\n NgxsModuleOptions,\n ROOT_OPTIONS,\n ROOT_STATE_TOKEN\n} from './symbols';\nimport { USER_PROVIDED_NGXS_EXECUTION_STRATEGY } from './execution/symbols';\nimport { StateFactory } from './internal/state-factory';\nimport { StateContextFactory } from './internal/state-context-factory';\nimport { PluginManager } from './plugin-manager';\nimport { NgxsRootModule } from './modules/ngxs-root.module';\nimport { NgxsFeatureModule } from './modules/ngxs-feature.module';\n\n/**\n * Ngxs Module\n */\n@NgModule()\nexport class NgxsModule {\n /**\n * Root module factory\n */\n static forRoot(\n states: StateClass[] = [],\n options: NgxsModuleOptions = {}\n ): ModuleWithProviders<NgxsRootModule> {\n return {\n ngModule: NgxsRootModule,\n providers: [\n StateFactory,\n PluginManager,\n ...states,\n ...NgxsModule.ngxsTokenProviders(states, options)\n ]\n };\n }\n\n /**\n * Feature module factory\n */\n static forFeature(states: StateClass[] = []): ModuleWithProviders<NgxsFeatureModule> {\n return {\n ngModule: NgxsFeatureModule,\n providers: [\n // This is required on the feature level, see comments in `state-factory.ts`.\n StateFactory,\n PluginManager,\n ...states,\n {\n provide: FEATURE_STATE_TOKEN,\n multi: true,\n useValue: states\n }\n ]\n };\n }\n\n private static ngxsTokenProviders(\n states: StateClass[],\n options: NgxsModuleOptions\n ): Provider[] {\n return [\n {\n provide: USER_PROVIDED_NGXS_EXECUTION_STRATEGY,\n useValue: options.executionStrategy\n },\n {\n provide: ROOT_STATE_TOKEN,\n useValue: states\n },\n {\n provide: ROOT_OPTIONS,\n useValue: options\n },\n {\n provide: APP_BOOTSTRAP_LISTENER,\n useFactory: NgxsModule.appBootstrapListenerFactory,\n multi: true,\n deps: [NgxsBootstrapper]\n },\n {\n provide: ɵNGXS_STATE_CONTEXT_FACTORY,\n useExisting: StateContextFactory\n },\n {\n provide: ɵNGXS_STATE_FACTORY,\n useExisting: StateFactory\n }\n ];\n }\n\n private static appBootstrapListenerFactory(bootstrapper: NgxsBootstrapper): Function {\n return () => bootstrapper.bootstrap();\n }\n}\n","import { ensureStoreMetadata } from '../internal/internals';\nimport { ActionType, ActionOptions } from '../actions/symbols';\nimport { throwActionDecoratorError } from '../configs/messages.config';\n\n/**\n * Decorates a method with a action information.\n */\nexport function Action(\n actions: ActionType | ActionType[],\n options?: ActionOptions\n): MethodDecorator {\n return (target: any, name: string | symbol): void => {\n // Caretaker note: we have still left the `typeof` condition in order to avoid\n // creating a breaking change for projects that still use the View Engine.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const isStaticMethod = target.hasOwnProperty('prototype');\n\n if (isStaticMethod) {\n throwActionDecoratorError();\n }\n }\n\n const meta = ensureStoreMetadata(target.constructor);\n\n if (!Array.isArray(actions)) {\n actions = [actions];\n }\n\n for (const action of actions) {\n const type = action.type;\n\n if (!meta.actions[type]) {\n meta.actions[type] = [];\n }\n\n meta.actions[type].push({\n fn: name,\n options: options || {},\n type\n });\n }\n };\n}\n","import { StateClass } from '@ngxs/store/internals';\n\nimport { ensureStateNameIsValid } from '../utils/store-validators';\nimport { META_KEY, META_OPTIONS_KEY, StoreOptions } from '../symbols';\nimport { ensureStoreMetadata, MetaDataModel, StateClassInternal } from '../internal/internals';\n\ninterface MutateMetaOptions<T> {\n meta: MetaDataModel;\n inheritedStateClass: StateClassInternal;\n optionsWithInheritance: StoreOptions<T>;\n}\n\n/**\n * Decorates a class with ngxs state information.\n */\nexport function State<T>(options: StoreOptions<T>) {\n return (target: StateClass): void => {\n const stateClass: StateClassInternal = target;\n const meta: MetaDataModel = ensureStoreMetadata(stateClass);\n const inheritedStateClass: StateClassInternal = Object.getPrototypeOf(stateClass);\n const optionsWithInheritance: StoreOptions<T> = getStateOptions(\n inheritedStateClass,\n options\n );\n mutateMetaData<T>({ meta, inheritedStateClass, optionsWithInheritance });\n stateClass[META_OPTIONS_KEY] = optionsWithInheritance;\n };\n}\n\nfunction getStateOptions<T>(\n inheritedStateClass: StateClassInternal,\n options: StoreOptions<T>\n): StoreOptions<T> {\n const inheritanceOptions: Partial<StoreOptions<T>> =\n inheritedStateClass[META_OPTIONS_KEY] || {};\n return { ...inheritanceOptions, ...options } as StoreOptions<T>;\n}\n\nfunction mutateMetaData<T>(params: MutateMetaOptions<T>): void {\n const { meta, inheritedStateClass, optionsWithInheritance } = params;\n const { children, defaults, name } = optionsWithInheritance;\n const stateName: string | null =\n typeof name === 'string' ? name : (name && name.getName()) || null;\n\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n ensureStateNameIsValid(stateName);\n }\n\n if (inheritedStateClass.hasOwnProperty(META_KEY)) {\n const inheritedMeta: Partial<MetaDataModel> = inheritedStateClass[META_KEY] || {};\n meta.actions = { ...meta.actions, ...inheritedMeta.actions };\n }\n\n meta.children = children;\n meta.defaults = defaults;\n meta.name = stateName;\n}\n","import { Observable } from 'rxjs';\n\nimport { propGetter } from '../../internal/internals';\nimport { SelectFactory } from './select-factory';\nimport { StateToken } from '../../state-token/state-token';\nimport { ExtractTokenType } from '../../state-token/symbols';\nimport { throwSelectFactoryNotConnectedError } from '../../configs/messages.config';\n\nconst DOLLAR_CHAR_CODE = 36;\n\nexport function createSelectObservable<T = any>(selector: any): Observable<T> {\n if (!SelectFactory.store) {\n throwSelectFactoryNotConnectedError();\n }\n return SelectFactory.store!.select(selector);\n}\n\nexport function createSelectorFn(name: string, rawSelector?: any, paths: string[] = []): any {\n rawSelector = !rawSelector ? removeDollarAtTheEnd(name) : rawSelector;\n\n if (typeof rawSelector === 'string') {\n const propsArray: string[] = paths.length\n ? [rawSelector, ...paths]\n : rawSelector.split('.');\n return propGetter(propsArray, SelectFactory.config!);\n }\n\n return rawSelector;\n}\n\n/**\n * @example If `foo$` => make it just `foo`\n */\nexport function removeDollarAtTheEnd(name: string): string {\n const lastCharIndex: number = name.length - 1;\n const dollarAtTheEnd: boolean = name.charCodeAt(lastCharIndex) === DOLLAR_CHAR_CODE;\n return dollarAtTheEnd ? name.slice(0, lastCharIndex) : name;\n}\n\nexport type PropertyType<T> = T extends StateToken<any>\n ? Observable<ExtractTokenType<T>>\n : T extends (...args: any[]) => any\n ? Observable<ReturnType<T>>\n : any;\n","import { createSelectObservable, createSelectorFn, PropertyType } from './symbols';\n\n/**\n * Decorator for selecting a slice of state from the store.\n */\nexport function Select<T>(rawSelector?: T, ...paths: string[]): PropertyDecorator {\n return function(target, key): void {\n const name: string = key.toString();\n const selectorId = `__${name}__selector`;\n const selector = createSelectorFn(name, rawSelector, paths);\n\n Object.defineProperties(target, {\n [selectorId]: {\n writable: true,\n enumerable: false,\n configurable: true\n },\n [name]: {\n enumerable: true,\n configurable: true,\n get(): PropertyType<T> {\n return this[selectorId] || (this[selectorId] = createSelectObservable(selector));\n }\n }\n });\n };\n}\n","import {\n ensureSelectorMetadata,\n SelectorMetaDataModel,\n SharedSelectorOptions,\n} from '../internal/internals';\nimport { CreationMetadata } from './selector-models';\n\nconst SELECTOR_OPTIONS_META_KEY = 'NGXS_SELECTOR_OPTIONS_META';\n\nexport const selectorOptionsMetaAccessor = {\n getOptions: (target: any): SharedSelectorOptions => {\n return (target && (<any>target)[SELECTOR_OPTIONS_META_KEY]) || {};\n },\n defineOptions: (target: any, options: SharedSelectorOptions) => {\n if (!target) return;\n (<any>target)[SELECTOR_OPTIONS_META_KEY] = options;\n },\n};\n\nexport function setupSelectorMetadata<T extends (...args: any[]) => any>(\n originalFn: T,\n creationMetadata: Partial<CreationMetadata> | undefined\n) {\n const selectorMetaData = ensureSelectorMetadata(originalFn);\n selectorMetaData.originalFn = originalFn;\n let getExplicitSelectorOptions = () => ({});\n if (creationMetadata) {\n selectorMetaData.containerClass = creationMetadata.containerClass;\n selectorMetaData.selectorName = creationMetadata.selectorName || null;\n getExplicitSelectorOptions =\n creationMetadata.getSelectorOptions || getExplicitSelectorOptions;\n }\n const selectorMetaDataClone = { ...selectorMetaData };\n selectorMetaData.getSelectorOptions = () =>\n getLocalSelectorOptions(selectorMetaDataClone, getExplicitSelectorOptions());\n return selectorMetaData;\n}\n\nfunction getLocalSelectorOptions(\n selectorMetaData: SelectorMetaDataModel,\n explicitOptions: SharedSelectorOptions\n): SharedSelectorOptions {\n return {\n ...(selectorOptionsMetaAccessor.getOptions(selectorMetaData.containerClass) || {}),\n ...(selectorOptionsMetaAccessor.getOptions(selectorMetaData.originalFn) || {}),\n ...(selectorMetaData.getSelectorOptions() || {}),\n ...explicitOptions,\n };\n}\n","import { SharedSelectorOptions } from '../internal/internals';\nimport { selectorOptionsMetaAccessor } from '../selectors/selector-metadata';\n\n/**\n * Decorator for setting selector options at a method or class level.\n */\nexport function SelectorOptions(options: SharedSelectorOptions) {\n return <ClassDecorator & MethodDecorator>(\n function decorate<T>(\n target: any,\n methodName: string,\n descriptor: TypedPropertyDescriptor<T>\n ) {\n if (methodName) {\n descriptor ||= Object.getOwnPropertyDescriptor(target, methodName)!;\n // Method Decorator\n const originalFn = descriptor.value || (<any>descriptor).originalFn;\n if (originalFn) {\n selectorOptionsMetaAccessor.defineOptions(originalFn, options);\n }\n } else {\n // Class Decorator\n selectorOptionsMetaAccessor.defineOptions(target, options);\n }\n }\n );\n}\n","import {\n getSelectorMetadata as getSelectorMetadataInternal,\n getStoreMetadata as getStoreMetadataInternal,\n ensureStoreMetadata as ensureStoreMetadataInternal,\n ensureSelectorMetadata as ensureSelectorMetadataInternal,\n StateClassInternal,\n SharedSelectorOptions\n} from './internal/internals';\nimport { PlainObjectOf } from '../internals/src/symbols';\nimport { ActionHandlerMetaData } from './actions/symbols';\n\ninterface MetaDataModel {\n name: string | null;\n actions: PlainObjectOf<ActionHandlerMetaData[]>;\n defaults: any;\n path: string | null;\n // selectFromAppState: SelectFromState | null;\n // makeRootSelector: SelectorFactory | null; // Don't expose new stuff\n children?: StateClassInternal[];\n}\n\ninterface SelectorMetaDataModel {\n // selectFromAppState: SelectFromState | null;\n // makeRootSelector: SelectorFactory | null; // Don't expose new stuff\n originalFn: Function | null;\n containerClass: any;\n selectorName: string | null;\n getSelectorOptions: () => SharedSelectorOptions;\n}\n\nexport function ensureStoreMetadata(target: StateClassInternal<any, any>): MetaDataModel {\n return ensureStoreMetadataInternal(target);\n}\n\nexport function getStoreMetadata(target: StateClassInternal<any, any>): MetaDataModel {\n return getStoreMetadataInternal(target);\n}\n\nexport function ensureSelectorMetadata(target: Function): SelectorMetaDataModel {\n return ensureSelectorMetadataInternal(target);\n}\n\nexport function getSelectorMetadata(target: any): SelectorMetaDataModel {\n return getSelectorMetadataInternal(target);\n}\n","import { CreationMetadata } from './selector-models';\nimport { setupSelectorMetadata } from './selector-metadata';\nimport { createMemoizedSelectorFn, createRootSelectorFactory } from './selector-utils';\n\nimport { SelectorDef, SelectorReturnType } from './selector-types.util';\n\ntype SelectorArg = SelectorDef<any>;\n\n/**\n * Function for creating a selector\n * @param selectors The selectors to use to create the arguments of this function\n * @param originalFn The original function being made into a selector\n * @param creationMetadata\n */\nexport function createSelector<\n S1 extends SelectorArg,\n TProjector extends (s1: SelectorReturnType<S1>) => any\n>(\n selectors: [S1],\n projector: TProjector,\n creationMetadata?: Partial<CreationMetadata>\n): TProjector;\n\nexport function createSelector<\n S1 extends SelectorArg,\n S2 extends SelectorArg,\n TProjector extends (s1: SelectorReturnType<S1>, s2: SelectorReturnType<S2>) => any\n>(\n selectors: [S1, S2],\n projector: TProjector,\n creationMetadata?: Partial<CreationMetadata>\n): TProjector;\n\nexport function createSelector<\n S1 extends SelectorArg,\n S2 extends SelectorArg,\n S3 extends SelectorArg,\n TProjector extends (\n s1: SelectorReturnType<S1>,\n s2: SelectorReturnType<S2>,\n s3: SelectorReturnType<S3>\n ) => any\n>(\n selectors: [S1, S2, S3],\n projector: TProjector,\n creationMetadata?: Partial<CreationMetadata>\n): TProjector;\n\nexport function createSelector<\n S1 extends SelectorArg,\n S2 extends SelectorArg,\n S3 extends SelectorArg,\n S4 extends SelectorArg,\n TProjector extends (\n s1: SelectorReturnType<S1>,\n s2: SelectorReturnType<S2>,\n s3: SelectorReturnType<S3>,\n s4: SelectorReturnType<S4>\n ) => any\n>(\n selectors: [S1, S2, S3, S4],\n projector: TProjector,\n creationMetadata?: Partial<CreationMetadata>\n): TProjector;\n\nexport function createSelector<\n S1 extends SelectorArg,\n S2 extends SelectorArg,\n S3 extends SelectorArg,\n S4 extends SelectorArg,\n S5 extends SelectorArg,\n TProjector extends (\n s1: SelectorReturnType<S1>,\n s2: SelectorReturnType<S2>,\n s3: SelectorReturnType<S3>,\n s4: SelectorReturnType<S4>,\n s5: SelectorReturnType<S5>\n ) => any\n>(\n selectors: [S1, S2, S3, S4, S5],\n projector: TProjector,\n creationMetadata?: Partial<CreationMetadata>\n): TProjector;\n\nexport function createSelector<\n S1 extends SelectorArg,\n S2 extends SelectorArg,\n S3 extends SelectorArg,\n S4 extends SelectorArg,\n S5 extends SelectorArg,\n S6 extends SelectorArg,\n TProjector extends (\n s1: SelectorReturnType<S1>,\n s2: SelectorReturnType<S2>,\n s3: SelectorReturnType<S3>,\n s4: SelectorReturnType<S4>,\n s5: SelectorReturnType<S5>,\n s6: SelectorReturnType<S6>\n ) => any\n>(\n selectors: [S1, S2, S3, S4, S5, S6],\n projector: TProjector,\n creationMetadata?: Partial<CreationMetadata>\n): TProjector;\n\nexport function createSelector<\n S1 extends SelectorArg,\n S2 extends SelectorArg,\n S3 extends SelectorArg,\n S4 extends SelectorArg,\n S5 extends SelectorArg,\n S6 extends SelectorArg,\n S7 extends SelectorArg,\n TProjector extends (\n s1: SelectorReturnType<S1>,\n s2: SelectorReturnType<S2>,\n s3: SelectorReturnType<S3>,\n s4: SelectorReturnType<S4>,\n s5: SelectorReturnType<S5>,\n s6: SelectorReturnType<S6>,\n s7: SelectorReturnType<S7>\n ) => any\n>(\n selectors: [S1, S2, S3, S4, S5, S6, S7],\n projector: TProjector,\n creationMetadata?: Partial<CreationMetadata>\n): TProjector;\n\nexport function createSelector<\n S1 extends SelectorArg,\n S2 extends SelectorArg,\n S3 extends SelectorArg,\n S4 extends SelectorArg,\n S5 extends SelectorArg,\n S6 extends SelectorArg,\n S7 extends SelectorArg,\n S8 extends SelectorArg,\n TProjector extends (\n s1: SelectorReturnType<S1>,\n s2: SelectorReturnType<S2>,\n s3: SelectorReturnType<S3>,\n s4: SelectorReturnType<S4>,\n s5: SelectorReturnType<S5>,\n s6: SelectorReturnType<S6>,\n s7: SelectorReturnType<S7>,\n s8: SelectorReturnType<S8>\n ) => any\n>(\n selectors: [S1, S2, S3, S4, S5, S6, S7, S8],\n projector: TProjector,\n creationMetadata?: Partial<CreationMetadata>\n): TProjector;\n\nexport function createSelector<T extends (...args: any[]) => any>(\n selectors: SelectorArg[] | undefined,\n projector: T,\n creationMetadata?: Partial<CreationMetadata>\n): T;\n\nexport function createSelector<T extends (...args: any[]) => any>(\n selectors: SelectorArg[] | undefined,\n projector: T,\n creationMetadata?: Partial<CreationMetadata>\n) {\n const memoizedFn = createMemoizedSelectorFn<T>(projector, creationMetadata);\n\n const selectorMetaData = setupSelectorMetadata<T>(projector, creationMetadata);\n\n selectorMetaData.makeRootSelector = createRootSelectorFactory<T>(\n selectorMetaData,\n selectors,\n memoizedFn\n );\n\n return memoizedFn;\n}\n","import { throwSelectorDecoratorError } from '../../configs/messages.config';\nimport { SelectorDef } from '../../selectors';\nimport { createSelector } from '../../selectors/create-selector';\nimport { SelectorSpec, SelectorType } from './symbols';\n\n/**\n * Decorator for creating a state selector for the current state.\n */\nexport function Selector(): SelectorType<unknown>;\n\n/**\n * Decorator for creating a state selector from the provided selectors (and optionally the container State, depending on the applicable Selector Options).\n */\nexport function Selector<T extends SelectorDef<any>>(selectors: T[]): SelectorType<T>;\n\nexport function Selector<T extends SelectorDef<any>>(selectors?: T[]): SelectorType<T> {\n return <U>(\n target: any,\n key: string | symbol,\n descriptor: TypedPropertyDescriptor<SelectorSpec<T, U>>\n ): TypedPropertyDescriptor<SelectorSpec<T, U>> | void => {\n descriptor ||= Object.getOwnPropertyDescriptor(target, key)!;\n\n const originalFn = descriptor?.value;\n\n // Caretaker note: we have still left the `typeof` condition in order to avoid\n // creating a breaking change for projects that still use the View Engine.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (originalFn && typeof originalFn !== 'function') {\n throwSelectorDecoratorError();\n }\n }\n\n const memoizedFn = createSelector(selectors, originalFn as any, {\n containerClass: target,\n selectorName: key.toString(),\n getSelectorOptions() {\n return {};\n },\n });\n const newDescriptor = {\n configurable: true,\n get() {\n return memoizedFn;\n },\n };\n // Add hidden property to descriptor\n (<any>newDescriptor)['originalFn'] = originalFn;\n return newDescriptor;\n };\n}\n","import { TokenName } from './symbols';\nimport {\n ensureSelectorMetadata,\n RuntimeSelectorContext,\n SelectFromRootState\n} from '../internal/internals';\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 { ModuleWithProviders, NgModule } from '@angular/core';\n\nimport { NgxsDevelopmentOptions, NGXS_DEVELOPMENT_OPTIONS } from './symbols';\nimport { NgxsUnhandledActionsLogger } from './ngxs-unhandled-actions-logger';\n\n@NgModule()\nexport class NgxsDevelopmentModule {\n static forRoot(options: NgxsDevelopmentOptions): ModuleWithProviders<NgxsDevelopmentModule> {\n return {\n ngModule: NgxsDevelopmentModule,\n providers: [\n NgxsUnhandledActionsLogger,\n { provide: NGXS_DEVELOPMENT_OPTIONS, useValue: options }\n ]\n };\n }\n}\n","import { getSelectorMetadata, getStoreMetadata } from '../internal/internals';\nimport { SelectorDef } from './selector-types.util';\n\nexport function ensureValidSelector(\n selector: SelectorDef<any>,\n context: { prefix?: string; noun?: string } = {}\n) {\n const noun = context.noun || 'selector';\n const prefix = context.prefix ? context.prefix + ': ' : '';\n ensureValueProvided(selector, { noun, prefix: context.prefix });\n const metadata = getSelectorMetadata(selector) || getStoreMetadata(selector as any);\n if (!metadata) {\n throw new Error(`${prefix}The value provided as the ${noun} is not a valid selector.`);\n }\n}\n\nexport function ensureValueProvided(\n value: any,\n context: { prefix?: string; noun?: string } = {}\n) {\n const noun = context.noun || 'value';\n const prefix = context.prefix ? context.prefix + ': ' : '';\n if (!value) {\n throw new Error(`${prefix}A ${noun} must be provided.`);\n }\n}\n","import { createSelector } from './create-selector';\nimport { ensureValidSelector, ensureValueProvided } from './selector-checks.util';\nimport { TypedSelector } from './selector-types.util';\n\ninterface SelectorMap {\n [key: string]: TypedSelector<any>;\n}\n\ntype ModelSelector<T extends SelectorMap> = (...args: any[]) => MappedResult<T>;\n\ntype MappedResult<TSelectorMap> = {\n [P in keyof TSelectorMap]: TSelectorMap[P] extends TypedSelector<infer R> ? R : never;\n};\n\nexport function createModelSelector<T extends SelectorMap>(selectorMap: T): ModelSelector<T> {\n const selectorKeys = Object.keys(selectorMap);\n const selectors = Object.values(selectorMap);\n\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n ensureValidSelectorMap<T>({\n prefix: '[createModelSelector]',\n selectorMap,\n selectorKeys,\n selectors\n });\n }\n\n return createSelector(selectors, (...args) => {\n return selectorKeys.reduce((obj, key, index) => {\n (obj as any)[key] = args[index];\n return obj;\n }, {} as MappedResult<T>);\n }) as ModelSelector<T>;\n}\n\nfunction ensureValidSelectorMap<T extends SelectorMap>({\n prefix,\n selectorMap,\n selectorKeys,\n selectors\n}: {\n prefix: string;\n selectorMap: T;\n selectorKeys: string[];\n selectors: TypedSelector<any>[];\n}) {\n ensureValueProvided(selectorMap, { prefix, noun: 'selector map' });\n ensureValueProvided(typeof selectorMap === 'object', { prefix, noun: 'valid selector map' });\n ensureValueProvided(selectorKeys.length, { prefix, noun: 'non-empty selector map' });\n selectors.forEach((selector, index) =>\n ensureValidSelector(selector, {\n prefix,\n noun: `selector for the '${selectorKeys[index]}' property`\n })\n );\n}\n","import { createSelector } from './create-selector';\nimport { ensureValidSelector } from './selector-checks.util';\nimport { TypedSelector } from './selector-types.util';\n\ntype KeysToValues<T, Keys extends (keyof T)[]> = {\n [Index in keyof Keys]: Keys[Index] extends keyof T ? T[Keys[Index]] : never;\n};\n\nexport function createPickSelector<TModel, Keys extends (keyof TModel)[]>(\n selector: TypedSelector<TModel>,\n keys: [...Keys]\n) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n ensureValidSelector(selector, { prefix: '[createPickSelector]' });\n }\n const validKeys = keys.filter(Boolean);\n const selectors = validKeys.map(key => createSelector([selector], (s: TModel) => s[key]));\n return createSelector([...selectors], (...props: KeysToValues<TModel, Keys>) => {\n return validKeys.reduce((acc, key, index) => {\n acc[key] = props[index];\n return acc;\n }, {} as Pick<TModel, Keys[number]>);\n });\n}\n","import { createSelector } from './create-selector';\nimport { ensureValidSelector } from './selector-checks.util';\nimport { SelectorDef } from './selector-types.util';\n\nexport type PropertySelectors<TModel> = {\n [P in keyof NonNullable<TModel>]-?: (\n model: TModel\n ) => TModel extends null | undefined ? undefined : NonNullable<TModel>[P];\n};\n\nexport function createPropertySelectors<TModel>(\n parentSelector: SelectorDef<TModel>\n): PropertySelectors<TModel> {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n ensureValidSelector(parentSelector, {\n prefix: '[createPropertySelectors]',\n noun: 'parent selector'\n });\n }\n const cache: Partial<PropertySelectors<TModel>> = {};\n return new Proxy<PropertySelectors<TModel>>(\n {} as unknown as PropertySelectors<TModel>,\n {\n get(_target: any, prop: keyof TModel) {\n const selector =\n cache[prop] ||\n (createSelector(\n [parentSelector],\n (s: TModel) => s?.[prop]\n ) as PropertySelectors<TModel>[typeof prop]);\n cache[prop] = selector;\n return selector;\n }\n } as ProxyHandler<PropertySelectors<TModel>>\n );\n}\n","/**\n * The public api for consumers of @ngxs/store\n */\nexport * from './src/public_api';\n\n/**\n * The plugin api for the stuff that a plugins needs\n */\nexport * from './src/plugin_api';\n\n/**\n * Private exports required for the Ivy compilation.\n */\nexport * from './src/private_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["isObject","ensureStoreMetadata","getStoreMetadata","ensureSelectorMetadata","getSelectorMetadata","i1.InternalNgxsExecutionStrategy","i2.PluginManager","i3.StateStream","i4.InternalNgxsExecutionStrategy","i5.InternalErrorReporter","i1.StateStream","i2.InternalDispatcher","i3.NgxsConfig","i1.InternalStateOperations","i1.NgxsConfig","i2.InternalActions","i3.InternalDispatchedActionResults","i4.StateContextFactory","i1.Store","i2.NgxsConfig","i2.InternalErrorReporter","i3.InternalStateOperations","i5.LifecycleStateManager","i4.LifecycleStateManager","ensureStoreMetadataInternal","getStoreMetadataInternal","ensureSelectorMetadataInternal","getSelectorMetadataInternal"],"mappings":"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"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { Observable } from 'rxjs';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class NgxsBootstrapper {
|
|
4
|
-
/**
|
|
5
|
-
* Use `ReplaySubject`, thus we can get cached value even if the stream is completed
|
|
6
|
-
*/
|
|
7
|
-
private bootstrap$;
|
|
8
|
-
get appBootstrapped$(): Observable<boolean>;
|
|
9
|
-
/**
|
|
10
|
-
* This event will be emitted after attaching `ComponentRef` of the root component
|
|
11
|
-
* to the tree of views, that's a signal that application has been fully rendered
|
|
12
|
-
*/
|
|
13
|
-
bootstrap(): void;
|
|
14
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<NgxsBootstrapper, never>;
|
|
15
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<NgxsBootstrapper>;
|
|
16
|
-
}
|
package/internals/package.json
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"main": "../bundles/ngxs-store-internals.umd.js",
|
|
3
|
-
"module": "../fesm2015/ngxs-store-internals.js",
|
|
4
|
-
"es2015": "../fesm2015/ngxs-store-internals.js",
|
|
5
|
-
"esm2015": "../esm2015/internals/ngxs-store-internals.js",
|
|
6
|
-
"fesm2015": "../fesm2015/ngxs-store-internals.js",
|
|
7
|
-
"typings": "ngxs-store-internals.d.ts",
|
|
8
|
-
"sideEffects": false,
|
|
9
|
-
"name": "@ngxs/store/internals"
|
|
10
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"main": "../../bundles/ngxs-store-internals-testing.umd.js",
|
|
3
|
-
"module": "../../fesm2015/ngxs-store-internals-testing.js",
|
|
4
|
-
"es2015": "../../fesm2015/ngxs-store-internals-testing.js",
|
|
5
|
-
"esm2015": "../../esm2015/internals/testing/ngxs-store-internals-testing.js",
|
|
6
|
-
"fesm2015": "../../fesm2015/ngxs-store-internals-testing.js",
|
|
7
|
-
"typings": "ngxs-store-internals-testing.d.ts",
|
|
8
|
-
"sideEffects": false,
|
|
9
|
-
"name": "@ngxs/store/internals/testing"
|
|
10
|
-
}
|
package/ngxs-store.d.ts
DELETED
package/operators/package.json
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"main": "../bundles/ngxs-store-operators.umd.js",
|
|
3
|
-
"module": "../fesm2015/ngxs-store-operators.js",
|
|
4
|
-
"es2015": "../fesm2015/ngxs-store-operators.js",
|
|
5
|
-
"esm2015": "../esm2015/operators/ngxs-store-operators.js",
|
|
6
|
-
"fesm2015": "../fesm2015/ngxs-store-operators.js",
|
|
7
|
-
"typings": "ngxs-store-operators.d.ts",
|
|
8
|
-
"sideEffects": false,
|
|
9
|
-
"name": "@ngxs/store/operators"
|
|
10
|
-
}
|