@ngxs/store 3.7.4 → 3.7.5

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 (257) hide show
  1. package/README.md +16 -16
  2. package/bundles/ngxs-store-internals-testing.umd.js +315 -315
  3. package/bundles/ngxs-store-internals-testing.umd.js.map +1 -1
  4. package/bundles/ngxs-store-internals-testing.umd.min.js.map +1 -1
  5. package/bundles/ngxs-store-internals.umd.js +192 -397
  6. package/bundles/ngxs-store-internals.umd.js.map +1 -1
  7. package/bundles/ngxs-store-internals.umd.min.js +1 -1
  8. package/bundles/ngxs-store-internals.umd.min.js.map +1 -1
  9. package/bundles/ngxs-store-operators.umd.js +310 -310
  10. package/bundles/ngxs-store-operators.umd.js.map +1 -1
  11. package/bundles/ngxs-store-operators.umd.min.js.map +1 -1
  12. package/bundles/ngxs-store.umd.js +4401 -4481
  13. package/bundles/ngxs-store.umd.js.map +1 -1
  14. package/bundles/ngxs-store.umd.min.js +1 -1
  15. package/bundles/ngxs-store.umd.min.js.map +1 -1
  16. package/esm2015/index.js +13 -13
  17. package/esm2015/internals/angular.js +20 -20
  18. package/esm2015/internals/index.js +10 -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 +9 -9
  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 +24 -23
  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 -39
  43. package/esm2015/operators/remove-item.js +34 -34
  44. package/esm2015/operators/update-item.js +52 -52
  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 -140
  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 +45 -49
  52. package/esm2015/src/decorators/select/select.js +45 -81
  53. package/esm2015/src/decorators/select/symbols.js +50 -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 +77 -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 +219 -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 +457 -449
  67. package/esm2015/src/internal/state-operations.js +124 -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 +159 -157
  72. package/esm2015/src/modules/ngxs-feature.module.js +63 -63
  73. package/esm2015/src/modules/ngxs-root.module.js +49 -52
  74. package/esm2015/src/operators/leave-ngxs.js +58 -58
  75. package/esm2015/src/operators/of-action.js +191 -191
  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 +221 -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/index.js +10 -11
  92. package/esm5/internals/initial-state.js +45 -45
  93. package/esm5/internals/internal-tokens.js +16 -16
  94. package/esm5/internals/memoize.js +71 -71
  95. package/esm5/internals/ngxs-bootstrapper.js +56 -56
  96. package/esm5/internals/ngxs-store-internals.js +9 -9
  97. package/esm5/internals/src/symbols.js +14 -14
  98. package/esm5/internals/symbols.js +14 -14
  99. package/esm5/internals/testing/fresh-platform.js +121 -121
  100. package/esm5/internals/testing/helpers/ngxs-test.component.js +32 -32
  101. package/esm5/internals/testing/helpers/ngxs-test.module.js +32 -32
  102. package/esm5/internals/testing/index.js +8 -8
  103. package/esm5/internals/testing/ngxs-store-internals-testing.js +8 -8
  104. package/esm5/internals/testing/ngxs.setup.js +98 -98
  105. package/esm5/internals/testing/skip-console-logging.js +62 -62
  106. package/esm5/internals/testing/symbol.js +29 -29
  107. package/esm5/ngxs-store.js +24 -23
  108. package/esm5/operators/append.js +31 -31
  109. package/esm5/operators/compose.js +28 -28
  110. package/esm5/operators/iif.js +56 -56
  111. package/esm5/operators/index.js +18 -18
  112. package/esm5/operators/insert-item.js +41 -41
  113. package/esm5/operators/internals.js +5 -5
  114. package/esm5/operators/ngxs-store-operators.js +8 -8
  115. package/esm5/operators/patch.js +40 -40
  116. package/esm5/operators/remove-item.js +34 -34
  117. package/esm5/operators/update-item.js +52 -52
  118. package/esm5/operators/utils.js +50 -50
  119. package/esm5/src/actions/actions.js +62 -62
  120. package/esm5/src/actions/symbols.js +39 -39
  121. package/esm5/src/actions-stream.js +186 -186
  122. package/esm5/src/configs/messages.config.js +79 -79
  123. package/esm5/src/decorators/action.js +60 -60
  124. package/esm5/src/decorators/select/select-factory.js +46 -50
  125. package/esm5/src/decorators/select/select.js +50 -87
  126. package/esm5/src/decorators/select/symbols.js +51 -95
  127. package/esm5/src/decorators/selector/selector.js +59 -59
  128. package/esm5/src/decorators/selector/symbols.js +5 -5
  129. package/esm5/src/decorators/selector-options.js +34 -34
  130. package/esm5/src/decorators/state.js +78 -84
  131. package/esm5/src/execution/dispatch-outside-zone-ngxs-execution-strategy.js +123 -123
  132. package/esm5/src/execution/internal-ngxs-execution-strategy.js +54 -54
  133. package/esm5/src/execution/noop-ngxs-execution-strategy.js +43 -43
  134. package/esm5/src/execution/symbols.js +52 -52
  135. package/esm5/src/internal/dispatcher.js +255 -253
  136. package/esm5/src/internal/internals.js +495 -495
  137. package/esm5/src/internal/lifecycle-state-manager.js +177 -177
  138. package/esm5/src/internal/state-context-factory.js +146 -146
  139. package/esm5/src/internal/state-factory.js +583 -575
  140. package/esm5/src/internal/state-operations.js +134 -143
  141. package/esm5/src/internal/state-operators.js +34 -34
  142. package/esm5/src/internal/state-stream.js +37 -37
  143. package/esm5/src/ivy/ivy-enabled-in-dev-mode.js +28 -28
  144. package/esm5/src/module.js +202 -200
  145. package/esm5/src/modules/ngxs-feature.module.js +65 -65
  146. package/esm5/src/modules/ngxs-root.module.js +44 -47
  147. package/esm5/src/operators/leave-ngxs.js +58 -58
  148. package/esm5/src/operators/of-action.js +217 -217
  149. package/esm5/src/plugin-manager.js +82 -82
  150. package/esm5/src/plugin_api.js +10 -10
  151. package/esm5/src/public_api.js +29 -29
  152. package/esm5/src/public_to_deprecate.js +64 -64
  153. package/esm5/src/state-token/state-token.js +57 -57
  154. package/esm5/src/state-token/symbols.js +5 -5
  155. package/esm5/src/store.js +241 -241
  156. package/esm5/src/symbols.js +230 -229
  157. package/esm5/src/utils/compose.js +55 -55
  158. package/esm5/src/utils/freeze.js +35 -35
  159. package/esm5/src/utils/selector-utils.js +230 -230
  160. package/esm5/src/utils/store-validators.js +78 -78
  161. package/esm5/src/utils/utils.js +151 -151
  162. package/fesm2015/ngxs-store-internals-testing.js +274 -274
  163. package/fesm2015/ngxs-store-internals-testing.js.map +1 -1
  164. package/fesm2015/ngxs-store-internals.js +175 -377
  165. package/fesm2015/ngxs-store-internals.js.map +1 -1
  166. package/fesm2015/ngxs-store-operators.js +312 -312
  167. package/fesm2015/ngxs-store-operators.js.map +1 -1
  168. package/fesm2015/ngxs-store.js +3915 -3995
  169. package/fesm2015/ngxs-store.js.map +1 -1
  170. package/fesm5/ngxs-store-internals-testing.js +321 -321
  171. package/fesm5/ngxs-store-internals-testing.js.map +1 -1
  172. package/fesm5/ngxs-store-internals.js +200 -402
  173. package/fesm5/ngxs-store-internals.js.map +1 -1
  174. package/fesm5/ngxs-store-operators.js +316 -316
  175. package/fesm5/ngxs-store-operators.js.map +1 -1
  176. package/fesm5/ngxs-store.js +4410 -4491
  177. package/fesm5/ngxs-store.js.map +1 -1
  178. package/index.d.ts +8 -8
  179. package/internals/angular.d.ts +1 -1
  180. package/internals/index.d.ts +6 -7
  181. package/internals/initial-state.d.ts +8 -8
  182. package/internals/internal-tokens.d.ts +9 -9
  183. package/internals/memoize.d.ts +9 -9
  184. package/internals/ngxs-bootstrapper.d.ts +13 -13
  185. package/internals/ngxs-store-internals.d.ts +4 -4
  186. package/internals/ngxs-store-internals.metadata.json +1 -1
  187. package/internals/src/symbols.d.ts +7 -7
  188. package/internals/symbols.d.ts +7 -7
  189. package/internals/testing/fresh-platform.d.ts +1 -1
  190. package/internals/testing/helpers/ngxs-test.component.d.ts +5 -5
  191. package/internals/testing/helpers/ngxs-test.module.d.ts +4 -4
  192. package/internals/testing/index.d.ts +4 -4
  193. package/internals/testing/ngxs-store-internals-testing.d.ts +4 -4
  194. package/internals/testing/ngxs.setup.d.ts +7 -7
  195. package/internals/testing/skip-console-logging.d.ts +1 -1
  196. package/internals/testing/symbol.d.ts +14 -14
  197. package/ngxs-store.d.ts +20 -19
  198. package/ngxs-store.metadata.json +1 -1
  199. package/operators/append.d.ts +6 -6
  200. package/operators/compose.d.ts +2 -2
  201. package/operators/iif.d.ts +11 -11
  202. package/operators/index.d.ts +13 -13
  203. package/operators/insert-item.d.ts +7 -7
  204. package/operators/internals.d.ts +2 -2
  205. package/operators/ngxs-store-operators.d.ts +4 -4
  206. package/operators/patch.d.ts +10 -10
  207. package/operators/remove-item.d.ts +7 -7
  208. package/operators/update-item.d.ts +10 -10
  209. package/operators/utils.d.ts +9 -9
  210. package/package.json +1 -1
  211. package/src/actions/actions.d.ts +15 -15
  212. package/src/actions/symbols.d.ts +21 -21
  213. package/src/actions-stream.d.ts +49 -49
  214. package/src/configs/messages.config.d.ts +11 -11
  215. package/src/decorators/action.d.ts +5 -5
  216. package/src/decorators/select/select-factory.d.ts +13 -13
  217. package/src/decorators/select/select.d.ts +4 -4
  218. package/src/decorators/select/symbols.d.ts +10 -14
  219. package/src/decorators/selector/selector.d.ts +5 -5
  220. package/src/decorators/selector/symbols.d.ts +4 -4
  221. package/src/decorators/selector-options.d.ts +5 -5
  222. package/src/decorators/state.d.ts +6 -6
  223. package/src/execution/dispatch-outside-zone-ngxs-execution-strategy.d.ts +11 -11
  224. package/src/execution/internal-ngxs-execution-strategy.d.ts +7 -7
  225. package/src/execution/noop-ngxs-execution-strategy.d.ts +5 -5
  226. package/src/execution/symbols.d.ts +10 -10
  227. package/src/internal/dispatcher.d.ts +32 -32
  228. package/src/internal/internals.d.ts +166 -166
  229. package/src/internal/lifecycle-state-manager.d.ts +20 -20
  230. package/src/internal/state-context-factory.d.ts +15 -15
  231. package/src/internal/state-factory.d.ts +57 -57
  232. package/src/internal/state-operations.d.ts +19 -19
  233. package/src/internal/state-operators.d.ts +2 -2
  234. package/src/internal/state-stream.d.ts +11 -11
  235. package/src/ivy/ivy-enabled-in-dev-mode.d.ts +6 -6
  236. package/src/module.d.ts +23 -23
  237. package/src/modules/ngxs-feature.module.d.ts +13 -13
  238. package/src/modules/ngxs-root.module.d.ts +13 -13
  239. package/src/operators/leave-ngxs.d.ts +7 -7
  240. package/src/operators/of-action.d.ts +43 -43
  241. package/src/plugin-manager.d.ts +10 -10
  242. package/src/plugin_api.d.ts +5 -5
  243. package/src/public_api.d.ts +17 -17
  244. package/src/public_to_deprecate.d.ts +21 -21
  245. package/src/state-token/state-token.d.ts +7 -7
  246. package/src/state-token/symbols.d.ts +5 -5
  247. package/src/store.d.ts +59 -59
  248. package/src/symbols.d.ts +139 -138
  249. package/src/utils/compose.d.ts +23 -23
  250. package/src/utils/freeze.d.ts +5 -5
  251. package/src/utils/selector-utils.d.ts +23 -23
  252. package/src/utils/store-validators.d.ts +7 -7
  253. package/src/utils/utils.d.ts +46 -46
  254. package/types/index.d.ts +2 -2
  255. package/esm2015/internals/decorator-injector-adapter.js +0 -204
  256. package/esm5/internals/decorator-injector-adapter.js +0 -204
  257. package/internals/decorator-injector-adapter.d.ts +0 -15
@@ -1,129 +1,129 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- import { Injectable } from '@angular/core';
6
- import { NgxsBootstrapper } from '@ngxs/store/internals';
7
- import { filter, mergeMap, tap } from 'rxjs/operators';
8
- import { StateContextFactory } from './state-context-factory';
9
- import { InternalStateOperations } from './state-operations';
10
- import { getStateDiffChanges } from './internals';
11
- export class LifecycleStateManager {
12
- /**
13
- * @param {?} internalStateOperations
14
- * @param {?} stateContextFactory
15
- * @param {?} bootstrapper
16
- */
17
- constructor(internalStateOperations, stateContextFactory, bootstrapper) {
18
- this.internalStateOperations = internalStateOperations;
19
- this.stateContextFactory = stateContextFactory;
20
- this.bootstrapper = bootstrapper;
21
- }
22
- /**
23
- * @template T
24
- * @param {?} action
25
- * @param {?} results
26
- * @return {?}
27
- */
28
- ngxsBootstrap(action, results) {
29
- this.internalStateOperations
30
- .getRootStateOperations()
31
- .dispatch(action)
32
- .pipe(filter((/**
33
- * @return {?}
34
- */
35
- () => !!results)), tap((/**
36
- * @return {?}
37
- */
38
- () => this.invokeInit((/** @type {?} */ (results)).states))), mergeMap((/**
39
- * @return {?}
40
- */
41
- () => this.bootstrapper.appBootstrapped$)), filter((/**
42
- * @param {?} appBootstrapped
43
- * @return {?}
44
- */
45
- appBootstrapped => !!appBootstrapped)))
46
- .subscribe((/**
47
- * @return {?}
48
- */
49
- () => this.invokeBootstrap((/** @type {?} */ (results)).states)));
50
- }
51
- /**
52
- * Invoke the init function on the states.
53
- * @param {?} mappedStores
54
- * @return {?}
55
- */
56
- invokeInit(mappedStores) {
57
- for (const mappedStore of mappedStores) {
58
- /** @type {?} */
59
- const instance = mappedStore.instance;
60
- if (instance.ngxsOnChanges) {
61
- /** @type {?} */
62
- const currentAppState = {};
63
- /** @type {?} */
64
- const newAppState = this.internalStateOperations
65
- .getRootStateOperations()
66
- .getState();
67
- /** @type {?} */
68
- const firstDiffChange = getStateDiffChanges(mappedStore, {
69
- currentAppState,
70
- newAppState
71
- });
72
- instance.ngxsOnChanges(firstDiffChange);
73
- }
74
- if (instance.ngxsOnInit) {
75
- instance.ngxsOnInit(this.getStateContext(mappedStore));
76
- }
77
- mappedStore.isInitialised = true;
78
- }
79
- }
80
- /**
81
- * Invoke the bootstrap function on the states.
82
- * @param {?} mappedStores
83
- * @return {?}
84
- */
85
- invokeBootstrap(mappedStores) {
86
- for (const mappedStore of mappedStores) {
87
- /** @type {?} */
88
- const instance = mappedStore.instance;
89
- if (instance.ngxsAfterBootstrap) {
90
- instance.ngxsAfterBootstrap(this.getStateContext(mappedStore));
91
- }
92
- }
93
- }
94
- /**
95
- * @private
96
- * @param {?} mappedStore
97
- * @return {?}
98
- */
99
- getStateContext(mappedStore) {
100
- return this.stateContextFactory.createStateContext(mappedStore);
101
- }
102
- }
103
- LifecycleStateManager.decorators = [
104
- { type: Injectable }
105
- ];
106
- /** @nocollapse */
107
- LifecycleStateManager.ctorParameters = () => [
108
- { type: InternalStateOperations },
109
- { type: StateContextFactory },
110
- { type: NgxsBootstrapper }
111
- ];
112
- if (false) {
113
- /**
114
- * @type {?}
115
- * @private
116
- */
117
- LifecycleStateManager.prototype.internalStateOperations;
118
- /**
119
- * @type {?}
120
- * @private
121
- */
122
- LifecycleStateManager.prototype.stateContextFactory;
123
- /**
124
- * @type {?}
125
- * @private
126
- */
127
- LifecycleStateManager.prototype.bootstrapper;
128
- }
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlmZWN5Y2xlLXN0YXRlLW1hbmFnZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS8iLCJzb3VyY2VzIjpbInNyYy9pbnRlcm5hbC9saWZlY3ljbGUtc3RhdGUtbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQWUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQWtDLE1BQU0sYUFBYSxDQUFDO0FBSWxGLE1BQU0sT0FBTyxxQkFBcUI7Ozs7OztJQUNoQyxZQUNVLHVCQUFnRCxFQUNoRCxtQkFBd0MsRUFDeEMsWUFBOEI7UUFGOUIsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQUNoRCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLGlCQUFZLEdBQVosWUFBWSxDQUFrQjtJQUNyQyxDQUFDOzs7Ozs7O0lBRUosYUFBYSxDQUFJLE1BQVMsRUFBRSxPQUFzQztRQUNoRSxJQUFJLENBQUMsdUJBQXVCO2FBQ3pCLHNCQUFzQixFQUFFO2FBQ3hCLFFBQVEsQ0FBQyxNQUFNLENBQUM7YUFDaEIsSUFBSSxDQUNILE1BQU07OztRQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUMsRUFDdkIsR0FBRzs7O1FBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQkFBQSxPQUFPLEVBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxFQUMzQyxRQUFROzs7UUFBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixFQUFDLEVBQ2xELE1BQU07Ozs7UUFBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUMsQ0FDN0M7YUFDQSxTQUFTOzs7UUFBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLG1CQUFBLE9BQU8sRUFBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLENBQUM7SUFDNUQsQ0FBQzs7Ozs7O0lBS0QsVUFBVSxDQUFDLFlBQTJCO1FBQ3BDLEtBQUssTUFBTSxXQUFXLElBQUksWUFBWSxFQUFFOztrQkFDaEMsUUFBUSxHQUFrQixXQUFXLENBQUMsUUFBUTtZQUVwRCxJQUFJLFFBQVEsQ0FBQyxhQUFhLEVBQUU7O3NCQUNwQixlQUFlLEdBQWdCLEVBQUU7O3NCQUNqQyxXQUFXLEdBQWdCLElBQUksQ0FBQyx1QkFBdUI7cUJBQzFELHNCQUFzQixFQUFFO3FCQUN4QixRQUFRLEVBQUU7O3NCQUVQLGVBQWUsR0FBcUIsbUJBQW1CLENBQUMsV0FBVyxFQUFFO29CQUN6RSxlQUFlO29CQUNmLFdBQVc7aUJBQ1osQ0FBQztnQkFFRixRQUFRLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDO2FBQ3pDO1lBRUQsSUFBSSxRQUFRLENBQUMsVUFBVSxFQUFFO2dCQUN2QixRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQzthQUN4RDtZQUVELFdBQVcsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQzs7Ozs7O0lBS0QsZUFBZSxDQUFDLFlBQTJCO1FBQ3pDLEtBQUssTUFBTSxXQUFXLElBQUksWUFBWSxFQUFFOztrQkFDaEMsUUFBUSxHQUFrQixXQUFXLENBQUMsUUFBUTtZQUNwRCxJQUFJLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRTtnQkFDL0IsUUFBUSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQzthQUNoRTtTQUNGO0lBQ0gsQ0FBQzs7Ozs7O0lBRU8sZUFBZSxDQUFDLFdBQXdCO1FBQzlDLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7OztZQWhFRixVQUFVOzs7O1lBSkYsdUJBQXVCO1lBRHZCLG1CQUFtQjtZQUhuQixnQkFBZ0I7Ozs7Ozs7SUFXckIsd0RBQXdEOzs7OztJQUN4RCxvREFBZ0Q7Ozs7O0lBQ2hELDZDQUFzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmd4c0Jvb3RzdHJhcHBlciwgUGxhaW5PYmplY3QgfSBmcm9tICdAbmd4cy9zdG9yZS9pbnRlcm5hbHMnO1xyXG5pbXBvcnQgeyBmaWx0ZXIsIG1lcmdlTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBTdGF0ZUNvbnRleHRGYWN0b3J5IH0gZnJvbSAnLi9zdGF0ZS1jb250ZXh0LWZhY3RvcnknO1xyXG5pbXBvcnQgeyBJbnRlcm5hbFN0YXRlT3BlcmF0aW9ucyB9IGZyb20gJy4vc3RhdGUtb3BlcmF0aW9ucyc7XHJcbmltcG9ydCB7IGdldFN0YXRlRGlmZkNoYW5nZXMsIE1hcHBlZFN0b3JlLCBTdGF0ZXNBbmREZWZhdWx0cyB9IGZyb20gJy4vaW50ZXJuYWxzJztcclxuaW1wb3J0IHsgTmd4c0xpZmVDeWNsZSwgTmd4c1NpbXBsZUNoYW5nZSwgU3RhdGVDb250ZXh0IH0gZnJvbSAnLi4vc3ltYm9scyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBMaWZlY3ljbGVTdGF0ZU1hbmFnZXIge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBpbnRlcm5hbFN0YXRlT3BlcmF0aW9uczogSW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnMsXHJcbiAgICBwcml2YXRlIHN0YXRlQ29udGV4dEZhY3Rvcnk6IFN0YXRlQ29udGV4dEZhY3RvcnksXHJcbiAgICBwcml2YXRlIGJvb3RzdHJhcHBlcjogTmd4c0Jvb3RzdHJhcHBlclxyXG4gICkge31cclxuXHJcbiAgbmd4c0Jvb3RzdHJhcDxUPihhY3Rpb246IFQsIHJlc3VsdHM6IFN0YXRlc0FuZERlZmF1bHRzIHwgdW5kZWZpbmVkKTogdm9pZCB7XHJcbiAgICB0aGlzLmludGVybmFsU3RhdGVPcGVyYXRpb25zXHJcbiAgICAgIC5nZXRSb290U3RhdGVPcGVyYXRpb25zKClcclxuICAgICAgLmRpc3BhdGNoKGFjdGlvbilcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgZmlsdGVyKCgpID0+ICEhcmVzdWx0cyksXHJcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuaW52b2tlSW5pdChyZXN1bHRzIS5zdGF0ZXMpKSxcclxuICAgICAgICBtZXJnZU1hcCgoKSA9PiB0aGlzLmJvb3RzdHJhcHBlci5hcHBCb290c3RyYXBwZWQkKSxcclxuICAgICAgICBmaWx0ZXIoYXBwQm9vdHN0cmFwcGVkID0+ICEhYXBwQm9vdHN0cmFwcGVkKVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5pbnZva2VCb290c3RyYXAocmVzdWx0cyEuc3RhdGVzKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbnZva2UgdGhlIGluaXQgZnVuY3Rpb24gb24gdGhlIHN0YXRlcy5cclxuICAgKi9cclxuICBpbnZva2VJbml0KG1hcHBlZFN0b3JlczogTWFwcGVkU3RvcmVbXSk6IHZvaWQge1xyXG4gICAgZm9yIChjb25zdCBtYXBwZWRTdG9yZSBvZiBtYXBwZWRTdG9yZXMpIHtcclxuICAgICAgY29uc3QgaW5zdGFuY2U6IE5neHNMaWZlQ3ljbGUgPSBtYXBwZWRTdG9yZS5pbnN0YW5jZTtcclxuXHJcbiAgICAgIGlmIChpbnN0YW5jZS5uZ3hzT25DaGFuZ2VzKSB7XHJcbiAgICAgICAgY29uc3QgY3VycmVudEFwcFN0YXRlOiBQbGFpbk9iamVjdCA9IHt9O1xyXG4gICAgICAgIGNvbnN0IG5ld0FwcFN0YXRlOiBQbGFpbk9iamVjdCA9IHRoaXMuaW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnNcclxuICAgICAgICAgIC5nZXRSb290U3RhdGVPcGVyYXRpb25zKClcclxuICAgICAgICAgIC5nZXRTdGF0ZSgpO1xyXG5cclxuICAgICAgICBjb25zdCBmaXJzdERpZmZDaGFuZ2U6IE5neHNTaW1wbGVDaGFuZ2UgPSBnZXRTdGF0ZURpZmZDaGFuZ2VzKG1hcHBlZFN0b3JlLCB7XHJcbiAgICAgICAgICBjdXJyZW50QXBwU3RhdGUsXHJcbiAgICAgICAgICBuZXdBcHBTdGF0ZVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBpbnN0YW5jZS5uZ3hzT25DaGFuZ2VzKGZpcnN0RGlmZkNoYW5nZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChpbnN0YW5jZS5uZ3hzT25Jbml0KSB7XHJcbiAgICAgICAgaW5zdGFuY2Uubmd4c09uSW5pdCh0aGlzLmdldFN0YXRlQ29udGV4dChtYXBwZWRTdG9yZSkpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBtYXBwZWRTdG9yZS5pc0luaXRpYWxpc2VkID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEludm9rZSB0aGUgYm9vdHN0cmFwIGZ1bmN0aW9uIG9uIHRoZSBzdGF0ZXMuXHJcbiAgICovXHJcbiAgaW52b2tlQm9vdHN0cmFwKG1hcHBlZFN0b3JlczogTWFwcGVkU3RvcmVbXSkge1xyXG4gICAgZm9yIChjb25zdCBtYXBwZWRTdG9yZSBvZiBtYXBwZWRTdG9yZXMpIHtcclxuICAgICAgY29uc3QgaW5zdGFuY2U6IE5neHNMaWZlQ3ljbGUgPSBtYXBwZWRTdG9yZS5pbnN0YW5jZTtcclxuICAgICAgaWYgKGluc3RhbmNlLm5neHNBZnRlckJvb3RzdHJhcCkge1xyXG4gICAgICAgIGluc3RhbmNlLm5neHNBZnRlckJvb3RzdHJhcCh0aGlzLmdldFN0YXRlQ29udGV4dChtYXBwZWRTdG9yZSkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFN0YXRlQ29udGV4dChtYXBwZWRTdG9yZTogTWFwcGVkU3RvcmUpOiBTdGF0ZUNvbnRleHQ8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5zdGF0ZUNvbnRleHRGYWN0b3J5LmNyZWF0ZVN0YXRlQ29udGV4dChtYXBwZWRTdG9yZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ import { Injectable } from '@angular/core';
6
+ import { NgxsBootstrapper } from '@ngxs/store/internals';
7
+ import { filter, mergeMap, tap } from 'rxjs/operators';
8
+ import { StateContextFactory } from './state-context-factory';
9
+ import { InternalStateOperations } from './state-operations';
10
+ import { getStateDiffChanges } from './internals';
11
+ export class LifecycleStateManager {
12
+ /**
13
+ * @param {?} internalStateOperations
14
+ * @param {?} stateContextFactory
15
+ * @param {?} bootstrapper
16
+ */
17
+ constructor(internalStateOperations, stateContextFactory, bootstrapper) {
18
+ this.internalStateOperations = internalStateOperations;
19
+ this.stateContextFactory = stateContextFactory;
20
+ this.bootstrapper = bootstrapper;
21
+ }
22
+ /**
23
+ * @template T
24
+ * @param {?} action
25
+ * @param {?} results
26
+ * @return {?}
27
+ */
28
+ ngxsBootstrap(action, results) {
29
+ this.internalStateOperations
30
+ .getRootStateOperations()
31
+ .dispatch(action)
32
+ .pipe(filter((/**
33
+ * @return {?}
34
+ */
35
+ () => !!results)), tap((/**
36
+ * @return {?}
37
+ */
38
+ () => this.invokeInit((/** @type {?} */ (results)).states))), mergeMap((/**
39
+ * @return {?}
40
+ */
41
+ () => this.bootstrapper.appBootstrapped$)), filter((/**
42
+ * @param {?} appBootstrapped
43
+ * @return {?}
44
+ */
45
+ appBootstrapped => !!appBootstrapped)))
46
+ .subscribe((/**
47
+ * @return {?}
48
+ */
49
+ () => this.invokeBootstrap((/** @type {?} */ (results)).states)));
50
+ }
51
+ /**
52
+ * Invoke the init function on the states.
53
+ * @param {?} mappedStores
54
+ * @return {?}
55
+ */
56
+ invokeInit(mappedStores) {
57
+ for (const mappedStore of mappedStores) {
58
+ /** @type {?} */
59
+ const instance = mappedStore.instance;
60
+ if (instance.ngxsOnChanges) {
61
+ /** @type {?} */
62
+ const currentAppState = {};
63
+ /** @type {?} */
64
+ const newAppState = this.internalStateOperations
65
+ .getRootStateOperations()
66
+ .getState();
67
+ /** @type {?} */
68
+ const firstDiffChange = getStateDiffChanges(mappedStore, {
69
+ currentAppState,
70
+ newAppState
71
+ });
72
+ instance.ngxsOnChanges(firstDiffChange);
73
+ }
74
+ if (instance.ngxsOnInit) {
75
+ instance.ngxsOnInit(this.getStateContext(mappedStore));
76
+ }
77
+ mappedStore.isInitialised = true;
78
+ }
79
+ }
80
+ /**
81
+ * Invoke the bootstrap function on the states.
82
+ * @param {?} mappedStores
83
+ * @return {?}
84
+ */
85
+ invokeBootstrap(mappedStores) {
86
+ for (const mappedStore of mappedStores) {
87
+ /** @type {?} */
88
+ const instance = mappedStore.instance;
89
+ if (instance.ngxsAfterBootstrap) {
90
+ instance.ngxsAfterBootstrap(this.getStateContext(mappedStore));
91
+ }
92
+ }
93
+ }
94
+ /**
95
+ * @private
96
+ * @param {?} mappedStore
97
+ * @return {?}
98
+ */
99
+ getStateContext(mappedStore) {
100
+ return this.stateContextFactory.createStateContext(mappedStore);
101
+ }
102
+ }
103
+ LifecycleStateManager.decorators = [
104
+ { type: Injectable }
105
+ ];
106
+ /** @nocollapse */
107
+ LifecycleStateManager.ctorParameters = () => [
108
+ { type: InternalStateOperations },
109
+ { type: StateContextFactory },
110
+ { type: NgxsBootstrapper }
111
+ ];
112
+ if (false) {
113
+ /**
114
+ * @type {?}
115
+ * @private
116
+ */
117
+ LifecycleStateManager.prototype.internalStateOperations;
118
+ /**
119
+ * @type {?}
120
+ * @private
121
+ */
122
+ LifecycleStateManager.prototype.stateContextFactory;
123
+ /**
124
+ * @type {?}
125
+ * @private
126
+ */
127
+ LifecycleStateManager.prototype.bootstrapper;
128
+ }
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlmZWN5Y2xlLXN0YXRlLW1hbmFnZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS8iLCJzb3VyY2VzIjpbInNyYy9pbnRlcm5hbC9saWZlY3ljbGUtc3RhdGUtbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQWUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQWtDLE1BQU0sYUFBYSxDQUFDO0FBSWxGLE1BQU0sT0FBTyxxQkFBcUI7Ozs7OztJQUNoQyxZQUNVLHVCQUFnRCxFQUNoRCxtQkFBd0MsRUFDeEMsWUFBOEI7UUFGOUIsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQUNoRCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLGlCQUFZLEdBQVosWUFBWSxDQUFrQjtJQUNyQyxDQUFDOzs7Ozs7O0lBRUosYUFBYSxDQUFJLE1BQVMsRUFBRSxPQUFzQztRQUNoRSxJQUFJLENBQUMsdUJBQXVCO2FBQ3pCLHNCQUFzQixFQUFFO2FBQ3hCLFFBQVEsQ0FBQyxNQUFNLENBQUM7YUFDaEIsSUFBSSxDQUNILE1BQU07OztRQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUMsRUFDdkIsR0FBRzs7O1FBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQkFBQSxPQUFPLEVBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxFQUMzQyxRQUFROzs7UUFBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixFQUFDLEVBQ2xELE1BQU07Ozs7UUFBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUMsQ0FDN0M7YUFDQSxTQUFTOzs7UUFBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLG1CQUFBLE9BQU8sRUFBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLENBQUM7SUFDNUQsQ0FBQzs7Ozs7O0lBS0QsVUFBVSxDQUFDLFlBQTJCO1FBQ3BDLEtBQUssTUFBTSxXQUFXLElBQUksWUFBWSxFQUFFOztrQkFDaEMsUUFBUSxHQUFrQixXQUFXLENBQUMsUUFBUTtZQUVwRCxJQUFJLFFBQVEsQ0FBQyxhQUFhLEVBQUU7O3NCQUNwQixlQUFlLEdBQWdCLEVBQUU7O3NCQUNqQyxXQUFXLEdBQWdCLElBQUksQ0FBQyx1QkFBdUI7cUJBQzFELHNCQUFzQixFQUFFO3FCQUN4QixRQUFRLEVBQUU7O3NCQUVQLGVBQWUsR0FBcUIsbUJBQW1CLENBQUMsV0FBVyxFQUFFO29CQUN6RSxlQUFlO29CQUNmLFdBQVc7aUJBQ1osQ0FBQztnQkFFRixRQUFRLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDO2FBQ3pDO1lBRUQsSUFBSSxRQUFRLENBQUMsVUFBVSxFQUFFO2dCQUN2QixRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQzthQUN4RDtZQUVELFdBQVcsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQzs7Ozs7O0lBS0QsZUFBZSxDQUFDLFlBQTJCO1FBQ3pDLEtBQUssTUFBTSxXQUFXLElBQUksWUFBWSxFQUFFOztrQkFDaEMsUUFBUSxHQUFrQixXQUFXLENBQUMsUUFBUTtZQUNwRCxJQUFJLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRTtnQkFDL0IsUUFBUSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQzthQUNoRTtTQUNGO0lBQ0gsQ0FBQzs7Ozs7O0lBRU8sZUFBZSxDQUFDLFdBQXdCO1FBQzlDLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7OztZQWhFRixVQUFVOzs7O1lBSkYsdUJBQXVCO1lBRHZCLG1CQUFtQjtZQUhuQixnQkFBZ0I7Ozs7Ozs7SUFXckIsd0RBQXdEOzs7OztJQUN4RCxvREFBZ0Q7Ozs7O0lBQ2hELDZDQUFzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5neHNCb290c3RyYXBwZXIsIFBsYWluT2JqZWN0IH0gZnJvbSAnQG5neHMvc3RvcmUvaW50ZXJuYWxzJztcbmltcG9ydCB7IGZpbHRlciwgbWVyZ2VNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU3RhdGVDb250ZXh0RmFjdG9yeSB9IGZyb20gJy4vc3RhdGUtY29udGV4dC1mYWN0b3J5JztcbmltcG9ydCB7IEludGVybmFsU3RhdGVPcGVyYXRpb25zIH0gZnJvbSAnLi9zdGF0ZS1vcGVyYXRpb25zJztcbmltcG9ydCB7IGdldFN0YXRlRGlmZkNoYW5nZXMsIE1hcHBlZFN0b3JlLCBTdGF0ZXNBbmREZWZhdWx0cyB9IGZyb20gJy4vaW50ZXJuYWxzJztcbmltcG9ydCB7IE5neHNMaWZlQ3ljbGUsIE5neHNTaW1wbGVDaGFuZ2UsIFN0YXRlQ29udGV4dCB9IGZyb20gJy4uL3N5bWJvbHMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTGlmZWN5Y2xlU3RhdGVNYW5hZ2VyIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBpbnRlcm5hbFN0YXRlT3BlcmF0aW9uczogSW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnMsXG4gICAgcHJpdmF0ZSBzdGF0ZUNvbnRleHRGYWN0b3J5OiBTdGF0ZUNvbnRleHRGYWN0b3J5LFxuICAgIHByaXZhdGUgYm9vdHN0cmFwcGVyOiBOZ3hzQm9vdHN0cmFwcGVyXG4gICkge31cblxuICBuZ3hzQm9vdHN0cmFwPFQ+KGFjdGlvbjogVCwgcmVzdWx0czogU3RhdGVzQW5kRGVmYXVsdHMgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICB0aGlzLmludGVybmFsU3RhdGVPcGVyYXRpb25zXG4gICAgICAuZ2V0Um9vdFN0YXRlT3BlcmF0aW9ucygpXG4gICAgICAuZGlzcGF0Y2goYWN0aW9uKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoKSA9PiAhIXJlc3VsdHMpLFxuICAgICAgICB0YXAoKCkgPT4gdGhpcy5pbnZva2VJbml0KHJlc3VsdHMhLnN0YXRlcykpLFxuICAgICAgICBtZXJnZU1hcCgoKSA9PiB0aGlzLmJvb3RzdHJhcHBlci5hcHBCb290c3RyYXBwZWQkKSxcbiAgICAgICAgZmlsdGVyKGFwcEJvb3RzdHJhcHBlZCA9PiAhIWFwcEJvb3RzdHJhcHBlZClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5pbnZva2VCb290c3RyYXAocmVzdWx0cyEuc3RhdGVzKSk7XG4gIH1cblxuICAvKipcbiAgICogSW52b2tlIHRoZSBpbml0IGZ1bmN0aW9uIG9uIHRoZSBzdGF0ZXMuXG4gICAqL1xuICBpbnZva2VJbml0KG1hcHBlZFN0b3JlczogTWFwcGVkU3RvcmVbXSk6IHZvaWQge1xuICAgIGZvciAoY29uc3QgbWFwcGVkU3RvcmUgb2YgbWFwcGVkU3RvcmVzKSB7XG4gICAgICBjb25zdCBpbnN0YW5jZTogTmd4c0xpZmVDeWNsZSA9IG1hcHBlZFN0b3JlLmluc3RhbmNlO1xuXG4gICAgICBpZiAoaW5zdGFuY2Uubmd4c09uQ2hhbmdlcykge1xuICAgICAgICBjb25zdCBjdXJyZW50QXBwU3RhdGU6IFBsYWluT2JqZWN0ID0ge307XG4gICAgICAgIGNvbnN0IG5ld0FwcFN0YXRlOiBQbGFpbk9iamVjdCA9IHRoaXMuaW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnNcbiAgICAgICAgICAuZ2V0Um9vdFN0YXRlT3BlcmF0aW9ucygpXG4gICAgICAgICAgLmdldFN0YXRlKCk7XG5cbiAgICAgICAgY29uc3QgZmlyc3REaWZmQ2hhbmdlOiBOZ3hzU2ltcGxlQ2hhbmdlID0gZ2V0U3RhdGVEaWZmQ2hhbmdlcyhtYXBwZWRTdG9yZSwge1xuICAgICAgICAgIGN1cnJlbnRBcHBTdGF0ZSxcbiAgICAgICAgICBuZXdBcHBTdGF0ZVxuICAgICAgICB9KTtcblxuICAgICAgICBpbnN0YW5jZS5uZ3hzT25DaGFuZ2VzKGZpcnN0RGlmZkNoYW5nZSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChpbnN0YW5jZS5uZ3hzT25Jbml0KSB7XG4gICAgICAgIGluc3RhbmNlLm5neHNPbkluaXQodGhpcy5nZXRTdGF0ZUNvbnRleHQobWFwcGVkU3RvcmUpKTtcbiAgICAgIH1cblxuICAgICAgbWFwcGVkU3RvcmUuaXNJbml0aWFsaXNlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEludm9rZSB0aGUgYm9vdHN0cmFwIGZ1bmN0aW9uIG9uIHRoZSBzdGF0ZXMuXG4gICAqL1xuICBpbnZva2VCb290c3RyYXAobWFwcGVkU3RvcmVzOiBNYXBwZWRTdG9yZVtdKSB7XG4gICAgZm9yIChjb25zdCBtYXBwZWRTdG9yZSBvZiBtYXBwZWRTdG9yZXMpIHtcbiAgICAgIGNvbnN0IGluc3RhbmNlOiBOZ3hzTGlmZUN5Y2xlID0gbWFwcGVkU3RvcmUuaW5zdGFuY2U7XG4gICAgICBpZiAoaW5zdGFuY2Uubmd4c0FmdGVyQm9vdHN0cmFwKSB7XG4gICAgICAgIGluc3RhbmNlLm5neHNBZnRlckJvb3RzdHJhcCh0aGlzLmdldFN0YXRlQ29udGV4dChtYXBwZWRTdG9yZSkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0U3RhdGVDb250ZXh0KG1hcHBlZFN0b3JlOiBNYXBwZWRTdG9yZSk6IFN0YXRlQ29udGV4dDxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZUNvbnRleHRGYWN0b3J5LmNyZWF0ZVN0YXRlQ29udGV4dChtYXBwZWRTdG9yZSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,138 +1,138 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- import { Injectable } from '@angular/core';
6
- import { getStateDiffChanges } from '../internal/internals';
7
- import { setValue, getValue } from '../utils/utils';
8
- import { InternalStateOperations } from '../internal/state-operations';
9
- import { simplePatch } from './state-operators';
10
- /**
11
- * State Context factory class
12
- * @ignore
13
- */
14
- export class StateContextFactory {
15
- /**
16
- * @param {?} _internalStateOperations
17
- */
18
- constructor(_internalStateOperations) {
19
- this._internalStateOperations = _internalStateOperations;
20
- }
21
- /**
22
- * Create the state context
23
- * @template T
24
- * @param {?} mappedStore
25
- * @return {?}
26
- */
27
- createStateContext(mappedStore) {
28
- /** @type {?} */
29
- const root = this._internalStateOperations.getRootStateOperations();
30
- /**
31
- * @param {?} currentAppState
32
- * @return {?}
33
- */
34
- function getState(currentAppState) {
35
- return getValue(currentAppState, mappedStore.path);
36
- }
37
- /**
38
- * @param {?} currentAppState
39
- * @param {?} newValue
40
- * @return {?}
41
- */
42
- function setStateValue(currentAppState, newValue) {
43
- /** @type {?} */
44
- const newAppState = setValue(currentAppState, mappedStore.path, newValue);
45
- /** @type {?} */
46
- const instance = mappedStore.instance;
47
- if (instance.ngxsOnChanges) {
48
- /** @type {?} */
49
- const change = getStateDiffChanges(mappedStore, {
50
- currentAppState,
51
- newAppState
52
- });
53
- instance.ngxsOnChanges(change);
54
- }
55
- root.setState(newAppState);
56
- return newAppState;
57
- // In doing this refactoring I noticed that there is a 'bug' where the
58
- // application state is returned instead of this state slice.
59
- // This has worked this way since the beginning see:
60
- // https://github.com/ngxs/store/blame/324c667b4b7debd8eb979006c67ca0ae347d88cd/src/state-factory.ts
61
- // This needs to be fixed, but is a 'breaking' change.
62
- // I will do this fix in a subsequent PR and we can decide how to handle it.
63
- }
64
- /**
65
- * @param {?} currentAppState
66
- * @param {?} stateOperator
67
- * @return {?}
68
- */
69
- function setStateFromOperator(currentAppState, stateOperator) {
70
- /** @type {?} */
71
- const local = getState(currentAppState);
72
- /** @type {?} */
73
- const newValue = stateOperator(local);
74
- return setStateValue(currentAppState, newValue);
75
- }
76
- /**
77
- * @param {?} value
78
- * @return {?}
79
- */
80
- function isStateOperator(value) {
81
- return typeof value === 'function';
82
- }
83
- return {
84
- /**
85
- * @return {?}
86
- */
87
- getState() {
88
- /** @type {?} */
89
- const currentAppState = root.getState();
90
- return getState(currentAppState);
91
- },
92
- /**
93
- * @param {?} val
94
- * @return {?}
95
- */
96
- patchState(val) {
97
- /** @type {?} */
98
- const currentAppState = root.getState();
99
- /** @type {?} */
100
- const patchOperator = simplePatch(val);
101
- return setStateFromOperator(currentAppState, patchOperator);
102
- },
103
- /**
104
- * @param {?} val
105
- * @return {?}
106
- */
107
- setState(val) {
108
- /** @type {?} */
109
- const currentAppState = root.getState();
110
- return isStateOperator(val)
111
- ? setStateFromOperator(currentAppState, val)
112
- : setStateValue(currentAppState, val);
113
- },
114
- /**
115
- * @param {?} actions
116
- * @return {?}
117
- */
118
- dispatch(actions) {
119
- return root.dispatch(actions);
120
- }
121
- };
122
- }
123
- }
124
- StateContextFactory.decorators = [
125
- { type: Injectable }
126
- ];
127
- /** @nocollapse */
128
- StateContextFactory.ctorParameters = () => [
129
- { type: InternalStateOperations }
130
- ];
131
- if (false) {
132
- /**
133
- * @type {?}
134
- * @private
135
- */
136
- StateContextFactory.prototype._internalStateOperations;
137
- }
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtY29udGV4dC1mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMvc3RvcmUvIiwic291cmNlcyI6WyJzcmMvaW50ZXJuYWwvc3RhdGUtY29udGV4dC1mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBZSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7OztBQU9oRCxNQUFNLE9BQU8sbUJBQW1COzs7O0lBQzlCLFlBQW9CLHdCQUFpRDtRQUFqRCw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQXlCO0lBQUcsQ0FBQzs7Ozs7OztJQUt6RSxrQkFBa0IsQ0FBSSxXQUF3Qjs7Y0FDdEMsSUFBSSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxzQkFBc0IsRUFBRTs7Ozs7UUFFbkUsU0FBUyxRQUFRLENBQUMsZUFBb0I7WUFDcEMsT0FBTyxRQUFRLENBQUMsZUFBZSxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyRCxDQUFDOzs7Ozs7UUFFRCxTQUFTLGFBQWEsQ0FBQyxlQUFvQixFQUFFLFFBQVc7O2tCQUNoRCxXQUFXLEdBQUcsUUFBUSxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQzs7a0JBQ25FLFFBQVEsR0FBa0IsV0FBVyxDQUFDLFFBQVE7WUFFcEQsSUFBSSxRQUFRLENBQUMsYUFBYSxFQUFFOztzQkFDcEIsTUFBTSxHQUFxQixtQkFBbUIsQ0FBSSxXQUFXLEVBQUU7b0JBQ25FLGVBQWU7b0JBQ2YsV0FBVztpQkFDWixDQUFDO2dCQUVGLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDaEM7WUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzNCLE9BQU8sV0FBVyxDQUFDO1lBQ25CLHNFQUFzRTtZQUN0RSw2REFBNkQ7WUFDN0Qsb0RBQW9EO1lBQ3BELG9HQUFvRztZQUNwRyxzREFBc0Q7WUFDdEQsNEVBQTRFO1FBQzlFLENBQUM7Ozs7OztRQUVELFNBQVMsb0JBQW9CLENBQUMsZUFBb0IsRUFBRSxhQUErQjs7a0JBQzNFLEtBQUssR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDOztrQkFDakMsUUFBUSxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUM7WUFDckMsT0FBTyxhQUFhLENBQUMsZUFBZSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2xELENBQUM7Ozs7O1FBRUQsU0FBUyxlQUFlLENBQUMsS0FBMkI7WUFDbEQsT0FBTyxPQUFPLEtBQUssS0FBSyxVQUFVLENBQUM7UUFDckMsQ0FBQztRQUVELE9BQU87Ozs7WUFDTCxRQUFROztzQkFDQSxlQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDdkMsT0FBTyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDbkMsQ0FBQzs7Ozs7WUFDRCxVQUFVLENBQUMsR0FBZTs7c0JBQ2xCLGVBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFOztzQkFDakMsYUFBYSxHQUFHLFdBQVcsQ0FBSSxHQUFHLENBQUM7Z0JBQ3pDLE9BQU8sb0JBQW9CLENBQUMsZUFBZSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1lBQzlELENBQUM7Ozs7O1lBQ0QsUUFBUSxDQUFDLEdBQXlCOztzQkFDMUIsZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ3ZDLE9BQU8sZUFBZSxDQUFDLEdBQUcsQ0FBQztvQkFDekIsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLGVBQWUsRUFBRSxHQUFHLENBQUM7b0JBQzVDLENBQUMsQ0FBQyxhQUFhLENBQUMsZUFBZSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzFDLENBQUM7Ozs7O1lBQ0QsUUFBUSxDQUFDLE9BQW9CO2dCQUMzQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDaEMsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDOzs7WUFuRUYsVUFBVTs7OztZQVBGLHVCQUF1Qjs7Ozs7OztJQVNsQix1REFBeUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IE5neHNMaWZlQ3ljbGUsIE5neHNTaW1wbGVDaGFuZ2UsIFN0YXRlQ29udGV4dCwgU3RhdGVPcGVyYXRvciB9IGZyb20gJy4uL3N5bWJvbHMnO1xyXG5pbXBvcnQgeyBnZXRTdGF0ZURpZmZDaGFuZ2VzLCBNYXBwZWRTdG9yZSB9IGZyb20gJy4uL2ludGVybmFsL2ludGVybmFscyc7XHJcbmltcG9ydCB7IHNldFZhbHVlLCBnZXRWYWx1ZSB9IGZyb20gJy4uL3V0aWxzL3V0aWxzJztcclxuaW1wb3J0IHsgSW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnMgfSBmcm9tICcuLi9pbnRlcm5hbC9zdGF0ZS1vcGVyYXRpb25zJztcclxuaW1wb3J0IHsgc2ltcGxlUGF0Y2ggfSBmcm9tICcuL3N0YXRlLW9wZXJhdG9ycyc7XHJcblxyXG4vKipcclxuICogU3RhdGUgQ29udGV4dCBmYWN0b3J5IGNsYXNzXHJcbiAqIEBpZ25vcmVcclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFN0YXRlQ29udGV4dEZhY3Rvcnkge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2ludGVybmFsU3RhdGVPcGVyYXRpb25zOiBJbnRlcm5hbFN0YXRlT3BlcmF0aW9ucykge31cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIHRoZSBzdGF0ZSBjb250ZXh0XHJcbiAgICovXHJcbiAgY3JlYXRlU3RhdGVDb250ZXh0PFQ+KG1hcHBlZFN0b3JlOiBNYXBwZWRTdG9yZSk6IFN0YXRlQ29udGV4dDxUPiB7XHJcbiAgICBjb25zdCByb290ID0gdGhpcy5faW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnMuZ2V0Um9vdFN0YXRlT3BlcmF0aW9ucygpO1xyXG5cclxuICAgIGZ1bmN0aW9uIGdldFN0YXRlKGN1cnJlbnRBcHBTdGF0ZTogYW55KTogVCB7XHJcbiAgICAgIHJldHVybiBnZXRWYWx1ZShjdXJyZW50QXBwU3RhdGUsIG1hcHBlZFN0b3JlLnBhdGgpO1xyXG4gICAgfVxyXG5cclxuICAgIGZ1bmN0aW9uIHNldFN0YXRlVmFsdWUoY3VycmVudEFwcFN0YXRlOiBhbnksIG5ld1ZhbHVlOiBUKTogYW55IHtcclxuICAgICAgY29uc3QgbmV3QXBwU3RhdGUgPSBzZXRWYWx1ZShjdXJyZW50QXBwU3RhdGUsIG1hcHBlZFN0b3JlLnBhdGgsIG5ld1ZhbHVlKTtcclxuICAgICAgY29uc3QgaW5zdGFuY2U6IE5neHNMaWZlQ3ljbGUgPSBtYXBwZWRTdG9yZS5pbnN0YW5jZTtcclxuXHJcbiAgICAgIGlmIChpbnN0YW5jZS5uZ3hzT25DaGFuZ2VzKSB7XHJcbiAgICAgICAgY29uc3QgY2hhbmdlOiBOZ3hzU2ltcGxlQ2hhbmdlID0gZ2V0U3RhdGVEaWZmQ2hhbmdlczxUPihtYXBwZWRTdG9yZSwge1xyXG4gICAgICAgICAgY3VycmVudEFwcFN0YXRlLFxyXG4gICAgICAgICAgbmV3QXBwU3RhdGVcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaW5zdGFuY2Uubmd4c09uQ2hhbmdlcyhjaGFuZ2UpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByb290LnNldFN0YXRlKG5ld0FwcFN0YXRlKTtcclxuICAgICAgcmV0dXJuIG5ld0FwcFN0YXRlO1xyXG4gICAgICAvLyBJbiBkb2luZyB0aGlzIHJlZmFjdG9yaW5nIEkgbm90aWNlZCB0aGF0IHRoZXJlIGlzIGEgJ2J1Zycgd2hlcmUgdGhlXHJcbiAgICAgIC8vIGFwcGxpY2F0aW9uIHN0YXRlIGlzIHJldHVybmVkIGluc3RlYWQgb2YgdGhpcyBzdGF0ZSBzbGljZS5cclxuICAgICAgLy8gVGhpcyBoYXMgd29ya2VkIHRoaXMgd2F5IHNpbmNlIHRoZSBiZWdpbm5pbmcgc2VlOlxyXG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbmd4cy9zdG9yZS9ibGFtZS8zMjRjNjY3YjRiN2RlYmQ4ZWI5NzkwMDZjNjdjYTBhZTM0N2Q4OGNkL3NyYy9zdGF0ZS1mYWN0b3J5LnRzXHJcbiAgICAgIC8vIFRoaXMgbmVlZHMgdG8gYmUgZml4ZWQsIGJ1dCBpcyBhICdicmVha2luZycgY2hhbmdlLlxyXG4gICAgICAvLyBJIHdpbGwgZG8gdGhpcyBmaXggaW4gYSBzdWJzZXF1ZW50IFBSIGFuZCB3ZSBjYW4gZGVjaWRlIGhvdyB0byBoYW5kbGUgaXQuXHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gc2V0U3RhdGVGcm9tT3BlcmF0b3IoY3VycmVudEFwcFN0YXRlOiBhbnksIHN0YXRlT3BlcmF0b3I6IFN0YXRlT3BlcmF0b3I8VD4pIHtcclxuICAgICAgY29uc3QgbG9jYWwgPSBnZXRTdGF0ZShjdXJyZW50QXBwU3RhdGUpO1xyXG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IHN0YXRlT3BlcmF0b3IobG9jYWwpO1xyXG4gICAgICByZXR1cm4gc2V0U3RhdGVWYWx1ZShjdXJyZW50QXBwU3RhdGUsIG5ld1ZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBmdW5jdGlvbiBpc1N0YXRlT3BlcmF0b3IodmFsdWU6IFQgfCBTdGF0ZU9wZXJhdG9yPFQ+KTogdmFsdWUgaXMgU3RhdGVPcGVyYXRvcjxUPiB7XHJcbiAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbic7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgZ2V0U3RhdGUoKTogVCB7XHJcbiAgICAgICAgY29uc3QgY3VycmVudEFwcFN0YXRlID0gcm9vdC5nZXRTdGF0ZSgpO1xyXG4gICAgICAgIHJldHVybiBnZXRTdGF0ZShjdXJyZW50QXBwU3RhdGUpO1xyXG4gICAgICB9LFxyXG4gICAgICBwYXRjaFN0YXRlKHZhbDogUGFydGlhbDxUPik6IFQge1xyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRBcHBTdGF0ZSA9IHJvb3QuZ2V0U3RhdGUoKTtcclxuICAgICAgICBjb25zdCBwYXRjaE9wZXJhdG9yID0gc2ltcGxlUGF0Y2g8VD4odmFsKTtcclxuICAgICAgICByZXR1cm4gc2V0U3RhdGVGcm9tT3BlcmF0b3IoY3VycmVudEFwcFN0YXRlLCBwYXRjaE9wZXJhdG9yKTtcclxuICAgICAgfSxcclxuICAgICAgc2V0U3RhdGUodmFsOiBUIHwgU3RhdGVPcGVyYXRvcjxUPik6IFQge1xyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRBcHBTdGF0ZSA9IHJvb3QuZ2V0U3RhdGUoKTtcclxuICAgICAgICByZXR1cm4gaXNTdGF0ZU9wZXJhdG9yKHZhbClcclxuICAgICAgICAgID8gc2V0U3RhdGVGcm9tT3BlcmF0b3IoY3VycmVudEFwcFN0YXRlLCB2YWwpXHJcbiAgICAgICAgICA6IHNldFN0YXRlVmFsdWUoY3VycmVudEFwcFN0YXRlLCB2YWwpO1xyXG4gICAgICB9LFxyXG4gICAgICBkaXNwYXRjaChhY3Rpb25zOiBhbnkgfCBhbnlbXSk6IE9ic2VydmFibGU8dm9pZD4ge1xyXG4gICAgICAgIHJldHVybiByb290LmRpc3BhdGNoKGFjdGlvbnMpO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iXX0=
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ import { Injectable } from '@angular/core';
6
+ import { getStateDiffChanges } from '../internal/internals';
7
+ import { setValue, getValue } from '../utils/utils';
8
+ import { InternalStateOperations } from '../internal/state-operations';
9
+ import { simplePatch } from './state-operators';
10
+ /**
11
+ * State Context factory class
12
+ * @ignore
13
+ */
14
+ export class StateContextFactory {
15
+ /**
16
+ * @param {?} _internalStateOperations
17
+ */
18
+ constructor(_internalStateOperations) {
19
+ this._internalStateOperations = _internalStateOperations;
20
+ }
21
+ /**
22
+ * Create the state context
23
+ * @template T
24
+ * @param {?} mappedStore
25
+ * @return {?}
26
+ */
27
+ createStateContext(mappedStore) {
28
+ /** @type {?} */
29
+ const root = this._internalStateOperations.getRootStateOperations();
30
+ /**
31
+ * @param {?} currentAppState
32
+ * @return {?}
33
+ */
34
+ function getState(currentAppState) {
35
+ return getValue(currentAppState, mappedStore.path);
36
+ }
37
+ /**
38
+ * @param {?} currentAppState
39
+ * @param {?} newValue
40
+ * @return {?}
41
+ */
42
+ function setStateValue(currentAppState, newValue) {
43
+ /** @type {?} */
44
+ const newAppState = setValue(currentAppState, mappedStore.path, newValue);
45
+ /** @type {?} */
46
+ const instance = mappedStore.instance;
47
+ if (instance.ngxsOnChanges) {
48
+ /** @type {?} */
49
+ const change = getStateDiffChanges(mappedStore, {
50
+ currentAppState,
51
+ newAppState
52
+ });
53
+ instance.ngxsOnChanges(change);
54
+ }
55
+ root.setState(newAppState);
56
+ return newAppState;
57
+ // In doing this refactoring I noticed that there is a 'bug' where the
58
+ // application state is returned instead of this state slice.
59
+ // This has worked this way since the beginning see:
60
+ // https://github.com/ngxs/store/blame/324c667b4b7debd8eb979006c67ca0ae347d88cd/src/state-factory.ts
61
+ // This needs to be fixed, but is a 'breaking' change.
62
+ // I will do this fix in a subsequent PR and we can decide how to handle it.
63
+ }
64
+ /**
65
+ * @param {?} currentAppState
66
+ * @param {?} stateOperator
67
+ * @return {?}
68
+ */
69
+ function setStateFromOperator(currentAppState, stateOperator) {
70
+ /** @type {?} */
71
+ const local = getState(currentAppState);
72
+ /** @type {?} */
73
+ const newValue = stateOperator(local);
74
+ return setStateValue(currentAppState, newValue);
75
+ }
76
+ /**
77
+ * @param {?} value
78
+ * @return {?}
79
+ */
80
+ function isStateOperator(value) {
81
+ return typeof value === 'function';
82
+ }
83
+ return {
84
+ /**
85
+ * @return {?}
86
+ */
87
+ getState() {
88
+ /** @type {?} */
89
+ const currentAppState = root.getState();
90
+ return getState(currentAppState);
91
+ },
92
+ /**
93
+ * @param {?} val
94
+ * @return {?}
95
+ */
96
+ patchState(val) {
97
+ /** @type {?} */
98
+ const currentAppState = root.getState();
99
+ /** @type {?} */
100
+ const patchOperator = simplePatch(val);
101
+ return setStateFromOperator(currentAppState, patchOperator);
102
+ },
103
+ /**
104
+ * @param {?} val
105
+ * @return {?}
106
+ */
107
+ setState(val) {
108
+ /** @type {?} */
109
+ const currentAppState = root.getState();
110
+ return isStateOperator(val)
111
+ ? setStateFromOperator(currentAppState, val)
112
+ : setStateValue(currentAppState, val);
113
+ },
114
+ /**
115
+ * @param {?} actions
116
+ * @return {?}
117
+ */
118
+ dispatch(actions) {
119
+ return root.dispatch(actions);
120
+ }
121
+ };
122
+ }
123
+ }
124
+ StateContextFactory.decorators = [
125
+ { type: Injectable }
126
+ ];
127
+ /** @nocollapse */
128
+ StateContextFactory.ctorParameters = () => [
129
+ { type: InternalStateOperations }
130
+ ];
131
+ if (false) {
132
+ /**
133
+ * @type {?}
134
+ * @private
135
+ */
136
+ StateContextFactory.prototype._internalStateOperations;
137
+ }
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtY29udGV4dC1mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMvc3RvcmUvIiwic291cmNlcyI6WyJzcmMvaW50ZXJuYWwvc3RhdGUtY29udGV4dC1mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBZSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7OztBQU9oRCxNQUFNLE9BQU8sbUJBQW1COzs7O0lBQzlCLFlBQW9CLHdCQUFpRDtRQUFqRCw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQXlCO0lBQUcsQ0FBQzs7Ozs7OztJQUt6RSxrQkFBa0IsQ0FBSSxXQUF3Qjs7Y0FDdEMsSUFBSSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxzQkFBc0IsRUFBRTs7Ozs7UUFFbkUsU0FBUyxRQUFRLENBQUMsZUFBb0I7WUFDcEMsT0FBTyxRQUFRLENBQUMsZUFBZSxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyRCxDQUFDOzs7Ozs7UUFFRCxTQUFTLGFBQWEsQ0FBQyxlQUFvQixFQUFFLFFBQVc7O2tCQUNoRCxXQUFXLEdBQUcsUUFBUSxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQzs7a0JBQ25FLFFBQVEsR0FBa0IsV0FBVyxDQUFDLFFBQVE7WUFFcEQsSUFBSSxRQUFRLENBQUMsYUFBYSxFQUFFOztzQkFDcEIsTUFBTSxHQUFxQixtQkFBbUIsQ0FBSSxXQUFXLEVBQUU7b0JBQ25FLGVBQWU7b0JBQ2YsV0FBVztpQkFDWixDQUFDO2dCQUVGLFFBQVEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDaEM7WUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzNCLE9BQU8sV0FBVyxDQUFDO1lBQ25CLHNFQUFzRTtZQUN0RSw2REFBNkQ7WUFDN0Qsb0RBQW9EO1lBQ3BELG9HQUFvRztZQUNwRyxzREFBc0Q7WUFDdEQsNEVBQTRFO1FBQzlFLENBQUM7Ozs7OztRQUVELFNBQVMsb0JBQW9CLENBQUMsZUFBb0IsRUFBRSxhQUErQjs7a0JBQzNFLEtBQUssR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDOztrQkFDakMsUUFBUSxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUM7WUFDckMsT0FBTyxhQUFhLENBQUMsZUFBZSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2xELENBQUM7Ozs7O1FBRUQsU0FBUyxlQUFlLENBQUMsS0FBMkI7WUFDbEQsT0FBTyxPQUFPLEtBQUssS0FBSyxVQUFVLENBQUM7UUFDckMsQ0FBQztRQUVELE9BQU87Ozs7WUFDTCxRQUFROztzQkFDQSxlQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDdkMsT0FBTyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDbkMsQ0FBQzs7Ozs7WUFDRCxVQUFVLENBQUMsR0FBZTs7c0JBQ2xCLGVBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFOztzQkFDakMsYUFBYSxHQUFHLFdBQVcsQ0FBSSxHQUFHLENBQUM7Z0JBQ3pDLE9BQU8sb0JBQW9CLENBQUMsZUFBZSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1lBQzlELENBQUM7Ozs7O1lBQ0QsUUFBUSxDQUFDLEdBQXlCOztzQkFDMUIsZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ3ZDLE9BQU8sZUFBZSxDQUFDLEdBQUcsQ0FBQztvQkFDekIsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLGVBQWUsRUFBRSxHQUFHLENBQUM7b0JBQzVDLENBQUMsQ0FBQyxhQUFhLENBQUMsZUFBZSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzFDLENBQUM7Ozs7O1lBQ0QsUUFBUSxDQUFDLE9BQW9CO2dCQUMzQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDaEMsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDOzs7WUFuRUYsVUFBVTs7OztZQVBGLHVCQUF1Qjs7Ozs7OztJQVNsQix1REFBeUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IE5neHNMaWZlQ3ljbGUsIE5neHNTaW1wbGVDaGFuZ2UsIFN0YXRlQ29udGV4dCwgU3RhdGVPcGVyYXRvciB9IGZyb20gJy4uL3N5bWJvbHMnO1xuaW1wb3J0IHsgZ2V0U3RhdGVEaWZmQ2hhbmdlcywgTWFwcGVkU3RvcmUgfSBmcm9tICcuLi9pbnRlcm5hbC9pbnRlcm5hbHMnO1xuaW1wb3J0IHsgc2V0VmFsdWUsIGdldFZhbHVlIH0gZnJvbSAnLi4vdXRpbHMvdXRpbHMnO1xuaW1wb3J0IHsgSW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnMgfSBmcm9tICcuLi9pbnRlcm5hbC9zdGF0ZS1vcGVyYXRpb25zJztcbmltcG9ydCB7IHNpbXBsZVBhdGNoIH0gZnJvbSAnLi9zdGF0ZS1vcGVyYXRvcnMnO1xuXG4vKipcbiAqIFN0YXRlIENvbnRleHQgZmFjdG9yeSBjbGFzc1xuICogQGlnbm9yZVxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU3RhdGVDb250ZXh0RmFjdG9yeSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2ludGVybmFsU3RhdGVPcGVyYXRpb25zOiBJbnRlcm5hbFN0YXRlT3BlcmF0aW9ucykge31cblxuICAvKipcbiAgICogQ3JlYXRlIHRoZSBzdGF0ZSBjb250ZXh0XG4gICAqL1xuICBjcmVhdGVTdGF0ZUNvbnRleHQ8VD4obWFwcGVkU3RvcmU6IE1hcHBlZFN0b3JlKTogU3RhdGVDb250ZXh0PFQ+IHtcbiAgICBjb25zdCByb290ID0gdGhpcy5faW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnMuZ2V0Um9vdFN0YXRlT3BlcmF0aW9ucygpO1xuXG4gICAgZnVuY3Rpb24gZ2V0U3RhdGUoY3VycmVudEFwcFN0YXRlOiBhbnkpOiBUIHtcbiAgICAgIHJldHVybiBnZXRWYWx1ZShjdXJyZW50QXBwU3RhdGUsIG1hcHBlZFN0b3JlLnBhdGgpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNldFN0YXRlVmFsdWUoY3VycmVudEFwcFN0YXRlOiBhbnksIG5ld1ZhbHVlOiBUKTogYW55IHtcbiAgICAgIGNvbnN0IG5ld0FwcFN0YXRlID0gc2V0VmFsdWUoY3VycmVudEFwcFN0YXRlLCBtYXBwZWRTdG9yZS5wYXRoLCBuZXdWYWx1ZSk7XG4gICAgICBjb25zdCBpbnN0YW5jZTogTmd4c0xpZmVDeWNsZSA9IG1hcHBlZFN0b3JlLmluc3RhbmNlO1xuXG4gICAgICBpZiAoaW5zdGFuY2Uubmd4c09uQ2hhbmdlcykge1xuICAgICAgICBjb25zdCBjaGFuZ2U6IE5neHNTaW1wbGVDaGFuZ2UgPSBnZXRTdGF0ZURpZmZDaGFuZ2VzPFQ+KG1hcHBlZFN0b3JlLCB7XG4gICAgICAgICAgY3VycmVudEFwcFN0YXRlLFxuICAgICAgICAgIG5ld0FwcFN0YXRlXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGluc3RhbmNlLm5neHNPbkNoYW5nZXMoY2hhbmdlKTtcbiAgICAgIH1cblxuICAgICAgcm9vdC5zZXRTdGF0ZShuZXdBcHBTdGF0ZSk7XG4gICAgICByZXR1cm4gbmV3QXBwU3RhdGU7XG4gICAgICAvLyBJbiBkb2luZyB0aGlzIHJlZmFjdG9yaW5nIEkgbm90aWNlZCB0aGF0IHRoZXJlIGlzIGEgJ2J1Zycgd2hlcmUgdGhlXG4gICAgICAvLyBhcHBsaWNhdGlvbiBzdGF0ZSBpcyByZXR1cm5lZCBpbnN0ZWFkIG9mIHRoaXMgc3RhdGUgc2xpY2UuXG4gICAgICAvLyBUaGlzIGhhcyB3b3JrZWQgdGhpcyB3YXkgc2luY2UgdGhlIGJlZ2lubmluZyBzZWU6XG4gICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbmd4cy9zdG9yZS9ibGFtZS8zMjRjNjY3YjRiN2RlYmQ4ZWI5NzkwMDZjNjdjYTBhZTM0N2Q4OGNkL3NyYy9zdGF0ZS1mYWN0b3J5LnRzXG4gICAgICAvLyBUaGlzIG5lZWRzIHRvIGJlIGZpeGVkLCBidXQgaXMgYSAnYnJlYWtpbmcnIGNoYW5nZS5cbiAgICAgIC8vIEkgd2lsbCBkbyB0aGlzIGZpeCBpbiBhIHN1YnNlcXVlbnQgUFIgYW5kIHdlIGNhbiBkZWNpZGUgaG93IHRvIGhhbmRsZSBpdC5cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzZXRTdGF0ZUZyb21PcGVyYXRvcihjdXJyZW50QXBwU3RhdGU6IGFueSwgc3RhdGVPcGVyYXRvcjogU3RhdGVPcGVyYXRvcjxUPikge1xuICAgICAgY29uc3QgbG9jYWwgPSBnZXRTdGF0ZShjdXJyZW50QXBwU3RhdGUpO1xuICAgICAgY29uc3QgbmV3VmFsdWUgPSBzdGF0ZU9wZXJhdG9yKGxvY2FsKTtcbiAgICAgIHJldHVybiBzZXRTdGF0ZVZhbHVlKGN1cnJlbnRBcHBTdGF0ZSwgbmV3VmFsdWUpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzU3RhdGVPcGVyYXRvcih2YWx1ZTogVCB8IFN0YXRlT3BlcmF0b3I8VD4pOiB2YWx1ZSBpcyBTdGF0ZU9wZXJhdG9yPFQ+IHtcbiAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbic7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGdldFN0YXRlKCk6IFQge1xuICAgICAgICBjb25zdCBjdXJyZW50QXBwU3RhdGUgPSByb290LmdldFN0YXRlKCk7XG4gICAgICAgIHJldHVybiBnZXRTdGF0ZShjdXJyZW50QXBwU3RhdGUpO1xuICAgICAgfSxcbiAgICAgIHBhdGNoU3RhdGUodmFsOiBQYXJ0aWFsPFQ+KTogVCB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRBcHBTdGF0ZSA9IHJvb3QuZ2V0U3RhdGUoKTtcbiAgICAgICAgY29uc3QgcGF0Y2hPcGVyYXRvciA9IHNpbXBsZVBhdGNoPFQ+KHZhbCk7XG4gICAgICAgIHJldHVybiBzZXRTdGF0ZUZyb21PcGVyYXRvcihjdXJyZW50QXBwU3RhdGUsIHBhdGNoT3BlcmF0b3IpO1xuICAgICAgfSxcbiAgICAgIHNldFN0YXRlKHZhbDogVCB8IFN0YXRlT3BlcmF0b3I8VD4pOiBUIHtcbiAgICAgICAgY29uc3QgY3VycmVudEFwcFN0YXRlID0gcm9vdC5nZXRTdGF0ZSgpO1xuICAgICAgICByZXR1cm4gaXNTdGF0ZU9wZXJhdG9yKHZhbClcbiAgICAgICAgICA/IHNldFN0YXRlRnJvbU9wZXJhdG9yKGN1cnJlbnRBcHBTdGF0ZSwgdmFsKVxuICAgICAgICAgIDogc2V0U3RhdGVWYWx1ZShjdXJyZW50QXBwU3RhdGUsIHZhbCk7XG4gICAgICB9LFxuICAgICAgZGlzcGF0Y2goYWN0aW9uczogYW55IHwgYW55W10pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHJvb3QuZGlzcGF0Y2goYWN0aW9ucyk7XG4gICAgICB9XG4gICAgfTtcbiAgfVxufVxuIl19