tav-ui
Version:
94 lines (89 loc) • 3.15 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var vue = require('vue');
var useTooltip = require('../../../../hooks/web/useTooltip2.js');
var is = require('../../../../utils/is2.js');
var cell = require('../components/cell2.js');
var _const = require('../const2.js');
function showCellTooltip(instances, tablePropsRef, params) {
const { cell: cell$1, column, _rowIndex, _columnIndex, rowid } = params;
const { params: columnParams = {} } = column;
const { showTooltip: columnShowTooltip } = columnParams;
const { showTooltip, id: tableId } = vue.unref(tablePropsRef);
const isColumnShowTooltip = is.isBoolean(columnShowTooltip) ? columnShowTooltip : showTooltip;
if (isColumnShowTooltip) {
const id = `${tableId}:row_${_rowIndex}-${_columnIndex}-${rowid}`;
const el = cell$1.querySelector(`.${cell.ContentPrefixCls}`);
let title = "";
let isCellOverflow = false;
if (el) {
title = ((column.type === "html" ? el.innerText : el.textContent) ?? "").trim();
isCellOverflow = el.scrollWidth > el.clientWidth;
}
const instance = useTooltip.$Tooltip(el, {
placement: _const.TOOLTIP_PLACEMENT,
title,
id,
delay: 100
});
instances.set(id, instance);
isCellOverflow && instance?.showTooltip(el);
}
}
function hideCellTooltip(instances, tablePropsRef, params) {
const { column, _rowIndex, _columnIndex, rowid } = params;
const { params: columnParams = {} } = column;
const { showTooltip: columnShowTooltip } = columnParams;
const { showTooltip, id: tableId } = vue.unref(tablePropsRef);
const isColumnShowTooltip = is.isBoolean(columnShowTooltip) ? columnShowTooltip : showTooltip;
if (isColumnShowTooltip) {
const id = `${tableId}:row_${_rowIndex}-${_columnIndex}-${rowid}`;
const instance = instances.get(id);
instance?.hideTooltip();
}
}
function hideCellAllTooltip(instances) {
if (instances.size > 0) {
instances.forEach((instance) => {
instance?.hideTooltip();
});
}
}
function deleteTitle(cellEl) {
const targetCls = ["vxe-header--column", "vxe-body--column", "vxe-footer--column"];
const cotainsNum = targetCls.reduce((total, cur) => {
if (cellEl.classList.contains(cur)) {
total += 1;
}
return total;
}, 0);
const isColumnTdEL = cotainsNum > 0;
if (isColumnTdEL) {
cellEl.removeAttribute("title");
cellEl.querySelector(".vxe-cell").removeAttribute("title");
}
}
function useCellHover(tablePropsRef, emit) {
const instances = /* @__PURE__ */ new Map();
const onCellMouseenter = (params) => {
if (!params || ["action", "actions"].includes(params.column.field))
return;
showCellTooltip(instances, tablePropsRef, params);
emit("CellMouseenter", params);
};
const onCellMouseleave = (params) => {
if (!params) {
hideCellAllTooltip(instances);
} else {
hideCellTooltip(instances, tablePropsRef, params);
emit("CellMouseleave", params);
}
};
return {
onCellMouseenter,
onCellMouseleave,
instances
};
}
exports.useCellHover = useCellHover;
//# sourceMappingURL=useCellHover2.js.map