axisLeft function

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

Implementation

void axisLeft(
  Canvas canvas, {
  required Scale 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)), theme.axisLine);

  // Start and End Marks
  canvas.drawLine(position + Offset(-10, yScale.apply(yScale.dMin)),
      position + Offset(0, yScale.apply(yScale.dMin)), theme.tickLine);
  canvas.drawLine(position + Offset(-10, yScale.apply(yScale.dMax)),
      position + Offset(0, yScale.apply(yScale.dMax)), 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);
    final c = position + Offset(-8, mid);
    if (range.indexOf(i) != 0) {
      drawText(canvas,
          mid: c,
          text: formatLabel?.call(i) ?? i.toString(),
          style: theme.labelStyle,
          maxWidth: position.dx,
          align: TextAlign.end);
    }
  }
}