renderNode method

ValueProvider? renderNode(
  1. DivElement output,
  2. dynamic node,
  3. dynamic parent,
  4. NodeKey nodeKey,
)

Implementation

ValueProvider? renderNode(
    DivElement output, dynamic node, dynamic parent, NodeKey nodeKey) {
  output.style.display = 'inline-block';

  _attachActions(output, node, parent, nodeKey);

  bool valid = validateNode(node, parent, nodeKey);
  if (!valid) return null;

  var nodeMapping = _mapNode(node, parent, nodeKey);

  for (var typeRender in _extendedTypeRenders) {
    if (typeRender.matches(nodeMapping.nodeMapped, parent, nodeKey)) {
      var valueProvider = _callRender(typeRender, output,
          nodeMapping.nodeMapped, nodeMapping.nodeOriginal, nodeKey);
      return nodeMapping.unmapValueProvider(valueProvider);
    }
  }

  for (var typeRender in _defaultTypeRenders) {
    if (typeRender.matches(nodeMapping.nodeMapped, parent, nodeKey)) {
      var valueProvider = _callRender(typeRender, output,
          nodeMapping.nodeMapped, nodeMapping.nodeOriginal, nodeKey);
      return nodeMapping.unmapValueProvider(valueProvider);
    }
  }

  return null;
}