addExternalElementToElement method
List<Node> ?
addExternalElementToElement(
- Node element,
- Object? externalElement, {
- DOMTreeMap<
Node> ? treeMap, - DOMContext<
Node> ? context,
override
Implementation
@override
List<Node>? addExternalElementToElement(
Node element,
Object? externalElement, {
DOMTreeMap<Node>? treeMap,
DOMContext<Node>? context,
}) {
if (externalElement == null) return null;
if (!element.isA<Element>()) return null;
externalElement = resolveElements(
externalElement,
treeMap: treeMap,
context: context,
setTreeMapRoot: false,
);
if (externalElement is List) {
var added = <Node>[];
for (var e in externalElement) {
if (e == null) continue;
if (e is List) {
var l = addExternalElementToElement(
element,
e,
treeMap: treeMap,
context: context,
);
if (l != null) {
added.addAll(l);
}
} else {
// `e` is `dynamic`: extension members (like `asJSAny`) can't be
// resolved on it, so give it a static type first.
final Object o = e;
if (o.isA<Node>()) {
var node = o as Node;
element.appendChild(node);
added.add(node);
}
}
}
return added;
} else {
var jsAny = externalElement.asJSAny;
if (jsAny.isA<Node>()) {
var node = jsAny as Node;
element.appendChild(node);
return [node];
}
}
return null;
}