@hmcts/ccpay-web-component 6.1.3 → 6.1.4
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.
|
@@ -1,42 +1,49 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as ExcelJS from 'exceljs';
|
|
2
3
|
import * as FileSaver from 'file-saver';
|
|
3
|
-
import * as XLSX from 'xlsx';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
const EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';
|
|
6
6
|
const EXCEL_EXTENSION = '.xlsx';
|
|
7
7
|
export class XlFileService {
|
|
8
8
|
constructor() { }
|
|
9
9
|
exportAsExcelFile(json, excelFileName) {
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
var workbook = new ExcelJS.Workbook();
|
|
11
|
+
var worksheet = workbook.addWorksheet(excelFileName);
|
|
12
|
+
var headers = [];
|
|
12
13
|
if (excelFileName.match('Data_Loss') !== null) {
|
|
13
|
-
|
|
14
|
+
headers = ['loss_resp', 'payment_asset_dcn', 'env_ref', 'env_item', 'resp_service_id', 'resp_service_name', 'date_banked', 'bgc_batch', 'payment_method', 'amount'];
|
|
14
15
|
worksheet = this.setDataLossReportHeaders(worksheet);
|
|
15
16
|
worksheet = this.autoFitColumns(worksheet, json);
|
|
17
|
+
worksheet = this.addRowData(worksheet, json, headers);
|
|
16
18
|
}
|
|
17
19
|
else if (excelFileName.match('Unprocessed') !== null) {
|
|
18
|
-
|
|
20
|
+
headers = ['resp_service_id', 'resp_service_name', 'exception_ref', 'ccd_ref', 'date_banked', 'bgc_batch', 'payment_asset_dcn', 'env_ref', 'env_item', 'payment_method', 'amount'];
|
|
19
21
|
worksheet = this.setUnprocessedReportHeaders(worksheet);
|
|
20
22
|
worksheet = this.autoFitColumns(worksheet, json);
|
|
23
|
+
worksheet = this.addRowData(worksheet, json, headers);
|
|
21
24
|
}
|
|
22
25
|
else if (excelFileName.match('Processed_Unallocated') !== null) {
|
|
23
|
-
|
|
26
|
+
headers = ['resp_service_id', 'resp_service_name', 'allocation_status', 'receiving_office', 'allocation_reason', 'ccd_exception_reference', 'ccd_case_reference', 'payment_asset_dcn', 'env_ref', 'env_item', 'date_banked', 'bgc_batch', 'payment_method', 'amount'];
|
|
24
27
|
worksheet = this.setProcessedUnallocatedReportHeaders(worksheet);
|
|
25
28
|
worksheet = this.autoFitColumns(worksheet, json);
|
|
29
|
+
worksheet = this.addRowData(worksheet, json, headers);
|
|
26
30
|
}
|
|
27
31
|
else if (excelFileName.match('Payment failure') !== null) {
|
|
28
|
-
|
|
32
|
+
headers = ['payment_reference', 'ccd_reference', 'document_control_number', 'org_id', 'service_name', 'failure_reference', 'failure_reason', 'disputed_amount', 'event_name', 'event_date', 'representment_status', 'representment_date', 'refund_reference', 'refund_amount', 'refund_date'];
|
|
29
33
|
worksheet = this.setPaymentFailureReportHeaders(worksheet);
|
|
30
34
|
worksheet = this.autoFitColumns(worksheet, json);
|
|
35
|
+
worksheet = this.addRowData(worksheet, json, headers);
|
|
31
36
|
}
|
|
32
37
|
else {
|
|
33
|
-
|
|
38
|
+
headers = ['resp_service_id', 'resp_service_name', 'surplus_shortfall', 'balance', 'payment_amount', 'ccd_case_reference', 'ccd_exception_reference', 'processed_date', 'reason', 'explanation', 'user_name'];
|
|
34
39
|
worksheet = this.setShortFallReportHeaders(worksheet);
|
|
35
40
|
worksheet = this.autoFitColumns(worksheet, json);
|
|
41
|
+
worksheet = this.addRowData(worksheet, json, headers);
|
|
36
42
|
}
|
|
37
|
-
workbook
|
|
38
|
-
|
|
39
|
-
|
|
43
|
+
workbook.xlsx.writeBuffer().then((buffer) => {
|
|
44
|
+
const blob = new Blob([buffer], { type: EXCEL_TYPE });
|
|
45
|
+
FileSaver.saveAs(blob, `${excelFileName + EXCEL_EXTENSION}`);
|
|
46
|
+
});
|
|
40
47
|
}
|
|
41
48
|
autoFitColumns(worksheet, json) {
|
|
42
49
|
let objectMaxLength = [];
|
|
@@ -59,95 +66,99 @@ export class XlFileService {
|
|
|
59
66
|
ColWidth.push({ 'width': +objectMaxLength[j] });
|
|
60
67
|
}
|
|
61
68
|
}
|
|
62
|
-
worksheet
|
|
69
|
+
worksheet.columns = ColWidth;
|
|
70
|
+
return worksheet;
|
|
71
|
+
}
|
|
72
|
+
addRowData(worksheet, json, headers) {
|
|
73
|
+
for (let i = 0; i < headers.length; i++) {
|
|
74
|
+
worksheet.columns[i].key = headers[i];
|
|
75
|
+
}
|
|
76
|
+
let obj = Object;
|
|
77
|
+
for (let i = 0; i < json.length; i++) {
|
|
78
|
+
worksheet.addRow(json[i]);
|
|
79
|
+
}
|
|
63
80
|
return worksheet;
|
|
64
81
|
}
|
|
65
82
|
setDataLossReportHeaders(worksheet) {
|
|
66
|
-
worksheet.A1.
|
|
67
|
-
worksheet.B1.
|
|
68
|
-
worksheet.C1.
|
|
69
|
-
worksheet.D1.
|
|
70
|
-
worksheet.E1.
|
|
71
|
-
worksheet.F1.
|
|
72
|
-
worksheet.G1.
|
|
73
|
-
worksheet.H1.
|
|
74
|
-
worksheet.I1.
|
|
75
|
-
worksheet.J1.
|
|
83
|
+
worksheet.getCell('A1').value = "Loss_Resp";
|
|
84
|
+
worksheet.getCell('B1').value = "Payment_Asset_DCN";
|
|
85
|
+
worksheet.getCell('C1').value = "Envelope_Ref";
|
|
86
|
+
worksheet.getCell('D1').value = "Envelope_Item";
|
|
87
|
+
worksheet.getCell('E1').value = "Resp_Service ID";
|
|
88
|
+
worksheet.getCell('F1').value = "Resp_Service Name";
|
|
89
|
+
worksheet.getCell('G1').value = "Date_Banked";
|
|
90
|
+
worksheet.getCell('H1').value = "BGC_Batch";
|
|
91
|
+
worksheet.getCell('I1').value = "Payment_Method";
|
|
92
|
+
worksheet.getCell('J1').value = "Amount";
|
|
76
93
|
return worksheet;
|
|
77
94
|
}
|
|
78
95
|
setUnprocessedReportHeaders(worksheet) {
|
|
79
|
-
worksheet.A1.
|
|
80
|
-
worksheet.B1.
|
|
81
|
-
worksheet.C1.
|
|
82
|
-
worksheet.D1.
|
|
83
|
-
worksheet.E1.
|
|
84
|
-
worksheet.F1.
|
|
85
|
-
worksheet.G1.
|
|
86
|
-
worksheet.H1.
|
|
87
|
-
worksheet.I1.
|
|
88
|
-
worksheet.J1.
|
|
89
|
-
worksheet.K1.
|
|
96
|
+
worksheet.getCell('A1').value = "Resp_Service ID";
|
|
97
|
+
worksheet.getCell('B1').value = "Resp_Service Name";
|
|
98
|
+
worksheet.getCell('C1').value = "Exception_Ref";
|
|
99
|
+
worksheet.getCell('D1').value = "CCD_Ref";
|
|
100
|
+
worksheet.getCell('E1').value = "Date_Banked";
|
|
101
|
+
worksheet.getCell('F1').value = "BGC_Batch";
|
|
102
|
+
worksheet.getCell('G1').value = "Payment_Asset_DCN";
|
|
103
|
+
worksheet.getCell('H1').value = "Envelope_Ref";
|
|
104
|
+
worksheet.getCell('I1').value = "Envelope_Item";
|
|
105
|
+
worksheet.getCell('J1').value = "Payment_Method";
|
|
106
|
+
worksheet.getCell('K1').value = "Amount";
|
|
90
107
|
return worksheet;
|
|
91
108
|
}
|
|
92
109
|
setProcessedUnallocatedReportHeaders(worksheet) {
|
|
93
|
-
worksheet.A1.
|
|
94
|
-
worksheet.B1.
|
|
95
|
-
worksheet.C1.
|
|
96
|
-
worksheet.D1.
|
|
97
|
-
worksheet.E1.
|
|
98
|
-
worksheet.F1.
|
|
99
|
-
worksheet.G1.
|
|
100
|
-
worksheet.H1.
|
|
101
|
-
worksheet.I1.
|
|
102
|
-
worksheet.J1.
|
|
103
|
-
worksheet.K1.
|
|
104
|
-
worksheet.L1.
|
|
105
|
-
worksheet.M1.
|
|
106
|
-
worksheet.N1.
|
|
110
|
+
worksheet.getCell('A1').value = "Resp_Service ID";
|
|
111
|
+
worksheet.getCell('B1').value = "Resp_Service Name";
|
|
112
|
+
worksheet.getCell('C1').value = "Allocation_Status";
|
|
113
|
+
worksheet.getCell('D1').value = "Receiving_Office";
|
|
114
|
+
worksheet.getCell('E1').value = "Allocation_Reason";
|
|
115
|
+
worksheet.getCell('F1').value = "CCD_Exception_Ref";
|
|
116
|
+
worksheet.getCell('G1').value = "CCD_Case_Ref";
|
|
117
|
+
worksheet.getCell('H1').value = "Payment_Asset_DCN";
|
|
118
|
+
worksheet.getCell('I1').value = "Envelope_Ref";
|
|
119
|
+
worksheet.getCell('J1').value = "Envelope_Item";
|
|
120
|
+
worksheet.getCell('K1').value = "Date_Banked";
|
|
121
|
+
worksheet.getCell('L1').value = "BGC_Batch";
|
|
122
|
+
worksheet.getCell('M1').value = "Payment_Method";
|
|
123
|
+
worksheet.getCell('N1').value = "Amount";
|
|
107
124
|
return worksheet;
|
|
108
125
|
}
|
|
109
126
|
setPaymentFailureReportHeaders(worksheet) {
|
|
110
|
-
worksheet.A1.
|
|
111
|
-
worksheet.B1.
|
|
112
|
-
worksheet.C1.
|
|
113
|
-
worksheet.D1.
|
|
114
|
-
worksheet.E1.
|
|
115
|
-
worksheet.F1.
|
|
116
|
-
worksheet.G1.
|
|
117
|
-
worksheet.H1.
|
|
118
|
-
worksheet.I1.
|
|
119
|
-
worksheet.J1.
|
|
120
|
-
worksheet.K1.
|
|
121
|
-
worksheet.L1.
|
|
122
|
-
worksheet.M1.
|
|
123
|
-
worksheet.N1.
|
|
124
|
-
worksheet.O1.
|
|
127
|
+
worksheet.getCell('A1').value = "Payment reference";
|
|
128
|
+
worksheet.getCell('B1').value = "CCD reference";
|
|
129
|
+
worksheet.getCell('C1').value = "Document Control Number";
|
|
130
|
+
worksheet.getCell('D1').value = "OrgID";
|
|
131
|
+
worksheet.getCell('E1').value = "Service name";
|
|
132
|
+
worksheet.getCell('F1').value = "Failure reference";
|
|
133
|
+
worksheet.getCell('G1').value = "Failure reason";
|
|
134
|
+
worksheet.getCell('H1').value = "Disputed amount";
|
|
135
|
+
worksheet.getCell('I1').value = "Event name";
|
|
136
|
+
worksheet.getCell('J1').value = "Event date";
|
|
137
|
+
worksheet.getCell('K1').value = "Representment status";
|
|
138
|
+
worksheet.getCell('L1').value = "Representment date";
|
|
139
|
+
worksheet.getCell('M1').value = "Refund reference";
|
|
140
|
+
worksheet.getCell('N1').value = "Refund amount";
|
|
141
|
+
worksheet.getCell('O1').value = "Refund date";
|
|
125
142
|
return worksheet;
|
|
126
143
|
}
|
|
127
144
|
setShortFallReportHeaders(worksheet) {
|
|
128
|
-
worksheet.A1.
|
|
129
|
-
worksheet.B1.
|
|
130
|
-
worksheet.C1.
|
|
131
|
-
worksheet.D1.
|
|
132
|
-
worksheet.E1.
|
|
133
|
-
worksheet.F1.
|
|
134
|
-
worksheet.G1.
|
|
135
|
-
worksheet.H1.
|
|
136
|
-
worksheet.I1.
|
|
137
|
-
worksheet.J1.
|
|
138
|
-
worksheet.K1.
|
|
145
|
+
worksheet.getCell('A1').value = "Resp_Service ID";
|
|
146
|
+
worksheet.getCell('B1').value = "Resp_Service Name";
|
|
147
|
+
worksheet.getCell('C1').value = "Over Payment_Under Payment";
|
|
148
|
+
worksheet.getCell('D1').value = "Balance";
|
|
149
|
+
worksheet.getCell('E1').value = "Payment_Amount";
|
|
150
|
+
worksheet.getCell('F1').value = "CCD_Case_Ref";
|
|
151
|
+
worksheet.getCell('G1').value = "Exception_Ref";
|
|
152
|
+
worksheet.getCell('H1').value = "Processed_Date";
|
|
153
|
+
worksheet.getCell('I1').value = "Reason";
|
|
154
|
+
worksheet.getCell('J1').value = "Explanation";
|
|
155
|
+
worksheet.getCell('K1').value = "Updated Name";
|
|
139
156
|
return worksheet;
|
|
140
157
|
}
|
|
141
|
-
saveAsExcelFile(buffer, fileName) {
|
|
142
|
-
const data = new Blob([buffer], {
|
|
143
|
-
type: EXCEL_TYPE
|
|
144
|
-
});
|
|
145
|
-
FileSaver.saveAs(data, fileName + EXCEL_EXTENSION);
|
|
146
|
-
}
|
|
147
158
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: XlFileService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
148
159
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: XlFileService });
|
|
149
160
|
}
|
|
150
161
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: XlFileService, decorators: [{
|
|
151
162
|
type: Injectable
|
|
152
163
|
}], ctorParameters: function () { return []; } });
|
|
153
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieGwtZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGF5bWVudC1saWIvc3JjL2xpYi9zZXJ2aWNlcy94bC1maWxlL3hsLWZpbGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sS0FBSyxTQUFTLE1BQU0sWUFBWSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDOztBQUk3QixNQUFNLFVBQVUsR0FBRyxpRkFBaUYsQ0FBQztBQUNyRyxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUM7QUFHaEMsTUFBTSxPQUFPLGFBQWE7SUFFeEIsZ0JBQWdCLENBQUM7SUFFVixpQkFBaUIsQ0FBQyxJQUFXLEVBQUUsYUFBcUI7UUFDekQsSUFBSSxTQUF5QixDQUFDO1FBQzlCLElBQUksUUFBdUIsQ0FBQztRQUM1QixJQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUksSUFBSSxFQUFDO1lBQzNDLFNBQVMsR0FBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUMsRUFBQyxNQUFNLEVBQUMsQ0FBQyxXQUFXLEVBQUMsbUJBQW1CLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxpQkFBaUIsRUFBQyxtQkFBbUIsRUFBQyxhQUFhLEVBQUMsV0FBVyxFQUFDLGdCQUFnQixFQUFDLFFBQVEsQ0FBQyxFQUFDLENBQUMsQ0FBQztZQUN0TSxTQUFTLEdBQUksSUFBSSxDQUFDLHdCQUF3QixDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3RELFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBQyxJQUFJLENBQUMsQ0FBQztTQUMvQzthQUFNLElBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSSxJQUFJLEVBQUM7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QUFDO0lBQ08seUJBQXlCLENBQUUsU0FBeUI7UUFDMUQsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLENBQUM7UUFDbkMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsbUJBQW1CLENBQUM7UUFDckMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsNEJBQTRCLENBQUM7UUFDOUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDO1FBQzNCLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLGdCQUFnQixDQUFDO1FBQ2xDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLGNBQWMsQ0FBQztRQUNoQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxlQUFlLENBQUM7UUFDakMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsZ0JBQWdCLENBQUM7UUFDbEMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLGFBQWEsQ0FBQztRQUMvQixTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxjQUFjLENBQUM7UUFDaEMsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVPLGVBQWUsQ0FBQyxNQUFXLEVBQUUsUUFBZ0I7UUFDakQsTUFBTSxJQUFJLEdBQVMsSUFBSSxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNwQyxJQUFJLEVBQUUsVUFBVTtTQUNqQixDQUFDLENBQUM7UUFDSCxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLEdBQUcsZUFBZSxDQUFDLENBQUM7SUFDckQsQ0FBQzt3R0FqSlUsYUFBYTs0R0FBYixhQUFhOzs0RkFBYixhQUFhO2tCQUR6QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgRmlsZVNhdmVyIGZyb20gJ2ZpbGUtc2F2ZXInO1xuaW1wb3J0ICogYXMgWExTWCBmcm9tICd4bHN4JztcbmltcG9ydCAqIGFzIFhMU1hTdHlsZSBmcm9tICd4bHN4LXN0eWxlJztcblxuXG5jb25zdCBFWENFTF9UWVBFID0gJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0O2NoYXJzZXQ9VVRGLTgnO1xuY29uc3QgRVhDRUxfRVhURU5TSU9OID0gJy54bHN4JztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFhsRmlsZVNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgcHVibGljIGV4cG9ydEFzRXhjZWxGaWxlKGpzb246IGFueVtdLCBleGNlbEZpbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBsZXQgd29ya3NoZWV0OiBYTFNYLldvcmtTaGVldDsgXG4gICAgbGV0IHdvcmtib29rOiBYTFNYLldvcmtCb29rOyBcbiAgICBpZihleGNlbEZpbGVOYW1lLm1hdGNoKCdEYXRhX0xvc3MnKSE9PSBudWxsKXtcbiAgICAgd29ya3NoZWV0ID0gIFhMU1gudXRpbHMuanNvbl90b19zaGVldChqc29uLHtoZWFkZXI6Wydsb3NzX3Jlc3AnLCdwYXltZW50X2Fzc2V0X2RjbicsJ2Vudl9yZWYnLCdlbnZfaXRlbScsJ3Jlc3Bfc2VydmljZV9pZCcsJ3Jlc3Bfc2VydmljZV9uYW1lJywnZGF0ZV9iYW5rZWQnLCdiZ2NfYmF0Y2gnLCdwYXltZW50X21ldGhvZCcsJ2Ftb3VudCddfSk7XG4gICAgIHdvcmtzaGVldCA9ICB0aGlzLnNldERhdGFMb3NzUmVwb3J0SGVhZGVycyh3b3Jrc2hlZXQpO1xuICAgICB3b3Jrc2hlZXQgPSB0aGlzLmF1dG9GaXRDb2x1bW5zKHdvcmtzaGVldCxqc29uKTtcbiAgICAgfSBlbHNlIGlmKGV4Y2VsRmlsZU5hbWUubWF0Y2goJ1VucHJvY2Vzc2VkJykhPT0gbnVsbCl7XG4gICAgIHdvcmtzaGVldCA9ICBYTFNYLnV0aWxzLmpzb25fdG9fc2hlZXQoanNvbix7aGVhZGVyOlsncmVzcF9zZXJ2aWNlX2lkJywncmVzcF9zZXJ2aWNlX25hbWUnLCdleGNlcHRpb25fcmVmJywnY2NkX3JlZicsJ2RhdGVfYmFua2VkJywnYmdjX2JhdGNoJywncGF5bWVudF9hc3NldF9kY24nLCdlbnZfcmVmJywnZW52X2l0ZW0nLCdwYXltZW50X21ldGhvZCcsJ2Ftb3VudCddfSk7XG4gICAgIHdvcmtzaGVldCA9ICB0aGlzLnNldFVucHJvY2Vzc2VkUmVwb3J0SGVhZGVycyh3b3Jrc2hlZXQpO1xuICAgICB3b3Jrc2hlZXQgPSB0aGlzLmF1dG9GaXRDb2x1bW5zKHdvcmtzaGVldCxqc29uKTtcbiAgICB9IGVsc2UgaWYoZXhjZWxGaWxlTmFtZS5tYXRjaCgnUHJvY2Vzc2VkX1VuYWxsb2NhdGVkJykhPT0gbnVsbCl7XG4gICAgICB3b3Jrc2hlZXQgPSAgWExTWC51dGlscy5qc29uX3RvX3NoZWV0KGpzb24se2hlYWRlcjpbJ3Jlc3Bfc2VydmljZV9pZCcsJ3Jlc3Bfc2VydmljZV9uYW1lJywnYWxsb2NhdGlvbl9zdGF0dXMnLCdyZWNlaXZpbmdfb2ZmaWNlJywnYWxsb2NhdGlvbl9yZWFzb24nLCdjY2RfZXhjZXB0aW9uX3JlZmVyZW5jZScsJ2NjZF9jYXNlX3JlZmVyZW5jZScsJ3BheW1lbnRfYXNzZXRfZGNuJywnZW52X3JlZicsJ2Vudl9pdGVtJywnZGF0ZV9iYW5rZWQnLCdiZ2NfYmF0Y2gnLCdwYXltZW50X21ldGhvZCcsJ2Ftb3VudCddfSk7XG4gICAgICB3b3Jrc2hlZXQgPSAgdGhpcy5zZXRQcm9jZXNzZWRVbmFsbG9jYXRlZFJlcG9ydEhlYWRlcnMod29ya3NoZWV0KTtcbiAgICAgIHdvcmtzaGVldCA9IHRoaXMuYXV0b0ZpdENvbHVtbnMod29ya3NoZWV0LGpzb24pO1xuICAgIH0gZWxzZSBpZihleGNlbEZpbGVOYW1lLm1hdGNoKCdQYXltZW50IGZhaWx1cmUnKSE9PSBudWxsKXtcbiAgICAgIHdvcmtzaGVldCA9ICBYTFNYLnV0aWxzLmpzb25fdG9fc2hlZXQoanNvbix7aGVhZGVyOlsncGF5bWVudF9yZWZlcmVuY2UnLCdjY2RfcmVmZXJlbmNlJywnZG9jdW1lbnRfY29udHJvbF9udW1iZXInLCdvcmdfaWQnLCdzZXJ2aWNlX25hbWUnLCdmYWlsdXJlX3JlZmVyZW5jZScsJ2ZhaWx1cmVfcmVhc29uJywnZGlzcHV0ZWRfYW1vdW50JywnZXZlbnRfbmFtZScsJ2V2ZW50X2RhdGUnLCdyZXByZXNlbnRtZW50X3N0YXR1cycsJ3JlcHJlc2VudG1lbnRfZGF0ZScsJ3JlZnVuZF9yZWZlcmVuY2UnLCdyZWZ1bmRfYW1vdW50JywncmVmdW5kX2RhdGUnXX0pO1xuICAgICAgd29ya3NoZWV0ID0gIHRoaXMuc2V0UGF5bWVudEZhaWx1cmVSZXBvcnRIZWFkZXJzKHdvcmtzaGVldCk7XG4gICAgICB3b3Jrc2hlZXQgPSB0aGlzLmF1dG9GaXRDb2x1bW5zKHdvcmtzaGVldCxqc29uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgd29ya3NoZWV0ID0gIFhMU1gudXRpbHMuanNvbl90b19zaGVldChqc29uLHtoZWFkZXI6WydyZXNwX3NlcnZpY2VfaWQnLCdyZXNwX3NlcnZpY2VfbmFtZScsJ3N1cnBsdXNfc2hvcnRmYWxsJywnYmFsYW5jZScsJ3BheW1lbnRfYW1vdW50JywnY2NkX2Nhc2VfcmVmZXJlbmNlJywgJ2NjZF9leGNlcHRpb25fcmVmZXJlbmNlJywgJ3Byb2Nlc3NlZF9kYXRlJywgJ3JlYXNvbicsICdleHBsYW5hdGlvbicsICd1c2VyX25hbWUnXX0pO1xuICAgICAgd29ya3NoZWV0ID0gIHRoaXMuc2V0U2hvcnRGYWxsUmVwb3J0SGVhZGVycyh3b3Jrc2hlZXQpO1xuICAgICAgd29ya3NoZWV0ID0gdGhpcy5hdXRvRml0Q29sdW1ucyh3b3Jrc2hlZXQsanNvbik7XG4gICAgfVxuICAgIHdvcmtib29rID0geyBTaGVldHM6IHsgJ2RhdGEnOiB3b3Jrc2hlZXQgfSwgU2hlZXROYW1lczogWydkYXRhJ10gfTtcbiAgICBjb25zdCBleGNlbEJ1ZmZlcjogYW55ID0gWExTWC53cml0ZSh3b3JrYm9vaywgeyBib29rVHlwZTogJ3hsc3gnLCB0eXBlOiAnYXJyYXknIH0pO1xuICAgIHRoaXMuc2F2ZUFzRXhjZWxGaWxlKGV4Y2VsQnVmZmVyLCBleGNlbEZpbGVOYW1lKTtcbiAgfVxuXG5cbnByaXZhdGUgYXV0b0ZpdENvbHVtbnMgKHdvcmtzaGVldDogWExTWC5Xb3JrU2hlZXQsanNvbjphbnkpIDogWExTWC5Xb3JrU2hlZXQge1xuICBsZXQgb2JqZWN0TWF4TGVuZ3RoID0gW107IFxuICBsZXQgQ29sV2lkdGggPSBbXTtcbiAgbGV0IG9iaiA9IDxhbnk+T2JqZWN0O1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwganNvbi5sZW5ndGg7IGkrKykge1xuICAgICAgbGV0IHZhbHVlID0gb2JqLnZhbHVlcyhqc29uW2ldKTtcbiAgICAgIGxldCBrZXkgPSBvYmoua2V5cyhqc29uW2ldKTtcbiAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgdmFsdWUubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgaWYodmFsdWVbal0gPT09IG51bGwpe1xuICAgICAgICAgIHZhbHVlW2pdID0gJyc7XG4gICAgICAgIH1cbiAgICAgICAgb2JqZWN0TWF4TGVuZ3RoW2pdID1cbiAgICAgICAgICBrZXlbal0ubGVuZ3RoID49IHZhbHVlW2pdLmxlbmd0aFxuICAgICAgICAgICAgPyBrZXlbal0ubGVuZ3RoKzJcbiAgICAgICAgICAgIDogdmFsdWVbal0ubGVuZ3RoKzE7XG4gICAgICAgICAgICBpZiggdmFsdWVbal0ubGVuZ3RoID09PSB1bmRlZmluZWQpe1xuICAgICAgICAgICAgICBvYmplY3RNYXhMZW5ndGhbal0gPSAga2V5W2pdLmxlbmd0aCsyO1xuICAgICAgICAgICAgfVxuICAgICAgQ29sV2lkdGgucHVzaCh7J3dpZHRoJzogK29iamVjdE1heExlbmd0aFtqXX0pO1xuICAgICAgfVxuICAgIH1cbiAgICB3b3Jrc2hlZXRbJyFjb2xzJ10gPSBDb2xXaWR0aDtcbiAgICByZXR1cm4gd29ya3NoZWV0O1xufVxuXG5cbnByaXZhdGUgc2V0RGF0YUxvc3NSZXBvcnRIZWFkZXJzICh3b3Jrc2hlZXQ6IFhMU1guV29ya1NoZWV0KTogWExTWC5Xb3JrU2hlZXQge1xuICB3b3Jrc2hlZXQuQTEudiA9IFwiTG9zc19SZXNwXCI7XG4gIHdvcmtzaGVldC5CMS52ID0gXCJQYXltZW50X0Fzc2V0X0RDTlwiO1xuICB3b3Jrc2hlZXQuQzEudiA9IFwiRW52ZWxvcGVfUmVmXCI7XG4gIHdvcmtzaGVldC5EMS52ID0gXCJFbnZlbG9wZV9JdGVtXCI7XG4gIHdvcmtzaGVldC5FMS52ID0gXCJSZXNwX1NlcnZpY2UgSURcIjtcbiAgd29ya3NoZWV0LkYxLnYgPSBcIlJlc3BfU2VydmljZSBOYW1lXCI7XG4gIHdvcmtzaGVldC5HMS52ID0gXCJEYXRlX0JhbmtlZFwiO1xuICB3b3Jrc2hlZXQuSDEudiA9IFwiQkdDX0JhdGNoXCI7XG4gIHdvcmtzaGVldC5JMS52ID0gXCJQYXltZW50X01ldGhvZFwiO1xuICB3b3Jrc2hlZXQuSjEudiA9IFwiQW1vdW50XCI7XG4gIHJldHVybiB3b3Jrc2hlZXQ7XG59XG5cbnByaXZhdGUgc2V0VW5wcm9jZXNzZWRSZXBvcnRIZWFkZXJzICh3b3Jrc2hlZXQ6IFhMU1guV29ya1NoZWV0KTogWExTWC5Xb3JrU2hlZXQge1xuICB3b3Jrc2hlZXQuQTEudiA9IFwiUmVzcF9TZXJ2aWNlIElEXCI7XG4gIHdvcmtzaGVldC5CMS52ID0gXCJSZXNwX1NlcnZpY2UgTmFtZVwiO1xuICB3b3Jrc2hlZXQuQzEudiA9IFwiRXhjZXB0aW9uX1JlZlwiO1xuICB3b3Jrc2hlZXQuRDEudiA9IFwiQ0NEX1JlZlwiO1xuICB3b3Jrc2hlZXQuRTEudiA9IFwiRGF0ZV9CYW5rZWRcIjtcbiAgd29ya3NoZWV0LkYxLnYgPSBcIkJHQ19CYXRjaFwiO1xuICB3b3Jrc2hlZXQuRzEudiA9IFwiUGF5bWVudF9Bc3NldF9EQ05cIjtcbiAgd29ya3NoZWV0LkgxLnYgPSBcIkVudmVsb3BlX1JlZlwiO1xuICB3b3Jrc2hlZXQuSTEudiA9IFwiRW52ZWxvcGVfSXRlbVwiO1xuICB3b3Jrc2hlZXQuSjEudiA9IFwiUGF5bWVudF9NZXRob2RcIjtcbiAgd29ya3NoZWV0LksxLnYgPSBcIkFtb3VudFwiO1xuICByZXR1cm4gd29ya3NoZWV0O1xufVxuXG5wcml2YXRlIHNldFByb2Nlc3NlZFVuYWxsb2NhdGVkUmVwb3J0SGVhZGVycyAod29ya3NoZWV0OiBYTFNYLldvcmtTaGVldCk6IFhMU1guV29ya1NoZWV0IHtcbiAgd29ya3NoZWV0LkExLnYgPSBcIlJlc3BfU2VydmljZSBJRFwiO1xuICB3b3Jrc2hlZXQuQjEudiA9IFwiUmVzcF9TZXJ2aWNlIE5hbWVcIjtcbiAgd29ya3NoZWV0LkMxLnYgPSBcIkFsbG9jYXRpb25fU3RhdHVzXCI7XG4gIHdvcmtzaGVldC5EMS52ID0gXCJSZWNlaXZpbmdfT2ZmaWNlXCI7XG4gIHdvcmtzaGVldC5FMS52ID0gXCJBbGxvY2F0aW9uX1JlYXNvblwiO1xuICB3b3Jrc2hlZXQuRjEudiA9IFwiQ0NEX0V4Y2VwdGlvbl9SZWZcIjtcbiAgd29ya3NoZWV0LkcxLnYgPSBcIkNDRF9DYXNlX1JlZlwiO1xuICB3b3Jrc2hlZXQuSDEudiA9IFwiUGF5bWVudF9Bc3NldF9EQ05cIjtcbiAgd29ya3NoZWV0LkkxLnYgPSBcIkVudmVsb3BlX1JlZlwiO1xuICB3b3Jrc2hlZXQuSjEudiA9IFwiRW52ZWxvcGVfSXRlbVwiO1xuICB3b3Jrc2hlZXQuSzEudiA9IFwiRGF0ZV9CYW5rZWRcIjtcbiAgd29ya3NoZWV0LkwxLnYgPSBcIkJHQ19CYXRjaFwiO1xuICB3b3Jrc2hlZXQuTTEudiA9IFwiUGF5bWVudF9NZXRob2RcIjtcbiAgd29ya3NoZWV0Lk4xLnYgPSBcIkFtb3VudFwiO1xuICByZXR1cm4gd29ya3NoZWV0O1xufVxuXG5wcml2YXRlIHNldFBheW1lbnRGYWlsdXJlUmVwb3J0SGVhZGVycyAod29ya3NoZWV0OiBYTFNYLldvcmtTaGVldCk6IFhMU1guV29ya1NoZWV0IHtcbiAgd29ya3NoZWV0LkExLnYgPSBcIlBheW1lbnQgcmVmZXJlbmNlXCI7XG4gIHdvcmtzaGVldC5CMS52ID0gXCJDQ0QgcmVmZXJlbmNlXCI7XG4gIHdvcmtzaGVldC5DMS52ID0gXCJEb2N1bWVudCBDb250cm9sIE51bWJlclwiO1xuICB3b3Jrc2hlZXQuRDEudiA9IFwiT3JnSURcIjtcbiAgd29ya3NoZWV0LkUxLnYgPSBcIlNlcnZpY2UgbmFtZVwiO1xuICB3b3Jrc2hlZXQuRjEudiA9IFwiRmFpbHVyZSByZWZlcmVuY2VcIjtcbiAgd29ya3NoZWV0LkcxLnYgPSBcIkZhaWx1cmUgcmVhc29uXCI7XG4gIHdvcmtzaGVldC5IMS52ID0gXCJEaXNwdXRlZCBhbW91bnRcIjtcbiAgd29ya3NoZWV0LkkxLnYgPSBcIkV2ZW50IG5hbWVcIjtcbiAgd29ya3NoZWV0LkoxLnYgPSBcIkV2ZW50IGRhdGVcIjtcbiAgd29ya3NoZWV0LksxLnYgPSBcIlJlcHJlc2VudG1lbnQgc3RhdHVzXCI7XG4gIHdvcmtzaGVldC5MMS52ID0gXCJSZXByZXNlbnRtZW50IGRhdGVcIjtcbiAgd29ya3NoZWV0Lk0xLnYgPSBcIlJlZnVuZCByZWZlcmVuY2VcIjtcbiAgd29ya3NoZWV0Lk4xLnYgPSBcIlJlZnVuZCBhbW91bnRcIjtcbiAgd29ya3NoZWV0Lk8xLnYgPSBcIlJlZnVuZCBkYXRlXCI7XG4gIHJldHVybiB3b3Jrc2hlZXQ7XG59XG5wcml2YXRlIHNldFNob3J0RmFsbFJlcG9ydEhlYWRlcnMgKHdvcmtzaGVldDogWExTWC5Xb3JrU2hlZXQpOiBYTFNYLldvcmtTaGVldCB7XG4gIHdvcmtzaGVldC5BMS52ID0gXCJSZXNwX1NlcnZpY2UgSURcIjtcbiAgd29ya3NoZWV0LkIxLnYgPSBcIlJlc3BfU2VydmljZSBOYW1lXCI7XG4gIHdvcmtzaGVldC5DMS52ID0gXCJPdmVyIFBheW1lbnRfVW5kZXIgUGF5bWVudFwiO1xuICB3b3Jrc2hlZXQuRDEudiA9IFwiQmFsYW5jZVwiO1xuICB3b3Jrc2hlZXQuRTEudiA9IFwiUGF5bWVudF9BbW91bnRcIjtcbiAgd29ya3NoZWV0LkYxLnYgPSBcIkNDRF9DYXNlX1JlZlwiO1xuICB3b3Jrc2hlZXQuRzEudiA9IFwiRXhjZXB0aW9uX1JlZlwiO1xuICB3b3Jrc2hlZXQuSDEudiA9IFwiUHJvY2Vzc2VkX0RhdGVcIjtcbiAgd29ya3NoZWV0LkkxLnYgPSBcIlJlYXNvblwiO1xuICB3b3Jrc2hlZXQuSjEudiA9IFwiRXhwbGFuYXRpb25cIjtcbiAgd29ya3NoZWV0LksxLnYgPSBcIlVwZGF0ZWQgTmFtZVwiO1xuICByZXR1cm4gd29ya3NoZWV0O1xufVxuXG5wcml2YXRlIHNhdmVBc0V4Y2VsRmlsZShidWZmZXI6IGFueSwgZmlsZU5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGRhdGE6IEJsb2IgPSBuZXcgQmxvYihbYnVmZmVyXSwge1xuICAgICAgdHlwZTogRVhDRUxfVFlQRVxuICAgIH0pO1xuICAgIEZpbGVTYXZlci5zYXZlQXMoZGF0YSwgZmlsZU5hbWUgKyBFWENFTF9FWFRFTlNJT04pO1xuICB9XG59XG4iXX0=
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieGwtZmlsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcGF5bWVudC1saWIvc3JjL2xpYi9zZXJ2aWNlcy94bC1maWxlL3hsLWZpbGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sS0FBSyxPQUFPLE1BQU0sU0FBUyxDQUFDO0FBQ25DLE9BQU8sS0FBSyxTQUFTLE1BQU0sWUFBWSxDQUFDOztBQUV4QyxNQUFNLFVBQVUsR0FBRyxpRkFBaUYsQ0FBQztBQUNyRyxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUM7QUFHaEMsTUFBTSxPQUFPLGFBQWE7SUFDeEIsZ0JBQWdCLENBQUM7SUFFVixpQkFBaUIsQ0FBQyxJQUFXLEVBQUUsYUFBcUI7UUFDekQsSUFBSSxRQUFRLEdBQUcsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdEMsSUFBSSxTQUFTLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNyRCxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFFakIsSUFBRyxhQUFhLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFJLElBQUksRUFBQztZQUMxQyxPQUFPLEdBQUcsQ0FBQyxXQUFXLEVBQUMsbUJBQW1CLEVBQUMsU0FBUyxFQUFDLFVBQVUsRUFBQyxpQkFBaUIsRUFBQyxtQkFBbUIsRUFBQyxhQUFhLEVBQUMsV0FBVyxFQUFDLGdCQUFnQixFQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzNKLFNBQVMsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDckQsU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hELFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxD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QztRQUNqRCxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUM7UUFDekMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsYUFBYSxDQUFDO1FBQzlDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxHQUFHLGNBQWMsQ0FBQztRQUMvQyxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO3dHQTVKVSxhQUFhOzRHQUFiLGFBQWE7OzRGQUFiLGFBQWE7a0JBRHpCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgKiBhcyBFeGNlbEpTIGZyb20gJ2V4Y2VsanMnO1xuaW1wb3J0ICogYXMgRmlsZVNhdmVyIGZyb20gJ2ZpbGUtc2F2ZXInO1xuXG5jb25zdCBFWENFTF9UWVBFID0gJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0O2NoYXJzZXQ9VVRGLTgnO1xuY29uc3QgRVhDRUxfRVhURU5TSU9OID0gJy54bHN4JztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFhsRmlsZVNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIHB1YmxpYyBleHBvcnRBc0V4Y2VsRmlsZShqc29uOiBhbnlbXSwgZXhjZWxGaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdmFyIHdvcmtib29rID0gbmV3IEV4Y2VsSlMuV29ya2Jvb2soKTtcbiAgICB2YXIgd29ya3NoZWV0ID0gd29ya2Jvb2suYWRkV29ya3NoZWV0KGV4Y2VsRmlsZU5hbWUpO1xuICAgIHZhciBoZWFkZXJzID0gW107XG5cbiAgICBpZihleGNlbEZpbGVOYW1lLm1hdGNoKCdEYXRhX0xvc3MnKSE9PSBudWxsKXtcbiAgICAgIGhlYWRlcnMgPSBbJ2xvc3NfcmVzcCcsJ3BheW1lbnRfYXNzZXRfZGNuJywnZW52X3JlZicsJ2Vudl9pdGVtJywncmVzcF9zZXJ2aWNlX2lkJywncmVzcF9zZXJ2aWNlX25hbWUnLCdkYXRlX2JhbmtlZCcsJ2JnY19iYXRjaCcsJ3BheW1lbnRfbWV0aG9kJywnYW1vdW50J107XG4gICAgICB3b3Jrc2hlZXQgPSB0aGlzLnNldERhdGFMb3NzUmVwb3J0SGVhZGVycyh3b3Jrc2hlZXQpO1xuICAgICAgd29ya3NoZWV0ID0gdGhpcy5hdXRvRml0Q29sdW1ucyh3b3Jrc2hlZXQsanNvbik7XG4gICAgICB3b3Jrc2hlZXQgPSB0aGlzLmFkZFJvd0RhdGEod29ya3NoZWV0LGpzb24saGVhZGVycyk7XG4gICAgfSBlbHNlIGlmKGV4Y2VsRmlsZU5hbWUubWF0Y2goJ1VucHJvY2Vzc2VkJykhPT0gbnVsbCl7XG4gICAgICBoZWFkZXJzID0gWydyZXNwX3NlcnZpY2VfaWQnLCdyZXNwX3NlcnZpY2VfbmFtZScsJ2V4Y2VwdGlvbl9yZWYnLCdjY2RfcmVmJywnZGF0ZV9iYW5rZWQnLCdiZ2NfYmF0Y2gnLCdwYXltZW50X2Fzc2V0X2RjbicsJ2Vudl9yZWYnLCdlbnZfaXRlbScsJ3BheW1lbnRfbWV0aG9kJywnYW1vdW50J107XG4gICAgICB3b3Jrc2hlZXQgPSAgdGhpcy5zZXRVbnByb2Nlc3NlZFJlcG9ydEhlYWRlcnMod29ya3NoZWV0KTtcbiAgICAgIHdvcmtzaGVldCA9IHRoaXMuYXV0b0ZpdENvbHVtbnMod29ya3NoZWV0LGpzb24pO1xuICAgICAgd29ya3NoZWV0ID0gIHRoaXMuYWRkUm93RGF0YSh3b3Jrc2hlZXQsanNvbixoZWFkZXJzKTtcbiAgICB9IGVsc2UgaWYoZXhjZWxGaWxlTmFtZS5tYXRjaCgnUHJvY2Vzc2VkX1VuYWxsb2NhdGVkJykhPT0gbnVsbCl7XG4gICAgICBoZWFkZXJzID0gWydyZXNwX3NlcnZpY2VfaWQnLCdyZXNwX3NlcnZpY2VfbmFtZScsJ2FsbG9jYXRpb25fc3RhdHVzJywncmVjZWl2aW5nX29mZmljZScsJ2FsbG9jYXRpb25fcmVhc29uJywnY2NkX2V4Y2VwdGlvbl9yZWZlcmVuY2UnLCdjY2RfY2FzZV9yZWZlcmVuY2UnLCdwYXltZW50X2Fzc2V0X2RjbicsJ2Vudl9yZWYnLCdlbnZfaXRlbScsJ2RhdGVfYmFua2VkJywnYmdjX2JhdGNoJywncGF5bWVudF9tZXRob2QnLCdhbW91bnQnXTtcbiAgICAgIHdvcmtzaGVldCA9ICB0aGlzLnNldFByb2Nlc3NlZFVuYWxsb2NhdGVkUmVwb3J0SGVhZGVycyh3b3Jrc2hlZXQpO1xuICAgICAgd29ya3NoZWV0ID0gdGhpcy5hdXRvRml0Q29sdW1ucyh3b3Jrc2hlZXQsanNvbik7XG4gICAgICB3b3Jrc2hlZXQgPSAgdGhpcy5hZGRSb3dEYXRhKHdvcmtzaGVldCxqc29uLGhlYWRlcnMpO1xuICAgIH0gZWxzZSBpZihleGNlbEZpbGVOYW1lLm1hdGNoKCdQYXltZW50IGZhaWx1cmUnKSE9PSBudWxsKXtcbiAgICAgIGhlYWRlcnMgPSBbJ3BheW1lbnRfcmVmZXJlbmNlJywnY2NkX3JlZmVyZW5jZScsJ2RvY3VtZW50X2NvbnRyb2xfbnVtYmVyJywnb3JnX2lkJywnc2VydmljZV9uYW1lJywnZmFpbHVyZV9yZWZlcmVuY2UnLCdmYWlsdXJlX3JlYXNvbicsJ2Rpc3B1dGVkX2Ftb3VudCcsJ2V2ZW50X25hbWUnLCdldmVudF9kYXRlJywncmVwcmVzZW50bWVudF9zdGF0dXMnLCdyZXByZXNlbnRtZW50X2RhdGUnLCdyZWZ1bmRfcmVmZXJlbmNlJywncmVmdW5kX2Ftb3VudCcsJ3JlZnVuZF9kYXRlJ107XG4gICAgICB3b3Jrc2hlZXQgPSAgdGhpcy5zZXRQYXltZW50RmFpbHVyZVJlcG9ydEhlYWRlcnMod29ya3NoZWV0KTtcbiAgICAgIHdvcmtzaGVldCA9IHRoaXMuYXV0b0ZpdENvbHVtbnMod29ya3NoZWV0LGpzb24pO1xuICAgICAgd29ya3NoZWV0ID0gIHRoaXMuYWRkUm93RGF0YSh3b3Jrc2hlZXQsanNvbixoZWFkZXJzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaGVhZGVycyA9IFsncmVzcF9zZXJ2aWNlX2lkJywncmVzcF9zZXJ2aWNlX25hbWUnLCdzdXJwbHVzX3Nob3J0ZmFsbCcsJ2JhbGFuY2UnLCdwYXltZW50X2Ftb3VudCcsJ2NjZF9jYXNlX3JlZmVyZW5jZScsICdjY2RfZXhjZXB0aW9uX3JlZmVyZW5jZScsICdwcm9jZXNzZWRfZGF0ZScsICdyZWFzb24nLCAnZXhwbGFuYXRpb24nLCAndXNlcl9uYW1lJ107XG4gICAgICB3b3Jrc2hlZXQgPSAgdGhpcy5zZXRTaG9ydEZhbGxSZXBvcnRIZWFkZXJzKHdvcmtzaGVldCk7XG4gICAgICB3b3Jrc2hlZXQgPSB0aGlzLmF1dG9GaXRDb2x1bW5zKHdvcmtzaGVldCxqc29uKTtcbiAgICAgIHdvcmtzaGVldCA9ICB0aGlzLmFkZFJvd0RhdGEod29ya3NoZWV0LGpzb24saGVhZGVycyk7XG4gICAgfVxuXG4gICAgd29ya2Jvb2sueGxzeC53cml0ZUJ1ZmZlcigpLnRoZW4oKGJ1ZmZlcikgPT4ge1xuICAgICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbYnVmZmVyXSwgeyB0eXBlOiBFWENFTF9UWVBFIH0pO1xuICAgICAgICAgIEZpbGVTYXZlci5zYXZlQXMoYmxvYiwgYCR7ZXhjZWxGaWxlTmFtZSArIEVYQ0VMX0VYVEVOU0lPTn1gKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXV0b0ZpdENvbHVtbnMgKHdvcmtzaGVldDogRXhjZWxKUy5Xb3Jrc2hlZXQsanNvbjphbnkpIDogRXhjZWxKUy5Xb3Jrc2hlZXQge1xuICAgIGxldCBvYmplY3RNYXhMZW5ndGggPSBbXTtcbiAgICBsZXQgQ29sV2lkdGggPSBbXTtcbiAgICBsZXQgb2JqID0gPGFueT5PYmplY3Q7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGpzb24ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgbGV0IHZhbHVlID0gb2JqLnZhbHVlcyhqc29uW2ldKTtcbiAgICAgICAgbGV0IGtleSA9IG9iai5rZXlzKGpzb25baV0pO1xuICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHZhbHVlLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgaWYodmFsdWVbal0gPT09IG51bGwpe1xuICAgICAgICAgICAgdmFsdWVbal0gPSAnJztcbiAgICAgICAgICB9XG4gICAgICAgICAgb2JqZWN0TWF4TGVuZ3RoW2pdID1cbiAgICAgICAgICAgIGtleVtqXS5sZW5ndGggPj0gdmFsdWVbal0ubGVuZ3RoXG4gICAgICAgICAgICAgID8ga2V5W2pdLmxlbmd0aCsyXG4gICAgICAgICAgICAgIDogdmFsdWVbal0ubGVuZ3RoKzE7XG4gICAgICAgICAgICAgIGlmKCB2YWx1ZVtqXS5sZW5ndGggPT09IHVuZGVmaW5lZCl7XG4gICAgICAgICAgICAgICAgb2JqZWN0TWF4TGVuZ3RoW2pdID0gIGtleVtqXS5sZW5ndGgrMjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICBDb2xXaWR0aC5wdXNoKHsnd2lkdGgnOiArb2JqZWN0TWF4TGVuZ3RoW2pdfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHdvcmtzaGVldC5jb2x1bW5zID0gQ29sV2lkdGg7XG4gICAgICByZXR1cm4gd29ya3NoZWV0O1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRSb3dEYXRhICh3b3Jrc2hlZXQ6IEV4Y2VsSlMuV29ya3NoZWV0LGpzb246YW55LGhlYWRlcnMpIDogRXhjZWxKUy5Xb3Jrc2hlZXQge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaGVhZGVycy5sZW5ndGg7IGkrKykge1xuICAgICAgd29ya3NoZWV0LmNvbHVtbnNbaV0ua2V5ID0gaGVhZGVyc1tpXTtcbiAgICB9XG4gICAgbGV0IG9iaiA9IDxhbnk+T2JqZWN0O1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBqc29uLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHdvcmtzaGVldC5hZGRSb3coanNvbltpXSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gd29ya3NoZWV0O1xuICB9XG5cbiAgcHJpdmF0ZSBzZXREYXRhTG9zc1JlcG9ydEhlYWRlcnMgKHdvcmtzaGVldDogRXhjZWxKUy5Xb3Jrc2hlZXQpOiBFeGNlbEpTLldvcmtzaGVldCB7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0ExJykudmFsdWUgPSBcIkxvc3NfUmVzcFwiO1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdCMScpLnZhbHVlID0gXCJQYXltZW50X0Fzc2V0X0RDTlwiO1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdDMScpLnZhbHVlID0gXCJFbnZlbG9wZV9SZWZcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnRDEnKS52YWx1ZSA9IFwiRW52ZWxvcGVfSXRlbVwiO1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdFMScpLnZhbHVlID0gXCJSZXNwX1NlcnZpY2UgSURcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnRjEnKS52YWx1ZSA9IFwiUmVzcF9TZXJ2aWNlIE5hbWVcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnRzEnKS52YWx1ZSA9IFwiRGF0ZV9CYW5rZWRcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnSDEnKS52YWx1ZSA9IFwiQkdDX0JhdGNoXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0kxJykudmFsdWUgPSBcIlBheW1lbnRfTWV0aG9kXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0oxJykudmFsdWUgPSBcIkFtb3VudFwiO1xuICAgIHJldHVybiB3b3Jrc2hlZXQ7XG4gIH1cblxuICBwcml2YXRlIHNldFVucHJvY2Vzc2VkUmVwb3J0SGVhZGVycyAod29ya3NoZWV0OiBFeGNlbEpTLldvcmtzaGVldCk6IEV4Y2VsSlMuV29ya3NoZWV0IHtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnQTEnKS52YWx1ZSA9IFwiUmVzcF9TZXJ2aWNlIElEXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0IxJykudmFsdWUgPSBcIlJlc3BfU2VydmljZSBOYW1lXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0MxJykudmFsdWUgPSBcIkV4Y2VwdGlvbl9SZWZcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnRDEnKS52YWx1ZSA9IFwiQ0NEX1JlZlwiO1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdFMScpLnZhbHVlID0gXCJEYXRlX0JhbmtlZFwiO1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdGMScpLnZhbHVlID0gXCJCR0NfQmF0Y2hcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnRzEnKS52YWx1ZSA9IFwiUGF5bWVudF9Bc3NldF9EQ05cIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnSDEnKS52YWx1ZSA9IFwiRW52ZWxvcGVfUmVmXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0kxJykudmFsdWUgPSBcIkVudmVsb3BlX0l0ZW1cIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnSjEnKS52YWx1ZSA9IFwiUGF5bWVudF9NZXRob2RcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnSzEnKS52YWx1ZSA9IFwiQW1vdW50XCI7XG4gICAgcmV0dXJuIHdvcmtzaGVldDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0UHJvY2Vzc2VkVW5hbGxvY2F0ZWRSZXBvcnRIZWFkZXJzICh3b3Jrc2hlZXQ6IEV4Y2VsSlMuV29ya3NoZWV0KTogRXhjZWxKUy5Xb3Jrc2hlZXQge1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdBMScpLnZhbHVlID0gXCJSZXNwX1NlcnZpY2UgSURcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnQjEnKS52YWx1ZSA9IFwiUmVzcF9TZXJ2aWNlIE5hbWVcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnQzEnKS52YWx1ZSA9IFwiQWxsb2NhdGlvbl9TdGF0dXNcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnRDEnKS52YWx1ZSA9IFwiUmVjZWl2aW5nX09mZmljZVwiO1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdFMScpLnZhbHVlID0gXCJBbGxvY2F0aW9uX1JlYXNvblwiO1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdGMScpLnZhbHVlID0gXCJDQ0RfRXhjZXB0aW9uX1JlZlwiO1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdHMScpLnZhbHVlID0gXCJDQ0RfQ2FzZV9SZWZcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnSDEnKS52YWx1ZSA9IFwiUGF5bWVudF9Bc3NldF9EQ05cIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnSTEnKS52YWx1ZSA9IFwiRW52ZWxvcGVfUmVmXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0oxJykudmFsdWUgPSBcIkVudmVsb3BlX0l0ZW1cIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnSzEnKS52YWx1ZSA9IFwiRGF0ZV9CYW5rZWRcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnTDEnKS52YWx1ZSA9IFwiQkdDX0JhdGNoXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ00xJykudmFsdWUgPSBcIlBheW1lbnRfTWV0aG9kXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ04xJykudmFsdWUgPSBcIkFtb3VudFwiO1xuICAgIHJldHVybiB3b3Jrc2hlZXQ7XG4gIH1cblxuICBwcml2YXRlIHNldFBheW1lbnRGYWlsdXJlUmVwb3J0SGVhZGVycyAod29ya3NoZWV0OiBFeGNlbEpTLldvcmtzaGVldCk6IEV4Y2VsSlMuV29ya3NoZWV0IHtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnQTEnKS52YWx1ZSA9IFwiUGF5bWVudCByZWZlcmVuY2VcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnQjEnKS52YWx1ZSA9IFwiQ0NEIHJlZmVyZW5jZVwiO1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdDMScpLnZhbHVlID0gXCJEb2N1bWVudCBDb250cm9sIE51bWJlclwiO1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdEMScpLnZhbHVlID0gXCJPcmdJRFwiO1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdFMScpLnZhbHVlID0gXCJTZXJ2aWNlIG5hbWVcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnRjEnKS52YWx1ZSA9IFwiRmFpbHVyZSByZWZlcmVuY2VcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnRzEnKS52YWx1ZSA9IFwiRmFpbHVyZSByZWFzb25cIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnSDEnKS52YWx1ZSA9IFwiRGlzcHV0ZWQgYW1vdW50XCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0kxJykudmFsdWUgPSBcIkV2ZW50IG5hbWVcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnSjEnKS52YWx1ZSA9IFwiRXZlbnQgZGF0ZVwiO1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdLMScpLnZhbHVlID0gXCJSZXByZXNlbnRtZW50IHN0YXR1c1wiO1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdMMScpLnZhbHVlID0gXCJSZXByZXNlbnRtZW50IGRhdGVcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnTTEnKS52YWx1ZSA9IFwiUmVmdW5kIHJlZmVyZW5jZVwiO1xuICAgIHdvcmtzaGVldC5nZXRDZWxsKCdOMScpLnZhbHVlID0gXCJSZWZ1bmQgYW1vdW50XCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ08xJykudmFsdWUgPSBcIlJlZnVuZCBkYXRlXCI7XG4gICAgcmV0dXJuIHdvcmtzaGVldDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0U2hvcnRGYWxsUmVwb3J0SGVhZGVycyAod29ya3NoZWV0OiBFeGNlbEpTLldvcmtzaGVldCk6IEV4Y2VsSlMuV29ya3NoZWV0IHtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnQTEnKS52YWx1ZSA9IFwiUmVzcF9TZXJ2aWNlIElEXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0IxJykudmFsdWUgPSBcIlJlc3BfU2VydmljZSBOYW1lXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0MxJykudmFsdWUgPSBcIk92ZXIgUGF5bWVudF9VbmRlciBQYXltZW50XCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0QxJykudmFsdWUgPSBcIkJhbGFuY2VcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnRTEnKS52YWx1ZSA9IFwiUGF5bWVudF9BbW91bnRcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnRjEnKS52YWx1ZSA9IFwiQ0NEX0Nhc2VfUmVmXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0cxJykudmFsdWUgPSBcIkV4Y2VwdGlvbl9SZWZcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnSDEnKS52YWx1ZSA9IFwiUHJvY2Vzc2VkX0RhdGVcIjtcbiAgICB3b3Jrc2hlZXQuZ2V0Q2VsbCgnSTEnKS52YWx1ZSA9IFwiUmVhc29uXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0oxJykudmFsdWUgPSBcIkV4cGxhbmF0aW9uXCI7XG4gICAgd29ya3NoZWV0LmdldENlbGwoJ0sxJykudmFsdWUgPSBcIlVwZGF0ZWQgTmFtZVwiO1xuICAgIHJldHVybiB3b3Jrc2hlZXQ7XG4gIH1cblxufVxuIl19
|
|
@@ -18,8 +18,8 @@ import * as i7 from '@angular/material/sort';
|
|
|
18
18
|
import { MatSort, MatSortModule } from '@angular/material/sort';
|
|
19
19
|
import * as i6 from '@angular/material/paginator';
|
|
20
20
|
import { MatPaginator, MatPaginatorModule } from '@angular/material/paginator';
|
|
21
|
+
import * as ExcelJS from 'exceljs';
|
|
21
22
|
import * as FileSaver from 'file-saver';
|
|
22
|
-
import * as XLSX from 'xlsx';
|
|
23
23
|
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
24
24
|
import { MatInputModule } from '@angular/material/input';
|
|
25
25
|
|
|
@@ -6937,36 +6937,43 @@ const EXCEL_EXTENSION = '.xlsx';
|
|
|
6937
6937
|
class XlFileService {
|
|
6938
6938
|
constructor() { }
|
|
6939
6939
|
exportAsExcelFile(json, excelFileName) {
|
|
6940
|
-
|
|
6941
|
-
|
|
6940
|
+
var workbook = new ExcelJS.Workbook();
|
|
6941
|
+
var worksheet = workbook.addWorksheet(excelFileName);
|
|
6942
|
+
var headers = [];
|
|
6942
6943
|
if (excelFileName.match('Data_Loss') !== null) {
|
|
6943
|
-
|
|
6944
|
+
headers = ['loss_resp', 'payment_asset_dcn', 'env_ref', 'env_item', 'resp_service_id', 'resp_service_name', 'date_banked', 'bgc_batch', 'payment_method', 'amount'];
|
|
6944
6945
|
worksheet = this.setDataLossReportHeaders(worksheet);
|
|
6945
6946
|
worksheet = this.autoFitColumns(worksheet, json);
|
|
6947
|
+
worksheet = this.addRowData(worksheet, json, headers);
|
|
6946
6948
|
}
|
|
6947
6949
|
else if (excelFileName.match('Unprocessed') !== null) {
|
|
6948
|
-
|
|
6950
|
+
headers = ['resp_service_id', 'resp_service_name', 'exception_ref', 'ccd_ref', 'date_banked', 'bgc_batch', 'payment_asset_dcn', 'env_ref', 'env_item', 'payment_method', 'amount'];
|
|
6949
6951
|
worksheet = this.setUnprocessedReportHeaders(worksheet);
|
|
6950
6952
|
worksheet = this.autoFitColumns(worksheet, json);
|
|
6953
|
+
worksheet = this.addRowData(worksheet, json, headers);
|
|
6951
6954
|
}
|
|
6952
6955
|
else if (excelFileName.match('Processed_Unallocated') !== null) {
|
|
6953
|
-
|
|
6956
|
+
headers = ['resp_service_id', 'resp_service_name', 'allocation_status', 'receiving_office', 'allocation_reason', 'ccd_exception_reference', 'ccd_case_reference', 'payment_asset_dcn', 'env_ref', 'env_item', 'date_banked', 'bgc_batch', 'payment_method', 'amount'];
|
|
6954
6957
|
worksheet = this.setProcessedUnallocatedReportHeaders(worksheet);
|
|
6955
6958
|
worksheet = this.autoFitColumns(worksheet, json);
|
|
6959
|
+
worksheet = this.addRowData(worksheet, json, headers);
|
|
6956
6960
|
}
|
|
6957
6961
|
else if (excelFileName.match('Payment failure') !== null) {
|
|
6958
|
-
|
|
6962
|
+
headers = ['payment_reference', 'ccd_reference', 'document_control_number', 'org_id', 'service_name', 'failure_reference', 'failure_reason', 'disputed_amount', 'event_name', 'event_date', 'representment_status', 'representment_date', 'refund_reference', 'refund_amount', 'refund_date'];
|
|
6959
6963
|
worksheet = this.setPaymentFailureReportHeaders(worksheet);
|
|
6960
6964
|
worksheet = this.autoFitColumns(worksheet, json);
|
|
6965
|
+
worksheet = this.addRowData(worksheet, json, headers);
|
|
6961
6966
|
}
|
|
6962
6967
|
else {
|
|
6963
|
-
|
|
6968
|
+
headers = ['resp_service_id', 'resp_service_name', 'surplus_shortfall', 'balance', 'payment_amount', 'ccd_case_reference', 'ccd_exception_reference', 'processed_date', 'reason', 'explanation', 'user_name'];
|
|
6964
6969
|
worksheet = this.setShortFallReportHeaders(worksheet);
|
|
6965
6970
|
worksheet = this.autoFitColumns(worksheet, json);
|
|
6971
|
+
worksheet = this.addRowData(worksheet, json, headers);
|
|
6966
6972
|
}
|
|
6967
|
-
workbook
|
|
6968
|
-
|
|
6969
|
-
|
|
6973
|
+
workbook.xlsx.writeBuffer().then((buffer) => {
|
|
6974
|
+
const blob = new Blob([buffer], { type: EXCEL_TYPE });
|
|
6975
|
+
FileSaver.saveAs(blob, `${excelFileName + EXCEL_EXTENSION}`);
|
|
6976
|
+
});
|
|
6970
6977
|
}
|
|
6971
6978
|
autoFitColumns(worksheet, json) {
|
|
6972
6979
|
let objectMaxLength = [];
|
|
@@ -6989,91 +6996,95 @@ class XlFileService {
|
|
|
6989
6996
|
ColWidth.push({ 'width': +objectMaxLength[j] });
|
|
6990
6997
|
}
|
|
6991
6998
|
}
|
|
6992
|
-
worksheet
|
|
6999
|
+
worksheet.columns = ColWidth;
|
|
7000
|
+
return worksheet;
|
|
7001
|
+
}
|
|
7002
|
+
addRowData(worksheet, json, headers) {
|
|
7003
|
+
for (let i = 0; i < headers.length; i++) {
|
|
7004
|
+
worksheet.columns[i].key = headers[i];
|
|
7005
|
+
}
|
|
7006
|
+
let obj = Object;
|
|
7007
|
+
for (let i = 0; i < json.length; i++) {
|
|
7008
|
+
worksheet.addRow(json[i]);
|
|
7009
|
+
}
|
|
6993
7010
|
return worksheet;
|
|
6994
7011
|
}
|
|
6995
7012
|
setDataLossReportHeaders(worksheet) {
|
|
6996
|
-
worksheet.A1.
|
|
6997
|
-
worksheet.B1.
|
|
6998
|
-
worksheet.C1.
|
|
6999
|
-
worksheet.D1.
|
|
7000
|
-
worksheet.E1.
|
|
7001
|
-
worksheet.F1.
|
|
7002
|
-
worksheet.G1.
|
|
7003
|
-
worksheet.H1.
|
|
7004
|
-
worksheet.I1.
|
|
7005
|
-
worksheet.J1.
|
|
7013
|
+
worksheet.getCell('A1').value = "Loss_Resp";
|
|
7014
|
+
worksheet.getCell('B1').value = "Payment_Asset_DCN";
|
|
7015
|
+
worksheet.getCell('C1').value = "Envelope_Ref";
|
|
7016
|
+
worksheet.getCell('D1').value = "Envelope_Item";
|
|
7017
|
+
worksheet.getCell('E1').value = "Resp_Service ID";
|
|
7018
|
+
worksheet.getCell('F1').value = "Resp_Service Name";
|
|
7019
|
+
worksheet.getCell('G1').value = "Date_Banked";
|
|
7020
|
+
worksheet.getCell('H1').value = "BGC_Batch";
|
|
7021
|
+
worksheet.getCell('I1').value = "Payment_Method";
|
|
7022
|
+
worksheet.getCell('J1').value = "Amount";
|
|
7006
7023
|
return worksheet;
|
|
7007
7024
|
}
|
|
7008
7025
|
setUnprocessedReportHeaders(worksheet) {
|
|
7009
|
-
worksheet.A1.
|
|
7010
|
-
worksheet.B1.
|
|
7011
|
-
worksheet.C1.
|
|
7012
|
-
worksheet.D1.
|
|
7013
|
-
worksheet.E1.
|
|
7014
|
-
worksheet.F1.
|
|
7015
|
-
worksheet.G1.
|
|
7016
|
-
worksheet.H1.
|
|
7017
|
-
worksheet.I1.
|
|
7018
|
-
worksheet.J1.
|
|
7019
|
-
worksheet.K1.
|
|
7026
|
+
worksheet.getCell('A1').value = "Resp_Service ID";
|
|
7027
|
+
worksheet.getCell('B1').value = "Resp_Service Name";
|
|
7028
|
+
worksheet.getCell('C1').value = "Exception_Ref";
|
|
7029
|
+
worksheet.getCell('D1').value = "CCD_Ref";
|
|
7030
|
+
worksheet.getCell('E1').value = "Date_Banked";
|
|
7031
|
+
worksheet.getCell('F1').value = "BGC_Batch";
|
|
7032
|
+
worksheet.getCell('G1').value = "Payment_Asset_DCN";
|
|
7033
|
+
worksheet.getCell('H1').value = "Envelope_Ref";
|
|
7034
|
+
worksheet.getCell('I1').value = "Envelope_Item";
|
|
7035
|
+
worksheet.getCell('J1').value = "Payment_Method";
|
|
7036
|
+
worksheet.getCell('K1').value = "Amount";
|
|
7020
7037
|
return worksheet;
|
|
7021
7038
|
}
|
|
7022
7039
|
setProcessedUnallocatedReportHeaders(worksheet) {
|
|
7023
|
-
worksheet.A1.
|
|
7024
|
-
worksheet.B1.
|
|
7025
|
-
worksheet.C1.
|
|
7026
|
-
worksheet.D1.
|
|
7027
|
-
worksheet.E1.
|
|
7028
|
-
worksheet.F1.
|
|
7029
|
-
worksheet.G1.
|
|
7030
|
-
worksheet.H1.
|
|
7031
|
-
worksheet.I1.
|
|
7032
|
-
worksheet.J1.
|
|
7033
|
-
worksheet.K1.
|
|
7034
|
-
worksheet.L1.
|
|
7035
|
-
worksheet.M1.
|
|
7036
|
-
worksheet.N1.
|
|
7040
|
+
worksheet.getCell('A1').value = "Resp_Service ID";
|
|
7041
|
+
worksheet.getCell('B1').value = "Resp_Service Name";
|
|
7042
|
+
worksheet.getCell('C1').value = "Allocation_Status";
|
|
7043
|
+
worksheet.getCell('D1').value = "Receiving_Office";
|
|
7044
|
+
worksheet.getCell('E1').value = "Allocation_Reason";
|
|
7045
|
+
worksheet.getCell('F1').value = "CCD_Exception_Ref";
|
|
7046
|
+
worksheet.getCell('G1').value = "CCD_Case_Ref";
|
|
7047
|
+
worksheet.getCell('H1').value = "Payment_Asset_DCN";
|
|
7048
|
+
worksheet.getCell('I1').value = "Envelope_Ref";
|
|
7049
|
+
worksheet.getCell('J1').value = "Envelope_Item";
|
|
7050
|
+
worksheet.getCell('K1').value = "Date_Banked";
|
|
7051
|
+
worksheet.getCell('L1').value = "BGC_Batch";
|
|
7052
|
+
worksheet.getCell('M1').value = "Payment_Method";
|
|
7053
|
+
worksheet.getCell('N1').value = "Amount";
|
|
7037
7054
|
return worksheet;
|
|
7038
7055
|
}
|
|
7039
7056
|
setPaymentFailureReportHeaders(worksheet) {
|
|
7040
|
-
worksheet.A1.
|
|
7041
|
-
worksheet.B1.
|
|
7042
|
-
worksheet.C1.
|
|
7043
|
-
worksheet.D1.
|
|
7044
|
-
worksheet.E1.
|
|
7045
|
-
worksheet.F1.
|
|
7046
|
-
worksheet.G1.
|
|
7047
|
-
worksheet.H1.
|
|
7048
|
-
worksheet.I1.
|
|
7049
|
-
worksheet.J1.
|
|
7050
|
-
worksheet.K1.
|
|
7051
|
-
worksheet.L1.
|
|
7052
|
-
worksheet.M1.
|
|
7053
|
-
worksheet.N1.
|
|
7054
|
-
worksheet.O1.
|
|
7057
|
+
worksheet.getCell('A1').value = "Payment reference";
|
|
7058
|
+
worksheet.getCell('B1').value = "CCD reference";
|
|
7059
|
+
worksheet.getCell('C1').value = "Document Control Number";
|
|
7060
|
+
worksheet.getCell('D1').value = "OrgID";
|
|
7061
|
+
worksheet.getCell('E1').value = "Service name";
|
|
7062
|
+
worksheet.getCell('F1').value = "Failure reference";
|
|
7063
|
+
worksheet.getCell('G1').value = "Failure reason";
|
|
7064
|
+
worksheet.getCell('H1').value = "Disputed amount";
|
|
7065
|
+
worksheet.getCell('I1').value = "Event name";
|
|
7066
|
+
worksheet.getCell('J1').value = "Event date";
|
|
7067
|
+
worksheet.getCell('K1').value = "Representment status";
|
|
7068
|
+
worksheet.getCell('L1').value = "Representment date";
|
|
7069
|
+
worksheet.getCell('M1').value = "Refund reference";
|
|
7070
|
+
worksheet.getCell('N1').value = "Refund amount";
|
|
7071
|
+
worksheet.getCell('O1').value = "Refund date";
|
|
7055
7072
|
return worksheet;
|
|
7056
7073
|
}
|
|
7057
7074
|
setShortFallReportHeaders(worksheet) {
|
|
7058
|
-
worksheet.A1.
|
|
7059
|
-
worksheet.B1.
|
|
7060
|
-
worksheet.C1.
|
|
7061
|
-
worksheet.D1.
|
|
7062
|
-
worksheet.E1.
|
|
7063
|
-
worksheet.F1.
|
|
7064
|
-
worksheet.G1.
|
|
7065
|
-
worksheet.H1.
|
|
7066
|
-
worksheet.I1.
|
|
7067
|
-
worksheet.J1.
|
|
7068
|
-
worksheet.K1.
|
|
7075
|
+
worksheet.getCell('A1').value = "Resp_Service ID";
|
|
7076
|
+
worksheet.getCell('B1').value = "Resp_Service Name";
|
|
7077
|
+
worksheet.getCell('C1').value = "Over Payment_Under Payment";
|
|
7078
|
+
worksheet.getCell('D1').value = "Balance";
|
|
7079
|
+
worksheet.getCell('E1').value = "Payment_Amount";
|
|
7080
|
+
worksheet.getCell('F1').value = "CCD_Case_Ref";
|
|
7081
|
+
worksheet.getCell('G1').value = "Exception_Ref";
|
|
7082
|
+
worksheet.getCell('H1').value = "Processed_Date";
|
|
7083
|
+
worksheet.getCell('I1').value = "Reason";
|
|
7084
|
+
worksheet.getCell('J1').value = "Explanation";
|
|
7085
|
+
worksheet.getCell('K1').value = "Updated Name";
|
|
7069
7086
|
return worksheet;
|
|
7070
7087
|
}
|
|
7071
|
-
saveAsExcelFile(buffer, fileName) {
|
|
7072
|
-
const data = new Blob([buffer], {
|
|
7073
|
-
type: EXCEL_TYPE
|
|
7074
|
-
});
|
|
7075
|
-
FileSaver.saveAs(data, fileName + EXCEL_EXTENSION);
|
|
7076
|
-
}
|
|
7077
7088
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: XlFileService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
7078
7089
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: XlFileService });
|
|
7079
7090
|
}
|