@ngxs/store 3.7.3-dev.master-10b0883 → 3.7.4

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 (256) 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 +392 -392
  6. package/bundles/ngxs-store-internals.umd.js.map +1 -1
  7. package/bundles/ngxs-store-internals.umd.min.js.map +1 -1
  8. package/bundles/ngxs-store-operators.umd.js +310 -311
  9. package/bundles/ngxs-store-operators.umd.js.map +1 -1
  10. package/bundles/ngxs-store-operators.umd.min.js +1 -1
  11. package/bundles/ngxs-store-operators.umd.min.js.map +1 -1
  12. package/bundles/ngxs-store.umd.js +4474 -4478
  13. package/bundles/ngxs-store.umd.js.map +1 -1
  14. package/bundles/ngxs-store.umd.min.js.map +1 -1
  15. package/esm2015/index.js +13 -13
  16. package/esm2015/internals/angular.js +20 -20
  17. package/esm2015/internals/decorator-injector-adapter.js +204 -204
  18. package/esm2015/internals/index.js +11 -11
  19. package/esm2015/internals/initial-state.js +34 -34
  20. package/esm2015/internals/internal-tokens.js +16 -16
  21. package/esm2015/internals/memoize.js +70 -70
  22. package/esm2015/internals/ngxs-bootstrapper.js +41 -41
  23. package/esm2015/internals/ngxs-store-internals.js +8 -8
  24. package/esm2015/internals/src/symbols.js +14 -14
  25. package/esm2015/internals/symbols.js +14 -14
  26. package/esm2015/internals/testing/fresh-platform.js +110 -110
  27. package/esm2015/internals/testing/helpers/ngxs-test.component.js +22 -22
  28. package/esm2015/internals/testing/helpers/ngxs-test.module.js +24 -24
  29. package/esm2015/internals/testing/index.js +8 -8
  30. package/esm2015/internals/testing/ngxs-store-internals-testing.js +8 -8
  31. package/esm2015/internals/testing/ngxs.setup.js +76 -76
  32. package/esm2015/internals/testing/skip-console-logging.js +62 -62
  33. package/esm2015/internals/testing/symbol.js +29 -29
  34. package/esm2015/ngxs-store.js +22 -22
  35. package/esm2015/operators/append.js +31 -31
  36. package/esm2015/operators/compose.js +24 -24
  37. package/esm2015/operators/iif.js +56 -56
  38. package/esm2015/operators/index.js +18 -18
  39. package/esm2015/operators/insert-item.js +41 -41
  40. package/esm2015/operators/internals.js +5 -5
  41. package/esm2015/operators/ngxs-store-operators.js +8 -8
  42. package/esm2015/operators/patch.js +39 -38
  43. package/esm2015/operators/remove-item.js +34 -34
  44. package/esm2015/operators/update-item.js +52 -54
  45. package/esm2015/operators/utils.js +50 -50
  46. package/esm2015/src/actions/actions.js +39 -39
  47. package/esm2015/src/actions/symbols.js +39 -39
  48. package/esm2015/src/actions-stream.js +140 -138
  49. package/esm2015/src/configs/messages.config.js +79 -79
  50. package/esm2015/src/decorators/action.js +48 -48
  51. package/esm2015/src/decorators/select/select-factory.js +49 -49
  52. package/esm2015/src/decorators/select/select.js +81 -81
  53. package/esm2015/src/decorators/select/symbols.js +94 -94
  54. package/esm2015/src/decorators/selector/selector.js +59 -59
  55. package/esm2015/src/decorators/selector/symbols.js +5 -5
  56. package/esm2015/src/decorators/selector-options.js +34 -34
  57. package/esm2015/src/decorators/state.js +83 -83
  58. package/esm2015/src/execution/dispatch-outside-zone-ngxs-execution-strategy.js +103 -103
  59. package/esm2015/src/execution/internal-ngxs-execution-strategy.js +45 -45
  60. package/esm2015/src/execution/noop-ngxs-execution-strategy.js +29 -29
  61. package/esm2015/src/execution/symbols.js +52 -52
  62. package/esm2015/src/internal/dispatcher.js +217 -217
  63. package/esm2015/src/internal/internals.js +493 -493
  64. package/esm2015/src/internal/lifecycle-state-manager.js +129 -129
  65. package/esm2015/src/internal/state-context-factory.js +138 -138
  66. package/esm2015/src/internal/state-factory.js +449 -449
  67. package/esm2015/src/internal/state-operations.js +133 -133
  68. package/esm2015/src/internal/state-operators.js +33 -33
  69. package/esm2015/src/internal/state-stream.js +30 -30
  70. package/esm2015/src/ivy/ivy-enabled-in-dev-mode.js +28 -28
  71. package/esm2015/src/module.js +157 -157
  72. package/esm2015/src/modules/ngxs-feature.module.js +63 -63
  73. package/esm2015/src/modules/ngxs-root.module.js +52 -52
  74. package/esm2015/src/operators/leave-ngxs.js +58 -58
  75. package/esm2015/src/operators/of-action.js +191 -197
  76. package/esm2015/src/plugin-manager.js +70 -70
  77. package/esm2015/src/plugin_api.js +10 -10
  78. package/esm2015/src/public_api.js +29 -29
  79. package/esm2015/src/public_to_deprecate.js +64 -64
  80. package/esm2015/src/state-token/state-token.js +45 -45
  81. package/esm2015/src/state-token/symbols.js +5 -5
  82. package/esm2015/src/store.js +190 -190
  83. package/esm2015/src/symbols.js +220 -220
  84. package/esm2015/src/utils/compose.js +44 -44
  85. package/esm2015/src/utils/freeze.js +35 -35
  86. package/esm2015/src/utils/selector-utils.js +221 -221
  87. package/esm2015/src/utils/store-validators.js +60 -60
  88. package/esm2015/src/utils/utils.js +143 -143
  89. package/esm5/index.js +13 -13
  90. package/esm5/internals/angular.js +20 -20
  91. package/esm5/internals/decorator-injector-adapter.js +204 -204
  92. package/esm5/internals/index.js +11 -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 +8 -8
  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 +22 -22
  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 +40 -39
  117. package/esm5/operators/remove-item.js +34 -34
  118. package/esm5/operators/update-item.js +52 -54
  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 +186 -184
  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 +50 -50
  126. package/esm5/src/decorators/select/select.js +87 -87
  127. package/esm5/src/decorators/select/symbols.js +95 -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 +84 -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 +253 -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 +575 -575
  141. package/esm5/src/internal/state-operations.js +143 -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 +200 -200
  146. package/esm5/src/modules/ngxs-feature.module.js +65 -65
  147. package/esm5/src/modules/ngxs-root.module.js +47 -47
  148. package/esm5/src/operators/leave-ngxs.js +58 -58
  149. package/esm5/src/operators/of-action.js +217 -223
  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 +229 -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 +373 -373
  166. package/fesm2015/ngxs-store-internals.js.map +1 -1
  167. package/fesm2015/ngxs-store-operators.js +312 -313
  168. package/fesm2015/ngxs-store-operators.js.map +1 -1
  169. package/fesm2015/ngxs-store.js +3990 -3994
  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 +398 -398
  174. package/fesm5/ngxs-store-internals.js.map +1 -1
  175. package/fesm5/ngxs-store-operators.js +316 -317
  176. package/fesm5/ngxs-store-operators.js.map +1 -1
  177. package/fesm5/ngxs-store.js +4486 -4490
  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/decorator-injector-adapter.d.ts +15 -15
  182. package/internals/index.d.ts +7 -7
  183. package/internals/initial-state.d.ts +8 -8
  184. package/internals/internal-tokens.d.ts +9 -9
  185. package/internals/memoize.d.ts +9 -9
  186. package/internals/ngxs-bootstrapper.d.ts +13 -13
  187. package/internals/ngxs-store-internals.d.ts +4 -4
  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 +19 -19
  199. package/ngxs-store.metadata.json +1 -1
  200. package/operators/append.d.ts +6 -6
  201. package/operators/compose.d.ts +2 -3
  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 +10 -6
  209. package/operators/remove-item.d.ts +7 -7
  210. package/operators/update-item.d.ts +10 -10
  211. package/operators/utils.d.ts +9 -10
  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 +14 -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 +43 -56
  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 +138 -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
@@ -1,393 +1,393 @@
1
1
  import { Injectable, InjectionToken, ɵɵdirectiveInject, INJECTOR, ɵglobal } from '@angular/core';
2
2
  import { ReplaySubject } from 'rxjs';
3
3
 
4
- /**
5
- * @fileoverview added by tsickle
6
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
7
- */
8
- /**
9
- * @return {?}
10
- */
11
- function isAngularInTestMode() {
12
- // This is safe to check for these properties in the following way since `typeof` does not
13
- // throw an exception if the value does not exist in the scope.
14
- // We should not try to read these values from the global scope (e.g. `ɵglobal` from the `@angular/core`).
15
- // This is related to how these frameworks compile and execute modules. E.g. Jest wraps the module into
16
- // its internal code where `jest` variable exists in the scope. It cannot be read from the global scope, e.g.
17
- // this will return undefined `global.jest`, but `jest` will not equal undefined.
18
- return (typeof __karma__ !== 'undefined' ||
19
- typeof jasmine !== 'undefined' ||
20
- typeof jest !== 'undefined' ||
21
- typeof Mocha !== 'undefined');
4
+ /**
5
+ * @fileoverview added by tsickle
6
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
7
+ */
8
+ /**
9
+ * @return {?}
10
+ */
11
+ function isAngularInTestMode() {
12
+ // This is safe to check for these properties in the following way since `typeof` does not
13
+ // throw an exception if the value does not exist in the scope.
14
+ // We should not try to read these values from the global scope (e.g. `ɵglobal` from the `@angular/core`).
15
+ // This is related to how these frameworks compile and execute modules. E.g. Jest wraps the module into
16
+ // its internal code where `jest` variable exists in the scope. It cannot be read from the global scope, e.g.
17
+ // this will return undefined `global.jest`, but `jest` will not equal undefined.
18
+ return (typeof __karma__ !== 'undefined' ||
19
+ typeof jasmine !== 'undefined' ||
20
+ typeof jest !== 'undefined' ||
21
+ typeof Mocha !== 'undefined');
22
22
  }
23
23
 
24
- /**
25
- * @fileoverview added by tsickle
26
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
27
- */
28
- class NgxsBootstrapper {
29
- constructor() {
30
- /**
31
- * Use `ReplaySubject`, thus we can get cached value even if the stream is completed
32
- */
33
- this.bootstrap$ = new ReplaySubject(1);
34
- }
35
- /**
36
- * @return {?}
37
- */
38
- get appBootstrapped$() {
39
- return this.bootstrap$.asObservable();
40
- }
41
- /**
42
- * This event will be emitted after attaching `ComponentRef` of the root component
43
- * to the tree of views, that's a signal that application has been fully rendered
44
- * @return {?}
45
- */
46
- bootstrap() {
47
- this.bootstrap$.next(true);
48
- this.bootstrap$.complete();
49
- }
50
- }
51
- NgxsBootstrapper.decorators = [
52
- { type: Injectable }
53
- ];
54
- if (false) {
55
- /**
56
- * Use `ReplaySubject`, thus we can get cached value even if the stream is completed
57
- * @type {?}
58
- * @private
59
- */
60
- NgxsBootstrapper.prototype.bootstrap$;
24
+ /**
25
+ * @fileoverview added by tsickle
26
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
27
+ */
28
+ class NgxsBootstrapper {
29
+ constructor() {
30
+ /**
31
+ * Use `ReplaySubject`, thus we can get cached value even if the stream is completed
32
+ */
33
+ this.bootstrap$ = new ReplaySubject(1);
34
+ }
35
+ /**
36
+ * @return {?}
37
+ */
38
+ get appBootstrapped$() {
39
+ return this.bootstrap$.asObservable();
40
+ }
41
+ /**
42
+ * This event will be emitted after attaching `ComponentRef` of the root component
43
+ * to the tree of views, that's a signal that application has been fully rendered
44
+ * @return {?}
45
+ */
46
+ bootstrap() {
47
+ this.bootstrap$.next(true);
48
+ this.bootstrap$.complete();
49
+ }
50
+ }
51
+ NgxsBootstrapper.decorators = [
52
+ { type: Injectable }
53
+ ];
54
+ if (false) {
55
+ /**
56
+ * Use `ReplaySubject`, thus we can get cached value even if the stream is completed
57
+ * @type {?}
58
+ * @private
59
+ */
60
+ NgxsBootstrapper.prototype.bootstrap$;
61
61
  }
62
62
 
63
- /**
64
- * @fileoverview added by tsickle
65
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
66
- */
67
- /**
68
- * @param {?} a
69
- * @param {?} b
70
- * @return {?}
71
- */
72
- function defaultEqualityCheck(a, b) {
73
- return a === b;
74
- }
75
- /**
76
- * @param {?} equalityCheck
77
- * @param {?} prev
78
- * @param {?} next
79
- * @return {?}
80
- */
81
- function areArgumentsShallowlyEqual(equalityCheck, prev, next) {
82
- if (prev === null || next === null || prev.length !== next.length) {
83
- return false;
84
- }
85
- // Do this in a for loop (and not a `forEach` or an `every`) so we can determine equality as fast as possible.
86
- /** @type {?} */
87
- const length = prev.length;
88
- for (let i = 0; i < length; i++) {
89
- if (!equalityCheck(prev[i], next[i])) {
90
- return false;
91
- }
92
- }
93
- return true;
94
- }
95
- /**
96
- * Memoize a function on its last inputs only.
97
- * Originally from: https://github.com/reduxjs/reselect/blob/master/src/index.js
98
- *
99
- * @ignore
100
- * @template T
101
- * @param {?} func
102
- * @param {?=} equalityCheck
103
- * @return {?}
104
- */
105
- function memoize(func, equalityCheck = defaultEqualityCheck) {
106
- /** @type {?} */
107
- let lastArgs = null;
108
- /** @type {?} */
109
- let lastResult = null;
110
- // we reference arguments instead of spreading them for performance reasons
111
- /**
112
- * @return {?}
113
- */
114
- function memoized() {
115
- if (!areArgumentsShallowlyEqual(equalityCheck, lastArgs, arguments)) {
116
- // apply arguments instead of spreading for performance.
117
- lastResult = ((/** @type {?} */ (func))).apply(null, arguments);
118
- }
119
- lastArgs = arguments;
120
- return lastResult;
121
- }
122
- ((/** @type {?} */ (memoized))).reset = (/**
123
- * @return {?}
124
- */
125
- function () {
126
- // The hidden (for now) ability to reset the memoization
127
- lastArgs = null;
128
- lastResult = null;
129
- });
130
- return (/** @type {?} */ (memoized));
63
+ /**
64
+ * @fileoverview added by tsickle
65
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
66
+ */
67
+ /**
68
+ * @param {?} a
69
+ * @param {?} b
70
+ * @return {?}
71
+ */
72
+ function defaultEqualityCheck(a, b) {
73
+ return a === b;
74
+ }
75
+ /**
76
+ * @param {?} equalityCheck
77
+ * @param {?} prev
78
+ * @param {?} next
79
+ * @return {?}
80
+ */
81
+ function areArgumentsShallowlyEqual(equalityCheck, prev, next) {
82
+ if (prev === null || next === null || prev.length !== next.length) {
83
+ return false;
84
+ }
85
+ // Do this in a for loop (and not a `forEach` or an `every`) so we can determine equality as fast as possible.
86
+ /** @type {?} */
87
+ const length = prev.length;
88
+ for (let i = 0; i < length; i++) {
89
+ if (!equalityCheck(prev[i], next[i])) {
90
+ return false;
91
+ }
92
+ }
93
+ return true;
94
+ }
95
+ /**
96
+ * Memoize a function on its last inputs only.
97
+ * Originally from: https://github.com/reduxjs/reselect/blob/master/src/index.js
98
+ *
99
+ * @ignore
100
+ * @template T
101
+ * @param {?} func
102
+ * @param {?=} equalityCheck
103
+ * @return {?}
104
+ */
105
+ function memoize(func, equalityCheck = defaultEqualityCheck) {
106
+ /** @type {?} */
107
+ let lastArgs = null;
108
+ /** @type {?} */
109
+ let lastResult = null;
110
+ // we reference arguments instead of spreading them for performance reasons
111
+ /**
112
+ * @return {?}
113
+ */
114
+ function memoized() {
115
+ if (!areArgumentsShallowlyEqual(equalityCheck, lastArgs, arguments)) {
116
+ // apply arguments instead of spreading for performance.
117
+ lastResult = ((/** @type {?} */ (func))).apply(null, arguments);
118
+ }
119
+ lastArgs = arguments;
120
+ return lastResult;
121
+ }
122
+ ((/** @type {?} */ (memoized))).reset = (/**
123
+ * @return {?}
124
+ */
125
+ function () {
126
+ // The hidden (for now) ability to reset the memoization
127
+ lastArgs = null;
128
+ lastResult = null;
129
+ });
130
+ return (/** @type {?} */ (memoized));
131
131
  }
132
132
 
133
- /**
134
- * @fileoverview added by tsickle
135
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
136
- */
137
- /** @type {?} */
138
- const INITIAL_STATE_TOKEN = new InjectionToken('INITIAL_STATE_TOKEN');
139
- class InitialState {
140
- /**
141
- * @param {?} state
142
- * @return {?}
143
- */
144
- static set(state) {
145
- this.value = state;
146
- }
147
- /**
148
- * @return {?}
149
- */
150
- static pop() {
151
- /** @type {?} */
152
- const state = this.value;
153
- this.value = {};
154
- return state;
155
- }
156
- }
157
- InitialState.value = {};
158
- if (false) {
159
- /**
160
- * @type {?}
161
- * @private
162
- */
163
- InitialState.value;
133
+ /**
134
+ * @fileoverview added by tsickle
135
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
136
+ */
137
+ /** @type {?} */
138
+ const INITIAL_STATE_TOKEN = new InjectionToken('INITIAL_STATE_TOKEN');
139
+ class InitialState {
140
+ /**
141
+ * @param {?} state
142
+ * @return {?}
143
+ */
144
+ static set(state) {
145
+ this.value = state;
146
+ }
147
+ /**
148
+ * @return {?}
149
+ */
150
+ static pop() {
151
+ /** @type {?} */
152
+ const state = this.value;
153
+ this.value = {};
154
+ return state;
155
+ }
156
+ }
157
+ InitialState.value = {};
158
+ if (false) {
159
+ /**
160
+ * @type {?}
161
+ * @private
162
+ */
163
+ InitialState.value;
164
164
  }
165
165
 
166
- /**
167
- * @fileoverview added by tsickle
168
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
169
- */
170
- /**
171
- * @see StateContextFactory as it's referenced by this token to be accessed by plugins internally
172
- * @type {?}
173
- */
174
- const NGXS_STATE_CONTEXT_FACTORY = new InjectionToken('Internals.StateContextFactory');
175
- /**
176
- * @see StateFactory as it's referenced by this token to be accessed by plugins internally
177
- * @type {?}
178
- */
166
+ /**
167
+ * @fileoverview added by tsickle
168
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
169
+ */
170
+ /**
171
+ * @see StateContextFactory as it's referenced by this token to be accessed by plugins internally
172
+ * @type {?}
173
+ */
174
+ const NGXS_STATE_CONTEXT_FACTORY = new InjectionToken('Internals.StateContextFactory');
175
+ /**
176
+ * @see StateFactory as it's referenced by this token to be accessed by plugins internally
177
+ * @type {?}
178
+ */
179
179
  const NGXS_STATE_FACTORY = new InjectionToken('Internals.StateFactory');
180
180
 
181
- /**
182
- * @fileoverview added by tsickle
183
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
184
- */
185
- // Angular doesn't export `NG_FACTORY_DEF`.
186
- /** @type {?} */
187
- const NG_FACTORY_DEF = 'ɵfac';
188
- // A `Symbol` which is used to save the `Injector` onto the class instance.
189
- /** @type {?} */
190
- const InjectorInstance = Symbol('InjectorInstance');
191
- // A `Symbol` which is used to determine if factory has been decorated previously or not.
192
- /** @type {?} */
193
- const FactoryHasBeenDecorated = Symbol('FactoryHasBeenDecorated');
194
- // A `Symbol` which is used to save the notifier on the class instance. The `InjectorInstance` cannot
195
- // be retrieved within the `constructor` since it's set after the `factory()` is called.
196
- /** @type {?} */
197
- const InjectorNotifier = Symbol('InjectorNotifier');
198
- /**
199
- * @record
200
- */
201
- function PrototypeWithInjectorNotifier() { }
202
- if (false) {
203
- /* Skipping unnamed member:
204
- [InjectorNotifier]?: ReplaySubject<boolean>;*/
205
- }
206
- /**
207
- * @param {?} target
208
- * @return {?}
209
- */
210
- function ensureInjectorNotifierIsCaptured(target) {
211
- if (target[InjectorNotifier]) {
212
- return (/** @type {?} */ (target[InjectorNotifier]));
213
- }
214
- else {
215
- /** @type {?} */
216
- const injectorNotifier$ = new ReplaySubject(1);
217
- Object.defineProperty(target, InjectorNotifier, {
218
- get: (/**
219
- * @return {?}
220
- */
221
- () => injectorNotifier$)
222
- });
223
- return injectorNotifier$;
224
- }
225
- }
226
- // eslint-disable-next-line @typescript-eslint/ban-types
227
- /**
228
- * @param {?} target
229
- * @return {?}
230
- */
231
- function ensureLocalInjectorCaptured(target) {
232
- if (FactoryHasBeenDecorated in target.constructor.prototype) {
233
- return;
234
- }
235
- /** @type {?} */
236
- const constructor = target.constructor;
237
- // Means we're in AOT mode.
238
- if (typeof constructor[NG_FACTORY_DEF] === 'function') {
239
- decorateFactory(constructor);
240
- }
241
- else if (ngDevMode) {
242
- // We're running in JIT mode and that means we're not able to get the compiled definition
243
- // on the class inside the property decorator during the current message loop tick. We have
244
- // to wait for the next message loop tick. Note that this is safe since this Promise will be
245
- // resolved even before the `APP_INITIALIZER` is resolved.
246
- // The below code also will be executed only in development mode, since it's never recommended
247
- // to use the JIT compiler in production mode (by setting "aot: false").
248
- decorateFactoryLater(constructor);
249
- }
250
- target.constructor.prototype[FactoryHasBeenDecorated] = true;
251
- }
252
- /**
253
- * @template T
254
- * @param {?} instance
255
- * @param {?} token
256
- * @return {?}
257
- */
258
- function localInject(instance, token) {
259
- /** @type {?} */
260
- const injector = instance[InjectorInstance];
261
- return injector ? injector.get(token) : null;
262
- }
263
- /**
264
- * @param {?} constructor
265
- * @return {?}
266
- */
267
- function decorateFactory(constructor) {
268
- /** @type {?} */
269
- const factory = constructor[NG_FACTORY_DEF];
270
- if (typeof factory !== 'function') {
271
- return;
272
- }
273
- // Let's try to get any definition.
274
- // Caretaker note: this will be compatible only with Angular 9+, since Angular 9 is the first
275
- // Ivy-stable version. Previously definition properties were named differently (e.g. `ngComponentDef`).
276
- /** @type {?} */
277
- const def = constructor.ɵprov || constructor.ɵpipe || constructor.ɵcmp || constructor.ɵdir;
278
- /** @type {?} */
279
- const decoratedFactory = (/**
280
- * @return {?}
281
- */
282
- () => {
283
- /** @type {?} */
284
- const instance = factory();
285
- // Caretaker note: `inject()` won't work here.
286
- // We can use the `directiveInject` only during the component
287
- // construction, since Angular captures the currently active injector.
288
- // We're not able to use this function inside the getter (when the `selectorId` property is
289
- // requested for the first time), since the currently active injector will be null.
290
- instance[InjectorInstance] = ɵɵdirectiveInject(
291
- // We're using `INJECTOR` token except of the `Injector` class since the compiler
292
- // throws: `Cannot assign an abstract constructor type to a non-abstract constructor type.`.
293
- // Caretaker note: that this is the same way of getting the injector.
294
- INJECTOR);
295
- // Caretaker note: the notifier will be available only if consumers call the `ensureInjectorNotifierIsCaptured()`.
296
- /** @type {?} */
297
- const injectorNotifier$ = instance[InjectorNotifier];
298
- if (injectorNotifier$) {
299
- injectorNotifier$.next(true);
300
- injectorNotifier$.complete();
301
- }
302
- return instance;
303
- });
304
- // If we've found any definition then it's enough to override the `def.factory` since Angular
305
- // code uses the `def.factory` and then fallbacks to `ɵfac`.
306
- if (def) {
307
- def.factory = decoratedFactory;
308
- }
309
- // `@NgModule()` doesn't doesn't have definition factory, also providers have definitions but Angular
310
- // still uses the `ɵfac`.
311
- Object.defineProperty(constructor, NG_FACTORY_DEF, {
312
- get: (/**
313
- * @return {?}
314
- */
315
- () => decoratedFactory)
316
- });
317
- }
318
- /**
319
- * @param {?} constructor
320
- * @return {?}
321
- */
322
- function decorateFactoryLater(constructor) {
323
- // This function actually will be tree-shaken away when building for production since it's guarded with `ngDevMode`.
324
- // We're having the `try-catch` here because of the `SyncTestZoneSpec`, which throws
325
- // an error when micro or macrotask is used within a synchronous test. E.g. `Cannot call
326
- // Promise.then from within a sync test`.
327
- try {
328
- Promise.resolve().then((/**
329
- * @return {?}
330
- */
331
- () => {
332
- decorateFactory(constructor);
333
- }));
334
- }
335
- catch (_a) {
336
- // This is kind of a "hack", but we try to be backwards-compatible,
337
- // tho this `catch` block will only be executed when tests are run with Jasmine or Jest.
338
- ɵglobal.process &&
339
- ɵglobal.process.nextTick &&
340
- ɵglobal.process.nextTick((/**
341
- * @return {?}
342
- */
343
- () => {
344
- decorateFactory(constructor);
345
- }));
346
- }
347
- }
348
- /**
349
- * @record
350
- */
351
- function Definition() { }
352
- if (false) {
353
- /** @type {?} */
354
- Definition.prototype.factory;
355
- }
356
- /**
357
- * @record
358
- */
359
- function ConstructorWithDefinitionAndFactory() { }
360
- if (false) {
361
- /** @type {?|undefined} */
362
- ConstructorWithDefinitionAndFactory.prototype.ɵprov;
363
- /** @type {?|undefined} */
364
- ConstructorWithDefinitionAndFactory.prototype.ɵpipe;
365
- /** @type {?|undefined} */
366
- ConstructorWithDefinitionAndFactory.prototype.ɵcmp;
367
- /** @type {?|undefined} */
368
- ConstructorWithDefinitionAndFactory.prototype.ɵdir;
369
- /* Skipping unnamed member:
370
- [NG_FACTORY_DEF]?: Factory;*/
371
- }
372
- /**
373
- * @record
374
- */
375
- function PrivateInstance() { }
376
- if (false) {
377
- /* Skipping unnamed member:
378
- [InjectorInstance]?: Injector;*/
379
- /* Skipping unnamed member:
380
- [InjectorNotifier]?: ReplaySubject<boolean>;*/
181
+ /**
182
+ * @fileoverview added by tsickle
183
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
184
+ */
185
+ // Angular doesn't export `NG_FACTORY_DEF`.
186
+ /** @type {?} */
187
+ const NG_FACTORY_DEF = 'ɵfac';
188
+ // A `Symbol` which is used to save the `Injector` onto the class instance.
189
+ /** @type {?} */
190
+ const InjectorInstance = Symbol('InjectorInstance');
191
+ // A `Symbol` which is used to determine if factory has been decorated previously or not.
192
+ /** @type {?} */
193
+ const FactoryHasBeenDecorated = Symbol('FactoryHasBeenDecorated');
194
+ // A `Symbol` which is used to save the notifier on the class instance. The `InjectorInstance` cannot
195
+ // be retrieved within the `constructor` since it's set after the `factory()` is called.
196
+ /** @type {?} */
197
+ const InjectorNotifier = Symbol('InjectorNotifier');
198
+ /**
199
+ * @record
200
+ */
201
+ function PrototypeWithInjectorNotifier() { }
202
+ if (false) {
203
+ /* Skipping unnamed member:
204
+ [InjectorNotifier]?: ReplaySubject<boolean>;*/
205
+ }
206
+ /**
207
+ * @param {?} target
208
+ * @return {?}
209
+ */
210
+ function ensureInjectorNotifierIsCaptured(target) {
211
+ if (target[InjectorNotifier]) {
212
+ return (/** @type {?} */ (target[InjectorNotifier]));
213
+ }
214
+ else {
215
+ /** @type {?} */
216
+ const injectorNotifier$ = new ReplaySubject(1);
217
+ Object.defineProperty(target, InjectorNotifier, {
218
+ get: (/**
219
+ * @return {?}
220
+ */
221
+ () => injectorNotifier$)
222
+ });
223
+ return injectorNotifier$;
224
+ }
225
+ }
226
+ // eslint-disable-next-line @typescript-eslint/ban-types
227
+ /**
228
+ * @param {?} target
229
+ * @return {?}
230
+ */
231
+ function ensureLocalInjectorCaptured(target) {
232
+ if (FactoryHasBeenDecorated in target.constructor.prototype) {
233
+ return;
234
+ }
235
+ /** @type {?} */
236
+ const constructor = target.constructor;
237
+ // Means we're in AOT mode.
238
+ if (typeof constructor[NG_FACTORY_DEF] === 'function') {
239
+ decorateFactory(constructor);
240
+ }
241
+ else if (ngDevMode) {
242
+ // We're running in JIT mode and that means we're not able to get the compiled definition
243
+ // on the class inside the property decorator during the current message loop tick. We have
244
+ // to wait for the next message loop tick. Note that this is safe since this Promise will be
245
+ // resolved even before the `APP_INITIALIZER` is resolved.
246
+ // The below code also will be executed only in development mode, since it's never recommended
247
+ // to use the JIT compiler in production mode (by setting "aot: false").
248
+ decorateFactoryLater(constructor);
249
+ }
250
+ target.constructor.prototype[FactoryHasBeenDecorated] = true;
251
+ }
252
+ /**
253
+ * @template T
254
+ * @param {?} instance
255
+ * @param {?} token
256
+ * @return {?}
257
+ */
258
+ function localInject(instance, token) {
259
+ /** @type {?} */
260
+ const injector = instance[InjectorInstance];
261
+ return injector ? injector.get(token) : null;
262
+ }
263
+ /**
264
+ * @param {?} constructor
265
+ * @return {?}
266
+ */
267
+ function decorateFactory(constructor) {
268
+ /** @type {?} */
269
+ const factory = constructor[NG_FACTORY_DEF];
270
+ if (typeof factory !== 'function') {
271
+ return;
272
+ }
273
+ // Let's try to get any definition.
274
+ // Caretaker note: this will be compatible only with Angular 9+, since Angular 9 is the first
275
+ // Ivy-stable version. Previously definition properties were named differently (e.g. `ngComponentDef`).
276
+ /** @type {?} */
277
+ const def = constructor.ɵprov || constructor.ɵpipe || constructor.ɵcmp || constructor.ɵdir;
278
+ /** @type {?} */
279
+ const decoratedFactory = (/**
280
+ * @return {?}
281
+ */
282
+ () => {
283
+ /** @type {?} */
284
+ const instance = factory();
285
+ // Caretaker note: `inject()` won't work here.
286
+ // We can use the `directiveInject` only during the component
287
+ // construction, since Angular captures the currently active injector.
288
+ // We're not able to use this function inside the getter (when the `selectorId` property is
289
+ // requested for the first time), since the currently active injector will be null.
290
+ instance[InjectorInstance] = ɵɵdirectiveInject(
291
+ // We're using `INJECTOR` token except of the `Injector` class since the compiler
292
+ // throws: `Cannot assign an abstract constructor type to a non-abstract constructor type.`.
293
+ // Caretaker note: that this is the same way of getting the injector.
294
+ INJECTOR);
295
+ // Caretaker note: the notifier will be available only if consumers call the `ensureInjectorNotifierIsCaptured()`.
296
+ /** @type {?} */
297
+ const injectorNotifier$ = instance[InjectorNotifier];
298
+ if (injectorNotifier$) {
299
+ injectorNotifier$.next(true);
300
+ injectorNotifier$.complete();
301
+ }
302
+ return instance;
303
+ });
304
+ // If we've found any definition then it's enough to override the `def.factory` since Angular
305
+ // code uses the `def.factory` and then fallbacks to `ɵfac`.
306
+ if (def) {
307
+ def.factory = decoratedFactory;
308
+ }
309
+ // `@NgModule()` doesn't doesn't have definition factory, also providers have definitions but Angular
310
+ // still uses the `ɵfac`.
311
+ Object.defineProperty(constructor, NG_FACTORY_DEF, {
312
+ get: (/**
313
+ * @return {?}
314
+ */
315
+ () => decoratedFactory)
316
+ });
317
+ }
318
+ /**
319
+ * @param {?} constructor
320
+ * @return {?}
321
+ */
322
+ function decorateFactoryLater(constructor) {
323
+ // This function actually will be tree-shaken away when building for production since it's guarded with `ngDevMode`.
324
+ // We're having the `try-catch` here because of the `SyncTestZoneSpec`, which throws
325
+ // an error when micro or macrotask is used within a synchronous test. E.g. `Cannot call
326
+ // Promise.then from within a sync test`.
327
+ try {
328
+ Promise.resolve().then((/**
329
+ * @return {?}
330
+ */
331
+ () => {
332
+ decorateFactory(constructor);
333
+ }));
334
+ }
335
+ catch (_a) {
336
+ // This is kind of a "hack", but we try to be backwards-compatible,
337
+ // tho this `catch` block will only be executed when tests are run with Jasmine or Jest.
338
+ ɵglobal.process &&
339
+ ɵglobal.process.nextTick &&
340
+ ɵglobal.process.nextTick((/**
341
+ * @return {?}
342
+ */
343
+ () => {
344
+ decorateFactory(constructor);
345
+ }));
346
+ }
347
+ }
348
+ /**
349
+ * @record
350
+ */
351
+ function Definition() { }
352
+ if (false) {
353
+ /** @type {?} */
354
+ Definition.prototype.factory;
355
+ }
356
+ /**
357
+ * @record
358
+ */
359
+ function ConstructorWithDefinitionAndFactory() { }
360
+ if (false) {
361
+ /** @type {?|undefined} */
362
+ ConstructorWithDefinitionAndFactory.prototype.ɵprov;
363
+ /** @type {?|undefined} */
364
+ ConstructorWithDefinitionAndFactory.prototype.ɵpipe;
365
+ /** @type {?|undefined} */
366
+ ConstructorWithDefinitionAndFactory.prototype.ɵcmp;
367
+ /** @type {?|undefined} */
368
+ ConstructorWithDefinitionAndFactory.prototype.ɵdir;
369
+ /* Skipping unnamed member:
370
+ [NG_FACTORY_DEF]?: Factory;*/
371
+ }
372
+ /**
373
+ * @record
374
+ */
375
+ function PrivateInstance() { }
376
+ if (false) {
377
+ /* Skipping unnamed member:
378
+ [InjectorInstance]?: Injector;*/
379
+ /* Skipping unnamed member:
380
+ [InjectorNotifier]?: ReplaySubject<boolean>;*/
381
381
  }
382
382
 
383
- /**
384
- * @fileoverview added by tsickle
385
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
383
+ /**
384
+ * @fileoverview added by tsickle
385
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
386
386
  */
387
387
 
388
- /**
389
- * @fileoverview added by tsickle
390
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
388
+ /**
389
+ * @fileoverview added by tsickle
390
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
391
391
  */
392
392
 
393
393
  export { INITIAL_STATE_TOKEN, InitialState, NGXS_STATE_CONTEXT_FACTORY, NGXS_STATE_FACTORY, NgxsBootstrapper, ensureInjectorNotifierIsCaptured, ensureLocalInjectorCaptured, isAngularInTestMode, localInject, memoize };