@firestitch/system 9.2.1 → 12.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/app/components/api-log/api-log.component.d.ts +13 -10
  2. package/app/components/api-log/index.d.ts +1 -0
  3. package/app/components/api-logs/api-logs.component.d.ts +21 -18
  4. package/app/components/api-logs/index.d.ts +1 -0
  5. package/app/components/cron/cron.component.d.ts +24 -21
  6. package/app/components/cron/index.d.ts +1 -1
  7. package/app/components/cron-log/cron-log.component.d.ts +12 -9
  8. package/app/components/cron-log/index.d.ts +1 -1
  9. package/app/components/crons/crons.component.d.ts +36 -33
  10. package/app/components/crons/index.d.ts +1 -0
  11. package/app/components/dashboard/dashboard.component.d.ts +28 -25
  12. package/app/components/dashboard/index.d.ts +1 -0
  13. package/app/components/file-manager/file-manager.component.d.ts +17 -14
  14. package/app/components/file-manager/index.d.ts +1 -0
  15. package/app/components/info/index.d.ts +1 -0
  16. package/app/components/info/info.component.d.ts +11 -8
  17. package/app/components/process/index.d.ts +1 -0
  18. package/app/components/process/process.component.d.ts +16 -13
  19. package/app/components/processes/index.d.ts +1 -0
  20. package/app/components/processes/processes.component.d.ts +34 -31
  21. package/app/components/server-log/index.d.ts +1 -0
  22. package/app/components/server-log/server-log.component.d.ts +10 -7
  23. package/app/components/server-logs/index.d.ts +1 -0
  24. package/app/components/server-logs/server-logs.component.d.ts +21 -18
  25. package/app/components/settings/index.d.ts +1 -0
  26. package/app/components/settings/settings.component.d.ts +30 -27
  27. package/app/components/upgrade-logs/index.d.ts +1 -0
  28. package/app/components/upgrade-logs/upgrade-logs.component.d.ts +17 -14
  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 +13 -13
  40. package/app/fs-system.module.d.ts +46 -5
  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 -4
  48. package/bundles/firestitch-system.umd.js +1577 -1430
  49. package/bundles/firestitch-system.umd.js.map +1 -1
  50. package/esm2015/app/components/api-log/api-log.component.js +38 -31
  51. package/esm2015/app/components/api-log/index.js +2 -0
  52. package/esm2015/app/components/api-logs/api-logs.component.js +72 -73
  53. package/esm2015/app/components/api-logs/index.js +2 -0
  54. package/esm2015/app/components/cron/cron.component.js +103 -96
  55. package/esm2015/app/components/cron/index.js +2 -2
  56. package/esm2015/app/components/cron-log/cron-log.component.js +41 -33
  57. package/esm2015/app/components/cron-log/index.js +2 -2
  58. package/esm2015/app/components/crons/crons.component.js +188 -206
  59. package/esm2015/app/components/crons/index.js +2 -0
  60. package/esm2015/app/components/dashboard/dashboard.component.js +91 -93
  61. package/esm2015/app/components/dashboard/index.js +2 -0
  62. package/esm2015/app/components/file-manager/file-manager.component.js +54 -64
  63. package/esm2015/app/components/file-manager/index.js +2 -0
  64. package/esm2015/app/components/info/index.js +2 -0
  65. package/esm2015/app/components/info/info.component.js +36 -37
  66. package/esm2015/app/components/process/index.js +2 -0
  67. package/esm2015/app/components/process/process.component.js +49 -42
  68. package/esm2015/app/components/processes/index.js +2 -0
  69. package/esm2015/app/components/processes/processes.component.js +164 -178
  70. package/esm2015/app/components/server-log/index.js +2 -0
  71. package/esm2015/app/components/server-log/server-log.component.js +42 -34
  72. package/esm2015/app/components/server-logs/index.js +2 -0
  73. package/esm2015/app/components/server-logs/server-logs.component.js +57 -59
  74. package/esm2015/app/components/settings/index.js +2 -0
  75. package/esm2015/app/components/settings/settings.component.js +132 -132
  76. package/esm2015/app/components/upgrade-logs/index.js +2 -0
  77. package/esm2015/app/components/upgrade-logs/upgrade-logs.component.js +48 -47
  78. package/esm2015/app/consts/api-log-states.const.js +7 -7
  79. package/esm2015/app/consts/cron-log-states.const.js +15 -15
  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 +15 -15
  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 +15 -15
  89. package/esm2015/app/fs-system.module.js +177 -109
  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 -1
  93. package/esm2015/app/interfaces/index.js +4 -1
  94. package/esm2015/app/interfaces/process-action.js +2 -1
  95. package/esm2015/app/interfaces/system-config.js +2 -1
  96. package/esm2015/app/pipes/key-name-value.pipe.js +21 -17
  97. package/esm2015/firestitch-system.js +5 -20
  98. package/esm2015/public_api.js +20 -5
  99. package/fesm2015/firestitch-system.js +1190 -1178
  100. package/fesm2015/firestitch-system.js.map +1 -1
  101. package/firestitch-system.d.ts +5 -19
  102. package/package.json +5 -9
  103. package/public_api.d.ts +20 -5
  104. package/bundles/firestitch-system.umd.min.js +0 -16
  105. package/bundles/firestitch-system.umd.min.js.map +0 -1
  106. package/esm5/app/components/api-log/api-log.component.js +0 -32
  107. package/esm5/app/components/api-logs/api-logs.component.js +0 -75
  108. package/esm5/app/components/cron/cron.component.js +0 -98
  109. package/esm5/app/components/cron/index.js +0 -2
  110. package/esm5/app/components/cron-log/cron-log.component.js +0 -34
  111. package/esm5/app/components/cron-log/index.js +0 -2
  112. package/esm5/app/components/crons/crons.component.js +0 -209
  113. package/esm5/app/components/dashboard/dashboard.component.js +0 -98
  114. package/esm5/app/components/file-manager/file-manager.component.js +0 -67
  115. package/esm5/app/components/info/info.component.js +0 -41
  116. package/esm5/app/components/process/process.component.js +0 -44
  117. package/esm5/app/components/processes/processes.component.js +0 -180
  118. package/esm5/app/components/server-log/server-log.component.js +0 -35
  119. package/esm5/app/components/server-logs/server-logs.component.js +0 -61
  120. package/esm5/app/components/settings/settings.component.js +0 -136
  121. package/esm5/app/components/upgrade-logs/upgrade-logs.component.js +0 -49
  122. package/esm5/app/consts/api-log-states.const.js +0 -7
  123. package/esm5/app/consts/cron-log-states.const.js +0 -15
  124. package/esm5/app/consts/cron-states.const.js +0 -9
  125. package/esm5/app/consts/index.js +0 -4
  126. package/esm5/app/consts/process-states.const.js +0 -10
  127. package/esm5/app/enums/api-log-state.enum.js +0 -7
  128. package/esm5/app/enums/cron-log-state.enum.js +0 -15
  129. package/esm5/app/enums/cron-state.enum.js +0 -9
  130. package/esm5/app/enums/index.js +0 -6
  131. package/esm5/app/enums/process-state.enum.js +0 -10
  132. package/esm5/app/enums/setting-interface-type.enum.js +0 -15
  133. package/esm5/app/fs-system.module.js +0 -113
  134. package/esm5/app/helpers/index-name-value.js +0 -8
  135. package/esm5/app/injectors/system-config.injector.js +0 -3
  136. package/esm5/app/interfaces/dashboard-action.js +0 -1
  137. package/esm5/app/interfaces/index.js +0 -1
  138. package/esm5/app/interfaces/process-action.js +0 -1
  139. package/esm5/app/interfaces/system-config.js +0 -1
  140. package/esm5/app/pipes/key-name-value.pipe.js +0 -20
  141. package/esm5/firestitch-system.js +0 -20
  142. package/esm5/public_api.js +0 -5
  143. package/fesm5/firestitch-system.js +0 -1286
  144. package/fesm5/firestitch-system.js.map +0 -1
  145. package/firestitch-system.metadata.json +0 -1
@@ -1,93 +1,91 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { Component, OnInit, ChangeDetectionStrategy, Input, ChangeDetectorRef } from '@angular/core';
3
- import { FsMessage } from '@firestitch/message';
4
- import { BuildData, FsBuildService } from '@firestitch/build';
5
- import { takeUntil } from 'rxjs/operators';
6
- import { Subject } from 'rxjs';
7
- import { differenceInMinutes } from 'date-fns';
8
- let DashboardComponent = class DashboardComponent {
9
- constructor(_message, _cdRef, _buildService) {
10
- this._message = _message;
11
- this._cdRef = _cdRef;
12
- this._buildService = _buildService;
13
- this.buttonActions = [];
14
- this.menuActions = [];
15
- this._destroy$ = new Subject();
16
- this.actions = [];
17
- }
18
- ngOnInit() {
19
- this._load();
20
- this.buttonActions = this.actions.filter(item => { return !item.menu; });
21
- this.menuActions = this.actions.filter(item => { return item.menu; });
22
- this.build = this._buildService.build;
23
- this._buildService.buildChange$
24
- .pipe(takeUntil(this._destroy$))
25
- .subscribe((build) => {
26
- this.build = build;
27
- this._cdRef.markForCheck();
28
- });
29
- }
30
- _load() {
31
- this.load()
32
- .subscribe((dashboard) => {
33
- this.dashboard = dashboard;
34
- this.dashboard.cronRanAttention = !dashboard.cronRan ||
35
- differenceInMinutes(new Date(), new Date(dashboard.cronRan)) > 15;
36
- this._cdRef.markForCheck();
37
- });
38
- }
39
- ngOnDestroy() {
40
- this._destroy$.next();
41
- this._destroy$.complete();
42
- }
43
- actionClick(action) {
44
- action.click();
45
- }
46
- initClick() {
47
- this.init()
48
- .subscribe(() => {
49
- this._message.success('Successfully initialized the system');
50
- });
51
- }
52
- upgradeClick() {
53
- this.upgrade()
54
- .subscribe(() => {
55
- this._load();
56
- this._message.success('Successfully upgraded the system');
57
- });
58
- }
59
- };
60
- DashboardComponent.ctorParameters = () => [
61
- { type: FsMessage },
62
- { type: ChangeDetectorRef },
63
- { type: FsBuildService }
64
- ];
65
- __decorate([
66
- Input(),
67
- __metadata("design:type", Function)
68
- ], DashboardComponent.prototype, "init", void 0);
69
- __decorate([
70
- Input(),
71
- __metadata("design:type", Function)
72
- ], DashboardComponent.prototype, "upgrade", void 0);
73
- __decorate([
74
- Input(),
75
- __metadata("design:type", Function)
76
- ], DashboardComponent.prototype, "load", void 0);
77
- __decorate([
78
- Input(),
79
- __metadata("design:type", Array)
80
- ], DashboardComponent.prototype, "actions", void 0);
81
- DashboardComponent = __decorate([
82
- Component({
83
- selector: 'fs-system-dashboard',
84
- 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 fxLayout=\"row\" fxLayoutGap=\"5px\" fxLayout.xs=\"column\">\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\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\r\n\r\n </ng-container>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div\r\n fxLayout=\"row wrap\"\r\n fxLayout.xs=\"column\"\r\n fxLayoutGap.xs=\"0px\"\r\n fxLayoutAlign=\"start start\"\r\n fxLayoutGap=\"50px\">\r\n\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",
85
- changeDetection: ChangeDetectionStrategy.OnPush,
86
- 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}}"]
87
- }),
88
- __metadata("design:paramtypes", [FsMessage,
89
- ChangeDetectorRef,
90
- FsBuildService])
91
- ], DashboardComponent);
92
- export { DashboardComponent };
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BmaXJlc3RpdGNoL3N5c3RlbS8iLCJzb3VyY2VzIjpbImFwcC9jb21wb25lbnRzL2Rhc2hib2FyZC9kYXNoYm9hcmQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSx1QkFBdUIsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFOUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBVy9DLElBQWEsa0JBQWtCLEdBQS9CLE1BQWEsa0JBQWtCO0lBZTdCLFlBQ1UsUUFBbUIsRUFDbkIsTUFBeUIsRUFDekIsYUFBNkI7UUFGN0IsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQUN6QixrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUFmaEMsa0JBQWEsR0FBc0IsRUFBRSxDQUFDO1FBRXRDLGdCQUFXLEdBQXNCLEVBQUUsQ0FBQztRQUVuQyxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQU16QixZQUFPLEdBQXNCLEVBQUUsQ0FBQztJQU1yQyxDQUFDO0lBRUwsUUFBUTtRQUNOLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV0RSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWTthQUM5QixJQUFJLENBQ0gsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDMUI7YUFDQSxTQUFTLENBQUMsQ0FBQyxLQUFnQixFQUFFLEVBQUU7WUFDOUIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxLQUFLO1FBQ1gsSUFBSSxDQUFDLElBQUksRUFBRTthQUNWLFNBQVMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1lBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxTQUFTLENBQUMsT0FBTztnQkFDakQsbUJBQW1CLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDckUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU0sV0FBVyxDQUFDLE1BQU07UUFDdkIsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFTSxTQUFTO1FBQ2QsSUFBSSxDQUFDLElBQUksRUFBRTthQUNWLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1FBQy9ELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFlBQVk7UUFDakIsSUFBSSxDQUFDLE9BQU8sRUFBRTthQUNiLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1FBQzVELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGLENBQUE7O1lBdERxQixTQUFTO1lBQ1gsaUJBQWlCO1lBQ1YsY0FBYzs7QUFUOUI7SUFBUixLQUFLLEVBQUU7OEJBQU8sUUFBUTtnREFBQztBQUNmO0lBQVIsS0FBSyxFQUFFOzhCQUFVLFFBQVE7bURBQUM7QUFDbEI7SUFBUixLQUFLLEVBQUU7OEJBQU8sUUFBUTtnREFBQztBQUVmO0lBQVIsS0FBSyxFQUFFOzttREFBaUM7QUFiOUIsa0JBQWtCO0lBTjlCLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSxxQkFBcUI7UUFDL0IsK3lJQUF1QztRQUV2QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7S0FDaEQsQ0FBQztxQ0FpQm9CLFNBQVM7UUFDWCxpQkFBaUI7UUFDVixjQUFjO0dBbEI1QixrQkFBa0IsQ0FzRTlCO1NBdEVZLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgSW5wdXQsIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBGc01lc3NhZ2UgfSBmcm9tICdAZmlyZXN0aXRjaC9tZXNzYWdlJztcclxuaW1wb3J0IHsgQnVpbGREYXRhLCBGc0J1aWxkU2VydmljZSB9IGZyb20gJ0BmaXJlc3RpdGNoL2J1aWxkJztcclxuXHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgZGlmZmVyZW5jZUluTWludXRlcyB9IGZyb20gJ2RhdGUtZm5zJztcclxuXHJcbmltcG9ydCB7IERhc2hib2FyZEFjdGlvbiB9IGZyb20gJy4vLi4vLi4vaW50ZXJmYWNlcy9kYXNoYm9hcmQtYWN0aW9uJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2ZzLXN5c3RlbS1kYXNoYm9hcmQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnZGFzaGJvYXJkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsgJ2Rhc2hib2FyZC5jb21wb25lbnQuc2NzcycgXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIERhc2hib2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIHB1YmxpYyBkYXNoYm9hcmQ7XHJcbiAgcHVibGljIGJ1dHRvbkFjdGlvbnM6IERhc2hib2FyZEFjdGlvbltdID0gW107XHJcbiAgcHVibGljIGJ1aWxkOiBCdWlsZERhdGE7XHJcbiAgcHVibGljIG1lbnVBY3Rpb25zOiBEYXNoYm9hcmRBY3Rpb25bXSA9IFtdO1xyXG5cclxuICBwcml2YXRlIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIEBJbnB1dCgpIGluaXQ6IEZ1bmN0aW9uO1xyXG4gIEBJbnB1dCgpIHVwZ3JhZGU6IEZ1bmN0aW9uO1xyXG4gIEBJbnB1dCgpIGxvYWQ6IEZ1bmN0aW9uO1xyXG5cclxuICBASW5wdXQoKSBhY3Rpb25zOiBEYXNoYm9hcmRBY3Rpb25bXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX21lc3NhZ2U6IEZzTWVzc2FnZSxcclxuICAgIHByaXZhdGUgX2NkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgX2J1aWxkU2VydmljZTogRnNCdWlsZFNlcnZpY2UsXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLl9sb2FkKCk7XHJcbiAgICB0aGlzLmJ1dHRvbkFjdGlvbnMgPSB0aGlzLmFjdGlvbnMuZmlsdGVyKGl0ZW0gPT4geyByZXR1cm4gIWl0ZW0ubWVudTsgfSk7XHJcbiAgICB0aGlzLm1lbnVBY3Rpb25zID0gdGhpcy5hY3Rpb25zLmZpbHRlcihpdGVtID0+IHsgcmV0dXJuIGl0ZW0ubWVudTsgfSk7XHJcblxyXG4gICAgdGhpcy5idWlsZCA9IHRoaXMuX2J1aWxkU2VydmljZS5idWlsZDtcclxuICAgIHRoaXMuX2J1aWxkU2VydmljZS5idWlsZENoYW5nZSRcclxuICAgIC5waXBlKFxyXG4gICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpXHJcbiAgICApXHJcbiAgICAuc3Vic2NyaWJlKChidWlsZDogQnVpbGREYXRhKSA9PiB7XHJcbiAgICAgIHRoaXMuYnVpbGQgPSBidWlsZDtcclxuICAgICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2xvYWQoKSB7XHJcbiAgICB0aGlzLmxvYWQoKVxyXG4gICAgLnN1YnNjcmliZSgoZGFzaGJvYXJkKSA9PiB7XHJcbiAgICAgIHRoaXMuZGFzaGJvYXJkID0gZGFzaGJvYXJkO1xyXG4gICAgICB0aGlzLmRhc2hib2FyZC5jcm9uUmFuQXR0ZW50aW9uID0gIWRhc2hib2FyZC5jcm9uUmFuIHx8XHJcbiAgICAgICAgIGRpZmZlcmVuY2VJbk1pbnV0ZXMobmV3IERhdGUoKSwgbmV3IERhdGUoZGFzaGJvYXJkLmNyb25SYW4pKSA+IDE1O1xyXG4gICAgICB0aGlzLl9jZFJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xyXG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhY3Rpb25DbGljayhhY3Rpb24pIHtcclxuICAgIGFjdGlvbi5jbGljaygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGluaXRDbGljaygpIHtcclxuICAgIHRoaXMuaW5pdCgpXHJcbiAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5fbWVzc2FnZS5zdWNjZXNzKCdTdWNjZXNzZnVsbHkgaW5pdGlhbGl6ZWQgdGhlIHN5c3RlbScpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdXBncmFkZUNsaWNrKCkge1xyXG4gICAgdGhpcy51cGdyYWRlKClcclxuICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLl9sb2FkKCk7XHJcbiAgICAgIHRoaXMuX21lc3NhZ2Uuc3VjY2VzcygnU3VjY2Vzc2Z1bGx5IHVwZ3JhZGVkIHRoZSBzeXN0ZW0nKTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
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/flex-layout/flex";
16
+ import * as i9 from "@angular/common";
17
+ import * as i10 from "@angular/flex-layout/extended";
18
+ import * as i11 from "@angular/material/tooltip";
19
+ import * as i12 from "@firestitch/date";
20
+ export class DashboardComponent {
21
+ constructor(_message, _cdRef, _buildService) {
22
+ this._message = _message;
23
+ this._cdRef = _cdRef;
24
+ this._buildService = _buildService;
25
+ this.buttonActions = [];
26
+ this.menuActions = [];
27
+ this._destroy$ = new Subject();
28
+ this.actions = [];
29
+ }
30
+ ngOnInit() {
31
+ this._load();
32
+ this.buttonActions = this.actions.filter(item => { return !item.menu; });
33
+ this.menuActions = this.actions.filter(item => { return item.menu; });
34
+ this.build = this._buildService.build;
35
+ this._buildService.buildChange$
36
+ .pipe(takeUntil(this._destroy$))
37
+ .subscribe((build) => {
38
+ this.build = build;
39
+ this._cdRef.markForCheck();
40
+ });
41
+ }
42
+ _load() {
43
+ this.load()
44
+ .subscribe((dashboard) => {
45
+ this.dashboard = dashboard;
46
+ this.dashboard.cronRanAttention = !dashboard.cronRan ||
47
+ differenceInMinutes(new Date(), new Date(dashboard.cronRan)) > 15;
48
+ this._cdRef.markForCheck();
49
+ });
50
+ }
51
+ ngOnDestroy() {
52
+ this._destroy$.next();
53
+ this._destroy$.complete();
54
+ }
55
+ actionClick(action) {
56
+ action.click();
57
+ }
58
+ initClick() {
59
+ this.init()
60
+ .subscribe(() => {
61
+ this._message.success('Successfully initialized the system');
62
+ });
63
+ }
64
+ upgradeClick() {
65
+ this.upgrade()
66
+ .subscribe(() => {
67
+ this._load();
68
+ this._message.success('Successfully upgraded the system');
69
+ });
70
+ }
71
+ }
72
+ 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 });
73
+ 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\">\n\n <div class=\"h2-container\">\n\n <div class=\"actions\">\n <h2>Actions</h2>\n <div fxLayout=\"row\" fxLayoutGap=\"5px\" fxLayout.xs=\"column\">\n <button mat-raised-button (click)=\"upgradeClick()\">Run Upgrades</button>\n <button mat-raised-button (click)=\"initClick()\">Init System</button>\n\n <button\n *ngFor=\"let action of buttonActions\"\n mat-raised-button\n (click)=\"actionClick(action)\">\n {{action.label}}\n </button>\n\n <ng-container *ngIf=\"menuActions.length\">\n\n <fs-menu buttonClass=\"mat-raised-button menu-button\">\n <ng-template\n *ngFor=\"let action of menuActions\"\n fs-menu-item\n (click)=\"actionClick(action)\">\n {{action.label}}\n </ng-template>\n </fs-menu>\n\n\n </ng-container>\n\n </div>\n </div>\n </div>\n\n <div\n fxLayout=\"row wrap\"\n fxLayout.xs=\"column\"\n fxLayoutGap.xs=\"0px\"\n fxLayoutAlign=\"start start\"\n fxLayoutGap=\"50px\">\n\n <div>\n <h2>Server</h2>\n\n <fs-label-field>\n <fs-label>Date/Time</fs-label>\n {{dashboard.serverTime | fsDateFormat: 'date-time'}}\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>Timezone</fs-label>\n {{dashboard.serverTimezone}}\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>Hostname</fs-label>\n {{dashboard.serverHostname}}\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>Directory</fs-label>\n {{dashboard.appDirectory}}\n </fs-label-field>\n </div>\n\n <div>\n <h2>System</h2>\n <fs-label-field>\n <fs-label>Mode</fs-label>\n {{dashboard.appMode}}\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>Notification Recipients</fs-label>\n {{dashboard.notifyRecipients.join(', ')}}\n </fs-label-field>\n </div>\n\n <div>\n <h2>Database</h2>\n\n <fs-label-field>\n <fs-label>Name</fs-label>\n {{dashboard.databaseName}}\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>Date/Time</fs-label>\n {{dashboard.databaseTime | fsDateFormat: 'date-time'}}\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>Timezone</fs-label>\n {{dashboard.databaseTimezone}}\n </fs-label-field>\n </div>\n\n <div *ngIf=\"build || dashboard.upgrades.length\">\n <h2>Build</h2>\n\n <ng-container *ngIf=\"build\">\n <fs-label-field>\n <fs-label>Version</fs-label>\n {{build.version}}\n </fs-label-field>\n\n <fs-label-field>\n <fs-label>Date</fs-label>\n {{ build.date | fsDateFormat: 'date-time' }}\n </fs-label-field>\n </ng-container>\n\n <fs-label-field *ngIf=\"dashboard.upgrades.length\">\n <fs-label>Pending Upgrades</fs-label>\n <span class=\"attention\" [ngClass]=\"{ 'needs-attention': !!dashboard.upgrades.length }\">\n {{dashboard.upgrades.length}}\n <mat-icon\n [matTooltip]=\"dashboard.upgrades.join('\\n')\"\n matTooltipClass=\"tooltip-pending-upgrades\"\n >\n warning\n </mat-icon>\n </span>\n </fs-label-field>\n </div>\n\n <div>\n <h2>Cron</h2>\n\n <fs-label-field>\n <fs-label>Last Ran</fs-label>\n <span class=\"attention\" [ngClass]=\"{ 'needs-attention': dashboard.cronRanAttention }\">\n <span *ngIf=\"!dashboard.cronRan\">Never</span>\n <span *ngIf=\"dashboard.cronRan\">{{dashboard.cronRan | fsDateFormat: 'date-time'}}</span>\n <mat-icon>warning</mat-icon>\n </span>\n </fs-label-field>\n </div>\n </div>\n</div>\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"], 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.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i8.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.FsMenuItemDirective, selector: "fs-menu-group,[fs-menu-item]", inputs: ["fsClass", "class", "id", "label", "hidden", "groupHidden", "dismissAfterClick", "link", "target", "queryParams"], outputs: ["click"] }, { type: i8.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i9.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i10.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i11.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], pipes: { "fsDateFormat": i12.FsDateFormatPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: DashboardComponent, decorators: [{
75
+ type: Component,
76
+ args: [{
77
+ selector: 'fs-system-dashboard',
78
+ templateUrl: 'dashboard.component.html',
79
+ styleUrls: ['dashboard.component.scss'],
80
+ changeDetection: ChangeDetectionStrategy.OnPush,
81
+ }]
82
+ }], ctorParameters: function () { return [{ type: i1.FsMessage }, { type: i0.ChangeDetectorRef }, { type: i2.FsBuildService }]; }, propDecorators: { init: [{
83
+ type: Input
84
+ }], upgrade: [{
85
+ type: Input
86
+ }], load: [{
87
+ type: Input
88
+ }], actions: [{
89
+ type: Input
90
+ }] } });
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9kYXNoYm9hcmQvZGFzaGJvYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9kYXNoYm9hcmQvZGFzaGJvYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQWEsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFOUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sVUFBVSxDQUFDOzs7Ozs7Ozs7Ozs7OztBQVcvQyxNQUFNLE9BQU8sa0JBQWtCO0lBZTdCLFlBQ1UsUUFBbUIsRUFDbkIsTUFBeUIsRUFDekIsYUFBNkI7UUFGN0IsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQUN6QixrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUFmaEMsa0JBQWEsR0FBc0IsRUFBRSxDQUFDO1FBRXRDLGdCQUFXLEdBQXNCLEVBQUUsQ0FBQztRQUVuQyxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQU16QixZQUFPLEdBQXNCLEVBQUUsQ0FBQztJQU1yQyxDQUFDO0lBRUwsUUFBUTtRQUNOLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV0RSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWTthQUM5QixJQUFJLENBQ0gsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDMUI7YUFDQSxTQUFTLENBQUMsQ0FBQyxLQUFnQixFQUFFLEVBQUU7WUFDOUIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDbkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxLQUFLO1FBQ1gsSUFBSSxDQUFDLElBQUksRUFBRTthQUNWLFNBQVMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1lBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxTQUFTLENBQUMsT0FBTztnQkFDakQsbUJBQW1CLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDckUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU0sV0FBVyxDQUFDLE1BQU07UUFDdkIsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFTSxTQUFTO1FBQ2QsSUFBSSxDQUFDLElBQUksRUFBRTthQUNWLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1FBQy9ELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFlBQVk7UUFDakIsSUFBSSxDQUFDLE9BQU8sRUFBRTthQUNiLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO1FBQzVELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7Z0hBckVVLGtCQUFrQjtvR0FBbEIsa0JBQWtCLDJJQ25CL0IsMmdJQTZJQTs0RkQxSGEsa0JBQWtCO2tCQU45QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFdBQVcsRUFBRSwwQkFBMEI7b0JBQ3ZDLFNBQVMsRUFBRSxDQUFFLDBCQUEwQixDQUFFO29CQUN6QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDaEQ7NkpBVVUsSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBJbnB1dCwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRnNNZXNzYWdlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvbWVzc2FnZSc7XG5pbXBvcnQgeyBCdWlsZERhdGEsIEZzQnVpbGRTZXJ2aWNlIH0gZnJvbSAnQGZpcmVzdGl0Y2gvYnVpbGQnO1xuXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IGRpZmZlcmVuY2VJbk1pbnV0ZXMgfSBmcm9tICdkYXRlLWZucyc7XG5cbmltcG9ydCB7IERhc2hib2FyZEFjdGlvbiB9IGZyb20gJy4vLi4vLi4vaW50ZXJmYWNlcy9kYXNoYm9hcmQtYWN0aW9uJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmcy1zeXN0ZW0tZGFzaGJvYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICdkYXNoYm9hcmQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsgJ2Rhc2hib2FyZC5jb21wb25lbnQuc2NzcycgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIERhc2hib2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgcHVibGljIGRhc2hib2FyZDtcbiAgcHVibGljIGJ1dHRvbkFjdGlvbnM6IERhc2hib2FyZEFjdGlvbltdID0gW107XG4gIHB1YmxpYyBidWlsZDogQnVpbGREYXRhO1xuICBwdWJsaWMgbWVudUFjdGlvbnM6IERhc2hib2FyZEFjdGlvbltdID0gW107XG5cbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuXG4gIEBJbnB1dCgpIGluaXQ6IEZ1bmN0aW9uO1xuICBASW5wdXQoKSB1cGdyYWRlOiBGdW5jdGlvbjtcbiAgQElucHV0KCkgbG9hZDogRnVuY3Rpb247XG5cbiAgQElucHV0KCkgYWN0aW9uczogRGFzaGJvYXJkQWN0aW9uW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9tZXNzYWdlOiBGc01lc3NhZ2UsXG4gICAgcHJpdmF0ZSBfY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgX2J1aWxkU2VydmljZTogRnNCdWlsZFNlcnZpY2UsXG4gICkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5fbG9hZCgpO1xuICAgIHRoaXMuYnV0dG9uQWN0aW9ucyA9IHRoaXMuYWN0aW9ucy5maWx0ZXIoaXRlbSA9PiB7IHJldHVybiAhaXRlbS5tZW51OyB9KTtcbiAgICB0aGlzLm1lbnVBY3Rpb25zID0gdGhpcy5hY3Rpb25zLmZpbHRlcihpdGVtID0+IHsgcmV0dXJuIGl0ZW0ubWVudTsgfSk7XG5cbiAgICB0aGlzLmJ1aWxkID0gdGhpcy5fYnVpbGRTZXJ2aWNlLmJ1aWxkO1xuICAgIHRoaXMuX2J1aWxkU2VydmljZS5idWlsZENoYW5nZSRcbiAgICAucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JClcbiAgICApXG4gICAgLnN1YnNjcmliZSgoYnVpbGQ6IEJ1aWxkRGF0YSkgPT4ge1xuICAgICAgdGhpcy5idWlsZCA9IGJ1aWxkO1xuICAgICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9sb2FkKCkge1xuICAgIHRoaXMubG9hZCgpXG4gICAgLnN1YnNjcmliZSgoZGFzaGJvYXJkKSA9PiB7XG4gICAgICB0aGlzLmRhc2hib2FyZCA9IGRhc2hib2FyZDtcbiAgICAgIHRoaXMuZGFzaGJvYXJkLmNyb25SYW5BdHRlbnRpb24gPSAhZGFzaGJvYXJkLmNyb25SYW4gfHxcbiAgICAgICAgIGRpZmZlcmVuY2VJbk1pbnV0ZXMobmV3IERhdGUoKSwgbmV3IERhdGUoZGFzaGJvYXJkLmNyb25SYW4pKSA+IDE1O1xuICAgICAgdGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgYWN0aW9uQ2xpY2soYWN0aW9uKSB7XG4gICAgYWN0aW9uLmNsaWNrKCk7XG4gIH1cblxuICBwdWJsaWMgaW5pdENsaWNrKCkge1xuICAgIHRoaXMuaW5pdCgpXG4gICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLl9tZXNzYWdlLnN1Y2Nlc3MoJ1N1Y2Nlc3NmdWxseSBpbml0aWFsaXplZCB0aGUgc3lzdGVtJyk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgdXBncmFkZUNsaWNrKCkge1xuICAgIHRoaXMudXBncmFkZSgpXG4gICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLl9sb2FkKCk7XG4gICAgICB0aGlzLl9tZXNzYWdlLnN1Y2Nlc3MoJ1N1Y2Nlc3NmdWxseSB1cGdyYWRlZCB0aGUgc3lzdGVtJyk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgKmZzU2tlbGV0b249XCJkYXNoYm9hcmRcIj5cblxuICA8ZGl2IGNsYXNzPVwiaDItY29udGFpbmVyXCI+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiPlxuICAgICAgICA8aDI+QWN0aW9uczwvaDI+XG4gICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEdhcD1cIjVweFwiIGZ4TGF5b3V0LnhzPVwiY29sdW1uXCI+XG4gICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwidXBncmFkZUNsaWNrKClcIj5SdW4gVXBncmFkZXM8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJpbml0Q2xpY2soKVwiPkluaXQgU3lzdGVtPC9idXR0b24+XG5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGJ1dHRvbkFjdGlvbnNcIlxuICAgICAgICAgICAgbWF0LXJhaXNlZC1idXR0b25cbiAgICAgICAgICAgIChjbGljayk9XCJhY3Rpb25DbGljayhhY3Rpb24pXCI+XG4gICAgICAgICAgICB7e2FjdGlvbi5sYWJlbH19XG4gICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibWVudUFjdGlvbnMubGVuZ3RoXCI+XG5cbiAgICAgICAgICAgIDxmcy1tZW51IGJ1dHRvbkNsYXNzPVwibWF0LXJhaXNlZC1idXR0b24gbWVudS1idXR0b25cIj5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBtZW51QWN0aW9uc1wiXG4gICAgICAgICAgICAgICAgZnMtbWVudS1pdGVtXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImFjdGlvbkNsaWNrKGFjdGlvbilcIj5cbiAgICAgICAgICAgICAgICB7e2FjdGlvbi5sYWJlbH19XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2ZzLW1lbnU+XG5cblxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICBmeExheW91dD1cInJvdyB3cmFwXCJcbiAgICAgIGZ4TGF5b3V0LnhzPVwiY29sdW1uXCJcbiAgICAgIGZ4TGF5b3V0R2FwLnhzPVwiMHB4XCJcbiAgICAgIGZ4TGF5b3V0QWxpZ249XCJzdGFydCBzdGFydFwiXG4gICAgICBmeExheW91dEdhcD1cIjUwcHhcIj5cblxuICAgICAgPGRpdj5cbiAgICAgICAgPGgyPlNlcnZlcjwvaDI+XG5cbiAgICAgICAgPGZzLWxhYmVsLWZpZWxkPlxuICAgICAgICAgIDxmcy1sYWJlbD5EYXRlL1RpbWU8L2ZzLWxhYmVsPlxuICAgICAgICAgIHt7ZGFzaGJvYXJkLnNlcnZlclRpbWUgfCBmc0RhdGVGb3JtYXQ6ICdkYXRlLXRpbWUnfX1cbiAgICAgICAgPC9mcy1sYWJlbC1maWVsZD5cblxuICAgICAgICA8ZnMtbGFiZWwtZmllbGQ+XG4gICAgICAgICAgPGZzLWxhYmVsPlRpbWV6b25lPC9mcy1sYWJlbD5cbiAgICAgICAgICB7e2Rhc2hib2FyZC5zZXJ2ZXJUaW1lem9uZX19XG4gICAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG5cbiAgICAgICAgPGZzLWxhYmVsLWZpZWxkPlxuICAgICAgICAgIDxmcy1sYWJlbD5Ib3N0bmFtZTwvZnMtbGFiZWw+XG4gICAgICAgICAge3tkYXNoYm9hcmQuc2VydmVySG9zdG5hbWV9fVxuICAgICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxuXG4gICAgICAgIDxmcy1sYWJlbC1maWVsZD5cbiAgICAgICAgICA8ZnMtbGFiZWw+RGlyZWN0b3J5PC9mcy1sYWJlbD5cbiAgICAgICAgICB7e2Rhc2hib2FyZC5hcHBEaXJlY3Rvcnl9fVxuICAgICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxoMj5TeXN0ZW08L2gyPlxuICAgICAgICA8ZnMtbGFiZWwtZmllbGQ+XG4gICAgICAgICAgPGZzLWxhYmVsPk1vZGU8L2ZzLWxhYmVsPlxuICAgICAgICAgIHt7ZGFzaGJvYXJkLmFwcE1vZGV9fVxuICAgICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxuXG4gICAgICAgIDxmcy1sYWJlbC1maWVsZD5cbiAgICAgICAgICA8ZnMtbGFiZWw+Tm90aWZpY2F0aW9uIFJlY2lwaWVudHM8L2ZzLWxhYmVsPlxuICAgICAgICAgIHt7ZGFzaGJvYXJkLm5vdGlmeVJlY2lwaWVudHMuam9pbignLCAnKX19XG4gICAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdj5cbiAgICAgICAgPGgyPkRhdGFiYXNlPC9oMj5cblxuICAgICAgICA8ZnMtbGFiZWwtZmllbGQ+XG4gICAgICAgICAgPGZzLWxhYmVsPk5hbWU8L2ZzLWxhYmVsPlxuICAgICAgICAgIHt7ZGFzaGJvYXJkLmRhdGFiYXNlTmFtZX19XG4gICAgICAgIDwvZnMtbGFiZWwtZmllbGQ+XG5cbiAgICAgICAgPGZzLWxhYmVsLWZpZWxkPlxuICAgICAgICAgIDxmcy1sYWJlbD5EYXRlL1RpbWU8L2ZzLWxhYmVsPlxuICAgICAgICAgIHt7ZGFzaGJvYXJkLmRhdGFiYXNlVGltZSB8IGZzRGF0ZUZvcm1hdDogJ2RhdGUtdGltZSd9fVxuICAgICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxuXG4gICAgICAgIDxmcy1sYWJlbC1maWVsZD5cbiAgICAgICAgICA8ZnMtbGFiZWw+VGltZXpvbmU8L2ZzLWxhYmVsPlxuICAgICAgICAgIHt7ZGFzaGJvYXJkLmRhdGFiYXNlVGltZXpvbmV9fVxuICAgICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgKm5nSWY9XCJidWlsZCB8fCBkYXNoYm9hcmQudXBncmFkZXMubGVuZ3RoXCI+XG4gICAgICAgIDxoMj5CdWlsZDwvaDI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImJ1aWxkXCI+XG4gICAgICAgICAgPGZzLWxhYmVsLWZpZWxkPlxuICAgICAgICAgICAgPGZzLWxhYmVsPlZlcnNpb248L2ZzLWxhYmVsPlxuICAgICAgICAgICAge3tidWlsZC52ZXJzaW9ufX1cbiAgICAgICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxuXG4gICAgICAgICAgPGZzLWxhYmVsLWZpZWxkPlxuICAgICAgICAgICAgPGZzLWxhYmVsPkRhdGU8L2ZzLWxhYmVsPlxuICAgICAgICAgICAge3sgYnVpbGQuZGF0ZSB8IGZzRGF0ZUZvcm1hdDogJ2RhdGUtdGltZScgfX1cbiAgICAgICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8ZnMtbGFiZWwtZmllbGQgKm5nSWY9XCJkYXNoYm9hcmQudXBncmFkZXMubGVuZ3RoXCI+XG4gICAgICAgICAgPGZzLWxhYmVsPlBlbmRpbmcgVXBncmFkZXM8L2ZzLWxhYmVsPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXR0ZW50aW9uXCIgW25nQ2xhc3NdPVwieyAnbmVlZHMtYXR0ZW50aW9uJzogISFkYXNoYm9hcmQudXBncmFkZXMubGVuZ3RoIH1cIj5cbiAgICAgICAgICAgIHt7ZGFzaGJvYXJkLnVwZ3JhZGVzLmxlbmd0aH19XG4gICAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJkYXNoYm9hcmQudXBncmFkZXMuam9pbignXFxuJylcIlxuICAgICAgICAgICAgICAgIG1hdFRvb2x0aXBDbGFzcz1cInRvb2x0aXAtcGVuZGluZy11cGdyYWRlc1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB3YXJuaW5nXG4gICAgICAgICAgICA8L21hdC1pY29uPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9mcy1sYWJlbC1maWVsZD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2PlxuICAgICAgICA8aDI+Q3JvbjwvaDI+XG5cbiAgICAgICAgPGZzLWxhYmVsLWZpZWxkPlxuICAgICAgICAgIDxmcy1sYWJlbD5MYXN0IFJhbjwvZnMtbGFiZWw+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJhdHRlbnRpb25cIiBbbmdDbGFzc109XCJ7ICduZWVkcy1hdHRlbnRpb24nOiBkYXNoYm9hcmQuY3JvblJhbkF0dGVudGlvbiB9XCI+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFkYXNoYm9hcmQuY3JvblJhblwiPk5ldmVyPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJkYXNoYm9hcmQuY3JvblJhblwiPnt7ZGFzaGJvYXJkLmNyb25SYW4gfCBmc0RhdGVGb3JtYXQ6ICdkYXRlLXRpbWUnfX08L3NwYW4+XG4gICAgICAgICAgICA8bWF0LWljb24+d2FybmluZzwvbWF0LWljb24+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2ZzLWxhYmVsLWZpZWxkPlxuICAgICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './dashboard.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvZGFzaGJvYXJkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Rhc2hib2FyZC5jb21wb25lbnQnO1xuIl19
@@ -1,64 +1,54 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { Component, Input } from '@angular/core';
3
- let FileManagerComponent = class FileManagerComponent {
4
- constructor() { }
5
- ngOnInit() {
6
- this._configFileManager();
7
- }
8
- _configFileManager() {
9
- this.config = {
10
- fetch: (path) => {
11
- return this.fetch(path);
12
- },
13
- deleteFile: (path) => {
14
- return this.deleteFile(path);
15
- },
16
- deleteDirectory: (path) => {
17
- return this.deleteDirectory(path);
18
- },
19
- createDirectory: (path) => {
20
- return this.createDirectory(path);
21
- },
22
- download: (path) => {
23
- return this.download(path);
24
- },
25
- upload: (path, file) => {
26
- return this.upload(path, file);
27
- }
28
- };
29
- }
30
- };
31
- __decorate([
32
- Input(),
33
- __metadata("design:type", Function)
34
- ], FileManagerComponent.prototype, "fetch", void 0);
35
- __decorate([
36
- Input(),
37
- __metadata("design:type", Function)
38
- ], FileManagerComponent.prototype, "deleteFile", void 0);
39
- __decorate([
40
- Input(),
41
- __metadata("design:type", Function)
42
- ], FileManagerComponent.prototype, "deleteDirectory", void 0);
43
- __decorate([
44
- Input(),
45
- __metadata("design:type", Function)
46
- ], FileManagerComponent.prototype, "createDirectory", void 0);
47
- __decorate([
48
- Input(),
49
- __metadata("design:type", Function)
50
- ], FileManagerComponent.prototype, "download", void 0);
51
- __decorate([
52
- Input(),
53
- __metadata("design:type", Function)
54
- ], FileManagerComponent.prototype, "upload", void 0);
55
- FileManagerComponent = __decorate([
56
- Component({
57
- selector: 'fs-system-file-manager',
58
- template: "<fs-file-manager [config]=\"config\"></fs-file-manager>",
59
- styles: [""]
60
- }),
61
- __metadata("design:paramtypes", [])
62
- ], FileManagerComponent);
63
- export { FileManagerComponent };
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1tYW5hZ2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BmaXJlc3RpdGNoL3N5c3RlbS8iLCJzb3VyY2VzIjpbImFwcC9jb21wb25lbnRzL2ZpbGUtbWFuYWdlci9maWxlLW1hbmFnZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVV6RCxJQUFhLG9CQUFvQixHQUFqQyxNQUFhLG9CQUFvQjtJQVcvQixnQkFBZ0IsQ0FBQztJQUVqQixRQUFRO1FBQ04sSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVPLGtCQUFrQjtRQUN4QixJQUFJLENBQUMsTUFBTSxHQUFHO1lBQ1osS0FBSyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ2QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzFCLENBQUM7WUFDRCxVQUFVLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDbkIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQzlCLENBQUM7WUFDRCxlQUFlLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDeEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQ25DLENBQUM7WUFDRCxlQUFlLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDeEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQ25DLENBQUM7WUFDRCxRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDakIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdCLENBQUM7WUFDRCxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUU7Z0JBQ3JCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDakMsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDO0NBRUYsQ0FBQTtBQXRDVTtJQUFSLEtBQUssRUFBRTs4QkFBUSxRQUFRO21EQUFDO0FBQ2hCO0lBQVIsS0FBSyxFQUFFOzhCQUFhLFFBQVE7d0RBQUM7QUFDckI7SUFBUixLQUFLLEVBQUU7OEJBQWtCLFFBQVE7NkRBQUM7QUFDMUI7SUFBUixLQUFLLEVBQUU7OEJBQWtCLFFBQVE7NkRBQUM7QUFDMUI7SUFBUixLQUFLLEVBQUU7OEJBQVcsUUFBUTtzREFBQztBQUNuQjtJQUFSLEtBQUssRUFBRTs4QkFBUyxRQUFRO29EQUFDO0FBUGYsb0JBQW9CO0lBTGhDLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSx3QkFBd0I7UUFDbEMsbUVBQTRDOztLQUU3QyxDQUFDOztHQUNXLG9CQUFvQixDQXdDaEM7U0F4Q1ksb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBGc0ZpbGVNYW5hZ2VyQ29uZmlnIH0gZnJvbSAnQGZpcmVzdGl0Y2gvZmlsZS1tYW5hZ2VyJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2ZzLXN5c3RlbS1maWxlLW1hbmFnZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxlLW1hbmFnZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ZpbGUtbWFuYWdlci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWxlTWFuYWdlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpIGZldGNoOiBGdW5jdGlvbjtcclxuICBASW5wdXQoKSBkZWxldGVGaWxlOiBGdW5jdGlvbjtcclxuICBASW5wdXQoKSBkZWxldGVEaXJlY3Rvcnk6IEZ1bmN0aW9uO1xyXG4gIEBJbnB1dCgpIGNyZWF0ZURpcmVjdG9yeTogRnVuY3Rpb247XHJcbiAgQElucHV0KCkgZG93bmxvYWQ6IEZ1bmN0aW9uO1xyXG4gIEBJbnB1dCgpIHVwbG9hZDogRnVuY3Rpb247XHJcblxyXG4gIHB1YmxpYyBjb25maWc6IEZzRmlsZU1hbmFnZXJDb25maWc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5fY29uZmlnRmlsZU1hbmFnZXIoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NvbmZpZ0ZpbGVNYW5hZ2VyKCkge1xyXG4gICAgdGhpcy5jb25maWcgPSB7XHJcbiAgICAgIGZldGNoOiAocGF0aCkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZldGNoKHBhdGgpO1xyXG4gICAgICB9LFxyXG4gICAgICBkZWxldGVGaWxlOiAocGF0aCkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRlbGV0ZUZpbGUocGF0aClcclxuICAgICAgfSxcclxuICAgICAgZGVsZXRlRGlyZWN0b3J5OiAocGF0aCkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRlbGV0ZURpcmVjdG9yeShwYXRoKVxyXG4gICAgICB9LFxyXG4gICAgICBjcmVhdGVEaXJlY3Rvcnk6IChwYXRoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRGlyZWN0b3J5KHBhdGgpXHJcbiAgICAgIH0sXHJcbiAgICAgIGRvd25sb2FkOiAocGF0aCkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRvd25sb2FkKHBhdGgpO1xyXG4gICAgICB9LFxyXG4gICAgICB1cGxvYWQ6IChwYXRoLCBmaWxlKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudXBsb2FkKHBhdGgsIGZpbGUpO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbn1cclxuIl19
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@firestitch/file-manager";
4
+ export class FileManagerComponent {
5
+ constructor() { }
6
+ ngOnInit() {
7
+ this._configFileManager();
8
+ }
9
+ _configFileManager() {
10
+ this.config = {
11
+ fetch: (path) => {
12
+ return this.fetch(path);
13
+ },
14
+ deleteFile: (path) => {
15
+ return this.deleteFile(path);
16
+ },
17
+ deleteDirectory: (path) => {
18
+ return this.deleteDirectory(path);
19
+ },
20
+ createDirectory: (path) => {
21
+ return this.createDirectory(path);
22
+ },
23
+ download: (path) => {
24
+ return this.download(path);
25
+ },
26
+ upload: (path, file) => {
27
+ return this.upload(path, file);
28
+ }
29
+ };
30
+ }
31
+ }
32
+ FileManagerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FileManagerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
33
+ FileManagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: FileManagerComponent, selector: "fs-system-file-manager", inputs: { fetch: "fetch", deleteFile: "deleteFile", deleteDirectory: "deleteDirectory", createDirectory: "createDirectory", download: "download", upload: "upload" }, ngImport: i0, template: "<fs-file-manager [config]=\"config\"></fs-file-manager>", styles: [""], components: [{ type: i1.ɵa, selector: "fs-file-manager", inputs: ["config"] }] });
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FileManagerComponent, decorators: [{
35
+ type: Component,
36
+ args: [{
37
+ selector: 'fs-system-file-manager',
38
+ templateUrl: './file-manager.component.html',
39
+ styleUrls: ['./file-manager.component.scss']
40
+ }]
41
+ }], ctorParameters: function () { return []; }, propDecorators: { fetch: [{
42
+ type: Input
43
+ }], deleteFile: [{
44
+ type: Input
45
+ }], deleteDirectory: [{
46
+ type: Input
47
+ }], createDirectory: [{
48
+ type: Input
49
+ }], download: [{
50
+ type: Input
51
+ }], upload: [{
52
+ type: Input
53
+ }] } });
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1tYW5hZ2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9maWxlLW1hbmFnZXIvZmlsZS1tYW5hZ2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9maWxlLW1hbmFnZXIvZmlsZS1tYW5hZ2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFVekQsTUFBTSxPQUFPLG9CQUFvQjtJQVcvQixnQkFBZ0IsQ0FBQztJQUVqQixRQUFRO1FBQ04sSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVPLGtCQUFrQjtRQUN4QixJQUFJLENBQUMsTUFBTSxHQUFHO1lBQ1osS0FBSyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ2QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzFCLENBQUM7WUFDRCxVQUFVLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDbkIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQzlCLENBQUM7WUFDRCxlQUFlLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDeEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQ25DLENBQUM7WUFDRCxlQUFlLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDeEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQ25DLENBQUM7WUFDRCxRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDakIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdCLENBQUM7WUFDRCxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUU7Z0JBQ3JCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDakMsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDOztrSEF0Q1Usb0JBQW9CO3NHQUFwQixvQkFBb0Isb09DVmpDLHlEQUFxRDs0RkRVeEMsb0JBQW9CO2tCQUxoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFdBQVcsRUFBRSwrQkFBK0I7b0JBQzVDLFNBQVMsRUFBRSxDQUFDLCtCQUErQixDQUFDO2lCQUM3QzswRUFHVSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRnNGaWxlTWFuYWdlckNvbmZpZyB9IGZyb20gJ0BmaXJlc3RpdGNoL2ZpbGUtbWFuYWdlcic7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZnMtc3lzdGVtLWZpbGUtbWFuYWdlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxlLW1hbmFnZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9maWxlLW1hbmFnZXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBGaWxlTWFuYWdlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgZmV0Y2g6IEZ1bmN0aW9uO1xuICBASW5wdXQoKSBkZWxldGVGaWxlOiBGdW5jdGlvbjtcbiAgQElucHV0KCkgZGVsZXRlRGlyZWN0b3J5OiBGdW5jdGlvbjtcbiAgQElucHV0KCkgY3JlYXRlRGlyZWN0b3J5OiBGdW5jdGlvbjtcbiAgQElucHV0KCkgZG93bmxvYWQ6IEZ1bmN0aW9uO1xuICBASW5wdXQoKSB1cGxvYWQ6IEZ1bmN0aW9uO1xuXG4gIHB1YmxpYyBjb25maWc6IEZzRmlsZU1hbmFnZXJDb25maWc7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLl9jb25maWdGaWxlTWFuYWdlcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY29uZmlnRmlsZU1hbmFnZXIoKSB7XG4gICAgdGhpcy5jb25maWcgPSB7XG4gICAgICBmZXRjaDogKHBhdGgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmV0Y2gocGF0aCk7XG4gICAgICB9LFxuICAgICAgZGVsZXRlRmlsZTogKHBhdGgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVsZXRlRmlsZShwYXRoKVxuICAgICAgfSxcbiAgICAgIGRlbGV0ZURpcmVjdG9yeTogKHBhdGgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVsZXRlRGlyZWN0b3J5KHBhdGgpXG4gICAgICB9LFxuICAgICAgY3JlYXRlRGlyZWN0b3J5OiAocGF0aCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVEaXJlY3RvcnkocGF0aClcbiAgICAgIH0sXG4gICAgICBkb3dubG9hZDogKHBhdGgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZG93bmxvYWQocGF0aCk7XG4gICAgICB9LFxuICAgICAgdXBsb2FkOiAocGF0aCwgZmlsZSkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy51cGxvYWQocGF0aCwgZmlsZSk7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG59XG4iLCI8ZnMtZmlsZS1tYW5hZ2VyIFtjb25maWddPVwiY29uZmlnXCI+PC9mcy1maWxlLW1hbmFnZXI+Il19
@@ -0,0 +1,2 @@
1
+ export * from './file-manager.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvZmlsZS1tYW5hZ2VyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ZpbGUtbWFuYWdlci5jb21wb25lbnQnO1xuIl19
@@ -0,0 +1,2 @@
1
+ export * from './info.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvaW5mby9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9pbmZvLmNvbXBvbmVudCc7XG4iXX0=
@@ -1,37 +1,36 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { Component, ChangeDetectionStrategy, Input, ElementRef, ViewChild } from '@angular/core';
3
- let InfoComponent = 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
- __decorate([
21
- ViewChild('iframe'),
22
- __metadata("design:type", ElementRef)
23
- ], InfoComponent.prototype, "iframe", void 0);
24
- __decorate([
25
- Input(),
26
- __metadata("design:type", Function)
27
- ], InfoComponent.prototype, "load", void 0);
28
- InfoComponent = __decorate([
29
- Component({
30
- selector: 'fs-system-info',
31
- template: "<iframe #iframe></iframe>\r\n",
32
- changeDetection: ChangeDetectionStrategy.OnPush,
33
- styles: ["iframe{width:100%;border:0}"]
34
- })
35
- ], InfoComponent);
36
- export { InfoComponent };
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZmlyZXN0aXRjaC9zeXN0ZW0vIiwic291cmNlcyI6WyJhcHAvY29tcG9uZW50cy9pbmZvL2luZm8uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFHLEtBQUssRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQVVqSCxJQUFhLGFBQWEsR0FBMUIsTUFBYSxhQUFhO0lBT3hCLGVBQWU7UUFDYixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDO0lBRU8sS0FBSztRQUNYLElBQUksQ0FBQyxJQUFJLEVBQUU7YUFDVixTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUVsQixJQUFJLElBQUksa0RBQWtELENBQUM7WUFFM0QsTUFBTSxHQUFHLEdBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQztZQUNsRyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDWCxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNaLE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1lBQzNHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsR0FBRyxZQUFZLElBQUksQ0FBQztRQUMvRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRixDQUFBO0FBdEJDO0lBREMsU0FBUyxDQUFDLFFBQVEsQ0FBQzs4QkFDTCxVQUFVOzZDQUFDO0FBRWpCO0lBQVIsS0FBSyxFQUFFOzsyQ0FBb0M7QUFMakMsYUFBYTtJQU56QixTQUFTLENBQUM7UUFDVCxRQUFRLEVBQUUsZ0JBQWdCO1FBQzFCLHlDQUFrQztRQUVsQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7S0FDaEQsQ0FBQztHQUNXLGFBQWEsQ0F5QnpCO1NBekJZLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCAgSW5wdXQsIEVsZW1lbnRSZWYsIFZpZXdDaGlsZCwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdmcy1zeXN0ZW0taW5mbycsXHJcbiAgdGVtcGxhdGVVcmw6ICdpbmZvLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsgJ2luZm8uY29tcG9uZW50LnNjc3MnIF0sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbmZvQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2lmcmFtZScpIFxyXG4gIHB1YmxpYyBpZnJhbWU6IEVsZW1lbnRSZWY7XHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBsb2FkOiAoKSA9PiBPYnNlcnZhYmxlPGFueT47XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuX2xvYWQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2xvYWQoKSB7XHJcbiAgICB0aGlzLmxvYWQoKVxyXG4gICAgLnN1YnNjcmliZSgoaW5mbykgPT4ge1xyXG5cclxuICAgICAgaW5mbyArPSAnPHN0eWxlPmJvZHkgeyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfTwvc3R5bGU+JztcclxuXHJcbiAgICAgIGNvbnN0IGRvYyA9ICB0aGlzLmlmcmFtZS5uYXRpdmVFbGVtZW50LmNvbnRlbnREb2N1bWVudCB8fCB0aGlzLmlmcmFtZS5uYXRpdmVFbGVtZW50LmNvbnRlbnRXaW5kb3c7XHJcbiAgICAgIGRvYy5vcGVuKCk7XHJcbiAgICAgIGRvYy53cml0ZShpbmZvKTtcclxuICAgICAgZG9jLmNsb3NlKCk7XHJcbiAgICAgIGNvbnN0IHNjcm9sbEhlaWdodCA9ICh0aGlzLmlmcmFtZS5uYXRpdmVFbGVtZW50LmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbEhlaWdodCArIDEwMCk7XHJcbiAgICAgIHRoaXMuaWZyYW1lLm5hdGl2ZUVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gYCR7c2Nyb2xsSGVpZ2h0fXB4YDtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
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>\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvaW5mby9pbmZvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50cy9pbmZvL2luZm8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBRyxLQUFLLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBVWpILE1BQU0sT0FBTyxhQUFhO0lBT3hCLGVBQWU7UUFDYixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDO0lBRU8sS0FBSztRQUNYLElBQUksQ0FBQyxJQUFJLEVBQUU7YUFDVixTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUVsQixJQUFJLElBQUksa0RBQWtELENBQUM7WUFFM0QsTUFBTSxHQUFHLEdBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQztZQUNsRyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDWCxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hCLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNaLE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1lBQzNHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsR0FBRyxZQUFZLElBQUksQ0FBQztRQUMvRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OzJHQXhCVSxhQUFhOytGQUFiLGFBQWEsa0xDVjFCLDZCQUNBOzRGRFNhLGFBQWE7a0JBTnpCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsV0FBVyxFQUFFLHFCQUFxQjtvQkFDbEMsU0FBUyxFQUFFLENBQUUscUJBQXFCLENBQUU7b0JBQ3BDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRDs4QkFJUSxNQUFNO3NCQURaLFNBQVM7dUJBQUMsUUFBUTtnQkFHSCxJQUFJO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgIElucHV0LCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQsIEFmdGVyVmlld0luaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmcy1zeXN0ZW0taW5mbycsXG4gIHRlbXBsYXRlVXJsOiAnaW5mby5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWyAnaW5mby5jb21wb25lbnQuc2NzcycgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEluZm9Db21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcblxuICBAVmlld0NoaWxkKCdpZnJhbWUnKSBcbiAgcHVibGljIGlmcmFtZTogRWxlbWVudFJlZjtcblxuICBASW5wdXQoKSBwdWJsaWMgbG9hZDogKCkgPT4gT2JzZXJ2YWJsZTxhbnk+O1xuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLl9sb2FkKCk7XG4gIH1cblxuICBwcml2YXRlIF9sb2FkKCkge1xuICAgIHRoaXMubG9hZCgpXG4gICAgLnN1YnNjcmliZSgoaW5mbykgPT4ge1xuXG4gICAgICBpbmZvICs9ICc8c3R5bGU+Ym9keSB7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9PC9zdHlsZT4nO1xuXG4gICAgICBjb25zdCBkb2MgPSAgdGhpcy5pZnJhbWUubmF0aXZlRWxlbWVudC5jb250ZW50RG9jdW1lbnQgfHwgdGhpcy5pZnJhbWUubmF0aXZlRWxlbWVudC5jb250ZW50V2luZG93O1xuICAgICAgZG9jLm9wZW4oKTtcbiAgICAgIGRvYy53cml0ZShpbmZvKTtcbiAgICAgIGRvYy5jbG9zZSgpO1xuICAgICAgY29uc3Qgc2Nyb2xsSGVpZ2h0ID0gKHRoaXMuaWZyYW1lLm5hdGl2ZUVsZW1lbnQuY29udGVudFdpbmRvdy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsSGVpZ2h0ICsgMTAwKTtcbiAgICAgIHRoaXMuaWZyYW1lLm5hdGl2ZUVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gYCR7c2Nyb2xsSGVpZ2h0fXB4YDtcbiAgICB9KTtcbiAgfVxufVxuIiwiPGlmcmFtZSAjaWZyYW1lPjwvaWZyYW1lPlxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './process.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudHMvcHJvY2Vzcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wcm9jZXNzLmNvbXBvbmVudCc7XG4iXX0=