UNPKG

@ngodings/ngx-rupiah

Version:

Angular directive mask for currency Rupiah/IDR support for NgModule or Reactive forms, pipe for currency Rupiah/IDR & pipe for terbilang in Rupiah/IDR

87 lines 11.8 kB
import { Injectable } from "@angular/core"; import * as i0 from "@angular/core"; export class RupiahService { getTerbilang(value) { let valueString = String(value); let result = ''; let i = 0; let j = 0; const angka = new Array('0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0'); const kata = new Array('', 'Satu', 'Dua', 'Tiga', 'Empat', 'Lima', 'Enam', 'Tujuh', 'Delapan', 'Sembilan'); const tingkat = new Array('', 'Ribu', 'Juta', 'Milyar', 'Triliun'); const panjang_valueString = valueString.length; /* pengujian panjang valueString */ if (panjang_valueString > 15) { result = "Diluar Batas"; return result; } /* mengambil angka-angka yang ada dalam valueString, dimasukkan ke dalam array */ for (i = 1; i <= panjang_valueString; i++) { angka[i] = valueString.substr(-(i), 1); } i = 1; j = 0; result = ""; /* mulai proses iterasi terhadap array angka */ while (i <= panjang_valueString) { let subresult = ""; let kata1 = ""; let kata2 = ""; let kata3 = ""; /* untuk Ratusan */ if (angka[i + 2] != "0") { if (angka[i + 2] == "1") { kata1 = "Seratus"; } else { kata1 = kata[angka[i + 2]] + " Ratus"; } } /* untuk Puluhan atau Belasan */ if (angka[i + 1] != "0") { if (angka[i + 1] == "1") { if (angka[i] == "0") { kata2 = "Sepuluh"; } else if (angka[i] == "1") { kata2 = "Sebelas"; } else { kata2 = kata[angka[i]] + " Belas"; } } else { kata2 = kata[angka[i + 1]] + " Puluh"; } } /* untuk Satuan */ if (angka[i] != "0") { if (angka[i + 1] != "1") { kata3 = kata[angka[i]]; } } /* pengujian angka apakah tidak nol semua, lalu ditambahkan tingkat */ if ((angka[i] != "0") || (angka[i + 1] != "0") || (angka[i + 2] != "0")) { subresult = kata1 + " " + kata2 + " " + kata3 + " " + tingkat[j] + " "; } /* gabungkan variabe sub result (untuk Satu blok 3 angka) ke variabel result */ result = subresult + result; i = i + 3; j = j + 1; } /* mengganti Satu Ribu jadi Seribu jika diperlukan */ if ((angka[5] == "0") && (angka[6] == "0")) { result = result.replace("Satu Ribu", "Seribu"); } return result + "Rupiah"; } } RupiahService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RupiahService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); RupiahService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RupiahService, providedIn: 'root' }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: RupiahService, decorators: [{ type: Injectable, args: [{ providedIn: 'root', }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVwaWFoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9uZ3gtcnVwaWFoL3NyYy9saWIvcnVwaWFoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0MsTUFBTSxPQUFPLGFBQWE7SUFDZixZQUFZLENBQUMsS0FBYTtRQUM3QixJQUFJLFdBQVcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBRWhCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNWLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVWLE1BQU0sS0FBSyxHQUFRLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzdHLE1BQU0sSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzNHLE1BQU0sT0FBTyxHQUFHLElBQUksS0FBSyxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUVuRSxNQUFNLG1CQUFtQixHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUM7UUFFL0MsbUNBQW1DO1FBQ25DLElBQUksbUJBQW1CLEdBQUcsRUFBRSxFQUFFO1lBQzFCLE1B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Q3JELElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUU7WUFDeEMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQ2xEO1FBRUQsT0FBTyxNQUFNLEdBQUcsUUFBUSxDQUFDO0lBQzdCLENBQUM7OzBHQXRGUSxhQUFhOzhHQUFiLGFBQWEsY0FGVixNQUFNOzJGQUVULGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFJ1cGlhaFNlcnZpY2Uge1xuICAgIHB1YmxpYyBnZXRUZXJiaWxhbmcodmFsdWU6IG51bWJlcikge1xuICAgICAgICBsZXQgdmFsdWVTdHJpbmcgPSBTdHJpbmcodmFsdWUpO1xuICAgICAgICBsZXQgcmVzdWx0ID0gJyc7XG5cbiAgICAgICAgbGV0IGkgPSAwO1xuICAgICAgICBsZXQgaiA9IDA7XG5cbiAgICAgICAgY29uc3QgYW5na2E6IGFueSA9IG5ldyBBcnJheSgnMCcsICcwJywgJzAnLCAnMCcsICcwJywgJzAnLCAnMCcsICcwJywgJzAnLCAnMCcsICcwJywgJzAnLCAnMCcsICcwJywgJzAnLCAnMCcpO1xuICAgICAgICBjb25zdCBrYXRhID0gbmV3IEFycmF5KCcnLCAnU2F0dScsICdEdWEnLCAnVGlnYScsICdFbXBhdCcsICdMaW1hJywgJ0VuYW0nLCAnVHVqdWgnLCAnRGVsYXBhbicsICdTZW1iaWxhbicpO1xuICAgICAgICBjb25zdCB0aW5na2F0ID0gbmV3IEFycmF5KCcnLCAnUmlidScsICdKdXRhJywgJ01pbHlhcicsICdUcmlsaXVuJyk7XG5cbiAgICAgICAgY29uc3QgcGFuamFuZ192YWx1ZVN0cmluZyA9IHZhbHVlU3RyaW5nLmxlbmd0aDtcblxuICAgICAgICAvKiBwZW5ndWppYW4gcGFuamFuZyB2YWx1ZVN0cmluZyAqL1xuICAgICAgICBpZiAocGFuamFuZ192YWx1ZVN0cmluZyA+IDE1KSB7XG4gICAgICAgICAgICByZXN1bHQgPSBcIkRpbHVhciBCYXRhc1wiO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIG1lbmdhbWJpbCBhbmdrYS1hbmdrYSB5YW5nIGFkYSBkYWxhbSB2YWx1ZVN0cmluZywgZGltYXN1a2thbiBrZSBkYWxhbSBhcnJheSAqL1xuICAgICAgICBmb3IgKGkgPSAxOyBpIDw9IHBhbmphbmdfdmFsdWVTdHJpbmc7IGkrKykge1xuICAgICAgICAgICAgYW5na2FbaV0gPSB2YWx1ZVN0cmluZy5zdWJzdHIoLShpKSwgMSk7XG4gICAgICAgIH1cblxuICAgICAgICBpID0gMTtcbiAgICAgICAgaiA9IDA7XG4gICAgICAgIHJlc3VsdCA9IFwiXCI7XG5cbiAgICAgICAgLyogbXVsYWkgcHJvc2VzIGl0ZXJhc2kgdGVyaGFkYXAgYXJyYXkgYW5na2EgKi9cbiAgICAgICAgd2hpbGUgKGkgPD0gcGFuamFuZ192YWx1ZVN0cmluZykge1xuXG4gICAgICAgICAgICBsZXQgc3VicmVzdWx0ID0gXCJcIjtcbiAgICAgICAgICAgIGxldCBrYXRhMSA9IFwiXCI7XG4gICAgICAgICAgICBsZXQga2F0YTIgPSBcIlwiO1xuICAgICAgICAgICAgbGV0IGthdGEzID0gXCJcIjtcblxuICAgICAgICAgICAgLyogdW50dWsgUmF0dXNhbiAqL1xuICAgICAgICAgICAgaWYgKGFuZ2thW2kgKyAyXSAhPSBcIjBcIikge1xuICAgICAgICAgICAgICAgIGlmIChhbmdrYVtpICsgMl0gPT0gXCIxXCIpIHtcbiAgICAgICAgICAgICAgICAgICAga2F0YTEgPSBcIlNlcmF0dXNcIjtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBrYXRhMSA9IGthdGFbYW5na2FbaSArIDJdXSArIFwiIFJhdHVzXCI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiB1bnR1ayBQdWx1aGFuIGF0YXUgQmVsYXNhbiAqL1xuICAgICAgICAgICAgaWYgKGFuZ2thW2kgKyAxXSAhPSBcIjBcIikge1xuICAgICAgICAgICAgICAgIGlmIChhbmdrYVtpICsgMV0gPT0gXCIxXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGFuZ2thW2ldID09IFwiMFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBrYXRhMiA9IFwiU2VwdWx1aFwiO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFuZ2thW2ldID09IFwiMVwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBrYXRhMiA9IFwiU2ViZWxhc1wiO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAga2F0YTIgPSBrYXRhW2FuZ2thW2ldXSArIFwiIEJlbGFzXCI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBrYXRhMiA9IGthdGFbYW5na2FbaSArIDFdXSArIFwiIFB1bHVoXCI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiB1bnR1ayBTYXR1YW4gKi9cbiAgICAgICAgICAgIGlmIChhbmdrYVtpXSAhPSBcIjBcIikge1xuICAgICAgICAgICAgICAgIGlmIChhbmdrYVtpICsgMV0gIT0gXCIxXCIpIHtcbiAgICAgICAgICAgICAgICAgICAga2F0YTMgPSBrYXRhW2FuZ2thW2ldXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHBlbmd1amlhbiBhbmdrYSBhcGFrYWggdGlkYWsgbm9sIHNlbXVhLCBsYWx1IGRpdGFtYmFoa2FuIHRpbmdrYXQgKi9cbiAgICAgICAgICAgIGlmICgoYW5na2FbaV0gIT0gXCIwXCIpIHx8IChhbmdrYVtpICsgMV0gIT0gXCIwXCIpIHx8IChhbmdrYVtpICsgMl0gIT0gXCIwXCIpKSB7XG4gICAgICAgICAgICAgICAgc3VicmVzdWx0ID0ga2F0YTEgKyBcIiBcIiArIGthdGEyICsgXCIgXCIgKyBrYXRhMyArIFwiIFwiICsgdGluZ2thdFtqXSArIFwiIFwiO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBnYWJ1bmdrYW4gdmFyaWFiZSBzdWIgcmVzdWx0ICh1bnR1ayBTYXR1IGJsb2sgMyBhbmdrYSkga2UgdmFyaWFiZWwgcmVzdWx0ICovXG4gICAgICAgICAgICByZXN1bHQgPSBzdWJyZXN1bHQgKyByZXN1bHQ7XG4gICAgICAgICAgICBpID0gaSArIDM7XG4gICAgICAgICAgICBqID0gaiArIDE7XG5cbiAgICAgICAgfVxuXG4gICAgICAgIC8qIG1lbmdnYW50aSBTYXR1IFJpYnUgamFkaSBTZXJpYnUgamlrYSBkaXBlcmx1a2FuICovXG4gICAgICAgIGlmICgoYW5na2FbNV0gPT0gXCIwXCIpICYmIChhbmdrYVs2XSA9PSBcIjBcIikpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKFwiU2F0dSBSaWJ1XCIsIFwiU2VyaWJ1XCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdCArIFwiUnVwaWFoXCI7XG4gICAgfVxufSJdfQ==