addExternalElementToElement method
List<UINode> ?
addExternalElementToElement(
- UINode element,
- Object? externalElement, {
- DOMTreeMap<
Node> ? treeMap, - DOMContext<
Node> ? context,
Implementation
@override
List<UINode>? addExternalElementToElement(
UINode element, Object? externalElement,
{DOMTreeMap<Node>? treeMap, DOMContext<Node>? context}) {
if (externalElement == null) return null;
if (externalElement is List) {
if (externalElement.isEmpty) return null;
if (externalElement.length == 1) {
return addExternalElementToElement(element, externalElement.first,
treeMap: treeMap, context: context);
}
var children = <UINode>[];
for (var elem in externalElement) {
var child = addExternalElementToElement(element, elem,
treeMap: treeMap, context: context);
if (child != null) {
children.addAll(child);
}
}
return children;
} else if (externalElement is UIComponent) {
var component = externalElement;
var componentContent = component.content;
if (componentContent != null) {
final element2 = element.asElementChecked;
if (element2 != null) {
element2.appendChild(componentContent);
component.setParent(element2);
_resolveParentUIComponent(element2, component.content,
childUIComponent: component);
component.ensureRendered();
return [componentContent];
} else {
_resolveParentUIComponent(element2, component.content,
childUIComponent: component);
return null;
}
}
} else if (externalElement is MessageBuilder) {
var text = externalElement.build();
var span = HTMLSpanElement();
setElementInnerHTML(span, text);
element.appendChild(span);
return [span];
}
return super.addExternalElementToElement(element, externalElement,
treeMap: treeMap, context: context);
}