'use strict';
|
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
var vue = require('vue');
|
require('../../../../hooks/index.js');
|
var util = require('../util.js');
|
var tokens = require('../tokens.js');
|
var index = require('../../../../hooks/use-namespace/index.js');
|
|
function useStyles(props) {
|
const parent = vue.inject(tokens.TABLE_INJECTION_KEY);
|
const ns = index.useNamespace("table");
|
const getRowStyle = (row, rowIndex) => {
|
const rowStyle = parent == null ? void 0 : parent.props.rowStyle;
|
if (typeof rowStyle === "function") {
|
return rowStyle.call(null, {
|
row,
|
rowIndex
|
});
|
}
|
return rowStyle || null;
|
};
|
const getRowClass = (row, rowIndex) => {
|
const classes = [ns.e("row")];
|
if ((parent == null ? void 0 : parent.props.highlightCurrentRow) && row === props.store.states.currentRow.value) {
|
classes.push("current-row");
|
}
|
if (props.stripe && rowIndex % 2 === 1) {
|
classes.push(ns.em("row", "striped"));
|
}
|
const rowClassName = parent == null ? void 0 : parent.props.rowClassName;
|
if (typeof rowClassName === "string") {
|
classes.push(rowClassName);
|
} else if (typeof rowClassName === "function") {
|
classes.push(rowClassName.call(null, {
|
row,
|
rowIndex
|
}));
|
}
|
return classes;
|
};
|
const getCellStyle = (rowIndex, columnIndex, row, column) => {
|
const cellStyle = parent == null ? void 0 : parent.props.cellStyle;
|
let cellStyles = cellStyle != null ? cellStyle : {};
|
if (typeof cellStyle === "function") {
|
cellStyles = cellStyle.call(null, {
|
rowIndex,
|
columnIndex,
|
row,
|
column
|
});
|
}
|
const fixedStyle = util.getFixedColumnOffset(columnIndex, props == null ? void 0 : props.fixed, props.store);
|
util.ensurePosition(fixedStyle, "left");
|
util.ensurePosition(fixedStyle, "right");
|
return Object.assign({}, cellStyles, fixedStyle);
|
};
|
const getCellClass = (rowIndex, columnIndex, row, column, offset) => {
|
const fixedClasses = util.getFixedColumnsClass(ns.b(), columnIndex, props == null ? void 0 : props.fixed, props.store, void 0, offset);
|
const classes = [column.id, column.align, column.className, ...fixedClasses];
|
const cellClassName = parent == null ? void 0 : parent.props.cellClassName;
|
if (typeof cellClassName === "string") {
|
classes.push(cellClassName);
|
} else if (typeof cellClassName === "function") {
|
classes.push(cellClassName.call(null, {
|
rowIndex,
|
columnIndex,
|
row,
|
column
|
}));
|
}
|
classes.push(ns.e("cell"));
|
return classes.filter((className) => Boolean(className)).join(" ");
|
};
|
const getSpan = (row, column, rowIndex, columnIndex) => {
|
let rowspan = 1;
|
let colspan = 1;
|
const fn = parent == null ? void 0 : parent.props.spanMethod;
|
if (typeof fn === "function") {
|
const result = fn({
|
row,
|
column,
|
rowIndex,
|
columnIndex
|
});
|
if (Array.isArray(result)) {
|
rowspan = result[0];
|
colspan = result[1];
|
} else if (typeof result === "object") {
|
rowspan = result.rowspan;
|
colspan = result.colspan;
|
}
|
}
|
return { rowspan, colspan };
|
};
|
const getColspanRealWidth = (columns, colspan, index) => {
|
if (colspan < 1) {
|
return columns[index].realWidth;
|
}
|
const widthArr = columns.map(({ realWidth, width }) => realWidth || width).slice(index, index + colspan);
|
return Number(widthArr.reduce((acc, width) => Number(acc) + Number(width), -1));
|
};
|
return {
|
getRowStyle,
|
getRowClass,
|
getCellStyle,
|
getCellClass,
|
getSpan,
|
getColspanRealWidth
|
};
|
}
|
|
exports["default"] = useStyles;
|
//# sourceMappingURL=styles-helper.js.map
|