render method

  1. @override
ValueProvider render(
  1. JSONRender render,
  2. DivElement output,
  3. dynamic node,
  4. dynamic nodeOriginal,
  5. NodeKey nodeKey,
)
override

Implementation

@override
ValueProvider render(JSONRender render, DivElement output, dynamic node,
    dynamic nodeOriginal, NodeKey nodeKey) {
  Element elem;
  ValueProvider valueProvider;

  if (render.renderMode == JSONRenderMode.input) {
    elem = InputElement()
      ..value = '$node'
      ..type = 'text';
    _adjustInputWidthByValueOnKeyPress(elem as InputElement);
    valueProvider = (parent) =>
        normalizeJSONValuePrimitive((elem as InputElement).value, true);
  } else {
    elem = SpanElement()..text = renderQuotes ? '"$node"' : '$node';
    valueProvider = (parent) => nodeOriginal;
  }

  output.children.add(elem);

  applyCSS(render, output, extraElements: [elem]);

  return valueProvider;
}