getCardTypeMask function

String getCardTypeMask({
  1. CardType? cardType,
  2. String? cardNumber,
  3. List<CardBrand>? customBrands,
})

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';
  }
}