@ngxs/store 3.7.2 → 3.7.3-dev.master-1e7127b

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