UNPKG

@satheshsat/angular-cpf

Version:

CPF generator and validator

115 lines (108 loc) 4.36 kB
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