/** * @fileOverview X Axis */ import type { FunctionComponent, SVGProps } from 'react'; import { BaseAxisProps, AxisInterval } from '../util/types'; /** Define of XAxis props */ interface XAxisProps extends BaseAxisProps { /** The unique id of x-axis */ xAxisId?: string | number; /** The width of axis which is usually calculated internally */ width?: number; /** The height of axis, which need to be setted by user */ height?: number; mirror?: boolean; // The orientation of axis orientation?: 'top' | 'bottom'; /** * Ticks can be any type when the axis is the type of category * Ticks must be numbers when the axis is the type of number */ ticks?: (string | number)[]; padding?: { left?: number; right?: number } | 'gap' | 'no-gap'; minTickGap?: number; interval?: AxisInterval; reversed?: boolean; /** the rotate angle of tick */ angle?: number; tickMargin?: number; } export type Props = Omit, 'scale'> & XAxisProps; export const XAxis: FunctionComponent = () => null; XAxis.displayName = 'XAxis'; XAxis.defaultProps = { allowDecimals: true, hide: false, orientation: 'bottom', width: 0, height: 30, mirror: false, xAxisId: 0, tickCount: 5, type: 'category', domain: [0, 'auto'], padding: { left: 0, right: 0 }, allowDataOverflow: false, scale: 'auto', reversed: false, allowDuplicatedCategory: true, };