UNPKG

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
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; }