listFrom<R, E> static method

List<C2Choice<R>> listFrom<R, E>({
  1. required List<E> source,
  2. required R value(
    1. int index,
    2. E item
    ),
  3. required String label(
    1. int index,
    2. E item
    ),
  4. _C2ChoiceProp<E, ImageProvider<Object>>? avatarImage,
  5. _C2ChoiceProp<E, Widget>? avatarText,
  6. _C2ChoiceProp<E, String>? tooltip,
  7. _C2ChoiceProp<E, bool>? disabled,
  8. _C2ChoiceProp<E, bool>? hidden,
  9. _C2ChoiceProp<E, dynamic>? meta,
  10. _C2ChoiceProp<E, C2ChipStyle>? style,
  11. _C2ChoiceProp<E, VoidCallback>? delete,
})

Helper to create choice items from any list

Implementation

static List<C2Choice<R>> listFrom<R, E>({
  required List<E> source,
  required R Function(int index, E item) value,
  required String Function(int index, E item) label,
  _C2ChoiceProp<E, ImageProvider>? avatarImage,
  _C2ChoiceProp<E, Widget>? avatarText,
  _C2ChoiceProp<E, String>? tooltip,
  _C2ChoiceProp<E, bool>? disabled,
  _C2ChoiceProp<E, bool>? hidden,
  _C2ChoiceProp<E, dynamic>? meta,
  _C2ChoiceProp<E, C2ChipStyle>? style,
  _C2ChoiceProp<E, VoidCallback>? delete,
}) {
  return source
      .asMap()
      .map((index, item) {
        return MapEntry(
          index,
          C2Choice<R>(
            value: value.call(index, item),
            label: label.call(index, item),
            avatarImage: avatarImage?.call(index, item),
            avatarText: avatarText?.call(index, item),
            tooltip: tooltip?.call(index, item),
            disabled: disabled?.call(index, item) ?? false,
            hidden: hidden?.call(index, item) ?? false,
            meta: meta?.call(index, item),
            style: style?.call(index, item),
            delete: delete?.call(index, item),
          ),
        );
      })
      .values
      .toList()
      .cast<C2Choice<R>>();
}