multiSeriesToBar function

Result<BarChartData, BridgeError> multiSeriesToBar(
  1. MultiSeriesResult result, {
  2. required BarMode mode,
  3. required BridgePalette palette,
  4. required BridgeFormatters formatters,
  5. SemanticColorResolver? resolver,
  6. bool integerValued = false,
  7. double? fillAlpha,
})

Maps a MultiSeriesResult to grouped or stacked BarChartData.

BarMode.single has no meaning for a multi-series shape — every x-axis position carries one bar per series — so it renders as BarMode.grouped. Each x-axis position becomes one category; each series contributes one inner bar (grouped) or one segment (stacked).

Implementation

Result<BarChartData, BridgeError> multiSeriesToBar(
  MultiSeriesResult result, {
  required BarMode mode,
  required BridgePalette palette,
  required BridgeFormatters formatters,
  SemanticColorResolver? resolver,
  bool integerValued = false,
  double? fillAlpha,
}) {
  final effectiveMode = mode == BarMode.single ? BarMode.grouped : mode;

  final views = [
    for (final s in result.series)
      SeriesView.fromNamed(
        s,
        measureFieldType: result.measureFieldType,
        formatters: formatters,
      ),
  ];
  return _multiBar(
    views: views,
    keys: [for (final p in result.xAxis) p.key],
    positionLabels: [for (final p in result.xAxis) p.label],
    mode: effectiveMode,
    palette: palette,
    formatters: formatters,
    resolver: resolver,
    integerValued: integerValued,
    fillAlpha: fillAlpha,
    unitType: result.measureFieldType,
    guardUnits: false,
  );
}