validate method

  1. @override
Map<String, dynamic>? validate(
  1. AbstractControl control
)
override

Validates the control.

Implementation

@override
Map<String, dynamic>? validate(AbstractControl<dynamic> control) {
  final value = control.value;
  var found = false;

  for (final item in collection) {
    if (value is String && item is String && !caseSensitive) {
      if (item.toLowerCase() == value.toLowerCase()) {
        found = true;
        break;
      }
    } else {
      if (item == value) {
        found = true;
        break;
      }
    }
  }

  if (found) {
    return null; // Valid
  } else {
    return {
      ValidationMessage.oneOf: {
        'requiredOneOf': collection,
        'actual': value,
        if (value is String) 'caseSensitive': caseSensitive,
      },
    };
  }
}