getEnumProperty<TEnum> method

Property<TEnum> getEnumProperty<TEnum>(
  1. String name,
  2. List<TEnum> enumValues, {
  3. required TEnum defaultValue(),
  4. bool isImmutable = true,
})

Implementation

Property<TEnum> getEnumProperty<TEnum>(
  String name,
  List<TEnum> enumValues, {
  required TEnum Function() defaultValue,
  bool isImmutable = true,
}) {
  return getProperty<TEnum>(
    name,
    (s) {
      var lowerCaseInput = s.toLowerCase();
      return enumValues.firstWhere(
        (e) {
          var enumString = e.toString().toLowerCase();
          if (enumString == lowerCaseInput) {
            return true;
          }
          var lastPart = enumString.split('.').last;
          return lastPart == lowerCaseInput;
        },
        orElse: defaultValue,
      );
    },
    defaultValue,
    isImmutable: isImmutable,
  );
}