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.
144 lines (143 loc) • 3.98 kB
TypeScript
import type { Column, Fixed, Type, Align, VerticalAlign, CellType, Render, FormatterMethod, OverflowTooltipPlacement, SpanInfo, SelectorCellValueType, LineClampType } from './types';
import Context from './Context';
import BaseCell from './BaseCell';
import { Rule, Rules } from './Validator';
export default class Cell extends BaseCell {
formatter?: FormatterMethod;
formatterFooter?: FormatterMethod;
hoverIconName?: string;
operation: boolean;
align: Align;
verticalAlign: VerticalAlign;
fixed?: Fixed;
type: Type | '';
editorType: string;
editorProps: any;
cellType: CellType;
level: number;
colspan: number;
rowspan: number;
mergeRow: boolean;
mergeCol: boolean;
relationRowKeys: string[];
relationColKeys: string[];
key: string;
column: Column;
rowIndex: number;
colIndex: number;
rowKey: string;
row: any;
value: any;
render: Render;
renderFooter: Render;
style: any;
domDataset: any;
rules: Rules | Rule;
message: string;
text: string;
displayText: string;
visibleWidth: number;
visibleHeight: number;
isHasChanged: boolean;
drawX: number;
drawY: number;
drawCellBgColor: string;
drawCellSkyBgColor: string;
drawTextColor: string;
drawTextFont: string;
drawTextX: number;
drawTextY: number;
drawTextWidth: number;
drawTextHeight: number;
drawTreeImageX: number;
drawTreeImageY: number;
drawTreeImageWidth: number;
drawTreeImageHeight: number;
drawTreeImageName: string;
drawTreeImageSource?: HTMLImageElement;
drawSelectionImageX: number;
drawSelectionImageY: number;
drawSelectionImageWidth: number;
drawSelectionImageHeight: number;
drawSelectionImageName: string;
drawSelectionImageSource?: HTMLImageElement;
drawHoverImageX: number;
drawHoverImageY: number;
drawHoverImageWidth: number;
drawHoverImageHeight: number;
drawHoverImageName: string;
drawHoverImageSource?: HTMLImageElement;
autoRowHeight: boolean;
calculatedHeight: number;
ellipsis: boolean;
rowExpand: boolean;
rowHasChildren: boolean;
overflowTooltipShow: boolean;
selectorCellValueType: SelectorCellValueType;
overflowTooltipMaxWidth: number;
overflowTooltipPlacement: OverflowTooltipPlacement;
maxLineClamp: LineClampType;
constructor(ctx: Context, rowIndex: number, colIndex: number, x: number, y: number, width: number, height: number, column: Column, row: any, cellType?: CellType, isUpdate?: boolean);
setWidthHeight(width: number, height: number): void;
getValidationMessage(): string;
update(): void;
updateSpan(): void;
updateSpanInfo(): void;
updateType(): void;
updateEditor(): void;
updateRender(): void;
validate(): void;
/**
* 更新样式
*/
updateStyle(): void;
private updateTree;
private drawTreeLine;
private updateContainer;
private updateSelection;
private updateHoverIcon;
/**
* 获取自动高度
* @returns
*/
getAutoHeight(): number;
getSpanInfo(): SpanInfo;
/**
* 获取显示文本
* @returns
*/
getDisplayText(): string;
/**
* 获取文本
* @returns
*/
getText(): any;
getValue(): any;
setValue(value: any): void;
/**
* 获取样式
*/
getOverlayerViewsStyle(): {
position: string;
overflow: string;
left: string;
top: string;
width: string;
height: string;
pointerEvents: string;
userSelect: string;
};
drawContainer(): void;
private drawAutofillPiont;
draw(): void;
/**
* 根据列的索引获取列的宽度
* @param {Number} colIndex
*/
private getWidthByColIndexColSpan;
private drawText;
private drawImage;
private drawSelector;
private drawErrorTip;
private drawBorder;
}