@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
JavaScript
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVwaWFoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9uZ3gtcnVwaWFoL3NyYy9saWIvcnVwaWFoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0MsTUFBTSxPQUFPLGFBQWE7SUFDZixZQUFZLENBQUMsS0FBYTtRQUM3QixJQUFJLFdBQVcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBRWhCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNWLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVWLE1BQU0sS0FBSyxHQUFRLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzdHLE1BQU0sSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzNHLE1BQU0sT0FBTyxHQUFHLElBQUksS0FBSyxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUVuRSxNQUFNLG1CQUFtQixHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUM7UUFFL0MsbUNBQW1DO1FBQ25DLElBQUksbUJBQW1CLEdBQUcsRUFBRSxFQUFFO1lBQzFCLE1BQU0sR0FBRyxjQUFjLENBQUM7WUFDeEIsT0FBTyxNQUFNLENBQUM7U0FDakI7UUFFRCxpRkFBaUY7UUFDakYsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxtQkFBbUIsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN2QyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDMUM7UUFFRCxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ04sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNOLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFFWiwrQ0FBK0M7UUFDL0MsT0FBTyxDQUFDLElBQUksbUJBQW1CLEVBQUU7WUFFN0IsSUFBSSxTQUFTLEdBQUcsRUFBRSxDQUFDO1lBQ25CLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNmLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNmLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUVmLG1CQUFtQjtZQUNuQixJQUFJLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksR0FBRyxFQUFFO2dCQUNyQixJQUFJLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksR0FBRyxFQUFFO29CQUNyQixLQUFLLEdBQUcsU0FBUyxDQUFDO2lCQUNyQjtxQkFBTTtvQkFDSCxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUM7aUJBQ3pDO2FBQ0o7WUFFRCxnQ0FBZ0M7WUFDaEMsSUFBSSxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEdBQUcsRUFBRTtnQkFDckIsSUFBSSxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEdBQUcsRUFBRTtvQkFDckIsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxFQUFFO3dCQUNqQixLQUFLLEdBQUcsU0FBUyxDQUFDO3FCQUNyQjt5QkFBTSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQUU7d0JBQ3hCLEtBQUssR0FBRyxTQUFTLENBQUM7cUJBQ3JCO3lCQUFNO3dCQUNILEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDO3FCQUNyQztpQkFDSjtxQkFBTTtvQkFDSCxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUM7aUJBQ3pDO2FBQ0o7WUFFRCxrQkFBa0I7WUFDbEIsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxFQUFFO2dCQUNqQixJQUFJLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksR0FBRyxFQUFFO29CQUNyQixLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUMxQjthQUNKO1lBRUQsc0VBQXNFO1lBQ3RFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRTtnQkFDckUsU0FBUyxHQUFHLEtBQUssR0FBRyxHQUFHLEdBQUcsS0FBSyxHQUFHLEdBQUcsR0FBRyxLQUFLLEdBQUcsR0FBRyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7YUFDMUU7WUFFRCwrRUFBK0U7WUFDL0UsTUFBTSxHQUFHLFNBQVMsR0FBRyxNQUFNLENBQUM7WUFDNUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDVixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUViO1FBRUQscURBQXFEO1FBQ3JELElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUU7WUFDeEMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQ2xEO1FBRUQsT0FBTyxNQUFNLEdBQUcsUUFBUSxDQUFDO0lBQzdCLENBQUM7OzBHQXRGUSxhQUFhOzhHQUFiLGFBQWEsY0FGVixNQUFNOzJGQUVULGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFJ1cGlhaFNlcnZpY2Uge1xuICAgIHB1YmxpYyBnZXRUZXJiaWxhbmcodmFsdWU6IG51bWJlcikge1xuICAgICAgICBsZXQgdmFsdWVTdHJpbmcgPSBTdHJpbmcodmFsdWUpO1xuICAgICAgICBsZXQgcmVzdWx0ID0gJyc7XG5cbiAgICAgICAgbGV0IGkgPSAwO1xuICAgICAgICBsZXQgaiA9IDA7XG5cbiAgICAgICAgY29uc3QgYW5na2E6IGFueSA9IG5ldyBBcnJheSgnMCcsICcwJywgJzAnLCAnMCcsICcwJywgJzAnLCAnMCcsICcwJywgJzAnLCAnMCcsICcwJywgJzAnLCAnMCcsICcwJywgJzAnLCAnMCcpO1xuICAgICAgICBjb25zdCBrYXRhID0gbmV3IEFycmF5KCcnLCAnU2F0dScsICdEdWEnLCAnVGlnYScsICdFbXBhdCcsICdMaW1hJywgJ0VuYW0nLCAnVHVqdWgnLCAnRGVsYXBhbicsICdTZW1iaWxhbicpO1xuICAgICAgICBjb25zdCB0aW5na2F0ID0gbmV3IEFycmF5KCcnLCAnUmlidScsICdKdXRhJywgJ01pbHlhcicsICdUcmlsaXVuJyk7XG5cbiAgICAgICAgY29uc3QgcGFuamFuZ192YWx1ZVN0cmluZyA9IHZhbHVlU3RyaW5nLmxlbmd0aDtcblxuICAgICAgICAvKiBwZW5ndWppYW4gcGFuamFuZyB2YWx1ZVN0cmluZyAqL1xuICAgICAgICBpZiAocGFuamFuZ192YWx1ZVN0cmluZyA+IDE1KSB7XG4gICAgICAgICAgICByZXN1bHQgPSBcIkRpbHVhciBCYXRhc1wiO1xuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIG1lbmdhbWJpbCBhbmdrYS1hbmdrYSB5YW5nIGFkYSBkYWxhbSB2YWx1ZVN0cmluZywgZGltYXN1a2thbiBrZSBkYWxhbSBhcnJheSAqL1xuICAgICAgICBmb3IgKGkgPSAxOyBpIDw9IHBhbmphbmdfdmFsdWVTdHJpbmc7IGkrKykge1xuICAgICAgICAgICAgYW5na2FbaV0gPSB2YWx1ZVN0cmluZy5zdWJzdHIoLShpKSwgMSk7XG4gICAgICAgIH1cblxuICAgICAgICBpID0gMTtcbiAgICAgICAgaiA9IDA7XG4gICAgICAgIHJlc3VsdCA9IFwiXCI7XG5cbiAgICAgICAgLyogbXVsYWkgcHJvc2VzIGl0ZXJhc2kgdGVyaGFkYXAgYXJyYXkgYW5na2EgKi9cbiAgICAgICAgd2hpbGUgKGkgPD0gcGFuamFuZ192YWx1ZVN0cmluZykge1xuXG4gICAgICAgICAgICBsZXQgc3VicmVzdWx0ID0gXCJcIjtcbiAgICAgICAgICAgIGxldCBrYXRhMSA9IFwiXCI7XG4gICAgICAgICAgICBsZXQga2F0YTIgPSBcIlwiO1xuICAgICAgICAgICAgbGV0IGthdGEzID0gXCJcIjtcblxuICAgICAgICAgICAgLyogdW50dWsgUmF0dXNhbiAqL1xuICAgICAgICAgICAgaWYgKGFuZ2thW2kgKyAyXSAhPSBcIjBcIikge1xuICAgICAgICAgICAgICAgIGlmIChhbmdrYVtpICsgMl0gPT0gXCIxXCIpIHtcbiAgICAgICAgICAgICAgICAgICAga2F0YTEgPSBcIlNlcmF0dXNcIjtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBrYXRhMSA9IGthdGFbYW5na2FbaSArIDJdXSArIFwiIFJhdHVzXCI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiB1bnR1ayBQdWx1aGFuIGF0YXUgQmVsYXNhbiAqL1xuICAgICAgICAgICAgaWYgKGFuZ2thW2kgKyAxXSAhPSBcIjBcIikge1xuICAgICAgICAgICAgICAgIGlmIChhbmdrYVtpICsgMV0gPT0gXCIxXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGFuZ2thW2ldID09IFwiMFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBrYXRhMiA9IFwiU2VwdWx1aFwiO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFuZ2thW2ldID09IFwiMVwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBrYXRhMiA9IFwiU2ViZWxhc1wiO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAga2F0YTIgPSBrYXRhW2FuZ2thW2ldXSArIFwiIEJlbGFzXCI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBrYXRhMiA9IGthdGFbYW5na2FbaSArIDFdXSArIFwiIFB1bHVoXCI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiB1bnR1ayBTYXR1YW4gKi9cbiAgICAgICAgICAgIGlmIChhbmdrYVtpXSAhPSBcIjBcIikge1xuICAgICAgICAgICAgICAgIGlmIChhbmdrYVtpICsgMV0gIT0gXCIxXCIpIHtcbiAgICAgICAgICAgICAgICAgICAga2F0YTMgPSBrYXRhW2FuZ2thW2ldXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIHBlbmd1amlhbiBhbmdrYSBhcGFrYWggdGlkYWsgbm9sIHNlbXVhLCBsYWx1IGRpdGFtYmFoa2FuIHRpbmdrYXQgKi9cbiAgICAgICAgICAgIGlmICgoYW5na2FbaV0gIT0gXCIwXCIpIHx8IChhbmdrYVtpICsgMV0gIT0gXCIwXCIpIHx8IChhbmdrYVtpICsgMl0gIT0gXCIwXCIpKSB7XG4gICAgICAgICAgICAgICAgc3VicmVzdWx0ID0ga2F0YTEgKyBcIiBcIiArIGthdGEyICsgXCIgXCIgKyBrYXRhMyArIFwiIFwiICsgdGluZ2thdFtqXSArIFwiIFwiO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKiBnYWJ1bmdrYW4gdmFyaWFiZSBzdWIgcmVzdWx0ICh1bnR1ayBTYXR1IGJsb2sgMyBhbmdrYSkga2UgdmFyaWFiZWwgcmVzdWx0ICovXG4gICAgICAgICAgICByZXN1bHQgPSBzdWJyZXN1bHQgKyByZXN1bHQ7XG4gICAgICAgICAgICBpID0gaSArIDM7XG4gICAgICAgICAgICBqID0gaiArIDE7XG5cbiAgICAgICAgfVxuXG4gICAgICAgIC8qIG1lbmdnYW50aSBTYXR1IFJpYnUgamFkaSBTZXJpYnUgamlrYSBkaXBlcmx1a2FuICovXG4gICAgICAgIGlmICgoYW5na2FbNV0gPT0gXCIwXCIpICYmIChhbmdrYVs2XSA9PSBcIjBcIikpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKFwiU2F0dSBSaWJ1XCIsIFwiU2VyaWJ1XCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdCArIFwiUnVwaWFoXCI7XG4gICAgfVxufSJdfQ==