@uex/web-extensions
Version:
Uex extensions for Angular 6+ web projects
282 lines • 20.5 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: lib/modules/form/form.mask.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as _ from "lodash";
import createNumberMask from "text-mask-addons/dist/createNumberMask.js";
import { conformToMask } from "text-mask-core/dist/textMaskCore";
// Configuração das mascaras padrão: https://github.com/text-mask/text-mask/blob/master/componentDocumentation.md and https://github.com/text-mask/text-mask/tree/master/addons
const ɵ0 = /**
* @param {?} value
* @return {?}
*/
value => {
/** @type {?} */
const numbers = value.match(/\d/g);
/** @type {?} */
const length = numbers ? numbers.join("").length : 0;
if (length > 10) {
return [
"(",
/[0-9]/,
/[0-9]/,
")",
" ",
/[0-9]/,
/[0-9]/,
/[0-9]/,
/[0-9]/,
/[0-9]/,
"-",
/[0-9]/,
/[0-9]/,
/[0-9]/,
/[0-9]/
];
}
else {
return [
"(",
/[0-9]/,
/[0-9]/,
")",
" ",
/[0-9]/,
/[0-9]/,
/[0-9]/,
/[0-9]/,
"-",
/[0-9]/,
/[0-9]/,
/[0-9]/,
/[0-9]/
];
}
};
/** @type {?} */
export const FormMasks = {
money: {
mask: createNumberMask({
prefix: "R$ ",
thousandsSeparatorSymbol: ".",
decimalSymbol: ",",
allowDecimal: true,
allowNegative: true
})
},
percentage: {
mask: createNumberMask({
prefix: "",
thousandsSeparatorSymbol: ".",
decimalSymbol: ",",
allowNegative: false,
allowDecimal: true
})
},
salary: {
mask: createNumberMask({
prefix: "R$ ",
thousandsSeparatorSymbol: ".",
decimalSymbol: ",",
allowDecimal: true
})
},
phone: {
mask: (ɵ0),
guide: false
},
cpf: {
mask: [
/[0-9]/,
/[0-9]/,
/[0-9]/,
".",
/[0-9]/,
/[0-9]/,
/[0-9]/,
".",
/[0-9]/,
/[0-9]/,
/[0-9]/,
"-",
/[0-9]/,
/[0-9]/
],
guide: false
},
cnpj: {
mask: [
/[0-9]/,
/[0-9]/,
".",
/[0-9]/,
/[0-9]/,
/[0-9]/,
".",
/[0-9]/,
/[0-9]/,
/[0-9]/,
"/",
/[0-9]/,
/[0-9]/,
/[0-9]/,
/[0-9]/,
"-",
/[0-9]/,
/[0-9]/
],
guide: false
},
rg: {
mask: [
/[0-9]/,
/[0-9]/,
".",
/[0-9]/,
/[0-9]/,
/[0-9]/,
".",
/[0-9]/,
/[0-9]/,
/[0-9]/,
"-",
/[0-9]/
],
guide: false
},
cep: {
mask: [
/[0-9]/,
/[0-9]/,
".",
/[0-9]/,
/[0-9]/,
/[0-9]/,
"-",
/[0-9]/,
/[0-9]/,
/[0-9]/
],
guide: false
},
date: {
mask: [
/[0-9]/,
/[0-9]/,
"/",
/[0-9]/,
/[0-9]/,
"/",
/[0-9]/,
/[0-9]/,
/[0-9]/,
/[0-9]/
],
guide: false
},
time: {
mask: [/[0-9]/, /[0-9]/, ":", /[0-9]/, /[0-9]/],
guide: false
},
creditcard: {
mask: [
/[0-9]/,
/[0-9]/,
/[0-9]/,
/[0-9]/,
" ",
/[0-9]/,
/[0-9]/,
/[0-9]/,
/[0-9]/,
" ",
/[0-9]/,
/[0-9]/,
/[0-9]/,
/[0-9]/,
" ",
/[0-9]/,
/[0-9]/,
/[0-9]/,
/[0-9]/
],
guide: false
},
creditcard_validity: {
mask: [/[0-9]/, /[0-9]/, "/", /[0-9]/, /[0-9]/, /[0-9]/, /[0-9]/],
guide: false
}
};
/**
* @param {?} value
* @param {?} info
* @return {?}
*/
function GetCurrentMask(value, info) {
/** @type {?} */
let rawValue = value.replace(/[^\d]/g, "");
/** @type {?} */
const rawLength = rawValue.length;
/** @type {?} */
const prefixMask = ["R", "$", " "];
/** @type {?} */
const decimalMask = [",", /\d/, /\d/];
/** @type {?} */
const integerLength = rawLength > 3 ? rawLength - 2 : 1;
/** @type {?} */
const integerMask = [];
for (let x = 0; x < integerLength; x++) {
/** @type {?} */
const length = integerMask.filter((/**
* @param {?} m
* @return {?}
*/
(m) => m !== ".")).length;
if (length && length % 3 === 0)
integerMask.push(".");
integerMask.push(/\d/);
}
return [...prefixMask, ...integerMask.reverse(), ...decimalMask];
}
/**
* @param {?} mask
* @return {?}
*/
export function GetMask(mask) {
if (_.isString(mask) && FormMasks[mask]) {
return FormMasks[mask];
}
else {
return mask;
}
}
/**
* @param {?} schema
* @return {?}
*/
export function SetupSchemaMask(schema) {
/** @type {?} */
const mask_name = ((/** @type {?} */ (schema))).mask;
if (!mask_name || !schema.value)
return;
/** @type {?} */
const mask = GetMask(mask_name);
if (mask.mask) {
/** @type {?} */
let masks = [];
if (_.isArray(mask.mask)) {
masks = mask.mask;
}
else if (_.isFunction(mask.mask)) {
masks = mask.mask(schema.value);
}
schema.value = ((/** @type {?} */ (conformToMask)))(schema.value, masks.filter((/**
* @param {?} item
* @return {?}
*/
item => item !== "[]")), { guide: false }).conformedValue;
}
}
export { ɵ0 };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5tYXNrLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHVleC93ZWItZXh0ZW5zaW9ucy8iLCJzb3VyY2VzIjpbImxpYi9tb2R1bGVzL2Zvcm0vZm9ybS5tYXNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxnQkFBZ0IsTUFBTSwyQ0FBMkMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7OztBQWlDdkQsS0FBSyxDQUFDLEVBQUU7O1VBQ04sT0FBTyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDOztVQUM1QixNQUFNLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwRCxJQUFJLE1BQU0sR0FBRyxFQUFFLEVBQUU7UUFDZixPQUFPO1lBQ0wsR0FBRztZQUNILE9BQU87WUFDUCxPQUFPO1lBQ1AsR0FBRztZQUNILEdBQUc7WUFDSCxPQUFPO1lBQ1AsT0FBTztZQUNQLE9BQU87WUFDUCxPQUFPO1lBQ1AsT0FBTztZQUNQLEdBQUc7WUFDSCxPQUFPO1lBQ1AsT0FBTztZQUNQLE9BQU87WUFDUCxPQUFPO1NBQ1IsQ0FBQztLQUNIO1NBQU07UUFDTCxPQUFPO1lBQ0wsR0FBRztZQUNILE9BQU87WUFDUCxPQUFPO1lBQ1AsR0FBRztZQUNILEdBQUc7WUFDSCxPQUFPO1lBQ1AsT0FBTztZQUNQLE9BQU87WUFDUCxPQUFPO1lBQ1AsR0FBRztZQUNILE9BQU87WUFDUCxPQUFPO1lBQ1AsT0FBTztZQUNQLE9BQU87U0FDUixDQUFDO0tBQ0g7QUFDSCxDQUFDOztBQW5FTCxNQUFNLE9BQU8sU0FBUyxHQUFHO0lBQ3ZCLEtBQUssRUFBRTtRQUNMLElBQUksRUFBRSxnQkFBZ0IsQ0FBQztZQUNyQixNQUFNLEVB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LENBQUMsSUFBSSxDQUFDLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ3ZDLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ3hCO1NBQU07UUFDTCxPQUFPLElBQUksQ0FBQztLQUNiO0FBQ0gsQ0FBQzs7Ozs7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFDLE1BQXNCOztVQUM5QyxTQUFTLEdBQUcsQ0FBQyxtQkFBb0IsTUFBTSxFQUFBLENBQUMsQ0FBQyxJQUFJO0lBRW5ELElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSztRQUFFLE9BQU87O1VBRWxDLElBQUksR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO0lBRS9CLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTs7WUFDVCxLQUFLLEdBQWUsRUFBRTtRQUUxQixJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3hCLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ25CO2FBQU0sSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNsQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDakM7UUFFRCxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsbUJBQUssYUFBYSxFQUFBLENBQUMsQ0FDakMsTUFBTSxDQUFDLEtBQUssRUFDWixLQUFLLENBQUMsTUFBTTs7OztRQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLElBQUksRUFBQyxFQUNuQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FDakIsQ0FBQyxjQUFjLENBQUM7S0FDbEI7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgXyBmcm9tIFwibG9kYXNoXCI7XHJcbmltcG9ydCBjcmVhdGVOdW1iZXJNYXNrIGZyb20gXCJ0ZXh0LW1hc2stYWRkb25zL2Rpc3QvY3JlYXRlTnVtYmVyTWFzay5qc1wiO1xyXG5pbXBvcnQgeyBjb25mb3JtVG9NYXNrIH0gZnJvbSBcInRleHQtbWFzay1jb3JlL2Rpc3QvdGV4dE1hc2tDb3JlXCI7XHJcblxyXG5pbXBvcnQgeyBGb3JtU2NoZW1hRGF0YSwgRm9ybVRleHRTY2hlbWFEYXRhIH0gZnJvbSBcIi4vZm9ybS5pbnRlcmZhY2VcIjtcclxuXHJcbi8vIENvbmZpZ3VyYcOnw6NvIGRhcyBtYXNjYXJhcyBwYWRyw6NvOiBodHRwczovL2dpdGh1Yi5jb20vdGV4dC1tYXNrL3RleHQtbWFzay9ibG9iL21hc3Rlci9jb21wb25lbnREb2N1bWVudGF0aW9uLm1kIGFuZCBodHRwczovL2dpdGh1Yi5jb20vdGV4dC1tYXNrL3RleHQtbWFzay90cmVlL21hc3Rlci9hZGRvbnNcclxuZXhwb3J0IGNvbnN0IEZvcm1NYXNrcyA9IHtcclxuICBtb25leToge1xyXG4gICAgbWFzazogY3JlYXRlTnVtYmVyTWFzayh7XHJcbiAgICAgIHByZWZpeDogXCJSJCBcIixcclxuICAgICAgdGhvdXNhbmRzU2VwYXJhdG9yU3ltYm9sOiBcIi5cIixcclxuICAgICAgZGVjaW1hbFN5bWJvbDogXCIsXCIsXHJcbiAgICAgIGFsbG93RGVjaW1hbDogdHJ1ZSxcclxuICAgICAgYWxsb3dOZWdhdGl2ZTogdHJ1ZVxyXG4gICAgfSlcclxuICB9LFxyXG4gIHBlcmNlbnRhZ2U6IHtcclxuICAgIG1hc2s6IGNyZWF0ZU51bWJlck1hc2soe1xyXG4gICAgICBwcmVmaXg6IFwiXCIsXHJcbiAgICAgIHRob3VzYW5kc1NlcGFyYXRvclN5bWJvbDogXCIuXCIsXHJcbiAgICAgIGRlY2ltYWxTeW1ib2w6IFwiLFwiLFxyXG4gICAgICBhbGxvd05lZ2F0aXZlOiBmYWxzZSxcclxuICAgICAgYWxsb3dEZWNpbWFsOiB0cnVlXHJcbiAgICB9KVxyXG4gIH0sXHJcbiAgc2FsYXJ5OiB7XHJcbiAgICBtYXNrOiBjcmVhdGVOdW1iZXJNYXNrKHtcclxuICAgICAgcHJlZml4OiBcIlIkIFwiLFxyXG4gICAgICB0aG91c2FuZHNTZXBhcmF0b3JTeW1ib2w6IFwiLlwiLFxyXG4gICAgICBkZWNpbWFsU3ltYm9sOiBcIixcIixcclxuICAgICAgYWxsb3dEZWNpbWFsOiB0cnVlXHJcbiAgICB9KVxyXG4gIH0sXHJcbiAgcGhvbmU6IHtcclxuICAgIG1hc2s6IHZhbHVlID0+IHtcclxuICAgICAgY29uc3QgbnVtYmVycyA9IHZhbHVlLm1hdGNoKC9cXGQvZyk7XHJcbiAgICAgIGNvbnN0IGxlbmd0aCA9IG51bWJlcnMgPyBudW1iZXJzLmpvaW4oXCJcIikubGVuZ3RoIDogMDtcclxuICAgICAgaWYgKGxlbmd0aCA+IDEwKSB7XHJcbiAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgIFwiKFwiLFxyXG4gICAgICAgICAgL1swLTldLyxcclxuICAgICAgICAgIC9bMC05XS8sXHJcbiAgICAgICAgICBcIilcIixcclxuICAgICAgICAgIFwiIFwiLFxyXG4gICAgICAgICAgL1swLTldLyxcclxuICAgICAgICAgIC9bMC05XS8sXHJcbiAgICAgICAgICAvWzAtOV0vLFxyXG4gICAgICAgICAgL1swLTldLyxcclxuICAgICAgICAgIC9bMC05XS8sXHJcbiAgICAgICAgICBcIi1cIixcclxuICAgICAgICAgIC9bMC05XS8sXHJcbiAgICAgICAgICAvWzAtOV0vLFxyXG4gICAgICAgICAgL1swLTldLyxcclxuICAgICAgICAgIC9bMC05XS9cclxuICAgICAgICBdO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICBcIihcIixcclxuICAgICAgICAgIC9bMC05XS8sXHJcbiAgICAgICAgICAvWzAtOV0vLFxyXG4gICAgICAgICAgXCIpXCIsXHJcbiAgICAgICAgICBcIiBcIixcclxuICAgICAgICAgIC9bMC05XS8sXHJcbiAgICAgICAgICAvWzAtOV0vLFxyXG4gICAgICAgICAgL1swLTldLyxcclxuICAgICAgICAgIC9bMC05XS8sXHJcbiAgICAgICAgICBcIi1cIixcclxuICAgICAgICAgIC9bMC05XS8sXHJcbiAgICAgICAgICAvWzAtOV0vLFxyXG4gICAgICAgICAgL1swLTldLyxcclxuICAgICAgICAgIC9bMC05XS9cclxuICAgICAgICBdO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgZ3VpZGU6IGZhbHNlXHJcbiAgfSxcclxuICBjcGY6IHtcclxuICAgIG1hc2s6IFtcclxuICAgICAgL1swLTldLyxcclxuICAgICAgL1swLTldLyxcclxuICAgICAgL1swLTldLyxcclxuICAgICAgXCIuXCIsXHJcbiAgICAgIC9bMC05XS8sXHJcbiAgICAgIC9bMC05XS8sXHJcbiAgICAgIC9bMC05XS8sXHJcbiAgICAgIFwiLlwiLFxyXG4gICAgICAvWzAtOV0vLFxyXG4gICAgICAvWzAtOV0vLFxyXG4gICAgICAvWzAtOV0vLFxyXG4gICAgICBcIi1cIixcclxuICAgICAgL1swLTldLyxcclxuICAgICAgL1swLTldL1xyXG4gICAgXSxcclxuICAgIGd1aWRlOiBmYWxzZVxyXG4gIH0sXHJcbiAgY25wajoge1xyXG4gICAgbWFzazogW1xyXG4gICAgICAvWzAtOV0vLFxyXG4gICAgICAvWzAtOV0vLFxyXG4gICAgICBcIi5cIixcclxuICAgICAgL1swLTldLyxcclxuICAgICAgL1swLTldLyxcclxuICAgICAgL1swLTldLyxcclxuICAgICAgXCIuXCIsXHJcbiAgICAgIC9bMC05XS8sXHJcbiAgICAgIC9bMC05XS8sXHJcbiAgICAgIC9bMC05XS8sXHJcbiAgICAgIFwiL1wiLFxyXG4gICAgICAvWzAtOV0vLFxyXG4gICAgICAvWzAtOV0vLFxyXG4gICAgICAvWzAtOV0vLFxyXG4gICAgICAvWzAtOV0vLFxyXG4gICAgICBcIi1cIixcclxuICAgICAgL1swLTldLyxcclxuICAgICAgL1swLTldL1xyXG4gICAgXSxcclxuICAgIGd1aWRlOiBmYWxzZVxyXG4gIH0sXHJcbiAgcmc6IHtcclxuICAgIG1hc2s6IFtcclxuICAgICAgL1swLTldLyxcclxuICAgICAgL1swLTldLyxcclxuICAgICAgXCIuXCIsXHJcbiAgICAgIC9bMC05XS8sXHJcbiAgICAgIC9bMC05XS8sXHJcbiAgICAgIC9bMC05XS8sXHJcbiAgICAgIFwiLlwiLFxyXG4gICAgICAvWzAtOV0vLFxyXG4gICAgICAvWzAtOV0vLFxyXG4gICAgICAvWzAtOV0vLFxyXG4gICAgICBcIi1cIixcclxuICAgICAgL1swLTldL1xyXG4gICAgXSxcclxuICAgIGd1aWRlOiBmYWxzZVxyXG4gIH0sXHJcbiAgY2VwOiB7XHJcbiAgICBtYXNrOiBbXHJcbiAgICAgIC9bMC05XS8sXHJcbiAgICAgIC9bMC05XS8sXHJcbiAgICAgIFwiLlwiLFxyXG4gICAgICAvWzAtOV0vLFxyXG4gICAgICAvWzAtOV0vLFxyXG4gICAgICAvWzAtOV0vLFxyXG4gICAgICBcIi1cIixcclxuICAgICAgL1swLTldLyxcclxuICAgICAgL1swLTldLyxcclxuICAgICAgL1swLTldL1xyXG4gICAgXSxcclxuICAgIGd1aWRlOiBmYWxzZVxyXG4gIH0sXHJcbiAgZGF0ZToge1xyXG4gICAgbWFzazogW1xyXG4gICAgICAvWzAtOV0vLFxyXG4gICAgICAvWzAtOV0vLFxyXG4gICAgICBcIi9cIixcclxuICAgICAgL1swLTldLyxcclxuICAgICAgL1swLTldLyxcclxuICAgICAgXCIvXCIsXHJcbiAgICAgIC9bMC05XS8sXHJcbiAgICAgIC9bMC05XS8sXHJcbiAgICAgIC9bMC05XS8sXHJcbiAgICAgIC9bMC05XS9cclxuICAgIF0sXHJcbiAgICBndWlkZTogZmFsc2VcclxuICB9LFxyXG4gIHRpbWU6IHtcclxuICAgIG1hc2s6IFsvWzAtOV0vLCAvWzAtOV0vLCBcIjpcIiwgL1swLTldLywgL1swLTldL10sXHJcbiAgICBndWlkZTogZmFsc2VcclxuICB9LFxyXG4gIGNyZWRpdGNhcmQ6IHtcclxuICAgIG1hc2s6IFtcclxuICAgICAgL1swLTldLyxcclxuICAgICAgL1swLTldLyxcclxuICAgICAgL1swLTldLyxcclxuICAgICAgL1swLTldLyxcclxuICAgICAgXCIgXCIsXHJcbiAgICAgIC9bMC05XS8sXHJcbiAgICAgIC9bMC05XS8sXHJcbiAgICAgIC9bMC05XS8sXHJcbiAgICAgIC9bMC05XS8sXHJcbiAgICAgIFwiIFwiLFxyXG4gICAgICAvWzAtOV0vLFxyXG4gICAgICAvWzAtOV0vLFxyXG4gICAgICAvWzAtOV0vLFxyXG4gICAgICAvWzAtOV0vLFxyXG4gICAgICBcIiBcIixcclxuICAgICAgL1swLTldLyxcclxuICAgICAgL1swLTldLyxcclxuICAgICAgL1swLTldLyxcclxuICAgICAgL1swLTldL1xyXG4gICAgXSxcclxuICAgIGd1aWRlOiBmYWxzZVxyXG4gIH0sXHJcbiAgY3JlZGl0Y2FyZF92YWxpZGl0eToge1xyXG4gICAgbWFzazogWy9bMC05XS8sIC9bMC05XS8sIFwiL1wiLCAvWzAtOV0vLCAvWzAtOV0vLCAvWzAtOV0vLCAvWzAtOV0vXSxcclxuICAgIGd1aWRlOiBmYWxzZVxyXG4gIH1cclxufTtcclxuXHJcbmZ1bmN0aW9uIEdldEN1cnJlbnRNYXNrKHZhbHVlOiBzdHJpbmcsIGluZm8pOiAoc3RyaW5nIHwgUmVnRXhwKVtdIHtcclxuICBsZXQgcmF3VmFsdWUgPSB2YWx1ZS5yZXBsYWNlKC9bXlxcZF0vZywgXCJcIik7XHJcblxyXG4gIGNvbnN0IHJhd0xlbmd0aCA9IHJhd1ZhbHVlLmxlbmd0aDtcclxuICBjb25zdCBwcmVmaXhNYXNrID0gW1wiUlwiLCBcIiRcIiwgXCIgXCJdO1xyXG4gIGNvbnN0IGRlY2ltYWxNYXNrOiAoc3RyaW5nIHwgUmVnRXhwKVtdID0gW1wiLFwiLCAvXFxkLywgL1xcZC9dO1xyXG4gIGNvbnN0IGludGVnZXJMZW5ndGggPSByYXdMZW5ndGggPiAzID8gcmF3TGVuZ3RoIC0gMiA6IDE7XHJcbiAgY29uc3QgaW50ZWdlck1hc2s6IChzdHJpbmcgfCBSZWdFeHApW10gPSBbXTtcclxuXHJcbiAgZm9yIChsZXQgeCA9IDA7IHggPCBpbnRlZ2VyTGVuZ3RoOyB4KyspIHtcclxuICAgIGNvbnN0IGxlbmd0aCA9IGludGVnZXJNYXNrLmZpbHRlcigobSk6IGJvb2xlYW4gPT4gbSAhPT0gXCIuXCIpLmxlbmd0aDtcclxuICAgIGlmIChsZW5ndGggJiYgbGVuZ3RoICUgMyA9PT0gMCkgaW50ZWdlck1hc2sucHVzaChcIi5cIik7XHJcbiAgICBpbnRlZ2VyTWFzay5wdXNoKC9cXGQvKTtcclxuICB9XHJcblxyXG4gIHJldHVybiBbLi4ucHJlZml4TWFzaywgLi4uaW50ZWdlck1hc2sucmV2ZXJzZSgpLCAuLi5kZWNpbWFsTWFza107XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBHZXRNYXNrKG1hc2s6IGFueSk6IGFueSB7XHJcbiAgaWYgKF8uaXNTdHJpbmcobWFzaykgJiYgRm9ybU1hc2tzW21hc2tdKSB7XHJcbiAgICByZXR1cm4gRm9ybU1hc2tzW21hc2tdO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gbWFzaztcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBTZXR1cFNjaGVtYU1hc2soc2NoZW1hOiBGb3JtU2NoZW1hRGF0YSkge1xyXG4gIGNvbnN0IG1hc2tfbmFtZSA9ICg8Rm9ybVRleHRTY2hlbWFEYXRhPnNjaGVtYSkubWFzaztcclxuXHJcbiAgaWYgKCFtYXNrX25hbWUgfHwgIXNjaGVtYS52YWx1ZSkgcmV0dXJuO1xyXG5cclxuICBjb25zdCBtYXNrID0gR2V0TWFzayhtYXNrX25hbWUpO1xyXG5cclxuICBpZiAobWFzay5tYXNrKSB7XHJcbiAgICBsZXQgbWFza3M6IEFycmF5PGFueT4gPSBbXTtcclxuXHJcbiAgICBpZiAoXy5pc0FycmF5KG1hc2subWFzaykpIHtcclxuICAgICAgbWFza3MgPSBtYXNrLm1hc2s7XHJcbiAgICB9IGVsc2UgaWYgKF8uaXNGdW5jdGlvbihtYXNrLm1hc2spKSB7XHJcbiAgICAgIG1hc2tzID0gbWFzay5tYXNrKHNjaGVtYS52YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgc2NoZW1hLnZhbHVlID0gKDxhbnk+Y29uZm9ybVRvTWFzaykoXHJcbiAgICAgIHNjaGVtYS52YWx1ZSxcclxuICAgICAgbWFza3MuZmlsdGVyKGl0ZW0gPT4gaXRlbSAhPT0gXCJbXVwiKSxcclxuICAgICAgeyBndWlkZTogZmFsc2UgfVxyXG4gICAgKS5jb25mb3JtZWRWYWx1ZTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEZvcm1TY2hlbWFNYXNrID1cclxuICB8IFwibW9uZXlcIlxyXG4gIHwgXCJwZXJjZW50YWdlXCJcclxuICB8IFwic2FsYXJ5XCJcclxuICB8IFwicGhvbmVcIlxyXG4gIHwgXCJjcGZcIlxyXG4gIHwgXCJjbnBqXCJcclxuICB8IFwicmdcIlxyXG4gIHwgXCJjZXBcIlxyXG4gIHwgXCJkYXRlXCJcclxuICB8IFwidGltZVwiXHJcbiAgfCBcImNyZWRpdGNhcmRcIlxyXG4gIHwgXCJjcmVkaXRjYXJkX3ZhbGlkaXR5XCI7XHJcbiJdfQ==