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.
Files changed (77) hide show
  1. package/esm2022/lib/ngssm-remote-call/components/ngssm-remote-call-error/ngssm-remote-call-error.component.mjs +45 -0
  2. package/esm2022/lib/ngssm-remote-call/components/ngssm-remote-call.directive.mjs +41 -0
  3. package/esm2022/lib/ngssm-remote-call/ngssm-remote-call-state-initializer.mjs +25 -0
  4. package/esm2022/lib/ngssm-remote-call/reducers/remote-call-setter.reducer.mjs +35 -0
  5. package/esm2022/lib/ngssm-remote-call/reducers/remote-call.reducer.mjs +51 -0
  6. package/esm2022/lib/ngssm-remote-call/state/ngssm-remote-call.state.mjs +22 -0
  7. package/esm2022/lib/remote-data/components/ngssm-caches/ngssm-caches.component.mjs +51 -0
  8. package/esm2022/lib/remote-data/components/ngssm-caches-display-button/ngssm-caches-display-button.component.mjs +28 -0
  9. package/esm2022/lib/remote-data/components/ngssm-remote-data-overlay.directive.mjs +51 -0
  10. package/esm2022/lib/remote-data/components/ngssm-remote-data-reload-button/ngssm-remote-data-reload-button.component.mjs +64 -0
  11. package/esm2022/lib/remote-data/effects/caches-display.effect.mjs +39 -0
  12. package/esm2022/lib/remote-data/effects/remote-data-loading.effect.mjs +54 -0
  13. package/esm2022/lib/remote-data/guards/remote-data-loading.guard.mjs +31 -0
  14. package/esm2022/lib/remote-data/reducers/remote-data.reducer.mjs +80 -0
  15. package/esm2022/lib/remote-data/remote-data-state-initializer.mjs +25 -0
  16. package/esm2022/lib/remote-data/state/remote-data.state.mjs +20 -0
  17. package/{fesm2020 → fesm2022}/ngssm-remote-data.mjs +48 -48
  18. package/{fesm2020 → fesm2022}/ngssm-remote-data.mjs.map +1 -1
  19. package/lib/ngssm-remote-call/components/ngssm-remote-call-error/ngssm-remote-call-error.component.d.ts +1 -1
  20. package/lib/ngssm-remote-call/components/ngssm-remote-call.directive.d.ts +1 -1
  21. package/lib/remote-data/components/ngssm-remote-data-overlay.directive.d.ts +1 -1
  22. package/lib/remote-data/components/ngssm-remote-data-reload-button/ngssm-remote-data-reload-button.component.d.ts +1 -1
  23. package/package.json +8 -14
  24. package/esm2020/lib/ngssm-remote-call/components/ngssm-remote-call-error/ngssm-remote-call-error.component.mjs +0 -44
  25. package/esm2020/lib/ngssm-remote-call/components/ngssm-remote-call.directive.mjs +0 -40
  26. package/esm2020/lib/ngssm-remote-call/ngssm-remote-call-state-initializer.mjs +0 -24
  27. package/esm2020/lib/ngssm-remote-call/reducers/remote-call-setter.reducer.mjs +0 -34
  28. package/esm2020/lib/ngssm-remote-call/reducers/remote-call.reducer.mjs +0 -50
  29. package/esm2020/lib/ngssm-remote-call/state/ngssm-remote-call.state.mjs +0 -22
  30. package/esm2020/lib/remote-data/components/ngssm-caches/ngssm-caches.component.mjs +0 -50
  31. package/esm2020/lib/remote-data/components/ngssm-caches-display-button/ngssm-caches-display-button.component.mjs +0 -27
  32. package/esm2020/lib/remote-data/components/ngssm-remote-data-overlay.directive.mjs +0 -50
  33. package/esm2020/lib/remote-data/components/ngssm-remote-data-reload-button/ngssm-remote-data-reload-button.component.mjs +0 -63
  34. package/esm2020/lib/remote-data/effects/caches-display.effect.mjs +0 -38
  35. package/esm2020/lib/remote-data/effects/remote-data-loading.effect.mjs +0 -53
  36. package/esm2020/lib/remote-data/guards/remote-data-loading.guard.mjs +0 -30
  37. package/esm2020/lib/remote-data/reducers/remote-data.reducer.mjs +0 -79
  38. package/esm2020/lib/remote-data/remote-data-state-initializer.mjs +0 -24
  39. package/esm2020/lib/remote-data/state/remote-data.state.mjs +0 -20
  40. package/fesm2015/ngssm-remote-data.mjs +0 -687
  41. package/fesm2015/ngssm-remote-data.mjs.map +0 -1
  42. /package/{esm2020 → esm2022}/lib/ngssm-remote-call/actions/index.mjs +0 -0
  43. /package/{esm2020 → esm2022}/lib/ngssm-remote-call/actions/ngssm-remote-call-action-type.mjs +0 -0
  44. /package/{esm2020 → esm2022}/lib/ngssm-remote-call/actions/ngssm-remote-call-result.action.mjs +0 -0
  45. /package/{esm2020 → esm2022}/lib/ngssm-remote-call/actions/set-remote-call.action.mjs +0 -0
  46. /package/{esm2020 → esm2022}/lib/ngssm-remote-call/components/index.mjs +0 -0
  47. /package/{esm2020 → esm2022}/lib/ngssm-remote-call/model/index.mjs +0 -0
  48. /package/{esm2020 → esm2022}/lib/ngssm-remote-call/model/remote-call-config.mjs +0 -0
  49. /package/{esm2020 → esm2022}/lib/ngssm-remote-call/model/remote-call-error.mjs +0 -0
  50. /package/{esm2020 → esm2022}/lib/ngssm-remote-call/model/remote-call-status.mjs +0 -0
  51. /package/{esm2020 → esm2022}/lib/ngssm-remote-call/model/remote-call.mjs +0 -0
  52. /package/{esm2020 → esm2022}/lib/ngssm-remote-call/ngssm-remote-call-routes.mjs +0 -0
  53. /package/{esm2020 → esm2022}/lib/ngssm-remote-call/provide-ngssm-remote-call-config.mjs +0 -0
  54. /package/{esm2020 → esm2022}/lib/ngssm-remote-call/provide-ngssm-remote-call.mjs +0 -0
  55. /package/{esm2020 → esm2022}/lib/ngssm-remote-call/public-api.mjs +0 -0
  56. /package/{esm2020 → esm2022}/lib/ngssm-remote-call/reducers/index.mjs +0 -0
  57. /package/{esm2020 → esm2022}/lib/ngssm-remote-call/state/index.mjs +0 -0
  58. /package/{esm2020 → esm2022}/lib/ngssm-remote-call/state/selectors.mjs +0 -0
  59. /package/{esm2020 → esm2022}/lib/remote-data/actions/index.mjs +0 -0
  60. /package/{esm2020 → esm2022}/lib/remote-data/actions/load-remote-data.action.mjs +0 -0
  61. /package/{esm2020 → esm2022}/lib/remote-data/actions/register-loaded-remote-data.action.mjs +0 -0
  62. /package/{esm2020 → esm2022}/lib/remote-data/actions/remote-data-action-type.mjs +0 -0
  63. /package/{esm2020 → esm2022}/lib/remote-data/components/index.mjs +0 -0
  64. /package/{esm2020 → esm2022}/lib/remote-data/effects/index.mjs +0 -0
  65. /package/{esm2020 → esm2022}/lib/remote-data/guards/index.mjs +0 -0
  66. /package/{esm2020 → esm2022}/lib/remote-data/model/data-status.mjs +0 -0
  67. /package/{esm2020 → esm2022}/lib/remote-data/model/index.mjs +0 -0
  68. /package/{esm2020 → esm2022}/lib/remote-data/model/reload-params.mjs +0 -0
  69. /package/{esm2020 → esm2022}/lib/remote-data/model/remote-data-getter-params.mjs +0 -0
  70. /package/{esm2020 → esm2022}/lib/remote-data/model/remote-data-provider.mjs +0 -0
  71. /package/{esm2020 → esm2022}/lib/remote-data/model/remote-data.mjs +0 -0
  72. /package/{esm2020 → esm2022}/lib/remote-data/provide-ngssm-remote-data.mjs +0 -0
  73. /package/{esm2020 → esm2022}/lib/remote-data/public-api.mjs +0 -0
  74. /package/{esm2020 → esm2022}/lib/remote-data/state/index.mjs +0 -0
  75. /package/{esm2020 → esm2022}/lib/remote-data/state/selectors.mjs +0 -0
  76. /package/{esm2020 → esm2022}/ngssm-remote-data.mjs +0 -0
  77. /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