build method
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,
);
}