@ngxs/store 3.7.5-dev.master-708406e → 3.7.5-dev.master-f9549a3

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.
@@ -5,16 +5,30 @@
5
5
  import * as tslib_1 from "tslib";
6
6
  import { Injectable } from '@angular/core';
7
7
  import { NgxsBootstrapper } from '@ngxs/store/internals';
8
- import { filter, mergeMap, tap } from 'rxjs/operators';
8
+ import { Subject } from 'rxjs';
9
+ import { filter, mergeMap, pairwise, startWith, takeUntil, tap } from 'rxjs/operators';
10
+ import { Store } from '../store';
11
+ import { getValue } from '../utils/utils';
9
12
  import { StateContextFactory } from './state-context-factory';
10
13
  import { InternalStateOperations } from './state-operations';
11
- import { getStateDiffChanges } from './internals';
14
+ import { NgxsSimpleChange } from '../symbols';
12
15
  var LifecycleStateManager = /** @class */ (function () {
13
- function LifecycleStateManager(internalStateOperations, stateContextFactory, bootstrapper) {
14
- this.internalStateOperations = internalStateOperations;
15
- this.stateContextFactory = stateContextFactory;
16
- this.bootstrapper = bootstrapper;
16
+ function LifecycleStateManager(_store, _internalStateOperations, _stateContextFactory, _bootstrapper) {
17
+ this._store = _store;
18
+ this._internalStateOperations = _internalStateOperations;
19
+ this._stateContextFactory = _stateContextFactory;
20
+ this._bootstrapper = _bootstrapper;
21
+ this._destroy$ = new Subject();
17
22
  }
23
+ /**
24
+ * @return {?}
25
+ */
26
+ LifecycleStateManager.prototype.ngOnDestroy = /**
27
+ * @return {?}
28
+ */
29
+ function () {
30
+ this._destroy$.next();
31
+ };
18
32
  /**
19
33
  * @template T
20
34
  * @param {?} action
@@ -29,7 +43,7 @@ var LifecycleStateManager = /** @class */ (function () {
29
43
  */
30
44
  function (action, results) {
31
45
  var _this = this;
32
- this.internalStateOperations
46
+ this._internalStateOperations
33
47
  .getRootStateOperations()
34
48
  .dispatch(action)
35
49
  .pipe(filter((/**
@@ -38,57 +52,68 @@ var LifecycleStateManager = /** @class */ (function () {
38
52
  function () { return !!results; })), tap((/**
39
53
  * @return {?}
40
54
  */
41
- function () { return _this.invokeInit((/** @type {?} */ (results)).states); })), mergeMap((/**
55
+ function () { return _this._invokeInit((/** @type {?} */ (results)).states); })), mergeMap((/**
42
56
  * @return {?}
43
57
  */
44
- function () { return _this.bootstrapper.appBootstrapped$; })), filter((/**
58
+ function () { return _this._bootstrapper.appBootstrapped$; })), filter((/**
45
59
  * @param {?} appBootstrapped
46
60
  * @return {?}
47
61
  */
48
- function (appBootstrapped) { return !!appBootstrapped; })))
62
+ function (appBootstrapped) { return !!appBootstrapped; })), takeUntil(this._destroy$))
49
63
  .subscribe((/**
50
64
  * @return {?}
51
65
  */
52
- function () { return _this.invokeBootstrap((/** @type {?} */ (results)).states); }));
66
+ function () { return _this._invokeBootstrap((/** @type {?} */ (results)).states); }));
53
67
  };
54
68
  /**
55
69
  * Invoke the init function on the states.
56
70
  */
57
71
  /**
58
72
  * Invoke the init function on the states.
73
+ * @private
59
74
  * @param {?} mappedStores
60
75
  * @return {?}
61
76
  */
62
- LifecycleStateManager.prototype.invokeInit = /**
77
+ LifecycleStateManager.prototype._invokeInit = /**
63
78
  * Invoke the init function on the states.
79
+ * @private
64
80
  * @param {?} mappedStores
65
81
  * @return {?}
66
82
  */
67
83
  function (mappedStores) {
68
84
  var e_1, _a;
85
+ var _loop_1 = function (mappedStore) {
86
+ /** @type {?} */
87
+ var instance = mappedStore.instance;
88
+ if (instance.ngxsOnChanges) {
89
+ this_1._store
90
+ .select((/**
91
+ * @param {?} state
92
+ * @return {?}
93
+ */
94
+ function (state) { return getValue(state, mappedStore.path); }))
95
+ .pipe(startWith(undefined), pairwise(), takeUntil(this_1._destroy$))
96
+ .subscribe((/**
97
+ * @param {?} __0
98
+ * @return {?}
99
+ */
100
+ function (_a) {
101
+ var _b = tslib_1.__read(_a, 2), previousValue = _b[0], currentValue = _b[1];
102
+ /** @type {?} */
103
+ var change = new NgxsSimpleChange(previousValue, currentValue, !mappedStore.isInitialised);
104
+ (/** @type {?} */ (instance.ngxsOnChanges))(change);
105
+ }));
106
+ }
107
+ if (instance.ngxsOnInit) {
108
+ instance.ngxsOnInit(this_1._getStateContext(mappedStore));
109
+ }
110
+ mappedStore.isInitialised = true;
111
+ };
112
+ var this_1 = this;
69
113
  try {
70
114
  for (var mappedStores_1 = tslib_1.__values(mappedStores), mappedStores_1_1 = mappedStores_1.next(); !mappedStores_1_1.done; mappedStores_1_1 = mappedStores_1.next()) {
71
115
  var mappedStore = mappedStores_1_1.value;
72
- /** @type {?} */
73
- var instance = mappedStore.instance;
74
- if (instance.ngxsOnChanges) {
75
- /** @type {?} */
76
- var currentAppState = {};
77
- /** @type {?} */
78
- var newAppState = this.internalStateOperations
79
- .getRootStateOperations()
80
- .getState();
81
- /** @type {?} */
82
- var firstDiffChange = getStateDiffChanges(mappedStore, {
83
- currentAppState: currentAppState,
84
- newAppState: newAppState
85
- });
86
- instance.ngxsOnChanges(firstDiffChange);
87
- }
88
- if (instance.ngxsOnInit) {
89
- instance.ngxsOnInit(this.getStateContext(mappedStore));
90
- }
91
- mappedStore.isInitialised = true;
116
+ _loop_1(mappedStore);
92
117
  }
93
118
  }
94
119
  catch (e_1_1) { e_1 = { error: e_1_1 }; }
@@ -104,11 +129,13 @@ var LifecycleStateManager = /** @class */ (function () {
104
129
  */
105
130
  /**
106
131
  * Invoke the bootstrap function on the states.
132
+ * @private
107
133
  * @param {?} mappedStores
108
134
  * @return {?}
109
135
  */
110
- LifecycleStateManager.prototype.invokeBootstrap = /**
136
+ LifecycleStateManager.prototype._invokeBootstrap = /**
111
137
  * Invoke the bootstrap function on the states.
138
+ * @private
112
139
  * @param {?} mappedStores
113
140
  * @return {?}
114
141
  */
@@ -120,7 +147,7 @@ var LifecycleStateManager = /** @class */ (function () {
120
147
  /** @type {?} */
121
148
  var instance = mappedStore.instance;
122
149
  if (instance.ngxsAfterBootstrap) {
123
- instance.ngxsAfterBootstrap(this.getStateContext(mappedStore));
150
+ instance.ngxsAfterBootstrap(this._getStateContext(mappedStore));
124
151
  }
125
152
  }
126
153
  }
@@ -137,19 +164,20 @@ var LifecycleStateManager = /** @class */ (function () {
137
164
  * @param {?} mappedStore
138
165
  * @return {?}
139
166
  */
140
- LifecycleStateManager.prototype.getStateContext = /**
167
+ LifecycleStateManager.prototype._getStateContext = /**
141
168
  * @private
142
169
  * @param {?} mappedStore
143
170
  * @return {?}
144
171
  */
145
172
  function (mappedStore) {
146
- return this.stateContextFactory.createStateContext(mappedStore);
173
+ return this._stateContextFactory.createStateContext(mappedStore);
147
174
  };
148
175
  LifecycleStateManager.decorators = [
149
176
  { type: Injectable }
150
177
  ];
151
178
  /** @nocollapse */
152
179
  LifecycleStateManager.ctorParameters = function () { return [
180
+ { type: Store },
153
181
  { type: InternalStateOperations },
154
182
  { type: StateContextFactory },
155
183
  { type: NgxsBootstrapper }
@@ -162,16 +190,26 @@ if (false) {
162
190
  * @type {?}
163
191
  * @private
164
192
  */
165
- LifecycleStateManager.prototype.internalStateOperations;
193
+ LifecycleStateManager.prototype._destroy$;
194
+ /**
195
+ * @type {?}
196
+ * @private
197
+ */
198
+ LifecycleStateManager.prototype._store;
199
+ /**
200
+ * @type {?}
201
+ * @private
202
+ */
203
+ LifecycleStateManager.prototype._internalStateOperations;
166
204
  /**
167
205
  * @type {?}
168
206
  * @private
169
207
  */
170
- LifecycleStateManager.prototype.stateContextFactory;
208
+ LifecycleStateManager.prototype._stateContextFactory;
171
209
  /**
172
210
  * @type {?}
173
211
  * @private
174
212
  */
175
- LifecycleStateManager.prototype.bootstrapper;
213
+ LifecycleStateManager.prototype._bootstrapper;
176
214
  }
177
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlmZWN5Y2xlLXN0YXRlLW1hbmFnZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS8iLCJzb3VyY2VzIjpbInNyYy9pbnRlcm5hbC9saWZlY3ljbGUtc3RhdGUtbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFlLE1BQU0sdUJBQXVCLENBQUM7QUFDdEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFrQyxNQUFNLGFBQWEsQ0FBQztBQUdsRjtJQUVFLCtCQUNVLHVCQUFnRCxFQUNoRCxtQkFBd0MsRUFDeEMsWUFBOEI7UUFGOUIsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUF5QjtRQUNoRCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLGlCQUFZLEdBQVosWUFBWSxDQUFrQjtJQUNyQyxDQUFDOzs7Ozs7O0lBRUosNkNBQWE7Ozs7OztJQUFiLFVBQWlCLE1BQVMsRUFBRSxPQUFzQztRQUFsRSxpQkFXQztRQVZDLElBQUksQ0FBQyx1QkFBdUI7YUFDekIsc0JBQXNCLEVBQUU7YUFDeEIsUUFBUSxDQUFDLE1BQU0sQ0FBQzthQUNoQixJQUFJLENBQ0gsTUFBTTs7O1FBQUMsY0FBTSxPQUFBLENBQUMsQ0FBQyxPQUFPLEVBQVQsQ0FBUyxFQUFDLEVBQ3ZCLEdBQUc7OztRQUFDLGNBQU0sT0FBQSxLQUFJLENBQUMsVUFBVSxDQUFDLG1CQUFBLE9BQU8sRUFBQyxDQUFDLE1BQU0sQ0FBQyxFQUFoQyxDQUFnQyxFQUFDLEVBQzNDLFFBQVE7OztRQUFDLGNBQU0sT0FBQSxLQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixFQUFsQyxDQUFrQyxFQUFDLEVBQ2xELE1BQU07Ozs7UUFBQyxVQUFBLGVBQWUsSUFBSSxPQUFBLENBQUMsQ0FBQyxlQUFlLEVBQWpCLENBQWlCLEVBQUMsQ0FDN0M7YUFDQSxTQUFTOzs7UUFBQyxjQUFNLE9BQUEsS0FBSSxDQUFDLGVBQWUsQ0FBQyxtQkFBQSxPQUFPLEVBQUMsQ0FBQyxNQUFNLENBQUMsRUFBckMsQ0FBcUMsRUFBQyxDQUFDO0lBQzVELENBQUM7SUFFRDs7T0FFRzs7Ozs7O0lBQ0gsMENBQVU7Ozs7O0lBQVYsVUFBVyxZQUEyQjs7O1lBQ3BDLEtBQTBCLElBQUEsaUJBQUEsaUJBQUEsWUFBWSxDQUFBLDBDQUFBLG9FQUFFO2dCQUFuQyxJQUFNLFdBQVcseUJBQUE7O29CQUNkLFFBQVEsR0FBa0IsV0FBVyxDQUFDLFFBQVE7Z0JBRXBELElBQUksUUFBUSxDQUFDLGFBQWEsRUFBRTs7d0JBQ3BCLGVBQWUsR0FBZ0IsRUFBRTs7d0JBQ2pDLFdBQVcsR0FBZ0IsSUFBSSxDQUFDLHVCQUF1Qjt5QkFDMUQsc0JBQXNCLEVBQUU7eUJBQ3hCLFFBQVEsRUFBRTs7d0JBRVAsZUFBZSxHQUFxQixtQkFBbUIsQ0FBQyxXQUFXLEVBQUU7d0JBQ3pFLGVBQWUsaUJBQUE7d0JBQ2YsV0FBVyxhQUFBO3FCQUNaLENBQUM7b0JBRUYsUUFBUSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQztpQkFDekM7Z0JBRUQsSUFBSSxRQUFRLENBQUMsVUFBVSxFQUFFO29CQUN2QixRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztpQkFDeEQ7Z0JBRUQsV0FBVyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7YUFDbEM7Ozs7Ozs7OztJQUNILENBQUM7SUFFRDs7T0FFRzs7Ozs7O0lBQ0gsK0NBQWU7Ozs7O0lBQWYsVUFBZ0IsWUFBMkI7OztZQUN6QyxLQUEwQixJQUFBLGlCQUFBLGlCQUFBLFlBQVksQ0FBQSwwQ0FBQSxvRUFBRTtnQkFBbkMsSUFBTSxXQUFXLHlCQUFBOztvQkFDZCxRQUFRLEdBQWtCLFdBQVcsQ0FBQyxRQUFRO2dCQUNwRCxJQUFJLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRTtvQkFDL0IsUUFBUSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztpQkFDaEU7YUFDRjs7Ozs7Ozs7O0lBQ0gsQ0FBQzs7Ozs7O0lBRU8sK0NBQWU7Ozs7O0lBQXZCLFVBQXdCLFdBQXdCO1FBQzlDLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7O2dCQWhFRixVQUFVOzs7O2dCQUpGLHVCQUF1QjtnQkFEdkIsbUJBQW1CO2dCQUhuQixnQkFBZ0I7O0lBeUV6Qiw0QkFBQztDQUFBLEFBakVELElBaUVDO1NBaEVZLHFCQUFxQjs7Ozs7O0lBRTlCLHdEQUF3RDs7Ozs7SUFDeEQsb0RBQWdEOzs7OztJQUNoRCw2Q0FBc0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3hzQm9vdHN0cmFwcGVyLCBQbGFpbk9iamVjdCB9IGZyb20gJ0BuZ3hzL3N0b3JlL2ludGVybmFscyc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1lcmdlTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFN0YXRlQ29udGV4dEZhY3RvcnkgfSBmcm9tICcuL3N0YXRlLWNvbnRleHQtZmFjdG9yeSc7XG5pbXBvcnQgeyBJbnRlcm5hbFN0YXRlT3BlcmF0aW9ucyB9IGZyb20gJy4vc3RhdGUtb3BlcmF0aW9ucyc7XG5pbXBvcnQgeyBnZXRTdGF0ZURpZmZDaGFuZ2VzLCBNYXBwZWRTdG9yZSwgU3RhdGVzQW5kRGVmYXVsdHMgfSBmcm9tICcuL2ludGVybmFscyc7XG5pbXBvcnQgeyBOZ3hzTGlmZUN5Y2xlLCBOZ3hzU2ltcGxlQ2hhbmdlLCBTdGF0ZUNvbnRleHQgfSBmcm9tICcuLi9zeW1ib2xzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIExpZmVjeWNsZVN0YXRlTWFuYWdlciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnM6IEludGVybmFsU3RhdGVPcGVyYXRpb25zLFxuICAgIHByaXZhdGUgc3RhdGVDb250ZXh0RmFjdG9yeTogU3RhdGVDb250ZXh0RmFjdG9yeSxcbiAgICBwcml2YXRlIGJvb3RzdHJhcHBlcjogTmd4c0Jvb3RzdHJhcHBlclxuICApIHt9XG5cbiAgbmd4c0Jvb3RzdHJhcDxUPihhY3Rpb246IFQsIHJlc3VsdHM6IFN0YXRlc0FuZERlZmF1bHRzIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgdGhpcy5pbnRlcm5hbFN0YXRlT3BlcmF0aW9uc1xuICAgICAgLmdldFJvb3RTdGF0ZU9wZXJhdGlvbnMoKVxuICAgICAgLmRpc3BhdGNoKGFjdGlvbilcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKCkgPT4gISFyZXN1bHRzKSxcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuaW52b2tlSW5pdChyZXN1bHRzIS5zdGF0ZXMpKSxcbiAgICAgICAgbWVyZ2VNYXAoKCkgPT4gdGhpcy5ib290c3RyYXBwZXIuYXBwQm9vdHN0cmFwcGVkJCksXG4gICAgICAgIGZpbHRlcihhcHBCb290c3RyYXBwZWQgPT4gISFhcHBCb290c3RyYXBwZWQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuaW52b2tlQm9vdHN0cmFwKHJlc3VsdHMhLnN0YXRlcykpO1xuICB9XG5cbiAgLyoqXG4gICAqIEludm9rZSB0aGUgaW5pdCBmdW5jdGlvbiBvbiB0aGUgc3RhdGVzLlxuICAgKi9cbiAgaW52b2tlSW5pdChtYXBwZWRTdG9yZXM6IE1hcHBlZFN0b3JlW10pOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IG1hcHBlZFN0b3JlIG9mIG1hcHBlZFN0b3Jlcykge1xuICAgICAgY29uc3QgaW5zdGFuY2U6IE5neHNMaWZlQ3ljbGUgPSBtYXBwZWRTdG9yZS5pbnN0YW5jZTtcblxuICAgICAgaWYgKGluc3RhbmNlLm5neHNPbkNoYW5nZXMpIHtcbiAgICAgICAgY29uc3QgY3VycmVudEFwcFN0YXRlOiBQbGFpbk9iamVjdCA9IHt9O1xuICAgICAgICBjb25zdCBuZXdBcHBTdGF0ZTogUGxhaW5PYmplY3QgPSB0aGlzLmludGVybmFsU3RhdGVPcGVyYXRpb25zXG4gICAgICAgICAgLmdldFJvb3RTdGF0ZU9wZXJhdGlvbnMoKVxuICAgICAgICAgIC5nZXRTdGF0ZSgpO1xuXG4gICAgICAgIGNvbnN0IGZpcnN0RGlmZkNoYW5nZTogTmd4c1NpbXBsZUNoYW5nZSA9IGdldFN0YXRlRGlmZkNoYW5nZXMobWFwcGVkU3RvcmUsIHtcbiAgICAgICAgICBjdXJyZW50QXBwU3RhdGUsXG4gICAgICAgICAgbmV3QXBwU3RhdGVcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaW5zdGFuY2Uubmd4c09uQ2hhbmdlcyhmaXJzdERpZmZDaGFuZ2UpO1xuICAgICAgfVxuXG4gICAgICBpZiAoaW5zdGFuY2Uubmd4c09uSW5pdCkge1xuICAgICAgICBpbnN0YW5jZS5uZ3hzT25Jbml0KHRoaXMuZ2V0U3RhdGVDb250ZXh0KG1hcHBlZFN0b3JlKSk7XG4gICAgICB9XG5cbiAgICAgIG1hcHBlZFN0b3JlLmlzSW5pdGlhbGlzZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJbnZva2UgdGhlIGJvb3RzdHJhcCBmdW5jdGlvbiBvbiB0aGUgc3RhdGVzLlxuICAgKi9cbiAgaW52b2tlQm9vdHN0cmFwKG1hcHBlZFN0b3JlczogTWFwcGVkU3RvcmVbXSkge1xuICAgIGZvciAoY29uc3QgbWFwcGVkU3RvcmUgb2YgbWFwcGVkU3RvcmVzKSB7XG4gICAgICBjb25zdCBpbnN0YW5jZTogTmd4c0xpZmVDeWNsZSA9IG1hcHBlZFN0b3JlLmluc3RhbmNlO1xuICAgICAgaWYgKGluc3RhbmNlLm5neHNBZnRlckJvb3RzdHJhcCkge1xuICAgICAgICBpbnN0YW5jZS5uZ3hzQWZ0ZXJCb290c3RyYXAodGhpcy5nZXRTdGF0ZUNvbnRleHQobWFwcGVkU3RvcmUpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFN0YXRlQ29udGV4dChtYXBwZWRTdG9yZTogTWFwcGVkU3RvcmUpOiBTdGF0ZUNvbnRleHQ8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVDb250ZXh0RmFjdG9yeS5jcmVhdGVTdGF0ZUNvbnRleHQobWFwcGVkU3RvcmUpO1xuICB9XG59XG4iXX0=
215
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlmZWN5Y2xlLXN0YXRlLW1hbmFnZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Abmd4cy9zdG9yZS8iLCJzb3VyY2VzIjpbInNyYy9pbnRlcm5hbC9saWZlY3ljbGUtc3RhdGUtbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2RixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU3RCxPQUFPLEVBQWlCLGdCQUFnQixFQUFnQixNQUFNLFlBQVksQ0FBQztBQUUzRTtJQUlFLCtCQUNVLE1BQWEsRUFDYix3QkFBaUQsRUFDakQsb0JBQXlDLEVBQ3pDLGFBQStCO1FBSC9CLFdBQU0sR0FBTixNQUFNLENBQU87UUFDYiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQXlCO1FBQ2pELHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBcUI7UUFDekMsa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBTnhCLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBTzlDLENBQUM7Ozs7SUFFSiwyQ0FBVzs7O0lBQVg7UUFDRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3hCLENBQUM7Ozs7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QUM7O2dCQXhFRixVQUFVOzs7O2dCQVBGLEtBQUs7Z0JBR0wsdUJBQXVCO2dCQUR2QixtQkFBbUI7Z0JBTm5CLGdCQUFnQjs7SUFvRnpCLDRCQUFDO0NBQUEsQUF6RUQsSUF5RUM7U0F4RVkscUJBQXFCOzs7Ozs7SUFDaEMsMENBQWlEOzs7OztJQUcvQyx1Q0FBcUI7Ozs7O0lBQ3JCLHlEQUF5RDs7Ozs7SUFDekQscURBQWlEOzs7OztJQUNqRCw4Q0FBdUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5neHNCb290c3RyYXBwZXIgfSBmcm9tICdAbmd4cy9zdG9yZS9pbnRlcm5hbHMnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtZXJnZU1hcCwgcGFpcndpc2UsIHN0YXJ0V2l0aCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnLi4vc3RvcmUnO1xuaW1wb3J0IHsgZ2V0VmFsdWUgfSBmcm9tICcuLi91dGlscy91dGlscyc7XG5pbXBvcnQgeyBTdGF0ZUNvbnRleHRGYWN0b3J5IH0gZnJvbSAnLi9zdGF0ZS1jb250ZXh0LWZhY3RvcnknO1xuaW1wb3J0IHsgSW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnMgfSBmcm9tICcuL3N0YXRlLW9wZXJhdGlvbnMnO1xuaW1wb3J0IHsgTWFwcGVkU3RvcmUsIFN0YXRlc0FuZERlZmF1bHRzIH0gZnJvbSAnLi9pbnRlcm5hbHMnO1xuaW1wb3J0IHsgTmd4c0xpZmVDeWNsZSwgTmd4c1NpbXBsZUNoYW5nZSwgU3RhdGVDb250ZXh0IH0gZnJvbSAnLi4vc3ltYm9scyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBMaWZlY3ljbGVTdGF0ZU1hbmFnZXIgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfc3RvcmU6IFN0b3JlLFxuICAgIHByaXZhdGUgX2ludGVybmFsU3RhdGVPcGVyYXRpb25zOiBJbnRlcm5hbFN0YXRlT3BlcmF0aW9ucyxcbiAgICBwcml2YXRlIF9zdGF0ZUNvbnRleHRGYWN0b3J5OiBTdGF0ZUNvbnRleHRGYWN0b3J5LFxuICAgIHByaXZhdGUgX2Jvb3RzdHJhcHBlcjogTmd4c0Jvb3RzdHJhcHBlclxuICApIHt9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICB9XG5cbiAgbmd4c0Jvb3RzdHJhcDxUPihhY3Rpb246IFQsIHJlc3VsdHM6IFN0YXRlc0FuZERlZmF1bHRzIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgdGhpcy5faW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnNcbiAgICAgIC5nZXRSb290U3RhdGVPcGVyYXRpb25zKClcbiAgICAgIC5kaXNwYXRjaChhY3Rpb24pXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKCgpID0+ICEhcmVzdWx0cyksXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLl9pbnZva2VJbml0KHJlc3VsdHMhLnN0YXRlcykpLFxuICAgICAgICBtZXJnZU1hcCgoKSA9PiB0aGlzLl9ib290c3RyYXBwZXIuYXBwQm9vdHN0cmFwcGVkJCksXG4gICAgICAgIGZpbHRlcihhcHBCb290c3RyYXBwZWQgPT4gISFhcHBCb290c3RyYXBwZWQpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuX2ludm9rZUJvb3RzdHJhcChyZXN1bHRzIS5zdGF0ZXMpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnZva2UgdGhlIGluaXQgZnVuY3Rpb24gb24gdGhlIHN0YXRlcy5cbiAgICovXG4gIHByaXZhdGUgX2ludm9rZUluaXQobWFwcGVkU3RvcmVzOiBNYXBwZWRTdG9yZVtdKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBtYXBwZWRTdG9yZSBvZiBtYXBwZWRTdG9yZXMpIHtcbiAgICAgIGNvbnN0IGluc3RhbmNlOiBOZ3hzTGlmZUN5Y2xlID0gbWFwcGVkU3RvcmUuaW5zdGFuY2U7XG5cbiAgICAgIGlmIChpbnN0YW5jZS5uZ3hzT25DaGFuZ2VzKSB7XG4gICAgICAgIHRoaXMuX3N0b3JlXG4gICAgICAgICAgLnNlbGVjdChzdGF0ZSA9PiBnZXRWYWx1ZShzdGF0ZSwgbWFwcGVkU3RvcmUucGF0aCkpXG4gICAgICAgICAgLnBpcGUoc3RhcnRXaXRoKHVuZGVmaW5lZCksIHBhaXJ3aXNlKCksIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpXG4gICAgICAgICAgLnN1YnNjcmliZSgoW3ByZXZpb3VzVmFsdWUsIGN1cnJlbnRWYWx1ZV0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNoYW5nZSA9IG5ldyBOZ3hzU2ltcGxlQ2hhbmdlKFxuICAgICAgICAgICAgICBwcmV2aW91c1ZhbHVlLFxuICAgICAgICAgICAgICBjdXJyZW50VmFsdWUsXG4gICAgICAgICAgICAgICFtYXBwZWRTdG9yZS5pc0luaXRpYWxpc2VkXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaW5zdGFuY2Uubmd4c09uQ2hhbmdlcyEoY2hhbmdlKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKGluc3RhbmNlLm5neHNPbkluaXQpIHtcbiAgICAgICAgaW5zdGFuY2Uubmd4c09uSW5pdCh0aGlzLl9nZXRTdGF0ZUNvbnRleHQobWFwcGVkU3RvcmUpKTtcbiAgICAgIH1cblxuICAgICAgbWFwcGVkU3RvcmUuaXNJbml0aWFsaXNlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEludm9rZSB0aGUgYm9vdHN0cmFwIGZ1bmN0aW9uIG9uIHRoZSBzdGF0ZXMuXG4gICAqL1xuICBwcml2YXRlIF9pbnZva2VCb290c3RyYXAobWFwcGVkU3RvcmVzOiBNYXBwZWRTdG9yZVtdKSB7XG4gICAgZm9yIChjb25zdCBtYXBwZWRTdG9yZSBvZiBtYXBwZWRTdG9yZXMpIHtcbiAgICAgIGNvbnN0IGluc3RhbmNlOiBOZ3hzTGlmZUN5Y2xlID0gbWFwcGVkU3RvcmUuaW5zdGFuY2U7XG4gICAgICBpZiAoaW5zdGFuY2Uubmd4c0FmdGVyQm9vdHN0cmFwKSB7XG4gICAgICAgIGluc3RhbmNlLm5neHNBZnRlckJvb3RzdHJhcCh0aGlzLl9nZXRTdGF0ZUNvbnRleHQobWFwcGVkU3RvcmUpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9nZXRTdGF0ZUNvbnRleHQobWFwcGVkU3RvcmU6IE1hcHBlZFN0b3JlKTogU3RhdGVDb250ZXh0PGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZUNvbnRleHRGYWN0b3J5LmNyZWF0ZVN0YXRlQ29udGV4dChtYXBwZWRTdG9yZSk7XG4gIH1cbn1cbiJdfQ==
@@ -3,7 +3,6 @@
3
3
  * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
4
  */
5
5
  import { Injectable } from '@angular/core';
6
- import { getStateDiffChanges } from '../internal/internals';
7
6
  import { setValue, getValue } from '../utils/utils';
8
7
  import { InternalStateOperations } from '../internal/state-operations';
9
8
  import { simplePatch } from './state-operators';
@@ -48,16 +47,6 @@ var StateContextFactory = /** @class */ (function () {
48
47
  function setStateValue(currentAppState, newValue) {
49
48
  /** @type {?} */
50
49
  var newAppState = setValue(currentAppState, mappedStore.path, newValue);
51
- /** @type {?} */
52
- var instance = mappedStore.instance;
53
- if (instance.ngxsOnChanges) {
54
- /** @type {?} */
55
- var change = getStateDiffChanges(mappedStore, {
56
- currentAppState: currentAppState,
57
- newAppState: newAppState
58
- });
59
- instance.ngxsOnChanges(change);
60
- }
61
50
  root.setState(newAppState);
62
51
  return newAppState;
63
52
  // In doing this refactoring I noticed that there is a 'bug' where the
@@ -143,4 +132,4 @@ if (false) {
143
132
  */
144
133
  StateContextFactory.prototype._internalStateOperations;
145
134
  }
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtY29udGV4dC1mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMvc3RvcmUvIiwic291cmNlcyI6WyJzcmMvaW50ZXJuYWwvc3RhdGUtY29udGV4dC1mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTNDLE9BQU8sRUFBRSxtQkFBbUIsRUFBZSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7OztBQU1oRDtJQUVFLDZCQUFvQix3QkFBaUQ7UUFBakQsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUF5QjtJQUFHLENBQUM7SUFFekU7O09BRUc7Ozs7Ozs7SUFDSCxnREFBa0I7Ozs7OztJQUFsQixVQUFzQixXQUF3Qjs7WUFDdEMsSUFBSSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxzQkFBc0IsRUFBRTs7Ozs7UUFFbkUsU0FBUyxRQUFRLENBQUMsZUFBb0I7WUFDcEMsT0FBTyxRQUFRLENBQUMsZUFBZSxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyRCxDQUFDOzs7Ozs7UUFFRCxTQUFTLGFBQWEsQ0FBQyxlQUFvQixFQUFFLFFBQVc7O2dCQUNoRCxXQUFXLEdBQUcsUUFBUSxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQzs7Z0JBQ25FLFFBQVEsR0FBa0IsV0FBVyxDQUFDLFFBQVE7WUFFcEQsSUFBSSxRQUFRLENBQUMsYUFBYSxFQUFFOztvQkFDcEIsTUFBTSxHQUFxQixtQkFBbUIsQ0FBSSxXQUFXLEVBQUU7b0JBQ25FLGVBQWUsaUJBQUE7b0JBQ2YsV0FBVyxhQUFBO2lCQUNaLENBQUM7Z0JBRUYsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUNoQztZQUVELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDM0IsT0FBTyxXQUFXLENBQUM7WUFDbkIsc0VBQXNFO1lBQ3RFLDZEQUE2RDtZQUM3RCxvREFBb0Q7WUFDcEQsb0dBQW9HO1lBQ3BHLHNEQUFzRDtZQUN0RCw0RUFBNEU7UUFDOUUsQ0FBQzs7Ozs7O1FBRUQsU0FBUyxvQkFBb0IsQ0FBQyxlQUFvQixFQUFFLGFBQStCOztnQkFDM0UsS0FBSyxHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUM7O2dCQUNqQyxRQUFRLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQztZQUNyQyxPQUFPLGFBQWEsQ0FBQyxlQUFlLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDbEQsQ0FBQzs7Ozs7UUFFRCxTQUFTLGVBQWUsQ0FBQyxLQUEyQjtZQUNsRCxPQUFPLE9BQU8sS0FBSyxLQUFLLFVBQVUsQ0FBQztRQUNyQyxDQUFDO1FBRUQsT0FBTztZQUNMLFFBQVE7OztZQUFSOztvQkFDUSxlQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDdkMsT0FBTyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDbkMsQ0FBQztZQUNELFVBQVU7Ozs7WUFBVixVQUFXLEdBQWU7O29CQUNsQixlQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRTs7b0JBQ2pDLGFBQWEsR0FBRyxXQUFXLENBQUksR0FBRyxDQUFDO2dCQUN6QyxPQUFPLG9CQUFvQixDQUFDLGVBQWUsRUFBRSxhQUFhLENBQUMsQ0FBQztZQUM5RCxDQUFDO1lBQ0QsUUFBUTs7OztZQUFSLFVBQVMsR0FBeUI7O29CQUMxQixlQUFlLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDdkMsT0FBTyxlQUFlLENBQUMsR0FBRyxDQUFDO29CQUN6QixDQUFDLENBQUMsb0JBQW9CLENBQUMsZUFBZSxFQUFFLEdBQUcsQ0FBQztvQkFDNUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxlQUFlLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDMUMsQ0FBQztZQUNELFFBQVE7Ozs7WUFBUixVQUFTLE9BQW9CO2dCQUMzQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDaEMsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDOztnQkFuRUYsVUFBVTs7OztnQkFQRix1QkFBdUI7O0lBMkVoQywwQkFBQztDQUFBLEFBcEVELElBb0VDO1NBbkVZLG1CQUFtQjs7Ozs7O0lBQ2xCLHVEQUF5RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgTmd4c0xpZmVDeWNsZSwgTmd4c1NpbXBsZUNoYW5nZSwgU3RhdGVDb250ZXh0LCBTdGF0ZU9wZXJhdG9yIH0gZnJvbSAnLi4vc3ltYm9scyc7XG5pbXBvcnQgeyBnZXRTdGF0ZURpZmZDaGFuZ2VzLCBNYXBwZWRTdG9yZSB9IGZyb20gJy4uL2ludGVybmFsL2ludGVybmFscyc7XG5pbXBvcnQgeyBzZXRWYWx1ZSwgZ2V0VmFsdWUgfSBmcm9tICcuLi91dGlscy91dGlscyc7XG5pbXBvcnQgeyBJbnRlcm5hbFN0YXRlT3BlcmF0aW9ucyB9IGZyb20gJy4uL2ludGVybmFsL3N0YXRlLW9wZXJhdGlvbnMnO1xuaW1wb3J0IHsgc2ltcGxlUGF0Y2ggfSBmcm9tICcuL3N0YXRlLW9wZXJhdG9ycyc7XG5cbi8qKlxuICogU3RhdGUgQ29udGV4dCBmYWN0b3J5IGNsYXNzXG4gKiBAaWdub3JlXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTdGF0ZUNvbnRleHRGYWN0b3J5IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfaW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnM6IEludGVybmFsU3RhdGVPcGVyYXRpb25zKSB7fVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgdGhlIHN0YXRlIGNvbnRleHRcbiAgICovXG4gIGNyZWF0ZVN0YXRlQ29udGV4dDxUPihtYXBwZWRTdG9yZTogTWFwcGVkU3RvcmUpOiBTdGF0ZUNvbnRleHQ8VD4ge1xuICAgIGNvbnN0IHJvb3QgPSB0aGlzLl9pbnRlcm5hbFN0YXRlT3BlcmF0aW9ucy5nZXRSb290U3RhdGVPcGVyYXRpb25zKCk7XG5cbiAgICBmdW5jdGlvbiBnZXRTdGF0ZShjdXJyZW50QXBwU3RhdGU6IGFueSk6IFQge1xuICAgICAgcmV0dXJuIGdldFZhbHVlKGN1cnJlbnRBcHBTdGF0ZSwgbWFwcGVkU3RvcmUucGF0aCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2V0U3RhdGVWYWx1ZShjdXJyZW50QXBwU3RhdGU6IGFueSwgbmV3VmFsdWU6IFQpOiBhbnkge1xuICAgICAgY29uc3QgbmV3QXBwU3RhdGUgPSBzZXRWYWx1ZShjdXJyZW50QXBwU3RhdGUsIG1hcHBlZFN0b3JlLnBhdGgsIG5ld1ZhbHVlKTtcbiAgICAgIGNvbnN0IGluc3RhbmNlOiBOZ3hzTGlmZUN5Y2xlID0gbWFwcGVkU3RvcmUuaW5zdGFuY2U7XG5cbiAgICAgIGlmIChpbnN0YW5jZS5uZ3hzT25DaGFuZ2VzKSB7XG4gICAgICAgIGNvbnN0IGNoYW5nZTogTmd4c1NpbXBsZUNoYW5nZSA9IGdldFN0YXRlRGlmZkNoYW5nZXM8VD4obWFwcGVkU3RvcmUsIHtcbiAgICAgICAgICBjdXJyZW50QXBwU3RhdGUsXG4gICAgICAgICAgbmV3QXBwU3RhdGVcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaW5zdGFuY2Uubmd4c09uQ2hhbmdlcyhjaGFuZ2UpO1xuICAgICAgfVxuXG4gICAgICByb290LnNldFN0YXRlKG5ld0FwcFN0YXRlKTtcbiAgICAgIHJldHVybiBuZXdBcHBTdGF0ZTtcbiAgICAgIC8vIEluIGRvaW5nIHRoaXMgcmVmYWN0b3JpbmcgSSBub3RpY2VkIHRoYXQgdGhlcmUgaXMgYSAnYnVnJyB3aGVyZSB0aGVcbiAgICAgIC8vIGFwcGxpY2F0aW9uIHN0YXRlIGlzIHJldHVybmVkIGluc3RlYWQgb2YgdGhpcyBzdGF0ZSBzbGljZS5cbiAgICAgIC8vIFRoaXMgaGFzIHdvcmtlZCB0aGlzIHdheSBzaW5jZSB0aGUgYmVnaW5uaW5nIHNlZTpcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9uZ3hzL3N0b3JlL2JsYW1lLzMyNGM2NjdiNGI3ZGViZDhlYjk3OTAwNmM2N2NhMGFlMzQ3ZDg4Y2Qvc3JjL3N0YXRlLWZhY3RvcnkudHNcbiAgICAgIC8vIFRoaXMgbmVlZHMgdG8gYmUgZml4ZWQsIGJ1dCBpcyBhICdicmVha2luZycgY2hhbmdlLlxuICAgICAgLy8gSSB3aWxsIGRvIHRoaXMgZml4IGluIGEgc3Vic2VxdWVudCBQUiBhbmQgd2UgY2FuIGRlY2lkZSBob3cgdG8gaGFuZGxlIGl0LlxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNldFN0YXRlRnJvbU9wZXJhdG9yKGN1cnJlbnRBcHBTdGF0ZTogYW55LCBzdGF0ZU9wZXJhdG9yOiBTdGF0ZU9wZXJhdG9yPFQ+KSB7XG4gICAgICBjb25zdCBsb2NhbCA9IGdldFN0YXRlKGN1cnJlbnRBcHBTdGF0ZSk7XG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IHN0YXRlT3BlcmF0b3IobG9jYWwpO1xuICAgICAgcmV0dXJuIHNldFN0YXRlVmFsdWUoY3VycmVudEFwcFN0YXRlLCBuZXdWYWx1ZSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNTdGF0ZU9wZXJhdG9yKHZhbHVlOiBUIHwgU3RhdGVPcGVyYXRvcjxUPik6IHZhbHVlIGlzIFN0YXRlT3BlcmF0b3I8VD4ge1xuICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJztcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgZ2V0U3RhdGUoKTogVCB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRBcHBTdGF0ZSA9IHJvb3QuZ2V0U3RhdGUoKTtcbiAgICAgICAgcmV0dXJuIGdldFN0YXRlKGN1cnJlbnRBcHBTdGF0ZSk7XG4gICAgICB9LFxuICAgICAgcGF0Y2hTdGF0ZSh2YWw6IFBhcnRpYWw8VD4pOiBUIHtcbiAgICAgICAgY29uc3QgY3VycmVudEFwcFN0YXRlID0gcm9vdC5nZXRTdGF0ZSgpO1xuICAgICAgICBjb25zdCBwYXRjaE9wZXJhdG9yID0gc2ltcGxlUGF0Y2g8VD4odmFsKTtcbiAgICAgICAgcmV0dXJuIHNldFN0YXRlRnJvbU9wZXJhdG9yKGN1cnJlbnRBcHBTdGF0ZSwgcGF0Y2hPcGVyYXRvcik7XG4gICAgICB9LFxuICAgICAgc2V0U3RhdGUodmFsOiBUIHwgU3RhdGVPcGVyYXRvcjxUPik6IFQge1xuICAgICAgICBjb25zdCBjdXJyZW50QXBwU3RhdGUgPSByb290LmdldFN0YXRlKCk7XG4gICAgICAgIHJldHVybiBpc1N0YXRlT3BlcmF0b3IodmFsKVxuICAgICAgICAgID8gc2V0U3RhdGVGcm9tT3BlcmF0b3IoY3VycmVudEFwcFN0YXRlLCB2YWwpXG4gICAgICAgICAgOiBzZXRTdGF0ZVZhbHVlKGN1cnJlbnRBcHBTdGF0ZSwgdmFsKTtcbiAgICAgIH0sXG4gICAgICBkaXNwYXRjaChhY3Rpb25zOiBhbnkgfCBhbnlbXSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gcm9vdC5kaXNwYXRjaChhY3Rpb25zKTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG59XG4iXX0=
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtY29udGV4dC1mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMvc3RvcmUvIiwic291cmNlcyI6WyJzcmMvaW50ZXJuYWwvc3RhdGUtY29udGV4dC1mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSzNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7OztBQU1oRDtJQUVFLDZCQUFvQix3QkFBaUQ7UUFBakQsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUF5QjtJQUFHLENBQUM7SUFFekU7O09BRUc7Ozs7Ozs7SUFDSCxnREFBa0I7Ozs7OztJQUFsQixVQUFzQixXQUF3Qjs7WUFDdEMsSUFBSSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxzQkFBc0IsRUFBRTs7Ozs7UUFFbkUsU0FBUyxRQUFRLENBQUMsZUFBb0I7WUFDcEMsT0FBTyxRQUFRLENBQUMsZUFBZSxFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyRCxDQUFDOzs7Ozs7UUFFRCxTQUFTLGFBQWEsQ0FBQyxlQUFvQixFQUFFLFFBQVc7O2dCQUNoRCxXQUFXLEdBQUcsUUFBUSxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQztZQUN6RSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzNCLE9BQU8sV0FBVyxDQUFDO1lBQ25CLHNFQUFzRTtZQUN0RSw2REFBNkQ7WUFDN0Qsb0RBQW9EO1lBQ3BELG9HQUFvRztZQUNwRyxzREFBc0Q7WUFDdEQsNEVBQTRFO1FBQzlFLENBQUM7Ozs7OztRQUVELFNBQVMsb0JBQW9CLENBQUMsZUFBb0IsRUFBRSxhQUErQjs7Z0JBQzNFLEtBQUssR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDOztnQkFDakMsUUFBUSxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUM7WUFDckMsT0FBTyxhQUFhLENBQUMsZUFBZSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2xELENBQUM7Ozs7O1FBRUQsU0FBUyxlQUFlLENBQUMsS0FBMkI7WUFDbEQsT0FBTyxPQUFPLEtBQUssS0FBSyxVQUFVLENBQUM7UUFDckMsQ0FBQztRQUVELE9BQU87WUFDTCxRQUFROzs7WUFBUjs7b0JBQ1EsZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ3ZDLE9BQU8sUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ25DLENBQUM7WUFDRCxVQUFVOzs7O1lBQVYsVUFBVyxHQUFlOztvQkFDbEIsZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUU7O29CQUNqQyxhQUFhLEdBQUcsV0FBVyxDQUFJLEdBQUcsQ0FBQztnQkFDekMsT0FBTyxvQkFBb0IsQ0FBQyxlQUFlLEVBQUUsYUFBYSxDQUFDLENBQUM7WUFDOUQsQ0FBQztZQUNELFFBQVE7Ozs7WUFBUixVQUFTLEdBQXlCOztvQkFDMUIsZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ3ZDLE9BQU8sZUFBZSxDQUFDLEdBQUcsQ0FBQztvQkFDekIsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLGVBQWUsRUFBRSxHQUFHLENBQUM7b0JBQzVDLENBQUMsQ0FBQyxhQUFhLENBQUMsZUFBZSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzFDLENBQUM7WUFDRCxRQUFROzs7O1lBQVIsVUFBUyxPQUFvQjtnQkFDM0IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2hDLENBQUM7U0FDRixDQUFDO0lBQ0osQ0FBQzs7Z0JBeERGLFVBQVU7Ozs7Z0JBUEYsdUJBQXVCOztJQWdFaEMsMEJBQUM7Q0FBQSxBQXpERCxJQXlEQztTQXhEWSxtQkFBbUI7Ozs7OztJQUNsQix1REFBeUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFN0YXRlQ29udGV4dCwgU3RhdGVPcGVyYXRvciB9IGZyb20gJy4uL3N5bWJvbHMnO1xuaW1wb3J0IHsgTWFwcGVkU3RvcmUgfSBmcm9tICcuLi9pbnRlcm5hbC9pbnRlcm5hbHMnO1xuaW1wb3J0IHsgc2V0VmFsdWUsIGdldFZhbHVlIH0gZnJvbSAnLi4vdXRpbHMvdXRpbHMnO1xuaW1wb3J0IHsgSW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnMgfSBmcm9tICcuLi9pbnRlcm5hbC9zdGF0ZS1vcGVyYXRpb25zJztcbmltcG9ydCB7IHNpbXBsZVBhdGNoIH0gZnJvbSAnLi9zdGF0ZS1vcGVyYXRvcnMnO1xuXG4vKipcbiAqIFN0YXRlIENvbnRleHQgZmFjdG9yeSBjbGFzc1xuICogQGlnbm9yZVxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU3RhdGVDb250ZXh0RmFjdG9yeSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2ludGVybmFsU3RhdGVPcGVyYXRpb25zOiBJbnRlcm5hbFN0YXRlT3BlcmF0aW9ucykge31cblxuICAvKipcbiAgICogQ3JlYXRlIHRoZSBzdGF0ZSBjb250ZXh0XG4gICAqL1xuICBjcmVhdGVTdGF0ZUNvbnRleHQ8VD4obWFwcGVkU3RvcmU6IE1hcHBlZFN0b3JlKTogU3RhdGVDb250ZXh0PFQ+IHtcbiAgICBjb25zdCByb290ID0gdGhpcy5faW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnMuZ2V0Um9vdFN0YXRlT3BlcmF0aW9ucygpO1xuXG4gICAgZnVuY3Rpb24gZ2V0U3RhdGUoY3VycmVudEFwcFN0YXRlOiBhbnkpOiBUIHtcbiAgICAgIHJldHVybiBnZXRWYWx1ZShjdXJyZW50QXBwU3RhdGUsIG1hcHBlZFN0b3JlLnBhdGgpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNldFN0YXRlVmFsdWUoY3VycmVudEFwcFN0YXRlOiBhbnksIG5ld1ZhbHVlOiBUKTogYW55IHtcbiAgICAgIGNvbnN0IG5ld0FwcFN0YXRlID0gc2V0VmFsdWUoY3VycmVudEFwcFN0YXRlLCBtYXBwZWRTdG9yZS5wYXRoLCBuZXdWYWx1ZSk7XG4gICAgICByb290LnNldFN0YXRlKG5ld0FwcFN0YXRlKTtcbiAgICAgIHJldHVybiBuZXdBcHBTdGF0ZTtcbiAgICAgIC8vIEluIGRvaW5nIHRoaXMgcmVmYWN0b3JpbmcgSSBub3RpY2VkIHRoYXQgdGhlcmUgaXMgYSAnYnVnJyB3aGVyZSB0aGVcbiAgICAgIC8vIGFwcGxpY2F0aW9uIHN0YXRlIGlzIHJldHVybmVkIGluc3RlYWQgb2YgdGhpcyBzdGF0ZSBzbGljZS5cbiAgICAgIC8vIFRoaXMgaGFzIHdvcmtlZCB0aGlzIHdheSBzaW5jZSB0aGUgYmVnaW5uaW5nIHNlZTpcbiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9uZ3hzL3N0b3JlL2JsYW1lLzMyNGM2NjdiNGI3ZGViZDhlYjk3OTAwNmM2N2NhMGFlMzQ3ZDg4Y2Qvc3JjL3N0YXRlLWZhY3RvcnkudHNcbiAgICAgIC8vIFRoaXMgbmVlZHMgdG8gYmUgZml4ZWQsIGJ1dCBpcyBhICdicmVha2luZycgY2hhbmdlLlxuICAgICAgLy8gSSB3aWxsIGRvIHRoaXMgZml4IGluIGEgc3Vic2VxdWVudCBQUiBhbmQgd2UgY2FuIGRlY2lkZSBob3cgdG8gaGFuZGxlIGl0LlxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNldFN0YXRlRnJvbU9wZXJhdG9yKGN1cnJlbnRBcHBTdGF0ZTogYW55LCBzdGF0ZU9wZXJhdG9yOiBTdGF0ZU9wZXJhdG9yPFQ+KSB7XG4gICAgICBjb25zdCBsb2NhbCA9IGdldFN0YXRlKGN1cnJlbnRBcHBTdGF0ZSk7XG4gICAgICBjb25zdCBuZXdWYWx1ZSA9IHN0YXRlT3BlcmF0b3IobG9jYWwpO1xuICAgICAgcmV0dXJuIHNldFN0YXRlVmFsdWUoY3VycmVudEFwcFN0YXRlLCBuZXdWYWx1ZSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNTdGF0ZU9wZXJhdG9yKHZhbHVlOiBUIHwgU3RhdGVPcGVyYXRvcjxUPik6IHZhbHVlIGlzIFN0YXRlT3BlcmF0b3I8VD4ge1xuICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJztcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgZ2V0U3RhdGUoKTogVCB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRBcHBTdGF0ZSA9IHJvb3QuZ2V0U3RhdGUoKTtcbiAgICAgICAgcmV0dXJuIGdldFN0YXRlKGN1cnJlbnRBcHBTdGF0ZSk7XG4gICAgICB9LFxuICAgICAgcGF0Y2hTdGF0ZSh2YWw6IFBhcnRpYWw8VD4pOiBUIHtcbiAgICAgICAgY29uc3QgY3VycmVudEFwcFN0YXRlID0gcm9vdC5nZXRTdGF0ZSgpO1xuICAgICAgICBjb25zdCBwYXRjaE9wZXJhdG9yID0gc2ltcGxlUGF0Y2g8VD4odmFsKTtcbiAgICAgICAgcmV0dXJuIHNldFN0YXRlRnJvbU9wZXJhdG9yKGN1cnJlbnRBcHBTdGF0ZSwgcGF0Y2hPcGVyYXRvcik7XG4gICAgICB9LFxuICAgICAgc2V0U3RhdGUodmFsOiBUIHwgU3RhdGVPcGVyYXRvcjxUPik6IFQge1xuICAgICAgICBjb25zdCBjdXJyZW50QXBwU3RhdGUgPSByb290LmdldFN0YXRlKCk7XG4gICAgICAgIHJldHVybiBpc1N0YXRlT3BlcmF0b3IodmFsKVxuICAgICAgICAgID8gc2V0U3RhdGVGcm9tT3BlcmF0b3IoY3VycmVudEFwcFN0YXRlLCB2YWwpXG4gICAgICAgICAgOiBzZXRTdGF0ZVZhbHVlKGN1cnJlbnRBcHBTdGF0ZSwgdmFsKTtcbiAgICAgIH0sXG4gICAgICBkaXNwYXRjaChhY3Rpb25zOiBhbnkgfCBhbnlbXSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gcm9vdC5kaXNwYXRjaChhY3Rpb25zKTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG59XG4iXX0=