@firestitch/system 12.1.0 → 12.1.3

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 (103) hide show
  1. package/app/components/api-log/api-log.component.d.ts +13 -13
  2. package/app/components/api-log/index.d.ts +1 -1
  3. package/app/components/api-logs/api-logs.component.d.ts +21 -21
  4. package/app/components/api-logs/index.d.ts +1 -1
  5. package/app/components/cron/cron.component.d.ts +24 -24
  6. package/app/components/cron/index.d.ts +1 -1
  7. package/app/components/cron-log/cron-log.component.d.ts +12 -12
  8. package/app/components/cron-log/index.d.ts +1 -1
  9. package/app/components/crons/crons.component.d.ts +36 -36
  10. package/app/components/crons/index.d.ts +1 -1
  11. package/app/components/dashboard/dashboard.component.d.ts +28 -28
  12. package/app/components/dashboard/index.d.ts +1 -1
  13. package/app/components/file-manager/file-manager.component.d.ts +17 -17
  14. package/app/components/file-manager/index.d.ts +1 -1
  15. package/app/components/info/index.d.ts +1 -1
  16. package/app/components/info/info.component.d.ts +11 -11
  17. package/app/components/process/index.d.ts +1 -1
  18. package/app/components/process/process.component.d.ts +16 -16
  19. package/app/components/processes/index.d.ts +1 -1
  20. package/app/components/processes/processes.component.d.ts +34 -34
  21. package/app/components/server-log/index.d.ts +1 -1
  22. package/app/components/server-log/server-log.component.d.ts +10 -10
  23. package/app/components/server-logs/index.d.ts +1 -1
  24. package/app/components/server-logs/server-logs.component.d.ts +21 -21
  25. package/app/components/settings/index.d.ts +1 -1
  26. package/app/components/settings/settings.component.d.ts +30 -30
  27. package/app/components/upgrade-logs/index.d.ts +1 -1
  28. package/app/components/upgrade-logs/upgrade-logs.component.d.ts +17 -17
  29. package/app/consts/api-log-states.const.d.ts +5 -5
  30. package/app/consts/cron-log-states.const.d.ts +6 -6
  31. package/app/consts/cron-states.const.d.ts +5 -5
  32. package/app/consts/index.d.ts +3 -3
  33. package/app/consts/process-states.const.d.ts +5 -5
  34. package/app/enums/api-log-state.enum.d.ts +5 -5
  35. package/app/enums/cron-log-state.enum.d.ts +13 -13
  36. package/app/enums/cron-state.enum.d.ts +7 -7
  37. package/app/enums/index.d.ts +5 -5
  38. package/app/enums/process-state.enum.d.ts +8 -8
  39. package/app/enums/setting-interface-type.enum.d.ts +14 -13
  40. package/app/fs-system.module.d.ts +47 -46
  41. package/app/helpers/index-name-value.d.ts +1 -1
  42. package/app/injectors/system-config.injector.d.ts +2 -2
  43. package/app/interfaces/dashboard-action.d.ts +5 -5
  44. package/app/interfaces/index.d.ts +3 -3
  45. package/app/interfaces/process-action.d.ts +6 -6
  46. package/app/interfaces/system-config.d.ts +2 -2
  47. package/app/pipes/key-name-value.pipe.d.ts +8 -8
  48. package/bundles/firestitch-system.umd.js +1519 -1514
  49. package/bundles/firestitch-system.umd.js.map +1 -1
  50. package/esm2015/app/components/api-log/api-log.component.js +38 -38
  51. package/esm2015/app/components/api-log/index.js +2 -2
  52. package/esm2015/app/components/api-logs/api-logs.component.js +72 -72
  53. package/esm2015/app/components/api-logs/index.js +2 -2
  54. package/esm2015/app/components/cron/cron.component.js +103 -103
  55. package/esm2015/app/components/cron/index.js +2 -2
  56. package/esm2015/app/components/cron-log/cron-log.component.js +41 -41
  57. package/esm2015/app/components/cron-log/index.js +2 -2
  58. package/esm2015/app/components/crons/crons.component.js +188 -188
  59. package/esm2015/app/components/crons/index.js +2 -2
  60. package/esm2015/app/components/dashboard/dashboard.component.js +91 -91
  61. package/esm2015/app/components/dashboard/index.js +2 -2
  62. package/esm2015/app/components/file-manager/file-manager.component.js +54 -54
  63. package/esm2015/app/components/file-manager/index.js +2 -2
  64. package/esm2015/app/components/info/index.js +2 -2
  65. package/esm2015/app/components/info/info.component.js +36 -36
  66. package/esm2015/app/components/process/index.js +2 -2
  67. package/esm2015/app/components/process/process.component.js +49 -49
  68. package/esm2015/app/components/processes/index.js +2 -2
  69. package/esm2015/app/components/processes/processes.component.js +164 -164
  70. package/esm2015/app/components/server-log/index.js +2 -2
  71. package/esm2015/app/components/server-log/server-log.component.js +42 -42
  72. package/esm2015/app/components/server-logs/index.js +2 -2
  73. package/esm2015/app/components/server-logs/server-logs.component.js +57 -57
  74. package/esm2015/app/components/settings/index.js +2 -2
  75. package/esm2015/app/components/settings/settings.component.js +134 -132
  76. package/esm2015/app/components/upgrade-logs/index.js +2 -2
  77. package/esm2015/app/components/upgrade-logs/upgrade-logs.component.js +48 -48
  78. package/esm2015/app/consts/api-log-states.const.js +7 -7
  79. package/esm2015/app/consts/cron-log-states.const.js +14 -14
  80. package/esm2015/app/consts/cron-states.const.js +9 -9
  81. package/esm2015/app/consts/index.js +4 -4
  82. package/esm2015/app/consts/process-states.const.js +10 -10
  83. package/esm2015/app/enums/api-log-state.enum.js +7 -7
  84. package/esm2015/app/enums/cron-log-state.enum.js +14 -14
  85. package/esm2015/app/enums/cron-state.enum.js +9 -9
  86. package/esm2015/app/enums/index.js +6 -6
  87. package/esm2015/app/enums/process-state.enum.js +10 -10
  88. package/esm2015/app/enums/setting-interface-type.enum.js +16 -15
  89. package/esm2015/app/fs-system.module.js +181 -177
  90. package/esm2015/app/helpers/index-name-value.js +8 -8
  91. package/esm2015/app/injectors/system-config.injector.js +3 -3
  92. package/esm2015/app/interfaces/dashboard-action.js +2 -2
  93. package/esm2015/app/interfaces/index.js +4 -4
  94. package/esm2015/app/interfaces/process-action.js +2 -2
  95. package/esm2015/app/interfaces/system-config.js +2 -2
  96. package/esm2015/app/pipes/key-name-value.pipe.js +21 -21
  97. package/esm2015/firestitch-system.js +4 -4
  98. package/esm2015/public_api.js +19 -19
  99. package/fesm2015/firestitch-system.js +1150 -1144
  100. package/fesm2015/firestitch-system.js.map +1 -1
  101. package/firestitch-system.d.ts +5 -5
  102. package/package.json +1 -1
  103. package/public_api.d.ts +20 -20
@@ -1,2 +1,2 @@
1
- export * from './cron.component';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvY3Jvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jcm9uLmNvbXBvbmVudCc7XG4iXX0=
1
+ export * from './cron.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvY3Jvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jcm9uLmNvbXBvbmVudCc7XHJcbiJdfQ==
@@ -1,41 +1,41 @@
1
- import { Component, Inject } from '@angular/core';
2
- import { MAT_DIALOG_DATA } from '@angular/material/dialog';
3
- import { CronLogStates } from '../../consts/cron-log-states.const';
4
- import { indexNameValue } from '../../helpers/index-name-value';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@firestitch/dialog";
7
- import * as i2 from "@firestitch/label";
8
- import * as i3 from "@firestitch/date";
9
- import * as i4 from "@angular/material/button";
10
- import * as i5 from "@firestitch/skeleton";
11
- import * as i6 from "@angular/material/dialog";
12
- import * as i7 from "@angular/common";
13
- import * as i8 from "@angular/flex-layout/extended";
14
- export class CronLogComponent {
15
- constructor(_data) {
16
- this._data = _data;
17
- this.CronLogStates = indexNameValue(CronLogStates);
18
- this.CronLogStateColors = {};
19
- }
20
- ngOnInit() {
21
- this.cronLog = this._data.cronLog;
22
- this.CronLogStateColors = CronLogStates
23
- .reduce((accum, cronLogState) => {
24
- accum[cronLogState.value] = cronLogState.color;
25
- return accum;
26
- }, {});
27
- }
28
- }
29
- CronLogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CronLogComponent, deps: [{ token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
30
- CronLogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: CronLogComponent, selector: "ng-component", ngImport: i0, template: "<fs-dialog *fsSkeleton=\"cronLog\">\n <div mat-dialog-title>Cron Log</div>\n <mat-dialog-content>\n <div class=\"row\">\n <fs-label-field>\n <fs-label>\n Status\n </fs-label>\n <div [ngStyle]=\"{ color: CronLogStateColors[cronLog.state]}\">\n {{CronLogStates[cronLog.state] || cronLog.state}}\n </div>\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>\n Date\n </fs-label>\n <fs-date-ago [date]=\"cronLog.createDate\"></fs-date-ago>\n </fs-label-field>\n </div>\n \n <fs-label-field *ngIf=\"cronLog.message\">\n <fs-label>\n Message\n </fs-label>\n <div class=\"message\">\n {{cronLog.message}}\n </div>\n </fs-label-field>\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: [".message{white-space:pre-line}.row{display:flex;flex-wrap:wrap}.row fs-label-field:not(:last-child){margin-right:40px}\n"], components: [{ type: i1.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: i2.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["bottomMargin", "topMargin", "labelMargin"] }, { type: i2.FsLabelComponent, selector: "fs-label" }, { type: i3.FsDateAgoComponent, selector: "fs-date-ago", inputs: ["date", "showTime", "format", "showTooltip", "tooltipDateFormat"] }, { 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.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i8.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }, { 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"] }] });
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CronLogComponent, decorators: [{
32
- type: Component,
33
- args: [{
34
- templateUrl: './cron-log.component.html',
35
- styleUrls: ['./cron-log.component.scss']
36
- }]
37
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
38
- type: Inject,
39
- args: [MAT_DIALOG_DATA]
40
- }] }]; } });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvbi1sb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL2Nyb24tbG9nL2Nyb24tbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9jcm9uLWxvZy9jcm9uLWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7Ozs7OztBQU9oRSxNQUFNLE9BQU8sZ0JBQWdCO0lBTTNCLFlBQ21DLEtBQUs7UUFBTCxVQUFLLEdBQUwsS0FBSyxDQUFBO1FBSmpDLGtCQUFhLEdBQUcsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzlDLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztJQUk1QixDQUFDO0lBRUcsUUFBUTtRQUNiLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDbEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGFBQWE7YUFDdEMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxFQUFFO1lBQzlCLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQztZQUMvQyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNULENBQUM7OzhHQWpCVSxnQkFBZ0Isa0JBT2pCLGVBQWU7a0dBUGQsZ0JBQWdCLG9EQ1Y3QixvN0JBa0NBOzRGRHhCYSxnQkFBZ0I7a0JBSjVCLFNBQVM7bUJBQUM7b0JBQ1QsV0FBVyxFQUFFLDJCQUEyQjtvQkFDeEMsU0FBUyxFQUFFLENBQUMsMkJBQTJCLENBQUM7aUJBQ3pDOzswQkFRSSxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgQ3JvbkxvZ1N0YXRlcyB9IGZyb20gJy4uLy4uL2NvbnN0cy9jcm9uLWxvZy1zdGF0ZXMuY29uc3QnO1xuaW1wb3J0IHsgaW5kZXhOYW1lVmFsdWUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2luZGV4LW5hbWUtdmFsdWUnO1xuXG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vY3Jvbi1sb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jcm9uLWxvZy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIENyb25Mb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHB1YmxpYyBjcm9uTG9nO1xuICBwdWJsaWMgQ3JvbkxvZ1N0YXRlcyA9IGluZGV4TmFtZVZhbHVlKENyb25Mb2dTdGF0ZXMpO1xuICBwdWJsaWMgQ3JvbkxvZ1N0YXRlQ29sb3JzID0ge307XG4gIFxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHJpdmF0ZSBfZGF0YSxcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNyb25Mb2cgPSB0aGlzLl9kYXRhLmNyb25Mb2c7XG4gICAgdGhpcy5Dcm9uTG9nU3RhdGVDb2xvcnMgPSBDcm9uTG9nU3RhdGVzXG4gICAgLnJlZHVjZSgoYWNjdW0sIGNyb25Mb2dTdGF0ZSkgPT4ge1xuICAgICAgYWNjdW1bY3JvbkxvZ1N0YXRlLnZhbHVlXSA9IGNyb25Mb2dTdGF0ZS5jb2xvcjtcbiAgICAgIHJldHVybiBhY2N1bTtcbiAgICB9LCB7fSk7XG4gIH1cbn1cbiIsIjxmcy1kaWFsb2cgKmZzU2tlbGV0b249XCJjcm9uTG9nXCI+XG4gIDxkaXYgbWF0LWRpYWxvZy10aXRsZT5Dcm9uIExvZzwvZGl2PlxuICA8bWF0LWRpYWxvZy1jb250ZW50PlxuICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgIDxmcy1sYWJlbC1maWVsZD5cbiAgICAgICAgPGZzLWxhYmVsPlxuICAgICAgICAgIFN0YXR1c1xuICAgICAgICA8L2ZzLWxhYmVsPlxuICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cInsgY29sb3I6IENyb25Mb2dTdGF0ZUNvbG9yc1tjcm9uTG9nLnN0YXRlXX1cIj5cbiAgICAgICAgICB7e0Nyb25Mb2dTdGF0ZXNbY3JvbkxvZy5zdGF0ZV0gfHwgY3JvbkxvZy5zdGF0ZX19XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9mcy1sYWJlbC1maWVsZD5cblxuICAgICAgPGZzLWxhYmVsLWZpZWxkPlxuICAgICAgICA8ZnMtbGFiZWw+XG4gICAgICAgICAgRGF0ZVxuICAgICAgICA8L2ZzLWxhYmVsPlxuICAgICAgICA8ZnMtZGF0ZS1hZ28gW2RhdGVdPVwiY3JvbkxvZy5jcmVhdGVEYXRlXCI+PC9mcy1kYXRlLWFnbz5cbiAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG4gICAgPC9kaXY+XG4gIFxuICAgIDxmcy1sYWJlbC1maWVsZCAqbmdJZj1cImNyb25Mb2cubWVzc2FnZVwiPlxuICAgICAgPGZzLWxhYmVsPlxuICAgICAgICBNZXNzYWdlXG4gICAgICA8L2ZzLWxhYmVsPlxuICAgICAgPGRpdiBjbGFzcz1cIm1lc3NhZ2VcIj5cbiAgICAgICAge3tjcm9uTG9nLm1lc3NhZ2V9fVxuICAgICAgPC9kaXY+XG4gICAgPC9mcy1sYWJlbC1maWVsZD5cbiAgPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG4gIDxtYXQtZGlhbG9nLWFjdGlvbnM+XG4gICAgPGJ1dHRvbiBtYXQtYnV0dG9uIFttYXQtZGlhbG9nLWNsb3NlXT1cInRydWVcIiBjb2xvcj1cInByaW1hcnlcIj5Eb25lPC9idXR0b24+XG4gIDwvbWF0LWRpYWxvZy1hY3Rpb25zPlxuPC9mcy1kaWFsb2c+XG4iXX0=
1
+ import { Component, Inject } from '@angular/core';
2
+ import { MAT_DIALOG_DATA } from '@angular/material/dialog';
3
+ import { CronLogStates } from '../../consts/cron-log-states.const';
4
+ import { indexNameValue } from '../../helpers/index-name-value';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@firestitch/dialog";
7
+ import * as i2 from "@firestitch/label";
8
+ import * as i3 from "@firestitch/date";
9
+ import * as i4 from "@angular/material/button";
10
+ import * as i5 from "@firestitch/skeleton";
11
+ import * as i6 from "@angular/material/dialog";
12
+ import * as i7 from "@angular/common";
13
+ import * as i8 from "@angular/flex-layout/extended";
14
+ export class CronLogComponent {
15
+ constructor(_data) {
16
+ this._data = _data;
17
+ this.CronLogStates = indexNameValue(CronLogStates);
18
+ this.CronLogStateColors = {};
19
+ }
20
+ ngOnInit() {
21
+ this.cronLog = this._data.cronLog;
22
+ this.CronLogStateColors = CronLogStates
23
+ .reduce((accum, cronLogState) => {
24
+ accum[cronLogState.value] = cronLogState.color;
25
+ return accum;
26
+ }, {});
27
+ }
28
+ }
29
+ CronLogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CronLogComponent, deps: [{ token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
30
+ CronLogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: CronLogComponent, selector: "ng-component", ngImport: i0, template: "<fs-dialog *fsSkeleton=\"cronLog\">\r\n <div mat-dialog-title>Cron Log</div>\r\n <mat-dialog-content>\r\n <div class=\"row\">\r\n <fs-label-field>\r\n <fs-label>\r\n Status\r\n </fs-label>\r\n <div [ngStyle]=\"{ color: CronLogStateColors[cronLog.state]}\">\r\n {{CronLogStates[cronLog.state] || cronLog.state}}\r\n </div>\r\n </fs-label-field>\r\n\r\n <fs-label-field>\r\n <fs-label>\r\n Date\r\n </fs-label>\r\n <fs-date-ago [date]=\"cronLog.createDate\"></fs-date-ago>\r\n </fs-label-field>\r\n </div>\r\n \r\n <fs-label-field *ngIf=\"cronLog.message\">\r\n <fs-label>\r\n Message\r\n </fs-label>\r\n <div class=\"message\">\r\n {{cronLog.message}}\r\n </div>\r\n </fs-label-field>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <button mat-button [mat-dialog-close]=\"true\" color=\"primary\">Done</button>\r\n </mat-dialog-actions>\r\n</fs-dialog>\r\n", styles: [".message{white-space:pre-line}.row{display:flex;flex-wrap:wrap}.row fs-label-field:not(:last-child){margin-right:40px}\n"], components: [{ type: i1.FsDialogComponent, selector: "fs-dialog", inputs: ["mobileMode"] }, { type: i2.FsLabelFieldComponent, selector: "fs-label-field", inputs: ["bottomMargin", "topMargin", "labelMargin"] }, { type: i2.FsLabelComponent, selector: "fs-label" }, { type: i3.FsDateAgoComponent, selector: "fs-date-ago", inputs: ["date", "showTime", "format", "showTooltip", "tooltipDateFormat"] }, { 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.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i8.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }, { 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"] }] });
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CronLogComponent, decorators: [{
32
+ type: Component,
33
+ args: [{
34
+ templateUrl: './cron-log.component.html',
35
+ styleUrls: ['./cron-log.component.scss']
36
+ }]
37
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
38
+ type: Inject,
39
+ args: [MAT_DIALOG_DATA]
40
+ }] }]; } });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvbi1sb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL2Nyb24tbG9nL2Nyb24tbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9jcm9uLWxvZy9jcm9uLWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7Ozs7OztBQU9oRSxNQUFNLE9BQU8sZ0JBQWdCO0lBTTNCLFlBQ21DLEtBQUs7UUFBTCxVQUFLLEdBQUwsS0FBSyxDQUFBO1FBSmpDLGtCQUFhLEdBQUcsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzlDLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztJQUk1QixDQUFDO0lBRUcsUUFBUTtRQUNiLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDbEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGFBQWE7YUFDdEMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxFQUFFO1lBQzlCLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQztZQUMvQyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNULENBQUM7OzhHQWpCVSxnQkFBZ0Isa0JBT2pCLGVBQWU7a0dBUGQsZ0JBQWdCLG9EQ1Y3Qix3L0JBa0NBOzRGRHhCYSxnQkFBZ0I7a0JBSjVCLFNBQVM7bUJBQUM7b0JBQ1QsV0FBVyxFQUFFLDJCQUEyQjtvQkFDeEMsU0FBUyxFQUFFLENBQUMsMkJBQTJCLENBQUM7aUJBQ3pDOzswQkFRSSxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IENyb25Mb2dTdGF0ZXMgfSBmcm9tICcuLi8uLi9jb25zdHMvY3Jvbi1sb2ctc3RhdGVzLmNvbnN0JztcclxuaW1wb3J0IHsgaW5kZXhOYW1lVmFsdWUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2luZGV4LW5hbWUtdmFsdWUnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlVXJsOiAnLi9jcm9uLWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY3Jvbi1sb2cuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3JvbkxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIHB1YmxpYyBjcm9uTG9nO1xyXG4gIHB1YmxpYyBDcm9uTG9nU3RhdGVzID0gaW5kZXhOYW1lVmFsdWUoQ3JvbkxvZ1N0YXRlcyk7XHJcbiAgcHVibGljIENyb25Mb2dTdGF0ZUNvbG9ycyA9IHt9O1xyXG4gIFxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHByaXZhdGUgX2RhdGEsXHJcbiAgKSB7fVxyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNyb25Mb2cgPSB0aGlzLl9kYXRhLmNyb25Mb2c7XHJcbiAgICB0aGlzLkNyb25Mb2dTdGF0ZUNvbG9ycyA9IENyb25Mb2dTdGF0ZXNcclxuICAgIC5yZWR1Y2UoKGFjY3VtLCBjcm9uTG9nU3RhdGUpID0+IHtcclxuICAgICAgYWNjdW1bY3JvbkxvZ1N0YXRlLnZhbHVlXSA9IGNyb25Mb2dTdGF0ZS5jb2xvcjtcclxuICAgICAgcmV0dXJuIGFjY3VtO1xyXG4gICAgfSwge30pO1xyXG4gIH1cclxufVxyXG4iLCI8ZnMtZGlhbG9nICpmc1NrZWxldG9uPVwiY3JvbkxvZ1wiPlxyXG4gIDxkaXYgbWF0LWRpYWxvZy10aXRsZT5Dcm9uIExvZzwvZGl2PlxyXG4gIDxtYXQtZGlhbG9nLWNvbnRlbnQ+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgIDxmcy1sYWJlbC1maWVsZD5cclxuICAgICAgICA8ZnMtbGFiZWw+XHJcbiAgICAgICAgICBTdGF0dXNcclxuICAgICAgICA8L2ZzLWxhYmVsPlxyXG4gICAgICAgIDxkaXYgW25nU3R5bGVdPVwieyBjb2xvcjogQ3JvbkxvZ1N0YXRlQ29sb3JzW2Nyb25Mb2cuc3RhdGVdfVwiPlxyXG4gICAgICAgICAge3tDcm9uTG9nU3RhdGVzW2Nyb25Mb2cuc3RhdGVdIHx8IGNyb25Mb2cuc3RhdGV9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxyXG5cclxuICAgICAgPGZzLWxhYmVsLWZpZWxkPlxyXG4gICAgICAgIDxmcy1sYWJlbD5cclxuICAgICAgICAgIERhdGVcclxuICAgICAgICA8L2ZzLWxhYmVsPlxyXG4gICAgICAgIDxmcy1kYXRlLWFnbyBbZGF0ZV09XCJjcm9uTG9nLmNyZWF0ZURhdGVcIj48L2ZzLWRhdGUtYWdvPlxyXG4gICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxyXG4gICAgPC9kaXY+XHJcbiAgXHJcbiAgICA8ZnMtbGFiZWwtZmllbGQgKm5nSWY9XCJjcm9uTG9nLm1lc3NhZ2VcIj5cclxuICAgICAgPGZzLWxhYmVsPlxyXG4gICAgICAgIE1lc3NhZ2VcclxuICAgICAgPC9mcy1sYWJlbD5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1lc3NhZ2VcIj5cclxuICAgICAgICB7e2Nyb25Mb2cubWVzc2FnZX19XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9mcy1sYWJlbC1maWVsZD5cclxuICA8L21hdC1kaWFsb2ctY29udGVudD5cclxuICA8bWF0LWRpYWxvZy1hY3Rpb25zPlxyXG4gICAgPGJ1dHRvbiBtYXQtYnV0dG9uIFttYXQtZGlhbG9nLWNsb3NlXT1cInRydWVcIiBjb2xvcj1cInByaW1hcnlcIj5Eb25lPC9idXR0b24+XHJcbiAgPC9tYXQtZGlhbG9nLWFjdGlvbnM+XHJcbjwvZnMtZGlhbG9nPlxyXG4iXX0=
@@ -1,2 +1,2 @@
1
- export * from './cron-log.component';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvY3Jvbi1sb2cvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY3Jvbi1sb2cuY29tcG9uZW50JztcbiJdfQ==
1
+ export * from './cron-log.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvY3Jvbi1sb2cvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY3Jvbi1sb2cuY29tcG9uZW50JztcclxuIl19
@@ -1,188 +1,188 @@
1
- import { Component, ViewChild, Input } from '@angular/core';
2
- import { MatDialog } from '@angular/material/dialog';
3
- import { FsMessage } from '@firestitch/message';
4
- import { ItemType } from '@firestitch/filter';
5
- import { FsListComponent } from '@firestitch/list';
6
- import { map, tap } from 'rxjs/operators';
7
- import { indexNameValue } from '../../helpers/index-name-value';
8
- import { CronComponent } from '../cron/cron.component';
9
- import { CronStates } from '../../consts';
10
- import { CronState } from '../../enums';
11
- import { SelectionActionType } from '@firestitch/selection';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "@firestitch/message";
14
- import * as i2 from "@angular/material/dialog";
15
- import * as i3 from "@firestitch/list";
16
- import * as i4 from "@firestitch/date";
17
- import * as i5 from "@angular/common";
18
- export class CronsComponent {
19
- constructor(_message, _dialog) {
20
- this._message = _message;
21
- this._dialog = _dialog;
22
- this.config = null;
23
- this.cronStates = indexNameValue(CronStates);
24
- }
25
- ngOnInit() {
26
- this._configList();
27
- }
28
- _configList() {
29
- this.config = {
30
- paging: false,
31
- filters: [
32
- {
33
- type: ItemType.Keyword,
34
- name: 'keyword',
35
- label: 'Search'
36
- }
37
- ],
38
- rowActions: this.getCronActions()
39
- .map((rowAction) => {
40
- return Object.assign(Object.assign({}, rowAction), { click: (cron) => {
41
- rowAction.action(cron)
42
- .subscribe();
43
- } });
44
- }),
45
- fetch: query => {
46
- query.timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
47
- return this.loadCrons(query)
48
- .pipe(map((response) => ({ data: response })));
49
- },
50
- };
51
- if (this.bulk) {
52
- this.config.selection = {
53
- selectAll: false,
54
- actions: [
55
- {
56
- type: SelectionActionType.Action,
57
- name: 'disable',
58
- label: 'Disable'
59
- },
60
- {
61
- type: SelectionActionType.Action,
62
- name: 'enable',
63
- label: 'Enable'
64
- },
65
- ],
66
- actionSelected: (action) => {
67
- return this.bulk(action.action.name, action.selected)
68
- .pipe(tap(() => {
69
- this.list.reload();
70
- this._message.success('Applied Changes');
71
- }));
72
- },
73
- };
74
- }
75
- }
76
- open(cron) {
77
- this._dialog.open(CronComponent, {
78
- data: {
79
- cron,
80
- loadCronLogs: this.loadCronLogs,
81
- loadCron: this.loadCron,
82
- cronActions: this.getCronActions(),
83
- },
84
- width: '85%'
85
- });
86
- }
87
- getCronActions() {
88
- return [
89
- {
90
- action: (data) => {
91
- return this.queue(data)
92
- .pipe(tap(() => {
93
- this._message.success('Queued cron');
94
- this.list.reload();
95
- }));
96
- },
97
- label: 'Queue',
98
- show: (cron) => {
99
- return cron.state === CronState.Idle || cron.state === CronState.Failed;
100
- },
101
- },
102
- {
103
- action: (data) => {
104
- return this.run(data)
105
- .pipe(tap(() => {
106
- this._message.success('Cron ran');
107
- this.list.reload();
108
- }));
109
- },
110
- label: 'Run',
111
- show: (cron) => {
112
- return cron.state === CronState.Idle || cron.state === CronState.Failed;
113
- },
114
- },
115
- {
116
- action: (data) => {
117
- return this.enable(data)
118
- .pipe(tap(() => {
119
- this._message.success('Enabled cron');
120
- this.list.reload();
121
- }));
122
- },
123
- label: 'Enable',
124
- show: (cron) => {
125
- return cron.state === CronState.Disabled;
126
- },
127
- },
128
- {
129
- action: (data) => {
130
- return this.disable(data)
131
- .pipe(tap(() => {
132
- this._message.success('Disabled cron');
133
- this.list.reload();
134
- }));
135
- },
136
- label: 'Disable',
137
- show: (cron) => {
138
- return cron.state === CronState.Idle || cron.state === CronState.Failed;
139
- },
140
- },
141
- {
142
- action: (data) => {
143
- return this.kill(data)
144
- .pipe(tap(() => {
145
- this._message.success('Killed cron');
146
- this.list.reload();
147
- }));
148
- },
149
- label: 'Kill',
150
- show: (cron) => {
151
- return cron.state === CronState.Running;
152
- },
153
- },
154
- ];
155
- }
156
- }
157
- CronsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CronsComponent, deps: [{ token: i1.FsMessage }, { token: i2.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
158
- 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\">\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.name}}</a>\n <div *ngIf=\"row.cronSetting\">\n <small>{{row.cronSetting.summary}}</small>\n </div>\n </ng-template>\n </fs-list-column>\n <fs-list-column>\n <ng-template fs-list-header>Status</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n {{cronStates[row.state]}}\n </ng-template>\n </fs-list-column>\n <fs-list-column>\n <ng-template fs-list-header>Last Ran</ng-template>\n <ng-template fs-list-cell let-row=\"row\">\n <ng-container *ngIf=\"row.duration===null; else lastRan\">\n Never\n </ng-container>\n <ng-template #lastRan>\n <fs-date-ago [date]=\"row.createDate\"></fs-date-ago>\n <div><small *ngIf=\"row.duration\">Duration: {{ row.duration | fsDateDuration }}</small></div>\n </ng-template>\n </ng-template>\n </fs-list-column>\n</fs-list>\n", styles: [""], components: [{ type: i3.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { type: i4.FsDateAgoComponent, selector: "fs-date-ago", inputs: ["date", "showTime", "format", "showTooltip", "tooltipDateFormat"] }], directives: [{ type: i3.FsListColumnDirective, selector: "fs-list-column", inputs: ["title", "name", "show", "customize", "sortable", "sortableDefault", "direction", "align", "width", "class"] }, { type: i3.FsListHeaderDirective, selector: "[fs-list-header]", inputs: ["colspan", "align", "class"] }, { type: i3.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "fsDateDuration": i4.FsDateDurationPipe } });
159
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CronsComponent, decorators: [{
160
- type: Component,
161
- args: [{
162
- selector: 'fs-system-crons',
163
- templateUrl: './crons.component.html',
164
- styleUrls: ['./crons.component.scss'],
165
- }]
166
- }], ctorParameters: function () { return [{ type: i1.FsMessage }, { type: i2.MatDialog }]; }, propDecorators: { list: [{
167
- type: ViewChild,
168
- args: [FsListComponent, { static: true }]
169
- }], enable: [{
170
- type: Input
171
- }], disable: [{
172
- type: Input
173
- }], kill: [{
174
- type: Input
175
- }], queue: [{
176
- type: Input
177
- }], run: [{
178
- type: Input
179
- }], loadCrons: [{
180
- type: Input
181
- }], loadCron: [{
182
- type: Input
183
- }], loadCronLogs: [{
184
- type: Input
185
- }], bulk: [{
186
- type: Input
187
- }] } });
188
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL2Nyb25zL2Nyb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9jcm9ucy9jcm9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXJELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFnQixlQUFlLEVBQXdCLE1BQU0sa0JBQWtCLENBQUM7QUFFdkYsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUcxQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7OztBQVE1RCxNQUFNLE9BQU8sY0FBYztJQWlCekIsWUFDVSxRQUFtQixFQUNuQixPQUFrQjtRQURsQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLFlBQU8sR0FBUCxPQUFPLENBQVc7UUFMckIsV0FBTSxHQUFpQixJQUFJLENBQUM7UUFDNUIsZUFBVSxHQUFHLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUszQyxD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QUFkLGNBQWMsbVJBRWQsZUFBZSw4REN4QjVCLG9oQ0E2QkE7NEZEUGEsY0FBYztrQkFMMUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixXQUFXLEVBQUUsd0JBQXdCO29CQUNyQyxTQUFTLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztpQkFDdEM7d0hBRytDLElBQUk7c0JBQWpELFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFFNUIsTUFBTTtzQkFBckIsS0FBSztnQkFDVSxPQUFPO3NCQUF0QixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsS0FBSztzQkFBcEIsS0FBSztnQkFDVSxHQUFHO3NCQUFsQixLQUFLO2dCQUNVLFNBQVM7c0JBQXhCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxZQUFZO3NCQUEzQixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5cclxuaW1wb3J0IHsgRnNNZXNzYWdlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvbWVzc2FnZSc7XHJcbmltcG9ydCB7IEl0ZW1UeXBlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvZmlsdGVyJztcclxuaW1wb3J0IHsgRnNMaXN0Q29uZmlnLCBGc0xpc3RDb21wb25lbnQsIEZzTGlzdEFjdGlvblNlbGVjdGVkIH0gZnJvbSAnQGZpcmVzdGl0Y2gvbGlzdCc7XHJcblxyXG5pbXBvcnQgeyBtYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgaW5kZXhOYW1lVmFsdWUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2luZGV4LW5hbWUtdmFsdWUnO1xyXG5pbXBvcnQgeyBDcm9uQ29tcG9uZW50IH0gZnJvbSAnLi4vY3Jvbi9jcm9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENyb25TdGF0ZXMgfSBmcm9tICcuLi8uLi9jb25zdHMnO1xyXG5pbXBvcnQgeyBDcm9uU3RhdGUgfSBmcm9tICcuLi8uLi9lbnVtcyc7XHJcbmltcG9ydCB7IFNlbGVjdGlvbkFjdGlvblR5cGUgfSBmcm9tICdAZmlyZXN0aXRjaC9zZWxlY3Rpb24nO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZnMtc3lzdGVtLWNyb25zJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY3JvbnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Nyb25zLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDcm9uc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBWaWV3Q2hpbGQoRnNMaXN0Q29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSBsaXN0OiBGc0xpc3RDb21wb25lbnQ7XHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBlbmFibGU6IChkYXRhOiBhbnkpID0+IE9ic2VydmFibGU8YW55PjtcclxuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZTogKGRhdGE6IGFueSkgPT4gT2JzZXJ2YWJsZTxhbnk+O1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBraWxsOiAoZGF0YTogYW55KSA9PiBPYnNlcnZhYmxlPGFueT47XHJcbiAgQElucHV0KCkgcHVibGljIHF1ZXVlOiAoZGF0YTogYW55KSA9PiBPYnNlcnZhYmxlPGFueT47XHJcbiAgQElucHV0KCkgcHVibGljIHJ1bjogKGRhdGE6IGFueSkgPT4gT2JzZXJ2YWJsZTxhbnk+O1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBsb2FkQ3JvbnM6IChkYXRhOiBhbnkpID0+IE9ic2VydmFibGU8YW55W10+O1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBsb2FkQ3JvbjogKGRhdGE6IGFueSkgPT4gT2JzZXJ2YWJsZTxhbnk+O1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBsb2FkQ3JvbkxvZ3M6IChkYXRhOiBhbnkpID0+IE9ic2VydmFibGU8eyBkYXRhOiBhbnlbXSwgcGFnaW5nOiBhbnkgfT47XHJcbiAgQElucHV0KCkgcHVibGljIGJ1bGs6IChhY3Rpb25OYW1lOiBzdHJpbmcsIGRhdGE6IGFueVtdKSA9PiBPYnNlcnZhYmxlPGFueT47XHJcblxyXG4gIHB1YmxpYyBjb25maWc6IEZzTGlzdENvbmZpZyA9IG51bGw7XHJcbiAgcHVibGljIGNyb25TdGF0ZXMgPSBpbmRleE5hbWVWYWx1ZShDcm9uU3RhdGVzKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9tZXNzYWdlOiBGc01lc3NhZ2UsXHJcbiAgICBwcml2YXRlIF9kaWFsb2c6IE1hdERpYWxvZyxcclxuICApIHsgfVxyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jb25maWdMaXN0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jb25maWdMaXN0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb25maWcgPSB7XHJcbiAgICAgIHBhZ2luZzogZmFsc2UsXHJcbiAgICAgIGZpbHRlcnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICB0eXBlOiBJdGVtVHlwZS5LZXl3b3JkLFxyXG4gICAgICAgICAgbmFtZTogJ2tleXdvcmQnLFxyXG4gICAgICAgICAgbGFiZWw6ICdTZWFyY2gnXHJcbiAgICAgICAgfVxyXG4gICAgICBdLFxyXG4gICAgICByb3dBY3Rpb25zOiB0aGlzLmdldENyb25BY3Rpb25zKClcclxuICAgICAgLm1hcCgocm93QWN0aW9uKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIC4uLnJvd0FjdGlvbixcclxuICAgICAgICAgIGNsaWNrOiAoY3JvbikgPT4ge1xyXG4gICAgICAgICAgICByb3dBY3Rpb24uYWN0aW9uKGNyb24pXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfVxyXG4gICAgICB9KSxcclxuICAgICAgZmV0Y2g6IHF1ZXJ5ID0+IHtcclxuICAgICAgICBxdWVyeS50aW1lem9uZSA9IEludGwuRGF0ZVRpbWVGb3JtYXQoKS5yZXNvbHZlZE9wdGlvbnMoKS50aW1lWm9uZTtcclxuICAgICAgICByZXR1cm4gdGhpcy5sb2FkQ3JvbnMocXVlcnkpXHJcbiAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4gKHsgZGF0YTogcmVzcG9uc2UgfSkpXHJcbiAgICAgICAgICApO1xyXG4gICAgICB9LCAgICBcclxuICAgIH07XHJcblxyXG4gICAgaWYodGhpcy5idWxrKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnLnNlbGVjdGlvbiA9IHtcclxuICAgICAgICBzZWxlY3RBbGw6IGZhbHNlLFxyXG4gICAgICAgIGFjdGlvbnM6IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdHlwZTogU2VsZWN0aW9uQWN0aW9uVHlwZS5BY3Rpb24sXHJcbiAgICAgICAgICAgIG5hbWU6ICdkaXNhYmxlJyxcclxuICAgICAgICAgICAgbGFiZWw6ICdEaXNhYmxlJ1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdHlwZTogU2VsZWN0aW9uQWN0aW9uVHlwZS5BY3Rpb24sXHJcbiAgICAgICAgICAgIG5hbWU6ICdlbmFibGUnLFxyXG4gICAgICAgICAgICBsYWJlbDogJ0VuYWJsZSdcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgXSxcclxuICAgICAgICBhY3Rpb25TZWxlY3RlZDogKGFjdGlvbjogRnNMaXN0QWN0aW9uU2VsZWN0ZWQpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmJ1bGsoYWN0aW9uLmFjdGlvbi5uYW1lLCBhY3Rpb24uc2VsZWN0ZWQpXHJcbiAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgdGFwKCgpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLmxpc3QucmVsb2FkKCk7XHJcbiAgICAgICAgICAgICAgdGhpcy5fbWVzc2FnZS5zdWNjZXNzKCdBcHBsaWVkIENoYW5nZXMnKTtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb3Blbihjcm9uKSB7XHJcbiAgICB0aGlzLl9kaWFsb2cub3BlbihDcm9uQ29tcG9uZW50LCB7XHJcbiAgICAgIGRhdGE6IHsgXHJcbiAgICAgICAgY3JvbixcclxuICAgICAgICBsb2FkQ3JvbkxvZ3M6IHRoaXMubG9hZENyb25Mb2dzLFxyXG4gICAgICAgIGxvYWRDcm9uOiB0aGlzLmxvYWRDcm9uLFxyXG4gICAgICAgIGNyb25BY3Rpb25zOiB0aGlzLmdldENyb25BY3Rpb25zKCksXHJcbiAgICAgIH0sXHJcbiAgICAgIHdpZHRoOiAnODUlJ1xyXG4gICAgfSk7XHJcbiAgfSAgXHJcblxyXG4gIHB1YmxpYyBnZXRDcm9uQWN0aW9ucygpIHtcclxuICAgIHJldHVybiBbXHJcbiAgICAgIHtcclxuICAgICAgICBhY3Rpb246IChkYXRhKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5xdWV1ZShkYXRhKVxyXG4gICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgIHRhcCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5fbWVzc2FnZS5zdWNjZXNzKCdRdWV1ZWQgY3JvbicpO1xyXG4gICAgICAgICAgICAgIHRoaXMubGlzdC5yZWxvYWQoKTtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGFiZWw6ICdRdWV1ZScsXHJcbiAgICAgICAgc2hvdzogKGNyb24pID0+IHtcclxuICAgICAgICAgIHJldHVybiBjcm9uLnN0YXRlID09PSBDcm9uU3RhdGUuSWRsZSB8fCBjcm9uLnN0YXRlID09PSBDcm9uU3RhdGUuRmFpbGVkO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBhY3Rpb246IChkYXRhKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5ydW4oZGF0YSlcclxuICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICB0YXAoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuX21lc3NhZ2Uuc3VjY2VzcygnQ3JvbiByYW4nKTtcclxuICAgICAgICAgICAgICB0aGlzLmxpc3QucmVsb2FkKCk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGFiZWw6ICdSdW4nLFxyXG4gICAgICAgIHNob3c6IChjcm9uKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gY3Jvbi5zdGF0ZSA9PT0gQ3JvblN0YXRlLklkbGUgfHwgY3Jvbi5zdGF0ZSA9PT0gQ3JvblN0YXRlLkZhaWxlZDtcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgYWN0aW9uOiAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZW5hYmxlKGRhdGEpXHJcbiAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgdGFwKCgpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLl9tZXNzYWdlLnN1Y2Nlc3MoJ0VuYWJsZWQgY3JvbicpO1xyXG4gICAgICAgICAgICAgIHRoaXMubGlzdC5yZWxvYWQoKTtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGFiZWw6ICdFbmFibGUnLFxyXG4gICAgICAgIHNob3c6IChjcm9uKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gY3Jvbi5zdGF0ZSA9PT0gQ3JvblN0YXRlLkRpc2FibGVkO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBhY3Rpb246IChkYXRhKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5kaXNhYmxlKGRhdGEpXHJcbiAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgdGFwKCgpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLl9tZXNzYWdlLnN1Y2Nlc3MoJ0Rpc2FibGVkIGNyb24nKTtcclxuICAgICAgICAgICAgICB0aGlzLmxpc3QucmVsb2FkKCk7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGxhYmVsOiAnRGlzYWJsZScsXHJcbiAgICAgICAgc2hvdzogKGNyb24pID0+IHtcclxuICAgICAgICAgIHJldHVybiBjcm9uLnN0YXRlID09PSBDcm9uU3RhdGUuSWRsZSB8fCBjcm9uLnN0YXRlID09PSBDcm9uU3RhdGUuRmFpbGVkO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBhY3Rpb246IChkYXRhKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5raWxsKGRhdGEpXHJcbiAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgdGFwKCgpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLl9tZXNzYWdlLnN1Y2Nlc3MoJ0tpbGxlZCBjcm9uJyk7XHJcbiAgICAgICAgICAgICAgdGhpcy5saXN0LnJlbG9hZCgpO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBsYWJlbDogJ0tpbGwnLFxyXG4gICAgICAgIHNob3c6IChjcm9uKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gY3Jvbi5zdGF0ZSA9PT0gQ3JvblN0YXRlLlJ1bm5pbmc7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgIF07ICAgIFxyXG4gIH1cclxufVxyXG4iLCI8ZnMtbGlzdCBbY29uZmlnXT1cImNvbmZpZ1wiPlxuICA8ZnMtbGlzdC1jb2x1bW4+XG4gICAgPG5nLXRlbXBsYXRlIGZzLWxpc3QtaGVhZGVyPk5hbWU8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWNlbGwgbGV0LXJvdz1cInJvd1wiPlxuICAgICAgPGEgKGNsaWNrKT1cIm9wZW4ocm93KVwiPnt7cm93Lm5hbWV9fTwvYT5cbiAgICAgIDxkaXYgKm5nSWY9XCJyb3cuY3JvblNldHRpbmdcIj5cbiAgICAgICAgPHNtYWxsPnt7cm93LmNyb25TZXR0aW5nLnN1bW1hcnl9fTwvc21hbGw+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2ZzLWxpc3QtY29sdW1uPlxuICA8ZnMtbGlzdC1jb2x1bW4+XG4gICAgPG5nLXRlbXBsYXRlIGZzLWxpc3QtaGVhZGVyPlN0YXR1czwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlIGZzLWxpc3QtY2VsbCBsZXQtcm93PVwicm93XCI+XG4gICAgICB7e2Nyb25TdGF0ZXNbcm93LnN0YXRlXX19XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9mcy1saXN0LWNvbHVtbj5cbiAgPGZzLWxpc3QtY29sdW1uPlxuICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWhlYWRlcj5MYXN0IFJhbjwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlIGZzLWxpc3QtY2VsbCBsZXQtcm93PVwicm93XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicm93LmR1cmF0aW9uPT09bnVsbDsgZWxzZSBsYXN0UmFuXCI+XG4gICAgICAgIE5ldmVyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjbGFzdFJhbj5cbiAgICAgICAgPGZzLWRhdGUtYWdvIFtkYXRlXT1cInJvdy5jcmVhdGVEYXRlXCI+PC9mcy1kYXRlLWFnbz5cbiAgICAgICAgPGRpdj48c21hbGwgKm5nSWY9XCJyb3cuZHVyYXRpb25cIj5EdXJhdGlvbjoge3sgcm93LmR1cmF0aW9uIHwgZnNEYXRlRHVyYXRpb24gfX08L3NtYWxsPjwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2ZzLWxpc3QtY29sdW1uPlxuPC9mcy1saXN0PlxuIl19
1
+ import { Component, ViewChild, Input } from '@angular/core';
2
+ import { MatDialog } from '@angular/material/dialog';
3
+ import { FsMessage } from '@firestitch/message';
4
+ import { ItemType } from '@firestitch/filter';
5
+ import { FsListComponent } from '@firestitch/list';
6
+ import { map, tap } from 'rxjs/operators';
7
+ import { indexNameValue } from '../../helpers/index-name-value';
8
+ import { CronComponent } from '../cron/cron.component';
9
+ import { CronStates } from '../../consts';
10
+ import { CronState } from '../../enums';
11
+ import { SelectionActionType } from '@firestitch/selection';
12
+ import * as i0 from "@angular/core";
13
+ import * as i1 from "@firestitch/message";
14
+ import * as i2 from "@angular/material/dialog";
15
+ import * as i3 from "@firestitch/list";
16
+ import * as i4 from "@firestitch/date";
17
+ import * as i5 from "@angular/common";
18
+ export class CronsComponent {
19
+ constructor(_message, _dialog) {
20
+ this._message = _message;
21
+ this._dialog = _dialog;
22
+ this.config = null;
23
+ this.cronStates = indexNameValue(CronStates);
24
+ }
25
+ ngOnInit() {
26
+ this._configList();
27
+ }
28
+ _configList() {
29
+ this.config = {
30
+ paging: false,
31
+ filters: [
32
+ {
33
+ type: ItemType.Keyword,
34
+ name: 'keyword',
35
+ label: 'Search'
36
+ }
37
+ ],
38
+ rowActions: this.getCronActions()
39
+ .map((rowAction) => {
40
+ return Object.assign(Object.assign({}, rowAction), { click: (cron) => {
41
+ rowAction.action(cron)
42
+ .subscribe();
43
+ } });
44
+ }),
45
+ fetch: query => {
46
+ query.timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
47
+ return this.loadCrons(query)
48
+ .pipe(map((response) => ({ data: response })));
49
+ },
50
+ };
51
+ if (this.bulk) {
52
+ this.config.selection = {
53
+ selectAll: false,
54
+ actions: [
55
+ {
56
+ type: SelectionActionType.Action,
57
+ name: 'disable',
58
+ label: 'Disable'
59
+ },
60
+ {
61
+ type: SelectionActionType.Action,
62
+ name: 'enable',
63
+ label: 'Enable'
64
+ },
65
+ ],
66
+ actionSelected: (action) => {
67
+ return this.bulk(action.action.name, action.selected)
68
+ .pipe(tap(() => {
69
+ this.list.reload();
70
+ this._message.success('Applied Changes');
71
+ }));
72
+ },
73
+ };
74
+ }
75
+ }
76
+ open(cron) {
77
+ this._dialog.open(CronComponent, {
78
+ data: {
79
+ cron,
80
+ loadCronLogs: this.loadCronLogs,
81
+ loadCron: this.loadCron,
82
+ cronActions: this.getCronActions(),
83
+ },
84
+ width: '85%'
85
+ });
86
+ }
87
+ getCronActions() {
88
+ return [
89
+ {
90
+ action: (data) => {
91
+ return this.queue(data)
92
+ .pipe(tap(() => {
93
+ this._message.success('Queued cron');
94
+ this.list.reload();
95
+ }));
96
+ },
97
+ label: 'Queue',
98
+ show: (cron) => {
99
+ return cron.state === CronState.Idle || cron.state === CronState.Failed;
100
+ },
101
+ },
102
+ {
103
+ action: (data) => {
104
+ return this.run(data)
105
+ .pipe(tap(() => {
106
+ this._message.success('Cron ran');
107
+ this.list.reload();
108
+ }));
109
+ },
110
+ label: 'Run',
111
+ show: (cron) => {
112
+ return cron.state === CronState.Idle || cron.state === CronState.Failed;
113
+ },
114
+ },
115
+ {
116
+ action: (data) => {
117
+ return this.enable(data)
118
+ .pipe(tap(() => {
119
+ this._message.success('Enabled cron');
120
+ this.list.reload();
121
+ }));
122
+ },
123
+ label: 'Enable',
124
+ show: (cron) => {
125
+ return cron.state === CronState.Disabled;
126
+ },
127
+ },
128
+ {
129
+ action: (data) => {
130
+ return this.disable(data)
131
+ .pipe(tap(() => {
132
+ this._message.success('Disabled cron');
133
+ this.list.reload();
134
+ }));
135
+ },
136
+ label: 'Disable',
137
+ show: (cron) => {
138
+ return cron.state === CronState.Idle || cron.state === CronState.Failed;
139
+ },
140
+ },
141
+ {
142
+ action: (data) => {
143
+ return this.kill(data)
144
+ .pipe(tap(() => {
145
+ this._message.success('Killed cron');
146
+ this.list.reload();
147
+ }));
148
+ },
149
+ label: 'Kill',
150
+ show: (cron) => {
151
+ return cron.state === CronState.Running;
152
+ },
153
+ },
154
+ ];
155
+ }
156
+ }
157
+ CronsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CronsComponent, deps: [{ token: i1.FsMessage }, { token: i2.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
158
+ 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>\r\n <ng-template fs-list-header>Status</ng-template>\r\n <ng-template fs-list-cell let-row=\"row\">\r\n {{cronStates[row.state]}}\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><small *ngIf=\"row.duration\">Duration: {{ row.duration | fsDateDuration }}</small></div>\r\n </ng-template>\r\n </ng-template>\r\n </fs-list-column>\r\n</fs-list>\r\n", styles: [""], components: [{ type: i3.FsListComponent, selector: "fs-list", inputs: ["config", "loaderLines"], outputs: ["filtersReady"] }, { type: i4.FsDateAgoComponent, selector: "fs-date-ago", inputs: ["date", "showTime", "format", "showTooltip", "tooltipDateFormat"] }], directives: [{ type: i3.FsListColumnDirective, selector: "fs-list-column", inputs: ["title", "name", "show", "customize", "sortable", "sortableDefault", "direction", "align", "width", "class"] }, { type: i3.FsListHeaderDirective, selector: "[fs-list-header]", inputs: ["colspan", "align", "class"] }, { type: i3.FsListCellDirective, selector: "[fs-list-cell]", inputs: ["colspan", "align", "class"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "fsDateDuration": i4.FsDateDurationPipe } });
159
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CronsComponent, decorators: [{
160
+ type: Component,
161
+ args: [{
162
+ selector: 'fs-system-crons',
163
+ templateUrl: './crons.component.html',
164
+ styleUrls: ['./crons.component.scss'],
165
+ }]
166
+ }], ctorParameters: function () { return [{ type: i1.FsMessage }, { type: i2.MatDialog }]; }, propDecorators: { list: [{
167
+ type: ViewChild,
168
+ args: [FsListComponent, { static: true }]
169
+ }], enable: [{
170
+ type: Input
171
+ }], disable: [{
172
+ type: Input
173
+ }], kill: [{
174
+ type: Input
175
+ }], queue: [{
176
+ type: Input
177
+ }], run: [{
178
+ type: Input
179
+ }], loadCrons: [{
180
+ type: Input
181
+ }], loadCron: [{
182
+ type: Input
183
+ }], loadCronLogs: [{
184
+ type: Input
185
+ }], bulk: [{
186
+ type: Input
187
+ }] } });
188
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb21wb25lbnRzL2Nyb25zL2Nyb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9jcm9ucy9jcm9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXJELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFnQixlQUFlLEVBQXdCLE1BQU0sa0JBQWtCLENBQUM7QUFFdkYsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUcxQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7OztBQVE1RCxNQUFNLE9BQU8sY0FBYztJQWlCekIsWUFDVSxRQUFtQixFQUNuQixPQUFrQjtRQURsQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLFlBQU8sR0FBUCxPQUFPLENBQVc7UUFMckIsV0FBTSxHQUFpQixJQUFJLENBQUM7UUFDNUIsZUFBVSxHQUFHLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUszQyxD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QUFkLGNBQWMsbVJBRWQsZUFBZSw4REN4QjVCLDhrQ0E2QkE7NEZEUGEsY0FBYztrQkFMMUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixXQUFXLEVBQUUsd0JBQXdCO29CQUNyQyxTQUFTLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztpQkFDdEM7d0hBRytDLElBQUk7c0JBQWpELFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFFNUIsTUFBTTtzQkFBckIsS0FBSztnQkFDVSxPQUFPO3NCQUF0QixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsS0FBSztzQkFBcEIsS0FBSztnQkFDVSxHQUFHO3NCQUFsQixLQUFLO2dCQUNVLFNBQVM7c0JBQXhCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxZQUFZO3NCQUEzQixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5cclxuaW1wb3J0IHsgRnNNZXNzYWdlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvbWVzc2FnZSc7XHJcbmltcG9ydCB7IEl0ZW1UeXBlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvZmlsdGVyJztcclxuaW1wb3J0IHsgRnNMaXN0Q29uZmlnLCBGc0xpc3RDb21wb25lbnQsIEZzTGlzdEFjdGlvblNlbGVjdGVkIH0gZnJvbSAnQGZpcmVzdGl0Y2gvbGlzdCc7XHJcblxyXG5pbXBvcnQgeyBtYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgaW5kZXhOYW1lVmFsdWUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2luZGV4LW5hbWUtdmFsdWUnO1xyXG5pbXBvcnQgeyBDcm9uQ29tcG9uZW50IH0gZnJvbSAnLi4vY3Jvbi9jcm9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENyb25TdGF0ZXMgfSBmcm9tICcuLi8uLi9jb25zdHMnO1xyXG5pbXBvcnQgeyBDcm9uU3RhdGUgfSBmcm9tICcuLi8uLi9lbnVtcyc7XHJcbmltcG9ydCB7IFNlbGVjdGlvbkFjdGlvblR5cGUgfSBmcm9tICdAZmlyZXN0aXRjaC9zZWxlY3Rpb24nO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZnMtc3lzdGVtLWNyb25zJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY3JvbnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Nyb25zLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDcm9uc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBWaWV3Q2hpbGQoRnNMaXN0Q29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSBsaXN0OiBGc0xpc3RDb21wb25lbnQ7XHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBlbmFibGU6IChkYXRhOiBhbnkpID0+IE9ic2VydmFibGU8YW55PjtcclxuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZTogKGRhdGE6IGFueSkgPT4gT2JzZXJ2YWJsZTxhbnk+O1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBraWxsOiAoZGF0YTogYW55KSA9PiBPYnNlcnZhYmxlPGFueT47XHJcbiAgQElucHV0KCkgcHVibGljIHF1ZXVlOiAoZGF0YTogYW55KSA9PiBPYnNlcnZhYmxlPGFueT47XHJcbiAgQElucHV0KCkgcHVibGljIHJ1bjogKGRhdGE6IGFueSkgPT4gT2JzZXJ2YWJsZTxhbnk+O1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBsb2FkQ3JvbnM6IChkYXRhOiBhbnkpID0+IE9ic2VydmFibGU8YW55W10+O1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBsb2FkQ3JvbjogKGRhdGE6IGFueSkgPT4gT2JzZXJ2YWJsZTxhbnk+O1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBsb2FkQ3JvbkxvZ3M6IChkYXRhOiBhbnkpID0+IE9ic2VydmFibGU8eyBkYXRhOiBhbnlbXSwgcGFnaW5nOiBhbnkgfT47XHJcbiAgQElucHV0KCkgcHVibGljIGJ1bGs6IChhY3Rpb25OYW1lOiBzdHJpbmcsIGRhdGE6IGFueVtdKSA9PiBPYnNlcnZhYmxlPGFueT47XHJcblxyXG4gIHB1YmxpYyBjb25maWc6IEZzTGlzdENvbmZpZyA9IG51bGw7XHJcbiAgcHVibGljIGNyb25TdGF0ZXMgPSBpbmRleE5hbWVWYWx1ZShDcm9uU3RhdGVzKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9tZXNzYWdlOiBGc01lc3NhZ2UsXHJcbiAgICBwcml2YXRlIF9kaWFsb2c6IE1hdERpYWxvZyxcclxuICApIHsgfVxyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jb25maWdMaXN0KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jb25maWdMaXN0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb25maWcgPSB7XHJcbiAgICAgIHBhZ2luZzogZmFsc2UsXHJcbiAgICAgIGZpbHRlcnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICB0eXBlOiBJdGVtVHlwZS5LZXl3b3JkLFxyXG4gICAgICAgICAgbmFtZTogJ2tleXdvcmQnLFxyXG4gICAgICAgICAgbGFiZWw6ICdTZWFyY2gnXHJcbiAgICAgICAgfVxyXG4gICAgICBdLFxyXG4gICAgICByb3dBY3Rpb25zOiB0aGlzLmdldENyb25BY3Rpb25zKClcclxuICAgICAgLm1hcCgocm93QWN0aW9uKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIC4uLnJvd0FjdGlvbixcclxuICAgICAgICAgIGNsaWNrOiAoY3JvbikgPT4ge1xyXG4gICAgICAgICAgICByb3dBY3Rpb24uYWN0aW9uKGNyb24pXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfVxyXG4gICAgICB9KSxcclxuICAgICAgZmV0Y2g6IHF1ZXJ5ID0+IHtcclxuICAgICAgICBxdWVyeS50aW1lem9uZSA9IEludGwuRGF0ZVRpbWVGb3JtYXQoKS5yZXNvbHZlZE9wdGlvbnMoKS50aW1lWm9uZTtcclxuICAgICAgICByZXR1cm4gdGhpcy5sb2FkQ3JvbnMocXVlcnkpXHJcbiAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4gKHsgZGF0YTogcmVzcG9uc2UgfSkpXHJcbiAgICAgICAgICApO1xyXG4gICAgICB9LCAgICBcclxuICAgIH07XHJcblxyXG4gICAgaWYodGhpcy5idWxrKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnLnNlbGVjdGlvbiA9IHtcclxuICAgICAgICBzZWxlY3RBbGw6IGZhbHNlLFxyXG4gICAgICAgIGFjdGlvbnM6IFtcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdHlwZTogU2VsZWN0aW9uQWN0aW9uVHlwZS5BY3Rpb24sXHJcbiAgICAgICAgICAgIG5hbWU6ICdkaXNhYmxlJyxcclxuICAgICAgICAgICAgbGFiZWw6ICdEaXNhYmxlJ1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgdHlwZTogU2VsZWN0aW9uQWN0aW9uVHlwZS5BY3Rpb24sXHJcbiAgICAgICAgICAgIG5hbWU6ICdlbmFibGUnLFxyXG4gICAgICAgICAgICBsYWJlbDogJ0VuYWJsZSdcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgXSxcclxuICAgICAgICBhY3Rpb25TZWxlY3RlZDogKGFjdGlvbjogRnNMaXN0QWN0aW9uU2VsZWN0ZWQpID0+IHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLmJ1bGsoYWN0aW9uLmFjdGlvbi5uYW1lLCBhY3Rpb24uc2VsZWN0ZWQpXHJcbiAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgdGFwKCgpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLmxpc3QucmVsb2FkKCk7XHJcbiAgICAgICAgICAgICAgdGhpcy5fbWVzc2FnZS5zdWNjZXNzKCdBcHBsaWVkIENoYW5nZXMnKTtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb3Blbihjcm9uKSB7XHJcbiAgICB0aGlzLl9kaWFsb2cub3BlbihDcm9uQ29tcG9uZW50LCB7XHJcbiAgICAgIGRhdGE6IHsgXHJcbiAgICAgICAgY3JvbixcclxuICAgICAgICBsb2FkQ3JvbkxvZ3M6IHRoaXMubG9hZENyb25Mb2dzLFxyXG4gICAgICAgIGxvYWRDcm9uOiB0aGlzLmxvYWRDcm9uLFxyXG4gICAgICAgIGNyb25BY3Rpb25zOiB0aGlzLmdldENyb25BY3Rpb25zKCksXHJcbiAgICAgIH0sXHJcbiAgICAgIHdpZHRoOiAnODUlJ1xyXG4gICAgfSk7XHJcbiAgfSAgXHJcblxyXG4gIHB1YmxpYyBnZXRDcm9uQWN0aW9ucygpIHtcclxuICAgIHJldHVybiBbXHJcbiAgICAgIHtcclxuICAgICAgICBhY3Rpb246IChkYXRhKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5xdWV1ZShkYXRhKVxyXG4gICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgIHRhcCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5fbWVzc2FnZS5zdWNjZXNzKCdRdWV1ZWQgY3JvbicpO1xyXG4gICAgICAgICAgICAgIHRoaXMubGlzdC5yZWxvYWQoKTtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGFiZWw6ICdRdWV1ZScsXHJcbiAgICAgICAgc2hvdzogKGNyb24pID0+IHtcclxuICAgICAgICAgIHJldHVybiBjcm9uLnN0YXRlID09PSBDcm9uU3RhdGUuSWRsZSB8fCBjcm9uLnN0YXRlID09PSBDcm9uU3RhdGUuRmFpbGVkO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBhY3Rpb246IChkYXRhKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5ydW4oZGF0YSlcclxuICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICB0YXAoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuX21lc3NhZ2Uuc3VjY2VzcygnQ3JvbiByYW4nKTtcclxuICAgICAgICAgICAgICB0aGlzLmxpc3QucmVsb2FkKCk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGFiZWw6ICdSdW4nLFxyXG4gICAgICAgIHNob3c6IChjcm9uKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gY3Jvbi5zdGF0ZSA9PT0gQ3JvblN0YXRlLklkbGUgfHwgY3Jvbi5zdGF0ZSA9PT0gQ3JvblN0YXRlLkZhaWxlZDtcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgYWN0aW9uOiAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZW5hYmxlKGRhdGEpXHJcbiAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgdGFwKCgpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLl9tZXNzYWdlLnN1Y2Nlc3MoJ0VuYWJsZWQgY3JvbicpO1xyXG4gICAgICAgICAgICAgIHRoaXMubGlzdC5yZWxvYWQoKTtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGFiZWw6ICdFbmFibGUnLFxyXG4gICAgICAgIHNob3c6IChjcm9uKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gY3Jvbi5zdGF0ZSA9PT0gQ3JvblN0YXRlLkRpc2FibGVkO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBhY3Rpb246IChkYXRhKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5kaXNhYmxlKGRhdGEpXHJcbiAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgdGFwKCgpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLl9tZXNzYWdlLnN1Y2Nlc3MoJ0Rpc2FibGVkIGNyb24nKTtcclxuICAgICAgICAgICAgICB0aGlzLmxpc3QucmVsb2FkKCk7XHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGxhYmVsOiAnRGlzYWJsZScsXHJcbiAgICAgICAgc2hvdzogKGNyb24pID0+IHtcclxuICAgICAgICAgIHJldHVybiBjcm9uLnN0YXRlID09PSBDcm9uU3RhdGUuSWRsZSB8fCBjcm9uLnN0YXRlID09PSBDcm9uU3RhdGUuRmFpbGVkO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBhY3Rpb246IChkYXRhKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5raWxsKGRhdGEpXHJcbiAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgdGFwKCgpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLl9tZXNzYWdlLnN1Y2Nlc3MoJ0tpbGxlZCBjcm9uJyk7XHJcbiAgICAgICAgICAgICAgdGhpcy5saXN0LnJlbG9hZCgpO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBsYWJlbDogJ0tpbGwnLFxyXG4gICAgICAgIHNob3c6IChjcm9uKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gY3Jvbi5zdGF0ZSA9PT0gQ3JvblN0YXRlLlJ1bm5pbmc7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgIF07ICAgIFxyXG4gIH1cclxufVxyXG4iLCI8ZnMtbGlzdCBbY29uZmlnXT1cImNvbmZpZ1wiPlxyXG4gIDxmcy1saXN0LWNvbHVtbj5cclxuICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWhlYWRlcj5OYW1lPC9uZy10ZW1wbGF0ZT5cclxuICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWNlbGwgbGV0LXJvdz1cInJvd1wiPlxyXG4gICAgICA8YSAoY2xpY2spPVwib3Blbihyb3cpXCI+e3tyb3cubmFtZX19PC9hPlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwicm93LmNyb25TZXR0aW5nXCI+XHJcbiAgICAgICAgPHNtYWxsPnt7cm93LmNyb25TZXR0aW5nLnN1bW1hcnl9fTwvc21hbGw+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L2ZzLWxpc3QtY29sdW1uPlxyXG4gIDxmcy1saXN0LWNvbHVtbj5cclxuICAgIDxuZy10ZW1wbGF0ZSBmcy1saXN0LWhlYWRlcj5TdGF0dXM8L25nLXRlbXBsYXRlPlxyXG4gICAgPG5nLXRlbXBsYXRlIGZzLWxpc3QtY2VsbCBsZXQtcm93PVwicm93XCI+XHJcbiAgICAgIHt7Y3JvblN0YXRlc1tyb3cuc3RhdGVdfX1cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgPC9mcy1saXN0LWNvbHVtbj5cclxuICA8ZnMtbGlzdC1jb2x1bW4+XHJcbiAgICA8bmctdGVtcGxhdGUgZnMtbGlzdC1oZWFkZXI+TGFzdCBSYW48L25nLXRlbXBsYXRlPlxyXG4gICAgPG5nLXRlbXBsYXRlIGZzLWxpc3QtY2VsbCBsZXQtcm93PVwicm93XCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyb3cuZHVyYXRpb249PT1udWxsOyBlbHNlIGxhc3RSYW5cIj5cclxuICAgICAgICBOZXZlclxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLXRlbXBsYXRlICNsYXN0UmFuPlxyXG4gICAgICAgIDxmcy1kYXRlLWFnbyBbZGF0ZV09XCJyb3cuY3JlYXRlRGF0ZVwiPjwvZnMtZGF0ZS1hZ28+XHJcbiAgICAgICAgPGRpdj48c21hbGwgKm5nSWY9XCJyb3cuZHVyYXRpb25cIj5EdXJhdGlvbjoge3sgcm93LmR1cmF0aW9uIHwgZnNEYXRlRHVyYXRpb24gfX08L3NtYWxsPjwvZGl2PlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L2ZzLWxpc3QtY29sdW1uPlxyXG48L2ZzLWxpc3Q+XHJcbiJdfQ==
@@ -1,2 +1,2 @@
1
- export * from './crons.component';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvY3JvbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY3JvbnMuY29tcG9uZW50JztcbiJdfQ==
1
+ export * from './crons.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvY3JvbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY3JvbnMuY29tcG9uZW50JztcclxuIl19