chartData function

List<(String, double)> chartData(
  1. ReportElement chart,
  2. Map<String, dynamic> data
)

Returns chart labels and numeric values resolved from its JSON array.

Implementation

List<(String, double)> chartData(
  ReportElement chart,
  Map<String, dynamic> data,
) {
  final source = resolvePath(chart.dataSource, data);
  if (source is! List) return const [];
  return source.map<(String, double)>((row) {
    final label =
        resolveValueExpression(chart.chartCategoryField, row)?.toString() ?? '';
    return (label, rowAmount(row, chart.chartValueExpression));
  }).toList();
}