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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (231) hide show
  1. package/README.md +16 -16
  2. package/bundles/ngxs-store-internals.umd.js +210 -210
  3. package/bundles/ngxs-store-internals.umd.js.map +1 -1
  4. package/bundles/ngxs-store-internals.umd.min.js.map +1 -1
  5. package/bundles/ngxs-store-operators.umd.js +326 -321
  6. package/bundles/ngxs-store-operators.umd.js.map +1 -1
  7. package/bundles/ngxs-store-operators.umd.min.js +10 -10
  8. package/bundles/ngxs-store-operators.umd.min.js.map +1 -1
  9. package/bundles/ngxs-store.umd.js +4401 -4386
  10. package/bundles/ngxs-store.umd.js.map +1 -1
  11. package/bundles/ngxs-store.umd.min.js +11 -11
  12. package/bundles/ngxs-store.umd.min.js.map +1 -1
  13. package/esm2015/index.js +13 -13
  14. package/esm2015/internals/angular.js +40 -40
  15. package/esm2015/internals/index.js +10 -10
  16. package/esm2015/internals/initial-state.js +34 -34
  17. package/esm2015/internals/internal-tokens.js +16 -16
  18. package/esm2015/internals/memoize.js +70 -70
  19. package/esm2015/internals/ngxs-bootstrapper.js +41 -41
  20. package/esm2015/internals/ngxs-store-internals.js +8 -8
  21. package/esm2015/internals/src/symbols.js +14 -14
  22. package/esm2015/internals/symbols.js +14 -14
  23. package/esm2015/ngxs-store.js +25 -25
  24. package/esm2015/operators/append.js +31 -31
  25. package/esm2015/operators/compose.js +24 -24
  26. package/esm2015/operators/iif.js +56 -56
  27. package/esm2015/operators/index.js +18 -18
  28. package/esm2015/operators/insert-item.js +41 -41
  29. package/esm2015/operators/internals.js +5 -5
  30. package/esm2015/operators/ngxs-store-operators.js +8 -8
  31. package/esm2015/operators/patch.js +39 -39
  32. package/esm2015/operators/remove-item.js +34 -34
  33. package/esm2015/operators/update-item.js +52 -52
  34. package/esm2015/operators/utils.js +50 -50
  35. package/esm2015/src/actions/actions.js +39 -39
  36. package/esm2015/src/actions/symbols.js +39 -39
  37. package/esm2015/src/actions-stream.js +140 -140
  38. package/esm2015/src/configs/messages.config.js +87 -87
  39. package/esm2015/src/decorators/action.js +44 -44
  40. package/esm2015/src/decorators/select/select-factory.js +39 -39
  41. package/esm2015/src/decorators/select/select.js +45 -46
  42. package/esm2015/src/decorators/select/symbols.js +50 -50
  43. package/esm2015/src/decorators/selector/selector.js +55 -55
  44. package/esm2015/src/decorators/selector/symbols.js +5 -5
  45. package/esm2015/src/decorators/selector-options.js +34 -34
  46. package/esm2015/src/decorators/state.js +75 -75
  47. package/esm2015/src/execution/dispatch-outside-zone-ngxs-execution-strategy.js +96 -96
  48. package/esm2015/src/execution/internal-ngxs-execution-strategy.js +45 -45
  49. package/esm2015/src/execution/noop-ngxs-execution-strategy.js +27 -27
  50. package/esm2015/src/execution/symbols.js +29 -29
  51. package/esm2015/src/host-environment/host-environment.js +31 -31
  52. package/esm2015/src/internal/config-validator.js +67 -67
  53. package/esm2015/src/internal/dispatcher.js +210 -202
  54. package/esm2015/src/internal/internals.js +489 -489
  55. package/esm2015/src/internal/lifecycle-state-manager.js +129 -129
  56. package/esm2015/src/internal/state-context-factory.js +138 -138
  57. package/esm2015/src/internal/state-factory.js +401 -392
  58. package/esm2015/src/internal/state-operations.js +125 -125
  59. package/esm2015/src/internal/state-operators.js +33 -33
  60. package/esm2015/src/internal/state-stream.js +21 -21
  61. package/esm2015/src/ivy/ensure-state-class-is-injectable.js +34 -34
  62. package/esm2015/src/ivy/ivy-enabled-in-dev-mode.js +40 -50
  63. package/esm2015/src/module.js +171 -171
  64. package/esm2015/src/modules/ngxs-feature.module.js +63 -63
  65. package/esm2015/src/modules/ngxs-root.module.js +52 -52
  66. package/esm2015/src/operators/leave-ngxs.js +58 -58
  67. package/esm2015/src/operators/of-action.js +191 -188
  68. package/esm2015/src/plugin-manager.js +70 -70
  69. package/esm2015/src/plugin_api.js +10 -10
  70. package/esm2015/src/public_api.js +29 -29
  71. package/esm2015/src/public_to_deprecate.js +64 -64
  72. package/esm2015/src/state-token/state-token.js +45 -45
  73. package/esm2015/src/state-token/symbols.js +5 -5
  74. package/esm2015/src/store.js +174 -174
  75. package/esm2015/src/symbols.js +221 -221
  76. package/esm2015/src/utils/compose.js +44 -44
  77. package/esm2015/src/utils/freeze.js +35 -35
  78. package/esm2015/src/utils/selector-utils.js +221 -221
  79. package/esm2015/src/utils/store-validators.js +65 -65
  80. package/esm2015/src/utils/utils.js +95 -93
  81. package/esm5/index.js +13 -13
  82. package/esm5/internals/angular.js +40 -40
  83. package/esm5/internals/index.js +10 -10
  84. package/esm5/internals/initial-state.js +45 -45
  85. package/esm5/internals/internal-tokens.js +16 -16
  86. package/esm5/internals/memoize.js +71 -71
  87. package/esm5/internals/ngxs-bootstrapper.js +56 -56
  88. package/esm5/internals/ngxs-store-internals.js +8 -8
  89. package/esm5/internals/src/symbols.js +14 -14
  90. package/esm5/internals/symbols.js +14 -14
  91. package/esm5/ngxs-store.js +25 -25
  92. package/esm5/operators/append.js +31 -31
  93. package/esm5/operators/compose.js +28 -28
  94. package/esm5/operators/iif.js +56 -56
  95. package/esm5/operators/index.js +18 -18
  96. package/esm5/operators/insert-item.js +41 -41
  97. package/esm5/operators/internals.js +5 -5
  98. package/esm5/operators/ngxs-store-operators.js +8 -8
  99. package/esm5/operators/patch.js +40 -40
  100. package/esm5/operators/remove-item.js +34 -34
  101. package/esm5/operators/update-item.js +52 -52
  102. package/esm5/operators/utils.js +50 -50
  103. package/esm5/src/actions/actions.js +62 -62
  104. package/esm5/src/actions/symbols.js +39 -39
  105. package/esm5/src/actions-stream.js +186 -186
  106. package/esm5/src/configs/messages.config.js +104 -104
  107. package/esm5/src/decorators/action.js +56 -56
  108. package/esm5/src/decorators/select/select-factory.js +37 -37
  109. package/esm5/src/decorators/select/select.js +50 -51
  110. package/esm5/src/decorators/select/symbols.js +51 -51
  111. package/esm5/src/decorators/selector/selector.js +55 -55
  112. package/esm5/src/decorators/selector/symbols.js +5 -5
  113. package/esm5/src/decorators/selector-options.js +34 -34
  114. package/esm5/src/decorators/state.js +76 -76
  115. package/esm5/src/execution/dispatch-outside-zone-ngxs-execution-strategy.js +121 -121
  116. package/esm5/src/execution/internal-ngxs-execution-strategy.js +54 -54
  117. package/esm5/src/execution/noop-ngxs-execution-strategy.js +41 -41
  118. package/esm5/src/execution/symbols.js +29 -29
  119. package/esm5/src/host-environment/host-environment.js +29 -29
  120. package/esm5/src/internal/config-validator.js +76 -76
  121. package/esm5/src/internal/dispatcher.js +246 -238
  122. package/esm5/src/internal/internals.js +491 -491
  123. package/esm5/src/internal/lifecycle-state-manager.js +177 -177
  124. package/esm5/src/internal/state-context-factory.js +146 -146
  125. package/esm5/src/internal/state-factory.js +528 -519
  126. package/esm5/src/internal/state-operations.js +139 -139
  127. package/esm5/src/internal/state-operators.js +34 -34
  128. package/esm5/src/internal/state-stream.js +25 -25
  129. package/esm5/src/ivy/ensure-state-class-is-injectable.js +34 -34
  130. package/esm5/src/ivy/ivy-enabled-in-dev-mode.js +40 -50
  131. package/esm5/src/module.js +214 -214
  132. package/esm5/src/modules/ngxs-feature.module.js +65 -65
  133. package/esm5/src/modules/ngxs-root.module.js +47 -47
  134. package/esm5/src/operators/leave-ngxs.js +58 -58
  135. package/esm5/src/operators/of-action.js +217 -214
  136. package/esm5/src/plugin-manager.js +82 -82
  137. package/esm5/src/plugin_api.js +10 -10
  138. package/esm5/src/public_api.js +29 -29
  139. package/esm5/src/public_to_deprecate.js +64 -64
  140. package/esm5/src/state-token/state-token.js +57 -57
  141. package/esm5/src/state-token/symbols.js +5 -5
  142. package/esm5/src/store.js +225 -225
  143. package/esm5/src/symbols.js +230 -230
  144. package/esm5/src/utils/compose.js +55 -55
  145. package/esm5/src/utils/freeze.js +35 -35
  146. package/esm5/src/utils/selector-utils.js +230 -230
  147. package/esm5/src/utils/store-validators.js +86 -86
  148. package/esm5/src/utils/utils.js +98 -96
  149. package/fesm2015/ngxs-store-internals.js +191 -191
  150. package/fesm2015/ngxs-store-internals.js.map +1 -1
  151. package/fesm2015/ngxs-store-operators.js +312 -312
  152. package/fesm2015/ngxs-store-operators.js.map +1 -1
  153. package/fesm2015/ngxs-store.js +3878 -3868
  154. package/fesm2015/ngxs-store.js.map +1 -1
  155. package/fesm5/ngxs-store-internals.js +216 -216
  156. package/fesm5/ngxs-store-internals.js.map +1 -1
  157. package/fesm5/ngxs-store-operators.js +316 -316
  158. package/fesm5/ngxs-store-operators.js.map +1 -1
  159. package/fesm5/ngxs-store.js +4397 -4387
  160. package/fesm5/ngxs-store.js.map +1 -1
  161. package/index.d.ts +8 -8
  162. package/internals/angular.d.ts +3 -3
  163. package/internals/index.d.ts +6 -6
  164. package/internals/initial-state.d.ts +8 -8
  165. package/internals/internal-tokens.d.ts +9 -9
  166. package/internals/memoize.d.ts +9 -9
  167. package/internals/ngxs-bootstrapper.d.ts +13 -13
  168. package/internals/ngxs-store-internals.d.ts +4 -4
  169. package/internals/src/symbols.d.ts +7 -7
  170. package/internals/symbols.d.ts +7 -7
  171. package/ngxs-store.d.ts +22 -22
  172. package/ngxs-store.metadata.json +1 -1
  173. package/operators/append.d.ts +6 -6
  174. package/operators/compose.d.ts +2 -2
  175. package/operators/iif.d.ts +11 -11
  176. package/operators/index.d.ts +13 -13
  177. package/operators/insert-item.d.ts +7 -7
  178. package/operators/internals.d.ts +2 -2
  179. package/operators/ngxs-store-operators.d.ts +4 -4
  180. package/operators/patch.d.ts +10 -10
  181. package/operators/remove-item.d.ts +7 -7
  182. package/operators/update-item.d.ts +10 -10
  183. package/operators/utils.d.ts +9 -9
  184. package/package.json +4 -4
  185. package/src/actions/actions.d.ts +15 -15
  186. package/src/actions/symbols.d.ts +21 -21
  187. package/src/actions-stream.d.ts +49 -49
  188. package/src/configs/messages.config.d.ts +30 -30
  189. package/src/decorators/action.d.ts +5 -5
  190. package/src/decorators/select/select-factory.d.ts +12 -12
  191. package/src/decorators/select/select.d.ts +4 -5
  192. package/src/decorators/select/symbols.d.ts +10 -14
  193. package/src/decorators/selector/selector.d.ts +5 -5
  194. package/src/decorators/selector/symbols.d.ts +4 -4
  195. package/src/decorators/selector-options.d.ts +5 -5
  196. package/src/decorators/state.d.ts +6 -6
  197. package/src/execution/dispatch-outside-zone-ngxs-execution-strategy.d.ts +12 -12
  198. package/src/execution/internal-ngxs-execution-strategy.d.ts +7 -7
  199. package/src/execution/noop-ngxs-execution-strategy.d.ts +5 -5
  200. package/src/execution/symbols.d.ts +6 -6
  201. package/src/host-environment/host-environment.d.ts +6 -6
  202. package/src/internal/config-validator.d.ts +10 -10
  203. package/src/internal/dispatcher.d.ts +31 -31
  204. package/src/internal/internals.d.ts +167 -167
  205. package/src/internal/lifecycle-state-manager.d.ts +20 -20
  206. package/src/internal/state-context-factory.d.ts +15 -15
  207. package/src/internal/state-factory.d.ts +57 -57
  208. package/src/internal/state-operations.d.ts +21 -21
  209. package/src/internal/state-operators.d.ts +2 -2
  210. package/src/internal/state-stream.d.ts +9 -9
  211. package/src/ivy/ensure-state-class-is-injectable.d.ts +6 -6
  212. package/src/ivy/ivy-enabled-in-dev-mode.d.ts +14 -14
  213. package/src/module.d.ts +23 -23
  214. package/src/modules/ngxs-feature.module.d.ts +13 -13
  215. package/src/modules/ngxs-root.module.d.ts +13 -13
  216. package/src/operators/leave-ngxs.d.ts +7 -7
  217. package/src/operators/of-action.d.ts +43 -42
  218. package/src/plugin-manager.d.ts +10 -10
  219. package/src/plugin_api.d.ts +5 -5
  220. package/src/public_api.d.ts +17 -17
  221. package/src/public_to_deprecate.d.ts +21 -21
  222. package/src/state-token/state-token.d.ts +7 -7
  223. package/src/state-token/symbols.d.ts +5 -5
  224. package/src/store.d.ts +53 -53
  225. package/src/symbols.d.ts +137 -137
  226. package/src/utils/compose.d.ts +23 -23
  227. package/src/utils/freeze.d.ts +5 -5
  228. package/src/utils/selector-utils.d.ts +23 -23
  229. package/src/utils/store-validators.d.ts +8 -8
  230. package/src/utils/utils.d.ts +29 -29
  231. package/types/index.d.ts +2 -2
@@ -1,238 +1,246 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- import * as tslib_1 from "tslib";
6
- import { ErrorHandler, Injectable } from '@angular/core';
7
- import { EMPTY, forkJoin, of, Subject, throwError } from 'rxjs';
8
- import { exhaustMap, filter, shareReplay, take } from 'rxjs/operators';
9
- import { compose } from '../utils/compose';
10
- import { InternalActions } from '../actions-stream';
11
- import { StateStream } from './state-stream';
12
- import { PluginManager } from '../plugin-manager';
13
- import { InternalNgxsExecutionStrategy } from '../execution/internal-ngxs-execution-strategy';
14
- import { leaveNgxs } from '../operators/leave-ngxs';
15
- /**
16
- * Internal Action result stream that is emitted when an action is completed.
17
- * This is used as a method of returning the action result to the dispatcher
18
- * for the observable returned by the dispatch(...) call.
19
- * The dispatcher then asynchronously pushes the result from this stream onto the main action stream as a result.
20
- */
21
- var InternalDispatchedActionResults = /** @class */ (function (_super) {
22
- tslib_1.__extends(InternalDispatchedActionResults, _super);
23
- function InternalDispatchedActionResults() {
24
- return _super !== null && _super.apply(this, arguments) || this;
25
- }
26
- InternalDispatchedActionResults.decorators = [
27
- { type: Injectable }
28
- ];
29
- return InternalDispatchedActionResults;
30
- }(Subject));
31
- export { InternalDispatchedActionResults };
32
- var InternalDispatcher = /** @class */ (function () {
33
- function InternalDispatcher(_errorHandler, _actions, _actionResults, _pluginManager, _stateStream, _ngxsExecutionStrategy) {
34
- this._errorHandler = _errorHandler;
35
- this._actions = _actions;
36
- this._actionResults = _actionResults;
37
- this._pluginManager = _pluginManager;
38
- this._stateStream = _stateStream;
39
- this._ngxsExecutionStrategy = _ngxsExecutionStrategy;
40
- }
41
- /**
42
- * Dispatches event(s).
43
- */
44
- /**
45
- * Dispatches event(s).
46
- * @param {?} actionOrActions
47
- * @return {?}
48
- */
49
- InternalDispatcher.prototype.dispatch = /**
50
- * Dispatches event(s).
51
- * @param {?} actionOrActions
52
- * @return {?}
53
- */
54
- function (actionOrActions) {
55
- var _this = this;
56
- /** @type {?} */
57
- var result = this._ngxsExecutionStrategy.enter((/**
58
- * @return {?}
59
- */
60
- function () {
61
- return _this.dispatchByEvents(actionOrActions);
62
- }));
63
- result.subscribe({
64
- error: (/**
65
- * @param {?} error
66
- * @return {?}
67
- */
68
- function (error) {
69
- return _this._ngxsExecutionStrategy.leave((/**
70
- * @return {?}
71
- */
72
- function () {
73
- try {
74
- _this._errorHandler.handleError(error);
75
- }
76
- catch (_a) { }
77
- }));
78
- })
79
- });
80
- return result.pipe(leaveNgxs(this._ngxsExecutionStrategy));
81
- };
82
- /**
83
- * @private
84
- * @param {?} actionOrActions
85
- * @return {?}
86
- */
87
- InternalDispatcher.prototype.dispatchByEvents = /**
88
- * @private
89
- * @param {?} actionOrActions
90
- * @return {?}
91
- */
92
- function (actionOrActions) {
93
- var _this = this;
94
- if (Array.isArray(actionOrActions)) {
95
- if (actionOrActions.length === 0)
96
- return of(this._stateStream.getValue());
97
- return forkJoin(actionOrActions.map((/**
98
- * @param {?} action
99
- * @return {?}
100
- */
101
- function (action) { return _this.dispatchSingle(action); })));
102
- }
103
- else {
104
- return this.dispatchSingle(actionOrActions);
105
- }
106
- };
107
- /**
108
- * @private
109
- * @param {?} action
110
- * @return {?}
111
- */
112
- InternalDispatcher.prototype.dispatchSingle = /**
113
- * @private
114
- * @param {?} action
115
- * @return {?}
116
- */
117
- function (action) {
118
- var _this = this;
119
- /** @type {?} */
120
- var prevState = this._stateStream.getValue();
121
- /** @type {?} */
122
- var plugins = this._pluginManager.plugins;
123
- return ((/** @type {?} */ (compose(tslib_1.__spread(plugins, [
124
- (/**
125
- * @param {?} nextState
126
- * @param {?} nextAction
127
- * @return {?}
128
- */
129
- function (nextState, nextAction) {
130
- if (nextState !== prevState) {
131
- _this._stateStream.next(nextState);
132
- }
133
- /** @type {?} */
134
- var actionResult$ = _this.getActionResultStream(nextAction);
135
- actionResult$.subscribe((/**
136
- * @param {?} ctx
137
- * @return {?}
138
- */
139
- function (ctx) { return _this._actions.next(ctx); }));
140
- _this._actions.next({ action: nextAction, status: "DISPATCHED" /* Dispatched */ });
141
- return _this.createDispatchObservable(actionResult$);
142
- })
143
- ]))(prevState, action)))).pipe(shareReplay());
144
- };
145
- /**
146
- * @private
147
- * @param {?} action
148
- * @return {?}
149
- */
150
- InternalDispatcher.prototype.getActionResultStream = /**
151
- * @private
152
- * @param {?} action
153
- * @return {?}
154
- */
155
- function (action) {
156
- return this._actionResults.pipe(filter((/**
157
- * @param {?} ctx
158
- * @return {?}
159
- */
160
- function (ctx) { return ctx.action === action && ctx.status !== "DISPATCHED" /* Dispatched */; })), take(1), shareReplay());
161
- };
162
- /**
163
- * @private
164
- * @param {?} actionResult$
165
- * @return {?}
166
- */
167
- InternalDispatcher.prototype.createDispatchObservable = /**
168
- * @private
169
- * @param {?} actionResult$
170
- * @return {?}
171
- */
172
- function (actionResult$) {
173
- var _this = this;
174
- return actionResult$
175
- .pipe(exhaustMap((/**
176
- * @param {?} ctx
177
- * @return {?}
178
- */
179
- function (ctx) {
180
- switch (ctx.status) {
181
- case "SUCCESSFUL" /* Successful */:
182
- return of(_this._stateStream.getValue());
183
- case "ERRORED" /* Errored */:
184
- return throwError(ctx.error);
185
- default:
186
- return EMPTY;
187
- }
188
- })))
189
- .pipe(shareReplay());
190
- };
191
- InternalDispatcher.decorators = [
192
- { type: Injectable }
193
- ];
194
- /** @nocollapse */
195
- InternalDispatcher.ctorParameters = function () { return [
196
- { type: ErrorHandler },
197
- { type: InternalActions },
198
- { type: InternalDispatchedActionResults },
199
- { type: PluginManager },
200
- { type: StateStream },
201
- { type: InternalNgxsExecutionStrategy }
202
- ]; };
203
- return InternalDispatcher;
204
- }());
205
- export { InternalDispatcher };
206
- if (false) {
207
- /**
208
- * @type {?}
209
- * @private
210
- */
211
- InternalDispatcher.prototype._errorHandler;
212
- /**
213
- * @type {?}
214
- * @private
215
- */
216
- InternalDispatcher.prototype._actions;
217
- /**
218
- * @type {?}
219
- * @private
220
- */
221
- InternalDispatcher.prototype._actionResults;
222
- /**
223
- * @type {?}
224
- * @private
225
- */
226
- InternalDispatcher.prototype._pluginManager;
227
- /**
228
- * @type {?}
229
- * @private
230
- */
231
- InternalDispatcher.prototype._stateStream;
232
- /**
233
- * @type {?}
234
- * @private
235
- */
236
- InternalDispatcher.prototype._ngxsExecutionStrategy;
237
- }
238
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGF0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JlLyIsInNvdXJjZXMiOlsic3JjL2ludGVybmFsL2Rpc3BhdGNoZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzNDLE9BQU8sRUFBK0IsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM5RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7Ozs7QUFRcEQ7SUFDcUQsMkRBQXNCO0lBRDNFOztJQUM2RSxDQUFDOztnQkFEN0UsVUFBVTs7SUFDa0Usc0NBQUM7Q0FBQSxBQUQ5RSxDQUNxRCxPQUFPLEdBQWtCO1NBQWpFLCtCQUErQjtBQUU1QztJQUVFLDRCQUNVLGFBQTJCLEVBQzNCLFFBQXlCLEVBQ3pCLGNBQStDLEVBQy9DLGNBQTZCLEVBQzdCLFlBQXlCLEVBQ3pCLHNCQUFxRDtRQUxyRCxrQkFBYSxHQUFiLGFBQWEsQ0FBYztRQUMzQixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUN6QixtQkFBYyxHQUFkLGNBQWMsQ0FBaUM7UUFDL0MsbUJBQWMsR0FBZCxjQUFj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a0NBQTRCLEVBQS9ELENBQStELEVBQ3hGLEVBQ0QsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLFdBQVcsRUFBRSxDQUNkLENBQUM7SUFDSixDQUFDOzs7Ozs7SUFFTyxxREFBd0I7Ozs7O0lBQWhDLFVBQWlDLGFBQXdDO1FBQXpFLGlCQWVDO1FBZEMsT0FBTyxhQUFhO2FBQ2pCLElBQUksQ0FDSCxVQUFVOzs7O1FBQUMsVUFBQyxHQUFrQjtZQUM1QixRQUFRLEdBQUcsQ0FBQyxNQUFNLEVBQUU7Z0JBQ2xCO29CQUNFLE9BQU8sRUFBRSxDQUFDLEtBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztnQkFDMUM7b0JBQ0UsT0FBTyxVQUFVLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUMvQjtvQkFDRSxPQUFPLEtBQUssQ0FBQzthQUNoQjtRQUNILENBQUMsRUFBQyxDQUNIO2FBQ0EsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDekIsQ0FBQzs7Z0JBbkZGLFVBQVU7Ozs7Z0JBcEJGLFlBQVk7Z0JBS2lCLGVBQWU7Z0JBb0J6QiwrQkFBK0I7Z0JBbEJsRCxhQUFhO2dCQURiLFdBQVc7Z0JBRVgsNkJBQTZCOztJQWdHdEMseUJBQUM7Q0FBQSxBQXBGRCxJQW9GQztTQW5GWSxrQkFBa0I7Ozs7OztJQUUzQiwyQ0FBbUM7Ozs7O0lBQ25DLHNDQUFpQzs7Ozs7SUFDakMsNENBQXVEOzs7OztJQUN2RCw0Q0FBcUM7Ozs7O0lBQ3JDLDBDQUFpQzs7Ozs7SUFDakMsb0RBQTZEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXJyb3JIYW5kbGVyLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFTVBUWSwgZm9ya0pvaW4sIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0LCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBleGhhdXN0TWFwLCBmaWx0ZXIsIHNoYXJlUmVwbGF5LCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBjb21wb3NlIH0gZnJvbSAnLi4vdXRpbHMvY29tcG9zZSc7XG5pbXBvcnQgeyBBY3Rpb25Db250ZXh0LCBBY3Rpb25TdGF0dXMsIEludGVybmFsQWN0aW9ucyB9IGZyb20gJy4uL2FjdGlvbnMtc3RyZWFtJztcbmltcG9ydCB7IFN0YXRlU3RyZWFtIH0gZnJvbSAnLi9zdGF0ZS1zdHJlYW0nO1xuaW1wb3J0IHsgUGx1Z2luTWFuYWdlciB9IGZyb20gJy4uL3BsdWdpbi1tYW5hZ2VyJztcbmltcG9ydCB7IEludGVybmFsTmd4c0V4ZWN1dGlvblN0cmF0ZWd5IH0gZnJvbSAnLi4vZXhlY3V0aW9uL2ludGVybmFsLW5neHMtZXhlY3V0aW9uLXN0cmF0ZWd5JztcbmltcG9ydCB7IGxlYXZlTmd4cyB9IGZyb20gJy4uL29wZXJhdG9ycy9sZWF2ZS1uZ3hzJztcblxuLyoqXG4gKiBJbnRlcm5hbCBBY3Rpb24gcmVzdWx0IHN0cmVhbSB0aGF0IGlzIGVtaXR0ZWQgd2hlbiBhbiBhY3Rpb24gaXMgY29tcGxldGVkLlxuICogVGhpcyBpcyB1c2VkIGFzIGEgbWV0aG9kIG9mIHJldHVybmluZyB0aGUgYWN0aW9uIHJlc3VsdCB0byB0aGUgZGlzcGF0Y2hlclxuICogZm9yIHRoZSBvYnNlcnZhYmxlIHJldHVybmVkIGJ5IHRoZSBkaXNwYXRjaCguLi4pIGNhbGwuXG4gKiBUaGUgZGlzcGF0Y2hlciB0aGVuIGFzeW5jaHJvbm91c2x5IHB1c2hlcyB0aGUgcmVzdWx0IGZyb20gdGhpcyBzdHJlYW0gb250byB0aGUgbWFpbiBhY3Rpb24gc3RyZWFtIGFzIGEgcmVzdWx0LlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSW50ZXJuYWxEaXNwYXRjaGVkQWN0aW9uUmVzdWx0cyBleHRlbmRzIFN1YmplY3Q8QWN0aW9uQ29udGV4dD4ge31cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEludGVybmFsRGlzcGF0Y2hlciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2Vycm9ySGFuZGxlcjogRXJyb3JIYW5kbGVyLFxuICAgIHByaXZhdGUgX2FjdGlvbnM6IEludGVybmFsQWN0aW9ucyxcbiAgICBwcml2YXRlIF9hY3Rpb25SZXN1bHRzOiBJbnRlcm5hbERpc3BhdGNoZWRBY3Rpb25SZXN1bHRzLFxuICAgIHByaXZhdGUgX3BsdWdpbk1hbmFnZXI6IFBsdWdpbk1hbmFnZXIsXG4gICAgcHJpdmF0ZSBfc3RhdGVTdHJlYW06IFN0YXRlU3RyZWFtLFxuICAgIHByaXZhdGUgX25neHNFeGVjdXRpb25TdHJhdGVneTogSW50ZXJuYWxOZ3hzRXhlY3V0aW9uU3RyYXRlZ3lcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBEaXNwYXRjaGVzIGV2ZW50KHMpLlxuICAgKi9cbiAgZGlzcGF0Y2goYWN0aW9uT3JBY3Rpb25zOiBhbnkgfCBhbnlbXSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fbmd4c0V4ZWN1dGlvblN0cmF0ZWd5LmVudGVyKCgpID0+XG4gICAgICB0aGlzLmRpc3BhdGNoQnlFdmVudHMoYWN0aW9uT3JBY3Rpb25zKVxuICAgICk7XG5cbiAgICByZXN1bHQuc3Vic2NyaWJlKHtcbiAgICAgIGVycm9yOiBlcnJvciA9PlxuICAgICAgICB0aGlzLl9uZ3hzRXhlY3V0aW9uU3RyYXRlZ3kubGVhdmUoKCkgPT4ge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0aGlzLl9lcnJvckhhbmRsZXIuaGFuZGxlRXJyb3IoZXJyb3IpO1xuICAgICAgICAgIH0gY2F0Y2gge31cbiAgICAgICAgfSlcbiAgICB9KTtcblxuICAgIHJldHVybiByZXN1bHQucGlwZShsZWF2ZU5neHModGhpcy5fbmd4c0V4ZWN1dGlvblN0cmF0ZWd5KSk7XG4gIH1cblxuICBwcml2YXRlIGRpc3BhdGNoQnlFdmVudHMoYWN0aW9uT3JBY3Rpb25zOiBhbnkgfCBhbnlbXSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoYWN0aW9uT3JBY3Rpb25zKSkge1xuICAgICAgaWYgKGFjdGlvbk9yQWN0aW9ucy5sZW5ndGggPT09IDApIHJldHVybiBvZih0aGlzLl9zdGF0ZVN0cmVhbS5nZXRWYWx1ZSgpKTtcbiAgICAgIHJldHVybiBmb3JrSm9pbihhY3Rpb25PckFjdGlvbnMubWFwKGFjdGlvbiA9PiB0aGlzLmRpc3BhdGNoU2luZ2xlKGFjdGlvbikpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2hTaW5nbGUoYWN0aW9uT3JBY3Rpb25zKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGRpc3BhdGNoU2luZ2xlKGFjdGlvbjogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBwcmV2U3RhdGUgPSB0aGlzLl9zdGF0ZVN0cmVhbS5nZXRWYWx1ZSgpO1xuICAgIGNvbnN0IHBsdWdpbnMgPSB0aGlzLl9wbHVnaW5NYW5hZ2VyLnBsdWdpbnM7XG5cbiAgICByZXR1cm4gKGNvbXBvc2UoW1xuICAgICAgLi4ucGx1Z2lucyxcbiAgICAgIChuZXh0U3RhdGU6IGFueSwgbmV4dEFjdGlvbjogYW55KSA9PiB7XG4gICAgICAgIGlmIChuZXh0U3RhdGUgIT09IHByZXZTdGF0ZSkge1xuICAgICAgICAgIHRoaXMuX3N0YXRlU3RyZWFtLm5leHQobmV4dFN0YXRlKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBhY3Rpb25SZXN1bHQkID0gdGhpcy5nZXRBY3Rpb25SZXN1bHRTdHJlYW0obmV4dEFjdGlvbik7XG4gICAgICAgIGFjdGlvblJlc3VsdCQuc3Vic2NyaWJlKGN0eCA9PiB0aGlzLl9hY3Rpb25zLm5leHQoY3R4KSk7XG4gICAgICAgIHRoaXMuX2FjdGlvbnMubmV4dCh7IGFjdGlvbjogbmV4dEFjdGlvbiwgc3RhdHVzOiBBY3Rpb25TdGF0dXMuRGlzcGF0Y2hlZCB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRGlzcGF0Y2hPYnNlcnZhYmxlKGFjdGlvblJlc3VsdCQpO1xuICAgICAgfVxuICAgIF0pKHByZXZTdGF0ZSwgYWN0aW9uKSBhcyBPYnNlcnZhYmxlPGFueT4pLnBpcGUoc2hhcmVSZXBsYXkoKSk7XG4gIH1cblxuICBwcml2YXRlIGdldEFjdGlvblJlc3VsdFN0cmVhbShhY3Rpb246IGFueSk6IE9ic2VydmFibGU8QWN0aW9uQ29udGV4dD4ge1xuICAgIHJldHVybiB0aGlzLl9hY3Rpb25SZXN1bHRzLnBpcGUoXG4gICAgICBmaWx0ZXIoXG4gICAgICAgIChjdHg6IEFjdGlvbkNvbnRleHQpID0+IGN0eC5hY3Rpb24gPT09IGFjdGlvbiAmJiBjdHguc3RhdHVzICE9PSBBY3Rpb25TdGF0dXMuRGlzcGF0Y2hlZFxuICAgICAgKSxcbiAgICAgIHRha2UoMSksXG4gICAgICBzaGFyZVJlcGxheSgpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRGlzcGF0Y2hPYnNlcnZhYmxlKGFjdGlvblJlc3VsdCQ6IE9ic2VydmFibGU8QWN0aW9uQ29udGV4dD4pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiBhY3Rpb25SZXN1bHQkXG4gICAgICAucGlwZShcbiAgICAgICAgZXhoYXVzdE1hcCgoY3R4OiBBY3Rpb25Db250ZXh0KSA9PiB7XG4gICAgICAgICAgc3dpdGNoIChjdHguc3RhdHVzKSB7XG4gICAgICAgICAgICBjYXNlIEFjdGlvblN0YXR1cy5TdWNjZXNzZnVsOlxuICAgICAgICAgICAgICByZXR1cm4gb2YodGhpcy5fc3RhdGVTdHJlYW0uZ2V0VmFsdWUoKSk7XG4gICAgICAgICAgICBjYXNlIEFjdGlvblN0YXR1cy5FcnJvcmVkOlxuICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihjdHguZXJyb3IpO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5waXBlKHNoYXJlUmVwbGF5KCkpO1xuICB9XG59XG4iXX0=
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
+ */
5
+ import * as tslib_1 from "tslib";
6
+ import { ErrorHandler, Injectable } from '@angular/core';
7
+ import { EMPTY, forkJoin, of, Subject, throwError } from 'rxjs';
8
+ import { exhaustMap, filter, shareReplay, take } from 'rxjs/operators';
9
+ import { compose } from '../utils/compose';
10
+ import { InternalActions } from '../actions-stream';
11
+ import { StateStream } from './state-stream';
12
+ import { PluginManager } from '../plugin-manager';
13
+ import { InternalNgxsExecutionStrategy } from '../execution/internal-ngxs-execution-strategy';
14
+ import { leaveNgxs } from '../operators/leave-ngxs';
15
+ import { getActionTypeFromInstance } from '../utils/utils';
16
+ /**
17
+ * Internal Action result stream that is emitted when an action is completed.
18
+ * This is used as a method of returning the action result to the dispatcher
19
+ * for the observable returned by the dispatch(...) call.
20
+ * The dispatcher then asynchronously pushes the result from this stream onto the main action stream as a result.
21
+ */
22
+ var InternalDispatchedActionResults = /** @class */ (function (_super) {
23
+ tslib_1.__extends(InternalDispatchedActionResults, _super);
24
+ function InternalDispatchedActionResults() {
25
+ return _super !== null && _super.apply(this, arguments) || this;
26
+ }
27
+ InternalDispatchedActionResults.decorators = [
28
+ { type: Injectable }
29
+ ];
30
+ return InternalDispatchedActionResults;
31
+ }(Subject));
32
+ export { InternalDispatchedActionResults };
33
+ var InternalDispatcher = /** @class */ (function () {
34
+ function InternalDispatcher(_errorHandler, _actions, _actionResults, _pluginManager, _stateStream, _ngxsExecutionStrategy) {
35
+ this._errorHandler = _errorHandler;
36
+ this._actions = _actions;
37
+ this._actionResults = _actionResults;
38
+ this._pluginManager = _pluginManager;
39
+ this._stateStream = _stateStream;
40
+ this._ngxsExecutionStrategy = _ngxsExecutionStrategy;
41
+ }
42
+ /**
43
+ * Dispatches event(s).
44
+ */
45
+ /**
46
+ * Dispatches event(s).
47
+ * @param {?} actionOrActions
48
+ * @return {?}
49
+ */
50
+ InternalDispatcher.prototype.dispatch = /**
51
+ * Dispatches event(s).
52
+ * @param {?} actionOrActions
53
+ * @return {?}
54
+ */
55
+ function (actionOrActions) {
56
+ var _this = this;
57
+ /** @type {?} */
58
+ var result = this._ngxsExecutionStrategy.enter((/**
59
+ * @return {?}
60
+ */
61
+ function () {
62
+ return _this.dispatchByEvents(actionOrActions);
63
+ }));
64
+ result.subscribe({
65
+ error: (/**
66
+ * @param {?} error
67
+ * @return {?}
68
+ */
69
+ function (error) {
70
+ return _this._ngxsExecutionStrategy.leave((/**
71
+ * @return {?}
72
+ */
73
+ function () {
74
+ try {
75
+ _this._errorHandler.handleError(error);
76
+ }
77
+ catch (_a) { }
78
+ }));
79
+ })
80
+ });
81
+ return result.pipe(leaveNgxs(this._ngxsExecutionStrategy));
82
+ };
83
+ /**
84
+ * @private
85
+ * @param {?} actionOrActions
86
+ * @return {?}
87
+ */
88
+ InternalDispatcher.prototype.dispatchByEvents = /**
89
+ * @private
90
+ * @param {?} actionOrActions
91
+ * @return {?}
92
+ */
93
+ function (actionOrActions) {
94
+ var _this = this;
95
+ if (Array.isArray(actionOrActions)) {
96
+ if (actionOrActions.length === 0)
97
+ return of(this._stateStream.getValue());
98
+ return forkJoin(actionOrActions.map((/**
99
+ * @param {?} action
100
+ * @return {?}
101
+ */
102
+ function (action) { return _this.dispatchSingle(action); })));
103
+ }
104
+ else {
105
+ return this.dispatchSingle(actionOrActions);
106
+ }
107
+ };
108
+ /**
109
+ * @private
110
+ * @param {?} action
111
+ * @return {?}
112
+ */
113
+ InternalDispatcher.prototype.dispatchSingle = /**
114
+ * @private
115
+ * @param {?} action
116
+ * @return {?}
117
+ */
118
+ function (action) {
119
+ var _this = this;
120
+ /** @type {?} */
121
+ var type = getActionTypeFromInstance(action);
122
+ if (!type) {
123
+ /** @type {?} */
124
+ var error = new Error("This action doesn't have a type property: " + action.constructor.name);
125
+ return throwError(error);
126
+ }
127
+ /** @type {?} */
128
+ var prevState = this._stateStream.getValue();
129
+ /** @type {?} */
130
+ var plugins = this._pluginManager.plugins;
131
+ return ((/** @type {?} */ (compose(tslib_1.__spread(plugins, [
132
+ (/**
133
+ * @param {?} nextState
134
+ * @param {?} nextAction
135
+ * @return {?}
136
+ */
137
+ function (nextState, nextAction) {
138
+ if (nextState !== prevState) {
139
+ _this._stateStream.next(nextState);
140
+ }
141
+ /** @type {?} */
142
+ var actionResult$ = _this.getActionResultStream(nextAction);
143
+ actionResult$.subscribe((/**
144
+ * @param {?} ctx
145
+ * @return {?}
146
+ */
147
+ function (ctx) { return _this._actions.next(ctx); }));
148
+ _this._actions.next({ action: nextAction, status: "DISPATCHED" /* Dispatched */ });
149
+ return _this.createDispatchObservable(actionResult$);
150
+ })
151
+ ]))(prevState, action)))).pipe(shareReplay());
152
+ };
153
+ /**
154
+ * @private
155
+ * @param {?} action
156
+ * @return {?}
157
+ */
158
+ InternalDispatcher.prototype.getActionResultStream = /**
159
+ * @private
160
+ * @param {?} action
161
+ * @return {?}
162
+ */
163
+ function (action) {
164
+ return this._actionResults.pipe(filter((/**
165
+ * @param {?} ctx
166
+ * @return {?}
167
+ */
168
+ function (ctx) { return ctx.action === action && ctx.status !== "DISPATCHED" /* Dispatched */; })), take(1), shareReplay());
169
+ };
170
+ /**
171
+ * @private
172
+ * @param {?} actionResult$
173
+ * @return {?}
174
+ */
175
+ InternalDispatcher.prototype.createDispatchObservable = /**
176
+ * @private
177
+ * @param {?} actionResult$
178
+ * @return {?}
179
+ */
180
+ function (actionResult$) {
181
+ var _this = this;
182
+ return actionResult$
183
+ .pipe(exhaustMap((/**
184
+ * @param {?} ctx
185
+ * @return {?}
186
+ */
187
+ function (ctx) {
188
+ switch (ctx.status) {
189
+ case "SUCCESSFUL" /* Successful */:
190
+ return of(_this._stateStream.getValue());
191
+ case "ERRORED" /* Errored */:
192
+ return throwError(ctx.error);
193
+ default:
194
+ return EMPTY;
195
+ }
196
+ })))
197
+ .pipe(shareReplay());
198
+ };
199
+ InternalDispatcher.decorators = [
200
+ { type: Injectable }
201
+ ];
202
+ /** @nocollapse */
203
+ InternalDispatcher.ctorParameters = function () { return [
204
+ { type: ErrorHandler },
205
+ { type: InternalActions },
206
+ { type: InternalDispatchedActionResults },
207
+ { type: PluginManager },
208
+ { type: StateStream },
209
+ { type: InternalNgxsExecutionStrategy }
210
+ ]; };
211
+ return InternalDispatcher;
212
+ }());
213
+ export { InternalDispatcher };
214
+ if (false) {
215
+ /**
216
+ * @type {?}
217
+ * @private
218
+ */
219
+ InternalDispatcher.prototype._errorHandler;
220
+ /**
221
+ * @type {?}
222
+ * @private
223
+ */
224
+ InternalDispatcher.prototype._actions;
225
+ /**
226
+ * @type {?}
227
+ * @private
228
+ */
229
+ InternalDispatcher.prototype._actionResults;
230
+ /**
231
+ * @type {?}
232
+ * @private
233
+ */
234
+ InternalDispatcher.prototype._pluginManager;
235
+ /**
236
+ * @type {?}
237
+ * @private
238
+ */
239
+ InternalDispatcher.prototype._stateStream;
240
+ /**
241
+ * @type {?}
242
+ * @private
243
+ */
244
+ InternalDispatcher.prototype._ngxsExecutionStrategy;
245
+ }
246
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGF0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JlLyIsInNvdXJjZXMiOlsic3JjL2ludGVybmFsL2Rpc3BhdGNoZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzNDLE9BQU8sRUFBK0IsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM5RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUFRM0Q7SUFDcUQsMkRBQXNCO0lBRDNFOztJQUM2RSxDQUFDOztnQkFEN0UsVUFBVTs7SUFDa0Usc0NBQUM7Q0FBQSxBQUQ5RSxDQUNxRCxPQUFPLEdBQWtCO1NBQWpFLCtCQUErQjtBQUU1QztJQUVFLDRCQUNVLGFBQTJCLEVBQzNCLFFBQXlCLEVBQ3pCLGNBQStDLEVBQy9DLGNBQTZCLEVBQzdCLFlBQXlCLEVBQ3pCLHNCQUFxRDtRQUxyRCxrQkFBYSxHQUFiLGFBQWEsQ0FBYztRQUMzQixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUN6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QUE2RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVycm9ySGFuZGxlciwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFTVBUWSwgZm9ya0pvaW4sIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0LCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGV4aGF1c3RNYXAsIGZpbHRlciwgc2hhcmVSZXBsYXksIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBjb21wb3NlIH0gZnJvbSAnLi4vdXRpbHMvY29tcG9zZSc7XHJcbmltcG9ydCB7IEFjdGlvbkNvbnRleHQsIEFjdGlvblN0YXR1cywgSW50ZXJuYWxBY3Rpb25zIH0gZnJvbSAnLi4vYWN0aW9ucy1zdHJlYW0nO1xyXG5pbXBvcnQgeyBTdGF0ZVN0cmVhbSB9IGZyb20gJy4vc3RhdGUtc3RyZWFtJztcclxuaW1wb3J0IHsgUGx1Z2luTWFuYWdlciB9IGZyb20gJy4uL3BsdWdpbi1tYW5hZ2VyJztcclxuaW1wb3J0IHsgSW50ZXJuYWxOZ3hzRXhlY3V0aW9uU3RyYXRlZ3kgfSBmcm9tICcuLi9leGVjdXRpb24vaW50ZXJuYWwtbmd4cy1leGVjdXRpb24tc3RyYXRlZ3knO1xyXG5pbXBvcnQgeyBsZWF2ZU5neHMgfSBmcm9tICcuLi9vcGVyYXRvcnMvbGVhdmUtbmd4cyc7XHJcbmltcG9ydCB7IGdldEFjdGlvblR5cGVGcm9tSW5zdGFuY2UgfSBmcm9tICcuLi91dGlscy91dGlscyc7XHJcblxyXG4vKipcclxuICogSW50ZXJuYWwgQWN0aW9uIHJlc3VsdCBzdHJlYW0gdGhhdCBpcyBlbWl0dGVkIHdoZW4gYW4gYWN0aW9uIGlzIGNvbXBsZXRlZC5cclxuICogVGhpcyBpcyB1c2VkIGFzIGEgbWV0aG9kIG9mIHJldHVybmluZyB0aGUgYWN0aW9uIHJlc3VsdCB0byB0aGUgZGlzcGF0Y2hlclxyXG4gKiBmb3IgdGhlIG9ic2VydmFibGUgcmV0dXJuZWQgYnkgdGhlIGRpc3BhdGNoKC4uLikgY2FsbC5cclxuICogVGhlIGRpc3BhdGNoZXIgdGhlbiBhc3luY2hyb25vdXNseSBwdXNoZXMgdGhlIHJlc3VsdCBmcm9tIHRoaXMgc3RyZWFtIG9udG8gdGhlIG1haW4gYWN0aW9uIHN0cmVhbSBhcyBhIHJlc3VsdC5cclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEludGVybmFsRGlzcGF0Y2hlZEFjdGlvblJlc3VsdHMgZXh0ZW5kcyBTdWJqZWN0PEFjdGlvbkNvbnRleHQ+IHt9XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBJbnRlcm5hbERpc3BhdGNoZXIge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfZXJyb3JIYW5kbGVyOiBFcnJvckhhbmRsZXIsXHJcbiAgICBwcml2YXRlIF9hY3Rpb25zOiBJbnRlcm5hbEFjdGlvbnMsXHJcbiAgICBwcml2YXRlIF9hY3Rpb25SZXN1bHRzOiBJbnRlcm5hbERpc3BhdGNoZWRBY3Rpb25SZXN1bHRzLFxyXG4gICAgcHJpdmF0ZSBfcGx1Z2luTWFuYWdlcjogUGx1Z2luTWFuYWdlcixcclxuICAgIHByaXZhdGUgX3N0YXRlU3RyZWFtOiBTdGF0ZVN0cmVhbSxcclxuICAgIHByaXZhdGUgX25neHNFeGVjdXRpb25TdHJhdGVneTogSW50ZXJuYWxOZ3hzRXhlY3V0aW9uU3RyYXRlZ3lcclxuICApIHt9XHJcblxyXG4gIC8qKlxyXG4gICAqIERpc3BhdGNoZXMgZXZlbnQocykuXHJcbiAgICovXHJcbiAgZGlzcGF0Y2goYWN0aW9uT3JBY3Rpb25zOiBhbnkgfCBhbnlbXSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9uZ3hzRXhlY3V0aW9uU3RyYXRlZ3kuZW50ZXIoKCkgPT5cclxuICAgICAgdGhpcy5kaXNwYXRjaEJ5RXZlbnRzKGFjdGlvbk9yQWN0aW9ucylcclxuICAgICk7XHJcblxyXG4gICAgcmVzdWx0LnN1YnNjcmliZSh7XHJcbiAgICAgIGVycm9yOiBlcnJvciA9PlxyXG4gICAgICAgIHRoaXMuX25neHNFeGVjdXRpb25TdHJhdGVneS5sZWF2ZSgoKSA9PiB7XHJcbiAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICB0aGlzLl9lcnJvckhhbmRsZXIuaGFuZGxlRXJyb3IoZXJyb3IpO1xyXG4gICAgICAgICAgfSBjYXRjaCB7fVxyXG4gICAgICAgIH0pXHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0LnBpcGUobGVhdmVOZ3hzKHRoaXMuX25neHNFeGVjdXRpb25TdHJhdGVneSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkaXNwYXRjaEJ5RXZlbnRzKGFjdGlvbk9yQWN0aW9uczogYW55IHwgYW55W10pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoYWN0aW9uT3JBY3Rpb25zKSkge1xyXG4gICAgICBpZiAoYWN0aW9uT3JBY3Rpb25zLmxlbmd0aCA9PT0gMCkgcmV0dXJuIG9mKHRoaXMuX3N0YXRlU3RyZWFtLmdldFZhbHVlKCkpO1xyXG4gICAgICByZXR1cm4gZm9ya0pvaW4oYWN0aW9uT3JBY3Rpb25zLm1hcChhY3Rpb24gPT4gdGhpcy5kaXNwYXRjaFNpbmdsZShhY3Rpb24pKSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaFNpbmdsZShhY3Rpb25PckFjdGlvbnMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkaXNwYXRjaFNpbmdsZShhY3Rpb246IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCB0eXBlOiBzdHJpbmcgfCB1bmRlZmluZWQgPSBnZXRBY3Rpb25UeXBlRnJvbUluc3RhbmNlKGFjdGlvbik7XHJcbiAgICBpZiAoIXR5cGUpIHtcclxuICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoXHJcbiAgICAgICAgYFRoaXMgYWN0aW9uIGRvZXNuJ3QgaGF2ZSBhIHR5cGUgcHJvcGVydHk6ICR7YWN0aW9uLmNvbnN0cnVjdG9yLm5hbWV9YFxyXG4gICAgICApO1xyXG4gICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcHJldlN0YXRlID0gdGhpcy5fc3RhdGVTdHJlYW0uZ2V0VmFsdWUoKTtcclxuICAgIGNvbnN0IHBsdWdpbnMgPSB0aGlzLl9wbHVnaW5NYW5hZ2VyLnBsdWdpbnM7XHJcblxyXG4gICAgcmV0dXJuIChjb21wb3NlKFtcclxuICAgICAgLi4ucGx1Z2lucyxcclxuICAgICAgKG5leHRTdGF0ZTogYW55LCBuZXh0QWN0aW9uOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAobmV4dFN0YXRlICE9PSBwcmV2U3RhdGUpIHtcclxuICAgICAgICAgIHRoaXMuX3N0YXRlU3RyZWFtLm5leHQobmV4dFN0YXRlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgYWN0aW9uUmVzdWx0JCA9IHRoaXMuZ2V0QWN0aW9uUmVzdWx0U3RyZWFtKG5leHRBY3Rpb24pO1xyXG4gICAgICAgIGFjdGlvblJlc3VsdCQuc3Vic2NyaWJlKGN0eCA9PiB0aGlzLl9hY3Rpb25zLm5leHQoY3R4KSk7XHJcbiAgICAgICAgdGhpcy5fYWN0aW9ucy5uZXh0KHsgYWN0aW9uOiBuZXh0QWN0aW9uLCBzdGF0dXM6IEFjdGlvblN0YXR1cy5EaXNwYXRjaGVkIH0pO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZURpc3BhdGNoT2JzZXJ2YWJsZShhY3Rpb25SZXN1bHQkKTtcclxuICAgICAgfVxyXG4gICAgXSkocHJldlN0YXRlLCBhY3Rpb24pIGFzIE9ic2VydmFibGU8YW55PikucGlwZShzaGFyZVJlcGxheSgpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0QWN0aW9uUmVzdWx0U3RyZWFtKGFjdGlvbjogYW55KTogT2JzZXJ2YWJsZTxBY3Rpb25Db250ZXh0PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fYWN0aW9uUmVzdWx0cy5waXBlKFxyXG4gICAgICBmaWx0ZXIoXHJcbiAgICAgICAgKGN0eDogQWN0aW9uQ29udGV4dCkgPT4gY3R4LmFjdGlvbiA9PT0gYWN0aW9uICYmIGN0eC5zdGF0dXMgIT09IEFjdGlvblN0YXR1cy5EaXNwYXRjaGVkXHJcbiAgICAgICksXHJcbiAgICAgIHRha2UoMSksXHJcbiAgICAgIHNoYXJlUmVwbGF5KClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZURpc3BhdGNoT2JzZXJ2YWJsZShhY3Rpb25SZXN1bHQkOiBPYnNlcnZhYmxlPEFjdGlvbkNvbnRleHQ+KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiBhY3Rpb25SZXN1bHQkXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIGV4aGF1c3RNYXAoKGN0eDogQWN0aW9uQ29udGV4dCkgPT4ge1xyXG4gICAgICAgICAgc3dpdGNoIChjdHguc3RhdHVzKSB7XHJcbiAgICAgICAgICAgIGNhc2UgQWN0aW9uU3RhdHVzLlN1Y2Nlc3NmdWw6XHJcbiAgICAgICAgICAgICAgcmV0dXJuIG9mKHRoaXMuX3N0YXRlU3RyZWFtLmdldFZhbHVlKCkpO1xyXG4gICAgICAgICAgICBjYXNlIEFjdGlvblN0YXR1cy5FcnJvcmVkOlxyXG4gICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGN0eC5lcnJvcik7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgcmV0dXJuIEVNUFRZO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuICAgICAgLnBpcGUoc2hhcmVSZXBsYXkoKSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==