ngx-rutificador
Version:
72 lines • 8.41 kB
JavaScript
import { Injectable } from '@angular/core';
import * as i0 from "@angular/core";
export class NgxRutificadorService {
constructor() { }
validateRut(params) {
let value = this.cleanRut(params);
let sum = 0;
let rut = value.substring(0, value.length - 1);
let dv = value.substring(value.length - 1);
if (dv.toUpperCase() == 'K') {
dv = '10';
}
let resultDv;
let arrRut = rut.split('');
if (arrRut.length < 7) {
return false;
}
else {
let b = 0;
let c = 0;
let arrResult = [];
var arrReverse = arrRut.reverse();
arrReverse.map((value, index) => {
if (index > 5) {
arrResult[b] = Number(value) * (2 + c);
c++;
}
else {
arrResult[b] = Number(value) * (2 + b);
}
b++;
});
arrResult.map((value) => {
sum += value;
});
resultDv = 11 - (sum - Math.trunc(sum / 11) * 11);
if (resultDv > 9 && dv == "0") {
return true;
}
if (resultDv == Number(dv)) {
return true;
}
else {
return false;
}
}
}
formatRut(value) {
const rut = this.cleanRut(value);
if (rut.length <= 1) {
return rut;
}
let result = `${rut.slice(-4, -1)}-${rut.substr(rut.length - 1)}`;
for (let i = 4; i < rut.length; i += 3) {
result = `${rut.slice(-3 - i, -i)}.${result}`;
}
return result;
}
cleanRut(num) {
let value = num.toString().split('.').join('').split('-').join('');
return value;
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: NgxRutificadorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: NgxRutificadorService, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: NgxRutificadorService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}], ctorParameters: () => [] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXJ1dGlmaWNhZG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnV0aWZpY2Fkb3Ivc3JjL2xpYi9uZ3gtcnV0aWZpY2Fkb3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8scUJBQXFCO0lBRWhDLGdCQUFnQixDQUFDO0lBRWpCLFdBQVcsQ0FBQyxNQUFjO1FBQ3hCLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDakMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ1osSUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMvQyxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDM0MsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLElBQUksR0FBRyxFQUFFLENBQUM7WUFDNUIsRUFBRSxHQUFHLElBQUksQ0FBQTtRQUNYLENBQUM7UUFDRCxJQUFJLFFBQVEsQ0FBQTtRQUNaLElBQUksTUFBTSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDMUIsSUFBSSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3RCLE9BQU8sS0FBSyxDQUFBO1FBQ2QsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDVCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDVCxJQUFJLFNBQVMsR0FBYSxFQUFFLENBQUE7WUFDNUIsSUFBSSxVQUFVLEdBQUcsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFBO1lBQ2pDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFhLEVBQUUsS0FBYSxFQUFFLEVBQUU7Z0JBQzlDLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUNkLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUE7b0JBQ3RDLENBQUMsRUFBRSxDQUFBO2dCQUNMLENBQUM7cUJBQU0sQ0FBQztvQkFDTixTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO2dCQUN4QyxDQUFDO2dCQUNELENBQUMsRUFBRSxDQUFBO1lBQ0wsQ0FBQyxDQUFDLENBQUE7WUFDRixTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ3RCLEdBQUcsSUFBSSxLQUFLLENBQUE7WUFDZCxDQUFDLENBQUMsQ0FBQTtZQUNGLFFBQVEsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUE7WUFDakQsSUFBSSxRQUFRLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDOUIsT0FBTyxJQUFJLENBQUE7WUFDYixDQUFDO1lBQ0QsSUFBSSxRQUFRLElBQUksTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0JBQzNCLE9BQU8sSUFBSSxDQUFBO1lBQ2IsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sS0FBSyxDQUFBO1lBQ2QsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQWE7UUFDckIsTUFBTSxHQUFHLEdBQVcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV6QyxJQUFJLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDcEIsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDO1FBRUQsSUFBSSxNQUFNLEdBQVcsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDMUUsS0FBSyxJQUFJLENBQUMsR0FBVyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQy9DLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksTUFBTSxFQUFFLENBQUM7UUFDaEQsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxRQUFRLENBQUMsR0FBb0I7UUFDM0IsSUFBSSxLQUFLLEdBQUcsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtRQUNsRSxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7OEdBL0RVLHFCQUFxQjtrSEFBckIscUJBQXFCLGNBRnBCLE1BQU07OzJGQUVQLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3hSdXRpZmljYWRvclNlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICB2YWxpZGF0ZVJ1dChwYXJhbXM6IHN0cmluZykge1xyXG4gICAgbGV0IHZhbHVlID0gdGhpcy5jbGVhblJ1dChwYXJhbXMpXHJcbiAgICBsZXQgc3VtID0gMDtcclxuICAgIGxldCBydXQgPSB2YWx1ZS5zdWJzdHJpbmcoMCwgdmFsdWUubGVuZ3RoIC0gMSk7XHJcbiAgICBsZXQgZHYgPSB2YWx1ZS5zdWJzdHJpbmcodmFsdWUubGVuZ3RoIC0gMSk7XHJcbiAgICBpZiAoZHYudG9VcHBlckNhc2UoKSA9PSAnSycpIHtcclxuICAgICAgZHYgPSAnMTAnXHJcbiAgICB9XHJcbiAgICBsZXQgcmVzdWx0RHZcclxuICAgIGxldCBhcnJSdXQgPSBydXQuc3BsaXQoJycpXHJcbiAgICBpZiAoYXJyUnV0Lmxlbmd0aCA8IDcpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgYiA9IDBcclxuICAgICAgbGV0IGMgPSAwXHJcbiAgICAgIGxldCBhcnJSZXN1bHQ6IG51bWJlcltdID0gW11cclxuICAgICAgdmFyIGFyclJldmVyc2UgPSBhcnJSdXQucmV2ZXJzZSgpXHJcbiAgICAgIGFyclJldmVyc2UubWFwKCh2YWx1ZTogc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgaWYgKGluZGV4ID4gNSkge1xyXG4gICAgICAgICAgYXJyUmVzdWx0W2JdID0gTnVtYmVyKHZhbHVlKSAqICgyICsgYylcclxuICAgICAgICAgIGMrK1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBhcnJSZXN1bHRbYl0gPSBOdW1iZXIodmFsdWUpICogKDIgKyBiKVxyXG4gICAgICAgIH1cclxuICAgICAgICBiKytcclxuICAgICAgfSlcclxuICAgICAgYXJyUmVzdWx0Lm1hcCgodmFsdWUpID0+IHtcclxuICAgICAgICBzdW0gKz0gdmFsdWVcclxuICAgICAgfSlcclxuICAgICAgcmVzdWx0RHYgPSAxMSAtIChzdW0gLSBNYXRoLnRydW5jKHN1bSAvIDExKSAqIDExKVxyXG4gICAgICBpZiAocmVzdWx0RHYgPiA5ICYmIGR2ID09IFwiMFwiKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWVcclxuICAgICAgfVxyXG4gICAgICBpZiAocmVzdWx0RHYgPT0gTnVtYmVyKGR2KSkge1xyXG4gICAgICAgIHJldHVybiB0cnVlXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZvcm1hdFJ1dCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBydXQ6IHN0cmluZyA9IHRoaXMuY2xlYW5SdXQodmFsdWUpO1xyXG4gIFxyXG4gICAgaWYgKHJ1dC5sZW5ndGggPD0gMSkge1xyXG4gICAgICByZXR1cm4gcnV0O1xyXG4gICAgfVxyXG4gIFxyXG4gICAgbGV0IHJlc3VsdDogc3RyaW5nID0gYCR7cnV0LnNsaWNlKC00LCAtMSl9LSR7cnV0LnN1YnN0cihydXQubGVuZ3RoIC0gMSl9YDtcclxuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDQ7IGkgPCBydXQubGVuZ3RoOyBpICs9IDMpIHtcclxuICAgICAgcmVzdWx0ID0gYCR7cnV0LnNsaWNlKC0zIC0gaSwgLWkpfS4ke3Jlc3VsdH1gO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcblxyXG4gIGNsZWFuUnV0KG51bTogbnVtYmVyIHwgc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGxldCB2YWx1ZSA9IG51bS50b1N0cmluZygpLnNwbGl0KCcuJykuam9pbignJykuc3BsaXQoJy0nKS5qb2luKCcnKVxyXG4gICAgcmV0dXJuIHZhbHVlXHJcbiAgfVxyXG59XHJcbiJdfQ==