ivue-material-plus
Version:
A high quality UI components Library with Vue.js
96 lines (91 loc) • 2.93 kB
JavaScript
Object.defineProperty(exports, '__esModule', { value: true });
var vue = require('vue');
var utils = require('../utils.js');
var defaults = require('../table/defaults.js');
const prefixCls = "ivue-table";
function useStyle(props) {
const IvueTable = vue.inject(defaults.TableContextKey);
const getHeaderCellStyle = (rowIndex, columnIndex, row, column) => {
var _a;
let headerCellStyles = (_a = IvueTable == null ? void 0 : IvueTable.props.headerCellStyle) != null ? _a : {};
if (typeof headerCellStyles === "function") {
headerCellStyles = headerCellStyles.call(null, {
rowIndex,
columnIndex,
row,
column
});
}
const fixedStyle = column.isSubColumn ? null : utils.getFixedColumnOffset(columnIndex, column.fixed, props.store, row);
utils.ensurePosition(fixedStyle, "left");
utils.ensurePosition(fixedStyle, "right");
return Object.assign({}, headerCellStyles, fixedStyle);
};
const getHeaderCellClass = (rowIndex, columnIndex, row, column) => {
const fixedClasses = column.isSubColumn ? [] : utils.getFixedColumnsClass(
prefixCls,
columnIndex,
column.fixed,
props.store,
row
);
const classes = [
column.id,
column.order,
column.headerAlign,
column.className,
column.labelClassName,
...fixedClasses
];
if (!column.children) {
classes.push("is-leaf");
}
if (column.sortable) {
classes.push("is-sortable");
}
if (column.filterable) {
classes.push("is-filterable");
}
const headerCellClassName = IvueTable == null ? void 0 : IvueTable.props.headerCellClassName;
if (typeof headerCellClassName === "string") {
classes.push(headerCellClassName);
} else if (typeof headerCellClassName === "function") {
classes.push(
headerCellClassName.call(null, {
rowIndex,
columnIndex,
row,
column
})
);
}
classes.push(`${prefixCls}-cell`);
return classes.filter((className) => Boolean(className)).join(" ");
};
const getHeaderRowStyle = (rowIndex) => {
const headerRowStyle = IvueTable.props.headerRowStyle;
if (typeof headerRowStyle === "function") {
return headerRowStyle.call(null, { rowIndex });
}
return headerRowStyle;
};
const getHeaderRowClass = (rowIndex) => {
const classes = [];
const headerRowClassName = IvueTable.props.headerRowClassName;
if (typeof headerRowClassName === "string") {
classes.push(headerRowClassName);
} else if (typeof headerRowClassName === "function") {
classes.push(headerRowClassName.call(null, { rowIndex }));
}
return classes.join(" ");
};
return {
getHeaderCellClass,
getHeaderCellStyle,
getHeaderRowStyle,
getHeaderRowClass
};
}
exports["default"] = useStyle;
//# sourceMappingURL=styles.js.map
;