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.

1,200 lines 39 kB
import { getCssVar } from './util'; export default class Config { constructor(config) { Object.defineProperty(this, "_config", { enumerable: true, configurable: true, writable: true, value: {} }); /** CSS 类名前缀 */ Object.defineProperty(this, "CSS_PREFIX", { enumerable: true, configurable: true, writable: true, value: 'e-virt-table' }); /** 图标集合 */ Object.defineProperty(this, "ICONS", { enumerable: true, configurable: true, writable: true, value: [] }); /** 行的唯一标识键 */ Object.defineProperty(this, "ROW_KEY", { enumerable: true, configurable: true, writable: true, value: '' }); /** 禁用编辑,优先等级最高 */ Object.defineProperty(this, "DISABLED", { enumerable: true, configurable: true, writable: true, value: false }); /** 表头字体 */ Object.defineProperty(this, "HEADER_FONT", { enumerable: true, configurable: true, writable: true, value: '12px normal Arial' }); /** 单元格字体 */ Object.defineProperty(this, "BODY_FONT", { enumerable: true, configurable: true, writable: true, value: '12px normal Arial' }); /** 边框 */ Object.defineProperty(this, "BORDER", { enumerable: true, configurable: true, writable: true, value: true }); /** 斑马纹 */ Object.defineProperty(this, "STRIPE", { enumerable: true, configurable: true, writable: true, value: false }); /** 斑马纹颜色 */ Object.defineProperty(this, "STRIPE_COLOR", { enumerable: true, configurable: true, writable: true, value: '#fafafa' }); /** 区域边框颜色 */ Object.defineProperty(this, "BORDER_COLOR", { enumerable: true, configurable: true, writable: true, value: '#e1e6eb' }); /** 高度,为 0 表示自适应 */ Object.defineProperty(this, "HEIGHT", { enumerable: true, configurable: true, writable: true, value: 0 }); /** 占位文本颜色 */ Object.defineProperty(this, "PLACEHOLDER_COLOR", { enumerable: true, configurable: true, writable: true, value: '#CDD0DC' }); /** 空数据 body 高度 */ Object.defineProperty(this, "EMPTY_BODY_HEIGHT", { enumerable: true, configurable: true, writable: true, value: 120 }); /** 自定义空样式 */ Object.defineProperty(this, "EMPTY_CUSTOM_STYLE", { enumerable: true, configurable: true, writable: true, value: {} }); /** 空数据文本 */ Object.defineProperty(this, "EMPTY_TEXT", { enumerable: true, configurable: true, writable: true, value: '暂无数据' }); /** 加载文本 */ Object.defineProperty(this, "LOADING_TEXT", { enumerable: true, configurable: true, writable: true, value: '加载中...' }); /** 最大高度,为 0 表示自适应高度根据 HEIGHT */ Object.defineProperty(this, "MAX_HEIGHT", { enumerable: true, configurable: true, writable: true, value: 1000 }); /** 区域边框圆角 */ Object.defineProperty(this, "BORDER_RADIUS", { enumerable: true, configurable: true, writable: true, value: 8 }); /** 启用偏移高度内部计算表格高度 */ Object.defineProperty(this, "ENABLE_OFFSET_HEIGHT", { enumerable: true, configurable: true, writable: true, value: false }); /** 偏移高度 */ Object.defineProperty(this, "OFFSET_HEIGHT", { enumerable: true, configurable: true, writable: true, value: 0 }); /** 表头高度 */ Object.defineProperty(this, "HEADER_HEIGHT", { enumerable: true, configurable: true, writable: true, value: 36 }); /** 启用头部固定,需要外面实现覆盖层,或者所有表头都要是元素 */ Object.defineProperty(this, "ENABLE_HEADER_STICKY", { enumerable: true, configurable: true, writable: true, value: false }); /** 表头背景色 */ Object.defineProperty(this, "HEADER_BG_COLOR", { enumerable: true, configurable: true, writable: true, value: '#F8FAFF' }); /** body 背景色 */ Object.defineProperty(this, "BODY_BG_COLOR", { enumerable: true, configurable: true, writable: true, value: '#FFF' }); /** 表头文本颜色 */ Object.defineProperty(this, "HEADER_TEXT_COLOR", { enumerable: true, configurable: true, writable: true, value: '#1D2129' }); /** 必填*颜色 */ Object.defineProperty(this, "REQUIRED_COLOR", { enumerable: true, configurable: true, writable: true, value: '#F56C6C' }); /** body文本颜色 */ Object.defineProperty(this, "BODY_TEXT_COLOR", { enumerable: true, configurable: true, writable: true, value: '#4E5969' }); /** footer文本颜色 */ Object.defineProperty(this, "FOOTER_TEXT_COLOR", { enumerable: true, configurable: true, writable: true, value: '#4E5969' }); /** 加载 svg 图标 */ Object.defineProperty(this, "LOADING_ICON_SVG", { enumerable: true, configurable: true, writable: true, value: '' }); /** 加载 svg 图标颜色 */ Object.defineProperty(this, "LOADING_ICON_COLOR", { enumerable: true, configurable: true, writable: true, value: '#4E5969' }); /** 树形展开svg 图标 */ Object.defineProperty(this, "EXPAND_ICON_SVG", { enumerable: true, configurable: true, writable: true, value: '' }); /** 树形收缩svg 图标 */ Object.defineProperty(this, "SHRINK_ICON_SVG", { enumerable: true, configurable: true, writable: true, value: '' }); /** 展开图标颜色 */ Object.defineProperty(this, "EXPAND_ICON_COLOR", { enumerable: true, configurable: true, writable: true, value: '#4E5969' }); /** 收缩图标颜色 */ Object.defineProperty(this, "SHRINK_ICON_COLOR", { enumerable: true, configurable: true, writable: true, value: '#4E5969' }); /** 错误提示颜色 */ Object.defineProperty(this, "ERROR_TIP_ICON_COLOR", { enumerable: true, configurable: true, writable: true, value: 'red' }); /** 错误提示图标大小 */ Object.defineProperty(this, "ERROR_TIP_ICON_SIZE", { enumerable: true, configurable: true, writable: true, value: 6 }); /** 所有列对齐方式 */ Object.defineProperty(this, "COLUMNS_ALIGN", { enumerable: true, configurable: true, writable: true, value: 'left' }); /** 所有列垂直对齐方式 */ Object.defineProperty(this, "COLUMNS_VERTICAL_ALIGN", { enumerable: true, configurable: true, writable: true, value: 'middle' }); /** 是否开启懒加载 */ Object.defineProperty(this, "EXPAND_LAZY", { enumerable: true, configurable: true, writable: true, value: true }); /** 默认展开全部 */ Object.defineProperty(this, "DEFAULT_EXPAND_ALL", { enumerable: true, configurable: true, writable: true, value: false }); /** 表格 body 部分的宽度 */ Object.defineProperty(this, "CELL_WIDTH", { enumerable: true, configurable: true, writable: true, value: 100 }); /** body 单元格默认行高 */ Object.defineProperty(this, "CELL_HEIGHT", { enumerable: true, configurable: true, writable: true, value: 36 }); /** 表格 body 部分的 padding */ Object.defineProperty(this, "CELL_PADDING", { enumerable: true, configurable: true, writable: true, value: 8 }); /** hover编辑图标大小 */ Object.defineProperty(this, "CELL_HOVER_ICON_SIZE", { enumerable: true, configurable: true, writable: true, value: 14 }); /** hover编辑图标背景色 */ Object.defineProperty(this, "CELL_HOVER_ICON_BG_COLOR", { enumerable: true, configurable: true, writable: true, value: '#fff' }); /** hover编辑图标边框颜色 */ Object.defineProperty(this, "CELL_HOVER_ICON_BORDER_COLOR", { enumerable: true, configurable: true, writable: true, value: '#DDE0EA' }); /** 滚动条轨道尺寸 */ Object.defineProperty(this, "SCROLLER_TRACK_SIZE", { enumerable: true, configurable: true, writable: true, value: 14 }); /** 滚动条滑块尺寸 */ Object.defineProperty(this, "SCROLLER_SIZE", { enumerable: true, configurable: true, writable: true, value: 8 }); /** 滚动条滑块颜色 */ Object.defineProperty(this, "SCROLLER_COLOR", { enumerable: true, configurable: true, writable: true, value: '#dee0e3' }); /** 轨道颜色 */ Object.defineProperty(this, "SCROLLER_TRACK_COLOR", { enumerable: true, configurable: true, writable: true, value: '#fff' }); /** 滚动条滑块聚焦时的颜色 */ Object.defineProperty(this, "SCROLLER_FOCUS_COLOR", { enumerable: true, configurable: true, writable: true, value: '#bbbec4' }); /** 选中区域边框颜色 */ Object.defineProperty(this, "SELECT_BORDER_COLOR", { enumerable: true, configurable: true, writable: true, value: 'rgb(82,146,247)' }); /** 选中区域背景颜色 */ Object.defineProperty(this, "SELECT_AREA_COLOR", { enumerable: true, configurable: true, writable: true, value: 'rgba(82,146,247,0.1)' }); /** 当前焦点单元格所在行、列的背景色 */ Object.defineProperty(this, "SELECT_ROW_COL_BG_COLOR", { enumerable: true, configurable: true, writable: true, value: 'transparent' }); /** 填充点的边框颜色 */ Object.defineProperty(this, "AUTOFILL_POINT_BORDER_COLOR", { enumerable: true, configurable: true, writable: true, value: '#fff' }); /** 可编辑背景色 */ Object.defineProperty(this, "EDIT_BG_COLOR", { enumerable: true, configurable: true, writable: true, value: '#fcf6ed' }); /** 选择 key,合并时用 */ Object.defineProperty(this, "CHECKBOX_KEY", { enumerable: true, configurable: true, writable: true, value: '' }); /** 选择框颜色 */ Object.defineProperty(this, "CHECKBOX_COLOR", { enumerable: true, configurable: true, writable: true, value: 'rgb(82,146,247)' }); /** 查找结果当前行颜色 */ Object.defineProperty(this, "FINDER_CELL_BG_COLOR", { enumerable: true, configurable: true, writable: true, value: 'rgb(255,229,144)' }); /** 启用查找 */ Object.defineProperty(this, "ENABLE_FINDER", { enumerable: true, configurable: true, writable: true, value: true }); /** 选择框大小 */ Object.defineProperty(this, "CHECKBOX_SIZE", { enumerable: true, configurable: true, writable: true, value: 20 }); /** 选择框禁用图标 */ Object.defineProperty(this, "CHECKBOX_DISABLED_SVG", { enumerable: true, configurable: true, writable: true, value: '' }); /** 选择框禁用图标颜色 */ Object.defineProperty(this, "CHECKBOX_DISABLED_COLOR", { enumerable: true, configurable: true, writable: true, value: '#F1F2F4' }); /** 选择框选中图标 */ Object.defineProperty(this, "CHECKBOX_CHECK_SVG", { enumerable: true, configurable: true, writable: true, value: '' }); /** 选择框未中图标 */ Object.defineProperty(this, "CHECKBOX_UNCHECK_SVG", { enumerable: true, configurable: true, writable: true, value: '' }); /** 选择框未中图标颜色 */ Object.defineProperty(this, "CHECKBOX_UNCHECK_COLOR", { enumerable: true, configurable: true, writable: true, value: '#DDE0EA' }); /** 选择框半选中图标 */ Object.defineProperty(this, "CHECKBOX_INDETERMINATE_SVG", { enumerable: true, configurable: true, writable: true, value: '' }); /** 选择框选中禁用图标 */ Object.defineProperty(this, "CHECKBOX_CHECK_DISABLED_SVG", { enumerable: true, configurable: true, writable: true, value: '' }); /** 选择框选中禁用图标颜色 */ Object.defineProperty(this, "CHECKBOX_CHECK_DISABLED_COLOR", { enumerable: true, configurable: true, writable: true, value: '#DDE0EA' }); /** 编辑图标 */ Object.defineProperty(this, "ICON_EDIT_SVG", { enumerable: true, configurable: true, writable: true, value: '' }); /** 编辑图标颜色 */ Object.defineProperty(this, "ICON_EDIT_COLOR", { enumerable: true, configurable: true, writable: true, value: '#4E5969' }); /** 选择图标 */ Object.defineProperty(this, "ICON_SELECT_SVG", { enumerable: true, configurable: true, writable: true, value: '' }); /** 选择图标颜色 */ Object.defineProperty(this, "ICON_SELECT_COLOR", { enumerable: true, configurable: true, writable: true, value: '#4E5969' }); /** 启用严格排序,即不支持多列排序 */ Object.defineProperty(this, "SORT_STRICTLY", { enumerable: true, configurable: true, writable: true, value: true }); /** 排序升序图标 */ Object.defineProperty(this, "SORT_ASC_ICON_SVG", { enumerable: true, configurable: true, writable: true, value: '' }); /** 排序降序图标 */ Object.defineProperty(this, "SORT_DESC_ICON_SVG", { enumerable: true, configurable: true, writable: true, value: '' }); /** 排序默认图标 */ Object.defineProperty(this, "SORTABLE_ICON_SVG", { enumerable: true, configurable: true, writable: true, value: '' }); /** 排序图标颜色 */ Object.defineProperty(this, "SORT_ICON_COLOR", { enumerable: true, configurable: true, writable: true, value: 'rgb(82,146,247)' }); /** 单元格只读背景色 */ Object.defineProperty(this, "READONLY_COLOR", { enumerable: true, configurable: true, writable: true, value: '#fff' }); /** 单元格只读文本颜色 */ Object.defineProperty(this, "READONLY_TEXT_COLOR", { enumerable: true, configurable: true, writable: true, value: '#4E5969' }); /** 单元格错误提示文本颜色 */ Object.defineProperty(this, "ERROR_TIP_COLOR", { enumerable: true, configurable: true, writable: true, value: '#ED3F14' }); /** 合计底部背景色 */ Object.defineProperty(this, "FOOTER_BG_COLOR", { enumerable: true, configurable: true, writable: true, value: '#fafafa' }); /** 合计底部固定 */ Object.defineProperty(this, "FOOTER_FIXED", { enumerable: true, configurable: true, writable: true, value: true }); /** 合计底部位置 */ Object.defineProperty(this, "FOOTER_POSITION", { enumerable: true, configurable: true, writable: true, value: 'bottom' }); /** 单元格底部高度 */ Object.defineProperty(this, "CELL_FOOTER_HEIGHT", { enumerable: true, configurable: true, writable: true, value: 36 }); /** 启用选择器 */ Object.defineProperty(this, "ENABLE_SELECTOR", { enumerable: true, configurable: true, writable: true, value: true }); /** 树形选择模式 */ Object.defineProperty(this, "TREE_SELECT_MODE", { enumerable: true, configurable: true, writable: true, value: 'auto' }); /** 树形子项key名称 */ Object.defineProperty(this, "TREE_CHILDREN_KEY", { enumerable: true, configurable: true, writable: true, value: 'children' }); /** 树形缩进宽度 */ Object.defineProperty(this, "TREE_INDENT", { enumerable: true, configurable: true, writable: true, value: 20 }); /** 树形图标大小 */ Object.defineProperty(this, "TREE_ICON_SIZE", { enumerable: true, configurable: true, writable: true, value: 20 }); /**树形划线 */ Object.defineProperty(this, "TREE_LINE", { enumerable: true, configurable: true, writable: true, value: false }); /** 树形划线颜色 */ Object.defineProperty(this, "TREE_LINE_COLOR", { enumerable: true, configurable: true, writable: true, value: '#e1e6eb' }); /** 启用单点击立马编辑 */ Object.defineProperty(this, "ENABLE_EDIT_SINGLE_CLICK", { enumerable: true, configurable: true, writable: true, value: false }); /** 启用点击选择器编辑 */ Object.defineProperty(this, "ENABLE_EDIT_CLICK_SELECTOR", { enumerable: true, configurable: true, writable: true, value: true }); /** 选择器X最小范围 */ Object.defineProperty(this, "SELECTOR_AREA_MIN_X", { enumerable: true, configurable: true, writable: true, value: 0 }); /** 选择器X最大范围colMax - offset */ Object.defineProperty(this, "SELECTOR_AREA_MAX_X_OFFSET", { enumerable: true, configurable: true, writable: true, value: 0 }); /** 选择器X最大范围,0默认最大colMax */ Object.defineProperty(this, "SELECTOR_AREA_MAX_X", { enumerable: true, configurable: true, writable: true, value: 0 }); /** 选择器Y最小范围 */ Object.defineProperty(this, "SELECTOR_AREA_MIN_Y", { enumerable: true, configurable: true, writable: true, value: 0 }); /** 选择器Y最大范围,0默认rowMax */ Object.defineProperty(this, "SELECTOR_AREA_MAX_Y", { enumerable: true, configurable: true, writable: true, value: 0 }); /** 选择器Y最大范围,0默认rowMax */ Object.defineProperty(this, "SELECTOR_AREA_MAX_Y_OFFSET", { enumerable: true, configurable: true, writable: true, value: 0 }); /** 选择器值类型,value,displayText,区别displayText受format影响 */ Object.defineProperty(this, "SELECTOR_CELL_VALUE_TYPE", { enumerable: true, configurable: true, writable: true, value: 'value' }); // displayText | value /** 启用自动主题 */ Object.defineProperty(this, "ENABLE_AUTO_THEME", { enumerable: true, configurable: true, writable: true, value: true }); /** 启用选择器-选择器单选 */ Object.defineProperty(this, "ENABLE_SELECTOR_SINGLE", { enumerable: true, configurable: true, writable: true, value: false }); /** 启用选择器-批量跨列选择 */ Object.defineProperty(this, "ENABLE_SELECTOR_SPAN_COL", { enumerable: true, configurable: true, writable: true, value: true }); /** 启用选择器-批量跨行选择 */ Object.defineProperty(this, "ENABLE_SELECTOR_SPAN_ROW", { enumerable: true, configurable: true, writable: true, value: true }); /** 启用选择器-批量选中列 */ Object.defineProperty(this, "ENABLE_SELECTOR_ALL_ROWS", { enumerable: true, configurable: true, writable: true, value: true }); /** 启用选择器-批量选中行 */ Object.defineProperty(this, "ENABLE_SELECTOR_ALL_COLS", { enumerable: true, configurable: true, writable: true, value: true }); /** 启用合并格子数据关联 */ Object.defineProperty(this, "ENABLE_MERGE_CELL_LINK", { enumerable: true, configurable: true, writable: true, value: false }); /** 启用填充器 */ Object.defineProperty(this, "ENABLE_AUTOFILL", { enumerable: true, configurable: true, writable: true, value: false }); /** 启用选择器-批量跨列选择 */ Object.defineProperty(this, "ENABLE_AUTOFILL_SPAN_COL", { enumerable: true, configurable: true, writable: true, value: true }); /** 启用选择器-批量跨行选择 */ Object.defineProperty(this, "ENABLE_AUTOFILL_SPAN_ROW", { enumerable: true, configurable: true, writable: true, value: true }); /** 启用body右键菜单 */ Object.defineProperty(this, "ENABLE_CONTEXT_MENU", { enumerable: true, configurable: true, writable: true, value: false }); /** 启用表头右键菜单 */ Object.defineProperty(this, "ENABLE_HEADER_CONTEXT_MENU", { enumerable: true, configurable: true, writable: true, value: false }); /** 启用复制 */ Object.defineProperty(this, "ENABLE_COPY", { enumerable: true, configurable: true, writable: true, value: true }); /** 启用粘贴 */ Object.defineProperty(this, "ENABLE_PASTER", { enumerable: true, configurable: true, writable: true, value: true }); /** 启用调整行高 */ Object.defineProperty(this, "ENABLE_RESIZE_ROW", { enumerable: true, configurable: true, writable: true, value: true }); /** 启用列宽可调整 */ Object.defineProperty(this, "ENABLE_RESIZE_COLUMN", { enumerable: true, configurable: true, writable: true, value: true }); /** 行调整线颜色 */ Object.defineProperty(this, "RESIZE_ROW_LINE_COLOR", { enumerable: true, configurable: true, writable: true, value: '#e1e6eb' }); /** 列调整线颜色 */ Object.defineProperty(this, "RESIZE_COLUMN_LINE_COLOR", { enumerable: true, configurable: true, writable: true, value: '#e1e6eb' }); /** 启用列调整文本 */ Object.defineProperty(this, "ENABLE_RESIZE_COLUMN_TEXT", { enumerable: true, configurable: true, writable: true, value: true }); /** 列调整线颜色 */ Object.defineProperty(this, "RESIZE_COLUMN_TEXT_COLOR", { enumerable: true, configurable: true, writable: true, value: '#fff' }); /** 列调整线文本背景色 */ Object.defineProperty(this, "RESIZE_COLUMN_TEXT_BG_COLOR", { enumerable: true, configurable: true, writable: true, value: 'rgb(82,146,247)' }); /** 最小调整行高 */ Object.defineProperty(this, "RESIZE_ROW_MIN_HEIGHT", { enumerable: true, configurable: true, writable: true, value: 36 }); /** 列宽最小值 */ Object.defineProperty(this, "RESIZE_COLUMN_MIN_WIDTH", { enumerable: true, configurable: true, writable: true, value: 40 }); /** 拖拽提示背景色 */ Object.defineProperty(this, "DRAG_TIP_BG_COLOR", { enumerable: true, configurable: true, writable: true, value: 'rgba(82,146,247,0.1)' }); /** 拖拽提示线颜色 */ Object.defineProperty(this, "DRAG_TIP_LINE_COLOR", { enumerable: true, configurable: true, writable: true, value: 'rgb(82,146,247)' }); /** 拖拽提示文本颜色 */ /** 启用键盘 */ Object.defineProperty(this, "ENABLE_KEYBOARD", { enumerable: true, configurable: true, writable: true, value: true }); /** 启用历史 */ Object.defineProperty(this, "ENABLE_HISTORY", { enumerable: true, configurable: true, writable: true, value: false }); Object.defineProperty(this, "ENABLE_VALIDATOR_IMMEDIATE", { enumerable: true, configurable: true, writable: true, value: true }); /** 历史栈数量 */ Object.defineProperty(this, "HISTORY_NUM", { enumerable: true, configurable: true, writable: true, value: 50 }); /** 启用悬浮高亮 */ Object.defineProperty(this, "HIGHLIGHT_HOVER_ROW", { enumerable: true, configurable: true, writable: true, value: false }); /** 悬浮颜色 */ Object.defineProperty(this, "HIGHLIGHT_HOVER_ROW_COLOR", { enumerable: true, configurable: true, writable: true, value: 'rgba(186,203,231,0.1)' }); /** 高亮选中当前行 */ Object.defineProperty(this, "HIGHLIGHT_SELECTED_ROW", { enumerable: true, configurable: true, writable: true, value: false }); /** 高亮当前行颜色 */ Object.defineProperty(this, "HIGHLIGHT_SELECTED_ROW_COLOR", { enumerable: true, configurable: true, writable: true, value: 'rgba(82,146,247,0.1)' }); /** 提示背景颜色 */ Object.defineProperty(this, "TOOLTIP_BG_COLOR", { enumerable: true, configurable: true, writable: true, value: '#303133' }); /** 提示文本颜色 */ Object.defineProperty(this, "TOOLTIP_TEXT_COLOR", { enumerable: true, configurable: true, writable: true, value: '#fff' }); /** 提示层级 */ Object.defineProperty(this, "TOOLTIP_ZINDEX", { enumerable: true, configurable: true, writable: true, value: 3000 }); /** 自定义提示样式 */ Object.defineProperty(this, "TOOLTIP_CUSTOM_STYLE", { enumerable: true, configurable: true, writable: true, value: {} }); /** 自定义右键菜单 */ Object.defineProperty(this, "CONTEXT_MENU", { enumerable: true, configurable: true, writable: true, value: [ { label: '复制', value: 'copy' }, { label: '剪切', value: 'cut' }, { label: '粘贴', value: 'paste' }, { label: '清空选中内容', value: 'clearSelected' }, ] }); Object.defineProperty(this, "CUSTOM_BODY_CONTEXT_MENU", { enumerable: true, configurable: true, writable: true, value: [] }); Object.defineProperty(this, "HEADER_CONTEXT_MENU", { enumerable: true, configurable: true, writable: true, value: [ { label: '左固定', value: 'fixedLeft' }, { label: '右固定', value: 'fixedRight' }, { label: '取消固定', value: 'fixedNone' }, { label: '隐藏', value: 'hide' }, { label: '显示', value: 'visible', }, { label: '恢复默认', value: 'resetHeader' }, ] }); Object.defineProperty(this, "CUSTOM_HEADER_CONTEXT_MENU", { enumerable: true, configurable: true, writable: true, value: [] }); /** 格子多行文本行高,isAutoRowHeight才会生效 */ Object.defineProperty(this, "CELL_LINE_HEIGHT", { enumerable: true, configurable: true, writable: true, value: 1.3 }); /** 全局自动行高 */ Object.defineProperty(this, "AUTO_ROW_HEIGHT", { enumerable: true, configurable: true, writable: true, value: false }); /** 记录最大行高(开启后横向滚动不会导致行高变小) */ Object.defineProperty(this, "REMEMBER_MAX_ROW_HEIGHT", { enumerable: true, configurable: true, writable: true, value: false }); /** 启用拖拽表头 */ Object.defineProperty(this, "ENABLE_DRAG_COLUMN", { enumerable: true, configurable: true, writable: true, value: false }); /** header 格子样式 */ Object.defineProperty(this, "HEADER_CELL_STYLE_METHOD", { enumerable: true, configurable: true, writable: true, value: void 0 }); /** body 格子样式 */ Object.defineProperty(this, "BODY_CELL_STYLE_METHOD", { enumerable: true, configurable: true, writable: true, value: void 0 }); /** footer 格子样式 */ Object.defineProperty(this, "FOOTER_CELL_STYLE_METHOD", { enumerable: true, configurable: true, writable: true, value: void 0 }); /** 自定义只读 */ Object.defineProperty(this, "BODY_CELL_READONLY_METHOD", { enumerable: true, configurable: true, writable: true, value: void 0 }); /** 格式化方法更改(formatter优先等级比较高) */ Object.defineProperty(this, "BODY_CELL_FORMATTER_METHOD", { enumerable: true, configurable: true, writable: true, value: void 0 }); /** 自定义校验规则 */ Object.defineProperty(this, "BODY_CELL_RULES_METHOD", { enumerable: true, configurable: true, writable: true, value: void 0 }); /** 自定义只读 */ Object.defineProperty(this, "BODY_CELL_TYPE_METHOD", { enumerable: true, configurable: true, writable: true, value: void 0 }); /** 自定义编辑器类型 */ Object.defineProperty(this, "BODY_CELL_EDITOR_METHOD", { enumerable: true, configurable: true, writable: true, value: void 0 }); /** 自定义只读 */ Object.defineProperty(this, "BODY_CELL_RENDER_METHOD", { enumerable: true, configurable: true, writable: true, value: void 0 }); /** 自定义只读 */ Object.defineProperty(this, "BODY_CELL_HOVER_ICON_METHOD", { enumerable: true, configurable: true, writable: true, value: void 0 }); /** 自定义跨列/行渲染 */ Object.defineProperty(this, "SPAN_METHOD", { enumerable: true, configurable: true, writable: true, value: void 0 }); /** 自定义选择禁用 */ Object.defineProperty(this, "SELECTABLE_METHOD", { enumerable: true, configurable: true, writable: true, value: void 0 }); /** 自定义选择禁用 */ Object.defineProperty(this, "EXPAND_LAZY_METHOD", { enumerable: true, configurable: true, writable: true, value: void 0 }); /** 数值改变前回调 */ Object.defineProperty(this, "BEFORE_VALUE_CHANGE_METHOD", { enumerable: true, configurable: true, writable: true, value: void 0 }); /** 粘贴前回调 */ Object.defineProperty(this, "BEFORE_PASTE_DATA_METHOD", { enumerable: true, configurable: true, writable: true, value: void 0 }); /** 数值填充前回调 */ Object.defineProperty(this, "BEFORE_AUTOFILL_DATA_METHOD", { enumerable: true, configurable: true, writable: true, value: void 0 }); /** 设置选择器前回调 */ Object.defineProperty(this, "BEFORE_SET_SELECTOR_METHOD", { enumerable: true, configurable: true, writable: true, value: void 0 }); /** 设置填充器前回调 */ Object.defineProperty(this, "BEFORE_SET_AUTOFILL_METHOD", { enumerable: true, configurable: true, writable: true, value: void 0 }); /** 数据复制前回调 */ Object.defineProperty(this, "BEFORE_COPY_METHOD", { enumerable: true, configurable: true, writable: true, value: void 0 }); this._config = config; this.updateCssVar(); } /** 初始化 */ init(config) { this._config = config; this.updateCssVar(); } /** 同步css 样式变量 */ updateCssVar() { let obj = {}; Object.keys(this).forEach((key) => { if (key.endsWith('_COLOR') || key.endsWith('_FONT')) { const cssKey = `--evt-${key.toLocaleLowerCase().replace(/_/g, '-')}`; const val = getCssVar(cssKey); if (val) { obj[key] = val; } } }); Object.assign(this, obj, this._config); } } //# sourceMappingURL=Config.js.map