UNPKG

@hurbis/comum

Version:

Biblioteca contendo rotinas e utilitários para desenvolvimento em Angular.

143 lines • 10.9 kB
/** * @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=