@firestitch/system 12.5.6 → 13.0.1

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 (81) hide show
  1. package/esm2020/app/modules/query-logs/components/explain/explain.component.mjs +24 -0
  2. package/esm2020/app/modules/query-logs/components/query-log/query-log.component.mjs +58 -0
  3. package/esm2020/app/modules/query-logs/components/query-logs/query-logs.component.mjs +84 -0
  4. package/{esm2015/app/modules/query-logs/query-logs.module.js → esm2020/app/modules/query-logs/query-logs.module.mjs} +5 -5
  5. package/esm2020/app/modules/system/components/api-log/api-log.component.mjs +34 -0
  6. package/esm2020/app/modules/system/components/api-logs/api-logs.component.mjs +69 -0
  7. package/esm2020/app/modules/system/components/cron/cron.component.mjs +104 -0
  8. package/esm2020/app/modules/system/components/cron-log/cron-log.component.mjs +37 -0
  9. package/esm2020/app/modules/system/components/crons/crons.component.mjs +231 -0
  10. package/esm2020/app/modules/system/components/dashboard/dashboard.component.mjs +84 -0
  11. package/esm2020/app/modules/system/components/info/info.component.mjs +31 -0
  12. package/esm2020/app/modules/system/components/process/process.component.mjs +62 -0
  13. package/esm2020/app/modules/system/components/processes/processes.component.mjs +174 -0
  14. package/esm2020/app/modules/system/components/server-log/server-log.component.mjs +38 -0
  15. package/esm2020/app/modules/system/components/server-logs/server-logs.component.mjs +53 -0
  16. package/esm2020/app/modules/system/components/settings/settings.component.mjs +138 -0
  17. package/esm2020/app/modules/system/components/upgrade-logs/upgrade-logs.component.mjs +44 -0
  18. package/{esm2015/app/modules/system/fs-system.module.js → esm2020/app/modules/system/fs-system.module.mjs} +5 -5
  19. package/{esm2015/app/modules/system/pipes/key-name-value.pipe.js → esm2020/app/modules/system/pipes/key-name-value.pipe.mjs} +5 -5
  20. package/fesm2015/firestitch-system.mjs +1447 -0
  21. package/fesm2015/firestitch-system.mjs.map +1 -0
  22. package/fesm2020/firestitch-system.mjs +1449 -0
  23. package/fesm2020/firestitch-system.mjs.map +1 -0
  24. package/package.json +20 -7
  25. package/styles.scss +3 -0
  26. package/bundles/firestitch-system.umd.js +0 -1904
  27. package/bundles/firestitch-system.umd.js.map +0 -1
  28. package/esm2015/app/modules/query-logs/components/explain/explain.component.js +0 -27
  29. package/esm2015/app/modules/query-logs/components/query-log/query-log.component.js +0 -63
  30. package/esm2015/app/modules/query-logs/components/query-logs/query-logs.component.js +0 -89
  31. package/esm2015/app/modules/system/components/api-log/api-log.component.js +0 -37
  32. package/esm2015/app/modules/system/components/api-logs/api-logs.component.js +0 -73
  33. package/esm2015/app/modules/system/components/cron/cron.component.js +0 -102
  34. package/esm2015/app/modules/system/components/cron-log/cron-log.component.js +0 -40
  35. package/esm2015/app/modules/system/components/crons/crons.component.js +0 -229
  36. package/esm2015/app/modules/system/components/dashboard/dashboard.component.js +0 -89
  37. package/esm2015/app/modules/system/components/info/info.component.js +0 -36
  38. package/esm2015/app/modules/system/components/process/process.component.js +0 -66
  39. package/esm2015/app/modules/system/components/processes/processes.component.js +0 -179
  40. package/esm2015/app/modules/system/components/server-log/server-log.component.js +0 -41
  41. package/esm2015/app/modules/system/components/server-logs/server-logs.component.js +0 -57
  42. package/esm2015/app/modules/system/components/settings/settings.component.js +0 -137
  43. package/esm2015/app/modules/system/components/upgrade-logs/upgrade-logs.component.js +0 -48
  44. package/fesm2015/firestitch-system.js +0 -1498
  45. package/fesm2015/firestitch-system.js.map +0 -1
  46. /package/{esm2015/app/modules/query-logs/components/explain/index.js → esm2020/app/modules/query-logs/components/explain/index.mjs} +0 -0
  47. /package/{esm2015/app/modules/query-logs/components/index.js → esm2020/app/modules/query-logs/components/index.mjs} +0 -0
  48. /package/{esm2015/app/modules/query-logs/components/query-log/index.js → esm2020/app/modules/query-logs/components/query-log/index.mjs} +0 -0
  49. /package/{esm2015/app/modules/query-logs/components/query-logs/index.js → esm2020/app/modules/query-logs/components/query-logs/index.mjs} +0 -0
  50. /package/{esm2015/app/modules/system/components/api-log/index.js → esm2020/app/modules/system/components/api-log/index.mjs} +0 -0
  51. /package/{esm2015/app/modules/system/components/api-logs/index.js → esm2020/app/modules/system/components/api-logs/index.mjs} +0 -0
  52. /package/{esm2015/app/modules/system/components/cron/index.js → esm2020/app/modules/system/components/cron/index.mjs} +0 -0
  53. /package/{esm2015/app/modules/system/components/cron-log/index.js → esm2020/app/modules/system/components/cron-log/index.mjs} +0 -0
  54. /package/{esm2015/app/modules/system/components/crons/index.js → esm2020/app/modules/system/components/crons/index.mjs} +0 -0
  55. /package/{esm2015/app/modules/system/components/dashboard/index.js → esm2020/app/modules/system/components/dashboard/index.mjs} +0 -0
  56. /package/{esm2015/app/modules/system/components/info/index.js → esm2020/app/modules/system/components/info/index.mjs} +0 -0
  57. /package/{esm2015/app/modules/system/components/process/index.js → esm2020/app/modules/system/components/process/index.mjs} +0 -0
  58. /package/{esm2015/app/modules/system/components/processes/index.js → esm2020/app/modules/system/components/processes/index.mjs} +0 -0
  59. /package/{esm2015/app/modules/system/components/server-log/index.js → esm2020/app/modules/system/components/server-log/index.mjs} +0 -0
  60. /package/{esm2015/app/modules/system/components/server-logs/index.js → esm2020/app/modules/system/components/server-logs/index.mjs} +0 -0
  61. /package/{esm2015/app/modules/system/components/settings/index.js → esm2020/app/modules/system/components/settings/index.mjs} +0 -0
  62. /package/{esm2015/app/modules/system/components/upgrade-logs/index.js → esm2020/app/modules/system/components/upgrade-logs/index.mjs} +0 -0
  63. /package/{esm2015/app/modules/system/consts/api-log-states.const.js → esm2020/app/modules/system/consts/api-log-states.const.mjs} +0 -0
  64. /package/{esm2015/app/modules/system/consts/cron-log-states.const.js → esm2020/app/modules/system/consts/cron-log-states.const.mjs} +0 -0
  65. /package/{esm2015/app/modules/system/consts/cron-states.const.js → esm2020/app/modules/system/consts/cron-states.const.mjs} +0 -0
  66. /package/{esm2015/app/modules/system/consts/index.js → esm2020/app/modules/system/consts/index.mjs} +0 -0
  67. /package/{esm2015/app/modules/system/consts/process-states.const.js → esm2020/app/modules/system/consts/process-states.const.mjs} +0 -0
  68. /package/{esm2015/app/modules/system/enums/api-log-state.enum.js → esm2020/app/modules/system/enums/api-log-state.enum.mjs} +0 -0
  69. /package/{esm2015/app/modules/system/enums/cron-log-state.enum.js → esm2020/app/modules/system/enums/cron-log-state.enum.mjs} +0 -0
  70. /package/{esm2015/app/modules/system/enums/cron-state.enum.js → esm2020/app/modules/system/enums/cron-state.enum.mjs} +0 -0
  71. /package/{esm2015/app/modules/system/enums/index.js → esm2020/app/modules/system/enums/index.mjs} +0 -0
  72. /package/{esm2015/app/modules/system/enums/process-state.enum.js → esm2020/app/modules/system/enums/process-state.enum.mjs} +0 -0
  73. /package/{esm2015/app/modules/system/enums/setting-interface-type.enum.js → esm2020/app/modules/system/enums/setting-interface-type.enum.mjs} +0 -0
  74. /package/{esm2015/app/modules/system/helpers/index-name-value.js → esm2020/app/modules/system/helpers/index-name-value.mjs} +0 -0
  75. /package/{esm2015/app/modules/system/injectors/system-config.injector.js → esm2020/app/modules/system/injectors/system-config.injector.mjs} +0 -0
  76. /package/{esm2015/app/modules/system/interfaces/dashboard-action.js → esm2020/app/modules/system/interfaces/dashboard-action.mjs} +0 -0
  77. /package/{esm2015/app/modules/system/interfaces/index.js → esm2020/app/modules/system/interfaces/index.mjs} +0 -0
  78. /package/{esm2015/app/modules/system/interfaces/process-action.js → esm2020/app/modules/system/interfaces/process-action.mjs} +0 -0
  79. /package/{esm2015/app/modules/system/interfaces/system-config.js → esm2020/app/modules/system/interfaces/system-config.mjs} +0 -0
  80. /package/{esm2015/firestitch-system.js → esm2020/firestitch-system.mjs} +0 -0
  81. /package/{esm2015/public_api.js → esm2020/public_api.mjs} +0 -0
@@ -1,229 +0,0 @@
1
- import { Component, Input, ViewChild } from '@angular/core';
2
- import { MatDialog } from '@angular/material/dialog';
3
- import { parse } from '@firestitch/date';
4
- import { ItemType } from '@firestitch/filter';
5
- import { FsListComponent } from '@firestitch/list';
6
- import { FsMessage } from '@firestitch/message';
7
- import { FsPrompt } from '@firestitch/prompt';
8
- import { SelectionActionType } from '@firestitch/selection';
9
- import { Subject } from 'rxjs';
10
- import { map, switchMap, takeUntil, tap } from 'rxjs/operators';
11
- import { differenceInSeconds } from 'date-fns';
12
- import { CronStates } from '../../consts';
13
- import { CronState } from '../../enums';
14
- import { indexNameValue } from '../../helpers/index-name-value';
15
- import { CronComponent } from '../cron/cron.component';
16
- import * as i0 from "@angular/core";
17
- import * as i1 from "@firestitch/message";
18
- import * as i2 from "@angular/material/dialog";
19
- import * as i3 from "@firestitch/prompt";
20
- import * as i4 from "@firestitch/list";
21
- import * as i5 from "@firestitch/popover";
22
- import * as i6 from "@firestitch/date";
23
- import * as i7 from "@angular/common";
24
- export class CronsComponent {
25
- constructor(_message, _dialog, _prompt) {
26
- this._message = _message;
27
- this._dialog = _dialog;
28
- this._prompt = _prompt;
29
- this.config = null;
30
- this.cronStates = indexNameValue(CronStates);
31
- this.CronState = CronState;
32
- this._destroy$ = new Subject();
33
- }
34
- ngOnInit() {
35
- this._configList();
36
- }
37
- _configList() {
38
- this.config = {
39
- paging: false,
40
- filters: [
41
- {
42
- type: ItemType.Keyword,
43
- name: 'keyword',
44
- label: 'Search',
45
- },
46
- ],
47
- rowActions: this.getCronActions()
48
- .map((rowAction) => {
49
- return Object.assign(Object.assign({}, rowAction), { click: (cron) => {
50
- rowAction.action(cron)
51
- .subscribe();
52
- } });
53
- }),
54
- fetch: (query) => {
55
- query.timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
56
- return this.loadCrons(query)
57
- .pipe(map((crons) => ({
58
- data: crons
59
- .map((cron) => {
60
- return Object.assign(Object.assign({}, cron), { runningDuration: differenceInSeconds(parse(cron.createDate), new Date()) });
61
- }),
62
- })));
63
- },
64
- };
65
- if (this.bulk) {
66
- this.config.selection = {
67
- selectAll: false,
68
- actions: [
69
- {
70
- type: SelectionActionType.Action,
71
- name: 'disable',
72
- label: 'Disable',
73
- },
74
- {
75
- type: SelectionActionType.Action,
76
- name: 'enable',
77
- label: 'Enable',
78
- },
79
- ],
80
- actionSelected: (action) => {
81
- return this.bulk(action.action.name, action.selected)
82
- .pipe(tap(() => {
83
- this.list.reload();
84
- this._message.success('Applied Changes');
85
- }));
86
- },
87
- };
88
- }
89
- }
90
- open(cron) {
91
- this._dialog.open(CronComponent, {
92
- data: {
93
- cron,
94
- loadCronLogs: this.loadCronLogs,
95
- loadCron: this.loadCron,
96
- cronActions: this.getCronActions(),
97
- },
98
- width: '85%',
99
- });
100
- }
101
- getCronActions() {
102
- return [
103
- {
104
- action: (data) => {
105
- return this.queue(data)
106
- .pipe(tap(() => {
107
- this._message.success('Queued cron');
108
- this.list.reload();
109
- }));
110
- },
111
- label: 'Queue',
112
- show: (cron) => {
113
- return cron.state === CronState.Idle || cron.state === CronState.Failed;
114
- },
115
- },
116
- {
117
- action: (data) => {
118
- return this.run(data)
119
- .pipe(tap(() => {
120
- this._message.success('Cron ran');
121
- this.list.reload();
122
- }));
123
- },
124
- label: 'Run',
125
- show: (cron) => {
126
- return cron.state === CronState.Idle || cron.state === CronState.Failed;
127
- },
128
- },
129
- {
130
- action: (data) => {
131
- return this.enable(data)
132
- .pipe(tap(() => {
133
- this._message.success('Enabled cron');
134
- this.list.reload();
135
- }));
136
- },
137
- label: 'Enable',
138
- show: (cron) => {
139
- return cron.state === CronState.Disabled;
140
- },
141
- },
142
- {
143
- action: (data) => {
144
- return this.disable(data)
145
- .pipe(tap(() => {
146
- this._message.success('Disabled cron');
147
- this.list.reload();
148
- }));
149
- },
150
- label: 'Disable',
151
- show: (cron) => {
152
- return cron.state === CronState.Idle || cron.state === CronState.Failed;
153
- },
154
- },
155
- {
156
- action: (data) => {
157
- return this._prompt.confirm({
158
- title: 'Confirm',
159
- template: 'Are you sure you would like to kill the cron?',
160
- })
161
- .pipe(switchMap(() => {
162
- return this.kill(data);
163
- }), tap(() => {
164
- this._message.success('Killed cron');
165
- this.list.reload();
166
- }), takeUntil(this._destroy$));
167
- },
168
- label: 'Kill',
169
- show: (cron) => {
170
- return cron.state === CronState.Running;
171
- },
172
- },
173
- {
174
- action: (data) => {
175
- return this._prompt.confirm({
176
- title: 'Confirm',
177
- template: 'Are you sure you would like to reset the cron?',
178
- })
179
- .pipe(switchMap(() => {
180
- return this.enable(data);
181
- }), tap(() => {
182
- this._message.success('Reset cron');
183
- this.list.reload();
184
- }), takeUntil(this._destroy$));
185
- },
186
- label: 'Reset',
187
- show: (cron) => {
188
- return cron.state === CronState.Killing || cron.state === CronState.Running || cron.state === CronState.Failed || cron.state === CronState.Queued;
189
- },
190
- },
191
- ];
192
- }
193
- ngOnDestroy() {
194
- this._destroy$.next();
195
- this._destroy$.complete();
196
- }
197
- }
198
- CronsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CronsComponent, deps: [{ token: i1.FsMessage }, { token: i2.MatDialog }, { token: i3.FsPrompt }], target: i0.ɵɵFactoryTarget.Component });
199
- CronsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: CronsComponent, selector: "fs-system-crons", inputs: { enable: "enable", disable: "disable", kill: "kill", queue: "queue", run: "run", loadCrons: "loadCrons", loadCron: "loadCron", loadCronLogs: "loadCronLogs", bulk: "bulk" }, viewQueries: [{ propertyName: "list", first: true, predicate: 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 <a (click)=\"open(row)\">{{row.name}}</a>\r\n <div *ngIf=\"row.cronSetting\">\r\n <small>{{row.cronSetting.summary}}</small>\r\n </div>\r\n </ng-template>\r\n </fs-list-column>\r\n <fs-list-column align=\"center\">\r\n <ng-template fs-list-header>Status</ng-template>\r\n <ng-template fs-list-cell let-row=\"row\">\r\n <ng-container *ngIf=\"row.host || row.processId; else status\">\r\n <fs-popover \r\n [maxWidth]=\"null\"\r\n [template]=\"statusPopover\" \r\n size=\"small\">\r\n <ng-container *ngTemplateOutlet=\"status\"></ng-container>\r\n </fs-popover>\r\n <ng-template #statusPopover>\r\n <div *ngIf=\"row.host\">Host: {{row.host}}</div>\r\n <div *ngIf=\"row.processId\">Process ID: {{row.processId}}</div>\r\n </ng-template>\r\n </ng-container>\r\n <ng-template #status>\r\n {{cronStates[row.state]}}\r\n </ng-template>\r\n <ng-container *ngIf=\"row.state === CronState.Running\">\r\n <div class=\"small\">\r\n Duration: {{ row.runningDuration | fsDateDuration: { hours: true, minutes: true, seconds: true } }}\r\n </div>\r\n </ng-container> \r\n </ng-template>\r\n </fs-list-column>\r\n <fs-list-column>\r\n <ng-template fs-list-header>Last Ran</ng-template>\r\n <ng-template fs-list-cell let-row=\"row\">\r\n <ng-container *ngIf=\"row.duration===null; else lastRan\">\r\n Never\r\n </ng-container>\r\n <ng-template #lastRan>\r\n <fs-date-ago [date]=\"row.createDate\"></fs-date-ago>\r\n <div class=\"small\" *ngIf=\"row.duration\">\r\n Duration: {{ row.duration | fsDateDuration: { hours: true, minutes: true, seconds: true } }}\r\n </div>\r\n </ng-template>\r\n </ng-template>\r\n </fs-list-column>\r\n</fs-list>\r\n", styles: [""], components: [{ type: i4.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { type: i5.FsPopoverComponent, selector: "fs-popover" }, { type: i6.FsDateAgoComponent, selector: "fs-date-ago", inputs: ["date", "showTime", "format", "showTooltip", "tooltipDateFormat"] }], directives: [{ type: i4.FsListColumnDirective, selector: "fs-list-column", inputs: ["show", "title", "name", "customize", "sortable", "sortableDefault", "direction", "align", "width", "class"] }, { type: i4.FsListHeaderDirective, selector: "[fs-list-header]", inputs: ["colspan", "align", "class"] }, { type: i4.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "fsDateDuration": i6.FsDateDurationPipe } });
200
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CronsComponent, decorators: [{
201
- type: Component,
202
- args: [{
203
- selector: 'fs-system-crons',
204
- templateUrl: './crons.component.html',
205
- styleUrls: ['./crons.component.scss'],
206
- }]
207
- }], ctorParameters: function () { return [{ type: i1.FsMessage }, { type: i2.MatDialog }, { type: i3.FsPrompt }]; }, propDecorators: { list: [{
208
- type: ViewChild,
209
- args: [FsListComponent, { static: true }]
210
- }], enable: [{
211
- type: Input
212
- }], disable: [{
213
- type: Input
214
- }], kill: [{
215
- type: Input
216
- }], queue: [{
217
- type: Input
218
- }], run: [{
219
- type: Input
220
- }], loadCrons: [{
221
- type: Input
222
- }], loadCron: [{
223
- type: Input
224
- }], loadCronLogs: [{
225
- type: Input
226
- }], bulk: [{
227
- type: Input
228
- }] } });
229
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL3N5c3RlbS9jb21wb25lbnRzL2Nyb25zL2Nyb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vY29tcG9uZW50cy9jcm9ucy9jcm9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDekMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzlDLE9BQU8sRUFBd0IsZUFBZSxFQUFnQixNQUFNLGtCQUFrQixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFNUQsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRS9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdD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U0FBUztzQkFBeEIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLFlBQVk7c0JBQTNCLEtBQUs7Z0JBQ1UsSUFBSTtzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcblxyXG5pbXBvcnQgeyBwYXJzZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2RhdGUnO1xyXG5pbXBvcnQgeyBJdGVtVHlwZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2ZpbHRlcic7XHJcbmltcG9ydCB7IEZzTGlzdEFjdGlvblNlbGVjdGVkLCBGc0xpc3RDb21wb25lbnQsIEZzTGlzdENvbmZpZyB9IGZyb20gJ0BmaXJlc3RpdGNoL2xpc3QnO1xyXG5pbXBvcnQgeyBGc01lc3NhZ2UgfSBmcm9tICdAZmlyZXN0aXRjaC9tZXNzYWdlJztcclxuaW1wb3J0IHsgRnNQcm9tcHQgfSBmcm9tICdAZmlyZXN0aXRjaC9wcm9tcHQnO1xyXG5pbXBvcnQgeyBTZWxlY3Rpb25BY3Rpb25UeXBlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvc2VsZWN0aW9uJztcclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgZGlmZmVyZW5jZUluU2Vjb25kcyB9IGZyb20gJ2RhdGUtZm5zJztcclxuXHJcbmltcG9ydCB7IENyb25TdGF0ZXMgfSBmcm9tICcuLi8uLi9jb25zdHMnO1xyXG5pbXBvcnQgeyBDcm9uU3RhdGUgfSBmcm9tICcuLi8uLi9lbnVtcyc7XHJcbmltcG9ydCB7IGluZGV4TmFtZVZhbHVlIH0gZnJvbSAnLi4vLi4vaGVscGVycy9pbmRleC1uYW1lLXZhbHVlJztcclxuaW1wb3J0IHsgQ3JvbkNvbXBvbmVudCB9IGZyb20gJy4uL2Nyb24vY3Jvbi5jb21wb25lbnQnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZnMtc3lzdGVtLWNyb25zJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY3JvbnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Nyb25zLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDcm9uc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgQFZpZXdDaGlsZChGc0xpc3RDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pIHB1YmxpYyBsaXN0OiBGc0xpc3RDb21wb25lbnQ7XHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBlbmFibGU6IChkYXRhOiBhbnkpID0+IE9ic2VydmFibGU8YW55PjtcclxuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZTogKGRhdGE6IGFueSkgPT4gT2JzZXJ2YWJsZTxhbnk+O1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBraWxsOiAoZGF0YTogYW55KSA9PiBPYnNlcnZhYmxlPGFueT47XHJcbiAgQElucHV0KCkgcHVibGljIHF1ZXVlOiAoZGF0YTogYW55KSA9PiBPYnNlcnZhYmxlPGFueT47XHJcbiAgQElucHV0KCkgcHVibGljIHJ1bjogKGRhdGE6IGFueSkgPT4gT2JzZXJ2YWJsZTxhbnk+O1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBsb2FkQ3JvbnM6IChkYXRhOiBhbnkpID0+IE9ic2VydmFibGU8YW55W10+O1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBsb2FkQ3JvbjogKGRhdGE6IGFueSkgPT4gT2JzZXJ2YWJsZTxhbnk+O1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBsb2FkQ3JvbkxvZ3M6IChkYXRhOiBhbnkpID0+IE9ic2VydmFibGU8eyBkYXRhOiBhbnlbXTsgcGFnaW5nOiBhbnkgfT47XHJcbiAgQElucHV0KCkgcHVibGljIGJ1bGs6IChhY3Rpb25OYW1lOiBzdHJpbmcsIGRhdGE6IGFueVtdKSA9PiBPYnNlcnZhYmxlPGFueT47XHJcblxyXG4gIHB1YmxpYyBjb25maWc6IEZzTGlzdENvbmZpZyA9IG51bGw7XHJcbiAgcHVibGljIGNyb25TdGF0ZXMgPSBpbmRleE5hbWVWYWx1ZShDcm9uU3RhdGVzKTtcclxuICBwdWJsaWMgQ3JvblN0YXRlID0gQ3JvblN0YXRlO1xyXG5cclxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfbWVzc2FnZTogRnNNZXNzYWdlLFxyXG4gICAgcHJpdmF0ZSBfZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIF9wcm9tcHQ6IEZzUHJvbXB0LFxyXG4gICkgeyB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2NvbmZpZ0xpc3QoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NvbmZpZ0xpc3QoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbmZpZyA9IHtcclxuICAgICAgcGFnaW5nOiBmYWxzZSxcclxuICAgICAgZmlsdGVyczogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIHR5cGU6IEl0ZW1UeXBlLktleXdvcmQsXHJcbiAgICAgICAgICBuYW1lOiAna2V5d29yZCcsXHJcbiAgICAgICAgICBsYWJlbDogJ1NlYXJjaCcsXHJcbiAgICAgICAgfSxcclxuICAgICAgXSxcclxuICAgICAgcm93QWN0aW9uczogdGhpcy5nZXRDcm9uQWN0aW9ucygpXHJcbiAgICAgICAgLm1hcCgocm93QWN0aW9uKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAuLi5yb3dBY3Rpb24sXHJcbiAgICAgICAgICAgIGNsaWNrOiAoY3JvbikgPT4ge1xyXG4gICAgICAgICAgICAgIHJvd0FjdGlvbi5hY3Rpb24oY3JvbilcclxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfSksXHJcbiAgICAgIGZldGNoOiAocXVlcnkpID0+IHtcclxuICAgICAgICBxdWVyeS50aW1lem9uZSA9IEludGwuRGF0ZVRpbWVGb3JtYXQoKS5yZXNvbHZlZE9wdGlvbnMoKS50aW1lWm9uZTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMubG9hZENyb25zKHF1ZXJ5KVxyXG4gICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcCgoY3JvbnMpID0+ICh7XHJcbiAgICAgICAgICAgICAgZGF0YTogY3JvbnNcclxuICAgICAgICAgICAgICAgIC5tYXAoKGNyb24pID0+IHtcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICAuLi5jcm9uLFxyXG4gICAgICAgICAgICAgICAgICAgIHJ1bm5pbmdEdXJhdGlvbjogZGlmZmVyZW5jZUluU2Vjb25kcyhwYXJzZShjcm9uLmNyZWF0ZURhdGUpLCBuZXcgRGF0ZSgpKSxcclxuICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICB9KSksXHJcbiAgICAgICAgICApO1xyXG4gICAgICB9LFxyXG4gICAgfTtcclxuXHJcbiAgICBpZih0aGlzLmJ1bGspIHtcclxuICAgICAgdGhpcy5jb25maWcuc2VsZWN0aW9uID0ge1xyXG4gICAgICAgIHNlbGVjdEFsbDogZmFsc2UsXHJcbiAgICAgICAgYWN0aW9uczogW1xyXG4gICAgICAgICAge1xyXG4gICAgICAgICAgICB0eXBlOiBTZWxlY3Rpb25BY3Rpb25UeXBlLkFjdGlvbixcclxuICAgICAgICAgICAgbmFtZTogJ2Rpc2FibGUnLFxyXG4gICAgICAgICAgICBsYWJlbDogJ0Rpc2FibGUnLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdHlwZTogU2VsZWN0aW9uQWN0aW9uVHlwZS5BY3Rpb24sXHJcbiAgICAgICAgICAgIG5hbWU6ICdlbmFibGUnLFxyXG4gICAgICAgICAgICBsYWJlbDogJ0VuYWJsZScsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgYWN0aW9uU2VsZWN0ZWQ6IChhY3Rpb246IEZzTGlzdEFjdGlvblNlbGVjdGVkKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5idWxrKGFjdGlvbi5hY3Rpb24ubmFtZSwgYWN0aW9uLnNlbGVjdGVkKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICB0YXAoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5saXN0LnJlbG9hZCgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fbWVzc2FnZS5zdWNjZXNzKCdBcHBsaWVkIENoYW5nZXMnKTtcclxuICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9wZW4oY3Jvbikge1xyXG4gICAgdGhpcy5fZGlhbG9nLm9wZW4oQ3JvbkNvbXBvbmVudCwge1xyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgY3JvbixcclxuICAgICAgICBsb2FkQ3JvbkxvZ3M6IHRoaXMubG9hZENyb25Mb2dzLFxyXG4gICAgICAgIGxvYWRDcm9uOiB0aGlzLmxvYWRDcm9uLFxyXG4gICAgICAgIGNyb25BY3Rpb25zOiB0aGlzLmdldENyb25BY3Rpb25zKCksXHJcbiAgICAgIH0sXHJcbiAgICAgIHdpZHRoOiAnODUlJyxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldENyb25BY3Rpb25zKCkge1xyXG4gICAgcmV0dXJuIFtcclxuICAgICAge1xyXG4gICAgICAgIGFjdGlvbjogKGRhdGEpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLnF1ZXVlKGRhdGEpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgIHRhcCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9tZXNzYWdlLnN1Y2Nlc3MoJ1F1ZXVlZCBjcm9uJyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmxpc3QucmVsb2FkKCk7XHJcbiAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBsYWJlbDogJ1F1ZXVlJyxcclxuICAgICAgICBzaG93OiAoY3JvbikgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIGNyb24uc3RhdGUgPT09IENyb25TdGF0ZS5JZGxlIHx8IGNyb24uc3RhdGUgPT09IENyb25TdGF0ZS5GYWlsZWQ7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGFjdGlvbjogKGRhdGEpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLnJ1bihkYXRhKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICB0YXAoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fbWVzc2FnZS5zdWNjZXNzKCdDcm9uIHJhbicpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5saXN0LnJlbG9hZCgpO1xyXG4gICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGFiZWw6ICdSdW4nLFxyXG4gICAgICAgIHNob3c6IChjcm9uKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gY3Jvbi5zdGF0ZSA9PT0gQ3JvblN0YXRlLklkbGUgfHwgY3Jvbi5zdGF0ZSA9PT0gQ3JvblN0YXRlLkZhaWxlZDtcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgYWN0aW9uOiAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZW5hYmxlKGRhdGEpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgIHRhcCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9tZXNzYWdlLnN1Y2Nlc3MoJ0VuYWJsZWQgY3JvbicpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5saXN0LnJlbG9hZCgpO1xyXG4gICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGFiZWw6ICdFbmFibGUnLFxyXG4gICAgICAgIHNob3c6IChjcm9uKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gY3Jvbi5zdGF0ZSA9PT0gQ3JvblN0YXRlLkRpc2FibGVkO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBhY3Rpb246IChkYXRhKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5kaXNhYmxlKGRhdGEpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgIHRhcCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9tZXNzYWdlLnN1Y2Nlc3MoJ0Rpc2FibGVkIGNyb24nKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubGlzdC5yZWxvYWQoKTtcclxuICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGxhYmVsOiAnRGlzYWJsZScsXHJcbiAgICAgICAgc2hvdzogKGNyb24pID0+IHtcclxuICAgICAgICAgIHJldHVybiBjcm9uLnN0YXRlID09PSBDcm9uU3RhdGUuSWRsZSB8fCBjcm9uLnN0YXRlID09PSBDcm9uU3RhdGUuRmFpbGVkO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBhY3Rpb246IChkYXRhKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5fcHJvbXB0LmNvbmZpcm0oe1xyXG4gICAgICAgICAgICB0aXRsZTogJ0NvbmZpcm0nLFxyXG4gICAgICAgICAgICB0ZW1wbGF0ZTogJ0FyZSB5b3Ugc3VyZSB5b3Ugd291bGQgbGlrZSB0byBraWxsIHRoZSBjcm9uPycsXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMua2lsbChkYXRhKTtcclxuICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICB0YXAoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fbWVzc2FnZS5zdWNjZXNzKCdLaWxsZWQgY3JvbicpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5saXN0LnJlbG9hZCgpO1xyXG4gICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBsYWJlbDogJ0tpbGwnLFxyXG4gICAgICAgIHNob3c6IChjcm9uKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gY3Jvbi5zdGF0ZSA9PT0gQ3JvblN0YXRlLlJ1bm5pbmc7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGFjdGlvbjogKGRhdGEpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLl9wcm9tcHQuY29uZmlybSh7XHJcbiAgICAgICAgICAgIHRpdGxlOiAnQ29uZmlybScsXHJcbiAgICAgICAgICAgIHRlbXBsYXRlOiAnQXJlIHlvdSBzdXJlIHlvdSB3b3VsZCBsaWtlIHRvIHJlc2V0IHRoZSBjcm9uPycsXHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZW5hYmxlKGRhdGEpO1xyXG4gICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgIHRhcCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9tZXNzYWdlLnN1Y2Nlc3MoJ1Jlc2V0IGNyb24nKTtcclxuICAgICAgICAgICAgICAgIHRoaXMubGlzdC5yZWxvYWQoKTtcclxuICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGFiZWw6ICdSZXNldCcsXHJcbiAgICAgICAgc2hvdzogKGNyb24pID0+IHtcclxuICAgICAgICAgIHJldHVybiBjcm9uLnN0YXRlID09PSBDcm9uU3RhdGUuS2lsbGluZyB8fCBjcm9uLnN0YXRlID09PSBDcm9uU3RhdGUuUnVubmluZyB8fCBjcm9uLnN0YXRlID09PSBDcm9uU3RhdGUuRmFpbGVkIHx8IGNyb24uc3RhdGUgPT09IENyb25TdGF0ZS5RdWV1ZWQ7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgIF07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZnMtbGlzdCBbY29uZmlnXT1cImNvbmZpZ1wiPlxyXG4gIDxmcy1saXN0LWNvbHVtbj5cclxuICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWhlYWRlcj5OYW1lPC9uZy10ZW1wbGF0ZT5cclxuICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWNlbGwgbGV0LXJvdz1cInJvd1wiPlxyXG4gICAgICA8YSAoY2xpY2spPVwib3Blbihyb3cpXCI+e3tyb3cubmFtZX19PC9hPlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwicm93LmNyb25TZXR0aW5nXCI+XHJcbiAgICAgICAgPHNtYWxsPnt7cm93LmNyb25TZXR0aW5nLnN1bW1hcnl9fTwvc21hbGw+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L2ZzLWxpc3QtY29sdW1uPlxyXG4gIDxmcy1saXN0LWNvbHVtbiBhbGlnbj1cImNlbnRlclwiPlxyXG4gICAgPG5nLXRlbXBsYXRlIGZzLWxpc3QtaGVhZGVyPlN0YXR1czwvbmctdGVtcGxhdGU+XHJcbiAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1jZWxsIGxldC1yb3c9XCJyb3dcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJvdy5ob3N0IHx8IHJvdy5wcm9jZXNzSWQ7IGVsc2Ugc3RhdHVzXCI+XHJcbiAgICAgICAgPGZzLXBvcG92ZXIgXHJcbiAgICAgICAgICAgIFttYXhXaWR0aF09XCJudWxsXCJcclxuICAgICAgICAgICAgW3RlbXBsYXRlXT1cInN0YXR1c1BvcG92ZXJcIiBcclxuICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3RhdHVzXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9mcy1wb3BvdmVyPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjc3RhdHVzUG9wb3Zlcj5cclxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJyb3cuaG9zdFwiPkhvc3Q6IHt7cm93Lmhvc3R9fTwvZGl2PlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cInJvdy5wcm9jZXNzSWRcIj5Qcm9jZXNzIElEOiB7e3Jvdy5wcm9jZXNzSWR9fTwvZGl2PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctdGVtcGxhdGUgI3N0YXR1cz5cclxuICAgICAgICB7e2Nyb25TdGF0ZXNbcm93LnN0YXRlXX19XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyb3cuc3RhdGUgPT09IENyb25TdGF0ZS5SdW5uaW5nXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNtYWxsXCI+XHJcbiAgICAgICAgICBEdXJhdGlvbjoge3sgcm93LnJ1bm5pbmdEdXJhdGlvbiB8IGZzRGF0ZUR1cmF0aW9uOiB7IGhvdXJzOiB0cnVlLCBtaW51dGVzOiB0cnVlLCBzZWNvbmRzOiB0cnVlIH0gfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+ICAgICAgXHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIDwvZnMtbGlzdC1jb2x1bW4+XHJcbiAgPGZzLWxpc3QtY29sdW1uPlxyXG4gICAgPG5nLXRlbXBsYXRlIGZzLWxpc3QtaGVhZGVyPkxhc3QgUmFuPC9uZy10ZW1wbGF0ZT5cclxuICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWNlbGwgbGV0LXJvdz1cInJvd1wiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicm93LmR1cmF0aW9uPT09bnVsbDsgZWxzZSBsYXN0UmFuXCI+XHJcbiAgICAgICAgTmV2ZXJcclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjbGFzdFJhbj5cclxuICAgICAgICA8ZnMtZGF0ZS1hZ28gW2RhdGVdPVwicm93LmNyZWF0ZURhdGVcIj48L2ZzLWRhdGUtYWdvPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzbWFsbFwiICpuZ0lmPVwicm93LmR1cmF0aW9uXCI+XHJcbiAgICAgICAgICBEdXJhdGlvbjoge3sgcm93LmR1cmF0aW9uIHwgZnNEYXRlRHVyYXRpb246IHsgaG91cnM6IHRydWUsIG1pbnV0ZXM6IHRydWUsIHNlY29uZHM6IHRydWUgfSB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L2ZzLWxpc3QtY29sdW1uPlxyXG48L2ZzLWxpc3Q+XHJcbiJdfQ==
@@ -1,89 +0,0 @@
1
- import { Component, ChangeDetectionStrategy, Input, ChangeDetectorRef } from '@angular/core';
2
- import { FsMessage } from '@firestitch/message';
3
- import { FsBuildService } from '@firestitch/build';
4
- import { takeUntil } from 'rxjs/operators';
5
- import { Subject } from 'rxjs';
6
- import { differenceInMinutes } from 'date-fns';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@firestitch/message";
9
- import * as i2 from "@firestitch/build";
10
- import * as i3 from "@angular/material/button";
11
- import * as i4 from "@firestitch/menu";
12
- import * as i5 from "@firestitch/label";
13
- import * as i6 from "@angular/material/icon";
14
- import * as i7 from "@firestitch/skeleton";
15
- import * as i8 from "@angular/common";
16
- import * as i9 from "@angular/material/tooltip";
17
- import * as i10 from "@firestitch/date";
18
- export class DashboardComponent {
19
- constructor(_message, _cdRef, _buildService) {
20
- this._message = _message;
21
- this._cdRef = _cdRef;
22
- this._buildService = _buildService;
23
- this.buttonActions = [];
24
- this.menuActions = [];
25
- this._destroy$ = new Subject();
26
- this.actions = [];
27
- }
28
- ngOnInit() {
29
- this._load();
30
- this.buttonActions = this.actions.filter(item => { return !item.menu; });
31
- this.menuActions = this.actions.filter(item => { return item.menu; });
32
- this.build = this._buildService.build;
33
- this._buildService.build$
34
- .pipe(takeUntil(this._destroy$))
35
- .subscribe((build) => {
36
- this.build = build;
37
- this._cdRef.markForCheck();
38
- });
39
- }
40
- _load() {
41
- this.load()
42
- .subscribe((dashboard) => {
43
- this.dashboard = dashboard;
44
- this.dashboard.cronRanAttention = !dashboard.cronRan ||
45
- differenceInMinutes(new Date(), new Date(dashboard.cronRan)) > 15;
46
- this._cdRef.markForCheck();
47
- });
48
- }
49
- ngOnDestroy() {
50
- this._destroy$.next();
51
- this._destroy$.complete();
52
- }
53
- actionClick(action) {
54
- action.click();
55
- }
56
- initClick() {
57
- this.init()
58
- .subscribe(() => {
59
- this._message.success('Successfully initialized the system');
60
- });
61
- }
62
- upgradeClick() {
63
- this.upgrade()
64
- .subscribe(() => {
65
- this._load();
66
- this._message.success('Successfully upgraded the system');
67
- });
68
- }
69
- }
70
- DashboardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DashboardComponent, deps: [{ token: i1.FsMessage }, { token: i0.ChangeDetectorRef }, { token: i2.FsBuildService }], target: i0.ɵɵFactoryTarget.Component });
71
- DashboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: DashboardComponent, selector: "fs-system-dashboard", inputs: { init: "init", upgrade: "upgrade", load: "load", actions: "actions" }, ngImport: i0, template: "<div *fsSkeleton=\"dashboard\">\r\n\r\n <div class=\"h2-container\">\r\n\r\n <div class=\"actions\">\r\n <h2>Actions</h2>\r\n <div class=\"fs-row.gap-tiny.wrap\">\r\n <button mat-raised-button (click)=\"upgradeClick()\">Run Upgrades</button>\r\n <button mat-raised-button (click)=\"initClick()\">Init System</button>\r\n\r\n <button\r\n *ngFor=\"let action of buttonActions\"\r\n mat-raised-button\r\n (click)=\"actionClick(action)\">\r\n {{action.label}}\r\n </button>\r\n\r\n <ng-container *ngIf=\"menuActions.length\">\r\n <fs-menu buttonClass=\"mat-raised-button menu-button\">\r\n <ng-template\r\n *ngFor=\"let action of menuActions\"\r\n fs-menu-item\r\n (click)=\"actionClick(action)\">\r\n {{action.label}}\r\n </ng-template>\r\n </fs-menu>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"fs-row.gap-large.wrap\">\r\n <div>\r\n <h2>Server</h2>\r\n\r\n <fs-label-field>\r\n <fs-label>Date/Time</fs-label>\r\n {{dashboard.serverTime | fsDateFormat: 'date-time'}}\r\n </fs-label-field>\r\n\r\n <fs-label-field>\r\n <fs-label>Timezone</fs-label>\r\n {{dashboard.serverTimezone}}\r\n </fs-label-field>\r\n\r\n <fs-label-field>\r\n <fs-label>Hostname</fs-label>\r\n {{dashboard.serverHostname}}\r\n </fs-label-field>\r\n\r\n <fs-label-field>\r\n <fs-label>Directory</fs-label>\r\n {{dashboard.appDirectory}}\r\n </fs-label-field>\r\n </div>\r\n\r\n <div>\r\n <h2>System</h2>\r\n <fs-label-field>\r\n <fs-label>Mode</fs-label>\r\n {{dashboard.appMode}}\r\n </fs-label-field>\r\n\r\n <fs-label-field>\r\n <fs-label>Notification Recipients</fs-label>\r\n {{dashboard.notifyRecipients.join(', ')}}\r\n </fs-label-field>\r\n </div>\r\n\r\n <div>\r\n <h2>Database</h2>\r\n\r\n <fs-label-field>\r\n <fs-label>Name</fs-label>\r\n {{dashboard.databaseName}}\r\n </fs-label-field>\r\n\r\n <fs-label-field>\r\n <fs-label>Date/Time</fs-label>\r\n {{dashboard.databaseTime | fsDateFormat: 'date-time'}}\r\n </fs-label-field>\r\n\r\n <fs-label-field>\r\n <fs-label>Timezone</fs-label>\r\n {{dashboard.databaseTimezone}}\r\n </fs-label-field>\r\n </div>\r\n\r\n <div *ngIf=\"build || dashboard.upgrades.length\">\r\n <h2>Build</h2>\r\n\r\n <ng-container *ngIf=\"build\">\r\n <fs-label-field>\r\n <fs-label>Version</fs-label>\r\n {{build.version}}\r\n </fs-label-field>\r\n\r\n <fs-label-field>\r\n <fs-label>Date</fs-label>\r\n {{ build.date | fsDateFormat: 'date-time' }}\r\n </fs-label-field>\r\n </ng-container>\r\n\r\n <fs-label-field *ngIf=\"dashboard.upgrades.length\">\r\n <fs-label>Pending Upgrades</fs-label>\r\n <span class=\"attention\" [ngClass]=\"{ 'needs-attention': !!dashboard.upgrades.length }\">\r\n {{dashboard.upgrades.length}}\r\n <mat-icon\r\n [matTooltip]=\"dashboard.upgrades.join('\\n')\"\r\n matTooltipClass=\"tooltip-pending-upgrades\"\r\n >\r\n warning\r\n </mat-icon>\r\n </span>\r\n </fs-label-field>\r\n </div>\r\n\r\n <div>\r\n <h2>Cron</h2>\r\n\r\n <fs-label-field>\r\n <fs-label>Last Ran</fs-label>\r\n <span class=\"attention\" [ngClass]=\"{ 'needs-attention': dashboard.cronRanAttention }\">\r\n <span *ngIf=\"!dashboard.cronRan\">Never</span>\r\n <span *ngIf=\"dashboard.cronRan\">{{dashboard.cronRan | fsDateFormat: 'date-time'}}</span>\r\n <mat-icon>warning</mat-icon>\r\n </span>\r\n </fs-label-field>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".actions{margin-bottom:1.25em}table td{padding:3px}.attention{display:flex;align-items:center}.attention mat-icon{display:none;margin-left:2px}.attention.needs-attention{color:#c00}.attention.needs-attention mat-icon{display:inline}::ng-deep .tooltip-pending-upgrades{white-space:pre-line}@media (max-width: 600px){:host ::ng-deep .menu-button{width:100%;border-radius:4px}}@media (min-width: 600px){:host ::ng-deep .menu-button{box-shadow:none}}\n"], components: [{ type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4.FsMenuComponent, selector: "fs-menu", inputs: ["class", "buttonClass", "buttonType", "buttonColor"], outputs: ["opened", "closed"] }, { type: i5.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["bottomMargin", "topMargin", "labelMargin"] }, { type: i5.FsLabelComponent, selector: "fs-label" }, { type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i7.FsSkeletonContentDirective, selector: "[fsSkeleton]", inputs: ["fsSkeleton", "fsSkeletonPattern"] }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.FsMenuItemDirective, selector: "fs-menu-group,[fs-menu-item]" }, { type: i8.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i9.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], pipes: { "fsDateFormat": i10.FsDateFormatPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
72
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DashboardComponent, decorators: [{
73
- type: Component,
74
- args: [{
75
- selector: 'fs-system-dashboard',
76
- templateUrl: 'dashboard.component.html',
77
- styleUrls: ['dashboard.component.scss'],
78
- changeDetection: ChangeDetectionStrategy.OnPush,
79
- }]
80
- }], ctorParameters: function () { return [{ type: i1.FsMessage }, { type: i0.ChangeDetectorRef }, { type: i2.FsBuildService }]; }, propDecorators: { init: [{
81
- type: Input
82
- }], upgrade: [{
83
- type: Input
84
- }], load: [{
85
- type: Input
86
- }], actions: [{
87
- type: Input
88
- }] } });
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vY29tcG9uZW50cy9kYXNoYm9hcmQvZGFzaGJvYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vY29tcG9uZW50cy9kYXNoYm9hcmQvZGFzaGJvYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQWEsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFOUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sVUFBVSxDQUFDOzs7Ozs7Ozs7Ozs7QUFXL0MsTUFBTSxPQUFPLGtCQUFrQjtJQWU3QixZQUNVLFFBQW1CLEVBQ25CLE1BQXlCLEVBQ3pCLGFBQTZCO1FBRjdCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFDekIsa0JBQWEsR0FBYixhQUFhLENBQWdCO1FBZmhDLGtCQUFhLEdBQXNCLEVBQUUsQ0FBQztRQUV0QyxnQkFBVyxHQUFzQixFQUFFLENBQUM7UUFFbkMsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFNekIsWUFBTyxHQUFzQixFQUFFLENBQUM7SUFNckMsQ0FBQztJQUVMLFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFdEUsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztRQUN0QyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU07YUFDeEIsSUFBSSxDQUNILFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQzFCO2FBQ0EsU0FBUyxDQUFDLENBQUMsS0FBZ0IsRUFBRSxFQUFFO1lBQzlCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sS0FBSztRQUNYLElBQUksQ0FBQyxJQUFJLEVBQUU7YUFDVixTQUFTLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztZQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixHQUFHLENBQUMsU0FBUyxDQUFDLE9BQU87Z0JBQ2pELG1CQUFtQixDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3JFLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVNLFdBQVcsQ0FBQyxNQUFNO1FBQ3ZCLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRU0sU0FBUztRQUNkLElBQUksQ0FBQyxJQUFJLEVBQUU7YUFDVixTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMscUNBQXFDLENBQUMsQ0FBQztRQUMvRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxZQUFZO1FBQ2pCLElBQUksQ0FBQyxPQUFPLEVBQUU7YUFDYixTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsa0NBQWtDLENBQUMsQ0FBQztRQUM1RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O2dIQXJFVSxrQkFBa0I7b0dBQWxCLGtCQUFrQiwySUNuQi9CLHNuSUFtSUE7NEZEaEhhLGtCQUFrQjtrQkFOOUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixXQUFXLEVBQUUsMEJBQTBCO29CQUN2QyxTQUFTLEVBQUUsQ0FBRSwwQkFBMEIsQ0FBRTtvQkFDekMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOzZKQVVVLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgSW5wdXQsIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEZzTWVzc2FnZSB9IGZyb20gJ0BmaXJlc3RpdGNoL21lc3NhZ2UnO1xuaW1wb3J0IHsgQnVpbGREYXRhLCBGc0J1aWxkU2VydmljZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2J1aWxkJztcblxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBkaWZmZXJlbmNlSW5NaW51dGVzIH0gZnJvbSAnZGF0ZS1mbnMnO1xuXG5pbXBvcnQgeyBEYXNoYm9hcmRBY3Rpb24gfSBmcm9tICcuLy4uLy4uL2ludGVyZmFjZXMvZGFzaGJvYXJkLWFjdGlvbic7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnMtc3lzdGVtLWRhc2hib2FyZCcsXG4gIHRlbXBsYXRlVXJsOiAnZGFzaGJvYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbICdkYXNoYm9hcmQuY29tcG9uZW50LnNjc3MnIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBEYXNoYm9hcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHB1YmxpYyBkYXNoYm9hcmQ7XG4gIHB1YmxpYyBidXR0b25BY3Rpb25zOiBEYXNoYm9hcmRBY3Rpb25bXSA9IFtdO1xuICBwdWJsaWMgYnVpbGQ6IEJ1aWxkRGF0YTtcbiAgcHVibGljIG1lbnVBY3Rpb25zOiBEYXNoYm9hcmRBY3Rpb25bXSA9IFtdO1xuXG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcblxuICBASW5wdXQoKSBpbml0OiBGdW5jdGlvbjtcbiAgQElucHV0KCkgdXBncmFkZTogRnVuY3Rpb247XG4gIEBJbnB1dCgpIGxvYWQ6IEZ1bmN0aW9uO1xuXG4gIEBJbnB1dCgpIGFjdGlvbnM6IERhc2hib2FyZEFjdGlvbltdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfbWVzc2FnZTogRnNNZXNzYWdlLFxuICAgIHByaXZhdGUgX2NkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIF9idWlsZFNlcnZpY2U6IEZzQnVpbGRTZXJ2aWNlLFxuICApIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuX2xvYWQoKTtcbiAgICB0aGlzLmJ1dHRvbkFjdGlvbnMgPSB0aGlzLmFjdGlvbnMuZmlsdGVyKGl0ZW0gPT4geyByZXR1cm4gIWl0ZW0ubWVudTsgfSk7XG4gICAgdGhpcy5tZW51QWN0aW9ucyA9IHRoaXMuYWN0aW9ucy5maWx0ZXIoaXRlbSA9PiB7IHJldHVybiBpdGVtLm1lbnU7IH0pO1xuXG4gICAgdGhpcy5idWlsZCA9IHRoaXMuX2J1aWxkU2VydmljZS5idWlsZDtcbiAgICB0aGlzLl9idWlsZFNlcnZpY2UuYnVpbGQkXG4gICAgLnBpcGUoXG4gICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpXG4gICAgKVxuICAgIC5zdWJzY3JpYmUoKGJ1aWxkOiBCdWlsZERhdGEpID0+IHtcbiAgICAgIHRoaXMuYnVpbGQgPSBidWlsZDtcbiAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfbG9hZCgpIHtcbiAgICB0aGlzLmxvYWQoKVxuICAgIC5zdWJzY3JpYmUoKGRhc2hib2FyZCkgPT4ge1xuICAgICAgdGhpcy5kYXNoYm9hcmQgPSBkYXNoYm9hcmQ7XG4gICAgICB0aGlzLmRhc2hib2FyZC5jcm9uUmFuQXR0ZW50aW9uID0gIWRhc2hib2FyZC5jcm9uUmFuIHx8XG4gICAgICAgICBkaWZmZXJlbmNlSW5NaW51dGVzKG5ldyBEYXRlKCksIG5ldyBEYXRlKGRhc2hib2FyZC5jcm9uUmFuKSkgPiAxNTtcbiAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIGFjdGlvbkNsaWNrKGFjdGlvbikge1xuICAgIGFjdGlvbi5jbGljaygpO1xuICB9XG5cbiAgcHVibGljIGluaXRDbGljaygpIHtcbiAgICB0aGlzLmluaXQoKVxuICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5fbWVzc2FnZS5zdWNjZXNzKCdTdWNjZXNzZnVsbHkgaW5pdGlhbGl6ZWQgdGhlIHN5c3RlbScpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHVwZ3JhZGVDbGljaygpIHtcbiAgICB0aGlzLnVwZ3JhZGUoKVxuICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5fbG9hZCgpO1xuICAgICAgdGhpcy5fbWVzc2FnZS5zdWNjZXNzKCdTdWNjZXNzZnVsbHkgdXBncmFkZWQgdGhlIHN5c3RlbScpO1xuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2ICpmc1NrZWxldG9uPVwiZGFzaGJvYXJkXCI+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJoMi1jb250YWluZXJcIj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiPlxyXG4gICAgICAgIDxoMj5BY3Rpb25zPC9oMj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZnMtcm93LmdhcC10aW55LndyYXBcIj5cclxuICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cInVwZ3JhZGVDbGljaygpXCI+UnVuIFVwZ3JhZGVzPC9idXR0b24+XHJcbiAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJpbml0Q2xpY2soKVwiPkluaXQgU3lzdGVtPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGJ1dHRvbkFjdGlvbnNcIlxyXG4gICAgICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvblxyXG4gICAgICAgICAgICAoY2xpY2spPVwiYWN0aW9uQ2xpY2soYWN0aW9uKVwiPlxyXG4gICAgICAgICAgICB7e2FjdGlvbi5sYWJlbH19XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibWVudUFjdGlvbnMubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgIDxmcy1tZW51IGJ1dHRvbkNsYXNzPVwibWF0LXJhaXNlZC1idXR0b24gbWVudS1idXR0b25cIj5cclxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBtZW51QWN0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgIGZzLW1lbnUtaXRlbVxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWN0aW9uQ2xpY2soYWN0aW9uKVwiPlxyXG4gICAgICAgICAgICAgICAge3thY3Rpb24ubGFiZWx9fVxyXG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvZnMtbWVudT5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJmcy1yb3cuZ2FwLWxhcmdlLndyYXBcIj5cclxuICAgICAgPGRpdj5cclxuICAgICAgICA8aDI+U2VydmVyPC9oMj5cclxuXHJcbiAgICAgICAgPGZzLWxhYmVsLWZpZWxkPlxyXG4gICAgICAgICAgPGZzLWxhYmVsPkRhdGUvVGltZTwvZnMtbGFiZWw+XHJcbiAgICAgICAgICB7e2Rhc2hib2FyZC5zZXJ2ZXJUaW1lIHwgZnNEYXRlRm9ybWF0OiAnZGF0ZS10aW1lJ319XHJcbiAgICAgICAgPC9mcy1sYWJlbC1maWVsZD5cclxuXHJcbiAgICAgICAgPGZzLWxhYmVsLWZpZWxkPlxyXG4gICAgICAgICAgPGZzLWxhYmVsPlRpbWV6b25lPC9mcy1sYWJlbD5cclxuICAgICAgICAgIHt7ZGFzaGJvYXJkLnNlcnZlclRpbWV6b25lfX1cclxuICAgICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxyXG5cclxuICAgICAgICA8ZnMtbGFiZWwtZmllbGQ+XHJcbiAgICAgICAgICA8ZnMtbGFiZWw+SG9zdG5hbWU8L2ZzLWxhYmVsPlxyXG4gICAgICAgICAge3tkYXNoYm9hcmQuc2VydmVySG9zdG5hbWV9fVxyXG4gICAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XHJcblxyXG4gICAgICAgIDxmcy1sYWJlbC1maWVsZD5cclxuICAgICAgICAgIDxmcy1sYWJlbD5EaXJlY3Rvcnk8L2ZzLWxhYmVsPlxyXG4gICAgICAgICAge3tkYXNoYm9hcmQuYXBwRGlyZWN0b3J5fX1cclxuICAgICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXY+XHJcbiAgICAgICAgPGgyPlN5c3RlbTwvaDI+XHJcbiAgICAgICAgPGZzLWxhYmVsLWZpZWxkPlxyXG4gICAgICAgICAgPGZzLWxhYmVsPk1vZGU8L2ZzLWxhYmVsPlxyXG4gICAgICAgICAge3tkYXNoYm9hcmQuYXBwTW9kZX19XHJcbiAgICAgICAgPC9mcy1sYWJlbC1maWVsZD5cclxuXHJcbiAgICAgICAgPGZzLWxhYmVsLWZpZWxkPlxyXG4gICAgICAgICAgPGZzLWxhYmVsPk5vdGlmaWNhdGlvbiBSZWNpcGllbnRzPC9mcy1sYWJlbD5cclxuICAgICAgICAgIHt7ZGFzaGJvYXJkLm5vdGlmeVJlY2lwaWVudHMuam9pbignLCAnKX19XHJcbiAgICAgICAgPC9mcy1sYWJlbC1maWVsZD5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2PlxyXG4gICAgICAgIDxoMj5EYXRhYmFzZTwvaDI+XHJcblxyXG4gICAgICAgIDxmcy1sYWJlbC1maWVsZD5cclxuICAgICAgICAgIDxmcy1sYWJlbD5OYW1lPC9mcy1sYWJlbD5cclxuICAgICAgICAgIHt7ZGFzaGJvYXJkLmRhdGFiYXNlTmFtZX19XHJcbiAgICAgICAgPC9mcy1sYWJlbC1maWVsZD5cclxuXHJcbiAgICAgICAgPGZzLWxhYmVsLWZpZWxkPlxyXG4gICAgICAgICAgPGZzLWxhYmVsPkRhdGUvVGltZTwvZnMtbGFiZWw+XHJcbiAgICAgICAgICB7e2Rhc2hib2FyZC5kYXRhYmFzZVRpbWUgfCBmc0RhdGVGb3JtYXQ6ICdkYXRlLXRpbWUnfX1cclxuICAgICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxyXG5cclxuICAgICAgICA8ZnMtbGFiZWwtZmllbGQ+XHJcbiAgICAgICAgICA8ZnMtbGFiZWw+VGltZXpvbmU8L2ZzLWxhYmVsPlxyXG4gICAgICAgICAge3tkYXNoYm9hcmQuZGF0YWJhc2VUaW1lem9uZX19XHJcbiAgICAgICAgPC9mcy1sYWJlbC1maWVsZD5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiYnVpbGQgfHwgZGFzaGJvYXJkLnVwZ3JhZGVzLmxlbmd0aFwiPlxyXG4gICAgICAgIDxoMj5CdWlsZDwvaDI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJidWlsZFwiPlxyXG4gICAgICAgICAgPGZzLWxhYmVsLWZpZWxkPlxyXG4gICAgICAgICAgICA8ZnMtbGFiZWw+VmVyc2lvbjwvZnMtbGFiZWw+XHJcbiAgICAgICAgICAgIHt7YnVpbGQudmVyc2lvbn19XHJcbiAgICAgICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxyXG5cclxuICAgICAgICAgIDxmcy1sYWJlbC1maWVsZD5cclxuICAgICAgICAgICAgPGZzLWxhYmVsPkRhdGU8L2ZzLWxhYmVsPlxyXG4gICAgICAgICAgICB7eyBidWlsZC5kYXRlIHwgZnNEYXRlRm9ybWF0OiAnZGF0ZS10aW1lJyB9fVxyXG4gICAgICAgICAgPC9mcy1sYWJlbC1maWVsZD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPGZzLWxhYmVsLWZpZWxkICpuZ0lmPVwiZGFzaGJvYXJkLnVwZ3JhZGVzLmxlbmd0aFwiPlxyXG4gICAgICAgICAgPGZzLWxhYmVsPlBlbmRpbmcgVXBncmFkZXM8L2ZzLWxhYmVsPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJhdHRlbnRpb25cIiBbbmdDbGFzc109XCJ7ICduZWVkcy1hdHRlbnRpb24nOiAhIWRhc2hib2FyZC51cGdyYWRlcy5sZW5ndGggfVwiPlxyXG4gICAgICAgICAgICB7e2Rhc2hib2FyZC51cGdyYWRlcy5sZW5ndGh9fVxyXG4gICAgICAgICAgICA8bWF0LWljb25cclxuICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cImRhc2hib2FyZC51cGdyYWRlcy5qb2luKCdcXG4nKVwiXHJcbiAgICAgICAgICAgICAgICBtYXRUb29sdGlwQ2xhc3M9XCJ0b29sdGlwLXBlbmRpbmctdXBncmFkZXNcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHdhcm5pbmdcclxuICAgICAgICAgICAgPC9tYXQtaWNvbj5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXY+XHJcbiAgICAgICAgPGgyPkNyb248L2gyPlxyXG5cclxuICAgICAgICA8ZnMtbGFiZWwtZmllbGQ+XHJcbiAgICAgICAgICA8ZnMtbGFiZWw+TGFzdCBSYW48L2ZzLWxhYmVsPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJhdHRlbnRpb25cIiBbbmdDbGFzc109XCJ7ICduZWVkcy1hdHRlbnRpb24nOiBkYXNoYm9hcmQuY3JvblJhbkF0dGVudGlvbiB9XCI+XHJcbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWRhc2hib2FyZC5jcm9uUmFuXCI+TmV2ZXI8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZGFzaGJvYXJkLmNyb25SYW5cIj57e2Rhc2hib2FyZC5jcm9uUmFuIHwgZnNEYXRlRm9ybWF0OiAnZGF0ZS10aW1lJ319PC9zcGFuPlxyXG4gICAgICAgICAgICA8bWF0LWljb24+d2FybmluZzwvbWF0LWljb24+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9mcy1sYWJlbC1maWVsZD5cclxuICAgICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -1,36 +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: "12.2.16", ngImport: i0, type: InfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
21
- InfoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: InfoComponent, selector: "fs-system-info", inputs: { load: "load" }, viewQueries: [{ propertyName: "iframe", first: true, predicate: ["iframe"], descendants: true }], ngImport: i0, template: "<iframe #iframe></iframe>\r\n", styles: ["iframe{width:100%;border:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: InfoComponent, decorators: [{
23
- type: Component,
24
- args: [{
25
- selector: 'fs-system-info',
26
- templateUrl: 'info.component.html',
27
- styleUrls: ['info.component.scss'],
28
- changeDetection: ChangeDetectionStrategy.OnPush,
29
- }]
30
- }], propDecorators: { iframe: [{
31
- type: ViewChild,
32
- args: ['iframe']
33
- }], load: [{
34
- type: Input
35
- }] } });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvc3lzdGVtL2NvbXBvbmVudHMvaW5mby9pbmZvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vY29tcG9uZW50cy9pbmZvL2luZm8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBRyxLQUFLLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBVWpILE1BQU0sT0FBTyxhQUFhO0lBT3hCLGVBQWU7UUFDYixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDO0lBRU8sS0FBSztRQUNYLElBQUksQ0FBQyxJQUFJLEVBQUU7YUFDVixTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUVsQixJQUFJLElBQUksa0RBQWtELENBQUM7WUFFM0QsTUFBTSxHQUFHLEdBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQztZQUNsRyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDWCxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNaLE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1lBQzNHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsR0FBRyxZQUFZLElBQUksQ0FBQztRQUMvRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OzJHQXhCVSxhQUFhOytGQUFiLGFBQWEsa0xDVjFCLCtCQUNBOzRGRFNhLGFBQWE7a0JBTnpCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsV0FBVyxFQUFFLHFCQUFxQjtvQkFDbEMsU0FBUyxFQUFFLENBQUUscUJBQXFCLENBQUU7b0JBQ3BDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDs4QkFJUSxNQUFNO3NCQURaLFNBQVM7dUJBQUMsUUFBUTtnQkFHSCxJQUFJO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgIElucHV0LCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQsIEFmdGVyVmlld0luaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZnMtc3lzdGVtLWluZm8nLFxyXG4gIHRlbXBsYXRlVXJsOiAnaW5mby5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbICdpbmZvLmNvbXBvbmVudC5zY3NzJyBdLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5mb0NvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xyXG5cclxuICBAVmlld0NoaWxkKCdpZnJhbWUnKSBcclxuICBwdWJsaWMgaWZyYW1lOiBFbGVtZW50UmVmO1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgbG9hZDogKCkgPT4gT2JzZXJ2YWJsZTxhbnk+O1xyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLl9sb2FkKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9sb2FkKCkge1xyXG4gICAgdGhpcy5sb2FkKClcclxuICAgIC5zdWJzY3JpYmUoKGluZm8pID0+IHtcclxuXHJcbiAgICAgIGluZm8gKz0gJzxzdHlsZT5ib2R5IHsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH08L3N0eWxlPic7XHJcblxyXG4gICAgICBjb25zdCBkb2MgPSAgdGhpcy5pZnJhbWUubmF0aXZlRWxlbWVudC5jb250ZW50RG9jdW1lbnQgfHwgdGhpcy5pZnJhbWUubmF0aXZlRWxlbWVudC5jb250ZW50V2luZG93O1xyXG4gICAgICBkb2Mub3BlbigpO1xyXG4gICAgICBkb2Mud3JpdGUoaW5mbyk7XHJcbiAgICAgIGRvYy5jbG9zZSgpO1xyXG4gICAgICBjb25zdCBzY3JvbGxIZWlnaHQgPSAodGhpcy5pZnJhbWUubmF0aXZlRWxlbWVudC5jb250ZW50V2luZG93LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxIZWlnaHQgKyAxMDApO1xyXG4gICAgICB0aGlzLmlmcmFtZS5uYXRpdmVFbGVtZW50LnN0eWxlLmhlaWdodCA9IGAke3Njcm9sbEhlaWdodH1weGA7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGlmcmFtZSAjaWZyYW1lPjwvaWZyYW1lPlxyXG4iXX0=
@@ -1,66 +0,0 @@
1
- import { Component, Inject, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';
2
- import { MAT_DIALOG_DATA } from '@angular/material/dialog';
3
- import { ProcessStates } from './../../consts/process-states.const';
4
- import { indexNameValue } from '../../helpers/index-name-value';
5
- import { ProcessState } from './../../enums/process-state.enum';
6
- import { FsMessage } from '@firestitch/message';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@firestitch/message";
9
- import * as i2 from "@firestitch/dialog";
10
- import * as i3 from "@firestitch/label";
11
- import * as i4 from "@angular/material/button";
12
- import * as i5 from "@firestitch/skeleton";
13
- import * as i6 from "@angular/material/dialog";
14
- import * as i7 from "@angular/common";
15
- import * as i8 from "@firestitch/date";
16
- export class ProcessComponent {
17
- constructor(data, _message, _cdRef) {
18
- this.data = data;
19
- this._message = _message;
20
- this._cdRef = _cdRef;
21
- this.ProcessStates = indexNameValue(ProcessStates);
22
- this.ProcessState = ProcessState;
23
- }
24
- ngOnInit() {
25
- if (this.data.loadProcess) {
26
- this.load();
27
- }
28
- else {
29
- this.process = this.data.process;
30
- }
31
- }
32
- load() {
33
- this.data.loadProcess(this.data.process)
34
- .subscribe((process) => {
35
- this.process = process;
36
- this._cdRef.markForCheck();
37
- });
38
- }
39
- run() {
40
- this._message.success('Running process');
41
- this.data.run(this.data.process)
42
- .subscribe(() => {
43
- this.load();
44
- });
45
- setTimeout(() => {
46
- this.load();
47
- }, 1000);
48
- }
49
- download() {
50
- this.data.download(this.data.process);
51
- }
52
- }
53
- ProcessComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ProcessComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.FsMessage }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
54
- ProcessComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ProcessComponent, selector: "ng-component", ngImport: i0, template: "<fs-dialog *fsSkeleton=\"process\">\r\n <div mat-dialog-title>Process</div>\r\n <mat-dialog-content>\r\n <div class=\"column\">\r\n <fs-label-field>\r\n <fs-label>\r\n Name\r\n </fs-label>\r\n {{process.prettyName}}\r\n </fs-label-field>\r\n\r\n <div class=\"fs-row.gap-large.wrap\">\r\n <fs-label-field>\r\n <fs-label>\r\n Status\r\n </fs-label>\r\n {{ProcessStates[process.state]}}\r\n </fs-label-field>\r\n\r\n <fs-label-field *ngIf=\"process.notify\">\r\n <fs-label>\r\n Notification Email\r\n </fs-label>\r\n {{process.notify}}\r\n </fs-label-field>\r\n\r\n <fs-label-field *ngIf=\"process.pid\">\r\n <fs-label>\r\n PID\r\n </fs-label>\r\n {{process.pid}}\r\n </fs-label-field>\r\n </div>\r\n\r\n <div class=\"fs-row.gap-large.wrap\">\r\n <fs-label-field *ngIf=\"process.createDate\">\r\n <fs-label>\r\n Create Date\r\n </fs-label>\r\n {{ process.createDate | fsDateFormat: 'date-time' }}\r\n </fs-label-field>\r\n\r\n <fs-label-field *ngIf=\"process.startDate\">\r\n <fs-label>\r\n Start Date\r\n </fs-label>\r\n {{ process.startDate | fsDateFormat: 'date-time' }}\r\n </fs-label-field>\r\n\r\n <fs-label-field *ngIf=\"process.endDate\">\r\n <fs-label>\r\n Complete Date\r\n </fs-label>\r\n {{ process.endDate | fsDateFormat: 'date-time' }}\r\n </fs-label-field>\r\n\r\n <fs-label-field *ngIf=\"process.duration\">\r\n <fs-label>\r\n Duration\r\n </fs-label>\r\n {{ process.duration | fsDateDuration: {hours: true, minutes: true, seconds: true} }}\r\n </fs-label-field>\r\n </div>\r\n\r\n <fs-label-field *ngIf=\"process.message\">\r\n <fs-label>\r\n Message\r\n </fs-label>\r\n {{process.message}}\r\n </fs-label-field>\r\n\r\n <fs-label-field *ngIf=\"process.log\" class=\"log\">\r\n <fs-label>\r\n Log\r\n </fs-label>{{process.log}}\r\n </fs-label-field>\r\n\r\n </div>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <button \r\n mat-button \r\n [mat-dialog-close]=\"true\" \r\n color=\"primary\">\r\n Close\r\n </button>\r\n <button\r\n *ngIf=\"process.state === ProcessState.Running && data.loadProcess\"\r\n mat-button\r\n (click)=\"load()\">\r\n Refresh\r\n </button>\r\n <button \r\n *ngIf=\"process.state !== ProcessState.Running && data.run\" \r\n mat-button \r\n (click)=\"run()\">\r\n Run\r\n </button>\r\n <button\r\n *ngIf=\"process.filename\"\r\n mat-button\r\n (click)=\"download()\">\r\n Download\r\n </button> \r\n </mat-dialog-actions>\r\n</fs-dialog>\r\n", styles: [":host ::ng-deep .log .field-content{white-space:pre-wrap;font-family:monospace;font-size:14px}\n"], components: [{ type: i2.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: i3.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["bottomMargin", "topMargin", "labelMargin"] }, { type: i3.FsLabelComponent, selector: "fs-label" }, { type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i5.FsSkeletonContentDirective, selector: "[fsSkeleton]", inputs: ["fsSkeleton", "fsSkeletonPattern"] }, { type: i6.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i6.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i6.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["type", "mat-dialog-close", "aria-label", "matDialogClose"], exportAs: ["matDialogClose"] }], pipes: { "fsDateFormat": i8.FsDateFormatPipe, "fsDateDuration": i8.FsDateDurationPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
55
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ProcessComponent, decorators: [{
56
- type: Component,
57
- args: [{
58
- templateUrl: './process.component.html',
59
- styleUrls: ['./process.component.scss'],
60
- changeDetection: ChangeDetectionStrategy.OnPush,
61
- }]
62
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
63
- type: Inject,
64
- args: [MAT_DIALOG_DATA]
65
- }] }, { type: i1.FsMessage }, { type: i0.ChangeDetectorRef }]; } });
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2Vzcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvc3lzdGVtL2NvbXBvbmVudHMvcHJvY2Vzcy9wcm9jZXNzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9zeXN0ZW0vY29tcG9uZW50cy9wcm9jZXNzL3Byb2Nlc3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDaEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7OztBQVFoRCxNQUFNLE9BQU8sZ0JBQWdCO0lBTTNCLFlBQ2tDLElBQUksRUFDNUIsUUFBbUIsRUFDbkIsTUFBeUI7UUFGRCxTQUFJLEdBQUosSUFBSSxDQUFBO1FBQzVCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFONUIsa0JBQWEsR0FBRyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDOUMsaUJBQVksR0FBRyxZQUFZLENBQUM7SUFNaEMsQ0FBQztJQUVHLFFBQVE7UUFDYixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNiO2FBQU07WUFDSixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1NBQ25DO0lBQ0gsQ0FBQztJQUVNLElBQUk7UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQzthQUN2QyxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztZQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLEdBQUc7UUFDUixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO2FBQy9CLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQztRQUVMLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDZCxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDVCxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEMsQ0FBQzs7OEdBMUNVLGdCQUFnQixrQkFPakIsZUFBZTtrR0FQZCxnQkFBZ0Isb0RDZDdCLHE5RkEwR0E7NEZENUZhLGdCQUFnQjtrQkFMNUIsU0FBUzttQkFBQztvQkFDVCxXQUFXLEVBQUUsMEJBQTBCO29CQUN2QyxTQUFTLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztvQkFDdkMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOzswQkFRSSxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5qZWN0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuXHJcbmltcG9ydCB7IFByb2Nlc3NTdGF0ZXMgfSBmcm9tICcuLy4uLy4uL2NvbnN0cy9wcm9jZXNzLXN0YXRlcy5jb25zdCc7XHJcbmltcG9ydCB7IGluZGV4TmFtZVZhbHVlIH0gZnJvbSAnLi4vLi4vaGVscGVycy9pbmRleC1uYW1lLXZhbHVlJztcclxuaW1wb3J0IHsgUHJvY2Vzc1N0YXRlIH0gZnJvbSAnLi8uLi8uLi9lbnVtcy9wcm9jZXNzLXN0YXRlLmVudW0nO1xyXG5pbXBvcnQgeyBGc01lc3NhZ2UgfSBmcm9tICdAZmlyZXN0aXRjaC9tZXNzYWdlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZVVybDogJy4vcHJvY2Vzcy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcHJvY2Vzcy5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJvY2Vzc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIHB1YmxpYyBwcm9jZXNzO1xyXG4gIHB1YmxpYyBQcm9jZXNzU3RhdGVzID0gaW5kZXhOYW1lVmFsdWUoUHJvY2Vzc1N0YXRlcyk7XHJcbiAgcHVibGljIFByb2Nlc3NTdGF0ZSA9IFByb2Nlc3NTdGF0ZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGEsXHJcbiAgICBwcml2YXRlIF9tZXNzYWdlOiBGc01lc3NhZ2UsXHJcbiAgICBwcml2YXRlIF9jZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgKSB7fVxyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKSB7XHJcbiAgICBpZiAodGhpcy5kYXRhLmxvYWRQcm9jZXNzKSB7XHJcbiAgICAgIHRoaXMubG9hZCgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgIHRoaXMucHJvY2VzcyA9IHRoaXMuZGF0YS5wcm9jZXNzO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGxvYWQoKSB7XHJcbiAgICB0aGlzLmRhdGEubG9hZFByb2Nlc3ModGhpcy5kYXRhLnByb2Nlc3MpXHJcbiAgICAuc3Vic2NyaWJlKChwcm9jZXNzKSA9PiB7XHJcbiAgICAgIHRoaXMucHJvY2VzcyA9IHByb2Nlc3M7XHJcbiAgICAgIHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcnVuKCkge1xyXG4gICAgdGhpcy5fbWVzc2FnZS5zdWNjZXNzKCdSdW5uaW5nIHByb2Nlc3MnKTtcclxuICAgIHRoaXMuZGF0YS5ydW4odGhpcy5kYXRhLnByb2Nlc3MpXHJcbiAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5sb2FkKCk7XHJcbiAgICB9KTtcclxuXHJcbiAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICB0aGlzLmxvYWQoKTtcclxuICB9LCAxMDAwKTsgICAgXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZG93bmxvYWQoKSB7XHJcbiAgICB0aGlzLmRhdGEuZG93bmxvYWQodGhpcy5kYXRhLnByb2Nlc3MpO1xyXG4gIH1cclxufVxyXG4iLCI8ZnMtZGlhbG9nICpmc1NrZWxldG9uPVwicHJvY2Vzc1wiPlxyXG4gIDxkaXYgbWF0LWRpYWxvZy10aXRsZT5Qcm9jZXNzPC9kaXY+XHJcbiAgPG1hdC1kaWFsb2ctY29udGVudD5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2x1bW5cIj5cclxuICAgICAgPGZzLWxhYmVsLWZpZWxkPlxyXG4gICAgICAgIDxmcy1sYWJlbD5cclxuICAgICAgICAgIE5hbWVcclxuICAgICAgICA8L2ZzLWxhYmVsPlxyXG4gICAgICAgIHt7cHJvY2Vzcy5wcmV0dHlOYW1lfX1cclxuICAgICAgPC9mcy1sYWJlbC1maWVsZD5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmcy1yb3cuZ2FwLWxhcmdlLndyYXBcIj5cclxuICAgICAgICA8ZnMtbGFiZWwtZmllbGQ+XHJcbiAgICAgICAgICA8ZnMtbGFiZWw+XHJcbiAgICAgICAgICAgIFN0YXR1c1xyXG4gICAgICAgICAgPC9mcy1sYWJlbD5cclxuICAgICAgICAgIHt7UHJvY2Vzc1N0YXRlc1twcm9jZXNzLnN0YXRlXX19XHJcbiAgICAgICAgPC9mcy1sYWJlbC1maWVsZD5cclxuXHJcbiAgICAgICAgPGZzLWxhYmVsLWZpZWxkICpuZ0lmPVwicHJvY2Vzcy5ub3RpZnlcIj5cclxuICAgICAgICAgIDxmcy1sYWJlbD5cclxuICAgICAgICAgICAgTm90aWZpY2F0aW9uIEVtYWlsXHJcbiAgICAgICAgICA8L2ZzLWxhYmVsPlxyXG4gICAgICAgICAge3twcm9jZXNzLm5vdGlmeX19XHJcbiAgICAgICAgPC9mcy1sYWJlbC1maWVsZD5cclxuXHJcbiAgICAgICAgPGZzLWxhYmVsLWZpZWxkICpuZ0lmPVwicHJvY2Vzcy5waWRcIj5cclxuICAgICAgICAgIDxmcy1sYWJlbD5cclxuICAgICAgICAgICAgUElEXHJcbiAgICAgICAgICA8L2ZzLWxhYmVsPlxyXG4gICAgICAgICAge3twcm9jZXNzLnBpZH19XHJcbiAgICAgICAgPC9mcy1sYWJlbC1maWVsZD5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZnMtcm93LmdhcC1sYXJnZS53cmFwXCI+XHJcbiAgICAgICAgPGZzLWxhYmVsLWZpZWxkICpuZ0lmPVwicHJvY2Vzcy5jcmVhdGVEYXRlXCI+XHJcbiAgICAgICAgICA8ZnMtbGFiZWw+XHJcbiAgICAgICAgICAgIENyZWF0ZSBEYXRlXHJcbiAgICAgICAgICA8L2ZzLWxhYmVsPlxyXG4gICAgICAgICAge3sgcHJvY2Vzcy5jcmVhdGVEYXRlIHwgZnNEYXRlRm9ybWF0OiAnZGF0ZS10aW1lJyB9fVxyXG4gICAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XHJcblxyXG4gICAgICAgIDxmcy1sYWJlbC1maWVsZCAqbmdJZj1cInByb2Nlc3Muc3RhcnREYXRlXCI+XHJcbiAgICAgICAgICA8ZnMtbGFiZWw+XHJcbiAgICAgICAgICAgIFN0YXJ0IERhdGVcclxuICAgICAgICAgIDwvZnMtbGFiZWw+XHJcbiAgICAgICAgICB7eyBwcm9jZXNzLnN0YXJ0RGF0ZSB8IGZzRGF0ZUZvcm1hdDogJ2RhdGUtdGltZScgfX1cclxuICAgICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxyXG5cclxuICAgICAgICA8ZnMtbGFiZWwtZmllbGQgKm5nSWY9XCJwcm9jZXNzLmVuZERhdGVcIj5cclxuICAgICAgICAgIDxmcy1sYWJlbD5cclxuICAgICAgICAgICAgQ29tcGxldGUgRGF0ZVxyXG4gICAgICAgICAgPC9mcy1sYWJlbD5cclxuICAgICAgICAgIHt7IHByb2Nlc3MuZW5kRGF0ZSB8IGZzRGF0ZUZvcm1hdDogJ2RhdGUtdGltZScgfX1cclxuICAgICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxyXG5cclxuICAgICAgICA8ZnMtbGFiZWwtZmllbGQgKm5nSWY9XCJwcm9jZXNzLmR1cmF0aW9uXCI+XHJcbiAgICAgICAgICA8ZnMtbGFiZWw+XHJcbiAgICAgICAgICAgIER1cmF0aW9uXHJcbiAgICAgICAgICA8L2ZzLWxhYmVsPlxyXG4gICAgICAgICAge3sgcHJvY2Vzcy5kdXJhdGlvbiB8IGZzRGF0ZUR1cmF0aW9uOiB7aG91cnM6IHRydWUsIG1pbnV0ZXM6IHRydWUsIHNlY29uZHM6IHRydWV9IH19XHJcbiAgICAgICAgPC9mcy1sYWJlbC1maWVsZD5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZnMtbGFiZWwtZmllbGQgKm5nSWY9XCJwcm9jZXNzLm1lc3NhZ2VcIj5cclxuICAgICAgICA8ZnMtbGFiZWw+XHJcbiAgICAgICAgICBNZXNzYWdlXHJcbiAgICAgICAgPC9mcy1sYWJlbD5cclxuICAgICAgICB7e3Byb2Nlc3MubWVzc2FnZX19XHJcbiAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XHJcblxyXG4gICAgICA8ZnMtbGFiZWwtZmllbGQgKm5nSWY9XCJwcm9jZXNzLmxvZ1wiIGNsYXNzPVwibG9nXCI+XHJcbiAgICAgICAgPGZzLWxhYmVsPlxyXG4gICAgICAgICAgTG9nXHJcbiAgICAgICAgPC9mcy1sYWJlbD57e3Byb2Nlc3MubG9nfX1cclxuICAgICAgPC9mcy1sYWJlbC1maWVsZD5cclxuXHJcbiAgICA8L2Rpdj5cclxuICA8L21hdC1kaWFsb2ctY29udGVudD5cclxuICA8bWF0LWRpYWxvZy1hY3Rpb25zPlxyXG4gICAgPGJ1dHRvbiBcclxuICAgICAgICBtYXQtYnV0dG9uIFxyXG4gICAgICAgIFttYXQtZGlhbG9nLWNsb3NlXT1cInRydWVcIiBcclxuICAgICAgICBjb2xvcj1cInByaW1hcnlcIj5cclxuICAgICAgQ2xvc2VcclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICAgICpuZ0lmPVwicHJvY2Vzcy5zdGF0ZSA9PT0gUHJvY2Vzc1N0YXRlLlJ1bm5pbmcgJiYgZGF0YS5sb2FkUHJvY2Vzc1wiXHJcbiAgICAgICAgbWF0LWJ1dHRvblxyXG4gICAgICAgIChjbGljayk9XCJsb2FkKClcIj5cclxuICAgICAgUmVmcmVzaFxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8YnV0dG9uIFxyXG4gICAgICAgICpuZ0lmPVwicHJvY2Vzcy5zdGF0ZSAhPT0gUHJvY2Vzc1N0YXRlLlJ1bm5pbmcgJiYgZGF0YS5ydW5cIiBcclxuICAgICAgICBtYXQtYnV0dG9uIFxyXG4gICAgICAgIChjbGljayk9XCJydW4oKVwiPlxyXG4gICAgICBSdW5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICAgICpuZ0lmPVwicHJvY2Vzcy5maWxlbmFtZVwiXHJcbiAgICAgICAgbWF0LWJ1dHRvblxyXG4gICAgICAgIChjbGljayk9XCJkb3dubG9hZCgpXCI+XHJcbiAgICAgIERvd25sb2FkXHJcbiAgICA8L2J1dHRvbj4gICAgXHJcbiAgPC9tYXQtZGlhbG9nLWFjdGlvbnM+XHJcbjwvZnMtZGlhbG9nPlxyXG4iXX0=