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.
338 lines (337 loc) • 12 kB
TypeScript
import { IconType } from './Icons';
import { Align, BeforeAutofillDataMethod, BeforeCellValueChangeMethod, BeforeCopyMethod, BeforePasteDataMethod, BeforeSetAutofillMethod, BeforeSetSelectorMethod, CellEditorMethod, CellHeaderStyleMethod, CellHoverIconMethod, CellReadonlyMethod, CellRenderMethod, CellRulesMethod, CellStyleMethod, CellTypeMethod, ConfigType, ExpandLazyMethod, FooterPosition, FormatterMethod, MenuItem, SelectableMethod, SelectorCellValueType, SpanMethod, TreeSelectMode, VerticalAlign } from './types';
export default class Config {
private _config;
/** CSS 类名前缀 */
CSS_PREFIX: string;
/** 图标集合 */
ICONS: IconType[];
/** 行的唯一标识键 */
ROW_KEY: string;
/** 禁用编辑,优先等级最高 */
DISABLED: boolean;
/** 表头字体 */
HEADER_FONT: string;
/** 单元格字体 */
BODY_FONT: string;
/** 边框 */
BORDER: boolean;
/** 斑马纹 */
STRIPE: boolean;
/** 斑马纹颜色 */
STRIPE_COLOR: string;
/** 区域边框颜色 */
BORDER_COLOR: string;
/** 高度,为 0 表示自适应 */
HEIGHT: number;
/** 占位文本颜色 */
PLACEHOLDER_COLOR: string;
/** 空数据 body 高度 */
EMPTY_BODY_HEIGHT: number;
/** 自定义空样式 */
EMPTY_CUSTOM_STYLE: Partial<CSSStyleDeclaration>;
/** 空数据文本 */
EMPTY_TEXT: string;
/** 加载文本 */
LOADING_TEXT: string;
/** 最大高度,为 0 表示自适应高度根据 HEIGHT */
MAX_HEIGHT: number;
/** 区域边框圆角 */
BORDER_RADIUS: number;
/** 启用偏移高度内部计算表格高度 */
ENABLE_OFFSET_HEIGHT: boolean;
/** 偏移高度 */
OFFSET_HEIGHT: number;
/** 表头高度 */
HEADER_HEIGHT: number;
/** 启用头部固定,需要外面实现覆盖层,或者所有表头都要是元素 */
ENABLE_HEADER_STICKY: boolean;
/** 表头背景色 */
HEADER_BG_COLOR: string;
/** body 背景色 */
BODY_BG_COLOR: string;
/** 表头文本颜色 */
HEADER_TEXT_COLOR: string;
/** 必填*颜色 */
REQUIRED_COLOR: string;
/** body文本颜色 */
BODY_TEXT_COLOR: string;
/** footer文本颜色 */
FOOTER_TEXT_COLOR: string;
/** 加载 svg 图标 */
LOADING_ICON_SVG: string;
/** 加载 svg 图标颜色 */
LOADING_ICON_COLOR: string;
/** 树形展开svg 图标 */
EXPAND_ICON_SVG: string;
/** 树形收缩svg 图标 */
SHRINK_ICON_SVG: string;
/** 展开图标颜色 */
EXPAND_ICON_COLOR: string;
/** 收缩图标颜色 */
SHRINK_ICON_COLOR: string;
/** 错误提示颜色 */
ERROR_TIP_ICON_COLOR: string;
/** 错误提示图标大小 */
ERROR_TIP_ICON_SIZE: number;
/** 所有列对齐方式 */
COLUMNS_ALIGN: Align;
/** 所有列垂直对齐方式 */
COLUMNS_VERTICAL_ALIGN: VerticalAlign;
/** 是否开启懒加载 */
EXPAND_LAZY: boolean;
/** 默认展开全部 */
DEFAULT_EXPAND_ALL: boolean;
/** 表格 body 部分的宽度 */
CELL_WIDTH: number;
/** body 单元格默认行高 */
CELL_HEIGHT: number;
/** 表格 body 部分的 padding */
CELL_PADDING: number;
/** hover编辑图标大小 */
CELL_HOVER_ICON_SIZE: number;
/** hover编辑图标背景色 */
CELL_HOVER_ICON_BG_COLOR: string;
/** hover编辑图标边框颜色 */
CELL_HOVER_ICON_BORDER_COLOR: string;
/** 滚动条轨道尺寸 */
SCROLLER_TRACK_SIZE: number;
/** 滚动条滑块尺寸 */
SCROLLER_SIZE: number;
/** 滚动条滑块颜色 */
SCROLLER_COLOR: string;
/** 轨道颜色 */
SCROLLER_TRACK_COLOR: string;
/** 滚动条滑块聚焦时的颜色 */
SCROLLER_FOCUS_COLOR: string;
/** 选中区域边框颜色 */
SELECT_BORDER_COLOR: string;
/** 选中区域背景颜色 */
SELECT_AREA_COLOR: string;
/** 当前焦点单元格所在行、列的背景色 */
SELECT_ROW_COL_BG_COLOR: string;
/** 填充点的边框颜色 */
AUTOFILL_POINT_BORDER_COLOR: string;
/** 可编辑背景色 */
EDIT_BG_COLOR: string;
/** 选择 key,合并时用 */
CHECKBOX_KEY: string;
/** 选择框颜色 */
CHECKBOX_COLOR: string;
/** 查找结果当前行颜色 */
FINDER_CELL_BG_COLOR: string;
/** 启用查找 */
ENABLE_FINDER: boolean;
/** 选择框大小 */
CHECKBOX_SIZE: number;
/** 选择框禁用图标 */
CHECKBOX_DISABLED_SVG: string;
/** 选择框禁用图标颜色 */
CHECKBOX_DISABLED_COLOR: string;
/** 选择框选中图标 */
CHECKBOX_CHECK_SVG: string;
/** 选择框未中图标 */
CHECKBOX_UNCHECK_SVG: string;
/** 选择框未中图标颜色 */
CHECKBOX_UNCHECK_COLOR: string;
/** 选择框半选中图标 */
CHECKBOX_INDETERMINATE_SVG: string;
/** 选择框选中禁用图标 */
CHECKBOX_CHECK_DISABLED_SVG: string;
/** 选择框选中禁用图标颜色 */
CHECKBOX_CHECK_DISABLED_COLOR: string;
/** 编辑图标 */
ICON_EDIT_SVG: string;
/** 编辑图标颜色 */
ICON_EDIT_COLOR: string;
/** 选择图标 */
ICON_SELECT_SVG: string;
/** 选择图标颜色 */
ICON_SELECT_COLOR: string;
/** 启用严格排序,即不支持多列排序 */
SORT_STRICTLY: boolean;
/** 排序升序图标 */
SORT_ASC_ICON_SVG: string;
/** 排序降序图标 */
SORT_DESC_ICON_SVG: string;
/** 排序默认图标 */
SORTABLE_ICON_SVG: string;
/** 排序图标颜色 */
SORT_ICON_COLOR: string;
/** 单元格只读背景色 */
READONLY_COLOR: string;
/** 单元格只读文本颜色 */
READONLY_TEXT_COLOR: string;
/** 单元格错误提示文本颜色 */
ERROR_TIP_COLOR: string;
/** 合计底部背景色 */
FOOTER_BG_COLOR: string;
/** 合计底部固定 */
FOOTER_FIXED: boolean;
/** 合计底部位置 */
FOOTER_POSITION: FooterPosition;
/** 单元格底部高度 */
CELL_FOOTER_HEIGHT: number;
/** 启用选择器 */
ENABLE_SELECTOR: boolean;
/** 树形选择模式 */
TREE_SELECT_MODE: TreeSelectMode;
/** 树形子项key名称 */
TREE_CHILDREN_KEY: string;
/** 树形缩进宽度 */
TREE_INDENT: number;
/** 树形图标大小 */
TREE_ICON_SIZE: number;
/**树形划线 */
TREE_LINE: boolean;
/** 树形划线颜色 */
TREE_LINE_COLOR: string;
/** 启用单点击立马编辑 */
ENABLE_EDIT_SINGLE_CLICK: boolean;
/** 启用点击选择器编辑 */
ENABLE_EDIT_CLICK_SELECTOR: boolean;
/** 选择器X最小范围 */
SELECTOR_AREA_MIN_X: number;
/** 选择器X最大范围colMax - offset */
SELECTOR_AREA_MAX_X_OFFSET: number;
/** 选择器X最大范围,0默认最大colMax */
SELECTOR_AREA_MAX_X: number;
/** 选择器Y最小范围 */
SELECTOR_AREA_MIN_Y: number;
/** 选择器Y最大范围,0默认rowMax */
SELECTOR_AREA_MAX_Y: number;
/** 选择器Y最大范围,0默认rowMax */
SELECTOR_AREA_MAX_Y_OFFSET: number;
/** 选择器值类型,value,displayText,区别displayText受format影响 */
SELECTOR_CELL_VALUE_TYPE: SelectorCellValueType;
/** 启用自动主题 */
ENABLE_AUTO_THEME: boolean;
/** 启用选择器-选择器单选 */
ENABLE_SELECTOR_SINGLE: boolean;
/** 启用选择器-批量跨列选择 */
ENABLE_SELECTOR_SPAN_COL: boolean;
/** 启用选择器-批量跨行选择 */
ENABLE_SELECTOR_SPAN_ROW: boolean;
/** 启用选择器-批量选中列 */
ENABLE_SELECTOR_ALL_ROWS: boolean;
/** 启用选择器-批量选中行 */
ENABLE_SELECTOR_ALL_COLS: boolean;
/** 启用合并格子数据关联 */
ENABLE_MERGE_CELL_LINK: boolean;
/** 启用填充器 */
ENABLE_AUTOFILL: boolean;
/** 启用选择器-批量跨列选择 */
ENABLE_AUTOFILL_SPAN_COL: boolean;
/** 启用选择器-批量跨行选择 */
ENABLE_AUTOFILL_SPAN_ROW: boolean;
/** 启用body右键菜单 */
ENABLE_CONTEXT_MENU: boolean;
/** 启用表头右键菜单 */
ENABLE_HEADER_CONTEXT_MENU: boolean;
/** 启用复制 */
ENABLE_COPY: boolean;
/** 启用粘贴 */
ENABLE_PASTER: boolean;
/** 启用调整行高 */
ENABLE_RESIZE_ROW: boolean;
/** 启用列宽可调整 */
ENABLE_RESIZE_COLUMN: boolean;
/** 行调整线颜色 */
RESIZE_ROW_LINE_COLOR: string;
/** 列调整线颜色 */
RESIZE_COLUMN_LINE_COLOR: string;
/** 启用列调整文本 */
ENABLE_RESIZE_COLUMN_TEXT: boolean;
/** 列调整线颜色 */
RESIZE_COLUMN_TEXT_COLOR: string;
/** 列调整线文本背景色 */
RESIZE_COLUMN_TEXT_BG_COLOR: string;
/** 最小调整行高 */
RESIZE_ROW_MIN_HEIGHT: number;
/** 列宽最小值 */
RESIZE_COLUMN_MIN_WIDTH: number;
/** 拖拽提示背景色 */
DRAG_TIP_BG_COLOR: string;
/** 拖拽提示线颜色 */
DRAG_TIP_LINE_COLOR: string;
/** 拖拽提示文本颜色 */
/** 启用键盘 */
ENABLE_KEYBOARD: boolean;
/** 启用历史 */
ENABLE_HISTORY: boolean;
ENABLE_VALIDATOR_IMMEDIATE: boolean;
/** 历史栈数量 */
HISTORY_NUM: number;
/** 启用悬浮高亮 */
HIGHLIGHT_HOVER_ROW: boolean;
/** 悬浮颜色 */
HIGHLIGHT_HOVER_ROW_COLOR: string;
/** 高亮选中当前行 */
HIGHLIGHT_SELECTED_ROW: boolean;
/** 高亮当前行颜色 */
HIGHLIGHT_SELECTED_ROW_COLOR: string;
/** 提示背景颜色 */
TOOLTIP_BG_COLOR: string;
/** 提示文本颜色 */
TOOLTIP_TEXT_COLOR: string;
/** 提示层级 */
TOOLTIP_ZINDEX: number;
/** 自定义提示样式 */
TOOLTIP_CUSTOM_STYLE: Partial<CSSStyleDeclaration>;
/** 自定义右键菜单 */
CONTEXT_MENU: MenuItem[];
CUSTOM_BODY_CONTEXT_MENU: MenuItem[];
HEADER_CONTEXT_MENU: MenuItem[];
CUSTOM_HEADER_CONTEXT_MENU: MenuItem[];
/** 格子多行文本行高,isAutoRowHeight才会生效 */
CELL_LINE_HEIGHT: number;
/** 全局自动行高 */
AUTO_ROW_HEIGHT: boolean;
/** 记录最大行高(开启后横向滚动不会导致行高变小) */
REMEMBER_MAX_ROW_HEIGHT: boolean;
/** 启用拖拽表头 */
ENABLE_DRAG_COLUMN: boolean;
/** header 格子样式 */
HEADER_CELL_STYLE_METHOD?: CellHeaderStyleMethod;
/** body 格子样式 */
BODY_CELL_STYLE_METHOD?: CellStyleMethod;
/** footer 格子样式 */
FOOTER_CELL_STYLE_METHOD?: CellStyleMethod;
/** 自定义只读 */
BODY_CELL_READONLY_METHOD?: CellReadonlyMethod;
/** 格式化方法更改(formatter优先等级比较高) */
BODY_CELL_FORMATTER_METHOD?: FormatterMethod;
/** 自定义校验规则 */
BODY_CELL_RULES_METHOD?: CellRulesMethod;
/** 自定义只读 */
BODY_CELL_TYPE_METHOD?: CellTypeMethod;
/** 自定义编辑器类型 */
BODY_CELL_EDITOR_METHOD?: CellEditorMethod;
/** 自定义只读 */
BODY_CELL_RENDER_METHOD?: CellRenderMethod;
/** 自定义只读 */
BODY_CELL_HOVER_ICON_METHOD?: CellHoverIconMethod;
/** 自定义跨列/行渲染 */
SPAN_METHOD?: SpanMethod;
/** 自定义选择禁用 */
SELECTABLE_METHOD?: SelectableMethod;
/** 自定义选择禁用 */
EXPAND_LAZY_METHOD?: ExpandLazyMethod;
/** 数值改变前回调 */
BEFORE_VALUE_CHANGE_METHOD?: BeforeCellValueChangeMethod;
/** 粘贴前回调 */
BEFORE_PASTE_DATA_METHOD?: BeforePasteDataMethod;
/** 数值填充前回调 */
BEFORE_AUTOFILL_DATA_METHOD?: BeforeAutofillDataMethod;
/** 设置选择器前回调 */
BEFORE_SET_SELECTOR_METHOD?: BeforeSetSelectorMethod;
/** 设置填充器前回调 */
BEFORE_SET_AUTOFILL_METHOD?: BeforeSetAutofillMethod;
/** 数据复制前回调 */
BEFORE_COPY_METHOD?: BeforeCopyMethod;
constructor(config: Partial<Config>);
/** 初始化 */
init(config: ConfigType): void;
/** 同步css 样式变量 */
updateCssVar(): void;
}