@ngxs/store 3.6.2-dev.master-8e14fe1 → 3.7.0

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.
Files changed (231) hide show
  1. package/README.md +16 -16
  2. package/bundles/ngxs-store-internals.umd.js +210 -210
  3. package/bundles/ngxs-store-internals.umd.js.map +1 -1
  4. package/bundles/ngxs-store-internals.umd.min.js.map +1 -1
  5. package/bundles/ngxs-store-operators.umd.js +326 -321
  6. package/bundles/ngxs-store-operators.umd.js.map +1 -1
  7. package/bundles/ngxs-store-operators.umd.min.js +10 -10
  8. package/bundles/ngxs-store-operators.umd.min.js.map +1 -1
  9. package/bundles/ngxs-store.umd.js +4401 -4386
  10. package/bundles/ngxs-store.umd.js.map +1 -1
  11. package/bundles/ngxs-store.umd.min.js +11 -11
  12. package/bundles/ngxs-store.umd.min.js.map +1 -1
  13. package/esm2015/index.js +13 -13
  14. package/esm2015/internals/angular.js +40 -40
  15. package/esm2015/internals/index.js +10 -10
  16. package/esm2015/internals/initial-state.js +34 -34
  17. package/esm2015/internals/internal-tokens.js +16 -16
  18. package/esm2015/internals/memoize.js +70 -70
  19. package/esm2015/internals/ngxs-bootstrapper.js +41 -41
  20. package/esm2015/internals/ngxs-store-internals.js +8 -8
  21. package/esm2015/internals/src/symbols.js +14 -14
  22. package/esm2015/internals/symbols.js +14 -14
  23. package/esm2015/ngxs-store.js +25 -25
  24. package/esm2015/operators/append.js +31 -31
  25. package/esm2015/operators/compose.js +24 -24
  26. package/esm2015/operators/iif.js +56 -56
  27. package/esm2015/operators/index.js +18 -18
  28. package/esm2015/operators/insert-item.js +41 -41
  29. package/esm2015/operators/internals.js +5 -5
  30. package/esm2015/operators/ngxs-store-operators.js +8 -8
  31. package/esm2015/operators/patch.js +39 -39
  32. package/esm2015/operators/remove-item.js +34 -34
  33. package/esm2015/operators/update-item.js +52 -52
  34. package/esm2015/operators/utils.js +50 -50
  35. package/esm2015/src/actions/actions.js +39 -39
  36. package/esm2015/src/actions/symbols.js +39 -39
  37. package/esm2015/src/actions-stream.js +140 -140
  38. package/esm2015/src/configs/messages.config.js +87 -87
  39. package/esm2015/src/decorators/action.js +44 -44
  40. package/esm2015/src/decorators/select/select-factory.js +39 -39
  41. package/esm2015/src/decorators/select/select.js +45 -46
  42. package/esm2015/src/decorators/select/symbols.js +50 -50
  43. package/esm2015/src/decorators/selector/selector.js +55 -55
  44. package/esm2015/src/decorators/selector/symbols.js +5 -5
  45. package/esm2015/src/decorators/selector-options.js +34 -34
  46. package/esm2015/src/decorators/state.js +75 -75
  47. package/esm2015/src/execution/dispatch-outside-zone-ngxs-execution-strategy.js +96 -96
  48. package/esm2015/src/execution/internal-ngxs-execution-strategy.js +45 -45
  49. package/esm2015/src/execution/noop-ngxs-execution-strategy.js +27 -27
  50. package/esm2015/src/execution/symbols.js +29 -29
  51. package/esm2015/src/host-environment/host-environment.js +31 -31
  52. package/esm2015/src/internal/config-validator.js +67 -67
  53. package/esm2015/src/internal/dispatcher.js +210 -202
  54. package/esm2015/src/internal/internals.js +489 -489
  55. package/esm2015/src/internal/lifecycle-state-manager.js +129 -129
  56. package/esm2015/src/internal/state-context-factory.js +138 -138
  57. package/esm2015/src/internal/state-factory.js +401 -392
  58. package/esm2015/src/internal/state-operations.js +125 -125
  59. package/esm2015/src/internal/state-operators.js +33 -33
  60. package/esm2015/src/internal/state-stream.js +21 -21
  61. package/esm2015/src/ivy/ensure-state-class-is-injectable.js +34 -34
  62. package/esm2015/src/ivy/ivy-enabled-in-dev-mode.js +40 -50
  63. package/esm2015/src/module.js +171 -171
  64. package/esm2015/src/modules/ngxs-feature.module.js +63 -63
  65. package/esm2015/src/modules/ngxs-root.module.js +52 -52
  66. package/esm2015/src/operators/leave-ngxs.js +58 -58
  67. package/esm2015/src/operators/of-action.js +191 -188
  68. package/esm2015/src/plugin-manager.js +70 -70
  69. package/esm2015/src/plugin_api.js +10 -10
  70. package/esm2015/src/public_api.js +29 -29
  71. package/esm2015/src/public_to_deprecate.js +64 -64
  72. package/esm2015/src/state-token/state-token.js +45 -45
  73. package/esm2015/src/state-token/symbols.js +5 -5
  74. package/esm2015/src/store.js +174 -174
  75. package/esm2015/src/symbols.js +221 -221
  76. package/esm2015/src/utils/compose.js +44 -44
  77. package/esm2015/src/utils/freeze.js +35 -35
  78. package/esm2015/src/utils/selector-utils.js +221 -221
  79. package/esm2015/src/utils/store-validators.js +65 -65
  80. package/esm2015/src/utils/utils.js +95 -93
  81. package/esm5/index.js +13 -13
  82. package/esm5/internals/angular.js +40 -40
  83. package/esm5/internals/index.js +10 -10
  84. package/esm5/internals/initial-state.js +45 -45
  85. package/esm5/internals/internal-tokens.js +16 -16
  86. package/esm5/internals/memoize.js +71 -71
  87. package/esm5/internals/ngxs-bootstrapper.js +56 -56
  88. package/esm5/internals/ngxs-store-internals.js +8 -8
  89. package/esm5/internals/src/symbols.js +14 -14
  90. package/esm5/internals/symbols.js +14 -14
  91. package/esm5/ngxs-store.js +25 -25
  92. package/esm5/operators/append.js +31 -31
  93. package/esm5/operators/compose.js +28 -28
  94. package/esm5/operators/iif.js +56 -56
  95. package/esm5/operators/index.js +18 -18
  96. package/esm5/operators/insert-item.js +41 -41
  97. package/esm5/operators/internals.js +5 -5
  98. package/esm5/operators/ngxs-store-operators.js +8 -8
  99. package/esm5/operators/patch.js +40 -40
  100. package/esm5/operators/remove-item.js +34 -34
  101. package/esm5/operators/update-item.js +52 -52
  102. package/esm5/operators/utils.js +50 -50
  103. package/esm5/src/actions/actions.js +62 -62
  104. package/esm5/src/actions/symbols.js +39 -39
  105. package/esm5/src/actions-stream.js +186 -186
  106. package/esm5/src/configs/messages.config.js +104 -104
  107. package/esm5/src/decorators/action.js +56 -56
  108. package/esm5/src/decorators/select/select-factory.js +37 -37
  109. package/esm5/src/decorators/select/select.js +50 -51
  110. package/esm5/src/decorators/select/symbols.js +51 -51
  111. package/esm5/src/decorators/selector/selector.js +55 -55
  112. package/esm5/src/decorators/selector/symbols.js +5 -5
  113. package/esm5/src/decorators/selector-options.js +34 -34
  114. package/esm5/src/decorators/state.js +76 -76
  115. package/esm5/src/execution/dispatch-outside-zone-ngxs-execution-strategy.js +121 -121
  116. package/esm5/src/execution/internal-ngxs-execution-strategy.js +54 -54
  117. package/esm5/src/execution/noop-ngxs-execution-strategy.js +41 -41
  118. package/esm5/src/execution/symbols.js +29 -29
  119. package/esm5/src/host-environment/host-environment.js +29 -29
  120. package/esm5/src/internal/config-validator.js +76 -76
  121. package/esm5/src/internal/dispatcher.js +246 -238
  122. package/esm5/src/internal/internals.js +491 -491
  123. package/esm5/src/internal/lifecycle-state-manager.js +177 -177
  124. package/esm5/src/internal/state-context-factory.js +146 -146
  125. package/esm5/src/internal/state-factory.js +528 -519
  126. package/esm5/src/internal/state-operations.js +139 -139
  127. package/esm5/src/internal/state-operators.js +34 -34
  128. package/esm5/src/internal/state-stream.js +25 -25
  129. package/esm5/src/ivy/ensure-state-class-is-injectable.js +34 -34
  130. package/esm5/src/ivy/ivy-enabled-in-dev-mode.js +40 -50
  131. package/esm5/src/module.js +214 -214
  132. package/esm5/src/modules/ngxs-feature.module.js +65 -65
  133. package/esm5/src/modules/ngxs-root.module.js +47 -47
  134. package/esm5/src/operators/leave-ngxs.js +58 -58
  135. package/esm5/src/operators/of-action.js +217 -214
  136. package/esm5/src/plugin-manager.js +82 -82
  137. package/esm5/src/plugin_api.js +10 -10
  138. package/esm5/src/public_api.js +29 -29
  139. package/esm5/src/public_to_deprecate.js +64 -64
  140. package/esm5/src/state-token/state-token.js +57 -57
  141. package/esm5/src/state-token/symbols.js +5 -5
  142. package/esm5/src/store.js +225 -225
  143. package/esm5/src/symbols.js +230 -230
  144. package/esm5/src/utils/compose.js +55 -55
  145. package/esm5/src/utils/freeze.js +35 -35
  146. package/esm5/src/utils/selector-utils.js +230 -230
  147. package/esm5/src/utils/store-validators.js +86 -86
  148. package/esm5/src/utils/utils.js +98 -96
  149. package/fesm2015/ngxs-store-internals.js +191 -191
  150. package/fesm2015/ngxs-store-internals.js.map +1 -1
  151. package/fesm2015/ngxs-store-operators.js +312 -312
  152. package/fesm2015/ngxs-store-operators.js.map +1 -1
  153. package/fesm2015/ngxs-store.js +3878 -3868
  154. package/fesm2015/ngxs-store.js.map +1 -1
  155. package/fesm5/ngxs-store-internals.js +216 -216
  156. package/fesm5/ngxs-store-internals.js.map +1 -1
  157. package/fesm5/ngxs-store-operators.js +316 -316
  158. package/fesm5/ngxs-store-operators.js.map +1 -1
  159. package/fesm5/ngxs-store.js +4397 -4387
  160. package/fesm5/ngxs-store.js.map +1 -1
  161. package/index.d.ts +8 -8
  162. package/internals/angular.d.ts +3 -3
  163. package/internals/index.d.ts +6 -6
  164. package/internals/initial-state.d.ts +8 -8
  165. package/internals/internal-tokens.d.ts +9 -9
  166. package/internals/memoize.d.ts +9 -9
  167. package/internals/ngxs-bootstrapper.d.ts +13 -13
  168. package/internals/ngxs-store-internals.d.ts +4 -4
  169. package/internals/src/symbols.d.ts +7 -7
  170. package/internals/symbols.d.ts +7 -7
  171. package/ngxs-store.d.ts +22 -22
  172. package/ngxs-store.metadata.json +1 -1
  173. package/operators/append.d.ts +6 -6
  174. package/operators/compose.d.ts +2 -2
  175. package/operators/iif.d.ts +11 -11
  176. package/operators/index.d.ts +13 -13
  177. package/operators/insert-item.d.ts +7 -7
  178. package/operators/internals.d.ts +2 -2
  179. package/operators/ngxs-store-operators.d.ts +4 -4
  180. package/operators/patch.d.ts +10 -10
  181. package/operators/remove-item.d.ts +7 -7
  182. package/operators/update-item.d.ts +10 -10
  183. package/operators/utils.d.ts +9 -9
  184. package/package.json +4 -4
  185. package/src/actions/actions.d.ts +15 -15
  186. package/src/actions/symbols.d.ts +21 -21
  187. package/src/actions-stream.d.ts +49 -49
  188. package/src/configs/messages.config.d.ts +30 -30
  189. package/src/decorators/action.d.ts +5 -5
  190. package/src/decorators/select/select-factory.d.ts +12 -12
  191. package/src/decorators/select/select.d.ts +4 -5
  192. package/src/decorators/select/symbols.d.ts +10 -14
  193. package/src/decorators/selector/selector.d.ts +5 -5
  194. package/src/decorators/selector/symbols.d.ts +4 -4
  195. package/src/decorators/selector-options.d.ts +5 -5
  196. package/src/decorators/state.d.ts +6 -6
  197. package/src/execution/dispatch-outside-zone-ngxs-execution-strategy.d.ts +12 -12
  198. package/src/execution/internal-ngxs-execution-strategy.d.ts +7 -7
  199. package/src/execution/noop-ngxs-execution-strategy.d.ts +5 -5
  200. package/src/execution/symbols.d.ts +6 -6
  201. package/src/host-environment/host-environment.d.ts +6 -6
  202. package/src/internal/config-validator.d.ts +10 -10
  203. package/src/internal/dispatcher.d.ts +31 -31
  204. package/src/internal/internals.d.ts +167 -167
  205. package/src/internal/lifecycle-state-manager.d.ts +20 -20
  206. package/src/internal/state-context-factory.d.ts +15 -15
  207. package/src/internal/state-factory.d.ts +57 -57
  208. package/src/internal/state-operations.d.ts +21 -21
  209. package/src/internal/state-operators.d.ts +2 -2
  210. package/src/internal/state-stream.d.ts +9 -9
  211. package/src/ivy/ensure-state-class-is-injectable.d.ts +6 -6
  212. package/src/ivy/ivy-enabled-in-dev-mode.d.ts +14 -14
  213. package/src/module.d.ts +23 -23
  214. package/src/modules/ngxs-feature.module.d.ts +13 -13
  215. package/src/modules/ngxs-root.module.d.ts +13 -13
  216. package/src/operators/leave-ngxs.d.ts +7 -7
  217. package/src/operators/of-action.d.ts +43 -42
  218. package/src/plugin-manager.d.ts +10 -10
  219. package/src/plugin_api.d.ts +5 -5
  220. package/src/public_api.d.ts +17 -17
  221. package/src/public_to_deprecate.d.ts +21 -21
  222. package/src/state-token/state-token.d.ts +7 -7
  223. package/src/state-token/symbols.d.ts +5 -5
  224. package/src/store.d.ts +53 -53
  225. package/src/symbols.d.ts +137 -137
  226. package/src/utils/compose.d.ts +23 -23
  227. package/src/utils/freeze.d.ts +5 -5
  228. package/src/utils/selector-utils.d.ts +23 -23
  229. package/src/utils/store-validators.d.ts +8 -8
  230. package/src/utils/utils.d.ts +29 -29
  231. package/types/index.d.ts +2 -2
@@ -1,86 +1,86 @@
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 { CONFIG_MESSAGES as MESSAGES, VALIDATION_CODE as CODE } from '../configs/messages.config';
7
- /**
8
- * @abstract
9
- */
10
- var StoreValidators = /** @class */ (function () {
11
- function StoreValidators() {
12
- }
13
- /**
14
- * @param {?} name
15
- * @return {?}
16
- */
17
- StoreValidators.stateNameErrorMessage = /**
18
- * @param {?} name
19
- * @return {?}
20
- */
21
- function (name) {
22
- return MESSAGES[CODE.STATE_NAME](name);
23
- };
24
- /**
25
- * @param {?} name
26
- * @return {?}
27
- */
28
- StoreValidators.checkCorrectStateName = /**
29
- * @param {?} name
30
- * @return {?}
31
- */
32
- function (name) {
33
- if (!name) {
34
- throw new Error(MESSAGES[CODE.STATE_NAME_PROPERTY]());
35
- }
36
- if (!this.stateNameRegex.test(name)) {
37
- throw new Error(this.stateNameErrorMessage(name));
38
- }
39
- };
40
- /**
41
- * @param {?} state
42
- * @param {?} statesByName
43
- * @return {?}
44
- */
45
- StoreValidators.checkStateNameIsUnique = /**
46
- * @param {?} state
47
- * @param {?} statesByName
48
- * @return {?}
49
- */
50
- function (state, statesByName) {
51
- /** @type {?} */
52
- var meta = this.getValidStateMeta(state);
53
- /** @type {?} */
54
- var stateName = (/** @type {?} */ ((/** @type {?} */ (meta)).name));
55
- /** @type {?} */
56
- var existingState = statesByName[stateName];
57
- if (existingState && existingState !== state) {
58
- throw new Error(MESSAGES[CODE.STATE_UNIQUE](stateName, state.name, existingState.name));
59
- }
60
- return stateName;
61
- };
62
- /**
63
- * @param {?} state
64
- * @return {?}
65
- */
66
- StoreValidators.getValidStateMeta = /**
67
- * @param {?} state
68
- * @return {?}
69
- */
70
- function (state) {
71
- /** @type {?} */
72
- var meta = getStoreMetadata(state);
73
- if (!meta) {
74
- throw new Error(MESSAGES[CODE.STATE_DECORATOR]());
75
- }
76
- return meta;
77
- };
78
- StoreValidators.stateNameRegex = new RegExp('^[a-zA-Z0-9_]+$');
79
- return StoreValidators;
80
- }());
81
- export { StoreValidators };
82
- if (false) {
83
- /** @type {?} */
84
- StoreValidators.stateNameRegex;
85
- }
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUtdmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JlLyIsInNvdXJjZXMiOlsic3JjL3V0aWxzL3N0b3JlLXZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxnQkFBZ0IsRUFJakIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQ0wsZUFBZSxJQUFJLFFBQVEsRUFDM0IsZUFBZSxJQUFJLElBQUksRUFDeEIsTUFBTSw0QkFBNEIsQ0FBQzs7OztBQUVwQztJQUFBO0lBc0NBLENBQUM7Ozs7O0lBbkNlLHFDQUFxQjs7OztJQUFuQyxVQUFvQyxJQUFZO1FBQzlDLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QyxDQUFDOzs7OztJQUVhLHFDQUFxQjs7OztJQUFuQyxVQUFvQyxJQUFtQjtRQUNyRCxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1QsTUFBTSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZEO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDbkQ7SUFDSCxDQUFDOzs7Ozs7SUFFYSxzQ0FBc0I7Ozs7O0lBQXBDLFVBQ0UsS0FBeUIsRUFDekIsWUFBMEI7O1lBRXBCLElBQUksR0FBa0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQzs7WUFDbkQsU0FBUyxHQUFXLG1CQUFBLG1CQUFBLElBQUksRUFBQyxDQUFDLElBQUksRUFBVTs7WUFDeEMsYUFBYSxHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUM7UUFDN0MsSUFBSSxhQUFhLElBQUksYUFBYSxLQUFLLEtBQUssRUFBRTtZQUM1QyxNQUFNLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDekY7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDOzs7OztJQUVhLGlDQUFpQjs7OztJQUEvQixVQUFnQyxLQUF5Qjs7WUFDakQsSUFBSSxHQUFrQixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7UUFDbkQsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNULE1BQU0sSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDbkQ7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFwQ2EsOEJBQWMsR0FBVyxJQUFJLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBcUN2RSxzQkFBQztDQUFBLEFBdENELElBc0NDO1NBdENxQixlQUFlOzs7SUFDbkMsK0JBQXFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgZ2V0U3RvcmVNZXRhZGF0YSxcbiAgTWV0YURhdGFNb2RlbCxcbiAgU3RhdGVDbGFzc0ludGVybmFsLFxuICBTdGF0ZXNCeU5hbWVcbn0gZnJvbSAnLi4vaW50ZXJuYWwvaW50ZXJuYWxzJztcbmltcG9ydCB7XG4gIENPTkZJR19NRVNTQUdFUyBhcyBNRVNTQUdFUyxcbiAgVkFMSURBVElPTl9DT0RFIGFzIENPREVcbn0gZnJvbSAnLi4vY29uZmlncy9tZXNzYWdlcy5jb25maWcnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU3RvcmVWYWxpZGF0b3JzIHtcbiAgcHVibGljIHN0YXRpYyBzdGF0ZU5hbWVSZWdleDogUmVnRXhwID0gbmV3IFJlZ0V4cCgnXlthLXpBLVowLTlfXSskJyk7XG5cbiAgcHVibGljIHN0YXRpYyBzdGF0ZU5hbWVFcnJvck1lc3NhZ2UobmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIE1FU1NBR0VTW0NPREUuU1RBVEVfTkFNRV0obmFtZSk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNoZWNrQ29ycmVjdFN0YXRlTmFtZShuYW1lOiBzdHJpbmcgfCBudWxsKSB7XG4gICAgaWYgKCFuYW1lKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoTUVTU0FHRVNbQ09ERS5TVEFURV9OQU1FX1BST1BFUlRZXSgpKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuc3RhdGVOYW1lUmVnZXgudGVzdChuYW1lKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKHRoaXMuc3RhdGVOYW1lRXJyb3JNZXNzYWdlKG5hbWUpKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNoZWNrU3RhdGVOYW1lSXNVbmlxdWUoXG4gICAgc3RhdGU6IFN0YXRlQ2xhc3NJbnRlcm5hbCxcbiAgICBzdGF0ZXNCeU5hbWU6IFN0YXRlc0J5TmFtZVxuICApOiBzdHJpbmcge1xuICAgIGNvbnN0IG1ldGE6IE1ldGFEYXRhTW9kZWwgPSB0aGlzLmdldFZhbGlkU3RhdGVNZXRhKHN0YXRlKTtcbiAgICBjb25zdCBzdGF0ZU5hbWU6IHN0cmluZyA9IG1ldGEhLm5hbWUgYXMgc3RyaW5nO1xuICAgIGNvbnN0IGV4aXN0aW5nU3RhdGUgPSBzdGF0ZXNCeU5hbWVbc3RhdGVOYW1lXTtcbiAgICBpZiAoZXhpc3RpbmdTdGF0ZSAmJiBleGlzdGluZ1N0YXRlICE9PSBzdGF0ZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKE1FU1NBR0VTW0NPREUuU1RBVEVfVU5JUVVFXShzdGF0ZU5hbWUsIHN0YXRlLm5hbWUsIGV4aXN0aW5nU3RhdGUubmFtZSkpO1xuICAgIH1cbiAgICByZXR1cm4gc3RhdGVOYW1lO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBnZXRWYWxpZFN0YXRlTWV0YShzdGF0ZTogU3RhdGVDbGFzc0ludGVybmFsKTogTWV0YURhdGFNb2RlbCB7XG4gICAgY29uc3QgbWV0YTogTWV0YURhdGFNb2RlbCA9IGdldFN0b3JlTWV0YWRhdGEoc3RhdGUpO1xuICAgIGlmICghbWV0YSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKE1FU1NBR0VTW0NPREUuU1RBVEVfREVDT1JBVE9SXSgpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWV0YTtcbiAgfVxufVxuIl19
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 { CONFIG_MESSAGES as MESSAGES, VALIDATION_CODE as CODE } from '../configs/messages.config';
7
+ /**
8
+ * @abstract
9
+ */
10
+ var StoreValidators = /** @class */ (function () {
11
+ function StoreValidators() {
12
+ }
13
+ /**
14
+ * @param {?} name
15
+ * @return {?}
16
+ */
17
+ StoreValidators.stateNameErrorMessage = /**
18
+ * @param {?} name
19
+ * @return {?}
20
+ */
21
+ function (name) {
22
+ return MESSAGES[CODE.STATE_NAME](name);
23
+ };
24
+ /**
25
+ * @param {?} name
26
+ * @return {?}
27
+ */
28
+ StoreValidators.checkCorrectStateName = /**
29
+ * @param {?} name
30
+ * @return {?}
31
+ */
32
+ function (name) {
33
+ if (!name) {
34
+ throw new Error(MESSAGES[CODE.STATE_NAME_PROPERTY]());
35
+ }
36
+ if (!this.stateNameRegex.test(name)) {
37
+ throw new Error(this.stateNameErrorMessage(name));
38
+ }
39
+ };
40
+ /**
41
+ * @param {?} state
42
+ * @param {?} statesByName
43
+ * @return {?}
44
+ */
45
+ StoreValidators.checkStateNameIsUnique = /**
46
+ * @param {?} state
47
+ * @param {?} statesByName
48
+ * @return {?}
49
+ */
50
+ function (state, statesByName) {
51
+ /** @type {?} */
52
+ var meta = this.getValidStateMeta(state);
53
+ /** @type {?} */
54
+ var stateName = (/** @type {?} */ ((/** @type {?} */ (meta)).name));
55
+ /** @type {?} */
56
+ var existingState = statesByName[stateName];
57
+ if (existingState && existingState !== state) {
58
+ throw new Error(MESSAGES[CODE.STATE_UNIQUE](stateName, state.name, existingState.name));
59
+ }
60
+ return stateName;
61
+ };
62
+ /**
63
+ * @param {?} state
64
+ * @return {?}
65
+ */
66
+ StoreValidators.getValidStateMeta = /**
67
+ * @param {?} state
68
+ * @return {?}
69
+ */
70
+ function (state) {
71
+ /** @type {?} */
72
+ var meta = getStoreMetadata(state);
73
+ if (!meta) {
74
+ throw new Error(MESSAGES[CODE.STATE_DECORATOR]());
75
+ }
76
+ return meta;
77
+ };
78
+ StoreValidators.stateNameRegex = new RegExp('^[a-zA-Z0-9_]+$');
79
+ return StoreValidators;
80
+ }());
81
+ export { StoreValidators };
82
+ if (false) {
83
+ /** @type {?} */
84
+ StoreValidators.stateNameRegex;
85
+ }
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUtdmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JlLyIsInNvdXJjZXMiOlsic3JjL3V0aWxzL3N0b3JlLXZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxnQkFBZ0IsRUFJakIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQ0wsZUFBZSxJQUFJLFFBQVEsRUFDM0IsZUFBZSxJQUFJLElBQUksRUFDeEIsTUFBTSw0QkFBNEIsQ0FBQzs7OztBQUVwQztJQUFBO0lBc0NBLENBQUM7Ozs7O0lBbkNlLHFDQUFxQjs7OztJQUFuQyxVQUFvQyxJQUFZO1FBQzlDLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QyxDQUFDOzs7OztJQUVhLHFDQUFxQjs7OztJQUFuQyxVQUFvQyxJQUFtQjtRQUNyRCxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1QsTUFBTSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZEO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ25DLE1BQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDbkQ7SUFDSCxDQUFDOzs7Ozs7SUFFYSxzQ0FBc0I7Ozs7O0lBQXBDLFVBQ0UsS0FBeUIsRUFDekIsWUFBMEI7O1lBRXBCLElBQUksR0FBa0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQzs7WUFDbkQsU0FBUyxHQUFXLG1CQUFBLG1CQUFBLElBQUksRUFBQyxDQUFDLElBQUksRUFBVTs7WUFDeEMsYUFBYSxHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUM7UUFDN0MsSUFBSSxhQUFhLElBQUksYUFBYSxLQUFLLEtBQUssRUFBRTtZQUM1QyxNQUFNLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDekY7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDOzs7OztJQUVhLGlDQUFpQjs7OztJQUEvQixVQUFnQyxLQUF5Qjs7WUFDakQsSUFBSSxHQUFrQixnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7UUFDbkQsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNULE1BQU0sSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDbkQ7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFwQ2EsOEJBQWMsR0FBVyxJQUFJLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBcUN2RSxzQkFBQztDQUFBLEFBdENELElBc0NDO1NBdENxQixlQUFlOzs7SUFDbkMsK0JBQXFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBnZXRTdG9yZU1ldGFkYXRhLFxyXG4gIE1ldGFEYXRhTW9kZWwsXHJcbiAgU3RhdGVDbGFzc0ludGVybmFsLFxyXG4gIFN0YXRlc0J5TmFtZVxyXG59IGZyb20gJy4uL2ludGVybmFsL2ludGVybmFscyc7XHJcbmltcG9ydCB7XHJcbiAgQ09ORklHX01FU1NBR0VTIGFzIE1FU1NBR0VTLFxyXG4gIFZBTElEQVRJT05fQ09ERSBhcyBDT0RFXHJcbn0gZnJvbSAnLi4vY29uZmlncy9tZXNzYWdlcy5jb25maWcnO1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFN0b3JlVmFsaWRhdG9ycyB7XHJcbiAgcHVibGljIHN0YXRpYyBzdGF0ZU5hbWVSZWdleDogUmVnRXhwID0gbmV3IFJlZ0V4cCgnXlthLXpBLVowLTlfXSskJyk7XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgc3RhdGVOYW1lRXJyb3JNZXNzYWdlKG5hbWU6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIE1FU1NBR0VTW0NPREUuU1RBVEVfTkFNRV0obmFtZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGNoZWNrQ29ycmVjdFN0YXRlTmFtZShuYW1lOiBzdHJpbmcgfCBudWxsKSB7XHJcbiAgICBpZiAoIW5hbWUpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKE1FU1NBR0VTW0NPREUuU1RBVEVfTkFNRV9QUk9QRVJUWV0oKSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCF0aGlzLnN0YXRlTmFtZVJlZ2V4LnRlc3QobmFtZSkpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKHRoaXMuc3RhdGVOYW1lRXJyb3JNZXNzYWdlKG5hbWUpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgY2hlY2tTdGF0ZU5hbWVJc1VuaXF1ZShcclxuICAgIHN0YXRlOiBTdGF0ZUNsYXNzSW50ZXJuYWwsXHJcbiAgICBzdGF0ZXNCeU5hbWU6IFN0YXRlc0J5TmFtZVxyXG4gICk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBtZXRhOiBNZXRhRGF0YU1vZGVsID0gdGhpcy5nZXRWYWxpZFN0YXRlTWV0YShzdGF0ZSk7XHJcbiAgICBjb25zdCBzdGF0ZU5hbWU6IHN0cmluZyA9IG1ldGEhLm5hbWUgYXMgc3RyaW5nO1xyXG4gICAgY29uc3QgZXhpc3RpbmdTdGF0ZSA9IHN0YXRlc0J5TmFtZVtzdGF0ZU5hbWVdO1xyXG4gICAgaWYgKGV4aXN0aW5nU3RhdGUgJiYgZXhpc3RpbmdTdGF0ZSAhPT0gc3RhdGUpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKE1FU1NBR0VTW0NPREUuU1RBVEVfVU5JUVVFXShzdGF0ZU5hbWUsIHN0YXRlLm5hbWUsIGV4aXN0aW5nU3RhdGUubmFtZSkpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN0YXRlTmFtZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZ2V0VmFsaWRTdGF0ZU1ldGEoc3RhdGU6IFN0YXRlQ2xhc3NJbnRlcm5hbCk6IE1ldGFEYXRhTW9kZWwge1xyXG4gICAgY29uc3QgbWV0YTogTWV0YURhdGFNb2RlbCA9IGdldFN0b3JlTWV0YWRhdGEoc3RhdGUpO1xyXG4gICAgaWYgKCFtZXRhKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihNRVNTQUdFU1tDT0RFLlNUQVRFX0RFQ09SQVRPUl0oKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG1ldGE7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,96 +1,98 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- import * as tslib_1 from "tslib";
6
- /**
7
- * Returns the type from an action instance/class.
8
- * @ignore
9
- * @param {?} action
10
- * @return {?}
11
- */
12
- export function getActionTypeFromInstance(action) {
13
- if (action.constructor && action.constructor.type) {
14
- return action.constructor.type;
15
- }
16
- return action.type;
17
- }
18
- /**
19
- * Matches a action
20
- * @ignore
21
- * @param {?} action1
22
- * @return {?}
23
- */
24
- export function actionMatcher(action1) {
25
- /** @type {?} */
26
- var type1 = getActionTypeFromInstance(action1);
27
- return (/**
28
- * @param {?} action2
29
- * @return {?}
30
- */
31
- function (action2) {
32
- return type1 === getActionTypeFromInstance(action2);
33
- });
34
- }
35
- /**
36
- * Set a deeply nested value. Example:
37
- *
38
- * setValue({ foo: { bar: { eat: false } } },
39
- * 'foo.bar.eat', true) //=> { foo: { bar: { eat: true } } }
40
- *
41
- * While it traverses it also creates new objects from top down.
42
- *
43
- * @ignore
44
- * @type {?}
45
- */
46
- export var setValue = (/**
47
- * @param {?} obj
48
- * @param {?} prop
49
- * @param {?} val
50
- * @return {?}
51
- */
52
- function (obj, prop, val) {
53
- obj = tslib_1.__assign({}, obj);
54
- /** @type {?} */
55
- var split = prop.split('.');
56
- /** @type {?} */
57
- var lastIndex = split.length - 1;
58
- split.reduce((/**
59
- * @param {?} acc
60
- * @param {?} part
61
- * @param {?} index
62
- * @return {?}
63
- */
64
- function (acc, part, index) {
65
- if (index === lastIndex) {
66
- acc[part] = val;
67
- }
68
- else {
69
- acc[part] = Array.isArray(acc[part]) ? acc[part].slice() : tslib_1.__assign({}, acc[part]);
70
- }
71
- return acc && acc[part];
72
- }), obj);
73
- return obj;
74
- });
75
- /**
76
- * Get a deeply nested value. Example:
77
- *
78
- * getValue({ foo: bar: [] }, 'foo.bar') //=> []
79
- *
80
- * @ignore
81
- * @type {?}
82
- */
83
- export var getValue = (/**
84
- * @param {?} obj
85
- * @param {?} prop
86
- * @return {?}
87
- */
88
- function (obj, prop) {
89
- return prop.split('.').reduce((/**
90
- * @param {?} acc
91
- * @param {?} part
92
- * @return {?}
93
- */
94
- function (acc, part) { return acc && acc[part]; }), obj);
95
- });
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS8iLCJzb3VyY2VzIjpbInNyYy91dGlscy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUlBLE1BQU0sVUFBVSx5QkFBeUIsQ0FBQyxNQUFXO0lBQ25ELElBQUksTUFBTSxDQUFDLFdBQVcsSUFBSSxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRTtRQUNqRCxPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO0tBQ2hDO0lBRUQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDO0FBQ3JCLENBQUM7Ozs7Ozs7QUFNRCxNQUFNLFVBQVUsYUFBYSxDQUFDLE9BQVk7O1FBQ2xDLEtBQUssR0FBRyx5QkFBeUIsQ0FBQyxPQUFPLENBQUM7SUFFaEQ7Ozs7SUFBTyxVQUFTLE9BQVk7UUFDMUIsT0FBTyxLQUFLLEtBQUsseUJBQXlCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEQsQ0FBQyxFQUFDO0FBQ0osQ0FBQzs7Ozs7Ozs7Ozs7O0FBWUQsTUFBTSxLQUFPLFFBQVE7Ozs7OztBQUFHLFVBQUMsR0FBUSxFQUFFLElBQVksRUFBRSxHQUFRO0lBQ3ZELEdBQUcsd0JBQVEsR0FBRyxDQUFFLENBQUM7O1FBRVgsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDOztRQUN2QixTQUFTLEdBQUcsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDO0lBRWxDLEtBQUssQ0FBQyxNQUFNOzs7Ozs7SUFBQyxVQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSztRQUM1QixJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUU7WUFDdkIsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQztTQUNqQjthQUFNO1lBQ0wsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLHNCQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBRSxDQUFDO1NBQzdFO1FBRUQsT0FBTyxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFCLENBQUMsR0FBRSxHQUFHLENBQUMsQ0FBQztJQUVSLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyxDQUFBOzs7Ozs7Ozs7QUFTRCxNQUFNLEtBQU8sUUFBUTs7Ozs7QUFBRyxVQUFDLEdBQVEsRUFBRSxJQUFZO0lBQzdDLE9BQUEsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNOzs7OztJQUFDLFVBQUMsR0FBUSxFQUFFLElBQVksSUFBSyxPQUFBLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQWhCLENBQWdCLEdBQUUsR0FBRyxDQUFDO0FBQXpFLENBQXlFLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJldHVybnMgdGhlIHR5cGUgZnJvbSBhbiBhY3Rpb24gaW5zdGFuY2UvY2xhc3MuXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBY3Rpb25UeXBlRnJvbUluc3RhbmNlKGFjdGlvbjogYW55KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgaWYgKGFjdGlvbi5jb25zdHJ1Y3RvciAmJiBhY3Rpb24uY29uc3RydWN0b3IudHlwZSkge1xuICAgIHJldHVybiBhY3Rpb24uY29uc3RydWN0b3IudHlwZTtcbiAgfVxuXG4gIHJldHVybiBhY3Rpb24udHlwZTtcbn1cblxuLyoqXG4gKiBNYXRjaGVzIGEgYWN0aW9uXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhY3Rpb25NYXRjaGVyKGFjdGlvbjE6IGFueSkge1xuICBjb25zdCB0eXBlMSA9IGdldEFjdGlvblR5cGVGcm9tSW5zdGFuY2UoYWN0aW9uMSk7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uKGFjdGlvbjI6IGFueSkge1xuICAgIHJldHVybiB0eXBlMSA9PT0gZ2V0QWN0aW9uVHlwZUZyb21JbnN0YW5jZShhY3Rpb24yKTtcbiAgfTtcbn1cblxuLyoqXG4gKiBTZXQgYSBkZWVwbHkgbmVzdGVkIHZhbHVlLiBFeGFtcGxlOlxuICpcbiAqICAgc2V0VmFsdWUoeyBmb286IHsgYmFyOiB7IGVhdDogZmFsc2UgfSB9IH0sXG4gKiAgICAgICdmb28uYmFyLmVhdCcsIHRydWUpIC8vPT4geyBmb286IHsgYmFyOiB7IGVhdDogdHJ1ZSB9IH0gfVxuICpcbiAqIFdoaWxlIGl0IHRyYXZlcnNlcyBpdCBhbHNvIGNyZWF0ZXMgbmV3IG9iamVjdHMgZnJvbSB0b3AgZG93bi5cbiAqXG4gKiBAaWdub3JlXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRWYWx1ZSA9IChvYmo6IGFueSwgcHJvcDogc3RyaW5nLCB2YWw6IGFueSkgPT4ge1xuICBvYmogPSB7IC4uLm9iaiB9O1xuXG4gIGNvbnN0IHNwbGl0ID0gcHJvcC5zcGxpdCgnLicpO1xuICBjb25zdCBsYXN0SW5kZXggPSBzcGxpdC5sZW5ndGggLSAxO1xuXG4gIHNwbGl0LnJlZHVjZSgoYWNjLCBwYXJ0LCBpbmRleCkgPT4ge1xuICAgIGlmIChpbmRleCA9PT0gbGFzdEluZGV4KSB7XG4gICAgICBhY2NbcGFydF0gPSB2YWw7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFjY1twYXJ0XSA9IEFycmF5LmlzQXJyYXkoYWNjW3BhcnRdKSA/IGFjY1twYXJ0XS5zbGljZSgpIDogeyAuLi5hY2NbcGFydF0gfTtcbiAgICB9XG5cbiAgICByZXR1cm4gYWNjICYmIGFjY1twYXJ0XTtcbiAgfSwgb2JqKTtcblxuICByZXR1cm4gb2JqO1xufTtcblxuLyoqXG4gKiBHZXQgYSBkZWVwbHkgbmVzdGVkIHZhbHVlLiBFeGFtcGxlOlxuICpcbiAqICAgIGdldFZhbHVlKHsgZm9vOiBiYXI6IFtdIH0sICdmb28uYmFyJykgLy89PiBbXVxuICpcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IGNvbnN0IGdldFZhbHVlID0gKG9iajogYW55LCBwcm9wOiBzdHJpbmcpOiBhbnkgPT5cbiAgcHJvcC5zcGxpdCgnLicpLnJlZHVjZSgoYWNjOiBhbnksIHBhcnQ6IHN0cmluZykgPT4gYWNjICYmIGFjY1twYXJ0XSwgb2JqKTtcbiJdfQ==
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ import * as tslib_1 from "tslib";
6
+ /**
7
+ * Returns the type from an action instance/class.
8
+ * @ignore
9
+ * @param {?} action
10
+ * @return {?}
11
+ */
12
+ export function getActionTypeFromInstance(action) {
13
+ if (action.constructor && action.constructor.type) {
14
+ return action.constructor.type;
15
+ }
16
+ else {
17
+ return action.type;
18
+ }
19
+ }
20
+ /**
21
+ * Matches a action
22
+ * @ignore
23
+ * @param {?} action1
24
+ * @return {?}
25
+ */
26
+ export function actionMatcher(action1) {
27
+ /** @type {?} */
28
+ var type1 = getActionTypeFromInstance(action1);
29
+ return (/**
30
+ * @param {?} action2
31
+ * @return {?}
32
+ */
33
+ function (action2) {
34
+ return type1 === getActionTypeFromInstance(action2);
35
+ });
36
+ }
37
+ /**
38
+ * Set a deeply nested value. Example:
39
+ *
40
+ * setValue({ foo: { bar: { eat: false } } },
41
+ * 'foo.bar.eat', true) //=> { foo: { bar: { eat: true } } }
42
+ *
43
+ * While it traverses it also creates new objects from top down.
44
+ *
45
+ * @ignore
46
+ * @type {?}
47
+ */
48
+ export var setValue = (/**
49
+ * @param {?} obj
50
+ * @param {?} prop
51
+ * @param {?} val
52
+ * @return {?}
53
+ */
54
+ function (obj, prop, val) {
55
+ obj = tslib_1.__assign({}, obj);
56
+ /** @type {?} */
57
+ var split = prop.split('.');
58
+ /** @type {?} */
59
+ var lastIndex = split.length - 1;
60
+ split.reduce((/**
61
+ * @param {?} acc
62
+ * @param {?} part
63
+ * @param {?} index
64
+ * @return {?}
65
+ */
66
+ function (acc, part, index) {
67
+ if (index === lastIndex) {
68
+ acc[part] = val;
69
+ }
70
+ else {
71
+ acc[part] = Array.isArray(acc[part]) ? acc[part].slice() : tslib_1.__assign({}, acc[part]);
72
+ }
73
+ return acc && acc[part];
74
+ }), obj);
75
+ return obj;
76
+ });
77
+ /**
78
+ * Get a deeply nested value. Example:
79
+ *
80
+ * getValue({ foo: bar: [] }, 'foo.bar') //=> []
81
+ *
82
+ * @ignore
83
+ * @type {?}
84
+ */
85
+ export var getValue = (/**
86
+ * @param {?} obj
87
+ * @param {?} prop
88
+ * @return {?}
89
+ */
90
+ function (obj, prop) {
91
+ return prop.split('.').reduce((/**
92
+ * @param {?} acc
93
+ * @param {?} part
94
+ * @return {?}
95
+ */
96
+ function (acc, part) { return acc && acc[part]; }), obj);
97
+ });
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS8iLCJzb3VyY2VzIjpbInNyYy91dGlscy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUlBLE1BQU0sVUFBVSx5QkFBeUIsQ0FBQyxNQUFXO0lBQ25ELElBQUksTUFBTSxDQUFDLFdBQVcsSUFBSSxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRTtRQUNqRCxPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO0tBQ2hDO1NBQU07UUFDTCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUM7S0FDcEI7QUFDSCxDQUFDOzs7Ozs7O0FBTUQsTUFBTSxVQUFVLGFBQWEsQ0FBQyxPQUFZOztRQUNsQyxLQUFLLEdBQUcseUJBQXlCLENBQUMsT0FBTyxDQUFDO0lBRWhEOzs7O0lBQU8sVUFBUyxPQUFZO1FBQzFCLE9BQU8sS0FBSyxLQUFLLHlCQUF5QixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RELENBQUMsRUFBQztBQUNKLENBQUM7Ozs7Ozs7Ozs7OztBQVlELE1BQU0sS0FBTyxRQUFROzs7Ozs7QUFBRyxVQUFDLEdBQVEsRUFBRSxJQUFZLEVBQUUsR0FBUTtJQUN2RCxHQUFHLHdCQUFRLEdBQUcsQ0FBRSxDQUFDOztRQUVYLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQzs7UUFDdkIsU0FBUyxHQUFHLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQztJQUVsQyxLQUFLLENBQUMsTUFBTTs7Ozs7O0lBQUMsVUFBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEtBQUs7UUFDNUIsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQ3ZCLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUM7U0FDakI7YUFBTTtZQUNMLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxzQkFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUUsQ0FBQztTQUM3RTtRQUVELE9BQU8sR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDLEdBQUUsR0FBRyxDQUFDLENBQUM7SUFFUixPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMsQ0FBQTs7Ozs7Ozs7O0FBU0QsTUFBTSxLQUFPLFFBQVE7Ozs7O0FBQUcsVUFBQyxHQUFRLEVBQUUsSUFBWTtJQUM3QyxPQUFBLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTTs7Ozs7SUFBQyxVQUFDLEdBQVEsRUFBRSxJQUFZLElBQUssT0FBQSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFoQixDQUFnQixHQUFFLEdBQUcsQ0FBQztBQUF6RSxDQUF5RSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFJldHVybnMgdGhlIHR5cGUgZnJvbSBhbiBhY3Rpb24gaW5zdGFuY2UvY2xhc3MuXHJcbiAqIEBpZ25vcmVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRBY3Rpb25UeXBlRnJvbUluc3RhbmNlKGFjdGlvbjogYW55KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICBpZiAoYWN0aW9uLmNvbnN0cnVjdG9yICYmIGFjdGlvbi5jb25zdHJ1Y3Rvci50eXBlKSB7XHJcbiAgICByZXR1cm4gYWN0aW9uLmNvbnN0cnVjdG9yLnR5cGU7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiBhY3Rpb24udHlwZTtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBNYXRjaGVzIGEgYWN0aW9uXHJcbiAqIEBpZ25vcmVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBhY3Rpb25NYXRjaGVyKGFjdGlvbjE6IGFueSkge1xyXG4gIGNvbnN0IHR5cGUxID0gZ2V0QWN0aW9uVHlwZUZyb21JbnN0YW5jZShhY3Rpb24xKTtcclxuXHJcbiAgcmV0dXJuIGZ1bmN0aW9uKGFjdGlvbjI6IGFueSkge1xyXG4gICAgcmV0dXJuIHR5cGUxID09PSBnZXRBY3Rpb25UeXBlRnJvbUluc3RhbmNlKGFjdGlvbjIpO1xyXG4gIH07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBTZXQgYSBkZWVwbHkgbmVzdGVkIHZhbHVlLiBFeGFtcGxlOlxyXG4gKlxyXG4gKiAgIHNldFZhbHVlKHsgZm9vOiB7IGJhcjogeyBlYXQ6IGZhbHNlIH0gfSB9LFxyXG4gKiAgICAgICdmb28uYmFyLmVhdCcsIHRydWUpIC8vPT4geyBmb286IHsgYmFyOiB7IGVhdDogdHJ1ZSB9IH0gfVxyXG4gKlxyXG4gKiBXaGlsZSBpdCB0cmF2ZXJzZXMgaXQgYWxzbyBjcmVhdGVzIG5ldyBvYmplY3RzIGZyb20gdG9wIGRvd24uXHJcbiAqXHJcbiAqIEBpZ25vcmVcclxuICovXHJcbmV4cG9ydCBjb25zdCBzZXRWYWx1ZSA9IChvYmo6IGFueSwgcHJvcDogc3RyaW5nLCB2YWw6IGFueSkgPT4ge1xyXG4gIG9iaiA9IHsgLi4ub2JqIH07XHJcblxyXG4gIGNvbnN0IHNwbGl0ID0gcHJvcC5zcGxpdCgnLicpO1xyXG4gIGNvbnN0IGxhc3RJbmRleCA9IHNwbGl0Lmxlbmd0aCAtIDE7XHJcblxyXG4gIHNwbGl0LnJlZHVjZSgoYWNjLCBwYXJ0LCBpbmRleCkgPT4ge1xyXG4gICAgaWYgKGluZGV4ID09PSBsYXN0SW5kZXgpIHtcclxuICAgICAgYWNjW3BhcnRdID0gdmFsO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgYWNjW3BhcnRdID0gQXJyYXkuaXNBcnJheShhY2NbcGFydF0pID8gYWNjW3BhcnRdLnNsaWNlKCkgOiB7IC4uLmFjY1twYXJ0XSB9O1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBhY2MgJiYgYWNjW3BhcnRdO1xyXG4gIH0sIG9iaik7XHJcblxyXG4gIHJldHVybiBvYmo7XHJcbn07XHJcblxyXG4vKipcclxuICogR2V0IGEgZGVlcGx5IG5lc3RlZCB2YWx1ZS4gRXhhbXBsZTpcclxuICpcclxuICogICAgZ2V0VmFsdWUoeyBmb286IGJhcjogW10gfSwgJ2Zvby5iYXInKSAvLz0+IFtdXHJcbiAqXHJcbiAqIEBpZ25vcmVcclxuICovXHJcbmV4cG9ydCBjb25zdCBnZXRWYWx1ZSA9IChvYmo6IGFueSwgcHJvcDogc3RyaW5nKTogYW55ID0+XHJcbiAgcHJvcC5zcGxpdCgnLicpLnJlZHVjZSgoYWNjOiBhbnksIHBhcnQ6IHN0cmluZykgPT4gYWNjICYmIGFjY1twYXJ0XSwgb2JqKTtcclxuIl19