@ngxs/store 3.7.1 → 3.7.2-dev.master-bc69722
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -16
- package/bundles/ngxs-store-internals-testing.umd.js +475 -0
- package/bundles/ngxs-store-internals-testing.umd.js.map +1 -0
- package/bundles/ngxs-store-internals-testing.umd.min.js +16 -0
- package/bundles/ngxs-store-internals-testing.umd.min.js.map +1 -0
- package/bundles/ngxs-store-internals.umd.js +380 -211
- package/bundles/ngxs-store-internals.umd.js.map +1 -1
- package/bundles/ngxs-store-internals.umd.min.js +1 -1
- package/bundles/ngxs-store-internals.umd.min.js.map +1 -1
- package/bundles/ngxs-store-operators.umd.js +310 -310
- package/bundles/ngxs-store-operators.umd.js.map +1 -1
- package/bundles/ngxs-store-operators.umd.min.js.map +1 -1
- package/bundles/ngxs-store.umd.js +4402 -4511
- package/bundles/ngxs-store.umd.js.map +1 -1
- package/bundles/ngxs-store.umd.min.js +1 -1
- package/bundles/ngxs-store.umd.min.js.map +1 -1
- package/esm2015/index.js +13 -13
- package/esm2015/internals/angular.js +46 -40
- package/esm2015/internals/decorator-injector-adapter.js +162 -0
- package/esm2015/internals/index.js +11 -10
- package/esm2015/internals/initial-state.js +34 -34
- package/esm2015/internals/internal-tokens.js +16 -16
- package/esm2015/internals/memoize.js +70 -70
- package/esm2015/internals/ngxs-bootstrapper.js +41 -41
- package/esm2015/internals/ngxs-store-internals.js +9 -9
- package/esm2015/internals/src/symbols.js +14 -14
- package/esm2015/internals/symbols.js +14 -14
- package/esm2015/internals/testing/fresh-platform.js +90 -0
- package/esm2015/internals/testing/helpers/ngxs-test.component.js +22 -0
- package/esm2015/internals/testing/helpers/ngxs-test.module.js +24 -0
- package/esm2015/internals/testing/index.js +7 -0
- package/esm2015/internals/testing/ngxs-store-internals-testing.js +9 -0
- package/esm2015/internals/testing/ngxs.setup.js +76 -0
- package/esm2015/internals/testing/symbol.js +29 -0
- package/esm2015/ngxs-store.js +24 -27
- package/esm2015/operators/append.js +31 -31
- package/esm2015/operators/compose.js +24 -24
- package/esm2015/operators/iif.js +56 -56
- package/esm2015/operators/index.js +18 -18
- package/esm2015/operators/insert-item.js +41 -41
- package/esm2015/operators/internals.js +5 -5
- package/esm2015/operators/ngxs-store-operators.js +8 -8
- package/esm2015/operators/patch.js +39 -39
- package/esm2015/operators/remove-item.js +34 -34
- package/esm2015/operators/update-item.js +52 -52
- package/esm2015/operators/utils.js +50 -50
- package/esm2015/src/actions/actions.js +39 -39
- package/esm2015/src/actions/symbols.js +39 -39
- package/esm2015/src/actions-stream.js +138 -140
- package/esm2015/src/configs/messages.config.js +79 -87
- package/esm2015/src/decorators/action.js +48 -44
- package/esm2015/src/decorators/select/select-factory.js +49 -46
- package/esm2015/src/decorators/select/select.js +60 -45
- package/esm2015/src/decorators/select/symbols.js +94 -50
- package/esm2015/src/decorators/selector/selector.js +59 -55
- package/esm2015/src/decorators/selector/symbols.js +5 -5
- package/esm2015/src/decorators/selector-options.js +34 -34
- package/esm2015/src/decorators/state.js +83 -75
- package/esm2015/src/execution/dispatch-outside-zone-ngxs-execution-strategy.js +101 -96
- package/esm2015/src/execution/internal-ngxs-execution-strategy.js +45 -45
- package/esm2015/src/execution/noop-ngxs-execution-strategy.js +27 -27
- package/esm2015/src/execution/symbols.js +29 -29
- package/esm2015/src/internal/dispatcher.js +217 -210
- package/esm2015/src/internal/internals.js +493 -489
- package/esm2015/src/internal/lifecycle-state-manager.js +129 -129
- package/esm2015/src/internal/state-context-factory.js +138 -138
- package/esm2015/src/internal/state-factory.js +449 -429
- package/esm2015/src/internal/state-operations.js +120 -125
- package/esm2015/src/internal/state-operators.js +33 -33
- package/esm2015/src/internal/state-stream.js +21 -21
- package/esm2015/src/ivy/ivy-enabled-in-dev-mode.js +28 -40
- package/esm2015/src/module.js +158 -172
- package/esm2015/src/modules/ngxs-feature.module.js +63 -63
- package/esm2015/src/modules/ngxs-root.module.js +52 -52
- package/esm2015/src/operators/leave-ngxs.js +58 -58
- package/esm2015/src/operators/of-action.js +191 -191
- package/esm2015/src/plugin-manager.js +70 -70
- package/esm2015/src/plugin_api.js +10 -10
- package/esm2015/src/public_api.js +29 -29
- package/esm2015/src/public_to_deprecate.js +64 -64
- package/esm2015/src/state-token/state-token.js +45 -45
- package/esm2015/src/state-token/symbols.js +5 -5
- package/esm2015/src/store.js +174 -174
- package/esm2015/src/symbols.js +217 -221
- package/esm2015/src/utils/compose.js +44 -44
- package/esm2015/src/utils/freeze.js +35 -35
- package/esm2015/src/utils/selector-utils.js +221 -221
- package/esm2015/src/utils/store-validators.js +60 -65
- package/esm2015/src/utils/utils.js +143 -143
- package/esm5/index.js +13 -13
- package/esm5/internals/angular.js +46 -40
- package/esm5/internals/decorator-injector-adapter.js +162 -0
- package/esm5/internals/index.js +11 -10
- package/esm5/internals/initial-state.js +45 -45
- package/esm5/internals/internal-tokens.js +16 -16
- package/esm5/internals/memoize.js +71 -71
- package/esm5/internals/ngxs-bootstrapper.js +56 -56
- package/esm5/internals/ngxs-store-internals.js +9 -9
- package/esm5/internals/src/symbols.js +14 -14
- package/esm5/internals/symbols.js +14 -14
- package/esm5/internals/testing/fresh-platform.js +101 -0
- package/esm5/internals/testing/helpers/ngxs-test.component.js +32 -0
- package/esm5/internals/testing/helpers/ngxs-test.module.js +32 -0
- package/esm5/internals/testing/index.js +7 -0
- package/esm5/internals/testing/ngxs-store-internals-testing.js +9 -0
- package/esm5/internals/testing/ngxs.setup.js +98 -0
- package/esm5/internals/testing/symbol.js +29 -0
- package/esm5/ngxs-store.js +24 -27
- package/esm5/operators/append.js +31 -31
- package/esm5/operators/compose.js +28 -28
- package/esm5/operators/iif.js +56 -56
- package/esm5/operators/index.js +18 -18
- package/esm5/operators/insert-item.js +41 -41
- package/esm5/operators/internals.js +5 -5
- package/esm5/operators/ngxs-store-operators.js +8 -8
- package/esm5/operators/patch.js +40 -40
- package/esm5/operators/remove-item.js +34 -34
- package/esm5/operators/update-item.js +52 -52
- package/esm5/operators/utils.js +50 -50
- package/esm5/src/actions/actions.js +62 -62
- package/esm5/src/actions/symbols.js +39 -39
- package/esm5/src/actions-stream.js +184 -186
- package/esm5/src/configs/messages.config.js +79 -104
- package/esm5/src/decorators/action.js +60 -56
- package/esm5/src/decorators/select/select-factory.js +50 -47
- package/esm5/src/decorators/select/select.js +65 -50
- package/esm5/src/decorators/select/symbols.js +95 -51
- package/esm5/src/decorators/selector/selector.js +59 -55
- package/esm5/src/decorators/selector/symbols.js +5 -5
- package/esm5/src/decorators/selector-options.js +34 -34
- package/esm5/src/decorators/state.js +84 -76
- package/esm5/src/execution/dispatch-outside-zone-ngxs-execution-strategy.js +121 -121
- package/esm5/src/execution/internal-ngxs-execution-strategy.js +54 -54
- package/esm5/src/execution/noop-ngxs-execution-strategy.js +41 -41
- package/esm5/src/execution/symbols.js +29 -29
- package/esm5/src/internal/dispatcher.js +253 -246
- package/esm5/src/internal/internals.js +495 -491
- package/esm5/src/internal/lifecycle-state-manager.js +177 -177
- package/esm5/src/internal/state-context-factory.js +146 -146
- package/esm5/src/internal/state-factory.js +575 -563
- package/esm5/src/internal/state-operations.js +130 -139
- package/esm5/src/internal/state-operators.js +34 -34
- package/esm5/src/internal/state-stream.js +25 -25
- package/esm5/src/ivy/ivy-enabled-in-dev-mode.js +28 -40
- package/esm5/src/module.js +201 -215
- package/esm5/src/modules/ngxs-feature.module.js +65 -65
- package/esm5/src/modules/ngxs-root.module.js +47 -47
- package/esm5/src/operators/leave-ngxs.js +58 -58
- package/esm5/src/operators/of-action.js +217 -217
- package/esm5/src/plugin-manager.js +82 -82
- package/esm5/src/plugin_api.js +10 -10
- package/esm5/src/public_api.js +29 -29
- package/esm5/src/public_to_deprecate.js +64 -64
- package/esm5/src/state-token/state-token.js +57 -57
- package/esm5/src/state-token/symbols.js +5 -5
- package/esm5/src/store.js +225 -225
- package/esm5/src/symbols.js +226 -230
- package/esm5/src/utils/compose.js +55 -55
- package/esm5/src/utils/freeze.js +35 -35
- package/esm5/src/utils/selector-utils.js +230 -230
- package/esm5/src/utils/store-validators.js +78 -86
- package/esm5/src/utils/utils.js +151 -151
- package/fesm2015/ngxs-store-internals-testing.js +216 -0
- package/fesm2015/ngxs-store-internals-testing.js.map +1 -0
- package/fesm2015/ngxs-store-internals.js +361 -194
- package/fesm2015/ngxs-store-internals.js.map +1 -1
- package/fesm2015/ngxs-store-operators.js +312 -312
- package/fesm2015/ngxs-store-operators.js.map +1 -1
- package/fesm2015/ngxs-store.js +3907 -3969
- package/fesm2015/ngxs-store.js.map +1 -1
- package/fesm5/ngxs-store-internals-testing.js +263 -0
- package/fesm5/ngxs-store-internals-testing.js.map +1 -0
- package/fesm5/ngxs-store-internals.js +386 -219
- package/fesm5/ngxs-store-internals.js.map +1 -1
- package/fesm5/ngxs-store-operators.js +316 -316
- package/fesm5/ngxs-store-operators.js.map +1 -1
- package/fesm5/ngxs-store.js +4399 -4503
- package/fesm5/ngxs-store.js.map +1 -1
- package/index.d.ts +8 -8
- package/internals/angular.d.ts +3 -3
- package/internals/decorator-injector-adapter.d.ts +8 -0
- package/internals/index.d.ts +7 -6
- package/internals/initial-state.d.ts +8 -8
- package/internals/internal-tokens.d.ts +9 -9
- package/internals/memoize.d.ts +9 -9
- package/internals/ngxs-bootstrapper.d.ts +13 -13
- package/internals/ngxs-store-internals.d.ts +4 -4
- package/internals/ngxs-store-internals.metadata.json +1 -1
- package/internals/src/symbols.d.ts +7 -7
- package/internals/symbols.d.ts +7 -7
- package/internals/testing/fresh-platform.d.ts +1 -0
- package/internals/testing/helpers/ngxs-test.component.d.ts +5 -0
- package/internals/testing/helpers/ngxs-test.module.d.ts +4 -0
- package/internals/testing/index.d.ts +3 -0
- package/internals/testing/ngxs-store-internals-testing.d.ts +4 -0
- package/internals/testing/ngxs-store-internals-testing.metadata.json +1 -0
- package/internals/testing/ngxs.setup.d.ts +7 -0
- package/internals/testing/package.json +13 -0
- package/internals/testing/symbol.d.ts +14 -0
- package/ngxs-store.d.ts +20 -23
- package/ngxs-store.metadata.json +1 -1
- package/operators/append.d.ts +6 -6
- package/operators/compose.d.ts +2 -2
- package/operators/iif.d.ts +11 -11
- package/operators/index.d.ts +13 -13
- package/operators/insert-item.d.ts +7 -7
- package/operators/internals.d.ts +2 -2
- package/operators/ngxs-store-operators.d.ts +4 -4
- package/operators/patch.d.ts +10 -10
- package/operators/remove-item.d.ts +7 -7
- package/operators/update-item.d.ts +10 -10
- package/operators/utils.d.ts +9 -9
- package/package.json +3 -3
- package/src/actions/actions.d.ts +15 -15
- package/src/actions/symbols.d.ts +21 -21
- package/src/actions-stream.d.ts +49 -49
- package/src/configs/messages.config.d.ts +11 -30
- package/src/decorators/action.d.ts +5 -5
- package/src/decorators/select/select-factory.d.ts +13 -14
- package/src/decorators/select/select.d.ts +4 -4
- package/src/decorators/select/symbols.d.ts +14 -10
- package/src/decorators/selector/selector.d.ts +5 -5
- package/src/decorators/selector/symbols.d.ts +4 -4
- package/src/decorators/selector-options.d.ts +5 -5
- package/src/decorators/state.d.ts +6 -6
- package/src/execution/dispatch-outside-zone-ngxs-execution-strategy.d.ts +11 -12
- package/src/execution/internal-ngxs-execution-strategy.d.ts +7 -7
- package/src/execution/noop-ngxs-execution-strategy.d.ts +5 -5
- package/src/execution/symbols.d.ts +6 -6
- package/src/internal/dispatcher.d.ts +32 -31
- package/src/internal/internals.d.ts +166 -167
- package/src/internal/lifecycle-state-manager.d.ts +20 -20
- package/src/internal/state-context-factory.d.ts +15 -15
- package/src/internal/state-factory.d.ts +57 -58
- package/src/internal/state-operations.d.ts +19 -21
- package/src/internal/state-operators.d.ts +2 -2
- package/src/internal/state-stream.d.ts +9 -9
- package/src/ivy/ivy-enabled-in-dev-mode.d.ts +6 -14
- package/src/module.d.ts +23 -23
- package/src/modules/ngxs-feature.module.d.ts +13 -13
- package/src/modules/ngxs-root.module.d.ts +13 -13
- package/src/operators/leave-ngxs.d.ts +7 -7
- package/src/operators/of-action.d.ts +43 -43
- package/src/plugin-manager.d.ts +10 -10
- package/src/plugin_api.d.ts +5 -5
- package/src/public_api.d.ts +17 -17
- package/src/public_to_deprecate.d.ts +21 -21
- package/src/state-token/state-token.d.ts +7 -7
- package/src/state-token/symbols.d.ts +5 -5
- package/src/store.d.ts +53 -53
- package/src/symbols.d.ts +135 -137
- package/src/utils/compose.d.ts +23 -23
- package/src/utils/freeze.d.ts +5 -5
- package/src/utils/selector-utils.d.ts +23 -23
- package/src/utils/store-validators.d.ts +7 -8
- package/src/utils/utils.d.ts +46 -46
- package/types/index.d.ts +2 -2
- package/esm2015/src/host-environment/host-environment.js +0 -31
- package/esm2015/src/internal/config-validator.js +0 -67
- package/esm2015/src/ivy/ensure-state-class-is-injectable.js +0 -34
- package/esm5/src/host-environment/host-environment.js +0 -29
- package/esm5/src/internal/config-validator.js +0 -76
- package/esm5/src/ivy/ensure-state-class-is-injectable.js +0 -34
- package/src/host-environment/host-environment.d.ts +0 -6
- package/src/internal/config-validator.d.ts +0 -10
- package/src/ivy/ensure-state-class-is-injectable.d.ts +0 -6
|
@@ -1,65 +1,60 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
-
*/
|
|
5
|
-
import { getStoreMetadata } from '../internal/internals';
|
|
6
|
-
import {
|
|
7
|
-
/**
|
|
8
|
-
* @abstract
|
|
9
|
-
*/
|
|
10
|
-
export class StoreValidators {
|
|
11
|
-
/**
|
|
12
|
-
* @param {?} name
|
|
13
|
-
* @return {?}
|
|
14
|
-
*/
|
|
15
|
-
static
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
if (false) {
|
|
62
|
-
/** @type {?} */
|
|
63
|
-
StoreValidators.stateNameRegex;
|
|
64
|
-
}
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUtdmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JlLyIsInNvdXJjZXMiOlsic3JjL3V0aWxzL3N0b3JlLXZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxnQkFBZ0IsRUFJakIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQ0wsZUFBZSxJQUFJLFFBQVEsRUFDM0IsZUFBZSxJQUFJLElBQUksRUFDeEIsTUFBTSw0QkFBNEIsQ0FBQzs7OztBQUVwQyxNQUFNLE9BQWdCLGVBQWU7Ozs7O0lBRzVCLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxJQUFZO1FBQzlDLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QyxDQUFDOzs7OztJQUVNLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxJQUFtQjtRQUNyRCxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1QsTUFBTSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZEO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDbkQ7SUFDSCxDQUFDOzs7Ozs7SUFFTSxNQUFNLENBQUMsc0JBQXNCLENBQ2xDLEtBQXlCLEVBQ3pCLFlBQTBCOztjQUVwQixJQUFJLEdBQWtCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7O2NBQ25ELFNBQVMsR0FBVyxtQkFBQSxtQkFBQSxJQUFJLEVBQUMsQ0FBQyxJQUFJLEVBQVU7O2NBQ3hDLGFBQWEsR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDO1FBQzdDLElBQUksYUFBYSxJQUFJLGFBQWEsS0FBSyxLQUFLLEVBQUU7WUFDNUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ3pGO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQzs7Ozs7SUFFTSxNQUFNLENBQUMsaUJBQWlCLENBQUMsS0FBeUI7O2NBQ2pELElBQUksR0FBa0IsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO1FBQ25ELElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxNQUFNLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ25EO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDOztBQXBDYSw4QkFBYyxHQUFXLElBQUksTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7OztJQUFyRSwrQkFBcUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIGdldFN0b3JlTWV0YWRhdGEsXHJcbiAgTWV0YURhdGFNb2RlbCxcclxuICBTdGF0ZUNsYXNzSW50ZXJuYWwsXHJcbiAgU3RhdGVzQnlOYW1lXHJcbn0gZnJvbSAnLi4vaW50ZXJuYWwvaW50ZXJuYWxzJztcclxuaW1wb3J0IHtcclxuICBDT05GSUdfTUVTU0FHRVMgYXMgTUVTU0FHRVMsXHJcbiAgVkFMSURBVElPTl9DT0RFIGFzIENPREVcclxufSBmcm9tICcuLi9jb25maWdzL21lc3NhZ2VzLmNvbmZpZyc7XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU3RvcmVWYWxpZGF0b3JzIHtcclxuICBwdWJsaWMgc3RhdGljIHN0YXRlTmFtZVJlZ2V4OiBSZWdFeHAgPSBuZXcgUmVnRXhwKCdeW2EtekEtWjAtOV9dKyQnKTtcclxuXHJcbiAgcHVibGljIHN0YXRpYyBzdGF0ZU5hbWVFcnJvck1lc3NhZ2UobmFtZTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gTUVTU0FHRVNbQ09ERS5TVEFURV9OQU1FXShuYW1lKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgY2hlY2tDb3JyZWN0U3RhdGVOYW1lKG5hbWU6IHN0cmluZyB8IG51bGwpIHtcclxuICAgIGlmICghbmFtZSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoTUVTU0FHRVNbQ09ERS5TVEFURV9OQU1FX1BST1BFUlRZXSgpKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMuc3RhdGVOYW1lUmVnZXgudGVzdChuYW1lKSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IodGhpcy5zdGF0ZU5hbWVFcnJvck1lc3NhZ2UobmFtZSkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBjaGVja1N0YXRlTmFtZUlzVW5pcXVlKFxyXG4gICAgc3RhdGU6IFN0YXRlQ2xhc3NJbnRlcm5hbCxcclxuICAgIHN0YXRlc0J5TmFtZTogU3RhdGVzQnlOYW1lXHJcbiAgKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IG1ldGE6IE1ldGFEYXRhTW9kZWwgPSB0aGlzLmdldFZhbGlkU3RhdGVNZXRhKHN0YXRlKTtcclxuICAgIGNvbnN0IHN0YXRlTmFtZTogc3RyaW5nID0gbWV0YSEubmFtZSBhcyBzdHJpbmc7XHJcbiAgICBjb25zdCBleGlzdGluZ1N0YXRlID0gc3RhdGVzQnlOYW1lW3N0YXRlTmFtZV07XHJcbiAgICBpZiAoZXhpc3RpbmdTdGF0ZSAmJiBleGlzdGluZ1N0YXRlICE9PSBzdGF0ZSkge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoTUVTU0FHRVNbQ09ERS5TVEFURV9VTklRVUVdKHN0YXRlTmFtZSwgc3RhdGUubmFtZSwgZXhpc3RpbmdTdGF0ZS5uYW1lKSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc3RhdGVOYW1lO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBnZXRWYWxpZFN0YXRlTWV0YShzdGF0ZTogU3RhdGVDbGFzc0ludGVybmFsKTogTWV0YURhdGFNb2RlbCB7XHJcbiAgICBjb25zdCBtZXRhOiBNZXRhRGF0YU1vZGVsID0gZ2V0U3RvcmVNZXRhZGF0YShzdGF0ZSk7XHJcbiAgICBpZiAoIW1ldGEpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKE1FU1NBR0VTW0NPREUuU1RBVEVfREVDT1JBVE9SXSgpKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbWV0YTtcclxuICB9XHJcbn1cclxuIl19
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
import { getStoreMetadata } from '../internal/internals';
|
|
6
|
+
import { throwStateDecoratorError, throwStateNameError, throwStateNamePropertyError, throwStateUniqueError } from '../configs/messages.config';
|
|
7
|
+
/**
|
|
8
|
+
* @abstract
|
|
9
|
+
*/
|
|
10
|
+
export class StoreValidators {
|
|
11
|
+
/**
|
|
12
|
+
* @param {?} name
|
|
13
|
+
* @return {?}
|
|
14
|
+
*/
|
|
15
|
+
static checkThatStateIsNamedCorrectly(name) {
|
|
16
|
+
if (!name) {
|
|
17
|
+
throwStateNamePropertyError();
|
|
18
|
+
}
|
|
19
|
+
else if (!this.stateNameRegex.test(name)) {
|
|
20
|
+
throwStateNameError(name);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* @param {?} stateName
|
|
25
|
+
* @param {?} state
|
|
26
|
+
* @param {?} statesByName
|
|
27
|
+
* @return {?}
|
|
28
|
+
*/
|
|
29
|
+
static checkThatStateNameIsUnique(stateName, state, statesByName) {
|
|
30
|
+
/** @type {?} */
|
|
31
|
+
const existingState = statesByName[stateName];
|
|
32
|
+
if (existingState && existingState !== state) {
|
|
33
|
+
throwStateUniqueError(stateName, state.name, existingState.name);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* @param {?} stateClasses
|
|
38
|
+
* @return {?}
|
|
39
|
+
*/
|
|
40
|
+
static checkThatStateClassesHaveBeenDecorated(stateClasses) {
|
|
41
|
+
stateClasses.forEach((/**
|
|
42
|
+
* @param {?} stateClass
|
|
43
|
+
* @return {?}
|
|
44
|
+
*/
|
|
45
|
+
(stateClass) => {
|
|
46
|
+
if (!getStoreMetadata(stateClass)) {
|
|
47
|
+
throwStateDecoratorError(stateClass.name);
|
|
48
|
+
}
|
|
49
|
+
}));
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
StoreValidators.stateNameRegex = new RegExp('^[a-zA-Z0-9_]+$');
|
|
53
|
+
if (false) {
|
|
54
|
+
/**
|
|
55
|
+
* @type {?}
|
|
56
|
+
* @private
|
|
57
|
+
*/
|
|
58
|
+
StoreValidators.stateNameRegex;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUtdmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JlLyIsInNvdXJjZXMiOlsic3JjL3V0aWxzL3N0b3JlLXZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBb0MsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRixPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLG1CQUFtQixFQUNuQiwyQkFBMkIsRUFDM0IscUJBQXFCLEVBQ3RCLE1BQU0sNEJBQTRCLENBQUM7Ozs7QUFFcEMsTUFBTSxPQUFnQixlQUFlOzs7OztJQUduQyxNQUFNLENBQUMsOEJBQThCLENBQUMsSUFBbUI7UUFDdkQsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNULDJCQUEyQixFQUFFLENBQUM7U0FDL0I7YUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDMUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDM0I7SUFDSCxDQUFDOzs7Ozs7O0lBRUQsTUFBTSxDQUFDLDBCQUEwQixDQUMvQixTQUFpQixFQUNqQixLQUF5QixFQUN6QixZQUEwQjs7Y0FFcEIsYUFBYSxHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUM7UUFDN0MsSUFBSSxhQUFhLElBQUksYUFBYSxLQUFLLEtBQUssRUFBRTtZQUM1QyxxQkFBcUIsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDbEU7SUFDSCxDQUFDOzs7OztJQUVELE1BQU0sQ0FBQyxzQ0FBc0MsQ0FDM0MsWUFBa0M7UUFFbEMsWUFBWSxDQUFDLE9BQU87Ozs7UUFBQyxDQUFDLFVBQThCLEVBQUUsRUFBRTtZQUN0RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQ2pDLHdCQUF3QixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUMzQztRQUNILENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7QUE3QmMsOEJBQWMsR0FBVyxJQUFJLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDOzs7Ozs7SUFBdEUsK0JBQXNFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0U3RvcmVNZXRhZGF0YSwgU3RhdGVDbGFzc0ludGVybmFsLCBTdGF0ZXNCeU5hbWUgfSBmcm9tICcuLi9pbnRlcm5hbC9pbnRlcm5hbHMnO1xuaW1wb3J0IHtcbiAgdGhyb3dTdGF0ZURlY29yYXRvckVycm9yLFxuICB0aHJvd1N0YXRlTmFtZUVycm9yLFxuICB0aHJvd1N0YXRlTmFtZVByb3BlcnR5RXJyb3IsXG4gIHRocm93U3RhdGVVbmlxdWVFcnJvclxufSBmcm9tICcuLi9jb25maWdzL21lc3NhZ2VzLmNvbmZpZyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTdG9yZVZhbGlkYXRvcnMge1xuICBwcml2YXRlIHN0YXRpYyBzdGF0ZU5hbWVSZWdleDogUmVnRXhwID0gbmV3IFJlZ0V4cCgnXlthLXpBLVowLTlfXSskJyk7XG5cbiAgc3RhdGljIGNoZWNrVGhhdFN0YXRlSXNOYW1lZENvcnJlY3RseShuYW1lOiBzdHJpbmcgfCBudWxsKTogdm9pZCB8IG5ldmVyIHtcbiAgICBpZiAoIW5hbWUpIHtcbiAgICAgIHRocm93U3RhdGVOYW1lUHJvcGVydHlFcnJvcigpO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMuc3RhdGVOYW1lUmVnZXgudGVzdChuYW1lKSkge1xuICAgICAgdGhyb3dTdGF0ZU5hbWVFcnJvcihuYW1lKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgY2hlY2tUaGF0U3RhdGVOYW1lSXNVbmlxdWUoXG4gICAgc3RhdGVOYW1lOiBzdHJpbmcsXG4gICAgc3RhdGU6IFN0YXRlQ2xhc3NJbnRlcm5hbCxcbiAgICBzdGF0ZXNCeU5hbWU6IFN0YXRlc0J5TmFtZVxuICApOiB2b2lkIHwgbmV2ZXIge1xuICAgIGNvbnN0IGV4aXN0aW5nU3RhdGUgPSBzdGF0ZXNCeU5hbWVbc3RhdGVOYW1lXTtcbiAgICBpZiAoZXhpc3RpbmdTdGF0ZSAmJiBleGlzdGluZ1N0YXRlICE9PSBzdGF0ZSkge1xuICAgICAgdGhyb3dTdGF0ZVVuaXF1ZUVycm9yKHN0YXRlTmFtZSwgc3RhdGUubmFtZSwgZXhpc3RpbmdTdGF0ZS5uYW1lKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgY2hlY2tUaGF0U3RhdGVDbGFzc2VzSGF2ZUJlZW5EZWNvcmF0ZWQoXG4gICAgc3RhdGVDbGFzc2VzOiBTdGF0ZUNsYXNzSW50ZXJuYWxbXVxuICApOiB2b2lkIHwgbmV2ZXIge1xuICAgIHN0YXRlQ2xhc3Nlcy5mb3JFYWNoKChzdGF0ZUNsYXNzOiBTdGF0ZUNsYXNzSW50ZXJuYWwpID0+IHtcbiAgICAgIGlmICghZ2V0U3RvcmVNZXRhZGF0YShzdGF0ZUNsYXNzKSkge1xuICAgICAgICB0aHJvd1N0YXRlRGVjb3JhdG9yRXJyb3Ioc3RhdGVDbGFzcy5uYW1lKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -1,143 +1,143 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* Returns the type from an action instance/class.
|
|
7
|
-
* @ignore
|
|
8
|
-
* @param {?} action
|
|
9
|
-
* @return {?}
|
|
10
|
-
*/
|
|
11
|
-
export function getActionTypeFromInstance(action) {
|
|
12
|
-
if (action.constructor && action.constructor.type) {
|
|
13
|
-
return action.constructor.type;
|
|
14
|
-
}
|
|
15
|
-
else {
|
|
16
|
-
return action.type;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Matches a action
|
|
21
|
-
* @ignore
|
|
22
|
-
* @param {?} action1
|
|
23
|
-
* @return {?}
|
|
24
|
-
*/
|
|
25
|
-
export function actionMatcher(action1) {
|
|
26
|
-
/** @type {?} */
|
|
27
|
-
const type1 = getActionTypeFromInstance(action1);
|
|
28
|
-
return (/**
|
|
29
|
-
* @param {?} action2
|
|
30
|
-
* @return {?}
|
|
31
|
-
*/
|
|
32
|
-
function (action2) {
|
|
33
|
-
return type1 === getActionTypeFromInstance(action2);
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Set a deeply nested value. Example:
|
|
38
|
-
*
|
|
39
|
-
* setValue({ foo: { bar: { eat: false } } },
|
|
40
|
-
* 'foo.bar.eat', true) //=> { foo: { bar: { eat: true } } }
|
|
41
|
-
*
|
|
42
|
-
* While it traverses it also creates new objects from top down.
|
|
43
|
-
*
|
|
44
|
-
* @ignore
|
|
45
|
-
* @type {?}
|
|
46
|
-
*/
|
|
47
|
-
export const setValue = (/**
|
|
48
|
-
* @param {?} obj
|
|
49
|
-
* @param {?} prop
|
|
50
|
-
* @param {?} val
|
|
51
|
-
* @return {?}
|
|
52
|
-
*/
|
|
53
|
-
(obj, prop, val) => {
|
|
54
|
-
obj = Object.assign({}, obj);
|
|
55
|
-
/** @type {?} */
|
|
56
|
-
const split = prop.split('.');
|
|
57
|
-
/** @type {?} */
|
|
58
|
-
const lastIndex = split.length - 1;
|
|
59
|
-
split.reduce((/**
|
|
60
|
-
* @param {?} acc
|
|
61
|
-
* @param {?} part
|
|
62
|
-
* @param {?} index
|
|
63
|
-
* @return {?}
|
|
64
|
-
*/
|
|
65
|
-
(acc, part, index) => {
|
|
66
|
-
if (index === lastIndex) {
|
|
67
|
-
acc[part] = val;
|
|
68
|
-
}
|
|
69
|
-
else {
|
|
70
|
-
acc[part] = Array.isArray(acc[part]) ? acc[part].slice() : Object.assign({}, acc[part]);
|
|
71
|
-
}
|
|
72
|
-
return acc && acc[part];
|
|
73
|
-
}), obj);
|
|
74
|
-
return obj;
|
|
75
|
-
});
|
|
76
|
-
/**
|
|
77
|
-
* Get a deeply nested value. Example:
|
|
78
|
-
*
|
|
79
|
-
* getValue({ foo: bar: [] }, 'foo.bar') //=> []
|
|
80
|
-
*
|
|
81
|
-
* @ignore
|
|
82
|
-
* @type {?}
|
|
83
|
-
*/
|
|
84
|
-
export const getValue = (/**
|
|
85
|
-
* @param {?} obj
|
|
86
|
-
* @param {?} prop
|
|
87
|
-
* @return {?}
|
|
88
|
-
*/
|
|
89
|
-
(obj, prop) => prop.split('.').reduce((/**
|
|
90
|
-
* @param {?} acc
|
|
91
|
-
* @param {?} part
|
|
92
|
-
* @return {?}
|
|
93
|
-
*/
|
|
94
|
-
(acc, part) => acc && acc[part]), obj));
|
|
95
|
-
/**
|
|
96
|
-
* Simple object check.
|
|
97
|
-
*
|
|
98
|
-
* isObject({a:1}) //=> true
|
|
99
|
-
* isObject(1) //=> false
|
|
100
|
-
*
|
|
101
|
-
* @ignore
|
|
102
|
-
* @type {?}
|
|
103
|
-
*/
|
|
104
|
-
export const isObject = (/**
|
|
105
|
-
* @param {?} item
|
|
106
|
-
* @return {?}
|
|
107
|
-
*/
|
|
108
|
-
(item) => {
|
|
109
|
-
return item && typeof item === 'object' && !Array.isArray(item);
|
|
110
|
-
});
|
|
111
|
-
/**
|
|
112
|
-
* Deep merge two objects.
|
|
113
|
-
*
|
|
114
|
-
* mergeDeep({a:1, b:{x: 1, y:2}}, {b:{x: 3}, c:4}) //=> {a:1, b:{x:3, y:2}, c:4}
|
|
115
|
-
*
|
|
116
|
-
* \@param base base object onto which `sources` will be applied
|
|
117
|
-
* @type {?}
|
|
118
|
-
*/
|
|
119
|
-
export const mergeDeep = (/**
|
|
120
|
-
* @param {?} base
|
|
121
|
-
* @param {...?} sources
|
|
122
|
-
* @return {?}
|
|
123
|
-
*/
|
|
124
|
-
(base, ...sources) => {
|
|
125
|
-
if (!sources.length)
|
|
126
|
-
return base;
|
|
127
|
-
/** @type {?} */
|
|
128
|
-
const source = sources.shift();
|
|
129
|
-
if (isObject(base) && isObject(source)) {
|
|
130
|
-
for (const key in source) {
|
|
131
|
-
if (isObject(source[key])) {
|
|
132
|
-
if (!base[key])
|
|
133
|
-
Object.assign(base, { [key]: {} });
|
|
134
|
-
mergeDeep(base[key], source[key]);
|
|
135
|
-
}
|
|
136
|
-
else {
|
|
137
|
-
Object.assign(base, { [key]: source[key] });
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
return mergeDeep(base, ...sources);
|
|
142
|
-
});
|
|
143
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Returns the type from an action instance/class.
|
|
7
|
+
* @ignore
|
|
8
|
+
* @param {?} action
|
|
9
|
+
* @return {?}
|
|
10
|
+
*/
|
|
11
|
+
export function getActionTypeFromInstance(action) {
|
|
12
|
+
if (action.constructor && action.constructor.type) {
|
|
13
|
+
return action.constructor.type;
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
return action.type;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Matches a action
|
|
21
|
+
* @ignore
|
|
22
|
+
* @param {?} action1
|
|
23
|
+
* @return {?}
|
|
24
|
+
*/
|
|
25
|
+
export function actionMatcher(action1) {
|
|
26
|
+
/** @type {?} */
|
|
27
|
+
const type1 = getActionTypeFromInstance(action1);
|
|
28
|
+
return (/**
|
|
29
|
+
* @param {?} action2
|
|
30
|
+
* @return {?}
|
|
31
|
+
*/
|
|
32
|
+
function (action2) {
|
|
33
|
+
return type1 === getActionTypeFromInstance(action2);
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Set a deeply nested value. Example:
|
|
38
|
+
*
|
|
39
|
+
* setValue({ foo: { bar: { eat: false } } },
|
|
40
|
+
* 'foo.bar.eat', true) //=> { foo: { bar: { eat: true } } }
|
|
41
|
+
*
|
|
42
|
+
* While it traverses it also creates new objects from top down.
|
|
43
|
+
*
|
|
44
|
+
* @ignore
|
|
45
|
+
* @type {?}
|
|
46
|
+
*/
|
|
47
|
+
export const setValue = (/**
|
|
48
|
+
* @param {?} obj
|
|
49
|
+
* @param {?} prop
|
|
50
|
+
* @param {?} val
|
|
51
|
+
* @return {?}
|
|
52
|
+
*/
|
|
53
|
+
(obj, prop, val) => {
|
|
54
|
+
obj = Object.assign({}, obj);
|
|
55
|
+
/** @type {?} */
|
|
56
|
+
const split = prop.split('.');
|
|
57
|
+
/** @type {?} */
|
|
58
|
+
const lastIndex = split.length - 1;
|
|
59
|
+
split.reduce((/**
|
|
60
|
+
* @param {?} acc
|
|
61
|
+
* @param {?} part
|
|
62
|
+
* @param {?} index
|
|
63
|
+
* @return {?}
|
|
64
|
+
*/
|
|
65
|
+
(acc, part, index) => {
|
|
66
|
+
if (index === lastIndex) {
|
|
67
|
+
acc[part] = val;
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
acc[part] = Array.isArray(acc[part]) ? acc[part].slice() : Object.assign({}, acc[part]);
|
|
71
|
+
}
|
|
72
|
+
return acc && acc[part];
|
|
73
|
+
}), obj);
|
|
74
|
+
return obj;
|
|
75
|
+
});
|
|
76
|
+
/**
|
|
77
|
+
* Get a deeply nested value. Example:
|
|
78
|
+
*
|
|
79
|
+
* getValue({ foo: bar: [] }, 'foo.bar') //=> []
|
|
80
|
+
*
|
|
81
|
+
* @ignore
|
|
82
|
+
* @type {?}
|
|
83
|
+
*/
|
|
84
|
+
export const getValue = (/**
|
|
85
|
+
* @param {?} obj
|
|
86
|
+
* @param {?} prop
|
|
87
|
+
* @return {?}
|
|
88
|
+
*/
|
|
89
|
+
(obj, prop) => prop.split('.').reduce((/**
|
|
90
|
+
* @param {?} acc
|
|
91
|
+
* @param {?} part
|
|
92
|
+
* @return {?}
|
|
93
|
+
*/
|
|
94
|
+
(acc, part) => acc && acc[part]), obj));
|
|
95
|
+
/**
|
|
96
|
+
* Simple object check.
|
|
97
|
+
*
|
|
98
|
+
* isObject({a:1}) //=> true
|
|
99
|
+
* isObject(1) //=> false
|
|
100
|
+
*
|
|
101
|
+
* @ignore
|
|
102
|
+
* @type {?}
|
|
103
|
+
*/
|
|
104
|
+
export const isObject = (/**
|
|
105
|
+
* @param {?} item
|
|
106
|
+
* @return {?}
|
|
107
|
+
*/
|
|
108
|
+
(item) => {
|
|
109
|
+
return item && typeof item === 'object' && !Array.isArray(item);
|
|
110
|
+
});
|
|
111
|
+
/**
|
|
112
|
+
* Deep merge two objects.
|
|
113
|
+
*
|
|
114
|
+
* mergeDeep({a:1, b:{x: 1, y:2}}, {b:{x: 3}, c:4}) //=> {a:1, b:{x:3, y:2}, c:4}
|
|
115
|
+
*
|
|
116
|
+
* \@param base base object onto which `sources` will be applied
|
|
117
|
+
* @type {?}
|
|
118
|
+
*/
|
|
119
|
+
export const mergeDeep = (/**
|
|
120
|
+
* @param {?} base
|
|
121
|
+
* @param {...?} sources
|
|
122
|
+
* @return {?}
|
|
123
|
+
*/
|
|
124
|
+
(base, ...sources) => {
|
|
125
|
+
if (!sources.length)
|
|
126
|
+
return base;
|
|
127
|
+
/** @type {?} */
|
|
128
|
+
const source = sources.shift();
|
|
129
|
+
if (isObject(base) && isObject(source)) {
|
|
130
|
+
for (const key in source) {
|
|
131
|
+
if (isObject(source[key])) {
|
|
132
|
+
if (!base[key])
|
|
133
|
+
Object.assign(base, { [key]: {} });
|
|
134
|
+
mergeDeep(base[key], source[key]);
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
Object.assign(base, { [key]: source[key] });
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return mergeDeep(base, ...sources);
|
|
142
|
+
});
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS8iLCJzb3VyY2VzIjpbInNyYy91dGlscy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBSUEsTUFBTSxVQUFVLHlCQUF5QixDQUFDLE1BQVc7SUFDbkQsSUFBSSxNQUFNLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFO1FBQ2pELE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7S0FDaEM7U0FBTTtRQUNMLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQztLQUNwQjtBQUNILENBQUM7Ozs7Ozs7QUFNRCxNQUFNLFVBQVUsYUFBYSxDQUFDLE9BQVk7O1VBQ2xDLEtBQUssR0FBRyx5QkFBeUIsQ0FBQyxPQUFPLENBQUM7SUFFaEQ7Ozs7SUFBTyxVQUFTLE9BQVk7UUFDMUIsT0FBTyxLQUFLLEtBQUsseUJBQXlCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEQsQ0FBQyxFQUFDO0FBQ0osQ0FBQzs7Ozs7Ozs7Ozs7O0FBWUQsTUFBTSxPQUFPLFFBQVE7Ozs7OztBQUFHLENBQUMsR0FBUSxFQUFFLElBQVksRUFBRSxHQUFRLEVBQUUsRUFBRTtJQUMzRCxHQUFHLHFCQUFRLEdBQUcsQ0FBRSxDQUFDOztVQUVYLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQzs7VUFDdkIsU0FBUyxHQUFHLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQztJQUVsQyxLQUFLLENBQUMsTUFBTTs7Ozs7O0lBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQ2hDLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUN2QixHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDO1NBQ2pCO2FBQU07WUFDTCxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsbUJBQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFFLENBQUM7U0FDN0U7UUFFRCxPQUFPLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQyxHQUFFLEdBQUcsQ0FBQyxDQUFDO0lBRVIsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLENBQUE7Ozs7Ozs7OztBQVNELE1BQU0sT0FBTyxRQUFROzs7OztBQUFHLENBQUMsR0FBUSxFQUFFLElBQVksRUFBTyxFQUFFLENBQ3RELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTTs7Ozs7QUFBQyxDQUFDLEdBQVEsRUFBRSxJQUFZLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUUsR0FBRyxDQUFDLENBQUE7Ozs7Ozs7Ozs7QUFVM0UsTUFBTSxPQUFPLFFBQVE7Ozs7QUFBRyxDQUFDLElBQVMsRUFBRSxFQUFFO0lBQ3BDLE9BQU8sSUFBSSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDbEUsQ0FBQyxDQUFBOzs7Ozs7Ozs7QUFTRCxNQUFNLE9BQU8sU0FBUzs7Ozs7QUFBRyxDQUFDLElBQVMsRUFBRSxHQUFHLE9BQWMsRUFBTyxFQUFFO0lBQzdELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTTtRQUFFLE9BQU8sSUFBSSxDQUFDOztVQUMzQixNQUFNLEdBQUcsT0FBTyxDQUFDLEtBQUssRUFBRTtJQUU5QixJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDdEMsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLEVBQUU7WUFDeEIsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO29CQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNuRCxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQ25DO2lCQUFNO2dCQUNMLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQzdDO1NBQ0Y7S0FDRjtJQUVELE9BQU8sU0FBUyxDQUFDLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDO0FBQ3JDLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmV0dXJucyB0aGUgdHlwZSBmcm9tIGFuIGFjdGlvbiBpbnN0YW5jZS9jbGFzcy5cbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFjdGlvblR5cGVGcm9tSW5zdGFuY2UoYWN0aW9uOiBhbnkpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBpZiAoYWN0aW9uLmNvbnN0cnVjdG9yICYmIGFjdGlvbi5jb25zdHJ1Y3Rvci50eXBlKSB7XG4gICAgcmV0dXJuIGFjdGlvbi5jb25zdHJ1Y3Rvci50eXBlO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBhY3Rpb24udHlwZTtcbiAgfVxufVxuXG4vKipcbiAqIE1hdGNoZXMgYSBhY3Rpb25cbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFjdGlvbk1hdGNoZXIoYWN0aW9uMTogYW55KSB7XG4gIGNvbnN0IHR5cGUxID0gZ2V0QWN0aW9uVHlwZUZyb21JbnN0YW5jZShhY3Rpb24xKTtcblxuICByZXR1cm4gZnVuY3Rpb24oYWN0aW9uMjogYW55KSB7XG4gICAgcmV0dXJuIHR5cGUxID09PSBnZXRBY3Rpb25UeXBlRnJvbUluc3RhbmNlKGFjdGlvbjIpO1xuICB9O1xufVxuXG4vKipcbiAqIFNldCBhIGRlZXBseSBuZXN0ZWQgdmFsdWUuIEV4YW1wbGU6XG4gKlxuICogICBzZXRWYWx1ZSh7IGZvbzogeyBiYXI6IHsgZWF0OiBmYWxzZSB9IH0gfSxcbiAqICAgICAgJ2Zvby5iYXIuZWF0JywgdHJ1ZSkgLy89PiB7IGZvbzogeyBiYXI6IHsgZWF0OiB0cnVlIH0gfSB9XG4gKlxuICogV2hpbGUgaXQgdHJhdmVyc2VzIGl0IGFsc28gY3JlYXRlcyBuZXcgb2JqZWN0cyBmcm9tIHRvcCBkb3duLlxuICpcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGNvbnN0IHNldFZhbHVlID0gKG9iajogYW55LCBwcm9wOiBzdHJpbmcsIHZhbDogYW55KSA9PiB7XG4gIG9iaiA9IHsgLi4ub2JqIH07XG5cbiAgY29uc3Qgc3BsaXQgPSBwcm9wLnNwbGl0KCcuJyk7XG4gIGNvbnN0IGxhc3RJbmRleCA9IHNwbGl0Lmxlbmd0aCAtIDE7XG5cbiAgc3BsaXQucmVkdWNlKChhY2MsIHBhcnQsIGluZGV4KSA9PiB7XG4gICAgaWYgKGluZGV4ID09PSBsYXN0SW5kZXgpIHtcbiAgICAgIGFjY1twYXJ0XSA9IHZhbDtcbiAgICB9IGVsc2Uge1xuICAgICAgYWNjW3BhcnRdID0gQXJyYXkuaXNBcnJheShhY2NbcGFydF0pID8gYWNjW3BhcnRdLnNsaWNlKCkgOiB7IC4uLmFjY1twYXJ0XSB9O1xuICAgIH1cblxuICAgIHJldHVybiBhY2MgJiYgYWNjW3BhcnRdO1xuICB9LCBvYmopO1xuXG4gIHJldHVybiBvYmo7XG59O1xuXG4vKipcbiAqIEdldCBhIGRlZXBseSBuZXN0ZWQgdmFsdWUuIEV4YW1wbGU6XG4gKlxuICogICAgZ2V0VmFsdWUoeyBmb286IGJhcjogW10gfSwgJ2Zvby5iYXInKSAvLz0+IFtdXG4gKlxuICogQGlnbm9yZVxuICovXG5leHBvcnQgY29uc3QgZ2V0VmFsdWUgPSAob2JqOiBhbnksIHByb3A6IHN0cmluZyk6IGFueSA9PlxuICBwcm9wLnNwbGl0KCcuJykucmVkdWNlKChhY2M6IGFueSwgcGFydDogc3RyaW5nKSA9PiBhY2MgJiYgYWNjW3BhcnRdLCBvYmopO1xuXG4vKipcbiAqIFNpbXBsZSBvYmplY3QgY2hlY2suXG4gKlxuICogICAgaXNPYmplY3Qoe2E6MX0pIC8vPT4gdHJ1ZVxuICogICAgaXNPYmplY3QoMSkgLy89PiBmYWxzZVxuICpcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGNvbnN0IGlzT2JqZWN0ID0gKGl0ZW06IGFueSkgPT4ge1xuICByZXR1cm4gaXRlbSAmJiB0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkoaXRlbSk7XG59O1xuXG4vKipcbiAqIERlZXAgbWVyZ2UgdHdvIG9iamVjdHMuXG4gKlxuICogICAgbWVyZ2VEZWVwKHthOjEsIGI6e3g6IDEsIHk6Mn19LCB7Yjp7eDogM30sIGM6NH0pIC8vPT4ge2E6MSwgYjp7eDozLCB5OjJ9LCBjOjR9XG4gKlxuICogQHBhcmFtIGJhc2UgYmFzZSBvYmplY3Qgb250byB3aGljaCBgc291cmNlc2Agd2lsbCBiZSBhcHBsaWVkXG4gKi9cbmV4cG9ydCBjb25zdCBtZXJnZURlZXAgPSAoYmFzZTogYW55LCAuLi5zb3VyY2VzOiBhbnlbXSk6IGFueSA9PiB7XG4gIGlmICghc291cmNlcy5sZW5ndGgpIHJldHVybiBiYXNlO1xuICBjb25zdCBzb3VyY2UgPSBzb3VyY2VzLnNoaWZ0KCk7XG5cbiAgaWYgKGlzT2JqZWN0KGJhc2UpICYmIGlzT2JqZWN0KHNvdXJjZSkpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBzb3VyY2UpIHtcbiAgICAgIGlmIChpc09iamVjdChzb3VyY2Vba2V5XSkpIHtcbiAgICAgICAgaWYgKCFiYXNlW2tleV0pIE9iamVjdC5hc3NpZ24oYmFzZSwgeyBba2V5XToge30gfSk7XG4gICAgICAgIG1lcmdlRGVlcChiYXNlW2tleV0sIHNvdXJjZVtrZXldKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24oYmFzZSwgeyBba2V5XTogc291cmNlW2tleV0gfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1lcmdlRGVlcChiYXNlLCAuLi5zb3VyY2VzKTtcbn07XG4iXX0=
|
package/esm5/index.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* The public api for consumers of @ngxs/store
|
|
7
|
-
*/
|
|
8
|
-
export { NgxsModule, Action, Store, State, Select, SelectorOptions, Actions, getSelectorMetadata, getStoreMetadata, ensureStoreMetadata, ensureSelectorMetadata, ofAction, ofActionDispatched, ofActionSuccessful, ofActionCanceled, ofActionErrored, ofActionCompleted, NgxsSimpleChange, Selector, getActionTypeFromInstance, actionMatcher, createSelector, NoopNgxsExecutionStrategy, StateToken } from './src/public_api';
|
|
9
|
-
/**
|
|
10
|
-
* The plugin api for the stuff that a plugins needs
|
|
11
|
-
*/
|
|
12
|
-
export { NGXS_PLUGINS, StateStream, setValue, getValue, InitState, UpdateState } from './src/plugin_api';
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* The public api for consumers of @ngxs/store
|
|
7
|
+
*/
|
|
8
|
+
export { NgxsModule, Action, Store, State, Select, SelectorOptions, Actions, getSelectorMetadata, getStoreMetadata, ensureStoreMetadata, ensureSelectorMetadata, ofAction, ofActionDispatched, ofActionSuccessful, ofActionCanceled, ofActionErrored, ofActionCompleted, NgxsSimpleChange, Selector, getActionTypeFromInstance, actionMatcher, createSelector, NoopNgxsExecutionStrategy, StateToken } from './src/public_api';
|
|
9
|
+
/**
|
|
10
|
+
* The plugin api for the stuff that a plugins needs
|
|
11
|
+
*/
|
|
12
|
+
export { NGXS_PLUGINS, StateStream, setValue, getValue, InitState, UpdateState } from './src/plugin_api';
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS8iLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFHQSw0WUFBYyxrQkFBa0IsQ0FBQzs7OztBQUtqQyxzRkFBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIHB1YmxpYyBhcGkgZm9yIGNvbnN1bWVycyBvZiBAbmd4cy9zdG9yZVxuICovXG5leHBvcnQgKiBmcm9tICcuL3NyYy9wdWJsaWNfYXBpJztcblxuLyoqXG4gKiBUaGUgcGx1Z2luIGFwaSBmb3IgdGhlIHN0dWZmIHRoYXQgYSBwbHVnaW5zIG5lZWRzXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vc3JjL3BsdWdpbl9hcGknO1xuIl19
|
|
@@ -1,40 +1,46 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
-
*/
|
|
5
|
-
import { getPlatform, COMPILER_OPTIONS } from '@angular/core';
|
|
6
|
-
import { memoize } from './memoize';
|
|
7
|
-
/**
|
|
8
|
-
* @return {?}
|
|
9
|
-
*/
|
|
10
|
-
function _isAngularInTestMode() {
|
|
11
|
-
/** @type {?} */
|
|
12
|
-
var platformRef = getPlatform();
|
|
13
|
-
if (!platformRef)
|
|
14
|
-
return false;
|
|
15
|
-
/** @type {?} */
|
|
16
|
-
var compilerOptions = platformRef.injector.get(COMPILER_OPTIONS, null);
|
|
17
|
-
if (!compilerOptions)
|
|
18
|
-
return false;
|
|
19
|
-
/** @type {?} */
|
|
20
|
-
var isInTestMode = compilerOptions.some((/**
|
|
21
|
-
* @param {?} item
|
|
22
|
-
* @return {?}
|
|
23
|
-
*/
|
|
24
|
-
function (item) {
|
|
25
|
-
/** @type {?} */
|
|
26
|
-
var providers = (item && item.providers) || [];
|
|
27
|
-
return providers.some((/**
|
|
28
|
-
* @param {?} provider
|
|
29
|
-
* @return {?}
|
|
30
|
-
*/
|
|
31
|
-
function (provider) {
|
|
32
|
-
return ((provider && provider.provide && provider.provide.name === 'MockNgModuleResolver') ||
|
|
33
|
-
false);
|
|
34
|
-
}));
|
|
35
|
-
}));
|
|
36
|
-
return isInTestMode;
|
|
37
|
-
}
|
|
38
|
-
/** @type {?} */
|
|
39
|
-
export var isAngularInTestMode =
|
|
40
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview added by tsickle
|
|
3
|
+
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
+
*/
|
|
5
|
+
import { getPlatform, COMPILER_OPTIONS } from '@angular/core';
|
|
6
|
+
import { memoize } from './memoize';
|
|
7
|
+
/**
|
|
8
|
+
* @return {?}
|
|
9
|
+
*/
|
|
10
|
+
function _isAngularInTestMode() {
|
|
11
|
+
/** @type {?} */
|
|
12
|
+
var platformRef = getPlatform();
|
|
13
|
+
if (!platformRef)
|
|
14
|
+
return false;
|
|
15
|
+
/** @type {?} */
|
|
16
|
+
var compilerOptions = platformRef.injector.get(COMPILER_OPTIONS, null);
|
|
17
|
+
if (!compilerOptions)
|
|
18
|
+
return false;
|
|
19
|
+
/** @type {?} */
|
|
20
|
+
var isInTestMode = compilerOptions.some((/**
|
|
21
|
+
* @param {?} item
|
|
22
|
+
* @return {?}
|
|
23
|
+
*/
|
|
24
|
+
function (item) {
|
|
25
|
+
/** @type {?} */
|
|
26
|
+
var providers = (item && item.providers) || [];
|
|
27
|
+
return providers.some((/**
|
|
28
|
+
* @param {?} provider
|
|
29
|
+
* @return {?}
|
|
30
|
+
*/
|
|
31
|
+
function (provider) {
|
|
32
|
+
return ((provider && provider.provide && provider.provide.name === 'MockNgModuleResolver') ||
|
|
33
|
+
false);
|
|
34
|
+
}));
|
|
35
|
+
}));
|
|
36
|
+
return isInTestMode;
|
|
37
|
+
}
|
|
38
|
+
/** @type {?} */
|
|
39
|
+
export var isAngularInTestMode =
|
|
40
|
+
// Caretaker note: we have still left the `typeof` condition in order to avoid
|
|
41
|
+
// creating a breaking change for projects that still use the View Engine.
|
|
42
|
+
typeof ngDevMode === 'undefined' || ngDevMode ? memoize(_isAngularInTestMode) : (/**
|
|
43
|
+
* @return {?}
|
|
44
|
+
*/
|
|
45
|
+
function () { return false; });
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JlL2ludGVybmFscy8iLCJzb3VyY2VzIjpbImFuZ3VsYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQWdDLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7QUFRcEMsU0FBUyxvQkFBb0I7O1FBQ3JCLFdBQVcsR0FBdUIsV0FBVyxFQUFFO0lBQ3JELElBQUksQ0FBQyxXQUFXO1FBQUUsT0FBTyxLQUFLLENBQUM7O1FBQ3pCLGVBQWUsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUM7SUFDeEUsSUFBSSxDQUFDLGVBQWU7UUFBRSxPQUFPLEtBQUssQ0FBQzs7UUFDN0IsWUFBWSxHQUFHLGVBQWUsQ0FBQyxJQUFJOzs7O0lBQUMsVUFBQyxJQUFxQjs7WUFDeEQsU0FBUyxHQUFHLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFO1FBQ2hELE9BQU8sU0FBUyxDQUFDLElBQUk7Ozs7UUFBQyxVQUFDLFFBQWE7WUFDbEMsT0FBTyxDQUNMLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxPQUFPLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssc0JBQXNCLENBQUM7Z0JBQ2xGLEtBQUssQ0FDTixDQUFDO1FBQ0osQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDLEVBQUM7SUFDRixPQUFPLFlBQVksQ0FBQztBQUN0QixDQUFDOztBQUVELE1BQU0sS0FBTyxtQkFBbUI7QUFDOUIsOEVBQThFO0FBQzlFLDBFQUEwRTtBQUMxRSxPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDOzs7QUFBQyxjQUFNLE9BQUEsS0FBSyxFQUFMLENBQUssQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldFBsYXRmb3JtLCBDT01QSUxFUl9PUFRJT05TLCBDb21waWxlck9wdGlvbnMsIFBsYXRmb3JtUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBtZW1vaXplIH0gZnJvbSAnLi9tZW1vaXplJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gV2lsbCBiZSBwcm92aWRlZCB0aHJvdWdoIFRlcnNlciBnbG9iYWwgZGVmaW5pdGlvbnMgYnkgQW5ndWxhciBDTElcbiAqIGR1cmluZyB0aGUgcHJvZHVjdGlvbiBidWlsZC4gVGhpcyBpcyBob3cgQW5ndWxhciBkb2VzIHRyZWUtc2hha2luZyBpbnRlcm5hbGx5LlxuICovXG5kZWNsYXJlIGNvbnN0IG5nRGV2TW9kZTogYm9vbGVhbjtcblxuZnVuY3Rpb24gX2lzQW5ndWxhckluVGVzdE1vZGUoKTogYm9vbGVhbiB7XG4gIGNvbnN0IHBsYXRmb3JtUmVmOiBQbGF0Zm9ybVJlZiB8IG51bGwgPSBnZXRQbGF0Zm9ybSgpO1xuICBpZiAoIXBsYXRmb3JtUmVmKSByZXR1cm4gZmFsc2U7XG4gIGNvbnN0IGNvbXBpbGVyT3B0aW9ucyA9IHBsYXRmb3JtUmVmLmluamVjdG9yLmdldChDT01QSUxFUl9PUFRJT05TLCBudWxsKTtcbiAgaWYgKCFjb21waWxlck9wdGlvbnMpIHJldHVybiBmYWxzZTtcbiAgY29uc3QgaXNJblRlc3RNb2RlID0gY29tcGlsZXJPcHRpb25zLnNvbWUoKGl0ZW06IENvbXBpbGVyT3B0aW9ucykgPT4ge1xuICAgIGNvbnN0IHByb3ZpZGVycyA9IChpdGVtICYmIGl0ZW0ucHJvdmlkZXJzKSB8fCBbXTtcbiAgICByZXR1cm4gcHJvdmlkZXJzLnNvbWUoKHByb3ZpZGVyOiBhbnkpID0+IHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIChwcm92aWRlciAmJiBwcm92aWRlci5wcm92aWRlICYmIHByb3ZpZGVyLnByb3ZpZGUubmFtZSA9PT0gJ01vY2tOZ01vZHVsZVJlc29sdmVyJykgfHxcbiAgICAgICAgZmFsc2VcbiAgICAgICk7XG4gICAgfSk7XG4gIH0pO1xuICByZXR1cm4gaXNJblRlc3RNb2RlO1xufVxuXG5leHBvcnQgY29uc3QgaXNBbmd1bGFySW5UZXN0TW9kZSA9XG4gIC8vIENhcmV0YWtlciBub3RlOiB3ZSBoYXZlIHN0aWxsIGxlZnQgdGhlIGB0eXBlb2ZgIGNvbmRpdGlvbiBpbiBvcmRlciB0byBhdm9pZFxuICAvLyBjcmVhdGluZyBhIGJyZWFraW5nIGNoYW5nZSBmb3IgcHJvamVjdHMgdGhhdCBzdGlsbCB1c2UgdGhlIFZpZXcgRW5naW5lLlxuICB0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUgPyBtZW1vaXplKF9pc0FuZ3VsYXJJblRlc3RNb2RlKSA6ICgpID0+IGZhbHNlO1xuIl19
|