es-grid-template
Version:
es-grid-template
153 lines (148 loc) • 5.08 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _TableBodyCell = _interopRequireDefault(require("./TableBodyCell"));
var _TableBodyCellEdit = _interopRequireDefault(require("./TableBodyCellEdit"));
var _react = _interopRequireDefault(require("react"));
var _useContext = require("../useContext");
var _classnames = _interopRequireDefault(require("classnames"));
const TableBodyRow = ({
tableId,
table,
columnVirtualizer,
row,
rowVirtualizer,
virtualPaddingLeft,
virtualPaddingRight,
virtualRow,
fixedLeftColumns,
fixedRightColumns,
commandClick,
editAble,
isEditing,
contextMenuItems,
...rest
}) => {
const {
prefix,
recordDoubleClick,
onContextMenu
} = _react.default.useContext(_useContext.TableContext);
const visibleCells = row.getVisibleCells();
const virtualColumns = columnVirtualizer.getVirtualItems();
// table.options.set
return /*#__PURE__*/_react.default.createElement("tr", {
"data-index": virtualRow.index //needed for dynamic row height measurement
,
ref: node => rowVirtualizer.measureElement(node) //measure dynamic row height
,
key: row.id
// className={} ui-rc-table-row-selected
,
className: (0, _classnames.default)(`${prefix}-grid-row`, {
[`${prefix}-grid-row-selected`]: row.getIsSelected()
}),
style: {
// display: 'flex',
// position: 'absolute',
transform: `translateY(${virtualRow.start}px)`,
//this should always be a `style` as it changes on scroll
// width: '100%',
// height: isEditing ? '36px' : undefined,
height: isEditing ? virtualRow.size : undefined,
minHeight: isEditing ? undefined : virtualRow.size
},
onDoubleClick: e => {
recordDoubleClick?.({
e,
rowData: row.original,
rowIndex: row.index
});
},
onContextMenu: e => {
if (contextMenuItems && contextMenuItems.length) {
onContextMenu?.(row.original)(e);
}
}
// onContextMenu={onContextMenu(row.original)}
}, fixedLeftColumns.length > 0 ? fixedLeftColumns.map(column => {
const cell = row.getVisibleCells().find(c => c.column.id === column.id);
if (editAble) {
return /*#__PURE__*/_react.default.createElement(_TableBodyCellEdit.default, (0, _extends2.default)({}, rest, {
table: table,
tableId: tableId,
key: cell.id,
cell: cell,
commandClick: commandClick,
isEditing: isEditing,
rowVirtualizer: rowVirtualizer,
columnVirtualizer: columnVirtualizer
}));
}
return /*#__PURE__*/_react.default.createElement(_TableBodyCell.default, {
key: column.id,
table: table,
cell: row.getVisibleCells().find(c => c.column.id === column.id),
commandClick: commandClick
});
}) : null, virtualPaddingLeft ? /*#__PURE__*/_react.default.createElement("td", {
className: "",
style: {
display: "flex",
width: virtualPaddingLeft
}
}) : null, virtualColumns.map(vc => {
const cell = visibleCells[vc.index];
const isFixed = table.getState().columnPinning.left?.includes(cell.column.id) || table.getState().columnPinning.right?.includes(cell.column.id);
if (cell && !isFixed) {
if (editAble) {
return /*#__PURE__*/_react.default.createElement(_TableBodyCellEdit.default, (0, _extends2.default)({}, rest, {
table: table,
key: cell.id,
tableId: tableId,
cell: cell,
commandClick: commandClick,
isEditing: isEditing,
rowVirtualizer: rowVirtualizer,
columnVirtualizer: columnVirtualizer
}));
}
return /*#__PURE__*/_react.default.createElement(_TableBodyCell.default, {
table: table,
key: cell.id,
cell: cell,
commandClick: commandClick
});
}
}), fixedRightColumns.length > 0 ? fixedRightColumns.map(column => {
if (editAble) {
return /*#__PURE__*/_react.default.createElement(_TableBodyCellEdit.default, (0, _extends2.default)({}, rest, {
table: table,
key: column.id,
tableId: tableId,
cell: row.getVisibleCells().find(c => c.column.id === column.id),
commandClick: commandClick,
isEditing: isEditing,
rowVirtualizer: rowVirtualizer,
columnVirtualizer: columnVirtualizer
}));
}
return /*#__PURE__*/_react.default.createElement(_TableBodyCell.default, {
key: column.id,
table: table,
cell: row.getVisibleCells().find(c => c.column.id === column.id),
commandClick: commandClick
});
}) : null, virtualPaddingRight ? /*#__PURE__*/_react.default.createElement("td", {
className: "",
style: {
display: "flex",
width: virtualPaddingRight
}
}) : null);
};
var _default = exports.default = TableBodyRow;