ngssm-store 16.0.3 → 16.1.1
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/lib/effect.mjs +8 -2
- package/esm2022/lib/logging/console-appender.mjs +5 -6
- package/esm2022/lib/logging/logger.mjs +5 -6
- package/esm2022/lib/ngssm-component.mjs +5 -6
- package/esm2022/lib/reducer.mjs +8 -2
- package/esm2022/lib/store.mjs +5 -6
- package/esm2022/public-api.mjs +1 -2
- package/esm2022/testing/ngssm-store-testing.mjs +5 -0
- package/esm2022/testing/public_api.mjs +2 -0
- package/esm2022/testing/src/store-mock.mjs +21 -0
- package/fesm2022/ngssm-store-testing.mjs +28 -0
- package/fesm2022/ngssm-store-testing.mjs.map +1 -0
- package/fesm2022/ngssm-store.mjs +26 -24
- package/fesm2022/ngssm-store.mjs.map +1 -1
- package/lib/effect.d.ts +3 -1
- package/lib/reducer.d.ts +3 -1
- package/package.json +7 -1
- package/public-api.d.ts +0 -1
- package/testing/index.d.ts +5 -0
- package/testing/public_api.d.ts +1 -0
- package/{lib → testing/src}/store-mock.d.ts +6 -8
- package/esm2022/lib/store-mock.mjs +0 -12
package/esm2022/lib/effect.mjs
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
1
|
+
import { InjectionToken, makeEnvironmentProviders } from '@angular/core';
|
|
2
2
|
export const NGSSM_EFFECT = new InjectionToken('NGSSM_EFFECT');
|
|
3
|
-
|
|
3
|
+
export const provideEffect = (effect) => {
|
|
4
|
+
return makeEnvironmentProviders([{ provide: NGSSM_EFFECT, useClass: effect, multi: true }]);
|
|
5
|
+
};
|
|
6
|
+
export const provideEffects = (...effects) => {
|
|
7
|
+
return makeEnvironmentProviders(effects.map((effect) => ({ provide: NGSSM_EFFECT, useClass: effect, multi: true })));
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWZmZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdzc20tc3RvcmUvc3JjL2xpYi9lZmZlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF3QixjQUFjLEVBQVEsd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFXckcsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLElBQUksY0FBYyxDQUFTLGNBQWMsQ0FBQyxDQUFDO0FBRXZFLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLE1BQWlCLEVBQXdCLEVBQUU7SUFDdkUsT0FBTyx3QkFBd0IsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDOUYsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsR0FBRyxPQUFvQixFQUF3QixFQUFFO0lBQzlFLE9BQU8sd0JBQXdCLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdkgsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW52aXJvbm1lbnRQcm92aWRlcnMsIEluamVjdGlvblRva2VuLCBUeXBlLCBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnLi9hY3Rpb24nO1xuaW1wb3J0IHsgU3RhdGUgfSBmcm9tICcuL3N0YXRlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnLi9zdG9yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRWZmZWN0IHtcbiAgcHJvY2Vzc2VkQWN0aW9uczogc3RyaW5nW107XG4gIHByb2Nlc3NBY3Rpb24oc3RvcmU6IFN0b3JlLCBzdGF0ZTogU3RhdGUsIGFjdGlvbjogQWN0aW9uKTogdm9pZDtcbn1cblxuZXhwb3J0IGNvbnN0IE5HU1NNX0VGRkVDVCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxFZmZlY3Q+KCdOR1NTTV9FRkZFQ1QnKTtcblxuZXhwb3J0IGNvbnN0IHByb3ZpZGVFZmZlY3QgPSAoZWZmZWN0OiBUeXBlPGFueT4pOiBFbnZpcm9ubWVudFByb3ZpZGVycyA9PiB7XG4gIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW3sgcHJvdmlkZTogTkdTU01fRUZGRUNULCB1c2VDbGFzczogZWZmZWN0LCBtdWx0aTogdHJ1ZSB9XSk7XG59O1xuXG5leHBvcnQgY29uc3QgcHJvdmlkZUVmZmVjdHMgPSAoLi4uZWZmZWN0czogVHlwZTxhbnk+W10pOiBFbnZpcm9ubWVudFByb3ZpZGVycyA9PiB7XG4gIHJldHVybiBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoZWZmZWN0cy5tYXAoKGVmZmVjdCkgPT4gKHsgcHJvdmlkZTogTkdTU01fRUZGRUNULCB1c2VDbGFzczogZWZmZWN0LCBtdWx0aTogdHJ1ZSB9KSkpO1xufTtcbiJdfQ==
|
|
@@ -3,7 +3,7 @@ import { Subject, takeUntil } from 'rxjs';
|
|
|
3
3
|
import { LogLevel } from './log-level';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
import * as i1 from "./logger";
|
|
6
|
-
class ConsoleAppender {
|
|
6
|
+
export class ConsoleAppender {
|
|
7
7
|
constructor(logger) {
|
|
8
8
|
this.logger = logger;
|
|
9
9
|
this.stopEvent$ = new Subject();
|
|
@@ -32,14 +32,13 @@ class ConsoleAppender {
|
|
|
32
32
|
stop() {
|
|
33
33
|
this.stopEvent$.next(true);
|
|
34
34
|
}
|
|
35
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
36
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.
|
|
35
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: ConsoleAppender, deps: [{ token: i1.Logger }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
36
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: ConsoleAppender, providedIn: 'root' }); }
|
|
37
37
|
}
|
|
38
|
-
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: ConsoleAppender, decorators: [{
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: ConsoleAppender, decorators: [{
|
|
40
39
|
type: Injectable,
|
|
41
40
|
args: [{
|
|
42
41
|
providedIn: 'root'
|
|
43
42
|
}]
|
|
44
43
|
}], ctorParameters: function () { return [{ type: i1.Logger }]; } });
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc29sZS1hcHBlbmRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXN0b3JlL3NyYy9saWIvbG9nZ2luZy9jb25zb2xlLWFwcGVuZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7O0FBS3ZDLE1BQU0sT0FBTyxlQUFlO0lBRzFCLFlBQW9CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBRmpCLGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBVyxDQUFDO0lBRWhCLENBQUM7SUFFL0IsS0FBSyxDQUFDLFdBQW9CO1FBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDN0UsSUFBSSxXQUFnQixDQUFDO1lBQ3JCLFFBQVEsUUFBUSxDQUFDLEtBQUssRUFBRTtnQkFDdEIsS0FBSyxRQUFRLENBQUMsS0FBSztvQkFDakIsV0FBVyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7b0JBQzVCLE1BQU07Z0JBRVI7b0JBQ0UsV0FBVyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUM7b0JBQzFCLE1BQU07YUFDVDtZQUVELE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDeEMsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLFdBQVcsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFFdEQsSUFBSSxRQUFRLENBQUMsT0FBTyxFQUFFO2dCQUNwQixXQUFXLENBQUMsR0FBRyxNQUFNLElBQUksR0FBRyxNQUFNLFFBQVEsQ0FBQyxLQUFLLEtBQUssUUFBUSxDQUFDLE9BQU8sRUFBRSxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUM1RjtpQkFBTTtnQkFDTCxXQUFXLENBQUMsR0FBRyxNQUFNLElBQUksR0FBRyxNQUFNLFFBQVEsQ0FBQyxLQUFLLEtBQUssUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7YUFDMUU7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxJQUFJO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQzs4R0EvQlUsZUFBZTtrSEFBZixlQUFlLGNBRmQsTUFBTTs7MkZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IExvZ2dlciB9IGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCB7IExvZ0xldmVsIH0gZnJvbSAnLi9sb2ctbGV2ZWwnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDb25zb2xlQXBwZW5kZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IHN0b3BFdmVudCQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9nZ2VyOiBMb2dnZXIpIHt9XG5cbiAgcHVibGljIHN0YXJ0KGNvbnRleHROYW1lPzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5sb2dnZXIubG9nRXZlbnRzJC5waXBlKHRha2VVbnRpbCh0aGlzLnN0b3BFdmVudCQpKS5zdWJzY3JpYmUoKGxvZ0V2ZW50KSA9PiB7XG4gICAgICBsZXQgbG9nRnVuY3Rpb246IGFueTtcbiAgICAgIHN3aXRjaCAobG9nRXZlbnQubGV2ZWwpIHtcbiAgICAgICAgY2FzZSBMb2dMZXZlbC5lcnJvcjpcbiAgICAgICAgICBsb2dGdW5jdGlvbiA9IGNvbnNvbGUuZXJyb3I7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBsb2dGdW5jdGlvbiA9IGNvbnNvbGUubG9nO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpLnRvTG9jYWxlU3RyaW5nKCk7XG4gICAgICBjb25zdCBwcmVmaXggPSBjb250ZXh0TmFtZSA/IGBbJHtjb250ZXh0TmFtZX1dIGAgOiAnJztcblxuICAgICAgaWYgKGxvZ0V2ZW50LnBheWxvYWQpIHtcbiAgICAgICAgbG9nRnVuY3Rpb24oYCR7cHJlZml4fVske25vd31dIFske2xvZ0V2ZW50LmxldmVsfV0gJHtsb2dFdmVudC5tZXNzYWdlfWAsIGxvZ0V2ZW50LnBheWxvYWQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9nRnVuY3Rpb24oYCR7cHJlZml4fVske25vd31dIFske2xvZ0V2ZW50LmxldmVsfV0gJHtsb2dFdmVudC5tZXNzYWdlfWApO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHN0b3AoKTogdm9pZCB7XG4gICAgdGhpcy5zdG9wRXZlbnQkLm5leHQodHJ1ZSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -2,7 +2,7 @@ import { Injectable } from '@angular/core';
|
|
|
2
2
|
import { Subject } from 'rxjs';
|
|
3
3
|
import { LogLevel } from './log-level';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
class Logger {
|
|
5
|
+
export class Logger {
|
|
6
6
|
constructor() {
|
|
7
7
|
this._logEvents$ = new Subject();
|
|
8
8
|
}
|
|
@@ -25,14 +25,13 @@ class Logger {
|
|
|
25
25
|
payload
|
|
26
26
|
});
|
|
27
27
|
}
|
|
28
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
29
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.
|
|
28
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: Logger, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
29
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: Logger, providedIn: 'root' }); }
|
|
30
30
|
}
|
|
31
|
-
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: Logger, decorators: [{
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: Logger, decorators: [{
|
|
33
32
|
type: Injectable,
|
|
34
33
|
args: [{
|
|
35
34
|
providedIn: 'root'
|
|
36
35
|
}]
|
|
37
36
|
}] });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdzc20tc3RvcmUvc3JjL2xpYi9sb2dnaW5nL2xvZ2dlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFLdkMsTUFBTSxPQUFPLE1BQU07SUFIbkI7UUFJbUIsZ0JBQVcsR0FBRyxJQUFJLE9BQU8sRUFBWSxDQUFDO0tBeUJ4RDtJQXZCQyxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFTSxLQUFLLENBQUMsT0FBZSxFQUFFLE9BQWE7UUFDekMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU0sV0FBVyxDQUFDLE9BQWUsRUFBRSxPQUFhO1FBQy9DLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFlLEVBQUUsT0FBYTtRQUN6QyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFTSxHQUFHLENBQUMsS0FBZSxFQUFFLE9BQWUsRUFBRSxPQUFhO1FBQ3hELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1lBQ3BCLEtBQUs7WUFDTCxPQUFPO1lBQ1AsT0FBTztTQUNSLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBekJVLE1BQU07a0hBQU4sTUFBTSxjQUZMLE1BQU07OzJGQUVQLE1BQU07a0JBSGxCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBMb2dFdmVudCB9IGZyb20gJy4vbG9nLWV2ZW50JztcbmltcG9ydCB7IExvZ0xldmVsIH0gZnJvbSAnLi9sb2ctbGV2ZWwnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBMb2dnZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IF9sb2dFdmVudHMkID0gbmV3IFN1YmplY3Q8TG9nRXZlbnQ+KCk7XG5cbiAgcHVibGljIGdldCBsb2dFdmVudHMkKCk6IE9ic2VydmFibGU8TG9nRXZlbnQ+IHtcbiAgICByZXR1cm4gdGhpcy5fbG9nRXZlbnRzJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBkZWJ1ZyhtZXNzYWdlOiBzdHJpbmcsIHBheWxvYWQ/OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmxvZyhMb2dMZXZlbC5kZWJ1ZywgbWVzc2FnZSwgcGF5bG9hZCk7XG4gIH1cblxuICBwdWJsaWMgaW5mb3JtYXRpb24obWVzc2FnZTogc3RyaW5nLCBwYXlsb2FkPzogYW55KTogdm9pZCB7XG4gICAgdGhpcy5sb2coTG9nTGV2ZWwuaW5mb3JtYXRpb24sIG1lc3NhZ2UsIHBheWxvYWQpO1xuICB9XG5cbiAgcHVibGljIGVycm9yKG1lc3NhZ2U6IHN0cmluZywgcGF5bG9hZD86IGFueSk6IHZvaWQge1xuICAgIHRoaXMubG9nKExvZ0xldmVsLmVycm9yLCBtZXNzYWdlLCBwYXlsb2FkKTtcbiAgfVxuXG4gIHB1YmxpYyBsb2cobGV2ZWw6IExvZ0xldmVsLCBtZXNzYWdlOiBzdHJpbmcsIHBheWxvYWQ/OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9sb2dFdmVudHMkLm5leHQoe1xuICAgICAgbGV2ZWwsXG4gICAgICBtZXNzYWdlLFxuICAgICAgcGF5bG9hZFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -2,7 +2,7 @@ import { Directive } from '@angular/core';
|
|
|
2
2
|
import { map, Subject, distinctUntilChanged, takeUntil } from 'rxjs';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "./store";
|
|
5
|
-
class NgSsmComponent {
|
|
5
|
+
export class NgSsmComponent {
|
|
6
6
|
constructor(store) {
|
|
7
7
|
this.store = store;
|
|
8
8
|
this._unsubscribeAll$ = new Subject();
|
|
@@ -23,12 +23,11 @@ class NgSsmComponent {
|
|
|
23
23
|
dispatchActionType(actionType) {
|
|
24
24
|
this.store.dispatchActionType(actionType);
|
|
25
25
|
}
|
|
26
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
27
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.
|
|
26
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: NgSsmComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
27
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.1", type: NgSsmComponent, ngImport: i0 }); }
|
|
28
28
|
}
|
|
29
|
-
|
|
30
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgSsmComponent, decorators: [{
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: NgSsmComponent, decorators: [{
|
|
31
30
|
type: Directive,
|
|
32
31
|
args: [{}]
|
|
33
32
|
}], ctorParameters: function () { return [{ type: i1.Store }]; } });
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdzc20tc3RvcmUvc3JjL2xpYi9uZ3NzbS1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsR0FBRyxFQUFjLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQU9qRixNQUFNLE9BQU8sY0FBYztJQUd6QixZQUFzQixLQUFZO1FBQVosVUFBSyxHQUFMLEtBQUssQ0FBTztRQUZqQixxQkFBZ0IsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRW5CLENBQUM7SUFFdEMsSUFBYyxlQUFlO1FBQzNCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzlDLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVNLEtBQUssQ0FBSSxRQUE2QjtRQUMzQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDM0IsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsRUFDL0Isb0JBQW9CLEVBQUUsRUFDdEIsU0FBUyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FDaEMsQ0FBQztJQUNKLENBQUM7SUFFTSxjQUFjLENBQUMsTUFBYztRQUNsQyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRU0sa0JBQWtCLENBQUMsVUFBa0I7UUFDMUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM1QyxDQUFDOzhHQTVCVSxjQUFjO2tHQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBRDFCLFNBQVM7bUJBQUMsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUsIFN1YmplY3QsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnLi9hY3Rpb24nO1xuaW1wb3J0IHsgU3RhdGUgfSBmcm9tICcuL3N0YXRlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnLi9zdG9yZSc7XG5cbkBEaXJlY3RpdmUoe30pXG5leHBvcnQgY2xhc3MgTmdTc21Db21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IF91bnN1YnNjcmliZUFsbCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBzdG9yZTogU3RvcmUpIHt9XG5cbiAgcHJvdGVjdGVkIGdldCB1bnN1YnNjcmliZUFsbCQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuX3Vuc3Vic2NyaWJlQWxsJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl91bnN1YnNjcmliZUFsbCQubmV4dCgpO1xuICAgIHRoaXMuX3Vuc3Vic2NyaWJlQWxsJC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIHdhdGNoPFQ+KHNlbGVjdG9yOiAoc3RhdGU6IFN0YXRlKSA9PiBUKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuc3RhdGUkLnBpcGUoXG4gICAgICBtYXAoKHN0YXRlKSA9PiBzZWxlY3RvcihzdGF0ZSkpLFxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlQWxsJClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGRpc3BhdGNoQWN0aW9uKGFjdGlvbjogQWN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaEFjdGlvbihhY3Rpb24pO1xuICB9XG5cbiAgcHVibGljIGRpc3BhdGNoQWN0aW9uVHlwZShhY3Rpb25UeXBlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoQWN0aW9uVHlwZShhY3Rpb25UeXBlKTtcbiAgfVxufVxuIl19
|
package/esm2022/lib/reducer.mjs
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
1
|
+
import { InjectionToken, makeEnvironmentProviders } from '@angular/core';
|
|
2
2
|
export const NGSSM_REDUCER = new InjectionToken('NGSSM_REDUCER');
|
|
3
|
-
|
|
3
|
+
export const provideReducer = (reducer) => {
|
|
4
|
+
return makeEnvironmentProviders([{ provide: NGSSM_REDUCER, useClass: reducer, multi: true }]);
|
|
5
|
+
};
|
|
6
|
+
export const provideReducers = (...reducers) => {
|
|
7
|
+
return makeEnvironmentProviders(reducers.map((reducer) => ({ provide: NGSSM_REDUCER, useClass: reducer, multi: true })));
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXN0b3JlL3NyYy9saWIvcmVkdWNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXdCLGNBQWMsRUFBUSx3QkFBd0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVVyRyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxjQUFjLENBQVUsZUFBZSxDQUFDLENBQUM7QUFFMUUsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsT0FBa0IsRUFBd0IsRUFBRTtJQUN6RSxPQUFPLHdCQUF3QixDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNoRyxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxHQUFHLFFBQXFCLEVBQXdCLEVBQUU7SUFDaEYsT0FBTyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMzSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnZpcm9ubWVudFByb3ZpZGVycywgSW5qZWN0aW9uVG9rZW4sIFR5cGUsIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tICcuL2FjdGlvbic7XG5pbXBvcnQgeyBTdGF0ZSB9IGZyb20gJy4vc3RhdGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlZHVjZXIge1xuICBwcm9jZXNzZWRBY3Rpb25zOiBzdHJpbmdbXTtcbiAgdXBkYXRlU3RhdGUoc3RhdGU6IFN0YXRlLCBhY3Rpb246IEFjdGlvbik6IFN0YXRlO1xufVxuXG5leHBvcnQgY29uc3QgTkdTU01fUkVEVUNFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxSZWR1Y2VyPignTkdTU01fUkVEVUNFUicpO1xuXG5leHBvcnQgY29uc3QgcHJvdmlkZVJlZHVjZXIgPSAocmVkdWNlcjogVHlwZTxhbnk+KTogRW52aXJvbm1lbnRQcm92aWRlcnMgPT4ge1xuICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFt7IHByb3ZpZGU6IE5HU1NNX1JFRFVDRVIsIHVzZUNsYXNzOiByZWR1Y2VyLCBtdWx0aTogdHJ1ZSB9XSk7XG59O1xuXG5leHBvcnQgY29uc3QgcHJvdmlkZVJlZHVjZXJzID0gKC4uLnJlZHVjZXJzOiBUeXBlPGFueT5bXSk6IEVudmlyb25tZW50UHJvdmlkZXJzID0+IHtcbiAgcmV0dXJuIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhyZWR1Y2Vycy5tYXAoKHJlZHVjZXIpID0+ICh7IHByb3ZpZGU6IE5HU1NNX1JFRFVDRVIsIHVzZUNsYXNzOiByZWR1Y2VyLCBtdWx0aTogdHJ1ZSB9KSkpO1xufTtcbiJdfQ==
|
package/esm2022/lib/store.mjs
CHANGED
|
@@ -12,7 +12,7 @@ export const NgSsmFeatureState = (specification) => {
|
|
|
12
12
|
featureStateSpecifications.push(specification);
|
|
13
13
|
};
|
|
14
14
|
};
|
|
15
|
-
class Store {
|
|
15
|
+
export class Store {
|
|
16
16
|
constructor(logger, reducers, effects, initializers) {
|
|
17
17
|
this.logger = logger;
|
|
18
18
|
this._state$ = new BehaviorSubject({});
|
|
@@ -108,11 +108,10 @@ class Store {
|
|
|
108
108
|
setTimeout(() => this.processNextAction());
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
112
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.
|
|
111
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: Store, deps: [{ token: i1.Logger }, { token: NGSSM_REDUCER, optional: true }, { token: NGSSM_EFFECT, optional: true }, { token: NGSSM_STATE_INITIALIZER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
112
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: Store, providedIn: 'root' }); }
|
|
113
113
|
}
|
|
114
|
-
|
|
115
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: Store, decorators: [{
|
|
114
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: Store, decorators: [{
|
|
116
115
|
type: Injectable,
|
|
117
116
|
args: [{
|
|
118
117
|
providedIn: 'root'
|
|
@@ -133,4 +132,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
|
|
|
133
132
|
}, {
|
|
134
133
|
type: Optional
|
|
135
134
|
}] }]; } });
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1zdG9yZS9zcmMvbGliL3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUVuRCxPQUFPLE1BQU0sTUFBTSxxQkFBcUIsQ0FBQztBQUt6QyxPQUFPLEVBQUUsYUFBYSxFQUFXLE1BQU0sV0FBVyxDQUFDO0FBQ25ELE9BQU8sRUFBVSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDaEQsT0FBTyxFQUFFLHVCQUF1QixFQUFvQixNQUFNLHFCQUFxQixDQUFDOzs7QUFHaEYsTUFBTSwwQkFBMEIsR0FBZ0MsRUFBRSxDQUFDO0FBQ25FLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsYUFBd0MsRUFBRSxFQUFFO0lBQzVFLE9BQU8sQ0FBQyxNQUFjLEVBQUUsRUFBRTtRQUN4QiwwQkFBMEIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDakQsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFHYSxLQUFLO0lBT2hCLFlBQ1UsTUFBYyxFQUNhLFFBQW1CLEVBQ3BCLE9BQWlCLEVBQ04sWUFBZ0M7UUFIckUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVBQLFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBUSxFQUFFLENBQUMsQ0FBQztRQUN6QyxnQkFBVyxHQUFhLEVBQUUsQ0FBQztRQUMzQiwwQkFBcUIsR0FBRyxJQUFJLEdBQUcsRUFBcUIsQ0FBQztRQUNyRCx5QkFBb0IsR0FBRyxJQUFJLEdBQUcsRUFBb0IsQ0FBQztRQUNuRCxpQkFBWSxHQUFHLE1BQU0sQ0FBUSxFQUFFLENBQUMsQ0FBQztRQVFoRCxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1FBQ2hFLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDcEMsS0FBSyxHQUFHLDBCQUEwQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXpILENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQzNDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLHFDQUFxQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQzVFLEtBQUssR0FBRyxXQUFXLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdDLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsa0NBQWtDLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sY0FBYyxDQUFDLENBQUM7UUFDakcsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsb0NBQW9DLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDdkUsT0FBTyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLGVBQWUsRUFBRSxFQUFFO2dCQUNuRCxNQUFNLGFBQWEsR0FBYyxJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDdkYsSUFBSSxhQUFhLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtvQkFDOUIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsYUFBYSxDQUFDLENBQUM7aUJBQ2hFO2dCQUVELGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDOUIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLGtDQUFrQyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLGFBQWEsQ0FBQyxDQUFDO1FBQy9GLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLG9DQUFvQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3RFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxlQUFlLEVBQUUsRUFBRTtnQkFDbEQsTUFBTSxhQUFhLEdBQWEsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3JGLElBQUksYUFBYSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7b0JBQzlCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLGFBQWEsQ0FBQyxDQUFDO2lCQUMvRDtnQkFFRCxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzdCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBVyxNQUFNO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVNLGNBQWMsQ0FBQyxNQUFjO1FBQ2xDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLG1CQUFtQixNQUFNLENBQUMsSUFBSSwyQkFBMkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzlILFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxJQUFZO1FBQ3BDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM1QyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsMENBQTBDLENBQUMsQ0FBQztZQUM5RCxPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxnREFBZ0QsVUFBVSxDQUFDLElBQUksS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRTFHLElBQUk7WUFDRixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDdkUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxRQUFRLENBQUMsTUFBTSx5Q0FBeUMsVUFBVSxDQUFDLElBQUksRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ2xILE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDN0MsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDO1lBRTNGLElBQUksWUFBWSxLQUFLLFlBQVksRUFBRTtnQkFDakMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDakM7WUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDckUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxPQUFPLENBQUMsTUFBTSx3Q0FBd0MsVUFBVSxDQUFDLElBQUksRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQy9HLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDekIsSUFBSTtvQkFDRixNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7aUJBQ3REO2dCQUFDLE9BQU8sS0FBSyxFQUFFO29CQUNkLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDRCQUE0QixVQUFVLENBQUMsSUFBSSxjQUFjLE1BQU0sRUFBRSxFQUFFO3dCQUNuRixLQUFLO3dCQUNMLE1BQU0sRUFBRSxVQUFVO3dCQUNsQixTQUFTLEVBQUUsTUFBTTtxQkFDbEIsQ0FBQyxDQUFDO2lCQUNKO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsZ0NBQWdDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDbkUsS0FBSztnQkFDTCxNQUFNLEVBQUUsVUFBVTthQUNuQixDQUFDLENBQUM7U0FDSjtnQkFBUztZQUNSLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLCtCQUErQixVQUFVLENBQUMsSUFBSSxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFFakcsMENBQTBDO1lBQzFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO1NBQzVDO0lBQ0gsQ0FBQzs4R0FqSFUsS0FBSyx3Q0FTTixhQUFhLDZCQUNiLFlBQVksNkJBQ1osdUJBQXVCO2tIQVh0QixLQUFLLGNBRkosTUFBTTs7U0FFUCxLQUFLOzJGQUFMLEtBQUs7a0JBSGpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFVSSxNQUFNOzJCQUFDLGFBQWE7OzBCQUFHLFFBQVE7OzBCQUMvQixNQUFNOzJCQUFDLFlBQVk7OzBCQUFHLFFBQVE7OzBCQUM5QixNQUFNOzJCQUFDLHVCQUF1Qjs7MEJBQUcsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwsIFNpZ25hbCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHVwZGF0ZSBmcm9tICdpbW11dGFiaWxpdHktaGVscGVyJztcblxuaW1wb3J0IHsgRmVhdHVyZVN0YXRlU3BlY2lmaWNhdGlvbiB9IGZyb20gJy4vZmVhdHVyZS1zdGF0ZS1zcGVjaWZpY2F0aW9uJztcbmltcG9ydCB7IFN0YXRlIH0gZnJvbSAnLi9zdGF0ZSc7XG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tICcuL2FjdGlvbic7XG5pbXBvcnQgeyBOR1NTTV9SRURVQ0VSLCBSZWR1Y2VyIH0gZnJvbSAnLi9yZWR1Y2VyJztcbmltcG9ydCB7IEVmZmVjdCwgTkdTU01fRUZGRUNUIH0gZnJvbSAnLi9lZmZlY3QnO1xuaW1wb3J0IHsgTkdTU01fU1RBVEVfSU5JVElBTElaRVIsIFN0YXRlSW5pdGlhbGl6ZXIgfSBmcm9tICcuL3N0YXRlLWluaXRpYWxpemVyJztcbmltcG9ydCB7IExvZ2dlciB9IGZyb20gJy4vbG9nZ2luZyc7XG5cbmNvbnN0IGZlYXR1cmVTdGF0ZVNwZWNpZmljYXRpb25zOiBGZWF0dXJlU3RhdGVTcGVjaWZpY2F0aW9uW10gPSBbXTtcbmV4cG9ydCBjb25zdCBOZ1NzbUZlYXR1cmVTdGF0ZSA9IChzcGVjaWZpY2F0aW9uOiBGZWF0dXJlU3RhdGVTcGVjaWZpY2F0aW9uKSA9PiB7XG4gIHJldHVybiAodGFyZ2V0OiBvYmplY3QpID0+IHtcbiAgICBmZWF0dXJlU3RhdGVTcGVjaWZpY2F0aW9ucy5wdXNoKHNwZWNpZmljYXRpb24pO1xuICB9O1xufTtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU3RvcmUge1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFN0YXRlPih7fSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgYWN0aW9uUXVldWU6IEFjdGlvbltdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVkdWNlcnNQZXJBY3Rpb25UeXBlID0gbmV3IE1hcDxzdHJpbmcsIFJlZHVjZXJbXT4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBlZmZlY3RzUGVyQWN0aW9uVHlwZSA9IG5ldyBNYXA8c3RyaW5nLCBFZmZlY3RbXT4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc3RhdGVTaWduYWwgPSBzaWduYWw8U3RhdGU+KHt9KTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGxvZ2dlcjogTG9nZ2VyLFxuICAgIEBJbmplY3QoTkdTU01fUkVEVUNFUikgQE9wdGlvbmFsKCkgcmVkdWNlcnM6IFJlZHVjZXJbXSxcbiAgICBASW5qZWN0KE5HU1NNX0VGRkVDVCkgQE9wdGlvbmFsKCkgZWZmZWN0czogRWZmZWN0W10sXG4gICAgQEluamVjdChOR1NTTV9TVEFURV9JTklUSUFMSVpFUikgQE9wdGlvbmFsKCkgaW5pdGlhbGl6ZXJzOiBTdGF0ZUluaXRpYWxpemVyW11cbiAgKSB7XG4gICAgdGhpcy5fc3RhdGUkLnN1YnNjcmliZSgodmFsdWUpID0+IHRoaXMuX3N0YXRlU2lnbmFsLnNldCh2YWx1ZSkpO1xuICAgIHRoaXMubG9nZ2VyLmluZm9ybWF0aW9uKCdbU3RvcmVdIC0tLT4gc3RhdGUgaW5pdGlhbGl6YXRpb24uLi4nKTtcbiAgICBsZXQgc3RhdGUgPSB0aGlzLl9zdGF0ZSQuZ2V0VmFsdWUoKTtcbiAgICBzdGF0ZSA9IGZlYXR1cmVTdGF0ZVNwZWNpZmljYXRpb25zLnJlZHVjZSgocCwgYykgPT4gdXBkYXRlKHAsIHsgW2MuZmVhdHVyZVN0YXRlS2V5XTogeyAkc2V0OiBjLmluaXRpYWxTdGF0ZSB9IH0pLCBzdGF0ZSk7XG5cbiAgICAoaW5pdGlhbGl6ZXJzID8/IFtdKS5mb3JFYWNoKChpbml0aWFsaXplcikgPT4ge1xuICAgICAgdGhpcy5sb2dnZXIuaW5mb3JtYXRpb24oJ1tTdG9yZV0gLS0tLS0tPiBjYWxsaW5nIGluaXRpYWxpemVyJywgaW5pdGlhbGl6ZXIpO1xuICAgICAgc3RhdGUgPSBpbml0aWFsaXplci5pbml0aWFsaXplU3RhdGUoc3RhdGUpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fc3RhdGUkLm5leHQoc3RhdGUpO1xuXG4gICAgdGhpcy5sb2dnZXIuaW5mb3JtYXRpb24oYFtTdG9yZV0gLS0tPiBpbml0aWFsaXphdGlvbiBvZiAkeyhyZWR1Y2VycyA/PyBbXSkubGVuZ3RofSByZWR1Y2Vycy4uLmApO1xuICAgIChyZWR1Y2VycyA/PyBbXSkuZm9yRWFjaCgocmVkdWNlcikgPT4ge1xuICAgICAgdGhpcy5sb2dnZXIuaW5mb3JtYXRpb24oJ1tTdG9yZV0gLS0tLS0tPiBpbml0aWFsaXphdGlvbiBvZiAnLCByZWR1Y2VyKTtcbiAgICAgIHJlZHVjZXIucHJvY2Vzc2VkQWN0aW9ucy5mb3JFYWNoKChwcm9jZXNzZWRBY3Rpb24pID0+IHtcbiAgICAgICAgY29uc3Qgc3RvcmVSZWR1Y2VyczogUmVkdWNlcltdID0gdGhpcy5yZWR1Y2Vyc1BlckFjdGlvblR5cGUuZ2V0KHByb2Nlc3NlZEFjdGlvbikgPz8gW107XG4gICAgICAgIGlmIChzdG9yZVJlZHVjZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHRoaXMucmVkdWNlcnNQZXJBY3Rpb25UeXBlLnNldChwcm9jZXNzZWRBY3Rpb24sIHN0b3JlUmVkdWNlcnMpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RvcmVSZWR1Y2Vycy5wdXNoKHJlZHVjZXIpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmxvZ2dlci5pbmZvcm1hdGlvbihgW1N0b3JlXSAtLS0+IGluaXRpYWxpemF0aW9uIG9mICR7KGVmZmVjdHMgPz8gW10pLmxlbmd0aH0gZWZmZWN0cy4uLmApO1xuICAgIChlZmZlY3RzID8/IFtdKS5mb3JFYWNoKChlZmZlY3QpID0+IHtcbiAgICAgIHRoaXMubG9nZ2VyLmluZm9ybWF0aW9uKCdbU3RvcmVdIC0tLS0tLT4gaW5pdGlhbGl6YXRpb24gb2YgJywgZWZmZWN0KTtcbiAgICAgIGVmZmVjdC5wcm9jZXNzZWRBY3Rpb25zLmZvckVhY2goKHByb2Nlc3NlZEFjdGlvbikgPT4ge1xuICAgICAgICBjb25zdCBzdG9yZWRFZmZlY3RzOiBFZmZlY3RbXSA9IHRoaXMuZWZmZWN0c1BlckFjdGlvblR5cGUuZ2V0KHByb2Nlc3NlZEFjdGlvbikgPz8gW107XG4gICAgICAgIGlmIChzdG9yZWRFZmZlY3RzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHRoaXMuZWZmZWN0c1BlckFjdGlvblR5cGUuc2V0KHByb2Nlc3NlZEFjdGlvbiwgc3RvcmVkRWZmZWN0cyk7XG4gICAgICAgIH1cblxuICAgICAgICBzdG9yZWRFZmZlY3RzLnB1c2goZWZmZWN0KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldCBzdGF0ZSQoKTogT2JzZXJ2YWJsZTxTdGF0ZT4ge1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0YXRlKCk6IFNpZ25hbDxTdGF0ZT4ge1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZVNpZ25hbC5hc1JlYWRvbmx5KCk7XG4gIH1cblxuICBwdWJsaWMgZGlzcGF0Y2hBY3Rpb24oYWN0aW9uOiBBY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLmFjdGlvblF1ZXVlLnB1c2goYWN0aW9uKTtcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgQWN0aW9uIG9mIHR5cGUgJyR7YWN0aW9uLnR5cGV9JyBhZGRlZCB0byB0aGUgcXVldWUgPT4gJHt0aGlzLmFjdGlvblF1ZXVlLmxlbmd0aH0gcGVuZGluZyBhY3Rpb25zYCwgYWN0aW9uKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMucHJvY2Vzc05leHRBY3Rpb24oKSk7XG4gIH1cblxuICBwdWJsaWMgZGlzcGF0Y2hBY3Rpb25UeXBlKHR5cGU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oeyB0eXBlIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBwcm9jZXNzTmV4dEFjdGlvbigpOiB2b2lkIHtcbiAgICBjb25zdCBuZXh0QWN0aW9uID0gdGhpcy5hY3Rpb25RdWV1ZS5zaGlmdCgpO1xuICAgIGlmICghbmV4dEFjdGlvbikge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ1twcm9jZXNzTmV4dEFjdGlvbl0gTm8gYWN0aW9uIHRvIHByb2Nlc3MnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmxvZ2dlci5pbmZvcm1hdGlvbihgW3Byb2Nlc3NOZXh0QWN0aW9uXSBTdGFydCBwcm9jZXNzaW5nIGFjdGlvbiAnJHtuZXh0QWN0aW9uLnR5cGV9Li4uYCwgbmV4dEFjdGlvbik7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVkdWNlcnMgPSB0aGlzLnJlZHVjZXJzUGVyQWN0aW9uVHlwZS5nZXQobmV4dEFjdGlvbi50eXBlKSA/PyBbXTtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGBbU3RvcmVdICR7cmVkdWNlcnMubGVuZ3RofSByZWR1Y2VycyBmb3VuZCB0byBwcm9jZXNzIHRoZSBhY3Rpb24gJHtuZXh0QWN0aW9uLnR5cGV9YCwgcmVkdWNlcnMpO1xuICAgICAgY29uc3QgY3VycmVudFN0YXRlID0gdGhpcy5fc3RhdGUkLmdldFZhbHVlKCk7XG4gICAgICBjb25zdCB1cGRhdGVkU3RhdGUgPSByZWR1Y2Vycy5yZWR1Y2UoKHAsIGMpID0+IGMudXBkYXRlU3RhdGUocCwgbmV4dEFjdGlvbiksIGN1cnJlbnRTdGF0ZSk7XG5cbiAgICAgIGlmICh1cGRhdGVkU3RhdGUgIT09IGN1cnJlbnRTdGF0ZSkge1xuICAgICAgICB0aGlzLl9zdGF0ZSQubmV4dCh1cGRhdGVkU3RhdGUpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBlZmZlY3RzID0gdGhpcy5lZmZlY3RzUGVyQWN0aW9uVHlwZS5nZXQobmV4dEFjdGlvbi50eXBlKSA/PyBbXTtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKGBbU3RvcmVdICR7ZWZmZWN0cy5sZW5ndGh9IGVmZmVjdHMgZm91bmQgdG8gcHJvY2VzcyB0aGUgYWN0aW9uICR7bmV4dEFjdGlvbi50eXBlfWAsIGVmZmVjdHMpO1xuICAgICAgZWZmZWN0cy5mb3JFYWNoKChlZmZlY3QpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBlZmZlY3QucHJvY2Vzc0FjdGlvbih0aGlzLCB1cGRhdGVkU3RhdGUsIG5leHRBY3Rpb24pO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKGBVbmFibGUgdG8gcHJvY2VzcyBhY3Rpb24gJHtuZXh0QWN0aW9uLnR5cGV9IGJ5IGVmZmVjdCAke2VmZmVjdH1gLCB7XG4gICAgICAgICAgICBlcnJvcixcbiAgICAgICAgICAgIGFjdGlvbjogbmV4dEFjdGlvbixcbiAgICAgICAgICAgIHByb2Nlc3NvcjogZWZmZWN0XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcihgRXJyb3Igd2hlbiBwcm9jZXNzaW5nIGFjdGlvbiAke25leHRBY3Rpb24udHlwZX1gLCB7XG4gICAgICAgIGVycm9yLFxuICAgICAgICBhY3Rpb246IG5leHRBY3Rpb25cbiAgICAgIH0pO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmxvZ2dlci5pbmZvcm1hdGlvbihgW3Byb2Nlc3NOZXh0QWN0aW9uXSBhY3Rpb24gJyR7bmV4dEFjdGlvbi50eXBlfSBwcm9jZXNzZWQuYCwgbmV4dEFjdGlvbik7XG5cbiAgICAgIC8vIFNob3VsZCBub3QgYmUgdXNlZnVsLkJ1dCwganVzdCBpbiBjYXNlLlxuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnByb2Nlc3NOZXh0QWN0aW9uKCkpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1zdG9yZS9zcmMvbGliL3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUVuRCxPQUFPLE1BQU0sTUFBTSxxQkFBcUIsQ0FBQztBQUt6QyxPQUFPLEVBQUUsYUFBYSxFQUFXLE1BQU0sV0FBVyxDQUFDO0FBQ25ELE9BQU8sRUFBVSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDaEQsT0FBTyxFQUFFLHVCQUF1QixFQUFvQixNQUFNLHFCQUFxQixDQUFDOzs7QUFHaEYsTUFBTSwwQkFBMEIsR0FBZ0MsRUFBRSxDQUFDO0FBQ25FLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsYUFBd0MsRUFBRSxFQUFFO0lBQzVFLE9BQU8sQ0FBQyxNQUFjLEVBQUUsRUFBRTtRQUN4QiwwQkFBMEIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDakQsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBS0YsTUFBTSxPQUFPLEtBQUs7SUFPaEIsWUFDVSxNQUFjLEVBQ2EsUUFBbUIsRUFDcEIsT0FBaUIsRUFDTixZQUFnQztRQUhyRSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBUFAsWUFBTyxHQUFHLElBQUksZUFBZSxDQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLGdCQUFXLEdBQWEsRUFBRSxDQUFDO1FBQzNCLDBCQUFxQixHQUFHLElBQUksR0FBRyxFQUFxQixDQUFDO1FBQ3JELHlCQUFvQixHQUFHLElBQUksR0FBRyxFQUFvQixDQUFDO1FBQ25ELGlCQUFZLEdBQUcsTUFBTSxDQUFRLEVBQUUsQ0FBQyxDQUFDO1FBUWhELElBQUks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O2dCQUNMLE1BQU0sRUFBRSxVQUFVO2FBQ25CLENBQUMsQ0FBQztTQUNKO2dCQUFTO1lBQ1IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsK0JBQStCLFVBQVUsQ0FBQyxJQUFJLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUVqRywwQ0FBMEM7WUFDMUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUM7U0FDNUM7SUFDSCxDQUFDOzhHQWpIVSxLQUFLLHdDQVNOLGFBQWEsNkJBQ2IsWUFBWSw2QkFDWix1QkFBdUI7a0hBWHRCLEtBQUssY0FGSixNQUFNOzsyRkFFUCxLQUFLO2tCQUhqQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBVUksTUFBTTsyQkFBQyxhQUFhOzswQkFBRyxRQUFROzswQkFDL0IsTUFBTTsyQkFBQyxZQUFZOzswQkFBRyxRQUFROzswQkFDOUIsTUFBTTsyQkFBQyx1QkFBdUI7OzBCQUFHLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsLCBTaWduYWwsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB1cGRhdGUgZnJvbSAnaW1tdXRhYmlsaXR5LWhlbHBlcic7XG5cbmltcG9ydCB7IEZlYXR1cmVTdGF0ZVNwZWNpZmljYXRpb24gfSBmcm9tICcuL2ZlYXR1cmUtc3RhdGUtc3BlY2lmaWNhdGlvbic7XG5pbXBvcnQgeyBTdGF0ZSB9IGZyb20gJy4vc3RhdGUnO1xuaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnLi9hY3Rpb24nO1xuaW1wb3J0IHsgTkdTU01fUkVEVUNFUiwgUmVkdWNlciB9IGZyb20gJy4vcmVkdWNlcic7XG5pbXBvcnQgeyBFZmZlY3QsIE5HU1NNX0VGRkVDVCB9IGZyb20gJy4vZWZmZWN0JztcbmltcG9ydCB7IE5HU1NNX1NUQVRFX0lOSVRJQUxJWkVSLCBTdGF0ZUluaXRpYWxpemVyIH0gZnJvbSAnLi9zdGF0ZS1pbml0aWFsaXplcic7XG5pbXBvcnQgeyBMb2dnZXIgfSBmcm9tICcuL2xvZ2dpbmcnO1xuXG5jb25zdCBmZWF0dXJlU3RhdGVTcGVjaWZpY2F0aW9uczogRmVhdHVyZVN0YXRlU3BlY2lmaWNhdGlvbltdID0gW107XG5leHBvcnQgY29uc3QgTmdTc21GZWF0dXJlU3RhdGUgPSAoc3BlY2lmaWNhdGlvbjogRmVhdHVyZVN0YXRlU3BlY2lmaWNhdGlvbikgPT4ge1xuICByZXR1cm4gKHRhcmdldDogb2JqZWN0KSA9PiB7XG4gICAgZmVhdHVyZVN0YXRlU3BlY2lmaWNhdGlvbnMucHVzaChzcGVjaWZpY2F0aW9uKTtcbiAgfTtcbn07XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFN0b3JlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfc3RhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxTdGF0ZT4oe30pO1xuICBwcml2YXRlIHJlYWRvbmx5IGFjdGlvblF1ZXVlOiBBY3Rpb25bXSA9IFtdO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlZHVjZXJzUGVyQWN0aW9uVHlwZSA9IG5ldyBNYXA8c3RyaW5nLCBSZWR1Y2VyW10+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZWZmZWN0c1BlckFjdGlvblR5cGUgPSBuZXcgTWFwPHN0cmluZywgRWZmZWN0W10+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0YXRlU2lnbmFsID0gc2lnbmFsPFN0YXRlPih7fSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBsb2dnZXI6IExvZ2dlcixcbiAgICBASW5qZWN0KE5HU1NNX1JFRFVDRVIpIEBPcHRpb25hbCgpIHJlZHVjZXJzOiBSZWR1Y2VyW10sXG4gICAgQEluamVjdChOR1NTTV9FRkZFQ1QpIEBPcHRpb25hbCgpIGVmZmVjdHM6IEVmZmVjdFtdLFxuICAgIEBJbmplY3QoTkdTU01fU1RBVEVfSU5JVElBTElaRVIpIEBPcHRpb25hbCgpIGluaXRpYWxpemVyczogU3RhdGVJbml0aWFsaXplcltdXG4gICkge1xuICAgIHRoaXMuX3N0YXRlJC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB0aGlzLl9zdGF0ZVNpZ25hbC5zZXQodmFsdWUpKTtcbiAgICB0aGlzLmxvZ2dlci5pbmZvcm1hdGlvbignW1N0b3JlXSAtLS0+IHN0YXRlIGluaXRpYWxpemF0aW9uLi4uJyk7XG4gICAgbGV0IHN0YXRlID0gdGhpcy5fc3RhdGUkLmdldFZhbHVlKCk7XG4gICAgc3RhdGUgPSBmZWF0dXJlU3RhdGVTcGVjaWZpY2F0aW9ucy5yZWR1Y2UoKHAsIGMpID0+IHVwZGF0ZShwLCB7IFtjLmZlYXR1cmVTdGF0ZUtleV06IHsgJHNldDogYy5pbml0aWFsU3RhdGUgfSB9KSwgc3RhdGUpO1xuXG4gICAgKGluaXRpYWxpemVycyA/PyBbXSkuZm9yRWFjaCgoaW5pdGlhbGl6ZXIpID0+IHtcbiAgICAgIHRoaXMubG9nZ2VyLmluZm9ybWF0aW9uKCdbU3RvcmVdIC0tLS0tLT4gY2FsbGluZyBpbml0aWFsaXplcicsIGluaXRpYWxpemVyKTtcbiAgICAgIHN0YXRlID0gaW5pdGlhbGl6ZXIuaW5pdGlhbGl6ZVN0YXRlKHN0YXRlKTtcbiAgICB9KTtcblxuICAgIHRoaXMuX3N0YXRlJC5uZXh0KHN0YXRlKTtcblxuICAgIHRoaXMubG9nZ2VyLmluZm9ybWF0aW9uKGBbU3RvcmVdIC0tLT4gaW5pdGlhbGl6YXRpb24gb2YgJHsocmVkdWNlcnMgPz8gW10pLmxlbmd0aH0gcmVkdWNlcnMuLi5gKTtcbiAgICAocmVkdWNlcnMgPz8gW10pLmZvckVhY2goKHJlZHVjZXIpID0+IHtcbiAgICAgIHRoaXMubG9nZ2VyLmluZm9ybWF0aW9uKCdbU3RvcmVdIC0tLS0tLT4gaW5pdGlhbGl6YXRpb24gb2YgJywgcmVkdWNlcik7XG4gICAgICByZWR1Y2VyLnByb2Nlc3NlZEFjdGlvbnMuZm9yRWFjaCgocHJvY2Vzc2VkQWN0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IHN0b3JlUmVkdWNlcnM6IFJlZHVjZXJbXSA9IHRoaXMucmVkdWNlcnNQZXJBY3Rpb25UeXBlLmdldChwcm9jZXNzZWRBY3Rpb24pID8/IFtdO1xuICAgICAgICBpZiAoc3RvcmVSZWR1Y2Vycy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICB0aGlzLnJlZHVjZXJzUGVyQWN0aW9uVHlwZS5zZXQocHJvY2Vzc2VkQWN0aW9uLCBzdG9yZVJlZHVjZXJzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN0b3JlUmVkdWNlcnMucHVzaChyZWR1Y2VyKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgdGhpcy5sb2dnZXIuaW5mb3JtYXRpb24oYFtTdG9yZV0gLS0tPiBpbml0aWFsaXphdGlvbiBvZiAkeyhlZmZlY3RzID8/IFtdKS5sZW5ndGh9IGVmZmVjdHMuLi5gKTtcbiAgICAoZWZmZWN0cyA/PyBbXSkuZm9yRWFjaCgoZWZmZWN0KSA9PiB7XG4gICAgICB0aGlzLmxvZ2dlci5pbmZvcm1hdGlvbignW1N0b3JlXSAtLS0tLS0+IGluaXRpYWxpemF0aW9uIG9mICcsIGVmZmVjdCk7XG4gICAgICBlZmZlY3QucHJvY2Vzc2VkQWN0aW9ucy5mb3JFYWNoKChwcm9jZXNzZWRBY3Rpb24pID0+IHtcbiAgICAgICAgY29uc3Qgc3RvcmVkRWZmZWN0czogRWZmZWN0W10gPSB0aGlzLmVmZmVjdHNQZXJBY3Rpb25UeXBlLmdldChwcm9jZXNzZWRBY3Rpb24pID8/IFtdO1xuICAgICAgICBpZiAoc3RvcmVkRWZmZWN0cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICB0aGlzLmVmZmVjdHNQZXJBY3Rpb25UeXBlLnNldChwcm9jZXNzZWRBY3Rpb24sIHN0b3JlZEVmZmVjdHMpO1xuICAgICAgICB9XG5cbiAgICAgICAgc3RvcmVkRWZmZWN0cy5wdXNoKGVmZmVjdCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RhdGUkKCk6IE9ic2VydmFibGU8U3RhdGU+IHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGUkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBzdGF0ZSgpOiBTaWduYWw8U3RhdGU+IHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGVTaWduYWwuYXNSZWFkb25seSgpO1xuICB9XG5cbiAgcHVibGljIGRpc3BhdGNoQWN0aW9uKGFjdGlvbjogQWN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5hY3Rpb25RdWV1ZS5wdXNoKGFjdGlvbik7XG4gICAgdGhpcy5sb2dnZXIuZGVidWcoYEFjdGlvbiBvZiB0eXBlICcke2FjdGlvbi50eXBlfScgYWRkZWQgdG8gdGhlIHF1ZXVlID0+ICR7dGhpcy5hY3Rpb25RdWV1ZS5sZW5ndGh9IHBlbmRpbmcgYWN0aW9uc2AsIGFjdGlvbik7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnByb2Nlc3NOZXh0QWN0aW9uKCkpO1xuICB9XG5cbiAgcHVibGljIGRpc3BhdGNoQWN0aW9uVHlwZSh0eXBlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKHsgdHlwZSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcHJvY2Vzc05leHRBY3Rpb24oKTogdm9pZCB7XG4gICAgY29uc3QgbmV4dEFjdGlvbiA9IHRoaXMuYWN0aW9uUXVldWUuc2hpZnQoKTtcbiAgICBpZiAoIW5leHRBY3Rpb24pIHtcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdbcHJvY2Vzc05leHRBY3Rpb25dIE5vIGFjdGlvbiB0byBwcm9jZXNzJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5sb2dnZXIuaW5mb3JtYXRpb24oYFtwcm9jZXNzTmV4dEFjdGlvbl0gU3RhcnQgcHJvY2Vzc2luZyBhY3Rpb24gJyR7bmV4dEFjdGlvbi50eXBlfS4uLmAsIG5leHRBY3Rpb24pO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlZHVjZXJzID0gdGhpcy5yZWR1Y2Vyc1BlckFjdGlvblR5cGUuZ2V0KG5leHRBY3Rpb24udHlwZSkgPz8gW107XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgW1N0b3JlXSAke3JlZHVjZXJzLmxlbmd0aH0gcmVkdWNlcnMgZm91bmQgdG8gcHJvY2VzcyB0aGUgYWN0aW9uICR7bmV4dEFjdGlvbi50eXBlfWAsIHJlZHVjZXJzKTtcbiAgICAgIGNvbnN0IGN1cnJlbnRTdGF0ZSA9IHRoaXMuX3N0YXRlJC5nZXRWYWx1ZSgpO1xuICAgICAgY29uc3QgdXBkYXRlZFN0YXRlID0gcmVkdWNlcnMucmVkdWNlKChwLCBjKSA9PiBjLnVwZGF0ZVN0YXRlKHAsIG5leHRBY3Rpb24pLCBjdXJyZW50U3RhdGUpO1xuXG4gICAgICBpZiAodXBkYXRlZFN0YXRlICE9PSBjdXJyZW50U3RhdGUpIHtcbiAgICAgICAgdGhpcy5fc3RhdGUkLm5leHQodXBkYXRlZFN0YXRlKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZWZmZWN0cyA9IHRoaXMuZWZmZWN0c1BlckFjdGlvblR5cGUuZ2V0KG5leHRBY3Rpb24udHlwZSkgPz8gW107XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgW1N0b3JlXSAke2VmZmVjdHMubGVuZ3RofSBlZmZlY3RzIGZvdW5kIHRvIHByb2Nlc3MgdGhlIGFjdGlvbiAke25leHRBY3Rpb24udHlwZX1gLCBlZmZlY3RzKTtcbiAgICAgIGVmZmVjdHMuZm9yRWFjaCgoZWZmZWN0KSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgZWZmZWN0LnByb2Nlc3NBY3Rpb24odGhpcywgdXBkYXRlZFN0YXRlLCBuZXh0QWN0aW9uKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcihgVW5hYmxlIHRvIHByb2Nlc3MgYWN0aW9uICR7bmV4dEFjdGlvbi50eXBlfSBieSBlZmZlY3QgJHtlZmZlY3R9YCwge1xuICAgICAgICAgICAgZXJyb3IsXG4gICAgICAgICAgICBhY3Rpb246IG5leHRBY3Rpb24sXG4gICAgICAgICAgICBwcm9jZXNzb3I6IGVmZmVjdFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoYEVycm9yIHdoZW4gcHJvY2Vzc2luZyBhY3Rpb24gJHtuZXh0QWN0aW9uLnR5cGV9YCwge1xuICAgICAgICBlcnJvcixcbiAgICAgICAgYWN0aW9uOiBuZXh0QWN0aW9uXG4gICAgICB9KTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5sb2dnZXIuaW5mb3JtYXRpb24oYFtwcm9jZXNzTmV4dEFjdGlvbl0gYWN0aW9uICcke25leHRBY3Rpb24udHlwZX0gcHJvY2Vzc2VkLmAsIG5leHRBY3Rpb24pO1xuXG4gICAgICAvLyBTaG91bGQgbm90IGJlIHVzZWZ1bC5CdXQsIGp1c3QgaW4gY2FzZS5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5wcm9jZXNzTmV4dEFjdGlvbigpKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -10,5 +10,4 @@ export * from './lib/feature-state-specification';
|
|
|
10
10
|
export * from './lib/ngssm-component';
|
|
11
11
|
export * from './lib/state-initializer';
|
|
12
12
|
export * from './lib/logging';
|
|
13
|
-
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXN0b3JlL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygbmdzc20tc3RvcmVcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zdG9yZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zdGF0ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVkdWNlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9lZmZlY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmVhdHVyZS1zdGF0ZS1zcGVjaWZpY2F0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL25nc3NtLWNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zdGF0ZS1pbml0aWFsaXplcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9sb2dnaW5nJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3N0b3JlLW1vY2snO1xuIl19
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXN0b3JlL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG5nc3NtLXN0b3JlXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RvcmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RhdGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3JlZHVjZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZWZmZWN0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZlYXR1cmUtc3RhdGUtc3BlY2lmaWNhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZ3NzbS1jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3RhdGUtaW5pdGlhbGl6ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbG9nZ2luZyc7XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public_api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tc3RvcmUtdGVzdGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXN0b3JlL3Rlc3Rpbmcvbmdzc20tc3RvcmUtdGVzdGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './src/store-mock';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXN0b3JlL3Rlc3RpbmcvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zcmMvc3RvcmUtbW9jayc7XG4iXX0=
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { signal } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
|
3
|
+
export class StoreMock {
|
|
4
|
+
constructor(initialState) {
|
|
5
|
+
this._stateValue = {};
|
|
6
|
+
this.state$ = new BehaviorSubject(this._stateValue);
|
|
7
|
+
this.state = signal(this._stateValue);
|
|
8
|
+
this.stateValue = initialState;
|
|
9
|
+
}
|
|
10
|
+
set stateValue(value) {
|
|
11
|
+
this._stateValue = value;
|
|
12
|
+
this.state$.next(value);
|
|
13
|
+
this.state.set(value);
|
|
14
|
+
}
|
|
15
|
+
get stateValue() {
|
|
16
|
+
return this._stateValue;
|
|
17
|
+
}
|
|
18
|
+
dispatchAction(action) { }
|
|
19
|
+
dispatchActionType(type) { }
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUtbW9jay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXN0b3JlL3Rlc3Rpbmcvc3JjL3N0b3JlLW1vY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSXZDLE1BQU0sT0FBTyxTQUFTO0lBS3BCLFlBQVksWUFBbUI7UUFKdkIsZ0JBQVcsR0FBVSxFQUFFLENBQUM7UUFDekIsV0FBTSxHQUFHLElBQUksZUFBZSxDQUFRLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN0RCxVQUFLLEdBQUcsTUFBTSxDQUFRLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUc3QyxJQUFJLENBQUMsVUFBVSxHQUFHLFlBQVksQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBVyxVQUFVLENBQUMsS0FBWTtRQUNoQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRU0sY0FBYyxDQUFDLE1BQWMsSUFBUyxDQUFDO0lBRXZDLGtCQUFrQixDQUFDLElBQVksSUFBUyxDQUFDO0NBQ2pEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQWN0aW9uLCBTdGF0ZSB9IGZyb20gJ25nc3NtLXN0b3JlJztcblxuZXhwb3J0IGNsYXNzIFN0b3JlTW9jayB7XG4gIHByaXZhdGUgX3N0YXRlVmFsdWU6IFN0YXRlID0ge307XG4gIHB1YmxpYyBzdGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFN0YXRlPih0aGlzLl9zdGF0ZVZhbHVlKTtcbiAgcHVibGljIHN0YXRlID0gc2lnbmFsPFN0YXRlPih0aGlzLl9zdGF0ZVZhbHVlKTtcblxuICBjb25zdHJ1Y3Rvcihpbml0aWFsU3RhdGU6IFN0YXRlKSB7XG4gICAgdGhpcy5zdGF0ZVZhbHVlID0gaW5pdGlhbFN0YXRlO1xuICB9XG5cbiAgcHVibGljIHNldCBzdGF0ZVZhbHVlKHZhbHVlOiBTdGF0ZSkge1xuICAgIHRoaXMuX3N0YXRlVmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLnN0YXRlJC5uZXh0KHZhbHVlKTtcbiAgICB0aGlzLnN0YXRlLnNldCh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0YXRlVmFsdWUoKTogU3RhdGUge1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZVZhbHVlO1xuICB9XG5cbiAgcHVibGljIGRpc3BhdGNoQWN0aW9uKGFjdGlvbjogQWN0aW9uKTogdm9pZCB7fVxuXG4gIHB1YmxpYyBkaXNwYXRjaEFjdGlvblR5cGUodHlwZTogc3RyaW5nKTogdm9pZCB7fVxufVxuIl19
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { signal } from '@angular/core';
|
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
|
3
|
+
|
|
4
|
+
class StoreMock {
|
|
5
|
+
constructor(initialState) {
|
|
6
|
+
this._stateValue = {};
|
|
7
|
+
this.state$ = new BehaviorSubject(this._stateValue);
|
|
8
|
+
this.state = signal(this._stateValue);
|
|
9
|
+
this.stateValue = initialState;
|
|
10
|
+
}
|
|
11
|
+
set stateValue(value) {
|
|
12
|
+
this._stateValue = value;
|
|
13
|
+
this.state$.next(value);
|
|
14
|
+
this.state.set(value);
|
|
15
|
+
}
|
|
16
|
+
get stateValue() {
|
|
17
|
+
return this._stateValue;
|
|
18
|
+
}
|
|
19
|
+
dispatchAction(action) { }
|
|
20
|
+
dispatchActionType(type) { }
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Generated bundle index. Do not edit.
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
export { StoreMock };
|
|
28
|
+
//# sourceMappingURL=ngssm-store-testing.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ngssm-store-testing.mjs","sources":["../../../projects/ngssm-store/testing/src/store-mock.ts","../../../projects/ngssm-store/testing/ngssm-store-testing.ts"],"sourcesContent":["import { signal } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { Action, State } from 'ngssm-store';\n\nexport class StoreMock {\n private _stateValue: State = {};\n public state$ = new BehaviorSubject<State>(this._stateValue);\n public state = signal<State>(this._stateValue);\n\n constructor(initialState: State) {\n this.stateValue = initialState;\n }\n\n public set stateValue(value: State) {\n this._stateValue = value;\n this.state$.next(value);\n this.state.set(value);\n }\n\n public get stateValue(): State {\n return this._stateValue;\n }\n\n public dispatchAction(action: Action): void {}\n\n public dispatchActionType(type: string): void {}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;MAKa,SAAS,CAAA;AAKpB,IAAA,WAAA,CAAY,YAAmB,EAAA;QAJvB,IAAW,CAAA,WAAA,GAAU,EAAE,CAAC;QACzB,IAAM,CAAA,MAAA,GAAG,IAAI,eAAe,CAAQ,IAAI,CAAC,WAAW,CAAC,CAAC;AACtD,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAQ,IAAI,CAAC,WAAW,CAAC,CAAC;AAG7C,QAAA,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC;KAChC;IAED,IAAW,UAAU,CAAC,KAAY,EAAA;AAChC,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;KACvB;AAED,IAAA,IAAW,UAAU,GAAA;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC;KACzB;IAEM,cAAc,CAAC,MAAc,EAAA,GAAU;IAEvC,kBAAkB,CAAC,IAAY,EAAA,GAAU;AACjD;;AC3BD;;AAEG;;;;"}
|
package/fesm2022/ngssm-store.mjs
CHANGED
|
@@ -1,11 +1,23 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, Injectable, signal, Inject, Optional, Directive } from '@angular/core';
|
|
2
|
+
import { InjectionToken, makeEnvironmentProviders, Injectable, signal, Inject, Optional, Directive } from '@angular/core';
|
|
3
3
|
import { Subject, takeUntil, BehaviorSubject, map, distinctUntilChanged } from 'rxjs';
|
|
4
4
|
import update from 'immutability-helper';
|
|
5
5
|
|
|
6
6
|
const NGSSM_REDUCER = new InjectionToken('NGSSM_REDUCER');
|
|
7
|
+
const provideReducer = (reducer) => {
|
|
8
|
+
return makeEnvironmentProviders([{ provide: NGSSM_REDUCER, useClass: reducer, multi: true }]);
|
|
9
|
+
};
|
|
10
|
+
const provideReducers = (...reducers) => {
|
|
11
|
+
return makeEnvironmentProviders(reducers.map((reducer) => ({ provide: NGSSM_REDUCER, useClass: reducer, multi: true })));
|
|
12
|
+
};
|
|
7
13
|
|
|
8
14
|
const NGSSM_EFFECT = new InjectionToken('NGSSM_EFFECT');
|
|
15
|
+
const provideEffect = (effect) => {
|
|
16
|
+
return makeEnvironmentProviders([{ provide: NGSSM_EFFECT, useClass: effect, multi: true }]);
|
|
17
|
+
};
|
|
18
|
+
const provideEffects = (...effects) => {
|
|
19
|
+
return makeEnvironmentProviders(effects.map((effect) => ({ provide: NGSSM_EFFECT, useClass: effect, multi: true })));
|
|
20
|
+
};
|
|
9
21
|
|
|
10
22
|
const NGSSM_STATE_INITIALIZER = new InjectionToken('NGSSM_STATE_INITIALIZER');
|
|
11
23
|
|
|
@@ -39,10 +51,10 @@ class Logger {
|
|
|
39
51
|
payload
|
|
40
52
|
});
|
|
41
53
|
}
|
|
42
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
43
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.
|
|
54
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: Logger, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
55
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: Logger, providedIn: 'root' }); }
|
|
44
56
|
}
|
|
45
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.
|
|
57
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: Logger, decorators: [{
|
|
46
58
|
type: Injectable,
|
|
47
59
|
args: [{
|
|
48
60
|
providedIn: 'root'
|
|
@@ -78,10 +90,10 @@ class ConsoleAppender {
|
|
|
78
90
|
stop() {
|
|
79
91
|
this.stopEvent$.next(true);
|
|
80
92
|
}
|
|
81
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
82
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.
|
|
93
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: ConsoleAppender, deps: [{ token: Logger }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
94
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: ConsoleAppender, providedIn: 'root' }); }
|
|
83
95
|
}
|
|
84
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.
|
|
96
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: ConsoleAppender, decorators: [{
|
|
85
97
|
type: Injectable,
|
|
86
98
|
args: [{
|
|
87
99
|
providedIn: 'root'
|
|
@@ -190,10 +202,10 @@ class Store {
|
|
|
190
202
|
setTimeout(() => this.processNextAction());
|
|
191
203
|
}
|
|
192
204
|
}
|
|
193
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
194
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.
|
|
205
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: Store, deps: [{ token: Logger }, { token: NGSSM_REDUCER, optional: true }, { token: NGSSM_EFFECT, optional: true }, { token: NGSSM_STATE_INITIALIZER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
206
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: Store, providedIn: 'root' }); }
|
|
195
207
|
}
|
|
196
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.
|
|
208
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: Store, decorators: [{
|
|
197
209
|
type: Injectable,
|
|
198
210
|
args: [{
|
|
199
211
|
providedIn: 'root'
|
|
@@ -236,24 +248,14 @@ class NgSsmComponent {
|
|
|
236
248
|
dispatchActionType(actionType) {
|
|
237
249
|
this.store.dispatchActionType(actionType);
|
|
238
250
|
}
|
|
239
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.
|
|
240
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.
|
|
251
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: NgSsmComponent, deps: [{ token: Store }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
252
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.1", type: NgSsmComponent, ngImport: i0 }); }
|
|
241
253
|
}
|
|
242
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.
|
|
254
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: NgSsmComponent, decorators: [{
|
|
243
255
|
type: Directive,
|
|
244
256
|
args: [{}]
|
|
245
257
|
}], ctorParameters: function () { return [{ type: Store }]; } });
|
|
246
258
|
|
|
247
|
-
class StoreMock {
|
|
248
|
-
constructor(initialState) {
|
|
249
|
-
this.state$ = new BehaviorSubject({});
|
|
250
|
-
this.state = signal({});
|
|
251
|
-
this.state$.next(initialState);
|
|
252
|
-
}
|
|
253
|
-
dispatchAction(action) { }
|
|
254
|
-
dispatchActionType(type) { }
|
|
255
|
-
}
|
|
256
|
-
|
|
257
259
|
/*
|
|
258
260
|
* Public API Surface of ngssm-store
|
|
259
261
|
*/
|
|
@@ -262,5 +264,5 @@ class StoreMock {
|
|
|
262
264
|
* Generated bundle index. Do not edit.
|
|
263
265
|
*/
|
|
264
266
|
|
|
265
|
-
export { ConsoleAppender, LogLevel, Logger, NGSSM_EFFECT, NGSSM_REDUCER, NGSSM_STATE_INITIALIZER, NgSsmComponent, NgSsmFeatureState, Store,
|
|
267
|
+
export { ConsoleAppender, LogLevel, Logger, NGSSM_EFFECT, NGSSM_REDUCER, NGSSM_STATE_INITIALIZER, NgSsmComponent, NgSsmFeatureState, Store, provideEffect, provideEffects, provideReducer, provideReducers };
|
|
266
268
|
//# sourceMappingURL=ngssm-store.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngssm-store.mjs","sources":["../../../projects/ngssm-store/src/lib/reducer.ts","../../../projects/ngssm-store/src/lib/effect.ts","../../../projects/ngssm-store/src/lib/state-initializer.ts","../../../projects/ngssm-store/src/lib/logging/log-level.ts","../../../projects/ngssm-store/src/lib/logging/logger.ts","../../../projects/ngssm-store/src/lib/logging/console-appender.ts","../../../projects/ngssm-store/src/lib/store.ts","../../../projects/ngssm-store/src/lib/ngssm-component.ts","../../../projects/ngssm-store/src/lib/store-mock.ts","../../../projects/ngssm-store/src/public-api.ts","../../../projects/ngssm-store/src/ngssm-store.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nimport { Action } from './action';\nimport { State } from './state';\n\nexport interface Reducer {\n processedActions: string[];\n updateState(state: State, action: Action): State;\n}\n\nexport const NGSSM_REDUCER = new InjectionToken<Reducer>('NGSSM_REDUCER');\n","import { InjectionToken } from '@angular/core';\n\nimport { Action } from './action';\nimport { State } from './state';\nimport { Store } from './store';\n\nexport interface Effect {\n processedActions: string[];\n processAction(store: Store, state: State, action: Action): void;\n}\n\nexport const NGSSM_EFFECT = new InjectionToken<Effect>('NGSSM_EFFECT');\n","import { InjectionToken } from '@angular/core';\nimport { State } from './state';\n\nexport interface StateInitializer {\n initializeState(state: State): State;\n}\n\nexport const NGSSM_STATE_INITIALIZER = new InjectionToken<StateInitializer>('NGSSM_STATE_INITIALIZER');\n","export enum LogLevel {\n debug = 'Debug',\n information = 'Information',\n error = 'Error'\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\nimport { LogEvent } from './log-event';\nimport { LogLevel } from './log-level';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Logger {\n private readonly _logEvents$ = new Subject<LogEvent>();\n\n public get logEvents$(): Observable<LogEvent> {\n return this._logEvents$.asObservable();\n }\n\n public debug(message: string, payload?: any): void {\n this.log(LogLevel.debug, message, payload);\n }\n\n public information(message: string, payload?: any): void {\n this.log(LogLevel.information, message, payload);\n }\n\n public error(message: string, payload?: any): void {\n this.log(LogLevel.error, message, payload);\n }\n\n public log(level: LogLevel, message: string, payload?: any): void {\n this._logEvents$.next({\n level,\n message,\n payload\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\nimport { Logger } from './logger';\nimport { LogLevel } from './log-level';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConsoleAppender {\n private readonly stopEvent$ = new Subject<boolean>();\n\n constructor(private logger: Logger) {}\n\n public start(contextName?: string): void {\n this.logger.logEvents$.pipe(takeUntil(this.stopEvent$)).subscribe((logEvent) => {\n let logFunction: any;\n switch (logEvent.level) {\n case LogLevel.error:\n logFunction = console.error;\n break;\n\n default:\n logFunction = console.log;\n break;\n }\n\n const now = new Date().toLocaleString();\n const prefix = contextName ? `[${contextName}] ` : '';\n\n if (logEvent.payload) {\n logFunction(`${prefix}[${now}] [${logEvent.level}] ${logEvent.message}`, logEvent.payload);\n } else {\n logFunction(`${prefix}[${now}] [${logEvent.level}] ${logEvent.message}`);\n }\n });\n }\n\n public stop(): void {\n this.stopEvent$.next(true);\n }\n}\n","import { Inject, Injectable, Optional, Signal, signal } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport update from 'immutability-helper';\n\nimport { FeatureStateSpecification } from './feature-state-specification';\nimport { State } from './state';\nimport { Action } from './action';\nimport { NGSSM_REDUCER, Reducer } from './reducer';\nimport { Effect, NGSSM_EFFECT } from './effect';\nimport { NGSSM_STATE_INITIALIZER, StateInitializer } from './state-initializer';\nimport { Logger } from './logging';\n\nconst featureStateSpecifications: FeatureStateSpecification[] = [];\nexport const NgSsmFeatureState = (specification: FeatureStateSpecification) => {\n return (target: object) => {\n featureStateSpecifications.push(specification);\n };\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Store {\n private readonly _state$ = new BehaviorSubject<State>({});\n private readonly actionQueue: Action[] = [];\n private readonly reducersPerActionType = new Map<string, Reducer[]>();\n private readonly effectsPerActionType = new Map<string, Effect[]>();\n private readonly _stateSignal = signal<State>({});\n\n constructor(\n private logger: Logger,\n @Inject(NGSSM_REDUCER) @Optional() reducers: Reducer[],\n @Inject(NGSSM_EFFECT) @Optional() effects: Effect[],\n @Inject(NGSSM_STATE_INITIALIZER) @Optional() initializers: StateInitializer[]\n ) {\n this._state$.subscribe((value) => this._stateSignal.set(value));\n this.logger.information('[Store] ---> state initialization...');\n let state = this._state$.getValue();\n state = featureStateSpecifications.reduce((p, c) => update(p, { [c.featureStateKey]: { $set: c.initialState } }), state);\n\n (initializers ?? []).forEach((initializer) => {\n this.logger.information('[Store] ------> calling initializer', initializer);\n state = initializer.initializeState(state);\n });\n\n this._state$.next(state);\n\n this.logger.information(`[Store] ---> initialization of ${(reducers ?? []).length} reducers...`);\n (reducers ?? []).forEach((reducer) => {\n this.logger.information('[Store] ------> initialization of ', reducer);\n reducer.processedActions.forEach((processedAction) => {\n const storeReducers: Reducer[] = this.reducersPerActionType.get(processedAction) ?? [];\n if (storeReducers.length === 0) {\n this.reducersPerActionType.set(processedAction, storeReducers);\n }\n\n storeReducers.push(reducer);\n });\n });\n\n this.logger.information(`[Store] ---> initialization of ${(effects ?? []).length} effects...`);\n (effects ?? []).forEach((effect) => {\n this.logger.information('[Store] ------> initialization of ', effect);\n effect.processedActions.forEach((processedAction) => {\n const storedEffects: Effect[] = this.effectsPerActionType.get(processedAction) ?? [];\n if (storedEffects.length === 0) {\n this.effectsPerActionType.set(processedAction, storedEffects);\n }\n\n storedEffects.push(effect);\n });\n });\n }\n\n public get state$(): Observable<State> {\n return this._state$.asObservable();\n }\n\n public get state(): Signal<State> {\n return this._stateSignal.asReadonly();\n }\n\n public dispatchAction(action: Action): void {\n this.actionQueue.push(action);\n this.logger.debug(`Action of type '${action.type}' added to the queue => ${this.actionQueue.length} pending actions`, action);\n setTimeout(() => this.processNextAction());\n }\n\n public dispatchActionType(type: string): void {\n this.dispatchAction({ type });\n }\n\n private processNextAction(): void {\n const nextAction = this.actionQueue.shift();\n if (!nextAction) {\n this.logger.debug('[processNextAction] No action to process');\n return;\n }\n\n this.logger.information(`[processNextAction] Start processing action '${nextAction.type}...`, nextAction);\n\n try {\n const reducers = this.reducersPerActionType.get(nextAction.type) ?? [];\n this.logger.debug(`[Store] ${reducers.length} reducers found to process the action ${nextAction.type}`, reducers);\n const currentState = this._state$.getValue();\n const updatedState = reducers.reduce((p, c) => c.updateState(p, nextAction), currentState);\n\n if (updatedState !== currentState) {\n this._state$.next(updatedState);\n }\n\n const effects = this.effectsPerActionType.get(nextAction.type) ?? [];\n this.logger.debug(`[Store] ${effects.length} effects found to process the action ${nextAction.type}`, effects);\n effects.forEach((effect) => {\n try {\n effect.processAction(this, updatedState, nextAction);\n } catch (error) {\n this.logger.error(`Unable to process action ${nextAction.type} by effect ${effect}`, {\n error,\n action: nextAction,\n processor: effect\n });\n }\n });\n } catch (error) {\n this.logger.error(`Error when processing action ${nextAction.type}`, {\n error,\n action: nextAction\n });\n } finally {\n this.logger.information(`[processNextAction] action '${nextAction.type} processed.`, nextAction);\n\n // Should not be useful.But, just in case.\n setTimeout(() => this.processNextAction());\n }\n }\n}\n","import { Directive, OnDestroy } from '@angular/core';\nimport { map, Observable, Subject, distinctUntilChanged, takeUntil } from 'rxjs';\n\nimport { Action } from './action';\nimport { State } from './state';\nimport { Store } from './store';\n\n@Directive({})\nexport class NgSsmComponent implements OnDestroy {\n private readonly _unsubscribeAll$ = new Subject<void>();\n\n constructor(protected store: Store) {}\n\n protected get unsubscribeAll$(): Observable<void> {\n return this._unsubscribeAll$.asObservable();\n }\n\n public ngOnDestroy(): void {\n this._unsubscribeAll$.next();\n this._unsubscribeAll$.complete();\n }\n\n public watch<T>(selector: (state: State) => T): Observable<T> {\n return this.store.state$.pipe(\n map((state) => selector(state)),\n distinctUntilChanged(),\n takeUntil(this.unsubscribeAll$)\n );\n }\n\n public dispatchAction(action: Action): void {\n this.store.dispatchAction(action);\n }\n\n public dispatchActionType(actionType: string): void {\n this.store.dispatchActionType(actionType);\n }\n}\n","import { signal } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { Action } from './action';\nimport { State } from './state';\n\nexport class StoreMock {\n public state$ = new BehaviorSubject<{ [key: string]: any }>({});\n public state = signal<State>({});\n\n constructor(initialState: { [key: string]: any }) {\n this.state$.next(initialState);\n }\n\n public dispatchAction(action: Action): void {}\n\n public dispatchActionType(type: string): void {}\n}\n","/*\n * Public API Surface of ngssm-store\n */\n\nexport * from './lib/store';\nexport * from './lib/state';\nexport * from './lib/action';\nexport * from './lib/reducer';\nexport * from './lib/effect';\nexport * from './lib/feature-state-specification';\nexport * from './lib/ngssm-component';\nexport * from './lib/state-initializer';\nexport * from './lib/logging';\nexport * from './lib/store-mock';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.Logger","i1.Store"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngssm-store.mjs","sources":["../../../projects/ngssm-store/src/lib/reducer.ts","../../../projects/ngssm-store/src/lib/effect.ts","../../../projects/ngssm-store/src/lib/state-initializer.ts","../../../projects/ngssm-store/src/lib/logging/log-level.ts","../../../projects/ngssm-store/src/lib/logging/logger.ts","../../../projects/ngssm-store/src/lib/logging/console-appender.ts","../../../projects/ngssm-store/src/lib/store.ts","../../../projects/ngssm-store/src/lib/ngssm-component.ts","../../../projects/ngssm-store/src/public-api.ts","../../../projects/ngssm-store/src/ngssm-store.ts"],"sourcesContent":["import { EnvironmentProviders, InjectionToken, Type, makeEnvironmentProviders } from '@angular/core';\n\nimport { Action } from './action';\nimport { State } from './state';\n\nexport interface Reducer {\n processedActions: string[];\n updateState(state: State, action: Action): State;\n}\n\nexport const NGSSM_REDUCER = new InjectionToken<Reducer>('NGSSM_REDUCER');\n\nexport const provideReducer = (reducer: Type<any>): EnvironmentProviders => {\n return makeEnvironmentProviders([{ provide: NGSSM_REDUCER, useClass: reducer, multi: true }]);\n};\n\nexport const provideReducers = (...reducers: Type<any>[]): EnvironmentProviders => {\n return makeEnvironmentProviders(reducers.map((reducer) => ({ provide: NGSSM_REDUCER, useClass: reducer, multi: true })));\n};\n","import { EnvironmentProviders, InjectionToken, Type, makeEnvironmentProviders } from '@angular/core';\n\nimport { Action } from './action';\nimport { State } from './state';\nimport { Store } from './store';\n\nexport interface Effect {\n processedActions: string[];\n processAction(store: Store, state: State, action: Action): void;\n}\n\nexport const NGSSM_EFFECT = new InjectionToken<Effect>('NGSSM_EFFECT');\n\nexport const provideEffect = (effect: Type<any>): EnvironmentProviders => {\n return makeEnvironmentProviders([{ provide: NGSSM_EFFECT, useClass: effect, multi: true }]);\n};\n\nexport const provideEffects = (...effects: Type<any>[]): EnvironmentProviders => {\n return makeEnvironmentProviders(effects.map((effect) => ({ provide: NGSSM_EFFECT, useClass: effect, multi: true })));\n};\n","import { InjectionToken } from '@angular/core';\nimport { State } from './state';\n\nexport interface StateInitializer {\n initializeState(state: State): State;\n}\n\nexport const NGSSM_STATE_INITIALIZER = new InjectionToken<StateInitializer>('NGSSM_STATE_INITIALIZER');\n","export enum LogLevel {\n debug = 'Debug',\n information = 'Information',\n error = 'Error'\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\nimport { LogEvent } from './log-event';\nimport { LogLevel } from './log-level';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Logger {\n private readonly _logEvents$ = new Subject<LogEvent>();\n\n public get logEvents$(): Observable<LogEvent> {\n return this._logEvents$.asObservable();\n }\n\n public debug(message: string, payload?: any): void {\n this.log(LogLevel.debug, message, payload);\n }\n\n public information(message: string, payload?: any): void {\n this.log(LogLevel.information, message, payload);\n }\n\n public error(message: string, payload?: any): void {\n this.log(LogLevel.error, message, payload);\n }\n\n public log(level: LogLevel, message: string, payload?: any): void {\n this._logEvents$.next({\n level,\n message,\n payload\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\nimport { Logger } from './logger';\nimport { LogLevel } from './log-level';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConsoleAppender {\n private readonly stopEvent$ = new Subject<boolean>();\n\n constructor(private logger: Logger) {}\n\n public start(contextName?: string): void {\n this.logger.logEvents$.pipe(takeUntil(this.stopEvent$)).subscribe((logEvent) => {\n let logFunction: any;\n switch (logEvent.level) {\n case LogLevel.error:\n logFunction = console.error;\n break;\n\n default:\n logFunction = console.log;\n break;\n }\n\n const now = new Date().toLocaleString();\n const prefix = contextName ? `[${contextName}] ` : '';\n\n if (logEvent.payload) {\n logFunction(`${prefix}[${now}] [${logEvent.level}] ${logEvent.message}`, logEvent.payload);\n } else {\n logFunction(`${prefix}[${now}] [${logEvent.level}] ${logEvent.message}`);\n }\n });\n }\n\n public stop(): void {\n this.stopEvent$.next(true);\n }\n}\n","import { Inject, Injectable, Optional, Signal, signal } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport update from 'immutability-helper';\n\nimport { FeatureStateSpecification } from './feature-state-specification';\nimport { State } from './state';\nimport { Action } from './action';\nimport { NGSSM_REDUCER, Reducer } from './reducer';\nimport { Effect, NGSSM_EFFECT } from './effect';\nimport { NGSSM_STATE_INITIALIZER, StateInitializer } from './state-initializer';\nimport { Logger } from './logging';\n\nconst featureStateSpecifications: FeatureStateSpecification[] = [];\nexport const NgSsmFeatureState = (specification: FeatureStateSpecification) => {\n return (target: object) => {\n featureStateSpecifications.push(specification);\n };\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Store {\n private readonly _state$ = new BehaviorSubject<State>({});\n private readonly actionQueue: Action[] = [];\n private readonly reducersPerActionType = new Map<string, Reducer[]>();\n private readonly effectsPerActionType = new Map<string, Effect[]>();\n private readonly _stateSignal = signal<State>({});\n\n constructor(\n private logger: Logger,\n @Inject(NGSSM_REDUCER) @Optional() reducers: Reducer[],\n @Inject(NGSSM_EFFECT) @Optional() effects: Effect[],\n @Inject(NGSSM_STATE_INITIALIZER) @Optional() initializers: StateInitializer[]\n ) {\n this._state$.subscribe((value) => this._stateSignal.set(value));\n this.logger.information('[Store] ---> state initialization...');\n let state = this._state$.getValue();\n state = featureStateSpecifications.reduce((p, c) => update(p, { [c.featureStateKey]: { $set: c.initialState } }), state);\n\n (initializers ?? []).forEach((initializer) => {\n this.logger.information('[Store] ------> calling initializer', initializer);\n state = initializer.initializeState(state);\n });\n\n this._state$.next(state);\n\n this.logger.information(`[Store] ---> initialization of ${(reducers ?? []).length} reducers...`);\n (reducers ?? []).forEach((reducer) => {\n this.logger.information('[Store] ------> initialization of ', reducer);\n reducer.processedActions.forEach((processedAction) => {\n const storeReducers: Reducer[] = this.reducersPerActionType.get(processedAction) ?? [];\n if (storeReducers.length === 0) {\n this.reducersPerActionType.set(processedAction, storeReducers);\n }\n\n storeReducers.push(reducer);\n });\n });\n\n this.logger.information(`[Store] ---> initialization of ${(effects ?? []).length} effects...`);\n (effects ?? []).forEach((effect) => {\n this.logger.information('[Store] ------> initialization of ', effect);\n effect.processedActions.forEach((processedAction) => {\n const storedEffects: Effect[] = this.effectsPerActionType.get(processedAction) ?? [];\n if (storedEffects.length === 0) {\n this.effectsPerActionType.set(processedAction, storedEffects);\n }\n\n storedEffects.push(effect);\n });\n });\n }\n\n public get state$(): Observable<State> {\n return this._state$.asObservable();\n }\n\n public get state(): Signal<State> {\n return this._stateSignal.asReadonly();\n }\n\n public dispatchAction(action: Action): void {\n this.actionQueue.push(action);\n this.logger.debug(`Action of type '${action.type}' added to the queue => ${this.actionQueue.length} pending actions`, action);\n setTimeout(() => this.processNextAction());\n }\n\n public dispatchActionType(type: string): void {\n this.dispatchAction({ type });\n }\n\n private processNextAction(): void {\n const nextAction = this.actionQueue.shift();\n if (!nextAction) {\n this.logger.debug('[processNextAction] No action to process');\n return;\n }\n\n this.logger.information(`[processNextAction] Start processing action '${nextAction.type}...`, nextAction);\n\n try {\n const reducers = this.reducersPerActionType.get(nextAction.type) ?? [];\n this.logger.debug(`[Store] ${reducers.length} reducers found to process the action ${nextAction.type}`, reducers);\n const currentState = this._state$.getValue();\n const updatedState = reducers.reduce((p, c) => c.updateState(p, nextAction), currentState);\n\n if (updatedState !== currentState) {\n this._state$.next(updatedState);\n }\n\n const effects = this.effectsPerActionType.get(nextAction.type) ?? [];\n this.logger.debug(`[Store] ${effects.length} effects found to process the action ${nextAction.type}`, effects);\n effects.forEach((effect) => {\n try {\n effect.processAction(this, updatedState, nextAction);\n } catch (error) {\n this.logger.error(`Unable to process action ${nextAction.type} by effect ${effect}`, {\n error,\n action: nextAction,\n processor: effect\n });\n }\n });\n } catch (error) {\n this.logger.error(`Error when processing action ${nextAction.type}`, {\n error,\n action: nextAction\n });\n } finally {\n this.logger.information(`[processNextAction] action '${nextAction.type} processed.`, nextAction);\n\n // Should not be useful.But, just in case.\n setTimeout(() => this.processNextAction());\n }\n }\n}\n","import { Directive, OnDestroy } from '@angular/core';\nimport { map, Observable, Subject, distinctUntilChanged, takeUntil } from 'rxjs';\n\nimport { Action } from './action';\nimport { State } from './state';\nimport { Store } from './store';\n\n@Directive({})\nexport class NgSsmComponent implements OnDestroy {\n private readonly _unsubscribeAll$ = new Subject<void>();\n\n constructor(protected store: Store) {}\n\n protected get unsubscribeAll$(): Observable<void> {\n return this._unsubscribeAll$.asObservable();\n }\n\n public ngOnDestroy(): void {\n this._unsubscribeAll$.next();\n this._unsubscribeAll$.complete();\n }\n\n public watch<T>(selector: (state: State) => T): Observable<T> {\n return this.store.state$.pipe(\n map((state) => selector(state)),\n distinctUntilChanged(),\n takeUntil(this.unsubscribeAll$)\n );\n }\n\n public dispatchAction(action: Action): void {\n this.store.dispatchAction(action);\n }\n\n public dispatchActionType(actionType: string): void {\n this.store.dispatchActionType(actionType);\n }\n}\n","/*\n * Public API Surface of ngssm-store\n */\n\nexport * from './lib/store';\nexport * from './lib/state';\nexport * from './lib/action';\nexport * from './lib/reducer';\nexport * from './lib/effect';\nexport * from './lib/feature-state-specification';\nexport * from './lib/ngssm-component';\nexport * from './lib/state-initializer';\nexport * from './lib/logging';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.Logger","i1.Store"],"mappings":"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"}
|
package/lib/effect.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
1
|
+
import { EnvironmentProviders, InjectionToken, Type } from '@angular/core';
|
|
2
2
|
import { Action } from './action';
|
|
3
3
|
import { State } from './state';
|
|
4
4
|
import { Store } from './store';
|
|
@@ -7,3 +7,5 @@ export interface Effect {
|
|
|
7
7
|
processAction(store: Store, state: State, action: Action): void;
|
|
8
8
|
}
|
|
9
9
|
export declare const NGSSM_EFFECT: InjectionToken<Effect>;
|
|
10
|
+
export declare const provideEffect: (effect: Type<any>) => EnvironmentProviders;
|
|
11
|
+
export declare const provideEffects: (...effects: Type<any>[]) => EnvironmentProviders;
|
package/lib/reducer.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
1
|
+
import { EnvironmentProviders, InjectionToken, Type } from '@angular/core';
|
|
2
2
|
import { Action } from './action';
|
|
3
3
|
import { State } from './state';
|
|
4
4
|
export interface Reducer {
|
|
@@ -6,3 +6,5 @@ export interface Reducer {
|
|
|
6
6
|
updateState(state: State, action: Action): State;
|
|
7
7
|
}
|
|
8
8
|
export declare const NGSSM_REDUCER: InjectionToken<Reducer>;
|
|
9
|
+
export declare const provideReducer: (reducer: Type<any>) => EnvironmentProviders;
|
|
10
|
+
export declare const provideReducers: (...reducers: Type<any>[]) => EnvironmentProviders;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ngssm-store",
|
|
3
|
-
"version": "16.
|
|
3
|
+
"version": "16.1.1",
|
|
4
4
|
"description": "NgSsm - Simple state management implementation.",
|
|
5
5
|
"author": "Lion Marc",
|
|
6
6
|
"license": "MIT",
|
|
@@ -28,6 +28,12 @@
|
|
|
28
28
|
"esm2022": "./esm2022/ngssm-store.mjs",
|
|
29
29
|
"esm": "./esm2022/ngssm-store.mjs",
|
|
30
30
|
"default": "./fesm2022/ngssm-store.mjs"
|
|
31
|
+
},
|
|
32
|
+
"./testing": {
|
|
33
|
+
"types": "./testing/index.d.ts",
|
|
34
|
+
"esm2022": "./esm2022/testing/ngssm-store-testing.mjs",
|
|
35
|
+
"esm": "./esm2022/testing/ngssm-store-testing.mjs",
|
|
36
|
+
"default": "./fesm2022/ngssm-store-testing.mjs"
|
|
31
37
|
}
|
|
32
38
|
},
|
|
33
39
|
"sideEffects": false
|
package/public-api.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './src/store-mock';
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
import { BehaviorSubject } from 'rxjs';
|
|
2
|
-
import { Action } from '
|
|
3
|
-
import { State } from './state';
|
|
2
|
+
import { Action, State } from 'ngssm-store';
|
|
4
3
|
export declare class StoreMock {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}>;
|
|
4
|
+
private _stateValue;
|
|
5
|
+
state$: BehaviorSubject<State>;
|
|
8
6
|
state: import("@angular/core").WritableSignal<State>;
|
|
9
|
-
constructor(initialState:
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
constructor(initialState: State);
|
|
8
|
+
set stateValue(value: State);
|
|
9
|
+
get stateValue(): State;
|
|
12
10
|
dispatchAction(action: Action): void;
|
|
13
11
|
dispatchActionType(type: string): void;
|
|
14
12
|
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { signal } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject } from 'rxjs';
|
|
3
|
-
export class StoreMock {
|
|
4
|
-
constructor(initialState) {
|
|
5
|
-
this.state$ = new BehaviorSubject({});
|
|
6
|
-
this.state = signal({});
|
|
7
|
-
this.state$.next(initialState);
|
|
8
|
-
}
|
|
9
|
-
dispatchAction(action) { }
|
|
10
|
-
dispatchActionType(type) { }
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUtbW9jay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXN0b3JlL3NyYy9saWIvc3RvcmUtbW9jay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFLdkMsTUFBTSxPQUFPLFNBQVM7SUFJcEIsWUFBWSxZQUFvQztRQUh6QyxXQUFNLEdBQUcsSUFBSSxlQUFlLENBQXlCLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELFVBQUssR0FBRyxNQUFNLENBQVEsRUFBRSxDQUFDLENBQUM7UUFHL0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVNLGNBQWMsQ0FBQyxNQUFjLElBQVMsQ0FBQztJQUV2QyxrQkFBa0IsQ0FBQyxJQUFZLElBQVMsQ0FBQztDQUNqRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEFjdGlvbiB9IGZyb20gJy4vYWN0aW9uJztcbmltcG9ydCB7IFN0YXRlIH0gZnJvbSAnLi9zdGF0ZSc7XG5cbmV4cG9ydCBjbGFzcyBTdG9yZU1vY2sge1xuICBwdWJsaWMgc3RhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDx7IFtrZXk6IHN0cmluZ106IGFueSB9Pih7fSk7XG4gIHB1YmxpYyBzdGF0ZSA9IHNpZ25hbDxTdGF0ZT4oe30pO1xuXG4gIGNvbnN0cnVjdG9yKGluaXRpYWxTdGF0ZTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSkge1xuICAgIHRoaXMuc3RhdGUkLm5leHQoaW5pdGlhbFN0YXRlKTtcbiAgfVxuXG4gIHB1YmxpYyBkaXNwYXRjaEFjdGlvbihhY3Rpb246IEFjdGlvbik6IHZvaWQge31cblxuICBwdWJsaWMgZGlzcGF0Y2hBY3Rpb25UeXBlKHR5cGU6IHN0cmluZyk6IHZvaWQge31cbn1cbiJdfQ==
|