@dickyindra/klinecharts
Version:
Lightweight k-line chart built with html5 canvas
108 lines (94 loc) • 2.75 kB
TypeScript
import { Precision, Viewport, Coordinate, Point, OverlayEvent } from './Common';
export declare type ShapeMode = 'normal' | 'weak_magnet' | 'strong_magnet';
export declare type ShapeElementType = 'line' | 'text' | 'continuous_line' | 'polygon' | 'arc';
export declare interface ShapeDataSourceItem extends Coordinate {
radius?: number;
startAngle?: number;
endAngle?: number;
text?: string;
}
export declare interface ShapeDataSource {
key?: string;
type: ShapeElementType;
isDraw?: boolean;
isCheck?: boolean;
styles?: any;
dataSource: ShapeDataSourceItem[] | ShapeDataSourceItem[][];
}
export declare interface ShapeEvent extends OverlayEvent {
step?: number;
}
export declare interface OverrideShape {
id?: string;
styles?: any;
lock?: boolean;
mode?: ShapeMode;
data?: any;
}
export declare interface Shape extends OverrideShape {
name: string;
points?: Point[];
onDrawStart?: (event: ShapeEvent) => void;
onDrawing?: (event: ShapeEvent) => void;
onDrawEnd?: (event: ShapeEvent) => void;
onClick?: (event: ShapeEvent) => void;
onRightClick?: (event: ShapeEvent) => boolean;
onPressedMove?: (event: ShapeEvent) => void;
onMouseEnter?: (event: ShapeEvent) => void;
onMouseLeave?: (event: ShapeEvent) => void;
onRemove?: (event: ShapeEvent) => void;
}
export declare interface ShapeCheckOnParams {
key: string;
type: ShapeElementType;
dataSource: ShapeDataSourceItem | ShapeDataSourceItem[];
eventCoordinate: Coordinate;
}
export declare interface ShapeCreateDataSourceParams {
step: number;
mode: ShapeMode;
points: Point[];
coordinates: Coordinate[];
viewport: Viewport;
precision: Precision;
styles: any;
xAxis: any;
yAxis: any;
data: any;
}
export declare interface ShapeEventPressMoveParams {
mode: ShapeMode;
points: Point[];
pressPointIndex: number;
pressPoint: Point;
xAxis: any;
yAxis: any;
}
export declare interface ShapeEventMoveDrawingParams {
step: number;
mode: ShapeMode;
points: Point[];
movePoint: Point;
xAxis: any;
yAxis: any;
}
export declare interface ShapeDrawExtendParams {
ctx: CanvasRenderingContext2D;
dataSource: ShapeDataSource[];
styles: any;
viewport: Viewport;
precision: Precision;
mode: ShapeMode;
xAxis: any;
yAxis: any;
data: any;
}
export declare interface ShapeTemplate {
name: string;
totalStep: number;
checkEventCoordinateOnShape: (params: ShapeCheckOnParams) => boolean;
createShapeDataSource: (params: ShapeCreateDataSourceParams) => ShapeDataSource[];
performEventPressedMove?: (params: ShapeEventPressMoveParams) => void;
performEventMoveForDrawing?: (params: ShapeEventMoveDrawingParams) => void;
drawExtend?: (params: ShapeDrawExtendParams) => void;
}