UNPKG

ngx-rutificador

Version:
72 lines 8.41 kB
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==