@hurbis/comum
Version:
Biblioteca contendo rotinas e utilitários para desenvolvimento em Angular.
143 lines • 10.9 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc
*/
var CNPJ = /** @class */ (function () {
function CNPJ() {
}
/**
* @param {?} numeros
* @return {?}
*/
CNPJ.retornarDigito = /**
* @param {?} numeros
* @return {?}
*/
function (numeros) {
/** @type {?} */
var invertido = numeros.split("").reduce(function (buffer, number) {
return [parseInt(number, 10)].concat(buffer);
}, []);
/** @type {?} */
var indice = 2;
/** @type {?} */
var soma = invertido.reduce(function (buffer, numero) {
buffer += numero * indice;
indice = (indice === 9 ? 2 : indice + 1);
return buffer;
}, 0);
/** @type {?} */
var mod = soma % 11;
return (mod < 2 ? 0 : 11 - mod);
};
/**
* @param {?} numero
* @return {?}
*/
CNPJ.formatar = /**
* @param {?} numero
* @return {?}
*/
function (numero) {
/** @type {?} */
var regex = new RegExp("^(\\d{2})(\\d{3})(\\d{3})(\\d{4})(\\d{2})$");
return this.limpar(numero).replace(regex, "$1.$2.$3/$4-$5");
};
/**
* @param {?} numero
* @param {?=} strict
* @return {?}
*/
CNPJ.limpar = /**
* @param {?} numero
* @param {?=} strict
* @return {?}
*/
function (numero, strict) {
/** @type {?} */
var regex = strict ? this.STRICT_STRIP_REGEX : this.LOOSE_STRIP_REGEX;
return (numero || "").toString().replace(regex, "");
};
/**
* @param {?} numeroSemDV
* @return {?}
*/
CNPJ.atualizarComDV = /**
* @param {?} numeroSemDV
* @return {?}
*/
function (numeroSemDV) {
numeroSemDV += this.retornarDigito(numeroSemDV); // 13
numeroSemDV += this.retornarDigito(numeroSemDV); // 14
return numeroSemDV;
};
/**
* @param {?} numero
* @param {?=} strict
* @return {?}
*/
CNPJ.validar = /**
* @param {?} numero
* @param {?=} strict
* @return {?}
*/
function (numero, strict) {
/** @type {?} */
var numeroLimpo = this.limpar(numero, strict);
if (!numeroLimpo) {
return false;
}
if (numeroLimpo.length !== 14) {
return false;
}
if (this.LISTA_IGNORADA.indexOf(numeroLimpo) >= 0) {
return false;
}
/** @type {?} */
var numeroComDV = this.atualizarComDV(numeroLimpo.substr(0, 12));
return numeroComDV.substr(-2) === numeroLimpo.substr(-2);
};
/**
* @param {?} formatado
* @return {?}
*/
CNPJ.gerar = /**
* @param {?} formatado
* @return {?}
*/
function (formatado) {
/** @type {?} */
var numeroSemDV = "";
for (var i = 0; i < 12; i++) {
numeroSemDV += Math.floor(Math.random() * 9);
}
/** @type {?} */
var numeroComDV = this.atualizarComDV(numeroSemDV);
return (formatado ? this.formatar(numeroComDV) : numeroComDV);
};
CNPJ.LISTA_IGNORADA = [
"00000000000000",
"11111111111111",
"22222222222222",
"33333333333333",
"44444444444444",
"55555555555555",
"66666666666666",
"77777777777777",
"88888888888888",
"99999999999999"
];
CNPJ.STRICT_STRIP_REGEX = new RegExp("[-\/.]/g");
CNPJ.LOOSE_STRIP_REGEX = new RegExp("[^\\d]/g");
return CNPJ;
}());
export { CNPJ };
if (false) {
/** @type {?} */
CNPJ.LISTA_IGNORADA;
/** @type {?} */
CNPJ.STRICT_STRIP_REGEX;
/** @type {?} */
CNPJ.LOOSE_STRIP_REGEX;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY25wai5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BodXJiaXMvY29tdW0vIiwic291cmNlcyI6WyJsaWIvdXRpbC92YWxpZGFkb3IvY25wai50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUE7SUFBQTtJQTRFQSxDQUFDOzs7OztJQTNEZ0IsbUJBQWM7Ozs7SUFBN0IsVUFBOEIsT0FBZTs7WUFDdkMsU0FBUyxHQUFhLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUNoRCxVQUFDLE1BQWdCLEVBQUUsTUFBYztZQUMvQixPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvQyxDQUFDLEVBQUUsRUFBRSxDQUFDOztZQUVKLE1BQU0sR0FBVyxDQUFDOztZQUNsQixJQUFJLEdBQVcsU0FBUyxDQUFDLE1BQU0sQ0FDakMsVUFBQyxNQUFjLEVBQUUsTUFBYztZQUM3QixNQUFNLElBQUksTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUMxQixNQUFNLEdBQUcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN6QyxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLEVBQUUsQ0FBQyxDQUFDOztZQUVILEdBQUcsR0FBVyxJQUFJLEdBQUcsRUFBRTtRQUMzQixPQUFPLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDbEMsQ0FBQzs7Ozs7SUFFTSxhQUFROzs7O0lBQWYsVUFBZ0IsTUFBYzs7WUFDeEIsS0FBSyxHQUFXLElBQUksTUFBTSxDQUFDLDRDQUE0QyxDQUFDO1FBQzVFLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDOUQsQ0FBQzs7Ozs7O0lBRU0sV0FBTTs7Ozs7SUFBYixVQUFjLE1BQWMsRUFBRSxNQUFnQjs7WUFDeEMsS0FBSyxHQUFXLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCO1FBQzdFLE9BQU8sQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN0RCxDQUFDOzs7OztJQUVjLG1CQUFjOzs7O0lBQTdCLFVBQThCLFdBQW1CO1FBQy9DLFdBQVcsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSztRQUN0RCxXQUFXLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUs7UUFDdEQsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQzs7Ozs7O0lBRU0sWUFBTzs7Ozs7SUFBZCxVQUFlLE1BQWMsRUFBRSxNQUFnQjs7WUFDekMsV0FBVyxHQUFXLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQztRQUVyRCxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQUUsT0FBTyxLQUFLLENBQUM7U0FBRTtRQUVuQyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFO1lBQUUsT0FBTyxLQUFLLENBQUM7U0FBRTtRQUVoRCxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUFFLE9BQU8sS0FBSyxDQUFDO1NBQUU7O1lBRWhFLFdBQVcsR0FBVyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXhFLE9BQU8sV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDOzs7OztJQUVNLFVBQUs7Ozs7SUFBWixVQUFhLFNBQWtCOztZQUN6QixXQUFXLEdBQVcsRUFBRTtRQUU1QixLQUFLLElBQUksQ0FBQyxHQUFXLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ25DLFdBQVcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUM5Qzs7WUFFRyxXQUFXLEdBQVcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUM7UUFFMUQsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQTFFYyxtQkFBYyxHQUFhO1FBQ3hDLGdCQUFnQjtRQUNoQixnQkFBZ0I7UUFDaEIsZ0JBQWdCO1FBQ2hCLGdCQUFnQjtRQUNoQixnQkFBZ0I7UUFDaEIsZ0JBQWdCO1FBQ2hCLGdCQUFnQjtRQUNoQixnQkFBZ0I7UUFDaEIsZ0JBQWdCO1FBQ2hCLGdCQUFnQjtLQUNqQixDQUFDO0lBRWEsdUJBQWtCLEdBQVcsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDcEQsc0JBQWlCLEdBQVcsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUE2RHBFLFdBQUM7Q0FBQSxBQTVFRCxJQTRFQztTQTVFWSxJQUFJOzs7SUFDZixvQkFXRTs7SUFFRix3QkFBbUU7O0lBQ25FLHVCQUFrRSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBDTlBKIHtcclxuICBwcml2YXRlIHN0YXRpYyBMSVNUQV9JR05PUkFEQTogc3RyaW5nW10gPSBbXHJcbiAgICBcIjAwMDAwMDAwMDAwMDAwXCIsXHJcbiAgICBcIjExMTExMTExMTExMTExXCIsXHJcbiAgICBcIjIyMjIyMjIyMjIyMjIyXCIsXHJcbiAgICBcIjMzMzMzMzMzMzMzMzMzXCIsXHJcbiAgICBcIjQ0NDQ0NDQ0NDQ0NDQ0XCIsXHJcbiAgICBcIjU1NTU1NTU1NTU1NTU1XCIsXHJcbiAgICBcIjY2NjY2NjY2NjY2NjY2XCIsXHJcbiAgICBcIjc3Nzc3Nzc3Nzc3Nzc3XCIsXHJcbiAgICBcIjg4ODg4ODg4ODg4ODg4XCIsXHJcbiAgICBcIjk5OTk5OTk5OTk5OTk5XCJcclxuICBdO1xyXG5cclxuICBwcml2YXRlIHN0YXRpYyBTVFJJQ1RfU1RSSVBfUkVHRVg6IFJlZ0V4cCA9IG5ldyBSZWdFeHAoXCJbLVxcLy5dL2dcIik7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgTE9PU0VfU1RSSVBfUkVHRVg6IFJlZ0V4cCA9IG5ldyBSZWdFeHAoXCJbXlxcXFxkXS9nXCIpO1xyXG5cclxuICBwcml2YXRlIHN0YXRpYyByZXRvcm5hckRpZ2l0byhudW1lcm9zOiBzdHJpbmcpOiBudW1iZXIge1xyXG4gICAgbGV0IGludmVydGlkbzogbnVtYmVyW10gPSBudW1lcm9zLnNwbGl0KFwiXCIpLnJlZHVjZTxudW1iZXJbXT4oXHJcbiAgICAgIChidWZmZXI6IG51bWJlcltdLCBudW1iZXI6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIHJldHVybiBbcGFyc2VJbnQobnVtYmVyLCAxMCldLmNvbmNhdChidWZmZXIpO1xyXG4gICAgICB9LCBbXSk7XHJcblxyXG4gICAgbGV0IGluZGljZTogbnVtYmVyID0gMjtcclxuICAgIGxldCBzb21hOiBudW1iZXIgPSBpbnZlcnRpZG8ucmVkdWNlKFxyXG4gICAgICAoYnVmZmVyOiBudW1iZXIsIG51bWVybzogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgYnVmZmVyICs9IG51bWVybyAqIGluZGljZTtcclxuICAgICAgICBpbmRpY2UgPSAoaW5kaWNlID09PSA5ID8gMiA6IGluZGljZSArIDEpO1xyXG4gICAgICAgIHJldHVybiBidWZmZXI7XHJcbiAgICAgIH0sIDApO1xyXG5cclxuICAgIGxldCBtb2Q6IG51bWJlciA9IHNvbWEgJSAxMTtcclxuICAgIHJldHVybiAobW9kIDwgMiA/IDAgOiAxMSAtIG1vZCk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgZm9ybWF0YXIobnVtZXJvOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgbGV0IHJlZ2V4OiBSZWdFeHAgPSBuZXcgUmVnRXhwKFwiXihcXFxcZHsyfSkoXFxcXGR7M30pKFxcXFxkezN9KShcXFxcZHs0fSkoXFxcXGR7Mn0pJFwiKTtcclxuICAgIHJldHVybiB0aGlzLmxpbXBhcihudW1lcm8pLnJlcGxhY2UocmVnZXgsIFwiJDEuJDIuJDMvJDQtJDVcIik7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgbGltcGFyKG51bWVybzogc3RyaW5nLCBzdHJpY3Q/OiBib29sZWFuKTogc3RyaW5nIHtcclxuICAgIGxldCByZWdleDogUmVnRXhwID0gc3RyaWN0ID8gdGhpcy5TVFJJQ1RfU1RSSVBfUkVHRVggOiB0aGlzLkxPT1NFX1NUUklQX1JFR0VYO1xyXG4gICAgcmV0dXJuIChudW1lcm8gfHwgXCJcIikudG9TdHJpbmcoKS5yZXBsYWNlKHJlZ2V4LCBcIlwiKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIGF0dWFsaXphckNvbURWKG51bWVyb1NlbURWOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgbnVtZXJvU2VtRFYgKz0gdGhpcy5yZXRvcm5hckRpZ2l0byhudW1lcm9TZW1EVik7IC8vIDEzXHJcbiAgICBudW1lcm9TZW1EViArPSB0aGlzLnJldG9ybmFyRGlnaXRvKG51bWVyb1NlbURWKTsgLy8gMTRcclxuICAgIHJldHVybiBudW1lcm9TZW1EVjtcclxuICB9XHJcblxyXG4gIHN0YXRpYyB2YWxpZGFyKG51bWVybzogc3RyaW5nLCBzdHJpY3Q/OiBib29sZWFuKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgbnVtZXJvTGltcG86IHN0cmluZyA9IHRoaXMubGltcGFyKG51bWVybywgc3RyaWN0KTtcclxuXHJcbiAgICBpZiAoIW51bWVyb0xpbXBvKSB7IHJldHVybiBmYWxzZTsgfVxyXG5cclxuICAgIGlmIChudW1lcm9MaW1wby5sZW5ndGggIT09IDE0KSB7IHJldHVybiBmYWxzZTsgfVxyXG5cclxuICAgIGlmICh0aGlzLkxJU1RBX0lHTk9SQURBLmluZGV4T2YobnVtZXJvTGltcG8pID49IDApIHsgcmV0dXJuIGZhbHNlOyB9XHJcblxyXG4gICAgbGV0IG51bWVyb0NvbURWOiBzdHJpbmcgPSB0aGlzLmF0dWFsaXphckNvbURWKG51bWVyb0xpbXBvLnN1YnN0cigwLCAxMikpO1xyXG5cclxuICAgIHJldHVybiBudW1lcm9Db21EVi5zdWJzdHIoLTIpID09PSBudW1lcm9MaW1wby5zdWJzdHIoLTIpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGdlcmFyKGZvcm1hdGFkbzogYm9vbGVhbik6IHN0cmluZyB7XHJcbiAgICBsZXQgbnVtZXJvU2VtRFY6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IDEyOyBpKyspIHtcclxuICAgICAgbnVtZXJvU2VtRFYgKz0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogOSk7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IG51bWVyb0NvbURWOiBzdHJpbmcgPSB0aGlzLmF0dWFsaXphckNvbURWKG51bWVyb1NlbURWKTtcclxuXHJcbiAgICByZXR1cm4gKGZvcm1hdGFkbyA/IHRoaXMuZm9ybWF0YXIobnVtZXJvQ29tRFYpIDogbnVtZXJvQ29tRFYpO1xyXG4gIH1cclxufVxyXG4iXX0=