@churchillliving/se-ui-toolkit 6.54.347 → 6.54.349
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.
|
@@ -34,17 +34,23 @@ export class ReportService {
|
|
|
34
34
|
.subscribe((data) => {
|
|
35
35
|
if (data) {
|
|
36
36
|
reportJson = JSON.parse(data?.report);
|
|
37
|
+
console.log('reportJson: ', reportJson);
|
|
37
38
|
reportType = reportJson?.reportType ? reportJson?.reportType : reportType ? reportType : IReportType.PDF;
|
|
38
39
|
reportName = data.uniqueKey ? data.uniqueKey : EGridExcel.EXPORT;
|
|
39
40
|
reportUniqueKey = data?.uniqueKey;
|
|
40
41
|
this.formFields = reportJson?.FormFields;
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
if (reportJson?.SecurityGroups) {
|
|
43
|
+
const reportRoles = reportJson?.SecurityGroups?.split(',').map(Number);
|
|
44
|
+
const userRole = roleIds?.roles?.find((rolId) => reportRoles?.includes(rolId?.id));
|
|
45
|
+
if (userRole || !checkUserRole) {
|
|
46
|
+
this.generateReport(uniqueKey, params, showDialog, reportType, reportName, reportHeader, reportFooter, form, reportJson?.ReportDataSources, reportUniqueKey);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
this.alertService.error("You don't have permission to access this report.");
|
|
50
|
+
}
|
|
45
51
|
}
|
|
46
52
|
else {
|
|
47
|
-
this.
|
|
53
|
+
this.generateReport(uniqueKey, params, showDialog, reportType, reportName, reportHeader, reportFooter, form, reportJson?.ReportDataSources, reportUniqueKey);
|
|
48
54
|
}
|
|
49
55
|
}
|
|
50
56
|
}, (error) => {
|
|
@@ -254,4 +260,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.1", ngImpor
|
|
|
254
260
|
providedIn: 'root'
|
|
255
261
|
}]
|
|
256
262
|
}], ctorParameters: function () { return [{ type: i1.DialogService }, { type: i2.RequestService }, { type: i3.GridService }, { type: i4.AuthenticationService }, { type: i5.AlertService }]; } });
|
|
257
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zZS11aS10b29sa2l0L3NyYy9saWIvc2VydmljZXMvcmVwb3J0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUE0QixXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUzRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrRUFBK0UsQ0FBQztBQUl0SCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7QUFNbEQsTUFBTSxPQUFPLGFBQWE7SUFHeEIsWUFBbUIsYUFBNEIsRUFDckMsY0FBOEIsRUFDOUIsV0FBd0IsRUFDeEIscUJBQTRDLEVBQzVDLFlBQTBCO1FBSmpCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQ3JDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBTnBDLGVBQVUsR0FBaUIsRUFBRSxDQUFDO1FBQzlCLGVBQVUsR0FBUSxFQUFFLENBQUM7SUFLb0IsQ0FBQztJQUUxQyxjQUFjLENBQUMsWUFBb0IsRUFBRSxFQUFFLE1BQVcsRUFBRSxhQUFzQixLQUFLLEVBQUUsVUFBbUIsRUFBRSxlQUF1QixFQUFFLEVBQUUsZUFBdUIsRUFBRSxFQUFFLE9BQXFCLEVBQUUsRUFBRSxnQkFBeUIsS0FBSztRQUVqTixNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENB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Q0FBQztZQUMxQixDQUFDLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztZQUN0QixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM3QixDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDVixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvQixDQUFDLEVBQ0QsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNSLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FDRixDQUFDO0lBQ04sQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLE9BQU8sR0FBVSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNoQyxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ2hELE9BQU8sQ0FBQyxJQUFJLENBQUM7b0JBQ1gsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO29CQUNsQixTQUFTLEVBQUUsT0FBTztvQkFDbEIsUUFBUSxFQUFFLEtBQUs7b0JBQ2YsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO2lCQUNuQixDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztpSUEvUFUsYUFBYTtxSUFBYixhQUFhLGNBRlosTUFBTTs7MkZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFRm9ybUNvbnRyb2wsIElEeW5hbWljRm9ybSwgSUZvcm1GaWVsZCwgSVJlcG9ydFR5cGUgfSBmcm9tICcuLi9tb2RlbHMvZm9ybS5tb2RlbCc7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlLCBEeW5hbWljRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcbmltcG9ydCB7IFJlcG9ydEZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvYmFzZS9yZXBvcnQvcmVwb3J0LUZpbHRlci9yZXBvcnQtZmlsdGVyL3JlcG9ydC1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFJlcXVlc3RTZXJ2aWNlIH0gZnJvbSAnLi9yZXF1ZXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi9hbGVydC5zZXJ2aWNlJztcbmltcG9ydCB7IEdyaWRTZXJ2aWNlIH0gZnJvbSAnLi9ncmlkLnNlcnZpY2UnO1xuaW1wb3J0IHsgRUdyaWRFeGNlbCB9IGZyb20gJy4uL21vZGVscy9ncmlkLm1vZGVsJztcbmltcG9ydCB7IEF1dGhlbnRpY2F0aW9uU2VydmljZSB9IGZyb20gJy4vYXV0aGVudGljYXRpb24uc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFJlcG9ydFNlcnZpY2Uge1xuICBmb3JtRmllbGRzOiBJRm9ybUZpZWxkW10gPSBbXTtcbiAgcGFyYW1zQ29weTogYW55ID0gW107XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVxdWVzdFNlcnZpY2U6IFJlcXVlc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgZ3JpZFNlcnZpY2U6IEdyaWRTZXJ2aWNlLFxuICAgIHByaXZhdGUgYXV0aGVudGljYXRpb25TZXJ2aWNlOiBBdXRoZW50aWNhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSwpIHsgfVxuXG4gIGRvd25sb2FkUmVwb3J0KHVuaXF1ZUtleTogc3RyaW5nID0gJycsIHBhcmFtczogYW55LCBzaG93RGlhbG9nOiBib29sZWFuID0gZmFsc2UsIHJlcG9ydFR5cGU/OiBzdHJpbmcsIHJlcG9ydEhlYWRlcjogc3RyaW5nID0gJycsIHJlcG9ydEZvb3Rlcjogc3RyaW5nID0gJycsIGZvcm06IElEeW5hbWljRm9ybSA9IHt9LCBjaGVja1VzZXJSb2xlOiBib29sZWFuID0gZmFsc2UpIFxuICB7XG4gICAgcGFyYW1zPy5mb3JFYWNoKChwKSA9PiB7XG4gICAgICB0aGlzLnBhcmFtc0NvcHkucHVzaChPYmplY3QuYXNzaWduKHt9LCBwKSk7XG4gICAgfSk7XG4gICAgdGhpcy5jcmVhdGVEeW5hbWljRmllbGRzKHVuaXF1ZUtleSwgcGFyYW1zLCBzaG93RGlhbG9nLCByZXBvcnRUeXBlLCByZXBvcnRIZWFkZXIsIHJlcG9ydEZvb3RlciwgZm9ybSwgY2hlY2tVc2VyUm9sZSk7XG4gIH1cblxuICBjcmVhdGVEeW5hbWljRmllbGRzKHVuaXF1ZUtleTogc3RyaW5nLCBwYXJhbXMsIHNob3dEaWFsb2csIHJlcG9ydFR5cGUsIHJlcG9ydEhlYWRlciwgcmVwb3J0Rm9vdGVyLCBmb3JtLCBjaGVja1VzZXJSb2xlOiBib29sZWFuKSB7XG4gICAgbGV0IHJlcG9ydEpzb247XG4gICAgbGV0IHJlcG9ydE5hbWU7XG4gICAgbGV0IHJlcG9ydFVuaXF1ZUtleTogc3RyaW5nID0gJyc7XG4gICAgY29uc3Qgcm9sZUlkcyA9IEpTT04ucGFyc2UoKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiQ3VycmVudFVzZXJJbmZvXCIpKSBhcyBhbnkpO1xuICAgIHRoaXMucmVxdWVzdFNlcnZpY2VcbiAgICAgIC5nZXRPbmU8UmVzcG9uc2UsIGFueT4oJy9SZXBvcnRDb25maWcvUmVwb3J0JywgdW5pcXVlS2V5KVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICAgIHJlcG9ydEpzb24gPSBKU09OLnBhcnNlKGRhdGE/LnJlcG9ydCk7XG4gICAgICAgICAgICAgIHJlcG9ydFR5cGUgPSByZXBvcnRKc29uPy5yZXBvcnRUeXBlID8gcmVwb3J0SnNvbj8ucmVwb3J0VHlwZSA6IHJlcG9ydFR5cGUgPyByZXBvcnRUeXBlIDogSVJlcG9ydFR5cGUuUERGO1xuICAgICAgICAgICAgICByZXBvcnROYW1lID0gZGF0YS51bmlxdWVLZXkgPyBkYXRhLnVuaXF1ZUtleSA6IEVHcmlkRXhjZWwuRVhQT1JUO1xuICAgICAgICAgICAgICByZXBvcnRVbmlxdWVLZXkgPSBkYXRhPy51bmlxdWVLZXk7XG4gICAgICAgICAgICAgIHRoaXMuZm9ybUZpZWxkcyA9IHJlcG9ydEpzb24/LkZvcm1GaWVsZHM7XG4gICAgICAgICAgICAgIGNvbnN0IHJlcG9ydFJvbGVzID0gcmVwb3J0SnNvbj8uU2VjdXJpdHlHcm91cHM/LnNwbGl0KCcsJykubWFwKE51bWJlcik7XG4gICAgICAgICAgICAgIGNvbnN0IHVzZXJSb2xlID0gcm9sZUlkcz8ucm9sZXM/LmZpbmQoKHJvbElkKSA9PiByZXBvcnRSb2xlcz8uaW5jbHVkZXMocm9sSWQ/LmlkKSk7XG4gICAgICAgICAgICAgIGlmICgodXNlclJvbGUpIHx8ICFjaGVja1VzZXJSb2xlKXtcbiAgICAgICAgICAgICAgICB0aGlzLmdlbmVyYXRlUmVwb3J0KHVuaXF1ZUtleSwgcGFyYW1zLCBzaG93RGlhbG9nLCByZXBvcnRUeXBlLCByZXBvcnROYW1lLCByZXBvcnRIZWFkZXIsIHJlcG9ydEZvb3RlciwgZm9ybSwgcmVwb3J0SnNvbj8uUmVwb3J0RGF0YVNvdXJjZXMsIHJlcG9ydFVuaXF1ZUtleSk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoXCJZb3UgZG9uJ3QgaGF2ZSBwZXJtaXNzaW9uIHRvIGFjY2VzcyB0aGlzIHJlcG9ydC5cIik7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuZXJyb3IoZXJyb3IpO1xuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgZG93bmxvYWRDdXN0b21SZXBvcnQoZGF0YVNvdXJjZTogYW55LCByZXBvcnRUeXBlLCBzZWxlY3RlZFVuaXF1ZUtleTogc3RyaW5nID0gJycsIHBhcmFtczogYW55LCByZXBvcnRVbmlxdWVLZXk6IHN0cmluZyA9ICcnKSB7XG4gICAgZGF0YVNvdXJjZS5mb3JFYWNoKCh1bmlxdWVLZXkpID0+IHtcbiAgICAgIHRoaXMuZ2V0UmVwb3J0RGF0YSh1bmlxdWVLZXkuZGF0YXNvdXJjZSwgcmVwb3J0VHlwZSwgc2VsZWN0ZWRVbmlxdWVLZXksIHBhcmFtcywgcmVwb3J0VW5pcXVlS2V5KTtcbiAgICB9KVxuICB9XG5cbiAgZ2VuZXJhdGVSZXBvcnQodW5pcXVlS2V5OiBzdHJpbmcsIHBhcmFtczogYW55LCBzaG93RGlhbG9nOiBib29sZWFuID0gZmFsc2UsIHJlcG9ydFR5cGU6IElSZXBvcnRUeXBlLCBzZWxlY3RlZFVuaXF1ZUtleTogc3RyaW5nLCByZXBvcnRIZWFkZXI6IHN0cmluZywgcmVwb3J0Rm9vdGVyOiBzdHJpbmcsIGZvcm06IElEeW5hbWljRm9ybSA9IHt9LCByZXBvcnRKc29uRGF0YSwgcmVwb3J0VW5pcXVlS2V5ID0gJycpIHtcbiAgICB0aGlzLmdldEZvcm1GaWVsZFZhbHVlcyhmb3JtLCBwYXJhbXMpO1xuICAgIGlmIChcbiAgICAgICh0aGlzLmZvcm1GaWVsZHMuc29tZSgoZmllbGQpID0+ICFmaWVsZC5oaWRkZW4pICYmXG4gICAgICAgIHNob3dEaWFsb2cgPT09IHVuZGVmaW5lZCkgfHxcbiAgICAgIHNob3dEaWFsb2cgPT09IHRydWVcbiAgICApIHtcbiAgICAgIGNvbnN0IHJlZiA9IHRoaXMuZGlhbG9nU2VydmljZS5vcGVuKFJlcG9ydEZpbHRlckNvbXBvbmVudCwge1xuICAgICAgICB3aWR0aDogJzUwJScsXG4gICAgICAgIGhlaWdodDogJzUwJScsXG4gICAgICAgIGhlYWRlcjogJ0dlbmVyYXRlIFJlcG9ydCcsXG4gICAgICAgIHN0eWxlOiB7IGJhY2tncm91bmQ6ICcjZmZmJyB9LFxuICAgICAgICBzdHlsZUNsYXNzOiAncmVwb3J0LWRpYWxvZycsXG4gICAgICAgIGRhdGE6IHsgZ2V0UmVwb3J0OiB1bmlxdWVLZXksIHBhcmFtOiBwYXJhbXMsIHNob3dEaWFsb2csIHJlcG9ydEpzb25EYXRhLCByZXBvcnRUeXBlLCByZXBvcnRIZWFkZXIsIHJlcG9ydEZvb3RlciwgcmVwb3J0TmFtZTogc2VsZWN0ZWRVbmlxdWVLZXksIHVuaXF1ZUtleTogcmVwb3J0VW5pcXVlS2V5fSxcbiAgICAgIH0pO1xuICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2dTZXJ2aWNlLmRpYWxvZ0NvbXBvbmVudFJlZk1hcC5nZXQocmVmKTtcbiAgICAgIGNvbnN0IGNvbXBvbmVudCA9IGRpYWxvZ1JlZj8uaW5zdGFuY2UgYXMgRHluYW1pY0RpYWxvZ0NvbXBvbmVudDtcbiAgICAgIGNvbnN0IGFyaWFMYWJlbGxlZEJ5ID0gY29tcG9uZW50LmdldEFyaWFMYWJlbGxlZEJ5KCk7XG4gICAgICBjb21wb25lbnQuZ2V0QXJpYUxhYmVsbGVkQnkgPSAoKSA9PiBhcmlhTGFiZWxsZWRCeTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHJlcG9ydFR5cGUgPT09IElSZXBvcnRUeXBlLkVYQ0VMIHx8IHJlcG9ydFR5cGUgPT09IElSZXBvcnRUeXBlLlRFWFQgfHwgcmVwb3J0VHlwZSA9PT0gSVJlcG9ydFR5cGUuQ1NWKSB7XG4gICAgICAgIHRoaXMuZG93bmxvYWRDdXN0b21SZXBvcnQocmVwb3J0SnNvbkRhdGEsIHJlcG9ydFR5cGUsIHNlbGVjdGVkVW5pcXVlS2V5LCBwYXJhbXMsIHJlcG9ydFVuaXF1ZUtleSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmRvd25sb2FkUXVpY2tSZXBvcnQocGFyYW1zLCB1bmlxdWVLZXksIHJlcG9ydEhlYWRlciwgcmVwb3J0Rm9vdGVyKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXRSZXBvcnREYXRhKHVuaXF1ZUtleVZhbHVlOiBhbnksIHJlcG9ydFR5cGUsIHVuaXF1ZUtleSwgcGFyYW1zOiBhbnksIHJlcG9ydFVuaXF1ZUtleTogc3RyaW5nID0gJycpIHtcbiAgICBsZXQgZmlsdGVyczogYW55W10gPSBbXTtcbiAgICBpZiAocGFyYW1zICYmIHBhcmFtcy5sZW5ndGggPiAwKSB7XG4gICAgICBwYXJhbXMuZm9yRWFjaCgocGFyYW0pID0+IHtcbiAgICAgICAgT2JqZWN0LmtleXMocGFyYW0pLm1hcCgoa2V5KSA9PlxuICAgICAgICAgIGZpbHRlcnMucHVzaCh7XG4gICAgICAgICAgICBmaWVsZDoga2V5LFxuICAgICAgICAgICAgbWF0Y2hNb2RlOiAnZXF1YWwnLFxuICAgICAgICAgICAgb3BlcmF0b3I6ICdhbmQnLFxuICAgICAgICAgICAgdmFsdWU6IHBhcmFtW2tleV0sXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBmaWx0ZXJzID0gdGhpcy5nZXRGaWx0ZXJzKCk7XG4gICAgfVxuICAgIHRoaXMucmVxdWVzdFNlcnZpY2UuZ2V0PGFueVtdLCBhbnk+KCcvRGF0YS9NdWx0aUZldGNoJywge1xuICAgICAgdW5pcXVlS2V5OiB1bmlxdWVLZXlWYWx1ZSxcbiAgICAgIGZpbHRlcnM6IGZpbHRlcnMsXG4gICAgfSkuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZVJlcG9ydChyZXBvcnRVbmlxdWVLZXkpO1xuICAgICAgY29uc3Qgcm93c0luZm8gPSByZXNwb25zZT8udGFibGVzWzBdPy5yZWNvcmRzO1xuICAgICAgY29uc3QgdXBkYXRlZFJvd3NJbmZvID0gdGhpcy5ncmlkU2VydmljZS5mb3JtYXREYXRlQ29sdW1uKHJvd3NJbmZvKTtcbiAgICAgIGlmIChyZXBvcnRUeXBlID09PSBJUmVwb3J0VHlwZS5FWENFTCkge1xuICAgICAgICBjb25zdCBpc0dyaWRFeGNlbERhdGEgPSBmYWxzZTtcbiAgICAgICAgY29uc3QgY29sdW1ucyA9IHJvd3NJbmZvLmxlbmd0aCA+IDAgPyBPYmplY3Q/LmtleXMocmVzcG9uc2U/LnRhYmxlc1swXT8ucmVjb3Jkc1swXSkgOiBbXTtcbiAgICAgICAgdGhpcy5ncmlkU2VydmljZS5leHBvcnRFeGNlbCh1cGRhdGVkUm93c0luZm8sIGNvbHVtbnMsIHVuaXF1ZUtleSwgaXNHcmlkRXhjZWxEYXRhKTtcbiAgICAgIH0gZWxzZSBpZiAocmVwb3J0VHlwZSA9PT0gSVJlcG9ydFR5cGUuVEVYVCkge1xuICAgICAgICB0aGlzLnNhdmVBc1RleHRGaWxlKHVwZGF0ZWRSb3dzSW5mbywgdW5pcXVlS2V5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2F2ZUFzQ3N2RmlsZSh1cGRhdGVkUm93c0luZm8sIHVuaXF1ZUtleSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvL3VwZGF0ZSByZXBvcnQgbG9nZ2luZ1xuICB1cGRhdGVSZXBvcnQodW5pcXVlS2V5VmFsdWUpe1xuICAgIGxldCBjdXJyZW50VXNlcjogYW55ID0gdGhpcy5hdXRoZW50aWNhdGlvblNlcnZpY2UuZ2V0VXNlckluZm8oKTtcbiAgICB0aGlzLnJlcXVlc3RTZXJ2aWNlLmdldDxhbnlbXSwgYW55PignL1JlcG9ydENvbmZpZy9SZXBvcnRVc2VyU2V0dGluZycsIHtcbiAgICAgIGlzUnVuUmVwb3J0OiB0cnVlLFxuICAgICAgaXNGYXZvcml0ZTogZmFsc2UsXG4gICAgICByZXBvcnRVbmlxdWVLZXk6IHVuaXF1ZUtleVZhbHVlLFxuICAgICAgdXNlcklkOiBjdXJyZW50VXNlcj8uaWQsXG4gICAgICByZXBvcnRJZDogMFxuICAgIH0pLnN1YnNjcmliZSgocmVzKSA9PiB7fSxcbiAgICAgKHsgZXJyb3IgfSkgPT4ge30pO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4cG9ydCB0byB0ZXh0IChzdWItbWV0aG9kKVxuICAgKi9cbiAgc2F2ZUFzVGV4dEZpbGUocm93c0luZm86IGFueSwgdW5pcXVlS2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmdyaWRTZXJ2aWNlLnNhdmVBc1RleHRGaWxlKHJvd3NJbmZvLCB1bmlxdWVLZXkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4cG9ydCB0byBDU1YgKHN1Yi1tZXRob2QpXG4gICAqL1xuICBzYXZlQXNDc3ZGaWxlKHJvd3NJbmZvOiBhbnksIHVuaXF1ZUtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5ncmlkU2VydmljZS5zYXZlRGF0YUFzQ3N2KHJvd3NJbmZvLCB1bmlxdWVLZXkpO1xuICB9XG5cbiAgZ2V0Rm9ybUZpZWxkVmFsdWVzKGZvcm06IElEeW5hbWljRm9ybSwgcGFyYW1zOiBhbnkpIHtcbiAgICBpZiAodGhpcy5wYXJhbXNDb3B5Py5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnBhcmFtc0NvcHkuZm9yRWFjaCgocGFyYW1Db3B5KSA9PiB7XG4gICAgICAgIHZhciBrZXkgPSBPYmplY3Qua2V5cyhwYXJhbUNvcHkpWzBdO1xuICAgICAgICBpZiAocGFyYW1Db3B5W2tleV0gPT09ICcnIHx8ICFwYXJhbUNvcHlba2V5XSkge1xuICAgICAgICAgIGZvcm0/LmZvcm1TZWN0aW9ucz8uZm9yRWFjaCgoc2VjdGlvbikgPT4ge1xuICAgICAgICAgICAgc2VjdGlvbi5maWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgICAgICAgICAgaWYgKGtleS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkgPT09IGZpZWxkLmZpZWxkPy50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgICAgICAgICAgcGFyYW1zLmZvckVhY2goKG9yaWdQYXJhbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgdmFyIG9yaWdLZXkgPSBPYmplY3Qua2V5cyhvcmlnUGFyYW0pWzBdO1xuICAgICAgICAgICAgICAgICAgaWYgKG9yaWdLZXkgPT0ga2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vb3JpZ1BhcmFtW29yaWdLZXldID0gZmllbGQudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaWVsZC5jb250cm9sID09IEVGb3JtQ29udHJvbC5DQUxFTkRBUikge1xuICAgICAgICAgICAgICAgICAgICAgIG9yaWdQYXJhbVtvcmlnS2V5XSA9IGZpZWxkLnZhbHVlID8gZmllbGQudmFsdWUudG9Mb2NhbGVEYXRlU3RyaW5nKCkgOiBudWxsO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgIG9yaWdQYXJhbVtvcmlnS2V5XSA9IGZpZWxkLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgIHBhcmFtQ29weVtrZXldLnRvU3RyaW5nKCkuaW5jbHVkZXMoJ3snKSAmJlxuICAgICAgICAgIHBhcmFtQ29weVtrZXldLnRvU3RyaW5nKCkuaW5jbHVkZXMoJ30nKVxuICAgICAgICApIHtcbiAgICAgICAgICB2YXIgbmV3VmFsdWUgPSBwYXJhbUNvcHlba2V5XS5yZXBsYWNlKCd7JywgJycpLnJlcGxhY2UoJ30nLCAnJyk7XG4gICAgICAgICAgZm9ybT8uZm9ybVNlY3Rpb25zPy5mb3JFYWNoKChzZWN0aW9uKSA9PiB7XG4gICAgICAgICAgICBzZWN0aW9uLmZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgbmV3VmFsdWUudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpID09PSBmaWVsZC5maWVsZD8udG9Mb3dlckNhc2UoKVxuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBwYXJhbXMuZm9yRWFjaCgob3JpZ1BhcmFtKSA9PiB7XG4gICAgICAgICAgICAgICAgICB2YXIgb3JpZ0tleSA9IE9iamVjdC5rZXlzKG9yaWdQYXJhbSlbMF07XG4gICAgICAgICAgICAgICAgICBpZiAob3JpZ0tleSA9PSBrZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpZWxkLmNvbnRyb2wgPT0gRUZvcm1Db250cm9sLkNBTEVOREFSKSB7XG4gICAgICAgICAgICAgICAgICAgICAgb3JpZ1BhcmFtW29yaWdLZXldID0gZmllbGQudmFsdWUgPyBmaWVsZC52YWx1ZS50b0xvY2FsZURhdGVTdHJpbmcoKSA6IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgb3JpZ1BhcmFtW29yaWdLZXldID0gZmllbGQudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGRvd25sb2FkUXVpY2tSZXBvcnQocGFyYW1zLCB1bmlxdWVLZXksIHJlcG9ydEhlYWRlciwgcmVwb3J0Rm9vdGVyKSB7XG4gICAgbGV0IGZpbHRlcnM6IGFueVtdID0gW107XG4gICAgbGV0IHJlcElkT2JqOiBhbnk7XG4gICAgaWYgKHBhcmFtcyAmJiBwYXJhbXMubGVuZ3RoID4gMCkge1xuICAgICAgcGFyYW1zLmZvckVhY2goKHBhcmFtKSA9PiB7XG4gICAgICAgIE9iamVjdC5rZXlzKHBhcmFtKS5tYXAoKGtleSkgPT5cbiAgICAgICAgICBmaWx0ZXJzLnB1c2goe1xuICAgICAgICAgICAgZmllbGQ6IGtleSxcbiAgICAgICAgICAgIG1hdGNoTW9kZTogJ2VxdWFsJyxcbiAgICAgICAgICAgIG9wZXJhdG9yOiAnYW5kJyxcbiAgICAgICAgICAgIHZhbHVlOiBwYXJhbVtrZXldLFxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZmlsdGVycyA9IHRoaXMuZ2V0RmlsdGVycygpO1xuICAgIH1cbiAgICBcbiAgICAvLyBpZiAodHlwZW9mIChyZXBJZCkgPT09ICdudW1iZXInKSB7XG4gICAgLy8gICByZXBJZE9iaiA9IHsgSWQ6IHJlcElkLCBmaWx0ZXJzOiBmaWx0ZXJzLCBSZXBvcnRIZWFkZXI6IHJlcG9ydEhlYWRlciwgUmVwb3J0Rm9vdGVyOiByZXBvcnRGb290ZXJ9XG4gICAgLy8gfVxuICAgIC8vIGVsc2Uge1xuICAgICAgcmVwSWRPYmogPSB7IHVuaXF1ZUtleTogdW5pcXVlS2V5LCBmaWx0ZXJzOiBmaWx0ZXJzLCBSZXBvcnRIZWFkZXI6IHJlcG9ydEhlYWRlciwgUmVwb3J0Rm9vdGVyOiByZXBvcnRGb290ZXIgfVxuICAgIC8vfVxuXG4gICAgdGhpcy5yZXF1ZXN0U2VydmljZVxuICAgICAgLmRvd25sb2FkKCcvUmVwb3J0L0dlbmVyYXRlJywgcmVwSWRPYmopXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICB2YXIgbmV3QmxvYiA9IG5ldyBCbG9iKFtyZXNwb25zZS5ib2R5XSwgeyB0eXBlOiAnYXBwbGljYXRpb24vcGRmJyB9KTtcbiAgICAgICAgICBjb25zdCBkYXRhID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwobmV3QmxvYik7XG4gICAgICAgICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICAgICAgICBhLmhyZWYgPSBkYXRhO1xuICAgICAgICAgIGNvbnN0IGhlYWRlciA9IHJlc3BvbnNlPy5oZWFkZXJzPy5nZXQoJ0NvbnRlbnQtRGlzcG9zaXRpb24nKTtcbiAgICAgICAgICBjb25zdCBmaWxlTmFtZSA9IGhlYWRlclxuICAgICAgICAgICAgPy5zcGxpdCgnZmlsZW5hbWU9Jyk/LlsxXVxuICAgICAgICAgICAgPy5zcGxpdCgnOycpWzBdXG4gICAgICAgICAgICA/LnJlcGxhY2VBbGwoL1xcXCIvZywgJycpO1xuICAgICAgICAgIGEuZG93bmxvYWQgPSBmaWxlTmFtZTtcbiAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpO1xuICAgICAgICAgIGEuY2xpY2soKTtcbiAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGEpO1xuICAgICAgICB9LFxuICAgICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5hcGlFcnJvcihlcnJvcik7XG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBnZXRGaWx0ZXJzKCkge1xuICAgIGxldCBmaWx0ZXJzOiBhbnlbXSA9IFtdO1xuICAgIHRoaXMuZm9ybUZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgaWYgKGZpZWxkICYmIGZpZWxkLnZhbHVlPy50b1N0cmluZygpPy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGZpbHRlcnMucHVzaCh7XG4gICAgICAgICAgZmllbGQ6IGZpZWxkLmZpZWxkLFxuICAgICAgICAgIG1hdGNoTW9kZTogJ2VxdWFsJyxcbiAgICAgICAgICBvcGVyYXRvcjogJ2FuZCcsXG4gICAgICAgICAgdmFsdWU6IGZpZWxkLnZhbHVlLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gZmlsdGVycztcbiAgfVxufVxuIl19
|
|
263
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zZS11aS10b29sa2l0L3NyYy9saWIvc2VydmljZXMvcmVwb3J0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUE0QixXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUzRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrRUFBK0UsQ0FBQztBQUl0SCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7QUFNbEQsTUFBTSxPQUFPLGFBQWE7SUFHeEIsWUFBbUIsYUFBNEIsRUFDckMsY0FBOEIsRUFDOUIsV0FBd0IsRUFDeEIscUJBQTRDLEVBQzVDLFlBQTBCO1FBSmpCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQ3JDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QiwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBTnBDLGVBQVUsR0FBaUIsRUFBRSxDQUFDO1FBQzlCLGVBQVUsR0FBUSxFQUFFLENBQUM7SUFLb0IsQ0FBQztJQUUxQyxjQUFjLENBQUMsWUFBb0IsRUFBRSxFQUFFLE1BQVcsRUFBRSxhQUFzQixLQUFLLEVBQUUsVUFBbUIsRUFBRSxlQUF1QixFQUFFLEVBQUUsZUFBdUIsRUFBRSxFQUFFLE9BQXFCLEVBQUUsRUFBRSxnQkFBeUIsS0FBSztRQUVqTixNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENB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QUFDO2lJQXJRVSxhQUFhO3FJQUFiLGFBQWEsY0FGWixNQUFNOzsyRkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVGb3JtQ29udHJvbCwgSUR5bmFtaWNGb3JtLCBJRm9ybUZpZWxkLCBJUmVwb3J0VHlwZSB9IGZyb20gJy4uL21vZGVscy9mb3JtLm1vZGVsJztcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UsIER5bmFtaWNEaWFsb2dDb21wb25lbnQgfSBmcm9tICdwcmltZW5nL2R5bmFtaWNkaWFsb2cnO1xuaW1wb3J0IHsgUmVwb3J0RmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9iYXNlL3JlcG9ydC9yZXBvcnQtRmlsdGVyL3JlcG9ydC1maWx0ZXIvcmVwb3J0LWZpbHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVxdWVzdFNlcnZpY2UgfSBmcm9tICcuL3JlcXVlc3Quc2VydmljZSc7XG5pbXBvcnQgeyBBbGVydFNlcnZpY2UgfSBmcm9tICcuL2FsZXJ0LnNlcnZpY2UnO1xuaW1wb3J0IHsgR3JpZFNlcnZpY2UgfSBmcm9tICcuL2dyaWQuc2VydmljZSc7XG5pbXBvcnQgeyBFR3JpZEV4Y2VsIH0gZnJvbSAnLi4vbW9kZWxzL2dyaWQubW9kZWwnO1xuaW1wb3J0IHsgQXV0aGVudGljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9hdXRoZW50aWNhdGlvbi5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUmVwb3J0U2VydmljZSB7XG4gIGZvcm1GaWVsZHM6IElGb3JtRmllbGRbXSA9IFtdO1xuICBwYXJhbXNDb3B5OiBhbnkgPSBbXTtcbiAgY29uc3RydWN0b3IocHVibGljIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZXF1ZXN0U2VydmljZTogUmVxdWVzdFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBncmlkU2VydmljZTogR3JpZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhdXRoZW50aWNhdGlvblNlcnZpY2U6IEF1dGhlbnRpY2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLCkgeyB9XG5cbiAgZG93bmxvYWRSZXBvcnQodW5pcXVlS2V5OiBzdHJpbmcgPSAnJywgcGFyYW1zOiBhbnksIHNob3dEaWFsb2c6IGJvb2xlYW4gPSBmYWxzZSwgcmVwb3J0VHlwZT86IHN0cmluZywgcmVwb3J0SGVhZGVyOiBzdHJpbmcgPSAnJywgcmVwb3J0Rm9vdGVyOiBzdHJpbmcgPSAnJywgZm9ybTogSUR5bmFtaWNGb3JtID0ge30sIGNoZWNrVXNlclJvbGU6IGJvb2xlYW4gPSBmYWxzZSkgXG4gIHtcbiAgICBwYXJhbXM/LmZvckVhY2goKHApID0+IHtcbiAgICAgIHRoaXMucGFyYW1zQ29weS5wdXNoKE9iamVjdC5hc3NpZ24oe30sIHApKTtcbiAgICB9KTtcbiAgICB0aGlzLmNyZWF0ZUR5bmFtaWNGaWVsZHModW5pcXVlS2V5LCBwYXJhbXMsIHNob3dEaWFsb2csIHJlcG9ydFR5cGUsIHJlcG9ydEhlYWRlciwgcmVwb3J0Rm9vdGVyLCBmb3JtLCBjaGVja1VzZXJSb2xlKTtcbiAgfVxuXG4gIGNyZWF0ZUR5bmFtaWNGaWVsZHModW5pcXVlS2V5OiBzdHJpbmcsIHBhcmFtcywgc2hvd0RpYWxvZywgcmVwb3J0VHlwZSwgcmVwb3J0SGVhZGVyLCByZXBvcnRGb290ZXIsIGZvcm0sIGNoZWNrVXNlclJvbGU6IGJvb2xlYW4pIHtcbiAgICBsZXQgcmVwb3J0SnNvbjtcbiAgICBsZXQgcmVwb3J0TmFtZTtcbiAgICBsZXQgcmVwb3J0VW5pcXVlS2V5OiBzdHJpbmcgPSAnJztcbiAgICBjb25zdCByb2xlSWRzID0gSlNPTi5wYXJzZSgobG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJDdXJyZW50VXNlckluZm9cIikpIGFzIGFueSk7XG4gICAgdGhpcy5yZXF1ZXN0U2VydmljZVxuICAgICAgLmdldE9uZTxSZXNwb25zZSwgYW55PignL1JlcG9ydENvbmZpZy9SZXBvcnQnLCB1bmlxdWVLZXkpXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgICAgcmVwb3J0SnNvbiA9IEpTT04ucGFyc2UoZGF0YT8ucmVwb3J0KTtcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3JlcG9ydEpzb246ICcsIHJlcG9ydEpzb24pO1xuICAgICAgICAgICAgICByZXBvcnRUeXBlID0gcmVwb3J0SnNvbj8ucmVwb3J0VHlwZSA/IHJlcG9ydEpzb24/LnJlcG9ydFR5cGUgOiByZXBvcnRUeXBlID8gcmVwb3J0VHlwZSA6IElSZXBvcnRUeXBlLlBERjtcbiAgICAgICAgICAgICAgcmVwb3J0TmFtZSA9IGRhdGEudW5pcXVlS2V5ID8gZGF0YS51bmlxdWVLZXkgOiBFR3JpZEV4Y2VsLkVYUE9SVDtcbiAgICAgICAgICAgICAgcmVwb3J0VW5pcXVlS2V5ID0gZGF0YT8udW5pcXVlS2V5O1xuICAgICAgICAgICAgICB0aGlzLmZvcm1GaWVsZHMgPSByZXBvcnRKc29uPy5Gb3JtRmllbGRzO1xuICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgaWYocmVwb3J0SnNvbj8uU2VjdXJpdHlHcm91cHMpe1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlcG9ydFJvbGVzID0gcmVwb3J0SnNvbj8uU2VjdXJpdHlHcm91cHM/LnNwbGl0KCcsJykubWFwKE51bWJlcik7XG4gICAgICAgICAgICAgICAgY29uc3QgdXNlclJvbGUgPSByb2xlSWRzPy5yb2xlcz8uZmluZCgocm9sSWQpID0+IHJlcG9ydFJvbGVzPy5pbmNsdWRlcyhyb2xJZD8uaWQpKTtcbiAgICAgICAgICAgICAgICBpZiAodXNlclJvbGUgfHwgIWNoZWNrVXNlclJvbGUpe1xuICAgICAgICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZVJlcG9ydCh1bmlxdWVLZXksIHBhcmFtcywgc2hvd0RpYWxvZywgcmVwb3J0VHlwZSwgcmVwb3J0TmFtZSwgcmVwb3J0SGVhZGVyLCByZXBvcnRGb290ZXIsIGZvcm0sIHJlcG9ydEpzb24/LlJlcG9ydERhdGFTb3VyY2VzLCByZXBvcnRVbmlxdWVLZXkpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcihcIllvdSBkb24ndCBoYXZlIHBlcm1pc3Npb24gdG8gYWNjZXNzIHRoaXMgcmVwb3J0LlwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZVJlcG9ydCh1bmlxdWVLZXksIHBhcmFtcywgc2hvd0RpYWxvZywgcmVwb3J0VHlwZSwgcmVwb3J0TmFtZSwgcmVwb3J0SGVhZGVyLCByZXBvcnRGb290ZXIsIGZvcm0sIHJlcG9ydEpzb24/LlJlcG9ydERhdGFTb3VyY2VzLCByZXBvcnRVbmlxdWVLZXkpO1xuICAgICAgICAgICAgICB9IFxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5lcnJvcihlcnJvcik7XG4gICAgICAgIH1cbiAgICAgICk7XG4gIH1cblxuICBkb3dubG9hZEN1c3RvbVJlcG9ydChkYXRhU291cmNlOiBhbnksIHJlcG9ydFR5cGUsIHNlbGVjdGVkVW5pcXVlS2V5OiBzdHJpbmcgPSAnJywgcGFyYW1zOiBhbnksIHJlcG9ydFVuaXF1ZUtleTogc3RyaW5nID0gJycpIHtcbiAgICBkYXRhU291cmNlLmZvckVhY2goKHVuaXF1ZUtleSkgPT4ge1xuICAgICAgdGhpcy5nZXRSZXBvcnREYXRhKHVuaXF1ZUtleS5kYXRhc291cmNlLCByZXBvcnRUeXBlLCBzZWxlY3RlZFVuaXF1ZUtleSwgcGFyYW1zLCByZXBvcnRVbmlxdWVLZXkpO1xuICAgIH0pXG4gIH1cblxuICBnZW5lcmF0ZVJlcG9ydCh1bmlxdWVLZXk6IHN0cmluZywgcGFyYW1zOiBhbnksIHNob3dEaWFsb2c6IGJvb2xlYW4gPSBmYWxzZSwgcmVwb3J0VHlwZTogSVJlcG9ydFR5cGUsIHNlbGVjdGVkVW5pcXVlS2V5OiBzdHJpbmcsIHJlcG9ydEhlYWRlcjogc3RyaW5nLCByZXBvcnRGb290ZXI6IHN0cmluZywgZm9ybTogSUR5bmFtaWNGb3JtID0ge30sIHJlcG9ydEpzb25EYXRhLCByZXBvcnRVbmlxdWVLZXkgPSAnJykge1xuICAgIHRoaXMuZ2V0Rm9ybUZpZWxkVmFsdWVzKGZvcm0sIHBhcmFtcyk7XG4gICAgaWYgKFxuICAgICAgKHRoaXMuZm9ybUZpZWxkcy5zb21lKChmaWVsZCkgPT4gIWZpZWxkLmhpZGRlbikgJiZcbiAgICAgICAgc2hvd0RpYWxvZyA9PT0gdW5kZWZpbmVkKSB8fFxuICAgICAgc2hvd0RpYWxvZyA9PT0gdHJ1ZVxuICAgICkge1xuICAgICAgY29uc3QgcmVmID0gdGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW4oUmVwb3J0RmlsdGVyQ29tcG9uZW50LCB7XG4gICAgICAgIHdpZHRoOiAnNTAlJyxcbiAgICAgICAgaGVpZ2h0OiAnNTAlJyxcbiAgICAgICAgaGVhZGVyOiAnR2VuZXJhdGUgUmVwb3J0JyxcbiAgICAgICAgc3R5bGU6IHsgYmFja2dyb3VuZDogJyNmZmYnIH0sXG4gICAgICAgIHN0eWxlQ2xhc3M6ICdyZXBvcnQtZGlhbG9nJyxcbiAgICAgICAgZGF0YTogeyBnZXRSZXBvcnQ6IHVuaXF1ZUtleSwgcGFyYW06IHBhcmFtcywgc2hvd0RpYWxvZywgcmVwb3J0SnNvbkRhdGEsIHJlcG9ydFR5cGUsIHJlcG9ydEhlYWRlciwgcmVwb3J0Rm9vdGVyLCByZXBvcnROYW1lOiBzZWxlY3RlZFVuaXF1ZUtleSwgdW5pcXVlS2V5OiByZXBvcnRVbmlxdWVLZXl9LFxuICAgICAgfSk7XG4gICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZ1NlcnZpY2UuZGlhbG9nQ29tcG9uZW50UmVmTWFwLmdldChyZWYpO1xuICAgICAgY29uc3QgY29tcG9uZW50ID0gZGlhbG9nUmVmPy5pbnN0YW5jZSBhcyBEeW5hbWljRGlhbG9nQ29tcG9uZW50O1xuICAgICAgY29uc3QgYXJpYUxhYmVsbGVkQnkgPSBjb21wb25lbnQuZ2V0QXJpYUxhYmVsbGVkQnkoKTtcbiAgICAgIGNvbXBvbmVudC5nZXRBcmlhTGFiZWxsZWRCeSA9ICgpID0+IGFyaWFMYWJlbGxlZEJ5O1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAocmVwb3J0VHlwZSA9PT0gSVJlcG9ydFR5cGUuRVhDRUwgfHwgcmVwb3J0VHlwZSA9PT0gSVJlcG9ydFR5cGUuVEVYVCB8fCByZXBvcnRUeXBlID09PSBJUmVwb3J0VHlwZS5DU1YpIHtcbiAgICAgICAgdGhpcy5kb3dubG9hZEN1c3RvbVJlcG9ydChyZXBvcnRKc29uRGF0YSwgcmVwb3J0VHlwZSwgc2VsZWN0ZWRVbmlxdWVLZXksIHBhcmFtcywgcmVwb3J0VW5pcXVlS2V5KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZG93bmxvYWRRdWlja1JlcG9ydChwYXJhbXMsIHVuaXF1ZUtleSwgcmVwb3J0SGVhZGVyLCByZXBvcnRGb290ZXIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldFJlcG9ydERhdGEodW5pcXVlS2V5VmFsdWU6IGFueSwgcmVwb3J0VHlwZSwgdW5pcXVlS2V5LCBwYXJhbXM6IGFueSwgcmVwb3J0VW5pcXVlS2V5OiBzdHJpbmcgPSAnJykge1xuICAgIGxldCBmaWx0ZXJzOiBhbnlbXSA9IFtdO1xuICAgIGlmIChwYXJhbXMgJiYgcGFyYW1zLmxlbmd0aCA+IDApIHtcbiAgICAgIHBhcmFtcy5mb3JFYWNoKChwYXJhbSkgPT4ge1xuICAgICAgICBPYmplY3Qua2V5cyhwYXJhbSkubWFwKChrZXkpID0+XG4gICAgICAgICAgZmlsdGVycy5wdXNoKHtcbiAgICAgICAgICAgIGZpZWxkOiBrZXksXG4gICAgICAgICAgICBtYXRjaE1vZGU6ICdlcXVhbCcsXG4gICAgICAgICAgICBvcGVyYXRvcjogJ2FuZCcsXG4gICAgICAgICAgICB2YWx1ZTogcGFyYW1ba2V5XSxcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZpbHRlcnMgPSB0aGlzLmdldEZpbHRlcnMoKTtcbiAgICB9XG4gICAgdGhpcy5yZXF1ZXN0U2VydmljZS5nZXQ8YW55W10sIGFueT4oJy9EYXRhL011bHRpRmV0Y2gnLCB7XG4gICAgICB1bmlxdWVLZXk6IHVuaXF1ZUtleVZhbHVlLFxuICAgICAgZmlsdGVyczogZmlsdGVycyxcbiAgICB9KS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlUmVwb3J0KHJlcG9ydFVuaXF1ZUtleSk7XG4gICAgICBjb25zdCByb3dzSW5mbyA9IHJlc3BvbnNlPy50YWJsZXNbMF0/LnJlY29yZHM7XG4gICAgICBjb25zdCB1cGRhdGVkUm93c0luZm8gPSB0aGlzLmdyaWRTZXJ2aWNlLmZvcm1hdERhdGVDb2x1bW4ocm93c0luZm8pO1xuICAgICAgaWYgKHJlcG9ydFR5cGUgPT09IElSZXBvcnRUeXBlLkVYQ0VMKSB7XG4gICAgICAgIGNvbnN0IGlzR3JpZEV4Y2VsRGF0YSA9IGZhbHNlO1xuICAgICAgICBjb25zdCBjb2x1bW5zID0gcm93c0luZm8ubGVuZ3RoID4gMCA/IE9iamVjdD8ua2V5cyhyZXNwb25zZT8udGFibGVzWzBdPy5yZWNvcmRzWzBdKSA6IFtdO1xuICAgICAgICB0aGlzLmdyaWRTZXJ2aWNlLmV4cG9ydEV4Y2VsKHVwZGF0ZWRSb3dzSW5mbywgY29sdW1ucywgdW5pcXVlS2V5LCBpc0dyaWRFeGNlbERhdGEpO1xuICAgICAgfSBlbHNlIGlmIChyZXBvcnRUeXBlID09PSBJUmVwb3J0VHlwZS5URVhUKSB7XG4gICAgICAgIHRoaXMuc2F2ZUFzVGV4dEZpbGUodXBkYXRlZFJvd3NJbmZvLCB1bmlxdWVLZXkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zYXZlQXNDc3ZGaWxlKHVwZGF0ZWRSb3dzSW5mbywgdW5pcXVlS2V5KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8vdXBkYXRlIHJlcG9ydCBsb2dnaW5nXG4gIHVwZGF0ZVJlcG9ydCh1bmlxdWVLZXlWYWx1ZSl7XG4gICAgbGV0IGN1cnJlbnRVc2VyOiBhbnkgPSB0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5nZXRVc2VySW5mbygpO1xuICAgIHRoaXMucmVxdWVzdFNlcnZpY2UuZ2V0PGFueVtdLCBhbnk+KCcvUmVwb3J0Q29uZmlnL1JlcG9ydFVzZXJTZXR0aW5nJywge1xuICAgICAgaXNSdW5SZXBvcnQ6IHRydWUsXG4gICAgICBpc0Zhdm9yaXRlOiBmYWxzZSxcbiAgICAgIHJlcG9ydFVuaXF1ZUtleTogdW5pcXVlS2V5VmFsdWUsXG4gICAgICB1c2VySWQ6IGN1cnJlbnRVc2VyPy5pZCxcbiAgICAgIHJlcG9ydElkOiAwXG4gICAgfSkuc3Vic2NyaWJlKChyZXMpID0+IHt9LFxuICAgICAoeyBlcnJvciB9KSA9PiB7fSk7XG4gIH1cblxuICAvKipcbiAgICogRXhwb3J0IHRvIHRleHQgKHN1Yi1tZXRob2QpXG4gICAqL1xuICBzYXZlQXNUZXh0RmlsZShyb3dzSW5mbzogYW55LCB1bmlxdWVLZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuZ3JpZFNlcnZpY2Uuc2F2ZUFzVGV4dEZpbGUocm93c0luZm8sIHVuaXF1ZUtleSk7XG4gIH1cblxuICAvKipcbiAgICogRXhwb3J0IHRvIENTViAoc3ViLW1ldGhvZClcbiAgICovXG4gIHNhdmVBc0NzdkZpbGUocm93c0luZm86IGFueSwgdW5pcXVlS2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmdyaWRTZXJ2aWNlLnNhdmVEYXRhQXNDc3Yocm93c0luZm8sIHVuaXF1ZUtleSk7XG4gIH1cblxuICBnZXRGb3JtRmllbGRWYWx1ZXMoZm9ybTogSUR5bmFtaWNGb3JtLCBwYXJhbXM6IGFueSkge1xuICAgIGlmICh0aGlzLnBhcmFtc0NvcHk/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMucGFyYW1zQ29weS5mb3JFYWNoKChwYXJhbUNvcHkpID0+IHtcbiAgICAgICAgdmFyIGtleSA9IE9iamVjdC5rZXlzKHBhcmFtQ29weSlbMF07XG4gICAgICAgIGlmIChwYXJhbUNvcHlba2V5XSA9PT0gJycgfHwgIXBhcmFtQ29weVtrZXldKSB7XG4gICAgICAgICAgZm9ybT8uZm9ybVNlY3Rpb25zPy5mb3JFYWNoKChzZWN0aW9uKSA9PiB7XG4gICAgICAgICAgICBzZWN0aW9uLmZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoa2V5LnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKSA9PT0gZmllbGQuZmllbGQ/LnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgICAgICAgICBwYXJhbXMuZm9yRWFjaCgob3JpZ1BhcmFtKSA9PiB7XG4gICAgICAgICAgICAgICAgICB2YXIgb3JpZ0tleSA9IE9iamVjdC5rZXlzKG9yaWdQYXJhbSlbMF07XG4gICAgICAgICAgICAgICAgICBpZiAob3JpZ0tleSA9PSBrZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgLy9vcmlnUGFyYW1bb3JpZ0tleV0gPSBmaWVsZC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpZWxkLmNvbnRyb2wgPT0gRUZvcm1Db250cm9sLkNBTEVOREFSKSB7XG4gICAgICAgICAgICAgICAgICAgICAgb3JpZ1BhcmFtW29yaWdLZXldID0gZmllbGQudmFsdWUgPyBmaWVsZC52YWx1ZS50b0xvY2FsZURhdGVTdHJpbmcoKSA6IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgb3JpZ1BhcmFtW29yaWdLZXldID0gZmllbGQudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgcGFyYW1Db3B5W2tleV0udG9TdHJpbmcoKS5pbmNsdWRlcygneycpICYmXG4gICAgICAgICAgcGFyYW1Db3B5W2tleV0udG9TdHJpbmcoKS5pbmNsdWRlcygnfScpXG4gICAgICAgICkge1xuICAgICAgICAgIHZhciBuZXdWYWx1ZSA9IHBhcmFtQ29weVtrZXldLnJlcGxhY2UoJ3snLCAnJykucmVwbGFjZSgnfScsICcnKTtcbiAgICAgICAgICBmb3JtPy5mb3JtU2VjdGlvbnM/LmZvckVhY2goKHNlY3Rpb24pID0+IHtcbiAgICAgICAgICAgIHNlY3Rpb24uZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBuZXdWYWx1ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkgPT09IGZpZWxkLmZpZWxkPy50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHBhcmFtcy5mb3JFYWNoKChvcmlnUGFyYW0pID0+IHtcbiAgICAgICAgICAgICAgICAgIHZhciBvcmlnS2V5ID0gT2JqZWN0LmtleXMob3JpZ1BhcmFtKVswXTtcbiAgICAgICAgICAgICAgICAgIGlmIChvcmlnS2V5ID09IGtleSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZmllbGQuY29udHJvbCA9PSBFRm9ybUNvbnRyb2wuQ0FMRU5EQVIpIHtcbiAgICAgICAgICAgICAgICAgICAgICBvcmlnUGFyYW1bb3JpZ0tleV0gPSBmaWVsZC52YWx1ZSA/IGZpZWxkLnZhbHVlLnRvTG9jYWxlRGF0ZVN0cmluZygpIDogbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICBvcmlnUGFyYW1bb3JpZ0tleV0gPSBmaWVsZC52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZG93bmxvYWRRdWlja1JlcG9ydChwYXJhbXMsIHVuaXF1ZUtleSwgcmVwb3J0SGVhZGVyLCByZXBvcnRGb290ZXIpIHtcbiAgICBsZXQgZmlsdGVyczogYW55W10gPSBbXTtcbiAgICBsZXQgcmVwSWRPYmo6IGFueTtcbiAgICBpZiAocGFyYW1zICYmIHBhcmFtcy5sZW5ndGggPiAwKSB7XG4gICAgICBwYXJhbXMuZm9yRWFjaCgocGFyYW0pID0+IHtcbiAgICAgICAgT2JqZWN0LmtleXMocGFyYW0pLm1hcCgoa2V5KSA9PlxuICAgICAgICAgIGZpbHRlcnMucHVzaCh7XG4gICAgICAgICAgICBmaWVsZDoga2V5LFxuICAgICAgICAgICAgbWF0Y2hNb2RlOiAnZXF1YWwnLFxuICAgICAgICAgICAgb3BlcmF0b3I6ICdhbmQnLFxuICAgICAgICAgICAgdmFsdWU6IHBhcmFtW2tleV0sXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBmaWx0ZXJzID0gdGhpcy5nZXRGaWx0ZXJzKCk7XG4gICAgfVxuICAgIFxuICAgIC8vIGlmICh0eXBlb2YgKHJlcElkKSA9PT0gJ251bWJlcicpIHtcbiAgICAvLyAgIHJlcElkT2JqID0geyBJZDogcmVwSWQsIGZpbHRlcnM6IGZpbHRlcnMsIFJlcG9ydEhlYWRlcjogcmVwb3J0SGVhZGVyLCBSZXBvcnRGb290ZXI6IHJlcG9ydEZvb3Rlcn1cbiAgICAvLyB9XG4gICAgLy8gZWxzZSB7XG4gICAgICByZXBJZE9iaiA9IHsgdW5pcXVlS2V5OiB1bmlxdWVLZXksIGZpbHRlcnM6IGZpbHRlcnMsIFJlcG9ydEhlYWRlcjogcmVwb3J0SGVhZGVyLCBSZXBvcnRGb290ZXI6IHJlcG9ydEZvb3RlciB9XG4gICAgLy99XG5cbiAgICB0aGlzLnJlcXVlc3RTZXJ2aWNlXG4gICAgICAuZG93bmxvYWQoJy9SZXBvcnQvR2VuZXJhdGUnLCByZXBJZE9iailcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgIChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgIHZhciBuZXdCbG9iID0gbmV3IEJsb2IoW3Jlc3BvbnNlLmJvZHldLCB7IHR5cGU6ICdhcHBsaWNhdGlvbi9wZGYnIH0pO1xuICAgICAgICAgIGNvbnN0IGRhdGEgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChuZXdCbG9iKTtcbiAgICAgICAgICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgICAgICAgIGEuaHJlZiA9IGRhdGE7XG4gICAgICAgICAgY29uc3QgaGVhZGVyID0gcmVzcG9uc2U/LmhlYWRlcnM/LmdldCgnQ29udGVudC1EaXNwb3NpdGlvbicpO1xuICAgICAgICAgIGNvbnN0IGZpbGVOYW1lID0gaGVhZGVyXG4gICAgICAgICAgICA/LnNwbGl0KCdmaWxlbmFtZT0nKT8uWzFdXG4gICAgICAgICAgICA/LnNwbGl0KCc7JylbMF1cbiAgICAgICAgICAgID8ucmVwbGFjZUFsbCgvXFxcIi9nLCAnJyk7XG4gICAgICAgICAgYS5kb3dubG9hZCA9IGZpbGVOYW1lO1xuICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSk7XG4gICAgICAgICAgYS5jbGljaygpO1xuICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYSk7XG4gICAgICAgIH0sXG4gICAgICAgIChlcnJvcikgPT4ge1xuICAgICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFwaUVycm9yKGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxuXG4gIGdldEZpbHRlcnMoKSB7XG4gICAgbGV0IGZpbHRlcnM6IGFueVtdID0gW107XG4gICAgdGhpcy5mb3JtRmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgICBpZiAoZmllbGQgJiYgZmllbGQudmFsdWU/LnRvU3RyaW5nKCk/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgZmlsdGVycy5wdXNoKHtcbiAgICAgICAgICBmaWVsZDogZmllbGQuZmllbGQsXG4gICAgICAgICAgbWF0Y2hNb2RlOiAnZXF1YWwnLFxuICAgICAgICAgIG9wZXJhdG9yOiAnYW5kJyxcbiAgICAgICAgICB2YWx1ZTogZmllbGQudmFsdWUsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBmaWx0ZXJzO1xuICB9XG59XG4iXX0=
|
|
@@ -5907,17 +5907,23 @@ class ReportService {
|
|
|
5907
5907
|
.subscribe((data) => {
|
|
5908
5908
|
if (data) {
|
|
5909
5909
|
reportJson = JSON.parse(data?.report);
|
|
5910
|
+
console.log('reportJson: ', reportJson);
|
|
5910
5911
|
reportType = reportJson?.reportType ? reportJson?.reportType : reportType ? reportType : IReportType.PDF;
|
|
5911
5912
|
reportName = data.uniqueKey ? data.uniqueKey : EGridExcel.EXPORT;
|
|
5912
5913
|
reportUniqueKey = data?.uniqueKey;
|
|
5913
5914
|
this.formFields = reportJson?.FormFields;
|
|
5914
|
-
|
|
5915
|
-
|
|
5916
|
-
|
|
5917
|
-
|
|
5915
|
+
if (reportJson?.SecurityGroups) {
|
|
5916
|
+
const reportRoles = reportJson?.SecurityGroups?.split(',').map(Number);
|
|
5917
|
+
const userRole = roleIds?.roles?.find((rolId) => reportRoles?.includes(rolId?.id));
|
|
5918
|
+
if (userRole || !checkUserRole) {
|
|
5919
|
+
this.generateReport(uniqueKey, params, showDialog, reportType, reportName, reportHeader, reportFooter, form, reportJson?.ReportDataSources, reportUniqueKey);
|
|
5920
|
+
}
|
|
5921
|
+
else {
|
|
5922
|
+
this.alertService.error("You don't have permission to access this report.");
|
|
5923
|
+
}
|
|
5918
5924
|
}
|
|
5919
5925
|
else {
|
|
5920
|
-
this.
|
|
5926
|
+
this.generateReport(uniqueKey, params, showDialog, reportType, reportName, reportHeader, reportFooter, form, reportJson?.ReportDataSources, reportUniqueKey);
|
|
5921
5927
|
}
|
|
5922
5928
|
}
|
|
5923
5929
|
}, (error) => {
|