getFieldsElementsMap method
Implementation
Map<String, UIElement> getFieldsElementsMap(
{List<String>? fields,
List<String>? ignoreFields,
bool resolveUIComponents = true}) {
fields ??= [];
ignoreFields ??= [];
final specificFields = fields.isNotEmpty;
final fieldsElements = getFieldsElements();
final map = <String, UIElement>{};
for (var elem in fieldsElements) {
var fieldName =
getElementFieldName(elem, resolveUIComponents: resolveUIComponents)!;
var include = specificFields ? fields.contains(fieldName) : true;
if (include && !ignoreFields.contains(fieldName)) {
if (map.containsKey(fieldName)) {
var elemValue = parseChildElementValue(map[fieldName],
allowTextAsValue: false,
resolveUIComponents: resolveUIComponents);
if (isEmptyObject(elemValue)) {
var value = parseChildElementValue(elem,
allowTextAsValue: false,
resolveUIComponents: resolveUIComponents);
if (isNotEmptyObject(value)) {
map[fieldName] = elem;
}
}
} else {
map[fieldName] = elem;
}
}
}
return map;
}