render method

  1. @override
String render()
override

Renders the component as a string.

Implementation

@override
String render() {
  if (items.isEmpty) return '';

  final buffer = StringBuffer();
  final maxKeyLen = items.keys
      .map((k) => k.length)
      .reduce((a, b) => a > b ? a : b);

  final keyStyle = renderConfig.configureStyle(
    Style().foreground(Colors.warning).bold(),
  );

  var first = true;
  for (final entry in items.entries) {
    if (!first) buffer.writeln();
    first = false;

    final key = entry.key.padRight(maxKeyLen);
    buffer.write(
      '${' ' * indent}${keyStyle.render(key)}$separator ${entry.value}',
    );
  }

  return buffer.toString();
}