@churchillliving/se-ui-toolkit 6.53.843 → 6.53.845
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.
|
@@ -22,28 +22,36 @@ export class ReportService {
|
|
|
22
22
|
});
|
|
23
23
|
this.createDynamicFields(repId, params, showDialog, reportType, reportHeader, reportFooter, form);
|
|
24
24
|
}
|
|
25
|
-
createDynamicFields(repId, params, showDialog, reportType,
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
25
|
+
createDynamicFields(repId, params, showDialog, reportType, reportHeader, reportFooter, form) {
|
|
26
|
+
let reportJson;
|
|
27
|
+
let reportName;
|
|
28
|
+
if (reportType === IReportType.EXCEL || reportType === IReportType.TEXT || reportType === IReportType.CSV) {
|
|
29
|
+
const getReportByReport = '/ReportConfig/Report';
|
|
30
|
+
const getReportById = '/ReportConfig/ById';
|
|
31
|
+
const getReportByIdOrName = typeof (repId) === 'number' ? getReportById : getReportByReport;
|
|
32
|
+
this.requestService
|
|
33
|
+
.getOne(getReportByIdOrName, repId)
|
|
34
|
+
.subscribe((data) => {
|
|
35
|
+
if (data) {
|
|
36
|
+
reportJson = JSON.parse(data?.report);
|
|
37
|
+
reportName = data.name ? data.name : EGridExcel.EXPORT;
|
|
38
|
+
this.formFields = reportJson?.FormFields;
|
|
39
|
+
this.generateReport(repId, params, showDialog, reportType, reportName, reportHeader, reportFooter, form, reportJson?.ReportDataSources);
|
|
40
|
+
}
|
|
41
|
+
}, (error) => {
|
|
42
|
+
this.alertService.error(error);
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
this.generateReport(repId, params, showDialog, reportType, reportName, reportHeader, reportFooter, form, reportJson?.ReportDataSources);
|
|
47
|
+
}
|
|
40
48
|
}
|
|
41
49
|
downloadCustomReport(dataSource, reportType, reportName = '', params) {
|
|
42
50
|
dataSource.forEach((uniqueKey) => {
|
|
43
51
|
this.getReportData(uniqueKey.datasource, reportType, reportName, params);
|
|
44
52
|
});
|
|
45
53
|
}
|
|
46
|
-
generateReport(repId, params, showDialog = false, reportType, reportHeader, reportFooter,
|
|
54
|
+
generateReport(repId, params, showDialog = false, reportType, reportName, reportHeader, reportFooter, form = {}, reportJsonData) {
|
|
47
55
|
this.getFormFieldValues(form, params);
|
|
48
56
|
if ((this.formFields.some((field) => !field.hidden) &&
|
|
49
57
|
showDialog === undefined) ||
|
|
@@ -226,4 +234,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImpor
|
|
|
226
234
|
providedIn: 'root'
|
|
227
235
|
}]
|
|
228
236
|
}], ctorParameters: function () { return [{ type: i1.DialogService }, { type: i2.RequestService }, { type: i3.GridService }, { type: i4.AlertService }]; } });
|
|
229
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zZS11aS10b29sa2l0L3NyYy9saWIvc2VydmljZXMvcmVwb3J0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUE0QixXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUzRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrRUFBK0UsQ0FBQztBQUl0SCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7OztBQUtsRCxNQUFNLE9BQU8sYUFBYTtJQUd4QixZQUFtQixhQUE0QixFQUNyQyxjQUE4QixFQUM5QixXQUF3QixFQUN4QixZQUEwQjtRQUhqQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUNyQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFMcEMsZUFBVSxHQUFpQixFQUFFLENBQUM7UUFDOUIsZUFBVSxHQUFRLEVBQUUsQ0FBQztJQUlvQixDQUFDO0lBRTFDLGNBQWMsQ0FBQyxRQUFhLEVBQUUsRUFBRSxNQUFXLEVBQUUsYUFBc0IsS0FBSyxFQUFFLGFBQXFCLFdBQVcsQ0FBQyxHQUFHLEVBQzlHLGVBQXVCLEVBQUUsRUFBRSxlQUF1QixFQUFFLEVBQUUsT0FBcUIsRUFBRTtRQUUzRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNwRyxDQUFDO0lBRUQsbUJBQW1CLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsSUFBSTtRQUN6RixNQUFNLGlCQUFpQixHQUFJLHNCQUFzQixDQUFDO1FBQ2xELE1BQU0sYUFBYSxHQUFJLG9CQUFvQixDQUFDO1FBQzVDLE1BQU0sbUJBQW1CLEdBQUcsT0FBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQztRQUMzRixJQUFJLENBQUMsY0FBYzthQUNoQixNQUFNLENBQWdCLG1CQUFtQixFQUFFLEtBQUssQ0FBQzthQUNqRCxTQUFTLENBQ1IsQ0FBQyxJQUFTLEVBQUUsRUFBRTtZQUNaLElBQUksSUFBSSxFQUFFO2dCQUNSLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUM1QyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsRUFBRSxVQUFVLENBQUM7Z0JBQ3pDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixDQUFDLENBQUE7YUFDdEs7UUFDSCxDQUFDLEVBQ0QsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNSLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLENBQUMsQ0FDRixDQUFDO0lBQ04sQ0FBQztJQUVELG9CQUFvQixDQUFDLFVBQWUsRUFBRSxVQUFVLEVBQUUsYUFBcUIsRUFBRSxFQUFFLE1BQVc7UUFDcEYsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQy9CLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzNFLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFVLEVBQUUsTUFBVyxFQUFFLGFBQXNCLEtBQUssRUFBRSxVQUF1QixFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsVUFBa0IsRUFBRSxPQUFxQixFQUFFLEVBQUUsY0FBYztRQUNuTCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3RDLElBQ0UsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQzdDLFVBQVUsS0FBSyxTQUFTLENBQUM7WUFDM0IsVUFBVSxLQUFLLElBQUksRUFDbkI7WUFDQSxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtnQkFDekQsS0FBSyxFQUFFLEtBQUs7Z0JBQ1osTUFBTSxFQUFFLE1BQU07Z0JBQ2QsTUFBTSxFQUFFLGlCQUFpQjtnQkFDekIsS0FBSyxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTtnQkFDN0IsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFDO2FBQ3pILENBQUMsQ0FBQztZQUNILE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3BFLE1BQU0sU0FBUyxHQUFHLFNBQVMsRUFBRSxRQUFrQyxDQUFDO1lBQ2hFLE1BQU0sY0FBYyxHQUFHLFNBQVMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3JELFNBQVMsQ0FBQyxpQkFBaUIsR0FBRyxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUM7U0FDcEQ7YUFBTTtZQUNMLElBQUksVUFBVSxLQUFLLFdBQVcsQ0FBQyxLQUFLLElBQUksVUFBVSxLQUFLLFdBQVcsQ0FBQyxJQUFJLElBQUksVUFBVSxLQUFLLFdBQVcsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3pHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxjQUFjLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQzthQUMzRTtpQkFBTTtnQkFDTCxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsWUFBWSxDQUFDLENBQUM7YUFDckU7U0FDRjtJQUNILENBQUM7SUFFRCxhQUFhLENBQUMsY0FBbUIsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQVc7UUFDcEUsSUFBSSxPQUFPLEdBQVUsRUFBRSxDQUFDO1FBQ3hCLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQy9CLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDdkIsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUM3QixPQUFPLENBQUMsSUFBSSxDQUFDO29CQUNYLEtBQUssRUFBRSxHQUFHO29CQUNWLFNBQVMsRUFBRSxPQUFPO29CQUNsQixRQUFRLEVBQUUsS0FBSztvQkFDZixLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQztpQkFDbEIsQ0FBQyxDQUNILENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQzdCO1FBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQWEsa0JBQWtCLEVBQUU7WUFDdEQsU0FBUyxFQUFFLGNBQWM7WUFDekIsT0FBTyxFQUFFLE9BQU87U0FDakIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQWEsRUFBRSxFQUFFO1lBQzdCLE1BQU0sUUFBUSxHQUFHLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDO1lBQzlDLE1BQU0sT0FBTyxHQUFHLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM5RCxJQUFJLFVBQVUsS0FBSyxXQUFXLENBQUMsS0FBSyxFQUFFO2dCQUNwQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO2FBQzdEO2lCQUFNLElBQUksVUFBVSxLQUFLLFdBQVcsQ0FBQyxJQUFJLEVBQUU7Z0JBQzFDLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO2FBQzNDO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO2FBQzFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxjQUFjLENBQUMsUUFBYSxFQUFFLFVBQWtCO1FBQzlDLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxhQUFhLENBQUMsUUFBYSxFQUFFLFVBQWtCO1FBQzdDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsSUFBa0IsRUFBRSxNQUFXO1FBQ2hELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQy9CLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7Z0JBQ3BDLElBQUksR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BDLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDNUMsSUFBSSxFQUFFLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTt3QkFDdEMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTs0QkFDL0IsSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsV0FBVyxFQUFFLEtBQUssS0FBSyxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsRUFBRTtnQ0FDL0QsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO29DQUMzQixJQUFJLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29DQUN4QyxJQUFJLE9BQU8sSUFBSSxHQUFHLEVBQUU7d0NBQ2xCLG1DQUFtQzt3Q0FDbkMsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLFlBQVksQ0FBQyxRQUFRLEVBQUU7NENBQzFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQzt5Q0FDNUU7NkNBQU07NENBQ0wsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7eUNBQ2xDO3FDQUNGO2dDQUNILENBQUMsQ0FBQyxDQUFDOzZCQUNKO3dCQUNILENBQUMsQ0FBQyxDQUFDO29CQUNMLENBQUMsQ0FBQyxDQUFDO2lCQUNKO3FCQUFNLElBQ0wsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7b0JBQ3ZDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQ3ZDO29CQUNBLElBQUksUUFBUSxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQ2hFLElBQUksRUFBRSxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7d0JBQ3RDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7NEJBQy9CLElBQ0UsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLFdBQVcsRUFBRSxLQUFLLEtBQUssQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLEVBQ2hFO2dDQUNBLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtvQ0FDM0IsSUFBSSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQ0FDeEMsSUFBSSxPQUFPLElBQUksR0FBRyxFQUFFO3dDQUNsQixJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksWUFBWSxDQUFDLFFBQVEsRUFBRTs0Q0FDMUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO3lDQUM1RTs2Q0FBTTs0Q0FDTCxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQzt5Q0FDbEM7cUNBQ0Y7Z0NBQ0gsQ0FBQyxDQUFDLENBQUM7NkJBQ0o7d0JBQ0gsQ0FBQyxDQUFDLENBQUM7b0JBQ0wsQ0FBQyxDQUFDLENBQUM7aUJBQ0o7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVELG1CQUFtQixDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLFlBQVk7UUFDM0QsSUFBSSxPQUFPLEdBQVUsRUFBRSxDQUFDO1FBQ3hCLElBQUksUUFBYSxDQUFDO1FBQ2xCLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQy9CLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDdkIsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUM3QixPQUFPLENBQUMsSUFBSSxDQUFDO29CQUNYLEtBQUssRUFBRSxHQUFHO29CQUNWLFNBQVMsRUFBRSxPQUFPO29CQUNsQixRQUFRLEVBQUUsS0FBSztvQkFDZixLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQztpQkFDbEIsQ0FBQyxDQUNILENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQzdCO1FBRUQsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssUUFBUSxFQUFFO1lBQy9CLFFBQVEsR0FBRyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUMsQ0FBQTtTQUNsRzthQUNJO1lBQ0gsUUFBUSxHQUFHLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxDQUFBO1NBQzNHO1FBRUQsSUFBSSxDQUFDLGNBQWM7YUFDaEIsUUFBUSxDQUFDLGtCQUFrQixFQUFFLFFBQVEsQ0FBQzthQUN0QyxTQUFTLENBQ1IsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNYLElBQUksT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLENBQUMsQ0FBQztZQUNyRSxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNqRCxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3RDLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1lBQ2QsTUFBTSxNQUFNLEdBQUcsUUFBUSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUM3RCxNQUFNLFFBQVEsR0FBRyxNQUFNO2dCQUNyQixFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDekIsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNmLEVBQUUsVUFBVSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMxQixDQUFDLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztZQUN0QixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM3QixDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDVixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvQixDQUFDLEVBQ0QsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNSLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FDRixDQUFDO0lBQ04sQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLE9BQU8sR0FBVSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNoQyxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ2hELE9BQU8sQ0FBQyxJQUFJLENBQUM7b0JBQ1gsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO29CQUNsQixTQUFTLEVBQUUsT0FBTztvQkFDbEIsUUFBUSxFQUFFLEtBQUs7b0JBQ2YsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO2lCQUNuQixDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztpSUFwT1UsYUFBYTtxSUFBYixhQUFhLGNBRlosTUFBTTs7MkZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFRm9ybUNvbnRyb2wsIElEeW5hbWljRm9ybSwgSUZvcm1GaWVsZCwgSVJlcG9ydFR5cGUgfSBmcm9tICcuLi9tb2RlbHMvZm9ybS5tb2RlbCc7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlLCBEeW5hbWljRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcbmltcG9ydCB7IFJlcG9ydEZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYmFzZS9yZXBvcnQvcmVwb3J0LUZpbHRlci9yZXBvcnQtZmlsdGVyL3JlcG9ydC1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFJlcXVlc3RTZXJ2aWNlIH0gZnJvbSAnLi9yZXF1ZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi9hbGVydC5zZXJ2aWNlJztcbmltcG9ydCB7IEdyaWRTZXJ2aWNlIH0gZnJvbSAnLi9ncmlkLnNlcnZpY2UnO1xuaW1wb3J0IHsgRUdyaWRFeGNlbCB9IGZyb20gJy4uL21vZGVscy9ncmlkLm1vZGVsJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUmVwb3J0U2VydmljZSB7XG4gIGZvcm1GaWVsZHM6IElGb3JtRmllbGRbXSA9IFtdO1xuICBwYXJhbXNDb3B5OiBhbnkgPSBbXTtcbiAgY29uc3RydWN0b3IocHVibGljIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZXF1ZXN0U2VydmljZTogUmVxdWVzdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBncmlkU2VydmljZTogR3JpZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSwpIHsgfVxuXG4gIGRvd25sb2FkUmVwb3J0KHJlcElkOiBhbnkgPSAnJywgcGFyYW1zOiBhbnksIHNob3dEaWFsb2c6IGJvb2xlYW4gPSBmYWxzZSwgcmVwb3J0VHlwZTogc3RyaW5nID0gSVJlcG9ydFR5cGUuUERGLCBcbiAgcmVwb3J0SGVhZGVyOiBzdHJpbmcgPSAnJywgcmVwb3J0Rm9vdGVyOiBzdHJpbmcgPSAnJywgZm9ybTogSUR5bmFtaWNGb3JtID0ge30pIFxuICB7XG4gICAgcGFyYW1zPy5mb3JFYWNoKChwKSA9PiB7XG4gICAgICB0aGlzLnBhcmFtc0NvcHkucHVzaChPYmplY3QuYXNzaWduKHt9LCBwKSk7XG4gICAgfSk7XG4gICAgdGhpcy5jcmVhdGVEeW5hbWljRmllbGRzKHJlcElkLCBwYXJhbXMsIHNob3dEaWFsb2csIHJlcG9ydFR5cGUsIHJlcG9ydEhlYWRlciwgcmVwb3J0Rm9vdGVyLCBmb3JtKTtcbiAgfVxuXG4gIGNyZWF0ZUR5bmFtaWNGaWVsZHMocmVwSWQsIHBhcmFtcywgc2hvd0RpYWxvZywgcmVwb3J0VHlwZSwgUmVwb3J0SGVhZGVyLCBSZXBvcnRGb290ZXIsIGZvcm0pIHtcbiAgICBjb25zdCBnZXRSZXBvcnRCeVJlcG9ydCA9ICAnL1JlcG9ydENvbmZpZy9SZXBvcnQnO1xuICAgIGNvbnN0IGdldFJlcG9ydEJ5SWQgPSAgJy9SZXBvcnRDb25maWcvQnlJZCc7XG4gICAgY29uc3QgZ2V0UmVwb3J0QnlJZE9yTmFtZSA9IHR5cGVvZihyZXBJZCkgPT09ICdudW1iZXInID8gZ2V0UmVwb3J0QnlJZCA6IGdldFJlcG9ydEJ5UmVwb3J0O1xuICAgIHRoaXMucmVxdWVzdFNlcnZpY2VcbiAgICAgIC5nZXRPbmU8UmVzcG9uc2UsIGFueT4oZ2V0UmVwb3J0QnlJZE9yTmFtZSwgcmVwSWQpXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlcG9ydEpzb24gPSBKU09OLnBhcnNlKGRhdGE/LnJlcG9ydCk7XG4gICAgICAgICAgICB0aGlzLmZvcm1GaWVsZHMgPSByZXBvcnRKc29uPy5Gb3JtRmllbGRzO1xuICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZVJlcG9ydChyZXBJZCwgcGFyYW1zLCBzaG93RGlhbG9nLCByZXBvcnRUeXBlLCBkYXRhLm5hbWUgPyBkYXRhLm5hbWUgOiBFR3JpZEV4Y2VsLkVYUE9SVCxSZXBvcnRIZWFkZXIsIFJlcG9ydEZvb3RlciwgZm9ybSwgcmVwb3J0SnNvbj8uUmVwb3J0RGF0YVNvdXJjZXMpXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcihlcnJvcik7XG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBkb3dubG9hZEN1c3RvbVJlcG9ydChkYXRhU291cmNlOiBhbnksIHJlcG9ydFR5cGUsIHJlcG9ydE5hbWU6IHN0cmluZyA9ICcnLCBwYXJhbXM6IGFueSkge1xuICAgIGRhdGFTb3VyY2UuZm9yRWFjaCgodW5pcXVlS2V5KSA9PiB7XG4gICAgICB0aGlzLmdldFJlcG9ydERhdGEodW5pcXVlS2V5LmRhdGFzb3VyY2UsIHJlcG9ydFR5cGUsIHJlcG9ydE5hbWUsIHBhcmFtcyk7XG4gICAgfSlcbiAgfVxuXG4gIGdlbmVyYXRlUmVwb3J0KHJlcElkOiBhbnksIHBhcmFtczogYW55LCBzaG93RGlhbG9nOiBib29sZWFuID0gZmFsc2UsIHJlcG9ydFR5cGU6IElSZXBvcnRUeXBlLCByZXBvcnRIZWFkZXIsIHJlcG9ydEZvb3RlciwgcmVwb3J0TmFtZTogc3RyaW5nLCBmb3JtOiBJRHluYW1pY0Zvcm0gPSB7fSwgcmVwb3J0SnNvbkRhdGEpIHtcbiAgICB0aGlzLmdldEZvcm1GaWVsZFZhbHVlcyhmb3JtLCBwYXJhbXMpO1xuICAgIGlmIChcbiAgICAgICh0aGlzLmZvcm1GaWVsZHMuc29tZSgoZmllbGQpID0+ICFmaWVsZC5oaWRkZW4pICYmXG4gICAgICAgIHNob3dEaWFsb2cgPT09IHVuZGVmaW5lZCkgfHxcbiAgICAgIHNob3dEaWFsb2cgPT09IHRydWVcbiAgICApIHtcbiAgICAgIGNvbnN0IHJlZiA9IHRoaXMuZGlhbG9nU2VydmljZS5vcGVuKFJlcG9ydEZpbHRlckNvbXBvbmVudCwge1xuICAgICAgICB3aWR0aDogJzgwJScsXG4gICAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgICBoZWFkZXI6ICdHZW5lcmF0ZSBSZXBvcnQnLFxuICAgICAgICBzdHlsZTogeyBiYWNrZ3JvdW5kOiAnI2ZmZicgfSxcbiAgICAgICAgZGF0YTogeyBnZXRSZXBvcnQ6IHJlcElkLCBwYXJhbTogcGFyYW1zLCBzaG93RGlhbG9nLCByZXBvcnRKc29uRGF0YSwgcmVwb3J0VHlwZSwgcmVwb3J0SGVhZGVyLCByZXBvcnRGb290ZXIsIHJlcG9ydE5hbWV9LFxuICAgICAgfSk7XG4gICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZ1NlcnZpY2UuZGlhbG9nQ29tcG9uZW50UmVmTWFwLmdldChyZWYpO1xuICAgICAgY29uc3QgY29tcG9uZW50ID0gZGlhbG9nUmVmPy5pbnN0YW5jZSBhcyBEeW5hbWljRGlhbG9nQ29tcG9uZW50O1xuICAgICAgY29uc3QgYXJpYUxhYmVsbGVkQnkgPSBjb21wb25lbnQuZ2V0QXJpYUxhYmVsbGVkQnkoKTtcbiAgICAgIGNvbXBvbmVudC5nZXRBcmlhTGFiZWxsZWRCeSA9ICgpID0+IGFyaWFMYWJlbGxlZEJ5O1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAocmVwb3J0VHlwZSA9PT0gSVJlcG9ydFR5cGUuRVhDRUwgfHwgcmVwb3J0VHlwZSA9PT0gSVJlcG9ydFR5cGUuVEVYVCB8fCByZXBvcnRUeXBlID09PSBJUmVwb3J0VHlwZS5DU1YpIHtcbiAgICAgICAgdGhpcy5kb3dubG9hZEN1c3RvbVJlcG9ydChyZXBvcnRKc29uRGF0YSwgcmVwb3J0VHlwZSwgcmVwb3J0TmFtZSwgcGFyYW1zKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZG93bmxvYWRRdWlja1JlcG9ydChwYXJhbXMsIHJlcElkLCByZXBvcnRIZWFkZXIsIHJlcG9ydEZvb3Rlcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0UmVwb3J0RGF0YSh1bmlxdWVLZXlWYWx1ZTogYW55LCByZXBvcnRUeXBlLCByZXBvcnROYW1lLCBwYXJhbXM6IGFueSkge1xuICAgIGxldCBmaWx0ZXJzOiBhbnlbXSA9IFtdO1xuICAgIGlmIChwYXJhbXMgJiYgcGFyYW1zLmxlbmd0aCA+IDApIHtcbiAgICAgIHBhcmFtcy5mb3JFYWNoKChwYXJhbSkgPT4ge1xuICAgICAgICBPYmplY3Qua2V5cyhwYXJhbSkubWFwKChrZXkpID0+XG4gICAgICAgICAgZmlsdGVycy5wdXNoKHtcbiAgICAgICAgICAgIGZpZWxkOiBrZXksXG4gICAgICAgICAgICBtYXRjaE1vZGU6ICdlcXVhbCcsXG4gICAgICAgICAgICBvcGVyYXRvcjogJ2FuZCcsXG4gICAgICAgICAgICB2YWx1ZTogcGFyYW1ba2V5XSxcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZpbHRlcnMgPSB0aGlzLmdldEZpbHRlcnMoKTtcbiAgICB9XG4gICAgdGhpcy5yZXF1ZXN0U2VydmljZS5nZXQ8YW55W10sIGFueT4oJy9EYXRhL011bHRpRmV0Y2gnLCB7XG4gICAgICB1bmlxdWVLZXk6IHVuaXF1ZUtleVZhbHVlLFxuICAgICAgZmlsdGVyczogZmlsdGVycyxcbiAgICB9KS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgIGNvbnN0IHJvd3NJbmZvID0gcmVzcG9uc2U/LnRhYmxlc1swXT8ucmVjb3JkcztcbiAgICAgIGNvbnN0IGNvbHVtbnMgPSBPYmplY3Q/LmtleXMocmVzcG9uc2U/LnRhYmxlc1swXT8ucmVjb3Jkc1swXSk7XG4gICAgICBpZiAocmVwb3J0VHlwZSA9PT0gSVJlcG9ydFR5cGUuRVhDRUwpIHtcbiAgICAgICAgdGhpcy5ncmlkU2VydmljZS5leHBvcnRFeGNlbChyb3dzSW5mbywgY29sdW1ucywgcmVwb3J0TmFtZSk7XG4gICAgICB9IGVsc2UgaWYgKHJlcG9ydFR5cGUgPT09IElSZXBvcnRUeXBlLlRFWFQpIHtcbiAgICAgICAgdGhpcy5zYXZlQXNUZXh0RmlsZShyb3dzSW5mbywgcmVwb3J0TmFtZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNhdmVBc0NzdkZpbGUocm93c0luZm8sIHJlcG9ydE5hbWUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4cG9ydCB0byB0ZXh0IChzdWItbWV0aG9kKVxuICAgKi9cbiAgc2F2ZUFzVGV4dEZpbGUocm93c0luZm86IGFueSwgcmVwb3J0TmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5ncmlkU2VydmljZS5zYXZlQXNUZXh0RmlsZShyb3dzSW5mbywgcmVwb3J0TmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogRXhwb3J0IHRvIENTViAoc3ViLW1ldGhvZClcbiAgICovXG4gIHNhdmVBc0NzdkZpbGUocm93c0luZm86IGFueSwgcmVwb3J0TmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5ncmlkU2VydmljZS5zYXZlRGF0YUFzQ3N2KHJvd3NJbmZvLCByZXBvcnROYW1lKTtcbiAgfVxuXG4gIGdldEZvcm1GaWVsZFZhbHVlcyhmb3JtOiBJRHluYW1pY0Zvcm0sIHBhcmFtczogYW55KSB7XG4gICAgaWYgKHRoaXMucGFyYW1zQ29weT8ubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5wYXJhbXNDb3B5LmZvckVhY2goKHBhcmFtQ29weSkgPT4ge1xuICAgICAgICB2YXIga2V5ID0gT2JqZWN0LmtleXMocGFyYW1Db3B5KVswXTtcbiAgICAgICAgaWYgKHBhcmFtQ29weVtrZXldID09PSAnJyB8fCAhcGFyYW1Db3B5W2tleV0pIHtcbiAgICAgICAgICBmb3JtPy5mb3JtU2VjdGlvbnM/LmZvckVhY2goKHNlY3Rpb24pID0+IHtcbiAgICAgICAgICAgIHNlY3Rpb24uZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChrZXkudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpID09PSBmaWVsZC5maWVsZD8udG9Mb3dlckNhc2UoKSkge1xuICAgICAgICAgICAgICAgIHBhcmFtcy5mb3JFYWNoKChvcmlnUGFyYW0pID0+IHtcbiAgICAgICAgICAgICAgICAgIHZhciBvcmlnS2V5ID0gT2JqZWN0LmtleXMob3JpZ1BhcmFtKVswXTtcbiAgICAgICAgICAgICAgICAgIGlmIChvcmlnS2V5ID09IGtleSkge1xuICAgICAgICAgICAgICAgICAgICAvL29yaWdQYXJhbVtvcmlnS2V5XSA9IGZpZWxkLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmllbGQuY29udHJvbCA9PSBFRm9ybUNvbnRyb2wuQ0FMRU5EQVIpIHtcbiAgICAgICAgICAgICAgICAgICAgICBvcmlnUGFyYW1bb3JpZ0tleV0gPSBmaWVsZC52YWx1ZSA/IGZpZWxkLnZhbHVlLnRvTG9jYWxlRGF0ZVN0cmluZygpIDogbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICBvcmlnUGFyYW1bb3JpZ0tleV0gPSBmaWVsZC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICBwYXJhbUNvcHlba2V5XS50b1N0cmluZygpLmluY2x1ZGVzKCd7JykgJiZcbiAgICAgICAgICBwYXJhbUNvcHlba2V5XS50b1N0cmluZygpLmluY2x1ZGVzKCd9JylcbiAgICAgICAgKSB7XG4gICAgICAgICAgdmFyIG5ld1ZhbHVlID0gcGFyYW1Db3B5W2tleV0ucmVwbGFjZSgneycsICcnKS5yZXBsYWNlKCd9JywgJycpO1xuICAgICAgICAgIGZvcm0/LmZvcm1TZWN0aW9ucz8uZm9yRWFjaCgoc2VjdGlvbikgPT4ge1xuICAgICAgICAgICAgc2VjdGlvbi5maWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIG5ld1ZhbHVlLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSA9PT0gZmllbGQuZmllbGQ/LnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zLmZvckVhY2goKG9yaWdQYXJhbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgdmFyIG9yaWdLZXkgPSBPYmplY3Qua2V5cyhvcmlnUGFyYW0pWzBdO1xuICAgICAgICAgICAgICAgICAgaWYgKG9yaWdLZXkgPT0ga2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaWVsZC5jb250cm9sID09IEVGb3JtQ29udHJvbC5DQUxFTkRBUikge1xuICAgICAgICAgICAgICAgICAgICAgIG9yaWdQYXJhbVtvcmlnS2V5XSA9IGZpZWxkLnZhbHVlID8gZmllbGQudmFsdWUudG9Mb2NhbGVEYXRlU3RyaW5nKCkgOiBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIG9yaWdQYXJhbVtvcmlnS2V5XSA9IGZpZWxkLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBkb3dubG9hZFF1aWNrUmVwb3J0KHBhcmFtcywgcmVwSWQsIHJlcG9ydEhlYWRlciwgcmVwb3J0Rm9vdGVyKSB7XG4gICAgbGV0IGZpbHRlcnM6IGFueVtdID0gW107XG4gICAgbGV0IHJlcElkT2JqOiBhbnk7XG4gICAgaWYgKHBhcmFtcyAmJiBwYXJhbXMubGVuZ3RoID4gMCkge1xuICAgICAgcGFyYW1zLmZvckVhY2goKHBhcmFtKSA9PiB7XG4gICAgICAgIE9iamVjdC5rZXlzKHBhcmFtKS5tYXAoKGtleSkgPT5cbiAgICAgICAgICBmaWx0ZXJzLnB1c2goe1xuICAgICAgICAgICAgZmllbGQ6IGtleSxcbiAgICAgICAgICAgIG1hdGNoTW9kZTogJ2VxdWFsJyxcbiAgICAgICAgICAgIG9wZXJhdG9yOiAnYW5kJyxcbiAgICAgICAgICAgIHZhbHVlOiBwYXJhbVtrZXldLFxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZmlsdGVycyA9IHRoaXMuZ2V0RmlsdGVycygpO1xuICAgIH1cbiAgICBcbiAgICBpZiAodHlwZW9mIChyZXBJZCkgPT09ICdudW1iZXInKSB7XG4gICAgICByZXBJZE9iaiA9IHsgSWQ6IHJlcElkLCBmaWx0ZXJzOiBmaWx0ZXJzLCBSZXBvcnRIZWFkZXI6IHJlcG9ydEhlYWRlciwgUmVwb3J0Rm9vdGVyOiByZXBvcnRGb290ZXJ9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgcmVwSWRPYmogPSB7IHJlcG9ydE5hbWU6IHJlcElkLCBmaWx0ZXJzOiBmaWx0ZXJzLCBSZXBvcnRIZWFkZXI6IHJlcG9ydEhlYWRlciwgUmVwb3J0Rm9vdGVyOiByZXBvcnRGb290ZXIgfVxuICAgIH1cblxuICAgIHRoaXMucmVxdWVzdFNlcnZpY2VcbiAgICAgIC5kb3dubG9hZCgnL1JlcG9ydC9HZW5lcmF0ZScsIHJlcElkT2JqKVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgdmFyIG5ld0Jsb2IgPSBuZXcgQmxvYihbcmVzcG9uc2UuYm9keV0sIHsgdHlwZTogJ2FwcGxpY2F0aW9uL3BkZicgfSk7XG4gICAgICAgICAgY29uc3QgZGF0YSA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKG5ld0Jsb2IpO1xuICAgICAgICAgIGNvbnN0IGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgICAgICAgYS5ocmVmID0gZGF0YTtcbiAgICAgICAgICBjb25zdCBoZWFkZXIgPSByZXNwb25zZT8uaGVhZGVycz8uZ2V0KCdDb250ZW50LURpc3Bvc2l0aW9uJyk7XG4gICAgICAgICAgY29uc3QgZmlsZU5hbWUgPSBoZWFkZXJcbiAgICAgICAgICAgID8uc3BsaXQoJ2ZpbGVuYW1lPScpPy5bMV1cbiAgICAgICAgICAgID8uc3BsaXQoJzsnKVswXVxuICAgICAgICAgICAgPy5yZXBsYWNlQWxsKC9cXFwiL2csICcnKTtcbiAgICAgICAgICBhLmRvd25sb2FkID0gZmlsZU5hbWU7XG4gICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKTtcbiAgICAgICAgICBhLmNsaWNrKCk7XG4gICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChhKTtcbiAgICAgICAgfSxcbiAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYXBpRXJyb3IoZXJyb3IpO1xuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgZ2V0RmlsdGVycygpIHtcbiAgICBsZXQgZmlsdGVyczogYW55W10gPSBbXTtcbiAgICB0aGlzLmZvcm1GaWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgIGlmIChmaWVsZCAmJiBmaWVsZC52YWx1ZT8udG9TdHJpbmcoKT8ubGVuZ3RoID4gMCkge1xuICAgICAgICBmaWx0ZXJzLnB1c2goe1xuICAgICAgICAgIGZpZWxkOiBmaWVsZC5maWVsZCxcbiAgICAgICAgICBtYXRjaE1vZGU6ICdlcXVhbCcsXG4gICAgICAgICAgb3BlcmF0b3I6ICdhbmQnLFxuICAgICAgICAgIHZhbHVlOiBmaWVsZC52YWx1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGZpbHRlcnM7XG4gIH1cbn1cbiJdfQ==
|
|
237
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zZS11aS10b29sa2l0L3NyYy9saWIvc2VydmljZXMvcmVwb3J0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUE0QixXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUzRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrRUFBK0UsQ0FBQztBQUl0SCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7OztBQUtsRCxNQUFNLE9BQU8sYUFBYTtJQUd4QixZQUFtQixhQUE0QixFQUNyQyxjQUE4QixFQUM5QixXQUF3QixFQUN4QixZQUEwQjtRQUhqQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUNyQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFMcEMsZUFBVSxHQUFpQixFQUFFLENBQUM7UUFDOUIsZUFBVSxHQUFRLEVBQUUsQ0FBQztJQUlvQixDQUFDO0lBRTFDLGNBQWMsQ0FBQyxRQUFhLEVBQUUsRUFBRSxNQUFXLEVBQUUsYUFBc0IsS0FBSyxFQUFFLGFBQXFCLFdBQVcsQ0FBQyxHQUFHLEVBQzlHLGVBQXVCLEVBQUUsRUFBRSxlQUF1QixFQUFFLEVBQUUsT0FBcUIsRUFBRTtRQUUzRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxtQkFB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QUMxQixDQUFDLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztZQUN0QixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM3QixDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDVixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvQixDQUFDLEVBQ0QsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNSLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FDRixDQUFDO0lBQ04sQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLE9BQU8sR0FBVSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNoQyxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ2hELE9BQU8sQ0FBQyxJQUFJLENBQUM7b0JBQ1gsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO29CQUNsQixTQUFTLEVBQUUsT0FBTztvQkFDbEIsUUFBUSxFQUFFLEtBQUs7b0JBQ2YsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO2lCQUNuQixDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztpSUE1T1UsYUFBYTtxSUFBYixhQUFhLGNBRlosTUFBTTs7MkZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFRm9ybUNvbnRyb2wsIElEeW5hbWljRm9ybSwgSUZvcm1GaWVsZCwgSVJlcG9ydFR5cGUgfSBmcm9tICcuLi9tb2RlbHMvZm9ybS5tb2RlbCc7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlLCBEeW5hbWljRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcbmltcG9ydCB7IFJlcG9ydEZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYmFzZS9yZXBvcnQvcmVwb3J0LUZpbHRlci9yZXBvcnQtZmlsdGVyL3JlcG9ydC1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFJlcXVlc3RTZXJ2aWNlIH0gZnJvbSAnLi9yZXF1ZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi9hbGVydC5zZXJ2aWNlJztcbmltcG9ydCB7IEdyaWRTZXJ2aWNlIH0gZnJvbSAnLi9ncmlkLnNlcnZpY2UnO1xuaW1wb3J0IHsgRUdyaWRFeGNlbCB9IGZyb20gJy4uL21vZGVscy9ncmlkLm1vZGVsJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUmVwb3J0U2VydmljZSB7XG4gIGZvcm1GaWVsZHM6IElGb3JtRmllbGRbXSA9IFtdO1xuICBwYXJhbXNDb3B5OiBhbnkgPSBbXTtcbiAgY29uc3RydWN0b3IocHVibGljIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZXF1ZXN0U2VydmljZTogUmVxdWVzdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBncmlkU2VydmljZTogR3JpZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSwpIHsgfVxuXG4gIGRvd25sb2FkUmVwb3J0KHJlcElkOiBhbnkgPSAnJywgcGFyYW1zOiBhbnksIHNob3dEaWFsb2c6IGJvb2xlYW4gPSBmYWxzZSwgcmVwb3J0VHlwZTogc3RyaW5nID0gSVJlcG9ydFR5cGUuUERGLCBcbiAgcmVwb3J0SGVhZGVyOiBzdHJpbmcgPSAnJywgcmVwb3J0Rm9vdGVyOiBzdHJpbmcgPSAnJywgZm9ybTogSUR5bmFtaWNGb3JtID0ge30pIFxuICB7XG4gICAgcGFyYW1zPy5mb3JFYWNoKChwKSA9PiB7XG4gICAgICB0aGlzLnBhcmFtc0NvcHkucHVzaChPYmplY3QuYXNzaWduKHt9LCBwKSk7XG4gICAgfSk7XG4gICAgdGhpcy5jcmVhdGVEeW5hbWljRmllbGRzKHJlcElkLCBwYXJhbXMsIHNob3dEaWFsb2csIHJlcG9ydFR5cGUsIHJlcG9ydEhlYWRlciwgcmVwb3J0Rm9vdGVyLCBmb3JtKTtcbiAgfVxuXG4gIGNyZWF0ZUR5bmFtaWNGaWVsZHMocmVwSWQsIHBhcmFtcywgc2hvd0RpYWxvZywgcmVwb3J0VHlwZSwgcmVwb3J0SGVhZGVyLCByZXBvcnRGb290ZXIsIGZvcm0pIHtcbiAgICBsZXQgcmVwb3J0SnNvbjtcbiAgICBsZXQgcmVwb3J0TmFtZTtcbiAgICBpZihyZXBvcnRUeXBlID09PSBJUmVwb3J0VHlwZS5FWENFTCB8fCByZXBvcnRUeXBlID09PSBJUmVwb3J0VHlwZS5URVhUIHx8IHJlcG9ydFR5cGUgPT09IElSZXBvcnRUeXBlLkNTVil7XG4gICAgICBjb25zdCBnZXRSZXBvcnRCeVJlcG9ydCA9ICAnL1JlcG9ydENvbmZpZy9SZXBvcnQnO1xuICAgICAgY29uc3QgZ2V0UmVwb3J0QnlJZCA9ICAnL1JlcG9ydENvbmZpZy9CeUlkJztcbiAgICAgIGNvbnN0IGdldFJlcG9ydEJ5SWRPck5hbWUgPSB0eXBlb2YocmVwSWQpID09PSAnbnVtYmVyJyA/IGdldFJlcG9ydEJ5SWQgOiBnZXRSZXBvcnRCeVJlcG9ydDtcbiAgICAgIHRoaXMucmVxdWVzdFNlcnZpY2VcbiAgICAgICAgLmdldE9uZTxSZXNwb25zZSwgYW55PihnZXRSZXBvcnRCeUlkT3JOYW1lLCByZXBJZClcbiAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoZGF0YSkge1xuICAgICAgICAgICAgICByZXBvcnRKc29uID0gSlNPTi5wYXJzZShkYXRhPy5yZXBvcnQpO1xuICAgICAgICAgICAgICByZXBvcnROYW1lID0gZGF0YS5uYW1lID8gZGF0YS5uYW1lIDogRUdyaWRFeGNlbC5FWFBPUlRcbiAgICAgICAgICAgICAgdGhpcy5mb3JtRmllbGRzID0gcmVwb3J0SnNvbj8uRm9ybUZpZWxkcztcbiAgICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZVJlcG9ydChyZXBJZCwgcGFyYW1zLCBzaG93RGlhbG9nLCByZXBvcnRUeXBlLCByZXBvcnROYW1lLHJlcG9ydEhlYWRlciwgcmVwb3J0Rm9vdGVyLCBmb3JtLCByZXBvcnRKc29uPy5SZXBvcnREYXRhU291cmNlcylcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoZXJyb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLmdlbmVyYXRlUmVwb3J0KHJlcElkLCBwYXJhbXMsIHNob3dEaWFsb2csIHJlcG9ydFR5cGUsIHJlcG9ydE5hbWUsIHJlcG9ydEhlYWRlciwgcmVwb3J0Rm9vdGVyLCBmb3JtLCByZXBvcnRKc29uPy5SZXBvcnREYXRhU291cmNlcylcbiAgICB9XG4gIH1cblxuICBkb3dubG9hZEN1c3RvbVJlcG9ydChkYXRhU291cmNlOiBhbnksIHJlcG9ydFR5cGUsIHJlcG9ydE5hbWU6IHN0cmluZyA9ICcnLCBwYXJhbXM6IGFueSkge1xuICAgIGRhdGFTb3VyY2UuZm9yRWFjaCgodW5pcXVlS2V5KSA9PiB7XG4gICAgICB0aGlzLmdldFJlcG9ydERhdGEodW5pcXVlS2V5LmRhdGFzb3VyY2UsIHJlcG9ydFR5cGUsIHJlcG9ydE5hbWUsIHBhcmFtcyk7XG4gICAgfSlcbiAgfVxuXG4gIGdlbmVyYXRlUmVwb3J0KHJlcElkOiBhbnksIHBhcmFtczogYW55LCBzaG93RGlhbG9nOiBib29sZWFuID0gZmFsc2UsIHJlcG9ydFR5cGU6IElSZXBvcnRUeXBlLCByZXBvcnROYW1lOiBzdHJpbmcsIHJlcG9ydEhlYWRlcjogc3RyaW5nLCByZXBvcnRGb290ZXI6IHN0cmluZywgZm9ybTogSUR5bmFtaWNGb3JtID0ge30sIHJlcG9ydEpzb25EYXRhKSB7XG4gICAgdGhpcy5nZXRGb3JtRmllbGRWYWx1ZXMoZm9ybSwgcGFyYW1zKTtcbiAgICBpZiAoXG4gICAgICAodGhpcy5mb3JtRmllbGRzLnNvbWUoKGZpZWxkKSA9PiAhZmllbGQuaGlkZGVuKSAmJlxuICAgICAgICBzaG93RGlhbG9nID09PSB1bmRlZmluZWQpIHx8XG4gICAgICBzaG93RGlhbG9nID09PSB0cnVlXG4gICAgKSB7XG4gICAgICBjb25zdCByZWYgPSB0aGlzLmRpYWxvZ1NlcnZpY2Uub3BlbihSZXBvcnRGaWx0ZXJDb21wb25lbnQsIHtcbiAgICAgICAgd2lkdGg6ICc4MCUnLFxuICAgICAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICAgICAgaGVhZGVyOiAnR2VuZXJhdGUgUmVwb3J0JyxcbiAgICAgICAgc3R5bGU6IHsgYmFja2dyb3VuZDogJyNmZmYnIH0sXG4gICAgICAgIGRhdGE6IHsgZ2V0UmVwb3J0OiByZXBJZCwgcGFyYW06IHBhcmFtcywgc2hvd0RpYWxvZywgcmVwb3J0SnNvbkRhdGEsIHJlcG9ydFR5cGUsIHJlcG9ydEhlYWRlciwgcmVwb3J0Rm9vdGVyLCByZXBvcnROYW1lfSxcbiAgICAgIH0pO1xuICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2dTZXJ2aWNlLmRpYWxvZ0NvbXBvbmVudFJlZk1hcC5nZXQocmVmKTtcbiAgICAgIGNvbnN0IGNvbXBvbmVudCA9IGRpYWxvZ1JlZj8uaW5zdGFuY2UgYXMgRHluYW1pY0RpYWxvZ0NvbXBvbmVudDtcbiAgICAgIGNvbnN0IGFyaWFMYWJlbGxlZEJ5ID0gY29tcG9uZW50LmdldEFyaWFMYWJlbGxlZEJ5KCk7XG4gICAgICBjb21wb25lbnQuZ2V0QXJpYUxhYmVsbGVkQnkgPSAoKSA9PiBhcmlhTGFiZWxsZWRCeTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHJlcG9ydFR5cGUgPT09IElSZXBvcnRUeXBlLkVYQ0VMIHx8IHJlcG9ydFR5cGUgPT09IElSZXBvcnRUeXBlLlRFWFQgfHwgcmVwb3J0VHlwZSA9PT0gSVJlcG9ydFR5cGUuQ1NWKSB7XG4gICAgICAgIHRoaXMuZG93bmxvYWRDdXN0b21SZXBvcnQocmVwb3J0SnNvbkRhdGEsIHJlcG9ydFR5cGUsIHJlcG9ydE5hbWUsIHBhcmFtcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRvd25sb2FkUXVpY2tSZXBvcnQocGFyYW1zLCByZXBJZCwgcmVwb3J0SGVhZGVyLCByZXBvcnRGb290ZXIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldFJlcG9ydERhdGEodW5pcXVlS2V5VmFsdWU6IGFueSwgcmVwb3J0VHlwZSwgcmVwb3J0TmFtZSwgcGFyYW1zOiBhbnkpIHtcbiAgICBsZXQgZmlsdGVyczogYW55W10gPSBbXTtcbiAgICBpZiAocGFyYW1zICYmIHBhcmFtcy5sZW5ndGggPiAwKSB7XG4gICAgICBwYXJhbXMuZm9yRWFjaCgocGFyYW0pID0+IHtcbiAgICAgICAgT2JqZWN0LmtleXMocGFyYW0pLm1hcCgoa2V5KSA9PlxuICAgICAgICAgIGZpbHRlcnMucHVzaCh7XG4gICAgICAgICAgICBmaWVsZDoga2V5LFxuICAgICAgICAgICAgbWF0Y2hNb2RlOiAnZXF1YWwnLFxuICAgICAgICAgICAgb3BlcmF0b3I6ICdhbmQnLFxuICAgICAgICAgICAgdmFsdWU6IHBhcmFtW2tleV0sXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBmaWx0ZXJzID0gdGhpcy5nZXRGaWx0ZXJzKCk7XG4gICAgfVxuICAgIHRoaXMucmVxdWVzdFNlcnZpY2UuZ2V0PGFueVtdLCBhbnk+KCcvRGF0YS9NdWx0aUZldGNoJywge1xuICAgICAgdW5pcXVlS2V5OiB1bmlxdWVLZXlWYWx1ZSxcbiAgICAgIGZpbHRlcnM6IGZpbHRlcnMsXG4gICAgfSkuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICBjb25zdCByb3dzSW5mbyA9IHJlc3BvbnNlPy50YWJsZXNbMF0/LnJlY29yZHM7XG4gICAgICBjb25zdCBjb2x1bW5zID0gT2JqZWN0Py5rZXlzKHJlc3BvbnNlPy50YWJsZXNbMF0/LnJlY29yZHNbMF0pO1xuICAgICAgaWYgKHJlcG9ydFR5cGUgPT09IElSZXBvcnRUeXBlLkVYQ0VMKSB7XG4gICAgICAgIHRoaXMuZ3JpZFNlcnZpY2UuZXhwb3J0RXhjZWwocm93c0luZm8sIGNvbHVtbnMsIHJlcG9ydE5hbWUpO1xuICAgICAgfSBlbHNlIGlmIChyZXBvcnRUeXBlID09PSBJUmVwb3J0VHlwZS5URVhUKSB7XG4gICAgICAgIHRoaXMuc2F2ZUFzVGV4dEZpbGUocm93c0luZm8sIHJlcG9ydE5hbWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zYXZlQXNDc3ZGaWxlKHJvd3NJbmZvLCByZXBvcnROYW1lKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHBvcnQgdG8gdGV4dCAoc3ViLW1ldGhvZClcbiAgICovXG4gIHNhdmVBc1RleHRGaWxlKHJvd3NJbmZvOiBhbnksIHJlcG9ydE5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZ3JpZFNlcnZpY2Uuc2F2ZUFzVGV4dEZpbGUocm93c0luZm8sIHJlcG9ydE5hbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4cG9ydCB0byBDU1YgKHN1Yi1tZXRob2QpXG4gICAqL1xuICBzYXZlQXNDc3ZGaWxlKHJvd3NJbmZvOiBhbnksIHJlcG9ydE5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZ3JpZFNlcnZpY2Uuc2F2ZURhdGFBc0Nzdihyb3dzSW5mbywgcmVwb3J0TmFtZSk7XG4gIH1cblxuICBnZXRGb3JtRmllbGRWYWx1ZXMoZm9ybTogSUR5bmFtaWNGb3JtLCBwYXJhbXM6IGFueSkge1xuICAgIGlmICh0aGlzLnBhcmFtc0NvcHk/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMucGFyYW1zQ29weS5mb3JFYWNoKChwYXJhbUNvcHkpID0+IHtcbiAgICAgICAgdmFyIGtleSA9IE9iamVjdC5rZXlzKHBhcmFtQ29weSlbMF07XG4gICAgICAgIGlmIChwYXJhbUNvcHlba2V5XSA9PT0gJycgfHwgIXBhcmFtQ29weVtrZXldKSB7XG4gICAgICAgICAgZm9ybT8uZm9ybVNlY3Rpb25zPy5mb3JFYWNoKChzZWN0aW9uKSA9PiB7XG4gICAgICAgICAgICBzZWN0aW9uLmZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoa2V5LnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSA9PT0gZmllbGQuZmllbGQ/LnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgICAgICAgICBwYXJhbXMuZm9yRWFjaCgob3JpZ1BhcmFtKSA9PiB7XG4gICAgICAgICAgICAgICAgICB2YXIgb3JpZ0tleSA9IE9iamVjdC5rZXlzKG9yaWdQYXJhbSlbMF07XG4gICAgICAgICAgICAgICAgICBpZiAob3JpZ0tleSA9PSBrZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgLy9vcmlnUGFyYW1bb3JpZ0tleV0gPSBmaWVsZC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpZWxkLmNvbnRyb2wgPT0gRUZvcm1Db250cm9sLkNBTEVOREFSKSB7XG4gICAgICAgICAgICAgICAgICAgICAgb3JpZ1BhcmFtW29yaWdLZXldID0gZmllbGQudmFsdWUgPyBmaWVsZC52YWx1ZS50b0xvY2FsZURhdGVTdHJpbmcoKSA6IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgb3JpZ1BhcmFtW29yaWdLZXldID0gZmllbGQudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgcGFyYW1Db3B5W2tleV0udG9TdHJpbmcoKS5pbmNsdWRlcygneycpICYmXG4gICAgICAgICAgcGFyYW1Db3B5W2tleV0udG9TdHJpbmcoKS5pbmNsdWRlcygnfScpXG4gICAgICAgICkge1xuICAgICAgICAgIHZhciBuZXdWYWx1ZSA9IHBhcmFtQ29weVtrZXldLnJlcGxhY2UoJ3snLCAnJykucmVwbGFjZSgnfScsICcnKTtcbiAgICAgICAgICBmb3JtPy5mb3JtU2VjdGlvbnM/LmZvckVhY2goKHNlY3Rpb24pID0+IHtcbiAgICAgICAgICAgIHNlY3Rpb24uZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBuZXdWYWx1ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkgPT09IGZpZWxkLmZpZWxkPy50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHBhcmFtcy5mb3JFYWNoKChvcmlnUGFyYW0pID0+IHtcbiAgICAgICAgICAgICAgICAgIHZhciBvcmlnS2V5ID0gT2JqZWN0LmtleXMob3JpZ1BhcmFtKVswXTtcbiAgICAgICAgICAgICAgICAgIGlmIChvcmlnS2V5ID09IGtleSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmllbGQuY29udHJvbCA9PSBFRm9ybUNvbnRyb2wuQ0FMRU5EQVIpIHtcbiAgICAgICAgICAgICAgICAgICAgICBvcmlnUGFyYW1bb3JpZ0tleV0gPSBmaWVsZC52YWx1ZSA/IGZpZWxkLnZhbHVlLnRvTG9jYWxlRGF0ZVN0cmluZygpIDogbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICBvcmlnUGFyYW1bb3JpZ0tleV0gPSBmaWVsZC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZG93bmxvYWRRdWlja1JlcG9ydChwYXJhbXMsIHJlcElkLCByZXBvcnRIZWFkZXIsIHJlcG9ydEZvb3Rlcikge1xuICAgIGxldCBmaWx0ZXJzOiBhbnlbXSA9IFtdO1xuICAgIGxldCByZXBJZE9iajogYW55O1xuICAgIGlmIChwYXJhbXMgJiYgcGFyYW1zLmxlbmd0aCA+IDApIHtcbiAgICAgIHBhcmFtcy5mb3JFYWNoKChwYXJhbSkgPT4ge1xuICAgICAgICBPYmplY3Qua2V5cyhwYXJhbSkubWFwKChrZXkpID0+XG4gICAgICAgICAgZmlsdGVycy5wdXNoKHtcbiAgICAgICAgICAgIGZpZWxkOiBrZXksXG4gICAgICAgICAgICBtYXRjaE1vZGU6ICdlcXVhbCcsXG4gICAgICAgICAgICBvcGVyYXRvcjogJ2FuZCcsXG4gICAgICAgICAgICB2YWx1ZTogcGFyYW1ba2V5XSxcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZpbHRlcnMgPSB0aGlzLmdldEZpbHRlcnMoKTtcbiAgICB9XG4gICAgXG4gICAgaWYgKHR5cGVvZiAocmVwSWQpID09PSAnbnVtYmVyJykge1xuICAgICAgcmVwSWRPYmogPSB7IElkOiByZXBJZCwgZmlsdGVyczogZmlsdGVycywgUmVwb3J0SGVhZGVyOiByZXBvcnRIZWFkZXIsIFJlcG9ydEZvb3RlcjogcmVwb3J0Rm9vdGVyfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHJlcElkT2JqID0geyByZXBvcnROYW1lOiByZXBJZCwgZmlsdGVyczogZmlsdGVycywgUmVwb3J0SGVhZGVyOiByZXBvcnRIZWFkZXIsIFJlcG9ydEZvb3RlcjogcmVwb3J0Rm9vdGVyIH1cbiAgICB9XG5cbiAgICB0aGlzLnJlcXVlc3RTZXJ2aWNlXG4gICAgICAuZG93bmxvYWQoJy9SZXBvcnQvR2VuZXJhdGUnLCByZXBJZE9iailcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgIChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgIHZhciBuZXdCbG9iID0gbmV3IEJsb2IoW3Jlc3BvbnNlLmJvZHldLCB7IHR5cGU6ICdhcHBsaWNhdGlvbi9wZGYnIH0pO1xuICAgICAgICAgIGNvbnN0IGRhdGEgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChuZXdCbG9iKTtcbiAgICAgICAgICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgICAgICAgIGEuaHJlZiA9IGRhdGE7XG4gICAgICAgICAgY29uc3QgaGVhZGVyID0gcmVzcG9uc2U/LmhlYWRlcnM/LmdldCgnQ29udGVudC1EaXNwb3NpdGlvbicpO1xuICAgICAgICAgIGNvbnN0IGZpbGVOYW1lID0gaGVhZGVyXG4gICAgICAgICAgICA/LnNwbGl0KCdmaWxlbmFtZT0nKT8uWzFdXG4gICAgICAgICAgICA/LnNwbGl0KCc7JylbMF1cbiAgICAgICAgICAgID8ucmVwbGFjZUFsbCgvXFxcIi9nLCAnJyk7XG4gICAgICAgICAgYS5kb3dubG9hZCA9IGZpbGVOYW1lO1xuICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSk7XG4gICAgICAgICAgYS5jbGljaygpO1xuICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYSk7XG4gICAgICAgIH0sXG4gICAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFwaUVycm9yKGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIGdldEZpbHRlcnMoKSB7XG4gICAgbGV0IGZpbHRlcnM6IGFueVtdID0gW107XG4gICAgdGhpcy5mb3JtRmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgICBpZiAoZmllbGQgJiYgZmllbGQudmFsdWU/LnRvU3RyaW5nKCk/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgZmlsdGVycy5wdXNoKHtcbiAgICAgICAgICBmaWVsZDogZmllbGQuZmllbGQsXG4gICAgICAgICAgbWF0Y2hNb2RlOiAnZXF1YWwnLFxuICAgICAgICAgIG9wZXJhdG9yOiAnYW5kJyxcbiAgICAgICAgICB2YWx1ZTogZmllbGQudmFsdWUsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBmaWx0ZXJzO1xuICB9XG59XG4iXX0=
|
|
@@ -5380,28 +5380,36 @@ class ReportService {
|
|
|
5380
5380
|
});
|
|
5381
5381
|
this.createDynamicFields(repId, params, showDialog, reportType, reportHeader, reportFooter, form);
|
|
5382
5382
|
}
|
|
5383
|
-
createDynamicFields(repId, params, showDialog, reportType,
|
|
5384
|
-
|
|
5385
|
-
|
|
5386
|
-
|
|
5387
|
-
|
|
5388
|
-
|
|
5389
|
-
|
|
5390
|
-
|
|
5391
|
-
|
|
5392
|
-
|
|
5393
|
-
|
|
5394
|
-
|
|
5395
|
-
|
|
5396
|
-
|
|
5397
|
-
|
|
5383
|
+
createDynamicFields(repId, params, showDialog, reportType, reportHeader, reportFooter, form) {
|
|
5384
|
+
let reportJson;
|
|
5385
|
+
let reportName;
|
|
5386
|
+
if (reportType === IReportType.EXCEL || reportType === IReportType.TEXT || reportType === IReportType.CSV) {
|
|
5387
|
+
const getReportByReport = '/ReportConfig/Report';
|
|
5388
|
+
const getReportById = '/ReportConfig/ById';
|
|
5389
|
+
const getReportByIdOrName = typeof (repId) === 'number' ? getReportById : getReportByReport;
|
|
5390
|
+
this.requestService
|
|
5391
|
+
.getOne(getReportByIdOrName, repId)
|
|
5392
|
+
.subscribe((data) => {
|
|
5393
|
+
if (data) {
|
|
5394
|
+
reportJson = JSON.parse(data?.report);
|
|
5395
|
+
reportName = data.name ? data.name : EGridExcel.EXPORT;
|
|
5396
|
+
this.formFields = reportJson?.FormFields;
|
|
5397
|
+
this.generateReport(repId, params, showDialog, reportType, reportName, reportHeader, reportFooter, form, reportJson?.ReportDataSources);
|
|
5398
|
+
}
|
|
5399
|
+
}, (error) => {
|
|
5400
|
+
this.alertService.error(error);
|
|
5401
|
+
});
|
|
5402
|
+
}
|
|
5403
|
+
else {
|
|
5404
|
+
this.generateReport(repId, params, showDialog, reportType, reportName, reportHeader, reportFooter, form, reportJson?.ReportDataSources);
|
|
5405
|
+
}
|
|
5398
5406
|
}
|
|
5399
5407
|
downloadCustomReport(dataSource, reportType, reportName = '', params) {
|
|
5400
5408
|
dataSource.forEach((uniqueKey) => {
|
|
5401
5409
|
this.getReportData(uniqueKey.datasource, reportType, reportName, params);
|
|
5402
5410
|
});
|
|
5403
5411
|
}
|
|
5404
|
-
generateReport(repId, params, showDialog = false, reportType, reportHeader, reportFooter,
|
|
5412
|
+
generateReport(repId, params, showDialog = false, reportType, reportName, reportHeader, reportFooter, form = {}, reportJsonData) {
|
|
5405
5413
|
this.getFormFieldValues(form, params);
|
|
5406
5414
|
if ((this.formFields.some((field) => !field.hidden) &&
|
|
5407
5415
|
showDialog === undefined) ||
|