build method

  1. @override
Widget build(
  1. BuildContext context
)
override

Describes the part of the user interface represented by this widget.

Implementation

@override
Widget build(BuildContext context) {
  if (data.isEmpty) {
    return const SizedBox(height: 1);
  }

  double minVal = data[0];
  double maxVal = data[0];
  for (final v in data) {
    if (v < minVal) minVal = v;
    if (v > maxVal) maxVal = v;
  }

  final double range = maxVal - minVal;
  final List<String> chars = data.map((v) {
    if (range == 0) return _blockChars[0];
    final int idx = (((v - minVal) / range) * (_blockChars.length - 1))
        .round()
        .clamp(0, _blockChars.length - 1);
    return _blockChars[idx];
  }).toList();

  return _SparklineRenderWidget(
    chars: chars,
    color: color ?? Color.green,
  );
}