function getHorizontalAlign()

in packages/charts/src/chart_types/xy_chart/utils/axis_utils.ts [147:175]


function getHorizontalAlign(
  position: Position,
  rotation: number,
  alignment: HorizontalAlignment,
): Exclude<HorizontalAlignment, typeof HorizontalAlignment.Far | typeof HorizontalAlignment.Near> {
  if (
    alignment === HorizontalAlignment.Center ||
    alignment === HorizontalAlignment.Right ||
    alignment === HorizontalAlignment.Left
  ) {
    return alignment;
  }

  if (Math.abs(rotation) === 90) {
    if (position === Position.Top) {
      return rotation === 90 ? HorizontalAlignment.Right : HorizontalAlignment.Left;
    } else if (position === Position.Bottom) {
      return rotation === -90 ? HorizontalAlignment.Right : HorizontalAlignment.Left;
    }
  } else {
    if (position === Position.Left) {
      return alignment === HorizontalAlignment.Near ? HorizontalAlignment.Right : HorizontalAlignment.Left;
    } else if (position === Position.Right) {
      return alignment === HorizontalAlignment.Near ? HorizontalAlignment.Left : HorizontalAlignment.Right;
    }
  }

  return HorizontalAlignment.Center; // fallback for near/far on top/bottom axis
}