@ieeesa-npm/groups 0.15.9 → 0.15.10
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/assets/constants.json +75 -4
- package/esm2022/lib/components/interest-form/interest-form.component.mjs +104 -0
- package/esm2022/lib/components/interest-form-management/interest-form-management.component.mjs +63 -0
- package/esm2022/lib/components/interested-rosters/interested-rosters.component.mjs +28 -0
- package/esm2022/lib/components/roster-import/roster-import.component.mjs +149 -82
- package/esm2022/lib/components/roster-import-history/roster-import-history.component.mjs +232 -0
- package/esm2022/lib/components/tree-view/tree-view.component.mjs +26 -5
- package/esm2022/lib/components/view-roster/view-roster.component.mjs +10 -3
- package/esm2022/lib/groups.component.mjs +60 -6
- package/esm2022/lib/models/group-action.model.mjs +2 -1
- package/esm2022/lib/models/group-function-type.model.mjs +2 -1
- package/esm2022/lib/models/permission-type.model.mjs +2 -1
- package/esm2022/lib/models/roster-import.model.mjs +34 -17
- package/esm2022/lib/services/roster-import-api.service.mjs +174 -0
- package/esm2022/public-api.mjs +6 -1
- package/fesm2022/ieeesa-npm-groups.mjs +930 -211
- package/fesm2022/ieeesa-npm-groups.mjs.map +1 -1
- package/lib/components/interest-form/interest-form.component.d.ts +75 -0
- package/lib/components/interest-form-management/interest-form-management.component.d.ts +31 -0
- package/lib/components/interested-rosters/interested-rosters.component.d.ts +17 -0
- package/lib/components/roster-import/roster-import.component.d.ts +77 -38
- package/lib/components/roster-import-history/roster-import-history.component.d.ts +102 -0
- package/lib/components/tree-view/tree-view.component.d.ts +6 -3
- package/lib/components/view-roster/view-roster.component.d.ts +5 -0
- package/lib/groups.component.d.ts +17 -0
- package/lib/models/group-action.model.d.ts +2 -1
- package/lib/models/group-function-type.model.d.ts +2 -1
- package/lib/models/permission-type.model.d.ts +2 -1
- package/lib/models/roster-import.model.d.ts +104 -21
- package/lib/services/groups.service.d.ts +4 -0
- package/lib/services/roster-import-api.service.d.ts +108 -0
- package/package.json +1 -1
- package/public-api.d.ts +5 -0
- package/esm2022/lib/assets/roster-import-mocks.mjs +0 -98
- package/lib/assets/roster-import-mocks.d.ts +0 -27
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
import { Component, Input, ViewEncapsulation, } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { HttpErrorResponse } from '@angular/common/http';
|
|
4
|
+
import { Subject, takeUntil } from 'rxjs';
|
|
5
|
+
import { DataTableComponent, TableColumnType, } from '@ieeesa-npm/presentation';
|
|
6
|
+
import * as constants from '../../assets/constants.json';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "../../services/roster-import-api.service";
|
|
9
|
+
import * as i2 from "../../services/groups.service";
|
|
10
|
+
import * as i3 from "@ieeesa-npm/utility";
|
|
11
|
+
import * as i4 from "@angular/common";
|
|
12
|
+
/**
|
|
13
|
+
* Roster import-history ("View History") dialog body.
|
|
14
|
+
*
|
|
15
|
+
* Rendered inside the shared ModalComponent (which supplies the
|
|
16
|
+
* "← Back to Rosters / View History" breadcrumb title row + X close). Shows the
|
|
17
|
+
* selected group's name and an "Imported Files" table listing prior roster
|
|
18
|
+
* imports.
|
|
19
|
+
*
|
|
20
|
+
* Data comes from the real BE endpoint via {@link RosterImportApiService}:
|
|
21
|
+
* `GET /v1/groups/roster/import/history/{groupId}`. The response is a list of
|
|
22
|
+
* `RosterImportJob` whose JSON view exposes `fileName`, `successRows`,
|
|
23
|
+
* `failedRows`, `status` and ids — but NOT `createdOn` / `createdBy` (both are
|
|
24
|
+
* `@JsonIgnore` on the BE entity). So the "Timestamp" and "Person Imported"
|
|
25
|
+
* columns render a placeholder until the BE exposes those fields. "Target
|
|
26
|
+
* Group" uses the current group's name (history is scoped to one group).
|
|
27
|
+
*
|
|
28
|
+
* @export
|
|
29
|
+
* @class RosterImportHistoryComponent
|
|
30
|
+
*/
|
|
31
|
+
export class RosterImportHistoryComponent {
|
|
32
|
+
constructor(
|
|
33
|
+
// eslint-disable-next-line no-unused-vars
|
|
34
|
+
rosterImportApiService,
|
|
35
|
+
// eslint-disable-next-line no-unused-vars
|
|
36
|
+
groupService,
|
|
37
|
+
// eslint-disable-next-line no-unused-vars
|
|
38
|
+
cdr,
|
|
39
|
+
// eslint-disable-next-line no-unused-vars
|
|
40
|
+
globalErrorHandlerService) {
|
|
41
|
+
this.rosterImportApiService = rosterImportApiService;
|
|
42
|
+
this.groupService = groupService;
|
|
43
|
+
this.cdr = cdr;
|
|
44
|
+
this.globalErrorHandlerService = globalErrorHandlerService;
|
|
45
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
46
|
+
this.constants = constants;
|
|
47
|
+
this.screenTexts = this.constants?.rosterImportHistory;
|
|
48
|
+
this.destroy$ = new Subject();
|
|
49
|
+
/** Table column definitions for the "Imported Files" table. */
|
|
50
|
+
this.columnSchema = [];
|
|
51
|
+
/** Import-history rows mapped for the table. */
|
|
52
|
+
this.tableData = [];
|
|
53
|
+
/** True while the history request is in flight. */
|
|
54
|
+
this.isLoading = false;
|
|
55
|
+
/** Inline error message when the history request fails. */
|
|
56
|
+
this.errorMessage = null;
|
|
57
|
+
/** Read-only table — no search / filter / add / edit / delete actions. */
|
|
58
|
+
this.tableActions = {
|
|
59
|
+
isSearchNeeded: false,
|
|
60
|
+
isFilterNeeded: false,
|
|
61
|
+
isAddNeeded: false,
|
|
62
|
+
isEditNeeded: false,
|
|
63
|
+
isDeleteNeeded: false,
|
|
64
|
+
};
|
|
65
|
+
/** Placeholder shown for fields the BE does not return (timestamp / person). */
|
|
66
|
+
this.placeholder = this.screenTexts?.emptyFieldPlaceholder ?? '—';
|
|
67
|
+
}
|
|
68
|
+
/** The group name shown as the heading above the Imported Files table. */
|
|
69
|
+
get groupName() {
|
|
70
|
+
return (this.componentData?.groupName ??
|
|
71
|
+
this.groupService?.getSelectedGroupInfo()?.groupName ??
|
|
72
|
+
'');
|
|
73
|
+
}
|
|
74
|
+
/** The group id whose history is fetched. */
|
|
75
|
+
get groupId() {
|
|
76
|
+
return (this.componentData?.groupId ??
|
|
77
|
+
this.groupService?.getSelectedGroupInfo()?.groupId ??
|
|
78
|
+
'');
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Builds the table schema and loads the import history from the BE.
|
|
82
|
+
* @memberof RosterImportHistoryComponent
|
|
83
|
+
*/
|
|
84
|
+
ngOnInit() {
|
|
85
|
+
this.buildColumnSchema();
|
|
86
|
+
this.rosterImportApiService.setApiBaseUrl(this.groupService?.apiBaseUrl);
|
|
87
|
+
this.loadImportHistory();
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Cleans up subscriptions when the component is destroyed.
|
|
91
|
+
* @memberof RosterImportHistoryComponent
|
|
92
|
+
*/
|
|
93
|
+
ngOnDestroy() {
|
|
94
|
+
this.destroy$.next(true);
|
|
95
|
+
this.destroy$.complete();
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Fetches the import history for the current group and maps it to table rows.
|
|
99
|
+
* @memberof RosterImportHistoryComponent
|
|
100
|
+
*/
|
|
101
|
+
loadImportHistory() {
|
|
102
|
+
if (!this.groupId) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
this.isLoading = true;
|
|
106
|
+
this.errorMessage = null;
|
|
107
|
+
this.rosterImportApiService
|
|
108
|
+
.getImportHistory(this.groupId)
|
|
109
|
+
.pipe(takeUntil(this.destroy$))
|
|
110
|
+
.subscribe({
|
|
111
|
+
next: (jobs) => {
|
|
112
|
+
this.tableData = (jobs ?? []).map((job) => this.mapJobToRow(job));
|
|
113
|
+
this.isLoading = false;
|
|
114
|
+
this.cdr.detectChanges();
|
|
115
|
+
},
|
|
116
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
117
|
+
error: (error) => {
|
|
118
|
+
this.isLoading = false;
|
|
119
|
+
this.handleError(error);
|
|
120
|
+
this.cdr.detectChanges();
|
|
121
|
+
},
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Maps a BE import job to a table row. Timestamp and Person Imported are not
|
|
126
|
+
* present in the response (BE `@JsonIgnore`), so they render a placeholder.
|
|
127
|
+
* Target Group uses the current group's name (history is per-group).
|
|
128
|
+
* @param {RosterImportJob} job - The BE import job.
|
|
129
|
+
* @return {RosterImportHistoryRow}
|
|
130
|
+
* @memberof RosterImportHistoryComponent
|
|
131
|
+
*/
|
|
132
|
+
mapJobToRow(job) {
|
|
133
|
+
return {
|
|
134
|
+
timestamp: this.placeholder,
|
|
135
|
+
personImported: this.placeholder,
|
|
136
|
+
fileName: job?.fileName ?? this.placeholder,
|
|
137
|
+
addedRows: job?.successRows ?? 0,
|
|
138
|
+
errors: job?.failedRows ?? 0,
|
|
139
|
+
targetGroup: this.groupName || this.placeholder,
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Maps a failed history request to a user-facing inline error message.
|
|
144
|
+
* A 403 gets the permission-specific message; other errors get the generic
|
|
145
|
+
* one and are forwarded to the global handler for logging/interceptors.
|
|
146
|
+
* @param {*} error - The HttpErrorResponse.
|
|
147
|
+
* @memberof RosterImportHistoryComponent
|
|
148
|
+
*/
|
|
149
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
150
|
+
handleError(error) {
|
|
151
|
+
this.tableData = [];
|
|
152
|
+
const status = error?.status ?? error?.error?.status;
|
|
153
|
+
if (status === 403) {
|
|
154
|
+
this.errorMessage =
|
|
155
|
+
this.screenTexts?.forbiddenMessage ??
|
|
156
|
+
'You do not have permission to view the import history for this group.';
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
this.errorMessage =
|
|
160
|
+
this.screenTexts?.errorMessage ??
|
|
161
|
+
'Unable to load import history. Please try again.';
|
|
162
|
+
if (error instanceof HttpErrorResponse) {
|
|
163
|
+
this.globalErrorHandlerService.handleError(error);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Defines the "Imported Files" table columns.
|
|
168
|
+
* @memberof RosterImportHistoryComponent
|
|
169
|
+
*/
|
|
170
|
+
buildColumnSchema() {
|
|
171
|
+
const columns = this.screenTexts?.tableColumns;
|
|
172
|
+
this.columnSchema = [
|
|
173
|
+
{
|
|
174
|
+
id: 1,
|
|
175
|
+
columnDef: 'timestamp',
|
|
176
|
+
heading: columns?.timestamp ?? 'Timestamp',
|
|
177
|
+
columnType: TableColumnType.TEXT,
|
|
178
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
179
|
+
cellData: (element) => `${element.timestamp}`,
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
id: 2,
|
|
183
|
+
columnDef: 'personImported',
|
|
184
|
+
heading: columns?.personImported ?? 'Person Imported',
|
|
185
|
+
columnType: TableColumnType.TEXT,
|
|
186
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
187
|
+
cellData: (element) => `${element.personImported}`,
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
id: 3,
|
|
191
|
+
columnDef: 'fileName',
|
|
192
|
+
heading: columns?.fileName ?? 'File Name',
|
|
193
|
+
columnType: TableColumnType.TEXT,
|
|
194
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
195
|
+
cellData: (element) => `${element.fileName}`,
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
id: 4,
|
|
199
|
+
columnDef: 'addedRows',
|
|
200
|
+
heading: columns?.addedRows ?? 'Added Rows',
|
|
201
|
+
columnType: TableColumnType.TEXT,
|
|
202
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
203
|
+
cellData: (element) => `${element.addedRows}`,
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
id: 5,
|
|
207
|
+
columnDef: 'errors',
|
|
208
|
+
heading: columns?.errors ?? 'Errors',
|
|
209
|
+
columnType: TableColumnType.TEXT,
|
|
210
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
211
|
+
cellData: (element) => `${element.errors}`,
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
id: 6,
|
|
215
|
+
columnDef: 'targetGroup',
|
|
216
|
+
heading: columns?.targetGroup ?? 'Target Group',
|
|
217
|
+
columnType: TableColumnType.TEXT,
|
|
218
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
219
|
+
cellData: (element) => `${element.targetGroup}`,
|
|
220
|
+
},
|
|
221
|
+
];
|
|
222
|
+
}
|
|
223
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RosterImportHistoryComponent, deps: [{ token: i1.RosterImportApiService }, { token: i2.GroupsService }, { token: i0.ChangeDetectorRef }, { token: i3.GlobalErrorHandlerService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
224
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RosterImportHistoryComponent, isStandalone: true, selector: "ieeesa-roster-import-history", inputs: { componentData: "componentData" }, ngImport: i0, template: "<div class=\"ieeesa-roster-import-history\">\r\n <!-- The \"\u2190 Back to Rosters / View History\" title row + X close are rendered\r\n by the shared ModalComponent above this. -->\r\n\r\n <!-- Group name heading (Figma: bold group name above the table). -->\r\n <p class=\"ieeesa-roster-import-history__group-name\">\r\n {{ groupName }}\r\n </p>\r\n\r\n <!-- \"Imported Files\" section title. -->\r\n <p class=\"ieeesa-roster-import-history__section-title\">\r\n {{ screenTexts?.importedFilesTitle ?? 'Imported Files' }}\r\n </p>\r\n\r\n <!-- Loading state -->\r\n <p\r\n *ngIf=\"isLoading\"\r\n class=\"ieeesa-roster-import-history__status\"\r\n role=\"status\"\r\n >\r\n {{ screenTexts?.loadingMessage ?? 'Loading import history...' }}\r\n </p>\r\n\r\n <!-- Error state -->\r\n <div\r\n *ngIf=\"!isLoading && errorMessage\"\r\n class=\"ieeesa-roster-import-history__error\"\r\n role=\"alert\"\r\n >\r\n {{ errorMessage }}\r\n </div>\r\n\r\n <!-- Imported Files table (read-only). Shown once loaded without error. -->\r\n <ieeesa-data-table\r\n *ngIf=\"!isLoading && !errorMessage\"\r\n class=\"ieeesa-roster-import-history__table\"\r\n [tableDataInfo]=\"tableData\"\r\n [columnSchemaInfo]=\"columnSchema\"\r\n [tableActions]=\"tableActions\"\r\n [isCellTextOverflowEllipsis]=\"true\"\r\n [className]=\"'ieeesa-roster-import-history-table'\"\r\n ></ieeesa-data-table>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.mat-mdc-dialog-content:has(>.ieeesa-roster-import-history),.mdc-dialog__content:has(>.ieeesa-roster-import-history),.mat-mdc-dialog-content:has(.ieeesa-roster-import-history),.mdc-dialog__content:has(.ieeesa-roster-import-history){max-height:none!important;min-height:320px!important;height:auto!important;overflow:visible!important}.ieeesa-modal-dialog.ieeesa-roster-import-history-dialog{width:1100px!important;max-width:calc(100vw - 32px)!important}.ieeesa-modal-dialog.ieeesa-roster-import-history-dialog .ieeesa-modal{box-shadow:0 4px 24px #00000080!important}.ieeesa-modal-dialog.ieeesa-roster-import-history-dialog .mat-mdc-dialog-content,.ieeesa-modal-dialog.ieeesa-roster-import-history-dialog [mat-dialog-content],.ieeesa-modal-dialog.ieeesa-roster-import-history-dialog .mdc-dialog__content,.ieeesa-modal-dialog.ieeesa-roster-import-history-dialog .mat-mdc-dialog-container .mdc-dialog__content,.ieeesa-modal-dialog.ieeesa-roster-import-history-dialog .mat-mdc-dialog-surface,.ieeesa-modal-dialog.ieeesa-roster-import-history-dialog .mdc-dialog__surface,.ieeesa-modal-dialog.ieeesa-roster-import-history-dialog .ieeesa-modal,.ieeesa-modal-dialog.ieeesa-roster-import-history-dialog .ieeesa-modal>.ieeesa-label-lg-16{max-height:none!important;overflow:visible!important}.ieeesa-modal-dialog.ieeesa-roster-import-history-dialog .ieeesa-modal-title{border-bottom:1px solid #e5e7eb;padding-bottom:16px;margin-bottom:16px!important;display:flex;align-items:center;gap:4px}.ieeesa-modal-dialog.ieeesa-roster-import-history-dialog .mat-mdc-dialog-content{min-height:0!important;padding:0!important}.ieeesa-roster-import-history{display:flex;flex-direction:column;gap:12px}.ieeesa-roster-import-history__group-name{margin:0;font-family:Calibri Bold,sans-serif;font-size:18px;font-weight:700;line-height:1.3;color:#1f2937}.ieeesa-roster-import-history__section-title{margin:0 -1.5em;padding:12px 1.5em;background-color:#f3f4f6;font-family:Calibri Bold,sans-serif;font-size:16px;font-weight:700;line-height:1.3;color:#1f2937}.ieeesa-roster-import-history__table{display:block}.ieeesa-roster-import-history__table .ieeesa-data-table__content{height:auto;max-height:none;overflow:visible}.ieeesa-roster-import-history__status{margin:8px 0;font-family:Calibri Regular,sans-serif;font-size:14px;color:#6f7782}.ieeesa-roster-import-history__error{margin:8px 0;padding:12px 16px;border-radius:6px;background-color:#fdecec;border:1px solid #f5c2c2;font-family:Calibri Regular,sans-serif;font-size:14px;color:#b3261e}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DataTableComponent, selector: "ieeesa-data-table", inputs: ["tableDataInfo", "nestedTableDataInfo", "columnSchemaInfo", "nestedTableColumnSchemaInfo", "tableActions", "hasNestedTable", "tableColumnActions", "tableColumnActionMenuSize", "tableRowActions", "nestedTableRowActions", "caption", "viewAll", "paginatorConfig", "nestedPaginatorConfig", "legends", "pageIndex", "pageSize", "searchPlaceHolderText", "rowEditButton", "rowDeleteButton", "tableEditButton", "tableDeleteButton", "rowExpandButton", "rowCollapseButton", "isNestedTableHeaderNeeded", "addButton", "defaultColumnSortDirection", "defaultSortedColumn", "isClearSortNeeded", "filters", "selectedFilterOptions", "appliedFilterOptions", "searchType", "className", "searchSupportMessage", "inbuiltSortingNeeded", "isCellTextOverflowEllipsis", "isTableHeaderNeeded", "tableColumnsHeaderText", "verticalColumnHeaderNumber", "scrollbarSupportMessage", "isScrollSupportMessageNeeded", "isStickyHeaderNeeded", "customStickyHeaderNeeded", "headerElementClassName", "minCharToSearch", "searchResultMessage", "rowMenuActionIcon", "canDisableCheckbox", "isEllipsisRequiredForLink"], outputs: ["rowSelected", "selectedRowToEdit", "selectedRowToDelete", "selectedRowsToDelete", "rowLink", "addRow", "columnDataOnRowLinkClick", "menuActionClick", "selectActionMenu", "paginationChange", "selectedFilter", "removeFilteredOption", "filteredOptions", "searchedValue", "sortChange", "selectedRowsInfo", "rowExpansionClick", "tableColumnMenuActionClick", "tableColumnMenuToggleButton", "rowSlideToggle"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
225
|
+
}
|
|
226
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RosterImportHistoryComponent, decorators: [{
|
|
227
|
+
type: Component,
|
|
228
|
+
args: [{ selector: 'ieeesa-roster-import-history', standalone: true, imports: [CommonModule, DataTableComponent], encapsulation: ViewEncapsulation.None, template: "<div class=\"ieeesa-roster-import-history\">\r\n <!-- The \"\u2190 Back to Rosters / View History\" title row + X close are rendered\r\n by the shared ModalComponent above this. -->\r\n\r\n <!-- Group name heading (Figma: bold group name above the table). -->\r\n <p class=\"ieeesa-roster-import-history__group-name\">\r\n {{ groupName }}\r\n </p>\r\n\r\n <!-- \"Imported Files\" section title. -->\r\n <p class=\"ieeesa-roster-import-history__section-title\">\r\n {{ screenTexts?.importedFilesTitle ?? 'Imported Files' }}\r\n </p>\r\n\r\n <!-- Loading state -->\r\n <p\r\n *ngIf=\"isLoading\"\r\n class=\"ieeesa-roster-import-history__status\"\r\n role=\"status\"\r\n >\r\n {{ screenTexts?.loadingMessage ?? 'Loading import history...' }}\r\n </p>\r\n\r\n <!-- Error state -->\r\n <div\r\n *ngIf=\"!isLoading && errorMessage\"\r\n class=\"ieeesa-roster-import-history__error\"\r\n role=\"alert\"\r\n >\r\n {{ errorMessage }}\r\n </div>\r\n\r\n <!-- Imported Files table (read-only). Shown once loaded without error. -->\r\n <ieeesa-data-table\r\n *ngIf=\"!isLoading && !errorMessage\"\r\n class=\"ieeesa-roster-import-history__table\"\r\n [tableDataInfo]=\"tableData\"\r\n [columnSchemaInfo]=\"columnSchema\"\r\n [tableActions]=\"tableActions\"\r\n [isCellTextOverflowEllipsis]=\"true\"\r\n [className]=\"'ieeesa-roster-import-history-table'\"\r\n ></ieeesa-data-table>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:focus{background:#1f75a7}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:focus{background:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:focus{background-color:#f0f5f9}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-wrapper-border{border:1px solid #b2b7be;border-top:none;padding:1.5em;border-radius:0 0 4px 4px}.mat-mdc-dialog-content:has(>.ieeesa-roster-import-history),.mdc-dialog__content:has(>.ieeesa-roster-import-history),.mat-mdc-dialog-content:has(.ieeesa-roster-import-history),.mdc-dialog__content:has(.ieeesa-roster-import-history){max-height:none!important;min-height:320px!important;height:auto!important;overflow:visible!important}.ieeesa-modal-dialog.ieeesa-roster-import-history-dialog{width:1100px!important;max-width:calc(100vw - 32px)!important}.ieeesa-modal-dialog.ieeesa-roster-import-history-dialog .ieeesa-modal{box-shadow:0 4px 24px #00000080!important}.ieeesa-modal-dialog.ieeesa-roster-import-history-dialog .mat-mdc-dialog-content,.ieeesa-modal-dialog.ieeesa-roster-import-history-dialog [mat-dialog-content],.ieeesa-modal-dialog.ieeesa-roster-import-history-dialog .mdc-dialog__content,.ieeesa-modal-dialog.ieeesa-roster-import-history-dialog .mat-mdc-dialog-container .mdc-dialog__content,.ieeesa-modal-dialog.ieeesa-roster-import-history-dialog .mat-mdc-dialog-surface,.ieeesa-modal-dialog.ieeesa-roster-import-history-dialog .mdc-dialog__surface,.ieeesa-modal-dialog.ieeesa-roster-import-history-dialog .ieeesa-modal,.ieeesa-modal-dialog.ieeesa-roster-import-history-dialog .ieeesa-modal>.ieeesa-label-lg-16{max-height:none!important;overflow:visible!important}.ieeesa-modal-dialog.ieeesa-roster-import-history-dialog .ieeesa-modal-title{border-bottom:1px solid #e5e7eb;padding-bottom:16px;margin-bottom:16px!important;display:flex;align-items:center;gap:4px}.ieeesa-modal-dialog.ieeesa-roster-import-history-dialog .mat-mdc-dialog-content{min-height:0!important;padding:0!important}.ieeesa-roster-import-history{display:flex;flex-direction:column;gap:12px}.ieeesa-roster-import-history__group-name{margin:0;font-family:Calibri Bold,sans-serif;font-size:18px;font-weight:700;line-height:1.3;color:#1f2937}.ieeesa-roster-import-history__section-title{margin:0 -1.5em;padding:12px 1.5em;background-color:#f3f4f6;font-family:Calibri Bold,sans-serif;font-size:16px;font-weight:700;line-height:1.3;color:#1f2937}.ieeesa-roster-import-history__table{display:block}.ieeesa-roster-import-history__table .ieeesa-data-table__content{height:auto;max-height:none;overflow:visible}.ieeesa-roster-import-history__status{margin:8px 0;font-family:Calibri Regular,sans-serif;font-size:14px;color:#6f7782}.ieeesa-roster-import-history__error{margin:8px 0;padding:12px 16px;border-radius:6px;background-color:#fdecec;border:1px solid #f5c2c2;font-family:Calibri Regular,sans-serif;font-size:14px;color:#b3261e}\n"] }]
|
|
229
|
+
}], ctorParameters: function () { return [{ type: i1.RosterImportApiService }, { type: i2.GroupsService }, { type: i0.ChangeDetectorRef }, { type: i3.GlobalErrorHandlerService }]; }, propDecorators: { componentData: [{
|
|
230
|
+
type: Input
|
|
231
|
+
}] } });
|
|
232
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9zdGVyLWltcG9ydC1oaXN0b3J5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyb3Vwcy9zcmMvbGliL2NvbXBvbmVudHMvcm9zdGVyLWltcG9ydC1oaXN0b3J5L3Jvc3Rlci1pbXBvcnQtaGlzdG9yeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncm91cHMvc3JjL2xpYi9jb21wb25lbnRzL3Jvc3Rlci1pbXBvcnQtaGlzdG9yeS9yb3N0ZXItaW1wb3J0LWhpc3RvcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxLQUFLLEVBR0wsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQ0wsa0JBQWtCLEVBR2xCLGVBQWUsR0FDaEIsTUFBTSwwQkFBMEIsQ0FBQztBQUtsQyxPQUFPLEtBQUssU0FBUyxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7QUFZekQ7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQVNILE1BQU0sT0FBTyw0QkFBNEI7SUFvQ3ZDO0lBQ0UsMENBQTBDO0lBQ2xDLHNCQUE4QztJQUN0RCwwQ0FBMEM7SUFDbEMsWUFBMkI7SUFDbkMsMENBQTBDO0lBQ2xDLEdBQXNCO0lBQzlCLDBDQUEwQztJQUNsQyx5QkFBb0Q7UUFOcEQsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUU5QyxpQkFBWSxHQUFaLFlBQVksQ0FBZTtRQUUzQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUV0Qiw4QkFBeUIsR0FBekIseUJBQXlCLENBQTJCO1FBdkM5RCw4REFBOEQ7UUFDOUQsY0FBUyxHQUFRLFNBQVMsQ0FBQztRQUMzQixnQkFBVyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsbUJBQW1CLENBQUM7UUFFMUMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFFMUMsK0RBQStEO1FBQy9ELGlCQUFZLEdBQXdCLEVBQUUsQ0FBQztRQUV2QyxnREFBZ0Q7UUFDaEQsY0FBUyxHQUE2QixFQUFFLENBQUM7UUFFekMsbURBQW1EO1FBQ25ELGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFbEIsMkRBQTJEO1FBQzNELGlCQUFZLEdBQWtCLElBQUksQ0FBQztRQUVuQywwRUFBMEU7UUFDMUUsaUJBQVksR0FBaUI7WUFDM0IsY0FBYyxFQUFFLEtBQUs7WUFDckIsY0FBYyxFQUFFLEtBQUs7WUFDckIsV0FBVyxFQUFFLEtBQUs7WUFDbEIsWUFBWSxFQUFFLEtBQUs7WUFDbkIsY0FBYyxFQUFFLEtBQUs7U0FDdEIsQ0FBQztRQUVGLGdGQUFnRjtRQUMvRCxnQkFBVyxHQUMxQixJQUFJLENBQUMsV0FBVyxFQUFFLHFCQUFxQixJQUFJLEdBQUcsQ0FBQztJQVc5QyxDQUFDO0lBRUosMEVBQTBFO0lBQzFFLElBQUksU0FBUztRQUNYLE9BQU8sQ0FDTCxJQUFJLENBQUMsYUFBYSxFQUFFLFNBQVM7WUFDN0IsSUFBSSxDQUFDLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxFQUFFLFNBQVM7WUFDcEQsRUFBRSxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsNkNBQTZDO0lBQzdDLElBQVksT0FBTztRQUNqQixPQUFPLENBQ0wsSUFBSSxDQUFDLGFBQWEsRUFBRSxPQUFPO1lBQzFCLElBQUksQ0FBQyxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsRUFBRSxPQUFrQjtZQUM5RCxFQUFFLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSCxRQUFRO1FBQ04sSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDakIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLHNCQUFzQjthQUN4QixnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO2FBQzlCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzlCLFNBQVMsQ0FBQztZQUNULElBQUksRUFBRSxDQUFDLElBQXVCLEVBQUUsRUFBRTtnQkFDaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDbEUsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDM0IsQ0FBQztZQUNELDhEQUE4RDtZQUM5RCxLQUFLLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDM0IsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ssV0FBVyxDQUFDLEdBQW9CO1FBQ3RDLE9BQU87WUFDTCxTQUFTLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDM0IsY0FBYyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQ2hDLFFBQVEsRUFBRSxHQUFHLEVBQUUsUUFBUSxJQUFJLElBQUksQ0FBQyxXQUFXO1lBQzNDLFNBQVMsRUFBRSxHQUFHLEVBQUUsV0FBVyxJQUFJLENBQUM7WUFDaEMsTUFBTSxFQUFFLEdBQUcsRUFBRSxVQUFVLElBQUksQ0FBQztZQUM1QixXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsV0FBVztTQUNoRCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILDhEQUE4RDtJQUN0RCxXQUFXLENBQUMsS0FBVTtRQUM1QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNwQixNQUFNLE1BQU0sR0FBRyxLQUFLLEVBQUUsTUFBTSxJQUFJLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDO1FBQ3JELElBQUksTUFBTSxLQUFLLEdBQUcsRUFBRTtZQUNsQixJQUFJLENBQUMsWUFBWTtnQkFDZixJQUFJLENBQUMsV0FBVyxFQUFFLGdCQUFnQjtvQkFDbEMsdUVBQXVFLENBQUM7WUFDMUUsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLFlBQVk7WUFDZixJQUFJLENBQUMsV0FBVyxFQUFFLFlBQVk7Z0JBQzlCLGtEQUFrRCxDQUFDO1FBQ3JELElBQUksS0FBSyxZQUFZLGlCQUFpQixFQUFFO1lBQ3RDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDbkQ7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssaUJBQWlCO1FBQ3ZCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsWUFBWSxDQUFDO1FBQy9DLElBQUksQ0FBQyxZQUFZLEdBQUc7WUFDbEI7Z0JBQ0UsRUFBRSxFQUFFLENBQUM7Z0JBQ0wsU0FBUyxFQUFFLFdBQVc7Z0JBQ3RCLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxJQUFJLFdBQVc7Z0JBQzFDLFVBQVUsRUFBRSxlQUFlLENBQUMsSUFBSTtnQkFDaEMsOERBQThEO2dCQUM5RCxRQUFRLEVBQUUsQ0FBQyxPQUFZLEVBQUUsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLFNBQVMsRUFBRTthQUNuRDtZQUNEO2dCQUNFLEVBQUUsRUFBRSxDQUFDO2dCQUNMLFNBQVMsRUFBRSxnQkFBZ0I7Z0JBQzNCLE9BQU8sRUFBRSxPQUFPLEVBQUUsY0FBYyxJQUFJLGlCQUFpQjtnQkFDckQsVUFBVSxFQUFFLGVBQWUsQ0FBQyxJQUFJO2dCQUNoQyw4REFBOEQ7Z0JBQzlELFFBQVEsRUFBRSxDQUFDLE9BQVksRUFBRSxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsY0FBYyxFQUFFO2FBQ3hEO1lBQ0Q7Z0JBQ0UsRUFBRSxFQUFFLENBQUM7Z0JBQ0wsU0FBUyxFQUFFLFVBQVU7Z0JBQ3JCLE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxJQUFJLFdBQVc7Z0JBQ3pDLFVBQVUsRUFBRSxlQUFlLENBQUMsSUFBSTtnQkFDaEMsOERBQThEO2dCQUM5RCxRQUFRLEVBQUUsQ0FBQyxPQUFZLEVBQUUsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLFFBQVEsRUFBRTthQUNsRDtZQUNEO2dCQUNFLEVBQUUsRUFBRSxDQUFDO2dCQUNMLFNBQVMsRUFBRSxXQUFXO2dCQUN0QixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsSUFBSSxZQUFZO2dCQUMzQyxVQUFVLEVBQUUsZUFBZSxDQUFDLElBQUk7Z0JBQ2hDLDhEQUE4RDtnQkFDOUQsUUFBUSxFQUFFLENBQUMsT0FBWSxFQUFFLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxTQUFTLEVBQUU7YUFDbkQ7WUFDRDtnQkFDRSxFQUFFLEVBQUUsQ0FBQztnQkFDTCxTQUFTLEVBQUUsUUFBUTtnQkFDbkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLElBQUksUUFBUTtnQkFDcEMsVUFBVSxFQUFFLGVBQWUsQ0FBQyxJQUFJO2dCQUNoQyw4REFBOEQ7Z0JBQzlELFFBQVEsRUFBRSxDQUFDLE9BQVksRUFBRSxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFO2FBQ2hEO1lBQ0Q7Z0JBQ0UsRUFBRSxFQUFFLENBQUM7Z0JBQ0wsU0FBUyxFQUFFLGFBQWE7Z0JBQ3hCLE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxJQUFJLGNBQWM7Z0JBQy9DLFVBQVUsRUFBRSxlQUFlLENBQUMsSUFBSTtnQkFDaEMsOERBQThEO2dCQUM5RCxRQUFRLEVBQUUsQ0FBQyxPQUFZLEVBQUUsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLFdBQVcsRUFBRTthQUNyRDtTQUNGLENBQUM7SUFDSixDQUFDOytHQXBOVSw0QkFBNEI7bUdBQTVCLDRCQUE0QixvSUM1RHpDLHE3Q0EyQ0EsNnZXRFlZLFlBQVksbUlBQUUsa0JBQWtCOzs0RkFLL0IsNEJBQTRCO2tCQVJ4QyxTQUFTOytCQUNFLDhCQUE4QixjQUM1QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLENBQUMsaUJBRzVCLGlCQUFpQixDQUFDLElBQUk7aU5BSzVCLGFBQWE7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7XHJcbiAgRGF0YVRhYmxlQ29tcG9uZW50LFxyXG4gIFRhYmxlQWN0aW9ucyxcclxuICBUYWJsZUNvbHVtblNjaGVtYSxcclxuICBUYWJsZUNvbHVtblR5cGUsXHJcbn0gZnJvbSAnQGllZWVzYS1ucG0vcHJlc2VudGF0aW9uJztcclxuaW1wb3J0IHsgR2xvYmFsRXJyb3JIYW5kbGVyU2VydmljZSB9IGZyb20gJ0BpZWVlc2EtbnBtL3V0aWxpdHknO1xyXG5pbXBvcnQgeyBSb3N0ZXJJbXBvcnRKb2IgfSBmcm9tICcuLi8uLi9tb2RlbHMvcm9zdGVyLWltcG9ydC5tb2RlbCc7XHJcbmltcG9ydCB7IFJvc3RlckltcG9ydEFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9yb3N0ZXItaW1wb3J0LWFwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgR3JvdXBzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2dyb3Vwcy5zZXJ2aWNlJztcclxuaW1wb3J0ICogYXMgY29uc3RhbnRzIGZyb20gJy4uLy4uL2Fzc2V0cy9jb25zdGFudHMuanNvbic7XHJcblxyXG4vKiogQSBzaW5nbGUgcm93IHNob3duIGluIHRoZSBcIkltcG9ydGVkIEZpbGVzXCIgdGFibGUuICovXHJcbmludGVyZmFjZSBSb3N0ZXJJbXBvcnRIaXN0b3J5Um93IHtcclxuICB0aW1lc3RhbXA6IHN0cmluZztcclxuICBwZXJzb25JbXBvcnRlZDogc3RyaW5nO1xyXG4gIGZpbGVOYW1lOiBzdHJpbmc7XHJcbiAgYWRkZWRSb3dzOiBudW1iZXIgfCBzdHJpbmc7XHJcbiAgZXJyb3JzOiBudW1iZXIgfCBzdHJpbmc7XHJcbiAgdGFyZ2V0R3JvdXA6IHN0cmluZztcclxufVxyXG5cclxuLyoqXHJcbiAqIFJvc3RlciBpbXBvcnQtaGlzdG9yeSAoXCJWaWV3IEhpc3RvcnlcIikgZGlhbG9nIGJvZHkuXHJcbiAqXHJcbiAqIFJlbmRlcmVkIGluc2lkZSB0aGUgc2hhcmVkIE1vZGFsQ29tcG9uZW50ICh3aGljaCBzdXBwbGllcyB0aGVcclxuICogXCLihpAgQmFjayB0byBSb3N0ZXJzIC8gVmlldyBIaXN0b3J5XCIgYnJlYWRjcnVtYiB0aXRsZSByb3cgKyBYIGNsb3NlKS4gU2hvd3MgdGhlXHJcbiAqIHNlbGVjdGVkIGdyb3VwJ3MgbmFtZSBhbmQgYW4gXCJJbXBvcnRlZCBGaWxlc1wiIHRhYmxlIGxpc3RpbmcgcHJpb3Igcm9zdGVyXHJcbiAqIGltcG9ydHMuXHJcbiAqXHJcbiAqIERhdGEgY29tZXMgZnJvbSB0aGUgcmVhbCBCRSBlbmRwb2ludCB2aWEge0BsaW5rIFJvc3RlckltcG9ydEFwaVNlcnZpY2V9OlxyXG4gKiBgR0VUIC92MS9ncm91cHMvcm9zdGVyL2ltcG9ydC9oaXN0b3J5L3tncm91cElkfWAuIFRoZSByZXNwb25zZSBpcyBhIGxpc3Qgb2ZcclxuICogYFJvc3RlckltcG9ydEpvYmAgd2hvc2UgSlNPTiB2aWV3IGV4cG9zZXMgYGZpbGVOYW1lYCwgYHN1Y2Nlc3NSb3dzYCxcclxuICogYGZhaWxlZFJvd3NgLCBgc3RhdHVzYCBhbmQgaWRzIOKAlCBidXQgTk9UIGBjcmVhdGVkT25gIC8gYGNyZWF0ZWRCeWAgKGJvdGggYXJlXHJcbiAqIGBASnNvbklnbm9yZWAgb24gdGhlIEJFIGVudGl0eSkuIFNvIHRoZSBcIlRpbWVzdGFtcFwiIGFuZCBcIlBlcnNvbiBJbXBvcnRlZFwiXHJcbiAqIGNvbHVtbnMgcmVuZGVyIGEgcGxhY2Vob2xkZXIgdW50aWwgdGhlIEJFIGV4cG9zZXMgdGhvc2UgZmllbGRzLiBcIlRhcmdldFxyXG4gKiBHcm91cFwiIHVzZXMgdGhlIGN1cnJlbnQgZ3JvdXAncyBuYW1lIChoaXN0b3J5IGlzIHNjb3BlZCB0byBvbmUgZ3JvdXApLlxyXG4gKlxyXG4gKiBAZXhwb3J0XHJcbiAqIEBjbGFzcyBSb3N0ZXJJbXBvcnRIaXN0b3J5Q29tcG9uZW50XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2llZWVzYS1yb3N0ZXItaW1wb3J0LWhpc3RvcnknLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRGF0YVRhYmxlQ29tcG9uZW50XSxcclxuICB0ZW1wbGF0ZVVybDogJy4vcm9zdGVyLWltcG9ydC1oaXN0b3J5LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9yb3N0ZXItaW1wb3J0LWhpc3RvcnkuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUm9zdGVySW1wb3J0SGlzdG9yeUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAvKiogQ2FycmllcyB0aGUgeyBncm91cElkLCBncm91cE5hbWUgfSBwYXlsb2FkIGZyb20gdGhlIG9wZW5pbmcgZGlhbG9nLiAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgQElucHV0KCkgY29tcG9uZW50RGF0YTogYW55O1xyXG5cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gIGNvbnN0YW50czogYW55ID0gY29uc3RhbnRzO1xyXG4gIHNjcmVlblRleHRzID0gdGhpcy5jb25zdGFudHM/LnJvc3RlckltcG9ydEhpc3Rvcnk7XHJcblxyXG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG5cclxuICAvKiogVGFibGUgY29sdW1uIGRlZmluaXRpb25zIGZvciB0aGUgXCJJbXBvcnRlZCBGaWxlc1wiIHRhYmxlLiAqL1xyXG4gIGNvbHVtblNjaGVtYTogVGFibGVDb2x1bW5TY2hlbWFbXSA9IFtdO1xyXG5cclxuICAvKiogSW1wb3J0LWhpc3Rvcnkgcm93cyBtYXBwZWQgZm9yIHRoZSB0YWJsZS4gKi9cclxuICB0YWJsZURhdGE6IFJvc3RlckltcG9ydEhpc3RvcnlSb3dbXSA9IFtdO1xyXG5cclxuICAvKiogVHJ1ZSB3aGlsZSB0aGUgaGlzdG9yeSByZXF1ZXN0IGlzIGluIGZsaWdodC4gKi9cclxuICBpc0xvYWRpbmcgPSBmYWxzZTtcclxuXHJcbiAgLyoqIElubGluZSBlcnJvciBtZXNzYWdlIHdoZW4gdGhlIGhpc3RvcnkgcmVxdWVzdCBmYWlscy4gKi9cclxuICBlcnJvck1lc3NhZ2U6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG5cclxuICAvKiogUmVhZC1vbmx5IHRhYmxlIOKAlCBubyBzZWFyY2ggLyBmaWx0ZXIgLyBhZGQgLyBlZGl0IC8gZGVsZXRlIGFjdGlvbnMuICovXHJcbiAgdGFibGVBY3Rpb25zOiBUYWJsZUFjdGlvbnMgPSB7XHJcbiAgICBpc1NlYXJjaE5lZWRlZDogZmFsc2UsXHJcbiAgICBpc0ZpbHRlck5lZWRlZDogZmFsc2UsXHJcbiAgICBpc0FkZE5lZWRlZDogZmFsc2UsXHJcbiAgICBpc0VkaXROZWVkZWQ6IGZhbHNlLFxyXG4gICAgaXNEZWxldGVOZWVkZWQ6IGZhbHNlLFxyXG4gIH07XHJcblxyXG4gIC8qKiBQbGFjZWhvbGRlciBzaG93biBmb3IgZmllbGRzIHRoZSBCRSBkb2VzIG5vdCByZXR1cm4gKHRpbWVzdGFtcCAvIHBlcnNvbikuICovXHJcbiAgcHJpdmF0ZSByZWFkb25seSBwbGFjZWhvbGRlciA9XHJcbiAgICB0aGlzLnNjcmVlblRleHRzPy5lbXB0eUZpZWxkUGxhY2Vob2xkZXIgPz8gJ+KAlCc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIHJvc3RlckltcG9ydEFwaVNlcnZpY2U6IFJvc3RlckltcG9ydEFwaVNlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgZ3JvdXBTZXJ2aWNlOiBHcm91cHNTZXJ2aWNlLFxyXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVudXNlZC12YXJzXHJcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgZ2xvYmFsRXJyb3JIYW5kbGVyU2VydmljZTogR2xvYmFsRXJyb3JIYW5kbGVyU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgLyoqIFRoZSBncm91cCBuYW1lIHNob3duIGFzIHRoZSBoZWFkaW5nIGFib3ZlIHRoZSBJbXBvcnRlZCBGaWxlcyB0YWJsZS4gKi9cclxuICBnZXQgZ3JvdXBOYW1lKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLmNvbXBvbmVudERhdGE/Lmdyb3VwTmFtZSA/P1xyXG4gICAgICB0aGlzLmdyb3VwU2VydmljZT8uZ2V0U2VsZWN0ZWRHcm91cEluZm8oKT8uZ3JvdXBOYW1lID8/XHJcbiAgICAgICcnXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqIFRoZSBncm91cCBpZCB3aG9zZSBoaXN0b3J5IGlzIGZldGNoZWQuICovXHJcbiAgcHJpdmF0ZSBnZXQgZ3JvdXBJZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgdGhpcy5jb21wb25lbnREYXRhPy5ncm91cElkID8/XHJcbiAgICAgICh0aGlzLmdyb3VwU2VydmljZT8uZ2V0U2VsZWN0ZWRHcm91cEluZm8oKT8uZ3JvdXBJZCBhcyBzdHJpbmcpID8/XHJcbiAgICAgICcnXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQnVpbGRzIHRoZSB0YWJsZSBzY2hlbWEgYW5kIGxvYWRzIHRoZSBpbXBvcnQgaGlzdG9yeSBmcm9tIHRoZSBCRS5cclxuICAgKiBAbWVtYmVyb2YgUm9zdGVySW1wb3J0SGlzdG9yeUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5idWlsZENvbHVtblNjaGVtYSgpO1xyXG4gICAgdGhpcy5yb3N0ZXJJbXBvcnRBcGlTZXJ2aWNlLnNldEFwaUJhc2VVcmwodGhpcy5ncm91cFNlcnZpY2U/LmFwaUJhc2VVcmwpO1xyXG4gICAgdGhpcy5sb2FkSW1wb3J0SGlzdG9yeSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xlYW5zIHVwIHN1YnNjcmlwdGlvbnMgd2hlbiB0aGUgY29tcG9uZW50IGlzIGRlc3Ryb3llZC5cclxuICAgKiBAbWVtYmVyb2YgUm9zdGVySW1wb3J0SGlzdG9yeUNvbXBvbmVudFxyXG4gICAqL1xyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyB0aGUgaW1wb3J0IGhpc3RvcnkgZm9yIHRoZSBjdXJyZW50IGdyb3VwIGFuZCBtYXBzIGl0IHRvIHRhYmxlIHJvd3MuXHJcbiAgICogQG1lbWJlcm9mIFJvc3RlckltcG9ydEhpc3RvcnlDb21wb25lbnRcclxuICAgKi9cclxuICBsb2FkSW1wb3J0SGlzdG9yeSgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5ncm91cElkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gbnVsbDtcclxuICAgIHRoaXMucm9zdGVySW1wb3J0QXBpU2VydmljZVxyXG4gICAgICAuZ2V0SW1wb3J0SGlzdG9yeSh0aGlzLmdyb3VwSWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKGpvYnM6IFJvc3RlckltcG9ydEpvYltdKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IChqb2JzID8/IFtdKS5tYXAoKGpvYikgPT4gdGhpcy5tYXBKb2JUb1Jvdyhqb2IpKTtcclxuICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZXJyb3IpO1xyXG4gICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWFwcyBhIEJFIGltcG9ydCBqb2IgdG8gYSB0YWJsZSByb3cuIFRpbWVzdGFtcCBhbmQgUGVyc29uIEltcG9ydGVkIGFyZSBub3RcclxuICAgKiBwcmVzZW50IGluIHRoZSByZXNwb25zZSAoQkUgYEBKc29uSWdub3JlYCksIHNvIHRoZXkgcmVuZGVyIGEgcGxhY2Vob2xkZXIuXHJcbiAgICogVGFyZ2V0IEdyb3VwIHVzZXMgdGhlIGN1cnJlbnQgZ3JvdXAncyBuYW1lIChoaXN0b3J5IGlzIHBlci1ncm91cCkuXHJcbiAgICogQHBhcmFtIHtSb3N0ZXJJbXBvcnRKb2J9IGpvYiAtIFRoZSBCRSBpbXBvcnQgam9iLlxyXG4gICAqIEByZXR1cm4ge1Jvc3RlckltcG9ydEhpc3RvcnlSb3d9XHJcbiAgICogQG1lbWJlcm9mIFJvc3RlckltcG9ydEhpc3RvcnlDb21wb25lbnRcclxuICAgKi9cclxuICBwcml2YXRlIG1hcEpvYlRvUm93KGpvYjogUm9zdGVySW1wb3J0Sm9iKTogUm9zdGVySW1wb3J0SGlzdG9yeVJvdyB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB0aW1lc3RhbXA6IHRoaXMucGxhY2Vob2xkZXIsXHJcbiAgICAgIHBlcnNvbkltcG9ydGVkOiB0aGlzLnBsYWNlaG9sZGVyLFxyXG4gICAgICBmaWxlTmFtZTogam9iPy5maWxlTmFtZSA/PyB0aGlzLnBsYWNlaG9sZGVyLFxyXG4gICAgICBhZGRlZFJvd3M6IGpvYj8uc3VjY2Vzc1Jvd3MgPz8gMCxcclxuICAgICAgZXJyb3JzOiBqb2I/LmZhaWxlZFJvd3MgPz8gMCxcclxuICAgICAgdGFyZ2V0R3JvdXA6IHRoaXMuZ3JvdXBOYW1lIHx8IHRoaXMucGxhY2Vob2xkZXIsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWFwcyBhIGZhaWxlZCBoaXN0b3J5IHJlcXVlc3QgdG8gYSB1c2VyLWZhY2luZyBpbmxpbmUgZXJyb3IgbWVzc2FnZS5cclxuICAgKiBBIDQwMyBnZXRzIHRoZSBwZXJtaXNzaW9uLXNwZWNpZmljIG1lc3NhZ2U7IG90aGVyIGVycm9ycyBnZXQgdGhlIGdlbmVyaWNcclxuICAgKiBvbmUgYW5kIGFyZSBmb3J3YXJkZWQgdG8gdGhlIGdsb2JhbCBoYW5kbGVyIGZvciBsb2dnaW5nL2ludGVyY2VwdG9ycy5cclxuICAgKiBAcGFyYW0geyp9IGVycm9yIC0gVGhlIEh0dHBFcnJvclJlc3BvbnNlLlxyXG4gICAqIEBtZW1iZXJvZiBSb3N0ZXJJbXBvcnRIaXN0b3J5Q29tcG9uZW50XHJcbiAgICovXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBwcml2YXRlIGhhbmRsZUVycm9yKGVycm9yOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMudGFibGVEYXRhID0gW107XHJcbiAgICBjb25zdCBzdGF0dXMgPSBlcnJvcj8uc3RhdHVzID8/IGVycm9yPy5lcnJvcj8uc3RhdHVzO1xyXG4gICAgaWYgKHN0YXR1cyA9PT0gNDAzKSB7XHJcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID1cclxuICAgICAgICB0aGlzLnNjcmVlblRleHRzPy5mb3JiaWRkZW5NZXNzYWdlID8/XHJcbiAgICAgICAgJ1lvdSBkbyBub3QgaGF2ZSBwZXJtaXNzaW9uIHRvIHZpZXcgdGhlIGltcG9ydCBoaXN0b3J5IGZvciB0aGlzIGdyb3VwLic7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuZXJyb3JNZXNzYWdlID1cclxuICAgICAgdGhpcy5zY3JlZW5UZXh0cz8uZXJyb3JNZXNzYWdlID8/XHJcbiAgICAgICdVbmFibGUgdG8gbG9hZCBpbXBvcnQgaGlzdG9yeS4gUGxlYXNlIHRyeSBhZ2Fpbi4nO1xyXG4gICAgaWYgKGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcclxuICAgICAgdGhpcy5nbG9iYWxFcnJvckhhbmRsZXJTZXJ2aWNlLmhhbmRsZUVycm9yKGVycm9yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlZmluZXMgdGhlIFwiSW1wb3J0ZWQgRmlsZXNcIiB0YWJsZSBjb2x1bW5zLlxyXG4gICAqIEBtZW1iZXJvZiBSb3N0ZXJJbXBvcnRIaXN0b3J5Q29tcG9uZW50XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBidWlsZENvbHVtblNjaGVtYSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGNvbHVtbnMgPSB0aGlzLnNjcmVlblRleHRzPy50YWJsZUNvbHVtbnM7XHJcbiAgICB0aGlzLmNvbHVtblNjaGVtYSA9IFtcclxuICAgICAge1xyXG4gICAgICAgIGlkOiAxLFxyXG4gICAgICAgIGNvbHVtbkRlZjogJ3RpbWVzdGFtcCcsXHJcbiAgICAgICAgaGVhZGluZzogY29sdW1ucz8udGltZXN0YW1wID8/ICdUaW1lc3RhbXAnLFxyXG4gICAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5URVhULFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgY2VsbERhdGE6IChlbGVtZW50OiBhbnkpID0+IGAke2VsZW1lbnQudGltZXN0YW1wfWAsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogMixcclxuICAgICAgICBjb2x1bW5EZWY6ICdwZXJzb25JbXBvcnRlZCcsXHJcbiAgICAgICAgaGVhZGluZzogY29sdW1ucz8ucGVyc29uSW1wb3J0ZWQgPz8gJ1BlcnNvbiBJbXBvcnRlZCcsXHJcbiAgICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLlRFWFQsXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT4gYCR7ZWxlbWVudC5wZXJzb25JbXBvcnRlZH1gLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6IDMsXHJcbiAgICAgICAgY29sdW1uRGVmOiAnZmlsZU5hbWUnLFxyXG4gICAgICAgIGhlYWRpbmc6IGNvbHVtbnM/LmZpbGVOYW1lID8/ICdGaWxlIE5hbWUnLFxyXG4gICAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5URVhULFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgY2VsbERhdGE6IChlbGVtZW50OiBhbnkpID0+IGAke2VsZW1lbnQuZmlsZU5hbWV9YCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGlkOiA0LFxyXG4gICAgICAgIGNvbHVtbkRlZjogJ2FkZGVkUm93cycsXHJcbiAgICAgICAgaGVhZGluZzogY29sdW1ucz8uYWRkZWRSb3dzID8/ICdBZGRlZCBSb3dzJyxcclxuICAgICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuVEVYVCxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGNlbGxEYXRhOiAoZWxlbWVudDogYW55KSA9PiBgJHtlbGVtZW50LmFkZGVkUm93c31gLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6IDUsXHJcbiAgICAgICAgY29sdW1uRGVmOiAnZXJyb3JzJyxcclxuICAgICAgICBoZWFkaW5nOiBjb2x1bW5zPy5lcnJvcnMgPz8gJ0Vycm9ycycsXHJcbiAgICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLlRFWFQsXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT4gYCR7ZWxlbWVudC5lcnJvcnN9YCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGlkOiA2LFxyXG4gICAgICAgIGNvbHVtbkRlZjogJ3RhcmdldEdyb3VwJyxcclxuICAgICAgICBoZWFkaW5nOiBjb2x1bW5zPy50YXJnZXRHcm91cCA/PyAnVGFyZ2V0IEdyb3VwJyxcclxuICAgICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuVEVYVCxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGNlbGxEYXRhOiAoZWxlbWVudDogYW55KSA9PiBgJHtlbGVtZW50LnRhcmdldEdyb3VwfWAsXHJcbiAgICAgIH0sXHJcbiAgICBdO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiaWVlZXNhLXJvc3Rlci1pbXBvcnQtaGlzdG9yeVwiPlxyXG4gIDwhLS0gVGhlIFwi4oaQIEJhY2sgdG8gUm9zdGVycyAvIFZpZXcgSGlzdG9yeVwiIHRpdGxlIHJvdyArIFggY2xvc2UgYXJlIHJlbmRlcmVkXHJcbiAgICAgICBieSB0aGUgc2hhcmVkIE1vZGFsQ29tcG9uZW50IGFib3ZlIHRoaXMuIC0tPlxyXG5cclxuICA8IS0tIEdyb3VwIG5hbWUgaGVhZGluZyAoRmlnbWE6IGJvbGQgZ3JvdXAgbmFtZSBhYm92ZSB0aGUgdGFibGUpLiAtLT5cclxuICA8cCBjbGFzcz1cImllZWVzYS1yb3N0ZXItaW1wb3J0LWhpc3RvcnlfX2dyb3VwLW5hbWVcIj5cclxuICAgIHt7IGdyb3VwTmFtZSB9fVxyXG4gIDwvcD5cclxuXHJcbiAgPCEtLSBcIkltcG9ydGVkIEZpbGVzXCIgc2VjdGlvbiB0aXRsZS4gLS0+XHJcbiAgPHAgY2xhc3M9XCJpZWVlc2Etcm9zdGVyLWltcG9ydC1oaXN0b3J5X19zZWN0aW9uLXRpdGxlXCI+XHJcbiAgICB7eyBzY3JlZW5UZXh0cz8uaW1wb3J0ZWRGaWxlc1RpdGxlID8/ICdJbXBvcnRlZCBGaWxlcycgfX1cclxuICA8L3A+XHJcblxyXG4gIDwhLS0gTG9hZGluZyBzdGF0ZSAtLT5cclxuICA8cFxyXG4gICAgKm5nSWY9XCJpc0xvYWRpbmdcIlxyXG4gICAgY2xhc3M9XCJpZWVlc2Etcm9zdGVyLWltcG9ydC1oaXN0b3J5X19zdGF0dXNcIlxyXG4gICAgcm9sZT1cInN0YXR1c1wiXHJcbiAgPlxyXG4gICAge3sgc2NyZWVuVGV4dHM/LmxvYWRpbmdNZXNzYWdlID8/ICdMb2FkaW5nIGltcG9ydCBoaXN0b3J5Li4uJyB9fVxyXG4gIDwvcD5cclxuXHJcbiAgPCEtLSBFcnJvciBzdGF0ZSAtLT5cclxuICA8ZGl2XHJcbiAgICAqbmdJZj1cIiFpc0xvYWRpbmcgJiYgZXJyb3JNZXNzYWdlXCJcclxuICAgIGNsYXNzPVwiaWVlZXNhLXJvc3Rlci1pbXBvcnQtaGlzdG9yeV9fZXJyb3JcIlxyXG4gICAgcm9sZT1cImFsZXJ0XCJcclxuICA+XHJcbiAgICB7eyBlcnJvck1lc3NhZ2UgfX1cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBJbXBvcnRlZCBGaWxlcyB0YWJsZSAocmVhZC1vbmx5KS4gU2hvd24gb25jZSBsb2FkZWQgd2l0aG91dCBlcnJvci4gLS0+XHJcbiAgPGllZWVzYS1kYXRhLXRhYmxlXHJcbiAgICAqbmdJZj1cIiFpc0xvYWRpbmcgJiYgIWVycm9yTWVzc2FnZVwiXHJcbiAgICBjbGFzcz1cImllZWVzYS1yb3N0ZXItaW1wb3J0LWhpc3RvcnlfX3RhYmxlXCJcclxuICAgIFt0YWJsZURhdGFJbmZvXT1cInRhYmxlRGF0YVwiXHJcbiAgICBbY29sdW1uU2NoZW1hSW5mb109XCJjb2x1bW5TY2hlbWFcIlxyXG4gICAgW3RhYmxlQWN0aW9uc109XCJ0YWJsZUFjdGlvbnNcIlxyXG4gICAgW2lzQ2VsbFRleHRPdmVyZmxvd0VsbGlwc2lzXT1cInRydWVcIlxyXG4gICAgW2NsYXNzTmFtZV09XCInaWVlZXNhLXJvc3Rlci1pbXBvcnQtaGlzdG9yeS10YWJsZSdcIlxyXG4gID48L2llZWVzYS1kYXRhLXRhYmxlPlxyXG48L2Rpdj5cclxuIl19
|