echarts
Version:
Apache ECharts is a powerful, interactive charting and data visualization library for browser
209 lines (208 loc) • 7.31 kB
TypeScript
import { TextAlign, TextVerticalAlign } from 'zrender/lib/core/types.js';
import { TextCommonOption, LineStyleOption, OrdinalRawValue, ZRColor, AreaStyleOption, ComponentOption, ColorString, AnimationOptionMixin, Dictionary, ScaleDataValue, CommonAxisPointerOption } from '../util/types.js';
import { TextStyleProps } from 'zrender/lib/graphic/Text.js';
export declare const AXIS_TYPES: {
readonly value: 1;
readonly category: 1;
readonly time: 1;
readonly log: 1;
};
export declare type OptionAxisType = keyof typeof AXIS_TYPES;
export interface AxisBaseOptionCommon extends ComponentOption, AnimationOptionMixin {
type?: OptionAxisType;
show?: boolean;
inverse?: boolean;
name?: string;
nameLocation?: 'start' | 'middle' | 'end';
nameRotate?: number;
nameTruncate?: {
maxWidth?: number;
ellipsis?: string;
placeholder?: string;
};
nameTextStyle?: AxisNameTextStyleOption;
nameGap?: number;
silent?: boolean;
triggerEvent?: boolean;
tooltip?: {
show?: boolean;
};
axisLabel?: AxisLabelBaseOption;
axisPointer?: CommonAxisPointerOption;
axisLine?: AxisLineOption;
axisTick?: AxisTickOption;
minorTick?: MinorTickOption;
splitLine?: SplitLineOption;
minorSplitLine?: MinorSplitLineOption;
splitArea?: SplitAreaOption;
/**
* Min value of the axis. can be:
* + ScaleDataValue
* + 'dataMin': use the min value in data.
* + null/undefined: auto decide min value (consider pretty look and boundaryGap).
*/
min?: ScaleDataValue | 'dataMin' | ((extent: {
min: number;
max: number;
}) => ScaleDataValue);
/**
* Max value of the axis. can be:
* + ScaleDataValue
* + 'dataMax': use the max value in data.
* + null/undefined: auto decide max value (consider pretty look and boundaryGap).
*/
max?: ScaleDataValue | 'dataMax' | ((extent: {
min: number;
max: number;
}) => ScaleDataValue);
startValue?: number;
}
export interface NumericAxisBaseOptionCommon extends AxisBaseOptionCommon {
boundaryGap?: [number | string, number | string];
/**
* AxisTick and axisLabel and splitLine are calculated based on splitNumber.
*/
splitNumber?: number;
/**
* Interval specifies the span of the ticks is mandatorily.
*/
interval?: number;
/**
* Specify min interval when auto calculate tick interval.
*/
minInterval?: number;
/**
* Specify max interval when auto calculate tick interval.
*/
maxInterval?: number;
/**
* If align ticks to the first axis that is not use alignTicks
* If all axes has alignTicks: true. The first one will be applied.
*
* Will be ignored if interval is set.
*/
alignTicks?: boolean;
}
export interface CategoryAxisBaseOption extends AxisBaseOptionCommon {
type?: 'category';
boundaryGap?: boolean;
axisLabel?: AxisLabelOption<'category'> & {
interval?: 'auto' | number | ((index: number, value: string) => boolean);
};
data?: (OrdinalRawValue | {
value: OrdinalRawValue;
textStyle?: TextCommonOption;
})[];
deduplication?: boolean;
axisTick?: AxisBaseOptionCommon['axisTick'] & {
alignWithLabel?: boolean;
interval?: 'auto' | number | ((index: number, value: string) => boolean);
};
}
export interface ValueAxisBaseOption extends NumericAxisBaseOptionCommon {
type?: 'value';
axisLabel?: AxisLabelOption<'value'>;
/**
* Optional value can be:
* + `false`: always include value 0.
* + `true`: the axis may not contain zero position.
*/
scale?: boolean;
}
export interface LogAxisBaseOption extends NumericAxisBaseOptionCommon {
type?: 'log';
axisLabel?: AxisLabelOption<'log'>;
logBase?: number;
}
export interface TimeAxisBaseOption extends NumericAxisBaseOptionCommon {
type?: 'time';
axisLabel?: AxisLabelOption<'time'>;
}
interface AxisNameTextStyleOption extends TextCommonOption {
rich?: Dictionary<TextCommonOption>;
}
interface AxisLineOption {
show?: boolean | 'auto';
onZero?: boolean;
onZeroAxisIndex?: number;
symbol?: string | [string, string];
symbolSize?: number[];
symbolOffset?: string | number | (string | number)[];
lineStyle?: LineStyleOption;
}
interface AxisTickOption {
show?: boolean | 'auto';
inside?: boolean;
length?: number;
lineStyle?: LineStyleOption;
customValues?: (number | string | Date)[];
}
declare type AxisLabelValueFormatter = (value: number, index: number) => string;
declare type AxisLabelCategoryFormatter = (value: string, index: number) => string;
declare type TimeAxisLabelUnitFormatter = AxisLabelValueFormatter | string[] | string;
export declare type TimeAxisLabelFormatterOption = string | ((value: number, index: number, extra: {
level: number;
}) => string) | {
year?: TimeAxisLabelUnitFormatter;
month?: TimeAxisLabelUnitFormatter;
week?: TimeAxisLabelUnitFormatter;
day?: TimeAxisLabelUnitFormatter;
hour?: TimeAxisLabelUnitFormatter;
minute?: TimeAxisLabelUnitFormatter;
second?: TimeAxisLabelUnitFormatter;
millisecond?: TimeAxisLabelUnitFormatter;
inherit?: boolean;
};
declare type LabelFormatters = {
value: AxisLabelValueFormatter | string;
log: AxisLabelValueFormatter | string;
category: AxisLabelCategoryFormatter | string;
time: TimeAxisLabelFormatterOption;
};
interface AxisLabelBaseOption extends Omit<TextCommonOption, 'color'> {
show?: boolean;
inside?: boolean;
rotate?: number;
showMinLabel?: boolean;
showMaxLabel?: boolean;
alignMinLabel?: TextAlign;
alignMaxLabel?: TextAlign;
verticalAlignMinLabel?: TextVerticalAlign;
verticalAlignMaxLabel?: TextVerticalAlign;
margin?: number;
rich?: Dictionary<TextCommonOption>;
/**
* If hide overlapping labels.
*/
hideOverlap?: boolean;
customValues?: (number | string | Date)[];
color?: ColorString | ((value?: string | number, index?: number) => ColorString);
overflow?: TextStyleProps['overflow'];
}
interface AxisLabelOption<TType extends OptionAxisType> extends AxisLabelBaseOption {
formatter?: LabelFormatters[TType];
}
interface MinorTickOption {
show?: boolean;
splitNumber?: number;
length?: number;
lineStyle?: LineStyleOption;
}
interface SplitLineOption {
show?: boolean;
interval?: 'auto' | number | ((index: number, value: string) => boolean);
showMinLine?: boolean;
showMaxLine?: boolean;
lineStyle?: LineStyleOption<ZRColor | ZRColor[]>;
}
interface MinorSplitLineOption {
show?: boolean;
lineStyle?: LineStyleOption;
}
interface SplitAreaOption {
show?: boolean;
interval?: 'auto' | number | ((index: number, value: string) => boolean);
areaStyle?: AreaStyleOption<ZRColor[]>;
}
export declare type AxisBaseOption = ValueAxisBaseOption | LogAxisBaseOption | CategoryAxisBaseOption | TimeAxisBaseOption | AxisBaseOptionCommon;
export {};