axisBandLeft function

void axisBandLeft(
  1. Canvas canvas, {
  2. required BandScale yScale,
  3. required Offset position,
  4. required AxisTheme theme,
  5. dynamic formatLabel(
    1. dynamic
    )?,
})

Implementation

void axisBandLeft(
  Canvas canvas, {
  required BandScale yScale,
  required Offset position,
  required AxisTheme theme,
  Function(dynamic)? formatLabel,
}) {
  // Long Axis
  canvas.drawLine(
      position + Offset(0, yScale.apply(yScale.dMin)),
      position + Offset(0, yScale.apply(yScale.dMax) + yScale.bandwidth),
      theme.axisLine);

  // Start and End Marks
  canvas.drawLine(position + Offset(-5, yScale.apply(yScale.dMin)),
      position + Offset(0, yScale.apply(yScale.dMin)), theme.tickLine);
  canvas.drawLine(
      position + Offset(-5, yScale.apply(yScale.dMax) + yScale.bandwidth),
      position + Offset(0, yScale.apply(yScale.dMax) + yScale.bandwidth),
      theme.tickLine);

  // Marks
  final range = yScale.getRange(5);
  for (var i in range) {
    canvas.drawLine(position + Offset(0, yScale.apply(i)),
        position + Offset(-5, yScale.apply(i)), theme.tickLine);

    final mid = yScale.apply(i) + yScale.bandwidth / 2;
    final c = position + Offset(-8, mid + 1);

    drawText(canvas,
        mid: c,
        text: formatLabel?.call(i) ?? i.toString(),
        style: theme.labelStyle,
        maxWidth: position.dx,
        align: TextAlign.end);
  }
}