mapTree method

bool mapTree(
  1. DOMNode domRoot,
  2. T root, {
  3. DOMGenerator<T>? generator,
  4. DOMContext<T>? context,
})

Maps a DOM subtree starting at domRoot to the component tree rooted at root. Returns true if the mapping was created or updated.

Implementation

bool mapTree(DOMNode domRoot, T root,
    {DOMGenerator<T>? generator, DOMContext<T>? context}) {
  map(domRoot, root, generator: generator, context: context);

  if (domRoot is TextNode) return false;

  var domNodes = domRoot.nodesView;
  var nodes = domGenerator.getElementNodes(root, asView: true);

  var limit = math.min(domNodes.length, nodes.length);

  for (var i = 0; i < limit; i++) {
    var domNode = domNodes[i];
    var node = nodes[i];

    if (domGenerator.isEquivalentNode(domNode, node)) {
      mapTree(domNode, node, generator: generator, context: context);
    }
  }

  return true;
}