Line data Source code
1 : import 'package:flutter/services.dart'; 2 : import 'package:folly_fields/util/folly_utils.dart'; 3 : import 'package:folly_fields/util/mask_text_input_formatter.dart'; 4 : import 'package:folly_fields/validators/abstract_validator.dart'; 5 : 6 : /// 7 : /// 8 : /// 9 : class ColorValidator extends AbstractParserValidator<Color> { 10 : /// 11 : /// 12 : /// 13 2 : ColorValidator() 14 2 : : super( 15 2 : <TextInputFormatter>[ 16 2 : MaskTextInputFormatter( 17 : mask: 'AAAAAAAA', 18 2 : filter: <String, RegExp>{ 19 2 : 'A': RegExp('[0-9,A-F,a-f]'), 20 : }, 21 : ), 22 : ], 23 : ); 24 : 25 : /// 26 : /// 27 : /// 28 1 : @override 29 : String format(Color value) => 30 4 : value.value.toRadixString(16).toUpperCase().padLeft(8, '0'); 31 : 32 : /// 33 : /// 34 : /// 35 1 : @override 36 : String strip(String value) => value; 37 : 38 : /// 39 : /// 40 : /// 41 1 : @override 42 1 : bool isValid(String value) => valid(value) == null; 43 : 44 : /// 45 : /// 46 : /// 47 2 : @override 48 : Color? parse(String? text, [int? defaultColor]) => 49 2 : FollyUtils.colorParse(text, defaultColor); 50 : 51 : /// 52 : /// 53 : /// 54 1 : @override 55 1 : String? valid(String? value) => parse(value) == null ? 'Cor inválida.' : null; 56 : }