@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
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
import { InjectionToken, inject } from '@angular/core';
|
|
2
|
+
import { ɵMETA_KEY } from '@ngxs/store/internals';
|
|
3
|
+
import { NgxsConfig } from '../symbols';
|
|
4
|
+
const NG_DEV_MODE = typeof ngDevMode !== 'undefined' && ngDevMode;
|
|
5
|
+
/**
|
|
6
|
+
* Get a deeply nested value. Example:
|
|
7
|
+
*
|
|
8
|
+
* getValue({ foo: bar: [] }, 'foo.bar') //=> []
|
|
9
|
+
*
|
|
10
|
+
* Note: This is not as fast as the `fastPropGetter` but is strict Content Security Policy compliant.
|
|
11
|
+
* See perf hit: https://jsperf.com/fast-value-getter-given-path/1
|
|
12
|
+
*
|
|
13
|
+
* @ignore
|
|
14
|
+
*/
|
|
15
|
+
function compliantPropGetter(paths) {
|
|
16
|
+
return obj => {
|
|
17
|
+
for (let i = 0; i < paths.length; i++) {
|
|
18
|
+
if (!obj)
|
|
19
|
+
return undefined;
|
|
20
|
+
obj = obj[paths[i]];
|
|
21
|
+
}
|
|
22
|
+
return obj;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* The generated function is faster than:
|
|
27
|
+
* - pluck (Observable operator)
|
|
28
|
+
* - memoize
|
|
29
|
+
*
|
|
30
|
+
* @ignore
|
|
31
|
+
*/
|
|
32
|
+
function fastPropGetter(paths) {
|
|
33
|
+
const segments = paths;
|
|
34
|
+
let seg = 'store.' + segments[0];
|
|
35
|
+
let i = 0;
|
|
36
|
+
const l = segments.length;
|
|
37
|
+
let expr = seg;
|
|
38
|
+
while (++i < l) {
|
|
39
|
+
expr = expr + ' && ' + (seg = seg + '.' + segments[i]);
|
|
40
|
+
}
|
|
41
|
+
const fn = new Function('store', 'return ' + expr + ';');
|
|
42
|
+
return fn;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Get a deeply nested value. Example:
|
|
46
|
+
*
|
|
47
|
+
* getValue({ foo: bar: [] }, 'foo.bar') //=> []
|
|
48
|
+
*
|
|
49
|
+
* @ignore
|
|
50
|
+
*
|
|
51
|
+
* Marked for removal. It's only used within `createSelectorFn`.
|
|
52
|
+
*/
|
|
53
|
+
export function propGetter(paths, config) {
|
|
54
|
+
if (config?.compatibility?.strictContentSecurityPolicy) {
|
|
55
|
+
return compliantPropGetter(paths);
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
return fastPropGetter(paths);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
// This injection token selects the prop getter implementation once the app is
|
|
62
|
+
// bootstrapped, as the `propGetter` function's behavior determines the implementation
|
|
63
|
+
// each time it's called. It accepts the config as the second argument. We no longer
|
|
64
|
+
// need to check for the `strictContentSecurityPolicy` every time the prop getter
|
|
65
|
+
// implementation is selected. Now, the `propGetter` function is only used within
|
|
66
|
+
// `createSelectorFn`, which, in turn, is solely used by the `Select` decorator.
|
|
67
|
+
// We've been trying to deprecate the `Select` decorator because it's unstable with
|
|
68
|
+
// server-side rendering and micro-frontend applications.
|
|
69
|
+
export const ɵPROP_GETTER = new InjectionToken(NG_DEV_MODE ? 'PROP_GETTER' : '', {
|
|
70
|
+
providedIn: 'root',
|
|
71
|
+
factory: () => inject(NgxsConfig).compatibility?.strictContentSecurityPolicy
|
|
72
|
+
? compliantPropGetter
|
|
73
|
+
: fastPropGetter
|
|
74
|
+
});
|
|
75
|
+
/**
|
|
76
|
+
* Given an array of states, it will return a object graph. Example:
|
|
77
|
+
* const states = [
|
|
78
|
+
* Cart,
|
|
79
|
+
* CartSaved,
|
|
80
|
+
* CartSavedItems
|
|
81
|
+
* ]
|
|
82
|
+
*
|
|
83
|
+
* would return:
|
|
84
|
+
*
|
|
85
|
+
* const graph = {
|
|
86
|
+
* cart: ['saved'],
|
|
87
|
+
* saved: ['items'],
|
|
88
|
+
* items: []
|
|
89
|
+
* };
|
|
90
|
+
*
|
|
91
|
+
* @ignore
|
|
92
|
+
*/
|
|
93
|
+
export function buildGraph(stateClasses) {
|
|
94
|
+
const findName = (stateClass) => {
|
|
95
|
+
const meta = stateClasses.find(g => g === stateClass);
|
|
96
|
+
if (NG_DEV_MODE && !meta) {
|
|
97
|
+
throw new Error(`Child state not found: ${stateClass}. \r\nYou may have forgotten to add states to module`);
|
|
98
|
+
}
|
|
99
|
+
return meta[ɵMETA_KEY].name;
|
|
100
|
+
};
|
|
101
|
+
return stateClasses.reduce((result, stateClass) => {
|
|
102
|
+
const { name, children } = stateClass[ɵMETA_KEY];
|
|
103
|
+
result[name] = (children || []).map(findName);
|
|
104
|
+
return result;
|
|
105
|
+
}, {});
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Given a states array, returns object graph
|
|
109
|
+
* returning the name and state metadata. Example:
|
|
110
|
+
*
|
|
111
|
+
* const graph = {
|
|
112
|
+
* cart: { metadata }
|
|
113
|
+
* };
|
|
114
|
+
*
|
|
115
|
+
* @ignore
|
|
116
|
+
*/
|
|
117
|
+
export function nameToState(states) {
|
|
118
|
+
return states.reduce((result, stateClass) => {
|
|
119
|
+
const meta = stateClass[ɵMETA_KEY];
|
|
120
|
+
result[meta.name] = stateClass;
|
|
121
|
+
return result;
|
|
122
|
+
}, {});
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Given a object relationship graph will return the full path
|
|
126
|
+
* for the child items. Example:
|
|
127
|
+
*
|
|
128
|
+
* const graph = {
|
|
129
|
+
* cart: ['saved'],
|
|
130
|
+
* saved: ['items'],
|
|
131
|
+
* items: []
|
|
132
|
+
* };
|
|
133
|
+
*
|
|
134
|
+
* would return:
|
|
135
|
+
*
|
|
136
|
+
* const r = {
|
|
137
|
+
* cart: 'cart',
|
|
138
|
+
* saved: 'cart.saved',
|
|
139
|
+
* items: 'cart.saved.items'
|
|
140
|
+
* };
|
|
141
|
+
*
|
|
142
|
+
* @ignore
|
|
143
|
+
*/
|
|
144
|
+
export function findFullParentPath(obj, newObj = {}) {
|
|
145
|
+
const visit = (child, keyToFind) => {
|
|
146
|
+
for (const key in child) {
|
|
147
|
+
if (child.hasOwnProperty(key) && child[key].indexOf(keyToFind) >= 0) {
|
|
148
|
+
const parent = visit(child, key);
|
|
149
|
+
return parent !== null ? `${parent}.${key}` : key;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
return null;
|
|
153
|
+
};
|
|
154
|
+
for (const key in obj) {
|
|
155
|
+
if (obj.hasOwnProperty(key)) {
|
|
156
|
+
const parent = visit(obj, key);
|
|
157
|
+
newObj[key] = parent ? `${parent}.${key}` : key;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
return newObj;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Given a object graph, it will return the items topologically sorted Example:
|
|
164
|
+
*
|
|
165
|
+
* const graph = {
|
|
166
|
+
* cart: ['saved'],
|
|
167
|
+
* saved: ['items'],
|
|
168
|
+
* items: []
|
|
169
|
+
* };
|
|
170
|
+
*
|
|
171
|
+
* would return:
|
|
172
|
+
*
|
|
173
|
+
* const results = [
|
|
174
|
+
* 'items',
|
|
175
|
+
* 'saved',
|
|
176
|
+
* 'cart'
|
|
177
|
+
* ];
|
|
178
|
+
*
|
|
179
|
+
* @ignore
|
|
180
|
+
*/
|
|
181
|
+
export function topologicalSort(graph) {
|
|
182
|
+
const sorted = [];
|
|
183
|
+
const visited = {};
|
|
184
|
+
const visit = (name, ancestors = []) => {
|
|
185
|
+
if (!Array.isArray(ancestors)) {
|
|
186
|
+
ancestors = [];
|
|
187
|
+
}
|
|
188
|
+
ancestors.push(name);
|
|
189
|
+
visited[name] = true;
|
|
190
|
+
graph[name].forEach((dep) => {
|
|
191
|
+
if (NG_DEV_MODE && ancestors.indexOf(dep) >= 0) {
|
|
192
|
+
throw new Error(`Circular dependency '${dep}' is required by '${name}': ${ancestors.join(' -> ')}`);
|
|
193
|
+
}
|
|
194
|
+
if (visited[dep]) {
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
visit(dep, ancestors.slice(0));
|
|
198
|
+
});
|
|
199
|
+
if (sorted.indexOf(name) < 0) {
|
|
200
|
+
sorted.push(name);
|
|
201
|
+
}
|
|
202
|
+
};
|
|
203
|
+
Object.keys(graph).forEach(k => visit(k));
|
|
204
|
+
return sorted.reverse();
|
|
205
|
+
}
|
|
206
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RvcmUvc3JjL2ludGVybmFsL2ludGVybmFscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd2RCxPQUFPLEVBQ0wsU0FBUyxFQUlWLE1BQU0sdUJBQXVCLENBQUM7QUFFL0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUl4QyxNQUFNLFdBQVcsR0FBRyxPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUyxDQUFDO0FBMkJsRTs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLG1CQUFtQixDQUFDLEtBQWU7SUFDMUMsT0FBTyxHQUFHLENBQUMsRUFBRTtRQUNYLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLEdBQUc7Z0JBQUUsT0FBTyxTQUFTLENBQUM7WUFDM0IsR0FBRyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0QixDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBUyxjQUFjLENBQUMsS0FBZTtJQUNyQyxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDdkIsSUFBSSxHQUFHLEdBQUcsUUFBUSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDVixNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO0lBRTFCLElBQUksSUFBSSxHQUFHLEdBQUcsQ0FBQztJQUNmLE9BQU8sRUFBRSxDQUFDLEdBQUcs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QUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUM5QixTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLENBQUM7UUFFRCxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JCLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7UUFFckIsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQVcsRUFBRSxFQUFFO1lBQ2xDLElBQUksV0FBVyxJQUFJLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQy9DLE1BQU0sSUFBSSxLQUFLLENBQ2Isd0JBQXdCLEdBQUcscUJBQXFCLElBQUksTUFBTSxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQ25GLENBQUM7WUFDSixDQUFDO1lBRUQsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDakIsT0FBTztZQUNULENBQUM7WUFFRCxLQUFLLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM3QixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BCLENBQUM7SUFDSCxDQUFDLENBQUM7SUFFRixNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRTFDLE9BQU8sTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBQzFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIMm1TUVUQV9LRVksXG4gIMm1UGxhaW5PYmplY3RPZixcbiAgybVTdGF0ZUNsYXNzSW50ZXJuYWwsXG4gIMm1QWN0aW9uSGFuZGxlck1ldGFEYXRhXG59IGZyb20gJ0BuZ3hzL3N0b3JlL2ludGVybmFscyc7XG5cbmltcG9ydCB7IE5neHNDb25maWcgfSBmcm9tICcuLi9zeW1ib2xzJztcblxuZGVjbGFyZSBjb25zdCBuZ0Rldk1vZGU6IGJvb2xlYW47XG5cbmNvbnN0IE5HX0RFVl9NT0RFID0gdHlwZW9mIG5nRGV2TW9kZSAhPT0gJ3VuZGVmaW5lZCcgJiYgbmdEZXZNb2RlO1xuXG5leHBvcnQgdHlwZSBTdGF0ZUtleUdyYXBoID0gybVQbGFpbk9iamVjdE9mPHN0cmluZ1tdPjtcbmV4cG9ydCB0eXBlIFN0YXRlc0J5TmFtZSA9IMm1UGxhaW5PYmplY3RPZjzJtVN0YXRlQ2xhc3NJbnRlcm5hbD47XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhdGVPcGVyYXRpb25zPFQ+IHtcbiAgZ2V0U3RhdGUoKTogVDtcblxuICBzZXRTdGF0ZSh2YWw6IFQpOiB2b2lkO1xuXG4gIGRpc3BhdGNoKGFjdGlvbk9yQWN0aW9uczogYW55IHwgYW55W10pOiBPYnNlcnZhYmxlPHZvaWQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hcHBlZFN0b3JlIHtcbiAgbmFtZTogc3RyaW5nO1xuICBpc0luaXRpYWxpc2VkOiBib29sZWFuO1xuICBhY3Rpb25zOiDJtVBsYWluT2JqZWN0T2Y8ybVBY3Rpb25IYW5kbGVyTWV0YURhdGFbXT47XG4gIGRlZmF1bHRzOiBhbnk7XG4gIGluc3RhbmNlOiBhbnk7XG4gIHBhdGg6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdGF0ZXNBbmREZWZhdWx0cyB7XG4gIGRlZmF1bHRzOiBhbnk7XG4gIHN0YXRlczogTWFwcGVkU3RvcmVbXTtcbn1cblxuLyoqXG4gKiBHZXQgYSBkZWVwbHkgbmVzdGVkIHZhbHVlLiBFeGFtcGxlOlxuICpcbiAqICAgIGdldFZhbHVlKHsgZm9vOiBiYXI6IFtdIH0sICdmb28uYmFyJykgLy89PiBbXVxuICpcbiAqIE5vdGU6IFRoaXMgaXMgbm90IGFzIGZhc3QgYXMgdGhlIGBmYXN0UHJvcEdldHRlcmAgYnV0IGlzIHN0cmljdCBDb250ZW50IFNlY3VyaXR5IFBvbGljeSBjb21wbGlhbnQuXG4gKiBTZWUgcGVyZiBoaXQ6IGh0dHBzOi8vanNwZXJmLmNvbS9mYXN0LXZhbHVlLWdldHRlci1naXZlbi1wYXRoLzFcbiAqXG4gKiBAaWdub3JlXG4gKi9cbmZ1bmN0aW9uIGNvbXBsaWFudFByb3BHZXR0ZXIocGF0aHM6IHN0cmluZ1tdKTogKHg6IGFueSkgPT4gYW55IHtcbiAgcmV0dXJuIG9iaiA9PiB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXRocy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKCFvYmopIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICBvYmogPSBvYmpbcGF0aHNbaV1dO1xuICAgIH1cbiAgICByZXR1cm4gb2JqO1xuICB9O1xufVxuXG4vKipcbiAqIFRoZSBnZW5lcmF0ZWQgZnVuY3Rpb24gaXMgZmFzdGVyIHRoYW46XG4gKiAtIHBsdWNrIChPYnNlcnZhYmxlIG9wZXJhdG9yKVxuICogLSBtZW1vaXplXG4gKlxuICogQGlnbm9yZVxuICovXG5mdW5jdGlvbiBmYXN0UHJvcEdldHRlcihwYXRoczogc3RyaW5nW10pOiAoeDogYW55KSA9PiBhbnkge1xuICBjb25zdCBzZWdtZW50cyA9IHBhdGhzO1xuICBsZXQgc2VnID0gJ3N0b3JlLicgKyBzZWdtZW50c1swXTtcbiAgbGV0IGkgPSAwO1xuICBjb25zdCBsID0gc2VnbWVudHMubGVuZ3RoO1xuXG4gIGxldCBleHByID0gc2VnO1xuICB3aGlsZSAoKytpIDwgbCkge1xuICAgIGV4cHIgPSBleHByICsgJyAmJiAnICsgKHNlZyA9IHNlZyArICcuJyArIHNlZ21lbnRzW2ldKTtcbiAgfVxuXG4gIGNvbnN0IGZuID0gbmV3IEZ1bmN0aW9uKCdzdG9yZScsICdyZXR1cm4gJyArIGV4cHIgKyAnOycpO1xuXG4gIHJldHVybiA8KHg6IGFueSkgPT4gYW55PmZuO1xufVxuXG4vKipcbiAqIEdldCBhIGRlZXBseSBuZXN0ZWQgdmFsdWUuIEV4YW1wbGU6XG4gKlxuICogICAgZ2V0VmFsdWUoeyBmb286IGJhcjogW10gfSwgJ2Zvby5iYXInKSAvLz0+IFtdXG4gKlxuICogQGlnbm9yZVxuICpcbiAqIE1hcmtlZCBmb3IgcmVtb3ZhbC4gSXQncyBvbmx5IHVzZWQgd2l0aGluIGBjcmVhdGVTZWxlY3RvckZuYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb3BHZXR0ZXIocGF0aHM6IHN0cmluZ1tdLCBjb25maWc6IE5neHNDb25maWcpIHtcbiAgaWYgKGNvbmZpZz8uY29tcGF0aWJpbGl0eT8uc3RyaWN0Q29udGVudFNlY3VyaXR5UG9saWN5KSB7XG4gICAgcmV0dXJuIGNvbXBsaWFudFByb3BHZXR0ZXIocGF0aHMpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBmYXN0UHJvcEdldHRlcihwYXRocyk7XG4gIH1cbn1cblxuLy8gVGhpcyBpbmplY3Rpb24gdG9rZW4gc2VsZWN0cyB0aGUgcHJvcCBnZXR0ZXIgaW1wbGVtZW50YXRpb24gb25jZSB0aGUgYXBwIGlzXG4vLyBib290c3RyYXBwZWQsIGFzIHRoZSBgcHJvcEdldHRlcmAgZnVuY3Rpb24ncyBiZWhhdmlvciBkZXRlcm1pbmVzIHRoZSBpbXBsZW1lbnRhdGlvblxuLy8gZWFjaCB0aW1lIGl0J3MgY2FsbGVkLiBJdCBhY2NlcHRzIHRoZSBjb25maWcgYXMgdGhlIHNlY29uZCBhcmd1bWVudC4gV2Ugbm8gbG9uZ2VyXG4vLyBuZWVkIHRvIGNoZWNrIGZvciB0aGUgYHN0cmljdENvbnRlbnRTZWN1cml0eVBvbGljeWAgZXZlcnkgdGltZSB0aGUgcHJvcCBnZXR0ZXJcbi8vIGltcGxlbWVudGF0aW9uIGlzIHNlbGVjdGVkLiBOb3csIHRoZSBgcHJvcEdldHRlcmAgZnVuY3Rpb24gaXMgb25seSB1c2VkIHdpdGhpblxuLy8gYGNyZWF0ZVNlbGVjdG9yRm5gLCB3aGljaCwgaW4gdHVybiwgaXMgc29sZWx5IHVzZWQgYnkgdGhlIGBTZWxlY3RgIGRlY29yYXRvci5cbi8vIFdlJ3ZlIGJlZW4gdHJ5aW5nIHRvIGRlcHJlY2F0ZSB0aGUgYFNlbGVjdGAgZGVjb3JhdG9yIGJlY2F1c2UgaXQncyB1bnN0YWJsZSB3aXRoXG4vLyBzZXJ2ZXItc2lkZSByZW5kZXJpbmcgYW5kIG1pY3JvLWZyb250ZW5kIGFwcGxpY2F0aW9ucy5cbmV4cG9ydCBjb25zdCDJtVBST1BfR0VUVEVSID0gbmV3IEluamVjdGlvblRva2VuPChwYXRoczogc3RyaW5nW10pID0+ICh4OiBhbnkpID0+IGFueT4oXG4gIE5HX0RFVl9NT0RFID8gJ1BST1BfR0VUVEVSJyA6ICcnLFxuICB7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICAgIGZhY3Rvcnk6ICgpID0+XG4gICAgICBpbmplY3QoTmd4c0NvbmZpZykuY29tcGF0aWJpbGl0eT8uc3RyaWN0Q29udGVudFNlY3VyaXR5UG9saWN5XG4gICAgICAgID8gY29tcGxpYW50UHJvcEdldHRlclxuICAgICAgICA6IGZhc3RQcm9wR2V0dGVyXG4gIH1cbik7XG5cbi8qKlxuICogR2l2ZW4gYW4gYXJyYXkgb2Ygc3RhdGVzLCBpdCB3aWxsIHJldHVybiBhIG9iamVjdCBncmFwaC4gRXhhbXBsZTpcbiAqICAgIGNvbnN0IHN0YXRlcyA9IFtcbiAqICAgICAgQ2FydCxcbiAqICAgICAgQ2FydFNhdmVkLFxuICogICAgICBDYXJ0U2F2ZWRJdGVtc1xuICogICAgXVxuICpcbiAqIHdvdWxkIHJldHVybjpcbiAqXG4gKiAgY29uc3QgZ3JhcGggPSB7XG4gKiAgICBjYXJ0OiBbJ3NhdmVkJ10sXG4gKiAgICBzYXZlZDogWydpdGVtcyddLFxuICogICAgaXRlbXM6IFtdXG4gKiAgfTtcbiAqXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEdyYXBoKHN0YXRlQ2xhc3NlczogybVTdGF0ZUNsYXNzSW50ZXJuYWxbXSk6IFN0YXRlS2V5R3JhcGgge1xuICBjb25zdCBmaW5kTmFtZSA9IChzdGF0ZUNsYXNzOiDJtVN0YXRlQ2xhc3NJbnRlcm5hbCkgPT4ge1xuICAgIGNvbnN0IG1ldGEgPSBzdGF0ZUNsYXNzZXMuZmluZChnID0+IGcgPT09IHN0YXRlQ2xhc3MpO1xuXG4gICAgaWYgKE5HX0RFVl9NT0RFICYmICFtZXRhKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBDaGlsZCBzdGF0ZSBub3QgZm91bmQ6ICR7c3RhdGVDbGFzc30uIFxcclxcbllvdSBtYXkgaGF2ZSBmb3Jnb3R0ZW4gdG8gYWRkIHN0YXRlcyB0byBtb2R1bGVgXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBtZXRhIVvJtU1FVEFfS0VZXSEubmFtZSE7XG4gIH07XG5cbiAgcmV0dXJuIHN0YXRlQ2xhc3Nlcy5yZWR1Y2U8U3RhdGVLZXlHcmFwaD4oXG4gICAgKHJlc3VsdDogU3RhdGVLZXlHcmFwaCwgc3RhdGVDbGFzczogybVTdGF0ZUNsYXNzSW50ZXJuYWwpID0+IHtcbiAgICAgIGNvbnN0IHsgbmFtZSwgY2hpbGRyZW4gfSA9IHN0YXRlQ2xhc3NbybVNRVRBX0tFWV0hO1xuICAgICAgcmVzdWx0W25hbWUhXSA9IChjaGlsZHJlbiB8fCBbXSkubWFwKGZpbmROYW1lKTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSxcbiAgICB7fVxuICApO1xufVxuXG4vKipcbiAqIEdpdmVuIGEgc3RhdGVzIGFycmF5LCByZXR1cm5zIG9iamVjdCBncmFwaFxuICogcmV0dXJuaW5nIHRoZSBuYW1lIGFuZCBzdGF0ZSBtZXRhZGF0YS4gRXhhbXBsZTpcbiAqXG4gKiAgY29uc3QgZ3JhcGggPSB7XG4gKiAgICBjYXJ0OiB7IG1ldGFkYXRhIH1cbiAqICB9O1xuICpcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5hbWVUb1N0YXRlKFxuICBzdGF0ZXM6IMm1U3RhdGVDbGFzc0ludGVybmFsW11cbik6IMm1UGxhaW5PYmplY3RPZjzJtVN0YXRlQ2xhc3NJbnRlcm5hbD4ge1xuICByZXR1cm4gc3RhdGVzLnJlZHVjZTzJtVBsYWluT2JqZWN0T2Y8ybVTdGF0ZUNsYXNzSW50ZXJuYWw+PihcbiAgICAocmVzdWx0OiDJtVBsYWluT2JqZWN0T2Y8ybVTdGF0ZUNsYXNzSW50ZXJuYWw+LCBzdGF0ZUNsYXNzOiDJtVN0YXRlQ2xhc3NJbnRlcm5hbCkgPT4ge1xuICAgICAgY29uc3QgbWV0YSA9IHN0YXRlQ2xhc3NbybVNRVRBX0tFWV0hO1xuICAgICAgcmVzdWx0W21ldGEubmFtZSFdID0gc3RhdGVDbGFzcztcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSxcbiAgICB7fVxuICApO1xufVxuXG4vKipcbiAqIEdpdmVuIGEgb2JqZWN0IHJlbGF0aW9uc2hpcCBncmFwaCB3aWxsIHJldHVybiB0aGUgZnVsbCBwYXRoXG4gKiBmb3IgdGhlIGNoaWxkIGl0ZW1zLiBFeGFtcGxlOlxuICpcbiAqICBjb25zdCBncmFwaCA9IHtcbiAqICAgIGNhcnQ6IFsnc2F2ZWQnXSxcbiAqICAgIHNhdmVkOiBbJ2l0ZW1zJ10sXG4gKiAgICBpdGVtczogW11cbiAqICB9O1xuICpcbiAqIHdvdWxkIHJldHVybjpcbiAqXG4gKiAgY29uc3QgciA9IHtcbiAqICAgIGNhcnQ6ICdjYXJ0JyxcbiAqICAgIHNhdmVkOiAnY2FydC5zYXZlZCcsXG4gKiAgICBpdGVtczogJ2NhcnQuc2F2ZWQuaXRlbXMnXG4gKiAgfTtcbiAqXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kRnVsbFBhcmVudFBhdGgoXG4gIG9iajogU3RhdGVLZXlHcmFwaCxcbiAgbmV3T2JqOiDJtVBsYWluT2JqZWN0T2Y8c3RyaW5nPiA9IHt9XG4pOiDJtVBsYWluT2JqZWN0T2Y8c3RyaW5nPiB7XG4gIGNvbnN0IHZpc2l0ID0gKGNoaWxkOiBTdGF0ZUtleUdyYXBoLCBrZXlUb0ZpbmQ6IHN0cmluZyk6IHN0cmluZyB8IG51bGwgPT4ge1xuICAgIGZvciAoY29uc3Qga2V5IGluIGNoaWxkKSB7XG4gICAgICBpZiAoY2hpbGQuaGFzT3duUHJvcGVydHkoa2V5KSAmJiBjaGlsZFtrZXldLmluZGV4T2Yoa2V5VG9GaW5kKSA+PSAwKSB7XG4gICAgICAgIGNvbnN0IHBhcmVudCA9IHZpc2l0KGNoaWxkLCBrZXkpO1xuICAgICAgICByZXR1cm4gcGFyZW50ICE9PSBudWxsID8gYCR7cGFyZW50fS4ke2tleX1gIDoga2V5O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfTtcblxuICBmb3IgKGNvbnN0IGtleSBpbiBvYmopIHtcbiAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgIGNvbnN0IHBhcmVudCA9IHZpc2l0KG9iaiwga2V5KTtcbiAgICAgIG5ld09ialtrZXldID0gcGFyZW50ID8gYCR7cGFyZW50fS4ke2tleX1gIDoga2V5O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBuZXdPYmo7XG59XG5cbi8qKlxuICogR2l2ZW4gYSBvYmplY3QgZ3JhcGgsIGl0IHdpbGwgcmV0dXJuIHRoZSBpdGVtcyB0b3BvbG9naWNhbGx5IHNvcnRlZCBFeGFtcGxlOlxuICpcbiAqICBjb25zdCBncmFwaCA9IHtcbiAqICAgIGNhcnQ6IFsnc2F2ZWQnXSxcbiAqICAgIHNhdmVkOiBbJ2l0ZW1zJ10sXG4gKiAgICBpdGVtczogW11cbiAqICB9O1xuICpcbiAqIHdvdWxkIHJldHVybjpcbiAqXG4gKiAgY29uc3QgcmVzdWx0cyA9IFtcbiAqICAgICdpdGVtcycsXG4gKiAgICAnc2F2ZWQnLFxuICogICAgJ2NhcnQnXG4gKiAgXTtcbiAqXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b3BvbG9naWNhbFNvcnQoZ3JhcGg6IFN0YXRlS2V5R3JhcGgpOiBzdHJpbmdbXSB7XG4gIGNvbnN0IHNvcnRlZDogc3RyaW5nW10gPSBbXTtcbiAgY29uc3QgdmlzaXRlZDogybVQbGFpbk9iamVjdE9mPGJvb2xlYW4+ID0ge307XG5cbiAgY29uc3QgdmlzaXQgPSAobmFtZTogc3RyaW5nLCBhbmNlc3RvcnM6IHN0cmluZ1tdID0gW10pID0+IHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoYW5jZXN0b3JzKSkge1xuICAgICAgYW5jZXN0b3JzID0gW107XG4gICAgfVxuXG4gICAgYW5jZXN0b3JzLnB1c2gobmFtZSk7XG4gICAgdmlzaXRlZFtuYW1lXSA9IHRydWU7XG5cbiAgICBncmFwaFtuYW1lXS5mb3JFYWNoKChkZXA6IHN0cmluZykgPT4ge1xuICAgICAgaWYgKE5HX0RFVl9NT0RFICYmIGFuY2VzdG9ycy5pbmRleE9mKGRlcCkgPj0gMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYENpcmN1bGFyIGRlcGVuZGVuY3kgJyR7ZGVwfScgaXMgcmVxdWlyZWQgYnkgJyR7bmFtZX0nOiAke2FuY2VzdG9ycy5qb2luKCcgLT4gJyl9YFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZiAodmlzaXRlZFtkZXBdKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdmlzaXQoZGVwLCBhbmNlc3RvcnMuc2xpY2UoMCkpO1xuICAgIH0pO1xuXG4gICAgaWYgKHNvcnRlZC5pbmRleE9mKG5hbWUpIDwgMCkge1xuICAgICAgc29ydGVkLnB1c2gobmFtZSk7XG4gICAgfVxuICB9O1xuXG4gIE9iamVjdC5rZXlzKGdyYXBoKS5mb3JFYWNoKGsgPT4gdmlzaXQoaykpO1xuXG4gIHJldHVybiBzb3J0ZWQucmV2ZXJzZSgpO1xufVxuIl19
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { ɵNgxsAppBootstrappedState } from '@ngxs/store/internals';
|
|
3
|
+
import { getValue, InitState, UpdateState } from '@ngxs/store/plugins';
|
|
4
|
+
import { ReplaySubject } from 'rxjs';
|
|
5
|
+
import { filter, mergeMap, pairwise, startWith, takeUntil, tap } from 'rxjs/operators';
|
|
6
|
+
import { Store } from '../store';
|
|
7
|
+
import { StateContextFactory } from './state-context-factory';
|
|
8
|
+
import { InternalStateOperations } from './state-operations';
|
|
9
|
+
import { NgxsSimpleChange } from '../symbols';
|
|
10
|
+
import { getInvalidInitializationOrderMessage } from '../configs/messages.config';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
import * as i1 from "../store";
|
|
13
|
+
import * as i2 from "./state-operations";
|
|
14
|
+
import * as i3 from "./state-context-factory";
|
|
15
|
+
import * as i4 from "@ngxs/store/internals";
|
|
16
|
+
const NG_DEV_MODE = typeof ngDevMode !== 'undefined' && ngDevMode;
|
|
17
|
+
export class LifecycleStateManager {
|
|
18
|
+
constructor(_store, _internalStateOperations, _stateContextFactory, _appBootstrappedState) {
|
|
19
|
+
this._store = _store;
|
|
20
|
+
this._internalStateOperations = _internalStateOperations;
|
|
21
|
+
this._stateContextFactory = _stateContextFactory;
|
|
22
|
+
this._appBootstrappedState = _appBootstrappedState;
|
|
23
|
+
this._destroy$ = new ReplaySubject(1);
|
|
24
|
+
}
|
|
25
|
+
ngOnDestroy() {
|
|
26
|
+
this._destroy$.next();
|
|
27
|
+
}
|
|
28
|
+
ngxsBootstrap(action, results) {
|
|
29
|
+
if (NG_DEV_MODE) {
|
|
30
|
+
if (action instanceof InitState) {
|
|
31
|
+
this._initStateHasBeenDispatched = true;
|
|
32
|
+
}
|
|
33
|
+
else if (
|
|
34
|
+
// This is a dev mode-only check that ensures the correct order of
|
|
35
|
+
// state initialization. The `NgxsModule.forRoot` or `provideStore` should
|
|
36
|
+
// always come first, followed by `forFeature` and `provideStates`. If the
|
|
37
|
+
// `UpdateState` is dispatched before the `InitState` is dispatched, it indicates
|
|
38
|
+
// that modules or providers are in an invalid order.
|
|
39
|
+
action instanceof UpdateState &&
|
|
40
|
+
!this._initStateHasBeenDispatched) {
|
|
41
|
+
console.error(getInvalidInitializationOrderMessage(action.addedStates));
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
this._internalStateOperations
|
|
45
|
+
.getRootStateOperations()
|
|
46
|
+
.dispatch(action)
|
|
47
|
+
.pipe(filter(() => !!results), tap(() => this._invokeInitOnStates(results.states)), mergeMap(() => this._appBootstrappedState), filter(appBootstrapped => !!appBootstrapped), takeUntil(this._destroy$))
|
|
48
|
+
.subscribe(() => this._invokeBootstrapOnStates(results.states));
|
|
49
|
+
}
|
|
50
|
+
_invokeInitOnStates(mappedStores) {
|
|
51
|
+
for (const mappedStore of mappedStores) {
|
|
52
|
+
const instance = mappedStore.instance;
|
|
53
|
+
if (instance.ngxsOnChanges) {
|
|
54
|
+
this._store
|
|
55
|
+
.select(state => getValue(state, mappedStore.path))
|
|
56
|
+
.pipe(startWith(undefined), pairwise(), takeUntil(this._destroy$))
|
|
57
|
+
.subscribe(([previousValue, currentValue]) => {
|
|
58
|
+
const change = new NgxsSimpleChange(previousValue, currentValue, !mappedStore.isInitialised);
|
|
59
|
+
instance.ngxsOnChanges(change);
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
if (instance.ngxsOnInit) {
|
|
63
|
+
instance.ngxsOnInit(this._getStateContext(mappedStore));
|
|
64
|
+
}
|
|
65
|
+
mappedStore.isInitialised = true;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
_invokeBootstrapOnStates(mappedStores) {
|
|
69
|
+
for (const mappedStore of mappedStores) {
|
|
70
|
+
const instance = mappedStore.instance;
|
|
71
|
+
if (instance.ngxsAfterBootstrap) {
|
|
72
|
+
instance.ngxsAfterBootstrap(this._getStateContext(mappedStore));
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
_getStateContext(mappedStore) {
|
|
77
|
+
return this._stateContextFactory.createStateContext(mappedStore);
|
|
78
|
+
}
|
|
79
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: LifecycleStateManager, deps: [{ token: i1.Store }, { token: i2.InternalStateOperations }, { token: i3.StateContextFactory }, { token: i4.ɵNgxsAppBootstrappedState }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
80
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: LifecycleStateManager, providedIn: 'root' }); }
|
|
81
|
+
}
|
|
82
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: LifecycleStateManager, decorators: [{
|
|
83
|
+
type: Injectable,
|
|
84
|
+
args: [{ providedIn: 'root' }]
|
|
85
|
+
}], ctorParameters: () => [{ type: i1.Store }, { type: i2.InternalStateOperations }, { type: i3.StateContextFactory }, { type: i4.ɵNgxsAppBootstrappedState }] });
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlmZWN5Y2xlLXN0YXRlLW1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvaW50ZXJuYWwvbGlmZWN5Y2xlLXN0YXRlLW1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZGLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDakMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFN0QsT0FBTyxFQUFpQixnQkFBZ0IsRUFBZ0IsTUFBTSxZQUFZLENBQUM7QUFDM0UsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7OztBQUVsRixNQUFNLFdBQVcsR0FBRyxPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUyxDQUFDO0FBR2xFLE1BQU0sT0FBTyxxQkFBcUI7SUFLaEMsWUFDVSxNQUFhLEVBQ2Isd0JBQWlELEVBQ2pELG9CQUF5QyxFQUN6QyxxQkFBZ0Q7UUFIaEQsV0FBTSxHQUFOLE1BQU0sQ0FBTztRQUNiLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBeUI7UUFDakQseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFx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O1lBQ3JELElBQUksUUFBUSxDQUFDLGtCQUFrQixFQUFFLENBQUM7Z0JBQ2hDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztZQUNsRSxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxXQUF3QjtRQUMvQyxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNuRSxDQUFDO2lJQXRGVSxxQkFBcUI7cUlBQXJCLHFCQUFxQixjQURSLE1BQU07OzJGQUNuQixxQkFBcUI7a0JBRGpDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyDJtU5neHNBcHBCb290c3RyYXBwZWRTdGF0ZSB9IGZyb20gJ0BuZ3hzL3N0b3JlL2ludGVybmFscyc7XG5pbXBvcnQgeyBnZXRWYWx1ZSwgSW5pdFN0YXRlLCBVcGRhdGVTdGF0ZSB9IGZyb20gJ0BuZ3hzL3N0b3JlL3BsdWdpbnMnO1xuaW1wb3J0IHsgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtZXJnZU1hcCwgcGFpcndpc2UsIHN0YXJ0V2l0aCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnLi4vc3RvcmUnO1xuaW1wb3J0IHsgU3RhdGVDb250ZXh0RmFjdG9yeSB9IGZyb20gJy4vc3RhdGUtY29udGV4dC1mYWN0b3J5JztcbmltcG9ydCB7IEludGVybmFsU3RhdGVPcGVyYXRpb25zIH0gZnJvbSAnLi9zdGF0ZS1vcGVyYXRpb25zJztcbmltcG9ydCB7IE1hcHBlZFN0b3JlLCBTdGF0ZXNBbmREZWZhdWx0cyB9IGZyb20gJy4vaW50ZXJuYWxzJztcbmltcG9ydCB7IE5neHNMaWZlQ3ljbGUsIE5neHNTaW1wbGVDaGFuZ2UsIFN0YXRlQ29udGV4dCB9IGZyb20gJy4uL3N5bWJvbHMnO1xuaW1wb3J0IHsgZ2V0SW52YWxpZEluaXRpYWxpemF0aW9uT3JkZXJNZXNzYWdlIH0gZnJvbSAnLi4vY29uZmlncy9tZXNzYWdlcy5jb25maWcnO1xuXG5jb25zdCBOR19ERVZfTU9ERSA9IHR5cGVvZiBuZ0Rldk1vZGUgIT09ICd1bmRlZmluZWQnICYmIG5nRGV2TW9kZTtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBMaWZlY3ljbGVTdGF0ZU1hbmFnZXIgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95JCA9IG5ldyBSZXBsYXlTdWJqZWN0PHZvaWQ+KDEpO1xuXG4gIHByaXZhdGUgX2luaXRTdGF0ZUhhc0JlZW5EaXNwYXRjaGVkPzogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9zdG9yZTogU3RvcmUsXG4gICAgcHJpdmF0ZSBfaW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnM6IEludGVybmFsU3RhdGVPcGVyYXRpb25zLFxuICAgIHByaXZhdGUgX3N0YXRlQ29udGV4dEZhY3Rvcnk6IFN0YXRlQ29udGV4dEZhY3RvcnksXG4gICAgcHJpdmF0ZSBfYXBwQm9vdHN0cmFwcGVkU3RhdGU6IMm1Tmd4c0FwcEJvb3RzdHJhcHBlZFN0YXRlXG4gICkge31cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gIH1cblxuICBuZ3hzQm9vdHN0cmFwKFxuICAgIGFjdGlvbjogSW5pdFN0YXRlIHwgVXBkYXRlU3RhdGUsXG4gICAgcmVzdWx0czogU3RhdGVzQW5kRGVmYXVsdHMgfCB1bmRlZmluZWRcbiAgKTogdm9pZCB7XG4gICAgaWYgKE5HX0RFVl9NT0RFKSB7XG4gICAgICBpZiAoYWN0aW9uIGluc3RhbmNlb2YgSW5pdFN0YXRlKSB7XG4gICAgICAgIHRoaXMuX2luaXRTdGF0ZUhhc0JlZW5EaXNwYXRjaGVkID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIC8vIFRoaXMgaXMgYSBkZXYgbW9kZS1vbmx5IGNoZWNrIHRoYXQgZW5zdXJlcyB0aGUgY29ycmVjdCBvcmRlciBvZlxuICAgICAgICAvLyBzdGF0ZSBpbml0aWFsaXphdGlvbi4gVGhlIGBOZ3hzTW9kdWxlLmZvclJvb3RgIG9yIGBwcm92aWRlU3RvcmVgIHNob3VsZFxuICAgICAgICAvLyBhbHdheXMgY29tZSBmaXJzdCwgZm9sbG93ZWQgYnkgYGZvckZlYXR1cmVgIGFuZCBgcHJvdmlkZVN0YXRlc2AuIElmIHRoZVxuICAgICAgICAvLyBgVXBkYXRlU3RhdGVgIGlzIGRpc3BhdGNoZWQgYmVmb3JlIHRoZSBgSW5pdFN0YXRlYCBpcyBkaXNwYXRjaGVkLCBpdCBpbmRpY2F0ZXNcbiAgICAgICAgLy8gdGhhdCBtb2R1bGVzIG9yIHByb3ZpZGVycyBhcmUgaW4gYW4gaW52YWxpZCBvcmRlci5cbiAgICAgICAgYWN0aW9uIGluc3RhbmNlb2YgVXBkYXRlU3RhdGUgJiZcbiAgICAgICAgIXRoaXMuX2luaXRTdGF0ZUhhc0JlZW5EaXNwYXRjaGVkXG4gICAgICApIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihnZXRJbnZhbGlkSW5pdGlhbGl6YXRpb25PcmRlck1lc3NhZ2UoYWN0aW9uLmFkZGVkU3RhdGVzKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5faW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnNcbiAgICAgIC5nZXRSb290U3RhdGVPcGVyYXRpb25zKClcbiAgICAgIC5kaXNwYXRjaChhY3Rpb24pXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKCgpID0+ICEhcmVzdWx0cyksXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLl9pbnZva2VJbml0T25TdGF0ZXMocmVzdWx0cyEuc3RhdGVzKSksXG4gICAgICAgIG1lcmdlTWFwKCgpID0+IHRoaXMuX2FwcEJvb3RzdHJhcHBlZFN0YXRlKSxcbiAgICAgICAgZmlsdGVyKGFwcEJvb3RzdHJhcHBlZCA9PiAhIWFwcEJvb3RzdHJhcHBlZCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5faW52b2tlQm9vdHN0cmFwT25TdGF0ZXMocmVzdWx0cyEuc3RhdGVzKSk7XG4gIH1cblxuICBwcml2YXRlIF9pbnZva2VJbml0T25TdGF0ZXMobWFwcGVkU3RvcmVzOiBNYXBwZWRTdG9yZVtdKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBtYXBwZWRTdG9yZSBvZiBtYXBwZWRTdG9yZXMpIHtcbiAgICAgIGNvbnN0IGluc3RhbmNlOiBOZ3hzTGlmZUN5Y2xlID0gbWFwcGVkU3RvcmUuaW5zdGFuY2U7XG5cbiAgICAgIGlmIChpbnN0YW5jZS5uZ3hzT25DaGFuZ2VzKSB7XG4gICAgICAgIHRoaXMuX3N0b3JlXG4gICAgICAgICAgLnNlbGVjdChzdGF0ZSA9PiBnZXRWYWx1ZShzdGF0ZSwgbWFwcGVkU3RvcmUucGF0aCkpXG4gICAgICAgICAgLnBpcGUoc3RhcnRXaXRoKHVuZGVmaW5lZCksIHBhaXJ3aXNlKCksIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpXG4gICAgICAgICAgLnN1YnNjcmliZSgoW3ByZXZpb3VzVmFsdWUsIGN1cnJlbnRWYWx1ZV0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNoYW5nZSA9IG5ldyBOZ3hzU2ltcGxlQ2hhbmdlKFxuICAgICAgICAgICAgICBwcmV2aW91c1ZhbHVlLFxuICAgICAgICAgICAgICBjdXJyZW50VmFsdWUsXG4gICAgICAgICAgICAgICFtYXBwZWRTdG9yZS5pc0luaXRpYWxpc2VkXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaW5zdGFuY2Uubmd4c09uQ2hhbmdlcyEoY2hhbmdlKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKGluc3RhbmNlLm5neHNPbkluaXQpIHtcbiAgICAgICAgaW5zdGFuY2Uubmd4c09uSW5pdCh0aGlzLl9nZXRTdGF0ZUNvbnRleHQobWFwcGVkU3RvcmUpKTtcbiAgICAgIH1cblxuICAgICAgbWFwcGVkU3RvcmUuaXNJbml0aWFsaXNlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaW52b2tlQm9vdHN0cmFwT25TdGF0ZXMobWFwcGVkU3RvcmVzOiBNYXBwZWRTdG9yZVtdKSB7XG4gICAgZm9yIChjb25zdCBtYXBwZWRTdG9yZSBvZiBtYXBwZWRTdG9yZXMpIHtcbiAgICAgIGNvbnN0IGluc3RhbmNlOiBOZ3hzTGlmZUN5Y2xlID0gbWFwcGVkU3RvcmUuaW5zdGFuY2U7XG4gICAgICBpZiAoaW5zdGFuY2Uubmd4c0FmdGVyQm9vdHN0cmFwKSB7XG4gICAgICAgIGluc3RhbmNlLm5neHNBZnRlckJvb3RzdHJhcCh0aGlzLl9nZXRTdGF0ZUNvbnRleHQobWFwcGVkU3RvcmUpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9nZXRTdGF0ZUNvbnRleHQobWFwcGVkU3RvcmU6IE1hcHBlZFN0b3JlKTogU3RhdGVDb250ZXh0PGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZUNvbnRleHRGYWN0b3J5LmNyZWF0ZVN0YXRlQ29udGV4dChtYXBwZWRTdG9yZSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { getValue, setValue } from '@ngxs/store/plugins';
|
|
3
|
+
import { isStateOperator } from '@ngxs/store/operators';
|
|
4
|
+
import { InternalStateOperations } from '../internal/state-operations';
|
|
5
|
+
import { simplePatch } from './state-operators';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "../internal/state-operations";
|
|
8
|
+
/**
|
|
9
|
+
* State Context factory class
|
|
10
|
+
* @ignore
|
|
11
|
+
*/
|
|
12
|
+
export class StateContextFactory {
|
|
13
|
+
constructor(_internalStateOperations) {
|
|
14
|
+
this._internalStateOperations = _internalStateOperations;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Create the state context
|
|
18
|
+
*/
|
|
19
|
+
createStateContext(mappedStore) {
|
|
20
|
+
const root = this._internalStateOperations.getRootStateOperations();
|
|
21
|
+
return {
|
|
22
|
+
getState() {
|
|
23
|
+
const currentAppState = root.getState();
|
|
24
|
+
return getState(currentAppState, mappedStore.path);
|
|
25
|
+
},
|
|
26
|
+
patchState(val) {
|
|
27
|
+
const currentAppState = root.getState();
|
|
28
|
+
const patchOperator = simplePatch(val);
|
|
29
|
+
setStateFromOperator(root, currentAppState, patchOperator, mappedStore.path);
|
|
30
|
+
},
|
|
31
|
+
setState(val) {
|
|
32
|
+
const currentAppState = root.getState();
|
|
33
|
+
if (isStateOperator(val)) {
|
|
34
|
+
setStateFromOperator(root, currentAppState, val, mappedStore.path);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
setStateValue(root, currentAppState, val, mappedStore.path);
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
dispatch(actions) {
|
|
41
|
+
return root.dispatch(actions);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: StateContextFactory, deps: [{ token: i1.InternalStateOperations }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
46
|
+
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: StateContextFactory, providedIn: 'root' }); }
|
|
47
|
+
}
|
|
48
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: StateContextFactory, decorators: [{
|
|
49
|
+
type: Injectable,
|
|
50
|
+
args: [{ providedIn: 'root' }]
|
|
51
|
+
}], ctorParameters: () => [{ type: i1.InternalStateOperations }] });
|
|
52
|
+
function setStateValue(root, currentAppState, newValue, path) {
|
|
53
|
+
const newAppState = setValue(currentAppState, path, newValue);
|
|
54
|
+
root.setState(newAppState);
|
|
55
|
+
return newAppState;
|
|
56
|
+
// In doing this refactoring I noticed that there is a 'bug' where the
|
|
57
|
+
// application state is returned instead of this state slice.
|
|
58
|
+
// This has worked this way since the beginning see:
|
|
59
|
+
// https://github.com/ngxs/store/blame/324c667b4b7debd8eb979006c67ca0ae347d88cd/src/state-factory.ts
|
|
60
|
+
// This needs to be fixed, but is a 'breaking' change.
|
|
61
|
+
// I will do this fix in a subsequent PR and we can decide how to handle it.
|
|
62
|
+
}
|
|
63
|
+
function setStateFromOperator(root, currentAppState, stateOperator, path) {
|
|
64
|
+
const local = getState(currentAppState, path);
|
|
65
|
+
const newValue = stateOperator(local);
|
|
66
|
+
return setStateValue(root, currentAppState, newValue, path);
|
|
67
|
+
}
|
|
68
|
+
function getState(currentAppState, path) {
|
|
69
|
+
return getValue(currentAppState, path);
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtY29udGV4dC1mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RvcmUvc3JjL2ludGVybmFsL3N0YXRlLWNvbnRleHQtZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekQsT0FBTyxFQUFnQyxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUt0RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7OztBQUVoRDs7O0dBR0c7QUFFSCxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLFlBQW9CLHdCQUFpRDtRQUFqRCw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQXlCO0lBQUcsQ0FBQztJQUV6RTs7T0FFRztJQUNILGtCQUFrQixDQUFJLFdBQXdCO1FBQzVDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBRXBFLE9BQU87WUFDTCxRQUFRO2dCQUNOLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDeEMsT0FBTyxRQUFRLENBQUMsZUFBZSxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNyRCxDQUFDO1lBQ0QsVUFBVSxDQUFDLEdBQWU7Z0JBQ3hCLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDeEMsTUFBTSxhQUFhLEdBQUcsV0FBVyxDQUFJLEdBQUcsQ0FBQyxDQUFDO2dCQUMxQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDL0UsQ0FBQztZQUNELFFBQVEsQ0FBQyxHQUF5QjtnQkFDaEMsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUN4QyxJQUFJLGVBQWUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUN6QixvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFLEdBQUcsRUFBRSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3JFLENBQUM7cUJBQU0sQ0FBQztvQkFDTixhQUFhLENBQUMsSUFBSSxFQUFFLGVBQWUsRUFBRSxHQUFHLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUM5RCxDQUFDO1lBQ0gsQ0FBQztZQUNELFFBQVEsQ0FBQyxPQUFvQjtnQkFDM0IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2hDLENBQUM7U0FDRixDQUFDO0lBQ0osQ0FBQztpSUEvQlUsbUJBQW1CO3FJQUFuQixtQkFBbUIsY0FETixNQUFNOzsyRkFDbkIsbUJBQW1CO2tCQUQvQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7QUFtQ2xDLFNBQVMsYUFBYSxDQUNwQixJQUEwQixFQUMxQixlQUFvQixFQUNwQixRQUFXLEVBQ1gsSUFBWTtJQUVaLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxlQUFlLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzlELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDM0IsT0FBTyxXQUFXLENBQUM7SUFDbkIsc0VBQXNFO0lBQ3RFLDZEQUE2RDtJQUM3RCxvREFBb0Q7SUFDcEQsb0dBQW9HO0lBQ3BHLHNEQUFzRDtJQUN0RCw0RUFBNEU7QUFDOUUsQ0FBQztBQUVELFNBQVMsb0JBQW9CLENBQzNCLElBQTBCLEVBQzFCLGVBQW9CLEVBQ3BCLGFBQStCLEVBQy9CLElBQVk7SUFFWixNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlDLE1BQU0sUUFBUSxHQUFHLGFBQWEsQ0FBQyxLQUF5QixDQUFDLENBQUM7SUFDMUQsT0FBTyxhQUFhLENBQUMsSUFBSSxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDOUQsQ0FBQztBQUVELFNBQVMsUUFBUSxDQUFJLGVBQW9CLEVBQUUsSUFBWTtJQUNyRCxPQUFPLFFBQVEsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDekMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldFZhbHVlLCBzZXRWYWx1ZSB9IGZyb20gJ0BuZ3hzL3N0b3JlL3BsdWdpbnMnO1xuaW1wb3J0IHsgRXhpc3RpbmdTdGF0ZSwgU3RhdGVPcGVyYXRvciwgaXNTdGF0ZU9wZXJhdG9yIH0gZnJvbSAnQG5neHMvc3RvcmUvb3BlcmF0b3JzJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU3RhdGVDb250ZXh0IH0gZnJvbSAnLi4vc3ltYm9scyc7XG5pbXBvcnQgeyBNYXBwZWRTdG9yZSwgU3RhdGVPcGVyYXRpb25zIH0gZnJvbSAnLi4vaW50ZXJuYWwvaW50ZXJuYWxzJztcbmltcG9ydCB7IEludGVybmFsU3RhdGVPcGVyYXRpb25zIH0gZnJvbSAnLi4vaW50ZXJuYWwvc3RhdGUtb3BlcmF0aW9ucyc7XG5pbXBvcnQgeyBzaW1wbGVQYXRjaCB9IGZyb20gJy4vc3RhdGUtb3BlcmF0b3JzJztcblxuLyoqXG4gKiBTdGF0ZSBDb250ZXh0IGZhY3RvcnkgY2xhc3NcbiAqIEBpZ25vcmVcbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBTdGF0ZUNvbnRleHRGYWN0b3J5IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfaW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnM6IEludGVybmFsU3RhdGVPcGVyYXRpb25zKSB7fVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgdGhlIHN0YXRlIGNvbnRleHRcbiAgICovXG4gIGNyZWF0ZVN0YXRlQ29udGV4dDxUPihtYXBwZWRTdG9yZTogTWFwcGVkU3RvcmUpOiBTdGF0ZUNvbnRleHQ8VD4ge1xuICAgIGNvbnN0IHJvb3QgPSB0aGlzLl9pbnRlcm5hbFN0YXRlT3BlcmF0aW9ucy5nZXRSb290U3RhdGVPcGVyYXRpb25zKCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgZ2V0U3RhdGUoKTogVCB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRBcHBTdGF0ZSA9IHJvb3QuZ2V0U3RhdGUoKTtcbiAgICAgICAgcmV0dXJuIGdldFN0YXRlKGN1cnJlbnRBcHBTdGF0ZSwgbWFwcGVkU3RvcmUucGF0aCk7XG4gICAgICB9LFxuICAgICAgcGF0Y2hTdGF0ZSh2YWw6IFBhcnRpYWw8VD4pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY3VycmVudEFwcFN0YXRlID0gcm9vdC5nZXRTdGF0ZSgpO1xuICAgICAgICBjb25zdCBwYXRjaE9wZXJhdG9yID0gc2ltcGxlUGF0Y2g8VD4odmFsKTtcbiAgICAgICAgc2V0U3RhdGVGcm9tT3BlcmF0b3Iocm9vdCwgY3VycmVudEFwcFN0YXRlLCBwYXRjaE9wZXJhdG9yLCBtYXBwZWRTdG9yZS5wYXRoKTtcbiAgICAgIH0sXG4gICAgICBzZXRTdGF0ZSh2YWw6IFQgfCBTdGF0ZU9wZXJhdG9yPFQ+KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRBcHBTdGF0ZSA9IHJvb3QuZ2V0U3RhdGUoKTtcbiAgICAgICAgaWYgKGlzU3RhdGVPcGVyYXRvcih2YWwpKSB7XG4gICAgICAgICAgc2V0U3RhdGVGcm9tT3BlcmF0b3Iocm9vdCwgY3VycmVudEFwcFN0YXRlLCB2YWwsIG1hcHBlZFN0b3JlLnBhdGgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHNldFN0YXRlVmFsdWUocm9vdCwgY3VycmVudEFwcFN0YXRlLCB2YWwsIG1hcHBlZFN0b3JlLnBhdGgpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZGlzcGF0Y2goYWN0aW9uczogYW55IHwgYW55W10pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHJvb3QuZGlzcGF0Y2goYWN0aW9ucyk7XG4gICAgICB9XG4gICAgfTtcbiAgfVxufVxuXG5mdW5jdGlvbiBzZXRTdGF0ZVZhbHVlPFQ+KFxuICByb290OiBTdGF0ZU9wZXJhdGlvbnM8YW55PixcbiAgY3VycmVudEFwcFN0YXRlOiBhbnksXG4gIG5ld1ZhbHVlOiBULFxuICBwYXRoOiBzdHJpbmdcbik6IGFueSB7XG4gIGNvbnN0IG5ld0FwcFN0YXRlID0gc2V0VmFsdWUoY3VycmVudEFwcFN0YXRlLCBwYXRoLCBuZXdWYWx1ZSk7XG4gIHJvb3Quc2V0U3RhdGUobmV3QXBwU3RhdGUpO1xuICByZXR1cm4gbmV3QXBwU3RhdGU7XG4gIC8vIEluIGRvaW5nIHRoaXMgcmVmYWN0b3JpbmcgSSBub3RpY2VkIHRoYXQgdGhlcmUgaXMgYSAnYnVnJyB3aGVyZSB0aGVcbiAgLy8gYXBwbGljYXRpb24gc3RhdGUgaXMgcmV0dXJuZWQgaW5zdGVhZCBvZiB0aGlzIHN0YXRlIHNsaWNlLlxuICAvLyBUaGlzIGhhcyB3b3JrZWQgdGhpcyB3YXkgc2luY2UgdGhlIGJlZ2lubmluZyBzZWU6XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9uZ3hzL3N0b3JlL2JsYW1lLzMyNGM2NjdiNGI3ZGViZDhlYjk3OTAwNmM2N2NhMGFlMzQ3ZDg4Y2Qvc3JjL3N0YXRlLWZhY3RvcnkudHNcbiAgLy8gVGhpcyBuZWVkcyB0byBiZSBmaXhlZCwgYnV0IGlzIGEgJ2JyZWFraW5nJyBjaGFuZ2UuXG4gIC8vIEkgd2lsbCBkbyB0aGlzIGZpeCBpbiBhIHN1YnNlcXVlbnQgUFIgYW5kIHdlIGNhbiBkZWNpZGUgaG93IHRvIGhhbmRsZSBpdC5cbn1cblxuZnVuY3Rpb24gc2V0U3RhdGVGcm9tT3BlcmF0b3I8VD4oXG4gIHJvb3Q6IFN0YXRlT3BlcmF0aW9uczxhbnk+LFxuICBjdXJyZW50QXBwU3RhdGU6IGFueSxcbiAgc3RhdGVPcGVyYXRvcjogU3RhdGVPcGVyYXRvcjxUPixcbiAgcGF0aDogc3RyaW5nXG4pIHtcbiAgY29uc3QgbG9jYWwgPSBnZXRTdGF0ZShjdXJyZW50QXBwU3RhdGUsIHBhdGgpO1xuICBjb25zdCBuZXdWYWx1ZSA9IHN0YXRlT3BlcmF0b3IobG9jYWwgYXMgRXhpc3RpbmdTdGF0ZTxUPik7XG4gIHJldHVybiBzZXRTdGF0ZVZhbHVlKHJvb3QsIGN1cnJlbnRBcHBTdGF0ZSwgbmV3VmFsdWUsIHBhdGgpO1xufVxuXG5mdW5jdGlvbiBnZXRTdGF0ZTxUPihjdXJyZW50QXBwU3RhdGU6IGFueSwgcGF0aDogc3RyaW5nKTogVCB7XG4gIHJldHVybiBnZXRWYWx1ZShjdXJyZW50QXBwU3RhdGUsIHBhdGgpO1xufVxuIl19
|