lib-portal-angular 0.0.77 → 0.0.78
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/esm2022/lib/components/tables/data-paginate.service.mjs +18 -13
- package/esm2022/lib/components/tables/data-table.component.mjs +111 -48
- package/esm2022/lib/function/ConvertToSnakeCase.mjs +4 -0
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/lib-portal-angular.mjs +125 -53
- package/fesm2022/lib-portal-angular.mjs.map +1 -1
- package/lib/components/tables/data-paginate.service.d.ts +4 -3
- package/lib/components/tables/data-table.component.d.ts +17 -15
- package/lib/function/ConvertToSnakeCase.d.ts +1 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
@@ -1,6 +1,6 @@
|
|
1
|
-
import { Injectable } from
|
2
|
-
import { HttpParams } from
|
3
|
-
import { map } from
|
1
|
+
import { Injectable } from "@angular/core";
|
2
|
+
import { HttpParams } from "@angular/common/http";
|
3
|
+
import { map } from "rxjs/operators";
|
4
4
|
import * as i0 from "@angular/core";
|
5
5
|
import * as i1 from "@angular/common/http";
|
6
6
|
export class DataPaginateService {
|
@@ -9,29 +9,34 @@ export class DataPaginateService {
|
|
9
9
|
}
|
10
10
|
fetchData(url, params) {
|
11
11
|
let httpParams = new HttpParams()
|
12
|
-
.set(
|
13
|
-
.set(
|
14
|
-
.set(
|
15
|
-
.set(
|
12
|
+
.set("page", params.pageNumber.toString())
|
13
|
+
.set("limit", params.pageSize.toString())
|
14
|
+
.set("sort", params.sortColumn)
|
15
|
+
.set("order", params.sortDirection);
|
16
16
|
if (params.filterDescription) {
|
17
|
-
httpParams = httpParams.set(
|
17
|
+
httpParams = httpParams.set("description", params.filterDescription);
|
18
18
|
}
|
19
|
-
|
19
|
+
if (params.filterField) {
|
20
|
+
httpParams = httpParams.set("filterField", params.filterField);
|
21
|
+
}
|
22
|
+
return this.http
|
23
|
+
.get(url, { params: httpParams })
|
24
|
+
.pipe(map((response) => {
|
20
25
|
const items = response.data || [];
|
21
26
|
const totalItems = response.meta.total || 0;
|
22
27
|
return {
|
23
28
|
items,
|
24
|
-
totalItems
|
29
|
+
totalItems,
|
25
30
|
};
|
26
31
|
}));
|
27
32
|
}
|
28
33
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataPaginateService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
29
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataPaginateService, providedIn:
|
34
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataPaginateService, providedIn: "root" }); }
|
30
35
|
}
|
31
36
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataPaginateService, decorators: [{
|
32
37
|
type: Injectable,
|
33
38
|
args: [{
|
34
|
-
providedIn:
|
39
|
+
providedIn: "root",
|
35
40
|
}]
|
36
41
|
}], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1wYWdpbmF0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGliLXBvcnRhbC1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvZGF0YS1wYWdpbmF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTlELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBbUJyQyxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLFlBQW9CLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7SUFBRyxDQUFDO0lBRXhDLFNBQVMsQ0FDUCxHQUFXLEVBQ1gsTUFBMEI7UUFFMUIsSUFBSSxVQUFVLEdBQUcsSUFBSSxVQUFVLEVBQUU7YUFDOUIsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO2FBQ3pDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUN4QyxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUM7YUFDOUIsR0FBRyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFdEMsSUFBSSxNQUFNLENBQUMsaUJBQWlCLEVBQUU7WUFDNUIsVUFBVSxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ3RFO1FBRUQsSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFO1lBQ3RCLFVBQVUsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDaEU7UUFFRCxPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsR0FBRyxDQUF5QyxHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLENBQUM7YUFDeEUsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ2YsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7WUFDbEMsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDO1lBQzVDLE9BQU87Z0JBQ0wsS0FBSztnQkFDTCxVQUFVO2FBQ1gsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDOytHQWpDVSxtQkFBbUI7bUhBQW5CLG1CQUFtQixjQUZsQixNQUFNOzs0RkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUGFyYW1zIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IG1hcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIElEYXRhSW5kZXhQYWdpbmF0ZSB7XG4gIGZpbHRlckRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBmaWx0ZXJGaWVsZDogc3RyaW5nO1xuICBwYWdlTnVtYmVyOiBudW1iZXI7XG4gIHBhZ2VTaXplOiBudW1iZXI7XG4gIHNvcnRDb2x1bW46IHN0cmluZztcbiAgc29ydERpcmVjdGlvbjogXCJhc2NcIiB8IFwiZGVzY1wiO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElQYWdpbmF0ZVJlc3VsdDxUPiB7XG4gIGl0ZW1zOiBUW107XG4gIHRvdGFsSXRlbXM6IG51bWJlcjtcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiBcInJvb3RcIixcbn0pXG5leHBvcnQgY2xhc3MgRGF0YVBhZ2luYXRlU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCkge31cblxuICBmZXRjaERhdGE8VD4oXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgcGFyYW1zOiBJRGF0YUluZGV4UGFnaW5hdGVcbiAgKTogT2JzZXJ2YWJsZTxJUGFnaW5hdGVSZXN1bHQ8VD4+IHtcbiAgICBsZXQgaHR0cFBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKClcbiAgICAgIC5zZXQoXCJwYWdlXCIsIHBhcmFtcy5wYWdlTnVtYmVyLnRvU3RyaW5nKCkpXG4gICAgICAuc2V0KFwibGltaXRcIiwgcGFyYW1zLnBhZ2VTaXplLnRvU3RyaW5nKCkpXG4gICAgICAuc2V0KFwic29ydFwiLCBwYXJhbXMuc29ydENvbHVtbilcbiAgICAgIC5zZXQoXCJvcmRlclwiLCBwYXJhbXMuc29ydERpcmVjdGlvbik7XG5cbiAgICBpZiAocGFyYW1zLmZpbHRlckRlc2NyaXB0aW9uKSB7XG4gICAgICBodHRwUGFyYW1zID0gaHR0cFBhcmFtcy5zZXQoXCJkZXNjcmlwdGlvblwiLCBwYXJhbXMuZmlsdGVyRGVzY3JpcHRpb24pO1xuICAgIH1cblxuICAgIGlmIChwYXJhbXMuZmlsdGVyRmllbGQpIHtcbiAgICAgIGh0dHBQYXJhbXMgPSBodHRwUGFyYW1zLnNldChcImZpbHRlckZpZWxkXCIsIHBhcmFtcy5maWx0ZXJGaWVsZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDx7IG1ldGE6IHsgdG90YWw6IG51bWJlciB9OyBkYXRhOiBUW10gfT4odXJsLCB7IHBhcmFtczogaHR0cFBhcmFtcyB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICBjb25zdCBpdGVtcyA9IHJlc3BvbnNlLmRhdGEgfHwgW107XG4gICAgICAgICAgY29uc3QgdG90YWxJdGVtcyA9IHJlc3BvbnNlLm1ldGEudG90YWwgfHwgMDtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaXRlbXMsXG4gICAgICAgICAgICB0b3RhbEl0ZW1zLFxuICAgICAgICAgIH07XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG59XG4iXX0=
|
@@ -1,7 +1,7 @@
|
|
1
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from
|
2
|
-
import { Observable, Subject } from
|
3
|
-
import { takeUntil } from
|
4
|
-
import { ButtonClasses } from
|
1
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from "@angular/core";
|
2
|
+
import { Observable, Subject } from "rxjs";
|
3
|
+
import { takeUntil } from "rxjs/operators";
|
4
|
+
import { ButtonClasses } from "../../enum/ButtonClassesEnum"; // Importando o enum
|
5
5
|
import * as i0 from "@angular/core";
|
6
6
|
import * as i1 from "../../service/auth-service.service";
|
7
7
|
import * as i2 from "../../service/refresh-service.service";
|
@@ -18,45 +18,67 @@ export class DataTableComponent {
|
|
18
18
|
this.columns = [];
|
19
19
|
this.hiddenColumns = [];
|
20
20
|
this.defaultItemsPerPage = 10;
|
21
|
-
this.itemsPerPageLabel =
|
21
|
+
this.itemsPerPageLabel = "Items per page:";
|
22
22
|
this.showActionColumn = false;
|
23
|
-
this.actionColumnLabel =
|
23
|
+
this.actionColumnLabel = "Actions";
|
24
24
|
this.totalItems = 0;
|
25
25
|
this.fetchDataFunction = () => {
|
26
|
-
return new Observable(subscriber => subscriber.error(
|
26
|
+
return new Observable((subscriber) => subscriber.error("Implement the fetchDataFunction to fetch paginated data from the back-end."));
|
27
27
|
};
|
28
28
|
this.editPermissions = [];
|
29
29
|
this.deletePermissions = [];
|
30
30
|
this.viewPermissions = [];
|
31
31
|
this.showPageInfo = true;
|
32
|
-
this.pageText =
|
33
|
-
this.ofText =
|
34
|
-
this.filterDescription =
|
35
|
-
this.buttonLabel =
|
36
|
-
this.
|
32
|
+
this.pageText = "Page";
|
33
|
+
this.ofText = "of";
|
34
|
+
this.filterDescription = "";
|
35
|
+
this.buttonLabel = "";
|
36
|
+
this.pagedData = [];
|
37
|
+
this.initialFilterField = null;
|
37
38
|
this.pageChange = new EventEmitter();
|
38
39
|
this.itemsPerPageChange = new EventEmitter();
|
39
40
|
this.onEditTable = new EventEmitter();
|
40
41
|
this.onDeleteTable = new EventEmitter();
|
41
42
|
this.onViewTable = new EventEmitter();
|
42
|
-
this.onButtonClick = new EventEmitter();
|
43
|
+
this.onButtonClick = new EventEmitter();
|
44
|
+
this.filterFieldChange = new EventEmitter();
|
43
45
|
this.itemsPerPageOptions = [5, 10, 15, 25];
|
44
46
|
this.currentPage = 1;
|
45
|
-
this.sortColumn =
|
46
|
-
this.sortDirection =
|
47
|
-
this.
|
47
|
+
this.sortColumn = "";
|
48
|
+
this.sortDirection = "asc";
|
49
|
+
this.selectedSearchField = "";
|
48
50
|
this.isLoading = false;
|
49
51
|
this.destroy$ = new Subject();
|
50
52
|
this.isInitialized = false; // Flag para evitar chamadas duplas
|
51
53
|
this.ButtonClasses = ButtonClasses;
|
52
54
|
this.labelStyle = {
|
53
|
-
|
54
|
-
|
55
|
-
|
55
|
+
"font-family": "Inter, Arial, sans-serif",
|
56
|
+
"font-size": "14px",
|
57
|
+
color: "#000",
|
56
58
|
};
|
57
59
|
}
|
58
60
|
ngOnInit() {
|
59
|
-
this.
|
61
|
+
if (this.initialFilterField) {
|
62
|
+
// Se o usuário definir o initialFilterField, ele será usado como o campo inicial
|
63
|
+
this.selectedSearchField = this.initialFilterField;
|
64
|
+
this.sortColumn = this.initialFilterField;
|
65
|
+
this.sortDirection = "asc";
|
66
|
+
this.columns = this.columns.map((column) => ({
|
67
|
+
...column,
|
68
|
+
isSearchSelected: column.prop === this.initialFilterField,
|
69
|
+
}));
|
70
|
+
}
|
71
|
+
else if (this.columns.length > 0) {
|
72
|
+
// Caso contrário, usa a primeira coluna como padrão
|
73
|
+
this.selectedSearchField = this.columns[0].prop;
|
74
|
+
this.sortColumn = this.columns[0].prop;
|
75
|
+
this.sortDirection = "asc";
|
76
|
+
this.columns = this.columns.map((column) => ({
|
77
|
+
...column,
|
78
|
+
isSearchSelected: column.prop === this.selectedSearchField,
|
79
|
+
}));
|
80
|
+
}
|
81
|
+
//this.fetchData();
|
60
82
|
this.refreshService.refresh$
|
61
83
|
.pipe(takeUntil(this.destroy$))
|
62
84
|
.subscribe(() => {
|
@@ -66,29 +88,38 @@ export class DataTableComponent {
|
|
66
88
|
});
|
67
89
|
this.isInitialized = true;
|
68
90
|
}
|
69
|
-
ngOnChanges(changes) {
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
91
|
+
// ngOnChanges(changes: SimpleChanges) {
|
92
|
+
// if (
|
93
|
+
// changes["totalItems"] ||
|
94
|
+
// changes["defaultItemsPerPage"] ||
|
95
|
+
// changes["currentPage"] ||
|
96
|
+
// changes["fetchDataFunction"] ||
|
97
|
+
// changes["filterDescription"]
|
98
|
+
// ) {
|
99
|
+
// this.fetchData();
|
100
|
+
// }
|
101
|
+
// }
|
74
102
|
ngOnDestroy() {
|
75
103
|
this.destroy$.next();
|
76
104
|
this.destroy$.complete();
|
77
105
|
}
|
78
106
|
getNestedProperty(obj, path) {
|
79
|
-
return path.split(
|
107
|
+
return path.split(".").reduce((acc, part) => acc && acc[part], obj);
|
80
108
|
}
|
81
109
|
fetchData() {
|
82
110
|
if (this.fetchDataFunction) {
|
83
111
|
this.isLoading = true;
|
84
112
|
const params = {
|
85
113
|
filterDescription: this.filterDescription,
|
86
|
-
|
87
|
-
|
114
|
+
filterField: this.selectedSearchField,
|
115
|
+
pageNumber: this.currentPage ?? 1,
|
116
|
+
pageSize: this.defaultItemsPerPage ?? 10,
|
88
117
|
sortColumn: this.sortColumn,
|
89
|
-
sortDirection: this.sortDirection
|
118
|
+
sortDirection: this.sortDirection,
|
90
119
|
};
|
91
|
-
this.fetchDataFunction(params)
|
120
|
+
this.fetchDataFunction(params)
|
121
|
+
.pipe(takeUntil(this.destroy$))
|
122
|
+
.subscribe({
|
92
123
|
next: (result) => {
|
93
124
|
this.pagedData = result.items;
|
94
125
|
this.totalItems = result.totalItems;
|
@@ -96,21 +127,15 @@ export class DataTableComponent {
|
|
96
127
|
this.cdr.markForCheck();
|
97
128
|
},
|
98
129
|
error: (error) => {
|
99
|
-
console.error(
|
130
|
+
console.error("Error fetching data:", error);
|
100
131
|
this.isLoading = false;
|
101
|
-
}
|
132
|
+
},
|
102
133
|
});
|
103
134
|
}
|
104
135
|
}
|
105
136
|
refreshData() {
|
106
137
|
this.fetchData();
|
107
138
|
}
|
108
|
-
onSort(column) {
|
109
|
-
this.sortColumn = column;
|
110
|
-
this.sortDirection = this.sortDirection === 'asc' ? 'desc' : 'asc';
|
111
|
-
this.sortChange.emit({ column, direction: this.sortDirection });
|
112
|
-
this.fetchData();
|
113
|
-
}
|
114
139
|
onPageChange(page) {
|
115
140
|
this.currentPage = page;
|
116
141
|
this.pageChange.emit(page);
|
@@ -121,19 +146,53 @@ export class DataTableComponent {
|
|
121
146
|
this.itemsPerPageChange.emit(this.defaultItemsPerPage);
|
122
147
|
this.fetchData();
|
123
148
|
}
|
149
|
+
onSelectSearchField(columnProp) {
|
150
|
+
if (this.sortColumn === columnProp) {
|
151
|
+
this.sortDirection = this.sortDirection === "asc" ? "desc" : "asc";
|
152
|
+
}
|
153
|
+
else {
|
154
|
+
this.sortDirection = "asc";
|
155
|
+
}
|
156
|
+
this.selectedSearchField = columnProp;
|
157
|
+
this.sortColumn = columnProp;
|
158
|
+
this.columns = this.columns.map((column) => ({
|
159
|
+
...column,
|
160
|
+
isSearchSelected: column.prop === columnProp,
|
161
|
+
}));
|
162
|
+
this.filterFieldChange.emit(this.selectedSearchField);
|
163
|
+
if (this.fetchDataFunction) {
|
164
|
+
this.fetchDataFunction({
|
165
|
+
filterDescription: this.filterDescription,
|
166
|
+
filterField: this.selectedSearchField,
|
167
|
+
pageNumber: this.currentPage,
|
168
|
+
pageSize: this.defaultItemsPerPage,
|
169
|
+
sortColumn: this.sortColumn,
|
170
|
+
sortDirection: this.sortDirection,
|
171
|
+
}).subscribe({
|
172
|
+
next: (result) => {
|
173
|
+
this.pagedData = result.items;
|
174
|
+
this.totalItems = result.totalItems;
|
175
|
+
this.cdr.markForCheck();
|
176
|
+
},
|
177
|
+
error: (error) => {
|
178
|
+
console.error("Erro ao buscar dados:", error);
|
179
|
+
},
|
180
|
+
});
|
181
|
+
}
|
182
|
+
}
|
124
183
|
handleAction(action, item, index) {
|
125
184
|
switch (action) {
|
126
|
-
case
|
185
|
+
case "edit":
|
127
186
|
if (this.hasPermission(this.editPermissions)) {
|
128
187
|
this.onEditTable.emit({ item, index });
|
129
188
|
}
|
130
189
|
break;
|
131
|
-
case
|
190
|
+
case "delete":
|
132
191
|
if (this.hasPermission(this.deletePermissions)) {
|
133
192
|
this.onDeleteTable.emit({ item, index });
|
134
193
|
}
|
135
194
|
break;
|
136
|
-
case
|
195
|
+
case "view":
|
137
196
|
if (this.hasPermission(this.viewPermissions)) {
|
138
197
|
this.onViewTable.emit({ item, index });
|
139
198
|
}
|
@@ -149,10 +208,10 @@ export class DataTableComponent {
|
|
149
208
|
}
|
150
209
|
catch (error) {
|
151
210
|
if (error instanceof Error) {
|
152
|
-
console.error(
|
211
|
+
console.error("Permission error:", error.message);
|
153
212
|
}
|
154
213
|
else {
|
155
|
-
console.error(
|
214
|
+
console.error("Unknown error occurred during permission check");
|
156
215
|
}
|
157
216
|
return true;
|
158
217
|
}
|
@@ -169,11 +228,11 @@ export class DataTableComponent {
|
|
169
228
|
this.onButtonClick.emit(); // Emitindo o evento
|
170
229
|
}
|
171
230
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataTableComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.AuthService }, { token: i2.RefreshService }], target: i0.ɵɵFactoryTarget.Component }); }
|
172
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DataTableComponent, selector: "argenta-list-data-table", inputs: { columns: "columns", hiddenColumns: "hiddenColumns", defaultItemsPerPage: "defaultItemsPerPage", itemsPerPageLabel: "itemsPerPageLabel", showActionColumn: "showActionColumn", actionColumnLabel: "actionColumnLabel", totalItems: "totalItems", fetchDataFunction: "fetchDataFunction", editPermissions: "editPermissions", deletePermissions: "deletePermissions", viewPermissions: "viewPermissions", showPageInfo: "showPageInfo", pageText: "pageText", ofText: "ofText", filterDescription: "filterDescription", buttonLabel: "buttonLabel" }, outputs: { sortChange: "sortChange", pageChange: "pageChange", itemsPerPageChange: "itemsPerPageChange", onEditTable: "onEditTable", onDeleteTable: "onDeleteTable", onViewTable: "onViewTable", onButtonClick: "onButtonClick" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"data-table-header\" style=\"margin-top: 2.5rem;\">\n <div class=\"left-section\">\n <div class=\"form-group\">\n <label for=\"itemsPerPageSelect\" class=\"items-per-page-label\">{{ itemsPerPageLabel }}</label>\n <select\n id=\"itemsPerPageSelect\"\n class=\"form-control form-control-sm d-inline-block w-auto custom-select\"\n [(ngModel)]=\"defaultItemsPerPage\"\n (ngModelChange)=\"onItemsPerPageChange()\">\n <option *ngFor=\"let option of itemsPerPageOptions\" [value]=\"option\">{{ option }}</option>\n </select>\n </div>\n </div>\n <div *ngIf=\"buttonLabel && buttonLabel.length > 0\" class=\"right-section\">\n <button class=\"custom-button\" (click)=\"onNewButtonClick()\">\n <lucide-icon name=\"plus\" [size]=\"28\" [strokeWidth]=\"1.75\"></lucide-icon>\n {{ buttonLabel }}\n </button>\n </div>\n</div>\n\n<div class=\"search-input-container\">\n <argenta-search-input id=\"search\" label=\"\" placeholder=\"Buscar\" [(ngModel)]=\"filterDescription\" (search)=\"onSearch($event)\"></argenta-search-input>\n</div>\n\n<div class=\"table-responsive\" style=\"margin-top: 1rem;\">\n <table class=\"table table-hover\">\n <thead>\n <tr>\n <ng-container *ngFor=\"let column of columns\">\n <th *ngIf=\"!isColumnHidden(column.prop)\" (click)=\"onSort(column.prop)\">\n {{ column.label }}\n </th>\n </ng-container>\n <th *ngIf=\"showActionColumn\" class=\"text-end\" style=\"padding-right: 6.3rem;\">{{ actionColumnLabel }}</th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let item of pagedData; let i = index\">\n <ng-container *ngFor=\"let column of columns\">\n <td *ngIf=\"!isColumnHidden(column.prop)\">\n {{ getNestedProperty(item, column.prop) }}\n </td>\n </ng-container>\n <td *ngIf=\"showActionColumn\" class=\"text-end\">\n <div class=\"d-flex justify-content-end\">\n <div *ngIf=\"hasPermission(editPermissions) && onEditTable.observers.length > 0\" (click)=\"handleAction('edit', item, i)\" class=\"clickable-icon\" style=\"margin-right: 1.5rem;\">\n <lucide-icon name=\"square-pen\" [size]=\"20\" color=\"#2CA58D\" [strokeWidth]=\"1.75\"></lucide-icon>\n </div>\n <div *ngIf=\"hasPermission(viewPermissions) && onViewTable.observers.length > 0\" (click)=\"handleAction('view', item, i)\" class=\"clickable-icon\" style=\"margin-right: 1.5rem;\">\n <lucide-icon name=\"user-round\" [size]=\"20\" color=\"#2CA58D\" [strokeWidth]=\"1.75\"></lucide-icon>\n </div>\n <div *ngIf=\"hasPermission(deletePermissions) && onDeleteTable.observers.length > 0\" (click)=\"handleAction('delete', item, i)\" class=\"clickable-icon\" style=\"margin-right: 1.5rem;\">\n <i-lucide name=\"trash-2\" [size]=\"20\" color=\"#F26E6E\" [strokeWidth]=\"1.75\"></i-lucide>\n </div>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n\n<div class=\"text-center pagination-controls\">\n <custom-pagination\n [totalItems]=\"totalItems\"\n [itemsPerPage]=\"defaultItemsPerPage\"\n [currentPage]=\"currentPage\"\n [showPageInfo]=\"showPageInfo\"\n (pageChange)=\"onPageChange($event)\">\n </custom-pagination>\n</div>\n", styles: ["@charset \"UTF-8\";.clickable-icon{cursor:pointer}:host{font-family:var(--font-family)}.data-table-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:-.2rem}.left-section,.right-section{display:flex;align-items:center}.search-input-container{display:flex;justify-content:flex-start}.left-section .form-group{display:flex;align-items:center}.items-per-page-label{font-family:var(--font-family);font-size:14px;color:#666;margin-right:.2rem}.custom-select{font-family:var(--font-family);font-size:14px;color:#666;background:#fff url('data:image/svg+xml;charset=US-ASCII,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 4 5\"><path fill=\"#666\" d=\"M2 0L0 2h4L2 0zM2 5l2-2H0l2 2z\"/></svg>') no-repeat right .75rem center/8px 10px;border:1px solid #ccc;border-radius:.25rem;padding:.375rem 1.75rem .375rem .75rem;appearance:none;-webkit-appearance:none;-moz-appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem #007bff40}.table{font-family:var(--font-family);font-size:var(--table-font-size, 14px);color:var(--table-font-color, #737b7b);border-collapse:separate;border-spacing:0;border-radius:8px;overflow:hidden}.table thead tr{height:60px}.table thead th{background-color:var(--primary-color);color:var(--text-color);font-family:var(--font-family);font-size:14px;font-weight:600;padding:10px;border-bottom:.1rem solid #dcdcdc;text-align:center;line-height:2.5}.table thead th:first-child{text-align:left;padding-left:1.4rem}.table tbody td{font-family:var(--font-family);font-size:14px;color:#737b7b;padding:10px;border-bottom:.1rem solid #dcdcdc;text-align:center}.table tbody td:first-child{text-align:left;padding-left:1.4rem}.table tbody tr:last-child td{border-bottom:.1rem solid #dcdcdc}.table tbody td{border-right:none;border-left:none}.table thead th:first-child{border-top-left-radius:0}.table thead th:last-child{border-top-right-radius:0}.table tbody tr:last-child td:first-child{border-bottom-left-radius:0}.table tbody tr:last-child td:last-child{border-bottom-right-radius:0}.btn-icon{width:24px;height:24px;background-size:cover;display:inline-block;cursor:pointer;margin-right:16px}.pagination-controls{display:flex;justify-content:center;align-items:center;margin-top:1rem}.custom-button{display:flex;align-items:center;padding:.5rem 1rem .5rem .5rem;border-radius:.25rem;transition:background-color .3s,border-color .3s,filter .3s;font-family:var(--font-family);font-size:16px;font-weight:600;height:40px;letter-spacing:.005em;text-align:left;color:#fff;background-color:var(--secondary-color);border:none;cursor:pointer}.custom-button lucide-icon{margin-right:.5rem}.custom-button:hover{box-shadow:0 0 0 .15rem var(--secondary-color)}.custom-button:active{background-color:var(--secondary-color)}.custom-button:focus{outline:none;box-shadow:0 0 0 .15rem var(--secondary-color)}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.LucideAngularComponent, selector: "lucide-angular, lucide-icon, i-lucide, span-lucide", inputs: ["class", "name", "img", "color", "absoluteStrokeWidth", "size", "strokeWidth"] }, { kind: "component", type: i6.CustomPaginationComponent, selector: "custom-pagination", inputs: ["totalItems", "itemsPerPage", "currentPage", "showPageInfo"], outputs: ["pageChange"] }, { kind: "component", type: i7.SearchInputComponent, selector: "argenta-search-input", inputs: ["id", "label", "type", "placeholder", "value", "disabled", "readonly", "autofocus", "maxlength", "minlength", "required", "pattern", "debounceTime"], outputs: ["search", "inputChange", "change", "focus", "blur", "keyup", "keydown", "keypress"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
231
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DataTableComponent, selector: "argenta-list-data-table", inputs: { columns: "columns", hiddenColumns: "hiddenColumns", defaultItemsPerPage: "defaultItemsPerPage", itemsPerPageLabel: "itemsPerPageLabel", showActionColumn: "showActionColumn", actionColumnLabel: "actionColumnLabel", totalItems: "totalItems", fetchDataFunction: "fetchDataFunction", editPermissions: "editPermissions", deletePermissions: "deletePermissions", viewPermissions: "viewPermissions", showPageInfo: "showPageInfo", pageText: "pageText", ofText: "ofText", filterDescription: "filterDescription", buttonLabel: "buttonLabel", pagedData: "pagedData", initialFilterField: "initialFilterField" }, outputs: { pageChange: "pageChange", itemsPerPageChange: "itemsPerPageChange", onEditTable: "onEditTable", onDeleteTable: "onDeleteTable", onViewTable: "onViewTable", onButtonClick: "onButtonClick", filterFieldChange: "filterFieldChange" }, ngImport: i0, template: "<div class=\"data-table-header\" style=\"margin-top: 2.5rem\">\n <div class=\"left-section\">\n <div class=\"form-group\">\n <label for=\"itemsPerPageSelect\" class=\"items-per-page-label\">{{\n itemsPerPageLabel\n }}</label>\n <select\n id=\"itemsPerPageSelect\"\n class=\"form-control form-control-sm d-inline-block w-auto custom-select\"\n [(ngModel)]=\"defaultItemsPerPage\"\n (ngModelChange)=\"onItemsPerPageChange()\"\n >\n <option *ngFor=\"let option of itemsPerPageOptions\" [value]=\"option\">\n {{ option }}\n </option>\n </select>\n </div>\n </div>\n <div *ngIf=\"buttonLabel && buttonLabel.length > 0\" class=\"right-section\">\n <button class=\"custom-button\" (click)=\"onNewButtonClick()\">\n <lucide-icon name=\"plus\" [size]=\"28\" [strokeWidth]=\"1.75\"></lucide-icon>\n {{ buttonLabel }}\n </button>\n </div>\n</div>\n\n<div class=\"search-input-container\">\n <argenta-search-input\n id=\"search\"\n label=\"\"\n placeholder=\"Buscar\"\n [(ngModel)]=\"filterDescription\"\n (search)=\"onSearch($event)\"\n ></argenta-search-input>\n</div>\n\n<div class=\"table-responsive\" style=\"margin-top: 1rem\">\n <table class=\"table table-hover\">\n <thead>\n <tr>\n <ng-container *ngFor=\"let column of columns\">\n <th\n *ngIf=\"!isColumnHidden(column.prop)\"\n (click)=\"onSelectSearchField(column.prop)\"\n >\n {{ column.label }}\n <span>\n <i-lucide\n name=\"arrow-up\"\n [size]=\"14\"\n [class.selected]=\"\n column.isSearchSelected && sortDirection === 'asc'\n \"\n ></i-lucide>\n <i-lucide\n name=\"arrow-down\"\n [size]=\"14\"\n [class.selected]=\"\n column.isSearchSelected && sortDirection === 'desc'\n \"\n ></i-lucide>\n </span>\n </th>\n </ng-container>\n <th\n *ngIf=\"showActionColumn\"\n class=\"text-end\"\n style=\"padding-right: 6.3rem\"\n >\n {{ actionColumnLabel }}\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let item of pagedData; let i = index\">\n <ng-container *ngFor=\"let column of columns\">\n <td *ngIf=\"!isColumnHidden(column.prop)\">\n {{ getNestedProperty(item, column.prop) }}\n </td>\n </ng-container>\n <td *ngIf=\"showActionColumn\" class=\"text-end\">\n <div class=\"d-flex justify-content-end\">\n <div\n *ngIf=\"\n hasPermission(editPermissions) &&\n onEditTable.observers.length > 0\n \"\n (click)=\"handleAction('edit', item, i)\"\n class=\"clickable-icon\"\n style=\"margin-right: 1.5rem\"\n >\n <lucide-icon\n name=\"square-pen\"\n [size]=\"20\"\n color=\"#2CA58D\"\n [strokeWidth]=\"1.75\"\n ></lucide-icon>\n </div>\n <div\n *ngIf=\"\n hasPermission(viewPermissions) &&\n onViewTable.observers.length > 0\n \"\n (click)=\"handleAction('view', item, i)\"\n class=\"clickable-icon\"\n style=\"margin-right: 1.5rem\"\n >\n <lucide-icon\n name=\"user-round\"\n [size]=\"20\"\n color=\"#2CA58D\"\n [strokeWidth]=\"1.75\"\n ></lucide-icon>\n </div>\n <div\n *ngIf=\"\n hasPermission(deletePermissions) &&\n onDeleteTable.observers.length > 0\n \"\n (click)=\"handleAction('delete', item, i)\"\n class=\"clickable-icon\"\n style=\"margin-right: 1.5rem\"\n >\n <i-lucide\n name=\"trash-2\"\n [size]=\"20\"\n color=\"#F26E6E\"\n [strokeWidth]=\"1.75\"\n ></i-lucide>\n </div>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n\n<div class=\"text-center pagination-controls\">\n <custom-pagination\n [totalItems]=\"totalItems\"\n [itemsPerPage]=\"defaultItemsPerPage\"\n [currentPage]=\"currentPage\"\n [showPageInfo]=\"showPageInfo\"\n (pageChange)=\"onPageChange($event)\"\n >\n </custom-pagination>\n</div>\n", styles: ["@charset \"UTF-8\";.clickable-icon{cursor:pointer}:host{font-family:var(--font-family)}.data-table-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:-.2rem}.left-section,.right-section{display:flex;align-items:center}.search-input-container{display:flex;justify-content:flex-start}.left-section .form-group{display:flex;align-items:center}.items-per-page-label{font-family:var(--font-family);font-size:14px;color:#666;margin-right:.2rem}.custom-select{font-family:var(--font-family);font-size:14px;color:#666;background:#fff url('data:image/svg+xml;charset=US-ASCII,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 4 5\"><path fill=\"#666\" d=\"M2 0L0 2h4L2 0zM2 5l2-2H0l2 2z\"/></svg>') no-repeat right .75rem center/8px 10px;border:1px solid #ccc;border-radius:.25rem;padding:.375rem 1.75rem .375rem .75rem;appearance:none;-webkit-appearance:none;-moz-appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem #007bff40}.table{font-family:var(--font-family);font-size:var(--table-font-size, 14px);color:var(--table-font-color, #737b7b);border-collapse:separate;border-spacing:0;border-radius:8px;overflow:hidden}.table thead tr{height:60px}.table thead th{background-color:var(--primary-color);color:var(--text-color);font-family:var(--font-family);font-size:14px;font-weight:600;padding:10px;border-bottom:.1rem solid #dcdcdc;text-align:center;line-height:2.5}.table thead th:first-child{text-align:left;padding-left:1.4rem}.table tbody td{font-family:var(--font-family);font-size:14px;color:#737b7b;padding:10px;border-bottom:.1rem solid #dcdcdc;text-align:center}.table tbody td:first-child{text-align:left;padding-left:1.4rem}.table tbody tr:last-child td{border-bottom:.1rem solid #dcdcdc}.table tbody td{border-right:none;border-left:none}.table thead th:first-child{border-top-left-radius:0}.table thead th:last-child{border-top-right-radius:0}.table tbody tr:last-child td:first-child{border-bottom-left-radius:0}.table tbody tr:last-child td:last-child{border-bottom-right-radius:0}.btn-icon{width:24px;height:24px;background-size:cover;display:inline-block;cursor:pointer;margin-right:16px}.pagination-controls{display:flex;justify-content:center;align-items:center;margin-top:1rem}.custom-button{display:flex;align-items:center;padding:.5rem 1rem .5rem .5rem;border-radius:.25rem;transition:background-color .3s,border-color .3s,filter .3s;font-family:var(--font-family);font-size:16px;font-weight:600;height:40px;letter-spacing:.005em;text-align:left;color:#fff;background-color:var(--secondary-color);border:none;cursor:pointer}.custom-button lucide-icon{margin-right:.5rem}.custom-button:hover{box-shadow:0 0 0 .15rem var(--secondary-color)}.custom-button:active{background-color:var(--secondary-color)}.custom-button:focus{outline:none;box-shadow:0 0 0 .15rem var(--secondary-color)}.selected{color:var(--secondary-color);stroke-width:8}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.LucideAngularComponent, selector: "lucide-angular, lucide-icon, i-lucide, span-lucide", inputs: ["class", "name", "img", "color", "absoluteStrokeWidth", "size", "strokeWidth"] }, { kind: "component", type: i6.CustomPaginationComponent, selector: "custom-pagination", inputs: ["totalItems", "itemsPerPage", "currentPage", "showPageInfo"], outputs: ["pageChange"] }, { kind: "component", type: i7.SearchInputComponent, selector: "argenta-search-input", inputs: ["id", "label", "type", "placeholder", "value", "disabled", "readonly", "autofocus", "maxlength", "minlength", "required", "pattern", "debounceTime"], outputs: ["search", "inputChange", "change", "focus", "blur", "keyup", "keydown", "keypress"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
173
232
|
}
|
174
233
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DataTableComponent, decorators: [{
|
175
234
|
type: Component,
|
176
|
-
args: [{ selector:
|
235
|
+
args: [{ selector: "argenta-list-data-table", changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"data-table-header\" style=\"margin-top: 2.5rem\">\n <div class=\"left-section\">\n <div class=\"form-group\">\n <label for=\"itemsPerPageSelect\" class=\"items-per-page-label\">{{\n itemsPerPageLabel\n }}</label>\n <select\n id=\"itemsPerPageSelect\"\n class=\"form-control form-control-sm d-inline-block w-auto custom-select\"\n [(ngModel)]=\"defaultItemsPerPage\"\n (ngModelChange)=\"onItemsPerPageChange()\"\n >\n <option *ngFor=\"let option of itemsPerPageOptions\" [value]=\"option\">\n {{ option }}\n </option>\n </select>\n </div>\n </div>\n <div *ngIf=\"buttonLabel && buttonLabel.length > 0\" class=\"right-section\">\n <button class=\"custom-button\" (click)=\"onNewButtonClick()\">\n <lucide-icon name=\"plus\" [size]=\"28\" [strokeWidth]=\"1.75\"></lucide-icon>\n {{ buttonLabel }}\n </button>\n </div>\n</div>\n\n<div class=\"search-input-container\">\n <argenta-search-input\n id=\"search\"\n label=\"\"\n placeholder=\"Buscar\"\n [(ngModel)]=\"filterDescription\"\n (search)=\"onSearch($event)\"\n ></argenta-search-input>\n</div>\n\n<div class=\"table-responsive\" style=\"margin-top: 1rem\">\n <table class=\"table table-hover\">\n <thead>\n <tr>\n <ng-container *ngFor=\"let column of columns\">\n <th\n *ngIf=\"!isColumnHidden(column.prop)\"\n (click)=\"onSelectSearchField(column.prop)\"\n >\n {{ column.label }}\n <span>\n <i-lucide\n name=\"arrow-up\"\n [size]=\"14\"\n [class.selected]=\"\n column.isSearchSelected && sortDirection === 'asc'\n \"\n ></i-lucide>\n <i-lucide\n name=\"arrow-down\"\n [size]=\"14\"\n [class.selected]=\"\n column.isSearchSelected && sortDirection === 'desc'\n \"\n ></i-lucide>\n </span>\n </th>\n </ng-container>\n <th\n *ngIf=\"showActionColumn\"\n class=\"text-end\"\n style=\"padding-right: 6.3rem\"\n >\n {{ actionColumnLabel }}\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let item of pagedData; let i = index\">\n <ng-container *ngFor=\"let column of columns\">\n <td *ngIf=\"!isColumnHidden(column.prop)\">\n {{ getNestedProperty(item, column.prop) }}\n </td>\n </ng-container>\n <td *ngIf=\"showActionColumn\" class=\"text-end\">\n <div class=\"d-flex justify-content-end\">\n <div\n *ngIf=\"\n hasPermission(editPermissions) &&\n onEditTable.observers.length > 0\n \"\n (click)=\"handleAction('edit', item, i)\"\n class=\"clickable-icon\"\n style=\"margin-right: 1.5rem\"\n >\n <lucide-icon\n name=\"square-pen\"\n [size]=\"20\"\n color=\"#2CA58D\"\n [strokeWidth]=\"1.75\"\n ></lucide-icon>\n </div>\n <div\n *ngIf=\"\n hasPermission(viewPermissions) &&\n onViewTable.observers.length > 0\n \"\n (click)=\"handleAction('view', item, i)\"\n class=\"clickable-icon\"\n style=\"margin-right: 1.5rem\"\n >\n <lucide-icon\n name=\"user-round\"\n [size]=\"20\"\n color=\"#2CA58D\"\n [strokeWidth]=\"1.75\"\n ></lucide-icon>\n </div>\n <div\n *ngIf=\"\n hasPermission(deletePermissions) &&\n onDeleteTable.observers.length > 0\n \"\n (click)=\"handleAction('delete', item, i)\"\n class=\"clickable-icon\"\n style=\"margin-right: 1.5rem\"\n >\n <i-lucide\n name=\"trash-2\"\n [size]=\"20\"\n color=\"#F26E6E\"\n [strokeWidth]=\"1.75\"\n ></i-lucide>\n </div>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n\n<div class=\"text-center pagination-controls\">\n <custom-pagination\n [totalItems]=\"totalItems\"\n [itemsPerPage]=\"defaultItemsPerPage\"\n [currentPage]=\"currentPage\"\n [showPageInfo]=\"showPageInfo\"\n (pageChange)=\"onPageChange($event)\"\n >\n </custom-pagination>\n</div>\n", styles: ["@charset \"UTF-8\";.clickable-icon{cursor:pointer}:host{font-family:var(--font-family)}.data-table-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:-.2rem}.left-section,.right-section{display:flex;align-items:center}.search-input-container{display:flex;justify-content:flex-start}.left-section .form-group{display:flex;align-items:center}.items-per-page-label{font-family:var(--font-family);font-size:14px;color:#666;margin-right:.2rem}.custom-select{font-family:var(--font-family);font-size:14px;color:#666;background:#fff url('data:image/svg+xml;charset=US-ASCII,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 4 5\"><path fill=\"#666\" d=\"M2 0L0 2h4L2 0zM2 5l2-2H0l2 2z\"/></svg>') no-repeat right .75rem center/8px 10px;border:1px solid #ccc;border-radius:.25rem;padding:.375rem 1.75rem .375rem .75rem;appearance:none;-webkit-appearance:none;-moz-appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem #007bff40}.table{font-family:var(--font-family);font-size:var(--table-font-size, 14px);color:var(--table-font-color, #737b7b);border-collapse:separate;border-spacing:0;border-radius:8px;overflow:hidden}.table thead tr{height:60px}.table thead th{background-color:var(--primary-color);color:var(--text-color);font-family:var(--font-family);font-size:14px;font-weight:600;padding:10px;border-bottom:.1rem solid #dcdcdc;text-align:center;line-height:2.5}.table thead th:first-child{text-align:left;padding-left:1.4rem}.table tbody td{font-family:var(--font-family);font-size:14px;color:#737b7b;padding:10px;border-bottom:.1rem solid #dcdcdc;text-align:center}.table tbody td:first-child{text-align:left;padding-left:1.4rem}.table tbody tr:last-child td{border-bottom:.1rem solid #dcdcdc}.table tbody td{border-right:none;border-left:none}.table thead th:first-child{border-top-left-radius:0}.table thead th:last-child{border-top-right-radius:0}.table tbody tr:last-child td:first-child{border-bottom-left-radius:0}.table tbody tr:last-child td:last-child{border-bottom-right-radius:0}.btn-icon{width:24px;height:24px;background-size:cover;display:inline-block;cursor:pointer;margin-right:16px}.pagination-controls{display:flex;justify-content:center;align-items:center;margin-top:1rem}.custom-button{display:flex;align-items:center;padding:.5rem 1rem .5rem .5rem;border-radius:.25rem;transition:background-color .3s,border-color .3s,filter .3s;font-family:var(--font-family);font-size:16px;font-weight:600;height:40px;letter-spacing:.005em;text-align:left;color:#fff;background-color:var(--secondary-color);border:none;cursor:pointer}.custom-button lucide-icon{margin-right:.5rem}.custom-button:hover{box-shadow:0 0 0 .15rem var(--secondary-color)}.custom-button:active{background-color:var(--secondary-color)}.custom-button:focus{outline:none;box-shadow:0 0 0 .15rem var(--secondary-color)}.selected{color:var(--secondary-color);stroke-width:8}\n"] }]
|
177
236
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.AuthService }, { type: i2.RefreshService }]; }, propDecorators: { columns: [{
|
178
237
|
type: Input
|
179
238
|
}], hiddenColumns: [{
|
@@ -206,8 +265,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
206
265
|
type: Input
|
207
266
|
}], buttonLabel: [{
|
208
267
|
type: Input
|
209
|
-
}],
|
210
|
-
type:
|
268
|
+
}], pagedData: [{
|
269
|
+
type: Input
|
270
|
+
}], initialFilterField: [{
|
271
|
+
type: Input
|
211
272
|
}], pageChange: [{
|
212
273
|
type: Output
|
213
274
|
}], itemsPerPageChange: [{
|
@@ -220,5 +281,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
220
281
|
type: Output
|
221
282
|
}], onButtonClick: [{
|
222
283
|
type: Output
|
284
|
+
}], filterFieldChange: [{
|
285
|
+
type: Output
|
223
286
|
}] } });
|
224
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saWItcG9ydGFsLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy9kYXRhLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpYi1wb3J0YWwtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvdGFibGVzL2RhdGEtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBZ0MsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQTtBQUMvSixPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDLENBQUMsb0JBQW9COzs7Ozs7Ozs7QUFXbEYsTUFBTSxPQUFPLGtCQUFrQjtJQTZDN0IsWUFBb0IsR0FBc0IsRUFBVSxXQUF3QixFQUFVLGNBQThCO1FBQWhHLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUE1QzNHLFlBQU8sR0FBc0MsRUFBRSxDQUFDO1FBQ2hELGtCQUFhLEdBQWEsRUFBRSxDQUFDO1FBQzdCLHdCQUFtQixHQUFXLEVBQUUsQ0FBQztRQUNqQyxzQkFBaUIsR0FBVyxpQkFBaUIsQ0FBQztRQUM5QyxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFDbEMsc0JBQWlCLEdBQVcsU0FBUyxDQUFDO1FBQ3RDLGVBQVUsR0FBVyxDQUFDLENBQUM7UUFDdkIsc0JBQWlCLEdBQXFFLEdBQUcs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ZC9CLG96R0F1RUE7OzRGRHpEYSxrQkFBa0I7a0JBTjlCLFNBQVM7K0JBQ0UseUJBQXlCLG1CQUdsQix1QkFBdUIsQ0FBQyxNQUFNOytKQUd0QyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBR0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVJLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IEJ1dHRvbkNsYXNzZXMgfSBmcm9tICcuLi8uLi9lbnVtL0J1dHRvbkNsYXNzZXNFbnVtJzsgLy8gSW1wb3J0YW5kbyBvIGVudW1cbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9hdXRoLXNlcnZpY2Uuc2VydmljZSdcbmltcG9ydCB7IFJlZnJlc2hTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9yZWZyZXNoLXNlcnZpY2Uuc2VydmljZSdcbmltcG9ydCB7IElEYXRhSW5kZXhQYWdpbmF0ZSwgSVBhZ2luYXRlUmVzdWx0IH0gZnJvbSAnLi9kYXRhLXBhZ2luYXRlLnNlcnZpY2UnXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FyZ2VudGEtbGlzdC1kYXRhLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGEtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRhLXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIERhdGFUYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBjb2x1bW5zOiB7IGxhYmVsOiBzdHJpbmcsIHByb3A6IHN0cmluZyB9W10gPSBbXTtcbiAgQElucHV0KCkgaGlkZGVuQ29sdW1uczogc3RyaW5nW10gPSBbXTtcbiAgQElucHV0KCkgZGVmYXVsdEl0ZW1zUGVyUGFnZTogbnVtYmVyID0gMTA7XG4gIEBJbnB1dCgpIGl0ZW1zUGVyUGFnZUxhYmVsOiBzdHJpbmcgPSAnSXRlbXMgcGVyIHBhZ2U6JztcbiAgQElucHV0KCkgc2hvd0FjdGlvbkNvbHVtbjogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBhY3Rpb25Db2x1bW5MYWJlbDogc3RyaW5nID0gJ0FjdGlvbnMnO1xuICBASW5wdXQoKSB0b3RhbEl0ZW1zOiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSBmZXRjaERhdGFGdW5jdGlvbjogKHBhcmFtczogSURhdGFJbmRleFBhZ2luYXRlKSA9PiBPYnNlcnZhYmxlPElQYWdpbmF0ZVJlc3VsdDxhbnk+PiA9ICgpID0+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoc3Vic2NyaWJlciA9PiBzdWJzY3JpYmVyLmVycm9yKCdJbXBsZW1lbnQgdGhlIGZldGNoRGF0YUZ1bmN0aW9uIHRvIGZldGNoIHBhZ2luYXRlZCBkYXRhIGZyb20gdGhlIGJhY2stZW5kLicpKTtcbiAgfTtcbiAgQElucHV0KCkgZWRpdFBlcm1pc3Npb25zOiBzdHJpbmdbXSA9IFtdO1xuICBASW5wdXQoKSBkZWxldGVQZXJtaXNzaW9uczogc3RyaW5nW10gPSBbXTtcbiAgQElucHV0KCkgdmlld1Blcm1pc3Npb25zOiBzdHJpbmdbXSA9IFtdO1xuICBASW5wdXQoKSBzaG93UGFnZUluZm86IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBwYWdlVGV4dDogc3RyaW5nID0gJ1BhZ2UnO1xuICBASW5wdXQoKSBvZlRleHQ6IHN0cmluZyA9ICdvZic7XG4gIEBJbnB1dCgpIGZpbHRlckRlc2NyaXB0aW9uOiBzdHJpbmcgPSAnJztcblxuICBASW5wdXQoKSBidXR0b25MYWJlbDogc3RyaW5nID0gJyc7IC8vIEFkaWNpb25hbmRvIG8gSW5wdXQgcGFyYSBvIGxhYmVsIGRvIGJvdMOjb1xuXG4gIEBPdXRwdXQoKSBzb3J0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHBhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgaXRlbXNQZXJQYWdlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uRWRpdFRhYmxlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uRGVsZXRlVGFibGU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25WaWV3VGFibGU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25CdXR0b25DbGljazogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpOyAvLyBOb3ZvIGV2ZW50b1xuXG4gIGl0ZW1zUGVyUGFnZU9wdGlvbnM6IG51bWJlcltdID0gWzUsIDEwLCAxNSwgMjVdO1xuICBjdXJyZW50UGFnZTogbnVtYmVyID0gMTtcbiAgc29ydENvbHVtbjogc3RyaW5nID0gJyc7XG4gIHNvcnREaXJlY3Rpb246ICdhc2MnIHwgJ2Rlc2MnID0gJ2FzYyc7XG4gIHBhZ2VkRGF0YTogYW55W10gPSBbXTtcbiAgaXNMb2FkaW5nID0gZmFsc2U7XG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIGlzSW5pdGlhbGl6ZWQgPSBmYWxzZTsgLy8gRmxhZyBwYXJhIGV2aXRhciBjaGFtYWRhcyBkdXBsYXNcbiAgQnV0dG9uQ2xhc3NlcyA9IEJ1dHRvbkNsYXNzZXM7XG5cbiAgbGFiZWxTdHlsZSA9IHtcbiAgICAnZm9udC1mYW1pbHknOiAnSW50ZXIsIEFyaWFsLCBzYW5zLXNlcmlmJyxcbiAgICAnZm9udC1zaXplJzogJzE0cHgnLFxuICAgICdjb2xvcic6ICcjMDAwJ1xuICB9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsIHByaXZhdGUgcmVmcmVzaFNlcnZpY2U6IFJlZnJlc2hTZXJ2aWNlKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmZldGNoRGF0YSgpO1xuICAgIHRoaXMucmVmcmVzaFNlcnZpY2UucmVmcmVzaCRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5pc0luaXRpYWxpemVkKSB7XG4gICAgICAgICAgdGhpcy5yZWZyZXNoRGF0YSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB0aGlzLmlzSW5pdGlhbGl6ZWQgPSB0cnVlO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWyd0b3RhbEl0ZW1zJ10gfHwgY2hhbmdlc1snZGVmYXVsdEl0ZW1zUGVyUGFnZSddIHx8IGNoYW5nZXNbJ2N1cnJlbnRQYWdlJ10gfHwgY2hhbmdlc1snZmV0Y2hEYXRhRnVuY3Rpb24nXSB8fCBjaGFuZ2VzWydmaWx0ZXJEZXNjcmlwdGlvbiddKSB7XG4gICAgICB0aGlzLmZldGNoRGF0YSgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXROZXN0ZWRQcm9wZXJ0eShvYmo6IGFueSwgcGF0aDogc3RyaW5nKTogYW55IHtcbiAgICByZXR1cm4gcGF0aC5zcGxpdCgnLicpLnJlZHVjZSgoYWNjLCBwYXJ0KSA9PiBhY2MgJiYgYWNjW3BhcnRdLCBvYmopO1xuICB9XG5cbiAgZmV0Y2hEYXRhKCkge1xuICAgIGlmICh0aGlzLmZldGNoRGF0YUZ1bmN0aW9uKSB7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgICBjb25zdCBwYXJhbXM6IElEYXRhSW5kZXhQYWdpbmF0ZSA9IHtcbiAgICAgICAgZmlsdGVyRGVzY3JpcHRpb246IHRoaXMuZmlsdGVyRGVzY3JpcHRpb24sXG4gICAgICAgIHBhZ2VOdW1iZXI6IHRoaXMuY3VycmVudFBhZ2UsXG4gICAgICAgIHBhZ2VTaXplOiB0aGlzLmRlZmF1bHRJdGVtc1BlclBhZ2UsXG4gICAgICAgIHNvcnRDb2x1bW46IHRoaXMuc29ydENvbHVtbixcbiAgICAgICAgc29ydERpcmVjdGlvbjogdGhpcy5zb3J0RGlyZWN0aW9uXG4gICAgICB9O1xuICAgICAgdGhpcy5mZXRjaERhdGFGdW5jdGlvbihwYXJhbXMpLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxuICAgICAgKS5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAocmVzdWx0KSA9PiB7XG4gICAgICAgICAgdGhpcy5wYWdlZERhdGEgPSByZXN1bHQuaXRlbXM7XG4gICAgICAgICAgdGhpcy50b3RhbEl0ZW1zID0gcmVzdWx0LnRvdGFsSXRlbXM7XG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIGRhdGE6JywgZXJyb3IpO1xuICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJlZnJlc2hEYXRhKCkge1xuICAgIHRoaXMuZmV0Y2hEYXRhKCk7XG4gIH1cblxuICBvblNvcnQoY29sdW1uOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNvcnRDb2x1bW4gPSBjb2x1bW47XG4gICAgdGhpcy5zb3J0RGlyZWN0aW9uID0gdGhpcy5zb3J0RGlyZWN0aW9uID09PSAnYXNjJyA/ICdkZXNjJyA6ICdhc2MnO1xuICAgIHRoaXMuc29ydENoYW5nZS5lbWl0KHsgY29sdW1uLCBkaXJlY3Rpb246IHRoaXMuc29ydERpcmVjdGlvbiB9KTtcbiAgICB0aGlzLmZldGNoRGF0YSgpO1xuICB9XG5cbiAgb25QYWdlQ2hhbmdlKHBhZ2U6IG51bWJlcikge1xuICAgIHRoaXMuY3VycmVudFBhZ2UgPSBwYWdlO1xuICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KHBhZ2UpO1xuICAgIHRoaXMuZmV0Y2hEYXRhKCk7XG4gIH1cblxuICBvbkl0ZW1zUGVyUGFnZUNoYW5nZSgpIHtcbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gMTtcbiAgICB0aGlzLml0ZW1zUGVyUGFnZUNoYW5nZS5lbWl0KHRoaXMuZGVmYXVsdEl0ZW1zUGVyUGFnZSk7XG4gICAgdGhpcy5mZXRjaERhdGEoKTtcbiAgfVxuXG4gIGhhbmRsZUFjdGlvbihhY3Rpb246IHN0cmluZywgaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSB7XG4gICAgc3dpdGNoIChhY3Rpb24pIHtcbiAgICAgIGNhc2UgJ2VkaXQnOlxuICAgICAgICBpZiAodGhpcy5oYXNQZXJtaXNzaW9uKHRoaXMuZWRpdFBlcm1pc3Npb25zKSkge1xuICAgICAgICAgIHRoaXMub25FZGl0VGFibGUuZW1pdCh7IGl0ZW0sIGluZGV4IH0pO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnZGVsZXRlJzpcbiAgICAgICAgaWYgKHRoaXMuaGFzUGVybWlzc2lvbih0aGlzLmRlbGV0ZVBlcm1pc3Npb25zKSkge1xuICAgICAgICAgIHRoaXMub25EZWxldGVUYWJsZS5lbWl0KHsgaXRlbSwgaW5kZXggfSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd2aWV3JzpcbiAgICAgICAgaWYgKHRoaXMuaGFzUGVybWlzc2lvbih0aGlzLnZpZXdQZXJtaXNzaW9ucykpIHtcbiAgICAgICAgICB0aGlzLm9uVmlld1RhYmxlLmVtaXQoeyBpdGVtLCBpbmRleCB9KTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBoYXNQZXJtaXNzaW9uKHJlcXVpcmVkUGVybWlzc2lvbnM6IHN0cmluZ1tdKTogYm9vbGVhbiB7XG4gICAgaWYgKCFyZXF1aXJlZFBlcm1pc3Npb25zIHx8IHJlcXVpcmVkUGVybWlzc2lvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHRoaXMuYXV0aFNlcnZpY2UuaGFzUGVybWlzc2lvbihyZXF1aXJlZFBlcm1pc3Npb25zKTtcbiAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignUGVybWlzc2lvbiBlcnJvcjonLCBlcnJvci5tZXNzYWdlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ1Vua25vd24gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHBlcm1pc3Npb24gY2hlY2snKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGlzQ29sdW1uSGlkZGVuKGNvbHVtblByb3A6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhpZGRlbkNvbHVtbnMuaW5jbHVkZXMoY29sdW1uUHJvcCk7XG4gIH1cblxuICBvblNlYXJjaChzZWFyY2hUZXh0OiBzdHJpbmcpIHtcbiAgICB0aGlzLmZpbHRlckRlc2NyaXB0aW9uID0gc2VhcmNoVGV4dDtcbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gMTsgLy8gUmVzZXRhciBwYXJhIGEgcHJpbWVpcmEgcMOhZ2luYVxuICAgIHRoaXMuZmV0Y2hEYXRhKCk7XG4gIH1cblxuICBvbk5ld0J1dHRvbkNsaWNrKCkge1xuICAgIHRoaXMub25CdXR0b25DbGljay5lbWl0KCk7IC8vIEVtaXRpbmRvIG8gZXZlbnRvXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkYXRhLXRhYmxlLWhlYWRlclwiIHN0eWxlPVwibWFyZ2luLXRvcDogMi41cmVtO1wiPlxuICA8ZGl2IGNsYXNzPVwibGVmdC1zZWN0aW9uXCI+XG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgIDxsYWJlbCBmb3I9XCJpdGVtc1BlclBhZ2VTZWxlY3RcIiBjbGFzcz1cIml0ZW1zLXBlci1wYWdlLWxhYmVsXCI+e3sgaXRlbXNQZXJQYWdlTGFiZWwgfX08L2xhYmVsPlxuICAgICAgPHNlbGVjdFxuICAgICAgICBpZD1cIml0ZW1zUGVyUGFnZVNlbGVjdFwiXG4gICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zbSBkLWlubGluZS1ibG9jayB3LWF1dG8gY3VzdG9tLXNlbGVjdFwiXG4gICAgICAgIFsobmdNb2RlbCldPVwiZGVmYXVsdEl0ZW1zUGVyUGFnZVwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uSXRlbXNQZXJQYWdlQ2hhbmdlKClcIj5cbiAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGl0ZW1zUGVyUGFnZU9wdGlvbnNcIiBbdmFsdWVdPVwib3B0aW9uXCI+e3sgb3B0aW9uIH19PC9vcHRpb24+XG4gICAgICA8L3NlbGVjdD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gICA8ZGl2ICpuZ0lmPVwiYnV0dG9uTGFiZWwgJiYgYnV0dG9uTGFiZWwubGVuZ3RoID4gMFwiIGNsYXNzPVwicmlnaHQtc2VjdGlvblwiPlxuICAgIDxidXR0b24gY2xhc3M9XCJjdXN0b20tYnV0dG9uXCIgKGNsaWNrKT1cIm9uTmV3QnV0dG9uQ2xpY2soKVwiPlxuICAgICAgPGx1Y2lkZS1pY29uIG5hbWU9XCJwbHVzXCIgW3NpemVdPVwiMjhcIiBbc3Ryb2tlV2lkdGhdPVwiMS43NVwiPjwvbHVjaWRlLWljb24+XG4gICAgICB7eyBidXR0b25MYWJlbCB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwic2VhcmNoLWlucHV0LWNvbnRhaW5lclwiPlxuICA8YXJnZW50YS1zZWFyY2gtaW5wdXQgaWQ9XCJzZWFyY2hcIiBsYWJlbD1cIlwiIHBsYWNlaG9sZGVyPVwiQnVzY2FyXCIgWyhuZ01vZGVsKV09XCJmaWx0ZXJEZXNjcmlwdGlvblwiIChzZWFyY2gpPVwib25TZWFyY2goJGV2ZW50KVwiPjwvYXJnZW50YS1zZWFyY2gtaW5wdXQ+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmVcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDFyZW07XCI+XG4gIDx0YWJsZSBjbGFzcz1cInRhYmxlIHRhYmxlLWhvdmVyXCI+XG4gICAgPHRoZWFkPlxuICAgICAgPHRyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2x1bW4gb2YgY29sdW1uc1wiPlxuICAgICAgICAgIDx0aCAqbmdJZj1cIiFpc0NvbHVtbkhpZGRlbihjb2x1bW4ucHJvcClcIiAoY2xpY2spPVwib25Tb3J0KGNvbHVtbi5wcm9wKVwiPlxuICAgICAgICAgICAge3sgY29sdW1uLmxhYmVsIH19XG4gICAgICAgICAgPC90aD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDx0aCAqbmdJZj1cInNob3dBY3Rpb25Db2x1bW5cIiBjbGFzcz1cInRleHQtZW5kXCIgc3R5bGU9XCJwYWRkaW5nLXJpZ2h0OiA2LjNyZW07XCI+e3sgYWN0aW9uQ29sdW1uTGFiZWwgfX08L3RoPlxuICAgICAgPC90cj5cbiAgICA8L3RoZWFkPlxuICAgIDx0Ym9keT5cbiAgICAgIDx0ciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBwYWdlZERhdGE7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnNcIj5cbiAgICAgICAgICA8dGQgKm5nSWY9XCIhaXNDb2x1bW5IaWRkZW4oY29sdW1uLnByb3ApXCI+XG4gICAgICAgICAgICB7eyBnZXROZXN0ZWRQcm9wZXJ0eShpdGVtLCBjb2x1bW4ucHJvcCkgfX1cbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPHRkICpuZ0lmPVwic2hvd0FjdGlvbkNvbHVtblwiIGNsYXNzPVwidGV4dC1lbmRcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmRcIj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJoYXNQZXJtaXNzaW9uKGVkaXRQZXJtaXNzaW9ucykgJiYgb25FZGl0VGFibGUub2JzZXJ2ZXJzLmxlbmd0aCA+IDBcIiAoY2xpY2spPVwiaGFuZGxlQWN0aW9uKCdlZGl0JywgaXRlbSwgaSlcIiBjbGFzcz1cImNsaWNrYWJsZS1pY29uXCIgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDEuNXJlbTtcIj5cbiAgICAgICAgICAgICAgPGx1Y2lkZS1pY29uIG5hbWU9XCJzcXVhcmUtcGVuXCIgW3NpemVdPVwiMjBcIiBjb2xvcj1cIiMyQ0E1OERcIiBbc3Ryb2tlV2lkdGhdPVwiMS43NVwiPjwvbHVjaWRlLWljb24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJoYXNQZXJtaXNzaW9uKHZpZXdQZXJtaXNzaW9ucykgJiYgb25WaWV3VGFibGUub2JzZXJ2ZXJzLmxlbmd0aCA+IDBcIiAoY2xpY2spPVwiaGFuZGxlQWN0aW9uKCd2aWV3JywgaXRlbSwgaSlcIiBjbGFzcz1cImNsaWNrYWJsZS1pY29uXCIgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDEuNXJlbTtcIj5cbiAgICAgICAgICAgICAgPGx1Y2lkZS1pY29uIG5hbWU9XCJ1c2VyLXJvdW5kXCIgW3NpemVdPVwiMjBcIiBjb2xvcj1cIiMyQ0E1OERcIiBbc3Ryb2tlV2lkdGhdPVwiMS43NVwiPjwvbHVjaWRlLWljb24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJoYXNQZXJtaXNzaW9uKGRlbGV0ZVBlcm1pc3Npb25zKSAmJiBvbkRlbGV0ZVRhYmxlLm9ic2VydmVycy5sZW5ndGggPiAwXCIgKGNsaWNrKT1cImhhbmRsZUFjdGlvbignZGVsZXRlJywgaXRlbSwgaSlcIiBjbGFzcz1cImNsaWNrYWJsZS1pY29uXCIgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDEuNXJlbTtcIj5cbiAgICAgICAgICAgICAgPGktbHVjaWRlIG5hbWU9XCJ0cmFzaC0yXCIgW3NpemVdPVwiMjBcIiBjb2xvcj1cIiNGMjZFNkVcIiBbc3Ryb2tlV2lkdGhdPVwiMS43NVwiPjwvaS1sdWNpZGU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvdHI+XG4gICAgPC90Ym9keT5cbiAgPC90YWJsZT5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgcGFnaW5hdGlvbi1jb250cm9sc1wiPlxuICA8Y3VzdG9tLXBhZ2luYXRpb25cbiAgICBbdG90YWxJdGVtc109XCJ0b3RhbEl0ZW1zXCJcbiAgICBbaXRlbXNQZXJQYWdlXT1cImRlZmF1bHRJdGVtc1BlclBhZ2VcIlxuICAgIFtjdXJyZW50UGFnZV09XCJjdXJyZW50UGFnZVwiXG4gICAgW3Nob3dQYWdlSW5mb109XCJzaG93UGFnZUluZm9cIlxuICAgIChwYWdlQ2hhbmdlKT1cIm9uUGFnZUNoYW5nZSgkZXZlbnQpXCI+XG4gIDwvY3VzdG9tLXBhZ2luYXRpb24+XG48L2Rpdj5cbiJdfQ==
|
287
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saWItcG9ydGFsLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy9kYXRhLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpYi1wb3J0YWwtYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvdGFibGVzL2RhdGEtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFJTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQyxDQUFDLG9CQUFvQjs7Ozs7Ozs7O0FBV2xGLE1BQU0sT0FBTyxrQkFBa0I7SUEwRDdCLFlBQ1UsR0FBc0IsRUFDdEIsV0FBd0IsRUFDeEIsY0FBOEI7UUFGOUIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBNUQvQixZQUFPLEdBSVYsRUFBRSxDQUFDO1FBQ0Esa0JBQWEsR0FBYSxFQUFFLENBQUM7UUFDN0Isd0JBQW1CLEdBQVcsRUFBRSxDQUFDO1FBQ2pDLHNCQUFpQixHQUFXLGlCQUFpQixDQUFDO1FBQzlDLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUNsQyxzQkFBaUIsR0FBVyxTQUFTLENBQUM7UUFDdEMsZUFBVSxHQUFXLENBQUMsQ0FBQztRQUV2QixzQkFBaUIsR0FFYyxHQUFHLEVB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Z0I7c0JBQXhCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsaUJBQWlCO3NCQUF6QixLQUFLO2dCQVVHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFFSSxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgQnV0dG9uQ2xhc3NlcyB9IGZyb20gXCIuLi8uLi9lbnVtL0J1dHRvbkNsYXNzZXNFbnVtXCI7IC8vIEltcG9ydGFuZG8gbyBlbnVtXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2F1dGgtc2VydmljZS5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBSZWZyZXNoU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL3JlZnJlc2gtc2VydmljZS5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBJRGF0YUluZGV4UGFnaW5hdGUsIElQYWdpbmF0ZVJlc3VsdCB9IGZyb20gXCIuL2RhdGEtcGFnaW5hdGUuc2VydmljZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiYXJnZW50YS1saXN0LWRhdGEtdGFibGVcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9kYXRhLXRhYmxlLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9kYXRhLXRhYmxlLmNvbXBvbmVudC5zY3NzXCJdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRGF0YVRhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBjb2x1bW5zOiB7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICBwcm9wOiBzdHJpbmc7XG4gICAgaXNTZWFyY2hTZWxlY3RlZD86IGJvb2xlYW47XG4gIH1bXSA9IFtdO1xuICBASW5wdXQoKSBoaWRkZW5Db2x1bW5zOiBzdHJpbmdbXSA9IFtdO1xuICBASW5wdXQoKSBkZWZhdWx0SXRlbXNQZXJQYWdlOiBudW1iZXIgPSAxMDtcbiAgQElucHV0KCkgaXRlbXNQZXJQYWdlTGFiZWw6IHN0cmluZyA9IFwiSXRlbXMgcGVyIHBhZ2U6XCI7XG4gIEBJbnB1dCgpIHNob3dBY3Rpb25Db2x1bW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgYWN0aW9uQ29sdW1uTGFiZWw6IHN0cmluZyA9IFwiQWN0aW9uc1wiO1xuICBASW5wdXQoKSB0b3RhbEl0ZW1zOiBudW1iZXIgPSAwO1xuXG4gIEBJbnB1dCgpIGZldGNoRGF0YUZ1bmN0aW9uOiAoXG4gICAgcGFyYW1zOiBJRGF0YUluZGV4UGFnaW5hdGVcbiAgKSA9PiBPYnNlcnZhYmxlPElQYWdpbmF0ZVJlc3VsdDxhbnk+PiA9ICgpID0+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKHN1YnNjcmliZXIpID0+XG4gICAgICBzdWJzY3JpYmVyLmVycm9yKFxuICAgICAgICBcIkltcGxlbWVudCB0aGUgZmV0Y2hEYXRhRnVuY3Rpb24gdG8gZmV0Y2ggcGFnaW5hdGVkIGRhdGEgZnJvbSB0aGUgYmFjay1lbmQuXCJcbiAgICAgIClcbiAgICApO1xuICB9O1xuXG4gIEBJbnB1dCgpIGVkaXRQZXJtaXNzaW9uczogc3RyaW5nW10gPSBbXTtcbiAgQElucHV0KCkgZGVsZXRlUGVybWlzc2lvbnM6IHN0cmluZ1tdID0gW107XG4gIEBJbnB1dCgpIHZpZXdQZXJtaXNzaW9uczogc3RyaW5nW10gPSBbXTtcbiAgQElucHV0KCkgc2hvd1BhZ2VJbmZvOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgcGFnZVRleHQ6IHN0cmluZyA9IFwiUGFnZVwiO1xuICBASW5wdXQoKSBvZlRleHQ6IHN0cmluZyA9IFwib2ZcIjtcbiAgQElucHV0KCkgZmlsdGVyRGVzY3JpcHRpb246IHN0cmluZyA9IFwiXCI7XG4gIEBJbnB1dCgpIGJ1dHRvbkxhYmVsOiBzdHJpbmcgPSBcIlwiO1xuICBASW5wdXQoKSBwYWdlZERhdGE6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIGluaXRpYWxGaWx0ZXJGaWVsZDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgQE91dHB1dCgpIHBhZ2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgaXRlbXNQZXJQYWdlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uRWRpdFRhYmxlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uRGVsZXRlVGFibGU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25WaWV3VGFibGU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25CdXR0b25DbGljazogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgZmlsdGVyRmllbGRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGl0ZW1zUGVyUGFnZU9wdGlvbnM6IG51bWJlcltdID0gWzUsIDEwLCAxNSwgMjVdO1xuICBjdXJyZW50UGFnZTogbnVtYmVyID0gMTtcbiAgc29ydENvbHVtbjogc3RyaW5nID0gXCJcIjtcbiAgc29ydERpcmVjdGlvbjogXCJhc2NcIiB8IFwiZGVzY1wiID0gXCJhc2NcIjtcbiAgc2VsZWN0ZWRTZWFyY2hGaWVsZDogc3RyaW5nID0gXCJcIjtcbiAgaXNMb2FkaW5nID0gZmFsc2U7XG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIGlzSW5pdGlhbGl6ZWQgPSBmYWxzZTsgLy8gRmxhZyBwYXJhIGV2aXRhciBjaGFtYWRhcyBkdXBsYXNcbiAgQnV0dG9uQ2xhc3NlcyA9IEJ1dHRvbkNsYXNzZXM7XG5cbiAgbGFiZWxTdHlsZSA9IHtcbiAgICBcImZvbnQtZmFtaWx5XCI6IFwiSW50ZXIsIEFyaWFsLCBzYW5zLXNlcmlmXCIsXG4gICAgXCJmb250LXNpemVcIjogXCIxNHB4XCIsXG4gICAgY29sb3I6IFwiIzAwMFwiLFxuICB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcbiAgICBwcml2YXRlIHJlZnJlc2hTZXJ2aWNlOiBSZWZyZXNoU2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuaW5pdGlhbEZpbHRlckZpZWxkKSB7XG4gICAgICAvLyBTZSBvIHVzdcOhcmlvIGRlZmluaXIgbyBpbml0aWFsRmlsdGVyRmllbGQsIGVsZSBzZXLDoSB1c2FkbyBjb21vIG8gY2FtcG8gaW5pY2lhbFxuICAgICAgdGhpcy5zZWxlY3RlZFNlYXJjaEZpZWxkID0gdGhpcy5pbml0aWFsRmlsdGVyRmllbGQ7XG4gICAgICB0aGlzLnNvcnRDb2x1bW4gPSB0aGlzLmluaXRpYWxGaWx0ZXJGaWVsZDtcbiAgICAgIHRoaXMuc29ydERpcmVjdGlvbiA9IFwiYXNjXCI7XG5cbiAgICAgIHRoaXMuY29sdW1ucyA9IHRoaXMuY29sdW1ucy5tYXAoKGNvbHVtbikgPT4gKHtcbiAgICAgICAgLi4uY29sdW1uLFxuICAgICAgICBpc1NlYXJjaFNlbGVjdGVkOiBjb2x1bW4ucHJvcCA9PT0gdGhpcy5pbml0aWFsRmlsdGVyRmllbGQsXG4gICAgICB9KSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNvbHVtbnMubGVuZ3RoID4gMCkge1xuICAgICAgLy8gQ2FzbyBjb250csOhcmlvLCB1c2EgYSBwcmltZWlyYSBjb2x1bmEgY29tbyBwYWRyw6NvXG4gICAgICB0aGlzLnNlbGVjdGVkU2VhcmNoRmllbGQgPSB0aGlzLmNvbHVtbnNbMF0ucHJvcDtcbiAgICAgIHRoaXMuc29ydENvbHVtbiA9IHRoaXMuY29sdW1uc1swXS5wcm9wO1xuICAgICAgdGhpcy5zb3J0RGlyZWN0aW9uID0gXCJhc2NcIjtcblxuICAgICAgdGhpcy5jb2x1bW5zID0gdGhpcy5jb2x1bW5zLm1hcCgoY29sdW1uKSA9PiAoe1xuICAgICAgICAuLi5jb2x1bW4sXG4gICAgICAgIGlzU2VhcmNoU2VsZWN0ZWQ6IGNvbHVtbi5wcm9wID09PSB0aGlzLnNlbGVjdGVkU2VhcmNoRmllbGQsXG4gICAgICB9KSk7XG4gICAgfVxuXG4gICAgLy90aGlzLmZldGNoRGF0YSgpO1xuICAgIHRoaXMucmVmcmVzaFNlcnZpY2UucmVmcmVzaCRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5pc0luaXRpYWxpemVkKSB7XG4gICAgICAgICAgdGhpcy5yZWZyZXNoRGF0YSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHRoaXMuaXNJbml0aWFsaXplZCA9IHRydWU7XG4gIH1cblxuICAvLyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gIC8vICAgaWYgKFxuICAvLyAgICAgY2hhbmdlc1tcInRvdGFsSXRlbXNcIl0gfHxcbiAgLy8gICAgIGNoYW5nZXNbXCJkZWZhdWx0SXRlbXNQZXJQYWdlXCJdIHx8XG4gIC8vICAgICBjaGFuZ2VzW1wiY3VycmVudFBhZ2VcIl0gfHxcbiAgLy8gICAgIGNoYW5nZXNbXCJmZXRjaERhdGFGdW5jdGlvblwiXSB8fFxuICAvLyAgICAgY2hhbmdlc1tcImZpbHRlckRlc2NyaXB0aW9uXCJdXG4gIC8vICAgKSB7XG4gIC8vICAgICB0aGlzLmZldGNoRGF0YSgpO1xuICAvLyAgIH1cbiAgLy8gfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXROZXN0ZWRQcm9wZXJ0eShvYmo6IGFueSwgcGF0aDogc3RyaW5nKTogYW55IHtcbiAgICByZXR1cm4gcGF0aC5zcGxpdChcIi5cIikucmVkdWNlKChhY2MsIHBhcnQpID0+IGFjYyAmJiBhY2NbcGFydF0sIG9iaik7XG4gIH1cblxuICBmZXRjaERhdGEoKSB7XG4gICAgaWYgKHRoaXMuZmV0Y2hEYXRhRnVuY3Rpb24pIHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICAgIGNvbnN0IHBhcmFtczogSURhdGFJbmRleFBhZ2luYXRlID0ge1xuICAgICAgICBmaWx0ZXJEZXNjcmlwdGlvbjogdGhpcy5maWx0ZXJEZXNjcmlwdGlvbixcbiAgICAgICAgZmlsdGVyRmllbGQ6IHRoaXMuc2VsZWN0ZWRTZWFyY2hGaWVsZCxcbiAgICAgICAgcGFnZU51bWJlcjogdGhpcy5jdXJyZW50UGFnZSA/PyAxLFxuICAgICAgICBwYWdlU2l6ZTogdGhpcy5kZWZhdWx0SXRlbXNQZXJQYWdlID8/IDEwLFxuICAgICAgICBzb3J0Q29sdW1uOiB0aGlzLnNvcnRDb2x1bW4sXG4gICAgICAgIHNvcnREaXJlY3Rpb246IHRoaXMuc29ydERpcmVjdGlvbixcbiAgICAgIH07XG5cbiAgICAgIHRoaXMuZmV0Y2hEYXRhRnVuY3Rpb24ocGFyYW1zKVxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXG4gICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6IChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgIHRoaXMucGFnZWREYXRhID0gcmVzdWx0Lml0ZW1zO1xuICAgICAgICAgICAgdGhpcy50b3RhbEl0ZW1zID0gcmVzdWx0LnRvdGFsSXRlbXM7XG4gICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiRXJyb3IgZmV0Y2hpbmcgZGF0YTpcIiwgZXJyb3IpO1xuICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByZWZyZXNoRGF0YSgpIHtcbiAgICB0aGlzLmZldGNoRGF0YSgpO1xuICB9XG5cbiAgb25QYWdlQ2hhbmdlKHBhZ2U6IG51bWJlcikge1xuICAgIHRoaXMuY3VycmVudFBhZ2UgPSBwYWdlO1xuICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KHBhZ2UpO1xuICAgIHRoaXMuZmV0Y2hEYXRhKCk7XG4gIH1cblxuICBvbkl0ZW1zUGVyUGFnZUNoYW5nZSgpIHtcbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gMTtcbiAgICB0aGlzLml0ZW1zUGVyUGFnZUNoYW5nZS5lbWl0KHRoaXMuZGVmYXVsdEl0ZW1zUGVyUGFnZSk7XG4gICAgdGhpcy5mZXRjaERhdGEoKTtcbiAgfVxuXG4gIG9uU2VsZWN0U2VhcmNoRmllbGQoY29sdW1uUHJvcDogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuc29ydENvbHVtbiA9PT0gY29sdW1uUHJvcCkge1xuICAgICAgdGhpcy5zb3J0RGlyZWN0aW9uID0gdGhpcy5zb3J0RGlyZWN0aW9uID09PSBcImFzY1wiID8gXCJkZXNjXCIgOiBcImFzY1wiO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNvcnREaXJlY3Rpb24gPSBcImFzY1wiO1xuICAgIH1cblxuICAgIHRoaXMuc2VsZWN0ZWRTZWFyY2hGaWVsZCA9IGNvbHVtblByb3A7XG4gICAgdGhpcy5zb3J0Q29sdW1uID0gY29sdW1uUHJvcDtcblxuICAgIHRoaXMuY29sdW1ucyA9IHRoaXMuY29sdW1ucy5tYXAoKGNvbHVtbikgPT4gKHtcbiAgICAgIC4uLmNvbHVtbixcbiAgICAgIGlzU2VhcmNoU2VsZWN0ZWQ6IGNvbHVtbi5wcm9wID09PSBjb2x1bW5Qcm9wLFxuICAgIH0pKTtcblxuICAgIHRoaXMuZmlsdGVyRmllbGRDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkU2VhcmNoRmllbGQpO1xuXG4gICAgaWYgKHRoaXMuZmV0Y2hEYXRhRnVuY3Rpb24pIHtcbiAgICAgIHRoaXMuZmV0Y2hEYXRhRnVuY3Rpb24oe1xuICAgICAgICBmaWx0ZXJEZXNjcmlwdGlvbjogdGhpcy5maWx0ZXJEZXNjcmlwdGlvbixcbiAgICAgICAgZmlsdGVyRmllbGQ6IHRoaXMuc2VsZWN0ZWRTZWFyY2hGaWVsZCxcbiAgICAgICAgcGFnZU51bWJlcjogdGhpcy5jdXJyZW50UGFnZSxcbiAgICAgICAgcGFnZVNpemU6IHRoaXMuZGVmYXVsdEl0ZW1zUGVyUGFnZSxcbiAgICAgICAgc29ydENvbHVtbjogdGhpcy5zb3J0Q29sdW1uLFxuICAgICAgICBzb3J0RGlyZWN0aW9uOiB0aGlzLnNvcnREaXJlY3Rpb24sXG4gICAgICB9KS5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAocmVzdWx0KSA9PiB7XG4gICAgICAgICAgdGhpcy5wYWdlZERhdGEgPSByZXN1bHQuaXRlbXM7XG4gICAgICAgICAgdGhpcy50b3RhbEl0ZW1zID0gcmVzdWx0LnRvdGFsSXRlbXM7XG4gICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKFwiRXJybyBhbyBidXNjYXIgZGFkb3M6XCIsIGVycm9yKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUFjdGlvbihhY3Rpb246IHN0cmluZywgaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSB7XG4gICAgc3dpdGNoIChhY3Rpb24pIHtcbiAgICAgIGNhc2UgXCJlZGl0XCI6XG4gICAgICAgIGlmICh0aGlzLmhhc1Blcm1pc3Npb24odGhpcy5lZGl0UGVybWlzc2lvbnMpKSB7XG4gICAgICAgICAgdGhpcy5vbkVkaXRUYWJsZS5lbWl0KHsgaXRlbSwgaW5kZXggfSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiZGVsZXRlXCI6XG4gICAgICAgIGlmICh0aGlzLmhhc1Blcm1pc3Npb24odGhpcy5kZWxldGVQZXJtaXNzaW9ucykpIHtcbiAgICAgICAgICB0aGlzLm9uRGVsZXRlVGFibGUuZW1pdCh7IGl0ZW0sIGluZGV4IH0pO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcInZpZXdcIjpcbiAgICAgICAgaWYgKHRoaXMuaGFzUGVybWlzc2lvbih0aGlzLnZpZXdQZXJtaXNzaW9ucykpIHtcbiAgICAgICAgICB0aGlzLm9uVmlld1RhYmxlLmVtaXQoeyBpdGVtLCBpbmRleCB9KTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBoYXNQZXJtaXNzaW9uKHJlcXVpcmVkUGVybWlzc2lvbnM6IHN0cmluZ1tdKTogYm9vbGVhbiB7XG4gICAgaWYgKCFyZXF1aXJlZFBlcm1pc3Npb25zIHx8IHJlcXVpcmVkUGVybWlzc2lvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHRoaXMuYXV0aFNlcnZpY2UuaGFzUGVybWlzc2lvbihyZXF1aXJlZFBlcm1pc3Npb25zKTtcbiAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcIlBlcm1pc3Npb24gZXJyb3I6XCIsIGVycm9yLm1lc3NhZ2UpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihcIlVua25vd24gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHBlcm1pc3Npb24gY2hlY2tcIik7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBpc0NvbHVtbkhpZGRlbihjb2x1bW5Qcm9wOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oaWRkZW5Db2x1bW5zLmluY2x1ZGVzKGNvbHVtblByb3ApO1xuICB9XG5cbiAgb25TZWFyY2goc2VhcmNoVGV4dDogc3RyaW5nKSB7XG4gICAgdGhpcy5maWx0ZXJEZXNjcmlwdGlvbiA9IHNlYXJjaFRleHQ7XG4gICAgdGhpcy5jdXJyZW50UGFnZSA9IDE7IC8vIFJlc2V0YXIgcGFyYSBhIHByaW1laXJhIHDDoWdpbmFcbiAgICB0aGlzLmZldGNoRGF0YSgpO1xuICB9XG5cbiAgb25OZXdCdXR0b25DbGljaygpIHtcbiAgICB0aGlzLm9uQnV0dG9uQ2xpY2suZW1pdCgpOyAvLyBFbWl0aW5kbyBvIGV2ZW50b1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZGF0YS10YWJsZS1oZWFkZXJcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDIuNXJlbVwiPlxuICA8ZGl2IGNsYXNzPVwibGVmdC1zZWN0aW9uXCI+XG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgIDxsYWJlbCBmb3I9XCJpdGVtc1BlclBhZ2VTZWxlY3RcIiBjbGFzcz1cIml0ZW1zLXBlci1wYWdlLWxhYmVsXCI+e3tcbiAgICAgICAgaXRlbXNQZXJQYWdlTGFiZWxcbiAgICAgIH19PC9sYWJlbD5cbiAgICAgIDxzZWxlY3RcbiAgICAgICAgaWQ9XCJpdGVtc1BlclBhZ2VTZWxlY3RcIlxuICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLWNvbnRyb2wtc20gZC1pbmxpbmUtYmxvY2sgdy1hdXRvIGN1c3RvbS1zZWxlY3RcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cImRlZmF1bHRJdGVtc1BlclBhZ2VcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkl0ZW1zUGVyUGFnZUNoYW5nZSgpXCJcbiAgICAgID5cbiAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGl0ZW1zUGVyUGFnZU9wdGlvbnNcIiBbdmFsdWVdPVwib3B0aW9uXCI+XG4gICAgICAgICAge3sgb3B0aW9uIH19XG4gICAgICAgIDwvb3B0aW9uPlxuICAgICAgPC9zZWxlY3Q+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2ICpuZ0lmPVwiYnV0dG9uTGFiZWwgJiYgYnV0dG9uTGFiZWwubGVuZ3RoID4gMFwiIGNsYXNzPVwicmlnaHQtc2VjdGlvblwiPlxuICAgIDxidXR0b24gY2xhc3M9XCJjdXN0b20tYnV0dG9uXCIgKGNsaWNrKT1cIm9uTmV3QnV0dG9uQ2xpY2soKVwiPlxuICAgICAgPGx1Y2lkZS1pY29uIG5hbWU9XCJwbHVzXCIgW3NpemVdPVwiMjhcIiBbc3Ryb2tlV2lkdGhdPVwiMS43NVwiPjwvbHVjaWRlLWljb24+XG4gICAgICB7eyBidXR0b25MYWJlbCB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwic2VhcmNoLWlucHV0LWNvbnRhaW5lclwiPlxuICA8YXJnZW50YS1zZWFyY2gtaW5wdXRcbiAgICBpZD1cInNlYXJjaFwiXG4gICAgbGFiZWw9XCJcIlxuICAgIHBsYWNlaG9sZGVyPVwiQnVzY2FyXCJcbiAgICBbKG5nTW9kZWwpXT1cImZpbHRlckRlc2NyaXB0aW9uXCJcbiAgICAoc2VhcmNoKT1cIm9uU2VhcmNoKCRldmVudClcIlxuICA+PC9hcmdlbnRhLXNlYXJjaC1pbnB1dD5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZVwiIHN0eWxlPVwibWFyZ2luLXRvcDogMXJlbVwiPlxuICA8dGFibGUgY2xhc3M9XCJ0YWJsZSB0YWJsZS1ob3ZlclwiPlxuICAgIDx0aGVhZD5cbiAgICAgIDx0cj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sdW1uIG9mIGNvbHVtbnNcIj5cbiAgICAgICAgICA8dGhcbiAgICAgICAgICAgICpuZ0lmPVwiIWlzQ29sdW1uSGlkZGVuKGNvbHVtbi5wcm9wKVwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3RTZWFyY2hGaWVsZChjb2x1bW4ucHJvcClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IGNvbHVtbi5sYWJlbCB9fVxuICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgIDxpLWx1Y2lkZVxuICAgICAgICAgICAgICAgIG5hbWU9XCJhcnJvdy11cFwiXG4gICAgICAgICAgICAgICAgW3NpemVdPVwiMTRcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJcbiAgICAgICAgICAgICAgICAgIGNvbHVtbi5pc1NlYXJjaFNlbGVjdGVkICYmIHNvcnREaXJlY3Rpb24gPT09ICdhc2MnXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgPjwvaS1sdWNpZGU+XG4gICAgICAgICAgICAgIDxpLWx1Y2lkZVxuICAgICAgICAgICAgICAgIG5hbWU9XCJhcnJvdy1kb3duXCJcbiAgICAgICAgICAgICAgICBbc2l6ZV09XCIxNFwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cIlxuICAgICAgICAgICAgICAgICAgY29sdW1uLmlzU2VhcmNoU2VsZWN0ZWQgJiYgc29ydERpcmVjdGlvbiA9PT0gJ2Rlc2MnXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgPjwvaS1sdWNpZGU+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC90aD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDx0aFxuICAgICAgICAgICpuZ0lmPVwic2hvd0FjdGlvbkNvbHVtblwiXG4gICAgICAgICAgY2xhc3M9XCJ0ZXh0LWVuZFwiXG4gICAgICAgICAgc3R5bGU9XCJwYWRkaW5nLXJpZ2h0OiA2LjNyZW1cIlxuICAgICAgICA+XG4gICAgICAgICAge3sgYWN0aW9uQ29sdW1uTGFiZWwgfX1cbiAgICAgICAgPC90aD5cbiAgICAgIDwvdHI+XG4gICAgPC90aGVhZD5cbiAgICA8dGJvZHk+XG4gICAgICA8dHIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcGFnZWREYXRhOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbHVtbiBvZiBjb2x1bW5zXCI+XG4gICAgICAgICAgPHRkICpuZ0lmPVwiIWlzQ29sdW1uSGlkZGVuKGNvbHVtbi5wcm9wKVwiPlxuICAgICAgICAgICAge3sgZ2V0TmVzdGVkUHJvcGVydHkoaXRlbSwgY29sdW1uLnByb3ApIH19XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDx0ZCAqbmdJZj1cInNob3dBY3Rpb25Db2x1bW5cIiBjbGFzcz1cInRleHQtZW5kXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgaGFzUGVybWlzc2lvbihlZGl0UGVybWlzc2lvbnMpICYmXG4gICAgICAgICAgICAgICAgb25FZGl0VGFibGUub2JzZXJ2ZXJzLmxlbmd0aCA+IDBcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUFjdGlvbignZWRpdCcsIGl0ZW0sIGkpXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjbGlja2FibGUtaWNvblwiXG4gICAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAxLjVyZW1cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bHVjaWRlLWljb25cbiAgICAgICAgICAgICAgICBuYW1lPVwic3F1YXJlLXBlblwiXG4gICAgICAgICAgICAgICAgW3NpemVdPVwiMjBcIlxuICAgICAgICAgICAgICAgIGNvbG9yPVwiIzJDQTU4RFwiXG4gICAgICAgICAgICAgICAgW3N0cm9rZVdpZHRoXT1cIjEuNzVcIlxuICAgICAgICAgICAgICA+PC9sdWNpZGUtaWNvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgIGhhc1Blcm1pc3Npb24odmlld1Blcm1pc3Npb25zKSAmJlxuICAgICAgICAgICAgICAgIG9uVmlld1RhYmxlLm9ic2VydmVycy5sZW5ndGggPiAwXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVBY3Rpb24oJ3ZpZXcnLCBpdGVtLCBpKVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2xpY2thYmxlLWljb25cIlxuICAgICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi1yaWdodDogMS41cmVtXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGx1Y2lkZS1pY29uXG4gICAgICAgICAgICAgICAgbmFtZT1cInVzZXItcm91bmRcIlxuICAgICAgICAgICAgICAgIFtzaXplXT1cIjIwXCJcbiAgICAgICAgICAgICAgICBjb2xvcj1cIiMyQ0E1OERcIlxuICAgICAgICAgICAgICAgIFtzdHJva2VXaWR0aF09XCIxLjc1XCJcbiAgICAgICAgICAgICAgPjwvbHVjaWRlLWljb24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICBoYXNQZXJtaXNzaW9uKGRlbGV0ZVBlcm1pc3Npb25zKSAmJlxuICAgICAgICAgICAgICAgIG9uRGVsZXRlVGFibGUub2JzZXJ2ZXJzLmxlbmd0aCA+IDBcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZUFjdGlvbignZGVsZXRlJywgaXRlbSwgaSlcIlxuICAgICAgICAgICAgICBjbGFzcz1cImNsaWNrYWJsZS1pY29uXCJcbiAgICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDEuNXJlbVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpLWx1Y2lkZVxuICAgICAgICAgICAgICAgIG5hbWU9XCJ0cmFzaC0yXCJcbiAgICAgICAgICAgICAgICBbc2l6ZV09XCIyMFwiXG4gICAgICAgICAgICAgICAgY29sb3I9XCIjRjI2RTZFXCJcbiAgICAgICAgICAgICAgICBbc3Ryb2tlV2lkdGhdPVwiMS43NVwiXG4gICAgICAgICAgICAgID48L2ktbHVjaWRlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L3RyPlxuICAgIDwvdGJvZHk+XG4gIDwvdGFibGU+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIHBhZ2luYXRpb24tY29udHJvbHNcIj5cbiAgPGN1c3RvbS1wYWdpbmF0aW9uXG4gICAgW3RvdGFsSXRlbXNdPVwidG90YWxJdGVtc1wiXG4gICAgW2l0ZW1zUGVyUGFnZV09XCJkZWZhdWx0SXRlbXNQZXJQYWdlXCJcbiAgICBbY3VycmVudFBhZ2VdPVwiY3VycmVudFBhZ2VcIlxuICAgIFtzaG93UGFnZUluZm9dPVwic2hvd1BhZ2VJbmZvXCJcbiAgICAocGFnZUNoYW5nZSk9XCJvblBhZ2VDaGFuZ2UoJGV2ZW50KVwiXG4gID5cbiAgPC9jdXN0b20tcGFnaW5hdGlvbj5cbjwvZGl2PlxuIl19
|
@@ -0,0 +1,4 @@
|
|
1
|
+
export function convertToSnakeCase(input) {
|
2
|
+
return input.replace(/([A-Z])/g, "_$1").toLowerCase();
|
3
|
+
}
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udmVydFRvU25ha2VDYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGliLXBvcnRhbC1hbmd1bGFyL3NyYy9saWIvZnVuY3Rpb24vQ29udmVydFRvU25ha2VDYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxLQUFhO0lBQzlDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDeEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0VG9TbmFrZUNhc2UoaW5wdXQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBpbnB1dC5yZXBsYWNlKC8oW0EtWl0pL2csIFwiXyQxXCIpLnRvTG93ZXJDYXNlKCk7XG59XG4iXX0=
|
package/esm2022/public-api.mjs
CHANGED
@@ -74,4 +74,5 @@ export * from "./lib/service/refresh-service.service";
|
|
74
74
|
export * from "./lib/service/route-parameter.service";
|
75
75
|
// function
|
76
76
|
export * from "./lib/function/SetThemeColors";
|
77
|
-
|
77
|
+
export * from "./lib/function/ConvertToSnakeCase";
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2xpYi1wb3J0YWwtYW5ndWxhci9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUVILGNBQWM7QUFDZCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsa0VBQWtFLENBQUM7QUFDakYsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLDhEQUE4RCxDQUFDO0FBQzdFLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyxnRUFBZ0UsQ0FBQztBQUMvRSxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHdFQUF3RSxDQUFDO0FBQ3ZGLGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLDREQUE0RCxDQUFDO0FBQzNFLGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsa0VBQWtFLENBQUM7QUFDakYsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsZ0VBQWdFLENBQUM7QUFDL0UsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsd0VBQXdFLENBQUM7QUFDdkYsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsZ0RBQWdELENBQUM7QUFFL0QsWUFBWTtBQUNaLGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsb0NBQW9DLENBQUM7QUFFbkQsUUFBUTtBQUNSLGNBQWMsOEJBQThCLENBQUM7QUFFN0MsVUFBVTtBQUNWLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGlDQUFpQyxDQUFDO0FBRWhELFVBQVU7QUFDVixjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsdUNBQXVDLENBQUM7QUFFdEQsV0FBVztBQUNYLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxtQ0FBbUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygc2ltLWxpYlxuICpcbiAqIEVzdGUgYXJxdWl2byBleHBvcnRhIHRvZG9zIG9zIGNvbXBvbmVudGVzLCBlbnVtcyBlIG3Ds2R1bG9zIG5lY2Vzc8Ohcmlvc1xuICogcGFyYSBxdWUgb3MgY29uc3VtaWRvcmVzIGRhIGJpYmxpb3RlY2EgcG9zc2FtIHV0aWxpesOhLWxvcyBlbSBzdWFzIGFwbGljYcOnw7Vlcy5cbiAqL1xuXG4vLyBDb21wb25lbnRlc1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvYWNjb3JkaW9uL2FjY29yZGlvbi5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2FsZXJ0L2FsZXJ0LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvYXBwLWJhY2tncm91bmQvYXBwLWJhY2tncm91bmQuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9iYWRnZS9iYWRnZS5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2Jhc2ljLXJlZ2lzdHJhdGlvbi9iYXNpYy1yZWdpc3RyYXRpb24uY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvY2FsZW5kYXItYXJnZW50YS9jYWxlbmRhci1hcmdlbnRhLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvY2FyZC9jYXJkLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9jb2RlLWhpZ2hsaWdodC9jb2RlLWhpZ2hsaWdodC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2NvbmZpcm1hdGlvbi9jb25maXJtYXRpb24uY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9jdXN0b20tcGFnaW5hdGlvbi9jdXN0b20tcGFnaW5hdGlvbi5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2N1c3RvbS1zd2l0Y2gvY3VzdG9tLXN3aXRjaC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvaW1wdXQvaW5wdXQuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9tdWx0aS1zZWxlY3QtY2F0ZWdvcnkvbXVsdGktc2VsZWN0LWNhdGVnb3J5LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvbXVsdGktc2VsZWN0L211bHRpLXNlbGVjdC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL3JhZGlvL3JhZGlvLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvc2VhcmNoLWN1c3RvbWVyL3NlYXJjaC1jdXN0b21lci5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL3NlYXJjaC1pbnB1dC9zZWFyY2gtaW5wdXQuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvdGFiL3RhYi5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL3RhYmxlcy9kYXRhLXRhYmxlLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvdGV4dGFyZWEvdGV4dGFyZWEuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy90cmVlLW5vZGUvdHJlZS1ub2RlLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvYWxlcnQvYWxlcnQuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9hcHAtYmFja2dyb3VuZC9hcHAtYmFja2dyb3VuZC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2JhZGdlL2JhZGdlLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvYmFzaWMtcmVnaXN0cmF0aW9uL2Jhc2ljLXJlZ2lzdHJhdGlvbi5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2J1dHRvbi9idXR0b24uY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9jYXJkL2NhcmQuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2NvZGUtaGlnaGxpZ2h0L2NvZGUtaGlnaGxpZ2h0LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvY29uZmlybWF0aW9uL2NvbmZpcm1hdGlvbi5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2N1c3RvbS1wYWdpbmF0aW9uL2N1c3RvbS1wYWdpbmF0aW9uLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvY3VzdG9tLXN3aXRjaC9jdXN0b20tc3dpdGNoLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9pbXB1dC9pbnB1dC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2pzb24tdmlld2VyL2pzb24tdmlld2VyLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvbW9kYWwvbW9kYWwuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9tdWx0aS1zZWxlY3QtY2F0ZWdvcnkvbXVsdGktc2VsZWN0LWNhdGVnb3J5LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvbXVsdGktc2VsZWN0L211bHRpLXNlbGVjdC5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL3JhZGlvL3JhZGlvLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvc2VhcmNoLWN1c3RvbWVyL3NlYXJjaC1jdXN0b21lci5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL3NlYXJjaC1pbnB1dC9zZWFyY2gtaW5wdXQuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvdGFiL3RhYi5jb21wb25lbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL3RhYmxlcy9kYXRhLXRhYmxlLmNvbXBvbmVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvdGV4dGFyZWEvdGV4dGFyZWEuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvY29tcG9uZW50cy90cmVlLW5vZGUvdHJlZS1ub2RlLmNvbXBvbmVudFwiO1xuXG4vLyBEaXJldGl2YXNcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9kaXJlY3RpdmUvYXV0b2ZvY3VzLWRpcmVjdGl2ZS9hdXRvZm9jdXMuZGlyZWN0aXZlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvZGlyZWN0aXZlL2NlcC1tYXNrLmRpcmVjdGl2ZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2RpcmVjdGl2ZS9jbnBqLW1hc2suZGlyZWN0aXZlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvZGlyZWN0aXZlL2NwZi1tYXNrLmRpcmVjdGl2ZVwiO1xuXG4vLyBFbnVtc1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2VudW0vQnV0dG9uQ2xhc3Nlc0VudW1cIjtcblxuLy8gTcOzZHVsb3NcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2NvbXBvbmVudHMubW9kdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9saWIvaWNvbnMvbHVjaWRlLWljb25zLm1vZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2xpYi1wb3J0YWwtYW5ndWxhci5tb2R1bGVcIjtcblxuLy8gU2VydmljZVxuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvYWxlcnQvbm90aWZpY2F0aW9uLnNlcnZpY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL2NvbmZpcm1hdGlvbi9jb25maXJtYXRpb24uc2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvdGFibGVzL2RhdGEtcGFnaW5hdGUuc2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL3NlcnZpY2UvcmVmcmVzaC1zZXJ2aWNlLnNlcnZpY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9zZXJ2aWNlL3JvdXRlLXBhcmFtZXRlci5zZXJ2aWNlXCI7XG5cbi8vIGZ1bmN0aW9uXG5leHBvcnQgKiBmcm9tIFwiLi9saWIvZnVuY3Rpb24vU2V0VGhlbWVDb2xvcnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9mdW5jdGlvbi9Db252ZXJ0VG9TbmFrZUNhc2VcIjtcbiJdfQ==
|