toRows static method

List<List<Object?>> toRows(
  1. BaseChartConfig config, {
  2. List<String>? categoryLabels,
})

Convert chart series into a rectangular table.

Implementation

static List<List<Object?>> toRows(
  BaseChartConfig config, {
  List<String>? categoryLabels,
}) {
  final series = config.series;
  if (series.isEmpty) return const [];

  final rows = <List<Object?>>[
    <Object?>['Category', for (final s in series) s.name ?? 'Series'],
  ];

  var maxLen = 0;
  for (final s in series) {
    final length = s.data?.length ?? 0;
    if (length > maxLen) maxLen = length;
  }

  for (var i = 0; i < maxLen; i++) {
    rows.add([
      categoryLabels != null && i < categoryLabels.length
          ? categoryLabels[i]
          : i,
      for (final s in series)
        _seriesCellValue(
          s.data != null && i < s.data!.length ? s.data![i] : null,
        ),
    ]);
  }

  return rows;
}