@ngxs/store 3.8.1 → 3.8.2-dev.master-a75608e
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/esm2020/internals/index.mjs +6 -0
- package/esm2020/internals/initial-state.mjs +18 -0
- package/esm2020/internals/internal-tokens.mjs +6 -0
- package/{esm2015/internals/ngxs-bootstrapper.js → esm2020/internals/ngxs-bootstrapper.mjs} +4 -4
- package/esm2020/internals/src/symbols.mjs +11 -0
- package/esm2020/internals/symbols.mjs +11 -0
- package/esm2020/internals/testing/fresh-platform.mjs +72 -0
- package/{esm2015/internals/testing/helpers/ngxs-test.component.js → esm2020/internals/testing/helpers/ngxs-test.component.mjs} +4 -4
- package/esm2020/internals/testing/helpers/ngxs-test.module.mjs +20 -0
- package/{esm2015/internals/testing/ngxs.setup.js → esm2020/internals/testing/ngxs.setup.mjs} +4 -2
- package/esm2020/internals/testing/symbol.mjs +2 -0
- package/esm2020/operators/patch.mjs +21 -0
- package/esm2020/src/actions/actions.mjs +16 -0
- package/{esm2015/src/actions-stream.js → esm2020/src/actions-stream.mjs} +7 -7
- package/esm2020/src/configs/messages.config.mjs +48 -0
- package/{esm2015/src/decorators/select/select-factory.js → esm2020/src/decorators/select/select-factory.mjs} +4 -4
- package/esm2020/src/decorators/selector/selector.mjs +32 -0
- package/esm2020/src/decorators/state.mjs +36 -0
- package/{esm2015/src/dev-features/ngxs-development.module.js → esm2020/src/dev-features/ngxs-development.module.mjs} +5 -5
- package/{esm2015/src/dev-features/ngxs-unhandled-actions-logger.js → esm2020/src/dev-features/ngxs-unhandled-actions-logger.mjs} +4 -4
- package/{esm2015/src/execution/dispatch-outside-zone-ngxs-execution-strategy.js → esm2020/src/execution/dispatch-outside-zone-ngxs-execution-strategy.mjs} +4 -4
- package/{esm2015/src/execution/internal-ngxs-execution-strategy.js → esm2020/src/execution/internal-ngxs-execution-strategy.mjs} +4 -4
- package/{esm2015/src/execution/noop-ngxs-execution-strategy.js → esm2020/src/execution/noop-ngxs-execution-strategy.mjs} +4 -4
- package/esm2020/src/execution/symbols.mjs +27 -0
- package/{esm2015/src/internal/custom-rxjs-subjects.js → esm2020/src/internal/custom-rxjs-subjects.mjs} +2 -2
- package/{esm2015/src/internal/dispatcher.js → esm2020/src/internal/dispatcher.mjs} +11 -11
- package/{esm2015/src/internal/error-handler.js → esm2020/src/internal/error-handler.mjs} +5 -5
- package/esm2020/src/internal/internals.mjs +248 -0
- package/esm2020/src/internal/lifecycle-state-manager.mjs +97 -0
- package/esm2020/src/internal/state-context-factory.mjs +68 -0
- package/esm2020/src/internal/state-factory.mjs +292 -0
- package/{esm2015/src/internal/state-operations.js → esm2020/src/internal/state-operations.mjs} +5 -5
- package/esm2020/src/internal/state-operators.mjs +20 -0
- package/esm2020/src/internal/state-stream.mjs +27 -0
- package/{esm2015/src/ivy/ivy-enabled-in-dev-mode.js → esm2020/src/ivy/ivy-enabled-in-dev-mode.mjs} +2 -2
- package/esm2020/src/module.mjs +27 -0
- package/esm2020/src/modules/ngxs-feature.module.mjs +18 -0
- package/esm2020/src/modules/ngxs-root.module.mjs +18 -0
- package/{esm2015/src/operators/of-action.js → esm2020/src/operators/of-action.mjs} +10 -10
- package/{esm2015/src/plugin-manager.js → esm2020/src/plugin-manager.mjs} +4 -4
- package/esm2020/src/public_api.mjs +28 -0
- package/esm2020/src/selectors/create-model-selector.mjs +30 -0
- package/esm2020/src/selectors/create-pick-selector.mjs +16 -0
- package/esm2020/src/selectors/create-property-selectors.mjs +20 -0
- package/esm2020/src/selectors/selector-metadata.mjs +35 -0
- package/esm2020/src/selectors/selector-types.util.mjs +2 -0
- package/esm2020/src/standalone-features/feature-providers.mjs +20 -0
- package/esm2020/src/standalone-features/index.mjs +4 -0
- package/esm2020/src/standalone-features/initializers.mjs +86 -0
- package/esm2020/src/standalone-features/plugin.mjs +20 -0
- package/esm2020/src/standalone-features/provide-states.mjs +26 -0
- package/esm2020/src/standalone-features/provide-store.mjs +26 -0
- package/esm2020/src/standalone-features/root-providers.mjs +47 -0
- package/{esm2015/src/store.js → esm2020/src/store.mjs} +6 -5
- package/esm2020/src/symbols.mjs +65 -0
- package/esm2020/src/utils/store-validators.mjs +25 -0
- package/esm2020/src/utils/utils.mjs +92 -0
- package/fesm2015/{ngxs-store-internals-testing.js → ngxs-store-internals-testing.mjs} +19 -13
- package/fesm2015/ngxs-store-internals-testing.mjs.map +1 -0
- package/fesm2015/{ngxs-store-internals.js → ngxs-store-internals.mjs} +21 -21
- package/fesm2015/ngxs-store-internals.mjs.map +1 -0
- package/fesm2015/{ngxs-store-operators.js → ngxs-store-operators.mjs} +2 -2
- package/fesm2015/ngxs-store-operators.mjs.map +1 -0
- package/fesm2015/ngxs-store.mjs +2454 -0
- package/fesm2015/ngxs-store.mjs.map +1 -0
- package/fesm2020/ngxs-store-internals-testing.mjs +180 -0
- package/fesm2020/ngxs-store-internals-testing.mjs.map +1 -0
- package/fesm2020/ngxs-store-internals.mjs +114 -0
- package/fesm2020/ngxs-store-internals.mjs.map +1 -0
- package/fesm2020/ngxs-store-operators.mjs +202 -0
- package/fesm2020/ngxs-store-operators.mjs.map +1 -0
- package/{fesm2015/ngxs-store.js → fesm2020/ngxs-store.mjs} +1190 -1036
- package/fesm2020/ngxs-store.mjs.map +1 -0
- package/internals/index.d.ts +1 -2
- package/internals/initial-state.d.ts +1 -1
- package/internals/src/symbols.d.ts +4 -1
- package/internals/symbols.d.ts +4 -1
- package/internals/testing/helpers/ngxs-test.component.d.ts +1 -1
- package/internals/testing/symbol.d.ts +2 -2
- package/package.json +49 -12
- package/schematics/collection.json +36 -0
- package/schematics/src/actions/actions.factory.d.ts +3 -0
- package/schematics/src/actions/actions.factory.js +22 -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 +28 -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 +86 -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__ +7 -0
- package/schematics/src/starter-kit/files/store/auth/auth.state.spec.ts__template__ +54 -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__ +11 -0
- package/schematics/src/starter-kit/files/store/dashboard/states/dictionary/dictionary.actions.ts__template__ +13 -0
- package/schematics/src/starter-kit/files/store/dashboard/states/dictionary/dictionary.state.spec.ts__template__ +91 -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__ +60 -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__ +38 -0
- package/schematics/src/starter-kit/files/store/store.module.ts__template__ +22 -0
- package/schematics/src/starter-kit/schema.json +18 -0
- package/schematics/src/starter-kit/starter-kit.factory.d.ts +3 -0
- package/schematics/src/starter-kit/starter-kit.factory.js +12 -0
- package/schematics/src/starter-kit/starter-kit.factory.js.map +1 -0
- package/schematics/src/state/files/__name__.state.spec.ts__template__ +24 -0
- package/schematics/src/state/files/__name__.state.ts__template__ +22 -0
- package/schematics/src/state/schema.json +33 -0
- package/schematics/src/state/state.factory.d.ts +3 -0
- package/schematics/src/state/state.factory.js +20 -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__ +25 -0
- package/schematics/src/store/files/__name__.state.ts__template__ +29 -0
- package/schematics/src/store/schema.json +33 -0
- package/schematics/src/store/store.factory.d.ts +3 -0
- package/schematics/src/store/store.factory.js +20 -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 +21 -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 +9 -0
- package/schematics/src/utils/normalize-options.js +24 -0
- package/schematics/src/utils/normalize-options.js.map +1 -0
- package/schematics/src/utils/project.d.ts +16 -0
- package/schematics/src/utils/project.js +40 -0
- package/schematics/src/utils/project.js.map +1 -0
- package/schematics/src/utils/versions.json +3 -0
- package/src/actions/actions.d.ts +2 -2
- package/src/configs/messages.config.d.ts +2 -0
- package/src/decorators/state.d.ts +2 -2
- package/src/execution/symbols.d.ts +8 -2
- package/src/internal/custom-rxjs-subjects.d.ts +1 -1
- package/src/internal/internals.d.ts +5 -5
- package/src/internal/lifecycle-state-manager.d.ts +3 -1
- package/src/internal/state-factory.d.ts +1 -1
- 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/public_api.d.ts +5 -4
- package/src/selectors/selector-types.util.d.ts +3 -3
- package/src/standalone-features/feature-providers.d.ts +7 -0
- package/src/standalone-features/index.d.ts +3 -0
- package/src/standalone-features/initializers.d.ts +29 -0
- package/src/standalone-features/plugin.d.ts +17 -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/symbols.d.ts +5 -8
- package/src/utils/store-validators.d.ts +3 -6
- package/bundles/ngxs-store-internals-testing.umd.js +0 -547
- package/bundles/ngxs-store-internals-testing.umd.js.map +0 -1
- package/bundles/ngxs-store-internals.umd.js +0 -155
- 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 -2960
- package/bundles/ngxs-store.umd.js.map +0 -1
- package/esm2015/internals/angular.js +0 -13
- package/esm2015/internals/index.js +0 -6
- package/esm2015/internals/initial-state.js +0 -17
- package/esm2015/internals/internal-tokens.js +0 -5
- 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/symbol.js +0 -2
- package/esm2015/operators/patch.js +0 -21
- package/esm2015/src/actions/actions.js +0 -22
- package/esm2015/src/configs/messages.config.js +0 -36
- package/esm2015/src/decorators/selector/selector.js +0 -32
- package/esm2015/src/decorators/state.js +0 -38
- package/esm2015/src/execution/symbols.js +0 -23
- 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 -70
- package/esm2015/src/internal/state-factory.js +0 -291
- package/esm2015/src/internal/state-operators.js +0 -20
- package/esm2015/src/internal/state-stream.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/public_api.js +0 -27
- package/esm2015/src/selectors/create-model-selector.js +0 -28
- package/esm2015/src/selectors/create-pick-selector.js +0 -14
- package/esm2015/src/selectors/create-property-selectors.js +0 -18
- package/esm2015/src/selectors/selector-metadata.js +0 -30
- package/esm2015/src/selectors/selector-types.util.js +0 -2
- package/esm2015/src/symbols.js +0 -58
- package/esm2015/src/utils/store-validators.js +0 -27
- package/esm2015/src/utils/utils.js +0 -92
- package/fesm2015/ngxs-store-internals-testing.js.map +0 -1
- 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/angular.d.ts +0 -1
- package/internals/ngxs-store-internals.d.ts +0 -5
- package/internals/package.json +0 -10
- 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/{esm2015/index.js → esm2020/index.mjs} +0 -0
- /package/{esm2015/internals/memoize.js → esm2020/internals/memoize.mjs} +0 -0
- /package/{esm2015/internals/ngxs-store-internals.js → esm2020/internals/ngxs-store-internals.mjs} +0 -0
- /package/{esm2015/internals/testing/index.js → esm2020/internals/testing/index.mjs} +0 -0
- /package/{esm2015/internals/testing/ngxs-store-internals-testing.js → esm2020/internals/testing/ngxs-store-internals-testing.mjs} +0 -0
- /package/{esm2015/internals/testing/skip-console-logging.js → esm2020/internals/testing/skip-console-logging.mjs} +0 -0
- /package/{esm2015/ngxs-store.js → esm2020/ngxs-store.mjs} +0 -0
- /package/{esm2015/operators/append.js → esm2020/operators/append.mjs} +0 -0
- /package/{esm2015/operators/compose.js → esm2020/operators/compose.mjs} +0 -0
- /package/{esm2015/operators/iif.js → esm2020/operators/iif.mjs} +0 -0
- /package/{esm2015/operators/index.js → esm2020/operators/index.mjs} +0 -0
- /package/{esm2015/operators/insert-item.js → esm2020/operators/insert-item.mjs} +0 -0
- /package/{esm2015/operators/ngxs-store-operators.js → esm2020/operators/ngxs-store-operators.mjs} +0 -0
- /package/{esm2015/operators/remove-item.js → esm2020/operators/remove-item.mjs} +0 -0
- /package/{esm2015/operators/types.js → esm2020/operators/types.mjs} +0 -0
- /package/{esm2015/operators/update-item.js → esm2020/operators/update-item.mjs} +0 -0
- /package/{esm2015/operators/utils.js → esm2020/operators/utils.mjs} +0 -0
- /package/{esm2015/src/actions/symbols.js → esm2020/src/actions/symbols.mjs} +0 -0
- /package/{esm2015/src/decorators/action.js → esm2020/src/decorators/action.mjs} +0 -0
- /package/{esm2015/src/decorators/select/select.js → esm2020/src/decorators/select/select.mjs} +0 -0
- /package/{esm2015/src/decorators/select/symbols.js → esm2020/src/decorators/select/symbols.mjs} +0 -0
- /package/{esm2015/src/decorators/selector/symbols.js → esm2020/src/decorators/selector/symbols.mjs} +0 -0
- /package/{esm2015/src/decorators/selector-options.js → esm2020/src/decorators/selector-options.mjs} +0 -0
- /package/{esm2015/src/dev-features/symbols.js → esm2020/src/dev-features/symbols.mjs} +0 -0
- /package/{esm2015/src/operators/leave-ngxs.js → esm2020/src/operators/leave-ngxs.mjs} +0 -0
- /package/{esm2015/src/plugin_api.js → esm2020/src/plugin_api.mjs} +0 -0
- /package/{esm2015/src/private_api.js → esm2020/src/private_api.mjs} +0 -0
- /package/{esm2015/src/public_to_deprecate.js → esm2020/src/public_to_deprecate.mjs} +0 -0
- /package/{esm2015/src/selectors/create-selector.js → esm2020/src/selectors/create-selector.mjs} +0 -0
- /package/{esm2015/src/selectors/index.js → esm2020/src/selectors/index.mjs} +0 -0
- /package/{esm2015/src/selectors/selector-checks.util.js → esm2020/src/selectors/selector-checks.util.mjs} +0 -0
- /package/{esm2015/src/selectors/selector-models.js → esm2020/src/selectors/selector-models.mjs} +0 -0
- /package/{esm2015/src/selectors/selector-utils.js → esm2020/src/selectors/selector-utils.mjs} +0 -0
- /package/{esm2015/src/state-token/state-token.js → esm2020/src/state-token/state-token.mjs} +0 -0
- /package/{esm2015/src/state-token/symbols.js → esm2020/src/state-token/symbols.mjs} +0 -0
- /package/{esm2015/src/utils/compose.js → esm2020/src/utils/compose.mjs} +0 -0
- /package/{esm2015/src/utils/freeze.js → esm2020/src/utils/freeze.mjs} +0 -0
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('rxjs')) :
|
|
3
|
-
typeof define === 'function' && define.amd ? define('@ngxs/store/internals', ['exports', '@angular/core', 'rxjs'], factory) :
|
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.ngxs = global.ngxs || {}, global.ngxs.store = global.ngxs.store || {}, global.ngxs.store.internals = {}), global.ng.core, global.rxjs));
|
|
5
|
-
})(this, (function (exports, i0, rxjs) { 'use strict';
|
|
6
|
-
|
|
7
|
-
function _interopNamespace(e) {
|
|
8
|
-
if (e && e.__esModule) return e;
|
|
9
|
-
var n = Object.create(null);
|
|
10
|
-
if (e) {
|
|
11
|
-
Object.keys(e).forEach(function (k) {
|
|
12
|
-
if (k !== 'default') {
|
|
13
|
-
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
14
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
15
|
-
enumerable: true,
|
|
16
|
-
get: function () { return e[k]; }
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
n["default"] = e;
|
|
22
|
-
return Object.freeze(n);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
var i0__namespace = /*#__PURE__*/_interopNamespace(i0);
|
|
26
|
-
|
|
27
|
-
function isAngularInTestMode() {
|
|
28
|
-
// This is safe to check for these properties in the following way since `typeof` does not
|
|
29
|
-
// throw an exception if the value does not exist in the scope.
|
|
30
|
-
// We should not try to read these values from the global scope (e.g. `ɵglobal` from the `@angular/core`).
|
|
31
|
-
// This is related to how these frameworks compile and execute modules. E.g. Jest wraps the module into
|
|
32
|
-
// its internal code where `jest` variable exists in the scope. It cannot be read from the global scope, e.g.
|
|
33
|
-
// this will return undefined `global.jest`, but `jest` will not equal undefined.
|
|
34
|
-
return (typeof __karma__ !== 'undefined' ||
|
|
35
|
-
typeof jasmine !== 'undefined' ||
|
|
36
|
-
typeof jest !== 'undefined' ||
|
|
37
|
-
typeof Mocha !== 'undefined');
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
var NgxsBootstrapper = /** @class */ (function () {
|
|
41
|
-
function NgxsBootstrapper() {
|
|
42
|
-
/**
|
|
43
|
-
* Use `ReplaySubject`, thus we can get cached value even if the stream is completed
|
|
44
|
-
*/
|
|
45
|
-
this.bootstrap$ = new rxjs.ReplaySubject(1);
|
|
46
|
-
}
|
|
47
|
-
Object.defineProperty(NgxsBootstrapper.prototype, "appBootstrapped$", {
|
|
48
|
-
get: function () {
|
|
49
|
-
return this.bootstrap$.asObservable();
|
|
50
|
-
},
|
|
51
|
-
enumerable: false,
|
|
52
|
-
configurable: true
|
|
53
|
-
});
|
|
54
|
-
/**
|
|
55
|
-
* This event will be emitted after attaching `ComponentRef` of the root component
|
|
56
|
-
* to the tree of views, that's a signal that application has been fully rendered
|
|
57
|
-
*/
|
|
58
|
-
NgxsBootstrapper.prototype.bootstrap = function () {
|
|
59
|
-
this.bootstrap$.next(true);
|
|
60
|
-
this.bootstrap$.complete();
|
|
61
|
-
};
|
|
62
|
-
return NgxsBootstrapper;
|
|
63
|
-
}());
|
|
64
|
-
/** @nocollapse */ NgxsBootstrapper.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NgxsBootstrapper, deps: [], target: i0__namespace.ɵɵFactoryTarget.Injectable });
|
|
65
|
-
/** @nocollapse */ NgxsBootstrapper.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NgxsBootstrapper, providedIn: 'root' });
|
|
66
|
-
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0__namespace, type: NgxsBootstrapper, decorators: [{
|
|
67
|
-
type: i0.Injectable,
|
|
68
|
-
args: [{ providedIn: 'root' }]
|
|
69
|
-
}] });
|
|
70
|
-
|
|
71
|
-
function defaultEqualityCheck(a, b) {
|
|
72
|
-
return a === b;
|
|
73
|
-
}
|
|
74
|
-
function areArgumentsShallowlyEqual(equalityCheck, prev, next) {
|
|
75
|
-
if (prev === null || next === null || prev.length !== next.length) {
|
|
76
|
-
return false;
|
|
77
|
-
}
|
|
78
|
-
// Do this in a for loop (and not a `forEach` or an `every`) so we can determine equality as fast as possible.
|
|
79
|
-
var length = prev.length;
|
|
80
|
-
for (var i = 0; i < length; i++) {
|
|
81
|
-
if (!equalityCheck(prev[i], next[i])) {
|
|
82
|
-
return false;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
return true;
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Memoize a function on its last inputs only.
|
|
89
|
-
* Originally from: https://github.com/reduxjs/reselect/blob/master/src/index.js
|
|
90
|
-
*
|
|
91
|
-
* @ignore
|
|
92
|
-
*/
|
|
93
|
-
function memoize(func, equalityCheck) {
|
|
94
|
-
if (equalityCheck === void 0) { equalityCheck = defaultEqualityCheck; }
|
|
95
|
-
var lastArgs = null;
|
|
96
|
-
var lastResult = null;
|
|
97
|
-
// we reference arguments instead of spreading them for performance reasons
|
|
98
|
-
function memoized() {
|
|
99
|
-
// eslint-disable-next-line prefer-rest-params
|
|
100
|
-
if (!areArgumentsShallowlyEqual(equalityCheck, lastArgs, arguments)) {
|
|
101
|
-
// apply arguments instead of spreading for performance.
|
|
102
|
-
// eslint-disable-next-line prefer-rest-params, prefer-spread
|
|
103
|
-
lastResult = func.apply(null, arguments);
|
|
104
|
-
}
|
|
105
|
-
// eslint-disable-next-line prefer-rest-params
|
|
106
|
-
lastArgs = arguments;
|
|
107
|
-
return lastResult;
|
|
108
|
-
}
|
|
109
|
-
memoized.reset = function () {
|
|
110
|
-
// The hidden (for now) ability to reset the memoization
|
|
111
|
-
lastArgs = null;
|
|
112
|
-
lastResult = null;
|
|
113
|
-
};
|
|
114
|
-
return memoized;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
var InitialState = /** @class */ (function () {
|
|
118
|
-
function InitialState() {
|
|
119
|
-
}
|
|
120
|
-
InitialState.set = function (state) {
|
|
121
|
-
this._value = state;
|
|
122
|
-
};
|
|
123
|
-
InitialState.pop = function () {
|
|
124
|
-
var state = this._value;
|
|
125
|
-
this._value = {};
|
|
126
|
-
return state;
|
|
127
|
-
};
|
|
128
|
-
return InitialState;
|
|
129
|
-
}());
|
|
130
|
-
InitialState._value = {};
|
|
131
|
-
var INITIAL_STATE_TOKEN = new i0.InjectionToken('INITIAL_STATE_TOKEN', {
|
|
132
|
-
providedIn: 'root',
|
|
133
|
-
factory: function () { return InitialState.pop(); }
|
|
134
|
-
});
|
|
135
|
-
|
|
136
|
-
// These tokens are internal and can change at any point.
|
|
137
|
-
var ɵNGXS_STATE_FACTORY = new i0.InjectionToken('ɵNGXS_STATE_FACTORY');
|
|
138
|
-
var ɵNGXS_STATE_CONTEXT_FACTORY = new i0.InjectionToken('ɵNGXS_STATE_CONTEXT_FACTORY');
|
|
139
|
-
|
|
140
|
-
/**
|
|
141
|
-
* Generated bundle index. Do not edit.
|
|
142
|
-
*/
|
|
143
|
-
|
|
144
|
-
exports.INITIAL_STATE_TOKEN = INITIAL_STATE_TOKEN;
|
|
145
|
-
exports.InitialState = InitialState;
|
|
146
|
-
exports.NgxsBootstrapper = NgxsBootstrapper;
|
|
147
|
-
exports.isAngularInTestMode = isAngularInTestMode;
|
|
148
|
-
exports.memoize = memoize;
|
|
149
|
-
exports["ɵNGXS_STATE_CONTEXT_FACTORY"] = ɵNGXS_STATE_CONTEXT_FACTORY;
|
|
150
|
-
exports["ɵNGXS_STATE_FACTORY"] = ɵNGXS_STATE_FACTORY;
|
|
151
|
-
|
|
152
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
153
|
-
|
|
154
|
-
}));
|
|
155
|
-
//# sourceMappingURL=ngxs-store-internals.umd.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ngxs-store-internals.umd.js","sources":["../../../packages/store/internals/src/angular.ts","../../../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":["declare const __karma__: unknown;\ndeclare const jasmine: unknown;\ndeclare const jest: unknown;\ndeclare const Mocha: unknown;\n\nexport function isAngularInTestMode(): boolean {\n // This is safe to check for these properties in the following way since `typeof` does not\n // throw an exception if the value does not exist in the scope.\n // We should not try to read these values from the global scope (e.g. `ɵglobal` from the `@angular/core`).\n // This is related to how these frameworks compile and execute modules. E.g. Jest wraps the module into\n // its internal code where `jest` variable exists in the scope. It cannot be read from the global scope, e.g.\n // this will return undefined `global.jest`, but `jest` will not equal undefined.\n return (\n typeof __karma__ !== 'undefined' ||\n typeof jasmine !== 'undefined' ||\n typeof jest !== 'undefined' ||\n typeof Mocha !== 'undefined'\n );\n}\n","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":["ReplaySubject","i0","Injectable","InjectionToken"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;aAKgB,mBAAmB,GAAA;;;;;;;IAOjC,IAAA,QACE,OAAO,SAAS,KAAK,WAAW;YAChC,OAAO,OAAO,KAAK,WAAW;YAC9B,OAAO,IAAI,KAAK,WAAW;IAC3B,QAAA,OAAO,KAAK,KAAK,WAAW,EAC5B;IACJ;;ACdA,QAAA,gBAAA,kBAAA,YAAA;IADA,IAAA,SAAA,gBAAA,GAAA;IAEE;;IAEG;YACK,IAAA,CAAA,UAAU,GAAG,IAAIA,kBAAa,CAAU,CAAC,CAAC,CAAC;SAcpD;IAZC,IAAA,MAAA,CAAA,cAAA,CAAI,gBAAgB,CAAA,SAAA,EAAA,kBAAA,EAAA;IAApB,QAAA,GAAA,EAAA,YAAA;IACE,YAAA,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;aACvC;;;IAAA,KAAA,CAAA,CAAA;IAED;;;IAGG;IACH,IAAA,gBAAA,CAAA,SAAA,CAAA,SAAS,GAAT,YAAA;IACE,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;SAC5B,CAAA;;;2JAjBU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAAC,aAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;IAAhB,mBAAA,gBAAA,CAAA,KAAA,GAAAA,aAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAAA,aAAA,EAAA,IAAA,EAAA,gBAAgB,cADH,MAAM,EAAA,CAAA,CAAA;sHACnB,gBAAgB,EAAA,UAAA,EAAA,CAAA;sBAD5BC,aAAU;uBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;ICHlC,SAAS,oBAAoB,CAAC,CAAM,EAAE,CAAM,EAAA;QAC1C,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAED,SAAS,0BAA0B,CACjC,aAA0C,EAC1C,IAAuB,EACvB,IAAuB,EAAA;IAEvB,IAAA,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;IACjE,QAAA,OAAO,KAAK,CAAC;IACd,KAAA;;IAGD,IAAA,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;IAC/B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;IACpC,YAAA,OAAO,KAAK,CAAC;IACd,SAAA;IACF,KAAA;IAED,IAAA,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;IAKG;IACa,SAAA,OAAO,CACrB,IAAO,EACP,aAAoC,EAAA;IAApC,IAAA,IAAA,aAAA,KAAA,KAAA,CAAA,EAAA,EAAA,aAAoC,GAAA,oBAAA,CAAA,EAAA;QAEpC,IAAI,QAAQ,GAAsB,IAAI,CAAC;QACvC,IAAI,UAAU,GAAQ,IAAI,CAAC;;IAE3B,IAAA,SAAS,QAAQ,GAAA;;YAEf,IAAI,CAAC,0BAA0B,CAAC,aAAa,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE;;;gBAGnE,UAAU,GAAc,IAAK,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACtD,SAAA;;YAED,QAAQ,GAAG,SAAS,CAAC;IACrB,QAAA,OAAO,UAAU,CAAC;SACnB;QACK,QAAS,CAAC,KAAK,GAAG,YAAA;;YAEtB,QAAQ,GAAG,IAAI,CAAC;YAChB,UAAU,GAAG,IAAI,CAAC;IACpB,KAAC,CAAC;IACF,IAAA,OAAO,QAAa,CAAC;IACvB;;ACnDA,QAAA,YAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,YAAA,GAAA;;QAGS,YAAG,CAAA,GAAA,GAAV,UAAW,KAAkB,EAAA;IAC3B,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;SACrB,CAAA;IAEM,IAAA,YAAA,CAAA,GAAG,GAAV,YAAA;IACE,QAAA,IAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;IAC1B,QAAA,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACjB,QAAA,OAAO,KAAK,CAAC;SACd,CAAA;;;IAVc,YAAM,CAAA,MAAA,GAAgB,EAAE,CAAC;QAa7B,mBAAmB,GAAG,IAAIC,iBAAc,CAAM,qBAAqB,EAAE;IAChF,IAAA,UAAU,EAAE,MAAM;QAClB,OAAO,EAAE,cAAM,OAAA,YAAY,CAAC,GAAG,EAAE,GAAA;IAClC,CAAA;;IClBD;QAEa,mBAAmB,GAAG,IAAIA,iBAAc,CAAM,qBAAqB,EAAE;QAErE,2BAA2B,GAAG,IAAIA,iBAAc,CAC3D,6BAA6B;;ICP/B;;IAEG;;;;;;;;;;;;;;;;"}
|
|
@@ -1,224 +0,0 @@
|
|
|
1
|
-
(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
|
3
|
-
typeof define === 'function' && define.amd ? define('@ngxs/store/operators', ['exports'], factory) :
|
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.ngxs = global.ngxs || {}, global.ngxs.store = global.ngxs.store || {}, global.ngxs.store.operators = {})));
|
|
5
|
-
})(this, (function (exports) { 'use strict';
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* @param items - Specific items to append to the end of an array
|
|
9
|
-
*/
|
|
10
|
-
function append(items) {
|
|
11
|
-
return function appendOperator(existing) {
|
|
12
|
-
// If `items` is `undefined` or `null` or `[]` but `existing` is provided
|
|
13
|
-
// just return `existing`
|
|
14
|
-
var itemsNotProvidedButExistingIs = (!items || !items.length) && existing;
|
|
15
|
-
if (itemsNotProvidedButExistingIs) {
|
|
16
|
-
return existing;
|
|
17
|
-
}
|
|
18
|
-
if (Array.isArray(existing)) {
|
|
19
|
-
return existing.concat(items);
|
|
20
|
-
}
|
|
21
|
-
// For example if some property is added dynamically
|
|
22
|
-
// and didn't exist before thus it's not `ArrayLike`
|
|
23
|
-
return items;
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
function compose() {
|
|
28
|
-
var operators = [];
|
|
29
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
30
|
-
operators[_i] = arguments[_i];
|
|
31
|
-
}
|
|
32
|
-
return function composeOperator(existing) {
|
|
33
|
-
return operators.reduce(function (accumulator, operator) { return operator(accumulator); }, existing);
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
function isStateOperator(value) {
|
|
38
|
-
return typeof value === 'function';
|
|
39
|
-
}
|
|
40
|
-
function isUndefined(value) {
|
|
41
|
-
return typeof value === 'undefined';
|
|
42
|
-
}
|
|
43
|
-
function isPredicate(value) {
|
|
44
|
-
return typeof value === 'function';
|
|
45
|
-
}
|
|
46
|
-
function isNumber(value) {
|
|
47
|
-
return typeof value === 'number';
|
|
48
|
-
}
|
|
49
|
-
function invalidIndex(index) {
|
|
50
|
-
return Number.isNaN(index) || index === -1;
|
|
51
|
-
}
|
|
52
|
-
function isNil(value) {
|
|
53
|
-
return value === null || isUndefined(value);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
function retrieveValue(operatorOrValue, existing) {
|
|
57
|
-
// If state operator is a function
|
|
58
|
-
// then call it with an original value
|
|
59
|
-
if (isStateOperator(operatorOrValue)) {
|
|
60
|
-
var value = operatorOrValue(existing);
|
|
61
|
-
return value;
|
|
62
|
-
}
|
|
63
|
-
// If operator or value was not provided
|
|
64
|
-
// e.g. `elseOperatorOrValue` is `undefined`
|
|
65
|
-
// then we just return an original value
|
|
66
|
-
if (isUndefined(operatorOrValue)) {
|
|
67
|
-
return existing;
|
|
68
|
-
}
|
|
69
|
-
return operatorOrValue;
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* @param condition - Condition can be a plain boolean value or a function,
|
|
73
|
-
* that returns boolean, also this function can take a value as an argument
|
|
74
|
-
* to which this state operator applies
|
|
75
|
-
* @param trueOperatorOrValue - Any value or a state operator
|
|
76
|
-
* @param elseOperatorOrValue - Any value or a state operator
|
|
77
|
-
*/
|
|
78
|
-
function iif(condition, trueOperatorOrValue, elseOperatorOrValue) {
|
|
79
|
-
return function iifOperator(existing) {
|
|
80
|
-
// Convert the value to a boolean
|
|
81
|
-
var result = !!condition;
|
|
82
|
-
// but if it is a function then run it to get the result
|
|
83
|
-
if (isPredicate(condition)) {
|
|
84
|
-
result = condition(existing);
|
|
85
|
-
}
|
|
86
|
-
if (result) {
|
|
87
|
-
return retrieveValue(trueOperatorOrValue, existing);
|
|
88
|
-
}
|
|
89
|
-
return retrieveValue(elseOperatorOrValue, existing);
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
/**
|
|
94
|
-
* @param value - Value to insert
|
|
95
|
-
* @param [beforePosition] - Specified index to insert value before, optional
|
|
96
|
-
*/
|
|
97
|
-
function insertItem(value, beforePosition) {
|
|
98
|
-
return function insertItemOperator(existing) {
|
|
99
|
-
// Have to check explicitly for `null` and `undefined`
|
|
100
|
-
// because `value` can be `0`, thus `!value` will return `true`
|
|
101
|
-
if (isNil(value) && existing) {
|
|
102
|
-
return existing;
|
|
103
|
-
}
|
|
104
|
-
// Property may be dynamic and might not existed before
|
|
105
|
-
if (!Array.isArray(existing)) {
|
|
106
|
-
return [value];
|
|
107
|
-
}
|
|
108
|
-
var clone = existing.slice();
|
|
109
|
-
var index = 0;
|
|
110
|
-
// No need to call `isNumber`
|
|
111
|
-
// as we are checking `> 0` not `>= 0`
|
|
112
|
-
// everything except number will return false here
|
|
113
|
-
if (beforePosition > 0) {
|
|
114
|
-
index = beforePosition;
|
|
115
|
-
}
|
|
116
|
-
clone.splice(index, 0, value);
|
|
117
|
-
return clone;
|
|
118
|
-
};
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
function patch(patchObject) {
|
|
122
|
-
return function patchStateOperator(existing) {
|
|
123
|
-
var clone = null;
|
|
124
|
-
for (var k in patchObject) {
|
|
125
|
-
var newValue = patchObject[k];
|
|
126
|
-
var existingPropValue = existing[k];
|
|
127
|
-
var newPropValue = isStateOperator(newValue)
|
|
128
|
-
? newValue(existingPropValue)
|
|
129
|
-
: newValue;
|
|
130
|
-
if (newPropValue !== existingPropValue) {
|
|
131
|
-
if (!clone) {
|
|
132
|
-
clone = Object.assign({}, existing);
|
|
133
|
-
}
|
|
134
|
-
clone[k] = newPropValue;
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
return clone || existing;
|
|
138
|
-
};
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
/**
|
|
142
|
-
* @param selector - Index of item in the array or a predicate function
|
|
143
|
-
* that can be provided in `Array.prototype.findIndex`
|
|
144
|
-
* @param operatorOrValue - New value under the `selector` index or a
|
|
145
|
-
* function that can be applied to an existing value
|
|
146
|
-
*/
|
|
147
|
-
function updateItem(selector, operatorOrValue) {
|
|
148
|
-
return function updateItemOperator(existing) {
|
|
149
|
-
var index = -1;
|
|
150
|
-
if (isPredicate(selector)) {
|
|
151
|
-
index = existing.findIndex(selector);
|
|
152
|
-
}
|
|
153
|
-
else if (isNumber(selector)) {
|
|
154
|
-
index = selector;
|
|
155
|
-
}
|
|
156
|
-
if (invalidIndex(index)) {
|
|
157
|
-
return existing;
|
|
158
|
-
}
|
|
159
|
-
var value = null;
|
|
160
|
-
// Need to check if the new item value will change the existing item value
|
|
161
|
-
// then, only if it will change it then clone the array and set the item
|
|
162
|
-
var theOperatorOrValue = operatorOrValue;
|
|
163
|
-
if (isStateOperator(theOperatorOrValue)) {
|
|
164
|
-
value = theOperatorOrValue(existing[index]);
|
|
165
|
-
}
|
|
166
|
-
else {
|
|
167
|
-
value = theOperatorOrValue;
|
|
168
|
-
}
|
|
169
|
-
// If the value hasn't been mutated
|
|
170
|
-
// then we just return `existing` array
|
|
171
|
-
if (value === existing[index]) {
|
|
172
|
-
return existing;
|
|
173
|
-
}
|
|
174
|
-
var clone = existing.slice();
|
|
175
|
-
clone[index] = value;
|
|
176
|
-
return clone;
|
|
177
|
-
};
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
/**
|
|
181
|
-
* @param selector - index or predicate to remove an item from an array by
|
|
182
|
-
*/
|
|
183
|
-
function removeItem(selector) {
|
|
184
|
-
return function removeItemOperator(existing) {
|
|
185
|
-
var index = -1;
|
|
186
|
-
if (isPredicate(selector)) {
|
|
187
|
-
index = existing.findIndex(selector);
|
|
188
|
-
}
|
|
189
|
-
else if (isNumber(selector)) {
|
|
190
|
-
index = selector;
|
|
191
|
-
}
|
|
192
|
-
if (invalidIndex(index)) {
|
|
193
|
-
return existing;
|
|
194
|
-
}
|
|
195
|
-
var clone = existing.slice();
|
|
196
|
-
clone.splice(index, 1);
|
|
197
|
-
return clone;
|
|
198
|
-
};
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
/**
|
|
202
|
-
* @module
|
|
203
|
-
* @description
|
|
204
|
-
* Entry point for all public APIs of this package.
|
|
205
|
-
*/
|
|
206
|
-
|
|
207
|
-
/**
|
|
208
|
-
* Generated bundle index. Do not edit.
|
|
209
|
-
*/
|
|
210
|
-
|
|
211
|
-
exports.append = append;
|
|
212
|
-
exports.compose = compose;
|
|
213
|
-
exports.iif = iif;
|
|
214
|
-
exports.insertItem = insertItem;
|
|
215
|
-
exports.isPredicate = isPredicate;
|
|
216
|
-
exports.isStateOperator = isStateOperator;
|
|
217
|
-
exports.patch = patch;
|
|
218
|
-
exports.removeItem = removeItem;
|
|
219
|
-
exports.updateItem = updateItem;
|
|
220
|
-
|
|
221
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
222
|
-
|
|
223
|
-
}));
|
|
224
|
-
//# sourceMappingURL=ngxs-store-operators.umd.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ngxs-store-operators.umd.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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"}
|