ngssm-remote-data 15.3.14 → 16.0.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/ngssm-remote-call/components/ngssm-remote-call-error/ngssm-remote-call-error.component.mjs +45 -0
- package/esm2022/lib/ngssm-remote-call/components/ngssm-remote-call.directive.mjs +41 -0
- package/esm2022/lib/ngssm-remote-call/ngssm-remote-call-state-initializer.mjs +25 -0
- package/esm2022/lib/ngssm-remote-call/reducers/remote-call-setter.reducer.mjs +35 -0
- package/esm2022/lib/ngssm-remote-call/reducers/remote-call.reducer.mjs +51 -0
- package/esm2022/lib/ngssm-remote-call/state/ngssm-remote-call.state.mjs +22 -0
- package/esm2022/lib/remote-data/components/ngssm-caches/ngssm-caches.component.mjs +51 -0
- package/esm2022/lib/remote-data/components/ngssm-caches-display-button/ngssm-caches-display-button.component.mjs +28 -0
- package/esm2022/lib/remote-data/components/ngssm-remote-data-overlay.directive.mjs +51 -0
- package/esm2022/lib/remote-data/components/ngssm-remote-data-reload-button/ngssm-remote-data-reload-button.component.mjs +64 -0
- package/esm2022/lib/remote-data/effects/caches-display.effect.mjs +39 -0
- package/esm2022/lib/remote-data/effects/remote-data-loading.effect.mjs +54 -0
- package/esm2022/lib/remote-data/guards/remote-data-loading.guard.mjs +31 -0
- package/esm2022/lib/remote-data/reducers/remote-data.reducer.mjs +80 -0
- package/esm2022/lib/remote-data/remote-data-state-initializer.mjs +25 -0
- package/esm2022/lib/remote-data/state/remote-data.state.mjs +20 -0
- package/{fesm2020 → fesm2022}/ngssm-remote-data.mjs +48 -48
- package/{fesm2020 → fesm2022}/ngssm-remote-data.mjs.map +1 -1
- package/lib/ngssm-remote-call/components/ngssm-remote-call-error/ngssm-remote-call-error.component.d.ts +1 -1
- package/lib/ngssm-remote-call/components/ngssm-remote-call.directive.d.ts +1 -1
- package/lib/remote-data/components/ngssm-remote-data-overlay.directive.d.ts +1 -1
- package/lib/remote-data/components/ngssm-remote-data-reload-button/ngssm-remote-data-reload-button.component.d.ts +1 -1
- package/package.json +8 -14
- package/esm2020/lib/ngssm-remote-call/components/ngssm-remote-call-error/ngssm-remote-call-error.component.mjs +0 -44
- package/esm2020/lib/ngssm-remote-call/components/ngssm-remote-call.directive.mjs +0 -40
- package/esm2020/lib/ngssm-remote-call/ngssm-remote-call-state-initializer.mjs +0 -24
- package/esm2020/lib/ngssm-remote-call/reducers/remote-call-setter.reducer.mjs +0 -34
- package/esm2020/lib/ngssm-remote-call/reducers/remote-call.reducer.mjs +0 -50
- package/esm2020/lib/ngssm-remote-call/state/ngssm-remote-call.state.mjs +0 -22
- package/esm2020/lib/remote-data/components/ngssm-caches/ngssm-caches.component.mjs +0 -50
- package/esm2020/lib/remote-data/components/ngssm-caches-display-button/ngssm-caches-display-button.component.mjs +0 -27
- package/esm2020/lib/remote-data/components/ngssm-remote-data-overlay.directive.mjs +0 -50
- package/esm2020/lib/remote-data/components/ngssm-remote-data-reload-button/ngssm-remote-data-reload-button.component.mjs +0 -63
- package/esm2020/lib/remote-data/effects/caches-display.effect.mjs +0 -38
- package/esm2020/lib/remote-data/effects/remote-data-loading.effect.mjs +0 -53
- package/esm2020/lib/remote-data/guards/remote-data-loading.guard.mjs +0 -30
- package/esm2020/lib/remote-data/reducers/remote-data.reducer.mjs +0 -79
- package/esm2020/lib/remote-data/remote-data-state-initializer.mjs +0 -24
- package/esm2020/lib/remote-data/state/remote-data.state.mjs +0 -20
- package/fesm2015/ngssm-remote-data.mjs +0 -687
- package/fesm2015/ngssm-remote-data.mjs.map +0 -1
- /package/{esm2020 → esm2022}/lib/ngssm-remote-call/actions/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/ngssm-remote-call/actions/ngssm-remote-call-action-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/ngssm-remote-call/actions/ngssm-remote-call-result.action.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/ngssm-remote-call/actions/set-remote-call.action.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/ngssm-remote-call/components/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/ngssm-remote-call/model/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/ngssm-remote-call/model/remote-call-config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/ngssm-remote-call/model/remote-call-error.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/ngssm-remote-call/model/remote-call-status.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/ngssm-remote-call/model/remote-call.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/ngssm-remote-call/ngssm-remote-call-routes.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/ngssm-remote-call/provide-ngssm-remote-call-config.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/ngssm-remote-call/provide-ngssm-remote-call.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/ngssm-remote-call/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/ngssm-remote-call/reducers/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/ngssm-remote-call/state/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/ngssm-remote-call/state/selectors.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/remote-data/actions/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/remote-data/actions/load-remote-data.action.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/remote-data/actions/register-loaded-remote-data.action.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/remote-data/actions/remote-data-action-type.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/remote-data/components/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/remote-data/effects/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/remote-data/guards/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/remote-data/model/data-status.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/remote-data/model/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/remote-data/model/reload-params.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/remote-data/model/remote-data-getter-params.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/remote-data/model/remote-data-provider.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/remote-data/model/remote-data.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/remote-data/provide-ngssm-remote-data.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/remote-data/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/remote-data/state/index.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/remote-data/state/selectors.mjs +0 -0
- /package/{esm2020 → esm2022}/ngssm-remote-data.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Component, ChangeDetectionStrategy, Input, HostBinding } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
4
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
5
|
+
import { BehaviorSubject, Subject, switchMap } from 'rxjs';
|
|
6
|
+
import { NgSsmComponent } from 'ngssm-store';
|
|
7
|
+
import { selectNgssmRemoteCallState } from '../../state';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "ngssm-store";
|
|
10
|
+
import * as i2 from "@angular/common";
|
|
11
|
+
import * as i3 from "@angular/material/button";
|
|
12
|
+
import * as i4 from "@angular/material/icon";
|
|
13
|
+
class NgssmRemoteCallErrorComponent extends NgSsmComponent {
|
|
14
|
+
constructor(store) {
|
|
15
|
+
super(store);
|
|
16
|
+
this._remoteCallId$ = new Subject();
|
|
17
|
+
this._remoteCallError$ = new BehaviorSubject(undefined);
|
|
18
|
+
this.hostCssClasses = 'ngssm-remote-call-error';
|
|
19
|
+
this._remoteCallId$
|
|
20
|
+
.pipe(switchMap((v) => this.watch((s) => selectNgssmRemoteCallState(s).remoteCalls[v])))
|
|
21
|
+
.subscribe((remoteCall) => this._remoteCallError$.next(remoteCall?.error));
|
|
22
|
+
}
|
|
23
|
+
set remoteCallId(value) {
|
|
24
|
+
this._remoteCallId$.next(value);
|
|
25
|
+
}
|
|
26
|
+
get remoteCallError$() {
|
|
27
|
+
return this._remoteCallError$.asObservable();
|
|
28
|
+
}
|
|
29
|
+
hideComponent() {
|
|
30
|
+
this._remoteCallError$.next(undefined);
|
|
31
|
+
}
|
|
32
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgssmRemoteCallErrorComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
33
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: NgssmRemoteCallErrorComponent, isStandalone: true, selector: "ngssm-remote-call-error", inputs: { remoteCallId: "remoteCallId" }, host: { properties: { "class": "this.hostCssClasses" } }, usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"(remoteCallError$ | async) !== undefined\" class=\"ngssm-remote-call-error-container\">\n {{remoteCallError$ | async | json}}\n\n <button mat-icon-button color=\"warn\" class=\"ngssm-remote-call-error-close-button\" (click)=\"hideComponent()\">\n <mat-icon class=\"fa-solid fa-square-xmark\"></mat-icon>\n </button>\n</div>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.JsonPipe, name: "json" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
34
|
+
}
|
|
35
|
+
export { NgssmRemoteCallErrorComponent };
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgssmRemoteCallErrorComponent, decorators: [{
|
|
37
|
+
type: Component,
|
|
38
|
+
args: [{ selector: 'ngssm-remote-call-error', standalone: true, imports: [CommonModule, MatButtonModule, MatIconModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"(remoteCallError$ | async) !== undefined\" class=\"ngssm-remote-call-error-container\">\n {{remoteCallError$ | async | json}}\n\n <button mat-icon-button color=\"warn\" class=\"ngssm-remote-call-error-close-button\" (click)=\"hideComponent()\">\n <mat-icon class=\"fa-solid fa-square-xmark\"></mat-icon>\n </button>\n</div>" }]
|
|
39
|
+
}], ctorParameters: function () { return [{ type: i1.Store }]; }, propDecorators: { hostCssClasses: [{
|
|
40
|
+
type: HostBinding,
|
|
41
|
+
args: ['class']
|
|
42
|
+
}], remoteCallId: [{
|
|
43
|
+
type: Input
|
|
44
|
+
}] } });
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tcmVtb3RlLWNhbGwtZXJyb3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdzc20tcmVtb3RlLWRhdGEvc3JjL2xpYi9uZ3NzbS1yZW1vdGUtY2FsbC9jb21wb25lbnRzL25nc3NtLXJlbW90ZS1jYWxsLWVycm9yL25nc3NtLXJlbW90ZS1jYWxsLWVycm9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXJlbW90ZS1kYXRhL3NyYy9saWIvbmdzc20tcmVtb3RlLWNhbGwvY29tcG9uZW50cy9uZ3NzbS1yZW1vdGUtY2FsbC1lcnJvci9uZ3NzbS1yZW1vdGUtY2FsbC1lcnJvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXZFLE9BQU8sRUFBRSxjQUFjLEVBQVMsTUFBTSxhQUFhLENBQUM7QUFFcEQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sYUFBYSxDQUFDOzs7Ozs7QUFHekQsTUFRYSw2QkFBOEIsU0FBUSxjQUFjO0lBTS9ELFlBQVksS0FBWTtRQUN0QixLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFORSxtQkFBYyxHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7UUFDdkMsc0JBQWlCLEdBQUcsSUFBSSxlQUFlLENBQThCLFNBQVMsQ0FBQyxDQUFDO1FBRXBFLG1CQUFjLEdBQUcseUJBQXlCLENBQUM7UUFLdEUsSUFBSSxDQUFDLGNBQWM7YUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN2RixTQUFTLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVELElBQW9CLFlBQVksQ0FBQyxLQUFhO1FBQzVDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFXLGdCQUFnQjtRQUN6QixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBRU0sYUFBYTtRQUNsQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7OEdBeEJVLDZCQUE2QjtrR0FBN0IsNkJBQTZCLDhNQ25CMUMsa1dBTU0sMkNEUU0sWUFBWSwwT0FBRSxlQUFlLDJMQUFFLGFBQWE7O1NBSzNDLDZCQUE2QjsyRkFBN0IsNkJBQTZCO2tCQVJ6QyxTQUFTOytCQUNFLHlCQUF5QixjQUN2QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLGFBQWEsQ0FBQyxtQkFHdEMsdUJBQXVCLENBQUMsTUFBTTs0RkFNbEIsY0FBYztzQkFBMUMsV0FBVzt1QkFBQyxPQUFPO2dCQVVBLFlBQVk7c0JBQS9CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBJbnB1dCwgSG9zdEJpbmRpbmcgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgTmdTc21Db21wb25lbnQsIFN0b3JlIH0gZnJvbSAnbmdzc20tc3RvcmUnO1xuXG5pbXBvcnQgeyBzZWxlY3ROZ3NzbVJlbW90ZUNhbGxTdGF0ZSB9IGZyb20gJy4uLy4uL3N0YXRlJztcbmltcG9ydCB7IFJlbW90ZUNhbGxFcnJvciB9IGZyb20gJy4uLy4uL21vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmdzc20tcmVtb3RlLWNhbGwtZXJyb3InLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGUsIE1hdEljb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vbmdzc20tcmVtb3RlLWNhbGwtZXJyb3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBOZ3NzbVJlbW90ZUNhbGxFcnJvckNvbXBvbmVudCBleHRlbmRzIE5nU3NtQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfcmVtb3RlQ2FsbElkJCA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfcmVtb3RlQ2FsbEVycm9yJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8UmVtb3RlQ2FsbEVycm9yIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBwdWJsaWMgaG9zdENzc0NsYXNzZXMgPSAnbmdzc20tcmVtb3RlLWNhbGwtZXJyb3InO1xuXG4gIGNvbnN0cnVjdG9yKHN0b3JlOiBTdG9yZSkge1xuICAgIHN1cGVyKHN0b3JlKTtcblxuICAgIHRoaXMuX3JlbW90ZUNhbGxJZCRcbiAgICAgIC5waXBlKHN3aXRjaE1hcCgodikgPT4gdGhpcy53YXRjaCgocykgPT4gc2VsZWN0Tmdzc21SZW1vdGVDYWxsU3RhdGUocykucmVtb3RlQ2FsbHNbdl0pKSlcbiAgICAgIC5zdWJzY3JpYmUoKHJlbW90ZUNhbGwpID0+IHRoaXMuX3JlbW90ZUNhbGxFcnJvciQubmV4dChyZW1vdGVDYWxsPy5lcnJvcikpO1xuICB9XG5cbiAgQElucHV0KCkgcHVibGljIHNldCByZW1vdGVDYWxsSWQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX3JlbW90ZUNhbGxJZCQubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJlbW90ZUNhbGxFcnJvciQoKTogT2JzZXJ2YWJsZTxSZW1vdGVDYWxsRXJyb3IgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gdGhpcy5fcmVtb3RlQ2FsbEVycm9yJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBoaWRlQ29tcG9uZW50KCk6IHZvaWQge1xuICAgIHRoaXMuX3JlbW90ZUNhbGxFcnJvciQubmV4dCh1bmRlZmluZWQpO1xuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiKHJlbW90ZUNhbGxFcnJvciQgfCBhc3luYykgIT09IHVuZGVmaW5lZFwiIGNsYXNzPVwibmdzc20tcmVtb3RlLWNhbGwtZXJyb3ItY29udGFpbmVyXCI+XG4gICAge3tyZW1vdGVDYWxsRXJyb3IkIHwgYXN5bmMgfCBqc29ufX1cblxuICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGNvbG9yPVwid2FyblwiIGNsYXNzPVwibmdzc20tcmVtb3RlLWNhbGwtZXJyb3ItY2xvc2UtYnV0dG9uXCIgKGNsaWNrKT1cImhpZGVDb21wb25lbnQoKVwiPlxuICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJmYS1zb2xpZCBmYS1zcXVhcmUteG1hcmtcIj48L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuPC9kaXY+Il19
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Directive, Input } from '@angular/core';
|
|
2
|
+
import { NgSsmComponent } from 'ngssm-store';
|
|
3
|
+
import { NgssmOverlayBuilder } from 'ngssm-toolkit';
|
|
4
|
+
import { RemoteCallStatus } from '../model';
|
|
5
|
+
import { selectRemoteCall } from '../state';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "ngssm-store";
|
|
8
|
+
import * as i2 from "ngssm-toolkit";
|
|
9
|
+
class NgssmRemoteCallDirective extends NgSsmComponent {
|
|
10
|
+
constructor(store, overlyBuilder) {
|
|
11
|
+
super(store);
|
|
12
|
+
this.overlyBuilder = overlyBuilder;
|
|
13
|
+
this.unsubscribeAll$.subscribe(() => this.overlyBuilder.hideOverlay());
|
|
14
|
+
}
|
|
15
|
+
set remoteCallId(value) {
|
|
16
|
+
this.subscription?.unsubscribe();
|
|
17
|
+
this.subscription = this.watch((s) => selectRemoteCall(s, value)).subscribe((value) => {
|
|
18
|
+
if (value.status === RemoteCallStatus.inProgress) {
|
|
19
|
+
this.overlyBuilder.showOverlay();
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
this.overlyBuilder.hideOverlay();
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgssmRemoteCallDirective, deps: [{ token: i1.Store }, { token: i2.NgssmOverlayBuilder }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
27
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: NgssmRemoteCallDirective, isStandalone: true, selector: "[ngssmRemoteCall]", inputs: { remoteCallId: ["ngssmRemoteCall", "remoteCallId"] }, providers: [NgssmOverlayBuilder], usesInheritance: true, ngImport: i0 }); }
|
|
28
|
+
}
|
|
29
|
+
export { NgssmRemoteCallDirective };
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgssmRemoteCallDirective, decorators: [{
|
|
31
|
+
type: Directive,
|
|
32
|
+
args: [{
|
|
33
|
+
selector: '[ngssmRemoteCall]',
|
|
34
|
+
standalone: true,
|
|
35
|
+
providers: [NgssmOverlayBuilder]
|
|
36
|
+
}]
|
|
37
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.NgssmOverlayBuilder }]; }, propDecorators: { remoteCallId: [{
|
|
38
|
+
type: Input,
|
|
39
|
+
args: ['ngssmRemoteCall']
|
|
40
|
+
}] } });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tcmVtb3RlLWNhbGwuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdzc20tcmVtb3RlLWRhdGEvc3JjL2xpYi9uZ3NzbS1yZW1vdGUtY2FsbC9jb21wb25lbnRzL25nc3NtLXJlbW90ZS1jYWxsLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdqRCxPQUFPLEVBQUUsY0FBYyxFQUFTLE1BQU0sYUFBYSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDNUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sVUFBVSxDQUFDOzs7O0FBRTVDLE1BS2Esd0JBQXlCLFNBQVEsY0FBYztJQUcxRCxZQUFZLEtBQVksRUFBVSxhQUFrQztRQUNsRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFEbUIsa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBRWxFLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsSUFBOEIsWUFBWSxDQUFDLEtBQWE7UUFDdEQsSUFBSSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLGdCQUFnQixDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3BGLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUU7Z0JBQ2hELElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7YUFDbEM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQzthQUNsQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0FqQlUsd0JBQXdCO2tHQUF4Qix3QkFBd0IsK0hBRnhCLENBQUMsbUJBQW1CLENBQUM7O1NBRXJCLHdCQUF3QjsyRkFBeEIsd0JBQXdCO2tCQUxwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztpQkFDakM7OEhBUytCLFlBQVk7c0JBQXpDLEtBQUs7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IE5nU3NtQ29tcG9uZW50LCBTdG9yZSB9IGZyb20gJ25nc3NtLXN0b3JlJztcbmltcG9ydCB7IE5nc3NtT3ZlcmxheUJ1aWxkZXIgfSBmcm9tICduZ3NzbS10b29sa2l0JztcblxuaW1wb3J0IHsgUmVtb3RlQ2FsbFN0YXR1cyB9IGZyb20gJy4uL21vZGVsJztcbmltcG9ydCB7IHNlbGVjdFJlbW90ZUNhbGwgfSBmcm9tICcuLi9zdGF0ZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tuZ3NzbVJlbW90ZUNhbGxdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgcHJvdmlkZXJzOiBbTmdzc21PdmVybGF5QnVpbGRlcl1cbn0pXG5leHBvcnQgY2xhc3MgTmdzc21SZW1vdGVDYWxsRGlyZWN0aXZlIGV4dGVuZHMgTmdTc21Db21wb25lbnQge1xuICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKHN0b3JlOiBTdG9yZSwgcHJpdmF0ZSBvdmVybHlCdWlsZGVyOiBOZ3NzbU92ZXJsYXlCdWlsZGVyKSB7XG4gICAgc3VwZXIoc3RvcmUpO1xuICAgIHRoaXMudW5zdWJzY3JpYmVBbGwkLnN1YnNjcmliZSgoKSA9PiB0aGlzLm92ZXJseUJ1aWxkZXIuaGlkZU92ZXJsYXkoKSk7XG4gIH1cblxuICBASW5wdXQoJ25nc3NtUmVtb3RlQ2FsbCcpIHNldCByZW1vdGVDYWxsSWQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy53YXRjaCgocykgPT4gc2VsZWN0UmVtb3RlQ2FsbChzLCB2YWx1ZSkpLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgIGlmICh2YWx1ZS5zdGF0dXMgPT09IFJlbW90ZUNhbGxTdGF0dXMuaW5Qcm9ncmVzcykge1xuICAgICAgICB0aGlzLm92ZXJseUJ1aWxkZXIuc2hvd092ZXJsYXkoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMub3Zlcmx5QnVpbGRlci5oaWRlT3ZlcmxheSgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Inject, Injectable, Optional } from '@angular/core';
|
|
2
|
+
import { NGSSM_REMOTE_CALL_CONFIG, RemoteCallStatus } from './model';
|
|
3
|
+
import { updateNgssmRemoteCallState } from './state';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
class NgssmRemoteCallStateInitializer {
|
|
6
|
+
constructor(remoteCallConfigs) {
|
|
7
|
+
this.remoteCallConfigs = remoteCallConfigs;
|
|
8
|
+
}
|
|
9
|
+
initializeState(state) {
|
|
10
|
+
let tempState = state;
|
|
11
|
+
return (this.remoteCallConfigs ?? []).reduce((s, config) => updateNgssmRemoteCallState(s, { remoteCalls: { [config.id]: { $set: { status: RemoteCallStatus.none } } } }), tempState);
|
|
12
|
+
}
|
|
13
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgssmRemoteCallStateInitializer, deps: [{ token: NGSSM_REMOTE_CALL_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
14
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgssmRemoteCallStateInitializer }); }
|
|
15
|
+
}
|
|
16
|
+
export { NgssmRemoteCallStateInitializer };
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgssmRemoteCallStateInitializer, decorators: [{
|
|
18
|
+
type: Injectable
|
|
19
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
20
|
+
type: Inject,
|
|
21
|
+
args: [NGSSM_REMOTE_CALL_CONFIG]
|
|
22
|
+
}, {
|
|
23
|
+
type: Optional
|
|
24
|
+
}] }]; } });
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tcmVtb3RlLWNhbGwtc3RhdGUtaW5pdGlhbGl6ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1yZW1vdGUtZGF0YS9zcmMvbGliL25nc3NtLXJlbW90ZS1jYWxsL25nc3NtLXJlbW90ZS1jYWxsLXN0YXRlLWluaXRpYWxpemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUk3RCxPQUFPLEVBQUUsd0JBQXdCLEVBQW9CLGdCQUFnQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7QUFFckQsTUFDYSwrQkFBK0I7SUFDMUMsWUFBa0UsaUJBQXFDO1FBQXJDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBb0I7SUFBRyxDQUFDO0lBRXBHLGVBQWUsQ0FBQyxLQUFZO1FBQ2pDLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN0QixPQUFPLENBQUMsSUFBSSxDQUFDLGlCQUFpQixJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FDMUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUMzSCxTQUFTLENBQ1YsQ0FBQztJQUNKLENBQUM7OEdBVFUsK0JBQStCLGtCQUN0Qix3QkFBd0I7a0hBRGpDLCtCQUErQjs7U0FBL0IsK0JBQStCOzJGQUEvQiwrQkFBK0I7a0JBRDNDLFVBQVU7OzBCQUVJLE1BQU07MkJBQUMsd0JBQXdCOzswQkFBRyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTdGF0ZSwgU3RhdGVJbml0aWFsaXplciB9IGZyb20gJ25nc3NtLXN0b3JlJztcblxuaW1wb3J0IHsgTkdTU01fUkVNT1RFX0NBTExfQ09ORklHLCBSZW1vdGVDYWxsQ29uZmlnLCBSZW1vdGVDYWxsU3RhdHVzIH0gZnJvbSAnLi9tb2RlbCc7XG5pbXBvcnQgeyB1cGRhdGVOZ3NzbVJlbW90ZUNhbGxTdGF0ZSB9IGZyb20gJy4vc3RhdGUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTmdzc21SZW1vdGVDYWxsU3RhdGVJbml0aWFsaXplciBpbXBsZW1lbnRzIFN0YXRlSW5pdGlhbGl6ZXIge1xuICBjb25zdHJ1Y3RvcihASW5qZWN0KE5HU1NNX1JFTU9URV9DQUxMX0NPTkZJRykgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZW1vdGVDYWxsQ29uZmlnczogUmVtb3RlQ2FsbENvbmZpZ1tdKSB7fVxuXG4gIHB1YmxpYyBpbml0aWFsaXplU3RhdGUoc3RhdGU6IFN0YXRlKTogU3RhdGUge1xuICAgIGxldCB0ZW1wU3RhdGUgPSBzdGF0ZTtcbiAgICByZXR1cm4gKHRoaXMucmVtb3RlQ2FsbENvbmZpZ3MgPz8gW10pLnJlZHVjZShcbiAgICAgIChzLCBjb25maWcpID0+IHVwZGF0ZU5nc3NtUmVtb3RlQ2FsbFN0YXRlKHMsIHsgcmVtb3RlQ2FsbHM6IHsgW2NvbmZpZy5pZF06IHsgJHNldDogeyBzdGF0dXM6IFJlbW90ZUNhbGxTdGF0dXMubm9uZSB9IH0gfSB9KSxcbiAgICAgIHRlbXBTdGF0ZVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { NGSSM_REDUCER } from 'ngssm-store';
|
|
3
|
+
import { NgssmRemoteCallActionType } from '../actions';
|
|
4
|
+
import { updateNgssmRemoteCallState } from '../state';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
class RemoteCallSetterReducer {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.processedActions = [NgssmRemoteCallActionType.setRemoteCall];
|
|
9
|
+
}
|
|
10
|
+
updateState(state, action) {
|
|
11
|
+
switch (action.type) {
|
|
12
|
+
case NgssmRemoteCallActionType.setRemoteCall: {
|
|
13
|
+
const setRemoteCallAction = action;
|
|
14
|
+
return updateNgssmRemoteCallState(state, {
|
|
15
|
+
remoteCalls: {
|
|
16
|
+
[setRemoteCallAction.remoteCallId]: { $set: setRemoteCallAction.remoteCall }
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return state;
|
|
22
|
+
}
|
|
23
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: RemoteCallSetterReducer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
24
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: RemoteCallSetterReducer }); }
|
|
25
|
+
}
|
|
26
|
+
export { RemoteCallSetterReducer };
|
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: RemoteCallSetterReducer, decorators: [{
|
|
28
|
+
type: Injectable
|
|
29
|
+
}] });
|
|
30
|
+
export const remoteCallSetterReducerProvider = {
|
|
31
|
+
provide: NGSSM_REDUCER,
|
|
32
|
+
useClass: RemoteCallSetterReducer,
|
|
33
|
+
multi: true
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWNhbGwtc2V0dGVyLnJlZHVjZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1yZW1vdGUtZGF0YS9zcmMvbGliL25nc3NtLXJlbW90ZS1jYWxsL3JlZHVjZXJzL3JlbW90ZS1jYWxsLXNldHRlci5yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFFckQsT0FBTyxFQUEwQixhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFcEUsT0FBTyxFQUFFLHlCQUF5QixFQUF1QixNQUFNLFlBQVksQ0FBQztBQUM1RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBRXRELE1BQ2EsdUJBQXVCO0lBRHBDO1FBRWtCLHFCQUFnQixHQUFhLENBQUMseUJBQXlCLENBQUMsYUFBYSxDQUFDLENBQUM7S0FnQnhGO0lBZFEsV0FBVyxDQUFDLEtBQVksRUFBRSxNQUFjO1FBQzdDLFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRTtZQUNuQixLQUFLLHlCQUF5QixDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUM1QyxNQUFNLG1CQUFtQixHQUFHLE1BQTZCLENBQUM7Z0JBQzFELE9BQU8sMEJBQTBCLENBQUMsS0FBSyxFQUFFO29CQUN2QyxXQUFXLEVBQUU7d0JBQ1gsQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxVQUFVLEVBQUU7cUJBQzdFO2lCQUNGLENBQUMsQ0FBQzthQUNKO1NBQ0Y7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OEdBaEJVLHVCQUF1QjtrSEFBdkIsdUJBQXVCOztTQUF2Qix1QkFBdUI7MkZBQXZCLHVCQUF1QjtrQkFEbkMsVUFBVTs7QUFvQlgsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQWE7SUFDdkQsT0FBTyxFQUFFLGFBQWE7SUFDdEIsUUFBUSxFQUFFLHVCQUF1QjtJQUNqQyxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBSZWR1Y2VyLCBTdGF0ZSwgQWN0aW9uLCBOR1NTTV9SRURVQ0VSIH0gZnJvbSAnbmdzc20tc3RvcmUnO1xuXG5pbXBvcnQgeyBOZ3NzbVJlbW90ZUNhbGxBY3Rpb25UeXBlLCBTZXRSZW1vdGVDYWxsQWN0aW9uIH0gZnJvbSAnLi4vYWN0aW9ucyc7XG5pbXBvcnQgeyB1cGRhdGVOZ3NzbVJlbW90ZUNhbGxTdGF0ZSB9IGZyb20gJy4uL3N0YXRlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFJlbW90ZUNhbGxTZXR0ZXJSZWR1Y2VyIGltcGxlbWVudHMgUmVkdWNlciB7XG4gIHB1YmxpYyByZWFkb25seSBwcm9jZXNzZWRBY3Rpb25zOiBzdHJpbmdbXSA9IFtOZ3NzbVJlbW90ZUNhbGxBY3Rpb25UeXBlLnNldFJlbW90ZUNhbGxdO1xuXG4gIHB1YmxpYyB1cGRhdGVTdGF0ZShzdGF0ZTogU3RhdGUsIGFjdGlvbjogQWN0aW9uKTogU3RhdGUge1xuICAgIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICAgIGNhc2UgTmdzc21SZW1vdGVDYWxsQWN0aW9uVHlwZS5zZXRSZW1vdGVDYWxsOiB7XG4gICAgICAgIGNvbnN0IHNldFJlbW90ZUNhbGxBY3Rpb24gPSBhY3Rpb24gYXMgU2V0UmVtb3RlQ2FsbEFjdGlvbjtcbiAgICAgICAgcmV0dXJuIHVwZGF0ZU5nc3NtUmVtb3RlQ2FsbFN0YXRlKHN0YXRlLCB7XG4gICAgICAgICAgcmVtb3RlQ2FsbHM6IHtcbiAgICAgICAgICAgIFtzZXRSZW1vdGVDYWxsQWN0aW9uLnJlbW90ZUNhbGxJZF06IHsgJHNldDogc2V0UmVtb3RlQ2FsbEFjdGlvbi5yZW1vdGVDYWxsIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgcmVtb3RlQ2FsbFNldHRlclJlZHVjZXJQcm92aWRlcjogUHJvdmlkZXIgPSB7XG4gIHByb3ZpZGU6IE5HU1NNX1JFRFVDRVIsXG4gIHVzZUNsYXNzOiBSZW1vdGVDYWxsU2V0dGVyUmVkdWNlcixcbiAgbXVsdGk6IHRydWVcbn07XG4iXX0=
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { Inject, Injectable, Optional } from '@angular/core';
|
|
2
|
+
import { NGSSM_REDUCER } from 'ngssm-store';
|
|
3
|
+
import { NGSSM_REMOTE_CALL_CONFIG, RemoteCallStatus, getDefaultRemoteCall } from '../model';
|
|
4
|
+
import { updateNgssmRemoteCallState } from '../state';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
class RemoteCallReducer {
|
|
7
|
+
constructor(remoteCallConfigs) {
|
|
8
|
+
this.remoteCallConfigs = remoteCallConfigs;
|
|
9
|
+
this.processedActions = [];
|
|
10
|
+
(this.remoteCallConfigs ?? []).forEach((c) => this.processedActions.push(...[...c.triggeredActionTypes, ...c.resultActionTypes]));
|
|
11
|
+
}
|
|
12
|
+
updateState(state, action) {
|
|
13
|
+
const configs = (this.remoteCallConfigs ?? []).filter((c) => c.triggeredActionTypes.includes(action.type) || c.resultActionTypes.includes(action.type));
|
|
14
|
+
let output = state;
|
|
15
|
+
configs.forEach((config) => {
|
|
16
|
+
if (config.triggeredActionTypes.includes(action.type)) {
|
|
17
|
+
output = updateNgssmRemoteCallState(output, {
|
|
18
|
+
remoteCalls: {
|
|
19
|
+
[config.id]: { $set: getDefaultRemoteCall(RemoteCallStatus.inProgress) }
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
const ngssmRemoteCallResultAction = action;
|
|
25
|
+
output = updateNgssmRemoteCallState(output, {
|
|
26
|
+
remoteCalls: {
|
|
27
|
+
[config.id]: { $set: ngssmRemoteCallResultAction.remoteCall }
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
return output;
|
|
33
|
+
}
|
|
34
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: RemoteCallReducer, deps: [{ token: NGSSM_REMOTE_CALL_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
35
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: RemoteCallReducer }); }
|
|
36
|
+
}
|
|
37
|
+
export { RemoteCallReducer };
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: RemoteCallReducer, decorators: [{
|
|
39
|
+
type: Injectable
|
|
40
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
41
|
+
type: Inject,
|
|
42
|
+
args: [NGSSM_REMOTE_CALL_CONFIG]
|
|
43
|
+
}, {
|
|
44
|
+
type: Optional
|
|
45
|
+
}] }]; } });
|
|
46
|
+
export const remoteCallReducerProvider = {
|
|
47
|
+
provide: NGSSM_REDUCER,
|
|
48
|
+
useClass: RemoteCallReducer,
|
|
49
|
+
multi: true
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWNhbGwucmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXJlbW90ZS1kYXRhL3NyYy9saWIvbmdzc20tcmVtb3RlLWNhbGwvcmVkdWNlcnMvcmVtb3RlLWNhbGwucmVkdWNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQVksTUFBTSxlQUFlLENBQUM7QUFFdkUsT0FBTyxFQUEwQixhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHcEUsT0FBTyxFQUFFLHdCQUF3QixFQUFvQixnQkFBZ0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM5RyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBRXRELE1BQ2EsaUJBQWlCO0lBRzVCLFlBQWtFLGlCQUFxQztRQUFyQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW9CO1FBRnZGLHFCQUFnQixHQUFhLEVBQUUsQ0FBQztRQUc5QyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLG9CQUFvQixFQUFFLEdBQUcsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BJLENBQUM7SUFFTSxXQUFXLENBQUMsS0FBWSxFQUFFLE1BQWM7UUFDN0MsTUFBTSxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUNuRCxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQ2pHLENBQUM7UUFDRixJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDbkIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ3pCLElBQUksTUFBTSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3JELE1BQU0sR0FBRywwQkFBMEIsQ0FBQyxNQUFNLEVBQUU7b0JBQzFDLFdBQVcsRUFBRTt3QkFDWCxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxvQkFBb0IsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsRUFBRTtxQkFDekU7aUJBQ0YsQ0FBQyxDQUFDO2FBQ0o7aUJBQU07Z0JBQ0wsTUFBTSwyQkFBMkIsR0FBRyxNQUFxQyxDQUFDO2dCQUMxRSxNQUFNLEdBQUcsMEJBQTBCLENBQUMsTUFBTSxFQUFFO29CQUMxQyxXQUFXLEVBQUU7d0JBQ1gsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsMkJBQTJCLENBQUMsVUFBVSxFQUFFO3FCQUM5RDtpQkFDRixDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzs4R0E5QlUsaUJBQWlCLGtCQUdSLHdCQUF3QjtrSEFIakMsaUJBQWlCOztTQUFqQixpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVTs7MEJBSUksTUFBTTsyQkFBQyx3QkFBd0I7OzBCQUFHLFFBQVE7O0FBOEJ6RCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBYTtJQUNqRCxPQUFPLEVBQUUsYUFBYTtJQUN0QixRQUFRLEVBQUUsaUJBQWlCO0lBQzNCLEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwsIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFJlZHVjZXIsIFN0YXRlLCBBY3Rpb24sIE5HU1NNX1JFRFVDRVIgfSBmcm9tICduZ3NzbS1zdG9yZSc7XG5cbmltcG9ydCB7IE5nc3NtUmVtb3RlQ2FsbFJlc3VsdEFjdGlvbiB9IGZyb20gJy4uL2FjdGlvbnMnO1xuaW1wb3J0IHsgTkdTU01fUkVNT1RFX0NBTExfQ09ORklHLCBSZW1vdGVDYWxsQ29uZmlnLCBSZW1vdGVDYWxsU3RhdHVzLCBnZXREZWZhdWx0UmVtb3RlQ2FsbCB9IGZyb20gJy4uL21vZGVsJztcbmltcG9ydCB7IHVwZGF0ZU5nc3NtUmVtb3RlQ2FsbFN0YXRlIH0gZnJvbSAnLi4vc3RhdGUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUmVtb3RlQ2FsbFJlZHVjZXIgaW1wbGVtZW50cyBSZWR1Y2VyIHtcbiAgcHVibGljIHJlYWRvbmx5IHByb2Nlc3NlZEFjdGlvbnM6IHN0cmluZ1tdID0gW107XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChOR1NTTV9SRU1PVEVfQ0FMTF9DT05GSUcpIEBPcHRpb25hbCgpIHByaXZhdGUgcmVtb3RlQ2FsbENvbmZpZ3M6IFJlbW90ZUNhbGxDb25maWdbXSkge1xuICAgICh0aGlzLnJlbW90ZUNhbGxDb25maWdzID8/IFtdKS5mb3JFYWNoKChjKSA9PiB0aGlzLnByb2Nlc3NlZEFjdGlvbnMucHVzaCguLi5bLi4uYy50cmlnZ2VyZWRBY3Rpb25UeXBlcywgLi4uYy5yZXN1bHRBY3Rpb25UeXBlc10pKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVTdGF0ZShzdGF0ZTogU3RhdGUsIGFjdGlvbjogQWN0aW9uKTogU3RhdGUge1xuICAgIGNvbnN0IGNvbmZpZ3MgPSAodGhpcy5yZW1vdGVDYWxsQ29uZmlncyA/PyBbXSkuZmlsdGVyKFxuICAgICAgKGMpID0+IGMudHJpZ2dlcmVkQWN0aW9uVHlwZXMuaW5jbHVkZXMoYWN0aW9uLnR5cGUpIHx8IGMucmVzdWx0QWN0aW9uVHlwZXMuaW5jbHVkZXMoYWN0aW9uLnR5cGUpXG4gICAgKTtcbiAgICBsZXQgb3V0cHV0ID0gc3RhdGU7XG4gICAgY29uZmlncy5mb3JFYWNoKChjb25maWcpID0+IHtcbiAgICAgIGlmIChjb25maWcudHJpZ2dlcmVkQWN0aW9uVHlwZXMuaW5jbHVkZXMoYWN0aW9uLnR5cGUpKSB7XG4gICAgICAgIG91dHB1dCA9IHVwZGF0ZU5nc3NtUmVtb3RlQ2FsbFN0YXRlKG91dHB1dCwge1xuICAgICAgICAgIHJlbW90ZUNhbGxzOiB7XG4gICAgICAgICAgICBbY29uZmlnLmlkXTogeyAkc2V0OiBnZXREZWZhdWx0UmVtb3RlQ2FsbChSZW1vdGVDYWxsU3RhdHVzLmluUHJvZ3Jlc3MpIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3Qgbmdzc21SZW1vdGVDYWxsUmVzdWx0QWN0aW9uID0gYWN0aW9uIGFzIE5nc3NtUmVtb3RlQ2FsbFJlc3VsdEFjdGlvbjtcbiAgICAgICAgb3V0cHV0ID0gdXBkYXRlTmdzc21SZW1vdGVDYWxsU3RhdGUob3V0cHV0LCB7XG4gICAgICAgICAgcmVtb3RlQ2FsbHM6IHtcbiAgICAgICAgICAgIFtjb25maWcuaWRdOiB7ICRzZXQ6IG5nc3NtUmVtb3RlQ2FsbFJlc3VsdEFjdGlvbi5yZW1vdGVDYWxsIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG91dHB1dDtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgcmVtb3RlQ2FsbFJlZHVjZXJQcm92aWRlcjogUHJvdmlkZXIgPSB7XG4gIHByb3ZpZGU6IE5HU1NNX1JFRFVDRVIsXG4gIHVzZUNsYXNzOiBSZW1vdGVDYWxsUmVkdWNlcixcbiAgbXVsdGk6IHRydWVcbn07XG4iXX0=
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
var NgssmRemoteCallStateSpecification_1;
|
|
2
|
+
import { __decorate } from "tslib";
|
|
3
|
+
import update from 'immutability-helper';
|
|
4
|
+
import { NgSsmFeatureState } from 'ngssm-store';
|
|
5
|
+
export const selectNgssmRemoteCallState = (state) => state[NgssmRemoteCallStateSpecification.featureStateKey];
|
|
6
|
+
export const updateNgssmRemoteCallState = (state, command) => update(state, {
|
|
7
|
+
[NgssmRemoteCallStateSpecification.featureStateKey]: command
|
|
8
|
+
});
|
|
9
|
+
let NgssmRemoteCallStateSpecification = NgssmRemoteCallStateSpecification_1 = class NgssmRemoteCallStateSpecification {
|
|
10
|
+
static { this.featureStateKey = 'ngssm-remote-call-state'; }
|
|
11
|
+
static { this.initialState = {
|
|
12
|
+
remoteCalls: {}
|
|
13
|
+
}; }
|
|
14
|
+
};
|
|
15
|
+
NgssmRemoteCallStateSpecification = NgssmRemoteCallStateSpecification_1 = __decorate([
|
|
16
|
+
NgSsmFeatureState({
|
|
17
|
+
featureStateKey: NgssmRemoteCallStateSpecification_1.featureStateKey,
|
|
18
|
+
initialState: NgssmRemoteCallStateSpecification_1.initialState
|
|
19
|
+
})
|
|
20
|
+
], NgssmRemoteCallStateSpecification);
|
|
21
|
+
export { NgssmRemoteCallStateSpecification };
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tcmVtb3RlLWNhbGwuc3RhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1yZW1vdGUtZGF0YS9zcmMvbGliL25nc3NtLXJlbW90ZS1jYWxsL3N0YXRlL25nc3NtLXJlbW90ZS1jYWxsLnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxNQUFnQixNQUFNLHFCQUFxQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxpQkFBaUIsRUFBUyxNQUFNLGFBQWEsQ0FBQztBQUl2RCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxDQUFDLEtBQVksRUFBd0IsRUFBRSxDQUMvRSxLQUFLLENBQUMsaUNBQWlDLENBQUMsZUFBZSxDQUF5QixDQUFDO0FBRW5GLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLENBQUMsS0FBWSxFQUFFLE9BQTBDLEVBQVMsRUFBRSxDQUM1RyxNQUFNLENBQUMsS0FBSyxFQUFFO0lBQ1osQ0FBQyxpQ0FBaUMsQ0FBQyxlQUFlLENBQUMsRUFBRSxPQUFPO0NBQzdELENBQUMsQ0FBQztBQVVMLElBQWEsaUNBQWlDLHlDQUE5QyxNQUFhLGlDQUFpQzthQUNyQixvQkFBZSxHQUFHLHlCQUF5QixBQUE1QixDQUE2QjthQUM1QyxpQkFBWSxHQUF5QjtRQUMxRCxXQUFXLEVBQUUsRUFBRTtLQUNoQixBQUZrQyxDQUVqQzs7QUFKUyxpQ0FBaUM7SUFKN0MsaUJBQWlCLENBQUM7UUFDakIsZUFBZSxFQUFFLG1DQUFpQyxDQUFDLGVBQWU7UUFDbEUsWUFBWSxFQUFFLG1DQUFpQyxDQUFDLFlBQVk7S0FDN0QsQ0FBQztHQUNXLGlDQUFpQyxDQUs3QztTQUxZLGlDQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB1cGRhdGUsIHsgU3BlYyB9IGZyb20gJ2ltbXV0YWJpbGl0eS1oZWxwZXInO1xuXG5pbXBvcnQgeyBOZ1NzbUZlYXR1cmVTdGF0ZSwgU3RhdGUgfSBmcm9tICduZ3NzbS1zdG9yZSc7XG5cbmltcG9ydCB7IFJlbW90ZUNhbGwgfSBmcm9tICcuLi9tb2RlbCc7XG5cbmV4cG9ydCBjb25zdCBzZWxlY3ROZ3NzbVJlbW90ZUNhbGxTdGF0ZSA9IChzdGF0ZTogU3RhdGUpOiBOZ3NzbVJlbW90ZUNhbGxTdGF0ZSA9PlxuICBzdGF0ZVtOZ3NzbVJlbW90ZUNhbGxTdGF0ZVNwZWNpZmljYXRpb24uZmVhdHVyZVN0YXRlS2V5XSBhcyBOZ3NzbVJlbW90ZUNhbGxTdGF0ZTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZU5nc3NtUmVtb3RlQ2FsbFN0YXRlID0gKHN0YXRlOiBTdGF0ZSwgY29tbWFuZDogU3BlYzxOZ3NzbVJlbW90ZUNhbGxTdGF0ZSwgbmV2ZXI+KTogU3RhdGUgPT5cbiAgdXBkYXRlKHN0YXRlLCB7XG4gICAgW05nc3NtUmVtb3RlQ2FsbFN0YXRlU3BlY2lmaWNhdGlvbi5mZWF0dXJlU3RhdGVLZXldOiBjb21tYW5kXG4gIH0pO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5nc3NtUmVtb3RlQ2FsbFN0YXRlIHtcbiAgcmVtb3RlQ2FsbHM6IHsgW2tleTogc3RyaW5nXTogUmVtb3RlQ2FsbCB9O1xufVxuXG5ATmdTc21GZWF0dXJlU3RhdGUoe1xuICBmZWF0dXJlU3RhdGVLZXk6IE5nc3NtUmVtb3RlQ2FsbFN0YXRlU3BlY2lmaWNhdGlvbi5mZWF0dXJlU3RhdGVLZXksXG4gIGluaXRpYWxTdGF0ZTogTmdzc21SZW1vdGVDYWxsU3RhdGVTcGVjaWZpY2F0aW9uLmluaXRpYWxTdGF0ZVxufSlcbmV4cG9ydCBjbGFzcyBOZ3NzbVJlbW90ZUNhbGxTdGF0ZVNwZWNpZmljYXRpb24ge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGZlYXR1cmVTdGF0ZUtleSA9ICduZ3NzbS1yZW1vdGUtY2FsbC1zdGF0ZSc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgaW5pdGlhbFN0YXRlOiBOZ3NzbVJlbW90ZUNhbGxTdGF0ZSA9IHtcbiAgICByZW1vdGVDYWxsczoge31cbiAgfTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { Component, ChangeDetectionStrategy } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { MatDialogModule } from '@angular/material/dialog';
|
|
4
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
5
|
+
import { MatTableModule } from '@angular/material/table';
|
|
6
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
7
|
+
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
8
|
+
import { BehaviorSubject } from 'rxjs';
|
|
9
|
+
import { NgSsmComponent } from 'ngssm-store';
|
|
10
|
+
import { RemoteDataActionType, LoadRemoteDataAction } from '../../actions';
|
|
11
|
+
import { DataStatus } from '../../model';
|
|
12
|
+
import { selectRemoteDataState } from '../../state';
|
|
13
|
+
import * as i0 from "@angular/core";
|
|
14
|
+
import * as i1 from "ngssm-store";
|
|
15
|
+
import * as i2 from "@angular/common";
|
|
16
|
+
import * as i3 from "@angular/material/dialog";
|
|
17
|
+
import * as i4 from "@angular/material/button";
|
|
18
|
+
import * as i5 from "@angular/material/table";
|
|
19
|
+
import * as i6 from "@angular/material/icon";
|
|
20
|
+
import * as i7 from "@angular/material/progress-spinner";
|
|
21
|
+
class NgssmCachesComponent extends NgSsmComponent {
|
|
22
|
+
constructor(store) {
|
|
23
|
+
super(store);
|
|
24
|
+
this._caches$ = new BehaviorSubject([]);
|
|
25
|
+
this.dataStatus = DataStatus;
|
|
26
|
+
this.watch((s) => selectRemoteDataState(s)).subscribe((state) => {
|
|
27
|
+
const caches = Object.keys(state).map((key) => ({
|
|
28
|
+
key,
|
|
29
|
+
value: state[key]
|
|
30
|
+
}));
|
|
31
|
+
this._caches$.next(caches);
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
get caches$() {
|
|
35
|
+
return this._caches$.asObservable();
|
|
36
|
+
}
|
|
37
|
+
close() {
|
|
38
|
+
this.dispatchActionType(RemoteDataActionType.closeCachesComponent);
|
|
39
|
+
}
|
|
40
|
+
reloadCache(cache) {
|
|
41
|
+
this.dispatchAction(new LoadRemoteDataAction(cache.key, { forceReload: true, keepStoredGetterParams: true }));
|
|
42
|
+
}
|
|
43
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgssmCachesComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
44
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: NgssmCachesComponent, isStandalone: true, selector: "ngssm-caches", usesInheritance: true, ngImport: i0, template: "<h1 mat-dialog-title>List of caches</h1>\n<mat-dialog-content class=\"flex-column-stretch fxFlex\">\n <mat-table [dataSource]=\"caches$\" class=\"fxFlex\">\n <ng-container matColumnDef=\"actions\">\n <mat-header-cell *matHeaderCellDef> </mat-header-cell>\n <mat-cell *matCellDef=\"let element\">\n <button mat-icon-button [disabled]=\"element.value.status === dataStatus.loading\" (click)=\"reloadCache(element)\" color=\"primary\" id=\"reload_{{element.key}}\">\n <mat-icon class=\"fa-solid fa-rotate-right\"></mat-icon>\n </button>\n </mat-cell>\n </ng-container>\n\n <ng-container matColumnDef=\"key\">\n <mat-header-cell *matHeaderCellDef> Key </mat-header-cell>\n <mat-cell *matCellDef=\"let element\"> {{element.key}} </mat-cell>\n </ng-container>\n\n <ng-container matColumnDef=\"status\">\n <mat-header-cell *matHeaderCellDef> Status </mat-header-cell>\n <mat-cell *matCellDef=\"let element\">\n\n <div [ngSwitch]=\"element.value.status\">\n <mat-icon *ngSwitchCase=\"dataStatus.none\" class=\"fa-solid fa-minus\"></mat-icon>\n <mat-icon *ngSwitchCase=\"dataStatus.loaded\" class=\"fa-solid fa-check\" color=\"primary\"></mat-icon>\n <mat-icon *ngSwitchCase=\"dataStatus.error\" class=\"fa-solid fa-xmark\" color=\"warn\"></mat-icon>\n <mat-icon *ngSwitchCase=\"dataStatus.notFound\" class=\"fa-solid fa-xmark\" color=\"warn\"></mat-icon>\n <mat-spinner [diameter]=\"20\" *ngSwitchCase=\"dataStatus.loading\"></mat-spinner>\n </div>\n\n </mat-cell>\n </ng-container>\n\n <ng-container matColumnDef=\"timestamp\">\n <mat-header-cell *matHeaderCellDef> Timestamp </mat-header-cell>\n <mat-cell *matCellDef=\"let element\"> {{element.value.timestamp}} </mat-cell>\n </ng-container>\n\n <mat-header-row *matHeaderRowDef=\"['actions', 'status', 'key', 'timestamp']; sticky: true\"></mat-header-row>\n <mat-row *matRowDef=\"let row; columns: ['actions', 'status', 'key', 'timestamp']\"></mat-row>\n </mat-table>\n</mat-dialog-content>\n<mat-dialog-actions class=\"flex-row-center\">\n <span class=\"fxFlex\"></span>\n <button mat-button (click)=\"close()\" id=\"closeButton\">Close</button>\n</mat-dialog-actions>", styles: [":host{display:flex;flex-direction:column;min-width:800px;max-width:80vw;min-height:500px;max-height:80vh}:host .mat-column-actions{min-width:50px;max-width:50px;padding-left:0!important}:host .mat-column-status{min-width:60px;max-width:60px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i3.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i3.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTableModule }, { kind: "component", type: i5.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i5.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i5.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i5.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i5.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i5.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i5.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i5.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i5.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i5.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i7.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
45
|
+
}
|
|
46
|
+
export { NgssmCachesComponent };
|
|
47
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgssmCachesComponent, decorators: [{
|
|
48
|
+
type: Component,
|
|
49
|
+
args: [{ selector: 'ngssm-caches', standalone: true, imports: [CommonModule, MatDialogModule, MatButtonModule, MatTableModule, MatIconModule, MatProgressSpinnerModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<h1 mat-dialog-title>List of caches</h1>\n<mat-dialog-content class=\"flex-column-stretch fxFlex\">\n <mat-table [dataSource]=\"caches$\" class=\"fxFlex\">\n <ng-container matColumnDef=\"actions\">\n <mat-header-cell *matHeaderCellDef> </mat-header-cell>\n <mat-cell *matCellDef=\"let element\">\n <button mat-icon-button [disabled]=\"element.value.status === dataStatus.loading\" (click)=\"reloadCache(element)\" color=\"primary\" id=\"reload_{{element.key}}\">\n <mat-icon class=\"fa-solid fa-rotate-right\"></mat-icon>\n </button>\n </mat-cell>\n </ng-container>\n\n <ng-container matColumnDef=\"key\">\n <mat-header-cell *matHeaderCellDef> Key </mat-header-cell>\n <mat-cell *matCellDef=\"let element\"> {{element.key}} </mat-cell>\n </ng-container>\n\n <ng-container matColumnDef=\"status\">\n <mat-header-cell *matHeaderCellDef> Status </mat-header-cell>\n <mat-cell *matCellDef=\"let element\">\n\n <div [ngSwitch]=\"element.value.status\">\n <mat-icon *ngSwitchCase=\"dataStatus.none\" class=\"fa-solid fa-minus\"></mat-icon>\n <mat-icon *ngSwitchCase=\"dataStatus.loaded\" class=\"fa-solid fa-check\" color=\"primary\"></mat-icon>\n <mat-icon *ngSwitchCase=\"dataStatus.error\" class=\"fa-solid fa-xmark\" color=\"warn\"></mat-icon>\n <mat-icon *ngSwitchCase=\"dataStatus.notFound\" class=\"fa-solid fa-xmark\" color=\"warn\"></mat-icon>\n <mat-spinner [diameter]=\"20\" *ngSwitchCase=\"dataStatus.loading\"></mat-spinner>\n </div>\n\n </mat-cell>\n </ng-container>\n\n <ng-container matColumnDef=\"timestamp\">\n <mat-header-cell *matHeaderCellDef> Timestamp </mat-header-cell>\n <mat-cell *matCellDef=\"let element\"> {{element.value.timestamp}} </mat-cell>\n </ng-container>\n\n <mat-header-row *matHeaderRowDef=\"['actions', 'status', 'key', 'timestamp']; sticky: true\"></mat-header-row>\n <mat-row *matRowDef=\"let row; columns: ['actions', 'status', 'key', 'timestamp']\"></mat-row>\n </mat-table>\n</mat-dialog-content>\n<mat-dialog-actions class=\"flex-row-center\">\n <span class=\"fxFlex\"></span>\n <button mat-button (click)=\"close()\" id=\"closeButton\">Close</button>\n</mat-dialog-actions>", styles: [":host{display:flex;flex-direction:column;min-width:800px;max-width:80vw;min-height:500px;max-height:80vh}:host .mat-column-actions{min-width:50px;max-width:50px;padding-left:0!important}:host .mat-column-status{min-width:60px;max-width:60px}\n"] }]
|
|
50
|
+
}], ctorParameters: function () { return [{ type: i1.Store }]; } });
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tY2FjaGVzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXJlbW90ZS1kYXRhL3NyYy9saWIvcmVtb3RlLWRhdGEvY29tcG9uZW50cy9uZ3NzbS1jYWNoZXMvbmdzc20tY2FjaGVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXJlbW90ZS1kYXRhL3NyYy9saWIvcmVtb3RlLWRhdGEvY29tcG9uZW50cy9uZ3NzbS1jYWNoZXMvbmdzc20tY2FjaGVzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxjQUFjLEVBQVMsTUFBTSxhQUFhLENBQUM7QUFFcEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxVQUFVLEVBQWMsTUFBTSxhQUFhLENBQUM7QUFDckQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sYUFBYSxDQUFDOzs7Ozs7Ozs7QUFPcEQsTUFRYSxvQkFBcUIsU0FBUSxjQUFjO0lBS3RELFlBQVksS0FBWTtRQUN0QixLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFMRSxhQUFRLEdBQUcsSUFBSSxlQUFlLENBQVUsRUFBRSxDQUFDLENBQUM7UUFFN0MsZUFBVSxHQUFHLFVBQVUsQ0FBQztRQUt0QyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzlELE1BQU0sTUFBTSxHQUFZLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUN2RCxHQUFHO2dCQUNILEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDO2FBQ2xCLENBQUMsQ0FBQyxDQUFDO1lBQ0osSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRU0sS0FBSztRQUNWLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFTSxXQUFXLENBQUMsS0FBWTtRQUM3QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksb0JBQW9CLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsc0JBQXNCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2hILENBQUM7OEdBM0JVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLCtGQzVCakMsbTdFQTRDcUIsNFNEckJULFlBQVksME5BQUUsZUFBZSx5YkFBRSxlQUFlLHdhQUFFLGNBQWMsZ2hDQUFFLGFBQWEsbUxBQUUsd0JBQXdCOztTQUt0RyxvQkFBb0I7MkZBQXBCLG9CQUFvQjtrQkFSaEMsU0FBUzsrQkFDRSxjQUFjLGNBQ1osSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSx3QkFBd0IsQ0FBQyxtQkFHakcsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdFRhYmxlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgTmdTc21Db21wb25lbnQsIFN0b3JlIH0gZnJvbSAnbmdzc20tc3RvcmUnO1xuXG5pbXBvcnQgeyBSZW1vdGVEYXRhQWN0aW9uVHlwZSwgTG9hZFJlbW90ZURhdGFBY3Rpb24gfSBmcm9tICcuLi8uLi9hY3Rpb25zJztcbmltcG9ydCB7IERhdGFTdGF0dXMsIFJlbW90ZURhdGEgfSBmcm9tICcuLi8uLi9tb2RlbCc7XG5pbXBvcnQgeyBzZWxlY3RSZW1vdGVEYXRhU3RhdGUgfSBmcm9tICcuLi8uLi9zdGF0ZSc7XG5cbmludGVyZmFjZSBDYWNoZSB7XG4gIGtleTogc3RyaW5nO1xuICB2YWx1ZTogUmVtb3RlRGF0YTtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmdzc20tY2FjaGVzJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0RGlhbG9nTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGUsIE1hdFRhYmxlTW9kdWxlLCBNYXRJY29uTW9kdWxlLCBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vbmdzc20tY2FjaGVzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbmdzc20tY2FjaGVzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE5nc3NtQ2FjaGVzQ29tcG9uZW50IGV4dGVuZHMgTmdTc21Db21wb25lbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IF9jYWNoZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDYWNoZVtdPihbXSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGRhdGFTdGF0dXMgPSBEYXRhU3RhdHVzO1xuXG4gIGNvbnN0cnVjdG9yKHN0b3JlOiBTdG9yZSkge1xuICAgIHN1cGVyKHN0b3JlKTtcblxuICAgIHRoaXMud2F0Y2goKHMpID0+IHNlbGVjdFJlbW90ZURhdGFTdGF0ZShzKSkuc3Vic2NyaWJlKChzdGF0ZSkgPT4ge1xuICAgICAgY29uc3QgY2FjaGVzOiBDYWNoZVtdID0gT2JqZWN0LmtleXMoc3RhdGUpLm1hcCgoa2V5KSA9PiAoe1xuICAgICAgICBrZXksXG4gICAgICAgIHZhbHVlOiBzdGF0ZVtrZXldXG4gICAgICB9KSk7XG4gICAgICB0aGlzLl9jYWNoZXMkLm5leHQoY2FjaGVzKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2FjaGVzJCgpOiBPYnNlcnZhYmxlPENhY2hlW10+IHtcbiAgICByZXR1cm4gdGhpcy5fY2FjaGVzJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uVHlwZShSZW1vdGVEYXRhQWN0aW9uVHlwZS5jbG9zZUNhY2hlc0NvbXBvbmVudCk7XG4gIH1cblxuICBwdWJsaWMgcmVsb2FkQ2FjaGUoY2FjaGU6IENhY2hlKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbihuZXcgTG9hZFJlbW90ZURhdGFBY3Rpb24oY2FjaGUua2V5LCB7IGZvcmNlUmVsb2FkOiB0cnVlLCBrZWVwU3RvcmVkR2V0dGVyUGFyYW1zOiB0cnVlIH0pKTtcbiAgfVxufVxuIiwiPGgxIG1hdC1kaWFsb2ctdGl0bGU+TGlzdCBvZiBjYWNoZXM8L2gxPlxuPG1hdC1kaWFsb2ctY29udGVudCBjbGFzcz1cImZsZXgtY29sdW1uLXN0cmV0Y2ggZnhGbGV4XCI+XG4gICAgPG1hdC10YWJsZSBbZGF0YVNvdXJjZV09XCJjYWNoZXMkXCIgY2xhc3M9XCJmeEZsZXhcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJhY3Rpb25zXCI+XG4gICAgICAgICAgICA8bWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiA8L21hdC1oZWFkZXItY2VsbD5cbiAgICAgICAgICAgIDxtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW2Rpc2FibGVkXT1cImVsZW1lbnQudmFsdWUuc3RhdHVzID09PSBkYXRhU3RhdHVzLmxvYWRpbmdcIiAoY2xpY2spPVwicmVsb2FkQ2FjaGUoZWxlbWVudClcIiBjb2xvcj1cInByaW1hcnlcIiBpZD1cInJlbG9hZF97e2VsZW1lbnQua2V5fX1cIj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiZmEtc29saWQgZmEtcm90YXRlLXJpZ2h0XCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvbWF0LWNlbGw+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwia2V5XCI+XG4gICAgICAgICAgICA8bWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBLZXkgPC9tYXQtaGVhZGVyLWNlbGw+XG4gICAgICAgICAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiPiB7e2VsZW1lbnQua2V5fX0gPC9tYXQtY2VsbD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJzdGF0dXNcIj5cbiAgICAgICAgICAgIDxtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IFN0YXR1cyA8L21hdC1oZWFkZXItY2VsbD5cbiAgICAgICAgICAgIDxtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50XCI+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IFtuZ1N3aXRjaF09XCJlbGVtZW50LnZhbHVlLnN0YXR1c1wiPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gKm5nU3dpdGNoQ2FzZT1cImRhdGFTdGF0dXMubm9uZVwiIGNsYXNzPVwiZmEtc29saWQgZmEtbWludXNcIj48L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gKm5nU3dpdGNoQ2FzZT1cImRhdGFTdGF0dXMubG9hZGVkXCIgY2xhc3M9XCJmYS1zb2xpZCBmYS1jaGVja1wiIGNvbG9yPVwicHJpbWFyeVwiPjwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiAqbmdTd2l0Y2hDYXNlPVwiZGF0YVN0YXR1cy5lcnJvclwiIGNsYXNzPVwiZmEtc29saWQgZmEteG1hcmtcIiBjb2xvcj1cIndhcm5cIj48L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gKm5nU3dpdGNoQ2FzZT1cImRhdGFTdGF0dXMubm90Rm91bmRcIiBjbGFzcz1cImZhLXNvbGlkIGZhLXhtYXJrXCIgY29sb3I9XCJ3YXJuXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1zcGlubmVyIFtkaWFtZXRlcl09XCIyMFwiICpuZ1N3aXRjaENhc2U9XCJkYXRhU3RhdHVzLmxvYWRpbmdcIj48L21hdC1zcGlubmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8L21hdC1jZWxsPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInRpbWVzdGFtcFwiPlxuICAgICAgICAgICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gVGltZXN0YW1wIDwvbWF0LWhlYWRlci1jZWxsPlxuICAgICAgICAgICAgPG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGVsZW1lbnRcIj4ge3tlbGVtZW50LnZhbHVlLnRpbWVzdGFtcH19IDwvbWF0LWNlbGw+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiWydhY3Rpb25zJywgJ3N0YXR1cycsICdrZXknLCAndGltZXN0YW1wJ107IHN0aWNreTogdHJ1ZVwiPjwvbWF0LWhlYWRlci1yb3c+XG4gICAgICAgIDxtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBbJ2FjdGlvbnMnLCAnc3RhdHVzJywgJ2tleScsICd0aW1lc3RhbXAnXVwiPjwvbWF0LXJvdz5cbiAgICA8L21hdC10YWJsZT5cbjwvbWF0LWRpYWxvZy1jb250ZW50PlxuPG1hdC1kaWFsb2ctYWN0aW9ucyBjbGFzcz1cImZsZXgtcm93LWNlbnRlclwiPlxuICAgIDxzcGFuIGNsYXNzPVwiZnhGbGV4XCI+PC9zcGFuPlxuICAgIDxidXR0b24gbWF0LWJ1dHRvbiAoY2xpY2spPVwiY2xvc2UoKVwiIGlkPVwiY2xvc2VCdXR0b25cIj5DbG9zZTwvYnV0dG9uPlxuPC9tYXQtZGlhbG9nLWFjdGlvbnM+Il19
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Component, ChangeDetectionStrategy } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
4
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
5
|
+
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
6
|
+
import { NgSsmComponent } from 'ngssm-store';
|
|
7
|
+
import { RemoteDataActionType } from '../../actions';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "ngssm-store";
|
|
10
|
+
import * as i2 from "@angular/material/button";
|
|
11
|
+
import * as i3 from "@angular/material/icon";
|
|
12
|
+
import * as i4 from "@angular/material/tooltip";
|
|
13
|
+
class NgssmCachesDisplayButtonComponent extends NgSsmComponent {
|
|
14
|
+
constructor(store) {
|
|
15
|
+
super(store);
|
|
16
|
+
}
|
|
17
|
+
displayCaches() {
|
|
18
|
+
this.dispatchActionType(RemoteDataActionType.displayCaches);
|
|
19
|
+
}
|
|
20
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgssmCachesDisplayButtonComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
21
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: NgssmCachesDisplayButtonComponent, isStandalone: true, selector: "ngssm-caches-display-button", usesInheritance: true, ngImport: i0, template: "<button mat-icon-button matTooltip=\"Display caches\" (click)=\"displayCaches()\">\n <mat-icon class=\"fa-solid fa-cloud-bolt\"></mat-icon>\n</button>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
22
|
+
}
|
|
23
|
+
export { NgssmCachesDisplayButtonComponent };
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgssmCachesDisplayButtonComponent, decorators: [{
|
|
25
|
+
type: Component,
|
|
26
|
+
args: [{ selector: 'ngssm-caches-display-button', standalone: true, imports: [CommonModule, MatButtonModule, MatIconModule, MatTooltipModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<button mat-icon-button matTooltip=\"Display caches\" (click)=\"displayCaches()\">\n <mat-icon class=\"fa-solid fa-cloud-bolt\"></mat-icon>\n</button>\n" }]
|
|
27
|
+
}], ctorParameters: function () { return [{ type: i1.Store }]; } });
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tY2FjaGVzLWRpc3BsYXktYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXJlbW90ZS1kYXRhL3NyYy9saWIvcmVtb3RlLWRhdGEvY29tcG9uZW50cy9uZ3NzbS1jYWNoZXMtZGlzcGxheS1idXR0b24vbmdzc20tY2FjaGVzLWRpc3BsYXktYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXJlbW90ZS1kYXRhL3NyYy9saWIvcmVtb3RlLWRhdGEvY29tcG9uZW50cy9uZ3NzbS1jYWNoZXMtZGlzcGxheS1idXR0b24vbmdzc20tY2FjaGVzLWRpc3BsYXktYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFN0QsT0FBTyxFQUFFLGNBQWMsRUFBUyxNQUFNLGFBQWEsQ0FBQztBQUVwRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQUVyRCxNQVFhLGlDQUFrQyxTQUFRLGNBQWM7SUFDbkUsWUFBWSxLQUFZO1FBQ3RCLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNmLENBQUM7SUFFTSxhQUFhO1FBQ2xCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM5RCxDQUFDOzhHQVBVLGlDQUFpQztrR0FBakMsaUNBQWlDLDhHQ2xCOUMsNkpBR0EseUREVVksWUFBWSw4QkFBRSxlQUFlLDJMQUFFLGFBQWEsbUxBQUUsZ0JBQWdCOztTQUs3RCxpQ0FBaUM7MkZBQWpDLGlDQUFpQztrQkFSN0MsU0FBUzsrQkFDRSw2QkFBNkIsY0FDM0IsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsbUJBR3hELHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcblxuaW1wb3J0IHsgTmdTc21Db21wb25lbnQsIFN0b3JlIH0gZnJvbSAnbmdzc20tc3RvcmUnO1xuXG5pbXBvcnQgeyBSZW1vdGVEYXRhQWN0aW9uVHlwZSB9IGZyb20gJy4uLy4uL2FjdGlvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZ3NzbS1jYWNoZXMtZGlzcGxheS1idXR0b24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGUsIE1hdEljb25Nb2R1bGUsIE1hdFRvb2x0aXBNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vbmdzc20tY2FjaGVzLWRpc3BsYXktYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbmdzc20tY2FjaGVzLWRpc3BsYXktYnV0dG9uLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE5nc3NtQ2FjaGVzRGlzcGxheUJ1dHRvbkNvbXBvbmVudCBleHRlbmRzIE5nU3NtQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3Ioc3RvcmU6IFN0b3JlKSB7XG4gICAgc3VwZXIoc3RvcmUpO1xuICB9XG5cbiAgcHVibGljIGRpc3BsYXlDYWNoZXMoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvblR5cGUoUmVtb3RlRGF0YUFjdGlvblR5cGUuZGlzcGxheUNhY2hlcyk7XG4gIH1cbn1cbiIsIjxidXR0b24gbWF0LWljb24tYnV0dG9uIG1hdFRvb2x0aXA9XCJEaXNwbGF5IGNhY2hlc1wiIChjbGljayk9XCJkaXNwbGF5Q2FjaGVzKClcIj5cbiAgICA8bWF0LWljb24gY2xhc3M9XCJmYS1zb2xpZCBmYS1jbG91ZC1ib2x0XCI+PC9tYXQtaWNvbj5cbjwvYnV0dG9uPlxuIl19
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { Directive, Input } from '@angular/core';
|
|
2
|
+
import { combineLatest } from 'rxjs';
|
|
3
|
+
import { NgSsmComponent } from 'ngssm-store';
|
|
4
|
+
import { NgssmOverlayBuilder } from 'ngssm-toolkit';
|
|
5
|
+
import { DataStatus } from '../model';
|
|
6
|
+
import { selectRemoteData } from '../state';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "ngssm-store";
|
|
9
|
+
import * as i2 from "ngssm-toolkit";
|
|
10
|
+
class NgssmRemoteDataOverlayDirective extends NgSsmComponent {
|
|
11
|
+
constructor(store, overlyBuilder) {
|
|
12
|
+
super(store);
|
|
13
|
+
this.overlyBuilder = overlyBuilder;
|
|
14
|
+
this.isDisplayed = false;
|
|
15
|
+
this.unsubscribeAll$.subscribe(() => this.overlyBuilder.hideOverlay());
|
|
16
|
+
}
|
|
17
|
+
set ngssmRemoteDataOverlay(values) {
|
|
18
|
+
this.subscription?.unsubscribe();
|
|
19
|
+
this.subscription = undefined;
|
|
20
|
+
if (values.length > 0) {
|
|
21
|
+
this.subscription = combineLatest(values.map((v) => this.watch((s) => selectRemoteData(s, v)))).subscribe((v) => {
|
|
22
|
+
if (v.map((w) => w?.status).includes(DataStatus.loading)) {
|
|
23
|
+
if (!this.isDisplayed) {
|
|
24
|
+
this.overlyBuilder.showOverlay();
|
|
25
|
+
this.isDisplayed = true;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
if (this.isDisplayed) {
|
|
30
|
+
this.overlyBuilder.hideOverlay();
|
|
31
|
+
this.isDisplayed = false;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgssmRemoteDataOverlayDirective, deps: [{ token: i1.Store }, { token: i2.NgssmOverlayBuilder }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
38
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0", type: NgssmRemoteDataOverlayDirective, isStandalone: true, selector: "[ngssmRemoteDataOverlay]", inputs: { ngssmRemoteDataOverlay: "ngssmRemoteDataOverlay" }, providers: [NgssmOverlayBuilder], usesInheritance: true, ngImport: i0 }); }
|
|
39
|
+
}
|
|
40
|
+
export { NgssmRemoteDataOverlayDirective };
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgssmRemoteDataOverlayDirective, decorators: [{
|
|
42
|
+
type: Directive,
|
|
43
|
+
args: [{
|
|
44
|
+
selector: '[ngssmRemoteDataOverlay]',
|
|
45
|
+
standalone: true,
|
|
46
|
+
providers: [NgssmOverlayBuilder]
|
|
47
|
+
}]
|
|
48
|
+
}], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.NgssmOverlayBuilder }]; }, propDecorators: { ngssmRemoteDataOverlay: [{
|
|
49
|
+
type: Input
|
|
50
|
+
}] } });
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tcmVtb3RlLWRhdGEtb3ZlcmxheS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1yZW1vdGUtZGF0YS9zcmMvbGliL3JlbW90ZS1kYXRhL2NvbXBvbmVudHMvbmdzc20tcmVtb3RlLWRhdGEtb3ZlcmxheS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFFbkQsT0FBTyxFQUFFLGNBQWMsRUFBUyxNQUFNLGFBQWEsQ0FBQztBQUNwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN0QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7QUFFNUMsTUFLYSwrQkFBZ0MsU0FBUSxjQUFjO0lBSWpFLFlBQVksS0FBWSxFQUFVLGFBQWtDO1FBQ2xFLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQURtQixrQkFBYSxHQUFiLGFBQWEsQ0FBcUI7UUFGNUQsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFJMUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRCxJQUFhLHNCQUFzQixDQUFDLE1BQWdCO1FBQ2xELElBQUksQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUM7UUFDOUIsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNyQixJQUFJLENBQUMsWUFBWSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQzlHLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQ3hELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO3dCQUNyQixJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO3dCQUNqQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztxQkFDekI7aUJBQ0Y7cUJBQU07b0JBQ0wsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO3dCQUNwQixJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO3dCQUNqQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztxQkFDMUI7aUJBQ0Y7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs4R0EzQlUsK0JBQStCO2tHQUEvQiwrQkFBK0IscUlBRi9CLENBQUMsbUJBQW1CLENBQUM7O1NBRXJCLCtCQUErQjsyRkFBL0IsK0JBQStCO2tCQUwzQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwwQkFBMEI7b0JBQ3BDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztpQkFDakM7OEhBVWMsc0JBQXNCO3NCQUFsQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IE5nU3NtQ29tcG9uZW50LCBTdG9yZSB9IGZyb20gJ25nc3NtLXN0b3JlJztcbmltcG9ydCB7IE5nc3NtT3ZlcmxheUJ1aWxkZXIgfSBmcm9tICduZ3NzbS10b29sa2l0JztcblxuaW1wb3J0IHsgRGF0YVN0YXR1cyB9IGZyb20gJy4uL21vZGVsJztcbmltcG9ydCB7IHNlbGVjdFJlbW90ZURhdGEgfSBmcm9tICcuLi9zdGF0ZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tuZ3NzbVJlbW90ZURhdGFPdmVybGF5XScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHByb3ZpZGVyczogW05nc3NtT3ZlcmxheUJ1aWxkZXJdXG59KVxuZXhwb3J0IGNsYXNzIE5nc3NtUmVtb3RlRGF0YU92ZXJsYXlEaXJlY3RpdmUgZXh0ZW5kcyBOZ1NzbUNvbXBvbmVudCB7XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgaXNEaXNwbGF5ZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihzdG9yZTogU3RvcmUsIHByaXZhdGUgb3Zlcmx5QnVpbGRlcjogTmdzc21PdmVybGF5QnVpbGRlcikge1xuICAgIHN1cGVyKHN0b3JlKTtcbiAgICB0aGlzLnVuc3Vic2NyaWJlQWxsJC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vdmVybHlCdWlsZGVyLmhpZGVPdmVybGF5KCkpO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IG5nc3NtUmVtb3RlRGF0YU92ZXJsYXkodmFsdWVzOiBzdHJpbmdbXSkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdW5kZWZpbmVkO1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSBjb21iaW5lTGF0ZXN0KHZhbHVlcy5tYXAoKHYpID0+IHRoaXMud2F0Y2goKHMpID0+IHNlbGVjdFJlbW90ZURhdGEocywgdikpKSkuc3Vic2NyaWJlKCh2KSA9PiB7XG4gICAgICAgIGlmICh2Lm1hcCgodykgPT4gdz8uc3RhdHVzKS5pbmNsdWRlcyhEYXRhU3RhdHVzLmxvYWRpbmcpKSB7XG4gICAgICAgICAgaWYgKCF0aGlzLmlzRGlzcGxheWVkKSB7XG4gICAgICAgICAgICB0aGlzLm92ZXJseUJ1aWxkZXIuc2hvd092ZXJsYXkoKTtcbiAgICAgICAgICAgIHRoaXMuaXNEaXNwbGF5ZWQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAodGhpcy5pc0Rpc3BsYXllZCkge1xuICAgICAgICAgICAgdGhpcy5vdmVybHlCdWlsZGVyLmhpZGVPdmVybGF5KCk7XG4gICAgICAgICAgICB0aGlzLmlzRGlzcGxheWVkID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { Component, ChangeDetectionStrategy, Input } from '@angular/core';
|
|
2
|
+
import { CommonModule, DatePipe } from '@angular/common';
|
|
3
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
4
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
5
|
+
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
6
|
+
import { BehaviorSubject, combineLatest } from 'rxjs';
|
|
7
|
+
import { NgSsmComponent } from 'ngssm-store';
|
|
8
|
+
import { LoadRemoteDataAction } from '../../actions';
|
|
9
|
+
import { selectRemoteDataState } from '../../state';
|
|
10
|
+
import { DataStatus } from '../../model';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
import * as i1 from "ngssm-store";
|
|
13
|
+
import * as i2 from "@angular/common";
|
|
14
|
+
import * as i3 from "@angular/material/icon";
|
|
15
|
+
import * as i4 from "@angular/material/button";
|
|
16
|
+
import * as i5 from "@angular/material/tooltip";
|
|
17
|
+
const datePipe = new DatePipe('en-US');
|
|
18
|
+
class NgssmRemoteDataReloadButtonComponent extends NgSsmComponent {
|
|
19
|
+
constructor(store) {
|
|
20
|
+
super(store);
|
|
21
|
+
this._remoteDataKey$ = new BehaviorSubject('');
|
|
22
|
+
this._tooltipMessage$ = new BehaviorSubject('');
|
|
23
|
+
this._disabled$ = new BehaviorSubject(false);
|
|
24
|
+
this.actionTypes = [];
|
|
25
|
+
combineLatest([this.watch((s) => selectRemoteDataState(s)), this._remoteDataKey$]).subscribe((values) => {
|
|
26
|
+
let tooltiMessage = 'Reload data.';
|
|
27
|
+
let disabled = true;
|
|
28
|
+
if (values[1]) {
|
|
29
|
+
const timestamp = values[0][values[1]]?.timestamp;
|
|
30
|
+
if (timestamp) {
|
|
31
|
+
tooltiMessage = [tooltiMessage, `Loaded at ${datePipe.transform(timestamp, 'mediumTime')}`].join('\n');
|
|
32
|
+
}
|
|
33
|
+
disabled = (values[0][values[1]]?.status ?? DataStatus.loading) === DataStatus.loading;
|
|
34
|
+
}
|
|
35
|
+
this._tooltipMessage$.next(tooltiMessage);
|
|
36
|
+
this._disabled$.next(disabled);
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
set remoteDataKey(value) {
|
|
40
|
+
this._remoteDataKey$.next(value);
|
|
41
|
+
}
|
|
42
|
+
get tooltipMessage$() {
|
|
43
|
+
return this._tooltipMessage$.asObservable();
|
|
44
|
+
}
|
|
45
|
+
get disabled$() {
|
|
46
|
+
return this._disabled$.asObservable();
|
|
47
|
+
}
|
|
48
|
+
reload() {
|
|
49
|
+
this.dispatchAction(new LoadRemoteDataAction(this._remoteDataKey$.getValue(), { forceReload: true, keepStoredGetterParams: true }));
|
|
50
|
+
(this.actionTypes ?? []).forEach((type) => this.dispatchActionType(type));
|
|
51
|
+
}
|
|
52
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgssmRemoteDataReloadButtonComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
53
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.0", type: NgssmRemoteDataReloadButtonComponent, isStandalone: true, selector: "ngssm-remote-data-reload-button", inputs: { actionTypes: "actionTypes", remoteDataKey: "remoteDataKey" }, usesInheritance: true, ngImport: i0, template: "<button mat-icon-button color=\"primary\" (click)=\"reload()\" [matTooltip]=\"(tooltipMessage$ | async) ?? 'Reload'\"\n [disabled]=\"disabled$ | async\">\n <mat-icon class=\"fa-solid fa-rotate-right\"></mat-icon>\n</button>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
54
|
+
}
|
|
55
|
+
export { NgssmRemoteDataReloadButtonComponent };
|
|
56
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: NgssmRemoteDataReloadButtonComponent, decorators: [{
|
|
57
|
+
type: Component,
|
|
58
|
+
args: [{ selector: 'ngssm-remote-data-reload-button', standalone: true, imports: [CommonModule, MatIconModule, MatButtonModule, MatTooltipModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<button mat-icon-button color=\"primary\" (click)=\"reload()\" [matTooltip]=\"(tooltipMessage$ | async) ?? 'Reload'\"\n [disabled]=\"disabled$ | async\">\n <mat-icon class=\"fa-solid fa-rotate-right\"></mat-icon>\n</button>" }]
|
|
59
|
+
}], ctorParameters: function () { return [{ type: i1.Store }]; }, propDecorators: { actionTypes: [{
|
|
60
|
+
type: Input
|
|
61
|
+
}], remoteDataKey: [{
|
|
62
|
+
type: Input
|
|
63
|
+
}] } });
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdzc20tcmVtb3RlLWRhdGEtcmVsb2FkLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3NzbS1yZW1vdGUtZGF0YS9zcmMvbGliL3JlbW90ZS1kYXRhL2NvbXBvbmVudHMvbmdzc20tcmVtb3RlLWRhdGEtcmVsb2FkLWJ1dHRvbi9uZ3NzbS1yZW1vdGUtZGF0YS1yZWxvYWQtYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nc3NtLXJlbW90ZS1kYXRhL3NyYy9saWIvcmVtb3RlLWRhdGEvY29tcG9uZW50cy9uZ3NzbS1yZW1vdGUtZGF0YS1yZWxvYWQtYnV0dG9uL25nc3NtLXJlbW90ZS1kYXRhLXJlbG9hZC1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRWxFLE9BQU8sRUFBRSxjQUFjLEVBQVMsTUFBTSxhQUFhLENBQUM7QUFFcEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7Ozs7O0FBRXpDLE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBRXZDLE1BUWEsb0NBQXFDLFNBQVEsY0FBYztJQU90RSxZQUFZLEtBQVk7UUFDdEIsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBUEUsb0JBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUNsRCxxQkFBZ0IsR0FBRyxJQUFJLGVBQWUsQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUNuRCxlQUFVLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFFekQsZ0JBQVcsR0FBYSxFQUFFLENBQUM7UUFJbEMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUN0RyxJQUFJLGFBQWEsR0FBRyxjQUFjLENBQUM7WUFDbkMsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDO1lBQ3BCLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNiLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUM7Z0JBQ2xELElBQUksU0FBUyxFQUFFO29CQUNiLGFBQWEsR0FBRyxDQUFDLGFBQWEsRUFBRSxhQUFhLFFBQVEsQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ3hHO2dCQUVELFFBQVEsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFVBQVUsQ0FBQyxPQUFPLENBQUM7YUFDeEY7WUFFRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQWEsYUFBYSxDQUFDLEtBQWE7UUFDdEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQVcsZUFBZTtRQUN4QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRU0sTUFBTTtRQUNYLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxzQkFBc0IsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFcEksQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDNUUsQ0FBQzs4R0ExQ1Usb0NBQW9DO2tHQUFwQyxvQ0FBb0MsMExDdkJqRCx1T0FHUyx5RERlRyxZQUFZLG1GQUFFLGFBQWEsbUxBQUUsZUFBZSwyTEFBRSxnQkFBZ0I7O1NBSzdELG9DQUFvQzsyRkFBcEMsb0NBQW9DO2tCQVJoRCxTQUFTOytCQUNFLGlDQUFpQyxjQUMvQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsQ0FBQyxtQkFHeEQsdUJBQXVCLENBQUMsTUFBTTs0RkFPdEMsV0FBVztzQkFBbkIsS0FBSztnQkFxQk8sYUFBYTtzQkFBekIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgTmdTc21Db21wb25lbnQsIFN0b3JlIH0gZnJvbSAnbmdzc20tc3RvcmUnO1xuXG5pbXBvcnQgeyBMb2FkUmVtb3RlRGF0YUFjdGlvbiB9IGZyb20gJy4uLy4uL2FjdGlvbnMnO1xuaW1wb3J0IHsgc2VsZWN0UmVtb3RlRGF0YVN0YXRlIH0gZnJvbSAnLi4vLi4vc3RhdGUnO1xuaW1wb3J0IHsgRGF0YVN0YXR1cyB9IGZyb20gJy4uLy4uL21vZGVsJztcblxuY29uc3QgZGF0ZVBpcGUgPSBuZXcgRGF0ZVBpcGUoJ2VuLVVTJyk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ25nc3NtLXJlbW90ZS1kYXRhLXJlbG9hZC1idXR0b24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRJY29uTW9kdWxlLCBNYXRCdXR0b25Nb2R1bGUsIE1hdFRvb2x0aXBNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vbmdzc20tcmVtb3RlLWRhdGEtcmVsb2FkLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL25nc3NtLXJlbW90ZS1kYXRhLXJlbG9hZC1idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTmdzc21SZW1vdGVEYXRhUmVsb2FkQnV0dG9uQ29tcG9uZW50IGV4dGVuZHMgTmdTc21Db21wb25lbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IF9yZW1vdGVEYXRhS2V5JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3Rvb2x0aXBNZXNzYWdlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rpc2FibGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIEBJbnB1dCgpIGFjdGlvblR5cGVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHN0b3JlOiBTdG9yZSkge1xuICAgIHN1cGVyKHN0b3JlKTtcbiAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLndhdGNoKChzKSA9PiBzZWxlY3RSZW1vdGVEYXRhU3RhdGUocykpLCB0aGlzLl9yZW1vdGVEYXRhS2V5JF0pLnN1YnNjcmliZSgodmFsdWVzKSA9PiB7XG4gICAgICBsZXQgdG9vbHRpTWVzc2FnZSA9ICdSZWxvYWQgZGF0YS4nO1xuICAgICAgbGV0IGRpc2FibGVkID0gdHJ1ZTtcbiAgICAgIGlmICh2YWx1ZXNbMV0pIHtcbiAgICAgICAgY29uc3QgdGltZXN0YW1wID0gdmFsdWVzWzBdW3ZhbHVlc1sxXV0/LnRpbWVzdGFtcDtcbiAgICAgICAgaWYgKHRpbWVzdGFtcCkge1xuICAgICAgICAgIHRvb2x0aU1lc3NhZ2UgPSBbdG9vbHRpTWVzc2FnZSwgYExvYWRlZCBhdCAke2RhdGVQaXBlLnRyYW5zZm9ybSh0aW1lc3RhbXAsICdtZWRpdW1UaW1lJyl9YF0uam9pbignXFxuJyk7XG4gICAgICAgIH1cblxuICAgICAgICBkaXNhYmxlZCA9ICh2YWx1ZXNbMF1bdmFsdWVzWzFdXT8uc3RhdHVzID8/IERhdGFTdGF0dXMubG9hZGluZykgPT09IERhdGFTdGF0dXMubG9hZGluZztcbiAgICAgIH1cblxuICAgICAgdGhpcy5fdG9vbHRpcE1lc3NhZ2UkLm5leHQodG9vbHRpTWVzc2FnZSk7XG4gICAgICB0aGlzLl9kaXNhYmxlZCQubmV4dChkaXNhYmxlZCk7XG4gICAgfSk7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgcmVtb3RlRGF0YUtleSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fcmVtb3RlRGF0YUtleSQubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRvb2x0aXBNZXNzYWdlJCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLl90b29sdGlwTWVzc2FnZSQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRpc2FibGVkJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIHJlbG9hZCgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKG5ldyBMb2FkUmVtb3RlRGF0YUFjdGlvbih0aGlzLl9yZW1vdGVEYXRhS2V5JC5nZXRWYWx1ZSgpLCB7IGZvcmNlUmVsb2FkOiB0cnVlLCBrZWVwU3RvcmVkR2V0dGVyUGFyYW1zOiB0cnVlIH0pKTtcblxuICAgICh0aGlzLmFjdGlvblR5cGVzID8/IFtdKS5mb3JFYWNoKCh0eXBlKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uVHlwZSh0eXBlKSk7XG4gIH1cbn1cbiIsIjxidXR0b24gbWF0LWljb24tYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIChjbGljayk9XCJyZWxvYWQoKVwiIFttYXRUb29sdGlwXT1cIih0b29sdGlwTWVzc2FnZSQgfCBhc3luYykgPz8gJ1JlbG9hZCdcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCQgfCBhc3luY1wiPlxuICAgIDxtYXQtaWNvbiBjbGFzcz1cImZhLXNvbGlkIGZhLXJvdGF0ZS1yaWdodFwiPjwvbWF0LWljb24+XG48L2J1dHRvbj4iXX0=
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { NGSSM_EFFECT } from 'ngssm-store';
|
|
3
|
+
import { RemoteDataActionType } from '../actions';
|
|
4
|
+
import { NgssmCachesComponent } from '../components';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/material/dialog";
|
|
7
|
+
class CachesDisplayEffect {
|
|
8
|
+
constructor(matDialog) {
|
|
9
|
+
this.matDialog = matDialog;
|
|
10
|
+
this.processedActions = [RemoteDataActionType.displayCaches, RemoteDataActionType.closeCachesComponent];
|
|
11
|
+
}
|
|
12
|
+
processAction(store, state, action) {
|
|
13
|
+
switch (action.type) {
|
|
14
|
+
case RemoteDataActionType.displayCaches: {
|
|
15
|
+
this.dialog = this.matDialog.open(NgssmCachesComponent, {
|
|
16
|
+
disableClose: true
|
|
17
|
+
});
|
|
18
|
+
break;
|
|
19
|
+
}
|
|
20
|
+
case RemoteDataActionType.closeCachesComponent: {
|
|
21
|
+
this.dialog?.close();
|
|
22
|
+
this.dialog = undefined;
|
|
23
|
+
break;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: CachesDisplayEffect, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
28
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: CachesDisplayEffect }); }
|
|
29
|
+
}
|
|
30
|
+
export { CachesDisplayEffect };
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: CachesDisplayEffect, decorators: [{
|
|
32
|
+
type: Injectable
|
|
33
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialog }]; } });
|
|
34
|
+
export const cachesDisplayEffectProvider = {
|
|
35
|
+
provide: NGSSM_EFFECT,
|
|
36
|
+
useClass: CachesDisplayEffect,
|
|
37
|
+
multi: true
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGVzLWRpc3BsYXkuZWZmZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmdzc20tcmVtb3RlLWRhdGEvc3JjL2xpYi9yZW1vdGUtZGF0YS9lZmZlY3RzL2NhY2hlcy1kaXNwbGF5LmVmZmVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBR3JELE9BQU8sRUFBZ0MsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNsRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUVyRCxNQUNhLG1CQUFtQjtJQUs5QixZQUFvQixTQUFvQjtRQUFwQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBRnhCLHFCQUFnQixHQUFhLENBQUMsb0JBQW9CLENBQUMsYUFBYSxFQUFFLG9CQUFvQixDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFFbEYsQ0FBQztJQUVyQyxhQUFhLENBQUMsS0FBWSxFQUFFLEtBQVksRUFBRSxNQUFjO1FBQzdELFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRTtZQUNuQixLQUFLLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUN2QyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFO29CQUN0RCxZQUFZLEVBQUUsSUFBSTtpQkFDbkIsQ0FBQyxDQUFDO2dCQUVILE1BQU07YUFDUDtZQUVELEtBQUssb0JBQW9CLENBQUMsb0JBQW9CLENBQUMsQ0FBQztnQkFDOUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQztnQkFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7Z0JBRXhCLE1BQU07YUFDUDtTQUNGO0lBQ0gsQ0FBQzs4R0F4QlUsbUJBQW1CO2tIQUFuQixtQkFBbUI7O1NBQW5CLG1CQUFtQjsyRkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVOztBQTRCWCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBYTtJQUNuRCxPQUFPLEVBQUUsWUFBWTtJQUNyQixRQUFRLEVBQUUsbUJBQW1CO0lBQzdCLEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbmltcG9ydCB7IEVmZmVjdCwgU3RvcmUsIFN0YXRlLCBBY3Rpb24sIE5HU1NNX0VGRkVDVCB9IGZyb20gJ25nc3NtLXN0b3JlJztcbmltcG9ydCB7IFJlbW90ZURhdGFBY3Rpb25UeXBlIH0gZnJvbSAnLi4vYWN0aW9ucyc7XG5pbXBvcnQgeyBOZ3NzbUNhY2hlc0NvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ2FjaGVzRGlzcGxheUVmZmVjdCBpbXBsZW1lbnRzIEVmZmVjdCB7XG4gIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2dSZWY8Tmdzc21DYWNoZXNDb21wb25lbnQ+IHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyByZWFkb25seSBwcm9jZXNzZWRBY3Rpb25zOiBzdHJpbmdbXSA9IFtSZW1vdGVEYXRhQWN0aW9uVHlwZS5kaXNwbGF5Q2FjaGVzLCBSZW1vdGVEYXRhQWN0aW9uVHlwZS5jbG9zZUNhY2hlc0NvbXBvbmVudF07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtYXREaWFsb2c6IE1hdERpYWxvZykge31cblxuICBwdWJsaWMgcHJvY2Vzc0FjdGlvbihzdG9yZTogU3RvcmUsIHN0YXRlOiBTdGF0ZSwgYWN0aW9uOiBBY3Rpb24pOiB2b2lkIHtcbiAgICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgICBjYXNlIFJlbW90ZURhdGFBY3Rpb25UeXBlLmRpc3BsYXlDYWNoZXM6IHtcbiAgICAgICAgdGhpcy5kaWFsb2cgPSB0aGlzLm1hdERpYWxvZy5vcGVuKE5nc3NtQ2FjaGVzQ29tcG9uZW50LCB7XG4gICAgICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjYXNlIFJlbW90ZURhdGFBY3Rpb25UeXBlLmNsb3NlQ2FjaGVzQ29tcG9uZW50OiB7XG4gICAgICAgIHRoaXMuZGlhbG9nPy5jbG9zZSgpO1xuICAgICAgICB0aGlzLmRpYWxvZyA9IHVuZGVmaW5lZDtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGNhY2hlc0Rpc3BsYXlFZmZlY3RQcm92aWRlcjogUHJvdmlkZXIgPSB7XG4gIHByb3ZpZGU6IE5HU1NNX0VGRkVDVCxcbiAgdXNlQ2xhc3M6IENhY2hlc0Rpc3BsYXlFZmZlY3QsXG4gIG11bHRpOiB0cnVlXG59O1xuIl19
|