render method

  1. @override
String render()
override

Renders the component as a string.

Implementation

@override
String render() {
  final buffer = StringBuffer();
  final nodeStyle = renderConfig.configureStyle(
    Style().foreground(Colors.info),
  );
  String nodeFn(String s) => nodeStyle.render(s);
  String leafFn(String s) => s;
  final e = enumerator;

  if (showRoot) {
    String label = rootLabel;
    if (itemStyleFunc != null) {
      final style = itemStyleFunc!(rootLabel, 0, true);
      if (style != null) {
        renderConfig.configureStyle(style);
        label = style.render(rootLabel);
      } else {
        label = nodeFn(rootLabel);
      }
    } else {
      label = nodeFn(rootLabel);
    }
    buffer.writeln(label);
  }

  _renderNode(buffer, data, '', true, nodeFn, leafFn, e, 0);

  return buffer.toString().trimRight();
}