Line data Source code
1 : import 'package:cpf_cnpj_validator/cnpj_validator.dart'; 2 : import 'package:cpf_cnpj_validator/cpf_validator.dart'; 3 : import 'package:flutter/services.dart'; 4 : import 'package:folly_fields/util/mask_text_input_formatter.dart'; 5 : import 'package:folly_fields/validators/abstract_validator.dart'; 6 : 7 : /// 8 : /// 9 : /// 10 : class CpfCnpjValidator extends AbstractValidator<String> { 11 : /// 12 : /// 13 : /// 14 1 : CpfCnpjValidator() 15 1 : : super( 16 1 : <TextInputFormatter>[ 17 1 : ChangeMask( 18 : firstMask: '###.###.###-##', 19 : secondMask: '##.###.###/####-##', 20 : ), 21 : ], 22 : ); 23 : 24 : /// 25 : /// 26 : /// 27 0 : @override 28 : String format(String value) { 29 0 : String stripped = strip(value); 30 : 31 0 : return (stripped.length > 11) 32 0 : ? CNPJValidator.format(value) 33 0 : : CPFValidator.format(value); 34 : } 35 : 36 : /// 37 : /// 38 : /// 39 0 : @override 40 : bool isValid(String value) { 41 0 : value = strip(value); 42 : 43 0 : if (value.isEmpty) { 44 : return false; 45 : } 46 : 47 0 : return (value.length > 11) 48 0 : ? CNPJValidator.isValid(value, false) 49 0 : : CPFValidator.isValid(value, false); 50 : } 51 : 52 : /// 53 : /// 54 : /// 55 1 : @override 56 : TextInputType get keyboard => TextInputType.number; 57 : }