getCardTypeMask function
Implementation
String getCardTypeMask(
{CardType? cardType, String? cardNumber, List<CardBrand>? customBrands}) {
if (cardType == null) {
final custom = matchCustomBrand(cardNumber, customBrands);
if (custom != null) {
return custom.mask ?? 'XXXX XXXX XXXX XXXX';
}
}
final trimmedCardLength = cardNumber?.replaceAll(' ', '').length;
switch (cardType ?? getCardType(cardNumber ?? '')) {
case CardType.americanExpress:
return 'XXXX XXXXXX XXXXX';
case CardType.dinersClub:
if (trimmedCardLength == 14) {
return 'XXXX XXXXXX XXXX';
}
return 'XXXX XXXX XXXX XXXX';
case CardType.discover:
return 'XXXX XXXX XXXX XXXX';
case CardType.jcb:
return 'XXXX XXXX XXXX XXXX';
case CardType.masterCard:
return 'XXXX XXXX XXXX XXXX';
case CardType.maestro:
if (trimmedCardLength == 13) {
return 'XXXX XXXX XXXXX';
} else if (trimmedCardLength == 15) {
return 'XXXX XXXXXX XXXXX';
} else if (trimmedCardLength == 19) {
return 'XXXX XXXX XXXX XXXX XXX';
}
return 'XXXX XXXX XXXX XXXX';
case CardType.rupay:
return 'XXXX XXXX XXXX XXXX';
case CardType.visa:
return 'XXXX XXXX XXXX XXXX';
case CardType.elo:
return 'XXXX XXXX XXXX XXXX';
default:
return 'XXXX XXXX XXXX XXXX';
}
}