getFieldsExtended method

Map<String, Object?> getFieldsExtended({
  1. List<String>? fields,
  2. List<String>? ignoreFields,
})
inherited

Implementation

Map<String, Object?> getFieldsExtended(
    {List<String>? fields, List<String>? ignoreFields}) {
  var fieldsElementsMap =
      getFieldsComponentsMap(fields: fields, ignoreFields: ignoreFields);

  var entries = fieldsElementsMap.entries.toList();
  entries.sort((a, b) {
    var aIsUIComponent = a is UIComponent;
    var bIsUIComponent = b is UIComponent;

    if (aIsUIComponent && !bIsUIComponent) {
      return -1;
    } else if (bIsUIComponent && !aIsUIComponent) {
      return 1;
    } else {
      return 0;
    }
  });

  var fieldsValues = <String, Object?>{};

  for (var entry in entries) {
    var key = entry.key;
    if (fieldsValues.containsKey(key)) continue;
    fieldsValues[key] = entry.value;
  }

  return fieldsValues;
}