@firestitch/system 12.0.0 → 12.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/app/components/api-log/api-log.component.d.ts +13 -13
  2. package/app/components/api-log/index.d.ts +1 -1
  3. package/app/components/api-logs/api-logs.component.d.ts +21 -23
  4. package/app/components/api-logs/index.d.ts +1 -1
  5. package/app/components/cron/cron.component.d.ts +24 -24
  6. package/app/components/cron/index.d.ts +1 -1
  7. package/app/components/cron-log/cron-log.component.d.ts +12 -12
  8. package/app/components/cron-log/index.d.ts +1 -1
  9. package/app/components/crons/crons.component.d.ts +36 -38
  10. package/app/components/crons/index.d.ts +1 -1
  11. package/app/components/dashboard/dashboard.component.d.ts +28 -30
  12. package/app/components/dashboard/index.d.ts +1 -1
  13. package/app/components/file-manager/file-manager.component.d.ts +17 -17
  14. package/app/components/file-manager/index.d.ts +1 -1
  15. package/app/components/info/index.d.ts +1 -1
  16. package/app/components/info/info.component.d.ts +11 -11
  17. package/app/components/process/index.d.ts +1 -1
  18. package/app/components/process/process.component.d.ts +16 -16
  19. package/app/components/processes/index.d.ts +1 -1
  20. package/app/components/processes/processes.component.d.ts +34 -36
  21. package/app/components/server-log/index.d.ts +1 -1
  22. package/app/components/server-log/server-log.component.d.ts +10 -10
  23. package/app/components/server-logs/index.d.ts +1 -1
  24. package/app/components/server-logs/server-logs.component.d.ts +21 -23
  25. package/app/components/settings/index.d.ts +1 -1
  26. package/app/components/settings/settings.component.d.ts +30 -32
  27. package/app/components/upgrade-logs/index.d.ts +1 -1
  28. package/app/components/upgrade-logs/upgrade-logs.component.d.ts +17 -20
  29. package/app/consts/api-log-states.const.d.ts +5 -5
  30. package/app/consts/cron-log-states.const.d.ts +6 -6
  31. package/app/consts/cron-states.const.d.ts +5 -5
  32. package/app/consts/index.d.ts +3 -3
  33. package/app/consts/process-states.const.d.ts +5 -5
  34. package/app/enums/api-log-state.enum.d.ts +5 -5
  35. package/app/enums/cron-log-state.enum.d.ts +13 -13
  36. package/app/enums/cron-state.enum.d.ts +7 -7
  37. package/app/enums/index.d.ts +5 -5
  38. package/app/enums/process-state.enum.d.ts +8 -8
  39. package/app/enums/setting-interface-type.enum.d.ts +14 -11
  40. package/app/fs-system.module.d.ts +47 -46
  41. package/app/helpers/index-name-value.d.ts +1 -1
  42. package/app/injectors/system-config.injector.d.ts +2 -2
  43. package/app/interfaces/dashboard-action.d.ts +5 -5
  44. package/app/interfaces/index.d.ts +3 -3
  45. package/app/interfaces/process-action.d.ts +6 -6
  46. package/app/interfaces/system-config.d.ts +2 -3
  47. package/app/pipes/key-name-value.pipe.d.ts +8 -8
  48. package/bundles/firestitch-system.umd.js +1534 -1577
  49. package/bundles/firestitch-system.umd.js.map +1 -1
  50. package/esm2015/app/components/api-log/api-log.component.js +38 -38
  51. package/esm2015/app/components/api-log/index.js +2 -2
  52. package/esm2015/app/components/api-logs/api-logs.component.js +72 -75
  53. package/esm2015/app/components/api-logs/index.js +2 -2
  54. package/esm2015/app/components/cron/cron.component.js +103 -103
  55. package/esm2015/app/components/cron/index.js +2 -2
  56. package/esm2015/app/components/cron-log/cron-log.component.js +41 -41
  57. package/esm2015/app/components/cron-log/index.js +2 -2
  58. package/esm2015/app/components/crons/crons.component.js +188 -191
  59. package/esm2015/app/components/crons/index.js +2 -2
  60. package/esm2015/app/components/dashboard/dashboard.component.js +91 -94
  61. package/esm2015/app/components/dashboard/index.js +2 -2
  62. package/esm2015/app/components/file-manager/file-manager.component.js +54 -54
  63. package/esm2015/app/components/file-manager/index.js +2 -2
  64. package/esm2015/app/components/info/index.js +2 -2
  65. package/esm2015/app/components/info/info.component.js +36 -36
  66. package/esm2015/app/components/process/index.js +2 -2
  67. package/esm2015/app/components/process/process.component.js +49 -49
  68. package/esm2015/app/components/processes/index.js +2 -2
  69. package/esm2015/app/components/processes/processes.component.js +164 -167
  70. package/esm2015/app/components/server-log/index.js +2 -2
  71. package/esm2015/app/components/server-log/server-log.component.js +42 -42
  72. package/esm2015/app/components/server-logs/index.js +2 -2
  73. package/esm2015/app/components/server-logs/server-logs.component.js +57 -60
  74. package/esm2015/app/components/settings/index.js +2 -2
  75. package/esm2015/app/components/settings/settings.component.js +134 -130
  76. package/esm2015/app/components/upgrade-logs/index.js +2 -2
  77. package/esm2015/app/components/upgrade-logs/upgrade-logs.component.js +48 -51
  78. package/esm2015/app/consts/api-log-states.const.js +7 -7
  79. package/esm2015/app/consts/cron-log-states.const.js +14 -14
  80. package/esm2015/app/consts/cron-states.const.js +9 -9
  81. package/esm2015/app/consts/index.js +4 -4
  82. package/esm2015/app/consts/process-states.const.js +10 -10
  83. package/esm2015/app/enums/api-log-state.enum.js +7 -7
  84. package/esm2015/app/enums/cron-log-state.enum.js +14 -14
  85. package/esm2015/app/enums/cron-state.enum.js +9 -9
  86. package/esm2015/app/enums/index.js +6 -6
  87. package/esm2015/app/enums/process-state.enum.js +10 -10
  88. package/esm2015/app/enums/setting-interface-type.enum.js +16 -13
  89. package/esm2015/app/fs-system.module.js +181 -183
  90. package/esm2015/app/helpers/index-name-value.js +8 -8
  91. package/esm2015/app/injectors/system-config.injector.js +3 -3
  92. package/esm2015/app/interfaces/dashboard-action.js +2 -2
  93. package/esm2015/app/interfaces/index.js +4 -4
  94. package/esm2015/app/interfaces/process-action.js +2 -2
  95. package/esm2015/app/interfaces/system-config.js +2 -2
  96. package/esm2015/app/pipes/key-name-value.pipe.js +21 -21
  97. package/esm2015/firestitch-system.js +4 -4
  98. package/esm2015/public_api.js +19 -19
  99. package/fesm2015/firestitch-system.js +1172 -1209
  100. package/fesm2015/firestitch-system.js.map +1 -1
  101. package/firestitch-system.d.ts +5 -5
  102. package/package.json +1 -1
  103. package/public_api.d.ts +20 -20
  104. package/app/services/index.d.ts +0 -1
  105. package/app/services/system.service.d.ts +0 -10
  106. package/esm2015/app/services/index.js +0 -2
  107. package/esm2015/app/services/system.service.js +0 -42
@@ -1,130 +1,134 @@
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==
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 { SettingInterfaceType } from '../../enums';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@firestitch/message";
10
+ import * as i2 from "ngx-clipboard";
11
+ import * as i3 from "@firestitch/prompt";
12
+ import * as i4 from "@angular/material/expansion";
13
+ import * as i5 from "@angular/material/button";
14
+ import * as i6 from "@angular/material/icon";
15
+ import * as i7 from "@angular/material/form-field";
16
+ import * as i8 from "@angular/material/select";
17
+ import * as i9 from "@angular/material/core";
18
+ import * as i10 from "@firestitch/datepicker";
19
+ import * as i11 from "@firestitch/colorpicker";
20
+ import * as i12 from "@firestitch/file";
21
+ import * as i13 from "@angular/common";
22
+ import * as i14 from "@angular/material/tooltip";
23
+ import * as i15 from "@angular/flex-layout/extended";
24
+ import * as i16 from "@angular/material/input";
25
+ import * as i17 from "@angular/forms";
26
+ import * as i18 from "../../pipes/key-name-value.pipe";
27
+ export class SettingsComponent {
28
+ constructor(_message, _clipboardService, _prompt, _cdRef) {
29
+ this._message = _message;
30
+ this._clipboardService = _clipboardService;
31
+ this._prompt = _prompt;
32
+ this._cdRef = _cdRef;
33
+ this.fileRemove = new EventEmitter();
34
+ this.fileSelect = new EventEmitter();
35
+ this.groupedSettings = [];
36
+ this.groups = [];
37
+ this.SettingInterfaceType = SettingInterfaceType;
38
+ }
39
+ ngOnInit() {
40
+ this.loadSettings()
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
+ setting.value = parse(setting.value);
51
+ case SettingInterfaceType.SelectMultiple:
52
+ setting.value = Array.isArray(setting.value) ? setting.value : [];
53
+ break;
54
+ }
55
+ return setting;
56
+ });
57
+ this.groupedSettings = groupBy(settings, (item) => {
58
+ return item.group;
59
+ });
60
+ this.groups = Object.keys(this.groupedSettings);
61
+ this._cdRef.markForCheck();
62
+ });
63
+ }
64
+ export(event, settings) {
65
+ event.stopPropagation();
66
+ const data = settings.map((setting) => {
67
+ return {
68
+ name: setting.name,
69
+ value: setting.value,
70
+ group: setting.group,
71
+ };
72
+ });
73
+ this._clipboardService.copy(JSON.stringify(data));
74
+ this._message.success('Copied to clipboard');
75
+ }
76
+ import(event, group) {
77
+ event.stopPropagation();
78
+ this._prompt.input({
79
+ label: 'JSON Import',
80
+ title: 'Import Settings',
81
+ commitLabel: 'Import',
82
+ required: true,
83
+ }).subscribe((value) => {
84
+ if (value) {
85
+ try {
86
+ const settings = this.groupedSettings[group];
87
+ const data = JSON.parse(value);
88
+ data.forEach((item) => {
89
+ const setting = settings.find((s) => {
90
+ return item.name === s.name;
91
+ });
92
+ if (setting) {
93
+ Object.assign(setting, item);
94
+ }
95
+ });
96
+ this._cdRef.markForCheck();
97
+ }
98
+ catch (e) {
99
+ this._message.error(e);
100
+ }
101
+ }
102
+ });
103
+ }
104
+ saveGroup(group) {
105
+ const settings = this.groupedSettings[group];
106
+ const values = reduce(settings, (result, value, key) => {
107
+ return (result[value.name] = value.value, result);
108
+ }, {});
109
+ this.save(group, values)
110
+ .subscribe(() => {
111
+ this._message.success('Changes Saved');
112
+ });
113
+ }
114
+ }
115
+ SettingsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SettingsComponent, deps: [{ token: i1.FsMessage }, { token: i2.ClipboardService }, { token: i3.FsPrompt }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
116
+ 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: "\r\n<mat-accordion>\r\n <mat-expansion-panel hideToggle *ngFor=\"let group of groups\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n <div class=\"title-row\">\r\n <div class=\"title\">{{group || 'General'}}</div>\r\n <div class=\"actions\">\r\n <button\r\n type=\"button\"\r\n [matTooltip]=\"'Export ' + (group || 'General') + ' Settings'\"\r\n mat-icon-button\r\n (click)=\"export($event, groupedSettings[group])\">\r\n <mat-icon>cloud_download</mat-icon>\r\n </button>\r\n <button\r\n type=\"button\"\r\n [matTooltip]=\"'Import ' + (group || 'General') + ' Settings'\"\r\n mat-icon-button\r\n (click)=\"import($event, group)\">\r\n <mat-icon>cloud_upload</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n\r\n <div \r\n hideToggle \r\n *ngFor=\"let setting of groupedSettings[group]\" \r\n class=\"setting\"\r\n [ngClass]=\"{ 'has-instruction': !! setting.instruction }\">\r\n <mat-form-field \r\n class=\"full-width form-field-multiline-subscript\"\r\n *ngIf=\"setting.interfaceType===SettingInterfaceType.InputBox\">\r\n <input\r\n matInput\r\n [placeholder]=\"setting.label\"\r\n [(ngModel)]=\"setting.value\"\r\n [name]=\"'setting' + setting.id\">\r\n <mat-hint>{{setting.instruction}}</mat-hint>\r\n </mat-form-field>\r\n\r\n <mat-form-field \r\n class=\"full-width form-field-multiline-subscript\" \r\n *ngIf=\"setting.interfaceType===SettingInterfaceType.Textarea\">\r\n <textarea\r\n matInput\r\n [placeholder]=\"setting.label\"\r\n [(ngModel)]=\"setting.value\"\r\n [name]=\"'setting' + setting.id\">\r\n </textarea>\r\n <mat-hint>{{setting.instruction}}</mat-hint>\r\n </mat-form-field>\r\n\r\n <mat-form-field \r\n class=\"full-width form-field-multiline-subscript\" \r\n *ngIf=\"setting.interfaceType===SettingInterfaceType.Select || setting.interfaceType===SettingInterfaceType.SelectMultiple\">\r\n <mat-select\r\n [placeholder]=\"setting.label\"\r\n [(ngModel)]=\"setting.value\"\r\n [multiple]=\"setting.interfaceType===SettingInterfaceType.SelectMultiple\"\r\n [name]=\"'setting' + setting.id\">\r\n <mat-option *ngFor=\"let item of setting.values | keyNameValue\" [value]=\"item.value\">\r\n {{item.name}}\r\n </mat-option>\r\n </mat-select>\r\n <mat-hint>{{setting.instruction}}</mat-hint>\r\n </mat-form-field>\r\n\r\n <mat-form-field \r\n class=\"full-width form-field-multiline-subscript\" \r\n *ngIf=\"setting.interfaceType===SettingInterfaceType.Date\">\r\n <input\r\n matInput\r\n fsDatePicker\r\n [placeholder]=\"setting.label\"\r\n [(ngModel)]=\"setting.value\"\r\n [name]=\"'setting' + setting.id\">\r\n <mat-hint>{{setting.instruction}}</mat-hint>\r\n </mat-form-field>\r\n\r\n <mat-form-field \r\n class=\"full-width form-field-multiline-subscript\" \r\n *ngIf=\"setting.interfaceType===SettingInterfaceType.Color\">\r\n <input\r\n matInput\r\n fsColorPicker\r\n [placeholder]=\"setting.label\"\r\n [(ngModel)]=\"setting.value\"\r\n [name]=\"'setting' + setting.id\">\r\n <mat-hint>{{setting.instruction}}</mat-hint>\r\n </mat-form-field>\r\n\r\n <mat-form-field \r\n class=\"full-width form-field-multiline-subscript\" \r\n *ngIf=\"setting.interfaceType===SettingInterfaceType.Time\">\r\n <input\r\n matInput\r\n fsTimePicker\r\n [placeholder]=\"setting.label\"\r\n [(ngModel)]=\"setting.value\"\r\n [name]=\"'setting' + setting.id\">\r\n <mat-hint>{{setting.instruction}}</mat-hint>\r\n </mat-form-field>\r\n\r\n <fs-file-picker\r\n *ngIf=\"setting.interfaceType===SettingInterfaceType.File\"\r\n [allowRemove]=\"true\"\r\n [allowDownload]=\"true\"\r\n (select)=\"fileSelect.emit({ setting: setting, file: $event.file })\"\r\n (remove)=\"fileRemove.emit(setting)\"\r\n [url]=\"setting.value\">\r\n <div fsFileLabel>{{setting.label}}</div>\r\n <div fsFileLabelMessage>{{setting.instruction}}</div>\r\n </fs-file-picker>\r\n </div>\r\n\r\n <button mat-raised-button color=\"primary\" type=\"button\" (click)=\"saveGroup(group)\">Save</button>\r\n\r\n </mat-expansion-panel>\r\n\r\n</mat-accordion>\r\n", styles: [".mat-expansion-panel-header{font-size:19px}.full-width{width:100%}.title-row{flex-direction:row;box-sizing:border-box;display:flex;place-content:center flex-start;align-items:center;width:100%}.title-row .title{display:flex;flex:1}:host ::ng-deep .mat-expansion-panel-header-title{margin:0}:host ::ng-deep .mat-expansion-panel .actions{display:none}:host ::ng-deep .mat-expansion-panel.mat-expanded .actions{display:block}:host ::ng-deep .setting.has-instruction fs-file-picker fs-label-message{display:block;padding-bottom:1em}\n"], components: [{ type: i4.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["disabled", "expanded", "hideToggle", "togglePosition"], outputs: ["opened", "closed", "expandedChange", "afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { type: i4.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["tabIndex", "expandedHeight", "collapsedHeight"] }, { type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i7.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i8.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i9.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i10.FsDatePickerComponent, selector: "[fsDatePicker]", inputs: ["minYear", "maxYear", "minDate", "maxDate", "startOfDay", "view", "format", "minutes"], outputs: ["change"] }, { type: i11.FsColorPickerComponent, selector: "[fsColorPicker]", inputs: ["showClear"] }, { type: i10.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: i4.MatAccordion, selector: "mat-accordion", inputs: ["multi", "displayMode", "togglePosition", "hideToggle"], exportAs: ["matAccordion"] }, { type: i13.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.MatExpansionPanelTitle, selector: "mat-panel-title" }, { type: i14.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i13.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i15.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i16.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i17.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i17.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i17.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i7.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { type: i12.FsFileLabelMessage, selector: "[fsFileLabelMessage]" }], pipes: { "keyNameValue": i18.KeyNameValuePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
117
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SettingsComponent, decorators: [{
118
+ type: Component,
119
+ args: [{
120
+ selector: 'fs-system-settings',
121
+ templateUrl: './settings.component.html',
122
+ styleUrls: ['./settings.component.scss'],
123
+ changeDetection: ChangeDetectionStrategy.OnPush,
124
+ }]
125
+ }], ctorParameters: function () { return [{ type: i1.FsMessage }, { type: i2.ClipboardService }, { type: i3.FsPrompt }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { loadSettings: [{
126
+ type: Input
127
+ }], save: [{
128
+ type: Input
129
+ }], fileRemove: [{
130
+ type: Output
131
+ }], fileSelect: [{
132
+ type: Output
133
+ }] } });
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dGluZ3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL3NldHRpbmdzL3NldHRpbmdzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9zZXR0aW5ncy9zZXR0aW5ncy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDekMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWhELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxhQUFhLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBVW5ELE1BQU0sT0FBTyxpQkFBaUI7SUFZNUIsWUFDVSxRQUFtQixFQUNuQixpQkFBbUMsRUFDbkMsT0FBaUIsRUFDakIsTUFBeUI7UUFIekIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO1FBQ25DLFlBQU8sR0FBUCxPQUFPLENBQVU7UUFDakIsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFYbEIsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDaEMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFnQyxDQUFDO1FBRXhFLG9CQUFlLEdBQUcsRUFBRSxDQUFDO1FB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U0FBUyxFQUFFLENBQUMsMkJBQTJCLENBQUM7b0JBQ3hDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDtzTEFHaUIsWUFBWTtzQkFBM0IsS0FBSztnQkFDVSxJQUFJO3NCQUFuQixLQUFLO2dCQUVXLFVBQVU7c0JBQTFCLE1BQU07Z0JBQ1UsVUFBVTtzQkFBMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgRnNQcm9tcHQgfSBmcm9tICdAZmlyZXN0aXRjaC9wcm9tcHQnO1xyXG5pbXBvcnQgeyBwYXJzZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2RhdGUnO1xyXG5pbXBvcnQgeyBGc01lc3NhZ2UgfSBmcm9tICdAZmlyZXN0aXRjaC9tZXNzYWdlJztcclxuXHJcbmltcG9ydCB7IGdyb3VwQnksIHJlZHVjZSB9IGZyb20gJ2xvZGFzaC1lcyc7XHJcbmltcG9ydCB7IENsaXBib2FyZFNlcnZpY2UgfSBmcm9tICduZ3gtY2xpcGJvYXJkJztcclxuXHJcbmltcG9ydCB7IFNldHRpbmdJbnRlcmZhY2VUeXBlIH0gZnJvbSAnLi4vLi4vZW51bXMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdmcy1zeXN0ZW0tc2V0dGluZ3MnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zZXR0aW5ncy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2V0dGluZ3MuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNldHRpbmdzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQElucHV0KCkgcHVibGljIGxvYWRTZXR0aW5nczogKCkgPT4gT2JzZXJ2YWJsZTxhbnlbXT47XHJcbiAgQElucHV0KCkgcHVibGljIHNhdmU6IChkYXRhOiBhbnksIGdyb3VwOiBzdHJpbmcpID0+IE9ic2VydmFibGU8YW55PjtcclxuXHJcbiAgQE91dHB1dCgpIHB1YmxpYyBmaWxlUmVtb3ZlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgZmlsZVNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8eyBzZXR0aW5nOiBhbnksIGZpbGU6IEJsb2IgfT4oKTtcclxuXHJcbiAgcHVibGljIGdyb3VwZWRTZXR0aW5ncyA9IFtdO1xyXG4gIHB1YmxpYyBncm91cHMgPSBbXTtcclxuICBwdWJsaWMgU2V0dGluZ0ludGVyZmFjZVR5cGUgPSBTZXR0aW5nSW50ZXJmYWNlVHlwZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9tZXNzYWdlOiBGc01lc3NhZ2UsXHJcbiAgICBwcml2YXRlIF9jbGlwYm9hcmRTZXJ2aWNlOiBDbGlwYm9hcmRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcHJvbXB0OiBGc1Byb21wdCxcclxuICAgIHByaXZhdGUgX2NkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICApIHsgfVxyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmxvYWRTZXR0aW5ncygpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHNldHRpbmdzKSA9PiB7XHJcbiAgICAgICAgc2V0dGluZ3MgPSBzZXR0aW5nc1xyXG4gICAgICAgIC5maWx0ZXIoKHNldHRpbmcpID0+IHtcclxuICAgICAgICAgIHJldHVybiBzZXR0aW5nLmludGVyZmFjZVR5cGUgIT09IFNldHRpbmdJbnRlcmZhY2VUeXBlLk5vbmU7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAubWFwKChzZXR0aW5nKSA9PiB7XHJcbiAgICAgICAgICBzd2l0Y2ggKHNldHRpbmcuaW50ZXJmYWNlVHlwZSkge1xyXG4gICAgICAgICAgICBjYXNlIFNldHRpbmdJbnRlcmZhY2VUeXBlLkRhdGU6XHJcbiAgICAgICAgICAgIGNhc2UgU2V0dGluZ0ludGVyZmFjZVR5cGUuVGltZTpcclxuICAgICAgICAgICAgICBzZXR0aW5nLnZhbHVlID0gcGFyc2Uoc2V0dGluZy52YWx1ZSk7XHJcblxyXG4gICAgICAgICAgICBjYXNlIFNldHRpbmdJbnRlcmZhY2VUeXBlLlNlbGVjdE11bHRpcGxlOlxyXG4gICAgICAgICAgICAgIHNldHRpbmcudmFsdWUgPSBBcnJheS5pc0FycmF5KHNldHRpbmcudmFsdWUpID8gc2V0dGluZy52YWx1ZSA6IFtdO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIHNldHRpbmc7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuZ3JvdXBlZFNldHRpbmdzID0gZ3JvdXBCeShzZXR0aW5ncywgKGl0ZW0pID0+IHtcclxuICAgICAgICAgIHJldHVybiBpdGVtLmdyb3VwO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIFxyXG4gICAgICAgIHRoaXMuZ3JvdXBzID0gT2JqZWN0LmtleXModGhpcy5ncm91cGVkU2V0dGluZ3MpO1xyXG4gICAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBleHBvcnQoZXZlbnQ6IFVJRXZlbnQsIHNldHRpbmdzKTogdm9pZCB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIGNvbnN0IGRhdGEgPSBzZXR0aW5ncy5tYXAoKHNldHRpbmcpID0+IHtcclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBuYW1lOiBzZXR0aW5nLm5hbWUsXHJcbiAgICAgICAgdmFsdWU6IHNldHRpbmcudmFsdWUsXHJcbiAgICAgICAgZ3JvdXA6IHNldHRpbmcuZ3JvdXAsXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuX2NsaXBib2FyZFNlcnZpY2UuY29weShKU09OLnN0cmluZ2lmeShkYXRhKSk7XHJcbiAgICB0aGlzLl9tZXNzYWdlLnN1Y2Nlc3MoJ0NvcGllZCB0byBjbGlwYm9hcmQnKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpbXBvcnQoZXZlbnQ6IFVJRXZlbnQsIGdyb3VwKTogdm9pZCB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuX3Byb21wdC5pbnB1dCh7XHJcbiAgICAgICAgbGFiZWw6ICdKU09OIEltcG9ydCcsXHJcbiAgICAgICAgdGl0bGU6ICdJbXBvcnQgU2V0dGluZ3MnLFxyXG4gICAgICAgIGNvbW1pdExhYmVsOiAnSW1wb3J0JyxcclxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcclxuICAgICAgfSkuc3Vic2NyaWJlKCh2YWx1ZTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBjb25zdCBzZXR0aW5ncyA9IHRoaXMuZ3JvdXBlZFNldHRpbmdzW2dyb3VwXTtcclxuICAgICAgICAgICAgY29uc3QgZGF0YSA9IEpTT04ucGFyc2UodmFsdWUpO1xyXG5cclxuICAgICAgICAgICAgZGF0YS5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3Qgc2V0dGluZyA9IHNldHRpbmdzLmZpbmQoKHMpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLm5hbWUgPT09IHMubmFtZTtcclxuICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgaWYgKHNldHRpbmcpIHtcclxuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oc2V0dGluZywgaXRlbSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9tZXNzYWdlLmVycm9yKGUpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2F2ZUdyb3VwKGdyb3VwKTogdm9pZCB7XHJcbiAgICBjb25zdCBzZXR0aW5ncyA9IHRoaXMuZ3JvdXBlZFNldHRpbmdzW2dyb3VwXTtcclxuICAgIGNvbnN0IHZhbHVlcyA9IHJlZHVjZShzZXR0aW5ncywgKHJlc3VsdCwgdmFsdWUsIGtleSkgPT4ge1xyXG4gICAgICByZXR1cm4gKHJlc3VsdFt2YWx1ZS5uYW1lXSA9IHZhbHVlLnZhbHVlLCByZXN1bHQpO1xyXG4gICAgfSwge30pO1xyXG5cclxuICAgIHRoaXMuc2F2ZShncm91cCwgdmFsdWVzKVxyXG4gICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuX21lc3NhZ2Uuc3VjY2VzcygnQ2hhbmdlcyBTYXZlZCcpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIlxyXG48bWF0LWFjY29yZGlvbj5cclxuICA8bWF0LWV4cGFuc2lvbi1wYW5lbCBoaWRlVG9nZ2xlICpuZ0Zvcj1cImxldCBncm91cCBvZiBncm91cHNcIj5cclxuICAgIDxtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuICAgICAgPG1hdC1wYW5lbC10aXRsZT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGUtcm93XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj57e2dyb3VwIHx8ICdHZW5lcmFsJ319PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiPlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiJ0V4cG9ydCAnICsgKGdyb3VwIHx8ICdHZW5lcmFsJykgKyAnIFNldHRpbmdzJ1wiXHJcbiAgICAgICAgICAgICAgbWF0LWljb24tYnV0dG9uXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImV4cG9ydCgkZXZlbnQsIGdyb3VwZWRTZXR0aW5nc1tncm91cF0pXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1pY29uPmNsb3VkX2Rvd25sb2FkPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCInSW1wb3J0ICcgKyAoZ3JvdXAgfHwgJ0dlbmVyYWwnKSArICcgU2V0dGluZ3MnXCJcclxuICAgICAgICAgICAgICBtYXQtaWNvbi1idXR0b25cclxuICAgICAgICAgICAgICAoY2xpY2spPVwiaW1wb3J0KCRldmVudCwgZ3JvdXApXCI+XHJcbiAgICAgICAgICAgICAgPG1hdC1pY29uPmNsb3VkX3VwbG9hZDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbWF0LXBhbmVsLXRpdGxlPlxyXG4gICAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuXHJcbiAgICA8ZGl2IFxyXG4gICAgICAgIGhpZGVUb2dnbGUgXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IHNldHRpbmcgb2YgZ3JvdXBlZFNldHRpbmdzW2dyb3VwXVwiIFxyXG4gICAgICAgIGNsYXNzPVwic2V0dGluZ1wiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnaGFzLWluc3RydWN0aW9uJzogISEgc2V0dGluZy5pbnN0cnVjdGlvbiB9XCI+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZCBcclxuICAgICAgICAgIGNsYXNzPVwiZnVsbC13aWR0aCBmb3JtLWZpZWxkLW11bHRpbGluZS1zdWJzY3JpcHRcIlxyXG4gICAgICAgICAgKm5nSWY9XCJzZXR0aW5nLmludGVyZmFjZVR5cGU9PT1TZXR0aW5nSW50ZXJmYWNlVHlwZS5JbnB1dEJveFwiPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJzZXR0aW5nLmxhYmVsXCJcclxuICAgICAgICAgIFsobmdNb2RlbCldPVwic2V0dGluZy52YWx1ZVwiXHJcbiAgICAgICAgICBbbmFtZV09XCInc2V0dGluZycgKyBzZXR0aW5nLmlkXCI+XHJcbiAgICAgICAgICA8bWF0LWhpbnQ+e3tzZXR0aW5nLmluc3RydWN0aW9ufX08L21hdC1oaW50PlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkIFxyXG4gICAgICAgICAgY2xhc3M9XCJmdWxsLXdpZHRoIGZvcm0tZmllbGQtbXVsdGlsaW5lLXN1YnNjcmlwdFwiIFxyXG4gICAgICAgICAgKm5nSWY9XCJzZXR0aW5nLmludGVyZmFjZVR5cGU9PT1TZXR0aW5nSW50ZXJmYWNlVHlwZS5UZXh0YXJlYVwiPlxyXG4gICAgICAgIDx0ZXh0YXJlYVxyXG4gICAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJzZXR0aW5nLmxhYmVsXCJcclxuICAgICAgICAgIFsobmdNb2RlbCldPVwic2V0dGluZy52YWx1ZVwiXHJcbiAgICAgICAgICBbbmFtZV09XCInc2V0dGluZycgKyBzZXR0aW5nLmlkXCI+XHJcbiAgICAgICAgPC90ZXh0YXJlYT5cclxuICAgICAgICA8bWF0LWhpbnQ+e3tzZXR0aW5nLmluc3RydWN0aW9ufX08L21hdC1oaW50PlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkIFxyXG4gICAgICAgICAgY2xhc3M9XCJmdWxsLXdpZHRoIGZvcm0tZmllbGQtbXVsdGlsaW5lLXN1YnNjcmlwdFwiIFxyXG4gICAgICAgICAgKm5nSWY9XCJzZXR0aW5nLmludGVyZmFjZVR5cGU9PT1TZXR0aW5nSW50ZXJmYWNlVHlwZS5TZWxlY3QgfHwgc2V0dGluZy5pbnRlcmZhY2VUeXBlPT09U2V0dGluZ0ludGVyZmFjZVR5cGUuU2VsZWN0TXVsdGlwbGVcIj5cclxuICAgICAgICA8bWF0LXNlbGVjdFxyXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwic2V0dGluZy5sYWJlbFwiXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2V0dGluZy52YWx1ZVwiXHJcbiAgICAgICAgICAgIFttdWx0aXBsZV09XCJzZXR0aW5nLmludGVyZmFjZVR5cGU9PT1TZXR0aW5nSW50ZXJmYWNlVHlwZS5TZWxlY3RNdWx0aXBsZVwiXHJcbiAgICAgICAgICAgIFtuYW1lXT1cIidzZXR0aW5nJyArIHNldHRpbmcuaWRcIj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIHNldHRpbmcudmFsdWVzIHwga2V5TmFtZVZhbHVlXCIgW3ZhbHVlXT1cIml0ZW0udmFsdWVcIj5cclxuICAgICAgICAgICAge3tpdGVtLm5hbWV9fVxyXG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICA8bWF0LWhpbnQ+e3tzZXR0aW5nLmluc3RydWN0aW9ufX08L21hdC1oaW50PlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkIFxyXG4gICAgICAgICAgY2xhc3M9XCJmdWxsLXdpZHRoIGZvcm0tZmllbGQtbXVsdGlsaW5lLXN1YnNjcmlwdFwiIFxyXG4gICAgICAgICAgKm5nSWY9XCJzZXR0aW5nLmludGVyZmFjZVR5cGU9PT1TZXR0aW5nSW50ZXJmYWNlVHlwZS5EYXRlXCI+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgZnNEYXRlUGlja2VyXHJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwic2V0dGluZy5sYWJlbFwiXHJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInNldHRpbmcudmFsdWVcIlxyXG4gICAgICAgICAgW25hbWVdPVwiJ3NldHRpbmcnICsgc2V0dGluZy5pZFwiPlxyXG4gICAgICAgICAgPG1hdC1oaW50Pnt7c2V0dGluZy5pbnN0cnVjdGlvbn19PC9tYXQtaGludD5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZCBcclxuICAgICAgICAgIGNsYXNzPVwiZnVsbC13aWR0aCBmb3JtLWZpZWxkLW11bHRpbGluZS1zdWJzY3JpcHRcIiBcclxuICAgICAgICAgICpuZ0lmPVwic2V0dGluZy5pbnRlcmZhY2VUeXBlPT09U2V0dGluZ0ludGVyZmFjZVR5cGUuQ29sb3JcIj5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgICBmc0NvbG9yUGlja2VyXHJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwic2V0dGluZy5sYWJlbFwiXHJcbiAgICAgICAgICBbKG5nTW9kZWwpXT1cInNldHRpbmcudmFsdWVcIlxyXG4gICAgICAgICAgW25hbWVdPVwiJ3NldHRpbmcnICsgc2V0dGluZy5pZFwiPlxyXG4gICAgICAgICAgPG1hdC1oaW50Pnt7c2V0dGluZy5pbnN0cnVjdGlvbn19PC9tYXQtaGludD5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZCBcclxuICAgICAgICAgIGNsYXNzPVwiZnVsbC13aWR0aCBmb3JtLWZpZWxkLW11bHRpbGluZS1zdWJzY3JpcHRcIiBcclxuICAgICAgICAgICpuZ0lmPVwic2V0dGluZy5pbnRlcmZhY2VUeXBlPT09U2V0dGluZ0ludGVyZmFjZVR5cGUuVGltZVwiPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICAgIGZzVGltZVBpY2tlclxyXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInNldHRpbmcubGFiZWxcIlxyXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJzZXR0aW5nLnZhbHVlXCJcclxuICAgICAgICAgIFtuYW1lXT1cIidzZXR0aW5nJyArIHNldHRpbmcuaWRcIj5cclxuICAgICAgICAgIDxtYXQtaGludD57e3NldHRpbmcuaW5zdHJ1Y3Rpb259fTwvbWF0LWhpbnQ+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcblxyXG4gICAgICA8ZnMtZmlsZS1waWNrZXJcclxuICAgICAgICAqbmdJZj1cInNldHRpbmcuaW50ZXJmYWNlVHlwZT09PVNldHRpbmdJbnRlcmZhY2VUeXBlLkZpbGVcIlxyXG4gICAgICAgIFthbGxvd1JlbW92ZV09XCJ0cnVlXCJcclxuICAgICAgICBbYWxsb3dEb3dubG9hZF09XCJ0cnVlXCJcclxuICAgICAgICAoc2VsZWN0KT1cImZpbGVTZWxlY3QuZW1pdCh7IHNldHRpbmc6IHNldHRpbmcsIGZpbGU6ICRldmVudC5maWxlIH0pXCJcclxuICAgICAgICAocmVtb3ZlKT1cImZpbGVSZW1vdmUuZW1pdChzZXR0aW5nKVwiXHJcbiAgICAgICAgW3VybF09XCJzZXR0aW5nLnZhbHVlXCI+XHJcbiAgICAgICAgPGRpdiBmc0ZpbGVMYWJlbD57e3NldHRpbmcubGFiZWx9fTwvZGl2PlxyXG4gICAgICAgIDxkaXYgZnNGaWxlTGFiZWxNZXNzYWdlPnt7c2V0dGluZy5pbnN0cnVjdGlvbn19PC9kaXY+XHJcbiAgICAgIDwvZnMtZmlsZS1waWNrZXI+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwic2F2ZUdyb3VwKGdyb3VwKVwiPlNhdmU8L2J1dHRvbj5cclxuXHJcbiAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsPlxyXG5cclxuPC9tYXQtYWNjb3JkaW9uPlxyXG4iXX0=
@@ -1,2 +1,2 @@
1
- export * from './upgrade-logs.component';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvdXBncmFkZS1sb2dzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3VwZ3JhZGUtbG9ncy5jb21wb25lbnQnO1xuIl19
1
+ export * from './upgrade-logs.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvdXBncmFkZS1sb2dzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3VwZ3JhZGUtbG9ncy5jb21wb25lbnQnO1xyXG4iXX0=
@@ -1,51 +1,48 @@
1
- import { SystemService } from './../../services/system.service';
2
- import { Component, ViewChild, Input } from '@angular/core';
3
- import { ItemType } from '@firestitch/filter';
4
- import { FsListComponent } from '@firestitch/list';
5
- import { map } from 'rxjs/operators';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "./../../services/system.service";
8
- import * as i2 from "@firestitch/list";
9
- import * as i3 from "@firestitch/date";
10
- export class UpgradeLogsComponent {
11
- constructor(_systemService) {
12
- this._systemService = _systemService;
13
- this.config = null;
14
- this.logTypes = [];
15
- }
16
- ngOnInit() {
17
- this._configList();
18
- }
19
- _configList() {
20
- this.config = {
21
- paging: false,
22
- filters: [
23
- {
24
- type: ItemType.Keyword,
25
- name: 'keyword',
26
- label: 'Search'
27
- }
28
- ],
29
- fetch: query => {
30
- return this.loadUpgradeLogs(query)
31
- .pipe(map((response) => ({ data: this._systemService.input(response.data), paging: response.paging })));
32
- }
33
- };
34
- }
35
- }
36
- UpgradeLogsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: UpgradeLogsComponent, deps: [{ token: i1.SystemService }], target: i0.ɵɵFactoryTarget.Component });
37
- UpgradeLogsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: UpgradeLogsComponent, selector: "fs-system-upgrade-logs", inputs: { loadUpgradeLogs: "loadUpgradeLogs" }, viewQueries: [{ propertyName: "list", first: true, predicate: 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: [""], components: [{ type: i2.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { type: i3.FsDateAgoComponent, selector: "fs-date-ago", inputs: ["date", "showTime", "format", "showTooltip", "tooltipDateFormat"] }], directives: [{ type: i2.FsListColumnDirective, selector: "fs-list-column", inputs: ["title", "name", "show", "customize", "sortable", "sortableDefault", "direction", "align", "width", "class"] }, { type: i2.FsListHeaderDirective, selector: "[fs-list-header]", inputs: ["colspan", "align", "class"] }, { type: i2.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }] });
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: UpgradeLogsComponent, decorators: [{
39
- type: Component,
40
- args: [{
41
- selector: 'fs-system-upgrade-logs',
42
- templateUrl: './upgrade-logs.component.html',
43
- styleUrls: ['./upgrade-logs.component.scss']
44
- }]
45
- }], ctorParameters: function () { return [{ type: i1.SystemService }]; }, propDecorators: { list: [{
46
- type: ViewChild,
47
- args: [FsListComponent, { static: true }]
48
- }], loadUpgradeLogs: [{
49
- type: Input
50
- }] } });
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBncmFkZS1sb2dzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy91cGdyYWRlLWxvZ3MvdXBncmFkZS1sb2dzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy91cGdyYWRlLWxvZ3MvdXBncmFkZS1sb2dzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNoRSxPQUFPLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlDLE9BQU8sRUFBZ0IsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQVNyQyxNQUFNLE9BQU8sb0JBQW9CO0lBUy9CLFlBQW9CLGNBQTZCO1FBQTdCLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBSDFDLFdBQU0sR0FBaUIsSUFBSSxDQUFDO1FBQzVCLGFBQVEsR0FBRyxFQUFFLENBQUM7SUFFK0IsQ0FBQztJQUVyRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFDTyxXQUFXO1FBRWpCLElBQUksQ0FBQyxNQUFNLEdBQUc7WUFDWixNQUFNLEVBQUUsS0FBSztZQUNiLE9BQU8sRUFBRTtnQkFDUDtvQkFDRSxJQUFJLEVBQUUsUUFBUSxDQUFDLE9BQU87b0JBQ3RCLElBQUksRUFBRSxTQUFTO29CQUNmLEtBQUssRUFBRSxRQUFRO2lCQUNoQjthQUNGO1lBQ0QsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFO2dCQUNiLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUM7cUJBQ2pDLElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUN0RyxDQUFDO1lBQ0osQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDOztrSEFoQ1Usb0JBQW9CO3NHQUFwQixvQkFBb0Isb0pBRXBCLGVBQWUsOERDZjVCLG1vQkFzQkE7NEZEVGEsb0JBQW9CO2tCQUxoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFdBQVcsRUFBRSwrQkFBK0I7b0JBQzVDLFNBQVMsRUFBRSxDQUFDLCtCQUErQixDQUFDO2lCQUM3QztvR0FHK0MsSUFBSTtzQkFBakQsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUVuQyxlQUFlO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3lzdGVtU2VydmljZSB9IGZyb20gJy4vLi4vLi4vc2VydmljZXMvc3lzdGVtLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEl0ZW1UeXBlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvZmlsdGVyJztcbmltcG9ydCB7IEZzTGlzdENvbmZpZywgRnNMaXN0Q29tcG9uZW50IH0gZnJvbSAnQGZpcmVzdGl0Y2gvbGlzdCc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnMtc3lzdGVtLXVwZ3JhZGUtbG9ncycsXG4gIHRlbXBsYXRlVXJsOiAnLi91cGdyYWRlLWxvZ3MuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi91cGdyYWRlLWxvZ3MuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBVcGdyYWRlTG9nc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQFZpZXdDaGlsZChGc0xpc3RDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pIGxpc3Q6IEZzTGlzdENvbXBvbmVudDtcblxuICBASW5wdXQoKSBsb2FkVXBncmFkZUxvZ3M6IChkYXRhOiBhbnkpID0+IE9ic2VydmFibGU8eyBkYXRhOiBhbnlbXSwgcGFnaW5nOiBhbnkgfT47XG5cbiAgcHVibGljIGNvbmZpZzogRnNMaXN0Q29uZmlnID0gbnVsbDtcbiAgcHVibGljIGxvZ1R5cGVzID0gW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfc3lzdGVtU2VydmljZTogU3lzdGVtU2VydmljZSkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLl9jb25maWdMaXN0KCk7XG4gIH1cbiAgcHJpdmF0ZSBfY29uZmlnTGlzdCgpIHtcblxuICAgIHRoaXMuY29uZmlnID0ge1xuICAgICAgcGFnaW5nOiBmYWxzZSxcbiAgICAgIGZpbHRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHR5cGU6IEl0ZW1UeXBlLktleXdvcmQsXG4gICAgICAgICAgbmFtZTogJ2tleXdvcmQnLFxuICAgICAgICAgIGxhYmVsOiAnU2VhcmNoJ1xuICAgICAgICB9XG4gICAgICBdLFxuICAgICAgZmV0Y2g6IHF1ZXJ5ID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZFVwZ3JhZGVMb2dzKHF1ZXJ5KVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+ICh7IGRhdGE6IHRoaXMuX3N5c3RlbVNlcnZpY2UuaW5wdXQocmVzcG9uc2UuZGF0YSksIHBhZ2luZzogcmVzcG9uc2UucGFnaW5nIH0pKVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH07XG4gIH1cbn1cbiIsIjxmcy1saXN0IFtjb25maWddPVwiY29uZmlnXCI+XG4gIDxmcy1saXN0LWNvbHVtbj5cbiAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1oZWFkZXI+TmFtZTwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlIGZzLWxpc3QtY2VsbCBsZXQtcm93PVwicm93XCI+XG4gICAgICB7e3Jvdy5uYW1lfX1cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2ZzLWxpc3QtY29sdW1uPlxuXG4gIDxmcy1saXN0LWNvbHVtbj5cbiAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1oZWFkZXI+RnVuY3Rpb248L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWNlbGwgbGV0LXJvdz1cInJvd1wiPlxuICAgICAge3tyb3cuZnVuY3Rpb259fSgpXG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9mcy1saXN0LWNvbHVtbj5cblxuICA8ZnMtbGlzdC1jb2x1bW4+XG4gICAgPG5nLXRlbXBsYXRlIGZzLWxpc3QtaGVhZGVyPkRhdGU8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWNlbGwgbGV0LXJvdz1cInJvd1wiPlxuICAgICAgPGZzLWRhdGUtYWdvIFtkYXRlXT1cInJvdy5jcmVhdGVEYXRlXCI+PC9mcy1kYXRlLWFnbz5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2ZzLWxpc3QtY29sdW1uPlxuPC9mcy1saXN0PlxuIl19
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/list";
7
+ import * as i2 from "@firestitch/date";
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: "12.2.16", ngImport: i0, type: UpgradeLogsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
34
+ UpgradeLogsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: UpgradeLogsComponent, selector: "fs-system-upgrade-logs", inputs: { loadUpgradeLogs: "loadUpgradeLogs" }, viewQueries: [{ propertyName: "list", first: true, predicate: FsListComponent, descendants: true, static: true }], ngImport: i0, template: "<fs-list [config]=\"config\">\r\n <fs-list-column>\r\n <ng-template fs-list-header>Name</ng-template>\r\n <ng-template fs-list-cell let-row=\"row\">\r\n {{row.name}}\r\n </ng-template>\r\n </fs-list-column>\r\n\r\n <fs-list-column>\r\n <ng-template fs-list-header>Function</ng-template>\r\n <ng-template fs-list-cell let-row=\"row\">\r\n {{row.function}}()\r\n </ng-template>\r\n </fs-list-column>\r\n\r\n <fs-list-column>\r\n <ng-template fs-list-header>Date</ng-template>\r\n <ng-template fs-list-cell let-row=\"row\">\r\n <fs-date-ago [date]=\"row.createDate\"></fs-date-ago>\r\n </ng-template>\r\n </fs-list-column>\r\n</fs-list>\r\n", styles: [""], components: [{ type: i1.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { type: i2.FsDateAgoComponent, selector: "fs-date-ago", inputs: ["date", "showTime", "format", "showTooltip", "tooltipDateFormat"] }], directives: [{ type: i1.FsListColumnDirective, selector: "fs-list-column", inputs: ["title", "name", "show", "customize", "sortable", "sortableDefault", "direction", "align", "width", "class"] }, { type: i1.FsListHeaderDirective, selector: "[fs-list-header]", inputs: ["colspan", "align", "class"] }, { type: i1.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }] });
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: UpgradeLogsComponent, decorators: [{
36
+ type: Component,
37
+ args: [{
38
+ selector: 'fs-system-upgrade-logs',
39
+ templateUrl: './upgrade-logs.component.html',
40
+ styleUrls: ['./upgrade-logs.component.scss']
41
+ }]
42
+ }], propDecorators: { list: [{
43
+ type: ViewChild,
44
+ args: [FsListComponent, { static: true }]
45
+ }], loadUpgradeLogs: [{
46
+ type: Input
47
+ }] } });
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBncmFkZS1sb2dzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy91cGdyYWRlLWxvZ3MvdXBncmFkZS1sb2dzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy91cGdyYWRlLWxvZ3MvdXBncmFkZS1sb2dzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFnQixlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFTckMsTUFBTSxPQUFPLG9CQUFvQjtJQUxqQztRQVdTLFdBQU0sR0FBaUIsSUFBSSxDQUFDO1FBQzVCLGFBQVEsR0FBRyxFQUFFLENBQUM7S0F3QnRCO0lBdEJDLFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUNPLFdBQVc7UUFFakIsSUFBSSxDQUFDLE1BQU0sR0FBRztZQUNaLE1BQU0sRUFBRSxLQUFLO1lBQ2IsT0FBTyxFQUFFO2dCQUNQO29CQUNFLElBQUksRUFBRSxRQUFRLENBQUMsT0FBTztvQkFDdEIsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsS0FBSyxFQUFFLFFBQVE7aUJBQ2hCO2FBQ0Y7WUFDRCxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUU7Z0JBQ2IsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQztxQkFDakMsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUMzRSxDQUFDO1lBQ0osQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDOztrSEE5QlUsb0JBQW9CO3NHQUFwQixvQkFBb0Isb0pBRXBCLGVBQWUsOERDZDVCLCtxQkFzQkE7NEZEVmEsb0JBQW9CO2tCQUxoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFdBQVcsRUFBRSwrQkFBK0I7b0JBQzVDLFNBQVMsRUFBRSxDQUFDLCtCQUErQixDQUFDO2lCQUM3Qzs4QkFHK0MsSUFBSTtzQkFBakQsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUVuQyxlQUFlO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSXRlbVR5cGUgfSBmcm9tICdAZmlyZXN0aXRjaC9maWx0ZXInO1xyXG5pbXBvcnQgeyBGc0xpc3RDb25maWcsIEZzTGlzdENvbXBvbmVudCB9IGZyb20gJ0BmaXJlc3RpdGNoL2xpc3QnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2ZzLXN5c3RlbS11cGdyYWRlLWxvZ3MnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91cGdyYWRlLWxvZ3MuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3VwZ3JhZGUtbG9ncy5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVcGdyYWRlTG9nc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBWaWV3Q2hpbGQoRnNMaXN0Q29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSBsaXN0OiBGc0xpc3RDb21wb25lbnQ7XHJcblxyXG4gIEBJbnB1dCgpIGxvYWRVcGdyYWRlTG9nczogKGRhdGE6IGFueSkgPT4gT2JzZXJ2YWJsZTx7IGRhdGE6IGFueVtdLCBwYWdpbmc6IGFueSB9PjtcclxuXHJcbiAgcHVibGljIGNvbmZpZzogRnNMaXN0Q29uZmlnID0gbnVsbDtcclxuICBwdWJsaWMgbG9nVHlwZXMgPSBbXTtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLl9jb25maWdMaXN0KCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2NvbmZpZ0xpc3QoKSB7XHJcblxyXG4gICAgdGhpcy5jb25maWcgPSB7XHJcbiAgICAgIHBhZ2luZzogZmFsc2UsXHJcbiAgICAgIGZpbHRlcnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICB0eXBlOiBJdGVtVHlwZS5LZXl3b3JkLFxyXG4gICAgICAgICAgbmFtZTogJ2tleXdvcmQnLFxyXG4gICAgICAgICAgbGFiZWw6ICdTZWFyY2gnXHJcbiAgICAgICAgfVxyXG4gICAgICBdLFxyXG4gICAgICBmZXRjaDogcXVlcnkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRVcGdyYWRlTG9ncyhxdWVyeSlcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIG1hcCgocmVzcG9uc2U6IGFueSkgPT4gKHsgZGF0YTogcmVzcG9uc2UuZGF0YSwgcGFnaW5nOiByZXNwb25zZS5wYWdpbmcgfSkpXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIiwiPGZzLWxpc3QgW2NvbmZpZ109XCJjb25maWdcIj5cclxuICA8ZnMtbGlzdC1jb2x1bW4+XHJcbiAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1oZWFkZXI+TmFtZTwvbmctdGVtcGxhdGU+XHJcbiAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1jZWxsIGxldC1yb3c9XCJyb3dcIj5cclxuICAgICAge3tyb3cubmFtZX19XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIDwvZnMtbGlzdC1jb2x1bW4+XHJcblxyXG4gIDxmcy1saXN0LWNvbHVtbj5cclxuICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWhlYWRlcj5GdW5jdGlvbjwvbmctdGVtcGxhdGU+XHJcbiAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1jZWxsIGxldC1yb3c9XCJyb3dcIj5cclxuICAgICAge3tyb3cuZnVuY3Rpb259fSgpXHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIDwvZnMtbGlzdC1jb2x1bW4+XHJcblxyXG4gIDxmcy1saXN0LWNvbHVtbj5cclxuICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWhlYWRlcj5EYXRlPC9uZy10ZW1wbGF0ZT5cclxuICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWNlbGwgbGV0LXJvdz1cInJvd1wiPlxyXG4gICAgICA8ZnMtZGF0ZS1hZ28gW2RhdGVdPVwicm93LmNyZWF0ZURhdGVcIj48L2ZzLWRhdGUtYWdvPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L2ZzLWxpc3QtY29sdW1uPlxyXG48L2ZzLWxpc3Q+XHJcbiJdfQ==
@@ -1,7 +1,7 @@
1
- import { ApiLogState } from '../enums';
2
- export const ApiLogStates = [
3
- { name: 'Success', value: ApiLogState.Success },
4
- { name: 'Failed', value: ApiLogState.Failed },
5
- { name: 'Deleted', value: ApiLogState.Deleted }
6
- ];
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWxvZy1zdGF0ZXMuY29uc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL2NvbnN0cy9hcGktbG9nLXN0YXRlcy5jb25zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXZDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRztJQUMxQixFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxPQUFPLEVBQUU7SUFDL0MsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMsTUFBTSxFQUFFO0lBQzdDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFDLE9BQU8sRUFBRTtDQUNoRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBpTG9nU3RhdGUgfSBmcm9tICcuLi9lbnVtcyc7XG5cbmV4cG9ydCBjb25zdCBBcGlMb2dTdGF0ZXMgPSBbXG4gIHsgbmFtZTogJ1N1Y2Nlc3MnLCB2YWx1ZTogQXBpTG9nU3RhdGUuU3VjY2VzcyB9LFxuICB7IG5hbWU6ICdGYWlsZWQnLCB2YWx1ZTogQXBpTG9nU3RhdGUuRmFpbGVkIH0sXG4gIHsgbmFtZTogJ0RlbGV0ZWQnLCB2YWx1ZTogQXBpTG9nU3RhdGUuRGVsZXRlZCB9XG5dO1xuIl19
1
+ import { ApiLogState } from '../enums';
2
+ export const ApiLogStates = [
3
+ { name: 'Success', value: ApiLogState.Success },
4
+ { name: 'Failed', value: ApiLogState.Failed },
5
+ { name: 'Deleted', value: ApiLogState.Deleted }
6
+ ];
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWxvZy1zdGF0ZXMuY29uc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL2NvbnN0cy9hcGktbG9nLXN0YXRlcy5jb25zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXZDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRztJQUMxQixFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxPQUFPLEVBQUU7SUFDL0MsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMsTUFBTSxFQUFFO0lBQzdDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxDQUFDLE9BQU8sRUFBRTtDQUNoRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBpTG9nU3RhdGUgfSBmcm9tICcuLi9lbnVtcyc7XHJcblxyXG5leHBvcnQgY29uc3QgQXBpTG9nU3RhdGVzID0gW1xyXG4gIHsgbmFtZTogJ1N1Y2Nlc3MnLCB2YWx1ZTogQXBpTG9nU3RhdGUuU3VjY2VzcyB9LFxyXG4gIHsgbmFtZTogJ0ZhaWxlZCcsIHZhbHVlOiBBcGlMb2dTdGF0ZS5GYWlsZWQgfSxcclxuICB7IG5hbWU6ICdEZWxldGVkJywgdmFsdWU6IEFwaUxvZ1N0YXRlLkRlbGV0ZWQgfVxyXG5dO1xyXG4iXX0=
@@ -1,15 +1,15 @@
1
- import { CronLogState } from '../enums';
2
- export const CronLogStates = [
3
- { name: 'Message', value: CronLogState.Message, color: '#29B7FF' },
4
- { name: 'Disabled', value: CronLogState.Disabled, color: '#29B7FF' },
5
- { name: 'Started', value: CronLogState.Started, color: '#34BD43' },
6
- { name: 'Running', value: CronLogState.Running, color: '#34BD43' },
7
- { name: 'Completed', value: CronLogState.Completed, color: '#34BD43' },
8
- { name: 'Failed', value: CronLogState.Failed, color: '#FA7567' },
9
- { name: 'Killed', value: CronLogState.Killed, color: '#29B7FF' },
10
- { name: 'Queued', value: CronLogState.Queued, color: '#29B7FF' },
11
- { name: 'Reset', value: CronLogState.Reset, color: '#29B7FF' },
12
- { name: 'Stagnant', value: CronLogState.Stagnant, color: '#FA7567' },
13
- { name: 'Long Running', value: CronLogState.LongRunning, color: '#FA7567' },
14
- ];
1
+ import { CronLogState } from '../enums';
2
+ export const CronLogStates = [
3
+ { name: 'Message', value: CronLogState.Message, color: '#29B7FF' },
4
+ { name: 'Disabled', value: CronLogState.Disabled, color: '#29B7FF' },
5
+ { name: 'Started', value: CronLogState.Started, color: '#34BD43' },
6
+ { name: 'Running', value: CronLogState.Running, color: '#34BD43' },
7
+ { name: 'Completed', value: CronLogState.Completed, color: '#34BD43' },
8
+ { name: 'Failed', value: CronLogState.Failed, color: '#FA7567' },
9
+ { name: 'Killed', value: CronLogState.Killed, color: '#29B7FF' },
10
+ { name: 'Queued', value: CronLogState.Queued, color: '#29B7FF' },
11
+ { name: 'Reset', value: CronLogState.Reset, color: '#29B7FF' },
12
+ { name: 'Stagnant', value: CronLogState.Stagnant, color: '#FA7567' },
13
+ { name: 'Long Running', value: CronLogState.LongRunning, color: '#FA7567' },
14
+ ];
15
15
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvbi1sb2ctc3RhdGVzLmNvbnN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9jb25zdHMvY3Jvbi1sb2ctc3RhdGVzLmNvbnN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHO0lBQzNCLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsWUFBWSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ2xFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsWUFBWSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3BFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsWUFBWSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ2xFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsWUFBWSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ2xFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsWUFBWSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3RFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsWUFBWSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ2hFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsWUFBWSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ2hFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsWUFBWSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ2hFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsWUFBWSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQzlELEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsWUFBWSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3BFLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsWUFBWSxDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0NBQzVFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDcm9uTG9nU3RhdGUgfSBmcm9tICcuLi9lbnVtcyc7XG5cbmV4cG9ydCBjb25zdCBDcm9uTG9nU3RhdGVzID0gW1xuICB7IG5hbWU6ICdNZXNzYWdlJywgdmFsdWU6IENyb25Mb2dTdGF0ZS5NZXNzYWdlLCBjb2xvcjogJyMyOUI3RkYnIH0sXG4gIHsgbmFtZTogJ0Rpc2FibGVkJywgdmFsdWU6IENyb25Mb2dTdGF0ZS5EaXNhYmxlZCwgY29sb3I6ICcjMjlCN0ZGJyB9LFxuICB7IG5hbWU6ICdTdGFydGVkJywgdmFsdWU6IENyb25Mb2dTdGF0ZS5TdGFydGVkLCBjb2xvcjogJyMzNEJENDMnIH0sXG4gIHsgbmFtZTogJ1J1bm5pbmcnLCB2YWx1ZTogQ3JvbkxvZ1N0YXRlLlJ1bm5pbmcsIGNvbG9yOiAnIzM0QkQ0MycgfSxcbiAgeyBuYW1lOiAnQ29tcGxldGVkJywgdmFsdWU6IENyb25Mb2dTdGF0ZS5Db21wbGV0ZWQsIGNvbG9yOiAnIzM0QkQ0MycgfSxcbiAgeyBuYW1lOiAnRmFpbGVkJywgdmFsdWU6IENyb25Mb2dTdGF0ZS5GYWlsZWQsIGNvbG9yOiAnI0ZBNzU2NycgfSxcbiAgeyBuYW1lOiAnS2lsbGVkJywgdmFsdWU6IENyb25Mb2dTdGF0ZS5LaWxsZWQsIGNvbG9yOiAnIzI5QjdGRicgfSxcbiAgeyBuYW1lOiAnUXVldWVkJywgdmFsdWU6IENyb25Mb2dTdGF0ZS5RdWV1ZWQsIGNvbG9yOiAnIzI5QjdGRicgfSxcbiAgeyBuYW1lOiAnUmVzZXQnLCB2YWx1ZTogQ3JvbkxvZ1N0YXRlLlJlc2V0LCBjb2xvcjogJyMyOUI3RkYnIH0sXG4gIHsgbmFtZTogJ1N0YWduYW50JywgdmFsdWU6IENyb25Mb2dTdGF0ZS5TdGFnbmFudCwgY29sb3I6ICcjRkE3NTY3JyB9LFxuICB7IG5hbWU6ICdMb25nIFJ1bm5pbmcnLCB2YWx1ZTogQ3JvbkxvZ1N0YXRlLkxvbmdSdW5uaW5nLCBjb2xvcjogJyNGQTc1NjcnIH0sXG5dO1xuIl19
@@ -1,9 +1,9 @@
1
- import { CronState } from '../enums';
2
- export const CronStates = [
3
- { name: 'Running', value: CronState.Running },
4
- { name: 'Idle', value: CronState.Idle },
5
- { name: 'Failed', value: CronState.Failed },
6
- { name: 'Queued', value: CronState.Queued },
7
- { name: 'Disabled', value: CronState.Disabled }
8
- ];
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvbi1zdGF0ZXMuY29uc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL2NvbnN0cy9jcm9uLXN0YXRlcy5jb25zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXJDLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxPQUFPLEVBQUU7SUFDN0MsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsSUFBSSxFQUFFO0lBQ3ZDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDLE1BQU0sRUFBRTtJQUMzQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxNQUFNLEVBQUU7SUFDM0MsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsUUFBUSxFQUFFO0NBQ2hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDcm9uU3RhdGUgfSBmcm9tICcuLi9lbnVtcyc7XG5cbmV4cG9ydCBjb25zdCBDcm9uU3RhdGVzID0gW1xuICB7IG5hbWU6ICdSdW5uaW5nJywgdmFsdWU6IENyb25TdGF0ZS5SdW5uaW5nIH0sXG4gIHsgbmFtZTogJ0lkbGUnLCB2YWx1ZTogQ3JvblN0YXRlLklkbGUgfSxcbiAgeyBuYW1lOiAnRmFpbGVkJywgdmFsdWU6IENyb25TdGF0ZS5GYWlsZWQgfSxcbiAgeyBuYW1lOiAnUXVldWVkJywgdmFsdWU6IENyb25TdGF0ZS5RdWV1ZWQgfSxcbiAgeyBuYW1lOiAnRGlzYWJsZWQnLCB2YWx1ZTogQ3JvblN0YXRlLkRpc2FibGVkIH1cbl07XG4iXX0=
1
+ import { CronState } from '../enums';
2
+ export const CronStates = [
3
+ { name: 'Running', value: CronState.Running },
4
+ { name: 'Idle', value: CronState.Idle },
5
+ { name: 'Failed', value: CronState.Failed },
6
+ { name: 'Queued', value: CronState.Queued },
7
+ { name: 'Disabled', value: CronState.Disabled }
8
+ ];
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvbi1zdGF0ZXMuY29uc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBwL2NvbnN0cy9jcm9uLXN0YXRlcy5jb25zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXJDLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxPQUFPLEVBQUU7SUFDN0MsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsSUFBSSxFQUFFO0lBQ3ZDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDLE1BQU0sRUFBRTtJQUMzQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxNQUFNLEVBQUU7SUFDM0MsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsUUFBUSxFQUFFO0NBQ2hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDcm9uU3RhdGUgfSBmcm9tICcuLi9lbnVtcyc7XHJcblxyXG5leHBvcnQgY29uc3QgQ3JvblN0YXRlcyA9IFtcclxuICB7IG5hbWU6ICdSdW5uaW5nJywgdmFsdWU6IENyb25TdGF0ZS5SdW5uaW5nIH0sXHJcbiAgeyBuYW1lOiAnSWRsZScsIHZhbHVlOiBDcm9uU3RhdGUuSWRsZSB9LFxyXG4gIHsgbmFtZTogJ0ZhaWxlZCcsIHZhbHVlOiBDcm9uU3RhdGUuRmFpbGVkIH0sXHJcbiAgeyBuYW1lOiAnUXVldWVkJywgdmFsdWU6IENyb25TdGF0ZS5RdWV1ZWQgfSxcclxuICB7IG5hbWU6ICdEaXNhYmxlZCcsIHZhbHVlOiBDcm9uU3RhdGUuRGlzYWJsZWQgfVxyXG5dO1xyXG4iXX0=