@ngxs/store 3.7.3-dev.master-5175b98 → 3.7.3
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.
- package/README.md +16 -16
- package/bundles/ngxs-store-internals-testing.umd.js +215 -235
- package/bundles/ngxs-store-internals-testing.umd.js.map +1 -1
- package/bundles/ngxs-store-internals-testing.umd.min.js +2 -2
- package/bundles/ngxs-store-internals-testing.umd.min.js.map +1 -1
- package/bundles/ngxs-store-internals.umd.js +211 -422
- package/bundles/ngxs-store-internals.umd.js.map +1 -1
- package/bundles/ngxs-store-internals.umd.min.js +1 -1
- package/bundles/ngxs-store-internals.umd.min.js.map +1 -1
- package/bundles/ngxs-store-operators.umd.js +310 -311
- package/bundles/ngxs-store-operators.umd.js.map +1 -1
- package/bundles/ngxs-store-operators.umd.min.js +1 -1
- package/bundles/ngxs-store-operators.umd.min.js.map +1 -1
- package/bundles/ngxs-store.umd.js +4518 -4423
- package/bundles/ngxs-store.umd.js.map +1 -1
- package/bundles/ngxs-store.umd.min.js +1 -1
- package/bundles/ngxs-store.umd.min.js.map +1 -1
- package/esm2015/index.js +13 -13
- package/esm2015/internals/angular.js +40 -46
- package/esm2015/internals/index.js +10 -11
- package/esm2015/internals/initial-state.js +34 -34
- package/esm2015/internals/internal-tokens.js +16 -16
- package/esm2015/internals/memoize.js +70 -70
- package/esm2015/internals/ngxs-bootstrapper.js +41 -41
- package/esm2015/internals/ngxs-store-internals.js +9 -9
- package/esm2015/internals/src/symbols.js +14 -14
- package/esm2015/internals/symbols.js +14 -14
- package/esm2015/internals/testing/fresh-platform.js +71 -90
- package/esm2015/internals/testing/helpers/ngxs-test.component.js +22 -22
- package/esm2015/internals/testing/helpers/ngxs-test.module.js +24 -24
- package/esm2015/internals/testing/index.js +7 -7
- package/esm2015/internals/testing/ngxs-store-internals-testing.js +8 -8
- package/esm2015/internals/testing/ngxs.setup.js +76 -76
- package/esm2015/internals/testing/symbol.js +29 -29
- package/esm2015/ngxs-store.js +27 -24
- package/esm2015/operators/append.js +31 -31
- package/esm2015/operators/compose.js +24 -24
- package/esm2015/operators/iif.js +56 -56
- package/esm2015/operators/index.js +18 -18
- package/esm2015/operators/insert-item.js +41 -41
- package/esm2015/operators/internals.js +5 -5
- package/esm2015/operators/ngxs-store-operators.js +8 -8
- package/esm2015/operators/patch.js +39 -38
- package/esm2015/operators/remove-item.js +34 -34
- package/esm2015/operators/update-item.js +52 -54
- package/esm2015/operators/utils.js +50 -50
- package/esm2015/src/actions/actions.js +39 -39
- package/esm2015/src/actions/symbols.js +39 -39
- package/esm2015/src/actions-stream.js +140 -138
- package/esm2015/src/configs/messages.config.js +87 -79
- package/esm2015/src/decorators/action.js +44 -48
- package/esm2015/src/decorators/select/select-factory.js +46 -49
- package/esm2015/src/decorators/select/select.js +45 -81
- package/esm2015/src/decorators/select/symbols.js +50 -94
- package/esm2015/src/decorators/selector/selector.js +55 -59
- package/esm2015/src/decorators/selector/symbols.js +5 -5
- package/esm2015/src/decorators/selector-options.js +34 -34
- package/esm2015/src/decorators/state.js +75 -83
- package/esm2015/src/execution/dispatch-outside-zone-ngxs-execution-strategy.js +96 -101
- package/esm2015/src/execution/internal-ngxs-execution-strategy.js +45 -45
- package/esm2015/src/execution/noop-ngxs-execution-strategy.js +27 -27
- package/esm2015/src/execution/symbols.js +29 -29
- package/esm2015/src/host-environment/host-environment.js +31 -0
- package/esm2015/src/internal/config-validator.js +67 -0
- package/esm2015/src/internal/dispatcher.js +217 -217
- package/esm2015/src/internal/internals.js +489 -493
- package/esm2015/src/internal/lifecycle-state-manager.js +129 -129
- package/esm2015/src/internal/state-context-factory.js +138 -138
- package/esm2015/src/internal/state-factory.js +429 -449
- package/esm2015/src/internal/state-operations.js +125 -120
- package/esm2015/src/internal/state-operators.js +33 -33
- package/esm2015/src/internal/state-stream.js +21 -21
- package/esm2015/src/ivy/ensure-state-class-is-injectable.js +34 -0
- package/esm2015/src/ivy/ivy-enabled-in-dev-mode.js +40 -28
- package/esm2015/src/module.js +172 -158
- package/esm2015/src/modules/ngxs-feature.module.js +63 -63
- package/esm2015/src/modules/ngxs-root.module.js +52 -52
- package/esm2015/src/operators/leave-ngxs.js +58 -58
- package/esm2015/src/operators/of-action.js +191 -191
- package/esm2015/src/plugin-manager.js +70 -70
- package/esm2015/src/plugin_api.js +10 -10
- package/esm2015/src/public_api.js +29 -29
- package/esm2015/src/public_to_deprecate.js +64 -64
- package/esm2015/src/state-token/state-token.js +45 -45
- package/esm2015/src/state-token/symbols.js +5 -5
- package/esm2015/src/store.js +174 -174
- package/esm2015/src/symbols.js +221 -217
- package/esm2015/src/utils/compose.js +44 -44
- package/esm2015/src/utils/freeze.js +35 -35
- package/esm2015/src/utils/selector-utils.js +221 -221
- package/esm2015/src/utils/store-validators.js +65 -60
- package/esm2015/src/utils/utils.js +143 -143
- package/esm5/index.js +13 -13
- package/esm5/internals/angular.js +40 -46
- package/esm5/internals/index.js +10 -11
- package/esm5/internals/initial-state.js +45 -45
- package/esm5/internals/internal-tokens.js +16 -16
- package/esm5/internals/memoize.js +71 -71
- package/esm5/internals/ngxs-bootstrapper.js +56 -56
- package/esm5/internals/ngxs-store-internals.js +9 -9
- package/esm5/internals/src/symbols.js +14 -14
- package/esm5/internals/symbols.js +14 -14
- package/esm5/internals/testing/fresh-platform.js +81 -101
- package/esm5/internals/testing/helpers/ngxs-test.component.js +32 -32
- package/esm5/internals/testing/helpers/ngxs-test.module.js +32 -32
- package/esm5/internals/testing/index.js +7 -7
- package/esm5/internals/testing/ngxs-store-internals-testing.js +8 -8
- package/esm5/internals/testing/ngxs.setup.js +98 -98
- package/esm5/internals/testing/symbol.js +29 -29
- package/esm5/ngxs-store.js +27 -24
- package/esm5/operators/append.js +31 -31
- package/esm5/operators/compose.js +28 -28
- package/esm5/operators/iif.js +56 -56
- package/esm5/operators/index.js +18 -18
- package/esm5/operators/insert-item.js +41 -41
- package/esm5/operators/internals.js +5 -5
- package/esm5/operators/ngxs-store-operators.js +8 -8
- package/esm5/operators/patch.js +40 -39
- package/esm5/operators/remove-item.js +34 -34
- package/esm5/operators/update-item.js +52 -54
- package/esm5/operators/utils.js +50 -50
- package/esm5/src/actions/actions.js +62 -62
- package/esm5/src/actions/symbols.js +39 -39
- package/esm5/src/actions-stream.js +186 -184
- package/esm5/src/configs/messages.config.js +104 -79
- package/esm5/src/decorators/action.js +56 -60
- package/esm5/src/decorators/select/select-factory.js +47 -50
- package/esm5/src/decorators/select/select.js +50 -87
- package/esm5/src/decorators/select/symbols.js +51 -95
- package/esm5/src/decorators/selector/selector.js +55 -59
- package/esm5/src/decorators/selector/symbols.js +5 -5
- package/esm5/src/decorators/selector-options.js +34 -34
- package/esm5/src/decorators/state.js +76 -84
- package/esm5/src/execution/dispatch-outside-zone-ngxs-execution-strategy.js +121 -121
- package/esm5/src/execution/internal-ngxs-execution-strategy.js +54 -54
- package/esm5/src/execution/noop-ngxs-execution-strategy.js +41 -41
- package/esm5/src/execution/symbols.js +29 -29
- package/esm5/src/host-environment/host-environment.js +29 -0
- package/esm5/src/internal/config-validator.js +76 -0
- package/esm5/src/internal/dispatcher.js +253 -253
- package/esm5/src/internal/internals.js +491 -495
- package/esm5/src/internal/lifecycle-state-manager.js +177 -177
- package/esm5/src/internal/state-context-factory.js +146 -146
- package/esm5/src/internal/state-factory.js +563 -575
- package/esm5/src/internal/state-operations.js +139 -130
- package/esm5/src/internal/state-operators.js +34 -34
- package/esm5/src/internal/state-stream.js +25 -25
- package/esm5/src/ivy/ensure-state-class-is-injectable.js +34 -0
- package/esm5/src/ivy/ivy-enabled-in-dev-mode.js +40 -28
- package/esm5/src/module.js +215 -201
- package/esm5/src/modules/ngxs-feature.module.js +65 -65
- package/esm5/src/modules/ngxs-root.module.js +47 -47
- package/esm5/src/operators/leave-ngxs.js +58 -58
- package/esm5/src/operators/of-action.js +217 -217
- package/esm5/src/plugin-manager.js +82 -82
- package/esm5/src/plugin_api.js +10 -10
- package/esm5/src/public_api.js +29 -29
- package/esm5/src/public_to_deprecate.js +64 -64
- package/esm5/src/state-token/state-token.js +57 -57
- package/esm5/src/state-token/symbols.js +5 -5
- package/esm5/src/store.js +225 -225
- package/esm5/src/symbols.js +230 -226
- package/esm5/src/utils/compose.js +55 -55
- package/esm5/src/utils/freeze.js +35 -35
- package/esm5/src/utils/selector-utils.js +230 -230
- package/esm5/src/utils/store-validators.js +86 -78
- package/esm5/src/utils/utils.js +151 -151
- package/fesm2015/ngxs-store-internals-testing.js +175 -194
- package/fesm2015/ngxs-store-internals-testing.js.map +1 -1
- package/fesm2015/ngxs-store-internals.js +194 -402
- package/fesm2015/ngxs-store-internals.js.map +1 -1
- package/fesm2015/ngxs-store-operators.js +312 -313
- package/fesm2015/ngxs-store-operators.js.map +1 -1
- package/fesm2015/ngxs-store.js +3976 -3927
- package/fesm2015/ngxs-store.js.map +1 -1
- package/fesm5/ngxs-store-internals-testing.js +221 -241
- package/fesm5/ngxs-store-internals-testing.js.map +1 -1
- package/fesm5/ngxs-store-internals.js +219 -427
- package/fesm5/ngxs-store-internals.js.map +1 -1
- package/fesm5/ngxs-store-operators.js +316 -317
- package/fesm5/ngxs-store-operators.js.map +1 -1
- package/fesm5/ngxs-store.js +4510 -4420
- package/fesm5/ngxs-store.js.map +1 -1
- package/index.d.ts +8 -8
- package/internals/angular.d.ts +3 -3
- package/internals/index.d.ts +6 -7
- package/internals/initial-state.d.ts +8 -8
- package/internals/internal-tokens.d.ts +9 -9
- package/internals/memoize.d.ts +9 -9
- package/internals/ngxs-bootstrapper.d.ts +13 -13
- package/internals/ngxs-store-internals.d.ts +4 -4
- package/internals/ngxs-store-internals.metadata.json +1 -1
- package/internals/src/symbols.d.ts +7 -7
- package/internals/symbols.d.ts +7 -7
- package/internals/testing/fresh-platform.d.ts +1 -1
- package/internals/testing/helpers/ngxs-test.component.d.ts +5 -5
- package/internals/testing/helpers/ngxs-test.module.d.ts +4 -4
- package/internals/testing/index.d.ts +3 -3
- package/internals/testing/ngxs-store-internals-testing.d.ts +4 -4
- package/internals/testing/ngxs-store-internals-testing.metadata.json +1 -1
- package/internals/testing/ngxs.setup.d.ts +7 -7
- package/internals/testing/symbol.d.ts +14 -14
- package/ngxs-store.d.ts +23 -20
- package/ngxs-store.metadata.json +1 -1
- package/operators/append.d.ts +6 -6
- package/operators/compose.d.ts +2 -3
- package/operators/iif.d.ts +11 -11
- package/operators/index.d.ts +13 -13
- package/operators/insert-item.d.ts +7 -7
- package/operators/internals.d.ts +2 -2
- package/operators/ngxs-store-operators.d.ts +4 -4
- package/operators/ngxs-store-operators.metadata.json +1 -1
- package/operators/patch.d.ts +10 -6
- package/operators/remove-item.d.ts +7 -7
- package/operators/update-item.d.ts +10 -10
- package/operators/utils.d.ts +9 -10
- package/package.json +2 -2
- package/src/actions/actions.d.ts +15 -15
- package/src/actions/symbols.d.ts +21 -21
- package/src/actions-stream.d.ts +49 -49
- package/src/configs/messages.config.d.ts +30 -11
- package/src/decorators/action.d.ts +5 -5
- package/src/decorators/select/select-factory.d.ts +14 -13
- package/src/decorators/select/select.d.ts +4 -4
- package/src/decorators/select/symbols.d.ts +10 -14
- package/src/decorators/selector/selector.d.ts +5 -5
- package/src/decorators/selector/symbols.d.ts +4 -4
- package/src/decorators/selector-options.d.ts +5 -5
- package/src/decorators/state.d.ts +6 -6
- package/src/execution/dispatch-outside-zone-ngxs-execution-strategy.d.ts +12 -11
- package/src/execution/internal-ngxs-execution-strategy.d.ts +7 -7
- package/src/execution/noop-ngxs-execution-strategy.d.ts +5 -5
- package/src/execution/symbols.d.ts +6 -6
- package/src/host-environment/host-environment.d.ts +6 -0
- package/src/internal/config-validator.d.ts +10 -0
- package/src/internal/dispatcher.d.ts +32 -32
- package/src/internal/internals.d.ts +167 -166
- package/src/internal/lifecycle-state-manager.d.ts +20 -20
- package/src/internal/state-context-factory.d.ts +15 -15
- package/src/internal/state-factory.d.ts +58 -57
- package/src/internal/state-operations.d.ts +21 -19
- package/src/internal/state-operators.d.ts +2 -2
- package/src/internal/state-stream.d.ts +9 -9
- package/src/ivy/ensure-state-class-is-injectable.d.ts +6 -0
- package/src/ivy/ivy-enabled-in-dev-mode.d.ts +14 -6
- package/src/module.d.ts +23 -23
- package/src/modules/ngxs-feature.module.d.ts +13 -13
- package/src/modules/ngxs-root.module.d.ts +13 -13
- package/src/operators/leave-ngxs.d.ts +7 -7
- package/src/operators/of-action.d.ts +43 -43
- package/src/plugin-manager.d.ts +10 -10
- package/src/plugin_api.d.ts +5 -5
- package/src/public_api.d.ts +17 -17
- package/src/public_to_deprecate.d.ts +21 -21
- package/src/state-token/state-token.d.ts +7 -7
- package/src/state-token/symbols.d.ts +5 -5
- package/src/store.d.ts +53 -53
- package/src/symbols.d.ts +137 -135
- package/src/utils/compose.d.ts +23 -23
- package/src/utils/freeze.d.ts +5 -5
- package/src/utils/selector-utils.d.ts +23 -23
- package/src/utils/store-validators.d.ts +8 -7
- package/src/utils/utils.d.ts +46 -46
- package/types/index.d.ts +2 -2
- package/esm2015/internals/decorator-injector-adapter.js +0 -204
- package/esm5/internals/decorator-injector-adapter.js +0 -204
- package/internals/decorator-injector-adapter.d.ts +0 -15
package/esm5/src/store.js
CHANGED
|
@@ -1,225 +1,225 @@
|
|
|
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
|
-
// tslint:disable:unified-signatures
|
|
7
|
-
import { Inject, Injectable, Optional } from '@angular/core';
|
|
8
|
-
import { of, throwError } from 'rxjs';
|
|
9
|
-
import { catchError, distinctUntilChanged, map, take } from 'rxjs/operators';
|
|
10
|
-
import { INITIAL_STATE_TOKEN } from '@ngxs/store/internals';
|
|
11
|
-
import { InternalNgxsExecutionStrategy } from './execution/internal-ngxs-execution-strategy';
|
|
12
|
-
import { InternalStateOperations } from './internal/state-operations';
|
|
13
|
-
import { getRootSelectorFactory } from './utils/selector-utils';
|
|
14
|
-
import { StateStream } from './internal/state-stream';
|
|
15
|
-
import { leaveNgxs } from './operators/leave-ngxs';
|
|
16
|
-
import { NgxsConfig } from './symbols';
|
|
17
|
-
import { StateFactory } from './internal/state-factory';
|
|
18
|
-
var Store = /** @class */ (function () {
|
|
19
|
-
function Store(_stateStream, _internalStateOperations, _config, _internalExecutionStrategy, _stateFactory, initialStateValue) {
|
|
20
|
-
this._stateStream = _stateStream;
|
|
21
|
-
this._internalStateOperations = _internalStateOperations;
|
|
22
|
-
this._config = _config;
|
|
23
|
-
this._internalExecutionStrategy = _internalExecutionStrategy;
|
|
24
|
-
this._stateFactory = _stateFactory;
|
|
25
|
-
this.initStateStream(initialStateValue);
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Dispatches event(s).
|
|
29
|
-
*/
|
|
30
|
-
/**
|
|
31
|
-
* Dispatches event(s).
|
|
32
|
-
* @param {?} actionOrActions
|
|
33
|
-
* @return {?}
|
|
34
|
-
*/
|
|
35
|
-
Store.prototype.dispatch = /**
|
|
36
|
-
* Dispatches event(s).
|
|
37
|
-
* @param {?} actionOrActions
|
|
38
|
-
* @return {?}
|
|
39
|
-
*/
|
|
40
|
-
function (actionOrActions) {
|
|
41
|
-
return this._internalStateOperations.getRootStateOperations().dispatch(actionOrActions);
|
|
42
|
-
};
|
|
43
|
-
/**
|
|
44
|
-
* @param {?} selector
|
|
45
|
-
* @return {?}
|
|
46
|
-
*/
|
|
47
|
-
Store.prototype.select = /**
|
|
48
|
-
* @param {?} selector
|
|
49
|
-
* @return {?}
|
|
50
|
-
*/
|
|
51
|
-
function (selector) {
|
|
52
|
-
var _this = this;
|
|
53
|
-
/** @type {?} */
|
|
54
|
-
var selectorFn = this.getStoreBoundSelectorFn(selector);
|
|
55
|
-
return this._stateStream.pipe(map(selectorFn), catchError((/**
|
|
56
|
-
* @param {?} err
|
|
57
|
-
* @return {?}
|
|
58
|
-
*/
|
|
59
|
-
function (err) {
|
|
60
|
-
// if error is TypeError we swallow it to prevent usual errors with property access
|
|
61
|
-
var suppressErrors = _this._config.selectorOptions.suppressErrors;
|
|
62
|
-
if (err instanceof TypeError && suppressErrors) {
|
|
63
|
-
return of(undefined);
|
|
64
|
-
}
|
|
65
|
-
// rethrow other errors
|
|
66
|
-
return throwError(err);
|
|
67
|
-
})), distinctUntilChanged(), leaveNgxs(this._internalExecutionStrategy));
|
|
68
|
-
};
|
|
69
|
-
/**
|
|
70
|
-
* @param {?} selector
|
|
71
|
-
* @return {?}
|
|
72
|
-
*/
|
|
73
|
-
Store.prototype.selectOnce = /**
|
|
74
|
-
* @param {?} selector
|
|
75
|
-
* @return {?}
|
|
76
|
-
*/
|
|
77
|
-
function (selector) {
|
|
78
|
-
return this.select(selector).pipe(take(1));
|
|
79
|
-
};
|
|
80
|
-
/**
|
|
81
|
-
* @param {?} selector
|
|
82
|
-
* @return {?}
|
|
83
|
-
*/
|
|
84
|
-
Store.prototype.selectSnapshot = /**
|
|
85
|
-
* @param {?} selector
|
|
86
|
-
* @return {?}
|
|
87
|
-
*/
|
|
88
|
-
function (selector) {
|
|
89
|
-
/** @type {?} */
|
|
90
|
-
var selectorFn = this.getStoreBoundSelectorFn(selector);
|
|
91
|
-
return selectorFn(this._stateStream.getValue());
|
|
92
|
-
};
|
|
93
|
-
/**
|
|
94
|
-
* Allow the user to subscribe to the root of the state
|
|
95
|
-
*/
|
|
96
|
-
/**
|
|
97
|
-
* Allow the user to subscribe to the root of the state
|
|
98
|
-
* @param {?=} fn
|
|
99
|
-
* @return {?}
|
|
100
|
-
*/
|
|
101
|
-
Store.prototype.subscribe = /**
|
|
102
|
-
* Allow the user to subscribe to the root of the state
|
|
103
|
-
* @param {?=} fn
|
|
104
|
-
* @return {?}
|
|
105
|
-
*/
|
|
106
|
-
function (fn) {
|
|
107
|
-
return this._stateStream.pipe(leaveNgxs(this._internalExecutionStrategy)).subscribe(fn);
|
|
108
|
-
};
|
|
109
|
-
/**
|
|
110
|
-
* Return the raw value of the state.
|
|
111
|
-
*/
|
|
112
|
-
/**
|
|
113
|
-
* Return the raw value of the state.
|
|
114
|
-
* @return {?}
|
|
115
|
-
*/
|
|
116
|
-
Store.prototype.snapshot = /**
|
|
117
|
-
* Return the raw value of the state.
|
|
118
|
-
* @return {?}
|
|
119
|
-
*/
|
|
120
|
-
function () {
|
|
121
|
-
return this._internalStateOperations.getRootStateOperations().getState();
|
|
122
|
-
};
|
|
123
|
-
/**
|
|
124
|
-
* Reset the state to a specific point in time. This method is useful
|
|
125
|
-
* for plugin's who need to modify the state directly or unit testing.
|
|
126
|
-
*/
|
|
127
|
-
/**
|
|
128
|
-
* Reset the state to a specific point in time. This method is useful
|
|
129
|
-
* for plugin's who need to modify the state directly or unit testing.
|
|
130
|
-
* @param {?} state
|
|
131
|
-
* @return {?}
|
|
132
|
-
*/
|
|
133
|
-
Store.prototype.reset = /**
|
|
134
|
-
* Reset the state to a specific point in time. This method is useful
|
|
135
|
-
* for plugin's who need to modify the state directly or unit testing.
|
|
136
|
-
* @param {?} state
|
|
137
|
-
* @return {?}
|
|
138
|
-
*/
|
|
139
|
-
function (state) {
|
|
140
|
-
return this._internalStateOperations.getRootStateOperations().setState(state);
|
|
141
|
-
};
|
|
142
|
-
/**
|
|
143
|
-
* @private
|
|
144
|
-
* @param {?} selector
|
|
145
|
-
* @return {?}
|
|
146
|
-
*/
|
|
147
|
-
Store.prototype.getStoreBoundSelectorFn = /**
|
|
148
|
-
* @private
|
|
149
|
-
* @param {?} selector
|
|
150
|
-
* @return {?}
|
|
151
|
-
*/
|
|
152
|
-
function (selector) {
|
|
153
|
-
/** @type {?} */
|
|
154
|
-
var makeSelectorFn = getRootSelectorFactory(selector);
|
|
155
|
-
/** @type {?} */
|
|
156
|
-
var runtimeContext = this._stateFactory.getRuntimeSelectorContext();
|
|
157
|
-
return makeSelectorFn(runtimeContext);
|
|
158
|
-
};
|
|
159
|
-
/**
|
|
160
|
-
* @private
|
|
161
|
-
* @param {?} initialStateValue
|
|
162
|
-
* @return {?}
|
|
163
|
-
*/
|
|
164
|
-
Store.prototype.initStateStream = /**
|
|
165
|
-
* @private
|
|
166
|
-
* @param {?} initialStateValue
|
|
167
|
-
* @return {?}
|
|
168
|
-
*/
|
|
169
|
-
function (initialStateValue) {
|
|
170
|
-
/** @type {?} */
|
|
171
|
-
var value = this._stateStream.value;
|
|
172
|
-
/** @type {?} */
|
|
173
|
-
var storeIsEmpty = !value || Object.keys(value).length === 0;
|
|
174
|
-
if (storeIsEmpty) {
|
|
175
|
-
/** @type {?} */
|
|
176
|
-
var defaultStateNotEmpty = Object.keys(this._config.defaultsState).length > 0;
|
|
177
|
-
/** @type {?} */
|
|
178
|
-
var storeValues = defaultStateNotEmpty
|
|
179
|
-
? tslib_1.__assign({}, this._config.defaultsState, initialStateValue) : initialStateValue;
|
|
180
|
-
this._stateStream.next(storeValues);
|
|
181
|
-
}
|
|
182
|
-
};
|
|
183
|
-
Store.decorators = [
|
|
184
|
-
{ type: Injectable }
|
|
185
|
-
];
|
|
186
|
-
/** @nocollapse */
|
|
187
|
-
Store.ctorParameters = function () { return [
|
|
188
|
-
{ type: StateStream },
|
|
189
|
-
{ type: InternalStateOperations },
|
|
190
|
-
{ type: NgxsConfig },
|
|
191
|
-
{ type: InternalNgxsExecutionStrategy },
|
|
192
|
-
{ type: StateFactory },
|
|
193
|
-
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [INITIAL_STATE_TOKEN,] }] }
|
|
194
|
-
]; };
|
|
195
|
-
return Store;
|
|
196
|
-
}());
|
|
197
|
-
export { Store };
|
|
198
|
-
if (false) {
|
|
199
|
-
/**
|
|
200
|
-
* @type {?}
|
|
201
|
-
* @private
|
|
202
|
-
*/
|
|
203
|
-
Store.prototype._stateStream;
|
|
204
|
-
/**
|
|
205
|
-
* @type {?}
|
|
206
|
-
* @private
|
|
207
|
-
*/
|
|
208
|
-
Store.prototype._internalStateOperations;
|
|
209
|
-
/**
|
|
210
|
-
* @type {?}
|
|
211
|
-
* @private
|
|
212
|
-
*/
|
|
213
|
-
Store.prototype._config;
|
|
214
|
-
/**
|
|
215
|
-
* @type {?}
|
|
216
|
-
* @private
|
|
217
|
-
*/
|
|
218
|
-
Store.prototype._internalExecutionStrategy;
|
|
219
|
-
/**
|
|
220
|
-
* @type {?}
|
|
221
|
-
* @private
|
|
222
|
-
*/
|
|
223
|
-
Store.prototype._stateFactory;
|
|
224
|
-
}
|
|
225
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS8iLCJzb3VyY2VzIjpbInNyYy9zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFjLEVBQUUsRUFBZ0IsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxtQkFBbUIsRUFBZSxNQUFNLHVCQUF1QixDQUFDO0FBRXpFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzdGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV2QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFeEQ7SUFFRSxlQUNVLFlBQXlCLEVBQ3pCLHdCQUFpRCxFQUNqRCxPQUFtQixFQUNuQiwwQkFBeUQsRUFDekQsYUFBMkIsRUFHbkMsaUJBQXNCO1FBUGQsaUJBQVksR0FBWixZQUFZLENBQWE7UUFDekIsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUF5QjtRQUNqRCxZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQ25CLCtCQUEwQixHQUExQiwwQkFBMEIsQ0FBK0I7UUFDekQsa0JBQWEsR0FBYixhQUFhLENBQWM7UUFLbkMsSUFBSSxDQUFD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QyxhQUFhLEVBQUssaUJBQWlCLEVBQ3ZELENBQUMsQ0FBQyxpQkFBaUI7WUFFckIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDckM7SUFDSCxDQUFDOztnQkE3R0YsVUFBVTs7OztnQkFORixXQUFXO2dCQUZYLHVCQUF1QjtnQkFJdkIsVUFBVTtnQkFMViw2QkFBNkI7Z0JBTzdCLFlBQVk7Z0RBVWhCLFFBQVEsWUFDUixNQUFNLFNBQUMsbUJBQW1COztJQXFHL0IsWUFBQztDQUFBLEFBOUdELElBOEdDO1NBN0dZLEtBQUs7Ozs7OztJQUVkLDZCQUFpQzs7Ozs7SUFDakMseUNBQXlEOzs7OztJQUN6RCx3QkFBMkI7Ozs7O0lBQzNCLDJDQUFpRTs7Ozs7SUFDakUsOEJBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdHNsaW50OmRpc2FibGU6dW5pZmllZC1zaWduYXR1cmVzXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9uLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSU5JVElBTF9TVEFURV9UT0tFTiwgUGxhaW5PYmplY3QgfSBmcm9tICdAbmd4cy9zdG9yZS9pbnRlcm5hbHMnO1xuXG5pbXBvcnQgeyBJbnRlcm5hbE5neHNFeGVjdXRpb25TdHJhdGVneSB9IGZyb20gJy4vZXhlY3V0aW9uL2ludGVybmFsLW5neHMtZXhlY3V0aW9uLXN0cmF0ZWd5JztcbmltcG9ydCB7IEludGVybmFsU3RhdGVPcGVyYXRpb25zIH0gZnJvbSAnLi9pbnRlcm5hbC9zdGF0ZS1vcGVyYXRpb25zJztcbmltcG9ydCB7IGdldFJvb3RTZWxlY3RvckZhY3RvcnkgfSBmcm9tICcuL3V0aWxzL3NlbGVjdG9yLXV0aWxzJztcbmltcG9ydCB7IFN0YXRlU3RyZWFtIH0gZnJvbSAnLi9pbnRlcm5hbC9zdGF0ZS1zdHJlYW0nO1xuaW1wb3J0IHsgbGVhdmVOZ3hzIH0gZnJvbSAnLi9vcGVyYXRvcnMvbGVhdmUtbmd4cyc7XG5pbXBvcnQgeyBOZ3hzQ29uZmlnIH0gZnJvbSAnLi9zeW1ib2xzJztcbmltcG9ydCB7IFN0YXRlVG9rZW4gfSBmcm9tICcuL3N0YXRlLXRva2VuL3N0YXRlLXRva2VuJztcbmltcG9ydCB7IFN0YXRlRmFjdG9yeSB9IGZyb20gJy4vaW50ZXJuYWwvc3RhdGUtZmFjdG9yeSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTdG9yZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX3N0YXRlU3RyZWFtOiBTdGF0ZVN0cmVhbSxcbiAgICBwcml2YXRlIF9pbnRlcm5hbFN0YXRlT3BlcmF0aW9uczogSW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnMsXG4gICAgcHJpdmF0ZSBfY29uZmlnOiBOZ3hzQ29uZmlnLFxuICAgIHByaXZhdGUgX2ludGVybmFsRXhlY3V0aW9uU3RyYXRlZ3k6IEludGVybmFsTmd4c0V4ZWN1dGlvblN0cmF0ZWd5LFxuICAgIHByaXZhdGUgX3N0YXRlRmFjdG9yeTogU3RhdGVGYWN0b3J5LFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEluamVjdChJTklUSUFMX1NUQVRFX1RPS0VOKVxuICAgIGluaXRpYWxTdGF0ZVZhbHVlOiBhbnlcbiAgKSB7XG4gICAgdGhpcy5pbml0U3RhdGVTdHJlYW0oaW5pdGlhbFN0YXRlVmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIERpc3BhdGNoZXMgZXZlbnQocykuXG4gICAqL1xuICBkaXNwYXRjaChhY3Rpb25PckFjdGlvbnM6IGFueSB8IGFueVtdKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5faW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnMuZ2V0Um9vdFN0YXRlT3BlcmF0aW9ucygpLmRpc3BhdGNoKGFjdGlvbk9yQWN0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogU2VsZWN0cyBhIHNsaWNlIG9mIGRhdGEgZnJvbSB0aGUgc3RvcmUuXG4gICAqL1xuICBzZWxlY3Q8VD4oc2VsZWN0b3I6IChzdGF0ZTogYW55LCAuLi5zdGF0ZXM6IGFueVtdKSA9PiBUKTogT2JzZXJ2YWJsZTxUPjtcbiAgc2VsZWN0PFQgPSBhbnk+KHNlbGVjdG9yOiBzdHJpbmcgfCBUeXBlPGFueT4pOiBPYnNlcnZhYmxlPFQ+O1xuICBzZWxlY3Q8VD4oc2VsZWN0b3I6IFN0YXRlVG9rZW48VD4pOiBPYnNlcnZhYmxlPFQ+O1xuICBzZWxlY3Qoc2VsZWN0b3I6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3Qgc2VsZWN0b3JGbiA9IHRoaXMuZ2V0U3RvcmVCb3VuZFNlbGVjdG9yRm4oc2VsZWN0b3IpO1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZVN0cmVhbS5waXBlKFxuICAgICAgbWFwKHNlbGVjdG9yRm4pLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyOiBFcnJvcik6IE9ic2VydmFibGU8bmV2ZXI+IHwgT2JzZXJ2YWJsZTx1bmRlZmluZWQ+ID0+IHtcbiAgICAgICAgLy8gaWYgZXJyb3IgaXMgVHlwZUVycm9yIHdlIHN3YWxsb3cgaXQgdG8gcHJldmVudCB1c3VhbCBlcnJvcnMgd2l0aCBwcm9wZXJ0eSBhY2Nlc3NcbiAgICAgICAgY29uc3QgeyBzdXBwcmVzc0Vycm9ycyB9ID0gdGhpcy5fY29uZmlnLnNlbGVjdG9yT3B0aW9ucztcblxuICAgICAgICBpZiAoZXJyIGluc3RhbmNlb2YgVHlwZUVycm9yICYmIHN1cHByZXNzRXJyb3JzKSB7XG4gICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyByZXRocm93IG90aGVyIGVycm9yc1xuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnIpO1xuICAgICAgfSksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgbGVhdmVOZ3hzKHRoaXMuX2ludGVybmFsRXhlY3V0aW9uU3RyYXRlZ3kpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZWxlY3Qgb25lIHNsaWNlIG9mIGRhdGEgZnJvbSB0aGUgc3RvcmUuXG4gICAqL1xuXG4gIHNlbGVjdE9uY2U8VD4oc2VsZWN0b3I6IChzdGF0ZTogYW55LCAuLi5zdGF0ZXM6IGFueVtdKSA9PiBUKTogT2JzZXJ2YWJsZTxUPjtcbiAgc2VsZWN0T25jZTxUID0gYW55PihzZWxlY3Rvcjogc3RyaW5nIHwgVHlwZTxhbnk+KTogT2JzZXJ2YWJsZTxUPjtcbiAgc2VsZWN0T25jZTxUPihzZWxlY3RvcjogU3RhdGVUb2tlbjxUPik6IE9ic2VydmFibGU8VD47XG4gIHNlbGVjdE9uY2Uoc2VsZWN0b3I6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0KHNlbGVjdG9yKS5waXBlKHRha2UoMSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbGVjdCBhIHNuYXBzaG90IGZyb20gdGhlIHN0YXRlLlxuICAgKi9cbiAgc2VsZWN0U25hcHNob3Q8VD4oc2VsZWN0b3I6IChzdGF0ZTogYW55LCAuLi5zdGF0ZXM6IGFueVtdKSA9PiBUKTogVDtcbiAgc2VsZWN0U25hcHNob3Q8VCA9IGFueT4oc2VsZWN0b3I6IHN0cmluZyB8IFR5cGU8YW55Pik6IFQ7XG4gIHNlbGVjdFNuYXBzaG90PFQ+KHNlbGVjdG9yOiBTdGF0ZVRva2VuPFQ+KTogVDtcbiAgc2VsZWN0U25hcHNob3Qoc2VsZWN0b3I6IGFueSk6IGFueSB7XG4gICAgY29uc3Qgc2VsZWN0b3JGbiA9IHRoaXMuZ2V0U3RvcmVCb3VuZFNlbGVjdG9yRm4oc2VsZWN0b3IpO1xuICAgIHJldHVybiBzZWxlY3RvckZuKHRoaXMuX3N0YXRlU3RyZWFtLmdldFZhbHVlKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFsbG93IHRoZSB1c2VyIHRvIHN1YnNjcmliZSB0byB0aGUgcm9vdCBvZiB0aGUgc3RhdGVcbiAgICovXG4gIHN1YnNjcmliZShmbj86ICh2YWx1ZTogYW55KSA9PiB2b2lkKTogU3Vic2NyaXB0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGVTdHJlYW0ucGlwZShsZWF2ZU5neHModGhpcy5faW50ZXJuYWxFeGVjdXRpb25TdHJhdGVneSkpLnN1YnNjcmliZShmbik7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSByYXcgdmFsdWUgb2YgdGhlIHN0YXRlLlxuICAgKi9cbiAgc25hcHNob3QoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5faW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnMuZ2V0Um9vdFN0YXRlT3BlcmF0aW9ucygpLmdldFN0YXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXQgdGhlIHN0YXRlIHRvIGEgc3BlY2lmaWMgcG9pbnQgaW4gdGltZS4gVGhpcyBtZXRob2QgaXMgdXNlZnVsXG4gICAqIGZvciBwbHVnaW4ncyB3aG8gbmVlZCB0byBtb2RpZnkgdGhlIHN0YXRlIGRpcmVjdGx5IG9yIHVuaXQgdGVzdGluZy5cbiAgICovXG4gIHJlc2V0KHN0YXRlOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5faW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnMuZ2V0Um9vdFN0YXRlT3BlcmF0aW9ucygpLnNldFN0YXRlKHN0YXRlKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U3RvcmVCb3VuZFNlbGVjdG9yRm4oc2VsZWN0b3I6IGFueSkge1xuICAgIGNvbnN0IG1ha2VTZWxlY3RvckZuID0gZ2V0Um9vdFNlbGVjdG9yRmFjdG9yeShzZWxlY3Rvcik7XG4gICAgY29uc3QgcnVudGltZUNvbnRleHQgPSB0aGlzLl9zdGF0ZUZhY3RvcnkuZ2V0UnVudGltZVNlbGVjdG9yQ29udGV4dCgpO1xuICAgIHJldHVybiBtYWtlU2VsZWN0b3JGbihydW50aW1lQ29udGV4dCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRTdGF0ZVN0cmVhbShpbml0aWFsU3RhdGVWYWx1ZTogYW55KTogdm9pZCB7XG4gICAgY29uc3QgdmFsdWU6IFBsYWluT2JqZWN0ID0gdGhpcy5fc3RhdGVTdHJlYW0udmFsdWU7XG4gICAgY29uc3Qgc3RvcmVJc0VtcHR5OiBib29sZWFuID0gIXZhbHVlIHx8IE9iamVjdC5rZXlzKHZhbHVlKS5sZW5ndGggPT09IDA7XG4gICAgaWYgKHN0b3JlSXNFbXB0eSkge1xuICAgICAgY29uc3QgZGVmYXVsdFN0YXRlTm90RW1wdHk6IGJvb2xlYW4gPSBPYmplY3Qua2V5cyh0aGlzLl9jb25maWcuZGVmYXVsdHNTdGF0ZSkubGVuZ3RoID4gMDtcbiAgICAgIGNvbnN0IHN0b3JlVmFsdWVzOiBQbGFpbk9iamVjdCA9IGRlZmF1bHRTdGF0ZU5vdEVtcHR5XG4gICAgICAgID8geyAuLi50aGlzLl9jb25maWcuZGVmYXVsdHNTdGF0ZSwgLi4uaW5pdGlhbFN0YXRlVmFsdWUgfVxuICAgICAgICA6IGluaXRpYWxTdGF0ZVZhbHVlO1xuXG4gICAgICB0aGlzLl9zdGF0ZVN0cmVhbS5uZXh0KHN0b3JlVmFsdWVzKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
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
|
+
// tslint:disable:unified-signatures
|
|
7
|
+
import { Inject, Injectable, Optional } from '@angular/core';
|
|
8
|
+
import { of, throwError } from 'rxjs';
|
|
9
|
+
import { catchError, distinctUntilChanged, map, take } from 'rxjs/operators';
|
|
10
|
+
import { INITIAL_STATE_TOKEN } from '@ngxs/store/internals';
|
|
11
|
+
import { InternalNgxsExecutionStrategy } from './execution/internal-ngxs-execution-strategy';
|
|
12
|
+
import { InternalStateOperations } from './internal/state-operations';
|
|
13
|
+
import { getRootSelectorFactory } from './utils/selector-utils';
|
|
14
|
+
import { StateStream } from './internal/state-stream';
|
|
15
|
+
import { leaveNgxs } from './operators/leave-ngxs';
|
|
16
|
+
import { NgxsConfig } from './symbols';
|
|
17
|
+
import { StateFactory } from './internal/state-factory';
|
|
18
|
+
var Store = /** @class */ (function () {
|
|
19
|
+
function Store(_stateStream, _internalStateOperations, _config, _internalExecutionStrategy, _stateFactory, initialStateValue) {
|
|
20
|
+
this._stateStream = _stateStream;
|
|
21
|
+
this._internalStateOperations = _internalStateOperations;
|
|
22
|
+
this._config = _config;
|
|
23
|
+
this._internalExecutionStrategy = _internalExecutionStrategy;
|
|
24
|
+
this._stateFactory = _stateFactory;
|
|
25
|
+
this.initStateStream(initialStateValue);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Dispatches event(s).
|
|
29
|
+
*/
|
|
30
|
+
/**
|
|
31
|
+
* Dispatches event(s).
|
|
32
|
+
* @param {?} actionOrActions
|
|
33
|
+
* @return {?}
|
|
34
|
+
*/
|
|
35
|
+
Store.prototype.dispatch = /**
|
|
36
|
+
* Dispatches event(s).
|
|
37
|
+
* @param {?} actionOrActions
|
|
38
|
+
* @return {?}
|
|
39
|
+
*/
|
|
40
|
+
function (actionOrActions) {
|
|
41
|
+
return this._internalStateOperations.getRootStateOperations().dispatch(actionOrActions);
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* @param {?} selector
|
|
45
|
+
* @return {?}
|
|
46
|
+
*/
|
|
47
|
+
Store.prototype.select = /**
|
|
48
|
+
* @param {?} selector
|
|
49
|
+
* @return {?}
|
|
50
|
+
*/
|
|
51
|
+
function (selector) {
|
|
52
|
+
var _this = this;
|
|
53
|
+
/** @type {?} */
|
|
54
|
+
var selectorFn = this.getStoreBoundSelectorFn(selector);
|
|
55
|
+
return this._stateStream.pipe(map(selectorFn), catchError((/**
|
|
56
|
+
* @param {?} err
|
|
57
|
+
* @return {?}
|
|
58
|
+
*/
|
|
59
|
+
function (err) {
|
|
60
|
+
// if error is TypeError we swallow it to prevent usual errors with property access
|
|
61
|
+
var suppressErrors = _this._config.selectorOptions.suppressErrors;
|
|
62
|
+
if (err instanceof TypeError && suppressErrors) {
|
|
63
|
+
return of(undefined);
|
|
64
|
+
}
|
|
65
|
+
// rethrow other errors
|
|
66
|
+
return throwError(err);
|
|
67
|
+
})), distinctUntilChanged(), leaveNgxs(this._internalExecutionStrategy));
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* @param {?} selector
|
|
71
|
+
* @return {?}
|
|
72
|
+
*/
|
|
73
|
+
Store.prototype.selectOnce = /**
|
|
74
|
+
* @param {?} selector
|
|
75
|
+
* @return {?}
|
|
76
|
+
*/
|
|
77
|
+
function (selector) {
|
|
78
|
+
return this.select(selector).pipe(take(1));
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* @param {?} selector
|
|
82
|
+
* @return {?}
|
|
83
|
+
*/
|
|
84
|
+
Store.prototype.selectSnapshot = /**
|
|
85
|
+
* @param {?} selector
|
|
86
|
+
* @return {?}
|
|
87
|
+
*/
|
|
88
|
+
function (selector) {
|
|
89
|
+
/** @type {?} */
|
|
90
|
+
var selectorFn = this.getStoreBoundSelectorFn(selector);
|
|
91
|
+
return selectorFn(this._stateStream.getValue());
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* Allow the user to subscribe to the root of the state
|
|
95
|
+
*/
|
|
96
|
+
/**
|
|
97
|
+
* Allow the user to subscribe to the root of the state
|
|
98
|
+
* @param {?=} fn
|
|
99
|
+
* @return {?}
|
|
100
|
+
*/
|
|
101
|
+
Store.prototype.subscribe = /**
|
|
102
|
+
* Allow the user to subscribe to the root of the state
|
|
103
|
+
* @param {?=} fn
|
|
104
|
+
* @return {?}
|
|
105
|
+
*/
|
|
106
|
+
function (fn) {
|
|
107
|
+
return this._stateStream.pipe(leaveNgxs(this._internalExecutionStrategy)).subscribe(fn);
|
|
108
|
+
};
|
|
109
|
+
/**
|
|
110
|
+
* Return the raw value of the state.
|
|
111
|
+
*/
|
|
112
|
+
/**
|
|
113
|
+
* Return the raw value of the state.
|
|
114
|
+
* @return {?}
|
|
115
|
+
*/
|
|
116
|
+
Store.prototype.snapshot = /**
|
|
117
|
+
* Return the raw value of the state.
|
|
118
|
+
* @return {?}
|
|
119
|
+
*/
|
|
120
|
+
function () {
|
|
121
|
+
return this._internalStateOperations.getRootStateOperations().getState();
|
|
122
|
+
};
|
|
123
|
+
/**
|
|
124
|
+
* Reset the state to a specific point in time. This method is useful
|
|
125
|
+
* for plugin's who need to modify the state directly or unit testing.
|
|
126
|
+
*/
|
|
127
|
+
/**
|
|
128
|
+
* Reset the state to a specific point in time. This method is useful
|
|
129
|
+
* for plugin's who need to modify the state directly or unit testing.
|
|
130
|
+
* @param {?} state
|
|
131
|
+
* @return {?}
|
|
132
|
+
*/
|
|
133
|
+
Store.prototype.reset = /**
|
|
134
|
+
* Reset the state to a specific point in time. This method is useful
|
|
135
|
+
* for plugin's who need to modify the state directly or unit testing.
|
|
136
|
+
* @param {?} state
|
|
137
|
+
* @return {?}
|
|
138
|
+
*/
|
|
139
|
+
function (state) {
|
|
140
|
+
return this._internalStateOperations.getRootStateOperations().setState(state);
|
|
141
|
+
};
|
|
142
|
+
/**
|
|
143
|
+
* @private
|
|
144
|
+
* @param {?} selector
|
|
145
|
+
* @return {?}
|
|
146
|
+
*/
|
|
147
|
+
Store.prototype.getStoreBoundSelectorFn = /**
|
|
148
|
+
* @private
|
|
149
|
+
* @param {?} selector
|
|
150
|
+
* @return {?}
|
|
151
|
+
*/
|
|
152
|
+
function (selector) {
|
|
153
|
+
/** @type {?} */
|
|
154
|
+
var makeSelectorFn = getRootSelectorFactory(selector);
|
|
155
|
+
/** @type {?} */
|
|
156
|
+
var runtimeContext = this._stateFactory.getRuntimeSelectorContext();
|
|
157
|
+
return makeSelectorFn(runtimeContext);
|
|
158
|
+
};
|
|
159
|
+
/**
|
|
160
|
+
* @private
|
|
161
|
+
* @param {?} initialStateValue
|
|
162
|
+
* @return {?}
|
|
163
|
+
*/
|
|
164
|
+
Store.prototype.initStateStream = /**
|
|
165
|
+
* @private
|
|
166
|
+
* @param {?} initialStateValue
|
|
167
|
+
* @return {?}
|
|
168
|
+
*/
|
|
169
|
+
function (initialStateValue) {
|
|
170
|
+
/** @type {?} */
|
|
171
|
+
var value = this._stateStream.value;
|
|
172
|
+
/** @type {?} */
|
|
173
|
+
var storeIsEmpty = !value || Object.keys(value).length === 0;
|
|
174
|
+
if (storeIsEmpty) {
|
|
175
|
+
/** @type {?} */
|
|
176
|
+
var defaultStateNotEmpty = Object.keys(this._config.defaultsState).length > 0;
|
|
177
|
+
/** @type {?} */
|
|
178
|
+
var storeValues = defaultStateNotEmpty
|
|
179
|
+
? tslib_1.__assign({}, this._config.defaultsState, initialStateValue) : initialStateValue;
|
|
180
|
+
this._stateStream.next(storeValues);
|
|
181
|
+
}
|
|
182
|
+
};
|
|
183
|
+
Store.decorators = [
|
|
184
|
+
{ type: Injectable }
|
|
185
|
+
];
|
|
186
|
+
/** @nocollapse */
|
|
187
|
+
Store.ctorParameters = function () { return [
|
|
188
|
+
{ type: StateStream },
|
|
189
|
+
{ type: InternalStateOperations },
|
|
190
|
+
{ type: NgxsConfig },
|
|
191
|
+
{ type: InternalNgxsExecutionStrategy },
|
|
192
|
+
{ type: StateFactory },
|
|
193
|
+
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [INITIAL_STATE_TOKEN,] }] }
|
|
194
|
+
]; };
|
|
195
|
+
return Store;
|
|
196
|
+
}());
|
|
197
|
+
export { Store };
|
|
198
|
+
if (false) {
|
|
199
|
+
/**
|
|
200
|
+
* @type {?}
|
|
201
|
+
* @private
|
|
202
|
+
*/
|
|
203
|
+
Store.prototype._stateStream;
|
|
204
|
+
/**
|
|
205
|
+
* @type {?}
|
|
206
|
+
* @private
|
|
207
|
+
*/
|
|
208
|
+
Store.prototype._internalStateOperations;
|
|
209
|
+
/**
|
|
210
|
+
* @type {?}
|
|
211
|
+
* @private
|
|
212
|
+
*/
|
|
213
|
+
Store.prototype._config;
|
|
214
|
+
/**
|
|
215
|
+
* @type {?}
|
|
216
|
+
* @private
|
|
217
|
+
*/
|
|
218
|
+
Store.prototype._internalExecutionStrategy;
|
|
219
|
+
/**
|
|
220
|
+
* @type {?}
|
|
221
|
+
* @private
|
|
222
|
+
*/
|
|
223
|
+
Store.prototype._stateFactory;
|
|
224
|
+
}
|
|
225
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS8iLCJzb3VyY2VzIjpbInNyYy9zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFjLEVBQUUsRUFBZ0IsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxtQkFBbUIsRUFBZSxNQUFNLHVCQUF1QixDQUFDO0FBRXpFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzdGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV2QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFeEQ7SUFFRSxlQUNVLFlBQXlCLEVBQ3pCLHdCQUFpRCxFQUNqRCxPQUFtQixFQUNuQiwwQkFBeUQsRUFDekQsYUFBMkIsRUFHbkMsaUJBQXNCO1FBUGQsaUJBQVksR0FBWixZQUFZLENBQWE7UUFDekIsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUF5QjtRQUNqRCxZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQ25CLCtCQUEwQixHQUExQiwwQkFBMEIsQ0FBK0I7UUFDekQsa0JBQWEsR0FBYixhQUFhLENBQWM7UUFLbkMsSUFBSSxDQUFD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QyxhQUFhLEVBQUssaUJBQWlCLEVBQ3ZELENBQUMsQ0FBQyxpQkFBaUI7WUFFckIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDckM7SUFDSCxDQUFDOztnQkE3R0YsVUFBVTs7OztnQkFORixXQUFXO2dCQUZYLHVCQUF1QjtnQkFJdkIsVUFBVTtnQkFMViw2QkFBNkI7Z0JBTzdCLFlBQVk7Z0RBVWhCLFFBQVEsWUFDUixNQUFNLFNBQUMsbUJBQW1COztJQXFHL0IsWUFBQztDQUFBLEFBOUdELElBOEdDO1NBN0dZLEtBQUs7Ozs7OztJQUVkLDZCQUFpQzs7Ozs7SUFDakMseUNBQXlEOzs7OztJQUN6RCx3QkFBMkI7Ozs7O0lBQzNCLDJDQUFpRTs7Ozs7SUFDakUsOEJBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdHNsaW50OmRpc2FibGU6dW5pZmllZC1zaWduYXR1cmVzXHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIFN1YnNjcmlwdGlvbiwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBJTklUSUFMX1NUQVRFX1RPS0VOLCBQbGFpbk9iamVjdCB9IGZyb20gJ0BuZ3hzL3N0b3JlL2ludGVybmFscyc7XHJcblxyXG5pbXBvcnQgeyBJbnRlcm5hbE5neHNFeGVjdXRpb25TdHJhdGVneSB9IGZyb20gJy4vZXhlY3V0aW9uL2ludGVybmFsLW5neHMtZXhlY3V0aW9uLXN0cmF0ZWd5JztcclxuaW1wb3J0IHsgSW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnMgfSBmcm9tICcuL2ludGVybmFsL3N0YXRlLW9wZXJhdGlvbnMnO1xyXG5pbXBvcnQgeyBnZXRSb290U2VsZWN0b3JGYWN0b3J5IH0gZnJvbSAnLi91dGlscy9zZWxlY3Rvci11dGlscyc7XHJcbmltcG9ydCB7IFN0YXRlU3RyZWFtIH0gZnJvbSAnLi9pbnRlcm5hbC9zdGF0ZS1zdHJlYW0nO1xyXG5pbXBvcnQgeyBsZWF2ZU5neHMgfSBmcm9tICcuL29wZXJhdG9ycy9sZWF2ZS1uZ3hzJztcclxuaW1wb3J0IHsgTmd4c0NvbmZpZyB9IGZyb20gJy4vc3ltYm9scyc7XHJcbmltcG9ydCB7IFN0YXRlVG9rZW4gfSBmcm9tICcuL3N0YXRlLXRva2VuL3N0YXRlLXRva2VuJztcclxuaW1wb3J0IHsgU3RhdGVGYWN0b3J5IH0gZnJvbSAnLi9pbnRlcm5hbC9zdGF0ZS1mYWN0b3J5JztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFN0b3JlIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX3N0YXRlU3RyZWFtOiBTdGF0ZVN0cmVhbSxcclxuICAgIHByaXZhdGUgX2ludGVybmFsU3RhdGVPcGVyYXRpb25zOiBJbnRlcm5hbFN0YXRlT3BlcmF0aW9ucyxcclxuICAgIHByaXZhdGUgX2NvbmZpZzogTmd4c0NvbmZpZyxcclxuICAgIHByaXZhdGUgX2ludGVybmFsRXhlY3V0aW9uU3RyYXRlZ3k6IEludGVybmFsTmd4c0V4ZWN1dGlvblN0cmF0ZWd5LFxyXG4gICAgcHJpdmF0ZSBfc3RhdGVGYWN0b3J5OiBTdGF0ZUZhY3RvcnksXHJcbiAgICBAT3B0aW9uYWwoKVxyXG4gICAgQEluamVjdChJTklUSUFMX1NUQVRFX1RPS0VOKVxyXG4gICAgaW5pdGlhbFN0YXRlVmFsdWU6IGFueVxyXG4gICkge1xyXG4gICAgdGhpcy5pbml0U3RhdGVTdHJlYW0oaW5pdGlhbFN0YXRlVmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGlzcGF0Y2hlcyBldmVudChzKS5cclxuICAgKi9cclxuICBkaXNwYXRjaChhY3Rpb25PckFjdGlvbnM6IGFueSB8IGFueVtdKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9pbnRlcm5hbFN0YXRlT3BlcmF0aW9ucy5nZXRSb290U3RhdGVPcGVyYXRpb25zKCkuZGlzcGF0Y2goYWN0aW9uT3JBY3Rpb25zKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbGVjdHMgYSBzbGljZSBvZiBkYXRhIGZyb20gdGhlIHN0b3JlLlxyXG4gICAqL1xyXG4gIHNlbGVjdDxUPihzZWxlY3RvcjogKHN0YXRlOiBhbnksIC4uLnN0YXRlczogYW55W10pID0+IFQpOiBPYnNlcnZhYmxlPFQ+O1xyXG4gIHNlbGVjdDxUID0gYW55PihzZWxlY3Rvcjogc3RyaW5nIHwgVHlwZTxhbnk+KTogT2JzZXJ2YWJsZTxUPjtcclxuICBzZWxlY3Q8VD4oc2VsZWN0b3I6IFN0YXRlVG9rZW48VD4pOiBPYnNlcnZhYmxlPFQ+O1xyXG4gIHNlbGVjdChzZWxlY3RvcjogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHNlbGVjdG9yRm4gPSB0aGlzLmdldFN0b3JlQm91bmRTZWxlY3RvckZuKHNlbGVjdG9yKTtcclxuICAgIHJldHVybiB0aGlzLl9zdGF0ZVN0cmVhbS5waXBlKFxyXG4gICAgICBtYXAoc2VsZWN0b3JGbiksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycjogRXJyb3IpOiBPYnNlcnZhYmxlPG5ldmVyPiB8IE9ic2VydmFibGU8dW5kZWZpbmVkPiA9PiB7XHJcbiAgICAgICAgLy8gaWYgZXJyb3IgaXMgVHlwZUVycm9yIHdlIHN3YWxsb3cgaXQgdG8gcHJldmVudCB1c3VhbCBlcnJvcnMgd2l0aCBwcm9wZXJ0eSBhY2Nlc3NcclxuICAgICAgICBjb25zdCB7IHN1cHByZXNzRXJyb3JzIH0gPSB0aGlzLl9jb25maWcuc2VsZWN0b3JPcHRpb25zO1xyXG5cclxuICAgICAgICBpZiAoZXJyIGluc3RhbmNlb2YgVHlwZUVycm9yICYmIHN1cHByZXNzRXJyb3JzKSB7XHJcbiAgICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIHJldGhyb3cgb3RoZXIgZXJyb3JzXHJcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyKTtcclxuICAgICAgfSksXHJcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcbiAgICAgIGxlYXZlTmd4cyh0aGlzLl9pbnRlcm5hbEV4ZWN1dGlvblN0cmF0ZWd5KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbGVjdCBvbmUgc2xpY2Ugb2YgZGF0YSBmcm9tIHRoZSBzdG9yZS5cclxuICAgKi9cclxuXHJcbiAgc2VsZWN0T25jZTxUPihzZWxlY3RvcjogKHN0YXRlOiBhbnksIC4uLnN0YXRlczogYW55W10pID0+IFQpOiBPYnNlcnZhYmxlPFQ+O1xyXG4gIHNlbGVjdE9uY2U8VCA9IGFueT4oc2VsZWN0b3I6IHN0cmluZyB8IFR5cGU8YW55Pik6IE9ic2VydmFibGU8VD47XHJcbiAgc2VsZWN0T25jZTxUPihzZWxlY3RvcjogU3RhdGVUb2tlbjxUPik6IE9ic2VydmFibGU8VD47XHJcbiAgc2VsZWN0T25jZShzZWxlY3RvcjogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLnNlbGVjdChzZWxlY3RvcikucGlwZSh0YWtlKDEpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlbGVjdCBhIHNuYXBzaG90IGZyb20gdGhlIHN0YXRlLlxyXG4gICAqL1xyXG4gIHNlbGVjdFNuYXBzaG90PFQ+KHNlbGVjdG9yOiAoc3RhdGU6IGFueSwgLi4uc3RhdGVzOiBhbnlbXSkgPT4gVCk6IFQ7XHJcbiAgc2VsZWN0U25hcHNob3Q8VCA9IGFueT4oc2VsZWN0b3I6IHN0cmluZyB8IFR5cGU8YW55Pik6IFQ7XHJcbiAgc2VsZWN0U25hcHNob3Q8VD4oc2VsZWN0b3I6IFN0YXRlVG9rZW48VD4pOiBUO1xyXG4gIHNlbGVjdFNuYXBzaG90KHNlbGVjdG9yOiBhbnkpOiBhbnkge1xyXG4gICAgY29uc3Qgc2VsZWN0b3JGbiA9IHRoaXMuZ2V0U3RvcmVCb3VuZFNlbGVjdG9yRm4oc2VsZWN0b3IpO1xyXG4gICAgcmV0dXJuIHNlbGVjdG9yRm4odGhpcy5fc3RhdGVTdHJlYW0uZ2V0VmFsdWUoKSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBbGxvdyB0aGUgdXNlciB0byBzdWJzY3JpYmUgdG8gdGhlIHJvb3Qgb2YgdGhlIHN0YXRlXHJcbiAgICovXHJcbiAgc3Vic2NyaWJlKGZuPzogKHZhbHVlOiBhbnkpID0+IHZvaWQpOiBTdWJzY3JpcHRpb24ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3N0YXRlU3RyZWFtLnBpcGUobGVhdmVOZ3hzKHRoaXMuX2ludGVybmFsRXhlY3V0aW9uU3RyYXRlZ3kpKS5zdWJzY3JpYmUoZm4pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJuIHRoZSByYXcgdmFsdWUgb2YgdGhlIHN0YXRlLlxyXG4gICAqL1xyXG4gIHNuYXBzaG90KCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5faW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnMuZ2V0Um9vdFN0YXRlT3BlcmF0aW9ucygpLmdldFN0YXRlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXNldCB0aGUgc3RhdGUgdG8gYSBzcGVjaWZpYyBwb2ludCBpbiB0aW1lLiBUaGlzIG1ldGhvZCBpcyB1c2VmdWxcclxuICAgKiBmb3IgcGx1Z2luJ3Mgd2hvIG5lZWQgdG8gbW9kaWZ5IHRoZSBzdGF0ZSBkaXJlY3RseSBvciB1bml0IHRlc3RpbmcuXHJcbiAgICovXHJcbiAgcmVzZXQoc3RhdGU6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ludGVybmFsU3RhdGVPcGVyYXRpb25zLmdldFJvb3RTdGF0ZU9wZXJhdGlvbnMoKS5zZXRTdGF0ZShzdGF0ZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFN0b3JlQm91bmRTZWxlY3RvckZuKHNlbGVjdG9yOiBhbnkpIHtcclxuICAgIGNvbnN0IG1ha2VTZWxlY3RvckZuID0gZ2V0Um9vdFNlbGVjdG9yRmFjdG9yeShzZWxlY3Rvcik7XHJcbiAgICBjb25zdCBydW50aW1lQ29udGV4dCA9IHRoaXMuX3N0YXRlRmFjdG9yeS5nZXRSdW50aW1lU2VsZWN0b3JDb250ZXh0KCk7XHJcbiAgICByZXR1cm4gbWFrZVNlbGVjdG9yRm4ocnVudGltZUNvbnRleHQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0U3RhdGVTdHJlYW0oaW5pdGlhbFN0YXRlVmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgY29uc3QgdmFsdWU6IFBsYWluT2JqZWN0ID0gdGhpcy5fc3RhdGVTdHJlYW0udmFsdWU7XHJcbiAgICBjb25zdCBzdG9yZUlzRW1wdHk6IGJvb2xlYW4gPSAhdmFsdWUgfHwgT2JqZWN0LmtleXModmFsdWUpLmxlbmd0aCA9PT0gMDtcclxuICAgIGlmIChzdG9yZUlzRW1wdHkpIHtcclxuICAgICAgY29uc3QgZGVmYXVsdFN0YXRlTm90RW1wdHk6IGJvb2xlYW4gPSBPYmplY3Qua2V5cyh0aGlzLl9jb25maWcuZGVmYXVsdHNTdGF0ZSkubGVuZ3RoID4gMDtcclxuICAgICAgY29uc3Qgc3RvcmVWYWx1ZXM6IFBsYWluT2JqZWN0ID0gZGVmYXVsdFN0YXRlTm90RW1wdHlcclxuICAgICAgICA/IHsgLi4udGhpcy5fY29uZmlnLmRlZmF1bHRzU3RhdGUsIC4uLmluaXRpYWxTdGF0ZVZhbHVlIH1cclxuICAgICAgICA6IGluaXRpYWxTdGF0ZVZhbHVlO1xyXG5cclxuICAgICAgdGhpcy5fc3RhdGVTdHJlYW0ubmV4dChzdG9yZVZhbHVlcyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|