es-grid-template
Version:
es-grid-template
34 lines (32 loc) • 917 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.convertColumns = convertColumns;
var _reactTable = require("@tanstack/react-table");
const columnHelper = (0, _reactTable.createColumnHelper)();
function convertColumns(columns) {
return columns.map(col => {
if (col.columns) {
// Group column
return columnHelper.group({
...col,
columns: convertColumns(col.columns) // đệ quy
});
} else {
// Accessor column
let accessor;
// Ưu tiên accessorKey nếu có, nếu không thì dùng hàm row => row[col.id]
if (col.accessorKey) {
accessor = col.accessorKey;
} else if (col.id) {
accessor = row => row[col.id];
} else {
throw new Error('Column không có accessorKey hoặc id');
}
return columnHelper.accessor(accessor, {
...col
});
}
});
}