@ngxs/store 18.1.5-dev.master-4720c7c → 18.1.5-dev.master-14021c0
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/esm2022/src/actions-stream.mjs +7 -6
- package/esm2022/src/dev-features/ngxs-unhandled-actions-logger.mjs +6 -8
- package/esm2022/src/execution/dispatch-outside-zone-ngxs-execution-strategy.mjs +9 -12
- package/esm2022/src/execution/internal-ngxs-execution-strategy.mjs +6 -9
- package/esm2022/src/internal/dispatcher.mjs +36 -17
- package/esm2022/src/internal/lifecycle-state-manager.mjs +9 -13
- package/esm2022/src/internal/state-context-factory.mjs +6 -7
- package/esm2022/src/internal/state-operations.mjs +8 -11
- package/esm2022/src/store.mjs +13 -22
- package/fesm2022/ngxs-store.mjs +84 -97
- package/fesm2022/ngxs-store.mjs.map +1 -1
- package/index.d.ts +32 -183
- package/package.json +7 -7
- package/esm2022/src/utils/compose.mjs +0 -26
package/esm2022/src/store.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { computed,
|
|
1
|
+
import { computed, inject, Injectable } from '@angular/core';
|
|
2
2
|
import { of, throwError, catchError, distinctUntilChanged, map, shareReplay, take } from 'rxjs';
|
|
3
3
|
import { ɵINITIAL_STATE_TOKEN, ɵStateStream } from '@ngxs/store/internals';
|
|
4
4
|
import { InternalNgxsExecutionStrategy } from './execution/internal-ngxs-execution-strategy';
|
|
@@ -8,26 +8,21 @@ import { leaveNgxs } from './operators/leave-ngxs';
|
|
|
8
8
|
import { NgxsConfig } from './symbols';
|
|
9
9
|
import { StateFactory } from './internal/state-factory';
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "@ngxs/store/internals";
|
|
12
|
-
import * as i2 from "./internal/state-operations";
|
|
13
|
-
import * as i3 from "./symbols";
|
|
14
|
-
import * as i4 from "./execution/internal-ngxs-execution-strategy";
|
|
15
|
-
import * as i5 from "./internal/state-factory";
|
|
16
11
|
const NG_DEV_MODE = typeof ngDevMode !== 'undefined' && ngDevMode;
|
|
17
12
|
export class Store {
|
|
18
|
-
constructor(
|
|
19
|
-
this._stateStream =
|
|
20
|
-
this._internalStateOperations =
|
|
21
|
-
this._config =
|
|
22
|
-
this._internalExecutionStrategy =
|
|
23
|
-
this._stateFactory =
|
|
13
|
+
constructor() {
|
|
14
|
+
this._stateStream = inject(ɵStateStream);
|
|
15
|
+
this._internalStateOperations = inject(InternalStateOperations);
|
|
16
|
+
this._config = inject(NgxsConfig);
|
|
17
|
+
this._internalExecutionStrategy = inject(InternalNgxsExecutionStrategy);
|
|
18
|
+
this._stateFactory = inject(StateFactory);
|
|
24
19
|
/**
|
|
25
20
|
* This is a derived state stream that leaves NGXS execution strategy to emit state changes within the Angular zone,
|
|
26
21
|
* because state is being changed actually within the `<root>` zone, see `InternalDispatcher#dispatchSingle`.
|
|
27
22
|
* All selects would use this stream, and it would call leave only once for any state change across all active selectors.
|
|
28
23
|
*/
|
|
29
24
|
this._selectableStateStream = this._stateStream.pipe(leaveNgxs(this._internalExecutionStrategy), shareReplay({ bufferSize: 1, refCount: true }));
|
|
30
|
-
this.initStateStream(
|
|
25
|
+
this.initStateStream();
|
|
31
26
|
}
|
|
32
27
|
/**
|
|
33
28
|
* Dispatches action(s).
|
|
@@ -105,23 +100,19 @@ export class Store {
|
|
|
105
100
|
const runtimeContext = this._stateFactory.getRuntimeSelectorContext();
|
|
106
101
|
return makeSelectorFn(runtimeContext);
|
|
107
102
|
}
|
|
108
|
-
initStateStream(
|
|
103
|
+
initStateStream() {
|
|
104
|
+
const initialStateValue = inject(ɵINITIAL_STATE_TOKEN);
|
|
109
105
|
const value = this._stateStream.value;
|
|
110
106
|
const storeIsEmpty = !value || Object.keys(value).length === 0;
|
|
111
107
|
if (storeIsEmpty) {
|
|
112
108
|
this._stateStream.next(initialStateValue);
|
|
113
109
|
}
|
|
114
110
|
}
|
|
115
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: Store, deps: [
|
|
111
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: Store, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
116
112
|
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: Store, providedIn: 'root' }); }
|
|
117
113
|
}
|
|
118
114
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: Store, decorators: [{
|
|
119
115
|
type: Injectable,
|
|
120
116
|
args: [{ providedIn: 'root' }]
|
|
121
|
-
}], ctorParameters: () => [
|
|
122
|
-
type: Optional
|
|
123
|
-
}, {
|
|
124
|
-
type: Inject,
|
|
125
|
-
args: [ɵINITIAL_STATE_TOKEN]
|
|
126
|
-
}] }] });
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBRUwsRUFBRSxFQUVGLFVBQVUsRUFDVixVQUFVLEVBQ1Ysb0JBQW9CLEVBQ3BCLEdBQUcsRUFDSCxXQUFXLEVBQ1gsSUFBSSxFQUNMLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTNFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzdGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7OztBQUd4RCxNQUFNLFdBQVcsR0FBRyxPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUyxDQUFDO0FBU2xFLE1BQU0sT0FBTyxLQUFLO0lBV2hCLFlBQ1UsWUFBMEIsRUFDMUIsd0JBQWlELEVBQ2pELE9BQW1CLEVBQ25CLDBCQUF5RCxFQUN6RCxhQUEyQixFQUduQyxpQkFBc0I7UUFQZCxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQiw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQXlCO1FBQ2pELFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDbkIsK0JBQTBCLEdBQTFCLDBCQUEwQixDQUErQjtRQUN6RCxr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T0FFRztJQUNILFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNFLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsS0FBVTtRQUNkLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU8sdUJBQXVCLENBQUMsUUFBYTtRQUMzQyxNQUFNLGNBQWMsR0FBRyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4RCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFDdEUsT0FBTyxjQUFjLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVPLGVBQWUsQ0FBQyxpQkFBc0I7UUFDNUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFDdEMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO1FBRS9ELElBQUksWUFBWSxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM1QyxDQUFDO0lBQ0gsQ0FBQztpSUE1SFUsS0FBSyx3TEFrQk4sb0JBQW9CO3FJQWxCbkIsS0FBSyxjQURRLE1BQU07OzJGQUNuQixLQUFLO2tCQURqQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7MEJBa0I3QixRQUFROzswQkFDUixNQUFNOzJCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsLCBTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIE9ic2VydmFibGUsXG4gIG9mLFxuICBTdWJzY3JpcHRpb24sXG4gIHRocm93RXJyb3IsXG4gIGNhdGNoRXJyb3IsXG4gIGRpc3RpbmN0VW50aWxDaGFuZ2VkLFxuICBtYXAsXG4gIHNoYXJlUmVwbGF5LFxuICB0YWtlXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgybVJTklUSUFMX1NUQVRFX1RPS0VOLCDJtVN0YXRlU3RyZWFtIH0gZnJvbSAnQG5neHMvc3RvcmUvaW50ZXJuYWxzJztcblxuaW1wb3J0IHsgSW50ZXJuYWxOZ3hzRXhlY3V0aW9uU3RyYXRlZ3kgfSBmcm9tICcuL2V4ZWN1dGlvbi9pbnRlcm5hbC1uZ3hzLWV4ZWN1dGlvbi1zdHJhdGVneSc7XG5pbXBvcnQgeyBJbnRlcm5hbFN0YXRlT3BlcmF0aW9ucyB9IGZyb20gJy4vaW50ZXJuYWwvc3RhdGUtb3BlcmF0aW9ucyc7XG5pbXBvcnQgeyBnZXRSb290U2VsZWN0b3JGYWN0b3J5IH0gZnJvbSAnLi9zZWxlY3RvcnMvc2VsZWN0b3ItdXRpbHMnO1xuaW1wb3J0IHsgbGVhdmVOZ3hzIH0gZnJvbSAnLi9vcGVyYXRvcnMvbGVhdmUtbmd4cyc7XG5pbXBvcnQgeyBOZ3hzQ29uZmlnIH0gZnJvbSAnLi9zeW1ib2xzJztcbmltcG9ydCB7IFN0YXRlRmFjdG9yeSB9IGZyb20gJy4vaW50ZXJuYWwvc3RhdGUtZmFjdG9yeSc7XG5pbXBvcnQgeyBUeXBlZFNlbGVjdG9yIH0gZnJvbSAnLi9zZWxlY3RvcnMnO1xuXG5jb25zdCBOR19ERVZfTU9ERSA9IHR5cGVvZiBuZ0Rldk1vZGUgIT09ICd1bmRlZmluZWQnICYmIG5nRGV2TW9kZTtcblxuLy8gV2UgbmVlZCB0byBjaGVjayB3aGV0aGVyIHRoZSBwcm92aWRlZCBgVGAgdHlwZSBleHRlbmRzIGFuIGFycmF5IGluIG9yZGVyIHRvXG4vLyBhcHBseSB0aGUgYE5vbk51bGxhYmxlW11gIHR5cGUgdG8gaXRzIGVsZW1lbnRzLiBUaGlzIGlzIGJlY2F1c2UsIGZvclxuLy8gYGNvbnN0IGFjdGlvbnMgPSBbdW5kZWZpbmVkXWAsIHR5cGUgaW5mZXJlbmNlIHdvdWxkIHJlc3VsdCBpbiBgTm9uTnVsbGFibGU8dW5rbm93bj5gXG4vLyByYXRoZXIgdGhhbiBgTm9uTnVsbGFibGU8dW5rbm93bj5bXWAuXG50eXBlIEFjdGlvbk9yQXJyYXlPZkFjdGlvbnM8VD4gPSBUIGV4dGVuZHMgKGluZmVyIFUpW10gPyBOb25OdWxsYWJsZTxVPltdIDogTm9uTnVsbGFibGU8VD47XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgU3RvcmUge1xuICAvKipcbiAgICogVGhpcyBpcyBhIGRlcml2ZWQgc3RhdGUgc3RyZWFtIHRoYXQgbGVhdmVzIE5HWFMgZXhlY3V0aW9uIHN0cmF0ZWd5IHRvIGVtaXQgc3RhdGUgY2hhbmdlcyB3aXRoaW4gdGhlIEFuZ3VsYXIgem9uZSxcbiAgICogYmVjYXVzZSBzdGF0ZSBpcyBiZWluZyBjaGFuZ2VkIGFjdHVhbGx5IHdpdGhpbiB0aGUgYDxyb290PmAgem9uZSwgc2VlIGBJbnRlcm5hbERpc3BhdGNoZXIjZGlzcGF0Y2hTaW5nbGVgLlxuICAgKiBBbGwgc2VsZWN0cyB3b3VsZCB1c2UgdGhpcyBzdHJlYW0sIGFuZCBpdCB3b3VsZCBjYWxsIGxlYXZlIG9ubHkgb25jZSBmb3IgYW55IHN0YXRlIGNoYW5nZSBhY3Jvc3MgYWxsIGFjdGl2ZSBzZWxlY3RvcnMuXG4gICAqL1xuICBwcml2YXRlIF9zZWxlY3RhYmxlU3RhdGVTdHJlYW0gPSB0aGlzLl9zdGF0ZVN0cmVhbS5waXBlKFxuICAgIGxlYXZlTmd4cyh0aGlzLl9pbnRlcm5hbEV4ZWN1dGlvblN0cmF0ZWd5KSxcbiAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pXG4gICk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfc3RhdGVTdHJlYW06IMm1U3RhdGVTdHJlYW0sXG4gICAgcHJpdmF0ZSBfaW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnM6IEludGVybmFsU3RhdGVPcGVyYXRpb25zLFxuICAgIHByaXZhdGUgX2NvbmZpZzogTmd4c0NvbmZpZyxcbiAgICBwcml2YXRlIF9pbnRlcm5hbEV4ZWN1dGlvblN0cmF0ZWd5OiBJbnRlcm5hbE5neHNFeGVjdXRpb25TdHJhdGVneSxcbiAgICBwcml2YXRlIF9zdGF0ZUZhY3Rvcnk6IFN0YXRlRmFjdG9yeSxcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoybVJTklUSUFMX1NUQVRFX1RPS0VOKVxuICAgIGluaXRpYWxTdGF0ZVZhbHVlOiBhbnlcbiAgKSB7XG4gICAgdGhpcy5pbml0U3RhdGVTdHJlYW0oaW5pdGlhbFN0YXRlVmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIERpc3BhdGNoZXMgYWN0aW9uKHMpLlxuICAgKi9cbiAgZGlzcGF0Y2g8VD4oYWN0aW9uT3JBY3Rpb25zOiBBY3Rpb25PckFycmF5T2ZBY3Rpb25zPFQ+KTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgaWYgKE5HX0RFVl9NT0RFKSB7XG4gICAgICBpZiAoXG4gICAgICAgIC8vIElmIGEgc2luZ2xlIGFjdGlvbiBpcyBkaXNwYXRjaGVkIGFuZCBpdCdzIG51bGxhYmxlLlxuICAgICAgICBhY3Rpb25PckFjdGlvbnMgPT0gbnVsbCB8fFxuICAgICAgICAvLyBJZiBhIGxpc3Qgb2YgYWN0aW9ucyBpcyBkaXNwYXRjaGVkIGFuZCBhbnkgb2YgdGhlIGFjdGlvbnMgYXJlIG51bGxhYmxlLlxuICAgICAgICAoQXJyYXkuaXNBcnJheShhY3Rpb25PckFjdGlvbnMpICYmIGFjdGlvbk9yQWN0aW9ucy5zb21lKGFjdGlvbiA9PiBhY3Rpb24gPT0gbnVsbCkpXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoJ2BkaXNwYXRjaCgpYCB3YXMgY2FsbGVkIHdpdGhvdXQgcHJvdmlkaW5nIGFuIGFjdGlvbi4nKTtcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb3IpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9pbnRlcm5hbFN0YXRlT3BlcmF0aW9ucy5nZXRSb290U3RhdGVPcGVyYXRpb25zKCkuZGlzcGF0Y2goYWN0aW9uT3JBY3Rpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZWxlY3RzIGEgc2xpY2Ugb2YgZGF0YSBmcm9tIHRoZSBzdG9yZS5cbiAgICovXG4gIHNlbGVjdDxUPihzZWxlY3RvcjogVHlwZWRTZWxlY3RvcjxUPik6IE9ic2VydmFibGU8VD4ge1xuICAgIGNvbnN0IHNlbGVjdG9yRm4gPSB0aGlzLmdldFN0b3JlQm91bmRTZWxlY3RvckZuKHNlbGVjdG9yKTtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0YWJsZVN0YXRlU3RyZWFtLnBpcGUoXG4gICAgICBtYXAoc2VsZWN0b3JGbiksXG4gICAgICBjYXRjaEVycm9yKChlcnJvcjogRXJyb3IpOiBPYnNlcnZhYmxlPG5ldmVyPiB8IE9ic2VydmFibGU8dW5kZWZpbmVkPiA9PiB7XG4gICAgICAgIC8vIGlmIGVycm9yIGlzIFR5cGVFcnJvciB3ZSBzd2FsbG93IGl0IHRvIHByZXZlbnQgdXN1YWwgZXJyb3JzIHdpdGggcHJvcGVydHkgYWNjZXNzXG4gICAgICAgIGlmICh0aGlzLl9jb25maWcuc2VsZWN0b3JPcHRpb25zLnN1cHByZXNzRXJyb3JzICYmIGVycm9yIGluc3RhbmNlb2YgVHlwZUVycm9yKSB7XG4gICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyByZXRocm93IG90aGVyIGVycm9yc1xuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XG4gICAgICB9KSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICBsZWF2ZU5neHModGhpcy5faW50ZXJuYWxFeGVjdXRpb25TdHJhdGVneSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbGVjdCBvbmUgc2xpY2Ugb2YgZGF0YSBmcm9tIHRoZSBzdG9yZS5cbiAgICovXG4gIHNlbGVjdE9uY2U8VD4oc2VsZWN0b3I6IFR5cGVkU2VsZWN0b3I8VD4pOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3Qoc2VsZWN0b3IpLnBpcGUodGFrZSgxKSk7XG4gIH1cblxuICAvKipcbiAgICogU2VsZWN0IGEgc25hcHNob3QgZnJvbSB0aGUgc3RhdGUuXG4gICAqL1xuICBzZWxlY3RTbmFwc2hvdDxUPihzZWxlY3RvcjogVHlwZWRTZWxlY3RvcjxUPik6IFQge1xuICAgIGNvbnN0IHNlbGVjdG9yRm4gPSB0aGlzLmdldFN0b3JlQm91bmRTZWxlY3RvckZuKHNlbGVjdG9yKTtcbiAgICByZXR1cm4gc2VsZWN0b3JGbih0aGlzLl9zdGF0ZVN0cmVhbS5nZXRWYWx1ZSgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZWxlY3QgYSBzaWduYWwgZnJvbSB0aGUgc3RhdGUuXG4gICAqL1xuICBzZWxlY3RTaWduYWw8VD4oc2VsZWN0b3I6IFR5cGVkU2VsZWN0b3I8VD4pOiBTaWduYWw8VD4ge1xuICAgIGNvbnN0IHNlbGVjdG9yRm4gPSB0aGlzLmdldFN0b3JlQm91bmRTZWxlY3RvckZuKHNlbGVjdG9yKTtcbiAgICByZXR1cm4gY29tcHV0ZWQ8VD4oKCkgPT4gc2VsZWN0b3JGbih0aGlzLl9zdGF0ZVN0cmVhbS5zdGF0ZSgpKSk7XG4gIH1cblxuICAvKipcbiAgICogQWxsb3cgdGhlIHVzZXIgdG8gc3Vic2NyaWJlIHRvIHRoZSByb290IG9mIHRoZSBzdGF0ZVxuICAgKi9cbiAgc3Vic2NyaWJlKGZuPzogKHZhbHVlOiBhbnkpID0+IHZvaWQpOiBTdWJzY3JpcHRpb24ge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3RhYmxlU3RhdGVTdHJlYW1cbiAgICAgIC5waXBlKGxlYXZlTmd4cyh0aGlzLl9pbnRlcm5hbEV4ZWN1dGlvblN0cmF0ZWd5KSlcbiAgICAgIC5zdWJzY3JpYmUoZm4pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgcmF3IHZhbHVlIG9mIHRoZSBzdGF0ZS5cbiAgICovXG4gIHNuYXBzaG90KCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX2ludGVybmFsU3RhdGVPcGVyYXRpb25zLmdldFJvb3RTdGF0ZU9wZXJhdGlvbnMoKS5nZXRTdGF0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0IHRoZSBzdGF0ZSB0byBhIHNwZWNpZmljIHBvaW50IGluIHRpbWUuIFRoaXMgbWV0aG9kIGlzIHVzZWZ1bFxuICAgKiBmb3IgcGx1Z2luJ3Mgd2hvIG5lZWQgdG8gbW9kaWZ5IHRoZSBzdGF0ZSBkaXJlY3RseSBvciB1bml0IHRlc3RpbmcuXG4gICAqL1xuICByZXNldChzdGF0ZTogYW55KSB7XG4gICAgdGhpcy5faW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnMuZ2V0Um9vdFN0YXRlT3BlcmF0aW9ucygpLnNldFN0YXRlKHN0YXRlKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U3RvcmVCb3VuZFNlbGVjdG9yRm4oc2VsZWN0b3I6IGFueSkge1xuICAgIGNvbnN0IG1ha2VTZWxlY3RvckZuID0gZ2V0Um9vdFNlbGVjdG9yRmFjdG9yeShzZWxlY3Rvcik7XG4gICAgY29uc3QgcnVudGltZUNvbnRleHQgPSB0aGlzLl9zdGF0ZUZhY3RvcnkuZ2V0UnVudGltZVNlbGVjdG9yQ29udGV4dCgpO1xuICAgIHJldHVybiBtYWtlU2VsZWN0b3JGbihydW50aW1lQ29udGV4dCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRTdGF0ZVN0cmVhbShpbml0aWFsU3RhdGVWYWx1ZTogYW55KTogdm9pZCB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLl9zdGF0ZVN0cmVhbS52YWx1ZTtcbiAgICBjb25zdCBzdG9yZUlzRW1wdHkgPSAhdmFsdWUgfHwgT2JqZWN0LmtleXModmFsdWUpLmxlbmd0aCA9PT0gMDtcblxuICAgIGlmIChzdG9yZUlzRW1wdHkpIHtcbiAgICAgIHRoaXMuX3N0YXRlU3RyZWFtLm5leHQoaW5pdGlhbFN0YXRlVmFsdWUpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
117
|
+
}], ctorParameters: () => [] });
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zdG9yZS9zcmMvc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFFTCxFQUFFLEVBRUYsVUFBVSxFQUNWLFVBQVUsRUFDVixvQkFBb0IsRUFDcEIsR0FBRyxFQUNILFdBQVcsRUFDWCxJQUFJLEVBQ0wsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFM0UsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDN0YsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDdkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQUd4RCxNQUFNLFdBQVcsR0FBRyxPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUyxDQUFDO0FBU2xFLE1BQU0sT0FBTyxLQUFLO0lBaUJoQjtRQWhCUSxpQkFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwQyw2QkFBd0IsR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUMzRCxZQUFPLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzdCLCtCQUEwQixHQUFHLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBQ25FLGtCQUFhLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRTdDOzs7O1dBSUc7UUFDSywyQkFBc0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDckQsU0FBUyxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxFQUMxQyxXQUFXLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUMvQyxDQUFDO1FBR0EsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRDs7T0FFRztJQUNILFFBQVEsQ0FBSSxlQUEwQztRQUNwRCxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2hCO1lBQ0Usc0RBQXNEO1lBQ3RELGVBQWUsSUFBSSxJQUFJO2dCQUN2QiwwRUFBMEU7Z0JBQzFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxDQUFDLEVBQ2xGLENBQUM7Z0JBQ0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsc0RBQXNELENBQUMsQ0FBQztnQkFDaEYsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakMsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUksUUFBMEI7UUFDbEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFELE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FDckMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUNmLFVBQVUsQ0FBQyxDQUFDLEtBQVksRUFBNkMsRUFBRTtZQUNyRSxtRkFBbUY7WUFDbkYsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxjQUFjLElBQUksS0FBSyxZQUFZLFNBQVMsRUFBRSxDQUFDO2dCQUM5RSxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN2QixDQUFDO1lBRUQsdUJBQXVCO1lBQ3ZCLE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLENBQUMsQ0FBQyxFQUNGLG9CQUFvQixFQUFFLEVBQ3RCLFNBQVMsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsQ0FDM0MsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILFVBQVUsQ0FBSSxRQUEwQjtRQUN0QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWMsQ0FBSSxRQUEwQjtRQUMxQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDMUQsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7T0FFRztJQUNILFlBQVksQ0FBSSxRQUEwQjtRQUN4QyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDMUQsT0FBTyxRQUFRLENBQUksR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRDs7T0FFRztJQUNILFNBQVMsQ0FBQyxFQUF5QjtRQUNqQyxPQUFPLElBQUksQ0FBQyxzQkFBc0I7YUFDL0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsQ0FBQzthQUNoRCxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbkIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDLHNCQUFzQixFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0UsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxLQUFVO1FBQ2QsSUFBSSxDQUFDLHdCQUF3QixDQUFDLHNCQUFzQixFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxRQUFhO1FBQzNDLE1BQU0sY0FBYyxHQUFHLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMseUJBQXlCLEVBQUUsQ0FBQztRQUN0RSxPQUFPLGNBQWMsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRU8sZUFBZTtRQUNyQixNQUFNLGlCQUFpQixHQUFRLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDO1FBQ3RDLE1BQU0sWUFBWSxHQUFHLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztRQUUvRCxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDNUMsQ0FBQztJQUNILENBQUM7aUlBMUhVLEtBQUs7cUlBQUwsS0FBSyxjQURRLE1BQU07OzJGQUNuQixLQUFLO2tCQURqQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBpbmplY3QsIEluamVjdGFibGUsIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIFN1YnNjcmlwdGlvbixcbiAgdGhyb3dFcnJvcixcbiAgY2F0Y2hFcnJvcixcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIG1hcCxcbiAgc2hhcmVSZXBsYXksXG4gIHRha2Vcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyDJtUlOSVRJQUxfU1RBVEVfVE9LRU4sIMm1U3RhdGVTdHJlYW0gfSBmcm9tICdAbmd4cy9zdG9yZS9pbnRlcm5hbHMnO1xuXG5pbXBvcnQgeyBJbnRlcm5hbE5neHNFeGVjdXRpb25TdHJhdGVneSB9IGZyb20gJy4vZXhlY3V0aW9uL2ludGVybmFsLW5neHMtZXhlY3V0aW9uLXN0cmF0ZWd5JztcbmltcG9ydCB7IEludGVybmFsU3RhdGVPcGVyYXRpb25zIH0gZnJvbSAnLi9pbnRlcm5hbC9zdGF0ZS1vcGVyYXRpb25zJztcbmltcG9ydCB7IGdldFJvb3RTZWxlY3RvckZhY3RvcnkgfSBmcm9tICcuL3NlbGVjdG9ycy9zZWxlY3Rvci11dGlscyc7XG5pbXBvcnQgeyBsZWF2ZU5neHMgfSBmcm9tICcuL29wZXJhdG9ycy9sZWF2ZS1uZ3hzJztcbmltcG9ydCB7IE5neHNDb25maWcgfSBmcm9tICcuL3N5bWJvbHMnO1xuaW1wb3J0IHsgU3RhdGVGYWN0b3J5IH0gZnJvbSAnLi9pbnRlcm5hbC9zdGF0ZS1mYWN0b3J5JztcbmltcG9ydCB7IFR5cGVkU2VsZWN0b3IgfSBmcm9tICcuL3NlbGVjdG9ycyc7XG5cbmNvbnN0IE5HX0RFVl9NT0RFID0gdHlwZW9mIG5nRGV2TW9kZSAhPT0gJ3VuZGVmaW5lZCcgJiYgbmdEZXZNb2RlO1xuXG4vLyBXZSBuZWVkIHRvIGNoZWNrIHdoZXRoZXIgdGhlIHByb3ZpZGVkIGBUYCB0eXBlIGV4dGVuZHMgYW4gYXJyYXkgaW4gb3JkZXIgdG9cbi8vIGFwcGx5IHRoZSBgTm9uTnVsbGFibGVbXWAgdHlwZSB0byBpdHMgZWxlbWVudHMuIFRoaXMgaXMgYmVjYXVzZSwgZm9yXG4vLyBgY29uc3QgYWN0aW9ucyA9IFt1bmRlZmluZWRdYCwgdHlwZSBpbmZlcmVuY2Ugd291bGQgcmVzdWx0IGluIGBOb25OdWxsYWJsZTx1bmtub3duPmBcbi8vIHJhdGhlciB0aGFuIGBOb25OdWxsYWJsZTx1bmtub3duPltdYC5cbnR5cGUgQWN0aW9uT3JBcnJheU9mQWN0aW9uczxUPiA9IFQgZXh0ZW5kcyAoaW5mZXIgVSlbXSA/IE5vbk51bGxhYmxlPFU+W10gOiBOb25OdWxsYWJsZTxUPjtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBTdG9yZSB7XG4gIHByaXZhdGUgX3N0YXRlU3RyZWFtID0gaW5qZWN0KMm1U3RhdGVTdHJlYW0pO1xuICBwcml2YXRlIF9pbnRlcm5hbFN0YXRlT3BlcmF0aW9ucyA9IGluamVjdChJbnRlcm5hbFN0YXRlT3BlcmF0aW9ucyk7XG4gIHByaXZhdGUgX2NvbmZpZyA9IGluamVjdChOZ3hzQ29uZmlnKTtcbiAgcHJpdmF0ZSBfaW50ZXJuYWxFeGVjdXRpb25TdHJhdGVneSA9IGluamVjdChJbnRlcm5hbE5neHNFeGVjdXRpb25TdHJhdGVneSk7XG4gIHByaXZhdGUgX3N0YXRlRmFjdG9yeSA9IGluamVjdChTdGF0ZUZhY3RvcnkpO1xuXG4gIC8qKlxuICAgKiBUaGlzIGlzIGEgZGVyaXZlZCBzdGF0ZSBzdHJlYW0gdGhhdCBsZWF2ZXMgTkdYUyBleGVjdXRpb24gc3RyYXRlZ3kgdG8gZW1pdCBzdGF0ZSBjaGFuZ2VzIHdpdGhpbiB0aGUgQW5ndWxhciB6b25lLFxuICAgKiBiZWNhdXNlIHN0YXRlIGlzIGJlaW5nIGNoYW5nZWQgYWN0dWFsbHkgd2l0aGluIHRoZSBgPHJvb3Q+YCB6b25lLCBzZWUgYEludGVybmFsRGlzcGF0Y2hlciNkaXNwYXRjaFNpbmdsZWAuXG4gICAqIEFsbCBzZWxlY3RzIHdvdWxkIHVzZSB0aGlzIHN0cmVhbSwgYW5kIGl0IHdvdWxkIGNhbGwgbGVhdmUgb25seSBvbmNlIGZvciBhbnkgc3RhdGUgY2hhbmdlIGFjcm9zcyBhbGwgYWN0aXZlIHNlbGVjdG9ycy5cbiAgICovXG4gIHByaXZhdGUgX3NlbGVjdGFibGVTdGF0ZVN0cmVhbSA9IHRoaXMuX3N0YXRlU3RyZWFtLnBpcGUoXG4gICAgbGVhdmVOZ3hzKHRoaXMuX2ludGVybmFsRXhlY3V0aW9uU3RyYXRlZ3kpLFxuICAgIHNoYXJlUmVwbGF5KHsgYnVmZmVyU2l6ZTogMSwgcmVmQ291bnQ6IHRydWUgfSlcbiAgKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmluaXRTdGF0ZVN0cmVhbSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIERpc3BhdGNoZXMgYWN0aW9uKHMpLlxuICAgKi9cbiAgZGlzcGF0Y2g8VD4oYWN0aW9uT3JBY3Rpb25zOiBBY3Rpb25PckFycmF5T2ZBY3Rpb25zPFQ+KTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgaWYgKE5HX0RFVl9NT0RFKSB7XG4gICAgICBpZiAoXG4gICAgICAgIC8vIElmIGEgc2luZ2xlIGFjdGlvbiBpcyBkaXNwYXRjaGVkIGFuZCBpdCdzIG51bGxhYmxlLlxuICAgICAgICBhY3Rpb25PckFjdGlvbnMgPT0gbnVsbCB8fFxuICAgICAgICAvLyBJZiBhIGxpc3Qgb2YgYWN0aW9ucyBpcyBkaXNwYXRjaGVkIGFuZCBhbnkgb2YgdGhlIGFjdGlvbnMgYXJlIG51bGxhYmxlLlxuICAgICAgICAoQXJyYXkuaXNBcnJheShhY3Rpb25PckFjdGlvbnMpICYmIGFjdGlvbk9yQWN0aW9ucy5zb21lKGFjdGlvbiA9PiBhY3Rpb24gPT0gbnVsbCkpXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoJ2BkaXNwYXRjaCgpYCB3YXMgY2FsbGVkIHdpdGhvdXQgcHJvdmlkaW5nIGFuIGFjdGlvbi4nKTtcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyb3IpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9pbnRlcm5hbFN0YXRlT3BlcmF0aW9ucy5nZXRSb290U3RhdGVPcGVyYXRpb25zKCkuZGlzcGF0Y2goYWN0aW9uT3JBY3Rpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZWxlY3RzIGEgc2xpY2Ugb2YgZGF0YSBmcm9tIHRoZSBzdG9yZS5cbiAgICovXG4gIHNlbGVjdDxUPihzZWxlY3RvcjogVHlwZWRTZWxlY3RvcjxUPik6IE9ic2VydmFibGU8VD4ge1xuICAgIGNvbnN0IHNlbGVjdG9yRm4gPSB0aGlzLmdldFN0b3JlQm91bmRTZWxlY3RvckZuKHNlbGVjdG9yKTtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0YWJsZVN0YXRlU3RyZWFtLnBpcGUoXG4gICAgICBtYXAoc2VsZWN0b3JGbiksXG4gICAgICBjYXRjaEVycm9yKChlcnJvcjogRXJyb3IpOiBPYnNlcnZhYmxlPG5ldmVyPiB8IE9ic2VydmFibGU8dW5kZWZpbmVkPiA9PiB7XG4gICAgICAgIC8vIGlmIGVycm9yIGlzIFR5cGVFcnJvciB3ZSBzd2FsbG93IGl0IHRvIHByZXZlbnQgdXN1YWwgZXJyb3JzIHdpdGggcHJvcGVydHkgYWNjZXNzXG4gICAgICAgIGlmICh0aGlzLl9jb25maWcuc2VsZWN0b3JPcHRpb25zLnN1cHByZXNzRXJyb3JzICYmIGVycm9yIGluc3RhbmNlb2YgVHlwZUVycm9yKSB7XG4gICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyByZXRocm93IG90aGVyIGVycm9yc1xuICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XG4gICAgICB9KSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICBsZWF2ZU5neHModGhpcy5faW50ZXJuYWxFeGVjdXRpb25TdHJhdGVneSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbGVjdCBvbmUgc2xpY2Ugb2YgZGF0YSBmcm9tIHRoZSBzdG9yZS5cbiAgICovXG4gIHNlbGVjdE9uY2U8VD4oc2VsZWN0b3I6IFR5cGVkU2VsZWN0b3I8VD4pOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3Qoc2VsZWN0b3IpLnBpcGUodGFrZSgxKSk7XG4gIH1cblxuICAvKipcbiAgICogU2VsZWN0IGEgc25hcHNob3QgZnJvbSB0aGUgc3RhdGUuXG4gICAqL1xuICBzZWxlY3RTbmFwc2hvdDxUPihzZWxlY3RvcjogVHlwZWRTZWxlY3RvcjxUPik6IFQge1xuICAgIGNvbnN0IHNlbGVjdG9yRm4gPSB0aGlzLmdldFN0b3JlQm91bmRTZWxlY3RvckZuKHNlbGVjdG9yKTtcbiAgICByZXR1cm4gc2VsZWN0b3JGbih0aGlzLl9zdGF0ZVN0cmVhbS5nZXRWYWx1ZSgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZWxlY3QgYSBzaWduYWwgZnJvbSB0aGUgc3RhdGUuXG4gICAqL1xuICBzZWxlY3RTaWduYWw8VD4oc2VsZWN0b3I6IFR5cGVkU2VsZWN0b3I8VD4pOiBTaWduYWw8VD4ge1xuICAgIGNvbnN0IHNlbGVjdG9yRm4gPSB0aGlzLmdldFN0b3JlQm91bmRTZWxlY3RvckZuKHNlbGVjdG9yKTtcbiAgICByZXR1cm4gY29tcHV0ZWQ8VD4oKCkgPT4gc2VsZWN0b3JGbih0aGlzLl9zdGF0ZVN0cmVhbS5zdGF0ZSgpKSk7XG4gIH1cblxuICAvKipcbiAgICogQWxsb3cgdGhlIHVzZXIgdG8gc3Vic2NyaWJlIHRvIHRoZSByb290IG9mIHRoZSBzdGF0ZVxuICAgKi9cbiAgc3Vic2NyaWJlKGZuPzogKHZhbHVlOiBhbnkpID0+IHZvaWQpOiBTdWJzY3JpcHRpb24ge1xuICAgIHJldHVybiB0aGlzLl9zZWxlY3RhYmxlU3RhdGVTdHJlYW1cbiAgICAgIC5waXBlKGxlYXZlTmd4cyh0aGlzLl9pbnRlcm5hbEV4ZWN1dGlvblN0cmF0ZWd5KSlcbiAgICAgIC5zdWJzY3JpYmUoZm4pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgcmF3IHZhbHVlIG9mIHRoZSBzdGF0ZS5cbiAgICovXG4gIHNuYXBzaG90KCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX2ludGVybmFsU3RhdGVPcGVyYXRpb25zLmdldFJvb3RTdGF0ZU9wZXJhdGlvbnMoKS5nZXRTdGF0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0IHRoZSBzdGF0ZSB0byBhIHNwZWNpZmljIHBvaW50IGluIHRpbWUuIFRoaXMgbWV0aG9kIGlzIHVzZWZ1bFxuICAgKiBmb3IgcGx1Z2luJ3Mgd2hvIG5lZWQgdG8gbW9kaWZ5IHRoZSBzdGF0ZSBkaXJlY3RseSBvciB1bml0IHRlc3RpbmcuXG4gICAqL1xuICByZXNldChzdGF0ZTogYW55KSB7XG4gICAgdGhpcy5faW50ZXJuYWxTdGF0ZU9wZXJhdGlvbnMuZ2V0Um9vdFN0YXRlT3BlcmF0aW9ucygpLnNldFN0YXRlKHN0YXRlKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U3RvcmVCb3VuZFNlbGVjdG9yRm4oc2VsZWN0b3I6IGFueSkge1xuICAgIGNvbnN0IG1ha2VTZWxlY3RvckZuID0gZ2V0Um9vdFNlbGVjdG9yRmFjdG9yeShzZWxlY3Rvcik7XG4gICAgY29uc3QgcnVudGltZUNvbnRleHQgPSB0aGlzLl9zdGF0ZUZhY3RvcnkuZ2V0UnVudGltZVNlbGVjdG9yQ29udGV4dCgpO1xuICAgIHJldHVybiBtYWtlU2VsZWN0b3JGbihydW50aW1lQ29udGV4dCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRTdGF0ZVN0cmVhbSgpOiB2b2lkIHtcbiAgICBjb25zdCBpbml0aWFsU3RhdGVWYWx1ZTogYW55ID0gaW5qZWN0KMm1SU5JVElBTF9TVEFURV9UT0tFTik7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLl9zdGF0ZVN0cmVhbS52YWx1ZTtcbiAgICBjb25zdCBzdG9yZUlzRW1wdHkgPSAhdmFsdWUgfHwgT2JqZWN0LmtleXModmFsdWUpLmxlbmd0aCA9PT0gMDtcblxuICAgIGlmIChzdG9yZUlzRW1wdHkpIHtcbiAgICAgIHRoaXMuX3N0YXRlU3RyZWFtLm5leHQoaW5pdGlhbFN0YXRlVmFsdWUpO1xuICAgIH1cbiAgfVxufVxuIl19
|
package/fesm2022/ngxs-store.mjs
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable, NgZone, PLATFORM_ID,
|
|
2
|
+
import { Injectable, inject, NgZone, PLATFORM_ID, InjectionToken, INJECTOR, Injector, runInInjectionContext, ErrorHandler, ɵisPromise as _isPromise, computed, makeEnvironmentProviders, ENVIRONMENT_INITIALIZER, NgModule, APP_BOOTSTRAP_LISTENER } from '@angular/core';
|
|
3
3
|
import { Subject, filter, Observable, share, config, of, forkJoin, throwError, EMPTY, mergeMap, map as map$1, defaultIfEmpty, catchError, from, isObservable, takeUntil, finalize, shareReplay as shareReplay$1, distinctUntilChanged, take as take$1, ReplaySubject } from 'rxjs';
|
|
4
|
-
import
|
|
5
|
-
import { ɵwrapObserverCalls as _wrapObserverCalls, ɵOrderedSubject as _OrderedSubject, ɵmemoize as _memoize, ɵgetStoreMetadata as _getStoreMetadata, ɵgetSelectorMetadata as _getSelectorMetadata, ɵMETA_KEY as _META_KEY, ɵINITIAL_STATE_TOKEN as _INITIAL_STATE_TOKEN, ɵNgxsAppBootstrappedState as _NgxsAppBootstrappedState, ɵensureStoreMetadata as _ensureStoreMetadata, ɵMETA_OPTIONS_KEY as _META_OPTIONS_KEY, ɵensureSelectorMetadata as _ensureSelectorMetadata, ɵNGXS_STATE_CONTEXT_FACTORY as _NGXS_STATE_CONTEXT_FACTORY, ɵNGXS_STATE_FACTORY as _NGXS_STATE_FACTORY } from '@ngxs/store/internals';
|
|
4
|
+
import { ɵwrapObserverCalls as _wrapObserverCalls, ɵOrderedSubject as _OrderedSubject, ɵStateStream as _StateStream, ɵmemoize as _memoize, ɵgetStoreMetadata as _getStoreMetadata, ɵgetSelectorMetadata as _getSelectorMetadata, ɵMETA_KEY as _META_KEY, ɵINITIAL_STATE_TOKEN as _INITIAL_STATE_TOKEN, ɵNgxsAppBootstrappedState as _NgxsAppBootstrappedState, ɵensureStoreMetadata as _ensureStoreMetadata, ɵMETA_OPTIONS_KEY as _META_OPTIONS_KEY, ɵensureSelectorMetadata as _ensureSelectorMetadata, ɵNGXS_STATE_CONTEXT_FACTORY as _NGXS_STATE_CONTEXT_FACTORY, ɵNGXS_STATE_FACTORY as _NGXS_STATE_FACTORY } from '@ngxs/store/internals';
|
|
6
5
|
export { StateToken } from '@ngxs/store/internals';
|
|
7
6
|
import { isPlatformServer } from '@angular/common';
|
|
8
7
|
import { map, shareReplay, filter as filter$1, take, exhaustMap, tap, mergeMap as mergeMap$1, takeUntil as takeUntil$1, startWith, pairwise } from 'rxjs/operators';
|
|
@@ -74,15 +73,15 @@ function throwPatchingPrimitiveError() {
|
|
|
74
73
|
}
|
|
75
74
|
|
|
76
75
|
class DispatchOutsideZoneNgxsExecutionStrategy {
|
|
77
|
-
constructor(
|
|
78
|
-
this._ngZone =
|
|
79
|
-
this.
|
|
76
|
+
constructor() {
|
|
77
|
+
this._ngZone = inject(NgZone);
|
|
78
|
+
this._isServer = isPlatformServer(inject(PLATFORM_ID));
|
|
80
79
|
if (typeof ngDevMode !== 'undefined' && ngDevMode) {
|
|
81
|
-
verifyZoneIsNotNooped(_ngZone);
|
|
80
|
+
verifyZoneIsNotNooped(this._ngZone);
|
|
82
81
|
}
|
|
83
82
|
}
|
|
84
83
|
enter(func) {
|
|
85
|
-
if (
|
|
84
|
+
if (this._isServer) {
|
|
86
85
|
return this.runInsideAngular(func);
|
|
87
86
|
}
|
|
88
87
|
return this.runOutsideAngular(func);
|
|
@@ -102,16 +101,13 @@ class DispatchOutsideZoneNgxsExecutionStrategy {
|
|
|
102
101
|
}
|
|
103
102
|
return func();
|
|
104
103
|
}
|
|
105
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: DispatchOutsideZoneNgxsExecutionStrategy, deps: [
|
|
104
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: DispatchOutsideZoneNgxsExecutionStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
106
105
|
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: DispatchOutsideZoneNgxsExecutionStrategy, providedIn: 'root' }); }
|
|
107
106
|
}
|
|
108
107
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: DispatchOutsideZoneNgxsExecutionStrategy, decorators: [{
|
|
109
108
|
type: Injectable,
|
|
110
109
|
args: [{ providedIn: 'root' }]
|
|
111
|
-
}], ctorParameters: () => [
|
|
112
|
-
type: Inject,
|
|
113
|
-
args: [PLATFORM_ID]
|
|
114
|
-
}] }] });
|
|
110
|
+
}], ctorParameters: () => [] });
|
|
115
111
|
// Caretaker note: this should exist as a separate function and not a class method,
|
|
116
112
|
// since class methods are not tree-shakable.
|
|
117
113
|
function verifyZoneIsNotNooped(ngZone) {
|
|
@@ -151,8 +147,8 @@ const NGXS_EXECUTION_STRATEGY = new InjectionToken(NG_DEV_MODE$9 ? 'NGXS_EXECUTI
|
|
|
151
147
|
});
|
|
152
148
|
|
|
153
149
|
class InternalNgxsExecutionStrategy {
|
|
154
|
-
constructor(
|
|
155
|
-
this._executionStrategy =
|
|
150
|
+
constructor() {
|
|
151
|
+
this._executionStrategy = inject(NGXS_EXECUTION_STRATEGY);
|
|
156
152
|
}
|
|
157
153
|
enter(func) {
|
|
158
154
|
return this._executionStrategy.enter(func);
|
|
@@ -160,42 +156,13 @@ class InternalNgxsExecutionStrategy {
|
|
|
160
156
|
leave(func) {
|
|
161
157
|
return this._executionStrategy.leave(func);
|
|
162
158
|
}
|
|
163
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: InternalNgxsExecutionStrategy, deps: [
|
|
159
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: InternalNgxsExecutionStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
164
160
|
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: InternalNgxsExecutionStrategy, providedIn: 'root' }); }
|
|
165
161
|
}
|
|
166
162
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: InternalNgxsExecutionStrategy, decorators: [{
|
|
167
163
|
type: Injectable,
|
|
168
164
|
args: [{ providedIn: 'root' }]
|
|
169
|
-
}]
|
|
170
|
-
type: Inject,
|
|
171
|
-
args: [NGXS_EXECUTION_STRATEGY]
|
|
172
|
-
}] }] });
|
|
173
|
-
|
|
174
|
-
/**
|
|
175
|
-
* Composes a array of functions from left to right. Example:
|
|
176
|
-
*
|
|
177
|
-
* compose([fn, final])(state, action);
|
|
178
|
-
*
|
|
179
|
-
* then the funcs have a signature like:
|
|
180
|
-
*
|
|
181
|
-
* function fn (state, action, next) {
|
|
182
|
-
* console.log('here', state, action, next);
|
|
183
|
-
* return next(state, action);
|
|
184
|
-
* }
|
|
185
|
-
*
|
|
186
|
-
* function final (state, action) {
|
|
187
|
-
* console.log('here', state, action);
|
|
188
|
-
* return state;
|
|
189
|
-
* }
|
|
190
|
-
*
|
|
191
|
-
* the last function should not call `next`.
|
|
192
|
-
*
|
|
193
|
-
* @ignore
|
|
194
|
-
*/
|
|
195
|
-
const compose = (funcs) => (...args) => {
|
|
196
|
-
const curr = funcs.shift();
|
|
197
|
-
return curr(...args, (...nextArgs) => compose(funcs)(...nextArgs));
|
|
198
|
-
};
|
|
165
|
+
}] });
|
|
199
166
|
|
|
200
167
|
/**
|
|
201
168
|
* Returns operator that will run
|
|
@@ -234,7 +201,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImpor
|
|
|
234
201
|
* You can listen to this in services to react without stores.
|
|
235
202
|
*/
|
|
236
203
|
class Actions extends Observable {
|
|
237
|
-
constructor(
|
|
204
|
+
constructor() {
|
|
205
|
+
const internalActions$ = inject(InternalActions);
|
|
206
|
+
const internalExecutionStrategy = inject(InternalNgxsExecutionStrategy);
|
|
238
207
|
const sharedInternalActions$ = internalActions$.pipe(leaveNgxs(internalExecutionStrategy),
|
|
239
208
|
// The `InternalActions` subject emits outside of the Angular zone.
|
|
240
209
|
// We have to re-enter the Angular zone for any incoming consumer.
|
|
@@ -250,13 +219,13 @@ class Actions extends Observable {
|
|
|
250
219
|
observer.add(childSubscription);
|
|
251
220
|
});
|
|
252
221
|
}
|
|
253
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: Actions, deps: [
|
|
222
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: Actions, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
254
223
|
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: Actions, providedIn: 'root' }); }
|
|
255
224
|
}
|
|
256
225
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: Actions, decorators: [{
|
|
257
226
|
type: Injectable,
|
|
258
227
|
args: [{ providedIn: 'root' }]
|
|
259
|
-
}], ctorParameters: () => [
|
|
228
|
+
}], ctorParameters: () => [] });
|
|
260
229
|
|
|
261
230
|
class PluginManager {
|
|
262
231
|
constructor() {
|
|
@@ -368,13 +337,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImpor
|
|
|
368
337
|
args: [{ providedIn: 'root' }]
|
|
369
338
|
}] });
|
|
370
339
|
class InternalDispatcher {
|
|
371
|
-
constructor(
|
|
372
|
-
this._ngZone =
|
|
373
|
-
this._actions =
|
|
374
|
-
this._actionResults =
|
|
375
|
-
this._pluginManager =
|
|
376
|
-
this._stateStream =
|
|
377
|
-
this._ngxsExecutionStrategy =
|
|
340
|
+
constructor() {
|
|
341
|
+
this._ngZone = inject(NgZone);
|
|
342
|
+
this._actions = inject(InternalActions);
|
|
343
|
+
this._actionResults = inject(InternalDispatchedActionResults);
|
|
344
|
+
this._pluginManager = inject(PluginManager);
|
|
345
|
+
this._stateStream = inject(_StateStream);
|
|
346
|
+
this._ngxsExecutionStrategy = inject(InternalNgxsExecutionStrategy);
|
|
347
|
+
this._injector = inject(Injector);
|
|
378
348
|
}
|
|
379
349
|
/**
|
|
380
350
|
* Dispatches event(s).
|
|
@@ -403,7 +373,7 @@ class InternalDispatcher {
|
|
|
403
373
|
}
|
|
404
374
|
const prevState = this._stateStream.getValue();
|
|
405
375
|
const plugins = this._pluginManager.plugins;
|
|
406
|
-
return compose([
|
|
376
|
+
return compose(this._injector, [
|
|
407
377
|
...plugins,
|
|
408
378
|
(nextState, nextAction) => {
|
|
409
379
|
if (nextState !== prevState) {
|
|
@@ -435,13 +405,36 @@ class InternalDispatcher {
|
|
|
435
405
|
}))
|
|
436
406
|
.pipe(shareReplay());
|
|
437
407
|
}
|
|
438
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: InternalDispatcher, deps: [
|
|
408
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: InternalDispatcher, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
439
409
|
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: InternalDispatcher, providedIn: 'root' }); }
|
|
440
410
|
}
|
|
441
411
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: InternalDispatcher, decorators: [{
|
|
442
412
|
type: Injectable,
|
|
443
413
|
args: [{ providedIn: 'root' }]
|
|
444
|
-
}]
|
|
414
|
+
}] });
|
|
415
|
+
/**
|
|
416
|
+
* Composes a array of functions from left to right. Example:
|
|
417
|
+
*
|
|
418
|
+
* compose([fn, final])(state, action);
|
|
419
|
+
*
|
|
420
|
+
* then the funcs have a signature like:
|
|
421
|
+
*
|
|
422
|
+
* function fn (state, action, next) {
|
|
423
|
+
* console.log('here', state, action, next);
|
|
424
|
+
* return next(state, action);
|
|
425
|
+
* }
|
|
426
|
+
*
|
|
427
|
+
* function final (state, action) {
|
|
428
|
+
* console.log('here', state, action);
|
|
429
|
+
* return state;
|
|
430
|
+
* }
|
|
431
|
+
*
|
|
432
|
+
* the last function should not call `next`.
|
|
433
|
+
*/
|
|
434
|
+
const compose = (injector, funcs) => (...args) => {
|
|
435
|
+
const curr = funcs.shift();
|
|
436
|
+
return runInInjectionContext(injector, () => curr(...args, (...nextArgs) => compose(injector, funcs)(...nextArgs)));
|
|
437
|
+
};
|
|
445
438
|
|
|
446
439
|
const NG_DEV_MODE$8 = typeof ngDevMode !== 'undefined' && ngDevMode;
|
|
447
440
|
// The injection token is used to resolve a list of states provided at
|
|
@@ -551,10 +544,10 @@ const deepFreeze = (o) => {
|
|
|
551
544
|
* @ignore
|
|
552
545
|
*/
|
|
553
546
|
class InternalStateOperations {
|
|
554
|
-
constructor(
|
|
555
|
-
this._stateStream =
|
|
556
|
-
this._dispatcher =
|
|
557
|
-
this._config =
|
|
547
|
+
constructor() {
|
|
548
|
+
this._stateStream = inject(_StateStream);
|
|
549
|
+
this._dispatcher = inject(InternalDispatcher);
|
|
550
|
+
this._config = inject(NgxsConfig);
|
|
558
551
|
}
|
|
559
552
|
/**
|
|
560
553
|
* Returns the root state operators.
|
|
@@ -581,13 +574,13 @@ class InternalStateOperations {
|
|
|
581
574
|
// Set the state to the current + new
|
|
582
575
|
stateOperations.setState({ ...currentState, ...results.defaults });
|
|
583
576
|
}
|
|
584
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: InternalStateOperations, deps: [
|
|
577
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: InternalStateOperations, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
585
578
|
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: InternalStateOperations, providedIn: 'root' }); }
|
|
586
579
|
}
|
|
587
580
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: InternalStateOperations, decorators: [{
|
|
588
581
|
type: Injectable,
|
|
589
582
|
args: [{ providedIn: 'root' }]
|
|
590
|
-
}]
|
|
583
|
+
}] });
|
|
591
584
|
function ensureStateAndActionsAreImmutable(root) {
|
|
592
585
|
return {
|
|
593
586
|
getState: () => root.getState(),
|
|
@@ -985,12 +978,13 @@ const NGXS_DEVELOPMENT_OPTIONS = new InjectionToken(NG_DEV_MODE$5 ? 'NGXS_DEVELO
|
|
|
985
978
|
});
|
|
986
979
|
|
|
987
980
|
class NgxsUnhandledActionsLogger {
|
|
988
|
-
constructor(
|
|
981
|
+
constructor() {
|
|
989
982
|
/**
|
|
990
983
|
* These actions should be ignored by default; the user can increase this
|
|
991
984
|
* list in the future via the `ignoreActions` method.
|
|
992
985
|
*/
|
|
993
986
|
this._ignoredActions = new Set([InitState.type, UpdateState.type]);
|
|
987
|
+
const options = inject(NGXS_DEVELOPMENT_OPTIONS);
|
|
994
988
|
if (typeof options.warnOnUnhandledActions === 'object') {
|
|
995
989
|
this.ignoreActions(...options.warnOnUnhandledActions.ignore);
|
|
996
990
|
}
|
|
@@ -1015,15 +1009,12 @@ class NgxsUnhandledActionsLogger {
|
|
|
1015
1009
|
: action.type;
|
|
1016
1010
|
console.warn(`The ${action} action has been dispatched but hasn't been handled. This may happen if the state with an action handler for this action is not registered.`);
|
|
1017
1011
|
}
|
|
1018
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: NgxsUnhandledActionsLogger, deps: [
|
|
1012
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: NgxsUnhandledActionsLogger, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1019
1013
|
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: NgxsUnhandledActionsLogger }); }
|
|
1020
1014
|
}
|
|
1021
1015
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: NgxsUnhandledActionsLogger, decorators: [{
|
|
1022
1016
|
type: Injectable
|
|
1023
|
-
}], ctorParameters: () => [
|
|
1024
|
-
type: Inject,
|
|
1025
|
-
args: [NGXS_DEVELOPMENT_OPTIONS]
|
|
1026
|
-
}] }] });
|
|
1017
|
+
}], ctorParameters: () => [] });
|
|
1027
1018
|
|
|
1028
1019
|
class NgxsUnhandledErrorHandler {
|
|
1029
1020
|
constructor() {
|
|
@@ -1076,8 +1067,8 @@ function simplePatch(value) {
|
|
|
1076
1067
|
* @ignore
|
|
1077
1068
|
*/
|
|
1078
1069
|
class StateContextFactory {
|
|
1079
|
-
constructor(
|
|
1080
|
-
this._internalStateOperations =
|
|
1070
|
+
constructor() {
|
|
1071
|
+
this._internalStateOperations = inject(InternalStateOperations);
|
|
1081
1072
|
}
|
|
1082
1073
|
/**
|
|
1083
1074
|
* Create the state context
|
|
@@ -1108,13 +1099,13 @@ class StateContextFactory {
|
|
|
1108
1099
|
}
|
|
1109
1100
|
};
|
|
1110
1101
|
}
|
|
1111
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: StateContextFactory, deps: [
|
|
1102
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: StateContextFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1112
1103
|
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: StateContextFactory, providedIn: 'root' }); }
|
|
1113
1104
|
}
|
|
1114
1105
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: StateContextFactory, decorators: [{
|
|
1115
1106
|
type: Injectable,
|
|
1116
1107
|
args: [{ providedIn: 'root' }]
|
|
1117
|
-
}]
|
|
1108
|
+
}] });
|
|
1118
1109
|
function setStateValue(root, currentAppState, newValue, path) {
|
|
1119
1110
|
const newAppState = setValue(currentAppState, path, newValue);
|
|
1120
1111
|
root.setState(newAppState);
|
|
@@ -1553,19 +1544,19 @@ function noop() { }
|
|
|
1553
1544
|
|
|
1554
1545
|
const NG_DEV_MODE$3 = typeof ngDevMode !== 'undefined' && ngDevMode;
|
|
1555
1546
|
class Store {
|
|
1556
|
-
constructor(
|
|
1557
|
-
this._stateStream =
|
|
1558
|
-
this._internalStateOperations =
|
|
1559
|
-
this._config =
|
|
1560
|
-
this._internalExecutionStrategy =
|
|
1561
|
-
this._stateFactory =
|
|
1547
|
+
constructor() {
|
|
1548
|
+
this._stateStream = inject(_StateStream);
|
|
1549
|
+
this._internalStateOperations = inject(InternalStateOperations);
|
|
1550
|
+
this._config = inject(NgxsConfig);
|
|
1551
|
+
this._internalExecutionStrategy = inject(InternalNgxsExecutionStrategy);
|
|
1552
|
+
this._stateFactory = inject(StateFactory);
|
|
1562
1553
|
/**
|
|
1563
1554
|
* This is a derived state stream that leaves NGXS execution strategy to emit state changes within the Angular zone,
|
|
1564
1555
|
* because state is being changed actually within the `<root>` zone, see `InternalDispatcher#dispatchSingle`.
|
|
1565
1556
|
* All selects would use this stream, and it would call leave only once for any state change across all active selectors.
|
|
1566
1557
|
*/
|
|
1567
1558
|
this._selectableStateStream = this._stateStream.pipe(leaveNgxs(this._internalExecutionStrategy), shareReplay$1({ bufferSize: 1, refCount: true }));
|
|
1568
|
-
this.initStateStream(
|
|
1559
|
+
this.initStateStream();
|
|
1569
1560
|
}
|
|
1570
1561
|
/**
|
|
1571
1562
|
* Dispatches action(s).
|
|
@@ -1643,25 +1634,21 @@ class Store {
|
|
|
1643
1634
|
const runtimeContext = this._stateFactory.getRuntimeSelectorContext();
|
|
1644
1635
|
return makeSelectorFn(runtimeContext);
|
|
1645
1636
|
}
|
|
1646
|
-
initStateStream(
|
|
1637
|
+
initStateStream() {
|
|
1638
|
+
const initialStateValue = inject(_INITIAL_STATE_TOKEN);
|
|
1647
1639
|
const value = this._stateStream.value;
|
|
1648
1640
|
const storeIsEmpty = !value || Object.keys(value).length === 0;
|
|
1649
1641
|
if (storeIsEmpty) {
|
|
1650
1642
|
this._stateStream.next(initialStateValue);
|
|
1651
1643
|
}
|
|
1652
1644
|
}
|
|
1653
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: Store, deps: [
|
|
1645
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: Store, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1654
1646
|
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: Store, providedIn: 'root' }); }
|
|
1655
1647
|
}
|
|
1656
1648
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: Store, decorators: [{
|
|
1657
1649
|
type: Injectable,
|
|
1658
1650
|
args: [{ providedIn: 'root' }]
|
|
1659
|
-
}], ctorParameters: () => [
|
|
1660
|
-
type: Optional
|
|
1661
|
-
}, {
|
|
1662
|
-
type: Inject,
|
|
1663
|
-
args: [_INITIAL_STATE_TOKEN]
|
|
1664
|
-
}] }] });
|
|
1651
|
+
}], ctorParameters: () => [] });
|
|
1665
1652
|
|
|
1666
1653
|
const NG_DEV_MODE$2 = typeof ngDevMode !== 'undefined' && ngDevMode;
|
|
1667
1654
|
/**
|
|
@@ -1719,11 +1706,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImpor
|
|
|
1719
1706
|
|
|
1720
1707
|
const NG_DEV_MODE$1 = typeof ngDevMode !== 'undefined' && ngDevMode;
|
|
1721
1708
|
class LifecycleStateManager {
|
|
1722
|
-
constructor(
|
|
1723
|
-
this._store =
|
|
1724
|
-
this._internalStateOperations =
|
|
1725
|
-
this._stateContextFactory =
|
|
1726
|
-
this._appBootstrappedState =
|
|
1709
|
+
constructor() {
|
|
1710
|
+
this._store = inject(Store);
|
|
1711
|
+
this._internalStateOperations = inject(InternalStateOperations);
|
|
1712
|
+
this._stateContextFactory = inject(StateContextFactory);
|
|
1713
|
+
this._appBootstrappedState = inject(_NgxsAppBootstrappedState);
|
|
1727
1714
|
this._destroy$ = new ReplaySubject(1);
|
|
1728
1715
|
}
|
|
1729
1716
|
ngOnDestroy() {
|
|
@@ -1780,13 +1767,13 @@ class LifecycleStateManager {
|
|
|
1780
1767
|
_getStateContext(mappedStore) {
|
|
1781
1768
|
return this._stateContextFactory.createStateContext(mappedStore.path);
|
|
1782
1769
|
}
|
|
1783
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: LifecycleStateManager, deps: [
|
|
1770
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: LifecycleStateManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1784
1771
|
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: LifecycleStateManager, providedIn: 'root' }); }
|
|
1785
1772
|
}
|
|
1786
1773
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.6", ngImport: i0, type: LifecycleStateManager, decorators: [{
|
|
1787
1774
|
type: Injectable,
|
|
1788
1775
|
args: [{ providedIn: 'root' }]
|
|
1789
|
-
}]
|
|
1776
|
+
}] });
|
|
1790
1777
|
|
|
1791
1778
|
const NG_DEV_MODE = typeof ngDevMode !== 'undefined' && ngDevMode;
|
|
1792
1779
|
/**
|