client-core-services 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -0
- package/esm2020/client-core-services.mjs +5 -0
- package/esm2020/lib/my-lib.module.mjs +98 -0
- package/esm2020/lib/services/api/api-call/api-call.service.mjs +766 -0
- package/esm2020/lib/services/api/api-call-responce/api-call-responce.service.mjs +191 -0
- package/esm2020/lib/services/api/api.service.mjs +611 -0
- package/esm2020/lib/services/api/auth/auth-guard.service.mjs +37 -0
- package/esm2020/lib/services/api/auth/auth.service.mjs +500 -0
- package/esm2020/lib/services/api/aws-secret-manager/aws-secret-manager.service.mjs +78 -0
- package/esm2020/lib/services/api/common-api/common-api.service.mjs +97 -0
- package/esm2020/lib/services/api/doc-api/doc-api.service.mjs +221 -0
- package/esm2020/lib/services/api/public-api/public-api.service.mjs +37 -0
- package/esm2020/lib/services/chart/chart.service.mjs +166 -0
- package/esm2020/lib/services/check-if/check-if.service.mjs +830 -0
- package/esm2020/lib/services/common-utils/common-function.service.mjs +1277 -0
- package/esm2020/lib/services/common-utils/core-function/core-function.service.mjs +283 -0
- package/esm2020/lib/services/customvalidation/customvalidation.service.mjs +202 -0
- package/esm2020/lib/services/data-share/auth-data-share/auth-data-share.service.mjs +70 -0
- package/esm2020/lib/services/data-share/common-app-data-share/common-app-data-share.service.mjs +82 -0
- package/esm2020/lib/services/data-share/data-share.service.mjs +370 -0
- package/esm2020/lib/services/data-share/doc-data-share/doc-data-share.service.mjs +81 -0
- package/esm2020/lib/services/data-share/public-data-share/public-data-share.service.mjs +25 -0
- package/esm2020/lib/services/download/download.service.mjs +151 -0
- package/esm2020/lib/services/encryption/encryption.service.mjs +20 -0
- package/esm2020/lib/services/env/env.service.mjs +232 -0
- package/esm2020/lib/services/env/serverHostList.mjs +56 -0
- package/esm2020/lib/services/fileHandler/file-handler.service.mjs +136 -0
- package/esm2020/lib/services/form/form-control/form-control.service.mjs +654 -0
- package/esm2020/lib/services/form/form-creation/form-creation.service.mjs +880 -0
- package/esm2020/lib/services/form/form-value/form-value.service.mjs +464 -0
- package/esm2020/lib/services/form/multiple-form/multiple-form.service.mjs +346 -0
- package/esm2020/lib/services/grid/grid-common-function/grid-common-function.service.mjs +875 -0
- package/esm2020/lib/services/grid/grid-selection/grid-selection.service.mjs +84 -0
- package/esm2020/lib/services/lims-calculations/lims-calculations.service.mjs +2304 -0
- package/esm2020/lib/services/loader/loader.service.mjs +17 -0
- package/esm2020/lib/services/menu-or-module-common/menu-or-module-common.service.mjs +558 -0
- package/esm2020/lib/services/model/model.service.mjs +30 -0
- package/esm2020/lib/services/notify/notification.service.mjs +84 -0
- package/esm2020/lib/services/operator/operator.service.mjs +58 -0
- package/esm2020/lib/services/permission/permission.service.mjs +88 -0
- package/esm2020/lib/services/router/router.service.mjs +78 -0
- package/esm2020/lib/services/storage/cookies.service.mjs +56 -0
- package/esm2020/lib/services/storage/storage.service.mjs +749 -0
- package/esm2020/lib/services/tree-component/interface.mjs +6 -0
- package/esm2020/lib/services/tree-component/tree-component.service.mjs +394 -0
- package/esm2020/lib/services/userPrefrence/user-prefrence.service.mjs +767 -0
- package/esm2020/lib/services/voice-recognition/voice-recognition.service.mjs +97 -0
- package/esm2020/lib/shared/configuration/config.mjs +76 -0
- package/esm2020/lib/shared/configuration/editor-config.mjs +121 -0
- package/esm2020/lib/shared/enums/common.enum.mjs +18 -0
- package/esm2020/lib/shared/enums/config.enum.mjs +56 -0
- package/esm2020/lib/shared/enums/end-point.enum.mjs +69 -0
- package/esm2020/lib/shared/enums/flags.enum.mjs +20 -0
- package/esm2020/lib/shared/enums/keycodes.enum.mjs +122 -0
- package/esm2020/lib/shared/enums/operator_type.enum.mjs +13 -0
- package/esm2020/lib/shared/enums/storage-token-status.enum.mjs +10 -0
- package/esm2020/lib/shared/platform.mjs +2 -0
- package/esm2020/public-api.mjs +53 -0
- package/fesm2015/client-core-services.mjs +15487 -0
- package/fesm2015/client-core-services.mjs.map +1 -0
- package/fesm2020/client-core-services.mjs +15482 -0
- package/fesm2020/client-core-services.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/my-lib.module.d.ts +18 -0
- package/lib/services/api/api-call/api-call.service.d.ts +60 -0
- package/lib/services/api/api-call-responce/api-call-responce.service.d.ts +43 -0
- package/lib/services/api/api.service.d.ts +88 -0
- package/lib/services/api/auth/auth-guard.service.d.ts +13 -0
- package/lib/services/api/auth/auth.service.d.ts +50 -0
- package/lib/services/api/aws-secret-manager/aws-secret-manager.service.d.ts +22 -0
- package/lib/services/api/common-api/common-api.service.d.ts +22 -0
- package/lib/services/api/doc-api/doc-api.service.d.ts +35 -0
- package/lib/services/api/public-api/public-api.service.d.ts +14 -0
- package/lib/services/chart/chart.service.d.ts +21 -0
- package/lib/services/check-if/check-if.service.d.ts +50 -0
- package/lib/services/common-utils/common-function.service.d.ts +84 -0
- package/lib/services/common-utils/core-function/core-function.service.d.ts +21 -0
- package/lib/services/customvalidation/customvalidation.service.d.ts +21 -0
- package/lib/services/data-share/auth-data-share/auth-data-share.service.d.ts +33 -0
- package/lib/services/data-share/common-app-data-share/common-app-data-share.service.d.ts +36 -0
- package/lib/services/data-share/data-share.service.d.ts +174 -0
- package/lib/services/data-share/doc-data-share/doc-data-share.service.d.ts +33 -0
- package/lib/services/data-share/public-data-share/public-data-share.service.d.ts +12 -0
- package/lib/services/download/download.service.d.ts +35 -0
- package/lib/services/encryption/encryption.service.d.ts +8 -0
- package/lib/services/env/env.service.d.ts +44 -0
- package/lib/services/env/serverHostList.d.ts +9 -0
- package/lib/services/fileHandler/file-handler.service.d.ts +17 -0
- package/lib/services/form/form-control/form-control.service.d.ts +44 -0
- package/lib/services/form/form-creation/form-creation.service.d.ts +41 -0
- package/lib/services/form/form-value/form-value.service.d.ts +32 -0
- package/lib/services/form/multiple-form/multiple-form.service.d.ts +54 -0
- package/lib/services/grid/grid-common-function/grid-common-function.service.d.ts +74 -0
- package/lib/services/grid/grid-selection/grid-selection.service.d.ts +16 -0
- package/lib/services/lims-calculations/lims-calculations.service.d.ts +87 -0
- package/lib/services/loader/loader.service.d.ts +8 -0
- package/lib/services/menu-or-module-common/menu-or-module-common.service.d.ts +59 -0
- package/lib/services/model/model.service.d.ts +11 -0
- package/lib/services/notify/notification.service.d.ts +22 -0
- package/lib/services/operator/operator.service.d.ts +27 -0
- package/lib/services/permission/permission.service.d.ts +18 -0
- package/lib/services/router/router.service.d.ts +14 -0
- package/lib/services/storage/cookies.service.d.ts +11 -0
- package/lib/services/storage/storage.service.d.ts +132 -0
- package/lib/services/tree-component/interface.d.ts +13 -0
- package/lib/services/tree-component/tree-component.service.d.ts +38 -0
- package/lib/services/userPrefrence/user-prefrence.service.d.ts +75 -0
- package/lib/services/voice-recognition/voice-recognition.service.d.ts +36 -0
- package/lib/shared/configuration/config.d.ts +144 -0
- package/lib/shared/configuration/editor-config.d.ts +72 -0
- package/lib/shared/enums/common.enum.d.ts +16 -0
- package/lib/shared/enums/config.enum.d.ts +54 -0
- package/lib/shared/enums/end-point.enum.d.ts +66 -0
- package/lib/shared/enums/flags.enum.d.ts +18 -0
- package/lib/shared/enums/keycodes.enum.d.ts +120 -0
- package/lib/shared/enums/operator_type.enum.d.ts +9 -0
- package/lib/shared/enums/storage-token-status.enum.d.ts +8 -0
- package/lib/shared/platform.d.ts +1 -0
- package/package.json +40 -0
- package/public-api.d.ts +49 -0
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../common-utils/common-function.service";
|
|
4
|
+
export class FileHandlerService {
|
|
5
|
+
constructor(commonFunctionService) {
|
|
6
|
+
this.commonFunctionService = commonFunctionService;
|
|
7
|
+
}
|
|
8
|
+
modifyUploadFiles(files) {
|
|
9
|
+
const fileList = [];
|
|
10
|
+
if (files && files.length > 0) {
|
|
11
|
+
files.forEach((element) => {
|
|
12
|
+
if (element._id) {
|
|
13
|
+
fileList.push(element);
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
if (element && element.uploadData) {
|
|
17
|
+
let file = element.uploadData[0];
|
|
18
|
+
fileList.push(file);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
fileList.push({ uploadData: [element] });
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
return fileList;
|
|
27
|
+
}
|
|
28
|
+
modifyFileSetValue(files) {
|
|
29
|
+
let fileName = '';
|
|
30
|
+
let fileLength = files.length;
|
|
31
|
+
let file = files[0];
|
|
32
|
+
if (fileLength == 1 && (file.fileName || file.rollName)) {
|
|
33
|
+
fileName = file.fileName || file.rollName;
|
|
34
|
+
}
|
|
35
|
+
else if (fileLength > 1) {
|
|
36
|
+
fileName = fileLength + " Files";
|
|
37
|
+
}
|
|
38
|
+
return fileName;
|
|
39
|
+
}
|
|
40
|
+
getFileTooltipMsg(fileList) {
|
|
41
|
+
let msg = "";
|
|
42
|
+
if (fileList.length > 0) {
|
|
43
|
+
fileList.forEach((element) => {
|
|
44
|
+
if (msg != '') {
|
|
45
|
+
msg = msg + '\n' + element.fileName;
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
msg = element.fileName;
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
return msg;
|
|
53
|
+
}
|
|
54
|
+
updateFileUploadResponce(curFileUploadFieldparentfield, curFileUploadField, dataListForUpload, templateForm, tableFields, responceData) {
|
|
55
|
+
let responce = {
|
|
56
|
+
dataListForUpload: dataListForUpload,
|
|
57
|
+
templateForm: templateForm,
|
|
58
|
+
tableFields: tableFields
|
|
59
|
+
};
|
|
60
|
+
let curFieldName = '';
|
|
61
|
+
let parentIndex = -1;
|
|
62
|
+
let curIndex = -1;
|
|
63
|
+
if (curFileUploadField && curFileUploadField.field_name) {
|
|
64
|
+
curFieldName = curFileUploadField.field_name;
|
|
65
|
+
parentIndex = curFileUploadField['parentIndex'];
|
|
66
|
+
curIndex = curFileUploadField['curIndex'];
|
|
67
|
+
}
|
|
68
|
+
if (curFileUploadFieldparentfield != '' && curFieldName != '') {
|
|
69
|
+
const custmizedKey = this.commonFunctionService.custmizedKey(curFileUploadFieldparentfield);
|
|
70
|
+
if (!responce.dataListForUpload[custmizedKey])
|
|
71
|
+
responce.dataListForUpload[custmizedKey] = {};
|
|
72
|
+
if (!responce.dataListForUpload[custmizedKey][curFieldName])
|
|
73
|
+
responce.dataListForUpload[custmizedKey][curFieldName] = [];
|
|
74
|
+
responce.dataListForUpload[custmizedKey][curFieldName] = responceData;
|
|
75
|
+
if (responce.dataListForUpload[custmizedKey][curFieldName] && responce.dataListForUpload[custmizedKey][curFieldName].length > 0) {
|
|
76
|
+
let fileName = "";
|
|
77
|
+
if (curFileUploadField.type == 'input_with_uploadfile') {
|
|
78
|
+
let fileList = responce.dataListForUpload[custmizedKey][curFieldName];
|
|
79
|
+
fileName = this.modifyFileSetValue(fileList);
|
|
80
|
+
let tooltipMsg = this.getFileTooltipMsg(fileList);
|
|
81
|
+
responce.tableFields[parentIndex].list_of_fields[curIndex]['tooltipMsg'] = tooltipMsg;
|
|
82
|
+
}
|
|
83
|
+
responce.templateForm.controls[curFileUploadFieldparentfield.field_name].controls[curFieldName].setValue(fileName);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
responce.templateForm.controls[curFileUploadFieldparentfield.field_name].controls[curFieldName].setValue('');
|
|
87
|
+
if (curFileUploadField.type == 'input_with_uploadfile') {
|
|
88
|
+
responce.tableFields[parentIndex].list_of_fields[curIndex]['tooltipMsg'] = '';
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
if (curFieldName != '') {
|
|
94
|
+
if (!responce.dataListForUpload[curFieldName])
|
|
95
|
+
responce.dataListForUpload[curFieldName] = [];
|
|
96
|
+
responce.dataListForUpload[curFieldName] = responceData;
|
|
97
|
+
if (responce.dataListForUpload[curFieldName] && responce.dataListForUpload[curFieldName].length > 0) {
|
|
98
|
+
let fileList = responce.dataListForUpload[curFieldName];
|
|
99
|
+
let fileName = this.modifyFileSetValue(fileList);
|
|
100
|
+
if (curFileUploadField.type == 'input_with_uploadfile') {
|
|
101
|
+
let tooltipMsg = this.getFileTooltipMsg(fileList);
|
|
102
|
+
responce.tableFields[curIndex]['tooltipMsg'] = tooltipMsg;
|
|
103
|
+
}
|
|
104
|
+
responce.templateForm.controls[curFieldName].setValue(fileName);
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
responce.templateForm.controls[curFieldName].setValue('');
|
|
108
|
+
if (curFileUploadField.type == 'input_with_uploadfile') {
|
|
109
|
+
responce.tableFields[curIndex]['tooltipMsg'] = '';
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return responce;
|
|
115
|
+
}
|
|
116
|
+
removeAttachedDataFromList(parent, child, index, dataListForUpload) {
|
|
117
|
+
let fieldName = child.field_name;
|
|
118
|
+
if (parent && parent != '') {
|
|
119
|
+
let custmisedKey = this.commonFunctionService.custmizedKey(parent);
|
|
120
|
+
dataListForUpload[custmisedKey][fieldName].splice(index, 1);
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
dataListForUpload[fieldName].splice(index, 1);
|
|
124
|
+
}
|
|
125
|
+
return dataListForUpload;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
FileHandlerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FileHandlerService, deps: [{ token: i1.CommonFunctionService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
129
|
+
FileHandlerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FileHandlerService, providedIn: 'root' });
|
|
130
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FileHandlerService, decorators: [{
|
|
131
|
+
type: Injectable,
|
|
132
|
+
args: [{
|
|
133
|
+
providedIn: 'root'
|
|
134
|
+
}]
|
|
135
|
+
}], ctorParameters: function () { return [{ type: i1.CommonFunctionService }]; } });
|
|
136
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1oYW5kbGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtY29yZS9zcmMvbGliL3NlcnZpY2VzL2ZpbGVIYW5kbGVyL2ZpbGUtaGFuZGxlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU8zQyxNQUFNLE9BQU8sa0JBQWtCO0lBRTdCLFlBQ1UscUJBQTJDO1FBQTNDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBc0I7SUFDakQsQ0FBQztJQUdMLGlCQUFpQixDQUFDLEtBQVM7UUFDekIsTUFBTSxRQUFRLEdBQU8sRUFBRSxDQUFDO1FBQ3hCLElBQUcsS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFDO1lBQzNCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFXLEVBQUUsRUFBRTtnQkFDNUIsSUFBRyxPQUFPLENBQUMsR0FBRyxFQUFDO29CQUNiLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7aUJBQ3ZCO3FCQUFJO29CQUNILElBQUcsT0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUM7d0JBQy9CLElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQ2pDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7cUJBQ3JCO3lCQUFLO3dCQUNKLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBQyxVQUFVLEVBQUMsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDLENBQUE7cUJBQ3RDO2lCQUNGO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFDRCxrQkFBa0IsQ0FBQyxLQUFTO1FBQzFCLElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQztR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QUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUM7U0FDdEQ7YUFBSTtZQUNULGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUMsQ0FBQyxDQUFDLENBQUE7U0FDN0M7UUFDRCxPQUFPLGlCQUFpQixDQUFDO0lBQzNCLENBQUM7O2dIQXpIVSxrQkFBa0I7b0hBQWxCLGtCQUFrQixjQUZqQixNQUFNOzRGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbkZ1bmN0aW9uU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi11dGlscy9jb21tb24tZnVuY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWxlSGFuZGxlclNlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY29tbW9uRnVuY3Rpb25TZXJ2aWNlOkNvbW1vbkZ1bmN0aW9uU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG5cclxuICBtb2RpZnlVcGxvYWRGaWxlcyhmaWxlczphbnkpe1xyXG4gICAgY29uc3QgZmlsZUxpc3Q6YW55ID0gW107XHJcbiAgICBpZihmaWxlcyAmJiBmaWxlcy5sZW5ndGggPiAwKXtcclxuICAgICAgZmlsZXMuZm9yRWFjaCgoZWxlbWVudDphbnkpID0+IHtcclxuICAgICAgICBpZihlbGVtZW50Ll9pZCl7XHJcbiAgICAgICAgICBmaWxlTGlzdC5wdXNoKGVsZW1lbnQpXHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICBpZihlbGVtZW50ICYmIGVsZW1lbnQudXBsb2FkRGF0YSl7XHJcbiAgICAgICAgICAgIGxldCBmaWxlID0gZWxlbWVudC51cGxvYWREYXRhWzBdO1xyXG4gICAgICAgICAgICBmaWxlTGlzdC5wdXNoKGZpbGUpO1xyXG4gICAgICAgICAgfWVsc2Uge1xyXG4gICAgICAgICAgICBmaWxlTGlzdC5wdXNoKHt1cGxvYWREYXRhOltlbGVtZW50XX0pXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiBmaWxlTGlzdDtcclxuICB9XHJcbiAgbW9kaWZ5RmlsZVNldFZhbHVlKGZpbGVzOmFueSl7XHJcbiAgICBsZXQgZmlsZU5hbWUgPSAnJztcclxuICAgIGxldCBmaWxlTGVuZ3RoID0gZmlsZXMubGVuZ3RoO1xyXG4gICAgbGV0IGZpbGUgPSBmaWxlc1swXTtcclxuICAgIGlmKGZpbGVMZW5ndGggPT0gMSAmJiAoZmlsZS5maWxlTmFtZSB8fCBmaWxlLnJvbGxOYW1lKSl7XHJcbiAgICAgIGZpbGVOYW1lID0gZmlsZS5maWxlTmFtZSB8fCBmaWxlLnJvbGxOYW1lO1xyXG4gICAgfWVsc2UgaWYoZmlsZUxlbmd0aCA+IDEpe1xyXG4gICAgICBmaWxlTmFtZSA9IGZpbGVMZW5ndGggKyBcIiBGaWxlc1wiO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZpbGVOYW1lO1xyXG4gIH1cclxuICBnZXRGaWxlVG9vbHRpcE1zZyhmaWxlTGlzdDphbnkpe1xyXG4gICAgbGV0IG1zZyA9IFwiXCI7XHJcbiAgICBpZihmaWxlTGlzdC5sZW5ndGggPiAwKXtcclxuICAgICAgZmlsZUxpc3QuZm9yRWFjaCgoZWxlbWVudDphbnkpID0+IHtcclxuICAgICAgICBpZihtc2cgIT0gJycpe1xyXG4gICAgICAgICAgbXNnID0gbXNnICsgJ1xcbicgKyBlbGVtZW50LmZpbGVOYW1lO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgbXNnID0gZWxlbWVudC5maWxlTmFtZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG1zZztcclxuICB9XHJcbiAgdXBkYXRlRmlsZVVwbG9hZFJlc3BvbmNlKGN1ckZpbGVVcGxvYWRGaWVsZHBhcmVudGZpZWxkOmFueSxjdXJGaWxlVXBsb2FkRmllbGQ6YW55LGRhdGFMaXN0Rm9yVXBsb2FkOmFueSx0ZW1wbGF0ZUZvcm06YW55LHRhYmxlRmllbGRzOmFueSxyZXNwb25jZURhdGE6YW55KXtcclxuICAgIGxldCByZXNwb25jZSA9e1xyXG4gICAgICBkYXRhTGlzdEZvclVwbG9hZDpkYXRhTGlzdEZvclVwbG9hZCxcclxuICAgICAgdGVtcGxhdGVGb3JtOnRlbXBsYXRlRm9ybSxcclxuICAgICAgdGFibGVGaWVsZHM6dGFibGVGaWVsZHNcclxuICAgIH1cclxuICAgIGxldCBjdXJGaWVsZE5hbWUgPSAnJztcclxuICAgIGxldCBwYXJlbnRJbmRleCA9IC0xO1xyXG4gICAgbGV0IGN1ckluZGV4ID0gLTE7XHJcbiAgICBpZihjdXJGaWxlVXBsb2FkRmllbGQgJiYgY3VyRmlsZVVwbG9hZEZpZWxkLmZpZWxkX25hbWUpe1xyXG4gICAgICBjdXJGaWVsZE5hbWUgPSBjdXJGaWxlVXBsb2FkRmllbGQuZmllbGRfbmFtZTtcclxuICAgICAgcGFyZW50SW5kZXggPSAgY3VyRmlsZVVwbG9hZEZpZWxkWydwYXJlbnRJbmRleCddO1xyXG4gICAgICBjdXJJbmRleCA9ICBjdXJGaWxlVXBsb2FkRmllbGRbJ2N1ckluZGV4J107XHJcbiAgICB9XHJcbiAgICBpZihjdXJGaWxlVXBsb2FkRmllbGRwYXJlbnRmaWVsZCAhPSAnJyAmJiBjdXJGaWVsZE5hbWUgIT0gJycpe1xyXG4gICAgICBjb25zdCBjdXN0bWl6ZWRLZXkgPSB0aGlzLmNvbW1vbkZ1bmN0aW9uU2VydmljZS5jdXN0bWl6ZWRLZXkoY3VyRmlsZVVwbG9hZEZpZWxkcGFyZW50ZmllbGQpO1xyXG5cclxuICAgICAgaWYgKCFyZXNwb25jZS5kYXRhTGlzdEZvclVwbG9hZFtjdXN0bWl6ZWRLZXldKSByZXNwb25jZS5kYXRhTGlzdEZvclVwbG9hZFtjdXN0bWl6ZWRLZXldID0ge307XHJcbiAgICAgIGlmICghcmVzcG9uY2UuZGF0YUxpc3RGb3JVcGxvYWRbY3VzdG1pemVkS2V5XVtjdXJGaWVsZE5hbWVdKSByZXNwb25jZS5kYXRhTGlzdEZvclVwbG9hZFtjdXN0bWl6ZWRLZXldW2N1ckZpZWxkTmFtZV0gPSBbXTtcclxuICAgICAgcmVzcG9uY2UuZGF0YUxpc3RGb3JVcGxvYWRbY3VzdG1pemVkS2V5XVtjdXJGaWVsZE5hbWVdID0gcmVzcG9uY2VEYXRhO1xyXG5cclxuXHJcbiAgICAgIGlmKHJlc3BvbmNlLmRhdGFMaXN0Rm9yVXBsb2FkW2N1c3RtaXplZEtleV1bY3VyRmllbGROYW1lXSAmJiByZXNwb25jZS5kYXRhTGlzdEZvclVwbG9hZFtjdXN0bWl6ZWRLZXldW2N1ckZpZWxkTmFtZV0ubGVuZ3RoID4gMCl7XHJcbiAgICAgICAgbGV0IGZpbGVOYW1lICA9IFwiXCI7XHJcbiAgICAgICAgaWYoY3VyRmlsZVVwbG9hZEZpZWxkLnR5cGUgPT0gJ2lucHV0X3dpdGhfdXBsb2FkZmlsZScpe1xyXG4gICAgICAgICAgbGV0IGZpbGVMaXN0ID0gcmVzcG9uY2UuZGF0YUxpc3RGb3JVcGxvYWRbY3VzdG1pemVkS2V5XVtjdXJGaWVsZE5hbWVdO1xyXG4gICAgICAgICAgZmlsZU5hbWUgPSB0aGlzLm1vZGlmeUZpbGVTZXRWYWx1ZShmaWxlTGlzdCk7XHJcbiAgICAgICAgICBsZXQgdG9vbHRpcE1zZyA9IHRoaXMuZ2V0RmlsZVRvb2x0aXBNc2coZmlsZUxpc3QpO1xyXG4gICAgICAgICAgcmVzcG9uY2UudGFibGVGaWVsZHNbcGFyZW50SW5kZXhdLmxpc3Rfb2ZfZmllbGRzW2N1ckluZGV4XVsndG9vbHRpcE1zZyddID0gdG9vbHRpcE1zZztcclxuICAgICAgICAgIFxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgKDxVbnR5cGVkRm9ybUdyb3VwPnJlc3BvbmNlLnRlbXBsYXRlRm9ybS5jb250cm9sc1tjdXJGaWxlVXBsb2FkRmllbGRwYXJlbnRmaWVsZC5maWVsZF9uYW1lXSkuY29udHJvbHNbY3VyRmllbGROYW1lXS5zZXRWYWx1ZShmaWxlTmFtZSk7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgICg8VW50eXBlZEZvcm1Hcm91cD5yZXNwb25jZS50ZW1wbGF0ZUZvcm0uY29udHJvbHNbY3VyRmlsZVVwbG9hZEZpZWxkcGFyZW50ZmllbGQuZmllbGRfbmFtZV0pLmNvbnRyb2xzW2N1ckZpZWxkTmFtZV0uc2V0VmFsdWUoJycpO1xyXG4gICAgICAgIGlmKGN1ckZpbGVVcGxvYWRGaWVsZC50eXBlID09ICdpbnB1dF93aXRoX3VwbG9hZGZpbGUnKXtcclxuICAgICAgICAgIHJlc3BvbmNlLnRhYmxlRmllbGRzW3BhcmVudEluZGV4XS5saXN0X29mX2ZpZWxkc1tjdXJJbmRleF1bJ3Rvb2x0aXBNc2cnXSA9ICcnO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgIH1lbHNle1xyXG4gICAgICBpZihjdXJGaWVsZE5hbWUgIT0gJycpe1xyXG4gICAgICAgIGlmICghcmVzcG9uY2UuZGF0YUxpc3RGb3JVcGxvYWRbY3VyRmllbGROYW1lXSkgcmVzcG9uY2UuZGF0YUxpc3RGb3JVcGxvYWRbY3VyRmllbGROYW1lXSA9IFtdO1xyXG4gICAgICAgIHJlc3BvbmNlLmRhdGFMaXN0Rm9yVXBsb2FkW2N1ckZpZWxkTmFtZV0gPSByZXNwb25jZURhdGE7XHJcblxyXG4gICAgICAgIGlmKHJlc3BvbmNlLmRhdGFMaXN0Rm9yVXBsb2FkW2N1ckZpZWxkTmFtZV0gJiYgcmVzcG9uY2UuZGF0YUxpc3RGb3JVcGxvYWRbY3VyRmllbGROYW1lXS5sZW5ndGggPiAwKXtcclxuICAgICAgICAgIGxldCBmaWxlTGlzdCA9IHJlc3BvbmNlLmRhdGFMaXN0Rm9yVXBsb2FkW2N1ckZpZWxkTmFtZV07XHJcbiAgICAgICAgICBsZXQgZmlsZU5hbWUgPSB0aGlzLm1vZGlmeUZpbGVTZXRWYWx1ZShmaWxlTGlzdCk7XHJcbiAgICAgICAgICBpZihjdXJGaWxlVXBsb2FkRmllbGQudHlwZSA9PSAnaW5wdXRfd2l0aF91cGxvYWRmaWxlJyl7XHJcbiAgICAgICAgICAgIGxldCB0b29sdGlwTXNnID0gdGhpcy5nZXRGaWxlVG9vbHRpcE1zZyhmaWxlTGlzdCk7XHJcbiAgICAgICAgICAgIHJlc3BvbmNlLnRhYmxlRmllbGRzW2N1ckluZGV4XVsndG9vbHRpcE1zZyddID0gdG9vbHRpcE1zZztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJlc3BvbmNlLnRlbXBsYXRlRm9ybS5jb250cm9sc1tjdXJGaWVsZE5hbWVdLnNldFZhbHVlKGZpbGVOYW1lKTtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIHJlc3BvbmNlLnRlbXBsYXRlRm9ybS5jb250cm9sc1tjdXJGaWVsZE5hbWVdLnNldFZhbHVlKCcnKTtcclxuICAgICAgICAgIGlmKGN1ckZpbGVVcGxvYWRGaWVsZC50eXBlID09ICdpbnB1dF93aXRoX3VwbG9hZGZpbGUnKXtcclxuICAgICAgICAgICAgcmVzcG9uY2UudGFibGVGaWVsZHNbY3VySW5kZXhdWyd0b29sdGlwTXNnJ10gPSAnJztcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiByZXNwb25jZTtcclxuICB9XHJcbiAgcmVtb3ZlQXR0YWNoZWREYXRhRnJvbUxpc3QocGFyZW50OmFueSxjaGlsZDphbnksaW5kZXg6YW55LGRhdGFMaXN0Rm9yVXBsb2FkOmFueSl7XHJcbiAgICBsZXQgZmllbGROYW1lID0gY2hpbGQuZmllbGRfbmFtZTtcclxuICAgIGlmKHBhcmVudCAmJiBwYXJlbnQgIT0gJycpe1xyXG4gICAgICBsZXQgY3VzdG1pc2VkS2V5ID0gdGhpcy5jb21tb25GdW5jdGlvblNlcnZpY2UuY3VzdG1pemVkS2V5KHBhcmVudCk7XHJcbiAgICAgIGRhdGFMaXN0Rm9yVXBsb2FkW2N1c3RtaXNlZEtleV1bZmllbGROYW1lXS5zcGxpY2UoaW5kZXgsMSk7XHJcbiAgICAgICAgICB9ZWxzZXtcclxuICAgICAgZGF0YUxpc3RGb3JVcGxvYWRbZmllbGROYW1lXS5zcGxpY2UoaW5kZXgsMSlcclxuICAgIH1cclxuICAgIHJldHVybiBkYXRhTGlzdEZvclVwbG9hZDtcclxuICB9XHJcblxyXG5cclxufVxyXG4iXX0=
|