@firestitch/system 18.0.8 → 18.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/modules/system/components/cron/cron.component.d.ts +0 -4
- package/app/modules/system/components/cron-logs/cron-logs.component.d.ts +18 -0
- package/app/modules/system/components/cron-logs/index.d.ts +1 -0
- package/app/modules/system/fs-system.module.d.ts +2 -1
- package/esm2022/app/modules/system/components/cron/cron.component.mjs +10 -56
- package/esm2022/app/modules/system/components/cron-log/cron-log.component.mjs +3 -3
- package/esm2022/app/modules/system/components/cron-logs/cron-logs.component.mjs +81 -0
- package/esm2022/app/modules/system/components/cron-logs/index.mjs +2 -0
- package/esm2022/app/modules/system/components/crons/crons.component.mjs +20 -11
- package/esm2022/app/modules/system/data/cron.data.mjs +1 -1
- package/esm2022/app/modules/system/fs-system.module.mjs +7 -3
- package/fesm2022/firestitch-system.mjs +97 -61
- package/fesm2022/firestitch-system.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -6,16 +6,12 @@ export declare class CronComponent implements OnInit {
|
|
|
6
6
|
tabIndex: number;
|
|
7
7
|
CronStates: {};
|
|
8
8
|
CronProcessStates: {};
|
|
9
|
-
CronLogStates: {};
|
|
10
|
-
CronLogStateColors: {};
|
|
11
9
|
config: FsListConfig;
|
|
12
10
|
cronActions: any;
|
|
13
11
|
private _cronData;
|
|
14
|
-
private _dialog;
|
|
15
12
|
private _cdRef;
|
|
16
13
|
private _data;
|
|
17
14
|
ngOnInit(): void;
|
|
18
|
-
cronLogOpen(cronLog: any): void;
|
|
19
15
|
cronActionClick(cronAction: any): void;
|
|
20
16
|
selectedIndexChange(index: any): void;
|
|
21
17
|
load(): void;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
|
+
import { FsListConfig } from '@firestitch/list';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class CronLogsComponent implements OnInit {
|
|
5
|
+
cron: any;
|
|
6
|
+
CronLogStateColors: {};
|
|
7
|
+
config: FsListConfig;
|
|
8
|
+
CronLogStates: {};
|
|
9
|
+
cronActions: any;
|
|
10
|
+
private _cronData;
|
|
11
|
+
private _dialog;
|
|
12
|
+
private _data;
|
|
13
|
+
ngOnInit(): void;
|
|
14
|
+
cronLogOpen(cronLog: any): void;
|
|
15
|
+
load(): void;
|
|
16
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CronLogsComponent, never>;
|
|
17
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CronLogsComponent, "app-cron-logs", never, { "cron": { "alias": "cron"; "required": false; }; }, {}, never, never, true, never>;
|
|
18
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './cron-logs.component';
|
|
@@ -39,9 +39,10 @@ import * as i35 from "@firestitch/datepicker";
|
|
|
39
39
|
import * as i36 from "@firestitch/menu";
|
|
40
40
|
import * as i37 from "@firestitch/popover";
|
|
41
41
|
import * as i38 from "@firestitch/colorpicker";
|
|
42
|
+
import * as i39 from "./components/cron-logs/cron-logs.component";
|
|
42
43
|
export declare class FsSystemModule {
|
|
43
44
|
static forRoot(config: FsSystemConfig): ModuleWithProviders<FsSystemModule>;
|
|
44
45
|
static ɵfac: i0.ɵɵFactoryDeclaration<FsSystemModule, never>;
|
|
45
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<FsSystemModule, [typeof i1.DashboardComponent, typeof i2.CronNextRunComponent, typeof i3.CronsComponent, typeof i4.SettingsComponent, typeof i5.KeyNameValuePipe, typeof i6.ProcessesComponent, typeof i7.ServerLogComponent, typeof i8.ServerLogsComponent, typeof i9.UpgradeLogsComponent, typeof i10.ApiLogsComponent, typeof i11.ApiLogComponent, typeof i12.InfoComponent, typeof i13.ProcessComponent, typeof i14.CronComponent, typeof i15.CronLogComponent], [typeof i16.CommonModule, typeof i17.FormsModule, typeof i18.MatButtonModule, typeof i19.MatExpansionModule, typeof i20.MatTooltipModule, typeof i21.MatIconModule, typeof i22.MatFormFieldModule, typeof i23.MatInputModule, typeof i24.MatSelectModule, typeof i25.MatDialogModule, typeof i26.MatProgressSpinnerModule, typeof i27.MatTabsModule, typeof i28.FsDateModule, typeof i29.FsSkeletonModule, typeof i30.FsListModule, typeof i31.FsFileModule, typeof i32.FsFileManagerModule, typeof i33.FsLabelModule, typeof i34.FsDialogModule, typeof i35.FsDatePickerModule, typeof i36.FsMenuModule, typeof i37.FsPopoverModule, typeof i38.FsColorPickerModule], [typeof i1.DashboardComponent, typeof i3.CronsComponent, typeof i4.SettingsComponent, typeof i6.ProcessesComponent, typeof i8.ServerLogsComponent, typeof i9.UpgradeLogsComponent, typeof i10.ApiLogsComponent, typeof i12.InfoComponent]>;
|
|
46
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<FsSystemModule, [typeof i1.DashboardComponent, typeof i2.CronNextRunComponent, typeof i3.CronsComponent, typeof i4.SettingsComponent, typeof i5.KeyNameValuePipe, typeof i6.ProcessesComponent, typeof i7.ServerLogComponent, typeof i8.ServerLogsComponent, typeof i9.UpgradeLogsComponent, typeof i10.ApiLogsComponent, typeof i11.ApiLogComponent, typeof i12.InfoComponent, typeof i13.ProcessComponent, typeof i14.CronComponent, typeof i15.CronLogComponent], [typeof i16.CommonModule, typeof i17.FormsModule, typeof i18.MatButtonModule, typeof i19.MatExpansionModule, typeof i20.MatTooltipModule, typeof i21.MatIconModule, typeof i22.MatFormFieldModule, typeof i23.MatInputModule, typeof i24.MatSelectModule, typeof i25.MatDialogModule, typeof i26.MatProgressSpinnerModule, typeof i27.MatTabsModule, typeof i28.FsDateModule, typeof i29.FsSkeletonModule, typeof i30.FsListModule, typeof i31.FsFileModule, typeof i32.FsFileManagerModule, typeof i33.FsLabelModule, typeof i34.FsDialogModule, typeof i35.FsDatePickerModule, typeof i36.FsMenuModule, typeof i37.FsPopoverModule, typeof i38.FsColorPickerModule, typeof i39.CronLogsComponent], [typeof i1.DashboardComponent, typeof i3.CronsComponent, typeof i4.SettingsComponent, typeof i6.ProcessesComponent, typeof i8.ServerLogsComponent, typeof i9.UpgradeLogsComponent, typeof i10.ApiLogsComponent, typeof i12.InfoComponent]>;
|
|
46
47
|
static ɵinj: i0.ɵɵInjectorDeclaration<FsSystemModule>;
|
|
47
48
|
}
|
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, inject } from '@angular/core';
|
|
2
|
-
import { MAT_DIALOG_DATA
|
|
3
|
-
import { ItemType } from '@firestitch/filter';
|
|
2
|
+
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
4
3
|
import { CronProcessStates, CronStates } from '../../consts';
|
|
5
|
-
import { CronLogStates } from '../../consts/cron-log-states.const';
|
|
6
4
|
import { CronData } from '../../data/cron.data';
|
|
7
5
|
import { indexNameValue } from '../../helpers/index-name-value';
|
|
8
|
-
import { CronLogComponent } from '../cron-log';
|
|
9
6
|
import * as i0 from "@angular/core";
|
|
10
7
|
import * as i1 from "@angular/common";
|
|
11
8
|
import * as i2 from "@angular/material/button";
|
|
@@ -13,37 +10,21 @@ import * as i3 from "@angular/material/dialog";
|
|
|
13
10
|
import * as i4 from "@angular/material/tabs";
|
|
14
11
|
import * as i5 from "@firestitch/date";
|
|
15
12
|
import * as i6 from "@firestitch/skeleton";
|
|
16
|
-
import * as i7 from "@firestitch/
|
|
17
|
-
import * as i8 from "@firestitch/
|
|
18
|
-
import * as i9 from "
|
|
13
|
+
import * as i7 from "@firestitch/label";
|
|
14
|
+
import * as i8 from "@firestitch/dialog";
|
|
15
|
+
import * as i9 from "../cron-logs/cron-logs.component";
|
|
19
16
|
export class CronComponent {
|
|
20
17
|
cron;
|
|
21
18
|
tabIndex = 0;
|
|
22
19
|
CronStates = indexNameValue(CronStates);
|
|
23
20
|
CronProcessStates = indexNameValue(CronProcessStates);
|
|
24
|
-
CronLogStates = indexNameValue(CronLogStates);
|
|
25
|
-
CronLogStateColors = {};
|
|
26
21
|
config;
|
|
27
22
|
cronActions;
|
|
28
23
|
_cronData = inject(CronData);
|
|
29
|
-
_dialog = inject(MatDialog);
|
|
30
24
|
_cdRef = inject(ChangeDetectorRef);
|
|
31
25
|
_data = inject(MAT_DIALOG_DATA);
|
|
32
26
|
ngOnInit() {
|
|
33
27
|
this.load();
|
|
34
|
-
this.CronLogStateColors = CronLogStates
|
|
35
|
-
.reduce((accum, cronLogState) => {
|
|
36
|
-
accum[cronLogState.value] = cronLogState.color;
|
|
37
|
-
return accum;
|
|
38
|
-
}, {});
|
|
39
|
-
}
|
|
40
|
-
cronLogOpen(cronLog) {
|
|
41
|
-
this._dialog.open(CronLogComponent, {
|
|
42
|
-
data: {
|
|
43
|
-
cronLog,
|
|
44
|
-
},
|
|
45
|
-
width: '85%',
|
|
46
|
-
});
|
|
47
28
|
}
|
|
48
29
|
cronActionClick(cronAction) {
|
|
49
30
|
cronAction
|
|
@@ -56,42 +37,15 @@ export class CronComponent {
|
|
|
56
37
|
this.tabIndex = index;
|
|
57
38
|
}
|
|
58
39
|
load() {
|
|
59
|
-
|
|
40
|
+
this._cronData
|
|
41
|
+
.get(this._data.cron.id, {
|
|
60
42
|
timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
|
|
61
|
-
}
|
|
62
|
-
this._cronData.get(this._data.cron.id, query)
|
|
43
|
+
})
|
|
63
44
|
.subscribe((cron) => {
|
|
64
45
|
this.cron = {
|
|
65
46
|
...this._data.cron,
|
|
66
47
|
...cron,
|
|
67
48
|
};
|
|
68
|
-
if (this._data.loadCronLogs) {
|
|
69
|
-
this.config = {
|
|
70
|
-
filters: [
|
|
71
|
-
{
|
|
72
|
-
type: ItemType.Select,
|
|
73
|
-
name: 'state',
|
|
74
|
-
label: 'Status',
|
|
75
|
-
values: [
|
|
76
|
-
{ name: 'All', value: null },
|
|
77
|
-
...CronLogStates,
|
|
78
|
-
],
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
type: ItemType.DateRange,
|
|
82
|
-
name: 'date',
|
|
83
|
-
label: ['From Date', 'To Date'],
|
|
84
|
-
},
|
|
85
|
-
],
|
|
86
|
-
fetch: (query) => {
|
|
87
|
-
query = {
|
|
88
|
-
...query,
|
|
89
|
-
cronId: this.cron.id,
|
|
90
|
-
};
|
|
91
|
-
return this._data.loadCronLogs(query);
|
|
92
|
-
},
|
|
93
|
-
};
|
|
94
|
-
}
|
|
95
49
|
this.cronActions = this._data.cronActions
|
|
96
50
|
.filter((cronLogAction) => {
|
|
97
51
|
return cronLogAction.show(this.cron);
|
|
@@ -100,10 +54,10 @@ export class CronComponent {
|
|
|
100
54
|
});
|
|
101
55
|
}
|
|
102
56
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CronComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
103
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: CronComponent, selector: "ng-component", ngImport: i0, template: "<fs-dialog *fsSkeleton=\"cron\">\n <h1 mat-dialog-title>\n Cron\n <div class=\"small\">\n {{ cron.name }}\n </div>\n </h1>\n <mat-dialog-content>\n <mat-tab-group (selectedIndexChange)=\"selectedIndexChange($event)\">\n <mat-tab label=\"Overview\">\n <div class=\"fs-row.gap-lg.wrap.align-start\">\n <fs-label-field>\n <fs-label>\n Status\n </fs-label>\n {{ CronStates[cron.state] }}\n </fs-label-field>\n <fs-label-field *ngIf=\"cron.cronSetting\">\n <fs-label>\n Run Frequency\n </fs-label>\n {{ cron.cronSetting.summary }}\n </fs-label-field>\n <fs-label-field>\n <fs-label>\n Process ID\n </fs-label>\n {{ cron.processId || 'None' }}\n <ng-container *ngIf=\"cron.processId\">\n <div class=\"small\">\n {{ CronProcessStates[cron.processState] || 'Unknown' }}\n </div>\n </ng-container>\n </fs-label-field>\n <fs-label-field>\n <fs-label>\n Last Ran\n </fs-label>\n <ng-container *ngIf=\"cron.duration===null; else lastRan\">\n Never\n </ng-container>\n <ng-template #lastRan>\n <fs-date-ago [date]=\"cron.createDate\"></fs-date-ago>\n <div>\n <small *ngIf=\"cron.duration\">\n Duration: {{ cron.duration | fsDateDuration }}\n </small>\n </div>\n </ng-template>\n </fs-label-field>\n <fs-label-field>\n <fs-label>\n Timeout hours\n </fs-label>\n {{ cron.cronSetting?.timeout || 'N/A' }}\n </fs-label-field>\n </div>\n <fs-label-field *ngIf=\"cron.message\">\n <fs-label>\n Last Message\n </fs-label>\n <div class=\"message\">\n {{ cron.message }}\n </div>\n </fs-label-field>\n </mat-tab>\n <mat-tab\n label=\"Logs\"\n *ngIf=\"config\">\n <ng-template matTabContent>\n <
|
|
57
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: CronComponent, selector: "ng-component", ngImport: i0, template: "<fs-dialog *fsSkeleton=\"cron\">\n <h1 mat-dialog-title>\n Cron\n <div class=\"small\">\n {{ cron.name }}\n </div>\n </h1>\n <mat-dialog-content>\n <mat-tab-group (selectedIndexChange)=\"selectedIndexChange($event)\">\n <mat-tab label=\"Overview\">\n <div class=\"fs-row.gap-lg.wrap.align-start\">\n <fs-label-field>\n <fs-label>\n Status\n </fs-label>\n {{ CronStates[cron.state] }}\n </fs-label-field>\n <fs-label-field *ngIf=\"cron.cronSetting\">\n <fs-label>\n Run Frequency\n </fs-label>\n {{ cron.cronSetting.summary }}\n </fs-label-field>\n <fs-label-field>\n <fs-label>\n Process ID\n </fs-label>\n {{ cron.processId || 'None' }}\n <ng-container *ngIf=\"cron.processId\">\n <div class=\"small\">\n {{ CronProcessStates[cron.processState] || 'Unknown' }}\n </div>\n </ng-container>\n </fs-label-field>\n <fs-label-field>\n <fs-label>\n Last Ran\n </fs-label>\n <ng-container *ngIf=\"cron.duration===null; else lastRan\">\n Never\n </ng-container>\n <ng-template #lastRan>\n <fs-date-ago [date]=\"cron.createDate\"></fs-date-ago>\n <div>\n <small *ngIf=\"cron.duration\">\n Duration: {{ cron.duration | fsDateDuration }}\n </small>\n </div>\n </ng-template>\n </fs-label-field>\n <fs-label-field>\n <fs-label>\n Timeout hours\n </fs-label>\n {{ cron.cronSetting?.timeout || 'N/A' }}\n </fs-label-field>\n </div>\n <fs-label-field *ngIf=\"cron.message\">\n <fs-label>\n Last Message\n </fs-label>\n <div class=\"message\">\n {{ cron.message }}\n </div>\n </fs-label-field>\n </mat-tab>\n <mat-tab\n label=\"Logs\"\n *ngIf=\"config\">\n <ng-template matTabContent>\n <app-cron-logs [cron]=\"cron\"></app-cron-logs>\n </ng-template>\n </mat-tab>\n </mat-tab-group>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button\n mat-button\n [mat-dialog-close]=\"true\"\n color=\"primary\">\n Done\n </button>\n <ng-container *ngIf=\"tabIndex === 0\">\n <button\n *ngFor=\"let cronAction of cronActions\"\n mat-button\n (click)=\"cronActionClick(cronAction)\">\n {{ cronAction.label }}\n </button>\n </ng-container>\n </mat-dialog-actions>\n</fs-dialog>", styles: [":host ::ng-deep .col-message .message{white-space:break-spaces;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}:host ::ng-deep .col-date{white-space:nowrap}h1 .small{line-height:normal}.row{display:flex;flex-wrap:wrap}.row fs-label-field:not(:last-child){margin-right:40px}.message{white-space:pre-line}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i3.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i3.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i3.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i4.MatTabContent, selector: "[matTabContent]" }, { kind: "component", type: i4.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: i4.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "component", type: i5.FsDateAgoComponent, selector: "fs-date-ago", inputs: ["date", "showTime", "format", "showTooltip", "tooltipDateFormat"] }, { kind: "directive", type: i6.FsSkeletonContentDirective, selector: "[fsSkeleton]", inputs: ["fsSkeleton", "fsSkeletonPattern"] }, { kind: "component", type: i7.FsLabelComponent, selector: "fs-label" }, { kind: "component", type: i7.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["appearance", "showOutline", "disabled", "focused", "hoverable", "padless"] }, { kind: "component", type: i8.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode", "mobileButtonPlacement", "mobileWidth", "mode", "buttonLayout"] }, { kind: "component", type: i9.CronLogsComponent, selector: "app-cron-logs", inputs: ["cron"] }, { kind: "pipe", type: i5.FsDateDurationPipe, name: "fsDateDuration" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
104
58
|
}
|
|
105
59
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CronComponent, decorators: [{
|
|
106
60
|
type: Component,
|
|
107
|
-
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<fs-dialog *fsSkeleton=\"cron\">\n <h1 mat-dialog-title>\n Cron\n <div class=\"small\">\n {{ cron.name }}\n </div>\n </h1>\n <mat-dialog-content>\n <mat-tab-group (selectedIndexChange)=\"selectedIndexChange($event)\">\n <mat-tab label=\"Overview\">\n <div class=\"fs-row.gap-lg.wrap.align-start\">\n <fs-label-field>\n <fs-label>\n Status\n </fs-label>\n {{ CronStates[cron.state] }}\n </fs-label-field>\n <fs-label-field *ngIf=\"cron.cronSetting\">\n <fs-label>\n Run Frequency\n </fs-label>\n {{ cron.cronSetting.summary }}\n </fs-label-field>\n <fs-label-field>\n <fs-label>\n Process ID\n </fs-label>\n {{ cron.processId || 'None' }}\n <ng-container *ngIf=\"cron.processId\">\n <div class=\"small\">\n {{ CronProcessStates[cron.processState] || 'Unknown' }}\n </div>\n </ng-container>\n </fs-label-field>\n <fs-label-field>\n <fs-label>\n Last Ran\n </fs-label>\n <ng-container *ngIf=\"cron.duration===null; else lastRan\">\n Never\n </ng-container>\n <ng-template #lastRan>\n <fs-date-ago [date]=\"cron.createDate\"></fs-date-ago>\n <div>\n <small *ngIf=\"cron.duration\">\n Duration: {{ cron.duration | fsDateDuration }}\n </small>\n </div>\n </ng-template>\n </fs-label-field>\n <fs-label-field>\n <fs-label>\n Timeout hours\n </fs-label>\n {{ cron.cronSetting?.timeout || 'N/A' }}\n </fs-label-field>\n </div>\n <fs-label-field *ngIf=\"cron.message\">\n <fs-label>\n Last Message\n </fs-label>\n <div class=\"message\">\n {{ cron.message }}\n </div>\n </fs-label-field>\n </mat-tab>\n <mat-tab\n label=\"Logs\"\n *ngIf=\"config\">\n <ng-template matTabContent>\n <
|
|
61
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<fs-dialog *fsSkeleton=\"cron\">\n <h1 mat-dialog-title>\n Cron\n <div class=\"small\">\n {{ cron.name }}\n </div>\n </h1>\n <mat-dialog-content>\n <mat-tab-group (selectedIndexChange)=\"selectedIndexChange($event)\">\n <mat-tab label=\"Overview\">\n <div class=\"fs-row.gap-lg.wrap.align-start\">\n <fs-label-field>\n <fs-label>\n Status\n </fs-label>\n {{ CronStates[cron.state] }}\n </fs-label-field>\n <fs-label-field *ngIf=\"cron.cronSetting\">\n <fs-label>\n Run Frequency\n </fs-label>\n {{ cron.cronSetting.summary }}\n </fs-label-field>\n <fs-label-field>\n <fs-label>\n Process ID\n </fs-label>\n {{ cron.processId || 'None' }}\n <ng-container *ngIf=\"cron.processId\">\n <div class=\"small\">\n {{ CronProcessStates[cron.processState] || 'Unknown' }}\n </div>\n </ng-container>\n </fs-label-field>\n <fs-label-field>\n <fs-label>\n Last Ran\n </fs-label>\n <ng-container *ngIf=\"cron.duration===null; else lastRan\">\n Never\n </ng-container>\n <ng-template #lastRan>\n <fs-date-ago [date]=\"cron.createDate\"></fs-date-ago>\n <div>\n <small *ngIf=\"cron.duration\">\n Duration: {{ cron.duration | fsDateDuration }}\n </small>\n </div>\n </ng-template>\n </fs-label-field>\n <fs-label-field>\n <fs-label>\n Timeout hours\n </fs-label>\n {{ cron.cronSetting?.timeout || 'N/A' }}\n </fs-label-field>\n </div>\n <fs-label-field *ngIf=\"cron.message\">\n <fs-label>\n Last Message\n </fs-label>\n <div class=\"message\">\n {{ cron.message }}\n </div>\n </fs-label-field>\n </mat-tab>\n <mat-tab\n label=\"Logs\"\n *ngIf=\"config\">\n <ng-template matTabContent>\n <app-cron-logs [cron]=\"cron\"></app-cron-logs>\n </ng-template>\n </mat-tab>\n </mat-tab-group>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button\n mat-button\n [mat-dialog-close]=\"true\"\n color=\"primary\">\n Done\n </button>\n <ng-container *ngIf=\"tabIndex === 0\">\n <button\n *ngFor=\"let cronAction of cronActions\"\n mat-button\n (click)=\"cronActionClick(cronAction)\">\n {{ cronAction.label }}\n </button>\n </ng-container>\n </mat-dialog-actions>\n</fs-dialog>", styles: [":host ::ng-deep .col-message .message{white-space:break-spaces;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}:host ::ng-deep .col-date{white-space:nowrap}h1 .small{line-height:normal}.row{display:flex;flex-wrap:wrap}.row fs-label-field:not(:last-child){margin-right:40px}.message{white-space:pre-line}\n"] }]
|
|
108
62
|
}] });
|
|
109
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvc3lzdGVtL2NvbXBvbmVudHMvY3Jvbi9jcm9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vY29tcG9uZW50cy9jcm9uL2Nyb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFdEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV0RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHOUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7Ozs7Ozs7O0FBUS9DLE1BQU0sT0FBTyxhQUFhO0lBRWpCLElBQUksQ0FBQztJQUNMLFFBQVEsR0FBRyxDQUFDLENBQUM7SUFDYixVQUFVLEdBQUcsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3hDLGlCQUFpQixHQUFHLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3RELGFBQWEsR0FBRyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDOUMsa0JBQWtCLEdBQUcsRUFBRSxDQUFDO0lBRXhCLE1BQU0sQ0FBZTtJQUNyQixXQUFXLENBQUM7SUFFWCxTQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdCLE9BQU8sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ25DLEtBQUssR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7SUFFakMsUUFBUTtRQUNiLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNaLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxhQUFhO2FBQ3BDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsRUFBRTtZQUM5QixLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUM7WUFFL0MsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRU0sV0FBVyxDQUFDLE9BQU87UUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDbEMsSUFBSSxFQUFFO2dCQUNKLE9BQU87YUFDUjtZQUNELEtBQUssRUFBRSxLQUFLO1NBQ2IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLGVBQWUsQ0FBQyxVQUFVO1FBQy9CLFVBQVU7YUFDUCxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzthQUNqQixTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sbUJBQW1CLENBQUMsS0FBSztRQUM5QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBRU0sSUFBSTtRQUNULE1BQU0sS0FBSyxHQUFHO1lBQ1osUUFBUSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRO1NBQzNELENBQUM7UUFFRixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDO2FBQzFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxJQUFJLEdBQUc7Z0JBQ1YsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUk7Z0JBQ2xCLEdBQUcsSUFBSTthQUNSLENBQUM7WUFFRixJQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxNQUFNLEdBQUc7b0JBQ1osT0FBTyxFQUFFO3dCQUNQOzRCQUNFLElBQUksRUFBRSxRQUFRLENBQUMsTUFBTTs0QkFDckIsSUFBSSxFQUFFLE9BQU87NEJBQ2IsS0FBSyxFQUFFLFFBQVE7NEJBQ2YsTUFBTSxFQUFFO2dDQUNOLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO2dDQUM1QixHQUFHLGFBQWE7NkJBQ2pCO3lCQUNGO3dCQUNEOzRCQUNFLElBQUksRUFBRSxRQUFRLENBQUMsU0FBUzs0QkFDeEIsSUFBSSxFQUFFLE1BQU07NEJBQ1osS0FBSyxFQUFFLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQzt5QkFDaEM7cUJBQ0Y7b0JBQ0QsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7d0JBQ2YsS0FBSyxHQUFHOzRCQUNOLEdBQUcsS0FBSzs0QkFDUixNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO3lCQUNyQixDQUFDO3dCQUVGLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3hDLENBQUM7aUJBQ0YsQ0FBQztZQUNKLENBQUM7WUFFRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVztpQkFDdEMsTUFBTSxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUU7Z0JBQ3hCLE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdkMsQ0FBQyxDQUFDLENBQUM7WUFFTCxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzt1R0FoR1UsYUFBYTsyRkFBYixhQUFhLG9EQ25CMUIsazNJQXlJWTs7MkZEdEhDLGFBQWE7a0JBTHpCLFNBQVM7c0NBR1MsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbmltcG9ydCB7IEl0ZW1UeXBlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvZmlsdGVyJztcbmltcG9ydCB7IEZzTGlzdENvbmZpZyB9IGZyb20gJ0BmaXJlc3RpdGNoL2xpc3QnO1xuXG5pbXBvcnQgeyBDcm9uUHJvY2Vzc1N0YXRlcywgQ3JvblN0YXRlcyB9IGZyb20gJy4uLy4uL2NvbnN0cyc7XG5pbXBvcnQgeyBDcm9uTG9nU3RhdGVzIH0gZnJvbSAnLi4vLi4vY29uc3RzL2Nyb24tbG9nLXN0YXRlcy5jb25zdCc7XG5pbXBvcnQgeyBDcm9uRGF0YSB9IGZyb20gJy4uLy4uL2RhdGEvY3Jvbi5kYXRhJztcbmltcG9ydCB7IGluZGV4TmFtZVZhbHVlIH0gZnJvbSAnLi4vLi4vaGVscGVycy9pbmRleC1uYW1lLXZhbHVlJztcbmltcG9ydCB7IENyb25Mb2dDb21wb25lbnQgfSBmcm9tICcuLi9jcm9uLWxvZyc7XG5cblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi9jcm9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3Jvbi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQ3JvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgcHVibGljIGNyb247XG4gIHB1YmxpYyB0YWJJbmRleCA9IDA7XG4gIHB1YmxpYyBDcm9uU3RhdGVzID0gaW5kZXhOYW1lVmFsdWUoQ3JvblN0YXRlcyk7XG4gIHB1YmxpYyBDcm9uUHJvY2Vzc1N0YXRlcyA9IGluZGV4TmFtZVZhbHVlKENyb25Qcm9jZXNzU3RhdGVzKTtcbiAgcHVibGljIENyb25Mb2dTdGF0ZXMgPSBpbmRleE5hbWVWYWx1ZShDcm9uTG9nU3RhdGVzKTtcbiAgcHVibGljIENyb25Mb2dTdGF0ZUNvbG9ycyA9IHt9O1xuXG4gIHB1YmxpYyBjb25maWc6IEZzTGlzdENvbmZpZztcbiAgcHVibGljIGNyb25BY3Rpb25zO1xuICBcbiAgcHJpdmF0ZSBfY3JvbkRhdGEgPSBpbmplY3QoQ3JvbkRhdGEpO1xuICBwcml2YXRlIF9kaWFsb2cgPSBpbmplY3QoTWF0RGlhbG9nKTtcbiAgcHJpdmF0ZSBfY2RSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBwcml2YXRlIF9kYXRhID0gaW5qZWN0KE1BVF9ESUFMT0dfREFUQSk7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubG9hZCgpO1xuICAgIHRoaXMuQ3JvbkxvZ1N0YXRlQ29sb3JzID0gQ3JvbkxvZ1N0YXRlc1xuICAgICAgLnJlZHVjZSgoYWNjdW0sIGNyb25Mb2dTdGF0ZSkgPT4ge1xuICAgICAgICBhY2N1bVtjcm9uTG9nU3RhdGUudmFsdWVdID0gY3JvbkxvZ1N0YXRlLmNvbG9yO1xuXG4gICAgICAgIHJldHVybiBhY2N1bTtcbiAgICAgIH0sIHt9KTtcbiAgfVxuXG4gIHB1YmxpYyBjcm9uTG9nT3Blbihjcm9uTG9nKTogdm9pZCB7XG4gICAgdGhpcy5fZGlhbG9nLm9wZW4oQ3JvbkxvZ0NvbXBvbmVudCwge1xuICAgICAgZGF0YTogeyBcbiAgICAgICAgY3JvbkxvZyxcbiAgICAgIH0sXG4gICAgICB3aWR0aDogJzg1JScsXG4gICAgfSk7ICAgIFxuICB9XG5cbiAgcHVibGljIGNyb25BY3Rpb25DbGljayhjcm9uQWN0aW9uKSB7XG4gICAgY3JvbkFjdGlvblxuICAgICAgLmFjdGlvbih0aGlzLmNyb24pXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5sb2FkKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RlZEluZGV4Q2hhbmdlKGluZGV4KSB7XG4gICAgdGhpcy50YWJJbmRleCA9IGluZGV4O1xuICB9XG5cbiAgcHVibGljIGxvYWQoKTogdm9pZCB7XG4gICAgY29uc3QgcXVlcnkgPSB7XG4gICAgICB0aW1lem9uZTogSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lLFxuICAgIH07XG5cbiAgICB0aGlzLl9jcm9uRGF0YS5nZXQodGhpcy5fZGF0YS5jcm9uLmlkLCBxdWVyeSlcbiAgICAgIC5zdWJzY3JpYmUoKGNyb24pID0+IHtcbiAgICAgICAgdGhpcy5jcm9uID0ge1xuICAgICAgICAgIC4uLnRoaXMuX2RhdGEuY3JvbixcbiAgICAgICAgICAuLi5jcm9uLFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmKHRoaXMuX2RhdGEubG9hZENyb25Mb2dzKSB7XG4gICAgICAgICAgdGhpcy5jb25maWcgPSB7XG4gICAgICAgICAgICBmaWx0ZXJzOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0eXBlOiBJdGVtVHlwZS5TZWxlY3QsXG4gICAgICAgICAgICAgICAgbmFtZTogJ3N0YXRlJyxcbiAgICAgICAgICAgICAgICBsYWJlbDogJ1N0YXR1cycsXG4gICAgICAgICAgICAgICAgdmFsdWVzOiBbXG4gICAgICAgICAgICAgICAgICB7IG5hbWU6ICdBbGwnLCB2YWx1ZTogbnVsbCB9LFxuICAgICAgICAgICAgICAgICAgLi4uQ3JvbkxvZ1N0YXRlcyxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdHlwZTogSXRlbVR5cGUuRGF0ZVJhbmdlLFxuICAgICAgICAgICAgICAgIG5hbWU6ICdkYXRlJyxcbiAgICAgICAgICAgICAgICBsYWJlbDogWydGcm9tIERhdGUnLCAnVG8gRGF0ZSddLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSwgICAgICAgICAgXG4gICAgICAgICAgICBmZXRjaDogKHF1ZXJ5KSA9PiB7XG4gICAgICAgICAgICAgIHF1ZXJ5ID0ge1xuICAgICAgICAgICAgICAgIC4uLnF1ZXJ5LFxuICAgICAgICAgICAgICAgIGNyb25JZDogdGhpcy5jcm9uLmlkLFxuICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLl9kYXRhLmxvYWRDcm9uTG9ncyhxdWVyeSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNyb25BY3Rpb25zID0gdGhpcy5fZGF0YS5jcm9uQWN0aW9uc1xuICAgICAgICAgIC5maWx0ZXIoKGNyb25Mb2dBY3Rpb24pID0+IHtcbiAgICAgICAgICAgIHJldHVybiBjcm9uTG9nQWN0aW9uLnNob3codGhpcy5jcm9uKTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICB9XG59XG4iLCI8ZnMtZGlhbG9nICpmc1NrZWxldG9uPVwiY3JvblwiPlxuICA8aDEgbWF0LWRpYWxvZy10aXRsZT5cbiAgICBDcm9uXG4gICAgPGRpdiBjbGFzcz1cInNtYWxsXCI+XG4gICAgICB7eyBjcm9uLm5hbWUgfX1cbiAgICA8L2Rpdj5cbiAgPC9oMT5cbiAgPG1hdC1kaWFsb2ctY29udGVudD5cbiAgICA8bWF0LXRhYi1ncm91cCAoc2VsZWN0ZWRJbmRleENoYW5nZSk9XCJzZWxlY3RlZEluZGV4Q2hhbmdlKCRldmVudClcIj5cbiAgICAgIDxtYXQtdGFiIGxhYmVsPVwiT3ZlcnZpZXdcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZzLXJvdy5nYXAtbGcud3JhcC5hbGlnbi1zdGFydFwiPlxuICAgICAgICAgIDxmcy1sYWJlbC1maWVsZD5cbiAgICAgICAgICAgIDxmcy1sYWJlbD5cbiAgICAgICAgICAgICAgU3RhdHVzXG4gICAgICAgICAgICA8L2ZzLWxhYmVsPlxuICAgICAgICAgICAge3sgQ3JvblN0YXRlc1tjcm9uLnN0YXRlXSB9fVxuICAgICAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG4gICAgICAgICAgPGZzLWxhYmVsLWZpZWxkICpuZ0lmPVwiY3Jvbi5jcm9uU2V0dGluZ1wiPlxuICAgICAgICAgICAgPGZzLWxhYmVsPlxuICAgICAgICAgICAgICBSdW4gRnJlcXVlbmN5XG4gICAgICAgICAgICA8L2ZzLWxhYmVsPlxuICAgICAgICAgICAge3sgY3Jvbi5jcm9uU2V0dGluZy5zdW1tYXJ5IH19XG4gICAgICAgICAgPC9mcy1sYWJlbC1maWVsZD5cbiAgICAgICAgICA8ZnMtbGFiZWwtZmllbGQ+XG4gICAgICAgICAgICA8ZnMtbGFiZWw+XG4gICAgICAgICAgICAgIFByb2Nlc3MgSURcbiAgICAgICAgICAgIDwvZnMtbGFiZWw+XG4gICAgICAgICAgICB7eyBjcm9uLnByb2Nlc3NJZCB8fCAnTm9uZScgfX1cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjcm9uLnByb2Nlc3NJZFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic21hbGxcIj5cbiAgICAgICAgICAgICAgICB7eyBDcm9uUHJvY2Vzc1N0YXRlc1tjcm9uLnByb2Nlc3NTdGF0ZV0gfHwgJ1Vua25vd24nIH19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9mcy1sYWJlbC1maWVsZD5cbiAgICAgICAgICA8ZnMtbGFiZWwtZmllbGQ+XG4gICAgICAgICAgICA8ZnMtbGFiZWw+XG4gICAgICAgICAgICAgIExhc3QgUmFuXG4gICAgICAgICAgICA8L2ZzLWxhYmVsPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNyb24uZHVyYXRpb249PT1udWxsOyBlbHNlIGxhc3RSYW5cIj5cbiAgICAgICAgICAgICAgTmV2ZXJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNsYXN0UmFuPlxuICAgICAgICAgICAgICA8ZnMtZGF0ZS1hZ28gW2RhdGVdPVwiY3Jvbi5jcmVhdGVEYXRlXCI+PC9mcy1kYXRlLWFnbz5cbiAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICA8c21hbGwgKm5nSWY9XCJjcm9uLmR1cmF0aW9uXCI+XG4gICAgICAgICAgICAgICAgICBEdXJhdGlvbjoge3sgY3Jvbi5kdXJhdGlvbiB8IGZzRGF0ZUR1cmF0aW9uIH19XG4gICAgICAgICAgICAgICAgPC9zbWFsbD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG4gICAgICAgICAgPGZzLWxhYmVsLWZpZWxkPlxuICAgICAgICAgICAgPGZzLWxhYmVsPlxuICAgICAgICAgICAgICBUaW1lb3V0IGhvdXJzXG4gICAgICAgICAgICA8L2ZzLWxhYmVsPlxuICAgICAgICAgICAge3sgY3Jvbi5jcm9uU2V0dGluZz8udGltZW91dCB8fCAnTi9BJyB9fVxuICAgICAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZnMtbGFiZWwtZmllbGQgKm5nSWY9XCJjcm9uLm1lc3NhZ2VcIj5cbiAgICAgICAgICA8ZnMtbGFiZWw+XG4gICAgICAgICAgICBMYXN0IE1lc3NhZ2VcbiAgICAgICAgICA8L2ZzLWxhYmVsPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZXNzYWdlXCI+XG4gICAgICAgICAgICB7eyBjcm9uLm1lc3NhZ2UgfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mcy1sYWJlbC1maWVsZD5cbiAgICAgIDwvbWF0LXRhYj5cbiAgICAgIDxtYXQtdGFiXG4gICAgICAgICAgbGFiZWw9XCJMb2dzXCJcbiAgICAgICAgICAqbmdJZj1cImNvbmZpZ1wiPlxuICAgICAgICA8bmctdGVtcGxhdGUgbWF0VGFiQ29udGVudD5cbiAgICAgICAgICA8ZnMtbGlzdCBbY29uZmlnXT1cImNvbmZpZ1wiPlxuICAgICAgICAgICAgPGZzLWxpc3QtY29sdW1uXG4gICAgICAgICAgICAgICAgbmFtZT1cInN0YXRlXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cIlN0YXR1c1wiPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgIGZzLWxpc3QtY2VsbFxuICAgICAgICAgICAgICAgICAgbGV0LXJvdz1cInJvd1wiPlxuICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjcm9uTG9nT3Blbihyb3cpXCJcbiAgICAgICAgICAgICAgICAgICAgW25nU3R5bGVdPVwieyBjb2xvcjogQ3JvbkxvZ1N0YXRlQ29sb3JzW3Jvdy5zdGF0ZV0gfVwiPlxuICAgICAgICAgICAgICAgICAge3sgQ3JvbkxvZ1N0YXRlc1tyb3cuc3RhdGVdIHx8IHJvdy5zdGF0ZSB9fVxuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvZnMtbGlzdC1jb2x1bW4+XG4gICAgICAgICAgICA8ZnMtbGlzdC1jb2x1bW5cbiAgICAgICAgICAgICAgICB0aXRsZT1cIk1lc3NhZ2VcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sLW1lc3NhZ2VcIj5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICBmcy1saXN0LWNlbGxcbiAgICAgICAgICAgICAgICAgIGxldC1yb3c9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVzc2FnZVwiPlxuICAgICAgICAgICAgICAgICAge3sgcm93Lm1lc3NhZ2UgfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvZnMtbGlzdC1jb2x1bW4+XG4gICAgICAgICAgICA8ZnMtbGlzdC1jb2x1bW5cbiAgICAgICAgICAgICAgICB0aXRsZT1cIkR1cmF0aW9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNvbC1tZXNzYWdlXCI+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgZnMtbGlzdC1jZWxsXG4gICAgICAgICAgICAgICAgICBsZXQtcm93PVwicm93XCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJvdy5kdXJhdGlvblwiPlxuICAgICAgICAgICAgICAgICAge3sgcm93LmR1cmF0aW9uIHwgZnNEYXRlRHVyYXRpb246ICdob3VyLW1pbnV0ZS1zZWNvbmQnIH19XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2ZzLWxpc3QtY29sdW1uPlxuICAgICAgICAgICAgPGZzLWxpc3QtY29sdW1uXG4gICAgICAgICAgICAgICAgbmFtZT1cImNyZWF0ZV9kYXRlXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cIkRhdGVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sLWRhdGVcIj5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICBmcy1saXN0LWNlbGxcbiAgICAgICAgICAgICAgICAgIGxldC1yb3c9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICA8ZnMtZGF0ZS1hZ28gW2RhdGVdPVwicm93LmNyZWF0ZURhdGVcIj48L2ZzLWRhdGUtYWdvPlxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9mcy1saXN0LWNvbHVtbj5cbiAgICAgICAgICA8L2ZzLWxpc3Q+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L21hdC10YWI+XG4gICAgPC9tYXQtdGFiLWdyb3VwPlxuICA8L21hdC1kaWFsb2ctY29udGVudD5cbiAgPG1hdC1kaWFsb2ctYWN0aW9ucz5cbiAgICA8YnV0dG9uXG4gICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgW21hdC1kaWFsb2ctY2xvc2VdPVwidHJ1ZVwiXG4gICAgICAgIGNvbG9yPVwicHJpbWFyeVwiPlxuICAgICAgRG9uZVxuICAgIDwvYnV0dG9uPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0YWJJbmRleCA9PT0gMFwiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAgICpuZ0Zvcj1cImxldCBjcm9uQWN0aW9uIG9mIGNyb25BY3Rpb25zXCJcbiAgICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgICAgKGNsaWNrKT1cImNyb25BY3Rpb25DbGljayhjcm9uQWN0aW9uKVwiPlxuICAgICAgICB7eyBjcm9uQWN0aW9uLmxhYmVsIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9tYXQtZGlhbG9nLWFjdGlvbnM+XG48L2ZzLWRpYWxvZz4iXX0=
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvc3lzdGVtL2NvbXBvbmVudHMvY3Jvbi9jcm9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vY29tcG9uZW50cy9jcm9uL2Nyb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFdEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBSTNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDN0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7Ozs7Ozs7QUFRaEUsTUFBTSxPQUFPLGFBQWE7SUFFakIsSUFBSSxDQUFDO0lBQ0wsUUFBUSxHQUFHLENBQUMsQ0FBQztJQUNiLFVBQVUsR0FBRyxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDeEMsaUJBQWlCLEdBQUcsY0FBYyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFFdEQsTUFBTSxDQUFlO0lBQ3JCLFdBQVcsQ0FBQztJQUVYLFNBQVMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0IsTUFBTSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ25DLEtBQUssR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7SUFFakMsUUFBUTtRQUNiLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFTSxlQUFlLENBQUMsVUFBVTtRQUMvQixVQUFVO2FBQ1AsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7YUFDakIsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLG1CQUFtQixDQUFDLEtBQUs7UUFDOUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVNLElBQUk7UUFDVCxJQUFJLENBQUMsU0FBUzthQUNYLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUU7WUFDdkIsUUFBUSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRO1NBQzNELENBQUM7YUFDRCxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNsQixJQUFJLENBQUMsSUFBSSxHQUFHO2dCQUNWLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJO2dCQUNsQixHQUFHLElBQUk7YUFDUixDQUFDO1lBRUYsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVc7aUJBQ3RDLE1BQU0sQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFO2dCQUN4QixPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3ZDLENBQUMsQ0FBQyxDQUFDO1lBRUwsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7dUdBaERVLGFBQWE7MkZBQWIsYUFBYSxvRENoQjFCLHV3RkEyRlk7OzJGRDNFQyxhQUFhO2tCQUx6QixTQUFTO3NDQUdTLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgaW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuaW1wb3J0IHsgRnNMaXN0Q29uZmlnIH0gZnJvbSAnQGZpcmVzdGl0Y2gvbGlzdCc7XG5cbmltcG9ydCB7IENyb25Qcm9jZXNzU3RhdGVzLCBDcm9uU3RhdGVzIH0gZnJvbSAnLi4vLi4vY29uc3RzJztcbmltcG9ydCB7IENyb25EYXRhIH0gZnJvbSAnLi4vLi4vZGF0YS9jcm9uLmRhdGEnO1xuaW1wb3J0IHsgaW5kZXhOYW1lVmFsdWUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2luZGV4LW5hbWUtdmFsdWUnO1xuXG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vY3Jvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Nyb24uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIENyb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHB1YmxpYyBjcm9uO1xuICBwdWJsaWMgdGFiSW5kZXggPSAwO1xuICBwdWJsaWMgQ3JvblN0YXRlcyA9IGluZGV4TmFtZVZhbHVlKENyb25TdGF0ZXMpO1xuICBwdWJsaWMgQ3JvblByb2Nlc3NTdGF0ZXMgPSBpbmRleE5hbWVWYWx1ZShDcm9uUHJvY2Vzc1N0YXRlcyk7XG5cbiAgcHVibGljIGNvbmZpZzogRnNMaXN0Q29uZmlnO1xuICBwdWJsaWMgY3JvbkFjdGlvbnM7XG4gIFxuICBwcml2YXRlIF9jcm9uRGF0YSA9IGluamVjdChDcm9uRGF0YSk7XG4gIHByaXZhdGUgX2NkUmVmID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSBfZGF0YSA9IGluamVjdChNQVRfRElBTE9HX0RBVEEpO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWQoKTtcbiAgfVxuXG4gIHB1YmxpYyBjcm9uQWN0aW9uQ2xpY2soY3JvbkFjdGlvbikge1xuICAgIGNyb25BY3Rpb25cbiAgICAgIC5hY3Rpb24odGhpcy5jcm9uKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMubG9hZCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0ZWRJbmRleENoYW5nZShpbmRleCkge1xuICAgIHRoaXMudGFiSW5kZXggPSBpbmRleDtcbiAgfVxuXG4gIHB1YmxpYyBsb2FkKCk6IHZvaWQge1xuICAgIHRoaXMuX2Nyb25EYXRhXG4gICAgICAuZ2V0KHRoaXMuX2RhdGEuY3Jvbi5pZCwge1xuICAgICAgICB0aW1lem9uZTogSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lLFxuICAgICAgfSlcbiAgICAgIC5zdWJzY3JpYmUoKGNyb24pID0+IHtcbiAgICAgICAgdGhpcy5jcm9uID0ge1xuICAgICAgICAgIC4uLnRoaXMuX2RhdGEuY3JvbixcbiAgICAgICAgICAuLi5jcm9uLFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuY3JvbkFjdGlvbnMgPSB0aGlzLl9kYXRhLmNyb25BY3Rpb25zXG4gICAgICAgICAgLmZpbHRlcigoY3JvbkxvZ0FjdGlvbikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGNyb25Mb2dBY3Rpb24uc2hvdyh0aGlzLmNyb24pO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG4gIH1cbn1cbiIsIjxmcy1kaWFsb2cgKmZzU2tlbGV0b249XCJjcm9uXCI+XG4gIDxoMSBtYXQtZGlhbG9nLXRpdGxlPlxuICAgIENyb25cbiAgICA8ZGl2IGNsYXNzPVwic21hbGxcIj5cbiAgICAgIHt7IGNyb24ubmFtZSB9fVxuICAgIDwvZGl2PlxuICA8L2gxPlxuICA8bWF0LWRpYWxvZy1jb250ZW50PlxuICAgIDxtYXQtdGFiLWdyb3VwIChzZWxlY3RlZEluZGV4Q2hhbmdlKT1cInNlbGVjdGVkSW5kZXhDaGFuZ2UoJGV2ZW50KVwiPlxuICAgICAgPG1hdC10YWIgbGFiZWw9XCJPdmVydmlld1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZnMtcm93LmdhcC1sZy53cmFwLmFsaWduLXN0YXJ0XCI+XG4gICAgICAgICAgPGZzLWxhYmVsLWZpZWxkPlxuICAgICAgICAgICAgPGZzLWxhYmVsPlxuICAgICAgICAgICAgICBTdGF0dXNcbiAgICAgICAgICAgIDwvZnMtbGFiZWw+XG4gICAgICAgICAgICB7eyBDcm9uU3RhdGVzW2Nyb24uc3RhdGVdIH19XG4gICAgICAgICAgPC9mcy1sYWJlbC1maWVsZD5cbiAgICAgICAgICA8ZnMtbGFiZWwtZmllbGQgKm5nSWY9XCJjcm9uLmNyb25TZXR0aW5nXCI+XG4gICAgICAgICAgICA8ZnMtbGFiZWw+XG4gICAgICAgICAgICAgIFJ1biBGcmVxdWVuY3lcbiAgICAgICAgICAgIDwvZnMtbGFiZWw+XG4gICAgICAgICAgICB7eyBjcm9uLmNyb25TZXR0aW5nLnN1bW1hcnkgfX1cbiAgICAgICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxuICAgICAgICAgIDxmcy1sYWJlbC1maWVsZD5cbiAgICAgICAgICAgIDxmcy1sYWJlbD5cbiAgICAgICAgICAgICAgUHJvY2VzcyBJRFxuICAgICAgICAgICAgPC9mcy1sYWJlbD5cbiAgICAgICAgICAgIHt7IGNyb24ucHJvY2Vzc0lkIHx8ICdOb25lJyB9fVxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNyb24ucHJvY2Vzc0lkXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzbWFsbFwiPlxuICAgICAgICAgICAgICAgIHt7IENyb25Qcm9jZXNzU3RhdGVzW2Nyb24ucHJvY2Vzc1N0YXRlXSB8fCAnVW5rbm93bicgfX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxuICAgICAgICAgIDxmcy1sYWJlbC1maWVsZD5cbiAgICAgICAgICAgIDxmcy1sYWJlbD5cbiAgICAgICAgICAgICAgTGFzdCBSYW5cbiAgICAgICAgICAgIDwvZnMtbGFiZWw+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3Jvbi5kdXJhdGlvbj09PW51bGw7IGVsc2UgbGFzdFJhblwiPlxuICAgICAgICAgICAgICBOZXZlclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2xhc3RSYW4+XG4gICAgICAgICAgICAgIDxmcy1kYXRlLWFnbyBbZGF0ZV09XCJjcm9uLmNyZWF0ZURhdGVcIj48L2ZzLWRhdGUtYWdvPlxuICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgIDxzbWFsbCAqbmdJZj1cImNyb24uZHVyYXRpb25cIj5cbiAgICAgICAgICAgICAgICAgIER1cmF0aW9uOiB7eyBjcm9uLmR1cmF0aW9uIHwgZnNEYXRlRHVyYXRpb24gfX1cbiAgICAgICAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9mcy1sYWJlbC1maWVsZD5cbiAgICAgICAgICA8ZnMtbGFiZWwtZmllbGQ+XG4gICAgICAgICAgICA8ZnMtbGFiZWw+XG4gICAgICAgICAgICAgIFRpbWVvdXQgaG91cnNcbiAgICAgICAgICAgIDwvZnMtbGFiZWw+XG4gICAgICAgICAgICB7eyBjcm9uLmNyb25TZXR0aW5nPy50aW1lb3V0IHx8ICdOL0EnIH19XG4gICAgICAgICAgPC9mcy1sYWJlbC1maWVsZD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxmcy1sYWJlbC1maWVsZCAqbmdJZj1cImNyb24ubWVzc2FnZVwiPlxuICAgICAgICAgIDxmcy1sYWJlbD5cbiAgICAgICAgICAgIExhc3QgTWVzc2FnZVxuICAgICAgICAgIDwvZnMtbGFiZWw+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1lc3NhZ2VcIj5cbiAgICAgICAgICAgIHt7IGNyb24ubWVzc2FnZSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxuICAgICAgPC9tYXQtdGFiPlxuICAgICAgPG1hdC10YWJcbiAgICAgICAgICBsYWJlbD1cIkxvZ3NcIlxuICAgICAgICAgICpuZ0lmPVwiY29uZmlnXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBtYXRUYWJDb250ZW50PlxuICAgICAgICAgIDxhcHAtY3Jvbi1sb2dzIFtjcm9uXT1cImNyb25cIj48L2FwcC1jcm9uLWxvZ3M+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L21hdC10YWI+XG4gICAgPC9tYXQtdGFiLWdyb3VwPlxuICA8L21hdC1kaWFsb2ctY29udGVudD5cbiAgPG1hdC1kaWFsb2ctYWN0aW9ucz5cbiAgICA8YnV0dG9uXG4gICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgW21hdC1kaWFsb2ctY2xvc2VdPVwidHJ1ZVwiXG4gICAgICAgIGNvbG9yPVwicHJpbWFyeVwiPlxuICAgICAgRG9uZVxuICAgIDwvYnV0dG9uPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0YWJJbmRleCA9PT0gMFwiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAgICpuZ0Zvcj1cImxldCBjcm9uQWN0aW9uIG9mIGNyb25BY3Rpb25zXCJcbiAgICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgICAgKGNsaWNrKT1cImNyb25BY3Rpb25DbGljayhjcm9uQWN0aW9uKVwiPlxuICAgICAgICB7eyBjcm9uQWN0aW9uLmxhYmVsIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9tYXQtZGlhbG9nLWFjdGlvbnM+XG48L2ZzLWRpYWxvZz4iXX0=
|
|
@@ -27,13 +27,13 @@ export class CronLogComponent {
|
|
|
27
27
|
}, {});
|
|
28
28
|
}
|
|
29
29
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CronLogComponent, deps: [{ token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
30
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: CronLogComponent, selector: "ng-component", ngImport: i0, template: "<fs-dialog *fsSkeleton=\"cronLog\">\
|
|
30
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: CronLogComponent, selector: "ng-component", ngImport: i0, template: "<fs-dialog *fsSkeleton=\"cronLog\">\n <div mat-dialog-title>\n Cron Log\n </div>\n <mat-dialog-content>\n <div class=\"row\">\n <fs-label-field>\n <fs-label>\n Status\n </fs-label>\n <div [ngStyle]=\"{ color: CronLogStateColors[cronLog.state]}\">\n {{ CronLogStates[cronLog.state] || cronLog.state }}\n </div>\n </fs-label-field>\n <fs-label-field>\n <fs-label>\n Date\n </fs-label>\n <fs-date-ago [date]=\"cronLog.createDate\"></fs-date-ago>\n </fs-label-field>\n </div>\n <fs-label-field *ngIf=\"cronLog.message\">\n <fs-label>\n Message\n </fs-label>\n <div class=\"message\">\n {{ cronLog.message }}\n </div>\n </fs-label-field>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button\n mat-button\n [mat-dialog-close]=\"true\"\n color=\"primary\">\n Done\n </button>\n </mat-dialog-actions>\n</fs-dialog>", styles: [".message{white-space:pre-line}.row{display:flex;flex-wrap:wrap}.row fs-label-field:not(:last-child){margin-right:40px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i3.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i3.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i3.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i4.FsDateAgoComponent, selector: "fs-date-ago", inputs: ["date", "showTime", "format", "showTooltip", "tooltipDateFormat"] }, { kind: "directive", type: i5.FsSkeletonContentDirective, selector: "[fsSkeleton]", inputs: ["fsSkeleton", "fsSkeletonPattern"] }, { kind: "component", type: i6.FsLabelComponent, selector: "fs-label" }, { kind: "component", type: i6.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["appearance", "showOutline", "disabled", "focused", "hoverable", "padless"] }, { kind: "component", type: i7.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode", "mobileButtonPlacement", "mobileWidth", "mode", "buttonLayout"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
31
31
|
}
|
|
32
32
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CronLogComponent, decorators: [{
|
|
33
33
|
type: Component,
|
|
34
|
-
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<fs-dialog *fsSkeleton=\"cronLog\">\
|
|
34
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<fs-dialog *fsSkeleton=\"cronLog\">\n <div mat-dialog-title>\n Cron Log\n </div>\n <mat-dialog-content>\n <div class=\"row\">\n <fs-label-field>\n <fs-label>\n Status\n </fs-label>\n <div [ngStyle]=\"{ color: CronLogStateColors[cronLog.state]}\">\n {{ CronLogStates[cronLog.state] || cronLog.state }}\n </div>\n </fs-label-field>\n <fs-label-field>\n <fs-label>\n Date\n </fs-label>\n <fs-date-ago [date]=\"cronLog.createDate\"></fs-date-ago>\n </fs-label-field>\n </div>\n <fs-label-field *ngIf=\"cronLog.message\">\n <fs-label>\n Message\n </fs-label>\n <div class=\"message\">\n {{ cronLog.message }}\n </div>\n </fs-label-field>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button\n mat-button\n [mat-dialog-close]=\"true\"\n color=\"primary\">\n Done\n </button>\n </mat-dialog-actions>\n</fs-dialog>", styles: [".message{white-space:pre-line}.row{display:flex;flex-wrap:wrap}.row fs-label-field:not(:last-child){margin-right:40px}\n"] }]
|
|
35
35
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
36
36
|
type: Inject,
|
|
37
37
|
args: [MAT_DIALOG_DATA]
|
|
38
38
|
}] }] });
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvbi1sb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL3N5c3RlbS9jb21wb25lbnRzL2Nyb24tbG9nL2Nyb24tbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vY29tcG9uZW50cy9jcm9uLWxvZy9jcm9uLWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUVuRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7Ozs7O0FBUWhFLE1BQU0sT0FBTyxnQkFBZ0I7SUFPUTtJQUw1QixPQUFPLENBQUM7SUFDUixhQUFhLEdBQUcsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzlDLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztJQUUvQixZQUNtQyxLQUFLO1FBQUwsVUFBSyxHQUFMLEtBQUssQ0FBQTtJQUNyQyxDQUFDO0lBRUcsUUFBUTtRQUNiLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDbEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGFBQWE7YUFDcEMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxFQUFFO1lBQzlCLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQztZQUUvQyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNYLENBQUM7dUdBbEJVLGdCQUFnQixrQkFPakIsZUFBZTsyRkFQZCxnQkFBZ0Isb0RDYjdCLG0rQkFzQ1k7OzJGRHpCQyxnQkFBZ0I7a0JBTDVCLFNBQVM7c0NBR1MsdUJBQXVCLENBQUMsTUFBTTs7MEJBUzVDLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbmltcG9ydCB7IENyb25Mb2dTdGF0ZXMgfSBmcm9tICcuLi8uLi9jb25zdHMvY3Jvbi1sb2ctc3RhdGVzLmNvbnN0JztcbmltcG9ydCB7IGluZGV4TmFtZVZhbHVlIH0gZnJvbSAnLi4vLi4vaGVscGVycy9pbmRleC1uYW1lLXZhbHVlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL2Nyb24tbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3Jvbi1sb2cuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIENyb25Mb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHB1YmxpYyBjcm9uTG9nO1xuICBwdWJsaWMgQ3JvbkxvZ1N0YXRlcyA9IGluZGV4TmFtZVZhbHVlKENyb25Mb2dTdGF0ZXMpO1xuICBwdWJsaWMgQ3JvbkxvZ1N0YXRlQ29sb3JzID0ge307XG4gIFxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHJpdmF0ZSBfZGF0YSxcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNyb25Mb2cgPSB0aGlzLl9kYXRhLmNyb25Mb2c7XG4gICAgdGhpcy5Dcm9uTG9nU3RhdGVDb2xvcnMgPSBDcm9uTG9nU3RhdGVzXG4gICAgICAucmVkdWNlKChhY2N1bSwgY3JvbkxvZ1N0YXRlKSA9PiB7XG4gICAgICAgIGFjY3VtW2Nyb25Mb2dTdGF0ZS52YWx1ZV0gPSBjcm9uTG9nU3RhdGUuY29sb3I7XG5cbiAgICAgICAgcmV0dXJuIGFjY3VtO1xuICAgICAgfSwge30pO1xuICB9XG59XG4iLCI8ZnMtZGlhbG9nICpmc1NrZWxldG9uPVwiY3JvbkxvZ1wiPlxuICA8ZGl2IG1hdC1kaWFsb2ctdGl0bGU+XG4gICAgQ3JvbiBMb2dcbiAgPC9kaXY+XG4gIDxtYXQtZGlhbG9nLWNvbnRlbnQ+XG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgPGZzLWxhYmVsLWZpZWxkPlxuICAgICAgICA8ZnMtbGFiZWw+XG4gICAgICAgICAgU3RhdHVzXG4gICAgICAgIDwvZnMtbGFiZWw+XG4gICAgICAgIDxkaXYgW25nU3R5bGVdPVwieyBjb2xvcjogQ3JvbkxvZ1N0YXRlQ29sb3JzW2Nyb25Mb2cuc3RhdGVdfVwiPlxuICAgICAgICAgIHt7IENyb25Mb2dTdGF0ZXNbY3JvbkxvZy5zdGF0ZV0gfHwgY3JvbkxvZy5zdGF0ZSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG4gICAgICA8ZnMtbGFiZWwtZmllbGQ+XG4gICAgICAgIDxmcy1sYWJlbD5cbiAgICAgICAgICBEYXRlXG4gICAgICAgIDwvZnMtbGFiZWw+XG4gICAgICAgIDxmcy1kYXRlLWFnbyBbZGF0ZV09XCJjcm9uTG9nLmNyZWF0ZURhdGVcIj48L2ZzLWRhdGUtYWdvPlxuICAgICAgPC9mcy1sYWJlbC1maWVsZD5cbiAgICA8L2Rpdj5cbiAgICA8ZnMtbGFiZWwtZmllbGQgKm5nSWY9XCJjcm9uTG9nLm1lc3NhZ2VcIj5cbiAgICAgIDxmcy1sYWJlbD5cbiAgICAgICAgTWVzc2FnZVxuICAgICAgPC9mcy1sYWJlbD5cbiAgICAgIDxkaXYgY2xhc3M9XCJtZXNzYWdlXCI+XG4gICAgICAgIHt7IGNyb25Mb2cubWVzc2FnZSB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9mcy1sYWJlbC1maWVsZD5cbiAgPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG4gIDxtYXQtZGlhbG9nLWFjdGlvbnM+XG4gICAgPGJ1dHRvblxuICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgIFttYXQtZGlhbG9nLWNsb3NlXT1cInRydWVcIlxuICAgICAgICBjb2xvcj1cInByaW1hcnlcIj5cbiAgICAgIERvbmVcbiAgICA8L2J1dHRvbj5cbiAgPC9tYXQtZGlhbG9nLWFjdGlvbnM+XG48L2ZzLWRpYWxvZz4iXX0=
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, inject, Input } from '@angular/core';
|
|
3
|
+
import { MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';
|
|
4
|
+
import { FsDateModule } from '@firestitch/date';
|
|
5
|
+
import { ItemType } from '@firestitch/filter';
|
|
6
|
+
import { FsListModule } from '@firestitch/list';
|
|
7
|
+
import { CronLogStates } from '../../consts/cron-log-states.const';
|
|
8
|
+
import { CronData } from '../../data/cron.data';
|
|
9
|
+
import { indexNameValue } from '../../helpers/index-name-value';
|
|
10
|
+
import { CronLogComponent } from '../cron-log';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
import * as i1 from "@angular/common";
|
|
13
|
+
import * as i2 from "@firestitch/list";
|
|
14
|
+
import * as i3 from "@firestitch/date";
|
|
15
|
+
export class CronLogsComponent {
|
|
16
|
+
cron;
|
|
17
|
+
CronLogStateColors = {};
|
|
18
|
+
config;
|
|
19
|
+
CronLogStates = indexNameValue(CronLogStates);
|
|
20
|
+
cronActions;
|
|
21
|
+
_cronData = inject(CronData);
|
|
22
|
+
_dialog = inject(MatDialog);
|
|
23
|
+
_data = inject(MAT_DIALOG_DATA);
|
|
24
|
+
ngOnInit() {
|
|
25
|
+
this.cron = this._data.cron;
|
|
26
|
+
this.load();
|
|
27
|
+
this.CronLogStateColors = CronLogStates
|
|
28
|
+
.reduce((accum, cronLogState) => {
|
|
29
|
+
accum[cronLogState.value] = cronLogState.color;
|
|
30
|
+
return accum;
|
|
31
|
+
}, {});
|
|
32
|
+
}
|
|
33
|
+
cronLogOpen(cronLog) {
|
|
34
|
+
this._dialog.open(CronLogComponent, {
|
|
35
|
+
data: {
|
|
36
|
+
cronLog,
|
|
37
|
+
},
|
|
38
|
+
width: '85%',
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
load() {
|
|
42
|
+
this.config = {
|
|
43
|
+
filters: [
|
|
44
|
+
{
|
|
45
|
+
type: ItemType.Select,
|
|
46
|
+
name: 'state',
|
|
47
|
+
label: 'Status',
|
|
48
|
+
values: [
|
|
49
|
+
{ name: 'All', value: null },
|
|
50
|
+
...CronLogStates,
|
|
51
|
+
],
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
type: ItemType.DateRange,
|
|
55
|
+
name: 'date',
|
|
56
|
+
label: ['From Date', 'To Date'],
|
|
57
|
+
},
|
|
58
|
+
],
|
|
59
|
+
fetch: (query) => {
|
|
60
|
+
query = {
|
|
61
|
+
...query,
|
|
62
|
+
cronId: this.cron.id,
|
|
63
|
+
};
|
|
64
|
+
return this._cronData.cronLogGets(query);
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CronLogsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
69
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: CronLogsComponent, isStandalone: true, selector: "app-cron-logs", inputs: { cron: "cron" }, ngImport: i0, template: "<fs-list [config]=\"config\">\n <fs-list-column\n name=\"state\"\n title=\"Status\">\n <ng-template\n fs-list-cell\n let-row=\"row\">\n <a\n (click)=\"cronLogOpen(row)\"\n [ngStyle]=\"{ color: CronLogStateColors[row.state] }\">\n {{ CronLogStates[row.state] || row.state }}\n </a>\n </ng-template>\n </fs-list-column>\n <fs-list-column\n title=\"Message\"\n class=\"col-message\">\n <ng-template\n fs-list-cell\n let-row=\"row\">\n <div class=\"message\">\n {{ row.message }}\n </div>\n </ng-template>\n </fs-list-column>\n <fs-list-column\n title=\"Duration\"\n class=\"col-message\">\n <ng-template\n fs-list-cell\n let-row=\"row\">\n <ng-container *ngIf=\"row.duration\">\n {{ row.duration | fsDateDuration: 'hour-minute-second' }}\n </ng-container>\n </ng-template>\n </fs-list-column>\n <fs-list-column\n name=\"create_date\"\n title=\"Date\"\n class=\"col-date\">\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: [":host ::ng-deep .col-message .message{white-space:break-spaces;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}:host ::ng-deep .col-date{white-space:nowrap}h1 .small{line-height:normal}.row{display:flex;flex-wrap:wrap}.row fs-label-field:not(:last-child){margin-right:40px}.message{white-space:pre-line}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FsListModule }, { kind: "component", type: i2.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { kind: "directive", type: i2.FsListColumnDirective, selector: "fs-list-column", inputs: ["show", "title", "name", "customizable", "sortable", "sortableDefault", "sortableDirection", "direction", "align", "width", "class"] }, { kind: "directive", type: i2.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }, { kind: "ngmodule", type: FsDateModule }, { kind: "pipe", type: i3.FsDateDurationPipe, name: "fsDateDuration" }, { kind: "component", type: i3.FsDateAgoComponent, selector: "fs-date-ago", inputs: ["date", "showTime", "format", "showTooltip", "tooltipDateFormat"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
70
|
+
}
|
|
71
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: CronLogsComponent, decorators: [{
|
|
72
|
+
type: Component,
|
|
73
|
+
args: [{ selector: 'app-cron-logs', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
74
|
+
CommonModule,
|
|
75
|
+
FsListModule,
|
|
76
|
+
FsDateModule,
|
|
77
|
+
], template: "<fs-list [config]=\"config\">\n <fs-list-column\n name=\"state\"\n title=\"Status\">\n <ng-template\n fs-list-cell\n let-row=\"row\">\n <a\n (click)=\"cronLogOpen(row)\"\n [ngStyle]=\"{ color: CronLogStateColors[row.state] }\">\n {{ CronLogStates[row.state] || row.state }}\n </a>\n </ng-template>\n </fs-list-column>\n <fs-list-column\n title=\"Message\"\n class=\"col-message\">\n <ng-template\n fs-list-cell\n let-row=\"row\">\n <div class=\"message\">\n {{ row.message }}\n </div>\n </ng-template>\n </fs-list-column>\n <fs-list-column\n title=\"Duration\"\n class=\"col-message\">\n <ng-template\n fs-list-cell\n let-row=\"row\">\n <ng-container *ngIf=\"row.duration\">\n {{ row.duration | fsDateDuration: 'hour-minute-second' }}\n </ng-container>\n </ng-template>\n </fs-list-column>\n <fs-list-column\n name=\"create_date\"\n title=\"Date\"\n class=\"col-date\">\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: [":host ::ng-deep .col-message .message{white-space:break-spaces;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}:host ::ng-deep .col-date{white-space:nowrap}h1 .small{line-height:normal}.row{display:flex;flex-wrap:wrap}.row fs-label-field:not(:last-child){margin-right:40px}.message{white-space:pre-line}\n"] }]
|
|
78
|
+
}], propDecorators: { cron: [{
|
|
79
|
+
type: Input
|
|
80
|
+
}] } });
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvbi1sb2dzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vY29tcG9uZW50cy9jcm9uLWxvZ3MvY3Jvbi1sb2dzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vY29tcG9uZW50cy9jcm9uLWxvZ3MvY3Jvbi1sb2dzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFMUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlDLE9BQU8sRUFBZ0IsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDOzs7OztBQWUvQyxNQUFNLE9BQU8saUJBQWlCO0lBRVosSUFBSSxDQUFDO0lBQ2Qsa0JBQWtCLEdBQUcsRUFBRSxDQUFDO0lBRXhCLE1BQU0sQ0FBZTtJQUNyQixhQUFhLEdBQUcsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzlDLFdBQVcsQ0FBQztJQUVYLFNBQVMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0IsT0FBTyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM1QixLQUFLLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBRWpDLFFBQVE7UUFDYixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQzVCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNaLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxhQUFhO2FBQ3BDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxZQUFZLEVBQUUsRUFBRTtZQUM5QixLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUM7WUFFL0MsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRU0sV0FBVyxDQUFDLE9BQU87UUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDbEMsSUFBSSxFQUFFO2dCQUNKLE9BQU87YUFDUjtZQUNELEtBQUssRUFBRSxLQUFLO1NBQ2IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLElBQUk7UUFDVCxJQUFJLENBQUMsTUFBTSxHQUFHO1lBQ1osT0FBTyxFQUFFO2dCQUNQO29CQUNFLElBQUksRUFBRSxRQUFRLENBQUMsTUFBTTtvQkFDckIsSUFBSSxFQUFFLE9BQU87b0JBQ2IsS0FBSyxFQUFFLFFBQVE7b0JBQ2YsTUFBTSxFQUFFO3dCQUNOLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO3dCQUM1QixHQUFHLGFBQWE7cUJBQ2pCO2lCQUNGO2dCQUNEO29CQUNFLElBQUksRUFBRSxRQUFRLENBQUMsU0FBUztvQkFDeEIsSUFBSSxFQUFFLE1BQU07b0JBQ1osS0FBSyxFQUFFLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQztpQkFDaEM7YUFDRjtZQUNELEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNmLEtBQUssR0FBRztvQkFDTixHQUFHLEtBQUs7b0JBQ1IsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtpQkFDckIsQ0FBQztnQkFFRixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNDLENBQUM7U0FDRixDQUFDO0lBQ0osQ0FBQzt1R0E1RFUsaUJBQWlCOzJGQUFqQixpQkFBaUIsbUdDM0I5QixndENBOENVLCtZRHhCTixZQUFZLHVOQUNaLFlBQVksNGZBQ1osWUFBWTs7MkZBR0gsaUJBQWlCO2tCQVo3QixTQUFTOytCQUNFLGVBQWUsbUJBR1IsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixZQUFZO3dCQUNaLFlBQVk7cUJBQ2I7OEJBSWUsSUFBSTtzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuXG5pbXBvcnQgeyBGc0RhdGVNb2R1bGUgfSBmcm9tICdAZmlyZXN0aXRjaC9kYXRlJztcbmltcG9ydCB7IEl0ZW1UeXBlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvZmlsdGVyJztcbmltcG9ydCB7IEZzTGlzdENvbmZpZywgRnNMaXN0TW9kdWxlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvbGlzdCc7XG5cbmltcG9ydCB7IENyb25Mb2dTdGF0ZXMgfSBmcm9tICcuLi8uLi9jb25zdHMvY3Jvbi1sb2ctc3RhdGVzLmNvbnN0JztcbmltcG9ydCB7IENyb25EYXRhIH0gZnJvbSAnLi4vLi4vZGF0YS9jcm9uLmRhdGEnO1xuaW1wb3J0IHsgaW5kZXhOYW1lVmFsdWUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2luZGV4LW5hbWUtdmFsdWUnO1xuaW1wb3J0IHsgQ3JvbkxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL2Nyb24tbG9nJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtY3Jvbi1sb2dzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Nyb24tbG9ncy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Nyb24tbG9ncy5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGc0xpc3RNb2R1bGUsXG4gICAgRnNEYXRlTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDcm9uTG9nc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgcHVibGljIGNyb247XG4gIHB1YmxpYyBDcm9uTG9nU3RhdGVDb2xvcnMgPSB7fTtcblxuICBwdWJsaWMgY29uZmlnOiBGc0xpc3RDb25maWc7XG4gIHB1YmxpYyBDcm9uTG9nU3RhdGVzID0gaW5kZXhOYW1lVmFsdWUoQ3JvbkxvZ1N0YXRlcyk7XG4gIHB1YmxpYyBjcm9uQWN0aW9ucztcbiAgXG4gIHByaXZhdGUgX2Nyb25EYXRhID0gaW5qZWN0KENyb25EYXRhKTtcbiAgcHJpdmF0ZSBfZGlhbG9nID0gaW5qZWN0KE1hdERpYWxvZyk7XG4gIHByaXZhdGUgX2RhdGEgPSBpbmplY3QoTUFUX0RJQUxPR19EQVRBKTtcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jcm9uID0gdGhpcy5fZGF0YS5jcm9uO1xuICAgIHRoaXMubG9hZCgpO1xuICAgIHRoaXMuQ3JvbkxvZ1N0YXRlQ29sb3JzID0gQ3JvbkxvZ1N0YXRlc1xuICAgICAgLnJlZHVjZSgoYWNjdW0sIGNyb25Mb2dTdGF0ZSkgPT4ge1xuICAgICAgICBhY2N1bVtjcm9uTG9nU3RhdGUudmFsdWVdID0gY3JvbkxvZ1N0YXRlLmNvbG9yO1xuXG4gICAgICAgIHJldHVybiBhY2N1bTtcbiAgICAgIH0sIHt9KTtcbiAgfVxuXG4gIHB1YmxpYyBjcm9uTG9nT3Blbihjcm9uTG9nKTogdm9pZCB7XG4gICAgdGhpcy5fZGlhbG9nLm9wZW4oQ3JvbkxvZ0NvbXBvbmVudCwge1xuICAgICAgZGF0YTogeyBcbiAgICAgICAgY3JvbkxvZyxcbiAgICAgIH0sXG4gICAgICB3aWR0aDogJzg1JScsXG4gICAgfSk7ICAgIFxuICB9XG5cbiAgcHVibGljIGxvYWQoKTogdm9pZCB7XG4gICAgdGhpcy5jb25maWcgPSB7XG4gICAgICBmaWx0ZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiBJdGVtVHlwZS5TZWxlY3QsXG4gICAgICAgICAgbmFtZTogJ3N0YXRlJyxcbiAgICAgICAgICBsYWJlbDogJ1N0YXR1cycsXG4gICAgICAgICAgdmFsdWVzOiBbXG4gICAgICAgICAgICB7IG5hbWU6ICdBbGwnLCB2YWx1ZTogbnVsbCB9LFxuICAgICAgICAgICAgLi4uQ3JvbkxvZ1N0YXRlcyxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogSXRlbVR5cGUuRGF0ZVJhbmdlLFxuICAgICAgICAgIG5hbWU6ICdkYXRlJyxcbiAgICAgICAgICBsYWJlbDogWydGcm9tIERhdGUnLCAnVG8gRGF0ZSddLFxuICAgICAgICB9LFxuICAgICAgXSwgICAgICAgICAgXG4gICAgICBmZXRjaDogKHF1ZXJ5KSA9PiB7XG4gICAgICAgIHF1ZXJ5ID0ge1xuICAgICAgICAgIC4uLnF1ZXJ5LFxuICAgICAgICAgIGNyb25JZDogdGhpcy5jcm9uLmlkLFxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiB0aGlzLl9jcm9uRGF0YS5jcm9uTG9nR2V0cyhxdWVyeSk7XG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cbiIsIjxmcy1saXN0IFtjb25maWddPVwiY29uZmlnXCI+XG4gIDxmcy1saXN0LWNvbHVtblxuICAgICAgbmFtZT1cInN0YXRlXCJcbiAgICAgIHRpdGxlPVwiU3RhdHVzXCI+XG4gICAgPG5nLXRlbXBsYXRlXG4gICAgICAgIGZzLWxpc3QtY2VsbFxuICAgICAgICBsZXQtcm93PVwicm93XCI+XG4gICAgICA8YVxuICAgICAgICAgIChjbGljayk9XCJjcm9uTG9nT3Blbihyb3cpXCJcbiAgICAgICAgICBbbmdTdHlsZV09XCJ7IGNvbG9yOiBDcm9uTG9nU3RhdGVDb2xvcnNbcm93LnN0YXRlXSB9XCI+XG4gICAgICAgIHt7IENyb25Mb2dTdGF0ZXNbcm93LnN0YXRlXSB8fCByb3cuc3RhdGUgfX1cbiAgICAgIDwvYT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2ZzLWxpc3QtY29sdW1uPlxuICA8ZnMtbGlzdC1jb2x1bW5cbiAgICAgIHRpdGxlPVwiTWVzc2FnZVwiXG4gICAgICBjbGFzcz1cImNvbC1tZXNzYWdlXCI+XG4gICAgPG5nLXRlbXBsYXRlXG4gICAgICAgIGZzLWxpc3QtY2VsbFxuICAgICAgICBsZXQtcm93PVwicm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWVzc2FnZVwiPlxuICAgICAgICB7eyByb3cubWVzc2FnZSB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9mcy1saXN0LWNvbHVtbj5cbiAgPGZzLWxpc3QtY29sdW1uXG4gICAgICB0aXRsZT1cIkR1cmF0aW9uXCJcbiAgICAgIGNsYXNzPVwiY29sLW1lc3NhZ2VcIj5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgZnMtbGlzdC1jZWxsXG4gICAgICAgIGxldC1yb3c9XCJyb3dcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyb3cuZHVyYXRpb25cIj5cbiAgICAgICAge3sgcm93LmR1cmF0aW9uIHwgZnNEYXRlRHVyYXRpb246ICdob3VyLW1pbnV0ZS1zZWNvbmQnIH19XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2ZzLWxpc3QtY29sdW1uPlxuICA8ZnMtbGlzdC1jb2x1bW5cbiAgICAgIG5hbWU9XCJjcmVhdGVfZGF0ZVwiXG4gICAgICB0aXRsZT1cIkRhdGVcIlxuICAgICAgY2xhc3M9XCJjb2wtZGF0ZVwiPlxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICBmcy1saXN0LWNlbGxcbiAgICAgICAgbGV0LXJvdz1cInJvd1wiPlxuICAgICAgPGZzLWRhdGUtYWdvIFtkYXRlXT1cInJvdy5jcmVhdGVEYXRlXCI+PC9mcy1kYXRlLWFnbz5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2ZzLWxpc3QtY29sdW1uPlxuPC9mcy1saXN0PiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './cron-logs.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvc3lzdGVtL2NvbXBvbmVudHMvY3Jvbi1sb2dzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Nyb24tbG9ncy5jb21wb25lbnQnO1xuIl19
|