@ngxs/store 3.7.6-dev.master-fb318b1 → 3.7.6-dev.master-dcdd391
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/bundles/ngxs-store-internals-testing.umd.js +409 -420
- package/bundles/ngxs-store-internals-testing.umd.js.map +1 -1
- package/bundles/ngxs-store-internals.umd.js +48 -117
- package/bundles/ngxs-store-internals.umd.js.map +1 -1
- package/bundles/ngxs-store-operators.umd.js +60 -402
- package/bundles/ngxs-store-operators.umd.js.map +1 -1
- package/bundles/ngxs-store.umd.js +1041 -3269
- package/bundles/ngxs-store.umd.js.map +1 -1
- package/esm2015/index.js +7 -7
- package/esm2015/internals/angular.js +1 -8
- package/esm2015/internals/index.js +2 -6
- package/esm2015/internals/initial-state.js +1 -21
- package/esm2015/internals/internal-tokens.js +4 -15
- package/esm2015/internals/memoize.js +8 -33
- package/esm2015/internals/ngxs-bootstrapper.js +7 -20
- package/esm2015/internals/ngxs-store-internals.js +2 -6
- package/esm2015/internals/src/symbols.js +2 -14
- package/esm2015/internals/symbols.js +2 -14
- package/esm2015/internals/testing/fresh-platform.js +13 -53
- package/esm2015/internals/testing/helpers/ngxs-test.component.js +11 -17
- package/esm2015/internals/testing/helpers/ngxs-test.module.js +13 -16
- package/esm2015/internals/testing/index.js +1 -5
- package/esm2015/internals/testing/ngxs-store-internals-testing.js +2 -6
- package/esm2015/internals/testing/ngxs.setup.js +1 -31
- package/esm2015/internals/testing/skip-console-logging.js +7 -42
- package/esm2015/internals/testing/symbol.js +2 -29
- package/esm2015/ngxs-store.js +2 -23
- package/esm2015/operators/append.js +7 -18
- package/esm2015/operators/compose.js +4 -22
- package/esm2015/operators/iif.js +12 -30
- package/esm2015/operators/index.js +1 -5
- package/esm2015/operators/insert-item.js +10 -22
- package/esm2015/operators/ngxs-store-operators.js +2 -6
- package/esm2015/operators/patch.js +5 -22
- package/esm2015/operators/remove-item.js +5 -17
- package/esm2015/operators/types.js +2 -5
- package/esm2015/operators/update-item.js +12 -26
- package/esm2015/operators/utils.js +1 -32
- package/esm2015/src/actions/actions.js +1 -18
- package/esm2015/src/actions/symbols.js +2 -39
- package/esm2015/src/actions-stream.js +24 -90
- package/esm2015/src/configs/messages.config.js +1 -44
- package/esm2015/src/decorators/action.js +3 -18
- package/esm2015/src/decorators/select/select-factory.js +10 -27
- package/esm2015/src/decorators/select/select.js +3 -22
- package/esm2015/src/decorators/select/symbols.js +4 -25
- package/esm2015/src/decorators/selector/selector.js +5 -29
- package/esm2015/src/decorators/selector/symbols.js +2 -5
- package/esm2015/src/decorators/selector-options.js +4 -18
- package/esm2015/src/decorators/state.js +5 -44
- package/esm2015/src/dev-features/ngxs-development.module.js +8 -12
- package/esm2015/src/dev-features/ngxs-unhandled-actions-logger.js +12 -37
- package/esm2015/src/dev-features/symbols.js +2 -18
- package/esm2015/src/execution/dispatch-outside-zone-ngxs-execution-strategy.js +10 -56
- package/esm2015/src/execution/internal-ngxs-execution-strategy.js +10 -32
- package/esm2015/src/execution/noop-ngxs-execution-strategy.js +7 -19
- package/esm2015/src/execution/symbols.js +3 -32
- package/esm2015/src/internal/dispatcher.js +26 -121
- package/esm2015/src/internal/error-handler.js +18 -72
- package/esm2015/src/internal/internals.js +24 -244
- package/esm2015/src/internal/lifecycle-state-manager.js +19 -117
- package/esm2015/src/internal/state-context-factory.js +9 -67
- package/esm2015/src/internal/state-factory.js +42 -225
- package/esm2015/src/internal/state-operations.js +19 -80
- package/esm2015/src/internal/state-operators.js +6 -20
- package/esm2015/src/internal/state-stream.js +7 -13
- package/esm2015/src/ivy/ivy-enabled-in-dev-mode.js +7 -17
- package/esm2015/src/module.js +12 -47
- package/esm2015/src/modules/ngxs-feature.module.js +18 -36
- package/esm2015/src/modules/ngxs-root.module.js +18 -26
- package/esm2015/src/operators/leave-ngxs.js +8 -43
- package/esm2015/src/operators/of-action.js +16 -111
- package/esm2015/src/plugin-manager.js +17 -50
- package/esm2015/src/plugin_api.js +1 -5
- package/esm2015/src/private_api.js +3 -0
- package/esm2015/src/public_api.js +1 -5
- package/esm2015/src/public_to_deprecate.js +1 -51
- package/esm2015/src/state-token/state-token.js +4 -32
- package/esm2015/src/state-token/symbols.js +2 -5
- package/esm2015/src/store.js +20 -104
- package/esm2015/src/symbols.js +7 -177
- package/esm2015/src/utils/compose.js +5 -23
- package/esm2015/src/utils/freeze.js +5 -20
- package/esm2015/src/utils/selector-utils.js +23 -136
- package/esm2015/src/utils/store-validators.js +3 -36
- package/esm2015/src/utils/utils.js +13 -64
- package/fesm2015/ngxs-store-internals-testing.js +38 -159
- package/fesm2015/ngxs-store-internals-testing.js.map +1 -1
- package/fesm2015/ngxs-store-internals.js +18 -100
- package/fesm2015/ngxs-store-internals.js.map +1 -1
- package/fesm2015/ngxs-store-operators.js +52 -185
- package/fesm2015/ngxs-store-operators.js.map +1 -1
- package/fesm2015/ngxs-store.js +400 -2473
- package/fesm2015/ngxs-store.js.map +1 -1
- package/index.d.ts +4 -0
- package/internals/index.d.ts +1 -1
- package/internals/internal-tokens.d.ts +2 -8
- package/internals/ngxs-bootstrapper.d.ts +4 -1
- package/internals/ngxs-store-internals.d.ts +1 -0
- package/internals/package.json +2 -5
- package/internals/testing/helpers/ngxs-test.component.d.ts +3 -0
- package/internals/testing/helpers/ngxs-test.module.d.ts +6 -0
- package/internals/testing/ngxs-store-internals-testing.d.ts +1 -0
- package/internals/testing/package.json +2 -5
- package/ngxs-store.d.ts +1 -18
- package/operators/ngxs-store-operators.d.ts +1 -0
- package/operators/package.json +2 -5
- package/package.json +3 -6
- package/src/actions/actions.d.ts +2 -2
- package/src/actions-stream.d.ts +5 -0
- package/src/decorators/select/select-factory.d.ts +3 -0
- package/src/decorators/state.d.ts +1 -1
- package/src/dev-features/ngxs-development.module.d.ts +4 -0
- package/src/dev-features/ngxs-unhandled-actions-logger.d.ts +3 -0
- package/src/execution/dispatch-outside-zone-ngxs-execution-strategy.d.ts +3 -0
- package/src/execution/internal-ngxs-execution-strategy.d.ts +3 -0
- package/src/execution/noop-ngxs-execution-strategy.d.ts +3 -0
- package/src/internal/dispatcher.d.ts +5 -0
- package/src/internal/error-handler.d.ts +4 -1
- package/src/internal/lifecycle-state-manager.d.ts +3 -0
- package/src/internal/state-context-factory.d.ts +3 -0
- package/src/internal/state-factory.d.ts +7 -4
- package/src/internal/state-operations.d.ts +3 -0
- package/src/internal/state-stream.d.ts +3 -0
- package/src/module.d.ts +4 -0
- package/src/modules/ngxs-feature.module.d.ts +4 -0
- package/src/modules/ngxs-root.module.d.ts +4 -0
- package/src/plugin-manager.d.ts +4 -1
- package/src/private_api.d.ts +2 -0
- package/src/store.d.ts +3 -0
- package/src/symbols.d.ts +4 -1
- package/src/utils/utils.d.ts +1 -1
- package/bundles/ngxs-store-internals-testing.umd.min.js +0 -16
- package/bundles/ngxs-store-internals-testing.umd.min.js.map +0 -1
- package/bundles/ngxs-store-internals.umd.min.js +0 -2
- package/bundles/ngxs-store-internals.umd.min.js.map +0 -1
- package/bundles/ngxs-store-operators.umd.min.js +0 -16
- package/bundles/ngxs-store-operators.umd.min.js.map +0 -1
- package/bundles/ngxs-store.umd.min.js +0 -16
- package/bundles/ngxs-store.umd.min.js.map +0 -1
- package/esm5/index.js +0 -13
- package/esm5/internals/angular.js +0 -20
- package/esm5/internals/index.js +0 -10
- package/esm5/internals/initial-state.js +0 -45
- package/esm5/internals/internal-tokens.js +0 -16
- package/esm5/internals/memoize.js +0 -71
- package/esm5/internals/ngxs-bootstrapper.js +0 -56
- package/esm5/internals/ngxs-store-internals.js +0 -9
- package/esm5/internals/src/symbols.js +0 -14
- package/esm5/internals/symbols.js +0 -14
- package/esm5/internals/testing/fresh-platform.js +0 -121
- package/esm5/internals/testing/helpers/ngxs-test.component.js +0 -32
- package/esm5/internals/testing/helpers/ngxs-test.module.js +0 -32
- package/esm5/internals/testing/index.js +0 -8
- package/esm5/internals/testing/ngxs-store-internals-testing.js +0 -9
- package/esm5/internals/testing/ngxs.setup.js +0 -98
- package/esm5/internals/testing/skip-console-logging.js +0 -62
- package/esm5/internals/testing/symbol.js +0 -29
- package/esm5/ngxs-store.js +0 -26
- package/esm5/operators/append.js +0 -31
- package/esm5/operators/compose.js +0 -28
- package/esm5/operators/iif.js +0 -56
- package/esm5/operators/index.js +0 -18
- package/esm5/operators/insert-item.js +0 -41
- package/esm5/operators/ngxs-store-operators.js +0 -9
- package/esm5/operators/patch.js +0 -39
- package/esm5/operators/remove-item.js +0 -34
- package/esm5/operators/types.js +0 -5
- package/esm5/operators/update-item.js +0 -54
- package/esm5/operators/utils.js +0 -50
- package/esm5/src/actions/actions.js +0 -62
- package/esm5/src/actions/symbols.js +0 -39
- package/esm5/src/actions-stream.js +0 -201
- package/esm5/src/configs/messages.config.js +0 -79
- package/esm5/src/decorators/action.js +0 -60
- package/esm5/src/decorators/select/select-factory.js +0 -46
- package/esm5/src/decorators/select/select.js +0 -50
- package/esm5/src/decorators/select/symbols.js +0 -51
- package/esm5/src/decorators/selector/selector.js +0 -59
- package/esm5/src/decorators/selector/symbols.js +0 -5
- package/esm5/src/decorators/selector-options.js +0 -34
- package/esm5/src/decorators/state.js +0 -78
- package/esm5/src/dev-features/ngxs-development.module.js +0 -34
- package/esm5/src/dev-features/ngxs-unhandled-actions-logger.js +0 -100
- package/esm5/src/dev-features/symbols.js +0 -22
- package/esm5/src/execution/dispatch-outside-zone-ngxs-execution-strategy.js +0 -123
- package/esm5/src/execution/internal-ngxs-execution-strategy.js +0 -54
- package/esm5/src/execution/noop-ngxs-execution-strategy.js +0 -43
- package/esm5/src/execution/symbols.js +0 -52
- package/esm5/src/internal/dispatcher.js +0 -231
- package/esm5/src/internal/error-handler.js +0 -125
- package/esm5/src/internal/internals.js +0 -470
- package/esm5/src/internal/lifecycle-state-manager.js +0 -224
- package/esm5/src/internal/state-context-factory.js +0 -135
- package/esm5/src/internal/state-factory.js +0 -599
- package/esm5/src/internal/state-operations.js +0 -134
- package/esm5/src/internal/state-operators.js +0 -34
- package/esm5/src/internal/state-stream.js +0 -37
- package/esm5/src/ivy/ivy-enabled-in-dev-mode.js +0 -28
- package/esm5/src/module.js +0 -202
- package/esm5/src/modules/ngxs-feature.module.js +0 -65
- package/esm5/src/modules/ngxs-root.module.js +0 -44
- package/esm5/src/operators/leave-ngxs.js +0 -58
- package/esm5/src/operators/of-action.js +0 -223
- package/esm5/src/plugin-manager.js +0 -82
- package/esm5/src/plugin_api.js +0 -10
- package/esm5/src/public_api.js +0 -31
- package/esm5/src/public_to_deprecate.js +0 -64
- package/esm5/src/state-token/state-token.js +0 -57
- package/esm5/src/state-token/symbols.js +0 -5
- package/esm5/src/store.js +0 -241
- package/esm5/src/symbols.js +0 -230
- package/esm5/src/utils/compose.js +0 -55
- package/esm5/src/utils/freeze.js +0 -35
- package/esm5/src/utils/selector-utils.js +0 -230
- package/esm5/src/utils/store-validators.js +0 -78
- package/esm5/src/utils/utils.js +0 -151
- package/fesm5/ngxs-store-internals-testing.js +0 -345
- package/fesm5/ngxs-store-internals-testing.js.map +0 -1
- package/fesm5/ngxs-store-internals.js +0 -217
- package/fesm5/ngxs-store-internals.js.map +0 -1
- package/fesm5/ngxs-store-operators.js +0 -341
- package/fesm5/ngxs-store-operators.js.map +0 -1
- package/fesm5/ngxs-store.js +0 -4783
- package/fesm5/ngxs-store.js.map +0 -1
- package/internals/ngxs-store-internals.metadata.json +0 -1
- package/internals/testing/ngxs-store-internals-testing.metadata.json +0 -1
- package/ngxs-store.metadata.json +0 -1
- package/operators/ngxs-store-operators.metadata.json +0 -1
- package/types/index.d.ts +0 -2
|
@@ -1,103 +1,40 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
-
*/
|
|
5
1
|
import { memoize } from '@ngxs/store/internals';
|
|
6
2
|
import { ensureSelectorMetadata, getSelectorMetadata, getStoreMetadata } from '../internal/internals';
|
|
7
|
-
/** @type {?} */
|
|
8
3
|
const SELECTOR_OPTIONS_META_KEY = 'NGXS_SELECTOR_OPTIONS_META';
|
|
9
|
-
/** @type {?} */
|
|
10
4
|
export const selectorOptionsMetaAccessor = {
|
|
11
|
-
getOptions: (
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
(target) => {
|
|
16
|
-
return (target && ((/** @type {?} */ (target)))[SELECTOR_OPTIONS_META_KEY]) || {};
|
|
17
|
-
}),
|
|
18
|
-
defineOptions: (/**
|
|
19
|
-
* @param {?} target
|
|
20
|
-
* @param {?} options
|
|
21
|
-
* @return {?}
|
|
22
|
-
*/
|
|
23
|
-
(target, options) => {
|
|
5
|
+
getOptions: (target) => {
|
|
6
|
+
return (target && target[SELECTOR_OPTIONS_META_KEY]) || {};
|
|
7
|
+
},
|
|
8
|
+
defineOptions: (target, options) => {
|
|
24
9
|
if (!target)
|
|
25
10
|
return;
|
|
26
|
-
|
|
27
|
-
}
|
|
11
|
+
target[SELECTOR_OPTIONS_META_KEY] = options;
|
|
12
|
+
}
|
|
28
13
|
};
|
|
29
|
-
/**
|
|
30
|
-
* @record
|
|
31
|
-
*/
|
|
32
|
-
function CreationMetadata() { }
|
|
33
|
-
if (false) {
|
|
34
|
-
/** @type {?} */
|
|
35
|
-
CreationMetadata.prototype.containerClass;
|
|
36
|
-
/** @type {?} */
|
|
37
|
-
CreationMetadata.prototype.selectorName;
|
|
38
|
-
/** @type {?|undefined} */
|
|
39
|
-
CreationMetadata.prototype.getSelectorOptions;
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* @record
|
|
43
|
-
*/
|
|
44
|
-
function RuntimeSelectorInfo() { }
|
|
45
|
-
if (false) {
|
|
46
|
-
/** @type {?} */
|
|
47
|
-
RuntimeSelectorInfo.prototype.selectorOptions;
|
|
48
|
-
/** @type {?} */
|
|
49
|
-
RuntimeSelectorInfo.prototype.argumentSelectorFunctions;
|
|
50
|
-
}
|
|
51
14
|
/**
|
|
52
15
|
* Function for creating a selector
|
|
53
|
-
* @
|
|
54
|
-
* @param
|
|
55
|
-
* @param
|
|
56
|
-
* @param {?=} creationMetadata
|
|
57
|
-
* @return {?}
|
|
16
|
+
* @param selectors The selectors to use to create the arguments of this function
|
|
17
|
+
* @param originalFn The original function being made into a selector
|
|
18
|
+
* @param creationMetadata
|
|
58
19
|
*/
|
|
59
20
|
export function createSelector(selectors, originalFn, creationMetadata) {
|
|
60
|
-
/** @type {?} */
|
|
61
21
|
const containerClass = creationMetadata && creationMetadata.containerClass;
|
|
62
|
-
|
|
63
|
-
const wrappedFn = (/** @type {?} */ ((/**
|
|
64
|
-
* @param {...?} args
|
|
65
|
-
* @return {?}
|
|
66
|
-
*/
|
|
67
|
-
function wrappedSelectorFn(...args) {
|
|
68
|
-
/** @type {?} */
|
|
22
|
+
const wrappedFn = function wrappedSelectorFn(...args) {
|
|
69
23
|
const returnValue = originalFn.apply(containerClass, args);
|
|
70
24
|
if (returnValue instanceof Function) {
|
|
71
|
-
/** @type {?} */
|
|
72
25
|
const innerMemoizedFn = memoize.apply(null, [returnValue]);
|
|
73
26
|
return innerMemoizedFn;
|
|
74
27
|
}
|
|
75
28
|
return returnValue;
|
|
76
|
-
}
|
|
77
|
-
/** @type {?} */
|
|
29
|
+
};
|
|
78
30
|
const memoizedFn = memoize(wrappedFn);
|
|
79
31
|
Object.setPrototypeOf(memoizedFn, originalFn);
|
|
80
|
-
/** @type {?} */
|
|
81
32
|
const selectorMetaData = setupSelectorMetadata(originalFn, creationMetadata);
|
|
82
|
-
|
|
83
|
-
const makeRootSelector = (/**
|
|
84
|
-
* @param {?} context
|
|
85
|
-
* @return {?}
|
|
86
|
-
*/
|
|
87
|
-
(context) => {
|
|
33
|
+
const makeRootSelector = (context) => {
|
|
88
34
|
const { argumentSelectorFunctions, selectorOptions } = getRuntimeSelectorInfo(context, selectorMetaData, selectors);
|
|
89
|
-
return (
|
|
90
|
-
* @param {?} rootState
|
|
91
|
-
* @return {?}
|
|
92
|
-
*/
|
|
93
|
-
function selectFromRoot(rootState) {
|
|
35
|
+
return function selectFromRoot(rootState) {
|
|
94
36
|
// Determine arguments from the app state using the selectors
|
|
95
|
-
|
|
96
|
-
const results = argumentSelectorFunctions.map((/**
|
|
97
|
-
* @param {?} argFn
|
|
98
|
-
* @return {?}
|
|
99
|
-
*/
|
|
100
|
-
argFn => argFn(rootState)));
|
|
37
|
+
const results = argumentSelectorFunctions.map(argFn => argFn(rootState));
|
|
101
38
|
// if the lambda tries to access a something on the
|
|
102
39
|
// state that doesn't exist, it will throw a TypeError.
|
|
103
40
|
// since this is quite usual behaviour, we simply return undefined if so.
|
|
@@ -110,90 +47,46 @@ export function createSelector(selectors, originalFn, creationMetadata) {
|
|
|
110
47
|
}
|
|
111
48
|
throw ex;
|
|
112
49
|
}
|
|
113
|
-
}
|
|
114
|
-
}
|
|
50
|
+
};
|
|
51
|
+
};
|
|
115
52
|
selectorMetaData.makeRootSelector = makeRootSelector;
|
|
116
53
|
return memoizedFn;
|
|
117
54
|
}
|
|
118
|
-
/**
|
|
119
|
-
* @template T
|
|
120
|
-
* @param {?} originalFn
|
|
121
|
-
* @param {?} creationMetadata
|
|
122
|
-
* @return {?}
|
|
123
|
-
*/
|
|
124
55
|
function setupSelectorMetadata(originalFn, creationMetadata) {
|
|
125
|
-
/** @type {?} */
|
|
126
56
|
const selectorMetaData = ensureSelectorMetadata(originalFn);
|
|
127
57
|
selectorMetaData.originalFn = originalFn;
|
|
128
|
-
|
|
129
|
-
let getExplicitSelectorOptions = (/**
|
|
130
|
-
* @return {?}
|
|
131
|
-
*/
|
|
132
|
-
() => ({}));
|
|
58
|
+
let getExplicitSelectorOptions = () => ({});
|
|
133
59
|
if (creationMetadata) {
|
|
134
60
|
selectorMetaData.containerClass = creationMetadata.containerClass;
|
|
135
61
|
selectorMetaData.selectorName = creationMetadata.selectorName;
|
|
136
62
|
getExplicitSelectorOptions =
|
|
137
63
|
creationMetadata.getSelectorOptions || getExplicitSelectorOptions;
|
|
138
64
|
}
|
|
139
|
-
/** @type {?} */
|
|
140
65
|
const selectorMetaDataClone = Object.assign({}, selectorMetaData);
|
|
141
|
-
selectorMetaData.getSelectorOptions = (
|
|
142
|
-
* @return {?}
|
|
143
|
-
*/
|
|
144
|
-
() => getLocalSelectorOptions(selectorMetaDataClone, getExplicitSelectorOptions()));
|
|
66
|
+
selectorMetaData.getSelectorOptions = () => getLocalSelectorOptions(selectorMetaDataClone, getExplicitSelectorOptions());
|
|
145
67
|
return selectorMetaData;
|
|
146
68
|
}
|
|
147
|
-
/**
|
|
148
|
-
* @param {?} context
|
|
149
|
-
* @param {?} selectorMetaData
|
|
150
|
-
* @param {?=} selectors
|
|
151
|
-
* @return {?}
|
|
152
|
-
*/
|
|
153
69
|
function getRuntimeSelectorInfo(context, selectorMetaData, selectors = []) {
|
|
154
|
-
/** @type {?} */
|
|
155
70
|
const localSelectorOptions = selectorMetaData.getSelectorOptions();
|
|
156
|
-
/** @type {?} */
|
|
157
71
|
const selectorOptions = context.getSelectorOptions(localSelectorOptions);
|
|
158
|
-
/** @type {?} */
|
|
159
72
|
const selectorsToApply = getSelectorsToApply(selectors, selectorOptions, selectorMetaData.containerClass);
|
|
160
|
-
|
|
161
|
-
const argumentSelectorFunctions = selectorsToApply.map((/**
|
|
162
|
-
* @param {?} selector
|
|
163
|
-
* @return {?}
|
|
164
|
-
*/
|
|
165
|
-
selector => {
|
|
166
|
-
/** @type {?} */
|
|
73
|
+
const argumentSelectorFunctions = selectorsToApply.map(selector => {
|
|
167
74
|
const factory = getRootSelectorFactory(selector);
|
|
168
75
|
return factory(context);
|
|
169
|
-
})
|
|
76
|
+
});
|
|
170
77
|
return {
|
|
171
78
|
selectorOptions,
|
|
172
79
|
argumentSelectorFunctions
|
|
173
80
|
};
|
|
174
81
|
}
|
|
175
|
-
/**
|
|
176
|
-
* @param {?} selectorMetaData
|
|
177
|
-
* @param {?} explicitOptions
|
|
178
|
-
* @return {?}
|
|
179
|
-
*/
|
|
180
82
|
function getLocalSelectorOptions(selectorMetaData, explicitOptions) {
|
|
181
|
-
return Object.assign({}, (selectorOptionsMetaAccessor.getOptions(selectorMetaData.containerClass) || {}), (selectorOptionsMetaAccessor.getOptions(selectorMetaData.originalFn) || {}), (selectorMetaData.getSelectorOptions() || {}), explicitOptions);
|
|
83
|
+
return Object.assign(Object.assign(Object.assign(Object.assign({}, (selectorOptionsMetaAccessor.getOptions(selectorMetaData.containerClass) || {})), (selectorOptionsMetaAccessor.getOptions(selectorMetaData.originalFn) || {})), (selectorMetaData.getSelectorOptions() || {})), explicitOptions);
|
|
182
84
|
}
|
|
183
|
-
/**
|
|
184
|
-
* @param {?=} selectors
|
|
185
|
-
* @param {?=} selectorOptions
|
|
186
|
-
* @param {?=} containerClass
|
|
187
|
-
* @return {?}
|
|
188
|
-
*/
|
|
189
85
|
function getSelectorsToApply(selectors = [], selectorOptions, containerClass) {
|
|
190
|
-
/** @type {?} */
|
|
191
86
|
const selectorsToApply = [];
|
|
192
|
-
/** @type {?} */
|
|
193
87
|
const canInjectContainerState = selectors.length === 0 || selectorOptions.injectContainerState;
|
|
194
88
|
if (containerClass && canInjectContainerState) {
|
|
195
89
|
// If we are on a state class, add it as the first selector parameter
|
|
196
|
-
/** @type {?} */
|
|
197
90
|
const metadata = getStoreMetadata(containerClass);
|
|
198
91
|
if (metadata) {
|
|
199
92
|
selectorsToApply.push(containerClass);
|
|
@@ -207,15 +100,9 @@ function getSelectorsToApply(selectors = [], selectorOptions, containerClass) {
|
|
|
207
100
|
/**
|
|
208
101
|
* This function gets the factory function to create the selector to get the selected slice from the app state
|
|
209
102
|
* @ignore
|
|
210
|
-
* @param {?} selector
|
|
211
|
-
* @return {?}
|
|
212
103
|
*/
|
|
213
104
|
export function getRootSelectorFactory(selector) {
|
|
214
|
-
/** @type {?} */
|
|
215
105
|
const metadata = getSelectorMetadata(selector) || getStoreMetadata(selector);
|
|
216
|
-
return (metadata && metadata.makeRootSelector) || ((
|
|
217
|
-
* @return {?}
|
|
218
|
-
*/
|
|
219
|
-
() => selector));
|
|
106
|
+
return (metadata && metadata.makeRootSelector) || (() => selector);
|
|
220
107
|
}
|
|
221
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3ItdXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS8iLCJzb3VyY2VzIjpbInNyYy91dGlscy9zZWxlY3Rvci11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWhELE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsbUJBQW1CLEVBQ25CLGdCQUFnQixFQU1qQixNQUFNLHVCQUF1QixDQUFDOztNQUV6Qix5QkFBeUIsR0FBRyw0QkFBNEI7O0FBRTlELE1BQU0sT0FBTywyQkFBMkIsR0FBRztJQUN6QyxVQUFVOzs7O0lBQUUsQ0FBQyxNQUFXLEVBQXlCLEVBQUU7UUFDakQsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLG1CQUFLLE1BQU0sRUFBQSxDQUFDLENBQUMseUJBQXlCLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwRSxDQUFDLENBQUE7SUFDRCxhQUFhOzs7OztJQUFFLENBQUMsTUFBVyxFQUFFLE9BQThCLEVBQUUsRUFBRTtRQUM3RCxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU87UUFDcEIsQ0FBQyxtQkFBSyxNQUFNLEVBQUEsQ0FBQyxDQUFDLHlCQUF5QixDQUFDLEdBQUcsT0FBTyxDQUFDO0lBQ3JELENBQUMsQ0FBQTtDQUNGOzs7O0FBRUQsK0JBSUM7OztJQUhDLDBDQUFvQjs7SUFDcEIsd0NBQXFCOztJQUNyQiw4Q0FBaUQ7Ozs7O0FBR25ELGtDQUdDOzs7SUFGQyw4Q0FBdUM7O0lBQ3ZDLHdEQUFpRDs7Ozs7Ozs7OztBQVNuRCxNQUFNLFVBQVUsY0FBYyxDQUM1QixTQUE0QixFQUM1QixVQUFhLEVBQ2IsZ0JBQW1DOztVQUU3QixjQUFjLEdBQUcsZ0JBQWdCLElBQUksZ0JBQWdCLENBQUMsY0FBYzs7VUFDcEUsU0FBUyxHQUFHOzs7O0lBQUEsU0FBUyxpQkFBaUIsQ0FBQyxHQUFHLElBQVc7O2NBQ25ELFdBQVcsR0FB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QyxnQkFBZ0IsQ0FBQyxJQUFJOzs7SUFBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUMsQ0FBQztBQUNyRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWVtb2l6ZSB9IGZyb20gJ0BuZ3hzL3N0b3JlL2ludGVybmFscyc7XG5cbmltcG9ydCB7XG4gIGVuc3VyZVNlbGVjdG9yTWV0YWRhdGEsXG4gIGdldFNlbGVjdG9yTWV0YWRhdGEsXG4gIGdldFN0b3JlTWV0YWRhdGEsXG4gIFNlbGVjdG9yTWV0YURhdGFNb2RlbCxcbiAgU2hhcmVkU2VsZWN0b3JPcHRpb25zLFxuICBSdW50aW1lU2VsZWN0b3JDb250ZXh0LFxuICBTZWxlY3RvckZhY3RvcnksXG4gIFNlbGVjdEZyb21Sb290U3RhdGVcbn0gZnJvbSAnLi4vaW50ZXJuYWwvaW50ZXJuYWxzJztcblxuY29uc3QgU0VMRUNUT1JfT1BUSU9OU19NRVRBX0tFWSA9ICdOR1hTX1NFTEVDVE9SX09QVElPTlNfTUVUQSc7XG5cbmV4cG9ydCBjb25zdCBzZWxlY3Rvck9wdGlvbnNNZXRhQWNjZXNzb3IgPSB7XG4gIGdldE9wdGlvbnM6ICh0YXJnZXQ6IGFueSk6IFNoYXJlZFNlbGVjdG9yT3B0aW9ucyA9PiB7XG4gICAgcmV0dXJuICh0YXJnZXQgJiYgKDxhbnk+dGFyZ2V0KVtTRUxFQ1RPUl9PUFRJT05TX01FVEFfS0VZXSkgfHwge307XG4gIH0sXG4gIGRlZmluZU9wdGlvbnM6ICh0YXJnZXQ6IGFueSwgb3B0aW9uczogU2hhcmVkU2VsZWN0b3JPcHRpb25zKSA9PiB7XG4gICAgaWYgKCF0YXJnZXQpIHJldHVybjtcbiAgICAoPGFueT50YXJnZXQpW1NFTEVDVE9SX09QVElPTlNfTUVUQV9LRVldID0gb3B0aW9ucztcbiAgfVxufTtcblxuaW50ZXJmYWNlIENyZWF0aW9uTWV0YWRhdGEge1xuICBjb250YWluZXJDbGFzczogYW55O1xuICBzZWxlY3Rvck5hbWU6IHN0cmluZztcbiAgZ2V0U2VsZWN0b3JPcHRpb25zPzogKCkgPT4gU2hhcmVkU2VsZWN0b3JPcHRpb25zO1xufVxuXG5pbnRlcmZhY2UgUnVudGltZVNlbGVjdG9ySW5mbyB7XG4gIHNlbGVjdG9yT3B0aW9uczogU2hhcmVkU2VsZWN0b3JPcHRpb25zO1xuICBhcmd1bWVudFNlbGVjdG9yRnVuY3Rpb25zOiBTZWxlY3RGcm9tUm9vdFN0YXRlW107XG59XG5cbi8qKlxuICogRnVuY3Rpb24gZm9yIGNyZWF0aW5nIGEgc2VsZWN0b3JcbiAqIEBwYXJhbSBzZWxlY3RvcnMgVGhlIHNlbGVjdG9ycyB0byB1c2UgdG8gY3JlYXRlIHRoZSBhcmd1bWVudHMgb2YgdGhpcyBmdW5jdGlvblxuICogQHBhcmFtIG9yaWdpbmFsRm4gVGhlIG9yaWdpbmFsIGZ1bmN0aW9uIGJlaW5nIG1hZGUgaW50byBhIHNlbGVjdG9yXG4gKiBAcGFyYW0gY3JlYXRpb25NZXRhZGF0YVxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2VsZWN0b3I8VCBleHRlbmRzICguLi5hcmdzOiBhbnlbXSkgPT4gYW55PihcbiAgc2VsZWN0b3JzOiBhbnlbXSB8IHVuZGVmaW5lZCxcbiAgb3JpZ2luYWxGbjogVCxcbiAgY3JlYXRpb25NZXRhZGF0YT86IENyZWF0aW9uTWV0YWRhdGFcbikge1xuICBjb25zdCBjb250YWluZXJDbGFzcyA9IGNyZWF0aW9uTWV0YWRhdGEgJiYgY3JlYXRpb25NZXRhZGF0YS5jb250YWluZXJDbGFzcztcbiAgY29uc3Qgd3JhcHBlZEZuID0gZnVuY3Rpb24gd3JhcHBlZFNlbGVjdG9yRm4oLi4uYXJnczogYW55W10pIHtcbiAgICBjb25zdCByZXR1cm5WYWx1ZSA9IG9yaWdpbmFsRm4uYXBwbHkoY29udGFpbmVyQ2xhc3MsIGFyZ3MpO1xuICAgIGlmIChyZXR1cm5WYWx1ZSBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICBjb25zdCBpbm5lck1lbW9pemVkRm4gPSBtZW1vaXplLmFwcGx5KG51bGwsIFtyZXR1cm5WYWx1ZV0pO1xuICAgICAgcmV0dXJuIGlubmVyTWVtb2l6ZWRGbjtcbiAgICB9XG4gICAgcmV0dXJuIHJldHVyblZhbHVlO1xuICB9IGFzIFQ7XG4gIGNvbnN0IG1lbW9pemVkRm4gPSBtZW1vaXplKHdyYXBwZWRGbik7XG4gIE9iamVjdC5zZXRQcm90b3R5cGVPZihtZW1vaXplZEZuLCBvcmlnaW5hbEZuKTtcblxuICBjb25zdCBzZWxlY3Rvck1ldGFEYXRhID0gc2V0dXBTZWxlY3Rvck1ldGFkYXRhPFQ+KG9yaWdpbmFsRm4sIGNyZWF0aW9uTWV0YWRhdGEpO1xuXG4gIGNvbnN0IG1ha2VSb290U2VsZWN0b3I6IFNlbGVjdG9yRmFjdG9yeSA9IChjb250ZXh0OiBSdW50aW1lU2VsZWN0b3JDb250ZXh0KSA9PiB7XG4gICAgY29uc3QgeyBhcmd1bWVudFNlbGVjdG9yRnVuY3Rpb25zLCBzZWxlY3Rvck9wdGlvbnMgfSA9IGdldFJ1bnRpbWVTZWxlY3RvckluZm8oXG4gICAgICBjb250ZXh0LFxuICAgICAgc2VsZWN0b3JNZXRhRGF0YSxcbiAgICAgIHNlbGVjdG9yc1xuICAgICk7XG5cbiAgICByZXR1cm4gZnVuY3Rpb24gc2VsZWN0RnJvbVJvb3Qocm9vdFN0YXRlOiBhbnkpIHtcbiAgICAgIC8vIERldGVybWluZSBhcmd1bWVudHMgZnJvbSB0aGUgYXBwIHN0YXRlIHVzaW5nIHRoZSBzZWxlY3RvcnNcbiAgICAgIGNvbnN0IHJlc3VsdHMgPSBhcmd1bWVudFNlbGVjdG9yRnVuY3Rpb25zLm1hcChhcmdGbiA9PiBhcmdGbihyb290U3RhdGUpKTtcblxuICAgICAgLy8gaWYgdGhlIGxhbWJkYSB0cmllcyB0byBhY2Nlc3MgYSBzb21ldGhpbmcgb24gdGhlXG4gICAgICAvLyBzdGF0ZSB0aGF0IGRvZXNuJ3QgZXhpc3QsIGl0IHdpbGwgdGhyb3cgYSBUeXBlRXJyb3IuXG4gICAgICAvLyBzaW5jZSB0aGlzIGlzIHF1aXRlIHVzdWFsIGJlaGF2aW91ciwgd2Ugc2ltcGx5IHJldHVybiB1bmRlZmluZWQgaWYgc28uXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gbWVtb2l6ZWRGbiguLi5yZXN1bHRzKTtcbiAgICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICAgIGlmIChleCBpbnN0YW5jZW9mIFR5cGVFcnJvciAmJiBzZWxlY3Rvck9wdGlvbnMuc3VwcHJlc3NFcnJvcnMpIHtcbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhyb3cgZXg7XG4gICAgICB9XG4gICAgfTtcbiAgfTtcblxuICBzZWxlY3Rvck1ldGFEYXRhLm1ha2VSb290U2VsZWN0b3IgPSBtYWtlUm9vdFNlbGVjdG9yO1xuXG4gIHJldHVybiBtZW1vaXplZEZuO1xufVxuXG5mdW5jdGlvbiBzZXR1cFNlbGVjdG9yTWV0YWRhdGE8VCBleHRlbmRzICguLi5hcmdzOiBhbnlbXSkgPT4gYW55PihcbiAgb3JpZ2luYWxGbjogVCxcbiAgY3JlYXRpb25NZXRhZGF0YTogQ3JlYXRpb25NZXRhZGF0YSB8IHVuZGVmaW5lZFxuKSB7XG4gIGNvbnN0IHNlbGVjdG9yTWV0YURhdGEgPSBlbnN1cmVTZWxlY3Rvck1ldGFkYXRhKG9yaWdpbmFsRm4pO1xuICBzZWxlY3Rvck1ldGFEYXRhLm9yaWdpbmFsRm4gPSBvcmlnaW5hbEZuO1xuICBsZXQgZ2V0RXhwbGljaXRTZWxlY3Rvck9wdGlvbnMgPSAoKSA9PiAoe30pO1xuICBpZiAoY3JlYXRpb25NZXRhZGF0YSkge1xuICAgIHNlbGVjdG9yTWV0YURhdGEuY29udGFpbmVyQ2xhc3MgPSBjcmVhdGlvbk1ldGFkYXRhLmNvbnRhaW5lckNsYXNzO1xuICAgIHNlbGVjdG9yTWV0YURhdGEuc2VsZWN0b3JOYW1lID0gY3JlYXRpb25NZXRhZGF0YS5zZWxlY3Rvck5hbWU7XG4gICAgZ2V0RXhwbGljaXRTZWxlY3Rvck9wdGlvbnMgPVxuICAgICAgY3JlYXRpb25NZXRhZGF0YS5nZXRTZWxlY3Rvck9wdGlvbnMgfHwgZ2V0RXhwbGljaXRTZWxlY3Rvck9wdGlvbnM7XG4gIH1cbiAgY29uc3Qgc2VsZWN0b3JNZXRhRGF0YUNsb25lID0geyAuLi5zZWxlY3Rvck1ldGFEYXRhIH07XG4gIHNlbGVjdG9yTWV0YURhdGEuZ2V0U2VsZWN0b3JPcHRpb25zID0gKCkgPT5cbiAgICBnZXRMb2NhbFNlbGVjdG9yT3B0aW9ucyhzZWxlY3Rvck1ldGFEYXRhQ2xvbmUsIGdldEV4cGxpY2l0U2VsZWN0b3JPcHRpb25zKCkpO1xuICByZXR1cm4gc2VsZWN0b3JNZXRhRGF0YTtcbn1cblxuZnVuY3Rpb24gZ2V0UnVudGltZVNlbGVjdG9ySW5mbyhcbiAgY29udGV4dDogUnVudGltZVNlbGVjdG9yQ29udGV4dCxcbiAgc2VsZWN0b3JNZXRhRGF0YTogU2VsZWN0b3JNZXRhRGF0YU1vZGVsLFxuICBzZWxlY3RvcnM6IGFueVtdIHwgdW5kZWZpbmVkID0gW11cbik6IFJ1bnRpbWVTZWxlY3RvckluZm8ge1xuICBjb25zdCBsb2NhbFNlbGVjdG9yT3B0aW9ucyA9IHNlbGVjdG9yTWV0YURhdGEuZ2V0U2VsZWN0b3JPcHRpb25zKCk7XG4gIGNvbnN0IHNlbGVjdG9yT3B0aW9ucyA9IGNvbnRleHQuZ2V0U2VsZWN0b3JPcHRpb25zKGxvY2FsU2VsZWN0b3JPcHRpb25zKTtcbiAgY29uc3Qgc2VsZWN0b3JzVG9BcHBseSA9IGdldFNlbGVjdG9yc1RvQXBwbHkoXG4gICAgc2VsZWN0b3JzLFxuICAgIHNlbGVjdG9yT3B0aW9ucyxcbiAgICBzZWxlY3Rvck1ldGFEYXRhLmNvbnRhaW5lckNsYXNzXG4gICk7XG5cbiAgY29uc3QgYXJndW1lbnRTZWxlY3RvckZ1bmN0aW9ucyA9IHNlbGVjdG9yc1RvQXBwbHkubWFwKHNlbGVjdG9yID0+IHtcbiAgICBjb25zdCBmYWN0b3J5ID0gZ2V0Um9vdFNlbGVjdG9yRmFjdG9yeShzZWxlY3Rvcik7XG4gICAgcmV0dXJuIGZhY3RvcnkoY29udGV4dCk7XG4gIH0pO1xuICByZXR1cm4ge1xuICAgIHNlbGVjdG9yT3B0aW9ucyxcbiAgICBhcmd1bWVudFNlbGVjdG9yRnVuY3Rpb25zXG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldExvY2FsU2VsZWN0b3JPcHRpb25zKFxuICBzZWxlY3Rvck1ldGFEYXRhOiBTZWxlY3Rvck1ldGFEYXRhTW9kZWwsXG4gIGV4cGxpY2l0T3B0aW9uczogU2hhcmVkU2VsZWN0b3JPcHRpb25zXG4pOiBTaGFyZWRTZWxlY3Rvck9wdGlvbnMge1xuICByZXR1cm4ge1xuICAgIC4uLihzZWxlY3Rvck9wdGlvbnNNZXRhQWNjZXNzb3IuZ2V0T3B0aW9ucyhzZWxlY3Rvck1ldGFEYXRhLmNvbnRhaW5lckNsYXNzKSB8fCB7fSksXG4gICAgLi4uKHNlbGVjdG9yT3B0aW9uc01ldGFBY2Nlc3Nvci5nZXRPcHRpb25zKHNlbGVjdG9yTWV0YURhdGEub3JpZ2luYWxGbikgfHwge30pLFxuICAgIC4uLihzZWxlY3Rvck1ldGFEYXRhLmdldFNlbGVjdG9yT3B0aW9ucygpIHx8IHt9KSxcbiAgICAuLi5leHBsaWNpdE9wdGlvbnNcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0U2VsZWN0b3JzVG9BcHBseShcbiAgc2VsZWN0b3JzOiBhbnlbXSB8IHVuZGVmaW5lZCA9IFtdLFxuICBzZWxlY3Rvck9wdGlvbnM6IFNoYXJlZFNlbGVjdG9yT3B0aW9ucyxcbiAgY29udGFpbmVyQ2xhc3M6IGFueVxuKSB7XG4gIGNvbnN0IHNlbGVjdG9yc1RvQXBwbHkgPSBbXTtcbiAgY29uc3QgY2FuSW5qZWN0Q29udGFpbmVyU3RhdGUgPVxuICAgIHNlbGVjdG9ycy5sZW5ndGggPT09IDAgfHwgc2VsZWN0b3JPcHRpb25zLmluamVjdENvbnRhaW5lclN0YXRlO1xuICBpZiAoY29udGFpbmVyQ2xhc3MgJiYgY2FuSW5qZWN0Q29udGFpbmVyU3RhdGUpIHtcbiAgICAvLyBJZiB3ZSBhcmUgb24gYSBzdGF0ZSBjbGFzcywgYWRkIGl0IGFzIHRoZSBmaXJzdCBzZWxlY3RvciBwYXJhbWV0ZXJcbiAgICBjb25zdCBtZXRhZGF0YSA9IGdldFN0b3JlTWV0YWRhdGEoY29udGFpbmVyQ2xhc3MpO1xuICAgIGlmIChtZXRhZGF0YSkge1xuICAgICAgc2VsZWN0b3JzVG9BcHBseS5wdXNoKGNvbnRhaW5lckNsYXNzKTtcbiAgICB9XG4gIH1cbiAgaWYgKHNlbGVjdG9ycykge1xuICAgIHNlbGVjdG9yc1RvQXBwbHkucHVzaCguLi5zZWxlY3RvcnMpO1xuICB9XG4gIHJldHVybiBzZWxlY3RvcnNUb0FwcGx5O1xufVxuXG4vKipcbiAqIFRoaXMgZnVuY3Rpb24gZ2V0cyB0aGUgZmFjdG9yeSBmdW5jdGlvbiB0byBjcmVhdGUgdGhlIHNlbGVjdG9yIHRvIGdldCB0aGUgc2VsZWN0ZWQgc2xpY2UgZnJvbSB0aGUgYXBwIHN0YXRlXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSb290U2VsZWN0b3JGYWN0b3J5KHNlbGVjdG9yOiBhbnkpOiBTZWxlY3RvckZhY3Rvcnkge1xuICBjb25zdCBtZXRhZGF0YSA9IGdldFNlbGVjdG9yTWV0YWRhdGEoc2VsZWN0b3IpIHx8IGdldFN0b3JlTWV0YWRhdGEoc2VsZWN0b3IpO1xuICByZXR1cm4gKG1ldGFkYXRhICYmIG1ldGFkYXRhLm1ha2VSb290U2VsZWN0b3IpIHx8ICgoKSA9PiBzZWxlY3Rvcik7XG59XG4iXX0=
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3ItdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvdXRpbHMvc2VsZWN0b3ItdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWhELE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsbUJBQW1CLEVBQ25CLGdCQUFnQixFQU1qQixNQUFNLHVCQUF1QixDQUFDO0FBRS9CLE1BQU0seUJBQXlCLEdBQUcsNEJBQTRCLENBQUM7QUFFL0QsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUc7SUFDekMsVUFBVSxFQUFFLENBQUMsTUFBVyxFQUF5QixFQUFFO1FBQ2pELE9BQU8sQ0FBQyxNQUFNLElBQVUsTUFBTyxDQUFDLHlCQUF5QixDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEUsQ0FBQztJQUNELGFBQWEsRUFBRSxDQUFDLE1BQVcsRUFBRSxPQUE4QixFQUFFLEVBQUU7UUFDN0QsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPO1FBQ2QsTUFBTyxDQUFDLHlCQUF5QixDQUFDLEdBQUcsT0FBTyxDQUFDO0lBQ3JELENBQUM7Q0FDRixDQUFDO0FBYUY7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUM1QixTQUE0QixFQUM1QixVQUFhLEVBQ2IsZ0JBQW1DO0lBRW5DLE1BQU0sY0FBYyxHQUFHLGdCQUFnQixJQUFJLGdCQUFnQixDQUFDLGNBQWMsQ0FBQztJQUMzRSxNQUFNLFNBQVMsR0FBRyxTQUFTLGlCQUFpQixDQUFDLEdBQUcsSUFBVztRQUN6RCxNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMzRCxJQUFJLFdBQVcsWUFBWSxRQUFRLEVBQUU7WUFDbkMsTUFBTSxlQUFlLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxJ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Q0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUNyRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWVtb2l6ZSB9IGZyb20gJ0BuZ3hzL3N0b3JlL2ludGVybmFscyc7XG5cbmltcG9ydCB7XG4gIGVuc3VyZVNlbGVjdG9yTWV0YWRhdGEsXG4gIGdldFNlbGVjdG9yTWV0YWRhdGEsXG4gIGdldFN0b3JlTWV0YWRhdGEsXG4gIFNlbGVjdG9yTWV0YURhdGFNb2RlbCxcbiAgU2hhcmVkU2VsZWN0b3JPcHRpb25zLFxuICBSdW50aW1lU2VsZWN0b3JDb250ZXh0LFxuICBTZWxlY3RvckZhY3RvcnksXG4gIFNlbGVjdEZyb21Sb290U3RhdGVcbn0gZnJvbSAnLi4vaW50ZXJuYWwvaW50ZXJuYWxzJztcblxuY29uc3QgU0VMRUNUT1JfT1BUSU9OU19NRVRBX0tFWSA9ICdOR1hTX1NFTEVDVE9SX09QVElPTlNfTUVUQSc7XG5cbmV4cG9ydCBjb25zdCBzZWxlY3Rvck9wdGlvbnNNZXRhQWNjZXNzb3IgPSB7XG4gIGdldE9wdGlvbnM6ICh0YXJnZXQ6IGFueSk6IFNoYXJlZFNlbGVjdG9yT3B0aW9ucyA9PiB7XG4gICAgcmV0dXJuICh0YXJnZXQgJiYgKDxhbnk+dGFyZ2V0KVtTRUxFQ1RPUl9PUFRJT05TX01FVEFfS0VZXSkgfHwge307XG4gIH0sXG4gIGRlZmluZU9wdGlvbnM6ICh0YXJnZXQ6IGFueSwgb3B0aW9uczogU2hhcmVkU2VsZWN0b3JPcHRpb25zKSA9PiB7XG4gICAgaWYgKCF0YXJnZXQpIHJldHVybjtcbiAgICAoPGFueT50YXJnZXQpW1NFTEVDVE9SX09QVElPTlNfTUVUQV9LRVldID0gb3B0aW9ucztcbiAgfVxufTtcblxuaW50ZXJmYWNlIENyZWF0aW9uTWV0YWRhdGEge1xuICBjb250YWluZXJDbGFzczogYW55O1xuICBzZWxlY3Rvck5hbWU6IHN0cmluZztcbiAgZ2V0U2VsZWN0b3JPcHRpb25zPzogKCkgPT4gU2hhcmVkU2VsZWN0b3JPcHRpb25zO1xufVxuXG5pbnRlcmZhY2UgUnVudGltZVNlbGVjdG9ySW5mbyB7XG4gIHNlbGVjdG9yT3B0aW9uczogU2hhcmVkU2VsZWN0b3JPcHRpb25zO1xuICBhcmd1bWVudFNlbGVjdG9yRnVuY3Rpb25zOiBTZWxlY3RGcm9tUm9vdFN0YXRlW107XG59XG5cbi8qKlxuICogRnVuY3Rpb24gZm9yIGNyZWF0aW5nIGEgc2VsZWN0b3JcbiAqIEBwYXJhbSBzZWxlY3RvcnMgVGhlIHNlbGVjdG9ycyB0byB1c2UgdG8gY3JlYXRlIHRoZSBhcmd1bWVudHMgb2YgdGhpcyBmdW5jdGlvblxuICogQHBhcmFtIG9yaWdpbmFsRm4gVGhlIG9yaWdpbmFsIGZ1bmN0aW9uIGJlaW5nIG1hZGUgaW50byBhIHNlbGVjdG9yXG4gKiBAcGFyYW0gY3JlYXRpb25NZXRhZGF0YVxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2VsZWN0b3I8VCBleHRlbmRzICguLi5hcmdzOiBhbnlbXSkgPT4gYW55PihcbiAgc2VsZWN0b3JzOiBhbnlbXSB8IHVuZGVmaW5lZCxcbiAgb3JpZ2luYWxGbjogVCxcbiAgY3JlYXRpb25NZXRhZGF0YT86IENyZWF0aW9uTWV0YWRhdGFcbikge1xuICBjb25zdCBjb250YWluZXJDbGFzcyA9IGNyZWF0aW9uTWV0YWRhdGEgJiYgY3JlYXRpb25NZXRhZGF0YS5jb250YWluZXJDbGFzcztcbiAgY29uc3Qgd3JhcHBlZEZuID0gZnVuY3Rpb24gd3JhcHBlZFNlbGVjdG9yRm4oLi4uYXJnczogYW55W10pIHtcbiAgICBjb25zdCByZXR1cm5WYWx1ZSA9IG9yaWdpbmFsRm4uYXBwbHkoY29udGFpbmVyQ2xhc3MsIGFyZ3MpO1xuICAgIGlmIChyZXR1cm5WYWx1ZSBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICBjb25zdCBpbm5lck1lbW9pemVkRm4gPSBtZW1vaXplLmFwcGx5KG51bGwsIFtyZXR1cm5WYWx1ZV0pO1xuICAgICAgcmV0dXJuIGlubmVyTWVtb2l6ZWRGbjtcbiAgICB9XG4gICAgcmV0dXJuIHJldHVyblZhbHVlO1xuICB9IGFzIFQ7XG4gIGNvbnN0IG1lbW9pemVkRm4gPSBtZW1vaXplKHdyYXBwZWRGbik7XG4gIE9iamVjdC5zZXRQcm90b3R5cGVPZihtZW1vaXplZEZuLCBvcmlnaW5hbEZuKTtcblxuICBjb25zdCBzZWxlY3Rvck1ldGFEYXRhID0gc2V0dXBTZWxlY3Rvck1ldGFkYXRhPFQ+KG9yaWdpbmFsRm4sIGNyZWF0aW9uTWV0YWRhdGEpO1xuXG4gIGNvbnN0IG1ha2VSb290U2VsZWN0b3I6IFNlbGVjdG9yRmFjdG9yeSA9IChjb250ZXh0OiBSdW50aW1lU2VsZWN0b3JDb250ZXh0KSA9PiB7XG4gICAgY29uc3QgeyBhcmd1bWVudFNlbGVjdG9yRnVuY3Rpb25zLCBzZWxlY3Rvck9wdGlvbnMgfSA9IGdldFJ1bnRpbWVTZWxlY3RvckluZm8oXG4gICAgICBjb250ZXh0LFxuICAgICAgc2VsZWN0b3JNZXRhRGF0YSxcbiAgICAgIHNlbGVjdG9yc1xuICAgICk7XG5cbiAgICByZXR1cm4gZnVuY3Rpb24gc2VsZWN0RnJvbVJvb3Qocm9vdFN0YXRlOiBhbnkpIHtcbiAgICAgIC8vIERldGVybWluZSBhcmd1bWVudHMgZnJvbSB0aGUgYXBwIHN0YXRlIHVzaW5nIHRoZSBzZWxlY3RvcnNcbiAgICAgIGNvbnN0IHJlc3VsdHMgPSBhcmd1bWVudFNlbGVjdG9yRnVuY3Rpb25zLm1hcChhcmdGbiA9PiBhcmdGbihyb290U3RhdGUpKTtcblxuICAgICAgLy8gaWYgdGhlIGxhbWJkYSB0cmllcyB0byBhY2Nlc3MgYSBzb21ldGhpbmcgb24gdGhlXG4gICAgICAvLyBzdGF0ZSB0aGF0IGRvZXNuJ3QgZXhpc3QsIGl0IHdpbGwgdGhyb3cgYSBUeXBlRXJyb3IuXG4gICAgICAvLyBzaW5jZSB0aGlzIGlzIHF1aXRlIHVzdWFsIGJlaGF2aW91ciwgd2Ugc2ltcGx5IHJldHVybiB1bmRlZmluZWQgaWYgc28uXG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gbWVtb2l6ZWRGbiguLi5yZXN1bHRzKTtcbiAgICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICAgIGlmIChleCBpbnN0YW5jZW9mIFR5cGVFcnJvciAmJiBzZWxlY3Rvck9wdGlvbnMuc3VwcHJlc3NFcnJvcnMpIHtcbiAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhyb3cgZXg7XG4gICAgICB9XG4gICAgfTtcbiAgfTtcblxuICBzZWxlY3Rvck1ldGFEYXRhLm1ha2VSb290U2VsZWN0b3IgPSBtYWtlUm9vdFNlbGVjdG9yO1xuXG4gIHJldHVybiBtZW1vaXplZEZuO1xufVxuXG5mdW5jdGlvbiBzZXR1cFNlbGVjdG9yTWV0YWRhdGE8VCBleHRlbmRzICguLi5hcmdzOiBhbnlbXSkgPT4gYW55PihcbiAgb3JpZ2luYWxGbjogVCxcbiAgY3JlYXRpb25NZXRhZGF0YTogQ3JlYXRpb25NZXRhZGF0YSB8IHVuZGVmaW5lZFxuKSB7XG4gIGNvbnN0IHNlbGVjdG9yTWV0YURhdGEgPSBlbnN1cmVTZWxlY3Rvck1ldGFkYXRhKG9yaWdpbmFsRm4pO1xuICBzZWxlY3Rvck1ldGFEYXRhLm9yaWdpbmFsRm4gPSBvcmlnaW5hbEZuO1xuICBsZXQgZ2V0RXhwbGljaXRTZWxlY3Rvck9wdGlvbnMgPSAoKSA9PiAoe30pO1xuICBpZiAoY3JlYXRpb25NZXRhZGF0YSkge1xuICAgIHNlbGVjdG9yTWV0YURhdGEuY29udGFpbmVyQ2xhc3MgPSBjcmVhdGlvbk1ldGFkYXRhLmNvbnRhaW5lckNsYXNzO1xuICAgIHNlbGVjdG9yTWV0YURhdGEuc2VsZWN0b3JOYW1lID0gY3JlYXRpb25NZXRhZGF0YS5zZWxlY3Rvck5hbWU7XG4gICAgZ2V0RXhwbGljaXRTZWxlY3Rvck9wdGlvbnMgPVxuICAgICAgY3JlYXRpb25NZXRhZGF0YS5nZXRTZWxlY3Rvck9wdGlvbnMgfHwgZ2V0RXhwbGljaXRTZWxlY3Rvck9wdGlvbnM7XG4gIH1cbiAgY29uc3Qgc2VsZWN0b3JNZXRhRGF0YUNsb25lID0geyAuLi5zZWxlY3Rvck1ldGFEYXRhIH07XG4gIHNlbGVjdG9yTWV0YURhdGEuZ2V0U2VsZWN0b3JPcHRpb25zID0gKCkgPT5cbiAgICBnZXRMb2NhbFNlbGVjdG9yT3B0aW9ucyhzZWxlY3Rvck1ldGFEYXRhQ2xvbmUsIGdldEV4cGxpY2l0U2VsZWN0b3JPcHRpb25zKCkpO1xuICByZXR1cm4gc2VsZWN0b3JNZXRhRGF0YTtcbn1cblxuZnVuY3Rpb24gZ2V0UnVudGltZVNlbGVjdG9ySW5mbyhcbiAgY29udGV4dDogUnVudGltZVNlbGVjdG9yQ29udGV4dCxcbiAgc2VsZWN0b3JNZXRhRGF0YTogU2VsZWN0b3JNZXRhRGF0YU1vZGVsLFxuICBzZWxlY3RvcnM6IGFueVtdIHwgdW5kZWZpbmVkID0gW11cbik6IFJ1bnRpbWVTZWxlY3RvckluZm8ge1xuICBjb25zdCBsb2NhbFNlbGVjdG9yT3B0aW9ucyA9IHNlbGVjdG9yTWV0YURhdGEuZ2V0U2VsZWN0b3JPcHRpb25zKCk7XG4gIGNvbnN0IHNlbGVjdG9yT3B0aW9ucyA9IGNvbnRleHQuZ2V0U2VsZWN0b3JPcHRpb25zKGxvY2FsU2VsZWN0b3JPcHRpb25zKTtcbiAgY29uc3Qgc2VsZWN0b3JzVG9BcHBseSA9IGdldFNlbGVjdG9yc1RvQXBwbHkoXG4gICAgc2VsZWN0b3JzLFxuICAgIHNlbGVjdG9yT3B0aW9ucyxcbiAgICBzZWxlY3Rvck1ldGFEYXRhLmNvbnRhaW5lckNsYXNzXG4gICk7XG5cbiAgY29uc3QgYXJndW1lbnRTZWxlY3RvckZ1bmN0aW9ucyA9IHNlbGVjdG9yc1RvQXBwbHkubWFwKHNlbGVjdG9yID0+IHtcbiAgICBjb25zdCBmYWN0b3J5ID0gZ2V0Um9vdFNlbGVjdG9yRmFjdG9yeShzZWxlY3Rvcik7XG4gICAgcmV0dXJuIGZhY3RvcnkoY29udGV4dCk7XG4gIH0pO1xuICByZXR1cm4ge1xuICAgIHNlbGVjdG9yT3B0aW9ucyxcbiAgICBhcmd1bWVudFNlbGVjdG9yRnVuY3Rpb25zXG4gIH07XG59XG5cbmZ1bmN0aW9uIGdldExvY2FsU2VsZWN0b3JPcHRpb25zKFxuICBzZWxlY3Rvck1ldGFEYXRhOiBTZWxlY3Rvck1ldGFEYXRhTW9kZWwsXG4gIGV4cGxpY2l0T3B0aW9uczogU2hhcmVkU2VsZWN0b3JPcHRpb25zXG4pOiBTaGFyZWRTZWxlY3Rvck9wdGlvbnMge1xuICByZXR1cm4ge1xuICAgIC4uLihzZWxlY3Rvck9wdGlvbnNNZXRhQWNjZXNzb3IuZ2V0T3B0aW9ucyhzZWxlY3Rvck1ldGFEYXRhLmNvbnRhaW5lckNsYXNzKSB8fCB7fSksXG4gICAgLi4uKHNlbGVjdG9yT3B0aW9uc01ldGFBY2Nlc3Nvci5nZXRPcHRpb25zKHNlbGVjdG9yTWV0YURhdGEub3JpZ2luYWxGbikgfHwge30pLFxuICAgIC4uLihzZWxlY3Rvck1ldGFEYXRhLmdldFNlbGVjdG9yT3B0aW9ucygpIHx8IHt9KSxcbiAgICAuLi5leHBsaWNpdE9wdGlvbnNcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0U2VsZWN0b3JzVG9BcHBseShcbiAgc2VsZWN0b3JzOiBhbnlbXSB8IHVuZGVmaW5lZCA9IFtdLFxuICBzZWxlY3Rvck9wdGlvbnM6IFNoYXJlZFNlbGVjdG9yT3B0aW9ucyxcbiAgY29udGFpbmVyQ2xhc3M6IGFueVxuKSB7XG4gIGNvbnN0IHNlbGVjdG9yc1RvQXBwbHkgPSBbXTtcbiAgY29uc3QgY2FuSW5qZWN0Q29udGFpbmVyU3RhdGUgPVxuICAgIHNlbGVjdG9ycy5sZW5ndGggPT09IDAgfHwgc2VsZWN0b3JPcHRpb25zLmluamVjdENvbnRhaW5lclN0YXRlO1xuICBpZiAoY29udGFpbmVyQ2xhc3MgJiYgY2FuSW5qZWN0Q29udGFpbmVyU3RhdGUpIHtcbiAgICAvLyBJZiB3ZSBhcmUgb24gYSBzdGF0ZSBjbGFzcywgYWRkIGl0IGFzIHRoZSBmaXJzdCBzZWxlY3RvciBwYXJhbWV0ZXJcbiAgICBjb25zdCBtZXRhZGF0YSA9IGdldFN0b3JlTWV0YWRhdGEoY29udGFpbmVyQ2xhc3MpO1xuICAgIGlmIChtZXRhZGF0YSkge1xuICAgICAgc2VsZWN0b3JzVG9BcHBseS5wdXNoKGNvbnRhaW5lckNsYXNzKTtcbiAgICB9XG4gIH1cbiAgaWYgKHNlbGVjdG9ycykge1xuICAgIHNlbGVjdG9yc1RvQXBwbHkucHVzaCguLi5zZWxlY3RvcnMpO1xuICB9XG4gIHJldHVybiBzZWxlY3RvcnNUb0FwcGx5O1xufVxuXG4vKipcbiAqIFRoaXMgZnVuY3Rpb24gZ2V0cyB0aGUgZmFjdG9yeSBmdW5jdGlvbiB0byBjcmVhdGUgdGhlIHNlbGVjdG9yIHRvIGdldCB0aGUgc2VsZWN0ZWQgc2xpY2UgZnJvbSB0aGUgYXBwIHN0YXRlXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSb290U2VsZWN0b3JGYWN0b3J5KHNlbGVjdG9yOiBhbnkpOiBTZWxlY3RvckZhY3Rvcnkge1xuICBjb25zdCBtZXRhZGF0YSA9IGdldFNlbGVjdG9yTWV0YWRhdGEoc2VsZWN0b3IpIHx8IGdldFN0b3JlTWV0YWRhdGEoc2VsZWN0b3IpO1xuICByZXR1cm4gKG1ldGFkYXRhICYmIG1ldGFkYXRhLm1ha2VSb290U2VsZWN0b3IpIHx8ICgoKSA9PiBzZWxlY3Rvcik7XG59XG4iXX0=
|
|
@@ -1,17 +1,6 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
-
*/
|
|
5
1
|
import { getStoreMetadata } from '../internal/internals';
|
|
6
2
|
import { throwStateDecoratorError, throwStateNameError, throwStateNamePropertyError, throwStateUniqueError } from '../configs/messages.config';
|
|
7
|
-
/**
|
|
8
|
-
* @abstract
|
|
9
|
-
*/
|
|
10
3
|
export class StoreValidators {
|
|
11
|
-
/**
|
|
12
|
-
* @param {?} name
|
|
13
|
-
* @return {?}
|
|
14
|
-
*/
|
|
15
4
|
static checkThatStateIsNamedCorrectly(name) {
|
|
16
5
|
if (!name) {
|
|
17
6
|
throwStateNamePropertyError();
|
|
@@ -20,41 +9,19 @@ export class StoreValidators {
|
|
|
20
9
|
throwStateNameError(name);
|
|
21
10
|
}
|
|
22
11
|
}
|
|
23
|
-
/**
|
|
24
|
-
* @param {?} stateName
|
|
25
|
-
* @param {?} state
|
|
26
|
-
* @param {?} statesByName
|
|
27
|
-
* @return {?}
|
|
28
|
-
*/
|
|
29
12
|
static checkThatStateNameIsUnique(stateName, state, statesByName) {
|
|
30
|
-
/** @type {?} */
|
|
31
13
|
const existingState = statesByName[stateName];
|
|
32
14
|
if (existingState && existingState !== state) {
|
|
33
15
|
throwStateUniqueError(stateName, state.name, existingState.name);
|
|
34
16
|
}
|
|
35
17
|
}
|
|
36
|
-
/**
|
|
37
|
-
* @param {?} stateClasses
|
|
38
|
-
* @return {?}
|
|
39
|
-
*/
|
|
40
18
|
static checkThatStateClassesHaveBeenDecorated(stateClasses) {
|
|
41
|
-
stateClasses.forEach((
|
|
42
|
-
* @param {?} stateClass
|
|
43
|
-
* @return {?}
|
|
44
|
-
*/
|
|
45
|
-
(stateClass) => {
|
|
19
|
+
stateClasses.forEach((stateClass) => {
|
|
46
20
|
if (!getStoreMetadata(stateClass)) {
|
|
47
21
|
throwStateDecoratorError(stateClass.name);
|
|
48
22
|
}
|
|
49
|
-
})
|
|
23
|
+
});
|
|
50
24
|
}
|
|
51
25
|
}
|
|
52
26
|
StoreValidators.stateNameRegex = new RegExp('^[a-zA-Z0-9_]+$');
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* @type {?}
|
|
56
|
-
* @private
|
|
57
|
-
*/
|
|
58
|
-
StoreValidators.stateNameRegex;
|
|
59
|
-
}
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUtdmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JlLyIsInNvdXJjZXMiOlsic3JjL3V0aWxzL3N0b3JlLXZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBb0MsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRixPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLG1CQUFtQixFQUNuQiwyQkFBMkIsRUFDM0IscUJBQXFCLEVBQ3RCLE1BQU0sNEJBQTRCLENBQUM7Ozs7QUFFcEMsTUFBTSxPQUFnQixlQUFlOzs7OztJQUduQyxNQUFNLENBQUMsOEJBQThCLENBQUMsSUFBbUI7UUFDdkQsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNULDJCQUEyQixFQUFFLENBQUM7U0FDL0I7YUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDMUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDM0I7SUFDSCxDQUFDOzs7Ozs7O0lBRUQsTUFBTSxDQUFDLDBCQUEwQixDQUMvQixTQUFpQixFQUNqQixLQUF5QixFQUN6QixZQUEwQjs7Y0FFcEIsYUFBYSxHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUM7UUFDN0MsSUFBSSxhQUFhLElBQUksYUFBYSxLQUFLLEtBQUssRUFBRTtZQUM1QyxxQkFBcUIsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDbEU7SUFDSCxDQUFDOzs7OztJQUVELE1BQU0sQ0FBQyxzQ0FBc0MsQ0FDM0MsWUFBa0M7UUFFbEMsWUFBWSxDQUFDLE9BQU87Ozs7UUFBQyxDQUFDLFVBQThCLEVBQUUsRUFBRTtZQUN0RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQ2pDLHdCQUF3QixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUMzQztRQUNILENBQUMsRUFBQyxDQUFDO0lBQ0wsQ0FBQzs7QUE3QmMsOEJBQWMsR0FBVyxJQUFJLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDOzs7Ozs7SUFBdEUsK0JBQXNFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0U3RvcmVNZXRhZGF0YSwgU3RhdGVDbGFzc0ludGVybmFsLCBTdGF0ZXNCeU5hbWUgfSBmcm9tICcuLi9pbnRlcm5hbC9pbnRlcm5hbHMnO1xuaW1wb3J0IHtcbiAgdGhyb3dTdGF0ZURlY29yYXRvckVycm9yLFxuICB0aHJvd1N0YXRlTmFtZUVycm9yLFxuICB0aHJvd1N0YXRlTmFtZVByb3BlcnR5RXJyb3IsXG4gIHRocm93U3RhdGVVbmlxdWVFcnJvclxufSBmcm9tICcuLi9jb25maWdzL21lc3NhZ2VzLmNvbmZpZyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTdG9yZVZhbGlkYXRvcnMge1xuICBwcml2YXRlIHN0YXRpYyBzdGF0ZU5hbWVSZWdleDogUmVnRXhwID0gbmV3IFJlZ0V4cCgnXlthLXpBLVowLTlfXSskJyk7XG5cbiAgc3RhdGljIGNoZWNrVGhhdFN0YXRlSXNOYW1lZENvcnJlY3RseShuYW1lOiBzdHJpbmcgfCBudWxsKTogdm9pZCB8IG5ldmVyIHtcbiAgICBpZiAoIW5hbWUpIHtcbiAgICAgIHRocm93U3RhdGVOYW1lUHJvcGVydHlFcnJvcigpO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMuc3RhdGVOYW1lUmVnZXgudGVzdChuYW1lKSkge1xuICAgICAgdGhyb3dTdGF0ZU5hbWVFcnJvcihuYW1lKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgY2hlY2tUaGF0U3RhdGVOYW1lSXNVbmlxdWUoXG4gICAgc3RhdGVOYW1lOiBzdHJpbmcsXG4gICAgc3RhdGU6IFN0YXRlQ2xhc3NJbnRlcm5hbCxcbiAgICBzdGF0ZXNCeU5hbWU6IFN0YXRlc0J5TmFtZVxuICApOiB2b2lkIHwgbmV2ZXIge1xuICAgIGNvbnN0IGV4aXN0aW5nU3RhdGUgPSBzdGF0ZXNCeU5hbWVbc3RhdGVOYW1lXTtcbiAgICBpZiAoZXhpc3RpbmdTdGF0ZSAmJiBleGlzdGluZ1N0YXRlICE9PSBzdGF0ZSkge1xuICAgICAgdGhyb3dTdGF0ZVVuaXF1ZUVycm9yKHN0YXRlTmFtZSwgc3RhdGUubmFtZSwgZXhpc3RpbmdTdGF0ZS5uYW1lKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgY2hlY2tUaGF0U3RhdGVDbGFzc2VzSGF2ZUJlZW5EZWNvcmF0ZWQoXG4gICAgc3RhdGVDbGFzc2VzOiBTdGF0ZUNsYXNzSW50ZXJuYWxbXVxuICApOiB2b2lkIHwgbmV2ZXIge1xuICAgIHN0YXRlQ2xhc3Nlcy5mb3JFYWNoKChzdGF0ZUNsYXNzOiBTdGF0ZUNsYXNzSW50ZXJuYWwpID0+IHtcbiAgICAgIGlmICghZ2V0U3RvcmVNZXRhZGF0YShzdGF0ZUNsYXNzKSkge1xuICAgICAgICB0aHJvd1N0YXRlRGVjb3JhdG9yRXJyb3Ioc3RhdGVDbGFzcy5uYW1lKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUtdmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL3NyYy91dGlscy9zdG9yZS12YWxpZGF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBb0MsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRixPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLG1CQUFtQixFQUNuQiwyQkFBMkIsRUFDM0IscUJBQXFCLEVBQ3RCLE1BQU0sNEJBQTRCLENBQUM7QUFFcEMsTUFBTSxPQUFnQixlQUFlO0lBR25DLE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxJQUFtQjtRQUN2RCxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1QsMkJBQTJCLEVBQUUsQ0FBQztTQUMvQjthQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMxQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsMEJBQTBCLENBQy9CLFNBQWlCLEVBQ2pCLEtBQXlCLEVBQ3pCLFlBQTBCO1FBRTFCLE1BQU0sYUFBYSxHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5QyxJQUFJLGFBQWEsSUFBSSxhQUFhLEtBQUssS0FBSyxFQUFFO1lBQzVDLHFCQUFxQixDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNsRTtJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsc0NBQXNDLENBQzNDLFlBQWtDO1FBRWxDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUE4QixFQUFFLEVBQUU7WUFDdEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUNqQyx3QkFBd0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDM0M7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBN0JjLDhCQUFjLEdBQUcsSUFBSSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldFN0b3JlTWV0YWRhdGEsIFN0YXRlQ2xhc3NJbnRlcm5hbCwgU3RhdGVzQnlOYW1lIH0gZnJvbSAnLi4vaW50ZXJuYWwvaW50ZXJuYWxzJztcbmltcG9ydCB7XG4gIHRocm93U3RhdGVEZWNvcmF0b3JFcnJvcixcbiAgdGhyb3dTdGF0ZU5hbWVFcnJvcixcbiAgdGhyb3dTdGF0ZU5hbWVQcm9wZXJ0eUVycm9yLFxuICB0aHJvd1N0YXRlVW5pcXVlRXJyb3Jcbn0gZnJvbSAnLi4vY29uZmlncy9tZXNzYWdlcy5jb25maWcnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU3RvcmVWYWxpZGF0b3JzIHtcbiAgcHJpdmF0ZSBzdGF0aWMgc3RhdGVOYW1lUmVnZXggPSBuZXcgUmVnRXhwKCdeW2EtekEtWjAtOV9dKyQnKTtcblxuICBzdGF0aWMgY2hlY2tUaGF0U3RhdGVJc05hbWVkQ29ycmVjdGx5KG5hbWU6IHN0cmluZyB8IG51bGwpOiB2b2lkIHwgbmV2ZXIge1xuICAgIGlmICghbmFtZSkge1xuICAgICAgdGhyb3dTdGF0ZU5hbWVQcm9wZXJ0eUVycm9yKCk7XG4gICAgfSBlbHNlIGlmICghdGhpcy5zdGF0ZU5hbWVSZWdleC50ZXN0KG5hbWUpKSB7XG4gICAgICB0aHJvd1N0YXRlTmFtZUVycm9yKG5hbWUpO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBjaGVja1RoYXRTdGF0ZU5hbWVJc1VuaXF1ZShcbiAgICBzdGF0ZU5hbWU6IHN0cmluZyxcbiAgICBzdGF0ZTogU3RhdGVDbGFzc0ludGVybmFsLFxuICAgIHN0YXRlc0J5TmFtZTogU3RhdGVzQnlOYW1lXG4gICk6IHZvaWQgfCBuZXZlciB7XG4gICAgY29uc3QgZXhpc3RpbmdTdGF0ZSA9IHN0YXRlc0J5TmFtZVtzdGF0ZU5hbWVdO1xuICAgIGlmIChleGlzdGluZ1N0YXRlICYmIGV4aXN0aW5nU3RhdGUgIT09IHN0YXRlKSB7XG4gICAgICB0aHJvd1N0YXRlVW5pcXVlRXJyb3Ioc3RhdGVOYW1lLCBzdGF0ZS5uYW1lLCBleGlzdGluZ1N0YXRlLm5hbWUpO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBjaGVja1RoYXRTdGF0ZUNsYXNzZXNIYXZlQmVlbkRlY29yYXRlZChcbiAgICBzdGF0ZUNsYXNzZXM6IFN0YXRlQ2xhc3NJbnRlcm5hbFtdXG4gICk6IHZvaWQgfCBuZXZlciB7XG4gICAgc3RhdGVDbGFzc2VzLmZvckVhY2goKHN0YXRlQ2xhc3M6IFN0YXRlQ2xhc3NJbnRlcm5hbCkgPT4ge1xuICAgICAgaWYgKCFnZXRTdG9yZU1ldGFkYXRhKHN0YXRlQ2xhc3MpKSB7XG4gICAgICAgIHRocm93U3RhdGVEZWNvcmF0b3JFcnJvcihzdGF0ZUNsYXNzLm5hbWUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
4
|
-
*/
|
|
5
1
|
/**
|
|
6
2
|
* Returns the type from an action instance/class.
|
|
7
3
|
* @ignore
|
|
8
|
-
* @param {?} action
|
|
9
|
-
* @return {?}
|
|
10
4
|
*/
|
|
11
5
|
export function getActionTypeFromInstance(action) {
|
|
12
6
|
if (action.constructor && action.constructor.type) {
|
|
@@ -19,19 +13,12 @@ export function getActionTypeFromInstance(action) {
|
|
|
19
13
|
/**
|
|
20
14
|
* Matches a action
|
|
21
15
|
* @ignore
|
|
22
|
-
* @param {?} action1
|
|
23
|
-
* @return {?}
|
|
24
16
|
*/
|
|
25
17
|
export function actionMatcher(action1) {
|
|
26
|
-
/** @type {?} */
|
|
27
18
|
const type1 = getActionTypeFromInstance(action1);
|
|
28
|
-
return (
|
|
29
|
-
* @param {?} action2
|
|
30
|
-
* @return {?}
|
|
31
|
-
*/
|
|
32
|
-
function (action2) {
|
|
19
|
+
return function (action2) {
|
|
33
20
|
return type1 === getActionTypeFromInstance(action2);
|
|
34
|
-
}
|
|
21
|
+
};
|
|
35
22
|
}
|
|
36
23
|
/**
|
|
37
24
|
* Set a deeply nested value. Example:
|
|
@@ -42,27 +29,12 @@ export function actionMatcher(action1) {
|
|
|
42
29
|
* While it traverses it also creates new objects from top down.
|
|
43
30
|
*
|
|
44
31
|
* @ignore
|
|
45
|
-
* @type {?}
|
|
46
32
|
*/
|
|
47
|
-
export const setValue = (
|
|
48
|
-
* @param {?} obj
|
|
49
|
-
* @param {?} prop
|
|
50
|
-
* @param {?} val
|
|
51
|
-
* @return {?}
|
|
52
|
-
*/
|
|
53
|
-
(obj, prop, val) => {
|
|
33
|
+
export const setValue = (obj, prop, val) => {
|
|
54
34
|
obj = Object.assign({}, obj);
|
|
55
|
-
/** @type {?} */
|
|
56
35
|
const split = prop.split('.');
|
|
57
|
-
/** @type {?} */
|
|
58
36
|
const lastIndex = split.length - 1;
|
|
59
|
-
split.reduce((
|
|
60
|
-
* @param {?} acc
|
|
61
|
-
* @param {?} part
|
|
62
|
-
* @param {?} index
|
|
63
|
-
* @return {?}
|
|
64
|
-
*/
|
|
65
|
-
(acc, part, index) => {
|
|
37
|
+
split.reduce((acc, part, index) => {
|
|
66
38
|
if (index === lastIndex) {
|
|
67
39
|
acc[part] = val;
|
|
68
40
|
}
|
|
@@ -70,28 +42,17 @@ export const setValue = (/**
|
|
|
70
42
|
acc[part] = Array.isArray(acc[part]) ? acc[part].slice() : Object.assign({}, acc[part]);
|
|
71
43
|
}
|
|
72
44
|
return acc && acc[part];
|
|
73
|
-
}
|
|
45
|
+
}, obj);
|
|
74
46
|
return obj;
|
|
75
|
-
}
|
|
47
|
+
};
|
|
76
48
|
/**
|
|
77
49
|
* Get a deeply nested value. Example:
|
|
78
50
|
*
|
|
79
51
|
* getValue({ foo: bar: [] }, 'foo.bar') //=> []
|
|
80
52
|
*
|
|
81
53
|
* @ignore
|
|
82
|
-
* @type {?}
|
|
83
|
-
*/
|
|
84
|
-
export const getValue = (/**
|
|
85
|
-
* @param {?} obj
|
|
86
|
-
* @param {?} prop
|
|
87
|
-
* @return {?}
|
|
88
54
|
*/
|
|
89
|
-
(obj, prop) => prop.split('.').reduce((
|
|
90
|
-
* @param {?} acc
|
|
91
|
-
* @param {?} part
|
|
92
|
-
* @return {?}
|
|
93
|
-
*/
|
|
94
|
-
(acc, part) => acc && acc[part]), obj));
|
|
55
|
+
export const getValue = (obj, prop) => prop.split('.').reduce((acc, part) => acc && acc[part], obj);
|
|
95
56
|
/**
|
|
96
57
|
* Simple object check.
|
|
97
58
|
*
|
|
@@ -99,32 +60,20 @@ export const getValue = (/**
|
|
|
99
60
|
* isObject(1) //=> false
|
|
100
61
|
*
|
|
101
62
|
* @ignore
|
|
102
|
-
* @type {?}
|
|
103
|
-
*/
|
|
104
|
-
export const isObject = (/**
|
|
105
|
-
* @param {?} item
|
|
106
|
-
* @return {?}
|
|
107
63
|
*/
|
|
108
|
-
(item) => {
|
|
64
|
+
export const isObject = (item) => {
|
|
109
65
|
return item && typeof item === 'object' && !Array.isArray(item);
|
|
110
|
-
}
|
|
66
|
+
};
|
|
111
67
|
/**
|
|
112
68
|
* Deep merge two objects.
|
|
113
69
|
*
|
|
114
70
|
* mergeDeep({a:1, b:{x: 1, y:2}}, {b:{x: 3}, c:4}) //=> {a:1, b:{x:3, y:2}, c:4}
|
|
115
71
|
*
|
|
116
|
-
*
|
|
117
|
-
* @type {?}
|
|
118
|
-
*/
|
|
119
|
-
export const mergeDeep = (/**
|
|
120
|
-
* @param {?} base
|
|
121
|
-
* @param {...?} sources
|
|
122
|
-
* @return {?}
|
|
72
|
+
* @param base base object onto which `sources` will be applied
|
|
123
73
|
*/
|
|
124
|
-
(base, ...sources) => {
|
|
74
|
+
export const mergeDeep = (base, ...sources) => {
|
|
125
75
|
if (!sources.length)
|
|
126
76
|
return base;
|
|
127
|
-
/** @type {?} */
|
|
128
77
|
const source = sources.shift();
|
|
129
78
|
if (isObject(base) && isObject(source)) {
|
|
130
79
|
for (const key in source) {
|
|
@@ -139,5 +88,5 @@ export const mergeDeep = (/**
|
|
|
139
88
|
}
|
|
140
89
|
}
|
|
141
90
|
return mergeDeep(base, ...sources);
|
|
142
|
-
}
|
|
143
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
91
|
+
};
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvdXRpbHMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLHlCQUF5QixDQUFDLE1BQVc7SUFDbkQsSUFBSSxNQUFNLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFO1FBQ2pELE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7S0FDaEM7U0FBTTtRQUNMLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQztLQUNwQjtBQUNILENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUFDLE9BQVk7SUFDeEMsTUFBTSxLQUFLLEdBQUcseUJBQXlCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFakQsT0FBTyxVQUFTLE9BQVk7UUFDMUIsT0FBTyxLQUFLLEtBQUsseUJBQXlCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEQsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQVEsRUFBRSxJQUFZLEVBQUUsR0FBUSxFQUFFLEVBQUU7SUFDM0QsR0FBRyxxQkFBUSxHQUFHLENBQUUsQ0FBQztJQUVqQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlCLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBRW5DLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQ2hDLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTtZQUN2QixHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDO1NBQ2pCO2FBQU07WUFDTCxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsbUJBQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFFLENBQUM7U0FDN0U7UUFFRCxPQUFPLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBRVIsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLENBQUM7QUFFRjs7Ozs7O0dBTUc7QUFDSCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFRLEVBQUUsSUFBWSxFQUFPLEVBQUUsQ0FDdEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFRLEVBQUUsSUFBWSxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBRTVFOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxJQUFTLEVBQUUsRUFBRTtJQUNwQyxPQUFPLElBQUksSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2xFLENBQUMsQ0FBQztBQUVGOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLElBQVMsRUFBRSxHQUFHLE9BQWMsRUFBTyxFQUFFO0lBQzdELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTTtRQUFFLE9BQU8sSUFBSSxDQUFDO0lBQ2pDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUUvQixJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDdEMsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLEVBQUU7WUFDeEIsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO29CQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNuRCxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQ25DO2lCQUFNO2dCQUNMLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQzdDO1NBQ0Y7S0FDRjtJQUVELE9BQU8sU0FBUyxDQUFDLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDO0FBQ3JDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmV0dXJucyB0aGUgdHlwZSBmcm9tIGFuIGFjdGlvbiBpbnN0YW5jZS9jbGFzcy5cbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEFjdGlvblR5cGVGcm9tSW5zdGFuY2UoYWN0aW9uOiBhbnkpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBpZiAoYWN0aW9uLmNvbnN0cnVjdG9yICYmIGFjdGlvbi5jb25zdHJ1Y3Rvci50eXBlKSB7XG4gICAgcmV0dXJuIGFjdGlvbi5jb25zdHJ1Y3Rvci50eXBlO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBhY3Rpb24udHlwZTtcbiAgfVxufVxuXG4vKipcbiAqIE1hdGNoZXMgYSBhY3Rpb25cbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFjdGlvbk1hdGNoZXIoYWN0aW9uMTogYW55KSB7XG4gIGNvbnN0IHR5cGUxID0gZ2V0QWN0aW9uVHlwZUZyb21JbnN0YW5jZShhY3Rpb24xKTtcblxuICByZXR1cm4gZnVuY3Rpb24oYWN0aW9uMjogYW55KSB7XG4gICAgcmV0dXJuIHR5cGUxID09PSBnZXRBY3Rpb25UeXBlRnJvbUluc3RhbmNlKGFjdGlvbjIpO1xuICB9O1xufVxuXG4vKipcbiAqIFNldCBhIGRlZXBseSBuZXN0ZWQgdmFsdWUuIEV4YW1wbGU6XG4gKlxuICogICBzZXRWYWx1ZSh7IGZvbzogeyBiYXI6IHsgZWF0OiBmYWxzZSB9IH0gfSxcbiAqICAgICAgJ2Zvby5iYXIuZWF0JywgdHJ1ZSkgLy89PiB7IGZvbzogeyBiYXI6IHsgZWF0OiB0cnVlIH0gfSB9XG4gKlxuICogV2hpbGUgaXQgdHJhdmVyc2VzIGl0IGFsc28gY3JlYXRlcyBuZXcgb2JqZWN0cyBmcm9tIHRvcCBkb3duLlxuICpcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGNvbnN0IHNldFZhbHVlID0gKG9iajogYW55LCBwcm9wOiBzdHJpbmcsIHZhbDogYW55KSA9PiB7XG4gIG9iaiA9IHsgLi4ub2JqIH07XG5cbiAgY29uc3Qgc3BsaXQgPSBwcm9wLnNwbGl0KCcuJyk7XG4gIGNvbnN0IGxhc3RJbmRleCA9IHNwbGl0Lmxlbmd0aCAtIDE7XG5cbiAgc3BsaXQucmVkdWNlKChhY2MsIHBhcnQsIGluZGV4KSA9PiB7XG4gICAgaWYgKGluZGV4ID09PSBsYXN0SW5kZXgpIHtcbiAgICAgIGFjY1twYXJ0XSA9IHZhbDtcbiAgICB9IGVsc2Uge1xuICAgICAgYWNjW3BhcnRdID0gQXJyYXkuaXNBcnJheShhY2NbcGFydF0pID8gYWNjW3BhcnRdLnNsaWNlKCkgOiB7IC4uLmFjY1twYXJ0XSB9O1xuICAgIH1cblxuICAgIHJldHVybiBhY2MgJiYgYWNjW3BhcnRdO1xuICB9LCBvYmopO1xuXG4gIHJldHVybiBvYmo7XG59O1xuXG4vKipcbiAqIEdldCBhIGRlZXBseSBuZXN0ZWQgdmFsdWUuIEV4YW1wbGU6XG4gKlxuICogICAgZ2V0VmFsdWUoeyBmb286IGJhcjogW10gfSwgJ2Zvby5iYXInKSAvLz0+IFtdXG4gKlxuICogQGlnbm9yZVxuICovXG5leHBvcnQgY29uc3QgZ2V0VmFsdWUgPSAob2JqOiBhbnksIHByb3A6IHN0cmluZyk6IGFueSA9PlxuICBwcm9wLnNwbGl0KCcuJykucmVkdWNlKChhY2M6IGFueSwgcGFydDogc3RyaW5nKSA9PiBhY2MgJiYgYWNjW3BhcnRdLCBvYmopO1xuXG4vKipcbiAqIFNpbXBsZSBvYmplY3QgY2hlY2suXG4gKlxuICogICAgaXNPYmplY3Qoe2E6MX0pIC8vPT4gdHJ1ZVxuICogICAgaXNPYmplY3QoMSkgLy89PiBmYWxzZVxuICpcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGNvbnN0IGlzT2JqZWN0ID0gKGl0ZW06IGFueSkgPT4ge1xuICByZXR1cm4gaXRlbSAmJiB0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkoaXRlbSk7XG59O1xuXG4vKipcbiAqIERlZXAgbWVyZ2UgdHdvIG9iamVjdHMuXG4gKlxuICogICAgbWVyZ2VEZWVwKHthOjEsIGI6e3g6IDEsIHk6Mn19LCB7Yjp7eDogM30sIGM6NH0pIC8vPT4ge2E6MSwgYjp7eDozLCB5OjJ9LCBjOjR9XG4gKlxuICogQHBhcmFtIGJhc2UgYmFzZSBvYmplY3Qgb250byB3aGljaCBgc291cmNlc2Agd2lsbCBiZSBhcHBsaWVkXG4gKi9cbmV4cG9ydCBjb25zdCBtZXJnZURlZXAgPSAoYmFzZTogYW55LCAuLi5zb3VyY2VzOiBhbnlbXSk6IGFueSA9PiB7XG4gIGlmICghc291cmNlcy5sZW5ndGgpIHJldHVybiBiYXNlO1xuICBjb25zdCBzb3VyY2UgPSBzb3VyY2VzLnNoaWZ0KCk7XG5cbiAgaWYgKGlzT2JqZWN0KGJhc2UpICYmIGlzT2JqZWN0KHNvdXJjZSkpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBzb3VyY2UpIHtcbiAgICAgIGlmIChpc09iamVjdChzb3VyY2Vba2V5XSkpIHtcbiAgICAgICAgaWYgKCFiYXNlW2tleV0pIE9iamVjdC5hc3NpZ24oYmFzZSwgeyBba2V5XToge30gfSk7XG4gICAgICAgIG1lcmdlRGVlcChiYXNlW2tleV0sIHNvdXJjZVtrZXldKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24oYmFzZSwgeyBba2V5XTogc291cmNlW2tleV0gfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1lcmdlRGVlcChiYXNlLCAuLi5zb3VyY2VzKTtcbn07XG4iXX0=
|