@firestitch/system 12.2.9 → 12.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/app/components/api-log/api-log.component.d.ts +13 -13
  2. package/app/components/api-log/index.d.ts +1 -1
  3. package/app/components/api-logs/api-logs.component.d.ts +21 -21
  4. package/app/components/api-logs/index.d.ts +1 -1
  5. package/app/components/cron/cron.component.d.ts +24 -24
  6. package/app/components/cron/index.d.ts +1 -1
  7. package/app/components/cron-log/cron-log.component.d.ts +12 -12
  8. package/app/components/cron-log/index.d.ts +1 -1
  9. package/app/components/crons/crons.component.d.ts +42 -42
  10. package/app/components/crons/index.d.ts +1 -1
  11. package/app/components/dashboard/dashboard.component.d.ts +28 -28
  12. package/app/components/dashboard/index.d.ts +1 -1
  13. package/app/components/file-manager/file-manager.component.d.ts +17 -17
  14. package/app/components/file-manager/index.d.ts +1 -1
  15. package/app/components/info/index.d.ts +1 -1
  16. package/app/components/info/info.component.d.ts +11 -11
  17. package/app/components/process/index.d.ts +1 -1
  18. package/app/components/process/process.component.d.ts +19 -19
  19. package/app/components/processes/index.d.ts +1 -1
  20. package/app/components/processes/processes.component.d.ts +34 -34
  21. package/app/components/server-log/index.d.ts +1 -1
  22. package/app/components/server-log/server-log.component.d.ts +10 -10
  23. package/app/components/server-logs/index.d.ts +1 -1
  24. package/app/components/server-logs/server-logs.component.d.ts +21 -21
  25. package/app/components/settings/index.d.ts +1 -1
  26. package/app/components/settings/settings.component.d.ts +30 -30
  27. package/app/components/upgrade-logs/index.d.ts +1 -1
  28. package/app/components/upgrade-logs/upgrade-logs.component.d.ts +17 -17
  29. package/app/consts/api-log-states.const.d.ts +5 -5
  30. package/app/consts/cron-log-states.const.d.ts +6 -6
  31. package/app/consts/cron-states.const.d.ts +5 -5
  32. package/app/consts/index.d.ts +3 -3
  33. package/app/consts/process-states.const.d.ts +5 -5
  34. package/app/enums/api-log-state.enum.d.ts +5 -5
  35. package/app/enums/cron-log-state.enum.d.ts +14 -14
  36. package/app/enums/cron-state.enum.d.ts +9 -9
  37. package/app/enums/index.d.ts +5 -5
  38. package/app/enums/process-state.enum.d.ts +8 -8
  39. package/app/enums/setting-interface-type.enum.d.ts +14 -14
  40. package/app/fs-system.module.d.ts +47 -47
  41. package/app/helpers/index-name-value.d.ts +1 -1
  42. package/app/injectors/system-config.injector.d.ts +2 -2
  43. package/app/interfaces/dashboard-action.d.ts +5 -5
  44. package/app/interfaces/index.d.ts +3 -3
  45. package/app/interfaces/process-action.d.ts +6 -6
  46. package/app/interfaces/system-config.d.ts +2 -2
  47. package/app/pipes/key-name-value.pipe.d.ts +8 -8
  48. package/bundles/firestitch-system.umd.js +1581 -1579
  49. package/bundles/firestitch-system.umd.js.map +1 -1
  50. package/esm2015/app/components/api-log/api-log.component.js +38 -38
  51. package/esm2015/app/components/api-log/index.js +2 -2
  52. package/esm2015/app/components/api-logs/api-logs.component.js +74 -74
  53. package/esm2015/app/components/api-logs/index.js +2 -2
  54. package/esm2015/app/components/cron/cron.component.js +103 -103
  55. package/esm2015/app/components/cron/index.js +2 -2
  56. package/esm2015/app/components/cron-log/cron-log.component.js +41 -41
  57. package/esm2015/app/components/cron-log/index.js +2 -2
  58. package/esm2015/app/components/crons/crons.component.js +229 -229
  59. package/esm2015/app/components/crons/index.js +2 -2
  60. package/esm2015/app/components/dashboard/dashboard.component.js +91 -91
  61. package/esm2015/app/components/dashboard/index.js +2 -2
  62. package/esm2015/app/components/file-manager/file-manager.component.js +54 -54
  63. package/esm2015/app/components/file-manager/index.js +2 -2
  64. package/esm2015/app/components/info/index.js +2 -2
  65. package/esm2015/app/components/info/info.component.js +36 -36
  66. package/esm2015/app/components/process/index.js +2 -2
  67. package/esm2015/app/components/process/process.component.js +67 -67
  68. package/esm2015/app/components/processes/index.js +2 -2
  69. package/esm2015/app/components/processes/processes.component.js +170 -170
  70. package/esm2015/app/components/server-log/index.js +2 -2
  71. package/esm2015/app/components/server-log/server-log.component.js +42 -42
  72. package/esm2015/app/components/server-logs/index.js +2 -2
  73. package/esm2015/app/components/server-logs/server-logs.component.js +57 -57
  74. package/esm2015/app/components/settings/index.js +2 -2
  75. package/esm2015/app/components/settings/settings.component.js +139 -137
  76. package/esm2015/app/components/upgrade-logs/index.js +2 -2
  77. package/esm2015/app/components/upgrade-logs/upgrade-logs.component.js +48 -48
  78. package/esm2015/app/consts/api-log-states.const.js +7 -7
  79. package/esm2015/app/consts/cron-log-states.const.js +15 -15
  80. package/esm2015/app/consts/cron-states.const.js +11 -11
  81. package/esm2015/app/consts/index.js +4 -4
  82. package/esm2015/app/consts/process-states.const.js +10 -10
  83. package/esm2015/app/enums/api-log-state.enum.js +7 -7
  84. package/esm2015/app/enums/cron-log-state.enum.js +15 -15
  85. package/esm2015/app/enums/cron-state.enum.js +11 -11
  86. package/esm2015/app/enums/index.js +6 -6
  87. package/esm2015/app/enums/process-state.enum.js +10 -10
  88. package/esm2015/app/enums/setting-interface-type.enum.js +16 -16
  89. package/esm2015/app/fs-system.module.js +181 -181
  90. package/esm2015/app/helpers/index-name-value.js +8 -8
  91. package/esm2015/app/injectors/system-config.injector.js +3 -3
  92. package/esm2015/app/interfaces/dashboard-action.js +2 -2
  93. package/esm2015/app/interfaces/index.js +4 -4
  94. package/esm2015/app/interfaces/process-action.js +2 -2
  95. package/esm2015/app/interfaces/system-config.js +2 -2
  96. package/esm2015/app/pipes/key-name-value.pipe.js +21 -21
  97. package/esm2015/firestitch-system.js +4 -4
  98. package/esm2015/public_api.js +19 -19
  99. package/fesm2015/firestitch-system.js +1214 -1212
  100. package/fesm2015/firestitch-system.js.map +1 -1
  101. package/firestitch-system.d.ts +5 -5
  102. package/package.json +1 -1
  103. package/public_api.d.ts +20 -20
@@ -55,1639 +55,1641 @@
55
55
 
56
56
  var FS_SYSTEM_CONFIG = new i0.InjectionToken('fs-system-config');
57
57
 
58
- var DashboardComponent = /** @class */ (function () {
59
- function DashboardComponent(_message, _cdRef, _buildService) {
60
- this._message = _message;
61
- this._cdRef = _cdRef;
62
- this._buildService = _buildService;
63
- this.buttonActions = [];
64
- this.menuActions = [];
65
- this._destroy$ = new rxjs.Subject();
66
- this.actions = [];
67
- }
68
- DashboardComponent.prototype.ngOnInit = function () {
69
- var _this = this;
70
- this._load();
71
- this.buttonActions = this.actions.filter(function (item) { return !item.menu; });
72
- this.menuActions = this.actions.filter(function (item) { return item.menu; });
73
- this.build = this._buildService.build;
74
- this._buildService.build$
75
- .pipe(operators.takeUntil(this._destroy$))
76
- .subscribe(function (build) {
77
- _this.build = build;
78
- _this._cdRef.markForCheck();
79
- });
80
- };
81
- DashboardComponent.prototype._load = function () {
82
- var _this = this;
83
- this.load()
84
- .subscribe(function (dashboard) {
85
- _this.dashboard = dashboard;
86
- _this.dashboard.cronRanAttention = !dashboard.cronRan ||
87
- dateFns.differenceInMinutes(new Date(), new Date(dashboard.cronRan)) > 15;
88
- _this._cdRef.markForCheck();
89
- });
90
- };
91
- DashboardComponent.prototype.ngOnDestroy = function () {
92
- this._destroy$.next();
93
- this._destroy$.complete();
94
- };
95
- DashboardComponent.prototype.actionClick = function (action) {
96
- action.click();
97
- };
98
- DashboardComponent.prototype.initClick = function () {
99
- var _this = this;
100
- this.init()
101
- .subscribe(function () {
102
- _this._message.success('Successfully initialized the system');
103
- });
104
- };
105
- DashboardComponent.prototype.upgradeClick = function () {
106
- var _this = this;
107
- this.upgrade()
108
- .subscribe(function () {
109
- _this._load();
110
- _this._message.success('Successfully upgraded the system');
111
- });
112
- };
113
- return DashboardComponent;
114
- }());
115
- DashboardComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: DashboardComponent, deps: [{ token: i1__namespace.FsMessage }, { token: i0__namespace.ChangeDetectorRef }, { token: i2__namespace.FsBuildService }], target: i0__namespace.ɵɵFactoryTarget.Component });
116
- DashboardComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: DashboardComponent, selector: "fs-system-dashboard", inputs: { init: "init", upgrade: "upgrade", load: "load", actions: "actions" }, ngImport: i0__namespace, template: "<div *fsSkeleton=\"dashboard\">\n\n <div class=\"h2-container\">\n\n <div class=\"actions\">\n <h2>Actions</h2>\n <div fxLayout=\"row\" fxLayoutGap=\"5px\" fxLayout.xs=\"column\">\n <button mat-raised-button (click)=\"upgradeClick()\">Run Upgrades</button>\n <button mat-raised-button (click)=\"initClick()\">Init System</button>\n\n <button\n *ngFor=\"let action of buttonActions\"\n mat-raised-button\n (click)=\"actionClick(action)\">\n {{action.label}}\n </button>\n\n <ng-container *ngIf=\"menuActions.length\">\n\n <fs-menu buttonClass=\"mat-raised-button menu-button\">\n <ng-template\n *ngFor=\"let action of menuActions\"\n fs-menu-item\n (click)=\"actionClick(action)\">\n {{action.label}}\n </ng-template>\n </fs-menu>\n\n\n </ng-container>\n\n </div>\n </div>\n </div>\n\n <div\n fxLayout=\"row wrap\"\n fxLayout.xs=\"column\"\n fxLayoutGap.xs=\"0px\"\n fxLayoutAlign=\"start start\"\n fxLayoutGap=\"50px\">\n\n <div>\n <h2>Server</h2>\n\n <fs-label-field>\n <fs-label>Date/Time</fs-label>\n {{dashboard.serverTime | fsDateFormat: 'date-time'}}\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>Timezone</fs-label>\n {{dashboard.serverTimezone}}\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>Hostname</fs-label>\n {{dashboard.serverHostname}}\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>Directory</fs-label>\n {{dashboard.appDirectory}}\n </fs-label-field>\n </div>\n\n <div>\n <h2>System</h2>\n <fs-label-field>\n <fs-label>Mode</fs-label>\n {{dashboard.appMode}}\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>Notification Recipients</fs-label>\n {{dashboard.notifyRecipients.join(', ')}}\n </fs-label-field>\n </div>\n\n <div>\n <h2>Database</h2>\n\n <fs-label-field>\n <fs-label>Name</fs-label>\n {{dashboard.databaseName}}\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>Date/Time</fs-label>\n {{dashboard.databaseTime | fsDateFormat: 'date-time'}}\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>Timezone</fs-label>\n {{dashboard.databaseTimezone}}\n </fs-label-field>\n </div>\n\n <div *ngIf=\"build || dashboard.upgrades.length\">\n <h2>Build</h2>\n\n <ng-container *ngIf=\"build\">\n <fs-label-field>\n <fs-label>Version</fs-label>\n {{build.version}}\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>Date</fs-label>\n {{ build.date | fsDateFormat: 'date-time' }}\n </fs-label-field>\n </ng-container>\n\n <fs-label-field *ngIf=\"dashboard.upgrades.length\">\n <fs-label>Pending Upgrades</fs-label>\n <span class=\"attention\" [ngClass]=\"{ 'needs-attention': !!dashboard.upgrades.length }\">\n {{dashboard.upgrades.length}}\n <mat-icon\n [matTooltip]=\"dashboard.upgrades.join('\\n')\"\n matTooltipClass=\"tooltip-pending-upgrades\"\n >\n warning\n </mat-icon>\n </span>\n </fs-label-field>\n </div>\n\n <div>\n <h2>Cron</h2>\n\n <fs-label-field>\n <fs-label>Last Ran</fs-label>\n <span class=\"attention\" [ngClass]=\"{ 'needs-attention': dashboard.cronRanAttention }\">\n <span *ngIf=\"!dashboard.cronRan\">Never</span>\n <span *ngIf=\"dashboard.cronRan\">{{dashboard.cronRan | fsDateFormat: 'date-time'}}</span>\n <mat-icon>warning</mat-icon>\n </span>\n </fs-label-field>\n </div>\n </div>\n</div>\n", styles: [".actions{margin-bottom:1.25em}table td{padding:3px}.attention{display:flex;align-items:center}.attention mat-icon{display:none;margin-left:2px}.attention.needs-attention{color:#c00}.attention.needs-attention mat-icon{display:inline}::ng-deep .tooltip-pending-upgrades{white-space:pre-line}@media (max-width: 600px){:host ::ng-deep .menu-button{width:100%;border-radius:4px}}@media (min-width: 600px){:host ::ng-deep .menu-button{box-shadow:none}}\n"], components: [{ type: i4__namespace.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4__namespace$1.FsMenuComponent, selector: "fs-menu", inputs: ["class", "buttonClass"], outputs: ["opened", "closed"] }, { type: i2__namespace$1.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["bottomMargin", "topMargin", "labelMargin"] }, { type: i2__namespace$1.FsLabelComponent, selector: "fs-label" }, { type: i6__namespace.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i5__namespace.FsSkeletonContentDirective, selector: "[fsSkeleton]", inputs: ["fsSkeleton", "fsSkeletonPattern"] }, { type: i6__namespace$1.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i6__namespace$1.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { type: i9__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i9__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4__namespace$1.FsMenuItemDirective, selector: "fs-menu-group,[fs-menu-item]", inputs: ["fsClass", "class", "id", "label", "hidden", "groupHidden", "dismissAfterClick", "link", "target", "queryParams"], outputs: ["click"] }, { type: i6__namespace$1.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i9__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i10__namespace.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i11__namespace.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], pipes: { "fsDateFormat": i4__namespace$2.FsDateFormatPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
117
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: DashboardComponent, decorators: [{
118
- type: i0.Component,
119
- args: [{
120
- selector: 'fs-system-dashboard',
121
- templateUrl: 'dashboard.component.html',
122
- styleUrls: ['dashboard.component.scss'],
123
- changeDetection: i0.ChangeDetectionStrategy.OnPush,
124
- }]
125
- }], ctorParameters: function () { return [{ type: i1__namespace.FsMessage }, { type: i0__namespace.ChangeDetectorRef }, { type: i2__namespace.FsBuildService }]; }, propDecorators: { init: [{
126
- type: i0.Input
127
- }], upgrade: [{
128
- type: i0.Input
129
- }], load: [{
130
- type: i0.Input
131
- }], actions: [{
132
- type: i0.Input
58
+ var DashboardComponent = /** @class */ (function () {
59
+ function DashboardComponent(_message, _cdRef, _buildService) {
60
+ this._message = _message;
61
+ this._cdRef = _cdRef;
62
+ this._buildService = _buildService;
63
+ this.buttonActions = [];
64
+ this.menuActions = [];
65
+ this._destroy$ = new rxjs.Subject();
66
+ this.actions = [];
67
+ }
68
+ DashboardComponent.prototype.ngOnInit = function () {
69
+ var _this = this;
70
+ this._load();
71
+ this.buttonActions = this.actions.filter(function (item) { return !item.menu; });
72
+ this.menuActions = this.actions.filter(function (item) { return item.menu; });
73
+ this.build = this._buildService.build;
74
+ this._buildService.buildChange$
75
+ .pipe(operators.takeUntil(this._destroy$))
76
+ .subscribe(function (build) {
77
+ _this.build = build;
78
+ _this._cdRef.markForCheck();
79
+ });
80
+ };
81
+ DashboardComponent.prototype._load = function () {
82
+ var _this = this;
83
+ this.load()
84
+ .subscribe(function (dashboard) {
85
+ _this.dashboard = dashboard;
86
+ _this.dashboard.cronRanAttention = !dashboard.cronRan ||
87
+ dateFns.differenceInMinutes(new Date(), new Date(dashboard.cronRan)) > 15;
88
+ _this._cdRef.markForCheck();
89
+ });
90
+ };
91
+ DashboardComponent.prototype.ngOnDestroy = function () {
92
+ this._destroy$.next();
93
+ this._destroy$.complete();
94
+ };
95
+ DashboardComponent.prototype.actionClick = function (action) {
96
+ action.click();
97
+ };
98
+ DashboardComponent.prototype.initClick = function () {
99
+ var _this = this;
100
+ this.init()
101
+ .subscribe(function () {
102
+ _this._message.success('Successfully initialized the system');
103
+ });
104
+ };
105
+ DashboardComponent.prototype.upgradeClick = function () {
106
+ var _this = this;
107
+ this.upgrade()
108
+ .subscribe(function () {
109
+ _this._load();
110
+ _this._message.success('Successfully upgraded the system');
111
+ });
112
+ };
113
+ return DashboardComponent;
114
+ }());
115
+ DashboardComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: DashboardComponent, deps: [{ token: i1__namespace.FsMessage }, { token: i0__namespace.ChangeDetectorRef }, { token: i2__namespace.FsBuildService }], target: i0__namespace.ɵɵFactoryTarget.Component });
116
+ DashboardComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: DashboardComponent, selector: "fs-system-dashboard", inputs: { init: "init", upgrade: "upgrade", load: "load", actions: "actions" }, ngImport: i0__namespace, template: "<div *fsSkeleton=\"dashboard\">\r\n\r\n <div class=\"h2-container\">\r\n\r\n <div class=\"actions\">\r\n <h2>Actions</h2>\r\n <div fxLayout=\"row\" fxLayoutGap=\"5px\" fxLayout.xs=\"column\">\r\n <button mat-raised-button (click)=\"upgradeClick()\">Run Upgrades</button>\r\n <button mat-raised-button (click)=\"initClick()\">Init System</button>\r\n\r\n <button\r\n *ngFor=\"let action of buttonActions\"\r\n mat-raised-button\r\n (click)=\"actionClick(action)\">\r\n {{action.label}}\r\n </button>\r\n\r\n <ng-container *ngIf=\"menuActions.length\">\r\n\r\n <fs-menu buttonClass=\"mat-raised-button menu-button\">\r\n <ng-template\r\n *ngFor=\"let action of menuActions\"\r\n fs-menu-item\r\n (click)=\"actionClick(action)\">\r\n {{action.label}}\r\n </ng-template>\r\n </fs-menu>\r\n\r\n\r\n </ng-container>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div\r\n fxLayout=\"row wrap\"\r\n fxLayout.xs=\"column\"\r\n fxLayoutGap.xs=\"0px\"\r\n fxLayoutAlign=\"start start\"\r\n fxLayoutGap=\"50px\">\r\n\r\n <div>\r\n <h2>Server</h2>\r\n\r\n <fs-label-field>\r\n <fs-label>Date/Time</fs-label>\r\n {{dashboard.serverTime | fsDateFormat: 'date-time'}}\r\n </fs-label-field>\r\n\r\n <fs-label-field>\r\n <fs-label>Timezone</fs-label>\r\n {{dashboard.serverTimezone}}\r\n </fs-label-field>\r\n\r\n <fs-label-field>\r\n <fs-label>Hostname</fs-label>\r\n {{dashboard.serverHostname}}\r\n </fs-label-field>\r\n\r\n <fs-label-field>\r\n <fs-label>Directory</fs-label>\r\n {{dashboard.appDirectory}}\r\n </fs-label-field>\r\n </div>\r\n\r\n <div>\r\n <h2>System</h2>\r\n <fs-label-field>\r\n <fs-label>Mode</fs-label>\r\n {{dashboard.appMode}}\r\n </fs-label-field>\r\n\r\n <fs-label-field>\r\n <fs-label>Notification Recipients</fs-label>\r\n {{dashboard.notifyRecipients.join(', ')}}\r\n </fs-label-field>\r\n </div>\r\n\r\n <div>\r\n <h2>Database</h2>\r\n\r\n <fs-label-field>\r\n <fs-label>Name</fs-label>\r\n {{dashboard.databaseName}}\r\n </fs-label-field>\r\n\r\n <fs-label-field>\r\n <fs-label>Date/Time</fs-label>\r\n {{dashboard.databaseTime | fsDateFormat: 'date-time'}}\r\n </fs-label-field>\r\n\r\n <fs-label-field>\r\n <fs-label>Timezone</fs-label>\r\n {{dashboard.databaseTimezone}}\r\n </fs-label-field>\r\n </div>\r\n\r\n <div *ngIf=\"build || dashboard.upgrades.length\">\r\n <h2>Build</h2>\r\n\r\n <ng-container *ngIf=\"build\">\r\n <fs-label-field>\r\n <fs-label>Version</fs-label>\r\n {{build.version}}\r\n </fs-label-field>\r\n\r\n <fs-label-field>\r\n <fs-label>Date</fs-label>\r\n {{ build.date | fsDateFormat: 'date-time' }}\r\n </fs-label-field>\r\n </ng-container>\r\n\r\n <fs-label-field *ngIf=\"dashboard.upgrades.length\">\r\n <fs-label>Pending Upgrades</fs-label>\r\n <span class=\"attention\" [ngClass]=\"{ 'needs-attention': !!dashboard.upgrades.length }\">\r\n {{dashboard.upgrades.length}}\r\n <mat-icon\r\n [matTooltip]=\"dashboard.upgrades.join('\\n')\"\r\n matTooltipClass=\"tooltip-pending-upgrades\"\r\n >\r\n warning\r\n </mat-icon>\r\n </span>\r\n </fs-label-field>\r\n </div>\r\n\r\n <div>\r\n <h2>Cron</h2>\r\n\r\n <fs-label-field>\r\n <fs-label>Last Ran</fs-label>\r\n <span class=\"attention\" [ngClass]=\"{ 'needs-attention': dashboard.cronRanAttention }\">\r\n <span *ngIf=\"!dashboard.cronRan\">Never</span>\r\n <span *ngIf=\"dashboard.cronRan\">{{dashboard.cronRan | fsDateFormat: 'date-time'}}</span>\r\n <mat-icon>warning</mat-icon>\r\n </span>\r\n </fs-label-field>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".actions{margin-bottom:1.25em}table td{padding:3px}.attention{display:flex;align-items:center}.attention mat-icon{display:none;margin-left:2px}.attention.needs-attention{color:#c00}.attention.needs-attention mat-icon{display:inline}::ng-deep .tooltip-pending-upgrades{white-space:pre-line}@media (max-width: 600px){:host ::ng-deep .menu-button{width:100%;border-radius:4px}}@media (min-width: 600px){:host ::ng-deep .menu-button{box-shadow:none}}\n"], components: [{ type: i4__namespace.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4__namespace$1.FsMenuComponent, selector: "fs-menu", inputs: ["class", "buttonClass"], outputs: ["opened", "closed"] }, { type: i2__namespace$1.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["bottomMargin", "topMargin", "labelMargin"] }, { type: i2__namespace$1.FsLabelComponent, selector: "fs-label" }, { type: i6__namespace.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i5__namespace.FsSkeletonContentDirective, selector: "[fsSkeleton]", inputs: ["fsSkeleton", "fsSkeletonPattern"] }, { type: i6__namespace$1.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i6__namespace$1.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { type: i9__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i9__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4__namespace$1.FsMenuItemDirective, selector: "fs-menu-group,[fs-menu-item]", inputs: ["fsClass", "class", "id", "label", "hidden", "groupHidden", "dismissAfterClick", "link", "target", "queryParams"], outputs: ["click"] }, { type: i6__namespace$1.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i9__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i10__namespace.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i11__namespace.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], pipes: { "fsDateFormat": i4__namespace$2.FsDateFormatPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
117
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: DashboardComponent, decorators: [{
118
+ type: i0.Component,
119
+ args: [{
120
+ selector: 'fs-system-dashboard',
121
+ templateUrl: 'dashboard.component.html',
122
+ styleUrls: ['dashboard.component.scss'],
123
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
124
+ }]
125
+ }], ctorParameters: function () { return [{ type: i1__namespace.FsMessage }, { type: i0__namespace.ChangeDetectorRef }, { type: i2__namespace.FsBuildService }]; }, propDecorators: { init: [{
126
+ type: i0.Input
127
+ }], upgrade: [{
128
+ type: i0.Input
129
+ }], load: [{
130
+ type: i0.Input
131
+ }], actions: [{
132
+ type: i0.Input
133
133
  }] } });
134
134
 
135
- function indexNameValue(arry) {
136
- var obj = {};
137
- arry.forEach(function (item) {
138
- obj[item.value] = item.name;
139
- });
140
- return obj;
135
+ function indexNameValue(arry) {
136
+ var obj = {};
137
+ arry.forEach(function (item) {
138
+ obj[item.value] = item.name;
139
+ });
140
+ return obj;
141
141
  }
142
142
 
143
- /*! *****************************************************************************
144
- Copyright (c) Microsoft Corporation.
145
-
146
- Permission to use, copy, modify, and/or distribute this software for any
147
- purpose with or without fee is hereby granted.
148
-
149
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
150
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
151
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
152
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
153
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
154
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
155
- PERFORMANCE OF THIS SOFTWARE.
156
- ***************************************************************************** */
157
- /* global Reflect, Promise */
158
- var extendStatics = function (d, b) {
159
- extendStatics = Object.setPrototypeOf ||
160
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
161
- function (d, b) { for (var p in b)
162
- if (Object.prototype.hasOwnProperty.call(b, p))
163
- d[p] = b[p]; };
164
- return extendStatics(d, b);
165
- };
166
- function __extends(d, b) {
167
- if (typeof b !== "function" && b !== null)
168
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
169
- extendStatics(d, b);
170
- function __() { this.constructor = d; }
171
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
172
- }
173
- var __assign = function () {
174
- __assign = Object.assign || function __assign(t) {
175
- for (var s, i = 1, n = arguments.length; i < n; i++) {
176
- s = arguments[i];
177
- for (var p in s)
178
- if (Object.prototype.hasOwnProperty.call(s, p))
179
- t[p] = s[p];
180
- }
181
- return t;
182
- };
183
- return __assign.apply(this, arguments);
184
- };
185
- function __rest(s, e) {
186
- var t = {};
187
- for (var p in s)
188
- if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
189
- t[p] = s[p];
190
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
191
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
192
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
193
- t[p[i]] = s[p[i]];
194
- }
195
- return t;
196
- }
197
- function __decorate(decorators, target, key, desc) {
198
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
199
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
200
- r = Reflect.decorate(decorators, target, key, desc);
201
- else
202
- for (var i = decorators.length - 1; i >= 0; i--)
203
- if (d = decorators[i])
204
- r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
205
- return c > 3 && r && Object.defineProperty(target, key, r), r;
206
- }
207
- function __param(paramIndex, decorator) {
208
- return function (target, key) { decorator(target, key, paramIndex); };
209
- }
210
- function __metadata(metadataKey, metadataValue) {
211
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
212
- return Reflect.metadata(metadataKey, metadataValue);
213
- }
214
- function __awaiter(thisArg, _arguments, P, generator) {
215
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
216
- return new (P || (P = Promise))(function (resolve, reject) {
217
- function fulfilled(value) { try {
218
- step(generator.next(value));
219
- }
220
- catch (e) {
221
- reject(e);
222
- } }
223
- function rejected(value) { try {
224
- step(generator["throw"](value));
225
- }
226
- catch (e) {
227
- reject(e);
228
- } }
229
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
230
- step((generator = generator.apply(thisArg, _arguments || [])).next());
231
- });
232
- }
233
- function __generator(thisArg, body) {
234
- var _ = { label: 0, sent: function () { if (t[0] & 1)
235
- throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
236
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { return this; }), g;
237
- function verb(n) { return function (v) { return step([n, v]); }; }
238
- function step(op) {
239
- if (f)
240
- throw new TypeError("Generator is already executing.");
241
- while (_)
242
- try {
243
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
244
- return t;
245
- if (y = 0, t)
246
- op = [op[0] & 2, t.value];
247
- switch (op[0]) {
248
- case 0:
249
- case 1:
250
- t = op;
251
- break;
252
- case 4:
253
- _.label++;
254
- return { value: op[1], done: false };
255
- case 5:
256
- _.label++;
257
- y = op[1];
258
- op = [0];
259
- continue;
260
- case 7:
261
- op = _.ops.pop();
262
- _.trys.pop();
263
- continue;
264
- default:
265
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
266
- _ = 0;
267
- continue;
268
- }
269
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) {
270
- _.label = op[1];
271
- break;
272
- }
273
- if (op[0] === 6 && _.label < t[1]) {
274
- _.label = t[1];
275
- t = op;
276
- break;
277
- }
278
- if (t && _.label < t[2]) {
279
- _.label = t[2];
280
- _.ops.push(op);
281
- break;
282
- }
283
- if (t[2])
284
- _.ops.pop();
285
- _.trys.pop();
286
- continue;
287
- }
288
- op = body.call(thisArg, _);
289
- }
290
- catch (e) {
291
- op = [6, e];
292
- y = 0;
293
- }
294
- finally {
295
- f = t = 0;
296
- }
297
- if (op[0] & 5)
298
- throw op[1];
299
- return { value: op[0] ? op[1] : void 0, done: true };
300
- }
301
- }
302
- var __createBinding = Object.create ? (function (o, m, k, k2) {
303
- if (k2 === undefined)
304
- k2 = k;
305
- Object.defineProperty(o, k2, { enumerable: true, get: function () { return m[k]; } });
306
- }) : (function (o, m, k, k2) {
307
- if (k2 === undefined)
308
- k2 = k;
309
- o[k2] = m[k];
310
- });
311
- function __exportStar(m, o) {
312
- for (var p in m)
313
- if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p))
314
- __createBinding(o, m, p);
315
- }
316
- function __values(o) {
317
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
318
- if (m)
319
- return m.call(o);
320
- if (o && typeof o.length === "number")
321
- return {
322
- next: function () {
323
- if (o && i >= o.length)
324
- o = void 0;
325
- return { value: o && o[i++], done: !o };
326
- }
327
- };
328
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
329
- }
330
- function __read(o, n) {
331
- var m = typeof Symbol === "function" && o[Symbol.iterator];
332
- if (!m)
333
- return o;
334
- var i = m.call(o), r, ar = [], e;
335
- try {
336
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
337
- ar.push(r.value);
338
- }
339
- catch (error) {
340
- e = { error: error };
341
- }
342
- finally {
343
- try {
344
- if (r && !r.done && (m = i["return"]))
345
- m.call(i);
346
- }
347
- finally {
348
- if (e)
349
- throw e.error;
350
- }
351
- }
352
- return ar;
353
- }
354
- /** @deprecated */
355
- function __spread() {
356
- for (var ar = [], i = 0; i < arguments.length; i++)
357
- ar = ar.concat(__read(arguments[i]));
358
- return ar;
359
- }
360
- /** @deprecated */
361
- function __spreadArrays() {
362
- for (var s = 0, i = 0, il = arguments.length; i < il; i++)
363
- s += arguments[i].length;
364
- for (var r = Array(s), k = 0, i = 0; i < il; i++)
365
- for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
366
- r[k] = a[j];
367
- return r;
368
- }
369
- function __spreadArray(to, from, pack) {
370
- if (pack || arguments.length === 2)
371
- for (var i = 0, l = from.length, ar; i < l; i++) {
372
- if (ar || !(i in from)) {
373
- if (!ar)
374
- ar = Array.prototype.slice.call(from, 0, i);
375
- ar[i] = from[i];
376
- }
377
- }
378
- return to.concat(ar || Array.prototype.slice.call(from));
379
- }
380
- function __await(v) {
381
- return this instanceof __await ? (this.v = v, this) : new __await(v);
382
- }
383
- function __asyncGenerator(thisArg, _arguments, generator) {
384
- if (!Symbol.asyncIterator)
385
- throw new TypeError("Symbol.asyncIterator is not defined.");
386
- var g = generator.apply(thisArg, _arguments || []), i, q = [];
387
- return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
388
- function verb(n) { if (g[n])
389
- i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
390
- function resume(n, v) { try {
391
- step(g[n](v));
392
- }
393
- catch (e) {
394
- settle(q[0][3], e);
395
- } }
396
- function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
397
- function fulfill(value) { resume("next", value); }
398
- function reject(value) { resume("throw", value); }
399
- function settle(f, v) { if (f(v), q.shift(), q.length)
400
- resume(q[0][0], q[0][1]); }
401
- }
402
- function __asyncDelegator(o) {
403
- var i, p;
404
- return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
405
- function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
406
- }
407
- function __asyncValues(o) {
408
- if (!Symbol.asyncIterator)
409
- throw new TypeError("Symbol.asyncIterator is not defined.");
410
- var m = o[Symbol.asyncIterator], i;
411
- return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
412
- function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
413
- function settle(resolve, reject, d, v) { Promise.resolve(v).then(function (v) { resolve({ value: v, done: d }); }, reject); }
414
- }
415
- function __makeTemplateObject(cooked, raw) {
416
- if (Object.defineProperty) {
417
- Object.defineProperty(cooked, "raw", { value: raw });
418
- }
419
- else {
420
- cooked.raw = raw;
421
- }
422
- return cooked;
423
- }
424
- ;
425
- var __setModuleDefault = Object.create ? (function (o, v) {
426
- Object.defineProperty(o, "default", { enumerable: true, value: v });
427
- }) : function (o, v) {
428
- o["default"] = v;
429
- };
430
- function __importStar(mod) {
431
- if (mod && mod.__esModule)
432
- return mod;
433
- var result = {};
434
- if (mod != null)
435
- for (var k in mod)
436
- if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k))
437
- __createBinding(result, mod, k);
438
- __setModuleDefault(result, mod);
439
- return result;
440
- }
441
- function __importDefault(mod) {
442
- return (mod && mod.__esModule) ? mod : { default: mod };
443
- }
444
- function __classPrivateFieldGet(receiver, state, kind, f) {
445
- if (kind === "a" && !f)
446
- throw new TypeError("Private accessor was defined without a getter");
447
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
448
- throw new TypeError("Cannot read private member from an object whose class did not declare it");
449
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
450
- }
451
- function __classPrivateFieldSet(receiver, state, value, kind, f) {
452
- if (kind === "m")
453
- throw new TypeError("Private method is not writable");
454
- if (kind === "a" && !f)
455
- throw new TypeError("Private accessor was defined without a setter");
456
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
457
- throw new TypeError("Cannot write private member to an object whose class did not declare it");
458
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
143
+ /*! *****************************************************************************
144
+ Copyright (c) Microsoft Corporation.
145
+
146
+ Permission to use, copy, modify, and/or distribute this software for any
147
+ purpose with or without fee is hereby granted.
148
+
149
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
150
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
151
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
152
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
153
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
154
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
155
+ PERFORMANCE OF THIS SOFTWARE.
156
+ ***************************************************************************** */
157
+ /* global Reflect, Promise */
158
+ var extendStatics = function (d, b) {
159
+ extendStatics = Object.setPrototypeOf ||
160
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
161
+ function (d, b) { for (var p in b)
162
+ if (Object.prototype.hasOwnProperty.call(b, p))
163
+ d[p] = b[p]; };
164
+ return extendStatics(d, b);
165
+ };
166
+ function __extends(d, b) {
167
+ if (typeof b !== "function" && b !== null)
168
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
169
+ extendStatics(d, b);
170
+ function __() { this.constructor = d; }
171
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
172
+ }
173
+ var __assign = function () {
174
+ __assign = Object.assign || function __assign(t) {
175
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
176
+ s = arguments[i];
177
+ for (var p in s)
178
+ if (Object.prototype.hasOwnProperty.call(s, p))
179
+ t[p] = s[p];
180
+ }
181
+ return t;
182
+ };
183
+ return __assign.apply(this, arguments);
184
+ };
185
+ function __rest(s, e) {
186
+ var t = {};
187
+ for (var p in s)
188
+ if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
189
+ t[p] = s[p];
190
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
191
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
192
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
193
+ t[p[i]] = s[p[i]];
194
+ }
195
+ return t;
196
+ }
197
+ function __decorate(decorators, target, key, desc) {
198
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
199
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
200
+ r = Reflect.decorate(decorators, target, key, desc);
201
+ else
202
+ for (var i = decorators.length - 1; i >= 0; i--)
203
+ if (d = decorators[i])
204
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
205
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
206
+ }
207
+ function __param(paramIndex, decorator) {
208
+ return function (target, key) { decorator(target, key, paramIndex); };
209
+ }
210
+ function __metadata(metadataKey, metadataValue) {
211
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
212
+ return Reflect.metadata(metadataKey, metadataValue);
213
+ }
214
+ function __awaiter(thisArg, _arguments, P, generator) {
215
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
216
+ return new (P || (P = Promise))(function (resolve, reject) {
217
+ function fulfilled(value) { try {
218
+ step(generator.next(value));
219
+ }
220
+ catch (e) {
221
+ reject(e);
222
+ } }
223
+ function rejected(value) { try {
224
+ step(generator["throw"](value));
225
+ }
226
+ catch (e) {
227
+ reject(e);
228
+ } }
229
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
230
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
231
+ });
232
+ }
233
+ function __generator(thisArg, body) {
234
+ var _ = { label: 0, sent: function () { if (t[0] & 1)
235
+ throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
236
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { return this; }), g;
237
+ function verb(n) { return function (v) { return step([n, v]); }; }
238
+ function step(op) {
239
+ if (f)
240
+ throw new TypeError("Generator is already executing.");
241
+ while (_)
242
+ try {
243
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
244
+ return t;
245
+ if (y = 0, t)
246
+ op = [op[0] & 2, t.value];
247
+ switch (op[0]) {
248
+ case 0:
249
+ case 1:
250
+ t = op;
251
+ break;
252
+ case 4:
253
+ _.label++;
254
+ return { value: op[1], done: false };
255
+ case 5:
256
+ _.label++;
257
+ y = op[1];
258
+ op = [0];
259
+ continue;
260
+ case 7:
261
+ op = _.ops.pop();
262
+ _.trys.pop();
263
+ continue;
264
+ default:
265
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
266
+ _ = 0;
267
+ continue;
268
+ }
269
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) {
270
+ _.label = op[1];
271
+ break;
272
+ }
273
+ if (op[0] === 6 && _.label < t[1]) {
274
+ _.label = t[1];
275
+ t = op;
276
+ break;
277
+ }
278
+ if (t && _.label < t[2]) {
279
+ _.label = t[2];
280
+ _.ops.push(op);
281
+ break;
282
+ }
283
+ if (t[2])
284
+ _.ops.pop();
285
+ _.trys.pop();
286
+ continue;
287
+ }
288
+ op = body.call(thisArg, _);
289
+ }
290
+ catch (e) {
291
+ op = [6, e];
292
+ y = 0;
293
+ }
294
+ finally {
295
+ f = t = 0;
296
+ }
297
+ if (op[0] & 5)
298
+ throw op[1];
299
+ return { value: op[0] ? op[1] : void 0, done: true };
300
+ }
301
+ }
302
+ var __createBinding = Object.create ? (function (o, m, k, k2) {
303
+ if (k2 === undefined)
304
+ k2 = k;
305
+ Object.defineProperty(o, k2, { enumerable: true, get: function () { return m[k]; } });
306
+ }) : (function (o, m, k, k2) {
307
+ if (k2 === undefined)
308
+ k2 = k;
309
+ o[k2] = m[k];
310
+ });
311
+ function __exportStar(m, o) {
312
+ for (var p in m)
313
+ if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p))
314
+ __createBinding(o, m, p);
315
+ }
316
+ function __values(o) {
317
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
318
+ if (m)
319
+ return m.call(o);
320
+ if (o && typeof o.length === "number")
321
+ return {
322
+ next: function () {
323
+ if (o && i >= o.length)
324
+ o = void 0;
325
+ return { value: o && o[i++], done: !o };
326
+ }
327
+ };
328
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
329
+ }
330
+ function __read(o, n) {
331
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
332
+ if (!m)
333
+ return o;
334
+ var i = m.call(o), r, ar = [], e;
335
+ try {
336
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
337
+ ar.push(r.value);
338
+ }
339
+ catch (error) {
340
+ e = { error: error };
341
+ }
342
+ finally {
343
+ try {
344
+ if (r && !r.done && (m = i["return"]))
345
+ m.call(i);
346
+ }
347
+ finally {
348
+ if (e)
349
+ throw e.error;
350
+ }
351
+ }
352
+ return ar;
353
+ }
354
+ /** @deprecated */
355
+ function __spread() {
356
+ for (var ar = [], i = 0; i < arguments.length; i++)
357
+ ar = ar.concat(__read(arguments[i]));
358
+ return ar;
359
+ }
360
+ /** @deprecated */
361
+ function __spreadArrays() {
362
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++)
363
+ s += arguments[i].length;
364
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
365
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
366
+ r[k] = a[j];
367
+ return r;
368
+ }
369
+ function __spreadArray(to, from, pack) {
370
+ if (pack || arguments.length === 2)
371
+ for (var i = 0, l = from.length, ar; i < l; i++) {
372
+ if (ar || !(i in from)) {
373
+ if (!ar)
374
+ ar = Array.prototype.slice.call(from, 0, i);
375
+ ar[i] = from[i];
376
+ }
377
+ }
378
+ return to.concat(ar || Array.prototype.slice.call(from));
379
+ }
380
+ function __await(v) {
381
+ return this instanceof __await ? (this.v = v, this) : new __await(v);
382
+ }
383
+ function __asyncGenerator(thisArg, _arguments, generator) {
384
+ if (!Symbol.asyncIterator)
385
+ throw new TypeError("Symbol.asyncIterator is not defined.");
386
+ var g = generator.apply(thisArg, _arguments || []), i, q = [];
387
+ return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
388
+ function verb(n) { if (g[n])
389
+ i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
390
+ function resume(n, v) { try {
391
+ step(g[n](v));
392
+ }
393
+ catch (e) {
394
+ settle(q[0][3], e);
395
+ } }
396
+ function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
397
+ function fulfill(value) { resume("next", value); }
398
+ function reject(value) { resume("throw", value); }
399
+ function settle(f, v) { if (f(v), q.shift(), q.length)
400
+ resume(q[0][0], q[0][1]); }
401
+ }
402
+ function __asyncDelegator(o) {
403
+ var i, p;
404
+ return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
405
+ function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
406
+ }
407
+ function __asyncValues(o) {
408
+ if (!Symbol.asyncIterator)
409
+ throw new TypeError("Symbol.asyncIterator is not defined.");
410
+ var m = o[Symbol.asyncIterator], i;
411
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
412
+ function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
413
+ function settle(resolve, reject, d, v) { Promise.resolve(v).then(function (v) { resolve({ value: v, done: d }); }, reject); }
414
+ }
415
+ function __makeTemplateObject(cooked, raw) {
416
+ if (Object.defineProperty) {
417
+ Object.defineProperty(cooked, "raw", { value: raw });
418
+ }
419
+ else {
420
+ cooked.raw = raw;
421
+ }
422
+ return cooked;
423
+ }
424
+ ;
425
+ var __setModuleDefault = Object.create ? (function (o, v) {
426
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
427
+ }) : function (o, v) {
428
+ o["default"] = v;
429
+ };
430
+ function __importStar(mod) {
431
+ if (mod && mod.__esModule)
432
+ return mod;
433
+ var result = {};
434
+ if (mod != null)
435
+ for (var k in mod)
436
+ if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k))
437
+ __createBinding(result, mod, k);
438
+ __setModuleDefault(result, mod);
439
+ return result;
440
+ }
441
+ function __importDefault(mod) {
442
+ return (mod && mod.__esModule) ? mod : { default: mod };
443
+ }
444
+ function __classPrivateFieldGet(receiver, state, kind, f) {
445
+ if (kind === "a" && !f)
446
+ throw new TypeError("Private accessor was defined without a getter");
447
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
448
+ throw new TypeError("Cannot read private member from an object whose class did not declare it");
449
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
450
+ }
451
+ function __classPrivateFieldSet(receiver, state, value, kind, f) {
452
+ if (kind === "m")
453
+ throw new TypeError("Private method is not writable");
454
+ if (kind === "a" && !f)
455
+ throw new TypeError("Private accessor was defined without a setter");
456
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
457
+ throw new TypeError("Cannot write private member to an object whose class did not declare it");
458
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
459
459
  }
460
460
 
461
- exports.CronState = void 0;
462
- (function (CronState) {
463
- CronState["Running"] = "running";
464
- CronState["Idle"] = "idle";
465
- CronState["Failed"] = "failed";
466
- CronState["Queued"] = "queued";
467
- CronState["Disabled"] = "disabled";
468
- CronState["Enabled"] = "enabled";
469
- CronState["Killing"] = "killing";
461
+ exports.CronState = void 0;
462
+ (function (CronState) {
463
+ CronState["Running"] = "running";
464
+ CronState["Idle"] = "idle";
465
+ CronState["Failed"] = "failed";
466
+ CronState["Queued"] = "queued";
467
+ CronState["Disabled"] = "disabled";
468
+ CronState["Enabled"] = "enabled";
469
+ CronState["Killing"] = "killing";
470
470
  })(exports.CronState || (exports.CronState = {}));
471
471
 
472
- var SettingInterfaceType;
473
- (function (SettingInterfaceType) {
474
- SettingInterfaceType["RadioButton"] = "R";
475
- SettingInterfaceType["InputBox"] = "I";
476
- SettingInterfaceType["Textarea"] = "T";
477
- SettingInterfaceType["Select"] = "D";
478
- SettingInterfaceType["SelectMultiple"] = "W";
479
- SettingInterfaceType["Date"] = "A";
480
- SettingInterfaceType["File"] = "F";
481
- SettingInterfaceType["Static"] = "S";
482
- SettingInterfaceType["Password"] = "P";
483
- SettingInterfaceType["Time"] = "M";
484
- SettingInterfaceType["None"] = "N";
485
- SettingInterfaceType["Color"] = "C";
472
+ var SettingInterfaceType;
473
+ (function (SettingInterfaceType) {
474
+ SettingInterfaceType["RadioButton"] = "R";
475
+ SettingInterfaceType["InputBox"] = "I";
476
+ SettingInterfaceType["Textarea"] = "T";
477
+ SettingInterfaceType["Select"] = "D";
478
+ SettingInterfaceType["SelectMultiple"] = "W";
479
+ SettingInterfaceType["Date"] = "A";
480
+ SettingInterfaceType["File"] = "F";
481
+ SettingInterfaceType["Static"] = "S";
482
+ SettingInterfaceType["Password"] = "P";
483
+ SettingInterfaceType["Time"] = "M";
484
+ SettingInterfaceType["None"] = "N";
485
+ SettingInterfaceType["Color"] = "C";
486
486
  })(SettingInterfaceType || (SettingInterfaceType = {}));
487
487
 
488
- exports.ApiLogState = void 0;
489
- (function (ApiLogState) {
490
- ApiLogState["Success"] = "success";
491
- ApiLogState["Failed"] = "failed";
492
- ApiLogState["Deleted"] = "deleted";
488
+ exports.ApiLogState = void 0;
489
+ (function (ApiLogState) {
490
+ ApiLogState["Success"] = "success";
491
+ ApiLogState["Failed"] = "failed";
492
+ ApiLogState["Deleted"] = "deleted";
493
493
  })(exports.ApiLogState || (exports.ApiLogState = {}));
494
494
 
495
- exports.ProcessState = void 0;
496
- (function (ProcessState) {
497
- ProcessState["Queued"] = "Q";
498
- ProcessState["Running"] = "R";
499
- ProcessState["Completed"] = "C";
500
- ProcessState["Killed"] = "K";
501
- ProcessState["Deleted"] = "D";
502
- ProcessState["Failed"] = "F";
495
+ exports.ProcessState = void 0;
496
+ (function (ProcessState) {
497
+ ProcessState["Queued"] = "Q";
498
+ ProcessState["Running"] = "R";
499
+ ProcessState["Completed"] = "C";
500
+ ProcessState["Killed"] = "K";
501
+ ProcessState["Deleted"] = "D";
502
+ ProcessState["Failed"] = "F";
503
503
  })(exports.ProcessState || (exports.ProcessState = {}));
504
504
 
505
- var CronLogState;
506
- (function (CronLogState) {
507
- CronLogState["Message"] = "message";
508
- CronLogState["Disabled"] = "disabled";
509
- CronLogState["Enabled"] = "enabled";
510
- CronLogState["Started"] = "started";
511
- CronLogState["Running"] = "running";
512
- CronLogState["Completed"] = "completed";
513
- CronLogState["Failed"] = "failed";
514
- CronLogState["Killed"] = "killed";
515
- CronLogState["Queued"] = "queued";
516
- CronLogState["Reset"] = "reset";
517
- CronLogState["Stagnant"] = "stagnant";
518
- CronLogState["LongRunning"] = "long_running";
505
+ var CronLogState;
506
+ (function (CronLogState) {
507
+ CronLogState["Message"] = "message";
508
+ CronLogState["Disabled"] = "disabled";
509
+ CronLogState["Enabled"] = "enabled";
510
+ CronLogState["Started"] = "started";
511
+ CronLogState["Running"] = "running";
512
+ CronLogState["Completed"] = "completed";
513
+ CronLogState["Failed"] = "failed";
514
+ CronLogState["Killed"] = "killed";
515
+ CronLogState["Queued"] = "queued";
516
+ CronLogState["Reset"] = "reset";
517
+ CronLogState["Stagnant"] = "stagnant";
518
+ CronLogState["LongRunning"] = "long_running";
519
519
  })(CronLogState || (CronLogState = {}));
520
520
 
521
- var CronLogStates = [
522
- { name: 'Message', value: CronLogState.Message, color: '#29B7FF' },
523
- { name: 'Disabled', value: CronLogState.Disabled, color: '#29B7FF' },
524
- { name: 'Reset', value: CronLogState.Reset, color: '#29B7FF' },
525
- { name: 'Enabled', value: CronLogState.Enabled, color: '#29B7FF' },
526
- { name: 'Queued', value: CronLogState.Queued, color: '#29B7FF' },
527
- { name: 'Started', value: CronLogState.Started, color: '#D17333' },
528
- { name: 'Running', value: CronLogState.Running, color: '#34BD43' },
529
- { name: 'Completed', value: CronLogState.Completed, color: '#34BD43' },
530
- { name: 'Failed', value: CronLogState.Failed, color: '#FA7567' },
531
- { name: 'Killed', value: CronLogState.Killed, color: '#FA7567' },
532
- { name: 'Stagnant', value: CronLogState.Stagnant, color: '#FA7567' },
533
- { name: 'Long Running', value: CronLogState.LongRunning, color: '#FA7567' },
521
+ var CronLogStates = [
522
+ { name: 'Message', value: CronLogState.Message, color: '#29B7FF' },
523
+ { name: 'Disabled', value: CronLogState.Disabled, color: '#29B7FF' },
524
+ { name: 'Reset', value: CronLogState.Reset, color: '#29B7FF' },
525
+ { name: 'Enabled', value: CronLogState.Enabled, color: '#29B7FF' },
526
+ { name: 'Queued', value: CronLogState.Queued, color: '#29B7FF' },
527
+ { name: 'Started', value: CronLogState.Started, color: '#D17333' },
528
+ { name: 'Running', value: CronLogState.Running, color: '#34BD43' },
529
+ { name: 'Completed', value: CronLogState.Completed, color: '#34BD43' },
530
+ { name: 'Failed', value: CronLogState.Failed, color: '#FA7567' },
531
+ { name: 'Killed', value: CronLogState.Killed, color: '#FA7567' },
532
+ { name: 'Stagnant', value: CronLogState.Stagnant, color: '#FA7567' },
533
+ { name: 'Long Running', value: CronLogState.LongRunning, color: '#FA7567' },
534
534
  ];
535
535
 
536
- var CronStates = [
537
- { name: 'Running', value: exports.CronState.Running },
538
- { name: 'Idle', value: exports.CronState.Idle },
539
- { name: 'Failed', value: exports.CronState.Failed },
540
- { name: 'Queued', value: exports.CronState.Queued },
541
- { name: 'Disabled', value: exports.CronState.Disabled },
542
- { name: 'Killing', value: exports.CronState.Killing },
543
- { name: 'Enabled', value: exports.CronState.Enabled },
536
+ var CronStates = [
537
+ { name: 'Running', value: exports.CronState.Running },
538
+ { name: 'Idle', value: exports.CronState.Idle },
539
+ { name: 'Failed', value: exports.CronState.Failed },
540
+ { name: 'Queued', value: exports.CronState.Queued },
541
+ { name: 'Disabled', value: exports.CronState.Disabled },
542
+ { name: 'Killing', value: exports.CronState.Killing },
543
+ { name: 'Enabled', value: exports.CronState.Enabled },
544
544
  ];
545
545
 
546
- var ApiLogStates = [
547
- { name: 'Success', value: exports.ApiLogState.Success },
548
- { name: 'Failed', value: exports.ApiLogState.Failed },
549
- { name: 'Deleted', value: exports.ApiLogState.Deleted }
546
+ var ApiLogStates = [
547
+ { name: 'Success', value: exports.ApiLogState.Success },
548
+ { name: 'Failed', value: exports.ApiLogState.Failed },
549
+ { name: 'Deleted', value: exports.ApiLogState.Deleted }
550
550
  ];
551
551
 
552
- var ProcessStates = [
553
- { name: 'Queued', value: exports.ProcessState.Queued },
554
- { name: 'Running', value: exports.ProcessState.Running },
555
- { name: 'Completed', value: exports.ProcessState.Completed },
556
- { name: 'Killed', value: exports.ProcessState.Killed },
557
- { name: 'Failed', value: exports.ProcessState.Failed },
558
- { name: 'Deleted', value: exports.ProcessState.Deleted }
552
+ var ProcessStates = [
553
+ { name: 'Queued', value: exports.ProcessState.Queued },
554
+ { name: 'Running', value: exports.ProcessState.Running },
555
+ { name: 'Completed', value: exports.ProcessState.Completed },
556
+ { name: 'Killed', value: exports.ProcessState.Killed },
557
+ { name: 'Failed', value: exports.ProcessState.Failed },
558
+ { name: 'Deleted', value: exports.ProcessState.Deleted }
559
559
  ];
560
560
 
561
- var CronLogComponent = /** @class */ (function () {
562
- function CronLogComponent(_data) {
563
- this._data = _data;
564
- this.CronLogStates = indexNameValue(CronLogStates);
565
- this.CronLogStateColors = {};
566
- }
567
- CronLogComponent.prototype.ngOnInit = function () {
568
- this.cronLog = this._data.cronLog;
569
- this.CronLogStateColors = CronLogStates
570
- .reduce(function (accum, cronLogState) {
571
- accum[cronLogState.value] = cronLogState.color;
572
- return accum;
573
- }, {});
574
- };
575
- return CronLogComponent;
576
- }());
577
- CronLogComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: CronLogComponent, deps: [{ token: i1$1.MAT_DIALOG_DATA }], target: i0__namespace.ɵɵFactoryTarget.Component });
578
- CronLogComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: CronLogComponent, selector: "ng-component", ngImport: i0__namespace, template: "<fs-dialog *fsSkeleton=\"cronLog\">\n <div mat-dialog-title>Cron Log</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\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 \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 mat-button [mat-dialog-close]=\"true\" color=\"primary\">Done</button>\n </mat-dialog-actions>\n</fs-dialog>\n", styles: [".message{white-space:pre-line}.row{display:flex;flex-wrap:wrap}.row fs-label-field:not(:last-child){margin-right:40px}\n"], components: [{ type: i2__namespace$2.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: i2__namespace$1.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["bottomMargin", "topMargin", "labelMargin"] }, { type: i2__namespace$1.FsLabelComponent, selector: "fs-label" }, { type: i4__namespace$2.FsDateAgoComponent, selector: "fs-date-ago", inputs: ["date", "showTime", "format", "showTooltip", "tooltipDateFormat"] }, { type: i4__namespace.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i5__namespace.FsSkeletonContentDirective, selector: "[fsSkeleton]", inputs: ["fsSkeleton", "fsSkeletonPattern"] }, { type: i1__namespace$1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1__namespace$1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i9__namespace.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i10__namespace.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }, { type: i9__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace$1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i1__namespace$1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }] });
579
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: CronLogComponent, decorators: [{
580
- type: i0.Component,
581
- args: [{
582
- templateUrl: './cron-log.component.html',
583
- styleUrls: ['./cron-log.component.scss']
584
- }]
585
- }], ctorParameters: function () {
586
- return [{ type: undefined, decorators: [{
587
- type: i0.Inject,
588
- args: [i1$1.MAT_DIALOG_DATA]
589
- }] }];
561
+ var CronLogComponent = /** @class */ (function () {
562
+ function CronLogComponent(_data) {
563
+ this._data = _data;
564
+ this.CronLogStates = indexNameValue(CronLogStates);
565
+ this.CronLogStateColors = {};
566
+ }
567
+ CronLogComponent.prototype.ngOnInit = function () {
568
+ this.cronLog = this._data.cronLog;
569
+ this.CronLogStateColors = CronLogStates
570
+ .reduce(function (accum, cronLogState) {
571
+ accum[cronLogState.value] = cronLogState.color;
572
+ return accum;
573
+ }, {});
574
+ };
575
+ return CronLogComponent;
576
+ }());
577
+ CronLogComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: CronLogComponent, deps: [{ token: i1$1.MAT_DIALOG_DATA }], target: i0__namespace.ɵɵFactoryTarget.Component });
578
+ CronLogComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: CronLogComponent, selector: "ng-component", ngImport: i0__namespace, template: "<fs-dialog *fsSkeleton=\"cronLog\">\r\n <div mat-dialog-title>Cron Log</div>\r\n <mat-dialog-content>\r\n <div class=\"row\">\r\n <fs-label-field>\r\n <fs-label>\r\n Status\r\n </fs-label>\r\n <div [ngStyle]=\"{ color: CronLogStateColors[cronLog.state]}\">\r\n {{CronLogStates[cronLog.state] || cronLog.state}}\r\n </div>\r\n </fs-label-field>\r\n\r\n <fs-label-field>\r\n <fs-label>\r\n Date\r\n </fs-label>\r\n <fs-date-ago [date]=\"cronLog.createDate\"></fs-date-ago>\r\n </fs-label-field>\r\n </div>\r\n \r\n <fs-label-field *ngIf=\"cronLog.message\">\r\n <fs-label>\r\n Message\r\n </fs-label>\r\n <div class=\"message\">\r\n {{cronLog.message}}\r\n </div>\r\n </fs-label-field>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <button mat-button [mat-dialog-close]=\"true\" color=\"primary\">Done</button>\r\n </mat-dialog-actions>\r\n</fs-dialog>\r\n", styles: [".message{white-space:pre-line}.row{display:flex;flex-wrap:wrap}.row fs-label-field:not(:last-child){margin-right:40px}\n"], components: [{ type: i2__namespace$2.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: i2__namespace$1.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["bottomMargin", "topMargin", "labelMargin"] }, { type: i2__namespace$1.FsLabelComponent, selector: "fs-label" }, { type: i4__namespace$2.FsDateAgoComponent, selector: "fs-date-ago", inputs: ["date", "showTime", "format", "showTooltip", "tooltipDateFormat"] }, { type: i4__namespace.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i5__namespace.FsSkeletonContentDirective, selector: "[fsSkeleton]", inputs: ["fsSkeleton", "fsSkeletonPattern"] }, { type: i1__namespace$1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1__namespace$1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i9__namespace.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i10__namespace.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }, { type: i9__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace$1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i1__namespace$1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }] });
579
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: CronLogComponent, decorators: [{
580
+ type: i0.Component,
581
+ args: [{
582
+ templateUrl: './cron-log.component.html',
583
+ styleUrls: ['./cron-log.component.scss']
584
+ }]
585
+ }], ctorParameters: function () {
586
+ return [{ type: undefined, decorators: [{
587
+ type: i0.Inject,
588
+ args: [i1$1.MAT_DIALOG_DATA]
589
+ }] }];
590
590
  } });
591
591
 
592
- var CronComponent = /** @class */ (function () {
593
- function CronComponent(_data, _dialog, _cdRef) {
594
- this._data = _data;
595
- this._dialog = _dialog;
596
- this._cdRef = _cdRef;
597
- this.tabIndex = 0;
598
- this.CronStates = indexNameValue(CronStates);
599
- this.CronLogStates = indexNameValue(CronLogStates);
600
- this.CronLogStateColors = {};
601
- }
602
- CronComponent.prototype.ngOnInit = function () {
603
- this.load();
604
- this.CronLogStateColors = CronLogStates
605
- .reduce(function (accum, cronLogState) {
606
- accum[cronLogState.value] = cronLogState.color;
607
- return accum;
608
- }, {});
609
- };
610
- CronComponent.prototype.cronLogOpen = function (cronLog) {
611
- this._dialog.open(CronLogComponent, {
612
- data: {
613
- cronLog: cronLog,
614
- },
615
- width: '85%'
616
- });
617
- };
618
- CronComponent.prototype.cronActionClick = function (cronAction) {
619
- var _this = this;
620
- cronAction.action(this.cron)
621
- .subscribe(function () {
622
- _this.load();
623
- });
624
- };
625
- CronComponent.prototype.selectedIndexChange = function (index) {
626
- this.tabIndex = index;
627
- };
628
- CronComponent.prototype.load = function () {
629
- var _this = this;
630
- this._data.loadCron(this._data.cron)
631
- .subscribe(function (cron) {
632
- _this.cron = Object.assign(Object.assign({}, _this._data.cron), cron);
633
- if (_this._data.loadCronLogs) {
634
- _this.config = {
635
- filters: [
636
- {
637
- type: filter.ItemType.Select,
638
- name: 'state',
639
- label: 'Status',
640
- values: __spreadArray([
641
- { name: 'All', value: null }
642
- ], __read(CronLogStates)),
643
- },
644
- {
645
- type: filter.ItemType.DateRange,
646
- name: 'date',
647
- label: ['From Date', 'To Date'],
648
- },
649
- ],
650
- fetch: function (query) {
651
- query = Object.assign(Object.assign({}, query), { cronId: _this.cron.id });
652
- return _this._data.loadCronLogs(query);
653
- },
654
- };
655
- }
656
- _this.cronActions = _this._data.cronActions
657
- .filter(function (cronLogAction) {
658
- return cronLogAction.show(_this.cron);
659
- });
660
- _this._cdRef.markForCheck();
661
- });
662
- };
663
- return CronComponent;
664
- }());
665
- CronComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: CronComponent, deps: [{ token: i1$1.MAT_DIALOG_DATA }, { token: i1__namespace$1.MatDialog }, { token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
666
- CronComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: CronComponent, selector: "ng-component", ngImport: i0__namespace, template: "<fs-dialog *fsSkeleton=\"cron\">\n <h1 mat-dialog-title>\n Cron\n <div class=\"small\">{{cron.name}}</div>\n </h1>\n <mat-dialog-content>\n <mat-tab-group (selectedIndexChange)=\"selectedIndexChange($event)\">\n <mat-tab label=\"Overview\">\n <div class=\"row\">\n <fs-label-field>\n <fs-label>\n Status\n </fs-label>\n {{CronStates[cron.state]}}\n </fs-label-field>\n\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\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><small *ngIf=\"cron.duration\">Duration: {{ cron.duration | fsDateDuration }}</small></div>\n </ng-template>\n </fs-label-field>\n </div>\n\n <fs-label-field *ngIf=\"cron.message\">\n <fs-label>\n Last Message\n </fs-label>\n <div class=\"message\">{{cron.message}}</div>\n </fs-label-field>\n </mat-tab>\n <mat-tab label=\"Logs\" *ngIf=\"config\">\n <ng-template matTabContent>\n <fs-list [config]=\"config\">\n <fs-list-column name=\"state\" title=\"Status\">\n <ng-template fs-list-cell 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 \n <fs-list-column title=\"Message\" class=\"col-message\">\n <ng-template fs-list-cell let-row=\"row\">\n <div class=\"message\">{{row.message}}</div>\n </ng-template>\n </fs-list-column>\n \n <fs-list-column title=\"Duration\" class=\"col-message\">\n <ng-template fs-list-cell 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\n <fs-list-column name=\"create_date\" title=\"Date\" class=\"col-date\">\n <ng-template fs-list-cell let-row=\"row\">\n <fs-date-ago [date]=\"row.createDate\"></fs-date-ago>\n </ng-template>\n </fs-list-column>\n </fs-list> \n </ng-template>\n </mat-tab>\n </mat-tab-group>\n\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>\n", 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"], components: [{ type: i2__namespace$2.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: i3__namespace.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple"], exportAs: ["matTabGroup"] }, { type: i3__namespace.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby"], exportAs: ["matTab"] }, { type: i2__namespace$1.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["bottomMargin", "topMargin", "labelMargin"] }, { type: i2__namespace$1.FsLabelComponent, selector: "fs-label" }, { type: i4__namespace$2.FsDateAgoComponent, selector: "fs-date-ago", inputs: ["date", "showTime", "format", "showTooltip", "tooltipDateFormat"] }, { type: i2__namespace$3.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { type: i4__namespace.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i5__namespace.FsSkeletonContentDirective, selector: "[fsSkeleton]", inputs: ["fsSkeleton", "fsSkeletonPattern"] }, { type: i1__namespace$1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1__namespace$1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i9__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3__namespace.MatTabContent, selector: "[matTabContent]" }, { type: i2__namespace$3.FsListColumnDirective, selector: "fs-list-column", inputs: ["title", "name", "show", "customize", "sortable", "sortableDefault", "direction", "align", "width", "class"] }, { type: i2__namespace$3.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }, { type: i9__namespace.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i10__namespace.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }, { type: i1__namespace$1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i1__namespace$1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }, { type: i9__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "fsDateDuration": i4__namespace$2.FsDateDurationPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
667
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: CronComponent, decorators: [{
668
- type: i0.Component,
669
- args: [{
670
- templateUrl: './cron.component.html',
671
- styleUrls: ['./cron.component.scss'],
672
- changeDetection: i0.ChangeDetectionStrategy.OnPush,
673
- }]
674
- }], ctorParameters: function () {
675
- return [{ type: undefined, decorators: [{
676
- type: i0.Inject,
677
- args: [i1$1.MAT_DIALOG_DATA]
678
- }] }, { type: i1__namespace$1.MatDialog }, { type: i0__namespace.ChangeDetectorRef }];
592
+ var CronComponent = /** @class */ (function () {
593
+ function CronComponent(_data, _dialog, _cdRef) {
594
+ this._data = _data;
595
+ this._dialog = _dialog;
596
+ this._cdRef = _cdRef;
597
+ this.tabIndex = 0;
598
+ this.CronStates = indexNameValue(CronStates);
599
+ this.CronLogStates = indexNameValue(CronLogStates);
600
+ this.CronLogStateColors = {};
601
+ }
602
+ CronComponent.prototype.ngOnInit = function () {
603
+ this.load();
604
+ this.CronLogStateColors = CronLogStates
605
+ .reduce(function (accum, cronLogState) {
606
+ accum[cronLogState.value] = cronLogState.color;
607
+ return accum;
608
+ }, {});
609
+ };
610
+ CronComponent.prototype.cronLogOpen = function (cronLog) {
611
+ this._dialog.open(CronLogComponent, {
612
+ data: {
613
+ cronLog: cronLog,
614
+ },
615
+ width: '85%'
616
+ });
617
+ };
618
+ CronComponent.prototype.cronActionClick = function (cronAction) {
619
+ var _this = this;
620
+ cronAction.action(this.cron)
621
+ .subscribe(function () {
622
+ _this.load();
623
+ });
624
+ };
625
+ CronComponent.prototype.selectedIndexChange = function (index) {
626
+ this.tabIndex = index;
627
+ };
628
+ CronComponent.prototype.load = function () {
629
+ var _this = this;
630
+ this._data.loadCron(this._data.cron)
631
+ .subscribe(function (cron) {
632
+ _this.cron = Object.assign(Object.assign({}, _this._data.cron), cron);
633
+ if (_this._data.loadCronLogs) {
634
+ _this.config = {
635
+ filters: [
636
+ {
637
+ type: filter.ItemType.Select,
638
+ name: 'state',
639
+ label: 'Status',
640
+ values: __spreadArray([
641
+ { name: 'All', value: null }
642
+ ], __read(CronLogStates)),
643
+ },
644
+ {
645
+ type: filter.ItemType.DateRange,
646
+ name: 'date',
647
+ label: ['From Date', 'To Date'],
648
+ },
649
+ ],
650
+ fetch: function (query) {
651
+ query = Object.assign(Object.assign({}, query), { cronId: _this.cron.id });
652
+ return _this._data.loadCronLogs(query);
653
+ },
654
+ };
655
+ }
656
+ _this.cronActions = _this._data.cronActions
657
+ .filter(function (cronLogAction) {
658
+ return cronLogAction.show(_this.cron);
659
+ });
660
+ _this._cdRef.markForCheck();
661
+ });
662
+ };
663
+ return CronComponent;
664
+ }());
665
+ CronComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: CronComponent, deps: [{ token: i1$1.MAT_DIALOG_DATA }, { token: i1__namespace$1.MatDialog }, { token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
666
+ CronComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: CronComponent, selector: "ng-component", ngImport: i0__namespace, template: "<fs-dialog *fsSkeleton=\"cron\">\r\n <h1 mat-dialog-title>\r\n Cron\r\n <div class=\"small\">{{cron.name}}</div>\r\n </h1>\r\n <mat-dialog-content>\r\n <mat-tab-group (selectedIndexChange)=\"selectedIndexChange($event)\">\r\n <mat-tab label=\"Overview\">\r\n <div class=\"row\">\r\n <fs-label-field>\r\n <fs-label>\r\n Status\r\n </fs-label>\r\n {{CronStates[cron.state]}}\r\n </fs-label-field>\r\n\r\n <fs-label-field *ngIf=\"cron.cronSetting\">\r\n <fs-label>\r\n Run Frequency\r\n </fs-label>\r\n {{cron.cronSetting.summary}}\r\n </fs-label-field>\r\n\r\n <fs-label-field>\r\n <fs-label>\r\n Last Ran\r\n </fs-label>\r\n <ng-container *ngIf=\"cron.duration===null; else lastRan\">\r\n Never\r\n </ng-container>\r\n <ng-template #lastRan>\r\n <fs-date-ago [date]=\"cron.createDate\"></fs-date-ago>\r\n <div><small *ngIf=\"cron.duration\">Duration: {{ cron.duration | fsDateDuration }}</small></div>\r\n </ng-template>\r\n </fs-label-field>\r\n </div>\r\n\r\n <fs-label-field *ngIf=\"cron.message\">\r\n <fs-label>\r\n Last Message\r\n </fs-label>\r\n <div class=\"message\">{{cron.message}}</div>\r\n </fs-label-field>\r\n </mat-tab>\r\n <mat-tab label=\"Logs\" *ngIf=\"config\">\r\n <ng-template matTabContent>\r\n <fs-list [config]=\"config\">\r\n <fs-list-column name=\"state\" title=\"Status\">\r\n <ng-template fs-list-cell let-row=\"row\">\r\n <a \r\n (click)=\"cronLogOpen(row)\"\r\n [ngStyle]=\"{ color: CronLogStateColors[row.state] }\">\r\n {{CronLogStates[row.state] || row.state}}\r\n </a>\r\n </ng-template>\r\n </fs-list-column>\r\n \r\n <fs-list-column title=\"Message\" class=\"col-message\">\r\n <ng-template fs-list-cell let-row=\"row\">\r\n <div class=\"message\">{{row.message}}</div>\r\n </ng-template>\r\n </fs-list-column>\r\n \r\n <fs-list-column title=\"Duration\" class=\"col-message\">\r\n <ng-template fs-list-cell let-row=\"row\">\r\n <ng-container *ngIf=\"row.duration\">\r\n {{row.duration | fsDateDuration: 'hour-minute-second'}}\r\n </ng-container>\r\n </ng-template>\r\n </fs-list-column>\r\n\r\n <fs-list-column name=\"create_date\" title=\"Date\" class=\"col-date\">\r\n <ng-template fs-list-cell let-row=\"row\">\r\n <fs-date-ago [date]=\"row.createDate\"></fs-date-ago>\r\n </ng-template>\r\n </fs-list-column>\r\n </fs-list> \r\n </ng-template>\r\n </mat-tab>\r\n </mat-tab-group>\r\n\r\n </mat-dialog-content>\r\n <mat-dialog-actions> \r\n <button \r\n mat-button \r\n [mat-dialog-close]=\"true\" \r\n color=\"primary\">\r\n Done\r\n </button>\r\n <ng-container *ngIf=\"tabIndex === 0\">\r\n <button \r\n *ngFor=\"let cronAction of cronActions\"\r\n mat-button \r\n (click)=\"cronActionClick(cronAction)\">\r\n {{cronAction.label}}\r\n </button> \r\n </ng-container>\r\n </mat-dialog-actions>\r\n</fs-dialog>\r\n", 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"], components: [{ type: i2__namespace$2.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: i3__namespace.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple"], exportAs: ["matTabGroup"] }, { type: i3__namespace.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby"], exportAs: ["matTab"] }, { type: i2__namespace$1.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["bottomMargin", "topMargin", "labelMargin"] }, { type: i2__namespace$1.FsLabelComponent, selector: "fs-label" }, { type: i4__namespace$2.FsDateAgoComponent, selector: "fs-date-ago", inputs: ["date", "showTime", "format", "showTooltip", "tooltipDateFormat"] }, { type: i2__namespace$3.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { type: i4__namespace.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i5__namespace.FsSkeletonContentDirective, selector: "[fsSkeleton]", inputs: ["fsSkeleton", "fsSkeletonPattern"] }, { type: i1__namespace$1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1__namespace$1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i9__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3__namespace.MatTabContent, selector: "[matTabContent]" }, { type: i2__namespace$3.FsListColumnDirective, selector: "fs-list-column", inputs: ["title", "name", "show", "customize", "sortable", "sortableDefault", "direction", "align", "width", "class"] }, { type: i2__namespace$3.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }, { type: i9__namespace.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i10__namespace.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }, { type: i1__namespace$1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i1__namespace$1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }, { type: i9__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "fsDateDuration": i4__namespace$2.FsDateDurationPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
667
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: CronComponent, decorators: [{
668
+ type: i0.Component,
669
+ args: [{
670
+ templateUrl: './cron.component.html',
671
+ styleUrls: ['./cron.component.scss'],
672
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
673
+ }]
674
+ }], ctorParameters: function () {
675
+ return [{ type: undefined, decorators: [{
676
+ type: i0.Inject,
677
+ args: [i1$1.MAT_DIALOG_DATA]
678
+ }] }, { type: i1__namespace$1.MatDialog }, { type: i0__namespace.ChangeDetectorRef }];
679
679
  } });
680
680
 
681
- var CronsComponent = /** @class */ (function () {
682
- function CronsComponent(_message, _dialog, _prompt) {
683
- this._message = _message;
684
- this._dialog = _dialog;
685
- this._prompt = _prompt;
686
- this.config = null;
687
- this.cronStates = indexNameValue(CronStates);
688
- this.CronState = exports.CronState;
689
- this._destroy$ = new rxjs.Subject();
690
- }
691
- CronsComponent.prototype.ngOnInit = function () {
692
- this._configList();
693
- };
694
- CronsComponent.prototype._configList = function () {
695
- var _this = this;
696
- this.config = {
697
- paging: false,
698
- filters: [
699
- {
700
- type: filter.ItemType.Keyword,
701
- name: 'keyword',
702
- label: 'Search'
703
- }
704
- ],
705
- rowActions: this.getCronActions()
706
- .map(function (rowAction) {
707
- return Object.assign(Object.assign({}, rowAction), { click: function (cron) {
708
- rowAction.action(cron)
709
- .subscribe();
710
- } });
711
- }),
712
- fetch: function (query) {
713
- query.timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
714
- return _this.loadCrons(query)
715
- .pipe(operators.map(function (crons) { return ({
716
- data: crons
717
- .map(function (cron) {
718
- return Object.assign(Object.assign({}, cron), { runningDuration: dateFns.differenceInSeconds(i4$2.parse(cron.createDate), new Date()) });
719
- })
720
- }); }));
721
- },
722
- };
723
- if (this.bulk) {
724
- this.config.selection = {
725
- selectAll: false,
726
- actions: [
727
- {
728
- type: selection.SelectionActionType.Action,
729
- name: 'disable',
730
- label: 'Disable'
731
- },
732
- {
733
- type: selection.SelectionActionType.Action,
734
- name: 'enable',
735
- label: 'Enable'
736
- },
737
- ],
738
- actionSelected: function (action) {
739
- return _this.bulk(action.action.name, action.selected)
740
- .pipe(operators.tap(function () {
741
- _this.list.reload();
742
- _this._message.success('Applied Changes');
743
- }));
744
- },
745
- };
746
- }
747
- };
748
- CronsComponent.prototype.open = function (cron) {
749
- this._dialog.open(CronComponent, {
750
- data: {
751
- cron: cron,
752
- loadCronLogs: this.loadCronLogs,
753
- loadCron: this.loadCron,
754
- cronActions: this.getCronActions(),
755
- },
756
- width: '85%'
757
- });
758
- };
759
- CronsComponent.prototype.getCronActions = function () {
760
- var _this = this;
761
- return [
762
- {
763
- action: function (data) {
764
- return _this.queue(data)
765
- .pipe(operators.tap(function () {
766
- _this._message.success('Queued cron');
767
- _this.list.reload();
768
- }));
769
- },
770
- label: 'Queue',
771
- show: function (cron) {
772
- return cron.state === exports.CronState.Idle || cron.state === exports.CronState.Failed;
773
- },
774
- },
775
- {
776
- action: function (data) {
777
- return _this.run(data)
778
- .pipe(operators.tap(function () {
779
- _this._message.success('Cron ran');
780
- _this.list.reload();
781
- }));
782
- },
783
- label: 'Run',
784
- show: function (cron) {
785
- return cron.state === exports.CronState.Idle || cron.state === exports.CronState.Failed;
786
- },
787
- },
788
- {
789
- action: function (data) {
790
- return _this.enable(data)
791
- .pipe(operators.tap(function () {
792
- _this._message.success('Enabled cron');
793
- _this.list.reload();
794
- }));
795
- },
796
- label: 'Enable',
797
- show: function (cron) {
798
- return cron.state === exports.CronState.Disabled;
799
- },
800
- },
801
- {
802
- action: function (data) {
803
- return _this.disable(data)
804
- .pipe(operators.tap(function () {
805
- _this._message.success('Disabled cron');
806
- _this.list.reload();
807
- }));
808
- },
809
- label: 'Disable',
810
- show: function (cron) {
811
- return cron.state === exports.CronState.Idle || cron.state === exports.CronState.Failed;
812
- },
813
- },
814
- {
815
- action: function (data) {
816
- return _this._prompt.confirm({
817
- title: 'Confirm',
818
- template: 'Are you sure you would like to kill the cron?',
819
- })
820
- .pipe(operators.switchMap(function () {
821
- return _this.kill(data);
822
- }), operators.tap(function () {
823
- _this._message.success('Killed cron');
824
- _this.list.reload();
825
- }), operators.takeUntil(_this._destroy$));
826
- },
827
- label: 'Kill',
828
- show: function (cron) {
829
- return cron.state === exports.CronState.Running;
830
- },
831
- },
832
- {
833
- action: function (data) {
834
- return _this._prompt.confirm({
835
- title: 'Confirm',
836
- template: 'Are you sure you would like to reset the cron?',
837
- })
838
- .pipe(operators.switchMap(function () {
839
- return _this.enable(data);
840
- }), operators.tap(function () {
841
- _this._message.success('Reset cron');
842
- _this.list.reload();
843
- }), operators.takeUntil(_this._destroy$));
844
- },
845
- label: 'Reset',
846
- show: function (cron) {
847
- return cron.state === exports.CronState.Killing || cron.state === exports.CronState.Running || cron.state === exports.CronState.Failed || cron.state === exports.CronState.Queued;
848
- },
849
- },
850
- ];
851
- };
852
- CronsComponent.prototype.ngOnDestroy = function () {
853
- this._destroy$.next();
854
- this._destroy$.complete();
855
- };
856
- return CronsComponent;
857
- }());
858
- CronsComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: CronsComponent, deps: [{ token: i1__namespace.FsMessage }, { token: i1__namespace$1.MatDialog }, { token: i3__namespace$1.FsPrompt }], target: i0__namespace.ɵɵFactoryTarget.Component });
859
- CronsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: CronsComponent, selector: "fs-system-crons", inputs: { enable: "enable", disable: "disable", kill: "kill", queue: "queue", run: "run", loadCrons: "loadCrons", loadCron: "loadCron", loadCronLogs: "loadCronLogs", bulk: "bulk" }, viewQueries: [{ propertyName: "list", first: true, predicate: i2$3.FsListComponent, descendants: true, static: true }], ngImport: i0__namespace, 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 (click)=\"open(row)\">{{row.name}}</a>\n <div *ngIf=\"row.cronSetting\">\n <small>{{row.cronSetting.summary}}</small>\n </div>\n </ng-template>\n </fs-list-column>\n <fs-list-column align=\"center\">\n <ng-template fs-list-header>Status</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n <ng-container *ngIf=\"row.host || row.processId; else status\">\n <fs-popover \n [maxWidth]=\"null\"\n [template]=\"statusPopover\" \n size=\"small\">\n <ng-container *ngTemplateOutlet=\"status\"></ng-container>\n </fs-popover>\n <ng-template #statusPopover>\n <div *ngIf=\"row.host\">Host: {{row.host}}</div>\n <div *ngIf=\"row.processId\">Process ID: {{row.processId}}</div>\n </ng-template>\n </ng-container>\n <ng-template #status>\n {{cronStates[row.state]}}\n </ng-template>\n <ng-container *ngIf=\"row.state === CronState.Running\">\n <div class=\"small\">\n Duration: {{ row.runningDuration | fsDateDuration: { hours: true, minutes: true, seconds: true } }}\n </div>\n </ng-container> \n </ng-template>\n </fs-list-column>\n <fs-list-column>\n <ng-template fs-list-header>Last Ran</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n <ng-container *ngIf=\"row.duration===null; else lastRan\">\n Never\n </ng-container>\n <ng-template #lastRan>\n <fs-date-ago [date]=\"row.createDate\"></fs-date-ago>\n <div class=\"small\" *ngIf=\"row.duration\">\n Duration: {{ row.duration | fsDateDuration: { hours: true, minutes: true, seconds: true } }}\n </div>\n </ng-template>\n </ng-template>\n </fs-list-column>\n</fs-list>\n", styles: [""], components: [{ type: i2__namespace$3.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { type: i5__namespace$1.FsPopoverComponent, selector: "fs-popover", inputs: ["template", "data", "leaveDelay", "showDelay", "maxWidth", "wrapperClass", "autoShow", "autoClose", "loadingDiameter", "loading", "indication", "position", "theme", "size", "trigger"] }, { type: i4__namespace$2.FsDateAgoComponent, selector: "fs-date-ago", inputs: ["date", "showTime", "format", "showTooltip", "tooltipDateFormat"] }], directives: [{ type: i2__namespace$3.FsListColumnDirective, selector: "fs-list-column", inputs: ["title", "name", "show", "customize", "sortable", "sortableDefault", "direction", "align", "width", "class"] }, { type: i2__namespace$3.FsListHeaderDirective, selector: "[fs-list-header]", inputs: ["colspan", "align", "class"] }, { type: i2__namespace$3.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }, { type: i9__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "fsDateDuration": i4__namespace$2.FsDateDurationPipe } });
860
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: CronsComponent, decorators: [{
861
- type: i0.Component,
862
- args: [{
863
- selector: 'fs-system-crons',
864
- templateUrl: './crons.component.html',
865
- styleUrls: ['./crons.component.scss'],
866
- }]
867
- }], ctorParameters: function () { return [{ type: i1__namespace.FsMessage }, { type: i1__namespace$1.MatDialog }, { type: i3__namespace$1.FsPrompt }]; }, propDecorators: { list: [{
868
- type: i0.ViewChild,
869
- args: [i2$3.FsListComponent, { static: true }]
870
- }], enable: [{
871
- type: i0.Input
872
- }], disable: [{
873
- type: i0.Input
874
- }], kill: [{
875
- type: i0.Input
876
- }], queue: [{
877
- type: i0.Input
878
- }], run: [{
879
- type: i0.Input
880
- }], loadCrons: [{
881
- type: i0.Input
882
- }], loadCron: [{
883
- type: i0.Input
884
- }], loadCronLogs: [{
885
- type: i0.Input
886
- }], bulk: [{
887
- type: i0.Input
681
+ var CronsComponent = /** @class */ (function () {
682
+ function CronsComponent(_message, _dialog, _prompt) {
683
+ this._message = _message;
684
+ this._dialog = _dialog;
685
+ this._prompt = _prompt;
686
+ this.config = null;
687
+ this.cronStates = indexNameValue(CronStates);
688
+ this.CronState = exports.CronState;
689
+ this._destroy$ = new rxjs.Subject();
690
+ }
691
+ CronsComponent.prototype.ngOnInit = function () {
692
+ this._configList();
693
+ };
694
+ CronsComponent.prototype._configList = function () {
695
+ var _this = this;
696
+ this.config = {
697
+ paging: false,
698
+ filters: [
699
+ {
700
+ type: filter.ItemType.Keyword,
701
+ name: 'keyword',
702
+ label: 'Search'
703
+ }
704
+ ],
705
+ rowActions: this.getCronActions()
706
+ .map(function (rowAction) {
707
+ return Object.assign(Object.assign({}, rowAction), { click: function (cron) {
708
+ rowAction.action(cron)
709
+ .subscribe();
710
+ } });
711
+ }),
712
+ fetch: function (query) {
713
+ query.timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
714
+ return _this.loadCrons(query)
715
+ .pipe(operators.map(function (crons) { return ({
716
+ data: crons
717
+ .map(function (cron) {
718
+ return Object.assign(Object.assign({}, cron), { runningDuration: dateFns.differenceInSeconds(i4$2.parse(cron.createDate), new Date()) });
719
+ })
720
+ }); }));
721
+ },
722
+ };
723
+ if (this.bulk) {
724
+ this.config.selection = {
725
+ selectAll: false,
726
+ actions: [
727
+ {
728
+ type: selection.SelectionActionType.Action,
729
+ name: 'disable',
730
+ label: 'Disable'
731
+ },
732
+ {
733
+ type: selection.SelectionActionType.Action,
734
+ name: 'enable',
735
+ label: 'Enable'
736
+ },
737
+ ],
738
+ actionSelected: function (action) {
739
+ return _this.bulk(action.action.name, action.selected)
740
+ .pipe(operators.tap(function () {
741
+ _this.list.reload();
742
+ _this._message.success('Applied Changes');
743
+ }));
744
+ },
745
+ };
746
+ }
747
+ };
748
+ CronsComponent.prototype.open = function (cron) {
749
+ this._dialog.open(CronComponent, {
750
+ data: {
751
+ cron: cron,
752
+ loadCronLogs: this.loadCronLogs,
753
+ loadCron: this.loadCron,
754
+ cronActions: this.getCronActions(),
755
+ },
756
+ width: '85%'
757
+ });
758
+ };
759
+ CronsComponent.prototype.getCronActions = function () {
760
+ var _this = this;
761
+ return [
762
+ {
763
+ action: function (data) {
764
+ return _this.queue(data)
765
+ .pipe(operators.tap(function () {
766
+ _this._message.success('Queued cron');
767
+ _this.list.reload();
768
+ }));
769
+ },
770
+ label: 'Queue',
771
+ show: function (cron) {
772
+ return cron.state === exports.CronState.Idle || cron.state === exports.CronState.Failed;
773
+ },
774
+ },
775
+ {
776
+ action: function (data) {
777
+ return _this.run(data)
778
+ .pipe(operators.tap(function () {
779
+ _this._message.success('Cron ran');
780
+ _this.list.reload();
781
+ }));
782
+ },
783
+ label: 'Run',
784
+ show: function (cron) {
785
+ return cron.state === exports.CronState.Idle || cron.state === exports.CronState.Failed;
786
+ },
787
+ },
788
+ {
789
+ action: function (data) {
790
+ return _this.enable(data)
791
+ .pipe(operators.tap(function () {
792
+ _this._message.success('Enabled cron');
793
+ _this.list.reload();
794
+ }));
795
+ },
796
+ label: 'Enable',
797
+ show: function (cron) {
798
+ return cron.state === exports.CronState.Disabled;
799
+ },
800
+ },
801
+ {
802
+ action: function (data) {
803
+ return _this.disable(data)
804
+ .pipe(operators.tap(function () {
805
+ _this._message.success('Disabled cron');
806
+ _this.list.reload();
807
+ }));
808
+ },
809
+ label: 'Disable',
810
+ show: function (cron) {
811
+ return cron.state === exports.CronState.Idle || cron.state === exports.CronState.Failed;
812
+ },
813
+ },
814
+ {
815
+ action: function (data) {
816
+ return _this._prompt.confirm({
817
+ title: 'Confirm',
818
+ template: 'Are you sure you would like to kill the cron?',
819
+ })
820
+ .pipe(operators.switchMap(function () {
821
+ return _this.kill(data);
822
+ }), operators.tap(function () {
823
+ _this._message.success('Killed cron');
824
+ _this.list.reload();
825
+ }), operators.takeUntil(_this._destroy$));
826
+ },
827
+ label: 'Kill',
828
+ show: function (cron) {
829
+ return cron.state === exports.CronState.Running;
830
+ },
831
+ },
832
+ {
833
+ action: function (data) {
834
+ return _this._prompt.confirm({
835
+ title: 'Confirm',
836
+ template: 'Are you sure you would like to reset the cron?',
837
+ })
838
+ .pipe(operators.switchMap(function () {
839
+ return _this.enable(data);
840
+ }), operators.tap(function () {
841
+ _this._message.success('Reset cron');
842
+ _this.list.reload();
843
+ }), operators.takeUntil(_this._destroy$));
844
+ },
845
+ label: 'Reset',
846
+ show: function (cron) {
847
+ return cron.state === exports.CronState.Killing || cron.state === exports.CronState.Running || cron.state === exports.CronState.Failed || cron.state === exports.CronState.Queued;
848
+ },
849
+ },
850
+ ];
851
+ };
852
+ CronsComponent.prototype.ngOnDestroy = function () {
853
+ this._destroy$.next();
854
+ this._destroy$.complete();
855
+ };
856
+ return CronsComponent;
857
+ }());
858
+ CronsComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: CronsComponent, deps: [{ token: i1__namespace.FsMessage }, { token: i1__namespace$1.MatDialog }, { token: i3__namespace$1.FsPrompt }], target: i0__namespace.ɵɵFactoryTarget.Component });
859
+ CronsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: CronsComponent, selector: "fs-system-crons", inputs: { enable: "enable", disable: "disable", kill: "kill", queue: "queue", run: "run", loadCrons: "loadCrons", loadCron: "loadCron", loadCronLogs: "loadCronLogs", bulk: "bulk" }, viewQueries: [{ propertyName: "list", first: true, predicate: i2$3.FsListComponent, descendants: true, static: true }], ngImport: i0__namespace, template: "<fs-list [config]=\"config\">\r\n <fs-list-column>\r\n <ng-template fs-list-header>Name</ng-template>\r\n <ng-template fs-list-cell let-row=\"row\">\r\n <a (click)=\"open(row)\">{{row.name}}</a>\r\n <div *ngIf=\"row.cronSetting\">\r\n <small>{{row.cronSetting.summary}}</small>\r\n </div>\r\n </ng-template>\r\n </fs-list-column>\r\n <fs-list-column align=\"center\">\r\n <ng-template fs-list-header>Status</ng-template>\r\n <ng-template fs-list-cell let-row=\"row\">\r\n <ng-container *ngIf=\"row.host || row.processId; else status\">\r\n <fs-popover \r\n [maxWidth]=\"null\"\r\n [template]=\"statusPopover\" \r\n size=\"small\">\r\n <ng-container *ngTemplateOutlet=\"status\"></ng-container>\r\n </fs-popover>\r\n <ng-template #statusPopover>\r\n <div *ngIf=\"row.host\">Host: {{row.host}}</div>\r\n <div *ngIf=\"row.processId\">Process ID: {{row.processId}}</div>\r\n </ng-template>\r\n </ng-container>\r\n <ng-template #status>\r\n {{cronStates[row.state]}}\r\n </ng-template>\r\n <ng-container *ngIf=\"row.state === CronState.Running\">\r\n <div class=\"small\">\r\n Duration: {{ row.runningDuration | fsDateDuration: { hours: true, minutes: true, seconds: true } }}\r\n </div>\r\n </ng-container> \r\n </ng-template>\r\n </fs-list-column>\r\n <fs-list-column>\r\n <ng-template fs-list-header>Last Ran</ng-template>\r\n <ng-template fs-list-cell let-row=\"row\">\r\n <ng-container *ngIf=\"row.duration===null; else lastRan\">\r\n Never\r\n </ng-container>\r\n <ng-template #lastRan>\r\n <fs-date-ago [date]=\"row.createDate\"></fs-date-ago>\r\n <div class=\"small\" *ngIf=\"row.duration\">\r\n Duration: {{ row.duration | fsDateDuration: { hours: true, minutes: true, seconds: true } }}\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </fs-list-column>\r\n</fs-list>\r\n", styles: [""], components: [{ type: i2__namespace$3.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { type: i5__namespace$1.FsPopoverComponent, selector: "fs-popover", inputs: ["template", "data", "leaveDelay", "showDelay", "maxWidth", "wrapperClass", "autoShow", "autoClose", "loadingDiameter", "loading", "indication", "position", "theme", "size", "trigger"] }, { type: i4__namespace$2.FsDateAgoComponent, selector: "fs-date-ago", inputs: ["date", "showTime", "format", "showTooltip", "tooltipDateFormat"] }], directives: [{ type: i2__namespace$3.FsListColumnDirective, selector: "fs-list-column", inputs: ["title", "name", "show", "customize", "sortable", "sortableDefault", "direction", "align", "width", "class"] }, { type: i2__namespace$3.FsListHeaderDirective, selector: "[fs-list-header]", inputs: ["colspan", "align", "class"] }, { type: i2__namespace$3.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }, { type: i9__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "fsDateDuration": i4__namespace$2.FsDateDurationPipe } });
860
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: CronsComponent, decorators: [{
861
+ type: i0.Component,
862
+ args: [{
863
+ selector: 'fs-system-crons',
864
+ templateUrl: './crons.component.html',
865
+ styleUrls: ['./crons.component.scss'],
866
+ }]
867
+ }], ctorParameters: function () { return [{ type: i1__namespace.FsMessage }, { type: i1__namespace$1.MatDialog }, { type: i3__namespace$1.FsPrompt }]; }, propDecorators: { list: [{
868
+ type: i0.ViewChild,
869
+ args: [i2$3.FsListComponent, { static: true }]
870
+ }], enable: [{
871
+ type: i0.Input
872
+ }], disable: [{
873
+ type: i0.Input
874
+ }], kill: [{
875
+ type: i0.Input
876
+ }], queue: [{
877
+ type: i0.Input
878
+ }], run: [{
879
+ type: i0.Input
880
+ }], loadCrons: [{
881
+ type: i0.Input
882
+ }], loadCron: [{
883
+ type: i0.Input
884
+ }], loadCronLogs: [{
885
+ type: i0.Input
886
+ }], bulk: [{
887
+ type: i0.Input
888
888
  }] } });
889
889
 
890
- var KeyNameValuePipe = /** @class */ (function () {
891
- function KeyNameValuePipe() {
892
- }
893
- KeyNameValuePipe.prototype.transform = function (values) {
894
- return Object.keys(values).map(function (key) {
895
- return { value: key, name: values[key] };
896
- });
897
- };
898
- return KeyNameValuePipe;
899
- }());
900
- KeyNameValuePipe.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: KeyNameValuePipe, deps: [], target: i0__namespace.ɵɵFactoryTarget.Pipe });
901
- KeyNameValuePipe.ɵpipe = i0__namespace.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: KeyNameValuePipe, name: "keyNameValue" });
902
- KeyNameValuePipe.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: KeyNameValuePipe });
903
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: KeyNameValuePipe, decorators: [{
904
- type: i0.Pipe,
905
- args: [{
906
- name: 'keyNameValue'
907
- }]
908
- }, {
909
- type: i0.Injectable
890
+ var KeyNameValuePipe = /** @class */ (function () {
891
+ function KeyNameValuePipe() {
892
+ }
893
+ KeyNameValuePipe.prototype.transform = function (values) {
894
+ return Object.keys(values).map(function (key) {
895
+ return { value: key, name: values[key] };
896
+ });
897
+ };
898
+ return KeyNameValuePipe;
899
+ }());
900
+ KeyNameValuePipe.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: KeyNameValuePipe, deps: [], target: i0__namespace.ɵɵFactoryTarget.Pipe });
901
+ KeyNameValuePipe.ɵpipe = i0__namespace.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: KeyNameValuePipe, name: "keyNameValue" });
902
+ KeyNameValuePipe.ɵprov = i0__namespace.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: KeyNameValuePipe });
903
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: KeyNameValuePipe, decorators: [{
904
+ type: i0.Pipe,
905
+ args: [{
906
+ name: 'keyNameValue'
907
+ }]
908
+ }, {
909
+ type: i0.Injectable
910
910
  }] });
911
911
 
912
- var SettingsComponent = /** @class */ (function () {
913
- function SettingsComponent(_message, _clipboard, _prompt, _cdRef) {
914
- this._message = _message;
915
- this._clipboard = _clipboard;
916
- this._prompt = _prompt;
917
- this._cdRef = _cdRef;
918
- this.fileRemove = new i0.EventEmitter();
919
- this.fileSelect = new i0.EventEmitter();
920
- this.groupedSettings = [];
921
- this.groups = [];
922
- this.SettingInterfaceType = SettingInterfaceType;
923
- }
924
- SettingsComponent.prototype.ngOnInit = function () {
925
- var _this = this;
926
- this.loadSettings()
927
- .subscribe(function (settings) {
928
- settings = settings
929
- .filter(function (setting) {
930
- return setting.interfaceType !== SettingInterfaceType.None;
931
- })
932
- .map(function (setting) {
933
- switch (setting.interfaceType) {
934
- case SettingInterfaceType.Date:
935
- case SettingInterfaceType.Time:
936
- setting.value = i4$2.parse(setting.value);
937
- case SettingInterfaceType.SelectMultiple:
938
- setting.value = Array.isArray(setting.value) ? setting.value : [];
939
- break;
940
- }
941
- return setting;
942
- });
943
- _this.groupedSettings = settings.reduce(function (accum, item) {
944
- if (accum[item.group] === undefined) {
945
- accum[item.group] = [];
946
- }
947
- accum[item.group].push(item);
948
- return accum;
949
- }, {});
950
- _this.groups = Object.keys(_this.groupedSettings);
951
- _this._cdRef.markForCheck();
952
- });
953
- };
954
- SettingsComponent.prototype.export = function (event, settings) {
955
- event.stopPropagation();
956
- var data = settings.map(function (setting) {
957
- return {
958
- name: setting.name,
959
- value: setting.value,
960
- group: setting.group,
961
- };
962
- });
963
- this._clipboard.copy(JSON.stringify(data));
964
- this._message.success('Copied to clipboard');
965
- };
966
- SettingsComponent.prototype.import = function (event, group) {
967
- var _this = this;
968
- event.stopPropagation();
969
- this._prompt.input({
970
- label: 'JSON Import',
971
- title: 'Import Settings',
972
- commitLabel: 'Import',
973
- required: true,
974
- }).subscribe(function (value) {
975
- if (value) {
976
- try {
977
- var settings_1 = _this.groupedSettings[group];
978
- var data = JSON.parse(value);
979
- data.forEach(function (item) {
980
- var setting = settings_1.find(function (s) {
981
- return item.name === s.name;
982
- });
983
- if (setting) {
984
- Object.assign(setting, item);
985
- }
986
- });
987
- _this._cdRef.markForCheck();
988
- }
989
- catch (e) {
990
- _this._message.error(e);
991
- }
992
- }
993
- });
994
- };
995
- SettingsComponent.prototype.saveGroup = function (group) {
996
- var _this = this;
997
- var settings = this.groupedSettings[group];
998
- var values = settings.reduce(function (result, value) {
999
- return (result[value.name] = value.value, result);
1000
- }, {});
1001
- this.save(group, values)
1002
- .subscribe(function () {
1003
- _this._message.success('Changes Saved');
1004
- });
1005
- };
1006
- return SettingsComponent;
1007
- }());
1008
- SettingsComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SettingsComponent, deps: [{ token: i1__namespace.FsMessage }, { token: i2__namespace$4.FsClipboard }, { token: i3__namespace$1.FsPrompt }, { token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
1009
- SettingsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SettingsComponent, selector: "fs-system-settings", inputs: { loadSettings: "loadSettings", save: "save" }, outputs: { fileRemove: "fileRemove", fileSelect: "fileSelect" }, ngImport: i0__namespace, template: "\n<mat-accordion>\n <mat-expansion-panel hideToggle *ngFor=\"let group of groups\">\n <mat-expansion-panel-header>\n <mat-panel-title>\n <div class=\"title-row\">\n <div class=\"title\">{{group || 'General'}}</div>\n <div class=\"actions\">\n <button\n type=\"button\"\n [matTooltip]=\"'Export ' + (group || 'General') + ' Settings'\"\n mat-icon-button\n (click)=\"export($event, groupedSettings[group])\">\n <mat-icon>cloud_download</mat-icon>\n </button>\n <button\n type=\"button\"\n [matTooltip]=\"'Import ' + (group || 'General') + ' Settings'\"\n mat-icon-button\n (click)=\"import($event, group)\">\n <mat-icon>cloud_upload</mat-icon>\n </button>\n </div>\n </div>\n </mat-panel-title>\n </mat-expansion-panel-header>\n\n <div \n hideToggle \n *ngFor=\"let setting of groupedSettings[group]\" \n class=\"setting\"\n [ngClass]=\"{ 'has-instruction': !! setting.instruction }\">\n <mat-form-field \n class=\"full-width form-field-multiline-subscript\"\n *ngIf=\"setting.interfaceType===SettingInterfaceType.InputBox\">\n <input\n matInput\n [placeholder]=\"setting.label\"\n [(ngModel)]=\"setting.value\"\n [name]=\"'setting' + setting.id\">\n <mat-hint>{{setting.instruction}}</mat-hint>\n </mat-form-field>\n\n <mat-form-field \n class=\"full-width form-field-multiline-subscript\" \n *ngIf=\"setting.interfaceType===SettingInterfaceType.Textarea\">\n <textarea\n matInput\n [placeholder]=\"setting.label\"\n [(ngModel)]=\"setting.value\"\n [name]=\"'setting' + setting.id\">\n </textarea>\n <mat-hint>{{setting.instruction}}</mat-hint>\n </mat-form-field>\n\n <mat-form-field \n class=\"full-width form-field-multiline-subscript\" \n *ngIf=\"setting.interfaceType===SettingInterfaceType.Select || setting.interfaceType===SettingInterfaceType.SelectMultiple\">\n <mat-select\n [placeholder]=\"setting.label\"\n [(ngModel)]=\"setting.value\"\n [multiple]=\"setting.interfaceType===SettingInterfaceType.SelectMultiple\"\n [name]=\"'setting' + setting.id\">\n <mat-option *ngFor=\"let item of setting.values | keyNameValue\" [value]=\"item.value\">\n {{item.name}}\n </mat-option>\n </mat-select>\n <mat-hint>{{setting.instruction}}</mat-hint>\n </mat-form-field>\n\n <mat-form-field \n class=\"full-width form-field-multiline-subscript\" \n *ngIf=\"setting.interfaceType===SettingInterfaceType.Date\">\n <input\n matInput\n fsDatePicker\n [placeholder]=\"setting.label\"\n [(ngModel)]=\"setting.value\"\n [name]=\"'setting' + setting.id\">\n <mat-hint>{{setting.instruction}}</mat-hint>\n </mat-form-field>\n\n <mat-form-field \n class=\"full-width form-field-multiline-subscript\" \n *ngIf=\"setting.interfaceType===SettingInterfaceType.Color\">\n <input\n matInput\n fsColorPicker\n [placeholder]=\"setting.label\"\n [(ngModel)]=\"setting.value\"\n [name]=\"'setting' + setting.id\">\n <mat-hint>{{setting.instruction}}</mat-hint>\n </mat-form-field>\n\n <mat-form-field \n class=\"full-width form-field-multiline-subscript\" \n *ngIf=\"setting.interfaceType===SettingInterfaceType.Time\">\n <input\n matInput\n fsTimePicker\n [placeholder]=\"setting.label\"\n [(ngModel)]=\"setting.value\"\n [name]=\"'setting' + setting.id\">\n <mat-hint>{{setting.instruction}}</mat-hint>\n </mat-form-field>\n\n <fs-file-picker\n *ngIf=\"setting.interfaceType===SettingInterfaceType.File\"\n [allowRemove]=\"true\"\n [allowDownload]=\"true\"\n (select)=\"fileSelect.emit({ setting: setting, file: $event.file })\"\n (remove)=\"fileRemove.emit(setting)\"\n [url]=\"setting.value\">\n <div fsFileLabel>{{setting.label}}</div>\n <div fsFileHint>{{setting.instruction}}</div>\n </fs-file-picker>\n </div>\n\n <button mat-raised-button color=\"primary\" type=\"button\" (click)=\"saveGroup(group)\">Save</button>\n\n </mat-expansion-panel>\n\n</mat-accordion>\n", styles: [".mat-expansion-panel-header{font-size:19px}.full-width{width:100%}.title-row{flex-direction:row;box-sizing:border-box;display:flex;place-content:center flex-start;align-items:center;width:100%}.title-row .title{display:flex;flex:1}:host ::ng-deep .mat-expansion-panel-header-title{margin:0}:host ::ng-deep .mat-expansion-panel .actions{display:none}:host ::ng-deep .mat-expansion-panel.mat-expanded .actions{display:block}:host ::ng-deep .setting.has-instruction fs-file-picker fs-label-message{display:block;padding-bottom:1em}\n"], components: [{ type: i4__namespace$3.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["disabled", "expanded", "hideToggle", "togglePosition"], outputs: ["opened", "closed", "expandedChange", "afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { type: i4__namespace$3.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["tabIndex", "expandedHeight", "collapsedHeight"] }, { type: i4__namespace.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i6__namespace.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i7__namespace.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i8__namespace.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i9__namespace$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i10__namespace$1.FsDatePickerComponent, selector: "[fsDatePicker]", inputs: ["minYear", "maxYear", "minDate", "maxDate", "startOfDay", "view", "format", "minutes"], outputs: ["change"] }, { type: i11__namespace$1.FsColorPickerComponent, selector: "[fsColorPicker]", inputs: ["showClear"] }, { type: i10__namespace$1.FsTimePickerComponent, selector: "[fsTimePicker]", inputs: ["view"] }, { type: i12__namespace.FsFilePickerComponent, selector: "fs-file-picker", inputs: ["minWidth", "minHeight", "imageWidth", "imageHeight", "imageQuality", "label", "showFilename", "allowDownload", "allowReupload", "allowRemove", "url", "file", "accept", "disabled", "previewWidth", "previewHeight"], outputs: ["select", "remove", "download"] }], directives: [{ type: i4__namespace$3.MatAccordion, selector: "mat-accordion", inputs: ["multi", "displayMode", "togglePosition", "hideToggle"], exportAs: ["matAccordion"] }, { type: i9__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4__namespace$3.MatExpansionPanelTitle, selector: "mat-panel-title" }, { type: i11__namespace.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i9__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i10__namespace.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i9__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i16__namespace.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i17__namespace.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i17__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i17__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i7__namespace.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { type: i12__namespace.FsFileLabelDirective, selector: "[fsFileLabel]" }], pipes: { "keyNameValue": KeyNameValuePipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1010
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SettingsComponent, decorators: [{
1011
- type: i0.Component,
1012
- args: [{
1013
- selector: 'fs-system-settings',
1014
- templateUrl: './settings.component.html',
1015
- styleUrls: ['./settings.component.scss'],
1016
- changeDetection: i0.ChangeDetectionStrategy.OnPush,
1017
- }]
1018
- }], ctorParameters: function () { return [{ type: i1__namespace.FsMessage }, { type: i2__namespace$4.FsClipboard }, { type: i3__namespace$1.FsPrompt }, { type: i0__namespace.ChangeDetectorRef }]; }, propDecorators: { loadSettings: [{
1019
- type: i0.Input
1020
- }], save: [{
1021
- type: i0.Input
1022
- }], fileRemove: [{
1023
- type: i0.Output
1024
- }], fileSelect: [{
1025
- type: i0.Output
912
+ var SettingsComponent = /** @class */ (function () {
913
+ function SettingsComponent(_message, _clipboard, _prompt, _cdRef) {
914
+ this._message = _message;
915
+ this._clipboard = _clipboard;
916
+ this._prompt = _prompt;
917
+ this._cdRef = _cdRef;
918
+ this.fileRemove = new i0.EventEmitter();
919
+ this.fileSelect = new i0.EventEmitter();
920
+ this.groupedSettings = [];
921
+ this.groups = [];
922
+ this.SettingInterfaceType = SettingInterfaceType;
923
+ }
924
+ SettingsComponent.prototype.ngOnInit = function () {
925
+ var _this = this;
926
+ this.loadSettings({
927
+ visible: true,
928
+ grouped: true,
929
+ })
930
+ .subscribe(function (settings) {
931
+ settings = settings
932
+ .filter(function (setting) {
933
+ return setting.interfaceType !== SettingInterfaceType.None;
934
+ })
935
+ .map(function (setting) {
936
+ switch (setting.interfaceType) {
937
+ case SettingInterfaceType.Date:
938
+ case SettingInterfaceType.Time:
939
+ return Object.assign(Object.assign({}, setting), { value: i4$2.parse(setting.value) });
940
+ case SettingInterfaceType.SelectMultiple:
941
+ return Object.assign(Object.assign({}, setting), { value: Array.isArray(setting.value) ? setting.value : [] });
942
+ }
943
+ return setting;
944
+ });
945
+ _this.groupedSettings = settings.reduce(function (accum, item) {
946
+ if (accum[item.group] === undefined) {
947
+ accum[item.group] = [];
948
+ }
949
+ accum[item.group].push(item);
950
+ return accum;
951
+ }, {});
952
+ _this.groups = Object.keys(_this.groupedSettings);
953
+ _this._cdRef.markForCheck();
954
+ });
955
+ };
956
+ SettingsComponent.prototype.export = function (event, settings) {
957
+ event.stopPropagation();
958
+ var data = settings.map(function (setting) {
959
+ return {
960
+ name: setting.name,
961
+ value: setting.value,
962
+ group: setting.group,
963
+ };
964
+ });
965
+ this._clipboard.copy(JSON.stringify(data));
966
+ this._message.success('Copied to clipboard');
967
+ };
968
+ SettingsComponent.prototype.import = function (event, group) {
969
+ var _this = this;
970
+ event.stopPropagation();
971
+ this._prompt.input({
972
+ label: 'JSON Import',
973
+ title: 'Import Settings',
974
+ commitLabel: 'Import',
975
+ required: true,
976
+ }).subscribe(function (value) {
977
+ if (value) {
978
+ try {
979
+ var settings_1 = _this.groupedSettings[group];
980
+ var data = JSON.parse(value);
981
+ data.forEach(function (item) {
982
+ var setting = settings_1.find(function (s) {
983
+ return item.name === s.name;
984
+ });
985
+ if (setting) {
986
+ Object.assign(setting, item);
987
+ }
988
+ });
989
+ _this._cdRef.markForCheck();
990
+ }
991
+ catch (e) {
992
+ _this._message.error(e);
993
+ }
994
+ }
995
+ });
996
+ };
997
+ SettingsComponent.prototype.saveGroup = function (group) {
998
+ var _this = this;
999
+ var settings = this.groupedSettings[group];
1000
+ var values = settings.reduce(function (result, value) {
1001
+ return (result[value.name] = value.value, result);
1002
+ }, {});
1003
+ this.save(group, values)
1004
+ .subscribe(function () {
1005
+ _this._message.success('Changes Saved');
1006
+ });
1007
+ };
1008
+ return SettingsComponent;
1009
+ }());
1010
+ SettingsComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SettingsComponent, deps: [{ token: i1__namespace.FsMessage }, { token: i2__namespace$4.FsClipboard }, { token: i3__namespace$1.FsPrompt }, { token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
1011
+ SettingsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SettingsComponent, selector: "fs-system-settings", inputs: { loadSettings: "loadSettings", save: "save" }, outputs: { fileRemove: "fileRemove", fileSelect: "fileSelect" }, ngImport: i0__namespace, template: "\r\n<mat-accordion>\r\n <mat-expansion-panel hideToggle *ngFor=\"let group of groups\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n <div class=\"title-row\">\r\n <div class=\"title\">{{group || 'General'}}</div>\r\n <div class=\"actions\">\r\n <button\r\n type=\"button\"\r\n [matTooltip]=\"'Export ' + (group || 'General') + ' Settings'\"\r\n mat-icon-button\r\n (click)=\"export($event, groupedSettings[group])\">\r\n <mat-icon>cloud_download</mat-icon>\r\n </button>\r\n <button\r\n type=\"button\"\r\n [matTooltip]=\"'Import ' + (group || 'General') + ' Settings'\"\r\n mat-icon-button\r\n (click)=\"import($event, group)\">\r\n <mat-icon>cloud_upload</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n\r\n <div \r\n hideToggle \r\n *ngFor=\"let setting of groupedSettings[group]\" \r\n class=\"setting\"\r\n [ngClass]=\"{ 'has-instruction': !! setting.instruction }\">\r\n <mat-form-field \r\n class=\"full-width form-field-multiline-subscript\"\r\n *ngIf=\"setting.interfaceType===SettingInterfaceType.InputBox\">\r\n <input\r\n matInput\r\n [placeholder]=\"setting.label\"\r\n [(ngModel)]=\"setting.value\"\r\n [name]=\"'setting' + setting.id\">\r\n <mat-hint>{{setting.instruction}}</mat-hint>\r\n </mat-form-field>\r\n\r\n <mat-form-field \r\n class=\"full-width form-field-multiline-subscript\" \r\n *ngIf=\"setting.interfaceType===SettingInterfaceType.Textarea\">\r\n <textarea\r\n matInput\r\n [placeholder]=\"setting.label\"\r\n [(ngModel)]=\"setting.value\"\r\n [name]=\"'setting' + setting.id\">\r\n </textarea>\r\n <mat-hint>{{setting.instruction}}</mat-hint>\r\n </mat-form-field>\r\n\r\n <mat-form-field \r\n class=\"full-width form-field-multiline-subscript\" \r\n *ngIf=\"setting.interfaceType===SettingInterfaceType.Select || setting.interfaceType===SettingInterfaceType.SelectMultiple\">\r\n <mat-select\r\n [placeholder]=\"setting.label\"\r\n [(ngModel)]=\"setting.value\"\r\n [multiple]=\"setting.interfaceType===SettingInterfaceType.SelectMultiple\"\r\n [name]=\"'setting' + setting.id\">\r\n <mat-option *ngFor=\"let item of setting.values | keyNameValue\" [value]=\"item.value\">\r\n {{item.name}}\r\n </mat-option>\r\n </mat-select>\r\n <mat-hint>{{setting.instruction}}</mat-hint>\r\n </mat-form-field>\r\n\r\n <mat-form-field \r\n class=\"full-width form-field-multiline-subscript\" \r\n *ngIf=\"setting.interfaceType===SettingInterfaceType.Date\">\r\n <input\r\n matInput\r\n fsDatePicker\r\n [placeholder]=\"setting.label\"\r\n [(ngModel)]=\"setting.value\"\r\n [name]=\"'setting' + setting.id\">\r\n <mat-hint>{{setting.instruction}}</mat-hint>\r\n </mat-form-field>\r\n\r\n <mat-form-field \r\n class=\"full-width form-field-multiline-subscript\" \r\n *ngIf=\"setting.interfaceType===SettingInterfaceType.Color\">\r\n <input\r\n matInput\r\n fsColorPicker\r\n [placeholder]=\"setting.label\"\r\n [(ngModel)]=\"setting.value\"\r\n [name]=\"'setting' + setting.id\">\r\n <mat-hint>{{setting.instruction}}</mat-hint>\r\n </mat-form-field>\r\n\r\n <mat-form-field \r\n class=\"full-width form-field-multiline-subscript\" \r\n *ngIf=\"setting.interfaceType===SettingInterfaceType.Time\">\r\n <input\r\n matInput\r\n fsTimePicker\r\n [placeholder]=\"setting.label\"\r\n [(ngModel)]=\"setting.value\"\r\n [name]=\"'setting' + setting.id\">\r\n <mat-hint>{{setting.instruction}}</mat-hint>\r\n </mat-form-field>\r\n\r\n <fs-file-picker\r\n *ngIf=\"setting.interfaceType===SettingInterfaceType.File\"\r\n [allowRemove]=\"true\"\r\n [allowDownload]=\"true\"\r\n (select)=\"fileSelect.emit({ setting: setting, file: $event.file })\"\r\n (remove)=\"fileRemove.emit(setting)\"\r\n [url]=\"setting.value\">\r\n <div fsFileLabel>{{setting.label}}</div>\r\n <div fsFileHint>{{setting.instruction}}</div>\r\n </fs-file-picker>\r\n </div>\r\n\r\n <button mat-raised-button color=\"primary\" type=\"button\" (click)=\"saveGroup(group)\">Save</button>\r\n\r\n </mat-expansion-panel>\r\n\r\n</mat-accordion>\r\n", styles: [".mat-expansion-panel-header{font-size:19px}.full-width{width:100%}.title-row{flex-direction:row;box-sizing:border-box;display:flex;place-content:center flex-start;align-items:center;width:100%}.title-row .title{display:flex;flex:1}:host ::ng-deep .mat-expansion-panel-header-title{margin:0}:host ::ng-deep .mat-expansion-panel .actions{display:none}:host ::ng-deep .mat-expansion-panel.mat-expanded .actions{display:block}:host ::ng-deep .setting.has-instruction fs-file-picker fs-label-message{display:block;padding-bottom:1em}\n"], components: [{ type: i4__namespace$3.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["disabled", "expanded", "hideToggle", "togglePosition"], outputs: ["opened", "closed", "expandedChange", "afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { type: i4__namespace$3.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["tabIndex", "expandedHeight", "collapsedHeight"] }, { type: i4__namespace.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i6__namespace.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i7__namespace.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i8__namespace.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i9__namespace$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i10__namespace$1.FsDatePickerComponent, selector: "[fsDatePicker]", inputs: ["minYear", "maxYear", "minDate", "maxDate", "startOfDay", "view", "format", "minutes"], outputs: ["change"] }, { type: i11__namespace$1.FsColorPickerComponent, selector: "[fsColorPicker]", inputs: ["showClear"] }, { type: i10__namespace$1.FsTimePickerComponent, selector: "[fsTimePicker]", inputs: ["view"] }, { type: i12__namespace.FsFilePickerComponent, selector: "fs-file-picker", inputs: ["minWidth", "minHeight", "imageWidth", "imageHeight", "imageQuality", "label", "showFilename", "allowDownload", "allowReupload", "allowRemove", "url", "file", "accept", "disabled", "previewWidth", "previewHeight"], outputs: ["select", "remove", "download"] }], directives: [{ type: i4__namespace$3.MatAccordion, selector: "mat-accordion", inputs: ["multi", "displayMode", "togglePosition", "hideToggle"], exportAs: ["matAccordion"] }, { type: i9__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4__namespace$3.MatExpansionPanelTitle, selector: "mat-panel-title" }, { type: i11__namespace.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i9__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i10__namespace.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i9__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i16__namespace.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i17__namespace.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i17__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i17__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i7__namespace.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { type: i12__namespace.FsFileLabelDirective, selector: "[fsFileLabel]" }], pipes: { "keyNameValue": KeyNameValuePipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1012
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SettingsComponent, decorators: [{
1013
+ type: i0.Component,
1014
+ args: [{
1015
+ selector: 'fs-system-settings',
1016
+ templateUrl: './settings.component.html',
1017
+ styleUrls: ['./settings.component.scss'],
1018
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
1019
+ }]
1020
+ }], ctorParameters: function () { return [{ type: i1__namespace.FsMessage }, { type: i2__namespace$4.FsClipboard }, { type: i3__namespace$1.FsPrompt }, { type: i0__namespace.ChangeDetectorRef }]; }, propDecorators: { loadSettings: [{
1021
+ type: i0.Input
1022
+ }], save: [{
1023
+ type: i0.Input
1024
+ }], fileRemove: [{
1025
+ type: i0.Output
1026
+ }], fileSelect: [{
1027
+ type: i0.Output
1026
1028
  }] } });
1027
1029
 
1028
- var FileManagerComponent = /** @class */ (function () {
1029
- function FileManagerComponent() {
1030
- }
1031
- FileManagerComponent.prototype.ngOnInit = function () {
1032
- this._configFileManager();
1033
- };
1034
- FileManagerComponent.prototype._configFileManager = function () {
1035
- var _this = this;
1036
- this.config = {
1037
- fetch: function (path) {
1038
- return _this.fetch(path);
1039
- },
1040
- deleteFile: function (path) {
1041
- return _this.deleteFile(path);
1042
- },
1043
- deleteDirectory: function (path) {
1044
- return _this.deleteDirectory(path);
1045
- },
1046
- createDirectory: function (path) {
1047
- return _this.createDirectory(path);
1048
- },
1049
- download: function (path) {
1050
- return _this.download(path);
1051
- },
1052
- upload: function (path, file) {
1053
- return _this.upload(path, file);
1054
- }
1055
- };
1056
- };
1057
- return FileManagerComponent;
1058
- }());
1059
- FileManagerComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FileManagerComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
1060
- FileManagerComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FileManagerComponent, selector: "fs-system-file-manager", inputs: { fetch: "fetch", deleteFile: "deleteFile", deleteDirectory: "deleteDirectory", createDirectory: "createDirectory", download: "download", upload: "upload" }, ngImport: i0__namespace, template: "<fs-file-manager [config]=\"config\"></fs-file-manager>", styles: [""], components: [{ type: i1__namespace$2.FsFileManagerComponent, selector: "fs-file-manager", inputs: ["config"] }] });
1061
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FileManagerComponent, decorators: [{
1062
- type: i0.Component,
1063
- args: [{
1064
- selector: 'fs-system-file-manager',
1065
- templateUrl: './file-manager.component.html',
1066
- styleUrls: ['./file-manager.component.scss']
1067
- }]
1068
- }], ctorParameters: function () { return []; }, propDecorators: { fetch: [{
1069
- type: i0.Input
1070
- }], deleteFile: [{
1071
- type: i0.Input
1072
- }], deleteDirectory: [{
1073
- type: i0.Input
1074
- }], createDirectory: [{
1075
- type: i0.Input
1076
- }], download: [{
1077
- type: i0.Input
1078
- }], upload: [{
1079
- type: i0.Input
1030
+ var FileManagerComponent = /** @class */ (function () {
1031
+ function FileManagerComponent() {
1032
+ }
1033
+ FileManagerComponent.prototype.ngOnInit = function () {
1034
+ this._configFileManager();
1035
+ };
1036
+ FileManagerComponent.prototype._configFileManager = function () {
1037
+ var _this = this;
1038
+ this.config = {
1039
+ fetch: function (path) {
1040
+ return _this.fetch(path);
1041
+ },
1042
+ deleteFile: function (path) {
1043
+ return _this.deleteFile(path);
1044
+ },
1045
+ deleteDirectory: function (path) {
1046
+ return _this.deleteDirectory(path);
1047
+ },
1048
+ createDirectory: function (path) {
1049
+ return _this.createDirectory(path);
1050
+ },
1051
+ download: function (path) {
1052
+ return _this.download(path);
1053
+ },
1054
+ upload: function (path, file) {
1055
+ return _this.upload(path, file);
1056
+ }
1057
+ };
1058
+ };
1059
+ return FileManagerComponent;
1060
+ }());
1061
+ FileManagerComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FileManagerComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
1062
+ FileManagerComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FileManagerComponent, selector: "fs-system-file-manager", inputs: { fetch: "fetch", deleteFile: "deleteFile", deleteDirectory: "deleteDirectory", createDirectory: "createDirectory", download: "download", upload: "upload" }, ngImport: i0__namespace, template: "<fs-file-manager [config]=\"config\"></fs-file-manager>", styles: [""], components: [{ type: i1__namespace$2.FsFileManagerComponent, selector: "fs-file-manager", inputs: ["config"] }] });
1063
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FileManagerComponent, decorators: [{
1064
+ type: i0.Component,
1065
+ args: [{
1066
+ selector: 'fs-system-file-manager',
1067
+ templateUrl: './file-manager.component.html',
1068
+ styleUrls: ['./file-manager.component.scss']
1069
+ }]
1070
+ }], ctorParameters: function () { return []; }, propDecorators: { fetch: [{
1071
+ type: i0.Input
1072
+ }], deleteFile: [{
1073
+ type: i0.Input
1074
+ }], deleteDirectory: [{
1075
+ type: i0.Input
1076
+ }], createDirectory: [{
1077
+ type: i0.Input
1078
+ }], download: [{
1079
+ type: i0.Input
1080
+ }], upload: [{
1081
+ type: i0.Input
1080
1082
  }] } });
1081
1083
 
1082
- var ProcessComponent = /** @class */ (function () {
1083
- function ProcessComponent(data, _message, _cdRef) {
1084
- this.data = data;
1085
- this._message = _message;
1086
- this._cdRef = _cdRef;
1087
- this.ProcessStates = indexNameValue(ProcessStates);
1088
- this.ProcessState = exports.ProcessState;
1089
- }
1090
- ProcessComponent.prototype.ngOnInit = function () {
1091
- if (this.data.loadProcess) {
1092
- this.load();
1093
- }
1094
- else {
1095
- this.process = this.data.process;
1096
- }
1097
- };
1098
- ProcessComponent.prototype.load = function () {
1099
- var _this = this;
1100
- this.data.loadProcess(this.data.process)
1101
- .subscribe(function (process) {
1102
- _this.process = process;
1103
- _this._cdRef.markForCheck();
1104
- });
1105
- };
1106
- ProcessComponent.prototype.run = function () {
1107
- var _this = this;
1108
- this._message.success('Running process');
1109
- this.data.run(this.data.process)
1110
- .subscribe(function () {
1111
- _this.load();
1112
- });
1113
- setTimeout(function () {
1114
- _this.load();
1115
- }, 1000);
1116
- };
1117
- ProcessComponent.prototype.download = function () {
1118
- this.data.download(this.data.process);
1119
- };
1120
- return ProcessComponent;
1121
- }());
1122
- ProcessComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ProcessComponent, deps: [{ token: i1$1.MAT_DIALOG_DATA }, { token: i1__namespace.FsMessage }, { token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
1123
- ProcessComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ProcessComponent, selector: "ng-component", ngImport: i0__namespace, template: "<fs-dialog *fsSkeleton=\"process\">\n <div mat-dialog-title>Process</div>\n <mat-dialog-content>\n <div fxLayout=\"column\">\n <fs-label-field>\n <fs-label>\n Name\n </fs-label>\n {{process.prettyName}}\n </fs-label-field>\n\n <div fxLayout=\"row\" fxLayoutGap=\"20px\">\n <fs-label-field>\n <fs-label>\n Status\n </fs-label>\n {{ProcessStates[process.state]}}\n </fs-label-field>\n\n <fs-label-field *ngIf=\"process.notify\">\n <fs-label>\n Notification Email\n </fs-label>\n {{process.notify}}\n </fs-label-field>\n\n <fs-label-field *ngIf=\"process.pid\">\n <fs-label>\n PID\n </fs-label>\n {{process.pid}}\n </fs-label-field>\n </div>\n\n <div fxLayout=\"row\" fxLayoutGap=\"20px\">\n <fs-label-field *ngIf=\"process.createDate\">\n <fs-label>\n Create Date\n </fs-label>\n {{ process.createDate | fsDateFormat: 'date-time' }}\n </fs-label-field>\n\n <fs-label-field *ngIf=\"process.startDate\">\n <fs-label>\n Start Date\n </fs-label>\n {{ process.startDate | fsDateFormat: 'date-time' }}\n </fs-label-field>\n\n <fs-label-field *ngIf=\"process.endDate\">\n <fs-label>\n Complete Date\n </fs-label>\n {{ process.endDate | fsDateFormat: 'date-time' }}\n </fs-label-field>\n\n <fs-label-field *ngIf=\"process.duration\">\n <fs-label>\n Duration\n </fs-label>\n {{ process.duration | fsDateDuration: {hours: true, minutes: true, seconds: true} }}\n </fs-label-field>\n </div>\n\n <fs-label-field *ngIf=\"process.message\">\n <fs-label>\n Message\n </fs-label>\n {{process.message}}\n </fs-label-field>\n\n <fs-label-field *ngIf=\"process.log\" class=\"log\">\n <fs-label>\n Log\n </fs-label>{{process.log}}\n </fs-label-field>\n\n </div>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button \n mat-button \n [mat-dialog-close]=\"true\" \n color=\"primary\">\n Close\n </button>\n <button\n *ngIf=\"process.state === ProcessState.Running && data.loadProcess\"\n mat-button\n (click)=\"load()\">\n Refresh\n </button>\n <button \n *ngIf=\"process.state !== ProcessState.Running && data.run\" \n mat-button \n (click)=\"run()\">\n Run\n </button>\n <button\n *ngIf=\"process.filename\"\n mat-button\n (click)=\"download()\">\n Download\n </button> \n </mat-dialog-actions>\n</fs-dialog>\n", styles: [":host ::ng-deep .log .field-content{white-space:pre-wrap;font-family:monospace;font-size:14px}\n"], components: [{ type: i2__namespace$2.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: i2__namespace$1.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["bottomMargin", "topMargin", "labelMargin"] }, { type: i2__namespace$1.FsLabelComponent, selector: "fs-label" }, { type: i4__namespace.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i5__namespace.FsSkeletonContentDirective, selector: "[fsSkeleton]", inputs: ["fsSkeleton", "fsSkeletonPattern"] }, { type: i1__namespace$1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1__namespace$1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i6__namespace$1.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i6__namespace$1.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { type: i9__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace$1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i1__namespace$1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }], pipes: { "fsDateFormat": i4__namespace$2.FsDateFormatPipe, "fsDateDuration": i4__namespace$2.FsDateDurationPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1124
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ProcessComponent, decorators: [{
1125
- type: i0.Component,
1126
- args: [{
1127
- templateUrl: './process.component.html',
1128
- styleUrls: ['./process.component.scss'],
1129
- changeDetection: i0.ChangeDetectionStrategy.OnPush,
1130
- }]
1131
- }], ctorParameters: function () {
1132
- return [{ type: undefined, decorators: [{
1133
- type: i0.Inject,
1134
- args: [i1$1.MAT_DIALOG_DATA]
1135
- }] }, { type: i1__namespace.FsMessage }, { type: i0__namespace.ChangeDetectorRef }];
1084
+ var ProcessComponent = /** @class */ (function () {
1085
+ function ProcessComponent(data, _message, _cdRef) {
1086
+ this.data = data;
1087
+ this._message = _message;
1088
+ this._cdRef = _cdRef;
1089
+ this.ProcessStates = indexNameValue(ProcessStates);
1090
+ this.ProcessState = exports.ProcessState;
1091
+ }
1092
+ ProcessComponent.prototype.ngOnInit = function () {
1093
+ if (this.data.loadProcess) {
1094
+ this.load();
1095
+ }
1096
+ else {
1097
+ this.process = this.data.process;
1098
+ }
1099
+ };
1100
+ ProcessComponent.prototype.load = function () {
1101
+ var _this = this;
1102
+ this.data.loadProcess(this.data.process)
1103
+ .subscribe(function (process) {
1104
+ _this.process = process;
1105
+ _this._cdRef.markForCheck();
1106
+ });
1107
+ };
1108
+ ProcessComponent.prototype.run = function () {
1109
+ var _this = this;
1110
+ this._message.success('Running process');
1111
+ this.data.run(this.data.process)
1112
+ .subscribe(function () {
1113
+ _this.load();
1114
+ });
1115
+ setTimeout(function () {
1116
+ _this.load();
1117
+ }, 1000);
1118
+ };
1119
+ ProcessComponent.prototype.download = function () {
1120
+ this.data.download(this.data.process);
1121
+ };
1122
+ return ProcessComponent;
1123
+ }());
1124
+ ProcessComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ProcessComponent, deps: [{ token: i1$1.MAT_DIALOG_DATA }, { token: i1__namespace.FsMessage }, { token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
1125
+ ProcessComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ProcessComponent, selector: "ng-component", ngImport: i0__namespace, template: "<fs-dialog *fsSkeleton=\"process\">\r\n <div mat-dialog-title>Process</div>\r\n <mat-dialog-content>\r\n <div fxLayout=\"column\">\r\n <fs-label-field>\r\n <fs-label>\r\n Name\r\n </fs-label>\r\n {{process.prettyName}}\r\n </fs-label-field>\r\n\r\n <div fxLayout=\"row\" fxLayoutGap=\"20px\">\r\n <fs-label-field>\r\n <fs-label>\r\n Status\r\n </fs-label>\r\n {{ProcessStates[process.state]}}\r\n </fs-label-field>\r\n\r\n <fs-label-field *ngIf=\"process.notify\">\r\n <fs-label>\r\n Notification Email\r\n </fs-label>\r\n {{process.notify}}\r\n </fs-label-field>\r\n\r\n <fs-label-field *ngIf=\"process.pid\">\r\n <fs-label>\r\n PID\r\n </fs-label>\r\n {{process.pid}}\r\n </fs-label-field>\r\n </div>\r\n\r\n <div fxLayout=\"row\" fxLayoutGap=\"20px\">\r\n <fs-label-field *ngIf=\"process.createDate\">\r\n <fs-label>\r\n Create Date\r\n </fs-label>\r\n {{ process.createDate | fsDateFormat: 'date-time' }}\r\n </fs-label-field>\r\n\r\n <fs-label-field *ngIf=\"process.startDate\">\r\n <fs-label>\r\n Start Date\r\n </fs-label>\r\n {{ process.startDate | fsDateFormat: 'date-time' }}\r\n </fs-label-field>\r\n\r\n <fs-label-field *ngIf=\"process.endDate\">\r\n <fs-label>\r\n Complete Date\r\n </fs-label>\r\n {{ process.endDate | fsDateFormat: 'date-time' }}\r\n </fs-label-field>\r\n\r\n <fs-label-field *ngIf=\"process.duration\">\r\n <fs-label>\r\n Duration\r\n </fs-label>\r\n {{ process.duration | fsDateDuration: {hours: true, minutes: true, seconds: true} }}\r\n </fs-label-field>\r\n </div>\r\n\r\n <fs-label-field *ngIf=\"process.message\">\r\n <fs-label>\r\n Message\r\n </fs-label>\r\n {{process.message}}\r\n </fs-label-field>\r\n\r\n <fs-label-field *ngIf=\"process.log\" class=\"log\">\r\n <fs-label>\r\n Log\r\n </fs-label>{{process.log}}\r\n </fs-label-field>\r\n\r\n </div>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <button \r\n mat-button \r\n [mat-dialog-close]=\"true\" \r\n color=\"primary\">\r\n Close\r\n </button>\r\n <button\r\n *ngIf=\"process.state === ProcessState.Running && data.loadProcess\"\r\n mat-button\r\n (click)=\"load()\">\r\n Refresh\r\n </button>\r\n <button \r\n *ngIf=\"process.state !== ProcessState.Running && data.run\" \r\n mat-button \r\n (click)=\"run()\">\r\n Run\r\n </button>\r\n <button\r\n *ngIf=\"process.filename\"\r\n mat-button\r\n (click)=\"download()\">\r\n Download\r\n </button> \r\n </mat-dialog-actions>\r\n</fs-dialog>\r\n", styles: [":host ::ng-deep .log .field-content{white-space:pre-wrap;font-family:monospace;font-size:14px}\n"], components: [{ type: i2__namespace$2.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: i2__namespace$1.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["bottomMargin", "topMargin", "labelMargin"] }, { type: i2__namespace$1.FsLabelComponent, selector: "fs-label" }, { type: i4__namespace.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i5__namespace.FsSkeletonContentDirective, selector: "[fsSkeleton]", inputs: ["fsSkeleton", "fsSkeletonPattern"] }, { type: i1__namespace$1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1__namespace$1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i6__namespace$1.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i6__namespace$1.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { type: i9__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace$1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i1__namespace$1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }], pipes: { "fsDateFormat": i4__namespace$2.FsDateFormatPipe, "fsDateDuration": i4__namespace$2.FsDateDurationPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1126
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ProcessComponent, decorators: [{
1127
+ type: i0.Component,
1128
+ args: [{
1129
+ templateUrl: './process.component.html',
1130
+ styleUrls: ['./process.component.scss'],
1131
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
1132
+ }]
1133
+ }], ctorParameters: function () {
1134
+ return [{ type: undefined, decorators: [{
1135
+ type: i0.Inject,
1136
+ args: [i1$1.MAT_DIALOG_DATA]
1137
+ }] }, { type: i1__namespace.FsMessage }, { type: i0__namespace.ChangeDetectorRef }];
1136
1138
  } });
1137
1139
 
1138
- var ProcessesComponent = /** @class */ (function () {
1139
- function ProcessesComponent(_dialog, _message) {
1140
- this._dialog = _dialog;
1141
- this._message = _message;
1142
- this.actions = [];
1143
- this.config = null;
1144
- this.ProcessStates = indexNameValue(ProcessStates);
1145
- this.ProcessState = exports.ProcessState;
1146
- this._destroy$ = new rxjs.Subject();
1147
- }
1148
- ProcessesComponent.prototype.ngOnInit = function () {
1149
- this._configList();
1150
- };
1151
- ProcessesComponent.prototype._configList = function () {
1152
- var _this = this;
1153
- this.config = {
1154
- actions: [],
1155
- rowActions: [],
1156
- filters: [
1157
- {
1158
- type: filter.ItemType.Keyword,
1159
- name: 'keyword',
1160
- label: 'Search'
1161
- },
1162
- {
1163
- type: filter.ItemType.Select,
1164
- name: 'state',
1165
- label: 'Status',
1166
- values: ProcessStates
1167
- },
1168
- ],
1169
- fetch: function (query) {
1170
- return _this.loadProcesses(query)
1171
- .pipe(operators.map(function (response) { return ({ data: response.data, paging: response.paging }); }));
1172
- }
1173
- };
1174
- if (this.run) {
1175
- this.config.rowActions.push({
1176
- label: 'Run',
1177
- show: function (process) {
1178
- return process.state !== exports.ProcessState.Running;
1179
- },
1180
- click: function (data) {
1181
- _this._message.info('Running process...');
1182
- _this.run(data)
1183
- .subscribe(function () {
1184
- _this.list.reload();
1185
- _this._message.success('Succesfully ran process');
1186
- });
1187
- setTimeout(function () {
1188
- _this.list.reload();
1189
- }, 500);
1190
- }
1191
- });
1192
- }
1193
- if (this.kill) {
1194
- this.config.rowActions.push({
1195
- label: 'Kill',
1196
- show: function (data) {
1197
- return !!data.pid;
1198
- },
1199
- click: function (data) {
1200
- _this._message.info('Killing process...');
1201
- _this.kill(data)
1202
- .subscribe(function () {
1203
- _this.list.reload();
1204
- _this._message.success('Succesfully killed process');
1205
- });
1206
- setTimeout(function () {
1207
- _this.list.reload();
1208
- }, 500);
1209
- }
1210
- });
1211
- }
1212
- if (this.delete) {
1213
- this.config.rowActions.push({
1214
- label: 'Delete',
1215
- click: function (data) {
1216
- _this.delete(data)
1217
- .subscribe(function () {
1218
- _this.list.reload();
1219
- _this._message.success('Deleted process');
1220
- });
1221
- }
1222
- });
1223
- }
1224
- this.actions.forEach(function (action) {
1225
- _this.config.actions.push({
1226
- primary: false,
1227
- label: action.label,
1228
- menu: action.menu,
1229
- click: function () {
1230
- if (action.click) {
1231
- action.click();
1232
- }
1233
- if (action.component) {
1234
- var dialogRef = _this._dialog.open(action.component, {
1235
- width: '800px'
1236
- });
1237
- dialogRef.afterClosed()
1238
- .pipe(operators.takeUntil(_this._destroy$))
1239
- .subscribe(function () {
1240
- _this.list.reload();
1241
- });
1242
- }
1243
- },
1244
- });
1245
- });
1246
- };
1247
- ProcessesComponent.prototype.open = function (process) {
1248
- this._dialog.open(ProcessComponent, {
1249
- data: {
1250
- process: process,
1251
- download: this.download,
1252
- run: this.run,
1253
- loadProcess: this.loadProcess,
1254
- },
1255
- width: '85%'
1256
- });
1257
- };
1258
- ProcessesComponent.prototype.ngOnDestroy = function () {
1259
- this._destroy$.next();
1260
- this._destroy$.complete();
1261
- };
1262
- return ProcessesComponent;
1263
- }());
1264
- ProcessesComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ProcessesComponent, deps: [{ token: i1__namespace$1.MatDialog }, { token: i1__namespace.FsMessage }], target: i0__namespace.ɵɵFactoryTarget.Component });
1265
- ProcessesComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ProcessesComponent, selector: "fs-system-processes", inputs: { loadProcesses: "loadProcesses", loadProcess: "loadProcess", run: "run", kill: "kill", delete: "delete", download: "download", actions: "actions" }, viewQueries: [{ propertyName: "list", first: true, predicate: i2$3.FsListComponent, descendants: true }], ngImport: i0__namespace, 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 (click)=\"open(row)\">{{row.prettyName}}</a>\n </ng-template>\n </fs-list-column>\n\n <fs-list-column>\n <ng-template fs-list-header>Status</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n {{ProcessStates[row.state]}}\n <small>\n <div *ngIf=\"row.state===ProcessState.Running && row.percent\">Complete: {{ row.percent }}%</div>\n <div *ngIf=\"row.state===ProcessState.Completed && row.filename\">Download: <a href=\"javascript:;\" (click)=\"download(row)\">{{ row.filename }}</a></div>\n <div *ngIf=\"row.pid\">PID: {{ row.pid }}</div>\n <div *ngIf=\"row.state===ProcessState.Running && row.notify\">Notify: {{ row.notify }}</div>\n </small>\n </ng-template>\n </fs-list-column>\n\n <fs-list-column>\n <ng-template fs-list-header>Duration</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n {{ row.duration | fsDateDuration: {hours: true, minutes: true, seconds: true} }}\n </ng-template>\n </fs-list-column>\n\n\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\n <fs-list-column>\n <ng-template fs-list-header>Completed</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n <fs-date-ago [date]=\"row.endDate\"></fs-date-ago>\n </ng-template>\n </fs-list-column>\n</fs-list>\n", styles: [""], components: [{ type: i2__namespace$3.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { type: i4__namespace$2.FsDateAgoComponent, selector: "fs-date-ago", inputs: ["date", "showTime", "format", "showTooltip", "tooltipDateFormat"] }], directives: [{ type: i2__namespace$3.FsListColumnDirective, selector: "fs-list-column", inputs: ["title", "name", "show", "customize", "sortable", "sortableDefault", "direction", "align", "width", "class"] }, { type: i2__namespace$3.FsListHeaderDirective, selector: "[fs-list-header]", inputs: ["colspan", "align", "class"] }, { type: i2__namespace$3.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }, { type: i9__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "fsDateDuration": i4__namespace$2.FsDateDurationPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1266
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ProcessesComponent, decorators: [{
1267
- type: i0.Component,
1268
- args: [{
1269
- selector: 'fs-system-processes',
1270
- templateUrl: './processes.component.html',
1271
- styleUrls: ['./processes.component.scss'],
1272
- changeDetection: i0.ChangeDetectionStrategy.OnPush,
1273
- }]
1274
- }], ctorParameters: function () { return [{ type: i1__namespace$1.MatDialog }, { type: i1__namespace.FsMessage }]; }, propDecorators: { list: [{
1275
- type: i0.ViewChild,
1276
- args: [i2$3.FsListComponent]
1277
- }], loadProcesses: [{
1278
- type: i0.Input
1279
- }], loadProcess: [{
1280
- type: i0.Input
1281
- }], run: [{
1282
- type: i0.Input
1283
- }], kill: [{
1284
- type: i0.Input
1285
- }], delete: [{
1286
- type: i0.Input
1287
- }], download: [{
1288
- type: i0.Input
1289
- }], actions: [{
1290
- type: i0.Input
1140
+ var ProcessesComponent = /** @class */ (function () {
1141
+ function ProcessesComponent(_dialog, _message) {
1142
+ this._dialog = _dialog;
1143
+ this._message = _message;
1144
+ this.actions = [];
1145
+ this.config = null;
1146
+ this.ProcessStates = indexNameValue(ProcessStates);
1147
+ this.ProcessState = exports.ProcessState;
1148
+ this._destroy$ = new rxjs.Subject();
1149
+ }
1150
+ ProcessesComponent.prototype.ngOnInit = function () {
1151
+ this._configList();
1152
+ };
1153
+ ProcessesComponent.prototype._configList = function () {
1154
+ var _this = this;
1155
+ this.config = {
1156
+ actions: [],
1157
+ rowActions: [],
1158
+ filters: [
1159
+ {
1160
+ type: filter.ItemType.Keyword,
1161
+ name: 'keyword',
1162
+ label: 'Search'
1163
+ },
1164
+ {
1165
+ type: filter.ItemType.Select,
1166
+ name: 'state',
1167
+ label: 'Status',
1168
+ values: ProcessStates
1169
+ },
1170
+ ],
1171
+ fetch: function (query) {
1172
+ return _this.loadProcesses(query)
1173
+ .pipe(operators.map(function (response) { return ({ data: response.data, paging: response.paging }); }));
1174
+ }
1175
+ };
1176
+ if (this.run) {
1177
+ this.config.rowActions.push({
1178
+ label: 'Run',
1179
+ show: function (process) {
1180
+ return process.state !== exports.ProcessState.Running;
1181
+ },
1182
+ click: function (data) {
1183
+ _this._message.info('Running process...');
1184
+ _this.run(data)
1185
+ .subscribe(function () {
1186
+ _this.list.reload();
1187
+ _this._message.success('Succesfully ran process');
1188
+ });
1189
+ setTimeout(function () {
1190
+ _this.list.reload();
1191
+ }, 500);
1192
+ }
1193
+ });
1194
+ }
1195
+ if (this.kill) {
1196
+ this.config.rowActions.push({
1197
+ label: 'Kill',
1198
+ show: function (data) {
1199
+ return !!data.pid;
1200
+ },
1201
+ click: function (data) {
1202
+ _this._message.info('Killing process...');
1203
+ _this.kill(data)
1204
+ .subscribe(function () {
1205
+ _this.list.reload();
1206
+ _this._message.success('Succesfully killed process');
1207
+ });
1208
+ setTimeout(function () {
1209
+ _this.list.reload();
1210
+ }, 500);
1211
+ }
1212
+ });
1213
+ }
1214
+ if (this.delete) {
1215
+ this.config.rowActions.push({
1216
+ label: 'Delete',
1217
+ click: function (data) {
1218
+ _this.delete(data)
1219
+ .subscribe(function () {
1220
+ _this.list.reload();
1221
+ _this._message.success('Deleted process');
1222
+ });
1223
+ }
1224
+ });
1225
+ }
1226
+ this.actions.forEach(function (action) {
1227
+ _this.config.actions.push({
1228
+ primary: false,
1229
+ label: action.label,
1230
+ menu: action.menu,
1231
+ click: function () {
1232
+ if (action.click) {
1233
+ action.click();
1234
+ }
1235
+ if (action.component) {
1236
+ var dialogRef = _this._dialog.open(action.component, {
1237
+ width: '800px'
1238
+ });
1239
+ dialogRef.afterClosed()
1240
+ .pipe(operators.takeUntil(_this._destroy$))
1241
+ .subscribe(function () {
1242
+ _this.list.reload();
1243
+ });
1244
+ }
1245
+ },
1246
+ });
1247
+ });
1248
+ };
1249
+ ProcessesComponent.prototype.open = function (process) {
1250
+ this._dialog.open(ProcessComponent, {
1251
+ data: {
1252
+ process: process,
1253
+ download: this.download,
1254
+ run: this.run,
1255
+ loadProcess: this.loadProcess,
1256
+ },
1257
+ width: '85%'
1258
+ });
1259
+ };
1260
+ ProcessesComponent.prototype.ngOnDestroy = function () {
1261
+ this._destroy$.next();
1262
+ this._destroy$.complete();
1263
+ };
1264
+ return ProcessesComponent;
1265
+ }());
1266
+ ProcessesComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ProcessesComponent, deps: [{ token: i1__namespace$1.MatDialog }, { token: i1__namespace.FsMessage }], target: i0__namespace.ɵɵFactoryTarget.Component });
1267
+ ProcessesComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ProcessesComponent, selector: "fs-system-processes", inputs: { loadProcesses: "loadProcesses", loadProcess: "loadProcess", run: "run", kill: "kill", delete: "delete", download: "download", actions: "actions" }, viewQueries: [{ propertyName: "list", first: true, predicate: i2$3.FsListComponent, descendants: true }], ngImport: i0__namespace, template: "<fs-list [config]=\"config\">\r\n <fs-list-column>\r\n <ng-template fs-list-header>Name</ng-template>\r\n <ng-template fs-list-cell let-row=\"row\">\r\n <a (click)=\"open(row)\">{{row.prettyName}}</a>\r\n </ng-template>\r\n </fs-list-column>\r\n\r\n <fs-list-column>\r\n <ng-template fs-list-header>Status</ng-template>\r\n <ng-template fs-list-cell let-row=\"row\">\r\n {{ProcessStates[row.state]}}\r\n <small>\r\n <div *ngIf=\"row.state===ProcessState.Running && row.percent\">Complete: {{ row.percent }}%</div>\r\n <div *ngIf=\"row.state===ProcessState.Completed && row.filename\">Download: <a href=\"javascript:;\" (click)=\"download(row)\">{{ row.filename }}</a></div>\r\n <div *ngIf=\"row.pid\">PID: {{ row.pid }}</div>\r\n <div *ngIf=\"row.state===ProcessState.Running && row.notify\">Notify: {{ row.notify }}</div>\r\n </small>\r\n </ng-template>\r\n </fs-list-column>\r\n\r\n <fs-list-column>\r\n <ng-template fs-list-header>Duration</ng-template>\r\n <ng-template fs-list-cell let-row=\"row\">\r\n {{ row.duration | fsDateDuration: {hours: true, minutes: true, seconds: true} }}\r\n </ng-template>\r\n </fs-list-column>\r\n\r\n\r\n <fs-list-column>\r\n <ng-template fs-list-header>Message</ng-template>\r\n <ng-template fs-list-cell let-row=\"row\">\r\n {{row.message}}\r\n </ng-template>\r\n </fs-list-column>\r\n\r\n <fs-list-column>\r\n <ng-template fs-list-header>Completed</ng-template>\r\n <ng-template fs-list-cell let-row=\"row\">\r\n <fs-date-ago [date]=\"row.endDate\"></fs-date-ago>\r\n </ng-template>\r\n </fs-list-column>\r\n</fs-list>\r\n", styles: [""], components: [{ type: i2__namespace$3.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { type: i4__namespace$2.FsDateAgoComponent, selector: "fs-date-ago", inputs: ["date", "showTime", "format", "showTooltip", "tooltipDateFormat"] }], directives: [{ type: i2__namespace$3.FsListColumnDirective, selector: "fs-list-column", inputs: ["title", "name", "show", "customize", "sortable", "sortableDefault", "direction", "align", "width", "class"] }, { type: i2__namespace$3.FsListHeaderDirective, selector: "[fs-list-header]", inputs: ["colspan", "align", "class"] }, { type: i2__namespace$3.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }, { type: i9__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "fsDateDuration": i4__namespace$2.FsDateDurationPipe }, changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1268
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ProcessesComponent, decorators: [{
1269
+ type: i0.Component,
1270
+ args: [{
1271
+ selector: 'fs-system-processes',
1272
+ templateUrl: './processes.component.html',
1273
+ styleUrls: ['./processes.component.scss'],
1274
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
1275
+ }]
1276
+ }], ctorParameters: function () { return [{ type: i1__namespace$1.MatDialog }, { type: i1__namespace.FsMessage }]; }, propDecorators: { list: [{
1277
+ type: i0.ViewChild,
1278
+ args: [i2$3.FsListComponent]
1279
+ }], loadProcesses: [{
1280
+ type: i0.Input
1281
+ }], loadProcess: [{
1282
+ type: i0.Input
1283
+ }], run: [{
1284
+ type: i0.Input
1285
+ }], kill: [{
1286
+ type: i0.Input
1287
+ }], delete: [{
1288
+ type: i0.Input
1289
+ }], download: [{
1290
+ type: i0.Input
1291
+ }], actions: [{
1292
+ type: i0.Input
1291
1293
  }] } });
1292
1294
 
1293
- var ServerLogComponent = /** @class */ (function () {
1294
- function ServerLogComponent(data) {
1295
- this.data = data;
1296
- }
1297
- ServerLogComponent.prototype.ngOnInit = function () {
1298
- if (this.data.log) {
1299
- this.log = this.data.log;
1300
- try {
1301
- this.log.backtrace = JSON.parse(this.log.backtrace);
1302
- }
1303
- catch (e) { }
1304
- try {
1305
- this.log.server = JSON.parse(this.log.server);
1306
- }
1307
- catch (e) { }
1308
- }
1309
- };
1310
- return ServerLogComponent;
1311
- }());
1312
- ServerLogComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ServerLogComponent, deps: [{ token: i1$1.MAT_DIALOG_DATA }], target: i0__namespace.ɵɵFactoryTarget.Component });
1313
- ServerLogComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ServerLogComponent, selector: "ng-component", ngImport: i0__namespace, template: "<fs-dialog *fsSkeleton=\"log\">\n <div mat-dialog-title>Log</div>\n <mat-dialog-content>\n <div fxLayout=\"column\">\n <fs-label-field>\n <fs-label>\n Error Type\n </fs-label>\n {{log.type}}\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>\n Message\n </fs-label>\n {{log.message}}\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>\n URL\n </fs-label>\n {{log.url}}\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>\n Date\n </fs-label>\n {{log.createDate|fsDateFormat: 'full-date-time'}}\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>\n File\n </fs-label>\n {{log.file}} @ {{log.line}}\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>\n Backtrace\n </fs-label>\n <pre>{{log.backtrace|json}}</pre>\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>\n $_SERVER\n </fs-label>\n <pre>{{log.server|json}}</pre>\n </fs-label-field>\n </div>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button mat-button [mat-dialog-close]=\"true\" color=\"primary\">Done</button>\n </mat-dialog-actions>\n</fs-dialog>\n", styles: [""], components: [{ type: i2__namespace$2.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: i2__namespace$1.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["bottomMargin", "topMargin", "labelMargin"] }, { type: i2__namespace$1.FsLabelComponent, selector: "fs-label" }, { type: i4__namespace.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i5__namespace.FsSkeletonContentDirective, selector: "[fsSkeleton]", inputs: ["fsSkeleton", "fsSkeletonPattern"] }, { type: i1__namespace$1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1__namespace$1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i6__namespace$1.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i1__namespace$1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i1__namespace$1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }], pipes: { "fsDateFormat": i4__namespace$2.FsDateFormatPipe, "json": i9__namespace.JsonPipe } });
1314
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ServerLogComponent, decorators: [{
1315
- type: i0.Component,
1316
- args: [{
1317
- templateUrl: './server-log.component.html',
1318
- styleUrls: ['./server-log.component.scss']
1319
- }]
1320
- }], ctorParameters: function () {
1321
- return [{ type: undefined, decorators: [{
1322
- type: i0.Inject,
1323
- args: [i1$1.MAT_DIALOG_DATA]
1324
- }] }];
1295
+ var ServerLogComponent = /** @class */ (function () {
1296
+ function ServerLogComponent(data) {
1297
+ this.data = data;
1298
+ }
1299
+ ServerLogComponent.prototype.ngOnInit = function () {
1300
+ if (this.data.log) {
1301
+ this.log = this.data.log;
1302
+ try {
1303
+ this.log.backtrace = JSON.parse(this.log.backtrace);
1304
+ }
1305
+ catch (e) { }
1306
+ try {
1307
+ this.log.server = JSON.parse(this.log.server);
1308
+ }
1309
+ catch (e) { }
1310
+ }
1311
+ };
1312
+ return ServerLogComponent;
1313
+ }());
1314
+ ServerLogComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ServerLogComponent, deps: [{ token: i1$1.MAT_DIALOG_DATA }], target: i0__namespace.ɵɵFactoryTarget.Component });
1315
+ ServerLogComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ServerLogComponent, selector: "ng-component", ngImport: i0__namespace, template: "<fs-dialog *fsSkeleton=\"log\">\r\n <div mat-dialog-title>Log</div>\r\n <mat-dialog-content>\r\n <div fxLayout=\"column\">\r\n <fs-label-field>\r\n <fs-label>\r\n Error Type\r\n </fs-label>\r\n {{log.type}}\r\n </fs-label-field>\r\n\r\n <fs-label-field>\r\n <fs-label>\r\n Message\r\n </fs-label>\r\n {{log.message}}\r\n </fs-label-field>\r\n\r\n <fs-label-field>\r\n <fs-label>\r\n URL\r\n </fs-label>\r\n {{log.url}}\r\n </fs-label-field>\r\n\r\n <fs-label-field>\r\n <fs-label>\r\n Date\r\n </fs-label>\r\n {{log.createDate|fsDateFormat: 'full-date-time'}}\r\n </fs-label-field>\r\n\r\n <fs-label-field>\r\n <fs-label>\r\n File\r\n </fs-label>\r\n {{log.file}} @ {{log.line}}\r\n </fs-label-field>\r\n\r\n <fs-label-field>\r\n <fs-label>\r\n Backtrace\r\n </fs-label>\r\n <pre>{{log.backtrace|json}}</pre>\r\n </fs-label-field>\r\n\r\n <fs-label-field>\r\n <fs-label>\r\n $_SERVER\r\n </fs-label>\r\n <pre>{{log.server|json}}</pre>\r\n </fs-label-field>\r\n </div>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <button mat-button [mat-dialog-close]=\"true\" color=\"primary\">Done</button>\r\n </mat-dialog-actions>\r\n</fs-dialog>\r\n", styles: [""], components: [{ type: i2__namespace$2.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: i2__namespace$1.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["bottomMargin", "topMargin", "labelMargin"] }, { type: i2__namespace$1.FsLabelComponent, selector: "fs-label" }, { type: i4__namespace.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i5__namespace.FsSkeletonContentDirective, selector: "[fsSkeleton]", inputs: ["fsSkeleton", "fsSkeletonPattern"] }, { type: i1__namespace$1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1__namespace$1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i6__namespace$1.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i1__namespace$1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i1__namespace$1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }], pipes: { "fsDateFormat": i4__namespace$2.FsDateFormatPipe, "json": i9__namespace.JsonPipe } });
1316
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ServerLogComponent, decorators: [{
1317
+ type: i0.Component,
1318
+ args: [{
1319
+ templateUrl: './server-log.component.html',
1320
+ styleUrls: ['./server-log.component.scss']
1321
+ }]
1322
+ }], ctorParameters: function () {
1323
+ return [{ type: undefined, decorators: [{
1324
+ type: i0.Inject,
1325
+ args: [i1$1.MAT_DIALOG_DATA]
1326
+ }] }];
1325
1327
  } });
1326
1328
 
1327
- var ServerLogsComponent = /** @class */ (function () {
1328
- function ServerLogsComponent(_dialog) {
1329
- this._dialog = _dialog;
1330
- this.config = null;
1331
- this.logTypes = [];
1332
- }
1333
- ServerLogsComponent.prototype.ngOnInit = function () {
1334
- this._configList();
1335
- };
1336
- ServerLogsComponent.prototype._configList = function () {
1337
- var _this = this;
1338
- this.config = {
1339
- filters: [
1340
- {
1341
- type: filter.ItemType.Keyword,
1342
- name: 'keyword',
1343
- label: 'Search'
1344
- }
1345
- ],
1346
- fetch: function (query) {
1347
- return _this.loadLogs(query)
1348
- .pipe(operators.map(function (response) { return ({ data: response.data, paging: response.paging }); }));
1349
- }
1350
- };
1351
- };
1352
- ServerLogsComponent.prototype.open = function (log) {
1353
- this._dialog.open(ServerLogComponent, {
1354
- data: { log: log },
1355
- width: '85%'
1356
- });
1357
- };
1358
- return ServerLogsComponent;
1359
- }());
1360
- ServerLogsComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ServerLogsComponent, deps: [{ token: i1__namespace$1.MatDialog }], target: i0__namespace.ɵɵFactoryTarget.Component });
1361
- ServerLogsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ServerLogsComponent, selector: "fs-system-server-logs", inputs: { loadLogs: "loadLogs" }, viewQueries: [{ propertyName: "list", first: true, predicate: ["list"], descendants: true, static: true }], ngImport: i0__namespace, template: "<fs-list [config]=\"config\">\n <fs-list-column>\n <ng-template fs-list-header>Message</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n <a href=\"javascript:;\" (click)=\"open(row)\">{{row.message}}</a>\n </ng-template>\n </fs-list-column>\n <fs-list-column>\n <ng-template fs-list-header>Type</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n {{row.type}}\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 </ng-template>\n </fs-list-column>\n </fs-list>\n", styles: [""], components: [{ type: i2__namespace$3.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { type: i4__namespace$2.FsDateAgoComponent, selector: "fs-date-ago", inputs: ["date", "showTime", "format", "showTooltip", "tooltipDateFormat"] }], directives: [{ type: i2__namespace$3.FsListColumnDirective, selector: "fs-list-column", inputs: ["title", "name", "show", "customize", "sortable", "sortableDefault", "direction", "align", "width", "class"] }, { type: i2__namespace$3.FsListHeaderDirective, selector: "[fs-list-header]", inputs: ["colspan", "align", "class"] }, { type: i2__namespace$3.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }] });
1362
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ServerLogsComponent, decorators: [{
1363
- type: i0.Component,
1364
- args: [{
1365
- selector: 'fs-system-server-logs',
1366
- templateUrl: './server-logs.component.html',
1367
- styleUrls: ['./server-logs.component.scss']
1368
- }]
1369
- }], ctorParameters: function () { return [{ type: i1__namespace$1.MatDialog }]; }, propDecorators: { list: [{
1370
- type: i0.ViewChild,
1371
- args: ['list', { static: true }]
1372
- }], loadLogs: [{
1373
- type: i0.Input
1329
+ var ServerLogsComponent = /** @class */ (function () {
1330
+ function ServerLogsComponent(_dialog) {
1331
+ this._dialog = _dialog;
1332
+ this.config = null;
1333
+ this.logTypes = [];
1334
+ }
1335
+ ServerLogsComponent.prototype.ngOnInit = function () {
1336
+ this._configList();
1337
+ };
1338
+ ServerLogsComponent.prototype._configList = function () {
1339
+ var _this = this;
1340
+ this.config = {
1341
+ filters: [
1342
+ {
1343
+ type: filter.ItemType.Keyword,
1344
+ name: 'keyword',
1345
+ label: 'Search'
1346
+ }
1347
+ ],
1348
+ fetch: function (query) {
1349
+ return _this.loadLogs(query)
1350
+ .pipe(operators.map(function (response) { return ({ data: response.data, paging: response.paging }); }));
1351
+ }
1352
+ };
1353
+ };
1354
+ ServerLogsComponent.prototype.open = function (log) {
1355
+ this._dialog.open(ServerLogComponent, {
1356
+ data: { log: log },
1357
+ width: '85%'
1358
+ });
1359
+ };
1360
+ return ServerLogsComponent;
1361
+ }());
1362
+ ServerLogsComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ServerLogsComponent, deps: [{ token: i1__namespace$1.MatDialog }], target: i0__namespace.ɵɵFactoryTarget.Component });
1363
+ ServerLogsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ServerLogsComponent, selector: "fs-system-server-logs", inputs: { loadLogs: "loadLogs" }, viewQueries: [{ propertyName: "list", first: true, predicate: ["list"], descendants: true, static: true }], ngImport: i0__namespace, template: "<fs-list [config]=\"config\">\r\n <fs-list-column>\r\n <ng-template fs-list-header>Message</ng-template>\r\n <ng-template fs-list-cell let-row=\"row\">\r\n <a href=\"javascript:;\" (click)=\"open(row)\">{{row.message}}</a>\r\n </ng-template>\r\n </fs-list-column>\r\n <fs-list-column>\r\n <ng-template fs-list-header>Type</ng-template>\r\n <ng-template fs-list-cell let-row=\"row\">\r\n {{row.type}}\r\n </ng-template>\r\n </fs-list-column>\r\n <fs-list-column>\r\n <ng-template fs-list-header>Date</ng-template>\r\n <ng-template fs-list-cell let-row=\"row\">\r\n <fs-date-ago [date]=\"row.createDate\"></fs-date-ago>\r\n </ng-template>\r\n </fs-list-column>\r\n </fs-list>\r\n", styles: [""], components: [{ type: i2__namespace$3.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { type: i4__namespace$2.FsDateAgoComponent, selector: "fs-date-ago", inputs: ["date", "showTime", "format", "showTooltip", "tooltipDateFormat"] }], directives: [{ type: i2__namespace$3.FsListColumnDirective, selector: "fs-list-column", inputs: ["title", "name", "show", "customize", "sortable", "sortableDefault", "direction", "align", "width", "class"] }, { type: i2__namespace$3.FsListHeaderDirective, selector: "[fs-list-header]", inputs: ["colspan", "align", "class"] }, { type: i2__namespace$3.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }] });
1364
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ServerLogsComponent, decorators: [{
1365
+ type: i0.Component,
1366
+ args: [{
1367
+ selector: 'fs-system-server-logs',
1368
+ templateUrl: './server-logs.component.html',
1369
+ styleUrls: ['./server-logs.component.scss']
1370
+ }]
1371
+ }], ctorParameters: function () { return [{ type: i1__namespace$1.MatDialog }]; }, propDecorators: { list: [{
1372
+ type: i0.ViewChild,
1373
+ args: ['list', { static: true }]
1374
+ }], loadLogs: [{
1375
+ type: i0.Input
1374
1376
  }] } });
1375
1377
 
1376
- var UpgradeLogsComponent = /** @class */ (function () {
1377
- function UpgradeLogsComponent() {
1378
- this.config = null;
1379
- this.logTypes = [];
1380
- }
1381
- UpgradeLogsComponent.prototype.ngOnInit = function () {
1382
- this._configList();
1383
- };
1384
- UpgradeLogsComponent.prototype._configList = function () {
1385
- var _this = this;
1386
- this.config = {
1387
- paging: false,
1388
- filters: [
1389
- {
1390
- type: filter.ItemType.Keyword,
1391
- name: 'keyword',
1392
- label: 'Search'
1393
- }
1394
- ],
1395
- fetch: function (query) {
1396
- return _this.loadUpgradeLogs(query)
1397
- .pipe(operators.map(function (response) { return ({ data: response.data, paging: response.paging }); }));
1398
- }
1399
- };
1400
- };
1401
- return UpgradeLogsComponent;
1402
- }());
1403
- UpgradeLogsComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: UpgradeLogsComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
1404
- UpgradeLogsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: UpgradeLogsComponent, selector: "fs-system-upgrade-logs", inputs: { loadUpgradeLogs: "loadUpgradeLogs" }, viewQueries: [{ propertyName: "list", first: true, predicate: i2$3.FsListComponent, descendants: true, static: true }], ngImport: i0__namespace, 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 {{row.name}}\n </ng-template>\n </fs-list-column>\n\n <fs-list-column>\n <ng-template fs-list-header>Function</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n {{row.function}}()\n </ng-template>\n </fs-list-column>\n\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 </ng-template>\n </fs-list-column>\n</fs-list>\n", styles: [""], components: [{ type: i2__namespace$3.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { type: i4__namespace$2.FsDateAgoComponent, selector: "fs-date-ago", inputs: ["date", "showTime", "format", "showTooltip", "tooltipDateFormat"] }], directives: [{ type: i2__namespace$3.FsListColumnDirective, selector: "fs-list-column", inputs: ["title", "name", "show", "customize", "sortable", "sortableDefault", "direction", "align", "width", "class"] }, { type: i2__namespace$3.FsListHeaderDirective, selector: "[fs-list-header]", inputs: ["colspan", "align", "class"] }, { type: i2__namespace$3.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }] });
1405
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: UpgradeLogsComponent, decorators: [{
1406
- type: i0.Component,
1407
- args: [{
1408
- selector: 'fs-system-upgrade-logs',
1409
- templateUrl: './upgrade-logs.component.html',
1410
- styleUrls: ['./upgrade-logs.component.scss']
1411
- }]
1412
- }], propDecorators: { list: [{
1413
- type: i0.ViewChild,
1414
- args: [i2$3.FsListComponent, { static: true }]
1415
- }], loadUpgradeLogs: [{
1416
- type: i0.Input
1378
+ var UpgradeLogsComponent = /** @class */ (function () {
1379
+ function UpgradeLogsComponent() {
1380
+ this.config = null;
1381
+ this.logTypes = [];
1382
+ }
1383
+ UpgradeLogsComponent.prototype.ngOnInit = function () {
1384
+ this._configList();
1385
+ };
1386
+ UpgradeLogsComponent.prototype._configList = function () {
1387
+ var _this = this;
1388
+ this.config = {
1389
+ paging: false,
1390
+ filters: [
1391
+ {
1392
+ type: filter.ItemType.Keyword,
1393
+ name: 'keyword',
1394
+ label: 'Search'
1395
+ }
1396
+ ],
1397
+ fetch: function (query) {
1398
+ return _this.loadUpgradeLogs(query)
1399
+ .pipe(operators.map(function (response) { return ({ data: response.data, paging: response.paging }); }));
1400
+ }
1401
+ };
1402
+ };
1403
+ return UpgradeLogsComponent;
1404
+ }());
1405
+ UpgradeLogsComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: UpgradeLogsComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
1406
+ UpgradeLogsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: UpgradeLogsComponent, selector: "fs-system-upgrade-logs", inputs: { loadUpgradeLogs: "loadUpgradeLogs" }, viewQueries: [{ propertyName: "list", first: true, predicate: i2$3.FsListComponent, descendants: true, static: true }], ngImport: i0__namespace, template: "<fs-list [config]=\"config\">\r\n <fs-list-column>\r\n <ng-template fs-list-header>Name</ng-template>\r\n <ng-template fs-list-cell let-row=\"row\">\r\n {{row.name}}\r\n </ng-template>\r\n </fs-list-column>\r\n\r\n <fs-list-column>\r\n <ng-template fs-list-header>Function</ng-template>\r\n <ng-template fs-list-cell let-row=\"row\">\r\n {{row.function}}()\r\n </ng-template>\r\n </fs-list-column>\r\n\r\n <fs-list-column>\r\n <ng-template fs-list-header>Date</ng-template>\r\n <ng-template fs-list-cell let-row=\"row\">\r\n <fs-date-ago [date]=\"row.createDate\"></fs-date-ago>\r\n </ng-template>\r\n </fs-list-column>\r\n</fs-list>\r\n", styles: [""], components: [{ type: i2__namespace$3.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { type: i4__namespace$2.FsDateAgoComponent, selector: "fs-date-ago", inputs: ["date", "showTime", "format", "showTooltip", "tooltipDateFormat"] }], directives: [{ type: i2__namespace$3.FsListColumnDirective, selector: "fs-list-column", inputs: ["title", "name", "show", "customize", "sortable", "sortableDefault", "direction", "align", "width", "class"] }, { type: i2__namespace$3.FsListHeaderDirective, selector: "[fs-list-header]", inputs: ["colspan", "align", "class"] }, { type: i2__namespace$3.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }] });
1407
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: UpgradeLogsComponent, decorators: [{
1408
+ type: i0.Component,
1409
+ args: [{
1410
+ selector: 'fs-system-upgrade-logs',
1411
+ templateUrl: './upgrade-logs.component.html',
1412
+ styleUrls: ['./upgrade-logs.component.scss']
1413
+ }]
1414
+ }], propDecorators: { list: [{
1415
+ type: i0.ViewChild,
1416
+ args: [i2$3.FsListComponent, { static: true }]
1417
+ }], loadUpgradeLogs: [{
1418
+ type: i0.Input
1417
1419
  }] } });
1418
1420
 
1419
- var ApiLogComponent = /** @class */ (function () {
1420
- function ApiLogComponent(_dialogRef, data) {
1421
- this._dialogRef = _dialogRef;
1422
- this.data = data;
1423
- }
1424
- ApiLogComponent.prototype.ngOnInit = function () {
1425
- this.apiLogStates = indexNameValue(ApiLogStates);
1426
- if (this.data.apiLog) {
1427
- this.apiLog = this.data.apiLog;
1428
- }
1429
- };
1430
- return ApiLogComponent;
1431
- }());
1432
- ApiLogComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ApiLogComponent, deps: [{ token: i1__namespace$1.MatDialogRef }, { token: i1$1.MAT_DIALOG_DATA }], target: i0__namespace.ɵɵFactoryTarget.Component });
1433
- ApiLogComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ApiLogComponent, selector: "ng-component", ngImport: i0__namespace, template: "<fs-dialog *fsSkeleton=\"apiLog\">\n\n <div mat-dialog-title>API Log</div>\n\n <mat-dialog-content>\n <div\n fxLayout=\"row wrap\"\n fxLayout.xs=\"column\"\n fxLayoutGap.xs=\"0px\"\n fxLayoutAlign=\"start start\"\n fxLayoutGap=\"100px\">\n\n <div>\n <fs-label-field>\n <fs-label>\n Type\n </fs-label>\n {{apiLog.type}}\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>\n Status\n </fs-label>\n {{apiLogStates[apiLog.state]}}\n </fs-label-field>\n\n\n <fs-label-field *ngIf=\"apiLog.code\">\n <fs-label>\n Code\n </fs-label>\n {{apiLog.code}}\n </fs-label-field>\n\n </div>\n <div>\n <fs-label-field>\n <fs-label>\n Date\n </fs-label>\n {{apiLog.createDate|fsDateFormat: 'full-date-time'}}\n </fs-label-field>\n\n\n <fs-label-field *ngIf=\"apiLog.direction\">\n <fs-label>\n Direction\n </fs-label>\n {{apiLog.direction}}\n </fs-label-field>\n\n\n <fs-label-field *ngIf=\"apiLog.length\">\n <fs-label>\n Duration\n </fs-label>\n {{ apiLog.length | fsDateDuration }}\n </fs-label-field>\n </div>\n </div>\n\n <div>\n <fs-label-field *ngIf=\"apiLog.message\">\n <fs-label>\n Message\n </fs-label>\n {{apiLog.message}}\n </fs-label-field>\n </div>\n\n\n <div\n fxLayout=\"row wrap\"\n fxLayout.xs=\"column\"\n fxLayoutGap.xs=\"0px\"\n fxLayoutAlign=\"start start\"\n fxLayoutGap=\"100px\">\n\n <div>\n <fs-label-field *ngIf=\"apiLog.method\">\n <fs-label>\n Method\n </fs-label>\n {{apiLog.method}}\n </fs-label-field>\n </div>\n <div>\n <fs-label-field *ngIf=\"apiLog.url\">\n <fs-label>\n URL\n </fs-label>\n {{apiLog.url}}\n </fs-label-field>\n </div>\n </div>\n\n <div>\n <fs-label-field *ngIf=\"apiLog.request\">\n <fs-label>\n Request\n </fs-label>\n <pre>{{apiLog.request|json}}</pre>\n </fs-label-field>\n\n <fs-label-field *ngIf=\"apiLog.response\">\n <fs-label>\n Response\n </fs-label>\n <pre>{{apiLog.response|json}}</pre>\n </fs-label-field>\n </div>\n </mat-dialog-content>\n\n <mat-dialog-actions>\n <button mat-button [mat-dialog-close]=\"true\" color=\"primary\">Done</button>\n </mat-dialog-actions>\n</fs-dialog>\n", styles: [""], components: [{ type: i2__namespace$2.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: i2__namespace$1.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["bottomMargin", "topMargin", "labelMargin"] }, { type: i2__namespace$1.FsLabelComponent, selector: "fs-label" }, { type: i4__namespace.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i5__namespace.FsSkeletonContentDirective, selector: "[fsSkeleton]", inputs: ["fsSkeleton", "fsSkeletonPattern"] }, { type: i1__namespace$1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1__namespace$1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i6__namespace$1.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i6__namespace$1.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { type: i6__namespace$1.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i9__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace$1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i1__namespace$1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }], pipes: { "fsDateFormat": i4__namespace$2.FsDateFormatPipe, "fsDateDuration": i4__namespace$2.FsDateDurationPipe, "json": i9__namespace.JsonPipe } });
1434
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ApiLogComponent, decorators: [{
1435
- type: i0.Component,
1436
- args: [{
1437
- templateUrl: './api-log.component.html',
1438
- styleUrls: ['./api-log.component.scss']
1439
- }]
1440
- }], ctorParameters: function () {
1441
- return [{ type: i1__namespace$1.MatDialogRef }, { type: undefined, decorators: [{
1442
- type: i0.Inject,
1443
- args: [i1$1.MAT_DIALOG_DATA]
1444
- }] }];
1421
+ var ApiLogComponent = /** @class */ (function () {
1422
+ function ApiLogComponent(_dialogRef, data) {
1423
+ this._dialogRef = _dialogRef;
1424
+ this.data = data;
1425
+ }
1426
+ ApiLogComponent.prototype.ngOnInit = function () {
1427
+ this.apiLogStates = indexNameValue(ApiLogStates);
1428
+ if (this.data.apiLog) {
1429
+ this.apiLog = this.data.apiLog;
1430
+ }
1431
+ };
1432
+ return ApiLogComponent;
1433
+ }());
1434
+ ApiLogComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ApiLogComponent, deps: [{ token: i1__namespace$1.MatDialogRef }, { token: i1$1.MAT_DIALOG_DATA }], target: i0__namespace.ɵɵFactoryTarget.Component });
1435
+ ApiLogComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ApiLogComponent, selector: "ng-component", ngImport: i0__namespace, template: "<fs-dialog *fsSkeleton=\"apiLog\">\n\n <div mat-dialog-title>API Log</div>\n\n <mat-dialog-content>\n <div\n fxLayout=\"row wrap\"\n fxLayout.xs=\"column\"\n fxLayoutGap.xs=\"0px\"\n fxLayoutAlign=\"start start\"\n fxLayoutGap=\"100px\">\n\n <div>\n <fs-label-field>\n <fs-label>\n Type\n </fs-label>\n {{apiLog.type}}\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>\n Status\n </fs-label>\n {{apiLogStates[apiLog.state]}}\n </fs-label-field>\n\n\n <fs-label-field *ngIf=\"apiLog.code\">\n <fs-label>\n Code\n </fs-label>\n {{apiLog.code}}\n </fs-label-field>\n\n </div>\n <div>\n <fs-label-field>\n <fs-label>\n Date\n </fs-label>\n {{apiLog.createDate|fsDateFormat: 'full-date-time'}}\n </fs-label-field>\n\n\n <fs-label-field *ngIf=\"apiLog.direction\">\n <fs-label>\n Direction\n </fs-label>\n {{apiLog.direction}}\n </fs-label-field>\n\n\n <fs-label-field *ngIf=\"apiLog.length\">\n <fs-label>\n Duration\n </fs-label>\n {{ apiLog.length | fsDateDuration }}\n </fs-label-field>\n </div>\n </div>\n\n <div>\n <fs-label-field *ngIf=\"apiLog.message\">\n <fs-label>\n Message\n </fs-label>\n {{apiLog.message}}\n </fs-label-field>\n </div>\n\n\n <div\n fxLayout=\"row wrap\"\n fxLayout.xs=\"column\"\n fxLayoutGap.xs=\"0px\"\n fxLayoutAlign=\"start start\"\n fxLayoutGap=\"100px\">\n\n <div>\n <fs-label-field *ngIf=\"apiLog.method\">\n <fs-label>\n Method\n </fs-label>\n {{apiLog.method}}\n </fs-label-field>\n </div>\n <div>\n <fs-label-field *ngIf=\"apiLog.url\">\n <fs-label>\n URL\n </fs-label>\n {{apiLog.url}}\n </fs-label-field>\n </div>\n </div>\n\n <div>\n <fs-label-field *ngIf=\"apiLog.request\">\n <fs-label>\n Request\n </fs-label>\n <pre>{{apiLog.request|json}}</pre>\n </fs-label-field>\n\n <fs-label-field *ngIf=\"apiLog.response\">\n <fs-label>\n Response\n </fs-label>\n <pre>{{apiLog.response|json}}</pre>\n </fs-label-field>\n </div>\n </mat-dialog-content>\n\n <mat-dialog-actions>\n <button mat-button [mat-dialog-close]=\"true\" color=\"primary\">Done</button>\n </mat-dialog-actions>\n</fs-dialog>\n", styles: [""], components: [{ type: i2__namespace$2.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: i2__namespace$1.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["bottomMargin", "topMargin", "labelMargin"] }, { type: i2__namespace$1.FsLabelComponent, selector: "fs-label" }, { type: i4__namespace.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i5__namespace.FsSkeletonContentDirective, selector: "[fsSkeleton]", inputs: ["fsSkeleton", "fsSkeletonPattern"] }, { type: i1__namespace$1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1__namespace$1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i6__namespace$1.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i6__namespace$1.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { type: i6__namespace$1.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i9__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace$1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i1__namespace$1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }], pipes: { "fsDateFormat": i4__namespace$2.FsDateFormatPipe, "fsDateDuration": i4__namespace$2.FsDateDurationPipe, "json": i9__namespace.JsonPipe } });
1436
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ApiLogComponent, decorators: [{
1437
+ type: i0.Component,
1438
+ args: [{
1439
+ templateUrl: './api-log.component.html',
1440
+ styleUrls: ['./api-log.component.scss']
1441
+ }]
1442
+ }], ctorParameters: function () {
1443
+ return [{ type: i1__namespace$1.MatDialogRef }, { type: undefined, decorators: [{
1444
+ type: i0.Inject,
1445
+ args: [i1$1.MAT_DIALOG_DATA]
1446
+ }] }];
1445
1447
  } });
1446
1448
 
1447
- var ApiLogsComponent = /** @class */ (function () {
1448
- function ApiLogsComponent(_dialog) {
1449
- this._dialog = _dialog;
1450
- this.config = null;
1451
- this.apiLogStates = indexNameValue(ApiLogStates);
1452
- }
1453
- ApiLogsComponent.prototype.ngOnInit = function () {
1454
- this._configList();
1455
- };
1456
- ApiLogsComponent.prototype._configList = function () {
1457
- var _this = this;
1458
- this.config = {
1459
- filters: [
1460
- {
1461
- type: filter.ItemType.Keyword,
1462
- name: 'keyword',
1463
- label: 'Search'
1464
- },
1465
- {
1466
- type: filter.ItemType.Select,
1467
- name: 'state',
1468
- label: 'Status',
1469
- values: ApiLogStates
1470
- },
1471
- {
1472
- name: 'createDate',
1473
- type: filter.ItemType.DateRange,
1474
- label: ['From Date', 'To Date'],
1475
- }
1476
- ],
1477
- fetch: function (query) {
1478
- Object.assign(query, {});
1479
- return _this.loadApiLogs(query)
1480
- .pipe(operators.map(function (response) { return ({ data: response.data, paging: response.paging }); }));
1481
- }
1482
- };
1483
- };
1484
- ApiLogsComponent.prototype.open = function (apiLog) {
1485
- this._dialog.open(ApiLogComponent, {
1486
- data: { apiLog: apiLog },
1487
- width: '85%'
1488
- });
1489
- };
1490
- return ApiLogsComponent;
1491
- }());
1492
- ApiLogsComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ApiLogsComponent, deps: [{ token: i1__namespace$1.MatDialog }], target: i0__namespace.ɵɵFactoryTarget.Component });
1493
- ApiLogsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ApiLogsComponent, selector: "fs-system-api-logs", inputs: { loadApiLogs: "loadApiLogs" }, viewQueries: [{ propertyName: "list", first: true, predicate: i2$3.FsListComponent, descendants: true, static: true }], ngImport: i0__namespace, 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 <mat-icon class=\"direction\" *ngIf=\"row.direction=='outgoing'\">arrow_upward</mat-icon>\n <mat-icon class=\"direction\" *ngIf=\"row.direction=='incoming'\">arrow_downward</mat-icon>\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 <span *ngIf=\"row.code\" class=\"code\" [ngClass]=\"{'success': row.code==200,'error': row.code!=200 }\">[{{row.code}}]</span>\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><small *ngIf=\"row.length\">Duration: {{ row.length | fsDateDuration }}</small></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"], components: [{ type: i2__namespace$3.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { type: i6__namespace.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i4__namespace$2.FsDateAgoComponent, selector: "fs-date-ago", inputs: ["date", "showTime", "format", "showTooltip", "tooltipDateFormat"] }], directives: [{ type: i2__namespace$3.FsListColumnDirective, selector: "fs-list-column", inputs: ["title", "name", "show", "customize", "sortable", "sortableDefault", "direction", "align", "width", "class"] }, { type: i2__namespace$3.FsListHeaderDirective, selector: "[fs-list-header]", inputs: ["colspan", "align", "class"] }, { type: i2__namespace$3.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }, { type: i9__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i10__namespace.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }], pipes: { "fsDateDuration": i4__namespace$2.FsDateDurationPipe } });
1494
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ApiLogsComponent, decorators: [{
1495
- type: i0.Component,
1496
- args: [{
1497
- selector: 'fs-system-api-logs',
1498
- templateUrl: './api-logs.component.html',
1499
- styleUrls: ['./api-logs.component.scss']
1500
- }]
1501
- }], ctorParameters: function () { return [{ type: i1__namespace$1.MatDialog }]; }, propDecorators: { list: [{
1502
- type: i0.ViewChild,
1503
- args: [i2$3.FsListComponent, { static: true }]
1504
- }], loadApiLogs: [{
1505
- type: i0.Input
1449
+ var ApiLogsComponent = /** @class */ (function () {
1450
+ function ApiLogsComponent(_dialog) {
1451
+ this._dialog = _dialog;
1452
+ this.config = null;
1453
+ this.apiLogStates = indexNameValue(ApiLogStates);
1454
+ }
1455
+ ApiLogsComponent.prototype.ngOnInit = function () {
1456
+ this._configList();
1457
+ };
1458
+ ApiLogsComponent.prototype._configList = function () {
1459
+ var _this = this;
1460
+ this.config = {
1461
+ filters: [
1462
+ {
1463
+ type: filter.ItemType.Keyword,
1464
+ name: 'keyword',
1465
+ label: 'Search'
1466
+ },
1467
+ {
1468
+ type: filter.ItemType.Select,
1469
+ name: 'state',
1470
+ label: 'Status',
1471
+ values: ApiLogStates
1472
+ },
1473
+ {
1474
+ name: 'createDate',
1475
+ type: filter.ItemType.DateRange,
1476
+ label: ['From Date', 'To Date'],
1477
+ }
1478
+ ],
1479
+ fetch: function (query) {
1480
+ Object.assign(query, {});
1481
+ return _this.loadApiLogs(query)
1482
+ .pipe(operators.map(function (response) { return ({ data: response.data, paging: response.paging }); }));
1483
+ }
1484
+ };
1485
+ };
1486
+ ApiLogsComponent.prototype.open = function (apiLog) {
1487
+ this._dialog.open(ApiLogComponent, {
1488
+ data: { apiLog: apiLog },
1489
+ width: '85%'
1490
+ });
1491
+ };
1492
+ return ApiLogsComponent;
1493
+ }());
1494
+ ApiLogsComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ApiLogsComponent, deps: [{ token: i1__namespace$1.MatDialog }], target: i0__namespace.ɵɵFactoryTarget.Component });
1495
+ ApiLogsComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ApiLogsComponent, selector: "fs-system-api-logs", inputs: { loadApiLogs: "loadApiLogs" }, viewQueries: [{ propertyName: "list", first: true, predicate: i2$3.FsListComponent, descendants: true, static: true }], ngImport: i0__namespace, 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 <mat-icon class=\"direction\" *ngIf=\"row.direction=='outgoing'\">arrow_upward</mat-icon>\n <mat-icon class=\"direction\" *ngIf=\"row.direction=='incoming'\">arrow_downward</mat-icon>\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 <span *ngIf=\"row.code\" class=\"code\" [ngClass]=\"{'success': row.code==200,'error': row.code!=200 }\">[{{row.code}}]</span>\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><small *ngIf=\"row.length\">Duration: {{ row.length | fsDateDuration }}</small></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"], components: [{ type: i2__namespace$3.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { type: i6__namespace.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i4__namespace$2.FsDateAgoComponent, selector: "fs-date-ago", inputs: ["date", "showTime", "format", "showTooltip", "tooltipDateFormat"] }], directives: [{ type: i2__namespace$3.FsListColumnDirective, selector: "fs-list-column", inputs: ["title", "name", "show", "customize", "sortable", "sortableDefault", "direction", "align", "width", "class"] }, { type: i2__namespace$3.FsListHeaderDirective, selector: "[fs-list-header]", inputs: ["colspan", "align", "class"] }, { type: i2__namespace$3.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }, { type: i9__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i10__namespace.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }], pipes: { "fsDateDuration": i4__namespace$2.FsDateDurationPipe } });
1496
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ApiLogsComponent, decorators: [{
1497
+ type: i0.Component,
1498
+ args: [{
1499
+ selector: 'fs-system-api-logs',
1500
+ templateUrl: './api-logs.component.html',
1501
+ styleUrls: ['./api-logs.component.scss']
1502
+ }]
1503
+ }], ctorParameters: function () { return [{ type: i1__namespace$1.MatDialog }]; }, propDecorators: { list: [{
1504
+ type: i0.ViewChild,
1505
+ args: [i2$3.FsListComponent, { static: true }]
1506
+ }], loadApiLogs: [{
1507
+ type: i0.Input
1506
1508
  }] } });
1507
1509
 
1508
- var InfoComponent = /** @class */ (function () {
1509
- function InfoComponent() {
1510
- }
1511
- InfoComponent.prototype.ngAfterViewInit = function () {
1512
- this._load();
1513
- };
1514
- InfoComponent.prototype._load = function () {
1515
- var _this = this;
1516
- this.load()
1517
- .subscribe(function (info) {
1518
- info += '<style>body { background: transparent; }</style>';
1519
- var doc = _this.iframe.nativeElement.contentDocument || _this.iframe.nativeElement.contentWindow;
1520
- doc.open();
1521
- doc.write(info);
1522
- doc.close();
1523
- var scrollHeight = (_this.iframe.nativeElement.contentWindow.document.documentElement.scrollHeight + 100);
1524
- _this.iframe.nativeElement.style.height = scrollHeight + "px";
1525
- });
1526
- };
1527
- return InfoComponent;
1528
- }());
1529
- InfoComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: InfoComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
1530
- InfoComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: InfoComponent, selector: "fs-system-info", inputs: { load: "load" }, viewQueries: [{ propertyName: "iframe", first: true, predicate: ["iframe"], descendants: true }], ngImport: i0__namespace, template: "<iframe #iframe></iframe>\n", styles: ["iframe{width:100%;border:0}\n"], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1531
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: InfoComponent, decorators: [{
1532
- type: i0.Component,
1533
- args: [{
1534
- selector: 'fs-system-info',
1535
- templateUrl: 'info.component.html',
1536
- styleUrls: ['info.component.scss'],
1537
- changeDetection: i0.ChangeDetectionStrategy.OnPush,
1538
- }]
1539
- }], propDecorators: { iframe: [{
1540
- type: i0.ViewChild,
1541
- args: ['iframe']
1542
- }], load: [{
1543
- type: i0.Input
1510
+ var InfoComponent = /** @class */ (function () {
1511
+ function InfoComponent() {
1512
+ }
1513
+ InfoComponent.prototype.ngAfterViewInit = function () {
1514
+ this._load();
1515
+ };
1516
+ InfoComponent.prototype._load = function () {
1517
+ var _this = this;
1518
+ this.load()
1519
+ .subscribe(function (info) {
1520
+ info += '<style>body { background: transparent; }</style>';
1521
+ var doc = _this.iframe.nativeElement.contentDocument || _this.iframe.nativeElement.contentWindow;
1522
+ doc.open();
1523
+ doc.write(info);
1524
+ doc.close();
1525
+ var scrollHeight = (_this.iframe.nativeElement.contentWindow.document.documentElement.scrollHeight + 100);
1526
+ _this.iframe.nativeElement.style.height = scrollHeight + "px";
1527
+ });
1528
+ };
1529
+ return InfoComponent;
1530
+ }());
1531
+ InfoComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: InfoComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
1532
+ InfoComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: InfoComponent, selector: "fs-system-info", inputs: { load: "load" }, viewQueries: [{ propertyName: "iframe", first: true, predicate: ["iframe"], descendants: true }], ngImport: i0__namespace, template: "<iframe #iframe></iframe>\r\n", styles: ["iframe{width:100%;border:0}\n"], changeDetection: i0__namespace.ChangeDetectionStrategy.OnPush });
1533
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: InfoComponent, decorators: [{
1534
+ type: i0.Component,
1535
+ args: [{
1536
+ selector: 'fs-system-info',
1537
+ templateUrl: 'info.component.html',
1538
+ styleUrls: ['info.component.scss'],
1539
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
1540
+ }]
1541
+ }], propDecorators: { iframe: [{
1542
+ type: i0.ViewChild,
1543
+ args: ['iframe']
1544
+ }], load: [{
1545
+ type: i0.Input
1544
1546
  }] } });
1545
1547
 
1546
- var FsSystemModule = /** @class */ (function () {
1547
- function FsSystemModule() {
1548
- }
1549
- FsSystemModule.forRoot = function (config) {
1550
- return {
1551
- ngModule: FsSystemModule,
1552
- providers: [
1553
- { provide: FS_SYSTEM_CONFIG, useValue: config || {} },
1554
- ]
1555
- };
1556
- };
1557
- return FsSystemModule;
1558
- }());
1559
- FsSystemModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsSystemModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
1560
- FsSystemModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsSystemModule, declarations: [DashboardComponent,
1561
- CronsComponent,
1562
- SettingsComponent,
1563
- KeyNameValuePipe,
1564
- FileManagerComponent,
1565
- ProcessesComponent,
1566
- ServerLogComponent,
1567
- ServerLogsComponent,
1568
- UpgradeLogsComponent,
1569
- ApiLogsComponent,
1570
- ApiLogComponent,
1571
- InfoComponent,
1572
- ProcessComponent,
1573
- CronComponent,
1574
- CronLogComponent], imports: [i9.CommonModule,
1575
- flexLayout.FlexLayoutModule,
1576
- i17.FormsModule,
1577
- i4.MatButtonModule,
1578
- i4$3.MatExpansionModule,
1579
- i11.MatTooltipModule,
1580
- i6.MatIconModule,
1581
- i7.MatFormFieldModule,
1582
- i16.MatInputModule,
1583
- i8.MatSelectModule,
1584
- i1$1.MatDialogModule,
1585
- i3.MatTabsModule,
1586
- i4$2.FsDateModule,
1587
- i5.FsSkeletonModule,
1588
- i2$3.FsListModule,
1589
- i12.FsFileModule,
1590
- i1$2.FsFileManagerModule,
1591
- i2$1.FsLabelModule,
1592
- i2$2.FsDialogModule,
1593
- i10$1.FsDatePickerModule,
1594
- i4$1.FsMenuModule,
1595
- i5$1.FsPopoverModule,
1596
- i11$1.FsColorPickerModule], exports: [DashboardComponent,
1597
- CronsComponent,
1598
- SettingsComponent,
1599
- FileManagerComponent,
1600
- ProcessesComponent,
1601
- ServerLogsComponent,
1602
- UpgradeLogsComponent,
1603
- ApiLogsComponent,
1604
- InfoComponent] });
1605
- FsSystemModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsSystemModule, imports: [[
1606
- i9.CommonModule,
1607
- flexLayout.FlexLayoutModule,
1608
- i17.FormsModule,
1609
- i4.MatButtonModule,
1610
- i4$3.MatExpansionModule,
1611
- i11.MatTooltipModule,
1612
- i6.MatIconModule,
1613
- i7.MatFormFieldModule,
1614
- i16.MatInputModule,
1615
- i8.MatSelectModule,
1616
- i1$1.MatDialogModule,
1617
- i3.MatTabsModule,
1618
- i4$2.FsDateModule,
1619
- i5.FsSkeletonModule,
1620
- i2$3.FsListModule,
1621
- i12.FsFileModule,
1622
- i1$2.FsFileManagerModule,
1623
- i2$1.FsLabelModule,
1624
- i2$2.FsDialogModule,
1625
- i10$1.FsDatePickerModule,
1626
- i4$1.FsMenuModule,
1627
- i5$1.FsPopoverModule,
1628
- i11$1.FsColorPickerModule,
1629
- ]] });
1630
- i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsSystemModule, decorators: [{
1631
- type: i0.NgModule,
1632
- args: [{
1633
- imports: [
1634
- i9.CommonModule,
1635
- flexLayout.FlexLayoutModule,
1636
- i17.FormsModule,
1637
- i4.MatButtonModule,
1638
- i4$3.MatExpansionModule,
1639
- i11.MatTooltipModule,
1640
- i6.MatIconModule,
1641
- i7.MatFormFieldModule,
1642
- i16.MatInputModule,
1643
- i8.MatSelectModule,
1644
- i1$1.MatDialogModule,
1645
- i3.MatTabsModule,
1646
- i4$2.FsDateModule,
1647
- i5.FsSkeletonModule,
1648
- i2$3.FsListModule,
1649
- i12.FsFileModule,
1650
- i1$2.FsFileManagerModule,
1651
- i2$1.FsLabelModule,
1652
- i2$2.FsDialogModule,
1653
- i10$1.FsDatePickerModule,
1654
- i4$1.FsMenuModule,
1655
- i5$1.FsPopoverModule,
1656
- i11$1.FsColorPickerModule,
1657
- ],
1658
- exports: [
1659
- DashboardComponent,
1660
- CronsComponent,
1661
- SettingsComponent,
1662
- FileManagerComponent,
1663
- ProcessesComponent,
1664
- ServerLogsComponent,
1665
- UpgradeLogsComponent,
1666
- ApiLogsComponent,
1667
- InfoComponent,
1668
- ],
1669
- declarations: [
1670
- DashboardComponent,
1671
- CronsComponent,
1672
- SettingsComponent,
1673
- KeyNameValuePipe,
1674
- FileManagerComponent,
1675
- ProcessesComponent,
1676
- ServerLogComponent,
1677
- ServerLogsComponent,
1678
- UpgradeLogsComponent,
1679
- ApiLogsComponent,
1680
- ApiLogComponent,
1681
- InfoComponent,
1682
- ProcessComponent,
1683
- CronComponent,
1684
- CronLogComponent,
1685
- ],
1686
- }]
1548
+ var FsSystemModule = /** @class */ (function () {
1549
+ function FsSystemModule() {
1550
+ }
1551
+ FsSystemModule.forRoot = function (config) {
1552
+ return {
1553
+ ngModule: FsSystemModule,
1554
+ providers: [
1555
+ { provide: FS_SYSTEM_CONFIG, useValue: config || {} },
1556
+ ]
1557
+ };
1558
+ };
1559
+ return FsSystemModule;
1560
+ }());
1561
+ FsSystemModule.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsSystemModule, deps: [], target: i0__namespace.ɵɵFactoryTarget.NgModule });
1562
+ FsSystemModule.ɵmod = i0__namespace.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsSystemModule, declarations: [DashboardComponent,
1563
+ CronsComponent,
1564
+ SettingsComponent,
1565
+ KeyNameValuePipe,
1566
+ FileManagerComponent,
1567
+ ProcessesComponent,
1568
+ ServerLogComponent,
1569
+ ServerLogsComponent,
1570
+ UpgradeLogsComponent,
1571
+ ApiLogsComponent,
1572
+ ApiLogComponent,
1573
+ InfoComponent,
1574
+ ProcessComponent,
1575
+ CronComponent,
1576
+ CronLogComponent], imports: [i9.CommonModule,
1577
+ flexLayout.FlexLayoutModule,
1578
+ i17.FormsModule,
1579
+ i4.MatButtonModule,
1580
+ i4$3.MatExpansionModule,
1581
+ i11.MatTooltipModule,
1582
+ i6.MatIconModule,
1583
+ i7.MatFormFieldModule,
1584
+ i16.MatInputModule,
1585
+ i8.MatSelectModule,
1586
+ i1$1.MatDialogModule,
1587
+ i3.MatTabsModule,
1588
+ i4$2.FsDateModule,
1589
+ i5.FsSkeletonModule,
1590
+ i2$3.FsListModule,
1591
+ i12.FsFileModule,
1592
+ i1$2.FsFileManagerModule,
1593
+ i2$1.FsLabelModule,
1594
+ i2$2.FsDialogModule,
1595
+ i10$1.FsDatePickerModule,
1596
+ i4$1.FsMenuModule,
1597
+ i5$1.FsPopoverModule,
1598
+ i11$1.FsColorPickerModule], exports: [DashboardComponent,
1599
+ CronsComponent,
1600
+ SettingsComponent,
1601
+ FileManagerComponent,
1602
+ ProcessesComponent,
1603
+ ServerLogsComponent,
1604
+ UpgradeLogsComponent,
1605
+ ApiLogsComponent,
1606
+ InfoComponent] });
1607
+ FsSystemModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsSystemModule, imports: [[
1608
+ i9.CommonModule,
1609
+ flexLayout.FlexLayoutModule,
1610
+ i17.FormsModule,
1611
+ i4.MatButtonModule,
1612
+ i4$3.MatExpansionModule,
1613
+ i11.MatTooltipModule,
1614
+ i6.MatIconModule,
1615
+ i7.MatFormFieldModule,
1616
+ i16.MatInputModule,
1617
+ i8.MatSelectModule,
1618
+ i1$1.MatDialogModule,
1619
+ i3.MatTabsModule,
1620
+ i4$2.FsDateModule,
1621
+ i5.FsSkeletonModule,
1622
+ i2$3.FsListModule,
1623
+ i12.FsFileModule,
1624
+ i1$2.FsFileManagerModule,
1625
+ i2$1.FsLabelModule,
1626
+ i2$2.FsDialogModule,
1627
+ i10$1.FsDatePickerModule,
1628
+ i4$1.FsMenuModule,
1629
+ i5$1.FsPopoverModule,
1630
+ i11$1.FsColorPickerModule,
1631
+ ]] });
1632
+ i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: FsSystemModule, decorators: [{
1633
+ type: i0.NgModule,
1634
+ args: [{
1635
+ imports: [
1636
+ i9.CommonModule,
1637
+ flexLayout.FlexLayoutModule,
1638
+ i17.FormsModule,
1639
+ i4.MatButtonModule,
1640
+ i4$3.MatExpansionModule,
1641
+ i11.MatTooltipModule,
1642
+ i6.MatIconModule,
1643
+ i7.MatFormFieldModule,
1644
+ i16.MatInputModule,
1645
+ i8.MatSelectModule,
1646
+ i1$1.MatDialogModule,
1647
+ i3.MatTabsModule,
1648
+ i4$2.FsDateModule,
1649
+ i5.FsSkeletonModule,
1650
+ i2$3.FsListModule,
1651
+ i12.FsFileModule,
1652
+ i1$2.FsFileManagerModule,
1653
+ i2$1.FsLabelModule,
1654
+ i2$2.FsDialogModule,
1655
+ i10$1.FsDatePickerModule,
1656
+ i4$1.FsMenuModule,
1657
+ i5$1.FsPopoverModule,
1658
+ i11$1.FsColorPickerModule,
1659
+ ],
1660
+ exports: [
1661
+ DashboardComponent,
1662
+ CronsComponent,
1663
+ SettingsComponent,
1664
+ FileManagerComponent,
1665
+ ProcessesComponent,
1666
+ ServerLogsComponent,
1667
+ UpgradeLogsComponent,
1668
+ ApiLogsComponent,
1669
+ InfoComponent,
1670
+ ],
1671
+ declarations: [
1672
+ DashboardComponent,
1673
+ CronsComponent,
1674
+ SettingsComponent,
1675
+ KeyNameValuePipe,
1676
+ FileManagerComponent,
1677
+ ProcessesComponent,
1678
+ ServerLogComponent,
1679
+ ServerLogsComponent,
1680
+ UpgradeLogsComponent,
1681
+ ApiLogsComponent,
1682
+ ApiLogComponent,
1683
+ InfoComponent,
1684
+ ProcessComponent,
1685
+ CronComponent,
1686
+ CronLogComponent,
1687
+ ],
1688
+ }]
1687
1689
  }] });
1688
1690
 
1689
- /**
1690
- * Generated bundle index. Do not edit.
1691
+ /**
1692
+ * Generated bundle index. Do not edit.
1691
1693
  */
1692
1694
 
1693
1695
  exports.ApiLogComponent = ApiLogComponent;