@firestitch/system 18.0.45 → 18.0.46

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.
@@ -4,7 +4,12 @@ import { Observable } from 'rxjs';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class ApiLogsComponent implements OnInit {
6
6
  private _dialog;
7
+ private _api;
7
8
  list: FsListComponent;
9
+ /**
10
+ * Optional override. Left unset, the component reads the framework's own
11
+ * system/logs/api endpoint.
12
+ */
8
13
  loadApiLogs: (data: any) => Observable<{
9
14
  data: any[];
10
15
  paging: any;
@@ -14,6 +19,7 @@ export declare class ApiLogsComponent implements OnInit {
14
19
  ngOnInit(): void;
15
20
  open(apiLog: any): void;
16
21
  private _configList;
22
+ private _apiLogsGet;
17
23
  static ɵfac: i0.ɵɵFactoryDeclaration<ApiLogsComponent, never>;
18
24
  static ɵcmp: i0.ɵɵComponentDeclaration<ApiLogsComponent, "fs-system-api-logs", never, { "loadApiLogs": { "alias": "loadApiLogs"; "required": false; }; }, {}, never, never, true, never>;
19
25
  }
@@ -2,9 +2,15 @@ import { AfterViewInit, ElementRef } from '@angular/core';
2
2
  import { Observable } from 'rxjs';
3
3
  import * as i0 from "@angular/core";
4
4
  export declare class InfoComponent implements AfterViewInit {
5
+ private _api;
5
6
  iframe: ElementRef;
7
+ /**
8
+ * Optional override. Left unset, the component reads the framework's own
9
+ * system/info endpoint.
10
+ */
6
11
  load: () => Observable<any>;
7
12
  ngAfterViewInit(): void;
13
+ private _infoGet;
8
14
  private _load;
9
15
  static ɵfac: i0.ɵɵFactoryDeclaration<InfoComponent, never>;
10
16
  static ɵcmp: i0.ɵɵComponentDeclaration<InfoComponent, "fs-system-info", never, { "load": { "alias": "load"; "required": false; }; }, {}, never, never, true, never>;
@@ -6,6 +6,10 @@ export declare class ServerLogsComponent implements OnInit {
6
6
  private _dialog;
7
7
  private _api;
8
8
  list: FsListComponent;
9
+ /**
10
+ * Optional override. Left unset, the component reads the framework's own
11
+ * system/logs/server endpoint.
12
+ */
9
13
  loadLogs: (data: any) => Observable<{
10
14
  data: any[];
11
15
  paging: any;
@@ -18,6 +22,7 @@ export declare class ServerLogsComponent implements OnInit {
18
22
  toggleAcknowledged(log: any): void;
19
23
  open(log: any): void;
20
24
  private _configList;
25
+ private _logsGet;
21
26
  static ɵfac: i0.ɵɵFactoryDeclaration<ServerLogsComponent, never>;
22
27
  static ɵcmp: i0.ɵɵComponentDeclaration<ServerLogsComponent, "fs-system-server-logs", never, { "loadLogs": { "alias": "loadLogs"; "required": false; }; }, { "acknowledgedAll": "acknowledgedAll"; }, never, never, true, never>;
23
28
  }
@@ -1,4 +1,4 @@
1
- import { EventEmitter, OnInit } from '@angular/core';
1
+ import { OnInit } from '@angular/core';
2
2
  import { Observable } from 'rxjs';
3
3
  import { SettingInterfaceType } from '../../enums';
4
4
  import * as i0 from "@angular/core";
@@ -7,14 +7,17 @@ export declare class SettingsComponent implements OnInit {
7
7
  private _clipboard;
8
8
  private _prompt;
9
9
  private _dialog;
10
+ private _settingData;
10
11
  private _cdRef;
12
+ /**
13
+ * Optional overrides. The settings endpoints ship with the framework at a fixed
14
+ * path (system/settings), so when one of these is left unset the component calls
15
+ * that endpoint itself through SettingData and a consumer has to pass nothing.
16
+ */
11
17
  loadSettings: (query: any) => Observable<any[]>;
12
- save: (data: any, group: string) => Observable<any>;
13
- fileRemove: EventEmitter<any>;
14
- fileSelect: EventEmitter<{
15
- setting: any;
16
- file: Blob;
17
- }>;
18
+ save: (group: string, values: Record<string, any>) => Observable<any>;
19
+ fileUpload: (setting: any, file: Blob) => Observable<any>;
20
+ fileDelete: (setting: any) => Observable<any>;
18
21
  groupedSettings: any[];
19
22
  groups: any[];
20
23
  SettingInterfaceType: typeof SettingInterfaceType;
@@ -28,6 +31,17 @@ export declare class SettingsComponent implements OnInit {
28
31
  */
29
32
  openInstructions(setting: any): void;
30
33
  saveGroup(group: any): void;
34
+ /**
35
+ * The X on a file setting. Persisted on its own because the bulk save deliberately
36
+ * skips file settings — they have their own endpoint, and without this the field
37
+ * only cleared on screen while the file stayed.
38
+ */
39
+ removeFile(setting: any): void;
40
+ selectFile(setting: any, file: Blob): void;
41
+ private _loadSettings;
42
+ private _save;
43
+ private _fileUpload;
44
+ private _fileDelete;
31
45
  static ɵfac: i0.ɵɵFactoryDeclaration<SettingsComponent, never>;
32
- static ɵcmp: i0.ɵɵComponentDeclaration<SettingsComponent, "fs-system-settings", never, { "loadSettings": { "alias": "loadSettings"; "required": false; }; "save": { "alias": "save"; "required": false; }; }, { "fileRemove": "fileRemove"; "fileSelect": "fileSelect"; }, never, never, true, never>;
46
+ static ɵcmp: i0.ɵɵComponentDeclaration<SettingsComponent, "fs-system-settings", never, { "loadSettings": { "alias": "loadSettings"; "required": false; }; "save": { "alias": "save"; "required": false; }; "fileUpload": { "alias": "fileUpload"; "required": false; }; "fileDelete": { "alias": "fileDelete"; "required": false; }; }, {}, never, never, true, never>;
33
47
  }
@@ -3,7 +3,12 @@ import { FsListComponent, FsListConfig } from '@firestitch/list';
3
3
  import { Observable } from 'rxjs';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class UpgradeLogsComponent implements OnInit {
6
+ private _api;
6
7
  list: FsListComponent;
8
+ /**
9
+ * Optional override. Left unset, the component reads the framework's own
10
+ * system/logs/upgrade endpoint.
11
+ */
7
12
  loadUpgradeLogs: (data: any) => Observable<{
8
13
  data: any[];
9
14
  paging: any;
@@ -12,6 +17,7 @@ export declare class UpgradeLogsComponent implements OnInit {
12
17
  logTypes: any[];
13
18
  ngOnInit(): void;
14
19
  private _configList;
20
+ private _upgradeLogsGet;
15
21
  static ɵfac: i0.ɵɵFactoryDeclaration<UpgradeLogsComponent, never>;
16
22
  static ɵcmp: i0.ɵɵComponentDeclaration<UpgradeLogsComponent, "fs-system-upgrade-logs", never, { "loadUpgradeLogs": { "alias": "loadUpgradeLogs"; "required": false; }; }, {}, never, never, true, never>;
17
23
  }
@@ -0,0 +1,3 @@
1
+ export * from './cron.data';
2
+ export * from './process.data';
3
+ export * from './setting.data';
@@ -0,0 +1,12 @@
1
+ import { RequestConfig } from '@firestitch/api';
2
+ import { Observable } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export declare class SettingData {
5
+ private _api;
6
+ gets(data?: any, config?: RequestConfig): Observable<any>;
7
+ bulk(data?: any, config?: RequestConfig): Observable<any>;
8
+ fileUpload(settingId: number | string, data?: any, config?: RequestConfig): Observable<any>;
9
+ fileDelete(settingId: number | string, data?: any, config?: RequestConfig): Observable<any>;
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<SettingData, never>;
11
+ static ɵprov: i0.ɵɵInjectableDeclaration<SettingData>;
12
+ }
@@ -1,5 +1,6 @@
1
1
  import { ChangeDetectionStrategy, Component, Input, ViewChild, inject } from '@angular/core';
2
2
  import { MatDialog } from '@angular/material/dialog';
3
+ import { FsApi } from '@firestitch/api';
3
4
  import { ItemType } from '@firestitch/filter';
4
5
  import { FsListComponent, PaginationStrategy, FsListModule } from '@firestitch/list';
5
6
  import { map } from 'rxjs/operators';
@@ -14,7 +15,12 @@ import * as i1 from "@firestitch/list";
14
15
  import * as i2 from "@firestitch/date";
15
16
  export class ApiLogsComponent {
16
17
  _dialog = inject(MatDialog);
18
+ _api = inject(FsApi);
17
19
  list;
20
+ /**
21
+ * Optional override. Left unset, the component reads the framework's own
22
+ * system/logs/api endpoint.
23
+ */
18
24
  loadApiLogs;
19
25
  config = null;
20
26
  apiLogStates = indexNameValue(ApiLogStates);
@@ -51,12 +57,16 @@ export class ApiLogsComponent {
51
57
  },
52
58
  ],
53
59
  fetch: (query) => {
54
- Object.assign(query, {});
55
- return this.loadApiLogs(query)
56
- .pipe(map((response) => ({ data: response.data, paging: response.paging })));
60
+ return this._apiLogsGet(query);
57
61
  },
58
62
  };
59
63
  }
64
+ _apiLogsGet(query) {
65
+ return this.loadApiLogs
66
+ ? this.loadApiLogs(query)
67
+ : this._api.get('system/logs/api', query, { key: null })
68
+ .pipe(map((response) => ({ data: response.apiLogs, paging: response.paging })));
69
+ }
60
70
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ApiLogsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
61
71
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: ApiLogsComponent, isStandalone: true, selector: "fs-system-api-logs", inputs: { loadApiLogs: "loadApiLogs" }, viewQueries: [{ propertyName: "list", first: true, predicate: FsListComponent, descendants: true, static: true }], ngImport: i0, template: "<fs-list [config]=\"config\">\n <fs-list-column>\n <ng-template fs-list-header>Name</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n <a href=\"javascript:;\" (click)=\"open(row)\">\n {{row.type || 'Unknown'}}\n @if (row.direction=='outgoing') {\n <mat-icon class=\"direction\">arrow_upward</mat-icon>\n }\n @if (row.direction=='incoming') {\n <mat-icon class=\"direction\">arrow_downward</mat-icon>\n }\n </a>\n </ng-template>\n </fs-list-column>\n <fs-list-column>\n <ng-template fs-list-header>Status</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n {{apiLogStates[row.state]}}\n @if (row.code) {\n <span class=\"code\" [ngClass]=\"{'success': row.code==200,'error': row.code!=200 }\">[{{row.code}}]</span>\n }\n </ng-template>\n </fs-list-column>\n <fs-list-column>\n <ng-template fs-list-header>Message</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n {{row.message}}\n </ng-template>\n </fs-list-column>\n <fs-list-column>\n <ng-template fs-list-header>Date</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n <fs-date-ago [date]=\"row.createDate\"></fs-date-ago>\n <div>@if (row.length) {\n <small>Duration: {{ row.length | fsDateDuration }}</small>\n }</div>\n </ng-template>\n </fs-list-column>\n</fs-list>\n", styles: [".code.success{color:green}.code.error{color:red}.direction{font-size:14px;height:14px;line-height:14px;width:14px}\n"], dependencies: [{ kind: "ngmodule", type: FsListModule }, { kind: "component", type: i1.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { kind: "directive", type: i1.FsListColumnDirective, selector: "fs-list-column", inputs: ["show", "title", "name", "customizable", "sortable", "sortableDefault", "sortableDirection", "direction", "align", "width", "class"] }, { kind: "directive", type: i1.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }, { kind: "directive", type: i1.FsListHeaderDirective, selector: "[fs-list-header]", inputs: ["colspan", "align", "class"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FsDateModule }, { kind: "pipe", type: i2.FsDateDurationPipe, name: "fsDateDuration" }, { kind: "component", type: i2.FsDateAgoComponent, selector: "fs-date-ago", inputs: ["date", "showTime", "format", "showTooltip", "tooltipDateFormat"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
62
72
  }
@@ -74,4 +84,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
74
84
  }], loadApiLogs: [{
75
85
  type: Input
76
86
  }] } });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWxvZ3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL3N5c3RlbS9jb21wb25lbnRzL2FwaS1sb2dzL2FwaS1sb2dzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vY29tcG9uZW50cy9hcGktbG9ncy9hcGktbG9ncy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFFLGVBQWUsRUFBZ0Isa0JBQWtCLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHbkcsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7OztBQWdCaEQsTUFBTSxPQUFPLGdCQUFnQjtJQUNuQixPQUFPLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBSTdCLElBQUksQ0FBa0I7SUFFYixXQUFXLENBQTBEO0lBRTlFLE1BQU0sR0FBaUIsSUFBSSxDQUFDO0lBQzVCLFlBQVksR0FBRyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFNUMsUUFBUTtRQUNiLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRU0sSUFBSSxDQUFDLE1BQU07UUFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ2pDLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRTtZQUNoQixLQUFLLEVBQUUsS0FBSztTQUNiLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxXQUFXO1FBQ2pCLElBQUksQ0FBQyxNQUFNLEdBQUc7WUFDWixNQUFNLEVBQUU7Z0JBQ04sUUFBUSxFQUFFLGtCQUFrQixDQUFDLElBQUk7YUFDbEM7WUFDRCxPQUFPLEVBQUU7Z0JBQ1A7b0JBQ0UsSUFBSSxFQUFFLFFBQVEsQ0FBQyxPQUFPO29CQUN0QixJQUFJLEVBQUUsU0FBUztvQkFDZixLQUFLLEVBQUUsUUFBUTtpQkFDaEI7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFFLFFBQVEsQ0FBQyxNQUFNO29CQUNyQixJQUFJLEVBQUUsT0FBTztvQkFDYixLQUFLLEVBQUUsUUFBUTtvQkFDZixNQUFNLEVBQUUsWUFBWTtpQkFDckI7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFFLFlBQVk7b0JBQ2xCLElBQUksRUFBRSxRQUFRLENBQUMsU0FBUztvQkFDeEIsS0FBSyxFQUFFLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQztpQkFDaEM7YUFDRjtZQUNELEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNmLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUcsQ0FBQyxDQUFDO2dCQUUxQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO3FCQUMzQixJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQzNFLENBQUM7WUFDTixDQUFDO1NBQ0YsQ0FBQztJQUNKLENBQUM7dUdBdkRVLGdCQUFnQjsyRkFBaEIsZ0JBQWdCLDRKQUloQixlQUFlLDhEQ25DNUIsMjRDQXdDQSw2S0RmUSxZQUFZLHluQkFDWixPQUFPLDJJQUNQLE9BQU8sbUZBQ1AsWUFBWTs7MkZBR1AsZ0JBQWdCO2tCQWI1QixTQUFTOytCQUNJLG9CQUFvQixtQkFHYix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDTCxZQUFZO3dCQUNaLE9BQU87d0JBQ1AsT0FBTzt3QkFDUCxZQUFZO3FCQUNmOzhCQU9JLElBQUk7c0JBRFYsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUc1QixXQUFXO3NCQUExQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuaW1wb3J0IHsgSXRlbVR5cGUgfSBmcm9tICdAZmlyZXN0aXRjaC9maWx0ZXInO1xuaW1wb3J0IHsgRnNMaXN0Q29tcG9uZW50LCBGc0xpc3RDb25maWcsIFBhZ2luYXRpb25TdHJhdGVneSwgRnNMaXN0TW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvbGlzdCc7XG5cbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQXBpTG9nU3RhdGVzIH0gZnJvbSAnLi4vLi4vY29uc3RzJztcbmltcG9ydCB7IGluZGV4TmFtZVZhbHVlIH0gZnJvbSAnLi4vLi4vaGVscGVycy9pbmRleC1uYW1lLXZhbHVlJztcbmltcG9ydCB7IEFwaUxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2FwaS1sb2cvYXBpLWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGc0RhdGVNb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9kYXRlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZzLXN5c3RlbS1hcGktbG9ncycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FwaS1sb2dzLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9hcGktbG9ncy5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBGc0xpc3RNb2R1bGUsXG4gICAgICAgIE1hdEljb24sXG4gICAgICAgIE5nQ2xhc3MsXG4gICAgICAgIEZzRGF0ZU1vZHVsZSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBcGlMb2dzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSBfZGlhbG9nID0gaW5qZWN0KE1hdERpYWxvZyk7XG5cblxuICBAVmlld0NoaWxkKEZzTGlzdENvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHVibGljIGxpc3Q6IEZzTGlzdENvbXBvbmVudDtcblxuICBASW5wdXQoKSBwdWJsaWMgbG9hZEFwaUxvZ3M6IChkYXRhOiBhbnkpID0+IE9ic2VydmFibGU8eyBkYXRhOiBhbnlbXTsgcGFnaW5nOiBhbnkgfT47XG5cbiAgcHVibGljIGNvbmZpZzogRnNMaXN0Q29uZmlnID0gbnVsbDtcbiAgcHVibGljIGFwaUxvZ1N0YXRlcyA9IGluZGV4TmFtZVZhbHVlKEFwaUxvZ1N0YXRlcyk7XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMuX2NvbmZpZ0xpc3QoKTtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuKGFwaUxvZykge1xuICAgIHRoaXMuX2RpYWxvZy5vcGVuKEFwaUxvZ0NvbXBvbmVudCwge1xuICAgICAgZGF0YTogeyBhcGlMb2cgfSxcbiAgICAgIHdpZHRoOiAnODUlJyxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2NvbmZpZ0xpc3QoKSB7XG4gICAgdGhpcy5jb25maWcgPSB7XG4gICAgICBwYWdpbmc6IHtcbiAgICAgICAgc3RyYXRlZ3k6IFBhZ2luYXRpb25TdHJhdGVneS5NYW55LFxuICAgICAgfSxcbiAgICAgIGZpbHRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6IEl0ZW1UeXBlLktleXdvcmQsXG4gICAgICAgICAgbmFtZTogJ2tleXdvcmQnLFxuICAgICAgICAgIGxhYmVsOiAnU2VhcmNoJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6IEl0ZW1UeXBlLlNlbGVjdCxcbiAgICAgICAgICBuYW1lOiAnc3RhdGUnLFxuICAgICAgICAgIGxhYmVsOiAnU3RhdHVzJyxcbiAgICAgICAgICB2YWx1ZXM6IEFwaUxvZ1N0YXRlcyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdjcmVhdGVEYXRlJyxcbiAgICAgICAgICB0eXBlOiBJdGVtVHlwZS5EYXRlUmFuZ2UsXG4gICAgICAgICAgbGFiZWw6IFsnRnJvbSBEYXRlJywgJ1RvIERhdGUnXSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBmZXRjaDogKHF1ZXJ5KSA9PiB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24ocXVlcnksIHsgfSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZEFwaUxvZ3MocXVlcnkpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+ICh7IGRhdGE6IHJlc3BvbnNlLmRhdGEsIHBhZ2luZzogcmVzcG9uc2UucGFnaW5nIH0pKSxcbiAgICAgICAgICApO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG59XG4iLCI8ZnMtbGlzdCBbY29uZmlnXT1cImNvbmZpZ1wiPlxuICA8ZnMtbGlzdC1jb2x1bW4+XG4gICAgPG5nLXRlbXBsYXRlIGZzLWxpc3QtaGVhZGVyPk5hbWU8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWNlbGwgbGV0LXJvdz1cInJvd1wiPlxuICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6O1wiIChjbGljayk9XCJvcGVuKHJvdylcIj5cbiAgICAgICAge3tyb3cudHlwZSB8fCAnVW5rbm93bid9fVxuICAgICAgICBAaWYgKHJvdy5kaXJlY3Rpb249PSdvdXRnb2luZycpIHtcbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJkaXJlY3Rpb25cIj5hcnJvd191cHdhcmQ8L21hdC1pY29uPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAocm93LmRpcmVjdGlvbj09J2luY29taW5nJykge1xuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImRpcmVjdGlvblwiPmFycm93X2Rvd253YXJkPC9tYXQtaWNvbj5cbiAgICAgICAgfVxuICAgICAgPC9hPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZnMtbGlzdC1jb2x1bW4+XG4gIDxmcy1saXN0LWNvbHVtbj5cbiAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1oZWFkZXI+U3RhdHVzPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1jZWxsIGxldC1yb3c9XCJyb3dcIj5cbiAgICAgIHt7YXBpTG9nU3RhdGVzW3Jvdy5zdGF0ZV19fVxuICAgICAgQGlmIChyb3cuY29kZSkge1xuICAgICAgICA8c3BhbiBjbGFzcz1cImNvZGVcIiBbbmdDbGFzc109XCJ7J3N1Y2Nlc3MnOiByb3cuY29kZT09MjAwLCdlcnJvcic6IHJvdy5jb2RlIT0yMDAgfVwiPlt7e3Jvdy5jb2RlfX1dPC9zcGFuPlxuICAgICAgfVxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZnMtbGlzdC1jb2x1bW4+XG4gIDxmcy1saXN0LWNvbHVtbj5cbiAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1oZWFkZXI+TWVzc2FnZTwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlIGZzLWxpc3QtY2VsbCBsZXQtcm93PVwicm93XCI+XG4gICAgICB7e3Jvdy5tZXNzYWdlfX1cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2ZzLWxpc3QtY29sdW1uPlxuICA8ZnMtbGlzdC1jb2x1bW4+XG4gICAgPG5nLXRlbXBsYXRlIGZzLWxpc3QtaGVhZGVyPkRhdGU8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWNlbGwgbGV0LXJvdz1cInJvd1wiPlxuICAgICAgPGZzLWRhdGUtYWdvIFtkYXRlXT1cInJvdy5jcmVhdGVEYXRlXCI+PC9mcy1kYXRlLWFnbz5cbiAgICAgIDxkaXY+QGlmIChyb3cubGVuZ3RoKSB7XG4gICAgICAgIDxzbWFsbD5EdXJhdGlvbjoge3sgcm93Lmxlbmd0aCB8IGZzRGF0ZUR1cmF0aW9uIH19PC9zbWFsbD5cbiAgICAgIH08L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2ZzLWxpc3QtY29sdW1uPlxuPC9mcy1saXN0PlxuIl19
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWxvZ3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL3N5c3RlbS9jb21wb25lbnRzL2FwaS1sb2dzL2FwaS1sb2dzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vY29tcG9uZW50cy9hcGktbG9ncy9hcGktbG9ncy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxlQUFlLEVBQWdCLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBR25HLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7QUFnQmhELE1BQU0sT0FBTyxnQkFBZ0I7SUFDbkIsT0FBTyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM1QixJQUFJLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBSXRCLElBQUksQ0FBa0I7SUFFN0I7OztPQUdHO0lBQ2EsV0FBVyxDQUEwRDtJQUU5RSxNQUFNLEdBQWlCLElBQUksQ0FBQztJQUM1QixZQUFZLEdBQUcsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRTVDLFFBQVE7UUFDYixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVNLElBQUksQ0FBQyxNQUFNO1FBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUNqQyxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUU7WUFDaEIsS0FBSyxFQUFFLEtBQUs7U0FDYixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sV0FBVztRQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHO1lBQ1osTUFBTSxFQUFFO2dCQUNOLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxJQUFJO2FBQ2xDO1lBQ0QsT0FBTyxFQUFFO2dCQUNQO29CQUNFLElBQUksRUFBRSxRQUFRLENBQUMsT0FBTztvQkFDdEIsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsS0FBSyxFQUFFLFFBQVE7aUJBQ2hCO2dCQUNEO29CQUNFLElBQUksRUFBRSxRQUFRLENBQUMsTUFBTTtvQkFDckIsSUFBSSxFQUFFLE9BQU87b0JBQ2IsS0FBSyxFQUFFLFFBQVE7b0JBQ2YsTUFBTSxFQUFFLFlBQVk7aUJBQ3JCO2dCQUNEO29CQUNFLElBQUksRUFBRSxZQUFZO29CQUNsQixJQUFJLEVBQUUsUUFBUSxDQUFDLFNBQVM7b0JBQ3hCLEtBQUssRUFBRSxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUM7aUJBQ2hDO2FBQ0Y7WUFDRCxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDZixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakMsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDO0lBRU8sV0FBVyxDQUFDLEtBQUs7UUFDdkIsT0FBTyxJQUFJLENBQUMsV0FBVztZQUNyQixDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDekIsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGlCQUFpQixFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQztpQkFDckQsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUM5RSxDQUFDO0lBQ1IsQ0FBQzt1R0FoRVUsZ0JBQWdCOzJGQUFoQixnQkFBZ0IsNEpBS2hCLGVBQWUsOERDckM1QiwyNENBd0NBLDZLRGRRLFlBQVkseW5CQUNaLE9BQU8sMklBQ1AsT0FBTyxtRkFDUCxZQUFZOzsyRkFHUCxnQkFBZ0I7a0JBYjVCLFNBQVM7K0JBQ0ksb0JBQW9CLG1CQUdiLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNMLFlBQVk7d0JBQ1osT0FBTzt3QkFDUCxPQUFPO3dCQUNQLFlBQVk7cUJBQ2Y7OEJBUUksSUFBSTtzQkFEVixTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBTzVCLFdBQVc7c0JBQTFCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuXG5pbXBvcnQgeyBGc0FwaSB9IGZyb20gJ0BmaXJlc3RpdGNoL2FwaSc7XG5pbXBvcnQgeyBJdGVtVHlwZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2ZpbHRlcic7XG5pbXBvcnQgeyBGc0xpc3RDb21wb25lbnQsIEZzTGlzdENvbmZpZywgUGFnaW5hdGlvblN0cmF0ZWd5LCBGc0xpc3RNb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9saXN0JztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBBcGlMb2dTdGF0ZXMgfSBmcm9tICcuLi8uLi9jb25zdHMnO1xuaW1wb3J0IHsgaW5kZXhOYW1lVmFsdWUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2luZGV4LW5hbWUtdmFsdWUnO1xuaW1wb3J0IHsgQXBpTG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vYXBpLWxvZy9hcGktbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZzRGF0ZU1vZHVsZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2RhdGUnO1xuXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZnMtc3lzdGVtLWFwaS1sb2dzJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYXBpLWxvZ3MuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2FwaS1sb2dzLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIEZzTGlzdE1vZHVsZSxcbiAgICAgICAgTWF0SWNvbixcbiAgICAgICAgTmdDbGFzcyxcbiAgICAgICAgRnNEYXRlTW9kdWxlLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFwaUxvZ3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIF9kaWFsb2cgPSBpbmplY3QoTWF0RGlhbG9nKTtcbiAgcHJpdmF0ZSBfYXBpID0gaW5qZWN0KEZzQXBpKTtcblxuXG4gIEBWaWV3Q2hpbGQoRnNMaXN0Q29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgbGlzdDogRnNMaXN0Q29tcG9uZW50O1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBvdmVycmlkZS4gTGVmdCB1bnNldCwgdGhlIGNvbXBvbmVudCByZWFkcyB0aGUgZnJhbWV3b3JrJ3Mgb3duXG4gICAqIHN5c3RlbS9sb2dzL2FwaSBlbmRwb2ludC5cbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBsb2FkQXBpTG9nczogKGRhdGE6IGFueSkgPT4gT2JzZXJ2YWJsZTx7IGRhdGE6IGFueVtdOyBwYWdpbmc6IGFueSB9PjtcblxuICBwdWJsaWMgY29uZmlnOiBGc0xpc3RDb25maWcgPSBudWxsO1xuICBwdWJsaWMgYXBpTG9nU3RhdGVzID0gaW5kZXhOYW1lVmFsdWUoQXBpTG9nU3RhdGVzKTtcblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5fY29uZmlnTGlzdCgpO1xuICB9XG5cbiAgcHVibGljIG9wZW4oYXBpTG9nKSB7XG4gICAgdGhpcy5fZGlhbG9nLm9wZW4oQXBpTG9nQ29tcG9uZW50LCB7XG4gICAgICBkYXRhOiB7IGFwaUxvZyB9LFxuICAgICAgd2lkdGg6ICc4NSUnLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29uZmlnTGlzdCgpIHtcbiAgICB0aGlzLmNvbmZpZyA9IHtcbiAgICAgIHBhZ2luZzoge1xuICAgICAgICBzdHJhdGVneTogUGFnaW5hdGlvblN0cmF0ZWd5Lk1hbnksXG4gICAgICB9LFxuICAgICAgZmlsdGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogSXRlbVR5cGUuS2V5d29yZCxcbiAgICAgICAgICBuYW1lOiAna2V5d29yZCcsXG4gICAgICAgICAgbGFiZWw6ICdTZWFyY2gnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogSXRlbVR5cGUuU2VsZWN0LFxuICAgICAgICAgIG5hbWU6ICdzdGF0ZScsXG4gICAgICAgICAgbGFiZWw6ICdTdGF0dXMnLFxuICAgICAgICAgIHZhbHVlczogQXBpTG9nU3RhdGVzLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ2NyZWF0ZURhdGUnLFxuICAgICAgICAgIHR5cGU6IEl0ZW1UeXBlLkRhdGVSYW5nZSxcbiAgICAgICAgICBsYWJlbDogWydGcm9tIERhdGUnLCAnVG8gRGF0ZSddLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIGZldGNoOiAocXVlcnkpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwaUxvZ3NHZXQocXVlcnkpO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBfYXBpTG9nc0dldChxdWVyeSk6IE9ic2VydmFibGU8eyBkYXRhOiBhbnlbXTsgcGFnaW5nOiBhbnkgfT4ge1xuICAgIHJldHVybiB0aGlzLmxvYWRBcGlMb2dzXG4gICAgICA/IHRoaXMubG9hZEFwaUxvZ3MocXVlcnkpXG4gICAgICA6IHRoaXMuX2FwaS5nZXQoJ3N5c3RlbS9sb2dzL2FwaScsIHF1ZXJ5LCB7IGtleTogbnVsbCB9KVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+ICh7IGRhdGE6IHJlc3BvbnNlLmFwaUxvZ3MsIHBhZ2luZzogcmVzcG9uc2UucGFnaW5nIH0pKSxcbiAgICAgICAgKTtcbiAgfVxufVxuIiwiPGZzLWxpc3QgW2NvbmZpZ109XCJjb25maWdcIj5cbiAgPGZzLWxpc3QtY29sdW1uPlxuICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWhlYWRlcj5OYW1lPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1jZWxsIGxldC1yb3c9XCJyb3dcIj5cbiAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OjtcIiAoY2xpY2spPVwib3Blbihyb3cpXCI+XG4gICAgICAgIHt7cm93LnR5cGUgfHwgJ1Vua25vd24nfX1cbiAgICAgICAgQGlmIChyb3cuZGlyZWN0aW9uPT0nb3V0Z29pbmcnKSB7XG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiZGlyZWN0aW9uXCI+YXJyb3dfdXB3YXJkPC9tYXQtaWNvbj5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKHJvdy5kaXJlY3Rpb249PSdpbmNvbWluZycpIHtcbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJkaXJlY3Rpb25cIj5hcnJvd19kb3dud2FyZDwvbWF0LWljb24+XG4gICAgICAgIH1cbiAgICAgIDwvYT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2ZzLWxpc3QtY29sdW1uPlxuICA8ZnMtbGlzdC1jb2x1bW4+XG4gICAgPG5nLXRlbXBsYXRlIGZzLWxpc3QtaGVhZGVyPlN0YXR1czwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlIGZzLWxpc3QtY2VsbCBsZXQtcm93PVwicm93XCI+XG4gICAgICB7e2FwaUxvZ1N0YXRlc1tyb3cuc3RhdGVdfX1cbiAgICAgIEBpZiAocm93LmNvZGUpIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjb2RlXCIgW25nQ2xhc3NdPVwieydzdWNjZXNzJzogcm93LmNvZGU9PTIwMCwnZXJyb3InOiByb3cuY29kZSE9MjAwIH1cIj5be3tyb3cuY29kZX19XTwvc3Bhbj5cbiAgICAgIH1cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2ZzLWxpc3QtY29sdW1uPlxuICA8ZnMtbGlzdC1jb2x1bW4+XG4gICAgPG5nLXRlbXBsYXRlIGZzLWxpc3QtaGVhZGVyPk1lc3NhZ2U8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWNlbGwgbGV0LXJvdz1cInJvd1wiPlxuICAgICAge3tyb3cubWVzc2FnZX19XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9mcy1saXN0LWNvbHVtbj5cbiAgPGZzLWxpc3QtY29sdW1uPlxuICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWhlYWRlcj5EYXRlPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1jZWxsIGxldC1yb3c9XCJyb3dcIj5cbiAgICAgIDxmcy1kYXRlLWFnbyBbZGF0ZV09XCJyb3cuY3JlYXRlRGF0ZVwiPjwvZnMtZGF0ZS1hZ28+XG4gICAgICA8ZGl2PkBpZiAocm93Lmxlbmd0aCkge1xuICAgICAgICA8c21hbGw+RHVyYXRpb246IHt7IHJvdy5sZW5ndGggfCBmc0RhdGVEdXJhdGlvbiB9fTwvc21hbGw+XG4gICAgICB9PC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9mcy1saXN0LWNvbHVtbj5cbjwvZnMtbGlzdD5cbiJdfQ==
@@ -1,13 +1,24 @@
1
- import { ChangeDetectionStrategy, Component, ElementRef, Input, ViewChild } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, ElementRef, Input, ViewChild, inject } from '@angular/core';
2
+ import { FsApi } from '@firestitch/api';
2
3
  import * as i0 from "@angular/core";
3
4
  export class InfoComponent {
5
+ _api = inject(FsApi);
4
6
  iframe;
7
+ /**
8
+ * Optional override. Left unset, the component reads the framework's own
9
+ * system/info endpoint.
10
+ */
5
11
  load;
6
12
  ngAfterViewInit() {
7
13
  this._load();
8
14
  }
15
+ _infoGet() {
16
+ return this.load
17
+ ? this.load()
18
+ : this._api.get('system/info', {}, { key: 'info' });
19
+ }
9
20
  _load() {
10
- this.load()
21
+ this._infoGet()
11
22
  .subscribe((info) => {
12
23
  info += '<style>body { background: transparent; }</style>';
13
24
  const doc = this.iframe.nativeElement.contentDocument || this.iframe.nativeElement.contentWindow;
@@ -30,4 +41,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
30
41
  }], load: [{
31
42
  type: Input
32
43
  }] } });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvc3lzdGVtL2NvbXBvbmVudHMvaW5mby9pbmZvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vY29tcG9uZW50cy9pbmZvL2luZm8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQix1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBWWhILE1BQU0sT0FBTyxhQUFhO0lBR2pCLE1BQU0sQ0FBYTtJQUVWLElBQUksQ0FBd0I7SUFFckMsZUFBZTtRQUNwQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDO0lBRU8sS0FBSztRQUNYLElBQUksQ0FBQyxJQUFJLEVBQUU7YUFDUixTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUVsQixJQUFJLElBQUksa0RBQWtELENBQUM7WUFFM0QsTUFBTSxHQUFHLEdBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQztZQUNsRyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDWCxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNaLE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1lBQzNHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsR0FBRyxZQUFZLElBQUksQ0FBQztRQUMvRCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7dUdBeEJVLGFBQWE7MkZBQWIsYUFBYSxzTUNaMUIsK0JBQ0E7OzJGRFdhLGFBQWE7a0JBUHpCLFNBQVM7K0JBQ0ksZ0JBQWdCLG1CQUdULHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSTs4QkFLWCxNQUFNO3NCQURaLFNBQVM7dUJBQUMsUUFBUTtnQkFHSCxJQUFJO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmcy1zeXN0ZW0taW5mbycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2luZm8uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2luZm8uY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBJbmZvQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgQFZpZXdDaGlsZCgnaWZyYW1lJykgXG4gIHB1YmxpYyBpZnJhbWU6IEVsZW1lbnRSZWY7XG5cbiAgQElucHV0KCkgcHVibGljIGxvYWQ6ICgpID0+IE9ic2VydmFibGU8YW55PjtcblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuX2xvYWQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2xvYWQoKSB7XG4gICAgdGhpcy5sb2FkKClcbiAgICAgIC5zdWJzY3JpYmUoKGluZm8pID0+IHtcblxuICAgICAgICBpbmZvICs9ICc8c3R5bGU+Ym9keSB7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9PC9zdHlsZT4nO1xuXG4gICAgICAgIGNvbnN0IGRvYyA9ICB0aGlzLmlmcmFtZS5uYXRpdmVFbGVtZW50LmNvbnRlbnREb2N1bWVudCB8fCB0aGlzLmlmcmFtZS5uYXRpdmVFbGVtZW50LmNvbnRlbnRXaW5kb3c7XG4gICAgICAgIGRvYy5vcGVuKCk7XG4gICAgICAgIGRvYy53cml0ZShpbmZvKTtcbiAgICAgICAgZG9jLmNsb3NlKCk7XG4gICAgICAgIGNvbnN0IHNjcm9sbEhlaWdodCA9ICh0aGlzLmlmcmFtZS5uYXRpdmVFbGVtZW50LmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbEhlaWdodCArIDEwMCk7XG4gICAgICAgIHRoaXMuaWZyYW1lLm5hdGl2ZUVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gYCR7c2Nyb2xsSGVpZ2h0fXB4YDtcbiAgICAgIH0pO1xuICB9XG59XG4iLCI8aWZyYW1lICNpZnJhbWU+PC9pZnJhbWU+XHJcbiJdfQ==
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvc3lzdGVtL2NvbXBvbmVudHMvaW5mby9pbmZvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vY29tcG9uZW50cy9pbmZvL2luZm8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQix1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXhILE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFZeEMsTUFBTSxPQUFPLGFBQWE7SUFDaEIsSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUl0QixNQUFNLENBQWE7SUFFMUI7OztPQUdHO0lBQ2EsSUFBSSxDQUF3QjtJQUVyQyxlQUFlO1FBQ3BCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFFTyxRQUFRO1FBQ2QsT0FBTyxJQUFJLENBQUMsSUFBSTtZQUNkLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2IsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRU8sS0FBSztRQUNYLElBQUksQ0FBQyxRQUFRLEVBQUU7YUFDWixTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUVsQixJQUFJLElBQUksa0RBQWtELENBQUM7WUFFM0QsTUFBTSxHQUFHLEdBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQztZQUNsRyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDWCxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNaLE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1lBQzNHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsR0FBRyxZQUFZLElBQUksQ0FBQztRQUMvRCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7dUdBcENVLGFBQWE7MkZBQWIsYUFBYSxzTUNkMUIsK0JBQ0E7OzJGRGFhLGFBQWE7a0JBUHpCLFNBQVM7K0JBQ0ksZ0JBQWdCLG1CQUdULHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSTs4QkFPWCxNQUFNO3NCQURaLFNBQVM7dUJBQUMsUUFBUTtnQkFPSCxJQUFJO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFZpZXdDaGlsZCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEZzQXBpIH0gZnJvbSAnQGZpcmVzdGl0Y2gvYXBpJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZnMtc3lzdGVtLWluZm8nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbmZvLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbmZvLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgSW5mb0NvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBwcml2YXRlIF9hcGkgPSBpbmplY3QoRnNBcGkpO1xuXG5cbiAgQFZpZXdDaGlsZCgnaWZyYW1lJykgXG4gIHB1YmxpYyBpZnJhbWU6IEVsZW1lbnRSZWY7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIG92ZXJyaWRlLiBMZWZ0IHVuc2V0LCB0aGUgY29tcG9uZW50IHJlYWRzIHRoZSBmcmFtZXdvcmsncyBvd25cbiAgICogc3lzdGVtL2luZm8gZW5kcG9pbnQuXG4gICAqL1xuICBASW5wdXQoKSBwdWJsaWMgbG9hZDogKCkgPT4gT2JzZXJ2YWJsZTxhbnk+O1xuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5fbG9hZCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaW5mb0dldCgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmxvYWRcbiAgICAgID8gdGhpcy5sb2FkKClcbiAgICAgIDogdGhpcy5fYXBpLmdldCgnc3lzdGVtL2luZm8nLCB7fSwgeyBrZXk6ICdpbmZvJyB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2xvYWQoKSB7XG4gICAgdGhpcy5faW5mb0dldCgpXG4gICAgICAuc3Vic2NyaWJlKChpbmZvKSA9PiB7XG5cbiAgICAgICAgaW5mbyArPSAnPHN0eWxlPmJvZHkgeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfTwvc3R5bGU+JztcblxuICAgICAgICBjb25zdCBkb2MgPSAgdGhpcy5pZnJhbWUubmF0aXZlRWxlbWVudC5jb250ZW50RG9jdW1lbnQgfHwgdGhpcy5pZnJhbWUubmF0aXZlRWxlbWVudC5jb250ZW50V2luZG93O1xuICAgICAgICBkb2Mub3BlbigpO1xuICAgICAgICBkb2Mud3JpdGUoaW5mbyk7XG4gICAgICAgIGRvYy5jbG9zZSgpO1xuICAgICAgICBjb25zdCBzY3JvbGxIZWlnaHQgPSAodGhpcy5pZnJhbWUubmF0aXZlRWxlbWVudC5jb250ZW50V2luZG93LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxIZWlnaHQgKyAxMDApO1xuICAgICAgICB0aGlzLmlmcmFtZS5uYXRpdmVFbGVtZW50LnN0eWxlLmhlaWdodCA9IGAke3Njcm9sbEhlaWdodH1weGA7XG4gICAgICB9KTtcbiAgfVxufVxuIiwiPGlmcmFtZSAjaWZyYW1lPjwvaWZyYW1lPlxyXG4iXX0=
@@ -17,6 +17,10 @@ export class ServerLogsComponent {
17
17
  _dialog = inject(MatDialog);
18
18
  _api = inject(FsApi);
19
19
  list;
20
+ /**
21
+ * Optional override. Left unset, the component reads the framework's own
22
+ * system/logs/server endpoint.
23
+ */
20
24
  loadLogs;
21
25
  acknowledgedAll = new EventEmitter();
22
26
  config = null;
@@ -92,12 +96,16 @@ export class ServerLogsComponent {
92
96
  },
93
97
  ],
94
98
  fetch: (query) => {
95
- return this._api
96
- .get('system/logs/server', query, { key: null })
97
- .pipe(map((response) => ({ data: response.logs, paging: response.paging })));
99
+ return this._logsGet(query);
98
100
  },
99
101
  };
100
102
  }
103
+ _logsGet(query) {
104
+ return this.loadLogs
105
+ ? this.loadLogs(query)
106
+ : this._api.get('system/logs/server', query, { key: null })
107
+ .pipe(map((response) => ({ data: response.logs, paging: response.paging })));
108
+ }
101
109
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ServerLogsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
102
110
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: ServerLogsComponent, isStandalone: true, selector: "fs-system-server-logs", inputs: { loadLogs: "loadLogs" }, outputs: { acknowledgedAll: "acknowledgedAll" }, viewQueries: [{ propertyName: "list", first: true, predicate: FsListComponent, descendants: true }], ngImport: i0, template: "<fs-list [config]=\"config\">\n <fs-list-column width=\"1%\">\n <ng-template\n fs-list-cell\n let-row=\"row\">\n <a (click)=\"toggleAcknowledged(row)\">\n <fs-badge\n [size]=\"10\"\n [tooltip]=\"row.acknowledged ? 'Acknowledged' : 'Unacknowledged'\"\n [color]=\"row.acknowledged ? '#E3E3E3' : '#F30000'\">\n </fs-badge>\n </a>\n </ng-template>\n </fs-list-column>\n <fs-list-column>\n <ng-template fs-list-header>\n Message\n </ng-template>\n <ng-template\n fs-list-cell\n let-row=\"row\">\n <a\n href=\"javascript:;\"\n (click)=\"open(row)\">\n {{ row.message }}\n </a>\n </ng-template>\n </fs-list-column>\n <fs-list-column class=\"col-date\">\n <ng-template fs-list-header>\n Type\n </ng-template>\n <ng-template\n fs-list-cell\n let-row=\"row\">\n {{ LogTypes[row.type] }}\n </ng-template>\n </fs-list-column>\n <fs-list-column class=\"col-date\">\n <ng-template fs-list-header>\n Date\n </ng-template>\n <ng-template\n fs-list-cell\n let-row=\"row\">\n <fs-date-ago [date]=\"row.createDate\"></fs-date-ago>\n </ng-template>\n </fs-list-column>\n</fs-list>", styles: ["fs-list ::ng-deep .col-date,fs-list ::ng-deep .col-type{white-space:nowrap}\n"], dependencies: [{ kind: "ngmodule", type: FsListModule }, { kind: "component", type: i1.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { kind: "directive", type: i1.FsListColumnDirective, selector: "fs-list-column", inputs: ["show", "title", "name", "customizable", "sortable", "sortableDefault", "sortableDirection", "direction", "align", "width", "class"] }, { kind: "directive", type: i1.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }, { kind: "directive", type: i1.FsListHeaderDirective, selector: "[fs-list-header]", inputs: ["colspan", "align", "class"] }, { kind: "ngmodule", type: FsBadgeModule }, { kind: "component", type: i2.FsBadgeComponent, selector: "fs-badge", inputs: ["color", "text", "tooltip", "size", "shape", "image", "icon", "iconSize", "iconSizePercent", "iconColor", "backgroundSize"] }, { kind: "ngmodule", type: FsDateModule }, { kind: "component", type: i3.FsDateAgoComponent, selector: "fs-date-ago", inputs: ["date", "showTime", "format", "showTooltip", "tooltipDateFormat"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
103
111
  }
@@ -116,4 +124,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
116
124
  }], acknowledgedAll: [{
117
125
  type: Output
118
126
  }] } });
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLWxvZ3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL3N5c3RlbS9jb21wb25lbnRzL3NlcnZlci1sb2dzL3NlcnZlci1sb2dzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vY29tcG9uZW50cy9zZXJ2ZXItbG9ncy9zZXJ2ZXItbG9ncy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0gsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXJELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlDLE9BQU8sRUFBZ0IsZUFBZSxFQUFnQixZQUFZLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUdqSCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDOzs7OztBQWVsRCxNQUFNLE9BQU8sbUJBQW1CO0lBQ3RCLE9BQU8sR0FBRyxNQUFNLENBQUMsU0FB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O2lCQUNGO2FBQ0Y7WUFDRCxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDZixPQUFPLElBQUksQ0FBQyxJQUFJO3FCQUNiLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUM7cUJBQy9DLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FDM0UsQ0FBQztZQUNOLENBQUM7U0FDRixDQUFDO0lBQ0osQ0FBQzt1R0FqR1UsbUJBQW1COzJGQUFuQixtQkFBbUIsME1BS25CLGVBQWUsZ0RDcEM1QiwrdkNBZ0RVLHNJRHRCRixZQUFZLHduQkFDWixhQUFhLDRPQUNiLFlBQVk7OzJGQUdQLG1CQUFtQjtrQkFaL0IsU0FBUzsrQkFDSSx1QkFBdUIsbUJBR2hCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNMLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixZQUFZO3FCQUNmOzhCQVFJLElBQUk7c0JBRFYsU0FBUzt1QkFBQyxlQUFlO2dCQUdWLFFBQVE7c0JBQXZCLEtBQUs7Z0JBRVcsZUFBZTtzQkFBL0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuXG5pbXBvcnQgeyBGc0FwaSB9IGZyb20gJ0BmaXJlc3RpdGNoL2FwaSc7XG5pbXBvcnQgeyBpbmRleCB9IGZyb20gJ0BmaXJlc3RpdGNoL2NvbW1vbic7XG5pbXBvcnQgeyBJdGVtVHlwZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2ZpbHRlcic7XG5pbXBvcnQgeyBGc0xpc3RBY3Rpb24sIEZzTGlzdENvbXBvbmVudCwgRnNMaXN0Q29uZmlnLCBGc0xpc3RNb2R1bGUsIFBhZ2luYXRpb25TdHJhdGVneSB9IGZyb20gJ0BmaXJlc3RpdGNoL2xpc3QnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IExvZ1R5cGVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29uc3RzJztcblxuaW1wb3J0IHsgRnNCYWRnZU1vZHVsZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2JhZGdlJztcbmltcG9ydCB7IEZzRGF0ZU1vZHVsZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2RhdGUnO1xuaW1wb3J0IHsgU2VydmVyTG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzJztcblxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZzLXN5c3RlbS1zZXJ2ZXItbG9ncycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlcnZlci1sb2dzLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zZXJ2ZXItbG9ncy5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBGc0xpc3RNb2R1bGUsXG4gICAgICAgIEZzQmFkZ2VNb2R1bGUsXG4gICAgICAgIEZzRGF0ZU1vZHVsZSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTZXJ2ZXJMb2dzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSBfZGlhbG9nID0gaW5qZWN0KE1hdERpYWxvZyk7XG4gIHByaXZhdGUgX2FwaSA9IGluamVjdChGc0FwaSk7XG5cblxuICBAVmlld0NoaWxkKEZzTGlzdENvbXBvbmVudCkgXG4gIHB1YmxpYyBsaXN0OiBGc0xpc3RDb21wb25lbnQ7XG5cbiAgQElucHV0KCkgcHVibGljIGxvYWRMb2dzOiAoZGF0YTogYW55KSA9PiBPYnNlcnZhYmxlPHsgZGF0YTogYW55W10sIHBhZ2luZzogYW55IH0+O1xuXG4gIEBPdXRwdXQoKSBwdWJsaWMgYWNrbm93bGVkZ2VkQWxsOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHVibGljIGNvbmZpZzogRnNMaXN0Q29uZmlnID0gbnVsbDtcbiAgcHVibGljIGFjdGlvbnM6IEZzTGlzdEFjdGlvbltdID0gW107XG4gIHB1YmxpYyBMb2dUeXBlcyA9IGluZGV4KExvZ1R5cGVzLCAndmFsdWUnLCAnbmFtZScpO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLl9jb25maWdMaXN0KCk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlQWNrbm93bGVkZ2VkKGxvZykge1xuICAgIGNvbnN0IGFja25vd2xlZGdlID0gbG9nLmFja25vd2xlZGdlZCA/ICd1bmFja25vd2xlZGdlJyA6ICdhY2tub3dsZWRnZSc7XG4gICAgdGhpcy5fYXBpXG4gICAgICAucHV0KGBzeXN0ZW0vbG9ncy9zZXJ2ZXIvJHtsb2cuaWR9LyR7YWNrbm93bGVkZ2V9YClcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMubGlzdFxuICAgICAgICAgIC51cGRhdGVEYXRhKHJlc3BvbnNlLmxvZyxcbiAgICAgICAgICAgIChpdGVtOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0uaWQgPT09IGxvZy5pZDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb3Blbihsb2cpIHtcbiAgICB0aGlzLl9kaWFsb2dcbiAgICAgIC5vcGVuKFNlcnZlckxvZ0NvbXBvbmVudCwge1xuICAgICAgICBkYXRhOiB7IGxvZzogbG9nIH0sXG4gICAgICAgIHdpZHRoOiAnODUlJyxcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29uZmlnTGlzdCgpIHtcbiAgICB0aGlzLmNvbmZpZyA9IHtcbiAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgLi4udGhpcy5hY3Rpb25zLFxuICAgICAgICB7XG4gICAgICAgICAgcHJpbWFyeTogZmFsc2UsXG4gICAgICAgICAgbGFiZWw6ICdBY2tub3dsZWRnZSBhbGwnLFxuICAgICAgICAgIGNsaWNrOiAoKSA9PiAge1xuICAgICAgICAgICAgdGhpcy5fYXBpXG4gICAgICAgICAgICAgIC5wdXQoJ3N5c3RlbS9sb2dzL3NlcnZlci9hY2tub3dsZWRnZScpXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubGlzdC5yZWxvYWQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFja25vd2xlZGdlZEFsbC5lbWl0KCk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgcGFnaW5nOiAge1xuICAgICAgICBzdHJhdGVneTogUGFnaW5hdGlvblN0cmF0ZWd5Lk1hbnksXG4gICAgICB9LFxuICAgICAgZmlsdGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogSXRlbVR5cGUuS2V5d29yZCxcbiAgICAgICAgICBuYW1lOiAna2V5d29yZCcsXG4gICAgICAgICAgbGFiZWw6ICdTZWFyY2gnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogSXRlbVR5cGUuRGF0ZVJhbmdlLFxuICAgICAgICAgIG5hbWU6ICdjcmVhdGVEYXRlJyxcbiAgICAgICAgICBsYWJlbDogWydGcm9tIERhdGUnLCAnVG8gRGF0ZSddLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogSXRlbVR5cGUuU2VsZWN0LFxuICAgICAgICAgIG5hbWU6ICd0eXBlcycsXG4gICAgICAgICAgbGFiZWw6ICdUeXBlJyxcbiAgICAgICAgICBtdWx0aXBsZTogdHJ1ZSxcbiAgICAgICAgICB2YWx1ZXM6IExvZ1R5cGVzLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogSXRlbVR5cGUuU2VsZWN0LFxuICAgICAgICAgIG5hbWU6ICdhY2tub3dsZWRnZWQnLFxuICAgICAgICAgIGxhYmVsOiAnQWNrbm93bGVkZ2VkJyxcbiAgICAgICAgICB2YWx1ZXM6IFtcbiAgICAgICAgICAgIHsgbmFtZTogJ0Fja25vd2xlZGdlZCcsIHZhbHVlOiAnMScgfSxcbiAgICAgICAgICAgIHsgbmFtZTogJ1VuYWNrbm93bGVkZ2VkJywgdmFsdWU6ICcwJyB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgZmV0Y2g6IChxdWVyeSkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXBpXG4gICAgICAgICAgLmdldCgnc3lzdGVtL2xvZ3Mvc2VydmVyJywgcXVlcnksIHsga2V5OiBudWxsIH0pXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+ICh7IGRhdGE6IHJlc3BvbnNlLmxvZ3MsIHBhZ2luZzogcmVzcG9uc2UucGFnaW5nIH0pKSxcbiAgICAgICAgICApO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG59XG4iLCI8ZnMtbGlzdCBbY29uZmlnXT1cImNvbmZpZ1wiPlxuICA8ZnMtbGlzdC1jb2x1bW4gd2lkdGg9XCIxJVwiPlxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICBmcy1saXN0LWNlbGxcbiAgICAgICAgbGV0LXJvdz1cInJvd1wiPlxuICAgICAgPGEgKGNsaWNrKT1cInRvZ2dsZUFja25vd2xlZGdlZChyb3cpXCI+XG4gICAgICAgIDxmcy1iYWRnZVxuICAgICAgICAgIFtzaXplXT1cIjEwXCJcbiAgICAgICAgICBbdG9vbHRpcF09XCJyb3cuYWNrbm93bGVkZ2VkID8gJ0Fja25vd2xlZGdlZCcgOiAnVW5hY2tub3dsZWRnZWQnXCJcbiAgICAgICAgICBbY29sb3JdPVwicm93LmFja25vd2xlZGdlZCA/ICcjRTNFM0UzJyA6ICcjRjMwMDAwJ1wiPlxuICAgICAgICA8L2ZzLWJhZGdlPlxuICAgICAgPC9hPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZnMtbGlzdC1jb2x1bW4+XG4gIDxmcy1saXN0LWNvbHVtbj5cbiAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1oZWFkZXI+XG4gICAgICBNZXNzYWdlXG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgZnMtbGlzdC1jZWxsXG4gICAgICAgIGxldC1yb3c9XCJyb3dcIj5cbiAgICAgIDxhXG4gICAgICAgICAgaHJlZj1cImphdmFzY3JpcHQ6O1wiXG4gICAgICAgICAgKGNsaWNrKT1cIm9wZW4ocm93KVwiPlxuICAgICAgICB7eyByb3cubWVzc2FnZSB9fVxuICAgICAgPC9hPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZnMtbGlzdC1jb2x1bW4+XG4gIDxmcy1saXN0LWNvbHVtbiBjbGFzcz1cImNvbC1kYXRlXCI+XG4gICAgPG5nLXRlbXBsYXRlIGZzLWxpc3QtaGVhZGVyPlxuICAgICAgVHlwZVxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlXG4gICAgICAgIGZzLWxpc3QtY2VsbFxuICAgICAgICBsZXQtcm93PVwicm93XCI+XG4gICAgICB7eyBMb2dUeXBlc1tyb3cudHlwZV0gfX1cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2ZzLWxpc3QtY29sdW1uPlxuICA8ZnMtbGlzdC1jb2x1bW4gY2xhc3M9XCJjb2wtZGF0ZVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWhlYWRlcj5cbiAgICAgIERhdGVcbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICBmcy1saXN0LWNlbGxcbiAgICAgICAgbGV0LXJvdz1cInJvd1wiPlxuICAgICAgPGZzLWRhdGUtYWdvIFtkYXRlXT1cInJvdy5jcmVhdGVEYXRlXCI+PC9mcy1kYXRlLWFnbz5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2ZzLWxpc3QtY29sdW1uPlxuPC9mcy1saXN0PiJdfQ==
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLWxvZ3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL3N5c3RlbS9jb21wb25lbnRzL3NlcnZlci1sb2dzL3NlcnZlci1sb2dzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vY29tcG9uZW50cy9zZXJ2ZXItbG9ncy9zZXJ2ZXItbG9ncy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0gsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXJELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN4QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlDLE9BQU8sRUFBZ0IsZUFBZSxFQUFnQixZQUFZLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUdqSCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDOzs7OztBQWVsRCxNQUFNLE9BQU8sbUJBQW1CO0lBQ3RCLE9BQU8sR0FBRyxNQUFNLENBQUMsU0FB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RyxFQUFFO3FCQUN2QztpQkFDRjthQUNGO1lBQ0QsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ2YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzlCLENBQUM7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVPLFFBQVEsQ0FBQyxLQUFLO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFFBQVE7WUFDbEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1lBQ3RCLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUM7aUJBQ3hELElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FDM0UsQ0FBQztJQUNSLENBQUM7dUdBMUdVLG1CQUFtQjsyRkFBbkIsbUJBQW1CLDBNQUtuQixlQUFlLGdEQ3BDNUIsK3ZDQWdEVSxzSUR0QkYsWUFBWSx3bkJBQ1osYUFBYSw0T0FDYixZQUFZOzsyRkFHUCxtQkFBbUI7a0JBWi9CLFNBQVM7K0JBQ0ksdUJBQXVCLG1CQUdoQix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDTCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsWUFBWTtxQkFDZjs4QkFRSSxJQUFJO3NCQURWLFNBQVM7dUJBQUMsZUFBZTtnQkFPVixRQUFRO3NCQUF2QixLQUFLO2dCQUVXLGVBQWU7c0JBQS9CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuaW1wb3J0IHsgRnNBcGkgfSBmcm9tICdAZmlyZXN0aXRjaC9hcGknO1xuaW1wb3J0IHsgaW5kZXggfSBmcm9tICdAZmlyZXN0aXRjaC9jb21tb24nO1xuaW1wb3J0IHsgSXRlbVR5cGUgfSBmcm9tICdAZmlyZXN0aXRjaC9maWx0ZXInO1xuaW1wb3J0IHsgRnNMaXN0QWN0aW9uLCBGc0xpc3RDb21wb25lbnQsIEZzTGlzdENvbmZpZywgRnNMaXN0TW9kdWxlLCBQYWdpbmF0aW9uU3RyYXRlZ3kgfSBmcm9tICdAZmlyZXN0aXRjaC9saXN0JztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBMb2dUeXBlcyB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbnN0cyc7XG5cbmltcG9ydCB7IEZzQmFkZ2VNb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9iYWRnZSc7XG5pbXBvcnQgeyBGc0RhdGVNb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9kYXRlJztcbmltcG9ydCB7IFNlcnZlckxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cyc7XG5cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmcy1zeXN0ZW0tc2VydmVyLWxvZ3MnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zZXJ2ZXItbG9ncy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2VydmVyLWxvZ3MuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgRnNMaXN0TW9kdWxlLFxuICAgICAgICBGc0JhZGdlTW9kdWxlLFxuICAgICAgICBGc0RhdGVNb2R1bGUsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2VydmVyTG9nc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgX2RpYWxvZyA9IGluamVjdChNYXREaWFsb2cpO1xuICBwcml2YXRlIF9hcGkgPSBpbmplY3QoRnNBcGkpO1xuXG5cbiAgQFZpZXdDaGlsZChGc0xpc3RDb21wb25lbnQpIFxuICBwdWJsaWMgbGlzdDogRnNMaXN0Q29tcG9uZW50O1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBvdmVycmlkZS4gTGVmdCB1bnNldCwgdGhlIGNvbXBvbmVudCByZWFkcyB0aGUgZnJhbWV3b3JrJ3Mgb3duXG4gICAqIHN5c3RlbS9sb2dzL3NlcnZlciBlbmRwb2ludC5cbiAgICovXG4gIEBJbnB1dCgpIHB1YmxpYyBsb2FkTG9nczogKGRhdGE6IGFueSkgPT4gT2JzZXJ2YWJsZTx7IGRhdGE6IGFueVtdLCBwYWdpbmc6IGFueSB9PjtcblxuICBAT3V0cHV0KCkgcHVibGljIGFja25vd2xlZGdlZEFsbDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHB1YmxpYyBjb25maWc6IEZzTGlzdENvbmZpZyA9IG51bGw7XG4gIHB1YmxpYyBhY3Rpb25zOiBGc0xpc3RBY3Rpb25bXSA9IFtdO1xuICBwdWJsaWMgTG9nVHlwZXMgPSBpbmRleChMb2dUeXBlcywgJ3ZhbHVlJywgJ25hbWUnKTtcblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5fY29uZmlnTGlzdCgpO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZUFja25vd2xlZGdlZChsb2cpIHtcbiAgICBjb25zdCBhY2tub3dsZWRnZSA9IGxvZy5hY2tub3dsZWRnZWQgPyAndW5hY2tub3dsZWRnZScgOiAnYWNrbm93bGVkZ2UnO1xuICAgIHRoaXMuX2FwaVxuICAgICAgLnB1dChgc3lzdGVtL2xvZ3Mvc2VydmVyLyR7bG9nLmlkfS8ke2Fja25vd2xlZGdlfWApXG4gICAgICAuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuICAgICAgICB0aGlzLmxpc3RcbiAgICAgICAgICAudXBkYXRlRGF0YShyZXNwb25zZS5sb2csXG4gICAgICAgICAgICAoaXRlbTogYW55KSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiBpdGVtLmlkID09PSBsb2cuaWQ7XG4gICAgICAgICAgICB9KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9wZW4obG9nKSB7XG4gICAgdGhpcy5fZGlhbG9nXG4gICAgICAub3BlbihTZXJ2ZXJMb2dDb21wb25lbnQsIHtcbiAgICAgICAgZGF0YTogeyBsb2c6IGxvZyB9LFxuICAgICAgICB3aWR0aDogJzg1JScsXG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2NvbmZpZ0xpc3QoKSB7XG4gICAgdGhpcy5jb25maWcgPSB7XG4gICAgICBhY3Rpb25zOiBbXG4gICAgICAgIC4uLnRoaXMuYWN0aW9ucyxcbiAgICAgICAge1xuICAgICAgICAgIHByaW1hcnk6IGZhbHNlLFxuICAgICAgICAgIGxhYmVsOiAnQWNrbm93bGVkZ2UgYWxsJyxcbiAgICAgICAgICBjbGljazogKCkgPT4gIHtcbiAgICAgICAgICAgIHRoaXMuX2FwaVxuICAgICAgICAgICAgICAucHV0KCdzeXN0ZW0vbG9ncy9zZXJ2ZXIvYWNrbm93bGVkZ2UnKVxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmxpc3QucmVsb2FkKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5hY2tub3dsZWRnZWRBbGwuZW1pdCgpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHBhZ2luZzogIHtcbiAgICAgICAgc3RyYXRlZ3k6IFBhZ2luYXRpb25TdHJhdGVneS5NYW55LFxuICAgICAgfSxcbiAgICAgIGZpbHRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6IEl0ZW1UeXBlLktleXdvcmQsXG4gICAgICAgICAgbmFtZTogJ2tleXdvcmQnLFxuICAgICAgICAgIGxhYmVsOiAnU2VhcmNoJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6IEl0ZW1UeXBlLkRhdGVSYW5nZSxcbiAgICAgICAgICBuYW1lOiAnY3JlYXRlRGF0ZScsXG4gICAgICAgICAgbGFiZWw6IFsnRnJvbSBEYXRlJywgJ1RvIERhdGUnXSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6IEl0ZW1UeXBlLlNlbGVjdCxcbiAgICAgICAgICBuYW1lOiAndHlwZXMnLFxuICAgICAgICAgIGxhYmVsOiAnVHlwZScsXG4gICAgICAgICAgbXVsdGlwbGU6IHRydWUsXG4gICAgICAgICAgdmFsdWVzOiBMb2dUeXBlcyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6IEl0ZW1UeXBlLlNlbGVjdCxcbiAgICAgICAgICBuYW1lOiAnYWNrbm93bGVkZ2VkJyxcbiAgICAgICAgICBsYWJlbDogJ0Fja25vd2xlZGdlZCcsXG4gICAgICAgICAgdmFsdWVzOiBbXG4gICAgICAgICAgICB7IG5hbWU6ICdBY2tub3dsZWRnZWQnLCB2YWx1ZTogJzEnIH0sXG4gICAgICAgICAgICB7IG5hbWU6ICdVbmFja25vd2xlZGdlZCcsIHZhbHVlOiAnMCcgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIGZldGNoOiAocXVlcnkpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvZ3NHZXQocXVlcnkpO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBfbG9nc0dldChxdWVyeSk6IE9ic2VydmFibGU8eyBkYXRhOiBhbnlbXSwgcGFnaW5nOiBhbnkgfT4ge1xuICAgIHJldHVybiB0aGlzLmxvYWRMb2dzXG4gICAgICA/IHRoaXMubG9hZExvZ3MocXVlcnkpXG4gICAgICA6IHRoaXMuX2FwaS5nZXQoJ3N5c3RlbS9sb2dzL3NlcnZlcicsIHF1ZXJ5LCB7IGtleTogbnVsbCB9KVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+ICh7IGRhdGE6IHJlc3BvbnNlLmxvZ3MsIHBhZ2luZzogcmVzcG9uc2UucGFnaW5nIH0pKSxcbiAgICAgICAgKTtcbiAgfVxufVxuIiwiPGZzLWxpc3QgW2NvbmZpZ109XCJjb25maWdcIj5cbiAgPGZzLWxpc3QtY29sdW1uIHdpZHRoPVwiMSVcIj5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgZnMtbGlzdC1jZWxsXG4gICAgICAgIGxldC1yb3c9XCJyb3dcIj5cbiAgICAgIDxhIChjbGljayk9XCJ0b2dnbGVBY2tub3dsZWRnZWQocm93KVwiPlxuICAgICAgICA8ZnMtYmFkZ2VcbiAgICAgICAgICBbc2l6ZV09XCIxMFwiXG4gICAgICAgICAgW3Rvb2x0aXBdPVwicm93LmFja25vd2xlZGdlZCA/ICdBY2tub3dsZWRnZWQnIDogJ1VuYWNrbm93bGVkZ2VkJ1wiXG4gICAgICAgICAgW2NvbG9yXT1cInJvdy5hY2tub3dsZWRnZWQgPyAnI0UzRTNFMycgOiAnI0YzMDAwMCdcIj5cbiAgICAgICAgPC9mcy1iYWRnZT5cbiAgICAgIDwvYT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2ZzLWxpc3QtY29sdW1uPlxuICA8ZnMtbGlzdC1jb2x1bW4+XG4gICAgPG5nLXRlbXBsYXRlIGZzLWxpc3QtaGVhZGVyPlxuICAgICAgTWVzc2FnZVxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlXG4gICAgICAgIGZzLWxpc3QtY2VsbFxuICAgICAgICBsZXQtcm93PVwicm93XCI+XG4gICAgICA8YVxuICAgICAgICAgIGhyZWY9XCJqYXZhc2NyaXB0OjtcIlxuICAgICAgICAgIChjbGljayk9XCJvcGVuKHJvdylcIj5cbiAgICAgICAge3sgcm93Lm1lc3NhZ2UgfX1cbiAgICAgIDwvYT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2ZzLWxpc3QtY29sdW1uPlxuICA8ZnMtbGlzdC1jb2x1bW4gY2xhc3M9XCJjb2wtZGF0ZVwiPlxuICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWhlYWRlcj5cbiAgICAgIFR5cGVcbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICBmcy1saXN0LWNlbGxcbiAgICAgICAgbGV0LXJvdz1cInJvd1wiPlxuICAgICAge3sgTG9nVHlwZXNbcm93LnR5cGVdIH19XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9mcy1saXN0LWNvbHVtbj5cbiAgPGZzLWxpc3QtY29sdW1uIGNsYXNzPVwiY29sLWRhdGVcIj5cbiAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1oZWFkZXI+XG4gICAgICBEYXRlXG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgZnMtbGlzdC1jZWxsXG4gICAgICAgIGxldC1yb3c9XCJyb3dcIj5cbiAgICAgIDxmcy1kYXRlLWFnbyBbZGF0ZV09XCJyb3cuY3JlYXRlRGF0ZVwiPjwvZnMtZGF0ZS1hZ28+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9mcy1saXN0LWNvbHVtbj5cbjwvZnMtbGlzdD4iXX0=