@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,5 +0,0 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
2
|
-
// These tokens are internal and can change at any point.
|
|
3
|
-
export const ɵNGXS_STATE_FACTORY = new InjectionToken('ɵNGXS_STATE_FACTORY');
|
|
4
|
-
export const ɵNGXS_STATE_CONTEXT_FACTORY = new InjectionToken('ɵNGXS_STATE_CONTEXT_FACTORY');
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwtdG9rZW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RvcmUvaW50ZXJuYWxzL3NyYy9pbnRlcm5hbC10b2tlbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyx5REFBeUQ7QUFFekQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxjQUFjLENBQU0scUJBQXFCLENBQUMsQ0FBQztBQUVsRixNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxJQUFJLGNBQWMsQ0FDM0QsNkJBQTZCLENBQzlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vLyBUaGVzZSB0b2tlbnMgYXJlIGludGVybmFsIGFuZCBjYW4gY2hhbmdlIGF0IGFueSBwb2ludC5cblxuZXhwb3J0IGNvbnN0IMm1TkdYU19TVEFURV9GQUNUT1JZID0gbmV3IEluamVjdGlvblRva2VuPGFueT4oJ8m1TkdYU19TVEFURV9GQUNUT1JZJyk7XG5cbmV4cG9ydCBjb25zdCDJtU5HWFNfU1RBVEVfQ09OVEVYVF9GQUNUT1JZID0gbmV3IEluamVjdGlvblRva2VuPGFueT4oXG4gICfJtU5HWFNfU1RBVEVfQ09OVEVYVF9GQUNUT1JZJ1xuKTtcbiJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL2ludGVybmFscy9zcmMvc3ltYm9scy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBQbGFpbk9iamVjdCB7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQbGFpbk9iamVjdE9mPFQ+IHtcbiAgW2tleTogc3RyaW5nXTogVDtcbn1cblxuZXhwb3J0IHR5cGUgU3RhdGVDbGFzczxUID0gYW55PiA9IG5ldyAoLi4uYXJnczogYW55W10pID0+IFQ7XG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL2ludGVybmFscy9zcmMvc3ltYm9scy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBQbGFpbk9iamVjdCB7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQbGFpbk9iamVjdE9mPFQ+IHtcbiAgW2tleTogc3RyaW5nXTogVDtcbn1cblxuZXhwb3J0IHR5cGUgU3RhdGVDbGFzczxUID0gYW55PiA9IG5ldyAoLi4uYXJnczogYW55W10pID0+IFQ7XG4iXX0=
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { TestBed } from '@angular/core/testing';
|
|
3
|
-
import { DOCUMENT } from '@angular/common';
|
|
4
|
-
import { ɵgetDOM as getDOM } from '@angular/platform-browser';
|
|
5
|
-
import { VERSION, destroyPlatform, createPlatform } from '@angular/core';
|
|
6
|
-
function createRootElement() {
|
|
7
|
-
const document = TestBed.inject(DOCUMENT);
|
|
8
|
-
const root = getDOM().createElement('app-root', document);
|
|
9
|
-
document.body.appendChild(root);
|
|
10
|
-
}
|
|
11
|
-
function removeRootElement() {
|
|
12
|
-
const root = document.getElementsByTagName('app-root').item(0);
|
|
13
|
-
try {
|
|
14
|
-
document.body.removeChild(root);
|
|
15
|
-
}
|
|
16
|
-
catch (_a) { }
|
|
17
|
-
}
|
|
18
|
-
function destroyPlatformBeforeBootstrappingTheNewOne() {
|
|
19
|
-
destroyPlatform();
|
|
20
|
-
createRootElement();
|
|
21
|
-
}
|
|
22
|
-
// As we create our custom platform via `bootstrapModule`
|
|
23
|
-
// we have to destroy it after assetions and revert
|
|
24
|
-
// the previous one
|
|
25
|
-
function resetPlatformAfterBootstrapping() {
|
|
26
|
-
removeRootElement();
|
|
27
|
-
destroyPlatform();
|
|
28
|
-
const version = +VERSION.major;
|
|
29
|
-
// https://github.com/angular/angular/commit/e250db4f261741b04ee4cbad4dec41a8908a12aa
|
|
30
|
-
if (version < 14) {
|
|
31
|
-
createPlatform(TestBed);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
export function freshPlatform(fn) {
|
|
35
|
-
let resolve = null;
|
|
36
|
-
let reject = null;
|
|
37
|
-
let whenDoneIsCalledPromise = null;
|
|
38
|
-
const hasDoneArgument = fn.length === 1;
|
|
39
|
-
if (hasDoneArgument) {
|
|
40
|
-
whenDoneIsCalledPromise = new Promise((_resolve, _reject) => {
|
|
41
|
-
resolve = _resolve;
|
|
42
|
-
reject = _reject;
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
return function testWithAFreshPlatform() {
|
|
46
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
47
|
-
try {
|
|
48
|
-
destroyPlatformBeforeBootstrappingTheNewOne();
|
|
49
|
-
if (hasDoneArgument) {
|
|
50
|
-
yield fn((error) => {
|
|
51
|
-
if (error) {
|
|
52
|
-
reject(error);
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
resolve();
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
yield whenDoneIsCalledPromise;
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
yield fn();
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
finally {
|
|
65
|
-
resetPlatformAfterBootstrapping();
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlc2gtcGxhdGZvcm0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9pbnRlcm5hbHMvdGVzdGluZy9zcmMvZnJlc2gtcGxhdGZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sSUFBSSxNQUFNLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekUsU0FBUyxpQkFBaUI7SUFDeEIsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQyxNQUFNLElBQUksR0FBRyxNQUFNLEVBQUUsQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQzFELFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2xDLENBQUM7QUFFRCxTQUFTLGlCQUFpQjtJQUN4QixNQUFNLElBQUksR0FBWSxRQUFRLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBRSxDQUFDO0lBQ3pFLElBQUk7UUFDRixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUNqQztJQUFDLFdBQU0sR0FBRTtBQUNaLENBQUM7QUFFRCxTQUFTLDJDQUEyQztJQUNsRCxlQUFlLEVBQUUsQ0FBQztJQUNsQixpQkFBaUIsRUFBRSxDQUFDO0FBQ3RCLENBQUM7QUFFRCx5REFBeUQ7QUFDekQsbURBQW1EO0FBQ25ELG1CQUFtQjtBQUNuQixTQUFTLCtCQUErQjtJQUN0QyxpQkFBaUIsRUFBRSxDQUFDO0lBQ3BCLGVBQWUsRUFBRSxDQUFDO0lBQ2xCLE1BQU0sT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUMvQixxRkFBcUY7SUFDckYsSUFBSSxPQUFPLEdBQUcsRUFBRSxFQUFFO1FBQ2hCLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUN6QjtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLEVBQTBDO0lBQ3RFLElBQUksT0FBTyxHQUF3QixJQUFJLENBQUM7SUFDeEMsSUFBSSxNQUFNLEdBQW9DLElBQUksQ0FBQztJQUNuRCxJQUFJLHVCQUF1QixHQUF5QixJQUFJLENBQUM7SUFFekQsTUFBTSxlQUFlLEdBQUcsRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFFeEMsSUFBSSxlQUFlLEVBQUU7UUFDbkIsdUJBQXVCLEdBQUcsSUFBSSxPQUFPLENBQU8sQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDaEUsT0FBTyxHQUFHLFFBQVEsQ0FBQztZQUNuQixNQUFNLEdBQUcsT0FBTyxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO0tBQ0o7SUFFRCxPQUFPLFNBQWUsc0JBQXNCOztZQUMxQyxJQUFJO2dCQUNGLDJDQUEyQyxFQUFFLENBQUM7Z0JBRTlDLElBQUksZUFBZSxFQUFFO29CQUNuQixNQUFNLEVBQUUsQ0FBQyxDQUFDLEtBQWEsRUFBRSxFQUFFO3dCQUN6QixJQUFJLEtBQUssRUFBRTs0QkFDVCxNQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7eUJBQ2hCOzZCQUFNOzRCQUNMLE9BQVEsRUFBRSxDQUFDO3lCQUNaO29CQUNILENBQUMsQ0FBQyxDQUFDO29CQUNILE1BQU0sdUJBQXdCLENBQUM7aUJBQ2hDO3FCQUFNO29CQUNMLE1BQU0sRUFBRSxFQUFFLENBQUM7aUJBQ1o7YUFDRjtvQkFBUztnQkFDUiwrQkFBK0IsRUFBRSxDQUFDO2FBQ25DO1FBQ0gsQ0FBQztLQUFBLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVzdEJlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvdGVzdGluZyc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyDJtWdldERPTSBhcyBnZXRET00gfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IFZFUlNJT04sIGRlc3Ryb3lQbGF0Zm9ybSwgY3JlYXRlUGxhdGZvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZnVuY3Rpb24gY3JlYXRlUm9vdEVsZW1lbnQoKSB7XG4gIGNvbnN0IGRvY3VtZW50ID0gVGVzdEJlZC5pbmplY3QoRE9DVU1FTlQpO1xuICBjb25zdCByb290ID0gZ2V0RE9NKCkuY3JlYXRlRWxlbWVudCgnYXBwLXJvb3QnLCBkb2N1bWVudCk7XG4gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocm9vdCk7XG59XG5cbmZ1bmN0aW9uIHJlbW92ZVJvb3RFbGVtZW50KCkge1xuICBjb25zdCByb290OiBFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2FwcC1yb290JykuaXRlbSgwKSE7XG4gIHRyeSB7XG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChyb290KTtcbiAgfSBjYXRjaCB7fVxufVxuXG5mdW5jdGlvbiBkZXN0cm95UGxhdGZvcm1CZWZvcmVCb290c3RyYXBwaW5nVGhlTmV3T25lKCkge1xuICBkZXN0cm95UGxhdGZvcm0oKTtcbiAgY3JlYXRlUm9vdEVsZW1lbnQoKTtcbn1cblxuLy8gQXMgd2UgY3JlYXRlIG91ciBjdXN0b20gcGxhdGZvcm0gdmlhIGBib290c3RyYXBNb2R1bGVgXG4vLyB3ZSBoYXZlIHRvIGRlc3Ryb3kgaXQgYWZ0ZXIgYXNzZXRpb25zIGFuZCByZXZlcnRcbi8vIHRoZSBwcmV2aW91cyBvbmVcbmZ1bmN0aW9uIHJlc2V0UGxhdGZvcm1BZnRlckJvb3RzdHJhcHBpbmcoKSB7XG4gIHJlbW92ZVJvb3RFbGVtZW50KCk7XG4gIGRlc3Ryb3lQbGF0Zm9ybSgpO1xuICBjb25zdCB2ZXJzaW9uID0gK1ZFUlNJT04ubWFqb3I7XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvY29tbWl0L2UyNTBkYjRmMjYxNzQxYjA0ZWU0Y2JhZDRkZWM0MWE4OTA4YTEyYWFcbiAgaWYgKHZlcnNpb24gPCAxNCkge1xuICAgIGNyZWF0ZVBsYXRmb3JtKFRlc3RCZWQpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmcmVzaFBsYXRmb3JtKGZuOiAoZG9uZT86IFZvaWRGdW5jdGlvbikgPT4gUHJvbWlzZTx2b2lkPikge1xuICBsZXQgcmVzb2x2ZTogVm9pZEZ1bmN0aW9uIHwgbnVsbCA9IG51bGw7XG4gIGxldCByZWplY3Q6ICgoZXJyb3I6IEVycm9yKSA9PiB2b2lkKSB8IG51bGwgPSBudWxsO1xuICBsZXQgd2hlbkRvbmVJc0NhbGxlZFByb21pc2U6IFByb21pc2U8dm9pZD4gfCBudWxsID0gbnVsbDtcblxuICBjb25zdCBoYXNEb25lQXJndW1lbnQgPSBmbi5sZW5ndGggPT09IDE7XG5cbiAgaWYgKGhhc0RvbmVBcmd1bWVudCkge1xuICAgIHdoZW5Eb25lSXNDYWxsZWRQcm9taXNlID0gbmV3IFByb21pc2U8dm9pZD4oKF9yZXNvbHZlLCBfcmVqZWN0KSA9PiB7XG4gICAgICByZXNvbHZlID0gX3Jlc29sdmU7XG4gICAgICByZWplY3QgPSBfcmVqZWN0O1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGFzeW5jIGZ1bmN0aW9uIHRlc3RXaXRoQUZyZXNoUGxhdGZvcm0oKSB7XG4gICAgdHJ5IHtcbiAgICAgIGRlc3Ryb3lQbGF0Zm9ybUJlZm9yZUJvb3RzdHJhcHBpbmdUaGVOZXdPbmUoKTtcblxuICAgICAgaWYgKGhhc0RvbmVBcmd1bWVudCkge1xuICAgICAgICBhd2FpdCBmbigoZXJyb3I/OiBFcnJvcikgPT4ge1xuICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgcmVqZWN0IShlcnJvcik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc29sdmUhKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgYXdhaXQgd2hlbkRvbmVJc0NhbGxlZFByb21pc2UhO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXdhaXQgZm4oKTtcbiAgICAgIH1cbiAgICB9IGZpbmFsbHkge1xuICAgICAgcmVzZXRQbGF0Zm9ybUFmdGVyQm9vdHN0cmFwcGluZygpO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { BrowserModule } from '@angular/platform-browser';
|
|
3
|
-
import { NgxsTestComponent } from './ngxs-test.component';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class NgxsTestModule {
|
|
6
|
-
static ngDoBootstrap(app) {
|
|
7
|
-
app.bootstrap(NgxsTestComponent);
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
/** @nocollapse */ NgxsTestModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxsTestModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
11
|
-
/** @nocollapse */ NgxsTestModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxsTestModule, declarations: [NgxsTestComponent], imports: [BrowserModule] });
|
|
12
|
-
/** @nocollapse */ NgxsTestModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxsTestModule, imports: [[BrowserModule]] });
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NgxsTestModule, decorators: [{
|
|
14
|
-
type: NgModule,
|
|
15
|
-
args: [{
|
|
16
|
-
imports: [BrowserModule],
|
|
17
|
-
declarations: [NgxsTestComponent],
|
|
18
|
-
entryComponents: [NgxsTestComponent]
|
|
19
|
-
}]
|
|
20
|
-
}] });
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4cy10ZXN0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL2ludGVybmFscy90ZXN0aW5nL3NyYy9oZWxwZXJzL25neHMtdGVzdC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFrQixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQU8xRCxNQUFNLE9BQU8sY0FBYztJQUNsQixNQUFNLENBQUMsYUFBYSxDQUFDLEdBQW1CO1FBQzdDLEdBQUcsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNuQyxDQUFDOzsrSEFIVSxjQUFjO2dJQUFkLGNBQWMsaUJBSFYsaUJBQWlCLGFBRHRCLGFBQWE7Z0lBSVosY0FBYyxZQUpoQixDQUFDLGFBQWEsQ0FBQzs0RkFJYixjQUFjO2tCQUwxQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQztvQkFDeEIsWUFBWSxFQUFFLENBQUMsaUJBQWlCLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSxDQUFDLGlCQUFpQixDQUFDO2lCQUNyQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcGxpY2F0aW9uUmVmLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQnJvd3Nlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG5pbXBvcnQgeyBOZ3hzVGVzdENvbXBvbmVudCB9IGZyb20gJy4vbmd4cy10ZXN0LmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtCcm93c2VyTW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBbTmd4c1Rlc3RDb21wb25lbnRdLFxuICBlbnRyeUNvbXBvbmVudHM6IFtOZ3hzVGVzdENvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgTmd4c1Rlc3RNb2R1bGUge1xuICBwdWJsaWMgc3RhdGljIG5nRG9Cb290c3RyYXAoYXBwOiBBcHBsaWNhdGlvblJlZik6IHZvaWQge1xuICAgIGFwcC5ib290c3RyYXAoTmd4c1Rlc3RDb21wb25lbnQpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RvcmUvaW50ZXJuYWxzL3Rlc3Rpbmcvc3JjL3N5bWJvbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmd4c01vZHVsZU9wdGlvbnMsIFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGVzdEJlZFN0YXRpYyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvdGVzdGluZyc7XG5pbXBvcnQgeyBTdGF0ZUNsYXNzIH0gZnJvbSAnQG5neHMvc3RvcmUvaW50ZXJuYWxzJztcblxuZXhwb3J0IGludGVyZmFjZSBOZ3hzT3B0aW9uc1Rlc3Rpbmcge1xuICBzdGF0ZXM/OiBTdGF0ZUNsYXNzW107XG4gIG5neHNPcHRpb25zPzogTmd4c01vZHVsZU9wdGlvbnM7XG4gIGltcG9ydHM/OiBNb2R1bGVXaXRoUHJvdmlkZXJzPGFueT5bXTtcbiAgYmVmb3JlPzogKCkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZ3hzVGVzdGluZyB7XG4gIHN0b3JlOiBTdG9yZTtcbiAgZ2V0VGVzdEJlZDogVGVzdEJlZFN0YXRpYztcbn1cbiJdfQ==
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { isStateOperator } from './utils';
|
|
2
|
-
export function patch(patchObject) {
|
|
3
|
-
return function patchStateOperator(existing) {
|
|
4
|
-
let clone = null;
|
|
5
|
-
for (const k in patchObject) {
|
|
6
|
-
const newValue = patchObject[k];
|
|
7
|
-
const existingPropValue = existing[k];
|
|
8
|
-
const newPropValue = isStateOperator(newValue)
|
|
9
|
-
? newValue(existingPropValue)
|
|
10
|
-
: newValue;
|
|
11
|
-
if (newPropValue !== existingPropValue) {
|
|
12
|
-
if (!clone) {
|
|
13
|
-
clone = Object.assign({}, existing);
|
|
14
|
-
}
|
|
15
|
-
clone[k] = newPropValue;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
return clone || existing;
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9vcGVyYXRvcnMvc3JjL3BhdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFNMUMsTUFBTSxVQUFVLEtBQUssQ0FDbkIsV0FBbUM7SUFFbkMsT0FBTyxTQUFTLGtCQUFrQixDQUFDLFFBQTBCO1FBQzNELElBQUksS0FBSyxHQUFHLElBQUksQ0FBQztRQUNqQixLQUFLLE1BQU0sQ0FBQyxJQUFJLFdBQVcsRUFBRTtZQUMzQixNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEMsTUFBTSxpQkFBaUIsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEMsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQztnQkFDNUMsQ0FBQyxDQUFDLFFBQVEsQ0FBTSxpQkFBaUIsQ0FBQztnQkFDbEMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztZQUNiLElBQUksWUFBWSxLQUFLLGlCQUFpQixFQUFFO2dCQUN0QyxJQUFJLENBQUMsS0FBSyxFQUFFO29CQUNWLEtBQUsscUJBQWMsUUFBUyxDQUFFLENBQUM7aUJBQ2hDO2dCQUNELEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxZQUFZLENBQUM7YUFDekI7U0FDRjtRQUNELE9BQU8sS0FBSyxJQUFJLFFBQVEsQ0FBQztJQUMzQixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXhpc3RpbmdTdGF0ZSwgTm9JbmZlciwgU3RhdGVPcGVyYXRvciB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgaXNTdGF0ZU9wZXJhdG9yIH0gZnJvbSAnLi91dGlscyc7XG5cbnR5cGUgTm90VW5kZWZpbmVkPFQ+ID0gVCBleHRlbmRzIHVuZGVmaW5lZCA/IG5ldmVyIDogVDtcblxuZXhwb3J0IHR5cGUgybVQYXRjaFNwZWM8VD4gPSB7IFtQIGluIGtleW9mIFRdPzogVFtQXSB8IFN0YXRlT3BlcmF0b3I8Tm90VW5kZWZpbmVkPFRbUF0+PiB9O1xuXG5leHBvcnQgZnVuY3Rpb24gcGF0Y2g8VCBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4+KFxuICBwYXRjaE9iamVjdDogTm9JbmZlcjzJtVBhdGNoU3BlYzxUPj5cbik6IFN0YXRlT3BlcmF0b3I8VD4ge1xuICByZXR1cm4gZnVuY3Rpb24gcGF0Y2hTdGF0ZU9wZXJhdG9yKGV4aXN0aW5nOiBFeGlzdGluZ1N0YXRlPFQ+KTogVCB7XG4gICAgbGV0IGNsb25lID0gbnVsbDtcbiAgICBmb3IgKGNvbnN0IGsgaW4gcGF0Y2hPYmplY3QpIHtcbiAgICAgIGNvbnN0IG5ld1ZhbHVlID0gcGF0Y2hPYmplY3Rba107XG4gICAgICBjb25zdCBleGlzdGluZ1Byb3BWYWx1ZSA9IGV4aXN0aW5nW2tdO1xuICAgICAgY29uc3QgbmV3UHJvcFZhbHVlID0gaXNTdGF0ZU9wZXJhdG9yKG5ld1ZhbHVlKVxuICAgICAgICA/IG5ld1ZhbHVlKDxhbnk+ZXhpc3RpbmdQcm9wVmFsdWUpXG4gICAgICAgIDogbmV3VmFsdWU7XG4gICAgICBpZiAobmV3UHJvcFZhbHVlICE9PSBleGlzdGluZ1Byb3BWYWx1ZSkge1xuICAgICAgICBpZiAoIWNsb25lKSB7XG4gICAgICAgICAgY2xvbmUgPSB7IC4uLig8YW55PmV4aXN0aW5nKSB9O1xuICAgICAgICB9XG4gICAgICAgIGNsb25lW2tdID0gbmV3UHJvcFZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY2xvbmUgfHwgZXhpc3Rpbmc7XG4gIH07XG59XG4iXX0=
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Init action
|
|
3
|
-
*/
|
|
4
|
-
export class InitState {
|
|
5
|
-
static get type() {
|
|
6
|
-
// NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138
|
|
7
|
-
return '@@INIT';
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Update action
|
|
12
|
-
*/
|
|
13
|
-
export class UpdateState {
|
|
14
|
-
constructor(addedStates) {
|
|
15
|
-
this.addedStates = addedStates;
|
|
16
|
-
}
|
|
17
|
-
static get type() {
|
|
18
|
-
// NOTE: Not necessary to declare the type in this way in your code. See https://github.com/ngxs/store/pull/644#issuecomment-436003138
|
|
19
|
-
return '@@UPDATE_STATE';
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL3NyYy9hY3Rpb25zL2FjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7O0dBRUc7QUFDSCxNQUFNLE9BQU8sU0FBUztJQUNwQixNQUFNLEtBQUssSUFBSTtRQUNiLHNJQUFzSTtRQUN0SSxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0NBQ0Y7QUFFRDs7R0FFRztBQUNILE1BQU0sT0FBTyxXQUFXO0lBTXRCLFlBQW1CLFdBQXlCO1FBQXpCLGdCQUFXLEdBQVgsV0FBVyxDQUFjO0lBQUcsQ0FBQztJQUxoRCxNQUFNLEtBQUssSUFBSTtRQUNiLHNJQUFzSTtRQUN0SSxPQUFPLGdCQUFnQixDQUFDO0lBQzFCLENBQUM7Q0FHRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWluT2JqZWN0IH0gZnJvbSAnQG5neHMvc3RvcmUvaW50ZXJuYWxzJztcblxuLyoqXG4gKiBJbml0IGFjdGlvblxuICovXG5leHBvcnQgY2xhc3MgSW5pdFN0YXRlIHtcbiAgc3RhdGljIGdldCB0eXBlKCkge1xuICAgIC8vIE5PVEU6IE5vdCBuZWNlc3NhcnkgdG8gZGVjbGFyZSB0aGUgdHlwZSBpbiB0aGlzIHdheSBpbiB5b3VyIGNvZGUuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vbmd4cy9zdG9yZS9wdWxsLzY0NCNpc3N1ZWNvbW1lbnQtNDM2MDAzMTM4XG4gICAgcmV0dXJuICdAQElOSVQnO1xuICB9XG59XG5cbi8qKlxuICogVXBkYXRlIGFjdGlvblxuICovXG5leHBvcnQgY2xhc3MgVXBkYXRlU3RhdGUge1xuICBzdGF0aWMgZ2V0IHR5cGUoKSB7XG4gICAgLy8gTk9URTogTm90IG5lY2Vzc2FyeSB0byBkZWNsYXJlIHRoZSB0eXBlIGluIHRoaXMgd2F5IGluIHlvdXIgY29kZS4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9uZ3hzL3N0b3JlL3B1bGwvNjQ0I2lzc3VlY29tbWVudC00MzYwMDMxMzhcbiAgICByZXR1cm4gJ0BAVVBEQVRFX1NUQVRFJztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBhZGRlZFN0YXRlcz86IFBsYWluT2JqZWN0KSB7fVxufVxuIl19
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
export function throwStateNameError(name) {
|
|
2
|
-
throw new Error(`${name} is not a valid state name. It needs to be a valid object property name.`);
|
|
3
|
-
}
|
|
4
|
-
export function throwStateNamePropertyError() {
|
|
5
|
-
throw new Error(`States must register a 'name' property.`);
|
|
6
|
-
}
|
|
7
|
-
export function throwStateUniqueError(current, newName, oldName) {
|
|
8
|
-
throw new Error(`State name '${current}' from ${newName} already exists in ${oldName}.`);
|
|
9
|
-
}
|
|
10
|
-
export function throwStateDecoratorError(name) {
|
|
11
|
-
throw new Error(`States must be decorated with @State() decorator, but "${name}" isn't.`);
|
|
12
|
-
}
|
|
13
|
-
export function throwActionDecoratorError() {
|
|
14
|
-
throw new Error('@Action() decorator cannot be used with static methods.');
|
|
15
|
-
}
|
|
16
|
-
export function throwSelectorDecoratorError() {
|
|
17
|
-
throw new Error('Selectors only work on methods.');
|
|
18
|
-
}
|
|
19
|
-
export function getZoneWarningMessage() {
|
|
20
|
-
return ('Your application was bootstrapped with nooped zone and your execution strategy requires an actual NgZone!\n' +
|
|
21
|
-
'Please set the value of the executionStrategy property to NoopNgxsExecutionStrategy.\n' +
|
|
22
|
-
'NgxsModule.forRoot(states, { executionStrategy: NoopNgxsExecutionStrategy })');
|
|
23
|
-
}
|
|
24
|
-
export function getUndecoratedStateInIvyWarningMessage(name) {
|
|
25
|
-
return `'${name}' class should be decorated with @Injectable() right after the @State() decorator`;
|
|
26
|
-
}
|
|
27
|
-
export function throwSelectFactoryNotConnectedError() {
|
|
28
|
-
throw new Error('You have forgotten to import the NGXS module!');
|
|
29
|
-
}
|
|
30
|
-
export function throwPatchingArrayError() {
|
|
31
|
-
throw new Error('Patching arrays is not supported.');
|
|
32
|
-
}
|
|
33
|
-
export function throwPatchingPrimitiveError() {
|
|
34
|
-
throw new Error('Patching primitives is not supported.');
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZXMuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RvcmUvc3JjL2NvbmZpZ3MvbWVzc2FnZXMuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxJQUFZO0lBQzlDLE1BQU0sSUFBSSxLQUFLLENBQ2IsR0FBRyxJQUFJLDBFQUEwRSxDQUNsRixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSwyQkFBMkI7SUFDekMsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDO0FBQzdELENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQ25DLE9BQWUsRUFDZixPQUFlLEVBQ2YsT0FBZTtJQUVmLE1BQU0sSUFBSSxLQUFLLENBQUMsZUFBZSxPQUFPLFVBQVUsT0FBTyxzQkFBc0IsT0FBTyxHQUFHLENBQUMsQ0FBQztBQUMzRixDQUFDO0FBRUQsTUFBTSxVQUFVLHdCQUF3QixDQUFDLElBQVk7SUFDbkQsTUFBTSxJQUFJLEtBQUssQ0FBQywwREFBMEQsSUFBSSxVQUFVLENBQUMsQ0FBQztBQUM1RixDQUFDO0FBRUQsTUFBTSxVQUFVLHlCQUF5QjtJQUN2QyxNQUFNLElBQUksS0FBSyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7QUFDN0UsQ0FBQztBQUVELE1BQU0sVUFBVSwyQkFBMkI7SUFDekMsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0FBQ3JELENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCO0lBQ25DLE9BQU8sQ0FDTCw2R0FBNkc7UUFDN0csd0ZBQXdGO1FBQ3hGLDhFQUE4RSxDQUMvRSxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxzQ0FBc0MsQ0FBQyxJQUFZO0lBQ2pFLE9BQU8sSUFBSSxJQUFJLG1GQUFtRixDQUFDO0FBQ3JHLENBQUM7QUFFRCxNQUFNLFVBQVUsbUNBQW1DO0lBQ2pELE1BQU0sSUFBSSxLQUFLLENBQUMsK0NBQStDLENBQUMsQ0FBQztBQUNuRSxDQUFDO0FBRUQsTUFBTSxVQUFVLHVCQUF1QjtJQUNyQyxNQUFNLElBQUksS0FBSyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7QUFDdkQsQ0FBQztBQUVELE1BQU0sVUFBVSwyQkFBMkI7SUFDekMsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO0FBQzNELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gdGhyb3dTdGF0ZU5hbWVFcnJvcihuYW1lOiBzdHJpbmcpOiBuZXZlciB7XG4gIHRocm93IG5ldyBFcnJvcihcbiAgICBgJHtuYW1lfSBpcyBub3QgYSB2YWxpZCBzdGF0ZSBuYW1lLiBJdCBuZWVkcyB0byBiZSBhIHZhbGlkIG9iamVjdCBwcm9wZXJ0eSBuYW1lLmBcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRocm93U3RhdGVOYW1lUHJvcGVydHlFcnJvcigpOiBuZXZlciB7XG4gIHRocm93IG5ldyBFcnJvcihgU3RhdGVzIG11c3QgcmVnaXN0ZXIgYSAnbmFtZScgcHJvcGVydHkuYCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd1N0YXRlVW5pcXVlRXJyb3IoXG4gIGN1cnJlbnQ6IHN0cmluZyxcbiAgbmV3TmFtZTogc3RyaW5nLFxuICBvbGROYW1lOiBzdHJpbmdcbik6IG5ldmVyIHtcbiAgdGhyb3cgbmV3IEVycm9yKGBTdGF0ZSBuYW1lICcke2N1cnJlbnR9JyBmcm9tICR7bmV3TmFtZX0gYWxyZWFkeSBleGlzdHMgaW4gJHtvbGROYW1lfS5gKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRocm93U3RhdGVEZWNvcmF0b3JFcnJvcihuYW1lOiBzdHJpbmcpOiBuZXZlciB7XG4gIHRocm93IG5ldyBFcnJvcihgU3RhdGVzIG11c3QgYmUgZGVjb3JhdGVkIHdpdGggQFN0YXRlKCkgZGVjb3JhdG9yLCBidXQgXCIke25hbWV9XCIgaXNuJ3QuYCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd0FjdGlvbkRlY29yYXRvckVycm9yKCk6IG5ldmVyIHtcbiAgdGhyb3cgbmV3IEVycm9yKCdAQWN0aW9uKCkgZGVjb3JhdG9yIGNhbm5vdCBiZSB1c2VkIHdpdGggc3RhdGljIG1ldGhvZHMuJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0aHJvd1NlbGVjdG9yRGVjb3JhdG9yRXJyb3IoKTogbmV2ZXIge1xuICB0aHJvdyBuZXcgRXJyb3IoJ1NlbGVjdG9ycyBvbmx5IHdvcmsgb24gbWV0aG9kcy4nKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFpvbmVXYXJuaW5nTWVzc2FnZSgpOiBzdHJpbmcge1xuICByZXR1cm4gKFxuICAgICdZb3VyIGFwcGxpY2F0aW9uIHdhcyBib290c3RyYXBwZWQgd2l0aCBub29wZWQgem9uZSBhbmQgeW91ciBleGVjdXRpb24gc3RyYXRlZ3kgcmVxdWlyZXMgYW4gYWN0dWFsIE5nWm9uZSFcXG4nICtcbiAgICAnUGxlYXNlIHNldCB0aGUgdmFsdWUgb2YgdGhlIGV4ZWN1dGlvblN0cmF0ZWd5IHByb3BlcnR5IHRvIE5vb3BOZ3hzRXhlY3V0aW9uU3RyYXRlZ3kuXFxuJyArXG4gICAgJ05neHNNb2R1bGUuZm9yUm9vdChzdGF0ZXMsIHsgZXhlY3V0aW9uU3RyYXRlZ3k6IE5vb3BOZ3hzRXhlY3V0aW9uU3RyYXRlZ3kgfSknXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRVbmRlY29yYXRlZFN0YXRlSW5JdnlXYXJuaW5nTWVzc2FnZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYCcke25hbWV9JyBjbGFzcyBzaG91bGQgYmUgZGVjb3JhdGVkIHdpdGggQEluamVjdGFibGUoKSByaWdodCBhZnRlciB0aGUgQFN0YXRlKCkgZGVjb3JhdG9yYDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRocm93U2VsZWN0RmFjdG9yeU5vdENvbm5lY3RlZEVycm9yKCk6IG5ldmVyIHtcbiAgdGhyb3cgbmV3IEVycm9yKCdZb3UgaGF2ZSBmb3Jnb3R0ZW4gdG8gaW1wb3J0IHRoZSBOR1hTIG1vZHVsZSEnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRocm93UGF0Y2hpbmdBcnJheUVycm9yKCk6IG5ldmVyIHtcbiAgdGhyb3cgbmV3IEVycm9yKCdQYXRjaGluZyBhcnJheXMgaXMgbm90IHN1cHBvcnRlZC4nKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRocm93UGF0Y2hpbmdQcmltaXRpdmVFcnJvcigpOiBuZXZlciB7XG4gIHRocm93IG5ldyBFcnJvcignUGF0Y2hpbmcgcHJpbWl0aXZlcyBpcyBub3Qgc3VwcG9ydGVkLicpO1xufVxuIl19
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { throwSelectorDecoratorError } from '../../configs/messages.config';
|
|
2
|
-
import { createSelector } from '../../selectors/create-selector';
|
|
3
|
-
export function Selector(selectors) {
|
|
4
|
-
return (target, key, descriptor) => {
|
|
5
|
-
descriptor || (descriptor = Object.getOwnPropertyDescriptor(target, key));
|
|
6
|
-
const originalFn = descriptor === null || descriptor === void 0 ? void 0 : descriptor.value;
|
|
7
|
-
// Caretaker note: we have still left the `typeof` condition in order to avoid
|
|
8
|
-
// creating a breaking change for projects that still use the View Engine.
|
|
9
|
-
if (typeof ngDevMode === 'undefined' || ngDevMode) {
|
|
10
|
-
if (originalFn && typeof originalFn !== 'function') {
|
|
11
|
-
throwSelectorDecoratorError();
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
const memoizedFn = createSelector(selectors, originalFn, {
|
|
15
|
-
containerClass: target,
|
|
16
|
-
selectorName: key.toString(),
|
|
17
|
-
getSelectorOptions() {
|
|
18
|
-
return {};
|
|
19
|
-
},
|
|
20
|
-
});
|
|
21
|
-
const newDescriptor = {
|
|
22
|
-
configurable: true,
|
|
23
|
-
get() {
|
|
24
|
-
return memoizedFn;
|
|
25
|
-
},
|
|
26
|
-
};
|
|
27
|
-
// Add hidden property to descriptor
|
|
28
|
-
newDescriptor['originalFn'] = originalFn;
|
|
29
|
-
return newDescriptor;
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvZGVjb3JhdG9ycy9zZWxlY3Rvci9zZWxlY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU1RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFhakUsTUFBTSxVQUFVLFFBQVEsQ0FBNkIsU0FBZTtJQUNsRSxPQUFPLENBQ0wsTUFBVyxFQUNYLEdBQW9CLEVBQ3BCLFVBQXVELEVBQ0gsRUFBRTtRQUN0RCxVQUFVLEtBQVYsVUFBVSxHQUFLLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFFLEVBQUM7UUFFN0QsTUFBTSxVQUFVLEdBQUcsVUFBVSxhQUFWLFVBQVUsdUJBQVYsVUFBVSxDQUFFLEtBQUssQ0FBQztRQUVyQyw4RUFBOEU7UUFDOUUsMEVBQTBFO1FBQzFFLElBQUksT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLFNBQVMsRUFBRTtZQUNqRCxJQUFJLFVBQVUsSUFBSSxPQUFPLFVBQVUsS0FBSyxVQUFVLEVBQUU7Z0JBQ2xELDJCQUEyQixFQUFFLENBQUM7YUFDL0I7U0FDRjtRQUVELE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQyxTQUFTLEVBQUUsVUFBaUIsRUFBRTtZQUM5RCxjQUFjLEVBQUUsTUFBTTtZQUN0QixZQUFZLEVBQUUsR0FBRyxDQUFDLFFBQVEsRUFBRTtZQUM1QixrQkFBa0I7Z0JBQ2hCLE9BQU8sRUFBRSxDQUFDO1lBQ1osQ0FBQztTQUNGLENBQUMsQ0FBQztRQUNILE1BQU0sYUFBYSxHQUFHO1lBQ3BCLFlBQVksRUFBRSxJQUFJO1lBQ2xCLEdBQUc7Z0JBQ0QsT0FBTyxVQUFVLENBQUM7WUFDcEIsQ0FBQztTQUNGLENBQUM7UUFDRixvQ0FBb0M7UUFDOUIsYUFBYyxDQUFDLFlBQVksQ0FBQyxHQUFHLFVBQVUsQ0FBQztRQUNoRCxPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdGhyb3dTZWxlY3RvckRlY29yYXRvckVycm9yIH0gZnJvbSAnLi4vLi4vY29uZmlncy9tZXNzYWdlcy5jb25maWcnO1xuaW1wb3J0IHsgU2VsZWN0b3JEZWYgfSBmcm9tICcuLi8uLi9zZWxlY3RvcnMnO1xuaW1wb3J0IHsgY3JlYXRlU2VsZWN0b3IgfSBmcm9tICcuLi8uLi9zZWxlY3RvcnMvY3JlYXRlLXNlbGVjdG9yJztcbmltcG9ydCB7IFNlbGVjdG9yU3BlYywgU2VsZWN0b3JUeXBlIH0gZnJvbSAnLi9zeW1ib2xzJztcblxuLyoqXG4gKiBEZWNvcmF0b3IgZm9yIGNyZWF0aW5nIGEgc3RhdGUgc2VsZWN0b3IgZm9yIHRoZSBjdXJyZW50IHN0YXRlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gU2VsZWN0b3IoKTogU2VsZWN0b3JUeXBlPHVua25vd24+O1xuXG4vKipcbiAqIERlY29yYXRvciBmb3IgY3JlYXRpbmcgYSBzdGF0ZSBzZWxlY3RvciBmcm9tIHRoZSBwcm92aWRlZCBzZWxlY3RvcnMgKGFuZCBvcHRpb25hbGx5IHRoZSBjb250YWluZXIgU3RhdGUsIGRlcGVuZGluZyBvbiB0aGUgYXBwbGljYWJsZSBTZWxlY3RvciBPcHRpb25zKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFNlbGVjdG9yPFQgZXh0ZW5kcyBTZWxlY3RvckRlZjxhbnk+PihzZWxlY3RvcnM6IFRbXSk6IFNlbGVjdG9yVHlwZTxUPjtcblxuZXhwb3J0IGZ1bmN0aW9uIFNlbGVjdG9yPFQgZXh0ZW5kcyBTZWxlY3RvckRlZjxhbnk+PihzZWxlY3RvcnM/OiBUW10pOiBTZWxlY3RvclR5cGU8VD4ge1xuICByZXR1cm4gPFU+KFxuICAgIHRhcmdldDogYW55LFxuICAgIGtleTogc3RyaW5nIHwgc3ltYm9sLFxuICAgIGRlc2NyaXB0b3I6IFR5cGVkUHJvcGVydHlEZXNjcmlwdG9yPFNlbGVjdG9yU3BlYzxULCBVPj5cbiAgKTogVHlwZWRQcm9wZXJ0eURlc2NyaXB0b3I8U2VsZWN0b3JTcGVjPFQsIFU+PiB8IHZvaWQgPT4ge1xuICAgIGRlc2NyaXB0b3IgfHw9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGFyZ2V0LCBrZXkpITtcblxuICAgIGNvbnN0IG9yaWdpbmFsRm4gPSBkZXNjcmlwdG9yPy52YWx1ZTtcblxuICAgIC8vIENhcmV0YWtlciBub3RlOiB3ZSBoYXZlIHN0aWxsIGxlZnQgdGhlIGB0eXBlb2ZgIGNvbmRpdGlvbiBpbiBvcmRlciB0byBhdm9pZFxuICAgIC8vIGNyZWF0aW5nIGEgYnJlYWtpbmcgY2hhbmdlIGZvciBwcm9qZWN0cyB0aGF0IHN0aWxsIHVzZSB0aGUgVmlldyBFbmdpbmUuXG4gICAgaWYgKHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZSkge1xuICAgICAgaWYgKG9yaWdpbmFsRm4gJiYgdHlwZW9mIG9yaWdpbmFsRm4gIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgdGhyb3dTZWxlY3RvckRlY29yYXRvckVycm9yKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgbWVtb2l6ZWRGbiA9IGNyZWF0ZVNlbGVjdG9yKHNlbGVjdG9ycywgb3JpZ2luYWxGbiBhcyBhbnksIHtcbiAgICAgIGNvbnRhaW5lckNsYXNzOiB0YXJnZXQsXG4gICAgICBzZWxlY3Rvck5hbWU6IGtleS50b1N0cmluZygpLFxuICAgICAgZ2V0U2VsZWN0b3JPcHRpb25zKCkge1xuICAgICAgICByZXR1cm4ge307XG4gICAgICB9LFxuICAgIH0pO1xuICAgIGNvbnN0IG5ld0Rlc2NyaXB0b3IgPSB7XG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICBnZXQoKSB7XG4gICAgICAgIHJldHVybiBtZW1vaXplZEZuO1xuICAgICAgfSxcbiAgICB9O1xuICAgIC8vIEFkZCBoaWRkZW4gcHJvcGVydHkgdG8gZGVzY3JpcHRvclxuICAgICg8YW55Pm5ld0Rlc2NyaXB0b3IpWydvcmlnaW5hbEZuJ10gPSBvcmlnaW5hbEZuO1xuICAgIHJldHVybiBuZXdEZXNjcmlwdG9yO1xuICB9O1xufVxuIl19
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { ensureStoreMetadata } from '../internal/internals';
|
|
2
|
-
import { META_KEY, META_OPTIONS_KEY } from '../symbols';
|
|
3
|
-
import { StoreValidators } from '../utils/store-validators';
|
|
4
|
-
/**
|
|
5
|
-
* Decorates a class with ngxs state information.
|
|
6
|
-
*/
|
|
7
|
-
export function State(options) {
|
|
8
|
-
function getStateOptions(inheritedStateClass) {
|
|
9
|
-
const inheritanceOptions = inheritedStateClass[META_OPTIONS_KEY] || {};
|
|
10
|
-
return Object.assign(Object.assign({}, inheritanceOptions), options);
|
|
11
|
-
}
|
|
12
|
-
function mutateMetaData(params) {
|
|
13
|
-
const { meta, inheritedStateClass, optionsWithInheritance } = params;
|
|
14
|
-
const { children, defaults, name } = optionsWithInheritance;
|
|
15
|
-
const stateName = typeof name === 'string' ? name : (name && name.getName()) || null;
|
|
16
|
-
// Caretaker note: we have still left the `typeof` condition in order to avoid
|
|
17
|
-
// creating a breaking change for projects that still use the View Engine.
|
|
18
|
-
if (typeof ngDevMode === 'undefined' || ngDevMode) {
|
|
19
|
-
StoreValidators.checkThatStateIsNamedCorrectly(stateName);
|
|
20
|
-
}
|
|
21
|
-
if (inheritedStateClass.hasOwnProperty(META_KEY)) {
|
|
22
|
-
const inheritedMeta = inheritedStateClass[META_KEY] || {};
|
|
23
|
-
meta.actions = Object.assign(Object.assign({}, meta.actions), inheritedMeta.actions);
|
|
24
|
-
}
|
|
25
|
-
meta.children = children;
|
|
26
|
-
meta.defaults = defaults;
|
|
27
|
-
meta.name = stateName;
|
|
28
|
-
}
|
|
29
|
-
return (target) => {
|
|
30
|
-
const stateClass = target;
|
|
31
|
-
const meta = ensureStoreMetadata(stateClass);
|
|
32
|
-
const inheritedStateClass = Object.getPrototypeOf(stateClass);
|
|
33
|
-
const optionsWithInheritance = getStateOptions(inheritedStateClass);
|
|
34
|
-
mutateMetaData({ meta, inheritedStateClass, optionsWithInheritance });
|
|
35
|
-
stateClass[META_OPTIONS_KEY] = optionsWithInheritance;
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvZGVjb3JhdG9ycy9zdGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsbUJBQW1CLEVBQXFDLE1BQU0sdUJBQXVCLENBQUM7QUFDL0YsT0FBTyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBZ0IsTUFBTSxZQUFZLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBUTVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLEtBQUssQ0FBSSxPQUF3QjtJQUMvQyxTQUFTLGVBQWUsQ0FBQyxtQkFBdUM7UUFDOUQsTUFBTSxrQkFBa0IsR0FDdEIsbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDOUMsT0FBTyxnQ0FBSyxrQkFBa0IsR0FBSyxPQUFPLENBQXFCLENBQUM7SUFDbEUsQ0FBQztJQUVELFNBQVMsY0FBYyxDQUFDLE1BQTRCO1FBQ2xELE1BQU0sRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsc0JBQXNCLEVBQUUsR0FBRyxNQUFNLENBQUM7UUFDckUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEdBQUcsc0JBQXNCLENBQUM7UUFDNUQsTUFBTSxTQUFTLEdBQ2IsT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQztRQUVyRSw4RUFBOEU7UUFDOUUsMEVBQTBFO1FBQzFFLElBQUksT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLFNBQVMsRUFBRTtZQUNqRCxlQUFlLENBQUMsOEJBQThCLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDM0Q7UUFFRCxJQUFJLG1CQUFtQixDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNoRCxNQUFNLGFBQWEsR0FBMkIsbUJBQW1CLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2xGLElBQUksQ0FBQyxPQUFPLG1DQUFRLElBQUksQ0FBQyxPQUFPLEdBQUssYUFBYSxDQUFDLE9BQU8sQ0FBRSxDQUFDO1NBQzlEO1FBRUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVELE9BQU8sQ0FBQyxNQUFrQixFQUFRLEVBQUU7UUFDbEMsTUFBTSxVQUFVLEdBQXVCLE1BQU0sQ0FBQztRQUM5QyxNQUFNLElBQUksR0FBa0IsbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDNUQsTUFBTSxtQkFBbUIsR0FBdUIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNsRixNQUFNLHNCQUFzQixHQUFvQixlQUFlLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNyRixjQUFjLENBQUMsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDO1FBQ3RFLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLHNCQUFzQixDQUFDO0lBQ3hELENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGF0ZUNsYXNzIH0gZnJvbSAnQG5neHMvc3RvcmUvaW50ZXJuYWxzJztcblxuaW1wb3J0IHsgZW5zdXJlU3RvcmVNZXRhZGF0YSwgTWV0YURhdGFNb2RlbCwgU3RhdGVDbGFzc0ludGVybmFsIH0gZnJvbSAnLi4vaW50ZXJuYWwvaW50ZXJuYWxzJztcbmltcG9ydCB7IE1FVEFfS0VZLCBNRVRBX09QVElPTlNfS0VZLCBTdG9yZU9wdGlvbnMgfSBmcm9tICcuLi9zeW1ib2xzJztcbmltcG9ydCB7IFN0b3JlVmFsaWRhdG9ycyB9IGZyb20gJy4uL3V0aWxzL3N0b3JlLXZhbGlkYXRvcnMnO1xuXG5pbnRlcmZhY2UgTXV0YXRlTWV0YU9wdGlvbnM8VD4ge1xuICBtZXRhOiBNZXRhRGF0YU1vZGVsO1xuICBpbmhlcml0ZWRTdGF0ZUNsYXNzOiBTdGF0ZUNsYXNzSW50ZXJuYWw7XG4gIG9wdGlvbnNXaXRoSW5oZXJpdGFuY2U6IFN0b3JlT3B0aW9uczxUPjtcbn1cblxuLyoqXG4gKiBEZWNvcmF0ZXMgYSBjbGFzcyB3aXRoIG5neHMgc3RhdGUgaW5mb3JtYXRpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBTdGF0ZTxUPihvcHRpb25zOiBTdG9yZU9wdGlvbnM8VD4pIHtcbiAgZnVuY3Rpb24gZ2V0U3RhdGVPcHRpb25zKGluaGVyaXRlZFN0YXRlQ2xhc3M6IFN0YXRlQ2xhc3NJbnRlcm5hbCk6IFN0b3JlT3B0aW9uczxUPiB7XG4gICAgY29uc3QgaW5oZXJpdGFuY2VPcHRpb25zOiBQYXJ0aWFsPFN0b3JlT3B0aW9uczxUPj4gPVxuICAgICAgaW5oZXJpdGVkU3RhdGVDbGFzc1tNRVRBX09QVElPTlNfS0VZXSB8fCB7fTtcbiAgICByZXR1cm4geyAuLi5pbmhlcml0YW5jZU9wdGlvbnMsIC4uLm9wdGlvbnMgfSBhcyBTdG9yZU9wdGlvbnM8VD47XG4gIH1cblxuICBmdW5jdGlvbiBtdXRhdGVNZXRhRGF0YShwYXJhbXM6IE11dGF0ZU1ldGFPcHRpb25zPFQ+KTogdm9pZCB7XG4gICAgY29uc3QgeyBtZXRhLCBpbmhlcml0ZWRTdGF0ZUNsYXNzLCBvcHRpb25zV2l0aEluaGVyaXRhbmNlIH0gPSBwYXJhbXM7XG4gICAgY29uc3QgeyBjaGlsZHJlbiwgZGVmYXVsdHMsIG5hbWUgfSA9IG9wdGlvbnNXaXRoSW5oZXJpdGFuY2U7XG4gICAgY29uc3Qgc3RhdGVOYW1lOiBzdHJpbmcgfCBudWxsID1cbiAgICAgIHR5cGVvZiBuYW1lID09PSAnc3RyaW5nJyA/IG5hbWUgOiAobmFtZSAmJiBuYW1lLmdldE5hbWUoKSkgfHwgbnVsbDtcblxuICAgIC8vIENhcmV0YWtlciBub3RlOiB3ZSBoYXZlIHN0aWxsIGxlZnQgdGhlIGB0eXBlb2ZgIGNvbmRpdGlvbiBpbiBvcmRlciB0byBhdm9pZFxuICAgIC8vIGNyZWF0aW5nIGEgYnJlYWtpbmcgY2hhbmdlIGZvciBwcm9qZWN0cyB0aGF0IHN0aWxsIHVzZSB0aGUgVmlldyBFbmdpbmUuXG4gICAgaWYgKHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZSkge1xuICAgICAgU3RvcmVWYWxpZGF0b3JzLmNoZWNrVGhhdFN0YXRlSXNOYW1lZENvcnJlY3RseShzdGF0ZU5hbWUpO1xuICAgIH1cblxuICAgIGlmIChpbmhlcml0ZWRTdGF0ZUNsYXNzLmhhc093blByb3BlcnR5KE1FVEFfS0VZKSkge1xuICAgICAgY29uc3QgaW5oZXJpdGVkTWV0YTogUGFydGlhbDxNZXRhRGF0YU1vZGVsPiA9IGluaGVyaXRlZFN0YXRlQ2xhc3NbTUVUQV9LRVldIHx8IHt9O1xuICAgICAgbWV0YS5hY3Rpb25zID0geyAuLi5tZXRhLmFjdGlvbnMsIC4uLmluaGVyaXRlZE1ldGEuYWN0aW9ucyB9O1xuICAgIH1cblxuICAgIG1ldGEuY2hpbGRyZW4gPSBjaGlsZHJlbjtcbiAgICBtZXRhLmRlZmF1bHRzID0gZGVmYXVsdHM7XG4gICAgbWV0YS5uYW1lID0gc3RhdGVOYW1lO1xuICB9XG5cbiAgcmV0dXJuICh0YXJnZXQ6IFN0YXRlQ2xhc3MpOiB2b2lkID0+IHtcbiAgICBjb25zdCBzdGF0ZUNsYXNzOiBTdGF0ZUNsYXNzSW50ZXJuYWwgPSB0YXJnZXQ7XG4gICAgY29uc3QgbWV0YTogTWV0YURhdGFNb2RlbCA9IGVuc3VyZVN0b3JlTWV0YWRhdGEoc3RhdGVDbGFzcyk7XG4gICAgY29uc3QgaW5oZXJpdGVkU3RhdGVDbGFzczogU3RhdGVDbGFzc0ludGVybmFsID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHN0YXRlQ2xhc3MpO1xuICAgIGNvbnN0IG9wdGlvbnNXaXRoSW5oZXJpdGFuY2U6IFN0b3JlT3B0aW9uczxUPiA9IGdldFN0YXRlT3B0aW9ucyhpbmhlcml0ZWRTdGF0ZUNsYXNzKTtcbiAgICBtdXRhdGVNZXRhRGF0YSh7IG1ldGEsIGluaGVyaXRlZFN0YXRlQ2xhc3MsIG9wdGlvbnNXaXRoSW5oZXJpdGFuY2UgfSk7XG4gICAgc3RhdGVDbGFzc1tNRVRBX09QVElPTlNfS0VZXSA9IG9wdGlvbnNXaXRoSW5oZXJpdGFuY2U7XG4gIH07XG59XG4iXX0=
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { InjectionToken, inject, INJECTOR, ɵglobal } from '@angular/core';
|
|
2
|
-
import { NoopNgxsExecutionStrategy } from './noop-ngxs-execution-strategy';
|
|
3
|
-
import { DispatchOutsideZoneNgxsExecutionStrategy } from './dispatch-outside-zone-ngxs-execution-strategy';
|
|
4
|
-
/**
|
|
5
|
-
* The strategy that might be provided by users through `options.executionStrategy`.
|
|
6
|
-
*/
|
|
7
|
-
export const USER_PROVIDED_NGXS_EXECUTION_STRATEGY = new InjectionToken('USER_PROVIDED_NGXS_EXECUTION_STRATEGY');
|
|
8
|
-
/*
|
|
9
|
-
* Internal execution strategy injection token
|
|
10
|
-
*/
|
|
11
|
-
export const NGXS_EXECUTION_STRATEGY = new InjectionToken('NGXS_EXECUTION_STRATEGY', {
|
|
12
|
-
providedIn: 'root',
|
|
13
|
-
factory: () => {
|
|
14
|
-
const injector = inject(INJECTOR);
|
|
15
|
-
const executionStrategy = injector.get(USER_PROVIDED_NGXS_EXECUTION_STRATEGY);
|
|
16
|
-
return executionStrategy
|
|
17
|
-
? injector.get(executionStrategy)
|
|
18
|
-
: injector.get(typeof ɵglobal.Zone !== 'undefined'
|
|
19
|
-
? DispatchOutsideZoneNgxsExecutionStrategy
|
|
20
|
-
: NoopNgxsExecutionStrategy);
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL3NyYy9leGVjdXRpb24vc3ltYm9scy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQVEsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWhGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSx3Q0FBd0MsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBRTNHOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0scUNBQXFDLEdBQUcsSUFBSSxjQUFjLENBRXJFLHVDQUF1QyxDQUFDLENBQUM7QUFFM0M7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLGNBQWMsQ0FDdkQseUJBQXlCLEVBQ3pCO0lBQ0UsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRTtRQUNaLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNsQyxNQUFNLGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMscUNBQXFDLENBQUMsQ0FBQztRQUM5RSxPQUFPLGlCQUFpQjtZQUN0QixDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQztZQUNqQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FDVixPQUFPLE9BQU8sQ0FBQyxJQUFJLEtBQUssV0FBVztnQkFDakMsQ0FBQyxDQUFDLHdDQUF3QztnQkFDMUMsQ0FBQyxDQUFDLHlCQUF5QixDQUM5QixDQUFDO0lBQ1IsQ0FBQztDQUNGLENBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBpbmplY3QsIElOSkVDVE9SLCBUeXBlLCDJtWdsb2JhbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBOb29wTmd4c0V4ZWN1dGlvblN0cmF0ZWd5IH0gZnJvbSAnLi9ub29wLW5neHMtZXhlY3V0aW9uLXN0cmF0ZWd5JztcbmltcG9ydCB7IERpc3BhdGNoT3V0c2lkZVpvbmVOZ3hzRXhlY3V0aW9uU3RyYXRlZ3kgfSBmcm9tICcuL2Rpc3BhdGNoLW91dHNpZGUtem9uZS1uZ3hzLWV4ZWN1dGlvbi1zdHJhdGVneSc7XG5cbi8qKlxuICogVGhlIHN0cmF0ZWd5IHRoYXQgbWlnaHQgYmUgcHJvdmlkZWQgYnkgdXNlcnMgdGhyb3VnaCBgb3B0aW9ucy5leGVjdXRpb25TdHJhdGVneWAuXG4gKi9cbmV4cG9ydCBjb25zdCBVU0VSX1BST1ZJREVEX05HWFNfRVhFQ1VUSU9OX1NUUkFURUdZID0gbmV3IEluamVjdGlvblRva2VuPFxuICBUeXBlPE5neHNFeGVjdXRpb25TdHJhdGVneT4gfCB1bmRlZmluZWRcbj4oJ1VTRVJfUFJPVklERURfTkdYU19FWEVDVVRJT05fU1RSQVRFR1knKTtcblxuLypcbiAqIEludGVybmFsIGV4ZWN1dGlvbiBzdHJhdGVneSBpbmplY3Rpb24gdG9rZW5cbiAqL1xuZXhwb3J0IGNvbnN0IE5HWFNfRVhFQ1VUSU9OX1NUUkFURUdZID0gbmV3IEluamVjdGlvblRva2VuPE5neHNFeGVjdXRpb25TdHJhdGVneT4oXG4gICdOR1hTX0VYRUNVVElPTl9TVFJBVEVHWScsXG4gIHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG4gICAgZmFjdG9yeTogKCkgPT4ge1xuICAgICAgY29uc3QgaW5qZWN0b3IgPSBpbmplY3QoSU5KRUNUT1IpO1xuICAgICAgY29uc3QgZXhlY3V0aW9uU3RyYXRlZ3kgPSBpbmplY3Rvci5nZXQoVVNFUl9QUk9WSURFRF9OR1hTX0VYRUNVVElPTl9TVFJBVEVHWSk7XG4gICAgICByZXR1cm4gZXhlY3V0aW9uU3RyYXRlZ3lcbiAgICAgICAgPyBpbmplY3Rvci5nZXQoZXhlY3V0aW9uU3RyYXRlZ3kpXG4gICAgICAgIDogaW5qZWN0b3IuZ2V0KFxuICAgICAgICAgICAgdHlwZW9mIMm1Z2xvYmFsLlpvbmUgIT09ICd1bmRlZmluZWQnXG4gICAgICAgICAgICAgID8gRGlzcGF0Y2hPdXRzaWRlWm9uZU5neHNFeGVjdXRpb25TdHJhdGVneVxuICAgICAgICAgICAgICA6IE5vb3BOZ3hzRXhlY3V0aW9uU3RyYXRlZ3lcbiAgICAgICAgICApO1xuICAgIH1cbiAgfVxuKTtcblxuLypcbiAqIEV4ZWN1dGlvbiBzdHJhdGVneSBpbnRlcmZhY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZ3hzRXhlY3V0aW9uU3RyYXRlZ3kge1xuICBlbnRlcjxUPihmdW5jOiAoKSA9PiBUKTogVDtcbiAgbGVhdmU8VD4oZnVuYzogKCkgPT4gVCk6IFQ7XG59XG4iXX0=
|
|
@@ -1,248 +0,0 @@
|
|
|
1
|
-
import { META_KEY, META_OPTIONS_KEY, SELECTOR_META_KEY } from '../symbols';
|
|
2
|
-
/**
|
|
3
|
-
* Ensures metadata is attached to the class and returns it.
|
|
4
|
-
*
|
|
5
|
-
* @ignore
|
|
6
|
-
*/
|
|
7
|
-
export function ensureStoreMetadata(target) {
|
|
8
|
-
if (!target.hasOwnProperty(META_KEY)) {
|
|
9
|
-
const defaultMetadata = {
|
|
10
|
-
name: null,
|
|
11
|
-
actions: {},
|
|
12
|
-
defaults: {},
|
|
13
|
-
path: null,
|
|
14
|
-
makeRootSelector(context) {
|
|
15
|
-
return context.getStateGetter(defaultMetadata.name);
|
|
16
|
-
},
|
|
17
|
-
children: []
|
|
18
|
-
};
|
|
19
|
-
Object.defineProperty(target, META_KEY, { value: defaultMetadata });
|
|
20
|
-
}
|
|
21
|
-
return getStoreMetadata(target);
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Get the metadata attached to the state class if it exists.
|
|
25
|
-
*
|
|
26
|
-
* @ignore
|
|
27
|
-
*/
|
|
28
|
-
export function getStoreMetadata(target) {
|
|
29
|
-
return target[META_KEY];
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Ensures metadata is attached to the selector and returns it.
|
|
33
|
-
*
|
|
34
|
-
* @ignore
|
|
35
|
-
*/
|
|
36
|
-
export function ensureSelectorMetadata(target) {
|
|
37
|
-
if (!target.hasOwnProperty(SELECTOR_META_KEY)) {
|
|
38
|
-
const defaultMetadata = {
|
|
39
|
-
makeRootSelector: null,
|
|
40
|
-
originalFn: null,
|
|
41
|
-
containerClass: null,
|
|
42
|
-
selectorName: null,
|
|
43
|
-
getSelectorOptions: () => ({})
|
|
44
|
-
};
|
|
45
|
-
Object.defineProperty(target, SELECTOR_META_KEY, { value: defaultMetadata });
|
|
46
|
-
}
|
|
47
|
-
return getSelectorMetadata(target);
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Get the metadata attached to the selector if it exists.
|
|
51
|
-
*
|
|
52
|
-
* @ignore
|
|
53
|
-
*/
|
|
54
|
-
export function getSelectorMetadata(target) {
|
|
55
|
-
return target[SELECTOR_META_KEY];
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Get a deeply nested value. Example:
|
|
59
|
-
*
|
|
60
|
-
* getValue({ foo: bar: [] }, 'foo.bar') //=> []
|
|
61
|
-
*
|
|
62
|
-
* Note: This is not as fast as the `fastPropGetter` but is strict Content Security Policy compliant.
|
|
63
|
-
* See perf hit: https://jsperf.com/fast-value-getter-given-path/1
|
|
64
|
-
*
|
|
65
|
-
* @ignore
|
|
66
|
-
*/
|
|
67
|
-
function compliantPropGetter(paths) {
|
|
68
|
-
const copyOfPaths = paths.slice();
|
|
69
|
-
return obj => copyOfPaths.reduce((acc, part) => acc && acc[part], obj);
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* The generated function is faster than:
|
|
73
|
-
* - pluck (Observable operator)
|
|
74
|
-
* - memoize
|
|
75
|
-
*
|
|
76
|
-
* @ignore
|
|
77
|
-
*/
|
|
78
|
-
function fastPropGetter(paths) {
|
|
79
|
-
const segments = paths;
|
|
80
|
-
let seg = 'store.' + segments[0];
|
|
81
|
-
let i = 0;
|
|
82
|
-
const l = segments.length;
|
|
83
|
-
let expr = seg;
|
|
84
|
-
while (++i < l) {
|
|
85
|
-
expr = expr + ' && ' + (seg = seg + '.' + segments[i]);
|
|
86
|
-
}
|
|
87
|
-
const fn = new Function('store', 'return ' + expr + ';');
|
|
88
|
-
return fn;
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Get a deeply nested value. Example:
|
|
92
|
-
*
|
|
93
|
-
* getValue({ foo: bar: [] }, 'foo.bar') //=> []
|
|
94
|
-
*
|
|
95
|
-
* @ignore
|
|
96
|
-
*/
|
|
97
|
-
export function propGetter(paths, config) {
|
|
98
|
-
if (config && config.compatibility && config.compatibility.strictContentSecurityPolicy) {
|
|
99
|
-
return compliantPropGetter(paths);
|
|
100
|
-
}
|
|
101
|
-
else {
|
|
102
|
-
return fastPropGetter(paths);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Given an array of states, it will return a object graph. Example:
|
|
107
|
-
* const states = [
|
|
108
|
-
* Cart,
|
|
109
|
-
* CartSaved,
|
|
110
|
-
* CartSavedItems
|
|
111
|
-
* ]
|
|
112
|
-
*
|
|
113
|
-
* would return:
|
|
114
|
-
*
|
|
115
|
-
* const graph = {
|
|
116
|
-
* cart: ['saved'],
|
|
117
|
-
* saved: ['items'],
|
|
118
|
-
* items: []
|
|
119
|
-
* };
|
|
120
|
-
*
|
|
121
|
-
* @ignore
|
|
122
|
-
*/
|
|
123
|
-
export function buildGraph(stateClasses) {
|
|
124
|
-
const findName = (stateClass) => {
|
|
125
|
-
const meta = stateClasses.find(g => g === stateClass);
|
|
126
|
-
// Caretaker note: we have still left the `typeof` condition in order to avoid
|
|
127
|
-
// creating a breaking change for projects that still use the View Engine.
|
|
128
|
-
if ((typeof ngDevMode === 'undefined' || ngDevMode) && !meta) {
|
|
129
|
-
throw new Error(`Child state not found: ${stateClass}. \r\nYou may have forgotten to add states to module`);
|
|
130
|
-
}
|
|
131
|
-
return meta[META_KEY].name;
|
|
132
|
-
};
|
|
133
|
-
return stateClasses.reduce((result, stateClass) => {
|
|
134
|
-
const { name, children } = stateClass[META_KEY];
|
|
135
|
-
result[name] = (children || []).map(findName);
|
|
136
|
-
return result;
|
|
137
|
-
}, {});
|
|
138
|
-
}
|
|
139
|
-
/**
|
|
140
|
-
* Given a states array, returns object graph
|
|
141
|
-
* returning the name and state metadata. Example:
|
|
142
|
-
*
|
|
143
|
-
* const graph = {
|
|
144
|
-
* cart: { metadata }
|
|
145
|
-
* };
|
|
146
|
-
*
|
|
147
|
-
* @ignore
|
|
148
|
-
*/
|
|
149
|
-
export function nameToState(states) {
|
|
150
|
-
return states.reduce((result, stateClass) => {
|
|
151
|
-
const meta = stateClass[META_KEY];
|
|
152
|
-
result[meta.name] = stateClass;
|
|
153
|
-
return result;
|
|
154
|
-
}, {});
|
|
155
|
-
}
|
|
156
|
-
/**
|
|
157
|
-
* Given a object relationship graph will return the full path
|
|
158
|
-
* for the child items. Example:
|
|
159
|
-
*
|
|
160
|
-
* const graph = {
|
|
161
|
-
* cart: ['saved'],
|
|
162
|
-
* saved: ['items'],
|
|
163
|
-
* items: []
|
|
164
|
-
* };
|
|
165
|
-
*
|
|
166
|
-
* would return:
|
|
167
|
-
*
|
|
168
|
-
* const r = {
|
|
169
|
-
* cart: 'cart',
|
|
170
|
-
* saved: 'cart.saved',
|
|
171
|
-
* items: 'cart.saved.items'
|
|
172
|
-
* };
|
|
173
|
-
*
|
|
174
|
-
* @ignore
|
|
175
|
-
*/
|
|
176
|
-
export function findFullParentPath(obj, newObj = {}) {
|
|
177
|
-
const visit = (child, keyToFind) => {
|
|
178
|
-
for (const key in child) {
|
|
179
|
-
if (child.hasOwnProperty(key) && child[key].indexOf(keyToFind) >= 0) {
|
|
180
|
-
const parent = visit(child, key);
|
|
181
|
-
return parent !== null ? `${parent}.${key}` : key;
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
return null;
|
|
185
|
-
};
|
|
186
|
-
for (const key in obj) {
|
|
187
|
-
if (obj.hasOwnProperty(key)) {
|
|
188
|
-
const parent = visit(obj, key);
|
|
189
|
-
newObj[key] = parent ? `${parent}.${key}` : key;
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
return newObj;
|
|
193
|
-
}
|
|
194
|
-
/**
|
|
195
|
-
* Given a object graph, it will return the items topologically sorted Example:
|
|
196
|
-
*
|
|
197
|
-
* const graph = {
|
|
198
|
-
* cart: ['saved'],
|
|
199
|
-
* saved: ['items'],
|
|
200
|
-
* items: []
|
|
201
|
-
* };
|
|
202
|
-
*
|
|
203
|
-
* would return:
|
|
204
|
-
*
|
|
205
|
-
* const results = [
|
|
206
|
-
* 'items',
|
|
207
|
-
* 'saved',
|
|
208
|
-
* 'cart'
|
|
209
|
-
* ];
|
|
210
|
-
*
|
|
211
|
-
* @ignore
|
|
212
|
-
*/
|
|
213
|
-
export function topologicalSort(graph) {
|
|
214
|
-
const sorted = [];
|
|
215
|
-
const visited = {};
|
|
216
|
-
const visit = (name, ancestors = []) => {
|
|
217
|
-
if (!Array.isArray(ancestors)) {
|
|
218
|
-
ancestors = [];
|
|
219
|
-
}
|
|
220
|
-
ancestors.push(name);
|
|
221
|
-
visited[name] = true;
|
|
222
|
-
graph[name].forEach((dep) => {
|
|
223
|
-
// Caretaker note: we have still left the `typeof` condition in order to avoid
|
|
224
|
-
// creating a breaking change for projects that still use the View Engine.
|
|
225
|
-
if ((typeof ngDevMode === 'undefined' || ngDevMode) && ancestors.indexOf(dep) >= 0) {
|
|
226
|
-
throw new Error(`Circular dependency '${dep}' is required by '${name}': ${ancestors.join(' -> ')}`);
|
|
227
|
-
}
|
|
228
|
-
if (visited[dep]) {
|
|
229
|
-
return;
|
|
230
|
-
}
|
|
231
|
-
visit(dep, ancestors.slice(0));
|
|
232
|
-
});
|
|
233
|
-
if (sorted.indexOf(name) < 0) {
|
|
234
|
-
sorted.push(name);
|
|
235
|
-
}
|
|
236
|
-
};
|
|
237
|
-
Object.keys(graph).forEach(k => visit(k));
|
|
238
|
-
return sorted.reverse();
|
|
239
|
-
}
|
|
240
|
-
/**
|
|
241
|
-
* Returns if the parameter is a object or not.
|
|
242
|
-
*
|
|
243
|
-
* @ignore
|
|
244
|
-
*/
|
|
245
|
-
export function isObject(obj) {
|
|
246
|
-
return (typeof obj === 'object' && obj !== null) || typeof obj === 'function';
|
|
247
|
-
}
|
|
248
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RvcmUvc3JjL2ludGVybmFsL2ludGVybmFscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQ0wsUUFBUSxFQUNSLGdCQUFnQixFQUVoQixpQkFBaUIsRUFFbEIsTUFBTSxZQUFZLENBQUM7QUFnRXBCOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsTUFBMEI7SUFDNUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUU7UUFDcEMsTUFBTSxlQUFlLEdBQWtCO1lBQ3JDLElBQUksRUFBRSxJQUFJO1lBQ1YsT0FBTyxFQUFFLEVBQUU7WUFDWCxRQUFRLEVBQUUsRUFBRTtZQUNaLElBQUksRUFBRSxJQUFJO1lBQ1YsZ0JBQWdCLENBQUMsT0FBK0I7Z0JBQzlDLE9BQU8sT0FBTyxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEQsQ0FBQztZQUNELFFBQVEsRUFBRSxFQUFFO1NBQ2IsQ0FBQztRQUVGLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0tBQ3JFO0lBQ0QsT0FBTyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNsQyxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxNQUEwQjtJQUN6RCxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUUsQ0FBQztBQUMzQixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxNQUFnQjtJQUNyRCxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFO1FBQzdDLE1BQU0sZUFBZSxHQUEwQjtZQUM3QyxnQkFBZ0IsRUFBRSxJ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QVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FDbkYsQ0FBQzthQUNIO1lBRUQsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2hCLE9BQU87YUFDUjtZQUVELEtBQUssQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUM1QixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ25CO0lBQ0gsQ0FBQyxDQUFDO0lBRUYsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUUxQyxPQUFPLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQUMxQixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQUMsR0FBUTtJQUMvQixPQUFPLENBQUMsT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUMsSUFBSSxPQUFPLEdBQUcsS0FBSyxVQUFVLENBQUM7QUFDaEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWluT2JqZWN0T2YsIFN0YXRlQ2xhc3MgfSBmcm9tICdAbmd4cy9zdG9yZS9pbnRlcm5hbHMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICBNRVRBX0tFWSxcbiAgTUVUQV9PUFRJT05TX0tFWSxcbiAgTmd4c0NvbmZpZyxcbiAgU0VMRUNUT1JfTUVUQV9LRVksXG4gIFN0b3JlT3B0aW9uc1xufSBmcm9tICcuLi9zeW1ib2xzJztcbmltcG9ydCB7IEFjdGlvbkhhbmRsZXJNZXRhRGF0YSB9IGZyb20gJy4uL2FjdGlvbnMvc3ltYm9scyc7XG5cbi8vIGluc3BpcmVkIGZyb20gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzQzNjc0Mzg5XG5leHBvcnQgaW50ZXJmYWNlIFN0YXRlQ2xhc3NJbnRlcm5hbDxUID0gYW55LCBVID0gYW55PiBleHRlbmRzIFN0YXRlQ2xhc3M8VD4ge1xuICBbTUVUQV9LRVldPzogTWV0YURhdGFNb2RlbDtcbiAgW01FVEFfT1BUSU9OU19LRVldPzogU3RvcmVPcHRpb25zPFU+O1xufVxuXG5leHBvcnQgdHlwZSBTdGF0ZUtleUdyYXBoID0gUGxhaW5PYmplY3RPZjxzdHJpbmdbXT47XG5leHBvcnQgdHlwZSBTdGF0ZXNCeU5hbWUgPSBQbGFpbk9iamVjdE9mPFN0YXRlQ2xhc3NJbnRlcm5hbD47XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhdGVPcGVyYXRpb25zPFQ+IHtcbiAgZ2V0U3RhdGUoKTogVDtcblxuICBzZXRTdGF0ZSh2YWw6IFQpOiBUO1xuXG4gIGRpc3BhdGNoKGFjdGlvbk9yQWN0aW9uczogYW55IHwgYW55W10pOiBPYnNlcnZhYmxlPHZvaWQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1ldGFEYXRhTW9kZWwge1xuICBuYW1lOiBzdHJpbmcgfCBudWxsO1xuICBhY3Rpb25zOiBQbGFpbk9iamVjdE9mPEFjdGlvbkhhbmRsZXJNZXRhRGF0YVtdPjtcbiAgZGVmYXVsdHM6IGFueTtcbiAgcGF0aDogc3RyaW5nIHwgbnVsbDtcbiAgbWFrZVJvb3RTZWxlY3RvcjogU2VsZWN0b3JGYWN0b3J5IHwgbnVsbDtcbiAgY2hpbGRyZW4/OiBTdGF0ZUNsYXNzSW50ZXJuYWxbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSdW50aW1lU2VsZWN0b3JDb250ZXh0IHtcbiAgZ2V0U3RhdGVHZXR0ZXIoa2V5OiBhbnkpOiAoc3RhdGU6IGFueSkgPT4gYW55O1xuICBnZXRTZWxlY3Rvck9wdGlvbnMobG9jYWxPcHRpb25zPzogU2hhcmVkU2VsZWN0b3JPcHRpb25zKTogU2hhcmVkU2VsZWN0b3JPcHRpb25zO1xufVxuXG5leHBvcnQgdHlwZSBTZWxlY3RGcm9tUm9vdFN0YXRlID0gKHJvb3RTdGF0ZTogYW55KSA9PiBhbnk7XG5leHBvcnQgdHlwZSBTZWxlY3RvckZhY3RvcnkgPSAocnVudGltZUNvbnRleHQ6IFJ1bnRpbWVTZWxlY3RvckNvbnRleHQpID0+IFNlbGVjdEZyb21Sb290U3RhdGU7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkU2VsZWN0b3JPcHRpb25zIHtcbiAgaW5qZWN0Q29udGFpbmVyU3RhdGU/OiBib29sZWFuO1xuICBzdXBwcmVzc0Vycm9ycz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0b3JNZXRhRGF0YU1vZGVsIHtcbiAgbWFrZVJvb3RTZWxlY3RvcjogU2VsZWN0b3JGYWN0b3J5IHwgbnVsbDtcbiAgb3JpZ2luYWxGbjogRnVuY3Rpb24gfCBudWxsO1xuICBjb250YWluZXJDbGFzczogYW55O1xuICBzZWxlY3Rvck5hbWU6IHN0cmluZyB8IG51bGw7XG4gIGdldFNlbGVjdG9yT3B0aW9uczogKCkgPT4gU2hhcmVkU2VsZWN0b3JPcHRpb25zO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hcHBlZFN0b3JlIHtcbiAgbmFtZTogc3RyaW5nO1xuICBpc0luaXRpYWxpc2VkOiBib29sZWFuO1xuICBhY3Rpb25zOiBQbGFpbk9iamVjdE9mPEFjdGlvbkhhbmRsZXJNZXRhRGF0YVtdPjtcbiAgZGVmYXVsdHM6IGFueTtcbiAgaW5zdGFuY2U6IGFueTtcbiAgcGF0aDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YXRlc0FuZERlZmF1bHRzIHtcbiAgZGVmYXVsdHM6IGFueTtcbiAgc3RhdGVzOiBNYXBwZWRTdG9yZVtdO1xufVxuXG4vKipcbiAqIEVuc3VyZXMgbWV0YWRhdGEgaXMgYXR0YWNoZWQgdG8gdGhlIGNsYXNzIGFuZCByZXR1cm5zIGl0LlxuICpcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZVN0b3JlTWV0YWRhdGEodGFyZ2V0OiBTdGF0ZUNsYXNzSW50ZXJuYWwpOiBNZXRhRGF0YU1vZGVsIHtcbiAgaWYgKCF0YXJnZXQuaGFzT3duUHJvcGVydHkoTUVUQV9LRVkpKSB7XG4gICAgY29uc3QgZGVmYXVsdE1ldGFkYXRhOiBNZXRhRGF0YU1vZGVsID0ge1xuICAgICAgbmFtZTogbnVsbCxcbiAgICAgIGFjdGlvbnM6IHt9LFxuICAgICAgZGVmYXVsdHM6IHt9LFxuICAgICAgcGF0aDogbnVsbCxcbiAgICAgIG1ha2VSb290U2VsZWN0b3IoY29udGV4dDogUnVudGltZVNlbGVjdG9yQ29udGV4dCkge1xuICAgICAgICByZXR1cm4gY29udGV4dC5nZXRTdGF0ZUdldHRlcihkZWZhdWx0TWV0YWRhdGEubmFtZSk7XG4gICAgICB9LFxuICAgICAgY2hpbGRyZW46IFtdXG4gICAgfTtcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIE1FVEFfS0VZLCB7IHZhbHVlOiBkZWZhdWx0TWV0YWRhdGEgfSk7XG4gIH1cbiAgcmV0dXJuIGdldFN0b3JlTWV0YWRhdGEodGFyZ2V0KTtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIG1ldGFkYXRhIGF0dGFjaGVkIHRvIHRoZSBzdGF0ZSBjbGFzcyBpZiBpdCBleGlzdHMuXG4gKlxuICogQGlnbm9yZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RvcmVNZXRhZGF0YSh0YXJnZXQ6IFN0YXRlQ2xhc3NJbnRlcm5hbCk6IE1ldGFEYXRhTW9kZWwge1xuICByZXR1cm4gdGFyZ2V0W01FVEFfS0VZXSE7XG59XG5cbi8qKlxuICogRW5zdXJlcyBtZXRhZGF0YSBpcyBhdHRhY2hlZCB0byB0aGUgc2VsZWN0b3IgYW5kIHJldHVybnMgaXQuXG4gKlxuICogQGlnbm9yZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5zdXJlU2VsZWN0b3JNZXRhZGF0YSh0YXJnZXQ6IEZ1bmN0aW9uKTogU2VsZWN0b3JNZXRhRGF0YU1vZGVsIHtcbiAgaWYgKCF0YXJnZXQuaGFzT3duUHJvcGVydHkoU0VMRUNUT1JfTUVUQV9LRVkpKSB7XG4gICAgY29uc3QgZGVmYXVsdE1ldGFkYXRhOiBTZWxlY3Rvck1ldGFEYXRhTW9kZWwgPSB7XG4gICAgICBtYWtlUm9vdFNlbGVjdG9yOiBudWxsLFxuICAgICAgb3JpZ2luYWxGbjogbnVsbCxcbiAgICAgIGNvbnRhaW5lckNsYXNzOiBudWxsLFxuICAgICAgc2VsZWN0b3JOYW1lOiBudWxsLFxuICAgICAgZ2V0U2VsZWN0b3JPcHRpb25zOiAoKSA9PiAoe30pXG4gICAgfTtcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIFNFTEVDVE9SX01FVEFfS0VZLCB7IHZhbHVlOiBkZWZhdWx0TWV0YWRhdGEgfSk7XG4gIH1cblxuICByZXR1cm4gZ2V0U2VsZWN0b3JNZXRhZGF0YSh0YXJnZXQpO1xufVxuXG4vKipcbiAqIEdldCB0aGUgbWV0YWRhdGEgYXR0YWNoZWQgdG8gdGhlIHNlbGVjdG9yIGlmIGl0IGV4aXN0cy5cbiAqXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZWxlY3Rvck1ldGFkYXRhKHRhcmdldDogYW55KTogU2VsZWN0b3JNZXRhRGF0YU1vZGVsIHtcbiAgcmV0dXJuIHRhcmdldFtTRUxFQ1RPUl9NRVRBX0tFWV07XG59XG5cbi8qKlxuICogR2V0IGEgZGVlcGx5IG5lc3RlZCB2YWx1ZS4gRXhhbXBsZTpcbiAqXG4gKiAgICBnZXRWYWx1ZSh7IGZvbzogYmFyOiBbXSB9LCAnZm9vLmJhcicpIC8vPT4gW11cbiAqXG4gKiBOb3RlOiBUaGlzIGlzIG5vdCBhcyBmYXN0IGFzIHRoZSBgZmFzdFByb3BHZXR0ZXJgIGJ1dCBpcyBzdHJpY3QgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgY29tcGxpYW50LlxuICogU2VlIHBlcmYgaGl0OiBodHRwczovL2pzcGVyZi5jb20vZmFzdC12YWx1ZS1nZXR0ZXItZ2l2ZW4tcGF0aC8xXG4gKlxuICogQGlnbm9yZVxuICovXG5mdW5jdGlvbiBjb21wbGlhbnRQcm9wR2V0dGVyKHBhdGhzOiBzdHJpbmdbXSk6ICh4OiBhbnkpID0+IGFueSB7XG4gIGNvbnN0IGNvcHlPZlBhdGhzID0gcGF0aHMuc2xpY2UoKTtcbiAgcmV0dXJuIG9iaiA9PiBjb3B5T2ZQYXRocy5yZWR1Y2UoKGFjYzogYW55LCBwYXJ0OiBzdHJpbmcpID0+IGFjYyAmJiBhY2NbcGFydF0sIG9iaik7XG59XG5cbi8qKlxuICogVGhlIGdlbmVyYXRlZCBmdW5jdGlvbiBpcyBmYXN0ZXIgdGhhbjpcbiAqIC0gcGx1Y2sgKE9ic2VydmFibGUgb3BlcmF0b3IpXG4gKiAtIG1lbW9pemVcbiAqXG4gKiBAaWdub3JlXG4gKi9cbmZ1bmN0aW9uIGZhc3RQcm9wR2V0dGVyKHBhdGhzOiBzdHJpbmdbXSk6ICh4OiBhbnkpID0+IGFueSB7XG4gIGNvbnN0IHNlZ21lbnRzID0gcGF0aHM7XG4gIGxldCBzZWcgPSAnc3RvcmUuJyArIHNlZ21lbnRzWzBdO1xuICBsZXQgaSA9IDA7XG4gIGNvbnN0IGwgPSBzZWdtZW50cy5sZW5ndGg7XG5cbiAgbGV0IGV4cHIgPSBzZWc7XG4gIHdoaWxlICgrK2kgPCBsKSB7XG4gICAgZXhwciA9IGV4cHIgKyAnICYmICcgKyAoc2VnID0gc2VnICsgJy4nICsgc2VnbWVudHNbaV0pO1xuICB9XG5cbiAgY29uc3QgZm4gPSBuZXcgRnVuY3Rpb24oJ3N0b3JlJywgJ3JldHVybiAnICsgZXhwciArICc7Jyk7XG5cbiAgcmV0dXJuIDwoeDogYW55KSA9PiBhbnk+Zm47XG59XG5cbi8qKlxuICogR2V0IGEgZGVlcGx5IG5lc3RlZCB2YWx1ZS4gRXhhbXBsZTpcbiAqXG4gKiAgICBnZXRWYWx1ZSh7IGZvbzogYmFyOiBbXSB9LCAnZm9vLmJhcicpIC8vPT4gW11cbiAqXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm9wR2V0dGVyKHBhdGhzOiBzdHJpbmdbXSwgY29uZmlnOiBOZ3hzQ29uZmlnKSB7XG4gIGlmIChjb25maWcgJiYgY29uZmlnLmNvbXBhdGliaWxpdHkgJiYgY29uZmlnLmNvbXBhdGliaWxpdHkuc3RyaWN0Q29udGVudFNlY3VyaXR5UG9saWN5KSB7XG4gICAgcmV0dXJuIGNvbXBsaWFudFByb3BHZXR0ZXIocGF0aHMpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBmYXN0UHJvcEdldHRlcihwYXRocyk7XG4gIH1cbn1cblxuLyoqXG4gKiBHaXZlbiBhbiBhcnJheSBvZiBzdGF0ZXMsIGl0IHdpbGwgcmV0dXJuIGEgb2JqZWN0IGdyYXBoLiBFeGFtcGxlOlxuICogICAgY29uc3Qgc3RhdGVzID0gW1xuICogICAgICBDYXJ0LFxuICogICAgICBDYXJ0U2F2ZWQsXG4gKiAgICAgIENhcnRTYXZlZEl0ZW1zXG4gKiAgICBdXG4gKlxuICogd291bGQgcmV0dXJuOlxuICpcbiAqICBjb25zdCBncmFwaCA9IHtcbiAqICAgIGNhcnQ6IFsnc2F2ZWQnXSxcbiAqICAgIHNhdmVkOiBbJ2l0ZW1zJ10sXG4gKiAgICBpdGVtczogW11cbiAqICB9O1xuICpcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkR3JhcGgoc3RhdGVDbGFzc2VzOiBTdGF0ZUNsYXNzSW50ZXJuYWxbXSk6IFN0YXRlS2V5R3JhcGgge1xuICBjb25zdCBmaW5kTmFtZSA9IChzdGF0ZUNsYXNzOiBTdGF0ZUNsYXNzSW50ZXJuYWwpID0+IHtcbiAgICBjb25zdCBtZXRhID0gc3RhdGVDbGFzc2VzLmZpbmQoZyA9PiBnID09PSBzdGF0ZUNsYXNzKTtcblxuICAgIC8vIENhcmV0YWtlciBub3RlOiB3ZSBoYXZlIHN0aWxsIGxlZnQgdGhlIGB0eXBlb2ZgIGNvbmRpdGlvbiBpbiBvcmRlciB0byBhdm9pZFxuICAgIC8vIGNyZWF0aW5nIGEgYnJlYWtpbmcgY2hhbmdlIGZvciBwcm9qZWN0cyB0aGF0IHN0aWxsIHVzZSB0aGUgVmlldyBFbmdpbmUuXG4gICAgaWYgKCh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpICYmICFtZXRhKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBDaGlsZCBzdGF0ZSBub3QgZm91bmQ6ICR7c3RhdGVDbGFzc30uIFxcclxcbllvdSBtYXkgaGF2ZSBmb3Jnb3R0ZW4gdG8gYWRkIHN0YXRlcyB0byBtb2R1bGVgXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBtZXRhIVtNRVRBX0tFWV0hLm5hbWUhO1xuICB9O1xuXG4gIHJldHVybiBzdGF0ZUNsYXNzZXMucmVkdWNlPFN0YXRlS2V5R3JhcGg+KFxuICAgIChyZXN1bHQ6IFN0YXRlS2V5R3JhcGgsIHN0YXRlQ2xhc3M6IFN0YXRlQ2xhc3NJbnRlcm5hbCkgPT4ge1xuICAgICAgY29uc3QgeyBuYW1lLCBjaGlsZHJlbiB9ID0gc3RhdGVDbGFzc1tNRVRBX0tFWV0hO1xuICAgICAgcmVzdWx0W25hbWUhXSA9IChjaGlsZHJlbiB8fCBbXSkubWFwKGZpbmROYW1lKTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSxcbiAgICB7fVxuICApO1xufVxuXG4vKipcbiAqIEdpdmVuIGEgc3RhdGVzIGFycmF5LCByZXR1cm5zIG9iamVjdCBncmFwaFxuICogcmV0dXJuaW5nIHRoZSBuYW1lIGFuZCBzdGF0ZSBtZXRhZGF0YS4gRXhhbXBsZTpcbiAqXG4gKiAgY29uc3QgZ3JhcGggPSB7XG4gKiAgICBjYXJ0OiB7IG1ldGFkYXRhIH1cbiAqICB9O1xuICpcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5hbWVUb1N0YXRlKHN0YXRlczogU3RhdGVDbGFzc0ludGVybmFsW10pOiBQbGFpbk9iamVjdE9mPFN0YXRlQ2xhc3NJbnRlcm5hbD4ge1xuICByZXR1cm4gc3RhdGVzLnJlZHVjZTxQbGFpbk9iamVjdE9mPFN0YXRlQ2xhc3NJbnRlcm5hbD4+KFxuICAgIChyZXN1bHQ6IFBsYWluT2JqZWN0T2Y8U3RhdGVDbGFzc0ludGVybmFsPiwgc3RhdGVDbGFzczogU3RhdGVDbGFzc0ludGVybmFsKSA9PiB7XG4gICAgICBjb25zdCBtZXRhID0gc3RhdGVDbGFzc1tNRVRBX0tFWV0hO1xuICAgICAgcmVzdWx0W21ldGEubmFtZSFdID0gc3RhdGVDbGFzcztcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSxcbiAgICB7fVxuICApO1xufVxuXG4vKipcbiAqIEdpdmVuIGEgb2JqZWN0IHJlbGF0aW9uc2hpcCBncmFwaCB3aWxsIHJldHVybiB0aGUgZnVsbCBwYXRoXG4gKiBmb3IgdGhlIGNoaWxkIGl0ZW1zLiBFeGFtcGxlOlxuICpcbiAqICBjb25zdCBncmFwaCA9IHtcbiAqICAgIGNhcnQ6IFsnc2F2ZWQnXSxcbiAqICAgIHNhdmVkOiBbJ2l0ZW1zJ10sXG4gKiAgICBpdGVtczogW11cbiAqICB9O1xuICpcbiAqIHdvdWxkIHJldHVybjpcbiAqXG4gKiAgY29uc3QgciA9IHtcbiAqICAgIGNhcnQ6ICdjYXJ0JyxcbiAqICAgIHNhdmVkOiAnY2FydC5zYXZlZCcsXG4gKiAgICBpdGVtczogJ2NhcnQuc2F2ZWQuaXRlbXMnXG4gKiAgfTtcbiAqXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kRnVsbFBhcmVudFBhdGgoXG4gIG9iajogU3RhdGVLZXlHcmFwaCxcbiAgbmV3T2JqOiBQbGFpbk9iamVjdE9mPHN0cmluZz4gPSB7fVxuKTogUGxhaW5PYmplY3RPZjxzdHJpbmc+IHtcbiAgY29uc3QgdmlzaXQgPSAoY2hpbGQ6IFN0YXRlS2V5R3JhcGgsIGtleVRvRmluZDogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCA9PiB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gY2hpbGQpIHtcbiAgICAgIGlmIChjaGlsZC5oYXNPd25Qcm9wZXJ0eShrZXkpICYmIGNoaWxkW2tleV0uaW5kZXhPZihrZXlUb0ZpbmQpID49IDApIHtcbiAgICAgICAgY29uc3QgcGFyZW50ID0gdmlzaXQoY2hpbGQsIGtleSk7XG4gICAgICAgIHJldHVybiBwYXJlbnQgIT09IG51bGwgPyBgJHtwYXJlbnR9LiR7a2V5fWAgOiBrZXk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9O1xuXG4gIGZvciAoY29uc3Qga2V5IGluIG9iaikge1xuICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgY29uc3QgcGFyZW50ID0gdmlzaXQob2JqLCBrZXkpO1xuICAgICAgbmV3T2JqW2tleV0gPSBwYXJlbnQgPyBgJHtwYXJlbnR9LiR7a2V5fWAgOiBrZXk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG5ld09iajtcbn1cblxuLyoqXG4gKiBHaXZlbiBhIG9iamVjdCBncmFwaCwgaXQgd2lsbCByZXR1cm4gdGhlIGl0ZW1zIHRvcG9sb2dpY2FsbHkgc29ydGVkIEV4YW1wbGU6XG4gKlxuICogIGNvbnN0IGdyYXBoID0ge1xuICogICAgY2FydDogWydzYXZlZCddLFxuICogICAgc2F2ZWQ6IFsnaXRlbXMnXSxcbiAqICAgIGl0ZW1zOiBbXVxuICogIH07XG4gKlxuICogd291bGQgcmV0dXJuOlxuICpcbiAqICBjb25zdCByZXN1bHRzID0gW1xuICogICAgJ2l0ZW1zJyxcbiAqICAgICdzYXZlZCcsXG4gKiAgICAnY2FydCdcbiAqICBdO1xuICpcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvcG9sb2dpY2FsU29ydChncmFwaDogU3RhdGVLZXlHcmFwaCk6IHN0cmluZ1tdIHtcbiAgY29uc3Qgc29ydGVkOiBzdHJpbmdbXSA9IFtdO1xuICBjb25zdCB2aXNpdGVkOiBQbGFpbk9iamVjdE9mPGJvb2xlYW4+ID0ge307XG5cbiAgY29uc3QgdmlzaXQgPSAobmFtZTogc3RyaW5nLCBhbmNlc3RvcnM6IHN0cmluZ1tdID0gW10pID0+IHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoYW5jZXN0b3JzKSkge1xuICAgICAgYW5jZXN0b3JzID0gW107XG4gICAgfVxuXG4gICAgYW5jZXN0b3JzLnB1c2gobmFtZSk7XG4gICAgdmlzaXRlZFtuYW1lXSA9IHRydWU7XG5cbiAgICBncmFwaFtuYW1lXS5mb3JFYWNoKChkZXA6IHN0cmluZykgPT4ge1xuICAgICAgLy8gQ2FyZXRha2VyIG5vdGU6IHdlIGhhdmUgc3RpbGwgbGVmdCB0aGUgYHR5cGVvZmAgY29uZGl0aW9uIGluIG9yZGVyIHRvIGF2b2lkXG4gICAgICAvLyBjcmVhdGluZyBhIGJyZWFraW5nIGNoYW5nZSBmb3IgcHJvamVjdHMgdGhhdCBzdGlsbCB1c2UgdGhlIFZpZXcgRW5naW5lLlxuICAgICAgaWYgKCh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpICYmIGFuY2VzdG9ycy5pbmRleE9mKGRlcCkgPj0gMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYENpcmN1bGFyIGRlcGVuZGVuY3kgJyR7ZGVwfScgaXMgcmVxdWlyZWQgYnkgJyR7bmFtZX0nOiAke2FuY2VzdG9ycy5qb2luKCcgLT4gJyl9YFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBpZiAodmlzaXRlZFtkZXBdKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgdmlzaXQoZGVwLCBhbmNlc3RvcnMuc2xpY2UoMCkpO1xuICAgIH0pO1xuXG4gICAgaWYgKHNvcnRlZC5pbmRleE9mKG5hbWUpIDwgMCkge1xuICAgICAgc29ydGVkLnB1c2gobmFtZSk7XG4gICAgfVxuICB9O1xuXG4gIE9iamVjdC5rZXlzKGdyYXBoKS5mb3JFYWNoKGsgPT4gdmlzaXQoaykpO1xuXG4gIHJldHVybiBzb3J0ZWQucmV2ZXJzZSgpO1xufVxuXG4vKipcbiAqIFJldHVybnMgaWYgdGhlIHBhcmFtZXRlciBpcyBhIG9iamVjdCBvciBub3QuXG4gKlxuICogQGlnbm9yZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNPYmplY3Qob2JqOiBhbnkpIHtcbiAgcmV0dXJuICh0eXBlb2Ygb2JqID09PSAnb2JqZWN0JyAmJiBvYmogIT09IG51bGwpIHx8IHR5cGVvZiBvYmogPT09ICdmdW5jdGlvbic7XG59XG4iXX0=
|