@firestitch/system 9.2.0 → 12.0.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.
- package/app/components/api-log/api-log.component.d.ts +13 -10
- package/app/components/api-log/index.d.ts +1 -0
- package/app/components/api-logs/api-logs.component.d.ts +23 -18
- package/app/components/api-logs/index.d.ts +1 -0
- package/app/components/cron/cron.component.d.ts +24 -21
- package/app/components/cron/index.d.ts +1 -1
- package/app/components/cron-log/cron-log.component.d.ts +12 -9
- package/app/components/cron-log/index.d.ts +1 -1
- package/app/components/crons/crons.component.d.ts +38 -33
- package/app/components/crons/index.d.ts +1 -0
- package/app/components/dashboard/dashboard.component.d.ts +30 -25
- package/app/components/dashboard/index.d.ts +1 -0
- package/app/components/file-manager/file-manager.component.d.ts +17 -14
- package/app/components/file-manager/index.d.ts +1 -0
- package/app/components/info/index.d.ts +1 -0
- package/app/components/info/info.component.d.ts +11 -8
- package/app/components/process/index.d.ts +1 -0
- package/app/components/process/process.component.d.ts +16 -13
- package/app/components/processes/index.d.ts +1 -0
- package/app/components/processes/processes.component.d.ts +36 -31
- package/app/components/server-log/index.d.ts +1 -0
- package/app/components/server-log/server-log.component.d.ts +10 -7
- package/app/components/server-logs/index.d.ts +1 -0
- package/app/components/server-logs/server-logs.component.d.ts +23 -18
- package/app/components/settings/index.d.ts +1 -0
- package/app/components/settings/settings.component.d.ts +32 -27
- package/app/components/upgrade-logs/index.d.ts +1 -0
- package/app/components/upgrade-logs/upgrade-logs.component.d.ts +20 -14
- package/app/consts/api-log-states.const.d.ts +5 -5
- package/app/consts/cron-log-states.const.d.ts +6 -6
- package/app/consts/cron-states.const.d.ts +5 -5
- package/app/consts/index.d.ts +3 -3
- package/app/consts/process-states.const.d.ts +5 -5
- package/app/enums/api-log-state.enum.d.ts +5 -5
- package/app/enums/cron-log-state.enum.d.ts +13 -13
- package/app/enums/cron-state.enum.d.ts +7 -7
- package/app/enums/index.d.ts +5 -5
- package/app/enums/process-state.enum.d.ts +8 -8
- package/app/enums/setting-interface-type.enum.d.ts +11 -12
- package/app/fs-system.module.d.ts +46 -5
- package/app/helpers/index-name-value.d.ts +1 -1
- package/app/injectors/system-config.injector.d.ts +2 -2
- package/app/interfaces/dashboard-action.d.ts +5 -5
- package/app/interfaces/index.d.ts +3 -3
- package/app/interfaces/process-action.d.ts +6 -6
- package/app/interfaces/system-config.d.ts +3 -2
- package/app/pipes/key-name-value.pipe.d.ts +8 -4
- package/app/services/index.d.ts +1 -0
- package/app/services/system.service.d.ts +10 -0
- package/bundles/firestitch-system.umd.js +1625 -1425
- package/bundles/firestitch-system.umd.js.map +1 -1
- package/esm2015/app/components/api-log/api-log.component.js +38 -31
- package/esm2015/app/components/api-log/index.js +2 -0
- package/esm2015/app/components/api-logs/api-logs.component.js +75 -73
- package/esm2015/app/components/api-logs/index.js +2 -0
- package/esm2015/app/components/cron/cron.component.js +103 -96
- package/esm2015/app/components/cron/index.js +2 -2
- package/esm2015/app/components/cron-log/cron-log.component.js +41 -33
- package/esm2015/app/components/cron-log/index.js +2 -2
- package/esm2015/app/components/crons/crons.component.js +191 -206
- package/esm2015/app/components/crons/index.js +2 -0
- package/esm2015/app/components/dashboard/dashboard.component.js +94 -93
- package/esm2015/app/components/dashboard/index.js +2 -0
- package/esm2015/app/components/file-manager/file-manager.component.js +54 -64
- package/esm2015/app/components/file-manager/index.js +2 -0
- package/esm2015/app/components/info/index.js +2 -0
- package/esm2015/app/components/info/info.component.js +36 -37
- package/esm2015/app/components/process/index.js +2 -0
- package/esm2015/app/components/process/process.component.js +49 -42
- package/esm2015/app/components/processes/index.js +2 -0
- package/esm2015/app/components/processes/processes.component.js +167 -178
- package/esm2015/app/components/server-log/index.js +2 -0
- package/esm2015/app/components/server-log/server-log.component.js +42 -34
- package/esm2015/app/components/server-logs/index.js +2 -0
- package/esm2015/app/components/server-logs/server-logs.component.js +60 -59
- package/esm2015/app/components/settings/index.js +2 -0
- package/esm2015/app/components/settings/settings.component.js +130 -128
- package/esm2015/app/components/upgrade-logs/index.js +2 -0
- package/esm2015/app/components/upgrade-logs/upgrade-logs.component.js +51 -47
- package/esm2015/app/consts/api-log-states.const.js +7 -7
- package/esm2015/app/consts/cron-log-states.const.js +15 -15
- package/esm2015/app/consts/cron-states.const.js +9 -9
- package/esm2015/app/consts/index.js +4 -4
- package/esm2015/app/consts/process-states.const.js +10 -10
- package/esm2015/app/enums/api-log-state.enum.js +7 -7
- package/esm2015/app/enums/cron-log-state.enum.js +15 -15
- package/esm2015/app/enums/cron-state.enum.js +9 -9
- package/esm2015/app/enums/index.js +6 -6
- package/esm2015/app/enums/process-state.enum.js +10 -10
- package/esm2015/app/enums/setting-interface-type.enum.js +13 -14
- package/esm2015/app/fs-system.module.js +183 -109
- package/esm2015/app/helpers/index-name-value.js +8 -8
- package/esm2015/app/injectors/system-config.injector.js +3 -3
- package/esm2015/app/interfaces/dashboard-action.js +2 -1
- package/esm2015/app/interfaces/index.js +4 -1
- package/esm2015/app/interfaces/process-action.js +2 -1
- package/esm2015/app/interfaces/system-config.js +2 -1
- package/esm2015/app/pipes/key-name-value.pipe.js +21 -17
- package/esm2015/app/services/index.js +2 -0
- package/esm2015/app/services/system.service.js +42 -0
- package/esm2015/firestitch-system.js +5 -20
- package/esm2015/public_api.js +20 -5
- package/fesm2015/firestitch-system.js +1234 -1174
- package/fesm2015/firestitch-system.js.map +1 -1
- package/firestitch-system.d.ts +5 -19
- package/package.json +5 -9
- package/public_api.d.ts +20 -5
- package/bundles/firestitch-system.umd.min.js +0 -16
- package/bundles/firestitch-system.umd.min.js.map +0 -1
- package/esm5/app/components/api-log/api-log.component.js +0 -32
- package/esm5/app/components/api-logs/api-logs.component.js +0 -75
- package/esm5/app/components/cron/cron.component.js +0 -98
- package/esm5/app/components/cron/index.js +0 -2
- package/esm5/app/components/cron-log/cron-log.component.js +0 -34
- package/esm5/app/components/cron-log/index.js +0 -2
- package/esm5/app/components/crons/crons.component.js +0 -209
- package/esm5/app/components/dashboard/dashboard.component.js +0 -98
- package/esm5/app/components/file-manager/file-manager.component.js +0 -67
- package/esm5/app/components/info/info.component.js +0 -41
- package/esm5/app/components/process/process.component.js +0 -44
- package/esm5/app/components/processes/processes.component.js +0 -180
- package/esm5/app/components/server-log/server-log.component.js +0 -35
- package/esm5/app/components/server-logs/server-logs.component.js +0 -61
- package/esm5/app/components/settings/settings.component.js +0 -132
- package/esm5/app/components/upgrade-logs/upgrade-logs.component.js +0 -49
- package/esm5/app/consts/api-log-states.const.js +0 -7
- package/esm5/app/consts/cron-log-states.const.js +0 -15
- package/esm5/app/consts/cron-states.const.js +0 -9
- package/esm5/app/consts/index.js +0 -4
- package/esm5/app/consts/process-states.const.js +0 -10
- package/esm5/app/enums/api-log-state.enum.js +0 -7
- package/esm5/app/enums/cron-log-state.enum.js +0 -15
- package/esm5/app/enums/cron-state.enum.js +0 -9
- package/esm5/app/enums/index.js +0 -6
- package/esm5/app/enums/process-state.enum.js +0 -10
- package/esm5/app/enums/setting-interface-type.enum.js +0 -14
- package/esm5/app/fs-system.module.js +0 -113
- package/esm5/app/helpers/index-name-value.js +0 -8
- package/esm5/app/injectors/system-config.injector.js +0 -3
- package/esm5/app/interfaces/dashboard-action.js +0 -1
- package/esm5/app/interfaces/index.js +0 -1
- package/esm5/app/interfaces/process-action.js +0 -1
- package/esm5/app/interfaces/system-config.js +0 -1
- package/esm5/app/pipes/key-name-value.pipe.js +0 -20
- package/esm5/firestitch-system.js +0 -20
- package/esm5/public_api.js +0 -5
- package/fesm5/firestitch-system.js +0 -1281
- package/fesm5/firestitch-system.js.map +0 -1
- package/firestitch-system.metadata.json +0 -1
|
@@ -1,34 +1,42 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
1
|
+
import { Component, Inject } from '@angular/core';
|
|
2
|
+
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@firestitch/dialog";
|
|
5
|
+
import * as i2 from "@firestitch/label";
|
|
6
|
+
import * as i3 from "@angular/material/button";
|
|
7
|
+
import * as i4 from "@firestitch/skeleton";
|
|
8
|
+
import * as i5 from "@angular/material/dialog";
|
|
9
|
+
import * as i6 from "@angular/flex-layout/flex";
|
|
10
|
+
import * as i7 from "@firestitch/date";
|
|
11
|
+
import * as i8 from "@angular/common";
|
|
12
|
+
export class ServerLogComponent {
|
|
13
|
+
constructor(data) {
|
|
14
|
+
this.data = data;
|
|
15
|
+
}
|
|
16
|
+
ngOnInit() {
|
|
17
|
+
if (this.data.log) {
|
|
18
|
+
this.log = this.data.log;
|
|
19
|
+
try {
|
|
20
|
+
this.log.backtrace = JSON.parse(this.log.backtrace);
|
|
21
|
+
}
|
|
22
|
+
catch (e) { }
|
|
23
|
+
try {
|
|
24
|
+
this.log.server = JSON.parse(this.log.server);
|
|
25
|
+
}
|
|
26
|
+
catch (e) { }
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
ServerLogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ServerLogComponent, deps: [{ token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
31
|
+
ServerLogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ServerLogComponent, selector: "ng-component", ngImport: i0, 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: i1.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: i2.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["bottomMargin", "topMargin", "labelMargin"] }, { type: i2.FsLabelComponent, selector: "fs-label" }, { type: i3.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: i4.FsSkeletonContentDirective, selector: "[fsSkeleton]", inputs: ["fsSkeleton", "fsSkeletonPattern"] }, { type: i5.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i5.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i6.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: i5.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i5.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }], pipes: { "fsDateFormat": i7.FsDateFormatPipe, "json": i8.JsonPipe } });
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ServerLogComponent, decorators: [{
|
|
33
|
+
type: Component,
|
|
34
|
+
args: [{
|
|
35
|
+
templateUrl: './server-log.component.html',
|
|
36
|
+
styleUrls: ['./server-log.component.scss']
|
|
37
|
+
}]
|
|
38
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
39
|
+
type: Inject,
|
|
40
|
+
args: [MAT_DIALOG_DATA]
|
|
41
|
+
}] }]; } });
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvc2VydmVyLWxvZy9zZXJ2ZXItbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9zZXJ2ZXItbG9nL3NlcnZlci1sb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7O0FBTzNELE1BQU0sT0FBTyxrQkFBa0I7SUFJN0IsWUFBNEMsSUFBSTtRQUFKLFNBQUksR0FBSixJQUFJLENBQUE7SUFBRyxDQUFDO0lBRTdDLFFBQVE7UUFFYixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7WUFFekIsSUFBSTtnQkFDRixJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDckQ7WUFBQyxPQUFPLENBQUMsRUFBRSxHQUFFO1lBRWQsSUFBSTtnQkFDRixJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDL0M7WUFBQyxPQUFPLENBQUMsRUFBRSxHQUFFO1NBQ2Y7SUFDSCxDQUFDOztnSEFuQlUsa0JBQWtCLGtCQUlULGVBQWU7b0dBSnhCLGtCQUFrQixvRENSL0IsK3lDQTBEQTs0RkRsRGEsa0JBQWtCO2tCQUo5QixTQUFTO21CQUFDO29CQUNULFdBQVcsRUFBRSw2QkFBNkI7b0JBQzFDLFNBQVMsRUFBRSxDQUFDLDZCQUE2QixDQUFDO2lCQUMzQzs7MEJBS2MsTUFBTTsyQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL3NlcnZlci1sb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZXJ2ZXItbG9nLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2VydmVyTG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBwdWJsaWMgbG9nO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YSkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG5cbiAgICBpZiAodGhpcy5kYXRhLmxvZykge1xuICAgICAgdGhpcy5sb2cgPSB0aGlzLmRhdGEubG9nO1xuXG4gICAgICB0cnkge1xuICAgICAgICB0aGlzLmxvZy5iYWNrdHJhY2UgPSBKU09OLnBhcnNlKHRoaXMubG9nLmJhY2t0cmFjZSk7XG4gICAgICB9IGNhdGNoIChlKSB7fVxuXG4gICAgICB0cnkge1xuICAgICAgICB0aGlzLmxvZy5zZXJ2ZXIgPSBKU09OLnBhcnNlKHRoaXMubG9nLnNlcnZlcik7XG4gICAgICB9IGNhdGNoIChlKSB7fVxuICAgIH1cbiAgfVxufVxuIiwiPGZzLWRpYWxvZyAqZnNTa2VsZXRvbj1cImxvZ1wiPlxuICA8ZGl2IG1hdC1kaWFsb2ctdGl0bGU+TG9nPC9kaXY+XG4gIDxtYXQtZGlhbG9nLWNvbnRlbnQ+XG4gICAgPGRpdiBmeExheW91dD1cImNvbHVtblwiPlxuICAgICAgPGZzLWxhYmVsLWZpZWxkPlxuICAgICAgICA8ZnMtbGFiZWw+XG4gICAgICAgICAgRXJyb3IgVHlwZVxuICAgICAgICA8L2ZzLWxhYmVsPlxuICAgICAgICB7e2xvZy50eXBlfX1cbiAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG5cbiAgICAgIDxmcy1sYWJlbC1maWVsZD5cbiAgICAgICAgPGZzLWxhYmVsPlxuICAgICAgICAgIE1lc3NhZ2VcbiAgICAgICAgPC9mcy1sYWJlbD5cbiAgICAgICAge3tsb2cubWVzc2FnZX19XG4gICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxuXG4gICAgICA8ZnMtbGFiZWwtZmllbGQ+XG4gICAgICAgIDxmcy1sYWJlbD5cbiAgICAgICAgICBVUkxcbiAgICAgICAgPC9mcy1sYWJlbD5cbiAgICAgICAge3tsb2cudXJsfX1cbiAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG5cbiAgICAgIDxmcy1sYWJlbC1maWVsZD5cbiAgICAgICAgPGZzLWxhYmVsPlxuICAgICAgICAgIERhdGVcbiAgICAgICAgPC9mcy1sYWJlbD5cbiAgICAgICAge3tsb2cuY3JlYXRlRGF0ZXxmc0RhdGVGb3JtYXQ6ICdmdWxsLWRhdGUtdGltZSd9fVxuICAgICAgPC9mcy1sYWJlbC1maWVsZD5cblxuICAgICAgPGZzLWxhYmVsLWZpZWxkPlxuICAgICAgICA8ZnMtbGFiZWw+XG4gICAgICAgICAgRmlsZVxuICAgICAgICA8L2ZzLWxhYmVsPlxuICAgICAgICB7e2xvZy5maWxlfX0gQCB7e2xvZy5saW5lfX1cbiAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG5cbiAgICAgIDxmcy1sYWJlbC1maWVsZD5cbiAgICAgICAgPGZzLWxhYmVsPlxuICAgICAgICAgIEJhY2t0cmFjZVxuICAgICAgICA8L2ZzLWxhYmVsPlxuICAgICAgICA8cHJlPnt7bG9nLmJhY2t0cmFjZXxqc29ufX08L3ByZT5cbiAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG5cbiAgICAgIDxmcy1sYWJlbC1maWVsZD5cbiAgICAgICAgPGZzLWxhYmVsPlxuICAgICAgICAgICRfU0VSVkVSXG4gICAgICAgIDwvZnMtbGFiZWw+XG4gICAgICAgIDxwcmU+e3tsb2cuc2VydmVyfGpzb259fTwvcHJlPlxuICAgICAgPC9mcy1sYWJlbC1maWVsZD5cbiAgICA8L2Rpdj5cbiAgPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG4gIDxtYXQtZGlhbG9nLWFjdGlvbnM+XG4gICAgPGJ1dHRvbiBtYXQtYnV0dG9uIFttYXQtZGlhbG9nLWNsb3NlXT1cInRydWVcIiBjb2xvcj1cInByaW1hcnlcIj5Eb25lPC9idXR0b24+XG4gIDwvbWF0LWRpYWxvZy1hY3Rpb25zPlxuPC9mcy1kaWFsb2c+XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './server-logs.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvc2VydmVyLWxvZ3MvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2VydmVyLWxvZ3MuY29tcG9uZW50JztcbiJdfQ==
|
|
@@ -1,59 +1,60 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Component, ViewChild, Input } from '@angular/core';
|
|
3
|
-
import { FsListComponent } from '@firestitch/list';
|
|
4
|
-
import { map } from 'rxjs/operators';
|
|
5
|
-
import { ItemType } from '@firestitch/filter';
|
|
6
|
-
import { MatDialog } from '@angular/material/dialog';
|
|
7
|
-
import { ServerLogComponent } from '../server-log/server-log.component';
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
this.
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
this.
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
],
|
|
58
|
-
|
|
59
|
-
|
|
1
|
+
import { SystemService } from './../../services/system.service';
|
|
2
|
+
import { Component, ViewChild, Input } from '@angular/core';
|
|
3
|
+
import { FsListComponent } from '@firestitch/list';
|
|
4
|
+
import { map } from 'rxjs/operators';
|
|
5
|
+
import { ItemType } from '@firestitch/filter';
|
|
6
|
+
import { MatDialog } from '@angular/material/dialog';
|
|
7
|
+
import { ServerLogComponent } from '../server-log/server-log.component';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@angular/material/dialog";
|
|
10
|
+
import * as i2 from "./../../services/system.service";
|
|
11
|
+
import * as i3 from "@firestitch/list";
|
|
12
|
+
import * as i4 from "@firestitch/date";
|
|
13
|
+
export class ServerLogsComponent {
|
|
14
|
+
constructor(_dialog, _systemService) {
|
|
15
|
+
this._dialog = _dialog;
|
|
16
|
+
this._systemService = _systemService;
|
|
17
|
+
this.config = null;
|
|
18
|
+
this.logTypes = [];
|
|
19
|
+
}
|
|
20
|
+
ngOnInit() {
|
|
21
|
+
this._configList();
|
|
22
|
+
}
|
|
23
|
+
_configList() {
|
|
24
|
+
this.config = {
|
|
25
|
+
filters: [
|
|
26
|
+
{
|
|
27
|
+
type: ItemType.Keyword,
|
|
28
|
+
name: 'keyword',
|
|
29
|
+
label: 'Search'
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
fetch: query => {
|
|
33
|
+
return this.loadLogs(query)
|
|
34
|
+
.pipe(map((response) => ({ data: this._systemService.input(response.data), paging: response.paging })));
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
open(log) {
|
|
39
|
+
const dialogRef = this._dialog.open(ServerLogComponent, {
|
|
40
|
+
data: { log: log },
|
|
41
|
+
width: '85%'
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
ServerLogsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ServerLogsComponent, deps: [{ token: i1.MatDialog }, { token: i2.SystemService }], target: i0.ɵɵFactoryTarget.Component });
|
|
46
|
+
ServerLogsComponent.ɵcmp = i0.ɵɵ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, 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: i3.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { type: i4.FsDateAgoComponent, selector: "fs-date-ago", inputs: ["date", "showTime", "format", "showTooltip", "tooltipDateFormat"] }], directives: [{ type: i3.FsListColumnDirective, selector: "fs-list-column", inputs: ["title", "name", "show", "customize", "sortable", "sortableDefault", "direction", "align", "width", "class"] }, { type: i3.FsListHeaderDirective, selector: "[fs-list-header]", inputs: ["colspan", "align", "class"] }, { type: i3.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }] });
|
|
47
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ServerLogsComponent, decorators: [{
|
|
48
|
+
type: Component,
|
|
49
|
+
args: [{
|
|
50
|
+
selector: 'fs-system-server-logs',
|
|
51
|
+
templateUrl: './server-logs.component.html',
|
|
52
|
+
styleUrls: ['./server-logs.component.scss']
|
|
53
|
+
}]
|
|
54
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.SystemService }]; }, propDecorators: { list: [{
|
|
55
|
+
type: ViewChild,
|
|
56
|
+
args: ['list', { static: true }]
|
|
57
|
+
}], loadLogs: [{
|
|
58
|
+
type: Input
|
|
59
|
+
}] } });
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLWxvZ3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL3NlcnZlci1sb2dzL3NlcnZlci1sb2dzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9zZXJ2ZXItbG9ncy9zZXJ2ZXItbG9ncy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBVSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXBFLE9BQU8sRUFBZ0IsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7OztBQVN4RSxNQUFNLE9BQU8sbUJBQW1CO0lBUzlCLFlBQ1UsT0FBa0IsRUFDbEIsY0FBNkI7UUFEN0IsWUFBTyxHQUFQLE9BQU8sQ0FBVztRQUNsQixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUxoQyxXQUFNLEdBQWlCLElBQUksQ0FBQztRQUM1QixhQUFRLEdBQUcsRUFBRSxDQUFDO0lBS2pCLENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFTyxXQUFXO1FBRWpCLElBQUksQ0FBQyxNQUFNLEdBQUc7WUFDWixPQUFPLEVBQUU7Z0JBQ1A7b0JBQ0UsSUFBSSxFQUFFLFFBQVEsQ0FBQyxPQUFPO29CQUN0QixJQUFJLEVBQUUsU0FBUztvQkFDZixLQUFLLEVBQUUsUUFBUTtpQkFDaEI7YUFDRjtZQUNELEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRTtnQkFDYixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO3FCQUN4QixJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FDdEcsQ0FBQztZQUNOLENBQUM7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUVNLElBQUksQ0FBQyxHQUFHO1FBQ2IsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDdEQsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRTtZQUNsQixLQUFLLEVBQUUsS0FBSztTQUNiLENBQUMsQ0FBQztJQUNMLENBQUM7O2lIQTFDVSxtQkFBbUI7cUdBQW5CLG1CQUFtQiwyTUNoQmhDLG90QkFvQkE7NEZESmEsbUJBQW1CO2tCQUwvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFdBQVcsRUFBRSw4QkFBOEI7b0JBQzNDLFNBQVMsRUFBRSxDQUFDLDhCQUE4QixDQUFDO2lCQUM1Qzs0SEFHNkMsSUFBSTtzQkFBL0MsU0FBUzt1QkFBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUVuQixRQUFRO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3lzdGVtU2VydmljZSB9IGZyb20gJy4vLi4vLi4vc2VydmljZXMvc3lzdGVtLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRnNMaXN0Q29uZmlnLCBGc0xpc3RDb21wb25lbnQgfSBmcm9tICdAZmlyZXN0aXRjaC9saXN0JztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEl0ZW1UeXBlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvZmlsdGVyJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBTZXJ2ZXJMb2dDb21wb25lbnQgfSBmcm9tICcuLi9zZXJ2ZXItbG9nL3NlcnZlci1sb2cuY29tcG9uZW50JztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmcy1zeXN0ZW0tc2VydmVyLWxvZ3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VydmVyLWxvZ3MuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZXJ2ZXItbG9ncy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNlcnZlckxvZ3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBWaWV3Q2hpbGQoJ2xpc3QnLCB7IHN0YXRpYzogdHJ1ZSB9KSBwdWJsaWMgbGlzdDogRnNMaXN0Q29tcG9uZW50O1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBsb2FkTG9nczogKGRhdGE6IGFueSkgPT4gT2JzZXJ2YWJsZTx7IGRhdGE6IGFueVtdLCBwYWdpbmc6IGFueSB9PjtcblxuICBwdWJsaWMgY29uZmlnOiBGc0xpc3RDb25maWcgPSBudWxsO1xuICBwdWJsaWMgbG9nVHlwZXMgPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9kaWFsb2c6IE1hdERpYWxvZyxcbiAgICBwcml2YXRlIF9zeXN0ZW1TZXJ2aWNlOiBTeXN0ZW1TZXJ2aWNlXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5fY29uZmlnTGlzdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29uZmlnTGlzdCgpIHtcblxuICAgIHRoaXMuY29uZmlnID0ge1xuICAgICAgZmlsdGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogSXRlbVR5cGUuS2V5d29yZCxcbiAgICAgICAgICBuYW1lOiAna2V5d29yZCcsXG4gICAgICAgICAgbGFiZWw6ICdTZWFyY2gnXG4gICAgICAgIH1cbiAgICAgIF0sXG4gICAgICBmZXRjaDogcXVlcnkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2FkTG9ncyhxdWVyeSlcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT4gKHsgZGF0YTogdGhpcy5fc3lzdGVtU2VydmljZS5pbnB1dChyZXNwb25zZS5kYXRhKSwgcGFnaW5nOiByZXNwb25zZS5wYWdpbmcgfSkpXG4gICAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgcHVibGljIG9wZW4obG9nKSB7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5fZGlhbG9nLm9wZW4oU2VydmVyTG9nQ29tcG9uZW50LCB7XG4gICAgICBkYXRhOiB7IGxvZzogbG9nIH0sXG4gICAgICB3aWR0aDogJzg1JSdcbiAgICB9KTtcbiAgfVxufVxuIiwiPGZzLWxpc3QgW2NvbmZpZ109XCJjb25maWdcIj5cbiAgICA8ZnMtbGlzdC1jb2x1bW4+XG4gICAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1oZWFkZXI+TWVzc2FnZTwvbmctdGVtcGxhdGU+XG4gICAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1jZWxsIGxldC1yb3c9XCJyb3dcIj5cbiAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6O1wiIChjbGljayk9XCJvcGVuKHJvdylcIj57e3Jvdy5tZXNzYWdlfX08L2E+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZnMtbGlzdC1jb2x1bW4+XG4gICAgPGZzLWxpc3QtY29sdW1uPlxuICAgICAgPG5nLXRlbXBsYXRlIGZzLWxpc3QtaGVhZGVyPlR5cGU8L25nLXRlbXBsYXRlPlxuICAgICAgPG5nLXRlbXBsYXRlIGZzLWxpc3QtY2VsbCBsZXQtcm93PVwicm93XCI+XG4gICAgICAgIHt7cm93LnR5cGV9fVxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2ZzLWxpc3QtY29sdW1uPlxuICAgIDxmcy1saXN0LWNvbHVtbj5cbiAgICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWhlYWRlcj5EYXRlPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWNlbGwgbGV0LXJvdz1cInJvd1wiPlxuICAgICAgICA8ZnMtZGF0ZS1hZ28gW2RhdGVdPVwicm93LmNyZWF0ZURhdGVcIj48L2ZzLWRhdGUtYWdvPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2ZzLWxpc3QtY29sdW1uPlxuICA8L2ZzLWxpc3Q+XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './settings.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvc2V0dGluZ3MvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2V0dGluZ3MuY29tcG9uZW50JztcbiJdfQ==
|
|
@@ -1,128 +1,130 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { SettingInterfaceType } from '../../enums';
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGZpcmVzdGl0Y2gvc3lzdGVtLyIsInNvdXJjZXMiOlsiYXBwL2NvbXBvbmVudHMvc2V0dGluZ3Mvc2V0dGluZ3MuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVoRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM1QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBVW5ELElBQWEsaUJBQWlCLEdBQTlCLE1BQWEsaUJBQWlCO0lBWTVCLFlBQ1UsUUFBbUIsRUFDbkIsaUJBQW1DLEVBQ25DLE9BQWlCLEVBQ2pCLE1BQXlCO1FBSHpCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUNuQyxZQUFPLEdBQVAsT0FBTyxDQUFVO1FBQ2pCLFdBQU0sR0FBTixNQUFNLENBQW1CO1FBWGxCLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2hDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBZ0MsQ0FBQztRQUV4RSxvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQUNyQixXQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ1oseUJBQW9CLEdBQUcsb0JBQW9CLENBQUM7SUFPL0Ms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UUFDQSxnQkFBZ0I7UUFDMUIsUUFBUTtRQUNULGlCQUFpQjtHQWhCeEIsaUJBQWlCLENBbUc3QjtTQW5HWSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEZzUHJvbXB0IH0gZnJvbSAnQGZpcmVzdGl0Y2gvcHJvbXB0JztcclxuaW1wb3J0IHsgcGFyc2UgfSBmcm9tICdAZmlyZXN0aXRjaC9kYXRlJztcclxuaW1wb3J0IHsgRnNNZXNzYWdlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvbWVzc2FnZSc7XHJcblxyXG5pbXBvcnQgeyBncm91cEJ5LCByZWR1Y2UgfSBmcm9tICdsb2Rhc2gtZXMnO1xyXG5pbXBvcnQgeyBDbGlwYm9hcmRTZXJ2aWNlIH0gZnJvbSAnbmd4LWNsaXBib2FyZCc7XHJcblxyXG5pbXBvcnQgeyBTZXR0aW5nSW50ZXJmYWNlVHlwZSB9IGZyb20gJy4uLy4uL2VudW1zJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZnMtc3lzdGVtLXNldHRpbmdzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2V0dGluZ3MuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3NldHRpbmdzLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZXR0aW5nc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBsb2FkU2V0dGluZ3M6ICgpID0+IE9ic2VydmFibGU8YW55W10+O1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBzYXZlOiAoZGF0YTogYW55LCBncm91cDogc3RyaW5nKSA9PiBPYnNlcnZhYmxlPGFueT47XHJcblxyXG4gIEBPdXRwdXQoKSBwdWJsaWMgZmlsZVJlbW92ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgcHVibGljIGZpbGVTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPHsgc2V0dGluZzogYW55LCBmaWxlOiBCbG9iIH0+KCk7XHJcblxyXG4gIHB1YmxpYyBncm91cGVkU2V0dGluZ3MgPSBbXTtcclxuICBwdWJsaWMgZ3JvdXBzID0gW107XHJcbiAgcHVibGljIFNldHRpbmdJbnRlcmZhY2VUeXBlID0gU2V0dGluZ0ludGVyZmFjZVR5cGU7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfbWVzc2FnZTogRnNNZXNzYWdlLFxyXG4gICAgcHJpdmF0ZSBfY2xpcGJvYXJkU2VydmljZTogQ2xpcGJvYXJkU2VydmljZSxcclxuICAgIHByaXZhdGUgX3Byb21wdDogRnNQcm9tcHQsXHJcbiAgICBwcml2YXRlIF9jZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgKSB7IH1cclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5sb2FkU2V0dGluZ3MoKVxyXG4gICAgICAuc3Vic2NyaWJlKChzZXR0aW5ncykgPT4ge1xyXG4gICAgICAgIHNldHRpbmdzID0gc2V0dGluZ3MubWFwKChzZXR0aW5nKSA9PiB7XHJcbiAgICAgICAgICBzd2l0Y2ggKHNldHRpbmcuaW50ZXJmYWNlVHlwZSkge1xyXG4gICAgICAgICAgICBjYXNlIFNldHRpbmdJbnRlcmZhY2VUeXBlLkRhdGU6XHJcbiAgICAgICAgICAgIGNhc2UgU2V0dGluZ0ludGVyZmFjZVR5cGUuVGltZTpcclxuICAgICAgICAgICAgICBzZXR0aW5nLnZhbHVlID0gcGFyc2Uoc2V0dGluZy52YWx1ZSk7XHJcblxyXG4gICAgICAgICAgICBjYXNlIFNldHRpbmdJbnRlcmZhY2VUeXBlLlNlbGVjdE11bHRpcGxlOlxyXG4gICAgICAgICAgICAgIHNldHRpbmcudmFsdWUgPSBBcnJheS5pc0FycmF5KHNldHRpbmcudmFsdWUpID8gc2V0dGluZy52YWx1ZSA6IFtdO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIHNldHRpbmc7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuZ3JvdXBlZFNldHRpbmdzID0gZ3JvdXBCeShzZXR0aW5ncywgKGl0ZW0pID0+IHtcclxuICAgICAgICAgIHJldHVybiBpdGVtLmdyb3VwO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuZ3JvdXBzID0gT2JqZWN0LmtleXModGhpcy5ncm91cGVkU2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBleHBvcnQoZXZlbnQ6IFVJRXZlbnQsIHNldHRpbmdzKTogdm9pZCB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGNvbnN0IGRhdGEgPSBzZXR0aW5ncy5tYXAoKHNldHRpbmcpID0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBuYW1lOiBzZXR0aW5nLm5hbWUsXHJcbiAgICAgICAgdmFsdWU6IHNldHRpbmcudmFsdWUsXHJcbiAgICAgICAgZ3JvdXA6IHNldHRpbmcuZ3JvdXAsXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuX2NsaXBib2FyZFNlcnZpY2UuY29weShKU09OLnN0cmluZ2lmeShkYXRhKSk7XHJcbiAgICB0aGlzLl9tZXNzYWdlLnN1Y2Nlc3MoJ0NvcGllZCB0byBjbGlwYm9hcmQnKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpbXBvcnQoZXZlbnQ6IFVJRXZlbnQsIGdyb3VwKTogdm9pZCB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuX3Byb21wdC5pbnB1dCh7XHJcbiAgICAgICAgbGFiZWw6ICdKU09OIEltcG9ydCcsXHJcbiAgICAgICAgdGl0bGU6ICdJbXBvcnQgU2V0dGluZ3MnLFxyXG4gICAgICAgIGNvbW1pdExhYmVsOiAnSW1wb3J0JyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgfSkuc3Vic2NyaWJlKCh2YWx1ZTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBjb25zdCBzZXR0aW5ncyA9IHRoaXMuZ3JvdXBlZFNldHRpbmdzW2dyb3VwXTtcclxuICAgICAgICAgICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UodmFsdWUpO1xyXG5cclxuICAgICAgICAgICAgZGF0YS5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3Qgc2V0dGluZyA9IHNldHRpbmdzLmZpbmQoKHMpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLm5hbWUgPT09IHMubmFtZTtcclxuICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgaWYgKHNldHRpbmcpIHtcclxuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oc2V0dGluZywgaXRlbSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9tZXNzYWdlLmVycm9yKGUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2F2ZUdyb3VwKGdyb3VwKTogdm9pZCB7XHJcbiAgICBjb25zdCBzZXR0aW5ncyA9IHRoaXMuZ3JvdXBlZFNldHRpbmdzW2dyb3VwXTtcclxuICAgIGNvbnN0IHZhbHVlcyA9IHJlZHVjZShzZXR0aW5ncywgKHJlc3VsdCwgdmFsdWUsIGtleSkgPT4ge1xyXG4gICAgICByZXR1cm4gKHJlc3VsdFt2YWx1ZS5uYW1lXSA9IHZhbHVlLnZhbHVlLCByZXN1bHQpO1xyXG4gICAgfSwge30pO1xyXG5cclxuICAgIHRoaXMuc2F2ZShncm91cCwgdmFsdWVzKVxyXG4gICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuX21lc3NhZ2Uuc3VjY2VzcygnQ2hhbmdlcyBTYXZlZCcpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
1
|
+
import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';
|
|
2
|
+
import { FsPrompt } from '@firestitch/prompt';
|
|
3
|
+
import { parse } from '@firestitch/date';
|
|
4
|
+
import { FsMessage } from '@firestitch/message';
|
|
5
|
+
import { groupBy, reduce } from 'lodash-es';
|
|
6
|
+
import { ClipboardService } from 'ngx-clipboard';
|
|
7
|
+
import { SystemService } from './../../services/system.service';
|
|
8
|
+
import { SettingInterfaceType } from '../../enums';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@firestitch/message";
|
|
11
|
+
import * as i2 from "./../../services/system.service";
|
|
12
|
+
import * as i3 from "ngx-clipboard";
|
|
13
|
+
import * as i4 from "@firestitch/prompt";
|
|
14
|
+
import * as i5 from "@angular/material/expansion";
|
|
15
|
+
import * as i6 from "@angular/material/button";
|
|
16
|
+
import * as i7 from "@angular/material/icon";
|
|
17
|
+
import * as i8 from "@angular/material/form-field";
|
|
18
|
+
import * as i9 from "@angular/material/select";
|
|
19
|
+
import * as i10 from "@angular/material/core";
|
|
20
|
+
import * as i11 from "@firestitch/datepicker";
|
|
21
|
+
import * as i12 from "@firestitch/file";
|
|
22
|
+
import * as i13 from "@angular/common";
|
|
23
|
+
import * as i14 from "@angular/material/tooltip";
|
|
24
|
+
import * as i15 from "@angular/material/input";
|
|
25
|
+
import * as i16 from "@angular/forms";
|
|
26
|
+
import * as i17 from "../../pipes/key-name-value.pipe";
|
|
27
|
+
export class SettingsComponent {
|
|
28
|
+
constructor(_message, _systemService, _clipboardService, _prompt, _cdRef) {
|
|
29
|
+
this._message = _message;
|
|
30
|
+
this._systemService = _systemService;
|
|
31
|
+
this._clipboardService = _clipboardService;
|
|
32
|
+
this._prompt = _prompt;
|
|
33
|
+
this._cdRef = _cdRef;
|
|
34
|
+
this.fileRemove = new EventEmitter();
|
|
35
|
+
this.fileSelect = new EventEmitter();
|
|
36
|
+
this.groupedSettings = [];
|
|
37
|
+
this.groups = [];
|
|
38
|
+
this.SettingInterfaceType = SettingInterfaceType;
|
|
39
|
+
}
|
|
40
|
+
ngOnInit() {
|
|
41
|
+
this.loadSettings()
|
|
42
|
+
.subscribe((settings) => {
|
|
43
|
+
settings = this._systemService.input(settings);
|
|
44
|
+
settings = settings.map((setting) => {
|
|
45
|
+
switch (setting.interfaceType) {
|
|
46
|
+
case SettingInterfaceType.Date:
|
|
47
|
+
case SettingInterfaceType.Time:
|
|
48
|
+
setting.value = parse(setting.value);
|
|
49
|
+
break;
|
|
50
|
+
}
|
|
51
|
+
return setting;
|
|
52
|
+
});
|
|
53
|
+
this.groupedSettings = groupBy(settings, (item) => {
|
|
54
|
+
return item.group;
|
|
55
|
+
});
|
|
56
|
+
this.groups = Object.keys(this.groupedSettings);
|
|
57
|
+
this._cdRef.markForCheck();
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
export(event, settings) {
|
|
61
|
+
event.stopPropagation();
|
|
62
|
+
const data = settings.map((setting) => {
|
|
63
|
+
return {
|
|
64
|
+
name: setting.name,
|
|
65
|
+
value: setting.value,
|
|
66
|
+
group: setting.group,
|
|
67
|
+
};
|
|
68
|
+
});
|
|
69
|
+
this._clipboardService.copy(JSON.stringify(data));
|
|
70
|
+
this._message.success('Copied to clipboard');
|
|
71
|
+
}
|
|
72
|
+
import(event, group) {
|
|
73
|
+
event.stopPropagation();
|
|
74
|
+
this._prompt.input({
|
|
75
|
+
label: 'JSON Import',
|
|
76
|
+
title: 'Import Settings',
|
|
77
|
+
commitLabel: 'Import',
|
|
78
|
+
required: true,
|
|
79
|
+
}).subscribe((value) => {
|
|
80
|
+
if (value) {
|
|
81
|
+
try {
|
|
82
|
+
const settings = this.groupedSettings[group];
|
|
83
|
+
const data = JSON.parse(value);
|
|
84
|
+
data.forEach((item) => {
|
|
85
|
+
const setting = settings.find((s) => {
|
|
86
|
+
return item.name === s.name;
|
|
87
|
+
});
|
|
88
|
+
if (setting) {
|
|
89
|
+
Object.assign(setting, item);
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
this._cdRef.markForCheck();
|
|
93
|
+
}
|
|
94
|
+
catch (e) {
|
|
95
|
+
this._message.error(e);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
saveGroup(group) {
|
|
101
|
+
const settings = this.groupedSettings[group];
|
|
102
|
+
const values = reduce(settings, (result, value, key) => {
|
|
103
|
+
return (result[value.name] = value.value, result);
|
|
104
|
+
}, {});
|
|
105
|
+
this.save(group, values)
|
|
106
|
+
.subscribe(() => {
|
|
107
|
+
this._message.success('Changes Saved');
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
SettingsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SettingsComponent, deps: [{ token: i1.FsMessage }, { token: i2.SystemService }, { token: i3.ClipboardService }, { token: i4.FsPrompt }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
112
|
+
SettingsComponent.ɵcmp = i0.ɵɵ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, 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 hideToggle *ngFor=\"let setting of groupedSettings[group]\">\n <mat-form-field class=\"full-width\" *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 class=\"full-width\" *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 class=\"full-width\" *ngIf=\"setting.interfaceType===SettingInterfaceType.DropDown\">\n <mat-select\n [placeholder]=\"setting.label\"\n [(ngModel)]=\"setting.value\"\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 class=\"full-width\" *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 class=\"full-width\" *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 </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}\n"], components: [{ type: i5.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["disabled", "expanded", "hideToggle", "togglePosition"], outputs: ["opened", "closed", "expandedChange", "afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { type: i5.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["tabIndex", "expandedHeight", "collapsedHeight"] }, { type: i6.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: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i8.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i9.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i10.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i11.FsDatePickerComponent, selector: "[fsDatePicker]", inputs: ["minYear", "maxYear", "minDate", "maxDate", "startOfDay", "view", "format", "minutes"], outputs: ["change"] }, { type: i11.FsTimePickerComponent, selector: "[fsTimePicker]", inputs: ["view"] }, { type: i12.FsFilePickerComponent, selector: "fs-file-picker", inputs: ["imageWidth", "imageHeight", "imageQuality", "showFilename", "url", "file", "accept", "disabled", "width", "height", "previewWidth", "previewHeight", "allowDownload", "allowReupload", "allowRemove"], outputs: ["select", "remove"] }], directives: [{ type: i5.MatAccordion, selector: "mat-accordion", inputs: ["multi", "displayMode", "togglePosition", "hideToggle"], exportAs: ["matAccordion"] }, { type: i13.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.MatExpansionPanelTitle, selector: "mat-panel-title" }, { type: i14.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i15.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: i16.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: i16.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i16.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i8.MatHint, selector: "mat-hint", inputs: ["align", "id"] }], pipes: { "keyNameValue": i17.KeyNameValuePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
113
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SettingsComponent, decorators: [{
|
|
114
|
+
type: Component,
|
|
115
|
+
args: [{
|
|
116
|
+
selector: 'fs-system-settings',
|
|
117
|
+
templateUrl: './settings.component.html',
|
|
118
|
+
styleUrls: ['./settings.component.scss'],
|
|
119
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
120
|
+
}]
|
|
121
|
+
}], ctorParameters: function () { return [{ type: i1.FsMessage }, { type: i2.SystemService }, { type: i3.ClipboardService }, { type: i4.FsPrompt }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { loadSettings: [{
|
|
122
|
+
type: Input
|
|
123
|
+
}], save: [{
|
|
124
|
+
type: Input
|
|
125
|
+
}], fileRemove: [{
|
|
126
|
+
type: Output
|
|
127
|
+
}], fileSelect: [{
|
|
128
|
+
type: Output
|
|
129
|
+
}] } });
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL3NldHRpbmdzL3NldHRpbmdzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9zZXR0aW5ncy9zZXR0aW5ncy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDekMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWhELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sYUFBYSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBVW5ELE1BQU0sT0FBTyxpQkFBaUI7SUFZNUIsWUFDVSxRQUFtQixFQUNuQixjQUE2QixFQUM3QixpQkFBbUMsRUFDbkMsT0FBaUIsRUFDakIsTUFBeUI7UUFKekIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBQ25DLFlBQU8sR0FBUCxPQUFPLENBQVU7UUFDakIsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFabEIsZUFBVSxHQUFHLElBQUks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QkFFVyxVQUFVO3NCQUExQixNQUFNO2dCQUNVLFVBQVU7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRnNQcm9tcHQgfSBmcm9tICdAZmlyZXN0aXRjaC9wcm9tcHQnO1xuaW1wb3J0IHsgcGFyc2UgfSBmcm9tICdAZmlyZXN0aXRjaC9kYXRlJztcbmltcG9ydCB7IEZzTWVzc2FnZSB9IGZyb20gJ0BmaXJlc3RpdGNoL21lc3NhZ2UnO1xuXG5pbXBvcnQgeyBncm91cEJ5LCByZWR1Y2UgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQ2xpcGJvYXJkU2VydmljZSB9IGZyb20gJ25neC1jbGlwYm9hcmQnO1xuXG5pbXBvcnQgeyBTeXN0ZW1TZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi9zZXJ2aWNlcy9zeXN0ZW0uc2VydmljZSc7XG5pbXBvcnQgeyBTZXR0aW5nSW50ZXJmYWNlVHlwZSB9IGZyb20gJy4uLy4uL2VudW1zJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmcy1zeXN0ZW0tc2V0dGluZ3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2V0dGluZ3MuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZXR0aW5ncy5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2V0dGluZ3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBsb2FkU2V0dGluZ3M6ICgpID0+IE9ic2VydmFibGU8YW55W10+O1xuICBASW5wdXQoKSBwdWJsaWMgc2F2ZTogKGRhdGE6IGFueSwgZ3JvdXA6IHN0cmluZykgPT4gT2JzZXJ2YWJsZTxhbnk+O1xuXG4gIEBPdXRwdXQoKSBwdWJsaWMgZmlsZVJlbW92ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBmaWxlU2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjx7IHNldHRpbmc6IGFueSwgZmlsZTogQmxvYiB9PigpO1xuXG4gIHB1YmxpYyBncm91cGVkU2V0dGluZ3MgPSBbXTtcbiAgcHVibGljIGdyb3VwcyA9IFtdO1xuICBwdWJsaWMgU2V0dGluZ0ludGVyZmFjZVR5cGUgPSBTZXR0aW5nSW50ZXJmYWNlVHlwZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9tZXNzYWdlOiBGc01lc3NhZ2UsXG4gICAgcHJpdmF0ZSBfc3lzdGVtU2VydmljZTogU3lzdGVtU2VydmljZSxcbiAgICBwcml2YXRlIF9jbGlwYm9hcmRTZXJ2aWNlOiBDbGlwYm9hcmRTZXJ2aWNlLFxuICAgIHByaXZhdGUgX3Byb21wdDogRnNQcm9tcHQsXG4gICAgcHJpdmF0ZSBfY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICApIHsgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWRTZXR0aW5ncygpXG4gICAgICAuc3Vic2NyaWJlKChzZXR0aW5ncykgPT4ge1xuICAgICAgICBzZXR0aW5ncyA9IHRoaXMuX3N5c3RlbVNlcnZpY2UuaW5wdXQoc2V0dGluZ3MpO1xuXG4gICAgICAgIHNldHRpbmdzID0gc2V0dGluZ3MubWFwKChzZXR0aW5nKSA9PiB7XG4gICAgICAgICAgc3dpdGNoIChzZXR0aW5nLmludGVyZmFjZVR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgU2V0dGluZ0ludGVyZmFjZVR5cGUuRGF0ZTpcbiAgICAgICAgICAgIGNhc2UgU2V0dGluZ0ludGVyZmFjZVR5cGUuVGltZTpcbiAgICAgICAgICAgICAgc2V0dGluZy52YWx1ZSA9IHBhcnNlKHNldHRpbmcudmFsdWUpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHNldHRpbmc7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZ3JvdXBlZFNldHRpbmdzID0gZ3JvdXBCeShzZXR0aW5ncywgKGl0ZW0pID0+IHtcbiAgICAgICAgICByZXR1cm4gaXRlbS5ncm91cDtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZ3JvdXBzID0gT2JqZWN0LmtleXModGhpcy5ncm91cGVkU2V0dGluZ3MpO1xuICAgICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGV4cG9ydChldmVudDogVUlFdmVudCwgc2V0dGluZ3MpOiB2b2lkIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBjb25zdCBkYXRhID0gc2V0dGluZ3MubWFwKChzZXR0aW5nKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYW1lOiBzZXR0aW5nLm5hbWUsXG4gICAgICAgIHZhbHVlOiBzZXR0aW5nLnZhbHVlLFxuICAgICAgICBncm91cDogc2V0dGluZy5ncm91cCxcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuX2NsaXBib2FyZFNlcnZpY2UuY29weShKU09OLnN0cmluZ2lmeShkYXRhKSk7XG4gICAgdGhpcy5fbWVzc2FnZS5zdWNjZXNzKCdDb3BpZWQgdG8gY2xpcGJvYXJkJyk7XG4gIH1cblxuICBwdWJsaWMgaW1wb3J0KGV2ZW50OiBVSUV2ZW50LCBncm91cCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuX3Byb21wdC5pbnB1dCh7XG4gICAgICAgIGxhYmVsOiAnSlNPTiBJbXBvcnQnLFxuICAgICAgICB0aXRsZTogJ0ltcG9ydCBTZXR0aW5ncycsXG4gICAgICAgIGNvbW1pdExhYmVsOiAnSW1wb3J0JyxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICB9KS5zdWJzY3JpYmUoKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHNldHRpbmdzID0gdGhpcy5ncm91cGVkU2V0dGluZ3NbZ3JvdXBdO1xuICAgICAgICAgICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UodmFsdWUpO1xuXG4gICAgICAgICAgICBkYXRhLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgY29uc3Qgc2V0dGluZyA9IHNldHRpbmdzLmZpbmQoKHMpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbS5uYW1lID09PSBzLm5hbWU7XG4gICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgIGlmIChzZXR0aW5nKSB7XG4gICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihzZXR0aW5nLCBpdGVtKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRoaXMuX21lc3NhZ2UuZXJyb3IoZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzYXZlR3JvdXAoZ3JvdXApOiB2b2lkIHtcbiAgICBjb25zdCBzZXR0aW5ncyA9IHRoaXMuZ3JvdXBlZFNldHRpbmdzW2dyb3VwXTtcbiAgICBjb25zdCB2YWx1ZXMgPSByZWR1Y2Uoc2V0dGluZ3MsIChyZXN1bHQsIHZhbHVlLCBrZXkpID0+IHtcbiAgICAgIHJldHVybiAocmVzdWx0W3ZhbHVlLm5hbWVdID0gdmFsdWUudmFsdWUsIHJlc3VsdCk7XG4gICAgfSwge30pO1xuXG4gICAgdGhpcy5zYXZlKGdyb3VwLCB2YWx1ZXMpXG4gICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLl9tZXNzYWdlLnN1Y2Nlc3MoJ0NoYW5nZXMgU2F2ZWQnKTtcbiAgICB9KTtcbiAgfVxufVxuIiwiXG48bWF0LWFjY29yZGlvbj5cbiAgPG1hdC1leHBhbnNpb24tcGFuZWwgaGlkZVRvZ2dsZSAqbmdGb3I9XCJsZXQgZ3JvdXAgb2YgZ3JvdXBzXCI+XG4gICAgPG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxuICAgICAgPG1hdC1wYW5lbC10aXRsZT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXJvd1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPnt7Z3JvdXAgfHwgJ0dlbmVyYWwnfX08L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiJ0V4cG9ydCAnICsgKGdyb3VwIHx8ICdHZW5lcmFsJykgKyAnIFNldHRpbmdzJ1wiXG4gICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAoY2xpY2spPVwiZXhwb3J0KCRldmVudCwgZ3JvdXBlZFNldHRpbmdzW2dyb3VwXSlcIj5cbiAgICAgICAgICAgICAgPG1hdC1pY29uPmNsb3VkX2Rvd25sb2FkPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiJ0ltcG9ydCAnICsgKGdyb3VwIHx8ICdHZW5lcmFsJykgKyAnIFNldHRpbmdzJ1wiXG4gICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAoY2xpY2spPVwiaW1wb3J0KCRldmVudCwgZ3JvdXApXCI+XG4gICAgICAgICAgICAgIDxtYXQtaWNvbj5jbG91ZF91cGxvYWQ8L21hdC1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9tYXQtcGFuZWwtdGl0bGU+XG4gICAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cblxuICAgIDxkaXYgaGlkZVRvZ2dsZSAqbmdGb3I9XCJsZXQgc2V0dGluZyBvZiBncm91cGVkU2V0dGluZ3NbZ3JvdXBdXCI+XG4gICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmdWxsLXdpZHRoXCIgKm5nSWY9XCJzZXR0aW5nLmludGVyZmFjZVR5cGU9PT1TZXR0aW5nSW50ZXJmYWNlVHlwZS5JbnB1dEJveFwiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJzZXR0aW5nLmxhYmVsXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInNldHRpbmcudmFsdWVcIlxuICAgICAgICAgIFtuYW1lXT1cIidzZXR0aW5nXycgKyBzZXR0aW5nLmlkXCI+XG4gICAgICAgICAgPG1hdC1oaW50Pnt7c2V0dGluZy5pbnN0cnVjdGlvbn19PC9tYXQtaGludD5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZ1bGwtd2lkdGhcIiAqbmdJZj1cInNldHRpbmcuaW50ZXJmYWNlVHlwZT09PVNldHRpbmdJbnRlcmZhY2VUeXBlLlRleHRhcmVhXCI+XG4gICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInNldHRpbmcubGFiZWxcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwic2V0dGluZy52YWx1ZVwiXG4gICAgICAgICAgW25hbWVdPVwiJ3NldHRpbmdfJyArIHNldHRpbmcuaWRcIj5cbiAgICAgICAgPC90ZXh0YXJlYT5cbiAgICAgICAgPG1hdC1oaW50Pnt7c2V0dGluZy5pbnN0cnVjdGlvbn19PC9tYXQtaGludD5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZ1bGwtd2lkdGhcIiAqbmdJZj1cInNldHRpbmcuaW50ZXJmYWNlVHlwZT09PVNldHRpbmdJbnRlcmZhY2VUeXBlLkRyb3BEb3duXCI+XG4gICAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJzZXR0aW5nLmxhYmVsXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInNldHRpbmcudmFsdWVcIlxuICAgICAgICAgIFtuYW1lXT1cIidzZXR0aW5nXycgKyBzZXR0aW5nLmlkXCI+XG4gICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2Ygc2V0dGluZy52YWx1ZXMgfCBrZXlOYW1lVmFsdWVcIiBbdmFsdWVdPVwiaXRlbS52YWx1ZVwiPlxuICAgICAgICAgICAge3tpdGVtLm5hbWV9fVxuICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICA8bWF0LWhpbnQ+e3tzZXR0aW5nLmluc3RydWN0aW9ufX08L21hdC1oaW50PlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZnVsbC13aWR0aFwiICpuZ0lmPVwic2V0dGluZy5pbnRlcmZhY2VUeXBlPT09U2V0dGluZ0ludGVyZmFjZVR5cGUuRGF0ZVwiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgIGZzRGF0ZVBpY2tlclxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJzZXR0aW5nLmxhYmVsXCJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInNldHRpbmcudmFsdWVcIlxuICAgICAgICAgIFtuYW1lXT1cIidzZXR0aW5nXycgKyBzZXR0aW5nLmlkXCI+XG4gICAgICAgICAgPG1hdC1oaW50Pnt7c2V0dGluZy5pbnN0cnVjdGlvbn19PC9tYXQtaGludD5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZ1bGwtd2lkdGhcIiAqbmdJZj1cInNldHRpbmcuaW50ZXJmYWNlVHlwZT09PVNldHRpbmdJbnRlcmZhY2VUeXBlLlRpbWVcIj5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICBmc1RpbWVQaWNrZXJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwic2V0dGluZy5sYWJlbFwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJzZXR0aW5nLnZhbHVlXCJcbiAgICAgICAgICBbbmFtZV09XCInc2V0dGluZ18nICsgc2V0dGluZy5pZFwiPlxuICAgICAgICAgIDxtYXQtaGludD57e3NldHRpbmcuaW5zdHJ1Y3Rpb259fTwvbWF0LWhpbnQ+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICA8ZnMtZmlsZS1waWNrZXJcbiAgICAgICAgKm5nSWY9XCJzZXR0aW5nLmludGVyZmFjZVR5cGU9PT1TZXR0aW5nSW50ZXJmYWNlVHlwZS5GaWxlXCJcbiAgICAgICAgW2FsbG93UmVtb3ZlXT1cInRydWVcIlxuICAgICAgICBbYWxsb3dEb3dubG9hZF09XCJ0cnVlXCJcbiAgICAgICAgKHNlbGVjdCk9XCJmaWxlU2VsZWN0LmVtaXQoeyBzZXR0aW5nOiBzZXR0aW5nLCBmaWxlOiAkZXZlbnQuZmlsZSB9KVwiXG4gICAgICAgIChyZW1vdmUpPVwiZmlsZVJlbW92ZS5lbWl0KHNldHRpbmcpXCJcbiAgICAgICAgW3VybF09XCJzZXR0aW5nLnZhbHVlXCI+XG4gICAgICAgIDxkaXYgZnNGaWxlTGFiZWw+e3tzZXR0aW5nLmxhYmVsfX08L2Rpdj5cbiAgICAgIDwvZnMtZmlsZS1waWNrZXI+XG4gICAgPC9kaXY+XG5cbiAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwic2F2ZUdyb3VwKGdyb3VwKVwiPlNhdmU8L2J1dHRvbj5cblxuICA8L21hdC1leHBhbnNpb24tcGFuZWw+XG5cbjwvbWF0LWFjY29yZGlvbj5cbiJdfQ==
|