getElement method

dynamic getElement(
  1. dynamic element
)

finds the element in data either by object or by index

Implementation

dynamic getElement(dynamic element) {
  if (data == null) return null;

  // by object
  if (data!.contains(element)) {
    return element;
  }

  // by index
  if (isNumeric(element)) {
    var index = toInt(element) ?? -1;
    return (!index.isNegative && index < data!.length) ? data![index] : null;
  }

  // by first item in a list
  if (element is List &&
      element.isNotEmpty &&
      element.length == 1 &&
      data!.contains(element.first)) {
    return element.first;
  }

  return null;
}