@senior-agronegocio/angular-components 0.0.983 → 0.0.9852
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/senior-agronegocio-angular-components.umd.js +239 -15
- package/bundles/senior-agronegocio-angular-components.umd.js.map +1 -1
- package/bundles/senior-agronegocio-angular-components.umd.min.js +2 -2
- package/bundles/senior-agronegocio-angular-components.umd.min.js.map +1 -1
- package/common/agro-object-stringifier.class.d.ts +16 -0
- package/common/agro-regex.constant.d.ts +3 -0
- package/common/agro-string-utils.class.d.ts +3 -0
- package/esm2015/common/agro-object-stringifier.class.js +31 -0
- package/esm2015/common/agro-platform-utils.class.js +8 -7
- package/esm2015/common/agro-regex.constant.js +5 -2
- package/esm2015/common/agro-string-utils.class.js +71 -8
- package/esm2015/pipe/cnpj-cpf/cnpj-cpf.pipe.module.js +1 -1
- package/esm2015/pipe/index.js +3 -1
- package/esm2015/pipe/stringifier/index.js +3 -0
- package/esm2015/pipe/stringifier/stringifier.pipe.js +13 -0
- package/esm2015/pipe/stringifier/stringifier.pipe.module.js +15 -0
- package/esm2015/pipe/telephone/index.js +3 -0
- package/esm2015/pipe/telephone/telephone.pipe.js +82 -0
- package/esm2015/pipe/telephone/telephone.pipe.module.js +15 -0
- package/esm2015/services/lib-translation.service.js +2 -2
- package/esm5/common/agro-object-stringifier.class.js +35 -0
- package/esm5/common/agro-platform-utils.class.js +8 -7
- package/esm5/common/agro-regex.constant.js +5 -2
- package/esm5/common/agro-string-utils.class.js +71 -8
- package/esm5/pipe/cnpj-cpf/cnpj-cpf.pipe.module.js +1 -1
- package/esm5/pipe/index.js +3 -1
- package/esm5/pipe/stringifier/index.js +3 -0
- package/esm5/pipe/stringifier/stringifier.pipe.js +16 -0
- package/esm5/pipe/stringifier/stringifier.pipe.module.js +18 -0
- package/esm5/pipe/telephone/index.js +3 -0
- package/esm5/pipe/telephone/telephone.pipe.js +86 -0
- package/esm5/pipe/telephone/telephone.pipe.module.js +18 -0
- package/esm5/services/lib-translation.service.js +2 -2
- package/fesm2015/senior-agronegocio-angular-components.js +220 -16
- package/fesm2015/senior-agronegocio-angular-components.js.map +1 -1
- package/fesm5/senior-agronegocio-angular-components.js +236 -16
- package/fesm5/senior-agronegocio-angular-components.js.map +1 -1
- package/package.json +1 -1
- package/pipe/index.d.ts +2 -0
- package/pipe/stringifier/index.d.ts +2 -0
- package/pipe/stringifier/stringifier.pipe.d.ts +9 -0
- package/pipe/stringifier/stringifier.pipe.module.d.ts +2 -0
- package/pipe/telephone/index.d.ts +2 -0
- package/pipe/telephone/telephone.pipe.d.ts +21 -0
- package/pipe/telephone/telephone.pipe.module.d.ts +2 -0
- package/senior-agronegocio-angular-components.metadata.json +1 -1
|
@@ -41,13 +41,19 @@ var AgroStringUtils = /** @class */ (function () {
|
|
|
41
41
|
*/
|
|
42
42
|
AgroStringUtils.isEmpty = function (str) {
|
|
43
43
|
var _a;
|
|
44
|
-
|
|
44
|
+
if (str && AgroStringUtils.isString(str)) {
|
|
45
|
+
return ((_a = str === null || str === void 0 ? void 0 : str.trim()) === null || _a === void 0 ? void 0 : _a.length) === AGRO_NUMBERS.ZERO;
|
|
46
|
+
}
|
|
47
|
+
return true;
|
|
45
48
|
};
|
|
46
49
|
/**
|
|
47
50
|
* Verifica se a string não está vazia.
|
|
48
51
|
*/
|
|
49
52
|
AgroStringUtils.isNotEmpty = function (str) {
|
|
50
|
-
|
|
53
|
+
if (str && AgroStringUtils.isString(str)) {
|
|
54
|
+
return !AgroStringUtils.isEmpty(str);
|
|
55
|
+
}
|
|
56
|
+
return false;
|
|
51
57
|
};
|
|
52
58
|
/** Verifica se a string é nula, indefinida ou contém apenas espaços em branco */
|
|
53
59
|
AgroStringUtils.isBlank = function (str) {
|
|
@@ -102,7 +108,7 @@ var AgroStringUtils = /** @class */ (function () {
|
|
|
102
108
|
return AGRO_REGEX.isUUID.test(str);
|
|
103
109
|
};
|
|
104
110
|
AgroStringUtils.isNumber = function (str) {
|
|
105
|
-
return AGRO_REGEX.isNumber.test(str);
|
|
111
|
+
return [AGRO_REGEX.isNumber.test(str), AGRO_REGEX.isDecimal.test(str)].includes(true);
|
|
106
112
|
};
|
|
107
113
|
AgroStringUtils.validateCPF = function (cpf) {
|
|
108
114
|
cpf = cpf.replace(/\D/g, "");
|
|
@@ -271,20 +277,68 @@ var AgroStringUtils = /** @class */ (function () {
|
|
|
271
277
|
var maskChars = mask.split("");
|
|
272
278
|
var unmaskedValue = "";
|
|
273
279
|
var j = 0;
|
|
280
|
+
var isDigit = function (c) { return /\d/.test(c); };
|
|
281
|
+
var isAlpha = function (c) { return /[A-Za-z]/.test(c); };
|
|
282
|
+
var isAlnum = function (c) { return /[A-Za-z0-9]/.test(c); };
|
|
274
283
|
try {
|
|
275
284
|
for (var maskChars_1 = __values(maskChars), maskChars_1_1 = maskChars_1.next(); !maskChars_1_1.done; maskChars_1_1 = maskChars_1.next()) {
|
|
276
285
|
var maskChar = maskChars_1_1.value;
|
|
277
286
|
if (j >= valueChars.length)
|
|
278
287
|
break;
|
|
288
|
+
var current = valueChars[j];
|
|
289
|
+
// Placeholder para dígito '9'
|
|
279
290
|
if (maskChar === "9") {
|
|
280
|
-
//
|
|
281
|
-
|
|
291
|
+
// procura próximo dígito a partir de j
|
|
292
|
+
var k = j;
|
|
293
|
+
while (k < valueChars.length && !isDigit(valueChars[k]))
|
|
294
|
+
k++;
|
|
295
|
+
if (k < valueChars.length) {
|
|
296
|
+
// encontrou dígito: consome
|
|
297
|
+
unmaskedValue += valueChars[k];
|
|
298
|
+
j = k + 1;
|
|
299
|
+
}
|
|
300
|
+
else {
|
|
301
|
+
// não há dígito futuro: captura o caractere atual como dado
|
|
302
|
+
unmaskedValue += valueChars[j];
|
|
303
|
+
j++;
|
|
304
|
+
}
|
|
305
|
+
continue;
|
|
306
|
+
}
|
|
307
|
+
// Placeholder para letra 'A'
|
|
308
|
+
if (maskChar === "A") {
|
|
309
|
+
// procura próxima letra a partir de j
|
|
310
|
+
var k = j;
|
|
311
|
+
while (k < valueChars.length && !isAlpha(valueChars[k]))
|
|
312
|
+
k++;
|
|
313
|
+
if (k < valueChars.length) {
|
|
314
|
+
unmaskedValue += valueChars[k];
|
|
315
|
+
j = k + 1;
|
|
316
|
+
}
|
|
317
|
+
else {
|
|
318
|
+
unmaskedValue += valueChars[j];
|
|
319
|
+
j++;
|
|
320
|
+
}
|
|
321
|
+
continue;
|
|
322
|
+
}
|
|
323
|
+
// maskChar é um separador literal opcional.
|
|
324
|
+
if (current === maskChar) {
|
|
325
|
+
// separador presente no valor: consome-o
|
|
282
326
|
j++;
|
|
327
|
+
continue;
|
|
283
328
|
}
|
|
284
|
-
|
|
285
|
-
|
|
329
|
+
// separador ausente:
|
|
330
|
+
// - se o caractere atual for alfanumérico, trata como dado e captura;
|
|
331
|
+
// - se não for alfanumérico (pontuação), ignora — não avança j, permite
|
|
332
|
+
// que o próximo placeholder pule/consuma ou procure pelo tipo esperado.
|
|
333
|
+
if (isAlnum(current)) {
|
|
334
|
+
unmaskedValue += current;
|
|
286
335
|
j++;
|
|
287
336
|
}
|
|
337
|
+
else {
|
|
338
|
+
// ignora caractere não-alfanumérico no lugar do separador (não consome)
|
|
339
|
+
// assim o próximo placeholder poderá procurar o caractere do tipo esperado
|
|
340
|
+
// sem perder a posição atual.
|
|
341
|
+
}
|
|
288
342
|
}
|
|
289
343
|
}
|
|
290
344
|
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
@@ -337,6 +391,15 @@ var AgroStringUtils = /** @class */ (function () {
|
|
|
337
391
|
AgroStringUtils.isInvalid = function (str) {
|
|
338
392
|
return !AgroStringUtils.isValid(str);
|
|
339
393
|
};
|
|
394
|
+
AgroStringUtils.isISODate = function (value) {
|
|
395
|
+
return AGRO_REGEX.isISODate.test(value);
|
|
396
|
+
};
|
|
397
|
+
AgroStringUtils.isISOTime = function (value) {
|
|
398
|
+
return AGRO_REGEX.isISOTime.test(value);
|
|
399
|
+
};
|
|
400
|
+
AgroStringUtils.isISODatetime = function (value) {
|
|
401
|
+
return AGRO_REGEX.isISODateTime.test(value);
|
|
402
|
+
};
|
|
340
403
|
AgroStringUtils.CNPJ_TRADICIONAL_PESOS_1 = [
|
|
341
404
|
AGRO_NUMBERS.FIVE,
|
|
342
405
|
AGRO_NUMBERS.FOUR,
|
|
@@ -399,4 +462,4 @@ var AgroStringUtils = /** @class */ (function () {
|
|
|
399
462
|
return AgroStringUtils;
|
|
400
463
|
}());
|
|
401
464
|
export { AgroStringUtils };
|
|
402
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1zdHJpbmctdXRpbHMuY2xhc3MuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbW1vbi9hZ3JvLXN0cmluZy11dGlscy5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBbUIsTUFBTSxVQUFVLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRW5ELE9BQU8sRUFBRSxlQUFlLElBQUksV0FBVyxFQUFFLENBQUM7QUFJMUM7O0dBRUc7QUFDSDtJQUFBO0lBMGFBLENBQUM7SUE5V0csb0RBQW9EO0lBQzdDLDZCQUFhLEdBQXBCLFVBQXFCLEdBQW1CO1FBQ3BDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDTixPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsMkRBQTJEO0lBQ3BELDBCQUFVLEdBQWpCLFVBQWtCLEdBQW1CO1FBQ2pDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDTixPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQscURBQXFEO0lBQzlDLDZCQUFhLEdBQXBCLFVBQXFCLEdBQW1CO1FBQ3BDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDTixPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsMkRBQTJEO0lBQ3BELDBCQUFVLEdBQWpCLFVBQWtCLEdBQW1CO1FBQ2pDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDTixPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELE9BQU8sSUFBSSxD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WyJpbXBvcnQgeyBBR1JPX05VTUJFUlMsIEFncm9TdHJpbmdNYXNrcyB9IGZyb20gXCIuLi9lbnVtc1wiO1xyXG5pbXBvcnQgeyBBR1JPX1JFR0VYIH0gZnJvbSBcIi4vYWdyby1yZWdleC5jb25zdGFudFwiO1xyXG5cclxuZXhwb3J0IHsgQWdyb1N0cmluZ1V0aWxzIGFzIFN0cmluZ1V0aWxzIH07XHJcblxyXG5leHBvcnQgdHlwZSBOdWxsYWJsZVN0cmluZyA9IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XHJcblxyXG4vKipcclxuICogQ2xhc3NlIHV0aWxpdMOhcmlhIHBhcmEgb3BlcmHDp8O1ZXMgZGUgc3RyaW5nLlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEFncm9TdHJpbmdVdGlscyB7XHJcbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBDTlBKX1RSQURJQ0lPTkFMX1BFU09TXzE6IG51bWJlcltdID0gW1xyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5GSVZFLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5GT1VSLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5USFJFRSxcclxuICAgICAgICBBR1JPX05VTUJFUlMuVFdPLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5OSU5FLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5FSUdIVCxcclxuICAgICAgICBBR1JPX05VTUJFUlMuU0VWRU4sXHJcbiAgICAgICAgQUdST19OVU1CRVJTLlNJWCxcclxuICAgICAgICBBR1JPX05VTUJFUlMuRklWRSxcclxuICAgICAgICBBR1JPX05VTUJFUlMuRk9VUixcclxuICAgICAgICBBR1JPX05VTUJFUlMuVEhSRUUsXHJcbiAgICAgICAgQUdST19OVU1CRVJTLlRXTyxcclxuICAgIF07XHJcbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBDTlBKX1RSQURJQ0lPTkFMX1BFU09TXzI6IG51bWJlcltdID0gW1xyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5TSVgsXHJcbiAgICAgICAgQUdST19OVU1CRVJTLkZJVkUsXHJcbiAgICAgICAgQUdST19OVU1CRVJTLkZPVVIsXHJcbiAgICAgICAgQUdST19OVU1CRVJTLlRIUkVFLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5UV08sXHJcbiAgICAgICAgQUdST19OVU1CRVJTLk5JTkUsXHJcbiAgICAgICAgQUdST19OVU1CRVJTLkVJR0hULFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5TRVZFTixcclxuICAgICAgICBBR1JPX05VTUJFUlMuU0lYLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5GSVZFLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5GT1VSLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5USFJFRSxcclxuICAgICAgICBBR1JPX05VTUJFUlMuVFdPLFxyXG4gICAgXTtcclxuICAgIC8vIFBlc29zIHV0aWxpemFkb3MgcGFyYSBjw6FsY3VsbyBkZSBkw61naXRvcyB2ZXJpZmljYWRvcmVzIGRvIENOUEogYWxmYW51bcOpcmljbyAoMjAyNilcclxuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IENOUEpfQUxGQU5VTUVSSUNPX1BFU09TXzE6IG51bWJlcltdID0gW1xyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5GSVZFLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5GT1VSLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5USFJFRSxcclxuICAgICAgICBBR1JPX05VTUJFUlMuVFdPLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5OSU5FLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5FSUdIVCxcclxuICAgICAgICBBR1JPX05VTUJFUlMuU0VWRU4sXHJcbiAgICAgICAgQUdST19OVU1CRVJTLlNJWCxcclxuICAgICAgICBBR1JPX05VTUJFUlMuRklWRSxcclxuICAgICAgICBBR1JPX05VTUJFUlMuRk9VUixcclxuICAgICAgICBBR1JPX05VTUJFUlMuVEhSRUUsXHJcbiAgICAgICAgQUdST19OVU1CRVJTLlRXTyxcclxuICAgIF07XHJcbiAgICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBDTlBKX0FMRkFOVU1FUklDT19QRVNPU18yOiBudW1iZXJbXSA9IFtcclxuICAgICAgICBBR1JPX05VTUJFUlMuU0lYLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5GSVZFLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5GT1VSLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5USFJFRSxcclxuICAgICAgICBBR1JPX05VTUJFUlMuVFdPLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5OSU5FLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5FSUdIVCxcclxuICAgICAgICBBR1JPX05VTUJFUlMuU0VWRU4sXHJcbiAgICAgICAgQUdST19OVU1CRVJTLlNJWCxcclxuICAgICAgICBBR1JPX05VTUJFUlMuRklWRSxcclxuICAgICAgICBBR1JPX05VTUJFUlMuRk9VUixcclxuICAgICAgICBBR1JPX05VTUJFUlMuVEhSRUUsXHJcbiAgICAgICAgQUdST19OVU1CRVJTLlRXTyxcclxuICAgIF07XHJcbiAgICAvKiogUmV0b3JuYSB0cnVlIHNlIGEgc3RyaW5nIGNvbnTDqW0gYXBlbmFzIGxldHJhcyAqL1xyXG4gICAgc3RhdGljIGlzT25seUxldHRlcnMoc3RyOiBOdWxsYWJsZVN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghc3RyKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIC9eW0EtWmEtel0rJC8udGVzdChzdHIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBSZXRvcm5hIHRydWUgc2UgYSBzdHJpbmcgY29udMOpbSBwZWxvIG1lbm9zIHVtYSBsZXRyYSAqL1xyXG4gICAgc3RhdGljIGhhc0xldHRlcnMoc3RyOiBOdWxsYWJsZVN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghc3RyKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIC9bQS1aYS16XS8udGVzdChzdHIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBSZXRvcm5hIHRydWUgc2UgYSBzdHJpbmcgY29udMOpbSBhcGVuYXMgbsO6bWVyb3MgKi9cclxuICAgIHN0YXRpYyBpc09ubHlOdW1iZXJzKHN0cjogTnVsbGFibGVTdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIXN0cikge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiAvXlxcZCskLy50ZXN0KHN0cik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIFJldG9ybmEgdHJ1ZSBzZSBhIHN0cmluZyBjb250w6ltIHBlbG8gbWVub3MgdW0gbsO6bWVybyAqL1xyXG4gICAgc3RhdGljIGhhc051bWJlcnMoc3RyOiBOdWxsYWJsZVN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghc3RyKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIC9cXGQvLnRlc3Qoc3RyKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIGEgc3RyaW5nIGVzdMOhIHZhemlhLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNFbXB0eShzdHI6IE51bGxhYmxlU3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICFzdHIgfHwgc3RyLnRyaW0oKT8ubGVuZ3RoID09PSBBR1JPX05VTUJFUlMuWkVSTztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZlcmlmaWNhIHNlIGEgc3RyaW5nIG7Do28gZXN0w6EgdmF6aWEuXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc05vdEVtcHR5KHN0cjogTnVsbGFibGVTdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIUFncm9TdHJpbmdVdGlscy5pc0VtcHR5KHN0cik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIFZlcmlmaWNhIHNlIGEgc3RyaW5nIMOpIG51bGEsIGluZGVmaW5pZGEgb3UgY29udMOpbSBhcGVuYXMgZXNwYcOnb3MgZW0gYnJhbmNvICovXHJcbiAgICBzdGF0aWMgaXNCbGFuayhzdHI6IE51bGxhYmxlU3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICFzdHIgfHwgQUdST19SRUdFWC5vbmx5QmxhbmtTcGFjZXMudGVzdChzdHIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBWZXJpZmljYSBzZSBhIHN0cmluZyBuw6NvIMOpIG51bGEsIGluZGVmaW5pZGEgb3UgY29udMOpbSBhcGVuYXMgZXNwYcOnb3MgZW0gYnJhbmNvICovXHJcbiAgICBzdGF0aWMgaXNOb3RCbGFuayhzdHI6IE51bGxhYmxlU3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICFBZ3JvU3RyaW5nVXRpbHMuaXNCbGFuayhzdHIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVtb3ZlIGVzcGHDp29zIGVtIGJyYW5jbyBkbyBpbsOtY2lvIGUgZG8gZmltIGRhIHN0cmluZy5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIHRyaW1Ub051bGwoc3RyOiBOdWxsYWJsZVN0cmluZyk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgICAgIGlmICghc3RyKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCB0cmltbWVkID0gc3RyLnRyaW0oKTtcclxuICAgICAgICByZXR1cm4gdHJpbW1lZCA9PT0gXCJcIiA/IG51bGwgOiB0cmltbWVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29tcGFyYSBkdWFzIHN0cmluZ3MgaWdub3JhbmRvIGRpZmVyZW7Dp2FzIGVudHJlIG1hacO6c2N1bGFzIGUgbWluw7pzY3VsYXMuXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBlcXVhbHNJZ25vcmVDYXNlKHN0cjE6IE51bGxhYmxlU3RyaW5nLCBzdHIyOiBOdWxsYWJsZVN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBzdHIxPy50b0xvd2VyQ2FzZSgpID09PSBzdHIyPy50b0xvd2VyQ2FzZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29tcGFyYSBkdWFzIHN0cmluZ3MgY29uc2lkZXJhbmRvIGRpZmVyZW7Dp2FzIGVudHJlIG1hacO6c2N1bGFzIGUgbWluw7pzY3VsYXMuXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBlcXVhbHMoc3RyMTogTnVsbGFibGVTdHJpbmcsIHN0cjI6IE51bGxhYmxlU3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHN0cjEgPT09IHN0cjI7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIHJldmVyc2Uoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBzdHIuc3BsaXQoXCJcIikucmV2ZXJzZSgpLmpvaW4oXCJcIik7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGlzRW1haWwoc3RyOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gQUdST19SRUdFWC5pc0VtYWlsLnRlc3Qoc3RyKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgaXNQb3NpdGl2ZUludGVnZXIoc3RyOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gQUdST19SRUdFWC5wb3NpdGl2ZUludGVnZXIudGVzdChzdHIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBSZXRvcm5hIHRydWUgc2UgYSBzdHJpbmcgw6kgdW1hIHN0cmluZyB2w6FsaWRhIChuw6NvIG51bGwsIG7Do28gdW5kZWZpbmVkLCBuw6NvIHZhemlhKSAqL1xyXG4gICAgc3RhdGljIGlzU3RyaW5nKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICYmIHZhbHVlLnRyaW0oKS5sZW5ndGggPiBBR1JPX05VTUJFUlMuWkVSTztcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgaXNQb3NpdGl2ZURlY2ltYWwoc3RyOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gQUdST19SRUdFWC5wb3NpdGl2ZURlY2ltYWwudGVzdChzdHIpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpc1ppcENvZGUoc3RyOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gQUdST19SRUdFWC56aXBDb2RlLnRlc3Qoc3RyKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgaXNVVUlEKHN0cjogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIEFHUk9fUkVHRVguaXNVVUlELnRlc3Qoc3RyKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgaXNOdW1iZXIoc3RyOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gQUdST19SRUdFWC5pc051bWJlci50ZXN0KHN0cik7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIHZhbGlkYXRlQ1BGKGNwZjogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY3BmID0gY3BmLnJlcGxhY2UoL1xcRC9nLCBcIlwiKTtcclxuXHJcbiAgICAgICAgaWYgKGNwZi5sZW5ndGggIT09IEFHUk9fTlVNQkVSUy5FTEVWRU4gfHwgL14oXFxkKVxcMSskLy50ZXN0KGNwZikpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgY2FsY1ZlcmlmaWVyID0gKGNwZjogc3RyaW5nLCBsZW5ndGg6IG51bWJlcik6IG51bWJlciA9PiB7XHJcbiAgICAgICAgICAgIGxldCBzdW0gPSBBR1JPX05VTUJFUlMuWkVSTztcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IEFHUk9fTlVNQkVSUy5aRVJPOyBpIDwgbGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHN1bSArPSBwYXJzZUludChjcGZbaV0sIEFHUk9fTlVNQkVSUy5URU4pICogKGxlbmd0aCArIEFHUk9fTlVNQkVSUy5PTkUgLSBpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBzdW0gJSBBR1JPX05VTUJFUlMuRUxFVkVOO1xyXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0IDwgQUdST19OVU1CRVJTLlRXTyA/IEFHUk9fTlVNQkVSUy5aRVJPIDogQUdST19OVU1CRVJTLkVMRVZFTiAtIHJlc3VsdDtcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBjb25zdCBkaWdpdDEgPSBjYWxjVmVyaWZpZXIoY3BmLCBBR1JPX05VTUJFUlMuTklORSk7XHJcbiAgICAgICAgY29uc3QgZGlnaXQyID0gY2FsY1ZlcmlmaWVyKGNwZiwgQUdST19OVU1CRVJTLlRFTik7XHJcblxyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIGRpZ2l0MSA9PT0gcGFyc2VJbnQoY3BmW0FHUk9fTlVNQkVSUy5OSU5FXSwgQUdST19OVU1CRVJTLlRFTikgJiYgZGlnaXQyID09PSBwYXJzZUludChjcGZbQUdST19OVU1CRVJTLlRFTl0sIEFHUk9fTlVNQkVSUy5URU4pXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIERldGVjdGEgYXV0b21hdGljYW1lbnRlIHNlIMOpIENOUEogYW50aWdvIG91IG5vdm8gZm9ybWF0by5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIHZhbGlkYXRlQ05QSihjbnBqOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIWNucGopIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjbnBqID0gY25wai50cmltKCk7XHJcblxyXG4gICAgICAgIC8vIFNlIGNvbnTDqW0gbGV0cmFzIOKGkiB2YWxpZGEgZm9ybWF0byBhbGZhbnVtw6lyaWNvXHJcbiAgICAgICAgaWYgKEFncm9TdHJpbmdVdGlscy5oYXNMZXR0ZXJzKGNucGopKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBBZ3JvU3RyaW5nVXRpbHMudmFsaWRhdGVDTlBKQWxmYW51bWVyaWNvKGNucGopO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gQ2FzbyBjb250csOhcmlvLCB2YWxpZGEgY29tbyBDTlBKIHRyYWRpY2lvbmFsXHJcbiAgICAgICAgcmV0dXJuIEFncm9TdHJpbmdVdGlscy52YWxpZGF0ZUNOUEpBbnRpZ28oY25waik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGEgbyBDTlBKIHRyYWRpY2lvbmFsIChzb21lbnRlIG7Dum1lcm9zKVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHN0YXRpYyB2YWxpZGF0ZUNOUEpBbnRpZ28oY25wajogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY25waiA9IGNucGoucmVwbGFjZSgvXFxEL2csIFwiXCIpO1xyXG5cclxuICAgICAgICBpZiAoIUFncm9TdHJpbmdVdGlscy5pc09ubHlOdW1iZXJzKGNucGopKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGNucGoubGVuZ3RoICE9PSBBR1JPX05VTUJFUlMuRk9VUlRFRU4pIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoL14oXFxkKVxcMXsxM30kLy50ZXN0KGNucGopKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBzb21hID0gQUdST19OVU1CRVJTLlpFUk87XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IEFHUk9fTlVNQkVSUy5aRVJPOyBpIDwgQUdST19OVU1CRVJTLlRXRUxWRTsgaSsrKSB7XHJcbiAgICAgICAgICAgIHNvbWEgKz0gcGFyc2VJbnQoY25wai5jaGFyQXQoaSksIEFHUk9fTlVNQkVSUy5URU4pICogQWdyb1N0cmluZ1V0aWxzLkNOUEpfVFJBRElDSU9OQUxfUEVTT1NfMVtpXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IHJlc3RvID0gc29tYSAlIEFHUk9fTlVNQkVSUy5FTEVWRU47XHJcbiAgICAgICAgY29uc3QgZGlnaXRvMSA9IHJlc3RvIDwgQUdST19OVU1CRVJTLlRXTyA/IEFHUk9fTlVNQkVSUy5aRVJPIDogQUdST19OVU1CRVJTLkVMRVZFTiAtIHJlc3RvO1xyXG5cclxuICAgICAgICBzb21hID0gQUdST19OVU1CRVJTLlpFUk87XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IEFHUk9fTlVNQkVSUy5aRVJPOyBpIDwgQUdST19OVU1CRVJTLlRISVJURUVOOyBpKyspIHtcclxuICAgICAgICAgICAgc29tYSArPSBwYXJzZUludChjbnBqLmNoYXJBdChpKSwgQUdST19OVU1CRVJTLlRFTikgKiBBZ3JvU3RyaW5nVXRpbHMuQ05QSl9UUkFESUNJT05BTF9QRVNPU18yW2ldO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXN0byA9IHNvbWEgJSBBR1JPX05VTUJFUlMuRUxFVkVOO1xyXG4gICAgICAgIGNvbnN0IGRpZ2l0bzIgPSByZXN0byA8IEFHUk9fTlVNQkVSUy5UV08gPyBBR1JPX05VTUJFUlMuWkVSTyA6IEFHUk9fTlVNQkVSUy5FTEVWRU4gLSByZXN0bztcclxuXHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgcGFyc2VJbnQoY25wai5jaGFyQXQoQUdST19OVU1CRVJTLlRXRUxWRSksIEFHUk9fTlVNQkVSUy5URU4pID09PSBkaWdpdG8xICYmXHJcbiAgICAgICAgICAgIHBhcnNlSW50KGNucGouY2hhckF0KEFHUk9fTlVNQkVSUy5USElSVEVFTiksIEFHUk9fTlVNQkVSUy5URU4pID09PSBkaWdpdG8yXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYSBvIENOUEogZW0gZm9ybWF0byBhbGZhbnVtw6lyaWNvIChwYWRyw6NvIDIwMjYpXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgc3RhdGljIHZhbGlkYXRlQ05QSkFsZmFudW1lcmljbyhjbnBqOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIUFncm9TdHJpbmdVdGlscy5pc1N0cmluZyhjbnBqKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBSZW1vdmUgY2FyYWN0ZXJlcyBlc3BlY2lhaXMgKHBvbnRvcywgYmFycmEsIHRyYcOnbywgZXNwYcOnb3MpXHJcbiAgICAgICAgY29uc3QgY2xlYW4gPSBjbnBqLnJlcGxhY2UoL1teQS1aYS16MC05XS9nLCBcIlwiKS50b1VwcGVyQ2FzZSgpO1xyXG5cclxuICAgICAgICAvLyBPIENOUEogZGV2ZSB0ZXIgZXhhdGFtZW50ZSAxNCBwb3Npw6fDtWVzXHJcbiAgICAgICAgaWYgKGNsZWFuLmxlbmd0aCAhPT0gQUdST19OVU1CRVJTLkZPVVJURUVOKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIFZlcmlmaWNhIHNlIGjDoSBwZWxvIG1lbm9zIHVtYSBsZXRyYSBlIHVtIG7Dum1lcm9cclxuICAgICAgICBpZiAoIUFncm9TdHJpbmdVdGlscy5oYXNMZXR0ZXJzKGNsZWFuKSB8fCAhQWdyb1N0cmluZ1V0aWxzLmhhc051bWJlcnMoY2xlYW4pKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIENhbGN1bGEgbyBwcmltZWlybyBkw61naXRvIHZlcmlmaWNhZG9yXHJcbiAgICAgICAgY29uc3QgcGVzb3MxID0gQWdyb1N0cmluZ1V0aWxzLkNOUEpfQUxGQU5VTUVSSUNPX1BFU09TXzE7XHJcbiAgICAgICAgY29uc3QgcGVzb3MyID0gQWdyb1N0cmluZ1V0aWxzLkNOUEpfQUxGQU5VTUVSSUNPX1BFU09TXzI7XHJcblxyXG4gICAgICAgIC8vIFBlZ2Egb3MgMTIgcHJpbWVpcm9zIGNhcmFjdGVyZXNcclxuICAgICAgICBjb25zdCBiYXNlID0gY2xlYW4uc3Vic3RyaW5nKEFHUk9fTlVNQkVSUy5aRVJPLCBBR1JPX05VTUJFUlMuVFdFTFZFKTtcclxuICAgICAgICBjb25zdCBkdkluZm9ybWFkbyA9IGNsZWFuLnN1YnN0cmluZyhBR1JPX05VTUJFUlMuVFdFTFZFLCBBR1JPX05VTUJFUlMuRk9VUlRFRU4pO1xyXG5cclxuICAgICAgICBjb25zdCBjYWxjdWxhRFYgPSAoc3RyOiBzdHJpbmcsIHBlc29zOiBudW1iZXJbXSk6IG51bWJlciA9PiB7XHJcbiAgICAgICAgICAgIGxldCBzb21hID0gQUdST19OVU1CRVJTLlpFUk87XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSBBR1JPX05VTUJFUlMuWkVSTzsgaSA8IHBlc29zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjaGFyID0gc3RyLmNoYXJBdChpKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGFzY2lpVmFsdWUgPSBjaGFyLmNoYXJDb2RlQXQoMCkgLSBBR1JPX05VTUJFUlMuRk9SVFlfRUlHSFQ7IC8vIGNvbmZvcm1lIGRvY3VtZW50byAoNDggPSAnMCcpXHJcbiAgICAgICAgICAgICAgICBzb21hICs9IGFzY2lpVmFsdWUgKiBwZXNvc1tpXTsgLy8gYXNjaWlWYWx1ZSBqw6EgY2FsY3VsYWRvIGEgcGFydGlyIGRvIGVudW0gRk9SVFlfRUlHSFRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCByZXN0byA9IHNvbWEgJSBBR1JPX05VTUJFUlMuRUxFVkVOO1xyXG4gICAgICAgICAgICBjb25zdCBkaWdpdG8gPSBBR1JPX05VTUJFUlMuRUxFVkVOIC0gcmVzdG87XHJcbiAgICAgICAgICAgIHJldHVybiBkaWdpdG8gPiBBR1JPX05VTUJFUlMuTklORSA/IEFHUk9fTlVNQkVSUy5aRVJPIDogZGlnaXRvOyAvLyBzZWd1ZSBtZXNtYSByZWdyYSBkbyBDTlBKIHRyYWRpY2lvbmFsXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgY29uc3QgZHYxID0gY2FsY3VsYURWKGJhc2UsIHBlc29zMSk7XHJcbiAgICAgICAgY29uc3QgZHYyID0gY2FsY3VsYURWKGJhc2UgKyBkdjEudG9TdHJpbmcoKSwgcGVzb3MyKTtcclxuXHJcbiAgICAgICAgY29uc3QgZHZDYWxjdWxhZG8gPSBgJHtkdjF9JHtkdjJ9YDtcclxuXHJcbiAgICAgICAgcmV0dXJuIGR2Q2FsY3VsYWRvID09PSBkdkluZm9ybWFkbztcclxuICAgIH1cclxuXHJcbiAgICAvKiogQ2FsY3VsYSBhIGRpZmVyZW7Dp2EgZW50cmUgZHVhcyBzdHJpbmdzIGVtIHRlcm1vcyBkZSBuw7ptZXJvIGRlIGNhcmFjdGVyZXMgZGlmZXJlbnRlcyAqL1xyXG4gICAgc3RhdGljIGRpZmZlcmVuY2Uoc3RyMTogc3RyaW5nLCBzdHIyOiBzdHJpbmcpOiBudW1iZXIge1xyXG4gICAgICAgIGNvbnN0IGxlbjEgPSBzdHIxLmxlbmd0aDtcclxuICAgICAgICBjb25zdCBsZW4yID0gc3RyMi5sZW5ndGg7XHJcbiAgICAgICAgbGV0IGRpZmYgPSBNYXRoLmFicyhsZW4xIC0gbGVuMik7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IEFHUk9fTlVNQkVSUy5aRVJPOyBpIDwgTWF0aC5taW4obGVuMSwgbGVuMik7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoc3RyMVtpXSAhPT0gc3RyMltpXSkge1xyXG4gICAgICAgICAgICAgICAgZGlmZisrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBkaWZmO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBWZXJpZmljYSBzZSBzdHIxIHRlcm1pbmEgY29tIHN0cjIgKi9cclxuICAgIHN0YXRpYyBlbmRzV2l0aChzdHIxOiBzdHJpbmcsIHN0cjI6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBzdHIxLmVuZHNXaXRoKHN0cjIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBWZXJpZmljYSBzZSBzdHIxIGNvbWXDp2EgY29tIHN0cjIgKi9cclxuICAgIHN0YXRpYyBzdGFydHNXaXRoKHN0cjE6IHN0cmluZywgc3RyMjogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHN0cjEuc3RhcnRzV2l0aChzdHIyKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogVmVyaWZpY2Egc2Ugc3RyMSBjb250w6ltIHN0cjIgKi9cclxuICAgIHN0YXRpYyBjb250YWlucyhzdHIxOiBzdHJpbmcsIHN0cjI6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBzdHIxLmluY2x1ZGVzKHN0cjIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBWZXJpZmljYSBzZSBzdHIxIGNvbWXDp2EgY29tIHN0cjIsIGlnbm9yYW5kbyBtYWnDunNjdWxhcyBlIG1pbsO6c2N1bGFzICovXHJcbiAgICBzdGF0aWMgc3RhcnRzV2l0aElnbm9yZUNhc2Uoc3RyMTogc3RyaW5nLCBzdHIyOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gc3RyMS50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoc3RyMi50b0xvd2VyQ2FzZSgpKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogVmVyaWZpY2Egc2Ugc3RyMSB0ZXJtaW5hIGNvbSBzdHIyLCBpZ25vcmFuZG8gbWFpw7pzY3VsYXMgZSBtaW7DunNjdWxhcyAqL1xyXG4gICAgc3RhdGljIGVuZHNXaXRoSWdub3JlQ2FzZShzdHIxOiBzdHJpbmcsIHN0cjI6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBzdHIxLnRvTG93ZXJDYXNlKCkuZW5kc1dpdGgoc3RyMi50b0xvd2VyQ2FzZSgpKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogSW52ZXJ0ZSBvIGNhc28gZGUgY2FkYSBsZXRyYSBuYSBzdHJpbmcgKi9cclxuICAgIHN0YXRpYyBzd2FwQ2FzZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgbGV0IHN3YXBwZWQgPSBcIlwiO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSBBR1JPX05VTUJFUlMuWkVSTzsgaSA8IHN0ci5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBjaGFyID0gc3RyW2ldO1xyXG4gICAgICAgICAgICBzd2FwcGVkICs9IGNoYXIgPT09IGNoYXIudG9VcHBlckNhc2UoKSA/IGNoYXIudG9Mb3dlckNhc2UoKSA6IGNoYXIudG9VcHBlckNhc2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHN3YXBwZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIENvbG9jYSBhIHByaW1laXJhIGxldHJhIGRhIHN0cmluZyBlbSBtYWnDunNjdWxvICovXHJcbiAgICBzdGF0aWMgY2FwaXRhbGl6ZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHN0ci5jaGFyQXQoQUdST19OVU1CRVJTLlpFUk8pLnRvVXBwZXJDYXNlKCkgKyBzdHIuc2xpY2UoMSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIENvbG9jYSBhIHByaW1laXJhIGxldHJhIGRhIHN0cmluZyBlbSBtaW7DunNjdWxvICovXHJcbiAgICBzdGF0aWMgdW5jYXBpdGFsaXplKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gc3RyLmNoYXJBdChBR1JPX05VTUJFUlMuWkVSTykudG9Mb3dlckNhc2UoKSArIHN0ci5zbGljZSgxKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQ29udGEgbyBuw7ptZXJvIGRlIG9jb3Jyw6puY2lhcyBkZSB1bWEgc3Vic3RyaW5nIGRlbnRybyBkZSB1bWEgc3RyaW5nICovXHJcbiAgICBzdGF0aWMgY291bnRNYXRjaGVzKHN0cjogc3RyaW5nLCBzdWJzdHJpbmc6IHN0cmluZyk6IG51bWJlciB7XHJcbiAgICAgICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKHN1YnN0cmluZywgXCJnXCIpO1xyXG4gICAgICAgIGNvbnN0IG1hdGNoZXMgPSBzdHIubWF0Y2gocmVnZXgpO1xyXG4gICAgICAgIHJldHVybiBtYXRjaGVzID8gbWF0Y2hlcy5sZW5ndGggOiBBR1JPX05VTUJFUlMuWkVSTztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlbW92ZSB1bWEgbcOhc2NhcmEgc2ltcGxlcyBkYSBzdHJpbmcgZm9ybmVjaWRhLk8gcGFkcsOjbyBkZSBtw6FzY2FyYXMgw6kgZGVmaW5pZG8gcGVsbyBlbnVtIEFncm9TdHJpbmdNYXNrcyBvdVxyXG4gICAgICogcG9kZSBzZXIgdW1hIHN0cmluZyBwZXJzb25hbGl6YWRhIG9uZGUgJzknIHJlcHJlc2VudGEgdW0gZMOtZ2l0byBhIHNlciBtYW50aWRvIGRhIHN0cmluZy5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIHJlbW92ZU1hc2sodmFsdWU6IHN0cmluZywgbWFzazogQWdyb1N0cmluZ01hc2tzIHwgc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAoIXZhbHVlIHx8ICFtYXNrKSByZXR1cm4gdmFsdWU7XHJcblxyXG4gICAgICAgIGNvbnN0IHZhbHVlQ2hhcnMgPSB2YWx1ZS50b1N0cmluZygpLnNwbGl0KFwiXCIpO1xyXG4gICAgICAgIGNvbnN0IG1hc2tDaGFycyA9IG1hc2suc3BsaXQoXCJcIik7XHJcbiAgICAgICAgbGV0IHVubWFza2VkVmFsdWUgPSBcIlwiO1xyXG5cclxuICAgICAgICBsZXQgaiA9IDA7XHJcbiAgICAgICAgZm9yIChjb25zdCBtYXNrQ2hhciBvZiBtYXNrQ2hhcnMpIHtcclxuICAgICAgICAgICAgaWYgKGogPj0gdmFsdWVDaGFycy5sZW5ndGgpIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgaWYgKG1hc2tDaGFyID09PSBcIjlcIikge1xyXG4gICAgICAgICAgICAgICAgLy8gcG9zacOnw6NvIGRlIGRhZG8gKG1hbnTDqW0pXHJcbiAgICAgICAgICAgICAgICB1bm1hc2tlZFZhbHVlICs9IHZhbHVlQ2hhcnNbal07XHJcbiAgICAgICAgICAgICAgICBqKys7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWVDaGFyc1tqXSA9PT0gbWFza0NoYXIpIHtcclxuICAgICAgICAgICAgICAgIC8vIHBvc2nDp8OjbyBkZSBjYXJhY3RlcmUgZml4byDigJQgcHVsYSBzZSBjb2luY2lkaXJcclxuICAgICAgICAgICAgICAgIGorKztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHVubWFza2VkVmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBcGxpY2EgdW1hIG3DoXNjYXJhIHNpbXBsZXMgw6Agc3RyaW5nIGZvcm5lY2lkYS5PIHBhZHLDo28gZGUgbcOhc2NhcmFzIMOpIGRlZmluaWRvIHBlbG8gZW51bSBBZ3JvU3RyaW5nTWFza3Mgb3VcclxuICAgICAqIHBvZGUgc2VyIHVtYSBzdHJpbmcgcGVyc29uYWxpemFkYSBvbmRlICc5JyByZXByZXNlbnRhIHVtIGTDrWdpdG8gYSBzZXIgc3Vic3RpdHXDrWRvIHBlbG8gY2FyYWN0ZXJlIGNvcnJlc3BvbmRlbnRlXHJcbiAgICAgKiBkYSBzdHJpbmcuXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBhcHBseU1hc2sodmFsdWU6IHN0cmluZywgbWFzazogQWdyb1N0cmluZ01hc2tzIHwgc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCB2YWx1ZUNoYXJzID0gQWdyb1N0cmluZ1V0aWxzLnJlbW92ZU1hc2sodmFsdWUsIG1hc2spLnRvU3RyaW5nKCkuc3BsaXQoXCJcIik7XHJcblxyXG4gICAgICAgIGNvbnN0IG1hc2tDaGFycyA9IG1hc2suc3BsaXQoXCJcIik7XHJcbiAgICAgICAgbGV0IG1hc2tlZFZhbHVlID0gXCJcIjtcclxuICAgICAgICBsZXQgaiA9IEFHUk9fTlVNQkVSUy5aRVJPO1xyXG4gICAgICAgIGZvciAoY29uc3QgbWFza0NoYXIgb2YgbWFza0NoYXJzKSB7XHJcbiAgICAgICAgICAgIGlmIChqID49IHZhbHVlQ2hhcnMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAobWFza0NoYXIgPT09IFwiOVwiKSB7XHJcbiAgICAgICAgICAgICAgICBtYXNrZWRWYWx1ZSArPSB2YWx1ZUNoYXJzW2pdO1xyXG4gICAgICAgICAgICAgICAgaiArPSBBR1JPX05VTUJFUlMuT05FOyAvLyBpbmNyZW1lbnQgZXh0cmFjdGVkIHBlciBTb25hciByZWNvbW1lbmRhdGlvblxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgbWFza2VkVmFsdWUgKz0gbWFza0NoYXI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG1hc2tlZFZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpc1ZhbGlkKHN0cjogTnVsbGFibGVTdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdHlwZW9mIHN0ciAhPT0gXCJ1bmRlZmluZWRcIiAmJiBzdHIgIT09IG51bGwgJiYgdGhpcy5pc05vdEVtcHR5KHN0cik7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGlzSW52YWxpZChzdHI6IE51bGxhYmxlU3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICFBZ3JvU3RyaW5nVXRpbHMuaXNWYWxpZChzdHIpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
465
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdyby1zdHJpbmctdXRpbHMuY2xhc3MuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbW1vbi9hZ3JvLXN0cmluZy11dGlscy5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBbUIsTUFBTSxVQUFVLENBQUM7QUFDekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRW5ELE9BQU8sRUFBRSxlQUFlLElBQUksV0FBVyxFQUFFLENBQUM7QUFJMUM7O0dBRUc7QUFDSDtJQUFBO0lBK2VBLENBQUM7SUFuYkcsb0RBQW9EO0lBQzdDLDZCQUFhLEdBQXBCLFVBQXFCLEdBQW1CO1FBQ3BDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDTixPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELE9BQU8sYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsMkRBQTJEO0lBQ3BELDBCQUFVLEdBQWpCLFVBQWtCLEdBQW1CO1FBQ2pDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDTixPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQscURBQXFEO0lBQzlDLDZCQUFhLEdBQXBCLFVBQXFCLEdBQW1CO1FBQ3BDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDTixPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsMkRBQTJEO0lBQ3BELDBCQUFVLEdBQWpCLFVBQWtCLEdBQW1CO1FBQ2pDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDTixPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELE9BQU8sSUFBSSxD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Uk9fTlVNQkVSUywgQWdyb1N0cmluZ01hc2tzIH0gZnJvbSBcIi4uL2VudW1zXCI7XHJcbmltcG9ydCB7IEFHUk9fUkVHRVggfSBmcm9tIFwiLi9hZ3JvLXJlZ2V4LmNvbnN0YW50XCI7XHJcblxyXG5leHBvcnQgeyBBZ3JvU3RyaW5nVXRpbHMgYXMgU3RyaW5nVXRpbHMgfTtcclxuXHJcbmV4cG9ydCB0eXBlIE51bGxhYmxlU3RyaW5nID0gc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcclxuXHJcbi8qKlxyXG4gKiBDbGFzc2UgdXRpbGl0w6FyaWEgcGFyYSBvcGVyYcOnw7VlcyBkZSBzdHJpbmcuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgQWdyb1N0cmluZ1V0aWxzIHtcclxuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IENOUEpfVFJBRElDSU9OQUxfUEVTT1NfMTogbnVtYmVyW10gPSBbXHJcbiAgICAgICAgQUdST19OVU1CRVJTLkZJVkUsXHJcbiAgICAgICAgQUdST19OVU1CRVJTLkZPVVIsXHJcbiAgICAgICAgQUdST19OVU1CRVJTLlRIUkVFLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5UV08sXHJcbiAgICAgICAgQUdST19OVU1CRVJTLk5JTkUsXHJcbiAgICAgICAgQUdST19OVU1CRVJTLkVJR0hULFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5TRVZFTixcclxuICAgICAgICBBR1JPX05VTUJFUlMuU0lYLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5GSVZFLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5GT1VSLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5USFJFRSxcclxuICAgICAgICBBR1JPX05VTUJFUlMuVFdPLFxyXG4gICAgXTtcclxuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IENOUEpfVFJBRElDSU9OQUxfUEVTT1NfMjogbnVtYmVyW10gPSBbXHJcbiAgICAgICAgQUdST19OVU1CRVJTLlNJWCxcclxuICAgICAgICBBR1JPX05VTUJFUlMuRklWRSxcclxuICAgICAgICBBR1JPX05VTUJFUlMuRk9VUixcclxuICAgICAgICBBR1JPX05VTUJFUlMuVEhSRUUsXHJcbiAgICAgICAgQUdST19OVU1CRVJTLlRXTyxcclxuICAgICAgICBBR1JPX05VTUJFUlMuTklORSxcclxuICAgICAgICBBR1JPX05VTUJFUlMuRUlHSFQsXHJcbiAgICAgICAgQUdST19OVU1CRVJTLlNFVkVOLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5TSVgsXHJcbiAgICAgICAgQUdST19OVU1CRVJTLkZJVkUsXHJcbiAgICAgICAgQUdST19OVU1CRVJTLkZPVVIsXHJcbiAgICAgICAgQUdST19OVU1CRVJTLlRIUkVFLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5UV08sXHJcbiAgICBdO1xyXG4gICAgLy8gUGVzb3MgdXRpbGl6YWRvcyBwYXJhIGPDoWxjdWxvIGRlIGTDrWdpdG9zIHZlcmlmaWNhZG9yZXMgZG8gQ05QSiBhbGZhbnVtw6lyaWNvICgyMDI2KVxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgQ05QSl9BTEZBTlVNRVJJQ09fUEVTT1NfMTogbnVtYmVyW10gPSBbXHJcbiAgICAgICAgQUdST19OVU1CRVJTLkZJVkUsXHJcbiAgICAgICAgQUdST19OVU1CRVJTLkZPVVIsXHJcbiAgICAgICAgQUdST19OVU1CRVJTLlRIUkVFLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5UV08sXHJcbiAgICAgICAgQUdST19OVU1CRVJTLk5JTkUsXHJcbiAgICAgICAgQUdST19OVU1CRVJTLkVJR0hULFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5TRVZFTixcclxuICAgICAgICBBR1JPX05VTUJFUlMuU0lYLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5GSVZFLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5GT1VSLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5USFJFRSxcclxuICAgICAgICBBR1JPX05VTUJFUlMuVFdPLFxyXG4gICAgXTtcclxuICAgIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IENOUEpfQUxGQU5VTUVSSUNPX1BFU09TXzI6IG51bWJlcltdID0gW1xyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5TSVgsXHJcbiAgICAgICAgQUdST19OVU1CRVJTLkZJVkUsXHJcbiAgICAgICAgQUdST19OVU1CRVJTLkZPVVIsXHJcbiAgICAgICAgQUdST19OVU1CRVJTLlRIUkVFLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5UV08sXHJcbiAgICAgICAgQUdST19OVU1CRVJTLk5JTkUsXHJcbiAgICAgICAgQUdST19OVU1CRVJTLkVJR0hULFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5TRVZFTixcclxuICAgICAgICBBR1JPX05VTUJFUlMuU0lYLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5GSVZFLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5GT1VSLFxyXG4gICAgICAgIEFHUk9fTlVNQkVSUy5USFJFRSxcclxuICAgICAgICBBR1JPX05VTUJFUlMuVFdPLFxyXG4gICAgXTtcclxuICAgIC8qKiBSZXRvcm5hIHRydWUgc2UgYSBzdHJpbmcgY29udMOpbSBhcGVuYXMgbGV0cmFzICovXHJcbiAgICBzdGF0aWMgaXNPbmx5TGV0dGVycyhzdHI6IE51bGxhYmxlU3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCFzdHIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gL15bQS1aYS16XSskLy50ZXN0KHN0cik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIFJldG9ybmEgdHJ1ZSBzZSBhIHN0cmluZyBjb250w6ltIHBlbG8gbWVub3MgdW1hIGxldHJhICovXHJcbiAgICBzdGF0aWMgaGFzTGV0dGVycyhzdHI6IE51bGxhYmxlU3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCFzdHIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gL1tBLVphLXpdLy50ZXN0KHN0cik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIFJldG9ybmEgdHJ1ZSBzZSBhIHN0cmluZyBjb250w6ltIGFwZW5hcyBuw7ptZXJvcyAqL1xyXG4gICAgc3RhdGljIGlzT25seU51bWJlcnMoc3RyOiBOdWxsYWJsZVN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghc3RyKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIC9eXFxkKyQvLnRlc3Qoc3RyKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogUmV0b3JuYSB0cnVlIHNlIGEgc3RyaW5nIGNvbnTDqW0gcGVsbyBtZW5vcyB1bSBuw7ptZXJvICovXHJcbiAgICBzdGF0aWMgaGFzTnVtYmVycyhzdHI6IE51bGxhYmxlU3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCFzdHIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gL1xcZC8udGVzdChzdHIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVmVyaWZpY2Egc2UgYSBzdHJpbmcgZXN0w6EgdmF6aWEuXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBpc0VtcHR5KHN0cjogTnVsbGFibGVTdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoc3RyICYmIEFncm9TdHJpbmdVdGlscy5pc1N0cmluZyhzdHIpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBzdHI/LnRyaW0oKT8ubGVuZ3RoID09PSBBR1JPX05VTUJFUlMuWkVSTztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWZXJpZmljYSBzZSBhIHN0cmluZyBuw6NvIGVzdMOhIHZhemlhLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgaXNOb3RFbXB0eShzdHI6IE51bGxhYmxlU3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKHN0ciAmJiBBZ3JvU3RyaW5nVXRpbHMuaXNTdHJpbmcoc3RyKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gIUFncm9TdHJpbmdVdGlscy5pc0VtcHR5KHN0cik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogVmVyaWZpY2Egc2UgYSBzdHJpbmcgw6kgbnVsYSwgaW5kZWZpbmlkYSBvdSBjb250w6ltIGFwZW5hcyBlc3Bhw6dvcyBlbSBicmFuY28gKi9cclxuICAgIHN0YXRpYyBpc0JsYW5rKHN0cjogTnVsbGFibGVTdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIXN0ciB8fCBBR1JPX1JFR0VYLm9ubHlCbGFua1NwYWNlcy50ZXN0KHN0cik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIFZlcmlmaWNhIHNlIGEgc3RyaW5nIG7Do28gw6kgbnVsYSwgaW5kZWZpbmlkYSBvdSBjb250w6ltIGFwZW5hcyBlc3Bhw6dvcyBlbSBicmFuY28gKi9cclxuICAgIHN0YXRpYyBpc05vdEJsYW5rKHN0cjogTnVsbGFibGVTdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIUFncm9TdHJpbmdVdGlscy5pc0JsYW5rKHN0cik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZW1vdmUgZXNwYcOnb3MgZW0gYnJhbmNvIGRvIGluw61jaW8gZSBkbyBmaW0gZGEgc3RyaW5nLlxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgdHJpbVRvTnVsbChzdHI6IE51bGxhYmxlU3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICAgICAgaWYgKCFzdHIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHRyaW1tZWQgPSBzdHIudHJpbSgpO1xyXG4gICAgICAgIHJldHVybiB0cmltbWVkID09PSBcIlwiID8gbnVsbCA6IHRyaW1tZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb21wYXJhIGR1YXMgc3RyaW5ncyBpZ25vcmFuZG8gZGlmZXJlbsOnYXMgZW50cmUgbWFpw7pzY3VsYXMgZSBtaW7DunNjdWxhcy5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGVxdWFsc0lnbm9yZUNhc2Uoc3RyMTogTnVsbGFibGVTdHJpbmcsIHN0cjI6IE51bGxhYmxlU3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHN0cjE/LnRvTG93ZXJDYXNlKCkgPT09IHN0cjI/LnRvTG93ZXJDYXNlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb21wYXJhIGR1YXMgc3RyaW5ncyBjb25zaWRlcmFuZG8gZGlmZXJlbsOnYXMgZW50cmUgbWFpw7pzY3VsYXMgZSBtaW7DunNjdWxhcy5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIGVxdWFscyhzdHIxOiBOdWxsYWJsZVN0cmluZywgc3RyMjogTnVsbGFibGVTdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gc3RyMSA9PT0gc3RyMjtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgcmV2ZXJzZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHN0ci5zcGxpdChcIlwiKS5yZXZlcnNlKCkuam9pbihcIlwiKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgaXNFbWFpbChzdHI6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBBR1JPX1JFR0VYLmlzRW1haWwudGVzdChzdHIpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpc1Bvc2l0aXZlSW50ZWdlcihzdHI6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBBR1JPX1JFR0VYLnBvc2l0aXZlSW50ZWdlci50ZXN0KHN0cik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIFJldG9ybmEgdHJ1ZSBzZSBhIHN0cmluZyDDqSB1bWEgc3RyaW5nIHbDoWxpZGEgKG7Do28gbnVsbCwgbsOjbyB1bmRlZmluZWQsIG7Do28gdmF6aWEpICovXHJcbiAgICBzdGF0aWMgaXNTdHJpbmcodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgJiYgdmFsdWUudHJpbSgpLmxlbmd0aCA+IEFHUk9fTlVNQkVSUy5aRVJPO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpc1Bvc2l0aXZlRGVjaW1hbChzdHI6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBBR1JPX1JFR0VYLnBvc2l0aXZlRGVjaW1hbC50ZXN0KHN0cik7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGlzWmlwQ29kZShzdHI6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBBR1JPX1JFR0VYLnppcENvZGUudGVzdChzdHIpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpc1VVSUQoc3RyOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gQUdST19SRUdFWC5pc1VVSUQudGVzdChzdHIpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpc051bWJlcihzdHI6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBbQUdST19SRUdFWC5pc051bWJlci50ZXN0KHN0ciksIEFHUk9fUkVHRVguaXNEZWNpbWFsLnRlc3Qoc3RyKV0uaW5jbHVkZXModHJ1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIHZhbGlkYXRlQ1BGKGNwZjogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY3BmID0gY3BmLnJlcGxhY2UoL1xcRC9nLCBcIlwiKTtcclxuXHJcbiAgICAgICAgaWYgKGNwZi5sZW5ndGggIT09IEFHUk9fTlVNQkVSUy5FTEVWRU4gfHwgL14oXFxkKVxcMSskLy50ZXN0KGNwZikpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgY2FsY1ZlcmlmaWVyID0gKGNwZjogc3RyaW5nLCBsZW5ndGg6IG51bWJlcik6IG51bWJlciA9PiB7XHJcbiAgICAgICAgICAgIGxldCBzdW0gPSBBR1JPX05VTUJFUlMuWkVSTztcclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IEFHUk9fTlVNQkVSUy5aRVJPOyBpIDwgbGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHN1bSArPSBwYXJzZUludChjcGZbaV0sIEFHUk9fTlVNQkVSUy5URU4pICogKGxlbmd0aCArIEFHUk9fTlVNQkVSUy5PTkUgLSBpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBzdW0gJSBBR1JPX05VTUJFUlMuRUxFVkVOO1xyXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0IDwgQUdST19OVU1CRVJTLlRXTyA/IEFHUk9fTlVNQkVSUy5aRVJPIDogQUdST19OVU1CRVJTLkVMRVZFTiAtIHJlc3VsdDtcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBjb25zdCBkaWdpdDEgPSBjYWxjVmVyaWZpZXIoY3BmLCBBR1JPX05VTUJFUlMuTklORSk7XHJcbiAgICAgICAgY29uc3QgZGlnaXQyID0gY2FsY1ZlcmlmaWVyKGNwZiwgQUdST19OVU1CRVJTLlRFTik7XHJcblxyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIGRpZ2l0MSA9PT0gcGFyc2VJbnQoY3BmW0FHUk9fTlVNQkVSUy5OSU5FXSwgQUdST19OVU1CRVJTLlRFTikgJiYgZGlnaXQyID09PSBwYXJzZUludChjcGZbQUdST19OVU1CRVJTLlRFTl0sIEFHUk9fTlVNQkVSUy5URU4pXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIERldGVjdGEgYXV0b21hdGljYW1lbnRlIHNlIMOpIENOUEogYW50aWdvIG91IG5vdm8gZm9ybWF0by5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIHZhbGlkYXRlQ05QSihjbnBqOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIWNucGopIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjbnBqID0gY25wai50cmltKCk7XHJcblxyXG4gICAgICAgIC8vIFNlIGNvbnTDqW0gbGV0cmFzIOKGkiB2YWxpZGEgZm9ybWF0byBhbGZhbnVtw6lyaWNvXHJcbiAgICAgICAgaWYgKEFncm9TdHJpbmdVdGlscy5oYXNMZXR0ZXJzKGNucGopKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBBZ3JvU3RyaW5nVXRpbHMudmFsaWRhdGVDTlBKQWxmYW51bWVyaWNvKGNucGopO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gQ2FzbyBjb250csOhcmlvLCB2YWxpZGEgY29tbyBDTlBKIHRyYWRpY2lvbmFsXHJcbiAgICAgICAgcmV0dXJuIEFncm9TdHJpbmdVdGlscy52YWxpZGF0ZUNOUEpBbnRpZ28oY25waik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBWYWxpZGEgbyBDTlBKIHRyYWRpY2lvbmFsIChzb21lbnRlIG7Dum1lcm9zKVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHN0YXRpYyB2YWxpZGF0ZUNOUEpBbnRpZ28oY25wajogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY25waiA9IGNucGoucmVwbGFjZSgvXFxEL2csIFwiXCIpO1xyXG5cclxuICAgICAgICBpZiAoIUFncm9TdHJpbmdVdGlscy5pc09ubHlOdW1iZXJzKGNucGopKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGNucGoubGVuZ3RoICE9PSBBR1JPX05VTUJFUlMuRk9VUlRFRU4pIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoL14oXFxkKVxcMXsxM30kLy50ZXN0KGNucGopKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBzb21hID0gQUdST19OVU1CRVJTLlpFUk87XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IEFHUk9fTlVNQkVSUy5aRVJPOyBpIDwgQUdST19OVU1CRVJTLlRXRUxWRTsgaSsrKSB7XHJcbiAgICAgICAgICAgIHNvbWEgKz0gcGFyc2VJbnQoY25wai5jaGFyQXQoaSksIEFHUk9fTlVNQkVSUy5URU4pICogQWdyb1N0cmluZ1V0aWxzLkNOUEpfVFJBRElDSU9OQUxfUEVTT1NfMVtpXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IHJlc3RvID0gc29tYSAlIEFHUk9fTlVNQkVSUy5FTEVWRU47XHJcbiAgICAgICAgY29uc3QgZGlnaXRvMSA9IHJlc3RvIDwgQUdST19OVU1CRVJTLlRXTyA/IEFHUk9fTlVNQkVSUy5aRVJPIDogQUdST19OVU1CRVJTLkVMRVZFTiAtIHJlc3RvO1xyXG5cclxuICAgICAgICBzb21hID0gQUdST19OVU1CRVJTLlpFUk87XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IEFHUk9fTlVNQkVSUy5aRVJPOyBpIDwgQUdST19OVU1CRVJTLlRISVJURUVOOyBpKyspIHtcclxuICAgICAgICAgICAgc29tYSArPSBwYXJzZUludChjbnBqLmNoYXJBdChpKSwgQUdST19OVU1CRVJTLlRFTikgKiBBZ3JvU3RyaW5nVXRpbHMuQ05QSl9UUkFESUNJT05BTF9QRVNPU18yW2ldO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXN0byA9IHNvbWEgJSBBR1JPX05VTUJFUlMuRUxFVkVOO1xyXG4gICAgICAgIGNvbnN0IGRpZ2l0bzIgPSByZXN0byA8IEFHUk9fTlVNQkVSUy5UV08gPyBBR1JPX05VTUJFUlMuWkVSTyA6IEFHUk9fTlVNQkVSUy5FTEVWRU4gLSByZXN0bztcclxuXHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgcGFyc2VJbnQoY25wai5jaGFyQXQoQUdST19OVU1CRVJTLlRXRUxWRSksIEFHUk9fTlVNQkVSUy5URU4pID09PSBkaWdpdG8xICYmXHJcbiAgICAgICAgICAgIHBhcnNlSW50KGNucGouY2hhckF0KEFHUk9fTlVNQkVSUy5USElSVEVFTiksIEFHUk9fTlVNQkVSUy5URU4pID09PSBkaWdpdG8yXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFZhbGlkYSBvIENOUEogZW0gZm9ybWF0byBhbGZhbnVtw6lyaWNvIChwYWRyw6NvIDIwMjYpXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgc3RhdGljIHZhbGlkYXRlQ05QSkFsZmFudW1lcmljbyhjbnBqOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIUFncm9TdHJpbmdVdGlscy5pc1N0cmluZyhjbnBqKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBSZW1vdmUgY2FyYWN0ZXJlcyBlc3BlY2lhaXMgKHBvbnRvcywgYmFycmEsIHRyYcOnbywgZXNwYcOnb3MpXHJcbiAgICAgICAgY29uc3QgY2xlYW4gPSBjbnBqLnJlcGxhY2UoL1teQS1aYS16MC05XS9nLCBcIlwiKS50b1VwcGVyQ2FzZSgpO1xyXG5cclxuICAgICAgICAvLyBPIENOUEogZGV2ZSB0ZXIgZXhhdGFtZW50ZSAxNCBwb3Npw6fDtWVzXHJcbiAgICAgICAgaWYgKGNsZWFuLmxlbmd0aCAhPT0gQUdST19OVU1CRVJTLkZPVVJURUVOKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIFZlcmlmaWNhIHNlIGjDoSBwZWxvIG1lbm9zIHVtYSBsZXRyYSBlIHVtIG7Dum1lcm9cclxuICAgICAgICBpZiAoIUFncm9TdHJpbmdVdGlscy5oYXNMZXR0ZXJzKGNsZWFuKSB8fCAhQWdyb1N0cmluZ1V0aWxzLmhhc051bWJlcnMoY2xlYW4pKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIENhbGN1bGEgbyBwcmltZWlybyBkw61naXRvIHZlcmlmaWNhZG9yXHJcbiAgICAgICAgY29uc3QgcGVzb3MxID0gQWdyb1N0cmluZ1V0aWxzLkNOUEpfQUxGQU5VTUVSSUNPX1BFU09TXzE7XHJcbiAgICAgICAgY29uc3QgcGVzb3MyID0gQWdyb1N0cmluZ1V0aWxzLkNOUEpfQUxGQU5VTUVSSUNPX1BFU09TXzI7XHJcblxyXG4gICAgICAgIC8vIFBlZ2Egb3MgMTIgcHJpbWVpcm9zIGNhcmFjdGVyZXNcclxuICAgICAgICBjb25zdCBiYXNlID0gY2xlYW4uc3Vic3RyaW5nKEFHUk9fTlVNQkVSUy5aRVJPLCBBR1JPX05VTUJFUlMuVFdFTFZFKTtcclxuICAgICAgICBjb25zdCBkdkluZm9ybWFkbyA9IGNsZWFuLnN1YnN0cmluZyhBR1JPX05VTUJFUlMuVFdFTFZFLCBBR1JPX05VTUJFUlMuRk9VUlRFRU4pO1xyXG5cclxuICAgICAgICBjb25zdCBjYWxjdWxhRFYgPSAoc3RyOiBzdHJpbmcsIHBlc29zOiBudW1iZXJbXSk6IG51bWJlciA9PiB7XHJcbiAgICAgICAgICAgIGxldCBzb21hID0gQUdST19OVU1CRVJTLlpFUk87XHJcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSBBR1JPX05VTUJFUlMuWkVSTzsgaSA8IHBlc29zLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBjaGFyID0gc3RyLmNoYXJBdChpKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGFzY2lpVmFsdWUgPSBjaGFyLmNoYXJDb2RlQXQoMCkgLSBBR1JPX05VTUJFUlMuRk9SVFlfRUlHSFQ7IC8vIGNvbmZvcm1lIGRvY3VtZW50byAoNDggPSAnMCcpXHJcbiAgICAgICAgICAgICAgICBzb21hICs9IGFzY2lpVmFsdWUgKiBwZXNvc1tpXTsgLy8gYXNjaWlWYWx1ZSBqw6EgY2FsY3VsYWRvIGEgcGFydGlyIGRvIGVudW0gRk9SVFlfRUlHSFRcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCByZXN0byA9IHNvbWEgJSBBR1JPX05VTUJFUlMuRUxFVkVOO1xyXG4gICAgICAgICAgICBjb25zdCBkaWdpdG8gPSBBR1JPX05VTUJFUlMuRUxFVkVOIC0gcmVzdG87XHJcbiAgICAgICAgICAgIHJldHVybiBkaWdpdG8gPiBBR1JPX05VTUJFUlMuTklORSA/IEFHUk9fTlVNQkVSUy5aRVJPIDogZGlnaXRvOyAvLyBzZWd1ZSBtZXNtYSByZWdyYSBkbyBDTlBKIHRyYWRpY2lvbmFsXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgY29uc3QgZHYxID0gY2FsY3VsYURWKGJhc2UsIHBlc29zMSk7XHJcbiAgICAgICAgY29uc3QgZHYyID0gY2FsY3VsYURWKGJhc2UgKyBkdjEudG9TdHJpbmcoKSwgcGVzb3MyKTtcclxuXHJcbiAgICAgICAgY29uc3QgZHZDYWxjdWxhZG8gPSBgJHtkdjF9JHtkdjJ9YDtcclxuXHJcbiAgICAgICAgcmV0dXJuIGR2Q2FsY3VsYWRvID09PSBkdkluZm9ybWFkbztcclxuICAgIH1cclxuXHJcbiAgICAvKiogQ2FsY3VsYSBhIGRpZmVyZW7Dp2EgZW50cmUgZHVhcyBzdHJpbmdzIGVtIHRlcm1vcyBkZSBuw7ptZXJvIGRlIGNhcmFjdGVyZXMgZGlmZXJlbnRlcyAqL1xyXG4gICAgc3RhdGljIGRpZmZlcmVuY2Uoc3RyMTogc3RyaW5nLCBzdHIyOiBzdHJpbmcpOiBudW1iZXIge1xyXG4gICAgICAgIGNvbnN0IGxlbjEgPSBzdHIxLmxlbmd0aDtcclxuICAgICAgICBjb25zdCBsZW4yID0gc3RyMi5sZW5ndGg7XHJcbiAgICAgICAgbGV0IGRpZmYgPSBNYXRoLmFicyhsZW4xIC0gbGVuMik7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IEFHUk9fTlVNQkVSUy5aRVJPOyBpIDwgTWF0aC5taW4obGVuMSwgbGVuMik7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoc3RyMVtpXSAhPT0gc3RyMltpXSkge1xyXG4gICAgICAgICAgICAgICAgZGlmZisrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBkaWZmO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBWZXJpZmljYSBzZSBzdHIxIHRlcm1pbmEgY29tIHN0cjIgKi9cclxuICAgIHN0YXRpYyBlbmRzV2l0aChzdHIxOiBzdHJpbmcsIHN0cjI6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBzdHIxLmVuZHNXaXRoKHN0cjIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBWZXJpZmljYSBzZSBzdHIxIGNvbWXDp2EgY29tIHN0cjIgKi9cclxuICAgIHN0YXRpYyBzdGFydHNXaXRoKHN0cjE6IHN0cmluZywgc3RyMjogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHN0cjEuc3RhcnRzV2l0aChzdHIyKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogVmVyaWZpY2Egc2Ugc3RyMSBjb250w6ltIHN0cjIgKi9cclxuICAgIHN0YXRpYyBjb250YWlucyhzdHIxOiBzdHJpbmcsIHN0cjI6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBzdHIxLmluY2x1ZGVzKHN0cjIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBWZXJpZmljYSBzZSBzdHIxIGNvbWXDp2EgY29tIHN0cjIsIGlnbm9yYW5kbyBtYWnDunNjdWxhcyBlIG1pbsO6c2N1bGFzICovXHJcbiAgICBzdGF0aWMgc3RhcnRzV2l0aElnbm9yZUNhc2Uoc3RyMTogc3RyaW5nLCBzdHIyOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gc3RyMS50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoc3RyMi50b0xvd2VyQ2FzZSgpKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogVmVyaWZpY2Egc2Ugc3RyMSB0ZXJtaW5hIGNvbSBzdHIyLCBpZ25vcmFuZG8gbWFpw7pzY3VsYXMgZSBtaW7DunNjdWxhcyAqL1xyXG4gICAgc3RhdGljIGVuZHNXaXRoSWdub3JlQ2FzZShzdHIxOiBzdHJpbmcsIHN0cjI6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBzdHIxLnRvTG93ZXJDYXNlKCkuZW5kc1dpdGgoc3RyMi50b0xvd2VyQ2FzZSgpKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogSW52ZXJ0ZSBvIGNhc28gZGUgY2FkYSBsZXRyYSBuYSBzdHJpbmcgKi9cclxuICAgIHN0YXRpYyBzd2FwQ2FzZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgbGV0IHN3YXBwZWQgPSBcIlwiO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSBBR1JPX05VTUJFUlMuWkVSTzsgaSA8IHN0ci5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBjaGFyID0gc3RyW2ldO1xyXG4gICAgICAgICAgICBzd2FwcGVkICs9IGNoYXIgPT09IGNoYXIudG9VcHBlckNhc2UoKSA/IGNoYXIudG9Mb3dlckNhc2UoKSA6IGNoYXIudG9VcHBlckNhc2UoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHN3YXBwZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIENvbG9jYSBhIHByaW1laXJhIGxldHJhIGRhIHN0cmluZyBlbSBtYWnDunNjdWxvICovXHJcbiAgICBzdGF0aWMgY2FwaXRhbGl6ZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHN0ci5jaGFyQXQoQUdST19OVU1CRVJTLlpFUk8pLnRvVXBwZXJDYXNlKCkgKyBzdHIuc2xpY2UoMSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIENvbG9jYSBhIHByaW1laXJhIGxldHJhIGRhIHN0cmluZyBlbSBtaW7DunNjdWxvICovXHJcbiAgICBzdGF0aWMgdW5jYXBpdGFsaXplKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gc3RyLmNoYXJBdChBR1JPX05VTUJFUlMuWkVSTykudG9Mb3dlckNhc2UoKSArIHN0ci5zbGljZSgxKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQ29udGEgbyBuw7ptZXJvIGRlIG9jb3Jyw6puY2lhcyBkZSB1bWEgc3Vic3RyaW5nIGRlbnRybyBkZSB1bWEgc3RyaW5nICovXHJcbiAgICBzdGF0aWMgY291bnRNYXRjaGVzKHN0cjogc3RyaW5nLCBzdWJzdHJpbmc6IHN0cmluZyk6IG51bWJlciB7XHJcbiAgICAgICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKHN1YnN0cmluZywgXCJnXCIpO1xyXG4gICAgICAgIGNvbnN0IG1hdGNoZXMgPSBzdHIubWF0Y2gocmVnZXgpO1xyXG4gICAgICAgIHJldHVybiBtYXRjaGVzID8gbWF0Y2hlcy5sZW5ndGggOiBBR1JPX05VTUJFUlMuWkVSTztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlbW92ZSB1bWEgbcOhc2NhcmEgc2ltcGxlcyBkYSBzdHJpbmcgZm9ybmVjaWRhLk8gcGFkcsOjbyBkZSBtw6FzY2FyYXMgw6kgZGVmaW5pZG8gcGVsbyBlbnVtIEFncm9TdHJpbmdNYXNrcyBvdVxyXG4gICAgICogcG9kZSBzZXIgdW1hIHN0cmluZyBwZXJzb25hbGl6YWRhIG9uZGUgJzknIHJlcHJlc2VudGEgdW0gZMOtZ2l0byBhIHNlciBtYW50aWRvIGRhIHN0cmluZy5cclxuICAgICAqL1xyXG4gICAgc3RhdGljIHJlbW92ZU1hc2sodmFsdWU6IHN0cmluZywgbWFzazogQWdyb1N0cmluZ01hc2tzIHwgc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAoIXZhbHVlIHx8ICFtYXNrKSByZXR1cm4gdmFsdWU7XHJcblxyXG4gICAgICAgIGNvbnN0IHZhbHVlQ2hhcnMgPSB2YWx1ZS50b1N0cmluZygpLnNwbGl0KFwiXCIpO1xyXG4gICAgICAgIGNvbnN0IG1hc2tDaGFycyA9IG1hc2suc3BsaXQoXCJcIik7XHJcbiAgICAgICAgbGV0IHVubWFza2VkVmFsdWUgPSBcIlwiO1xyXG4gICAgICAgIGxldCBqID0gMDtcclxuXHJcbiAgICAgICAgY29uc3QgaXNEaWdpdCA9IChjOiBzdHJpbmcpID0+IC9cXGQvLnRlc3QoYyk7XHJcbiAgICAgICAgY29uc3QgaXNBbHBoYSA9IChjOiBzdHJpbmcpID0+IC9bQS1aYS16XS8udGVzdChjKTtcclxuICAgICAgICBjb25zdCBpc0FsbnVtID0gKGM6IHN0cmluZykgPT4gL1tBLVphLXowLTldLy50ZXN0KGMpO1xyXG5cclxuICAgICAgICBmb3IgKGNvbnN0IG1hc2tDaGFyIG9mIG1hc2tDaGFycykge1xyXG4gICAgICAgICAgICBpZiAoaiA+PSB2YWx1ZUNoYXJzLmxlbmd0aCkgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50ID0gdmFsdWVDaGFyc1tqXTtcclxuXHJcbiAgICAgICAgICAgIC8vIFBsYWNlaG9sZGVyIHBhcmEgZMOtZ2l0byAnOSdcclxuICAgICAgICAgICAgaWYgKG1hc2tDaGFyID09PSBcIjlcIikge1xyXG4gICAgICAgICAgICAgICAgLy8gcHJvY3VyYSBwcsOzeGltbyBkw61naXRvIGEgcGFydGlyIGRlIGpcclxuICAgICAgICAgICAgICAgIGxldCBrID0gajtcclxuICAgICAgICAgICAgICAgIHdoaWxlIChrIDwgdmFsdWVDaGFycy5sZW5ndGggJiYgIWlzRGlnaXQodmFsdWVDaGFyc1trXSkpIGsrKztcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoayA8IHZhbHVlQ2hhcnMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gZW5jb250cm91IGTDrWdpdG86IGNvbnNvbWVcclxuICAgICAgICAgICAgICAgICAgICB1bm1hc2tlZFZhbHVlICs9IHZhbHVlQ2hhcnNba107XHJcbiAgICAgICAgICAgICAgICAgICAgaiA9IGsgKyAxO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBuw6NvIGjDoSBkw61naXRvIGZ1dHVybzogY2FwdHVyYSBvIGNhcmFjdGVyZSBhdHVhbCBjb21vIGRhZG9cclxuICAgICAgICAgICAgICAgICAgICB1bm1hc2tlZFZhbHVlICs9IHZhbHVlQ2hhcnNbal07XHJcbiAgICAgICAgICAgICAgICAgICAgaisrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIFBsYWNlaG9sZGVyIHBhcmEgbGV0cmEgJ0EnXHJcbiAgICAgICAgICAgIGlmIChtYXNrQ2hhciA9PT0gXCJBXCIpIHtcclxuICAgICAgICAgICAgICAgIC8vIHByb2N1cmEgcHLDs3hpbWEgbGV0cmEgYSBwYXJ0aXIgZGUgalxyXG4gICAgICAgICAgICAgICAgbGV0IGsgPSBqO1xyXG4gICAgICAgICAgICAgICAgd2hpbGUgKGsgPCB2YWx1ZUNoYXJzLmxlbmd0aCAmJiAhaXNBbHBoYSh2YWx1ZUNoYXJzW2tdKSkgaysrO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChrIDwgdmFsdWVDaGFycy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICB1bm1hc2tlZFZhbHVlICs9IHZhbHVlQ2hhcnNba107XHJcbiAgICAgICAgICAgICAgICAgICAgaiA9IGsgKyAxO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB1bm1hc2tlZFZhbHVlICs9IHZhbHVlQ2hhcnNbal07XHJcbiAgICAgICAgICAgICAgICAgICAgaisrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIG1hc2tDaGFyIMOpIHVtIHNlcGFyYWRvciBsaXRlcmFsIG9wY2lvbmFsLlxyXG4gICAgICAgICAgICBpZiAoY3VycmVudCA9PT0gbWFza0NoYXIpIHtcclxuICAgICAgICAgICAgICAgIC8vIHNlcGFyYWRvciBwcmVzZW50ZSBubyB2YWxvcjogY29uc29tZS1vXHJcbiAgICAgICAgICAgICAgICBqKys7XHJcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gc2VwYXJhZG9yIGF1c2VudGU6XHJcbiAgICAgICAgICAgIC8vIC0gc2UgbyBjYXJhY3RlcmUgYXR1YWwgZm9yIGFsZmFudW3DqXJpY28sIHRyYXRhIGNvbW8gZGFkbyBlIGNhcHR1cmE7XHJcbiAgICAgICAgICAgIC8vIC0gc2UgbsOjbyBmb3IgYWxmYW51bcOpcmljbyAocG9udHVhw6fDo28pLCBpZ25vcmEg4oCUIG7Do28gYXZhbsOnYSBqLCBwZXJtaXRlXHJcbiAgICAgICAgICAgIC8vICAgcXVlIG8gcHLDs3hpbW8gcGxhY2Vob2xkZXIgcHVsZS9jb25zdW1hIG91IHByb2N1cmUgcGVsbyB0aXBvIGVzcGVyYWRvLlxyXG4gICAgICAgICAgICBpZiAoaXNBbG51bShjdXJyZW50KSkge1xyXG4gICAgICAgICAgICAgICAgdW5tYXNrZWRWYWx1ZSArPSBjdXJyZW50O1xyXG4gICAgICAgICAgICAgICAgaisrO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gaWdub3JhIGNhcmFjdGVyZSBuw6NvLWFsZmFudW3DqXJpY28gbm8gbHVnYXIgZG8gc2VwYXJhZG9yIChuw6NvIGNvbnNvbWUpXHJcbiAgICAgICAgICAgICAgICAvLyBhc3NpbSBvIHByw7N4aW1vIHBsYWNlaG9sZGVyIHBvZGVyw6EgcHJvY3VyYXIgbyBjYXJhY3RlcmUgZG8gdGlwbyBlc3BlcmFkb1xyXG4gICAgICAgICAgICAgICAgLy8gc2VtIHBlcmRlciBhIHBvc2nDp8OjbyBhdHVhbC5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHVubWFza2VkVmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBcGxpY2EgdW1hIG3DoXNjYXJhIHNpbXBsZXMgw6Agc3RyaW5nIGZvcm5lY2lkYS5PIHBhZHLDo28gZGUgbcOhc2NhcmFzIMOpIGRlZmluaWRvIHBlbG8gZW51bSBBZ3JvU3RyaW5nTWFza3Mgb3VcclxuICAgICAqIHBvZGUgc2VyIHVtYSBzdHJpbmcgcGVyc29uYWxpemFkYSBvbmRlICc5JyByZXByZXNlbnRhIHVtIGTDrWdpdG8gYSBzZXIgc3Vic3RpdHXDrWRvIHBlbG8gY2FyYWN0ZXJlIGNvcnJlc3BvbmRlbnRlXHJcbiAgICAgKiBkYSBzdHJpbmcuXHJcbiAgICAgKi9cclxuICAgIHN0YXRpYyBhcHBseU1hc2sodmFsdWU6IHN0cmluZywgbWFzazogQWdyb1N0cmluZ01hc2tzIHwgc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCB2YWx1ZUNoYXJzID0gQWdyb1N0cmluZ1V0aWxzLnJlbW92ZU1hc2sodmFsdWUsIG1hc2spLnRvU3RyaW5nKCkuc3BsaXQoXCJcIik7XHJcblxyXG4gICAgICAgIGNvbnN0IG1hc2tDaGFycyA9IG1hc2suc3BsaXQoXCJcIik7XHJcbiAgICAgICAgbGV0IG1hc2tlZFZhbHVlID0gXCJcIjtcclxuICAgICAgICBsZXQgaiA9IEFHUk9fTlVNQkVSUy5aRVJPO1xyXG4gICAgICAgIGZvciAoY29uc3QgbWFza0NoYXIgb2YgbWFza0NoYXJzKSB7XHJcbiAgICAgICAgICAgIGlmIChqID49IHZhbHVlQ2hhcnMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAobWFza0NoYXIgPT09IFwiOVwiKSB7XHJcbiAgICAgICAgICAgICAgICBtYXNrZWRWYWx1ZSArPSB2YWx1ZUNoYXJzW2pdO1xyXG4gICAgICAgICAgICAgICAgaiArPSBBR1JPX05VTUJFUlMuT05FOyAvLyBpbmNyZW1lbnQgZXh0cmFjdGVkIHBlciBTb25hciByZWNvbW1lbmRhdGlvblxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgbWFza2VkVmFsdWUgKz0gbWFza0NoYXI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG1hc2tlZFZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpc1ZhbGlkKHN0cjogTnVsbGFibGVTdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdHlwZW9mIHN0ciAhPT0gXCJ1bmRlZmluZWRcIiAmJiBzdHIgIT09IG51bGwgJiYgdGhpcy5pc05vdEVtcHR5KHN0cik7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGlzSW52YWxpZChzdHI6IE51bGxhYmxlU3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICFBZ3JvU3RyaW5nVXRpbHMuaXNWYWxpZChzdHIpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpc0lTT0RhdGUodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBBR1JPX1JFR0VYLmlzSVNPRGF0ZS50ZXN0KHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgaXNJU09UaW1lKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gQUdST19SRUdFWC5pc0lTT1RpbWUudGVzdCh2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGlzSVNPRGF0ZXRpbWUodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBBR1JPX1JFR0VYLmlzSVNPRGF0ZVRpbWUudGVzdCh2YWx1ZSk7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -15,4 +15,4 @@ var CnpjCpfPipeModule = /** @class */ (function () {
|
|
|
15
15
|
return CnpjCpfPipeModule;
|
|
16
16
|
}());
|
|
17
17
|
export { CnpjCpfPipeModule };
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY25wai1jcGYucGlwZS5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbInBpcGUvY25wai1jcGYvY25wai1jcGYucGlwZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQU85QztJQUFBO0lBQWdDLENBQUM7SUFBcEIsaUJBQWlCO1FBTDdCLFFBQVEsQ0FBQztZQUNOLFlBQVksRUFBRSxDQUFDLFdBQVcsQ0FBQztZQUMzQixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7WUFDdkIsT0FBTyxFQUFFLENBQUMsV0FBVyxDQUFDO1NBQ3pCLENBQUM7T0FDVyxpQkFBaUIsQ0FBRztJQUFELHdCQUFDO0NBQUEsQUFBakMsSUFBaUM7U0FBcEIsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IENucGpDcGZQaXBlIH0gZnJvbSBcIi4vY25wai1jcGYucGlwZVwiO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGRlY2xhcmF0aW9uczogW0NucGpDcGZQaXBlXSxcclxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxyXG4gICAgZXhwb3J0czogW0NucGpDcGZQaXBlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENucGpDcGZQaXBlTW9kdWxlIHt9XHJcbiJdfQ==
|
package/esm5/pipe/index.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
export * from "./cnpj-cpf/index";
|
|
2
|
+
export * from "./stringifier/index";
|
|
3
|
+
export * from "./telephone/index";
|
|
2
4
|
export { LibTranslatePipe } from "./lib-translate.pipe";
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbInBpcGUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9jbnBqLWNwZi9pbmRleFwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi9zdHJpbmdpZmllci9pbmRleFwiO1xyXG5leHBvcnQgKiBmcm9tIFwiLi90ZWxlcGhvbmUvaW5kZXhcIjtcclxuZXhwb3J0IHsgTGliVHJhbnNsYXRlUGlwZSB9IGZyb20gXCIuL2xpYi10cmFuc2xhdGUucGlwZVwiO1xyXG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { StringifierPipe } from "./stringifier.pipe";
|
|
2
|
+
export { StringifierPipeModule } from "./stringifier.pipe.module";
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbInBpcGUvc3RyaW5naWZpZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgU3RyaW5naWZpZXJQaXBlIH0gZnJvbSBcIi4vc3RyaW5naWZpZXIucGlwZVwiO1xyXG5leHBvcnQgeyBTdHJpbmdpZmllclBpcGVNb2R1bGUgfSBmcm9tIFwiLi9zdHJpbmdpZmllci5waXBlLm1vZHVsZVwiO1xyXG4iXX0=
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Pipe } from "@angular/core";
|
|
3
|
+
import { AgroObjectStringifier } from "../../common/agro-object-stringifier.class";
|
|
4
|
+
var StringifierPipe = /** @class */ (function () {
|
|
5
|
+
function StringifierPipe() {
|
|
6
|
+
}
|
|
7
|
+
StringifierPipe.prototype.transform = function (value, separator, paths, pipes) {
|
|
8
|
+
return AgroObjectStringifier.formatObject(separator, paths, value, pipes);
|
|
9
|
+
};
|
|
10
|
+
StringifierPipe = __decorate([
|
|
11
|
+
Pipe({ name: "stringifier" })
|
|
12
|
+
], StringifierPipe);
|
|
13
|
+
return StringifierPipe;
|
|
14
|
+
}());
|
|
15
|
+
export { StringifierPipe };
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5naWZpZXIucGlwZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3ItYWdyb25lZ29jaW8vYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsicGlwZS9zdHJpbmdpZmllci9zdHJpbmdpZmllci5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUscUJBQXFCLEVBQVksTUFBTSw0Q0FBNEMsQ0FBQztBQUs3RjtJQUFBO0lBSUEsQ0FBQztJQUhHLG1DQUFTLEdBQVQsVUFBVSxLQUFnQixFQUFFLFNBQWlCLEVBQUUsS0FBZSxFQUFFLEtBQWdCO1FBQzVFLE9BQU8scUJBQXFCLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFIUSxlQUFlO1FBRDNCLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsQ0FBQztPQUNqQixlQUFlLENBSTNCO0lBQUQsc0JBQUM7Q0FBQSxBQUpELElBSUM7U0FKWSxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEFncm9PYmplY3RTdHJpbmdpZmllciwgVXNlUGlwZXMgfSBmcm9tIFwiLi4vLi4vY29tbW9uL2Fncm8tb2JqZWN0LXN0cmluZ2lmaWVyLmNsYXNzXCI7XHJcblxyXG50eXBlIEFueU9iamVjdCA9IHsgW2tleTogc3RyaW5nXTogYW55IH07XHJcblxyXG5AUGlwZSh7IG5hbWU6IFwic3RyaW5naWZpZXJcIiB9KVxyXG5leHBvcnQgY2xhc3MgU3RyaW5naWZpZXJQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgICB0cmFuc2Zvcm0odmFsdWU6IEFueU9iamVjdCwgc2VwYXJhdG9yOiBzdHJpbmcsIHBhdGhzOiBzdHJpbmdbXSwgcGlwZXM/OiBVc2VQaXBlcyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIEFncm9PYmplY3RTdHJpbmdpZmllci5mb3JtYXRPYmplY3Qoc2VwYXJhdG9yLCBwYXRocywgdmFsdWUsIHBpcGVzKTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { NgModule } from "@angular/core";
|
|
3
|
+
import { CommonModule } from "@angular/common";
|
|
4
|
+
import { StringifierPipe } from "./stringifier.pipe";
|
|
5
|
+
var StringifierPipeModule = /** @class */ (function () {
|
|
6
|
+
function StringifierPipeModule() {
|
|
7
|
+
}
|
|
8
|
+
StringifierPipeModule = __decorate([
|
|
9
|
+
NgModule({
|
|
10
|
+
declarations: [StringifierPipe],
|
|
11
|
+
imports: [CommonModule],
|
|
12
|
+
exports: [StringifierPipe],
|
|
13
|
+
})
|
|
14
|
+
], StringifierPipeModule);
|
|
15
|
+
return StringifierPipeModule;
|
|
16
|
+
}());
|
|
17
|
+
export { StringifierPipeModule };
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5naWZpZXIucGlwZS5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbInBpcGUvc3RyaW5naWZpZXIvc3RyaW5naWZpZXIucGlwZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQU9yRDtJQUFBO0lBQW9DLENBQUM7SUFBeEIscUJBQXFCO1FBTGpDLFFBQVEsQ0FBQztZQUNOLFlBQVksRUFBRSxDQUFDLGVBQWUsQ0FBQztZQUMvQixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7WUFDdkIsT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDO1NBQzdCLENBQUM7T0FDVyxxQkFBcUIsQ0FBRztJQUFELDRCQUFDO0NBQUEsQUFBckMsSUFBcUM7U0FBeEIscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IFN0cmluZ2lmaWVyUGlwZSB9IGZyb20gXCIuL3N0cmluZ2lmaWVyLnBpcGVcIjtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBkZWNsYXJhdGlvbnM6IFtTdHJpbmdpZmllclBpcGVdLFxyXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXHJcbiAgICBleHBvcnRzOiBbU3RyaW5naWZpZXJQaXBlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFN0cmluZ2lmaWVyUGlwZU1vZHVsZSB7fVxyXG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { TelephonePipe } from "./telephone.pipe";
|
|
2
|
+
export { TelephonePipeModule } from "./telephone.pipe.module";
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbInBpcGUvdGVsZXBob25lL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IFRlbGVwaG9uZVBpcGUgfSBmcm9tIFwiLi90ZWxlcGhvbmUucGlwZVwiO1xyXG5leHBvcnQgeyBUZWxlcGhvbmVQaXBlTW9kdWxlIH0gZnJvbSBcIi4vdGVsZXBob25lLnBpcGUubW9kdWxlXCI7XHJcbiJdfQ==
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Pipe } from "@angular/core";
|
|
3
|
+
import { AGRO_NUMBERS } from "../../enums/agro-numbers.enum";
|
|
4
|
+
var TelephonePipe = /** @class */ (function () {
|
|
5
|
+
function TelephonePipe() {
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Transforma um número de telefone aplicando máscara automaticamente.
|
|
9
|
+
* @param value Valor do telefone.
|
|
10
|
+
* @param withDDI Define se deve forçar formatação com DDI (mesmo que não exista).
|
|
11
|
+
*/
|
|
12
|
+
TelephonePipe.prototype.transform = function (value, withDDI) {
|
|
13
|
+
if (withDDI === void 0) { withDDI = false; }
|
|
14
|
+
if (!value)
|
|
15
|
+
return "";
|
|
16
|
+
var digits = this.cleanDigits(value);
|
|
17
|
+
if (!digits)
|
|
18
|
+
return value.toString();
|
|
19
|
+
var _a = this.extractParts(digits, withDDI), ddi = _a.ddi, ddd = _a.ddd, number = _a.number;
|
|
20
|
+
return this.formatPhone(ddi, ddd, number, value.toString(), withDDI);
|
|
21
|
+
};
|
|
22
|
+
/** Remove todos os caracteres não numéricos */
|
|
23
|
+
TelephonePipe.prototype.cleanDigits = function (value) {
|
|
24
|
+
return value.toString().replace(/\D+/g, "");
|
|
25
|
+
};
|
|
26
|
+
/** Extrai DDI, DDD e número, considerando se deve aplicar DDI forçado */
|
|
27
|
+
TelephonePipe.prototype.extractParts = function (digits, withDDI) {
|
|
28
|
+
var len = digits.length;
|
|
29
|
+
if (withDDI) {
|
|
30
|
+
return this.extractWithDDI(digits);
|
|
31
|
+
}
|
|
32
|
+
if (len <= AGRO_NUMBERS.NINE) {
|
|
33
|
+
return { ddi: "", ddd: "", number: digits };
|
|
34
|
+
}
|
|
35
|
+
if (len <= AGRO_NUMBERS.ELEVEN) {
|
|
36
|
+
return this.extractWithDDD(digits);
|
|
37
|
+
}
|
|
38
|
+
return this.extractWithDDI(digits);
|
|
39
|
+
};
|
|
40
|
+
/** Extrai DDD e número (sem DDI) */
|
|
41
|
+
TelephonePipe.prototype.extractWithDDD = function (digits) {
|
|
42
|
+
var ddd = digits.slice(0, 2);
|
|
43
|
+
var number = digits.slice(2);
|
|
44
|
+
return { ddi: "", ddd: ddd, number: number };
|
|
45
|
+
};
|
|
46
|
+
/** Extrai DDI, DDD e número */
|
|
47
|
+
TelephonePipe.prototype.extractWithDDI = function (digits) {
|
|
48
|
+
var len = digits.length;
|
|
49
|
+
var ddiLen = 1;
|
|
50
|
+
if (len >= 14)
|
|
51
|
+
ddiLen = 3;
|
|
52
|
+
else if (len >= 12)
|
|
53
|
+
ddiLen = 2;
|
|
54
|
+
var ddi = digits.slice(0, ddiLen);
|
|
55
|
+
var ddd = digits.slice(ddiLen, ddiLen + 2);
|
|
56
|
+
var number = digits.slice(ddiLen + 2);
|
|
57
|
+
return { ddi: ddi, ddd: ddd, number: number };
|
|
58
|
+
};
|
|
59
|
+
/** Monta o número formatado */
|
|
60
|
+
TelephonePipe.prototype.formatPhone = function (ddi, ddd, number, fallback, withDDI) {
|
|
61
|
+
if (!number)
|
|
62
|
+
return fallback;
|
|
63
|
+
var formatted = "";
|
|
64
|
+
if (withDDI || ddi)
|
|
65
|
+
formatted += "+" + (ddi || "55") + " ";
|
|
66
|
+
if (ddd)
|
|
67
|
+
formatted += "(" + ddd + ") ";
|
|
68
|
+
formatted += this.formatNumber(number);
|
|
69
|
+
return formatted;
|
|
70
|
+
};
|
|
71
|
+
/** Aplica máscara de 8 ou 9 dígitos */
|
|
72
|
+
TelephonePipe.prototype.formatNumber = function (number) {
|
|
73
|
+
var len = number.length;
|
|
74
|
+
if (len === 9)
|
|
75
|
+
return number.slice(0, 5) + "-" + number.slice(5);
|
|
76
|
+
if (len === 8)
|
|
77
|
+
return number.slice(0, 4) + "-" + number.slice(4);
|
|
78
|
+
return number;
|
|
79
|
+
};
|
|
80
|
+
TelephonePipe = __decorate([
|
|
81
|
+
Pipe({ name: "telephone" })
|
|
82
|
+
], TelephonePipe);
|
|
83
|
+
return TelephonePipe;
|
|
84
|
+
}());
|
|
85
|
+
export { TelephonePipe };
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVsZXBob25lLnBpcGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbInBpcGUvdGVsZXBob25lL3RlbGVwaG9uZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFHN0Q7SUFBQTtJQWdGQSxDQUFDO0lBL0VHOzs7O09BSUc7SUFDSCxpQ0FBUyxHQUFULFVBQVUsS0FBc0IsRUFBRSxPQUF3QjtRQUF4Qix3QkFBQSxFQUFBLGVBQXdCO1FBQ3RELElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDdEIsSUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU8sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRS9CLElBQUEsdUNBQXlELEVBQXZELFlBQUcsRUFBRSxZQUFHLEVBQUUsa0JBQTZDLENBQUM7UUFDaEUsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsK0NBQStDO0lBQ3ZDLG1DQUFXLEdBQW5CLFVBQW9CLEtBQXNCO1FBQ3RDLE9BQU8sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELHlFQUF5RTtJQUNqRSxvQ0FBWSxHQUFwQixVQUFxQixNQUFjLEVBQUUsT0FBZ0I7UUFDakQsSUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUUxQixJQUFJ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RHpCLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQztPQUNmLGFBQWEsQ0FnRnpCO0lBQUQsb0JBQUM7Q0FBQSxBQWhGRCxJQWdGQztTQWhGWSxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEFHUk9fTlVNQkVSUyB9IGZyb20gXCIuLi8uLi9lbnVtcy9hZ3JvLW51bWJlcnMuZW51bVwiO1xyXG5cclxuQFBpcGUoeyBuYW1lOiBcInRlbGVwaG9uZVwiIH0pXHJcbmV4cG9ydCBjbGFzcyBUZWxlcGhvbmVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgICAvKipcclxuICAgICAqIFRyYW5zZm9ybWEgdW0gbsO6bWVybyBkZSB0ZWxlZm9uZSBhcGxpY2FuZG8gbcOhc2NhcmEgYXV0b21hdGljYW1lbnRlLlxyXG4gICAgICogQHBhcmFtIHZhbHVlIFZhbG9yIGRvIHRlbGVmb25lLlxyXG4gICAgICogQHBhcmFtIHdpdGhEREkgRGVmaW5lIHNlIGRldmUgZm9yw6dhciBmb3JtYXRhw6fDo28gY29tIERESSAobWVzbW8gcXVlIG7Do28gZXhpc3RhKS5cclxuICAgICAqL1xyXG4gICAgdHJhbnNmb3JtKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIsIHdpdGhEREk6IGJvb2xlYW4gPSBmYWxzZSk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKCF2YWx1ZSkgcmV0dXJuIFwiXCI7XHJcbiAgICAgICAgY29uc3QgZGlnaXRzID0gdGhpcy5jbGVhbkRpZ2l0cyh2YWx1ZSk7XHJcbiAgICAgICAgaWYgKCFkaWdpdHMpIHJldHVybiB2YWx1ZS50b1N0cmluZygpO1xyXG5cclxuICAgICAgICBjb25zdCB7IGRkaSwgZGRkLCBudW1iZXIgfSA9IHRoaXMuZXh0cmFjdFBhcnRzKGRpZ2l0cywgd2l0aERESSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0UGhvbmUoZGRpLCBkZGQsIG51bWJlciwgdmFsdWUudG9TdHJpbmcoKSwgd2l0aERESSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIFJlbW92ZSB0b2RvcyBvcyBjYXJhY3RlcmVzIG7Do28gbnVtw6lyaWNvcyAqL1xyXG4gICAgcHJpdmF0ZSBjbGVhbkRpZ2l0cyh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKS5yZXBsYWNlKC9cXEQrL2csIFwiXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBFeHRyYWkgRERJLCBEREQgZSBuw7ptZXJvLCBjb25zaWRlcmFuZG8gc2UgZGV2ZSBhcGxpY2FyIERESSBmb3LDp2FkbyAqL1xyXG4gICAgcHJpdmF0ZSBleHRyYWN0UGFydHMoZGlnaXRzOiBzdHJpbmcsIHdpdGhEREk6IGJvb2xlYW4pOiB7IGRkaTogc3RyaW5nOyBkZGQ6IHN0cmluZzsgbnVtYmVyOiBzdHJpbmcgfSB7XHJcbiAgICAgICAgY29uc3QgbGVuID0gZGlnaXRzLmxlbmd0aDtcclxuXHJcbiAgICAgICAgaWYgKHdpdGhEREkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXh0cmFjdFdpdGhEREkoZGlnaXRzKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChsZW4gPD0gQUdST19OVU1CRVJTLk5JTkUpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHsgZGRpOiBcIlwiLCBkZGQ6IFwiXCIsIG51bWJlcjogZGlnaXRzIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAobGVuIDw9IEFHUk9fTlVNQkVSUy5FTEVWRU4pIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXh0cmFjdFdpdGhEREQoZGlnaXRzKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmV4dHJhY3RXaXRoRERJKGRpZ2l0cyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEV4dHJhaSBEREQgZSBuw7ptZXJvIChzZW0gRERJKSAqL1xyXG4gICAgcHJpdmF0ZSBleHRyYWN0V2l0aERERChkaWdpdHM6IHN0cmluZyk6IHsgZGRpOiBzdHJpbmc7IGRkZDogc3RyaW5nOyBudW1iZXI6IHN0cmluZyB9IHtcclxuICAgICAgICBjb25zdCBkZGQgPSBkaWdpdHMuc2xpY2UoMCwgMik7XHJcbiAgICAgICAgY29uc3QgbnVtYmVyID0gZGlnaXRzLnNsaWNlKDIpO1xyXG4gICAgICAgIHJldHVybiB7IGRkaTogXCJcIiwgZGRkLCBudW1iZXIgfTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogRXh0cmFpIERESSwgREREIGUgbsO6bWVybyAqL1xyXG4gICAgcHJpdmF0ZSBleHRyYWN0V2l0aERESShkaWdpdHM6IHN0cmluZyk6IHsgZGRpOiBzdHJpbmc7IGRkZDogc3RyaW5nOyBudW1iZXI6IHN0cmluZyB9IHtcclxuICAgICAgICBjb25zdCBsZW4gPSBkaWdpdHMubGVuZ3RoO1xyXG5cclxuICAgICAgICBsZXQgZGRpTGVuID0gMTtcclxuICAgICAgICBpZiAobGVuID49IDE0KSBkZGlMZW4gPSAzO1xyXG4gICAgICAgIGVsc2UgaWYgKGxlbiA+PSAxMikgZGRpTGVuID0gMjtcclxuXHJcbiAgICAgICAgY29uc3QgZGRpID0gZGlnaXRzLnNsaWNlKDAsIGRkaUxlbik7XHJcbiAgICAgICAgY29uc3QgZGRkID0gZGlnaXRzLnNsaWNlKGRkaUxlbiwgZGRpTGVuICsgMik7XHJcbiAgICAgICAgY29uc3QgbnVtYmVyID0gZGlnaXRzLnNsaWNlKGRkaUxlbiArIDIpO1xyXG4gICAgICAgIHJldHVybiB7IGRkaSwgZGRkLCBudW1iZXIgfTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogTW9udGEgbyBuw7ptZXJvIGZvcm1hdGFkbyAqL1xyXG4gICAgcHJpdmF0ZSBmb3JtYXRQaG9uZShkZGk6IHN0cmluZywgZGRkOiBzdHJpbmcsIG51bWJlcjogc3RyaW5nLCBmYWxsYmFjazogc3RyaW5nLCB3aXRoRERJOiBib29sZWFuKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAoIW51bWJlcikgcmV0dXJuIGZhbGxiYWNrO1xyXG5cclxuICAgICAgICBsZXQgZm9ybWF0dGVkID0gXCJcIjtcclxuXHJcbiAgICAgICAgaWYgKHdpdGhEREkgfHwgZGRpKSBmb3JtYXR0ZWQgKz0gYCske2RkaSB8fCBcIjU1XCJ9IGA7XHJcbiAgICAgICAgaWYgKGRkZCkgZm9ybWF0dGVkICs9IGAoJHtkZGR9KSBgO1xyXG5cclxuICAgICAgICBmb3JtYXR0ZWQgKz0gdGhpcy5mb3JtYXROdW1iZXIobnVtYmVyKTtcclxuICAgICAgICByZXR1cm4gZm9ybWF0dGVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBBcGxpY2EgbcOhc2NhcmEgZGUgOCBvdSA5IGTDrWdpdG9zICovXHJcbiAgICBwcml2YXRlIGZvcm1hdE51bWJlcihudW1iZXI6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgbGVuID0gbnVtYmVyLmxlbmd0aDtcclxuICAgICAgICBpZiAobGVuID09PSA5KSByZXR1cm4gYCR7bnVtYmVyLnNsaWNlKDAsIDUpfS0ke251bWJlci5zbGljZSg1KX1gO1xyXG4gICAgICAgIGlmIChsZW4gPT09IDgpIHJldHVybiBgJHtudW1iZXIuc2xpY2UoMCwgNCl9LSR7bnVtYmVyLnNsaWNlKDQpfWA7XHJcbiAgICAgICAgcmV0dXJuIG51bWJlcjtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { NgModule } from "@angular/core";
|
|
3
|
+
import { CommonModule } from "@angular/common";
|
|
4
|
+
import { TelephonePipe } from "./telephone.pipe";
|
|
5
|
+
var TelephonePipeModule = /** @class */ (function () {
|
|
6
|
+
function TelephonePipeModule() {
|
|
7
|
+
}
|
|
8
|
+
TelephonePipeModule = __decorate([
|
|
9
|
+
NgModule({
|
|
10
|
+
declarations: [TelephonePipe],
|
|
11
|
+
imports: [CommonModule],
|
|
12
|
+
exports: [TelephonePipe],
|
|
13
|
+
})
|
|
14
|
+
], TelephonePipeModule);
|
|
15
|
+
return TelephonePipeModule;
|
|
16
|
+
}());
|
|
17
|
+
export { TelephonePipeModule };
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVsZXBob25lLnBpcGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvci1hZ3JvbmVnb2Npby9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJwaXBlL3RlbGVwaG9uZS90ZWxlcGhvbmUucGlwZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQU9qRDtJQUFBO0lBQWtDLENBQUM7SUFBdEIsbUJBQW1CO1FBTC9CLFFBQVEsQ0FBQztZQUNOLFlBQVksRUFBRSxDQUFDLGFBQWEsQ0FBQztZQUM3QixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7WUFDdkIsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO1NBQzNCLENBQUM7T0FDVyxtQkFBbUIsQ0FBRztJQUFELDBCQUFDO0NBQUEsQUFBbkMsSUFBbUM7U0FBdEIsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IFRlbGVwaG9uZVBpcGUgfSBmcm9tIFwiLi90ZWxlcGhvbmUucGlwZVwiO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGRlY2xhcmF0aW9uczogW1RlbGVwaG9uZVBpcGVdLFxyXG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXHJcbiAgICBleHBvcnRzOiBbVGVsZXBob25lUGlwZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZWxlcGhvbmVQaXBlTW9kdWxlIHt9XHJcbiJdfQ==
|
|
@@ -17,7 +17,7 @@ var LibTranslationService = /** @class */ (function () {
|
|
|
17
17
|
this.setLang(this.getLangOfUser());
|
|
18
18
|
}
|
|
19
19
|
LibTranslationService.prototype.getLangOfUser = function () {
|
|
20
|
-
return AgroPlatformUtils.
|
|
20
|
+
return AgroPlatformUtils.getCurrentTenantLocale() || "pt-BR";
|
|
21
21
|
};
|
|
22
22
|
LibTranslationService.prototype.setLang = function (lang) {
|
|
23
23
|
this.currentTranslation = this.availableTranslations[lang] || {};
|
|
@@ -57,4 +57,4 @@ var LibTranslationService = /** @class */ (function () {
|
|
|
57
57
|
return LibTranslationService;
|
|
58
58
|
}());
|
|
59
59
|
export { LibTranslationService };
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLXRyYW5zbGF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yLWFncm9uZWdvY2lvL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbInNlcnZpY2VzL2xpYi10cmFuc2xhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sSUFBSSxNQUFNLGNBQWMsQ0FBQztBQUNoQyxPQUFPLElBQUksTUFBTSxjQUFjLENBQUM7QUFDaEMsT0FBTyxJQUFJLE1BQU0sY0FBYyxDQUFDO0FBQ2hDLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sV0FBVyxDQUFDOztBQUs5QztJQVNJO1FBUlEsMEJBQXFCLEdBQTJCO1lBQ3BELE9BQU8sRUFBRSxJQUFJO1lBQ2IsT0FBTyxFQUFFLElBQUk7WUFDYixPQUFPLEVBQUUsSUFBSTtTQUNoQixDQUFDO1FBRU0sdUJBQWtCLEdBQXdCLEVBQUUsQ0FBQztRQUdqRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCw2Q0FBYSxHQUFiO1FBQ0ksT0FBTyxpQkFBaUIsQ0FBQyxzQkFBc0IsRUFBRSxJQUFJLE9BQU8sQ0FBQztJQUNqRSxDQUFDO0lBRUQsdUNBQU8sR0FBUCxVQUFRLElBQVk7UUFDaEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckUsQ0FBQztJQUVNLHVDQUFPLEdBQWQsVUFBZSxHQUFXLEVBQUUsaUJBQTBDO1FBQ2xFLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUM7UUFFdEQsSUFBSSxpQkFBaUIsRUFBRTtZQUNuQixNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsT0FBTyxDQUFDLFVBQUMsS0FBSztnQkFDekMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBSSxLQUFLLE1BQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQy9GLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFFRCxPQUFPLFdBQVcsQ0FBQztJQUN2QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsbUNBQUcsR0FBSCxVQUFJLEdBQTJCLEVBQUUsaUJBQTBCO1FBQTNELGlCQVVDO1FBVEcsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3BCLElBQU0sY0FBWSxHQUE4QixFQUFFLENBQUM7WUFDbkQsR0FBRyxDQUFDLE9BQU8sQ0FBQyxVQUFDLENBQUM7Z0JBQ1YsY0FBWSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLGlCQUFpQixDQUFDLENBQUM7WUFDekQsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLEVBQUUsQ0FBQyxjQUFZLENBQUMsQ0FBQztTQUMzQjthQUFNO1lBQ0gsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO1NBQ25EO0lBQ0wsQ0FBQzs7SUEvQ1EscUJBQXFCO1FBSGpDLFVBQVUsQ0FBQztZQUNSLFVBQVUsRUFBRSxNQUFNO1NBQ3JCLENBQUM7T0FDVyxxQkFBcUIsQ0FnRGpDO2dDQTFERDtDQTBEQyxBQWhERCxJQWdEQztTQWhEWSxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHB0QlIgZnJvbSBcIi4vaTE4bi9wdC1CUlwiO1xyXG5pbXBvcnQgZW5VUyBmcm9tIFwiLi9pMThuL2VuLVVTXCI7XHJcbmltcG9ydCBlc0NPIGZyb20gXCIuL2kxOG4vZXMtQ09cIjtcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBBZ3JvUGxhdGZvcm1VdGlscyB9IGZyb20gXCIuLi9jb21tb25cIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46IFwicm9vdFwiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTGliVHJhbnNsYXRpb25TZXJ2aWNlIHtcclxuICAgIHByaXZhdGUgYXZhaWxhYmxlVHJhbnNsYXRpb25zOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge1xyXG4gICAgICAgIFwicHQtQlJcIjogcHRCUixcclxuICAgICAgICBcImVuLVVTXCI6IGVuVVMsXHJcbiAgICAgICAgXCJlcy1DT1wiOiBlc0NPLFxyXG4gICAgfTtcclxuXHJcbiAgICBwcml2YXRlIGN1cnJlbnRUcmFuc2xhdGlvbjogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHRoaXMuc2V0TGFuZyh0aGlzLmdldExhbmdPZlVzZXIoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0TGFuZ09mVXNlcigpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBBZ3JvUGxhdGZvcm1VdGlscy5nZXRDdXJyZW50VGVuYW50TG9jYWxlKCkgfHwgXCJwdC1CUlwiO1xyXG4gICAgfVxyXG5cclxuICAgIHNldExhbmcobGFuZzogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50VHJhbnNsYXRpb24gPSB0aGlzLmF2YWlsYWJsZVRyYW5zbGF0aW9uc1tsYW5nXSB8fCB7fTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaW5zdGFudChrZXk6IHN0cmluZywgaW50ZXJwb2xhdGVQYXJhbXM/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9KTogc3RyaW5nIHtcclxuICAgICAgICBsZXQgdHJhbnNsYXRpb24gPSB0aGlzLmN1cnJlbnRUcmFuc2xhdGlvbltrZXldIHx8IGtleTtcclxuXHJcbiAgICAgICAgaWYgKGludGVycG9sYXRlUGFyYW1zKSB7XHJcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKGludGVycG9sYXRlUGFyYW1zKS5mb3JFYWNoKChwYXJhbSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdHJhbnNsYXRpb24gPSB0cmFuc2xhdGlvbi5yZXBsYWNlKG5ldyBSZWdFeHAoYHske3BhcmFtfX1gLCBcImdcIiksIGludGVycG9sYXRlUGFyYW1zW3BhcmFtXSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRyYW5zbGF0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgdHJhbnNsYXRlZCB2YWx1ZSBvZiBhIGtleSAob3IgYW4gYXJyYXkgb2Yga2V5cylcclxuICAgICAqIEByZXR1cm5zIHRoZSB0cmFuc2xhdGVkIGtleSwgb3IgYW4gb2JqZWN0IG9mIHRyYW5zbGF0ZWQga2V5c1xyXG4gICAgICovXHJcbiAgICBnZXQoa2V5OiBzdHJpbmcgfCBBcnJheTxzdHJpbmc+LCBpbnRlcnBvbGF0ZVBhcmFtcz86IE9iamVjdCk6IE9ic2VydmFibGU8c3RyaW5nIHwgYW55PiB7XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoa2V5KSkge1xyXG4gICAgICAgICAgICBjb25zdCB0cmFuc2xhdGlvbnM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcclxuICAgICAgICAgICAga2V5LmZvckVhY2goKGspID0+IHtcclxuICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uc1trXSA9IHRoaXMuaW5zdGFudChrLCBpbnRlcnBvbGF0ZVBhcmFtcyk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gb2YodHJhbnNsYXRpb25zKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gb2YodGhpcy5pbnN0YW50KGtleSwgaW50ZXJwb2xhdGVQYXJhbXMpKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
|