@firestitch/system 15.0.0 → 17.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.
Files changed (94) hide show
  1. package/app/modules/query-logs/components/query-logs/query-logs.component.d.ts +1 -1
  2. package/app/modules/system/components/api-logs/api-logs.component.d.ts +1 -1
  3. package/app/modules/system/components/cron-next-run/cron-next-run.component.d.ts +1 -1
  4. package/app/modules/system/components/crons/crons.component.d.ts +1 -1
  5. package/app/modules/system/components/dashboard/dashboard.component.d.ts +1 -1
  6. package/app/modules/system/components/info/info.component.d.ts +1 -1
  7. package/app/modules/system/components/processes/processes.component.d.ts +1 -1
  8. package/app/modules/system/components/server-logs/server-logs.component.d.ts +1 -1
  9. package/app/modules/system/components/settings/settings.component.d.ts +1 -1
  10. package/app/modules/system/components/upgrade-logs/upgrade-logs.component.d.ts +1 -1
  11. package/esm2022/app/modules/query-logs/components/explain/explain.component.mjs +26 -0
  12. package/esm2022/app/modules/query-logs/components/query-log/query-log.component.mjs +61 -0
  13. package/esm2022/app/modules/query-logs/components/query-logs/query-logs.component.mjs +89 -0
  14. package/{esm2020 → esm2022}/app/modules/query-logs/query-logs.module.mjs +35 -35
  15. package/esm2022/app/modules/system/components/api-log/api-log.component.mjs +38 -0
  16. package/esm2022/app/modules/system/components/api-logs/api-logs.component.mjs +72 -0
  17. package/esm2022/app/modules/system/components/cron/cron.component.mjs +111 -0
  18. package/esm2022/app/modules/system/components/cron-log/cron-log.component.mjs +39 -0
  19. package/esm2022/app/modules/system/components/cron-next-run/cron-next-run.component.mjs +102 -0
  20. package/esm2022/app/modules/system/components/crons/crons.component.mjs +249 -0
  21. package/esm2022/app/modules/system/components/dashboard/dashboard.component.mjs +92 -0
  22. package/esm2022/app/modules/system/components/info/info.component.mjs +33 -0
  23. package/esm2022/app/modules/system/components/process/process.component.mjs +103 -0
  24. package/esm2022/app/modules/system/components/processes/processes.component.mjs +188 -0
  25. package/esm2022/app/modules/system/components/server-log/server-log.component.mjs +40 -0
  26. package/esm2022/app/modules/system/components/server-logs/server-logs.component.mjs +56 -0
  27. package/esm2022/app/modules/system/components/settings/settings.component.mjs +144 -0
  28. package/esm2022/app/modules/system/components/upgrade-logs/upgrade-logs.component.mjs +44 -0
  29. package/{esm2020 → esm2022}/app/modules/system/fs-system.module.mjs +70 -70
  30. package/{esm2020 → esm2022}/app/modules/system/pipes/key-name-value.pipe.mjs +5 -5
  31. package/{fesm2020 → fesm2022}/firestitch-system.mjs +315 -238
  32. package/fesm2022/firestitch-system.mjs.map +1 -0
  33. package/package.json +5 -11
  34. package/esm2020/app/modules/query-logs/components/explain/explain.component.mjs +0 -24
  35. package/esm2020/app/modules/query-logs/components/query-log/query-log.component.mjs +0 -58
  36. package/esm2020/app/modules/query-logs/components/query-logs/query-logs.component.mjs +0 -84
  37. package/esm2020/app/modules/system/components/api-log/api-log.component.mjs +0 -34
  38. package/esm2020/app/modules/system/components/api-logs/api-logs.component.mjs +0 -69
  39. package/esm2020/app/modules/system/components/cron/cron.component.mjs +0 -105
  40. package/esm2020/app/modules/system/components/cron-log/cron-log.component.mjs +0 -37
  41. package/esm2020/app/modules/system/components/cron-next-run/cron-next-run.component.mjs +0 -99
  42. package/esm2020/app/modules/system/components/crons/crons.component.mjs +0 -236
  43. package/esm2020/app/modules/system/components/dashboard/dashboard.component.mjs +0 -84
  44. package/esm2020/app/modules/system/components/info/info.component.mjs +0 -31
  45. package/esm2020/app/modules/system/components/process/process.component.mjs +0 -98
  46. package/esm2020/app/modules/system/components/processes/processes.component.mjs +0 -178
  47. package/esm2020/app/modules/system/components/server-log/server-log.component.mjs +0 -38
  48. package/esm2020/app/modules/system/components/server-logs/server-logs.component.mjs +0 -53
  49. package/esm2020/app/modules/system/components/settings/settings.component.mjs +0 -138
  50. package/esm2020/app/modules/system/components/upgrade-logs/upgrade-logs.component.mjs +0 -44
  51. package/fesm2015/firestitch-system.mjs +0 -1600
  52. package/fesm2015/firestitch-system.mjs.map +0 -1
  53. package/fesm2020/firestitch-system.mjs.map +0 -1
  54. /package/{esm2020 → esm2022}/app/modules/query-logs/components/explain/index.mjs +0 -0
  55. /package/{esm2020 → esm2022}/app/modules/query-logs/components/index.mjs +0 -0
  56. /package/{esm2020 → esm2022}/app/modules/query-logs/components/query-log/index.mjs +0 -0
  57. /package/{esm2020 → esm2022}/app/modules/query-logs/components/query-logs/index.mjs +0 -0
  58. /package/{esm2020 → esm2022}/app/modules/system/components/api-log/index.mjs +0 -0
  59. /package/{esm2020 → esm2022}/app/modules/system/components/api-logs/index.mjs +0 -0
  60. /package/{esm2020 → esm2022}/app/modules/system/components/cron/index.mjs +0 -0
  61. /package/{esm2020 → esm2022}/app/modules/system/components/cron-log/index.mjs +0 -0
  62. /package/{esm2020 → esm2022}/app/modules/system/components/cron-next-run/index.mjs +0 -0
  63. /package/{esm2020 → esm2022}/app/modules/system/components/crons/index.mjs +0 -0
  64. /package/{esm2020 → esm2022}/app/modules/system/components/dashboard/index.mjs +0 -0
  65. /package/{esm2020 → esm2022}/app/modules/system/components/info/index.mjs +0 -0
  66. /package/{esm2020 → esm2022}/app/modules/system/components/process/index.mjs +0 -0
  67. /package/{esm2020 → esm2022}/app/modules/system/components/processes/index.mjs +0 -0
  68. /package/{esm2020 → esm2022}/app/modules/system/components/server-log/index.mjs +0 -0
  69. /package/{esm2020 → esm2022}/app/modules/system/components/server-logs/index.mjs +0 -0
  70. /package/{esm2020 → esm2022}/app/modules/system/components/settings/index.mjs +0 -0
  71. /package/{esm2020 → esm2022}/app/modules/system/components/upgrade-logs/index.mjs +0 -0
  72. /package/{esm2020 → esm2022}/app/modules/system/consts/api-log-states.const.mjs +0 -0
  73. /package/{esm2020 → esm2022}/app/modules/system/consts/cron-log-states.const.mjs +0 -0
  74. /package/{esm2020 → esm2022}/app/modules/system/consts/cron-process-states.const.mjs +0 -0
  75. /package/{esm2020 → esm2022}/app/modules/system/consts/cron-states.const.mjs +0 -0
  76. /package/{esm2020 → esm2022}/app/modules/system/consts/index.mjs +0 -0
  77. /package/{esm2020 → esm2022}/app/modules/system/consts/process-process-states.const.mjs +0 -0
  78. /package/{esm2020 → esm2022}/app/modules/system/consts/process-states.const.mjs +0 -0
  79. /package/{esm2020 → esm2022}/app/modules/system/consts/setting-interface-types.const.mjs +0 -0
  80. /package/{esm2020 → esm2022}/app/modules/system/enums/api-log-state.enum.mjs +0 -0
  81. /package/{esm2020 → esm2022}/app/modules/system/enums/cron-log-state.enum.mjs +0 -0
  82. /package/{esm2020 → esm2022}/app/modules/system/enums/cron-state.enum.mjs +0 -0
  83. /package/{esm2020 → esm2022}/app/modules/system/enums/index.mjs +0 -0
  84. /package/{esm2020 → esm2022}/app/modules/system/enums/process-state.enum.mjs +0 -0
  85. /package/{esm2020 → esm2022}/app/modules/system/enums/setting-interface-type.enum.mjs +0 -0
  86. /package/{esm2020 → esm2022}/app/modules/system/helpers/index-name-value.mjs +0 -0
  87. /package/{esm2020 → esm2022}/app/modules/system/injectors/system-config.injector.mjs +0 -0
  88. /package/{esm2020 → esm2022}/app/modules/system/interfaces/dashboard-action.mjs +0 -0
  89. /package/{esm2020 → esm2022}/app/modules/system/interfaces/index.mjs +0 -0
  90. /package/{esm2020 → esm2022}/app/modules/system/interfaces/process-action.mjs +0 -0
  91. /package/{esm2020 → esm2022}/app/modules/system/interfaces/process.mjs +0 -0
  92. /package/{esm2020 → esm2022}/app/modules/system/interfaces/system-config.mjs +0 -0
  93. /package/{esm2020 → esm2022}/firestitch-system.mjs +0 -0
  94. /package/{esm2020 → esm2022}/public_api.mjs +0 -0
@@ -1,31 +0,0 @@
1
- import { Component, ChangeDetectionStrategy, Input, ElementRef, ViewChild } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class InfoComponent {
4
- ngAfterViewInit() {
5
- this._load();
6
- }
7
- _load() {
8
- this.load()
9
- .subscribe((info) => {
10
- info += '<style>body { background: transparent; }</style>';
11
- const doc = this.iframe.nativeElement.contentDocument || this.iframe.nativeElement.contentWindow;
12
- doc.open();
13
- doc.write(info);
14
- doc.close();
15
- const scrollHeight = (this.iframe.nativeElement.contentWindow.document.documentElement.scrollHeight + 100);
16
- this.iframe.nativeElement.style.height = `${scrollHeight}px`;
17
- });
18
- }
19
- }
20
- InfoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: InfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
21
- InfoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: InfoComponent, selector: "fs-system-info", inputs: { load: "load" }, viewQueries: [{ propertyName: "iframe", first: true, predicate: ["iframe"], descendants: true }], ngImport: i0, template: "<iframe #iframe></iframe>\n", styles: ["iframe{width:100%;border:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: InfoComponent, decorators: [{
23
- type: Component,
24
- args: [{ selector: 'fs-system-info', changeDetection: ChangeDetectionStrategy.OnPush, template: "<iframe #iframe></iframe>\n", styles: ["iframe{width:100%;border:0}\n"] }]
25
- }], propDecorators: { iframe: [{
26
- type: ViewChild,
27
- args: ['iframe']
28
- }], load: [{
29
- type: Input
30
- }] } });
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvc3lzdGVtL2NvbXBvbmVudHMvaW5mby9pbmZvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vY29tcG9uZW50cy9pbmZvL2luZm8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBRyxLQUFLLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBVWpILE1BQU0sT0FBTyxhQUFhO0lBT3hCLGVBQWU7UUFDYixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDO0lBRU8sS0FBSztRQUNYLElBQUksQ0FBQyxJQUFJLEVBQUU7YUFDVixTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUVsQixJQUFJLElBQUksa0RBQWtELENBQUM7WUFFM0QsTUFBTSxHQUFHLEdBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQztZQUNsRyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDWCxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNaLE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1lBQzNHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsR0FBRyxZQUFZLElBQUksQ0FBQztRQUMvRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OzJHQXhCVSxhQUFhOytGQUFiLGFBQWEsa0xDVjFCLDZCQUNBOzRGRFNhLGFBQWE7a0JBTnpCLFNBQVM7K0JBQ0UsZ0JBQWdCLG1CQUdULHVCQUF1QixDQUFDLE1BQU07OEJBS3hDLE1BQU07c0JBRFosU0FBUzt1QkFBQyxRQUFRO2dCQUdILElBQUk7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCAgSW5wdXQsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ZzLXN5c3RlbS1pbmZvJyxcbiAgdGVtcGxhdGVVcmw6ICdpbmZvLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbICdpbmZvLmNvbXBvbmVudC5zY3NzJyBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgSW5mb0NvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuXG4gIEBWaWV3Q2hpbGQoJ2lmcmFtZScpIFxuICBwdWJsaWMgaWZyYW1lOiBFbGVtZW50UmVmO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBsb2FkOiAoKSA9PiBPYnNlcnZhYmxlPGFueT47XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuX2xvYWQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2xvYWQoKSB7XG4gICAgdGhpcy5sb2FkKClcbiAgICAuc3Vic2NyaWJlKChpbmZvKSA9PiB7XG5cbiAgICAgIGluZm8gKz0gJzxzdHlsZT5ib2R5IHsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH08L3N0eWxlPic7XG5cbiAgICAgIGNvbnN0IGRvYyA9ICB0aGlzLmlmcmFtZS5uYXRpdmVFbGVtZW50LmNvbnRlbnREb2N1bWVudCB8fCB0aGlzLmlmcmFtZS5uYXRpdmVFbGVtZW50LmNvbnRlbnRXaW5kb3c7XG4gICAgICBkb2Mub3BlbigpO1xuICAgICAgZG9jLndyaXRlKGluZm8pO1xuICAgICAgZG9jLmNsb3NlKCk7XG4gICAgICBjb25zdCBzY3JvbGxIZWlnaHQgPSAodGhpcy5pZnJhbWUubmF0aXZlRWxlbWVudC5jb250ZW50V2luZG93LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxIZWlnaHQgKyAxMDApO1xuICAgICAgdGhpcy5pZnJhbWUubmF0aXZlRWxlbWVudC5zdHlsZS5oZWlnaHQgPSBgJHtzY3JvbGxIZWlnaHR9cHhgO1xuICAgIH0pO1xuICB9XG59XG4iLCI8aWZyYW1lICNpZnJhbWU+PC9pZnJhbWU+XG4iXX0=
@@ -1,98 +0,0 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, } from '@angular/core';
2
- import { MAT_DIALOG_DATA } from '@angular/material/dialog';
3
- import { FsMessage } from '@firestitch/message';
4
- import { FsPrompt } from '@firestitch/prompt';
5
- import { Subject, timer } from 'rxjs';
6
- import { switchMap, takeUntil, takeWhile, tap } from 'rxjs/operators';
7
- import { ProcessProcessStates } from '../../consts';
8
- import { indexNameValue } from '../../helpers/index-name-value';
9
- import { ProcessStates } from './../../consts/process-states.const';
10
- import { ProcessState } from './../../enums/process-state.enum';
11
- import * as i0 from "@angular/core";
12
- import * as i1 from "@firestitch/message";
13
- import * as i2 from "@firestitch/prompt";
14
- import * as i3 from "@angular/common";
15
- import * as i4 from "@angular/material/button";
16
- import * as i5 from "@angular/material/dialog";
17
- import * as i6 from "@angular/material/progress-spinner";
18
- import * as i7 from "@firestitch/skeleton";
19
- import * as i8 from "@firestitch/label";
20
- import * as i9 from "@firestitch/dialog";
21
- import * as i10 from "@firestitch/date";
22
- export class ProcessComponent {
23
- constructor(data, _message, _cdRef, _prompt) {
24
- this.data = data;
25
- this._message = _message;
26
- this._cdRef = _cdRef;
27
- this._prompt = _prompt;
28
- this.ProcessStates = indexNameValue(ProcessStates);
29
- this.ProcessProcessStates = indexNameValue(ProcessProcessStates);
30
- this.ProcessState = ProcessState;
31
- this._destroy$ = new Subject();
32
- }
33
- ngOnInit() {
34
- if (this.data.loadProcess) {
35
- this.load$()
36
- .subscribe(() => {
37
- this.runningRefresh();
38
- });
39
- }
40
- else {
41
- this.process = this.data.process;
42
- }
43
- }
44
- load$() {
45
- return this.data
46
- .loadProcess(this.data.process)
47
- .pipe(tap((process) => {
48
- this.process = process;
49
- this._cdRef.markForCheck();
50
- }));
51
- }
52
- runningRefresh() {
53
- timer(0, 2000)
54
- .pipe(takeWhile(() => this.process.state === ProcessState.Running), switchMap(() => this.load$()), takeUntil(this._destroy$))
55
- .subscribe();
56
- }
57
- kill() {
58
- this._prompt.confirm({
59
- title: 'Kill process',
60
- template: 'Are you sure you would like to kill the process?',
61
- })
62
- .pipe(switchMap(() => this.data.kill(this.data.process)), switchMap(() => this.load$()))
63
- .subscribe(() => {
64
- this._message.success('Killed process');
65
- });
66
- }
67
- run() {
68
- this._message.success('Running process');
69
- this.data.run(this.data.process)
70
- .pipe(switchMap(() => this.load$()))
71
- .subscribe(() => {
72
- this.runningRefresh();
73
- });
74
- }
75
- queue() {
76
- this._message.success('Running process');
77
- this.data.queue(this.data.process)
78
- .pipe(switchMap(() => this.load$()))
79
- .subscribe();
80
- }
81
- download() {
82
- this.data.download(this.data.process);
83
- }
84
- ngOnDestroy() {
85
- this._destroy$.next();
86
- this._destroy$.complete();
87
- }
88
- }
89
- ProcessComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ProcessComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.FsMessage }, { token: i0.ChangeDetectorRef }, { token: i2.FsPrompt }], target: i0.ɵɵFactoryTarget.Component });
90
- ProcessComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ProcessComponent, selector: "ng-component", ngImport: i0, template: "<fs-dialog *fsSkeleton=\"process\">\n <div mat-dialog-title>Process</div>\n <mat-dialog-content>\n <div class=\"column\">\n <div class=\"fs-row.gap-lg.wrap.align-start\">\n <fs-label-field>\n <fs-label>\n Name\n </fs-label>\n {{process.prettyName}}\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>\n Status\n </fs-label>\n <div class=\"status\" [ngClass]=\"{ 'running': process.state === ProcessState.Running }\">\n {{ProcessStates[process.state]}} \n <ng-container *ngIf=\"process.state === ProcessState.Running\">\n <mat-progress-spinner [diameter]=\"20\" [mode]=\"'indeterminate'\"></mat-progress-spinner>\n </ng-container>\n </div>\n \n </fs-label-field>\n\n <fs-label-field *ngIf=\"process.notify\">\n <fs-label>\n Notification Email\n </fs-label>\n {{process.notify}}\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>\n Process ID\n </fs-label>\n {{process.pid || 'None'}}\n <ng-container *ngIf=\"process.pid\">\n <div class=\"small\">\n {{ProcessProcessStates[process.processState] || 'Unknown'}}\n </div>\n </ng-container>\n </fs-label-field>\n\n <fs-label-field *ngIf=\"process.createDate\">\n <fs-label>\n Create Date\n </fs-label>\n {{ process.createDate | fsDateFormat: 'date-time' }}\n </fs-label-field>\n\n <fs-label-field *ngIf=\"process.startDate\">\n <fs-label>\n Start Date\n </fs-label>\n {{ process.startDate | fsDateFormat: 'date-time' }}\n </fs-label-field>\n\n <fs-label-field *ngIf=\"process.endDate\">\n <fs-label>\n Complete Date\n </fs-label>\n {{ process.endDate | fsDateFormat: 'date-time' }}\n </fs-label-field>\n\n <fs-label-field *ngIf=\"process.duration\">\n <fs-label>\n Duration\n </fs-label>\n {{ process.duration | fsDateDuration: {hours: true, minutes: true, seconds: true} }}\n </fs-label-field>\n </div>\n\n <fs-label-field *ngIf=\"process.message\">\n <fs-label>\n Message\n </fs-label>\n {{process.message}}\n </fs-label-field>\n\n <fs-label-field *ngIf=\"process.log\">\n <fs-label>\n Log\n </fs-label>\n <div class=\"log\">\n {{process.log}}\n </div>\n </fs-label-field>\n\n </div>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button \n mat-button \n [mat-dialog-close]=\"true\" \n color=\"primary\">\n Close\n </button>\n <button\n *ngIf=\"process.state === ProcessState.Running && data.kill\"\n mat-button\n (click)=\"kill()\">\n Kill\n </button>\n <button \n *ngIf=\"process.state !== ProcessState.Running && data.run\" \n mat-button \n (click)=\"run()\">\n Run\n </button>\n <button \n *ngIf=\"(\n process.state !== ProcessState.Running && \n process.state !== ProcessState.Queued\n ) && data.queue\" \n mat-button \n (click)=\"queue()\">\n Queue\n </button>\n <button\n *ngIf=\"process.filename\"\n mat-button\n (click)=\"download()\">\n Download\n </button> \n </mat-dialog-actions>\n</fs-dialog>\n", styles: [".log{white-space:pre-line;font-family:monospace;font-size:95%;line-height:130%}.status{display:flex}.status.running{margin-right:28px}.status.running mat-progress-spinner{position:absolute;right:0}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i5.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i5.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i5.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i5.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i6.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i7.FsSkeletonContentDirective, selector: "[fsSkeleton]", inputs: ["fsSkeleton", "fsSkeletonPattern"] }, { kind: "component", type: i8.FsLabelComponent, selector: "fs-label" }, { kind: "component", type: i8.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["bottomMargin", "topMargin", "labelMargin"] }, { kind: "component", type: i9.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode", "mobileButtonPlacement", "mobileWidth", "mode", "buttonLayout", "dock", "dockable", "fullscreenPercent"] }, { kind: "pipe", type: i10.FsDateDurationPipe, name: "fsDateDuration" }, { kind: "pipe", type: i10.FsDateFormatPipe, name: "fsDateFormat" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
91
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ProcessComponent, decorators: [{
92
- type: Component,
93
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, template: "<fs-dialog *fsSkeleton=\"process\">\n <div mat-dialog-title>Process</div>\n <mat-dialog-content>\n <div class=\"column\">\n <div class=\"fs-row.gap-lg.wrap.align-start\">\n <fs-label-field>\n <fs-label>\n Name\n </fs-label>\n {{process.prettyName}}\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>\n Status\n </fs-label>\n <div class=\"status\" [ngClass]=\"{ 'running': process.state === ProcessState.Running }\">\n {{ProcessStates[process.state]}} \n <ng-container *ngIf=\"process.state === ProcessState.Running\">\n <mat-progress-spinner [diameter]=\"20\" [mode]=\"'indeterminate'\"></mat-progress-spinner>\n </ng-container>\n </div>\n \n </fs-label-field>\n\n <fs-label-field *ngIf=\"process.notify\">\n <fs-label>\n Notification Email\n </fs-label>\n {{process.notify}}\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>\n Process ID\n </fs-label>\n {{process.pid || 'None'}}\n <ng-container *ngIf=\"process.pid\">\n <div class=\"small\">\n {{ProcessProcessStates[process.processState] || 'Unknown'}}\n </div>\n </ng-container>\n </fs-label-field>\n\n <fs-label-field *ngIf=\"process.createDate\">\n <fs-label>\n Create Date\n </fs-label>\n {{ process.createDate | fsDateFormat: 'date-time' }}\n </fs-label-field>\n\n <fs-label-field *ngIf=\"process.startDate\">\n <fs-label>\n Start Date\n </fs-label>\n {{ process.startDate | fsDateFormat: 'date-time' }}\n </fs-label-field>\n\n <fs-label-field *ngIf=\"process.endDate\">\n <fs-label>\n Complete Date\n </fs-label>\n {{ process.endDate | fsDateFormat: 'date-time' }}\n </fs-label-field>\n\n <fs-label-field *ngIf=\"process.duration\">\n <fs-label>\n Duration\n </fs-label>\n {{ process.duration | fsDateDuration: {hours: true, minutes: true, seconds: true} }}\n </fs-label-field>\n </div>\n\n <fs-label-field *ngIf=\"process.message\">\n <fs-label>\n Message\n </fs-label>\n {{process.message}}\n </fs-label-field>\n\n <fs-label-field *ngIf=\"process.log\">\n <fs-label>\n Log\n </fs-label>\n <div class=\"log\">\n {{process.log}}\n </div>\n </fs-label-field>\n\n </div>\n </mat-dialog-content>\n <mat-dialog-actions>\n <button \n mat-button \n [mat-dialog-close]=\"true\" \n color=\"primary\">\n Close\n </button>\n <button\n *ngIf=\"process.state === ProcessState.Running && data.kill\"\n mat-button\n (click)=\"kill()\">\n Kill\n </button>\n <button \n *ngIf=\"process.state !== ProcessState.Running && data.run\" \n mat-button \n (click)=\"run()\">\n Run\n </button>\n <button \n *ngIf=\"(\n process.state !== ProcessState.Running && \n process.state !== ProcessState.Queued\n ) && data.queue\" \n mat-button \n (click)=\"queue()\">\n Queue\n </button>\n <button\n *ngIf=\"process.filename\"\n mat-button\n (click)=\"download()\">\n Download\n </button> \n </mat-dialog-actions>\n</fs-dialog>\n", styles: [".log{white-space:pre-line;font-family:monospace;font-size:95%;line-height:130%}.status{display:flex}.status.running{margin-right:28px}.status.running mat-progress-spinner{position:absolute;right:0}\n"] }]
94
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
95
- type: Inject,
96
- args: [MAT_DIALOG_DATA]
97
- }] }, { type: i1.FsMessage }, { type: i0.ChangeDetectorRef }, { type: i2.FsPrompt }]; } });
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvc3lzdGVtL2NvbXBvbmVudHMvcHJvY2Vzcy9wcm9jZXNzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vY29tcG9uZW50cy9wcm9jZXNzL3Byb2Nlc3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLEdBQzlELE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTlDLE9BQU8sRUFBYyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7Ozs7OztBQVFoRSxNQUFNLE9BQU8sZ0JBQWdCO0lBUzNCLFlBQ2tDLElBUS9CLEVBQ08sUUFBbUIsRUFDbkIsTUFBeUIsRUFDekIsT0FBaUI7UUFYTyxTQUFJLEdBQUosSUFBSSxDQVFuQztRQUNPLGFBQVEsR0FBUixRQUFR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QUFLLEVBQUUsQ0FBQyxDQUM5QjthQUNBLFNBQVMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUIsQ0FBQzs7OEdBakdVLGdCQUFnQixrQkFVakIsZUFBZTtrR0FWZCxnQkFBZ0Isb0RDekI3QixraEhBK0hBOzRGRHRHYSxnQkFBZ0I7a0JBTDVCLFNBQVM7c0NBR1MsdUJBQXVCLENBQUMsTUFBTTs7MEJBWTVDLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbmplY3QsIE9uRGVzdHJveSwgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuaW1wb3J0IHsgRnNNZXNzYWdlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvbWVzc2FnZSc7XG5pbXBvcnQgeyBGc1Byb21wdCB9IGZyb20gJ0BmaXJlc3RpdGNoL3Byb21wdCc7XG5cbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFrZVdoaWxlLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFByb2Nlc3NQcm9jZXNzU3RhdGVzIH0gZnJvbSAnLi4vLi4vY29uc3RzJztcbmltcG9ydCB7IGluZGV4TmFtZVZhbHVlIH0gZnJvbSAnLi4vLi4vaGVscGVycy9pbmRleC1uYW1lLXZhbHVlJztcbmltcG9ydCB7IFByb2Nlc3MgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcblxuaW1wb3J0IHsgUHJvY2Vzc1N0YXRlcyB9IGZyb20gJy4vLi4vLi4vY29uc3RzL3Byb2Nlc3Mtc3RhdGVzLmNvbnN0JztcbmltcG9ydCB7IFByb2Nlc3NTdGF0ZSB9IGZyb20gJy4vLi4vLi4vZW51bXMvcHJvY2Vzcy1zdGF0ZS5lbnVtJztcblxuXG5AQ29tcG9uZW50KHtcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2Nlc3MuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcm9jZXNzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBQcm9jZXNzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIHB1YmxpYyBwcm9jZXNzOiBQcm9jZXNzO1xuICBwdWJsaWMgUHJvY2Vzc1N0YXRlcyA9IGluZGV4TmFtZVZhbHVlKFByb2Nlc3NTdGF0ZXMpO1xuICBwdWJsaWMgUHJvY2Vzc1Byb2Nlc3NTdGF0ZXMgPSBpbmRleE5hbWVWYWx1ZShQcm9jZXNzUHJvY2Vzc1N0YXRlcyk7XG4gIHB1YmxpYyBQcm9jZXNzU3RhdGUgPSBQcm9jZXNzU3RhdGU7XG5cbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuICBcbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiB7XG4gICAgICAgcnVuOiAocHJvY2VzczogYW55KSA9PiBPYnNlcnZhYmxlPGFueT4sXG4gICAgICAgcXVldWU6IChwcm9jZXNzOiBhbnkpID0+IE9ic2VydmFibGU8YW55PixcbiAgICAgICBkZWxldGU6IChwcm9jZXNzOiBhbnkpID0+IE9ic2VydmFibGU8YW55PixcbiAgICAgICBraWxsOiAocHJvY2VzczogYW55KSA9PiBPYnNlcnZhYmxlPGFueT4sXG4gICAgICAgbG9hZFByb2Nlc3M6IChwcm9jZXNzOiBhbnkpID0+IE9ic2VydmFibGU8YW55PixcbiAgICAgICBkb3dubG9hZDogKHByb2Nlc3M6IGFueSkgPT4gdm9pZCxcbiAgICAgICBwcm9jZXNzOiBhbnksXG4gICAgfSxcbiAgICBwcml2YXRlIF9tZXNzYWdlOiBGc01lc3NhZ2UsXG4gICAgcHJpdmF0ZSBfY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgX3Byb21wdDogRnNQcm9tcHQsXG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuZGF0YS5sb2FkUHJvY2Vzcykge1xuICAgICAgdGhpcy5sb2FkJCgpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMucnVubmluZ1JlZnJlc2goKTtcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHJvY2VzcyA9IHRoaXMuZGF0YS5wcm9jZXNzO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBsb2FkJCgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmRhdGFcbiAgICAgIC5sb2FkUHJvY2Vzcyh0aGlzLmRhdGEucHJvY2VzcylcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKHByb2Nlc3MpID0+IHtcbiAgICAgICAgICB0aGlzLnByb2Nlc3MgPSBwcm9jZXNzO1xuICAgICAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gIH1cbiAgXG4gIHB1YmxpYyBydW5uaW5nUmVmcmVzaCgpIHtcbiAgICB0aW1lcigwLCAyMDAwKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VXaGlsZSgoKSA9PiB0aGlzLnByb2Nlc3Muc3RhdGUgPT09IFByb2Nlc3NTdGF0ZS5SdW5uaW5nKSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMubG9hZCQoKSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMga2lsbCgpIHtcbiAgICB0aGlzLl9wcm9tcHQuY29uZmlybSh7XG4gICAgICB0aXRsZTogJ0tpbGwgcHJvY2VzcycsXG4gICAgICB0ZW1wbGF0ZTogJ0FyZSB5b3Ugc3VyZSB5b3Ugd291bGQgbGlrZSB0byBraWxsIHRoZSBwcm9jZXNzPycsXG4gICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5kYXRhLmtpbGwodGhpcy5kYXRhLnByb2Nlc3MpKSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMubG9hZCQoKSksXG4gICAgICApICBcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLl9tZXNzYWdlLnN1Y2Nlc3MoJ0tpbGxlZCBwcm9jZXNzJyk7XG4gICAgICB9KTsgICBcbiAgfVxuXG4gIHB1YmxpYyBydW4oKSB7XG4gICAgdGhpcy5fbWVzc2FnZS5zdWNjZXNzKCdSdW5uaW5nIHByb2Nlc3MnKTtcbiAgICB0aGlzLmRhdGEucnVuKHRoaXMuZGF0YS5wcm9jZXNzKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmxvYWQkKCkpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMucnVubmluZ1JlZnJlc2goKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHF1ZXVlKCkge1xuICAgIHRoaXMuX21lc3NhZ2Uuc3VjY2VzcygnUnVubmluZyBwcm9jZXNzJyk7XG4gICAgdGhpcy5kYXRhLnF1ZXVlKHRoaXMuZGF0YS5wcm9jZXNzKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLmxvYWQkKCkpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIGRvd25sb2FkKCkge1xuICAgIHRoaXMuZGF0YS5kb3dubG9hZCh0aGlzLmRhdGEucHJvY2Vzcyk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxufVxuIiwiPGZzLWRpYWxvZyAqZnNTa2VsZXRvbj1cInByb2Nlc3NcIj5cbiAgPGRpdiBtYXQtZGlhbG9nLXRpdGxlPlByb2Nlc3M8L2Rpdj5cbiAgPG1hdC1kaWFsb2ctY29udGVudD5cbiAgICA8ZGl2IGNsYXNzPVwiY29sdW1uXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZnMtcm93LmdhcC1sZy53cmFwLmFsaWduLXN0YXJ0XCI+XG4gICAgICAgIDxmcy1sYWJlbC1maWVsZD5cbiAgICAgICAgICA8ZnMtbGFiZWw+XG4gICAgICAgICAgICBOYW1lXG4gICAgICAgICAgPC9mcy1sYWJlbD5cbiAgICAgICAgICB7e3Byb2Nlc3MucHJldHR5TmFtZX19XG4gICAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG5cbiAgICAgICAgPGZzLWxhYmVsLWZpZWxkPlxuICAgICAgICAgIDxmcy1sYWJlbD5cbiAgICAgICAgICAgIFN0YXR1c1xuICAgICAgICAgIDwvZnMtbGFiZWw+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXR1c1wiIFtuZ0NsYXNzXT1cInsgJ3J1bm5pbmcnOiBwcm9jZXNzLnN0YXRlID09PSBQcm9jZXNzU3RhdGUuUnVubmluZyB9XCI+XG4gICAgICAgICAgICB7e1Byb2Nlc3NTdGF0ZXNbcHJvY2Vzcy5zdGF0ZV19fSBcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9jZXNzLnN0YXRlID09PSBQcm9jZXNzU3RhdGUuUnVubmluZ1wiPlxuICAgICAgICAgICAgICA8bWF0LXByb2dyZXNzLXNwaW5uZXIgW2RpYW1ldGVyXT1cIjIwXCIgW21vZGVdPVwiJ2luZGV0ZXJtaW5hdGUnXCI+PC9tYXQtcHJvZ3Jlc3Mtc3Bpbm5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIFxuICAgICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxuXG4gICAgICAgIDxmcy1sYWJlbC1maWVsZCAqbmdJZj1cInByb2Nlc3Mubm90aWZ5XCI+XG4gICAgICAgICAgPGZzLWxhYmVsPlxuICAgICAgICAgICAgTm90aWZpY2F0aW9uIEVtYWlsXG4gICAgICAgICAgPC9mcy1sYWJlbD5cbiAgICAgICAgICB7e3Byb2Nlc3Mubm90aWZ5fX1cbiAgICAgICAgPC9mcy1sYWJlbC1maWVsZD5cblxuICAgICAgICA8ZnMtbGFiZWwtZmllbGQ+XG4gICAgICAgICAgPGZzLWxhYmVsPlxuICAgICAgICAgICAgUHJvY2VzcyBJRFxuICAgICAgICAgIDwvZnMtbGFiZWw+XG4gICAgICAgICAge3twcm9jZXNzLnBpZCB8fCAnTm9uZSd9fVxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9jZXNzLnBpZFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsXCI+XG4gICAgICAgICAgICAgIHt7UHJvY2Vzc1Byb2Nlc3NTdGF0ZXNbcHJvY2Vzcy5wcm9jZXNzU3RhdGVdIHx8ICdVbmtub3duJ319XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9mcy1sYWJlbC1maWVsZD5cblxuICAgICAgICA8ZnMtbGFiZWwtZmllbGQgKm5nSWY9XCJwcm9jZXNzLmNyZWF0ZURhdGVcIj5cbiAgICAgICAgICA8ZnMtbGFiZWw+XG4gICAgICAgICAgICBDcmVhdGUgRGF0ZVxuICAgICAgICAgIDwvZnMtbGFiZWw+XG4gICAgICAgICAge3sgcHJvY2Vzcy5jcmVhdGVEYXRlIHwgZnNEYXRlRm9ybWF0OiAnZGF0ZS10aW1lJyB9fVxuICAgICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxuXG4gICAgICAgIDxmcy1sYWJlbC1maWVsZCAqbmdJZj1cInByb2Nlc3Muc3RhcnREYXRlXCI+XG4gICAgICAgICAgPGZzLWxhYmVsPlxuICAgICAgICAgICAgU3RhcnQgRGF0ZVxuICAgICAgICAgIDwvZnMtbGFiZWw+XG4gICAgICAgICAge3sgcHJvY2Vzcy5zdGFydERhdGUgfCBmc0RhdGVGb3JtYXQ6ICdkYXRlLXRpbWUnIH19XG4gICAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG5cbiAgICAgICAgPGZzLWxhYmVsLWZpZWxkICpuZ0lmPVwicHJvY2Vzcy5lbmREYXRlXCI+XG4gICAgICAgICAgPGZzLWxhYmVsPlxuICAgICAgICAgICAgQ29tcGxldGUgRGF0ZVxuICAgICAgICAgIDwvZnMtbGFiZWw+XG4gICAgICAgICAge3sgcHJvY2Vzcy5lbmREYXRlIHwgZnNEYXRlRm9ybWF0OiAnZGF0ZS10aW1lJyB9fVxuICAgICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxuXG4gICAgICAgIDxmcy1sYWJlbC1maWVsZCAqbmdJZj1cInByb2Nlc3MuZHVyYXRpb25cIj5cbiAgICAgICAgICA8ZnMtbGFiZWw+XG4gICAgICAgICAgICBEdXJhdGlvblxuICAgICAgICAgIDwvZnMtbGFiZWw+XG4gICAgICAgICAge3sgcHJvY2Vzcy5kdXJhdGlvbiB8IGZzRGF0ZUR1cmF0aW9uOiB7aG91cnM6IHRydWUsIG1pbnV0ZXM6IHRydWUsIHNlY29uZHM6IHRydWV9IH19XG4gICAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGZzLWxhYmVsLWZpZWxkICpuZ0lmPVwicHJvY2Vzcy5tZXNzYWdlXCI+XG4gICAgICAgIDxmcy1sYWJlbD5cbiAgICAgICAgICBNZXNzYWdlXG4gICAgICAgIDwvZnMtbGFiZWw+XG4gICAgICAgIHt7cHJvY2Vzcy5tZXNzYWdlfX1cbiAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG5cbiAgICAgIDxmcy1sYWJlbC1maWVsZCAqbmdJZj1cInByb2Nlc3MubG9nXCI+XG4gICAgICAgIDxmcy1sYWJlbD5cbiAgICAgICAgICBMb2dcbiAgICAgICAgPC9mcy1sYWJlbD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxvZ1wiPlxuICAgICAgICAgIHt7cHJvY2Vzcy5sb2d9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG5cbiAgICA8L2Rpdj5cbiAgPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG4gIDxtYXQtZGlhbG9nLWFjdGlvbnM+XG4gICAgPGJ1dHRvbiBcbiAgICAgICAgbWF0LWJ1dHRvbiBcbiAgICAgICAgW21hdC1kaWFsb2ctY2xvc2VdPVwidHJ1ZVwiIFxuICAgICAgICBjb2xvcj1cInByaW1hcnlcIj5cbiAgICAgIENsb3NlXG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgICAqbmdJZj1cInByb2Nlc3Muc3RhdGUgPT09IFByb2Nlc3NTdGF0ZS5SdW5uaW5nICYmIGRhdGEua2lsbFwiXG4gICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgKGNsaWNrKT1cImtpbGwoKVwiPlxuICAgICAgS2lsbFxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b24gXG4gICAgICAgICpuZ0lmPVwicHJvY2Vzcy5zdGF0ZSAhPT0gUHJvY2Vzc1N0YXRlLlJ1bm5pbmcgJiYgZGF0YS5ydW5cIiBcbiAgICAgICAgbWF0LWJ1dHRvbiBcbiAgICAgICAgKGNsaWNrKT1cInJ1bigpXCI+XG4gICAgICBSdW5cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uIFxuICAgICAgICAqbmdJZj1cIihcbiAgICAgICAgICBwcm9jZXNzLnN0YXRlICE9PSBQcm9jZXNzU3RhdGUuUnVubmluZyAmJiBcbiAgICAgICAgICBwcm9jZXNzLnN0YXRlICE9PSBQcm9jZXNzU3RhdGUuUXVldWVkXG4gICAgICAgICkgJiYgZGF0YS5xdWV1ZVwiIFxuICAgICAgICBtYXQtYnV0dG9uIFxuICAgICAgICAoY2xpY2spPVwicXVldWUoKVwiPlxuICAgICAgUXVldWVcbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICAgICpuZ0lmPVwicHJvY2Vzcy5maWxlbmFtZVwiXG4gICAgICAgIG1hdC1idXR0b25cbiAgICAgICAgKGNsaWNrKT1cImRvd25sb2FkKClcIj5cbiAgICAgIERvd25sb2FkXG4gICAgPC9idXR0b24+ICAgIFxuICA8L21hdC1kaWFsb2ctYWN0aW9ucz5cbjwvZnMtZGlhbG9nPlxuIl19
@@ -1,178 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Input, ViewChild } from '@angular/core';
2
- import { MatDialog } from '@angular/material/dialog';
3
- import { ItemType } from '@firestitch/filter';
4
- import { FsListComponent } from '@firestitch/list';
5
- import { FsMessage } from '@firestitch/message';
6
- import { Subject } from 'rxjs';
7
- import { map, takeUntil } from 'rxjs/operators';
8
- import { ProcessStates } from '../../consts';
9
- import { ProcessState } from '../../enums';
10
- import { indexNameValue } from '../../helpers/index-name-value';
11
- import { ProcessComponent } from './../process/process.component';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "@angular/material/dialog";
14
- import * as i2 from "@firestitch/message";
15
- import * as i3 from "@angular/common";
16
- import * as i4 from "@firestitch/date";
17
- import * as i5 from "@firestitch/list";
18
- export class ProcessesComponent {
19
- constructor(_dialog, _message) {
20
- this._dialog = _dialog;
21
- this._message = _message;
22
- this.actions = [];
23
- this.config = null;
24
- this.ProcessStates = indexNameValue(ProcessStates);
25
- this.ProcessState = ProcessState;
26
- this._destroy$ = new Subject();
27
- }
28
- ngOnInit() {
29
- this._configList();
30
- }
31
- reload() {
32
- this.list.reload();
33
- }
34
- open(process) {
35
- this._dialog.open(ProcessComponent, {
36
- data: {
37
- process,
38
- download: this.download,
39
- run: this.run,
40
- loadProcess: this.loadProcess,
41
- queue: this.queue,
42
- kill: this.kill,
43
- },
44
- width: '85%',
45
- })
46
- .afterClosed()
47
- .pipe(takeUntil(this._destroy$))
48
- .subscribe(() => {
49
- this.reload();
50
- });
51
- }
52
- ngOnDestroy() {
53
- this._destroy$.next();
54
- this._destroy$.complete();
55
- }
56
- _configList() {
57
- this.config = {
58
- actions: [],
59
- rowActions: [],
60
- filters: [
61
- {
62
- type: ItemType.Keyword,
63
- name: 'keyword',
64
- label: 'Search',
65
- },
66
- {
67
- type: ItemType.Select,
68
- name: 'state',
69
- label: 'Status',
70
- values: ProcessStates,
71
- },
72
- ],
73
- fetch: (query) => {
74
- return this.loadProcesses(query)
75
- .pipe(map((response) => ({ data: response.data, paging: response.paging })));
76
- },
77
- };
78
- if (this.run) {
79
- this.config.rowActions
80
- .push({
81
- label: 'Run',
82
- show: (process) => {
83
- return process.state !== ProcessState.Running;
84
- },
85
- click: (data) => {
86
- this._message.info('Running process...');
87
- this.run(data)
88
- .subscribe(() => {
89
- this.reload();
90
- this._message.success('Succesfully ran process');
91
- });
92
- setTimeout(() => {
93
- this.reload();
94
- }, 500);
95
- },
96
- });
97
- }
98
- if (this.kill) {
99
- this.config.rowActions.push({
100
- label: 'Kill',
101
- show: (data) => {
102
- return !!data.pid;
103
- },
104
- click: (data) => {
105
- this._message.info('Killing process...');
106
- this.kill(data)
107
- .subscribe(() => {
108
- this.reload();
109
- this._message.success('Succesfully killed process');
110
- });
111
- setTimeout(() => {
112
- this.reload();
113
- }, 500);
114
- },
115
- });
116
- }
117
- if (this.delete) {
118
- this.config.rowActions.push({
119
- label: 'Delete',
120
- click: (data) => {
121
- this.delete(data)
122
- .subscribe(() => {
123
- this.reload();
124
- this._message.success('Deleted process');
125
- });
126
- },
127
- });
128
- }
129
- this.actions.forEach((action) => {
130
- this.config.actions.push({
131
- primary: false,
132
- label: action.label,
133
- menu: action.menu,
134
- click: (data) => {
135
- if (action.click) {
136
- action.click(data);
137
- }
138
- if (action.component) {
139
- this._dialog.open(action.component, {
140
- width: '800px',
141
- })
142
- .afterClosed()
143
- .pipe(takeUntil(this._destroy$))
144
- .subscribe(() => {
145
- this.reload();
146
- });
147
- }
148
- },
149
- });
150
- });
151
- }
152
- }
153
- ProcessesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ProcessesComponent, deps: [{ token: i1.MatDialog }, { token: i2.FsMessage }], target: i0.ɵɵFactoryTarget.Component });
154
- ProcessesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ProcessesComponent, selector: "fs-system-processes", inputs: { loadProcesses: "loadProcesses", loadProcess: "loadProcess", run: "run", kill: "kill", delete: "delete", download: "download", queue: "queue", actions: "actions" }, viewQueries: [{ propertyName: "list", first: true, predicate: FsListComponent, descendants: 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 <a (click)=\"open(row)\">{{row.prettyName}}</a>\n </ng-template>\n </fs-list-column>\n\n <fs-list-column>\n <ng-template fs-list-header>Status</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n {{ProcessStates[row.state]}}\n <small>\n <div *ngIf=\"row.state===ProcessState.Running && row.percent\">Complete: {{ row.percent }}%</div>\n <div *ngIf=\"row.state===ProcessState.Completed && row.filename\">Download: <a href=\"javascript:;\" (click)=\"download(row)\">{{ row.filename }}</a></div>\n <div *ngIf=\"row.pid\">PID: {{ row.pid }}</div>\n <div *ngIf=\"row.state===ProcessState.Running && row.notify\">Notify: {{ row.notify }}</div>\n </small>\n </ng-template>\n </fs-list-column>\n\n <fs-list-column>\n <ng-template fs-list-header>Duration</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n {{ row.duration | fsDateDuration: {hours: true, minutes: true, seconds: true} }}\n </ng-template>\n </fs-list-column>\n\n <fs-list-column>\n <ng-template fs-list-header>Message</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n {{row.message}}\n </ng-template>\n </fs-list-column>\n\n <fs-list-column>\n <ng-template fs-list-header>Completed</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n <fs-date-ago [date]=\"row.endDate\"></fs-date-ago>\n </ng-template>\n </fs-list-column>\n</fs-list>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.FsDateAgoComponent, selector: "fs-date-ago", inputs: ["date", "showTime", "format", "showTooltip", "tooltipDateFormat"] }, { kind: "component", type: i5.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { kind: "directive", type: i5.FsListColumnDirective, selector: "fs-list-column", inputs: ["show", "title", "name", "customize", "sortable", "sortableDefault", "sortableDirection", "direction", "align", "width", "class"] }, { kind: "directive", type: i5.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }, { kind: "directive", type: i5.FsListHeaderDirective, selector: "[fs-list-header]", inputs: ["colspan", "align", "class"] }, { kind: "pipe", type: i4.FsDateDurationPipe, name: "fsDateDuration" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
155
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ProcessesComponent, decorators: [{
156
- type: Component,
157
- args: [{ selector: 'fs-system-processes', changeDetection: ChangeDetectionStrategy.OnPush, template: "<fs-list [config]=\"config\">\n <fs-list-column>\n <ng-template fs-list-header>Name</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n <a (click)=\"open(row)\">{{row.prettyName}}</a>\n </ng-template>\n </fs-list-column>\n\n <fs-list-column>\n <ng-template fs-list-header>Status</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n {{ProcessStates[row.state]}}\n <small>\n <div *ngIf=\"row.state===ProcessState.Running && row.percent\">Complete: {{ row.percent }}%</div>\n <div *ngIf=\"row.state===ProcessState.Completed && row.filename\">Download: <a href=\"javascript:;\" (click)=\"download(row)\">{{ row.filename }}</a></div>\n <div *ngIf=\"row.pid\">PID: {{ row.pid }}</div>\n <div *ngIf=\"row.state===ProcessState.Running && row.notify\">Notify: {{ row.notify }}</div>\n </small>\n </ng-template>\n </fs-list-column>\n\n <fs-list-column>\n <ng-template fs-list-header>Duration</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n {{ row.duration | fsDateDuration: {hours: true, minutes: true, seconds: true} }}\n </ng-template>\n </fs-list-column>\n\n <fs-list-column>\n <ng-template fs-list-header>Message</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n {{row.message}}\n </ng-template>\n </fs-list-column>\n\n <fs-list-column>\n <ng-template fs-list-header>Completed</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n <fs-date-ago [date]=\"row.endDate\"></fs-date-ago>\n </ng-template>\n </fs-list-column>\n</fs-list>\n" }]
158
- }], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.FsMessage }]; }, propDecorators: { list: [{
159
- type: ViewChild,
160
- args: [FsListComponent]
161
- }], loadProcesses: [{
162
- type: Input
163
- }], loadProcess: [{
164
- type: Input
165
- }], run: [{
166
- type: Input
167
- }], kill: [{
168
- type: Input
169
- }], delete: [{
170
- type: Input
171
- }], download: [{
172
- type: Input
173
- }], queue: [{
174
- type: Input
175
- }], actions: [{
176
- type: Input
177
- }] } });
178
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzc2VzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vY29tcG9uZW50cy9wcm9jZXNzZXMvcHJvY2Vzc2VzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vY29tcG9uZW50cy9wcm9jZXNzZXMvcHJvY2Vzc2VzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXJELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLGtCQUFrQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVoRCxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUdoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7OztBQVNsRSxNQUFNLE9BQU8sa0JBQWtCO0lBbUI3QixZQUNVLE9BQWtCLEVBQ2xCLFFBQW1CO1FBRG5CLFlBQU8sR0FBUCxPQUFPLENBQVc7UUFDbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVztR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O3VCQUFDLGVBQWU7Z0JBRVYsYUFBYTtzQkFBNUIsS0FBSztnQkFDVSxXQUFXO3NCQUExQixLQUFLO2dCQUNVLEdBQUc7c0JBQWxCLEtBQUs7Z0JBQ1UsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxNQUFNO3NCQUFyQixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsS0FBSztzQkFBcEIsS0FBSztnQkFDVSxPQUFPO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuaW1wb3J0IHsgSXRlbVR5cGUgfSBmcm9tICdAZmlyZXN0aXRjaC9maWx0ZXInO1xuaW1wb3J0IHsgRnNMaXN0Q29tcG9uZW50LCBGc0xpc3RDb25maWcgfSBmcm9tICdAZmlyZXN0aXRjaC9saXN0JztcbmltcG9ydCB7IEZzTWVzc2FnZSB9IGZyb20gJ0BmaXJlc3RpdGNoL21lc3NhZ2UnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgUHJvY2Vzc1N0YXRlcyB9IGZyb20gJy4uLy4uL2NvbnN0cyc7XG5pbXBvcnQgeyBQcm9jZXNzU3RhdGUgfSBmcm9tICcuLi8uLi9lbnVtcyc7XG5pbXBvcnQgeyBpbmRleE5hbWVWYWx1ZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMvaW5kZXgtbmFtZS12YWx1ZSc7XG5cbmltcG9ydCB7IFByb2Nlc3NBY3Rpb24gfSBmcm9tICcuLy4uLy4uL2ludGVyZmFjZXMvcHJvY2Vzcy1hY3Rpb24nO1xuaW1wb3J0IHsgUHJvY2Vzc0NvbXBvbmVudCB9IGZyb20gJy4vLi4vcHJvY2Vzcy9wcm9jZXNzLmNvbXBvbmVudCc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnMtc3lzdGVtLXByb2Nlc3NlcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcm9jZXNzZXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcm9jZXNzZXMuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFByb2Nlc3Nlc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBAVmlld0NoaWxkKEZzTGlzdENvbXBvbmVudCkgcHVibGljIGxpc3Q6IEZzTGlzdENvbXBvbmVudDtcblxuICBASW5wdXQoKSBwdWJsaWMgbG9hZFByb2Nlc3NlczogKGRhdGE6IGFueSkgPT4gT2JzZXJ2YWJsZTx7IGRhdGE6IGFueVtdOyBwYWdpbmc6IGFueSB9PjtcbiAgQElucHV0KCkgcHVibGljIGxvYWRQcm9jZXNzOiAoZGF0YTogYW55KSA9PiBPYnNlcnZhYmxlPGFueT47XG4gIEBJbnB1dCgpIHB1YmxpYyBydW46IChkYXRhOiBhbnkpID0+IE9ic2VydmFibGU8YW55PjtcbiAgQElucHV0KCkgcHVibGljIGtpbGw6IChkYXRhOiBhbnkpID0+IE9ic2VydmFibGU8YW55PjtcbiAgQElucHV0KCkgcHVibGljIGRlbGV0ZTogKGRhdGE6IGFueSkgPT4gT2JzZXJ2YWJsZTxhbnk+O1xuICBASW5wdXQoKSBwdWJsaWMgZG93bmxvYWQ6IChkYXRhOiBhbnkpID0+IGFueTtcbiAgQElucHV0KCkgcHVibGljIHF1ZXVlOiAoZGF0YTogYW55KSA9PiBhbnk7XG4gIEBJbnB1dCgpIHB1YmxpYyBhY3Rpb25zOiBQcm9jZXNzQWN0aW9uW10gPSBbXTtcblxuICBwdWJsaWMgY29uZmlnOiBGc0xpc3RDb25maWcgPSBudWxsO1xuICBwdWJsaWMgUHJvY2Vzc1N0YXRlcyA9IGluZGV4TmFtZVZhbHVlKFByb2Nlc3NTdGF0ZXMpO1xuICBwdWJsaWMgUHJvY2Vzc1N0YXRlID0gUHJvY2Vzc1N0YXRlO1xuXG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9kaWFsb2c6IE1hdERpYWxvZyxcbiAgICBwcml2YXRlIF9tZXNzYWdlOiBGc01lc3NhZ2UsXG4gICkgeyB9XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMuX2NvbmZpZ0xpc3QoKTtcbiAgfVxuXG4gIHB1YmxpYyByZWxvYWQoKSB7XG4gICAgdGhpcy5saXN0LnJlbG9hZCgpO1xuICB9XG5cbiAgcHVibGljIG9wZW4ocHJvY2Vzcykge1xuICAgIHRoaXMuX2RpYWxvZy5vcGVuKFByb2Nlc3NDb21wb25lbnQsIHtcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgcHJvY2VzcyxcbiAgICAgICAgZG93bmxvYWQ6IHRoaXMuZG93bmxvYWQsXG4gICAgICAgIHJ1bjogdGhpcy5ydW4sXG4gICAgICAgIGxvYWRQcm9jZXNzOiB0aGlzLmxvYWRQcm9jZXNzLFxuICAgICAgICBxdWV1ZTogdGhpcy5xdWV1ZSxcbiAgICAgICAga2lsbDogdGhpcy5raWxsLFxuICAgICAgfSxcbiAgICAgIHdpZHRoOiAnODUlJyxcbiAgICB9KVxuICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMucmVsb2FkKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NvbmZpZ0xpc3QoKSB7XG4gICAgdGhpcy5jb25maWcgPSB7XG4gICAgICBhY3Rpb25zOiBbXSxcbiAgICAgIHJvd0FjdGlvbnM6IFtdLFxuICAgICAgZmlsdGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogSXRlbVR5cGUuS2V5d29yZCxcbiAgICAgICAgICBuYW1lOiAna2V5d29yZCcsXG4gICAgICAgICAgbGFiZWw6ICdTZWFyY2gnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogSXRlbVR5cGUuU2VsZWN0LFxuICAgICAgICAgIG5hbWU6ICdzdGF0ZScsXG4gICAgICAgICAgbGFiZWw6ICdTdGF0dXMnLFxuICAgICAgICAgIHZhbHVlczogUHJvY2Vzc1N0YXRlcyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBmZXRjaDogKHF1ZXJ5KSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRQcm9jZXNzZXMocXVlcnkpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHJlc3BvbnNlOiBhbnkpID0+ICh7IGRhdGE6IHJlc3BvbnNlLmRhdGEsIHBhZ2luZzogcmVzcG9uc2UucGFnaW5nIH0pKSxcbiAgICAgICAgICApO1xuICAgICAgfSxcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMucnVuKSB7XG4gICAgICB0aGlzLmNvbmZpZy5yb3dBY3Rpb25zXG4gICAgICAgIC5wdXNoKFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGxhYmVsOiAnUnVuJyxcbiAgICAgICAgICAgIHNob3c6IChwcm9jZXNzKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiBwcm9jZXNzLnN0YXRlICE9PSBQcm9jZXNzU3RhdGUuUnVubmluZztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjbGljazogKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5fbWVzc2FnZS5pbmZvKCdSdW5uaW5nIHByb2Nlc3MuLi4nKTtcbiAgICAgICAgICAgICAgdGhpcy5ydW4oZGF0YSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgIHRoaXMucmVsb2FkKCk7XG4gICAgICAgICAgICAgICAgICB0aGlzLl9tZXNzYWdlLnN1Y2Nlc3MoJ1N1Y2Nlc2Z1bGx5IHJhbiBwcm9jZXNzJyk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWxvYWQoKTtcbiAgICAgICAgICAgICAgfSwgNTAwKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5raWxsKSB7XG4gICAgICB0aGlzLmNvbmZpZy5yb3dBY3Rpb25zLnB1c2goe1xuICAgICAgICBsYWJlbDogJ0tpbGwnLFxuICAgICAgICBzaG93OiAoZGF0YSkgPT4ge1xuICAgICAgICAgIHJldHVybiAhIWRhdGEucGlkO1xuICAgICAgICB9LFxuICAgICAgICBjbGljazogKGRhdGEpID0+IHtcbiAgICAgICAgICB0aGlzLl9tZXNzYWdlLmluZm8oJ0tpbGxpbmcgcHJvY2Vzcy4uLicpO1xuICAgICAgICAgIHRoaXMua2lsbChkYXRhKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMucmVsb2FkKCk7XG4gICAgICAgICAgICAgIHRoaXMuX21lc3NhZ2Uuc3VjY2VzcygnU3VjY2VzZnVsbHkga2lsbGVkIHByb2Nlc3MnKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlbG9hZCgpO1xuICAgICAgICAgIH0sIDUwMCk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kZWxldGUpIHtcbiAgICAgIHRoaXMuY29uZmlnLnJvd0FjdGlvbnMucHVzaCh7XG4gICAgICAgIGxhYmVsOiAnRGVsZXRlJyxcbiAgICAgICAgY2xpY2s6IChkYXRhKSA9PiB7XG4gICAgICAgICAgdGhpcy5kZWxldGUoZGF0YSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnJlbG9hZCgpO1xuICAgICAgICAgICAgICB0aGlzLl9tZXNzYWdlLnN1Y2Nlc3MoJ0RlbGV0ZWQgcHJvY2VzcycpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmFjdGlvbnMuZm9yRWFjaCgoYWN0aW9uKSA9PiB7XG4gICAgICB0aGlzLmNvbmZpZy5hY3Rpb25zLnB1c2goXG4gICAgICAgIHtcbiAgICAgICAgICBwcmltYXJ5OiBmYWxzZSxcbiAgICAgICAgICBsYWJlbDogYWN0aW9uLmxhYmVsLFxuICAgICAgICAgIG1lbnU6IGFjdGlvbi5tZW51LFxuICAgICAgICAgIGNsaWNrOiAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgaWYgKGFjdGlvbi5jbGljaykge1xuICAgICAgICAgICAgICBhY3Rpb24uY2xpY2soZGF0YSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChhY3Rpb24uY29tcG9uZW50KSB7XG4gICAgICAgICAgICAgIHRoaXMuX2RpYWxvZy5vcGVuKGFjdGlvbi5jb21wb25lbnQsIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogJzgwMHB4JyxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuYWZ0ZXJDbG9zZWQoKVxuICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICB0aGlzLnJlbG9hZCgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICApO1xuICAgIH0pO1xuICB9XG59XG4iLCI8ZnMtbGlzdCBbY29uZmlnXT1cImNvbmZpZ1wiPlxuICA8ZnMtbGlzdC1jb2x1bW4+XG4gICAgPG5nLXRlbXBsYXRlIGZzLWxpc3QtaGVhZGVyPk5hbWU8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWNlbGwgbGV0LXJvdz1cInJvd1wiPlxuICAgICAgPGEgKGNsaWNrKT1cIm9wZW4ocm93KVwiPnt7cm93LnByZXR0eU5hbWV9fTwvYT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2ZzLWxpc3QtY29sdW1uPlxuXG4gIDxmcy1saXN0LWNvbHVtbj5cbiAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1oZWFkZXI+U3RhdHVzPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1jZWxsIGxldC1yb3c9XCJyb3dcIj5cbiAgICAgIHt7UHJvY2Vzc1N0YXRlc1tyb3cuc3RhdGVdfX1cbiAgICAgIDxzbWFsbD5cbiAgICAgICAgPGRpdiAqbmdJZj1cInJvdy5zdGF0ZT09PVByb2Nlc3NTdGF0ZS5SdW5uaW5nICYmIHJvdy5wZXJjZW50XCI+Q29tcGxldGU6IHt7IHJvdy5wZXJjZW50IH19JTwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwicm93LnN0YXRlPT09UHJvY2Vzc1N0YXRlLkNvbXBsZXRlZCAmJiByb3cuZmlsZW5hbWVcIj5Eb3dubG9hZDogPGEgaHJlZj1cImphdmFzY3JpcHQ6O1wiIChjbGljayk9XCJkb3dubG9hZChyb3cpXCI+e3sgcm93LmZpbGVuYW1lIH19PC9hPjwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwicm93LnBpZFwiPlBJRDoge3sgcm93LnBpZCB9fTwvZGl2PlxuICAgICAgICA8ZGl2ICpuZ0lmPVwicm93LnN0YXRlPT09UHJvY2Vzc1N0YXRlLlJ1bm5pbmcgJiYgcm93Lm5vdGlmeVwiPk5vdGlmeToge3sgcm93Lm5vdGlmeSB9fTwvZGl2PlxuICAgICAgPC9zbWFsbD5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2ZzLWxpc3QtY29sdW1uPlxuXG4gIDxmcy1saXN0LWNvbHVtbj5cbiAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1oZWFkZXI+RHVyYXRpb248L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWNlbGwgbGV0LXJvdz1cInJvd1wiPlxuICAgICAge3sgcm93LmR1cmF0aW9uIHwgZnNEYXRlRHVyYXRpb246IHtob3VyczogdHJ1ZSwgbWludXRlczogdHJ1ZSwgc2Vjb25kczogdHJ1ZX0gfX1cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2ZzLWxpc3QtY29sdW1uPlxuXG4gIDxmcy1saXN0LWNvbHVtbj5cbiAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1oZWFkZXI+TWVzc2FnZTwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlIGZzLWxpc3QtY2VsbCBsZXQtcm93PVwicm93XCI+XG4gICAgICB7e3Jvdy5tZXNzYWdlfX1cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2ZzLWxpc3QtY29sdW1uPlxuXG4gIDxmcy1saXN0LWNvbHVtbj5cbiAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1oZWFkZXI+Q29tcGxldGVkPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1jZWxsIGxldC1yb3c9XCJyb3dcIj5cbiAgICAgIDxmcy1kYXRlLWFnbyBbZGF0ZV09XCJyb3cuZW5kRGF0ZVwiPjwvZnMtZGF0ZS1hZ28+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9mcy1saXN0LWNvbHVtbj5cbjwvZnMtbGlzdD5cbiJdfQ==
@@ -1,38 +0,0 @@
1
- import { Component, Inject } from '@angular/core';
2
- import { MAT_DIALOG_DATA } from '@angular/material/dialog';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- import * as i2 from "@angular/material/button";
6
- import * as i3 from "@angular/material/dialog";
7
- import * as i4 from "@firestitch/skeleton";
8
- import * as i5 from "@firestitch/label";
9
- import * as i6 from "@firestitch/dialog";
10
- import * as i7 from "@firestitch/date";
11
- export class ServerLogComponent {
12
- constructor(data) {
13
- this.data = data;
14
- }
15
- ngOnInit() {
16
- if (this.data.log) {
17
- this.log = this.data.log;
18
- try {
19
- this.log.backtrace = JSON.parse(this.log.backtrace);
20
- }
21
- catch (e) { }
22
- try {
23
- this.log.server = JSON.parse(this.log.server);
24
- }
25
- catch (e) { }
26
- }
27
- }
28
- }
29
- ServerLogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ServerLogComponent, deps: [{ token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
30
- ServerLogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ServerLogComponent, selector: "ng-component", ngImport: i0, template: "<fs-dialog *fsSkeleton=\"log\">\n <div mat-dialog-title>Log</div>\n <mat-dialog-content>\n <div class=\"fs-row.gap-lg.wrap.align-start\">\n <fs-label-field>\n <fs-label>\n Error Type\n </fs-label>\n {{log.type}}\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>\n Message\n </fs-label>\n {{log.message}}\n </fs-label-field>\n\n <fs-label-field *ngIf=\"log.url\">\n <fs-label>\n URL\n </fs-label>\n {{log.url}}\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>\n Date\n </fs-label>\n {{log.createDate|fsDateFormat: 'full-date-time'}}\n </fs-label-field>\n \n <fs-label-field>\n <fs-label>\n File\n </fs-label>\n {{log.file}} @ {{log.line}}\n </fs-label-field>\n </div>\n <fs-label-field>\n <fs-label>\n $_SERVER\n </fs-label>\n <pre>{{log.server|json}}</pre>\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>\n Backtrace\n </fs-label>\n <pre>{{log.backtrace|json}}</pre>\n </fs-label-field>\n\n\n </mat-dialog-content>\n <mat-dialog-actions>\n <button mat-button [mat-dialog-close]=\"true\" color=\"primary\">Done</button>\n </mat-dialog-actions>\n</fs-dialog>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i3.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i3.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i3.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i4.FsSkeletonContentDirective, selector: "[fsSkeleton]", inputs: ["fsSkeleton", "fsSkeletonPattern"] }, { kind: "component", type: i5.FsLabelComponent, selector: "fs-label" }, { kind: "component", type: i5.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["bottomMargin", "topMargin", "labelMargin"] }, { kind: "component", type: i6.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode", "mobileButtonPlacement", "mobileWidth", "mode", "buttonLayout", "dock", "dockable", "fullscreenPercent"] }, { kind: "pipe", type: i1.JsonPipe, name: "json" }, { kind: "pipe", type: i7.FsDateFormatPipe, name: "fsDateFormat" }] });
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ServerLogComponent, decorators: [{
32
- type: Component,
33
- args: [{ template: "<fs-dialog *fsSkeleton=\"log\">\n <div mat-dialog-title>Log</div>\n <mat-dialog-content>\n <div class=\"fs-row.gap-lg.wrap.align-start\">\n <fs-label-field>\n <fs-label>\n Error Type\n </fs-label>\n {{log.type}}\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>\n Message\n </fs-label>\n {{log.message}}\n </fs-label-field>\n\n <fs-label-field *ngIf=\"log.url\">\n <fs-label>\n URL\n </fs-label>\n {{log.url}}\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>\n Date\n </fs-label>\n {{log.createDate|fsDateFormat: 'full-date-time'}}\n </fs-label-field>\n \n <fs-label-field>\n <fs-label>\n File\n </fs-label>\n {{log.file}} @ {{log.line}}\n </fs-label-field>\n </div>\n <fs-label-field>\n <fs-label>\n $_SERVER\n </fs-label>\n <pre>{{log.server|json}}</pre>\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>\n Backtrace\n </fs-label>\n <pre>{{log.backtrace|json}}</pre>\n </fs-label-field>\n\n\n </mat-dialog-content>\n <mat-dialog-actions>\n <button mat-button [mat-dialog-close]=\"true\" color=\"primary\">Done</button>\n </mat-dialog-actions>\n</fs-dialog>\n" }]
34
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
35
- type: Inject,
36
- args: [MAT_DIALOG_DATA]
37
- }] }]; } });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvc3lzdGVtL2NvbXBvbmVudHMvc2VydmVyLWxvZy9zZXJ2ZXItbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vY29tcG9uZW50cy9zZXJ2ZXItbG9nL3NlcnZlci1sb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7QUFPM0QsTUFBTSxPQUFPLGtCQUFrQjtJQUk3QixZQUE0QyxJQUFJO1FBQUosU0FBSSxHQUFKLElBQUksQ0FBQTtJQUFHLENBQUM7SUFFN0MsUUFBUTtRQUViLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDakIsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztZQUV6QixJQUFJO2dCQUNGLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUNyRDtZQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUU7WUFFZCxJQUFJO2dCQUNGLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUMvQztZQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUU7U0FDZjtJQUNILENBQUM7O2dIQW5CVSxrQkFBa0Isa0JBSVQsZUFBZTtvR0FKeEIsa0JBQWtCLG9EQ1IvQix3MENBMkRBOzRGRG5EYSxrQkFBa0I7a0JBSjlCLFNBQVM7OzswQkFRSyxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuXG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vc2VydmVyLWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlcnZlci1sb2cuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTZXJ2ZXJMb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHB1YmxpYyBsb2c7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcblxuICAgIGlmICh0aGlzLmRhdGEubG9nKSB7XG4gICAgICB0aGlzLmxvZyA9IHRoaXMuZGF0YS5sb2c7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMubG9nLmJhY2t0cmFjZSA9IEpTT04ucGFyc2UodGhpcy5sb2cuYmFja3RyYWNlKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHt9XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMubG9nLnNlcnZlciA9IEpTT04ucGFyc2UodGhpcy5sb2cuc2VydmVyKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgfVxuICB9XG59XG4iLCI8ZnMtZGlhbG9nICpmc1NrZWxldG9uPVwibG9nXCI+XG4gIDxkaXYgbWF0LWRpYWxvZy10aXRsZT5Mb2c8L2Rpdj5cbiAgPG1hdC1kaWFsb2ctY29udGVudD5cbiAgICA8ZGl2IGNsYXNzPVwiZnMtcm93LmdhcC1sZy53cmFwLmFsaWduLXN0YXJ0XCI+XG4gICAgICA8ZnMtbGFiZWwtZmllbGQ+XG4gICAgICAgIDxmcy1sYWJlbD5cbiAgICAgICAgICBFcnJvciBUeXBlXG4gICAgICAgIDwvZnMtbGFiZWw+XG4gICAgICAgIHt7bG9nLnR5cGV9fVxuICAgICAgPC9mcy1sYWJlbC1maWVsZD5cblxuICAgICAgPGZzLWxhYmVsLWZpZWxkPlxuICAgICAgICA8ZnMtbGFiZWw+XG4gICAgICAgICAgTWVzc2FnZVxuICAgICAgICA8L2ZzLWxhYmVsPlxuICAgICAgICB7e2xvZy5tZXNzYWdlfX1cbiAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG5cbiAgICAgIDxmcy1sYWJlbC1maWVsZCAqbmdJZj1cImxvZy51cmxcIj5cbiAgICAgICAgPGZzLWxhYmVsPlxuICAgICAgICAgIFVSTFxuICAgICAgICA8L2ZzLWxhYmVsPlxuICAgICAgICB7e2xvZy51cmx9fVxuICAgICAgPC9mcy1sYWJlbC1maWVsZD5cblxuICAgICAgPGZzLWxhYmVsLWZpZWxkPlxuICAgICAgICA8ZnMtbGFiZWw+XG4gICAgICAgICAgRGF0ZVxuICAgICAgICA8L2ZzLWxhYmVsPlxuICAgICAgICB7e2xvZy5jcmVhdGVEYXRlfGZzRGF0ZUZvcm1hdDogJ2Z1bGwtZGF0ZS10aW1lJ319XG4gICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxuICAgICAgICBcbiAgICAgIDxmcy1sYWJlbC1maWVsZD5cbiAgICAgICAgPGZzLWxhYmVsPlxuICAgICAgICAgIEZpbGVcbiAgICAgICAgPC9mcy1sYWJlbD5cbiAgICAgICAge3tsb2cuZmlsZX19IEAge3tsb2cubGluZX19XG4gICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxuICAgIDwvZGl2PlxuICAgIDxmcy1sYWJlbC1maWVsZD5cbiAgICAgIDxmcy1sYWJlbD5cbiAgICAgICAgJF9TRVJWRVJcbiAgICAgIDwvZnMtbGFiZWw+XG4gICAgICA8cHJlPnt7bG9nLnNlcnZlcnxqc29ufX08L3ByZT5cbiAgICA8L2ZzLWxhYmVsLWZpZWxkPlxuXG4gICAgPGZzLWxhYmVsLWZpZWxkPlxuICAgICAgPGZzLWxhYmVsPlxuICAgICAgICBCYWNrdHJhY2VcbiAgICAgIDwvZnMtbGFiZWw+XG4gICAgICA8cHJlPnt7bG9nLmJhY2t0cmFjZXxqc29ufX08L3ByZT5cbiAgICA8L2ZzLWxhYmVsLWZpZWxkPlxuXG5cbiAgPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG4gIDxtYXQtZGlhbG9nLWFjdGlvbnM+XG4gICAgPGJ1dHRvbiBtYXQtYnV0dG9uIFttYXQtZGlhbG9nLWNsb3NlXT1cInRydWVcIiBjb2xvcj1cInByaW1hcnlcIj5Eb25lPC9idXR0b24+XG4gIDwvbWF0LWRpYWxvZy1hY3Rpb25zPlxuPC9mcy1kaWFsb2c+XG4iXX0=
@@ -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: "15.2.10", ngImport: i0, type: ServerLogsComponent, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
43
- ServerLogsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", 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", "sortableDirection", "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: "15.2.10", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLWxvZ3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL3N5c3RlbS9jb21wb25lbnRzL3NlcnZlci1sb2dzL3NlcnZlci1sb2dzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vY29tcG9uZW50cy9zZXJ2ZXItbG9ncy9zZXJ2ZXItbG9ncy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEUsT0FBTyxFQUFnQixlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7QUFTeEUsTUFBTSxPQUFPLG1CQUFtQjtJQVM5QixZQUNVLE9BQWtCO1FBQWxCLFlBQU8sR0FBUCxPQUFPLENBQVc7UUFKckIsV0FBTSxHQUFpQixJQUFJLENBQUM7UUFDNUIsYUFBUSxHQUFHLEVBQUUsQ0FBQztJQUlqQixDQUFDO0lBRUwsUUFBUTtRQUNOLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRU8sV0FBVztRQUVqQixJQUFJLENBQUMsTUFBTSxHQUFHO1lBQ1osT0FBTyxFQUFFO2dCQUNQO29CQUNFLElBQUksRUFBRSxRQUFRLENBQUMsT0FBTztvQkFDdEIsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsS0FBSyxFQUFFLFFBQVE7aUJBQ2hCO2FBQ0Y7WUFDRCxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUU7Z0JBQ2IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztxQkFDeEIsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUMzRSxDQUFDO1lBQ04sQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDO0lBRU0sSUFBSSxDQUFDLEdBQUc7UUFDYixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUNwQyxJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFO1lBQ2xCLEtBQUssRUFBRSxLQUFLO1NBQ2IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7aUhBekNVLG1CQUFtQjtxR0FBbkIsbUJBQW1CLDJNQ2ZoQyxvdEJBb0JBOzRGRExhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSx1QkFBdUI7Z0dBTVcsSUFBSTtzQkFBL0MsU0FBUzt1QkFBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUVuQixRQUFRO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRnNMaXN0Q29uZmlnLCBGc0xpc3RDb21wb25lbnQgfSBmcm9tICdAZmlyZXN0aXRjaC9saXN0JztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEl0ZW1UeXBlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvZmlsdGVyJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBTZXJ2ZXJMb2dDb21wb25lbnQgfSBmcm9tICcuLi9zZXJ2ZXItbG9nL3NlcnZlci1sb2cuY29tcG9uZW50JztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmcy1zeXN0ZW0tc2VydmVyLWxvZ3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VydmVyLWxvZ3MuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZXJ2ZXItbG9ncy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNlcnZlckxvZ3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBWaWV3Q2hpbGQoJ2xpc3QnLCB7IHN0YXRpYzogdHJ1ZSB9KSBwdWJsaWMgbGlzdDogRnNMaXN0Q29tcG9uZW50O1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBsb2FkTG9nczogKGRhdGE6IGFueSkgPT4gT2JzZXJ2YWJsZTx7IGRhdGE6IGFueVtdLCBwYWdpbmc6IGFueSB9PjtcblxuICBwdWJsaWMgY29uZmlnOiBGc0xpc3RDb25maWcgPSBudWxsO1xuICBwdWJsaWMgbG9nVHlwZXMgPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9kaWFsb2c6IE1hdERpYWxvZyxcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLl9jb25maWdMaXN0KCk7XG4gIH1cblxuICBwcml2YXRlIF9jb25maWdMaXN0KCkge1xuXG4gICAgdGhpcy5jb25maWcgPSB7XG4gICAgICBmaWx0ZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiBJdGVtVHlwZS5LZXl3b3JkLFxuICAgICAgICAgIG5hbWU6ICdrZXl3b3JkJyxcbiAgICAgICAgICBsYWJlbDogJ1NlYXJjaCdcbiAgICAgICAgfVxuICAgICAgXSxcbiAgICAgIGZldGNoOiBxdWVyeSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRMb2dzKHF1ZXJ5KVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKChyZXNwb25zZTogYW55KSA9PiAoeyBkYXRhOiByZXNwb25zZS5kYXRhLCBwYWdpbmc6IHJlc3BvbnNlLnBhZ2luZyB9KSlcbiAgICAgICAgICApO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgb3Blbihsb2cpIHtcbiAgICB0aGlzLl9kaWFsb2cub3BlbihTZXJ2ZXJMb2dDb21wb25lbnQsIHtcbiAgICAgIGRhdGE6IHsgbG9nOiBsb2cgfSxcbiAgICAgIHdpZHRoOiAnODUlJ1xuICAgIH0pO1xuICB9XG59XG4iLCI8ZnMtbGlzdCBbY29uZmlnXT1cImNvbmZpZ1wiPlxuICAgIDxmcy1saXN0LWNvbHVtbj5cbiAgICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWhlYWRlcj5NZXNzYWdlPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWNlbGwgbGV0LXJvdz1cInJvd1wiPlxuICAgICAgICA8YSBocmVmPVwiamF2YXNjcmlwdDo7XCIgKGNsaWNrKT1cIm9wZW4ocm93KVwiPnt7cm93Lm1lc3NhZ2V9fTwvYT5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9mcy1saXN0LWNvbHVtbj5cbiAgICA8ZnMtbGlzdC1jb2x1bW4+XG4gICAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1oZWFkZXI+VHlwZTwvbmctdGVtcGxhdGU+XG4gICAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1jZWxsIGxldC1yb3c9XCJyb3dcIj5cbiAgICAgICAge3tyb3cudHlwZX19XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZnMtbGlzdC1jb2x1bW4+XG4gICAgPGZzLWxpc3QtY29sdW1uPlxuICAgICAgPG5nLXRlbXBsYXRlIGZzLWxpc3QtaGVhZGVyPkRhdGU8L25nLXRlbXBsYXRlPlxuICAgICAgPG5nLXRlbXBsYXRlIGZzLWxpc3QtY2VsbCBsZXQtcm93PVwicm93XCI+XG4gICAgICAgIDxmcy1kYXRlLWFnbyBbZGF0ZV09XCJyb3cuY3JlYXRlRGF0ZVwiPjwvZnMtZGF0ZS1hZ28+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZnMtbGlzdC1jb2x1bW4+XG4gIDwvZnMtbGlzdD5cbiJdfQ==