@1771technologies/lytenyte-pro
Version:
Blazingly fast headless React data grid with 100s of features.
23 lines (22 loc) • 724 B
JavaScript
export function getSpanFn(rds, grid, visibleColumns, span) {
if (visibleColumns.every((c) => !(span === "col" ? c.colSpan : c.rowSpan)))
return null;
return (r, c) => {
const row = rds.rowByIndex(r);
const column = visibleColumns[c];
if (!row || !column)
return 1;
const spanFn = span === "col" ? column.colSpan : column.rowSpan;
if (!spanFn)
return 1;
if (typeof spanFn === "number") {
if (span === "col") {
return spanFn;
}
else {
return r % spanFn === 0 ? spanFn : 1;
}
}
return spanFn({ grid, rowIndex: r, colIndex: c, row });
};
}