@ngxs/store 18.1.6-dev.master-d290a0e → 18.1.6-dev.master-0ae2066

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 (144) hide show
  1. package/experimental/index.d.ts +6 -5
  2. package/fesm2022/ngxs-store-experimental.mjs +8 -25
  3. package/fesm2022/ngxs-store-experimental.mjs.map +1 -1
  4. package/fesm2022/ngxs-store-internals-testing.mjs +8 -9
  5. package/fesm2022/ngxs-store-internals-testing.mjs.map +1 -1
  6. package/fesm2022/ngxs-store-internals.mjs +6 -6
  7. package/fesm2022/ngxs-store-internals.mjs.map +1 -1
  8. package/fesm2022/ngxs-store-operators.mjs.map +1 -1
  9. package/fesm2022/ngxs-store-plugins.mjs.map +1 -1
  10. package/fesm2022/ngxs-store.mjs +101 -72
  11. package/fesm2022/ngxs-store.mjs.map +1 -1
  12. package/index.d.ts +11 -1
  13. package/package.json +2 -14
  14. package/schematics/src/actions/actions.factory.js +1 -2
  15. package/schematics/src/actions/actions.factory.js.map +1 -1
  16. package/schematics/src/ng-add/add-declaration.js +2 -3
  17. package/schematics/src/ng-add/add-declaration.js.map +1 -1
  18. package/schematics/src/ng-add/ng-add.factory.js +1 -2
  19. package/schematics/src/ng-add/ng-add.factory.js.map +1 -1
  20. package/schematics/src/starter-kit/starter-kit.factory.js +1 -2
  21. package/schematics/src/starter-kit/starter-kit.factory.js.map +1 -1
  22. package/schematics/src/state/state.factory.js +1 -2
  23. package/schematics/src/state/state.factory.js.map +1 -1
  24. package/schematics/src/store/store.factory.js +1 -2
  25. package/schematics/src/store/store.factory.js.map +1 -1
  26. package/schematics/src/utils/common/properties.js +1 -2
  27. package/schematics/src/utils/common/properties.js.map +1 -1
  28. package/schematics/src/utils/config.js +2 -3
  29. package/schematics/src/utils/config.js.map +1 -1
  30. package/schematics/src/utils/generate-utils.js +1 -2
  31. package/schematics/src/utils/generate-utils.js.map +1 -1
  32. package/schematics/src/utils/normalize-options.js +3 -4
  33. package/schematics/src/utils/normalize-options.js.map +1 -1
  34. package/schematics/src/utils/project.js +4 -5
  35. package/schematics/src/utils/project.js.map +1 -1
  36. package/esm2022/experimental/index.mjs +0 -2
  37. package/esm2022/experimental/ngxs-store-experimental.mjs +0 -5
  38. package/esm2022/experimental/pending-tasks.mjs +0 -30
  39. package/esm2022/index.mjs +0 -13
  40. package/esm2022/internals/custom-rxjs-operators.mjs +0 -19
  41. package/esm2022/internals/custom-rxjs-subjects.mjs +0 -92
  42. package/esm2022/internals/index.mjs +0 -11
  43. package/esm2022/internals/initial-state.mjs +0 -17
  44. package/esm2022/internals/internal-tokens.mjs +0 -5
  45. package/esm2022/internals/memoize.mjs +0 -43
  46. package/esm2022/internals/metadata.mjs +0 -57
  47. package/esm2022/internals/ngxs-app-bootstrapped-state.mjs +0 -19
  48. package/esm2022/internals/ngxs-store-internals.mjs +0 -5
  49. package/esm2022/internals/state-stream.mjs +0 -33
  50. package/esm2022/internals/state-token.mjs +0 -17
  51. package/esm2022/internals/symbols.mjs +0 -11
  52. package/esm2022/internals/testing/fresh-platform.mjs +0 -72
  53. package/esm2022/internals/testing/helpers/ngxs-test.component.mjs +0 -16
  54. package/esm2022/internals/testing/helpers/ngxs-test.module.mjs +0 -20
  55. package/esm2022/internals/testing/index.mjs +0 -4
  56. package/esm2022/internals/testing/ngxs-store-internals-testing.mjs +0 -5
  57. package/esm2022/internals/testing/ngxs.setup.mjs +0 -49
  58. package/esm2022/internals/testing/skip-console-logging.mjs +0 -37
  59. package/esm2022/internals/testing/symbol.mjs +0 -2
  60. package/esm2022/ngxs-store.mjs +0 -5
  61. package/esm2022/operators/append.mjs +0 -20
  62. package/esm2022/operators/compose.mjs +0 -6
  63. package/esm2022/operators/iif.mjs +0 -38
  64. package/esm2022/operators/index.mjs +0 -14
  65. package/esm2022/operators/insert-item.mjs +0 -29
  66. package/esm2022/operators/ngxs-store-operators.mjs +0 -5
  67. package/esm2022/operators/patch.mjs +0 -21
  68. package/esm2022/operators/remove-item.mjs +0 -22
  69. package/esm2022/operators/types.mjs +0 -2
  70. package/esm2022/operators/update-item.mjs +0 -40
  71. package/esm2022/operators/utils.mjs +0 -19
  72. package/esm2022/plugins/actions.mjs +0 -16
  73. package/esm2022/plugins/index.mjs +0 -4
  74. package/esm2022/plugins/ngxs-store-plugins.mjs +0 -5
  75. package/esm2022/plugins/symbols.mjs +0 -15
  76. package/esm2022/plugins/utils.mjs +0 -51
  77. package/esm2022/src/actions/action-registry.mjs +0 -34
  78. package/esm2022/src/actions/symbols.mjs +0 -2
  79. package/esm2022/src/actions-stream.mjs +0 -61
  80. package/esm2022/src/configs/messages.config.mjs +0 -48
  81. package/esm2022/src/decorators/action.mjs +0 -31
  82. package/esm2022/src/decorators/select/select-factory.mjs +0 -29
  83. package/esm2022/src/decorators/select/select.mjs +0 -29
  84. package/esm2022/src/decorators/select/symbols.mjs +0 -29
  85. package/esm2022/src/decorators/selector/selector.mjs +0 -29
  86. package/esm2022/src/decorators/selector/symbols.mjs +0 -2
  87. package/esm2022/src/decorators/selector-options.mjs +0 -21
  88. package/esm2022/src/decorators/state.mjs +0 -35
  89. package/esm2022/src/dev-features/ngxs-development.module.mjs +0 -28
  90. package/esm2022/src/dev-features/ngxs-unhandled-actions-logger.mjs +0 -43
  91. package/esm2022/src/dev-features/symbols.mjs +0 -7
  92. package/esm2022/src/execution/dispatch-outside-zone-ngxs-execution-strategy.mjs +0 -52
  93. package/esm2022/src/execution/internal-ngxs-execution-strategy.mjs +0 -21
  94. package/esm2022/src/execution/noop-ngxs-execution-strategy.mjs +0 -17
  95. package/esm2022/src/execution/symbols.mjs +0 -28
  96. package/esm2022/src/internal/dispatcher.mjs +0 -125
  97. package/esm2022/src/internal/fallback-subscriber.mjs +0 -29
  98. package/esm2022/src/internal/internals.mjs +0 -205
  99. package/esm2022/src/internal/lifecycle-state-manager.mjs +0 -81
  100. package/esm2022/src/internal/provide-internal-tokens.mjs +0 -20
  101. package/esm2022/src/internal/state-context-factory.mjs +0 -70
  102. package/esm2022/src/internal/state-factory.mjs +0 -311
  103. package/esm2022/src/internal/state-operations.mjs +0 -60
  104. package/esm2022/src/internal/state-operators.mjs +0 -20
  105. package/esm2022/src/internal/unhandled-rxjs-error-callback.mjs +0 -46
  106. package/esm2022/src/ivy/ivy-enabled-in-dev-mode.mjs +0 -25
  107. package/esm2022/src/module.mjs +0 -27
  108. package/esm2022/src/modules/ngxs-feature.module.mjs +0 -18
  109. package/esm2022/src/modules/ngxs-root.module.mjs +0 -18
  110. package/esm2022/src/ngxs-unhandled-error-handler.mjs +0 -29
  111. package/esm2022/src/operators/leave-ngxs.mjs +0 -9
  112. package/esm2022/src/operators/of-action.mjs +0 -104
  113. package/esm2022/src/plugin-manager.mjs +0 -34
  114. package/esm2022/src/plugin_api.mjs +0 -2
  115. package/esm2022/src/private_api.mjs +0 -5
  116. package/esm2022/src/public_api.mjs +0 -20
  117. package/esm2022/src/selectors/create-model-selector.mjs +0 -30
  118. package/esm2022/src/selectors/create-pick-selector.mjs +0 -16
  119. package/esm2022/src/selectors/create-property-selectors.mjs +0 -20
  120. package/esm2022/src/selectors/create-selector.mjs +0 -9
  121. package/esm2022/src/selectors/index.mjs +0 -6
  122. package/esm2022/src/selectors/private_api.mjs +0 -2
  123. package/esm2022/src/selectors/selector-checks.util.mjs +0 -43
  124. package/esm2022/src/selectors/selector-metadata.mjs +0 -35
  125. package/esm2022/src/selectors/selector-models.mjs +0 -2
  126. package/esm2022/src/selectors/selector-types.util.mjs +0 -2
  127. package/esm2022/src/selectors/selector-utils.mjs +0 -95
  128. package/esm2022/src/standalone-features/feature-providers.mjs +0 -18
  129. package/esm2022/src/standalone-features/index.mjs +0 -5
  130. package/esm2022/src/standalone-features/initializers.mjs +0 -94
  131. package/esm2022/src/standalone-features/plugin.mjs +0 -33
  132. package/esm2022/src/standalone-features/preboot.mjs +0 -31
  133. package/esm2022/src/standalone-features/provide-states.mjs +0 -26
  134. package/esm2022/src/standalone-features/provide-store.mjs +0 -26
  135. package/esm2022/src/standalone-features/root-providers.mjs +0 -34
  136. package/esm2022/src/store.mjs +0 -117
  137. package/esm2022/src/symbols.mjs +0 -86
  138. package/esm2022/src/utils/create-dispatch-map.mjs +0 -11
  139. package/esm2022/src/utils/create-select-map.mjs +0 -13
  140. package/esm2022/src/utils/dispatch.mjs +0 -7
  141. package/esm2022/src/utils/freeze.mjs +0 -20
  142. package/esm2022/src/utils/public_api.mjs +0 -5
  143. package/esm2022/src/utils/select.mjs +0 -19
  144. package/esm2022/src/utils/store-validators.mjs +0 -25
@@ -1,311 +0,0 @@
1
- import { Injectable, Injector, inject, ɵisPromise } from '@angular/core';
2
- import { ɵmemoize, ɵMETA_KEY, ɵgetStoreMetadata, ɵINITIAL_STATE_TOKEN } from '@ngxs/store/internals';
3
- import { getActionTypeFromInstance, getValue, setValue } from '@ngxs/store/plugins';
4
- import { forkJoin, from, isObservable, of, throwError, catchError, defaultIfEmpty, filter, map, mergeMap, takeUntil, finalize } from 'rxjs';
5
- import { NgxsConfig } from '../symbols';
6
- import { buildGraph, findFullParentPath, nameToState, ɵPROP_GETTER, topologicalSort } from './internals';
7
- import { NgxsActionRegistry } from '../actions/action-registry';
8
- import { InternalActions } from '../actions-stream';
9
- import { InternalDispatchedActionResults } from '../internal/dispatcher';
10
- import { ensureStateNameIsUnique, ensureStatesAreDecorated } from '../utils/store-validators';
11
- import { ensureStateClassIsInjectable } from '../ivy/ivy-enabled-in-dev-mode';
12
- import { NgxsUnhandledActionsLogger } from '../dev-features/ngxs-unhandled-actions-logger';
13
- import { NgxsUnhandledErrorHandler } from '../ngxs-unhandled-error-handler';
14
- import { assignUnhandledCallback } from './unhandled-rxjs-error-callback';
15
- import { StateContextFactory } from './state-context-factory';
16
- import { ofActionDispatched } from '../operators/of-action';
17
- import * as i0 from "@angular/core";
18
- function cloneDefaults(defaults) {
19
- let value = defaults === undefined ? {} : defaults;
20
- if (defaults) {
21
- if (Array.isArray(defaults)) {
22
- value = defaults.slice();
23
- }
24
- else if (typeof defaults === 'object') {
25
- value = { ...defaults };
26
- }
27
- }
28
- return value;
29
- }
30
- /**
31
- * The `StateFactory` class adds root and feature states to the graph.
32
- * This extracts state names from state classes, checks if they already
33
- * exist in the global graph, throws errors if their names are invalid, etc.
34
- *
35
- * Root and feature initializers call `addAndReturnDefaults()` to add those states
36
- * to the global graph. Since `addAndReturnDefaults` runs within the injection
37
- * context (which might be the root injector or a feature injector), we can
38
- * retrieve an instance of the state class using `inject(StateClass)`.
39
- * @ignore
40
- */
41
- export class StateFactory {
42
- constructor() {
43
- this._injector = inject(Injector);
44
- this._config = inject(NgxsConfig);
45
- this._stateContextFactory = inject(StateContextFactory);
46
- this._actions = inject(InternalActions);
47
- this._actionResults = inject(InternalDispatchedActionResults);
48
- this._initialState = inject(ɵINITIAL_STATE_TOKEN, { optional: true });
49
- this._actionRegistry = inject(NgxsActionRegistry);
50
- this._propGetter = inject(ɵPROP_GETTER);
51
- this._actionsSubscription = null;
52
- this._ngxsUnhandledErrorHandler = null;
53
- this._states = [];
54
- this._statesByName = {};
55
- this._statePaths = {};
56
- this.getRuntimeSelectorContext = ɵmemoize(() => {
57
- // eslint-disable-next-line @typescript-eslint/no-this-alias
58
- const stateFactory = this;
59
- const propGetter = stateFactory._propGetter;
60
- function resolveGetter(key) {
61
- const path = stateFactory._statePaths[key];
62
- return path ? propGetter(path.split('.')) : null;
63
- }
64
- const context = {
65
- getStateGetter(key) {
66
- // Use `@__INLINE__` annotation to forcely inline `resolveGetter`.
67
- // This is a Terser annotation, which will function only in the production mode.
68
- let getter = /*@__INLINE__*/ resolveGetter(key);
69
- if (getter) {
70
- return getter;
71
- }
72
- return (...args) => {
73
- // Late loaded getter
74
- if (!getter) {
75
- getter = /*@__INLINE__*/ resolveGetter(key);
76
- }
77
- return getter ? getter(...args) : undefined;
78
- };
79
- },
80
- getSelectorOptions(localOptions) {
81
- const globalSelectorOptions = stateFactory._config.selectorOptions;
82
- return {
83
- ...globalSelectorOptions,
84
- ...(localOptions || {})
85
- };
86
- }
87
- };
88
- return context;
89
- });
90
- }
91
- ngOnDestroy() {
92
- this._actionsSubscription?.unsubscribe();
93
- }
94
- /**
95
- * Add a new state to the global defs.
96
- */
97
- add(stateClasses) {
98
- if (typeof ngDevMode !== 'undefined' && ngDevMode) {
99
- ensureStatesAreDecorated(stateClasses);
100
- }
101
- const { newStates } = this.addToStatesMap(stateClasses);
102
- if (!newStates.length)
103
- return [];
104
- const stateGraph = buildGraph(newStates);
105
- const sortedStates = topologicalSort(stateGraph);
106
- const paths = findFullParentPath(stateGraph);
107
- const nameGraph = nameToState(newStates);
108
- const bootstrappedStores = [];
109
- for (const name of sortedStates) {
110
- const stateClass = nameGraph[name];
111
- const path = paths[name];
112
- const meta = stateClass[ɵMETA_KEY];
113
- this.addRuntimeInfoToMeta(meta, path);
114
- // Note: previously we called `ensureStateClassIsInjectable` within the
115
- // `State` decorator. This check is moved here because the `ɵprov` property
116
- // will not exist on the class in JIT mode (because it's set asynchronously
117
- // during JIT compilation through `Object.defineProperty`).
118
- if (typeof ngDevMode !== 'undefined' && ngDevMode) {
119
- ensureStateClassIsInjectable(stateClass);
120
- }
121
- const stateMap = {
122
- name,
123
- path,
124
- isInitialised: false,
125
- actions: meta.actions,
126
- instance: inject(stateClass),
127
- defaults: cloneDefaults(meta.defaults)
128
- };
129
- // ensure our store hasn't already been added
130
- // but don't throw since it could be lazy
131
- // loaded from different paths
132
- if (!this.hasBeenMountedAndBootstrapped(name, path)) {
133
- bootstrappedStores.push(stateMap);
134
- }
135
- this._states.push(stateMap);
136
- this.hydrateActionMetasMap(stateMap);
137
- }
138
- return bootstrappedStores;
139
- }
140
- /**
141
- * Add a set of states to the store and return the defaults
142
- */
143
- addAndReturnDefaults(stateClasses) {
144
- const classes = stateClasses || [];
145
- const mappedStores = this.add(classes);
146
- const defaults = mappedStores.reduce((result, mappedStore) => setValue(result, mappedStore.path, mappedStore.defaults), {});
147
- return { defaults, states: mappedStores };
148
- }
149
- connectActionHandlers() {
150
- this._actionsSubscription = this._actions
151
- .pipe(filter((ctx) => ctx.status === "DISPATCHED" /* ActionStatus.Dispatched */), mergeMap(ctx => {
152
- const action = ctx.action;
153
- return this.invokeActions(action).pipe(map(() => ({ action, status: "SUCCESSFUL" /* ActionStatus.Successful */ })), defaultIfEmpty({ action, status: "CANCELED" /* ActionStatus.Canceled */ }), catchError(error => {
154
- const ngxsUnhandledErrorHandler = (this._ngxsUnhandledErrorHandler ||=
155
- this._injector.get(NgxsUnhandledErrorHandler));
156
- const handleableError = assignUnhandledCallback(error, () => ngxsUnhandledErrorHandler.handleError(error, { action }));
157
- return of({
158
- action,
159
- status: "ERRORED" /* ActionStatus.Errored */,
160
- error: handleableError
161
- });
162
- }));
163
- }))
164
- .subscribe(ctx => this._actionResults.next(ctx));
165
- }
166
- /**
167
- * Invoke actions on the states.
168
- */
169
- invokeActions(action) {
170
- const type = getActionTypeFromInstance(action);
171
- const results = [];
172
- // Determines whether the dispatched action has been handled, this is assigned
173
- // to `true` within the below `for` loop if any `actionMetas` has been found.
174
- let actionHasBeenHandled = false;
175
- const actionHandlers = this._actionRegistry.get(type);
176
- if (actionHandlers) {
177
- for (const actionHandler of actionHandlers) {
178
- let result;
179
- try {
180
- result = actionHandler(action);
181
- }
182
- catch (e) {
183
- result = throwError(() => e);
184
- }
185
- results.push(result);
186
- actionHasBeenHandled = true;
187
- }
188
- }
189
- // The `NgxsUnhandledActionsLogger` is a tree-shakable class which functions
190
- // only during development.
191
- if (typeof ngDevMode !== 'undefined' && ngDevMode && !actionHasBeenHandled) {
192
- const unhandledActionsLogger = this._injector.get(NgxsUnhandledActionsLogger, null);
193
- // The `NgxsUnhandledActionsLogger` will not be resolved by the injector if the
194
- // `NgxsDevelopmentModule` is not provided. It's enough to check whether the `injector.get`
195
- // didn't return `null` so we may ensure the module has been imported.
196
- unhandledActionsLogger?.warn(action);
197
- }
198
- if (!results.length) {
199
- results.push(of(undefined));
200
- }
201
- return forkJoin(results);
202
- }
203
- addToStatesMap(stateClasses) {
204
- const newStates = [];
205
- const statesMap = this._statesByName;
206
- for (const stateClass of stateClasses) {
207
- const stateName = ɵgetStoreMetadata(stateClass).name;
208
- if (typeof ngDevMode !== 'undefined' && ngDevMode) {
209
- ensureStateNameIsUnique(stateName, stateClass, statesMap);
210
- }
211
- const unmountedState = !statesMap[stateName];
212
- if (unmountedState) {
213
- newStates.push(stateClass);
214
- statesMap[stateName] = stateClass;
215
- }
216
- }
217
- return { newStates };
218
- }
219
- addRuntimeInfoToMeta(meta, path) {
220
- this._statePaths[meta.name] = path;
221
- // TODO: versions after v3 - we plan to get rid of the `path` property because it is non-deterministic
222
- // we can do this when we get rid of the incorrectly exposed getStoreMetadata
223
- // We will need to come up with an alternative to what was exposed in v3 because this is used by many plugins
224
- meta.path = path;
225
- }
226
- hasBeenMountedAndBootstrapped(name, path) {
227
- const valueIsBootstrappedInInitialState = getValue(this._initialState, path) !== undefined;
228
- // This checks whether a state has been already added to the global graph and
229
- // its lifecycle is in 'bootstrapped' state.
230
- return this._statesByName[name] && valueIsBootstrappedInInitialState;
231
- }
232
- hydrateActionMetasMap({ path, actions, instance }) {
233
- const { dispatched$ } = this._actions;
234
- for (const actionType of Object.keys(actions)) {
235
- const actionHandlers = actions[actionType].map(actionMeta => {
236
- const cancelable = !!actionMeta.options.cancelUncompleted;
237
- return (action) => {
238
- const stateContext = this._stateContextFactory.createStateContext(path);
239
- let result = instance[actionMeta.fn](stateContext, action);
240
- // We need to use `isPromise` instead of checking whether
241
- // `result instanceof Promise`. In zone.js patched environments, `global.Promise`
242
- // is the `ZoneAwarePromise`. Some APIs, which are likely not patched by zone.js
243
- // for certain reasons, might not work with `instanceof`. For instance, the dynamic
244
- // import returns a native promise (not a `ZoneAwarePromise`), causing this check to
245
- // be falsy.
246
- if (ɵisPromise(result)) {
247
- result = from(result);
248
- }
249
- if (isObservable(result)) {
250
- result = result.pipe(mergeMap((value) => {
251
- if (ɵisPromise(value)) {
252
- return from(value);
253
- }
254
- else if (isObservable(value)) {
255
- return value;
256
- }
257
- else {
258
- return of(value);
259
- }
260
- }),
261
- // If this observable has completed without emitting any values,
262
- // we wouldn't want to complete the entire chain of actions.
263
- // If any observable completes, then the action will be canceled.
264
- // For instance, if any action handler had a statement like
265
- // `handler(ctx) { return EMPTY; }`, then the action would be canceled.
266
- // See https://github.com/ngxs/store/issues/1568
267
- // Note that we actually don't care about the return type; we only care
268
- // about emission, and thus `undefined` is applicable by the framework.
269
- defaultIfEmpty(undefined));
270
- if (cancelable) {
271
- const notifier$ = dispatched$.pipe(ofActionDispatched(action));
272
- result = result.pipe(takeUntil(notifier$));
273
- }
274
- result = result.pipe(
275
- // Note that we use the `finalize` operator only when the action handler
276
- // returns an observable. If the action handler is synchronous, we do not
277
- // need to set the state context functions to `noop`, as the absence of a
278
- // return value indicates no asynchronous functionality. If the handler's
279
- // result is unsubscribed (either because the observable has completed or it
280
- // was unsubscribed by `takeUntil` due to a new action being dispatched),
281
- // we prevent writing to the state context.
282
- finalize(() => {
283
- stateContext.setState = noop;
284
- stateContext.patchState = noop;
285
- }));
286
- }
287
- else {
288
- // If the action handler is synchronous and returns nothing (`void`), we
289
- // still have to convert the result to a synchronous observable.
290
- result = of(undefined);
291
- }
292
- return result;
293
- };
294
- });
295
- for (const actionHandler of actionHandlers) {
296
- this._actionRegistry.register(actionType, actionHandler);
297
- }
298
- }
299
- }
300
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: StateFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
301
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: StateFactory, providedIn: 'root' }); }
302
- }
303
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: StateFactory, decorators: [{
304
- type: Injectable,
305
- args: [{ providedIn: 'root' }]
306
- }] });
307
- // This is used to replace `setState` and `patchState` once the action
308
- // handler has been unsubscribed or completed, to prevent writing
309
- // to the state context.
310
- function noop() { }
311
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL3NyYy9pbnRlcm5hbC9zdGF0ZS1mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFhLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUNMLFFBQVEsRUFDUixTQUFTLEVBR1QsaUJBQWlCLEVBRWpCLG9CQUFvQixFQUdyQixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEYsT0FBTyxFQUNMLFFBQVEsRUFDUixJQUFJLEVBQ0osWUFBWSxFQUNaLEVBQUUsRUFFRixVQUFVLEVBQ1YsVUFBVSxFQUNWLGNBQWMsRUFDZCxNQUFNLEVBQ04sR0FBRyxFQUNILFFBQVEsRUFDUixTQUFTLEVBQ1QsUUFBUSxFQUVULE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN4QyxPQUFPLEVBQ0wsVUFBVSxFQUNWLGtCQUFrQixFQUVsQixXQUFXLEVBQ1gsWUFBWSxFQUlaLGVBQWUsRUFDaEIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUErQixlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsMEJBQTBC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RSw0RUFBNEU7d0JBQzVFLHlFQUF5RTt3QkFDekUsMkNBQTJDO3dCQUMzQyxRQUFRLENBQUMsR0FBRyxFQUFFOzRCQUNaLFlBQVksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDOzRCQUM3QixZQUFZLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQzt3QkFDakMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztvQkFDSixDQUFDO3lCQUFNLENBQUM7d0JBQ04sd0VBQXdFO3dCQUN4RSxnRUFBZ0U7d0JBQ2hFLE1BQU0sR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBQ3pCLENBQUM7b0JBRUQsT0FBTyxNQUFNLENBQUM7Z0JBQ2hCLENBQUMsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1lBRUgsS0FBSyxNQUFNLGFBQWEsSUFBSSxjQUFjLEVBQUUsQ0FBQztnQkFDM0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1lBQzNELENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztpSUExVFUsWUFBWTtxSUFBWixZQUFZLGNBREMsTUFBTTs7MkZBQ25CLFlBQVk7a0JBRHhCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOztBQThUbEMsc0VBQXNFO0FBQ3RFLGlFQUFpRTtBQUNqRSx3QkFBd0I7QUFDeEIsU0FBUyxJQUFJLEtBQUksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yLCBPbkRlc3Ryb3ksIGluamVjdCwgybVpc1Byb21pc2UgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIMm1bWVtb2l6ZSxcbiAgybVNRVRBX0tFWSxcbiAgybVQbGFpbk9iamVjdE9mLFxuICDJtU1ldGFEYXRhTW9kZWwsXG4gIMm1Z2V0U3RvcmVNZXRhZGF0YSxcbiAgybVTdGF0ZUNsYXNzSW50ZXJuYWwsXG4gIMm1SU5JVElBTF9TVEFURV9UT0tFTixcbiAgybVTaGFyZWRTZWxlY3Rvck9wdGlvbnMsXG4gIMm1UnVudGltZVNlbGVjdG9yQ29udGV4dFxufSBmcm9tICdAbmd4cy9zdG9yZS9pbnRlcm5hbHMnO1xuaW1wb3J0IHsgZ2V0QWN0aW9uVHlwZUZyb21JbnN0YW5jZSwgZ2V0VmFsdWUsIHNldFZhbHVlIH0gZnJvbSAnQG5neHMvc3RvcmUvcGx1Z2lucyc7XG5pbXBvcnQge1xuICBmb3JrSm9pbixcbiAgZnJvbSxcbiAgaXNPYnNlcnZhYmxlLFxuICBvZixcbiAgU3Vic2NyaXB0aW9uLFxuICB0aHJvd0Vycm9yLFxuICBjYXRjaEVycm9yLFxuICBkZWZhdWx0SWZFbXB0eSxcbiAgZmlsdGVyLFxuICBtYXAsXG4gIG1lcmdlTWFwLFxuICB0YWtlVW50aWwsXG4gIGZpbmFsaXplLFxuICBPYnNlcnZhYmxlXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBOZ3hzQ29uZmlnIH0gZnJvbSAnLi4vc3ltYm9scyc7XG5pbXBvcnQge1xuICBidWlsZEdyYXBoLFxuICBmaW5kRnVsbFBhcmVudFBhdGgsXG4gIE1hcHBlZFN0b3JlLFxuICBuYW1lVG9TdGF0ZSxcbiAgybVQUk9QX0dFVFRFUixcbiAgU3RhdGVLZXlHcmFwaCxcbiAgU3RhdGVzQW5kRGVmYXVsdHMsXG4gIFN0YXRlc0J5TmFtZSxcbiAgdG9wb2xvZ2ljYWxTb3J0XG59IGZyb20gJy4vaW50ZXJuYWxzJztcbmltcG9ydCB7IE5neHNBY3Rpb25SZWdpc3RyeSB9IGZyb20gJy4uL2FjdGlvbnMvYWN0aW9uLXJlZ2lzdHJ5JztcbmltcG9ydCB7IEFjdGlvbkNvbnRleHQsIEFjdGlvblN0YXR1cywgSW50ZXJuYWxBY3Rpb25zIH0gZnJvbSAnLi4vYWN0aW9ucy1zdHJlYW0nO1xuaW1wb3J0IHsgSW50ZXJuYWxEaXNwYXRjaGVkQWN0aW9uUmVzdWx0cyB9IGZyb20gJy4uL2ludGVybmFsL2Rpc3BhdGNoZXInO1xuaW1wb3J0IHsgZW5zdXJlU3RhdGVOYW1lSXNVbmlxdWUsIGVuc3VyZVN0YXRlc0FyZURlY29yYXRlZCB9IGZyb20gJy4uL3V0aWxzL3N0b3JlLXZhbGlkYXRvcnMnO1xuaW1wb3J0IHsgZW5zdXJlU3RhdGVDbGFzc0lzSW5qZWN0YWJsZSB9IGZyb20gJy4uL2l2eS9pdnktZW5hYmxlZC1pbi1kZXYtbW9kZSc7XG5pbXBvcnQgeyBOZ3hzVW5oYW5kbGVkQWN0aW9uc0xvZ2dlciB9IGZyb20gJy4uL2Rldi1mZWF0dXJlcy9uZ3hzLXVuaGFuZGxlZC1hY3Rpb25zLWxvZ2dlcic7XG5pbXBvcnQgeyBOZ3hzVW5oYW5kbGVkRXJyb3JIYW5kbGVyIH0gZnJvbSAnLi4vbmd4cy11bmhhbmRsZWQtZXJyb3ItaGFuZGxlcic7XG5pbXBvcnQgeyBhc3NpZ25VbmhhbmRsZWRDYWxsYmFjayB9IGZyb20gJy4vdW5oYW5kbGVkLXJ4anMtZXJyb3ItY2FsbGJhY2snO1xuaW1wb3J0IHsgU3RhdGVDb250ZXh0RmFjdG9yeSB9IGZyb20gJy4vc3RhdGUtY29udGV4dC1mYWN0b3J5JztcbmltcG9ydCB7IG9mQWN0aW9uRGlzcGF0Y2hlZCB9IGZyb20gJy4uL29wZXJhdG9ycy9vZi1hY3Rpb24nO1xuXG5mdW5jdGlvbiBjbG9uZURlZmF1bHRzKGRlZmF1bHRzOiBhbnkpOiBhbnkge1xuICBsZXQgdmFsdWUgPSBkZWZhdWx0cyA9PT0gdW5kZWZpbmVkID8ge30gOiBkZWZhdWx0cztcblxuICBpZiAoZGVmYXVsdHMpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShkZWZhdWx0cykpIHtcbiAgICAgIHZhbHVlID0gZGVmYXVsdHMuc2xpY2UoKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBkZWZhdWx0cyA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHZhbHVlID0geyAuLi5kZWZhdWx0cyB9O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2YWx1ZTtcbn1cblxuLyoqXG4gKiBUaGUgYFN0YXRlRmFjdG9yeWAgY2xhc3MgYWRkcyByb290IGFuZCBmZWF0dXJlIHN0YXRlcyB0byB0aGUgZ3JhcGguXG4gKiBUaGlzIGV4dHJhY3RzIHN0YXRlIG5hbWVzIGZyb20gc3RhdGUgY2xhc3NlcywgY2hlY2tzIGlmIHRoZXkgYWxyZWFkeVxuICogZXhpc3QgaW4gdGhlIGdsb2JhbCBncmFwaCwgdGhyb3dzIGVycm9ycyBpZiB0aGVpciBuYW1lcyBhcmUgaW52YWxpZCwgZXRjLlxuICpcbiAqIFJvb3QgYW5kIGZlYXR1cmUgaW5pdGlhbGl6ZXJzIGNhbGwgYGFkZEFuZFJldHVybkRlZmF1bHRzKClgIHRvIGFkZCB0aG9zZSBzdGF0ZXNcbiAqIHRvIHRoZSBnbG9iYWwgZ3JhcGguIFNpbmNlIGBhZGRBbmRSZXR1cm5EZWZhdWx0c2AgcnVucyB3aXRoaW4gdGhlIGluamVjdGlvblxuICogY29udGV4dCAod2hpY2ggbWlnaHQgYmUgdGhlIHJvb3QgaW5qZWN0b3Igb3IgYSBmZWF0dXJlIGluamVjdG9yKSwgd2UgY2FuXG4gKiByZXRyaWV2ZSBhbiBpbnN0YW5jZSBvZiB0aGUgc3RhdGUgY2xhc3MgdXNpbmcgYGluamVjdChTdGF0ZUNsYXNzKWAuXG4gKiBAaWdub3JlXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgU3RhdGVGYWN0b3J5IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9jb25maWcgPSBpbmplY3QoTmd4c0NvbmZpZyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0YXRlQ29udGV4dEZhY3RvcnkgPSBpbmplY3QoU3RhdGVDb250ZXh0RmFjdG9yeSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2FjdGlvbnMgPSBpbmplY3QoSW50ZXJuYWxBY3Rpb25zKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYWN0aW9uUmVzdWx0cyA9IGluamVjdChJbnRlcm5hbERpc3BhdGNoZWRBY3Rpb25SZXN1bHRzKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfaW5pdGlhbFN0YXRlID0gaW5qZWN0KMm1SU5JVElBTF9TVEFURV9UT0tFTiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBfYWN0aW9uUmVnaXN0cnkgPSBpbmplY3QoTmd4c0FjdGlvblJlZ2lzdHJ5KTtcbiAgcHJpdmF0ZSByZWFkb25seSBfcHJvcEdldHRlciA9IGluamVjdCjJtVBST1BfR0VUVEVSKTtcblxuICBwcml2YXRlIF9hY3Rpb25zU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIF9uZ3hzVW5oYW5kbGVkRXJyb3JIYW5kbGVyOiBOZ3hzVW5oYW5kbGVkRXJyb3JIYW5kbGVyID0gbnVsbCE7XG5cbiAgcHJpdmF0ZSBfc3RhdGVzOiBNYXBwZWRTdG9yZVtdID0gW107XG4gIHByaXZhdGUgX3N0YXRlc0J5TmFtZTogU3RhdGVzQnlOYW1lID0ge307XG4gIHByaXZhdGUgX3N0YXRlUGF0aHM6IMm1UGxhaW5PYmplY3RPZjxzdHJpbmc+ID0ge307XG5cbiAgZ2V0UnVudGltZVNlbGVjdG9yQ29udGV4dCA9IMm1bWVtb2l6ZSgoKSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby10aGlzLWFsaWFzXG4gICAgY29uc3Qgc3RhdGVGYWN0b3J5ID0gdGhpcztcbiAgICBjb25zdCBwcm9wR2V0dGVyID0gc3RhdGVGYWN0b3J5Ll9wcm9wR2V0dGVyO1xuXG4gICAgZnVuY3Rpb24gcmVzb2x2ZUdldHRlcihrZXk6IHN0cmluZykge1xuICAgICAgY29uc3QgcGF0aCA9IHN0YXRlRmFjdG9yeS5fc3RhdGVQYXRoc1trZXldO1xuICAgICAgcmV0dXJuIHBhdGggPyBwcm9wR2V0dGVyKHBhdGguc3BsaXQoJy4nKSkgOiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbnRleHQ6IMm1UnVudGltZVNlbGVjdG9yQ29udGV4dCA9IHtcbiAgICAgIGdldFN0YXRlR2V0dGVyKGtleTogc3RyaW5nKSB7XG4gICAgICAgIC8vIFVzZSBgQF9fSU5MSU5FX19gIGFubm90YXRpb24gdG8gZm9yY2VseSBpbmxpbmUgYHJlc29sdmVHZXR0ZXJgLlxuICAgICAgICAvLyBUaGlzIGlzIGEgVGVyc2VyIGFubm90YXRpb24sIHdoaWNoIHdpbGwgZnVuY3Rpb24gb25seSBpbiB0aGUgcHJvZHVjdGlvbiBtb2RlLlxuICAgICAgICBsZXQgZ2V0dGVyID0gLypAX19JTkxJTkVfXyovIHJlc29sdmVHZXR0ZXIoa2V5KTtcbiAgICAgICAgaWYgKGdldHRlcikge1xuICAgICAgICAgIHJldHVybiBnZXR0ZXI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICguLi5hcmdzKSA9PiB7XG4gICAgICAgICAgLy8gTGF0ZSBsb2FkZWQgZ2V0dGVyXG4gICAgICAgICAgaWYgKCFnZXR0ZXIpIHtcbiAgICAgICAgICAgIGdldHRlciA9IC8qQF9fSU5MSU5FX18qLyByZXNvbHZlR2V0dGVyKGtleSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBnZXR0ZXIgPyBnZXR0ZXIoLi4uYXJncykgOiB1bmRlZmluZWQ7XG4gICAgICAgIH07XG4gICAgICB9LFxuICAgICAgZ2V0U2VsZWN0b3JPcHRpb25zKGxvY2FsT3B0aW9ucz86IMm1U2hhcmVkU2VsZWN0b3JPcHRpb25zKSB7XG4gICAgICAgIGNvbnN0IGdsb2JhbFNlbGVjdG9yT3B0aW9ucyA9IHN0YXRlRmFjdG9yeS5fY29uZmlnLnNlbGVjdG9yT3B0aW9ucztcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5nbG9iYWxTZWxlY3Rvck9wdGlvbnMsXG4gICAgICAgICAgLi4uKGxvY2FsT3B0aW9ucyB8fCB7fSlcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHJldHVybiBjb250ZXh0O1xuICB9KTtcblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9hY3Rpb25zU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIG5ldyBzdGF0ZSB0byB0aGUgZ2xvYmFsIGRlZnMuXG4gICAqL1xuICBwcml2YXRlIGFkZChzdGF0ZUNsYXNzZXM6IMm1U3RhdGVDbGFzc0ludGVybmFsW10pOiBNYXBwZWRTdG9yZVtdIHtcbiAgICBpZiAodHlwZW9mIG5nRGV2TW9kZSAhPT0gJ3VuZGVmaW5lZCcgJiYgbmdEZXZNb2RlKSB7XG4gICAgICBlbnN1cmVTdGF0ZXNBcmVEZWNvcmF0ZWQoc3RhdGVDbGFzc2VzKTtcbiAgICB9XG5cbiAgICBjb25zdCB7IG5ld1N0YXRlcyB9ID0gdGhpcy5hZGRUb1N0YXRlc01hcChzdGF0ZUNsYXNzZXMpO1xuICAgIGlmICghbmV3U3RhdGVzLmxlbmd0aCkgcmV0dXJuIFtdO1xuXG4gICAgY29uc3Qgc3RhdGVHcmFwaDogU3RhdGVLZXlHcmFwaCA9IGJ1aWxkR3JhcGgobmV3U3RhdGVzKTtcbiAgICBjb25zdCBzb3J0ZWRTdGF0ZXM6IHN0cmluZ1tdID0gdG9wb2xvZ2ljYWxTb3J0KHN0YXRlR3JhcGgpO1xuICAgIGNvbnN0IHBhdGhzOiDJtVBsYWluT2JqZWN0T2Y8c3RyaW5nPiA9IGZpbmRGdWxsUGFyZW50UGF0aChzdGF0ZUdyYXBoKTtcbiAgICBjb25zdCBuYW1lR3JhcGg6IMm1UGxhaW5PYmplY3RPZjzJtVN0YXRlQ2xhc3NJbnRlcm5hbD4gPSBuYW1lVG9TdGF0ZShuZXdTdGF0ZXMpO1xuICAgIGNvbnN0IGJvb3RzdHJhcHBlZFN0b3JlczogTWFwcGVkU3RvcmVbXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBuYW1lIG9mIHNvcnRlZFN0YXRlcykge1xuICAgICAgY29uc3Qgc3RhdGVDbGFzczogybVTdGF0ZUNsYXNzSW50ZXJuYWwgPSBuYW1lR3JhcGhbbmFtZV07XG4gICAgICBjb25zdCBwYXRoOiBzdHJpbmcgPSBwYXRoc1tuYW1lXTtcbiAgICAgIGNvbnN0IG1ldGE6IMm1TWV0YURhdGFNb2RlbCA9IHN0YXRlQ2xhc3NbybVNRVRBX0tFWV0hO1xuXG4gICAgICB0aGlzLmFkZFJ1bnRpbWVJbmZvVG9NZXRhKG1ldGEsIHBhdGgpO1xuXG4gICAgICAvLyBOb3RlOiBwcmV2aW91c2x5IHdlIGNhbGxlZCBgZW5zdXJlU3RhdGVDbGFzc0lzSW5qZWN0YWJsZWAgd2l0aGluIHRoZVxuICAgICAgLy8gYFN0YXRlYCBkZWNvcmF0b3IuIFRoaXMgY2hlY2sgaXMgbW92ZWQgaGVyZSBiZWNhdXNlIHRoZSBgybVwcm92YCBwcm9wZXJ0eVxuICAgICAgLy8gd2lsbCBub3QgZXhpc3Qgb24gdGhlIGNsYXNzIGluIEpJVCBtb2RlIChiZWNhdXNlIGl0J3Mgc2V0IGFzeW5jaHJvbm91c2x5XG4gICAgICAvLyBkdXJpbmcgSklUIGNvbXBpbGF0aW9uIHRocm91Z2ggYE9iamVjdC5kZWZpbmVQcm9wZXJ0eWApLlxuICAgICAgaWYgKHR5cGVvZiBuZ0Rldk1vZGUgIT09ICd1bmRlZmluZWQnICYmIG5nRGV2TW9kZSkge1xuICAgICAgICBlbnN1cmVTdGF0ZUNsYXNzSXNJbmplY3RhYmxlKHN0YXRlQ2xhc3MpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBzdGF0ZU1hcDogTWFwcGVkU3RvcmUgPSB7XG4gICAgICAgIG5hbWUsXG4gICAgICAgIHBhdGgsXG4gICAgICAgIGlzSW5pdGlhbGlzZWQ6IGZhbHNlLFxuICAgICAgICBhY3Rpb25zOiBtZXRhLmFjdGlvbnMsXG4gICAgICAgIGluc3RhbmNlOiBpbmplY3Qoc3RhdGVDbGFzcyksXG4gICAgICAgIGRlZmF1bHRzOiBjbG9uZURlZmF1bHRzKG1ldGEuZGVmYXVsdHMpXG4gICAgICB9O1xuXG4gICAgICAvLyBlbnN1cmUgb3VyIHN0b3JlIGhhc24ndCBhbHJlYWR5IGJlZW4gYWRkZWRcbiAgICAgIC8vIGJ1dCBkb24ndCB0aHJvdyBzaW5jZSBpdCBjb3VsZCBiZSBsYXp5XG4gICAgICAvLyBsb2FkZWQgZnJvbSBkaWZmZXJlbnQgcGF0aHNcbiAgICAgIGlmICghdGhpcy5oYXNCZWVuTW91bnRlZEFuZEJvb3RzdHJhcHBlZChuYW1lLCBwYXRoKSkge1xuICAgICAgICBib290c3RyYXBwZWRTdG9yZXMucHVzaChzdGF0ZU1hcCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuX3N0YXRlcy5wdXNoKHN0YXRlTWFwKTtcbiAgICAgIHRoaXMuaHlkcmF0ZUFjdGlvbk1ldGFzTWFwKHN0YXRlTWFwKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYm9vdHN0cmFwcGVkU3RvcmVzO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIHNldCBvZiBzdGF0ZXMgdG8gdGhlIHN0b3JlIGFuZCByZXR1cm4gdGhlIGRlZmF1bHRzXG4gICAqL1xuICBhZGRBbmRSZXR1cm5EZWZhdWx0cyhzdGF0ZUNsYXNzZXM6IMm1U3RhdGVDbGFzc0ludGVybmFsW10pOiBTdGF0ZXNBbmREZWZhdWx0cyB7XG4gICAgY29uc3QgY2xhc3NlczogybVTdGF0ZUNsYXNzSW50ZXJuYWxbXSA9IHN0YXRlQ2xhc3NlcyB8fCBbXTtcblxuICAgIGNvbnN0IG1hcHBlZFN0b3JlczogTWFwcGVkU3RvcmVbXSA9IHRoaXMuYWRkKGNsYXNzZXMpO1xuICAgIGNvbnN0IGRlZmF1bHRzID0gbWFwcGVkU3RvcmVzLnJlZHVjZShcbiAgICAgIChyZXN1bHQ6IGFueSwgbWFwcGVkU3RvcmU6IE1hcHBlZFN0b3JlKSA9PlxuICAgICAgICBzZXRWYWx1ZShyZXN1bHQsIG1hcHBlZFN0b3JlLnBhdGgsIG1hcHBlZFN0b3JlLmRlZmF1bHRzKSxcbiAgICAgIHt9XG4gICAgKTtcbiAgICByZXR1cm4geyBkZWZhdWx0cywgc3RhdGVzOiBtYXBwZWRTdG9yZXMgfTtcbiAgfVxuXG4gIGNvbm5lY3RBY3Rpb25IYW5kbGVycygpOiB2b2lkIHtcbiAgICB0aGlzLl9hY3Rpb25zU3Vic2NyaXB0aW9uID0gdGhpcy5fYWN0aW9uc1xuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoY3R4OiBBY3Rpb25Db250ZXh0KSA9PiBjdHguc3RhdHVzID09PSBBY3Rpb25TdGF0dXMuRGlzcGF0Y2hlZCksXG4gICAgICAgIG1lcmdlTWFwKGN0eCA9PiB7XG4gICAgICAgICAgY29uc3QgYWN0aW9uOiBhbnkgPSBjdHguYWN0aW9uO1xuICAgICAgICAgIHJldHVybiB0aGlzLmludm9rZUFjdGlvbnMoYWN0aW9uKS5waXBlKFxuICAgICAgICAgICAgbWFwKCgpID0+IDxBY3Rpb25Db250ZXh0PnsgYWN0aW9uLCBzdGF0dXM6IEFjdGlvblN0YXR1cy5TdWNjZXNzZnVsIH0pLFxuICAgICAgICAgICAgZGVmYXVsdElmRW1wdHkoPEFjdGlvbkNvbnRleHQ+eyBhY3Rpb24sIHN0YXR1czogQWN0aW9uU3RhdHVzLkNhbmNlbGVkIH0pLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IG5neHNVbmhhbmRsZWRFcnJvckhhbmRsZXIgPSAodGhpcy5fbmd4c1VuaGFuZGxlZEVycm9ySGFuZGxlciB8fD1cbiAgICAgICAgICAgICAgICB0aGlzLl9pbmplY3Rvci5nZXQoTmd4c1VuaGFuZGxlZEVycm9ySGFuZGxlcikpO1xuICAgICAgICAgICAgICBjb25zdCBoYW5kbGVhYmxlRXJyb3IgPSBhc3NpZ25VbmhhbmRsZWRDYWxsYmFjayhlcnJvciwgKCkgPT5cbiAgICAgICAgICAgICAgICBuZ3hzVW5oYW5kbGVkRXJyb3JIYW5kbGVyLmhhbmRsZUVycm9yKGVycm9yLCB7IGFjdGlvbiB9KVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICByZXR1cm4gb2YoPEFjdGlvbkNvbnRleHQ+e1xuICAgICAgICAgICAgICAgIGFjdGlvbixcbiAgICAgICAgICAgICAgICBzdGF0dXM6IEFjdGlvblN0YXR1cy5FcnJvcmVkLFxuICAgICAgICAgICAgICAgIGVycm9yOiBoYW5kbGVhYmxlRXJyb3JcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKGN0eCA9PiB0aGlzLl9hY3Rpb25SZXN1bHRzLm5leHQoY3R4KSk7XG4gIH1cblxuICAvKipcbiAgICogSW52b2tlIGFjdGlvbnMgb24gdGhlIHN0YXRlcy5cbiAgICovXG4gIHByaXZhdGUgaW52b2tlQWN0aW9ucyhhY3Rpb246IGFueSk6IE9ic2VydmFibGU8dW5rbm93bltdPiB7XG4gICAgY29uc3QgdHlwZSA9IGdldEFjdGlvblR5cGVGcm9tSW5zdGFuY2UoYWN0aW9uKSE7XG4gICAgY29uc3QgcmVzdWx0czogT2JzZXJ2YWJsZTx1bmtub3duPltdID0gW107XG5cbiAgICAvLyBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIGRpc3BhdGNoZWQgYWN0aW9uIGhhcyBiZWVuIGhhbmRsZWQsIHRoaXMgaXMgYXNzaWduZWRcbiAgICAvLyB0byBgdHJ1ZWAgd2l0aGluIHRoZSBiZWxvdyBgZm9yYCBsb29wIGlmIGFueSBgYWN0aW9uTWV0YXNgIGhhcyBiZWVuIGZvdW5kLlxuICAgIGxldCBhY3Rpb25IYXNCZWVuSGFuZGxlZCA9IGZhbHNlO1xuXG4gICAgY29uc3QgYWN0aW9uSGFuZGxlcnMgPSB0aGlzLl9hY3Rpb25SZWdpc3RyeS5nZXQodHlwZSk7XG5cbiAgICBpZiAoYWN0aW9uSGFuZGxlcnMpIHtcbiAgICAgIGZvciAoY29uc3QgYWN0aW9uSGFuZGxlciBvZiBhY3Rpb25IYW5kbGVycykge1xuICAgICAgICBsZXQgcmVzdWx0O1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmVzdWx0ID0gYWN0aW9uSGFuZGxlcihhY3Rpb24pO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgcmVzdWx0ID0gdGhyb3dFcnJvcigoKSA9PiBlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJlc3VsdHMucHVzaChyZXN1bHQpO1xuXG4gICAgICAgIGFjdGlvbkhhc0JlZW5IYW5kbGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBUaGUgYE5neHNVbmhhbmRsZWRBY3Rpb25zTG9nZ2VyYCBpcyBhIHRyZWUtc2hha2FibGUgY2xhc3Mgd2hpY2ggZnVuY3Rpb25zXG4gICAgLy8gb25seSBkdXJpbmcgZGV2ZWxvcG1lbnQuXG4gICAgaWYgKHR5cGVvZiBuZ0Rldk1vZGUgIT09ICd1bmRlZmluZWQnICYmIG5nRGV2TW9kZSAmJiAhYWN0aW9uSGFzQmVlbkhhbmRsZWQpIHtcbiAgICAgIGNvbnN0IHVuaGFuZGxlZEFjdGlvbnNMb2dnZXIgPSB0aGlzLl9pbmplY3Rvci5nZXQoTmd4c1VuaGFuZGxlZEFjdGlvbnNMb2dnZXIsIG51bGwpO1xuICAgICAgLy8gVGhlIGBOZ3hzVW5oYW5kbGVkQWN0aW9uc0xvZ2dlcmAgd2lsbCBub3QgYmUgcmVzb2x2ZWQgYnkgdGhlIGluamVjdG9yIGlmIHRoZVxuICAgICAgLy8gYE5neHNEZXZlbG9wbWVudE1vZHVsZWAgaXMgbm90IHByb3ZpZGVkLiBJdCdzIGVub3VnaCB0byBjaGVjayB3aGV0aGVyIHRoZSBgaW5qZWN0b3IuZ2V0YFxuICAgICAgLy8gZGlkbid0IHJldHVybiBgbnVsbGAgc28gd2UgbWF5IGVuc3VyZSB0aGUgbW9kdWxlIGhhcyBiZWVuIGltcG9ydGVkLlxuICAgICAgdW5oYW5kbGVkQWN0aW9uc0xvZ2dlcj8ud2FybihhY3Rpb24pO1xuICAgIH1cblxuICAgIGlmICghcmVzdWx0cy5sZW5ndGgpIHtcbiAgICAgIHJlc3VsdHMucHVzaChvZih1bmRlZmluZWQpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZm9ya0pvaW4ocmVzdWx0cyk7XG4gIH1cblxuICBwcml2YXRlIGFkZFRvU3RhdGVzTWFwKHN0YXRlQ2xhc3NlczogybVTdGF0ZUNsYXNzSW50ZXJuYWxbXSk6IHtcbiAgICBuZXdTdGF0ZXM6IMm1U3RhdGVDbGFzc0ludGVybmFsW107XG4gIH0ge1xuICAgIGNvbnN0IG5ld1N0YXRlczogybVTdGF0ZUNsYXNzSW50ZXJuYWxbXSA9IFtdO1xuICAgIGNvbnN0IHN0YXRlc01hcDogU3RhdGVzQnlOYW1lID0gdGhpcy5fc3RhdGVzQnlOYW1lO1xuXG4gICAgZm9yIChjb25zdCBzdGF0ZUNsYXNzIG9mIHN0YXRlQ2xhc3Nlcykge1xuICAgICAgY29uc3Qgc3RhdGVOYW1lID0gybVnZXRTdG9yZU1ldGFkYXRhKHN0YXRlQ2xhc3MpLm5hbWUhO1xuICAgICAgaWYgKHR5cGVvZiBuZ0Rldk1vZGUgIT09ICd1bmRlZmluZWQnICYmIG5nRGV2TW9kZSkge1xuICAgICAgICBlbnN1cmVTdGF0ZU5hbWVJc1VuaXF1ZShzdGF0ZU5hbWUsIHN0YXRlQ2xhc3MsIHN0YXRlc01hcCk7XG4gICAgICB9XG4gICAgICBjb25zdCB1bm1vdW50ZWRTdGF0ZSA9ICFzdGF0ZXNNYXBbc3RhdGVOYW1lXTtcbiAgICAgIGlmICh1bm1vdW50ZWRTdGF0ZSkge1xuICAgICAgICBuZXdTdGF0ZXMucHVzaChzdGF0ZUNsYXNzKTtcbiAgICAgICAgc3RhdGVzTWFwW3N0YXRlTmFtZV0gPSBzdGF0ZUNsYXNzO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7IG5ld1N0YXRlcyB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRSdW50aW1lSW5mb1RvTWV0YShtZXRhOiDJtU1ldGFEYXRhTW9kZWwsIHBhdGg6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX3N0YXRlUGF0aHNbbWV0YS5uYW1lIV0gPSBwYXRoO1xuICAgIC8vIFRPRE86IHZlcnNpb25zIGFmdGVyIHYzIC0gd2UgcGxhbiB0byBnZXQgcmlkIG9mIHRoZSBgcGF0aGAgcHJvcGVydHkgYmVjYXVzZSBpdCBpcyBub24tZGV0ZXJtaW5pc3RpY1xuICAgIC8vIHdlIGNhbiBkbyB0aGlzIHdoZW4gd2UgZ2V0IHJpZCBvZiB0aGUgaW5jb3JyZWN0bHkgZXhwb3NlZCBnZXRTdG9yZU1ldGFkYXRhXG4gICAgLy8gV2Ugd2lsbCBuZWVkIHRvIGNvbWUgdXAgd2l0aCBhbiBhbHRlcm5hdGl2ZSB0byB3aGF0IHdhcyBleHBvc2VkIGluIHYzIGJlY2F1c2UgdGhpcyBpcyB1c2VkIGJ5IG1hbnkgcGx1Z2luc1xuICAgIG1ldGEucGF0aCA9IHBhdGg7XG4gIH1cblxuICBwcml2YXRlIGhhc0JlZW5Nb3VudGVkQW5kQm9vdHN0cmFwcGVkKG5hbWU6IHN0cmluZywgcGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdmFsdWVJc0Jvb3RzdHJhcHBlZEluSW5pdGlhbFN0YXRlOiBib29sZWFuID1cbiAgICAgIGdldFZhbHVlKHRoaXMuX2luaXRpYWxTdGF0ZSwgcGF0aCkgIT09IHVuZGVmaW5lZDtcbiAgICAvLyBUaGlzIGNoZWNrcyB3aGV0aGVyIGEgc3RhdGUgaGFzIGJlZW4gYWxyZWFkeSBhZGRlZCB0byB0aGUgZ2xvYmFsIGdyYXBoIGFuZFxuICAgIC8vIGl0cyBsaWZlY3ljbGUgaXMgaW4gJ2Jvb3RzdHJhcHBlZCcgc3RhdGUuXG4gICAgcmV0dXJuIHRoaXMuX3N0YXRlc0J5TmFtZVtuYW1lXSAmJiB2YWx1ZUlzQm9vdHN0cmFwcGVkSW5Jbml0aWFsU3RhdGU7XG4gIH1cblxuICBwcml2YXRlIGh5ZHJhdGVBY3Rpb25NZXRhc01hcCh7IHBhdGgsIGFjdGlvbnMsIGluc3RhbmNlIH06IE1hcHBlZFN0b3JlKTogdm9pZCB7XG4gICAgY29uc3QgeyBkaXNwYXRjaGVkJCB9ID0gdGhpcy5fYWN0aW9ucztcbiAgICBmb3IgKGNvbnN0IGFjdGlvblR5cGUgb2YgT2JqZWN0LmtleXMoYWN0aW9ucykpIHtcbiAgICAgIGNvbnN0IGFjdGlvbkhhbmRsZXJzID0gYWN0aW9uc1thY3Rpb25UeXBlXS5tYXAoYWN0aW9uTWV0YSA9PiB7XG4gICAgICAgIGNvbnN0IGNhbmNlbGFibGUgPSAhIWFjdGlvbk1ldGEub3B0aW9ucy5jYW5jZWxVbmNvbXBsZXRlZDtcblxuICAgICAgICByZXR1cm4gKGFjdGlvbjogYW55KSA9PiB7XG4gICAgICAgICAgY29uc3Qgc3RhdGVDb250ZXh0ID0gdGhpcy5fc3RhdGVDb250ZXh0RmFjdG9yeS5jcmVhdGVTdGF0ZUNvbnRleHQocGF0aCk7XG5cbiAgICAgICAgICBsZXQgcmVzdWx0ID0gaW5zdGFuY2VbYWN0aW9uTWV0YS5mbl0oc3RhdGVDb250ZXh0LCBhY3Rpb24pO1xuXG4gICAgICAgICAgLy8gV2UgbmVlZCB0byB1c2UgYGlzUHJvbWlzZWAgaW5zdGVhZCBvZiBjaGVja2luZyB3aGV0aGVyXG4gICAgICAgICAgLy8gYHJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2VgLiBJbiB6b25lLmpzIHBhdGNoZWQgZW52aXJvbm1lbnRzLCBgZ2xvYmFsLlByb21pc2VgXG4gICAgICAgICAgLy8gaXMgdGhlIGBab25lQXdhcmVQcm9taXNlYC4gU29tZSBBUElzLCB3aGljaCBhcmUgbGlrZWx5IG5vdCBwYXRjaGVkIGJ5IHpvbmUuanNcbiAgICAgICAgICAvLyBmb3IgY2VydGFpbiByZWFzb25zLCBtaWdodCBub3Qgd29yayB3aXRoIGBpbnN0YW5jZW9mYC4gRm9yIGluc3RhbmNlLCB0aGUgZHluYW1pY1xuICAgICAgICAgIC8vIGltcG9ydCByZXR1cm5zIGEgbmF0aXZlIHByb21pc2UgKG5vdCBhIGBab25lQXdhcmVQcm9taXNlYCksIGNhdXNpbmcgdGhpcyBjaGVjayB0b1xuICAgICAgICAgIC8vIGJlIGZhbHN5LlxuICAgICAgICAgIGlmICjJtWlzUHJvbWlzZShyZXN1bHQpKSB7XG4gICAgICAgICAgICByZXN1bHQgPSBmcm9tKHJlc3VsdCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGlzT2JzZXJ2YWJsZShyZXN1bHQpKSB7XG4gICAgICAgICAgICByZXN1bHQgPSByZXN1bHQucGlwZShcbiAgICAgICAgICAgICAgbWVyZ2VNYXAoKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoybVpc1Byb21pc2UodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gZnJvbSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpc09ic2VydmFibGUodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBvZih2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgLy8gSWYgdGhpcyBvYnNlcnZhYmxlIGhhcyBjb21wbGV0ZWQgd2l0aG91dCBlbWl0dGluZyBhbnkgdmFsdWVzLFxuICAgICAgICAgICAgICAvLyB3ZSB3b3VsZG4ndCB3YW50IHRvIGNvbXBsZXRlIHRoZSBlbnRpcmUgY2hhaW4gb2YgYWN0aW9ucy5cbiAgICAgICAgICAgICAgLy8gSWYgYW55IG9ic2VydmFibGUgY29tcGxldGVzLCB0aGVuIHRoZSBhY3Rpb24gd2lsbCBiZSBjYW5jZWxlZC5cbiAgICAgICAgICAgICAgLy8gRm9yIGluc3RhbmNlLCBpZiBhbnkgYWN0aW9uIGhhbmRsZXIgaGFkIGEgc3RhdGVtZW50IGxpa2VcbiAgICAgICAgICAgICAgLy8gYGhhbmRsZXIoY3R4KSB7IHJldHVybiBFTVBUWTsgfWAsIHRoZW4gdGhlIGFjdGlvbiB3b3VsZCBiZSBjYW5jZWxlZC5cbiAgICAgICAgICAgICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9uZ3hzL3N0b3JlL2lzc3Vlcy8xNTY4XG4gICAgICAgICAgICAgIC8vIE5vdGUgdGhhdCB3ZSBhY3R1YWxseSBkb24ndCBjYXJlIGFib3V0IHRoZSByZXR1cm4gdHlwZTsgd2Ugb25seSBjYXJlXG4gICAgICAgICAgICAgIC8vIGFib3V0IGVtaXNzaW9uLCBhbmQgdGh1cyBgdW5kZWZpbmVkYCBpcyBhcHBsaWNhYmxlIGJ5IHRoZSBmcmFtZXdvcmsuXG4gICAgICAgICAgICAgIGRlZmF1bHRJZkVtcHR5KHVuZGVmaW5lZClcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGlmIChjYW5jZWxhYmxlKSB7XG4gICAgICAgICAgICAgIGNvbnN0IG5vdGlmaWVyJCA9IGRpc3BhdGNoZWQkLnBpcGUob2ZBY3Rpb25EaXNwYXRjaGVkKGFjdGlvbikpO1xuICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQucGlwZSh0YWtlVW50aWwobm90aWZpZXIkKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5waXBlKFxuICAgICAgICAgICAgICAvLyBOb3RlIHRoYXQgd2UgdXNlIHRoZSBgZmluYWxpemVgIG9wZXJhdG9yIG9ubHkgd2hlbiB0aGUgYWN0aW9uIGhhbmRsZXJcbiAgICAgICAgICAgICAgLy8gcmV0dXJucyBhbiBvYnNlcnZhYmxlLiBJZiB0aGUgYWN0aW9uIGhhbmRsZXIgaXMgc3luY2hyb25vdXMsIHdlIGRvIG5vdFxuICAgICAgICAgICAgICAvLyBuZWVkIHRvIHNldCB0aGUgc3RhdGUgY29udGV4dCBmdW5jdGlvbnMgdG8gYG5vb3BgLCBhcyB0aGUgYWJzZW5jZSBvZiBhXG4gICAgICAgICAgICAgIC8vIHJldHVybiB2YWx1ZSBpbmRpY2F0ZXMgbm8gYXN5bmNocm9ub3VzIGZ1bmN0aW9uYWxpdHkuIElmIHRoZSBoYW5kbGVyJ3NcbiAgICAgICAgICAgICAgLy8gcmVzdWx0IGlzIHVuc3Vic2NyaWJlZCAoZWl0aGVyIGJlY2F1c2UgdGhlIG9ic2VydmFibGUgaGFzIGNvbXBsZXRlZCBvciBpdFxuICAgICAgICAgICAgICAvLyB3YXMgdW5zdWJzY3JpYmVkIGJ5IGB0YWtlVW50aWxgIGR1ZSB0byBhIG5ldyBhY3Rpb24gYmVpbmcgZGlzcGF0Y2hlZCksXG4gICAgICAgICAgICAgIC8vIHdlIHByZXZlbnQgd3JpdGluZyB0byB0aGUgc3RhdGUgY29udGV4dC5cbiAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHN0YXRlQ29udGV4dC5zZXRTdGF0ZSA9IG5vb3A7XG4gICAgICAgICAgICAgICAgc3RhdGVDb250ZXh0LnBhdGNoU3RhdGUgPSBub29wO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gSWYgdGhlIGFjdGlvbiBoYW5kbGVyIGlzIHN5bmNocm9ub3VzIGFuZCByZXR1cm5zIG5vdGhpbmcgKGB2b2lkYCksIHdlXG4gICAgICAgICAgICAvLyBzdGlsbCBoYXZlIHRvIGNvbnZlcnQgdGhlIHJlc3VsdCB0byBhIHN5bmNocm9ub3VzIG9ic2VydmFibGUuXG4gICAgICAgICAgICByZXN1bHQgPSBvZih1bmRlZmluZWQpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH07XG4gICAgICB9KTtcblxuICAgICAgZm9yIChjb25zdCBhY3Rpb25IYW5kbGVyIG9mIGFjdGlvbkhhbmRsZXJzKSB7XG4gICAgICAgIHRoaXMuX2FjdGlvblJlZ2lzdHJ5LnJlZ2lzdGVyKGFjdGlvblR5cGUsIGFjdGlvbkhhbmRsZXIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBUaGlzIGlzIHVzZWQgdG8gcmVwbGFjZSBgc2V0U3RhdGVgIGFuZCBgcGF0Y2hTdGF0ZWAgb25jZSB0aGUgYWN0aW9uXG4vLyBoYW5kbGVyIGhhcyBiZWVuIHVuc3Vic2NyaWJlZCBvciBjb21wbGV0ZWQsIHRvIHByZXZlbnQgd3JpdGluZ1xuLy8gdG8gdGhlIHN0YXRlIGNvbnRleHQuXG5mdW5jdGlvbiBub29wKCkge31cbiJdfQ==
@@ -1,60 +0,0 @@
1
- import { inject, Injectable } from '@angular/core';
2
- import { ɵStateStream } from '@ngxs/store/internals';
3
- import { InternalDispatcher } from '../internal/dispatcher';
4
- import { NgxsConfig } from '../symbols';
5
- import { deepFreeze } from '../utils/freeze';
6
- import * as i0 from "@angular/core";
7
- /**
8
- * @ignore
9
- */
10
- export class InternalStateOperations {
11
- constructor() {
12
- this._stateStream = inject(ɵStateStream);
13
- this._dispatcher = inject(InternalDispatcher);
14
- this._config = inject(NgxsConfig);
15
- }
16
- /**
17
- * Returns the root state operators.
18
- */
19
- getRootStateOperations() {
20
- const rootStateOperations = {
21
- getState: () => this._stateStream.getValue(),
22
- setState: (newState) => this._stateStream.next(newState),
23
- dispatch: (actionOrActions) => this._dispatcher.dispatch(actionOrActions)
24
- };
25
- if (typeof ngDevMode !== 'undefined' && ngDevMode) {
26
- return this._config.developmentMode
27
- ? ensureStateAndActionsAreImmutable(rootStateOperations)
28
- : rootStateOperations;
29
- }
30
- else {
31
- return rootStateOperations;
32
- }
33
- }
34
- setStateToTheCurrentWithNew(results) {
35
- const stateOperations = this.getRootStateOperations();
36
- // Get our current stream
37
- const currentState = stateOperations.getState();
38
- // Set the state to the current + new
39
- stateOperations.setState({ ...currentState, ...results.defaults });
40
- }
41
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: InternalStateOperations, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
42
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: InternalStateOperations, providedIn: 'root' }); }
43
- }
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: InternalStateOperations, decorators: [{
45
- type: Injectable,
46
- args: [{ providedIn: 'root' }]
47
- }] });
48
- function ensureStateAndActionsAreImmutable(root) {
49
- return {
50
- getState: () => root.getState(),
51
- setState: value => {
52
- const frozenValue = deepFreeze(value);
53
- return root.setState(frozenValue);
54
- },
55
- dispatch: actions => {
56
- return root.dispatch(actions);
57
- }
58
- };
59
- }
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtb3BlcmF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL3NyYy9pbnRlcm5hbC9zdGF0ZS1vcGVyYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUdyRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFN0M7O0dBRUc7QUFFSCxNQUFNLE9BQU8sdUJBQXVCO0lBRHBDO1FBRVUsaUJBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDcEMsZ0JBQVcsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN6QyxZQUFPLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBNkJ0QztJQTNCQzs7T0FFRztJQUNILHNCQUFzQjtRQUNwQixNQUFNLG1CQUFtQixHQUFHO1lBQzFCLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRTtZQUM1QyxRQUFRLEVBQUUsQ0FBQyxRQUFhLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUM3RCxRQUFRLEVBQUUsQ0FBQyxlQUE0QixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUM7U0FDdkYsQ0FBQztRQUVGLElBQUksT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2xELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlO2dCQUNqQyxDQUFDLENBQUMsaUNBQWlDLENBQUMsbUJBQW1CLENBQUM7Z0JBQ3hELENBQUMsQ0FBQyxtQkFBbUIsQ0FBQztRQUMxQixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sbUJBQW1CLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFFRCwyQkFBMkIsQ0FBQyxPQUEwQjtRQUNwRCxNQUFNLGVBQWUsR0FBeUIsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFFNUUseUJBQXlCO1FBQ3pCLE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoRCxxQ0FBcUM7UUFDckMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUcsWUFBWSxFQUFFLEdBQUcsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDckUsQ0FBQztpSUEvQlUsdUJBQXVCO3FJQUF2Qix1QkFBdUIsY0FEVixNQUFNOzsyRkFDbkIsdUJBQXVCO2tCQURuQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7QUFtQ2xDLFNBQVMsaUNBQWlDLENBQUMsSUFBMEI7SUFDbkUsT0FBTztRQUNMLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1FBQy9CLFFBQVEsRUFBRSxLQUFLLENBQUMsRUFBRTtZQUNoQixNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3BDLENBQUM7UUFDRCxRQUFRLEVBQUUsT0FBTyxDQUFDLEVBQUU7WUFDbEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hDLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgybVTdGF0ZVN0cmVhbSB9IGZyb20gJ0BuZ3hzL3N0b3JlL2ludGVybmFscyc7XG5cbmltcG9ydCB7IFN0YXRlT3BlcmF0aW9ucywgU3RhdGVzQW5kRGVmYXVsdHMgfSBmcm9tICcuLi9pbnRlcm5hbC9pbnRlcm5hbHMnO1xuaW1wb3J0IHsgSW50ZXJuYWxEaXNwYXRjaGVyIH0gZnJvbSAnLi4vaW50ZXJuYWwvZGlzcGF0Y2hlcic7XG5pbXBvcnQgeyBOZ3hzQ29uZmlnIH0gZnJvbSAnLi4vc3ltYm9scyc7XG5pbXBvcnQgeyBkZWVwRnJlZXplIH0gZnJvbSAnLi4vdXRpbHMvZnJlZXplJztcblxuLyoqXG4gKiBAaWdub3JlXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgSW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnMge1xuICBwcml2YXRlIF9zdGF0ZVN0cmVhbSA9IGluamVjdCjJtVN0YXRlU3RyZWFtKTtcbiAgcHJpdmF0ZSBfZGlzcGF0Y2hlciA9IGluamVjdChJbnRlcm5hbERpc3BhdGNoZXIpO1xuICBwcml2YXRlIF9jb25maWcgPSBpbmplY3QoTmd4c0NvbmZpZyk7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHJvb3Qgc3RhdGUgb3BlcmF0b3JzLlxuICAgKi9cbiAgZ2V0Um9vdFN0YXRlT3BlcmF0aW9ucygpOiBTdGF0ZU9wZXJhdGlvbnM8YW55PiB7XG4gICAgY29uc3Qgcm9vdFN0YXRlT3BlcmF0aW9ucyA9IHtcbiAgICAgIGdldFN0YXRlOiAoKSA9PiB0aGlzLl9zdGF0ZVN0cmVhbS5nZXRWYWx1ZSgpLFxuICAgICAgc2V0U3RhdGU6IChuZXdTdGF0ZTogYW55KSA9PiB0aGlzLl9zdGF0ZVN0cmVhbS5uZXh0KG5ld1N0YXRlKSxcbiAgICAgIGRpc3BhdGNoOiAoYWN0aW9uT3JBY3Rpb25zOiBhbnkgfCBhbnlbXSkgPT4gdGhpcy5fZGlzcGF0Y2hlci5kaXNwYXRjaChhY3Rpb25PckFjdGlvbnMpXG4gICAgfTtcblxuICAgIGlmICh0eXBlb2YgbmdEZXZNb2RlICE9PSAndW5kZWZpbmVkJyAmJiBuZ0Rldk1vZGUpIHtcbiAgICAgIHJldHVybiB0aGlzLl9jb25maWcuZGV2ZWxvcG1lbnRNb2RlXG4gICAgICAgID8gZW5zdXJlU3RhdGVBbmRBY3Rpb25zQXJlSW1tdXRhYmxlKHJvb3RTdGF0ZU9wZXJhdGlvbnMpXG4gICAgICAgIDogcm9vdFN0YXRlT3BlcmF0aW9ucztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHJvb3RTdGF0ZU9wZXJhdGlvbnM7XG4gICAgfVxuICB9XG5cbiAgc2V0U3RhdGVUb1RoZUN1cnJlbnRXaXRoTmV3KHJlc3VsdHM6IFN0YXRlc0FuZERlZmF1bHRzKTogdm9pZCB7XG4gICAgY29uc3Qgc3RhdGVPcGVyYXRpb25zOiBTdGF0ZU9wZXJhdGlvbnM8YW55PiA9IHRoaXMuZ2V0Um9vdFN0YXRlT3BlcmF0aW9ucygpO1xuXG4gICAgLy8gR2V0IG91ciBjdXJyZW50IHN0cmVhbVxuICAgIGNvbnN0IGN1cnJlbnRTdGF0ZSA9IHN0YXRlT3BlcmF0aW9ucy5nZXRTdGF0ZSgpO1xuICAgIC8vIFNldCB0aGUgc3RhdGUgdG8gdGhlIGN1cnJlbnQgKyBuZXdcbiAgICBzdGF0ZU9wZXJhdGlvbnMuc2V0U3RhdGUoeyAuLi5jdXJyZW50U3RhdGUsIC4uLnJlc3VsdHMuZGVmYXVsdHMgfSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZW5zdXJlU3RhdGVBbmRBY3Rpb25zQXJlSW1tdXRhYmxlKHJvb3Q6IFN0YXRlT3BlcmF0aW9uczxhbnk+KTogU3RhdGVPcGVyYXRpb25zPGFueT4ge1xuICByZXR1cm4ge1xuICAgIGdldFN0YXRlOiAoKSA9PiByb290LmdldFN0YXRlKCksXG4gICAgc2V0U3RhdGU6IHZhbHVlID0+IHtcbiAgICAgIGNvbnN0IGZyb3plblZhbHVlID0gZGVlcEZyZWV6ZSh2YWx1ZSk7XG4gICAgICByZXR1cm4gcm9vdC5zZXRTdGF0ZShmcm96ZW5WYWx1ZSk7XG4gICAgfSxcbiAgICBkaXNwYXRjaDogYWN0aW9ucyA9PiB7XG4gICAgICByZXR1cm4gcm9vdC5kaXNwYXRjaChhY3Rpb25zKTtcbiAgICB9XG4gIH07XG59XG4iXX0=
@@ -1,20 +0,0 @@
1
- import { throwPatchingArrayError, throwPatchingPrimitiveError } from '../configs/messages.config';
2
- export function simplePatch(value) {
3
- return (existingState) => {
4
- if (typeof ngDevMode !== 'undefined' && ngDevMode) {
5
- if (Array.isArray(value)) {
6
- throwPatchingArrayError();
7
- }
8
- else if (typeof value !== 'object') {
9
- throwPatchingPrimitiveError();
10
- }
11
- }
12
- const newState = { ...existingState };
13
- for (const key in value) {
14
- // deep clone for patch compatibility
15
- newState[key] = value[key];
16
- }
17
- return newState;
18
- };
19
- }
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtb3BlcmF0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RvcmUvc3JjL2ludGVybmFsL3N0YXRlLW9wZXJhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLDJCQUEyQixFQUM1QixNQUFNLDRCQUE0QixDQUFDO0FBR3BDLE1BQU0sVUFBVSxXQUFXLENBQUksS0FBaUI7SUFDOUMsT0FBTyxDQUFDLGFBQStCLEVBQUUsRUFBRTtRQUN6QyxJQUFJLE9BQU8sU0FBUyxLQUFLLFdBQVcsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNsRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDekIsdUJBQXVCLEVBQUUsQ0FBQztZQUM1QixDQUFDO2lCQUFNLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ3JDLDJCQUEyQixFQUFFLENBQUM7WUFDaEMsQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBUSxFQUFFLEdBQUksYUFBcUIsRUFBRSxDQUFDO1FBQ3BELEtBQUssTUFBTSxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7WUFDeEIscUNBQXFDO1lBQ3JDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBSSxLQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUVELE9BQU8sUUFBYSxDQUFDO0lBQ3ZCLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0aHJvd1BhdGNoaW5nQXJyYXlFcnJvcixcbiAgdGhyb3dQYXRjaGluZ1ByaW1pdGl2ZUVycm9yXG59IGZyb20gJy4uL2NvbmZpZ3MvbWVzc2FnZXMuY29uZmlnJztcbmltcG9ydCB7IEV4aXN0aW5nU3RhdGUsIFN0YXRlT3BlcmF0b3IgfSBmcm9tICdAbmd4cy9zdG9yZS9vcGVyYXRvcnMnO1xuXG5leHBvcnQgZnVuY3Rpb24gc2ltcGxlUGF0Y2g8VD4odmFsdWU6IFBhcnRpYWw8VD4pOiBTdGF0ZU9wZXJhdG9yPFQ+IHtcbiAgcmV0dXJuIChleGlzdGluZ1N0YXRlOiBFeGlzdGluZ1N0YXRlPFQ+KSA9PiB7XG4gICAgaWYgKHR5cGVvZiBuZ0Rldk1vZGUgIT09ICd1bmRlZmluZWQnICYmIG5nRGV2TW9kZSkge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHRocm93UGF0Y2hpbmdBcnJheUVycm9yKCk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgdGhyb3dQYXRjaGluZ1ByaW1pdGl2ZUVycm9yKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgbmV3U3RhdGU6IGFueSA9IHsgLi4uKGV4aXN0aW5nU3RhdGUgYXMgYW55KSB9O1xuICAgIGZvciAoY29uc3Qga2V5IGluIHZhbHVlKSB7XG4gICAgICAvLyBkZWVwIGNsb25lIGZvciBwYXRjaCBjb21wYXRpYmlsaXR5XG4gICAgICBuZXdTdGF0ZVtrZXldID0gKHZhbHVlIGFzIGFueSlba2V5XTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3U3RhdGUgYXMgVDtcbiAgfTtcbn1cbiJdfQ==
@@ -1,46 +0,0 @@
1
- import { config } from 'rxjs';
2
- const ɵɵunhandledRxjsErrorCallbacks = new WeakMap();
3
- let installed = false;
4
- export function installOnUnhandhedErrorHandler() {
5
- if (installed) {
6
- return;
7
- }
8
- const existingHandler = config.onUnhandledError;
9
- config.onUnhandledError = function (error) {
10
- const unhandledErrorCallback = ɵɵunhandledRxjsErrorCallbacks.get(error);
11
- if (unhandledErrorCallback) {
12
- unhandledErrorCallback();
13
- }
14
- else if (existingHandler) {
15
- existingHandler.call(this, error);
16
- }
17
- else {
18
- throw error;
19
- }
20
- };
21
- installed = true;
22
- }
23
- export function executeUnhandledCallback(error) {
24
- const unhandledErrorCallback = ɵɵunhandledRxjsErrorCallbacks.get(error);
25
- if (unhandledErrorCallback) {
26
- unhandledErrorCallback();
27
- return true;
28
- }
29
- return false;
30
- }
31
- export function assignUnhandledCallback(error, callback) {
32
- // Since the error can be essentially anything, we must ensure that we only
33
- // handle objects, as weak maps do not allow any other key type besides objects.
34
- // The error can also be a string if thrown in the following manner: `throwError('My Error')`.
35
- if (error !== null && typeof error === 'object') {
36
- let hasBeenCalled = false;
37
- ɵɵunhandledRxjsErrorCallbacks.set(error, () => {
38
- if (!hasBeenCalled) {
39
- hasBeenCalled = true;
40
- callback();
41
- }
42
- });
43
- }
44
- return error;
45
- }
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5oYW5kbGVkLXJ4anMtZXJyb3ItY2FsbGJhY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvaW50ZXJuYWwvdW5oYW5kbGVkLXJ4anMtZXJyb3ItY2FsbGJhY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUU5QixNQUFNLDZCQUE2QixHQUFHLElBQUksT0FBTyxFQUFxQixDQUFDO0FBRXZFLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQztBQUN0QixNQUFNLFVBQVUsOEJBQThCO0lBQzVDLElBQUksU0FBUyxFQUFFLENBQUM7UUFDZCxPQUFPO0lBQ1QsQ0FBQztJQUVELE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztJQUNoRCxNQUFNLENBQUMsZ0JBQWdCLEdBQUcsVUFBVSxLQUFVO1FBQzVDLE1BQU0sc0JBQXNCLEdBQUcsNkJBQTZCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hFLElBQUksc0JBQXNCLEVBQUUsQ0FBQztZQUMzQixzQkFBc0IsRUFBRSxDQUFDO1FBQzNCLENBQUM7YUFBTSxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQzNCLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxLQUFLLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQyxDQUFDO0lBRUYsU0FBUyxHQUFHLElBQUksQ0FBQztBQUNuQixDQUFDO0FBRUQsTUFBTSxVQUFVLHdCQUF3QixDQUFDLEtBQVU7SUFDakQsTUFBTSxzQkFBc0IsR0FBRyw2QkFBNkIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEUsSUFBSSxzQkFBc0IsRUFBRSxDQUFDO1FBQzNCLHNCQUFzQixFQUFFLENBQUM7UUFDekIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBRUQsTUFBTSxVQUFVLHVCQUF1QixDQUFDLEtBQVUsRUFBRSxRQUFzQjtJQUN4RSwyRUFBMkU7SUFDM0UsZ0ZBQWdGO0lBQ2hGLDhGQUE4RjtJQUM5RixJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDaEQsSUFBSSxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBQzFCLDZCQUE2QixDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFO1lBQzVDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDbkIsYUFBYSxHQUFHLElBQUksQ0FBQztnQkFDckIsUUFBUSxFQUFFLENBQUM7WUFDYixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29uZmlnIH0gZnJvbSAncnhqcyc7XG5cbmNvbnN0IMm1ybV1bmhhbmRsZWRSeGpzRXJyb3JDYWxsYmFja3MgPSBuZXcgV2Vha01hcDxhbnksIFZvaWRGdW5jdGlvbj4oKTtcblxubGV0IGluc3RhbGxlZCA9IGZhbHNlO1xuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbGxPblVuaGFuZGhlZEVycm9ySGFuZGxlcigpOiB2b2lkIHtcbiAgaWYgKGluc3RhbGxlZCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGV4aXN0aW5nSGFuZGxlciA9IGNvbmZpZy5vblVuaGFuZGxlZEVycm9yO1xuICBjb25maWcub25VbmhhbmRsZWRFcnJvciA9IGZ1bmN0aW9uIChlcnJvcjogYW55KSB7XG4gICAgY29uc3QgdW5oYW5kbGVkRXJyb3JDYWxsYmFjayA9IMm1ybV1bmhhbmRsZWRSeGpzRXJyb3JDYWxsYmFja3MuZ2V0KGVycm9yKTtcbiAgICBpZiAodW5oYW5kbGVkRXJyb3JDYWxsYmFjaykge1xuICAgICAgdW5oYW5kbGVkRXJyb3JDYWxsYmFjaygpO1xuICAgIH0gZWxzZSBpZiAoZXhpc3RpbmdIYW5kbGVyKSB7XG4gICAgICBleGlzdGluZ0hhbmRsZXIuY2FsbCh0aGlzLCBlcnJvcik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfTtcblxuICBpbnN0YWxsZWQgPSB0cnVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXhlY3V0ZVVuaGFuZGxlZENhbGxiYWNrKGVycm9yOiBhbnkpIHtcbiAgY29uc3QgdW5oYW5kbGVkRXJyb3JDYWxsYmFjayA9IMm1ybV1bmhhbmRsZWRSeGpzRXJyb3JDYWxsYmFja3MuZ2V0KGVycm9yKTtcbiAgaWYgKHVuaGFuZGxlZEVycm9yQ2FsbGJhY2spIHtcbiAgICB1bmhhbmRsZWRFcnJvckNhbGxiYWNrKCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNzaWduVW5oYW5kbGVkQ2FsbGJhY2soZXJyb3I6IGFueSwgY2FsbGJhY2s6IFZvaWRGdW5jdGlvbikge1xuICAvLyBTaW5jZSB0aGUgZXJyb3IgY2FuIGJlIGVzc2VudGlhbGx5IGFueXRoaW5nLCB3ZSBtdXN0IGVuc3VyZSB0aGF0IHdlIG9ubHlcbiAgLy8gaGFuZGxlIG9iamVjdHMsIGFzIHdlYWsgbWFwcyBkbyBub3QgYWxsb3cgYW55IG90aGVyIGtleSB0eXBlIGJlc2lkZXMgb2JqZWN0cy5cbiAgLy8gVGhlIGVycm9yIGNhbiBhbHNvIGJlIGEgc3RyaW5nIGlmIHRocm93biBpbiB0aGUgZm9sbG93aW5nIG1hbm5lcjogYHRocm93RXJyb3IoJ015IEVycm9yJylgLlxuICBpZiAoZXJyb3IgIT09IG51bGwgJiYgdHlwZW9mIGVycm9yID09PSAnb2JqZWN0Jykge1xuICAgIGxldCBoYXNCZWVuQ2FsbGVkID0gZmFsc2U7XG4gICAgybXJtXVuaGFuZGxlZFJ4anNFcnJvckNhbGxiYWNrcy5zZXQoZXJyb3IsICgpID0+IHtcbiAgICAgIGlmICghaGFzQmVlbkNhbGxlZCkge1xuICAgICAgICBoYXNCZWVuQ2FsbGVkID0gdHJ1ZTtcbiAgICAgICAgY2FsbGJhY2soKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICByZXR1cm4gZXJyb3I7XG59XG4iXX0=
@@ -1,25 +0,0 @@
1
- import { getUndecoratedStateWithInjectableWarningMessage } from '../configs/messages.config';
2
- /**
3
- * All provided or injected tokens must have `@Injectable` decorator
4
- * (previously, injected tokens without `@Injectable` were allowed
5
- * if another decorator was used, e.g. pipes).
6
- */
7
- export function ensureStateClassIsInjectable(stateClass) {
8
- if (jit_hasInjectableAnnotation(stateClass) || aot_hasNgInjectableDef(stateClass)) {
9
- return;
10
- }
11
- console.warn(getUndecoratedStateWithInjectableWarningMessage(stateClass.name));
12
- }
13
- function aot_hasNgInjectableDef(stateClass) {
14
- // `ɵprov` is a static property added by the NGCC compiler. It always exists in
15
- // AOT mode because this property is added before runtime. If an application is running in
16
- // JIT mode then this property can be added by the `@Injectable()` decorator. The `@Injectable()`
17
- // decorator has to go after the `@State()` decorator, thus we prevent users from unwanted DI errors.
18
- return !!stateClass.ɵprov;
19
- }
20
- function jit_hasInjectableAnnotation(stateClass) {
21
- // `ɵprov` doesn't exist in JIT mode (for instance when running unit tests with Jest).
22
- const annotations = stateClass.__annotations__ || [];
23
- return annotations.some((annotation) => annotation?.ngMetadataName === 'Injectable');
24
- }
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXZ5LWVuYWJsZWQtaW4tZGV2LW1vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvaXZ5L2l2eS1lbmFibGVkLWluLWRldi1tb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwrQ0FBK0MsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTdGOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsNEJBQTRCLENBQUMsVUFBZTtJQUMxRCxJQUFJLDJCQUEyQixDQUFDLFVBQVUsQ0FBQyxJQUFJLHNCQUFzQixDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7UUFDbEYsT0FBTztJQUNULENBQUM7SUFFRCxPQUFPLENBQUMsSUFBSSxDQUFDLCtDQUErQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ2pGLENBQUM7QUFFRCxTQUFTLHNCQUFzQixDQUFDLFVBQWU7SUFDN0MsK0VBQStFO0lBQy9FLDBGQUEwRjtJQUMxRixpR0FBaUc7SUFDakcscUdBQXFHO0lBQ3JHLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7QUFDNUIsQ0FBQztBQUVELFNBQVMsMkJBQTJCLENBQUMsVUFBZTtJQUNsRCxzRkFBc0Y7SUFDdEYsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDLGVBQWUsSUFBSSxFQUFFLENBQUM7SUFDckQsT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBZSxFQUFFLEVBQUUsQ0FBQyxVQUFVLEVBQUUsY0FBYyxLQUFLLFlBQVksQ0FBQyxDQUFDO0FBQzVGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRVbmRlY29yYXRlZFN0YXRlV2l0aEluamVjdGFibGVXYXJuaW5nTWVzc2FnZSB9IGZyb20gJy4uL2NvbmZpZ3MvbWVzc2FnZXMuY29uZmlnJztcblxuLyoqXG4gKiBBbGwgcHJvdmlkZWQgb3IgaW5qZWN0ZWQgdG9rZW5zIG11c3QgaGF2ZSBgQEluamVjdGFibGVgIGRlY29yYXRvclxuICogKHByZXZpb3VzbHksIGluamVjdGVkIHRva2VucyB3aXRob3V0IGBASW5qZWN0YWJsZWAgd2VyZSBhbGxvd2VkXG4gKiBpZiBhbm90aGVyIGRlY29yYXRvciB3YXMgdXNlZCwgZS5nLiBwaXBlcykuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVTdGF0ZUNsYXNzSXNJbmplY3RhYmxlKHN0YXRlQ2xhc3M6IGFueSk6IHZvaWQge1xuICBpZiAoaml0X2hhc0luamVjdGFibGVBbm5vdGF0aW9uKHN0YXRlQ2xhc3MpIHx8IGFvdF9oYXNOZ0luamVjdGFibGVEZWYoc3RhdGVDbGFzcykpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zb2xlLndhcm4oZ2V0VW5kZWNvcmF0ZWRTdGF0ZVdpdGhJbmplY3RhYmxlV2FybmluZ01lc3NhZ2Uoc3RhdGVDbGFzcy5uYW1lKSk7XG59XG5cbmZ1bmN0aW9uIGFvdF9oYXNOZ0luamVjdGFibGVEZWYoc3RhdGVDbGFzczogYW55KTogYm9vbGVhbiB7XG4gIC8vIGDJtXByb3ZgIGlzIGEgc3RhdGljIHByb3BlcnR5IGFkZGVkIGJ5IHRoZSBOR0NDIGNvbXBpbGVyLiBJdCBhbHdheXMgZXhpc3RzIGluXG4gIC8vIEFPVCBtb2RlIGJlY2F1c2UgdGhpcyBwcm9wZXJ0eSBpcyBhZGRlZCBiZWZvcmUgcnVudGltZS4gSWYgYW4gYXBwbGljYXRpb24gaXMgcnVubmluZyBpblxuICAvLyBKSVQgbW9kZSB0aGVuIHRoaXMgcHJvcGVydHkgY2FuIGJlIGFkZGVkIGJ5IHRoZSBgQEluamVjdGFibGUoKWAgZGVjb3JhdG9yLiBUaGUgYEBJbmplY3RhYmxlKClgXG4gIC8vIGRlY29yYXRvciBoYXMgdG8gZ28gYWZ0ZXIgdGhlIGBAU3RhdGUoKWAgZGVjb3JhdG9yLCB0aHVzIHdlIHByZXZlbnQgdXNlcnMgZnJvbSB1bndhbnRlZCBESSBlcnJvcnMuXG4gIHJldHVybiAhIXN0YXRlQ2xhc3MuybVwcm92O1xufVxuXG5mdW5jdGlvbiBqaXRfaGFzSW5qZWN0YWJsZUFubm90YXRpb24oc3RhdGVDbGFzczogYW55KTogYm9vbGVhbiB7XG4gIC8vIGDJtXByb3ZgIGRvZXNuJ3QgZXhpc3QgaW4gSklUIG1vZGUgKGZvciBpbnN0YW5jZSB3aGVuIHJ1bm5pbmcgdW5pdCB0ZXN0cyB3aXRoIEplc3QpLlxuICBjb25zdCBhbm5vdGF0aW9ucyA9IHN0YXRlQ2xhc3MuX19hbm5vdGF0aW9uc19fIHx8IFtdO1xuICByZXR1cm4gYW5ub3RhdGlvbnMuc29tZSgoYW5ub3RhdGlvbjogYW55KSA9PiBhbm5vdGF0aW9uPy5uZ01ldGFkYXRhTmFtZSA9PT0gJ0luamVjdGFibGUnKTtcbn1cbiJdfQ==
@@ -1,27 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { NgxsRootModule } from './modules/ngxs-root.module';
3
- import { NgxsFeatureModule } from './modules/ngxs-feature.module';
4
- import { getRootProviders } from './standalone-features/root-providers';
5
- import { getFeatureProviders } from './standalone-features/feature-providers';
6
- import * as i0 from "@angular/core";
7
- export class NgxsModule {
8
- static forRoot(states = [], options = {}) {
9
- return {
10
- ngModule: NgxsRootModule,
11
- providers: getRootProviders(states, options)
12
- };
13
- }
14
- static forFeature(states = []) {
15
- return {
16
- ngModule: NgxsFeatureModule,
17
- providers: getFeatureProviders(states)
18
- };
19
- }
20
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: NgxsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
21
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.6", ngImport: i0, type: NgxsModule }); }
22
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: NgxsModule }); }
23
- }
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: NgxsModule, decorators: [{
25
- type: NgModule
26
- }] });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RvcmUvc3JjL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUk5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7O0FBRzlFLE1BQU0sT0FBTyxVQUFVO0lBQ3JCLE1BQU0sQ0FBQyxPQUFPLENBQ1osU0FBd0IsRUFBRSxFQUMxQixVQUE2QixFQUFFO1FBRS9CLE9BQU87WUFDTCxRQUFRLEVBQUUsY0FBYztZQUN4QixTQUFTLEVBQUUsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQztTQUM3QyxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsU0FBd0IsRUFBRTtRQUMxQyxPQUFPO1lBQ0wsUUFBUSxFQUFFLGlCQUFpQjtZQUMzQixTQUFTLEVBQUUsbUJBQW1CLENBQUMsTUFBTSxDQUFDO1NBQ3ZDLENBQUM7SUFDSixDQUFDO2lJQWhCVSxVQUFVO2tJQUFWLFVBQVU7a0lBQVYsVUFBVTs7MkZBQVYsVUFBVTtrQkFEdEIsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyDJtVN0YXRlQ2xhc3MgfSBmcm9tICdAbmd4cy9zdG9yZS9pbnRlcm5hbHMnO1xuXG5pbXBvcnQgeyBOZ3hzTW9kdWxlT3B0aW9ucyB9IGZyb20gJy4vc3ltYm9scyc7XG5pbXBvcnQgeyBOZ3hzUm9vdE1vZHVsZSB9IGZyb20gJy4vbW9kdWxlcy9uZ3hzLXJvb3QubW9kdWxlJztcbmltcG9ydCB7IE5neHNGZWF0dXJlTW9kdWxlIH0gZnJvbSAnLi9tb2R1bGVzL25neHMtZmVhdHVyZS5tb2R1bGUnO1xuaW1wb3J0IHsgZ2V0Um9vdFByb3ZpZGVycyB9IGZyb20gJy4vc3RhbmRhbG9uZS1mZWF0dXJlcy9yb290LXByb3ZpZGVycyc7XG5pbXBvcnQgeyBnZXRGZWF0dXJlUHJvdmlkZXJzIH0gZnJvbSAnLi9zdGFuZGFsb25lLWZlYXR1cmVzL2ZlYXR1cmUtcHJvdmlkZXJzJztcblxuQE5nTW9kdWxlKClcbmV4cG9ydCBjbGFzcyBOZ3hzTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoXG4gICAgc3RhdGVzOiDJtVN0YXRlQ2xhc3NbXSA9IFtdLFxuICAgIG9wdGlvbnM6IE5neHNNb2R1bGVPcHRpb25zID0ge31cbiAgKTogTW9kdWxlV2l0aFByb3ZpZGVyczxOZ3hzUm9vdE1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogTmd4c1Jvb3RNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IGdldFJvb3RQcm92aWRlcnMoc3RhdGVzLCBvcHRpb25zKVxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgZm9yRmVhdHVyZShzdGF0ZXM6IMm1U3RhdGVDbGFzc1tdID0gW10pOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE5neHNGZWF0dXJlTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBOZ3hzRmVhdHVyZU1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogZ2V0RmVhdHVyZVByb3ZpZGVycyhzdGF0ZXMpXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -1,18 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { featureStatesInitializer } from '../standalone-features/initializers';
3
- import * as i0 from "@angular/core";
4
- /**
5
- * @ignore
6
- */
7
- export class NgxsFeatureModule {
8
- constructor() {
9
- featureStatesInitializer();
10
- }
11
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: NgxsFeatureModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
12
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.6", ngImport: i0, type: NgxsFeatureModule }); }
13
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: NgxsFeatureModule }); }
14
- }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: NgxsFeatureModule, decorators: [{
16
- type: NgModule
17
- }], ctorParameters: () => [] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4cy1mZWF0dXJlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL3NyYy9tb2R1bGVzL25neHMtZmVhdHVyZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFFL0U7O0dBRUc7QUFFSCxNQUFNLE9BQU8saUJBQWlCO0lBQzVCO1FBQ0Usd0JBQXdCLEVBQUUsQ0FBQztJQUM3QixDQUFDO2lJQUhVLGlCQUFpQjtrSUFBakIsaUJBQWlCO2tJQUFqQixpQkFBaUI7OzJGQUFqQixpQkFBaUI7a0JBRDdCLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBmZWF0dXJlU3RhdGVzSW5pdGlhbGl6ZXIgfSBmcm9tICcuLi9zdGFuZGFsb25lLWZlYXR1cmVzL2luaXRpYWxpemVycyc7XG5cbi8qKlxuICogQGlnbm9yZVxuICovXG5ATmdNb2R1bGUoKVxuZXhwb3J0IGNsYXNzIE5neHNGZWF0dXJlTW9kdWxlIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZmVhdHVyZVN0YXRlc0luaXRpYWxpemVyKCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,18 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { rootStoreInitializer } from '../standalone-features/initializers';
3
- import * as i0 from "@angular/core";
4
- /**
5
- * @ignore
6
- */
7
- export class NgxsRootModule {
8
- constructor() {
9
- rootStoreInitializer();
10
- }
11
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: NgxsRootModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
12
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.6", ngImport: i0, type: NgxsRootModule }); }
13
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: NgxsRootModule }); }
14
- }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: NgxsRootModule, decorators: [{
16
- type: NgModule
17
- }], ctorParameters: () => [] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4cy1yb290Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0b3JlL3NyYy9tb2R1bGVzL25neHMtcm9vdC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFFM0U7O0dBRUc7QUFFSCxNQUFNLE9BQU8sY0FBYztJQUN6QjtRQUNFLG9CQUFvQixFQUFFLENBQUM7SUFDekIsQ0FBQztpSUFIVSxjQUFjO2tJQUFkLGNBQWM7a0lBQWQsY0FBYzs7MkZBQWQsY0FBYztrQkFEMUIsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IHJvb3RTdG9yZUluaXRpYWxpemVyIH0gZnJvbSAnLi4vc3RhbmRhbG9uZS1mZWF0dXJlcy9pbml0aWFsaXplcnMnO1xuXG4vKipcbiAqIEBpZ25vcmVcbiAqL1xuQE5nTW9kdWxlKClcbmV4cG9ydCBjbGFzcyBOZ3hzUm9vdE1vZHVsZSB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHJvb3RTdG9yZUluaXRpYWxpemVyKCk7XG4gIH1cbn1cbiJdfQ==