Line data Source code
1 : import 'package:flutter/services.dart'; 2 : import 'package:folly_fields/util/mask_text_input_formatter.dart'; 3 : import 'package:folly_fields/validators/abstract_validator.dart'; 4 : 5 : /// 6 : /// 7 : /// 8 : class CestValidator extends AbstractValidator<String> { 9 : /// 10 : /// 11 : /// 12 1 : CestValidator() 13 1 : : super( 14 1 : <TextInputFormatter>[ 15 1 : MaskTextInputFormatter( 16 : mask: '##.###.##', 17 : ), 18 : ], 19 : ); 20 : 21 : /// 22 : /// 23 : /// 24 0 : @override 25 0 : String format(String value) => strip(value).replaceAllMapped( 26 0 : RegExp(r'^(\d{2})(\d{3})(\d{2})$'), 27 0 : (Match m) => '${m[1]}.${m[2]}.${m[3]}', 28 : ); 29 : 30 : /// 31 : /// 32 : /// 33 1 : @override 34 : TextInputType get keyboard => TextInputType.number; 35 : 36 : /// 37 : /// 38 : /// 39 0 : @override 40 0 : bool isValid(String value) => strip(value).length == 7; 41 : }