e-virt-table
Version:
A powerful data table based on canvas. You can use it as data grid、Microsoft Excel or Google sheets. It supports virtual scroll、cell edit etc.
70 lines (69 loc) • 2.43 kB
TypeScript
import { Align, VerticalAlign } from './types';
export type LineOptions = {
lineCap?: CanvasLineCap;
lineDash?: number[];
lineJoin?: CanvasLineJoin;
borderWidth?: number;
borderColor?: string | CanvasGradient | CanvasPattern;
fillColor?: string | CanvasGradient | CanvasPattern;
};
export type ShodowOptions = {
side: 'left' | 'right' | 'top' | 'bottom';
shadowWidth: number;
colorStart: string;
colorEnd: string;
fillColor?: string | CanvasGradient | CanvasPattern;
};
export type RectOptions = {
borderWidth?: number;
borderColor?: string;
fillColor?: string;
radius?: number | [number, number, number, number];
};
export type DrawTextOptions = {
font?: string;
color?: string;
align?: Align;
padding?: number;
verticalAlign?: VerticalAlign;
};
export declare class Paint {
private ctx;
constructor(target: HTMLCanvasElement);
scale(dpr: number): void;
save(): void;
restore(): void;
translate(x: number, y: number): void;
setCursor(cursor?: string): void;
clear(x?: number, y?: number, width?: number, height?: number): void;
/**
* 在 Canvas 上绘制单侧阴影
* @param {number} x - 矩形的 x 坐标
* @param {number} y - 矩形的 y 坐标
* @param {number} width - 矩形的宽度
* @param {number} height - 矩形的高度
* @param {string} side - 阴影的位置('left', 'right', 'top', 'bottom')
* @param {number} shadowWidth - 阴影的宽度
* @param {string} color - 阴影的颜色
*/
drawShadow(x: number, y: number, width: number, height: number, options: ShodowOptions): void;
drawLine(points: number[], options: LineOptions): void;
drawImage(img: CanvasImageSource, x: number, y: number, width: number, height: number): void;
drawRect(x: number, y: number, width: number, height: number, { borderWidth, borderColor, fillColor, radius }?: RectOptions): void;
/**
* 画文本
* @param text
* @param x
* @param y
* @param width
* @param height
* @param options
* @returns 是否溢出
*/
drawText(text: string | undefined, x: number, y: number, width: number, height: number, options?: DrawTextOptions): boolean;
handleEllipsis(text: string, width: number, padding?: number, font?: string): {
_text: string;
ellipsis: boolean;
};
}
export default Paint;