render method

  1. @override
String render()
override

Renders the component as a string.

Implementation

@override
String render() {
  final progress = total > 0 ? (current / total).clamp(0.0, 1.0) : 0.0;
  final pct = (progress * 100).round();
  final filled = (progress * width).round();
  final empty = width - filled;

  final bar = '[${fillChar * filled}${emptyChar * empty}]';
  final parts = <String>[bar];
  final dim = renderConfig.configureStyle(Style().dim());

  if (showCount) {
    parts.add(dim.render('$current/$total'));
  }
  if (showPercentage) {
    parts.add(dim.render('$pct%'));
  }

  return parts.join(' ');
}