@ngxs/store 3.7.4 → 3.7.5-dev.master-17a1bb8

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 (259) hide show
  1. package/README.md +16 -16
  2. package/bundles/ngxs-store-internals-testing.umd.js +315 -315
  3. package/bundles/ngxs-store-internals-testing.umd.js.map +1 -1
  4. package/bundles/ngxs-store-internals-testing.umd.min.js.map +1 -1
  5. package/bundles/ngxs-store-internals.umd.js +192 -397
  6. package/bundles/ngxs-store-internals.umd.js.map +1 -1
  7. package/bundles/ngxs-store-internals.umd.min.js +1 -1
  8. package/bundles/ngxs-store-internals.umd.min.js.map +1 -1
  9. package/bundles/ngxs-store-operators.umd.js +311 -310
  10. package/bundles/ngxs-store-operators.umd.js.map +1 -1
  11. package/bundles/ngxs-store-operators.umd.min.js +1 -1
  12. package/bundles/ngxs-store-operators.umd.min.js.map +1 -1
  13. package/bundles/ngxs-store.umd.js +4405 -4481
  14. package/bundles/ngxs-store.umd.js.map +1 -1
  15. package/bundles/ngxs-store.umd.min.js +1 -1
  16. package/bundles/ngxs-store.umd.min.js.map +1 -1
  17. package/esm2015/index.js +13 -13
  18. package/esm2015/internals/angular.js +20 -20
  19. package/esm2015/internals/index.js +10 -11
  20. package/esm2015/internals/initial-state.js +34 -34
  21. package/esm2015/internals/internal-tokens.js +16 -16
  22. package/esm2015/internals/memoize.js +70 -70
  23. package/esm2015/internals/ngxs-bootstrapper.js +41 -41
  24. package/esm2015/internals/ngxs-store-internals.js +9 -9
  25. package/esm2015/internals/src/symbols.js +14 -14
  26. package/esm2015/internals/symbols.js +14 -14
  27. package/esm2015/internals/testing/fresh-platform.js +110 -110
  28. package/esm2015/internals/testing/helpers/ngxs-test.component.js +22 -22
  29. package/esm2015/internals/testing/helpers/ngxs-test.module.js +24 -24
  30. package/esm2015/internals/testing/index.js +8 -8
  31. package/esm2015/internals/testing/ngxs-store-internals-testing.js +8 -8
  32. package/esm2015/internals/testing/ngxs.setup.js +76 -76
  33. package/esm2015/internals/testing/skip-console-logging.js +62 -62
  34. package/esm2015/internals/testing/symbol.js +29 -29
  35. package/esm2015/ngxs-store.js +24 -23
  36. package/esm2015/operators/append.js +31 -31
  37. package/esm2015/operators/compose.js +24 -24
  38. package/esm2015/operators/iif.js +56 -56
  39. package/esm2015/operators/index.js +18 -18
  40. package/esm2015/operators/insert-item.js +41 -41
  41. package/esm2015/operators/internals.js +5 -5
  42. package/esm2015/operators/ngxs-store-operators.js +8 -8
  43. package/esm2015/operators/patch.js +38 -39
  44. package/esm2015/operators/remove-item.js +34 -34
  45. package/esm2015/operators/update-item.js +54 -52
  46. package/esm2015/operators/utils.js +50 -50
  47. package/esm2015/src/actions/actions.js +39 -39
  48. package/esm2015/src/actions/symbols.js +39 -39
  49. package/esm2015/src/actions-stream.js +138 -140
  50. package/esm2015/src/configs/messages.config.js +79 -79
  51. package/esm2015/src/decorators/action.js +48 -48
  52. package/esm2015/src/decorators/select/select-factory.js +45 -49
  53. package/esm2015/src/decorators/select/select.js +45 -81
  54. package/esm2015/src/decorators/select/symbols.js +50 -94
  55. package/esm2015/src/decorators/selector/selector.js +59 -59
  56. package/esm2015/src/decorators/selector/symbols.js +5 -5
  57. package/esm2015/src/decorators/selector-options.js +34 -34
  58. package/esm2015/src/decorators/state.js +77 -83
  59. package/esm2015/src/execution/dispatch-outside-zone-ngxs-execution-strategy.js +103 -103
  60. package/esm2015/src/execution/internal-ngxs-execution-strategy.js +45 -45
  61. package/esm2015/src/execution/noop-ngxs-execution-strategy.js +29 -29
  62. package/esm2015/src/execution/symbols.js +52 -52
  63. package/esm2015/src/internal/dispatcher.js +219 -217
  64. package/esm2015/src/internal/internals.js +493 -493
  65. package/esm2015/src/internal/lifecycle-state-manager.js +129 -129
  66. package/esm2015/src/internal/state-context-factory.js +138 -138
  67. package/esm2015/src/internal/state-factory.js +457 -449
  68. package/esm2015/src/internal/state-operations.js +124 -133
  69. package/esm2015/src/internal/state-operators.js +33 -33
  70. package/esm2015/src/internal/state-stream.js +30 -30
  71. package/esm2015/src/ivy/ivy-enabled-in-dev-mode.js +28 -28
  72. package/esm2015/src/module.js +159 -157
  73. package/esm2015/src/modules/ngxs-feature.module.js +63 -63
  74. package/esm2015/src/modules/ngxs-root.module.js +49 -52
  75. package/esm2015/src/operators/leave-ngxs.js +58 -58
  76. package/esm2015/src/operators/of-action.js +197 -191
  77. package/esm2015/src/plugin-manager.js +70 -70
  78. package/esm2015/src/plugin_api.js +10 -10
  79. package/esm2015/src/public_api.js +29 -29
  80. package/esm2015/src/public_to_deprecate.js +64 -64
  81. package/esm2015/src/state-token/state-token.js +45 -45
  82. package/esm2015/src/state-token/symbols.js +5 -5
  83. package/esm2015/src/store.js +190 -190
  84. package/esm2015/src/symbols.js +221 -220
  85. package/esm2015/src/utils/compose.js +44 -44
  86. package/esm2015/src/utils/freeze.js +35 -35
  87. package/esm2015/src/utils/selector-utils.js +221 -221
  88. package/esm2015/src/utils/store-validators.js +60 -60
  89. package/esm2015/src/utils/utils.js +143 -143
  90. package/esm5/index.js +13 -13
  91. package/esm5/internals/angular.js +20 -20
  92. package/esm5/internals/index.js +10 -11
  93. package/esm5/internals/initial-state.js +45 -45
  94. package/esm5/internals/internal-tokens.js +16 -16
  95. package/esm5/internals/memoize.js +71 -71
  96. package/esm5/internals/ngxs-bootstrapper.js +56 -56
  97. package/esm5/internals/ngxs-store-internals.js +9 -9
  98. package/esm5/internals/src/symbols.js +14 -14
  99. package/esm5/internals/symbols.js +14 -14
  100. package/esm5/internals/testing/fresh-platform.js +121 -121
  101. package/esm5/internals/testing/helpers/ngxs-test.component.js +32 -32
  102. package/esm5/internals/testing/helpers/ngxs-test.module.js +32 -32
  103. package/esm5/internals/testing/index.js +8 -8
  104. package/esm5/internals/testing/ngxs-store-internals-testing.js +8 -8
  105. package/esm5/internals/testing/ngxs.setup.js +98 -98
  106. package/esm5/internals/testing/skip-console-logging.js +62 -62
  107. package/esm5/internals/testing/symbol.js +29 -29
  108. package/esm5/ngxs-store.js +24 -23
  109. package/esm5/operators/append.js +31 -31
  110. package/esm5/operators/compose.js +28 -28
  111. package/esm5/operators/iif.js +56 -56
  112. package/esm5/operators/index.js +18 -18
  113. package/esm5/operators/insert-item.js +41 -41
  114. package/esm5/operators/internals.js +5 -5
  115. package/esm5/operators/ngxs-store-operators.js +8 -8
  116. package/esm5/operators/patch.js +39 -40
  117. package/esm5/operators/remove-item.js +34 -34
  118. package/esm5/operators/update-item.js +54 -52
  119. package/esm5/operators/utils.js +50 -50
  120. package/esm5/src/actions/actions.js +62 -62
  121. package/esm5/src/actions/symbols.js +39 -39
  122. package/esm5/src/actions-stream.js +184 -186
  123. package/esm5/src/configs/messages.config.js +79 -79
  124. package/esm5/src/decorators/action.js +60 -60
  125. package/esm5/src/decorators/select/select-factory.js +46 -50
  126. package/esm5/src/decorators/select/select.js +50 -87
  127. package/esm5/src/decorators/select/symbols.js +51 -95
  128. package/esm5/src/decorators/selector/selector.js +59 -59
  129. package/esm5/src/decorators/selector/symbols.js +5 -5
  130. package/esm5/src/decorators/selector-options.js +34 -34
  131. package/esm5/src/decorators/state.js +78 -84
  132. package/esm5/src/execution/dispatch-outside-zone-ngxs-execution-strategy.js +123 -123
  133. package/esm5/src/execution/internal-ngxs-execution-strategy.js +54 -54
  134. package/esm5/src/execution/noop-ngxs-execution-strategy.js +43 -43
  135. package/esm5/src/execution/symbols.js +52 -52
  136. package/esm5/src/internal/dispatcher.js +255 -253
  137. package/esm5/src/internal/internals.js +495 -495
  138. package/esm5/src/internal/lifecycle-state-manager.js +177 -177
  139. package/esm5/src/internal/state-context-factory.js +146 -146
  140. package/esm5/src/internal/state-factory.js +583 -575
  141. package/esm5/src/internal/state-operations.js +134 -143
  142. package/esm5/src/internal/state-operators.js +34 -34
  143. package/esm5/src/internal/state-stream.js +37 -37
  144. package/esm5/src/ivy/ivy-enabled-in-dev-mode.js +28 -28
  145. package/esm5/src/module.js +202 -200
  146. package/esm5/src/modules/ngxs-feature.module.js +65 -65
  147. package/esm5/src/modules/ngxs-root.module.js +44 -47
  148. package/esm5/src/operators/leave-ngxs.js +58 -58
  149. package/esm5/src/operators/of-action.js +223 -217
  150. package/esm5/src/plugin-manager.js +82 -82
  151. package/esm5/src/plugin_api.js +10 -10
  152. package/esm5/src/public_api.js +29 -29
  153. package/esm5/src/public_to_deprecate.js +64 -64
  154. package/esm5/src/state-token/state-token.js +57 -57
  155. package/esm5/src/state-token/symbols.js +5 -5
  156. package/esm5/src/store.js +241 -241
  157. package/esm5/src/symbols.js +230 -229
  158. package/esm5/src/utils/compose.js +55 -55
  159. package/esm5/src/utils/freeze.js +35 -35
  160. package/esm5/src/utils/selector-utils.js +230 -230
  161. package/esm5/src/utils/store-validators.js +78 -78
  162. package/esm5/src/utils/utils.js +151 -151
  163. package/fesm2015/ngxs-store-internals-testing.js +274 -274
  164. package/fesm2015/ngxs-store-internals-testing.js.map +1 -1
  165. package/fesm2015/ngxs-store-internals.js +175 -377
  166. package/fesm2015/ngxs-store-internals.js.map +1 -1
  167. package/fesm2015/ngxs-store-operators.js +313 -312
  168. package/fesm2015/ngxs-store-operators.js.map +1 -1
  169. package/fesm2015/ngxs-store.js +3919 -3995
  170. package/fesm2015/ngxs-store.js.map +1 -1
  171. package/fesm5/ngxs-store-internals-testing.js +321 -321
  172. package/fesm5/ngxs-store-internals-testing.js.map +1 -1
  173. package/fesm5/ngxs-store-internals.js +200 -402
  174. package/fesm5/ngxs-store-internals.js.map +1 -1
  175. package/fesm5/ngxs-store-operators.js +317 -316
  176. package/fesm5/ngxs-store-operators.js.map +1 -1
  177. package/fesm5/ngxs-store.js +4414 -4491
  178. package/fesm5/ngxs-store.js.map +1 -1
  179. package/index.d.ts +8 -8
  180. package/internals/angular.d.ts +1 -1
  181. package/internals/index.d.ts +6 -7
  182. package/internals/initial-state.d.ts +8 -8
  183. package/internals/internal-tokens.d.ts +9 -9
  184. package/internals/memoize.d.ts +9 -9
  185. package/internals/ngxs-bootstrapper.d.ts +13 -13
  186. package/internals/ngxs-store-internals.d.ts +4 -4
  187. package/internals/ngxs-store-internals.metadata.json +1 -1
  188. package/internals/src/symbols.d.ts +7 -7
  189. package/internals/symbols.d.ts +7 -7
  190. package/internals/testing/fresh-platform.d.ts +1 -1
  191. package/internals/testing/helpers/ngxs-test.component.d.ts +5 -5
  192. package/internals/testing/helpers/ngxs-test.module.d.ts +4 -4
  193. package/internals/testing/index.d.ts +4 -4
  194. package/internals/testing/ngxs-store-internals-testing.d.ts +4 -4
  195. package/internals/testing/ngxs.setup.d.ts +7 -7
  196. package/internals/testing/skip-console-logging.d.ts +1 -1
  197. package/internals/testing/symbol.d.ts +14 -14
  198. package/ngxs-store.d.ts +20 -19
  199. package/ngxs-store.metadata.json +1 -1
  200. package/operators/append.d.ts +6 -6
  201. package/operators/compose.d.ts +3 -2
  202. package/operators/iif.d.ts +11 -11
  203. package/operators/index.d.ts +13 -13
  204. package/operators/insert-item.d.ts +7 -7
  205. package/operators/internals.d.ts +2 -2
  206. package/operators/ngxs-store-operators.d.ts +4 -4
  207. package/operators/ngxs-store-operators.metadata.json +1 -1
  208. package/operators/patch.d.ts +6 -10
  209. package/operators/remove-item.d.ts +7 -7
  210. package/operators/update-item.d.ts +10 -10
  211. package/operators/utils.d.ts +10 -9
  212. package/package.json +2 -2
  213. package/src/actions/actions.d.ts +15 -15
  214. package/src/actions/symbols.d.ts +21 -21
  215. package/src/actions-stream.d.ts +49 -49
  216. package/src/configs/messages.config.d.ts +11 -11
  217. package/src/decorators/action.d.ts +5 -5
  218. package/src/decorators/select/select-factory.d.ts +13 -13
  219. package/src/decorators/select/select.d.ts +4 -4
  220. package/src/decorators/select/symbols.d.ts +10 -14
  221. package/src/decorators/selector/selector.d.ts +5 -5
  222. package/src/decorators/selector/symbols.d.ts +4 -4
  223. package/src/decorators/selector-options.d.ts +5 -5
  224. package/src/decorators/state.d.ts +6 -6
  225. package/src/execution/dispatch-outside-zone-ngxs-execution-strategy.d.ts +11 -11
  226. package/src/execution/internal-ngxs-execution-strategy.d.ts +7 -7
  227. package/src/execution/noop-ngxs-execution-strategy.d.ts +5 -5
  228. package/src/execution/symbols.d.ts +10 -10
  229. package/src/internal/dispatcher.d.ts +32 -32
  230. package/src/internal/internals.d.ts +166 -166
  231. package/src/internal/lifecycle-state-manager.d.ts +20 -20
  232. package/src/internal/state-context-factory.d.ts +15 -15
  233. package/src/internal/state-factory.d.ts +57 -57
  234. package/src/internal/state-operations.d.ts +19 -19
  235. package/src/internal/state-operators.d.ts +2 -2
  236. package/src/internal/state-stream.d.ts +11 -11
  237. package/src/ivy/ivy-enabled-in-dev-mode.d.ts +6 -6
  238. package/src/module.d.ts +23 -23
  239. package/src/modules/ngxs-feature.module.d.ts +13 -13
  240. package/src/modules/ngxs-root.module.d.ts +13 -13
  241. package/src/operators/leave-ngxs.d.ts +7 -7
  242. package/src/operators/of-action.d.ts +56 -43
  243. package/src/plugin-manager.d.ts +10 -10
  244. package/src/plugin_api.d.ts +5 -5
  245. package/src/public_api.d.ts +17 -17
  246. package/src/public_to_deprecate.d.ts +21 -21
  247. package/src/state-token/state-token.d.ts +7 -7
  248. package/src/state-token/symbols.d.ts +5 -5
  249. package/src/store.d.ts +59 -59
  250. package/src/symbols.d.ts +139 -138
  251. package/src/utils/compose.d.ts +23 -23
  252. package/src/utils/freeze.d.ts +5 -5
  253. package/src/utils/selector-utils.d.ts +23 -23
  254. package/src/utils/store-validators.d.ts +7 -7
  255. package/src/utils/utils.d.ts +46 -46
  256. package/types/index.d.ts +2 -2
  257. package/esm2015/internals/decorator-injector-adapter.js +0 -204
  258. package/esm5/internals/decorator-injector-adapter.js +0 -204
  259. package/internals/decorator-injector-adapter.d.ts +0 -15
@@ -1,56 +1,56 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- import { isStateOperator, isUndefined, isPredicate } from './utils';
6
- /**
7
- * @template T
8
- * @param {?} operatorOrValue
9
- * @param {?=} existing
10
- * @return {?}
11
- */
12
- function retrieveValue(operatorOrValue, existing) {
13
- // If state operator is a function
14
- // then call it with an original value
15
- if (isStateOperator(operatorOrValue)) {
16
- /** @type {?} */
17
- var value = operatorOrValue((/** @type {?} */ ((/** @type {?} */ (existing)))));
18
- return (/** @type {?} */ (value));
19
- }
20
- // If operator or value was not provided
21
- // e.g. `elseOperatorOrValue` is `undefined`
22
- // then we just return an original value
23
- if (isUndefined(operatorOrValue)) {
24
- return (/** @type {?} */ ((/** @type {?} */ (((/** @type {?} */ (existing)))))));
25
- }
26
- return (/** @type {?} */ (operatorOrValue));
27
- }
28
- /**
29
- * @template T
30
- * @param {?} condition - Condition can be a plain boolean value or a function,
31
- * that returns boolean, also this function can take a value as an argument
32
- * to which this state operator applies
33
- * @param {?} trueOperatorOrValue - Any value or a state operator
34
- * @param {?=} elseOperatorOrValue - Any value or a state operator
35
- * @return {?}
36
- */
37
- export function iif(condition, trueOperatorOrValue, elseOperatorOrValue) {
38
- return (/**
39
- * @param {?} existing
40
- * @return {?}
41
- */
42
- function iifOperator(existing) {
43
- // Convert the value to a boolean
44
- /** @type {?} */
45
- var result = !!condition;
46
- // but if it is a function then run it to get the result
47
- if (isPredicate(condition)) {
48
- result = condition(existing);
49
- }
50
- if (result) {
51
- return retrieveValue(trueOperatorOrValue, (/** @type {?} */ (existing)));
52
- }
53
- return retrieveValue((/** @type {?} */ (elseOperatorOrValue)), (/** @type {?} */ (existing)));
54
- });
55
- }
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWlmLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMvc3RvcmUvb3BlcmF0b3JzLyIsInNvdXJjZXMiOlsiaWlmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFFQSxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQWMsTUFBTSxTQUFTLENBQUM7Ozs7Ozs7QUFHaEYsU0FBUyxhQUFhLENBQ3BCLGVBQXFDLEVBQ3JDLFFBQWtDO0lBRWxDLGtDQUFrQztJQUNsQyxzQ0FBc0M7SUFDdEMsSUFBSSxlQUFlLENBQUMsZUFBZSxDQUFDLEVBQUU7O1lBQzlCLEtBQUssR0FBRyxlQUFlLENBQUMsbUJBQUEsbUJBQUEsUUFBUSxFQUFDLEVBQWUsQ0FBQztRQUN2RCxPQUFPLG1CQUFBLEtBQUssRUFBaUIsQ0FBQztLQUMvQjtJQUVELHdDQUF3QztJQUN4Qyw0Q0FBNEM7SUFDNUMsd0NBQXdDO0lBQ3hDLElBQUksV0FBVyxDQUFDLGVBQWUsQ0FBQyxFQUFFO1FBQ2hDLE9BQU8sbUJBQUEsbUJBQUEsQ0FBQyxtQkFBSyxRQUFRLEVBQUEsQ0FBQyxFQUFDLEVBQWlCLENBQUM7S0FDMUM7SUFFRCxPQUFPLG1CQUFBLGVBQWUsRUFBaUIsQ0FBQztBQUMxQyxDQUFDOzs7Ozs7Ozs7O0FBU0QsTUFBTSxVQUFVLEdBQUcsQ0FDakIsU0FBaUMsRUFDakMsbUJBQXlDLEVBQ3pDLG1CQUEwQztJQUUxQzs7OztJQUFPLFNBQVMsV0FBVyxDQUFDLFFBQWlDOzs7WUFFdkQsTUFBTSxHQUFHLENBQUMsQ0FBQyxTQUFTO1FBQ3hCLHdEQUF3RDtRQUN4RCxJQUFJLFdBQVcsQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUMxQixNQUFNLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQzlCO1FBRUQsSUFBSSxNQUFNLEVBQUU7WUFDVixPQUFPLGFBQWEsQ0FBSSxtQkFBbUIsRUFBRSxtQkFBQSxRQUFRLEVBQWlCLENBQUMsQ0FBQztTQUN6RTtRQUVELE9BQU8sYUFBYSxDQUFJLG1CQUFBLG1CQUFtQixFQUFDLEVBQUUsbUJBQUEsUUFBUSxFQUFpQixDQUFDLENBQUM7SUFDM0UsQ0FBQyxFQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YXRlT3BlcmF0b3IgfSBmcm9tICdAbmd4cy9zdG9yZSc7XHJcblxyXG5pbXBvcnQgeyBpc1N0YXRlT3BlcmF0b3IsIGlzVW5kZWZpbmVkLCBpc1ByZWRpY2F0ZSwgUmVwYWlyVHlwZSB9IGZyb20gJy4vdXRpbHMnO1xyXG5pbXBvcnQgeyBQcmVkaWNhdGUgfSBmcm9tICcuL2ludGVybmFscyc7XHJcblxyXG5mdW5jdGlvbiByZXRyaWV2ZVZhbHVlPFQ+KFxyXG4gIG9wZXJhdG9yT3JWYWx1ZTogU3RhdGVPcGVyYXRvcjxUPiB8IFQsXHJcbiAgZXhpc3Rpbmc/OiBSZWFkb25seTxSZXBhaXJUeXBlPFQ+PlxyXG4pOiBSZXBhaXJUeXBlPFQ+IHtcclxuICAvLyBJZiBzdGF0ZSBvcGVyYXRvciBpcyBhIGZ1bmN0aW9uXHJcbiAgLy8gdGhlbiBjYWxsIGl0IHdpdGggYW4gb3JpZ2luYWwgdmFsdWVcclxuICBpZiAoaXNTdGF0ZU9wZXJhdG9yKG9wZXJhdG9yT3JWYWx1ZSkpIHtcclxuICAgIGNvbnN0IHZhbHVlID0gb3BlcmF0b3JPclZhbHVlKGV4aXN0aW5nISBhcyBSZWFkb25seTxUPik7XHJcbiAgICByZXR1cm4gdmFsdWUgYXMgUmVwYWlyVHlwZTxUPjtcclxuICB9XHJcblxyXG4gIC8vIElmIG9wZXJhdG9yIG9yIHZhbHVlIHdhcyBub3QgcHJvdmlkZWRcclxuICAvLyBlLmcuIGBlbHNlT3BlcmF0b3JPclZhbHVlYCBpcyBgdW5kZWZpbmVkYFxyXG4gIC8vIHRoZW4gd2UganVzdCByZXR1cm4gYW4gb3JpZ2luYWwgdmFsdWVcclxuICBpZiAoaXNVbmRlZmluZWQob3BlcmF0b3JPclZhbHVlKSkge1xyXG4gICAgcmV0dXJuICg8YW55PmV4aXN0aW5nKSEgYXMgUmVwYWlyVHlwZTxUPjtcclxuICB9XHJcblxyXG4gIHJldHVybiBvcGVyYXRvck9yVmFsdWUgYXMgUmVwYWlyVHlwZTxUPjtcclxufVxyXG5cclxuLyoqXHJcbiAqIEBwYXJhbSBjb25kaXRpb24gLSBDb25kaXRpb24gY2FuIGJlIGEgcGxhaW4gYm9vbGVhbiB2YWx1ZSBvciBhIGZ1bmN0aW9uLFxyXG4gKiB0aGF0IHJldHVybnMgYm9vbGVhbiwgYWxzbyB0aGlzIGZ1bmN0aW9uIGNhbiB0YWtlIGEgdmFsdWUgYXMgYW4gYXJndW1lbnRcclxuICogdG8gd2hpY2ggdGhpcyBzdGF0ZSBvcGVyYXRvciBhcHBsaWVzXHJcbiAqIEBwYXJhbSB0cnVlT3BlcmF0b3JPclZhbHVlIC0gQW55IHZhbHVlIG9yIGEgc3RhdGUgb3BlcmF0b3JcclxuICogQHBhcmFtIGVsc2VPcGVyYXRvck9yVmFsdWUgLSBBbnkgdmFsdWUgb3IgYSBzdGF0ZSBvcGVyYXRvclxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGlpZjxUPihcclxuICBjb25kaXRpb246IFByZWRpY2F0ZTxUPiB8IGJvb2xlYW4sXHJcbiAgdHJ1ZU9wZXJhdG9yT3JWYWx1ZTogU3RhdGVPcGVyYXRvcjxUPiB8IFQsXHJcbiAgZWxzZU9wZXJhdG9yT3JWYWx1ZT86IFN0YXRlT3BlcmF0b3I8VD4gfCBUXHJcbik6IFN0YXRlT3BlcmF0b3I8UmVwYWlyVHlwZTxUPj4ge1xyXG4gIHJldHVybiBmdW5jdGlvbiBpaWZPcGVyYXRvcihleGlzdGluZzogUmVhZG9ubHk8UmVwYWlyVHlwZTxUPj4pOiBSZXBhaXJUeXBlPFQ+IHtcclxuICAgIC8vIENvbnZlcnQgdGhlIHZhbHVlIHRvIGEgYm9vbGVhblxyXG4gICAgbGV0IHJlc3VsdCA9ICEhY29uZGl0aW9uO1xyXG4gICAgLy8gYnV0IGlmIGl0IGlzIGEgZnVuY3Rpb24gdGhlbiBydW4gaXQgdG8gZ2V0IHRoZSByZXN1bHRcclxuICAgIGlmIChpc1ByZWRpY2F0ZShjb25kaXRpb24pKSB7XHJcbiAgICAgIHJlc3VsdCA9IGNvbmRpdGlvbihleGlzdGluZyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICByZXR1cm4gcmV0cmlldmVWYWx1ZTxUPih0cnVlT3BlcmF0b3JPclZhbHVlLCBleGlzdGluZyBhcyBSZXBhaXJUeXBlPFQ+KTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcmV0cmlldmVWYWx1ZTxUPihlbHNlT3BlcmF0b3JPclZhbHVlISwgZXhpc3RpbmcgYXMgUmVwYWlyVHlwZTxUPik7XHJcbiAgfTtcclxufVxyXG4iXX0=
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ import { isStateOperator, isUndefined, isPredicate } from './utils';
6
+ /**
7
+ * @template T
8
+ * @param {?} operatorOrValue
9
+ * @param {?=} existing
10
+ * @return {?}
11
+ */
12
+ function retrieveValue(operatorOrValue, existing) {
13
+ // If state operator is a function
14
+ // then call it with an original value
15
+ if (isStateOperator(operatorOrValue)) {
16
+ /** @type {?} */
17
+ var value = operatorOrValue((/** @type {?} */ ((/** @type {?} */ (existing)))));
18
+ return (/** @type {?} */ (value));
19
+ }
20
+ // If operator or value was not provided
21
+ // e.g. `elseOperatorOrValue` is `undefined`
22
+ // then we just return an original value
23
+ if (isUndefined(operatorOrValue)) {
24
+ return (/** @type {?} */ ((/** @type {?} */ (((/** @type {?} */ (existing)))))));
25
+ }
26
+ return (/** @type {?} */ (operatorOrValue));
27
+ }
28
+ /**
29
+ * @template T
30
+ * @param {?} condition - Condition can be a plain boolean value or a function,
31
+ * that returns boolean, also this function can take a value as an argument
32
+ * to which this state operator applies
33
+ * @param {?} trueOperatorOrValue - Any value or a state operator
34
+ * @param {?=} elseOperatorOrValue - Any value or a state operator
35
+ * @return {?}
36
+ */
37
+ export function iif(condition, trueOperatorOrValue, elseOperatorOrValue) {
38
+ return (/**
39
+ * @param {?} existing
40
+ * @return {?}
41
+ */
42
+ function iifOperator(existing) {
43
+ // Convert the value to a boolean
44
+ /** @type {?} */
45
+ var result = !!condition;
46
+ // but if it is a function then run it to get the result
47
+ if (isPredicate(condition)) {
48
+ result = condition(existing);
49
+ }
50
+ if (result) {
51
+ return retrieveValue(trueOperatorOrValue, (/** @type {?} */ (existing)));
52
+ }
53
+ return retrieveValue((/** @type {?} */ (elseOperatorOrValue)), (/** @type {?} */ (existing)));
54
+ });
55
+ }
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWlmLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMvc3RvcmUvb3BlcmF0b3JzLyIsInNvdXJjZXMiOlsiaWlmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFFQSxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQXVCLE1BQU0sU0FBUyxDQUFDOzs7Ozs7O0FBR3pGLFNBQVMsYUFBYSxDQUNwQixlQUFxQyxFQUNyQyxRQUFrQztJQUVsQyxrQ0FBa0M7SUFDbEMsc0NBQXNDO0lBQ3RDLElBQUksZUFBZSxDQUFDLGVBQWUsQ0FBQyxFQUFFOztZQUM5QixLQUFLLEdBQUcsZUFBZSxDQUFDLG1CQUFBLG1CQUFBLFFBQVEsRUFBQyxFQUFlLENBQUM7UUFDdkQsT0FBTyxtQkFBQSxLQUFLLEVBQWlCLENBQUM7S0FDL0I7SUFFRCx3Q0FBd0M7SUFDeEMsNENBQTRDO0lBQzVDLHdDQUF3QztJQUN4QyxJQUFJLFdBQVcsQ0FBQyxlQUFlLENBQUMsRUFBRTtRQUNoQyxPQUFPLG1CQUFBLG1CQUFBLENBQUMsbUJBQUssUUFBUSxFQUFBLENBQUMsRUFBQyxFQUFpQixDQUFDO0tBQzFDO0lBRUQsT0FBTyxtQkFBQSxlQUFlLEVBQWlCLENBQUM7QUFDMUMsQ0FBQzs7Ozs7Ozs7OztBQVNELE1BQU0sVUFBVSxHQUFHLENBQ2pCLFNBQTBDLEVBQzFDLG1CQUFrRCxFQUNsRCxtQkFBbUQ7SUFFbkQ7Ozs7SUFBTyxTQUFTLFdBQVcsQ0FBQyxRQUFpQzs7O1lBRXZELE1BQU0sR0FBRyxDQUFDLENBQUMsU0FBUztRQUN4Qix3REFBd0Q7UUFDeEQsSUFBSSxXQUFXLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDMUIsTUFBTSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUM5QjtRQUVELElBQUksTUFBTSxFQUFFO1lBQ1YsT0FBTyxhQUFhLENBQUksbUJBQW1CLEVBQUUsbUJBQUEsUUFBUSxFQUFpQixDQUFDLENBQUM7U0FDekU7UUFFRCxPQUFPLGFBQWEsQ0FBSSxtQkFBQSxtQkFBbUIsRUFBQyxFQUFFLG1CQUFBLFFBQVEsRUFBaUIsQ0FBQyxDQUFDO0lBQzNFLENBQUMsRUFBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGF0ZU9wZXJhdG9yIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuXG5pbXBvcnQgeyBpc1N0YXRlT3BlcmF0b3IsIGlzVW5kZWZpbmVkLCBpc1ByZWRpY2F0ZSwgUmVwYWlyVHlwZSwgTm9JbmZlciB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgUHJlZGljYXRlIH0gZnJvbSAnLi9pbnRlcm5hbHMnO1xuXG5mdW5jdGlvbiByZXRyaWV2ZVZhbHVlPFQ+KFxuICBvcGVyYXRvck9yVmFsdWU6IFN0YXRlT3BlcmF0b3I8VD4gfCBULFxuICBleGlzdGluZz86IFJlYWRvbmx5PFJlcGFpclR5cGU8VD4+XG4pOiBSZXBhaXJUeXBlPFQ+IHtcbiAgLy8gSWYgc3RhdGUgb3BlcmF0b3IgaXMgYSBmdW5jdGlvblxuICAvLyB0aGVuIGNhbGwgaXQgd2l0aCBhbiBvcmlnaW5hbCB2YWx1ZVxuICBpZiAoaXNTdGF0ZU9wZXJhdG9yKG9wZXJhdG9yT3JWYWx1ZSkpIHtcbiAgICBjb25zdCB2YWx1ZSA9IG9wZXJhdG9yT3JWYWx1ZShleGlzdGluZyEgYXMgUmVhZG9ubHk8VD4pO1xuICAgIHJldHVybiB2YWx1ZSBhcyBSZXBhaXJUeXBlPFQ+O1xuICB9XG5cbiAgLy8gSWYgb3BlcmF0b3Igb3IgdmFsdWUgd2FzIG5vdCBwcm92aWRlZFxuICAvLyBlLmcuIGBlbHNlT3BlcmF0b3JPclZhbHVlYCBpcyBgdW5kZWZpbmVkYFxuICAvLyB0aGVuIHdlIGp1c3QgcmV0dXJuIGFuIG9yaWdpbmFsIHZhbHVlXG4gIGlmIChpc1VuZGVmaW5lZChvcGVyYXRvck9yVmFsdWUpKSB7XG4gICAgcmV0dXJuICg8YW55PmV4aXN0aW5nKSEgYXMgUmVwYWlyVHlwZTxUPjtcbiAgfVxuXG4gIHJldHVybiBvcGVyYXRvck9yVmFsdWUgYXMgUmVwYWlyVHlwZTxUPjtcbn1cblxuLyoqXG4gKiBAcGFyYW0gY29uZGl0aW9uIC0gQ29uZGl0aW9uIGNhbiBiZSBhIHBsYWluIGJvb2xlYW4gdmFsdWUgb3IgYSBmdW5jdGlvbixcbiAqIHRoYXQgcmV0dXJucyBib29sZWFuLCBhbHNvIHRoaXMgZnVuY3Rpb24gY2FuIHRha2UgYSB2YWx1ZSBhcyBhbiBhcmd1bWVudFxuICogdG8gd2hpY2ggdGhpcyBzdGF0ZSBvcGVyYXRvciBhcHBsaWVzXG4gKiBAcGFyYW0gdHJ1ZU9wZXJhdG9yT3JWYWx1ZSAtIEFueSB2YWx1ZSBvciBhIHN0YXRlIG9wZXJhdG9yXG4gKiBAcGFyYW0gZWxzZU9wZXJhdG9yT3JWYWx1ZSAtIEFueSB2YWx1ZSBvciBhIHN0YXRlIG9wZXJhdG9yXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpaWY8VD4oXG4gIGNvbmRpdGlvbjogTm9JbmZlcjxQcmVkaWNhdGU8VD4+IHwgYm9vbGVhbixcbiAgdHJ1ZU9wZXJhdG9yT3JWYWx1ZTogTm9JbmZlcjxTdGF0ZU9wZXJhdG9yPFQ+PiB8IFQsXG4gIGVsc2VPcGVyYXRvck9yVmFsdWU/OiBOb0luZmVyPFN0YXRlT3BlcmF0b3I8VD4+IHwgVFxuKTogU3RhdGVPcGVyYXRvcjxSZXBhaXJUeXBlPFQ+PiB7XG4gIHJldHVybiBmdW5jdGlvbiBpaWZPcGVyYXRvcihleGlzdGluZzogUmVhZG9ubHk8UmVwYWlyVHlwZTxUPj4pOiBSZXBhaXJUeXBlPFQ+IHtcbiAgICAvLyBDb252ZXJ0IHRoZSB2YWx1ZSB0byBhIGJvb2xlYW5cbiAgICBsZXQgcmVzdWx0ID0gISFjb25kaXRpb247XG4gICAgLy8gYnV0IGlmIGl0IGlzIGEgZnVuY3Rpb24gdGhlbiBydW4gaXQgdG8gZ2V0IHRoZSByZXN1bHRcbiAgICBpZiAoaXNQcmVkaWNhdGUoY29uZGl0aW9uKSkge1xuICAgICAgcmVzdWx0ID0gY29uZGl0aW9uKGV4aXN0aW5nKTtcbiAgICB9XG5cbiAgICBpZiAocmVzdWx0KSB7XG4gICAgICByZXR1cm4gcmV0cmlldmVWYWx1ZTxUPih0cnVlT3BlcmF0b3JPclZhbHVlLCBleGlzdGluZyBhcyBSZXBhaXJUeXBlPFQ+KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmV0cmlldmVWYWx1ZTxUPihlbHNlT3BlcmF0b3JPclZhbHVlISwgZXhpc3RpbmcgYXMgUmVwYWlyVHlwZTxUPik7XG4gIH07XG59XG4iXX0=
@@ -1,18 +1,18 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- /**
6
- * @module
7
- * @description
8
- * Entry point for all public APIs of this package.
9
- */
10
- export { append } from './append';
11
- export { compose } from './compose';
12
- export { iif } from './iif';
13
- export { insertItem } from './insert-item';
14
- export { patch } from './patch';
15
- export { isStateOperator } from './utils';
16
- export { updateItem } from './update-item';
17
- export { removeItem } from './remove-item';
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS9vcGVyYXRvcnMvIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFLQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUM1QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDaEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUMxQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQG1vZHVsZVxyXG4gKiBAZGVzY3JpcHRpb25cclxuICogRW50cnkgcG9pbnQgZm9yIGFsbCBwdWJsaWMgQVBJcyBvZiB0aGlzIHBhY2thZ2UuXHJcbiAqL1xyXG5leHBvcnQgeyBhcHBlbmQgfSBmcm9tICcuL2FwcGVuZCc7XHJcbmV4cG9ydCB7IGNvbXBvc2UgfSBmcm9tICcuL2NvbXBvc2UnO1xyXG5leHBvcnQgeyBpaWYgfSBmcm9tICcuL2lpZic7XHJcbmV4cG9ydCB7IGluc2VydEl0ZW0gfSBmcm9tICcuL2luc2VydC1pdGVtJztcclxuZXhwb3J0IHsgcGF0Y2ggfSBmcm9tICcuL3BhdGNoJztcclxuZXhwb3J0IHsgaXNTdGF0ZU9wZXJhdG9yIH0gZnJvbSAnLi91dGlscyc7XHJcbmV4cG9ydCB7IHVwZGF0ZUl0ZW0gfSBmcm9tICcuL3VwZGF0ZS1pdGVtJztcclxuZXhwb3J0IHsgcmVtb3ZlSXRlbSB9IGZyb20gJy4vcmVtb3ZlLWl0ZW0nO1xyXG4iXX0=
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ /**
6
+ * @module
7
+ * @description
8
+ * Entry point for all public APIs of this package.
9
+ */
10
+ export { append } from './append';
11
+ export { compose } from './compose';
12
+ export { iif } from './iif';
13
+ export { insertItem } from './insert-item';
14
+ export { patch } from './patch';
15
+ export { isStateOperator } from './utils';
16
+ export { updateItem } from './update-item';
17
+ export { removeItem } from './remove-item';
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS9vcGVyYXRvcnMvIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFLQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUM1QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDaEMsT0FBTyxFQUFFLGVBQWUsRUFBVyxNQUFNLFNBQVMsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBtb2R1bGVcbiAqIEBkZXNjcmlwdGlvblxuICogRW50cnkgcG9pbnQgZm9yIGFsbCBwdWJsaWMgQVBJcyBvZiB0aGlzIHBhY2thZ2UuXG4gKi9cbmV4cG9ydCB7IGFwcGVuZCB9IGZyb20gJy4vYXBwZW5kJztcbmV4cG9ydCB7IGNvbXBvc2UgfSBmcm9tICcuL2NvbXBvc2UnO1xuZXhwb3J0IHsgaWlmIH0gZnJvbSAnLi9paWYnO1xuZXhwb3J0IHsgaW5zZXJ0SXRlbSB9IGZyb20gJy4vaW5zZXJ0LWl0ZW0nO1xuZXhwb3J0IHsgcGF0Y2ggfSBmcm9tICcuL3BhdGNoJztcbmV4cG9ydCB7IGlzU3RhdGVPcGVyYXRvciwgTm9JbmZlciB9IGZyb20gJy4vdXRpbHMnO1xuZXhwb3J0IHsgdXBkYXRlSXRlbSB9IGZyb20gJy4vdXBkYXRlLWl0ZW0nO1xuZXhwb3J0IHsgcmVtb3ZlSXRlbSB9IGZyb20gJy4vcmVtb3ZlLWl0ZW0nO1xuIl19
@@ -1,41 +1,41 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- import { isNil } from './utils';
6
- /**
7
- * @template T
8
- * @param {?} value - Value to insert
9
- * @param {?=} beforePosition
10
- * @return {?}
11
- */
12
- export function insertItem(value, beforePosition) {
13
- return (/**
14
- * @param {?} existing
15
- * @return {?}
16
- */
17
- function insertItemOperator(existing) {
18
- // Have to check explicitly for `null` and `undefined`
19
- // because `value` can be `0`, thus `!value` will return `true`
20
- if (isNil(value) && existing) {
21
- return (/** @type {?} */ (existing));
22
- }
23
- // Property may be dynamic and might not existed before
24
- if (!Array.isArray(existing)) {
25
- return [(/** @type {?} */ (value))];
26
- }
27
- /** @type {?} */
28
- var clone = existing.slice();
29
- /** @type {?} */
30
- var index = 0;
31
- // No need to call `isNumber`
32
- // as we are checking `> 0` not `>= 0`
33
- // everything except number will return false here
34
- if ((/** @type {?} */ (beforePosition)) > 0) {
35
- index = (/** @type {?} */ (beforePosition));
36
- }
37
- clone.splice(index, 0, (/** @type {?} */ (value)));
38
- return clone;
39
- });
40
- }
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zZXJ0LWl0ZW0uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS9vcGVyYXRvcnMvIiwic291cmNlcyI6WyJpbnNlcnQtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsT0FBTyxFQUFFLEtBQUssRUFBYyxNQUFNLFNBQVMsQ0FBQzs7Ozs7OztBQU01QyxNQUFNLFVBQVUsVUFBVSxDQUN4QixLQUFRLEVBQ1IsY0FBdUI7SUFFdkI7Ozs7SUFBTyxTQUFTLGtCQUFrQixDQUFDLFFBQW1DO1FBQ3BFLHNEQUFzRDtRQUN0RCwrREFBK0Q7UUFDL0QsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksUUFBUSxFQUFFO1lBQzVCLE9BQU8sbUJBQUEsUUFBUSxFQUFtQixDQUFDO1NBQ3BDO1FBRUQsdURBQXVEO1FBQ3ZELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzVCLE9BQU8sQ0FBQyxtQkFBQSxLQUFLLEVBQWlCLENBQUMsQ0FBQztTQUNqQzs7WUFFSyxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssRUFBRTs7WUFFMUIsS0FBSyxHQUFHLENBQUM7UUFFYiw2QkFBNkI7UUFDN0Isc0NBQXNDO1FBQ3RDLGtEQUFrRDtRQUNsRCxJQUFJLG1CQUFBLGNBQWMsRUFBQyxHQUFHLENBQUMsRUFBRTtZQUN2QixLQUFLLEdBQUcsbUJBQUEsY0FBYyxFQUFDLENBQUM7U0FDekI7UUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsbUJBQUEsS0FBSyxFQUFpQixDQUFDLENBQUM7UUFDL0MsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDLEVBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhdGVPcGVyYXRvciB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcclxuaW1wb3J0IHsgaXNOaWwsIFJlcGFpclR5cGUgfSBmcm9tICcuL3V0aWxzJztcclxuXHJcbi8qKlxyXG4gKiBAcGFyYW0gdmFsdWUgLSBWYWx1ZSB0byBpbnNlcnRcclxuICogQHBhcmFtIFtiZWZvcmVQb3NpdGlvbl0gLSAgU3BlY2lmaWVkIGluZGV4IHRvIGluc2VydCB2YWx1ZSBiZWZvcmUsIG9wdGlvbmFsXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gaW5zZXJ0SXRlbTxUPihcclxuICB2YWx1ZTogVCxcclxuICBiZWZvcmVQb3NpdGlvbj86IG51bWJlclxyXG4pOiBTdGF0ZU9wZXJhdG9yPFJlcGFpclR5cGU8VD5bXT4ge1xyXG4gIHJldHVybiBmdW5jdGlvbiBpbnNlcnRJdGVtT3BlcmF0b3IoZXhpc3Rpbmc6IFJlYWRvbmx5PFJlcGFpclR5cGU8VD5bXT4pOiBSZXBhaXJUeXBlPFQ+W10ge1xyXG4gICAgLy8gSGF2ZSB0byBjaGVjayBleHBsaWNpdGx5IGZvciBgbnVsbGAgYW5kIGB1bmRlZmluZWRgXHJcbiAgICAvLyBiZWNhdXNlIGB2YWx1ZWAgY2FuIGJlIGAwYCwgdGh1cyBgIXZhbHVlYCB3aWxsIHJldHVybiBgdHJ1ZWBcclxuICAgIGlmIChpc05pbCh2YWx1ZSkgJiYgZXhpc3RpbmcpIHtcclxuICAgICAgcmV0dXJuIGV4aXN0aW5nIGFzIFJlcGFpclR5cGU8VD5bXTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBQcm9wZXJ0eSBtYXkgYmUgZHluYW1pYyBhbmQgbWlnaHQgbm90IGV4aXN0ZWQgYmVmb3JlXHJcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoZXhpc3RpbmcpKSB7XHJcbiAgICAgIHJldHVybiBbdmFsdWUgYXMgUmVwYWlyVHlwZTxUPl07XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgY2xvbmUgPSBleGlzdGluZy5zbGljZSgpO1xyXG5cclxuICAgIGxldCBpbmRleCA9IDA7XHJcblxyXG4gICAgLy8gTm8gbmVlZCB0byBjYWxsIGBpc051bWJlcmBcclxuICAgIC8vIGFzIHdlIGFyZSBjaGVja2luZyBgPiAwYCBub3QgYD49IDBgXHJcbiAgICAvLyBldmVyeXRoaW5nIGV4Y2VwdCBudW1iZXIgd2lsbCByZXR1cm4gZmFsc2UgaGVyZVxyXG4gICAgaWYgKGJlZm9yZVBvc2l0aW9uISA+IDApIHtcclxuICAgICAgaW5kZXggPSBiZWZvcmVQb3NpdGlvbiE7XHJcbiAgICB9XHJcblxyXG4gICAgY2xvbmUuc3BsaWNlKGluZGV4LCAwLCB2YWx1ZSBhcyBSZXBhaXJUeXBlPFQ+KTtcclxuICAgIHJldHVybiBjbG9uZTtcclxuICB9O1xyXG59XHJcbiJdfQ==
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ import { isNil } from './utils';
6
+ /**
7
+ * @template T
8
+ * @param {?} value - Value to insert
9
+ * @param {?=} beforePosition
10
+ * @return {?}
11
+ */
12
+ export function insertItem(value, beforePosition) {
13
+ return (/**
14
+ * @param {?} existing
15
+ * @return {?}
16
+ */
17
+ function insertItemOperator(existing) {
18
+ // Have to check explicitly for `null` and `undefined`
19
+ // because `value` can be `0`, thus `!value` will return `true`
20
+ if (isNil(value) && existing) {
21
+ return (/** @type {?} */ (existing));
22
+ }
23
+ // Property may be dynamic and might not existed before
24
+ if (!Array.isArray(existing)) {
25
+ return [(/** @type {?} */ (((/** @type {?} */ (value)))))];
26
+ }
27
+ /** @type {?} */
28
+ var clone = existing.slice();
29
+ /** @type {?} */
30
+ var index = 0;
31
+ // No need to call `isNumber`
32
+ // as we are checking `> 0` not `>= 0`
33
+ // everything except number will return false here
34
+ if ((/** @type {?} */ (beforePosition)) > 0) {
35
+ index = (/** @type {?} */ (beforePosition));
36
+ }
37
+ clone.splice(index, 0, (/** @type {?} */ (((/** @type {?} */ (value))))));
38
+ return clone;
39
+ });
40
+ }
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zZXJ0LWl0ZW0uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS9vcGVyYXRvcnMvIiwic291cmNlcyI6WyJpbnNlcnQtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsT0FBTyxFQUFFLEtBQUssRUFBdUIsTUFBTSxTQUFTLENBQUM7Ozs7Ozs7QUFNckQsTUFBTSxVQUFVLFVBQVUsQ0FDeEIsS0FBaUIsRUFDakIsY0FBdUI7SUFFdkI7Ozs7SUFBTyxTQUFTLGtCQUFrQixDQUFDLFFBQW1DO1FBQ3BFLHNEQUFzRDtRQUN0RCwrREFBK0Q7UUFDL0QsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksUUFBUSxFQUFFO1lBQzVCLE9BQU8sbUJBQUEsUUFBUSxFQUFtQixDQUFDO1NBQ3BDO1FBRUQsdURBQXVEO1FBQ3ZELElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzVCLE9BQU8sQ0FBQyxtQkFBQSxDQUFDLG1CQUFBLEtBQUssRUFBVyxDQUFDLEVBQWlCLENBQUMsQ0FBQztTQUM5Qzs7WUFFSyxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssRUFBRTs7WUFFMUIsS0FBSyxHQUFHLENBQUM7UUFFYiw2QkFBNkI7UUFDN0Isc0NBQXNDO1FBQ3RDLGtEQUFrRDtRQUNsRCxJQUFJLG1CQUFBLGNBQWMsRUFBQyxHQUFHLENBQUMsRUFBRTtZQUN2QixLQUFLLEdBQUcsbUJBQUEsY0FBYyxFQUFDLENBQUM7U0FDekI7UUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsbUJBQUEsQ0FBQyxtQkFBQSxLQUFLLEVBQVcsQ0FBQyxFQUFpQixDQUFDLENBQUM7UUFDNUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDLEVBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhdGVPcGVyYXRvciB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IGlzTmlsLCBSZXBhaXJUeXBlLCBOb0luZmVyIH0gZnJvbSAnLi91dGlscyc7XG5cbi8qKlxuICogQHBhcmFtIHZhbHVlIC0gVmFsdWUgdG8gaW5zZXJ0XG4gKiBAcGFyYW0gW2JlZm9yZVBvc2l0aW9uXSAtICBTcGVjaWZpZWQgaW5kZXggdG8gaW5zZXJ0IHZhbHVlIGJlZm9yZSwgb3B0aW9uYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGluc2VydEl0ZW08VD4oXG4gIHZhbHVlOiBOb0luZmVyPFQ+LFxuICBiZWZvcmVQb3NpdGlvbj86IG51bWJlclxuKTogU3RhdGVPcGVyYXRvcjxSZXBhaXJUeXBlPFQ+W10+IHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGluc2VydEl0ZW1PcGVyYXRvcihleGlzdGluZzogUmVhZG9ubHk8UmVwYWlyVHlwZTxUPltdPik6IFJlcGFpclR5cGU8VD5bXSB7XG4gICAgLy8gSGF2ZSB0byBjaGVjayBleHBsaWNpdGx5IGZvciBgbnVsbGAgYW5kIGB1bmRlZmluZWRgXG4gICAgLy8gYmVjYXVzZSBgdmFsdWVgIGNhbiBiZSBgMGAsIHRodXMgYCF2YWx1ZWAgd2lsbCByZXR1cm4gYHRydWVgXG4gICAgaWYgKGlzTmlsKHZhbHVlKSAmJiBleGlzdGluZykge1xuICAgICAgcmV0dXJuIGV4aXN0aW5nIGFzIFJlcGFpclR5cGU8VD5bXTtcbiAgICB9XG5cbiAgICAvLyBQcm9wZXJ0eSBtYXkgYmUgZHluYW1pYyBhbmQgbWlnaHQgbm90IGV4aXN0ZWQgYmVmb3JlXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGV4aXN0aW5nKSkge1xuICAgICAgcmV0dXJuIFsodmFsdWUgYXMgdW5rbm93bikgYXMgUmVwYWlyVHlwZTxUPl07XG4gICAgfVxuXG4gICAgY29uc3QgY2xvbmUgPSBleGlzdGluZy5zbGljZSgpO1xuXG4gICAgbGV0IGluZGV4ID0gMDtcblxuICAgIC8vIE5vIG5lZWQgdG8gY2FsbCBgaXNOdW1iZXJgXG4gICAgLy8gYXMgd2UgYXJlIGNoZWNraW5nIGA+IDBgIG5vdCBgPj0gMGBcbiAgICAvLyBldmVyeXRoaW5nIGV4Y2VwdCBudW1iZXIgd2lsbCByZXR1cm4gZmFsc2UgaGVyZVxuICAgIGlmIChiZWZvcmVQb3NpdGlvbiEgPiAwKSB7XG4gICAgICBpbmRleCA9IGJlZm9yZVBvc2l0aW9uITtcbiAgICB9XG5cbiAgICBjbG9uZS5zcGxpY2UoaW5kZXgsIDAsICh2YWx1ZSBhcyB1bmtub3duKSBhcyBSZXBhaXJUeXBlPFQ+KTtcbiAgICByZXR1cm4gY2xvbmU7XG4gIH07XG59XG4iXX0=
@@ -1,5 +1,5 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWxzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMvc3RvcmUvb3BlcmF0b3JzLyIsInNvdXJjZXMiOlsiaW50ZXJuYWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXBhaXJUeXBlIH0gZnJvbSAnLi91dGlscyc7XHJcblxyXG5leHBvcnQgdHlwZSBQcmVkaWNhdGU8VCA9IGFueT4gPSAodmFsdWU/OiBSZXBhaXJUeXBlPFQ+IHwgUmVhZG9ubHk8UmVwYWlyVHlwZTxUPj4pID0+IGJvb2xlYW47XHJcbiJdfQ==
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWxzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMvc3RvcmUvb3BlcmF0b3JzLyIsInNvdXJjZXMiOlsiaW50ZXJuYWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXBhaXJUeXBlIH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCB0eXBlIFByZWRpY2F0ZTxUID0gYW55PiA9ICh2YWx1ZT86IFJlcGFpclR5cGU8VD4gfCBSZWFkb25seTxSZXBhaXJUeXBlPFQ+PikgPT4gYm9vbGVhbjtcbiJdfQ==
@@ -1,9 +1,9 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- /**
6
- * Generated bundle index. Do not edit.
7
- */
8
- export { append, compose, iif, insertItem, patch, isStateOperator, updateItem, removeItem } from './index';
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ /**
6
+ * Generated bundle index. Do not edit.
7
+ */
8
+ export { append, compose, iif, insertItem, patch, isStateOperator, updateItem, removeItem } from './index';
9
9
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4cy1zdG9yZS1vcGVyYXRvcnMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS9vcGVyYXRvcnMvIiwic291cmNlcyI6WyJuZ3hzLXN0b3JlLW9wZXJhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBSUEsaUdBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -1,40 +1,39 @@
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
- import { isStateOperator } from './utils';
7
- /**
8
- * @template T
9
- * @param {?} patchObject
10
- * @return {?}
11
- */
12
- export function patch(patchObject) {
13
- return (/**
14
- * @template U
15
- * @param {?} existing
16
- * @return {?}
17
- */
18
- function patchStateOperator(existing) {
19
- /** @type {?} */
20
- var clone = null;
21
- for (var k in patchObject) {
22
- /** @type {?} */
23
- var newValue = patchObject[k];
24
- /** @type {?} */
25
- var existingPropValue = existing[k];
26
- /** @type {?} */
27
- var newPropValue = isStateOperator(newValue)
28
- ? newValue((/** @type {?} */ (existingPropValue)))
29
- : newValue;
30
- if (newPropValue !== existingPropValue) {
31
- if (!clone) {
32
- clone = tslib_1.__assign({}, ((/** @type {?} */ (existing))));
33
- }
34
- clone[k] = newPropValue;
35
- }
36
- }
37
- return clone || existing;
38
- });
39
- }
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0Y2guanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS9vcGVyYXRvcnMvIiwic291cmNlcyI6WyJwYXRjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxTQUFTLENBQUM7Ozs7OztBQVUxQyxNQUFNLFVBQVUsS0FBSyxDQUFJLFdBQXlCO0lBQ2hEOzs7OztJQUFPLFNBQVMsa0JBQWtCLENBQTJCLFFBQXFCOztZQUM1RSxLQUFLLEdBQUcsSUFBSTtRQUNoQixLQUFLLElBQU0sQ0FBQyxJQUFJLFdBQVcsRUFBRTs7Z0JBQ3JCLFFBQVEsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFDOztnQkFDekIsaUJBQWlCLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQzs7Z0JBQy9CLFlBQVksR0FBRyxlQUFlLENBQUMsUUFBUSxDQUFDO2dCQUM1QyxDQUFDLENBQUMsUUFBUSxDQUFDLG1CQUFLLGlCQUFpQixFQUFBLENBQUM7Z0JBQ2xDLENBQUMsQ0FBQyxRQUFRO1lBQ1osSUFBSSxZQUFZLEtBQUssaUJBQWlCLEVBQUU7Z0JBQ3RDLElBQUksQ0FBQyxLQUFLLEVBQUU7b0JBQ1YsS0FBSyx3QkFBUSxDQUFDLG1CQUFLLFFBQVEsRUFBQSxDQUFDLENBQUUsQ0FBQztpQkFDaEM7Z0JBQ0QsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLFlBQVksQ0FBQzthQUN6QjtTQUNGO1FBQ0QsT0FBTyxLQUFLLElBQUksUUFBUSxDQUFDO0lBQzNCLENBQUMsRUFBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdGF0ZU9wZXJhdG9yIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xyXG5pbXBvcnQgeyBpc1N0YXRlT3BlcmF0b3IgfSBmcm9tICcuL3V0aWxzJztcclxuXHJcbmV4cG9ydCB0eXBlIFBhdGNoU3BlYzxUPiA9IHsgW1AgaW4ga2V5b2YgVF0/OiBUW1BdIHwgU3RhdGVPcGVyYXRvcjxOb25OdWxsYWJsZTxUW1BdPj4gfTtcclxuXHJcbnR5cGUgUGF0Y2hWYWx1ZXM8VD4gPSB7XHJcbiAgcmVhZG9ubHkgW1AgaW4ga2V5b2YgVF0/OiBUW1BdIGV4dGVuZHMgKC4uLmFyZ3M6IGFueVtdKSA9PiBpbmZlciBSID8gUiA6IFRbUF07XHJcbn07XHJcblxyXG50eXBlIFBhdGNoT3BlcmF0b3I8VD4gPSA8VSBleHRlbmRzIFBhdGNoVmFsdWVzPFQ+PihleGlzdGluZzogUmVhZG9ubHk8VT4pID0+IFU7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcGF0Y2g8VD4ocGF0Y2hPYmplY3Q6IFBhdGNoU3BlYzxUPik6IFBhdGNoT3BlcmF0b3I8VD4ge1xyXG4gIHJldHVybiBmdW5jdGlvbiBwYXRjaFN0YXRlT3BlcmF0b3I8VSBleHRlbmRzIFBhdGNoVmFsdWVzPFQ+PihleGlzdGluZzogUmVhZG9ubHk8VT4pOiBVIHtcclxuICAgIGxldCBjbG9uZSA9IG51bGw7XHJcbiAgICBmb3IgKGNvbnN0IGsgaW4gcGF0Y2hPYmplY3QpIHtcclxuICAgICAgY29uc3QgbmV3VmFsdWUgPSBwYXRjaE9iamVjdFtrXTtcclxuICAgICAgY29uc3QgZXhpc3RpbmdQcm9wVmFsdWUgPSBleGlzdGluZ1trXTtcclxuICAgICAgY29uc3QgbmV3UHJvcFZhbHVlID0gaXNTdGF0ZU9wZXJhdG9yKG5ld1ZhbHVlKVxyXG4gICAgICAgID8gbmV3VmFsdWUoPGFueT5leGlzdGluZ1Byb3BWYWx1ZSlcclxuICAgICAgICA6IG5ld1ZhbHVlO1xyXG4gICAgICBpZiAobmV3UHJvcFZhbHVlICE9PSBleGlzdGluZ1Byb3BWYWx1ZSkge1xyXG4gICAgICAgIGlmICghY2xvbmUpIHtcclxuICAgICAgICAgIGNsb25lID0geyAuLi4oPGFueT5leGlzdGluZykgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY2xvbmVba10gPSBuZXdQcm9wVmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBjbG9uZSB8fCBleGlzdGluZztcclxuICB9O1xyXG59XHJcbiJdfQ==
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
+ import { isStateOperator } from './utils';
7
+ /**
8
+ * @template T
9
+ * @param {?} patchObject
10
+ * @return {?}
11
+ */
12
+ export function patch(patchObject) {
13
+ return (/** @type {?} */ (((/** @type {?} */ ((/**
14
+ * @param {?} existing
15
+ * @return {?}
16
+ */
17
+ function patchStateOperator(existing) {
18
+ /** @type {?} */
19
+ var clone = null;
20
+ for (var k in patchObject) {
21
+ /** @type {?} */
22
+ var newValue = patchObject[k];
23
+ /** @type {?} */
24
+ var existingPropValue = existing[(/** @type {?} */ (k))];
25
+ /** @type {?} */
26
+ var newPropValue = isStateOperator(newValue)
27
+ ? newValue((/** @type {?} */ (existingPropValue)))
28
+ : newValue;
29
+ if (newPropValue !== existingPropValue) {
30
+ if (!clone) {
31
+ clone = tslib_1.__assign({}, ((/** @type {?} */ (existing))));
32
+ }
33
+ clone[k] = newPropValue;
34
+ }
35
+ }
36
+ return clone || existing;
37
+ }))))));
38
+ }
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0Y2guanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS9vcGVyYXRvcnMvIiwic291cmNlcyI6WyJwYXRjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLE9BQU8sRUFBRSxlQUFlLEVBQVcsTUFBTSxTQUFTLENBQUM7Ozs7OztBQVFuRCxNQUFNLFVBQVUsS0FBSyxDQUFJLFdBQWtDO0lBQ3pELE9BQU8sbUJBQUEsQ0FBQzs7OztJQUFBLFNBQVMsa0JBQWtCLENBQUMsUUFBa0M7O1lBQ2hFLEtBQUssR0FBRyxJQUFJO1FBQ2hCLEtBQUssSUFBTSxDQUFDLElBQUksV0FBVyxFQUFFOztnQkFDckIsUUFBUSxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUM7O2dCQUN6QixpQkFBaUIsR0FBRyxRQUFRLENBQUMsbUJBQUEsQ0FBQyxFQUE0QixDQUFDOztnQkFDM0QsWUFBWSxHQUFHLGVBQWUsQ0FBQyxRQUFRLENBQUM7Z0JBQzVDLENBQUMsQ0FBQyxRQUFRLENBQUMsbUJBQUssaUJBQWlCLEVBQUEsQ0FBQztnQkFDbEMsQ0FBQyxDQUFDLFFBQVE7WUFDWixJQUFJLFlBQVksS0FBSyxpQkFBaUIsRUFBRTtnQkFDdEMsSUFBSSxDQUFDLEtBQUssRUFBRTtvQkFDVixLQUFLLHdCQUFRLENBQUMsbUJBQUssUUFBUSxFQUFBLENBQUMsQ0FBRSxDQUFDO2lCQUNoQztnQkFDRCxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsWUFBWSxDQUFDO2FBQ3pCO1NBQ0Y7UUFDRCxPQUFPLEtBQUssSUFBSSxRQUFRLENBQUM7SUFDM0IsQ0FBQyxHQUFXLENBQUMsRUFBaUMsQ0FBQztBQUNqRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhdGVPcGVyYXRvciB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IGlzU3RhdGVPcGVyYXRvciwgTm9JbmZlciB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgdHlwZSBQYXRjaFNwZWM8VD4gPSB7IFtQIGluIGtleW9mIFRdPzogVFtQXSB8IFN0YXRlT3BlcmF0b3I8Tm9uTnVsbGFibGU8VFtQXT4+IH07XG5cbnR5cGUgUGF0Y2hWYWx1ZXM8VD4gPSB7XG4gIHJlYWRvbmx5IFtQIGluIGtleW9mIFRdPzogVFtQXSBleHRlbmRzICguLi5hcmdzOiBhbnlbXSkgPT4gaW5mZXIgUiA/IFIgOiBUW1BdO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHBhdGNoPFQ+KHBhdGNoT2JqZWN0OiBOb0luZmVyPFBhdGNoU3BlYzxUPj4pOiBTdGF0ZU9wZXJhdG9yPE5vbk51bGxhYmxlPFQ+PiB7XG4gIHJldHVybiAoZnVuY3Rpb24gcGF0Y2hTdGF0ZU9wZXJhdG9yKGV4aXN0aW5nOiBSZWFkb25seTxQYXRjaFZhbHVlczxUPj4pOiBOb25OdWxsYWJsZTxUPiB7XG4gICAgbGV0IGNsb25lID0gbnVsbDtcbiAgICBmb3IgKGNvbnN0IGsgaW4gcGF0Y2hPYmplY3QpIHtcbiAgICAgIGNvbnN0IG5ld1ZhbHVlID0gcGF0Y2hPYmplY3Rba107XG4gICAgICBjb25zdCBleGlzdGluZ1Byb3BWYWx1ZSA9IGV4aXN0aW5nW2sgYXMgRXh0cmFjdDxrZXlvZiBULCBzdHJpbmc+XTtcbiAgICAgIGNvbnN0IG5ld1Byb3BWYWx1ZSA9IGlzU3RhdGVPcGVyYXRvcihuZXdWYWx1ZSlcbiAgICAgICAgPyBuZXdWYWx1ZSg8YW55PmV4aXN0aW5nUHJvcFZhbHVlKVxuICAgICAgICA6IG5ld1ZhbHVlO1xuICAgICAgaWYgKG5ld1Byb3BWYWx1ZSAhPT0gZXhpc3RpbmdQcm9wVmFsdWUpIHtcbiAgICAgICAgaWYgKCFjbG9uZSkge1xuICAgICAgICAgIGNsb25lID0geyAuLi4oPGFueT5leGlzdGluZykgfTtcbiAgICAgICAgfVxuICAgICAgICBjbG9uZVtrXSA9IG5ld1Byb3BWYWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNsb25lIHx8IGV4aXN0aW5nO1xuICB9IGFzIHVua25vd24pIGFzIFN0YXRlT3BlcmF0b3I8Tm9uTnVsbGFibGU8VD4+O1xufVxuIl19
@@ -1,34 +1,34 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- import { isPredicate, isNumber, invalidIndex } from './utils';
6
- /**
7
- * @template T
8
- * @param {?} selector - index or predicate to remove an item from an array by
9
- * @return {?}
10
- */
11
- export function removeItem(selector) {
12
- return (/**
13
- * @param {?} existing
14
- * @return {?}
15
- */
16
- function removeItemOperator(existing) {
17
- /** @type {?} */
18
- var index = -1;
19
- if (isPredicate(selector)) {
20
- index = existing.findIndex(selector);
21
- }
22
- else if (isNumber(selector)) {
23
- index = selector;
24
- }
25
- if (invalidIndex(index)) {
26
- return (/** @type {?} */ (existing));
27
- }
28
- /** @type {?} */
29
- var clone = existing.slice();
30
- clone.splice(index, 1);
31
- return clone;
32
- });
33
- }
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlLWl0ZW0uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS9vcGVyYXRvcnMvIiwic291cmNlcyI6WyJyZW1vdmUtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBRUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFjLE1BQU0sU0FBUyxDQUFDOzs7Ozs7QUFLMUUsTUFBTSxVQUFVLFVBQVUsQ0FDeEIsUUFBK0I7SUFFL0I7Ozs7SUFBTyxTQUFTLGtCQUFrQixDQUFDLFFBQW1DOztZQUNoRSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBRWQsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDekIsS0FBSyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDdEM7YUFBTSxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUM3QixLQUFLLEdBQUcsUUFBUSxDQUFDO1NBQ2xCO1FBRUQsSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDdkIsT0FBTyxtQkFBQSxRQUFRLEVBQW1CLENBQUM7U0FDcEM7O1lBRUssS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLEVBQUU7UUFDOUIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdkIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDLEVBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhdGVPcGVyYXRvciB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcclxuaW1wb3J0IHsgUHJlZGljYXRlIH0gZnJvbSAnLi9pbnRlcm5hbHMnO1xyXG5pbXBvcnQgeyBpc1ByZWRpY2F0ZSwgaXNOdW1iZXIsIGludmFsaWRJbmRleCwgUmVwYWlyVHlwZSB9IGZyb20gJy4vdXRpbHMnO1xyXG5cclxuLyoqXHJcbiAqIEBwYXJhbSBzZWxlY3RvciAtIGluZGV4IG9yIHByZWRpY2F0ZSB0byByZW1vdmUgYW4gaXRlbSBmcm9tIGFuIGFycmF5IGJ5XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlSXRlbTxUPihcclxuICBzZWxlY3RvcjogbnVtYmVyIHwgUHJlZGljYXRlPFQ+XHJcbik6IFN0YXRlT3BlcmF0b3I8UmVwYWlyVHlwZTxUPltdPiB7XHJcbiAgcmV0dXJuIGZ1bmN0aW9uIHJlbW92ZUl0ZW1PcGVyYXRvcihleGlzdGluZzogUmVhZG9ubHk8UmVwYWlyVHlwZTxUPltdPik6IFJlcGFpclR5cGU8VD5bXSB7XHJcbiAgICBsZXQgaW5kZXggPSAtMTtcclxuXHJcbiAgICBpZiAoaXNQcmVkaWNhdGUoc2VsZWN0b3IpKSB7XHJcbiAgICAgIGluZGV4ID0gZXhpc3RpbmcuZmluZEluZGV4KHNlbGVjdG9yKTtcclxuICAgIH0gZWxzZSBpZiAoaXNOdW1iZXIoc2VsZWN0b3IpKSB7XHJcbiAgICAgIGluZGV4ID0gc2VsZWN0b3I7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGludmFsaWRJbmRleChpbmRleCkpIHtcclxuICAgICAgcmV0dXJuIGV4aXN0aW5nIGFzIFJlcGFpclR5cGU8VD5bXTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjbG9uZSA9IGV4aXN0aW5nLnNsaWNlKCk7XHJcbiAgICBjbG9uZS5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgcmV0dXJuIGNsb25lO1xyXG4gIH07XHJcbn1cclxuIl19
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ import { isPredicate, isNumber, invalidIndex } from './utils';
6
+ /**
7
+ * @template T
8
+ * @param {?} selector - index or predicate to remove an item from an array by
9
+ * @return {?}
10
+ */
11
+ export function removeItem(selector) {
12
+ return (/**
13
+ * @param {?} existing
14
+ * @return {?}
15
+ */
16
+ function removeItemOperator(existing) {
17
+ /** @type {?} */
18
+ var index = -1;
19
+ if (isPredicate(selector)) {
20
+ index = existing.findIndex(selector);
21
+ }
22
+ else if (isNumber(selector)) {
23
+ index = selector;
24
+ }
25
+ if (invalidIndex(index)) {
26
+ return (/** @type {?} */ (existing));
27
+ }
28
+ /** @type {?} */
29
+ var clone = existing.slice();
30
+ clone.splice(index, 1);
31
+ return clone;
32
+ });
33
+ }
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlLWl0ZW0uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS9vcGVyYXRvcnMvIiwic291cmNlcyI6WyJyZW1vdmUtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBRUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFjLE1BQU0sU0FBUyxDQUFDOzs7Ozs7QUFLMUUsTUFBTSxVQUFVLFVBQVUsQ0FDeEIsUUFBK0I7SUFFL0I7Ozs7SUFBTyxTQUFTLGtCQUFrQixDQUFDLFFBQW1DOztZQUNoRSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBRWQsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDekIsS0FBSyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDdEM7YUFBTSxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUM3QixLQUFLLEdBQUcsUUFBUSxDQUFDO1NBQ2xCO1FBRUQsSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDdkIsT0FBTyxtQkFBQSxRQUFRLEVBQW1CLENBQUM7U0FDcEM7O1lBRUssS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLEVBQUU7UUFDOUIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdkIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDLEVBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhdGVPcGVyYXRvciB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IFByZWRpY2F0ZSB9IGZyb20gJy4vaW50ZXJuYWxzJztcbmltcG9ydCB7IGlzUHJlZGljYXRlLCBpc051bWJlciwgaW52YWxpZEluZGV4LCBSZXBhaXJUeXBlIH0gZnJvbSAnLi91dGlscyc7XG5cbi8qKlxuICogQHBhcmFtIHNlbGVjdG9yIC0gaW5kZXggb3IgcHJlZGljYXRlIHRvIHJlbW92ZSBhbiBpdGVtIGZyb20gYW4gYXJyYXkgYnlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUl0ZW08VD4oXG4gIHNlbGVjdG9yOiBudW1iZXIgfCBQcmVkaWNhdGU8VD5cbik6IFN0YXRlT3BlcmF0b3I8UmVwYWlyVHlwZTxUPltdPiB7XG4gIHJldHVybiBmdW5jdGlvbiByZW1vdmVJdGVtT3BlcmF0b3IoZXhpc3Rpbmc6IFJlYWRvbmx5PFJlcGFpclR5cGU8VD5bXT4pOiBSZXBhaXJUeXBlPFQ+W10ge1xuICAgIGxldCBpbmRleCA9IC0xO1xuXG4gICAgaWYgKGlzUHJlZGljYXRlKHNlbGVjdG9yKSkge1xuICAgICAgaW5kZXggPSBleGlzdGluZy5maW5kSW5kZXgoc2VsZWN0b3IpO1xuICAgIH0gZWxzZSBpZiAoaXNOdW1iZXIoc2VsZWN0b3IpKSB7XG4gICAgICBpbmRleCA9IHNlbGVjdG9yO1xuICAgIH1cblxuICAgIGlmIChpbnZhbGlkSW5kZXgoaW5kZXgpKSB7XG4gICAgICByZXR1cm4gZXhpc3RpbmcgYXMgUmVwYWlyVHlwZTxUPltdO1xuICAgIH1cblxuICAgIGNvbnN0IGNsb25lID0gZXhpc3Rpbmcuc2xpY2UoKTtcbiAgICBjbG9uZS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIHJldHVybiBjbG9uZTtcbiAgfTtcbn1cbiJdfQ==
@@ -1,52 +1,54 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- import { isStateOperator, isPredicate, isNumber, invalidIndex } from './utils';
6
- /**
7
- * @template T
8
- * @param {?} selector - Index of item in the array or a predicate function
9
- * that can be provided in `Array.prototype.findIndex`
10
- * @param {?} operatorOrValue - New value under the `selector` index or a
11
- * function that can be applied to an existing value
12
- * @return {?}
13
- */
14
- export function updateItem(selector, operatorOrValue) {
15
- return (/**
16
- * @param {?} existing
17
- * @return {?}
18
- */
19
- function updateItemOperator(existing) {
20
- /** @type {?} */
21
- var index = -1;
22
- if (isPredicate(selector)) {
23
- index = existing.findIndex(selector);
24
- }
25
- else if (isNumber(selector)) {
26
- index = selector;
27
- }
28
- if (invalidIndex(index)) {
29
- return (/** @type {?} */ (existing));
30
- }
31
- /** @type {?} */
32
- var value = (/** @type {?} */ (null));
33
- // Need to check if the new item value will change the existing item value
34
- // then, only if it will change it then clone the array and set the item
35
- if (isStateOperator(operatorOrValue)) {
36
- value = operatorOrValue((/** @type {?} */ (existing[index])));
37
- }
38
- else {
39
- value = operatorOrValue;
40
- }
41
- // If the value hasn't been mutated
42
- // then we just return `existing` array
43
- if (value === existing[index]) {
44
- return (/** @type {?} */ (existing));
45
- }
46
- /** @type {?} */
47
- var clone = existing.slice();
48
- clone[index] = (/** @type {?} */ (value));
49
- return clone;
50
- });
51
- }
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWl0ZW0uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS9vcGVyYXRvcnMvIiwic291cmNlcyI6WyJ1cGRhdGUtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBRUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBYyxNQUFNLFNBQVMsQ0FBQzs7Ozs7Ozs7O0FBUzNGLE1BQU0sVUFBVSxVQUFVLENBQ3hCLFFBQStCLEVBQy9CLGVBQXFDO0lBRXJDOzs7O0lBQU8sU0FBUyxrQkFBa0IsQ0FBQyxRQUFtQzs7WUFDaEUsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUVkLElBQUksV0FBVyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3pCLEtBQUssR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3RDO2FBQU0sSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDN0IsS0FBSyxHQUFHLFFBQVEsQ0FBQztTQUNsQjtRQUVELElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3ZCLE9BQU8sbUJBQUEsUUFBUSxFQUFtQixDQUFDO1NBQ3BDOztZQUVHLEtBQUssR0FBTSxtQkFBQSxJQUFJLEVBQUM7UUFDcEIsMEVBQTBFO1FBQzFFLHdFQUF3RTtRQUN4RSxJQUFJLGVBQWUsQ0FBQyxlQUFlLENBQUMsRUFBRTtZQUNwQyxLQUFLLEdBQUcsZUFBZSxDQUFDLG1CQUFBLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBZSxDQUFDLENBQUM7U0FDekQ7YUFBTTtZQUNMLEtBQUssR0FBRyxlQUFlLENBQUM7U0FDekI7UUFFRCxtQ0FBbUM7UUFDbkMsdUNBQXVDO1FBQ3ZDLElBQUksS0FBSyxLQUFLLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM3QixPQUFPLG1CQUFBLFFBQVEsRUFBbUIsQ0FBQztTQUNwQzs7WUFFSyxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssRUFBRTtRQUM5QixLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsbUJBQUEsS0FBSyxFQUFpQixDQUFDO1FBQ3RDLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQyxFQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YXRlT3BlcmF0b3IgfSBmcm9tICdAbmd4cy9zdG9yZSc7XHJcblxyXG5pbXBvcnQgeyBpc1N0YXRlT3BlcmF0b3IsIGlzUHJlZGljYXRlLCBpc051bWJlciwgaW52YWxpZEluZGV4LCBSZXBhaXJUeXBlIH0gZnJvbSAnLi91dGlscyc7XHJcbmltcG9ydCB7IFByZWRpY2F0ZSB9IGZyb20gJy4vaW50ZXJuYWxzJztcclxuXHJcbi8qKlxyXG4gKiBAcGFyYW0gc2VsZWN0b3IgLSBJbmRleCBvZiBpdGVtIGluIHRoZSBhcnJheSBvciBhIHByZWRpY2F0ZSBmdW5jdGlvblxyXG4gKiB0aGF0IGNhbiBiZSBwcm92aWRlZCBpbiBgQXJyYXkucHJvdG90eXBlLmZpbmRJbmRleGBcclxuICogQHBhcmFtIG9wZXJhdG9yT3JWYWx1ZSAtIE5ldyB2YWx1ZSB1bmRlciB0aGUgYHNlbGVjdG9yYCBpbmRleCBvciBhXHJcbiAqIGZ1bmN0aW9uIHRoYXQgY2FuIGJlIGFwcGxpZWQgdG8gYW4gZXhpc3RpbmcgdmFsdWVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVJdGVtPFQ+KFxyXG4gIHNlbGVjdG9yOiBudW1iZXIgfCBQcmVkaWNhdGU8VD4sXHJcbiAgb3BlcmF0b3JPclZhbHVlOiBUIHwgU3RhdGVPcGVyYXRvcjxUPlxyXG4pOiBTdGF0ZU9wZXJhdG9yPFJlcGFpclR5cGU8VD5bXT4ge1xyXG4gIHJldHVybiBmdW5jdGlvbiB1cGRhdGVJdGVtT3BlcmF0b3IoZXhpc3Rpbmc6IFJlYWRvbmx5PFJlcGFpclR5cGU8VD5bXT4pOiBSZXBhaXJUeXBlPFQ+W10ge1xyXG4gICAgbGV0IGluZGV4ID0gLTE7XHJcblxyXG4gICAgaWYgKGlzUHJlZGljYXRlKHNlbGVjdG9yKSkge1xyXG4gICAgICBpbmRleCA9IGV4aXN0aW5nLmZpbmRJbmRleChzZWxlY3Rvcik7XHJcbiAgICB9IGVsc2UgaWYgKGlzTnVtYmVyKHNlbGVjdG9yKSkge1xyXG4gICAgICBpbmRleCA9IHNlbGVjdG9yO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChpbnZhbGlkSW5kZXgoaW5kZXgpKSB7XHJcbiAgICAgIHJldHVybiBleGlzdGluZyBhcyBSZXBhaXJUeXBlPFQ+W107XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHZhbHVlOiBUID0gbnVsbCE7XHJcbiAgICAvLyBOZWVkIHRvIGNoZWNrIGlmIHRoZSBuZXcgaXRlbSB2YWx1ZSB3aWxsIGNoYW5nZSB0aGUgZXhpc3RpbmcgaXRlbSB2YWx1ZVxyXG4gICAgLy8gdGhlbiwgb25seSBpZiBpdCB3aWxsIGNoYW5nZSBpdCB0aGVuIGNsb25lIHRoZSBhcnJheSBhbmQgc2V0IHRoZSBpdGVtXHJcbiAgICBpZiAoaXNTdGF0ZU9wZXJhdG9yKG9wZXJhdG9yT3JWYWx1ZSkpIHtcclxuICAgICAgdmFsdWUgPSBvcGVyYXRvck9yVmFsdWUoZXhpc3RpbmdbaW5kZXhdIGFzIFJlYWRvbmx5PFQ+KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHZhbHVlID0gb3BlcmF0b3JPclZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIElmIHRoZSB2YWx1ZSBoYXNuJ3QgYmVlbiBtdXRhdGVkXHJcbiAgICAvLyB0aGVuIHdlIGp1c3QgcmV0dXJuIGBleGlzdGluZ2AgYXJyYXlcclxuICAgIGlmICh2YWx1ZSA9PT0gZXhpc3RpbmdbaW5kZXhdKSB7XHJcbiAgICAgIHJldHVybiBleGlzdGluZyBhcyBSZXBhaXJUeXBlPFQ+W107XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgY2xvbmUgPSBleGlzdGluZy5zbGljZSgpO1xyXG4gICAgY2xvbmVbaW5kZXhdID0gdmFsdWUgYXMgUmVwYWlyVHlwZTxUPjtcclxuICAgIHJldHVybiBjbG9uZTtcclxuICB9O1xyXG59XHJcbiJdfQ==
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ import { isStateOperator, isPredicate, isNumber, invalidIndex } from './utils';
6
+ /**
7
+ * @template T
8
+ * @param {?} selector - Index of item in the array or a predicate function
9
+ * that can be provided in `Array.prototype.findIndex`
10
+ * @param {?} operatorOrValue - New value under the `selector` index or a
11
+ * function that can be applied to an existing value
12
+ * @return {?}
13
+ */
14
+ export function updateItem(selector, operatorOrValue) {
15
+ return (/**
16
+ * @param {?} existing
17
+ * @return {?}
18
+ */
19
+ function updateItemOperator(existing) {
20
+ /** @type {?} */
21
+ var index = -1;
22
+ if (isPredicate(selector)) {
23
+ index = existing.findIndex((/** @type {?} */ (selector)));
24
+ }
25
+ else if (isNumber(selector)) {
26
+ index = selector;
27
+ }
28
+ if (invalidIndex(index)) {
29
+ return (/** @type {?} */ (existing));
30
+ }
31
+ /** @type {?} */
32
+ var value = (/** @type {?} */ (null));
33
+ // Need to check if the new item value will change the existing item value
34
+ // then, only if it will change it then clone the array and set the item
35
+ /** @type {?} */
36
+ var theOperatorOrValue = (/** @type {?} */ (operatorOrValue));
37
+ if (isStateOperator(theOperatorOrValue)) {
38
+ value = theOperatorOrValue((/** @type {?} */ (existing[index])));
39
+ }
40
+ else {
41
+ value = theOperatorOrValue;
42
+ }
43
+ // If the value hasn't been mutated
44
+ // then we just return `existing` array
45
+ if (value === existing[index]) {
46
+ return (/** @type {?} */ (existing));
47
+ }
48
+ /** @type {?} */
49
+ var clone = existing.slice();
50
+ clone[index] = (/** @type {?} */ (value));
51
+ return clone;
52
+ });
53
+ }
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWl0ZW0uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS9vcGVyYXRvcnMvIiwic291cmNlcyI6WyJ1cGRhdGUtaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBRUEsT0FBTyxFQUNMLGVBQWUsRUFDZixXQUFXLEVBQ1gsUUFBUSxFQUNSLFlBQVksRUFHYixNQUFNLFNBQVMsQ0FBQzs7Ozs7Ozs7O0FBU2pCLE1BQU0sVUFBVSxVQUFVLENBQ3hCLFFBQXdDLEVBQ3hDLGVBQXVEO0lBRXZEOzs7O0lBQU8sU0FBUyxrQkFBa0IsQ0FBQyxRQUFtQzs7WUFDaEUsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUVkLElBQUksV0FBVyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3pCLEtBQUssR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLG1CQUFBLFFBQVEsRUFBZ0IsQ0FBQyxDQUFDO1NBQ3REO2FBQU0sSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDN0IsS0FBSyxHQUFHLFFBQVEsQ0FBQztTQUNsQjtRQUVELElBQUksWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3ZCLE9BQU8sbUJBQUEsUUFBUSxFQUFtQixDQUFDO1NBQ3BDOztZQUVHLEtBQUssR0FBTSxtQkFBQSxJQUFJLEVBQUM7Ozs7WUFHZCxrQkFBa0IsR0FBRyxtQkFBQSxlQUFlLEVBQXdCO1FBQ2xFLElBQUksZUFBZSxDQUFDLGtCQUFrQixDQUFDLEVBQUU7WUFDdkMsS0FBSyxHQUFHLGtCQUFrQixDQUFDLG1CQUFBLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBZSxDQUFDLENBQUM7U0FDNUQ7YUFBTTtZQUNMLEtBQUssR0FBRyxrQkFBa0IsQ0FBQztTQUM1QjtRQUVELG1DQUFtQztRQUNuQyx1Q0FBdUM7UUFDdkMsSUFBSSxLQUFLLEtBQUssUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzdCLE9BQU8sbUJBQUEsUUFBUSxFQUFtQixDQUFDO1NBQ3BDOztZQUVLLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFO1FBQzlCLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxtQkFBQSxLQUFLLEVBQWlCLENBQUM7UUFDdEMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDLEVBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3RhdGVPcGVyYXRvciB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcblxuaW1wb3J0IHtcbiAgaXNTdGF0ZU9wZXJhdG9yLFxuICBpc1ByZWRpY2F0ZSxcbiAgaXNOdW1iZXIsXG4gIGludmFsaWRJbmRleCxcbiAgUmVwYWlyVHlwZSxcbiAgTm9JbmZlclxufSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IFByZWRpY2F0ZSB9IGZyb20gJy4vaW50ZXJuYWxzJztcblxuLyoqXG4gKiBAcGFyYW0gc2VsZWN0b3IgLSBJbmRleCBvZiBpdGVtIGluIHRoZSBhcnJheSBvciBhIHByZWRpY2F0ZSBmdW5jdGlvblxuICogdGhhdCBjYW4gYmUgcHJvdmlkZWQgaW4gYEFycmF5LnByb3RvdHlwZS5maW5kSW5kZXhgXG4gKiBAcGFyYW0gb3BlcmF0b3JPclZhbHVlIC0gTmV3IHZhbHVlIHVuZGVyIHRoZSBgc2VsZWN0b3JgIGluZGV4IG9yIGFcbiAqIGZ1bmN0aW9uIHRoYXQgY2FuIGJlIGFwcGxpZWQgdG8gYW4gZXhpc3RpbmcgdmFsdWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZUl0ZW08VD4oXG4gIHNlbGVjdG9yOiBudW1iZXIgfCBOb0luZmVyPFByZWRpY2F0ZTxUPj4sXG4gIG9wZXJhdG9yT3JWYWx1ZTogTm9JbmZlcjxUPiB8IE5vSW5mZXI8U3RhdGVPcGVyYXRvcjxUPj5cbik6IFN0YXRlT3BlcmF0b3I8UmVwYWlyVHlwZTxUPltdPiB7XG4gIHJldHVybiBmdW5jdGlvbiB1cGRhdGVJdGVtT3BlcmF0b3IoZXhpc3Rpbmc6IFJlYWRvbmx5PFJlcGFpclR5cGU8VD5bXT4pOiBSZXBhaXJUeXBlPFQ+W10ge1xuICAgIGxldCBpbmRleCA9IC0xO1xuXG4gICAgaWYgKGlzUHJlZGljYXRlKHNlbGVjdG9yKSkge1xuICAgICAgaW5kZXggPSBleGlzdGluZy5maW5kSW5kZXgoc2VsZWN0b3IgYXMgUHJlZGljYXRlPFQ+KTtcbiAgICB9IGVsc2UgaWYgKGlzTnVtYmVyKHNlbGVjdG9yKSkge1xuICAgICAgaW5kZXggPSBzZWxlY3RvcjtcbiAgICB9XG5cbiAgICBpZiAoaW52YWxpZEluZGV4KGluZGV4KSkge1xuICAgICAgcmV0dXJuIGV4aXN0aW5nIGFzIFJlcGFpclR5cGU8VD5bXTtcbiAgICB9XG5cbiAgICBsZXQgdmFsdWU6IFQgPSBudWxsITtcbiAgICAvLyBOZWVkIHRvIGNoZWNrIGlmIHRoZSBuZXcgaXRlbSB2YWx1ZSB3aWxsIGNoYW5nZSB0aGUgZXhpc3RpbmcgaXRlbSB2YWx1ZVxuICAgIC8vIHRoZW4sIG9ubHkgaWYgaXQgd2lsbCBjaGFuZ2UgaXQgdGhlbiBjbG9uZSB0aGUgYXJyYXkgYW5kIHNldCB0aGUgaXRlbVxuICAgIGNvbnN0IHRoZU9wZXJhdG9yT3JWYWx1ZSA9IG9wZXJhdG9yT3JWYWx1ZSBhcyBUIHwgU3RhdGVPcGVyYXRvcjxUPjtcbiAgICBpZiAoaXNTdGF0ZU9wZXJhdG9yKHRoZU9wZXJhdG9yT3JWYWx1ZSkpIHtcbiAgICAgIHZhbHVlID0gdGhlT3BlcmF0b3JPclZhbHVlKGV4aXN0aW5nW2luZGV4XSBhcyBSZWFkb25seTxUPik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlID0gdGhlT3BlcmF0b3JPclZhbHVlO1xuICAgIH1cblxuICAgIC8vIElmIHRoZSB2YWx1ZSBoYXNuJ3QgYmVlbiBtdXRhdGVkXG4gICAgLy8gdGhlbiB3ZSBqdXN0IHJldHVybiBgZXhpc3RpbmdgIGFycmF5XG4gICAgaWYgKHZhbHVlID09PSBleGlzdGluZ1tpbmRleF0pIHtcbiAgICAgIHJldHVybiBleGlzdGluZyBhcyBSZXBhaXJUeXBlPFQ+W107XG4gICAgfVxuXG4gICAgY29uc3QgY2xvbmUgPSBleGlzdGluZy5zbGljZSgpO1xuICAgIGNsb25lW2luZGV4XSA9IHZhbHVlIGFzIFJlcGFpclR5cGU8VD47XG4gICAgcmV0dXJuIGNsb25lO1xuICB9O1xufVxuIl19