@toast-ui/chart
Version:
TOAST UI Application: Chart
210 lines (209 loc) • 11.6 kB
TypeScript
import Component from "./component";
import { RectModel, ClipRectAreaModel, BoxSeriesModels, StackTotalModel, RectResponderModel, MouseEventType } from "../../types/components/series";
import { ChartState, BoxType, ValueAxisData, CenterYAxisData, Series, Axes, Scale } from "../../types/store/store";
import { BoxSeriesType, BoxSeriesDataType, BarChartOptions, ColumnChartOptions, Rect, RangeDataType, BoxTypeEventDetectType, ColumnLineChartOptions, ColumnLineChartSeriesOptions, BoxSeriesOptions } from "../../types/options";
import { TooltipData } from "../../types/components/tooltip";
import { RespondersThemeType } from "../helpers/responders";
import { RectDirection, RectDataLabel } from "../../types/components/dataLabels";
import { BoxChartSeriesTheme } from "../../types/theme";
import { SelectSeriesHandlerParams } from "../charts/chart";
import { SelectSeriesInfo } from "../../types/charts";
export declare enum SeriesDirection {
POSITIVE = 0,
NEGATIVE = 1,
BOTH = 2
}
declare type RenderOptions = {
tickDistance: number;
min: number;
max: number;
diverging: boolean;
ratio?: number;
hasNegativeValue: boolean;
seriesDirection: SeriesDirection;
defaultPadding: number;
};
export declare function isLeftBottomSide(seriesIndex: number): boolean;
export default class BoxSeries extends Component {
models: BoxSeriesModels;
drawModels: BoxSeriesModels;
responders: RectResponderModel[];
activatedResponders: RectResponderModel[];
isBar: boolean;
valueAxis: string;
labelAxis: string;
anchorSizeKey: string;
offsetSizeKey: string;
basePosition: number;
leftBasePosition: number;
rightBasePosition: number;
isRangeData: boolean;
offsetKey: string;
eventDetectType: BoxTypeEventDetectType;
tooltipRectMap: RectResponderModel[][];
theme: Required<BoxChartSeriesTheme>;
initialize({ name, stackChart }: {
name: BoxType;
stackChart: boolean;
}): void;
initializeFields(name: BoxType): void;
initUpdate(delta: number): void;
initUpdateRangeData(delta: number): void;
initUpdateClipRect(delta: number): void;
initUpdateConnector(delta: number): void;
protected setEventDetectType(series: Series, options?: BarChartOptions | ColumnChartOptions): void;
protected getOptions(chartOptions: BarChartOptions | ColumnChartOptions | ColumnLineChartOptions): {
series?: BoxSeriesOptions | undefined;
yAxis?: import("../../types/options").BarTypeYAxisOption | import("../../types/options").BarTypeYAxisOption[] | undefined;
plot?: import("../../types/options").PlotOptions | undefined;
legend?: import("../../types/options").NormalLegendOptions | undefined;
theme?: import("../../types/theme").BoxChartThemeOptions | undefined;
chart?: import("../../types/options").BaseChartOptions | undefined;
lang?: import("../../types/options").LangOptions | undefined;
xAxis?: import("../../types/options").BaseXAxisOptions | undefined;
exportMenu?: import("../../types/options").ExportMenuOptions | undefined;
tooltip?: import("../../types/options").BaseTooltipOptions | undefined;
responsive?: import("../../types/options").ResponsiveOptions | undefined;
usageStatistics?: boolean | undefined;
} | {
series?: (BoxSeriesOptions & {
shift?: boolean | undefined;
}) | undefined;
yAxis?: import("../../types/options").YAxisOptions | import("../../types/options").YAxisOptions[] | undefined;
plot?: import("../../types/options").PlotOptions | undefined;
legend?: import("../../types/options").NormalLegendOptions | undefined;
theme?: import("../../types/theme").BoxChartThemeOptions | undefined;
chart?: import("../../types/options").BaseChartOptions | undefined;
lang?: import("../../types/options").LangOptions | undefined;
xAxis?: import("../../types/options").BaseXAxisOptions | undefined;
exportMenu?: import("../../types/options").ExportMenuOptions | undefined;
tooltip?: import("../../types/options").BaseTooltipOptions | undefined;
responsive?: import("../../types/options").ResponsiveOptions | undefined;
usageStatistics?: boolean | undefined;
} | {
series?: ColumnLineChartSeriesOptions | undefined;
plot?: import("../../types/options").LineTypePlotOptions | undefined;
yAxis?: import("../../types/options").YAxisOptions | import("../../types/options").YAxisOptions[] | undefined;
legend?: import("../../types/options").NormalLegendOptions | undefined;
theme?: import("../../types/theme").ColumnLineChartThemeOptions | undefined;
chart?: import("../../types/options").BaseChartOptions | undefined;
lang?: import("../../types/options").LangOptions | undefined;
xAxis?: import("../../types/options").BaseXAxisOptions | undefined;
exportMenu?: import("../../types/options").ExportMenuOptions | undefined;
tooltip?: import("../../types/options").BaseTooltipOptions | undefined;
responsive?: import("../../types/options").ResponsiveOptions | undefined;
usageStatistics?: boolean | undefined;
};
render<T extends BarChartOptions | ColumnChartOptions | ColumnLineChartOptions>(chartState: ChartState<T>, computed: any): void;
protected getScaleData(scale: Scale): any;
protected getBoxSeriesResponders(seriesModels: RectModel[], tooltipData: TooltipData[], axes: Axes, categories: string[]): RectResponderModel[] | {
data: TooltipData;
type: "rect";
color: string;
borderColor?: string | undefined;
style?: import("../../types/components/series").StyleProp<import("../../types/components/series").RectStyle, "shadow"> | undefined;
thickness?: number | undefined;
value?: number | RangeDataType<number> | null | undefined;
name?: string | undefined;
index?: number | undefined;
x: number;
y: number;
width: number;
height: number;
}[];
protected makeTooltipRectMap(seriesModels: RectModel[], tooltipDataArr: TooltipData[]): RectResponderModel[][];
protected renderClipRectAreaModel(): ClipRectAreaModel;
protected initClipRect(clipRect: ClipRectAreaModel): ClipRectAreaModel;
renderSeriesModel(seriesData: BoxSeriesType<number | (RangeDataType<number> & number)>[], renderOptions: RenderOptions): RectModel[];
protected renderHoveredSeriesModel(seriesModel: RectModel[]): RectModel[];
makeHoveredSeriesModel(data: RectModel): RectModel;
getRectModelsFromRectResponders(responders: RectResponderModel[]): RectResponderModel[];
protected getGroupedRect(responders: RectResponderModel[], type: 'hover' | 'select'): {
color: string;
type: "rect";
borderColor?: string | undefined;
style?: import("../../types/components/series").StyleProp<import("../../types/components/series").RectStyle, "shadow"> | undefined;
thickness?: number | undefined;
value?: number | RangeDataType<number> | null | undefined;
name?: string | undefined;
index?: number | undefined;
x: number;
y: number;
width: number;
height: number;
data?: ({
name?: string | undefined;
} & Partial<TooltipData>) | undefined;
label?: string | undefined;
viewLabel?: string | undefined;
checked?: boolean | undefined;
active?: boolean | undefined;
chartType?: "area" | "line" | "boxPlot" | "bullet" | "pie" | "heatmap" | "scatter" | "bar" | "column" | "bubble" | "radar" | "treemap" | "radialBar" | "gauge" | undefined;
iconType?: "triangle" | "circle" | "line" | "rect" | "pentagon" | "star" | "diamond" | "cross" | "hexagon" | "spectrum" | undefined;
useScatterChartIcon?: boolean | undefined;
rowIndex?: number | undefined;
columnIndex?: number | undefined;
}[];
onMousemoveGroupedType(responders: RectResponderModel[]): void;
onMousemove({ responders }: {
responders: RectModel[];
}): void;
private makeTooltipData;
private getTooltipValue;
protected getBasePosition({ labels, tickCount, zeroPosition }: ValueAxisData): number;
getDivergingBasePosition(centerYAxis: CenterYAxisData): number[];
protected getOffsetSize(): number;
getValueRatio(min: number, max: number, size: number): number;
makeBarLength(value: BoxSeriesDataType, renderOptions: Pick<RenderOptions, 'min' | 'max' | 'ratio'>): number | null;
protected getBarLength(value: number, ratio: number): number;
getStartPositionWithRangeValue(value: RangeDataType<number>, barLength: number, renderOptions: RenderOptions): number;
getStartPosition(barLength: number, value: Exclude<BoxSeriesDataType, null>, renderOptions: RenderOptions, isLBSideWithDiverging: boolean): number;
private getStartPosOnRightTopSide;
private getStartPosOnLeftBottomSide;
protected getAdjustedRect(seriesPosition: number, dataPosition: number, barLength: number, columnWidth: number): Rect;
getColumnWidth(renderOptions: RenderOptions, seriesLength: number, validDiverging?: boolean): number;
protected getSeriesDirection(labels: string[]): SeriesDirection;
protected getTickPositionIfNotZero(tickPositions: number[], direction: SeriesDirection): number;
makeDataLabel(rect: RectModel, centerYAxis?: CenterYAxisData): RectDataLabel;
makeDataLabelRangeData(rect: RectModel): RectDataLabel[];
getDataLabelRangeDataDirection(isEven: boolean): import("../../types/components/axis").ArrowDirection;
getDataLabelDirection(rect: RectModel | StackTotalModel, centerYAxis?: CenterYAxisData): RectDirection;
getOffsetSizeWithDiverging(centerYAxis: CenterYAxisData): number;
onClick({ responders }: MouseEventType): void;
onMouseoutComponent: () => void;
getRespondersWithTheme(responders: RectResponderModel[], type: RespondersThemeType): {
color: string | undefined;
thickness: number | undefined;
borderColor: string | undefined;
style: {
shadowBlur: number | undefined;
shadowColor: string | undefined;
shadowOffsetX: number | undefined;
shadowOffsetY: number | undefined;
}[];
type: "rect";
value?: number | RangeDataType<number> | null | undefined;
name?: string | undefined;
index?: number | undefined;
x: number;
y: number;
width: number;
height: number;
data?: ({
name?: string | undefined;
} & Partial<TooltipData>) | undefined;
label?: string | undefined;
viewLabel?: string | undefined;
checked?: boolean | undefined;
active?: boolean | undefined;
chartType?: "area" | "line" | "boxPlot" | "bullet" | "pie" | "heatmap" | "scatter" | "bar" | "column" | "bubble" | "radar" | "treemap" | "radialBar" | "gauge" | undefined;
iconType?: "triangle" | "circle" | "line" | "rect" | "pentagon" | "star" | "diamond" | "cross" | "hexagon" | "spectrum" | undefined;
useScatterChartIcon?: boolean | undefined;
rowIndex?: number | undefined;
columnIndex?: number | undefined;
}[];
getSeriesColor(name: string, color: string): string;
selectSeries: (info: SelectSeriesHandlerParams<BarChartOptions | ColumnChartOptions>) => void;
showTooltip: (info: SelectSeriesInfo) => void;
}
export {};