@koalarx/ui
Version:
Koala UI is a Design System developed in Angular whose objective is to facilitate and make your development faster and simpler, making this framework your greatest ally.
86 lines • 11.7 kB
JavaScript
export class ValidationHelper {
static validateCpf(value) {
function calcChecker1(digits) {
let sum = null;
for (let j = 0; j < 9; ++j) {
sum += digits.toString().charAt(j) * (10 - j);
}
const lastSumChecker1 = sum % 11;
return lastSumChecker1 < 2 ? 0 : 11 - lastSumChecker1;
}
function calcChecker2(cpfWithChecker1) {
let sum = null;
for (let k = 0; k < 10; ++k) {
sum += cpfWithChecker1.toString().charAt(k) * (11 - k);
}
const lastSumChecker2 = sum % 11;
return lastSumChecker2 < 2 ? 0 : 11 - lastSumChecker2;
}
const cleanCPF = value.replace(/\.|\-|\s/g, '');
const firstNineDigits = cleanCPF.substring(0, 9);
const checker = cleanCPF.substring(9, 11);
if (cleanCPF.length !== 11) {
return false;
}
// Checking if all digits are equal
for (let i = 0; i < 10; i++) {
if ('' + firstNineDigits + checker === Array(12).join(`${i}`)) {
return false;
}
}
const checker1 = calcChecker1(firstNineDigits);
const checker2 = calcChecker2(firstNineDigits + '' + checker1);
return checker.toString() === checker1.toString() + checker2.toString();
}
static validateCnpj(value) {
value = value.replace(/[^\d]+/g, '');
if (value === '') {
return false;
}
if (value.length !== 14) {
return false;
}
// Elimina CNPJs invalidos conhecidos
if (value === '00000000000000' ||
value === '11111111111111' ||
value === '22222222222222' ||
value === '33333333333333' ||
value === '44444444444444' ||
value === '55555555555555' ||
value === '66666666666666' ||
value === '77777777777777' ||
value === '88888888888888' ||
value === '99999999999999') {
return false;
}
// Valida DVs
let tamanho = value.length - 2;
let numeros = value.substring(0, tamanho);
const digitos = value.substring(tamanho);
let soma = 0;
let pos = tamanho - 7;
for (let i = tamanho; i >= 1; i--) {
soma += parseInt(numeros.charAt(tamanho - i), 10) * pos--;
if (pos < 2) {
pos = 9;
}
}
let resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
if (resultado !== parseInt(digitos.charAt(0), 10)) {
return false;
}
tamanho = tamanho + 1;
numeros = value.substring(0, tamanho);
soma = 0;
pos = tamanho - 7;
for (let i = tamanho; i >= 1; i--) {
soma += parseInt(numeros.charAt(tamanho - i), 10) * pos--;
if (pos < 2) {
pos = 9;
}
}
resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
return !(resultado !== parseInt(digitos.charAt(1), 10));
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtL3NyYy9saWIvZHluYW1pYy1mb3JtL3ZhbGlkYXRvcnMvdmFsaWRhdGlvbi5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLGdCQUFnQjtJQUNwQixNQUFNLENBQUMsV0FBVyxDQUFDLEtBQWE7UUFDckMsU0FBUyxZQUFZLENBQUMsTUFBVztZQUMvQixJQUFJLEdBQUcsR0FBa0IsSUFBSSxDQUFDO1lBRTlCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUU7Z0JBQzFCLEdBQUcsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQy9DO1lBRUQsTUFBTSxlQUFlLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUVqQyxPQUFPLGVBQWUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLGVBQWUsQ0FBQztRQUN4RCxDQUFDO1FBRUQsU0FBUyxZQUFZLENBQUMsZUFBb0I7WUFDeEMsSUFBSSxHQUFHLEdBQWtCLElBQUksQ0FBQztZQUU5QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFO2dCQUMzQixHQUFHLElBQUksZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQzthQUN4RDtZQUVELE1BQU0sZUFBZSxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFFakMsT0FBTyxlQUFlLEdBQUcsQ0FBQyxDQUFD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QUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNuRCxJQUFJLFNBQVMsS0FBSyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRTtZQUNqRCxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsT0FBTyxHQUFHLE9BQU8sR0FBRyxDQUFDLENBQUM7UUFDdEIsT0FBTyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3RDLElBQUksR0FBRyxDQUFDLENBQUM7UUFDVCxHQUFHLEdBQUcsT0FBTyxHQUFHLENBQUMsQ0FBQztRQUNsQixLQUFLLElBQUksQ0FBQyxHQUFHLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2pDLElBQUksSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDMUQsSUFBSSxHQUFHLEdBQUcsQ0FBQyxFQUFFO2dCQUNYLEdBQUcsR0FBRyxDQUFDLENBQUM7YUFDVDtTQUNGO1FBQ0QsU0FBUyxHQUFHLElBQUksR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRS9DLE9BQU8sQ0FBQyxDQUFDLFNBQVMsS0FBSyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzFELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBWYWxpZGF0aW9uSGVscGVyIHtcbiAgcHVibGljIHN0YXRpYyB2YWxpZGF0ZUNwZih2YWx1ZTogc3RyaW5nKSB7XG4gICAgZnVuY3Rpb24gY2FsY0NoZWNrZXIxKGRpZ2l0czogYW55KSB7XG4gICAgICBsZXQgc3VtOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCA5OyArK2opIHtcbiAgICAgICAgc3VtICs9IGRpZ2l0cy50b1N0cmluZygpLmNoYXJBdChqKSAqICgxMCAtIGopO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBsYXN0U3VtQ2hlY2tlcjEgPSBzdW0gJSAxMTtcblxuICAgICAgcmV0dXJuIGxhc3RTdW1DaGVja2VyMSA8IDIgPyAwIDogMTEgLSBsYXN0U3VtQ2hlY2tlcjE7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY2FsY0NoZWNrZXIyKGNwZldpdGhDaGVja2VyMTogYW55KSB7XG4gICAgICBsZXQgc3VtOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgICAgZm9yIChsZXQgayA9IDA7IGsgPCAxMDsgKytrKSB7XG4gICAgICAgIHN1bSArPSBjcGZXaXRoQ2hlY2tlcjEudG9TdHJpbmcoKS5jaGFyQXQoaykgKiAoMTEgLSBrKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbGFzdFN1bUNoZWNrZXIyID0gc3VtICUgMTE7XG5cbiAgICAgIHJldHVybiBsYXN0U3VtQ2hlY2tlcjIgPCAyID8gMCA6IDExIC0gbGFzdFN1bUNoZWNrZXIyO1xuICAgIH1cblxuICAgIGNvbnN0IGNsZWFuQ1BGID0gdmFsdWUucmVwbGFjZSgvXFwufFxcLXxcXHMvZywgJycpO1xuICAgIGNvbnN0IGZpcnN0TmluZURpZ2l0cyA9IGNsZWFuQ1BGLnN1YnN0cmluZygwLCA5KTtcbiAgICBjb25zdCBjaGVja2VyID0gY2xlYW5DUEYuc3Vic3RyaW5nKDksIDExKTtcblxuICAgIGlmIChjbGVhbkNQRi5sZW5ndGggIT09IDExKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gQ2hlY2tpbmcgaWYgYWxsIGRpZ2l0cyBhcmUgZXF1YWxcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IDEwOyBpKyspIHtcbiAgICAgIGlmICgnJyArIGZpcnN0TmluZURpZ2l0cyArIGNoZWNrZXIgPT09IEFycmF5KDEyKS5qb2luKGAke2l9YCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGNoZWNrZXIxID0gY2FsY0NoZWNrZXIxKGZpcnN0TmluZURpZ2l0cyk7XG4gICAgY29uc3QgY2hlY2tlcjIgPSBjYWxjQ2hlY2tlcjIoZmlyc3ROaW5lRGlnaXRzICsgJycgKyBjaGVja2VyMSk7XG5cbiAgICByZXR1cm4gY2hlY2tlci50b1N0cmluZygpID09PSBjaGVja2VyMS50b1N0cmluZygpICsgY2hlY2tlcjIudG9TdHJpbmcoKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgdmFsaWRhdGVDbnBqKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL1teXFxkXSsvZywgJycpO1xuXG4gICAgaWYgKHZhbHVlID09PSAnJykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICh2YWx1ZS5sZW5ndGggIT09IDE0KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gRWxpbWluYSBDTlBKcyBpbnZhbGlkb3MgY29uaGVjaWRvc1xuICAgIGlmICh2YWx1ZSA9PT0gJzAwMDAwMDAwMDAwMDAwJyB8fFxuICAgICAgdmFsdWUgPT09ICcxMTExMTExMTExMTExMScgfHxcbiAgICAgIHZhbHVlID09PSAnMjIyMjIyMjIyMjIyMjInIHx8XG4gICAgICB2YWx1ZSA9PT0gJzMzMzMzMzMzMzMzMzMzJyB8fFxuICAgICAgdmFsdWUgPT09ICc0NDQ0NDQ0NDQ0NDQ0NCcgfHxcbiAgICAgIHZhbHVlID09PSAnNTU1NTU1NTU1NTU1NTUnIHx8XG4gICAgICB2YWx1ZSA9PT0gJzY2NjY2NjY2NjY2NjY2JyB8fFxuICAgICAgdmFsdWUgPT09ICc3Nzc3Nzc3Nzc3Nzc3NycgfHxcbiAgICAgIHZhbHVlID09PSAnODg4ODg4ODg4ODg4ODgnIHx8XG4gICAgICB2YWx1ZSA9PT0gJzk5OTk5OTk5OTk5OTk5Jykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIFZhbGlkYSBEVnNcbiAgICBsZXQgdGFtYW5obyA9IHZhbHVlLmxlbmd0aCAtIDI7XG4gICAgbGV0IG51bWVyb3MgPSB2YWx1ZS5zdWJzdHJpbmcoMCwgdGFtYW5obyk7XG4gICAgY29uc3QgZGlnaXRvcyA9IHZhbHVlLnN1YnN0cmluZyh0YW1hbmhvKTtcbiAgICBsZXQgc29tYSA9IDA7XG4gICAgbGV0IHBvcyA9IHRhbWFuaG8gLSA3O1xuICAgIGZvciAobGV0IGkgPSB0YW1hbmhvOyBpID49IDE7IGktLSkge1xuICAgICAgc29tYSArPSBwYXJzZUludChudW1lcm9zLmNoYXJBdCh0YW1hbmhvIC0gaSksIDEwKSAqIHBvcy0tO1xuICAgICAgaWYgKHBvcyA8IDIpIHtcbiAgICAgICAgcG9zID0gOTtcbiAgICAgIH1cbiAgICB9XG4gICAgbGV0IHJlc3VsdGFkbyA9IHNvbWEgJSAxMSA8IDIgPyAwIDogMTEgLSBzb21hICUgMTE7XG4gICAgaWYgKHJlc3VsdGFkbyAhPT0gcGFyc2VJbnQoZGlnaXRvcy5jaGFyQXQoMCksIDEwKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHRhbWFuaG8gPSB0YW1hbmhvICsgMTtcbiAgICBudW1lcm9zID0gdmFsdWUuc3Vic3RyaW5nKDAsIHRhbWFuaG8pO1xuICAgIHNvbWEgPSAwO1xuICAgIHBvcyA9IHRhbWFuaG8gLSA3O1xuICAgIGZvciAobGV0IGkgPSB0YW1hbmhvOyBpID49IDE7IGktLSkge1xuICAgICAgc29tYSArPSBwYXJzZUludChudW1lcm9zLmNoYXJBdCh0YW1hbmhvIC0gaSksIDEwKSAqIHBvcy0tO1xuICAgICAgaWYgKHBvcyA8IDIpIHtcbiAgICAgICAgcG9zID0gOTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmVzdWx0YWRvID0gc29tYSAlIDExIDwgMiA/IDAgOiAxMSAtIHNvbWEgJSAxMTtcblxuICAgIHJldHVybiAhKHJlc3VsdGFkbyAhPT0gcGFyc2VJbnQoZGlnaXRvcy5jaGFyQXQoMSksIDEwKSk7XG4gIH1cbn1cbiJdfQ==