mergeNearNodes method
Implementation
DOMNodeMapping<T>? mergeNearNodes(DOMNode domNode1, DOMNode domNode2,
{bool onlyCompatibles = false}) {
if (onlyCompatibles && !domNode1.isCompatibleForMerge(domNode2)) {
return null;
}
var nodeRuntime1 = domNode1.getRuntime<T>();
var nodeRuntime2 = domNode2.getRuntime<T>();
var node1 = nodeRuntime1.node;
var node2 = nodeRuntime2.node;
if (domNode1.isNextNode(domNode2)) {
if (domNode1.merge(domNode2) && nodeRuntime1.mergeNode(node2)) {
if (node1 == null || node2 == null) return null;
unmap(domNode2, node2);
return DOMNodeMapping(this, domNode1, node1);
}
} else if (domNode1.isPreviousNode(domNode2)) {
if (domNode2.merge(domNode1) && nodeRuntime2.mergeNode(node1)) {
if (node1 == null || node2 == null) return null;
unmap(domNode1, node1);
return DOMNodeMapping(this, domNode2, node2);
}
}
return null;
}