@seniorsistemas/tmsx-angular-components 1.0.3 → 1.0.4-feature-tmsx-1991-1376e6b0
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/bundles/seniorsistemas-tmsx-angular-components.umd.js +36 -7
- package/bundles/seniorsistemas-tmsx-angular-components.umd.js.map +1 -1
- package/bundles/seniorsistemas-tmsx-angular-components.umd.min.js +1 -1
- package/bundles/seniorsistemas-tmsx-angular-components.umd.min.js.map +1 -1
- package/components/painel-processamento/painel-processamento.component.d.ts +3 -0
- package/esm2015/components/painel-processamento/painel-processamento.component.js +33 -9
- package/esm5/components/painel-processamento/painel-processamento.component.js +37 -8
- package/fesm2015/seniorsistemas-tmsx-angular-components.js +32 -8
- package/fesm2015/seniorsistemas-tmsx-angular-components.js.map +1 -1
- package/fesm5/seniorsistemas-tmsx-angular-components.js +36 -7
- package/fesm5/seniorsistemas-tmsx-angular-components.js.map +1 -1
- package/package.json +1 -1
- package/seniorsistemas-tmsx-angular-components.metadata.json +1 -1
|
@@ -4,6 +4,7 @@ import { EnumProcessamentoStatus, ProcessamentoGrid, ProcessamentoInput } from '
|
|
|
4
4
|
import { Column } from '@seniorsistemas/angular-components';
|
|
5
5
|
export declare class PainelProcessamentoComponent implements OnInit {
|
|
6
6
|
private readonly translate;
|
|
7
|
+
private static readonly GENERIC_ERR_KEY;
|
|
7
8
|
params: ProcessamentoInput;
|
|
8
9
|
processado: EventEmitter<any>;
|
|
9
10
|
concluido: EventEmitter<any>;
|
|
@@ -24,6 +25,8 @@ export declare class PainelProcessamentoComponent implements OnInit {
|
|
|
24
25
|
initPanel(): void;
|
|
25
26
|
initProgressBar(): void;
|
|
26
27
|
initGrid(): void;
|
|
28
|
+
private getErrorMessage;
|
|
29
|
+
private get genericErrorMsg();
|
|
27
30
|
private updateRowSuccess;
|
|
28
31
|
private updateRowError;
|
|
29
32
|
private syncProcessRecord;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
var PainelProcessamentoComponent_1;
|
|
1
2
|
import { __awaiter, __decorate } from "tslib";
|
|
2
3
|
import { TranslateService } from '@ngx-translate/core';
|
|
3
4
|
import { Component, Injectable, Input, Output, EventEmitter } from '@angular/core';
|
|
@@ -5,7 +6,7 @@ import { EnumProcessamentoStatus, EnumProcessamentoStatusTranslationMap } from '
|
|
|
5
6
|
import { EnumColumnFieldType } from '@seniorsistemas/angular-components';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
import * as i1 from "@ngx-translate/core";
|
|
8
|
-
let PainelProcessamentoComponent = class PainelProcessamentoComponent {
|
|
9
|
+
let PainelProcessamentoComponent = PainelProcessamentoComponent_1 = class PainelProcessamentoComponent {
|
|
9
10
|
constructor(translate) {
|
|
10
11
|
this.translate = translate;
|
|
11
12
|
this.processado = new EventEmitter();
|
|
@@ -51,6 +52,27 @@ let PainelProcessamentoComponent = class PainelProcessamentoComponent {
|
|
|
51
52
|
label: registro.descricao
|
|
52
53
|
}));
|
|
53
54
|
}
|
|
55
|
+
getErrorMessage(error) {
|
|
56
|
+
var _a, _b;
|
|
57
|
+
try {
|
|
58
|
+
if (!error) {
|
|
59
|
+
return this.genericErrorMsg;
|
|
60
|
+
}
|
|
61
|
+
if ((_a = error === null || error === void 0 ? void 0 : error.error) === null || _a === void 0 ? void 0 : _a.message) {
|
|
62
|
+
return String(error.error.message);
|
|
63
|
+
}
|
|
64
|
+
if ((_b = error === null || error === void 0 ? void 0 : error.message) === null || _b === void 0 ? void 0 : _b.message) {
|
|
65
|
+
return String(error.message.message);
|
|
66
|
+
}
|
|
67
|
+
return this.genericErrorMsg;
|
|
68
|
+
}
|
|
69
|
+
catch (_c) {
|
|
70
|
+
return this.genericErrorMsg;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
get genericErrorMsg() {
|
|
74
|
+
return this.translate.instant(PainelProcessamentoComponent_1.GENERIC_ERR_KEY);
|
|
75
|
+
}
|
|
54
76
|
updateRowSuccess(row, index) {
|
|
55
77
|
this.successCount++;
|
|
56
78
|
this.pendingCount--;
|
|
@@ -79,7 +101,7 @@ let PainelProcessamentoComponent = class PainelProcessamentoComponent {
|
|
|
79
101
|
this.updateRowSuccess(row, index);
|
|
80
102
|
this.syncProcessRecord(index + 1);
|
|
81
103
|
}, (error) => {
|
|
82
|
-
this.updateRowError(row, index, error
|
|
104
|
+
this.updateRowError(row, index, this.getErrorMessage(error));
|
|
83
105
|
this.syncProcessRecord(index + 1);
|
|
84
106
|
});
|
|
85
107
|
}
|
|
@@ -105,7 +127,7 @@ let PainelProcessamentoComponent = class PainelProcessamentoComponent {
|
|
|
105
127
|
return { success: true, record, result };
|
|
106
128
|
}
|
|
107
129
|
catch (error) {
|
|
108
|
-
this.updateRowError(row, index, error
|
|
130
|
+
this.updateRowError(row, index, this.getErrorMessage(error));
|
|
109
131
|
return { success: false, record, error };
|
|
110
132
|
}
|
|
111
133
|
}));
|
|
@@ -119,10 +141,11 @@ let PainelProcessamentoComponent = class PainelProcessamentoComponent {
|
|
|
119
141
|
const successWidth = (this.successCount / this.totalRecords) * 100;
|
|
120
142
|
const failedWidth = (this.failedCount / this.totalRecords) * 100;
|
|
121
143
|
const pendingWidth = (this.pendingCount / this.totalRecords) * 100;
|
|
122
|
-
|
|
123
|
-
this.
|
|
124
|
-
this.
|
|
125
|
-
this.
|
|
144
|
+
const processedWidth = successWidth + failedWidth;
|
|
145
|
+
this.processingProgress = `${processedWidth.toFixed(0)}%`;
|
|
146
|
+
this.successProgress = `${successWidth.toFixed(0)}%`;
|
|
147
|
+
this.failedProgress = `${failedWidth.toFixed(0)}%`;
|
|
148
|
+
this.pendingProgress = `${pendingWidth.toFixed(0)}%`;
|
|
126
149
|
}
|
|
127
150
|
updateRowStatus(row, status, message) {
|
|
128
151
|
row.status = status;
|
|
@@ -184,6 +207,7 @@ let PainelProcessamentoComponent = class PainelProcessamentoComponent {
|
|
|
184
207
|
];
|
|
185
208
|
}
|
|
186
209
|
};
|
|
210
|
+
PainelProcessamentoComponent.GENERIC_ERR_KEY = 'tmsx_fnd.tmsx_angular_components.painel_processamento_generic_error';
|
|
187
211
|
PainelProcessamentoComponent.ctorParameters = () => [
|
|
188
212
|
{ type: TranslateService }
|
|
189
213
|
];
|
|
@@ -197,7 +221,7 @@ __decorate([
|
|
|
197
221
|
__decorate([
|
|
198
222
|
Output()
|
|
199
223
|
], PainelProcessamentoComponent.prototype, "concluido", void 0);
|
|
200
|
-
PainelProcessamentoComponent = __decorate([
|
|
224
|
+
PainelProcessamentoComponent = PainelProcessamentoComponent_1 = __decorate([
|
|
201
225
|
Injectable({
|
|
202
226
|
providedIn: 'root'
|
|
203
227
|
}),
|
|
@@ -208,4 +232,4 @@ PainelProcessamentoComponent = __decorate([
|
|
|
208
232
|
})
|
|
209
233
|
], PainelProcessamentoComponent);
|
|
210
234
|
export { PainelProcessamentoComponent };
|
|
211
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbmVsLXByb2Nlc3NhbWVudG8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL3Rtc3gtYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9wYWluZWwtcHJvY2Vzc2FtZW50by9wYWluZWwtcHJvY2Vzc2FtZW50by5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxxQ0FBcUMsRUFBeUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN4SSxPQUFPLEVBQVUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7O0FBVWpGLElBQWEsNEJBQTRCLEdBQXpDLE1BQWEsNEJBQTRCO0lBb0JyQyxZQUNxQixTQUEyQjtRQUEzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQWxCdEMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDaEMsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFLbEMsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDakIsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDakIsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFDaEIsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDakIsb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFDdkIsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIsb0JBQWUsR0FBRyxNQUFNLENBQUM7UUFDekIsdUJBQWtCLEdBQUcsSUFBSSxDQUFDO1FBQzFCLGNBQVMsR0FBRyxRQUFRLENBQUM7UUFDckIsY0FBUyxHQUFHLENBQUMsQ0FBQztJQUlqQixDQUFDO0lBRUwsUUFBUTtRQUNK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QVUsRUFBRSxFQUFFO2dCQUNkLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxNQUFNO2FBQ25DO1lBQ0Q7Z0JBQ0ksS0FBSyxFQUFFLFFBQVE7Z0JBQ2YsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLHlDQUF5QyxDQUFDO2dCQUN6RSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO2dCQUN2QixVQUFVLEVBQUUsRUFBRTtnQkFDZCxJQUFJLEVBQUUsbUJBQW1CLENBQUMsTUFBTTthQUNuQztTQUNKLENBQUM7SUFDTixDQUFDO0NBQ0osQ0FBQTs7WUFyTG1DLGdCQUFnQjs7O0FBbkJ2QztJQUFSLEtBQUssRUFBRTs0REFBNEI7QUFDMUI7SUFBVCxNQUFNLEVBQUU7Z0VBQWlDO0FBQ2hDO0lBQVQsTUFBTSxFQUFFOytEQUFnQztBQUpoQyw0QkFBNEI7SUFSeEMsVUFBVSxDQUFDO1FBQ1IsVUFBVSxFQUFFLE1BQU07S0FDckIsQ0FBQztJQUNELFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSwyQkFBMkI7UUFDckMseTRGQUFvRDs7S0FFckQsQ0FBQztHQUNXLDRCQUE0QixDQTBNeEM7U0ExTVksNEJBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3RhYmxlLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRW51bVByb2Nlc3NhbWVudG9TdGF0dXMsIEVudW1Qcm9jZXNzYW1lbnRvU3RhdHVzVHJhbnNsYXRpb25NYXAsIFByb2Nlc3NhbWVudG9HcmlkLCBQcm9jZXNzYW1lbnRvSW5wdXQgfSBmcm9tICcuL3Byb2Nlc3NhbWVudG8nO1xuaW1wb3J0IHsgQ29sdW1uLCBFbnVtQ29sdW1uRmllbGRUeXBlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0bXN4LXBhaW5lbC1wcm9jZXNzYW1lbnRvJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhaW5lbC1wcm9jZXNzYW1lbnRvLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGFpbmVsLXByb2Nlc3NhbWVudG8uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBQYWluZWxQcm9jZXNzYW1lbnRvQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAgIEBJbnB1dCgpIHBhcmFtczogUHJvY2Vzc2FtZW50b0lucHV0O1xuICAgIEBPdXRwdXQoKSBwcm9jZXNzYWRvID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBjb25jbHVpZG8gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBwdWJsaWMgZ3JpZERhdGE6IFByb2Nlc3NhbWVudG9HcmlkW107XG4gICAgcHVibGljIGdyaWRDb2x1bW5zOiBDb2x1bW5bXTtcblxuICAgIHB1YmxpYyB0b3RhbFJlY29yZHMgPSAwO1xuICAgIHB1YmxpYyBzdWNjZXNzQ291bnQgPSAwO1xuICAgIHB1YmxpYyBmYWlsZWRDb3VudCA9IDA7XG4gICAgcHVibGljIHBlbmRpbmdDb3VudCA9IDA7XG4gICAgcHVibGljIHN1Y2Nlc3NQcm9ncmVzcyA9ICcwJSc7XG4gICAgcHVibGljIGZhaWxlZFByb2dyZXNzID0gJzAlJztcbiAgICBwdWJsaWMgcGVuZGluZ1Byb2dyZXNzID0gJzEwMCUnO1xuICAgIHB1YmxpYyBwcm9jZXNzaW5nUHJvZ3Jlc3MgPSAnMCUnO1xuICAgIHB1YmxpYyBzb3J0RmllbGQgPSAnc3RhdHVzJztcbiAgICBwdWJsaWMgc29ydE9yZGVyID0gMTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZVxuICAgICkgeyB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5pbml0UGFuZWwoKTtcbiAgICB9XG5cbiAgICBpbml0UGFuZWwoKSB7XG4gICAgICAgIHRoaXMuZ3JpZENvbHVtbnMgPSB0aGlzLmdldEdyaWRDb2x1bW4oKTtcbiAgICAgICAgdGhpcy5pbml0R3JpZCgpO1xuICAgICAgICB0aGlzLmluaXRQcm9ncmVzc0JhcigpO1xuICAgIH1cblxuICAgIGluaXRQcm9ncmVzc0JhcigpIHtcbiAgICAgICAgdGhpcy5zdWNjZXNzUHJvZ3Jlc3MgPSAnMCUnO1xuICAgICAgICB0aGlzLmZhaWxlZFByb2dyZXNzID0gJzAlJztcbiAgICAgICAgdGhpcy5wZW5kaW5nUHJvZ3Jlc3MgPSAnMTAwJSc7XG4gICAgICAgIHRoaXMucHJvY2Vzc2luZ1Byb2dyZXNzID0gJzAlJztcbiAgICAgICAgdGhpcy50b3RhbFJlY29yZHMgPSB0aGlzLnBhcmFtcy5yZWdpc3Ryb3MubGVuZ3RoO1xuICAgICAgICB0aGlzLnBlbmRpbmdDb3VudCA9IHRoaXMudG90YWxSZWNvcmRzO1xuXG4gICAgICAgIGlmICh0aGlzLnBhcmFtcy5xdWFudGlkYWRlQ2hhbWFkYXNTaW11bHRhbmVhcyA+IDEpIHtcbiAgICAgICAgICAgIHRoaXMucHJvY2Vzc0FsbFJlY29yZHNXaXRoUExpbWl0KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnN5bmNQcm9jZXNzUmVjb3JkKDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW5pdEdyaWQoKSB7XG4gICAgICAgIHRoaXMuZ3JpZERhdGEgPSBbXTtcbiAgICAgICAgdGhpcy5ncmlkRGF0YSA9IHRoaXMucGFyYW1zLnJlZ2lzdHJvcy5tYXAocmVnaXN0cm8gPT4gKHtcbiAgICAgICAgICAgIHJlZ2lzdHJvLFxuICAgICAgICAgICAgc3RhdHVzOiBFbnVtUHJvY2Vzc2FtZW50b1N0YXR1cy5QRU5ESU5HLFxuICAgICAgICAgICAgbGFiZWw6IHJlZ2lzdHJvLmRlc2NyaWNhb1xuICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVSb3dTdWNjZXNzKHJvdzogYW55LCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3VjY2Vzc0NvdW50Kys7XG4gICAgICAgIHRoaXMucGVuZGluZ0NvdW50LS07XG4gICAgICAgIHRoaXMudXBkYXRlUm93U3RhdHVzKHJvdywgRW51bVByb2Nlc3NhbWVudG9TdGF0dXMuU1VDQ0VTUyk7XG4gICAgICAgIHRoaXMucHJvY2Vzc2Fkby5lbWl0KHJvdyk7XG4gICAgICAgIHRoaXMudXBkYXRlUHJvZ3Jlc3NCYXIoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVJvd0Vycm9yKHJvdzogYW55LCBpbmRleDogbnVtYmVyLCBtZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mYWlsZWRDb3VudCsrO1xuICAgICAgICB0aGlzLnBlbmRpbmdDb3VudC0tO1xuICAgICAgICB0aGlzLnVwZGF0ZVJvd1N0YXR1cyhyb3csIEVudW1Qcm9jZXNzYW1lbnRvU3RhdHVzLkZBSUxFRCwgbWVzc2FnZSk7XG4gICAgICAgIHRoaXMucHJvY2Vzc2Fkby5lbWl0KHJvdyk7XG4gICAgICAgIHRoaXMudXBkYXRlUHJvZ3Jlc3NCYXIoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN5bmNQcm9jZXNzUmVjb3JkKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucGVuZGluZ0NvdW50IDwgMSkge1xuICAgICAgICAgICAgdGhpcy5jb25jbHVpZG8uZW1pdCgnb2snKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVwZGF0ZVJvd1N0YXR1cyh0aGlzLmdyaWREYXRhW2luZGV4XSwgRW51bVByb2Nlc3NhbWVudG9TdGF0dXMuUFJPQ0VTU0lORyk7XG4gICAgICAgIGNvbnN0IHJlY29yZCA9IHRoaXMucGFyYW1zLnJlZ2lzdHJvc1tpbmRleF07XG4gICAgICAgIGNvbnN0IHJvdyA9IHRoaXMuZ3JpZERhdGEuZmluZChpdGVtID0+IGl0ZW0ucmVnaXN0cm8gPT09IHJlY29yZCk7XG5cbiAgICAgICAgaWYgKHJlY29yZC5hcGlFbnZpbykge1xuICAgICAgICAgICAgcmVjb3JkLmFwaUVudmlvKHJlY29yZC5vYmpFbnZpbylcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVSb3dTdWNjZXNzKHJvdywgaW5kZXgpO1xuICAgICAgICAgICAgICAgICAgdGhpcy5zeW5jUHJvY2Vzc1JlY29yZChpbmRleCArIDEpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlUm93RXJyb3Iocm93LCBpbmRleCwgZXJyb3IubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgICB0aGlzLnN5bmNQcm9jZXNzUmVjb3JkKGluZGV4ICsgMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZmFpbGVkQ291bnQgPSB0aGlzLnBlbmRpbmdDb3VudDtcbiAgICAgICAgICAgIHRoaXMucGVuZGluZ0NvdW50ID0gMDtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUm93U3RhdHVzKHJvdyxcbiAgICAgICAgICAgICAgICAgRW51bVByb2Nlc3NhbWVudG9TdGF0dXMuRkFJTEVELFxuICAgICAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3Rtc3hfZm5kLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLnBhaW5lbF9wcm9jZXNzYW1lbnRvX2FwaV9lcnJvcicpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVQcm9ncmVzc0JhcigpO1xuICAgICAgICAgICAgdGhpcy5jb25jbHVpZG8uZW1pdCgnZXJybycpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXN5bmMgcHJvY2Vzc0FsbFJlY29yZHNXaXRoUExpbWl0KCkge1xuICAgICAgY29uc3QgcExpbWl0ID0gcmVxdWlyZSgncC1saW1pdCcpO1xuICAgICAgY29uc3QgbGltaXQgPSBwTGltaXQodGhpcy5wYXJhbXMucXVhbnRpZGFkZUNoYW1hZGFzU2ltdWx0YW5lYXMpO1xuICAgICAgY29uc3QgcHJvbWlzZXMgPSB0aGlzLnBhcmFtcy5yZWdpc3Ryb3MubWFwKChyZWNvcmQsIGluZGV4KSA9PiB7XG4gICAgICAgIHJldHVybiBsaW1pdChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgY29uc3Qgcm93ID0gdGhpcy5ncmlkRGF0YS5maW5kKGl0ZW0gPT4gaXRlbS5yZWdpc3RybyA9PT0gcmVjb3JkKTtcbiAgICAgICAgICB0aGlzLnVwZGF0ZVJvd1N0YXR1cyhyb3csIEVudW1Qcm9jZXNzYW1lbnRvU3RhdHVzLlBST0NFU1NJTkcpO1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZWNvcmQuYXBpRW52aW8ocmVjb3JkLm9iakVudmlvKS50b1Byb21pc2UoKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUm93U3VjY2Vzcyhyb3csIGluZGV4KTtcbiAgICAgICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IHRydWUsIHJlY29yZCwgcmVzdWx0IH07XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUm93RXJyb3Iocm93LCBpbmRleCwgZXJyb3IubWVzc2FnZSk7XG4gICAgICAgICAgICByZXR1cm4geyBzdWNjZXNzOiBmYWxzZSwgcmVjb3JkLCBlcnJvciB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7XG4gICAgICB0aGlzLmNvbmNsdWlkby5lbWl0KHJlc3VsdHMpO1xuICAgICAgcmV0dXJuIHJlc3VsdHM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVQcm9ncmVzc0JhcigpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc3VjY2Vzc1dpZHRoID0gKHRoaXMuc3VjY2Vzc0NvdW50IC8gdGhpcy50b3RhbFJlY29yZHMpICogMTAwO1xuICAgICAgICBjb25zdCBmYWlsZWRXaWR0aCA9ICh0aGlzLmZhaWxlZENvdW50IC8gdGhpcy50b3RhbFJlY29yZHMpICogMTAwO1xuICAgICAgICBjb25zdCBwZW5kaW5nV2lkdGggPSAodGhpcy5wZW5kaW5nQ291bnQgLyB0aGlzLnRvdGFsUmVjb3JkcykgKiAxMDA7XG4gICAgICAgIHRoaXMucHJvY2Vzc2luZ1Byb2dyZXNzID0gYCR7KHN1Y2Nlc3NXaWR0aCArIGZhaWxlZFdpZHRoKX0lYDtcblxuICAgICAgICB0aGlzLnN1Y2Nlc3NQcm9ncmVzcyA9IGAke3N1Y2Nlc3NXaWR0aH0lYDtcbiAgICAgICAgdGhpcy5mYWlsZWRQcm9ncmVzcyA9IGAke2ZhaWxlZFdpZHRofSVgO1xuICAgICAgICB0aGlzLnBlbmRpbmdQcm9ncmVzcyA9IGAke3BlbmRpbmdXaWR0aH0lYDtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlUm93U3RhdHVzKHJvdzogYW55LCBzdGF0dXM6IEVudW1Qcm9jZXNzYW1lbnRvU3RhdHVzLCBtZXNzYWdlPzogc3RyaW5nKSB7XG4gICAgICAgIHJvdy5zdGF0dXMgPSBzdGF0dXM7XG4gICAgICAgIGlmIChtZXNzYWdlKSB7XG4gICAgICAgICAgICByb3cubWVzc2FnZSA9IG1lc3NhZ2U7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zb3J0R3JpZERhdGEoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNvcnRHcmlkRGF0YSgpIHtcbiAgICAgICAgdGhpcy5ncmlkRGF0YS5zb3J0KChhOiBhbnksIGI6IGFueSkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3RhdHVzT3JkZXIgPSB7XG4gICAgICAgICAgICAgICAgW0VudW1Qcm9jZXNzYW1lbnRvU3RhdHVzLkZBSUxFRF06IDEsXG4gICAgICAgICAgICAgICAgW0VudW1Qcm9jZXNzYW1lbnRvU3RhdHVzLlBST0NFU1NJTkddOiAyLFxuICAgICAgICAgICAgICAgIFtFbnVtUHJvY2Vzc2FtZW50b1N0YXR1cy5TVUNDRVNTXTogMyxcbiAgICAgICAgICAgICAgICBbRW51bVByb2Nlc3NhbWVudG9TdGF0dXMuUEVORElOR106IDRcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAodGhpcy5zb3J0RmllbGQgPT09ICdzdGF0dXMnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChzdGF0dXNPcmRlclthLnN0YXR1cyBhcyBFbnVtUHJvY2Vzc2FtZW50b1N0YXR1c10gLSBzdGF0dXNPcmRlcltiLnN0YXR1cyBhcyBFbnVtUHJvY2Vzc2FtZW50b1N0YXR1c10pICogdGhpcy5zb3J0T3JkZXI7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbEEgPSBhW3RoaXMuc29ydEZpZWxkXSB8fCAnJztcbiAgICAgICAgICAgICAgICBjb25zdCB2YWxCID0gYlt0aGlzLnNvcnRGaWVsZF0gfHwgJyc7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbEEubG9jYWxlQ29tcGFyZSh2YWxCKSAqIHRoaXMuc29ydE9yZGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RGF0YShyb3dEYXRhOiBhbnksIGZpZWxkOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKGZpZWxkID09PSAnc3RhdHVzJykge1xuICAgICAgICAgICAgbGV0IHRleHQgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KEVudW1Qcm9jZXNzYW1lbnRvU3RhdHVzVHJhbnNsYXRpb25NYXBbcm93RGF0YS5zdGF0dXMgYXMgRW51bVByb2Nlc3NhbWVudG9TdGF0dXNdKTtcbiAgICAgICAgICAgIGlmIChyb3dEYXRhLm1lc3NhZ2UpIHtcbiAgICAgICAgICAgICAgICB0ZXh0ICs9IGA6ICR7cm93RGF0YS5tZXNzYWdlfWA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdGV4dDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcm93RGF0YVtmaWVsZF07XG4gICAgfVxuXG4gICAgcHVibGljIGdldENsYXNzU3RhdHVzKHJvd0RhdGE6IGFueSwgZmllbGQ6IHN0cmluZykge1xuICAgICAgICBpZiAoZmllbGQgIT09ICdzdGF0dXMnKSB7XG4gICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAgYHN0YXR1cyAke3Jvd0RhdGFbZmllbGRdLnRvTG93ZXJDYXNlKCl9YDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0R3JpZENvbHVtbigpOiBDb2x1bW5bXSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZmllbGQ6ICdsYWJlbCcsXG4gICAgICAgICAgICAgICAgaGVhZGVyOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCd0bXN4X2ZuZC50bXN4X2FuZ3VsYXJfY29tcG9uZW50cy5yZWdpc3RybycpLFxuICAgICAgICAgICAgICAgIHN0eWxlOiB7IHdpZHRoOiAnNTAlJyB9LFxuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IFtdLFxuICAgICAgICAgICAgICAgIHR5cGU6IEVudW1Db2x1bW5GaWVsZFR5cGUuU1RSSU5HXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGZpZWxkOiAnc3RhdHVzJyxcbiAgICAgICAgICAgICAgICBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3Rtc3hfZm5kLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLnN0YXR1cycpLFxuICAgICAgICAgICAgICAgIHN0eWxlOiB7IHdpZHRoOiAnNTAlJyB9LFxuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IFtdLFxuICAgICAgICAgICAgICAgIHR5cGU6IEVudW1Db2x1bW5GaWVsZFR5cGUuU1RSSU5HXG4gICAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgIH1cbn1cbiJdfQ==
|
|
235
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbmVsLXByb2Nlc3NhbWVudG8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL3Rtc3gtYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9wYWluZWwtcHJvY2Vzc2FtZW50by9wYWluZWwtcHJvY2Vzc2FtZW50by5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUscUNBQXFDLEVBQXlDLE1BQU0saUJBQWlCLENBQUM7QUFDeEksT0FBTyxFQUFVLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7OztBQVVqRixJQUFhLDRCQUE0QixvQ0FBekMsTUFBYSw0QkFBNEI7SUFzQnJDLFlBQ3FCLFNBQTJCO1FBQTNCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBbEJ0QyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNoQyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUtsQyxpQkFBWSxHQUFHLENBQUMsQ0FBQztRQUNqQixpQkFBWSxHQUFHLENBQUMsQ0FBQztRQUNqQixnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUNoQixpQkFBWSxHQUFHLENBQUMsQ0FBQztRQUNqQixvQkFBZSxHQUFHLElBQUksQ0FBQztRQUN2QixtQkFBYyxHQUFHLElBQUksQ0FBQztRQUN0QixvQkFBZSxHQUFHLE1BQU0sQ0FBQztRQUN6Qix1QkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDMUIsY0FBUyxHQUFHLFFBQVEsQ0FBQztRQUNyQixjQUFTLEdBQUcsQ0FBQyxDQUFDO0lBSWpCLENBQUM7SUFFTCxRQUFRO1FB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QkFBbUIsQ0FBQyxNQUFNO2FBQ25DO1NBQ0osQ0FBQztJQUNOLENBQUM7Q0FDSixDQUFBO0FBaE8yQiw0Q0FBZSxHQUFHLHFFQUFxRSxDQUFDOztZQXFCaEYsZ0JBQWdCOzs7QUFuQnZDO0lBQVIsS0FBSyxFQUFFOzREQUE0QjtBQUMxQjtJQUFULE1BQU0sRUFBRTtnRUFBaUM7QUFDaEM7SUFBVCxNQUFNLEVBQUU7K0RBQWdDO0FBTmhDLDRCQUE0QjtJQVJ4QyxVQUFVLENBQUM7UUFDUixVQUFVLEVBQUUsTUFBTTtLQUNyQixDQUFDO0lBQ0QsU0FBUyxDQUFDO1FBQ1QsUUFBUSxFQUFFLDJCQUEyQjtRQUNyQyx5NEZBQW9EOztLQUVyRCxDQUFDO0dBQ1csNEJBQTRCLENBa094QztTQWxPWSw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdGFibGUsIElucHV0LCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbnVtUHJvY2Vzc2FtZW50b1N0YXR1cywgRW51bVByb2Nlc3NhbWVudG9TdGF0dXNUcmFuc2xhdGlvbk1hcCwgUHJvY2Vzc2FtZW50b0dyaWQsIFByb2Nlc3NhbWVudG9JbnB1dCB9IGZyb20gJy4vcHJvY2Vzc2FtZW50byc7XG5pbXBvcnQgeyBDb2x1bW4sIEVudW1Db2x1bW5GaWVsZFR5cGUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rtc3gtcGFpbmVsLXByb2Nlc3NhbWVudG8nLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFpbmVsLXByb2Nlc3NhbWVudG8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wYWluZWwtcHJvY2Vzc2FtZW50by5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFBhaW5lbFByb2Nlc3NhbWVudG9Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgR0VORVJJQ19FUlJfS0VZID0gJ3Rtc3hfZm5kLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLnBhaW5lbF9wcm9jZXNzYW1lbnRvX2dlbmVyaWNfZXJyb3InO1xuXG4gICAgQElucHV0KCkgcGFyYW1zOiBQcm9jZXNzYW1lbnRvSW5wdXQ7XG4gICAgQE91dHB1dCgpIHByb2Nlc3NhZG8gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGNvbmNsdWlkbyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBncmlkRGF0YTogUHJvY2Vzc2FtZW50b0dyaWRbXTtcbiAgICBwdWJsaWMgZ3JpZENvbHVtbnM6IENvbHVtbltdO1xuXG4gICAgcHVibGljIHRvdGFsUmVjb3JkcyA9IDA7XG4gICAgcHVibGljIHN1Y2Nlc3NDb3VudCA9IDA7XG4gICAgcHVibGljIGZhaWxlZENvdW50ID0gMDtcbiAgICBwdWJsaWMgcGVuZGluZ0NvdW50ID0gMDtcbiAgICBwdWJsaWMgc3VjY2Vzc1Byb2dyZXNzID0gJzAlJztcbiAgICBwdWJsaWMgZmFpbGVkUHJvZ3Jlc3MgPSAnMCUnO1xuICAgIHB1YmxpYyBwZW5kaW5nUHJvZ3Jlc3MgPSAnMTAwJSc7XG4gICAgcHVibGljIHByb2Nlc3NpbmdQcm9ncmVzcyA9ICcwJSc7XG4gICAgcHVibGljIHNvcnRGaWVsZCA9ICdzdGF0dXMnO1xuICAgIHB1YmxpYyBzb3J0T3JkZXIgPSAxO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICAgKSB7IH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmluaXRQYW5lbCgpO1xuICAgIH1cblxuICAgIGluaXRQYW5lbCgpIHtcbiAgICAgICAgdGhpcy5ncmlkQ29sdW1ucyA9IHRoaXMuZ2V0R3JpZENvbHVtbigpO1xuICAgICAgICB0aGlzLmluaXRHcmlkKCk7XG4gICAgICAgIHRoaXMuaW5pdFByb2dyZXNzQmFyKCk7XG4gICAgfVxuXG4gICAgaW5pdFByb2dyZXNzQmFyKCkge1xuICAgICAgICB0aGlzLnN1Y2Nlc3NQcm9ncmVzcyA9ICcwJSc7XG4gICAgICAgIHRoaXMuZmFpbGVkUHJvZ3Jlc3MgPSAnMCUnO1xuICAgICAgICB0aGlzLnBlbmRpbmdQcm9ncmVzcyA9ICcxMDAlJztcbiAgICAgICAgdGhpcy5wcm9jZXNzaW5nUHJvZ3Jlc3MgPSAnMCUnO1xuICAgICAgICB0aGlzLnRvdGFsUmVjb3JkcyA9IHRoaXMucGFyYW1zLnJlZ2lzdHJvcy5sZW5ndGg7XG4gICAgICAgIHRoaXMucGVuZGluZ0NvdW50ID0gdGhpcy50b3RhbFJlY29yZHM7XG5cbiAgICAgICAgaWYgKHRoaXMucGFyYW1zLnF1YW50aWRhZGVDaGFtYWRhc1NpbXVsdGFuZWFzID4gMSkge1xuICAgICAgICAgICAgdGhpcy5wcm9jZXNzQWxsUmVjb3Jkc1dpdGhQTGltaXQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3luY1Byb2Nlc3NSZWNvcmQoMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbml0R3JpZCgpIHtcbiAgICAgICAgdGhpcy5ncmlkRGF0YSA9IFtdO1xuICAgICAgICB0aGlzLmdyaWREYXRhID0gdGhpcy5wYXJhbXMucmVnaXN0cm9zLm1hcChyZWdpc3RybyA9PiAoe1xuICAgICAgICAgICAgcmVnaXN0cm8sXG4gICAgICAgICAgICBzdGF0dXM6IEVudW1Qcm9jZXNzYW1lbnRvU3RhdHVzLlBFTkRJTkcsXG4gICAgICAgICAgICBsYWJlbDogcmVnaXN0cm8uZGVzY3JpY2FvXG4gICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEVycm9yTWVzc2FnZShlcnJvcjogYW55KTogc3RyaW5nIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmICghZXJyb3IpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZW5lcmljRXJyb3JNc2c7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZXJyb3I/LmVycm9yPy5tZXNzYWdlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZyhlcnJvci5lcnJvci5tZXNzYWdlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChlcnJvcj8ubWVzc2FnZT8ubWVzc2FnZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoZXJyb3IubWVzc2FnZS5tZXNzYWdlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdlbmVyaWNFcnJvck1zZztcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZW5lcmljRXJyb3JNc2c7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBnZW5lcmljRXJyb3JNc2coKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoUGFpbmVsUHJvY2Vzc2FtZW50b0NvbXBvbmVudC5HRU5FUklDX0VSUl9LRVkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlUm93U3VjY2Vzcyhyb3c6IGFueSwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnN1Y2Nlc3NDb3VudCsrO1xuICAgICAgICB0aGlzLnBlbmRpbmdDb3VudC0tO1xuICAgICAgICB0aGlzLnVwZGF0ZVJvd1N0YXR1cyhyb3csIEVudW1Qcm9jZXNzYW1lbnRvU3RhdHVzLlNVQ0NFU1MpO1xuICAgICAgICB0aGlzLnByb2Nlc3NhZG8uZW1pdChyb3cpO1xuICAgICAgICB0aGlzLnVwZGF0ZVByb2dyZXNzQmFyKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVSb3dFcnJvcihyb3c6IGFueSwgaW5kZXg6IG51bWJlciwgbWVzc2FnZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmFpbGVkQ291bnQrKztcbiAgICAgICAgdGhpcy5wZW5kaW5nQ291bnQtLTtcbiAgICAgICAgdGhpcy51cGRhdGVSb3dTdGF0dXMocm93LCBFbnVtUHJvY2Vzc2FtZW50b1N0YXR1cy5GQUlMRUQsIG1lc3NhZ2UpO1xuICAgICAgICB0aGlzLnByb2Nlc3NhZG8uZW1pdChyb3cpO1xuICAgICAgICB0aGlzLnVwZGF0ZVByb2dyZXNzQmFyKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzeW5jUHJvY2Vzc1JlY29yZChpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnBlbmRpbmdDb3VudCA8IDEpIHtcbiAgICAgICAgICAgIHRoaXMuY29uY2x1aWRvLmVtaXQoJ29rJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy51cGRhdGVSb3dTdGF0dXModGhpcy5ncmlkRGF0YVtpbmRleF0sIEVudW1Qcm9jZXNzYW1lbnRvU3RhdHVzLlBST0NFU1NJTkcpO1xuICAgICAgICBjb25zdCByZWNvcmQgPSB0aGlzLnBhcmFtcy5yZWdpc3Ryb3NbaW5kZXhdO1xuICAgICAgICBjb25zdCByb3cgPSB0aGlzLmdyaWREYXRhLmZpbmQoaXRlbSA9PiBpdGVtLnJlZ2lzdHJvID09PSByZWNvcmQpO1xuXG4gICAgICAgIGlmIChyZWNvcmQuYXBpRW52aW8pIHtcbiAgICAgICAgICAgIHJlY29yZC5hcGlFbnZpbyhyZWNvcmQub2JqRW52aW8pXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlUm93U3VjY2Vzcyhyb3csIGluZGV4KTtcbiAgICAgICAgICAgICAgICAgIHRoaXMuc3luY1Byb2Nlc3NSZWNvcmQoaW5kZXggKyAxKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVJvd0Vycm9yKHJvdywgaW5kZXgsIHRoaXMuZ2V0RXJyb3JNZXNzYWdlKGVycm9yKSk7XG4gICAgICAgICAgICAgICAgICB0aGlzLnN5bmNQcm9jZXNzUmVjb3JkKGluZGV4ICsgMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZmFpbGVkQ291bnQgPSB0aGlzLnBlbmRpbmdDb3VudDtcbiAgICAgICAgICAgIHRoaXMucGVuZGluZ0NvdW50ID0gMDtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUm93U3RhdHVzKHJvdyxcbiAgICAgICAgICAgICAgICAgRW51bVByb2Nlc3NhbWVudG9TdGF0dXMuRkFJTEVELFxuICAgICAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3Rtc3hfZm5kLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLnBhaW5lbF9wcm9jZXNzYW1lbnRvX2FwaV9lcnJvcicpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVQcm9ncmVzc0JhcigpO1xuICAgICAgICAgICAgdGhpcy5jb25jbHVpZG8uZW1pdCgnZXJybycpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXN5bmMgcHJvY2Vzc0FsbFJlY29yZHNXaXRoUExpbWl0KCkge1xuICAgICAgY29uc3QgcExpbWl0ID0gcmVxdWlyZSgncC1saW1pdCcpO1xuICAgICAgY29uc3QgbGltaXQgPSBwTGltaXQodGhpcy5wYXJhbXMucXVhbnRpZGFkZUNoYW1hZGFzU2ltdWx0YW5lYXMpO1xuICAgICAgY29uc3QgcHJvbWlzZXMgPSB0aGlzLnBhcmFtcy5yZWdpc3Ryb3MubWFwKChyZWNvcmQsIGluZGV4KSA9PiB7XG4gICAgICAgIHJldHVybiBsaW1pdChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgY29uc3Qgcm93ID0gdGhpcy5ncmlkRGF0YS5maW5kKGl0ZW0gPT4gaXRlbS5yZWdpc3RybyA9PT0gcmVjb3JkKTtcbiAgICAgICAgICB0aGlzLnVwZGF0ZVJvd1N0YXR1cyhyb3csIEVudW1Qcm9jZXNzYW1lbnRvU3RhdHVzLlBST0NFU1NJTkcpO1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZWNvcmQuYXBpRW52aW8ocmVjb3JkLm9iakVudmlvKS50b1Byb21pc2UoKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUm93U3VjY2Vzcyhyb3csIGluZGV4KTtcbiAgICAgICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IHRydWUsIHJlY29yZCwgcmVzdWx0IH07XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUm93RXJyb3Iocm93LCBpbmRleCwgdGhpcy5nZXRFcnJvck1lc3NhZ2UoZXJyb3IpKTtcbiAgICAgICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IGZhbHNlLCByZWNvcmQsIGVycm9yIH07XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKTtcbiAgICAgIHRoaXMuY29uY2x1aWRvLmVtaXQocmVzdWx0cyk7XG4gICAgICByZXR1cm4gcmVzdWx0cztcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVByb2dyZXNzQmFyKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzdWNjZXNzV2lkdGggPSAodGhpcy5zdWNjZXNzQ291bnQgLyB0aGlzLnRvdGFsUmVjb3JkcykgKiAxMDA7XG4gICAgICAgIGNvbnN0IGZhaWxlZFdpZHRoID0gKHRoaXMuZmFpbGVkQ291bnQgLyB0aGlzLnRvdGFsUmVjb3JkcykgKiAxMDA7XG4gICAgICAgIGNvbnN0IHBlbmRpbmdXaWR0aCA9ICh0aGlzLnBlbmRpbmdDb3VudCAvIHRoaXMudG90YWxSZWNvcmRzKSAqIDEwMDtcbiAgICAgICAgY29uc3QgcHJvY2Vzc2VkV2lkdGggPSBzdWNjZXNzV2lkdGggKyBmYWlsZWRXaWR0aDtcblxuICAgICAgICB0aGlzLnByb2Nlc3NpbmdQcm9ncmVzcyA9IGAke3Byb2Nlc3NlZFdpZHRoLnRvRml4ZWQoMCl9JWA7XG4gICAgICAgIHRoaXMuc3VjY2Vzc1Byb2dyZXNzID0gYCR7c3VjY2Vzc1dpZHRoLnRvRml4ZWQoMCl9JWA7XG4gICAgICAgIHRoaXMuZmFpbGVkUHJvZ3Jlc3MgPSBgJHtmYWlsZWRXaWR0aC50b0ZpeGVkKDApfSVgO1xuICAgICAgICB0aGlzLnBlbmRpbmdQcm9ncmVzcyA9IGAke3BlbmRpbmdXaWR0aC50b0ZpeGVkKDApfSVgO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGVSb3dTdGF0dXMocm93OiBhbnksIHN0YXR1czogRW51bVByb2Nlc3NhbWVudG9TdGF0dXMsIG1lc3NhZ2U/OiBzdHJpbmcpIHtcbiAgICAgICAgcm93LnN0YXR1cyA9IHN0YXR1cztcbiAgICAgICAgaWYgKG1lc3NhZ2UpIHtcbiAgICAgICAgICAgIHJvdy5tZXNzYWdlID0gbWVzc2FnZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNvcnRHcmlkRGF0YSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc29ydEdyaWREYXRhKCkge1xuICAgICAgICB0aGlzLmdyaWREYXRhLnNvcnQoKGE6IGFueSwgYjogYW55KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzdGF0dXNPcmRlciA9IHtcbiAgICAgICAgICAgICAgICBbRW51bVByb2Nlc3NhbWVudG9TdGF0dXMuRkFJTEVEXTogMSxcbiAgICAgICAgICAgICAgICBbRW51bVByb2Nlc3NhbWVudG9TdGF0dXMuUFJPQ0VTU0lOR106IDIsXG4gICAgICAgICAgICAgICAgW0VudW1Qcm9jZXNzYW1lbnRvU3RhdHVzLlNVQ0NFU1NdOiAzLFxuICAgICAgICAgICAgICAgIFtFbnVtUHJvY2Vzc2FtZW50b1N0YXR1cy5QRU5ESU5HXTogNFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmICh0aGlzLnNvcnRGaWVsZCA9PT0gJ3N0YXR1cycpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKHN0YXR1c09yZGVyW2Euc3RhdHVzIGFzIEVudW1Qcm9jZXNzYW1lbnRvU3RhdHVzXSAtIHN0YXR1c09yZGVyW2Iuc3RhdHVzIGFzIEVudW1Qcm9jZXNzYW1lbnRvU3RhdHVzXSkgKiB0aGlzLnNvcnRPcmRlcjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsQSA9IGFbdGhpcy5zb3J0RmllbGRdIHx8ICcnO1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbEIgPSBiW3RoaXMuc29ydEZpZWxkXSB8fCAnJztcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsQS5sb2NhbGVDb21wYXJlKHZhbEIpICogdGhpcy5zb3J0T3JkZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXREYXRhKHJvd0RhdGE6IGFueSwgZmllbGQ6IHN0cmluZykge1xuICAgICAgICBpZiAoZmllbGQgPT09ICdzdGF0dXMnKSB7XG4gICAgICAgICAgICBsZXQgdGV4dCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoRW51bVByb2Nlc3NhbWVudG9TdGF0dXNUcmFuc2xhdGlvbk1hcFtyb3dEYXRhLnN0YXR1cyBhcyBFbnVtUHJvY2Vzc2FtZW50b1N0YXR1c10pO1xuICAgICAgICAgICAgaWYgKHJvd0RhdGEubWVzc2FnZSkge1xuICAgICAgICAgICAgICAgIHRleHQgKz0gYDogJHtyb3dEYXRhLm1lc3NhZ2V9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0ZXh0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByb3dEYXRhW2ZpZWxkXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q2xhc3NTdGF0dXMocm93RGF0YTogYW55LCBmaWVsZDogc3RyaW5nKSB7XG4gICAgICAgIGlmIChmaWVsZCAhPT0gJ3N0YXR1cycpIHtcbiAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICBgc3RhdHVzICR7cm93RGF0YVtmaWVsZF0udG9Mb3dlckNhc2UoKX1gO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRHcmlkQ29sdW1uKCk6IENvbHVtbltdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBmaWVsZDogJ2xhYmVsJyxcbiAgICAgICAgICAgICAgICBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3Rtc3hfZm5kLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLnJlZ2lzdHJvJyksXG4gICAgICAgICAgICAgICAgc3R5bGU6IHsgd2lkdGg6ICc1MCUnIH0sXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczogW10sXG4gICAgICAgICAgICAgICAgdHlwZTogRW51bUNvbHVtbkZpZWxkVHlwZS5TVFJJTkdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZmllbGQ6ICdzdGF0dXMnLFxuICAgICAgICAgICAgICAgIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgndG1zeF9mbmQudG1zeF9hbmd1bGFyX2NvbXBvbmVudHMuc3RhdHVzJyksXG4gICAgICAgICAgICAgICAgc3R5bGU6IHsgd2lkdGg6ICc1MCUnIH0sXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczogW10sXG4gICAgICAgICAgICAgICAgdHlwZTogRW51bUNvbHVtbkZpZWxkVHlwZS5TVFJJTkdcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgfVxufVxuIl19
|
|
@@ -21,6 +21,7 @@ var PainelProcessamentoComponent = /** @class */ (function () {
|
|
|
21
21
|
this.sortField = 'status';
|
|
22
22
|
this.sortOrder = 1;
|
|
23
23
|
}
|
|
24
|
+
PainelProcessamentoComponent_1 = PainelProcessamentoComponent;
|
|
24
25
|
PainelProcessamentoComponent.prototype.ngOnInit = function () {
|
|
25
26
|
this.initPanel();
|
|
26
27
|
};
|
|
@@ -51,6 +52,31 @@ var PainelProcessamentoComponent = /** @class */ (function () {
|
|
|
51
52
|
label: registro.descricao
|
|
52
53
|
}); });
|
|
53
54
|
};
|
|
55
|
+
PainelProcessamentoComponent.prototype.getErrorMessage = function (error) {
|
|
56
|
+
var _a, _b;
|
|
57
|
+
try {
|
|
58
|
+
if (!error) {
|
|
59
|
+
return this.genericErrorMsg;
|
|
60
|
+
}
|
|
61
|
+
if ((_a = error === null || error === void 0 ? void 0 : error.error) === null || _a === void 0 ? void 0 : _a.message) {
|
|
62
|
+
return String(error.error.message);
|
|
63
|
+
}
|
|
64
|
+
if ((_b = error === null || error === void 0 ? void 0 : error.message) === null || _b === void 0 ? void 0 : _b.message) {
|
|
65
|
+
return String(error.message.message);
|
|
66
|
+
}
|
|
67
|
+
return this.genericErrorMsg;
|
|
68
|
+
}
|
|
69
|
+
catch (_c) {
|
|
70
|
+
return this.genericErrorMsg;
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
Object.defineProperty(PainelProcessamentoComponent.prototype, "genericErrorMsg", {
|
|
74
|
+
get: function () {
|
|
75
|
+
return this.translate.instant(PainelProcessamentoComponent_1.GENERIC_ERR_KEY);
|
|
76
|
+
},
|
|
77
|
+
enumerable: true,
|
|
78
|
+
configurable: true
|
|
79
|
+
});
|
|
54
80
|
PainelProcessamentoComponent.prototype.updateRowSuccess = function (row, index) {
|
|
55
81
|
this.successCount++;
|
|
56
82
|
this.pendingCount--;
|
|
@@ -80,7 +106,7 @@ var PainelProcessamentoComponent = /** @class */ (function () {
|
|
|
80
106
|
_this.updateRowSuccess(row, index);
|
|
81
107
|
_this.syncProcessRecord(index + 1);
|
|
82
108
|
}, function (error) {
|
|
83
|
-
_this.updateRowError(row, index, error
|
|
109
|
+
_this.updateRowError(row, index, _this.getErrorMessage(error));
|
|
84
110
|
_this.syncProcessRecord(index + 1);
|
|
85
111
|
});
|
|
86
112
|
}
|
|
@@ -119,7 +145,7 @@ var PainelProcessamentoComponent = /** @class */ (function () {
|
|
|
119
145
|
return [2 /*return*/, { success: true, record: record, result: result }];
|
|
120
146
|
case 3:
|
|
121
147
|
error_1 = _a.sent();
|
|
122
|
-
this.updateRowError(row, index, error_1
|
|
148
|
+
this.updateRowError(row, index, this.getErrorMessage(error_1));
|
|
123
149
|
return [2 /*return*/, { success: false, record: record, error: error_1 }];
|
|
124
150
|
case 4: return [2 /*return*/];
|
|
125
151
|
}
|
|
@@ -139,10 +165,11 @@ var PainelProcessamentoComponent = /** @class */ (function () {
|
|
|
139
165
|
var successWidth = (this.successCount / this.totalRecords) * 100;
|
|
140
166
|
var failedWidth = (this.failedCount / this.totalRecords) * 100;
|
|
141
167
|
var pendingWidth = (this.pendingCount / this.totalRecords) * 100;
|
|
142
|
-
|
|
143
|
-
this.
|
|
144
|
-
this.
|
|
145
|
-
this.
|
|
168
|
+
var processedWidth = successWidth + failedWidth;
|
|
169
|
+
this.processingProgress = processedWidth.toFixed(0) + "%";
|
|
170
|
+
this.successProgress = successWidth.toFixed(0) + "%";
|
|
171
|
+
this.failedProgress = failedWidth.toFixed(0) + "%";
|
|
172
|
+
this.pendingProgress = pendingWidth.toFixed(0) + "%";
|
|
146
173
|
};
|
|
147
174
|
PainelProcessamentoComponent.prototype.updateRowStatus = function (row, status, message) {
|
|
148
175
|
row.status = status;
|
|
@@ -205,6 +232,8 @@ var PainelProcessamentoComponent = /** @class */ (function () {
|
|
|
205
232
|
},
|
|
206
233
|
];
|
|
207
234
|
};
|
|
235
|
+
var PainelProcessamentoComponent_1;
|
|
236
|
+
PainelProcessamentoComponent.GENERIC_ERR_KEY = 'tmsx_fnd.tmsx_angular_components.painel_processamento_generic_error';
|
|
208
237
|
PainelProcessamentoComponent.ctorParameters = function () { return [
|
|
209
238
|
{ type: TranslateService }
|
|
210
239
|
]; };
|
|
@@ -218,7 +247,7 @@ var PainelProcessamentoComponent = /** @class */ (function () {
|
|
|
218
247
|
__decorate([
|
|
219
248
|
Output()
|
|
220
249
|
], PainelProcessamentoComponent.prototype, "concluido", void 0);
|
|
221
|
-
PainelProcessamentoComponent = __decorate([
|
|
250
|
+
PainelProcessamentoComponent = PainelProcessamentoComponent_1 = __decorate([
|
|
222
251
|
Injectable({
|
|
223
252
|
providedIn: 'root'
|
|
224
253
|
}),
|
|
@@ -231,4 +260,4 @@ var PainelProcessamentoComponent = /** @class */ (function () {
|
|
|
231
260
|
return PainelProcessamentoComponent;
|
|
232
261
|
}());
|
|
233
262
|
export { PainelProcessamentoComponent };
|
|
234
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbmVsLXByb2Nlc3NhbWVudG8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL3Rtc3gtYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9wYWluZWwtcHJvY2Vzc2FtZW50by9wYWluZWwtcHJvY2Vzc2FtZW50by5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxxQ0FBcUMsRUFBeUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN4SSxPQUFPLEVBQVUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7O0FBVWpGO0lBb0JJLHNDQUNxQixTQUEyQjtRQUEzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQWxCdEMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDaEMsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFLbEMsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDakIsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDakIsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFDaEIsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDakIsb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFDdkIsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIsb0JBQWUsR0FBRyxNQUFNLENBQUM7UUFDekIsdUJBQWtCLEdBQUcsSUFBSSxDQUFDO1FBQzFCLGNBQVMsR0FBRyxRQUFRLENBQUM7UUFDckIsY0FBUyxHQUFHLENBQUMsQ0FBQztJQUlqQixDQUFDO0lBRUwsK0NBQVEsR0FBUjtRQUNJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsZ0RBQVMsR0FBVDtRQUNJLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELHNEQUFlLEdBQWY7UUFDSSxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUM1QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUMzQixJQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQztRQUM5QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO1FBQy9CLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO1FBQ2pELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUV0QyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsNkJBQTZCLEdBQUcsQ0FBQyxFQUFFO1lBQy9DLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDO1NBQ3RDO2FBQU07WUFDSCxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDN0I7SUFDTCxDQUFDO0lBRUQsK0NBQVEsR0FBUjtRQUNJLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFVBQUEsUUFBUSxJQUFJLE9BQUEsQ0FBQztZQUNuRCxRQUFRLFVBQUE7WUFDUixNQUFNLEVBQUUsdUJBQXVCLENBQUMsT0FBTztZQUN2QyxLQUFLLEVBQUUsUUFBUSxDQUFDLFNBQVM7U0FDNUIsQ0FBQyxFQUpvRCxDQUlwRCxDQUFDLENBQUM7SUFDUixDQUFDO0lBRU8sdURBQWdCLEdBQXhCLFVBQXlCLEdBQVEsRUFBRSxLQUFhO1FBQzVDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVPLHFEQUFjLEdBQXRCLFVBQXVCLEdBQVEsRUFBRSxLQUFhLEVBQUUsT0FBZTtRQUMzRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLHVCQUF1QixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU8sd0RBQWlCLEdBQXpCLFVBQTBCLEtBQWE7UUFBdkMsaUJBK0JDO1FBOUJHLElBQUksSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDMUIsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLHVCQUF1QixDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQy9FLElBQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVDLElBQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQUEsSUFBSSxJQUFJLE9BQUEsSUFBSSxDQUFDLFFBQVEsS0FBSyxNQUFNLEVBQXhCLENBQXdCLENBQUMsQ0FBQztRQUVqRSxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUU7WUFDakIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDO2lCQUMvQixTQUFTLENBQ047Z0JBQ0UsS0FBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDbEMsS0FBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNwQyxDQUFDLEVBQ0QsVUFBQyxLQUFVO2dCQUNULEtBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQy9DLEtBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDcEMsQ0FBQyxDQUNKLENBQUM7U0FDTDthQUFNO1lBQ0gsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUNuQix1QkFBdUIsQ0FBQyxNQUFNLEVBQy9CLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLGlFQUFpRSxDQUFDLENBQzVGLENBQUM7WUFDRixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMvQjtJQUNMLENBQUM7SUFFSyxrRUFBMkIsR0FBakM7Ozs7Ozs7d0JBQ1EsTUFBTSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQzt3QkFDNUIsS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLDZCQUE2QixDQUFDLENBQUM7d0JBQzFELFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsVUFBQyxNQUFNLEVBQUUsS0FBSzs0QkFDdkQsT0FBTyxLQUFLLENBQUM7Ozs7OzRDQUNMLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFBLElBQUksSUFBSSxPQUFBLElBQUksQ0FBQyxRQUFRLEtBQUssTUFBTSxFQUF4QixDQUF3QixDQUFDLENBQUM7NENBQ2pFLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLHVCQUF1QixDQUFDLFVBQVUsQ0FBQyxDQUFDOzs7OzRDQUU3QyxxQkFBTSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBQTs7NENBQTNELE1BQU0sR0FBRyxTQUFrRDs0Q0FDakUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQzs0Q0FDbEMsc0JBQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBQSxFQUFFLE1BQU0sUUFBQSxFQUFFLEVBQUM7Ozs0Q0FFekMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQUssQ0FBQyxPQUFPLENBQUMsQ0FBQzs0Q0FDL0Msc0JBQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sUUFBQSxFQUFFLEtBQUssU0FBQSxFQUFFLEVBQUM7Ozs7aUNBRTVDLENBQUMsQ0FBQzt3QkFDTCxDQUFDLENBQUMsQ0FBQzt3QkFDYSxxQkFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFBOzt3QkFBckMsT0FBTyxHQUFHLFNBQTJCO3dCQUMzQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzt3QkFDN0Isc0JBQU8sT0FBTyxFQUFDOzs7O0tBQ2hCO0lBRU8sd0RBQWlCLEdBQXpCO1FBQ0ksSUFBTSxZQUFZLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDbkUsSUFBTSxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDakUsSUFBTSxZQUFZLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDbkUsSUFBSSxDQUFDLGtCQUFrQixHQUFNLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQyxNQUFHLENBQUM7UUFFN0QsSUFBSSxDQUFDLGVBQWUsR0FBTSxZQUFZLE1BQUcsQ0FBQztRQUMxQyxJQUFJLENBQUMsY0FBYyxHQUFNLFdBQVcsTUFBRyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxlQUFlLEdBQU0sWUFBWSxNQUFHLENBQUM7SUFDOUMsQ0FBQztJQUVNLHNEQUFlLEdBQXRCLFVBQXVCLEdBQVEsRUFBRSxNQUErQixFQUFFLE9BQWdCO1FBQzlFLEdBQUcsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3BCLElBQUksT0FBTyxFQUFFO1lBQ1QsR0FBRyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7U0FDekI7UUFDRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVPLG1EQUFZLEdBQXBCO1FBQUEsaUJBZ0JDO1FBZkcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBQyxDQUFNLEVBQUUsQ0FBTTs7WUFDOUIsSUFBTSxXQUFXO2dCQUNiLEdBQUMsdUJBQXVCLENBQUMsTUFBTSxJQUFHLENBQUM7Z0JBQ25DLEdBQUMsdUJBQXVCLENBQUMsVUFBVSxJQUFHLENBQUM7Z0JBQ3ZDLEdBQUMsdUJBQXVCLENBQUMsT0FBTyxJQUFHLENBQUM7Z0JBQ3BDLEdBQUMsdUJBQXVCLENBQUMsT0FBTyxJQUFHLENBQUM7bUJBQ3ZDLENBQUM7WUFDRixJQUFJLEtBQUksQ0FBQyxTQUFTLEtBQUssUUFBUSxFQUFFO2dCQUM3QixPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxNQUFpQyxDQUFDLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQyxNQUFpQyxDQUFDLENBQUMsR0FBRyxLQUFJLENBQUMsU0FBUyxDQUFDO2FBQ2pJO2lCQUFNO2dCQUNILElBQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxLQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNyQyxJQUFNLElBQUksR0FBRyxDQUFDLENBQUMsS0FBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDckMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUksQ0FBQyxTQUFTLENBQUM7YUFDcEQ7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTSw4Q0FBTyxHQUFkLFVBQWUsT0FBWSxFQUFFLEtBQWE7UUFDdEMsSUFBSSxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQ3BCLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLHFDQUFxQyxDQUFDLE9BQU8sQ0FBQyxNQUFpQyxDQUFDLENBQUMsQ0FBQztZQUNwSCxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUU7Z0JBQ2pCLElBQUksSUFBSSxPQUFLLE9BQU8sQ0FBQyxPQUFTLENBQUM7YUFDbEM7WUFDRCxPQUFPLElBQUksQ0FBQztTQUNmO1FBQ0QsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVNLHFEQUFjLEdBQXJCLFVBQXNCLE9BQVksRUFBRSxLQUFhO1FBQzdDLElBQUksS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUN0QixPQUFPLEVBQUUsQ0FBQztTQUNYO1FBQ0QsT0FBUSxZQUFVLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxXQUFXLEVBQUksQ0FBQztJQUNyRCxDQUFDO0lBRU0sb0RBQWEsR0FBcEI7UUFDSSxPQUFPO1lBQ0g7Z0JBQ0ksS0FBSyxFQUFFLE9BQU87Z0JBQ2QsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLDJDQUEyQyxDQUFDO2dCQUMzRSxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO2dCQUN2QixVQUFVLEVBQUUsRUFBRTtnQkFDZCxJQUFJLEVBQUUsbUJBQW1CLENBQUMsTUFBTTthQUNuQztZQUNEO2dCQUNJLEtBQUssRUFBRSxRQUFRO2dCQUNmLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyx5Q0FBeUMsQ0FBQztnQkFDekUsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtnQkFDdkIsVUFBVSxFQUFFLEVBQUU7Z0JBQ2QsSUFBSSxFQUFFLG1CQUFtQixDQUFDLE1BQU07YUFDbkM7U0FDSixDQUFDO0lBQ04sQ0FBQzs7Z0JBcEwrQixnQkFBZ0I7OztJQW5CdkM7UUFBUixLQUFLLEVBQUU7Z0VBQTRCO0lBQzFCO1FBQVQsTUFBTSxFQUFFO29FQUFpQztJQUNoQztRQUFULE1BQU0sRUFBRTttRUFBZ0M7SUFKaEMsNEJBQTRCO1FBUnhDLFVBQVUsQ0FBQztZQUNSLFVBQVUsRUFBRSxNQUFNO1NBQ3JCLENBQUM7UUFDRCxTQUFTLENBQUM7WUFDVCxRQUFRLEVBQUUsMkJBQTJCO1lBQ3JDLHk0RkFBb0Q7O1NBRXJELENBQUM7T0FDVyw0QkFBNEIsQ0EwTXhDO3VDQXZORDtDQXVOQyxBQTFNRCxJQTBNQztTQTFNWSw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdGFibGUsIElucHV0LCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbnVtUHJvY2Vzc2FtZW50b1N0YXR1cywgRW51bVByb2Nlc3NhbWVudG9TdGF0dXNUcmFuc2xhdGlvbk1hcCwgUHJvY2Vzc2FtZW50b0dyaWQsIFByb2Nlc3NhbWVudG9JbnB1dCB9IGZyb20gJy4vcHJvY2Vzc2FtZW50byc7XG5pbXBvcnQgeyBDb2x1bW4sIEVudW1Db2x1bW5GaWVsZFR5cGUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rtc3gtcGFpbmVsLXByb2Nlc3NhbWVudG8nLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFpbmVsLXByb2Nlc3NhbWVudG8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wYWluZWwtcHJvY2Vzc2FtZW50by5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFBhaW5lbFByb2Nlc3NhbWVudG9Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgQElucHV0KCkgcGFyYW1zOiBQcm9jZXNzYW1lbnRvSW5wdXQ7XG4gICAgQE91dHB1dCgpIHByb2Nlc3NhZG8gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGNvbmNsdWlkbyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBncmlkRGF0YTogUHJvY2Vzc2FtZW50b0dyaWRbXTtcbiAgICBwdWJsaWMgZ3JpZENvbHVtbnM6IENvbHVtbltdO1xuXG4gICAgcHVibGljIHRvdGFsUmVjb3JkcyA9IDA7XG4gICAgcHVibGljIHN1Y2Nlc3NDb3VudCA9IDA7XG4gICAgcHVibGljIGZhaWxlZENvdW50ID0gMDtcbiAgICBwdWJsaWMgcGVuZGluZ0NvdW50ID0gMDtcbiAgICBwdWJsaWMgc3VjY2Vzc1Byb2dyZXNzID0gJzAlJztcbiAgICBwdWJsaWMgZmFpbGVkUHJvZ3Jlc3MgPSAnMCUnO1xuICAgIHB1YmxpYyBwZW5kaW5nUHJvZ3Jlc3MgPSAnMTAwJSc7XG4gICAgcHVibGljIHByb2Nlc3NpbmdQcm9ncmVzcyA9ICcwJSc7XG4gICAgcHVibGljIHNvcnRGaWVsZCA9ICdzdGF0dXMnO1xuICAgIHB1YmxpYyBzb3J0T3JkZXIgPSAxO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICAgKSB7IH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmluaXRQYW5lbCgpO1xuICAgIH1cblxuICAgIGluaXRQYW5lbCgpIHtcbiAgICAgICAgdGhpcy5ncmlkQ29sdW1ucyA9IHRoaXMuZ2V0R3JpZENvbHVtbigpO1xuICAgICAgICB0aGlzLmluaXRHcmlkKCk7XG4gICAgICAgIHRoaXMuaW5pdFByb2dyZXNzQmFyKCk7XG4gICAgfVxuXG4gICAgaW5pdFByb2dyZXNzQmFyKCkge1xuICAgICAgICB0aGlzLnN1Y2Nlc3NQcm9ncmVzcyA9ICcwJSc7XG4gICAgICAgIHRoaXMuZmFpbGVkUHJvZ3Jlc3MgPSAnMCUnO1xuICAgICAgICB0aGlzLnBlbmRpbmdQcm9ncmVzcyA9ICcxMDAlJztcbiAgICAgICAgdGhpcy5wcm9jZXNzaW5nUHJvZ3Jlc3MgPSAnMCUnO1xuICAgICAgICB0aGlzLnRvdGFsUmVjb3JkcyA9IHRoaXMucGFyYW1zLnJlZ2lzdHJvcy5sZW5ndGg7XG4gICAgICAgIHRoaXMucGVuZGluZ0NvdW50ID0gdGhpcy50b3RhbFJlY29yZHM7XG5cbiAgICAgICAgaWYgKHRoaXMucGFyYW1zLnF1YW50aWRhZGVDaGFtYWRhc1NpbXVsdGFuZWFzID4gMSkge1xuICAgICAgICAgICAgdGhpcy5wcm9jZXNzQWxsUmVjb3Jkc1dpdGhQTGltaXQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3luY1Byb2Nlc3NSZWNvcmQoMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbml0R3JpZCgpIHtcbiAgICAgICAgdGhpcy5ncmlkRGF0YSA9IFtdO1xuICAgICAgICB0aGlzLmdyaWREYXRhID0gdGhpcy5wYXJhbXMucmVnaXN0cm9zLm1hcChyZWdpc3RybyA9PiAoe1xuICAgICAgICAgICAgcmVnaXN0cm8sXG4gICAgICAgICAgICBzdGF0dXM6IEVudW1Qcm9jZXNzYW1lbnRvU3RhdHVzLlBFTkRJTkcsXG4gICAgICAgICAgICBsYWJlbDogcmVnaXN0cm8uZGVzY3JpY2FvXG4gICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVJvd1N1Y2Nlc3Mocm93OiBhbnksIGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdWNjZXNzQ291bnQrKztcbiAgICAgICAgdGhpcy5wZW5kaW5nQ291bnQtLTtcbiAgICAgICAgdGhpcy51cGRhdGVSb3dTdGF0dXMocm93LCBFbnVtUHJvY2Vzc2FtZW50b1N0YXR1cy5TVUNDRVNTKTtcbiAgICAgICAgdGhpcy5wcm9jZXNzYWRvLmVtaXQocm93KTtcbiAgICAgICAgdGhpcy51cGRhdGVQcm9ncmVzc0JhcigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlUm93RXJyb3Iocm93OiBhbnksIGluZGV4OiBudW1iZXIsIG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLmZhaWxlZENvdW50Kys7XG4gICAgICAgIHRoaXMucGVuZGluZ0NvdW50LS07XG4gICAgICAgIHRoaXMudXBkYXRlUm93U3RhdHVzKHJvdywgRW51bVByb2Nlc3NhbWVudG9TdGF0dXMuRkFJTEVELCBtZXNzYWdlKTtcbiAgICAgICAgdGhpcy5wcm9jZXNzYWRvLmVtaXQocm93KTtcbiAgICAgICAgdGhpcy51cGRhdGVQcm9ncmVzc0JhcigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3luY1Byb2Nlc3NSZWNvcmQoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5wZW5kaW5nQ291bnQgPCAxKSB7XG4gICAgICAgICAgICB0aGlzLmNvbmNsdWlkby5lbWl0KCdvaycpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudXBkYXRlUm93U3RhdHVzKHRoaXMuZ3JpZERhdGFbaW5kZXhdLCBFbnVtUHJvY2Vzc2FtZW50b1N0YXR1cy5QUk9DRVNTSU5HKTtcbiAgICAgICAgY29uc3QgcmVjb3JkID0gdGhpcy5wYXJhbXMucmVnaXN0cm9zW2luZGV4XTtcbiAgICAgICAgY29uc3Qgcm93ID0gdGhpcy5ncmlkRGF0YS5maW5kKGl0ZW0gPT4gaXRlbS5yZWdpc3RybyA9PT0gcmVjb3JkKTtcblxuICAgICAgICBpZiAocmVjb3JkLmFwaUVudmlvKSB7XG4gICAgICAgICAgICByZWNvcmQuYXBpRW52aW8ocmVjb3JkLm9iakVudmlvKVxuICAgICAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVJvd1N1Y2Nlc3Mocm93LCBpbmRleCk7XG4gICAgICAgICAgICAgICAgICB0aGlzLnN5bmNQcm9jZXNzUmVjb3JkKGluZGV4ICsgMSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVSb3dFcnJvcihyb3csIGluZGV4LCBlcnJvci5tZXNzYWdlKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMuc3luY1Byb2Nlc3NSZWNvcmQoaW5kZXggKyAxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5mYWlsZWRDb3VudCA9IHRoaXMucGVuZGluZ0NvdW50O1xuICAgICAgICAgICAgdGhpcy5wZW5kaW5nQ291bnQgPSAwO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVSb3dTdGF0dXMocm93LFxuICAgICAgICAgICAgICAgICBFbnVtUHJvY2Vzc2FtZW50b1N0YXR1cy5GQUlMRUQsXG4gICAgICAgICAgICAgICAgdGhpcy50cmFuc2xhdGUuaW5zdGFudCgndG1zeF9mbmQudG1zeF9hbmd1bGFyX2NvbXBvbmVudHMucGFpbmVsX3Byb2Nlc3NhbWVudG9fYXBpX2Vycm9yJylcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVByb2dyZXNzQmFyKCk7XG4gICAgICAgICAgICB0aGlzLmNvbmNsdWlkby5lbWl0KCdlcnJvJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhc3luYyBwcm9jZXNzQWxsUmVjb3Jkc1dpdGhQTGltaXQoKSB7XG4gICAgICBjb25zdCBwTGltaXQgPSByZXF1aXJlKCdwLWxpbWl0Jyk7XG4gICAgICBjb25zdCBsaW1pdCA9IHBMaW1pdCh0aGlzLnBhcmFtcy5xdWFudGlkYWRlQ2hhbWFkYXNTaW11bHRhbmVhcyk7XG4gICAgICBjb25zdCBwcm9taXNlcyA9IHRoaXMucGFyYW1zLnJlZ2lzdHJvcy5tYXAoKHJlY29yZCwgaW5kZXgpID0+IHtcbiAgICAgICAgcmV0dXJuIGxpbWl0KGFzeW5jICgpID0+IHtcbiAgICAgICAgICBjb25zdCByb3cgPSB0aGlzLmdyaWREYXRhLmZpbmQoaXRlbSA9PiBpdGVtLnJlZ2lzdHJvID09PSByZWNvcmQpO1xuICAgICAgICAgIHRoaXMudXBkYXRlUm93U3RhdHVzKHJvdywgRW51bVByb2Nlc3NhbWVudG9TdGF0dXMuUFJPQ0VTU0lORyk7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlY29yZC5hcGlFbnZpbyhyZWNvcmQub2JqRW52aW8pLnRvUHJvbWlzZSgpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVSb3dTdWNjZXNzKHJvdywgaW5kZXgpO1xuICAgICAgICAgICAgcmV0dXJuIHsgc3VjY2VzczogdHJ1ZSwgcmVjb3JkLCByZXN1bHQgfTtcbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVSb3dFcnJvcihyb3csIGluZGV4LCBlcnJvci5tZXNzYWdlKTtcbiAgICAgICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IGZhbHNlLCByZWNvcmQsIGVycm9yIH07XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKTtcbiAgICAgIHRoaXMuY29uY2x1aWRvLmVtaXQocmVzdWx0cyk7XG4gICAgICByZXR1cm4gcmVzdWx0cztcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVByb2dyZXNzQmFyKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzdWNjZXNzV2lkdGggPSAodGhpcy5zdWNjZXNzQ291bnQgLyB0aGlzLnRvdGFsUmVjb3JkcykgKiAxMDA7XG4gICAgICAgIGNvbnN0IGZhaWxlZFdpZHRoID0gKHRoaXMuZmFpbGVkQ291bnQgLyB0aGlzLnRvdGFsUmVjb3JkcykgKiAxMDA7XG4gICAgICAgIGNvbnN0IHBlbmRpbmdXaWR0aCA9ICh0aGlzLnBlbmRpbmdDb3VudCAvIHRoaXMudG90YWxSZWNvcmRzKSAqIDEwMDtcbiAgICAgICAgdGhpcy5wcm9jZXNzaW5nUHJvZ3Jlc3MgPSBgJHsoc3VjY2Vzc1dpZHRoICsgZmFpbGVkV2lkdGgpfSVgO1xuXG4gICAgICAgIHRoaXMuc3VjY2Vzc1Byb2dyZXNzID0gYCR7c3VjY2Vzc1dpZHRofSVgO1xuICAgICAgICB0aGlzLmZhaWxlZFByb2dyZXNzID0gYCR7ZmFpbGVkV2lkdGh9JWA7XG4gICAgICAgIHRoaXMucGVuZGluZ1Byb2dyZXNzID0gYCR7cGVuZGluZ1dpZHRofSVgO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGVSb3dTdGF0dXMocm93OiBhbnksIHN0YXR1czogRW51bVByb2Nlc3NhbWVudG9TdGF0dXMsIG1lc3NhZ2U/OiBzdHJpbmcpIHtcbiAgICAgICAgcm93LnN0YXR1cyA9IHN0YXR1cztcbiAgICAgICAgaWYgKG1lc3NhZ2UpIHtcbiAgICAgICAgICAgIHJvdy5tZXNzYWdlID0gbWVzc2FnZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNvcnRHcmlkRGF0YSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc29ydEdyaWREYXRhKCkge1xuICAgICAgICB0aGlzLmdyaWREYXRhLnNvcnQoKGE6IGFueSwgYjogYW55KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzdGF0dXNPcmRlciA9IHtcbiAgICAgICAgICAgICAgICBbRW51bVByb2Nlc3NhbWVudG9TdGF0dXMuRkFJTEVEXTogMSxcbiAgICAgICAgICAgICAgICBbRW51bVByb2Nlc3NhbWVudG9TdGF0dXMuUFJPQ0VTU0lOR106IDIsXG4gICAgICAgICAgICAgICAgW0VudW1Qcm9jZXNzYW1lbnRvU3RhdHVzLlNVQ0NFU1NdOiAzLFxuICAgICAgICAgICAgICAgIFtFbnVtUHJvY2Vzc2FtZW50b1N0YXR1cy5QRU5ESU5HXTogNFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmICh0aGlzLnNvcnRGaWVsZCA9PT0gJ3N0YXR1cycpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKHN0YXR1c09yZGVyW2Euc3RhdHVzIGFzIEVudW1Qcm9jZXNzYW1lbnRvU3RhdHVzXSAtIHN0YXR1c09yZGVyW2Iuc3RhdHVzIGFzIEVudW1Qcm9jZXNzYW1lbnRvU3RhdHVzXSkgKiB0aGlzLnNvcnRPcmRlcjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsQSA9IGFbdGhpcy5zb3J0RmllbGRdIHx8ICcnO1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbEIgPSBiW3RoaXMuc29ydEZpZWxkXSB8fCAnJztcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsQS5sb2NhbGVDb21wYXJlKHZhbEIpICogdGhpcy5zb3J0T3JkZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXREYXRhKHJvd0RhdGE6IGFueSwgZmllbGQ6IHN0cmluZykge1xuICAgICAgICBpZiAoZmllbGQgPT09ICdzdGF0dXMnKSB7XG4gICAgICAgICAgICBsZXQgdGV4dCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoRW51bVByb2Nlc3NhbWVudG9TdGF0dXNUcmFuc2xhdGlvbk1hcFtyb3dEYXRhLnN0YXR1cyBhcyBFbnVtUHJvY2Vzc2FtZW50b1N0YXR1c10pO1xuICAgICAgICAgICAgaWYgKHJvd0RhdGEubWVzc2FnZSkge1xuICAgICAgICAgICAgICAgIHRleHQgKz0gYDogJHtyb3dEYXRhLm1lc3NhZ2V9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0ZXh0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByb3dEYXRhW2ZpZWxkXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q2xhc3NTdGF0dXMocm93RGF0YTogYW55LCBmaWVsZDogc3RyaW5nKSB7XG4gICAgICAgIGlmIChmaWVsZCAhPT0gJ3N0YXR1cycpIHtcbiAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICBgc3RhdHVzICR7cm93RGF0YVtmaWVsZF0udG9Mb3dlckNhc2UoKX1gO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRHcmlkQ29sdW1uKCk6IENvbHVtbltdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBmaWVsZDogJ2xhYmVsJyxcbiAgICAgICAgICAgICAgICBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3Rtc3hfZm5kLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLnJlZ2lzdHJvJyksXG4gICAgICAgICAgICAgICAgc3R5bGU6IHsgd2lkdGg6ICc1MCUnIH0sXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczogW10sXG4gICAgICAgICAgICAgICAgdHlwZTogRW51bUNvbHVtbkZpZWxkVHlwZS5TVFJJTkdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZmllbGQ6ICdzdGF0dXMnLFxuICAgICAgICAgICAgICAgIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgndG1zeF9mbmQudG1zeF9hbmd1bGFyX2NvbXBvbmVudHMuc3RhdHVzJyksXG4gICAgICAgICAgICAgICAgc3R5bGU6IHsgd2lkdGg6ICc1MCUnIH0sXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczogW10sXG4gICAgICAgICAgICAgICAgdHlwZTogRW51bUNvbHVtbkZpZWxkVHlwZS5TVFJJTkdcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgfVxufVxuIl19
|
|
263
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbmVsLXByb2Nlc3NhbWVudG8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL3Rtc3gtYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9wYWluZWwtcHJvY2Vzc2FtZW50by9wYWluZWwtcHJvY2Vzc2FtZW50by5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxxQ0FBcUMsRUFBeUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN4SSxPQUFPLEVBQVUsbUJBQW1CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7O0FBVWpGO0lBc0JJLHNDQUNxQixTQUEyQjtRQUEzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQWxCdEMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDaEMsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFLbEMsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDakIsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDakIsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFDaEIsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDakIsb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFDdkIsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIsb0JBQWUsR0FBRyxNQUFNLENBQUM7UUFDekIsdUJBQWtCLEdBQUcsSUFBSSxDQUFDO1FBQzFCLGNBQVMsR0FBRyxRQUFRLENBQUM7UUFDckIsY0FBUyxHQUFHLENBQUMsQ0FBQztJQUlqQixDQUFDO3FDQXhCSSw0QkFBNEI7SUEwQnJDLCtDQUFRLEdBQVI7UUFDSSxJQUFJLENB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QUFFO2dCQUN2QixVQUFVLEVBQUUsRUFBRTtnQkFDZCxJQUFJLEVBQUUsbUJBQW1CLENBQUMsTUFBTTthQUNuQztTQUNKLENBQUM7SUFDTixDQUFDOztJQS9OdUIsNENBQWUsR0FBRyxxRUFBcUUsQ0FBQzs7Z0JBcUJoRixnQkFBZ0I7OztJQW5CdkM7UUFBUixLQUFLLEVBQUU7Z0VBQTRCO0lBQzFCO1FBQVQsTUFBTSxFQUFFO29FQUFpQztJQUNoQztRQUFULE1BQU0sRUFBRTttRUFBZ0M7SUFOaEMsNEJBQTRCO1FBUnhDLFVBQVUsQ0FBQztZQUNSLFVBQVUsRUFBRSxNQUFNO1NBQ3JCLENBQUM7UUFDRCxTQUFTLENBQUM7WUFDVCxRQUFRLEVBQUUsMkJBQTJCO1lBQ3JDLHk0RkFBb0Q7O1NBRXJELENBQUM7T0FDVyw0QkFBNEIsQ0FrT3hDO3VDQS9PRDtDQStPQyxBQWxPRCxJQWtPQztTQWxPWSw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdGFibGUsIElucHV0LCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbnVtUHJvY2Vzc2FtZW50b1N0YXR1cywgRW51bVByb2Nlc3NhbWVudG9TdGF0dXNUcmFuc2xhdGlvbk1hcCwgUHJvY2Vzc2FtZW50b0dyaWQsIFByb2Nlc3NhbWVudG9JbnB1dCB9IGZyb20gJy4vcHJvY2Vzc2FtZW50byc7XG5pbXBvcnQgeyBDb2x1bW4sIEVudW1Db2x1bW5GaWVsZFR5cGUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Rtc3gtcGFpbmVsLXByb2Nlc3NhbWVudG8nLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFpbmVsLXByb2Nlc3NhbWVudG8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wYWluZWwtcHJvY2Vzc2FtZW50by5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFBhaW5lbFByb2Nlc3NhbWVudG9Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgR0VORVJJQ19FUlJfS0VZID0gJ3Rtc3hfZm5kLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLnBhaW5lbF9wcm9jZXNzYW1lbnRvX2dlbmVyaWNfZXJyb3InO1xuXG4gICAgQElucHV0KCkgcGFyYW1zOiBQcm9jZXNzYW1lbnRvSW5wdXQ7XG4gICAgQE91dHB1dCgpIHByb2Nlc3NhZG8gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGNvbmNsdWlkbyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIHB1YmxpYyBncmlkRGF0YTogUHJvY2Vzc2FtZW50b0dyaWRbXTtcbiAgICBwdWJsaWMgZ3JpZENvbHVtbnM6IENvbHVtbltdO1xuXG4gICAgcHVibGljIHRvdGFsUmVjb3JkcyA9IDA7XG4gICAgcHVibGljIHN1Y2Nlc3NDb3VudCA9IDA7XG4gICAgcHVibGljIGZhaWxlZENvdW50ID0gMDtcbiAgICBwdWJsaWMgcGVuZGluZ0NvdW50ID0gMDtcbiAgICBwdWJsaWMgc3VjY2Vzc1Byb2dyZXNzID0gJzAlJztcbiAgICBwdWJsaWMgZmFpbGVkUHJvZ3Jlc3MgPSAnMCUnO1xuICAgIHB1YmxpYyBwZW5kaW5nUHJvZ3Jlc3MgPSAnMTAwJSc7XG4gICAgcHVibGljIHByb2Nlc3NpbmdQcm9ncmVzcyA9ICcwJSc7XG4gICAgcHVibGljIHNvcnRGaWVsZCA9ICdzdGF0dXMnO1xuICAgIHB1YmxpYyBzb3J0T3JkZXIgPSAxO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICAgKSB7IH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmluaXRQYW5lbCgpO1xuICAgIH1cblxuICAgIGluaXRQYW5lbCgpIHtcbiAgICAgICAgdGhpcy5ncmlkQ29sdW1ucyA9IHRoaXMuZ2V0R3JpZENvbHVtbigpO1xuICAgICAgICB0aGlzLmluaXRHcmlkKCk7XG4gICAgICAgIHRoaXMuaW5pdFByb2dyZXNzQmFyKCk7XG4gICAgfVxuXG4gICAgaW5pdFByb2dyZXNzQmFyKCkge1xuICAgICAgICB0aGlzLnN1Y2Nlc3NQcm9ncmVzcyA9ICcwJSc7XG4gICAgICAgIHRoaXMuZmFpbGVkUHJvZ3Jlc3MgPSAnMCUnO1xuICAgICAgICB0aGlzLnBlbmRpbmdQcm9ncmVzcyA9ICcxMDAlJztcbiAgICAgICAgdGhpcy5wcm9jZXNzaW5nUHJvZ3Jlc3MgPSAnMCUnO1xuICAgICAgICB0aGlzLnRvdGFsUmVjb3JkcyA9IHRoaXMucGFyYW1zLnJlZ2lzdHJvcy5sZW5ndGg7XG4gICAgICAgIHRoaXMucGVuZGluZ0NvdW50ID0gdGhpcy50b3RhbFJlY29yZHM7XG5cbiAgICAgICAgaWYgKHRoaXMucGFyYW1zLnF1YW50aWRhZGVDaGFtYWRhc1NpbXVsdGFuZWFzID4gMSkge1xuICAgICAgICAgICAgdGhpcy5wcm9jZXNzQWxsUmVjb3Jkc1dpdGhQTGltaXQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3luY1Byb2Nlc3NSZWNvcmQoMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbml0R3JpZCgpIHtcbiAgICAgICAgdGhpcy5ncmlkRGF0YSA9IFtdO1xuICAgICAgICB0aGlzLmdyaWREYXRhID0gdGhpcy5wYXJhbXMucmVnaXN0cm9zLm1hcChyZWdpc3RybyA9PiAoe1xuICAgICAgICAgICAgcmVnaXN0cm8sXG4gICAgICAgICAgICBzdGF0dXM6IEVudW1Qcm9jZXNzYW1lbnRvU3RhdHVzLlBFTkRJTkcsXG4gICAgICAgICAgICBsYWJlbDogcmVnaXN0cm8uZGVzY3JpY2FvXG4gICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEVycm9yTWVzc2FnZShlcnJvcjogYW55KTogc3RyaW5nIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmICghZXJyb3IpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZW5lcmljRXJyb3JNc2c7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZXJyb3I/LmVycm9yPy5tZXNzYWdlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZyhlcnJvci5lcnJvci5tZXNzYWdlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChlcnJvcj8ubWVzc2FnZT8ubWVzc2FnZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoZXJyb3IubWVzc2FnZS5tZXNzYWdlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdlbmVyaWNFcnJvck1zZztcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZW5lcmljRXJyb3JNc2c7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBnZW5lcmljRXJyb3JNc2coKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoUGFpbmVsUHJvY2Vzc2FtZW50b0NvbXBvbmVudC5HRU5FUklDX0VSUl9LRVkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlUm93U3VjY2Vzcyhyb3c6IGFueSwgaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnN1Y2Nlc3NDb3VudCsrO1xuICAgICAgICB0aGlzLnBlbmRpbmdDb3VudC0tO1xuICAgICAgICB0aGlzLnVwZGF0ZVJvd1N0YXR1cyhyb3csIEVudW1Qcm9jZXNzYW1lbnRvU3RhdHVzLlNVQ0NFU1MpO1xuICAgICAgICB0aGlzLnByb2Nlc3NhZG8uZW1pdChyb3cpO1xuICAgICAgICB0aGlzLnVwZGF0ZVByb2dyZXNzQmFyKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVSb3dFcnJvcihyb3c6IGFueSwgaW5kZXg6IG51bWJlciwgbWVzc2FnZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmFpbGVkQ291bnQrKztcbiAgICAgICAgdGhpcy5wZW5kaW5nQ291bnQtLTtcbiAgICAgICAgdGhpcy51cGRhdGVSb3dTdGF0dXMocm93LCBFbnVtUHJvY2Vzc2FtZW50b1N0YXR1cy5GQUlMRUQsIG1lc3NhZ2UpO1xuICAgICAgICB0aGlzLnByb2Nlc3NhZG8uZW1pdChyb3cpO1xuICAgICAgICB0aGlzLnVwZGF0ZVByb2dyZXNzQmFyKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzeW5jUHJvY2Vzc1JlY29yZChpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnBlbmRpbmdDb3VudCA8IDEpIHtcbiAgICAgICAgICAgIHRoaXMuY29uY2x1aWRvLmVtaXQoJ29rJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy51cGRhdGVSb3dTdGF0dXModGhpcy5ncmlkRGF0YVtpbmRleF0sIEVudW1Qcm9jZXNzYW1lbnRvU3RhdHVzLlBST0NFU1NJTkcpO1xuICAgICAgICBjb25zdCByZWNvcmQgPSB0aGlzLnBhcmFtcy5yZWdpc3Ryb3NbaW5kZXhdO1xuICAgICAgICBjb25zdCByb3cgPSB0aGlzLmdyaWREYXRhLmZpbmQoaXRlbSA9PiBpdGVtLnJlZ2lzdHJvID09PSByZWNvcmQpO1xuXG4gICAgICAgIGlmIChyZWNvcmQuYXBpRW52aW8pIHtcbiAgICAgICAgICAgIHJlY29yZC5hcGlFbnZpbyhyZWNvcmQub2JqRW52aW8pXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlUm93U3VjY2Vzcyhyb3csIGluZGV4KTtcbiAgICAgICAgICAgICAgICAgIHRoaXMuc3luY1Byb2Nlc3NSZWNvcmQoaW5kZXggKyAxKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVJvd0Vycm9yKHJvdywgaW5kZXgsIHRoaXMuZ2V0RXJyb3JNZXNzYWdlKGVycm9yKSk7XG4gICAgICAgICAgICAgICAgICB0aGlzLnN5bmNQcm9jZXNzUmVjb3JkKGluZGV4ICsgMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZmFpbGVkQ291bnQgPSB0aGlzLnBlbmRpbmdDb3VudDtcbiAgICAgICAgICAgIHRoaXMucGVuZGluZ0NvdW50ID0gMDtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUm93U3RhdHVzKHJvdyxcbiAgICAgICAgICAgICAgICAgRW51bVByb2Nlc3NhbWVudG9TdGF0dXMuRkFJTEVELFxuICAgICAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3Rtc3hfZm5kLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLnBhaW5lbF9wcm9jZXNzYW1lbnRvX2FwaV9lcnJvcicpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVQcm9ncmVzc0JhcigpO1xuICAgICAgICAgICAgdGhpcy5jb25jbHVpZG8uZW1pdCgnZXJybycpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXN5bmMgcHJvY2Vzc0FsbFJlY29yZHNXaXRoUExpbWl0KCkge1xuICAgICAgY29uc3QgcExpbWl0ID0gcmVxdWlyZSgncC1saW1pdCcpO1xuICAgICAgY29uc3QgbGltaXQgPSBwTGltaXQodGhpcy5wYXJhbXMucXVhbnRpZGFkZUNoYW1hZGFzU2ltdWx0YW5lYXMpO1xuICAgICAgY29uc3QgcHJvbWlzZXMgPSB0aGlzLnBhcmFtcy5yZWdpc3Ryb3MubWFwKChyZWNvcmQsIGluZGV4KSA9PiB7XG4gICAgICAgIHJldHVybiBsaW1pdChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgY29uc3Qgcm93ID0gdGhpcy5ncmlkRGF0YS5maW5kKGl0ZW0gPT4gaXRlbS5yZWdpc3RybyA9PT0gcmVjb3JkKTtcbiAgICAgICAgICB0aGlzLnVwZGF0ZVJvd1N0YXR1cyhyb3csIEVudW1Qcm9jZXNzYW1lbnRvU3RhdHVzLlBST0NFU1NJTkcpO1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZWNvcmQuYXBpRW52aW8ocmVjb3JkLm9iakVudmlvKS50b1Byb21pc2UoKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUm93U3VjY2Vzcyhyb3csIGluZGV4KTtcbiAgICAgICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IHRydWUsIHJlY29yZCwgcmVzdWx0IH07XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUm93RXJyb3Iocm93LCBpbmRleCwgdGhpcy5nZXRFcnJvck1lc3NhZ2UoZXJyb3IpKTtcbiAgICAgICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IGZhbHNlLCByZWNvcmQsIGVycm9yIH07XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKTtcbiAgICAgIHRoaXMuY29uY2x1aWRvLmVtaXQocmVzdWx0cyk7XG4gICAgICByZXR1cm4gcmVzdWx0cztcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVByb2dyZXNzQmFyKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBzdWNjZXNzV2lkdGggPSAodGhpcy5zdWNjZXNzQ291bnQgLyB0aGlzLnRvdGFsUmVjb3JkcykgKiAxMDA7XG4gICAgICAgIGNvbnN0IGZhaWxlZFdpZHRoID0gKHRoaXMuZmFpbGVkQ291bnQgLyB0aGlzLnRvdGFsUmVjb3JkcykgKiAxMDA7XG4gICAgICAgIGNvbnN0IHBlbmRpbmdXaWR0aCA9ICh0aGlzLnBlbmRpbmdDb3VudCAvIHRoaXMudG90YWxSZWNvcmRzKSAqIDEwMDtcbiAgICAgICAgY29uc3QgcHJvY2Vzc2VkV2lkdGggPSBzdWNjZXNzV2lkdGggKyBmYWlsZWRXaWR0aDtcblxuICAgICAgICB0aGlzLnByb2Nlc3NpbmdQcm9ncmVzcyA9IGAke3Byb2Nlc3NlZFdpZHRoLnRvRml4ZWQoMCl9JWA7XG4gICAgICAgIHRoaXMuc3VjY2Vzc1Byb2dyZXNzID0gYCR7c3VjY2Vzc1dpZHRoLnRvRml4ZWQoMCl9JWA7XG4gICAgICAgIHRoaXMuZmFpbGVkUHJvZ3Jlc3MgPSBgJHtmYWlsZWRXaWR0aC50b0ZpeGVkKDApfSVgO1xuICAgICAgICB0aGlzLnBlbmRpbmdQcm9ncmVzcyA9IGAke3BlbmRpbmdXaWR0aC50b0ZpeGVkKDApfSVgO1xuICAgIH1cblxuICAgIHB1YmxpYyB1cGRhdGVSb3dTdGF0dXMocm93OiBhbnksIHN0YXR1czogRW51bVByb2Nlc3NhbWVudG9TdGF0dXMsIG1lc3NhZ2U/OiBzdHJpbmcpIHtcbiAgICAgICAgcm93LnN0YXR1cyA9IHN0YXR1cztcbiAgICAgICAgaWYgKG1lc3NhZ2UpIHtcbiAgICAgICAgICAgIHJvdy5tZXNzYWdlID0gbWVzc2FnZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNvcnRHcmlkRGF0YSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc29ydEdyaWREYXRhKCkge1xuICAgICAgICB0aGlzLmdyaWREYXRhLnNvcnQoKGE6IGFueSwgYjogYW55KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzdGF0dXNPcmRlciA9IHtcbiAgICAgICAgICAgICAgICBbRW51bVByb2Nlc3NhbWVudG9TdGF0dXMuRkFJTEVEXTogMSxcbiAgICAgICAgICAgICAgICBbRW51bVByb2Nlc3NhbWVudG9TdGF0dXMuUFJPQ0VTU0lOR106IDIsXG4gICAgICAgICAgICAgICAgW0VudW1Qcm9jZXNzYW1lbnRvU3RhdHVzLlNVQ0NFU1NdOiAzLFxuICAgICAgICAgICAgICAgIFtFbnVtUHJvY2Vzc2FtZW50b1N0YXR1cy5QRU5ESU5HXTogNFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmICh0aGlzLnNvcnRGaWVsZCA9PT0gJ3N0YXR1cycpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKHN0YXR1c09yZGVyW2Euc3RhdHVzIGFzIEVudW1Qcm9jZXNzYW1lbnRvU3RhdHVzXSAtIHN0YXR1c09yZGVyW2Iuc3RhdHVzIGFzIEVudW1Qcm9jZXNzYW1lbnRvU3RhdHVzXSkgKiB0aGlzLnNvcnRPcmRlcjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsQSA9IGFbdGhpcy5zb3J0RmllbGRdIHx8ICcnO1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbEIgPSBiW3RoaXMuc29ydEZpZWxkXSB8fCAnJztcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsQS5sb2NhbGVDb21wYXJlKHZhbEIpICogdGhpcy5zb3J0T3JkZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXREYXRhKHJvd0RhdGE6IGFueSwgZmllbGQ6IHN0cmluZykge1xuICAgICAgICBpZiAoZmllbGQgPT09ICdzdGF0dXMnKSB7XG4gICAgICAgICAgICBsZXQgdGV4dCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoRW51bVByb2Nlc3NhbWVudG9TdGF0dXNUcmFuc2xhdGlvbk1hcFtyb3dEYXRhLnN0YXR1cyBhcyBFbnVtUHJvY2Vzc2FtZW50b1N0YXR1c10pO1xuICAgICAgICAgICAgaWYgKHJvd0RhdGEubWVzc2FnZSkge1xuICAgICAgICAgICAgICAgIHRleHQgKz0gYDogJHtyb3dEYXRhLm1lc3NhZ2V9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0ZXh0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByb3dEYXRhW2ZpZWxkXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q2xhc3NTdGF0dXMocm93RGF0YTogYW55LCBmaWVsZDogc3RyaW5nKSB7XG4gICAgICAgIGlmIChmaWVsZCAhPT0gJ3N0YXR1cycpIHtcbiAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICBgc3RhdHVzICR7cm93RGF0YVtmaWVsZF0udG9Mb3dlckNhc2UoKX1gO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRHcmlkQ29sdW1uKCk6IENvbHVtbltdIHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBmaWVsZDogJ2xhYmVsJyxcbiAgICAgICAgICAgICAgICBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3Rtc3hfZm5kLnRtc3hfYW5ndWxhcl9jb21wb25lbnRzLnJlZ2lzdHJvJyksXG4gICAgICAgICAgICAgICAgc3R5bGU6IHsgd2lkdGg6ICc1MCUnIH0sXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczogW10sXG4gICAgICAgICAgICAgICAgdHlwZTogRW51bUNvbHVtbkZpZWxkVHlwZS5TVFJJTkdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZmllbGQ6ICdzdGF0dXMnLFxuICAgICAgICAgICAgICAgIGhlYWRlcjogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgndG1zeF9mbmQudG1zeF9hbmd1bGFyX2NvbXBvbmVudHMuc3RhdHVzJyksXG4gICAgICAgICAgICAgICAgc3R5bGU6IHsgd2lkdGg6ICc1MCUnIH0sXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczogW10sXG4gICAgICAgICAgICAgICAgdHlwZTogRW51bUNvbHVtbkZpZWxkVHlwZS5TVFJJTkdcbiAgICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgfVxufVxuIl19
|
|
@@ -33,7 +33,8 @@ const EnumProcessamentoStatusTranslationMap = {
|
|
|
33
33
|
[EnumProcessamentoStatus.PROCESSING]: 'tmsx_fnd.tmsx_angular_components.painel_processamento_status_processing'
|
|
34
34
|
};
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
var PainelProcessamentoComponent_1;
|
|
37
|
+
let PainelProcessamentoComponent = PainelProcessamentoComponent_1 = class PainelProcessamentoComponent {
|
|
37
38
|
constructor(translate) {
|
|
38
39
|
this.translate = translate;
|
|
39
40
|
this.processado = new EventEmitter();
|
|
@@ -79,6 +80,27 @@ let PainelProcessamentoComponent = class PainelProcessamentoComponent {
|
|
|
79
80
|
label: registro.descricao
|
|
80
81
|
}));
|
|
81
82
|
}
|
|
83
|
+
getErrorMessage(error) {
|
|
84
|
+
var _a, _b;
|
|
85
|
+
try {
|
|
86
|
+
if (!error) {
|
|
87
|
+
return this.genericErrorMsg;
|
|
88
|
+
}
|
|
89
|
+
if ((_a = error === null || error === void 0 ? void 0 : error.error) === null || _a === void 0 ? void 0 : _a.message) {
|
|
90
|
+
return String(error.error.message);
|
|
91
|
+
}
|
|
92
|
+
if ((_b = error === null || error === void 0 ? void 0 : error.message) === null || _b === void 0 ? void 0 : _b.message) {
|
|
93
|
+
return String(error.message.message);
|
|
94
|
+
}
|
|
95
|
+
return this.genericErrorMsg;
|
|
96
|
+
}
|
|
97
|
+
catch (_c) {
|
|
98
|
+
return this.genericErrorMsg;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
get genericErrorMsg() {
|
|
102
|
+
return this.translate.instant(PainelProcessamentoComponent_1.GENERIC_ERR_KEY);
|
|
103
|
+
}
|
|
82
104
|
updateRowSuccess(row, index) {
|
|
83
105
|
this.successCount++;
|
|
84
106
|
this.pendingCount--;
|
|
@@ -107,7 +129,7 @@ let PainelProcessamentoComponent = class PainelProcessamentoComponent {
|
|
|
107
129
|
this.updateRowSuccess(row, index);
|
|
108
130
|
this.syncProcessRecord(index + 1);
|
|
109
131
|
}, (error) => {
|
|
110
|
-
this.updateRowError(row, index, error
|
|
132
|
+
this.updateRowError(row, index, this.getErrorMessage(error));
|
|
111
133
|
this.syncProcessRecord(index + 1);
|
|
112
134
|
});
|
|
113
135
|
}
|
|
@@ -133,7 +155,7 @@ let PainelProcessamentoComponent = class PainelProcessamentoComponent {
|
|
|
133
155
|
return { success: true, record, result };
|
|
134
156
|
}
|
|
135
157
|
catch (error) {
|
|
136
|
-
this.updateRowError(row, index, error
|
|
158
|
+
this.updateRowError(row, index, this.getErrorMessage(error));
|
|
137
159
|
return { success: false, record, error };
|
|
138
160
|
}
|
|
139
161
|
}));
|
|
@@ -147,10 +169,11 @@ let PainelProcessamentoComponent = class PainelProcessamentoComponent {
|
|
|
147
169
|
const successWidth = (this.successCount / this.totalRecords) * 100;
|
|
148
170
|
const failedWidth = (this.failedCount / this.totalRecords) * 100;
|
|
149
171
|
const pendingWidth = (this.pendingCount / this.totalRecords) * 100;
|
|
150
|
-
|
|
151
|
-
this.
|
|
152
|
-
this.
|
|
153
|
-
this.
|
|
172
|
+
const processedWidth = successWidth + failedWidth;
|
|
173
|
+
this.processingProgress = `${processedWidth.toFixed(0)}%`;
|
|
174
|
+
this.successProgress = `${successWidth.toFixed(0)}%`;
|
|
175
|
+
this.failedProgress = `${failedWidth.toFixed(0)}%`;
|
|
176
|
+
this.pendingProgress = `${pendingWidth.toFixed(0)}%`;
|
|
154
177
|
}
|
|
155
178
|
updateRowStatus(row, status, message) {
|
|
156
179
|
row.status = status;
|
|
@@ -212,6 +235,7 @@ let PainelProcessamentoComponent = class PainelProcessamentoComponent {
|
|
|
212
235
|
];
|
|
213
236
|
}
|
|
214
237
|
};
|
|
238
|
+
PainelProcessamentoComponent.GENERIC_ERR_KEY = 'tmsx_fnd.tmsx_angular_components.painel_processamento_generic_error';
|
|
215
239
|
PainelProcessamentoComponent.ctorParameters = () => [
|
|
216
240
|
{ type: TranslateService }
|
|
217
241
|
];
|
|
@@ -225,7 +249,7 @@ __decorate([
|
|
|
225
249
|
__decorate([
|
|
226
250
|
Output()
|
|
227
251
|
], PainelProcessamentoComponent.prototype, "concluido", void 0);
|
|
228
|
-
PainelProcessamentoComponent = __decorate([
|
|
252
|
+
PainelProcessamentoComponent = PainelProcessamentoComponent_1 = __decorate([
|
|
229
253
|
Injectable({
|
|
230
254
|
providedIn: 'root'
|
|
231
255
|
}),
|