@firestitch/system 14.0.0 → 16.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/modules/query-logs/components/explain/explain.component.d.ts +1 -1
- package/app/modules/query-logs/components/query-log/query-log.component.d.ts +1 -1
- package/app/modules/query-logs/components/query-logs/query-logs.component.d.ts +1 -1
- package/app/modules/system/components/api-log/api-log.component.d.ts +1 -1
- package/app/modules/system/components/api-logs/api-logs.component.d.ts +1 -1
- package/app/modules/system/components/cron/cron.component.d.ts +1 -1
- package/app/modules/system/components/cron-log/cron-log.component.d.ts +1 -1
- package/app/modules/system/components/cron-next-run/cron-next-run.component.d.ts +1 -1
- package/app/modules/system/components/crons/crons.component.d.ts +1 -1
- package/app/modules/system/components/dashboard/dashboard.component.d.ts +1 -1
- package/app/modules/system/components/info/info.component.d.ts +1 -1
- package/app/modules/system/components/process/process.component.d.ts +1 -1
- package/app/modules/system/components/processes/processes.component.d.ts +1 -1
- package/app/modules/system/components/server-log/server-log.component.d.ts +1 -1
- package/app/modules/system/components/server-logs/server-logs.component.d.ts +1 -1
- package/app/modules/system/components/settings/settings.component.d.ts +1 -1
- package/app/modules/system/components/upgrade-logs/upgrade-logs.component.d.ts +1 -1
- package/esm2022/app/modules/query-logs/components/explain/explain.component.mjs +26 -0
- package/esm2022/app/modules/query-logs/components/query-log/query-log.component.mjs +61 -0
- package/esm2022/app/modules/query-logs/components/query-logs/query-logs.component.mjs +89 -0
- package/{esm2020 → esm2022}/app/modules/query-logs/query-logs.module.mjs +35 -35
- package/esm2022/app/modules/system/components/api-log/api-log.component.mjs +38 -0
- package/esm2022/app/modules/system/components/api-logs/api-logs.component.mjs +72 -0
- package/esm2022/app/modules/system/components/cron/cron.component.mjs +111 -0
- package/esm2022/app/modules/system/components/cron-log/cron-log.component.mjs +39 -0
- package/esm2022/app/modules/system/components/cron-next-run/cron-next-run.component.mjs +102 -0
- package/esm2022/app/modules/system/components/crons/crons.component.mjs +249 -0
- package/esm2022/app/modules/system/components/dashboard/dashboard.component.mjs +92 -0
- package/esm2022/app/modules/system/components/info/info.component.mjs +33 -0
- package/esm2022/app/modules/system/components/process/process.component.mjs +103 -0
- package/esm2022/app/modules/system/components/processes/processes.component.mjs +188 -0
- package/esm2022/app/modules/system/components/server-log/server-log.component.mjs +40 -0
- package/esm2022/app/modules/system/components/server-logs/server-logs.component.mjs +56 -0
- package/esm2022/app/modules/system/components/settings/settings.component.mjs +144 -0
- package/esm2022/app/modules/system/components/upgrade-logs/upgrade-logs.component.mjs +44 -0
- package/{esm2020 → esm2022}/app/modules/system/fs-system.module.mjs +70 -70
- package/{esm2020 → esm2022}/app/modules/system/pipes/key-name-value.pipe.mjs +5 -5
- package/{fesm2020 → fesm2022}/firestitch-system.mjs +287 -210
- package/{fesm2020 → fesm2022}/firestitch-system.mjs.map +1 -1
- package/package.json +5 -11
- package/esm2020/app/modules/query-logs/components/explain/explain.component.mjs +0 -24
- package/esm2020/app/modules/query-logs/components/query-log/query-log.component.mjs +0 -58
- package/esm2020/app/modules/query-logs/components/query-logs/query-logs.component.mjs +0 -84
- package/esm2020/app/modules/system/components/api-log/api-log.component.mjs +0 -34
- package/esm2020/app/modules/system/components/api-logs/api-logs.component.mjs +0 -69
- package/esm2020/app/modules/system/components/cron/cron.component.mjs +0 -105
- package/esm2020/app/modules/system/components/cron-log/cron-log.component.mjs +0 -37
- package/esm2020/app/modules/system/components/cron-next-run/cron-next-run.component.mjs +0 -99
- package/esm2020/app/modules/system/components/crons/crons.component.mjs +0 -236
- package/esm2020/app/modules/system/components/dashboard/dashboard.component.mjs +0 -84
- package/esm2020/app/modules/system/components/info/info.component.mjs +0 -31
- package/esm2020/app/modules/system/components/process/process.component.mjs +0 -98
- package/esm2020/app/modules/system/components/processes/processes.component.mjs +0 -178
- package/esm2020/app/modules/system/components/server-log/server-log.component.mjs +0 -38
- package/esm2020/app/modules/system/components/server-logs/server-logs.component.mjs +0 -53
- package/esm2020/app/modules/system/components/settings/settings.component.mjs +0 -138
- package/esm2020/app/modules/system/components/upgrade-logs/upgrade-logs.component.mjs +0 -44
- package/fesm2015/firestitch-system.mjs +0 -1600
- package/fesm2015/firestitch-system.mjs.map +0 -1
- /package/{esm2020 → esm2022}/app/modules/query-logs/components/explain/index.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/query-logs/components/index.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/query-logs/components/query-log/index.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/query-logs/components/query-logs/index.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/system/components/api-log/index.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/system/components/api-logs/index.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/system/components/cron/index.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/system/components/cron-log/index.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/system/components/cron-next-run/index.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/system/components/crons/index.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/system/components/dashboard/index.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/system/components/info/index.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/system/components/process/index.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/system/components/processes/index.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/system/components/server-log/index.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/system/components/server-logs/index.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/system/components/settings/index.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/system/components/upgrade-logs/index.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/system/consts/api-log-states.const.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/system/consts/cron-log-states.const.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/system/consts/cron-process-states.const.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/system/consts/cron-states.const.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/system/consts/index.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/system/consts/process-process-states.const.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/system/consts/process-states.const.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/system/consts/setting-interface-types.const.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/system/enums/api-log-state.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/system/enums/cron-log-state.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/system/enums/cron-state.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/system/enums/index.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/system/enums/process-state.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/system/enums/setting-interface-type.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/system/helpers/index-name-value.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/system/injectors/system-config.injector.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/system/interfaces/dashboard-action.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/system/interfaces/index.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/system/interfaces/process-action.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/system/interfaces/process.mjs +0 -0
- /package/{esm2020 → esm2022}/app/modules/system/interfaces/system-config.mjs +0 -0
- /package/{esm2020 → esm2022}/firestitch-system.mjs +0 -0
- /package/{esm2020 → esm2022}/public_api.mjs +0 -0
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { Component, ViewChild, Input } from '@angular/core';
|
|
2
|
-
import { FsListComponent } from '@firestitch/list';
|
|
3
|
-
import { map } from 'rxjs/operators';
|
|
4
|
-
import { ItemType } from '@firestitch/filter';
|
|
5
|
-
import { MatDialog } from '@angular/material/dialog';
|
|
6
|
-
import { ServerLogComponent } from '../server-log/server-log.component';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@angular/material/dialog";
|
|
9
|
-
import * as i2 from "@firestitch/date";
|
|
10
|
-
import * as i3 from "@firestitch/list";
|
|
11
|
-
export class ServerLogsComponent {
|
|
12
|
-
constructor(_dialog) {
|
|
13
|
-
this._dialog = _dialog;
|
|
14
|
-
this.config = null;
|
|
15
|
-
this.logTypes = [];
|
|
16
|
-
}
|
|
17
|
-
ngOnInit() {
|
|
18
|
-
this._configList();
|
|
19
|
-
}
|
|
20
|
-
_configList() {
|
|
21
|
-
this.config = {
|
|
22
|
-
filters: [
|
|
23
|
-
{
|
|
24
|
-
type: ItemType.Keyword,
|
|
25
|
-
name: 'keyword',
|
|
26
|
-
label: 'Search'
|
|
27
|
-
}
|
|
28
|
-
],
|
|
29
|
-
fetch: query => {
|
|
30
|
-
return this.loadLogs(query)
|
|
31
|
-
.pipe(map((response) => ({ data: response.data, paging: response.paging })));
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
open(log) {
|
|
36
|
-
this._dialog.open(ServerLogComponent, {
|
|
37
|
-
data: { log: log },
|
|
38
|
-
width: '85%'
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
ServerLogsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ServerLogsComponent, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
|
|
43
|
-
ServerLogsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", 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: [""], dependencies: [{ kind: "component", type: i2.FsDateAgoComponent, selector: "fs-date-ago", inputs: ["date", "showTime", "format", "showTooltip", "tooltipDateFormat"] }, { kind: "component", type: i3.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { kind: "directive", type: i3.FsListColumnDirective, selector: "fs-list-column", inputs: ["show", "title", "name", "customize", "sortable", "sortableDefault", "direction", "align", "width", "class"] }, { kind: "directive", type: i3.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }, { kind: "directive", type: i3.FsListHeaderDirective, selector: "[fs-list-header]", inputs: ["colspan", "align", "class"] }] });
|
|
44
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ServerLogsComponent, decorators: [{
|
|
45
|
-
type: Component,
|
|
46
|
-
args: [{ selector: 'fs-system-server-logs', 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" }]
|
|
47
|
-
}], ctorParameters: function () { return [{ type: i1.MatDialog }]; }, propDecorators: { list: [{
|
|
48
|
-
type: ViewChild,
|
|
49
|
-
args: ['list', { static: true }]
|
|
50
|
-
}], loadLogs: [{
|
|
51
|
-
type: Input
|
|
52
|
-
}] } });
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLWxvZ3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL3N5c3RlbS9jb21wb25lbnRzL3NlcnZlci1sb2dzL3NlcnZlci1sb2dzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vY29tcG9uZW50cy9zZXJ2ZXItbG9ncy9zZXJ2ZXItbG9ncy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEUsT0FBTyxFQUFnQixlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7QUFTeEUsTUFBTSxPQUFPLG1CQUFtQjtJQVM5QixZQUNVLE9BQWtCO1FBQWxCLFlBQU8sR0FBUCxPQUFPLENBQVc7UUFKckIsV0FBTSxHQUFpQixJQUFJLENBQUM7UUFDNUIsYUFBUSxHQUFHLEVBQUUsQ0FBQztJQUlqQixDQUFDO0lBRUwsUUFBUTtRQUNOLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRU8sV0FBVztRQUVqQixJQUFJLENBQUMsTUFBTSxHQUFHO1lBQ1osT0FBTyxFQUFFO2dCQUNQO29CQUNFLElBQUksRUFBRSxRQUFRLENBQUMsT0FBTztvQkFDdEIsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsS0FBSyxFQUFFLFFBQVE7aUJBQ2hCO2FBQ0Y7WUFDRCxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUU7Z0JBQ2IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztxQkFDeEIsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUMzRSxDQUFDO1lBQ04sQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDO0lBRU0sSUFBSSxDQUFDLEdBQUc7UUFDYixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUNwQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFO1lBQ2xCLEtBQUssRUFBRSxLQUFLO1NBQ2IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7Z0hBekNVLG1CQUFtQjtvR0FBbkIsbUJBQW1CLDJNQ2ZoQyxvdEJBb0JBOzJGRExhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSx1QkFBdUI7Z0dBTVcsSUFBSTtzQkFBL0MsU0FBUzt1QkFBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUVuQixRQUFRO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRnNMaXN0Q29uZmlnLCBGc0xpc3RDb21wb25lbnQgfSBmcm9tICdAZmlyZXN0aXRjaC9saXN0JztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEl0ZW1UeXBlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvZmlsdGVyJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBTZXJ2ZXJMb2dDb21wb25lbnQgfSBmcm9tICcuLi9zZXJ2ZXItbG9nL3NlcnZlci1sb2cuY29tcG9uZW50JztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmcy1zeXN0ZW0tc2VydmVyLWxvZ3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VydmVyLWxvZ3MuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZXJ2ZXItbG9ncy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNlcnZlckxvZ3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBWaWV3Q2hpbGQoJ2xpc3QnLCB7IHN0YXRpYzogdHJ1ZSB9KSBwdWJsaWMgbGlzdDogRnNMaXN0Q29tcG9uZW50O1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBsb2FkTG9nczogKGRhdGE6IGFueSkgPT4gT2JzZXJ2YWJsZTx7IGRhdGE6IGFueVtdLCBwYWdpbmc6IGFueSB9PjtcblxuICBwdWJsaWMgY29uZmlnOiBGc0xpc3RDb25maWcgPSBudWxsO1xuICBwdWJsaWMgbG9nVHlwZXMgPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9kaWFsb2c6IE1hdERpYWxvZyxcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLl9jb25maWdMaXN0KCk7XG4gIH1cblxuICBwcml2YXRlIF9jb25maWdMaXN0KCkge1xuXG4gICAgdGhpcy5jb25maWcgPSB7XG4gICAgICBmaWx0ZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiBJdGVtVHlwZS5LZXl3b3JkLFxuICAgICAgICAgIG5hbWU6ICdrZXl3b3JkJyxcbiAgICAgICAgICBsYWJlbDogJ1NlYXJjaCdcbiAgICAgICAgfVxuICAgICAgXSxcbiAgICAgIGZldGNoOiBxdWVyeSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRMb2dzKHF1ZXJ5KVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKChyZXNwb25zZTogYW55KSA9PiAoeyBkYXRhOiByZXNwb25zZS5kYXRhLCBwYWdpbmc6IHJlc3BvbnNlLnBhZ2luZyB9KSlcbiAgICAgICAgICApO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgb3Blbihsb2cpIHtcbiAgICB0aGlzLl9kaWFsb2cub3BlbihTZXJ2ZXJMb2dDb21wb25lbnQsIHtcbiAgICAgIGRhdGE6IHsgbG9nOiBsb2cgfSxcbiAgICAgIHdpZHRoOiAnODUlJ1xuICAgIH0pO1xuICB9XG59XG4iLCI8ZnMtbGlzdCBbY29uZmlnXT1cImNvbmZpZ1wiPlxuICAgIDxmcy1saXN0LWNvbHVtbj5cbiAgICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWhlYWRlcj5NZXNzYWdlPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWNlbGwgbGV0LXJvdz1cInJvd1wiPlxuICAgICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDo7XCIgKGNsaWNrKT1cIm9wZW4ocm93KVwiPnt7cm93Lm1lc3NhZ2V9fTwvYT5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9mcy1saXN0LWNvbHVtbj5cbiAgICA8ZnMtbGlzdC1jb2x1bW4+XG4gICAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1oZWFkZXI+VHlwZTwvbmctdGVtcGxhdGU+XG4gICAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1jZWxsIGxldC1yb3c9XCJyb3dcIj5cbiAgICAgICAge3tyb3cudHlwZX19XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZnMtbGlzdC1jb2x1bW4+XG4gICAgPGZzLWxpc3QtY29sdW1uPlxuICAgICAgPG5nLXRlbXBsYXRlIGZzLWxpc3QtaGVhZGVyPkRhdGU8L25nLXRlbXBsYXRlPlxuICAgICAgPG5nLXRlbXBsYXRlIGZzLWxpc3QtY2VsbCBsZXQtcm93PVwicm93XCI+XG4gICAgICAgIDxmcy1kYXRlLWFnbyBbZGF0ZV09XCJyb3cuY3JlYXRlRGF0ZVwiPjwvZnMtZGF0ZS1hZ28+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZnMtbGlzdC1jb2x1bW4+XG4gIDwvZnMtbGlzdD5cbiJdfQ==
|
|
@@ -1,138 +0,0 @@
|
|
|
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 { FsClipboard } from '@firestitch/clipboard';
|
|
6
|
-
import { SettingInterfaceType } from '../../enums';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@firestitch/message";
|
|
9
|
-
import * as i2 from "@firestitch/clipboard";
|
|
10
|
-
import * as i3 from "@firestitch/prompt";
|
|
11
|
-
import * as i4 from "@angular/common";
|
|
12
|
-
import * as i5 from "@angular/forms";
|
|
13
|
-
import * as i6 from "@angular/material/button";
|
|
14
|
-
import * as i7 from "@angular/material/expansion";
|
|
15
|
-
import * as i8 from "@angular/material/tooltip";
|
|
16
|
-
import * as i9 from "@angular/material/icon";
|
|
17
|
-
import * as i10 from "@angular/material/form-field";
|
|
18
|
-
import * as i11 from "@angular/material/input";
|
|
19
|
-
import * as i12 from "@angular/material/select";
|
|
20
|
-
import * as i13 from "@angular/material/core";
|
|
21
|
-
import * as i14 from "@firestitch/file";
|
|
22
|
-
import * as i15 from "@firestitch/datepicker";
|
|
23
|
-
import * as i16 from "@firestitch/colorpicker";
|
|
24
|
-
import * as i17 from "../../pipes/key-name-value.pipe";
|
|
25
|
-
export class SettingsComponent {
|
|
26
|
-
constructor(_message, _clipboard, _prompt, _cdRef) {
|
|
27
|
-
this._message = _message;
|
|
28
|
-
this._clipboard = _clipboard;
|
|
29
|
-
this._prompt = _prompt;
|
|
30
|
-
this._cdRef = _cdRef;
|
|
31
|
-
this.fileRemove = new EventEmitter();
|
|
32
|
-
this.fileSelect = new EventEmitter();
|
|
33
|
-
this.groupedSettings = [];
|
|
34
|
-
this.groups = [];
|
|
35
|
-
this.SettingInterfaceType = SettingInterfaceType;
|
|
36
|
-
}
|
|
37
|
-
ngOnInit() {
|
|
38
|
-
this.loadSettings({
|
|
39
|
-
visible: true,
|
|
40
|
-
})
|
|
41
|
-
.subscribe((settings) => {
|
|
42
|
-
settings = settings
|
|
43
|
-
.filter((setting) => {
|
|
44
|
-
return setting.interfaceType !== SettingInterfaceType.None;
|
|
45
|
-
})
|
|
46
|
-
.map((setting) => {
|
|
47
|
-
switch (setting.interfaceType) {
|
|
48
|
-
case SettingInterfaceType.Date:
|
|
49
|
-
case SettingInterfaceType.Time:
|
|
50
|
-
return {
|
|
51
|
-
...setting,
|
|
52
|
-
value: parse(setting.value),
|
|
53
|
-
};
|
|
54
|
-
case SettingInterfaceType.SelectMultiple:
|
|
55
|
-
return {
|
|
56
|
-
...setting,
|
|
57
|
-
value: Array.isArray(setting.value) ? setting.value : [],
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
return setting;
|
|
61
|
-
});
|
|
62
|
-
this.groupedSettings = settings.reduce((accum, item) => {
|
|
63
|
-
if (accum[item.group] === undefined) {
|
|
64
|
-
accum[item.group] = [];
|
|
65
|
-
}
|
|
66
|
-
accum[item.group].push(item);
|
|
67
|
-
return accum;
|
|
68
|
-
}, {});
|
|
69
|
-
this.groups = Object.keys(this.groupedSettings);
|
|
70
|
-
this._cdRef.markForCheck();
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
export(event, settings) {
|
|
74
|
-
event.stopPropagation();
|
|
75
|
-
const data = settings.map((setting) => {
|
|
76
|
-
return {
|
|
77
|
-
name: setting.name,
|
|
78
|
-
value: setting.value,
|
|
79
|
-
group: setting.group,
|
|
80
|
-
};
|
|
81
|
-
});
|
|
82
|
-
this._clipboard.copy(JSON.stringify(data));
|
|
83
|
-
this._message.success('Copied to clipboard');
|
|
84
|
-
}
|
|
85
|
-
import(event, group) {
|
|
86
|
-
event.stopPropagation();
|
|
87
|
-
this._prompt.input({
|
|
88
|
-
label: 'JSON Import',
|
|
89
|
-
title: 'Import Settings',
|
|
90
|
-
commitLabel: 'Import',
|
|
91
|
-
required: true,
|
|
92
|
-
}).subscribe((value) => {
|
|
93
|
-
if (value) {
|
|
94
|
-
try {
|
|
95
|
-
const settings = this.groupedSettings[group];
|
|
96
|
-
const data = JSON.parse(value);
|
|
97
|
-
data.forEach((item) => {
|
|
98
|
-
const setting = settings.find((s) => {
|
|
99
|
-
return item.name === s.name;
|
|
100
|
-
});
|
|
101
|
-
if (setting) {
|
|
102
|
-
Object.assign(setting, item);
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
this._cdRef.markForCheck();
|
|
106
|
-
}
|
|
107
|
-
catch (e) {
|
|
108
|
-
this._message.error(e);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
saveGroup(group) {
|
|
114
|
-
const settings = this.groupedSettings[group];
|
|
115
|
-
const values = settings.reduce((result, value) => {
|
|
116
|
-
return (result[value.name] = value.value, result);
|
|
117
|
-
}, {});
|
|
118
|
-
this.save(group, values)
|
|
119
|
-
.subscribe(() => {
|
|
120
|
-
this._message.success('Changes Saved');
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
SettingsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SettingsComponent, deps: [{ token: i1.FsMessage }, { token: i2.FsClipboard }, { token: i3.FsPrompt }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
125
|
-
SettingsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", 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 \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 <mat-label>{{setting.label}}</mat-label>\n <input\n matInput\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 <mat-label>{{setting.label}}</mat-label>\n <textarea\n matInput\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-label>{{setting.label}}</mat-label>\n <mat-select\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 <mat-label>{{setting.label}}</mat-label>\n <input\n matInput\n fsDatePicker\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 <mat-label>{{setting.label}}</mat-label>\n <input\n matInput\n fsColorPicker\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 <mat-label>{{setting.label}}</mat-label>\n <input\n matInput\n fsTimePicker\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"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", 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"] }, { kind: "directive", type: i7.MatAccordion, selector: "mat-accordion", inputs: ["multi", "hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i7.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["disabled", "expanded", "hideToggle", "togglePosition"], outputs: ["opened", "closed", "expandedChange", "afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i7.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["tabIndex", "expandedHeight", "collapsedHeight"] }, { kind: "directive", type: i7.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i8.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i10.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i10.MatLabel, selector: "mat-label" }, { kind: "directive", type: i11.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i12.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i13.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i14.FsFilePickerComponent, selector: "fs-file-picker", inputs: ["minWidth", "minHeight", "imageWidth", "imageHeight", "imageQuality", "label", "showFilename", "allowDownload", "allowReupload", "multiple", "allowRemove", "url", "file", "accept", "disabled", "previewWidth", "previewHeight"], outputs: ["select", "remove", "download"] }, { kind: "directive", type: i14.FsFileLabelDirective, selector: "[fsFileLabel]" }, { kind: "component", type: i15.FsDatePickerComponent, selector: "[fsDatePicker]", inputs: ["minYear", "maxYear", "minDate", "maxDate", "startOfDay", "view", "format", "minutes", "weekStartsOn"], outputs: ["change"] }, { kind: "component", type: i15.FsTimePickerComponent, selector: "[fsTimePicker]", inputs: ["view"] }, { kind: "component", type: i16.FsColorPickerComponent, selector: "[fsColorPicker]", inputs: ["showClear"] }, { kind: "pipe", type: i17.KeyNameValuePipe, name: "keyNameValue" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
126
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SettingsComponent, decorators: [{
|
|
127
|
-
type: Component,
|
|
128
|
-
args: [{ selector: 'fs-system-settings', changeDetection: ChangeDetectionStrategy.OnPush, 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 <mat-label>{{setting.label}}</mat-label>\n <input\n matInput\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 <mat-label>{{setting.label}}</mat-label>\n <textarea\n matInput\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-label>{{setting.label}}</mat-label>\n <mat-select\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 <mat-label>{{setting.label}}</mat-label>\n <input\n matInput\n fsDatePicker\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 <mat-label>{{setting.label}}</mat-label>\n <input\n matInput\n fsColorPicker\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 <mat-label>{{setting.label}}</mat-label>\n <input\n matInput\n fsTimePicker\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"] }]
|
|
129
|
-
}], ctorParameters: function () { return [{ type: i1.FsMessage }, { type: i2.FsClipboard }, { type: i3.FsPrompt }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { loadSettings: [{
|
|
130
|
-
type: Input
|
|
131
|
-
}], save: [{
|
|
132
|
-
type: Input
|
|
133
|
-
}], fileRemove: [{
|
|
134
|
-
type: Output
|
|
135
|
-
}], fileSelect: [{
|
|
136
|
-
type: Output
|
|
137
|
-
}] } });
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL3N5c3RlbS9jb21wb25lbnRzL3NldHRpbmdzL3NldHRpbmdzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vY29tcG9uZW50cy9zZXR0aW5ncy9zZXR0aW5ncy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDekMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFVbkQsTUFBTSxPQUFPLGlCQUFpQjtJQVk1QixZQUNVLFFBQW1CLEVBQ25CLFVBQXVCLEVBQ3ZCLE9BQWlCLEVBQ2pCLE1BQXlCO1FBSHpCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsZUFBVSxHQUFWLFVBQVUsQ0FBYTtRQUN2QixZQUFPLEdBQVAsT0FBTyxDQUFVO1FBQ2pCLFdBQU0sR0FBTixNQUFNLENBQW1CO1FBWGxCLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2hDLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBZ0MsQ0FBQztRQUV4RSxvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQUNyQixXQUFNLEdBQUcsRUFB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Q0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OzhHQXBIVSxpQkFBaUI7a0dBQWpCLGlCQUFpQixtTENqQjlCLHNsSkEySEE7MkZEMUdhLGlCQUFpQjtrQkFON0IsU0FBUzsrQkFDRSxvQkFBb0IsbUJBR2IsdUJBQXVCLENBQUMsTUFBTTtpTEFJL0IsWUFBWTtzQkFBM0IsS0FBSztnQkFDVSxJQUFJO3NCQUFuQixLQUFLO2dCQUVXLFVBQVU7c0JBQTFCLE1BQU07Z0JBQ1UsVUFBVTtzQkFBMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBGc1Byb21wdCB9IGZyb20gJ0BmaXJlc3RpdGNoL3Byb21wdCc7XG5pbXBvcnQgeyBwYXJzZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2RhdGUnO1xuaW1wb3J0IHsgRnNNZXNzYWdlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvbWVzc2FnZSc7XG5pbXBvcnQgeyBGc0NsaXBib2FyZCB9IGZyb20gJ0BmaXJlc3RpdGNoL2NsaXBib2FyZCc7XG5cbmltcG9ydCB7IFNldHRpbmdJbnRlcmZhY2VUeXBlIH0gZnJvbSAnLi4vLi4vZW51bXMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZzLXN5c3RlbS1zZXR0aW5ncycsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZXR0aW5ncy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NldHRpbmdzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTZXR0aW5nc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgcHVibGljIGxvYWRTZXR0aW5nczogKHF1ZXJ5KSA9PiBPYnNlcnZhYmxlPGFueVtdPjtcbiAgQElucHV0KCkgcHVibGljIHNhdmU6IChkYXRhOiBhbnksIGdyb3VwOiBzdHJpbmcpID0+IE9ic2VydmFibGU8YW55PjtcblxuICBAT3V0cHV0KCkgcHVibGljIGZpbGVSZW1vdmUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBwdWJsaWMgZmlsZVNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8eyBzZXR0aW5nOiBhbnksIGZpbGU6IEJsb2IgfT4oKTtcblxuICBwdWJsaWMgZ3JvdXBlZFNldHRpbmdzID0gW107XG4gIHB1YmxpYyBncm91cHMgPSBbXTtcbiAgcHVibGljIFNldHRpbmdJbnRlcmZhY2VUeXBlID0gU2V0dGluZ0ludGVyZmFjZVR5cGU7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfbWVzc2FnZTogRnNNZXNzYWdlLFxuICAgIHByaXZhdGUgX2NsaXBib2FyZDogRnNDbGlwYm9hcmQsXG4gICAgcHJpdmF0ZSBfcHJvbXB0OiBGc1Byb21wdCxcbiAgICBwcml2YXRlIF9jZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICkgeyB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubG9hZFNldHRpbmdzKHtcbiAgICAgIHZpc2libGU6IHRydWUsXG4gICAgfSlcbiAgICAgIC5zdWJzY3JpYmUoKHNldHRpbmdzKSA9PiB7XG4gICAgICAgIHNldHRpbmdzID0gc2V0dGluZ3NcbiAgICAgICAgICAuZmlsdGVyKChzZXR0aW5nKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gc2V0dGluZy5pbnRlcmZhY2VUeXBlICE9PSBTZXR0aW5nSW50ZXJmYWNlVHlwZS5Ob25lO1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLm1hcCgoc2V0dGluZykgPT4ge1xuICAgICAgICAgICAgc3dpdGNoIChzZXR0aW5nLmludGVyZmFjZVR5cGUpIHtcbiAgICAgICAgICAgICAgY2FzZSBTZXR0aW5nSW50ZXJmYWNlVHlwZS5EYXRlOlxuICAgICAgICAgICAgICBjYXNlIFNldHRpbmdJbnRlcmZhY2VUeXBlLlRpbWU6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgIC4uLnNldHRpbmcsXG4gICAgICAgICAgICAgICAgICB2YWx1ZTogcGFyc2Uoc2V0dGluZy52YWx1ZSksXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICBjYXNlIFNldHRpbmdJbnRlcmZhY2VUeXBlLlNlbGVjdE11bHRpcGxlOlxuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAuLi5zZXR0aW5nLFxuICAgICAgICAgICAgICAgICAgdmFsdWU6IEFycmF5LmlzQXJyYXkoc2V0dGluZy52YWx1ZSkgPyBzZXR0aW5nLnZhbHVlIDogW10sXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgcmV0dXJuIHNldHRpbmc7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5ncm91cGVkU2V0dGluZ3MgPSBzZXR0aW5ncy5yZWR1Y2UoKGFjY3VtLCBpdGVtKSA9PiB7XG4gICAgICAgICAgaWYoYWNjdW1baXRlbS5ncm91cF0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgYWNjdW1baXRlbS5ncm91cF0gPSBbXTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYWNjdW1baXRlbS5ncm91cF0ucHVzaChpdGVtKTtcblxuICAgICAgICAgIHJldHVybiBhY2N1bTtcbiAgICAgICAgfSwge30pO1xuICAgICAgICBcbiAgICAgICAgdGhpcy5ncm91cHMgPSBPYmplY3Qua2V5cyh0aGlzLmdyb3VwZWRTZXR0aW5ncyk7XG4gICAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZXhwb3J0KGV2ZW50OiBVSUV2ZW50LCBzZXR0aW5ncyk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGNvbnN0IGRhdGEgPSBzZXR0aW5ncy5tYXAoKHNldHRpbmcpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5hbWU6IHNldHRpbmcubmFtZSxcbiAgICAgICAgdmFsdWU6IHNldHRpbmcudmFsdWUsXG4gICAgICAgIGdyb3VwOiBzZXR0aW5nLmdyb3VwLFxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5fY2xpcGJvYXJkLmNvcHkoSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xuICAgIHRoaXMuX21lc3NhZ2Uuc3VjY2VzcygnQ29waWVkIHRvIGNsaXBib2FyZCcpO1xuICB9XG5cbiAgcHVibGljIGltcG9ydChldmVudDogVUlFdmVudCwgZ3JvdXApOiB2b2lkIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLl9wcm9tcHQuaW5wdXQoe1xuICAgICAgICBsYWJlbDogJ0pTT04gSW1wb3J0JyxcbiAgICAgICAgdGl0bGU6ICdJbXBvcnQgU2V0dGluZ3MnLFxuICAgICAgICBjb21taXRMYWJlbDogJ0ltcG9ydCcsXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgfSkuc3Vic2NyaWJlKCh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBzZXR0aW5ncyA9IHRoaXMuZ3JvdXBlZFNldHRpbmdzW2dyb3VwXTtcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBKU09OLnBhcnNlKHZhbHVlKTtcblxuICAgICAgICAgICAgZGF0YS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHNldHRpbmcgPSBzZXR0aW5ncy5maW5kKChzKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0ubmFtZSA9PT0gcy5uYW1lO1xuICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICBpZiAoc2V0dGluZykge1xuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oc2V0dGluZywgaXRlbSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aGlzLl9tZXNzYWdlLmVycm9yKGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc2F2ZUdyb3VwKGdyb3VwKTogdm9pZCB7XG4gICAgY29uc3Qgc2V0dGluZ3MgPSB0aGlzLmdyb3VwZWRTZXR0aW5nc1tncm91cF07XG4gICAgY29uc3QgdmFsdWVzID0gc2V0dGluZ3MucmVkdWNlKChyZXN1bHQsIHZhbHVlKSA9PiB7XG4gICAgICByZXR1cm4gKHJlc3VsdFt2YWx1ZS5uYW1lXSA9IHZhbHVlLnZhbHVlLCByZXN1bHQpO1xuICAgIH0sIHt9KTtcblxuICAgIHRoaXMuc2F2ZShncm91cCwgdmFsdWVzKVxuICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5fbWVzc2FnZS5zdWNjZXNzKCdDaGFuZ2VzIFNhdmVkJyk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIlxuPG1hdC1hY2NvcmRpb24+XG4gIDxtYXQtZXhwYW5zaW9uLXBhbmVsIGhpZGVUb2dnbGUgKm5nRm9yPVwibGV0IGdyb3VwIG9mIGdyb3Vwc1wiPlxuICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cbiAgICAgIDxtYXQtcGFuZWwtdGl0bGU+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS1yb3dcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj57e2dyb3VwIHx8ICdHZW5lcmFsJ319PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbnNcIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIidFeHBvcnQgJyArIChncm91cCB8fCAnR2VuZXJhbCcpICsgJyBTZXR0aW5ncydcIlxuICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgKGNsaWNrKT1cImV4cG9ydCgkZXZlbnQsIGdyb3VwZWRTZXR0aW5nc1tncm91cF0pXCI+XG4gICAgICAgICAgICAgIDxtYXQtaWNvbj5jbG91ZF9kb3dubG9hZDwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIidJbXBvcnQgJyArIChncm91cCB8fCAnR2VuZXJhbCcpICsgJyBTZXR0aW5ncydcIlxuICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgKGNsaWNrKT1cImltcG9ydCgkZXZlbnQsIGdyb3VwKVwiPlxuICAgICAgICAgICAgICA8bWF0LWljb24+Y2xvdWRfdXBsb2FkPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbWF0LXBhbmVsLXRpdGxlPlxuICAgIDwvbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XG5cbiAgICA8ZGl2IFxuICAgICAgICBoaWRlVG9nZ2xlIFxuICAgICAgICAqbmdGb3I9XCJsZXQgc2V0dGluZyBvZiBncm91cGVkU2V0dGluZ3NbZ3JvdXBdXCIgXG4gICAgICAgIGNsYXNzPVwic2V0dGluZ1wiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ2hhcy1pbnN0cnVjdGlvbic6ICEhIHNldHRpbmcuaW5zdHJ1Y3Rpb24gfVwiPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkIFxuICAgICAgICAgIGNsYXNzPVwiZnVsbC13aWR0aCBmb3JtLWZpZWxkLW11bHRpbGluZS1zdWJzY3JpcHRcIlxuICAgICAgICAgICpuZ0lmPVwic2V0dGluZy5pbnRlcmZhY2VUeXBlPT09U2V0dGluZ0ludGVyZmFjZVR5cGUuSW5wdXRCb3hcIj5cbiAgICAgICAgPG1hdC1sYWJlbD57e3NldHRpbmcubGFiZWx9fTwvbWF0LWxhYmVsPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgIFsobmdNb2RlbCldPVwic2V0dGluZy52YWx1ZVwiXG4gICAgICAgICAgW25hbWVdPVwiJ3NldHRpbmcnICsgc2V0dGluZy5pZFwiPlxuICAgICAgICAgIDxtYXQtaGludD57e3NldHRpbmcuaW5zdHJ1Y3Rpb259fTwvbWF0LWhpbnQ+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICA8bWF0LWZvcm0tZmllbGQgXG4gICAgICAgICAgY2xhc3M9XCJmdWxsLXdpZHRoIGZvcm0tZmllbGQtbXVsdGlsaW5lLXN1YnNjcmlwdFwiIFxuICAgICAgICAgICpuZ0lmPVwic2V0dGluZy5pbnRlcmZhY2VUeXBlPT09U2V0dGluZ0ludGVyZmFjZVR5cGUuVGV4dGFyZWFcIj5cbiAgICAgICAgPG1hdC1sYWJlbD57e3NldHRpbmcubGFiZWx9fTwvbWF0LWxhYmVsPlxuICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgIFsobmdNb2RlbCldPVwic2V0dGluZy52YWx1ZVwiXG4gICAgICAgICAgW25hbWVdPVwiJ3NldHRpbmcnICsgc2V0dGluZy5pZFwiPlxuICAgICAgICA8L3RleHRhcmVhPlxuICAgICAgICA8bWF0LWhpbnQ+e3tzZXR0aW5nLmluc3RydWN0aW9ufX08L21hdC1oaW50PlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgPG1hdC1mb3JtLWZpZWxkIFxuICAgICAgICAgIGNsYXNzPVwiZnVsbC13aWR0aCBmb3JtLWZpZWxkLW11bHRpbGluZS1zdWJzY3JpcHRcIiBcbiAgICAgICAgICAqbmdJZj1cInNldHRpbmcuaW50ZXJmYWNlVHlwZT09PVNldHRpbmdJbnRlcmZhY2VUeXBlLlNlbGVjdCB8fCBzZXR0aW5nLmludGVyZmFjZVR5cGU9PT1TZXR0aW5nSW50ZXJmYWNlVHlwZS5TZWxlY3RNdWx0aXBsZVwiPlxuICAgICAgICA8bWF0LWxhYmVsPnt7c2V0dGluZy5sYWJlbH19PC9tYXQtbGFiZWw+XG4gICAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNldHRpbmcudmFsdWVcIlxuICAgICAgICAgICAgW211bHRpcGxlXT1cInNldHRpbmcuaW50ZXJmYWNlVHlwZT09PVNldHRpbmdJbnRlcmZhY2VUeXBlLlNlbGVjdE11bHRpcGxlXCJcbiAgICAgICAgICAgIFtuYW1lXT1cIidzZXR0aW5nJyArIHNldHRpbmcuaWRcIj5cbiAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBzZXR0aW5nLnZhbHVlcyB8IGtleU5hbWVWYWx1ZVwiIFt2YWx1ZV09XCJpdGVtLnZhbHVlXCI+XG4gICAgICAgICAgICB7e2l0ZW0ubmFtZX19XG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgIDxtYXQtaGludD57e3NldHRpbmcuaW5zdHJ1Y3Rpb259fTwvbWF0LWhpbnQ+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICA8bWF0LWZvcm0tZmllbGQgXG4gICAgICAgICAgY2xhc3M9XCJmdWxsLXdpZHRoIGZvcm0tZmllbGQtbXVsdGlsaW5lLXN1YnNjcmlwdFwiIFxuICAgICAgICAgICpuZ0lmPVwic2V0dGluZy5pbnRlcmZhY2VUeXBlPT09U2V0dGluZ0ludGVyZmFjZVR5cGUuRGF0ZVwiPlxuICAgICAgICA8bWF0LWxhYmVsPnt7c2V0dGluZy5sYWJlbH19PC9tYXQtbGFiZWw+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgZnNEYXRlUGlja2VyXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJzZXR0aW5nLnZhbHVlXCJcbiAgICAgICAgICBbbmFtZV09XCInc2V0dGluZycgKyBzZXR0aW5nLmlkXCI+XG4gICAgICAgICAgPG1hdC1oaW50Pnt7c2V0dGluZy5pbnN0cnVjdGlvbn19PC9tYXQtaGludD5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgIDxtYXQtZm9ybS1maWVsZCBcbiAgICAgICAgICBjbGFzcz1cImZ1bGwtd2lkdGggZm9ybS1maWVsZC1tdWx0aWxpbmUtc3Vic2NyaXB0XCIgXG4gICAgICAgICAgKm5nSWY9XCJzZXR0aW5nLmludGVyZmFjZVR5cGU9PT1TZXR0aW5nSW50ZXJmYWNlVHlwZS5Db2xvclwiPlxuICAgICAgICA8bWF0LWxhYmVsPnt7c2V0dGluZy5sYWJlbH19PC9tYXQtbGFiZWw+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgZnNDb2xvclBpY2tlclxuICAgICAgICAgIFsobmdNb2RlbCldPVwic2V0dGluZy52YWx1ZVwiXG4gICAgICAgICAgW25hbWVdPVwiJ3NldHRpbmcnICsgc2V0dGluZy5pZFwiPlxuICAgICAgICAgIDxtYXQtaGludD57e3NldHRpbmcuaW5zdHJ1Y3Rpb259fTwvbWF0LWhpbnQ+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICA8bWF0LWZvcm0tZmllbGQgXG4gICAgICAgICAgY2xhc3M9XCJmdWxsLXdpZHRoIGZvcm0tZmllbGQtbXVsdGlsaW5lLXN1YnNjcmlwdFwiIFxuICAgICAgICAgICpuZ0lmPVwic2V0dGluZy5pbnRlcmZhY2VUeXBlPT09U2V0dGluZ0ludGVyZmFjZVR5cGUuVGltZVwiPlxuICAgICAgICA8bWF0LWxhYmVsPnt7c2V0dGluZy5sYWJlbH19PC9tYXQtbGFiZWw+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgZnNUaW1lUGlja2VyXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJzZXR0aW5nLnZhbHVlXCJcbiAgICAgICAgICBbbmFtZV09XCInc2V0dGluZycgKyBzZXR0aW5nLmlkXCI+XG4gICAgICAgICAgPG1hdC1oaW50Pnt7c2V0dGluZy5pbnN0cnVjdGlvbn19PC9tYXQtaGludD5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgIDxmcy1maWxlLXBpY2tlclxuICAgICAgICAgICpuZ0lmPVwic2V0dGluZy5pbnRlcmZhY2VUeXBlPT09U2V0dGluZ0ludGVyZmFjZVR5cGUuRmlsZVwiXG4gICAgICAgICAgW2FsbG93UmVtb3ZlXT1cInRydWVcIlxuICAgICAgICAgIFthbGxvd0Rvd25sb2FkXT1cInRydWVcIlxuICAgICAgICAgIChzZWxlY3QpPVwiZmlsZVNlbGVjdC5lbWl0KHsgc2V0dGluZzogc2V0dGluZywgZmlsZTogJGV2ZW50LmZpbGUgfSlcIlxuICAgICAgICAgIChyZW1vdmUpPVwiZmlsZVJlbW92ZS5lbWl0KHNldHRpbmcpXCJcbiAgICAgICAgICBbdXJsXT1cInNldHRpbmcudmFsdWVcIj5cbiAgICAgICAgPGRpdiBmc0ZpbGVMYWJlbD57e3NldHRpbmcubGFiZWx9fTwvZGl2PlxuICAgICAgICA8ZGl2IGZzRmlsZUhpbnQ+e3tzZXR0aW5nLmluc3RydWN0aW9ufX08L2Rpdj5cbiAgICAgIDwvZnMtZmlsZS1waWNrZXI+XG4gICAgPC9kaXY+XG5cbiAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwic2F2ZUdyb3VwKGdyb3VwKVwiPlNhdmU8L2J1dHRvbj5cblxuICA8L21hdC1leHBhbnNpb24tcGFuZWw+XG5cbjwvbWF0LWFjY29yZGlvbj5cbiJdfQ==
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { Component, ViewChild, Input } from '@angular/core';
|
|
2
|
-
import { ItemType } from '@firestitch/filter';
|
|
3
|
-
import { FsListComponent } from '@firestitch/list';
|
|
4
|
-
import { map } from 'rxjs/operators';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@firestitch/date";
|
|
7
|
-
import * as i2 from "@firestitch/list";
|
|
8
|
-
export class UpgradeLogsComponent {
|
|
9
|
-
constructor() {
|
|
10
|
-
this.config = null;
|
|
11
|
-
this.logTypes = [];
|
|
12
|
-
}
|
|
13
|
-
ngOnInit() {
|
|
14
|
-
this._configList();
|
|
15
|
-
}
|
|
16
|
-
_configList() {
|
|
17
|
-
this.config = {
|
|
18
|
-
paging: false,
|
|
19
|
-
filters: [
|
|
20
|
-
{
|
|
21
|
-
type: ItemType.Keyword,
|
|
22
|
-
name: 'keyword',
|
|
23
|
-
label: 'Search'
|
|
24
|
-
}
|
|
25
|
-
],
|
|
26
|
-
fetch: query => {
|
|
27
|
-
return this.loadUpgradeLogs(query)
|
|
28
|
-
.pipe(map((response) => ({ data: response.data, paging: response.paging })));
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
UpgradeLogsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: UpgradeLogsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
34
|
-
UpgradeLogsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: UpgradeLogsComponent, selector: "fs-system-upgrade-logs", inputs: { loadUpgradeLogs: "loadUpgradeLogs" }, viewQueries: [{ propertyName: "list", first: true, predicate: FsListComponent, descendants: true, static: true }], ngImport: i0, template: "<fs-list [config]=\"config\">\n <fs-list-column>\n <ng-template fs-list-header>Name</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n {{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: [""], dependencies: [{ kind: "component", type: i1.FsDateAgoComponent, selector: "fs-date-ago", inputs: ["date", "showTime", "format", "showTooltip", "tooltipDateFormat"] }, { kind: "component", type: i2.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { kind: "directive", type: i2.FsListColumnDirective, selector: "fs-list-column", inputs: ["show", "title", "name", "customize", "sortable", "sortableDefault", "direction", "align", "width", "class"] }, { kind: "directive", type: i2.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }, { kind: "directive", type: i2.FsListHeaderDirective, selector: "[fs-list-header]", inputs: ["colspan", "align", "class"] }] });
|
|
35
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: UpgradeLogsComponent, decorators: [{
|
|
36
|
-
type: Component,
|
|
37
|
-
args: [{ selector: 'fs-system-upgrade-logs', 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" }]
|
|
38
|
-
}], propDecorators: { list: [{
|
|
39
|
-
type: ViewChild,
|
|
40
|
-
args: [FsListComponent, { static: true }]
|
|
41
|
-
}], loadUpgradeLogs: [{
|
|
42
|
-
type: Input
|
|
43
|
-
}] } });
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBncmFkZS1sb2dzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vY29tcG9uZW50cy91cGdyYWRlLWxvZ3MvdXBncmFkZS1sb2dzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vY29tcG9uZW50cy91cGdyYWRlLWxvZ3MvdXBncmFkZS1sb2dzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFnQixlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFTckMsTUFBTSxPQUFPLG9CQUFvQjtJQUxqQztRQVdTLFdBQU0sR0FBaUIsSUFBSSxDQUFDO1FBQzVCLGFBQVEsR0FBRyxFQUFFLENBQUM7S0F3QnRCO0lBdEJDLFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUNPLFdBQVc7UUFFakIsSUFBSSxDQUFDLE1BQU0sR0FBRztZQUNaLE1BQU0sRUFBRSxLQUFLO1lBQ2IsT0FBTyxFQUFFO2dCQUNQO29CQUNFLElBQUksRUFBRSxRQUFRLENBQUMsT0FBTztvQkFDdEIsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsS0FBSyxFQUFFLFFBQVE7aUJBQ2hCO2FBQ0Y7WUFDRCxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUU7Z0JBQ2IsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQztxQkFDakMsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUMzRSxDQUFDO1lBQ0osQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDOztpSEE5QlUsb0JBQW9CO3FHQUFwQixvQkFBb0Isb0pBRXBCLGVBQWUsOERDZDVCLG1vQkFzQkE7MkZEVmEsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLHdCQUF3Qjs4QkFNWSxJQUFJO3NCQUFqRCxTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBRW5DLGVBQWU7c0JBQXZCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSXRlbVR5cGUgfSBmcm9tICdAZmlyZXN0aXRjaC9maWx0ZXInO1xuaW1wb3J0IHsgRnNMaXN0Q29uZmlnLCBGc0xpc3RDb21wb25lbnQgfSBmcm9tICdAZmlyZXN0aXRjaC9saXN0JztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmcy1zeXN0ZW0tdXBncmFkZS1sb2dzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VwZ3JhZGUtbG9ncy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3VwZ3JhZGUtbG9ncy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFVwZ3JhZGVMb2dzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBAVmlld0NoaWxkKEZzTGlzdENvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSkgbGlzdDogRnNMaXN0Q29tcG9uZW50O1xuXG4gIEBJbnB1dCgpIGxvYWRVcGdyYWRlTG9nczogKGRhdGE6IGFueSkgPT4gT2JzZXJ2YWJsZTx7IGRhdGE6IGFueVtdLCBwYWdpbmc6IGFueSB9PjtcblxuICBwdWJsaWMgY29uZmlnOiBGc0xpc3RDb25maWcgPSBudWxsO1xuICBwdWJsaWMgbG9nVHlwZXMgPSBbXTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLl9jb25maWdMaXN0KCk7XG4gIH1cbiAgcHJpdmF0ZSBfY29uZmlnTGlzdCgpIHtcblxuICAgIHRoaXMuY29uZmlnID0ge1xuICAgICAgcGFnaW5nOiBmYWxzZSxcbiAgICAgIGZpbHRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6IEl0ZW1UeXBlLktleXdvcmQsXG4gICAgICAgICAgbmFtZTogJ2tleXdvcmQnLFxuICAgICAgICAgIGxhYmVsOiAnU2VhcmNoJ1xuICAgICAgICB9XG4gICAgICBdLFxuICAgICAgZmV0Y2g6IHF1ZXJ5ID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZFVwZ3JhZGVMb2dzKHF1ZXJ5KVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+ICh7IGRhdGE6IHJlc3BvbnNlLmRhdGEsIHBhZ2luZzogcmVzcG9uc2UucGFnaW5nIH0pKVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH07XG4gIH1cbn1cbiIsIjxmcy1saXN0IFtjb25maWddPVwiY29uZmlnXCI+XG4gIDxmcy1saXN0LWNvbHVtbj5cbiAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1oZWFkZXI+TmFtZTwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlIGZzLWxpc3QtY2VsbCBsZXQtcm93PVwicm93XCI+XG4gICAgICB7e3Jvdy5uYW1lfX1cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2ZzLWxpc3QtY29sdW1uPlxuXG4gIDxmcy1saXN0LWNvbHVtbj5cbiAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1oZWFkZXI+RnVuY3Rpb248L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWNlbGwgbGV0LXJvdz1cInJvd1wiPlxuICAgICAge3tyb3cuZnVuY3Rpb259fSgpXG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9mcy1saXN0LWNvbHVtbj5cblxuICA8ZnMtbGlzdC1jb2x1bW4+XG4gICAgPG5nLXRlbXBsYXRlIGZzLWxpc3QtaGVhZGVyPkRhdGU8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWNlbGwgbGV0LXJvdz1cInJvd1wiPlxuICAgICAgPGZzLWRhdGUtYWdvIFtkYXRlXT1cInJvdy5jcmVhdGVEYXRlXCI+PC9mcy1kYXRlLWFnbz5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2ZzLWxpc3QtY29sdW1uPlxuPC9mcy1saXN0PlxuIl19
|