aiflowy-ui-admin/node_modules/.vite/deps/chunk-W4BZ55WN.js

2192 lines
79 KiB
JavaScript

import {
errLog,
getSlotVNs,
warnLog
} from "./chunk-GPQQMF6N.js";
import {
eqEmptyValue,
formatText,
getFuncText,
isEnableConf
} from "./chunk-Z4MEN7AG.js";
import {
VxeUI,
require_xe_utils
} from "./chunk-YJNUXQVJ.js";
import {
h,
reactive,
watch
} from "./chunk-AAHVYXXY.js";
import {
__toESM
} from "./chunk-V4OQ3NZ2.js";
// ../node_modules/.pnpm/vxe-table@4.17.14_vue@3.5.24_typescript@5.9.3_/node_modules/vxe-table/es/ui/src/dom.js
var import_xe_utils = __toESM(require_xe_utils());
var reClsMap = {};
var tpImgEl;
function initTpImg() {
if (!tpImgEl) {
tpImgEl = new Image();
tpImgEl.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=";
}
return tpImgEl;
}
function getTpImg() {
if (!tpImgEl) {
return initTpImg();
}
return tpImgEl;
}
function getPropClass(property, params) {
return property ? import_xe_utils.default.isFunction(property) ? property(params) : property : "";
}
function getClsRE(cls) {
if (!reClsMap[cls]) {
reClsMap[cls] = new RegExp(`(?:^|\\s)${cls}(?!\\S)`, "g");
}
return reClsMap[cls];
}
function isPx(val) {
return val && /^\d+(px)?$/.test(val);
}
function isScale(val) {
return val && /^\d+%$/.test(val);
}
function hasClass(elem, cls) {
return !!(elem && elem.className && elem.className.match && elem.className.match(getClsRE(cls)));
}
function removeClass(elem, cls) {
if (elem && hasClass(elem, cls)) {
elem.className = elem.className.replace(getClsRE(cls), "");
}
}
function addClass(elem, cls) {
if (elem && !hasClass(elem, cls)) {
removeClass(elem, cls);
elem.className = `${elem.className} ${cls}`;
}
}
function hasControlKey(evnt) {
return evnt.ctrlKey || evnt.metaKey;
}
function toCssUnit(val, unit = "px") {
if (import_xe_utils.default.isNumber(val) || /^\d+$/.test(`${val}`)) {
return `${val}${unit}`;
}
return `${val || ""}`;
}
function queryElement(elem, selector) {
if (elem) {
return elem.querySelector(selector);
}
return null;
}
function getDomNode() {
const documentElement = document.documentElement;
const bodyElem = document.body;
return {
scrollTop: documentElement.scrollTop || bodyElem.scrollTop,
scrollLeft: documentElement.scrollLeft || bodyElem.scrollLeft,
visibleHeight: documentElement.clientHeight || bodyElem.clientHeight,
visibleWidth: documentElement.clientWidth || bodyElem.clientWidth
};
}
function getOffsetHeight(elem) {
return elem ? elem.offsetHeight : 0;
}
function getPaddingTopBottomSize(elem) {
if (elem) {
const computedStyle = getComputedStyle(elem);
const paddingTop = import_xe_utils.default.toNumber(computedStyle.paddingTop);
const paddingBottom = import_xe_utils.default.toNumber(computedStyle.paddingBottom);
return paddingTop + paddingBottom;
}
return 0;
}
function setScrollTop(elem, scrollTop) {
if (elem) {
elem.scrollTop = scrollTop;
}
}
function setScrollLeft(elem, scrollLeft) {
if (elem) {
elem.scrollLeft = scrollLeft;
}
}
function updateCellTitle(overflowElem, column) {
const content = column.type === "html" ? overflowElem.innerText : overflowElem.textContent;
if (overflowElem.getAttribute("title") !== content) {
overflowElem.setAttribute("title", content);
}
}
function checkTargetElement(target, exEls, endEl) {
let targetEl = target;
if (!exEls || !exEls.length) {
return false;
}
const [exEl1, exEl2, exEl3] = exEls;
while (targetEl) {
if (exEl1 === targetEl || exEl2 && targetEl === exEl2 || exEl3 && targetEl === exEl3) {
return true;
}
if (endEl && targetEl === endEl) {
return false;
}
targetEl = targetEl.parentElement;
}
return false;
}
function getEventTargetNode(evnt, container, queryCls, queryMethod) {
let targetElem;
let target = evnt.target.shadowRoot && evnt.composed ? evnt.composedPath()[0] || evnt.target : evnt.target;
while (target && target.nodeType && target !== document) {
if (queryCls && hasClass(target, queryCls) && (!queryMethod || queryMethod(target))) {
targetElem = target;
} else if (target === container) {
return { flag: queryCls ? !!targetElem : true, container, targetElem };
}
target = target.parentNode;
}
return { flag: false };
}
function getAbsolutePos(elem) {
const bounding = elem.getBoundingClientRect();
const boundingTop = bounding.top;
const boundingLeft = bounding.left;
const { scrollTop, scrollLeft, visibleHeight, visibleWidth } = getDomNode();
return { boundingTop, top: scrollTop + boundingTop, boundingLeft, left: scrollLeft + boundingLeft, visibleHeight, visibleWidth };
}
var scrollIntoViewIfNeeded = "scrollIntoViewIfNeeded";
var scrollIntoView = "scrollIntoView";
function scrollToView(elem) {
if (elem) {
if (elem[scrollIntoViewIfNeeded]) {
elem[scrollIntoViewIfNeeded]();
} else if (elem[scrollIntoView]) {
elem[scrollIntoView]();
}
}
}
function triggerEvent(targetElem, type) {
if (targetElem) {
targetElem.dispatchEvent(new Event(type));
}
}
// ../node_modules/.pnpm/vxe-table@4.17.14_vue@3.5.24_typescript@5.9.3_/node_modules/vxe-table/es/table/src/util.js
var import_xe_utils3 = __toESM(require_xe_utils());
// ../node_modules/.pnpm/vxe-table@4.17.14_vue@3.5.24_typescript@5.9.3_/node_modules/vxe-table/es/table/src/columnInfo.js
var import_xe_utils2 = __toESM(require_xe_utils());
var { getI18n, formats, renderer } = VxeUI;
var ColumnInfo = class {
/* eslint-disable @typescript-eslint/no-use-before-define */
constructor($xeTable, _vm, { renderHeader, renderCell, renderFooter, renderData } = {}) {
const tableProps = $xeTable.props;
const $xeGrid = $xeTable.xeGrid;
const $xeGantt = $xeTable.xeGantt;
const $xeGGWrapper = $xeGrid || $xeGantt;
const { field, editRender, filterRender, headerFormatter } = _vm;
const colId = _vm.colId || import_xe_utils2.default.uniqueId("col_");
const formatter = _vm.formatter;
const visible = import_xe_utils2.default.isBoolean(_vm.visible) ? _vm.visible : true;
const flCompConf = isEnableConf(filterRender) ? renderer.get(filterRender.name) : null;
const ctFilterOptions = flCompConf ? flCompConf.createTableFilterOptions : null;
const filters = toFilters(_vm.filters, colId);
if (headerFormatter) {
errLog("vxe.error.notProp", ["header-formatter"]);
}
const types = ["seq", "checkbox", "radio", "expand", "html"];
if (_vm.type && types.indexOf(_vm.type) === -1) {
warnLog("vxe.error.errProp", [`type=${_vm.type}`, types.join(", ")]);
}
if (import_xe_utils2.default.isBoolean(_vm.cellRender) || _vm.cellRender && !import_xe_utils2.default.isObject(_vm.cellRender)) {
warnLog("vxe.error.errProp", [`column.cell-render=${_vm.cellRender}`, "column.cell-render={}"]);
}
if (import_xe_utils2.default.isBoolean(_vm.editRender) || _vm.editRender && !import_xe_utils2.default.isObject(_vm.editRender)) {
warnLog("vxe.error.errProp", [`column.edit-render=${_vm.editRender}`, "column.edit-render={}"]);
}
if (_vm.type === "expand") {
const { treeConfig } = tableProps;
const { computeTreeOpts } = $xeTable.getComputeMaps();
const treeOpts = computeTreeOpts.value;
if (treeConfig && (treeOpts.showLine || treeOpts.line)) {
errLog("vxe.error.errConflicts", ["tree-config.showLine", "column.type=expand"]);
}
}
if (formatter) {
if (import_xe_utils2.default.isString(formatter)) {
const gFormatOpts = formats.get(formatter) || import_xe_utils2.default[formatter];
if (!gFormatOpts || !import_xe_utils2.default.isFunction(gFormatOpts.tableCellFormatMethod || gFormatOpts.cellFormatMethod)) {
errLog("vxe.error.notFormats", [formatter]);
}
} else if (import_xe_utils2.default.isArray(formatter)) {
const gFormatOpts = formats.get(formatter[0]) || import_xe_utils2.default[formatter[0]];
if (!gFormatOpts || !import_xe_utils2.default.isFunction(gFormatOpts.tableCellFormatMethod || gFormatOpts.cellFormatMethod)) {
errLog("vxe.error.notFormats", [formatter[0]]);
}
}
}
if (_vm.aggFunc) {
if (!$xeTable.handlePivotTableAggregateData && _vm.aggFunc !== true) {
errLog("vxe.error.errProp", [`column.agg-func=${_vm.aggFunc}`, "column.agg-func=true"]);
}
}
if (field && editRender) {
if (editRender.startField && `${editRender.startField}`.indexOf(field) >= 0) {
errLog("vxe.error.modelConflicts", [`field=${field}`, `edit-render.startField=${editRender.startField}`]);
}
if (editRender.endField && `${editRender.endField}`.indexOf(field) >= 0) {
errLog("vxe.error.modelConflicts", [`field=${field}`, `edit-render.endField=${editRender.endField}`]);
}
}
Object.assign(this, {
// 基本属性
type: _vm.type,
property: _vm.field,
field,
title: _vm.title,
width: _vm.width,
minWidth: _vm.minWidth,
maxWidth: _vm.maxWidth,
resizable: _vm.resizable,
fixed: _vm.fixed,
align: _vm.align,
headerAlign: _vm.headerAlign,
footerAlign: _vm.footerAlign,
showOverflow: _vm.showOverflow,
showHeaderOverflow: _vm.showHeaderOverflow,
showFooterOverflow: _vm.showFooterOverflow,
className: _vm.className,
headerClassName: _vm.headerClassName,
footerClassName: _vm.footerClassName,
formatter,
headerFormatter: _vm.headerFormatter,
footerFormatter: _vm.footerFormatter,
padding: _vm.padding,
verticalAlign: _vm.verticalAlign,
sortable: _vm.sortable,
sortBy: _vm.sortBy,
sortType: _vm.sortType,
filters,
filterMultiple: import_xe_utils2.default.isBoolean(_vm.filterMultiple) ? _vm.filterMultiple : true,
filterMethod: _vm.filterMethod,
filterResetMethod: _vm.filterResetMethod,
filterRecoverMethod: _vm.filterRecoverMethod,
filterRender,
floatingFilters: _vm.floatingFilters,
rowGroupNode: _vm.rowGroupNode,
treeNode: _vm.treeNode,
dragSort: _vm.dragSort,
rowResize: _vm.rowResize,
cellType: _vm.cellType,
cellRender: _vm.cellRender,
editRender,
contentRender: _vm.contentRender,
headerExportMethod: _vm.headerExportMethod,
exportMethod: _vm.exportMethod,
footerExportMethod: _vm.footerExportMethod,
titleHelp: _vm.titleHelp,
titlePrefix: _vm.titlePrefix,
titleSuffix: _vm.titleSuffix,
aggFunc: _vm.aggFunc,
copyMethod: _vm.copyMethod,
cutMethod: _vm.cutMethod,
pasteMethod: _vm.pasteMethod,
// 自定义参数
params: _vm.params,
// 渲染属性
id: colId,
parentId: null,
visible,
// 内部属性(一旦被使用,将导致不可升级版本)
defaultParentId: null,
halfVisible: false,
defaultVisible: visible,
defaultFixed: _vm.fixed,
defaultAggGroup: _vm.aggGroup,
defaultAggFunc: _vm.aggFunc,
checked: false,
halfChecked: false,
disabled: false,
// 分组层级
level: 1,
// 跨行
rowSpan: 1,
// 跨列
colSpan: 1,
// 数据排序
order: null,
sortTime: 0,
// 列排序
sortNumber: 0,
renderSortNumber: 0,
renderAggFn: "",
renderFixed: "",
renderVisible: false,
renderWidth: 0,
renderHeight: 0,
renderResizeWidth: 0,
renderAutoWidth: 0,
resizeWidth: 0,
renderLeft: 0,
renderArgs: [],
model: {},
renderHeader: renderHeader || _vm.renderHeader,
renderCell: renderCell || _vm.renderCell,
renderFooter: renderFooter || _vm.renderFooter,
renderData,
// 单元格插槽,只对 grid 有效
slots: _vm.slots
});
if (ctFilterOptions && (!filters || !filters.length)) {
this.filters = toFilters(ctFilterOptions({ $table: $xeTable, column: this }), colId);
}
if ($xeGGWrapper) {
const { computeProxyOpts } = $xeGGWrapper.getComputeMaps();
const proxyOpts = computeProxyOpts.value;
if (proxyOpts.beforeColumn) {
proxyOpts.beforeColumn({ $table: $xeTable, $grid: $xeGrid, $gantt: $xeGantt, column: this });
}
}
}
getTitle() {
return getFuncText(this.title || (this.type === "seq" ? getI18n("vxe.table.seqTitle") : ""));
}
getKey() {
const { type } = this;
return this.field || (type ? `type=${type}` : null);
}
update(name, value) {
if (name !== "filters") {
if (name === "field") {
this.property = value;
}
this[name] = value;
}
}
};
// ../node_modules/.pnpm/vxe-table@4.17.14_vue@3.5.24_typescript@5.9.3_/node_modules/vxe-table/es/table/src/util.js
function createInternalData() {
return {
tZindex: 0,
currKeyField: "",
isCurrDeepKey: false,
elemStore: {},
// 存放横向 X 虚拟滚动相关的信息
scrollXStore: {
preloadSize: 0,
offsetSize: 0,
visibleSize: 0,
visibleStartIndex: 0,
visibleEndIndex: 0,
startIndex: 0,
endIndex: 0
},
// 存放纵向 Y 虚拟滚动相关信息
scrollYStore: {
preloadSize: 0,
offsetSize: 0,
visibleSize: 0,
visibleStartIndex: 0,
visibleEndIndex: 0,
startIndex: 0,
endIndex: 0
},
// 表格宽度
tableWidth: 0,
// 表格高度
tableHeight: 0,
customHeight: 0,
customMinHeight: 0,
customMaxHeight: 0,
// 当前 hover 行
hoverRow: null,
// 最后滚动位置
lastScrollLeft: 0,
lastScrollTop: 0,
// 单选框属性,已选中保留的行
radioReserveRow: null,
// 复选框属性,已选中保留的行集合
checkboxReserveRowMap: {},
// 行数据,已展开保留的行集合
rowExpandedReserveRowMap: {},
// 树结构数据,已展开保留的行集合
treeExpandedReserveRowMap: {},
// 树结构数据,不确定状态的集合
treeIndeterminateRowMaps: {},
// 列表完整数据、条件处理后
tableFullData: [],
afterFullData: [],
afterTreeFullData: [],
afterGroupFullData: [],
// 列表条件处理后数据集合
afterFullRowMaps: {},
// 树结构完整数据、条件处理后
tableFullTreeData: [],
// 行分组全量数据、条件处理后
tableFullGroupData: [],
tableSynchData: [],
tableSourceData: [],
// 收集的列配置(带分组)
collectColumn: [],
// 完整所有列(不带分组)
tableFullColumn: [],
// 渲染所有列
visibleColumn: [],
// 全量数据集(包括当前和已删除)
fullAllDataRowIdData: {},
// 数据集(仅当前)
fullDataRowIdData: {},
// 数据集(仅可视)
visibleDataRowIdData: {},
footerFullDataRowData: {},
// 渲染中缓存数据
sourceDataRowIdData: {},
fullColumnIdData: {},
fullColumnFieldData: {},
// 合并表头单元格的数据
mergeHeaderList: [],
mergeHeaderMaps: {},
// 已合并单元格数据集合
mergeHeaderCellMaps: {},
// 合并单元格的数据
mergeBodyList: [],
mergeBodyMaps: {},
// 已合并单元格数据集合
mergeBodyCellMaps: {},
// 合并表尾的数据
mergeFooterList: [],
mergeFooterMaps: {},
// 已合并表尾数据集合
mergeFooterCellMaps: {},
// 已展开的行集合
rowExpandedMaps: {},
// 懒加载中的展开行的集合
rowExpandLazyLoadedMaps: {},
// 已展开的分组行
rowGroupExpandedMaps: {},
// 已展开树节点集合
treeExpandedMaps: {},
// 懒加载中的树节点的集合
treeExpandLazyLoadedMaps: {},
// 复选框属性,已选中的行集合
selectCheckboxMaps: {},
// 已标记的对象集
pendingRowMaps: {},
// 已新增的临时行
insertRowMaps: {},
// 已删除行
removeRowMaps: {},
cvCacheMaps: {},
// 表头高度
tHeaderHeight: 0,
// 表体高度
tBodyHeight: 0,
// 表尾高度
tFooterHeight: 0,
teleportToWrapperElem: null,
popupToWrapperElem: null,
inited: false,
tooltipTimeout: null,
initStatus: false,
isActivated: false
};
}
var getAllConvertColumns = (columns, parentColumn) => {
const result = [];
columns.forEach((column) => {
column.parentId = parentColumn ? parentColumn.id : null;
if (column.visible) {
if (column.children && column.children.length && column.children.some((column2) => column2.visible)) {
result.push(column);
result.push(...getAllConvertColumns(column.children, column));
} else {
result.push(column);
}
}
});
return result;
};
var convertHeaderColumnToRows = (originColumns) => {
let maxLevel = 1;
const traverse = (column, parent) => {
if (parent) {
column.level = parent.level + 1;
if (maxLevel < column.level) {
maxLevel = column.level;
}
}
if (column.children && column.children.length && column.children.some((column2) => column2.visible)) {
let colSpan = 0;
column.children.forEach((subColumn) => {
if (subColumn.visible) {
traverse(subColumn, column);
colSpan += subColumn.colSpan;
}
});
column.colSpan = colSpan;
} else {
column.colSpan = 1;
}
};
originColumns.forEach((column) => {
column.level = 1;
traverse(column);
});
const rows = [];
for (let i = 0; i < maxLevel; i++) {
rows.push([]);
}
const allColumns = getAllConvertColumns(originColumns);
allColumns.forEach((column) => {
if (column.children && column.children.length && column.children.some((column2) => column2.visible)) {
column.rowSpan = 1;
} else {
column.rowSpan = maxLevel - column.level + 1;
}
rows[column.level - 1].push(column);
});
return rows;
};
function convertHeaderToGridRows(spanColumns) {
const rSize = spanColumns.length;
const cSize = spanColumns[0].reduce((sum, cell) => sum + cell.colSpan, 0);
const occupiedRows = [];
const fullRows = [];
for (let rIndex = 0; rIndex < rSize; rIndex++) {
const oCols = [];
const dCols = [];
for (let cIndex = 0; cIndex < cSize; cIndex++) {
oCols.push(false);
dCols.push("");
}
occupiedRows.push(oCols);
fullRows.push(dCols);
}
for (let rIndex = 0; rIndex < rSize; rIndex++) {
let currColIndex = 0;
for (const column of spanColumns[rIndex]) {
const { colSpan, rowSpan } = column;
let startColIndex = -1;
for (let ccIndex = currColIndex; ccIndex <= cSize - colSpan; ccIndex++) {
let oFlag = true;
for (let csIndex = 0; csIndex < colSpan; csIndex++) {
if (occupiedRows[rIndex][ccIndex + csIndex]) {
oFlag = false;
break;
}
}
if (oFlag) {
startColIndex = ccIndex;
break;
}
}
if (startColIndex === -1) {
for (let j = 0; j <= cSize - colSpan; j++) {
let oFlag = true;
for (let k = 0; k < colSpan; k++) {
if (occupiedRows[rIndex][j + k]) {
oFlag = false;
break;
}
}
if (oFlag) {
startColIndex = j;
break;
}
}
if (startColIndex === -1) {
break;
}
}
for (let srIndex = rIndex; srIndex < rIndex + rowSpan; srIndex++) {
for (let scIndex = startColIndex; scIndex < startColIndex + colSpan; scIndex++) {
occupiedRows[srIndex][scIndex] = true;
fullRows[srIndex][scIndex] = column;
}
}
currColIndex = startColIndex + colSpan;
}
}
return fullRows;
}
function restoreScrollLocation($xeTable, scrollLeft, scrollTop) {
const internalData = $xeTable.internalData;
if (scrollLeft || scrollTop) {
internalData.intoRunScroll = false;
internalData.inVirtualScroll = false;
internalData.inWheelScroll = false;
internalData.inHeaderScroll = false;
internalData.inBodyScroll = false;
internalData.inFooterScroll = false;
internalData.scrollRenderType = "";
return $xeTable.scrollTo(scrollLeft, scrollTop);
}
return $xeTable.clearScroll();
}
function getRowUniqueId() {
return import_xe_utils3.default.uniqueId("row_");
}
function hasDeepKey(rowKey) {
return rowKey.indexOf(".") > -1;
}
function getRowkey($xeTable) {
const { currKeyField } = $xeTable.internalData;
return currKeyField;
}
function getRowid($xeTable, row) {
const internalData = $xeTable.internalData;
const { isCurrDeepKey, currKeyField } = internalData;
return row ? encodeRowid((isCurrDeepKey ? getDeepRowIdByKey : getFastRowIdByKey)(row, currKeyField)) : "";
}
function createHandleUpdateRowId($xeTable) {
const internalData = $xeTable.internalData;
const { isCurrDeepKey, currKeyField } = internalData;
const updateRId = isCurrDeepKey ? updateDeepRowKey : updateFastRowKey;
return {
rowKey: currKeyField,
handleUpdateRowId(row) {
return row ? updateRId(row, currKeyField) : "";
}
};
}
function createHandleGetRowId($xeTable) {
const internalData = $xeTable.internalData;
const { isCurrDeepKey, currKeyField } = internalData;
const getRId = isCurrDeepKey ? getDeepRowIdByKey : getFastRowIdByKey;
return {
rowKey: currKeyField,
handleGetRowId(row) {
return row ? encodeRowid(getRId(row, currKeyField)) : "";
}
};
}
function encodeRowid(rowVal) {
return import_xe_utils3.default.eqNull(rowVal) ? "" : encodeURIComponent(rowVal);
}
function getDeepRowIdByKey(row, rowKey) {
return import_xe_utils3.default.get(row, rowKey);
}
function updateDeepRowKey(row, rowKey) {
let rowid = encodeRowid(getDeepRowIdByKey(row, rowKey));
if (eqEmptyValue(rowid)) {
rowid = getRowUniqueId();
import_xe_utils3.default.set(row, rowKey, rowid);
}
return rowid;
}
function getFastRowIdByKey(row, rowKey) {
return row[rowKey];
}
function updateFastRowKey(row, rowKey) {
let rowid = encodeRowid(getFastRowIdByKey(row, rowKey));
if (eqEmptyValue(rowid)) {
rowid = getRowUniqueId();
row[rowKey] = rowid;
}
return rowid;
}
function handleFieldOrColumn($xeTable, fieldOrColumn) {
if (fieldOrColumn) {
return import_xe_utils3.default.isString(fieldOrColumn) || import_xe_utils3.default.isNumber(fieldOrColumn) ? $xeTable.getColumnByField(`${fieldOrColumn}`) : fieldOrColumn;
}
return null;
}
function handleRowidOrRow($xeTable, rowidOrRow) {
if (rowidOrRow) {
const rowid = import_xe_utils3.default.isString(rowidOrRow) || import_xe_utils3.default.isNumber(rowidOrRow) ? rowidOrRow : getRowid($xeTable, rowidOrRow);
return $xeTable.getRowById(rowid);
}
return null;
}
function getCellRestHeight(rowRest, cellOpts, rowOpts, defaultRowHeight) {
return rowRest.resizeHeight || cellOpts.height || rowOpts.height || rowRest.height || defaultRowHeight;
}
function getPaddingLeftRightSize(elem) {
if (elem) {
const computedStyle = getComputedStyle(elem);
const paddingLeft = import_xe_utils3.default.toNumber(computedStyle.paddingLeft);
const paddingRight = import_xe_utils3.default.toNumber(computedStyle.paddingRight);
return paddingLeft + paddingRight;
}
return 0;
}
function getElementMarginAndWidth(elem) {
if (elem) {
const computedStyle = getComputedStyle(elem);
const marginLeft = import_xe_utils3.default.toNumber(computedStyle.marginLeft);
const marginRight = import_xe_utils3.default.toNumber(computedStyle.marginRight);
return elem.offsetWidth + marginLeft + marginRight;
}
return 0;
}
function toFilters(filters, colid) {
if (filters) {
if (import_xe_utils3.default.isArray(filters)) {
return filters.map(({ label, value, data, resetValue, checked }) => {
return { label, value, data, resetValue, checked: !!checked, _checked: !!checked, _colId: colid };
});
}
return [];
}
return filters;
}
function toTreePathSeq(path) {
return path.map((num, i) => i % 2 === 0 ? Number(num) + 1 : ".").join("");
}
function getCellValue(row, column) {
return import_xe_utils3.default.get(row, column.field);
}
function setCellValue(row, column, value) {
return import_xe_utils3.default.set(row, column.field, value);
}
function getRefElem(refEl) {
if (refEl) {
const rest = refEl.value;
if (rest) {
return rest.$el || rest;
}
}
return null;
}
function getCalcHeight(height) {
if (height === "unset") {
return 0;
}
return height || 0;
}
function getColReMinWidth(params) {
const { $table, column, cell } = params;
const tableProps = $table.props;
const internalData = $table.internalData;
const { computeResizableOpts } = $table.getComputeMaps();
const resizableOpts = computeResizableOpts.value;
const { minWidth: reMinWidth } = resizableOpts;
if (reMinWidth) {
const customMinWidth = import_xe_utils3.default.isFunction(reMinWidth) ? reMinWidth(params) : reMinWidth;
if (customMinWidth !== "auto") {
return Math.max(1, import_xe_utils3.default.toNumber(customMinWidth));
}
}
const { elemStore } = internalData;
const { showHeaderOverflow: allColumnHeaderOverflow } = tableProps;
const { showHeaderOverflow, minWidth: colMinWidth } = column;
const headOverflow = import_xe_utils3.default.isUndefined(showHeaderOverflow) || import_xe_utils3.default.isNull(showHeaderOverflow) ? allColumnHeaderOverflow : showHeaderOverflow;
const showEllipsis = headOverflow === "ellipsis";
const showTitle = headOverflow === "title";
const showTooltip = headOverflow === true || headOverflow === "tooltip";
const hasEllipsis = showTitle || showTooltip || showEllipsis;
const minTitleWidth = import_xe_utils3.default.floor((import_xe_utils3.default.toNumber(getComputedStyle(cell).fontSize) || 14) * 1.8);
const paddingLeftRight = getPaddingLeftRightSize(cell) + getPaddingLeftRightSize(queryElement(cell, ".vxe-cell"));
let mWidth = minTitleWidth + paddingLeftRight;
if (hasEllipsis) {
const dragIconWidth = getElementMarginAndWidth(queryElement(cell, ".vxe-cell--drag-handle"));
const checkboxIconWidth = getElementMarginAndWidth(queryElement(cell, ".vxe-cell--checkbox"));
const requiredIconWidth = getElementMarginAndWidth(queryElement(cell, ".vxe-cell--required-icon"));
const editIconWidth = getElementMarginAndWidth(queryElement(cell, ".vxe-cell--edit-icon"));
const prefixIconWidth = getElementMarginAndWidth(queryElement(cell, ".vxe-cell-title-prefix-icon"));
const suffixIconWidth = getElementMarginAndWidth(queryElement(cell, ".vxe-cell-title-suffix-icon"));
const sortIconWidth = getElementMarginAndWidth(queryElement(cell, ".vxe-cell--sort"));
const filterIconWidth = getElementMarginAndWidth(queryElement(cell, ".vxe-cell--filter"));
mWidth += dragIconWidth + checkboxIconWidth + requiredIconWidth + editIconWidth + prefixIconWidth + suffixIconWidth + filterIconWidth + sortIconWidth;
}
if (colMinWidth) {
const bodyScrollElem = getRefElem(elemStore["main-body-scroll"]);
if (bodyScrollElem) {
if (isScale(colMinWidth)) {
const bodyWidth = bodyScrollElem.clientWidth - 1;
const meanWidth = bodyWidth / 100;
return Math.max(mWidth, Math.floor(import_xe_utils3.default.toInteger(colMinWidth) * meanWidth));
} else if (isPx(colMinWidth)) {
return Math.max(mWidth, import_xe_utils3.default.toInteger(colMinWidth));
}
}
}
return mWidth;
}
function isColumnInfo(column) {
return column && (column.constructor === ColumnInfo || column instanceof ColumnInfo);
}
function getColumnList(columns) {
const result = [];
columns.forEach((column) => {
result.push(...column.children && column.children.length ? getColumnList(column.children) : [column]);
});
return result;
}
function createColumn($xeTable, options, renderOptions) {
return isColumnInfo(options) ? options : reactive(new ColumnInfo($xeTable, options, renderOptions));
}
function watchColumn($xeTable, props, column) {
Object.keys(props).forEach((name) => {
watch(() => props[name], (value) => {
column.update(name, value);
if ($xeTable) {
if (name === "filters") {
$xeTable.setFilter(column, value);
$xeTable.handleUpdateDataQueue();
} else if (["visible", "fixed", "width", "minWidth", "maxWidth"].includes(name)) {
$xeTable.handleRefreshColumnQueue();
}
}
});
});
}
function assembleColumn($xeTable, elem, column, colgroup) {
const { reactData } = $xeTable;
const { staticColumns } = reactData;
const parentElem = elem.parentNode;
const parentColumn = colgroup ? colgroup.columnConfig : null;
const parentCols = parentColumn ? parentColumn.children : staticColumns;
if (parentElem && parentCols) {
column.defaultParentId = parentColumn ? parentColumn.id : null;
parentCols.splice(import_xe_utils3.default.arrayIndexOf(parentElem.children, elem), 0, column);
reactData.staticColumns = staticColumns.slice(0);
}
}
function destroyColumn($xeTable, column) {
const { reactData } = $xeTable;
const { staticColumns } = reactData;
const matchObj = import_xe_utils3.default.findTree(staticColumns, (item) => item.id === column.id, { children: "children" });
if (matchObj) {
matchObj.items.splice(matchObj.index, 1);
}
reactData.staticColumns = staticColumns.slice(0);
}
function getRootColumn($xeTable, column) {
const { internalData } = $xeTable;
const { fullColumnIdData } = internalData;
if (!column) {
return null;
}
let parentColId = column.parentId;
while (fullColumnIdData[parentColId]) {
const column2 = fullColumnIdData[parentColId].column;
parentColId = column2.parentId;
if (!parentColId) {
return column2;
}
}
return column;
}
function getFirstChildColumn(column) {
const { children } = column;
if (children && children.length) {
return getFirstChildColumn(import_xe_utils3.default.first(children));
}
return column;
}
function getLastChildColumn(column) {
const { children } = column;
if (children && children.length) {
return getFirstChildColumn(import_xe_utils3.default.last(children));
}
return column;
}
function clearTableDefaultStatus($xeTable) {
const { props, internalData } = $xeTable;
internalData.initStatus = false;
const actionList = [
$xeTable.clearSort(),
$xeTable.clearCurrentRow(),
$xeTable.clearCurrentColumn(),
$xeTable.clearRadioRow(),
$xeTable.clearRadioReserve(),
$xeTable.clearCheckboxRow(),
$xeTable.clearCheckboxReserve(),
$xeTable.clearRowExpand(),
$xeTable.clearTreeExpand(),
$xeTable.clearTreeExpandReserve(),
$xeTable.clearPendingRow()
];
if ($xeTable.clearFilter) {
actionList.push($xeTable.clearFilter());
}
if ($xeTable.clearSelected && (props.keyboardConfig || props.mouseConfig)) {
actionList.push($xeTable.clearSelected());
}
if ($xeTable.clearCellAreas && props.mouseConfig) {
actionList.push($xeTable.clearCellAreas(), $xeTable.clearCopyCellArea());
}
return Promise.all(actionList).then(() => {
return $xeTable.clearScroll();
});
}
function clearTableAllStatus($xeTable) {
if ($xeTable.clearFilter) {
$xeTable.clearFilter();
}
return clearTableDefaultStatus($xeTable);
}
function rowToVisible($xeTable, row) {
const tableProps = $xeTable.props;
const reactData = $xeTable.reactData;
const internalData = $xeTable.internalData;
const { computeLeftFixedWidth, computeRightFixedWidth, computeRowOpts, computeCellOpts, computeDefaultRowHeight } = $xeTable.getComputeMaps();
const { showOverflow } = tableProps;
const { scrollYLoad, scrollYTop } = reactData;
const { elemStore, afterFullData, fullAllDataRowIdData, isResizeCellHeight } = internalData;
const rowOpts = computeRowOpts.value;
const cellOpts = computeCellOpts.value;
const defaultRowHeight = computeDefaultRowHeight.value;
const leftFixedWidth = computeLeftFixedWidth.value;
const rightFixedWidth = computeRightFixedWidth.value;
const bodyScrollElem = getRefElem(elemStore["main-body-scroll"]);
const rowid = getRowid($xeTable, row);
if (bodyScrollElem) {
const bodyHeight = bodyScrollElem.clientHeight;
const bodyScrollTop = bodyScrollElem.scrollTop;
const trElem = bodyScrollElem.querySelector(`[rowid="${rowid}"]`);
if (trElem) {
const trOffsetTop = trElem.offsetTop + (scrollYLoad ? scrollYTop : 0);
const trHeight = trElem.clientHeight;
if (trOffsetTop < bodyScrollTop || trOffsetTop > bodyScrollTop + bodyHeight) {
return $xeTable.scrollTo(null, trOffsetTop);
} else if (trOffsetTop + trHeight >= bodyHeight + bodyScrollTop) {
return $xeTable.scrollTo(null, bodyScrollTop + trHeight);
}
} else {
if (scrollYLoad) {
const isCustomCellHeight = isResizeCellHeight || cellOpts.height || rowOpts.height;
if (!isCustomCellHeight && showOverflow) {
return $xeTable.scrollTo(null, ($xeTable.findRowIndexOf(afterFullData, row) - 1) * defaultRowHeight);
}
const rowRest = fullAllDataRowIdData[rowid] || {};
const rHeight = rowRest.resizeHeight || cellOpts.height || rowOpts.height || rowRest.height || defaultRowHeight;
const scrollTop = rowRest.oTop;
if (scrollTop < bodyScrollTop) {
return $xeTable.scrollTo(null, scrollTop - leftFixedWidth - 1);
}
return $xeTable.scrollTo(null, scrollTop + rHeight - (bodyHeight - rightFixedWidth - 1));
}
}
}
return Promise.resolve();
}
function colToVisible($xeTable, column, row) {
const reactData = $xeTable.reactData;
const internalData = $xeTable.internalData;
const { computeLeftFixedWidth, computeRightFixedWidth } = $xeTable.getComputeMaps();
const { scrollXLoad, scrollXLeft } = reactData;
const { elemStore, visibleColumn } = internalData;
const leftFixedWidth = computeLeftFixedWidth.value;
const rightFixedWidth = computeRightFixedWidth.value;
const bodyScrollElem = getRefElem(elemStore["main-body-scroll"]);
if (column.fixed) {
return Promise.resolve();
}
if (bodyScrollElem) {
const bodyWidth = bodyScrollElem.clientWidth;
const bodyScrollLeft = bodyScrollElem.scrollLeft;
let tdElem = null;
if (row) {
const rowid = getRowid($xeTable, row);
tdElem = bodyScrollElem.querySelector(`[rowid="${rowid}"] .${column.id}`);
}
if (!tdElem) {
tdElem = bodyScrollElem.querySelector(`.${column.id}`);
}
if (tdElem) {
const tdOffsetLeft = tdElem.offsetLeft + (scrollXLoad ? scrollXLeft : 0);
const cellWidth = tdElem.clientWidth;
if (tdOffsetLeft < bodyScrollLeft + leftFixedWidth) {
return $xeTable.scrollTo(tdOffsetLeft - leftFixedWidth - 1);
} else if (tdOffsetLeft + cellWidth - bodyScrollLeft > bodyWidth - rightFixedWidth) {
return $xeTable.scrollTo(tdOffsetLeft + cellWidth - (bodyWidth - rightFixedWidth - 1));
}
} else {
if (scrollXLoad) {
let scrollLeft = 0;
const cellWidth = column.renderWidth;
for (let i = 0; i < visibleColumn.length; i++) {
const currCol = visibleColumn[i];
if (currCol === column || currCol.id === column.id) {
break;
}
scrollLeft += currCol.renderWidth;
}
if (scrollLeft < bodyScrollLeft) {
return $xeTable.scrollTo(scrollLeft - leftFixedWidth - 1);
}
return $xeTable.scrollTo(scrollLeft + cellWidth - (bodyWidth - rightFixedWidth - 1));
}
}
}
return Promise.resolve();
}
// ../node_modules/.pnpm/vxe-table@4.17.14_vue@3.5.24_typescript@5.9.3_/node_modules/vxe-table/es/table/src/cell.js
var import_xe_utils4 = __toESM(require_xe_utils());
var { getI18n: getI18n2, getIcon, renderer: renderer2, renderEmptyElement } = VxeUI;
function renderTitlePrefixIcon(params) {
const { $table, column } = params;
const titlePrefix = column.titlePrefix || column.titleHelp;
if (titlePrefix) {
return h("span", {
class: ["vxe-cell-title-prefix-icon", titlePrefix.iconStatus ? `theme--${titlePrefix.iconStatus}` : ""],
onMouseenter(evnt) {
$table.triggerHeaderTitleEvent(evnt, titlePrefix, params);
},
onMouseleave(evnt) {
$table.handleTargetLeaveEvent(evnt);
}
}, [
h("i", {
class: titlePrefix.icon || getIcon().TABLE_TITLE_PREFIX
})
]);
}
return renderEmptyElement($table);
}
function renderTitleSuffixIcon(params) {
const { $table, column } = params;
const titleSuffix = column.titleSuffix;
if (titleSuffix) {
return h("span", {
class: ["vxe-cell-title-suffix-icon", titleSuffix.iconStatus ? `theme--${titleSuffix.iconStatus}` : ""],
onMouseenter(evnt) {
$table.triggerHeaderTitleEvent(evnt, titleSuffix, params);
},
onMouseleave(evnt) {
$table.handleTargetLeaveEvent(evnt);
}
}, [
h("i", {
class: titleSuffix.icon || getIcon().TABLE_TITLE_SUFFIX
})
]);
}
return renderEmptyElement($table);
}
function renderCellDragIcon(params) {
const { $table, column } = params;
const { context } = $table;
const tableSlots = context.slots;
const tableProps = $table.props;
const { slots } = column;
const { dragConfig } = tableProps;
const { computeRowDragOpts } = $table.getComputeMaps();
const rowDragOpts = computeRowDragOpts.value;
const { icon, trigger, disabledMethod } = rowDragOpts;
const rDisabledMethod = disabledMethod || (dragConfig ? dragConfig.rowDisabledMethod : null);
const isDisabled = rDisabledMethod && rDisabledMethod(params);
const rowDragIconSlot = (slots ? slots.rowDragIcon || slots["row-drag-icon"] : null) || tableSlots.rowDragIcon || tableSlots["row-drag-icon"];
const ons = {};
if (trigger !== "cell") {
ons.onMousedown = (evnt) => {
if (!isDisabled) {
$table.handleCellDragMousedownEvent(evnt, params);
}
};
ons.onMouseup = $table.handleCellDragMouseupEvent;
}
return h("span", Object.assign({ key: "dg", class: ["vxe-cell--drag-handle", {
"is--disabled": isDisabled
}] }, ons), rowDragIconSlot ? $table.callSlot(rowDragIconSlot, params) : [
h("i", {
class: icon || (dragConfig ? dragConfig.rowIcon : "") || getIcon().TABLE_DRAG_ROW
})
]);
}
function renderCellBaseVNs(params, content) {
const { $table, column, level } = params;
const { dragSort } = column;
const tableProps = $table.props;
const { treeConfig, dragConfig } = tableProps;
const { computeRowOpts, computeRowDragOpts, computeTreeOpts } = $table.getComputeMaps();
const rowOpts = computeRowOpts.value;
const rowDragOpts = computeRowDragOpts.value;
const treeOpts = computeTreeOpts.value;
const { showIcon, isPeerDrag, isCrossDrag, visibleMethod } = rowDragOpts;
const rVisibleMethod = visibleMethod || (dragConfig ? dragConfig.rowVisibleMethod : null);
const vns = [];
if (dragSort && rowOpts.drag && ((showIcon || (dragConfig ? dragConfig.showRowIcon : false)) && (!rVisibleMethod || rVisibleMethod(params)))) {
if (treeConfig) {
if (treeOpts.transform && (isPeerDrag || isCrossDrag || !level)) {
vns.push(renderCellDragIcon(params));
}
} else {
vns.push(renderCellDragIcon(params));
}
}
return vns.concat(import_xe_utils4.default.isArray(content) ? content : [content]);
}
function renderHeaderCellDragIcon(params) {
const { $table, column } = params;
const { context } = $table;
const tableSlots = context.slots;
const { slots } = column;
const { computeColumnOpts, computeColumnDragOpts } = $table.getComputeMaps();
const columnOpts = computeColumnOpts.value;
const columnDragOpts = computeColumnDragOpts.value;
const { showIcon, icon, trigger, isPeerDrag, isCrossDrag, visibleMethod, disabledMethod } = columnDragOpts;
if (columnOpts.drag && showIcon && (!visibleMethod || visibleMethod(params))) {
if (!column.fixed && (isPeerDrag || isCrossDrag || !column.parentId)) {
const isDisabled = disabledMethod && disabledMethod(params);
const columnDragIconSlot = (slots ? slots.columnDragIcon || slots["column-drag-icon"] : null) || tableSlots.columnDragIcon || tableSlots["column-drag-icon"];
const ons = {};
if (trigger !== "cell") {
ons.onMousedown = (evnt) => {
if (!isDisabled) {
$table.handleHeaderCellDragMousedownEvent(evnt, params);
}
};
ons.onMouseup = $table.handleHeaderCellDragMouseupEvent;
}
return h("span", Object.assign({ key: "dg", class: ["vxe-cell--drag-handle", {
"is--disabled": isDisabled
}] }, ons), columnDragIconSlot ? $table.callSlot(columnDragIconSlot, params) : [
h("i", {
class: icon || getIcon().TABLE_DRAG_COLUMN
})
]);
}
}
return renderEmptyElement($table);
}
function renderHeaderCellBaseVNs(params, content) {
const vns = [
renderTitlePrefixIcon(params),
renderHeaderCellDragIcon(params),
...import_xe_utils4.default.isArray(content) ? content : [content],
renderTitleSuffixIcon(params)
];
return vns;
}
function getRenderDefaultColumnTitle(column, content) {
if (column.type === "html" && import_xe_utils4.default.isString(content)) {
return h("span", {
key: "ch",
innerHTML: content
});
}
return h("span", {
key: "ct"
}, getSlotVNs(content));
}
function renderTitleContent(params, content) {
const { $table, column } = params;
const tableProps = $table.props;
const tableReactData = $table.reactData;
const { computeHeaderTooltipOpts } = $table.getComputeMaps();
const { showHeaderOverflow: allColumnHeaderOverflow } = tableProps;
const { isRowGroupStatus } = tableReactData;
const { showHeaderOverflow, slots } = column;
const titleSlot = slots ? slots.title : null;
const headerTooltipOpts = computeHeaderTooltipOpts.value;
const showAllTip = headerTooltipOpts.showAll;
const headOverflow = import_xe_utils4.default.eqNull(showHeaderOverflow) ? allColumnHeaderOverflow : showHeaderOverflow;
const showTitle = headOverflow === "title";
const showTooltip = headOverflow === true || headOverflow === "tooltip";
const ons = {};
if (showTitle || showTooltip || showAllTip) {
ons.onMouseenter = (evnt) => {
if (tableReactData.isDragResize) {
return;
}
if (showTitle) {
updateCellTitle(evnt.currentTarget, column);
} else if (showTooltip || showAllTip) {
$table.triggerHeaderTooltipEvent(evnt, params);
}
};
}
if (showTooltip || showAllTip) {
ons.onMouseleave = (evnt) => {
if (tableReactData.isDragResize) {
return;
}
if (showTooltip || showAllTip) {
$table.handleTargetLeaveEvent(evnt);
}
};
}
const titleVN = getRenderDefaultColumnTitle(column, content);
return [
h("span", Object.assign({ class: "vxe-cell--title" }, ons), isRowGroupStatus && column.aggFunc && $table.getPivotTableAggregateRenderColTitles ? $table.getPivotTableAggregateRenderColTitles(column, titleVN) : titleSlot ? $table.callSlot(titleSlot, params) : [
titleVN
])
];
}
function getFooterContent(params) {
const { $table, column, row } = params;
const { slots, editRender, cellRender } = column;
const renderOpts = editRender || cellRender;
const footerSlot = slots ? slots.footer : null;
if (footerSlot) {
return $table.callSlot(footerSlot, params);
}
const itemValue = $table.getFooterCellLabel(row, column);
if (renderOpts) {
const compConf = renderer2.get(renderOpts.name);
if (compConf) {
const rtFooter = compConf.renderTableFooter || compConf.renderFooter;
if (rtFooter) {
const footParams = Object.assign(params, {
cellValue: itemValue,
itemValue
});
return getSlotVNs(rtFooter(renderOpts, footParams));
}
}
}
return [
h("span", {
class: "vxe-cell--label"
}, formatText(itemValue, 1))
];
}
function getDefaultCellLabel(params) {
const { $table, row, column } = params;
return formatText($table.getCellLabel(row, column), 1);
}
function renderCellHandle(params) {
const { column, row, $table } = params;
const tableProps = $table.props;
const tableReactData = $table.reactData;
const { isRowGroupStatus } = tableReactData;
const { editConfig } = tableProps;
const { type, treeNode, rowGroupNode, editRender } = column;
const { computeEditOpts, computeCheckboxOpts, computeAggregateOpts } = $table.getComputeMaps();
const aggregateOpts = computeAggregateOpts.value;
const { mode } = aggregateOpts;
const checkboxOpts = computeCheckboxOpts.value;
const editOpts = computeEditOpts.value;
const isDeepCell = treeNode || isRowGroupStatus && (mode === "column" ? column.field === row.groupField : rowGroupNode);
switch (type) {
case "seq":
return isDeepCell ? Cell.renderDeepIndexCell(params) : Cell.renderSeqCell(params);
case "radio":
return isDeepCell ? Cell.renderDeepRadioCell(params) : Cell.renderRadioCell(params);
case "checkbox":
return checkboxOpts.checkField ? isDeepCell ? Cell.renderDeepSelectionCellByProp(params) : Cell.renderCheckboxCellByProp(params) : isDeepCell ? Cell.renderDeepSelectionCell(params) : Cell.renderCheckboxCell(params);
case "expand":
return Cell.renderExpandCell(params);
case "html":
return isDeepCell ? Cell.renderDeepHTMLCell(params) : Cell.renderHTMLCell(params);
}
if (editConfig && isEnableConf(editOpts) && editRender) {
return editOpts.mode === "cell" ? isDeepCell ? Cell.renderDeepCellEdit(params) : Cell.renderCellEdit(params) : isDeepCell ? Cell.renderDeepRowEdit(params) : Cell.renderRowEdit(params);
}
return isDeepCell ? Cell.renderDeepCell(params) : Cell.renderDefaultCell(params);
}
function renderHeaderHandle(params) {
const { column, $table } = params;
const tableProps = $table.props;
const { computeEditOpts } = $table.getComputeMaps();
const { editConfig } = tableProps;
const editOpts = computeEditOpts.value;
const { type, filters, sortable, editRender } = column;
switch (type) {
case "seq":
return Cell.renderSeqHeader(params);
case "radio":
return Cell.renderRadioHeader(params);
case "checkbox":
return Cell.renderCheckboxHeader(params);
case "html":
if (filters && sortable) {
return Cell.renderSortAndFilterHeader(params);
} else if (sortable) {
return Cell.renderSortHeader(params);
} else if (filters) {
return Cell.renderFilterHeader(params);
}
break;
}
if (editConfig && isEnableConf(editOpts) && editRender) {
return Cell.renderEditHeader(params);
} else if (filters && sortable) {
return Cell.renderSortAndFilterHeader(params);
} else if (sortable) {
return Cell.renderSortHeader(params);
} else if (filters) {
return Cell.renderFilterHeader(params);
}
return Cell.renderDefaultHeader(params);
}
function renderFooterHandle(params) {
return Cell.renderDefaultFooter(params);
}
var Cell = {
createColumn($xeTable, columnOpts) {
const { type } = columnOpts;
const renConfs = {
renderHeader: renderHeaderHandle,
renderCell: renderCellHandle,
renderFooter: renderFooterHandle
};
if (type === "expand") {
renConfs.renderData = Cell.renderExpandData;
}
return createColumn($xeTable, columnOpts, renConfs);
},
/**
* 列头标题
*/
renderHeaderTitle(params) {
const { $table, column } = params;
const { slots, editRender, cellRender } = column;
const renderOpts = editRender || cellRender;
const headerSlot = slots ? slots.header : null;
if (headerSlot) {
return renderTitleContent(params, $table.callSlot(headerSlot, params));
}
if (renderOpts) {
const compConf = renderer2.get(renderOpts.name);
if (compConf) {
const rtHeader = compConf.renderTableHeader || compConf.renderHeader;
if (rtHeader) {
return renderTitleContent(params, getSlotVNs(rtHeader(renderOpts, params)));
}
}
}
return renderTitleContent(params, formatText(column.getTitle(), 1));
},
renderDefaultHeader(params) {
return renderHeaderCellBaseVNs(params, Cell.renderHeaderTitle(params));
},
renderDefaultCell(params) {
const { $table, row, column } = params;
const tableProps = $table.props;
const tableReactData = $table.reactData;
const tableInternalData = $table.internalData;
const { isRowGroupStatus } = tableReactData;
const { editConfig } = tableProps;
const { field, slots, editRender, cellRender, rowGroupNode, aggFunc, formatter } = column;
const renderOpts = editConfig && isEnableConf(editRender) ? editRender : isEnableConf(cellRender) ? cellRender : null;
const defaultSlot = slots ? slots.default : null;
const gcSlot = slots ? slots.groupContent || slots["group-content"] : null;
let cellValue = "";
if (isRowGroupStatus && field && row.isAggregate) {
const aggRow = row;
const { fullColumnFieldData } = tableInternalData;
const { computeAggregateOpts } = $table.getComputeMaps();
const aggregateOpts = computeAggregateOpts.value;
const { mode, showTotal, totalMethod, countFields, contentMethod, mapChildrenField } = aggregateOpts;
const aggCalcMethod = aggregateOpts.calcValuesMethod || aggregateOpts.countMethod || aggregateOpts.aggregateMethod;
const groupField = aggRow.groupField;
const groupContent = aggRow.groupContent;
const childList = mapChildrenField ? aggRow[mapChildrenField] || [] : [];
const childCount = aggRow.childCount;
const colRest = fullColumnFieldData[groupField] || {};
const ctParams = {
$table,
groupField,
groupColumn: colRest ? colRest.column : null,
column,
groupValue: groupContent,
childList,
childCount,
aggValue: null,
/**
* 已废弃
* @deprecated
*/
children: childList,
/**
* 已废弃
* @deprecated
*/
totalValue: childCount
};
if (gcSlot) {
return renderCellBaseVNs(params, $table.callSlot(gcSlot, Object.assign({ groupField, groupContent, childList, childCount }, params)));
}
if (mode === "column" ? field === aggRow.groupField : rowGroupNode) {
cellValue = groupContent;
if (contentMethod) {
cellValue = `${contentMethod(ctParams)}`;
}
if (showTotal) {
cellValue = getI18n2("vxe.table.rowGroupContentTotal", [cellValue, totalMethod ? totalMethod(ctParams) : childCount, childCount]);
}
} else if ($table.getPivotTableAggregateCellAggValue) {
cellValue = $table.getPivotTableAggregateCellAggValue(params);
} else if (aggFunc === true || countFields && countFields.includes(field)) {
if (aggCalcMethod) {
ctParams.aggValue = childCount;
cellValue = `${aggCalcMethod(ctParams)}`;
}
}
} else {
if (defaultSlot) {
return renderCellBaseVNs(params, $table.callSlot(defaultSlot, params));
}
if (renderOpts && !formatter) {
const compConf = renderer2.get(renderOpts.name);
if (compConf) {
const rtCell = compConf.renderTableCell || compConf.renderCell;
const rtDefault = compConf.renderTableDefault || compConf.renderDefault;
const renderFn = editRender ? rtCell : rtDefault;
if (renderFn) {
return renderCellBaseVNs(params, getSlotVNs(renderFn(renderOpts, Object.assign({ $type: editRender ? "edit" : "cell" }, params))));
}
}
}
cellValue = $table.getCellLabel(row, column);
}
const cellPlaceholder = editRender ? editRender.placeholder : "";
return renderCellBaseVNs(params, [
h("span", {
class: "vxe-cell--label"
}, [
// 如果设置占位符
editRender && eqEmptyValue(cellValue) ? h("span", {
class: "vxe-cell--placeholder"
}, formatText(getFuncText(cellPlaceholder), 1)) : h("span", formatText(cellValue, 1))
])
]);
},
renderDeepCell(params) {
return Cell.renderDeepNodeBtn(params, Cell.renderDefaultCell(params));
},
renderDefaultFooter(params) {
return getFooterContent(params);
},
/**
* 行分组
*/
renderRowGroupBtn(params, cellVNodes) {
const { $table } = params;
const tableReactData = $table.reactData;
const tableInternalData = $table.internalData;
const { row, level } = params;
const { computeAggregateOpts } = $table.getComputeMaps();
const { rowGroupExpandedFlag } = tableReactData;
const { rowGroupExpandedMaps } = tableInternalData;
const aggregateOpts = computeAggregateOpts.value;
const { mode, padding, indent } = aggregateOpts;
const rowid = getRowid($table, row);
const isExpand = !!rowGroupExpandedFlag && !!rowGroupExpandedMaps[rowid];
return h("div", {
class: ["vxe-row-group--tree-node", {
"is--expanded": isExpand
}],
style: mode !== "column" && padding && indent ? {
paddingLeft: `${level * indent}px`
} : void 0
}, [
row.isAggregate ? h("span", {
class: "vxe-row-group--node-btn",
onClick(evnt) {
$table.triggerRowGroupExpandEvent(evnt, params);
}
}, [
h("i", {
class: isExpand ? getIcon().TABLE_ROW_GROUP_OPEN : getIcon().TABLE_ROW_GROUP_CLOSE
})
]) : renderEmptyElement($table),
h("div", {
class: "vxe-row-group-cell"
}, cellVNodes)
]);
},
/**
* 树
*/
renderTreeNodeBtn(params, cellVNodes) {
const { $table, isHidden } = params;
const tableReactData = $table.reactData;
const tableInternalData = $table.internalData;
const { row, column, level } = params;
const { slots } = column;
const iconSlot = slots ? slots.icon : null;
if (iconSlot) {
return $table.callSlot(iconSlot, params);
}
const { computeTreeOpts } = $table.getComputeMaps();
const { treeExpandedFlag } = tableReactData;
const { fullAllDataRowIdData, treeExpandedMaps, treeExpandLazyLoadedMaps } = tableInternalData;
const treeOpts = computeTreeOpts.value;
const { padding, indent, lazy, trigger, iconLoaded, showIcon, iconOpen, iconClose } = treeOpts;
const childrenField = treeOpts.children || treeOpts.childrenField;
const hasChildField = treeOpts.hasChild || treeOpts.hasChildField;
const rowChilds = row[childrenField];
const hasChild = rowChilds && rowChilds.length;
let hasLazyChilds = false;
let isActive = false;
let isLazyLoading = false;
let isLazyLoaded = false;
const ons = {};
if (!isHidden) {
const rowid = getRowid($table, row);
isActive = !!treeExpandedFlag && !!treeExpandedMaps[rowid];
if (lazy) {
const rest = fullAllDataRowIdData[rowid];
isLazyLoading = !!treeExpandLazyLoadedMaps[rowid];
hasLazyChilds = row[hasChildField];
isLazyLoaded = !!rest.treeLoaded;
}
}
if (!trigger || trigger === "default") {
ons.onClick = (evnt) => {
$table.triggerTreeExpandEvent(evnt, params);
};
}
return h("div", {
class: ["vxe-cell--tree-node", {
"is--active": isActive
}],
style: padding && indent ? {
paddingLeft: `${level * indent}px`
} : void 0
}, [
showIcon && (lazy ? isLazyLoaded ? hasChild : hasChild || hasLazyChilds : hasChild) ? [
h("div", Object.assign({ class: "vxe-cell--tree-btn" }, ons), [
h("i", {
class: isLazyLoading ? iconLoaded || getIcon().TABLE_TREE_LOADED : isActive ? iconOpen || getIcon().TABLE_TREE_OPEN : iconClose || getIcon().TABLE_TREE_CLOSE
})
])
] : null,
h("div", {
class: "vxe-tree-cell"
}, cellVNodes)
]);
},
/**
* 层级节点。
* 行分组、树结构
*/
renderDeepNodeBtn(params, cellVNodes) {
const { $table, row, column } = params;
const { rowGroupNode } = column;
const tableReactData = $table.reactData;
const { rowGroupList } = tableReactData;
if (rowGroupList.length) {
const { computeAggregateOpts } = $table.getComputeMaps();
const aggregateOpts = computeAggregateOpts.value;
const { mode } = aggregateOpts;
if (mode === "column" ? column.field === row.groupField : rowGroupNode) {
return [Cell.renderRowGroupBtn(params, cellVNodes)];
}
}
return [Cell.renderTreeNodeBtn(params, cellVNodes)];
},
/**
* 序号
*/
renderSeqHeader(params) {
const { $table, column } = params;
const { slots } = column;
const headerSlot = slots ? slots.header : null;
return renderHeaderCellBaseVNs(params, renderTitleContent(params, headerSlot ? $table.callSlot(headerSlot, params) : formatText(column.getTitle(), 1)));
},
renderSeqCell(params) {
const { $table, column } = params;
const tableProps = $table.props;
const { treeConfig } = tableProps;
const { computeSeqOpts } = $table.getComputeMaps();
const seqOpts = computeSeqOpts.value;
const { slots } = column;
const defaultSlot = slots ? slots.default : null;
if (defaultSlot) {
return renderCellBaseVNs(params, $table.callSlot(defaultSlot, params));
}
const { seq } = params;
const seqMd = seqOpts.seqMethod;
return renderCellBaseVNs(params, [
h("span", `${formatText(seqMd ? seqMd(params) : treeConfig ? seq : (seqOpts.startIndex || 0) + seq, 1)}`)
]);
},
renderDeepIndexCell(params) {
return Cell.renderDeepNodeBtn(params, Cell.renderSeqCell(params));
},
/**
* 单选
*/
renderRadioHeader(params) {
const { $table, column } = params;
const { slots } = column;
const headerSlot = slots ? slots.header : null;
const titleSlot = slots ? slots.title : null;
return renderHeaderCellBaseVNs(params, renderTitleContent(params, headerSlot ? $table.callSlot(headerSlot, params) : [
h("span", {
class: "vxe-radio--label"
}, titleSlot ? $table.callSlot(titleSlot, params) : formatText(column.getTitle(), 1))
]));
},
renderRadioCell(params) {
const { $table, column, isHidden } = params;
const tableReactData = $table.reactData;
const { computeRadioOpts } = $table.getComputeMaps();
const { selectRadioRow } = tableReactData;
const radioOpts = computeRadioOpts.value;
const { slots } = column;
const { labelField, checkMethod, visibleMethod } = radioOpts;
const { row } = params;
const defaultSlot = slots ? slots.default : null;
const radioSlot = slots ? slots.radio : null;
const isChecked = $table.eqRow(row, selectRadioRow);
const isVisible = !visibleMethod || visibleMethod({ $table, row });
let isDisabled = !!checkMethod;
let ons;
if (!isHidden) {
ons = {
onClick(evnt) {
if (!isDisabled && isVisible) {
$table.triggerRadioRowEvent(evnt, params);
}
}
};
if (checkMethod) {
isDisabled = !checkMethod({ $table, row });
}
}
const radioParams = Object.assign(Object.assign({}, params), { checked: isChecked, disabled: isDisabled, visible: isVisible });
if (radioSlot) {
return renderCellBaseVNs(params, $table.callSlot(radioSlot, radioParams));
}
const radioVNs = [];
if (isVisible) {
radioVNs.push(h("span", {
class: ["vxe-radio--icon", isChecked ? getIcon().TABLE_RADIO_CHECKED : isDisabled ? getIcon().TABLE_RADIO_DISABLED_UNCHECKED : getIcon().TABLE_RADIO_UNCHECKED]
}));
}
if (defaultSlot || labelField) {
radioVNs.push(h("span", {
class: "vxe-radio--label"
}, defaultSlot ? $table.callSlot(defaultSlot, radioParams) : import_xe_utils4.default.get(row, labelField)));
}
return renderCellBaseVNs(params, [
h("span", Object.assign({ class: ["vxe-cell--radio", {
"is--checked": isChecked,
"is--disabled": isDisabled
}] }, ons), radioVNs)
]);
},
renderDeepRadioCell(params) {
return Cell.renderDeepNodeBtn(params, Cell.renderRadioCell(params));
},
/**
* 多选
*/
renderCheckboxHeader(params) {
const { $table, column, isHidden } = params;
const tableReactData = $table.reactData;
const { computeIsAllCheckboxDisabled, computeCheckboxOpts } = $table.getComputeMaps();
const { isAllSelected: isAllCheckboxSelected, isIndeterminate: isAllCheckboxIndeterminate } = tableReactData;
const isAllCheckboxDisabled = computeIsAllCheckboxDisabled.value;
const { slots } = column;
const headerSlot = slots ? slots.header : null;
const titleSlot = slots ? slots.title : null;
const checkboxOpts = computeCheckboxOpts.value;
const { checkStrictly, showHeader, headerTitle } = checkboxOpts;
const colTitle = column.getTitle();
const ons = {};
if (!isHidden) {
ons.onClick = (evnt) => {
if (!isAllCheckboxDisabled) {
$table.triggerCheckAllEvent(evnt, !isAllCheckboxSelected);
}
};
}
const checkboxParams = Object.assign(Object.assign({}, params), { checked: isAllCheckboxSelected, disabled: isAllCheckboxDisabled, indeterminate: isAllCheckboxIndeterminate });
if (headerSlot) {
return renderHeaderCellBaseVNs(params, renderTitleContent(checkboxParams, $table.callSlot(headerSlot, checkboxParams)));
}
if (checkStrictly ? !showHeader : showHeader === false) {
return renderHeaderCellBaseVNs(params, renderTitleContent(checkboxParams, [
h("span", {
class: "vxe-checkbox--label"
}, titleSlot ? $table.callSlot(titleSlot, checkboxParams) : colTitle)
]));
}
return renderHeaderCellBaseVNs(params, renderTitleContent(checkboxParams, [
h("span", Object.assign({ class: ["vxe-cell--checkbox", {
"is--checked": isAllCheckboxSelected,
"is--disabled": isAllCheckboxDisabled,
"is--indeterminate": isAllCheckboxIndeterminate
}], title: import_xe_utils4.default.eqNull(headerTitle) ? getI18n2("vxe.table.allTitle") : `${headerTitle || ""}` }, ons), [
h("span", {
class: ["vxe-checkbox--icon", isAllCheckboxIndeterminate ? getIcon().TABLE_CHECKBOX_INDETERMINATE : isAllCheckboxSelected ? getIcon().TABLE_CHECKBOX_CHECKED : isAllCheckboxDisabled ? getIcon().TABLE_CHECKBOX_DISABLED_UNCHECKED : getIcon().TABLE_CHECKBOX_UNCHECKED]
})
].concat(titleSlot || colTitle ? [
h("span", {
class: "vxe-checkbox--label"
}, titleSlot ? $table.callSlot(titleSlot, checkboxParams) : colTitle)
] : []))
]));
},
renderCheckboxCell(params) {
const { $table, row, column, isHidden } = params;
const tableProps = $table.props;
const tableReactData = $table.reactData;
const tableInternalData = $table.internalData;
const { treeConfig } = tableProps;
const { updateCheckboxFlag, isRowGroupStatus } = tableReactData;
const { selectCheckboxMaps, treeIndeterminateRowMaps } = tableInternalData;
const { computeCheckboxOpts, computeAggregateOpts } = $table.getComputeMaps();
const aggregateOpts = computeAggregateOpts.value;
const { mapChildrenField } = aggregateOpts;
const checkboxOpts = computeCheckboxOpts.value;
const { labelField, checkMethod, visibleMethod } = checkboxOpts;
const { slots } = column;
const defaultSlot = slots ? slots.default : null;
const checkboxSlot = slots ? slots.checkbox : null;
let indeterminate = false;
let isChecked = false;
let isVisible = true;
let isDisabled = false;
const ons = {};
if (!isHidden) {
const rowid = getRowid($table, row);
isChecked = !!updateCheckboxFlag && !!selectCheckboxMaps[rowid];
if (checkMethod && isRowGroupStatus && $table.isAggregateRecord(row)) {
const childList = row[mapChildrenField || ""];
if (!childList || !childList.length || childList.every((item) => !checkMethod({ $table, row: item }))) {
isDisabled = true;
}
} else {
isVisible = !visibleMethod || visibleMethod({ $table, row });
isDisabled = checkMethod ? !checkMethod({ $table, row }) : !!checkMethod;
}
if (treeConfig || isRowGroupStatus) {
indeterminate = !!treeIndeterminateRowMaps[rowid];
}
ons.onClick = (evnt) => {
if (!isDisabled && isVisible) {
$table.triggerCheckRowEvent(evnt, params, !isChecked);
}
};
}
const checkboxParams = Object.assign(Object.assign({}, params), { checked: isChecked, disabled: isDisabled, visible: isVisible, indeterminate });
if (checkboxSlot) {
return renderCellBaseVNs(params, $table.callSlot(checkboxSlot, checkboxParams));
}
const checkVNs = [];
if (isVisible) {
checkVNs.push(h("span", {
class: ["vxe-checkbox--icon", indeterminate ? getIcon().TABLE_CHECKBOX_INDETERMINATE : isChecked ? getIcon().TABLE_CHECKBOX_CHECKED : isDisabled ? getIcon().TABLE_CHECKBOX_DISABLED_UNCHECKED : getIcon().TABLE_CHECKBOX_UNCHECKED]
}));
}
if (defaultSlot || labelField) {
checkVNs.push(h("span", {
class: "vxe-checkbox--label"
}, defaultSlot ? $table.callSlot(defaultSlot, checkboxParams) : import_xe_utils4.default.get(row, labelField)));
}
return renderCellBaseVNs(params, [
h("span", Object.assign({ class: ["vxe-cell--checkbox", {
"is--checked": isChecked,
"is--disabled": isDisabled,
"is--indeterminate": indeterminate,
"is--hidden": !isVisible
}] }, ons), checkVNs)
]);
},
renderDeepSelectionCell(params) {
return Cell.renderDeepNodeBtn(params, Cell.renderCheckboxCell(params));
},
renderCheckboxCellByProp(params) {
const { $table, row, column, isHidden } = params;
const tableProps = $table.props;
const tableReactData = $table.reactData;
const tableInternalData = $table.internalData;
const { treeConfig } = tableProps;
const { updateCheckboxFlag, isRowGroupStatus } = tableReactData;
const { treeIndeterminateRowMaps } = tableInternalData;
const { computeCheckboxOpts, computeAggregateOpts } = $table.getComputeMaps();
const aggregateOpts = computeAggregateOpts.value;
const { mapChildrenField } = aggregateOpts;
const checkboxOpts = computeCheckboxOpts.value;
const { labelField, checkField, checkMethod, visibleMethod } = checkboxOpts;
const indeterminateField = checkboxOpts.indeterminateField || checkboxOpts.halfField;
const { slots } = column;
const defaultSlot = slots ? slots.default : null;
const checkboxSlot = slots ? slots.checkbox : null;
let indeterminate = false;
let isChecked = false;
let isVisible = true;
let isDisabled = false;
const ons = {};
if (!isHidden) {
const rowid = getRowid($table, row);
isChecked = !!updateCheckboxFlag && import_xe_utils4.default.get(row, checkField);
if (checkMethod && isRowGroupStatus && $table.isAggregateRecord(row)) {
const childList = row[mapChildrenField || ""];
if (!childList || !childList.length || childList.every((item) => !checkMethod({ $table, row: item }))) {
isDisabled = true;
}
} else {
isVisible = !visibleMethod || visibleMethod({ $table, row });
isDisabled = checkMethod ? !checkMethod({ $table, row }) : !!checkMethod;
}
if (treeConfig || isRowGroupStatus) {
indeterminate = !!treeIndeterminateRowMaps[rowid];
}
ons.onClick = (evnt) => {
if (!isDisabled && isVisible) {
$table.triggerCheckRowEvent(evnt, params, !isChecked);
}
};
}
const checkboxParams = Object.assign(Object.assign({}, params), { checked: isChecked, disabled: isDisabled, visible: isVisible, indeterminate });
if (checkboxSlot) {
return renderCellBaseVNs(params, $table.callSlot(checkboxSlot, checkboxParams));
}
const checkVNs = [];
if (isVisible) {
checkVNs.push(h("span", {
class: ["vxe-checkbox--icon", indeterminate ? getIcon().TABLE_CHECKBOX_INDETERMINATE : isChecked ? getIcon().TABLE_CHECKBOX_CHECKED : isDisabled ? getIcon().TABLE_CHECKBOX_DISABLED_UNCHECKED : getIcon().TABLE_CHECKBOX_UNCHECKED]
}));
if (defaultSlot || labelField) {
checkVNs.push(h("span", {
class: "vxe-checkbox--label"
}, defaultSlot ? $table.callSlot(defaultSlot, checkboxParams) : import_xe_utils4.default.get(row, labelField)));
}
}
return renderCellBaseVNs(params, [
h("span", Object.assign({ class: ["vxe-cell--checkbox", {
"is--checked": isChecked,
"is--disabled": isDisabled,
"is--indeterminate": indeterminateField && !isChecked ? row[indeterminateField] : indeterminate,
"is--hidden": !isVisible
}] }, ons), checkVNs)
]);
},
renderDeepSelectionCellByProp(params) {
return Cell.renderDeepNodeBtn(params, Cell.renderCheckboxCellByProp(params));
},
/**
* 展开行
*/
renderExpandCell(params) {
const { $table, isHidden, row, column } = params;
const tableReactData = $table.reactData;
const tableInternalData = $table.internalData;
const { isRowGroupStatus } = tableReactData;
const { rowExpandedMaps, rowExpandLazyLoadedMaps } = tableInternalData;
const { computeExpandOpts } = $table.getComputeMaps();
const expandOpts = computeExpandOpts.value;
const { lazy, labelField, iconLoaded, showIcon, iconOpen, iconClose, visibleMethod } = expandOpts;
const { slots } = column;
const defaultSlot = slots ? slots.default : null;
const iconSlot = slots ? slots.icon : null;
let isActive = false;
let isLazyLoading = false;
if (isRowGroupStatus && row.isAggregate) {
return renderCellBaseVNs(params, []);
}
if (iconSlot) {
return renderCellBaseVNs(params, $table.callSlot(iconSlot, params));
}
if (!isHidden) {
const rowid = getRowid($table, row);
isActive = !!rowExpandedMaps[rowid];
if (lazy) {
isLazyLoading = !!rowExpandLazyLoadedMaps[rowid];
}
}
return renderCellBaseVNs(params, [
showIcon && (!visibleMethod || visibleMethod(params)) ? h("span", {
class: ["vxe-table--expanded", {
"is--active": isActive
}],
onMousedown(evnt) {
evnt.stopPropagation();
},
onClick(evnt) {
$table.triggerRowExpandEvent(evnt, params);
}
}, [
h("i", {
class: ["vxe-table--expand-btn", isLazyLoading ? iconLoaded || getIcon().TABLE_EXPAND_LOADED : isActive ? iconOpen || getIcon().TABLE_EXPAND_OPEN : iconClose || getIcon().TABLE_EXPAND_CLOSE]
})
]) : renderEmptyElement($table),
defaultSlot || labelField ? h("span", {
class: "vxe-table--expand-label"
}, defaultSlot ? $table.callSlot(defaultSlot, params) : import_xe_utils4.default.get(row, labelField)) : renderEmptyElement($table)
]);
},
renderExpandData(params) {
const { $table, column } = params;
const { slots, contentRender } = column;
const contentSlot = slots ? slots.content : null;
if (contentSlot) {
return $table.callSlot(contentSlot, params);
}
if (contentRender) {
const compConf = renderer2.get(contentRender.name);
if (compConf) {
const rtExpand = compConf.renderTableExpand || compConf.renderExpand;
if (rtExpand) {
return getSlotVNs(rtExpand(contentRender, params));
}
}
}
return [];
},
/**
* HTML 标签
*/
renderHTMLCell(params) {
const { $table, column } = params;
const { slots } = column;
const defaultSlot = slots ? slots.default : null;
if (defaultSlot) {
return renderCellBaseVNs(params, $table.callSlot(defaultSlot, params));
}
return renderCellBaseVNs(params, [
h("span", {
class: "vxe-cell--html",
innerHTML: getDefaultCellLabel(params)
})
]);
},
renderDeepHTMLCell(params) {
return Cell.renderDeepNodeBtn(params, Cell.renderHTMLCell(params));
},
/**
* 排序和筛选
*/
renderSortAndFilterHeader(params) {
return renderHeaderCellBaseVNs(params, Cell.renderHeaderTitle(params).concat(Cell.renderSortIcon(params).concat(Cell.renderFilterIcon(params))));
},
/**
* 排序
*/
renderSortHeader(params) {
return renderHeaderCellBaseVNs(params, Cell.renderHeaderTitle(params).concat(Cell.renderSortIcon(params)));
},
renderSortIcon(params) {
const { $table, column } = params;
const { computeSortOpts } = $table.getComputeMaps();
const sortOpts = computeSortOpts.value;
const { showIcon, allowBtn, ascTitle, descTitle, iconLayout, iconAsc, iconDesc, iconVisibleMethod } = sortOpts;
const { order, slots } = column;
if (showIcon && (!iconVisibleMethod || iconVisibleMethod(params))) {
const sortSlot = slots ? slots.sort : null;
return sortSlot ? getSlotVNs($table.callSlot(sortSlot, params)) : [
h("span", {
class: ["vxe-cell--sort", `vxe-cell--sort-${iconLayout}-layout`]
}, [
h("i", {
class: ["vxe-sort--asc-btn", iconAsc || getIcon().TABLE_SORT_ASC, {
"sort--active": order === "asc"
}],
title: import_xe_utils4.default.eqNull(ascTitle) ? getI18n2("vxe.table.sortAsc") : `${ascTitle || ""}`,
onClick: allowBtn ? (evnt) => {
evnt.stopPropagation();
$table.triggerSortEvent(evnt, column, "asc");
} : void 0
}),
h("i", {
class: ["vxe-sort--desc-btn", iconDesc || getIcon().TABLE_SORT_DESC, {
"sort--active": order === "desc"
}],
title: import_xe_utils4.default.eqNull(descTitle) ? getI18n2("vxe.table.sortDesc") : `${descTitle || ""}`,
onClick: allowBtn ? (evnt) => {
evnt.stopPropagation();
$table.triggerSortEvent(evnt, column, "desc");
} : void 0
})
])
];
}
return [];
},
/**
* 筛选
*/
renderFilterHeader(params) {
return renderHeaderCellBaseVNs(params, Cell.renderHeaderTitle(params).concat(Cell.renderFilterIcon(params)));
},
renderFilterIcon(params) {
const { $table, column, hasFilter } = params;
const tableReactData = $table.reactData;
const { filterStore } = tableReactData;
const { computeFilterOpts } = $table.getComputeMaps();
const filterOpts = computeFilterOpts.value;
const { showIcon, iconNone, iconMatch, iconVisibleMethod } = filterOpts;
if (showIcon && (!iconVisibleMethod || iconVisibleMethod(params))) {
return [
h("span", {
class: ["vxe-cell--filter", {
"is--active": filterStore.visible && filterStore.column === column
}],
onClick(evnt) {
if ($table.triggerFilterEvent) {
$table.triggerFilterEvent(evnt, params.column, params);
}
}
}, [
h("i", {
class: ["vxe-filter--btn", hasFilter ? iconMatch || getIcon().TABLE_FILTER_MATCH : iconNone || getIcon().TABLE_FILTER_NONE],
title: getI18n2("vxe.table.filter")
})
])
];
}
return [];
},
/**
* 可编辑
*/
renderEditHeader(params) {
const { $table, column } = params;
const tableProps = $table.props;
const { computeEditOpts } = $table.getComputeMaps();
const { editConfig, editRules } = tableProps;
const editOpts = computeEditOpts.value;
const { sortable, filters, editRender } = column;
let isRequired = false;
if (editRules) {
const columnRules = import_xe_utils4.default.get(editRules, column.field);
if (columnRules) {
isRequired = columnRules.some((rule) => rule.required);
}
}
let editIconVNs = [];
if (isEnableConf(editConfig)) {
const { showAsterisk, showIcon, icon } = editOpts;
editIconVNs = [
isRequired && showAsterisk ? h("span", {
class: "vxe-cell--required-icon"
}, [
h("i")
]) : renderEmptyElement($table),
isEnableConf(editRender) && showIcon ? h("span", {
class: "vxe-cell--edit-icon"
}, import_xe_utils4.default.isFunction(icon) ? getSlotVNs(icon({})) : [
h("i", {
class: icon || getIcon().TABLE_EDIT
})
]) : renderEmptyElement($table)
];
}
return renderHeaderCellBaseVNs(params, editIconVNs.concat(Cell.renderHeaderTitle(params)).concat(sortable ? Cell.renderSortIcon(params) : []).concat(filters ? Cell.renderFilterIcon(params) : []));
},
// 行格编辑模式
renderRowEdit(params) {
const { $table, column } = params;
const tableReactData = $table.reactData;
const { editStore } = tableReactData;
const { actived } = editStore;
const { editRender } = column;
return Cell.runRenderer(params, isEnableConf(editRender) && actived && actived.row === params.row);
},
renderDeepRowEdit(params) {
return Cell.renderDeepNodeBtn(params, Cell.renderRowEdit(params));
},
// 单元格编辑模式
renderCellEdit(params) {
const { $table, column } = params;
const tableReactData = $table.reactData;
const { editStore } = tableReactData;
const { actived } = editStore;
const { editRender } = column;
return Cell.runRenderer(params, isEnableConf(editRender) && actived && actived.row === params.row && actived.column === params.column);
},
renderDeepCellEdit(params) {
return Cell.renderDeepNodeBtn(params, Cell.renderCellEdit(params));
},
runRenderer(params, isEdit) {
const { $table, row, column } = params;
const tableReactData = $table.reactData;
const { isRowGroupStatus } = tableReactData;
const { slots, field, editRender, formatter } = column;
const defaultSlot = slots ? slots.default : null;
const gcSlot = slots ? slots.groupContent || slots["group-content"] : null;
const editSlot = slots ? slots.edit : null;
const compConf = renderer2.get(editRender.name);
const rtEdit = compConf ? compConf.renderTableEdit || compConf.renderEdit : null;
const cellParams = Object.assign({ $type: "", isEdit }, params);
if (isEdit) {
cellParams.$type = "edit";
if (editSlot) {
return $table.callSlot(editSlot, cellParams);
}
if (rtEdit) {
return getSlotVNs(rtEdit(editRender, cellParams));
}
return [];
}
if (isRowGroupStatus && field && row.isAggregate) {
const aggRow = row;
const { computeAggregateOpts } = $table.getComputeMaps();
const aggregateOpts = computeAggregateOpts.value;
const { mapChildrenField } = aggregateOpts;
const groupField = aggRow.groupField;
const groupContent = aggRow.groupContent;
const childList = mapChildrenField ? aggRow[mapChildrenField] || [] : [];
const childCount = aggRow.childCount;
if (gcSlot) {
return renderCellBaseVNs(params, $table.callSlot(gcSlot, Object.assign({ groupField, groupContent, childList, childCount }, params)));
}
} else {
if (defaultSlot) {
return renderCellBaseVNs(params, $table.callSlot(defaultSlot, cellParams));
}
}
if (formatter) {
return renderCellBaseVNs(params, [
h("span", {
class: "vxe-cell--label"
}, getDefaultCellLabel(cellParams))
]);
}
return Cell.renderDefaultCell(cellParams);
}
};
var cell_default = Cell;
export {
initTpImg,
getTpImg,
getPropClass,
isPx,
isScale,
hasClass,
removeClass,
addClass,
hasControlKey,
toCssUnit,
getDomNode,
getOffsetHeight,
getPaddingTopBottomSize,
setScrollTop,
setScrollLeft,
updateCellTitle,
checkTargetElement,
getEventTargetNode,
getAbsolutePos,
scrollToView,
triggerEvent,
createInternalData,
convertHeaderColumnToRows,
convertHeaderToGridRows,
restoreScrollLocation,
getRowUniqueId,
hasDeepKey,
getRowkey,
getRowid,
createHandleUpdateRowId,
createHandleGetRowId,
handleFieldOrColumn,
handleRowidOrRow,
getCellRestHeight,
toFilters,
toTreePathSeq,
getCellValue,
setCellValue,
getRefElem,
getCalcHeight,
getColReMinWidth,
isColumnInfo,
getColumnList,
watchColumn,
assembleColumn,
destroyColumn,
getRootColumn,
getLastChildColumn,
clearTableAllStatus,
rowToVisible,
colToVisible,
cell_default
};
//# sourceMappingURL=chunk-W4BZ55WN.js.map