@satheshsat/angular-cpf
Version:
CPF generator and validator
115 lines (108 loc) • 4.36 kB
JavaScript
import * as i0 from '@angular/core';
import { Injectable, Component, NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
class CpfService {
constructor() { }
validate(cpf) {
if (!cpf)
return false;
cpf = cpf.toString().replace(/\D+/g, '');
// Valida tamanho
if (+cpf.length !== 11)
return false;
// check all char are same
if ((/^(.)\1+$/.test(cpf)))
return false;
// Calcula e confere primeiro dígito verificador
for (var i = 0, j = 10, soma = 0; i < 9; i++, j--)
soma += cpf[i] * j;
var resto = soma % 11;
if (+cpf[9] !== +(resto < 2 ? 0 : 11 - resto))
return false;
// Calcula e confere segundo dígito verificador
for (i = 0, j = 11, soma = 0; i < 10; i++, j--)
soma += cpf[i] * j;
resto = soma % 11;
return +cpf[10] === +(resto < 2 ? 0 : 11 - resto);
}
generate() {
var cpf = Math.floor(100000000 + Math.random() * 900000000);
var reverseCpf = cpf.toString().split('').reverse();
var d1 = 0, d2 = 0;
for (var i = 0; i < reverseCpf.length; i++) {
d1 += reverseCpf[i] * (2 + i);
d2 += reverseCpf[i] * (3 + i);
}
d1 = 11 - (this.mod(d1, 11));
if (d1 >= 10)
d1 = 0;
d2 += d1 * 2;
d2 = 11 - (this.mod(d2, 11));
if (d2 >= 10)
d2 = 0;
return '' + cpf + d1 + d2;
}
mod(dividendo, divisor) {
return Math.round(dividendo - (Math.floor(dividendo / divisor) * divisor));
}
}
CpfService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CpfService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
CpfService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CpfService, providedIn: 'root' });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CpfService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}], ctorParameters: function () { return []; } });
class CpfComponent {
constructor() { }
ngOnInit() {
}
}
CpfComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CpfComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
CpfComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: CpfComponent, selector: "lib-cpf", ngImport: i0, template: `
<p>
cpf works!
</p>
`, isInline: true });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CpfComponent, decorators: [{
type: Component,
args: [{
selector: 'lib-cpf',
template: `
<p>
cpf works!
</p>
`,
styles: []
}]
}], ctorParameters: function () { return []; } });
class CpfModule {
}
CpfModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CpfModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
CpfModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CpfModule, declarations: [CpfComponent], imports: [BrowserModule], exports: [CpfComponent] });
CpfModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CpfModule, imports: [[
BrowserModule
]] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CpfModule, decorators: [{
type: NgModule,
args: [{
declarations: [
CpfComponent
],
imports: [
BrowserModule
],
exports: [
CpfComponent
]
}]
}] });
/*
* Public API Surface of cpf
*/
/**
* Generated bundle index. Do not edit.
*/
export { CpfComponent, CpfModule, CpfService };
//# sourceMappingURL=satheshsat-angular-cpf.mjs.map