dts-backoffice-util 3.0.0 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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 -159
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtdmFsaWRhdGlvbi51dGlsLmpzIiwic291cmNlUm9vdCI6IkM6L0RhdGFzdWwvVEhGL2R0cy1iYWNrb2ZmaWNlLXV0aWwtdjMvcHJvamVjdHMvZHRzLWJhY2tvZmZpY2UtdXRpbC9zcmMvIiwic291cmNlcyI6WyJsaWIvdXRpbHMvZmllbGQtdmFsaWRhdGlvbi51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQU1BLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVuRCxNQUFNLE9BQU8sbUJBQW1COzs7Ozs7SUFPNUIsWUFDSSxjQUFxQyxFQUNyQyxVQUFzQixFQUN0QixRQUFnQjtRQVBwQixhQUFRLEdBQVEsRUFBRSxDQUFDO1FBU2YsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7UUFDckMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xHLENBQUM7Ozs7OztJQUVNLGlCQUFpQixDQUFDLEtBQWEsRUFBRSxLQUFhO1FBQ2pELElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUMvQixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQztnQkFDdEIsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUNoRyxDQUFDLENBQUM7WUFDSCxPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELE9BQU8sSUFBSSxDQUFD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QUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQzthQUN0RyxDQUFDLENBQUM7U0FDTjtRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztDQUNKOzs7SUF6TUcsNkNBQXNDOztJQUN0Qyx5Q0FBdUI7O0lBQ3ZCLHVDQUFtQjs7SUFFbkIsNkNBQStCIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuVmVyc8OjbzogMS4wMDJcclxuRGF0YSBDcmlhw6fDo286IDE5LzAyLzIwMTlcclxuKi9cclxuXHJcbmltcG9ydCB7IFBvTm90aWZpY2F0aW9uU2VydmljZSwgUG9JMThuUGlwZSB9IGZyb20gJ0Bwby11aS9uZy1jb21wb25lbnRzJztcclxuaW1wb3J0IHsgRGlzY2xhaW1lclV0aWwgfSBmcm9tICcuL2Rpc2NsYWltZXIudXRpbCc7XHJcblxyXG5leHBvcnQgY2xhc3MgRmllbGRWYWxpZGF0aW9uVXRpbCB7XHJcbiAgICBwb05vdGlmaWNhdGlvbjogUG9Ob3RpZmljYXRpb25TZXJ2aWNlO1xyXG4gICAgcG9JMThuUGlwZTogUG9JMThuUGlwZTtcclxuICAgIGxpdGVyYWxzOiBhbnkgPSB7fTtcclxuXHJcbiAgICBkaXNjbGFpbWVyVXRpbDogRGlzY2xhaW1lclV0aWw7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcG9Ob3RpZmljYXRpb246IFBvTm90aWZpY2F0aW9uU2VydmljZSxcclxuICAgICAgICBwb0kxOG5QaXBlOiBQb0kxOG5QaXBlLFxyXG4gICAgICAgIGxpdGVyYWxzOiBPYmplY3RcclxuICAgICkge1xyXG4gICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24gPSBwb05vdGlmaWNhdGlvbjtcclxuICAgICAgICB0aGlzLnBvSTE4blBpcGUgPSBwb0kxOG5QaXBlO1xyXG4gICAgICAgIHRoaXMubGl0ZXJhbHMgPSBsaXRlcmFscztcclxuICAgICAgICB0aGlzLmRpc2NsYWltZXJVdGlsID0gbmV3IERpc2NsYWltZXJVdGlsKHRoaXMucG9Ob3RpZmljYXRpb24sIHRoaXMucG9JMThuUGlwZSwgdGhpcy5saXRlcmFscyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHZsZEZpZWxkQ2hhcmFjdGVyKGZpZWxkOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIXZhbHVlIHx8IHZhbHVlLnRyaW0oKSA9PT0gJycpIHtcclxuICAgICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5lcnJvcih7XHJcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiB0aGlzLnBvSTE4blBpcGUudHJhbnNmb3JtKHRoaXMubGl0ZXJhbHNbJ2ZpZWxkVmxkUmVxdWVyZWQnXSwgW3RoaXMubGl0ZXJhbHNbZmllbGRdXSlcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVmFsaWRhIHVtYSBmYWl4YSBkZSBjYXJhY3RlcmVzIHNlIG8gaW5pY2lhbCDDqSBtZW5vciBxdWUgZmluYWxcclxuICAgIHB1YmxpYyB2bGRSYW5nZUNoYXJhY3Rlcihpbml0aWFsRmllbGQ6IHN0cmluZywgZmluYWxGaWVsZDogc3RyaW5nLCBpbml0aWFsVmFsdWU6IHN0cmluZywgZmluYWxWYWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCFpbml0aWFsVmFsdWUgfHwgIWZpbmFsVmFsdWUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoaW5pdGlhbFZhbHVlLnRyaW0oKS50b1VwcGVyQ2FzZSgpID4gZmluYWxWYWx1ZS50cmltKCkudG9VcHBlckNhc2UoKSkge1xyXG4gICAgICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uLmVycm9yKHtcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMucG9JMThuUGlwZS50cmFuc2Zvcm0odGhpcy5saXRlcmFsc1snZmllbGRWbGRSYW5nZSddLFxyXG4gICAgICAgICAgICAgICAgICAgIFt0aGlzLmxpdGVyYWxzW2luaXRpYWxGaWVsZF0sIHRoaXMubGl0ZXJhbHNbZmluYWxGaWVsZF1dKVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdmxkRmllbGROdW1iZXIoZmllbGQ6IHN0cmluZywgdmFsdWU6IG51bWJlciwgdmxkVmFsdWUgPSBmYWxzZSwgemVyb0FjY2VwdCA9IGZhbHNlKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKHZsZFZhbHVlICYmICF0aGlzLnZsZFZhbHVlT2ZOdW1iZXIoZmllbGQsIHZhbHVlKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoKCF2YWx1ZSkgfHwgdmFsdWUgPD0gMCkge1xyXG4gICAgICAgICAgICBpZiAodmFsdWUgPT09IDAgJiYgemVyb0FjY2VwdCA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24uZXJyb3Ioe1xyXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogdGhpcy5wb0kxOG5QaXBlLnRyYW5zZm9ybSh0aGlzLmxpdGVyYWxzWydmaWVsZFZsZFJlcXVlcmVkJ10sIFt0aGlzLmxpdGVyYWxzW2ZpZWxkXV0pXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB2bGRWYWx1ZU9mTnVtYmVyKGZpZWxkOiBzdHJpbmcsIHZhbHVlOiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAodmFsdWUgJiYgdmFsdWUgPCAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24uZXJyb3IoXHJcbiAgICAgICAgICAgICAgICB7IG1lc3NhZ2U6IHRoaXMucG9JMThuUGlwZS50cmFuc2Zvcm0odGhpcy5saXRlcmFsc1snZmllbGRWbGROdW1iZXInXSwgW3ZhbHVlLnRvU3RyaW5nKCksIHRoaXMubGl0ZXJhbHNbZmllbGRdXSkgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHZsZEZpZWxkUGVyY2VudChmaWVsZDogc3RyaW5nLCB2YWx1ZTogbnVtYmVyLCB2bGRWYWx1ZSA9IGZhbHNlKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKHZsZFZhbHVlICYmICF0aGlzLnZsZFZhbHVlT2ZQZXJjZW50KGZpZWxkLCB2YWx1ZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLnZsZEZpZWxkTnVtYmVyKGZpZWxkLCB2YWx1ZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdmxkVmFsdWVPZlBlcmNlbnQoZmllbGQ6IHN0cmluZywgdmFsdWU6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSA8IDApIHtcclxuICAgICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5lcnJvcihcclxuICAgICAgICAgICAgICAgIHsgbWVzc2FnZTogdGhpcy5wb0kxOG5QaXBlLnRyYW5zZm9ybSh0aGlzLmxpdGVyYWxzWydmaWVsZFZsZE51bWJlciddLCBbdmFsdWUudG9TdHJpbmcoKSwgdGhpcy5saXRlcmFsc1tmaWVsZF1dKSB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHZhbHVlICYmIHZhbHVlID4gMTAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24uZXJyb3IoXHJcbiAgICAgICAgICAgICAgICB7IG1lc3NhZ2U6IHRoaXMucG9JMThuUGlwZS50cmFuc2Zvcm0odGhpcy5saXRlcmFsc1snZmllbGRWbGROdW1iZXInXSwgW3ZhbHVlLnRvU3RyaW5nKCksIHRoaXMubGl0ZXJhbHNbZmllbGRdXSkgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVmFsaWRhIHVtYSBmYWl4YSBkZSBuw7ptZXJvcyBzZSBvIGluaWNpYWwgw6kgbWVub3IgcXVlIGZpbmFsXHJcbiAgICBwdWJsaWMgdmxkUmFuZ2VOdW1iZXIoaW5pdGlhbEZpZWxkOiBzdHJpbmcsIGZpbmFsRmllbGQ6IHN0cmluZywgaW5pdGlhbFZhbHVlOiBudW1iZXIsIGZpbmFsVmFsdWU6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghaW5pdGlhbFZhbHVlKSB7IGluaXRpYWxWYWx1ZSA9IDA7IH1cclxuICAgICAgICBpZiAoIWZpbmFsVmFsdWUpIHsgZmluYWxWYWx1ZSA9IDA7IH1cclxuXHJcbiAgICAgICAgaWYgKGluaXRpYWxWYWx1ZSA+IGZpbmFsVmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5lcnJvcih7XHJcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiB0aGlzLnBvSTE4blBpcGUudHJhbnNmb3JtKHRoaXMubGl0ZXJhbHNbJ2ZpZWxkVmxkUmFuZ2UnXSxcclxuICAgICAgICAgICAgICAgICAgICBbdGhpcy5saXRlcmFsc1tpbml0aWFsRmllbGRdLCB0aGlzLmxpdGVyYWxzW2ZpbmFsRmllbGRdXSlcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHZsZEZpZWxkRGF0ZShmaWVsZDogc3RyaW5nLCB2YWx1ZTogRGF0ZSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IHZhbERhdGUgPSB0aGlzLmRpc2NsYWltZXJVdGlsLmFqdXN0RGF0ZSh2YWx1ZSk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5kaXNjbGFpbWVyVXRpbC5pc1ZhbGlkRGF0ZSh2YWxEYXRlKSkge1xyXG4gICAgICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uLmVycm9yKHtcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMucG9JMThuUGlwZS50cmFuc2Zvcm0odGhpcy5saXRlcmFsc1snZmllbGRWbGREYXRlJ10sIFt0aGlzLmxpdGVyYWxzW2ZpZWxkXV0pXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFZhbGlkYSB1bWEgZmFpeGEgZGUgZGF0YXMgc2UgbyBpbmljaWFsIMOpIG1lbm9yIHF1ZSBmaW5hbFxyXG4gICAgcHVibGljIHZsZFJhbmdlRGF0ZShpbml0aWFsRmllbGQ6IHN0cmluZywgZmluYWxGaWVsZDogc3RyaW5nLCBpbml0aWFsVmFsdWU6IERhdGUsIGZpbmFsVmFsdWU6IERhdGUpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIWluaXRpYWxWYWx1ZSB8fCAhZmluYWxWYWx1ZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHZhbEluaXRpYWxEYXRlID0gdGhpcy5kaXNjbGFpbWVyVXRpbC5hanVzdERhdGUoaW5pdGlhbFZhbHVlKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgY29uc3QgdmFsRmluYWxEYXRlID0gdGhpcy5kaXNjbGFpbWVyVXRpbC5hanVzdERhdGUoZmluYWxWYWx1ZSkuZ2V0VGltZSgpO1xyXG5cclxuICAgICAgICBpZiAodmFsSW5pdGlhbERhdGUgPiB2YWxGaW5hbERhdGUpIHtcclxuICAgICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5lcnJvcih7XHJcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiB0aGlzLnBvSTE4blBpcGUudHJhbnNmb3JtKHRoaXMubGl0ZXJhbHNbJ2ZpZWxkVmxkUmFuZ2UnXSxcclxuICAgICAgICAgICAgICAgICAgICBbdGhpcy5saXRlcmFsc1tpbml0aWFsRmllbGRdLCB0aGlzLmxpdGVyYWxzW2ZpbmFsRmllbGRdXSlcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHZsZEZpZWxkTXVsdGlTZWxlY3QoZmllbGQ6IHN0cmluZywgdmFsdWU6IEFycmF5PGFueT4pOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIXZhbHVlIHx8IHZhbHVlLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uLmVycm9yKHtcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMucG9JMThuUGlwZS50cmFuc2Zvcm0odGhpcy5saXRlcmFsc1snZmllbGRWbGRTZWxlY3RlZCddLCBbdGhpcy5saXRlcmFsc1tmaWVsZF1dKVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdmxkRmllbGRDaGVja2JveChmaWVsZDogc3RyaW5nLCB2YWx1ZTogQXJyYXk8c3RyaW5nPik6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghdmFsdWUgfHwgdmFsdWUubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24uZXJyb3Ioe1xyXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogdGhpcy5wb0kxOG5QaXBlLnRyYW5zZm9ybSh0aGlzLmxpdGVyYWxzWydmaWVsZFZsZFNlbGVjdGVkJ10sIFt0aGlzLmxpdGVyYWxzW2ZpZWxkXV0pXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFZhbGlkYSBmb3JtYXRvIGNvbmZvcm1lIHJlZ3JhOiBcIjlcIiBhcGVuYXMgbsO6bWVyb3MsIFwiWFwiIHF1YWxxdWVyIGNhcmFjdGVyLCBcIiFcIiBhcGVuYXMgbGV0cmFzIG1hacO6c2N1bGFzXHJcbiAgICBwdWJsaWMgdmxkRmllbGRGb3JtYXQoZmllbGQ6IHN0cmluZywgdmFsdWU6IHN0cmluZywgZm9ybWF0OiBzdHJpbmcsIHJlcGxhY2VQb2ludCA9IGZhbHNlKTogYm9vbGVhbiB7XHJcbiAgICAgICAgbGV0IGxPSyA9IHRydWU7XHJcbiAgICAgICAgbGV0IG9sZEZvcm1hdDogc3RyaW5nO1xyXG5cclxuICAgICAgICBpZiAoIXZhbHVlKSB7IHJldHVybiBsT0s7IH1cclxuXHJcbiAgICAgICAgLypSZXRpcmEgb3MgcG9udG9zIGRvIGZvcm1hdG8qL1xyXG4gICAgICAgIGlmIChyZXBsYWNlUG9pbnQpIHtcclxuICAgICAgICAgICAgb2xkRm9ybWF0ID0gZm9ybWF0O1xyXG4gICAgICAgICAgICBmb3JtYXQgPSBmb3JtYXQucmVwbGFjZSgvXFwuL2csICcnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh2YWx1ZS5sZW5ndGggIT09IGZvcm1hdC5sZW5ndGgpIHtcclxuICAgICAgICAgICAgbE9LID0gZmFsc2U7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaWR4ID0gMDsgaWR4IDwgZm9ybWF0Lmxlbmd0aDsgaWR4KyspIHtcclxuICAgICAgICAgICAgICAgIGlmIChmb3JtYXRbaWR4XSA9PT0gJzknKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlW2lkeF0ucmVwbGFjZSgvWzAtOV0vLCAnOScpICE9PSAnOScpIHsgbE9LID0gZmFsc2U7IGJyZWFrOyB9XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGZvcm1hdFtpZHhdID09PSAnIScpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWVbaWR4XS5yZXBsYWNlKC9bQS1aXS8sICdBJykgIT09ICdBJykgeyBsT0sgPSBmYWxzZTsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHJlcGxhY2VQb2ludCkge1xyXG4gICAgICAgICAgICBmb3JtYXQgPSBvbGRGb3JtYXQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIWxPSykge1xyXG4gICAgICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uLmVycm9yKHtcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMucG9JMThuUGlwZS50cmFuc2Zvcm0odGhpcy5saXRlcmFsc1snZmllbGRWbGRGb3JtYXQnXSwgW3RoaXMubGl0ZXJhbHNbZmllbGRdLCBmb3JtYXRdKVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBsT0s7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtdmFsaWRhdGlvbi51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHRzLWJhY2tvZmZpY2UtdXRpbC9zcmMvbGliL3V0aWxzL2ZpZWxkLXZhbGlkYXRpb24udXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0VBR0U7QUFHRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbkQsTUFBTSxPQUFPLG1CQUFtQjtJQU81QixZQUNJLGNBQXFDLEVBQ3JDLFVBQXNCLEVBQ3RCLFFBQWdCO1FBUHBCLGFBQVEsR0FBUSxFQUFFLENBQUM7UUFTZixJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUNyQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEcsQ0FBQztJQUVNLGlCQUFpQixDQUFDLEtBQWEsRUFBRSxLQUFhO1FBQ2pELElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUMvQixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQztnQkFDdEIsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUNoRyxDQUFDLENBQUM7WUFDSCxPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxnRUFBZ0U7SUFDekQs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LFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQzthQUN0RyxDQUFDLENBQUM7U0FDTjtRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuVmVyc8OjbzogMS4wMDJcclxuRGF0YSBDcmlhw6fDo286IDE5LzAyLzIwMTlcclxuKi9cclxuXHJcbmltcG9ydCB7IFBvTm90aWZpY2F0aW9uU2VydmljZSwgUG9JMThuUGlwZSB9IGZyb20gJ0Bwby11aS9uZy1jb21wb25lbnRzJztcclxuaW1wb3J0IHsgRGlzY2xhaW1lclV0aWwgfSBmcm9tICcuL2Rpc2NsYWltZXIudXRpbCc7XHJcblxyXG5leHBvcnQgY2xhc3MgRmllbGRWYWxpZGF0aW9uVXRpbCB7XHJcbiAgICBwb05vdGlmaWNhdGlvbjogUG9Ob3RpZmljYXRpb25TZXJ2aWNlO1xyXG4gICAgcG9JMThuUGlwZTogUG9JMThuUGlwZTtcclxuICAgIGxpdGVyYWxzOiBhbnkgPSB7fTtcclxuXHJcbiAgICBkaXNjbGFpbWVyVXRpbDogRGlzY2xhaW1lclV0aWw7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcG9Ob3RpZmljYXRpb246IFBvTm90aWZpY2F0aW9uU2VydmljZSxcclxuICAgICAgICBwb0kxOG5QaXBlOiBQb0kxOG5QaXBlLFxyXG4gICAgICAgIGxpdGVyYWxzOiBPYmplY3RcclxuICAgICkge1xyXG4gICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24gPSBwb05vdGlmaWNhdGlvbjtcclxuICAgICAgICB0aGlzLnBvSTE4blBpcGUgPSBwb0kxOG5QaXBlO1xyXG4gICAgICAgIHRoaXMubGl0ZXJhbHMgPSBsaXRlcmFscztcclxuICAgICAgICB0aGlzLmRpc2NsYWltZXJVdGlsID0gbmV3IERpc2NsYWltZXJVdGlsKHRoaXMucG9Ob3RpZmljYXRpb24sIHRoaXMucG9JMThuUGlwZSwgdGhpcy5saXRlcmFscyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHZsZEZpZWxkQ2hhcmFjdGVyKGZpZWxkOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIXZhbHVlIHx8IHZhbHVlLnRyaW0oKSA9PT0gJycpIHtcclxuICAgICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5lcnJvcih7XHJcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiB0aGlzLnBvSTE4blBpcGUudHJhbnNmb3JtKHRoaXMubGl0ZXJhbHNbJ2ZpZWxkVmxkUmVxdWVyZWQnXSwgW3RoaXMubGl0ZXJhbHNbZmllbGRdXSlcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVmFsaWRhIHVtYSBmYWl4YSBkZSBjYXJhY3RlcmVzIHNlIG8gaW5pY2lhbCDDqSBtZW5vciBxdWUgZmluYWxcclxuICAgIHB1YmxpYyB2bGRSYW5nZUNoYXJhY3Rlcihpbml0aWFsRmllbGQ6IHN0cmluZywgZmluYWxGaWVsZDogc3RyaW5nLCBpbml0aWFsVmFsdWU6IHN0cmluZywgZmluYWxWYWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCFpbml0aWFsVmFsdWUgfHwgIWZpbmFsVmFsdWUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoaW5pdGlhbFZhbHVlLnRyaW0oKS50b1VwcGVyQ2FzZSgpID4gZmluYWxWYWx1ZS50cmltKCkudG9VcHBlckNhc2UoKSkge1xyXG4gICAgICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uLmVycm9yKHtcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMucG9JMThuUGlwZS50cmFuc2Zvcm0odGhpcy5saXRlcmFsc1snZmllbGRWbGRSYW5nZSddLFxyXG4gICAgICAgICAgICAgICAgICAgIFt0aGlzLmxpdGVyYWxzW2luaXRpYWxGaWVsZF0sIHRoaXMubGl0ZXJhbHNbZmluYWxGaWVsZF1dKVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdmxkRmllbGROdW1iZXIoZmllbGQ6IHN0cmluZywgdmFsdWU6IG51bWJlciwgdmxkVmFsdWUgPSBmYWxzZSwgemVyb0FjY2VwdCA9IGZhbHNlKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKHZsZFZhbHVlICYmICF0aGlzLnZsZFZhbHVlT2ZOdW1iZXIoZmllbGQsIHZhbHVlKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoKCF2YWx1ZSkgfHwgdmFsdWUgPD0gMCkge1xyXG4gICAgICAgICAgICBpZiAodmFsdWUgPT09IDAgJiYgemVyb0FjY2VwdCA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24uZXJyb3Ioe1xyXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogdGhpcy5wb0kxOG5QaXBlLnRyYW5zZm9ybSh0aGlzLmxpdGVyYWxzWydmaWVsZFZsZFJlcXVlcmVkJ10sIFt0aGlzLmxpdGVyYWxzW2ZpZWxkXV0pXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB2bGRWYWx1ZU9mTnVtYmVyKGZpZWxkOiBzdHJpbmcsIHZhbHVlOiBudW1iZXIpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAodmFsdWUgJiYgdmFsdWUgPCAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24uZXJyb3IoXHJcbiAgICAgICAgICAgICAgICB7IG1lc3NhZ2U6IHRoaXMucG9JMThuUGlwZS50cmFuc2Zvcm0odGhpcy5saXRlcmFsc1snZmllbGRWbGROdW1iZXInXSwgW3ZhbHVlLnRvU3RyaW5nKCksIHRoaXMubGl0ZXJhbHNbZmllbGRdXSkgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHZsZEZpZWxkUGVyY2VudChmaWVsZDogc3RyaW5nLCB2YWx1ZTogbnVtYmVyLCB2bGRWYWx1ZSA9IGZhbHNlKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKHZsZFZhbHVlICYmICF0aGlzLnZsZFZhbHVlT2ZQZXJjZW50KGZpZWxkLCB2YWx1ZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLnZsZEZpZWxkTnVtYmVyKGZpZWxkLCB2YWx1ZSkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdmxkVmFsdWVPZlBlcmNlbnQoZmllbGQ6IHN0cmluZywgdmFsdWU6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSA8IDApIHtcclxuICAgICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5lcnJvcihcclxuICAgICAgICAgICAgICAgIHsgbWVzc2FnZTogdGhpcy5wb0kxOG5QaXBlLnRyYW5zZm9ybSh0aGlzLmxpdGVyYWxzWydmaWVsZFZsZE51bWJlciddLCBbdmFsdWUudG9TdHJpbmcoKSwgdGhpcy5saXRlcmFsc1tmaWVsZF1dKSB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHZhbHVlICYmIHZhbHVlID4gMTAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24uZXJyb3IoXHJcbiAgICAgICAgICAgICAgICB7IG1lc3NhZ2U6IHRoaXMucG9JMThuUGlwZS50cmFuc2Zvcm0odGhpcy5saXRlcmFsc1snZmllbGRWbGROdW1iZXInXSwgW3ZhbHVlLnRvU3RyaW5nKCksIHRoaXMubGl0ZXJhbHNbZmllbGRdXSkgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVmFsaWRhIHVtYSBmYWl4YSBkZSBuw7ptZXJvcyBzZSBvIGluaWNpYWwgw6kgbWVub3IgcXVlIGZpbmFsXHJcbiAgICBwdWJsaWMgdmxkUmFuZ2VOdW1iZXIoaW5pdGlhbEZpZWxkOiBzdHJpbmcsIGZpbmFsRmllbGQ6IHN0cmluZywgaW5pdGlhbFZhbHVlOiBudW1iZXIsIGZpbmFsVmFsdWU6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghaW5pdGlhbFZhbHVlKSB7IGluaXRpYWxWYWx1ZSA9IDA7IH1cclxuICAgICAgICBpZiAoIWZpbmFsVmFsdWUpIHsgZmluYWxWYWx1ZSA9IDA7IH1cclxuXHJcbiAgICAgICAgaWYgKGluaXRpYWxWYWx1ZSA+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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS51dGlsLmpzIiwic291cmNlUm9vdCI6IkM6L0RhdGFzdWwvVEhGL2R0cy1iYWNrb2ZmaWNlLXV0aWwtdjMvcHJvamVjdHMvZHRzLWJhY2tvZmZpY2UtdXRpbC9zcmMvIiwic291cmNlcyI6WyJsaWIvdXRpbHMvZmlsZS51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsTUFBTSxPQUFPLFFBQVE7SUFFakIsZ0JBQ0ksQ0FBQzs7Ozs7Ozs7SUFFTCxNQUFNLENBQUMsWUFBWSxDQUFDLElBQVMsRUFBRSxRQUFnQixFQUFFLFdBQW9CLEVBQUUsTUFBZ0I7UUFDbkYsTUFBTSxHQUFHLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQzs7Y0FDckMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7UUFDbEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDdEMsQ0FBQzs7Ozs7O0lBRUQsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFnQixFQUFFLGdCQUFxQyxJQUFJO1FBQzNFLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFBRSxPQUFPO1NBQUU7UUFFdEIsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUFFLGFBQWEsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7U0FBRTtRQUNqRSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRTtZQUFFLGFBQWEsQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO1NBQUU7UUFDckUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUU7WUFBRSxhQUFhLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztTQUFFO1FBQzdELElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxFQUFFO1lBQUUsYUFBYSxD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YUFBYSxDQUFDO1FBRXRDLENBQUMsR0FBRSxZQUFZLEdBQUcsYUFBYSxDQUFDO1FBRWhDLE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7Q0FDSjs7OztBQUVELHlDQU1DOzs7SUFMRyx1Q0FBaUI7O0lBQ2pCLHVDQUFjOztJQUNkLDhDQUF3Qjs7SUFDeEIseUNBQTBCOztJQUMxQiw0Q0FBNkI7O0FBR2pDLE1BQU0sT0FBTyxrQkFBa0I7Q0FNOUI7OztJQUxHLHNDQUFpQjs7SUFDakIsc0NBQWM7O0lBQ2QsNkNBQXdCOztJQUN4Qix3Q0FBMEI7O0lBQzFCLDJDQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBGaWxlVXRpbCB7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICApIHsgfVxyXG5cclxuICAgIHN0YXRpYyBkb3dubG9hZEZpbGUoZGF0YTogYW55LCBmaWxlTmFtZTogc3RyaW5nLCBjb250ZW50VHlwZT86IHN0cmluZywgYmFzZTY0PzogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIGJhc2U2NCA9IChiYXNlNjQgPT09IGZhbHNlKSA/IGZhbHNlIDogdHJ1ZTtcclxuICAgICAgICBjb25zdCBkYXRhQmxvYiA9IGJhc2U2NCA/IHRoaXMuYjY0dG9CbG9iKGRhdGEsIGNvbnRlbnRUeXBlKSA6IGRhdGE7XHJcbiAgICAgICAgdGhpcy5kb3dubG9hZChkYXRhQmxvYiwgZmlsZU5hbWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBkb3dubG9hZERhdGEoZGF0YTogQXJyYXk8YW55PiwgZHdsZERhdGFQYXJhbTogSURvd25sb2FkRGF0YVBhcmFtcyA9IG51bGwpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIWRhdGEpIHsgcmV0dXJuOyB9XHJcblxyXG4gICAgICAgIGlmICghZHdsZERhdGFQYXJhbSkgeyBkd2xkRGF0YVBhcmFtID0gbmV3IERvd25sb2FkRGF0YVBhcmFtcygpOyB9XHJcbiAgICAgICAgaWYgKCFkd2xkRGF0YVBhcmFtLmZpbGVOYW1lKSB7IGR3bGREYXRhUGFyYW0uZmlsZU5hbWUgPSAnZGF0YS5jc3YnOyB9XHJcbiAgICAgICAgaWYgKCFkd2xkRGF0YVBhcmFtLmxpdGVyYWxzKSB7IGR3bGREYXRhUGFyYW0ubGl0ZXJhbHMgPSB7fTsgfVxyXG4gICAgICAgIGlmICghZHdsZERhdGFQYXJhbS5jb2x1bW5EZWxpbWl0ZXIpIHsgZHdsZERhdGFQYXJhbS5jb2x1bW5EZWxpbWl0ZXIgPSAnOyc7IH1cclxuICAgICAgICBpZiAoIWR3bGREYXRhUGFyYW0uY29sdW1uTGlzdCkgeyBkd2xkRGF0YVBhcmFtLmNvbHVtbkxpc3QgPSBbXTsgfVxyXG4gICAgICAgIGlmICghZHdsZERhdGFQYXJhbS5jb2x1bW5FeGNsdWRlKSB7IGR3bGREYXRhUGFyYW0uY29sdW1uRXhjbHVkZSA9IFtdOyB9XHJcblxyXG4gICAgICAgIGNvbnN0IGRhdGFiNjQgPSBidG9hKHRoaXMuanNvblRvU3RyaW5nKGRhdGEsIGR3bGREYXRhUGFyYW0pKTtcclxuICAgICAgICB0aGlzLmRvd25sb2FkRmlsZShkYXRhYjY0LCBkd2xkRGF0YVBhcmFtLmZpbGVOYW1lLCAndGV4dC9jc3YnKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBkb3dubG9hZChmaWxlOiBCbG9iLCBmaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgYmluYXJ5RGF0YSA9IFtmaWxlXTtcclxuICAgICAgICBjb25zdCBkb3dubG9hZExpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgICAgICAgY29uc3QgdXJsRG93bmxvYWQgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChuZXcgQmxvYihiaW5hcnlEYXRhLCB7IHR5cGU6IGZpbGUudHlwZSB9KSk7XHJcblxyXG4gICAgICAgIC8qKlZlcmlmaWNhIHNlIMOpIGllIG91IGVkZ2UsIHBvaXMgbyBtZXNtbyB0ZW0gdHJhdGFtZW50byBwcsOzcHJpbyBwYXJhIGFycXVpdm9zIGJsb2IgKi9cclxuICAgICAgICBpZiAobmF2aWdhdG9yLnVzZXJBZ2VudC50b1VwcGVyQ2FzZSgpLmluZGV4T2YoJy5ORVQnKSA+IDAgfHwgbmF2aWdhdG9yLnVzZXJBZ2VudC50b1VwcGVyQ2FzZSgpLmluZGV4T2YoJ0VER0UnKSA+IDApIHtcclxuICAgICAgICAgICAgd2luZG93Lm5hdmlnYXRvci5tc1NhdmVPck9wZW5CbG9iKGZpbGUsIGZpbGVOYW1lKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBkb3dubG9hZExpbmsuaHJlZiA9IHVybERvd25sb2FkO1xyXG4gICAgICAgICAgICBkb3dubG9hZExpbmsuc2V0QXR0cmlidXRlKCdkb3dubG9hZCcsIGZpbGVOYW1lKTtcclxuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb3dubG9hZExpbmspO1xyXG4gICAgICAgICAgICBkb3dubG9hZExpbmsuY2xpY2soKTtcclxuICAgICAgICAgICAgd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwodXJsRG93bmxvYWQpO1xyXG4gICAgICAgICAgICBkb3dubG9hZExpbmsucmVtb3ZlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc3RhdGljIGI2NHRvQmxvYihiNjREYXRhOiBhbnksIGNvbnRlbnRUeXBlPzogc3RyaW5nLCBzbGljZVNpemU/OiBudW1iZXIpOiBCbG9iIHtcclxuICAgICAgICBjb250ZW50VHlwZSA9IGNvbnRlbnRUeXBlIHx8ICcnO1xyXG4gICAgICAgIHNsaWNlU2l6ZSA9IHNsaWNlU2l6ZSB8fCA1MTI7XHJcblxyXG4gICAgICAgIGNvbnN0IGJ5dGVDaGFyYWN0ZXJzID0gYXRvYihiNjREYXRhKTtcclxuICAgICAgICBjb25zdCBieXRlQXJyYXlzID0gW107XHJcblxyXG4gICAgICAgIGZvciAobGV0IG9mZnNldCA9IDA7IG9mZnNldCA8IGJ5dGVDaGFyYWN0ZXJzLmxlbmd0aDsgb2Zmc2V0ICs9IHNsaWNlU2l6ZSkge1xyXG4gICAgICAgICAgICBjb25zdCBzbGljZSA9IGJ5dGVDaGFyYWN0ZXJzLnNsaWNlKG9mZnNldCwgb2Zmc2V0ICsgc2xpY2VTaXplKTtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IGJ5dGVOdW1iZXJzID0gbmV3IEFycmF5KHNsaWNlLmxlbmd0aCk7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2xpY2UubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGJ5dGVOdW1iZXJzW2ldID0gc2xpY2UuY2hhckNvZGVBdChpKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29uc3QgYnl0ZUFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoYnl0ZU51bWJlcnMpO1xyXG4gICAgICAgICAgICBieXRlQXJyYXlzLnB1c2goYnl0ZUFycmF5KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihieXRlQXJyYXlzLCB7IHR5cGU6IGNvbnRlbnRUeXBlIH0pO1xyXG4gICAgICAgIHJldHVybiBibG9iO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc3RhdGljIGpzb25Ub1N0cmluZyhqc29uRGF0YTogQXJyYXk8YW55PiwgZHdsZERhdGFQYXJhbTogSURvd25sb2FkRGF0YVBhcmFtcyk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKCFqc29uRGF0YSB8fCBqc29uRGF0YS5sZW5ndGggPT09IDApIHsgcmV0dXJuICcnOyB9XHJcblxyXG4gICAgICAgIGNvbnN0IGxpbmVEZWxpbWl0ZXIgPSAnXFxuJztcclxuXHJcbiAgICAgICAgbGV0IGNvbHVtbk9yaWcgPSBudWxsO1xyXG4gICAgICAgIGxldCBjb2x1bW5IZWFkZXIgPSBudWxsO1xyXG4gICAgICAgIGNvbnN0IGtleXMgPSBbXTtcclxuICAgICAgICBsZXQgaW5jbHVkZUtleTogYm9vbGVhbjtcclxuXHJcbiAgICAgICAgaWYgKGR3bGREYXRhUGFyYW0uY29sdW1uTGlzdCAmJlxyXG4gICAgICAgICAgICBkd2xkRGF0YVBhcmFtLmNvbHVtbkxpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICBjb2x1bW5PcmlnID0gZHdsZERhdGFQYXJhbS5jb2x1bW5MaXN0O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGNvbHVtbk9yaWcgPSBPYmplY3Qua2V5cyhqc29uRGF0YVswXSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb2x1bW5PcmlnLmZvckVhY2goa2V5ID0+IHtcclxuICAgICAgICAgICAgaW5jbHVkZUtleSA9IHRydWU7XHJcblxyXG4gICAgICAgICAgICBpZiAoZHdsZERhdGFQYXJhbS5jb2x1bW5FeGNsdWRlICYmXHJcbiAgICAgICAgICAgICAgICBkd2xkRGF0YVBhcmFtLmNvbHVtbkV4Y2x1ZGUubGVuZ3RoID4gMCAmJlxyXG4gICAgICAgICAgICAgICAgZHdsZERhdGFQYXJhbS5jb2x1bW5FeGNsdWRlLmluZGV4T2Yoa2V5KSAhPT0gLTEpIHtcclxuICAgICAgICAgICAgICAgIGluY2x1ZGVLZXkgPSBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGluY2x1ZGVLZXkpIHtcclxuICAgICAgICAgICAgICAgIGtleXMucHVzaChrZXkpO1xyXG4gICAgICAgICAgICAgICAgY29sdW1uSGVhZGVyID0gKCFjb2x1bW5IZWFkZXIpID8gJycgOiBjb2x1bW5IZWFkZXIgKyBkd2xkRGF0YVBhcmFtLmNvbHVtbkRlbGltaXRlcjtcclxuICAgICAgICAgICAgICAgIGNvbHVtbkhlYWRlciArPSAoZHdsZERhdGFQYXJhbS5saXRlcmFsc1trZXldKSA/IGR3bGREYXRhUGFyYW0ubGl0ZXJhbHNba2V5XSA6IGtleTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBjb25zdCBsaW5lU3RyID0ganNvbkRhdGEucmVkdWNlKChhY2NMaW5lU3RyLCBjdXJyZW50SXRlbSkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgZmlyc3QgPSB0cnVlO1xyXG4gICAgICAgICAgICBsZXQgY29sdW1uVmFsdWUgPSBudWxsO1xyXG5cclxuICAgICAgICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWZpcnN0KSB7IGFjY0xpbmVTdHIgKz0gZHdsZERhdGFQYXJhbS5jb2x1bW5EZWxpbWl0ZXI7IH1cclxuXHJcbiAgICAgICAgICAgICAgICBjb2x1bW5WYWx1ZSA9IGN1cnJlbnRJdGVtW2tleV07XHJcbiAgICAgICAgICAgICAgICBpZiAoY29sdW1uVmFsdWUgPT09IG51bGwgfHwgY29sdW1uVmFsdWUgPT09IHVuZGVmaW5lZCkgeyBjb2x1bW5WYWx1ZSA9ICcnOyB9XHJcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHR5cGVvZiAoY29sdW1uVmFsdWUpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnbnVtYmVyJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uVmFsdWUgPSBjb2x1bW5WYWx1ZS50b0xvY2FsZVN0cmluZygpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlICdib29sZWFuJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uVmFsdWUgPSAoZHdsZERhdGFQYXJhbS5saXRlcmFsc1tgJHtjb2x1bW5WYWx1ZX1gXSkgP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZHdsZERhdGFQYXJhbS5saXRlcmFsc1tgJHtjb2x1bW5WYWx1ZX1gXSA6IGNvbHVtblZhbHVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlICdvYmplY3QnOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5WYWx1ZSA9IEpTT04uc3RyaW5naWZ5KGNvbHVtblZhbHVlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGFjY0xpbmVTdHIgKz0gY29sdW1uVmFsdWU7XHJcblxyXG4gICAgICAgICAgICAgICAgZmlyc3QgPSBmYWxzZTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gYWNjTGluZVN0ciArIGxpbmVEZWxpbWl0ZXI7XHJcblxyXG4gICAgICAgIH0sIGNvbHVtbkhlYWRlciArIGxpbmVEZWxpbWl0ZXIpO1xyXG5cclxuICAgICAgICByZXR1cm4gbGluZVN0cjtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJRG93bmxvYWREYXRhUGFyYW1zIHtcclxuICAgIGZpbGVOYW1lOiBzdHJpbmc7XHJcbiAgICBsaXRlcmFsczogYW55O1xyXG4gICAgY29sdW1uRGVsaW1pdGVyOiBzdHJpbmc7XHJcbiAgICBjb2x1bW5MaXN0OiBBcnJheTxzdHJpbmc+O1xyXG4gICAgY29sdW1uRXhjbHVkZTogQXJyYXk8c3RyaW5nPjtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIERvd25sb2FkRGF0YVBhcmFtcyBpbXBsZW1lbnRzIElEb3dubG9hZERhdGFQYXJhbXMge1xyXG4gICAgZmlsZU5hbWU6IHN0cmluZztcclxuICAgIGxpdGVyYWxzOiBhbnk7XHJcbiAgICBjb2x1bW5EZWxpbWl0ZXI6IHN0cmluZztcclxuICAgIGNvbHVtbkxpc3Q6IEFycmF5PHN0cmluZz47XHJcbiAgICBjb2x1bW5FeGNsdWRlOiBBcnJheTxzdHJpbmc+O1xyXG59XHJcbiJdfQ==
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHRzLWJhY2tvZmZpY2UtdXRpbC9zcmMvbGliL3V0aWxzL2ZpbGUudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sUUFBUTtJQUVqQixnQkFDSSxDQUFDO0lBRUwsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFTLEVBQUUsUUFBZ0IsRUFBRSxXQUFvQixFQUFFLE1BQWdCO1FBQ25GLE1BQU0sR0FBRyxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDM0MsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ25FLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxNQUFNLENBQUMsWUFBWSxDQUFDLElBQWdCLEVBQUUsZ0JBQXFDLElBQUk7UUFDM0UsSUFBSSxDQUFDLElBQUksRUFBRTtZQUFFLE9BQU87U0FBRTtRQUV0QixJQUFJLENBQUMsYUFBYSxFQUFFO1lBQUUsYUFBYSxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztTQUFFO1FBQ2pFLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFO1lBQUUsYUFBYSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7U0FBRTtRQUNyRSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRTtZQUFFLGFBQWEsQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1NBQUU7UUFDN0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLEVBQUU7WUFBRSxhQUFhLENBQUMsZUFBZSxHQUFHLEdBQUcsQ0FBQztTQUFFO1FBQzVFLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFO1lBQUUsYUFBYSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7U0FBRTtRQUNqRSxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRTtZQUFFLGFBQWEsQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1NBQUU7UUFFdkUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFVLEVBQUUsUUFBZ0I7UUFDaEQsTUFBTSxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQixNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pELE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRTFGLHNGQUFzRjtRQUN0RixJQUFJLFNBQVMsQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxTQUFTLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDaEgsTUFBTSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7U0FDckQ7YUFBTTtZQUNILFlBQVksQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDO1lBQ2hDLFlBQVksQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ2hELFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3hDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNyQixNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN4QyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDekI7SUFDTCxDQUFDO0lBRU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFZLEVBQUUsV0FBb0IsRUFBRSxTQUFrQjtRQUMzRSxXQUFXLEdBQUcsV0FBVyxJQUFJLEVBQUUsQ0FBQztRQUNoQyxTQUFTLEdBQUcsU0FBUyxJQUFJLEdBQUcsQ0FBQztRQUU3QixNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckMsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBRXRCLEtBQUssSUFBSSxNQUFNLEdBQUcsQ0FBQyxFQUFFLE1BQU0sR0FBRyxjQUFjLENBQUMsTUFBTSxFQUFFLE1BQU0sSUFBSSxTQUFTLEVBQUU7WUFDdEUsTUFBTSxLQUFLLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFNBQVMsQ0FBQyxDQUFDO1lBRS9ELE1BQU0sV0FBVyxHQUFHLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM1QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDbkMsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDeEM7WUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFJLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUM5QyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQzlCO1FBRUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDekQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVPLE1BQU0sQ0FBQyxZQUFZLENBQUMsUUFBb0IsRUFBRSxhQUFrQztRQUNoRixJQUFJLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQUUsT0FBTyxFQUFFLENBQUM7U0FBRTtRQUV0RCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFFM0IsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksWUFBWSxHQUFHLElBQUksQ0FBQztRQUN4QixNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7UUFDaEIsSUFBSSxVQUFtQixDQUFDO1FBRXhCLElBQUksYUFBYSxDQUFDLFVBQVU7WUFDeEIsYUFBYSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3JDLFVBQVUsR0FBRyxhQUFhLENBQUMsVUFBVSxDQUFDO1NBQ3pDO2FBQU07WUFDSCxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN6QztRQUVELFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDckIsVUFBVSxHQUFHLElBQUksQ0FBQztZQUVsQixJQUFJLGFBQWEsQ0FBQyxhQUFhO2dCQUMzQixhQUFhLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDO2dCQUN0QyxhQUFhLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDakQsVUFBVSxHQUFHLEtBQUssQ0FBQzthQUN0QjtZQUVELElBQUksVUFBVSxFQUFFO2dCQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2YsWUFBWSxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLEdBQUcsYUFBYSxDQUFDLGVBQWUsQ0FBQztnQkFDbkYsWUFBWSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7YUFDckY7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLEVBQUU7WUFDeEQsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQ2pCLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQztZQUV2QixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNmLElBQUksQ0FBQyxLQUFLLEVBQUU7b0JBQUUsVUFBVSxJQUFJLGFBQWEsQ0FBQyxlQUFlLENBQUM7aUJBQUU7Z0JBRTVELFdBQVcsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQy9CLElBQUksV0FBVyxLQUFLLElBQUksSUFBSSxXQUFXLEtBQUssU0FBUyxFQUFFO29CQUFFLFdBQVcsR0FBRyxFQUFFLENBQUM7aUJBQUU7Z0JBQzVFLFFBQVEsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFO29CQUMxQixLQUFLLFFBQVE7d0JBQ1QsV0FBVyxHQUFHLFdBQVcsQ0FBQyxjQUFjLEVBQUUsQ0FBQzt3QkFDM0MsTUFBTTtvQkFDVixLQUFLLFNBQVM7d0JBQ1YsV0FBVyxHQUFHLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxHQUFHLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDOzRCQUN0RCxhQUFhLENBQUMsUUFBUSxDQUFDLEdBQUcsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDO3dCQUMzRCxNQUFNO29CQUNWLEtBQUssUUFBUTt3QkFDVCxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztpQkFDakQ7Z0JBQ0QsVUFBVSxJQUFJLFdBQVcsQ0FBQztnQkFFMUIsS0FBSyxHQUFHLEtBQUssQ0FBQztZQUNsQixDQUFDLENBQUMsQ0FBQztZQUVILE9BQU8sVUFBVSxHQUFHLGFBQWEsQ0FBQztRQUV0QyxDQUFDLEVBQUUsWUFBWSxHQUFHLGFBQWEsQ0FBQyxDQUFDO1FBRWpDLE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7Q0FDSjtBQVVELE1BQU0sT0FBTyxrQkFBa0I7Q0FNOUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgRmlsZVV0aWwge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgKSB7IH1cclxuXHJcbiAgICBzdGF0aWMgZG93bmxvYWRGaWxlKGRhdGE6IGFueSwgZmlsZU5hbWU6IHN0cmluZywgY29udGVudFR5cGU/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==
|