render method

  1. @override
String render()
override

Renders the component as a string.

Implementation

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

  final buffer = StringBuffer();
  final dim = renderConfig.configureStyle(Style().dim());
  for (var i = 0; i < _links.length; i++) {
    final link = _links[i];
    final refNumber = i + 1;

    if (i > 0) buffer.writeln();

    if (renderConfig.colorProfile != ColorProfile.ascii) {
      final params = 'id=${link.id}';
      final linkText =
          '\x1B]8;$params;${link.url}\x07${link.url}\x1B]8;;\x07';
      buffer.write('${dim.render('[$refNumber]')} $linkText');
    } else {
      buffer.write('[$refNumber] ${link.url}');
    }
  }

  return buffer.toString();
}