ngx-techlify-core 14.14.0 → 14.16.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.
- package/esm2020/lib/audit-log/audit-log-list/audit-log-list.component.mjs +108 -46
- package/esm2020/lib/audit-log/audit-log-list/audit-log-list.module.mjs +8 -4
- package/esm2020/lib/audit-log/audit-log-list-filter/audit-log-list-filter.component.mjs +31 -40
- package/esm2020/lib/audit-log/audit-log-list-filter/audit-log-list-filter.module.mjs +7 -3
- package/esm2020/lib/audit-log/audit-log.service.mjs +18 -0
- package/esm2020/lib/audit-log/audit-logs-view-model/audit-logs-view-model.component.mjs +3 -3
- package/esm2020/lib/change-password/change-password.component.mjs +3 -3
- package/esm2020/lib/export-excel/export-excel-button/export-excel-button.component.mjs +4 -4
- package/esm2020/lib/login/login.component.mjs +3 -3
- package/esm2020/lib/user/user-view.component.mjs +1 -1
- package/esm2020/lib/user/users-view-all.component.mjs +48 -58
- package/fesm2015/ngx-techlify-core.mjs +264 -213
- package/fesm2015/ngx-techlify-core.mjs.map +1 -1
- package/fesm2020/ngx-techlify-core.mjs +262 -204
- package/fesm2020/ngx-techlify-core.mjs.map +1 -1
- package/lib/audit-log/audit-log-list/audit-log-list.component.d.ts +15 -12
- package/lib/audit-log/audit-log-list/audit-log-list.module.d.ts +2 -1
- package/lib/audit-log/audit-log-list-filter/audit-log-list-filter.component.d.ts +9 -9
- package/lib/audit-log/audit-log-list-filter/audit-log-list-filter.module.d.ts +2 -1
- package/lib/audit-log/audit-log.service.d.ts +8 -0
- package/lib/user/users-view-all.component.d.ts +6 -10
- package/package.json +1 -1
|
@@ -2,31 +2,88 @@ import { __decorate } from "tslib";
|
|
|
2
2
|
import { Component, Input, ViewChild } from '@angular/core';
|
|
3
3
|
import { MatSort } from '@angular/material/sort';
|
|
4
4
|
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
|
5
|
+
import { TechlifyListingControllerInterface } from '../../base-model';
|
|
6
|
+
import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
|
|
5
7
|
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "
|
|
7
|
-
import * as i2 from "@angular/
|
|
8
|
-
import * as i3 from "@angular/
|
|
9
|
-
import * as i4 from "
|
|
10
|
-
import * as i5 from "../../
|
|
11
|
-
import * as i6 from "@angular/
|
|
12
|
-
import * as i7 from "
|
|
13
|
-
import * as i8 from "@angular/material/
|
|
14
|
-
import * as i9 from "
|
|
15
|
-
import * as i10 from "
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
8
|
+
import * as i1 from "@angular/router";
|
|
9
|
+
import * as i2 from "@angular/platform-browser";
|
|
10
|
+
import * as i3 from "@angular/forms";
|
|
11
|
+
import * as i4 from "../audit-log.service";
|
|
12
|
+
import * as i5 from "../../request-helper/request-helper.service";
|
|
13
|
+
import * as i6 from "@angular/common";
|
|
14
|
+
import * as i7 from "../../export-excel/export-excel-button/export-excel-button.component";
|
|
15
|
+
import * as i8 from "@angular/material/icon";
|
|
16
|
+
import * as i9 from "@angular/material/sort";
|
|
17
|
+
import * as i10 from "@angular/material/table";
|
|
18
|
+
import * as i11 from "@angular/material/card";
|
|
19
|
+
import * as i12 from "@angular/material/tooltip";
|
|
20
|
+
import * as i13 from "ngx-infinite-scroll";
|
|
21
|
+
import * as i14 from "../audit-log-list-filter/audit-log-list-filter.component";
|
|
22
|
+
import * as i15 from "@angular/material/progress-bar";
|
|
23
|
+
let AuditLogListComponent = class AuditLogListComponent extends TechlifyListingControllerInterface {
|
|
24
|
+
constructor(router, sanitizer, formBuilder, auditLogService, requestHelperService, activatedRoute) {
|
|
25
|
+
super();
|
|
19
26
|
this.router = router;
|
|
20
27
|
this.sanitizer = sanitizer;
|
|
21
|
-
this.
|
|
28
|
+
this.formBuilder = formBuilder;
|
|
29
|
+
this.auditLogService = auditLogService;
|
|
30
|
+
this.requestHelperService = requestHelperService;
|
|
31
|
+
this.activatedRoute = activatedRoute;
|
|
22
32
|
this.showFilter = true;
|
|
23
33
|
this.showExportButtons = true;
|
|
24
|
-
this.
|
|
34
|
+
this.disableFilterPatchingFromUrl = false;
|
|
25
35
|
this.filters = { sort_by: 'created_at|desc' };
|
|
26
|
-
this.displayedColumns = [
|
|
36
|
+
this.displayedColumns = [
|
|
37
|
+
'index',
|
|
38
|
+
'id',
|
|
39
|
+
'created_at',
|
|
40
|
+
'object_type',
|
|
41
|
+
'object_id',
|
|
42
|
+
'action',
|
|
43
|
+
'changes',
|
|
44
|
+
'user.email',
|
|
45
|
+
'actions',
|
|
46
|
+
];
|
|
47
|
+
this.filterForm = this.formBuilder.group({
|
|
48
|
+
action: [''],
|
|
49
|
+
duration: [''],
|
|
50
|
+
date_from: [''],
|
|
51
|
+
date_to: [''],
|
|
52
|
+
model_search: [''],
|
|
53
|
+
object_type: [''],
|
|
54
|
+
object_id: [''],
|
|
55
|
+
user_id: [''],
|
|
56
|
+
sort_by: 'created_at|desc',
|
|
57
|
+
creator_ids: [''],
|
|
58
|
+
});
|
|
27
59
|
}
|
|
28
60
|
ngOnInit() {
|
|
29
61
|
this.initializeData();
|
|
62
|
+
/**
|
|
63
|
+
* Disable filter patching from URL so that when this component
|
|
64
|
+
* is used in a dialog, it doesn't interact with the URL
|
|
65
|
+
*/
|
|
66
|
+
if (!this.disableFilterPatchingFromUrl) {
|
|
67
|
+
this.filterForm.valueChanges.subscribe({
|
|
68
|
+
next: (value) => {
|
|
69
|
+
const params = this.requestHelperService.convertToFormData(value);
|
|
70
|
+
this.requestHelperService.updateQueryParams(params);
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
// update form with query params
|
|
74
|
+
this.requestHelperService.updateFormWithQueryParams(this.filterForm, {
|
|
75
|
+
duration: { number: true },
|
|
76
|
+
object_type: { multiple: true },
|
|
77
|
+
action: { multiple: true },
|
|
78
|
+
creator_ids: { multiple: true },
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
// listen for route change
|
|
82
|
+
this.activatedRoute.queryParams
|
|
83
|
+
.pipe(debounceTime(800), distinctUntilChanged())
|
|
84
|
+
.subscribe((val) => {
|
|
85
|
+
this.reload();
|
|
86
|
+
});
|
|
30
87
|
if (this.sort) {
|
|
31
88
|
this.sort.sortChange.pipe(untilDestroyed(this))
|
|
32
89
|
.subscribe((value) => {
|
|
@@ -35,13 +92,13 @@ let AuditLogListComponent = class AuditLogListComponent {
|
|
|
35
92
|
}
|
|
36
93
|
}
|
|
37
94
|
get excelData() {
|
|
38
|
-
if (this.
|
|
39
|
-
return this.
|
|
95
|
+
if (this.models.length > 0) {
|
|
96
|
+
return this.models.map(item => {
|
|
40
97
|
return {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
98
|
+
Type: item?.object_type,
|
|
99
|
+
Action: item?.action,
|
|
100
|
+
Data: JSON.stringify(item?.data || {}),
|
|
101
|
+
Object: JSON.stringify(item?.object || {}),
|
|
45
102
|
'Pre-Object': JSON.stringify(item?.pre_object || {}),
|
|
46
103
|
'Created At': new Date(item?.created_at).toDateString(),
|
|
47
104
|
'Created By': item?.user?.email
|
|
@@ -59,20 +116,18 @@ let AuditLogListComponent = class AuditLogListComponent {
|
|
|
59
116
|
logClicked(log) {
|
|
60
117
|
this.router.navigate(['/system/audit-logs/log-view', log.id]);
|
|
61
118
|
}
|
|
62
|
-
|
|
119
|
+
initializeData() {
|
|
120
|
+
let filters = {};
|
|
63
121
|
if (this.objectType) {
|
|
64
|
-
|
|
122
|
+
filters = { ...this.filters, object_type: this.objectType };
|
|
65
123
|
}
|
|
66
124
|
if (this.objectId) {
|
|
67
|
-
|
|
125
|
+
filters = { ...this.filters, object_id: this.objectId };
|
|
68
126
|
}
|
|
69
127
|
if (this.userId) {
|
|
70
|
-
|
|
128
|
+
filters = { ...this.filters, user_id: this.userId };
|
|
71
129
|
}
|
|
72
|
-
|
|
73
|
-
this.auditLogList = this.auditLogList.concat(result.data);
|
|
74
|
-
this.pageEvent.page = result.current_page;
|
|
75
|
-
this.pageEvent.lastPage = result.last_page;
|
|
130
|
+
this.filterForm.patchValue(filters);
|
|
76
131
|
}
|
|
77
132
|
filterChange(event) {
|
|
78
133
|
if (this.showFilter) {
|
|
@@ -85,17 +140,6 @@ let AuditLogListComponent = class AuditLogListComponent {
|
|
|
85
140
|
this.reload();
|
|
86
141
|
}
|
|
87
142
|
}
|
|
88
|
-
onScroll() {
|
|
89
|
-
if (this.pageEvent.lastPage > this.pageEvent.page) {
|
|
90
|
-
this.pageEvent.page += 1;
|
|
91
|
-
this.initializeData();
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
reload() {
|
|
95
|
-
this.auditLogList = [];
|
|
96
|
-
this.pageEvent = { page: 1, perPage: 25, lastPage: 1 };
|
|
97
|
-
this.initializeData();
|
|
98
|
-
}
|
|
99
143
|
getTransformedChanges(log) {
|
|
100
144
|
if (log?.data?.changes) {
|
|
101
145
|
const changes = Object.keys(log?.data?.changes) || [];
|
|
@@ -112,17 +156,33 @@ let AuditLogListComponent = class AuditLogListComponent {
|
|
|
112
156
|
ngOnDestroy() {
|
|
113
157
|
// Needed for automatic unsubscribe with untilDestroyed
|
|
114
158
|
}
|
|
159
|
+
loadData() {
|
|
160
|
+
const params = {
|
|
161
|
+
...this.requestHelperService.convertToFormData(this.filterForm.value),
|
|
162
|
+
page: this.page,
|
|
163
|
+
perPage: this.perPage,
|
|
164
|
+
};
|
|
165
|
+
this.isWorking = true;
|
|
166
|
+
this.auditLogService.index(params).subscribe({
|
|
167
|
+
next: (response) => {
|
|
168
|
+
this.isWorking = false;
|
|
169
|
+
this.models = this.models?.concat(response?.data);
|
|
170
|
+
this.lastPage = response?.last_page;
|
|
171
|
+
},
|
|
172
|
+
error: () => (this.isWorking = false)
|
|
173
|
+
});
|
|
174
|
+
}
|
|
115
175
|
};
|
|
116
|
-
AuditLogListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: AuditLogListComponent, deps: [{ token: i1.
|
|
117
|
-
AuditLogListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: AuditLogListComponent, selector: "app-audit-log-list", inputs: { objectId: "objectId", objectType: "objectType", showFilter: "showFilter", showExportButtons: "showExportButtons", userId: "userId" }, viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true, static: true }], ngImport: i0, template: "<
|
|
176
|
+
AuditLogListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: AuditLogListComponent, deps: [{ token: i1.Router }, { token: i2.DomSanitizer }, { token: i3.FormBuilder }, { token: i4.AuditLogService }, { token: i5.RequestHelperService }, { token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
|
|
177
|
+
AuditLogListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.7", type: AuditLogListComponent, selector: "app-audit-log-list", inputs: { objectId: "objectId", objectType: "objectType", showFilter: "showFilter", showExportButtons: "showExportButtons", userId: "userId", disableFilterPatchingFromUrl: "disableFilterPatchingFromUrl" }, viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<mat-card class=\"mb-3\">\n <mat-card-content>\n <div class=\"d-flex justify-content-between align-items-center gap-3\">\n <div class=\"d-flex justify-content-start align-items-canter gap-2\" style=\"min-width: 200px\">\n <h2 class=\"mb-0\">\n Audit Logs\n </h2>\n <app-export-excel-button\n *ngIf=\"showExportButtons\"\n class=\"mt-1\"\n matTooltip=\"Export\"\n elementId=\"audit-logs-table\" name=\"AuditLogs\" [data]=\"excelData\">\n </app-export-excel-button>\n </div>\n\n <app-audit-log-list-filter\n class=\"w-100\"\n *ngIf=\"showFilter\"\n [filterForm]=\"filterForm\"\n (valueChange)=\"filterChange($event)\"\n [objectType]=\"objectType\"\n [objectId]=\"objectId\"\n ></app-audit-log-list-filter>\n </div>\n </mat-card-content>\n</mat-card>\n\n<mat-card class=\"p-0\">\n <mat-card-content>\n <table\n mat-table\n [dataSource]=\"models\" matSort class=\"w-100\"\n id=\"audit-logs-table\"\n infiniteScroll\n [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\"\n [fromRoot]=\"true\"\n >\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let i = index\"> {{ i+1 }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"id\">\n <th mat-header-cell *matHeaderCellDef> Log # </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n {{auditLog?.id}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"object_type\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Model Type </th>\n <td mat-cell *matCellDef=\"let auditLog;\"> {{ auditLog.object_type }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"object_id\">\n <th mat-header-cell *matHeaderCellDef> Model # </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n {{auditLog?.object_id}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"action\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Action </th>\n <td mat-cell *matCellDef=\"let auditLog;\"> {{ auditLog?.action }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"created_at\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Created At </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n {{auditLog?.created_at | date:'medium'}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"user.email\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Created By </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n <p class=\"mb-0\">{{auditLog?.user?.name}}</p>\n <small class=\"text-secondary\">{{ auditLog?.user?.email }}</small>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"changes\">\n <th mat-header-cell *matHeaderCellDef> Changes</th>\n <td mat-cell *matCellDef=\"let auditLog\">\n <div\n class=\"px-3\"\n [innerHtml]=\"sanitizer.bypassSecurityTrustHtml(getTransformedChanges(auditLog))\">\n </div>\n </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n <mat-icon (click)=\"logClicked(auditLog);$event.stopPropagation();\" >visibility</mat-icon>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky:true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card-content>\n</mat-card>\n", styles: ["tr.row-hover:hover{background-color:#dcdcdc}.scroll-container{height:800px;overflow-y:auto}:host ::ng-deep #old-value{margin-right:5px;background-color:#f08080}:host ::ng-deep #new-value{background-color:#98fb98}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.ExportExcelButtonComponent, selector: "app-export-excel-button", inputs: ["name", "data"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i9.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i10.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i10.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i10.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i10.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i10.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i10.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i10.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i10.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i10.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i10.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i11.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { kind: "directive", type: i11.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { kind: "directive", type: i12.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: i13.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "component", type: i14.AuditLogListFilterComponent, selector: "app-audit-log-list-filter", inputs: ["filterForm", "objectId", "objectType"], outputs: ["valueChange"] }, { kind: "component", type: i15.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "pipe", type: i6.DatePipe, name: "date" }] });
|
|
118
178
|
AuditLogListComponent = __decorate([
|
|
119
179
|
UntilDestroy()
|
|
120
180
|
], AuditLogListComponent);
|
|
121
181
|
export { AuditLogListComponent };
|
|
122
182
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: AuditLogListComponent, decorators: [{
|
|
123
183
|
type: Component,
|
|
124
|
-
args: [{ selector: 'app-audit-log-list', template: "<
|
|
125
|
-
}], ctorParameters: function () { return [{ type: i1.
|
|
184
|
+
args: [{ selector: 'app-audit-log-list', template: "<mat-card class=\"mb-3\">\n <mat-card-content>\n <div class=\"d-flex justify-content-between align-items-center gap-3\">\n <div class=\"d-flex justify-content-start align-items-canter gap-2\" style=\"min-width: 200px\">\n <h2 class=\"mb-0\">\n Audit Logs\n </h2>\n <app-export-excel-button\n *ngIf=\"showExportButtons\"\n class=\"mt-1\"\n matTooltip=\"Export\"\n elementId=\"audit-logs-table\" name=\"AuditLogs\" [data]=\"excelData\">\n </app-export-excel-button>\n </div>\n\n <app-audit-log-list-filter\n class=\"w-100\"\n *ngIf=\"showFilter\"\n [filterForm]=\"filterForm\"\n (valueChange)=\"filterChange($event)\"\n [objectType]=\"objectType\"\n [objectId]=\"objectId\"\n ></app-audit-log-list-filter>\n </div>\n </mat-card-content>\n</mat-card>\n\n<mat-card class=\"p-0\">\n <mat-card-content>\n <table\n mat-table\n [dataSource]=\"models\" matSort class=\"w-100\"\n id=\"audit-logs-table\"\n infiniteScroll\n [infiniteScrollDistance]=\"2\"\n [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\"\n [fromRoot]=\"true\"\n >\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> # </th>\n <td mat-cell *matCellDef=\"let i = index\"> {{ i+1 }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"id\">\n <th mat-header-cell *matHeaderCellDef> Log # </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n {{auditLog?.id}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"object_type\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Model Type </th>\n <td mat-cell *matCellDef=\"let auditLog;\"> {{ auditLog.object_type }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"object_id\">\n <th mat-header-cell *matHeaderCellDef> Model # </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n {{auditLog?.object_id}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"action\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Action </th>\n <td mat-cell *matCellDef=\"let auditLog;\"> {{ auditLog?.action }} </td>\n </ng-container>\n\n <ng-container matColumnDef=\"created_at\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Created At </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n {{auditLog?.created_at | date:'medium'}}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"user.email\">\n <th mat-header-cell *matHeaderCellDef mat-sort-header> Created By </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n <p class=\"mb-0\">{{auditLog?.user?.name}}</p>\n <small class=\"text-secondary\">{{ auditLog?.user?.email }}</small>\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"changes\">\n <th mat-header-cell *matHeaderCellDef> Changes</th>\n <td mat-cell *matCellDef=\"let auditLog\">\n <div\n class=\"px-3\"\n [innerHtml]=\"sanitizer.bypassSecurityTrustHtml(getTransformedChanges(auditLog))\">\n </div>\n </td>\n </ng-container>\n\n <!-- Actions Column -->\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef> Actions </th>\n <td mat-cell *matCellDef=\"let auditLog\">\n <mat-icon (click)=\"logClicked(auditLog);$event.stopPropagation();\" >visibility</mat-icon>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns; sticky:true\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card-content>\n</mat-card>\n", styles: ["tr.row-hover:hover{background-color:#dcdcdc}.scroll-container{height:800px;overflow-y:auto}:host ::ng-deep #old-value{margin-right:5px;background-color:#f08080}:host ::ng-deep #new-value{background-color:#98fb98}\n"] }]
|
|
185
|
+
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.DomSanitizer }, { type: i3.FormBuilder }, { type: i4.AuditLogService }, { type: i5.RequestHelperService }, { type: i1.ActivatedRoute }]; }, propDecorators: { objectId: [{
|
|
126
186
|
type: Input
|
|
127
187
|
}], objectType: [{
|
|
128
188
|
type: Input
|
|
@@ -132,8 +192,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
|
|
|
132
192
|
type: Input
|
|
133
193
|
}], userId: [{
|
|
134
194
|
type: Input
|
|
195
|
+
}], disableFilterPatchingFromUrl: [{
|
|
196
|
+
type: Input
|
|
135
197
|
}], sort: [{
|
|
136
198
|
type: ViewChild,
|
|
137
199
|
args: [MatSort, { static: true }]
|
|
138
200
|
}] } });
|
|
139
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtbG9nLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9hdWRpdC1sb2cvYXVkaXQtbG9nLWxpc3QvYXVkaXQtbG9nLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9hdWRpdC1sb2cvYXVkaXQtbG9nLWxpc3QvYXVkaXQtbG9nLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJL0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7Ozs7OztJQVd4RCxxQkFBcUIsU0FBckIscUJBQXFCO0lBZWhDLFlBQ1UsV0FBd0IsRUFDeEIsTUFBYyxFQUNmLFNBQXVCO1FBRnRCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZixjQUFTLEdBQVQsU0FBUyxDQUFjO1FBaEJoQyxpQkFBWSxHQUFVLEVBQUUsQ0FBQztRQUdoQixlQUFVLEdBQVksSUFBSSxDQUFDO1FBQzNCLHNCQUFpQixHQUFZLElBQUksQ0FBQztRQUczQyxjQUFTLEdBQWMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQzdELFlBQU8sR0FBUSxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxDQUFDO1FBQzlDLHFCQUFnQixHQUFVLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUs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QUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3ksIElucHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTWF0U29ydCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHsgVW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQgeyBQYWdlRXZlbnQgfSBmcm9tICcuLi8uLi9kYXRhLXRhYmxlL2RhdGEtdGFibGUubW9kZWwnO1xuaW1wb3J0IHsgRGF0YU1hbmFnZXIgfSBmcm9tICcuLi8uLi9jb3JlL2RhdGFNYW5hZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5cbkBVbnRpbERlc3Ryb3koKVxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWF1ZGl0LWxvZy1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2F1ZGl0LWxvZy1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXVkaXQtbG9nLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQXVkaXRMb2dMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIGF1ZGl0TG9nTGlzdDogYW55W10gPSBbXTtcbiAgQElucHV0KCkgb2JqZWN0SWQ6IGFueTtcbiAgQElucHV0KCkgb2JqZWN0VHlwZTogYW55O1xuICBASW5wdXQoKSBzaG93RmlsdGVyOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgc2hvd0V4cG9ydEJ1dHRvbnM6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSB1c2VySWQ6IGFueTtcblxuICBwYWdlRXZlbnQ6IFBhZ2VFdmVudCA9IHsgcGFnZTogMSwgcGVyUGFnZTogMjUsIGxhc3RQYWdlOiAxIH07XG4gIGZpbHRlcnM6IGFueSA9IHsgc29ydF9ieTogJ2NyZWF0ZWRfYXR8ZGVzYycgfTtcbiAgZGlzcGxheWVkQ29sdW1uczogYW55W10gPSBbJ2luZGV4JywgJ2lkJywgJ29iamVjdF90eXBlJywgJ29iamVjdF9pZCcsICdhY3Rpb24nLCAnY2hhbmdlcycsICdjcmVhdGVkX2F0JywgJ3VzZXIuZW1haWwnXTtcblxuICBAVmlld0NoaWxkKE1hdFNvcnQsIHsgc3RhdGljOiB0cnVlIH0pIHNvcnQ6IE1hdFNvcnQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkYXRhTWFuYWdlcjogRGF0YU1hbmFnZXIsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwdWJsaWMgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXJcbiAgKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcblxuICAgIHRoaXMuaW5pdGlhbGl6ZURhdGEoKTtcblxuICAgIGlmICh0aGlzLnNvcnQpIHtcbiAgICAgIHRoaXMuc29ydC5zb3J0Q2hhbmdlLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpXG4gICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlOiBhbnkpID0+IHtcbiAgICAgICAgICB0aGlzLmNoYW5nZVNvcnQodmFsdWUpO1xuICAgICAgICB9KVxuICAgIH1cblxuICB9XG5cbiAgZ2V0IGV4Y2VsRGF0YSgpOiBhbnlbXSB7XG4gICAgaWYgKHRoaXMuYXVkaXRMb2dMaXN0Lmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiB0aGlzLmF1ZGl0TG9nTGlzdC5tYXAoaXRlbSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgJ1R5cGUnOiBpdGVtPy5vYmplY3RfdHlwZSxcbiAgICAgICAgICAnQWN0aW9uJzogaXRlbT8uYWN0aW9uLFxuICAgICAgICAgICdEYXRhJzogSlNPTi5zdHJpbmdpZnkoaXRlbT8uZGF0YSB8fCB7fSksXG4gICAgICAgICAgJ09iamVjdCc6IEpTT04uc3RyaW5naWZ5KGl0ZW0/Lm9iamVjdCB8fCB7fSksXG4gICAgICAgICAgJ1ByZS1PYmplY3QnOiBKU09OLnN0cmluZ2lmeShpdGVtPy5wcmVfb2JqZWN0IHx8IHt9KSxcbiAgICAgICAgICAnQ3JlYXRlZCBBdCc6IG5ldyBEYXRlKGl0ZW0/LmNyZWF0ZWRfYXQpLnRvRGF0ZVN0cmluZygpLFxuICAgICAgICAgICdDcmVhdGVkIEJ5JzogaXRlbT8udXNlcj8uZW1haWxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH1cblxuICBjaGFuZ2VTb3J0KGV2ZW50OiBhbnkpIHtcbiAgICBpZiAoZXZlbnQuZGlyZWN0aW9uKSB7XG4gICAgICB0aGlzLmZpbHRlcnMuc29ydF9ieSA9IGAke2V2ZW50LmFjdGl2ZX18JHtldmVudC5kaXJlY3Rpb259YDtcbiAgICAgIHRoaXMucmVsb2FkKCk7XG4gICAgfVxuICB9XG5cbiAgbG9nQ2xpY2tlZChsb2c6IGFueSkge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL3N5c3RlbS9hdWRpdC1sb2dzL2xvZy12aWV3JywgbG9nLmlkXSk7XG4gIH1cblxuXG4gIGFzeW5jIGluaXRpYWxpemVEYXRhKCkge1xuICAgIGlmICh0aGlzLm9iamVjdFR5cGUpIHtcbiAgICAgIHRoaXMuZmlsdGVycyA9IHsgLi4udGhpcy5maWx0ZXJzLCBvYmplY3RfdHlwZTogdGhpcy5vYmplY3RUeXBlIH1cbiAgICB9XG4gICAgaWYgKHRoaXMub2JqZWN0SWQpIHtcbiAgICAgIHRoaXMuZmlsdGVycyA9IHsgLi4udGhpcy5maWx0ZXJzLCBvYmplY3RfaWQ6IHRoaXMub2JqZWN0SWQgfVxuICAgIH1cbiAgICBpZiAodGhpcy51c2VySWQpIHtcbiAgICAgIHRoaXMuZmlsdGVycyA9IHsgLi4udGhpcy5maWx0ZXJzLCB1c2VyX2lkOiB0aGlzLnVzZXJJZCB9XG4gICAgfVxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZGF0YU1hbmFnZXIuR0VUKGBhcGkvYXVkaXQtbG9nc2AsIHsgLi4udGhpcy5maWx0ZXJzLCAuLi50aGlzLnBhZ2VFdmVudCB9KTtcbiAgICB0aGlzLmF1ZGl0TG9nTGlzdCA9IHRoaXMuYXVkaXRMb2dMaXN0LmNvbmNhdChyZXN1bHQuZGF0YSk7XG4gICAgdGhpcy5wYWdlRXZlbnQucGFnZSA9IHJlc3VsdC5jdXJyZW50X3BhZ2U7XG4gICAgdGhpcy5wYWdlRXZlbnQubGFzdFBhZ2UgPSByZXN1bHQubGFzdF9wYWdlO1xuICB9XG5cbiAgZmlsdGVyQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICBpZiAodGhpcy5zaG93RmlsdGVyKSB7XG4gICAgICB0aGlzLmZpbHRlcnMgPSB7XG4gICAgICAgIC4uLnRoaXMuZmlsdGVycyxcbiAgICAgICAgLi4uZXZlbnQsXG4gICAgICAgIG9iamVjdF90eXBlOiB0aGlzLm9iamVjdFR5cGUgfHwgZXZlbnQ/Lm9iamVjdF90eXBlIHx8ICcnLFxuICAgICAgICBvYmplY3RfaWQ6IHRoaXMub2JqZWN0SWQgfHwgJycsXG4gICAgICB9O1xuICAgICAgdGhpcy5yZWxvYWQoKTtcbiAgICB9XG4gIH1cblxuICBvblNjcm9sbCgpIHtcbiAgICBpZiAodGhpcy5wYWdlRXZlbnQubGFzdFBhZ2UgPiB0aGlzLnBhZ2VFdmVudC5wYWdlKSB7XG4gICAgICB0aGlzLnBhZ2VFdmVudC5wYWdlICs9IDE7XG4gICAgICB0aGlzLmluaXRpYWxpemVEYXRhKCk7XG4gICAgfVxuICB9XG5cbiAgcmVsb2FkKCkge1xuICAgIHRoaXMuYXVkaXRMb2dMaXN0ID0gW107XG4gICAgdGhpcy5wYWdlRXZlbnQgPSB7IHBhZ2U6IDEsIHBlclBhZ2U6IDI1LCBsYXN0UGFnZTogMSB9O1xuICAgIHRoaXMuaW5pdGlhbGl6ZURhdGEoKTtcbiAgfVxuXG4gIGdldFRyYW5zZm9ybWVkQ2hhbmdlcyhsb2c6IGFueSkge1xuICAgIGlmIChsb2c/LmRhdGE/LmNoYW5nZXMpIHtcbiAgICAgIGNvbnN0IGNoYW5nZXMgPSBPYmplY3Qua2V5cyhsb2c/LmRhdGE/LmNoYW5nZXMpIHx8IFtdO1xuICAgICAgbGV0IHZhbHVlID0gJzxkaXY+JztcbiAgICAgIGNoYW5nZXMuZm9yRWFjaCgoa2V5OiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgZGlzcGxheUF0dHJpYnV0ZSA9IChrZXkgYXMgc3RyaW5nKS5zcGxpdCgnXycpLm1hcCh4ID0+IHguY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB4LnNsaWNlKDEpKS5qb2luKCcgJyk7XG4gICAgICAgIHZhbHVlID0gYCR7dmFsdWV9IDxkaXY+PGI+JHtkaXNwbGF5QXR0cmlidXRlfTo8L2I+IDxzcGFuIGlkPVwib2xkLXZhbHVlXCI+JHtsb2c/LnByZV9vYmplY3Rba2V5XSA/PyAnJ308L3NwYW4+PHNwYW4gaWQ9XCJuZXctdmFsdWVcIj4ke2xvZz8ub2JqZWN0W2tleV0gPz8gJyd9PC9zcGFuPjwvZGl2PmA7XG4gICAgICB9KTtcbiAgICAgIHZhbHVlID0gYCR7dmFsdWV9IDwvZGl2PmA7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIC8vIE5lZWRlZCBmb3IgYXV0b21hdGljIHVuc3Vic2NyaWJlIHdpdGggdW50aWxEZXN0cm95ZWRcbiAgfVxufVxuIiwiPGRpdiBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0QWxpZ249XCJzdGFydFwiIGNsYXNzPVwibWF0LXR5cG9ncmFwaHlcIj5cblxuICAgIDxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEFsaWduPVwic3RhcnRcIiBmeExheW91dEdhcD1cIjEuNXJlbVwiIGNsYXNzPVwicC0zXCI+XG4gICAgICAgIDxoMiBjbGFzcz1cImZvbnQtd2VpZ2h0LWJvbGRcIj5cbiAgICAgICAgICAgIEF1ZGl0IExvZ3NcbiAgICAgICAgPC9oMj5cblxuICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93IHdyYXBcIiBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCI+XG4gICAgICAgICAgICA8YXBwLWF1ZGl0LWxvZy1saXN0LWZpbHRlciAqbmdJZj1cInNob3dGaWx0ZXJcIiAodmFsdWVDaGFuZ2UpPVwiZmlsdGVyQ2hhbmdlKCRldmVudClcIiBbb2JqZWN0VHlwZV09XCJvYmplY3RUeXBlXCJcbiAgICAgICAgICAgICAgICBbb2JqZWN0SWRdPVwib2JqZWN0SWRcIj48L2FwcC1hdWRpdC1sb2ctbGlzdC1maWx0ZXI+XG4gICAgICAgICAgICA8c3BhbiBmeEZsZXg+PC9zcGFuPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd0V4cG9ydEJ1dHRvbnNcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWwtNFwiPlxuICAgICAgICAgICAgICAgICAgICA8YXBwLWV4cG9ydC1leGNlbC1idXR0b24gZWxlbWVudElkPVwiYXVkaXQtbG9ncy10YWJsZVwiIG5hbWU9XCJBdWRpdExvZ3NcIiBbZGF0YV09XCJleGNlbERhdGFcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9hcHAtZXhwb3J0LWV4Y2VsLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxzZWN0aW9uIGNsYXNzPVwic2Nyb2xsLWNvbnRhaW5lclwiIGluZmluaXRlU2Nyb2xsIFtpbmZpbml0ZVNjcm9sbERpc3RhbmNlXT1cIjJcIiBbaW5maW5pdGVTY3JvbGxUaHJvdHRsZV09XCI1MFwiXG4gICAgICAgIChzY3JvbGxlZCk9XCJvblNjcm9sbCgpXCIgW3Njcm9sbFdpbmRvd109XCJmYWxzZVwiPlxuICAgICAgICA8dGFibGUgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cImF1ZGl0TG9nTGlzdFwiIG1hdFNvcnQgY2xhc3M9XCJ3LTEwMFwiIG11bHRpVGVtcGxhdGVEYXRhUm93cyBpZD1cImF1ZGl0LWxvZ3MtdGFibGVcIj5cblxuICAgICAgICAgICAgPCEtLSBJbmRleCBDb2x1bW4gLS0+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImluZGV4XCI+XG4gICAgICAgICAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gIyA8L3RoPlxuICAgICAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBhdWRpdExvZzsgbGV0IGkgPSBkYXRhSW5kZXhcIj4ge3sgaSsxIH19IDwvdGQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJpZFwiPlxuICAgICAgICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IExvZyAjIDwvdGg+XG4gICAgICAgICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGF1ZGl0TG9nXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7YXVkaXRMb2c/LmlkfX1cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwib2JqZWN0X3R5cGVcIj5cbiAgICAgICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlcj4gTW9kZWwgPC90aD5cbiAgICAgICAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgYXVkaXRMb2c7XCI+IHt7IGF1ZGl0TG9nLm9iamVjdF90eXBlIH19IDwvdGQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJvYmplY3RfaWRcIj5cbiAgICAgICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBNb2RlbCAjIDwvdGg+XG4gICAgICAgICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGF1ZGl0TG9nXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7YXVkaXRMb2c/Lm9iamVjdF9pZH19XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImFjdGlvblwiPlxuICAgICAgICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPiBBY3Rpb24gPC90aD5cbiAgICAgICAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgYXVkaXRMb2c7XCI+IHt7IGF1ZGl0TG9nPy5hY3Rpb24gfX0gPC90ZD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImNyZWF0ZWRfYXRcIj5cbiAgICAgICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlcj4gQ3JlYXRlZCBBdCA8L3RoPlxuICAgICAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBhdWRpdExvZ1wiPlxuICAgICAgICAgICAgICAgICAgICB7e2F1ZGl0TG9nPy5jcmVhdGVkX2F0IHwgZGF0ZTonbWVkaXVtJ319XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInVzZXIuZW1haWxcIj5cbiAgICAgICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlcj4gQ3JlYXRlZCBCeSA8L3RoPlxuICAgICAgICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBhdWRpdExvZ1wiPlxuICAgICAgICAgICAgICAgICAgICB7e2F1ZGl0TG9nPy51c2VyPy5lbWFpbH19XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImNoYW5nZXNcIj5cbiAgICAgICAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBDaGFuZ2VzPC90aD5cbiAgICAgICAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgYXVkaXRMb2dcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB4LTNcIiBbaW5uZXJIdG1sXT1cInNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChnZXRUcmFuc2Zvcm1lZENoYW5nZXMoYXVkaXRMb2cpKVwiPlxuXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPCEtLSBBY3Rpb25zIENvbHVtbiAtLT5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiYWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IEFjdGlvbnMgPC90aD5cbiAgICAgICAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgYXVkaXRMb2dcIj5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8dHIgbWF0LWhlYWRlci1yb3cgKm1hdEhlYWRlclJvd0RlZj1cImRpc3BsYXllZENvbHVtbnM7IHN0aWNreTp0cnVlXCI+PC90cj5cbiAgICAgICAgICAgIDx0ciBtYXQtcm93ICptYXRSb3dEZWY9XCJsZXQgcm93OyBjb2x1bW5zOiBkaXNwbGF5ZWRDb2x1bW5zO1wiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImxvZ0NsaWNrZWQocm93KTskZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XCIgY2xhc3M9XCJob3ZlcmFibGUgcm93LWhvdmVyXCI+PC90cj5cbiAgICAgICAgPC90YWJsZT5cbiAgICA8L3NlY3Rpb24+XG5cblxuPC9kaXY+Il19
|
|
201
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtbG9nLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9hdWRpdC1sb2cvYXVkaXQtbG9nLWxpc3QvYXVkaXQtbG9nLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9hdWRpdC1sb2cvYXVkaXQtbG9nLWxpc3QvYXVkaXQtbG9nLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJL0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFckUsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFJdEUsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztJQVN2RCxxQkFBcUIsU0FBckIscUJBQXNCLFNBQVEsa0NBQWtDO0lBd0IzRSxZQUNVLE1BQWMsRUFDZixTQUF1QixFQUN0QixXQUF3QixFQUN4QixlQUFnQyxFQUNoQyxvQkFBMEMsRUFDMUMsY0FBOEI7UUFFdEMsS0FBSyxFQUFFLENBQUM7UUFQQSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2YsY0FBUyxHQUFULFNBQVMsQ0FBYztRQUN0QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMxQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUExQi9C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Q0wsQ0FBQztDQUNGLENBQUE7a0hBL0tZLHFCQUFxQjtzR0FBckIscUJBQXFCLDhTQXNCckIsT0FBTyxxRkMxQ3BCLHc2SEE2R0E7QUR6RmEscUJBQXFCO0lBUGpDLFlBQVksRUFBRTtHQU9GLHFCQUFxQixDQStLakM7U0EvS1kscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBTmpDLFNBQVM7K0JBRUUsb0JBQW9CO2dQQU1yQixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLDRCQUE0QjtzQkFBcEMsS0FBSztnQkFlZ0MsSUFBSTtzQkFBekMsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5cbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTWF0U29ydCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHsgVW50aWxEZXN0cm95LCB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BuZ25lYXQvdW50aWwtZGVzdHJveSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IFRlY2hsaWZ5TGlzdGluZ0NvbnRyb2xsZXJJbnRlcmZhY2UgfSBmcm9tICcuLi8uLi9iYXNlLW1vZGVsJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQXVkaXRMb2dTZXJ2aWNlIH0gZnJvbSAnLi4vYXVkaXQtbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVxdWVzdEhlbHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9yZXF1ZXN0LWhlbHBlci9yZXF1ZXN0LWhlbHBlci5zZXJ2aWNlJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBVbnRpbERlc3Ryb3koKVxuQENvbXBvbmVudCh7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdhcHAtYXVkaXQtbG9nLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXVkaXQtbG9nLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hdWRpdC1sb2ctbGlzdC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBBdWRpdExvZ0xpc3RDb21wb25lbnQgZXh0ZW5kcyBUZWNobGlmeUxpc3RpbmdDb250cm9sbGVySW50ZXJmYWNlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIEBJbnB1dCgpIG9iamVjdElkOiBhbnk7XG4gIEBJbnB1dCgpIG9iamVjdFR5cGU6IGFueTtcbiAgQElucHV0KCkgc2hvd0ZpbHRlciA9IHRydWU7XG4gIEBJbnB1dCgpIHNob3dFeHBvcnRCdXR0b25zID0gdHJ1ZTtcbiAgQElucHV0KCkgdXNlcklkOiBhbnk7XG4gIEBJbnB1dCgpIGRpc2FibGVGaWx0ZXJQYXRjaGluZ0Zyb21Vcmw6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBmaWx0ZXJzOiBhbnkgPSB7IHNvcnRfYnk6ICdjcmVhdGVkX2F0fGRlc2MnIH07XG4gIGRpc3BsYXllZENvbHVtbnM6IGFueVtdID0gW1xuICAgICdpbmRleCcsXG4gICAgJ2lkJyxcbiAgICAnY3JlYXRlZF9hdCcsXG4gICAgJ29iamVjdF90eXBlJyxcbiAgICAnb2JqZWN0X2lkJyxcbiAgICAnYWN0aW9uJyxcbiAgICAnY2hhbmdlcycsXG4gICAgJ3VzZXIuZW1haWwnLFxuICAgICdhY3Rpb25zJyxcbiAgXTtcblxuICBAVmlld0NoaWxkKE1hdFNvcnQsIHsgc3RhdGljOiB0cnVlIH0pIHNvcnQ6IE1hdFNvcnQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwdWJsaWMgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXG4gICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBhdWRpdExvZ1NlcnZpY2U6IEF1ZGl0TG9nU2VydmljZSxcbiAgICBwcml2YXRlIHJlcXVlc3RIZWxwZXJTZXJ2aWNlOiBSZXF1ZXN0SGVscGVyU2VydmljZSxcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmZpbHRlckZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgIGFjdGlvbjogWycnXSxcbiAgICAgIGR1cmF0aW9uOiBbJyddLFxuICAgICAgZGF0ZV9mcm9tOiBbJyddLFxuICAgICAgZGF0ZV90bzogWycnXSxcbiAgICAgIG1vZGVsX3NlYXJjaDogWycnXSxcbiAgICAgIG9iamVjdF90eXBlOiBbJyddLFxuICAgICAgb2JqZWN0X2lkOiBbJyddLFxuICAgICAgdXNlcl9pZDogWycnXSxcbiAgICAgIHNvcnRfYnk6ICdjcmVhdGVkX2F0fGRlc2MnLFxuICAgICAgY3JlYXRvcl9pZHM6IFsnJ10sXG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRpYWxpemVEYXRhKCk7XG5cbiAgICAvKipcbiAgICAgKiBEaXNhYmxlIGZpbHRlciBwYXRjaGluZyBmcm9tIFVSTCBzbyB0aGF0IHdoZW4gdGhpcyBjb21wb25lbnRcbiAgICAgKiBpcyB1c2VkIGluIGEgZGlhbG9nLCBpdCBkb2Vzbid0IGludGVyYWN0IHdpdGggdGhlIFVSTFxuICAgICAqL1xuICAgIGlmICghdGhpcy5kaXNhYmxlRmlsdGVyUGF0Y2hpbmdGcm9tVXJsKSB7XG4gICAgICB0aGlzLmZpbHRlckZvcm0udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6ICh2YWx1ZTogYW55KSA9PiB7XG4gICAgICAgICAgY29uc3QgcGFyYW1zOiBhbnkgPSB0aGlzLnJlcXVlc3RIZWxwZXJTZXJ2aWNlLmNvbnZlcnRUb0Zvcm1EYXRhKHZhbHVlKTtcbiAgICAgICAgICB0aGlzLnJlcXVlc3RIZWxwZXJTZXJ2aWNlLnVwZGF0ZVF1ZXJ5UGFyYW1zKHBhcmFtcyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICAvLyB1cGRhdGUgZm9ybSB3aXRoIHF1ZXJ5IHBhcmFtc1xuICAgICAgdGhpcy5yZXF1ZXN0SGVscGVyU2VydmljZS51cGRhdGVGb3JtV2l0aFF1ZXJ5UGFyYW1zKHRoaXMuZmlsdGVyRm9ybSwge1xuICAgICAgICBkdXJhdGlvbjogeyBudW1iZXI6IHRydWUgfSxcbiAgICAgICAgb2JqZWN0X3R5cGU6IHsgbXVsdGlwbGU6IHRydWUgfSxcbiAgICAgICAgYWN0aW9uOiB7IG11bHRpcGxlOiB0cnVlIH0sXG4gICAgICAgIGNyZWF0b3JfaWRzOiB7IG11bHRpcGxlOiB0cnVlIH0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBsaXN0ZW4gZm9yIHJvdXRlIGNoYW5nZVxuICAgIHRoaXMuYWN0aXZhdGVkUm91dGUucXVlcnlQYXJhbXNcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSg4MDApLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKVxuICAgICAgLnN1YnNjcmliZSgodmFsOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5yZWxvYWQoKTtcbiAgICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuc29ydCkge1xuICAgICAgdGhpcy5zb3J0LnNvcnRDaGFuZ2UucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSlcbiAgICAgICAgLnN1YnNjcmliZSgodmFsdWU6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMuY2hhbmdlU29ydCh2YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICB9XG5cbiAgZ2V0IGV4Y2VsRGF0YSgpOiBhbnlbXSB7XG4gICAgaWYgKHRoaXMubW9kZWxzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiB0aGlzLm1vZGVscy5tYXAoaXRlbSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgVHlwZTogaXRlbT8ub2JqZWN0X3R5cGUsXG4gICAgICAgICAgQWN0aW9uOiBpdGVtPy5hY3Rpb24sXG4gICAgICAgICAgRGF0YTogSlNPTi5zdHJpbmdpZnkoaXRlbT8uZGF0YSB8fCB7fSksXG4gICAgICAgICAgT2JqZWN0OiBKU09OLnN0cmluZ2lmeShpdGVtPy5vYmplY3QgfHwge30pLFxuICAgICAgICAgICdQcmUtT2JqZWN0JzogSlNPTi5zdHJpbmdpZnkoaXRlbT8ucHJlX29iamVjdCB8fCB7fSksXG4gICAgICAgICAgJ0NyZWF0ZWQgQXQnOiBuZXcgRGF0ZShpdGVtPy5jcmVhdGVkX2F0KS50b0RhdGVTdHJpbmcoKSxcbiAgICAgICAgICAnQ3JlYXRlZCBCeSc6IGl0ZW0/LnVzZXI/LmVtYWlsXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgY2hhbmdlU29ydChldmVudDogYW55KTogdm9pZCB7XG4gICAgaWYgKGV2ZW50LmRpcmVjdGlvbikge1xuICAgICAgdGhpcy5maWx0ZXJzLnNvcnRfYnkgPSBgJHtldmVudC5hY3RpdmV9fCR7ZXZlbnQuZGlyZWN0aW9ufWA7XG4gICAgICB0aGlzLnJlbG9hZCgpO1xuICAgIH1cbiAgfVxuXG4gIGxvZ0NsaWNrZWQobG9nOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9zeXN0ZW0vYXVkaXQtbG9ncy9sb2ctdmlldycsIGxvZy5pZF0pO1xuICB9XG5cbiAgaW5pdGlhbGl6ZURhdGEoKTogdm9pZCB7XG4gICAgbGV0IGZpbHRlcnM6IGFueSA9IHt9O1xuICAgIGlmICh0aGlzLm9iamVjdFR5cGUpIHtcbiAgICAgIGZpbHRlcnMgPSB7IC4uLnRoaXMuZmlsdGVycywgb2JqZWN0X3R5cGU6IHRoaXMub2JqZWN0VHlwZSB9O1xuICAgIH1cbiAgICBpZiAodGhpcy5vYmplY3RJZCkge1xuICAgICAgZmlsdGVycyA9IHsgLi4udGhpcy5maWx0ZXJzLCBvYmplY3RfaWQ6IHRoaXMub2JqZWN0SWQgfTtcbiAgICB9XG4gICAgaWYgKHRoaXMudXNlcklkKSB7XG4gICAgICBmaWx0ZXJzID0geyAuLi50aGlzLmZpbHRlcnMsIHVzZXJfaWQ6IHRoaXMudXNlcklkIH07XG4gICAgfVxuICAgIHRoaXMuZmlsdGVyRm9ybS5wYXRjaFZhbHVlKGZpbHRlcnMpO1xuICB9XG5cbiAgZmlsdGVyQ2hhbmdlKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zaG93RmlsdGVyKSB7XG4gICAgICB0aGlzLmZpbHRlcnMgPSB7XG4gICAgICAgIC4uLnRoaXMuZmlsdGVycyxcbiAgICAgICAgLi4uZXZlbnQsXG4gICAgICAgIG9iamVjdF90eXBlOiB0aGlzLm9iamVjdFR5cGUgfHwgZXZlbnQ/Lm9iamVjdF90eXBlIHx8ICcnLFxuICAgICAgICBvYmplY3RfaWQ6IHRoaXMub2JqZWN0SWQgfHwgJycsXG4gICAgICB9O1xuICAgICAgdGhpcy5yZWxvYWQoKTtcbiAgICB9XG4gIH1cblxuICBnZXRUcmFuc2Zvcm1lZENoYW5nZXMobG9nOiBhbnkpOiBzdHJpbmcge1xuICAgIGlmIChsb2c/LmRhdGE/LmNoYW5nZXMpIHtcbiAgICAgIGNvbnN0IGNoYW5nZXMgPSBPYmplY3Qua2V5cyhsb2c/LmRhdGE/LmNoYW5nZXMpIHx8IFtdO1xuICAgICAgbGV0IHZhbHVlID0gJzxkaXY+JztcbiAgICAgIGNoYW5nZXMuZm9yRWFjaCgoa2V5OiBhbnkpID0+IHtcbiAgICAgICAgY29uc3QgZGlzcGxheUF0dHJpYnV0ZSA9IChrZXkgYXMgc3RyaW5nKS5zcGxpdCgnXycpLm1hcCh4ID0+IHguY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyB4LnNsaWNlKDEpKS5qb2luKCcgJyk7XG4gICAgICAgIHZhbHVlID0gYCR7dmFsdWV9IDxkaXY+PGI+JHtkaXNwbGF5QXR0cmlidXRlfTo8L2I+IDxzcGFuIGlkPVwib2xkLXZhbHVlXCI+JHtsb2c/LnByZV9vYmplY3Rba2V5XSA/PyAnJ308L3NwYW4+PHNwYW4gaWQ9XCJuZXctdmFsdWVcIj4ke2xvZz8ub2JqZWN0W2tleV0gPz8gJyd9PC9zcGFuPjwvZGl2PmA7XG4gICAgICB9KTtcbiAgICAgIHZhbHVlID0gYCR7dmFsdWV9IDwvZGl2PmA7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIC8vIE5lZWRlZCBmb3IgYXV0b21hdGljIHVuc3Vic2NyaWJlIHdpdGggdW50aWxEZXN0cm95ZWRcbiAgfVxuXG4gIGxvYWREYXRhKCk6IHZvaWQge1xuICAgIGNvbnN0IHBhcmFtczogYW55ID0ge1xuICAgICAgLi4udGhpcy5yZXF1ZXN0SGVscGVyU2VydmljZS5jb252ZXJ0VG9Gb3JtRGF0YSh0aGlzLmZpbHRlckZvcm0udmFsdWUpLFxuICAgICAgcGFnZTogdGhpcy5wYWdlLFxuICAgICAgcGVyUGFnZTogdGhpcy5wZXJQYWdlLFxuICAgIH07XG4gICAgdGhpcy5pc1dvcmtpbmcgPSB0cnVlO1xuICAgIHRoaXMuYXVkaXRMb2dTZXJ2aWNlLmluZGV4KHBhcmFtcykuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMuaXNXb3JraW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMubW9kZWxzID0gdGhpcy5tb2RlbHM/LmNvbmNhdChyZXNwb25zZT8uZGF0YSk7XG4gICAgICAgIHRoaXMubGFzdFBhZ2UgPSByZXNwb25zZT8ubGFzdF9wYWdlO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoKSA9PiAodGhpcy5pc1dvcmtpbmcgPSBmYWxzZSlcbiAgICB9KTtcbiAgfVxufVxuIiwiPG1hdC1jYXJkIGNsYXNzPVwibWItM1wiPlxuICA8bWF0LWNhcmQtY29udGVudD5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgYWxpZ24taXRlbXMtY2FudGVyIGdhcC0yXCIgc3R5bGU9XCJtaW4td2lkdGg6IDIwMHB4XCI+XG4gICAgICAgIDxoMiBjbGFzcz1cIm1iLTBcIj5cbiAgICAgICAgICBBdWRpdCBMb2dzXG4gICAgICAgIDwvaDI+XG4gICAgICAgIDxhcHAtZXhwb3J0LWV4Y2VsLWJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwic2hvd0V4cG9ydEJ1dHRvbnNcIlxuICAgICAgICAgIGNsYXNzPVwibXQtMVwiXG4gICAgICAgICAgbWF0VG9vbHRpcD1cIkV4cG9ydFwiXG4gICAgICAgICAgZWxlbWVudElkPVwiYXVkaXQtbG9ncy10YWJsZVwiIG5hbWU9XCJBdWRpdExvZ3NcIiBbZGF0YV09XCJleGNlbERhdGFcIj5cbiAgICAgICAgPC9hcHAtZXhwb3J0LWV4Y2VsLWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8YXBwLWF1ZGl0LWxvZy1saXN0LWZpbHRlclxuICAgICAgICBjbGFzcz1cInctMTAwXCJcbiAgICAgICAgKm5nSWY9XCJzaG93RmlsdGVyXCJcbiAgICAgICAgW2ZpbHRlckZvcm1dPVwiZmlsdGVyRm9ybVwiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJmaWx0ZXJDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIFtvYmplY3RUeXBlXT1cIm9iamVjdFR5cGVcIlxuICAgICAgICBbb2JqZWN0SWRdPVwib2JqZWN0SWRcIlxuICAgICAgPjwvYXBwLWF1ZGl0LWxvZy1saXN0LWZpbHRlcj5cbiAgICA8L2Rpdj5cbiAgPC9tYXQtY2FyZC1jb250ZW50PlxuPC9tYXQtY2FyZD5cblxuPG1hdC1jYXJkIGNsYXNzPVwicC0wXCI+XG4gIDxtYXQtY2FyZC1jb250ZW50PlxuICAgIDx0YWJsZVxuICAgICAgbWF0LXRhYmxlXG4gICAgICBbZGF0YVNvdXJjZV09XCJtb2RlbHNcIiBtYXRTb3J0IGNsYXNzPVwidy0xMDBcIlxuICAgICAgaWQ9XCJhdWRpdC1sb2dzLXRhYmxlXCJcbiAgICAgIGluZmluaXRlU2Nyb2xsXG4gICAgICBbaW5maW5pdGVTY3JvbGxEaXN0YW5jZV09XCIyXCJcbiAgICAgIFtpbmZpbml0ZVNjcm9sbFRocm90dGxlXT1cIjUwXCJcbiAgICAgIChzY3JvbGxlZCk9XCJvblNjcm9sbCgpXCJcbiAgICAgIFtmcm9tUm9vdF09XCJ0cnVlXCJcbiAgICA+XG5cbiAgICAgIDwhLS0gSW5kZXggQ29sdW1uIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJpbmRleFwiPlxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiAjIDwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBpID0gaW5kZXhcIj4ge3sgaSsxIH19IDwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJpZFwiPlxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBMb2cgIyA8L3RoPlxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgYXVkaXRMb2dcIj5cbiAgICAgICAgICB7e2F1ZGl0TG9nPy5pZH19XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJvYmplY3RfdHlwZVwiPlxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIG1hdC1zb3J0LWhlYWRlcj4gTW9kZWwgVHlwZSA8L3RoPlxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgYXVkaXRMb2c7XCI+IHt7IGF1ZGl0TG9nLm9iamVjdF90eXBlIH19IDwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJvYmplY3RfaWRcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gTW9kZWwgIyA8L3RoPlxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgYXVkaXRMb2dcIj5cbiAgICAgICAgICB7e2F1ZGl0TG9nPy5vYmplY3RfaWR9fVxuICAgICAgICA8L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiYWN0aW9uXCI+XG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPiBBY3Rpb24gPC90aD5cbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGF1ZGl0TG9nO1wiPiB7eyBhdWRpdExvZz8uYWN0aW9uIH19IDwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPG5nLWNvbnRhaW5lciBtYXRDb2x1bW5EZWY9XCJjcmVhdGVkX2F0XCI+XG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgbWF0LXNvcnQtaGVhZGVyPiBDcmVhdGVkIEF0IDwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBhdWRpdExvZ1wiPlxuICAgICAgICAgIHt7YXVkaXRMb2c/LmNyZWF0ZWRfYXQgfCBkYXRlOidtZWRpdW0nfX1cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInVzZXIuZW1haWxcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtc29ydC1oZWFkZXI+IENyZWF0ZWQgQnkgPC90aD5cbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGF1ZGl0TG9nXCI+XG4gICAgICAgICAgPHAgY2xhc3M9XCJtYi0wXCI+e3thdWRpdExvZz8udXNlcj8ubmFtZX19PC9wPlxuICAgICAgICAgIDxzbWFsbCBjbGFzcz1cInRleHQtc2Vjb25kYXJ5XCI+e3sgYXVkaXRMb2c/LnVzZXI/LmVtYWlsIH19PC9zbWFsbD5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImNoYW5nZXNcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gQ2hhbmdlczwvdGg+XG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBhdWRpdExvZ1wiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwicHgtM1wiXG4gICAgICAgICAgICBbaW5uZXJIdG1sXT1cInNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChnZXRUcmFuc2Zvcm1lZENoYW5nZXMoYXVkaXRMb2cpKVwiPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RkPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwhLS0gQWN0aW9ucyBDb2x1bW4gLS0+XG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImFjdGlvbnNcIj5cbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gQWN0aW9ucyA8L3RoPlxuICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgYXVkaXRMb2dcIj5cbiAgICAgICAgICA8bWF0LWljb24gKGNsaWNrKT1cImxvZ0NsaWNrZWQoYXVkaXRMb2cpOyRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcIiA+dmlzaWJpbGl0eTwvbWF0LWljb24+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zOyBzdGlja3k6dHJ1ZVwiPjwvdHI+XG4gICAgICA8dHIgbWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IHJvdzsgY29sdW1uczogZGlzcGxheWVkQ29sdW1ucztcIj48L3RyPlxuICAgIDwvdGFibGU+XG4gICAgPG1hdC1wcm9ncmVzcy1iYXIgbW9kZT1cImluZGV0ZXJtaW5hdGVcIiAqbmdJZj1cImlzV29ya2luZ1wiPjwvbWF0LXByb2dyZXNzLWJhcj5cbiAgPC9tYXQtY2FyZC1jb250ZW50PlxuPC9tYXQtY2FyZD5cbiJdfQ==
|
|
@@ -8,6 +8,7 @@ import { FlexLayoutModule } from '@angular/flex-layout';
|
|
|
8
8
|
import { ReactiveFormsModule } from '@angular/forms';
|
|
9
9
|
import { ExportExcelModule } from '../../export-excel/export-excel.module';
|
|
10
10
|
import { MaterialModule } from '../../material.module';
|
|
11
|
+
import { MatProgressBarModule } from "@angular/material/progress-bar";
|
|
11
12
|
import * as i0 from "@angular/core";
|
|
12
13
|
export class AuditLogListModule {
|
|
13
14
|
}
|
|
@@ -19,7 +20,8 @@ AuditLogListModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", vers
|
|
|
19
20
|
ReactiveFormsModule,
|
|
20
21
|
MaterialModule,
|
|
21
22
|
InfiniteScrollModule,
|
|
22
|
-
AuditLogListFilterModule
|
|
23
|
+
AuditLogListFilterModule,
|
|
24
|
+
MatProgressBarModule], exports: [AuditLogListComponent] });
|
|
23
25
|
AuditLogListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: AuditLogListModule, imports: [CommonModule,
|
|
24
26
|
AuditLogListRoutingModule,
|
|
25
27
|
ExportExcelModule,
|
|
@@ -27,7 +29,8 @@ AuditLogListModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", vers
|
|
|
27
29
|
ReactiveFormsModule,
|
|
28
30
|
MaterialModule,
|
|
29
31
|
InfiniteScrollModule,
|
|
30
|
-
AuditLogListFilterModule
|
|
32
|
+
AuditLogListFilterModule,
|
|
33
|
+
MatProgressBarModule] });
|
|
31
34
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: AuditLogListModule, decorators: [{
|
|
32
35
|
type: NgModule,
|
|
33
36
|
args: [{
|
|
@@ -40,9 +43,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImpor
|
|
|
40
43
|
ReactiveFormsModule,
|
|
41
44
|
MaterialModule,
|
|
42
45
|
InfiniteScrollModule,
|
|
43
|
-
AuditLogListFilterModule
|
|
46
|
+
AuditLogListFilterModule,
|
|
47
|
+
MatProgressBarModule
|
|
44
48
|
],
|
|
45
49
|
exports: [AuditLogListComponent]
|
|
46
50
|
}]
|
|
47
51
|
}] });
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtbG9nLWxpc3QubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9hdWRpdC1sb2cvYXVkaXQtbG9nLWxpc3QvYXVkaXQtbG9nLWxpc3QubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzNELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFrQnBFLE1BQU0sT0FBTyxrQkFBa0I7OytHQUFsQixrQkFBa0I7Z0hBQWxCLGtCQUFrQixpQkFkZCxxQkFBcUIsYUFFOUIsWUFBWTtRQUNaLHlCQUF5QjtRQUN6QixpQkFBaUI7UUFDakIsZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixjQUFjO1FBQ2Qsb0JBQW9CO1FBQ3BCLHdCQUF3QjtRQUN4QixvQkFBb0IsYUFFaEIscUJBQXFCO2dIQUVwQixrQkFBa0IsWUFadkIsWUFBWTtRQUNaLHlCQUF5QjtRQUN6QixpQkFBaUI7UUFDakIsZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixjQUFjO1FBQ2Qsb0JBQW9CO1FBQ3BCLHdCQUF3QjtRQUN4QixvQkFBb0I7MkZBSWYsa0JBQWtCO2tCQWY5QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLHFCQUFxQixDQUFDO29CQUNuQyxPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWix5QkFBeUI7d0JBQ3pCLGlCQUFpQjt3QkFDakIsZ0JBQWdCO3dCQUNoQixtQkFBbUI7d0JBQ25CLGNBQWM7d0JBQ2Qsb0JBQW9CO3dCQUNwQix3QkFBd0I7d0JBQ3hCLG9CQUFvQjtxQkFDdkI7b0JBQ0gsT0FBTyxFQUFFLENBQUMscUJBQXFCLENBQUM7aUJBQ2pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7IEF1ZGl0TG9nTGlzdFJvdXRpbmdNb2R1bGUgfSBmcm9tICcuL2F1ZGl0LWxvZy1saXN0LXJvdXRpbmcubW9kdWxlJztcbmltcG9ydCB7IEluZmluaXRlU2Nyb2xsTW9kdWxlIH0gZnJvbSAnbmd4LWluZmluaXRlLXNjcm9sbCc7XG5pbXBvcnQgeyBBdWRpdExvZ0xpc3RDb21wb25lbnQgfSBmcm9tICcuL2F1ZGl0LWxvZy1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBdWRpdExvZ0xpc3RGaWx0ZXJNb2R1bGUgfSBmcm9tICcuLi9hdWRpdC1sb2ctbGlzdC1maWx0ZXIvYXVkaXQtbG9nLWxpc3QtZmlsdGVyLm1vZHVsZSc7XG5pbXBvcnQgeyBGbGV4TGF5b3V0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZmxleC1sYXlvdXQnO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEV4cG9ydEV4Y2VsTW9kdWxlIH0gZnJvbSAnLi4vLi4vZXhwb3J0LWV4Y2VsL2V4cG9ydC1leGNlbC5tb2R1bGUnO1xuaW1wb3J0IHsgTWF0ZXJpYWxNb2R1bGUgfSBmcm9tICcuLi8uLi9tYXRlcmlhbC5tb2R1bGUnO1xuaW1wb3J0IHtNYXRQcm9ncmVzc0Jhck1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhclwiO1xuXG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW0F1ZGl0TG9nTGlzdENvbXBvbmVudF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEF1ZGl0TG9nTGlzdFJvdXRpbmdNb2R1bGUsXG4gICAgICAgIEV4cG9ydEV4Y2VsTW9kdWxlLFxuICAgICAgICBGbGV4TGF5b3V0TW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBNYXRlcmlhbE1vZHVsZSxcbiAgICAgICAgSW5maW5pdGVTY3JvbGxNb2R1bGUsXG4gICAgICAgIEF1ZGl0TG9nTGlzdEZpbHRlck1vZHVsZSxcbiAgICAgICAgTWF0UHJvZ3Jlc3NCYXJNb2R1bGVcbiAgICBdLFxuICBleHBvcnRzOiBbQXVkaXRMb2dMaXN0Q29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBBdWRpdExvZ0xpc3RNb2R1bGUgeyB9XG4iXX0=
|