dts-backoffice-util 3.0.1 → 4.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/bundles/dts-backoffice-util.umd.js +111 -1472
- package/bundles/dts-backoffice-util.umd.js.map +1 -1
- package/bundles/dts-backoffice-util.umd.min.js +1 -1
- package/bundles/dts-backoffice-util.umd.min.js.map +1 -1
- package/esm2015/dts-backoffice-util.js +2 -7
- package/esm2015/lib/components/totvs-schedule-execution/totvs-schedule-execution.component.js +6 -131
- package/esm2015/lib/components/totvs-schedule-execution/totvs-schedule-execution.model.js +1 -126
- package/esm2015/lib/components/totvs-schedule-execution/totvs-schedule-execution.service.js +11 -172
- package/esm2015/lib/dts-backoffice-util.module.js +1 -9
- package/esm2015/lib/interfaces/filter-range.interface.js +2 -48
- package/esm2015/lib/interfaces/totvs-response.interface.js +2 -17
- package/esm2015/lib/model/session-info.model.js +1 -117
- package/esm2015/lib/pipes/dts-date-format.pipe.js +1 -12
- package/esm2015/lib/services/breadcrumb-control.service.js +1 -44
- package/esm2015/lib/services/cache-params.service.js +2 -24
- package/esm2015/lib/services/menu-datasul.service.js +1 -18
- package/esm2015/lib/services/profile.service.js +9 -78
- package/esm2015/lib/services/report.service.js +12 -81
- package/esm2015/lib/services/session-info.service.js +4 -27
- package/esm2015/lib/services/translate.service.js +1 -16
- package/esm2015/lib/utils/date.util.js +1 -40
- package/esm2015/lib/utils/disclaimer.util.js +33 -318
- package/esm2015/lib/utils/field-validation.util.js +1 -97
- package/esm2015/lib/utils/file.util.js +7 -103
- package/esm2015/lib/utils/filter-range.util.js +1 -21
- package/esm2015/lib/utils/generic-functions.utils.js +12 -138
- package/esm2015/public-api.js +22 -26
- package/fesm2015/dts-backoffice-util.js +108 -1517
- package/fesm2015/dts-backoffice-util.js.map +1 -1
- package/package.json +5 -5
- package/CHANGELOG.md +0 -164
|
@@ -1,19 +1,9 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* Generated from: lib/utils/field-validation.util.ts
|
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
-
*/
|
|
6
1
|
/*
|
|
7
2
|
Versão: 1.002
|
|
8
3
|
Data Criação: 19/02/2019
|
|
9
4
|
*/
|
|
10
5
|
import { DisclaimerUtil } from './disclaimer.util';
|
|
11
6
|
export class FieldValidationUtil {
|
|
12
|
-
/**
|
|
13
|
-
* @param {?} poNotification
|
|
14
|
-
* @param {?} poI18nPipe
|
|
15
|
-
* @param {?} literals
|
|
16
|
-
*/
|
|
17
7
|
constructor(poNotification, poI18nPipe, literals) {
|
|
18
8
|
this.literals = {};
|
|
19
9
|
this.poNotification = poNotification;
|
|
@@ -21,11 +11,6 @@ export class FieldValidationUtil {
|
|
|
21
11
|
this.literals = literals;
|
|
22
12
|
this.disclaimerUtil = new DisclaimerUtil(this.poNotification, this.poI18nPipe, this.literals);
|
|
23
13
|
}
|
|
24
|
-
/**
|
|
25
|
-
* @param {?} field
|
|
26
|
-
* @param {?} value
|
|
27
|
-
* @return {?}
|
|
28
|
-
*/
|
|
29
14
|
vldFieldCharacter(field, value) {
|
|
30
15
|
if (!value || value.trim() === '') {
|
|
31
16
|
this.poNotification.error({
|
|
@@ -36,13 +21,6 @@ export class FieldValidationUtil {
|
|
|
36
21
|
return true;
|
|
37
22
|
}
|
|
38
23
|
// Valida uma faixa de caracteres se o inicial é menor que final
|
|
39
|
-
/**
|
|
40
|
-
* @param {?} initialField
|
|
41
|
-
* @param {?} finalField
|
|
42
|
-
* @param {?} initialValue
|
|
43
|
-
* @param {?} finalValue
|
|
44
|
-
* @return {?}
|
|
45
|
-
*/
|
|
46
24
|
vldRangeCharacter(initialField, finalField, initialValue, finalValue) {
|
|
47
25
|
if (!initialValue || !finalValue) {
|
|
48
26
|
return true;
|
|
@@ -55,13 +33,6 @@ export class FieldValidationUtil {
|
|
|
55
33
|
}
|
|
56
34
|
return true;
|
|
57
35
|
}
|
|
58
|
-
/**
|
|
59
|
-
* @param {?} field
|
|
60
|
-
* @param {?} value
|
|
61
|
-
* @param {?=} vldValue
|
|
62
|
-
* @param {?=} zeroAccept
|
|
63
|
-
* @return {?}
|
|
64
|
-
*/
|
|
65
36
|
vldFieldNumber(field, value, vldValue = false, zeroAccept = false) {
|
|
66
37
|
if (vldValue && !this.vldValueOfNumber(field, value)) {
|
|
67
38
|
return false;
|
|
@@ -77,11 +48,6 @@ export class FieldValidationUtil {
|
|
|
77
48
|
}
|
|
78
49
|
return true;
|
|
79
50
|
}
|
|
80
|
-
/**
|
|
81
|
-
* @param {?} field
|
|
82
|
-
* @param {?} value
|
|
83
|
-
* @return {?}
|
|
84
|
-
*/
|
|
85
51
|
vldValueOfNumber(field, value) {
|
|
86
52
|
if (value && value < 0) {
|
|
87
53
|
this.poNotification.error({ message: this.poI18nPipe.transform(this.literals['fieldVldNumber'], [value.toString(), this.literals[field]]) });
|
|
@@ -89,12 +55,6 @@ export class FieldValidationUtil {
|
|
|
89
55
|
}
|
|
90
56
|
return true;
|
|
91
57
|
}
|
|
92
|
-
/**
|
|
93
|
-
* @param {?} field
|
|
94
|
-
* @param {?} value
|
|
95
|
-
* @param {?=} vldValue
|
|
96
|
-
* @return {?}
|
|
97
|
-
*/
|
|
98
58
|
vldFieldPercent(field, value, vldValue = false) {
|
|
99
59
|
if (vldValue && !this.vldValueOfPercent(field, value)) {
|
|
100
60
|
return false;
|
|
@@ -104,11 +64,6 @@ export class FieldValidationUtil {
|
|
|
104
64
|
}
|
|
105
65
|
return true;
|
|
106
66
|
}
|
|
107
|
-
/**
|
|
108
|
-
* @param {?} field
|
|
109
|
-
* @param {?} value
|
|
110
|
-
* @return {?}
|
|
111
|
-
*/
|
|
112
67
|
vldValueOfPercent(field, value) {
|
|
113
68
|
if (value && value < 0) {
|
|
114
69
|
this.poNotification.error({ message: this.poI18nPipe.transform(this.literals['fieldVldNumber'], [value.toString(), this.literals[field]]) });
|
|
@@ -121,13 +76,6 @@ export class FieldValidationUtil {
|
|
|
121
76
|
return true;
|
|
122
77
|
}
|
|
123
78
|
// Valida uma faixa de números se o inicial é menor que final
|
|
124
|
-
/**
|
|
125
|
-
* @param {?} initialField
|
|
126
|
-
* @param {?} finalField
|
|
127
|
-
* @param {?} initialValue
|
|
128
|
-
* @param {?} finalValue
|
|
129
|
-
* @return {?}
|
|
130
|
-
*/
|
|
131
79
|
vldRangeNumber(initialField, finalField, initialValue, finalValue) {
|
|
132
80
|
if (!initialValue) {
|
|
133
81
|
initialValue = 0;
|
|
@@ -143,13 +91,7 @@ export class FieldValidationUtil {
|
|
|
143
91
|
}
|
|
144
92
|
return true;
|
|
145
93
|
}
|
|
146
|
-
/**
|
|
147
|
-
* @param {?} field
|
|
148
|
-
* @param {?} value
|
|
149
|
-
* @return {?}
|
|
150
|
-
*/
|
|
151
94
|
vldFieldDate(field, value) {
|
|
152
|
-
/** @type {?} */
|
|
153
95
|
const valDate = this.disclaimerUtil.ajustDate(value);
|
|
154
96
|
if (!this.disclaimerUtil.isValidDate(valDate)) {
|
|
155
97
|
this.poNotification.error({
|
|
@@ -160,20 +102,11 @@ export class FieldValidationUtil {
|
|
|
160
102
|
return true;
|
|
161
103
|
}
|
|
162
104
|
// Valida uma faixa de datas se o inicial é menor que final
|
|
163
|
-
/**
|
|
164
|
-
* @param {?} initialField
|
|
165
|
-
* @param {?} finalField
|
|
166
|
-
* @param {?} initialValue
|
|
167
|
-
* @param {?} finalValue
|
|
168
|
-
* @return {?}
|
|
169
|
-
*/
|
|
170
105
|
vldRangeDate(initialField, finalField, initialValue, finalValue) {
|
|
171
106
|
if (!initialValue || !finalValue) {
|
|
172
107
|
return true;
|
|
173
108
|
}
|
|
174
|
-
/** @type {?} */
|
|
175
109
|
const valInitialDate = this.disclaimerUtil.ajustDate(initialValue).getTime();
|
|
176
|
-
/** @type {?} */
|
|
177
110
|
const valFinalDate = this.disclaimerUtil.ajustDate(finalValue).getTime();
|
|
178
111
|
if (valInitialDate > valFinalDate) {
|
|
179
112
|
this.poNotification.error({
|
|
@@ -183,11 +116,6 @@ export class FieldValidationUtil {
|
|
|
183
116
|
}
|
|
184
117
|
return true;
|
|
185
118
|
}
|
|
186
|
-
/**
|
|
187
|
-
* @param {?} field
|
|
188
|
-
* @param {?} value
|
|
189
|
-
* @return {?}
|
|
190
|
-
*/
|
|
191
119
|
vldFieldMultiSelect(field, value) {
|
|
192
120
|
if (!value || value.length === 0) {
|
|
193
121
|
this.poNotification.error({
|
|
@@ -197,11 +125,6 @@ export class FieldValidationUtil {
|
|
|
197
125
|
}
|
|
198
126
|
return true;
|
|
199
127
|
}
|
|
200
|
-
/**
|
|
201
|
-
* @param {?} field
|
|
202
|
-
* @param {?} value
|
|
203
|
-
* @return {?}
|
|
204
|
-
*/
|
|
205
128
|
vldFieldCheckbox(field, value) {
|
|
206
129
|
if (!value || value.length === 0) {
|
|
207
130
|
this.poNotification.error({
|
|
@@ -212,17 +135,8 @@ export class FieldValidationUtil {
|
|
|
212
135
|
return true;
|
|
213
136
|
}
|
|
214
137
|
// Valida formato conforme regra: "9" apenas números, "X" qualquer caracter, "!" apenas letras maiúsculas
|
|
215
|
-
/**
|
|
216
|
-
* @param {?} field
|
|
217
|
-
* @param {?} value
|
|
218
|
-
* @param {?} format
|
|
219
|
-
* @param {?=} replacePoint
|
|
220
|
-
* @return {?}
|
|
221
|
-
*/
|
|
222
138
|
vldFieldFormat(field, value, format, replacePoint = false) {
|
|
223
|
-
/** @type {?} */
|
|
224
139
|
let lOK = true;
|
|
225
|
-
/** @type {?} */
|
|
226
140
|
let oldFormat;
|
|
227
141
|
if (!value) {
|
|
228
142
|
return lOK;
|
|
@@ -262,14 +176,4 @@ export class FieldValidationUtil {
|
|
|
262
176
|
return lOK;
|
|
263
177
|
}
|
|
264
178
|
}
|
|
265
|
-
if (false) {
|
|
266
|
-
/** @type {?} */
|
|
267
|
-
FieldValidationUtil.prototype.poNotification;
|
|
268
|
-
/** @type {?} */
|
|
269
|
-
FieldValidationUtil.prototype.poI18nPipe;
|
|
270
|
-
/** @type {?} */
|
|
271
|
-
FieldValidationUtil.prototype.literals;
|
|
272
|
-
/** @type {?} */
|
|
273
|
-
FieldValidationUtil.prototype.disclaimerUtil;
|
|
274
|
-
}
|
|
275
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtdmFsaWRhdGlvbi51dGlsLmpzIiwic291cmNlUm9vdCI6IkM6L0RhdGFzdWwvVEhGL2R0cy1iYWNrb2ZmaWNlLXV0aWwtdjE0LW1hc3Rlci9wcm9qZWN0cy9kdHMtYmFja29mZmljZS11dGlsL3NyYy8iLCJzb3VyY2VzIjpbImxpYi91dGlscy9maWVsZC12YWxpZGF0aW9uLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBTUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRW5ELE1BQU0sT0FBTyxtQkFBbUI7Ozs7OztJQU81QixZQUNJLGNBQXFDLEVBQ3JDLFVBQXNCLEVBQ3RCLFFBQWdCO1FBUHBCLGFBQVEsR0FBUSxFQUFFLENBQUM7UUFTZixJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUNyQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEcsQ0FBQzs7Ozs7O0lBRU0saUJBQWlCLENBQUMsS0FBYSxFQUFFLEtBQWE7UUFDakQsSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQy9CLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO2dCQUN0QixPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2FBQ2hHLENBQUMsQ0FBQztZQUNILE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBQ0QsT0FBTyxJ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QyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2FBQ3RHLENBQUMsQ0FBQztTQUNOO1FBRUQsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO0NBQ0o7OztJQXpNRyw2Q0FBc0M7O0lBQ3RDLHlDQUF1Qjs7SUFDdkIsdUNBQW1COztJQUVuQiw2Q0FBK0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG5WZXJzw6NvOiAxLjAwMlxyXG5EYXRhIENyaWHDp8OjbzogMTkvMDIvMjAxOVxyXG4qL1xyXG5cclxuaW1wb3J0IHsgUG9Ob3RpZmljYXRpb25TZXJ2aWNlLCBQb0kxOG5QaXBlIH0gZnJvbSAnQHBvLXVpL25nLWNvbXBvbmVudHMnO1xyXG5pbXBvcnQgeyBEaXNjbGFpbWVyVXRpbCB9IGZyb20gJy4vZGlzY2xhaW1lci51dGlsJztcclxuXHJcbmV4cG9ydCBjbGFzcyBGaWVsZFZhbGlkYXRpb25VdGlsIHtcclxuICAgIHBvTm90aWZpY2F0aW9uOiBQb05vdGlmaWNhdGlvblNlcnZpY2U7XHJcbiAgICBwb0kxOG5QaXBlOiBQb0kxOG5QaXBlO1xyXG4gICAgbGl0ZXJhbHM6IGFueSA9IHt9O1xyXG5cclxuICAgIGRpc2NsYWltZXJVdGlsOiBEaXNjbGFpbWVyVXRpbDtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwb05vdGlmaWNhdGlvbjogUG9Ob3RpZmljYXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHBvSTE4blBpcGU6IFBvSTE4blBpcGUsXHJcbiAgICAgICAgbGl0ZXJhbHM6IE9iamVjdFxyXG4gICAgKSB7XHJcbiAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbiA9IHBvTm90aWZpY2F0aW9uO1xyXG4gICAgICAgIHRoaXMucG9JMThuUGlwZSA9IHBvSTE4blBpcGU7XHJcbiAgICAgICAgdGhpcy5saXRlcmFscyA9IGxpdGVyYWxzO1xyXG4gICAgICAgIHRoaXMuZGlzY2xhaW1lclV0aWwgPSBuZXcgRGlzY2xhaW1lclV0aWwodGhpcy5wb05vdGlmaWNhdGlvbiwgdGhpcy5wb0kxOG5QaXBlLCB0aGlzLmxpdGVyYWxzKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdmxkRmllbGRDaGFyYWN0ZXIoZmllbGQ6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghdmFsdWUgfHwgdmFsdWUudHJpbSgpID09PSAnJykge1xyXG4gICAgICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uLmVycm9yKHtcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMucG9JMThuUGlwZS50cmFuc2Zvcm0odGhpcy5saXRlcmFsc1snZmllbGRWbGRSZXF1ZXJlZCddLCBbdGhpcy5saXRlcmFsc1tmaWVsZF1dKVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBWYWxpZGEgdW1hIGZhaXhhIGRlIGNhcmFjdGVyZXMgc2UgbyBpbmljaWFsIMOpIG1lbm9yIHF1ZSBmaW5hbFxyXG4gICAgcHVibGljIHZsZFJhbmdlQ2hhcmFjdGVyKGluaXRpYWxGaWVsZDogc3RyaW5nLCBmaW5hbEZpZWxkOiBzdHJpbmcsIGluaXRpYWxWYWx1ZTogc3RyaW5nLCBmaW5hbFZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIWluaXRpYWxWYWx1ZSB8fCAhZmluYWxWYWx1ZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChpbml0aWFsVmFsdWUudHJpbSgpLnRvVXBwZXJDYXNlKCkgPiBmaW5hbFZhbHVlLnRyaW0oKS50b1VwcGVyQ2FzZSgpKSB7XHJcbiAgICAgICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24uZXJyb3Ioe1xyXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogdGhpcy5wb0kxOG5QaXBlLnRyYW5zZm9ybSh0aGlzLmxpdGVyYWxzWydmaWVsZFZsZFJhbmdlJ10sXHJcbiAgICAgICAgICAgICAgICAgICAgW3RoaXMubGl0ZXJhbHNbaW5pdGlhbEZpZWxkXSwgdGhpcy5saXRlcmFsc1tmaW5hbEZpZWxkXV0pXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB2bGRGaWVsZE51bWJlcihmaWVsZDogc3RyaW5nLCB2YWx1ZTogbnVtYmVyLCB2bGRWYWx1ZSA9IGZhbHNlLCB6ZXJvQWNjZXB0ID0gZmFsc2UpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAodmxkVmFsdWUgJiYgIXRoaXMudmxkVmFsdWVPZk51bWJlcihmaWVsZCwgdmFsdWUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICgoIXZhbHVlKSB8fCB2YWx1ZSA8PSAwKSB7XHJcbiAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gMCAmJiB6ZXJvQWNjZXB0ID09PSB0cnVlKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5lcnJvcih7XHJcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiB0aGlzLnBvSTE4blBpcGUudHJhbnNmb3JtKHRoaXMubGl0ZXJhbHNbJ2ZpZWxkVmxkUmVxdWVyZWQnXSwgW3RoaXMubGl0ZXJhbHNbZmllbGRdXSlcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHZsZFZhbHVlT2ZOdW1iZXIoZmllbGQ6IHN0cmluZywgdmFsdWU6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSA8IDApIHtcclxuICAgICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5lcnJvcihcclxuICAgICAgICAgICAgICAgIHsgbWVzc2FnZTogdGhpcy5wb0kxOG5QaXBlLnRyYW5zZm9ybSh0aGlzLmxpdGVyYWxzWydmaWVsZFZsZE51bWJlciddLCBbdmFsdWUudG9TdHJpbmcoKSwgdGhpcy5saXRlcmFsc1tmaWVsZF1dKSB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdmxkRmllbGRQZXJjZW50KGZpZWxkOiBzdHJpbmcsIHZhbHVlOiBudW1iZXIsIHZsZFZhbHVlID0gZmFsc2UpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAodmxkVmFsdWUgJiYgIXRoaXMudmxkVmFsdWVPZlBlcmNlbnQoZmllbGQsIHZhbHVlKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIXRoaXMudmxkRmllbGROdW1iZXIoZmllbGQsIHZhbHVlKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB2bGRWYWx1ZU9mUGVyY2VudChmaWVsZDogc3RyaW5nLCB2YWx1ZTogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKHZhbHVlICYmIHZhbHVlIDwgMCkge1xyXG4gICAgICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uLmVycm9yKFxyXG4gICAgICAgICAgICAgICAgeyBtZXNzYWdlOiB0aGlzLnBvSTE4blBpcGUudHJhbnNmb3JtKHRoaXMubGl0ZXJhbHNbJ2ZpZWxkVmxkTnVtYmVyJ10sIFt2YWx1ZS50b1N0cmluZygpLCB0aGlzLmxpdGVyYWxzW2ZpZWxkXV0pIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodmFsdWUgJiYgdmFsdWUgPiAxMDApIHtcclxuICAgICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5lcnJvcihcclxuICAgICAgICAgICAgICAgIHsgbWVzc2FnZTogdGhpcy5wb0kxOG5QaXBlLnRyYW5zZm9ybSh0aGlzLmxpdGVyYWxzWydmaWVsZFZsZE51bWJlciddLCBbdmFsdWUudG9TdHJpbmcoKSwgdGhpcy5saXRlcmFsc1tmaWVsZF1dKSB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBWYWxpZGEgdW1hIGZhaXhhIGRlIG7Dum1lcm9zIHNlIG8gaW5pY2lhbCDDqSBtZW5vciBxdWUgZmluYWxcclxuICAgIHB1YmxpYyB2bGRSYW5nZU51bWJlcihpbml0aWFsRmllbGQ6IHN0cmluZywgZmluYWxGaWVsZDogc3RyaW5nLCBpbml0aWFsVmFsdWU6IG51bWJlciwgZmluYWxWYWx1ZTogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCFpbml0aWFsVmFsdWUpIHsgaW5pdGlhbFZhbHVlID0gMDsgfVxyXG4gICAgICAgIGlmICghZmluYWxWYWx1ZSkgeyBmaW5hbFZhbHVlID0gMDsgfVxyXG5cclxuICAgICAgICBpZiAoaW5pdGlhbFZhbHVlID4gZmluYWxWYWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uLmVycm9yKHtcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMucG9JMThuUGlwZS50cmFuc2Zvcm0odGhpcy5saXRlcmFsc1snZmllbGRWbGRSYW5nZSddLFxyXG4gICAgICAgICAgICAgICAgICAgIFt0aGlzLmxpdGVyYWxzW2luaXRpYWxGaWVsZF0sIHRoaXMubGl0ZXJhbHNbZmluYWxGaWVsZF1dKVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdmxkRmllbGREYXRlKGZpZWxkOiBzdHJpbmcsIHZhbHVlOiBEYXRlKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3QgdmFsRGF0ZSA9IHRoaXMuZGlzY2xhaW1lclV0aWwuYWp1c3REYXRlKHZhbHVlKTtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmRpc2NsYWltZXJVdGlsLmlzVmFsaWREYXRlKHZhbERhdGUpKSB7XHJcbiAgICAgICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24uZXJyb3Ioe1xyXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogdGhpcy5wb0kxOG5QaXBlLnRyYW5zZm9ybSh0aGlzLmxpdGVyYWxzWydmaWVsZFZsZERhdGUnXSwgW3RoaXMubGl0ZXJhbHNbZmllbGRdXSlcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVmFsaWRhIHVtYSBmYWl4YSBkZSBkYXRhcyBzZSBvIGluaWNpYWwgw6kgbWVub3IgcXVlIGZpbmFsXHJcbiAgICBwdWJsaWMgdmxkUmFuZ2VEYXRlKGluaXRpYWxGaWVsZDogc3RyaW5nLCBmaW5hbEZpZWxkOiBzdHJpbmcsIGluaXRpYWxWYWx1ZTogRGF0ZSwgZmluYWxWYWx1ZTogRGF0ZSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghaW5pdGlhbFZhbHVlIHx8ICFmaW5hbFZhbHVlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgdmFsSW5pdGlhbERhdGUgPSB0aGlzLmRpc2NsYWltZXJVdGlsLmFqdXN0RGF0ZShpbml0aWFsVmFsdWUpLmdldFRpbWUoKTtcclxuICAgICAgICBjb25zdCB2YWxGaW5hbERhdGUgPSB0aGlzLmRpc2NsYWltZXJVdGlsLmFqdXN0RGF0ZShmaW5hbFZhbHVlKS5nZXRUaW1lKCk7XHJcblxyXG4gICAgICAgIGlmICh2YWxJbml0aWFsRGF0ZSA+IHZhbEZpbmFsRGF0ZSkge1xyXG4gICAgICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uLmVycm9yKHtcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMucG9JMThuUGlwZS50cmFuc2Zvcm0odGhpcy5saXRlcmFsc1snZmllbGRWbGRSYW5nZSddLFxyXG4gICAgICAgICAgICAgICAgICAgIFt0aGlzLmxpdGVyYWxzW2luaXRpYWxGaWVsZF0sIHRoaXMubGl0ZXJhbHNbZmluYWxGaWVsZF1dKVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdmxkRmllbGRNdWx0aVNlbGVjdChmaWVsZDogc3RyaW5nLCB2YWx1ZTogQXJyYXk8YW55Pik6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghdmFsdWUgfHwgdmFsdWUubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24uZXJyb3Ioe1xyXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogdGhpcy5wb0kxOG5QaXBlLnRyYW5zZm9ybSh0aGlzLmxpdGVyYWxzWydmaWVsZFZsZFNlbGVjdGVkJ10sIFt0aGlzLmxpdGVyYWxzW2ZpZWxkXV0pXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB2bGRGaWVsZENoZWNrYm94KGZpZWxkOiBzdHJpbmcsIHZhbHVlOiBBcnJheTxzdHJpbmc+KTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCF2YWx1ZSB8fCB2YWx1ZS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5lcnJvcih7XHJcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiB0aGlzLnBvSTE4blBpcGUudHJhbnNmb3JtKHRoaXMubGl0ZXJhbHNbJ2ZpZWxkVmxkU2VsZWN0ZWQnXSwgW3RoaXMubGl0ZXJhbHNbZmllbGRdXSlcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVmFsaWRhIGZvcm1hdG8gY29uZm9ybWUgcmVncmE6IFwiOVwiIGFwZW5hcyBuw7ptZXJvcywgXCJYXCIgcXVhbHF1ZXIgY2FyYWN0ZXIsIFwiIVwiIGFwZW5hcyBsZXRyYXMgbWFpw7pzY3VsYXNcclxuICAgIHB1YmxpYyB2bGRGaWVsZEZvcm1hdChmaWVsZDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCBmb3JtYXQ6IHN0cmluZywgcmVwbGFjZVBvaW50ID0gZmFsc2UpOiBib29sZWFuIHtcclxuICAgICAgICBsZXQgbE9LID0gdHJ1ZTtcclxuICAgICAgICBsZXQgb2xkRm9ybWF0OiBzdHJpbmc7XHJcblxyXG4gICAgICAgIGlmICghdmFsdWUpIHsgcmV0dXJuIGxPSzsgfVxyXG5cclxuICAgICAgICAvKlJldGlyYSBvcyBwb250b3MgZG8gZm9ybWF0byovXHJcbiAgICAgICAgaWYgKHJlcGxhY2VQb2ludCkge1xyXG4gICAgICAgICAgICBvbGRGb3JtYXQgPSBmb3JtYXQ7XHJcbiAgICAgICAgICAgIGZvcm1hdCA9IGZvcm1hdC5yZXBsYWNlKC9cXC4vZywgJycpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHZhbHVlLmxlbmd0aCAhPT0gZm9ybWF0Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICBsT0sgPSBmYWxzZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpZHggPSAwOyBpZHggPCBmb3JtYXQubGVuZ3RoOyBpZHgrKykge1xyXG4gICAgICAgICAgICAgICAgaWYgKGZvcm1hdFtpZHhdID09PSAnOScpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVbaWR4XS5yZXBsYWNlKC9bMC05XS8sICc5JykgIT09ICc5JykgeyBsT0sgPSBmYWxzZTsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoZm9ybWF0W2lkeF0gPT09ICchJykge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZVtpZHhdLnJlcGxhY2UoL1tBLVpdLywgJ0EnKSAhPT0gJ0EnKSB7IGxPSyA9IGZhbHNlOyBicmVhazsgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAocmVwbGFjZVBvaW50KSB7XHJcbiAgICAgICAgICAgIGZvcm1hdCA9IG9sZEZvcm1hdDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghbE9LKSB7XHJcbiAgICAgICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24uZXJyb3Ioe1xyXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogdGhpcy5wb0kxOG5QaXBlLnRyYW5zZm9ybSh0aGlzLmxpdGVyYWxzWydmaWVsZFZsZEZvcm1hdCddLCBbdGhpcy5saXRlcmFsc1tmaWVsZF0sIGZvcm1hdF0pXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGxPSztcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtdmFsaWRhdGlvbi51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHRzLWJhY2tvZmZpY2UtdXRpbC9zcmMvbGliL3V0aWxzL2ZpZWxkLXZhbGlkYXRpb24udXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0VBR0U7QUFHRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbkQsTUFBTSxPQUFPLG1CQUFtQjtJQU81QixZQUNJLGNBQXFDLEVBQ3JDLFVBQXNCLEVBQ3RCLFFBQWdCO1FBUHBCLGFBQVEsR0FBUSxFQUFFLENBQUM7UUFTZixJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUNyQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEcsQ0FBQztJQUVNLGlCQUFpQixDQUFDLEtBQWEsRUFBRSxLQUFhO1FBQ2pELElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUMvQixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQztnQkFDdEIsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUNoRyxDQUFDLENBQUM7WUFDSCxPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxnRUFBZ0U7SUFDekQsaUJBQWlCLENBQUMsWUFBb0IsRUFBRSxVQUFrQixFQUFFLFlBQW9CLEVBQUUsVUFBa0I7UUFDdkcsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUM5QixPQUFPLElBQUksQ0FBQztTQUNmO1FBRUQsSUFBSSxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLEdBQUcsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQ3JFLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO2dCQUN0QixPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsRUFDN0QsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQzthQUNoRSxDQUFDLENBQUM7WUFDSCxPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxjQUFjLENBQUMsS0FBYSxFQUFFLEtBQWEsRUFBRSxRQUFRLEdBQUcsS0FBSyxFQUFFLFVBQVUsR0FBRyxLQUFLO1FBQ3BGLElBQUksUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRTtZQUNsRCxPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUVELElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUU7WUFDeEIsSUFBSSxLQUFLLEtBQUssQ0FBQyxJQUFJLFVBQVUsS0FBSyxJQUFJLEVBQUU7Z0JBQ3BDLE9BQU8sSUFBSSxDQUFDO2FBQ2Y7WUFFRCxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQztnQkFDdEIsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUNoRyxDQUFDLENBQUM7WUFDSCxPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxLQUFhLEVBQUUsS0FBYTtRQUNoRCxJQUFJLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUNyQixFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZILE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLGVBQWUsQ0FBQyxLQUFhLEVBQUUsS0FBYSxFQUFFLFFBQVEsR0FBRyxLQUFLO1FBQ2pFLElBQUksUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRTtZQUNuRCxPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRTtZQUNwQyxPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxLQUFhLEVBQUUsS0FBYTtRQUNqRCxJQUFJLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUNyQixFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZILE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBRUQsSUFBSSxLQUFLLElBQUksS0FBSyxHQUFHLEdBQUcsRUFBRTtZQUN0QixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FDckIsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN2SCxPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCw2REFBNkQ7SUFDdEQsY0FBYyxDQUFDLFlBQW9CLEVBQUUsVUFBa0IsRUFBRSxZQUFvQixFQUFFLFVBQWtCO1FBQ3BHLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFBRSxZQUFZLEdBQUcsQ0FBQyxDQUFDO1NBQUU7UUFDeEMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUFFLFVBQVUsR0FBRyxDQUFDLENBQUM7U0FBRTtRQUVwQyxJQUFJLFlBQVksR0FBRyxVQUFVLEVBQUU7WUFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUM7Z0JBQ3RCLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxFQUM3RCxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO2FBQ2hFLENBQUMsQ0FBQztZQUNILE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLFlBQVksQ0FBQyxLQUFhLEVBQUUsS0FBVztRQUMxQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVyRCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDM0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUM7Z0JBQ3RCLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2FBQzVGLENBQUMsQ0FBQztZQUNILE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELDJEQUEyRDtJQUNwRCxZQUFZLENBQUMsWUFBb0IsRUFBRSxVQUFrQixFQUFFLFlBQWtCLEVBQUUsVUFBZ0I7UUFDOUYsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUM5QixPQUFPLElBQUksQ0FBQztTQUNmO1FBRUQsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDN0UsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFekUsSUFBSSxjQUFjLEdBQUcsWUFBWSxFQUFFO1lBQy9CLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO2dCQUN0QixPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsRUFDN0QsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQzthQUNoRSxDQUFDLENBQUM7WUFDSCxPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxtQkFBbUIsQ0FBQyxLQUFhLEVBQUUsS0FBaUI7UUFDdkQsSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUM5QixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQztnQkFDdEIsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUNoRyxDQUFDLENBQUM7WUFDSCxPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxLQUFhLEVBQUUsS0FBb0I7UUFDdkQsSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUM5QixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQztnQkFDdEIsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUNoRyxDQUFDLENBQUM7WUFDSCxPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCx5R0FBeUc7SUFDbEcsY0FBYyxDQUFDLEtBQWEsRUFBRSxLQUFhLEVBQUUsTUFBYyxFQUFFLFlBQVksR0FBRyxLQUFLO1FBQ3BGLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQztRQUNmLElBQUksU0FBaUIsQ0FBQztRQUV0QixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQUUsT0FBTyxHQUFHLENBQUM7U0FBRTtRQUUzQiwrQkFBK0I7UUFDL0IsSUFBSSxZQUFZLEVBQUU7WUFDZCxTQUFTLEdBQUcsTUFBTSxDQUFDO1lBQ25CLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztTQUN0QztRQUVELElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsTUFBTSxFQUFFO1lBQ2hDLEdBQUcsR0FBRyxLQUFLLENBQUM7U0FDZjthQUFNO1lBQ0gsS0FBSyxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUU7Z0JBQzFDLElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsRUFBRTtvQkFDckIsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsS0FBSyxHQUFHLEVBQUU7d0JBQUUsR0FBRyxHQUFHLEtBQUssQ0FBQzt3QkFBQyxNQUFNO3FCQUFFO2lCQUN4RTtnQkFFRCxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLEVBQUU7b0JBQ3JCLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLEtBQUssR0FBRyxFQUFFO3dCQUFFLEdBQUcsR0FBRyxLQUFLLENBQUM7d0JBQUMsTUFBTTtxQkFBRTtpQkFDeEU7YUFDSjtTQUNKO1FBRUQsSUFBSSxZQUFZLEVBQUU7WUFDZCxNQUFNLEdBQUcsU0FBUyxDQUFDO1NBQ3RCO1FBRUQsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNOLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO2dCQUN0QixPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQzthQUN0RyxDQUFDLENBQUM7U0FDTjtRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuVmVyc8OjbzogMS4wMDJcclxuRGF0YSBDcmlhw6fDo286IDE5LzAyLzIwMTlcclxuKi9cclxuXHJcbmltcG9ydCB7IFBvTm90aWZpY2F0aW9uU2VydmljZSwgUG9JMThuUGlwZSB9IGZyb20gJ0Bwby11aS9uZy1jb21wb25lbnRzJztcclxuaW1wb3J0IHsgRGlzY2xhaW1lclV0aWwgfSBmcm9tICcuL2Rpc2NsYWltZXIudXRpbCc7XHJcblxyXG5leHBvcnQgY2xhc3MgRmllbGRWYWxpZGF0aW9uVXRpbCB7XHJcbiAgICBwb05vdGlmaWNhdGlvbjogUG9Ob3RpZmljYXRpb25TZXJ2aWNlO1xyXG4gICAgcG9JMThuUGlwZTogUG9JMThuUGlwZTtcclxuICAgIGxpdGVyYWxzOiBhbnkgPSB7fTtcclxuXHJcbiAgICBkaXNjbGFpbWVyVXRpbDogRGlzY2xhaW1lclV0aWw7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcG9Ob3RpZmljYXRpb246IFBvTm90aWZpY2F0aW9uU2VydmljZSxcclxuICAgICAgICBwb0kxOG5QaXBlOiBQb0kxOG5QaXBlLFxyXG4gICAgICAgIGxpdGVyYWxzOiBPYmplY3RcclxuICAgICkge1xyXG4gICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24gPSBwb05vdGlmaWNhdGlvbjtcclxuICAgICAgICB0aGlzLnBvSTE4blBpcGUgPSBwb0kxOG5QaXBlO1xyXG4gICAgICAgIHRoaXMubGl0ZXJhbHMgPSBsaXRlcmFscztcclxuICAgICAgICB0aGlzLmRpc2NsYWltZXJVdGlsID0gbmV3IERpc2NsYWltZXJVdGlsKHRoaXMucG9Ob3RpZmljYXRpb24sIHRoaXMucG9JMThuUGlwZSwgdGhpcy5saXRlcmFscyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHZsZEZpZWxkQ2hhcmFjdGVyKGZpZWxkOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIXZhbHVlIHx8IHZhbHVlLnRyaW0oKSA9PT0gJycpIHtcclxuICAgICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5lcnJvcih7XHJcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiB0aGlzLnBvSTE4blBpcGUudHJhbnNmb3JtKHRoaXMubGl0ZXJhbHNbJ2ZpZWxkVmxkUmVxdWVyZWQnXSwgW3RoaXMubGl0ZXJhbHNbZmllbGRdXSlcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVmFsaWRhIHVtYSBmYWl4YSBkZSBjYXJhY3RlcmVzIHNlIG8gaW5pY2lhbCDDqSBtZW5vciBxdWUgZmluYWxcclxuICAgIHB1YmxpYyB2bGRSYW5nZUNoYXJhY3Rlcihpbml0aWFsRmllbGQ6IHN0cmluZywgZmluYWxGaWVsZDogc3RyaW5nLCBpbml0aWFsVmFsdWU6IHN0cmluZywgZmluYWxWYWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCFpbml0aWFsVmFsdWUgfHwgIWZpbmFsVmFsdWUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoaW5pdGlhbFZhbHVlLnRyaW0oKS50b1VwcGVyQ2FzZSgpID4gZmluYWxWYWx1ZS50cmltKCkudG9VcHBlckNhc2UoKSkge1xyXG4gICAgICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uLmVycm9yKHtcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMucG9JMThuUGlwZS50cmFuc2Zvcm0odGhpcy5saXRlcmFsc1snZmllbGRWbGRSYW5nZSddLFxyXG4gICAgICAgICAgICAgICAgICAgIFt0aGlzLmxpdGVyYWxzW2luaXRpYWxGaWVsZF0sIHRoaXMubGl0ZXJhbHNbZmluYWxGaWVsZF1dKVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdmxkRmllbGROdW1iZXIoZmllbGQ6IHN0cmluZywgdmFsdWU6IG51bWJlciwgdmxkVmFsdWUgPSBmYWxzZSwgemVyb0FjY2VwdCA9IGZhbHNlKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKHZsZFZhbHVlICYmICF0aGlzLnZsZFZhbHVlT2ZOdW1iZXIoZmllbGQsIHZhbHVlKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoKCF2YWx1ZSkgfHwgdmFsdWUgPD0gMCkge1xyXG4gICAgICAgICAgICBpZiAodmFsdWUgPT09IDAgJiYgemVyb0FjY2VwdCA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24uZXJyb3Ioe1xyXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogdGhpcy5wb0kxOG5QaXBlLnRyYW5zZm9ybSh0aGlzLmxpdGVyYWxzWydmaWVsZFZsZFJlcXVlcmVkJ10sIFt0aGlzLmxpdGVyYWxzW2ZpZWxkXV0pXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB2bGRWYWx1ZU9mTnVtYmVyKGZpZWxkOiBzdHJpbmcsIHZhbHVlOiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAodmFsdWUgJiYgdmFsdWUgPCAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24uZXJyb3IoXHJcbiAgICAgICAgICAgICAgICB7IG1lc3NhZ2U6IHRoaXMucG9JMThuUGlwZS50cmFuc2Zvcm0odGhpcy5saXRlcmFsc1snZmllbGRWbGROdW1iZXInXSwgW3ZhbHVlLnRvU3RyaW5nKCksIHRoaXMubGl0ZXJhbHNbZmllbGRdXSkgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHZsZEZpZWxkUGVyY2VudChmaWVsZDogc3RyaW5nLCB2YWx1ZTogbnVtYmVyLCB2bGRWYWx1ZSA9IGZhbHNlKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKHZsZFZhbHVlICYmICF0aGlzLnZsZFZhbHVlT2ZQZXJjZW50KGZpZWxkLCB2YWx1ZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLnZsZEZpZWxkTnVtYmVyKGZpZWxkLCB2YWx1ZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdmxkVmFsdWVPZlBlcmNlbnQoZmllbGQ6IHN0cmluZywgdmFsdWU6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSA8IDApIHtcclxuICAgICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5lcnJvcihcclxuICAgICAgICAgICAgICAgIHsgbWVzc2FnZTogdGhpcy5wb0kxOG5QaXBlLnRyYW5zZm9ybSh0aGlzLmxpdGVyYWxzWydmaWVsZFZsZE51bWJlciddLCBbdmFsdWUudG9TdHJpbmcoKSwgdGhpcy5saXRlcmFsc1tmaWVsZF1dKSB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHZhbHVlICYmIHZhbHVlID4gMTAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24uZXJyb3IoXHJcbiAgICAgICAgICAgICAgICB7IG1lc3NhZ2U6IHRoaXMucG9JMThuUGlwZS50cmFuc2Zvcm0odGhpcy5saXRlcmFsc1snZmllbGRWbGROdW1iZXInXSwgW3ZhbHVlLnRvU3RyaW5nKCksIHRoaXMubGl0ZXJhbHNbZmllbGRdXSkgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVmFsaWRhIHVtYSBmYWl4YSBkZSBuw7ptZXJvcyBzZSBvIGluaWNpYWwgw6kgbWVub3IgcXVlIGZpbmFsXHJcbiAgICBwdWJsaWMgdmxkUmFuZ2VOdW1iZXIoaW5pdGlhbEZpZWxkOiBzdHJpbmcsIGZpbmFsRmllbGQ6IHN0cmluZywgaW5pdGlhbFZhbHVlOiBudW1iZXIsIGZpbmFsVmFsdWU6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghaW5pdGlhbFZhbHVlKSB7IGluaXRpYWxWYWx1ZSA9IDA7IH1cclxuICAgICAgICBpZiAoIWZpbmFsVmFsdWUpIHsgZmluYWxWYWx1ZSA9IDA7IH1cclxuXHJcbiAgICAgICAgaWYgKGluaXRpYWxWYWx1ZSA+IGZpbmFsVmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5lcnJvcih7XHJcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiB0aGlzLnBvSTE4blBpcGUudHJhbnNmb3JtKHRoaXMubGl0ZXJhbHNbJ2ZpZWxkVmxkUmFuZ2UnXSxcclxuICAgICAgICAgICAgICAgICAgICBbdGhpcy5saXRlcmFsc1tpbml0aWFsRmllbGRdLCB0aGlzLmxpdGVyYWxzW2ZpbmFsRmllbGRdXSlcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHZsZEZpZWxkRGF0ZShmaWVsZDogc3RyaW5nLCB2YWx1ZTogRGF0ZSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IHZhbERhdGUgPSB0aGlzLmRpc2NsYWltZXJVdGlsLmFqdXN0RGF0ZSh2YWx1ZSk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5kaXNjbGFpbWVyVXRpbC5pc1ZhbGlkRGF0ZSh2YWxEYXRlKSkge1xyXG4gICAgICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uLmVycm9yKHtcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMucG9JMThuUGlwZS50cmFuc2Zvcm0odGhpcy5saXRlcmFsc1snZmllbGRWbGREYXRlJ10sIFt0aGlzLmxpdGVyYWxzW2ZpZWxkXV0pXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFZhbGlkYSB1bWEgZmFpeGEgZGUgZGF0YXMgc2UgbyBpbmljaWFsIMOpIG1lbm9yIHF1ZSBmaW5hbFxyXG4gICAgcHVibGljIHZsZFJhbmdlRGF0ZShpbml0aWFsRmllbGQ6IHN0cmluZywgZmluYWxGaWVsZDogc3RyaW5nLCBpbml0aWFsVmFsdWU6IERhdGUsIGZpbmFsVmFsdWU6IERhdGUpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIWluaXRpYWxWYWx1ZSB8fCAhZmluYWxWYWx1ZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHZhbEluaXRpYWxEYXRlID0gdGhpcy5kaXNjbGFpbWVyVXRpbC5hanVzdERhdGUoaW5pdGlhbFZhbHVlKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgY29uc3QgdmFsRmluYWxEYXRlID0gdGhpcy5kaXNjbGFpbWVyVXRpbC5hanVzdERhdGUoZmluYWxWYWx1ZSkuZ2V0VGltZSgpO1xyXG5cclxuICAgICAgICBpZiAodmFsSW5pdGlhbERhdGUgPiB2YWxGaW5hbERhdGUpIHtcclxuICAgICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5lcnJvcih7XHJcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiB0aGlzLnBvSTE4blBpcGUudHJhbnNmb3JtKHRoaXMubGl0ZXJhbHNbJ2ZpZWxkVmxkUmFuZ2UnXSxcclxuICAgICAgICAgICAgICAgICAgICBbdGhpcy5saXRlcmFsc1tpbml0aWFsRmllbGRdLCB0aGlzLmxpdGVyYWxzW2ZpbmFsRmllbGRdXSlcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHZsZEZpZWxkTXVsdGlTZWxlY3QoZmllbGQ6IHN0cmluZywgdmFsdWU6IEFycmF5PGFueT4pOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIXZhbHVlIHx8IHZhbHVlLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uLmVycm9yKHtcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMucG9JMThuUGlwZS50cmFuc2Zvcm0odGhpcy5saXRlcmFsc1snZmllbGRWbGRTZWxlY3RlZCddLCBbdGhpcy5saXRlcmFsc1tmaWVsZF1dKVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdmxkRmllbGRDaGVja2JveChmaWVsZDogc3RyaW5nLCB2YWx1ZTogQXJyYXk8c3RyaW5nPik6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghdmFsdWUgfHwgdmFsdWUubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24uZXJyb3Ioe1xyXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogdGhpcy5wb0kxOG5QaXBlLnRyYW5zZm9ybSh0aGlzLmxpdGVyYWxzWydmaWVsZFZsZFNlbGVjdGVkJ10sIFt0aGlzLmxpdGVyYWxzW2ZpZWxkXV0pXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFZhbGlkYSBmb3JtYXRvIGNvbmZvcm1lIHJlZ3JhOiBcIjlcIiBhcGVuYXMgbsO6bWVyb3MsIFwiWFwiIHF1YWxxdWVyIGNhcmFjdGVyLCBcIiFcIiBhcGVuYXMgbGV0cmFzIG1hacO6c2N1bGFzXHJcbiAgICBwdWJsaWMgdmxkRmllbGRGb3JtYXQoZmllbGQ6IHN0cmluZywgdmFsdWU6IHN0cmluZywgZm9ybWF0OiBzdHJpbmcsIHJlcGxhY2VQb2ludCA9IGZhbHNlKTogYm9vbGVhbiB7XHJcbiAgICAgICAgbGV0IGxPSyA9IHRydWU7XHJcbiAgICAgICAgbGV0IG9sZEZvcm1hdDogc3RyaW5nO1xyXG5cclxuICAgICAgICBpZiAoIXZhbHVlKSB7IHJldHVybiBsT0s7IH1cclxuXHJcbiAgICAgICAgLypSZXRpcmEgb3MgcG9udG9zIGRvIGZvcm1hdG8qL1xyXG4gICAgICAgIGlmIChyZXBsYWNlUG9pbnQpIHtcclxuICAgICAgICAgICAgb2xkRm9ybWF0ID0gZm9ybWF0O1xyXG4gICAgICAgICAgICBmb3JtYXQgPSBmb3JtYXQucmVwbGFjZSgvXFwuL2csICcnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh2YWx1ZS5sZW5ndGggIT09IGZvcm1hdC5sZW5ndGgpIHtcclxuICAgICAgICAgICAgbE9LID0gZmFsc2U7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgZm9ybWF0Lmxlbmd0aDsgaWR4KyspIHtcclxuICAgICAgICAgICAgICAgIGlmIChmb3JtYXRbaWR4XSA9PT0gJzknKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlW2lkeF0ucmVwbGFjZSgvWzAtOV0vLCAnOScpICE9PSAnOScpIHsgbE9LID0gZmFsc2U7IGJyZWFrOyB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGZvcm1hdFtpZHhdID09PSAnIScpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVbaWR4XS5yZXBsYWNlKC9bQS1aXS8sICdBJykgIT09ICdBJykgeyBsT0sgPSBmYWxzZTsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHJlcGxhY2VQb2ludCkge1xyXG4gICAgICAgICAgICBmb3JtYXQgPSBvbGRGb3JtYXQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIWxPSykge1xyXG4gICAgICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uLmVycm9yKHtcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMucG9JMThuUGlwZS50cmFuc2Zvcm0odGhpcy5saXRlcmFsc1snZmllbGRWbGRGb3JtYXQnXSwgW3RoaXMubGl0ZXJhbHNbZmllbGRdLCBmb3JtYXRdKVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBsT0s7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -1,28 +1,10 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* Generated from: lib/utils/file.util.ts
|
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
-
*/
|
|
6
1
|
export class FileUtil {
|
|
7
2
|
constructor() { }
|
|
8
|
-
/**
|
|
9
|
-
* @param {?} data
|
|
10
|
-
* @param {?} fileName
|
|
11
|
-
* @param {?=} contentType
|
|
12
|
-
* @param {?=} base64
|
|
13
|
-
* @return {?}
|
|
14
|
-
*/
|
|
15
3
|
static downloadFile(data, fileName, contentType, base64) {
|
|
16
4
|
base64 = (base64 === false) ? false : true;
|
|
17
|
-
/** @type {?} */
|
|
18
5
|
const dataBlob = base64 ? this.b64toBlob(data, contentType) : data;
|
|
19
6
|
this.download(dataBlob, fileName);
|
|
20
7
|
}
|
|
21
|
-
/**
|
|
22
|
-
* @param {?} data
|
|
23
|
-
* @param {?=} dwldDataParam
|
|
24
|
-
* @return {?}
|
|
25
|
-
*/
|
|
26
8
|
static downloadData(data, dwldDataParam = null) {
|
|
27
9
|
if (!data) {
|
|
28
10
|
return;
|
|
@@ -45,22 +27,12 @@ export class FileUtil {
|
|
|
45
27
|
if (!dwldDataParam.columnExclude) {
|
|
46
28
|
dwldDataParam.columnExclude = [];
|
|
47
29
|
}
|
|
48
|
-
/** @type {?} */
|
|
49
30
|
const datab64 = btoa(this.jsonToString(data, dwldDataParam));
|
|
50
31
|
this.downloadFile(datab64, dwldDataParam.fileName, 'text/csv');
|
|
51
32
|
}
|
|
52
|
-
/**
|
|
53
|
-
* @private
|
|
54
|
-
* @param {?} file
|
|
55
|
-
* @param {?} fileName
|
|
56
|
-
* @return {?}
|
|
57
|
-
*/
|
|
58
33
|
static download(file, fileName) {
|
|
59
|
-
/** @type {?} */
|
|
60
34
|
const binaryData = [file];
|
|
61
|
-
/** @type {?} */
|
|
62
35
|
const downloadLink = document.createElement('a');
|
|
63
|
-
/** @type {?} */
|
|
64
36
|
const urlDownload = window.URL.createObjectURL(new Blob(binaryData, { type: file.type }));
|
|
65
37
|
/**Verifica se é ie ou edge, pois o mesmo tem tratamento próprio para arquivos blob */
|
|
66
38
|
if (navigator.userAgent.toUpperCase().indexOf('.NET') > 0 || navigator.userAgent.toUpperCase().indexOf('EDGE') > 0) {
|
|
@@ -75,55 +47,31 @@ export class FileUtil {
|
|
|
75
47
|
downloadLink.remove();
|
|
76
48
|
}
|
|
77
49
|
}
|
|
78
|
-
/**
|
|
79
|
-
* @private
|
|
80
|
-
* @param {?} b64Data
|
|
81
|
-
* @param {?=} contentType
|
|
82
|
-
* @param {?=} sliceSize
|
|
83
|
-
* @return {?}
|
|
84
|
-
*/
|
|
85
50
|
static b64toBlob(b64Data, contentType, sliceSize) {
|
|
86
51
|
contentType = contentType || '';
|
|
87
52
|
sliceSize = sliceSize || 512;
|
|
88
|
-
/** @type {?} */
|
|
89
53
|
const byteCharacters = atob(b64Data);
|
|
90
|
-
/** @type {?} */
|
|
91
54
|
const byteArrays = [];
|
|
92
55
|
for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {
|
|
93
|
-
/** @type {?} */
|
|
94
56
|
const slice = byteCharacters.slice(offset, offset + sliceSize);
|
|
95
|
-
/** @type {?} */
|
|
96
57
|
const byteNumbers = new Array(slice.length);
|
|
97
58
|
for (let i = 0; i < slice.length; i++) {
|
|
98
59
|
byteNumbers[i] = slice.charCodeAt(i);
|
|
99
60
|
}
|
|
100
|
-
/** @type {?} */
|
|
101
61
|
const byteArray = new Uint8Array(byteNumbers);
|
|
102
62
|
byteArrays.push(byteArray);
|
|
103
63
|
}
|
|
104
|
-
/** @type {?} */
|
|
105
64
|
const blob = new Blob(byteArrays, { type: contentType });
|
|
106
65
|
return blob;
|
|
107
66
|
}
|
|
108
|
-
/**
|
|
109
|
-
* @private
|
|
110
|
-
* @param {?} jsonData
|
|
111
|
-
* @param {?} dwldDataParam
|
|
112
|
-
* @return {?}
|
|
113
|
-
*/
|
|
114
67
|
static jsonToString(jsonData, dwldDataParam) {
|
|
115
68
|
if (!jsonData || jsonData.length === 0) {
|
|
116
69
|
return '';
|
|
117
70
|
}
|
|
118
|
-
/** @type {?} */
|
|
119
71
|
const lineDelimiter = '\n';
|
|
120
|
-
/** @type {?} */
|
|
121
72
|
let columnOrig = null;
|
|
122
|
-
/** @type {?} */
|
|
123
73
|
let columnHeader = null;
|
|
124
|
-
/** @type {?} */
|
|
125
74
|
const keys = [];
|
|
126
|
-
/** @type {?} */
|
|
127
75
|
let includeKey;
|
|
128
76
|
if (dwldDataParam.columnList &&
|
|
129
77
|
dwldDataParam.columnList.length > 0) {
|
|
@@ -132,11 +80,7 @@ export class FileUtil {
|
|
|
132
80
|
else {
|
|
133
81
|
columnOrig = Object.keys(jsonData[0]);
|
|
134
82
|
}
|
|
135
|
-
columnOrig.forEach(
|
|
136
|
-
* @param {?} key
|
|
137
|
-
* @return {?}
|
|
138
|
-
*/
|
|
139
|
-
key => {
|
|
83
|
+
columnOrig.forEach(key => {
|
|
140
84
|
includeKey = true;
|
|
141
85
|
if (dwldDataParam.columnExclude &&
|
|
142
86
|
dwldDataParam.columnExclude.length > 0 &&
|
|
@@ -148,23 +92,11 @@ export class FileUtil {
|
|
|
148
92
|
columnHeader = (!columnHeader) ? '' : columnHeader + dwldDataParam.columnDelimiter;
|
|
149
93
|
columnHeader += (dwldDataParam.literals[key]) ? dwldDataParam.literals[key] : key;
|
|
150
94
|
}
|
|
151
|
-
})
|
|
152
|
-
|
|
153
|
-
const lineStr = jsonData.reduce((/**
|
|
154
|
-
* @param {?} accLineStr
|
|
155
|
-
* @param {?} currentItem
|
|
156
|
-
* @return {?}
|
|
157
|
-
*/
|
|
158
|
-
(accLineStr, currentItem) => {
|
|
159
|
-
/** @type {?} */
|
|
95
|
+
});
|
|
96
|
+
const lineStr = jsonData.reduce((accLineStr, currentItem) => {
|
|
160
97
|
let first = true;
|
|
161
|
-
/** @type {?} */
|
|
162
98
|
let columnValue = null;
|
|
163
|
-
keys.forEach(
|
|
164
|
-
* @param {?} key
|
|
165
|
-
* @return {?}
|
|
166
|
-
*/
|
|
167
|
-
key => {
|
|
99
|
+
keys.forEach(key => {
|
|
168
100
|
if (!first) {
|
|
169
101
|
accLineStr += dwldDataParam.columnDelimiter;
|
|
170
102
|
}
|
|
@@ -185,40 +117,12 @@ export class FileUtil {
|
|
|
185
117
|
}
|
|
186
118
|
accLineStr += columnValue;
|
|
187
119
|
first = false;
|
|
188
|
-
})
|
|
120
|
+
});
|
|
189
121
|
return accLineStr + lineDelimiter;
|
|
190
|
-
}
|
|
122
|
+
}, columnHeader + lineDelimiter);
|
|
191
123
|
return lineStr;
|
|
192
124
|
}
|
|
193
125
|
}
|
|
194
|
-
/**
|
|
195
|
-
* @record
|
|
196
|
-
*/
|
|
197
|
-
export function IDownloadDataParams() { }
|
|
198
|
-
if (false) {
|
|
199
|
-
/** @type {?} */
|
|
200
|
-
IDownloadDataParams.prototype.fileName;
|
|
201
|
-
/** @type {?} */
|
|
202
|
-
IDownloadDataParams.prototype.literals;
|
|
203
|
-
/** @type {?} */
|
|
204
|
-
IDownloadDataParams.prototype.columnDelimiter;
|
|
205
|
-
/** @type {?} */
|
|
206
|
-
IDownloadDataParams.prototype.columnList;
|
|
207
|
-
/** @type {?} */
|
|
208
|
-
IDownloadDataParams.prototype.columnExclude;
|
|
209
|
-
}
|
|
210
126
|
export class DownloadDataParams {
|
|
211
127
|
}
|
|
212
|
-
if (false) {
|
|
213
|
-
/** @type {?} */
|
|
214
|
-
DownloadDataParams.prototype.fileName;
|
|
215
|
-
/** @type {?} */
|
|
216
|
-
DownloadDataParams.prototype.literals;
|
|
217
|
-
/** @type {?} */
|
|
218
|
-
DownloadDataParams.prototype.columnDelimiter;
|
|
219
|
-
/** @type {?} */
|
|
220
|
-
DownloadDataParams.prototype.columnList;
|
|
221
|
-
/** @type {?} */
|
|
222
|
-
DownloadDataParams.prototype.columnExclude;
|
|
223
|
-
}
|
|
224
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS51dGlsLmpzIiwic291cmNlUm9vdCI6IkM6L0RhdGFzdWwvVEhGL2R0cy1iYWNrb2ZmaWNlLXV0aWwtdjE0LW1hc3Rlci9wcm9qZWN0cy9kdHMtYmFja29mZmljZS11dGlsL3NyYy8iLCJzb3VyY2VzIjpbImxpYi91dGlscy9maWxlLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxNQUFNLE9BQU8sUUFBUTtJQUVqQixnQkFDSSxDQUFDOzs7Ozs7OztJQUVMLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBUyxFQUFFLFFBQWdCLEVBQUUsV0FBb0IsRUFBRSxNQUFnQjtRQUNuRixNQUFNLEdBQUcsQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDOztjQUNyQyxRQUFRLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSTtRQUNsRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN0QyxDQUFDOzs7Ozs7SUFFRCxNQUFNLENBQUMsWUFBWSxDQUFDLElBQWdCLEVBQUUsZ0JBQXFDLElBQUk7UUFDM0UsSUFBSSxDQUFDLElBQUksRUFBRTtZQUFFLE9BQU87U0FBRTtRQUV0QixJQUFJLENBQUMsYUFBYSxFQUFFO1lBQUUsYUFBYSxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztTQUFFO1FBQ2pFLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFO1lBQUUsYUFBYSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7U0FBRTtRQUNyRSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRTtZQUFFLGFBQWEsQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1NBQUU7UUFDN0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLEVBQUU7WUFB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QVUsR0FBRyxhQUFhLENBQUM7UUFFdEMsQ0FBQyxHQUFFLFlBQVksR0FBRyxhQUFhLENBQUM7UUFFaEMsT0FBTyxPQUFPLENBQUM7SUFDbkIsQ0FBQztDQUNKOzs7O0FBRUQseUNBTUM7OztJQUxHLHVDQUFpQjs7SUFDakIsdUNBQWM7O0lBQ2QsOENBQXdCOztJQUN4Qix5Q0FBMEI7O0lBQzFCLDRDQUE2Qjs7QUFHakMsTUFBTSxPQUFPLGtCQUFrQjtDQU05Qjs7O0lBTEcsc0NBQWlCOztJQUNqQixzQ0FBYzs7SUFDZCw2Q0FBd0I7O0lBQ3hCLHdDQUEwQjs7SUFDMUIsMkNBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEZpbGVVdGlsIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICkgeyB9XHJcblxyXG4gICAgc3RhdGljIGRvd25sb2FkRmlsZShkYXRhOiBhbnksIGZpbGVOYW1lOiBzdHJpbmcsIGNvbnRlbnRUeXBlPzogc3RyaW5nLCBiYXNlNjQ/OiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgYmFzZTY0ID0gKGJhc2U2NCA9PT0gZmFsc2UpID8gZmFsc2UgOiB0cnVlO1xyXG4gICAgICAgIGNvbnN0IGRhdGFCbG9iID0gYmFzZTY0ID8gdGhpcy5iNjR0b0Jsb2IoZGF0YSwgY29udGVudFR5cGUpIDogZGF0YTtcclxuICAgICAgICB0aGlzLmRvd25sb2FkKGRhdGFCbG9iLCBmaWxlTmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGRvd25sb2FkRGF0YShkYXRhOiBBcnJheTxhbnk+LCBkd2xkRGF0YVBhcmFtOiBJRG93bmxvYWREYXRhUGFyYW1zID0gbnVsbCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghZGF0YSkgeyByZXR1cm47IH1cclxuXHJcbiAgICAgICAgaWYgKCFkd2xkRGF0YVBhcmFtKSB7IGR3bGREYXRhUGFyYW0gPSBuZXcgRG93bmxvYWREYXRhUGFyYW1zKCk7IH1cclxuICAgICAgICBpZiAoIWR3bGREYXRhUGFyYW0uZmlsZU5hbWUpIHsgZHdsZERhdGFQYXJhbS5maWxlTmFtZSA9ICdkYXRhLmNzdic7IH1cclxuICAgICAgICBpZiAoIWR3bGREYXRhUGFyYW0ubGl0ZXJhbHMpIHsgZHdsZERhdGFQYXJhbS5saXRlcmFscyA9IHt9OyB9XHJcbiAgICAgICAgaWYgKCFkd2xkRGF0YVBhcmFtLmNvbHVtbkRlbGltaXRlcikgeyBkd2xkRGF0YVBhcmFtLmNvbHVtbkRlbGltaXRlciA9ICc7JzsgfVxyXG4gICAgICAgIGlmICghZHdsZERhdGFQYXJhbS5jb2x1bW5MaXN0KSB7IGR3bGREYXRhUGFyYW0uY29sdW1uTGlzdCA9IFtdOyB9XHJcbiAgICAgICAgaWYgKCFkd2xkRGF0YVBhcmFtLmNvbHVtbkV4Y2x1ZGUpIHsgZHdsZERhdGFQYXJhbS5jb2x1bW5FeGNsdWRlID0gW107IH1cclxuXHJcbiAgICAgICAgY29uc3QgZGF0YWI2NCA9IGJ0b2EodGhpcy5qc29uVG9TdHJpbmcoZGF0YSwgZHdsZERhdGFQYXJhbSkpO1xyXG4gICAgICAgIHRoaXMuZG93bmxvYWRGaWxlKGRhdGFiNjQsIGR3bGREYXRhUGFyYW0uZmlsZU5hbWUsICd0ZXh0L2NzdicpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc3RhdGljIGRvd25sb2FkKGZpbGU6IEJsb2IsIGZpbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBiaW5hcnlEYXRhID0gW2ZpbGVdO1xyXG4gICAgICAgIGNvbnN0IGRvd25sb2FkTGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcclxuICAgICAgICBjb25zdCB1cmxEb3dubG9hZCA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKG5ldyBCbG9iKGJpbmFyeURhdGEsIHsgdHlwZTogZmlsZS50eXBlIH0pKTtcclxuXHJcbiAgICAgICAgLyoqVmVyaWZpY2Egc2Ugw6kgaWUgb3UgZWRnZSwgcG9pcyBvIG1lc21vIHRlbSB0cmF0YW1lbnRvIHByw7NwcmlvIHBhcmEgYXJxdWl2b3MgYmxvYiAqL1xyXG4gICAgICAgIGlmIChuYXZpZ2F0b3IudXNlckFnZW50LnRvVXBwZXJDYXNlKCkuaW5kZXhPZignLk5FVCcpID4gMCB8fCBuYXZpZ2F0b3IudXNlckFnZW50LnRvVXBwZXJDYXNlKCkuaW5kZXhPZignRURHRScpID4gMCkge1xyXG4gICAgICAgICAgICB3aW5kb3cubmF2aWdhdG9yLm1zU2F2ZU9yT3BlbkJsb2IoZmlsZSwgZmlsZU5hbWUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGRvd25sb2FkTGluay5ocmVmID0gdXJsRG93bmxvYWQ7XHJcbiAgICAgICAgICAgIGRvd25sb2FkTGluay5zZXRBdHRyaWJ1dGUoJ2Rvd25sb2FkJywgZmlsZU5hbWUpO1xyXG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvd25sb2FkTGluayk7XHJcbiAgICAgICAgICAgIGRvd25sb2FkTGluay5jbGljaygpO1xyXG4gICAgICAgICAgICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1cmxEb3dubG9hZCk7XHJcbiAgICAgICAgICAgIGRvd25sb2FkTGluay5yZW1vdmUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgYjY0dG9CbG9iKGI2NERhdGE6IGFueSwgY29udGVudFR5cGU/OiBzdHJpbmcsIHNsaWNlU2l6ZT86IG51bWJlcik6IEJsb2Ige1xyXG4gICAgICAgIGNvbnRlbnRUeXBlID0gY29udGVudFR5cGUgfHwgJyc7XHJcbiAgICAgICAgc2xpY2VTaXplID0gc2xpY2VTaXplIHx8IDUxMjtcclxuXHJcbiAgICAgICAgY29uc3QgYnl0ZUNoYXJhY3RlcnMgPSBhdG9iKGI2NERhdGEpO1xyXG4gICAgICAgIGNvbnN0IGJ5dGVBcnJheXMgPSBbXTtcclxuXHJcbiAgICAgICAgZm9yIChsZXQgb2Zmc2V0ID0gMDsgb2Zmc2V0IDwgYnl0ZUNoYXJhY3RlcnMubGVuZ3RoOyBvZmZzZXQgKz0gc2xpY2VTaXplKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNsaWNlID0gYnl0ZUNoYXJhY3RlcnMuc2xpY2Uob2Zmc2V0LCBvZmZzZXQgKyBzbGljZVNpemUpO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgYnl0ZU51bWJlcnMgPSBuZXcgQXJyYXkoc2xpY2UubGVuZ3RoKTtcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzbGljZS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgYnl0ZU51bWJlcnNbaV0gPSBzbGljZS5jaGFyQ29kZUF0KGkpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjb25zdCBieXRlQXJyYXkgPSBuZXcgVWludDhBcnJheShieXRlTnVtYmVycyk7XHJcbiAgICAgICAgICAgIGJ5dGVBcnJheXMucHVzaChieXRlQXJyYXkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKGJ5dGVBcnJheXMsIHsgdHlwZTogY29udGVudFR5cGUgfSk7XHJcbiAgICAgICAgcmV0dXJuIGJsb2I7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMganNvblRvU3RyaW5nKGpzb25EYXRhOiBBcnJheTxhbnk+LCBkd2xkRGF0YVBhcmFtOiBJRG93bmxvYWREYXRhUGFyYW1zKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAoIWpzb25EYXRhIHx8IGpzb25EYXRhLmxlbmd0aCA9PT0gMCkgeyByZXR1cm4gJyc7IH1cclxuXHJcbiAgICAgICAgY29uc3QgbGluZURlbGltaXRlciA9ICdcXG4nO1xyXG5cclxuICAgICAgICBsZXQgY29sdW1uT3JpZyA9IG51bGw7XHJcbiAgICAgICAgbGV0IGNvbHVtbkhlYWRlciA9IG51bGw7XHJcbiAgICAgICAgY29uc3Qga2V5cyA9IFtdO1xyXG4gICAgICAgIGxldCBpbmNsdWRlS2V5OiBib29sZWFuO1xyXG5cclxuICAgICAgICBpZiAoZHdsZERhdGFQYXJhbS5jb2x1bW5MaXN0ICYmXHJcbiAgICAgICAgICAgIGR3bGREYXRhUGFyYW0uY29sdW1uTGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGNvbHVtbk9yaWcgPSBkd2xkRGF0YVBhcmFtLmNvbHVtbkxpc3Q7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgY29sdW1uT3JpZyA9IE9iamVjdC5rZXlzKGpzb25EYXRhWzBdKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbHVtbk9yaWcuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICAgICAgICBpbmNsdWRlS2V5ID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAgIGlmIChkd2xkRGF0YVBhcmFtLmNvbHVtbkV4Y2x1ZGUgJiZcclxuICAgICAgICAgICAgICAgIGR3bGREYXRhUGFyYW0uY29sdW1uRXhjbHVkZS5sZW5ndGggPiAwICYmXHJcbiAgICAgICAgICAgICAgICBkd2xkRGF0YVBhcmFtLmNvbHVtbkV4Y2x1ZGUuaW5kZXhPZihrZXkpICE9PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgaW5jbHVkZUtleSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoaW5jbHVkZUtleSkge1xyXG4gICAgICAgICAgICAgICAga2V5cy5wdXNoKGtleSk7XHJcbiAgICAgICAgICAgICAgICBjb2x1bW5IZWFkZXIgPSAoIWNvbHVtbkhlYWRlcikgPyAnJyA6IGNvbHVtbkhlYWRlciArIGR3bGREYXRhUGFyYW0uY29sdW1uRGVsaW1pdGVyO1xyXG4gICAgICAgICAgICAgICAgY29sdW1uSGVhZGVyICs9IChkd2xkRGF0YVBhcmFtLmxpdGVyYWxzW2tleV0pID8gZHdsZERhdGFQYXJhbS5saXRlcmFsc1trZXldIDoga2V5O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGNvbnN0IGxpbmVTdHIgPSBqc29uRGF0YS5yZWR1Y2UoKGFjY0xpbmVTdHIsIGN1cnJlbnRJdGVtKSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBmaXJzdCA9IHRydWU7XHJcbiAgICAgICAgICAgIGxldCBjb2x1bW5WYWx1ZSA9IG51bGw7XHJcblxyXG4gICAgICAgICAgICBrZXlzLmZvckVhY2goa2V5ID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICghZmlyc3QpIHsgYWNjTGluZVN0ciArPSBkd2xkRGF0YVBhcmFtLmNvbHVtbkRlbGltaXRlcjsgfVxyXG5cclxuICAgICAgICAgICAgICAgIGNvbHVtblZhbHVlID0gY3VycmVudEl0ZW1ba2V5XTtcclxuICAgICAgICAgICAgICAgIGlmIChjb2x1bW5WYWx1ZSA9PT0gbnVsbCB8fCBjb2x1bW5WYWx1ZSA9PT0gdW5kZWZpbmVkKSB7IGNvbHVtblZhbHVlID0gJyc7IH1cclxuICAgICAgICAgICAgICAgIHN3aXRjaCAodHlwZW9mIChjb2x1bW5WYWx1ZSkpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlICdudW1iZXInOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5WYWx1ZSA9IGNvbHVtblZhbHVlLnRvTG9jYWxlU3RyaW5nKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5WYWx1ZSA9IChkd2xkRGF0YVBhcmFtLmxpdGVyYWxzW2Ake2NvbHVtblZhbHVlfWBdKSA/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkd2xkRGF0YVBhcmFtLmxpdGVyYWxzW2Ake2NvbHVtblZhbHVlfWBdIDogY29sdW1uVmFsdWU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ29iamVjdCc6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtblZhbHVlID0gSlNPTi5zdHJpbmdpZnkoY29sdW1uVmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgYWNjTGluZVN0ciArPSBjb2x1bW5WYWx1ZTtcclxuXHJcbiAgICAgICAgICAgICAgICBmaXJzdCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiBhY2NMaW5lU3RyICsgbGluZURlbGltaXRlcjtcclxuXHJcbiAgICAgICAgfSwgY29sdW1uSGVhZGVyICsgbGluZURlbGltaXRlcik7XHJcblxyXG4gICAgICAgIHJldHVybiBsaW5lU3RyO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElEb3dubG9hZERhdGFQYXJhbXMge1xyXG4gICAgZmlsZU5hbWU6IHN0cmluZztcclxuICAgIGxpdGVyYWxzOiBhbnk7XHJcbiAgICBjb2x1bW5EZWxpbWl0ZXI6IHN0cmluZztcclxuICAgIGNvbHVtbkxpc3Q6IEFycmF5PHN0cmluZz47XHJcbiAgICBjb2x1bW5FeGNsdWRlOiBBcnJheTxzdHJpbmc+O1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgRG93bmxvYWREYXRhUGFyYW1zIGltcGxlbWVudHMgSURvd25sb2FkRGF0YVBhcmFtcyB7XHJcbiAgICBmaWxlTmFtZTogc3RyaW5nO1xyXG4gICAgbGl0ZXJhbHM6IGFueTtcclxuICAgIGNvbHVtbkRlbGltaXRlcjogc3RyaW5nO1xyXG4gICAgY29sdW1uTGlzdDogQXJyYXk8c3RyaW5nPjtcclxuICAgIGNvbHVtbkV4Y2x1ZGU6IEFycmF5PHN0cmluZz47XHJcbn1cclxuIl19
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHRzLWJhY2tvZmZpY2UtdXRpbC9zcmMvbGliL3V0aWxzL2ZpbGUudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sUUFBUTtJQUVqQixnQkFDSSxDQUFDO0lBRUwsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFTLEVBQUUsUUFBZ0IsRUFBRSxXQUFvQixFQUFFLE1BQWdCO1FBQ25GLE1BQU0sR0FBRyxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDM0MsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ25FLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxNQUFNLENBQUMsWUFBWSxDQUFDLElBQWdCLEVBQUUsZ0JBQXFDLElBQUk7UUFDM0UsSUFBSSxDQUFDLElBQUksRUFBRTtZQUFFLE9BQU87U0FBRTtRQUV0QixJQUFJLENBQUMsYUFBYSxFQUFFO1lBQUUsYUFBYSxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztTQUFFO1FBQ2pFLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFO1lBQUUsYUFBYSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7U0FBRTtRQUNyRSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRTtZQUFFLGFBQWEsQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1NBQUU7UUFDN0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLEVBQUU7WUFBRSxhQUFhLENBQUMsZUFBZSxHQUFHLEdBQUcsQ0FBQztTQUFFO1FB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Z0JBQ0QsVUFBVSxJQUFJLFdBQVcsQ0FBQztnQkFFMUIsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNsQixDQUFDLENBQUMsQ0FBQztZQUVILE9BQU8sVUFBVSxHQUFHLGFBQWEsQ0FBQztRQUV0QyxDQUFDLEVBQUUsWUFBWSxHQUFHLGFBQWEsQ0FBQyxDQUFDO1FBRWpDLE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7Q0FDSjtBQVVELE1BQU0sT0FBTyxrQkFBa0I7Q0FNOUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgRmlsZVV0aWwge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgKSB7IH1cclxuXHJcbiAgICBzdGF0aWMgZG93bmxvYWRGaWxlKGRhdGE6IGFueSwgZmlsZU5hbWU6IHN0cmluZywgY29udGVudFR5cGU/OiBzdHJpbmcsIGJhc2U2ND86IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICBiYXNlNjQgPSAoYmFzZTY0ID09PSBmYWxzZSkgPyBmYWxzZSA6IHRydWU7XHJcbiAgICAgICAgY29uc3QgZGF0YUJsb2IgPSBiYXNlNjQgPyB0aGlzLmI2NHRvQmxvYihkYXRhLCBjb250ZW50VHlwZSkgOiBkYXRhO1xyXG4gICAgICAgIHRoaXMuZG93bmxvYWQoZGF0YUJsb2IsIGZpbGVOYW1lKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZG93bmxvYWREYXRhKGRhdGE6IEFycmF5PGFueT4sIGR3bGREYXRhUGFyYW06IElEb3dubG9hZERhdGFQYXJhbXMgPSBudWxsKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCFkYXRhKSB7IHJldHVybjsgfVxyXG5cclxuICAgICAgICBpZiAoIWR3bGREYXRhUGFyYW0pIHsgZHdsZERhdGFQYXJhbSA9IG5ldyBEb3dubG9hZERhdGFQYXJhbXMoKTsgfVxyXG4gICAgICAgIGlmICghZHdsZERhdGFQYXJhbS5maWxlTmFtZSkgeyBkd2xkRGF0YVBhcmFtLmZpbGVOYW1lID0gJ2RhdGEuY3N2JzsgfVxyXG4gICAgICAgIGlmICghZHdsZERhdGFQYXJhbS5saXRlcmFscykgeyBkd2xkRGF0YVBhcmFtLmxpdGVyYWxzID0ge307IH1cclxuICAgICAgICBpZiAoIWR3bGREYXRhUGFyYW0uY29sdW1uRGVsaW1pdGVyKSB7IGR3bGREYXRhUGFyYW0uY29sdW1uRGVsaW1pdGVyID0gJzsnOyB9XHJcbiAgICAgICAgaWYgKCFkd2xkRGF0YVBhcmFtLmNvbHVtbkxpc3QpIHsgZHdsZERhdGFQYXJhbS5jb2x1bW5MaXN0ID0gW107IH1cclxuICAgICAgICBpZiAoIWR3bGREYXRhUGFyYW0uY29sdW1uRXhjbHVkZSkgeyBkd2xkRGF0YVBhcmFtLmNvbHVtbkV4Y2x1ZGUgPSBbXTsgfVxyXG5cclxuICAgICAgICBjb25zdCBkYXRhYjY0ID0gYnRvYSh0aGlzLmpzb25Ub1N0cmluZyhkYXRhLCBkd2xkRGF0YVBhcmFtKSk7XHJcbiAgICAgICAgdGhpcy5kb3dubG9hZEZpbGUoZGF0YWI2NCwgZHdsZERhdGFQYXJhbS5maWxlTmFtZSwgJ3RleHQvY3N2Jyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgZG93bmxvYWQoZmlsZTogQmxvYiwgZmlsZU5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGJpbmFyeURhdGEgPSBbZmlsZV07XHJcbiAgICAgICAgY29uc3QgZG93bmxvYWRMaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgICAgIGNvbnN0IHVybERvd25sb2FkID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwobmV3IEJsb2IoYmluYXJ5RGF0YSwgeyB0eXBlOiBmaWxlLnR5cGUgfSkpO1xyXG5cclxuICAgICAgICAvKipWZXJpZmljYSBzZSDDqSBpZSBvdSBlZGdlLCBwb2lzIG8gbWVzbW8gdGVtIHRyYXRhbWVudG8gcHLDs3ByaW8gcGFyYSBhcnF1aXZvcyBibG9iICovXHJcbiAgICAgICAgaWYgKG5hdmlnYXRvci51c2VyQWdlbnQudG9VcHBlckNhc2UoKS5pbmRleE9mKCcuTkVUJykgPiAwIHx8IG5hdmlnYXRvci51c2VyQWdlbnQudG9VcHBlckNhc2UoKS5pbmRleE9mKCdFREdFJykgPiAwKSB7XHJcbiAgICAgICAgICAgIHdpbmRvdy5uYXZpZ2F0b3IubXNTYXZlT3JPcGVuQmxvYihmaWxlLCBmaWxlTmFtZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZG93bmxvYWRMaW5rLmhyZWYgPSB1cmxEb3dubG9hZDtcclxuICAgICAgICAgICAgZG93bmxvYWRMaW5rLnNldEF0dHJpYnV0ZSgnZG93bmxvYWQnLCBmaWxlTmFtZSk7XHJcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG93bmxvYWRMaW5rKTtcclxuICAgICAgICAgICAgZG93bmxvYWRMaW5rLmNsaWNrKCk7XHJcbiAgICAgICAgICAgIHdpbmRvdy5VUkwucmV2b2tlT2JqZWN0VVJMKHVybERvd25sb2FkKTtcclxuICAgICAgICAgICAgZG93bmxvYWRMaW5rLnJlbW92ZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBiNjR0b0Jsb2IoYjY0RGF0YTogYW55LCBjb250ZW50VHlwZT86IHN0cmluZywgc2xpY2VTaXplPzogbnVtYmVyKTogQmxvYiB7XHJcbiAgICAgICAgY29udGVudFR5cGUgPSBjb250ZW50VHlwZSB8fCAnJztcclxuICAgICAgICBzbGljZVNpemUgPSBzbGljZVNpemUgfHwgNTEyO1xyXG5cclxuICAgICAgICBjb25zdCBieXRlQ2hhcmFjdGVycyA9IGF0b2IoYjY0RGF0YSk7XHJcbiAgICAgICAgY29uc3QgYnl0ZUFycmF5cyA9IFtdO1xyXG5cclxuICAgICAgICBmb3IgKGxldCBvZmZzZXQgPSAwOyBvZmZzZXQgPCBieXRlQ2hhcmFjdGVycy5sZW5ndGg7IG9mZnNldCArPSBzbGljZVNpemUpIHtcclxuICAgICAgICAgICAgY29uc3Qgc2xpY2UgPSBieXRlQ2hhcmFjdGVycy5zbGljZShvZmZzZXQsIG9mZnNldCArIHNsaWNlU2l6ZSk7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBieXRlTnVtYmVycyA9IG5ldyBBcnJheShzbGljZS5sZW5ndGgpO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNsaWNlLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBieXRlTnVtYmVyc1tpXSA9IHNsaWNlLmNoYXJDb2RlQXQoaSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGJ5dGVBcnJheSA9IG5ldyBVaW50OEFycmF5KGJ5dGVOdW1iZXJzKTtcclxuICAgICAgICAgICAgYnl0ZUFycmF5cy5wdXNoKGJ5dGVBcnJheSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoYnl0ZUFycmF5cywgeyB0eXBlOiBjb250ZW50VHlwZSB9KTtcclxuICAgICAgICByZXR1cm4gYmxvYjtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBqc29uVG9TdHJpbmcoanNvbkRhdGE6IEFycmF5PGFueT4sIGR3bGREYXRhUGFyYW06IElEb3dubG9hZERhdGFQYXJhbXMpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICghanNvbkRhdGEgfHwganNvbkRhdGEubGVuZ3RoID09PSAwKSB7IHJldHVybiAnJzsgfVxyXG5cclxuICAgICAgICBjb25zdCBsaW5lRGVsaW1pdGVyID0gJ1xcbic7XHJcblxyXG4gICAgICAgIGxldCBjb2x1bW5PcmlnID0gbnVsbDtcclxuICAgICAgICBsZXQgY29sdW1uSGVhZGVyID0gbnVsbDtcclxuICAgICAgICBjb25zdCBrZXlzID0gW107XHJcbiAgICAgICAgbGV0IGluY2x1ZGVLZXk6IGJvb2xlYW47XHJcblxyXG4gICAgICAgIGlmIChkd2xkRGF0YVBhcmFtLmNvbHVtbkxpc3QgJiZcclxuICAgICAgICAgICAgZHdsZERhdGFQYXJhbS5jb2x1bW5MaXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgY29sdW1uT3JpZyA9IGR3bGREYXRhUGFyYW0uY29sdW1uTGlzdDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb2x1bW5PcmlnID0gT2JqZWN0LmtleXMoanNvbkRhdGFbMF0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29sdW1uT3JpZy5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgICAgICAgIGluY2x1ZGVLZXkgPSB0cnVlO1xyXG5cclxuICAgICAgICAgICAgaWYgKGR3bGREYXRhUGFyYW0uY29sdW1uRXhjbHVkZSAmJlxyXG4gICAgICAgICAgICAgICAgZHdsZERhdGFQYXJhbS5jb2x1bW5FeGNsdWRlLmxlbmd0aCA+IDAgJiZcclxuICAgICAgICAgICAgICAgIGR3bGREYXRhUGFyYW0uY29sdW1uRXhjbHVkZS5pbmRleE9mKGtleSkgIT09IC0xKSB7XHJcbiAgICAgICAgICAgICAgICBpbmNsdWRlS2V5ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChpbmNsdWRlS2V5KSB7XHJcbiAgICAgICAgICAgICAgICBrZXlzLnB1c2goa2V5KTtcclxuICAgICAgICAgICAgICAgIGNvbHVtbkhlYWRlciA9ICghY29sdW1uSGVhZGVyKSA/ICcnIDogY29sdW1uSGVhZGVyICsgZHdsZERhdGFQYXJhbS5jb2x1bW5EZWxpbWl0ZXI7XHJcbiAgICAgICAgICAgICAgICBjb2x1bW5IZWFkZXIgKz0gKGR3bGREYXRhUGFyYW0ubGl0ZXJhbHNba2V5XSkgPyBkd2xkRGF0YVBhcmFtLmxpdGVyYWxzW2tleV0gOiBrZXk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgY29uc3QgbGluZVN0ciA9IGpzb25EYXRhLnJlZHVjZSgoYWNjTGluZVN0ciwgY3VycmVudEl0ZW0pID0+IHtcclxuICAgICAgICAgICAgbGV0IGZpcnN0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgbGV0IGNvbHVtblZhbHVlID0gbnVsbDtcclxuXHJcbiAgICAgICAgICAgIGtleXMuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFmaXJzdCkgeyBhY2NMaW5lU3RyICs9IGR3bGREYXRhUGFyYW0uY29sdW1uRGVsaW1pdGVyOyB9XHJcblxyXG4gICAgICAgICAgICAgICAgY29sdW1uVmFsdWUgPSBjdXJyZW50SXRlbVtrZXldO1xyXG4gICAgICAgICAgICAgICAgaWYgKGNvbHVtblZhbHVlID09PSBudWxsIHx8IGNvbHVtblZhbHVlID09PSB1bmRlZmluZWQpIHsgY29sdW1uVmFsdWUgPSAnJzsgfVxyXG4gICAgICAgICAgICAgICAgc3dpdGNoICh0eXBlb2YgKGNvbHVtblZhbHVlKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ251bWJlcic6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtblZhbHVlID0gY29sdW1uVmFsdWUudG9Mb2NhbGVTdHJpbmcoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnYm9vbGVhbic6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtblZhbHVlID0gKGR3bGREYXRhUGFyYW0ubGl0ZXJhbHNbYCR7Y29sdW1uVmFsdWV9YF0pID9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR3bGREYXRhUGFyYW0ubGl0ZXJhbHNbYCR7Y29sdW1uVmFsdWV9YF0gOiBjb2x1bW5WYWx1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnb2JqZWN0JzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uVmFsdWUgPSBKU09OLnN0cmluZ2lmeShjb2x1bW5WYWx1ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBhY2NMaW5lU3RyICs9IGNvbHVtblZhbHVlO1xyXG5cclxuICAgICAgICAgICAgICAgIGZpcnN0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIGFjY0xpbmVTdHIgKyBsaW5lRGVsaW1pdGVyO1xyXG5cclxuICAgICAgICB9LCBjb2x1bW5IZWFkZXIgKyBsaW5lRGVsaW1pdGVyKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGxpbmVTdHI7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSURvd25sb2FkRGF0YVBhcmFtcyB7XHJcbiAgICBmaWxlTmFtZTogc3RyaW5nO1xyXG4gICAgbGl0ZXJhbHM6IGFueTtcclxuICAgIGNvbHVtbkRlbGltaXRlcjogc3RyaW5nO1xyXG4gICAgY29sdW1uTGlzdDogQXJyYXk8c3RyaW5nPjtcclxuICAgIGNvbHVtbkV4Y2x1ZGU6IEFycmF5PHN0cmluZz47XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBEb3dubG9hZERhdGFQYXJhbXMgaW1wbGVtZW50cyBJRG93bmxvYWREYXRhUGFyYW1zIHtcclxuICAgIGZpbGVOYW1lOiBzdHJpbmc7XHJcbiAgICBsaXRlcmFsczogYW55O1xyXG4gICAgY29sdW1uRGVsaW1pdGVyOiBzdHJpbmc7XHJcbiAgICBjb2x1bW5MaXN0OiBBcnJheTxzdHJpbmc+O1xyXG4gICAgY29sdW1uRXhjbHVkZTogQXJyYXk8c3RyaW5nPjtcclxufVxyXG4iXX0=
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* Generated from: lib/utils/filter-range.util.ts
|
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
-
*/
|
|
6
1
|
/*
|
|
7
2
|
Versão: 1.000
|
|
8
3
|
Data Criação: 06/08/2018
|
|
@@ -10,11 +5,6 @@ Data Criação: 06/08/2018
|
|
|
10
5
|
export class FilterRangeUtil {
|
|
11
6
|
constructor() {
|
|
12
7
|
}
|
|
13
|
-
/**
|
|
14
|
-
* @param {?} iniInitial
|
|
15
|
-
* @param {?} iniFinal
|
|
16
|
-
* @return {?}
|
|
17
|
-
*/
|
|
18
8
|
static makeFilterRangeCharacter(iniInitial, iniFinal) {
|
|
19
9
|
return {
|
|
20
10
|
iniInitial,
|
|
@@ -23,11 +13,6 @@ export class FilterRangeUtil {
|
|
|
23
13
|
valFinal: iniFinal
|
|
24
14
|
};
|
|
25
15
|
}
|
|
26
|
-
/**
|
|
27
|
-
* @param {?} iniInitial
|
|
28
|
-
* @param {?} iniFinal
|
|
29
|
-
* @return {?}
|
|
30
|
-
*/
|
|
31
16
|
static makeFilterRangeNumber(iniInitial, iniFinal) {
|
|
32
17
|
return {
|
|
33
18
|
iniInitial,
|
|
@@ -36,11 +21,6 @@ export class FilterRangeUtil {
|
|
|
36
21
|
valFinal: iniFinal
|
|
37
22
|
};
|
|
38
23
|
}
|
|
39
|
-
/**
|
|
40
|
-
* @param {?} iniInitial
|
|
41
|
-
* @param {?} iniFinal
|
|
42
|
-
* @return {?}
|
|
43
|
-
*/
|
|
44
24
|
static makeFilterRangeDate(iniInitial, iniFinal) {
|
|
45
25
|
return {
|
|
46
26
|
iniInitial,
|
|
@@ -50,4 +30,4 @@ export class FilterRangeUtil {
|
|
|
50
30
|
};
|
|
51
31
|
}
|
|
52
32
|
}
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLXJhbmdlLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kdHMtYmFja29mZmljZS11dGlsL3NyYy9saWIvdXRpbHMvZmlsdGVyLXJhbmdlLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztFQUdFO0FBSUYsTUFBTSxPQUFPLGVBQWU7SUFFeEI7SUFDQSxDQUFDO0lBRU0sTUFBTSxDQUFDLHdCQUF3QixDQUFDLFVBQWtCLEVBQUUsUUFBZ0I7UUFDdkUsT0FBTztZQUNILFVBQVU7WUFDVixRQUFRO1lBQ1IsVUFBVSxFQUFFLFVBQVU7WUFDdEIsUUFBUSxFQUFFLFFBQVE7U0FDckIsQ0FBQztJQUNOLENBQUM7SUFFTSxNQUFNLENBQUMscUJBQXFCLENBQUMsVUFBa0IsRUFBRSxRQUFnQjtRQUNwRSxPQUFPO1lBQ0gsVUFBVTtZQUNWLFFBQVE7WUFDUixVQUFVLEVBQUUsVUFBVTtZQUN0QixRQUFRLEVBQUUsUUFBUTtTQUNyQixDQUFDO0lBQ04sQ0FBQztJQUVNLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxVQUFnQixFQUFFLFFBQWM7UUFDOUQsT0FBTztZQUNILFVBQVU7WUFDVixRQUFRO1lBQ1IsVUFBVSxFQUFFLFVBQVU7WUFDdEIsUUFBUSxFQUFFLFFBQVE7U0FDckIsQ0FBQztJQUNOLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcblZlcnPDo286IDEuMDAwXHJcbkRhdGEgQ3JpYcOnw6NvOiAwNi8wOC8yMDE4XHJcbiovXHJcblxyXG5pbXBvcnQgeyBJRmlsdGVyUmFuZ2VDaGFyYWN0ZXIsIElGaWx0ZXJSYW5nZU51bWJlciwgSUZpbHRlclJhbmdlRGF0ZSB9IGZyb20gJy4uLy4uL2xpYi9pbnRlcmZhY2VzL2ZpbHRlci1yYW5nZS5pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGNsYXNzIEZpbHRlclJhbmdlVXRpbCB7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBtYWtlRmlsdGVyUmFuZ2VDaGFyYWN0ZXIoaW5pSW5pdGlhbDogc3RyaW5nLCBpbmlGaW5hbDogc3RyaW5nKTogSUZpbHRlclJhbmdlQ2hhcmFjdGVyIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBpbmlJbml0aWFsLFxyXG4gICAgICAgICAgICBpbmlGaW5hbCxcclxuICAgICAgICAgICAgdmFsSW5pdGlhbDogaW5pSW5pdGlhbCxcclxuICAgICAgICAgICAgdmFsRmluYWw6IGluaUZpbmFsXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIG1ha2VGaWx0ZXJSYW5nZU51bWJlcihpbmlJbml0aWFsOiBudW1iZXIsIGluaUZpbmFsOiBudW1iZXIpOiBJRmlsdGVyUmFuZ2VOdW1iZXIge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGluaUluaXRpYWwsXHJcbiAgICAgICAgICAgIGluaUZpbmFsLFxyXG4gICAgICAgICAgICB2YWxJbml0aWFsOiBpbmlJbml0aWFsLFxyXG4gICAgICAgICAgICB2YWxGaW5hbDogaW5pRmluYWxcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgbWFrZUZpbHRlclJhbmdlRGF0ZShpbmlJbml0aWFsOiBEYXRlLCBpbmlGaW5hbDogRGF0ZSk6IElGaWx0ZXJSYW5nZURhdGUge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGluaUluaXRpYWwsXHJcbiAgICAgICAgICAgIGluaUZpbmFsLFxyXG4gICAgICAgICAgICB2YWxJbml0aWFsOiBpbmlJbml0aWFsLFxyXG4gICAgICAgICAgICB2YWxGaW5hbDogaW5pRmluYWxcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|