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;
}