agani_id_formatter 1.0.0
agani_id_formatter: ^1.0.0 copied to clipboard
Comprehensive Indonesian data formatter and validator. Format and validate Rupiah, NIK, NPWP, phone numbers, postal codes, bank accounts, dates, and more.
Agani ID Formatter #
Comprehensive Indonesian data formatter and validator package for Flutter. Format and validate Rupiah, NIK, NPWP, phone numbers, postal codes, bank accounts, dates, and more!
Features #
✅ Rupiah Formatter - Format and parse Indonesian currency with decimal support ✅ NIK (ID Card) - Format, validate, and extract information ✅ NPWP (Tax ID) - Format and validate ✅ Phone Number - Format, validate, and detect operator ✅ Postal Code - Validate Indonesian postal codes ✅ Bank Account - Format bank account numbers ✅ Date Formatter - Indonesian date formats (long, short, full) ✅ Province Data - Complete list of Indonesian provinces ✅ Bank Data - 100+ Indonesian banks with codes ✅ E-Wallet Data - OVO, DANA, ShopeePay, GoPay, LinkAja
Installation #
Add this to your pubspec.yaml:
dependencies: agani_id_formatter: ^1.0.0
Then run: flutter pub get
Usage #
Rupiah Formatter #
import 'package:agani_id_formatter/agani_id_formatter.dart';
RupiahFormatter.format(1000000); // Rp1.000.000 RupiahFormatter.format(1500.50, decimal: 2); // Rp1.500,50 RupiahFormatter.format(-500000); // -Rp500.000
RupiahFormatter.parse('Rp1.000.000'); // 1000000.0
NIK (ID Card) Formatter & Validator #
NIKFormatter.format('3201234567890123'); // 320123.456789.0123
NIKValidator.validate('3201234567890123'); // true
var info = NIKFormatter.extract('3201234567890123'); print(info['provinceCode']); // 32 print(info['gender']); // Laki-laki print(info['birthDate']); // 1990-01-23
NPWP Formatter & Validator #
NPWPFormatter.format('123456789012345'); // 12.345.678.9-012.345
NPWPValidator.validate('123456789012345'); // true
Phone Number Formatter & Validator #
PhoneFormatter.format('081234567890'); // 0812-3456-7890 PhoneFormatter.format('081234567890', format: 'international'); // +62 812-3456-7890
PhoneValidator.validate('081234567890'); // true
PhoneValidator.getOperator('081234567890'); // Telkomsel
Date Formatter #
var date = DateTime(2024, 1, 1);
IndonesianDateFormatter.format(date); // 1 Januari 2024 IndonesianDateFormatter.format(date, format: 'full'); // Senin, 1 Januari 2024
IndonesianDateFormatter.parse('1 Januari 2024'); // DateTime
Province Data #
IndonesiaProvinces.getProvinceName('32'); // Jawa Barat
IndonesiaProvinces.getAllProvinceNames();
Bank Data #
IndonesiaBanks.getBankName('014'); // Bank BCA
IndonesiaBanks.searchBanks('BCA');
IndonesiaBanks.getAllBankNames();
E-Wallet Data #
IndonesiaEWallets.getEWalletByCode('OVO');
IndonesiaEWallets.validateEWalletNumber('OVO', '081234567890');
IndonesiaEWallets.getAllEWalletNames();
Complete Example #
Check the /example folder for a complete Flutter app demonstrating all features.
Contributing #
Contributions are welcome! Please feel free to submit a Pull Request.
License #
This project is licensed under the MIT License - see the LICENSE file for details.
Author #
Created by Abdul Gani Pohan
Changelog #
See CHANGELOG.md for version history.